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
- 02. Introdução à Modelagem de Software
- 03. Análise e Projeto de Sistemas
- 04. Engenharia de Requisitos
- 05. Diagrama de Caso de Uso
- 06. Diagrama de Atividades
- 07. Diagrama de Classes de Análise
- 08. Modelagem de Interações de Análise
- 09. 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
- Referência Bibliográfica
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
- Diagrama de Classes (vídeo aula)
- Praticando o Diagrama de Classes I (vídeo aula)
- Técnicas para Identificação de Classes (vídeo aula)
- Categorização BCE (vídeo aula)
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
- DSS e Contratos (vídeo aula)
- Contratos de Operação (vídeo aula)
- Dúvidas sobre Diagramas de Classe e DSSs (vídeo aula)
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
- Praticando o Diagrama de Classes II (vídeo aula)
- Mapeando Modelos de Análise em Modelos do Projeto (vídeo aula)
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
- Diagrama de Classe de Projeto (vídeo aula)
- Dúvidas sobre Diagrama de Classes de Projeto e Arquitetura (vídeo aula)
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.