|
Lista de figuras
|
15
|
|
Prefácio
|
17
|
|
Apresentação
|
19
|
|
1 Conceitos básicos
|
21
|
|
1.1 Sistemas de software
|
21
|
|
1.2 Engenharia de software
|
24
|
|
1.3 Os princípios da engenharia de software
|
25
|
|
1.3.1 Formalidade
|
26
|
|
1.3.2 Abstração
|
26
|
|
1.3.3 Decomposição
|
27
|
|
1.3.4 Generalização
|
27
|
|
1.3.5 Flexibilização
|
27
|
|
1.4 Paradigmas de engenharia de software
|
28
|
|
1.4.1 Ciclo de vida clássico
|
29
|
|
1.4.2 O paradigma evolutivo
|
34
|
|
1.4.3 O paradigma espiral
|
37
|
|
1.5 Engenharia de software influenciando
e sendo influenciada por outras áreas
dentro e fora da computação
|
39
|
|
1.6 Comentários finais
|
41
|
|
1.7 Exercício
|
41
|
|
2 Extração de requisitos
|
43
|
|
2.1 Dificuldades no processo de extração de requisitos
|
45
|
|
2.2 Participantes na extração de requisitos
|
50
|
|
2.3 Técnicas para extração de requisitos
|
50
|
|
2.3.1 Entrevistas
|
52
|
|
2.3.2 Brainstorming
|
55
|
|
2.3.3 PIECES
|
57
|
|
2.3.4 JAD
|
59
|
|
2.3.5 Prototipagem
|
65
|
|
2.4 Comentários finais
|
65
|
|
2.5 Exercícios
|
66
|
|
3 Modelos para especificação de sistemas de software
|
69
|
|
3.1 Especificação
|
70
|
|
3.1.1 Tipos de especificação
|
70
|
|
3.1.2 Estágios da especificação
|
71
|
|
3.1.3 Verificação e validação da especificação
|
73
|
|
3.1.4 Qualidade versus grau de
formalidade da especificação
|
73
|
|
3.2 Modelos e princípios da engenharia de software
|
75
|
|
3.2.1 Um exemplo
|
77
|
|
3.3 Modelos do mundo real
|
77
|
|
3.3.1 O modelo de função
|
78
|
|
3.3.2 O modelo de dados
|
81
|
|
3.3.3 O modelo comportamental
|
84
|
|
3.3.4 O modelo de objetos
|
87
|
|
3.3.5 O modelo formal
|
89
|
|
3.3.6 O modelo dinâmico
|
91
|
|
3.3.7 Dicionário de dados
|
91
|
|
3.4 Modelos de projeto
|
92
|
|
3.4.1 Modelos para projeto geral
|
93
|
|
3.4.2 Modelos para projeto detalhado
|
96
|
|
3.5 Modelos para teste de progranas
|
97
|
|
3.6 Modelos de planejamento do projeto
|
98
|
|
3.6.1 Modelos de custo
|
99
|
|
3.6.2 Modelos de programação de projetos
|
101
|
|
3.7 Metodologias, métodos e ferramentas
|
104
|
|
3.7.1 Métodos estruturados
|
105
|
|
3.7.2 Métodos orientados a objetos
|
106
|
|
3.7.3 Métodos formais
|
107
|
|
3.8 Comentários finais
|
107
|
|
3.9 Exercícios
|
108
|
|
4 Planejamento de projetos de software
|
111
|
|
4.1 Objetivos e restrições
|
112
|
|
4.1.1 Os requisitos do usuário
|
113
|
|
4.1.2 Declaração de objetivos e restrições do projeto
|
113
|
|
4.2 Estudo de viabilidade
|
116
|
|
4.2.1 Lista de alternativas
|
117
|
|
4.2.2 Estimativas
|
118
|
|
4.2.3 Estimativa de custo
|
119
|
|
4.2.4 Estimativa de tempo
|
122
|
|
4.2.5 Estimativa de recursos
|
122
|
|
4.2.6 Estimativa de benefícios
|
124
|
|
4.2.7 Análise de risco
|
124
|
|
4.2.8 Análise de custo-benefício
|
125
|
|
4.3 Organização do projeto
|
129
|
|
4.3.1 As atividades do desenvolvimento
|
130
|
|
4.3.2 Organização da equipe
|
130
|
|
4.3.3 Programação de projeto
|
131
|
|
4.4 Comentários finais
|
133
|
|
4.5 Exercícios
|
134
|
|
5 Considerações finais
|
139
|
|
Bibliografia
|
141
|
|
Índice remissivo
|
145
|