INGENIERIA DEL SOFTWARE. Un enfoque practico

Autor: Pressman, Roger S.
Editorial:MC GRAW HILL
# Páginas:777 páginas
Dimensiones:21 x 27 cm.
Empaste: Rústica
Idioma(s):Español
Código ISBN: 9786071503145
Precio: S/ 142.00
Edición: 7 Año: 2010
Disponibilidad:En Stock
Cantidad:
 Este libro se divide en 5 partes: la primera presenta modelos de procesos tanto prescriptivos como ágiles; la segunda presenta modernos métodos de análisis y diseño con un nuevo énfasis en el modelado basado en UML; la tercera parte se enfoca en todos los aspectos de pruebas del software, aseguramiento de la calidad, técnicas de verificación formal y manejo del cambio; la cuarta parte ofrece temas que son relevantes para aquellos que planean, administran y controlan un proyecto de software y en parte quinta contiene capítulos dedicados al mejoramiento de los procesos del software y las tendencias futuras de la ingeniería de software. El autor continuando la tradición de sus primeras publicaciones, ha escrito un libro que servirá como una excelente guía en ingeniería del software para todos aquellos que deban comprender, construir o administrar sistemas basados en computadora.

 Prefacio

Capítulo 1
El Software y la Ingeniería de Software

1.1. La naturaleza del software
1.1.1. Definición de software
1.1.2. Dominios de aplicación del software
1.1.3. Software heredado

1.2. La naturaleza única de las webapps
1.3. Ingeniería de software
1.4. El proceso del software

1.5. La práctica de la ingeniería de software
1.5.1. La esencia de la práctica
1.5.2. Principios generales

1.6 Mitos del software
1.7. Cómo comienza todo
1.8. Resumen

Problemas y puntos por evaluar
Lecturas adicionales y fuentes de información

Parte uno
El proceso del software

Capítulo 2
Modelos del proceso

2.1. Un modelo general de proceso
2.1.1. Definición de actividad estructural
2.1.2. Identificación de un conjunto de tareas
2.1.3. Patrones del proceso

2.2. Evaluación y mejora del proceso

2.3. Modelos de proceso prescriptivo
2.3.1. Modelo de la cascada
2.3.2. Modelos de proceso incremental
2.3.3. Modelos de proceso evolutivo
2.3.4. Modelos concurrentes
2.3.5. Una última palabra acerca de los procesos evolutivos

2.4. Modelos de proceso especializado
2.4.1. Desarrollo basado en componentes
2.4.2. El modelo de métodos formales
2.4.3. Desarrollo de software orientado a aspectos

2.5. El proceso unificado
2.5.1. Breve historia
2.5.2. Fases del proceso unificado

2.6. Modelos del proceso personal y del equipo
2.6.1. Proceso personal del software (PPS)
2.6.2. Proceso del equipo de software (PES)

2.7. Tecnología del proceso
2.8. Producto y proceso
2.9. Resumen

Problemas y puntos por evaluar
Lecturas adicionales y fuentes de información

Capítulo 3
Desarrollo ágil

3.1. ¿Qué es la agilidad?
3.2. La agilidad y el costo del cambio

3.3. ¿Qué es un proceso ágil?
3.3.1. Principios de agilidad
3.3.2. La política del desarrollo ágil
3.3.3. Factores humanos

3.4. Programación extrema (XP)
3.4.1. Valores XP
3.4.2. El proceso XP
3.4.3. XP industrial
3.4.4. El debate XP

3.5. Otros modelos ágiles de proceso
3.5.1. Desarrollo adaptativo de software (DAS)
3.5.2. Scrum
3.5.3 Método de desarrollo de sistemas dinámicos (MDSD)
3.5.4 Cristal
3.5.5 Desarrollo impulsado por las características (DIC)
3.5.6 Desarrollo esbelto de software (DES)
3.5.7. Modelado ágil (MA)
3.5.8 El proceso unificado ágil (PUA)

3.6. Conjunto de herramientas para el proceso ágil
3.7. Resumen

Problemas y puntos por evaluar
Lecturas adicionales y fuentes de información

Parte dos
Modelado

Capítulo 4
Principios que guían la práctica

4.1. Conocimiento de la ingeniería de software

4.2. Principios fundamentales
4.2.1. Principios que guían el proceso
4.2.2. Principios que guían la práctica

