Como Modelar com UML 2

Documentos relacionados
FORMULÁRIO DE REGISTRO DE PLANO DE CURSO 2013.I

RUP Unified Process. Profª Jocelma Rios

Requisitos de sistemas

Notas de Aula 03: Introdução a Orientação a Objetos e a UML

Análise e Projeto Orientados a Objetos

APÊNDICE D Unified Model Language (UML)

Prof. Esp. Fabiano Taguchi

POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos

Programação Estruturada Orientada a Objetos

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 15 PROFª BRUNO CALEGARO

UML 2.0 Método, Linguagem e Ferramenta. Prof. Cesar Augusto Tacla

ENGENHARIA DE SOFTWARE

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F.

1 Introdução. 1.1 Teoria dos Sistemas 23/4/2010

Engenharia de Software. Projeto de Software. Projeto: definição. Profa. Dra. Lúcia V. L. Filgueiras Profa. Dra. Selma Shin Shimizu Melnikoff

Aula 15 Modelagem de Classes de Análise. Análise de Sistemas Prof. Filipe Arantes Fernandes

Requisitos de Sistemas

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2

Levantamento, Análise e Gestão Requisitos. Aula 03

Introdução à UML. Prof. Jesus José de Oliveira Neto

Especificação de Sistemas de Software e a UML

DIAGRAMAS DE CLASSE UML

UML (Unified Modelling Language)

Ciência da Computação. Análise e Projeto Orientado a Objetos UML. Anderson Belgamo

Curso de Sistemas de Informação. Karla Donato Fook DESU / DComp. Modelagem de Dados UML

15/04/2013. Pensar Orientado a Objetos. Projeto Orientado a Objetos. Características de Objetos. Classe de Objetos. Comunicação entre Objetos

A crise do software As duas abordagens actuais para o desenvolvimento de software: abordagem clássica abordagem orientada para objectos

6.CONCLUSÕES CONCLUSÕES

Capítulo 5 Modelação do Sistema 1

A Linguagem UML. A Linguagem UML. De onde surgiu? Fundadores da UML. História da UML. O que é modelagem?

Curso SISTEMAS DE INFORMAÇÃO Série 3 Disciplina Análise e Projeto Orientados a Objetos

UML Diagrama de Atividades Diagrama de Caso de Uso. ENG1518/3VB Sistemas de Informação Gerenciais Prof. Marcos Villas

UML. Modelando um sistema

Modelagem de Sistemas. Análise de Requisitos. Modelagem

MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE)

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 12 PROFª BRUNO CALEGARO

UML. Rodrigo Leite Durães.

MÓDULO 8 INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA POR OBJETOS O QUE É A PROGRAMAÇÃO ORIENTADA POR OBJETOS 10

Capítulo 2. Orientação a Objetos

27) Em relação aos Projetos de Sistemas de Software, assinale a sequência correta de desenvolvimento de um sistema:

Sumário. Capítulo 1 Introdução 29. Capítulo 2 Utilizando Objetos 59

UML e seus diagramas

PUC-GO- ADS: Prof. Vicente P. de Camargo. Desenvolvimento de Aplicações para Cliente Servidor

SEMINÁRIOS INTEGRADOS EM SISTEMAS DE INFORMAÇÃO. Luiz Leão

Introdução à Análise e Projeto de Sistemas

TCC EM SISTEMAS DA INFORMAÇÃO. Aula 9- Modelando um Sistema com a UML parte 2

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Análise e projeto de sistemas

Introdução à UML. Universidade Federal de Mato Grosso do Sul Sistemas de Informação - CPCX. Prof. Fernando Maia da Mota

Engenharia de Software

FACULDADE DE CIÊNCIA DE ENGENHARIA DE SOFTWARE MATRIZ CURRICULAR DO CURSO DE ENGENHARIA DE SOFTWARE PRIMEIRO PERÍODO SEGUNDO PERÍODO

