Programa
UNIVERSIDADE ESTADUAL DE FEIRA DE SANTANA
DEPARTAMENTO DE CIÊNCIAS EXATAS
PROFESSOR(A): ROBERTO ALMEIDA BITTENCOURT
PERÍODO LETIVO: 2015.1
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.