4.3. Principios que guían toda actividad estructural
4.3.1. Principios de comunicación
4.3.2. Principios de planeación
4.3.3. Principios de modelado
4.3.4. Principios de construcción
4.3.5. Principios de despliegue

4.4. Resumen

Problemas y puntos por evaluar
Lecturas y fuentes de información adicionales

Capítulo 5
Comprensión de los requerimientos

5.1. Ingeniería de requerimientos

5.2. Establecer las bases
5.2.1. Identificación de los participantes
5.2.2. Reconocer los múltiples puntos de vista
5.2.3. Trabajar hacia la colaboración
5.2.4. Hacer las primeras preguntas

5.3. Indagación de los requerimientos
5.3.1. Recabación de los requerimientos en formo colaborativa
5.3.2. Despliegue de lo función de calidad
5.3.3. Escenarios de uso
5.3.4. Indagación de los productos del trabajo

5.4. Desarrollo de cosos de uso

5.5. Elaboración del modelo de los requerimientos
5.5.1. Elementos del modelo de requerimientos
5.5.2. Patrones de análisis

5.6. Requerimientos de las negociaciones
5.7. Validación de los requerimientos
5.8. Resumen

Problemas y puntos por evaluar
Lecturas adicionales y fuentes de información

Capítulo 6
Modelado de los requerimientos: escenarios, información y clases de análisis

6.1. Análisis de los requerimientos
6.1.1. Objetivos y filosofía general
6.1.2. Reglas prácticos del análisis
6.1.3. Análisis del dominio
6.1.4. Enfoques del modelado de requerimientos

6.2. Modelado basado en escenarios
6.2.1. Creación de un coso preliminar de uso
6.2.2. Mejoro de un coso de uso preliminar
6.2.3. Escrituro de un coso de uso formol

6.3. Modelos UML que proporcionan el coso de uso
6.3.1. Desarrollo de un diagrama de actividades
6.3.2. Diagramas de canal (swimlane)

6.4. Conceptos de modelado de datos
6.4.1. Objetos de datos
6.4.2. Atributos de los datos
6.4.3. Relaciones

6.5. Modelado basado en clases
6.5.1. Identificación de las clases de análisis
6.5.2. Especificación de atributos
6.5.3. Definición de las operaciones
6.5.4. Modelado clase-responsabilidad-colaborador (CRC)
6.5.5. Asociaciones y dependencias
6.5.6. Paquetes de análisis

6.6. Resumen

Problemas y puntos por evaluar
Lecturas adicionales y fuentes de información

Capítulo 7
Modelado de los requerimientos: flujo, comportamiento, patrones y Webapps

7.1. Requerimientos que modelan las estrategias

7.2. Modelado orientado al flujo
7.2.1. Creación de un modelo de flujo de datos
7.2.2. Creación de un modelo de flujo de control
7.2.3. Lo especificación de control
7.2.4. Lo especificación del proceso

7.3. Creación de un modelo de comportamiento
7.3.1. Identificar los eventos con el coso de uso
7.3.2. Representaciones de estado

7.4. Patrones paro el modelado de requerimientos
7.4.1. Descubrimiento de patrones de análisis
7.4.2. Ejemplo de patrón de requerimientos: Actuador-Sensor

7.5. Modelado de requerimientos paro Webapps
7.5.1. ¿Cuánto análisis es suficiente?
7.5.2. Entrado del modelado de los requerimientos
7.5.3. Salida del modelado de los requerimientos
7.5.4. Modelo del contenido de las webapps
7.5.5. Modelo de la interacción para webapps
7.5.6. Modelo funcional para las webapps
7.5.7. Modelos de configuración para las webapps
7.5.8. Modelado de la navegación

7.6. Resumen

Problemas y puntos por evaluar
Lecturas adicionales y fuentes de información

Capítulo 8
Conceptos de diseño

8.1. Diseño en el contexto de la ingeniería de software

8.2. El proceso de diseño
8.2.1. Lineamientos y atributos de la calidad del software
8.2.2 La evolución del diseño del software

8.3. Conceptos de diseño
8.3.1. Abstracción
8.3.2. Arquitectura
8.3.3. Patrones
8.3.4. División de problemas
8.3.5. Modularidad
8.3.6. Ocultamiento de información
8.3.7. Independencia funcional
8.3.8. Refinamiento
8.3.9. Aspectos
8.3.10. Rediseño
8.3.11. Conceptos de diseño orientados a objeto
8.3.12. Clases de diseño