UML (Linguagem Modelagem Unificada) João Paulo Q. dos Santos

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPI JOÃO CÂMARA RATIONAL UNIFIED PROCESS - RUP

Modelagem Orientada a Objetos

Aula 01 Conceito de Banco de Dados e SGBD

CONCEITOS BÁSICOS E MODELO DE PROJETO

Ederson Luiz da Silva Ciência da Computação. Algoritmos e Programação

Departamento de Sistemas de Computação Universidade de São Paulo Análise e Projeto Orientados a Objetos Aula 2 O Processo Unificado (PU)

Princípios de Análise e Projeto Orientados a Objetos com UML

O Processo Unificado (PU) SSC 121 Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

Introdução. Parte 01. Desenvolvimento de Programação Orientada a Objetos. Prof. Pedro Neto

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA UML UNIFIED MODELING LANGUAGE

CURSO DE SISTEMAS DE INFORMAÇÕES

MODELAGEM DE SISTEMAS. Introdução a Computação e Engenharia de Software. Profa. Cynthia Pinheiro

UML - Unified Modeling Language

Unidade II MODELAGEM DE PROCESSOS. Profa. Gislaine Stachissini

6 Conclusão. 6.1 Trabalhos relacionados

Programação Orientada a Objeto

REUSO E REUSABILIDADE

Introdução a Orientação a Objetos

Diagrama de Classes. Régis Patrick Silva Simão. Régis Simão Diagrama de Classes 1/42

Fundamentos de Programação

Projeto de Desenvolvimento de Software

Engenharia de Software. Prof. Me. Clodoaldo Brasilino

Agenda TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS. Aula 3 21/08/2012

Fundamentos de Orientação a Objetos

PCS3413 Engenharia de Software e Banco de Dados

INTRODUÇÃO À ENGENHARIA DE SOFTWARE. Prof.: Tiago Alves

Um Método para o Desenvolvimento de Software Baseado em Componentes e Aspectos

PROJETO DE PROGRAMAS. Projeto de Programas PPR0001

Introdução a UML (Unified Modeling Language)

Processos de Software

FIC-POO. Aula 1.1 Apresentação do Curso e Introdução aos Paradigmas de Programação. Prof. Dr. Bruno Moreno

Plano de Aula - Lógica de Programação - cód Horas/Aula

Introdução. à UML. Histórico (cont.) Histórico Definição Benefícios Notação Diagrama de Classes Diagramas de Interação Conclusões Revisão

Linguagem de Programação I Apresentação da Disciplina

Lista DFD. O diagrama de contexto pode ser considerado um DFD especial. ( ) Certo ( ) Errado

Análise e Projeto de Sistemas I. Curso de Sistemas de Informação. Karla Donato Fook DESU / DComp.

Visão Geral do RUP (Rational Unified Process)

Laboratório de programação II

Análise de Sistemas. Aula 5

Análise. Orientada a Objetos Modelo Funcional, Modelo Estrutural e Modelo Comportamental. Linguagens: Java, C++, etc.

Protótipo de Editor Gráfico de Fluxogramas para Representação de Comandos da Linguagem Portugol

Princípios de análise e projeto de sistemas com UML

Transcrição:

Ricardo Pereira e Silva Como Modelar com UML 2 Visual Books

