Programa

UNIVERSIDADE ESTADUAL DE FEIRA DE SANTANA

DEPARTAMENTO DE CIÊNCIAS EXATAS

PROFESSOR(A): ROBERTO ALMEIDA BITTENCOURT

PERÍODO LETIVO: 2013.2

 

PROGRAMA DO MÓDULO ISOLADO

EXA 855 – PROJETO DE SISTEMAS

 

 

CARGA HORÁRIA/CREDITAÇÃO

 

30 horas / (T:30; P:00; E:00)

 

PRÉ-REQUISITOS

 

Algoritmos e Programação I

MI - Algoritmos

 

EMENTA

 

Realização de requisitos e modelos conceituais através de padrões GRASP. Diagramas essenciais UML para projeto de software. Design patterns essenciais. Noções básicas de projeto arquitetural. Mapeamento de projeto para código. Testes de aceitação e descrição das funcionalidades gerais do sistema. Teste de Unidade.

 

OBJETIVOS

 

Geral:

·         Projetar sistemas de software orientados a objeto (OO) através do uso de metodologias, técnicas e ferramentas, embasando-se num referencial teórico e no estado-da-prática da área de engenharia de software.

 

Específicos:

·         Conhecer, compreender e aplicar as metodologias, técnicas e ferramentas de projeto de sistemas de software OO;

·         Produzir documentação de projeto baseada em diagramas essenciais da linguagem de modelagem unificada (UML);

·         Escolher padrões de atribuições de responsabilidades e padrões de projeto para resolver problemas de projeto de software OO;

·         Conhecer e utilizar artefatos de software de requisitos, análise conceitual, código-fonte e testes de modo a projetar sistemas de software numa visão integrada do ciclo de vida do software.

 

 

CONTEÚDO PROGRAMÁTICO

 

1.      UML: Diagrama de classes.

1.1.   Conceitos, atributos, operações.

1.2.   Encapsulamento.

1.3.   Pacotes.

1.4.   Design de classes.

1.5.   Coleções.

1.6.   Relacionamentos.

1.7.   Cardinalidade de relacionamentos.

1.8.   Direcionalidade de relacionamentos.

1.9.   Design de relacionamentos (1).

 

2.      Projeto dirigido por testes.

2.1.   Framework JUnit.

2.2.   Testes de unidade.

2.3.   Testes de aceitação.

 

3.      Padrões para atribuir responsabilidades:

3.1.   expert

3.2.   creator

3.3.   controller

3.4.   alta coesão

3.5.   baixo acoplamento

3.6.   pure fabrication

3.7.   indirection

3.8.   don’t talk to strangers

 

4.      Reuso de software.

4.1.   Interfaces.

4.2.   Polimorfismo.

4.3.   Herança versus composição.

4.4.   Design de relacionamentos (2).

 

5.      UML: Diagramas de interação.

5.1.   Criação e exclusão de participantes.

5.2.   Estruturas de controle.

5.3.   Chamadas síncronas e assíncronas.

 

6.      Tópicos avançados

6.1.   Diagrama de classes revisitado.

6.2.   Visibilidade entre objetos.

6.3.   Diagrama de sequência revisitado.

6.4.   Projeto arquitetural.

 

7.      Padrões de projeto.

7.1.   layers

7.2.   façade

7.3.   observer

7.4.   MVC

7.5.   Iterator

7.6.   Singleton

 

METODOLOGIA

 

A metodologia será um híbrido de aulas expositivas dialogadas e tutoriais de técnicas e ferramentas.

 A seguir apresentamos os alcances de cada uma destas estratégias metodológicas:

·         As aulas expositivas dialogadas têm como objetivo: introduzir conteúdos e práticas da área de projeto de sistemas.

·         Os tutoriais de técnicas e ferramentas servem para introduzir rapidamente o uso de técnicas e ferramentas de projeto de sistemass, reduzindo a curva de aprendizagem e realçando os aspectos mais importantes destas ferramentas no contexto deste curso.

 

MATERIAL UTILIZADO

 

Quadro branco, pincel, apagador, computador e projetor multimídia.

 

AVALIAÇÃO

 

O módulo será dividido em três unidades, para que o estudante possa refletir sobre sua situação em diferentes momentos do curso e, caso necessário, realizar correções de rumo no processo de aprendizagem.

 

Medidas da Unidade:

A medida de cada uma das três unidades será extraída de uma prova escrita realizada no final da unidade.

 

Média Parcial:

A média parcial será a média aritmética das medidas de cada unidade. Obtendo média igual ou superior a 7,0 (sete), o estudante pode ser aprovado, caso cumpra os requisitos de frequência.

 

Prova Final:

·         Não obtendo média parcial suficiente na avaliação do módulo, o estudante poderá fazer prova final, e a média final será calculada de acordo com o sistema de avaliação vigente na UEFS.

 

Aprovação no módulo:

Para ser aprovado no módulo, o estudante precisa cumprir os seguintes requisitos:

·         Ter frequência igual ou superior a 75% da carga horária efetiva ministrada no módulo, caso contrário haverá reprovação por frequência;

·         Ser aprovado na avaliação do módulo, caso contrário haverá reprovação por nota.

 

REFERÊNCIAS

 

LIVROS-TEXTO

LARMAN, C. Utilizando UML e Patterns: Uma Introdução à Análise e ao Projeto Orientados a Objetos. 3. ed. Bookman, 2007.

WAZLAWICK, R. S. Análise e Projeto de Sistemas de Informação Orientados a Objetos. Campus, 2004.

FOWLER, M. UML Essencial: Um Breve Guia para a Linguagem-Padrão de Modelagem de Objetos.3. ed. Bookman, 2005.

BECK, K. Test-Driven Development: By Example. Addison-Wesley, 2002.

GILBERT, S.; MCCARTY, B. Object-Oriented Design in Java. Waite Group Press, 1998.

 

 

LEITURA COMPLEMENTAR

BOOCH, G; RUMBAUGH, J.; JACOBSON, I. UML: Guia do Usuário. Campus, 2000.

MEYER, B. Object-Oriented Sofware Construction, 2. ed., Prentice Hall, 2000.

MCCONNELL, S. Code Complete: A Practical Handbook of Software Construction. 2. ed. Microsoft Press, 2004.

GAMMA, E.; HELM, R.; JOHNSON, R.; VLISSIDES, J. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.

ORAM, A.; WILSON, G. Beautiful Code: Leading Programmers Explain How They Think. O’Reilly, 2010.

RIEL, A. J. Object-Oriented Design Heuristics. Addison-Wesley, 1996.

BRAUDE, E. J. Software Design: From Programming to Architecture. Wiley, 2003.

ORAM, A.; WILSON, G. Making Software: What Really Works, and Why We Believe It. O’Reilly, 2010.