8.4. El modelo del diseño
8.4.1. Elementos del diseño de datos
8.4.2. Elementos del diseño arquitectónico
8.4.3. Elementos de diseño de la interfaz
8.4.4. Elementos del diseño en el nivel de los componentes
8.4.5. Elementos del diseño del despliegue

8.5. Resumen

Problemas y puntos por evaluar
Lecturas adicionales y fuentes de información

Capítulo 9
Diseño de la arquitectura

9.1. Arquitectura del software
9.1.1. ¿Qué es la arquitectura?
9.1.2. ¿Por qué es importante la arquitectura?
9.1.3. Descripciones arquitectónicas
9.1.4. Decisiones arquitectónicas

9.2. Géneros arquitectónicos

9.3. Estilos arquitectónicos
9.3.1. Breve taxonomía de estilos de arquitectura
9.3.2. Patrones arquitectónicos
9.3.3. Organización y refinamiento

9.4. Diseño arquitectónico
9.4.1. Representación del sistema en contexto
9.4.2. Definición de arquetipos
9.4.3. Refinamiento de la arquitectura hacia los componentes
9.4.4. Descripción de las instancias del sistema

9.5. Evaluación de los diseños alternativos poro lo arquitectura
9.5.1. Método de lo negociación paro analizar lo arquitectura
9.5.2. Complejidad arquitectónica
9.5.3. Lenguajes de descripción arquitectónica

9.6. Mapeo de lo arquitectura con el uso del flujo de datos
9.6.1. Mapeo de transformación
9.6.2. Refinamiento del diseño arquitectónico

9.7. Resumen

Problemas y puntos por evaluar
Lecturas adicionales y fuentes de información

Capítulo 10
Diseño en el nivel de componentes

10.1. ¿Qué es un componente?
10.1.1. Uno visión orientado o objetos
10.1.2. Lo visión tradicional
10.1.3. Visión relacionada con el proceso

10.2. Diseño de componentes basados en clase
10.2.1. Principios básicos del diseño
10.2.2. Lineamientos de diseño en el nivel de componentes
10.2.3. Cohesión
10.2.4. Acoplamiento

10.3. Realización del diseño en el nivel de componentes

10.4. Diseño en el nivel de componentes paro webapps
10.4.1. Diseño del contenido en el nivel de componente
10.4.2. Diseño de los funciones en el nivel de componentes

10.5. Diseño de componentes tradicionales
10.5.1. Notación gráfico de diseño
10.5.2. Notación del diseño tabular
10.5.3. Lenguaje de diseño del programo

10.6. Desarrollo basado en componentes
10.6.1. Ingeniería del dominio
10.6.2. Calificación, adaptación y combinación de los componentes
10.6.3. Análisis y diseño paro lo reutilización
10.6.4. Clasificación y recuperación de componentes

10.7. Resumen

Problemas y puntos por evaluar
Lecturas adicionales y fuentes de información

Capítulo 11
Diseño de la interfaz de usuario

11.1. Los reglas dorados
11.1.1. Dejar el control al usuario
11.1.2. Reducir lo necesidad de que el usuario memorice
11.1.3. Hacer consistente lo interfaz

11.2. Análisis y diseño de lo interfaz de usuario
11.2.1. Análisis y modelos del diseño de lo interfaz
11.2.2. El proceso

11.3. Análisis de lo interfaz
11.3.1. Análisis del usuario
11.3.2. Análisis y modelado de la tarea
11.3.3. Análisis del contenido de la pantalla
11.3.4. Análisis del ambiente de trabajo

11.4. Etapas del diseño de la interfaz
11.4.1. Aplicación de las etapas de diseño de la interfaz
11.4.2. Patrones de diseño de la interfaz de usuario
11.4.3. Aspectos del diseño

11.5. Diseño de una interfaz para webapps
11.5.1. Principios y lineamientos del diseño de la interfaz
11.5.2. Flujo de trabajos para el diseño de la interfaz de webapp

11.6. Evaluación del diseño
11.7. Resumen

Problemas y puntos por evaluar
Lecturas adicionales y fuentes de información

Capítulo 12
Diseño basado en patrones