Sumário Prefácio... 13 1 Introdução à Modelagem Orientada a Objetos... 17 1.1 Análise e Projeto Orientados a Objetos... 18 1.2 Requisitos para uma Especificação de Projeto Completa... 20 1.3 Vertentes das Metodologias de Análise e Projeto Orientados a Objetos... 22 1.4 Os Princípios da Abordagem de Modelagem Proposta... 25 1.5 As Etapas de Modelagem... 26 1.6 Organizar e Aprimorar os Diagramas Produzidos... 27 2 Modelagem Estrutural e Dinâmica em Alto Nível de Abstração... 29 2.1 O Início do Processo de Modelagem OO... 29 2.2 Primeiro Esforço de Modelagem Estrutural... 31 2.3 Primeiro Esforço de Modelagem Dinâmica... 34 2.3.1 Modelagem com Diagrama de Casos de Uso... 35 2.3.2 Modelagem com Diagrama de Visão Geral de Interação... 39 2.4 Resultados Parciais após a Primeira Etapa do Processo de Modelagem.. 41 2.5 Sumário da Primeira Etapa do Processo de Modelagem... 42 3 Primeiro Refinamento Estrutural... 45 3.1 Identificação de Características dos Elementos do Domínio do Problema... 46 3.2 Características Estruturais Inferidas dos Casos de Uso... 47 3.3 Resultados Parciais até a Segunda Etapa do Processo de Modelagem... 48 3.4 Sumário da Segunda Etapa do Processo de Modelagem... 49 4 Refinamento de Casos de Uso... 51 4.1 Alternativas para o Refinamento de Casos de Uso... 51 4.1.1 Primeira Possibilidade: Caso de Uso, Direto ao Código... 53 4.1.2 Segunda Possibilidade: Refinamento Textual... 53 4.1.3 Terceira Possibilidade: Refinamento Diagramático... 53 4.1.4 Quarta Possibilidade: Refinamentos Textual e Diagramático... 55 4.2 O Processo de Refinamento dos Casos de Uso... 56 4.2.1 Os Estágios do Processo... 56 4.2.2 O que Fazer: Modelagem com Diagrama de Atividades... 57 4.2.2.1 Primeira Modelagem em Diagrama de Atividades... 57 4.2.2.2 Detalhamento da Primeira Modelagem em Diagrama de Atividades... 58 4.2.2.3 Avaliação da Influência dos Demais Casos de Uso Sobre a Modelagem de Cada Caso de Uso... 59 4.2.2.4 Critérios a Aplicar na Modelagem com Diagrama de Atividades... 64 4.2.2.5 Possibilidade de Explicitar o Diálogo com Elementos Externos na Modelagem com Diagrama de Atividades... 66

4.2.3 Ênfase a Quem Faz (Cenário Principal): Modelagem com Diagrama de Comunicação... 67 4.2.3.1 A Identificação dos Métodos das Classes Durante a Construção do Diagrama de Comunicação... 67 4.2.3.2 Um Exemplo de Refinamento de Diagrama de Atividades Associado a Caso de Uso, por Meio de Diagrama de Comunicação... 68 4.2.4 Ênfase a quem Faz (Todos os Cenários): Modelagem com Diagrama de Seqüência... 76 4.2.4.1 O Uso Conjunto dos Diagramas de Seqüência e de Comunicação... 76 4.2.4.2 A Identificação dos Métodos das Classes Durante a Construção do Diagrama de Seqüência... 77 4.2.4.3 Um Exemplo de Refinamento de Caso de Uso por Meio de Diagrama de Seqüência... 78 4.2.4.4 Detalhamento do Caso de Uso no Escopo do Diagrama de Seqüência... 80 4.2.4.5 Detalhamento de Diagrama de Seqüência em Outro Diagrama de Seqüência... 83 4.2.4.6 A Conclusão do Esforço de Refinamento de Caso de Uso em Diagrama de Seqüência... 85 4.3 Efeitos Colaterais do Refinamento de Casos de Uso... 88 4.4 Resultados Parciais até a Terceira Etapa do Processo de Modelagem... 90 4.5 Sumário da Terceira Etapa do Processo de Modelagem... 91 5 Modelagem de Estados Associada a Classe... 93 5.1 Um Ponto de Vista Diferente em Relação às Etapas Anteriores... 93 5.2 Passos e Critérios do Esforço de Modelagem de Estados... 95 5.2.1Avaliação da Adequação da Modelagem de Estados para cada Classe... 95 5.2.2 Definição da Ênfase Adequada na Modelagem de Estados... 96 5.2.3 Identificação de Estados... 97 5.2.4 Identificação de Possíveis Percursos de Transição de Estados... 97 5.2.5 Avaliação dos Atributos e Respectivos Valores Associados a cada Estado... 100 5.3 A Obtenção de Algoritmos Bem Estruturados por Meio da Modelagem de Estados... 102 5.4 Resultados Parciais até a Quarta Etapa do Processo de Modelagem... 109 5.5 Sumário da Quarta Etapa do Processo de Modelagem... 109 6 Introdução de Elementos do Domínio da Solução Computacional... 111 6.1 A Fronteira entre a Análise e o Projeto... 111 6.2 O Tratamento dos Elementos do Domínio da Solução Computacional.. 113 6.2.1 Acrescentar ou Alterar?... 115 6.2.2 A Identificação das Necessidades Computacionais... 116 6.3 Exemplos de Inserção de Elementos do Domínio da Solução Computacional no Escopo da Modelagem do Jogo-da-velha... 117 6.3.1 Exemplo 1: Interface para o Jogo-da-velha... 117 6.3.2 Exemplo 2: Persistência para o Jogo-da-velha... 122 6.3.3 Generalização da Prática Aplicada aos Exemplos... 127

