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)(2)
(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
          - Booch, G.  e Rumbaugh, J.  e Jacobson, I. (2005). The Unified Modeling Language User Guide. (Vol. 1). (pp. 1---). USA:  Addison Wesley
- Larman, C. (2004). Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development. (Vol. 1). (pp. 1---). USA:  Prentice Hall
- Nunes, M.  e O'Neill, H.  e Ramos, P. (2010). Exercícios de UML. (Vol. 1). (pp. 1---). Portugal:  Lidel
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.

