12.1. Patrones de diseño
12.1.1. Clases de patrones
12.1.2. Estructuras
12.1.3. Descripción de un patrón
12.1.4. Lenguajes y repositorios de patrones

12.2. Diseño de software basado en patrones
12.2.1. El diseño basado en patrones, en contexto
12.2.2. Pensar en patrones
12.2.3. Tareas de diseño
12.2.4. Construcción de una tabla para organizar el patrón
12.2.5. Errores comunes en el diseño

12.3. Patrones arquitectónicos
12.4. Patrones de diseño en el nivel de componentes
12.5. Patrones de diseño de la interfaz de usuario

12.6. Patrones de diseño de webapp
12.6.1. Centrarse en el diseño
12.6.2. Granularidad del diseño

12.7. Resumen

Problemas y puntos por evaluar
Lecturas adicionales y fuentes de información

Capítulo 13
Diseño de webapps

13.1. Calidad del diseño de webapps
13.2. Metas del diseño
13.3. Pirámide del diseño de webapps
13.4. Diseño de la interfaz de la webapp

13.5. Diseño de la estética
13.5.1. Aspectos de la distribución
13.5.2. Aspectos del diseño gráfico

13.6. Diseño del contenido
13.6.1. Objetos de contenido
13.6.2. Aspectos de diseño del contenido

13.7. Diseño arquitectónico
13.7.1. Arquitectura del contenido
13.7.2. Arquitectura de las webapps

13.8. Diseño de la navegación
13.8.1. Semántica de la navegación
13.8.2. Sintaxis de navegación

13.9. Diseño en el nivel de componentes

13.10. Método de diseño de hipermedios orientado a objetos (MDHOO)
13.10.1. Diseño conceptual del MDHOO
13.10.2. Diseño de la navegación para el MDHOO
13.10.3. Diseño abstracto de la interfaz y su implementación

13.11. Resumen

Problemas y puntos por evaluar
Lecturas adicionales y fuentes de información

Parte tres
Administración de la calidad

Capítulo 14
Conceptos de calidad

14.1. ¿Qué es calidad?

14.2. Calidad del software
14.2.1. Dimensiones de la calidad de Garvin
14.2.2. Factores de la calidad de McCall
14.2.3. Factores de la calidad ISO 9126
14.2.4. Factores de calidad que se persiguen
14.2.5. Transición a un punto de vista cuantitativo

14.3. El dilema de la calidad del software
14.3.1. Software "suficientemente bueno"
14.3.2. El costo de la calidad
14.3.3. Riesgos
14.3.4. Negligencia y responsabilidad
14.3.5. Calidad y seguridad
14.3.6. El efecto de las acciones de la administración

14.4. Lograr la calidad del software
14.4.1. Métodos de la ingeniería de software
14.4.2. Técnicas de administración de proyectos
14.4.3. Control de calidad
14.4.4. Aseguramiento de la calidad

14.5. Resumen

Problemas y puntos por evaluar
Lecturas y fuentes de información adicionales

Capítulo 15
Técnicas de revisión

15.1. Efecto de los defectos del software en el costo
15.2. Amplificación y eliminación del defecto

15.3. Métricas de revisión y su empleo
15.3.1. Análisis de las métricas
15.3.2. Eficacia del costo de las revisiones

15.4. Revisiones: espectro de formalidad
15.5. Revisiones informales

15.6. Revisiones técnicas formales
15.6.1. La reunión de revisión
15.6.2. Reporte y registro de la revisión
15.6.3. Lineamientos para la revisión
15.6.4. Revisiones orientadas al muestreo

15.7. Resumen

Problemas y puntos por evaluar
Lecturas y fuentes de información adicionales

Capítulo 16
Aseguramiento de la calidad del software

16.1. Antecedentes
16.2. Elementos de aseguramiento de la calidad del software

16.3. Tareas, metas y métricas del ACS
16.3.1. Tareas del ACS
16.3.2. Metas, atributos y métricas

16.4. Enfoques formales al ACS

16.5. Aseguramiento estadístico de la calidad del software
16.5.1. Ejemplo general
16.5.2. Seis Sigma para la ingeniería de software

16.6. Confiabilidad del software
16.6.1. Mediciones de la confiabilidad y disponibilidad
16.6.2. Seguridad del software

