Arquitetura e Padrões de Software - 2019-2
Curso: BCC e TSI
Local: CEFET Maracanã
Horário: Quarta-Feira 18:20 a 21:40
Sala: Lab3
Tempo de curso: 19 semanas
Objetivo:
Familiarizar os alunos com conceitos avançados de desenvolvimento de software com o uso de padrões de software. Desenvolver a capacidade de identificar problemas em sistemas de software, analisá-los, e propor soluções baseadas no uso de arquiteturas e padrões de software.
Ementa:
Introdução aos conceitos de arquitetura de software; Estilos e padrões arquiteturais; Táticas para atender atributos de qualidade na arquitetura; padrões de projeto (design patterns): GoF;
Bibliografia Principal:
BASS, Len; CLEMENTS, Paul; KAZMAN, Rick. Software architecture in practice. Addison-Wesley Professional, 2003.
N. Rozanski and E. Woods, “Software systems architecture: working with stakeholders using viewpoints and perspectives.” Addison-Wesley Professional, 2011.
GAMMA, Erich, HELM, Richard, JOHNSON, Ralph & VLISSIDES, John, Padrões de Projeto – Soluções Reutilizáveis de Software Orientado a Objetos, 2ª edição, Porto Alegre: Bookman, 2000. ISBN 9788573076103
Bibliografia Complementar:
FAIRBANKS, George. Just enough software architecture: a risk-driven approach. Marshall & Brainerd, 2010.
Richard N. Taylor, Nenad Medvidovic, Eric Dashofy, Software Architecture: Foundations, Theory, and Practice. ISBN: 978-0-470-16774-8. John Wiley & Sons, ©2009.
CERVANTES, Humberto; KAZMAN, Rick. Designing software architectures: a practical approach. Addison-Wesley Professional, 2016.
SHAW, Mary; GARLAN, David. Software architecture. Englewood Cliffs: Prentice Hall, 1996.
CLEMENTS, Paul et al. Documenting software architectures: views and beyond. Pearson Education, 2002.
Critério de Avaliação:
M1 = (AV1 + AV2) / 2;
if(Frequência >= 75%){
if(M1 >= 7)
Situação = "Aprovado";
else if (M1 < 3)
Situação = "Reprovado";
else{
Situação = "Prova Final";
if( ((PF + M1) / 2) >= 5)
Situação = "Aprovado";
else
Situação = "Reprovado";
}
}else{
Situação = "Reprovado";
}
Calendário:
- 07/08/2019 - 1. Introdução aos conceitos de arquitetura (Slides 1, 2 e 3)
- 14/08/2019 - 2. Estilos e Padrões Arquiteturais (slide)
- 21/08/2019 - 2. Estilos e Padrões Arquiteturais
- 28/08/2019 - 2. Estilos e Padrões Arquiteturais (Exercícios, resposta parcial ex1)
- 04/09/2019 - Prova de conceito de arquitetura (código e modelos)
- 11/09/2019 - 3. Táticas para atender atributos de qualidade na arquitetura (Slides: disponibilidade, interoperabilidade, modificabilidade)
- 18/09/2019 - 3. Táticas para atender atributos de qualidade na arquitetura (Slides: Performance, Segurança, Testabilidade, Usabilidade, Outros atributos de qualidade)
- 25/09/2019 - Aula de exercícios (Exercícios)
- 02/10/2019 - AV1 - Prova
- 09/10/2019 - Notas AV1, correção e vista de prova, Apoio na implementação da arquitetura
- 16/10/2019 - 4. Padrões de Projeto (Enunciado do Trabalho) (Slides Command e Facade, Código: Command, Facade)
- 23/10/2019 - 4. Padrões de Projeto (Slides singleton, factory method e abstract factory) (Códigos)
- 30/10/2019 - 4. Padrões de projeto (Grupos do trabalho, vídeos de implementação, Slides Composite, Observer, Código Composite, Observer)
- 06/11/2019 - 4. Padrões de projeto (Slides: Decorator, Iterator, Adapter e Template Method) (Exemplo de programação dos testes para o trabalho. Exemplos de código: Decorator, Iterator, Adapter, Template Method, Command com Undo)
- 13/11/2019 - 4. Padrões de projeto (Slides: Strategy, State, Chain of Responsability, Mediator) (Exemplos de código: Strategy, State, Chain of Responsability, Mediator) (Primeira Entrega do Trabalho)
- 20/11/2019 - Feriado (Trabalho - Recebimento do laudo de teste e início das correções) - Notas parciais - arquivos
- 27/11/2019 - AV2 - Trabalho - Entrega Final.
- 04/12/2019 - Revisão PF (Prova Final Antiga, Mais uma, outra)
- 11/12/2019 - Prova Final