Responsável da Unidade Curricular
Paulo Baltarejo Sousa
ECTS
7
Teóricas
1
Práticas Laboratoriais
3
Esta UC fornece os conhecimentos, compreensão e competências iniciais e fundamentais sobre:
1. Algoritmia e programação
2. Processo de desenvolvimento de software (PDS) iterativo e incremental (I&I), em particular de sistemas de informação (SI)
3. Engenharia de requisitos (em particular de SI)
4. Análise de software Orientado por Objetos (OO)
5. Design de software OO
6. Programação OO
7. Testes de Software
No final da UC, o aluno deverá ser capaz de:
CO1. Interpretar e aplicar as dimensões e intervenientes do PDS, e em particular de SI (NB:2);
CO2. Implementar o PDS, em particular do processo I&I, de forma determinística (NB:3);
CO3. Implementar métodos de análise OO (NB:3);
CO4. Implementar métodos determinísticos de passagem da análise para o design (NB:3);
CO5. Implementar métodos, princípios e padrões simples (nomeadamente GRASP e SOLID) de design de software OO e boas práticas como Tell Don?t Ask, DRY, etc. (NB:3);
CO6. Implementar métodos e ferramentas de passagem do design para a implementação (NB:3);
CO7. Implementar artefactos e notações apropriadas na descrição do problema, da análise, do design e da solução (NB:3).
P1. Algoritmia e programação
- Estruturas de dados
- Estruturas de controlo de fluxo
- Procedimentos e funções
- Classe, objeto e método
P2. PDS
- Disciplinas (e.g. Requisitos, Análise, Design, Codificação, Teste)
- Tipos de processos (e.g. cascata, I&I, ágil)
P3. Engenharia de requisitos
- Análise de requisitos
- Requisitos funcionais e não funcionais
- Modelação visual: diagramas UML de casos de uso e de sequência
P4. Análise OO
- Métodos de identificação dos conceitos do domínio e suas relações
- Modelo de domínio
- Modelação visual: diagramas UML de classes e de estado
P5. Design OO
- Princípios RDD, GRASP, SOLID e TDD
- Definição de responsabilidades e comportamento
- Modelação visual: diagramas UML de classes, de sequência e de estado
- Introdução ao design de arquitetura de software por camadas
- Especificação de testes como design de software (TDD, BDD)
P6. Codificação OO
- Testes automáticos unitários (de regressão)
- Métodos de passagem do design para a implementação