16.7. Los normas de calidad ISO 9000
16.8. El plan de ACS
16.9. Resumen

Problemas y puntos por evaluar
Lecturas y fuentes de información adicionales

Capítulo 17
Estrategias de prueba de software

17.1. Un enfoque estratégico paro lo pruebo de software
17.1.1. Verificación y validación
17.1.2. Organización de los pruebas del software
17.1.3. Estrategia de pruebo del software. Visión general
17.1.4. Criterios paro completar los pruebas

17.2. Aspectos estratégicos

17.3. Estrategias de pruebo paro software convencional
17.3.1. Pruebo de unidad
17.3.2. Pruebas de integración

17.4. Estrategias de pruebo paro software orientado o objeto
17.4.1. Pruebo de unidad en el contexto OO
17.4.2. Pruebo de integración en el contexto OO

17.5. Estrategias de pruebo paro webapps

17.6. Pruebas de validación
17.6.1. Criterios de pruebas de validación
17.6.2. Revisión de lo configuración
17.6.3. Pruebas alfo y beta

17.7. Pruebas del sistema
17.7.1. Pruebas de recuperación
17.7.2. Pruebas de seguridad
17.7.3. Pruebas de esfuerzo
17.7.4. Pruebas de rendimiento
17.7.5. Pruebas de despliegue

17.8. El arte de lo depuración
17.8.1. El proceso de depuración
17.8.2. Consideraciones psicológicas
17.8.3. Estrategias de depuración
17.8.4. Corrección del error

17.9. Resumen

Problemas y puntos por evaluar
Lecturas y fuentes de información adicionales

Capítulo 18
Prueba de aplicaciones convencionales

18.1. Fundamentos de las pruebas del software
18.2. Visiones interno y externo de los pruebas
18.3. Prueba de caja blanca

18.4. Prueba de ruta básica
18.4.1. Notación de gráfico o grafo de flujo
18.4.2. Rutas de programa independientes
18.4.3. Derivación de casos de prueba
18.4.4. Matrices de grafo

18.5. Prueba de la estructura de control
18.5.1. Prueba de condición
18.5.2. Prueba de flujo de datos
18.5.3. Prueba de bucle

18.6. Pruebas de caja negra
18.6.1. Métodos de prueba basados en gráficos
18.6.2. Partición de equivalencia
18.6.3. Análisis de valor de frontera
18.6.4. Prueba de arreglo ortogonal

18.7. Prueba basada en modelo

18.8. Prueba para entornos, arquitecturas y aplicaciones especializados
18.8.1. Pruebas de interfaces gráficas de usuario
18.8.2. Prueba de arquitecturas cliente-servidor
18.8.3. Documentación de prueba y centros de ayuda
18.8.4. Prueba para sistemas de tiempo real

18.9. Patrones para pruebas de software
18.10. Resumen

Problemas y puntos por evaluar
Lecturas adicionales y fuentes de información

Capítulo 19
Prueba de aplicaciones orientadas a objetos

19.1. Ampliación de la definición de las pruebas

19.2. Modelos de prueba AOO y DOO
19.2.1. Exactitud de los modelos AOO y DOO
19.2.2. Consistencia de los modelos orientados a objetos

19.3. Estrategias de pruebas orientadas a objetos
19.3.1. Prueba de unidad en el contexto OO
19.3.2. Prueba de integración en el contexto OO
19.3.3. Prueba de validación en un contexto OO

19.4. Métodos de prueba orientada a objetos
19.4.1. Implicaciones del diseño de casos de prueba de los conceptos OO
19.4.2. Aplicabilidad de los métodos convencionales de diseño de casos de prueba
19.4.3. Prueba basada en fallo
19.4.4. Casos de prueba y jerarquía de clase
19.4.5. Diseño de pruebas basadas en escenario
19.4.6. Pruebas de las estructuras superficial y profunda

19.5. Métodos de prueba aplicables en el nivel clase
19.5.1. Prueba aleatoria para clases OO
19.5.2. Prueba de partición en el nivel de clase

19.6. Diseño de casos de prueba interclase
19.6.1. Prueba de clase múltiple
19.6.2. Pruebas derivadas a partir de modelos de comportamiento

19.7. Resumen

Problemas y puntos por evaluar
Lecturas adicionales y fuentes de información

Capítulo 20
Prueba de aplicaciones Web

