Plano de Curso
Plano de curso da disciplina com informações gerais, cronograma e bibliografia
UNIVERSIDADE FEDERAL DA PARAÍBA - UFPB
CENTRO DE CIÊNCIAS APLICADAS E EDUCAÇÃO
DEPARTAMENTO DE CIÊNCIAS EXATAS - DCX
CAMPUS IV - RIO TINTO
PLANO DE CURSO - PERÍODO <XXXX.X>
Dados Gerais da Turma e Links Importantes
| Categoria | Informação |
|---|---|
| Turma: | 8103180 - ANÁLISE E PROJETOS DE SISTEMAS - Turma 01 |
| Docente: | Matheus Barbosa de Oliveira |
| Carga horária: | 60h |
| Horário: | |
| Horários de Atendimento: | Servidor do Discord |
| Link para Canal Discord: | Discord |
| Link para materiais da disciplina: | SIGAA |
| Link dos horários dos monitores: | Horários dos Monitores |
Programa do Componente Curricular
Ementa
Técnicas avançadas de Análise e Projeto de Software empregadas no desenvolvimento de software. Técnicas utilizadas para melhorar o reuso de software usando o paradigma de Orientação a Objeto. Projeto de arquitetura de software. Padrões para atribuição de responsabilidades. Padrões de projeto.
Objetivos
Capacitar os alunos a utilizar técnicas avançadas de análise e projeto de software no desenvolvimento de sistemas robustos, reutilizáveis e de fácil manutenção. Aplicação prática de princípios SOLID, padrões GRASP, padrões de projeto e modelagem de arquiteturas de software.
Conteúdo
- Unidade 1: Revisão de Java, introdução ao desenvolvimento de projetos, tratamento de exceções e testes
- Unidade 2: Code smells e refatoração, padrões GRASP, princípios SOLID e fundamentos de arquitetura de software
- Unidade 3: Padrões de projeto, com foco em aplicação prática em problemas específicos
Habilidades e Competências
- Analisar requisitos de sistemas
- Projetar soluções orientadas a objetos utilizando padrões de responsabilidade e projeto
- Desenvolver software com foco em reutilização, coesão e baixo acoplamento
- Projetar arquiteturas em camadas e compreender princípios de microsserviços e APIs RESTful
- Aplicar padrões de projeto e princípios SOLID em implementações práticas
Metodologia de Ensino e Avaliação
Metodologia
Atividades de laboratório em todas as aulas, com conteúdo teórico aplicado imediatamente em projetos individuais incrementais.
Procedimentos de avaliação
Avaliação contínua e prática, considerando:
- Aplicação correta de padrões
- Coesão do código
- Reuso
- Boas práticas de desenvolvimento
- Clareza na apresentação das soluções
Distribuição do Conteúdo
Unidade 1
- Revisão de Orientação a Objetos
- Composição x Herança
- Tratamento de exceções
- Documentação de Código
- Teste Automático com JUnit
- Uso de IDEs, Git e Maven
Unidade 2
- Arquitetura de Software
- Code smells e refatoração
- Padrões GRASP
- Princípios SOLID
Unidade 3
- Padrões de Projeto
Cronograma de Aulas
Cronograma de Aulas
| Data | Conteúdo |
|---|---|
| Apresentação do curso, revisão de OO. Classes x objetos. | |
| Revisão de Java básico, Git e atividade inicial. Modelagem OO de sistemas. Visibilidade e Encapsulamento. | |
| Herança x Composição, Interfaces, Diagramas UML, Collections, Enums, Annotations, Classes e métodos abstratos, Javadoc, Override, equals e compareTo | |
| Tratamento de exceções, Eventos, Classes internas, Listeners, Teste Automático | |
| 1ª Avaliação | |
| Arquitetura: camadas, microsserviços e RESTful APIs; Apresentação do projeto | |
| Code smells e refatoração | |
| Padrões GRASP; Separação de interesses, atribuição de responsabilidades e modularização | |
| Princípios SOLID: LSP e ISP; DIP e injeção de dependências | |
| 2ª Avaliação | |
| Padrões criacionais: Singleton, Abstract Factory | |
| Padrões estruturais: Facade, Composite, Decorator | |
| Padrões comportamentais: Strategy, Template Method, Observer | |
| 3ª Avaliação | |
| Reposição | |
| Prova Final |
Avaliações Programadas
| Avaliação | Data |
|---|---|
| 1ª Avaliação | |
| 2ª Avaliação | |
| 3ª Avaliação (projeto) | |
| Reposição (1ª) | |
| Exame Final |
Recursos e Ferramentas Digitais Utilizados
- Recursos: Computador pessoal/universitário por pelo menos 6h/semana; Google Meet para atendimentos síncronos
- Ferramentas: IDE para Java (IntelliJ recomendado, VSCode ou Eclipse), JDK instalado, grupo de WhatsApp para avisos rápidos, avisos oficiais via SIGAA
Bibliografia
Básica
- BLOCH, Joshua. Java Efetivo. 3.ed. rev. Rio de Janeiro: Alta Books, 2019.
- DEITEL, Harvey M.; DEITEL, Paul J. Java: como programar. 10a. ed. São Paulo: Pearson Prentice Hall, 2017.
- FOWLER, Martin. Refatoração - Aperfeiçoando o Projeto de Código Existente. Bookman, 2004.
- GAMMA, Erich et al. Padrões de projeto: soluções reutilizáveis de software orientado a objetos. Porto Alegre: Bookman, 2000, 2008.
- HORSTMANN, Cay. Conceitos de Computação em Java. 5a. ed. Bookman, 2009.
- LARMAN, C. Utilizando UML e Padrões. 3a. ed. Porto Alegre: Bookman, 2007.
- SCHILDT, Herbert. Java para Iniciantes. 6a. ed. Bookman, 2015.
- WINDER, Russel; GRAHAM, Roberts. Desenvolvendo Software em Java. 3a. ed. Rio de Janeiro: LTC, 2009.
Complementar
- BARNES, David J; KÖLLING, Michael. Programação orientada a objetos com Java. 4a. ed. São Paulo: Pearson Prentice Hall, 2009.
- KERIEVSKY, Joshua. Refatoração para Padrões. 1a. ed. Porto Alegre: Bookman, 2008.
- MARTIN, Robert C. Código limpo: Habilidades práticas do Agile Software. Alta Books, 2009.
- URMA, Raoul-Gabriel; WARBURTON, Richard. Desenvolvimento Real de Software. 1a edição. Alta Books, 2021.
Planos de Curso de Períodos Anteriores
2025.1 Análise e Projetos de Sistemas
Last updated 15 set. 2025, 11:58 -0300 .