Visão Geral e Dicas
Ementa
- Fundamentos e princípios de projeto de software orientado a objetos;
- Conceitos gerais sobre sistemas web e seu desenvolvimento;
- Elicitação e modelagem de requisitos de software e soluções de projeto;
- Noções de arquitetura de software;
- Padrões de projeto e refatoramento de software.
Objetivos
Capacitar o aluno em técnicas de projeto de software para o desenvolvimento de sistemas orientados a objetos. Especificamente, espera-se capacitar o aluno para:
- Entender os princípios da atividade de projeto de software orientado a objetos;
- Modelar e elicitar requisitos e soluções de software para o processo de desenvolvimento;
- Avaliar o uso de diferentes arquiteturas e padrões no projeto de software;
- Aplicar técnicas de projeto de software no desenvolvimento de sistemas orientados a objetos;
- Conhecer as principais tendências em projeto de software utilizadas na indústria e em software de código aberto.
Metodologia
Avaliação
** ⚠️ OBS: Avaliação do período 2022.1, talvez mude no futuro** A avaliação da disciplina é composta por questionários (peso 20%),laboratórios (peso 40%) e um projeto da disciplina (peso 40%).
- Os questionários são semanais e abordam o conteúdo apresentado naquela semana.
- Os laboratórios tem prazo de aproximadamente uma semana, e são a atualização do lab anterior (ou seja, problemas no lab de número x precisam ser corrigidos no lab x+1 e seguintes. Do contrário continuarão sendo descontados da nota).
- O projeto da disciplina tem o prazo de aproximadamente um mês e é passado no final do período. Ele é feito em grupos de 5.
Bibliografia recomendada
- Engenharia de Software Moderna
- Clean Code: A Handbook of Agile Software Craftsmanship
- Code Complete (Developer Best Practices)
- Program Development in Java: Abstraction, Specification, and Object-Oriented Design
- Utilizando UML e Padrões. Uma Introdução à Análise e ao Projeto Orientados a Objetos e ao Desenvolvimento Iterativo
- Use a Cabeça! Padrões de Projetos
- Pattern-Oriented Software Architecture, A System of Patterns: Volume 1
- Design Patterns com Java: Projeto orientado a objetos guiado por padrões
- Refatoração: Aperfeiçoando o Projeto de Código Existente
- A Philosophy of Software Design
Dicas
Os laboratórios da disciplina (que compõem 40% da nota total) são cumulativos. Ou seja, é necessário corrigir os erros de um laboratório no próximo ou então a nota continuará sendo descontada em cada entrega. É importante estar tento a correção dos monitores e buscar a ajuda deles (caso sinta necessidade) para tais correções assim que possível. Os labs não são tão complexos, mas as vezes algum detalhe pode te pegar desprevinido e tomar bastante tempo. O ideal é começar o quão antes e ir tirando as dúvidas com os monitores antes do prazo de entrega "apertar".
Quanto ao projeto da disciplina. É importante que haja uma boa divisão de tarefas entre o grupo e que se planeje bem a implementação antes de começá-la defato. Desse jeito, na hora de programar vai ser muito mais tranquilo.