20.1. Conceptos de pruebas para aplicaciones Web
20.1.1. Dimensiones de calidad
20.1.2. Errores dentro de un entorno de webapp
20.1.3. Estrategia de las pruebas
20.1.4. Planificación de pruebas

20.2. Un panorama del proceso de prueba

20.3. Prueba de contenido
20.3.1. Objetivos de la prueba de contenido
20.3.2. Prueba de base de datos

20.4. Prueba de interfaz de usuario
20.4.1. Estrategia de prueba de interfaz
20.4.2. Prueba de mecanismos de interfaz
20.4.3. Prueba de la semántica de la interfaz
20.4.4. Pruebas de usabilidad
20.4.5. Pruebas de compatibilidad

20.5. Prueba en el nivel de componente

20.6. Prueba de navegación
20.6.1. Prueba de sintaxis de navegación
20.6.2. Prueba de la semántica de navegación

20.7. Prueba de configuración
20.7.1. Conflictos en el lado servidor
20.7.2. Conflictos en el lado cliente

20.8. Prueba de seguridad

20.9. Prueba de rendimiento
20.9.1. Objetivos de la prueba de rendimiento
20.9.2. Prueba de carga
20.9.3. Prueba de esfuerzo

20.10. Resumen

Problemas y puntos por evaluar
Lecturas adicionales y fuentes de información

Capítulo 21
Modelado y verificación formal

21.1. Estrategia de cuarto limpio

21.2. Especificación funcional
21.2.1. Especificación de caja negra
21.2.2. Especificación de caja de estado
21.2.3. Especificación de caja clara

21.3. Diseño de cuarto limpio
21.3.1. Refinamiento de diseño
21.3.2. Verificación de diseño

21.4. Pruebas de cuarto limpio
21.4.1. Pruebas de uso estadístico
21.4.2 Certificación

21.5. Conceptos de métodos formales
21.6. Aplicación de notación matemática para especificación formal

21.7. Lenguajes de especificación formal
21.7.1. Lenguaje de restricción de objeto (OCL)
21.7.2. El lenguaje de especificación Z

21.8. Resumen

Problemas y puntos por evaluar
Lecturas adicionales y fuentes de información

Capítulo 22
Administración de la configuración del software

22.1. Administración de la configuración del software
22.1.1. Un escenario ACS
22.1.2. Elementos de un sistema de administración de la configuración
22.1.3. Líneas de referencia
22.1.4. Ítems de configuración del software

22.2. El repositorio ACS
22.2.1. El papel del repositorio
22.2.2. Características y contenido generales
22.2.3. Características ACS

22.3. El proceso ACS
22.3.1. Identificación de objetos en la configuración del software
22.3.2. Control de versión
22.3.3. Control de cambio
22.3.4. Auditoria de configuración
22.3.5. Reporte de estado

22.4. Administración de la configuración para webapps
22.4.1. Conflictos dominantes
22.4.2. Objetos de configuración de webapps
22.4.3. Administración de contenido
22.4.4. Administración del cambio
22.4.5 Control de versión
22.4.6. Auditorio y reporte

22.5. Resumen

Problemas y puntos por evaluar
Lecturas adicionales y fuentes de información

Capítulo 23
Métricas de producto

23.1. Marco conceptual para las métricas de producto
23.1.1. Medidas, métricos e indicadores
23.1.2. El reto de la métrica de producto
23.1.3. Principios de medición
23.1.4. Medición de software orientado a meta
23.1.5. Atributos de las métricas de software efectivas

23.2. Métricas para el modelo de requerimientos
23.2.1. Métrica basada en funciones
23.2.2. Métricas para calidad de la especificación

23.3. Métricas para el modelo de diseño
23.3.1. Métricas del diseño arquitectónico
23.3.2. Métricas para diseño orientado a objetos
23.3.3. Métricas orientadas a clase: la suite de métricas CK
23.3.4. Métricas orientadas a clase: La suite de métricas MOOD
23.3.5. Métricas OO propuestas por Lorenz y Kidd
23.3.6. Métricas de diseño en el nivel de componente
23.3.7. Métricas orientadas a operación
23.3.8. Métricas de diseño de interfaz de usuario

23.4. Métricas de diseño para webapps
23.5. Métricas para código fuente

