Cursos
Local e horário das aulas
- 6as-feiras, das 18:20h às 21:30h, no Pavilhão de Informática, lab. 04
Objetivos
Apresentar uma introdução aos conceitos, modelos, métodos, técnicas relacionados a arquiteturas e padrões de software.
Ementa
Introdução aos conceitos de padrão de software e arquitetura de software; padrões para organizar a arquitetura de aplicações corporativas, padrões de projeto (design patterns): GoF; JEE; padrões da abordagem Domain Driven Design (DDD).
Veja também o plano de ensino da disciplina.
Moodle
Todos os alunos regularmente inscritos estão adicionados à disciplina homônima no Moodle, para que possam receber avisos importantes (dia/horário das provas, dúvidas gerais, submissões dos trabalhos, etc).
Aulas
Veja também o plano de curso da disciplina e o calendário acadêmico das graduações do CEFET/RJ.
Aula | Data | Comentário | Leitura/Tarefa |
1 | 03/ago | Apresentação da disciplina (APS00) Arquitetura de aplicações corporativas (APS01a) |
Who needs an architect The Big Ball of Mud… Creating Business Value… Architecture without architects (video) |
2 | 17/ago | Camadas típicas de uma aplicação corporativa (APS01b) Organização da camada da aplicação (APS02) |
SCA (github) |
3 | 24/ago | Padrões para organização da lógica do domínio (APS03) Introdução ao DDD (APS04) Padrões táticos do DDD (APS05) Estudo de caso: biblioteca PeriodoLetivo.java |
Service Layer How essential is it to make a service layer? Services in Domain-Driven Design DDD: Tactical Design Patterns Livro DDD – capítulo 1 |
4 | 31/ago | Princípios de projeto OO (APS06), Venda-ItemVenda, ValidadorQuantidadeCreditosService, Isbn | Validador ISBN Repositories in App or Domain Services |
5 | 14/set | Revisão: API Reflection de Java; Anotações em Java. Inversão de Controle e Injeção de Dependências (APS07) Contêiner IoC do Spring (APS08) |
SOLID software design classes JUnit + maven Princípio da Inversão de Dependência |
6 | 21/set | Organização da lógica de acesso a dados (APS09) Spring Data JPA (APS09.a) Tutorial: Spring Data JPA |
Simple Spring Data JPA Example Repository vs DAO |
7 | 28/set | Revisão: JUnit e testes automatizados Organização da lógica da apresentação (APS10) Spring MVC (APS10.a) Tutorial: Spring MVC |
Serving Web Content with Spring MVC |
8 | 05/out | P1 – Primeira Avaliação Semestral | |
9 | 19/out | GoF – visão geral (APS11); GoF – parte 1 (APS12), DemoAdapter.zip, DemoTemplateMethod.zip | |
10 | 26/out | GoF – parte 2 (APS13), FastFoodDecorator, DemoObserver.zip | |
11 | 09/nov | GoF – parte 3 (APS14), Exemplo (Commmand): stackoverflow | formulário |
Trabalhos práticos
Ferramentas, bibliotecas e frameworks utilizados
- Eclipse
- Apache Tomcat
- HSQLDB
- Astah
- Hibernate/JPA
- Spring
- JavaLite
- Google Guice
- JUnit (veja também: NUnit, PHPUnit)
Sites relevantes
- Sistema de Controle Acadêmico
- CodeCity
- oodesign (descrição online dos padrões GoF)
- Java Practices
- Refactoring Online Catalog
- Hibernate
- Object Orientation Tips
- Design Patterns Library
- Core J2EE Patterns
- DDD Sample Application
- SONAR
- Javapostsforlearning
- AntiPatterns
Autores
Livros, artigos e mais informações relevantes
- Java Persistence
- GoF Design Patterns – With Examples Using Java and UML2, 2008. (e-book gratuito)
- Thinking in Java, 3th edition, Bruce Eckel (gratuito).
- Thinking in Patterns with Java, Bruce Eckel (gratuito).
- Domain Driven Design Quickly, Abel Avram & Floyd Marinescu (e-book gratuito)
- Dependency Injection (green paper)
- How simple analysis patterns can be of benefit to software developers (2009)
- Object-Oriented Application Frameworks
- Design Patterns Reference Card
- Refactoring To Patterns
- POSA Book, Volume 1