Publicação em Diário da República: Aviso n.º 12718/2016 - 19/10/2016
5 ECTS; 2º Ano, 1º Semestre, 45,0 PL + 15,0 TP , Cód. 620018.
Docente(s)
            - Fernando Sérgio Hortas Rodrigues  (2)
(1) Docente Responsável
(2) Docente que lecciona
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
          - Booch, G.  e Rumbaugh, J.  e Jacobson, I. (2005). The Unified Modeling Language User Guide. -:  Addison Wesley
- Larman, C. (2004). Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development . -:  Prentice Hall
- Nunes, M.  e O'Neill, H.  e Ramos, P. (2010). Exercícios de UML. Lisboa:  Lidel
Método de Ensino
          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)

