23.6. Métricas para pruebas
23.6.1. Métricas de Halstead aplicadas para probar
23.6.2. Métricas para pruebas orientadas a objetos

23.7. Métricas para mantenimiento
23.8. Resumen

Problemas y puntos por evaluar
Lecturas y fuentes de información adicionales

Parte cuatro
Administración de proyectos de software

Capítulo 24
Conceptos de administración de proyecto

24.1. El espectro administrativo
24.1.1. El personal
24.1.2. El producto
24.1.3. El proceso
24.1.4. El proyecto

24.2. El personal
24.2.1. Los participantes
24.2.2. Líderes de equipo
24.2.3. El equipo de software
24.2.4. Equipos ágiles
24.2.5. Conflictos de coordinación y comunicación

24.3. El producto
24.3.1. Ámbito del software
24.3.2. Descomposición del problema

24.4. El proceso
24.4.1. Fusión de producto y proceso
24.4.2. Descomposición del proceso

24.5. El proyecto
24.6. El principio W5HH
24.7. Prácticas cruciales
24.8. Resumen

Problemas y puntos por evaluar
Lecturas y fuentes de información adicionales

Capítulo 25
Métricas de proceso y de proyecto

25.1. Métricas en los dominios de proceso y proyecto
25.1.1. Las métricas del proceso y la mejora del proceso de software
25.1.2. Métricas de proyecto

25.2. Medición del software
25.2.1. Métricas orientadas a tamaño
25.2.2. Métricas orientadas a función
25.2.3. Reconciliación de métricas LOC y PF
25.2.4. Métricas orientadas a objeto
25.2.5. Métricas orientadas a caso de uso
25.2.6. Métricas de proyecto webapp

25.3. Métricas para calidad de software
25.3.1. Medición de la calidad
25.3.2. Eficiencia en la remoción del defecto

25.4. Integración de métricas dentro del proceso de software
25.4.1. Argumentos para métricas de software
25.4.2. Establecimiento de una línea de referencia
25.4.3. Recolección, cálculo y evaluación de métricas

25.5. Métricas para organizaciones pequeñas
25.6. Establecimiento de un programa de métricas del software
25.7. Resumen

Problemas y puntos por evaluar
Lecturas y fuentes de información adicionales

Capítulo 26
Estimación para proyectos de software

26.1. Observaciones acerca de las estimaciones
26.2. El proceso de planificación del proyecto
26.3. Ámbito y factibilidad del software

26.4. Recursos
26.4.1. Recursos humanos
26.4.2. Recursos de software reutilizables
26.4.3. Recursos ambientales

26.5. Estimación de proyectos de software

26.6. Técnicas de descomposición
26.6.1. Dimensionamiento del software
26.6.2. Estimación basada en problema
26.6.3. Un ejemplo de estimación basada en LOC
26.6.4. Un ejemplo de estimación basada en PF
26.6.5. Estimación basada en proceso
26.6.6. Un ejemplo de estimación basada en proceso
26.6.7. Estimación con casos de uso
26.6.8. Un ejemplo de estimación basada en caso de uso
26.6.9. Reconciliación de estimaciones

26.7. Modelos de estimación empíricos
26.7.1. La estructura de los modelos de estimación
26.7.2. El modelo COCOMO II
26.7.3. La ecuación del software

26.8. Estimación para proyectos orientados a objetos

26.9. Técnicas de estimación especializadas
26.9.1. Estimación para desarrollo ágil
26.9.2. Estimación para webapp

26.10. La decisión hacer/comprar
26.10.1. Creación de un árbol de decisión
26.10.2. Outsourcing

26.11. Resumen

Problemas y puntos por evaluar
Lecturas y fuentes de información adicionales

Capítulo 27
Calendarización del proyecto

27.1. Conceptos básicos

27.2. Calendarización del proyecto
27.2.1. Principios básicos
27.2.2. Relación entre personal y esfuerzo
27.2.3. Distribución de esfuerzo

27.3. Definición de un conjunto de tareas para el proyecto de software
27.3.1. Un ejemplo de conjunto de tareas
27.3.2. Refinamiento de acciones de ingeniería del software

27.4. Definición de una red de tareas

27.5. Calendarización
27.5.1. Cronogramas
27.5.2. Seguimiento del calendario
27.5.3. Seguimiento del progreso para un proyecto OO
27.5.4. Calendarización para proyectos webapp