6.4 Resultados Parciais até a Quinta Etapa do Processo de Modelagem... 129 6.5 Sumário da Quinta Etapa do Processo de Modelagem... 129 7 Destaque de Situações Especiais na Modelagem... 131 7.1 Modelagem da Dinâmica de Interfaces Gráficas... 132 7.2 Destaque de Arranjos Estruturais... 134 7.2.1 Destaque do Relacionamento entre Objetos... 134 7.2.2 Destaque de Vínculos de Composição... 135 7.2.3 Destaque de Arranjos Funcionais... 137 7.3 Modelagem dos Elementos que Compõem a Implementação... 138 7.4 Modelagem de Restrições Temporais... 139 7.5 Resultados Parciais até a Sexta Etapa do Processo de Modelagem... 140 7.6 Sumário da Sexta Etapa do Processo de Modelagem... 141 8 Modelagem de Algoritmo de Método... 143 8.1 Desenvolvimento Iterativo Apoiado nos Quatro Pontos de Vista Fundamentais... 143 8.2 O Momento de Modelar Algoritmos de Métodos... 148 8.3 Comandos de Métodos e os Elementos Sintáticos do Diagrama de Atividades... 148 8.3.1 Comandos Representáveis com um Único Elemento Sintático do Diagrama de Atividades... 148 8.3.2 Comandos Correspondentes a Invólucros de Coleções de Comandos... 149 8.3.3 Comandos sem Correspondência em Linguagens de Programação... 150 8.3.4 Linguagem Formal para a Parte Textual... 151 8.4 A Busca de Subsídios para os Algoritmos no Restante da Modelagem.. 151 8.4.1 Influência dos Diagramas de Seqüência nos Métodos... 152 8.4.2 Influência dos Diagramas de Máquina de Estados nos Métodos... 153 8.4.3 Juntando as Influências para Definir Algoritmo de Método... 155 8.5 Quais Métodos Devem ser Modelados e Como Modelá-los?... 156 8.6 Resultados Parciais até a Sétima Etapa do Processo de Modelagem... 159 8.7 Sumário da Sétima Etapa do Processo de Modelagem... 160 9 Geração de Código e o Desenvolvimento Iterativo... 163 9.1 Geração de Código... 163 9.1.1 Tradução da Especificação Produzida... 164 9.1.2 O Quinto Ponto de Vista... 164 9.2 Iterar até Quando?... 170 9.3 Resultados Parciais até a Oitava Etapa do Processo de Modelagem... 171 9.4 Sumário da Oitava Etapa do Processo de Modelagem... 172 10 Desenvolvimento Orientado a Componentes... 173 10.1 Desenvolvimento Orientado a Componentes e Desenvolvimento Orientado a Objetos... 174 10.2 Componente, Interface, Porto... 175 10.3 A Estrutura de um Artefato de Software Baseado em Componentes... 177 10.4 Os Primórdios do Desenvolvimento Orientado a Componentes... 177 10.5 Demandas da Descrição de Componentes... 179

