Análise e Desenho de Software
Código
01063036Créditos ECTS
6Objetivos
- A. Identificar, analisar, especificar e validar requisitos funcionais de sistemas de software.
- B. Construir e relacionar modelos de análise e desenho orientados a objetos, utilizando adequadamente a notação UML.
- C. Conceber soluções de software orientadas a objetos que satisfaçam os requisitos especificados, atribuindo responsabilidades e definindo colaborações entre objetos.
- D. Selecionar, aplicar e justificar princípios GRASP e padrões GoF adequados à resolução de problemas de desenho orientado a objetos, identificando as suas principais vantagens e limitações.
Programa
- Desenvolvimento iterativo de software
1.1 Abordagens iterativas e incrementais
1.2 Enquadramento da análise e do desenho no processo de desenvolvimento de software
1.3 Evolução dos requisitos e dos modelos ao longo das iterações
1.4 Requisitos funcionais e requisitos não funcionais
1.5 Identificação, especificação e validação de requisitos - Análise orientada a objetos
2.1 Modelo de casos de uso e especificações textuais
2.2 Modelo de domínio
2.3 Diagramas de sequência do sistema e contratos de operações - Desenho orientado a objetos
3.1 Diagramas de interação
3.2 Diagramas de classes de desenho
3.3 Princípios de desenho GRASP
3.4 Atribuição de responsabilidades e realização dos casos de uso - Padrões de desenho
4.1 Conceito, seleção e aplicação de padrões
4.2 Padrões GoF de criação, estrutura e comportamento
4.3 Vantagens, limitações e adequação dos padrões aos problemas de desenho
Métodos de Ensino
Ao longo da unidade curricular são utilizadas metodologias de ensino-aprendizagem diversificadas, articulando a apresentação dos fundamentos com a resolução de problemas, a modelação e a análise crítica de soluções.
Nas aulas teórico-práticas são apresentados e discutidos os conceitos fundamentais, recorrendo a exemplos, resolução orientada de exercícios e análise de casos. Estas atividades promovem a participação ativa, a argumentação técnica e o feedback formativo.
Nas aulas práticas laboratoriais, os estudantes constroem, interpretam e relacionam modelos UML, aplicam princípios GRASP e padrões GoF e resolvem problemas de complexidade progressiva com recurso a ferramentas de modelação. As atividades seguem uma abordagem de aprendizagem baseada em problemas, promovendo a mobilização integrada dos conhecimentos, o pensamento crítico e a fundamentação das decisões de desenho.
As horas de contacto assíncronas decorrem através do Moodle e incluem atividades orientadas de preparação e consolidação, designadamente recursos multimédia, leitura orientada, quizzes com feedback automático, resolução de problemas, exercícios de modelação e revisão por pares. Estas atividades promovem a autorregulação e a consolidação progressiva das aprendizagens.
Sempre que adequado, são apresentados exemplos de implementação em Python e Java, valorizando os conhecimentos adquiridos anteriormente e promovendo a articulação com a unidade curricular de Programação Centrada em Objetos, lecionada em simultâneo. Esta estratégia reforça a relação entre modelação e implementação, mantendo a autonomia pedagógica de cada unidade curricular.
No último terço do semestre, os estudantes desenvolvem, em pequenos grupos, um projeto de aplicação centrado na análise e no desenho iterativo de uma solução orientada a objetos. O projeto é acompanhado através de entregas faseadas, discussão e feedback. Quando adequado, pode incidir sobre um problema comum ao projeto de Programação Centrada em Objetos, mantendo-se independentes os resultados de aprendizagem e a avaliação de cada unidade curricular.
O Moodle suporta a disponibilização de recursos, comunicação, submissões, acompanhamento do progresso e feedback formativo.
Bibliografia
Essencial:
- Larman, C. (2004) Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition). Prentice Hall. ISBN: 978-013-148-906-6
- Freeman, E., Robson, E. (2020). Head first design patterns: Building Extensible and Maintainable Object-Oriented Software. O'Reilly. ISBN: 978-1-492-07800-5
Complementar:
- Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1994). Design patterns: Elements of reusable object-oriented software. Addison-Wesley. ISBN: 978-0-201-63361-0.
- Rumbaugh, J., Jacobson, I., & Booch, G. (2004). The unified modeling language reference manual (2nd ed.). Addison-Wesley. ISBN: 978-0-321-24562-5.
