Informações

Pré-requisito: Engenharia de Software I

Ementa

Introdução. Modelagem de Casos de Uso. Modelagem de Classes. Modelagem de Interações, de Estados e de Atividades. Projeto de Software. Tópicos Avançados. Prática de estudo de caso.

Objetivos

Ao final da disciplina o aluno deve:

  • Compreender os conceitos da orientação a objetos no contexto da modelagem;
  • Entender as etapas que compõem a modelagem de sistemas e as técnicas aplicadas nesta atividade;
  • Compreender o processo de passagem da etapa de análise para a de projeto de sistemas;
  • Aplicar as técnicas de modelagem UML em estudos de casos de documentação de sistemas.

Conteúdo Programático

Sumário

  1. Orientação a Objetos
  2. Introdução à Modelagem de Software
  3. Análise e Projeto de Sistemas
  4. Engenharia de Requisitos
  5. Diagrama de Caso de Uso
  6. Diagrama de Atividades
  7. Diagrama de Classes de Análise
  8. Modelagem de Interações de Análise
  9. Análise para Projeto
  10. Diagrama de Interação
  11. Diagrama de Classe de Projeto
  12. Padrões
  13. Grasp
  14. Grasp Avançado
  15. Diagramas de Objetos e Pacotes
  16. Modelagem de Estados
  17. Mapeamento de Projeto para Código

Tópicos de Aula

01. Orientação a Objetos

Conteúdo
  • Desenvolvimento de Sistemas
  • Gap Semântico
  • Paradigmas de Desenvolvimento
  • Benefícios do OO
  • Princípios Fundamentais
Materiais

02. Introdução à Modelagem de Software

Conteúdo
  • Modelo
  • Razões para Modelar um Software
  • UML
  • Elementos da UML
  • Mecanismos Básicos da UML
Materiais

03. Análise e Projeto de Sistemas

Conteúdo
  • Dificuldades no Desenvolvimento de Software
  • Processo de Software
  • Análise e Projeto de Software
  • Metodologias de Projetos
  • Atividades do Projeto OO
Materiais

04. Engenharia de Requisitos

Conteúdo
  • Elicitação de requisitos
  • Requisitos de usuário
  • Requisitos de sistema
  • Requisitos funcionais
  • Requisitos não funcionais
  • Padronização de escrita
Materiais

05. Diagrama de Caso de Uso

Conteúdo
  • Caso de uso
  • Atores primários e secundários
  • Cenários
  • Fluxo Alternativo
  • Diagram de caso de uso
  • Relacionamentos de associação, inclusão, extensão e generalização
  • Regras de Negócio
  • Tipos de descrições
  • Pré e pós-condições
Materiais

06. Diagrama de Atividades

Conteúdo
  • Fluxograma
  • Diagrama de Atividades
  • Pontos de Ramificação e União
  • Fluxo de Controle Paralelo
  • Raias de Natação
Materiais

07. Diagrama de Classes de Análise

Conteúdo
  • Categorias de Conceitos
  • Análise Textual Abbott
  • Análise de Caso de Uso
  • Categorização BCE
Materiais

08. Modelagem de Interações de Análise

Conteúdo
  • Mensagem
  • Responsabilidade
  • Operações
  • Diagrama de Sequência de Sistema
  • Contrato de Operações
Materiais

09. Análise para Projeto

Conteúdo
  • Objetivos dos modelos de análise e projeto
  • Principais atividades do projeto
  • Conversão dos modelos de análise para projeto
  • Especificação das classes de fronteira, classes de controle e classes de entidades
Materiais

10. Diagrama de Interação

Conteúdo
  • Objetivos dos modelos de análise e projeto
  • Principais atividades do projeto
  • Conversão dos modelos de análise para projeto
  • Especificação das classes de fronteira, classes de controle e classes de entidades
Materiais

11. Diagrama de Classe de Projeto

Conteúdo
  • Modelos de domínio e projeto
  • Esteriótipos
  • Valores etiquetados
  • Diagrama de classe
  • Diagrama de sequência
  • Diagrama de comunicação
Materiais

12. Padrões

Conteúdo
  • Responsabilidades
  • Padrão
  • Categoria de Padrões
  • Design Patterns
  • GRASP
  • Anti-Padrões
  • Framework
Materiais

13. Grasp

Conteúdo
  • Projeto orientado a objetos
  • Projeto dirigido por responsabilidades
  • Reponsabilidades de um objeto
  • Granularidade das responsabilidades
  • Criador
  • Especialista da informação
  • Baixo acoplamento
  • Controlador
  • Alta coesão
Materiais

14. Grasp Avançado

Conteúdo
  • Polimorfismo
  • Indireção
  • Invenção pura
  • Variações protegidas
  • Princípio do conhecimento mínimo
  • Princípio de substituição de Liskov
  • Ocultamento de Informação
  • Princípio aberto-fechado
Materiais

15. Diagramas de Objetos e Pacotes

Conteúdo
  • Diagrama de Objetos
  • Pacotes
  • Visibilidade
  • Dependências

16. Modelagem de Estados

Conteúdo
  • Estado
  • Transição de Estados
  • Estado Inicial e Final
  • Eventos
  • Tipos de Eventos
  • Ações
  • Pontos de Junção
  • Cláusulas

17. Mapeamento de Projeto para Código

Conteúdo
  • Mapeamento do diagrama de classe
  • Mapeamento do diagrama de sequência
  • Mapeamento do diagrama de comunicação
Materiais

Referência Bibliográfica

Principais

  • Utilizando UML e Padrões: Uma Introdução à Análise e ao Projeto Orientados a Objetos e ao Desenvolvimento Iterativo. Craig Larman.Bookman; Edição: 3
  • Princípios de Análise e Projeto de Sistemas com UML. Eduardo Bezerra. Elsevier; Volume: 2

Complementares

  • Gamma, Erich. Padrões de projetos: soluções reutilizáveis. Bookman editora, 2009.
  • Fowler, Martin. UML Essencial: um breve guia para linguagem padrão. Bookman editora, 2014.
  • Fowler, Martin. Refatoração: Aperfeiçoamento e Projeto. Bookman Editora, 2009.
  • Kerievsky, Joshua. Refatoração para padrões. Bookman Editora, 2009.
  • Fowler, Martin. UML Essencial: um breve guia para linguagem padrão. Bookman editora, 2014.
  • Evans, Eric, and Eric J. Evans. Domain-driven design: atacando as complexidades no coração do software. Alta Books, 2016.
  • Martin, Robert C. Arquitetura limpa: o guia do artesão para estrutura e design de software. Alta Books, 2019.
  • Martin, Robert C. Código limpo: habilidades práticas do Agile software. Alta Books, 2019.