10.6 Diferentes Pontos de Vista na Modelagem Envolvendo Componentes. 181 10.7 Visão Externa de um Componente com UML... 182 10.7.1 Modelagem Estrutural de Interface de Componente... 182 10.7.2 Modelagem Comportamental de Interface de Componente... 184 10.7.3 Modelagem Funcional de Interface de Componente... 190 10.8 Especificação Estrutural de um Software Baseado em Componentes... 193 10.8.1 Componentes Utilizados e suas Dependências... 193 10.8.2 A Organização dos Componentes... 194 10.9 Especificação Arquitetônica de Software Baseado em Componentes... 196 10.10 Avaliação de Compatibilidade entre Componentes... 197 10.10.1 Avaliação de Compatibilidade Estrutural... 197 10.10.2 Avaliação de Compatibilidade Comportamental... 198 10.10.3 Avaliação de Compatibilidade Funcional... 203 10.11 Compatibilização de Componentes... 204 10.11.1 Compatibilização de Componentes por Empacotamento... 204 10.11.2 Compatibilização de Componentes por Colagem... 205 10.12 Projeto de Componente com UML... 205 10.12.1 Especificação de Características da Interface de um Componente... 206 10.12.2 Interface de Componente como um Artefato de Software Orientado a Objetos... 207 10.12.3 Projeto da Estrutura Interna de um Componente... 215 10.13 A Concepção de Software Orientado a Componentes... 216 10.13.1 Iniciando com a Modelagem de Casos de Uso... 216 10.13.2 A Definição do Conjunto de Componentes... 217 10.13.3 A Definição dos Portos, Métodos e Interfaces... 220 10.13.4 Finalização da Visão Externa dos Componentes... 221 10.13.5 Desenvolvimento dos Componentes... 222 10.13.6 Integração dos Componentes... 222 10.14 Sumário do Desenvolvimento Orientado a Componentes... 223 10.14.1 Desenvolvimento de Aplicação Orientada a Componentes... 223 10.14.2 Desenvolvimento de Componente... 224 11 Organização da Especificação Orientada a Objetos... 227 11.1 A Especificação Orientada a Objetos Organizada como Árvore... 228 11.2 Alta Complexidade nos Elementos da Raiz... 229 11.3 Um Caso Especial no Tratamento da Alta Complexidade na Raiz... 232 11.4 Os Outros Elementos Além da Raiz... 233 11.4.1 Pacote Modelagem de Classes... 235 11.4.2 Pacote Modelagem de Casos de Uso... 236 11.4.3 Pacote Especificidades de Implementação... 237 11.4.4 Organização de Software Baseado em Componentes... 238 11.5 Sumário da Organização de Elementos da Especificação... 239 12 Avaliação de Consistência da Especificação de Projeto... 241 12.1 Busca de Inconsistência em Diagramas do Mesmo Tipo... 241 12.1.1 Avaliação da Modelagem em Diagrama de Classes... 241

