Ricardo Pereira e Silva UML 2 Modelagem Orientada a Objetos Visual Books
Sumário Parte I - Modelagem em Desenvolvimento de Software Orientado a Objetos...15 1 Modelagem em Desenvolvimento de Software...17 1.1 Engenharia de Software... 17 1.2 A Complexidade Crescente e o Paradoxo da Produção de Software... 19 1.3 Análise e Projeto Orientados a Objetos... 22 1.3.1 Análise Orientada a Objetos... 23 1.3.2 Projeto Orientado a Objetos... 24 1.4 Processo de Desenvolvimento de Software... 25 1.5 Características das Linguagens para Especificação de Análise e Projeto... 27 1.6 O Uso de Especificações no Processo de Modelagem... 30 2 A Estrutura de um Programa Orientado a Objetos...33 2.1 Os Elementos de um Programa Orientado a Objetos em Tempo de Desenvolvimento... 33 2.2 Os Elementos de um Programa Orientado a Objetos em Tempo de Execução... 36 2.3 A Compreensão de um Programa Orientado a Objetos... 40 3 O Diagrama de Classes de UML...43 3.1 Classes, Atributos e Métodos... 44 3.2 Relacionamentos entre Classes... 49 3.2.1 Herança... 49 3.2.2 Agregação... 52 3.2.3 Associação... 54 3.3 Outros Relacionamentos Previstos em UML... 57 3.4 Interface... 58 3.5 Estereótipo... 59 3.6 Considerações a Respeito da Modelagem com Diagramas de Classes... 61 4 Modelagem Estrutural e Modelagem Dinâmica em Orientação a Objetos...63 4.1 Requisitos para uma Modelagem Completa... 63 4.1.1 Um Exemplo de Notação Anterior à UML... 65 4.1.2 Necessidades para Geração de Código e Manutenção... 69 4.1.3 Requisitos para Modelagem de Sistemas Físicos e de Software... 72
4.2 Conteúdo dos Quatro Pontos de Vista Essenciais... 75 Parte II - A Linguagem UML...79 5 Visão Geral de UML...81 5.1 Histórico de UML... 81 5.2 Estrutura da Especificação de UML... 83 5.3 Organização dos Diagramas de UML... 84 5.4 Diagramas de UML... 85 5.4.1 Diagrama de Classes... 86 5.4.2 Diagrama de Objetos... 87 5.4.3 Diagrama de Pacotes... 87 5.4.4 Diagrama de Estrutura Composta... 88 5.4.5 Diagrama de Componentes... 89 5.4.6 Diagrama de Utilização... 90 5.4.7 Diagrama de Casos de Uso... 91 5.4.8 Diagrama de Seqüência... 91 5.4.9 Diagrama de Comunicação... 92 5.4.10 Diagrama de Máquina de Estados... 92 5.4.11 Diagrama de Atividades... 93 5.4.12 Diagrama de Visão Geral de Interação... 94 5.4.13 Diagrama de Temporização... 95 5.4.14 Classificação dos Diagramas de UML segundo o Critério dos Quatro Pontos de Vista... 95 5.5 Comparação entre a Primeira e a Segunda Versão de UML... 96 5.6 Moldura e Cabeçalho... 98 5.7 Para ver mais Detalhes dos Diagramas de UML... 100 6 O Diagrama de Casos de Uso de UML...101 6.1 Caso de Uso... 101 6.2 Ator... 103 6.3 Relações entre Elementos do Diagrama de Casos de Uso... 106 6.3.1 Associação entre Ator e Caso de Uso... 106 6.3.2 Associação entre Casos de Uso... 108 6.3.3 Associação entre Atores... 112 6.4 Ponto de Extensão em Caso de Uso... 113 6.5 Considerações a Respeito da Modelagem de Casos de Uso... 113 7 Diagramas de UML para Modelagem de Interação de Objetos...117 7.1 A Interação de Objetos em UML...117 7.2 Objeto... 119 7.3 Mensagem... 120 7.4 Um Primeiro Exemplo de Modelagem de Interação... 122
7.5 Diagrama de Seqüência... 126 7.5.1 Elementos Sintáticos que Complementam Objetos e Mensagens... 126 7.5.2 Criação e Destruição de Objeto... 128 7.5.3 Retorno... 128 7.5.4 Fragmento Combinado... 129 7.5.5 Uso de Interação (Referência)... 135 7.5.6 Continuação... 136 7.5.7 Portão (Gate)... 138 7.5.8 Decomposição de Parte... 138 7.5.9 Invariante de Estado... 139 7.6 Diagrama de Comunicação... 140 7.7 Considerações a Respeito da Modelagem de Interação de Objetos... 140 8 O Diagrama de Máquina de Estados de UML...141 8.1 Estado de Objeto... 142 8.2 Transição de Estado... 146 8.3 Pseudo-estados Equivalentes a Comandos... 148 8.4 Modelagem com Estados Compostos... 149 8.5 Estruturação da Modelagem com Estado Submáquina... 150 8.6 Modelagem de Evolução de Estados com Paralelismo... 152 8.7 Considerações a Respeito da Modelagem de Estados... 153 9 O Diagrama de Atividades de UML...155 9.1 Atividades e Ações... 155 9.2 Fluxo de Controle... 158 9.3 Tratamento de Objetos no Diagrama de Atividades... 162 9.4 Partição de Atividade... 165 9.5 Comunicação em Diagrama de Atividades... 166 9.6 Nodos Agrupadores na Modelagem de Atividades... 167 9.7 Nodo Tratador de Exceção... 171 9.8 Modelagem de Workflow com Diagrama de Atividades... 172 9.9 Modelagem de Algoritmo de Método de Classe com Diagrama de Atividades... 173 9.9.1 Comandos Representáveis com um Único Elemento Sintático do Diagrama de Atividades... 174 9.9.2 Comandos Correspondentes a Invólucros de Coleções de Comandos... 176 9.9.3 Comandos sem Correspondência em Linguagens de Programação... 180 9.10 Considerações a Respeito da Modelagem com Diagrama de Atividades... 183
10 Os outros Diagramas de Interação de UML...185 10.1 Diagrama de Temporização... 185 10.1.1 Modelagem de Objetos... 186 10.1.2 Evolução de Estados com Restrições Temporais... 186 10.1.3 Comunicação com Restrições Temporais... 187 10.2 Diagrama de Visão Geral de Interação... 189 10.3 Considerações a Respeito da Modelagem com Diagramas de Temporização e de Visão Geral de Interação... 193 11 Quatro Diagramas de UML para Modelagem Estrutural.195 11.1 Diagrama de Classes... 195 11.2 Diagrama de Objetos... 196 11.3 Diagrama de Pacotes... 197 11.3.1 Pacote... 198 11.3.2 Relacionamentos Envolvendo Pacotes... 199 11.4 Diagrama de Estrutura Composta... 203 11.4.1 Modelagem de Composições de Instâncias no Diagrama de Estrutura Composta... 204 11.4.2 Modelagem de Colaborações no Diagrama de Estrutura Composta... 207 11.4.3 Um Exemplo de Modelagem com o Diagrama de Estrutura Composta... 211 11.5 Considerações a Respeito de Modelagem Estrutural em UML... 214 12 Suporte ao Desenvolvimento Baseado em Componentes de UML...215 12.1 A Abordagem de Desenvolvimento Baseado em Componentes... 215 12.2 Diagrama de Componentes... 217 12.2.1 Relacionamentos Envolvendo Componentes... 219 12.3 Diagrama de Utilização... 221 12.4 Considerações a Respeito da Modelagem de Software Baseado em Componentes... 224 13 Requisitos para um Procedimento de Modelagem com UML...225 13.1 Etapas para uma Modelagem que Gere uma Especificação com Conteúdo Mínimo... 225 13.2 Qualidade, Coesão e Consistência de Especificações Orientadas a Objetos... 227 13.3 Considerações a Respeito de Processos de Modelagem... 229 Referências...231