Publicação em Diário da República: Despacho n.º 12419/2016 - 14/10/2016
6 ECTS; 2º Ano, 1º Semestre, 45,0 PL + 30,0 TP + 5,0 OT , Cód. 814312.
Docente(s)
- Fernando Sérgio Hortas Rodrigues (1)
(1) Docente Responsável
(2) Docente que lecciona
Pré-requisitos
Conhecimento de uma linguagem de programação orientada a objetos.
Objetivos
1. Conhecer e saber utilizar as metodologias de análise e Desenho orientados ao Objeto
2. Conhecer e ser capaz de utilizar metodologias interativas e evolutivas, através do Unified Process e UML, bem como padrões de desenho
3. Conhecer as metodologias XP e SCRUM
Programa
1 - Categorias de Metodologias de Desenvolvimento de Software
- Categorias e características das metodologias de desenvolvimento de software
- Visão geral de metodologias de desenvolvimento de software populares: Waterfall, Scrum, Extreme Programming, Unified Process
2 Desenho e Análise orientados por objetos (OO)
- O que é a Análise e o Desenho
- Análise e Desenho orientados por objetos
- A Modelação visual - UML
3 A UML - Unified Modeling Language
- Princípios da Modelação
- Perspetivas de Arquiteturas orientadas a objetos
- Formas de utilização da UML
- Modelo conceptual da UML
- Os vários tipos de Entidades, Relações e Mecanismos Comuns
- Os diagramas da UML
4 Processos Iterativos, Evolutivos e Ágeis
- Características e vantagens do desenvolvimento Iterativo e Evolutivo
- O Processo Unificado (UP)
- Fases, Iterações e Milestones
- As disciplinas
5 Fase de Conceção (Inception)
- Características
- Duração
- Artefactos que se iniciam nesta fase
6 Requisitos Evolutivos
- O que são Requisitos
- Categorias de Requisitos
- Requisitos Evolutivos vs. Requisitos do tipo Waterfall
- Como encontrar requisitos
7 Casos de Uso (UCs)
- Atores, Cenários e Casos de Uso
- Para que servem os Use Cases
- Formatos de UCs (Resumido, Casual, Detalhado)
- Evolução dos UCs nas várias iterações
8 Fase de Elaboração
- As várias iterações da fase de Elaboração
- Os UCs durante as várias iterações
- Artefactos iniciados na fase de elaboração
9 Modelos de Domínio
- O que são e para que servem
- Classes conceptuais
- Métodos para encontrar classes conceptuais
- Atributos
- Atributos vs Classes
- Modelar com Classes de Descrição
- Associações
- Métodos para encontrar associações
10 Diagramas de Sequência do Sistema (DSSs)
- O que são e para que servem
- Relação entre DSSs e Use Cases
- Nomeação de Eventos de Sistema e Operações
- Contractos de Operação e suas características
- Como criar e escrever Contratos de Operação
- Os contratos de operação no contexto do UP
11 Requisitos para o Desenho
- Motivação para a passagem para as atividades de desenho
12 Diagramas de Interação
- Notação dos Diagramas de Sequência e Comunicação
- Notação dos Diagramas de Interação
13 Diagramas de Classe
- O que são e para que servem
- Notação dos diagramas de classe
- Diagramas de Classes de Desenho
- Classificadores
- Como mostrar atributos no diagrama de classes
- Anotações
- Operações e Métodos
- Estereótipos, Profiles e Tags
- Propriedades,
- Generalização, classes e métodos abstratos
- Dependências
- Interfaces
- Composição e Agregação
- Constraints
- Associação qualificada
- Classe de associação
- Classe Singleton
- Compartimentos definidos pelo utilizador
- Relação entre diagramas de interação e digramas de classes
14 GRASP General Responsibility Assignment Software Patterns
- Desenho de objetos com responsabilidades
- UML vs. Princípios de desenho
- Desenho de objetos: Entradas, Atividades e Saídas
- Responsabilidades e Orientação por Responsabilidade no desenho
- Metodologia GRASP para desenho OO
- Relações entre GRASP, Responsabilidades e UML
- Padrões
- O que são e para que servem
- Aplicação do GRASP ao desenho de objetos
- Creator
- Expert
- Low Coupling
- Controller
- High Cohesion
Metodologia de avaliação
Em todas as épocas de avaliação
Trabalhos Práticos (20%)
Projeto Prático (80%) - Na época final, discussão obrigatória. A falta implica a atribuição da nota de zero valores. Em avaliação periódica a discussão poderá ser solicitada pelo docente.
Bibliografia
- Figueira, H. e Marques, P. (2011). C# 4.0. : FCA
- Perkins, B. e Vibe Hammer, J. e D. Reid, J. (2015). Beginning C# 6 Programming with Visual Studio 2015. : Wrox
- Troelsen, A. (2007). Pro C# 2008 and the .NET 3.5 Platform. : Apress
Método de Ensino
Aulas teóricas expositivas para apresentação dos conteúdos programáticos. Aulas práticas laboratoriais para resolução de problemas e consolidação de conhecimentos utilizando o computador.
Software utilizado nas aulas
Visual Paradigm; plataforma de eLearning.