12.1.2 Avaliação da Modelagem em Diagrama de Casos de Uso... 243 12.1.3 Avaliação da Modelagem em Diagrama de Visão Geral de Interação... 243 12.1.4 Avaliação da Modelagem em Diagrama de Atividades... 244 12.1.5 Avaliação da Modelagem em Diagrama de Comunicação e de Seqüência... 245 12.1.6 Avaliação da Modelagem em Diagrama de Máquina de Estados... 246 12.1.7 Avaliação da Modelagem em Diagrama de Pacotes, de Objetos e de Estrutura Composta... 247 12.1.8 Avaliação da Modelagem em Diagrama de Utilização... 247 12.1.9 Avaliação da Modelagem em Diagrama de Componentes... 247 12.1.10 Avaliação da Modelagem em Diagrama de Temporização... 247 12.2 Busca de Inconsistência entre Diagramas de Diferentes Tipos... 248 12.2.1 Busca de Inconsistência na Estruturação da Especificação... 248 12.2.2 Busca de Inconsistência no Refinamento de Casos de Uso... 248 12.2.3 Busca de Inconsistência na Modelagem de Algoritmos... 249 12.3 Avaliação da Correspondência entre Projeto e Código... 250 12.4 Automatização do Procedimento de Busca de Inconsistências... 251 13 Incremento da Qualidade da Especificação de Projeto... 253 13.1 Os Benefícios da Boa Estruturação... 253 13.1.1 Manutenibilidade... 253 13.1.2 Reusabilidade... 254 13.2 Indicadores de Boas Características... 254 13.2.1 Acoplamento... 255 13.2.2 Coesão... 257 13.2.3 Complexidade... 257 13.2.4 Encapsulamento de Dados... 258 13.3 A Busca das Boas Características... 259 13.3.1 Herança e Polimorfismo... 259 13.3.2 Delegação... 260 13.4 Situações a Considerar no Esforço de Aprimoramento da Especificação... 261 13.4.1 Oportunidades de Quebra de Complexidade... 261 13.4.2 Oportunidades de Explorar Herança e Polimorfismo... 265 13.4.3 Oportunidades de Reorganização... 268 13.5 Estratégia de Separação de Contextos... 270 13.6 Automatização do Procedimento de Busca de Qualidade Suspeita... 271 14 Frameworks Orientados a Objetos e Padrões... 273 14.1 Frameworks Orientados a Objetos... 274 14.1.1 Entendendo o que Exatamente é um Framework Orientado a Objetos.. 274 14.1.2 Delegação, Herança e Polimorfismo em Frameworks Orientados a Objetos... 280 14.1.3 Oportunidades e Desafios dos Frameworks Orientados a Objetos... 281 14.2 Padrões... 283 14.2.1 Padrões de Projeto... 284

14.2.2 Padrões de Análise e Antipadrões... 291 14.2.3 Delegação, Herança e Polimorfismo em Padrões... 292 14.3 Delegação, Herança e Polimorfismo na Prática de Desenvolvimento... 293 Referências... 295 Apêndice A: Visão Geral de UML... 297 1 Estrutura da Especificação de UML... 297 2 Organização dos Diagramas de UML... 297 3 Diagramas de UML... 298 3.1 Diagrama de Classes... 299 3.2 Diagrama de Objetos... 299 3.3 Diagrama de Pacotes... 300 3.4 Diagrama de Estrutura Composta... 301 3.5 Diagrama de Componentes... 301 3.6 Diagrama de Utilização... 302 3.7 Diagrama de Casos de Uso... 303 3.8 Diagrama de Seqüência... 303 3.9 Diagrama de Comunicação... 304 3.10 Diagrama de Máquina de Estados... 304 3.11 Diagrama de Atividades... 305 3.12 Diagrama de Visão Geral de Interação... 306 3.13 Diagrama de Temporização... 307 3.14 Classificação dos Diagramas de UML Segundo o Critério dos Quatro Pontos de Vista... 308 Apêndice B: Especificação de Requisitos do Programa Tratado nos Exemplos... 309 1 Introdução... 309 2 Visão Geral... 309 3 Requisitos de Software... 310 3.1 Requisitos Funcionais... 310 3.2 Requisitos Não-funcionais... 311 Apêndice C: Visão Geral das Etapas do Processo de Modelagem... 313 1 O Conjunto de Etapas... 313 2 Atividades de cada Etapa... 315