Metodologia de Desenvolvimento de Software

TeSP - Web e Dispositivos Móveis
5 ECTS; 2º Ano, 1º Semestre, 45,0 PL + 15,0 TP

Docente(s)
- Vasco Renato Marques Gestosa da Silva
- Fernando Sérgio Hortas Rodrigues

Pré-requisitos
Good knowledge of an object oriented language.

Objetivos
Proporcionar uma introdução à Análise e Desenho Orientados ao Objecto e metodologias iterativas e evolutivas, através do Unified Process e UML e ainda introduzir a utilização de padrões de desenho. A ling. Java é utilizada nos tópicos referidos quando necessário. Visão geral das metod. 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
- Perspectivas 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 Concepçã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 abstractos
- 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
Projecto Prático (100%)
O Projecto tem discussão obrigatório.

Bibliografia
- Larman, C. (2004). Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development . -: Prentice Hall
- Booch, G. e Rumbaugh, J. e Jacobson, I. (2005). The Unified Modeling Language User Guide. -: Addison Wesley
- Nunes, M. e O'Neill, H. e Ramos, P. (2010). Exercícios de UML. Lisboa: Lidel

Método de interação
Aulas teórico-práticas expositivas onde se descrevem os conceitos fundamentais. Aulas práticas de resolução de casos práticos e aplicação dos conceitos a cenários de utilização real.

Software utilizado nas aulas
Visual Pardigm (Community Edition)