Sumário

 

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 24

1.3.2     Projeto Orientado a Objetos 25

1.4     Processo de desenvolvimento de software. 26

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  37

2.3     A compreensão de um programa orientado a objetos 42

 

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. 55

3.3     Outros relacionamentos previstos em UML. 57

3.4     Interface. 58

3.5     Estereótipo. 60

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 a 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 76

 

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. 86

5.4.1     Diagrama de classes 87

5.4.2     Diagrama de objetos 87

5.4.3     Diagrama de pacotes 88

5.4.4     Diagrama de estrutura composta. 89

5.4.5     Diagrama de componentes 90

5.4.6     Diagrama de utilização. 90 (deployment diagram)

5.4.7     Diagrama de casos de uso  91      

5.4.8     Diagrama de seqüência. 92

5.4.9     Diagrama de comunicação. 93

5.4.10   Diagrama de máquina de estados 93

5.4.11   Diagrama de atividades 94

5.4.12   Diagrama de visão geral de interação. 95

5.4.13   Diagrama de temporização. 97

5.4.14   Classificação dos diagramas de UML segundo o critério dos quatro pontos de vista  97

5.5     Comparação entre a primeira e a segunda versão de UML. 99

5.6     Moldura e cabeçalho. 101

5.7     Para ver mais detalhes dos diagramas de UML. 102

 

6    O diagrama de casos de uso de UML. 105

6.1     Caso de uso. 105

6.2     Ator 107

6.3     Relações entre elementos do diagrama de casos de uso. 110

6.3.1     Associação entre ator e caso de uso. 110

6.3.2     Associação entre casos de uso. 112

6.3.3     Associação entre atores 116

6.4     Ponto de extensão em caso de uso. 117

6.5     Considerações a respeito da modelagem de casos de uso. 118

 

7    Os diagramas de UML para modelagem de interação de objetos 121

7.1     A interação de objetos em UML. 121

7.2     Objeto. 123

7.3     Mensagem.. 123

7.4     Um primeiro exemplo de modelagem de interação. 126

7.5     Diagrama de seqüência. 130

7.5.1     Elementos sintáticos que complementam objetos e mensagens.   130

7.5.2     Criação e destruição de objeto. 132

7.5.3     Retorno. 132

7.5.4     Fragmento combinado. 133

7.5.5     Uso de interação (referência) 139

7.5.6     Continuação. 140

7.5.7     Portão (gate) 143

7.5.8     Decomposição de parte. 144

7.5.9     Invariante de estado. 144

7.6     Diagrama de comunicação. 145

7.7     Considerações a respeito da modelagem de interação de objetos 146

 

8    O diagrama de máquina de estados de UML. 147

8.1     Estado de objeto. 148

8.2     Transição de estado. 153

8.3     Pseudo-estados equivalentes a comandos 154

8.4     Modelagem com estados compostos 155

8.5     Estruturação da modelagem com estado sub-máquina. 157

8.6     Modelagem de evolução de estados com paralelismo. 159

8.7     Considerações a respeito da modelagem de estados 160

 

9    O diagrama de atividades de UML. 161

9.1     Atividades e ações 161

9.2     Fluxo de controle. 163

9.3     Tratamento de objetos no diagrama de atividades 168

9.4     Partição de atividade. 172

9.5     Comunicação em diagrama de atividades 173

9.6     Nodos agrupadores na modelagem de atividades 174

9.7     Nodo tratador de exceção. 178

9.8     Modelagem de workflow com diagrama de atividades 179

9.9     Modelagem de algoritmo de método de classe com diagrama de atividades 180

9.9.1     Comandos representáveis com um único elemento sintático do diagrama de atividades 182

9.9.2     Comandos correspondentes a invólucros de coleções de comandos 183

9.9.3     Comandos sem correspondência em linguagens de programação    187

9.10   Considerações a respeito da modelagem com diagrama de atividades    191

 

10      Os outros diagramas de interação de UML 193

10.1   Diagrama de temporização. 193

10.1.1   Modelagem de objetos 194

10.1.2   Evolução de estados com restrições temporais 194

10.1.3   Comunicação com restrições temporais 196

10.2   Diagrama de visão geral de interação. 197

10.3   Considerações a respeito da modelagem com diagramas de temporização e de visão geral de interação. 201

 

11      Quatro diagramas de UML para modelagem estrutural 203

11.1   Diagrama de classes 203

11.2   Diagrama de objetos 204

11.3   Diagrama de pacotes 205

11.3.1   Pacote. 206

11.3.2   Relacionamentos envolvendo pacotes 208

11.4   Diagrama de estrutura composta. 211

11.4.1   Modelagem de composição de instâncias no diagrama de estrutura composta  212

11.4.2   Modelagem de colaboração no diagrama de estrutura composta     216

11.4.3   Um exemplo de modelagem complexa com o diagrama de estrutura composta   220

11.5   Considerações a respeito de modelagem estrutural em UML  223

 

12      Suporte ao desenvolvimento baseado em componentes de UML 225

12.1   A abordagem de desenvolvimento baseado em componentes 225

12.2   Diagrama de componentes 227

12.3   Diagrama de utilização. 231 (deployment diagram)

12.4   Considerações a respeito da modelagem de software baseado em componentes 234

 

13      Requisitos para um procedimento de modelagem com UML. 237

13.1   Etapas para uma modelagem de conteúdo mínimo. 237

13.2   Qualidade, coesão e consistência de especificações orientadas a objetos    239

13.3   Considerações a respeito de processos de modelagem.. 241