Autor: PANTALEO, Guillermo
Páginas: 248
Editorial: Alfaomega
$368
Consultar disponibilidad
Autor: PANTALEO, Guillermo
Páginas: 248
Editorial: Alfaomega
Consultar disponibilidad
Este libro trata la temática de la calidad en el desarrollo de software desde diferentes puntos de vista, la gestión del proyecto, las cuestiones técnicas, el análisis de errores más frecuentes y la propuesta de solución de ellos, así como el esbozo de una metodología integral para afrontar todos los problemas y optimizar los procesos. En este libro se asume que el lector se dedica a generar software de manera profesional y enfrenta los requerimientos de un cliente externo que le solicita un desarrollo en particular, sobre necesidades concretas y reales. Las metodologías mencionadas son de uso internacional y los puntos teóricos tratados cuentan con numerosas referencias bibliográficas que permiten profundizar el tema a aquellos que lo requieran.
Este libro fue concebido como una guía de estudio para estudiantes de carreras tales como Ingeniería Informática o Ingeniería de Sistemas. Es, también, una referencia para los profesionales que desempeñan roles técnicos o de gestión en proyectos de desarrollo de software.
Los estudiantes encontrarán un medio de relacionar conocimientos adquiridos a veces como entidades aisladas cuando en realidad forman parte de un todo en cuyas relaciones se fundamenta su comprensión.
Los profesionales encontrarán respuesta a muchos de los problemas que se les presentana diario, un análisis de ellos y una propuesta de solución. El objetivo es cubrir aspectos del desarrollo de software que son claves y en los cuales se debe trabajar bien a efectos de garantizar la calidad de los productos generados en los proyectos de desarrollo.
Este manual fue escrito pensando en los obstáculos que se presentan a la hora de llevar adelante un proyecto de desarrollo. Busca las causas de dichos problemas y guía al lector en la búsqueda de las soluciones a los problemas mencionados, a partir de la formación de criterios elaborados en función de la experiencia recogida por el autor, a lo largo de 30 años, en escenarios muy diversos.
En esta nueva edición se han corregido todos los errores de la primera, detectados por el profesorado.
Se han agregado dos apéndices:
CONTENIDO
CAPÍTULO 1: Calidad en el software
1.1 | Introducción ………. . . . . . ……. . . . . . . . . . . ..19
1.2 |Calidad en el software…….. . . . . . …….. . …19
1.2.1 Evolución histórica…………………………19
1.2.2 Lecciones no aprendidas ………. . . . . . ….23
1.3 | Calidad versus velocidad de desarrollo……24
1.3.1 Estándares……………………………….24
1.3.2 Creatividad…………………. . . ….. . . . ….24
1.3.3 Madurez………………………………….25
1.4 |Modelos de calidad de software………….25
1.4.1 Surgimiento y evolución………. . . . . . . . . . . 25
1.4.2 Modelos …………………………………26
1.4.3 Certificaciones y evaluaciones…………..32
1.5 | Conclusión……… . . . . . ……….. . . . . . . . . . …32
CAPÍTULO 2: CAUSAS QUE DETERIORAN LA
CALIDAD EN EL SOFTWARE
2.1 | Introducción………… . . . . ……….. . . . . . ……35
2.1.1 | Definiciones…….. . . . . . ……….. . . . . . . …35
2.1.1.1 Calidad de producto….. . . . …………35
2.1.1.2 Calidad de proceso….. ….. . . . … . . . . 36
2.2 |Causas que deterioran la calidad….. . . . . . . 37
2.3 |Aspectos que hay que trabajar para mejorar
la calidad….. . . . ………………………………..39
2.4 | Forma de tratamiento de los temas…. . . . .41
CAPÍTULO 3: Trabajo con la Organización –
Mejora de Procesos
3.1 | Visión del cambio. ……………… . . . . ….43
3.1.1 Análisis de casos……………………….43
3.1.2 Primeros pasos en un proceso de mejoras ..50
3.2 | Trabajando en los cambios……………..53
3.2.1 Forma de trabajo……………………….53
3.2.1.1 Modelo IDEAL…………… . . . . . . …..54
3.2.1.2 Modelo EOALG………. . . . … . . . . . . ..55
3.2.2 Dos fenómenos espontáneos.. . . . …… . . 55
3.2.2.1 Desconcierto.. . . . .. . . . … . . . . . ….. . . 55
3.2.2.2 Procesos virtuales.. . . . …….. . . . . . . . 57
3.3 | Aspectos y factores del proceso de mejoras..57
3.3.1 Direcciones del cambio organizacional en sus
múltiples dimensiones …………………………58
3.3.2 Aspecto socio-cultural de la gestión del
cambio……………………………… ………58
3.3.3 Factores críticos y de riesgo…………….59
3.3.4 Factores generales de éxito…………….60
3.3.5 Factores de éxito en pymes……………..62
3.3.6 Factores adicionales……………………62
3.3.7 Recomendaciones……………………..63
3.4 |Gestión del cambio……………………..63
3.4.1 Oposición al cambio…………………….63
3.4.1.1 Razones de resistencia al cambio…..63
3.4.1.2 Rescatar lo positivo de la resistencia..64
3.4.2 Influencia de la cultura organizacional…..65
3.4.2.1 Tipos de cultura organizacional…….65
3.4.3 Comportamientos generadores de conflictos
y tensiones en la implementación de procesos de
mejora de los roles participantes……………..66
3.4.4 Estrategia………………………………69
3.4.5 Tácticas………………………………..70
Alfaomega Calidad en el desarrollo de software
14 CALIDAD EN EL DESARROLLO DE SOFTWARE
3.4.5.1 Diferentes tácticas para el trabajo con
los miembros jerárquicos y con los demás
miembros…………………………………70
3.4.5.2 Diferentes formas de comunicación
con áreas jerárquicas y racionales, y canal de
comunicación entre ellas…………………72
3.4.5.3 Compartir lugar físico con los
miembros de las áreas……………………72
3.4.5.4 Foco en temas puntuales y en grupos
reducidos con intereses comunes …. . . . . . …..72
3.4.6 Liderazgo………………………………72
3.5 | Respuesta a los casos de estudio……….73
Caso 1……………………………………72
Caso 2………………………… …. …….74
Caso 3……………………………………74
3.6 | Conclusión……………………………..75
CAPÍTULO 4: Trabajo con Requerimientos
4.1 | Importancia de los requerimientos……..77
4.1.1 El rol de analista……………………….78
4.1.1.1 Definición…………………………78
4.1.2 ¿Qué son los requerimientos?………….78
4.1.3 ¿Para qué sirven?……………. . . …….78
4.1.4 ¿Cuál es el impacto en un proyecto de
desarrollo de software?…………. . . . . ………78
4.2 |Tareas asociadas a los requerimientos…..82
4.2.1 Foco…………………………. ………83
4.2.2 Nivel…………………………………..84
4.2.3 Vista…………………………………..84
4.3| Estrategia y tácticas en el trabajo con
requerimientos….. . . . . . . ……………………..86
4.3.1 Estrategia……………………………..86
4.3.2 Tácticas……………………. . . …. …..88
4.3.2.1 Especificación de requerimientos de
software y sus atributos de calidad… . . . ….88
4.3.2.2 Especificación de casos de uso……89
4.4 | Análisis de requerimientos………. . . ….91
4.4.1 No confundir dominio y negocio con diseño.91
4.4.1.1 Nota para desarrolladores ágiles……95
4.4.1.2 Nota a los analistas de sistemas… . .96
4.4.2. Paquetes………………………………96
4.4.2.1 Alternativas de selección…………..96
4.5 | Validación y verificación… … …………98
4.5.1 Validación……………………………..98
4.5.2 Verificación…………….. ……. ………98
4.6 | Administración de cambios a los
requerimientos…………… ……… . . . . ….. .100
4.6.1 Problema………………… ……… ….100
4.6.2 Alternativas de solución………… .. ….102
4.6.2.1 Nota para desarrolladores ágiles….102
4.7 | Conclusión……… … . . . . . . .. . …… ……..102
CAPÍTULO 5: Trabajo con la gestión
de proyectos
5.1 | Proyectos…… . . . ………. . . . …………105
5.1.1 Planes y planificación….. . . . ………….105
5.1.2 Cascada versus iteraciones……………106
5.1.2.1 La dinámica de las iteraciones… …107
5.1.2.2 Las vistas de los roles…………….109
5.1.3 Planificación de iteraciones……………111
5.1.3.1 Medidas de estabilidad…………..112
5.1.4 Fases, actividades, objetivos…… . ……114
5.1.5 Cuestiones a tener en cuenta y algunas
recomendaciones…………………… … ….116
5.1.5.1 A tener en cuenta………….. . …..116
5.1.5.2 Recomendaciones………………..117
5.1.6 Condiciones de contexto…… …………117
5.2 | Planificación de proyectos………………118
5.2.1 Estrategia…………………………….120
5.2.1.1 Un caso demostrativo…………….120
5.2.2 Construcción de una estrategia……….122
5.2.2.1 Visión……………………………122
5.2.2.2 Objetivos………………………..122
5.2.2.3 Prioridades………………………123
Guillermo Pantaleo Alfaomega
15
5.2.2.4 Riesgos………………. … ……..123
5.2.2.5 Estimaciones…………………….124
5.2.2.6 Estrategia ………………. … …..127
Ejemplo de estrategia………….. . … …..128
5.3 | Seguimiento del desarrollo de proyectos….130
5.3.1 Roles…………………………………130
5.3.1.1 Qué cosas debe hacer un líder de
proyectos para cubrir sus responsabilidades
…………………………………………130
5.3.1.2 Qué cosas no debe hacer un líder de
proyectos……. . . . . . . . . . . . . . . . . . . . . ……….. 131
5.3.2 Actividades…………………………..131
5.3.3 Puntos de observación………………..132
5.3.4 Fotos versus película…………… . . …133
5.3.4.1 Tratamiento de una decena de temas
……….. ……………………………….133
5.3.4.2 No seguimiento de los temas tratados
…………………………………………133
5.3.5 Escalamiento…………………………133
5.3.6 Acciones……………………………..134
5.3.7 Métricas……………………………..134
5.4 | Conclusión………… . . . . . …………….137
CAPÍTULO 6: Trabajo con la Implementación
– Diseño Codificación y Pruebas
6.1 | Diseño, codificación y pruebas……………139
6.1.1| Problemas…………………………..140
6.1.1.2 Proceso de diseño ………………140
6.1.1.3 Coordinación de la construcción ……140
6.1.1.4 Pruebas ………………….. … ….140
6.2| Pruebas de software………………………141
6.2.1| Trabajo con el repositorio ……………145
6.2.2| Test sistemáticos y automáticos……..146
6.2.3| Cómo adoptar la nueva forma de trabajo
……………………………………………147
6.2.3.1 Obstáculos para automatizar las
pruebas………………………………….147
6.2.3.2 Qué debería automatizarse… …….148
6.2.3.3 Qué no debería automatizarse ……..148
6.2.3.4 Estrategia para comenzar la
automatización………………………………148
6.3| Integración continua…………………. … …..149
6.3.1| Forma de trabajo………………. … ..149
6.3.1.1 Pasos………………………. … ..149
6.3.1.2 Principios………………….. … ..150
6.3.2 | Infraestructura……… . . . . . . . . . . . … ..151
6.3.3| Resultados……………………… … ..153
6.4|Revisiones de diseño y código…………. ….154
6.4.1 Revisiones……… … …………… … ..154
6.4.1.1 Objetivos…………. .. . . . . . … … ..155
6.4.1.2 Beneficios ……… … .. ……… ….155
6.4.1.3 Métricas guía………… … …. … ..156
6.4.1.4 Indicadores……… … ……….. .. ..157
6.4.1.5 Polimétrica de complejidad……… .158
6.5 |Conclusiones……… …….. …………. … ..158
6.6 |Herramientas……………………. … ….. ..158
CAPÍTULO 7: Trabajo con modelos de
desarrollo – CMMI
7.1 | Modelos de referencia……….. …………..161
7.1.1 CMMI…………………………………162
7.1.2 Relación entre áreas de proceso….. . . ..167
7.1.3| Desmistificando el modelo……………169
7.1.3.1 Por qué CMMI…………………….169
7.1.3.2 Con quién trabajar……….. ………169
7.1.3.3 Cómo es el proceso de mejoras con CMMI
…………….. . . . . . . . . . . . . … . . . . . . …….171
7.1.3.4 Qué recursos se necesitan……. ….175
7.1.3.5 Cómo es la evaluación con CMMI
(SCAMPI)…………………………. ……..177
7.2| Mejora de procesos utilizando el modelo CMMI
………………………………………………….181
7.2.1 | Estrategia general……………………182
7.2.1.1 Políticas y Procesos……………….183
7.2.1.2 Interpretación y mapeo de objetivos y
tareas…………………………. . ………184
Alfaomega Calidad en el desarrollo de software
16 CALIDAD EN EL DESARROLLO DE SOFTWARE
7.2.1 | Institucionalización…….. . . . ……….187
7.2.1.1 Relación entre áreas de proceso y
objetivos genéricos………………………187
7.3 | Modelos y metodologías………………189
7.3.1 | Metodologías y modelos…………….189
7.3.2 | CMMI y metodologías……………….190
7.4 | Madurez……………………………..191
7.5 | Conclusiones…………………………192
Apéndice A: Temas varios
Apéndice – Ejemplos de activos…………….195
Especificación de requerimientos de software (ERS)
……………………………………………195
Modelo de especificación de casos de uso… . 197
Ejemplo de priorización de requerimientos.. . . 199
Modelo de informe de avance………………202
Modelo de procedimiento…………………..203
Procedimiento de trabajo con código compartido
(CC) en ambiente de IC……………. . . …….204
Descripción……………………………..204
Forma de trabajo………………… . . . . . ..204
Condiciones de entrada………………….205
Entradas ……………………….. . . ……205
Roles……………………………………205
Activos…………………….. . ………….205
Pasos de la actividad…… . . . ……………206
Salida…………………………………..206
Condiciones de salida……. . . …………..206
Métricas ……………………….. . …….207
Verificación y validación……. . . . . . ………207
Apéndice B: Métricas aplicadas al Sofware
Las medidas como mecanismo de aseguramiento
y control de calidad …………………………..209
Medidas como verificación de aseveraciones .209
Modelo conceptual y modelo operacional………210
Indicadores y herramientas ………………………….210
Medidas de la calidad de productos de software…..211
Atributos internos ………………………………………..212
Atributos externos ……………………………………….212
Medidas de la calidad de procesos de software ….
……………………………………………………………………213
Medidas asociadas al desarrollo …………………..213
Medidas asociadas a la mejora de procesos …214
Conclusiones ………………………………………………220
Referencias……………………………………………….220
Apéndice C: Estándares de calidad en
procesos de software
Introducción…………………………………223
Normas y modelos de referencia……………223
Norma ISO 9001-2000……………………..230
Modelo CMMI ………………………………232
Enfoque y alcance de aplicación…………….237
Conclusiones…………… . . . . ………………237
Referencias………….. . . . . …………………237
Apéndice D: Estándares de calidad en
productos de software
Modelos ISO para la calidad del producto software
………………………………………………..239
El estándar ISO/IEC 9126 …………………….240
Calidad Interna y externa………….. . . ……….242
Calidad en uso…………………………………243
Estándar ISO/IEC 25000:2005……………………244
El estándar ISO/IEC 25010:2011……………….247
Referencias………………………………………………247