Modelagem e Projeto de Software

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.

Sumário

Conteúdo Programático

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.