Orden del traductor
Prólogo
La primera parte es una introducción a la ingeniería de software orientada a objetos.
Capítulo 65438 0 Alcance de la Ingeniería de Software Orientada a Objetos 3
1.1 Aspectos Históricos 4
1.2 Aspectos Económicos 6
1.3 Aspectos de Mantenimiento 6
1.3.1 Perspectiva del mantenimiento del software moderno 8
1.3.2 La importancia del mantenimiento post-entrega 9
1.4 Requisitos, análisis y diseño 10 p >
1.5 Desarrollo del equipo 11
1.6 Razones por las que no hay una etapa de planificación 12
1.7 Por qué no hay una etapa de prueba 12
1.8 Por qué no hay documento etapa 13 p>
1.9 Paradigma orientado a objetos 13
1.10 Fecha límite 15
1.11 Cuestiones éticas 17
Revisión del capítulo 18
Materiales de lectura de extensión 18
Ejercicios 19
Referencias 20
Capítulo 2 Modelo de ciclo de vida del software 23
2.1 Desarrollo de software ideal 23
2.2 Estudio de caso pequeño de Weinberger 23
2.3 Estudio de caso pequeño de Weinberger 25
2.4 Estudio de caso pequeño de empresa de tractores 25
2.5 Iteraciones e incrementos 26
2.6 Redescubriendo el pequeño estudio de caso de Weinberg 28
2.7 Iteraciones e incrementos Riesgos y otros 29
2.8 Gestión de iteraciones e incrementos 31
2.9 Otros modelos de ciclo de vida 31
2.9.1 Redacción y cambio de modelos de ciclo de vida 32
2.9.2 Modelo de ciclo de vida en cascada 32
2.9.3 Modelo de ciclo de vida de creación rápida de prototipos 33
2.9.4 Modelo de ciclo de vida de código abierto 34
Proceso ágil 35
2.9.6 Vida síncrona y estable Modelo de ciclo 37
2.9.7 Modelo de ciclo de vida en espiral 38
2.10 Comparación de modelos de ciclo de vida 40
Comentarios sobre este capítulo 41
Materiales de lectura ampliados 41
Ejercicio 42
Referencias 43
Capítulo 3 Proceso de software 46
3.1 Proceso unificado 47
3.2 Iteración e incremento 48
3.3 Flujo de trabajo de requisitos 49
3.4 Flujo de trabajo de análisis 50
3.5 Flujo de trabajo de diseño 51
3.6 Flujo de trabajo de implementación 52
3.7 Flujo de trabajo de prueba 52
3.7.1 Producto de requisitos 53
Análisis del producto 53
Diseño de productos 53
Implementación del producto 53
3.8 Mantenimiento posterior a la entrega 54
3.9 Retiro 55
3.10 Etapa del proceso unificado 55
3.10.1 Etapa inicial 56
3.10.2 Etapa de refinamiento 57
3.10.3 Etapa de construcción 58
3.10.4 Etapa de entrega 58
3.11 Comparación de modelos de ciclo de vida unidimensionales y bidimensionales 59
3.12 Mejora de los procesos de software 60
3.13 Modelo de madurez de capacidades 60
3.14 Otros aspectos del proceso de software mejora 62
3.15 Costos y beneficios de la mejora de procesos de software 62
Este capítulo revisa 64
Extensiones Material de lectura 64
Ejercicio 65
Referencia 65
Capítulo 4 Equipo de software 68
4.1 Organización del equipo 68
4.2 Método del equipo democrático 69
4.3 Modelo de equipo de programador maestro 70
Proyecto del New York Times 71
4.3.2 El equipo de programador maestro tiene formas poco realistas 72
4.4 Más allá del programador jefe y los equipos demócratas 72
4.5 Sincronización - Equipos estables 73<
/p>
4.6 Equipo de procesos ágiles 74
4.7 Equipo de programación de código abierto 74
4.8 Modelo de madurez de capacidades de recursos humanos 75
4.9 Elija el equipo adecuado Organización 75
Este capítulo revisa 76
Lecturas adicionales 76
Ejercicios 77
Referencias 77
Capítulo 5 Herramientas de ingeniería de software 79
5.1 Refinamiento gradual 79
5.2 Análisis costo-beneficio 82
5.3 Indicadores de software 83
5.4 Caso 84
5.5 Clasificación del caso 85
5.6 Alcance del caso 86
5.7 Versión del software 88
5.7.1 Versión 89
Variación 89
5.8 Control de configuración 89
5.8.1 Control de configuración durante el mantenimiento posterior a la entrega 91
Línea base 91
p>5.8.3 Control de configuración en el proceso de desarrollo de productos 91
5.9 Herramientas de construcción 92
5.10 Uso de la tecnología CASE para mejorar la productividad 93
Revisión de este capítulo 93
Materiales de lectura ampliados 93
Ejercicios 94
Referencias 95
Examen del Capítulo 6 97
6.1 Calidad cuestiones 97
6.1.1 Garantía de calidad del software 98
6.1.2 Independencia de la gestión 98
6.2 Pruebas no basadas en la ejecución 99
Ejercicio 99
Ejercicio de Gestión 100
6.2.3 Revisión 100
6.2.4 Comparación entre recorrido y revisión 102
6.2. 5 Revisión de las ventajas y desventajas de 102
6.2.6 Revisión de los métodos de medición 102
6.3 Pruebas basadas en la ejecución de 103
6.4 Qué se debe probar 103
6.4.1 Practicidad 104
Fiabilidad 104
6.4.3 Robustez 104
6.4.4 Rendimiento 105
Corrección 105
6.5 Prueba y corrección Cláusula 106
6.5.1 Ejemplo de corrección Cláusula 106
6.5.2 Corrección Un pequeño estudio de caso de sexualidad cláusulas 108
6.5.3 Pruebas de corrección e ingeniería de software 109
6.6 ¿Quién completará las pruebas basadas en ejecución 111?
6.7 Cuándo detener la prueba 112
Repaso del capítulo 112
Material de lectura ampliado 112
Ejercicio 113
Referencia 114
Capítulo 7 Del módulo al objeto 117
7.1 ¿Qué es el módulo 117?
7.2 Cohesión 119
7.2.1 Conexión inesperada 119
Coherencia lógica 120
7.2.3 Consistencia temporal 120
p>
7.2.4 Conexión del programa 121
7.2.5 Conexión de comunicación 121
7.2.6 Conexión funcional 121
7.2.7 Conexión de información 121
7.2.8 Ejemplo de cohesión 122
7.3 Acoplamiento 122
7.3.1 Acoplamiento de contenido 122
7.3.2 Externo Rosca* * *Acoplamiento 123
Acoplamiento de control 124
7.3.4 Acoplamiento de impresión 125
Acoplamiento de datos 125
7.3.6 Acoplamiento Ejemplo 126
7.3.7 Importancia del acoplamiento 126
7.4 Encapsulación de datos 127
7.4.1 Empaquetado y desarrollo de datos 128
7.4 .2 Empaquetado y mantenimiento de datos 129
7.5 Abstracción
Tipos de datos 133
7.6 Ocultamiento de información 134
7.7 Objetos 135
7.8 Herencia, polimorfismo y vinculación dinámica 137
7.9 Orientación Ejemplos de Objetos 139
Repaso del capítulo 140
Lecturas adicionales 141
Ejercicios 141
Referencias 142
Capítulo 8 Reutilización y portabilidad 144
8.1 El concepto de reutilización 145
8.2 Barreras para la reutilización 146
8.3 Estudio de caso de reutilización 147
8.3. 1 División de Sistemas de Misiles Raytheon 147
Agencia Espacial Europea 148
8.4 Objetos y Multiplexación 149
8.5 Diseño y reutilización en implementación 149
8.5.1 Reutilización de diseños 149
8.5.2 Arquitectura de aplicaciones 150
8.5.3 Patrones de diseño 151
Arquitectura de software 152
8.5 .5 Ingeniería de software basada en componentes 153
8.6 Más sobre patrones de diseño 153
8 6 1 Estudio de caso pequeño 153
8.6.2 Patrón de diseño de adaptador. 154
8.6.3 Patrón de diseño de puente 154
8.6.4 Patrón de diseño de iterador 155
8.6.5 Patrón de diseño de fábrica abstracta 156
8.7 Categorías de patrón de diseño 159
8.8 Ventajas y desventajas del patrón de diseño 159
8.9 Reutilización y entrega posmantenimiento 160
8.10 Portabilidad 161
Incompatibilidad de hardware 161
8.10.2 Incompatibilidad del sistema operativo 162
8.10.3 Incompatibilidad del software de cálculo numérico 162
8.10.4 Incompatibilidad del compilador 163
8.11 ¿Por qué es necesaria la 165 portabilidad?
8.12 Tecnología para lograr la portabilidad 166
8.12.1 Software de sistema portátil 5438 066
8.12.2 Software de aplicación portátil 166
8.12 .3 Datos portátiles 167
8.12.4 Aplicaciones de red 167
Revisión del capítulo 168
Materiales de lectura ampliados 168
Ejercicios 169
p>
Referencia 170
Capítulo 9 Planificación y estimación 174
9.1 Planificación de actividades y proceso de software 174
9.2 Estimación del ciclo y costo del proyecto 175 p>
9.2.1 Estándares de medición para escalas de productos 176
9.2.2 Tecnología de estimación de costos 178
9.2.3 Cacao intermedio 180
9. 2.4 Información de la computadora 182
9.2.5 Período de seguimiento y estimación de costos 183
9.3 Discusión sobre la estimación 183
9.4 Composición del plan para la dirección del proyecto de software 184 p>
9.5 Marco del plan de gestión de proyectos de software 185
9.6 Plan de gestión de proyectos de software IEEE 186
9.7 Pruebas planificadas 188
9.8 Requisitos de capacitación 188 p>
9.9 Estándares de documentación 189
9.65438 Herramientas de casos para planificación y evaluación 189
9.11 Plan de gestión de proyectos de software de prueba 190
Revisión del capítulo 190 p>
Materiales de lectura ampliados 190
Ejercicios 191
Referencia 192
Parte 2 Flujo de trabajo del ciclo de vida del software
p>Capítulo 10 Flujo de trabajo de requisitos 196
Determinar lo que los clientes necesitan 196
10.2 Descripción general del flujo de trabajo de requisitos 197
>Comprensión de 10.3 Dominio 197
10.4 Modelo de negocio 198
10.4.1 Entrevista 198
10.4.2 Otras tecnologías
10.4. 3 Casos de uso 199
10.5 Requisitos iniciales 200
10.6 Comprensión preliminar de las áreas de aplicación: estudio de caso de MSG Foundation 200
10.7 Modelo de negocio inicial: caso de MSG Foundation 202 Investigación
10.8 Requisitos iniciales: estudio de caso de MSG Foundation 204
10.9 Continuación del flujo de trabajo de requisitos: estudio de caso de MSG Foundation 205
10.10 Requisitos de revisión: investigación de caso de MSG Foundation 206
10.11 Flujo de trabajo de prueba: estudio de caso de MSG Foundation 211
10.12 Qué son los requisitos orientados a objetos 217
10.13 Creación rápida de prototipos 218
10.14 Factores humanos 218
10.15 Creación rápida de prototipos multicanal 219
10.16 Herramientas de casos para el flujo de trabajo de requisitos 220
10.17 Flujo de trabajo de medición de requisitos 220
10.18 Flujo de trabajo del desafío de requisitos 220
Comentarios sobre este capítulo 221
Materiales de lectura extendidos 222
Ejercicios 222
Referencia 223 p>
Capítulo 11 Flujo de trabajo de análisis 224
11.1 Documento de especificación 224
11.2 Especificación informal 225
11.3 Revisión de pequeños estudios de casos para comprobar la corrección 226
11.4 Flujo de trabajo de análisis 227
11.5 Extracción de clases de entidad 228
11.6 Problema del ascensor 228
11.7 Modelado funcional: estudio de caso del problema del ascensor 229
11.8 Modelado de clases de entidad: estudio de caso del problema del ascensor 230
11.8.1 Extracción de sustantivos 230
11. 8. 2 Tarjeta RC 232
11.9 Modelado dinámico: estudio de caso del problema del ascensor 233
11.10 Flujo de trabajo de prueba: estudio de caso del problema del ascensor 235
11.11 Extracción de clases de límite y clases de control 237
11.12 Inicial Modelado funcional: Estudio de caso de MSG Foundation 238
11.13 Diagrama de clases inicial: Estudio de caso de MSG Foundation 239
11.14 Modelado dinámico inicial: Estudio de caso de MSG Foundation 240
11.15 Modificar clase de entidad: estudio de caso de MSG Foundation 242
11.16 Extraer clase de límite: estudio de caso de MSG Foundation 243
11.17 Extraer clase de control: estudio de caso de MSG Foundation 243
11.18 Implementación de casos de uso: Estudio de caso de MSG Foundation 243
11.18.1 Financiamiento estimado disponible para el caso de uso semanal 244
11.18.2 Caso de uso de colección de administrador 248
11.18.3 Caso de uso de actualización de gastos operativos anualizados estimados 251
11.18.4 Caso de uso de informe del productor 252
11.19 Incremento del diagrama de clases: estudio de caso básico de MSG 256
11.20 Plan de gestión de proyectos de software: estudio de caso de MSG Foundation 257
11.21 Flujo de trabajo de prueba: estudio de caso de MSG Foundation 257
11.22 Documentos de especificación de unificación en el proceso 257
11.23 Más información sobre actores y casos de uso 258
11.24 Herramientas de casos para soportar flujos de trabajo de análisis 259
11.25 Trabajo de análisis Streaming Challenge 259
Revisión del capítulo 259
Lectura ampliada 260
Ejercicios 260
Referencias 262
Capítulo 12 Flujo de trabajo de diseño 264
Diseño orientado a objetos 264
12.2 Diseño orientado a objetos: caso de estudio del problema del ascensor 268
12.3 Diseño orientado a objetos: estudio de caso de MSG Foundation 270
12.4 Proceso de diseño 272
12.5 Proceso de prueba: Diseño 273
12.6 Flujo de trabajo de prueba: Caso básico de MSG 273
12.7 Tecnología formal de diseño detallado 273
12.8 Tecnología de diseño en tiempo real 274
12.9 Herramientas de casos para diseño 274
12.10 Indicadores de diseño 275
El flujo de trabajo de diseño enfrenta desafíos 276
Revisión del capítulo 277
Materiales de lectura adicionales 277
Ejercicios 277
Documentos de referencia 278
Capítulo 13 Implementación de flujos de trabajo 280
Elección de un lenguaje de programación 280
13.2 Buenas prácticas de programación 282
13.2.1 Utilice nombres de variables coherentes y significativos 282.
13.2.2 Problemas con el código de grabación automática 283
13.2.3 Uso de parámetros 284
13.2.4 Disposición del código legible 284
13.2.5 Declaraciones if anidadas 285
13.3 Estándares de codificación 286
13.4 Reutilización de código 286
13.5 Integración 286
13.5.1 Integración de arriba hacia abajo 287
13.5.2 Integración de abajo hacia arriba 288
13.5.3 Integración de mezzanine 288
13.5.4 Tecnología de integración 289
Gestión integrada 290
13.6 Implementación del flujo de trabajo 290
13.7 Implementación del flujo de trabajo: Estudio de caso de MSG Foundation 290
13.8 Prueba del flujo de trabajo: Implementación 290
13.9 Selección de casos de prueba 290
Pruebas de especificaciones y pruebas de código 291
13.9.2 La especificación ilustra la viabilidad de las pruebas 291
p>
13.9.3 Viabilidad de las pruebas de código 291
13.10 Tecnología de pruebas unitarias de caja negra 293
13.10.6543438 0 Pruebas de equivalencia y análisis de valores límite 56438.66666666666
13.10.2 Funcional Pruebas 294
13.11 Caso de prueba de caja negra: estudio de caso de MSG Foundation 294
13.12 Tecnología de prueba unitaria de caja de vidrio 2996
13.12.1 Pruebas estructurales: declaración, rama y cobertura de ruta 296
13.12.2 Medición de la complejidad 297
13.13 Recorrido y revisión del código 298
13.14 Pruebas unitarias Comparación de tecnologías 36646.866668666666
13.15 Sala limpia 298
13.16 Problemas en las pruebas 299
Gestión de pruebas unitarias 301
Cuándo reescribir en lugar de depurar el código del producto 301
13.19 Pruebas integrales 302
13.20 Pruebas de producto 303
13.21 Pruebas de aceptación 303
13.22 Proceso de prueba: estudio de caso básico de MSG 304
13.23 Herramientas de implementación 304
13 . 23 . 65438 Herramientas CASE para todo el proceso de desarrollo de software 56636.66866866661
Entorno de desarrollo integrado 304
Entorno de aplicaciones empresariales 305
13.23.4 Infraestructura de herramientas públicas 305
Problemas potenciales en el entorno
13.24 Se utiliza para probar el flujo de trabajo 306 Herramienta CASE
Implementación del indicador de flujo de trabajo 306
13.26 Desafíos en la implementación del flujo de trabajo 307
Revisión de este capítulo 307
Materiales de lectura extendidos 308
Ejercicio 309
Referencia 310
Capítulo 14 Mantenimiento posterior a la entrega 313
Desarrollo y mantenimiento 313
14.2 Por qué es necesario el mantenimiento posterior a la entrega 314
14.3 Qué necesitan los programadores para el mantenimiento post-entrega 314
14.4 Pequeños casos de mantenimiento post-venta 316
14.5 Gestión del mantenimiento post-entrega 317
14.5.1 Informe de defectos 317
14.5.2 Autorizar modificaciones del producto 318
Garantizar la mantenibilidad
14.5.4 Problemas de mantenimiento duplicados 319
14.6 Problemas de mantenimiento 319
14.7 Habilidades de mantenimiento posterior a la entrega y habilidades de desarrollo 321
14.8 Ingeniería inversa 321
14.9 Pruebas durante el mantenimiento posterior a la entrega 3
22
14.65438 Herramientas del chasis para mantenimiento posterior a la entrega323
14.11 Medición del mantenimiento posterior a la entrega323
14.12 Mantenimiento posterior a la entrega: estudio de caso de MSG Foundation323
14.13 Desafíos de mantenimiento posteriores a la entrega 323
Revisión del capítulo 323
Materiales de lectura extendidos 324
Ejercicios 324
Documento de referencia 325
15 Más información sobre UML en el Capítulo 327
15.1 UML no es una metodología.
15.2 Diagrama de clases 327
15.2.1 Agregación 328
15.2.2 Multiplex 329
15.2.3 Combinación 329
15.2.4 Resumen 330
15.2.5 Asociación 330
15.3 Nota 330
15.4 Diagrama de casos de uso 330
15.5 Tipo de estructura 331
15.6 Diagrama de interacción 331
15.7 Diagrama de estado 333
15.8 Diagrama de actividad 335
15.9 335 piezas por paquete
p>15.10 Diagrama de componentes 336
15.11 Diagrama de implementación 336
Revisión del diagrama UML 336
15.13UML e iteración 336
Revisión del capítulo 337
Lectura ampliada 337
Ejercicio 337
Documento de referencia 337
Apéndice 338
Apéndice A Proyecto semestral: Proyecto de la empresa de decoración y suministros de oficina Aoli 338
Apéndice B Recursos de ingeniería de software 340
Apéndice C Flujo de trabajo de requisitos: Estudio de caso de MSG Foundation 341
Apéndice D Flujo de trabajo de análisis: Estudio de caso 341 de MSG Foundation
Apéndice E Plan de gestión de ingeniería de software: Estudio de caso 341 de MSG Foundation
Apéndice F Flujo de trabajo de diseño: Estudio de caso 345 de MSG Foundation p>
Apéndice G Flujo de trabajo de implementación: Estudio de caso de MSG Foundation (versión C) 349
Apéndice H Flujo de trabajo de implementación: Estudio de caso de MSG Foundation (versión Java) 349
Apéndice 1 Prueba Flujo de trabajo: Estudio de caso 350 de la Fundación MSG
……