Prefácio II
Índice XIVPARTE 1 INTRODUÇÃO E VISÃO GERAL
Capítulo 1 - Enquadramento e Conceitos Gerais 5
1.1 Introdução 5
1.2 O Impacto das Tecnologias de Informação 6
1.3 Produto e Processo 9
1.4 Sistemas de Informação 11
1.5 Arquitectura de Sistemas de Informação 13
1.6 Objectivos do Desenvolvimento de Sistemas de Informação 17
1.7 Problemas no Desenvolvimento de Sistemas de Informação 19
1.8 Planeamento Estratégico de Sistemas de Informação 22
1.9 Engenharia de Software 24
1.10 Conclusão 26
1.11 Exercícios 27 Capítulo 2 - O Processo de Desenvolvimento de Software 29
2.1 Introdução 29
2.2 Processos e Metodologias 31
2.3 Modelos e Modelação 34
2.3.1 Importância da Modelação 35
2.3.2 Princípios da Modelação 36
2.4 Boas Práticas no Desenvolvimento de Software 37
2.5 Fases do Processo de Desenvolvimento de Software 40
2.5.1 Tarefas Transversais 46
2.5.2 Planeamento 47
2.5.3 Análise 49
2.5.4 Desenho 51
2.5.5 Implementação 52
2.5.6 Testes 53
2.5.7 Instalação 56
2.5.8 Manutenção 57
2.6 Processos de Desenvolvimento de Software 59
2.6.1 Processos em Cascata 59
2.6.2 Processos Iterativos e Incrementais 62
2.7 Conclusão 65
2.8 Exercícios 66 Capítulo 3 - Evolução das Metodologias de Desenvolvimento de
Software 67
3.1 Introdução 67
3.2 A Programação como Fonte de Inovação 69
3.3 O Desenvolvimento Ad-Hoc 73
3.4 As Metodologias Estruturadas 75
3.4.1 Contexto e Motivação 75
3.4.2 Conceitos Básicos 76
3.4.3 Técnicas e Notações mais Utilizadas 78
3.4.4 Principais Metodologias 83
3.5 Metodologias Orientadas por Objectos 86
3.5.1 Contexto e Motivação 87
3.5.2 Conceitos Básicos 88
3.5.3 Técnicas e Notações mais Utilizadas 98
3.5.4 Principais Metodologias 99
3.6 Outras Metodologias 101
3.7 Comparação de Metodologias 102
3.7.1 Gestão de Requisitos e Facilidade de Manutenção 104
3.7.2 Representação da Realidade 105
3.7.3 Outros Aspectos 106
3.8 Conclusão 107
3.9 Exercícios 108 PARTE 2 LINGUAGEM DE MODELAÇÃO UML 111 Capítulo 4 - UML Visão Geral 117
4.1 Introdução 117
4.2 Visão Histórica 119
4.3 Tipos de Elementos Básicos 121
4.4 Tipos de Relações 122
4.5 Tipos de Diagramas 123
4.5.1 Diagramas de Casos de Utilização 124
4.5.2 Diagramas de Modelação da Estrutura 124
4.5.3 Diagramas de Modelação do Comportamento 125
4.5.4 Diagramas de Arquitectura 129
4.6 Mecanismos Comuns 130
4.6.1 Notas (Anotações) 130
4.6.2 Mecanismos de Extensão 131
4.7 Tipos de Dados 134
4.8 Organização dos Artefactos - Pacotes 135
4.8.1 Representação Gráfica 136
4.8.2 Relações entre Pacotes 137
4.8.3 Tipos de Pacotes 140
4.8.4 Modelação de Grupos de Elementos 141
4.9 Exercícios 142 Capítulo 5 - UML Casos de Utilização 143
5.1 Introdução 143
5.2 Casos de Utilização 145
5.2.1 Casos de utilização e Cenários 146
5.2.2 Relações entre Casos de Utilização 148
5.3 Diagramas de Casos de Utilização 155
5.3.1 Actores 155
5.3.2 Casos de Utilização Abstractos e Concretos 156
5.4 Proposta de Metodologia 157
5.5 Exercícios 162 Capítulo 6 - UML Modelação da Estrutura 165
6.1 Introdução 165
6.2 Classes 166
6.3 Relações 169
6.3.1 Relação de Dependência 169
6.3.2 Relação de Generalização 170
6.3.3 Relação de Associação 171
6.4 Interfaces 178
6.5 Instâncias e Objectos 182
6.6 Diagramas de Classes e Diagramas de Objectos 186
6.7 Exemplos e Recomendações 186
6.8 Exercícios 192 Capítulo 7 - UML Modelação do Comportamento 197
7.1 Introdução 197
7.2 Interacções 198
7.2.1 Objectos e Ligações 199
7.2.2 Mensagens e Estímulos 200
7.2.3 Representação de Mensagens 201
7.2.4 Tipos de Mensagens 202
7.3 Diagramas de Interacção 202
7.3.1 Diagramas de Sequência 204
7.3.2 Diagramas de Colaboração 205
7.3.3 Equivalência Semântica 208
7.3.4 Diagramas de Interacção e de Casos de Utilização 211
7.4 Diagramas de Estados 213
7.4.1 Estados 215
7.4.2 Transições 215
7.4.3 Eventos 217
7.4.4 Acções e Actividades 219
7.4.5 Sub-Estados 220
7.5 Diagramas de Actividades 222
7.5.1 Decisões 223
7.5.2 Caminhos Concorrentes 224
7.5.3 Pistas (Swimlanes) 225
7.5.4 Actividades e Objectos 227
7.5.5 Envio e Recepção de Sinais 228
7.5.6 Utilizações Típicas 230
7.6 Exercícios 233 Capítulo 8 - UML Modelação da Arquitectura 237
8.1 Introdução 237
8.2 Componentes e Nós 238
8.2.1 Componentes 238
8.2.2 Nós 241
8.2.3 Relações entre Nós e Componentes 242
8.3 Diagramas de Componentes 243
8.4 Diagramas de Instalação 246
8.5 Exercícios 249 Capítulo 9 - UML Aspectos Avançados 253
9.1 Introdução 253
9.2 A Arquitectura do UML 254
9.2.1 A Estrutura do UML a Quatro Camadas 254
9.2.2 A Camada Metamodelo 256
9.3 Mecanismos de Extensão 261
9.4 Perfis UML 263
9.4.1 Perfil para Processos de Desenvolvimento de Software 264
9.4.2 Perfil para Modelação de Negócios 269
9.4.3 Perfil para Modelação de Aplicações Web 271
9.5 Sistemas de Componentes e Reutilização 273
9.5.1 Definição de Componente 273
9.5.2 Famílias de Aplicações 273
9.5.3 Sistemas de Componentes 274
9.5.4 Reutilização 276
9.6 Tipos Parametrizáveis 278
9.6.1 Classes Parametrizáveis 278
9.6.2 Padrões de Desenho 280
9.7 XMI XML Metadata Interchange 284
9.8 Conclusão 285
9.9 Exercícios 287 PARTE 3 METODOLOGIAS DE DESENVOLVIMENTO DE SOFTWARE 289 Capítulo 10 - Metodologia RUP 293
10.1 Introdução 293
10.2 Enquadramento 296
10.3 Características Principais 298
10.3.1 Metodologia Conduzida por Casos de Utilização 299
10.3.2 Metodologia Centrada numa Arquitectura 300
10.3.3 Metodologia Iterativa e Incremental 301
10.4 As 4+1 Visões do RUP 302
10.5 Visão Geral 304
10.5.1 Conceitos Gerais 304
10.5.2 Componente Dinâmica 305
10.5.3 Componente Estática 306
10.6 Ciclos, Fases e Iterações - A Componente Dinâmica 307
10.6.1 Concepção 309
10.6.2 Elaboração 310
10.6.3 Construção 311
10.6.4 Transição 312
10.6.5 Comentários Gerais 312
10.7 Workflows, Actividades e Artefactos - A Componente Estática 314
10.7.1 Workflow de Gestão do Projecto 315
10.7.2 Workflow de Modelação do Negócio 318
10.7.3 Workflow de Requisitos 319
10.7.4 Workflow de Análise e Desenho 320
10.7.5 Workflow de Implementação 321
10.7.6 Workflow de Testes 322
10.7.7 Workflow de Instalação 323
10.7.8 Workflow de Gestão da Configuração e das Alterações 324
10.7.9 Workflow de Ambiente 325
10.8 Enunciado do Caso de Estudo DGD 327
10.8.1 Enunciado 327
10.9 Resolução do Caso de Estudo DGD 330
10.10 Conclusão 346
10.11 Exercícios 347 Capítulo 11 - Metodologia Iconix 349
11.1 Introdução 349
11.2 Visão Geral 350
11.2.1 Análise de Requisitos 351
11.2.2 Análise e Desenho Preliminar 353
11.2.3 Desenho 354
11.2.4 Implementação 355
11.3 Avisos do Processo ICONIX 356
11.4 Enunciado do Caso de Estudo WebDEI 357
11.4.1 Introdução 358
11.4.2 Arquitectura Geral 358
11.4.3 Tipos Básicos de Informação (Modelo de Dados) 360
11.4.4 Funcionalidade do Sistema 361
11.5 Resolução do Caso de Estudo WebDEI 364
11.5.1 Análise de Requisitos 364
11.5.2 Análise e Desenho Preliminar 373
11.5.3 Desenho 380
11.5.4 Implementação 385
11.6 Conclusão 387
11.7 Exercícios 390 PARTE 4 FERRAMENTAS CASE 391 Capítulo 12 - Ferramentas CASE 395
12.1 Introdução 395
12.2 Evolução Histórica 398
12.3 Arquitectura das Ferramentas CASE 402
12.4 Mecanismos de Integração entre Ferramentas 404
12.5 Taxonomia das Ferramentas CASE 406
12.6 Vantagens e Problemas das Ferramentas CASE 410
12.7 Funcionalidades das Ferramentas CASE 411
12.8 Geração Automática de Artefactos 416
12.8.1 Round-Trip Engineering 417
12.8.2 Geração de Documentação 419
12.9 Avaliação de Ferramentas CASE 419
12.10 Ferramentas de Modelação para UML 421
12.10.1 Modelação de Bases de Dados 422
12.10.2 Modelação do Negócio 423
12.11 Conclusão 425
12.12 Exercícios 427 Capítulo 13 - Rational Rose 428
13.1 Introdução 428
13.2 Interface Gráfica 432
13.3 Repositório 433
13.4 Visões e Diagramas UML 434
13.5 Modelação do Negócio 436
13.6 Mecanismos de Extensibilidade 436
13.6.1 Extensibilidade dos Menus 438
13.6.2 Scripts no Rose 440
13.6.3 Rose Automation 440
13.6.4 Rose Add-Ins 441
13.6.5 Rose Extensibility Type Library 442
13.7 Geração de Código Caso de Estudo em Visual Basic 442
13.7.1 Ferramentas Utilizadas 443
13.7.2 Geração de Código 445
13.7.3 Reverse Engineering 451
13.7.4 Relações de Generalização 454
13.7.5 Comentários à Geração de Código 457
13.8 Geração de Modelos de Dados 458
13.8.1 Geração de Modelos de Dados até ao Rose 2000 459
13.8.2 Geração de Dados a partir do Rose 2001 466
13.9 Geração da Interface Homem-Máquina 468
13.10 Geração de Documentação 468
13.10.1 Ferramenta SoDA 469
13.10.2 Rose Web Publisher 471
13.10.3 Scripts de geração de relatórios 471
13.11 Conclusão 472 Capítulo 14 - System Architect 475
14.1 Introdução 475
14.2 Interface Gráfica 478
14.3 Repositório 480
14.4 Técnicas de Modelação 483
14.4.1 Configuração das Propriedades do Projecto 484
14.4.2 O System Architect e o UML 485
14.4.3 Outras Técnicas de Modelação 486
14.5 Modelação do Negócio 488
14.6 Geração de Código - Caso de Estudo em Java 491
14.6.1 Geração de Código 491
14.6.2 Reverse Engineering 499
14.7 Geração de Modelos de Dados 500
14.8 Geração de Interfaces Homem-Máquina 506
14.9 Mecanismos de Extensibilidade 509
14.10 Geração de Documentação 511
14.11 Conclusão 514 ÂPENDÍCES, BIBLIOGRAFIA E ÍNDICE REMISSIVO 517
Apêndice A Guia de Recursos Electrónicos 519
Standards, Organizações Normalizadoras e Iniciativas 521
Empresas e Links Relevantes 521
Leituras Recomendadas 522
Catálogos de Informação 524
Ferramentas CASE 525
Apêndice B Glossário, Siglas e Abreviaturas 527
B.1 Glossário 528
B.2 Siglas mais Usadas 530
B.3 Abreviaturas 531
Referências 533
Índice Remissivo 547 |