27.6. Análisis de valor ganado
27.7. Resumen

Problemas y puntos por evaluar
Lecturas y fuentes de información adicionales

Capítulo 28
Administración del riesgo

28.1. Estrategias reactivas de riesgo frente a estrategias proactivas de riesgo
28.2. Riesgos de software

28.3. Identificación de riesgos
28.3.1. Valoración del riesgo de proyecto global
28.3.2. Componentes y promotores de riesgo

28.4. Proyección del riesgo
28.4.1. Elaboración de una lista de riesgos
28.4.2. Valoración de impacto de riesgo

28.5. Refinamiento del riesgo
28.6. Mitigación, monitoreo y manejo de riesgo
28.7. El plan MMMR
28.8. Resumen

Problemas y puntos por evaluar
Lecturas y fuentes de información adicionales

Capítulo 29
Mantenimiento y reingeniería

29.1. Mantenimiento de software
29.2. Soportabilidad del software
29.3. Reingenería

29.4. Reingeniería de procesos de empresa
29.4.1. Procesos empresariales
29.4.2. Un modelo RPE

29.5. Reingeniería de software
29.5.1. Un modelo de proceso de reingeniería de software
29.5.2. Actividades de reingeniería de software

29.6. Ingeniería inversa
29.6.1. Ingeniería inversa para comprender datos
29.6.2. Ingeniería inversa para entender el procesamiento
29.6.3. Ingeniería inversa de interfaces de usuario

29.7. Reestructuración
29.7.1. Reestructuración de código
29.7.2. Reestructuración de datos

29.8. Ingeniería hacia adelante
29.8.1. Ingeniería hacia adelante para arquitecturas cliente-servidor
29.8.2. Ingeniería hacia adelante para arquitecturas orientadas a objetos
29.9. Economía de la reingeniería

29.10. Resumen

Problemas y puntos por evaluar
Lecturas y fuentes de información adicionales

Parte cinco
Temas avanzados

Capítulo 30
Mejoramiento del proceso de software

30.1. ¿Qué es mps?
30.1.1. Enfoques del MPS
30.1.2. Modelos de madurez
30.1.3. ¿El MPS es para todos?

30.2. El proceso MPS
30.2.1. Valoración y análisis de la desviación
30.2.2. Educación y capacitación
30.2.3. Selección y justificación
30.2.4. Instalación/migración
30.2.5. Evaluación
30.2.6. Gestión del riesgo para MPS
30.2.7. Factores de éxito cruciales

30.3. El CMMI
30.4. El CMM de personal
30.5. Otros marcos conceptuales MPS
30.6. Rendimiento sobre inversión de MPS
30.7. Tendencias MPS
30.8. Resumen

Problemas y puntos por evaluar
Lecturas y fuentes de información adicionales

Capítulo 31
Tendencias emergentes en ingeniería del software

31.1. Evolución tecnológica
31.2. Observación de las tendencias en ingeniería del software

31.3. Identificación de "tendencias blandas"
31.3.1. Administración de la complejidad
31.3.2. Software de mundo abierto
31.3.3. Requerimientos emergentes
31.3.4. La mezcla de talento
31.3.5. Bloques constructores de software
31.3.6. Cambio de percepciones de "valor"
31.3.7. Fuente abierta

31.4. Direcciones de la tecnología
31.4.1. Tendencias de proceso
31.4.2. El gran desafío
31.4.3. Desarrollo colaborativo
31.4.4. Ingeniería de requerimientos
31.4.5. Desarrollo de software impulsado por modelo
31.4.6. Diseño posmoderno
31.4.7. Desarrollo impulsado por pruebas

31.5. Tendencias relacionadas con herramientas
31.5.1. Herramientas que responden a tendencias blandas
31.5.2. Herramientas que abordan tendencias tecnológicas

31.6. Resumen

Problemas y puntos por evaluar
Lecturas y fuentes de informaci6n adicionales

Capítulo 32
Comentarios finales

32.1. La importancia del software-revisión
32.2. Las personas y la forma en la que construyen sistemas
32.3. Nuevos modos para representar la información
32.4. La vista larga
32.5. La responsabilidad del ingeniero de software
32.6. Un comentario final

Apéndice 1. Introducción a UML
Apéndice 2. Conceptos orientados a objeto

Referencias
Índice analítico