Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
org
CONSULTOR EDITORIAL
Á R EA D E INFORM ÁTICA Y COM PUTACIÓN
www.FreeLibros.org
INGENIERIA DEL SOFTWARE
UN ENFOQUE PRÁCTICO
Q uinta edición
Roger S. Pressman
R.S. Pressman & Associates, Inc.
ADAPTACIÓN
Darrel Ince
Open University
TRADUCCIÓN
Rafael Ojeda Martín Isabel Morales Jareño
Virgilio Yagüe Galaup Salvador Sánchez Alonso
COLABORACIÓN
Óscar San Juan Martínez Juana González González
Ricardo Lozano Quesada Lorena Esmoris Galán
REVISIÓN TÉCNICA
Héctor Castán Rodríguez
D ep a rta m en to de L e n g u a jes y S istem a s Info rm á tico s e In geniería d e l Softw are
Facultad de Inform ática / E scu ela U niversitaria d e In fo rm ática
Universidad Pontificia de Salamanca campus Madrid (España)
Me
Grauu
Hit!
www.FreeLibros.org
M A D R ID * BUENOS A IR ES - C A R A C A S * G U A T E M A L A * U S B O A * M E X IC O
NUEVA YORK • P A N A M Á • S A N JU A N • SANTAFÉ DE BOGOTÁ • S A N TIA G O • SAO PAULO
A U C K L A N D * H A M B U R G O * LO N D R E S * M ILÁ N ■ M O N T R E A L * N U E V A D E L H I ■ PARÍS
S A N F R A N C IS C O * S ID N E Y * S IN G A P U R ■ ST. LO U IS • T O K IO • T O R O N T O
IN G E N IE R ÍA D E L SO FTW A R E. U n en foq u e práctico. (5.' edición)
N o está perm itida la reproducción total o parcial de este libro, ni su tratam iento infor
m ático, ni la transm isión de ninguna form a o por cualquier m edio, ya sea electrónico,
m ecánico, por fotocopia, por re gistro u otros m étodos, sin el perm iso p revio y por
escrito de los titulares del C opyright.
ISBN : 0-07-709677-0
ISBN : 84-481-3214-9
D epósito legal: M. 42.852-2001
www.FreeLibros.org
C om puesto en FER
Im preso en: Im prenta FA RESO. S. A.
IM P R E S O E N ESPA Ñ A - P R IN T E D IN SPAIN
CO N TEN ID O S A P R IM E R A V I S T A
A C E R C A D E L A U T O R , X X III
P R E F A C IO , X X V
P R Ó L O G O A L A C U A R TA E D IC IÓ N E N E SPA Ñ O L , X X IX
P R Ó L O G O A L A Q U IN T A E D IC IÓ N E N E SPA Ñ O L , X X X III
U T IL IZ A C IÓ N D E L L IB R O , X X X V II
www.FreeLibros.org
CAPÍTU LO 28. ING EN IERÍA DEL SO FTW A RE D EL C O M E R C IO E LEC TR Ó N IC O
CLIEN TEISERV ID O R, 491
CAPÍTU LO 29. ING EN IERÍA W EB, 521
V
C O N T E N ID O S A P R IM E R A VISTA
APÉNDICE, 581
ÍNDICE, 589
www.FreeLibros.org VI
CONTENIDO
A C E R C A D E L A U T O R , X X III
PR E F A C IO , X X V
P R Ó L O G O A L A CU A RTA E D IC IÓ N E N E SPA Ñ O L , X X IX
P R Ó L O G O A L A Q U IN T A E D IC IÓ N E N E SPA Ñ O L , X X X III
U T IL IZ A C IÓ N D E L L IB R O , X X X V II
CAPÍTULO 1: EL PRODUCTO. 3
1.1. LA EVOLUCIÓN DEL SO FTW A RE 4
1.2. EL SOFTW ARE, 5
1.2.1. CARACTERÍSTICAS DEL SOFTWARE. 5
1.2.2. APLICACIONES DEL SOFTWARE, 6
1.3. SOFTW ARE: ¿UNA CRISIS EN EL H O RIZO NTE?, 8
1.4. M ITOS DEL SOFTW ARE, 8
RESUM EN, 10
REFEREN CIAS, 10
PRO BLEM A S Y PU NTOS A C O N SIDERAR, 11
OTRAS LECTURAS Y FU EN TES DE IN FORM A CIÓN, 11
CAPÍTULO 2: EL PROCESO. 13
2.1. ING EN IERÍA DEL SOFTW ARE: UNA T ECN O LO G ÍA ESTRATIFICAD A, 14
2.1.1. PROCESO. MÉTODOS Y HERRAMIENTAS. 14
2.1.2. UNA VISIÓN GENERAL DE LA INGENIERÍA DEL SOFTWARE. 14
2.2. EL PR O C ESO D EL SOFTW ARE, 16
2.3. M O DELO S DE PR O C ESO D EL SOFTW ARE, 19
2.4. EL M O D ELO LINEAL SECUENCIAL, 20
2.5. E L M O D ELO DE CONSTRUCCIÓN DE P R O T O T IP O S ,21
2.6. E L M O D ELO DRA, 22
2.7. M O DELO S EV O LUTIVOS DE PR O C ESO DEL SOFTW ARE, 23
2.7.1. EL MODELO INCREMENTAL, 23
2.7.2. EL MODELO ESPIRAL. 24
2.7.3. EL MODELO ESPIRAL WINWIN (Victoria & Victoria). 26
2.7.4. EL MODELO DE DESARROLLO CONCURRENTE, 27
2.8. D ESA RRO LLO BASADO EN CO M PO N EN TES, 28
2.9. EL M O D ELO DE MÉTODOS FO RM ALES, 29
2.10. TÉCNICAS DE CUARTA G ENERACIÓ N, 29
2.11. TECN OLOGÍA S DE PRO CESO, 30
2.12. PRO D U CTO Y PRO CESO, 31
RESUM EN , 31
REFEREN CIAS, 32
PRO BLEM A S Y PU NTOS A CO N SIDERAR, 32
OTRAS LECTURA S Y FUENTES DE IN FORM A CIÓN, 33
www.FreeLibros.org
CAPÍTULO 3: CONCEPTOS SOBRE GESTIÓN DE PROYECTOS. 37
3.1. EL ESPE C T R O DE LA GESTIÓN , 38
3.1.1. PERSONAL. 38
VII
C O N T E N ID O
3.1.2. PRODUCTO, 38
3.1.3. PROCESO. 38
3.1.4. PROYECTO, 39
3.2. PERSONAL, 39
3.2.1. LOS PARTICIPANTES, 39
3.2.2. LOS JEFES DE EQUIPO. 40
3.2.3. EL EQUIPO DE SOFTWARE,40
3.2.4. ASPECTOS SOBRE LA COORDINACIÓN Y LA COMUNICACIÓN, 43
3.3. PRO DUCTO, 44
3.3.1. ÁMBITO DEL SOFTWARE.44
3.3.2. DESCOMPOSICIÓN DEL PROBLEMA. 45
3.4. PRO CESO, 45
3.4.1. MADURACIÓN DEL PRODUCTO Y DEL PROCESO. 46
3.4.2. DESCOMPOSICIÓN DEL PROCESO. 47
3.5. PRO YECTO , 48
3.6. EL PR IN C IPIO WSHH, 49
3.7. PRÁCTICAS CRÍTICAS, 49
RESUM EN , 50
REFEREN CIAS, 50
PRO BLEM A S Y PU NTOS A CO N SIDERAR, 51
OTRAS LECTURAS Y FU EN TES DE INFORM A CIÓN, 51
www.FreeLibros.org
CAPÍTULO 5: PL ANTFTC ACIÓN DF. PROYECTOS DF. SOFTWARE 77
5.1. OBSERVACIONES SOBRE LA ESTIM ACIÓ N, 78
5.2. O BJETIV O S DE LA PLAN IFICACIÓ N DEL PR O Y EC TO , 79
VIII
CONTENIDO
www.FreeLibros.org
7.1. CON CEPTO S BÁSICOS, 112
7.1.1, COMENTARIOS SOBRE «LOS RETRASOS», 112
7.1.2. PRINCIPIO BÁSICOS, 113
IX
CONTE NID O
www.FreeLibros.org
CAPÍTULO 9: GESTIÓN DE LA CONFIGURACIÓN DEL SOFTWARE(GCS/SCM), 151
9.1. G ESTIÓ N DE LA C O N FIG U RA CIÓ N DEL SOFTW ARE, 152
X
CONTENIDO
www.FreeLibros.org
11.4.1. SELECCIÓN DEL ENFOQUE DE CREACIÓN DE PROTOTIPOS. 192
11.4.2. MÉTODOS Y HERRAMIENTAS PARA EL DESARROLLO DE PROTOTIPOS. 193
11.5. ESPECIFIC A CIÓ N , 193
XI
C O N T E N ID O
www.FreeLibros.org
13.4.9. OCULTACIÓN DE INFORMACIÓN, 229
13.5. D IS E NO M O DULAR EFECTIVO. 229
XII
C O N T E N ID O
C A P ÍT U L O 14: D T SF N O A R O IU T E C T Ó N IC O .2 3 7
14.1. A R Q U ITECTU RA DEL SOFTW ARE, 238
14.1.1. ¿QUÉ ES ARQUITECTURA?. 23 8
14.1.2. ¿PORQUÉ ES IMPORTANTE LA ARQUITECTURA?. 238
14.2. DISEÑ O DE DATOS, 239
14.2.1 MODELADO DE DATOS. ESTRUCTURAS DE DATOS. BASES DE DATOS Y ALMACÉN DE
DATOS. 239
14.2.2. DISEÑO DE DATOS A NIVEL DE COMPONENTES. 240
14.3. E ST IL O S A RQ U ITECTÓ N ICO S, 241
14.3.1. UNA BREVE TAXONOMÍA DE ESTILOS Y PATRONES. 241
14.3.2. ORGANIZACIÓN Y REFINAMIENTO. 243
14.4. ANÁLISIS D E DISEÑOS A RQ U ITECTÓ N ICO S ALTERNATIVOS, 243
14.4.1. UN MÉTODO DE ANÁLISIS DE COMPROMISO PARA LA ARQUITECTURA. 243
14.4.2. GUÍA CUANTITATIVAPARAEL DISEÑO ARQUITECTÓNICO. 244
14.4.3. COMPLEJIDAD ARQUITECTÓNICA. 245
14.5. CO N V ERSIÓ N DE LOS REQUISITO S EN UNA A R Q U ITECTU RA D EL SO FTW A R E,245
14.5.1. FLUJO DE TRANSFORMACIÓN, 246
14.5.2. FLUJO DE TRANSACCIÓN. 246
14.6. ANÁLISIS DE LAS TRA NSFORM ACIO NES, 247
14.6.1. UN EJEMPLO. 247
14.6.2. PASOS DEL DISENO, 247
14.7. ANÁLISIS DE LAS TRANSACCION ES, 252
14.7.1. UN EJEMPLO. 252
14.7.2. PASOS DEL DISEÑO, 252
14.8. REFIN A M IEN TO DEL DISEÑ O A RQ U ITECTÓ N ICO , 255
RESUM EN , 256
REFEREN CIAS, 256
PRO BLEM A S Y PU NTOS A CO N SIDERAR, 257
OTRAS LECTURA S Y FU EN TES DE IN FORM A CIÓN, 258
www.FreeLibros.org
15.4. A CTIV ID A D ES DEL D ISEN O DE LA INTERFAZ, 264
15.4.1. DEFINICIÓN DE OBJETOS Y ACCIONES DE LA INTERFAZ. 265
15.4.2. PROBLEMAS DEL DISEÑO, 266
XIII
C O N T E N ID O
www.FreeLibros.org
OTRAS LECTURA S Y FU EN TES DE IN FORM A CIÓN, 303
XIV
C ONTENIDO
www.FreeLibros.org
19.4.2. MÉTRICAS DE DISEÑO A NIVEL DE COMPONENTES, 333
19.4.3. MÉTRICAS DE DISEÑO DE INTERFAZ, 335
19.5. MÉTRICAS DEL CÓDIGO FUENTE, 336
XV
C O N T E N ID O
www.FreeLibros.org
21.6.2. REPRESENTACIONES DE ESTADOS. 375
RESUM EN, 376
REFEREN CIAS, 377
XVI
CONTENIDO
www.FreeLibros.org
23.3.3. PRUEBAS DE VALIDACIÓN EN UN CONTEXTO 0 0,4 1 1
23.4. D ISE N O DE CASOS DE PRUEBA PARA SO FTW A RE 0 0 ,4 1 2
23.4.1. IMPLICACIONES DE LOS CONCEPTOS DE OO AL DISEÑO DE CASOS DE PRUEBA. 412
XVII
C O N T E N ID O
www.FreeLibros.org
25.2.2. OPERADORES DE CONJUNTOS. 442
25.2.3. OPERADORES LÓGICOS, 443
25.2.4. SUCESIONES. 443
XVIII
C O N T E N ID O
www.FreeLibros.org
27.6. ECO N O M IA DE LA ISBC, 484
27.6.1, IMPACTO EN LA CALIDAD, PRODUCTIVIDAD Y COSTE, 484
27.6.2. ANÁLISIS DE COSTE EMPLEANDO PUNTOS DE ESTRUCTURA, 485
XIX
CONTENIDO
C A P IT U L O 28: IN G E N IE R IA P E I S O F T W A R E DF.T. C O M F R C I O F I F C T R Ó M C O
CLMENTE/SEBYTPOR,491
28.1. INTRODUCCIÓN, 492
28.2. SISTEMAS DISTRIBUIDOS, 492
28.2.1. CLIENTES Y SERVIDORES. 492
28.2.2. CATEGORÍAS DE SERVIDORES. 492
28.2.3. SOFIWARE INTERMEDIO (MIDDLEWARE), 494
28.2.4.UN EJEMPLO DE SOFIWARE INTERMEDIO. 495
28.3. ARQUITECTURAS ESTRATIFICADAS, 496
28.4. PROTOCOLOS, 497
28.4.1. EL CONCEPTO, 497
28.4.2.IPEICM P, 498
28.4.3. POP3,498
28.4.4.EL PROTOCOLO H'ITP. 499
28.5. UN SISTEMA DE COMERCIO ELECTRÓNICO, 499
28.5.1.¿QUÉ ES EL COMERCIO ELECTRÓNICO?. 499
28.5.2. UN SISTEMA TÍPICO DE COMERCIO ELECTRÓNICO. 500
28.6. TECNOLOGIAS USADAS PARA EL COMERCIO ELECTRÓNICO, 502
28.6.1. CONEXIONES (SOCKETS), 502
28.6.2. OBJETOS DISTRIBUIDOS. 502
28.6.3. ESPACIOS. 503
28.6.4.CGI. 503
28.6.5.CONTENIDO EJECUTABLE. 503
28.6.6. PAQUETES CLIENTE/SERVIDOR, 504
28.7. EL DISEÑO DE SISTEMAS DISTRIBUIDOS, 504
28.7 .l.CORRESPONDENCIADEL VOLUMEN DE TRANSMISIÓN CON LOS MEDIOS DE TRANS
MISIÓN, 504
29.1.2. MANTENIMIENTO DE LOS DATOS MÁS USADOS EN UN ALMACENAMIENTO
RÁPIDO, 504
28.7.3.MANTENIMIENTO DE LOS DATOS CERCA DE DONDE SE UTILIZAN. 504
28.7.4. UTILIZACIÓN DE LADUPLIC ACIÓN DE DATOS TODO LO POSIBLE. 505
28.7.5.ELIMINAR CUELLOS DE BOTELLA. 505
28.7.6. MINIMIZAR LA NECESIDAD DE UN GRAN CONOCIMIENTO DEL SISTEMA. 505
28.7.7. AGRUPAR DATOS AFINES EN LA MISMA UBICACIÓN. 505
28.7.8. CONSIDERAR LA UTILIZACIÓN DE SERVIDORES DEDICADOS A FUNCIONES
FRECUENTES. 506
28.7.9. CORRESPONDENCIA DE LA TECNOLOGÍA CON LAS EXIGENCIAS DE
RENDIMIENTO. 506
28.7.10.EMPLEO DEL PARALELISMO TODO LO POSIBLE. 506
28.7.11 .UTILIZACIÓN DE LA COMPRESIÓN DE DATOS TODO LO POSIBLE. 506
28.7.12. DISEÑO PARA EL FALLO. 506
28.7.13. MINIMIZAR LA LATENCIA. 506
28.7.14.EPÍLOGO, 506
28.8. INGENIERIA DE SEGURIDAD, 507
28.8.1. ENCRIPTACIÓN, 507
www.FreeLibros.org
28.8.2. FUNCIONES DE COMPENDIO DE MENSAJES. 508
28.8.3. FIRMAS DIGITALES, 508
28.8.4. CERTIFICACIONES DIGITALES. 508
XX
C O N T E N ID O
28.9. COM PON EN TES DE SOFTW ARE PARA SISTEM AS C/S, 509
28.9.1. INTRODUCCIÓN, 509
28.9.2. DISTRIBUCIÓN DE COMPONENTES DE SOFTWARE, 509
28.9.3. LÍNEAS GENERALES PARALA DISTRIBUCIÓN DE COMPONENTES DE
APLICACIONES, 510
28.9.4. ENLAZADO DE COMPONENTES DE SOFTWARE C/S, 511
28.9.5. SOFTWARE INTERMEDIO (MIDDLEWARE) Y ARQUITECTURAS DE AGENTE DE SOLICI
TUD DE OBJETOS. 512
28.10. IN G EN IERÍA DEL SO FTW A RE PARA SISTEM AS C/S, 512
28.11. PRO BLEM A S DE M O D ELA D O DE ANÁLISIS, 512
28.12. DISEÑ O DE SISTEM AS C/S, 513
28.12.1. DISEÑO ARQUITECTÓNICO PARA SISTEMAS CLIENTE/SERVIDOR, 513
28.12.2. ENFOQUES DE DISEÑO CONVENCIONALES PARA SOFTWAREDE APLICACIONES. 514
28.12.3. DISEÑO DE BASES DE DATOS. 514
28.12.4. VISIÓN GENERAL DE UN ENFOQUE DE DISEÑO, 515
28.12.5. ITERACIÓN DEL DISEÑO DE PROCESOS. 516
28.13. PRO BLEM A S DE LAS PRUEBAS, 516
28.13.1. ESTRATEGIAGENERAL DE PRUEBAS C/S, 516
28.13.2. TÁCTICA DE PRUEBAS C/S, 518
RESUM EN, 518
R EFEREN CIAS, 519
PRO BLEM A S Y PU NTOS A CO N SIDERAR, 519
OTRAS LECTURA S Y FU EN TES DE IN FO RM A CIÓ N , 519
CAPÍTULO 30 - REINGENIERIA,541
www.FreeLibros.org
30.1. REINGENIERÍA DE PRO CESO S DE N E G O C IO , 542
30.1.1. PROCESOS DE NEGOCIOS. 542
30.1.2. PRINCIPIOS DE REINGENIERÍA DE PROCESOS DE NEGOCIOS. 542
XXI
C O N T E N ID O
APÉNDICE, 581
www.FreeLibros.org
ÍNDICE, 589
XXII
A C E R C A DEL A U TO R
OGER S. Pressm an es una autoridad intem acionalm ente reconocida en la m ejora del
R proceso del Software y en las tecnologías de la Ingeniería del Software. Durante tres
décadas, ha trabajado com o ingeniero de Software, gestor, profesor, autor y consultor
centrándose en los tem as de la Ingeniería del Softwate.
Como especialista y gerente industrial, el Dr. Pressm an ha trabajado en el desarrollo de sis
temas CAD/CAM para aplicaciones avanzadas de ingeniería y fabricación. También ha ocu
pado puestos de responsabilidad para program ación científica y de sistemas.
Después de recibir el título de Doctor en Ciencias Físicas en Ingeniería de la Universidad de
Connecticut, el Dr. Pressm an se dedicó a la enseñanza donde llegó a ser Profesor A sociado
(Bullard Associate Professor) de Inform ática en la Universidad de Bridgeport y Director del
Com puter-Aided Design an M anufacturing Center en esta Universidad.
El Dr. Pressman es actualm ente el Presidente de R. S. Pressm an & A ssociates, Inc., una
em presa de asesoría especializada en métodos y formación de Ingeniería del Softwate. Trabaja
com o asesorjefe, y está especializado en la asistencia a compañías para establecer unas prác
ticas eficientes de la Ingeniería del Software. También ha diseñado y desarrollado productos
para la formación en Ingeniería del Softwate de la com pañía y de m ejora del proceso: Essen-
tial Software Engineering, un currículum en vídeo totalmente actualizado que se cuenta entre
los trabajos industriales m ás extensos acerca de este tem a y, Process Advi sor, un sistema pro
gram ado para la m ejora en el proceso de ingeniería del softwate. Am bos productos son utili
zados por cientos de compañías mundiales.
El Dr. Pressm an ha escrito num erosos artículos técnicos, participa regularm ente en revistas
industriales, y ha publicado 6 libros. Además de Ingeniería del Software: Un Enfoque P rá c
tico, ha escrito A M anager ’s Guide to Software Engineering (M cGraw-Hill), un libro que hace
uso de un exclusivo formato de preguntas y respuestas para presentar las líneas generales de
Adm inistración para im plantar y com prender la tecnología: M aking Software Engineering Hap-
p e n (Prentice-Hall), que es el prim er libro que trata los problem as críticos de administración
asociados a la m ejora del proceso del Software y Software Shock (Dorset House), un tratado
centrado en el Softwarey su im pacto en losnegociosy en la sociedad. El Dr. Pressm an es m iem
bro del consejo editorial del ZEEE Software y del C u tte rlT Journal, y durante m uchos años fue
editor de la colum na «M anager» del IE E E Software.
El Dr. Pressman es un conocido orador, impartiendo un gran número de conferencias indus
triales principalmente. Ha presentado tutoriales en la Conferencia Internacional de Ingeniería
del Software y en muchas otras conferencias industriales. Es miem bro de ACM , IEEE y Tau
Beta Pí, Phi Kappa Phi, Eta Kappa N u y Pi Tau Sigma.
www.FreeLibros.org XXIII
www.FreeLibros.org
PREFACIO
www.FreeLibros.org
Tercera,M étodos convencionales p a ra la ingeniería del software, presenta los métodos clási
cos de análisis, diseño y pruebas considerados com o la escuela «convencional» de la ingenie
ría del software. La Parte Cuarta, Ingeniería del software orientada a objetos, presenta los
XXV
P R E F A C IO
m étodos orientados a objetos a lo largo de todo el proceso de ingeniería del software, entre los
que se incluyen análisis, diseño y pruebas. La Parte Quinta, Temas avanzados en ingeniería del
software, introduce los capítulos especializados en métodos form ales, en ingeniería del soft
ware de sala limpia, ingeniería del software basada en componentes, ingeniería del software
cliente/servidor, ingeniería de Web, reingeniería y herram ientas CASE.
La estructura de la quinta edición en cinco partes permite que el instructor «agrupe» los temas
en función del tiem po disponible y de las necesidades del estudiante. Un trimestre completo se
puede organizar en tom o a una de las cinco partes. Por ejemplo, un «curso de diseño» podría
centrarse solo en la Parte Tercera o Cuarta; un «curso de métodos» podría presentar los capí
tulos seleccionados de las Partes Tercera, Cuarta y Quinta. Un «curso de gestión» haría hinca
pié en las Partes Prim era y Segunda. Con la organización de esta quinta edición, he intentado
proporcionar diferentes opciones para que el instructor pueda utilizarlo en sus clases.
E1 trabajo que se ha desarrollado en las cinco ediciones delngeniería del Software: JJnEnfo-
que Práctico es el proyecto técnico de toda una vida. Los m om entos de interrupción los he dedi
cado a recoger y organizar inform ación de diferentes fuentes técnicas. Por esta razón, dedicaré
mis agradecimientos a m uchos autores de libros, trabajos y artículos, así com o a la nueva gene
ración de colaboradores en m edios electrónicos (grupos de noticias, boletines informativos elec
trónicos y W orld W ide Web), quienes durante 20 años me han ido facilitando otras visiones,
ideas, y comentarios. En cada uno de los capítulos aparecen referencias a todos ellos. Todos
están acreditados en cuanto a su contribución en la rápida evolución de este campo. También
quiero dedicar mis agradecimientos a los revisores de esta quinta edición. Sus com entarios y
críticas son de un valor incalculable. Y por Último dedicar un agradecimiento y reconocimiento
especiales a Bruce M axim de la Universidad de M ichigan — DearBom , quien me ayudó a desa
rrollar el sitio Web que acompaña este libro, y com o persona responsable de una gran parte del
diseño y contenido pedadógico— .
El contenido de la quinta edición de Ingeniería del Software: UnEnfoque Práctico ha tomado
forma gracias a profesionales de industria, profesores de universidad y estudiantes que ya habían
utilizado las ediciones anteriores, y que han dedicado m ucho tiem po en mandarm e sus suge
rencias, críticas e ideas. M uchas gracias tam bién a todos vosotros. Además de mis agradeci
mientos personales a m uchos clientes de industria de todo el mundo, quienes ciertamente me
enseñan m ucho m ás de lo que yo mism o puedo enseñarles.
A m edida que he ido realizando todas las ediciones del libro, tam bién han ido creciendo y
m adurando mis hijos M athew y Michael. S u propia madurez, carácter y éxito en la vida han
sido mi inspiración. N ada me ha llenado con m ás orgullo. Y, finalmente, a Bárbara, mi cariño
y agradecimiento por animarme a elaborar esta quinta edición.
R oger S. Pressmcm
www.FreeLibros.org XXVI
P R E F A C IO
L libro de Roger Pressm an sobre Ingeniería del software es verdaderam ente excelente:
E Siempre he admirado la profundidad del contenido y la habilidad del autor para descri
bir datos difíciles de forma muy clara. De m anera que tuve el honor de que McGraw-
Hill m e pidiera elaborar la A daptación E uropea de esta quinta edición. E sta es la tercera
adaptación, y su contenido es un acopio de la quinta edición americana y el material que yo
m ismo he escrito para ofrecer una dim ensión europea.
Las áreas del libro que contienen ese material extra son las siguientes:
• Existe una gran cantidad de m aterial sobre m étodos form ales de desarrollo del software.
Estas técnicas fueron pioneras en el Reino Unido y Alemania, y han llegado a form ar parte
de los juegos de herram ientas críticos para los ingenieros de software en el desarrollo de sis
tem as altamente integrados y críticos para la seguridad.
. He incluido una sección sobre patrones de diseño. Estos son los que tienen lugar general
mente en m iniarquitecturas que se dan una y otra vez en sistemas orientados a objetos, y que
representan plantillas de diseño que se reutilizarán una y otra vez. He viajado por toda Europa,
y me he encontrado constantemente compañías cuyo trabajo depende realm ente de esta tec
nología.
• He aportado material sobre métricas y en particular la utilización de GQM como m étrica de
método de desarrollo. A m edida que la ingeniería del software se va integrando poco a poco
dentro de una disciplina de ingeniería, esta tecnología se va convirtiendo en uno de sus fun
damentos. La m étrica ha sido uno de los puntos fuertes en Europa de m anera que espero que
toda la dedicación que he puesto en este tem a lo refleje.
« He incluido tam bién material sobre el Lenguaje de M odelado Unificado (UML) el cual refleja
el gran incremento de utilización de este conjunto de notaciones en Europa Occidental. A de
m ás, sospecho que van a ser de hecho las notaciones de desarrollo de software estándar
durante los próxim os tres o cuatro años.
• He dado m ayor énfasis al desarrollo de sistemas distribuidos mediante el lenguaje de p ro
gramación Java para ilustrar la im plicación de algunos de los códigos. Ahora que Internet y
el comercio electrónico están en pleno auge en Europa, las compañías cada vez se vuelcan
más en las técnicas de ingeniería del software al desarrollar aplicaciones distribuidas. Y esto
tam bién queda reflejado en el libro.
• He incluido tam bién material sobre métodos de seguridad e ingeniería. Con la utilización de
Intem et (una red abierta) todos los ingenieros del software tendrán que saber muchas más
técnicas tales como firmas digitales y criptografía.
• Hacia el final del libro he hecho especial hincapié en la utilización de aplicaciones de com er
cio electrónico para m ostrar de esta m anera la tecnología distribuida.
Existen dos partes que hacen referencia al libro: un sitio Web americano muy importante, desa
rrollado por el Dr. Pressman; y un sitio de entrada, cuya dirección se proporciona a lo largo de todo
el libro al final de cada capítulo. Este sitio contiene el material relevante para la edición europea y
los enlaces con el sitio americano. Ambos sitios Web en combinación contienen sub-Webs con recur
sos para Estudiantes, para Profesores y para Profesionales.
En los Recursos para el estudiante se incluye una guía de estudio que resume los puntos clave
del libro, una serie de autopruebas que permiten comprobar la com prensión del m aterial, cientos
de enlaces a los recursos de ingeniería del software,un caso práctico, materiales complementarios
y un tablón de mensajes que permite comunicarse con otros lectores.
En la parte Recursos p a ra el profesor se incluye una guía para el instructor, un conjunto de
presentaciones en PowerPoint basadas en este libro, un conjunto de preguntas que se pueden
utilizar para practicar mediante deberes y exámenes, un conjunto de herram ientas muy peque
ñas (herramientas sencillas de ingeniería del software adecuadas para su utilización en clase),
una herram ienta de Web que permite crear un sitio Web específico para un curso, y un tablón
de mensajes que hace posible la com unicación con otros instructores.
En los Recursos p a ra profesionales se incluye docum entación para los procesos de inge
niería del software, listas de com probación para actividades tales com o revisiones, enlaces a
proveedores de herram ientas profesionales, cientos de enlaces a recursos de ingeniería del soft
ware, inform ación sobre los paquetes de vídeo de Pressman, y com entarios y ensayos indus
triales acerca de varios tem as de la ingeniería del software.
www.FreeLibros.org
Ingeniería del software es un libro excelente, y espero que los aportes que he incluido para
el lector europeo hagan de este libro una lectura obligada.
Darrel Ince
XXVII
www.FreeLibros.org
PRÓLOGO A LA CUARTA EDICIÓN EN ESPAÑOL
La Ingeniería de/1 Softw are1es una disciplina o área de la Inform ática o Ciencias de la C om
putación, que ofrece métodos y técnicas para desarrollar y m antener software de calidad que
resuelven problem as de todo tipo. Hoy día es cada vez m ás frecuente la consideración de la
Zngenierh de/l Software com o una nueva área de la ingeniería, y el ingeniero de/l software
com ienza a ser una profesión im plantada en el m undo laboral internacional, con derechos, debe
res y responsabilidades que cum plir, ju n to a una, ya , reconocida consideración social en el
mundo empresarial y, por suerte, para esas personas con brillante futuro.
La Ingeniería de/l Software trata con áreas muy diversas de la inform ática y de las ciencias
de la computación, tales com o construcción de compiladores, sistemas operativos o desarro
llos en Intranet/Intem et, abordando todas las fases del ciclo de vida del desarrollo de cualquier
tipo de sistem as de inform ación y aplicables a una infinidad de áreas tales com o: negocios,
investigación científica, m edicina, producción, logística, banca, control de tráfico, m eteorolo
gía, el m undo del derecho, la red de redes Intem et, redes Intranet y Extranet, etc.
El térm ino Zngenierh se define en el D R A E 2 como: «1. C onjunto de conocim ientos y técn i
cas que perm iten aplicar el saber científico a la utilización de la m ateria y de las fuentes de
energía. 2. Profesión y ejercicio del ingeniero» y el térm ino ingeniero se define com o «1. Per
sona que profesa o ejerce la ingeniería». De igual m odo la Real A cadem ia de Ciencias E xac
tas, Físicas y N aturales de E spaña define el térm ino In gen iería com o: «C o n ju n to de
conocim ientos y técnicas cuya aplicación permite la utilización racional de los m ateriales y
de los recursos naturales, m ediante invenciones, construcciones u otras realizaciones prove
chosas para el hom bre»3.
Evidentem ente, si la Ingeniería del Software es una nueva ingeniería, parece lógico que reúna
las propiedades citadas en las definiciones anteriores. Sin embargo, ni el D RAE ni la Real Aca
dem ia Española de Ciencias han incluido todavía el térm ino en sus Últimas ediciones; en con
secuencia vamos a recurrir para su definición más precisa a algunos de los autores más acreditados
que com enzaron en su m om ento a utilizar el térm ino o bien en las definiciones dadas por orga
nism os internacionales profesionales de prestigio tales com o IEEE o ACM. Así, hem os selec
cionado las siguientes definiciones de Zngenierh del Software:
Definición 1
Definición 2
Ingeniería del Software es la aplicación prá ctica del conocim iento científico en el diseño
y construcción de program as de com putadora y la docum entación asociada requerida para
desarrollar, operar (funcionar) y m antenerlos. Se conoce tam bién com o desarrollo de soft
w are o producción de software [Bohem, 19761'.
www.FreeLibros.org
3 Vocabulario Científico y Técnico, edición de 1996.
* Z e l k o v i t z , M. V., C h a w , A . C. y G a n n o n ,J . D.: Principies o f Software Engineering and Design. Prentice-Hall.Englewoods
Ciif, 1979. '
5 B o e h m , B . W .: «Software Engineering», / £ £ £ Transactions on Computers, C-25,núm. 12, diciembre, pp. 1226-1241.
XXIX
P R Ó L O G O A LA CUARTA E D IC IÓ N EN ESPAÑ O L
Definición 3
Ingeniería del Software trata del establecimiento de los principios y métodos de la ingenie
ría a fin de obtener software de modo rentable que sea fiable y trabaje en máquinas reales [Bauer,
197216.
Definición 4
Esta cuarta edición ha m ejorado en cantidad y calidad a la tercera edición, pero su actuali
dad en el año 1997, reside en el hecho de que la m ayoría de tem as tratados o que se van a tra
tar en los congresos de la ACM (listados anteriormente), están contemplados y tratados por el
autor en este libro. En cualquier form a, deseamos destacar muy expresamente algunas mejoras
concretas que vienen a llenar una importante laguna que existía en los libros de ingeniería del
www.FreeLibros.org
F. L.: «Software Engineering», Information Processing, 71, North Hoiland PubiishingCo., Amsterdam, 1972
6 B a u e r,
XXX
P R Ó L O G O A LA CUART A E D I C I Ó N EN ESPAÑO L
software en inglés y, por supuesto, en español. Así, destacamos el estudio y profundidad que
se hace de temas tan candentes y de actualidad en el m undo de la ingeniería del software tales
como:M étodosformales, reutilización de software, reingeniería.métodos de software Cliente/Ser
vidor, C ASE, análisisldiseñolpruebas y métricas orientados a objetos, etc., ju n to con un epí
logo donde m uestra el estado actual y futuro de la Ingeniería del Software. Con relación a la
tercera edición se aprecia una consolidación de tratamientos y una unificación de bloques de
conocimiento que consiguen mejorar el aprendizaje del lector.
Una de las aportaciones m ás relevantes que aporta esta nueva edición es la excelente biblio
grafía y referencias bibliográficas que se adjuntan en cada capítulo del libro, ju n to a una nove
dad que poco a poco com ienza a incorporarse en las buenas obras científicas y que aquí alcanza
un excelente nivel: direcciones electrónicas (U RLs) de sitios Web de Internet notables, donde
se pueden ampliar conocimientos, fuentes bibliográficas, consultorías, empresas, organismos
internacionales, etc., especializados en Ingeniería de Software.
En lo relativo a la segunda pregunta antes enunciada, su respuesta im plica el uso de libros
de texto y m anuales que ayuden al estudiante a com plem entar las lecciones impartidas por el
profesor, así com o preparar sus trabajos, prácticas, exám enes, etc. Un libro para ser conside
rado de texto o referencia de una determ inada asignatura requiere que su contenido contenga
todos o la m ayoría de los descriptores o tópicos considerados en el program a de la asigna
tura. Veamos por qué esta obra es idónea com o libro de texto para asignaturas del cum'culum
universitario de Ingeniería de/l Software.
www.FreeLibros.org
9 http:/wwwacm.org ; http:/xavier.xu.edu:8000/—lewan/new cum'culum.html
XXXI
P R Ó L O G O A LA CU ARTA E D I C I Ó N EN ES PAÑ OL
1. Cursos introductorios de Ingeniería del Software. Estudiantes de prim er ciclo (tres años)
y segundo ciclo (cinco años), o en carreras de cuatro años (como suele ser el caso de las
universidades hispanoam ericanas y alguna española), sin experiencia previa en Ingenie
ría del Software, pero con formación de dos o tres cursos universitarios (cuatro o cinco
semestres) al menos.
2. Cursos introductorios y de nivel m edio sobre tem as específicos de Ingeniería del Soft
ware tales com o análisis de requisitos y especificaciones, gestión de proyectos de soft
ware, métodos convencionales de Ingeniería del Software, etc.
3. Cursos avanzados en tem as de Ingeniería del Software tales com o: análisis y diseño orien
tados a objetos, métricas, ingeniería inversa, Cliente/Servidor, Reutilización de software,
etcétera.
Este libro explica todos los tem as incluidos en la asignatura o m ateria troncal Ingeniería del
Softw are por el Consejo de Universidades de España, así com o las unidades SE2 a SE5 (la uni
dad SE1 se refiere a conceptos de tipo general que suelen incluirse en otras asignaturas bási
cas) del currículum de la ACM/EEEE de 1991. Por nuestro conocimiento personal (conferencias,
cursillos, estancias...) de m uchas universidades hispanoam ericanas, nos consta que los planes
de estudio de estas universidades incluyen tam bién asignaturas de tipo obligatorio de Ingenie
ría del Software que siguen prácticam ente las recom endaciones de ACM /IEEE y son muy sim i
lares a los program as que se siguen tam bién en España.
APÉNDICE
La obra actual incluye gran cantidad de siglas y acrónimos en inglés, la m ayoría de las cuales,
exceptuándolas ya acreditadas en inglés cóm o BPR..., se han traducido al español. Por su espe
cial im portanciay la gran cantidad de ellas incluidas en el libro, el equipo de traducción decidi
mos recopilar todas las siglas en inglés y sus traducciones al español; a continuación se ha construido
dos tablas ordenadas alfabéticamente en inglés y en español, con el objetivo principal de que el
lector pueda localizar fácilmente cualquiera de las siglas que aparecen en el texto, y en su caso,
la traducción al español. Estas tablas se presentaron a la editora de la obra que tras ver el servicio
que proporcionaba al lector, aceptó incluirlas como Apéndice. De este modo, el lector podrá com
probar en cualquier m om ento entradas de siglas tanto en español como en inglés.
EPÍLOGO
La traducción de esta obra ha sido un esfuerzo com ún que hem os realizado profesores de dife
www.FreeLibros.org
rentes universidades españolas e hispanoam ericanas — profesores de Ingeniería del Software
que hem os utilizado, en la m ayoría de los casos, las ediciones anteriores de esta obra como libro
de referencia en nuestras clases y continuaremos utilizándolo. Por esta circunstancia, hemos
XXXII
P R Ó L O G O A LA CU ART A ED I C I Ó N EN ES PAÑ OL
podido apreciar que esta cuarta edición ha m ejorado de modo muy notable a las ediciones ante
riores y tenem os el convencim iento de que los principios y conceptos considerados en ella,
seguirán teniendo una influencia considerable en num erosos estudiantes de ingeniería, licen
ciatura inform ática o sistemas com putacionales de habla española, com o nos consta que siguen
influyendo en el m undo de habla inglesa. Estamos seguros de que serán m uchos los estudian
tes que seguirán formándose en Ingeniería del Software con este libro com o referencia funda
mental.
Esta cuarta edición llena num erosas lagunas en la literatura de habla española, ya que actua
liza los contenidos tradicionales de la Ingeniería del Software y los extiende a los tem as avan
zados m odernos que ya hem os considerado. El excelente trabajo de Roger S. Pressman permitirá
seguir formando num erosos y buenos profesionales de Ingeniería del Softw are para que esta
industria pueda seguir desarrollándose.
www.FreeLibros.org XXXIII
P R Ó LO G O A LA Q U IN T A EDICIÓN EN E SP A Ñ O L
E L N UEV O C O N T E N ID O
Una de las grandes y atractivas novedades de esta quinta edición es su nuevo form ato y estilo.
El SEPA5/2, como se le conoce en la versión en inglés, ha m ejorado el libro y lo ha hecho más
legible y atractivo al lector. M ediante iconos y una lista norm alizada de seis cuestiones clave,
Pressm an va guiando al lector sobre los tem as mas im portantes de cada capítulo a la vez que
su lectura le introduce paulatina e inteligentem ente en las ideas y conceptos más importantes.
Esta quinta edición contiene todos los tem as im portantes de la cuarta edición e introduce una
gran cantidad de tem as relativos a las nuevas tendencias, herram ientas y m etodologías que plan
tea la ingeniería de software actual y futura, así como la naciente nueva ingeniería Web. Un
estudio detenido del contenido nos conduce a los cambios más sobresalientes realizados en esta
quinta edición, que son, entre otros, los siguientes:
• Cinco nuevos capítulos (Capítulo 14, Diseño arquitectónico; Capítulo 15, Diseño de la
interfaz de usuario, proporcionando reglas de diseño, procesos de m odelado de interfaces,
diseño de tareas y métodos de evaluación; Capítulo 16, Diseño a nivel de componentes;
Capítulo 27, exam ina los procesos y la tecnología de la ingeniería de software basada en
componentes, y, Capítulo 29, que presenta los nuevos conceptos de Ingeniería Web (proce
sos WebE, análisis y formulación de aplicaciones Web, es decir arquitectura, navegación y
diseño de interfaces, pruebas y aplicacionesW eb y gestión de proyectos de ingeniería Web).
• Gran cantidad de actualizaciones y revisiones de los 32 capítulos de su contenido total.
Los cambios clave son numerosos, y los m ás sobresalientes son:
www.FreeLibros.org
— El lenguaje unificado de modelado, UM L (Unified M odeling Language).
— Nuevas regias y teoría de calidad de software que siguen la norm ativa ISO 9000.
XXXIV
P R Ó L O G O A LA QUINTA E D I C I Ó N EN ES PAÑ OL
Si la edición en papel que tiene el lector en sus manos ya es de por sí excelente, el sitio Web
del libro no le queda a la zaga (www.pressman5.com). Este sitio es una de las mejores herra
m ientas de las que pueden disponer estudiantes, profesores y m aestros, y profesionales del
m undo del software. Destaquem os algunas.
Recursos de estudiantes
• Guía de estudios.
• Autotest.
• Recursos basados en la Web.
• Estudio de casos.
• Vídeos.
• Contenidos suplementarios.
• Foros para intercam bios de mensajes entre lectores.
Recursos profesionales
U na de las características m ás sobresalientes de esta obra es que recoge con gran profusión la
ingente cantidad de siglas que hoy día se utilizan en la industria del softwarejunto a otras muchas
más acuñadas por el propio autor.
El equipo de profesores que ha traducido y adaptado la versión en inglés de com ún acuerdo
con la editora acordó realizar un apéndice que incluyera todas las siglas incluidas en el libro y
las traducciones correspondientes en español, y viceversa. Este apéndice busca, al igual que ya
se hiciera en la segunda edición en español, facilitar al lector la lectura y seguimiento del m odo
más fácil posible y que le perm ita hacer la correspondencia entre ambos idiomas cuado lo nece
site. Por ello, este apéndice contiene un diccionario inglés-español y otro español-inglés de
siglas. El m étodo que se ha seguido durante la traducción ha sido traducir prácticam ente todas
las siglas, y sólo se han realizado algunas excepciones, com o SQ A (Software Quality Assure-
ment) por su uso frecuente en la jerg a informática, aunque en este caso hem os utilizado ambos
www.FreeLibros.org
térm inos (en inglés, SQA y en español, GCS, Gestión de Calidad del Software). En este caso,
estas siglas en español coinciden con Gestión de Configuración del Software (G CS), por lo que
a veces estas siglas se han traducido por GCVS (Gestión de Configuración de Versiones de Soft
XXXV
P R Ó L O G O A LA QUIN TA E D I C I Ó N EN ESPAÑ OL
ware) para evitar duplicidades. Ésta es una de las razones fundam entales por la que hem os
incluido el glosario de siglas.
EL EQUIPO TRADUCTOR
EL FUTURO ANUNCIADO
Esta quinta edición ha sido actualizada sustancialmente con nuevos m ateriales que reflejan el
estado del arte de la ingeniería del software. El material obsoleto se ha eliminado de esta edi
ción para crear un texto fácil de leer y entender, y totalmente actualizado. Sin embargo, y con
ser importante todo su vasto y excelente contenido, queremos destacar que esta nueva edición
nos brinda y abre el camino al futuro que señala la m oderna ingeniería de software basada en
objetos y componentes, así com o a la ingeniería Web, conservando el rigor y la m adurez de las
teorías ya clásicas de la ingeniería del software.
Sin lugar a dudas, Pressm an ha conseguido una excelente obra, y en una prueba clara de pro-
fesionalidad y excelencia ha logrado superar sus cuatro ediciones anteriores ya de por sí exce
lentes.
www.FreeLibros.org XXXVI
U T ILIZAC IÓ N DEL LIBRO
A quinta edición de Ingeniería del Software: Un Enfoque Práctico se ha vuelto a diseñar para aum entar la
L experiencia del lector y para proporcionar enlaces integrados al sitio Web, http://w w w .p ressm an 5 .co m .
Dentro de este sitio los lectores encontrarán inform ación com plem entaria útil y rica, y una gran cantidad
de recursos para los instructores que hayan optado por este libro de texto en clase.
A lo largo de todo el libro se van encontrando iconos que deberán interpretarse de la siguiente manera:
Un tema seleccionado.
www.FreeLibros.org
E l ico n o d e cita p re se n ta c ita s W eb SEPA.
interesantes que tienen gran rele
vancia para los tem as que se estén
Documento
tratando.
XXXVII
www.FreeLibros.org
PARTE
EL P R O D U C T O
Y EL P R O C E S O
Una vez contestadas todas estas preguntas, estará m ás prepar ado para com
prender los aspectos técnicosy de gestión de la disciplina de ingeniería a la que
se dedica el resto del libro.
www.FreeLibros.org 1
www.FreeLibros.org
CAPITULO
EL PRODUCTO
1
AS alarmas com enzaron m ás de una década antes del acontecimiento. Con m enos de
L dos años a la fecha señalada, los m edios de com unicación recogieron la historia. Los
oficiales del gobierno expresaron su preocupación, los directores de la industria y de los
negocios com prom etieron grandes cantidades de dinero, y por Ultimo, las advertencias horri
bles de catástrofe llegaron a la conciencia del público. El software, al igual que el ahora fam oso
error Y2K, podría fallar, y com o resultado, detener el m undo com o nosotros lo conocimos.
Com o vim os durante los últim os m eses del año 1999, sin querer, no puedo dejar de p en
sar en el párrafo profético contenido en la prim era página de la cuarta edición de este libro.
Decía:
E l softw are de com p u tad o ra se ha c o nvertido en el alm a m ater. E s la m áquina que conduce a la tom a
de decisio n es com erciales. Sirve de base para la in v estig a ció n científica m o d ern a y de reso lu ció n de p ro
b lem as de ingeniería. E s el fa cto r clave que d ifere n cia lo s p ro d u cto s y servicios m odernos. E stá inm erso en
sistem as de todo tipo: de transportes, m édicos, d e telecom unicaciones, m ilitares, procesos industriales, entre
tenim ientos, productos de oficin a..., la lista es cási in term inable. El softw are es casi inelu d ib le e n un m u n
do m oderno. A m edida que nos ad en trem o s en el siglo xx i, será el que n o s conduzca a nuevos avances en
to d o , d esde la e d u ca ció n elem ental a la in g en iería genética.
VISTAZO RÁPIDO
¿Qué es? El softw are d e c o m p u tad o ra e s ¿ P a r q u é e s im p o r ta n te ? P o rq u e ¿C uál e s e l prc ducto obtenido?D es-
el producto q u e d is e ñ a n y c onstruyen a f e c t a m uy d e c e r c a a c u a l q u i e r d e el p unto d e v ista d e u n ingeniero d e
los in o en ie ro s d e l softw are. E sto a b a r a s p e c to d e n u e s tr a vid a y e s t á m uy softw are, e l p ro ducto o b te n id o s o n los
c a p ro g ra m a s q u e se e je c u ta n d e n tro e x te n d id o e n n u e s tr o c o m e rc io , c u í- p ro g ra m a s , d o c u m e n to s y lo s d a to s
d e u n a c o m p u ta d o ra d e c u a lq u ie r tu r a y e n n u e s t r a s a c tiv id a d e s c o ti q u e con fig u ran e l so ftw a re d e co m p u
ta m a ñ o y a rq u ite c tu ra , d o c u m e n to s d ia n a s . tad o ra . P ero d e sd e el p u n to d e v is ta d e
qu e com prenden form ularios v irtu a les ¿ C u á le s s o n lo s p a s o s? C o n s tru ir los u su a rio s el producto o b ten id o e s le
e im p re so s y d a to s q u e c o m b in a n so ftw a re d e co m p u tad o ra com o c o n s in fo rm a c ió n r e s u lta n te q u e h a c e de
n ú m ero s y te x to y ta m b ié n in clu y e n truim os c u a lq u ie r otro prod u c to s a tis a lg ú n m o d o e l m u n d o m ejo r a los
re p re s e n ta c io n e s d e info rm ació n d e fa cto rio , a p lic a n d o u n p ro c e so q u e u su a rio s.
a u d io , vídeo e im ág en es. conduce a u n resultado d e a lta c alid ad ¿Cómo p u e d o e s ta r se g u r o d e q u e
¿Quién l o h a c e ? Los in g e n ie ro s d e soft q u e s a tis fa c e la s n e c e s id a d e s d e la lo h e h e c h o e®rr««t*n»©*ii**? Lee
w a re lo c o n stru y e n , y v irtu a lm e n te g e n te q u e u s a r á el producto. D e b es el re sto d e e s te libro, se le c c io n a a q u e
c u a lq u ie r p e rso n a e n el m undo indus- a p lic a r u n e n fo q u e d e in g e n ie ría d e lla s id e a s q u e so n a p lic a b le s a l so ft
tr ia liia d o lo utiliza bien d ire c ta o in d i software. w a re q u e c o n stru y e s y a p líc a la s a tu
rectam ente. trabajo.
Cinco años después de que la cuarta edición de este libro fue escrita, el papel del software
com o «alm a mater» ha llegado a ser m ás obvio.Un director de software de Internet ha produ
cido su propia economía de 500 billones de Euros. En la euforia creada por la prom esa de un
paradigm a económ ico nuevo, los inversores de Wall Street dieron a las pequeñas em presas
«punto-com» estim aciones en billones de dólares antes de que éstas com enzasen a producir un
dólar en ventas. Han surgido nuevas industrias dirigidas por software y las antiguas que no se
han adaptado a esta nueva tendencia están ahora amenazadas de extinción. El gobierno de Esta
dos Unidos ha m antenido un contencioso frente a la m ayor com pañía de la industria del soft
ware, com o lo m antuvo hace poco tiem po cuando se m ovilizó para detener las actividades
m onopolísticas en las industrias del acero y del aceite.
El im pacto del software en nuestra sociedad y en la cultura continúa siendo profundo. Al
m ism o tiem po que crece su im portancia, la com unidad del software trata continuam ente de
desarrollar tecnologías que hagan m ás sencillo, rápido y m enos costosa la construcción de pro
gramas de com putadora de alta calidad.
www.FreeLibros.org
Este libro presenta un m arco de trabajo que puede ser usado por aquellos que construyen
software informático — aquellos que lo deben hacer bien— . La tecnología que com prende un
proceso, un juego de métodos y un conjunto de herram ientas se llam a ingeniería d e l software.
3
I N GE NIE RÍA DEL S O F TW A RE . UN EN F O Q U E P R A C T I C O
www.FreeLibros.org
bió un «cambio de poder» en el que las viejas estructu nes que se preguntaba el program ador solitario son las
ras de poder (gubernam entales,educativas, industriales, mismas cuestiones que nos preguntam os cuando cons
económicas y m ilitares) se desintegrarían a m edida que truimos sistemas modernos basados en computadoras:
4
C A PIT U L O 1 EL P R O D U C T O Y EL P R O C E S O
www.FreeLibros.org
(véase el C apítulo 7 ). A m bas actividades requieren
T ie m p o
la construcción de un «producto» pero los enfoques
son diferentes. F IG U R A 1.1. Curva de fallos del hardware.
5
IN GE NI E RÍ A DEL S O F TW A RE . UN E N F O Q U E P R Á C T I C O
Esto que parece una contradicción, puede com pren A medida que la disciplina del software evoluciona, se
derse mejor considerando «la curva actual» m ostrada en crea un grupo de com ponentesde diseño estándar. Torni
la Figura 1.2. Durante su vida, el software sufre cambios llos estándar y circuitos integradospreparados para la ven
(mantenimiento). Conform e se hacen los cam bios, es ta son solamente los dos mil coinponentes estándar que
bastante probable que se introduzcan nuevos defectos, utilizan ingenieros m ecánicos y eléctricos cuando dise
haciendo que la curva de fallos tenga picos com o se ve ñan nuevos sistemas. Los componentes reutilizables se
en la Figura 1.2. Antes de que la curva pueda volver al han creado para que el ingeniero pueda concentrarse en
estado estacionario original, se solicita otro cam bio, elementos verdaderamente innovadores de un diseño, por
haciendo que de nuevo se cree otro pico. Lentamente, el ejemplo, las partes del diseño que representan algo nue
nivel m ínim o de fallos com ienza a crecer — el software vo. En el m undo del hardware, la reutilización de com
se va deteriorando debido a los cambios— . ponentes es una parte natural del proceso de ingeniería.
Otro aspecto de ese deterioro ilustra la diferencia entre En el mundo del software es algo que sólo ha com enza
el hardware y el software. Cuando un com ponente de do a lograrse en una escala amplia.
hardware se estropea se sustituyepor una pieza de repues El com ponente de softw are d eb ería diseñarse e
to. No hay piezas de repuesto para el software. Cada fallo im plem entarse para que pueda volver a ser reutiliza-
en el software indica un error en el diseño o en el proce do en m uchos program as diferentes. En los años 60,
so mediante el que se tradujo el diseño a código m áqui se construyeron bibliotecas de subrutinas científicas
na ejecutable. Por tanto, el mantenim iento del software reutilizables en una am plia serie de aplicaciones cien
tiene una com plejidad considerablemente m ayor que la tíficas y de ingeniería. Esas bibliotecas de subrutinas
del m antenim iento del hardware. reutilizaban de form a efectiva algoritm os bien d efi
nidos, pero tenían un dom inio de aplicación lim ita
3. Aunque la industria tiende a ensamblar com ponen do. Hoy en día, hem os ex tendido nuestra visión de
tes, la m ayoría del software se construye a medida. reutilización para abarcar no sólo los algorítm os, sino
C onsiderem os la form a en la que se diseña y se cons tam bién estructuras de datos. Los com ponentes re u
truye el hardw are de control para un producto b asa tilizables m odernos encapsulan tanto datos com o pro
do en com putadora. El ingeniero de diseño construye ceso s que se ap lica n a los d ato s, p e rm itie n d o al
un sen cillo esq u em a de la c irc u ite ría dig ital, hace ingeniero del softw are crear nuevas ap licacio n es a
algún análisis fundam ental para asegurar que se co n p a rtir de las p a rte s re u tilizab les. P or ejem p lo , las
sigue la función adecuada y va al arm ario donde se interfaces gráficas de usuario de hoy en día se co n s
encuentran los catálogos de com ponentes digitales. truyen frecuentem ente a partir de com ponentes re u
Después de seleccionar cada com ponente, puede soli tiliza b les que p erm iten la creació n de ventan as
citarse la compra. g rá fic a s, de m enús d e sp le g la b le s y de una am p lia
variedad de m ecanism os de interacción.
Incremento
C VE
La m a y a n del software sigue a c n s tq é rb s s a rrecfcfe.
1.2.2. A p lic a c io n e s d e l s o f tw a r e
El software puede aplicarse en cualquier situación en la
que se haya definido previam ente un conjunto especí
fico de pasos procedim entales (es decir, un algoritmo)
(excepciones notables a esta regla son el software de
los sistemas expertos y de redes neuronales). El conte
nido y el determ inism o de la inform ación son factores
Tiem po importantes a considerar para determ inar la naturaleza
de una aplicación de software. El contenido se refiere
F IG U R A 1 .2 . Curvas de fallos real e idealizada del software al significado y a la form a de la inform ación de entra
da y salida. Por ejem plo, muchas aplicaciones banca-
rias usan unos datos de entrada muy estructurados (una
base de datos) y producen «informes» con determ ina
dos formatos. El software que controla una m áquina
autom ática (por ejem plo: un control numérico) acepta
www.FreeLibros.org
los mébcfcsde rg e n e tb d e software se esfuerzan elementos de datos discretos con una estructura lim ita
para reducirla rra c p L d d e los paos y la Inclinación da y produce órdenes concretas para la máquina en rápi
déla curva (Fig. 1.2). da sucesión.
6
CAPÍTULO 1 EL P R O D U C T O Y EL P R O C E S O
www.FreeLibros.org
aplicaciones financieras, de negocios y personales y
tiempo real (típicamente en el rango de un milisegundo redes o acceso a bases de datos extem as son algunas de
a un segundo). los cientos de aplicaciones.
7
IN GE NI E RÍ A DEL S O F TW A RE . UN EN F O Q U E P R Á C T I C O
S o ftw are b asad o en W e b . Las páginas Web busca Software de inteligencia artificial. El software de inte
das por un explorador son software que incorpora ins ligencia artificial (IA) hace uso de algoritmos no numéri
trucciones ejecutables (por ejemplo, CGI, HTML, Perl, cos para resolver problemas complejos para los que no son
o Java), y datos (por ejem plo, hipertexto y una varie adecuados el cálculo o el análisis directo. Los sistemas exper
dad de fonnatos de audio y visuales). En esencia, la red tos, también llamados sistemas basados en el conocimiento,
viene a ser una gran com putadora que proporciona un reconocimiento de patrones (imágenes y voz), redes neu-
recurso software casi ilimitado que puede ser accedido ronales artificiales, prueba de teoremas, y los juegos son
por cualquiera con un m odem . representativos de las aplicaciones de esta categoría.
M uchos observadores de la industria (incluyendo este computadoras, no ha habido ningún «puntocrucial», nin
autor) han caracterizado los problem as asociados con el gún «momento decisivo», solamente un lento cambio evo
desarrollo del software como una «crisis». M ás de unos lutivo, puntualizado por cambios tecnológicos explosivos
cuantos libros (por ejem plo: [GLA97], [F L 0 9 7 ], en las disciplinas relacionadas con el software.
[YOU98a]) han recogido el im pacto de algunos de los C ualquiera que busque la palabra crisis en el d ic
fallos mas importantes que ocurrieron durante la déca cionario encontrará otra definición: «el punto decisivo
da pasada. N o obstante, los mayores éxitos conseguidos en el curso de una enfermedad, cuando se ve m ás claro
por la industria del software han llevado a preguntarse si el paciente vivirá o m orirá». Esta definición puede
si el térm ino (crisis del software) es aún apropiado. darnos una pista sobre la verdadera naturaleza de los
Robert Glass, autor de varios libros sobre fallos del soft problem as que han acosado el desarrollo del software.
ware, representa a aquellos que han sufrido un cambio Lo que realm ente tenem os es una aflicción crónica'.
de pensamiento. Expone [GLA98]: «Puedo ver en mis La palabra aflicción se define como «algo que causa pena
ensayos históricos de fallos y en mis informes de excep o desastre». Pero la clave de nuestro argumento es la defi
ción, fallos importantes en m edio de m uchos éxitos, una nición del adjetivo crónica: «muy duradero o que reapa
copa que está [ahora] prácticam ente llena.» rece con frecuencia continuando indefinidamente». Es
bastante más preciso describir los problem as que hemos
Q p tía: estado aguantando en el negocio del software como una
aflicción crónica, en vez de como una crisis.
-llHJBysifa de los expertos están de acuerdo Sin tener en cuenta com o lo llamemos, el conjunto
'« R ip io manera más probable para que e! mundo de problem as encontrados en el desarrollo del software
se destruya es por occidente. Ahí es donde nosotros de com putadoras no se lim itan al software que «no fun
entremos; somos profesionales de lo informática, ciona correctam ente». Es m ás, el mal abarca los p ro
pwocomos occidentes. blem as asociados a cóm o desarrollar software, cóm o
-fh H L v rlri ímmsitm m antener el volum en cada vez m ayor de software exis
tente y cómo poder esperar m antenemos al corriente de
La palabra crisis se define en el diccionario Webster la dem anda creciente de software.
como «un punto decisivo en el curso de algo, momento, Vivimos con esta aflicción desde este día — de hecho,
etapa o evento decisivo o crucial». Sin embargo, en térm i la industria prospera a pesar de ello— . Y así, las cosas
nos de calidad del softwaretotal y de velocidad con la cual podrán ser m ejores si podem os encontrar y aplicar un
son desarrollados los productos y los sistemas basados en remedio.
www.FreeLibros.org
1 Esta terminología fue sugerida por el profesor Daniel Tiechrow de la
Universidad de Michigan en una conferencia impartida en Ginebra,
Suiza, Abril, 1989.
8
CAPÍTULO 1 EL P R O D U C T O Y EL P R O C E S O
M itos de gestión. Los gestores con responsabilidad M itos del Cliente. Un cliente que solicita una apli
sobre el software, como los gestores en la m ayoría de cación de software puede ser una persona del despacho
las disciplinas, están norm alm ente bajo la presión de de al lado, un grupo técnico de la sala de abajo, el depar
cumplir los presupuestos,hacer que no se retrase el pro tam ento de ventas o una com pañía exterior que solicita
yecto y m ejorar la calidad. Igual que se agarra al vacío un software bajo contrato. En m uchos casos, el cliente
una persona que se ahoga, un gestor de software se aga cree en los m itos que existen sobre el software, debido a
rra frecuentemente a un m ito del software, aunque tal que los gestores y desarrolladoresdel software hacen muy
creencia sólo dism inuya la presión tem poralm ente. poco para corregir la m ala información. Los mitos con
Mito. Tenemos ya un libro que está lleno de estánda ducen a que el cliente se cree una falsa expectativay, final
res y procedimientos para construir software, ¿no le pro mente, quede insatisfecho con el que desarrolla el software.
porciona ya a mi gente todo lo que necesita saber? M ito. Una declaración general de los objetivos es sufi
Realidad. Está muy bien que el libro exista, pero ciente para com enzar a escribir los program as - p o d e
js e u sa?.¿conocen los trab a jad o res su ex istencia?, mos dar los detalles m ás adelante — .
jrefleja las prácticas m odernas de desarrollo de soft Realidad. U na m ala definición inicial es la principal
ware?, ¿es com pleto?, ¿está diseñado para m ejorar el causa del trabajo baldío en software. Es esencial una des
tiem po de entrega m ientras m antiene un enfoque de cripción formal y detalladadel ámbito de la información,
calidad? En m uchos casos, la respuesta a todas estas funciones, comportamiento, rendimiento, interfaces, liga
preguntas es «no». duras del diseño y criterios de validación. Estas caracte
rísticas pueden determ inarse sólo después de una
exhaustiva com unicación entre el cliente y el analista.
QpHa:
;£n ausencia de estándares significativos,
M ito . Los requisitos del proyecto cam bian co n ti
nuamente, pero los cambios pueden acomodarse fácil
« H nuevo industria como lo del software
mente, ya que el software es flexible.
-jasao depender de los costumbres.
.JtesO* Marco
liB fla iB g B T H S a
M ito. Mi gente dispone de las herram ientas de desa I a gestión y control de cambio está trotada
rrollo de software más avanzadas, después de todo, les con detalle en el CapRub 9
compramos las com putadoras m ás m odernas.
R ealidad. Se necesita m ucho m ás que el últim o
modelo de computadora grande o de PC para hacer desa
rrollo de software de gran calidad. Las herram ientas de
ingeniería del softw are asistida por com putadora
(CASE) son más importantes que el hardware para con
seguir buena calidad y productividad, aunque la m ayo
ría de los desarrolladores del software todavía no las
utilicen eficazm ente.
Mito. Si fallamos en la planificación, podemos añadir
más programadores y adelantar el tiempo perdido (el lla
mado algunas veces «conceptode la horda Mongoliana»). D efin ició n D es arro llo D esp u és
Realidad. El desarrollo de software no es un proce de la en tre g a
so mecánico como la fabricación. En palabras de Bro- F IG U R A 1 .3 . El im pacto del cambio.
oks [BR075]: «...añadir gente a un proyecto de software
retrasado lo retrasa aún más». Al principio, esta declara Realidad. Es verdad que los requisitos del softw a
ción puede parecer un contrasentido. Sin embargo, cuan re cambian, pero el impacto del cam bio varía según el
do se añaden nuevas personas, la necesidad de aprender y m om ento en que se introduzca. La Figura 1.3 ilustra el
comunicarse con el equipo puede y hace que se reduzca la im pacto de los cambios. Si se pone cuidado al dar la
cantidad de tiempo gastado en el desarrollo productivo. definición inicial, los cambios solicitados al principio
Puede añadirse gente, pero sólo de una manera planifica pueden acomodarse fácilmente. El cliente puede revi
da y bien coordinada. sar los requisitos y recom endar las modificaciones con
relativamente poco impacto en el coste. Cuando los cam
bios se solicitan durante el diseño del software, el impac
to en el coste crece rápidamente. Ya se han acordado los
recursos a utilizar y se ha establecido un m arco de tra
www.FreeLibros.org
la red de gestión de proyectos de software bajo del diseño. Los cambios pueden producir trastor
enwww.spmn.com puede ayudarle nos que requieran recursos adicionales e im portantes
a desmitificar estos y otros mitos. modificaciones del diseño; es decir, coste adicional. Los
9
in g e n ie r ía d e l s o f t w a r e . u n e n f o q u e p r á c t ic o
cambios en la función, rendimiento, interfaces u otras M ito. Hasta que no tengo el program a «ejecutándo
características,durante la im plementación (codificación se», realm ente no tengo forma de com probar su calidad.
y prueba) pueden tener un im pacto importante sobre el Realidad. Desde el principio del proyecto se puede
coste. Cuando se solicitan al final de un proyecto, los aplicar uno de los mecanismos más efectivos para garan
cam bios pueden producir un orden de m agnitud m ás tizar la calidad del software: la revisión técnicaform al.
caro que el m ism o cambio pedido al principio. La revisión del software (descrito en el Capítulo 8 ) es
M itos de los desarrolladores. Los mitos en los que un «filtro de calidad» que se ha com probado que es más
aún creen m uchos desarrolladores se han ido fom en efectivo que la prueba, para encontrar ciertas clases de
tando durante 50 años de cultura informática. Durante defectos en el software.
los prim eros días del desarrollo del software, la pro
M ito . Lo único que se entrega al term inar el p ro
gramación se veía com o un arte. Las viejas form as y
yecto es el program a funcionando.
actitudes tardan en morir.
Realidad. Un programa que funciona es sólo una par
M ito. Una vez que escribim os el program a y hace
te de una configuración del software que incluye muchos
mos que funcione, nuestro trabajo ha terminado.
elem entos. La docum entación proporciona el fun d a
Realidad. Alguien dijo una vez: «cuanto más pronto m ento para un buen desarrollo y, lo que es m ás im por
se comience a escribir código, más se tardará en term i tante, proporciona guías para la tarea de mantenimiento
narlo». Los datos industriales [LIE80, JON91, PUT97] del software.
indican que entre el 60 y el 80 por ciento de todo el
esfuerzo dedicado a un program a se realizará después M uchos profesionales del softw are reconocen la
de que se le haya entregado al cliente por prim era vez. falacia de los m itos descritos anteriorm ente. L am en
tablem ente, las actitudes y métodos habituales fom en
tan una pobre gestió n y m alas p rácticas técn icas,
incluso cuando la realidad dicta un m étodo mejor. El
Trabaja muy duro poro entenderlo que tienes que hacer reconocim iento de las realidades del softw are es el
antes de empezar. Noserias copoz de desarrollar codo prim er paso hacia la form ulación de soluciones prác
detalle; por más que sepas, tomo el menor riesgo. ticas para su desarrollo.
E E S U M £ fl___________________________
El softw are se ha convertido en el elem ento clave de ponen una configuración que se crea com o parte del
la evolución de los sistemas y productos informáticos. proceso de la ingeniería del software. El intento de la
En los pasados 5 0 años, el software ha pasado de ser ingeniería del software es proporcionar un m arco de
una resolución de problemas especializada y una herra trabajo para construir software con m ayor calidad.
m ienta de análisis de inform ación, a ser una industria
por sí misma. Pero la tem prana cultura e historia de la
«program ación» ha creado un conjunto de problem as
que persisten todavía hoy. El software se ha converti
do en un factor que lim ita la evolución de los sistemas Cuando te pones o pensar, no encuentras tiempo p a o la
informáticos. El software se com pone de program as, disciplino de lo Ingeniería del software, y te preguntas:
datos y documentos. Cada uno de estos elementos com- «¿ Tendré tiempo para poder hacerlo?»
„ Bl EB £B ¡I ---------------------------------------
[BR075] Brooks, F., TheMvticalMan-Month, Addison-Wes- [GLA97] Glass, R. L., Software Runaways, Prentice Hall,
ley, 1975. ' 1997.
[DEJ98] De Jager, P., et al, Countdown Y2K: Business Sur- [GLA98] Glass, R. L.,«Is there Really a Software Crisis?»,
viva! Planningfor tire Year2000, Wiley, 1998. IEEE Software, vol. 15,n.e 1, Enero 1998, pp. 104-105.
[DEM95] De Marco, T., Why Does Software CostSoM uch?, [HAM93] Hammer, M., y J. Champy,A<?<??7g7?7<?<?77?7g the Cor
DorsetHouse, 1995,p. 9. poration, HarpperCollins Publisher, 1993.
[FEI83] Feigenbaum, E. A., y P. McCorduck, The Fith Gene- [JON91] Jones, C., Applied Software Measurement,McGraw-
ration, Addison-Wesley, 1983. Hill, 1991.
www.FreeLibros.org
[FL097] Flowers, S., Software Failure, Management. Fai- [KAR99] Karlson, E., y J. Kolber, ,4 Basic lntroduction lo
lure-A m aicing Stories and C autionary Tails, Wiley, Y2K: How the Year2000 Computer Crisis Affects Yon?,
1997(7). ' ' Next Era Publications, Inc., 1999.
10
CAPÍTULO 1 EL P R O D U C T O Y EL P R O C E S O
[LEV95] Levy, S., «The Luddites Are Yack»¡Newsweek, 12 de [ST089] Stoll, C., The cuckoo’s Egg, Doubleday, 1989.
Julio de 1995,p. 55. [TOF80] Toffler, A., The Third Wave, Morrow Publishers,
[LEV99] Levy, S., «The New Digital Galaxy», Newsweek, 1980.
31 de Mayo de 1999,p.57. . [TOF90] Toffler, A., Powershift, Bantam Publishers, 1990.
[LIE80] Lientz, B., y E. Swanson, Software Maintenance [YOU92] Yourdon, E., The Decline and Fall ofthe American
Management, Addison Wesley, 1980. Programmer, Yourdon Press, 1992.
[NAI82] Naisbitt, Y,M egatoends, Warner Books, 1982. [YOU96] Yourdon, E., TheRise and Resurrection ofthe Am e
[NOR98] Norman, D., The Invisible Computer,MYT Press, 1998. rican Programmer, Yourdon Press, 1996.
[OSB79] Osborne, A., Running Wild-The N ext Industrial [YOU98a] Yourdon, E., DeathMarch Projects, Prentice-Hall,
Revolution, Osbome/McGraw-Hill, 1979. 1998.
[PUT97] Putnam, L., y W. Myers, Industrial Strength Soft [YOU98b] Yourdon,E., y J. Yourdon, TimeBomb 2000.Pren-
ware, IEEE Computer Society Press, 1997. tice-Hall, 1998.
^M O B I-E M A S Y PU N TO S A C Ó H g l p H
1 .1 . El software es la característica que diferencia a muchos 1 .5 . A medida que el software se difunde más, los riesgos para
productos y sistemas informáticos. Dé ejemplos de dos o tres el público (debido a programas defectuosos) se convierten en una
productos y de, al menos, un sistema en el que el software, no preocupación cada vez más significativa. Desarrolle un escena
el hardware, sea el elemento diferenciador. rio realista del juicio final (distinto a Y2K) en donde el fallo de
computadorapodría hacer un gran daño (económico o humano).
1 .2 . En los años cincuenta y sesenta la programación de com
putadoras era un arte aprendido en un entorno básicamente 1 .6 . Lea detenidamente el grupo de noticias de Internet
experimental. ¿Cómo ha afectado esto a las prácticas de desa comp.risk y prepare un resumen de riesgos para las personas
rrollo del software hoy? con las que se hayan tratado Últimamente. Código alternati
vo: Software Engineering Notes publicado por la ACM.
1 .3 . Muchos autores han tratado el impacto de la «era de la
información».Dé varios ejemplos (positivos y negativos) que 1 .7 . Escriba un papel que resuma las ventajas recientes en
indiquen el impacto del software en nuestra sociedad. Repa una de las áreas de aplicaciones de software principales. Entre
se algunas referencias de la Sección 1.1 previas a 1990e indi las selecciones potenciales se incluyen: aplicaciones avanza
que dónde las predicciones del autor fueron correctas y dónde das basadas en Web, realidad virtual, redes neuronales artifi
no lo fueron. ciales, interfaces humanas avanzadas y agentes inteligentes.
1.4 . Seleccione una aplicación específica e indique: (a) la 1 .8 . Los mitos destacados en la Sección 1.4 se están vinien
categoría de la aplicación de software (Sección 1.2.2) en la do abajo lentamente a medida que pasan los años. Pero otros
que encaje; (b ) el contenido de los datos asociados con la apli se están haciendo un lugar. Intente añadir un mito o dos mitos
cación; (c) la información determinada de la aplicación. «nuevos» a cada categoría.
Literalmente existen miles de libros escritos sobre software do industrializado y casi todas las aplicaciones a la nueva
de computadora. La gran mayoría tratan los lenguajes de pro infraestructura de Internet.
gramación o aplicaciones de software, y sólo unos pocos tra Minasi (The Software Conspiracy: Why Software Com-
tan el software en sí. Pressman y Herron (Software Sock, panies Put Out Faulty Products, How They Can H urt You,
Dorset House, 1991) presentaron una discusión (dirigida a no and What Yon Can Do, McGraw-Hill, 2000) argumentó que
profesionales) acerca del software y del modo en que lo cons el «azote moderno» de los errores del software puede elim i
truyen los profesionales. narse y sugiere formas para hacerlo. DeMarco (Why Does
El libro, éxito de ventas, de Negroponte (BeingDigital, Software CostSoM uch?, Dorset House, 1995) ha producido
Alfred A. Knopf, Inc., 1995) proporciona una visión de las una colección de ensayos divertidos e interesantes sobre el
computadoras y de su impacto global en el siglo xxi. Los software y el proceso a través del cual se desarrolla.
libros de N orm an [NOR98] y Bergm an (Inform ation En Intemet están disponibles una gran variedad de fuen
Appliances & Beyond, Academic Pres/Morgan Kauffman, tes de información relacionadas con temas de gestión y de
2000) sugieren que el impacto extendido del PC declinará software. Se puede encontrar una lista actualizada con refe
al mismo tiempo que las aplicaciones de inform ación y rencias a sitios (páginas) web relevantes en http://www.press-
la difusión de la programación conecten a todos en el mun man5.com.
www.FreeLibros.org 11
www.FreeLibros.org
CAPITULO
2 EL PR O C ESO
H vista econom icista del softw are y de la ingeniería del softw are, com enta sobre el
proceso:
C om o el softw are, al igual que el capital, es el co n o cim ien to inco rp o rad o , y puesto que el c o nocim iento
e stá inicialm en te disperso, el desarro llo del softw are im p lícito , latente e inco m p leto e n g ran m edida, es un
proceso social de a p ren d iza je. E l p roceso es un d iálogo e n el que se reúne el co n o cim ien to y se incluye en
el softw are para co n v ertirse e n softw are. E l p roceso pro p o rcio n a una in te rac c ió n e n tre los usuarios y los
d iseñ ad o res, entre los usuarios y las h erram ien tas de d esarro llo , y e n tre los d iseñadores y las h e rra m ie n
tas de desarro llo [tecnología]. Es un p roceso in teractiv o donde la h erram ien ta de desarro llo se usa co m o
m edio de co m u n icació n , con cada ite rac ió n del d iá lo g o se o b tie n e m ayor con o cim ien to de las personas
involucradas.
VISTAZO RÁPIDO
¿Qué es? C u a n d o tra b a ja p a ra c o nstruir ¿Por q u é e s im p o rta n te? P o rq u e pro softw are, los pro d u cto s o b te n id o s son
un p ro d u c to o u n s is te m a , e s im p o r p o rcio n a e sta b ilid a d , control y o rg a n i p ro g ram as, d o c u m e n to sy d a to s que se
ta n te s e g u ir u n a s e rie d e p a s o s p r e z a c ió n a u n a a c tiv id a d q u e p u e d e , si p ro d u c e n com o c o n s e c u e n c ia d e la s
d ecibles —un m a p a d e c a rre te ra s q u e no s e con tro la, volverse caótica. a c tiv id a d e s d e i n g e n ie ría d el softw are
le a y u d e a o b ten e r e l re su lta d o opor ¿Cuáles son los p asos? A u n nivel d e ta d e fin id a s por el proceso.
tuno d e c a l i d a d - . El m a p a d e c a r r e lla d o , e l p ro c e so q u e a d o p te m o s ¿Cómo p u e d o e s ta r se g u r o d e q u e
te ra s a s e g u ir e s lla m ad o «proceso del d e p e n d e d e l so ftw a re q u e e s ta m o s lo h e h e c h o c o r r e cta m e n te ? H ay
software.. c o n stru y e n d o . Un p ro c e so p u e d e se r u n a c a n tid a d d e m ec a n ism o s d e eva-
¿Quién lo h a c e ? Los i ngenieros d e soft a p ro p ia d o p a r a c re a r so ftw a re d e un lu a c io n d e l p roceso d e l so ftw a re q u e
w a re y sus g e sto re s a d a p ta n el proce siste m a d e a v ia c ió n , m ie n tra s q u e un p e rm ite n a la s o rg a n iz a c io n e s d e te r
so a sus n e c e s id a d e s y e n to n c e s lo p roceso diferen te por com pleto p u e d e m inar la «m adurez» d e su p roceso del
sig u en . A d em ás la s p e rso n a s q u e h a n se r a d e c u a d o p a r a la c re a c ió n d e un software. Sin em bargo, la c alidad, opor
solicitado el softw are tie n e n u n p a p e l sitio web. tu n id a d y v ia b ilid a d a larg o plazo d el
a d e s e m p e ñ a r e n el p ro c e so d e l soft ¿Cuál es e l p rod ucto ob ten id o? D es producto q ue e s tá construyendo son los
w are. d e el punto d e v ista d e u n ingeniero d e m ejores ind icad o res d e l a eficiencia del
p roceso q u e e stam o s utilizando.
Pero, ¿qué es exactamente el proceso del software desde un punto de vista técnico? Dentro del con
texto de este libro, definimos un proceso de software como un marco de trabajo de las tareas que se
requieren para construir software de alta calidad. ¿Es «proceso» sinónimo de ingeniería del softwa
re? La respuesta es «sí» y «no». Un proceso de software define el enfoque que se toma cuando el soft
ware es tratado por la ingeniería. Pero la ingeniería del software también comprende las tecnologías
que tiene el proceso — métodos técnicos y herramientas automatizadas— .
Aún más importante es que la ingeniería del software la realizan personas creativas, con conoci
miento, que deberían trabajar dentro de un proceso del software definido y avanzado que es apropia
www.FreeLibros.org
do para los productos que construyen y para las demandas de su mercado. La intención de este capítulo
es proporcionar un estudio del estado actual del proceso del software y puntualizar sobre el estudio
detallado de los temas de gestión y técnicos presentados en este libro.
13
IN GE NI ER ÍA DEL SO FTW AR E. UN E N F O Q U E P R AC T I C O
, ____ • . el 0 11 . . . . t e c b . tofiu \
Aunque cientos de autores han desarrollado definicio
nes personales de la ingeniería del software, una defi Harramteaf&g
nición propuesta por Fritz B auer [NAU69] en una
conferencia de gran influencia sobre estos tem as va a
servir como base de estudio:
www.FreeLibros.org
yarse sobre un com prom iso de organización de cali Con independencia de la entidad a la que se va a apli
dad. car ingeniería, se deben cuestionar y responder las
siguientes preguntas:
14
CAPITULO 2 EL P R O C E S O
Referencia Q c
üosstolk es un periódico que proporciona consejos y B a ste argumentó que debe haber una explicación
comentarios prócticosde ingeniería del software. Estón ypfHkqdo de la naturaleza, porque Dios nc es
disponibles temas relacionados directamente en: caprichoso ni arbitrario. Esta fe no se ajusta al
www.stc.hill.af.mil
Gran parte de la complejidad que debe dominar es
A lo largo de este libro, nos vam os a ce n trar en
una sola entidad — el softw are de com putadora— .
Para construir la ingeniería del softw are adecuada
mente, se debe definir un proceso de d esarro llo de
software. En esta sección se consideran las caracte L afase de mantenimiento se centra en el cambio que
rísticas genéricas del proceso de softw are. M ás ade va asociado a la corrección de errores, a las adaptacio
lante, en este m ism o cap ítu lo , se trata rán m odelos nes requeridas a m edida que evoluciona el entorno del
específicos de procesos. software y a cambios debidos a las mejoras producidas
El trabajo que se asocia a la ingeniería del software por los requisitos cambiantes del cliente. Durante la fase
se puede dividir en tres fases genéricas, con indepen de m antenim iento se encuentran cuatro tipos de cam
dencia del área de aplicación, tam año o com plejidad del bios:
proyecto. Cada fase se encuentra con una o varias cues Corrección. Incluso llevando a cabo las mejores acti
tiones de las destacadas anteriormente. vidades de garantía de calidad, es muy probable que el
La fase de definición se centra sobre el qué. Es decir, cliente descubra los defectos en el software. El m ante
durante la definición, el que desarrolla el software inten nimiento correctivo cambia el software para corregir los
ta identificar qué inform ación ha de ser procesada, qué defectos.
función y rendim iento se desea, qué com portam iento A daptación. Con el paso del tiem po, es probable
del sistema, qué interfaces van a ser establecidas, qué que cam bie el entorno original (por ejemplo: CPU, el
restricciones de diseño existen, y qué criterios de vali sistem a operativo, las reglas de em presa, las caracte
dación se necesitan para definir un sistema correcto. Por rísticas externas de productos) para el que se desarro
tanto, han de identificarse los requisitos clave del siste lló el software. El m antenimiento adaptativo produce
ma y del software.Aunque los métodos aplicados duran m odificación en el software para acomodarlo a los cam
te la fase de definición variarán dependiendo del bios de su entorno externo.
paradigma de ingeniería del software (o combinación
M ejora. Conform e se utilice el software, el clien
de paradigmas) que se aplique, de alguna m anera ten
te/usuario puede descubrir funciones adicionales que
drán lugar tres tareas principales: ingeniería de sistemas
van a producir beneficios. El m antenimiento perfectivo
o de inform ación (Capítulo 10), planificación del pro
lleva al software m ás allá de sus requisitos funcionales
yecto del software (Capítulos 3, 5 ,6 y 7) y análisis de
originales.
los requisitos (Capítulos 11, 12 y 21).
Prevención. El software de com putadora se dete
riora debido al cambio, y por esto el mantenimiento pre
ventivo tam bién llamado reingeniería del software, se
debe conducir a perm itir que el software sirva para las
CLAVE necesidades de los usuarios finales. En esencia, el m an
www.FreeLibros.org
B software se crea aplicando tres fases distintas que se tenim iento preventivo hace cam bios en program as de
centran en la definición, desarrollo y mantenimiento. com putadora a fin de que se puedan corregir, adaptar y
m ejorar m ás fácilmente.
15
I N GEN IE RÍ A DEL S OFT W ARE . UN E N F O Q U E P R A C T I C O
www.FreeLibros.org
1 El térm ino «program as legales» es un eufem ism o para el software 2 Estos tem as se tratan con m ás detalle en capítulos posteriores.
antiguo, a m enudo diseñado y docum entado pobremente, que es crí 3 El autor se está refiriendo al SEI de la Cannegie Mellon University.
tico para el negocio y debe ser soportado durante algunos años.
16
CAPÍTULO 2 EL P R O C E S O
las prácticas de ingeniería del software de una com pa ción ha sido detallado y se hace cum plir por m edio de
ñía y establece cinco niveles de m adurez del proceso, procedimientos tales como auditorías. Este nivel es aquel
que se definen de la forma siguiente: en el que la m ayoría de los desarrolladores de softwa
Nivel 1: Inicial. El proceso del software se caracte re, pretenden conseguir con estándares com o el ISO
riza según el caso, y ocasionalmente incluso de form a 9001, y existen pocos casos de desarrolladores de soft
caótica. Se definen pocos procesos, y el éxito depende ware que superan este nivel.
del esfuerzo individual. El nivel 4 comprende el concepto de m edición y el
uso de métricas. El capítulo 4 describe este tema con más
Nivel 2: Repetible. Se establecen los procesos de
detalle. Sin em bargo,cabe destacarel conceptode métri
gestión del proyecto para hacer seguimiento del coste,
ca para com prenderla im portancia que tiene que el desa-
de la planificación y de la funcionalidad. Para repetir
rrollador del software alcance el nivel 4 o el nivel 5.
éxitos anteriores en proyectos con aplicaciones sim ila
Una m étrica es una cantidad insignificanteque puede
res se aplica la disciplina necesaria para el proceso.
extraerse de algún docum ento o código dentro de un pro
Nivel 3: Definido. El proceso del software de las yecto de software. Un ejemplo de m étrica es el número
actividades de gestión y de ingeniería se documenta, se de ramas condicionales en una sección de código de un
estandariza y se integra dentro de un proceso de soft programa. Esta m étrica es significativa en el sentido de
ware de toda una organización. Todos los proyectos uti que proporciona alguna indicación del esfuerzo necesa
lizan una versión docum entada y aprobada del proceso rio para probar el código: está directamente relacionado
de la organización para el desarrollo y mantenimiento con el núm ero de caminos de prueba dentro del código.
del software. En este nivel se incluyen todas las carac U na organización del nivel 4 m aneja num erosas
terísticas definidas para el nivel 2. métricas. Estas métricas se utilizan entonces para super
Nivel 4: G estionado. Se recopilan m edidas d eta visar y controlar un proyecto de software, por ejemplo:
lladas del proceso del software y de la calidad del pro
• Una métrica de prueba puede usarse para determ inar
ducto. M ediante la utilización de m edidas detalladas,
cuándo finalizar la prueba de un elem ento del código.
se com prenden y se controlan cuantitativam ente tan
to los productos com o el proceso del software. En este « Una m étrica de legilibilidad puede usarse para ju z
nivel se incluyen todas las características definidas gar la legilibilidad de algún docum ento en lenguaje
para el nivel 3. natural.
Nivel 5: Optimización. M ediante una retroalimen- • Una métrica de com prensión del program a puede uti
tación cuantitativa del proceso, ideasy tecnologías inno lizarse para proporcionar algún umbral num érico que
vadoras se posibilita una m ejora del proceso. En este los program adores no pueden cruzar.
nivel se incluyen todas las características definidas para
Para que estas métricas alcancen este nivel es nece
el nivel 4.
sario que todos los componentes del nivel 3 CM M , en
castellano M CM (M odelo de Capacidad de M adurez),
estén conseguidos, por ejem plo notaciones bien defini
i e f e f g n g i g Mfefe A das para actividades com o la especificación del diseño
de requisitos, por lo que estas métricas pueden ser fácil
BIIS ofrece un amplio conjunto de información
relacionadacon el proceso en www.sei.cmu.edu
m ente extraídas de m odo automático.
El nivel 5 es el nivel m ás alto a alcanzar. Hasta aho
Merece la pena destacar que cada nivel superior es ra, muy pocos desarrolladores de software han alcan
la suma de los niveles anteriores, por ejemplo, un desa- zado esta fase. Representa la analogía del software con
rrolladorde software en el nivel 3 tiene que haber alcan los m ecanism os de control de calidad que existen en
zado el estado nivel 2 para poder disponer de sus otras industrias de m ayor madurez. Por ejemplo el fabri
procesos en el nivel 3. cante de un producto industrial com o un cojinete de
El nivel 1 representa una situación sin ningún esfuer bolas (rodamiento) puede supervisar y controlar la cali
zo en la garantía de calidad y gestión del proyecto, don dad de los rodamientos producidosy puede predecir esta
de cada equipo del proyecto puede desarrollar software calidad basándose en los procesos y máquinas utiliza
de cualquier forma eligiendo los métodos, estándares y dos para desarrollar los rodamientos. Del m ism o m odo
procedim ientos a utilizar que podrán variar desde lo que el desarrollador del sofware en el nivel 5 puede pre
mejor hasta lo peor. decir resultados com o el número de errores latentes en
El nivel 2 representa el hecho de que un desarrolla- un producto basado en la m edición tom ada durante la
dor de software ha definido ciertas actividades tales ejecución de un proyecto. Además, dicho desarrollador
como el informe del esfuerzo y del tiem po empleado, y puede cuantificar el efecto que un proceso nuevo o herra
el informe de las tareas realizadas. m ienta de m anufacturación ha tenido en un proyecto
www.FreeLibros.org
El nivel 3 representa el hecho de que un desarrolla- examinando métricas para ese proyecto y com parándo
dcr de software ha definido tanto procesos técnicos como las con proyectos anteriores que no utilizaron ese pro
de gestión, por ejemplo un estándar para la program a ceso o herramienta.
17
i n g e n i e r í a del s o f t w a r e , u n e n f o q u e p r á c t i c o
www.FreeLibros.org
4 T éngase en cuenta que las ACPs son acum ulativas. Por ejem plo, el
nivel 3 de m adurez del proceso contiene todas las ACPs del nivel 2
m ás las d estacadas para el nivel 1.
18
CAPÍTULO 2 EL P R O C E S O
www.FreeLibros.org
que describe el «desarrollodel software como una exten F IG U R A 2 .3 . a) Las fases de un bucle de resolución de pro
sión desde el usuario hasta el desarrollador y la tecno blemas [RAC951. b) Fasesdentro de lasfases
logía». Conform e progresa el trabajo hacia un sistema del bucle de resolución de problem as [RAC 95].
19
IN G E N IE R ÍA DEL S O F TW A RE . UN E N F O Q U E P R Á C T I C O
m ás grande (o empresa), el trabajo com ienza estable «modelo tradicional», resulto un enfoque razonable
cuando los requisitosse han entendido correctomente.
ciendo requisitos de todos los elementos del sistema y
asignando al software algún subgrupo de estos requisi
tos. Esta visión del sistema es esencial cuando el soft P ruebas. U na vez que se ha generado el código,
ware se debe interconectar con otros elementos como comienzan las pruebas del programa. El proceso de prue
hardware, personas y bases de datos. La ingeniería y el bas se centra en los procesos lógicos internos del soft
análisis de sistem as com prende los requisitos que se w are, asegurando que todas las sentencias se han
recogen en el nivel del sistema con una pequeña parte comprobado, y en los procesos externos funcionales; es
de análisis y de diseño. La ingeniería de información decir, realizar las pruebas para la detección de errores
abarca los requisitos que se recogen en el nivel de y asegurar que la entrada definida produce resultados
em presa estratégico y en el nivel del área de negocio. reales de acuerdo con los resultados requeridos.
M antenimiento. El software indudablemente sufrirá
cambios después de ser entregado al cliente (una excep
ción posible es el software empotrado). Se producirán
' In g e n ie ría d e ' cambios porque se han encontrado errores, porque el soft
s is te m a s /in fo rm a c ió n ware debe adaptarse para acoplarse a los cambios de su
entorno externo (por ejemplo: se requiere un cambio debi
A n á lis is D is e ñ o C ó d ig o P ru e b a do a un sistem a operativo o dispositivo periférico nue
vo), o porque el cliente requiere mejoras funcionales o
de rendimiento. El soporte y m antenim iento del softwa
re vuelve a aplicar cada una de las fases precedentes a un
program a ya existente y no a uno nuevo.
F IG U R A 2 .4 . El m odelo lineal secuencial.
El m odelo lineal secuencial es el paradigma más anti
guo y más extensamente utilizado en la ingeniería del
Análisis de los requisitos del software. El proceso software. Sin embargo, la crítica del paradigm a ha pues
de reunión de requisitos se intensifica y se centra espe to en duda su eficacia [HAN95], Entre los problemas
cialmente en el software. Para com prender la naturaleza que se encuentran algunas veces en el m odelo lineal
del (los) programa(s) a construirse, el ingeniero («ana secuencial se incluyen:
lista») del software debe com prender el dom inio de
información del software (descrito en el Capítulo 11), así ¿Por qué falla algunas veces
como la función requerida, comportamiento,rendimien-
to e interconexión.
Diseño. El diseño del software es realm ente un pro
§ el modelo lineal?
ceso de m uchos pasos que se centra en cuatro atributos 1. Los proyectos reales raras veces siguen el modelo
distintos de program a: estructura de datos, arquitectu secuencial que propone el modelo. Aunque el modelo
ra de software, representaciones de interfaz y detalle lineal puede acoplar interacción, lo hace indirecta
procedim ental (algoritmo). El proceso del diseño tra mente. Como resultado, los cambios pueden causar
duce requisitos en una representación del software donde confusión cuando el equipo del proyecto comienza.
www.FreeLibros.org
5 Aunque el modelo original en cascada propuesto por W inston Royce
[ROY70] hacía provisiones para «bucles de realim entación», la gran
m ayoría de las organizaciones que aplican este m odelo de proceso
lo hacen com o si fuera estrictam ente lineal.
20
CAPÍTULO 2 EL P R O C E S O
2. A menudo es difícil que el cliente exponga explíci C ada uno de estos errores es real. Sin em bargo, el
tamente todos los requisitos. El m odelo lineal secuen- paradigm a del ciclo de vida clásico tiene un lugar defi
cial lo requiere y tiene dificultades a la hora de nido e im portante en el trabajo de la ingeniería del soft
acomodar la incertidumbre natural al com ienzo de ware. Proporciona una plantilla en la que se encuentran
muchos proyectos. métodos para análisis, diseño, codificación, pruebas y
3. El cliente debe tener paciencia. U na versión de tra m antenimiento. El ciclo de vida clásico sigue siendo el
bajo del (los) programa(s) no estará disponible hasta m odelo de proceso más extensamente utilizado por la
que el proyecto esté muy avanzado. Un grave error ingeniería del software. Pese a tener debilidades, es sig
puede ser desastroso si no se detecta hasta que se nificativamente m ejor que un enfoque hecho al azar para
revisa el programa. el desarrollo del software.
www.FreeLibros.org
tentes o aplica herram ientas (por ejem plo: generadores inmediatamente. Sin em bargo, la construcción de pro
de informes, gestores de ventanas, etc.) que permiten totipos tam bién puede ser problem ática por las siguien
generar rápidamente program as de trabajo. tes razones:
21
IN GE NI E RÍ A DEL SOF TW ARE . UN EN F O Q U E P R Á C T I C O
1. El cliente ve lo que parece ser una versión de trabajo para dem ostrar la capacidad. D espués de algún
del software, sin tener conocimiento de que el pro tiempo, el desarrollador debe familiarizarse con estas
totipo tam bién estájunto con «el chicle y el cable de selecciones, y olvidarse de las razones por las que
em balar», sin saber que con la prisa de hacer que son inadecuadas. La selección m enos ideal ahora es
funcione no se ha tenido en cuenta la calidad del soft una parte integral del sistema.
ware global o la facilidad de mantenim iento a largo
plazo. Cuando se informa de que el producto se debe
construir otra vez para que se puedan m antener los
niveles altos de calidad, el cliente no lo entiende y Resisto lopresión de ofrecer un mal prototipo en el
pide que se apliquen «unos pequeños ajustes» para producto final. Como resaltado, hcoüdod se resiente casi
siempre.
que se pueda hacer del prototipo un producto final.
De form a dem asiado frecuente la gestión de desa
rrollo del software es muy lenta. Aunque pueden surgir problem as, la construcción de
2. El desarrollador, a m enudo, hace com prom isos de prototipos puede ser un paradigm a efectivo para la inge
implementación para hacer que el prototipo funcione niería del software. La clave es definirlas reglas del ju e
rápidamente. Se puede utilizar un sistema operativo go al comienzo; es decir, el cliente y el desarrollador se
o lenguaje de programación inadecuado simplemente deben poner de acuerdo en que el prototipo se constru
porque está disponible y porque es conocido; un algo ya para servir com o un m ecanism o de definición de
ritm o eficiente se puede im plementar simplemente requisitos.
El Desarrollo Rápido de Aplicaciones (DRAés un mode Generación de aplicaciones. El DRA asume la uti
lo de proceso del desarrollo del software lineal secuencial lización de técnicas de cuarta generación (Sección 2.10).
que enfatiza un ciclo de desarrollo extremadamente cor En lugar de crear software con lenguajes de program a
to. El modelo DRA es una adaptación a «alta velocidad» ción de tercera generación, el proceso DRA trabaja para
del modelo lineal secuencial en el que se logra el desa volver a utilizar com ponentes de program as ya exis
rrollo rápido utilizando una construcción basada en com tentes (cuando es posible) o a crear componentes reuti-
ponentes. Si se comprenden bien los requisitos y se limita lizables (cuando sea necesario). En todos los casos se
el ámbito del proyecto, el proceso DRA permite al equi utilizan herram ientas para facilitar la construcción del
po de desarrollo crear un «sistema completam ente fun software.
cional» dentro de períodos cortos de tiempo (por ejemplo:
de 60 a 90 días) [MAR91], Cuando se utiliza principal
mente para aplicaciones de sistemas de información, el Equipo ne 3
Equipo ne 2
enfoque DRA comprende las siguientes fases [KER94]:
M odelado
Modelado de Gestión. El flujo de información entre Equipo ns 1 d egestión
LL
de
do como parte de la fase de m odelado de gestión se refi aplicacionei
www.FreeLibros.org
recuperar un objeto de datos. -6 0 -9 0 d ía s -
22
CAPÍTULO 2 EL P R O C E S O
P ruebas y e n tre g a. Como el proceso DRA enfati Al igual que todos los modelos de proceso, el enfo
za la reutilización, ya se han com probado m uchos de que DRA tiene inconvenientes [BUT94]:
los componentes de los programas. Esto reduce tiempo • Para proyectos grandes aunque por escalas, el DRA
de pruebas. Sin embargo, se deben probar todos los com requiere recursos hum anos suficientes com o para
ponentes nuevos y se deben ejercitar todas las interfa crear el núm ero correcto de equipos DRA .
ces a fondo. • DRA requiere clientes y desarrolladores com pro
m etidos en las rápidas actividades necesarias para
c a a m m com pletar un sistema en un m arco de tiem po abre
EDRAhoce unfuerte uso de componentes
viado. Si no hay com prom iso por ninguna de las par
tes constituyentes, los proyectos DRA fracasarán.
desarrollo de componentes, véase el Copftulo 27.
• N o todos los tipos de aplicaciones son apropiados
para D R A . S i un sistem a no se puede m odularizar
adecuadamente, la construcción de los componentes
El m odelo de proceso DRA se ilustra en la Figura
necesarios para DRA será problemático. Si. está en
2.6. Obviamente, las limitaciones de tiem po impuestas
juego el alto rendimiento, y se va a conseguir el ren
en un proyecto DRA dem andan «ám bito en escalas»
dimiento convirtiendo interfaces en componentes de
[KER94], Si una aplicación de gestión puede m odular
sistemas, el enfoque DRA puede que no funcione.
se de forma que perm ita com pletarse cada una de las
funciones principales en menos de tres meses (utilizando • DRA no es adecuado cuando los riesgos técnicos son
el enfoque descrito anteriormente), es un candidato del altos. Esto ocurre cuando una nueva aplicación hace
DRA. Cada una de las funciones pueden ser afrontadas uso de tecnologías nuevas, o cuando el softw are
pcr un equipo DRA separado y ser integradas en un solo nuevo requiere un alto grado de interoperatividad
conjunto. con program as de com putadora ya existentes.
www.FreeLibros.org
zan por la forma en que perm iten a los ingenieros del Cuando se utiliza un m odelo incremental, el prim er
software desarrollar versiones cada vez m ás completas incremento a m enudo es un producto esencial. Es decir,
del software. se afrontan requisitos básicos, pero muchas funciones
23
IN GE NI E RÍ A DEL S OFT W ARE . UN E N F O Q U E P R A C T I C O
suplem entarias(algunas conocidas, otras no) quedan sin El m odelo de proceso increm ental, com o la cons
extraer. El cliente utiliza el producto central (o sufre la trucción de prototipos (Sección 2.5) y otros enfoques
revisión detallada). Como un resultado de utilización y/o evo lu tiv o s, es iterativo por naturaleza. P ero a d ife
de evaluación, se desarrolla un plan para el incremento re n cia de la co n stru cció n de p ro to tip o s, el m odelo
siguiente. El plan afronta la m odificación del producto increm ental se cen tra en la en treg a de un producto
central a fin de cum plir m ejor las necesidades del clien operacional con cada incremento. Los prim eros incre
te y la entrega de funciones, y características adiciona m entos son versio n es «in co m p letas» del p rod u cto
les. Este proceso se repite siguiendo la entrega de cada final, pero proporcionan al usuario la funcionalidad
incremento, hasta que se elabore el producto completo. que p recisa y tam b ién una p latafo rm a para la e v a
luación.
^C O N SE JO ^. El desarrollo increm ental es particularm ente útil
cuando la dotación de personal no está disponible para
Cuando tenga una fecha de entrega imposible
una im plementación com pleta en la fecha límite que se
de cambar, el modela incrementales un buen
haya establecido para el proyecto. Los prim eros incre
paradigma a considerar.
m entos se pueden implementar con m enos personas.
Ingeniería de
increm ento 1
Sistem as/inform ación \
Entrega de¡
Análisis Diseño -j Código Prueba
1.er incremento
Entrega del
4.° increm ento
Tiem po de calendario
F IG U R A 2 .7 . El m odelo incremental.
www.FreeLibros.org
papel o un prototipo. D urante las últim as iteraciones,
se producen versiones cada vez más completas del sis
tem a diseñado. FIG U R A 2 .8 . Un m o d elo espiral típico.
24
CAPÍTULO 2 EL P R O C E S O
El modelo en espiral se divide en un núm ero de acti m ás sofisticadas del software. Cada paso por la región
vidades de m arco de trabajo, tam bién llamadas regio de planificación produce ajustes en el plan del proyec
nes de tareas6. Generalmente, existen entre tres y seis to. El coste y la planificación se ajustan con la reali-
regiones de tareas. La Figura 2.8 representa un m odelo m entacion ante la evaluación del cliente. A dem ás, el
en espiral que contiene seis regiones de tareas: gestor del proyecto ajusta el núm ero planificado de ite
• com unicación con el cliente— las tareas requeridas raciones requeridas para com pletar el software.
para establecer com unicación entre el desarrollador
y el cliente.
• p lan ificación— las tareas requeridas para definir
recursos, el tiem po y otra inform ación relacionadas
con el proyecto.
• análisis de riesgos— las tareas requeridas para eva Modelo de proceso adaptable.
luar riesgos técnicos y de gestión.
• ingeniería— l as tareas requeridas para construir una A diferencia del m odelo de proceso clásico que ter
o más representaciones de la aplicación. m ina cuando se entrega el software, el m odelo en espi
• construcción y acción— las tareas requeridas para ral puede adaptarse y aplicarse a lo largo de la vida del
construir, probar, instalar y proporcionar soporte al software de com putadora. U na visión alternativa del
usuario (por ejemplo: docum entación y práctica) m odelo en espiral puede ser considerada exam inando
el eje de pu n to de entrada en el proyecto tam bién refle
• evaluación del cliente— las tareas requeridas para
ja d o en la Figura 2.8. Cada uno de los cubos situados a
obtener la reacción del cliente según la evaluación
lo largo del eje pueden usarse para representar el pun
de las representaciones del software creadas durante
to de arranque para diferentes tipos de proyectos. Un
la etapa de ingeniería e im plem entada durante la
«proyecto de desarrollo de conceptos» com ienza en el
etapa de instalación.
centro de la espiral y continuará (aparecen múltiples ite
raciones a lo largo de la espiral que limita la región som
breada central) hasta que se completa el desarrollo del
concepto. Si el concepto se va a desarrollar dentro de
Las actividades del marco de trabajo se aplican un producto real, el proceso continúa a través del cubo
a cualquier proyecto de software que realice, siguiente (punto de entrada del proyecto de desarrollo
sin tener en cuenta el tamaño ni la complejidad. del producto nuevo) y se inicia un «nuevo proyecto de
desarrollo” . El producto nuevo evolucionará a través de
Cada una de las regiones están compuestas por un con iteraciones alrededor de la espiral siguiendo el camino
junto de tareas del trabajo, llamado conjunto de tareas, que limita la región algo más brillante que el centro.En
que se adaptan a las características del proyecto que va esencia, la espiral, cuando se caracteriza de esta forma,
a emprenderse. Para proyectos pequeños, el núm ero de permanece operativa hasta que el software se retira. Hay
tareas de trabajo y su formalidad es bajo. Para proyectos veces en que el proceso está inactivo, pero siempre que
mayores y más críticos cada región de tareas contiene se inicie un cambio, el proceso arranca en el punto de
tareas de trabajo que se definen para lograr un nivel más entrada adecuado (por ejemplo: m ejora del producto).
alto de formalidad. Engodos los casos, se aplican las acti El m odelo en espiral es un enfoque realista del desa
vidades de protección (por ejemplo: gestión de configu rrollo de sistemas y de software a gran escala. Como el
ración del software y garantía de calidad del software) software evoluciona, a m edida que progresa el proceso
mencionadas en la Sección 2.2. el desarrollador y el cliente com prenden y reaccionan
m ejor ante riesgos en cada uno de los niveles evoluti
¿Qué es un conjunto de
§ tareas?
www.FreeLibros.org
6 El modelo en espiral de esta sección e s una variante sobre el modelo
propuesto por Boehm. Para m ás información sobre el modelo en espi
ral original, consulte [BOE88]. Un tratado m ás reciente del modelo
en espiral puede encontrarse en [BOE981.
25
in g en ier ía del s o f t w a r e . un e n f o q u e p r a c t ic o
ta de los riesgos técnicos en todas las etapas del pro El m odelo en espiral W INW IN de Boehm [BOE98]
yecto, y, si se aplica adecuadamente, debe reducir los define un conjuntode actividades de negociación al prin
riesgos antes de que se conviertan en problemáticos. cipio de cada paso alrededor de la espiral. M ás que una
simple actividad de com unicación con el cliente, se defi
c n a a m E sai nen las siguientes actividades:
Modelos evolutivos como el modelo s i espira, son 1. Identificación del sistema o subsistemas clave de los
apropiados, particularmente, paro d desarrollo de «directivos»8.
sistemas orientados o objetos. Para más detalles, véase
la Parte cuarta.
2. Determ inación de las «condiciones de victoria» de
los directivos.
3. Negociación de las condiciones de «victoria» de los
Pero al igual que otros paradigm as, el m odelo en
directivos para reunirlas en un conjunto de condi
espiral no es la panacea. Puede resultar difícil conven
ciones «victoria-victoria» para todos los afectados
cer a grandes clientes (particularmente en situaciones
(incluyendo el equipo del proyecto de software).
bajo contrato) de que el enfoque evolutivo es controla
ble. Requiere una considerable habilidad para la eva
luación del riesgo, y cuenta con esta habilidad para el
éxito. Si un riesgo importante no es descubierto y ges
tionado, indudablem ente surgirán problem as. F inal
m ente, el m odelo no se ha utilizado tanto com o los
paradigm as lineales secuenciales o de construcción de
Habilidadesde negociación
prototipos. Todavía tendrán que pasar muchos años antes
de que se determine con absoluta certeza la eficacia de
Conseguidos completam ente estos pasos iniciales se
este nuevo e importante paradigma.
logra un resultado «victoria-victoria», que será el crite
rio clave para continuar con la definición del sistema y
2.7.3. El m o d e lo e s p ir a l W IN W IN del software. El m odelo en espiral W INW IN se ilustra
(V ictoria& V ictoria) en la Figura 2.9.
El m odelo en espiral tratado en la Seccion 2.7.2 sugie
re una actividad del m arco de trabajo que aborda la 2. Identificar las
condiciones 3a. Reunir las condiciones
com unicación con el cliente. El objetivo de esta activi de victoria de victoria.
dad es m ostrar los requisitos del cliente. En un contex de los directivos. 3b. Establecer los objetivos,
1. Identificar e f restricciones y alternativas
to ideal, el desarrollador simplemente pregunta al cliente siguiente nivel del siguiente nivel.
lo que se necesita y el cliente proporciona detalles sufi para los
directivos. •
cientes para continuar. D esgraciadam ente, esto ra ra i 4 Evaluar las alternativas
’- 'T 'v fifcl producto y del procese
mente ocurre. En realidad el cliente y el desarrollador
J < .y resolución de riesgos.
entran en un proceso de negociación, donde el cliente 7. Revisión
puede ser preguntado para sopesar la funcionalidad,ren- y comentarios.
5. Definir el siguiente nivel
dimiento, y otros productos o características del siste 6. Validar las del producto y del proceso,
m a frente al coste y al tiempo de comercialización. definiciones incluyendo particiones.
del producto
y del proceso.
www.FreeLibros.org
7 Hay d ocenas de libros escritos sobre habilidades en la negocia 8 Un directivo e s alguien e n la o rg a n iz ac ió n que tiene un in terés
ción [p. ej.,[F IS 9 i], [DON96], [FAR97]].Es u n a de la s c o sa s m as directo, por el negocio, en el sistem a o producto a construir y puede
im portantes que un ingeniero o gestor joven (oviejo) puede a p re n ser prem iado por un resultado con éxito o criticado si el esfuerzo
der. Lea uno. falla.
26
CAPÍTULO 2 EL P R O C E S O
yecto recorre la espiral. El prim er punto de fijación, d e s del usu ario , las d e c isio n e s d e la gestión y los re su lta d o s d e
llamado o b je tiv o s d e l c ic lo de v id a (O C V ), define un las revisiones.
conjunto de objetivos para cada actividad principal El m odelo de proceso concurrente se puede re p re
de ingeniería del software. Como ejem plo, de una par sentar en form a de esquem a com o una serie de acti
te de OCV, un conjunto de objetivos asociados a la vid ad es técn icas im p o rtan tes, tareas y estad o s
definición de los requisitos del producto/sistem a del asociados a ellas. Por ejem plo, la actividad de in g e
nivel más alto. El segundo punto de fijación, llam a n iería d efin id a para el m odelo en esp ira l (S ección
do arquitectura d e l ciclo de vida (ACV), establece los 2.7.2), se lleva a cabo invocando las tareas sig u ien
objetivos que se deben conocer m ientras que se defi tes: m odelado de construcción de prototipos y/o aná
ne la arquitectura del softw are y el sistem a. C om o lisis, especificación de requisitos y diseño'.
ejemplo, de una parte de la ACV, el equipo del pro
La Figura 2.10 proporciona una representación esque
yecto de software debe dem ostrar que ha evaluado la
m ática de una actividad dentro del m odelo de proceso
funcionalidad de los com ponentes del software reuti-
concurrente. La actividad — análisis— se puede encon
lizablesy que ha considerado su im pacto en las d eci
trar en uno de los estados'" destacados anteriormente en
siones de arquitectura. L a ca p a c id a d operativa inicial
cualquier m om ento dado. De forma similar, otras acti
(COI) es el tercer punto de fijación y representa un
vidades (por ejem plo: diseño o com unicación con el
conjunto de objetivos asociados a la preparación del
cliente) se puede representar de una form a análoga.
software para la instalación/distribución, preparación
Todas las actividades existen concurrentem ente, pero
del lugar previam ente a la instalación, y la asistencia
residen en estados diferentes. Por ejemplo, al principio
precisada de todas las partes que utilizará o m anten
del proyecto la actividad de com unicación con el clien
drá el software.
te (no m ostrada en la figura) ha finalizado su primera
iteración y está en el estado de cam bios,en espera. La
2.7.4. El m o d elo d e d esa rr o llo co n cu rr en te
actividad de an á lisis (que estaba en el estado ninguno
Davis y Sitaram [DAV94] han descrito el m odelo de m ientras que se iniciaba la com unicación inicial con el
desarrollo concurrente, llam ado algunas veces inge cliente) ahora hace una transición al estado bajo desa
niería concurrente, de la form a siguiente: rrollo. Sin em bargo, si el cliente indica que se deben
L os gestores de p ro y e c to s q u e sig u e n los p a so s del e sta d o hacer cambios en requisitos, la actividad a n á lisis cam
del pro y ecto en lo q u e se re fie re a las fa s e s im p o rta n te s [del
bia del estado bajo desarrollo al estado cam bios en
ciclo de vida clásico] no tie n e n idea del e stad o d e sus p ro y e c
tos. E stos son ejem p lo s de un intento por seguir los p asos e x tre espera.
m adam ente c o m p le jo s d e a c tiv id a d e s m e d ia n te m o d e lo s El m odelo de proceso concurrente define una serie
dem asiado sim ples. T enga e n c u en ta q u e a u n q u e un p ro y e cto de aco n tecim ien to s que d isp ararán tran sicio n e s de
[grande] esté en la fase de c o d ificació n , hay p ersonal de ese p ro estado a estado para cada una de las actividades de la
yecto im plicado en actividades asociadas generalm ente a m uchas
ingeniería del software. Por ejem plo, durante las p ri
fases de desarro llo sim ultáneam ente. P o r e je m p lo , . .. E l p e rs o
nal está escrib ien d o req u isito s, d ise ñ a n d o , c o d ific a n d o , h a c ie n m eras etapas del diseño, no se contem pla una in co n
do pruebas y p robando la in teg ració n [todo al m ism o tiem po]. sisten cia del m odelo de análisis. E sto g enera la
Los m odelos de p ro ceso s de ing en iería del softw are de H um ph- corrección d el m o d elo de an á lisis de sucesos, que dis
rey y K ellner [H U M 89, K E L 89] h a n m ostrado la c o n c u rre n c ia p arará la activ id ad de a n á lis is del estad o h ech o al
que existe para activ id ad es que o cu rren d u ra n te c u a lq u ie r fase. estado cam bios en espera.
H trabajo m ás reciente d e K e lln e r [K E L 91] utiliza d iag ra m a s
de estado [una n o tac ió n que re p re se n ta los e sta d o s d e un p ro El m odelo de proceso concurrente se utiliza a m enu
ceso] para re p re se n tar la relació n c o n c u rre n te que e x iste en tre do como el paradigma de desarrollo de aplicaciones clien
actividades a sociadas a un aco n tecim ien to esp ecífico (p o r e je m te/servidor11 (Capítulo 28). Un sistema cliente/servidor
plo: un cam bio de req u isito s d u ra n te el ú ltim o d esarro llo ), pero se compone de un conjunto de componentes funciona
falla en capturar la riqueza de la con cu rren cia que existe en todas les. Cuando se aplica a cliente/servidor, el m odelo de pro
las activ id ad es d e d e sa rro llo y d e g e s tió n d el so ftw a re e n un
ceso concurrente define actividades en dos dimensiones
p ro y e cto ... L a m ayoría de lo s m odelos de pro ceso s d e d e s a rro
llo del softw are son d irigidos por el tie m p o : c u an to m ás tard e [SHE94]: una dimensión de sistemas y una dim ensión de
sea, m ás atrás se e n c o n tra rá en el p ro c e so de d e sa rro llo . [Un componentes. Los aspectos del nivel de sistemas se afron
m odelo de p roceso concurrente] está d irig id o por las n e c e s id a tan mediante tres actividades: diseño, ensamblaje y uso.
www.FreeLibros.org
consideran estos tem as con m ás detalle. tadora m ás potente) que generalm ente m antiene una base de datos
centralizada.
10 U i estado es algún m odo externam ente observable del com por
tamiento.
27
IN GE NI ER ÍA DEL S O F T W A R E . UN E N F O Q U E P R A C T I C O
iü J £ S _
Las tecnologías de objetos (4.a Parte de este libro) pro La actividad de la ingeniería com ienza con la iden
porcionan el m arco de trabajo técnico para un modelo tificación de clases candidatas. Esto se lleva a cabo exa
de proceso basado en componentes para la ingeniería minando los datos que se van a m anejar por parte de la
del software. El paradigm a orientado a objetos enfati aplicación y el algoritmo que se va a aplicar para con
za la creación de clases que encapsulan tanto los datos seguir el tratamiento 2. Los datos y los algoritmos corres
com o los algoritm os que se utilizan para m anejar los pondientes se em paquetan en una clase.
datos. Si se diseñan y se implementan adecuadamente, Las clases creadas en los proyectos de ingeniería del
las clases orientadas a objetos son reutilizables por las software anteriores, se almacenan en una biblioteca de
diferentes aplicaciones y arquitecturasde sistemas basa clases o diccionario de datos (repository) (Capítulo 31).
dos en computadora. Una vez identificadas las clases candidatas, la biblioteca
de clases se exam ina para determ inar si estas clases ya
existen. En caso de que así fuera, se extraen de la biblio
teca y se vuelven a utilizar. Si una clase candidata no resi
de en la biblioteca, se aplican los métodos orientados a
objetos (Capítulos 21-23). Se compone así la primera ite
ración de la aplicación a construirse, mediante las clases
extraídas de la biblioteca y las clases nuevas construidas
para cum plirlas necesidades Unicas de la aplicación. El
flujo del proceso vuelve a la espiral y volverá a introdu
cir por últim o la iteración ensam bladora de com ponen
tes a través de la actividad de ingeniería.
El m odelo de desarrollo basado en componentes con
F IG U R A 2 .1 1 . Desarrollo basado en componentes. duce a la reutilización del software, y la reutilización pro
porciona beneficios a los ingenieros de software. Según
El modelo de desarrollo basado en componentes (Fig. estudios de reutilización, QSM Associates, Inc. informa
2.11) incorpora muchas de las características del m ode que el ensamblaje de componentes lleva a una reducción
lo en espiral. Es evolutivopor naturaleza [NIE92], y exi del 70 por 100 de tiem po de ciclo de desarrollo, un 84
ge un enfoque iterativo para la creación del software. por 100 del coste del proyecto y un índice de producti
Sin embargo, el m odelo de desarrollo basado en com vidad del 26.2, com parado con la norm a de industria del
ponentes configura aplicaciones desde componentes pre 16.9[YOU94], Aunque estos resultados están en función
parados de software (llamados«clases» en la Fig. 2.11). de la robustez de la biblioteca de componentes, no hay
duda de que el ensamblaje de componentes proporciona
c n a a m m a g a
Idtecnoiogío resoltoda para el DBCse trata enlo Parte ventajas significativaspara los ingenieros de software.
cuarta de este libro. El p ro ce so unificado de desarrollo de software
Enel Capitulo27 se presenta unestudiomás detallado [JAC99] representa un núm ero de modelos de desarro
del proceso DBC. llo basados en componentes que han sido propuestos en
www.FreeLibros.org
12 Esta es una descripción simplificada de definición de clase. Para
un estudio m ás detallado, consulte el Capítulo 20.
28
C A PÍT U L O 2 EL P R O C E S O
la industria. Utilizando el Lenguaje de M odelado Uni to de vista del usuario). Entonces acopla la función con
ficado (UML), el proceso unificado define los com po un m arco de trabajo arquitectónico que identifica la for
nentes que se utilizarán para construir el sistem a y las m a que tom ará el software.
interfaces que conectarán los componentes. Utilizando
una combinacion del desarrollo incremental e iterativo, msmxmm
61 los Capítulos21 y 22 se trata UML con más detalle.
el proceso unificado define la función del sistema apli
cando un enfoque basado en escenarios (desde el pun
El término técnicas de cuarta generación (T4G) abarca siguientes herramientas: lenguajes no procedim entales
un amplio espectro de herram ientas de software que tie de consulta a bases de datos, generación de informes,
nen algo en común: todas facilitan al ingeniero del soft m anejo de datos, interacción y definición de pantallas,
ware la especificación de algunas características del generación de códigos, capacidades gráficas de alto nivel
software a alto nivel. Luego, la herramienta genera auto y capacidades de hoja de cálculo, y generación auto
máticamente el código fuente basándose en la especifi m atizada de HTML y lenguajes similares utilizados para
cación del técnico. Cada vez parece m ás evidente que la creación de sitios web usando herram ientas de soft
cuanto mayor sea el nivel en el que se especifique el ware avanzado. Inicialm ente, m uchas de estas herra
software, más rápido se podrá construir el programa. El m ientas estaban disponibles, pero sólo para ámbitos de
paradigma T4G para la ingeniería del software se orien aplicaciónm uy específicos, pero actualmente los entor
ta hacia la posibilidad de especificar el software usan nos T4G se han extendido a todas las categorías de apli
do formas de lenguaje especializado o notaciones caciones del software.
gráficas que describa el problem a que hay que resolver Al igual que otros paradigmas, T4G com ienza con
www.FreeLibros.org
en términos que los entienda el cliente. A ctualm ente, el paso de reunión de requisitos. Idealmente, el cliente
un entorno para el desarrollo de software que soporte describe los requisitos, que son, a continuación, tradu
el paradigma T4G puede incluir todas o algunas de las cidos directamente a un prototipo operativo. Sin embar
29
INGE NIE RÍA DEL S O F T W A R E . UN EN F O Q U E P R Á C T I C O
go, en la práctica no se puede hacer eso. El cliente pue que facilite la realización del m antenim iento de form a
de que no esté seguro de lo que necesita; puede ser am bi expeditiva.
guo en la especificaciónde hechos que le son conocidos, Al igual que todos los paradigm as del software, el
y puede que no sea capaz o no esté dispuesto a especi m odelo T4G tiene ventajas e inconvenientes.Los defen
ficar la inform ación en la forma en que puede aceptar sores aducen reducciones drásticas en el tiem po de desa
una herram ienta T4G. Por esta razón, el diálogo clien- rrollo del softw are y una m ejora significativa en la
te-desarrollador descrito por los otros paradigmas sigue productividad de la gente que construye el software.
siendo una parte esencial del enfoque T4G. Los detractores aducen que las herram ientas actuales
de T4G no son m ás fáciles de utilizar que los lenguajes
de program ación, que el código fuente producido por
tales herram ientas es «ineficiente» y que el m anteni
Incluso cuando utilice una T4G, tiene que destacar miento de grandes sistemas de software desarrollados
claramente la ingeniería del software haciendo el análisis, mediante T4G es cuestionable.
el diseño y /os pruebas. Hay algún m érito en lo que se refiere a indicaciones
de ambos lados y es posible resum ir el estado actual de
Para aplicaciones pequeñas, se puede ir directam en los enfoques de T4G:
te desde el paso de recolección de requisitos al paso de 1. El uso de T4G es un enfoque viable para muchas de
implementación, usando un lenguaje de cuarta genera las diferentes áreas de aplicación.Junto con las herra
ción no procedim ental (L4G) o un m odelo com prim i mientas de ingeniería de software asistida por com
do de red de iconos gráficos. Sin embargo, es necesario putadora (CASE) y los generadores de código, T4G
un m ayor esfuerzo para desarrollar una estrategia de ofrece una solución fiable a m uchos problem as del
diseño para el sistema, incluso si se utiliza un L4G. El software.
uso de T4G sin diseño (para grandes proyectos) causa 2. Los datos recogidos en com pañías que usan T4G
rá las mismas dificultades (poca calidad, m antenim ien
parecen indicar que el tiem po requerido para produ
to pobre, m ala aceptación por el cliente) que se cir softw are se reduce m ucho para aplicaciones
encuentran cuando se desarrolla software mediante los pequeñas y de tam año medio, y que la cantidad de
enfoques convencionales. análisis y diseño para las aplicaciones pequeñas tam
La im plementación m ediante L4G perm ite, al que bién se reduce.
desarrolla el software, centrarse en la representación de
3. Sin embargo, el uso de T4G para grandes trabajos de
los resultados deseados, que es lo que se traduce auto
desarrollo de software exige el m ismo o m ás tiempo
máticam ente en un código fuente que produce dichos
de análisis, diseño y prueba (actividades de ingenie
resultados. Obviamente, debe existir una estructura de
ría del software), para lograr un ahorro sustancial de
datos con inform ación relevante y a la que el L4G pue
tiem po que puede conseguirse mediante la elim ina
da acceder rápidamente.
ción de la codificación.
Para transform ar una im plem entación T4G en un
producto, el que lo desarrolla debe dirigir una prueba Resum iendo, las técnicas de cuarta generación ya se
com pleta, desarrollar con sentido una docum entación han convertido en una parte importante del desarrollo
y ejecutar el resto de las actividades de integración que de softw are. C uando se com binan con enfoques de
son tam bién requeridas requeridas por otros paradig ensamblaje de componentes (Sección 2.8), el paradig
m as de ingeniería del software. A dem ás, el software m a T4G se puede convertir en el enfoque dom inante
desarrollado con T4G debe ser construido de form a hacia el desarrollo del software.
Los modelos de procesos tratados en las secciones ante ción tratadas en la Sección 2.3. El m odelo, presentado
riores se deben adaptar para utilizarse por el equipo del normalmente como una red, se puede analizar para deter
proyecto del software. Para conseguirlo, se han desarro m inar el flujo de trabajo típico y para exam inar estruc
llado herramientas de tecnología de procesos para ayudar turas alternativas de procesos que pudieran llevar a un
a organizaciones de software a analizar los procesos actua tiem po o coste de desarrollo reducidos.
les, organizar tareas de trabajo, controlar y supervisar el U na vez que se ha creado un proceso aceptable, se
progreso y gestionarla calidad técnica [BAN95], pueden utilizar otras herram ientas de tecnología de pro
Las herram ientas de tecnología de procesos perm i cesos para asignar, supervisar e incluso controlar todas
www.FreeLibros.org
ten que una organización de softw are construya un las tareas de ingeniería del software definidas como par
m odelo autom atizado del m arco de trabajo com ún de te del m odelo de proceso. C ada uno de los miem bros
proceso, conjuntos de tareas y actividades de protec de un equipo de proyecto de softwarepuede utilizar tales
30
CAPÍTULO 2 EL P R O C E S O
herram ientas para desarrollar una lista de control de se puede utilizar para coordinar el uso de otras herra
tareas de trabajo a realizarse, productos de trabajo a pro mientas de ingeniería del software asistida por com pu
ducirse, y actividades de garantía de calidad a condu tadora (Capítulo 3 1) adecuadas para una tarea de trabajo
cirse. La herram ienta de tecnología de proceso tam bién en particular.
Si el proceso es débil, el producto final va a sufrir indu Toda actividad hum ana puede ser un proceso, pero ca'da uno de
dablemente. A unque una dependencia obsesiva en el nosotros obtiene el sentido de autoestim a ante esas actividades que
pro d u cen una representación o ejem plo que m ás d e una persona
proceso también es peligrosa. En un breve ensayo, Mar- puede utilizar o apreciar, u n a u otra vez, o en algún otro contexto
garet Davis [DAV95] com enta la dualidad producto y n o ten id o en cuenta. E s decir, lo s sentim ientos de satisfacción se
proceso: obtienen por volver a utilizar nuestros productos por nosotros m is
m os o por otros.
Cada diez años o cinco aproxim adam ente,la com unidad del soft
ware vuelve a definir «el problem a» cam biando el foco de los aspec Así pues, m ientras que la asim ilación ráp id a de los objetivos
tos de producto a los aspectos de proceso. P or consiguiente, se han de reutilización en el desarrollo del softw are aum enta p o ten c ial
abarcado lenguajes de program ación estructurados(producto) segui m ente la satisfacció n que lo s de sa rro llad o re s obtienen de su tra
dos por m étodos de análisis estructurados (proceso) seguidos a su bajo, esto in crem en ta la urgencia de ace p ta r la dualidad producto
vez por encapsulaciónde datos (producto) y después por el énfasis y proceso. P e n sa r en un m e c an ism o re u tiliz ab le c o m o el único
actual en el M odelo M adurez de C apacidad de D esarrollo del soft p roducto o el único p roceso, bien oscurece el contexto y la form a
ware del Instituto de ingeniería de softw are (proceso). de u tilizarlo , o bien el hecho de que c ad a u tiliza ció n elab o ra el
p roducto que a su vez se u tilizará c o m o en trad a en a lg u n a otra
Mientras que la tendencia natural de un péndulo es parar en m edio
de dos extrem os, el enfoque de la com unidad del softw are cam bia actividad de d esarro llo del softw are. E le g ir un m étodo sobre otro
reduce enorm em ente las op o rtu n id ad es de reutilización y d e aquí
constantem ente porque se aplica una fuerza nueva cuando falla el
que se pierda la oportu n id ad de a u m e n tar la satisfacción a n te el
último m ovim iento. E stos m ovim ientos son perjudicialespor sí m is
trabajo.
mos y en sí m ism os porque confunden al desarrollador del softw a
re medio cam biando radicalm ente lo que significarealizar el trabajo,
que por sí m ism o lo realiza bien. L os cam bios tam poco resuelven
«el problem a», porque están condenados al fracaso siem pre que el
producto y el proceso se traten com o si form asen una dicotom ía en
lugar de una dualidad. Cualquier actividad se vuelve creativo si el autor se
preocupa de hacerlo bien o de hacerlo mejor.
iH E S U M E N
La ingeniería del software es una disciplina que inte venientes, pero todos tienen una serie de fases gené
www.FreeLibros.org
gra procesos, m étodos y herram ientas para el d esa ricas en común. E n el resto de este libro se consideran
rrollo del software de com putadora. Se han propuesto los principios, conceptos y m étodos que perm iten lle
varios modelos de procesos para la ingeniería del soft var a cabo el proceso que se llam a ingeniería del soft
ware diferentes, cada uno exhibiendo ventajas e incon- ware.
31
I N GEN IE RÍ A DEL S O F TW A R E . UN EN F O Q U E P R Á C T I C O
[BAE98] Baetjer, H., Jr., Software as Capital, IEEE Compu llth ln tl. Conference on Software Engineering, IEEE Com
ter Society Press, 1998,p. 85. puter Society Press, pp. 331-342.
[BAN95] Bandinelli, S. et al, «Modeling and Improving an [IEE93] IEEE Standards Collection: Software Engineering,
Industrial SoftwareProcess», IEEE Trans. Software Engi- IEEE Standard 610.12-1990, IEEE, 1993.
neering, vol. 21, n.- 5, Mayo 1995,pp. 440-454. [JAC99] Jacobson, I., G. B oochy J. Rumbaugh, The Unified
[BRA94] Bradac, M., D. Perry y L. Votta, «Prototyping a Pro Software Developement. Proccess, Addison-Wesley, 1999.
cess Monitoring Experiment”, IEEE Trans. Software Engi-
[KEL89] Kellner, M., Software Process Modeling: Valué and
neering, vol. 20, n.9 10, Octubre 1994, pp. 774-784.
Experience, SEI Technical R eview -1989, SEI, Pittsburgh,
[BOE88] Boehm, B., «A Spiral Model for Software Develo- PA, 1989.
pement and Enhancement", Computer, vol. 21, n.a 5 , Mayo
[KEL91] Kellner, M., «Software Process Modeling Support
1988,pp. 61-72.
for Management Planning and Control», Proc. ls t Intl.
[BOE96] Boehm,B., «Anchoring the SoftwarePocess»,IEEE Conf, On the SoftM’are Process, IEEE Computer Society
Software, vol. 13,n.9 4, Julio 1996,pp.73-82. Press, 1991,pp. 8-28.
[BOE98] Boehm, B., «Using the WINWIN Spiral Model: A [KER94] Kerr, J., y R. HunterJ/iriúe RAD, McGraw-Hill, 1994.
Case Study», Computer, vol. 31, n.9 7, Julio 1998,pp. 33-
44. [MAR91] Martin, J., Rapid Aplication Developement., Pren-
tice-Hall, 1991.
[BR075] Brooks,F., TheMyticalMan-Month, Addison-Wes-
ley, 1975. [MDE93] McDermid, J. y P. Rook, « Software Developement
Process Models», en Software Ingineer's Reference Book,
[BUT94] Butler, J., «Rapid Aplication Developement in CRC Press, 1993,pp. 15/26-15/28.
Action»,A/í»7úg7>7g System Developement., Applied Com
puter Research, vol. 14,n.9 5,M ayo 1995,pp. 6-8. [MIL87] Mills, H.D., M. D yery R. Linger, «Clearoom Soft
ware Engineering», IEEE Software, Septiembre 1987,pp.
[DAV94] Davis, A., y P. Sitaram, «A Concurrent Process 19-25.
Model for Software Developement», Software Enginee-
ringNotes, ACN1 Press, vol. 19,n.9 2, Abril 1994,pp. 38- [NAU69] Naur, P.,y B. Randall (eds.), Software Engineering:
51. A Report. on a Conference sponsored hy the NATO Scien
ce Committee,NATO, 1969.
[DAV95] Davis, M.J., «Process and Product: Dichotomy or
Duality», Software Engineering Notes, ACM Press, vol. [NIE92] Nierstrasz, «Component-Oriented Software Deve
20, n .9 2, Abril 1995,pp. 17-18. lopement», CACM, vol. 35, n.9 9, Septiembre 1992, pp.
160-165.
[DON96] Donaldson,M.C., y M. Dona\dson,Negotiatingfor
Dummies, IDB Books Worldwide, 1996. [PAU93] Paulk, M., et al., «Capability Maturity Model for
Software», Software Engineering Inst.it.ute, Camegie
[DYE92] Dyer, M., The CleanroomApproach to Quality Soft
Mellon University, Pittsburgh, PA, 1993.
ware Developement, Wiley, 1992.
[FAR97] Farber, D.C., Common Sense Negotiation: TheArt [RAC95] Raccoon, L.B.S, «The Chaos Model and the Chaos
Life Cycle», ACM Software Engineering Notes, vol. 20,
o f Winning Gracefuüy, Bay Press, 1997.
n.9 1, Enero 1995,pp. 55-66.
[FIS91] Fisher, R., W. Ury y Bruce Patton, Getting to Yes:
Negot.iat.ing Agreement Wit.hout.Givingln, 2." ed.,Penguin [ROY70] Roy ce, W.W., «Managing the Developement of Large
USA, 1991. Software Systems: ConceptsandTechniques»,P7-oc. WES-
CON, Agosto 1970.
[GIL88] Gilb, T., Principies o f Software Engineering Mana-
gement, Addison-Wesley, 1988. [SHE94] Sheleg, W., «Concurrent Engineering: A New Para-
dign for C/S Developement», Application Developement.
[HAN95] Hanna, M., «Farewell to Waterfalls», Software Trends, vol. l,n .9 6, Junio 1994, pp. 28-33.
Magazine, Mayo 1995,pp.38-46.
[YOU94] Yourdon,E., «SoftvmreReuse», Application D eve
[HUM89] Humphrey, W., y M. Kellner, «Software Process lopement Strategies, vol. VI, n.9 12, Diciembre 1994, pp.
Modeling: Principies of Entity Process Models», Proc. 1-16.
j*RO>BEEMilB Y PU N TO S A CONSIDERAR
2.1. La Figura 2.1 sitúa las tres capas de ingeniería del soft 2.2. ¿Hay algún caso en que no se apliquen fases genéricas
www.FreeLibros.org
ware encima de la capa titulada «enfoque de calidad». Esto del proceso de ingeniería del software? Si es así, descríbalo.
implica un programa de calidad tal como Gestión de Cali 2.3. El Modelo Avanzado de Capacidad del SEI es un docu
dad Total. Investigue y desarrolle un esquema de los prin mento en evolución. Investigue y determ ine si se han aña
cipios clave de un programa de Gestión de Calidad Total. dido algunas ACP nuevas desde la publicación de este libro.
32
CAPÍTULO 2 EL P R O C E S O
2.4. El modelo del caos sugiere que un bucle de resolución de 2.8. Proponga un proyecto específicode software que sea ade
problemas se pueda aplicar en cualquier grado de resolución. cuado para el modelo incremental. Presente un escenario para
Estudie la forma en que se aplicaría el bucle (1) para com aplicar el modelo al software.
prender los requisitos de un producto de tratamiento de texto; 2.9. A medida que vaya hacia afuera por el modelo en espiral,
(2) para desarrollar un componente de corrección ortográfica ¿qué puede decir del software que se está desarrollando o man
y gramática avanzado para el procesador de texto; (3) para teniendo?
generar el código para un módulo de programa que determi
ne el sujeto, predicado y objeto de una oración en inglés. 2.10. Muchas personas creen que la Única forma en la que se
van a lograr mejoras de magnitud en la calidad del software y
2.5. ¿Qué paradigmas de ingeniería del software de los presen en su productividad es a través del desarrollo basado en com
tados en este capítulo piensa que sería el más eficaz? ¿Por qué?
ponentes. Encuentre tres o cuatro artículos recientes sobre el
2.6. Proporcione cinco ejemplos de proyectos de desarrollo asunto y resúmalos para la clase.
del software que sean adecuados para construir prototipos.
2.11. Describa el modelo de desarrollo concurrente con sus
Nombre dos o tres aplicaciones que fueran más difíciles para
propias palabras.
construir prototipos.
2.12. Proporcione tres ejemplos de técnicas de cuarta genera
2.7. El modelo DRA a menudo se une a herramientas CASE.
ción.
Investigue la literatura y proporcione un resumen de una herra
mienta típica CASE que soporte DRA. 2.13. ¿Qué es más importante, el producto o el proceso?
El estado actual del arte en la ingeniería del software se puede controvertidos y amenos sobre el software y el proceso de la
determinar mejor a partir de publicacionesmensuales tales como ingeniería del software. Pressman y Herron (S oftw areSh ock,
IEEE Software, C om puter e IE E E Transactions on Software Dorset House, 1991) consideran el software y su impacto
Engineering. Periódicos sobre la industria tales como A p p lica sobre particulares, empresas y el gobierno.
tion D e\’elopement Trends,C utter IT Journal y Software D eve- El Instituto de ingeniería del software (US localizado en
lopement a menudo contienen artículos sobre temas de ingeniería la Universidad de Carnegie-Mellon) ha sido creado con la
del software. La disciplina se «resume» cada año en el Proce- responsabilidad de promocionar series monográficas sobre
edingofthe International Conference on Software Engineering, la ingeniería del software. Los profesionales académicos,
promocionado por el IEEE y ACM y tratado en profundidad en en la industria y el gobierno están contribuyendo con nue
periódicos como A C M Transactions on Software Engineering vos trabajos importantes. El Consorcio de Productividad del
andM ethodology,ACM Software Engineering N otes y Annals Software dirige una investigación adicional de ingeniería
of Software Engineering. de software.
Se han publicado muchos libros de ingeniería del softwa En la última década se ha publicado una gran variedad de
re en los últimos años. Algunos presentan una visión general estándares y procedimientos de ingeniería del software. El IEEE
del proceso entero mientras que otros se dedican a unos pocos Software E ngineering Standards contiene muchos estándares
temas importantes para la exclusión de otros. Las siguientes diferentes que abarcan casi todos los aspectos importantes de
son tres antologías que abarcan algunos temas importantes la tecnología. Las directrices ISO 9000-3 proporcionan una
de ingeniería del software: guía para las organizaciones de software que requieren un regis
Keyes,J. (ed.). Software Engineering P roductivity H and- tro en el estándar de calidad ISO 9001. Otros estándares de
book, McGraw-Hill, 1993. ' ingeniería del software se pueden obtener desde el MOD, la
McDermid, J. {ed.), Software E n g in eer’s R eferen ce B ook, Autoridad Civil de Aviación y otras agencias del gobierno y
CRC Press, 1993. sin ánimo de lucro. Fairclough (Softw areE ngineering G uides,
Marchiniak, J. J. ( e d ) , E n cyclopedia o f Softw are E n gin e Prentice-Hall, 1996) proporciona una referencia detallada de
ering, Wiley. 1994. los estándares de ingeniería del software producidos por Euro-
Gautier (D istrib u ted E n g in eerin g o f S oftw are, Prentice- pean Space Agency (ESA).
Hall, 1996)proporciona sugerencias y directrices para orga En internet se dispone de una gran variedad de fuentes de
nizaciones que deban desarrollar software en lugares información sobre la ingeniería del software y del proceso de
geográficamentedistantes. software. Se puede encontrar una lista actualizada con refe
En la parte más brillante del libro de Robert Glass (S o ft rencias a sitios (páginas) web que son relevantes para el pro
ware C onflict, Yourdon Press, 1991) se presentan ensayos ceso del software en http://www.pressman5.com.
www.FreeLibros.org 33
www.FreeLibros.org
PARTE
I I
GESTION DE PROYECTOS
DE SOFTWARE
Una vez que se haya dado respuesta a estas cuestiones, estará mejor prepa
rado para gestionar proyectos de software de manera que entregue un producto
de alta calidad puntualmente.
www.FreeLibros.org 35
www.FreeLibros.org
C A PÍT U L O
E [PAG85] dice una frase que pueden corroborar m uchos asesores de ingeniería del soft
ware:
H e visitado d ocenas de em p resas, buenas y m alas, y he observ ad o a m uchos ad m in istrad o res de p ro c e
so de d atos, tam bién buenos y m alos. Frecuentem ente, he visto con horror cóm o estos adm inistradores lu ch a
ban inútilm ente c ontra pro y ecto s de p esad illa, sufriendo por fechas lím ite im p o sib les d e cum plir, o que
en treg ab an sistem as que d ecep cio n ab an a sus usu ario s y que d ev o rab an ing en tes cantidades de horas de
m antenim iento.
Lo que describe Page-Jones son síntomas que resultan de una serie de problem as técnicos y
de gestión. Sin embargo, si se hiciera una autopsia de cada proyecto, es muy probable que se
encontrara un denom inador común constante: una débil gestión.
En este capítulo y en los seis que siguen consideraremos los conceptos clave que llevan a
una gestión efectiva de proyectos de software. Este capítulo trata conceptos y principios b ási
cos sobre gestión de proyectos de software. El Capítulo 4 presenta las métricas del proyecto y
del proceso, la base para una tom a de decisiones de gestión efectivas. Las técnicas que se em ple
an para estim ar los costes y requisitos de recursos y poder establecer un plan efectivo del pro
yecto se estudian en el C apítulo 5. Las actividades de gestión que llevan a una correcta
supervisión, reducción y gestión del riesgo se presentan en el Capítulo 6. El Capítulo 7 estudia
las actividades necesarias para definir las tareas de un proyecto y establecer una program ación
del proyecto realista. Finalmente, los Capítulos 8 y 9 consideran técnicas para asegurar la cali
dad a m edida que se dirige un proyecto y el control de los cambios a lo largo de la vida de una
aplicación.
VISTAZO RAPIDO
¿Qué e s? Aunque muchos de nosotros nan la relación entre el negocio y los ciendo puntos de control de calidad y
(en nuestros momentos m ás oscuros) profesionales del software. estableciendo mecanismos p ara con
tom am os la v isió n deDilbert sobre la ¿P er q u é e s im portante? La construc trolar y supervisar el trabajo definido
« g estión», t a i t a u n a actividad muy ción de softw are d e computadora es en la planiíicación.
n e c e s a ria c u a n d o se construyen pro un a em presa compleja, particular ¿C uál e s «1 p rod ucto ob ten id o ? Un
ductos y sistem as basados en compu mente si participa mucha gente, tra plan de proyecto se realiza al com ien
tadoras. La gestión de proyectos bajando durante un periodo de tiempo zo de las actividades de gestión. El
implica ¡a planiíicación, supervisión relativamente largo. Esta es la razón p la n d e fin e e l p ro c e so y l a s t a r e a s á
y co ntrol d e l personal, del proceso y por la cual los proyectos de software realizar el personal que re aliz a rá el tra
d e lo s e v e n to s q u e ocurren mientras necesitan ser gestionados. bajo y los m ecanism os p a ra e v a lu a r lo3
evoluciona el software desde la fase ¿C uáles s e n lo s p a se s? Comprender riesgos, controlar el cambio y evaluar
preliminar a la implementación ope- las cuatro «P’s» —personal, producto, la calidad.
racional. proceso y proyecto—. El personal ¿Cómo p u e d o estar se g u r o d e q ue
¿Q uién lo h a ce? Todos «gestionamos» debe estar organizado para desarro lo he h e c h o correctam ente? N un
de algún modo, pero el ámbito de las llar el trabajo del software con efecti ca e s tá s co m p letam en te seg u ro d e q ue
actividades de gestión varía en función vidad. La comunicación con el cliente el plan de proyecto es correcto h asta
de la persona que las realiza. Un inge debe ocurrir oara aue se comprendan aue no has entregado un producto de
niero de so ftw are g e stio n a sus activi el a lc a n c e d e l p ro d u c to y los re q u is i a lt a c a lid a d d e n tro d e l tie m p o y d el
d a d e s del día a día, planificando,
tos. D e b e s e le c c io n a r s e e l p ro c e so p re su p u esto . S in e m b a rg o , u n g e sto r
supervisando, y controlando las tareas a d e c u a d o p a ra el p e rs o n a l, y e l p ro d e pro y ecto s h a c e lo correcto c u a n d o
técnicas. Los gestores del proyecto p la d ucto. El p ro y e cto d e b e p la n ific a rs e e stim u la a l p e rso n al p a ra tra b a ja r jun
nifican, supervisan y cQn¡rojan el tr a e s tim a n d o e l e sfu e rz o y e l tie m p o tos com o u n eq u ip o efectiv o , c e n tra n
bajo de un equipo de ingenieros de p a r a c u m p lir l a s ta r e a s : d e f in ie n d o d o su a te n c ió n e n la s n e c e s id a d e s d el
www.FreeLibros.org
softw are. Los g esto res expertos coordi
lo s p ro d u c to s d e l tra b a jo , e s t a b l e cliente y e n la c a lid a d d e l producto.
37
IN GE NI ER ÍA DEL S O F T W A R E . UN E N F O Q U E P R Á C T I C O
3.1.3. P ro c e s o
Un proceso de softw are (C apítulo 2 ) proporciona la
estructura desde la que se puede establecer un detalla
do plan para el desarrollo del softw are. Un pequeño
El m odelo de m adurez de gestión de personal defi núm ero de actividades estructurales se puede aplicar a
ne las siguientes áreas clave prácticas para el personal todos los proyectos de software, sin tener en cuenta su
que desarrolla software: reclutamiento, selección, ges tam año o complejidad. Diferentes conjuntos de tareas
tión de rendimiento, entrenamiento, retribución, desa - t a r e a s , hitos, productos del trabajo y puntos de garan
rrollo de la carrera, diseño de la organización y del tía de c a lid a d -p e rm ite n a las actividades estructura
trabajo y desarrollo cultural y de espíritu de equipo. les adaptarse a las características del proyecto de
El M M CGP es com pañero del m odelo de madurez software y a los requisitos del equipo del proyecto. Final
de la capacidad software (Capítulo 2), que guía a las m ente, las actividades protectoras — tales com o garan
organizacionesen la creación de un proceso de software tía de calidad del software, gestión de la configuración
maduro. M ás adelante en este capítulo se consideran del software y m e d ic ió n -c u b re n el m odelo de proce
aspectos asociados a la gestión de personal y estructu so. Las actividades protectoras son independientes de
ras para proyectos de software. las estructurales y tienen lugar a lo largo del proceso.
www.FreeLibros.org
com putadora, softw are em potrado y softw are de resolución de pro
blem as (por ejem plo, p rogram as para la resolución de problem as
científicos/de ingeniería).
38
CAPÍTULO 3 C O N C E P T O S S OB RE G E S T I Ó N DE P R O Y E C T O S
En un estudio publicado por el IEEE [CUR88] se les del software, damos este aspecto por descontado. Los
preguntó a los vicepresidentes ingenieros de tres gran gestores argum entan (como el grupo anterior) que el
des compañías tecnológicas sobre el factor m ás im por personal es algo primario, pero los hechos desm ienten
tante que contribuye al éxito de un proyecto de software. a veces sus palabras.
Respondieron de la siguiente manera: En esta sección examinamos los participantes que cola
VP 1: Supongo que si tuviera que elegir lo m ás im portante boran en el proceso del software y la m anera en que se
de n uestro e n torno de trabajo, diría que no son las organizan para realizar una ingeniería del Software eficaz.
herram ientas que em pleam os, es la gente.
V P 2: El ingredientem ás im portante que contribuyóal éxi 3.2.1. L os p a r t i c i p a n t e s
to de este proyecto fue tener gente lista ... pocas cosas
m ás im portan en mi opinión ... L o m ás im portante El proceso del software (y todos los proyectos de soft
que se puede h acer por un proyecto es seleccionar el ware) lo com ponen participantes que pueden clasificarse
personal ... E l éxito de la organización de desarrollo en una de estas cinco categorías:
del softw are está m uy, m uy asociado con la habili
1. Gestores superiores, que definen los aspectos de
dad de reclutar buenos profesionales.
negocios que a m enudo tienen una significativa
VP 3: L a ú n ic a re g la que te n g o e n c u a n to a la g e stió n
influencia en el proyecto.
es a segurarm e de que ten g o buenos pro fesio n ales
— gen terealm en te buena— , de q u e p re p a ro b u e 2. Gestores (técnicos)del proyecto, que deben planifi
n a g e n te y d e que p ro p o rc io n o el e n to rn o e n el car, motivar, organizar y controlar a los profesiona
que lo s b u e n o s p ro fe s io n a le s p u e d a n producir. les que realizan el trabajo de software.
3. Profesionales, que proporcionan las capacidades téc
nicas necesarias para la ingeniería de un producto o
aplicación.
t e compañías que gestionan sensiblemente
4. Clientes, que especifican los requisitos para la inge
•Siistveisián en personal a la larga prosperarán
niería del softw are y otros elem entos que tienen
Sm i (M ia ra y Tht lister
m enor influencia en el resultado.
5. Usuarios finales, que interaccionan con el software
Ciertamente, éste es un testimonio convincente sobre una vez que se ha entregado para la producción.
la importancia del personal en el proceso de ingeniería Para ser eficaz, el equipo del proyecto debe organizarse
del software. Y, sin embargo, todos nosotros, desde los de m anera que maxim ice las habilidades y capacidades
veteranos vicepresidentes al m ás m odesto profesional de cada persona. Y este es el trabajo del jefe del equipo.
www.FreeLibros.org
proyectos «fallidos» están mal concebidos desde el primer m om ento.
Los clientes pierden el interés rápidam ente (puesto que lo que ellos
pidieron realm ente no era tan im portante com o ellos habían pensado),
y los proyectos son cancelados.
39
IN GE NI E RÍ A DEL SOF TW ARE . UN E N F O Q U E P R A C T I C O
www.FreeLibros.org
las riendas. D ebe tener confianza para asum ir el control cuan
do sea n ecesarioy la garantía para perm itir que los buenos téc Aunque es posible encontrar argumentos en pro y en
nicos sigan sus instintos. contra para cada uno de los enfoques anteriores, existe
40
CAPÍTULO 3 C O N C E P T O S S O B R E G E S T I Ó N DE P R O Y E C T O S
una gran evidencia que indica que una organización de ja r problem as sencillos. Los equipos descentralizados
equipo formal (opción 3) es la m ás productiva. generan m ás y m ejores soluciones que los individua
La «m ejor» estructura de equipo depende del esti les. Por tanto, estos equipos tienen más probabilidades
lo de gestión de una organización, el núm ero de per de éxito en la resolución de problem as complejos. Pues
sonas que com pondrá el e q u ip o , sus niveles de to que el equipo DC es centralizado para la resolución
preparación y la dificultad general del problema. Man- de problem as, tanto el organigrama de equipo DC como
tei [M AN81] sugiere tres org an ig ram as de equipo el de CC pueden aplicarse con éxito para problem as
genéricos: sencillos. La estructura DD es la m ejor para problemas
D e s c e n tr a liz a d o d e m o c r á t i c o (D D ). E ste e q u ip o de difíciles.
in g en iería del softw are no tie n e un j e f e perm anente. M ás Como el rendim iento de un equipo es inversamente
bien, «se n o m bran co o rd in ad o res d e tareas a c o rto p laz o y proporcional a la cantidad de com unicación que se debe
se su s titu y e n p o r o tro s para d ife re n te s tare as» . L as d e c i entablar, los proyectos muy grandes son m ejor dirigi
siones so b re pro b lem as y los e n fo q u es se h a ce n p o r c o n
dos por equipos con estructura CC o DC, donde se pue
senso del grupo. L a co m u n ic ac ió n e n tre los m iem bros del
equipo es horizontal.
den formar fácilmente subgrupos.
El tiem po que los m iem bros del equipo vayan a
«vivir juntos» afecta a la moral del equipo. Se ha des
■ [■ ¿Cómo debería estar
cubierto que los organigramas de equipo tipo DD pro
'S F organizado un equipo
ducen una m oral m ás alta y m ás satisfacción p or el
de softw are?
trabajo y son, por tanto, buenos para equipos que per
m anecerán juntos durante m ucho tiempo.
D e s c e n tra liz a d o c o n tro la d o (D C ). E ste equipo de in g e El organigram a de equipo DD se aplica m ejor a pro
niería del softw are tien e un je fe definido que c o o rd in a tare
blemas con m odularidad relativamente baja, debido a
as específicas y jefe s secundariosque tienen responsabilidades
sobre subtareas. L a reso lu ció n de pro b lem as sig u e siendo
la gran cantidad de com unicación que se necesita. Los
una activ idad del g ru p o , p ero la im p le m e n tac ió n d e so lu organigramas CC o DC funcionan bien cuando es posi
ciones se reparte entre subgrupos por el je fe de equipo. L a ble una m odularidad alta (y la gente puede hacer cada
com unicación e n tre subgrupos e indiv id u o s es horizontal. uno lo suyo).
Tam bién hay com unicación vertical a lo largo de la je ra rq u ía
de control.
C e n tr a liz a d o c o n tr o la d o ( C C ) . E l j e f e d el e q u ip o se
encarga de la resolución de p ro b lem as a alto nivel y la c o o r
dinación interna del equipo. L a c o m u n icació n entre e lje fe y Frecuentementees mejor tenerpocos equipos pequeños,
los m iem bros del equipo es vertical. bien centrados que un gran equipo solamente.
• deberíamos considerar
cuando estructuramos
un equipo de software?
una je ra rq u ía tradicional de autoridad (sim ilar al
equipo CC). Estos equipos trabajan bien cuando pro
ducen software similar a otros anteriores, pero pro
bablemente sean m enos innovadores cuando trabajen
dentro de un paradigm a cerrado.
• la calidad requerida y fiabilidad del sistema que se
va a construir 2. E l paradigm a aleatorio estructura al equipo libre
m ente y depende de la iniciativa individual de los
• la rigidez de la fecha de entrega
m iem bros del equipo. Cuando se requiere innova
• el grado de sociabilidad (comunicación) requerido ción o avances tecnológicos, los equipos de para
www.FreeLibros.org
para el proyecto digm a aleatorio son excelentes. Pero estos equipos
Debido a que una estructura centralizada realiza las pueden chocar cuando se requiere un «rendim iento
tareas más rápidamente, es la m ás adecuada para m ane ordenado».
41
IN GENIERÍA DEL S O F T W A R E . UN E N F O Q U E P R Á C T I C O
3. El paradigm a abierto intenta estructurar a un equipo nen una d e fin ic ió n co m ú n de é x ito o un esp íritu de e q u i
de m anera que consiga algunos de los controles aso po id e n tific a b le . L o que fa lta e s un fe n ó m e n o que d e n o
m in a m o s cuajar.
ciad o s con el paradigm a cerrado, pero tam bién
m ucha de la innovación que tiene lugar cuando se U n e q u ip o c u a ja d o es un g ru p o d e gente tejido tan fu e r
te m e n te que el to d o es m ay o r que la sum a de las p a r te s ...
utiliza el paradigm a aleatorio. El trabajo se desa
rrolla en colaboración, con m ucha com unicación y U na vez que el equipo em pieza a cuajar, la probabilidad
tom a de decisiones consensuadas y con el sello de d e é x ito e m p ie za a subir. E l eq u ip o p u e d e c o n v e rtirs e en
im p arab le, un m onstruo de éxito ... N o necesitan ser d irig i
los equipos de paradigm a abierto. Los organigra
dos de una m anera tradicional y no necesitan que se les m oti
m as de equipo de paradigm a abierto son adecuados ve. E stán en su gran m om ento.
para la resolución de problem as com plejos, pero
pueden no tener un rendim iento tan eficiente com o D eM arco y Lister m antienen que los m iem bros de
otros equipos. equipos cuajados son sig n ificativ am en te m ás p ro
ductivos y están m ás m otivados que la media. C om
p arten una m eta com ún, una cu ltu ra com ún y, en
m uchos casos, un «sentim iento elitista» que les hace
C o g ita :
únicos.
Majar enequipoesdifícil, peronoimposible. Pero no todos los equipos cuajan. De hecho, muchos
PcterOrscker equipos sufren lo que Jackman llama «toxicidadde equi
po» [ J A C 9 8 ] define cinco factores que «fom entan un
entorno de equipo tóxico potencial»:
4 . El paradigm a sincronizado se basa en la comparti-
m entación natural de un problem a y organiza los
m iem bros del equipo para trabajar en partes del pro
blem a con poca com unicación activa entre ellos.
Cogita:
No importa cual sea el problema, siempre
Constantine [ C O N 9 3 ] propone una variación en el é$ ufi problema del equipo.
equipo descentralizado democrático defendiendo a los Jerry Wemberg
equipos con independencia creativa cuyo enfoque de
trabajo podría ser m ejor llam ado «anarquía innova
dora». A unque se haya apelado al enfoque de libre 1. una atm ósfera de trabajo frenética en la que los
espíritu para el desarrollo del softw are, el objetivo m iem bros del equipo gastan energía y se descentran
principal de una organización de Ingeniería del S oft de los objetivos del trabajo a desarrollar;
ware debe ser «convertir el caos en un equipo de alto
2. alta frustración causada por factores tecnológicos,
rendim iento» [ H Y M 9 3 ] . Para conseguir un equipo de
del negocio, o personales que provocan fricción entre
alto rendim iento.
los m iem bros del equipo;
. Los m iem bros del equipo deben confiar unos en
3. «procedim ientos coordinados pobrem ente o frag
otros.
m entados» o una definición pobre o impropiamente
. La distribución de habilidades debe adecuarse al pro elegida del m odelo de procesos que se convierte en
blema. un obstáculo a saltar;
. Para m antener la unión del equipo, los inconformis- 4. definición confusa de los papeles a desempeñar pro
tas tienen que ser excluidos del mismo duciendo una falta de responsabilidad y la acusación
C ualquiera que sea la organización del equipo, el correspondiente, y
objetivo para todos los gestores de proyecto es colabo 5. «continua y repetida exposición al fallo» que con
rar a crear un equipo que presente cohesión. En su libro, duce a una pérdida de confianza y a una caída de la
Peopfeware, DeM arco y Lister [ D E M 9 8 ] estudian este moral.
aspecto:
Jackm an sugiere varios antitóxicos que tratan los
problem as comunes destacados anteriormente.
Para evitar un entorno de trabajo frenético, el
gesto r de pro y ecto s debería estar seguro de que el
H papel del bibliotecario existe sin tener en cuento
equipo tiene acceso a toda la inform ación requerida
lo estructura del equipo. Poro más detalles véase
el Capítulo 9.
para hacer el trabajo y que los objetivos y m etas prin
cipales, una vez definidos, no deberían m odificarse a
m enos que fuese absolutam ente necesario. Adem ás,
las m alas noticias no deberían guardarse en secreto,
T en d e m o s a u sar la p a la b ra e q u ip o d e m a sia d o lib re
www.FreeLibros.org
m ente en el m u n d o de lo s n eg o cio s, d e n o m in a n d o « e q u i
sino entregarse al equipo tan pronto com o fuese po si
po» a cualquier grupo de gente asignado para trab a ja rju n ta . ble (mientras haya tiem po para reaccionar de un m odo
P ero m uchos de e sto s grupos no p a rec en equipos. N o t ie racional y controlado).
42
CAPÍTULO 3 C O N C E P T O S S OBR E G E S T I Ó N DE P R O Y E C T O S
•
¿Cómo debemos evitar la, incertidumbre e in te ro p e ra tiv id a d -s on aspectos de
«toxinas» que con frecuencia la vida. Para enfrentarse a ellos eficazmente, un equi
infectan un equipo de software? po de ingeniería del software debe establecer m étodos
efectivos para coordinar a la gente que realiza el tra
Además de las cinco toxinas descritas por Jackman, bajo. Para lograr esto se deben establecer m ecanism os
un equipo de software a m enudo se enfrenta con los ras de com unicación formales e informales entre los m iem
gos hum anos diferentes de su s m iem bros. A lgunos bros del equipo y entre múltiples equipos. La com uni
miembros del equipo son extrovertidos, otros son intro cación formal se lleva a cabo «por escrito, con reuniones
vertidos. Algunas personas recogen inform ación intui organizadas y otros canales de com unicación relativa
tivamente, separando am plios conceptos de hechos m ente no interactivos e im personales» [KRA95], La
dispares. Otros procesan la inform ación linealm ente, com unicación informal es m ás personal. Los m iem bros
reuniendo y organizando detalles m inuciosos de los de un equipo de software com parten ideas de por sí,
datos proporcionados. A lgunos m iem bros del equipo piden ayuda a m edida que surgen los problem as e inter-
toman las decisiones apropiadas solamente cuando se actúan los unos con los otros diariamente.
www.FreeLibros.org
3 Las revisiones técnicas form ales se tra ta n con detalle en el Capi 4 Se puede encontrar una excelente introducción a e sto s tem as rela
tulo 8. cionados con los equipos de proyectos de softw are en [FER98]
43
IN GE NI E RÍ A DEL SOFTW ARE . UN E N F O Q U E P R Á C T I C O
. ,
reuniones de grupo ¡ r .
de errores
d isp o s ició n o y g «revisiones de estado
correo electrónico
. ,
• inspecciones de código
• las acciones de los miembros
del equipo?
3-3 PR O D U C TO _____________________
El gestor de un proyecto de softw are se enfrenta a un dile 3.3.1. Á m b ito d e l so ftw a re
m a al inicio de u n p royecto de ingeniería del softw are. L a prim era actividad de gestión de un proyecto de soft
Se req u ieren estim aciones cuantitativas y un p lan o rg a w are es determ inar el á m b ito del softw are. El ám bito se
nizado, pero no se dispone de inform ación sólida. U n define respondiendo a las siguientes 'cuestiones:
an álisis d etallad o de los re q u isito s del so ftw are p ro
p orcio n aría la inform ación n ecesaria p ara las estim a
ciones, pero el análisis a m enudo lleva sem anas o m eses.
Aún peor, los requisitos p u ed en ser fluidos, cam biando Si no puede delimitar una característica de/software
regularm ente a m ed id a que pro g resa el proyecto. Y, aún que intento construir, considérela característicacomo
un riesgo principal de/proyecto.
así, se n ecesita u n plan «¡ya!».
P o r tan to , d eb em o s ex am in ar el p ro d u cto y el p ro Contexto. ¿C óm o en caja el softw are a construir
www.FreeLibros.org
b lem a a re so lv e r ju s to al in ic io d el p ro y e c to . P o r lo en un siste m a , p ro d u c to o c o n te x to de n e g o c io s
m e n o s se d e b e e s ta b le c e r el á m b ito d el p ro d u c to y m ay o r y qué lim itaciones se im ponen com o resu lta
delim itarlo . do del contexto?
44
CAPÍTULO 3 C O N C E P T O S S OB RE G E S T I Ó N E E P R O Y E C T O S
O bjetivos de inform ación. ¿Qué objetos de datos Las funciones del software, descritas en la exposi
visibles al cliente (Capítulo 11) se obtienen del softwa ción del ám bito, se evalúan y refinan para proporcionar
re? ¿Qué objetos de datos son requeridos de entrada? más detalle antes del comienzo de la estim ación (Capí
F unción y rendim iento. ¿Qué función realiza el tulo 5). Puesto que ambos, el coste y las estim aciones
software para transform ar la inform ación de entra de la planificación temporal, están orientados funcio
da en una salida? ¿Hay características de rendimiento nalmente, un pequeño grado de descomposición suele
especiales que abordar? ser útil.
Por ejem plo, considere un proyecto que construirá
El ámbito de un proyecto de software debe ser uní
un nuevo procesador de textos. Entre las características
voco y entendible a niveles de gestión y técnico. Los
peculiares del producto están: la introducción de infor
enunciados del ám bito del software deben estar deli
m ación a través de la voz así com o del teclado; carac
mitados.
terísticas extrem adam ente sofisticadas de «edición
Es decir, los datos cuantitativos (por ejemplo: núm e
autom ática de copia»; capacidad de diseño de página;
ro de usuarios simultáneos, tam año de la lista de correo,
indexación autom ática y tabla de contenido, y otras. El
máximo tiem po de respuesta permitido) se establecen
gestor del proyecto debe establecer prim ero la exposi
explícitamente; se anotan las limitaciones (por ejemplo:
ción del ám bito que delim ita estas características (así
el coste del producto limita el tam año de la m emoria) y
com o otras funciones m ás norm ales, com o edición,
se describen los factores de reducción de riesgos (por
adm inistración de archivos, generación de docum en
ejemplo: los algoritmos deseados se entienden muy bien
tos). Por ejem plo, ¿requerirá la introducción de infor
si están disponibles en C++).
m ación m ediante voz «entrenam iento» por parte del
usuario? ¿Qué capacidades específicas proporcionará
3.3.2. D e sc o m p o sic ió n d el p ro b le m a la característica de editar copias? ¿Exactam ente cóm o
La descomposición del problema, denominado a veces será de sofisticado la capacidad de diseño de página?
particionado o elaboración delproblema, es una activi
dad que se asienta en el núcleo del análisis de requisitos
im m s m s m
del software (Capítulo 11). Durante la actividad de expo Bi el Capítulo 12 sepresentounatécnica útil paro
sición del ámbito no se intenta descomponer el proble descomponer el problema, lomada «análisis gramatical».
ma totalmente. Más bien, la descomposición se aplica en
dos áreas principales: (1) la funcionalidadque debe entre
garse y (2) el proceso que se em pleará para entregarlo. A m edida que evoluciona la exposición del ámbito,
un prim er nivel de partición ocurre de form a natural. El
equipo del proyecto sabe que el departamento de m ar
keting ha hablado con clientes potenciales y ha averi
guado que las siguientes funciones deberían ser parte
de la edición autom ática de copia: (1) com probación
Para desarrollar un plan de proyecto razonable, tiene ortográfica; (2) com probación gramatical; (3) com pro
que descomponer funcionalmente el problema a resolver
bación de referencias para documentos grandes (p. ej.:
¿se puede encontrar una referencia a una entrada biblio
Los seres hum anos tienden a aplicar la estrategia de gráfica en la lista de entradas de la bibliografía?), y (4)
divide y vencerás cuando se enfrentan a problemas com validación de referencias de sección y capítulo para
plejos. Dicho de manera sencilla, un problem a complejo documentos grandes. Cada una de estas características
se parte en problem as m ás pequeños que resultan más representa una subfunción para im plernentar en soft
manejables. Ésta es la estrategia que se aplica al inicio ware. C ada una puede ser aún m ás refinada si la des
de la planificación del proyecto. com posición hace m ás fácil la planificación.
- i Q & E S .Q
Las fases genéricas que caracterizan el proceso de soft • el m odelo incremental
ware d e fin ic ió n , desarrollo y soporte— son aplicables • el m odelo en espiral
a todo software. El problema es seleccionar el modelo de
■ el m odelo en espiral W INW IN
proceso apropiado para la ingeniería del software que debe
aplicar el equipo del proyecto. En el Capítulo 2 se estudió • el m odelo de desarrollo basado (ensamblaje) en com
una gran gama de paradigmas de ingeniería del software: ponentes
el m odelo de desarrollo concurrente
www.FreeLibros.org
• el modelo secuencia1 lineal
• el modelo de prototipo • el m odelo de métodos form ales
• el modelo DRA el m odelo de técnicas de cuarta generación
45
I N G E N IE RÍ A DEL S O F TW A RE . UN E N F O Q U E P R A C T I C O
/ .£ X> /
/ / .g'4
¿ ^ / '<?
ACTIVIDADES ESTRUCTURALES / | /
& / £
DE PROCESO C O M U NES / / i? / ^ .
/ $
/ ° 8 / $ / b
/
Tareas de Ingeniería del Softw are
www.FreeLibros.org
F IG U R A 3 . 2 . M aduración del problem a y del proceso.
46
CAPITULO 3 C O N C E P T O S S O B R E G E S T I Ó N DE P R O Y E C T O S
de arriba. Las tareas de trabajo de ingeniería del software ECP?», Por ejemplo, un pequeño proyecto, relativamen
(para cada actividad estructural) se introducirían en la fila te simple, requiere las siguientes tareas para la actividad
siguiente5. El trabajo del gestor del proyecto (y de otros de comunicación con el cliente:
miembros del equipo) es estimar los requisitos de recur 1. Desarrollar una lista de aspectos que se han de cla
sos para cada celda de la matriz, poner fechas de inicio y rificar.
finalización para las tareas asociadas con cada celda y los 2. Reunirse con el cliente para resolver los aspectos
productos a fabricar como consecuencia de cada celda. que se han de clarificar.
Estas actividades se consideran en los Capítulos 5 y 7. 3 . D esarrollar conjuntam ente una exposición del
ám bito del proyecto.
4. Revisar el alcance del proyecto con todos los im pli
CLAVE cados.
5. Modificar el alcance del proyecto cuando se requiera.
La descomposicióndel producto y del procesóse produce
simultáneamente con la evolución del plan de proyecto. Estos acontecimientospueden ocurrir en un periodo de
menos de 48 horas. Representan una descomposición del
problem a apropiado para proyectos pequeños relativa
3.4.2.D e sc o m p o sic ió n d e l p roceso
mente sencillos.
Un equipo de software debería tener un grado significa Ahora, considerem os un proyecto más complejo que
tivo de flexibilidad en la elección del paradigma de inge tenga un ámbito más amplio y un mayor impacto com er
niería del software que resulte mejor para el proyecto y cial. Un proyecto como ése podría requerir las siguientes
de las tareas de ingeniería del software que conform an el tareas para la actividad de comunicación con el chente:
modelo de proceso una vez elegido. Un proyecto relati
1. Revisar la petición del chente.
vamente pequeño similar a otros que se hayan hecho ante
riormente se debería realizar con el enfoque secuencia 1 2. Planificar y program ar una reunión formal con el
lineal. Si hay límites de tiem po muy severos y el proble chente.
ma se puede compartim entarm ucho, el m odelo apropia 3 . Realizar una investigación para definir solucionespro-
do es el DRA (en inglés RAD). Si la fecha límite está tan puestasy enfoques existentes.
próxima que no va a ser posible entregar toda la funcio 4. Preparar un «documentode trabajo» y una agenda para
nalidad, una estrategia incremental puede ser lo mejor. la reunión formal.
Similarmente,proyectos con otras características(p. ej.: 5. Realizar la reunión.
requisitos inciertos, nuevas tecnologías, clientes difíci 6. Desarrollar conjuntamente mini-especificaciones que
les, potencialidad de reutilización) llevarán a la selección reflejen la información, función y características de
de otros modelos de proceso6. comportamiento del software.
^ O N S E jd J fy
Aplique siempre la ECP (Estructura Común de Proceso),
sin tener en cuenta el tamaño, criticidad o tipo del
proyecto. Las tareas pueden variar pero la ECP no.
Modelo de proceso adaptable.
Una vez que se ha elegido el m odelo de proceso, la
7. Revisartodas las mini-especificaciones para com pro
estructura común de proceso (ECP) se adapta a él. En todos
bar su corrección, su consistencia,la ausencia de ambi
los casos, el ECP estudiado anteriormente en este capítu
güedades.
lo -com unicación con el cliente, planificación, análisis
de riesgo, ingeniería, construcción, entrega y evaluación 8. Ensamblarlasmini-especificacionesenun documento
del chente— puede adaptarse al paradigma. Funcionará de alcance del proyecto.
para modelos lineales, para modelos iterativos e incre 9. Revisar ese documento general con todo lo que pueda
méntales,para modelos de evolución e .incluso para mode afectar.
los concurrenteso de ensamblaje de componentes.El ECP 10. M odificar el docum ento de alcance del proyecto
es invariable y sirve como base para todo el trabajo de cuando se requiera.
software realizado por una organización. Ambos proyectos realizan la actividad estructural que
Pero las tareas de trabajo reales sí varían, La descom denominamos comunicación con el cliente, pero el equipo
posición del proceso comienza cuando el gestor del pro del prim er proyecto lleva a cabo la m itad de tareas de
yecto pregunta: «¿Cómo vamos a realizar esta actividad ingeniería del software que el segundo.
5 Se hace notar que las tareas se deben adaptar a las necesidades 6 Recuerde que las características del proyecto tienen tam bién una
www.FreeLibros.org
específicasde un proyecto. Las actividades estructurales siempre per fuerte influencia en la estructura del equipo que va a realizar el tra
manecen igual, pero las tareas se seleccionarán b asándose en unos bajo. Vea la Sección 3.2.3.
criteriosde adaptación. Este tem a es discutido m ás adelante en el
Capitulo 7 y en la página Web SEPA 5 /e.
47
IN GE NI E RÍ A DEL S O F TW A RE . UN E N F O Q U E P R Á C T I C O
3.5 PROYECTO_____________________
P ara g estio n ar un pro y ecto de softw are con éx ito , vaya a estar involucrado en el proyecto. Se refuer
debem os com prender qué puede ir m al (para evitar za construyendo el equipo adecuado (Sección 3.2.3)
esos problem as) y cóm o hacerlo bien. En un excelente y dando al equipo la autonomía, autoridad y tecno
docum ento sobre proyectos de softw are, John Reel logía necesaria para realizar el trabajo.
[REE99] define diez señales que indican que un pro M antenerse. M uchos proyectos no realizan un
yecto de sistem as de inform ación está en peligro: buen comienzo y entonces se desintegran lentamente.
Para m antenerse, el gestor del proyecto debe pro
porcionar incentivos para conseguir una rotación del
personal m ínim a, el equipo debería destacar la cali
U mms 7 de los 10 señóles que indican el fallo de dad en todas las tareas que desarrolle y los gestores
en proyecto de sistemas de información se veteranos deberían hacer todo lo posible por per
ÉáwsÉüsi antes de! desarrollo de un diseño m anecer fuera de la form a de trabajo del equipo7.
flORtesde escribir una linea de código. Seguimiento del Progreso. Para un proyecto de
software, el progreso se sigue mientras se realizan los
productos del trabajo (por ejemplo, especificaciones,
código fuente, conjuntos de casos de prueba) y se
1 . La gente del softw are no com prende las n ecesi
dades de los clientes. aprueban (utilizando revisiones técnicas formales)
como parte de una actividad de garantía de calidad.
2. El ám bito del producto está definido pobrem ente. Además, el proceso del software y las m edidas del
3. Los cam bios están m al realizados. proyecto (capítulo4) pueden ser reunidas y utilizadas
4. La tecnología elegida cambia. para evaluar el progreso frente a promedios desarro
llados por la organización de desarrollo de software.
5. Las necesidades del negocio cam bian [o están mal
Tom ar D ecisiones Inteligentes. En esencia, las
definidas].
decisiones del gestor del proyecto y del equipo de
6. Las fechas de entrega no son realistas. software deberían «seguir siendo sencillas». Siem
7. Los usuarios se resisten. pre que sea po sib le, u tilice softw are del m ism o
8. Se pierden los patrocinadores [o nunca se ob tu com ercial o com ponentes de softw are existentes;
evite p ersonalizar interfaces cuando estén dispo
vieron adecuadam ente].
nibles aproxim aciones estándar; identifique y eli
9. El equipo del proyecto carece del personal con las m ine entonces riesgos obvios; asigne m ás tiempo
habilidades apropiadas. del que pensaba necesitar para tareas arriesgadas
10.Los gestores [y los desarrolladores] evitan buenas o com plejas (necesitará cada minuto).
prácticas y sabias lecciones.
L os profesionales veteranos de la industria hacen
re fere n cia frecu en tem en te a la re g la 9 0 -9 0 cuando
estudian proyectos de software particularm ente d ifí Referencia
ciles: el prim er 90 por 100 de un sistem a absorbe el
Se puede encontrar un gran conjunto de recursos
90 por 100 del tiem po y del esfuerzo asignado. El últi
que pueden ayudar tanto a gestores de proyecto
m o 10 por 100 se lleva el otro 90 por 100 del esfuer
experimentados como a principiantes en:
zo y del tiem po asignado [ZA H 94]. Los factores que
www.pmi.org,www.4pm.com y
conducen a la regla 90-90 están contenidos en las diez
www.projectmanagement.com
señales destacadas en la lista anterior.
¡Suficiente negatividad! ¿Cómo actúa un gestor para
evitar los problem as señalados anteriorm ente? Reel Realizar un Análisis «Postmortem» (despuésde fina
[REE99] sugiere una aproxim ación de sentido común lizar el proyecto}. Establecer un m ecanismo consis
a los proyectos de software dividida en cinco partes: tente para extraer sabias lecciones de cada proyecto.
Empezar con el p ie derecho. Esto se realiza tra Evaluar la planificación real y la prevista, reunir y ana
bajando duro (muy duro) para com prender el pro lizar métricas del proyecto de software y realimentar
blem a a solucionar y estableciendo entonces con datos de los miembros del equipo y de los clien
objetivos y expectativasrealistas para cualquiera que tes, y guardar los datos obtenidos en formato escrito.
www.FreeLibros.org
7 Esta frase implica la reducción al m ínim o de la burocracia, y la eli
m inación tan to de reuniones extrañas com o de la adherencia dog
m ática a las reglas del proceso y del proyecto. El equipo debena estar
capacitado p ara realizar esto.
48
CAPÍTULO 3 C O N C E P T O S SOBRE GESTIÓN EE PR O Y EC T O S
En un excelente docum ento sobre proyectos y proce ponsabilidad de cada m iem bro del equipo de so ft
so del software,Barry Boehm [BOE96] afirma: «... se w are debe estar definida. L a re sp u esta a la p re
necesita un principio de organización que haga una gunta ayuda a cum plir esto.
simplificación con el fin de proporcionar planes [de ¿D ónde están situados organizacionalm ente?
proyectos] sencillos para proyectos pequeños». Boehm N o todos los roles y responsabilidades residen en
sugiere un enfoque que trate los objetivos, hitos y pla el equipo de softw are. El cliente, los usuarios, y
nificación, responsabilidades, enfoque técnico y de otros directivos tam bién tienen responsabilidades.
gestión, y los recursos requeridos del proyecto. Bohem
lo llama el principio «W W W W W H H », después de
una serie de preguntas (7 cuestiones) que conducen a
la definición de las características clave del proyecto
y el plan del proyecto resultante:
i
¿Por qué se desarrolla el sistema? La respuesta a 12
E
esta pregunta permite a todas las partes evaluar la vali
dez de las razones del negocio para el trabajo del soft Plan de Proyecto de Softw are
El C oncilio8 A irlie ha d esarro llad o una lista de uno de los riesgos ¿cuál es la oportunidad de que
«prácticas críticas de software para la gestión basada el riesgo se convierta en un problem a y cuál es el
en el rendimiento». Estas prácticas son «utilizadas de im pacto si lo hace?
un modo consistente por, y consideradas críticas por, C oste em pírico y estim ación de la planificación.
organizaciones y proyectos de software de m ucho éxi ¿Cuál es el tam año actual estim ado de la aplicación
to cuyo rendim iento "fin al” es m ás consistente que de software (sin incluir el software del sistema) que
los promedios de la industria» [AIR99]. En un esfuer será entregada en la operación? ¿Cómo se obtuvo?
zo por perm itir a una organización de software d eter
minar si un pro y ecto esp ecífico ha im plem entado
prácticas críticas, el C oncilio A irlie ha desarrollado
un conjunto de preguntas de «Visión Rápida» [AIR99]
para un proyecto’:
Gestión fo rm a l del riesgo. ¿Cuáles son los diez
riesgos principales para este proyecto? Para cada Visión rápida del Proyecto Airlie
www.FreeLibros.org
8 El Concilio Airlie es un equipo de expertos en ingeniería del software 9 Solo se destacan aquí aquellas practicas críticas relacionadas con
promocionadopor el Departamento de Defensa U .S.ayudando en el la «integridad del proyecto)).O tras practicas m ejores se trataran en
desarrollo de directrices para prácticas im portantes en la gestión de capítulos posteriores.
proyectos de software y en la ingeniería del Software.
49
I N GEN IE RÍ A DEL S OFT W ARE . UN E N F O Q U E P R Á C T I C O
Gestión de proyectos basada en métricas. ¿Dis de el principio del programa y del número de defectos
pone de un programa de métricas para dar una prime que se corrigen y se producen en la actualidad?
ra indicación de los problemas del desarrollo? Si es así, G estión del program a del personal. ¿Cuál es
¿cuál es la volatilidad de los requisitos actualmente? la m edia de rotación de la plantilla en los tres Ulti
Seguim iento del valor ganado. ¿Inform a m en m os m eses por cada uno de los distribuidores/desa-
sualm ente de las m étricas del valor gan ad o ...? Si rro llad o res inv o lu crad o s en el d esarro llo del
es así, ¿están calculadas estas m étricas desde una software para este sistem a?
red de actividades de tareas para el esfuerzo total Si un equipo de proyectos de softw are no puede
a la próxim a entrega? resp o n d er a estas preg u n tas, o las responde in ad e
Seguimientode defectos frente a objetivos de cali cuadam ente, se debe realizar una revisión com pleta
dad. ¿Realiza el seguimientoe informaperiódicamente de las prácticas del proyecto. C ada una de las prácti
del número de defectos encontradosen cada prueba de cas críticas señaladas anteriormente se tratan con deta
inspección [revisión técnica formal] y ejecución des- lle a lo largo de la Parte II de este libro.
JE S U J4 E IL _
L a gestión de proyectos de software es una actividad pletar el trabajo. Finalmente, el proyecto debe organi
protectora dentro de la ingeniería del software. Em pie zarse de una m anera que perm ita al equipo de software
za antes de iniciar cualquier actividad técnica y con tener éxito.
tinúa a lo largo de la definición, del desarrollo y del El elem ento fundam ental en todos los proyectos de
m antenim iento del softw are. software es el personal. Los ingenieros del software
Hay cuatro « P 's » que tienen una influencia sustan pueden organizarse en diferentes organigramas de equi
cial en la gestión de proyectos de software - p e r s o n a l , po que van desde las jerarq u ías de control tradiciona
producto, proceso y proyecto— . El personal debe orga les a los equipos de «paradigm a abierto». Se pueden
nizarse en equipos eficaces, m otivados para hacer un aplicar varias técnicas de coordinación y com unica
software de alta calidad y coordinados para alcanzar una ción para apoyar el trabajo del equipo. En general, las
com unicación efectiva. L os requisitos del producto revisiones form ales y las com unicaciones informales
deben com unicarse desde el cliente al desarrollador, persona a persona son las m ás valiosas para los pro
dividirse (descom ponerse) en las partes que lo consti fesionales.
tuyen y distribuirse para que trabaje el equipo de soft L a actividad de gestión del proyecto com prende
ware. El proceso debe adaptarse al personal y al m edición y m étricas, estim ación, análisis de riesgos,
problema. Se selecciona una estructura com ún de pro p lanificación del program a, seguim iento y control.
ceso, se aplica un paradigm a apropiado de ingeniería C ada uno de estos aspectos se trata en los siguientes
del software y se elige un conjunto de tareas para com capítulos.
[AIR99] Airlie Council, «Performanced Based Management: ware Engineering, vol. 31, n.‘ 11, Noviembre de 1988,
The Program M anager’s Guide Based on the 16-Point pp. 1268-1287.
Plan and Related M etrics», Draft Report, 8 de Marzo,
[CUR94] Curtís, B., et al., People M anagem ent Capahi-
1999.
lity M a turity M odel, Softw are Engineering Institute,
[BAK72] Baker, F.T., «Chief Programmer Team M anage Pittsburgh, PA, 1994.
ment of Production Programming», IBM Systems Jour
nal, vol. 11,n.e 1, 1972, pp. 56-73. ‘ [DEM98] DeM arco, T., y T. Lister, Peopleware, 2: edi-
ción, Dorset House, 1998.
[BOE96] Boehm, B., «Anchoring the Software Process»,
IEEE Software, vol. 13,n.9 4, Julio de 1996,pp. 73-82. [EDG95] Edgemon, J., «Right S tuff How to Recognize
It W hen Selecting a Project M anager», A pplication
[CON93] Constantine, L., «Work Organization: Paradigms
Development. Trends, vol. 2, n.9 5, Mayo de 1995,pp.
for Project Management and Organization», CACM, vol.
37-42. '
3 6 ,n .e 10 ,Octubre de 1993, pp. 34-43.
[COU80] Cougar, J., y R. Zawacky, M anaging and Moti- [FER98] Ferdinandi, P. L., «Facilating Communication»,
www.FreeLibros.org
vating Computer Personnel, Wiley, 1980. IEEE Software, Septiembre de 1998, pp. 92-96.
[CUR88] Curtís, B., et.al, «A Field Study of the Software [JAC98] Jackman, M., «Homeopathic Remedies for Team
Design Process for Large Systems», IEEE Trans. Soft Toxicity», IEEE Software, Julio de 1998, pp. 43-45.
50
CAPÍTULO 3 C O N C E P T O S S O B R E G E S T I Ó N DE P R O Y E C T O S
[KRA95] Kraul, R., y L. Streeter, «Coordination in Software [REE99] Reel, J.S., «Critical Sucoess Factors in Software
Development», CACM, vol. 38, n.Q3, Marzo de 1995, pp. Projects», IEEE Software, Mayo de 1999,pp. 18-23.
69-81. [WEI86] Weinberg, G., On Becoming a Techrtical Leader,
[MAN81] Mantei, M., «The Effect of Programming Team Dorset House, 1986.
StructuresonProgramming Tasks», G4CA/,vol. 24, n." 3, [WIT94] Whitaker, K., Managing Software Maníaos, Wiley,
Maizode 1981, pp. 106-113. 1994. '
[PAG85] Page-Jones, M., Practica1 ProjectM anagem ent, [ZAH94] Zahniser, R., «Timeboxing for Top Team Perfor
Dorset House, 1985,p. VII. mance», SoftVi’are Development, Marzo de 1994,pp. 35-38.
3.1. Basándose en la información contenida en este capítu por el mercado de entretenimiento casero es intensa, hay cier
lo y en su propia experiencia, desarrolle «diez mandamien ta presión para terminar el trabajo rápidamente. ¿Qué estruc
tos» para potenciar a los ingenieros del software. Es decir, tura de equipo elegiría y por qué? ¿Qué modelo(s) de proceso
haga una lista con las diez líneas maestras que lleven al per de software elegiría y por qué?
sonal que construye software a su máximo potencial. 3.8. Se le ha nombrado gestor de proyecto de una gran com
3.2. El Modelo de Madurez de Capacidad de Gestión de Per pañía de productos software. Su trabajo consiste en dirigir la
sonal (MMCGP)del Instituto de Ingeniería del Software hace versión de la siguiente generación de s u famoso procesador
un estudio organizado de las «áreas clave prácticas (ACP)» de textos. Como la competencia es intensa, se han estableci
que cultivan lo s buenos profesionales del software. Su profe do y anunciado fechas límite rígidas. ¿Qué estructura de equi
sor le asignará una ACP para analizar y resumir. po elegiría y por qué? ¿Qué modelo(s) de proceso de software
3.3. Describa tres situaciones de la vida real en las que el
elegiría y por qué?
cliente y el usuario final son el mismo. Describa tres situa 3.9. Se le ha nombrado gestor de proyecto de software de una
ciones en que son diferentes. compañía que trabaja en el mundo de la ingeniería genética.
Su trabajo es dirigir el desarrollo de un nuevo producto de soft
3.41. Las decisiones tomadas por una gestión experimentada
ware que acelere el ritmo de impresión de genes. El trabajo es
pueden tener un impacto significativoen la eficacia de un equi
orientado a I+D, pero la meta es fabricar el producto dentro del
po de ingeniería del software. Proporcione cinco ejemplos para
siguiente año. ¿Qué estructura de equipo elegiría y por qué?
ilustrar que es cierto.
¿Qué modelo(s) de proceso de software elegiría y por qué?
3.5. Repase el libro de Weinberg [WEI86] y escriba un resu 3.10. Como muestra la Figura 3.1, basándose en los resulta
man de dos o tres páginas de los aspectos que deberían tener dos de dicho estudio, los documentos parecen tener más uso
se en cuenta al aplicar el modelo MOI. que valor. ¿Por qué cree que pasó esto y qué se puede hacer
3.6. Se le ha nombrado gestor de proyecto dentro de una para mover el punto documentos por encima de la línea de
organización de sistemas de información. Su trabajo es cons regresión en el gráfico? Es decir, ¿qué se puede hacer para
truir una aplicación que es bastante similar a otras que ha cons mejorar el valor percibido de los documentos?
truido su equipo, aunque ésta es mayor y más compleja. Los 3.11. Se le ha pedido que desarrolle una pequeña aplicación
requisitos han sido detalladamente documentados por el clien que analice todos lo s cursos ofrecidos por la universidad e
te. ¿Qué estructura de equipo elegiría y por qué? ¿Qué mode- informe de las notas medias obtenidas en los cursos (para un
lo(~c)e proceso de software elegiría y por qué? periodo determinado). Escriba una exposición del alcance que
3.7. Se le ha nombrado gestor de proyecto de una pequeña abarca este problema.
compañía de productos software. Su trabajo consiste en cons 3.12. Haga una descomposición funcional de primer nivel
truir un producto innovador que combine hardware de reali de la función diseño de página tratado brevem ente en la
dad virtual con software innovador. Puesto que la competencia Sección 3.3.2.
www.FreeLibros.org
Úñ tanto a los gestores noveles como a los experimentados. asociados con el desarrollo de sistemas cliente/servidor.
Brooks (The M ythical M an-M onth, Aniversary Edition, Sepuede argumentar que el aspecto más importante de la
Addison-Wesley, 1995) ha actualizado su clásico libro para gestión del proyecto de software es la gestión de personal. El
51
IN GE NI E RÍ A DEL S OFT W ARE . UN E N F O Q U E P R Á C T I C O
libro definitivo sobre este tema lo escribieron DeMarco y Lis- jo más eficazmente. House (T heH um an Side d Project
ter [DEM98], pero se han publicado en los Últimos años los M anagement, Addison-Wesley, 1988)y Crossby (Running
siguientes libros donde se examina su importancia: Things: The art ofM aking Things Happen, McGraw-Hill,
Beaudouin-Lafon, M., Com puter Supported Coopera- 1989)proporcionan directrices prácticas para gestores que
tive Work, W iley-Liss, 1999. deban tratar con problemas humanos y técnicos.
Carm el, E., G lobal Software Teams: C ollaborating Aunque no están relacionados específicam ente con el
Across Borders and Tim eZones, Prentice Hall, 1999. m undo del software, y algunas veces sufren demasiadas
Humphrey, W. S M anaging Technical People: Inno- simplificaciones y amplias generalizaciones, los libros de
vation, Teamwork, and the Software Process, Addison-Wes- gran éxito de Drucker (ManagementChallenges fo r the 21 sí
ley 1997. Century, H arperbusines, 1999), Buckingham y Coffman
Humphrey, W. S., Introduction to the Team o f Software (F irst, B reak A ll the R ules: W hat the W orld’s Greatest
Process, Addison-Wesley, 1999. Managers Do Dijferently, Simón & Schuster, 1999)y Chris-
Jones, P. H Handbook o f Team Design: A Practitio- tensen (TheInnovator's Dilemma, Harvard Business School
ner’s Guide to Team Systems Development, McGraw-Hill, Press, 1997) enfatizan «nuevas reglas» definidas por una
1997. economía que cambia con rapidez. Viejos títulos como The
Karolak, D. S., Global Software Development: M ana One M inute M anager e In Search o f Excellence continúan
ging Virtual Teams and Environm ents, IEEE Com puter proporcionando enfoques valiosos que pueden ayudarle a
Society, 1998. gestionar los temas relacionados con el personal de un modo
Mayer, M., The VirtualEdge: Embracing Technology más eficiente.
forD istrib u ted P ro ject TeamSuccess, Project M anagement En Internet están disponibles una gran variedad de fuen
Institute Publications, 1999. tes de información relacionadas con temas de gestión de pro
Otro excelente libro de Weinberg [WEI86] es lectura yectos de software. Se puede encontrar una lista actualizada
obligada para todo gestor de proyecto y je fe de equipo. Le con referencias a sitios (páginas) web que son relevantes para
dará una visión interna y directrices para realizar su traba los proyectos de software en http://www.pressman5.com.
www.FreeLibros.org 52
C A P ÍT U L O
PROCESO DE SOFTWARE
4 Y MÉTRICAS DE PROYECTOS
L ware no es una excepción. La medición nos permite tener una visión más profunda propor
cionando un m ecanismo para la evaluación objetiva. Lord Kelvin en una ocasión dijo:
Cuando pueda m edir lo que está diciendo y expresarlo con números, ya conoce algo sobre
ello; cuando no pueda medir, cuando no pueda expresar lo que dice con números, su conoci
miento es precario y deficiente: puede ser el com ienzo del conocimiento, pero en sus pensa
mientos, apenas está avanzando hacia el escenario de la ciencia.
La com unidad de la ingeniería del software ha com enzado finalmente a tom arse en serio las
palabras de Lord Kelvin. Pero no sin frustraciones y sí con gran controversia.
Las métricas del software se refieren a un am plio elenco de m ediciones para el software de
computadora. La m edición se puede aplicar al proceso del software con el intento de m ejorar
lo sobre una base continua. Se puede utilizar en el proyecto del software para ayudar en la esti
m ación, el control de calidad, la evaluación de productividad y el control de proyectos.
Finalmente, el ingeniero de software puede utilizar la medición para ayudar a evaluar la cali
dad de los resultados de trabajos técnicos y para ayudar en la tom a de decisiones táctica a m edi
da que el proyecto evoluciona.
V IS T A Z O R Á P ID O
¿Qué es? El p roceso d el so ftw a re y la s ¿Quién lo h a c e ? L as m étricas d e l soft zan d o m étricas orien tad as a l ta m a ñ o o
m étricas del producto son u n a m edida w a re son a n a liz a d a s y e v a lu a d a s por a la función. El resultado se a n a liz a y
cuantitativa q u e perm ite a l a g e n te del los a d m in istra d o re s d e l softw are. A s e c o m p a ra con p rom edios a n te rio re s
softw are tener u n a visión profunda d e m enudo la s m ed id a s son re u n id a s por d e proyectos sim ila re s realizad o s con
la eficaciadel proceso del softw are y de los in g en iero s d el software. la organización. Se e v a lú a n la s te n
los proyectos q ue d irig e n utilizando el ¿Por q u é e s im portante? Si no m ides, d e n c ia s y se g e n e ra n la s conclusiones.
proceso com o un m arco d e trabajo. Se sólo p o d rá s ju z g a r b a s á n d o te e n u n a ¿Cuál e s e l p rod ucto obtenido?Es un
reúnen los d a to s b á sic o s d e c a lid a d y evaluación subjetiva.M ediante la m edi conjunto d e m étricas d el softw are que
productividad. Estos datos son entonces ción, se p u e d e n se ñ a la r la s ten d en cias p ro p o rcio n a n u n a visión pro fu n d a del
analizados, com parados con prom edios (b u e n a so m alas), realizar m ejores e s ti p roceso y d e la c o m p ren sió n d e l p ro
a n te rio re s, y e v a lu a d o s p a ra d eterm i m aciones, llevar a cab o u n a v e rd a d e ra yecto.
nar la s m ejoras e n la c a lid a d y produc m ejora sobre el tiem po. ¿Cómo p uedo esta r seguro d e q u e lo
tividad. L as m é tric a s son ta m b ié n ¿Cuáles son lo s p asos? C om enzar defi h e h ech o correctam ente? A plican
utilizadas p a ra se ñ a la r á re a s con pro niendo u n conjunto lim itad o d e m ed i do u n p la n d e m ed ició n se n c illo pero
blem as d e m anera q ue se p u e d a n d e sa d a s d e procesos, proyectos y productos c o n siste n te , que n u n c a utilizarem os
rrollar los rem ediosy m ejorar el proceso que se a n fáciles d e recoger. E stas m edi p a ra ev alu ar, p rem iar o c a s tig a r e lre n -
del software. d a s son a m enudo n o rm alizad as u tili dim iento individual.
Dentro del contexto de la gestión de proyectos de software,en primer lugar existe una gran pre
ocupación por las métricas de productividad y de calidad — medidas «de salida» (finalización) del
desarrollo del software, basadas en el esfuerzo y tiempo em pleados, y medidas de la «utilidad» del
producto obtenido— .
Park, Goethert y Florac [PAR96] tratan en su guía de la medición del software las razones por
las que medimos:
Hay cuatro razones para medir los procesos del software, los productos y los recursos:
• caracterizar
www.FreeLibros.org
• evaluar
• predecir
• mejorar
53
I N GE NI E RI A DEL S OFT W ARE . UN E N F O Q U E P R A C T I C O
Caracterizamos para comprender mejor los procesos, los productos, los recursos y los entornos y para establecer
las líneas base para las comparaciones con evaluacionesfuturas.
Evaluam ospara determinar el estado con respecto al diseño. Las m edidas utilizadas son los sensores que nos per
miten conocer cuándo nuestros proyectos y nuestros procesos están perdiendo la pista, de modo que podam os poner
los bajo control. También evaluamos para valorar la consecución de los objetivos de calidad y para evaluar el impacto
de la tecnología y las mejoras del proceso en los productos y procesos.
Predecimos para poder planificar. Realizar mediciones para la predicción implica aum entar la com prensión de las
relaciones entre los procesos y los productos y la construcción de modelos de estas relaciones, por lo que los valores
que observamos para algunos atributos pueden ser utilizados para predecir otros. Hacemos esto porque queremos esta
blecer objetivos alcanzablespara el coste, planificación,y calidad - d em anera que se puedan aplicar los recursos apro
piados— . Las medidas de predicción también son la base para la extrapolación de tendencias, con lo que la estimación
para el coste, tiem po y calidad se puede actualizar basándose en la evidencia actual. Las proyecciones y las estima
ciones basadas en datos históricos también nos ayudan a analizar riesgos y a realizar intercambios diseño/coste.
Medimos para mejorar cuando recogemos la información cuantitativa que nos ayuda a identificar obstáculos, pro
blemas de raíz, ineficiencias y otras oportunidades para mejorar la calidad del producto y el rendim iento del proceso.
www.FreeLibros.org
1 Esto asum e que se recopila otra medida, persona y horas gastadas
en cada revisión.
54
CAPÍTULO 4 P R O C E S O DEL S O F T W A R E Y M É TR IC A S DEL P R O Y E C T O
La medición es algo com ún en el m undo de la ingenie En algunos casos, se pueden utilizar las m ism as
ría. Se mide el consumo de energía, el peso, las dim en m étricas del softw are para determ inar tanto el p ro
siones físicas, la tem peratura, el voltaje, la relación yecto com o los indicadores del proceso. En realidad,
señal-ruido.. . la lista es casi interminable. Por desgra las m edidas que recopila un equipo de proyecto y las
cia, la m edición es m ucho m enos com ún en el mundo convierte en m étricas para utilizarse durante un p ro
de la ingeniería del software. Existen problem as para yecto tam bién pueden transm itirse a los que tienen la
ponerse de acuerdo sobre qué m edir y las m edidas de responsabilidad de m ejorar el proceso del softw are.
evaluación de problem as recopilados. Por esta razón, se utilizan m uchas de las m ismas m étri
cas tanto en el dom inio del proceso com o en el del
proyecto.
Referencia Web
Se puede descargar una guío completo 4.2.1. M étricas del proceso y mejoras
de métricos del software desde: en el proceso del software
www.inv.nasa.gov/SWG/resources/ L a Única form a racional de m ejorar cualquier proceso
NASA-GB-001-94.pdf
es m edir atributos del proceso, desarrollar un ju eg o de
Se deberían recopilar métricas para que los indica métricas significativas según estos atributos y entonces
dores del proceso y del producto puedan ser ciertos. Los utilizar las métricas para proporcionar indicadores que
indicadores de proceso perm iten a una organización de conducirán a una estrategia de mejora. Pero antes de
ingeniería del software tener una visión profunda de la estudiar las m étricas del software y su im pacto en la
eficacia de un proceso ya existente (por ejemplo: el para m ejoras de los procesos del software es importante des
digma, las tareas de ingeniería del software, productos tacar que el proceso es el Unico factor de «los controla
de trabajo e hitos). Tam bién perm iten que los gestores bles al m ejorar la calidad del software y su rendimiento
evalúen lo que funciona y lo que no. Las métricas del com o organización» [PAU94],
proceso se recopilan de todos los proyectos y durante
un largo período de tiempo. Su intento es proporcionar
indicadores que lleven a m ejoras de los procesos de soft
ware a largo plazo. C LA VE
Los indicadores de proyecto perm iten al gestor de La habilidad y le motivación del personal realizando
proyectos del software (1) evaluar el estado del proyecto el trabajo son los factores más Importantes que Influyen
en curso; (2) seguir la pista de los riesgos potenciales: en lo calidad del software.
(3) detectar las áreas de problem as antes de que se co n
viertan en «críticas»; (4) ajustar el flujo y las tareas del
En la F igura 4.1, el proceso se sitúa en el centro de
trabajo, y (5) evaluar la habilidad del equipo del pro
un triángulo que conecta tres factores con una p ro
yecto en controlar la calidad de los productos de traba
funda influencia en la calidad del software y en el ren
jo del software.
d im ie n to com o organización. La d estre za y la
m otivación del personal se m uestran com o el Único
Producto
factor realm ente influyente en calidad y en el rendi
m iento [BOE81]. La com plejidad del producto p u e
de tener un im pacto sustancial sobre la calidad y el
rendim iento del equipo. La tecnología (por ejem plo:
m étodos de la ingeniería del softw are) que utiliza el
proceso tam bién tiene su im pacto. A dem ás, el trián
gulo de proceso existe dentro de un círculo de co n d i
ciones de entornos que incluyen entornos de desarrollo
(por ejem plo: herram ientas C A SE ), condiciones de
gestión (por ejemplo: fechas tope, reglas de em presa)
y características del cliente (por ejem plo: facilidad de
com unicación).
www.FreeLibros.org
m k ¿Como puedo medir
FIG U R A 4 .1 . Determinantes de la calidad del software
* la efectividad de un proceso
y de la efectividad de organización
de software?
(adaptado según [PAU94]).
55
I N GEN IE RÍ A DEL S OFT W ARE . UN E N F O Q U E P R Á C T I C O
www.FreeLibros.org
2 Consulte las Secciones 4.3.1 y 4.3.2 para estudios m ás detallados
sobre L D C (líneasde códigojy m étricas de puntos de función.
56
CAPITULO 4 P R O C E S O DEL SOF TW ARE Y M É T R I C A S DEL P R O Y E C T O
C o m p ro b a c ió n
de e rro re s
10.9%
E s p e c ific a c io n e s
2 5 .5 %
In te rfa z d e u s u a rio
11.7%
O r ig e n d e e rr o re s /d e fe c to s
□ E s p e c ific a c ió n /re q u is ito s
□ D is e ñ o
E l C ó d ig o
In c o rre c to C a m b io s
FIGURA 4 .2 . Causas de defectos y su origen para cuatro
proyectos de software [GRA94J. F IG U R A 4 .3 . Un diagrama de espina (Adaptado de [GRA92]).
www.FreeLibros.org
bierta por los ingenieros del softw are an te s de que el softw are sea
entregado al usuario final.
Un defecto es una fisura descubierta después de la entrega al usua-
no final.
57
IN G E N IE R ÍA DEL S O F TW A RE . UN EN F OQ U E P R Á C T I C O
La prim era aplicación de métricas de proyectos en A m edida que m ejora la calidad, se m inim izan los
la m ayoría de los proyectos de software ocurre duran defectos, y al tiempo que disminuye el número de defec
te la estimación. Las métricas recopiladas de proyectos tos, la cantidad de trabajo que ha de rehacerse también
anteriores se utilizan como una base desde la que se rea se reduce. Esto lleva a una reducción del coste global
lizan las estim aciones del esfuerzo y del tiem po para el del proyecto.
actual trabajo del software. A m edida que avanza un Otro m odelo de métricas del proyecto de software
proyecto, las m edidas del esfuerzo y del tiem po consu [HET93] sugiere que todos los proyectos deberían medir:
m ido se com paran con las estim aciones originales (y la . entradas: la dim ensión de los recursos (p. ej.: perso
planificación de proyectos). El gestor de proyectos uti nas, entorno) que se requieren para realizar el trabajo,
liza estos datos para supervisar y controlar el avance.
« salidas: medidas de las entregas o productos creados
A m edida que com ienza el trabajo técnico, otras
m étricas de proyectos com ienzan a tener significado. durante el proceso de ingeniería del software,
S e m iden los ín d ices de producción rep resen tad o s • resultados: m edidas que indican la efectividad de las
m ediante páginas de documentación, las horas de revi entregas.
sión, los puntos de función y las líneas fuente entre En realidad, este m odelo se puede aplicar tanto al
gadas. A d em ás, se sigue la p ista de los errores proceso com o al proyecto. En el contexto del proyecto,
detectados durante todas las tareas de ingeniería del el m odelo se puede aplicar recursivam ente a m edida
software. Cuando va evolucionando el software d es que aparece cada actividad estructural. Por consiguien
de la especificación al diseño, se recopilan las m étri te las salidas de una actividad se convierten en las entra
cas técn icas (C apítulos 19 al 24) para ev alu ar la das de la siguiente. Las métricas de resultados se pueden
calidad del d iseño y para proporcionar indicadores utilizar para proporcionar una indicación de la utilidad
que influirán en el enfoque tomado para la generación de los productos de trabajo cuando fluyen de una acti
y prueba del código. vidad (o tarea) a la siguiente.
www.FreeLibros.org
dad, calidad, com plejidad, eficiencia, fiabilidad, facili El dominio de las métricas del software se dividen
dad de m antenim iento y m uchas otras «capacidades» en métricas de proceso, proyecto y producto. También
tratadas en el Capítulo 19. se acaba de destacar que las métricas de producto que
58
CAPÍTULO 4 P R O C E S O DEL SOF TW ARE Y M É T R I C A S DEL P R O Y E C T O
^ ^
A lfa 12,100 24 168 365 134 29
Beta 27.200 62 440 1224 321 86
0ONSEJÓ G am m a 20.200 43 314 1050 256 54
www.FreeLibros.org
4 U i defecto ocurre cuando las actividades de garantía de calidad (p.
ej.: revisiones técnicas form ales) fallan para descubrir un error en un
producto de trabajo generado durante el proceso del software.
59
IN G E N I E R Í A DEL S O F TW A RE . UN EN F O Q U E P R Á C T I C O
□
Se puede obtener información completo sobre los puntos
defunción en: www.ifpug.org N úm ero
de peticiones 4 6
de usuario
□
Los puntos de función se calculan [IFP94] com ple
tando la tab la de la Figura 4.5. Se determ inan cinco Núm ero
de archivos 10 15
características de dominios de inform ación y se pro
porcionan las cuentas en la posición apropiada de la Núm ero
tabla. Los valores de los dominios de inform ación se de interfaces 7 10
externas
definen de la form a siguiente?
Cuenta total
N úm ero de entradas de usuario. Se cuenta cada
entrada de usuario que proporciona diferentes datos
F IG U R A 4.5. Cálculo de puntos de función.
orientados a la aplicación. Las entradas se deberían
diferenciar de las peticiones, las cuales se cuentan de
forma separada. Para calcular puntos de función (P F ), se utiliza la
relación siguiente:
PF = cuenta-total x [0,65 +0,01 x 6 (F ¡)] (4.1)
ve en donde cuenta-total es la suma de todas las entradas
los puntos de función se derivan de medidas PF obtenidas de la figura 4.5.
directasdel dominio de la información. Fy (i = 1 a 14) son «valores de ajuste de la com pleji
dad» según las respuestas a las siguientes preguntas
Número de salidas de usuario. Se cuenta cada salida
[A R T85]:
que proporciona al usuario información orientada a la
aplicación. En este contexto la salida se refiere a infor 1. ¿Requiere el sistem a copias de seguridad y de recu
mes, pantallas, mensajes de error, etc. Los elementos peración fiables?
de datos particulares dentro de un informe no se cuen 2. ¿Se requiere com unicación de datos?
tan de forma separada. 3. ¿Existen funciones de procesam iento distribuido?
Número de peticiones de usuario. Una petición se 4. ¿Es crítico el rendimiento?
define como una entrada interactiva que produce la gene 5. ¿Se ejecutará el sistema en un entorno operativo
ración de alguna respuesta del software inmediata en existente y fuertemente utilizado?
form ade salidainteractiva. Se cuenta cada petición por
6. ¿Requiere el sistema entrada de datos interactiva?
separado.
7. ¿Requiere la entrada de datos interactiva que las
Número de archivos. Se cuenta cada archivo maes
transacciones de entrada se lleven a cabo sobre múl
tro lógico (esto es, un grupo lógico de datos que puede
tiples pantallas u operaciones?
ser una parte de una gran base de datos o un archivo
independiente). 8. ¿Se actualizan los archivos m aestro s de form a
Núm ero de interfaces externas. Se cuentan todas interactiva?
las interfaces legibles por la m áquina (por ejem plo: 9. ¿Son complejas las entradas, las salidas, los archi
archivos de datos de cinta o disco) que se utilizan vos o las peticiones?
para transm itir inform ación a otro sistema. 10. ¿Es complejo el procesam iento interno?
U na vez que se han recopilado los datos anterio 11. ¿Se ha diseñado el código para ser reutilizable?
res, a la cuenta se asocia un v alo r de com plejidad. 12. ¿Están incluidas en el diseño la conversión y la ins
Las organizaciones que utilizan m étodos de puntos talación'?
de función desarrollan crite rio s para d eterm in ar si 13. ¿Se ha diseñado el sistema para soportar m últiples
una en trad a en p a rtic u la r es sim ple, m edia o co m instalaciones en diferentes organizaciones?
pleja. No obstante la determ inación de la com pleji 14. ¿Se ha diseñado la aplicación para facilitar los cam
dad es algo subjetiva. bios y para ser fácilmente utilizada por el usuario?
www.FreeLibros.org
5 En realidad, la definición de los valores del dominio de la informa
ción y la form a en que se cuentan es un poco m ás complejo. El lec
tor interesado debería consultar [1FP94) para obtener más detalles.
60
CAPÍTULO 4 P R O C E S O DEL SO FT W AR E Y M É T R I C A S DEL PRO Y 'E CT O
www.FreeLibros.org
6 Debe señalarse que tam bién han sido propuestas otras extensiones 1 En el capítulo 12 se presenta un estudio detallado de la dim ensión
a los puntos de función para aplicarlas en trabajos de softw are de de com portam ientos que incluyen estados y transiciones de estados.
tiempo real (p.ej., [ALA97]). Sin em bargo, ninguno de estos parece
usarse ampliam ente en la industria.
61
I N GE NI E RÍ A DEL SO FTW AR E. UN E N F O Q U E P R A C T I C O
Para calcular puntos de función 3D, se utiliza la rela El punto de función (y sus extensiones), com o la
ción siguiente: m edida LDC, es controvertido. Los partidarios afirman
que PF es independiente del lenguaje de programación,
índice = I + O + O + F + E + T + R (4.2)
lo cual es ideal para aplicaciones que utilizan lenguajes
en donde I, O, Q, F, E, T y R representan valores con convencionales y no procedim entales; esto se basa en
peso de com plejidad en los elem entos tratados ante los datos que probablem ente se conocen al principio de
riormente: entradas, salidas, peticiones, estructuras de la evolución de un proyecto, y así el PF es m ás atracti
datos internas, archivos externos, transform aciones y vo com o enfoque de estimación.
transiciones, respectivamente. Cada valor con peso de
com plejidad se calcula con la relación siguiente:
S e n te n c ia s
valor con peso de com plejidad = ^ N s s e m á n t¡c a s
= ^ W i ^ N ia Wia + N ih W lh (4.3) P as o s d e ^ s . 1 -6 6 -1 0 11 +
p ro c e s o
i
en donde N ü , N ia y N ¡f¡ representan el núm ero de apa 1 -1 0 B ajo . B ajo M edio
riciones del elem ento / (p. ej.: salidas) para cada nivel
1 1 -2 0 B ajo M edio A lto
de com plejidad (bajo, medio, alto), y W¡j , W ia y W ih
son los pesos correspondientes. El cálculo global de los 21 + M e d io A lto A lto
puntos de función 3D se m uestran en la Figura 4.6.
Se debería señalar que los puntos de función, los pun F IG U R A 4 .6 . Cálculo de los índices de los puntos
tos de característica y los puntos de función 3D repre de función 3D.
sentan lo m ism o — «funcionalidad» o «utilidad»
entregada por el software— . En realidad, cada una de Los detractores afirman que el m étodo requiere algún
estas medidas producen el mismo valor si sólo se con «juego de manos» en el que el cálculo se base en datos
sidera la dim ensión de datos de una aplicación. Para sis subjetivos y no objetivos; y afirman que las cuentas del
temas de tiem po real más complejos, la cuenta de puntos dominio de inform ación (y otras dimensiones) pueden
de característica a m enudo se encuentra entre el 20 y el ser difíciles de recopilar después de realizado, y por últi
35 por lOOmás que la cuenta determ inada sólo con los mo que el PF no tiene un significado físico directo — es
puntos de función. simplemente un número— .
•
Utilice el repaso de los datos de un modo juicioso.
de LDC's, ¿es posible estimar Es bastante mejor calcular los PFutilizando los métodos
el numero de puntos de función? utilizadas anteriormente.
8 Es im portante destacar que la «la individualización de co m p o zación de m anten im ien to podría ob serv ar el tam a ñ o de los pro
www.FreeLibros.org
n e n te s im portantes» se puede in te rp re ta r de m u ch a s m a n e ra s. yectos en relación con los pedidos de cam bio de ingeniería (C api
A lgunos ingenieros del softw are que trab a ja n en un e n to rn o de tulo 9). Una o rg a n iz a c ió n de siste m a s de in fo rm a ció n podría
desarrollo orientado a objetos (C uarta Parte) utilizan ciertas c la o bservar el núm ero de p rocesos de negocio a los que im pacta una
se s u objetos com o m étrica dom in an te del tam a ñ o . Una organi- aplicación.
62
CAPÍTULO 4 P R O C E S O DEL S O F T W A R E Y MÉTRICAS DEL P R O Y E C T O
Una revisión de los datos anteriores indica que una com parar la relación LDC/personas-mes (ó PF/perso-
LDC de C ++proporciona aproximadamente 1,6 veces nas-m es) de un grupo con los datos sim ilares de otro
la «funcionalidad» (de m edia) que una LDC de FO R grupo? ¿Deben los gestores evaluar el rendim iento de
TRAN. Además, una LDC de Visual Basic proporcio las personas usando estas métricas? La respuesta a estas
na 3 veces la funcionalidad de una LDC de un lenguaje preguntas es un rotundo «No». La razón para esta res
de programación convencional. En [JON98] sepresen- puesta es que hay m uchos factores que influyen en la
tan datos más precisos sobre las relaciones entre los PF productividad, haciendo que la com paración de « m an
y las LDC, que pueden ser usados para «repasar» pro zanas y naranjas» sea mal interpretada con facilidad.
gramas existentes, determinando sus medidas en PF (por Se han encontrado los puntos de función y las LDC
ejemplo, para calcular el núm ero de puntos de función basadas en métricas para ser predicciones relativam en
cuando se conoce la cantidad de LDC entregada). te exactas del esfuerzo y coste del desarrollo del soft
Las m edidas LDC y PF se utilizan a m enudo para ware. Sin em bargo, para utilizar LDC y PF en las
extraer métricas de productividad. Esta invariabilidad técnicas de estim ación (capítulo 5), debe establecerse
conduce al debate sobre el uso de tales datos. Se debe una línea base de inform ación histórica.
recopilar muchas m edidas de calidad, el prim er objetivo Un estudio detallado del m arco de trabajo de M cCall
en el proyecto es medir errores y defectos. Las métricas
www.FreeLibros.org
y Cavano, así com o otros factores de calidad, se pre
que provienen de estas m edidas proporcionan una indi sentan en el Capítulo 19. Es interesante destacar que
cación de la efectividad de las actividades de control y casi todos los aspectos del cálculo han sufrido cam bios
déla garantía de calidad en grupos o en particulares. radicales con el paso de los años desde que M cCall y
63
IN GE NIE RIA DEL S O F TW A RE . UN EN F O Q U E P R Á C T I C O
Cavano hicieron su trabajo, con gran influencia,en 1978. a sus usuarios finales— . Cuando la proporción de
Pero los atributos que proporcionan una indicación de desperdicios en el coste global del proyecto (para
la calidad del software siguen siendo los mismos. m uchos proyectos) se representa com o una función
del tiempo, el gestor puede determ inar si la facilidad
total del software producido por una organización de
desarrollo está m ejorando. Se pueden em prender
\iv > acciones a partir de las conclusiones obtenidas de
Sorprendentemente, los factores que definían la calidad esa información.
del software en el año 1970 san los mismos factores Integridad. En esta época de «hackers» y «fire-
que continúan definiendo la calidad del software walls», la integridad del software ha llegado a tener
en la primera década de este siglo. m ucha importancia. Este atributo mide la capacidad
de un sistema para resistir ataques (tanto accidentales
¿Qué significa esto? Si una organización de software
como intencionados) contra su seguridad. El ataque
adopta un ju ego de factores de calidad com o una «lista
se puede realizar en cualquiera de los tres componentes
de comprobación» para evaluar la calidad del softwa
del software: programas, datos y documentos.
re, es probable que el software construido hoy siga exhi
biendo la calidad dentro de las prim eras décadas de este P ara m edir la integridad, se tienen que definir
siglo. Incluso, cuando las arquitecturas de cálculo sufren dos atrib u to s adicionales: am enaza y seguridad.
cambios radicales (como seguramente ocurrirá), el soft Am enaza es la probabilidad (que se puede estim ar
ware que exhibe alta calidad en operación, transición y o deducir de la evidencia em pírica) de que un ata
revisión continuará sirviendo tam bién a sus usuarios. que de un tipo determ inado ocurra en un tiem po
determ inado. La seguridad es la probabilidad (que
se puede estim ar o deducir de la evidencia em p í
4.5.2. M e d id a d e la c a lid a d rica) de que se pueda repeler el ataque de un tipo
Aunque hay m uchas m edidas de la calidad de softwa determ inado. La integridad del sistem a se puede
re, la corrección,facilidad de mantenimiento, integri definir como:
dad, yfa cilid a d de uso proporcionan indicadores Útiles
para el equipo del proyecto. Gilb [GIL88] ha sugerido integridad = X [(1 - amenaza) x (1 - seguridad)]
definiciones y m edidas para cada uno de ellos. donde se suman la am enaza y la seguridad para cada
Corrección. Un program a debe operar correcta tipo de ataque.
mente o proporcionará poco valor a sus usuarios. La
Facilidad de uso. El calificativo«am igable con el
corrección es el grado en el que el software lleva a
usuario» se ha convertido en omnipresente en las dis
cabo su función requerida. La m edida más común de
corrección es defectos p o r K L D C , en donde un cusiones sobre productos de software. Si un programa
no es «amigable con el usuario», frecuentem enteestá
defecto se define como una falta verificada de con
abocado al fracaso, incluso aunque las funciones que
formidad con los requisitos.
realice sean valiosas. La facilidad de uso es un intento
Facilidad de m antenim iento. El mantenimiento de cuantificar «lo amigable que puede ser con el usua
del software cuenta con más esfuerzo que cualquier rio» y se puede m edir en función de cuatro caracte
otra actividad de ingeniería del software. La facili rísticas: (1) habilidad intelectual y/o física requerida
dad de m antenim iento es la facilidad con la que se para aprender el sistema; (2) el tiem po requerido para
puede corregir un program a si se encuentra un error, llegar a ser moderadam enteeficiente en el uso del sis
se puede adaptar si su entorno cambia, o m ejorar si tem a; (3 ) aum ento neto en productividad (sobre el
el cliente desea un cam bio de requisitos. N o hay
enfoque que el sistema reem plaza) m edida cuando
form a de m edir directamente la facilidad de m ante alguien utiliza el sistem am oderadam entey eficiente
nim iento; por consiguiente, se deben utilizar m edi mente; y (4) valoración subjetiva (a veces obtenida
das indirectas. U na simple m étrica orientada al m ediante un cuestionario) de la disposición de los
tiempo es el tiempo medio de cambio (TMC), es decir
usuarios hacia el sistema. En el Capítulo 15 se estu
el tiempo que se tarda en analizarla petición de cam dia más detalladamente este aspecto.
bio, en diseñar una modificación adecuada, en imple-
Los cuatro factores anteriores son sólo un ejemplo
m entar el cam bio, en probarlo y en distribuir el
de todos los que se han propuesto como m edidas de la
cambio a todos los usuarios. Como media, los pro
calidad del software. El Capítulo 19 considera este tema
gram as que se pueden m antener tendrán un TMC
con más detalle.
m ás bajo (para tipos equivalentes de cambios) que
los program as que no son m ás fáciles de mantener.
Hitachi [TAJ81] ha utilizado una m étrica orien 4.5.3. E fica cia d e la E lim in a c ió n d e D e fecto s
www.FreeLibros.org
tada al coste para la capacidad de m antenim iento lla U na m étrica de la calidad que proporciona beneficios
m ada «desperdicios» — el coste en corregir defectos tanto a nivel del proyecto com o del proceso, es la efi
encontrados después de haber distribuidoel software cacia de la eliminación de defectos (E E D ). En esen
64
CAPÍTULO 4 P R O C E S O DEL S OF TW AR E Y M É T R I C A S DEL P R O Y E C T O
cia, EED es una m edida de la habilidad de filtrar las proyecto de software instituya técnicas para encontrar
actividades de la garantía de calidad y de control al todos los errores posibles antes de su entrega.
aplicarse a todas las actividades del m arco de trabajo EED tam bién se puede utilizar dentro del proyecto
del proceso. para evaluar la habilidad de un equipo en encontrar erro
Cuando un proyecto se tom a en consideración glo res antes de que pasen a la siguiente actividad estructu
balmente, EED se define de la forma siguiente: ral o tarea de ingeniería del software. Por ejemplo, la tarea
del análisis de los requisitos produce un m odelo de aná
EED = E / (E + D) (4.4)
lisis que se puede revisar para encontrar y corregir erro
donde E es el núm ero de errores encontrados antes de res. Esos errores que no se encuentren durante la revisión
la entrega del software al usuario final y D es el núm e del m odelo de análisis se pasan a la tarea de diseño (en
ro de defectos encontrados después de la entrega. donde se pueden encontrar o no). Cuando se utilizan en
este contexto, EED se vuelve a definir como:
EED¡ =E¡ /(Ej + E¡ +1) (4.5)
^ ¿Qué es la eficiencia
* de eliminación de defectos? en donde E¡ es el núm ero de errores encontrado duran
te la actividad de ingeniería del software i y E¡ + j es el
núm ero de errores encontrado durante la actividad de
El valor ideal de EED es 1. Esto es, no se han encon ingeniería del software i + 1 que se puede seguir para
trado defectos en el software. De forma realista, D será llegar a errores que no se detectaron en la actividad de
mayor que cero, pero el valor de EED todavía se pue la ingeniería del software i
de aproximar a 1. Cuando E aumenta (para un valor de
D dado), el valor total de EED em pieza a aproximarse
a 1. De hecho, a m edida que E aum enta, es probable
que el valor final de D dism inuya (los errores se filtran Utilice EED como una medido de la eficiencia
antes de que se conviertan en defectos). Si se utilizan de sus primeros actividades de SQA. Si EED es bajo
como una m étrica que proporciona un indicador de la durante el análisis y diseño, emplee olgún tiempo
habilidad de filtrar las actividades de la garantía de la mejorando la forma de conducir los revisiones técnicos
calidad y del control, EED anim a a que el equipo del formales.
www.FreeLibros.org
La advertencia sugerida por los autores se conside m uchas com pañías. Si el proceso por el que se desa
ra de un gran valor, pero los beneficios de la medición rrolla puede ser mejorado, se producirá un impacto direc
son tan convincentes que obligan a realizar este duro to en lo sustancial. Pero para establecer objetivos de
trabajo. mejora, se debe com prender el estado actual de desa-
65
IN GE NI E RI A DEL S O F T W A R E . UN E N F O Q U E P R Á C T I C O
rrollo del software. Por lo tanto la m edición se utiliza (3) las medidas deben ser consistentes,por ejemplo, una
para establecer una línea base del proceso desde donde línea de código debe interpretarse consistentem ente en
se pueden evaluar las mejoras. todos los proyectos para los que se han reunido los datos:
Los rigores del trabajo diario de un proyecto del soft (4)l as aplicacionesdeben ser semejantes para trabajar en
ware no dejan m ucho tiem po para pensar en estrategias. la estimación — tiene poco sentido utilizar una línea base
Los gestores de proyecto de software están m ás preo obtenida en un trabajo de sistemas de información batch
cupados por aspectos m undanos (aunque igualm ente para estimar una aplicación em potrada de tiempo real—.
importantes): desarrollo de estim aciones significativas
del proyecto; producción de sistemas de alta calidad y 4.6.3. C o le c c ió n d e m é tric a s ,c ó m p u to y e v a lu a c ió n
terminar el producto a tiempo. M ediante el uso de m edi
El proceso que establece una línea base se m uestra en la
ción para establecer una línea base del proyecto, cada
Figura 4.7. Idealm ente,los datos necesarios para estable
uno de estos asuntos se hace más fácil de manejar. Ya
cer una línea base se han ido recopilando a medida que se
hem os apuntado que la línea base sirve com o base para
ha ido progresando. Por desgracia, este no es el caso. Por
la estimación. Además, la recopilación de métricas de
consiguiente, la recopilación de datos requiere una inves
calidad permite a una organización «sintonizar» su pro
tigación histórica de los proyectos anteriores para recons
ceso de ingeniería del software para elim inar las causas
truir los datos requeridos. Una vez que se han recopilado
«poco vitales» de los defectos que tienen el m ayor
medidas (incuestionablemente el paso más difícil),el cál
im pacto en el desarrollo del software’.
culo de métricas es posible. Dependiendo de la amplitud
Técnicam ente (en el fondo), las m étricas del soft
de las medidas recopiladas, las métricas pueden abarcar
ware, cuando se aplican al producto, proporcionan bene
una gran gama de métricas LDC y PF, así como métricas
ficios inmediatos. Cuando se ha term inado el diseño del
de la calidad y orientadas al proyecto. Finalmente, las
software, la m ayoría de los que desarrollan pueden estar
métricas se deben evaluar y aplicar durante la estimación,
ansiosos por obtener respuestas a preguntas como:
el trabajo técnico, el control de proyectos y la mejora del
. ¿Qué requisitos del usuario son m ás susceptibles al
proceso. La evaluación de métricas se centra en las razo
cambio? nes de los resultados obtenidos, y produce un grupo de
• ¿Qué módulos del sistema son más propensos a error? indicadores que guían el proyecto o el proceso.
• ¿C óm o se debe planificar la prueba para cada
m ódulo?
• ¿Cuántos errores (de tipos concretos) puede esperar
cuando comience la prueba? los datos de las métricas de línea base deberían
Se pueden encontrar respuestas a esas preguntas si recogerse de una gran muestra representativa
se han recopilado métricas y se han usado com o guía de proyectos de software del pasado.
técnica. En posteriores capítulos examinarem os cóm o
se hace esto.
4.6.2. E s ta b le c im ie n to d e u n a L ín e a B a s e
Estableciendouna línea base de métricas se pueden obte
ner beneficios a nivel de proceso, proyecto y producto (téc
nico). Sin embargo la información reunida no necesita ser
fundamentalmente diferente. Las mismas métricas pueden
servir varias veces. Las líneas base de métricas constan de
datos recogidos de proyectos de software desarrollados
anteriormente y pueden ser tan simples como la tabla mos
trada en la figura 4.4 o tan complejas como una gran base
de datos que contenga docenas de medidas de proyectos
y las métricas derivadas de ellos.
Para ser una ayuda efectiva en la mejora del proceso
y/o en la estimación del esfuerzoy del coste, los datos de
línea base deben tener los siguientes atributos: (1) los datos
deben ser razonablemente exactos —se deben evitar «con
jeturas» sobre proyectos pasados— ; (2) los datos deben FIG U R A 4 .7 . P roceso d e recopilación de m étricas
reunirse del mayor número de proyectos que sea posible; del softw are.
www.FreeLibros.org
9 Estas ideas se han form alizado en un enfoque denom inado garan
tía estadística de calidad del software y se estudian en detalle en el
Capítulo 8.
66
CAPÍTULO 4 P R O C E S O DEL S O F T W A R E Y M É T R I C A S DEL P R O Y E C T O
Uno de los problem as al que se han enfrentado los tra Una vez que estas cuestiones se hayan establecido,
bajadores de las métricas durante las dos últim as déca entonces es cuando puede ser desarrollada una m étrica
das es la de desarrollar métricas que fueran útiles para que pueda ayudar a que se cumpla el objetivo planteado
el diseñador de software. Ha sido toda una historia de que naturalmente emergerá a partir de estas cuestiones.
utilización de la m étrica dentro de los entornos indus La importancia de OPM proviene no solam ente del
triales basada en el simple criterio de lo que era facili hecho de que es uno de los prim eros intentos de desa
tar la m edida, m ás que em plear cualquier criterio rrollar un conjunto de m edidas adecuado que pueda ser
relacionado con la utilidad. El panoram a de la Ultima aplicado al software, sino tam bién al hecho de que está
mitad de los años 80 y la prim era m itad de la década de relacionado con el paradigm a de m ejora de procesos
los 90, constató el hecho de que m ientras había sido que ha sido discutido previamente. Basili ha desarro
desarrolladomucho trabajo en la validación de la m étri llado un paradigm a de m ejora de calidad dentro del cual
ca y en el esclarecim iento de los principios teóricos el m étodo OPM puede encaj arse perfectamente. El para
detrás de ella, muy poco había sido hecho para dotar al digma comprende tres etapas:
diseñador de software con herram ientas para la selec • Un proceso de llevar a cabo una auditoría de un pro
ción o construcción de métricas. yecto y su entorno estableciendo metas u objetivos
El objetivo de esta sección es describir OPM, que es de calidad para el proyecto y seleccionando h erra
casi con certeza el método de desarrollo de métrica más mientas adecuadas y m étodos y tecnologías de ges
ampliamente aplicado y mejor conocidoy que ha sidodesa- tión para que dichos objetivos de calidad tengan una
rrollado por Víctor Basili y sus colaboradores de la Uni oportunidad de cumplirse.
versidad de Maryland. Basili y sus colaboradores tenían
> Un proceso de ejecutar un proyecto y chequear los
ya una larga historia de validación de métricas en la déca
datos relacionados con esas metas u objetivos de cali
da de los 80y el méto’do OPM (objetivo, preguntay métri
dad. Este proceso es llevado a cabo en conjunción
ca) surgió de un trabajo que fue desarrollado dentro de un
con otro proceso paralelo de actuación sobre los pro
laboratorio de ingeniería del software esponsorizado por
pios datos cuando se vea que el proyecto corre peli
la Agencia Americana del Espacio, NASA.
gro de no cum plir con los objetivos de calidad.
Basili establecía que para que una organización tuvie
ra un program a de m edida exacto era necesario que • Un proceso para el análisis de los datos del segundo
tuviera constancia de tres componentes: paso, con el fm de poder hacer sugerencias para una
m ayor m ejora. Este proceso im plicaría el analizar
1. Un proceso donde pudieran articularse metas u obje
los problem as ya en la etapa de recolección de datos,
tivos para sus proyectos.
problem as en la im plementación de las directivas de
2. Un proceso donde estas metas pudieran ser traducidas
calidad y problem as en la interpretación de los datos.
a los datos del proyecto que exactamente reflejasen
dichas metas u objetivos en términos de software. Basili [BAS96] ha proporcionado una serie de plan
3. Un proceso que interpretara los datos del proyecto tillas que son útiles para los desarrolládores que deseen
con el fm de entender los objetivos. utilizar el m étodo OPM para desarrollar métricas rea
listas sobre sus proyectos. Los objetivos de OPM pue
Un ejemplo de un objetivo típico que bien podría ser
den articularse por m edio de tres plantillas que cubren
adoptado por una empresa es que la cantidad de trabajo
el propósito, la perspectiva y el entorno.
de revisión sobre un diseño de sistema debido a pro
La plantilla o esquem a de cálculo denom inada de
blemas que fueran descubiertos por los programadores
propósito se utiliza para articular o com parar lo que está
se redujera al 80 por ciento.
siendo analizado y el propósito de dicha parte del pro
A partir de este ejemplo de objetivo emerge un cier
yecto. Por ejem plo, un diseñador puede desear analizar
to número de preguntas típicas cuya contestaciónpodría
la efectividad de las revisiones de diseño con el propó
ser necesaria para clarificar los objetivos y por consi
sito de mejorar la tasa de elim inación de errores de dicho
guiente el desarrollo de una m étrica. Un conjunto de
proceso o el propio diseñador puede desear analizar las
ejemplosde estas preguntas, se exponen a continuación:
norm as utilizadas por su em presa con el objetivo de
• ¿Cómo realizar la cuantificación de los trabajos de reducir la cantidad de mano de obra utilizada durante
revisión? el mantenimiento. Una segunda plantilla está relacio
• ¿Debería ser tenido en cuenta el tam año del producto nada con la perspectiva. Esta plantilla pone su atención
en el cálculo de la dism inución de trabajos de revi en los factores que son importantes dentro del propio
sión o revisiones? proceso o producto que está siendo evaluado. Ejemplos
• Debería ser tenido en cuenta el incremento de mano típicos de esto incluyen los factores de calidad de la
www.FreeLibros.org
de obra de programación requerida para validaciones mantenibilidad, chequeo, uso y otros factores tales como
suplementariasy trabajos de rediseño en comparación el coste y la corrección. Esta plantilla se fundamenta en
con el proceso actual de validar un diseño corriente. la perspectiva del propio proceso al que se dirige.
67
IN GE NI E RI A DEL S O F TW A RE . UN E N F O Q U E P R Á C T I C O
Hay varios enfoques que pueden hacerse sobre el pro teca de softw are reutilizable. E n este estudio se d a el so ft
ceso de desarrollo de software - e l del cliente y el del w are d e n u e stra á rea d e a p licació n p rincipal; que es la de
control de inventarios.
diseñador son los dos más típicos— y la elección de una
u otra perspectiva tiene un efecto muy grande sobre los Aquí, el propósito es la m ejora de un estándar de pro
análisis que se llevan a cabo. Por ejemplo, si un cierto gramación; la perspectiva es la de la reutilización bajo
proceso como una revisión de requisitos está siendo ana el punto de vista del personal encargado de la adm inis
lizada con respecto al coste, la perspectiva del diseñador, tración de una biblioteca de software reutilizable, y el
es la del que desea reducir el coste del proceso en térm i entorno son todos aquellos proyectos que im pliquen
nos de hacerlo más eficiente en cuanto a la detección de funciones de control de inventarios.
errores; sin embargo, si después examinamos el mismo Otro ejemplo adicional es el siguiente:
propósito pero desde el punto de vista del cliente, con D eseam os exam inar el efecto de utilizar un constructor de
cretamente sobre si su personal puede em plear o no una interfaces g ráficas, sobre la m ejora de las interfaces hom bre-
gran cantidad de tiempo en dichas revisiones, entonces m áquina, que producim os para nuestros sistem as de adm inis
la perspectiva podría involucrar el plantearse un uso más tración. E n particular, deseam os ex am in ar cóm o puede esto
afectar a la facilidad de m anejo de estas interfacespor parte del
eficiente de dicho tiem po empleado en las revisiones.
usuario. U n foco de atención principai es cóm o percibirán los
Ambas perspectivas son válidas -a- veces se solapan y usuarios de estos sistem as que dichas interfaces han cam biado.
a veces son antitéticas— existe, por ejemplo, una nece
sidad natural en el diseñador de m axim izar el beneficio Aquí, el propósito es analizar una herramienta-con
a la vez que el objetivo del cliente es la corrección máxi el objetivo de determ inar una m ejora con respecto a la
m a del producto y la entrega dentro del plazo. Un punto facilidad de uso, bajo el punto de vista del usuario den
im portante a recalcar es que del examen de la perspecti tro del contexto de los sistem as adm inistrativos. Un
va del producto, el desarrolladorestá en una mejor posi ejemplo final es el siguiente:
ción para evaluar un proceso de software y un producto N u e stro o bjetivo es ex am in ar el p roceso de c h eq u e o de
m ódulos de código de form a que podam os utilizar los resulta
de software y también la mejora de los mismos.
dos de las com probaciones con el fin de predecir el núm ero de
Una tercera plantilla implica el entorno. Este es el con defectos de código en com probaciones futuras. L a perspecti
texto dentro del cual el m étodo OPM se aplica e implica va que deseam os tener surge de una preocupación sobre el exce
el examen del personal, la propia empresa y los entornos so de errores que se han com etido y que no han sido detectados
de recursos en los que el análisis se está llevando a cabo. hasta el chequeo del sistem a. D eseam os ver qué factores son
Factores típicos de entorno incluyen, por ejemplo, el tipo im portantes que perm itan que u n program ador tom e decisio
nes sobre si un m ódulo está disponible para ser entregado a los
de sistema informático que está siendo usado, las habili
probadores del sistem a, o por el contrario requiere una com
dades del personal implicado en el proyecto, el m odelo probación adicional. D eseam os concentram osen nuestro m ode
de ciclo de vida adoptado para tal caso, la cantidad de lo de ciclo de vida actual con program adores que utilizan el
recursos adiestrados disponibles y el área de aplicación. lenguaje de program ación FO R TR A N .
Una vez que tanto el propósito como la perspectiva Aquí, el objetivo es la predicción, el análisis de un
y el entorno de un objetivo han sido bien especificados, proceso — el de chequeo de código — la perspectiva es
el proceso de planteamiento de cuestiones y el desarro la de reducción de costes a través d e una reducción del
llo de una m étrica o valoración puede comenzar. Antes núm ero de errores residuales, que se deslizan dentro del
de exam inar este proceso, merece la pena dar algunos propio chequeo del sistema. La perspectiva es desde el
ejemplos de objetivos empleados en los térm inos plan punto de vista del program ador y el entorno el de los
teados. El prim ero se describe a continuación: proyectos convencionales que utilizan el lenguaje de
El o b jetivo es analizar los m edios por los que revisam os program ación FORTRAN.
el có d ig o de p ro g ram ació n con el propósito d e e v a lu a r la La plantilla propósito se utiliza para definir lo que
efectividad en la detección de errores desde el punto de v is
está siendo estudiado: podría ser un proceso, un pro
ta del g e sto r del proyecto de softw are d entro de lo s proyec
tos que sum inistran program as críticos bajo el punto de vista
ducto, un estándar o un procedimiento. La plantilla tam
de la seguridad. bién define lo que se va a hacer, y la razón de hacerlo.
La perspectiva tiene el objetivo de asegurar que los obje
En el ejemplo planteado, el propósito es la evalua tivos no son demasiado ambiciosos: al final del día el
ción, la perspectiva es la elim inación de defectos bajo método OPM requerirá la realización de m edidas y estas
el punto de vista del gestor de proyectos dentro del m edidas y los datos estadísticos asociados serán sólo
entorno de aplicaciones en los que la seguridad es un efectivos cuanto más grande sea el número de factores
aspecto crítico. Otro ejemplo es: dentro de un nivel razonable. La plantilla del entorno
N o so tro s d eseam os ex am in ar la efectiv id ad de las n o r tiene una función similar: reduce el factor de espacio y
m as de program ación que usam os para el lenguaje de pro
perm ite que sean hechas com paraciones estadísticas
gram ación C + +, con el fin de d e te rm in a r si son efectiv os en
efectivas entre procesos y productos.
la producción de softw are, que pueda ser reutilizado dentro
www.FreeLibros.org
de otros proyectos. E n particular, estam os interesados en lo Con el fin de term inar esta sección es provechoso
que se necesita con el fin de organizarefectivam ente un depar analizar el m étodo OPM en acción sobre un pequeño
tam ento nuevo encargado de el m antenim iento de una bib lio ejemplo, con el siguiente objetivo de proceso:
68
CAPÍTULO 4 P R O C E S O DEL S O F T W A R E Y M É TR IC A S DEL P R O Y E C T O
Analícese el proceso de confección de prototipos con el pro una com plejidad ponderada C ¡ . Entonces el tam año de
pósito de evaluar desde el punto de vista del desarrollador, el los requisitos totales será:
número de requisitos que se rechazan por el cliente en una últi
n
ma etapa del proyecto.
Debido a que el proceso de software y el producto que to no será la m ism a que otras métricas similares selec
tal proceso produce son am bos influenciados por cionadas para otro proyecto. En efecto, hay a m enudo
mucho's parám etros (por ejem plo: el nivel de habili variaciones significativas en las métricas elegidas como
dad de los realizadores de dichos procesos, la estruc parte del proceso de software.
tura del equipo de softw are, el con o cim ien to del Puesto que la misma métrica de procesos variará de un
www.FreeLibros.org
cliente, la tecnología que va a ser im plem entada, las proyecto a otro proyecto, ¿cómo podem os decir si unos
herramientas que serán usadas en la actividad de desa valores de métricas m ejoradas (o degradadas) que ocu
rrollo), la m étrica elegida para un proyecto o produc rren como consecuencia de actividades de mejora están
69
I N GE NI E RÍ A DEL S O F T W A R E . UN E N F O Q U E P R Á C T I C O
de hecho teniendo un impacto cuantitativo real? ¿Cómo 1. Calcular los rangos móviles: el valor absoluto de las
saber si lo que nosotros estamos contemplando es una ten diferencias sucesivas entre cada pareja de puntos de
dencia estadísticam ente válida o si esta «tendencia» es datos... Dibujar estos rangos móviles sobre el gráfico.
simplementeel resultado de un ruido estadístico? ¿Cuán 2. Calcular la m edia de los rangos m óviles... dibujando
do son significativos los cambios (ya sean positivos o ésta («barra Rm») com o la línea central del propio
negativos) de una m étrica de software particular? gráfico.
3. M ultiplicar la m edia por 3.268. D ibujar esta línea
com o el límite de control superior [LCS]. Esta línea
supone tres veces el valor de la desviación estándar
. i mensos paro la gestión
por encim a de la media.
, áJ, «tfjrígbfos, Afe lodo logue lio;,
U sando los datos representados en la figura 4 .8 y los
venación.
distintos pasos sugeridos por Z ultner com o anterior
B M p i i ’v
m ente se ha descrito, desarrollam os un gráfico de co ni
tral Rm que se muestra en la Figura 4.9. El valor (medio)
Se dispone de una técnica gráfica para determ inar si «barra Rm» para los datos de rango m óvil es 1.71. El
los cambios y la variación en los datos de la m étrica son límite de control superior (LCS) es 5.57.
significativos. Esta técnica llam ada gráfico de control
y desarrollada por W alter Shewart en 1920 ", permite
que los individuos o las personas interesadas en la m ejo
ra de procesos de software determ ine si la dispersión Sí m podemos contar señales desde el ruido, como
(variabilidad)y «la localización» (media móvil) o m étri sobremos si los cambios en el proceso son mejoras-
cisio n e .
ca de procesos que es estable (esto es, si el proceso exhi
Richard Zuttner
be cam bios controlados o sim plem ente naturales) o
inestable (esto es, si el proceso exhibe cambios fuera Para determ inar si la dispersión de las m étricas del
de control y las m étricas no pueden usarse para prede proceso es estable puede preguntarse una cuestión muy
cir el rendim iento). Dos tipos diferentes de gráficos de sencilla: ¿Están los valores de rango móvil dentro del
control se usan en la evaluación de los datos m étricos LC S? Para el ejem plo descrito anteriorm ente, la con
[ZUL99]: (1) el gráfico de control de rango móvil (Rm) testación es «sí». Por consiguiente, la dispersión de la
y (2) el gráfico de control individual. m étrica es estable.
Para ilustrar el enfoque que significa un gráfico de El gráfico de control individual se desarrolla de la
control, consideremos una organización de software que m anera siguiente":
registre en la métrica del proceso los errores descubiertos
1. Dibujar los valores de la m étrica individual según se
por hora de revisión, E,. Durante los pasados 15 meses,
describe en la Figura 4.8.
la organización ha registrado el E,. para 20 pequeños
proyectos en el m ism o dom inio de desarrollo de soft 2. Calcular el valor prom edio, A,, para los valores de
ware general. Los valores resultantes para E están repre la métrica.
sentados en la figura 4.8. Si nos referim os a la figura, 3. M ultiplicar la m edia de los valores Rm (la barra Rm)
E, varía desde una tasa baja de 1.2 para el proyecto 3 a por 2.660 y añadir el valor de A, calculado en el paso
una tasa m ás alta de 5.9 para el proyecto 17. En un 2. Esto da lugar a lo que se denom ina límite de p r o
esfuerzo de m ejorar la efectividad de las revisiones, la ceso natural superior (LPNS). Dibujar el LPNS.
organización de software proporcionaba entrenam ien 4. M ultiplicar la m edia de los valores Rm (la barra Rm)
to y asesoram iento a todos los m iem bros del equipo del por 2.660 y restar este valor del A, calculado en el
proyecto, com enzando con el proyecto 11. paso 2. Este cálculo da lugar al lím ite de pro ceso
natural inferior (LPNZ). Dibujar el LPNI. Si el LPNI
es m enor que 0.0, no necesita ser dibujado a m enos
¿Cómo podemos estar que la m étrica que está siendo evaluada tome valo
seguros de que las métricas res que sean m enores que 0.0.
que hemos recopilado son
5 C alcular la desviación estándar según la fórm ula
estadísticamente validas?
(LPNS - A m)/3. D ibujar las líneas de la desviación
estándar una y dos por encim a y por debajo de A,.
R ichard Zultner proporciona una vista general del Si cualquiera de las líneas de desviación estándar es
procedim iento que se requiere para desarrollar un grá m enor de 0.0, no necesita ser dibujada a m enos que
fic o de control de rango móvil (Rm) para determ inar la la m étrica que está siendo evaluada tome valores que
estabilidad del proceso [ZUL99]: sean m enores que 0 .0 .
www.FreeLibros.org
10 D ebería ten e rse en cu en ta que aunque el gráfico de control fue
desarrollado originalm ente para procesos de fabricación e s igual ' 1El estudio que sigue es un resum en de los pasos sugeridos por Zult
m ente aplicable a procesos de softw are. ner [ZUL991- " "
70
CA PÍ T U L O 4 P R O C E S O DEL SO F TW AR E Y M ÉT RI CA S DEL P R O Y E C T O
FIGURA 4.8. Datos de m étricas para descubrir errores F IG U R A 4 .9 . Gráfico de control de rango m óvil (Rm),
por hora de revisión.
Referencia
Se puede encontrar un Gráfico de Control Común
que cubre el tema en alguna dimensión en: Proyectos
www.sytsma.com/tqmtools/ctlchf principles.html F IG U R A 4 .1 0 . Gráfico de control individual.
La amplia m ayoría de las organizaciones de desarrollo [KAU99] describe un escenario típico que ocurre cuan
de software tienen m enos de 20 personas dedicadas al do se piensa en program as m étricos para organizacio
software. Es poco razonable, y en la mayoría de los casos nes pequeñas de software:
no es realista, esperar que organizaciones com o éstas Originalmente, los desarrolladoresde software acogían nues
desarrollen program as métricos de software extensos. tras actividadescon un alto grado de escepticism o,pero al final
Sin embargo, si que es razonable sugerir que organiza las aceptaban debido a que nosotros conseguíam os que nues
tras m edidas fueran sim ples de realizar.adaptadas a cada orga
ciones de software de todos los tam años m idan y des
nización y se a seg u rab a que d ichas m edidas pro d u cían una
www.FreeLibros.org
pués utilicen las m étricas resultantes para ayudar a inform ación válida y útil. Al final, los program as proporcio
mejorar sus procesos de software local y la calidad y naban una base para encargarse d e los clientes y para la plani
oportunidad de los productos que realizan. Kautz ficación y desarrollo de su trabajo futuro.
71
IN GE NI ER ÍA DEL S O F TW A RE . UN E N F O Q U E P R A C T I C O
www.FreeLibros.org
9. Identificar las acciones que serán tom adas para
subobjetivos. mejorar las m edidas indicadas.
5. Form alizar los objetivos de la medición. 10. Preparar un plan para im plem entar estas medidas.
72
CAPÍTULO 4 P R O C E S O DEL S O F T W A R E Y M É T R I C A S DEL P R O Y E C T O
La medición perm ite que gestores y desarrolladores to se utilizan para calcular las m étricas del so ftw a
mejoren el proceso del softw are, ayuden en la p la re. E stas m étricas se pueden an alizar para p ro p o r
nificación, seguim iento y control de un proyecto de cionar indicadores que guían acciones de gestión y
www.FreeLibros.org
software, y evalúen la calid ad del pro d u cto (so ft técnicas.
ware) que se produce. Las m edidas de los atributos Las m étricas del proceso perm iten que una o rg a
específicos del proceso, del proyecto y del produc- nización tom e una visión estratégica p ro p o rcio n an
73
IN GE NI ER ÍA DEL S O F T W A R E . UN EN F O Q U E P R Á C T I C O
do m ayor profundidad de la efectividad de un proce áreas de proceso del software que son la causa de los
so de software. Las m étricas del proyecto son tá c ti defectos del software.
cas. Estas perm iten que un gestor de proyectos adapte Las m étricas tienen significado solo si han sido
el enfoque a flujos de trabajo del proyecto y a pro exam inadas para una v alid ez estadística. El gráfico
yectos técnicos en tiem po real. de control es un m étodo sencillo para realizar esto y
Las métricas orientadas tanto al tam año com o a la al m ism o tiem po exam inar la variación y la localiza
función se utilizan en toda la industria. Las m étricas ción de los resultados de las m étricas.
orientadas al tam año hacen uso de la línea de código La m edición produce cam bios culturales. La reco
com o facto r de norm alización para o tras m ed id as, pilación de datos, el cálculo de métricas y la evaluación
com o persona-m es o defectos. E l punto de función de métricas son los tres pasos que deben implementar-
proviene de las m edidas del dom inio de inform ación se al com enzar un program a de métricas. En general,
y de una evaluación subjetiva de la com plejidad del un enfoque orientado a los objetivos ayuda a una orga
problema. nización a centrarse en las métricas adecuadas para su
Las m étricas de la calid ad del so ftw are, com o negocio. Los ingenieros del software y sus gestores pue
m étricas de productividad, se centran en el proceso, den obtener una visión m ás profunda del trabajo que
en el proyecto y en el producto. D esarrollando y ana realizan y del producto que elaboran creando una línea
lizan d o u na lín ea base de m étricas de ca lid a d , una base de m étricas - u n a base de datos que contenga
organización puede actuar con objeto de corregir esas mediciones del proceso y del p r o d u c to - . "
[ALA97] Alain, A., M. Maya, J. M. Desharnais y S. St. Pie- [IEE93] IEEE Software Engineering Standards, Std. 610.12-
rre, «Adapting Function Points to Real-Time Software», 1990,pp. 47-48.
American Programmer, vol. 10,n.e 11,Noviembre 1997,
[IFP94] Function Point Counting Practices Manual, Release
pp. 32-43.
4.0, IntemationalFunction Point Users Group (IFPUG), 1994.
[ART85] Arthur, L. L,M easuring Programmer Productivity
[JON86] Jones, C., Programming Productivity, McGraw-Hill,
and Software Quality, Wiley-Interscience, 1985.
1986. '
[ALB79] Albrecht, A. ]., «Measuring Application Develop-
[JON91] Jones, C., Applied Software Costs, McGraw-Hill,
ment Productivity», Proc. IBM Application Development.
1991.
Symposium, Monterey, CA, Octubre 1979, pp. 83-92.
[JON98] Jones, C., Estimating Software Costs, McGraw-Hill,
[ALB83] Albretch, A. J., y J. E. Gaffney, «Software Func
1998. ’
tion, Source Lines of Code and Development Effort Pre-
diction: A Software Science Validation», IEEE Trans. [KAU99] Kautz, K., «Making Senseof Measurement for Small
Software Engineering, Noviembre 1983, pp. 639-648. Organizations»,/®??? Software, Marzo 1999,pp. 14-20.
[BOE81] Boehm, B ., Software Engineering Economics, Pren- [MCC78] McCall, J. A., y J. P. Cavano, «AFramework for
tice Hall, 1981. the Measurement of Software Quality», ACM Software
QualityAssurance Workshop,Noviembre 1978.
[GRA87] Grady,R.B., y D.L. Caswell,Software Metrics: Esta-
blishing a Company-Wide Program, Prentice-Hall, 1987. [PAU94] Paulish, D., y A. Carleton, «Case Studies of Soft
ware Process Improvement Measurement», Computer, vol.
[GRA92] Grady, R.G., Practical Software Metrics fo r Pro- 27, n.° 9, Septiembre 1994, pp. 50-57.
je ct. Management and Process Improvement, Prentice-Hall,
1992. [PAR96] Park, R. E., W. B. Goethert y W. A. Florac, Goal
Driven Software Measurement-A Guidebook, CMU/SEI-
[GRA94] Grady, R., «Succesfully Applying Software 96-BH-002, Software Engineering Institute, Carnegie
Metrics», Computer, vol. 27, n.° 9, Septiembre 1994,pp. Mellon University, Agosto 1996.
18-25.
[RAG95] Ragland, B., «Measure. Metnc or Indicator: What'c
[GRA99] Grable,R., et al., «Metrics for SmallProjects: Expe- the Difference?», Crosstalk, vol. 8, n.° 3, Marzo 1995,
riences at SED»,IEEE Software, Marzo 1999,pp. 21-29. pp. 29-30.
[GIL88] Gilb, T., Principies o f Software Project M anage [TAL81] Tjima, D., y T. Matsubara, «The Computer Software
ment, Addison-Wesley, 1998. Industry in Japan», Computei; Mayo 1981,p. 96.
[HET93] Hetzel, W., Making Software Measurement Work, [WHI95] Whitmire, S. A., «An Introduction to 3D Function
QED Publishing Group, 1993. Points», Software Development, Abril 1995,pp. 43-53.
www.FreeLibros.org
[HUM95] Humphrey, W.,,4 D iscipline fo r Software E ngi [ZUL99] Zultner, R. E., «What: Do Our M etrics Mean?»,
neering, Addison-Wesley, 1995. Cutter IT Journal, vol. 12,n.° 4, Abril 1999,pp. 11-19.
74
CAPÍTULO 4 P R O C E S O DEL S O F T W A R E Y MÉ TR IC A S DEL P R O Y E C T O
4.8. ¿Qué es una medida indirecta y por qué son comunes tales 4.14. McCall y Cavano (Sección 4.5.1) definen un «marco de
cambios en un trabajo de métricas de software? trabajo» de la calidad del software. Con la utilización de la
información de este libro y de otros se amplían los tres «pun
4.9. El equipo A encontró 342 errores durante el proceso de tos de vista» importantes dentro del conjunto de factores y de
ingenieríadel software antes de entregarlo. El equipo B encon métricas de calidad.
tró 184 errores. ¿Qué medidas adicionales se tendrían que
tomar para que los proyectos A y B determinen qué equipos 4.15. Desarrolle sus propias métricas (noutilice las presenta
elimináronlos errores más eficientemente?¿Qué métricas pro das en este capítulo) de corrección, facilidad de mantenimiento,
pondrían para ayudar a tomar determinaciones? ¿Qué datos integridad y facilidad de uso. Asegúrese de que se pueden tra
históricos podrían ser útiles? ducir en valores cuantitativos.
4.16. ¿Es posible que los desperdicios aumenten mientras que
4.10. Presente un argumento en contra de las líneas de códi
disminuyen defectos/KLDC? Explíquelo.
go como una medida de la productividad del software. ¿Se va
a sostener su propuesta cuando se consideren docenas o cien 4.17. ¿Tiene algún sentido la medida LDC cuando se utiliza
tos de proyectos? el lenguaje de cuarta generación? Explíquelo.
4.11. Calcule el valor del punto de función de un proyecto con 4.18. Una organización de software tiene datos EED para 15
las siguientes características del dominio de información: proyectos durante los 2 últimos años. Los valores recogidos
son: 0.81,0.71, 0.87, 0.54, 0.63, 0.71, 0.90, 0.82, 0.61, 0.84,
Número de entradas de usuario: 32
0.73,0.88, 0.74,0.86, 0.83. Cree Rm y cuadros de control indi
Número de salidas de usuario: 60 viduales para determinar si estos datos se pueden utilizar para
Número de peticiones de usuario: 24 evaluar tendencias.
La mejora del proceso del software (MPS) ha recibido una Garmus, D., y D. Elerron, Measuring the Software Pro
significativa atención durante la pasada década. Puesto que cess: A Practical Guide to Functional Measurements, Pren-
la medición y las métricas del software son claves para con tice-Hall, 1996.
seguir una mejora del proceso del software, muchos libros Kan, S. H.,M etrics andModels in Software Quality Engi
sobre MPS también tratan las métricas. Otras lecturas adi neering, Addison-Wesley, 1995.
cionales que merecen la pena incluyen: Humphrey [HUM95], Yeh (Software Process C ontrol,
Burr, A., y M. Owen,Statistical M ethosfor Software Qua- McGraw-Hill, 1993), Hetzel [HET93] y Grady [GRA92] estu
www.FreeLibros.org
lity, International Thomson Publishing, 1996. dian cómo se pueden utilizar las métricas del software para pro
Florac, W. A., y A. D. Carleton,Measuring the Software porcionar los indicadores necesarios que mejoren el proceso
Process: Statistical Process Control for Software Process del software. Putnam y Myers (Executive Briefing: Controlling
lmprovement, Addison-Wesley, 1999. Software Development, IEEE Computer Society, 1996) y Pul-
75
IN GE NI E RÍ A DEL S OFT W ARE . UN E N F O Q U E PR AC T I C O
f o r d y sus c o le g a s (AQuantitative Approach to Software Mana c a s d e l so ftw a re . Parky o tro s [P A R 9 6 ] h a n d e s a rro lla d o u n a
gement, A d d iso n -W e sle y , 1 9 9 6 )e s tu d ia n la s m é tric a s d e l p r o g u ía d e ta lla d a q u e p ro p o rc io n a p a so a p a so su g e re n c ia s p a ra
c e so y su u s o d e sd e e l p u n to d e v is ta d e la g e stió n . i n s t it u i r u n p r o g r a m a d e la s m é t r i c a s d e l s o f tw a r e p a r a la
W e in b e rg ( Quality Software Management, Volume2: First m e jo ra d e l p ro c e s o d e l so ftw a re .
OrderMeasurement, D o rs e t E louse, 1 9 9 3 )p re s e n ta u n m o d c - L a h o ja in fo rm a tiv a /7 ’Metrics (E d ita d a p o r E lo w a rd R u b in
lo ú til p a ra o b s e rv a r p ro y e c to s d e so ftw a re , a s e g u rá n d o s e e l y p u b lic a d a p o r lo s S e r v ic io s d e In fo rm a c ió n C u tte r) p r e s e n
sig n ific a d o d e la o b s e rv a c ió n y d e te rm in a n d o e l sig n ific a d o ta c o m e n ta r io s Ú tiles so b re e l e s ta d o d e la s m é tric a s d e l s o ft
d e la s d e c is io n e s tá c tic a s y e s tra té g ic a s . G a rm u s y H e r r o n w a re e n la in d u stria . L a s re v is ta s Cutter I T Journal y Software
(Measuring the Software Process, P re n tic e -H a ll, 1996) tra ta Development tie n e n h a b itu a lm e n te a r tíc u lo s y c a r a c t e r í s t i
la s m é tric a s d e l p ro c e s o e n e l a n á lis is d e l p u n to d e fu n c ió n . c a s c o m p le ta s d e d ic a d a s a la s m é t r i c a s d e l s o f tw a re .
E l S o ftw a re P ro d u c tiv ity C o n s o rtiu m ( The Software Measu E n I n te m e t e s tá n d is p o n ib le s u n a g ra n v a rie d a d d e f u e n
rement Guidebook, T h o m s o n C o m p u te r P r e s s , 1 9 9 5 ) p r o - te s d e in f o r m a c ió n r e la c io n a d a s c o n te m a s d e l p ro c e s o d e l
p o rc io n a su g e re n c ia s ú tile s p a ra in stitu ir u n e n fo q u e e fe c tiv o so ftw a re y d e la s m é tric a s d e l so ftw a re . S e p u e d e e n c o n tra r
d e m é tric a s. O m a n y P f le e g e r (Applying Software Metrics, u n a lis ta a c tu a liz a d a c o n r e fe r e n c ia s a s itio s ( p á g in a s ) w e b
I E E E C o m p u te r S o c ie ty P re s s , 1997) h a n e d ita d o u n a e x c e q u e s o n r e le v a n te s p a r a e l p ro c e s o d e l S o ftw a re y p a ra las
le n te a n to lo g ía d e d o c u m e n to s im p o rta n te s so b re la s m é tr i m é tric a s d e l p ro y e c to e n http://www.pressman5.com.
www.FreeLibros.org 76
C A PÍT U L O
PLANIFICACIÓN DE PROYECTOS
5 DE SOFTWARE
A gestión de un proyecto de software com ienza con un conjunto de actividades que glo
L balmente se áenom m anplanificación del proyecto. Antes de que el proyecto com ience,
el gestor y el equipo de software deben realizar una estim ación del trabajo a realizar, de
los recursos necesarios y del tiem po que transcurrirá desde el comienzo hasta el final de su re
lización. Siem pre que estim am os, estam os m irando hacia el futuro y aceptam os resignados
cierto grado de incertidumbre.
Aunque la estim ación es m ás un arte que una ciencia, es una actividad im portante que no
debe llevarse a cabo de forma descuidada. Existen técnicas Utiles para la estim ación del esfuer
zo y del tiempo. Las métricas del proyecto y del proceso proporcionan una perspectiva histó
rica y una potente introducción para generar estim aciones cuantitativas. La experiencia anterior
(de todas las personas involucradas) puede ayudar en gran m edida al desarrollo y revisión de
las estimaciones. Y, dado que la estim ación es la base de todas las demás actividades de pla
nificación del proyecto, y que sirve com o guía para una buena ingeniería del software, no es en
absoluto aconsejable embarcarse sin ella.
V IS T A Z O R Á P ID O
www.FreeLibros.org 77
I N G E N IE RÍ A DEL S O F TW A RE . UN E N F O Q U E P R Á C T I C O
1 Eli el Capítulo 6 se presentan técnicas sistem áticas para el análisis 3 Esto no significa que siem pre sea aceptable políticam ente modifi
del riesgo. car las estim aciones iniciales. Una organización de software m adura
www.FreeLibros.org
2 El tam año se incrementa con frecuenciadebidoal c am b io del ámbito» y sus gestores reconocen que el cam bio n o e s libre. Y sin em bargo
que ocurre cuando el cliente modifica los requisitos. El increm ento del m uchos clientes solicitan (incorrectam ente) que una vez realizada la
tam año del proyecto puede tener un impacto geométrico en el coste y estim ación debería m antenerse independientem ente de que las cir
en la planificación del proyecto [MAH96], cunstancias cam bien.
78
CAPÍTULO 5 P L A N I F I C A C I Ó N DE P R O Y E C T O S DE S O F T W A R E
La primera actividad de la planificación del proyecto de tado; ambos están pensando hasta dónde podrían llegar
software es determinar el ámbito del software. Se deben (probablemente los dos tienen aquí diferentes expecta
evaluar la función y el rendim iento que se asignaron al tivas); ambos quieren quitárselo pronto de encima; pero
software durante la ingeniería del sistema de com puta al mismo tiem po quieren que salga bien.
dora (Capítulo 10), para establecer un ám bito de pro
¿Cómo debería empezar la
yecto que no sea am biguo, ni incom prensible para
directivos y técnicos. Se debe delimitar la declaración
del ámbito del software.
§ comunicación entre el
desarrollador y el cliente?
El ámbito del softw are describe el control y los
datos a procesar, la función, el rendim iento, las res Sin embargo, se debe iniciar la comunicación. Gau-
tricciones, las interfaces y la fiabilidad. Se evalúan las se y Weinberg [GAU89] sugieren que el analista comien
funciones descritas en la declaración del ám bito, y en ce haciendo preguntas de contexto libre. Es decir, una
algunos casos se refinan para dar m ás detalles antes serie de preguntas que lleven a un entendim iento bási
del comienzo de la estim ación. Dado que las estim a co del problema, las personas que están interesadas en
ciones del coste y de la planificación tem poral están la solución, la naturaleza de la solución que se desea y
orientadas a la función, m uchas veces es Útil llegar a la efectividad prevista del prim er encuentro.
un cierto grado de descom posición. Las consideracio El prim er conjunto de cuestiones de contexto libre se
nes de rendim iento abarcan los requisitos de tiem po centran en el cliente, en los objetivos globales y en los
de respuesta y de procesam iento. L as restricciones beneficios. Por ejemplo, el analista podría preguntar:
identifican los límites del software originados por el . ¿Quién está detrás de la solicitud de este trabajo?
hardware externo, por la m em oria disponible y por • ¿Quién utilizará la solución?
otros sistemas existentes. . ¿Cuál será el beneficio económico de una buena solu
ción?
5.3.1. O b ten ció n d e la in fo r m a c ió n n e c e s a r ia . ¿Hay otro cam ino para la solución?
para el ám b ito Las preguntas siguientes perm iten que el analista
Al principio de un proyecto de software las cosas siem com prenda m ejor el problem a y que el cliente exprese
pre están un poco borrosas. Se ha definido una necesi sus percepciones sobre una solución:
dad y se han enunciado las metas y objetivos básicos, . ¿C óm o caracterizaría [el cliente] un resultado
pero todavía no se ha establecido la inform ación nece «correcto» que se generaría con una solución satis
saria para definir el ámbito (prerrequisito para la esti factoria?
mación). • ¿Con qué problem a(s) se afrontará esta solución?
La técnica utilizada con más frecuencia para acercar « ¿Puede m ostrarm e (o describirme) el entorno en el
al cliente y al desarrollador, y para hacer que com ien
que se utilizará la solución?
ce el proceso de com unicación es establecer una reu
. ¿Hay aspectos o limitaciones especiales de rendimiento
nión o una entrevista preliminar. L a prim era reunión
entre un ingeniero de software (el analista) y el cliente que afecten a la form a en que se aborde la solución?
www.FreeLibros.org
puede compararse a la prim era cita entre adolescentes. La últim a serie de preguntas se centra en la efecti
Ninguna persona sabe lo que decir o preguntar; ambos vidad de la reunión. Gause y Weinberg las llaman «meta-
están preocupados por si lo que dicen es mal interpre cuestiones» y proponen la lista siguiente (abreviada):
79
IN GE NI E RÍ A DEL S O F TW A RE . UN EN F O Q U E P R Á C T I C O
www.FreeLibros.org
solo se tienen en cuenta en un proyecto condenado des que deben ser im p lem en tad as, del ren d im ien to y re s
de el comienzo. Putnam y Myers [PUT97a] tratan este tricciones que delim itan el sistem a, y de la inform ación
aspecto cuando escriben: relacionada. C o m o ejem plo, considerem os el softw are
80
CAPÍTULO 5 P L A N I F I C A C I Ó N DE P R O Y E C T O S DE S O F T W A R E
que se debe d esarro llarp ara con tro lar un sistem a de cla • B úsqueda en la base datos.
sificación de cinta tran sp o rtad o ra (SC C T). L a especifi • D eterm inar la posición del com partim ento.
cación del ám bito del SC C T e s la siguiente: • P roducción de la señal de control para el m ecanism o
El sistema de clasificación de cinta transportadora (SC C T )
de m aniobra.
clasifica las cajas que se m ueven por una cinta transportadora.
Cada caja estará identificada por un código de barras que c o n • M antener u n a lista de los destinos de las cajas
tiene un número de pieza y se clasifica en uno de seis com parti En este caso, el rendim iento está determ inado po r la
mentos al final de la cinta. L as cajas pasarán por una estación de
v elocidad de la cinta transportadora. Se tiene que term i
clasificación que consta de un lector de código de barras y un PC.
EL PC de la estación de clasificaciónestá conectado a un m eca nar el procesam iento de cada caja antes de que llegue la
nismo de m aniobra que clasifícalas cajas en los com partim en siguiente caja al lector de código de barras. E l softw are
tos. Las cajas pasan en orden aleato rio y e stán espaciadas del SC C T está lim itado por el hardw are al que tiene que
uniformemente. L a cinta se m ueve a cinco pies por minuto. En acceder— el lector de código de barras, el m ecanism o de
la Figura 5.1 está representadoesquem áticam ente el SCCT.
m aniobra, la com putadora personal (PC)— , la m em oria
El software del SCCT debe recibir inform aciónde entrada de d isp o n ib le y la configuración global de la cin ta tra n s
un lector de código de barras a intervalos de tiem po que se ajus
portadora (cajas uniform em ente espaciadas).
ten a la velocidad de la cinta transportadora.Los datos del códi
go de barras se decodifican al form ato de identificación de caja.
El software llevará a cabo una inspección en la base de datos de ^C O N SE Icljfy.
números de piezas que contiene un m áxim o de 1000 entradas
para determinar la posición del com partim ento adecuada para la Ajuste lo estimación poro reflejar los requisitos
caja que se encuentre actualm enteen el lector (estación de clasi del rendimiento y los restricciones del diseño difíciles,
ficación). La posición correcta del com partim ento se pasará a un Incluso si el ámbito es sencillo.
mecanismo de m aniobra de ordenación que sitúa las cajas en el
lugar adecuado. Se m antendrá una lista con los com partim entos
destino de cada caja para su p osterior recuperacióne inform e. H L a función, el rendim iento y las restricciones se e v a
software del SCCT recibirá tam bién entrada de un tacóm etro de lúan a la vez. U na m ism a función puede p roducir una
pulsos que se utilizará para sincronizar la señal de control del diferencia de un orden de m agnitud en el esfuerzo de
mecanismo de m aniobra. B asándonos en el núm ero de pulsos
desarrollo cuando se considera en un contexto con d ife
que se generen entre la estación de clasificacióny el m ecanism o
rentes lím ites de rendim iento. El esfuerzo y los costes
de maniobra, el software producirá una señal de control para que
la maniobra sitúe adecuadam entela caja. req u erid o s p a ra d esarro lla r el so ftw are S C C T serían
d rásticam en te d iferen tes si la función fu era la m ism a
(por ejem plo: la cinta transportadora siguiese colocan
do cajas en contenedores), pero el rendim iento variará.
Movimiento
de la cinta transportadora r a P or ejem plo, si la velocidad m ed ia de la cin ta tran sp o r
tadora aum entara en un factor de 10 (rendim iento) y las
cajas no estuvieran uniform em ente espaciadas (una re s
tricción), el softw are po d ría ser considerablem ente m ás
HH com plejo - r e q u i r i e n d o ,p o r tanto, un m ay o r esfuerzo
H3 de d e s a r r o llo - . L a fu n ció n , el rendim iento y las re s
tricciones están íntim am ente relacionadas.
1 -0
de control L0 CLAVE
FIGURA 5.1. Un s is te m a d e c la s ific a c ió n d e cin ta Ia consideracióndel ámbito del sofaee debe cortener
tra n s p o rta d o ra . una evaluación de txlas los interfaces externas
El planificador del proyecto exam ina la especificación El softw are interactúa con otros elem entos del sis
del ámbito y extrae todas las funciones im portantes del tem a inform ático. El p lanificador considera la n a tu ra
software. Este proceso, d enom inadodescom posición, se leza y la com plejidad de cada interfaz para determ inar
trató a i el Capítulo 3 y produce com o resultado las fu n cualquier efecto sobre los recursos, los costes y la p la
dones siguientes4: nificación tem poral del desarrollo. El concepto de in ter
fa z a b a rc a lo siguiente: ( 1 ) h a rd w a re (p o r ejem plo:
• Lectura de la entrada del código de barras.
procesador, periféricos) que ejecu ta el softw are y los
• Lectura del tacóm etro de pulsos. dispositivos (por ejem plo: m áquinas, pantallas) que están
• Descodificación de los datos del código de pieza. controlados indirectam ente p o r el softw are; (2) softw a-
www.FreeLibros.org
4 En realidad, la descom posición funcional se hace durante la inge-
niena del sistema (C ap itu ló lo ). El planificador utiliza la inform ación
obtenida a partir de la especificación del sistem a para definir funcio
nes del software.
81
I N G E N IE RÍ A DEL S O F T W A R E . UN E N F O Q U E P R A C T I C O
re ya existente (por ejem plo, rutinas de acceso a una Si se ha desarrollado adecuadamente la especifica
base de datos, componentes de software reutilizables, ción del sistema (véase el Capítulo 10), casi toda la infor
sistemas operativos) que debe ser integrado con el nue m ación requerida para la descripción del ám bito del
vo software; (3) personas que hacen uso del software software estará disponible y docum entada antes de que
por m edio del teclado (terminales) u otros dispositivos comience la planificación del proyecto de software. En
de entrada/salida; (4)procedim ientos que preceden o los casos en los que no haya sido desarrollada la espe
suceden al software en una secuencia de operaciones. cificación, el planificador debe hacer el papel del ana
En cada caso, debe comprenderse claramente la infor lista de sistemas para determ inarlas características y las
m ación que se transfiere a través de la interfaz. restricciones que influirán en las tareas de estimación.
§
¿Cuól es la fuente de
para una consulta más fácil, estandarizarsepara una fácil
información principal para
aplicación y validarse para una fácil integración.
determinar el ámbito?
www.FreeLibros.org
zo se estudiarán después en este m ismo capítulo. ciones, diseños, código o datos de prueba existentes
82
CAPÍTULO 5 P L A N I F I C A C I Ó N DE P R O Y E C T O S DE S O F T W A R E
desarrolladospara proyectos anterioresque son sim i generalmente se aceptan. El plan del proyecto debe
lares al software que se va a construir para el pro ría reflejar la utilización de estos componentes.
yecto actual. Los miembros del equipo de software 3. Si se dispone de componentes de experiencia parcial
actual ya han tenido la experiencia com pleta en el para el proyecto actual, su uso se debe analizar con
área de la aplicación representada para estos com detalle. S i antes de que se integren adecuadamente
ponentes. Las modificaciones, por tanto, requeridas los com ponentes con otros elem entos del software
para componentes de total experiencia, tendrán un se requiere una gran m odificación, proceda cuida
riesgo relativamente bajo. dosamente - e 1riesgo es alto— . El coste de m odi
ficar los componentes de experiencia parcial algunas
veces puede ser m ayor que el coste de desarrollar
* componentes nuevos.
C LA VE
Para que la reutilización sea eficiente, los componentes De form a irónica, a m enudo se descuida la u tili
de software deben estor catalogados, estondorlzodos y zación de com ponentes de softw are re u tilizab le s
validados. durante la planificación, llegando a convertirse en la
preocupación prim ordial durante la fase de desarro
llo del proceso de software. Es m ucho m ejor especi
C om ponentes con experiencia p arcial. Especi
ficar al p rin cip io las necesid ad es de recursos del
ficaciones, diseños, código o datos de prueba exis
software. De esta form a se puede dirigir la evaluación
tentes desarrollados para proyectos anteriores que
técnica de alternativas y puede tener lugar la adqui
se relacionan con el software que se va a construir
sición oportuna.
para el proyecto actual, pero que requerirán una
modificación sustancial. Los miembros del equipo
5.4.3. R e c u r s o s d e e n to r n o
de software actual han limitado su experiencia sólo
al área de aplicación representada por estos com po El entorno es donde se apoya el proyecto de software,
nentes. Las m odificaciones, por tanto, requeridas llam ado a m enudo entorno de ingeniería del software
para com ponentes de experiencia parcial tendrán (EIS), incorpora hardware y software. El hardware pro
bastante grado de riesgo. porciona una plataform a con las herram ientas (soft
C om ponentes nuevos. Los componentes de soft ware) requeridas para producir los productos que son
ware que el equipo de software debe construir espe el resultado de una buena práctica de la ingeniería del
cíficamente para las necesidades del proyecto softw are7. Com o la m ayoría de las organizaciones de
actual. software tienen m uchos aspectos que requieren acce
so a EIS, un planificador de proyecto debe determ inar
£ ¿Qué aspectos debemos la ventana tem poral requerida para el hardw are y el
* considerar cuando planificamos software, y verificar que estos recursos estarán dispo
la reutilizaciónde componentes de nibles.
software existentes? Cuando se va a desarrollar un sistema basado en com
putadora (que incorpora hardware y software especia
lizado), el equipo de software puede requerir acceso a
Deberían ser consideradas las directrices siguientes
los elementos en desarrollo por otros equipos de inge
por el planificador de software cuando los com ponen
niería. Por ejemplo, el software para un control num é
tes reutilizables se especifiquen com o recurso:
rico (CN) utilizado en una clase de máquina herram ienta
1. Si los com ponentes ya desarrollados cum plen los puede requerir una m áquina herram ienta específica (por
requisitos del proyecto, adquiéralos. El coste de la ejem plo, el CN de un torno) com o parte del paso de
adquisición y de la integración de los componentes prueba de validación; un proyecto de software para el
ya desarrollados serán casi siempre menores que el diseño de páginas avanzado puede necesitar un sistema
coste para desarrollar el software equivalente6. A de de com posición fotográfica o escritura digital en algu
más, el riesgo es relativamente bajo. na fase durante el desarrollo. Cada elem ento de hard
2. Si se dispone de componentes ya experimentados,los ware debe ser especificado por el planificad o r del
riesgos asociados a la modificación y a la integración proyecto de software.
6Cuando los com ponentes de software existentes se utilizan durante ' Otro hardw are ■
—el en t'Arnr' destino— es la coinniitadoTí> sobre la
que se va a ejecutar el softw are al entregarse al usuario final.
www.FreeLibros.org
un proyecto, la reducción del coste global puede ser im portante. En
efecto, los datos de la industria indican que el coste, el tiem po de
adquisición y el núm ero de defectos entregados al cliente se redu
cen.
83
IN GE NI E RÍ A DEL S O F TW A RE . UN E N F O Q U E P R A C T I C O
www.FreeLibros.org
e sfu erzo s p asad o s y si o tras in flu en cias del p ro y ecto se com o base histórica para la estim ación.
a4
CAPÍTULO 5 P L A N I F I C A C I Ó N DE PR O Y EC T O S DE S O F T W A R E
La estimación de proyectos de software es una form a Tamaño en «lógica difusa». Este enfoque utiliza
eferesolución de problemas y, en la m ayoría de los casos, las técnicas aproximadas de razonam iento que son
el problema a resolver (es decir, desarrollar estim acio la piedra angular de la lógica difusa. Para aplicar este
nes de coste y de esfuerzo para un proyecto de softwa enfoque, el planificador debe identificar el tipo de
re) es demasiado complejo para considerarlo como un aplicación, establecer su m agnitud en u na escala
todo. Por esta razón, descomponemos el problema, vol cuantitativa y refinar la m agnitud dentro del rango
viéndolo a definir como un conjunto de pequeños pro original. Aunque se puede utilizar la experiencia per
blemas (esperando que sean m ás manejables). sonal, el planificador tam bién debería tener acceso
En el Capítulo 3, se estudió el enfoque de descom a una base de datos histórica de proyectos8 para que
posición desde dos puntos de vista diferentes: descom las estim aciones se puedan com parar con la ex p e
posición del problem a y descomposición del proceso. riencia real.
La estimación hace uso de una o ambas formas de par- Tam año en punto de función. El planificador
ticionamiento. Pero antes de hacer una estim ación, el desarrolla estim aciones de características del dom i
planificador del proyecto debe com prender el ám bito nio de inform ación estudiadas en el Capítulo 4.
del software a construir y generar una estim ación de su
«tamaño». ¿Cómo medimos el
w software que estamos
5.6.1. T am año d e l s o ftw a re planeando construir?
La precisión de una estim ación del proyecto de soft-
wate se predice basándose en una serie de cosas: (1) el Tamaño de com ponentes estándar. El software
grado en el que el planificador ha estimado adecuada se compone de un núm ero de «componentes están
mente el tamaño del producto a construir; (2) la habili dar» que son genéricos para un área en particular de
dad para traducir la estim ación del tam año en esfuerzo la aplicación. Por ejemplo, los componentes están
humano, tiempo y dinero (una función de la disponibi dar para un sistema de información son: subsistemas,
lidad de métricas fiables de software de proyectos ante m ódulos, pantallas, informes, program as interacti
riores); (3) el grado en el que el plan del proyecto refleja vos, program as por lotes, archivos, LDC e instruc
las habilidades del equipo de software, y (4)l a estabi ciones para objetos. El planificador de proyectos
lidad de los requisitos del softw are y el entorno que estim a el núm ero de incidencias de cada uno de los
soporta el esfuerzo de la ingeniería del software. componentes estándar, y utiliza datos de proyectos
históricos para determ inar el tam año de entrega por
componente estándar. Para ilustrarlo, considere una
aplicación de sistemas de información. El planifica
CLAVE dor estim a que se generarán 18 informes. Los datos
B «tamaño» del software o tonstrulr puede estimarse históricos indican que por informe se requieren 967
utilizando una medida dlretto, LDC, o uno medido líneas de Cobol [PUT92 J. Esto permite que el plani
indirecto, FF. ficador estime que se requieren 17.000 LDC para el
com ponente de informes. Para otros com ponentes
En esta sección, consideram os el problema del tama- estándar se hacen estim aciones y cálculos similares,
ñodel software. Puesto que una estim ación del proyec y se producen resultados combinados de valores de
to es tan buena com o la estim ación del tam año del tam años (ajustados estadísticamente).
trabajo que va a llevarse a cabo, el tam año representa Tam año del cam bio. Este enfoque se utiliza
el primer reto im portante del planificador de proyectos. cuando un proyecto comprende la utilización de soft
En el contexto de la planificación de proyectos, el tam a w are existente que se debe m odificar de alguna
ño se refiere a una producción cuantificable del proyecto m anera com o parte de un proyecto. El planificador
dfe software. Si se tom a un enfoque directo, el tamaño estim a el núm ero y tipo (por ejemplo: reutilización,
se puede medir en LDC. Si se selecciona un enfoque añadir código, cambiar código, suprimir código) de
indirecto, el tam año se representa como PF. m odificacionesque se deben llevar a cabo. M ediante
Putnam y M yers [PUT92] sugieren cuatro enfoques una «proporción de esfuerzo» [PUT92] para cada tipo
diferentes del problem a del tamaño: de cambio, se puede estim ar el tam año del cambio.
www.FreeLibros.org
8 Consulte la Sección 5.9 que trata brevem ente las herram ientas de
estimación que utilizan una base de datos histórica y otras técnicas
de tam año estudiadas en esta sección.
85
I N GE NI E RÍ A DEL S O F TW A RE . UN E N F O Q U E P R Á C T I C O
Putnam y Myers sugieren que los resultados de cada do sospechar que se utilice únicam ente una métrica de
uno de los métodos de tam año señalados anteriormente productividad de línea base. En general, el dominio del
se combinan estadísticamente para crear una estimación proyecto debería calcularlas medias de LDC/pm o PF/pm.
de tres puntos o del valor esperado. Esto se lleva a cabo Es decir, los proyectos se deberían agrupar por tamaño
desarrollandovalores de tamaño optimistas (bajos),y más de equipo, área de aplicación, com plejidad y otros para-
probables, y pesimistas (altos), y se com binan utilizando m etros relevantes. Entonces se deberían calcular las
la Ecuación (5.1) que se describe en la sección siguiente. medias del dominio local. Cuando se estima un proyec
to nuevo, prim ero se debería asignar a un dominio, y a
continuación utilizar la m edia del dominio adecuado para
5.6.2. E stim a c ió n b a s a d a e n e l p r o b le m a
la productividad al generar la estimación. Las técnicas
En el Capítulo 4, las líneas de código (LDC) y los pun de estim ación de LDC y PF difieren en el nivel de deta
tos de función (PF) se describieron como m edidas bási lle que se requiere para la descomposición y el objetivo
cas a partir de las que se pueden calcular métricas de de la partición. Cuando se utiliza LDC como variable de
productividad. Los datos de LD C y PF se utilizan de dos estimación, la descom posición”'es absolutamenteesen-
formas durante la estim ación del proyecto de software: cial y con frecuencia se toman para considerables nive
(1) como una variable de estim ación que se utiliza para les de detalle. El enfoque de descomposición siguiente
«dimensionar» cada elem ento del software, y (2) como ha sido adaptado por Phillips [PHI98]11:
métricas de línea base recopiladas de proyectos anterio
res y utilizadas junto con variables de estim ación para
desarrollar proyecciones de coste y de esfuerzo. CLAVE
Las estim aciones de LD C y P F son técnicas de esti
Poro.Estimaciones de LDC, la descomposición
m ación distintas. A pesar de que am bas tienen varias
se centroen las funciones del software.
características en común. El planificador del proyecto
com ienza con un enfoque lim itado para el ámbito del definir el ám bito del producto;
software y desde este estado intenta descom poner el identificar funciones descom poniendo el ámbito;
software en funciones que se pueden estim ar indivi hacer m ientras haya funciones
seleccionar una funciói^
dualmente. Para cada función entonces se estim an las
asignar todas las funciones a la lista de subfunciones;
LDC y el PF (la variable de estimación). De fonna alter
hacer m ientras haya subfunciones
nativa, el planificador puede seleccionar otro compo seleccionar una subfunciónk
nente para dim ensionar clases u objetos, cam bios o si subfunciónk = subfunciónd descrita en una base
procesos de gestión en los que puede tener impacto. de datos histórica
entonces a n o tar datos histó rico s del coste,
¿jjjt ¿Qué tienen en común la esfuerzo, tam año, (L D C o P F ) para
la subfunciónd ;
• estimación orientada a PF
aju star datos histó rico s del coste,
y a LDC? esfuerzo, tam año basados e n cual
quier diferencia:
Las m étricas de productividad de línea base (por use datos del coste, esfuerzo, tama
ejemplo: LDC/pm o PF/pnf') se aplican entonces para ñ o ajustados para o b ten er una esti
la variable de estim ación adecuada y se extrae el coste m ación parcial, E;
o el esfuerzo de la función. Las estim aciones de fun e stim a c ió n p ro y e cto = su m a de
ción se com binan para producir una estim ación global i e p I; '
sino si se puede estim ar coste, estuerzo,
del proyecto entero. tam año (LDC o PF) para subfunciónk
entonces obtener estim ación parcial,
e stim a c ió n p ro y e cto = su m a de
Cuando se comparan métricas de productividadpara
( E, 1; ’
proyectos, esté seguro de establecer una clasificación sino subdividir subfunciónk en sub
de los tipos de proyectos. Esb le permitirá calcular funciones m ás pequeñas;
promedios para dominios específicos y la estimación añadirlas a la lista de subfunciones;
será más exacta. íin si
íin si
Es importante señalar, sin embargo, que hay una sus fin hacer
tancial diversidad en métricas de productividad, hacien fin hacer
q El acrónim o pm hace referencia a perso n as-m es 10 En general se descomponen las funciones del problema. Sin embargo.
se puede utilizar una lista de com ponentesestándar (Sección5.6.1).
www.FreeLibros.org
11 El lenguaje informal de diseño del proceso señalado aquí se expone
para ilustrar el enfoque general para el dim ensionam iento. No tiene
en cuenta ninguna eventualidad lógica.
86
CAPÍTULO 5 P L A N I F I C A C I Ó N DE P R O Y E C T O S DE S O F T W A R E
www.FreeLibros.org
ción, no importa lo sofisticada que sea, se debe volver Siguiendo la técnica de descomposición de LDC, se
a comprobar con otro enfoque. Incluso entonces, va a desarrolla la tabla de estim ación m ostrada en la Figura
prevalecer el sentido com ún y la experiencia. 5.3. Se desarrollaun rango de estim aciones de LDC para
a7
IN GE NI ER ÍA DEL S O F TW A R E . UN E N F O Q U E P R Á C T I C O
www.FreeLibros.org
12 La estim ación se redondea acercándose lo m ás posible a E l . 000 y
persona-m es.
88
CAPÍTULO 5 P L A N I F I C A C I Ó N DE P R O Y E C T O S DE S O F T W A R E
5.6.5. E stim a ció n b a s a d a e n e l p ro ceso ra ten d rem o s do s o tres e stim a c io n e s del co ste y del
esfu erzo que se pueden com parar y evaluar. S i am bos
La técnica m ás com ún p ara estim ar un p royecto es basar
tipos de estim aciones m uestran una concordancia raz o
la estim ación en el proceso que se v a a utilizar. Es decir,
nable, hay u n a b u ena razón para cree r que las estim a
el proceso se descom pone en un conjunto relativam en
ciones son fiables. Si, p o r otro lado, los resu ltad o s de
te pequeño de a c tiv id a d e s o tareas, y en el e sfu e rz o
estas técnicas de descom posición m uestran p o ca c o n
requerido p ara llevar a cabo la estim ació n de cada tarea.
cordancia, se debe realizar m ás investigación y análisis.
Al igual que las técnicas b asadas en p ro b lem as, la
estimación b asad a en el proceso com ien za con un esb o
zo de las funciones del softw are obtenidas a p artir del 5.6.6. U n e jem p lo d e e s tim a c ió n b a s a d a
ámbito del proyecto. P ara cada función se debe llevar e n e l p ro ceso
a cabo una serie de actividades del p roceso de softw a P ara ilustrar el uso de la estim ación b asada en el p ro
re. Las funciones y las actividades del p roceso de soft ceso, de nuevo considerem os el softw are de C A D pre-
ware relacionadas se pueden rep resen tar com o parte de sen tad o en la Sección 5.6.3. L a configuración del sistem a
una tabla sim ilar a la p resen tad a en la F igura 3.2. y todas las funciones del softw are perm anecen iguales
y están indicadas en el ám bito del proyecto.
t s n a m
Emarco de trabajo común del proceso (MCP)
se estudio en el Capítulo 2.
Si e l tiempo lo permite, realice uno m a y a
U na v ez que se m ezclan las fu n cio n es del p ro b le descomposición ol especificar /as tareas; en la Figura 5.5,
ma y las actividades del p ro ceso , el p la n ifica d o r e sti p .% se divide e l análisis en sus tareas principales y se
ma el esfu erzo (p o r eje m p lo : p e rs o n a s -m e s) que se estima coda una p a separado.
www.FreeLibros.org
zo de cada función, y la actividad del p roceso de soft xim adam ente del 13 p o r ciento.
ware. Si la estim ación b asad a en el p roceso se realiza ¿Q ué ocurre cu an d o la concordancia entre las esti
independientem entede la estim ación de L D C o PF, aho m aciones es m ala? P ara responder a esta p regunta se ha
89
I N G E N IE RÍ A DEL S O F TW A RE . UN EN F O Q U E P R A C T I C O
de reevaluar la inform ación que se ha utilizado para 1. No se entiende adecuadam ente el ám bito del pro
hacer las estimaciones. yecto o el planificador lo ha mal interpretado.
Muchas divergencias entre estim aciones se deben a
2. Los datos de productividad usados para técnicas de
una de dos causas:
estim ación basados en problem as no son apropiados
para la aplicación, están obsoletos (ya no reflejan con
precisión la organización de la ingeniería del soft
No espere que todos los estimaciones coincidan ware), o se han aplicado erróneamente.
en uno o dos porcentajes. S ilo estimación está
den tro de uno bando del 20 por 100, puede El planificador debe determ inar la causa de la diver
reconciliarse en un único valor. gencia y conciliar las estimaciones.
Un modelo de estimación para el software de com puta señalada en la Ecuación (5.2) la m ayoría de los mode
dora utiliza fórmulas derivadas em píricam entepara pre los de estim ación tienen algún componente de ajuste del
decir el esfuerzo como una función de LDC o PF. Los proyecto que permite ajustar E por otras características
valores para LDC o PF son estimados utilizando el enfo del proyecto (por ejem plo: com plejidad del problema,
que descrito en las Secciones 5.6.2 y 5.6.3. Pero en lugar experiencia del personal, entorno de desarrollo). Entre
de utilizar las tablas descritas en esas secciones, los valo los m uchos m odelos de estim ación orientados a LDC
res resultantes para LDC o PF se unen al modelo de esti propuestos en la bibliografía se encuentran los siguien
mación. Los datos empíricos que soportan la m ayoría tes:
de los modelos de estim ación se obtienen de una m ues E = 5,2 x ( K L D C ) 0'91 M odelo de W alston-Felix
tra lim itada de proyectos. Por esta razón, el m odelo de E = 5 ,5 + 0,73 x
estim ación no es adecuado para todas las clases de soft ( K L D C ) 1 16 M odelo de B ailey-B asili
ware y en todos los entornos de desarrollo. Por consi E = 3,2 x (K L D C )' 05 M odelo sim ple de B oehm
guiente, dos resultados obtenidos de dichos modelos se E = 5,288 x ( K L D C ) 1047 M odelo D oty para K L D C > 9
deben utilizar con prudencia13.
También se han propuesto los modelos orientados a
PF. Entre estos modelos se incluyen:
5.7.1. L a e s tr u c tu r a d e lo s m o d e lo s d e e s tim a c ió n
E = -1 3 ,3 9 + 0 ,0 5 4 5 P F M odelo de A lbretch
y G affney
E = 6 0 ,6 2 x 7,7 2 8 x
CLAVE x 10” P F 7 M odelo de K em erer
E = 5 8 5 ,7 + 15,12 PF M odelo de M atson, B am ett
Unmodelo de estimaciónrefleja locantidadde proyectos
y M ellicham p
a partir de dondese ha obtenido. Por consiguiente,
el modelo es susceptibleal dominio. Un rápido examen de los modelos listados anterior
mente indica que cada uno producirá un resultado dife
Un m odelo com ún de estim ación se extrae utilizando el rente'4 para el m ism o valor de LDC y PF. La implicación
análisis de regresión sobre los datos recopilados de pro es clara. Los modelos de estim ación se deben calibrar
yectos de software anteriores. La estructura global de para necesidades locales.
tales modelos adquiere la forma de [MAT94]:
E =A + B x ( e v f (5.2) ^B O W S R IO ^.
donde A , B y C son constantes obtenidas em píricam en Ninguno de estos modelos debería ser aplicado
te, E es el esfuerzo en personas-mes, y ev es la variable inodecuodomente o su entorno.
de estim ación (de LDC o P F ). Además de la relación
13 En general se debería calibrar un m odelo de estim ación para las 14 Esta referencia se fundam enta en que estos m odelos a m enudo se
condiciones locales. El m odelóse debería ejecutar utilizando los resul derivan de un núm ero relativam ente pequeño de proyectos só lo en
tados de proyectos term inados. Los datos previstos por el m odelo se unos cuantos dom inios de la aplicación.
www.FreeLibros.org
deberían com parar con los resultados reales, y la eficacia del modelo
(para condiciones locales) debería ser evaluada. Si la concordancia
no es buena, los coeficientes del m odelo se deben volver a calcular
utilizando datos locales.
90
CAPÍTULO 5 P L A N I F I C A C I O N DE P R O Y E C T O S DE S OF TW AR E
www.FreeLibros.org
15 Como se señaló anteriorm ente, estos m odelos hacen uso de las
cuen tas de PF y KLDC para la variable tam año.
91
IN GENIERÍA DEL S O F TW A RE . UN E N F O Q U E P R A C T I C O
M uy M uy
M a d u re z /c a p a c id a d Baja N o rm a l A lta alta
baja
del e n to rn o
Referencia W eb I 1
Se puede obtener información de las herramientas de
PROD 4 7 13 25 50 estimación del coste del software que se han desarrollado
a partir de la ecuación del software en www.qsm.com
T A B L A 5 .2 . P ro p o rc io n e s d e p ro d u c tiv id a d p a ra p u n to s
o b je to [BOE96].
t = duración del proyecto en m eses o años, Tenga en cuenta que t en la ecuación (5.4b) se repre
B = «factor especial de destrezas»16, senta en años.
P = «parámetro de productividad» que refleja: M ediante las ecuaciones (5.4) con P = 12.000 (valor
recom endado para software científico) para el softwa
• M adurez global del proceso y de las prácticas
re de CAD estudiado anteriormente en este capítulo,
de gestión.
• La amplitud hasta donde se utilizan correcta tmin = 8 ’14 (3 3 .2 0 0 / 12.000)0'4’
5.8 LA D E C ISIÓ N DE D E S A R R Q L L A R -C Q M P R A R
En muchas áreas de aplicación del software, a m enu componentes de software «totalmente experimentado»
do es m ás rentable adquirir el software de com putado o «parcialm ente experim entado» (Consulte la Sección
ra que desarrollarlo. Los gestores de ingeniería del 5.4.2), y entonces m odificarse e integrarse para cum
software se enfrentan con una decisión desarrollar o plir las necesidades específicas, o (3) el software pue
comprar que se puede com plicar aún más con las opcio de ser construido de form a personalizada por una
nes de adquisición: (1) el software se puede com prar empresa externa para cum plir las especificaciones del
(con licencia) ya desarrollado; (2) se pueden adquirir comprador.
www.FreeLibros.org
16 B se incrementa lentam ente a medida que crecen «la necesidad de 17 Es im portante destacar que el parám etro de productividad puede
integración, pruebas, garantía de calidad, documentación y habilidad obtenerse em píricam ente de los datos locales de un proyecto,
de gestión» [PUT92], Para program as pequeños (K LD C = 5 a 15).B =
0,16. Para program as mayores de 70 KLDC,B = 0,39.
92
CAPÍTULO 5 P L A N I F I C A C I Ó N DE P R O Y E C T O S DE SOFTW ARE
Los pasos dados en la adquisición del software se En el análisis final, la decisión de desarrollar— com
definen según el sentido crítico del software que se va prar se basa en las condiciones siguientes: (1) ¿La fecha
a comprar y el coste final. En algunos casos (por ejem de entrega del producto de software será anterior que la
plo: software para PC de bajo coste) es m enos caro com del softw are desarrollado internam ente? (2) ¿Será el
prar y experim entar que llevar a cabo una larga coste de adquisición ju n to con el de personalización
evaluación de potenciales paquetes de software. Para m enor que el coste de desarrollo interno del softw are?
productos de software m ás caros, se pueden aplicar las (3) ¿Será el coste del soporte externo (por ejemplo: un
directrices siguientes: contrato de m antenim iento) m enor que el coste del
1. Desarrollo de una especificación para la función y soporte interno? Estas condiciones se aplican a cada una
rendimiento del software deseado. Definición de las de las opciones señaladas anteriormente.
características medibles, siempre que sea posible.
5.8.1. C reació n d e u n árbol d e d ecisio n es
Los pasos descritos anteriormente se pueden especifi
car mediante técnicas estadísticas tales com o el análi
Hoy veces en los que elsoftware proporciono uno sis del árbol de decisión [BOE89]. Por ejem plo, la
solución«perfecto» excepto poro algunos aspectos
Figura 5.6 representa un árbol de decisión para un sis
especlalesde los que puede prescindir. En muchos cosos,
tem a X basado en software. En este caso, la organiza
/ merece lo peno vivir sin éstosI
ción de la ingeniería del software puede (1) construir el
sistema X desde el principio; (2) reutilizar los com po
2. Estimación del coste interno de desarrollo y la fecha nentes existentes de «experiencia parcial» para cons
de entrega. truir el sistem a; (3) com prar un producto de software
3a.Selección de tres o cuatro aplicaciones candidatos disponible y m odificarlo para cum plir las necesidades
que cumplan m ejor las especificaciones. locales; o (4) contratar el desarrollo del software a un
3b.Selección de componentes de software reutilizables vendedor externo.
que ayudarán en la construcción de la aplicación ^ ¿Existe un método sistemático para
requerida. * ordenar las opciones relacionadas con
. 4. Desarrollo de una matriz de comparación que presente la decisión desarrollar-comprar?
la comparación una a una de las funciones clave. Alter
nativamente, realizar el seguimiento de las pruebas de Si se va a construir un sistem a desde el principio,
evaluación para com parar el software candidato. existe una probabilidad del 70 por 100 de que el tra
5. Evaluación de cada paquete de software o com po bajo sea difícil. M ediante las técnicas de estim ación
nente según la calidad de productos anteriores, estudiadas en este capítulo, el planificado r del p ro
soporte del vendedor, dirección del producto, repu yecto estim a que un esfuerzo de desarrollo difícil cos
tación, etc. tará £450.000. Un esfuerzo de desarrollo «sim ple» se
6. Contacto con otros usuarios de dicho software y peti estim a que cueste £380.000. El valor esperado del cos
ción de opiniones. te, calculado a lo largo de la ram a del árbol de deci
sión es:
£380.000
coste esperado = X (probabilidad del cam ino^ X (coste esti
m ado del cam ino) ¡
€450.000
£275.000 donde i es el cam ino del árbol de decisión. P ara el
cam ino construir,
c o ste e sp e ra d o construcción = 0 ,3 0 (£ 3 8 0 K ) + 0 ,7 0 (£ 4 5 0 K )
£310.000
= £429K .........
www.FreeLibros.org
Según la probabilidad y los costes proyectados que
FIGURA 5 .6 . Árbol de decisión para apoyar la decisión se han señalado en la Figura 5.6, el coste más bajo espe
desarrollar-comprar. rado es la opción «compra».
93
IN GE NIE RI A DEL S O F TW A RE . UN EN F O Q U E P R A C T I C O
DE. ESTIMACIÓH_________ —
Las técnicas de descomposición y los modelos em píri (Capítulo 2) y se especifica el conjunto de tareas de
cos de estimación descritos en las secciones anteriores se ingeniería del software.
pueden implementar con software. Las herramientas auto 3. Predicción de los niveles de la plantilla. Se espe
máticas de estim ación perm iten al planificador estimar cifica el núm ero de personas disponibles para reali
costes y esfuerzos, así como llevar a cabo análisis del tipo zar el trabajo. Esto es muy importante, puesto que la
«qué pasa si» con importantes variables del proyecto, relación entre las personas disponibles y el trabajo
tales como la fecha de entrega o la selección de perso (esfuerzo previsto) no es muy lineal.
nal. Aunque existen muchas herramientas automáticas de
4. Predicción del esfuerzo del softw are. Las herra
estimación, todas exhiben las mismas características gene m ientas de estimación utilizan uno o m ás modelos
rales y todas realizan las seis funciones genéricas m os (por ejemplo, Sección 5.7) que relacionan el tamaño
tradas a continuación [JON96]: de las entregas del proyecto con el esfuerzo necesa
1. Dimensionamiento de las entregas del proyecto. rio para producirlas.
Se estim a el «tam año» de uno o m ás productos de 5. Predicción del coste del software. Dado los resul
software. Los productos incluyen la representación tados del paso 4 , los costes pueden calcularse asig
externa del software (por ejemplo, pantallas, infor nando proporciones del trabajo a las actividades del
mes), el software en sí (por ejemplo, KLDC), su fun proyecto señaladas en el paso 2.
cionalidad (por ejem plo, puntos <je función), y la 6. Predicción de la planificación del software. Cuando
www.FreeLibros.org
inform ación descriptiva (por ejemplo, documentos). se conoce el esfuerzo, los niveles de la plantilla y las
2. Selección de las actividades del proyecto. Se selec actividades del proyecto, se puede realizar un borra
ciona el m arco de trabajo del proceso adecuado dor de la planificación asignando el trabajo a través
, *
CAPÍTULO 5 P L A N I F I C A C I Ó N DE P R O Y E C T O S DE S OF TW AR E
de actividades de ingeniería del software basadas en C uando se aplican distintas herram ientas de esti
m odelos recom endados para la distribución del m ación a los m ism os datos del proyecto, se observa
esfuerzo (Capítulo 7). una variación relativam ente grande entre los resu lta
dos estim ados. Pero lo que es m ás im portante, a veces
los valores son bastante diferentes de los valores rea
les. Esto refuerza la idea de que los resultados o b te
nidos por las herram ientas de estim ación se deben usar
sólo com o «punto de p a rtid a » para la o b ten ció n de
estim aciones —no com o única fuente para la estim a
Herramientas Case. ción— .
[BOE96] Boehm, B., «Anchoring the SoftwareProcess», IEE [MIN95] Minoli, D .,Analizing Outsourcing, McGraw-Hill,
Software, v ol. 13,n.2 4, Julio 1996,pp. 73-82. 1995.
[BOEOO] Boehm, B., et al., Software Cost Estim ation in [PHI98] Phillips, D., The Software Project Manager's Hand-
COCOMO11. Prentice Hall, 2000. book, IEEE Computer Society Press, 1998.
[BR075] Brooks, E , TheM vthical M an-Month, Addison- [PUT92] Putnam, L., y W. Myers, M easuresfor Excellence,
Wesley, 1975. ' Yourdon Press, 1992.
[GAU89] Gause,D. C .,y G. M. Weinberg,Exploring Requi- [PUT97a] Putnam, L., y W. Myers, «How Solved is the Cost
rements: Quality Befare Design, Dorset House, 1989. Estimation Problem», IEEE Software, Noviembre 1997,
[H0091] Hooper,J. W. E .,y R. O. Chester, Software Reuse: pp. 105-107.
Guidelines and Methods, Plenum Press, 1991. [PUT97b] Putnam, L., y W. Myers, Industrial Strength Soft
[JON96] Jones, C., «How Software Estimation Tools Work», ware: Effective Management UsingMeasurement, IEEE
American Programmer, vol. 9, n.a 7, Julio 1996,pp. 19-27. Computer Society Press, 1997.
www.FreeLibros.org Y5
I N GEN IE RÍ A DEL S O F TW A RE . UN E N F O Q U E P R A C T I C O
5.1. Suponga que es el gestor de proyectos de una compañía damente 80 componentes de software. Asuma complejidad
que construye software para productos de consumo. Ha con «media» y maduración desarrollador/entomo media. Utilice
tratado una construcción de software para un sistema de segu el modelo de composición de aplicación con puntos objeto.
ridad del hogar. Escriba una especificación del ámbito que 5.7. Utilice la «ecuación del software» para estimar el soft
describa el software. Asegúrese de que su enunciado del ámbi ware del sistema de seguridaddel hogar. Suponga que las Ecua
to sea limitado. Si no está familiarizado con sistemas de segu ciones (5.4) son aplicables y que P = 8.000.
ridad del hogar, investigue un poco antes de comenzar a
5.8. Compare las estimaciones de esfuerzo obtenidas de los
escribir. Alternativa: sustituya el sistema de seguridad del
Problemas 5.5 y 5.7. Desarrolle una estimación simple para
hogar por otro problema que le sea de interés.
el proyecto mediante una estimación de tres puntos. ¿Cuál es
5.2. La complejidad del proyecto de software se trata breve la desviación estándar?, y ¿cómo afecta a su grado de certeza
mente en la Sección 5.1. Desarrolle una lista de las caracte sobre la estimación?
rísticas de software (por ejemplo: operación concurrente, salida
gráfica, etc.), que afecte a la complejidad de un proyecto. Dé 5.9. Mediante los resultados obtenidos del Problema 5.8, deter
prioridad a la lista. mine si es razonable esperar que el resultado se pueda cons
truir dentro de los seis meses siguientes y cuántas personas se
5.3. El rendimiento es una consideración importante durante
tendrían que utilizar para terminar el trabajo.
la planificación. Discuta si puede interpretar el rendimiento de
otra manera, dependiendo del área de aplicación del software. 5.10. Desarrolle un modelo de hoja de cálculo que implemente
una técnica de estimación o más, descritas en el capítulo. Alter
5.4. Haga una descomposición de las funciones software
nativamente, obtenga uno o más modelos directos para la esti
para el sistema de seguridad del hogar descrita en el Pro
mación desde la web.
blema 5.1. Estime el tamaño de cada función en LDC. Asu
miendo que su organización produce 450LDC/pm con una 5.11. Para un equipo de proyecto: Desarrolle una herramien
tarifa laboral de $7.000 por persona-mes, estime el esfuer ta de software que implemente cada una de las técnicas de esti
zo y el coste requerido para construir el software utilizan mación desarrolladas en este capítulo.
do la técnica de estimación basada en LDC que se describe 5.12. Parece extraño que las estimaciones de costes y plani
en la Sección 5.6.3. ficaciones temporales se desarrollen durante la planificación
5.5. Utilizando las medidas de punto de función de tres dimen del proyecto de software — antes de haber realizado un aná
siones que se describe en el Capítulo 4, calcule el número de PF lisis de requisitos o un diseño detallado — . ¿Por qué cree que
para el software del sistema de seguridad del hogar, y extraiga las se hace así? ¿Existen circunstancias en las que no deba pro-
estimacionesdel esfuerzo y del coste mediante la técnica de esti cederse de esta forma?
mación basada en PF que se describe en la Sección5.6.4. 5.13. Vuelva a calcular los valores esperados señalados en el
5.6. Utilice el modelo COCOMO II para estimar el esfuerzo árbol de decisión de la Figura 5.6 suponiendo que todas las
necesario para construir software para un simple ATM que ramas tienen una probabilidad de 50-50. ¿Por qué cambia esto
produzca 12 pantallas; 10 informes, y que necesite aproxima su decisión final?
La mayoría de los libros de gestión de proyectos de softwa empíricos para la estimación del software. Estos libros propor
re contienen estudios sobre la estimación de proyectos. Jones cionan un análisis detallado de datos que provienen de cientos
(Estimating Software Costs, McGraw Hill, 1998) ha escrito de proyectos de software. Un libro excelente de DeMarco (Con-
el tratado más extenso sobre la estimación de proyectos pu trolling Software Projects, Yourdon Press, 1982) proporciona
blicado hasta la fecha. Su libro contiene modelos y datos apli una profunda y valiosa visión de la gestión, medición y esti
cables a la estimación del software en todo el dominio de la mación de proyectos de software. Sneed (SoftwareEngineering
aplicación. Roetzheim y Beasley (SoftwareProject Cosí and Management, Wiley, 1989) y Macro (Software Engineering :
Schedule Estimating: Best Practices, Prentice-Hall, 1997) Concepts and Management, Prentice — Hall, 1990) estudian la
presentan varios modelos útiles y sugieren las directrices paso estimación del proyecto de software con gran detalle.
a paso para generar las estimaciones mejores posibles. La estimación del coste de líneas de código es el enfoque
Los libros de Phillips [PHI98], Bennatan (OnTitne, Wit- más comúnmente utilizado. Sin embargo, el impacto del para
hin Budget: Software Project M anagem ent Practices and digma orientado a objetos (consulte la Parte Cuarta) puede
Techniques, Wiley, 1995), Whitten (Managing Software Deve- invalidar algunos modelos de estimación. Lorenz y Kidd
lopmentProjects: Form ulafor Success, Wiley, 1995), Well- (Object.— OrientedSoftware Metrics, Prentice— Hall, 1994)
man (Software Costing, Prentice-Hall, 1992), Londeix (Cosí y Cockburn (Surviving Object— Oriented Projects, Addi
Estiniationfor SoftwareDevelopment, Addison-Wesley, 1987) son-Wesley, 1998)estudian la estimación para sistemas orien
contienen información útil sobre la planificación y la esti tados a objetos.
mación de proyectos de software. En Intemet están disponibles una gran variedad de fuen
El tratamiento detallado de la estimación del coste de soft tes de información sobre la planificación y estimación del
www.FreeLibros.org
ware de Putnam y Myers ([PUT92] y [PUT97b]), y el libro de software. Se puede encontrar una lista actualizada con refe
Boehm sobre la economía de la ingeniería del software ([BOE8 1] rencias a sitios (páginas) web que son relevantes para la esti
y COCOMO II [BOE00]) describen los modelos de estimación mación del software en http://w w w .pressm an5.com .
96
CAPÍTULO
N su libro sobre análisis y gestión del riesgo, R obert C harette [CHA89] p resenta la
En prim er lugar, el riesgo afecta a los futuros acontecimientos. El hoy y el ayer están más
allá de lo que nos pueda preocupar, pues ya estamos cosechando lo que sembramos previamente
con nuestras acciones del pasado. La pregunta es, podem os, por tanto, cam biando nuestras
acciones actuales, crear una oportunidad para una situación diferente y, con suerte, m ejor para
nosotros en el futuro. Esto significa, en segundo lugar, que el riesgo im plica cam bio, que pue
de venir dado por cam bios de opinión, de acciones, de lugares... [En tercer lugar,] el riesgo
im plica elección, y la incertidum bre que entraña la elección. Por tanto, el riesgo, com o la m uer
te y los impuestos, es una de las pocas cosas inevitables en la vida.
Cuando se considera el riesgo en el contexto de la ingeniería del software, los tres pilares
conceptuales de Charette se hacen continuamente evidentes. El futuro es lo que nos preocupa
— ¿qué riesgos podrían hacer que nuestro proyecto fracasara?— . El cambio es nuestra preocu
pación ¿cómo afectarán los cambios en los requisitos del cliente, en las tecnologías de desa
rrollo, en las com putadoras a las que va dirigido el proyecto y a todas las entidades relacionadas
con él, al cum plimiento de la planificación tem poral y al éxito en general?. Para terminar, debe
mos enfrentam os a decisiones — ¿qué m étodos y herram ientas deberíamos emplear, cuánta gen
te debería estar im plicada, cuánta importancia hay que darle a la calidad?— .
VISTAZO RÁPIDO
Peter Drucker [DRU75] dijo una vez: «M ientras que es inútil intentar elim inar el riesgo y
cuestionable el poder minimizarlo, es esencial que los riesgos que se tom en sean los riesgos
www.FreeLibros.org
adecuados». Antes de poder identificar los «riesgos adecuados» a tener en cuenta en un p ro
yecto de software, es im portante poder identificar todos los riesgos que sean obvios a jefes de
proyecto y profesionales del software.
97
INGENIERÍA DEL S O F TW A RE . UN E N F O Q U E P R Á C T I C O
Las estrategias se han denom inado humorísticamente te, en caso de que pudieran convertirse en problemas
«E scuela de gestión del riesgo de Indiana Jones» reales. Pero lo más frecuente es que el equipo de soft
[T H 092], En las películas, Indiana Jones, cuando se ware no haga nada respecto a los riesgos hasta que algo
enfrentaba a una dificultad insuperable, siempre decía, va mal. Después el equipo vuela para corregir el pro
«¡No te preocupes, pensaré en algo!». Nunca se preo blem a rápidam ente. Este es el m étodo denom inado a
cupaba de los problem as hasta que ocurrían, entonces m enudo «de bom beros». Cuando falla, «la gestión de
Indy reaccionaba de alguna m anera heroica. crisis» [CHA92] entra en acción y el proyecto se encuen
tra en peligro real.
U na estrategia considerablem ente m ás inteligente
para el control del riesgo es ser proactivo. L a estrate
S «ted no oteco los riesgos ortivamente, ellos le gia proactiva em pieza m ucho antes de que comiencen
otccfflóo ortivomente o usted. los trabajos técnicos. Se identifican los riesgos poten
ciales, se evalúa su p ro b a b ilid ad y su im pacto y se
establece una prioridad según su im portancia. Des
p ués, el equipo de Softw are estab lece un plan para
Desgraciadam ente, el jefe del proyecto de software controlar el riesgo. El prim er objetivo es evitar el ries
norm alm ente no es Indiana Jones y los m iem bros de su go, pero com o no se pueden evitar todos los riesgos,
equipo no son sus fiables colaboradores. Sin embargo, el equipo trabaja para desarrollar un plan de contin
la mayoría de los equipos de software confían solamente gencia que le perm ita responder de una m anera efi
en las estrategiasde riesgo reactivas. En el m ejor de los caz y controlada. A lo largo de lo que queda de este
casos, la estrategia reactiva supervisa el proyecto en pre cap ítu lo , estudiam os la estra te g ia proactiva para el
visión de posibles riesgos. Los recursos se ponen apar control de riesgos.
Aunque ha habido amplios debates sobre la definición ción y organización), recursos, cliente y requisitos y su
adecuada para riesgo de software, hay acuerdo común impacto en un proyecto de software. En el Capítulo 5, la
en que el riesgo siem pre im plica dos características com plejidad del proyecto, tam año y el grado de incerti-
[HIG95]: dumbre estructural fueron tam bién definidos como fac
* Incertidumbre: el acontecimiento que caracteriza al tores (y estimados) de riesgo del proyecto.
L os riesgos técnicos amenazan la calidad y la plani
riesgo puede o no puede ocurrir; por ejemplo, no hay
ficación tem poral del software que hay que producir. Si
riesgos de un 100 por 100 de probabilidad'.
un riesgo técnico se convierte en realidad, la imple-
• Pérdida: si el riesgo se convierte en una realidad,
m entación puede llegar a ser difícil o im posible. Los
ocurrirán consecuencias no deseadas o pérdidas.
riesgos técnicos identifican problem as potenciales de
Cuando se analizan los riesgos es importante cuan- diseño, implementación, de interfaz, verificación y de
tificar el nivel de incertidumbre y el grado de pérdidas m antenimiento. Además, las ambigüedades de especi
asociado con cada riesgo. Para hacerlo, se consideran ficaciones, incertidumbre técnica, técnicas anticuadas
diferentes categorías de riesgos. y las «tecnologías punta» son tam bién factores de ries
go. Los riesgos técnicos ocurren porque el problem a es
^ ¿Qué tipo de riesgos es problable m ás difícil de resolver de lo que pensábamos.
W que nos encontremos en el Los riesgos del negocio amenazan la viabilidad del
software que se construye? software a construir. Los riesgos del negocio a menudo
ponen en peligro el proyecto o el producto. Los candi
Los riesgos del proyecto amenazan al plan del pro datos para los cinco principales riesgos del negocio son:
yecto; es decir, si los riesgos del proyecto se hacen rea (1) construir un producto o sistem a excelente que no
lidad, es probable que la planificación tem poral del quiere nadie en realidad (riesgo de mercado); (2) cons
proyecto se retrase y que los costes aumenten. Los ries truir un producto que no encaja en la estrategia com er
gos del proyecto identifican los problemas potenciales de cial general de la com pañía (riesgo estratégico); (3)
presupuesto, planificación tem poral, personal (asigna construir un producto que el departamento de ventas no
www.FreeLibros.org
1 Un riesgo del 100 por 100 es una limitación del proyecto de soft
ware.
98
CAPÍTULO 6 A N Á LI S IS Y G E S T I Ó N DEL R I E S G O
sabe cómo vender; (4)perder el apoyo de una gestión Otra categorización general de los riesgos ha sido pro
experta debido a cam bios de enfoque o a cam bios de puesta por Charette [CHA89]. Los riesgos conocidos son
personal (riesgo de dirección); (5) perder presupuesto todos aquellos que se pueden descubrir después de una
o personal asignado (riesgos de presupuesto). E s extre cuidadosa evaluación del plan del proyecto, del entorno
madamente im portante recalcar que no siem pre fun técnico y comercial en el que se desarrolla el proyecto y
ciona una categorización tan sencilla. Algunos riesgos otras fuentes de inform ación fiables (por ejemplo: fechas
son simplemente im posibles de predecir. de entregapoco realistas, falta de especificación de requi
sitos o de ám bito del software, o un entorno pobre de
desarrollo). Los riesgos predecibles se extrapolan de la
experiencia en proyectos anteriores (por ejemplo: cam
.{Hoy en dio,] nadie se permite el lujo de conocer tan bio de personal, m ala com unicación con el cliente, dis
bien una toreo que no contengo ninguna sorpresa, y minución del esfuerzo del personal a medida que atienden
peticiones de mantenimiento). Los riesgos impredecibles
son el com odín de la baraja. Pueden ocurrir, pero son
extrem adam ente difíciles de identificar por adelantado.
La identificación del riesgo es un intento sistem áti . Impacto en el negocio: riesgos asociados con las limi
co para especificar las am enazas al plan del proyecto taciones impuestas por la gestión o por el mercado.
(estimaciones, planificación temporal, carga de recur ■ C aracterísticas del cliente: riesgos asociados con la
sos, etc.). Identificando los riesgos conocidos y prede sofisticación del cliente y la habilidad del desarro
cibles, el gestor del proyecto da un paso adelante para llador para comunicarse con el cliente en los m om en
evitarlos cuando sea posible y controlarlos cuando sea tos oportunos.
necesario. • D efinición del p ro ceso : riesgos asociados con el
grado de definición del proceso del software y su
seguimiento por la organización de desarrollo.
■ Entorno de desarrollo: riesgos asociados con la dis
Aunque los riesgos genéricos son importantes a tener en
ponibilidad y calidad de las herram ientas que se van
cuento, hobitualmente los riesgos específicos del producto
provocan lo mayoría de los dolores de cabeza. Esté
a em plear en la construcción del producto.
convenciio al invertirel tiempoen identificartantos • Tecnología a construir: riesgos asociados con la com
riesgos específicos de/producto como seo posible. plejidad del sistema a construir y la tecnología punta
que contiene el sistema.
Existen dos tipos diferenciados de riesgos para cada • Tamañoy experiencia de la plantilla: riesgos asocia
categoría presentada en la Sección 6.2: riesgos genéri dos con la experiencia técnica y de proyectos de los
cos y riesgos específicos del producto. Los riesgos gené ingenieros del software que van a realizar el trabajo.
ricos son una amenaza potencial para todos los proyectos
de software. Los riesgos específicos de producto sólo
los pueden identificar los que tienen una clara visión de
la tecnología, el personal y el entorno específico del pro
yecto en cuestión. Para identificar los riesgos específi
cos del producto, se examinan el plan del proyecto y la
declaración del ámbito del software y se desarrolla una lista de comprobación de elementos del riesgo.
respuesta a la siguiente pregunta: «¿Qué características
La lista de com probaciónde elementos de riesgo pue
especiales de este producto pueden estar am enazadas
de organizarse de diferentes m aneras. Se pueden res
por nuestro plan del proyecto?»
ponder a cuestiones relevantes de cada uno de los temas
Un m étodo para identificar riesgos es crear una lis
apuntados anteriorm ente para cada proyecto de soft
ta de comprobación de elem entos de riesgo. L a lista
ware. Las respuestas a estas preguntas perm iten al pla
de comprobación se puede utilizar para identificar ries
nificador del proyecto estim ar el im pacto del riesgo. Un
gos y se centra en un subconjunto de riesgos conoci
form ato diferente de lista de com probación de elem en
d o s y predecibles en las sig u ien tes subcategorías
tos de riesgo contiene sim plem ente las características
www.FreeLibros.org
genéricas: relevantes para cada subcategoría genérica. Finalm en
• Tamaño del_producto: riesgos asociados con el tamaño te, se lista un conjunto de «componentes y controlado
general del software a construir o a modificar. res del riesgo» [AFC88] ju n to con sus probabilidades
99
I N GE NI E RÍ A DEL S O F T W A R E . UN EN F O Q U E P R Á C T I C O
go, se puede utilizar una lista de preguntas relativam ente 1 .¿ S e h a n e n tre g a d o lo s g e s to re s d el s o ftw a re
pequ eñ a p ara prop o rcio n ar u n a indicación p re lim in a r y c lie n te s fo rm a lm e n te p a ra d a r so p o rte al p ro
de cuando un proyecto es «arriesgado». y e c to ?
2. ¿E stán com pletam ente entusiasm ados los usuarios
finales con el proyecto y con el sistem a/producto a
construir?
del riesgo es gestión de proyectos poro
3. ¿H an com prendido el eq u ip o de ingenieros de soft
w are y los clientes todos los requisitos?
4 . ¿H an estado los clientes involucrados p o r com pleto
en la definición de los requisitos?
6.3.1. E v a lu a c ió n G lo b a l d e l R ie s g o d e l P royecto
5. ¿T ienen los usuarios finales expectativas realistas?
Las siguientes preguntas provienen de los datos del ries
go obtenidos m ediante las encuestas realizad as a g e s 6. ¿Es estable el ám bito del proyecto?
^^CO M PO NENTES
R E N D IM IE N T O SOPORTE C OSTE P L A N IF IC A C IÓ N
TEM PORAL
C A T E G O R ÍA X
Dejar de cumplir los requisitos provocaría Malos resultados en un aumento de costes y retrasos de la
1
el fallo de la misión planificación temporal con gastos que superan las £500.001
Dejar de cumplir los requisitos degradaría Malos resultados en retrasos operativos y/o
1 el rendimiento del sistema hasta donde aumento de coste con un valor esperado
el éxito de la misión es cuestionable de €100.000a f500.000
C R IT IC A
Alguna reducción Pequeños retrasos Algunos recortes de los Posibles retrasos
2 en el rendimiento en modificaciones recursos financieros, posibles en la fecha de entrega
técnico de software excesos del presupuesto
Dejar de cumplir los requisitos provocaría Los costes, impactos y/o retrasosrecuperables
1
la degradación de la misión secundaria de la planificación temporal con un valor estimado
de fl.OOO a flOO.OOO
M A R G IN A L
De mínima a pequeña El soporte Recursos Planificación temporal
2
reducción en el del software financieros suficientes realista, alcanzable
rendimiento técnico responde
Dejar de cumplir los requisitos provocaría Los errores provocan impactos mínimos en el coste y/o
1 inconvenientes o impactos no operativos planificación temporal con un valor esperado de menos
de fl.OOO
D E S P R E C IA B L E
No hay reducción Software fácil Posible superávit Fecha de entrega
2 en el rendimiento de dar soporte de presupuesto fácilmente alcanzable
técnico
www.FreeLibros.org
Nota :(1) Posiblesconsecuenciasde erroreso defectos del software no detectados.
(2) Posibles consecuencias si el resultado deseado no se consigue.
100
CAPÍTULO 6 A N Á LI S IS Y G E S T I Ó N DEL R I E S G O
R ie s g o s á t e g o r íc ro b a b ilid a c mpacto
«Un radar del riesgo)) es una base de datos de gestión de
riesgoque ayuda a los gestores del proyectoa identificar,
priorizary comunicor los riesgos del proyecto. Se puede La e stim ación d e l ta m a ñ o puedi PS 60% 2
ser s ig n ific a tiv a m e n te b a ja
encontraren www.spmn.com/rsktrkr.html
M a y o r n ú m e ro d e u s u a rio s PS 30% 3
de lo s p re v is to s
M e n o s re u tiliza ció n . PS 70% 2
6.3.2. C o m p o n e n te s y c o n tr o la d o r e s d e l r ie s g o de la p re v is ta
Las Fuerzas A éreas de E stad o s U n id o s [A FC 88] han Los u s u a rio s fin a le s BU 40% 3
se re s is te n al s is te m a
redactado un docum ento que contiene excelentes d irec
La fe c h a d e e n tre g a e s ta rá BU 50% 2
trices p ara identificar riesg o s del softw are y evitarlos. m u y a ju s ta d a
El enfoque de las Fuerzas A éreas requiere que el g e s S e p e rd e rá n los p re s u p u e s to s cu 40% 1
tor del p royecto identifique los co n troladores del ries E l c lie n te c a m b ia rá PS 80% 2
go que afectan a los com ponentes de riesgo del softw are lo s re q u is ito s
— rendim iento, co ste, sop o rte y p la n ific a ció n te m p o La te c n o lo g ía no a lc a n za rá TE 30% 1
ral— En el contexto de este estudio, los com ponentes la s e s p e c ta tiv a s
PR O Y EC C IÓ N DEL RIES.G.Q
Laproyeccióndel riesgo, tam b ién d enom inada estima del riesgo e n el proyecto y en el producto, y (4)a pun-
ción del riesgo, intenta m ed ir cada riesgo de dos m an e tar la exactitud general de la proyección del riesgo de
ras — la p ro b a b ilid a d de que el rie sg o sea real y las m anera que n o h ay a confusiones.
consecuencias de los p roblem as asociados con el rie s
go, si ocurriera— . El je fe del proyecto, ju n to con otros
gestores y p ersonal técnico, realiza cu atro actividades 6.4.1. D e s a rro llo d e u n a t a b l a d e r ie s g o
de proyección del riesgo [1 ]: (1) establecer una escala U na tabla de riesgo le proporciona alj efe del proyecto una
que refleje la pro b ab ilid ad p ercib id a del riesgo; (2) defi sencilla técnica para la proyección del riesgo'. E n la Figu
nir las co nsecuencias del riesgo; (3) estim ar el im pacto ra 6.2 se ilustra una tabla de riesgo com o ejem plo.
www.FreeLibros.org
2 La tabla de riesgo debería im plem entarse com o un m odelo de hoja
de cálculo. Esto permite un fácil m anejo y ordenación de las en tra
das.
101
I N GE NI E RI A DEL S OFT W ARE . UN E N F O Q U E P R Á C T I C O
Un equipo de proyecto empieza por listar todos los Una vez que se han com pletado las cuatro primeras
riesgos (no importa lo remotos que sean) en la primera columnas de la tabla de riesgo, la tabla es ordenada por
columna de la tabla. Se puede hacer con la ayuda de la probabilidad y por impacto. Los riesgos de alta proba
lista de com probación de elementos de riesgo presen bilidad y de alto impacto pasan a lo alto de la tabla, y
tada en la Sección 6.3. Cada riesgo es categorizado en los riesgos de baja probabilidad caen a la parte de aba
la segunda columna (por ejemplo: PS implica un ries jo . Esto consigue una priorización del riesgo de primer
go del tam año del proyecto, BU implica un riesgo de orden.
negocio). La probabilidad de aparición de cada riesgo El je fe del proyecto estudia la tabla ordenada resul
se introduce en la siguiente columna de la tabla. El valor tante y define una línea de corte. L a Einea de corte (dibu-
de la probabilidad de cada riesgo puede estimarse por jad a horizontalm entedesde un punto en la tabla) implica
cada miem bro del equipo individualmente. Se sondea que sólo a los riesgos que quedan por encima de la línea
a los m iem bros del equipo individualmente de un m odo se les prestará atención en adelante. Los riesgos que
rotativo (round-robin) hasta que comience a converger caen por debajo de la línea son reevaluados para con
su evaluación sobre la probabilidad del riesgo. seguir una priorización de segundo orden. Como mues
tra la Figura 6.3, el impacto del riesgo y la probabilidad
tienen diferente influencia en la gestión. Un factor de
riesgo que tenga un gran im pacto pero muy poca pro
babilidad de que ocurra no debería absorber una canti
dad significativade tiem po de gestión. Sin embargo, los
riesgos de gran impacto con una probabilidad moderada
a alta y los riesgos de poco im pacto pero de gran pro
babilidad deberían tenerse en cuenta en los procedi
mientos de análisis de riesgos que se estudian a conti
nuación.
8®
C LA VE
I a tabla de riesgos está ordenada por probabilidad
y por el Impacto para asignar una prioridad a los riesgos.
www.FreeLibros.org
3 Puede usarse una m edia ponderada si un com ponente de riesgo ' En inglés RM M M (Risk Mitigation, Monitoring and M anagem ent).
tiene m ás influencia en el proyecto.
102
CA P Í T U L O 6 A N Á LI S IS Y G E S T I Ó N DEL R I E S G O
cada valor cualitativo (por ejem plo: una probabilidad desarrollo). Puesto que la m edia por componente es
del 0.7 al 1.0 im plica un riesgo muy probable). de 100 LDC y los datos locales indican que el cos
te de la ingeniería del software para cada LDC es de
£14,00; el coste global (impacto) para el desarrollo
6.4.2. E v a lu a c ió n d e l im p a c to d e l r ie sg o
de componentes sería 18 x 100 x 14 = 225.200
Tres factores afectan a las consecuencias probables de
un riesgo si ocurre: su naturaleza, su alcance y cuando E xposición al riesgo : ER = 0,80 x 25.200 -
ocurre. La naturaleza del riesgo indica los problem as 220.200
probables que aparecerán si ocurre. Por ejem plo, una La exposición al riesgo se puede calcular para cada
interfaz externa m al definidapara el hardware del clien riesgo en la tabla de riesgos, una vez que se ha hecho
te (un riesgo técnico) im pedirá un diseño y pruebas tem una estim ación del coste del riesgo. La exposición al
pranas y probablemente lleve a problemas de integración riesgo total para todos los riesgos (sobre la línea de cor
más adelante en el proyecto. El alcance de un riesgo te en la tabla de riesgos) puede proporcionar un signifi
combina la severidad (¿cómo de serio es el problema?) cado para ajustar el coste final estimado para un proyecto.
con su distribución general (¿qué proporción del pro Tam bién puede ser usado para predecir el increm ento
yecto se verá afectado y cuantos clientes se verán per probable de recursos de plantilla necesarios para varios
judicados?). Finalmente, la tem porización de un riesgo puntos durante la planificación del proyecto.
considera cuándo y por cuánto tiem po se dejará sentir La proyección del riesgo y las técnicas de análisis
el impacto. En la m ayoría de los casos, un je fe de pro descritas en las Secciones 6.4.1 y 6.4.2 se aplican rei
yecto prefiere las «malas noticias» cuanto antes, pero teradam ente a medida que progresa el proyecto de soft
en algunos casos, cuanto m ás tarden, mejor. ware. El equipo del proyecto debería volver a la tabla
Volviendo una vez m ás al enfoque del análisis de de riesgos a intervalos regulares, volver a evaluar cada
riesgo propuesto por las Fuerzas Aéreas de Estados Uni riesgo para determ inar qué nuevas circunstancias hayan
dos [AFC88], se recom iendan los siguientes pasos para podido cambiar su im pacto o probabilidad. Com o con
determinar las consecuencias generales de un riesgo: secuencia de esta actividad, puede ser necesario añadir
1. Determinar la probabilidad m edia de que ocurra un nuevos riesgos a la tabla, quitar algunos que ya no sean
valor para cada componente de riesgo. relevantes y cam biar la posición relativa de otros.
2. Empleando la Figura 6.1, determ inar el impacto de
cada com ponente basándose en los criterios m o s ^ C T W S E fO ^
trados. Compare lo ER poro todos los riesgos con el coste estimado
3. Completar la tabla de riesgo y analizar los resulta delproyecto. SI lo ER es superior al 50 por lOOdelcoste
dos como se describe en las secciones precedentes. del proyecto, se deberá evaluar lo viabilidad delproyecta.
§ consecuencias de un riesgo?
www.FreeLibros.org
100 pueden usarse, 18 com ponentes tendrán que binación de los cuatro) que provoquen que se term ine el
desarrollarse improvisadamente (además de otro soft proyecto. Si una com binación de riesgos crea problemas
ware personalizado que ha sido planificado para su de m anera que uno o m ás de estos niveles de referencia
103
I N G E N IE RÍ A DEL S O F T W A R E . UN EN F O Q U E P R Á C T I C O
6.5..R£nifAMl£ííT.QJ^EI.ÜIESGQ__
D urante las p rim eras etapas de la planificación del en el sistem a que se está construyendo, teniendo com o
proyecto, un riesgo puede ser declarado de un m odo muy resultado la necesidad de que el ingeniero tenga que cons
general. C o n el p aso del tiem p o y co n el ap rendizaje tru ir el 30 p o r 100 de los com ponentes restantes.
sobre el p royecto y sobre el riesgo, es p osible refinar el L a condición general que acabam os de destacar pue
riesgo en u n conjunto de riesgos m ás detallados, cada de ser refinada de la siguiente m anera:
uno algo m ás fácil de reducir, supervisar y gestionar. S ubcondición 1: C iertos com ponentes reutiliza-
bles fueron desarrollados p o r terceras personas sin el
¿Cuál es una buena forma conocim iento de los estándares internos de diseño.
W de describir un riesgo?
S ubcondición2: El estándar de diseño para inter
U n a fo rm a de h a c e r e sto es p re se n ta r el rie sg o de faces de com ponentes no h a sido asentado y puede
la fo rm a c o n d íc íó n -tr a n s íc íó n -c o n s e c u e n c ía (C T C ) no ajustarse a ciertos com ponentes reutilizablesexis-
[G L U 94], E s decir, el rie sg o se p resenta de la sig u ie n tentes.
te fo rm a : S ub co n d ició n 3: C iertos com ponentes reutiliza-
D ad a esta < co n d ició n > entonces existe p reocupación bles h a n sido im p le m e n ta d o s en un le n g u a je no
p o r (posiblem ente) < consecuencia>. so portado p o r el en to rn o para el que el sistem a ha
sido construido.
Utilizando el form ato CTC para volver a utilizar el ries
go presentado en la Sección 6.4.2, podem os escribir: Las consecuencias relacionadas con estas subcondi-
Dado que todos los com ponentesreutilizablesdel soft ciones refinadas siguen siendo las m ism as (por ejem plo,
w are deben ajustarse a los estándares específicos del dise el 30 p o r 100 de los com ponentes del softw are deben ser
www.FreeLibros.org
ñ o y que algunos no lo hacen, es entonces preocupante construidos de un m odo personalizado), pero el refin a
que (posiblem ente) solo el 70 p o r 100 de los m ódulos m iento ayuda a aislar los riesgos señalados y puede con
planificados p ara reu tilizar puedan realm ente integrarse ducir a un análisis y respuesta m ás sencilla.
104
CAPÍTULO 6 A N Á LI S IS Y G E S T I Ó N DEL RIES GO
Todas las actividades de análisis de riesgo presentadas y ecto supervisa factores que pueden p roporcionar una
hasta ahora tienen un solo objetivo - a y u d a r al equipo in d ic a c ió n so bre si el rie sg o se e stá h a c ie n d o m á s o
del proyecto a desarrollar una estrategia para tratar los m enos probable. E n el caso de gran m ovilidad del p e r
riesgos—. U na estrategia eficaz debe considerar tres sonal, se pueden supervisar los siguientes factores:
aspectos: • A ctitud general de los m iem bros del eq uipo b asán
• Evitar el riesgo. dose en las presiones del proyecto;
• Supervisar el riesgo, y ■ G rado de com penetración del equipo;
• Gestionar el riesgo y planes de contingencia. • R elaciones in te rp erso n ale s entre los m iem b ro s del
equipo;
. P roblem as potenciales con com pensaciones y b e n e
ficios;
Si ton» tantos precauciones, es paro no dejor
■ D isponibilidad de em pleo dentro y fu era de la c o m
pañía.
www.FreeLibros.org
vídeos, el desarrollo de «docum entos con com entarios»
A medida que progresa el proyecto, com ienzan las y/o reuniones con otros m iem bros del equipo que p er
actividades de supervisión del riesgo. El je fe del pro m anezcan en el proyecto.
105
IN GE NI E RÍ A DEL S O F TW A RE . UN EN F O Q U E P R Á C T I C O
Estado actual:
■ f 5/12/02: F a s e s d e re d u c c ió n in iciad as.
SsSMBBBBÜáÉshJ
www.FreeLibros.org
Autor: J o h n G a g n e Asignado: B. L a s te r
Se puedeencontrar unagran base de datos contodos las
entradas del ForoACMsobre riesgosen
catless.nd.ac.uk/Risks/search.html F IG U R A 6 .5 . Hoja de inform ación de riesgo [W IL97]
106
CAPÍTULO 6 A N Á LI S IS Y G E S T I Ó N DEL R I E S G O
La seguridad del software y el análisis del p elig ro falle el sistem a entero. Si se pueden id en tificar los
son actividades para g arantizar la calidad del so ft p elig ro s al p rin cip io del proceso de in g en iería del
ware (Capítulo 8) que se centra en la identificación software, se pueden especificar características de dise
y evaluación de p elig ro s p o ten cia le s que pueden ño softw are que elim inen o controlen esos peligros
impactar al softw are negativam ente y provocar que potenciales.
ÜilL&JSL PLAM.BjSjGUL
Se puede incluir una estrategia de gestión de riesgo en el que la creación y entrada de información, ordenación
plan del proyecto de software o se podrían organizar los por prioridad, búsquedas y otros análisis pueden ser rea
pasos de gestión del riesgo en un Plan diferente de reduc lizados con facilidad.. El form ato de la H IR se muestra
ción, supervisióny gestión del riesgo (Plan RSGR). Todos en la Figura 6.5.
los documentos del plan RSG R se llevan a cabo com o Una vez que se ha desarrollado el plan RSG R y el
parte del análisis de riesgo y son empleados por el jefe proyecto ha comenzado, em piezan los procedim ientos
del proyecto como parte del Plan del Proyecto general. de reducción y supervisión del riesgo. Com o ya hemos
dicho antes, la reducción del riesgo es una actividad para
evitar problemas. La supervisión del riesgo es una acti
vidad de seguim iento del proyecto con tres objetivos
principales: (1) evaluar cuando un riesgo previsto ocu
rre de hecho; (2) asegurarse de que los procedim ientos
para reducir el riesgo definidos para el riesgo en cues
Plan RSGR tión se están aplicando apropiadamente; y (3) recoger
inform ación que pueda emplearse en el futuro para ana
Algunos equipos de software no desarrollan un docu lizar riesgos. En m uchos casos, los problem as que ocu
mento RSGR formal. M ás bien, cada riesgo se docu rren durante un proyecto pueden afectar a m ás de un
menta utilizando una hoja de inform ación de riesgo riesgo. Otro trabajo de la supervisión de riesgos es inten
(HIR) [WIL97], En la m ayoría de los casos, la HZR se tar determ inar el origen -qué riesgo(s) ocasionaron tal
mantiene utilizando un sistema de base de datos, por lo problem a a lo largo de todo el proyecto - .
Cuando se pone mucho enjuego en un proyecto de soft El análisis de riesgos puede absorber una cantidad
wate el sentido com ún nos aconseja realizar un análisis significativa del esfuerzo de planificación del proyec
cb riesgo. Y sin embargo, la m ayoría de los jefes de pro to. Pero el esfuerzo m erece la pena. Por citar a Sun Tzu,
yecto lo hacen informal y superficialm ente,si es que lo un general chino que vivió hace 2.500 añ o s,« Si cono
hacen El tiempo invertido identificando, analizando y ces al enem igo y te conoces a ti mismo, no tendrás que
gestionando el riesgo m erece la pena por m uchas razo tem er el resultado de cien batallas». Para el je fe de pro
nes: menos trastornos durante el proyecto, una mayor habi yectos de software, el enemigo es el riesgo.
lidad de seguir y controlar el proyecto y la confianza que
da planificar los problemas antes de que ocurran.
[AFC88] Software Risk Ahatement, AFCS/AFLC Pamphlet [DRU75] Drucker, P., M anagement, W. Heinemann, Ltd.,
800-45,U.S. Air Forcé, 30 de Septiembre 1988. 1975.
[BOE89] Boehm, B. W., Software Risk Management, IEEE [GIL88] Gilb, T.,Principies cf Software Engineering Mana
Computes Society Press, 1989. gement, Addison-Wesley, 1988.
[CHA89] Charette, R. N., Software Engineering Risk Analy- [GLU94] Gluch, D.P., «A Construct for Describing Softwa
sis and Management, McGraw-Hill/Intertext, 1989. re Development Risk», C M U /SEI-94-TR -14, Software
www.FreeLibros.org
Engineering Institute, 1994.
[CHA92] Charette,R. N., «BuildingBridgesOverlntelligent
Rivers », American Programmer, vol. 5, n.s 7, Septiem [HAL98] Hall, E. M .,M anaging Risk:Methods fo r Software
bre 1992,pp. 2-9. Systems Development, Addison Wesley, 1998.
107
IN GE NIE RÍA DEL S OFT W ARE . UN E N F O Q U E P R Á C T I C O
[HIG95] Higuera, R.P, «Team Risk Management», CrossTalk, [ROW88] Rowe, W. D., An Anatomy ofRisk, Robert E. Krie-
US Dept. of Defense, Enero 1995,pp. 2-4. ger Publishing Co., Malabar, FL, 1988.
[KAR96] Karolak, D.W., Software Engineering Risk Mana [SEI93] Taxonomy-BasedRisk Identification, Software Engi
gement, IEEE Computer Society Press, 1996. neering Institute, CMU/SEI-93-TR-6, 1993.
[TH092] Thomsett, R., «The Indiana Jones School of Risk
[KEI98] Keil, M. et al., «A Framework for Identifying Soft
Management», American Programmer, vol. 5, n.° 7, Sep
ware Project Risks», CACM, vol 41, n,el l , Noviembre
tiembre 1992, pp. 10-18.
1998,pp.'76-83.
[WIL97] Williams, R.C., J.A.Walker y A.J. Dorofee, «Put-
[LEV95] Leveson, N. G., Safeware: System Safety and Com ting Risk Management into Practice», IE E E Software,
putes, Adisson-Wesley, 1995. Mayo 1997,pp. 75-81.
6.1. Proporcione cinco ejemplos de otros campos que ilustren 6.8. Desarrolle una estrategia de supervisión del riesgo y sus acti
los problemas asociados con una estrategia reactiva frente al vidades específicaspara tres de los riesgos señalados en la Figu
riesgo. ra 6.2. Asegúrese de identificar los factores que va a supervisar
para determinar si el riesgo se hace más o menos probable.
6.2. Describa la diferencia entre «riesgos conocidos» y «ries
gos predecibles». 6.9. Desarrolle una estrategia de gestión del riesgo y sus acti
vidades específicas para tres de los riesgos señalados en la
6.3. Añada tres cuestiones o temas a cada una de las listas de
Figura 6.2.
comprobación de elementos de riesgo que se presentan en el
sitio web SEPA. 6.10. Trate de refinar tres de los riesgos señalados en la figura
6.2 y realice las hojas de informacióndel riesgo para cada uno.
6.4. Se le ha pedido que construya un software que soporte un
sistema de edición de vídeo de bajo coste. El sistema acepta 6.11. Represente 3 de los riesgos señalados en la figura 6.2 uti
cintas de vídeo como entrada de información, almacena el lizando el formato CTC.
vídeo en disco, y después permite al usuario realizar un amplio
6.12. Vuelva a calcular la exposición al riesgo tratada en la
abanico de opciones de edición al vídeo digitalizado. El resul
Sección 6.4.2 donde el coste/LDC es £16 y la probabilidad es
tado (salida) se envía a una cinta. Realice una pequeña inves
del 60 por 100.
tigación sobre sistemas de este tipo, y después haga una lista
de riesgos tecnológicos a los que se enfrentaría al comenzar 6.13. ¿Se le ocurre alguna situación en la que un riesgo de alta
un proyecto de este tipo. probabilidad y gran impacto no formará parte de su plan
RSGR?
6.5. Usted es el je fe de proyectos de una gran compañía de
software. Se le ha pedido que dirija a un equipo que está 6.14. Respecto a la referencia de riesgo mostrada en la Figu
desarrollando un software de un procesador de textos de ra 6.4, ¿será siempre la curva un arco simétrico como el que
«nueva generación» (ver Sección 3.4.2 para obtener una bre aparece, o habrá situaciones en las que la curva esté más dis
ve descripción). Construya una tabla de riesgo para el pro torsionada? Si es así, sugiera un escenario en el que esto pue
yecto. da ocurrir.
6.6. Describa la diferenciaentre componentes de riesgo y con 6.15. Realice una investigación sobre aspectos de seguridad
troladores de riesgo. del software y escriba una pequeña redacción sobre el tema.
Desarrolle un buscador web para obtener información actual.
6.7. Desarrolle una estrategia de reducción del riesgo y sus
actividades específicas para tres de los riesgos señalados en la 6.16. Describa cinco áreas de aplicación de softwareen las que
Figura 6.2. la seguridad del software y el análisis de riesgo sean vitales.
Las lecturas sobre la gestión del riesgo del software se han Chapman, C.B., y S. Ward. Project Risk Management:
expandido significativamente en los Últimos años. Hall Processes, TechniquesandInsights, Wiley, 1997.
[HAL98] presenta uno de los tratados más completos del tema. Schuyler, J. R., Decisión Analysis in Projects, Project
Karolak [KAR96] ha escrito una guía que introduce un mode Management Institute Publications, 1997.
lo de análisis del riesgo fácil de usar con listas de compro
bación y cuestionarios que merece la pena. Grey ha realizado Wideman,R. M. (editor). Project & Program Risk Mana
una instantánea de la evaluación del riesgo (Practical Risk gement: A Guide to Managing Project Risk and Opportuni-
www.FreeLibros.org
Assessmentfor Project Management, Wiley, 1995). Su trata ties, Project Management Institute Publications, 1998.
do abreviado proporciona una buena introducción al tema. Capers Jones (Assesment and Control d Software Risks,
Otros libros que merecen la pena son: Prentice-Hall, 1994)presenta un detallado estudio sobre ries
108
CAPÍTULO 6 A NÁ LI SI S Y G ES TI Ó N DEL R I E S G O
gos del software que incluye información reunida de cientos Los tratados de Marzo 1995 de American Programmer,
ds proyectos de software. Jones define 60 factores de riesgo Mayo 1997 de IEEE Software, y Junio 1998 Cutter IT Jour
que pueden afectar al resultado de los proyectos de softwa nal están dedicados a la gestión del riesgo.
re Boehm [BOE89] sugiere unos excelentes cuestionarios y El Instituto de Ingeniería del Software ha publicado muchos
formatos de listas de comprobación que pueden resultar de informes y guías detallados sobre el análisis y gestión del ries
valor incalculable a la hora de identificar riesgos. Charrette go. El Air Forcé Systems Command Pamphlet AFSCP 800-45
[CHA89] presenta un detallado tratado de los mecanismos de [AFC88] describe técnicas de identificación y reducción de
análisis de riesgo, recurriendo a la teoría de probabilidades y riesgos. Todos los números de ACM Software Engineering
técnicas estadísticas para analizar riesgos. En un volumen Notes publican una sección titulada «Riesgos para el público»
adjunto, Charette (Application Strategies fo r RiskAnafysis, (editor, P. G. Neumann). Si quiere las últimas y mejores his
McGrawHill, 1990) analiza el riesgo en el contexto tanto del torias de horror de software, éste es el lugar adonde ir.
sistema como de la ingeniería del software y define unas estra En Internet están disponibles una gran variedad de fuen
tegias pragmáticas para la gestión del riesgo. Gilb [GIL88] tes de información relacionadas con temas de análisis y ges
presenta un conjunto de «principios» (que son a menudo diver- tión del riesgo. Se puede encontrar una lista actualizada con
tidosy algunas veces profundos) que pueden servir como una referencias a sitios (páginas) web que son relevantes para el
FU directriz para la gestión del riesgo. riesgo en http://www.pressman5.com.
www.FreeLibros.org 109
www.FreeLibros.org
P L A N IF IC A C IÓ N T E M P O R A L
Y S E G U IM IE N T O D EL P R O Y E C T O
finales de los años 60, un joven y brillante ingeniero fue elegido para «escribir» un pro
A gram a de com putadora para una aplicación de fabricación automática. El m otivo para
su selección fue sencillo. Era la única persona de su grupo técnico que había asistido
a un seminario de programación de computadoras. Sabía todo sobre el lenguaje ensam blador y
Fortran, pero nada sobre ingeniería del software y mucho m enos sobre la planificación tem po
ral y seguimiento del proyecto.
Su jefe le dio los manuales adecuados y una descripción verbal de lo que tenía que hacer. Se
le informó de que el proyecto debía term inarse en dos meses.
Leyó los manuales, consideró su enfoque y empezó a escribir código. Después de dos sem a
nas de trabajo, el jefe le llamó a su oficina y le preguntó qué tal iban las cosas.
«Muy bien», dijo el joven ingeniero con entusiasm o juvenil, «es más fácil de lo que p en
saba. He terminado cerca del 75 por 100».
El jefe sonrió. «Es realmente estupendo», dijo, alentando al joven ingeniero a que siguiera
trabajando del mismo modo. Acordaron que se reunirían otra vez en una semana.
U na sem ana más tarde el jefe llamó al ingeniero a su oficina y le preguntó: «¿Por dónde
vamos?»
«Todo va muy bien», dijo el joven, «pero me he encontrado con unos pequeños obstáculos.
Los solucionaré y volveré al ritmo de trabajo pronto.»
«¿Cómo ves las fechas límite de entrega?», preguntó el jefe.
«No hay problema», dijo el ingeniero, «estoy cerca de term inar el 90 por 100».
Si ha estado trabajando en el mundo del software durante algunos años, sabrá el final de la his
toria. No es una sorpresa que el joven ingeniero1se estancara en el 90 por 100 durante el resto del
proyecto y que terminara (con la ayuda de otros) con un mes de retraso.
Esta historia se ha repetido docenas de miles de veces con los desarrolladores de software
durante las últimas tres décadas. La gran pregunta es ¿por qué?
VISTAZO RÁPIDO
¿Qué es? Usted ha seleccionado un mode lizan la información solicitada a los truir. El esfuerzo y la duración se asig
lo de proceso adecuado, ha identificado ingenieros de software. A nivel indivi na a cada tarea y se crea una red de
las tareas de ingeniería del software dual, los mismos ingenieros de soft tareas (también llamada red de activi
que hay que llevar a cabo, ha estimado ware. dades) que permita al equipo de soft
la cantidad de trabajo y el número de ¿P or q u é e s im p ortan te? Para cons ware conseguir la fecha límite de
personas necesario, conoce las fechas truir un sistem a complejo, muchas entrega establecida.
límite de entrega e incluso ha conside tareas de ingeniería del software se ¿C uál e s e l p rod u cto o b ten id o ? Se
rado los riesgos. Ahora es el momento realizan en paralelo y el resultado del obtiene la planificación del proyecto e
de unir todos los puntos. Esto es, tiene trabajo desarrollado durante una tarea información relacionada.
que crear una red de tareas de ingenie puede tener un gran efecto en el tra ¿Cómo p u e d o a s e g u r a r q u e lo h e
ría del software que le permitan conse bajo a realizar en otra tarea. Estas h ech o correcta m en te? Una plani
guir el trabajo realizado a tiempo. Una interdependencias son muy difíciles ficación adecuada requiere que (1)
vez creada la red, tiene que asignar la de comprender sin una planificación. todas las tareas aparezcan en la red;
responsabilidad para cada tarea, ase También es virtualm ente imposible (2) el esfuerzo y el tiempo s e asigne
gúrese de hacerlo y de adaptar la red evaluar el progreso en un proyecto de inteligentemente a cada tarea; (3) las
antes de que los riesgos se conviertan software normal o grande sin una pla relaciones entre tareas estén indica
en realidad. En resumidas cuentas, esto nificación detallada. das correctamente; (4) los recursos sean
es la planificación temporal y el segui ¿C uáles son lo s pasos? Las tareas de asignados al trabajo a realizar, y (5) los
miento del proyecto de software. ingeniería del software dictadas por el hitos se sitúen rigurosamente esp a
¿Quién lo hace? A nivel de proyecto, los modelo de proceso del software son ciados para que se pueda seguir el pro
gestores de proyectos de software, uti refinadas por la funcionalidad a cons greso.
111
INGENIERÍA DEL SOFTWARE. UN ENFOQ UE PRÁCTICO
7.1 C O N C E P T O S BÁ SIC OS
Aunque hay muchas razones por las que el software se mentan a m enudo bajo la restricción de una fecha lími
entrega tarde, la mayoría pertenecen a una o más de las te definida. Si las mejores estim aciones indican que la
siguientes causas: fecha límite es poco realista, un gestor de proyecto com
• Una fecha límite de entrega poco realista, estable petente debería «proteger a su equipo de una presión
cida por alguien que no pertenece al grupo de inge [de la planificación temporal] innecesaria...[y] devol
niería del softw are e im puesta a los gestores y ver la presión a quienes la originaron» [PAG85].
profesionales del grupo.
• Cambio de los requisitos del cliente que no se refle
jan en los cambios de la planificación temporal. Adoro las fechas de entrega. Me gusta el sonido
• Una subestimación honesta de la cantidad de esfuerzo peculiar que emiten cuando se aproximan.
y/o el número de recursos que serán necesarios para Douglas Adams
hacer el trabajo.
• Riesgos predecibles y no predecibles que no se con Para ilustrarlo, imagínese que un grupo de desarro
sideraron cuando comenzó el proyecto. llo de software ha sido com isionado para construir un
• Dificultades técnicas que no pudieron ser previstas controlador de tiem po real para un instrumento médico
por adelantado. de diagnóstico que quiere introducirse en el mercado en
• Dificultades humanas que no pudieron ser previstas nueve meses. Después de una cuidadosa estimación y
por adelantado. análisis de riesgos, el gestor del proyecto de software
llega a la conclusión de que el software, tal y como se
• Falta de comunicación entre la plantilla del proyecto
ha pedido, requerirá 14 meses para crearlo con la plan
que causa retrasos.
tilla de la que se dispone. ¿Cómo debe proceder el jefe
• Falta de reconocimiento por parte de la gestión del del proyecto?
proyecto de su retraso y falta de medidas para corre Es poco realista ir a la oficina del cliente (en este
gir el problema. caso el cliente probable es mercadotecnia/ventas) y exi
girle que se cambie la fecha de entrega. Las presiones
externas del m ercado han dictado la fecha y el produc
Los planificaciones temporales irracionales to debe entregarse. También es absurdo rechazar el tra
o excesivas son probablemente la influencia bajo (desde el punto de vista de la carrera profesional).
mas destructiva en el software. Así pues, ¿qué hacer?
Capers Jones
^ ¿Qué deberíamos hacer
Las fechas límite de entrega agresivas (léase «poco • cuando la gestión exige
realistas»), son un hecho consum ado en el m undo del que cumplamos una fecha límite
software. Algunas veces estas fechas límite se piden por de entrega que es imposible?
motivos legítimos desde el punto de vista de la persona Se recomiendan los siguientes pasos en esta situación:
que las establece, pero el sentido común también dice que
1. R ealice una estim ación detallada usando informa
la legitim idad debe ser percibida por las personas que
ción de proyectos anteriores. Determ ine el esfuerzo
hacen el trabajo.
estim ado y la duración del proyecto.
2. Empleando un modelo de proceso incremental (Capí
7.1.1. C om entarios sobre los «retrasos»
tulo 2), establezca una estrategia de desarrollo que
N apoleón dijo una vez: «Un com andante en jefe que proporcione una funcionalidad crítica mínima para
acepta llevar a cabo un plan que considera defectuoso la fecha límite impuesta, pero deje otras funcionali
está com etiendo un error; debe exponer sus razones, dades para más tarde. Documente el plan.
insistir en cam biar el plan y finalm ente presentar su 3. Reúnase con el cliente y (empleando la estimación
dimisión antes de ser el instrumento de la destrucción detallada) explique por qué la fecha límite impuesta
de su ejército.» Duras palabras que muchos gestores de no es realista. Asegúrese de apuntar que todas las esti
proyecto de software deberían considerar. maciones se basan en proyectos del pasado. Asegú
Las actividades de estim ación y análisis de riesgos rese también de indicar la mejora de porcentaje que
estudiadas en los Capítulos 5 y 6, y las técnicas de pla se requerirá para conseguir la fecha límite tal y como
nificación temporal descritas en este capítulo, se imple- está ahora2. El siguiente comentario sería apropiado:
www.FreeLibros.org
2 Si la m ejora de porcentaje es del 10 al 25 por ciento, puede ser posi
ble, de hecho, term inar el trabajo. Pero si se necesita que la mejora
del porcentaje en el rendim iento del equipo sea m ayor del 50 por
ciento. Esta es una previsión no realista.
112
CAPÍTULO 7 P L A N I F I C A C I Ó N T E M P O R A L Y SE G U I M I E N T O DEL P R O D U C T O
«Creo que podemos tener un problema con la fecha camino principal y pueden com pletarse sin preocupar
de entrega del software de controlador XYZ. Les he se del im pacto en la fecha de term inación del proyecto.
entregado a cada uno de ustedes una descomposición Otras tareas se encuentran en el «cam ino crítico»4. Si
abreviada de los ritmos de producción de proyectos estas tareas «críticas» se retrasan, la fecha de term ina
anteriores y una estimación que hemos hecho de varias ción del proyecto entero se pone en peligro.
maneras diferentes. Se fijarán en que he asumido un
20 por 100 de mejora con respecto a los ritmos de pro ^ D O N S E JO ^ .
ducción del pasado, pero todavía obtenemos una fecha
de entrega que está más bien a 14 meses de calenda Las tareas requeridos para lograr el objetivo
de los gestores del proyecto no se deberían realizar
rio que a 9 meses de la presente fecha.»
manualmente. Hay muchas herramientas excelentes
de planificación de proyectos. Utilícelas.
m m m m i
Los modelos de procesos incrementóles se estudian El objetivo del gestor del proyecto es definir todas
en el Capítulo 2.
las tareas del proyecto, construir una red que describa
sus interdependencias, identificar las tareas que son crí
4. Oferte la estrategia de desarrollo incremental como
ticas dentro de la red y después hacerles un seguim ien
alternativa.
to para asegurarse de que el retraso se reconoce «de
«Tenemos pocas opciones y me gustaría que toma inmediato». Para conseguirlo, el gestor debe tener una
ran una decisión basándose en ellas. Primero, pode planificación temporal que se haya definido con un gra
mos aumentar el presupuesto y conseguir recursos do de resolución que le perm ita supervisar el progreso
adicionales de m anera que tengamos la oportunidad y controlar el proyecto.
de tener el trabajo hecho en nueve meses, pero entien L a planificación tem poral de un proyecto de so ft
dan que esto aumenta el riesgo de poca calidad debi ware es una actividad que distribuye el esfuerzo esti
do a lo apretado de las fechas3. m ado a lo largo de la duración prevista del proyecto,
Segundo, podemos quitar un número determ ina asignando el esfuerzo a las tareas específicas de la inge
do de funciones software y capacidades de las que niería del software. Es im portante resaltar, sin em bar
piden. Esto hará la versión prelim inar del producto go, que la planificación tem poral evoluciona con el
algo menos funcional, pero podemos anunciar la fun tiempo. Durante las prim eras etapas de la planificación
cionalidad com pleta para lanzarla a los 14 meses. del proyecto, se desarrolla una planificación temporal
Tercero, podemos contradecir a la realidad y desear macroscópica. Este tipo de planificación temporal iden
poder completarlo en 9 meses. Nos encontrarem os tifica las principales actividades de la ingeniería del soft
con algo que no se pueda entregar a un cliente de ware y las funciones del producto a las que se aplican.
manera alguna. La tercera opción, espero que estén A m edida que el proyecto va progresando, cada entra
de acuerdo, es inaceptable. N uestra experiencia y da en la planificación temporal m acroscópica se refina
nuestras mejores estimaciones dicen que es poco rea en una planificación temporal detallada. Aquí, se iden
lista y una receta para el desastre.» tifican y program an las tareas del software específicas
Habrá gruñidos, pero si se presentan estim aciones (requeridas para realizar una actividad).
sólidas basadas en una buena información histórica, es
probable que se opte por alguna versión negociada de
las opciones 1 ó 2. La fecha límite no realista se desva
necerá. Una planificación temporal demasiado optimista no
produce planes reales más cortos, sino más largos.
Steve McConnell
7.1.2. Principios b á s ic o s
A Fred Brooks, el conocido autor de The M ythical La planificación tem poral para proyectos de desa
Man-Month [B R 095], se le preguntó una vez cóm o se rrollo de software puede verse desde dos perspectivas
retrasan las planificaciones tem porales de los proyec bastante diferentes. En la prim era se ha establecido ya
tos. Su respuesta fue tan simple como profunda: «D ia (irrevocablemente) una fecha final de entrega de un sis
riamente.» tem a basado en computadora. La organización del soft
La realidad de un proyecto técnico (tanto si implica ware está lim itada a distribuir el esfuerzo dentro del
la construcción de una planta hidroeléctrica o desarro marco de tiempo previsto. El segundo punto de vista de
llar un sistema operativo) es que hay que realizar cien la planificación tem poral asum e que se han estudiado
tos de pequeñas tareas antes de p o d er alcan zar el unos límites cronológicos aproximados pero que la fecha
objetivo final. Algunas de estas tareas quedan fuera del final será establecida por la organización de la ingenie
www.FreeLibros.org
3 Puede añadir que agregar m ás personal no reducirá la planificación 4 El cam ino crítico se estudiará con m ás detalle, m ás adelante en este
temporal proporcionalm ente. capítulo.
113
IN G E N IE R ÍA DEL S O F T W A R E . UN E N F O Q U E P R Á C T I C O
ría del software. El esfuerzo se distribuye para conse a cada tarea se le debe asignar una fecha de inicio y otra
guir el m ejor em pleo de los recursos, y se define una de finalización que son función de las interdependencias
fecha final después de un cuidadoso análisis del soft y de si el trabajo se hará a tiempo total o tiempo parcial.
ware. Desgraciadam ente, la prim era situación es más Validación de esfuerzo. Todos los proyectos tienen
frecuente que la segunda. un número definido de miembros de la plantilla. A medi
Como todas las áreas de la ingeniería del software, da que se hace la asignación de tiem po, el gestor del
la planificación tem poral de proyectos de software se proyecto debe asegurarse de que no se ha asignado un
guía por unos principios básicos: núm ero de personas m ayor que el de la plantilla en ese
Compartimentación. El proyecto debe dividirse en momento. Por ejemplo, considere un proyecto que tie
un número de actividades y tareas manejables. Para lle ne una plantilla asignada de tres miem bros (por ejem
var a cabo está com partim entación, se descom ponen plo, 3 personas-día están disponibles por día de esfuerzo
tanto el producto como el proceso (Capítulo 3). asignado5). Un día cualquiera, se deben realizar siete
Interdependencia. Se deben determ inar las inter tareas concurrentemente. Cada tarea requiere 0,50 per
dependencias de cada actividad o tarea com partim en- sonas-día de esfuerzo. Se ha asignado más esfuerzo del
tada. A lgunas tareas deben ocurrir en una secuencia que pueden realizar las personas disponibles.
determinada; otras pueden darse en paralelo. Algunas Responsabilidades definidas. Cada tarea que se pro
actividades no pueden com enzar hasta que el resultado grame debe asignarse a un miem bro del equipo especí
de otras no esté disponible. Otras actividades pueden fico.
ocurrir independientemente. Resultados definidos. Cada tarea programada debe
ría tener un resultado definido. Para los proyectos de
software, el resultado es norm alm ente un producto (por
ejemplo, el diseño de un módulo) o una parte de un pro
ducto. Los productos se com binan frecuentem ente en
Cuando realice una planificación temporal,
entregas.
compartimenfalice el trabajo, represente interdependencias
Hitos definidos. Todas las tareas o grupos de tareas
de tareas, asigne el esfuerzo y tiempo a cada tarea, defina
responsabilidades para el trabajo a desarrollar,
deberían asociarse con un hito del proyecto. Se consi
y defina los resultados y los hitos.
gue un hito cuando se ha revisado la calidad de uno o
más productos (Capítulo 8) y se han aceptado.
Asignación de tiempo. A cada tarea que se vaya a pro C ada uno de los principios anteriores se aplica a
gramar se le debe asignar cierto número de unidades de m edida que evoluciona la planificación tem poral del
trabajo (por ejemplo, personas-día de esfuerzo). Además, proyecto.
www.FreeLibros.org
5 En realidad, se dispone de m enos de tres personas-día debido a reu
niones no m encionadas, enferm edades, vacaciones y o tras razones.
Para nuestro propósito, sin em bargo, asum im os un 100 por 100 de
disponibilidad.
114
CAPÍTULO 7 P L A N I F I C A C I Ó N T E M P O R A L Y S EG U IM IE N TO DEL P R O D U C T O
del software, cada nueva vía de com unicación requie L = P x E 113 t413
re un esfuerzo adicional y, por tanto, un tiem po adi
donde E es el esfuerzo de desarrollo en personas-mes;
cional.
P es un parámetro de productividad que refleja una varie
dad de factores que llevan a un trabajo de ingeniería del
7.2.1. Un ejem plo softw are de alta calidad (los valores típicos de P se
Considere cuatro ingenieros del softw are, cada uno encuentran entre 2.000 y 12.000); y t es la duración del
capaz de producir 5000 LDC/año cuando trabajan en proyecto en meses.
proyectos individuales. Cuando se pone a estos cuatro
ingenieros en un proyecto de equipo, son posibles seis ^ C O N S E JÓ ^ .
vías de comunicación potenciales. Cada vía de com u
Cuando la fecha límite de entrega es cada vez más
nicación requiere un tiempo que podría de otra manera
ajustada, se alcanza un punto en el que el trabajo
emplearse en desarrollar software. Asumiremos que la
no se puede completar según la planificación,
productividad del equipo (medida en LDC) se verá redu
sin tener en cuenta el número de personas
cida en 250 LD C/año por cada vía de com unicación, que lo estén realizando. Afronte la realidad
debido al gasto indirecto asociado con la comunicación. y defino una nueva fecha de entrega.
Por tanto, la productividad del equipo es 20.000 — (250
x 6) = 18.500 LDC/año— un 7,5 por ciento menos de Despejando la ecuación del software anterior, pode
lo que podríamos esperar6. mos llegar a la expresión del esfuerzo de desarrollo E:
El proyecto de un año en el que está trabajando el
equipo anterior se retrasa y a dos m eses de la fecha E = L3 1 (P3 t4) (7.1)
de entrega se agregan dos personas adicionales al equi donde E es el esfuerzo invertido (en personas-año) duran
po. El número de vías de com unicación se dispara a te el ciclo entero de la vida del desarrollo del software y
14. La productividad de la nueva plantilla es la equi del mantenimiento, y t es el tiempo de desarrollo en años.
valente a 840 x 2 = 1.680 LD C para los dos m eses La ecuación de esfuerzo de desarrollo puede relacionar
restantes antes de la entrega. La p roductividad del se con el coste de desarrollo con la inclusión de un fac
equipo es ahora 20.000 + 1.680 - (250 x 14) = 18.180 tor de coste laboral del trabajo ($/personas-año).
LDC/año. Esto lleva a unos interesantes resultados. Considere
un proyecto com plejo de software de tiem po real esti
mado en 33.000 LDC, un esfuerzo de 12 personas-año.
\ Si se han asignado ocho personas al equipo del proyecto,
CLAVE el proyecto puede estar term inado en 1,3 años. Sin
La relación entre el número de personas que trabajan embargo, si extendem os la fecha de finalización a 1,75
en un proyecto de software y la productividad total años, la naturaleza altamente no lineal del modelo des
crito en la Ecuación (7.1) lleva a:
E = L 3 / (P3 r4) - 3 , 8 personas-año
Aunque el ejemplo anterior es una burda sim plifica
ción exagerada de las circunstancias del m undo real, Esto im plica que extendiendo la fecha de finaliza
sirve para ilustrar otro punto clave: la relación entre el ción seis meses, ¡podemos reducir el núm ero de perso
número de personas que trabajan en un proyecto de soft nas desde ocho hasta cuatro! La validez de estos
ware y la productividad global no es lineal. resultados está abierta a debate, pero la implicación es
clara: se pueden obtener beneficios usando menos gen
7.2.2. Una relación em pírica te durante un período de tiem po algo m ayor para reali
zar el mismo trabajo.
Recordando la «ecuación del software» [PUT92] que
se introdujo en el C apítulo 5, podem os dem ostrar la
relación altam ente no lineal entre el tiem po cronoló 7.2.3. D istribución d el esfuerzo
gico para com pletar un proyecto y el esfuerzo hum a Cada una de las técnicas de estimación del proyecto de
no aplicado al proyecto. El número de líneas de código software tratadas en el Capítulo 5 lleva a estimaciones
entregadas (sentencias fuente), L, está relacionado de las unidades de trabajo (por ejemplo, personas-mes)
con el esfuerzo y el tiem po de desarrollo por la ecua requeridas para completar un desarrollo de software. Una
ción: distribución recom endada de esfuerzo en las fases de
www.FreeLibros.org
es efectiva, puede aum entar la calidad del trabajo que se está reali
zando, reduciendo, por tanto, la cantidad de repasos y aum entando
la productividad individual de los m iem bros del equipo. ¡Todavía no
hay veredicto final!
115
INGENIERIA DEL SOFTWARE. UN E N FOQ UE PRÁCTICO
definición y desarrollo se conoce normalmente como la den com prender de un 10 a un 25 por 100 del esfuer
regla 40-20-407. El cuarenta por ciento de todo el esfuer zo del proyecto. El esfuerzo invertido en análisis o
zo o más se asigna a las tareas de análisis y diseño. Un creación de prototipos debería crecer proporcio n al
porcentaje similar se aplica a las pruebas. Se puede dedu m ente con el tam año y la com plejidad del proyecto.
cir correctamente que no se insiste mucho en la creación E ntre un 20 y un 25 por 100 del esfuerzo se aplica
de código (un 20 por 100 del esfuerzo). norm alm ente al diseño del softw are. T am bién debe
considerarse el tiem po em pleado en la revisió n del
^ ¿Cuánto esfuerzo debería diseño y la repetición subsiguiente.
* emplearse en cada una de Debido al esfuerzo aplicado al diseño de software, el
las principales tareas de código debería realizarse con relativa poca dificultad. Se
ingeniería del software? puede alcanzar un rango del 15 al 20 por 100 del esfuer
zo global. Las pruebas y las subsiguientes depuraciones
Esta distribución de esfuerzo debería usarse com o de errores pueden dar cuenta de entre un 30 y un 40 por
una directriz solam ente. Las características de cada 100 restante del esfuerzo de desarrollo del software. La
proyecto dictan la distribución del esfuerzo. El esfuer importancia del software dicta a m enudo la cantidad de
zo gastado en la planificación de un proyecto ra ra pruebas que se requieren. Si el software se ve desde el
m ente supera más del 2 ó el 3 por 100, a no ser que punto de vista hum ano (es decir, el fallo del software
el plan com prom eta a una organización a grandes gas puede generar pérdidas de vidas humanas), se pueden
tos por el gran riesgo. El análisis de los requisitos pue considerar incluso porcentajes más altos.
www.FreeLibros.org
7 Hoy en día, se recom ienda norm alm ente aplicar al análisis y a las
tareas de diseño de grandes proyectos de desarrollo de software m ás
del 40 por 100 de todo el esfuerzo del proyecto. De ahí que el nom
bre de «40-20-40» no se aplique en un sentido estricto.
116
CAPÍTULO 7 P L A N I F I C A C I Ó N T E M P O R A L Y SE G U I M I E N T O DEL P R O D U C T O
www.FreeLibros.org
8 Las situaciones de em ergencia deberían ser raras (no debería ocu
rrir en más de un 10 por 100 de todo el trabajo realizado dentro del
contexto de la ingeniería del softw are). Una em ergencia no es lo
mismo que un proyecto con apretadas lim itaciones de tiempo.
117
IN G E N IE R Í A DEL S O F T W A R E . UN E N F O Q U E P R Á C T I C O
S e le c to r de co n ju n to de ta re a s (SC T)
2. R evise los facto res de po n d eració n asig n ad o s a 0 y 1, e indica la importancia del criterio de adaptación
cada criterio. El valor de un factor de ponderación para el tipo de proyecto. El resultado del producto:
va desde 0.8 a 1.2 y proporciona una indicación de
G rado x factor de ponderación x multiplicador
la relativa im portancia de un criterio de adaptación
de punto de entrada
en particular a los tipos de software desarrollados
dentro del entorno local. Si son necesarias m odifi se coloca en la colum na Producto de la Tabla 7.1
caciones para reflejar m ejor las circunstancias loca para cada criterio de adaptación individual.
les, se deberían hacer. 4. Calcule la media de todas las entradas en la columna
3. Multiplique el grado introducido en la Tabla 7.1 por el Producto y ponga el resultado en el espacio mar
factor de ponderación (peso) y por el multiplicador cado selector del conjunto de tareas (SCT). Este valor
de punto de entrada del tipo de proyecto a realizar. El se usará para ayudarle a seleccionar el conjunto de
multiplicador de punto de entrada toma un valor entre tareas más apropiado para el proyecto.
www.FreeLibros.org
S e le c to r de co n ju n to de ta re a s (S C T ) 2 ,8
7.3.4. Interpretar el valor SCT y seleccio n a r ras tan definidas cuando se seleccionan conjuntos de
el conjunto d e tareas tareas. En el análisis final, el valor del selector del con
junto de tareas, la experiencia acum ulada y el sentido
Una vez que se ha calculado el selector del conjunto de
com ún deben tenerse en cuenta en la elección del con
tareas, se pueden utilizar las siguientes directrices para
junto de tareas para el proyecto.
seleccionar el conjunto de tareas apropiado para un pro
yecto: La Tabla 7.2 ilustra cóm o podría calcularse el SCT
para un hipotético proyecto. El gestor del proyecto selec
Valor del selector ciona los grados m ostrados en la colum na Grado. El
del conjunto de tareas Grado de rigor tipo de proyecto es el desarrollo de una nueva aplica
SCT < 1 ,2 Casual ción. Por tanto, los m ultiplicadores de punto de entra
1.0 < SCT < 3 ,0 Estructurado da se seleccionan de la colum na NDev. La entrada en
SCT > 2,4 Estricto la colum na Producto se calcula empleando
Grado x Peso x M ultiplicador de punto
^ C O N S E IO ^ . de entrada Ndev(NewDeveIop.)
Si el valor del selector del conjunto de tareas es un área
El valor de SCT (calculado corno la m edia de todas
solapada, normalmente es correcto elegir el menor grado de
rigor formal, a no ser que el riesgo del proyecto sea alto.
las entradas de la columna Producto) es 2,8. Usando los
criterios estudiados anteriorm ente, el gestor tiene la
El solapamiento en los valores SCT de un conjunto opción de usar tanto el conjunto de tareas estructurado
de tareas recom endado con otro está hecho a propósi com o el estricto. La decisión se tom a una vez que se
to y pretende ilustrar que no son posibles unas fronte han considerado todos los factores del proyecto.
www.FreeLibros.org
(MPA) completo incluye una de las tareas de ingeniería del software para proyectos
variedad de conjuntos de tareas de desarrollo de concepto (y también para los otros tipos
y está disponible para su uso. de proyectos) es poco más que sentido común.
119
INGENIERÍA DEL SOFTWARE. UN ENFOQ UE PRÁCTICO
El equipo del softw are debe entender lo que hay elige un m odelo evolutivo, la distribución de tareas de
que hacer (ámbito); el equipo (o el gestor) debe deter la 1.1 a la 1.6 aparecería com o se m uestra en la Figura
m inar si hay alguien disponible para hacerlo (planifi 7.2. Se pueden definir y aplicar de la m ism a m anera las
cación); debe considerar los riesgos asociados con el tareas principales de ingeniería del software para otros
trabajo (valoración del riesgo); probar la tecnología tipos de proyectos.
de alguna m anera (prueba de concepto); e im plem en-
tarlo en form a de prototipo de m anera que el cliente
pueda evaluarlo (im plem entación del concepto y eva
luación del cliente). Finalmente, si el concepto es via
ble, se debe fab ricar una versión de producción
(traducción).
Es importante destacar que las actividades estructu
rales de las tareas de desarrollo de concepto son itera
tivas por naturaleza. Es decir, un proyecto de desarrollo
de concepto cualquiera podría enfocar las tareas ante
riores en varios incrementos planificados, cada uno dise
ñado para producir una entrega que pueda ser evaluada
por el cliente.
Si se elige un modelo de proceso lineal, cada uno de
estos incrementos se define en una secuencia repetitiva
como se ilustra en la Figura 7.1. Durante cada secuen
cia, se aplican actividades protectoras (descritas en el
Capítulo 2); se supervisa la calidad, y al final de cada
secuencia, se produce una entrega. Con cada iteración,
cada entrega debería converger hacia el producto final .F IG U R A 7 .1 . Tareas de desarrollo del concepto
definido para la fase de desarrollo de concepto. Si se en un m odelo secuencial lineal.
P la n i f ic a c ió n d e l c o n c e p t o p r e lim i n a r
ral macroscópica para el proyecto. Sin embargo, la pla
V a lo r a c i ó n d e ) r ie s g o t e c n o ló g ic o nificación tem poral m acroscópica debe refinarse para
crear una planificación tem poral d etallad a del pro
yecto. El refinam iento se em pieza tom ando cada tarea
I n g e n ie r í a /
C o n s tr u c ció n
principal y descom poniéndola en un conjunto de sub-
tareas (con productos de trabajo e hitos relacionados).
Com o ejem plo de descom posición de tarea, consi
dere el A m bito del C o n cep to com o un concepto del
proyecto de desarrollo, estudiado en la Sección 7.4.1.
Se puede retinar la tarea empleando un formato de bos
quejo, pero en este libro se em plea un enfoque de len
guaje de diseño de proceso para ilustrar el flujo de la
actividad de ámbito del concepto:
Definición de ta r e a : Tarea 1 .1 Ámbito d el concepto
1 .1 .1 . I d e n ti ñ c a r la n ecesidad, l o s beneñcíos y
c l i e n t e s p o te n c ia le s;
1 .1 .2 . Deñnir el r e s u l t a d o / c o n t r o l deseado y las
E n treg a
entradas que controlan la aplicación;
F IG U R A 7 .2 . Tareas de desarrollo del concepto usando Empezar la tarea 1.1.2
un m odelo evolutivo. 1 . 1 .2 .1 . RTF: Revisar la descripción e s c r ita de
la necesidad 9;
Las tareas principales descritas en la Sección 7.4 pue 1 .1 .2 .2 . Obtener una l i s t a de la s e n t r a d a s /s a li
den em plearse para definir una planificación tem po das v i s i b l e s del c l ie n t e ;
www.FreeLibros.org
9 RTF indica que se debe realizar una revisión técnica formal (Capí
tulo 8).
120
CAPÍTULO 7 P L A N I F I C A C I Ó N T E M P O R A L Y SE G U I M I E N T O DEL P R O D U C T O
www.FreeLibros.org
La red de tareas es un mecanismo útil La naturaleza concurrente de las actividades de inge
para representar la dependencia entre tareas niería del software lleva a varios requisitos im portan
y para determinar el camino crítico. tes de la planificación tem poral. Com o las tareas
121
INGENIERÍA DEL SOFTWARE. UN ENFOQ UE PRÁCTICO
www.FreeLibros.org
tas cuantitativas que perm iten al planificador del soft Herramientas CASE
ware : (1) determ inar el camino crítico, la cadena de para la planificación temporal
tareas que determina la duración del proyecto; (2) esta y programación del proyecto.
122
CAPÍTULO 7 P L A N I F I C A C I Ó N T E M P O R A L Y SE G U I M I E N T O DEL P R O D U C T O
Tanto PERT com o CPM se han im plem entado en Además, se asignan las tareas a individuos específicos.
varias herram ientas autom áticas disponibles virtual
mente para todos los ordenadores personales [THE93],
Tales herramientas son fáciles de usar y hacen asequi
bles los métodos de la planificación temporal descritos
anteriormente a todos los gestores de proyectos de soft CLAVE
ware. Un gráfico de tiempo le permite conocer qué tareas serán
conducidos en un punto determinado en el tiempo.
7.7.1. Gráficos de tiem po
Cuando se crea una planificación tem poral de un p ro
yecto de softw are, el p lan ificad o r em pieza un c o n Com o consecuencia de esta entrada, se genera un
junto de tareas (la estructura de descom posición del gráfico de tiempo, tam bién denom inado Gráfico Gantt.
trabajo). Si se em plean herram ientas autom áticas, la Se puede desarrollar un gráfico de tiem po para todo el
descomposición del trabajo es introducida com o una proyecto. Alternativamente, se pueden desarrollar dife
red de tareas o esquem a de tareas. El esfuerzo, dura rentes gráficos para cada función del proyecto o para
ción y fecha de inicio son las entradas de cada tarea. cada individuo que trabaje en el proyecto.
T areas
www.FreeLibros.org
Hito: D ocum ento de á m b ito com pleto
123
INGENIERÍA DEL SOFTWARE. UN ENFOQ UE PRÁCT ICO
La Figura 7.4 ilustra el formato de un gráfico de tiem progreso hasta la fecha y los problem as que se ave
po. M uestra una parte de la planificación temporal de cinan, o
un proyecto de software que enfatiza la tarea de ám bi • utilizando el análisis del valor ganado (Sección 7.8)
to del concepto (Sección 7.5) para un nuevo producto para evaluar el progreso cuantitativamente.
de software de procesador de textos. Todas las tareas
del proyecto (para ámbito del concepto) se listan en la
columna de la izquierda. Las barras horizontales indi
can la duración de cada tarea. Cuando aparecen m últi Elm ejor ináicoáor del progreso es la finalización
ples barras al mismo tiempo en la planificación temporal, Y la revisión exitosa de un producto de software.
implican concurrencia de tareas. Los rom bos indican
El control lo usa el gestor para administrar los recur
hitos.
sos del proyecto, enfrentarse a los problem as y dirigir
Una vez que se ha introducido la información nece
al personal del proyecto. Si las cosas van bien (es decir,
saria para generar el gráfico de tiem po, la m ayoría de
el proyecto va según la planificación temporal y dentro
las herram ientas de la planificación tem poral de pro
del presupuesto, las revisiones indican que se está
yectos de software producen tablas de proyecto — un
haciendo un progreso real y que se están alcanzando los
listado tab u lar de todas las tareas del proyecto, sus
hitos), el control es liviano. Pero cuando aparecen los
fechas previstas y reales de inicio y finalización, e
problem as, el gestor debe ejercer el control para solu
inform ación varia relativa al tem a— (Fig. 7.5). Em
cionarlos tan pronto com o sea posible. Una vez que el
pleando las tablas junto con los gráficos de tiem po, le
problem a se ha diagnosticado10, se pueden concentrar
perm iten al gestor del proyecto hacer un seguim iento
recursos adicionales en el área del problema: se puede
del progreso.
redistribuir la plantilla, o se puede redefinir la planifi
cación temporal del proyecto.
7.7.2. S e g u im ie n to d e la p la n ific a c ió n tem p oral Cuando se enfrentan a la presión de una fecha de
La planificación tem poral del proyecto le proporcio entrega muy ajustada, los gestores de proyecto utilizan
na al gestor un m apa de carreteras. Si se ha desarro a veces una planificación tem poral de proyecto y una
llado apropiadam ente, define las tareas e hitos que técnica de control denom inada tim e-boxing (tiempo
deben seguirse y controlarse a m edida que progresa el encajonado) [ZAH95], Esta estrategia reconoce que qui
proyecto. El seguim iento se puede hacer de diferentes zás no se pueda entregar el producto com pleto para la
m aneras: fecha límite predefinida. Por tanto, se elige un paradig
• realizando reuniones periódicas del estado del pro m a incremental del software (Capítulo 2) y se crea una
yecto en las que todos los miembros del equipo infor planificación temporal para cada entrega de un incre
man del progreso y de los problemas; mento.
Las tareas asociadas con cada increm ento se enca
• evaluando los resultados de todas las revisiones reali
jonan en el tiempo. Esto significa que la planificación
zadas a lo largo del proceso de ingeniería del software;
temporal para cada tarea se ajusta trabajando hacia atrás
desde la fecha de entrega para cada incremento. Se pone
Q c /f a : una «caja» alrededor de cada tarea. Cuando una tarea
Lo regla básica de los informes de estado del alcanza el límite de su caja de tiempo (más o menos un
software puede resumirse en una frase: «¡ninguna 10 por 100), se term ina el trabajo y se em pieza la
sorpresa!». siguiente tarea.
Capers Jones La prim era reacción frente al enfoque de encajona
miento de tiem po es a m enudo negativa: «Si no se ha
term inado el trabajo, ¿cómo podem os proseguir?» La
• determinando si se han conseguido los hitos forma
respuesta se encuentra en la m anera en que se realiza el
les del proyecto (los rombos mostrados en la Fig. 7.4)
trabajo. Cuando se llega al límite de la caja de tiempo,
en la fecha programada;
es probable que se haya com pletado el 90 por 100 de la
• comparando la fecha real de inicio con las previstas tarea". El restante 10 por 100, aunque importante, pue
para cada tarea del proyecto listada en la tabla del de (1) retrasarse hasta el siguiente increm ento, o (2)
proyecto (Fig. 7.5); completarse más tarde si es necesario. En vez de estar
• reuniéndose informalmente con los profesionales del «estancado» en una tarea, el proyecto progresa hacia la
software para obtener sus valoraciones subjetivas del fecha de entrega.
www.FreeLibros.org
10 Es im portante resaltar que un retraso del program a es un síntom a 11 Un cínico podría recordar el dicho: «El primer 90 por 100 de un sis
de algún problem a oculto. El papel del gestor es diagnosticar cuál es tem a se lleva el 10 por 100 del tiempo. El último 10 por 100 del sistema
el problem a y actuar para corregirlo. se lleva el 90 por 100 del tiempo.»
124
CAPÍTULO 7 P L A N I F I C A C I Ó N T E M P O R A L Y S EG U IM IE N TO DEL P R O D U C T O
www.FreeLibros.org
unas lecturas exactas y fiables del desarrollo desde esta supuesto de las actividades que estaban planificadas para
dos iniciales como cuando tan sólo se haya realizado un ser completadas, y el último representa el presupuesto
15 por ciento del proyecto». de las actividades que realm ente estaban acabadas».
125
INGENIERÍA DEL SOFTWARE. UN ENFOQ UE PRÁCT ICO
Dados los valores para CPTP, PAT, CPTD, pueden ser po de la planificación del proyecto. Es entonces posi
calculados los siguientes indicadores de progreso: ble calcular:
Indice de desarrollo de planificación, IDP = CPTD/CPTP índice de desarrollo del coste, 1DC — CPTP/CRTR
Varianza de la planificación, VP = CPTD - CPTP Varianza del coste, VC = CPTP - CRTR
IDP es una indicación de la eficiencia con que el pro
yecto está utilizando los recursos de la planificación.
Un valor IDP cercano a 1.0 indica una ejecución efi
Referencia W ebl
ciente de la planificación del proyecto. VP es sim ple
Se puede encontrar un gran conjunto de recursos
m ente una indicación absoluta de la varianza de la
para el análisis del valor ganado (bibliografía completa,
planificación prevista.
documentos, enlaces) en www.acq.osd.mil/pm/.
Porcentaje planificado para terminar = CPTD/PAT
Un valor de IDC cercano a 1.0 proporciona una indi
proporciona una indicación del porcentaje de trabajo cación evidente de que el proyecto está dentro del pre
que debería estar terminado en el instante t. supuesto que para él se ha definido. VC es una indicación
absoluta de los ahorros en coste (en relación con los cos
Porcentaje completado = CPTP/PAT
tes planificados) o de las carencias en una etapa parti
proporciona una indicación cuantitativa del «grado de cular del proyecto.
avance en la realización en tanto por ciento» del pro Como ya ocurrió en la aparición del radar, el análi
yecto en un instante determinado de tiem po t. sis del valor ganado aclara las dificultades de planifica
Es tam bién posible calcular el coste real de traba ción antes de que ellas puedan aparecer. Esto permite
jo realizado, CRTR. El valor para CRTR es la suma al gestor del proyecto de software tom ar las acciones
del esfuerzo realm ente desarrollado en tareas de tra correctivas adecuadas antes de que la crisis del proyec
bajo que hayan sido realizadas en un instante de tiem to estalle.
www.FreeLibros.org
encontrar y corregir los errores, E, en productos realiza A m edida que el proyecto progresa a través de cada
dos durante las tareas de ingeniería de software. Cual paso de la ingeniería de softw are, el equipo de soft
quiera de los errores que no se hayan descubierto (pero se w are registra e inform a del núm ero de errores encon
126
CAPÍTULO 7 P L A N I F I C A C I Ó N T E M P O R A L Y S EG U IM IE N TO DEL P R O D U C T O
trados en los requisitos, diseño y revisiones de códi sión. Si el segundo escenario parece más probable, el
go. El gestor del proyecto calcula los valores actua gestor de proyecto debería adoptar los pasos necesarios
les para Ereq, E diseño y Ecodigo. Estos son después para construir un tiem po12 de diseño adicional dentro
comparados con los prom edios de proyectos anterio del plan con el fin de acom odar los defectos de requisi
res. Si los resultados actuales discrepan en m ás de un tos que probablem ente hayan podido propagarse a tra
20 por 100 de dicho prom edio, ello puede ser causa vés de la actividad propia de diseño.
de preocupación, y debe ser objeto de una investiga La m étrica de seguim iento de errores descrita ante
ción posterior. riorm ente puede ser utilizada tam bién para los recur
sos de com probación y/o revisión de objetivos. Por
ejem plo, si un sistem a se com pone de 120 co m p o
nentes, pero 32 de dichos com ponentes m uestran valo
Cuanto más cuantitativo sea su enfoque para el
res Ediseño que tengan una varianza sustancial a partir
seguimiento y control del proyecto, estará probablemente
del prom edio, el gestor del proyecto puede elegir dedi
más preparado paro prevenir problemas potenciales y
car recursos de revisión de código a los 32 co m p o
responder ante ellos de un modo proactivo. Utilice
nentes y perm itir a otros pasar a su com probación con
métricas de seguimiento y de valor ganado.
una revisión de código. A unque todos los com ponen
tes deberían ser som etidos a una revisión de código en
Por ejemplo, si Ereq =2.1 en el proyecto X, y el pro una supuesta revisión ideal, para los proyectos que se
medio de la organización es 3.6, es posible uno de estos hayan pasado de presupuesto puede ser un m edio efec
dos escenarios: (1) que el equipo de software baya desa tivo realizar una aproxim ación selectiva (revisando
rrollado el trabajo preferente de desarrollar las especi sólo aquellos m ódulos que tengan una calidad dudosa
ficaciones de requisitos o (2) que el equipo haya prestado basándose en el valor Ediseño) con el fin de recupe
una atención secundaria en la aproxim ación a la revi rar el tiem po perdido y/o ahorrar los costes.
„ RESUMEN
La planificación temporal es la culminación de una acti nificación temporal se convierte en un m apa de carre
vidad de planificación, com ponente prim ordial de la teras a seguir por el gestor del proyecto.
dirección de proyectos de software. Cuando se com bi La p la n ific a c ió n tem p o ral em p iez a con la d e s
nan métodos de estim ación y análisis de riesgo, la pla com posición del proceso. Las características del pro-
www.FreeLibros.org
12 En realidad, el tiem po extra será gastado en volver a trabajar en
los defectos de requisitos, pero este trabajo tendrá lugar cuando se
em prenda el trabajo de diseño.
127
INGENIERÍA DEL SOFTWARE. UN ENFOQUE PRÁCTICO
yecto se em plean para adaptar un conjunto de ta re tico del proyecto, un gráfico de tiem po e in fo rm a
as apropiado al trabajo a realizar. U na red de tareas ción diversa del proyecto. El gestor del proyecto pue
m u estra todas las tareas de in g en iería, sus d e p e n de seguir y controlar todos los pasos del proceso de
dencias con otras tareas y sus duraciones previstas. so ftw a re u sando la p la n ific a c ió n tem p o ra l com o
L a red de tareas se usa para calcular el cam ino crí directriz.
REFERENCIAS
[BR095] Brooks, M., The Mythical Man-Month, ed. Aniver [PRE99] Pressman, R. S., Adaptable Process Model, R. S.
sario, Adison-Wesley, 1995. Pressman&Associates, 1999.
[FLE98] Fleming, Q.W., y J.M. Koppelman, «Earned Valué [PUT92) Putman, L., y W. Myers, Measures fo r Excellence,
Project Management», Crosstalk, vol.l 1, n.° 7, Julio 1998, Yourdon Press, 1992.
p. 19.
[RIG8 1] Riggs, J., Production Systems Planning, Analysis
and Control, 3.- ed., Wiley, 1981.
[HUM95 ] Humphrey, W., A Discipline fo r Software Engine
ering, Addison-Wesley, 1995. [THE93] Thé, L., «Project Management Software That’s IS
Friendly», Datamation, Octubre 1993, pp. 55-58.
(MOD83J Moder, J. J., C. R. Philips y E. W. Davis, Pro
ject Management with CPM, PERT and Precedence Dia- [WIL99] Wilkens, T.T., «Earned Valué, Clear and Simple»,
gramming, 3.- ed., VanNostrad Reinhold, 1983. Primavera Systems, Inc, Abril 1999, p. 2.
[PAG85J Page-Jones, M., Practical Project Management, [ZAF195] Zahniser, R., «Time-boxing for Top Team Perfor
Dorset ffouse, 1985, pp. 90-91. mance», Software Development, Marzo 1995, pp. 34-38.
www.FreeLibros.org
retrasar aún más, hay circunstancias en las que no es verdad. cione un tipo de proyecto y cree un conjunto apropiado de
Descríbalas. tareas para el proyecto.
128
CAPÍTULO 7 P L A N I F I C A C I Ó N TE M P O R A L Y S EG U IM IE N TO DEL P R O D U C T O
14 6,0 -
7.13. Suponga que es un gestor de proyectos de software y
15 8,0 -
que se le ha pedido que calcule estadísticas del valor gana
do para un proyecto de software sencillo. El proyecto tiene Calcule IDP, la varianza de la planificación, el porcentaje pla
56 tareas planificadas que se estima que necesiten 582 per nificado para terminación, el.porcentaje completo IDC y la
sonas-día para realizarlas. Al tiempo que ha sido solicitado varianza del coste para el proyecto.
para realizar el análisis del valor ganado, se han completa
do 12 tareas. Sin embargo, la planificación temporal del pro 7 .1 4 . Es posible utilizar EED como una m étrica para el
yecto indica que se deberían haber completado 15 tareas. seguimiento de errores en un proyecto de software. Estu
Están disponibles los siguientes datos de planificación (en die los pros y los contras de utilizar EED para este propó
personas-día): sito.
www.FreeLibros.org 129
www.FreeLibros.org
C A PÍT U L O
G A R A N T Í A DE C A LID A D
8 DEL S O FTW A R E (S Q A /G C S )*
L enfoque de ingeniería del softw are descrito en este libro se dirige h acia un solo ob je
E tivo: p ro d ucir softw are de alta calidad. Pero a m uchos lectores les inquietará la pregunta:
«¿Q ué es la calidad del softw are?»
Philip C rosby [C R 079], en su fam oso libro sobre calidad, expone esta situación:
E l problem a de la gestión de la calidad no es lo que la gente no sabe sobre ella. El problem a es lo que
creen que saben...
A este respecto, la calidad tien e m ucho en com ún con el sexo. Todo el m undo lo quiere. (B ajo ciertas
con d icio n es, por supuesto.) T odo el m undo cree que lo conoce. (Incluso aunque no quiera explicarlo.) T odo
el m undo piensa que su ejecu ció n sólo es cu estió n de seguir las inclinaciones naturales. (D espués de todo,
nos las arreg lam o s de alg u n a form a.) Y, por supuesto, la m ay o ría de la gente piensa que los pro b lem as en
estas áreas están producidos por o tra gente. (C om o si só lo ellos se to m a ran el tiem p o para h acer las cosas
bien.)
A lgunos d esarrolladores de softw are continúan creyendo que la calidad del softw are es algo
en lo que em piezan a preocuparse una vez que se ha generado el código. ¡N ada m ás lejos de la
realidad! L a g arantía de calidad del softw are (S Q A , Softw are Q uality A ssurance G C S, G estión
de calidad del softw are) es u n a actividad de protección (C apítulo 2) que se aplica a lo largo de
todo el p roceso del softw are. L a SQA engloba: (1) un enfoque de gestión de calidad; (2) te c
n o lo g ía de ingeniería del softw are efectiva (m étodos y herram ientas); (3 ) revisiones técnicas
form ales que se aplican durante el proceso del softw are; (4) una estrategia de prueba m ulties-
calada; (5 )e l control de la docum entación del softw are y de los cam bios realizados; (6 ) un p ro
cedim iento que asegure un ajuste a los estándares de desarrollo del softw are (cuando sea posible),
y (7) m ecanism os de m edición y de generación de inform es.
E n este capítulo nos centrarem os en los aspectos de gestión y en las actividades específicas
del p roceso que p erm itan a una organización de softw are asegurar que hace «las cosas co rrec
tas en el m om ento ju s to y de la form a correcta».
VISTAZO RÁPIDO
■'•#? No ss suficiente hablar por repetir. Si un equipo de software apli ¿C uál « s e l p roducto ob tenid o? Para
hablar diciendo que la calidad del soít- ca la calidad a todas las actividades definir una estrategia de SQA para el
jj¿j" warees importante, tienes que: (1) defi de la ingeniería del software, reduci equipo de software se ha creado un
nir explícitamente lo que significa rá la cantidad de trabajo repetido que plan de g ara n tía de calidad del soft
«calidad del software»; (2) crear un con deba realizar. Esto supondrá costes ware. Durante el análisis, diseño y
" ¡unto de actividades que ayuden a más bajos y, lo que es más importan codificación, el producto principal de
|i garantizar que todo producto de la snge te, mejorará el tiempo de llegada ai SQA es un breve informe de la revisión
f lr aiería del soítware presenta alta cali mercado. técnica formal. Durante las pruebas, se
la dad: (3) llevar a cabo actividades de realizan los planes y procedimientos
¿C uáles so n lo s p asos? Antes de que
y. garantía de calidad en cada proyecto de de prueba. También se pueden gene
se puedan iniciar las actividades de
software; 4) utilizar métricas para desa rar otros productos de trabajo relacio
garantía de calidad del software, es
le.'. rrollar estrategias que mejoren el pro nados con la mejora del proceso.
importante definir la «calidad del soft
ceso del software y, como consecuencia. ware» a un número diferente de nive ¿Cómo p u e d o a se g u r a r q u e lo h e
Jí :‘ mejoren la calidad del producto final, iw clto correctam ente? Encontrar los
i' ‘ : : les de abstracción. Una vez que
¿Quién lo h a ce? Todo el que esté rela- comprendes lo que es la calidad, un «Tores antes que pasen a ser defectos!.
J~ cionado con el proceso de ingeniería equipe de software debe identificar un Esto es, trabajar para mejorar tu eficien
3 dél software es responsable de la cali- conjunto de actividades de garantía de cia en la eliminación de errores (Capí
'• dad. . calidad del software que eliminarán tulos 4 y 7), reduciendo de este modo la
y 4 P er q u é e s im portante? Lo puedes los errores de los productos realizados cantidad de trabajo repetido que tiene
L hacer correctamente o lo puedes antes de que ocurran. que hacer tu equipo de software.
www.FreeLibros.org
* N. del T.: En español, GCS. Se conservan las siglas SQA en inglés por estar muy extendido su uso para la jerga infor
m ática. A veces se suelen tra d u c ire sta s siglas tam bién por «Aseguramiento de la Calidad del Software».
131
INGE NIE RÍ A DEL S O F TW A RE . UN E N F O Q U E P R A C T I C O
8.1 C O N C E P T O S DE
Se dice que dos copos de nieve no son iguales. Cierta ¿C óm o se aplica esto al softw are? ¿C óm o puede
m ente cuando se observa caer la nieve, es difícil im a una organización de desarrollo de software necesitar
ginar que son totalmente diferentes, por no m encionar controlar la variación? De un proyecto a otro, quere
que cada copo posee una estructura única. Para obser m os reducir la diferencia entre los recursos necesa
var las diferencias entre los copos de nieve, debemos rios p lan ifica d o s p ara term in ar un p royecto y los
exam inar los especím enes muy de cerca, y quizá con recursos reales utilizados, entre los que se incluyen
un cristal de aumento. En efecto, cuanto m ás cerca los personal, equipo y tiem po. En general, nos gustaría
observemos, m ás diferencias podremos detectar. aseguram os de que nuestro program a de pruebas abar
Este fenómeno, variación entre muestras, se aplica ca un porcentaje conocido del softw are de una entre
a todos los productos del hom bre así como a la creación ga a otra. N o sólo querem os re d u cir el núm ero de
natural. Por ejemplo, si dos tarjetas de circuito «idénti defectos que se extraen para ese cam po, sino tam bién
cas» se examinan muy de cerca, podremos observar que nos gustaría asegurarnos de que los errores ocultos
las líneas de cobre sobre las tarjetas difieren ligeramente tam bién se reducen de una entrego a otra. (Es proba
en la geometría, colocación y grosor. Además, la loca ble que n u estro s clien tes se m o lesten si la tercera
lización y el diámetro de los orificios de las tarj etas tam entrega de un producto tiene diez veces m ás defectos
bién varían. que la anterior.) Nos gustaría reducir las diferencias
en velocidad y precisión de nu estras resp u estas de
soporte a los problem as de los clientes. L a lista se
podría am pliar m ás y más.
-Lcrgente olvtdQ cómo de rápido hiciste un trabajo-
:p» s»m p fB recuerda cómo de bien lo hiciste.
8.1.1. C a l i d a d
El American HeritageDictionary, define la calidad como
E l control de variación es el centro del control de «una característica o atributo de algo». Como un atri
calidad. Un fabricante quiere reducir la variación entre buto de un elemento, la calidad se refiere a las caracte
los productos que se fabrican, incluso cuando se reali rísticas mensurables — cosas que se pueden com parar
za algo relativamente sencillo como la duplicación de con estándares conocidos como longitud, color, propie
disquetes. Seguramente, esto puede no ser un problem a dades eléctricas, maleabilidad, etc.— . Sin embargo, el
— la duplicación de disquetes es una operación de fabri software en su gran extensión, como entidad intelectual,
cación trivial y podem os garantizar que se crean dupli es más difícil de caracterizar que los objetos físicos.
cados exactos de software — . N o obstante, sí existen las m edidas de característi
¿Podemos?. Necesitam os asegurar que las pistas se cas de un programa. Entre estas propiedades se inclu
sitúen dentro de una tolerancia específica para que la yen com plejidad ciclom ática, cohesión, núm ero de
gran m ayoría de las disqueteras puedan leer los dis puntos de función, líneas de código y muchas otras estu
diadas en los Capítulos 19y 24. Cuando se examina un
quetes. Además, necesitam os asegurar que el flujo m ag
nético para distinguir un cero de un uno sea suficiente elemento según sus características mensurables, se pue
para que los detecten las cabezas de lectura/escritura. den encontrar dos tipos de calidad: calidad del diseño
Las m áquinas de duplicación de discos aceptan o recha y calidad de concordancia.
zan la tolerancia. Por consiguiente, incluso un proceso
«sim ple»,com o la duplicación, puede encontrarse con
problem as debidos a la variación entre muestras.
fita:
iiwomenos tiempo hacer una cosa bien
-q » ei^fecor por qué se hizo mal.
\ WiKkworth LeajfeNow
CLAVE
Controlar lo variación es la clave de un producto de alta La calidad de diseño se refiere a las características
calidad. En el contexto del software, nos esforzamos que especifican los ingenieros de software para un ele
en controlarla variación en el proceso que aplicamos, mento. El grado de m ateriales, tolerancias y las especi
recursosque consum lm osy los atributos de calidad ficaciones del rendimiento contribuyen a la calidad del
del productoflnal. diseño. Cuando se utilizan m ateriales de alto grado y se
www.FreeLibros.org
1 Esta sección, escrita por Michael Ctovcky, se ha adaptado de <(Fun-
dam entals of ICO 9000», un libro de trabajo desarrollado para Essen-
tial Software Engineering, un vídeo curriculum desarrollado por R.S.
Pressm an& Asociados, Inc. Reim presión autorizada.
132
CAPÍTULO 8 G A R A N T I A DE C A L I D A D DEL S O F T WA R E
especifican tolerancias más estrictas y niveles más altos cificaciones m ensurables en las que se puedan com
de rendimiento, la calidad de diseño de un producto parar los resultados de cada proceso. El bucle de rea
aumenta, si el producto se fabrica de acuerdo con las lim entación es esencial para reducir los defecto s
especificaciones. producidos.
La calidad de concordancia es el grado de cum pli
miento de las especificacionesde diseño durante su rea 8.1.3. G a r a n t í a d e c a li d a d
lización. Una vez m ás, cuanto m ayor sea el grado de
La garantia de calidad consiste en la auditoría y las fun
cumplimento, m ás alto será el nivel de calidad de con
ciones de inform ación de la gestión. El objetivo de la
cordancia.
garantía de calidad es proporcionar la gestión para infor
En el desarrollo del software, la calidad de diseño
m ar de los datos necesarios sobre la calidad del p ro
comprende los requisitos, especificaciones y el diseño
del sistema. La calidad de concordancia es un aspecto ducto, por lo que se va adquiriendo una visión m ás
centrado principalm ente en la im plem entación. Si la profunda y segura de que la calidad del producto está
cumpliendo sus objetivos. Por supuesto, si los datos pro
implementación sigue el diseño, y el sistema resultan
porcionados mediante la garantía de calidad identifican
te cumple los objetivos de requisitos y de rendimiento,
problem as, es responsabilidad de la gestión afrontar los
la calidad de concordancia es alta.
Pero, ¿son la calid ad del diseño y la calid ad de problem as y aplicar los recursos necesarios para resol
concordancia los Unicos aspectos que deben co n si ver aspectos de calidad.
derar los in g en iero s de softw are? R o b ert G lass
[GLA98] establece para ello una relación m ás «intui
tiva»:
satisfacción del usuario = producto satisfactorio+buena cali-
Se puede encontrar una gran variedad de recursos de
dad+ e n treg a d entro de p re su
puesto y del tiem po establecidos calidad del software en
www.qual¡tytree.corn/l¡nks/l¡nks.htm
En la última línea, Glass afirma que la calidad es impor
tante, pero si el usuario no queda satisfecho, ninguna otra
cosarealmente importa. DeMarco [DEM99] refuerza este 8.1.4. C o s te d e c a li d a d
punto de vista cuando afirma: «La calidad del producto El coste de calidad incluye todos los costes acarreados
es una función de cuánto cambia el mundo para mejor.» en la búsqueda de la calidad o en las actividades rela
Esta visión de la calidad establece que si el producto de cionadas en la obtención de la calidad. Se realizan estu
software proporciona un beneficio sustancial a los usua- dios sobre el coste de calidad para proporcionar una línea
nos finales, pueden estar dispuestos para tolerar proble base del coste actual de calidad, para identificar oportu
mas ocasionales del rendim iento o de fiabilidad. nidades de reducir este coste, y para proporcionar una
base norm alizada de comparación. La base de normali
zación siempre tiene un precio. U na vez que se han nor
8.1.2, C o n tro l d e c a li d a d
m alizado los costes de calidad sobre un precio base,
El control de cambios puede equipararse al control de tenem os los datos necesarios para evaluar el lugar en
calidad. Pero, ¿cómo se logra el control de calidad? El donde hay oportunidades de m ejorar nuestros procesos.
control de calidad es una serie de inspecciones, revi Es más, podem os evaluar cóm o afectan los cambios en
siones y pruebas utilizados a lo largo del proceso del térm inos de dinero.
software para asegurar que cada producto cum ple con L o s costes de calidad se pueden div id ir en costes
los requisitos que le han sido asignados. El control de asociados con la prevención, la evaluación y los fallos.
calidad incluye un bucle de realim entación (feedback) Entre los costes de prevención se incluyen:
del proceso que creó el producto. L a com binación de
• planificación de la calidad,
medición y realim entación perm ite afinar el proceso
cuando los productos de trabajo creados fallan al cum • revisiones técnicas formales,
plir sus especificaciones. Este enfoque ve el control de • equipo de pruebas,
calidad como parte del proceso de fabricación. • formación. ,
¿Cuáles son
f l i ¿Qué es el control de calidad
los componentes
del softw are?
del coste de calidad?
Las actividades de control de calidad pueden ser Entre los costes de evaluación se incluyen activida
manuales, com pletam ente autom áticas o una com bi des para tener una visión m ás profunda de-la condición
nación de herram ientas autom áticas e interacción del producto «la prim era vez a través de» cada proce
www.FreeLibros.org
humana. Un concepto clave del control de calidad es so. A continuación se incluyen algunos ejemplos de cos
que se hayan definido todos los productos y las espe tes de evaluación:
133
INGENI ER ÍA DEL S O F T W A R E . UN E N F O Q U E P R A C T I C O
inspección en el proceso y entre procesos, Se han ded icad o 7.053 horas inspeccionando 200.000 lí
neas de código con el resultado de 3.1 12 errores potenciales
calibrado y mantenim iento del equipo,
descubiertos. D ando por sentado un coste de program ador de
pruebas. 4 0 dólares por hora, el coste de elim inar 3.1 12 defectos ha sido
de 282.120 dólares, o aproxim adam ente unos 91 dólares por
defecto.
^C O W S E iO ^.
C om pare estos núm eros con el coste de elim in ació n de
No tengo miedo de incurrir en costes significativos defectos una v e z q u e el p ro ducto se ha enviado al cliente.
de prevención. Esé segura de que su inversión Suponga que no ha habido inspecciones, pero que los progra
le proporcionará un beneficio excelente.
m adores han sido m uy cuidadosos y solam ente se ha escapa
do un defecto por 1.000 líneas de código [significativam ente
m ejor que la m edia en industrial] en el producto enviado. Eso
Los costes de fa llo s son los costes que desapare significaría que se tendrían que corregir todavía 200 defectos
cerían si no surgieran defectos antes del envío de un en la casa del cliente o después de la entrega. A un coste esti
producto a los clientes. Estos costes se pueden sub- m ado de 25.000 dólares por reparaciónde cam po, el coste sena
dividir en costes de fallos internos y costes de fallos de 5 m illones de dólares, o aproxim adam ente 18 veces más
externos. Los internos se producen cuando se detec caro que el coste total del esfuerzo de prevención de defectos.
ta un erro r en el p ro d u cto antes de su envío. Entre
estos se incluyen:
1000- 40-1000
• retrabajo (revisión), veces
• reparación,
• análisis de las m odalidades de fallos. a> 30-70
c 100 veces
Los costes d efa llos externos son los que se asocian 15-40
a veces
a los defectos encontrados una vez enviado el produc
í_
to al cliente. A continuación se incluyen algunos ejem 10
oo veces
plos de costes de fallos externos: <3 10 3 -6
• resolución de quejas, O
> veces
• devolución y sustitución de productos, 1
vez
• soporte de línea de ayuda,
• trabajo de garantía. o
ü
Como es de esperar, los costes relativos para encon
trar y reparar un defecto aumentan dram áticam ente a
Requisitos Diseño Código Prueba Prueba En fase de
m edida que se cambia de prevención a detección y des de de explotación
de el fallo interno al externo. La Figura 8.1, basada en desarrollo sistema
datos recopilados por Boehm [BOE81], ilustra este fenó FIGURA 8.1. Coste relativo de corregir un error.
meno.
Es verdad que IB M produce software utilizado por
^ O N S E J o j^ f
cientos de m iles de clientes y que sus costes por repa
las pruebas son necesarias, pero también ración en casa del cliente o después de la entrega pue
es una forma costosa de encontrar errores. Soste den ser m ás altos que los de organizaciones de software
el tiempo en encontrar errores al comienzo del proceso que construyen sistemas personalizados. Esto, de nin
y podrá reduct significativamente lee costes de pruebas guna m anera, niega los resultados señalados anterior
y depuración. mente. Aunque la organización m edia de software tiene
costes de reparación después de la entrega que son el
Kaplan y sus colegas [KAP95] refuerzan las esta 25 por lOOde los de IBM (¡la m ayoría no tienen ni idea
dísticas de costes anteriores informando con datos anec de cuales son sus costes!), se están im poniendo ahorros
dóticos basados en un trabajo realizado en las en el coste asociados con actividades de garantía y con
instalaciones de desarrollo de IB M en Rochester: trol de calidad.
Hoy en día los responsables expertos de compañías de La tendencia de la calidad comenzó en los años cuarenta
www.FreeLibros.org
todo el m undo industrializado reconocen que la alta cali con el influyente trabajo de W. Edwards Deming
dad del producto se traduce en ahorro de coste y en una [D EM 86], y se hizo la prim era verificación en Japón.
mejora general. Sin embargo, esto no era siempre el caso. Mediante las ideas de Deming como piedra angular, los
134
CAPÍTULO 8 GA R A N T Í A D E C A L I D A D DEL S OF TW AR E
japoneses han desarrollado un enfoque sistemático para M ientras que los dos prim eros pasos se centran en
la eliminación de las causas raíz de defectos en produc el proceso, el paso siguiente llam ado kansei (traducido
tos. A lo largo de los años setenta y ochenta, su trabajo com o «los cinco sentidos») se centra en el usuario del
emigró al mundo occidental y a veces se llam a «gestión producto (en este caso, software). En esencia, exam i
total de calidad (GTC)»2. Aunque la terminología difiere nando la form a en que el usuario aplica el producto,
según los diferentes países y autores, norm alm ente se kunsei conduce a la m ejora en el producto m ism o, y
encuentrauna progresión básica de cuatro pasos que cons potencialm ente al proceso que lo creó.
tituye el fundamento de cualquier programa de GTC. Finalmente, un paso llamado m iryokuteki hinshitsu
amplía la preocupación de la gestión m ás allá del pro
ducto inmediato. Este es un paso orientado a la gestión
que busca la oportunidad en áreas relacionadas que se
C LAVE
pueden identificar observando la utilizació n del p ro
Se puede aplicar GTCal software de computadora. ducto en el mercado. En el m undo del software, mirvo-
El enfoque GTCse centra en la mejora continua
kuteki hinshitsu se podría ver com o un in ten to de
del proceso.
detectar productos nuevos y beneficiosos, o aplicacio
El primer paso se llam a kuizen y se refiere a un sis- nes que sean una extensión de un sistem a ya existente
tana de mejora continua del proceso. El objetivo de kai- basado en computadora.
zen es desarrollar un proceso (en este caso, proceso del
software) que sea visible, repetible y mensurable.
El segundo paso, invocado sólo una vez que se ha
alcanzado kuizen, se llama aturimae hinshitsu. Este paso
examina lo intangible que afecta al proceso y trabaja Se puede encontrar una gran variedadde recursos
para optimizar su im pacto en el proceso. Por ejemplo, paro la mejora continua del procesoyGTCen
el proceso de software se puede ver afectado por la alta deming.eng.clemsom.edu/
rotación de personal que ya en sí m ismo se ve afectado
por reorganizaciones dentro de una com pañía. Puede Para la m ayoría de las com pañías, kuizen debería
ser que una estructura organizativa estable haga mucho ser de preocupación inmediata. Hasta que se haya logra
para mejorar la calidad del software. Atarimae hinshit do un proceso de software avanzado (Capítulo 2), no
su llevaría a la gestión a sugerir cambios en la forma en hay m uchos argum entos para seguir con los pasos
que ocurre la reorganización. siguientes.
1 8 f i TI ñ N T l A J g £ J C L A L I B A I L & £ L S Q £ I M & B ^
Hasta el desarrollador de software m ás agobiado esta- ware. Para los propósitos de este libro, la anterior defini
xá de acuerdo con que el software de alta calidad es una ción sirve para hacer hincapié en tres puntos importantes:
meta importante. Pero, ¿cómo definírnosla calidad? Un 1. Los requisitos del software son la base de las m edi
tom ista dijo una vez: «Cualquier program a hace algo das de la calidad. La falta de concordancia con los
bien, lo que puede pasar es que no sea lo que nosotros requisitos es una falta de calidad.
queremos que haga». 2. Los estándares especificados definen un conjunto de
■ ■ ¿Cómo se define «calidad criterios de desarrollo que guían la form a en que se
w del software))? aplica la ingeniería del software. Si no se siguen esos
criterios, casi siempre habrá falta de calidad.
En los libros se han propuesto muchas definiciones 3. Existe un conjunto de requisitos im plícitos que a
,&calidad del software. Por lo que a nosotros respecta, m enudo no se m encionan (por ejemplo: el deseo por
la calidad del software se define como: facilitar el uso y un buen m antenimiento). Si el soft
Concordancia con los requisitos fun cio n ales y d e rendi- ware se ajusta a sus requisitos explícitos pero falla
mientoexplícitamente establecidos.con los estándaresde desa en alcanzar los requisitos implícitos, la calidad del
rrollo explícitam ente docum entados, y con las características software queda en entredicho.
implícitas que se espera de todo softw are desarrollado profe
sionalmente. 8.3.1. P r o b le m a s d e fo n d o
No hay duda de que la anterior definición puede ser La historia de la garantía de calidad en el desarrollo de
modificada o ampliada. De hecho, no tendría fin una dis software es paralela a la historia de la calidad en la crea
cusión sobre una definición formal de calidad del soft ción de hardware. Durante los primeros años de la infor-
www.FreeLibros.org
2 Consulte [ART92) para un estudio m ás com pleto del GTC y su uso
en un contexto de softw are.y [KAP95] para un estudio sobre el uso
de criterio «Balbridge Award» en el m undo del software.
135
IN GE NI E RÍ A DEL SOF TW ARE . UN E N F O Q U E P R A C T I C O
mática (los años cincuenta y sesenta), la calidad era res des de SQAque se enfrentan con la planificación de garan
ponsabilidad únicamente del programador. Durante los tía de calidad, supervisión, mantenimiento de registros,
años setenta se introdujeron estándares de garantía de análisis e informes. Éstas son las actividades que realizan
calidad para el software en los contratos militares para (o facilitan) un grupo independiente de SQA:
desarrollo de software y se han extendido rápidam ente Establecimiento de un p la n de SQA p a ra un proyec
a los desarrollos de softw are en el m undo com ercial to. El plan se desarrolla durante la planificación del pro
[IEE94]. A m pliando la definición presentada anterior yecto y es revisado por todas las partes interesadas. Las
m ente, la garantía de calidad del software (SQA) es un actividades de garantía de calidad realizadas por el equi
«patrón de acciones planificado y sistemático»[SCH97] po de ingeniería del software y el grupo SQA son gober
que se requiere para asegurar la calidad del software. El nadas por el plan. El plan identifica:
ámbito de la responsabilidad de la garantía de calidad se
• evaluaciones a realizar,
puede caracterizarmejor parafraseandoun popular anun
cio de coches: «La calidad es la 1.a tarea.» La im plica • auditorías y revisiones a realizar,
ción para el softw are es que m uchos de los que • estándares que se pueden aplicar al proyecto,
constituyen una organización tienen responsabilidad de • procedim ientos para inform ación y seguimiento de
garantía de calidad del software — ingenieros de soft errores,
ware, jefes de proyectos, clientes, vendedores, y aque
• docum entos producidos por el grupo SQA,
llas personas que trabajan dentro de un grupo de SQA—r
• realim entación de inform ación proporcionada al
equipo de proyecto del software.
¿Cuál es el papel
Referencia Mfefa/ *
de un grnpo de SQA?
Se puede encontrar untutorial profundo y amplios
recursos para la gestión de calidaden
Participación en el desarrollo de la descripción del
www.management.gov
proceso de software delproyecto. El equipo de ingenie
ría del software selecciona un proceso para el trabajo
El grupo de SQA sirve como representación del clien que se va a realizar. El grupo de SQA revisa la descrip
te en casa. Es decir, la gente que lleva a cabo'la SQA ción del proceso para ajustarse a la política de la empre
debe m irar el software desde el punto de vista del clien sa, los estándares internos del software, los estándares
te. ¿Satisface de form a adecuada el software los facto im puestos externam ente (por ejemplo: ISO 9001), y a
res de calidad apuntados en el C apítulo 19? ¿Se ha otras partes del plan de proyecto del software.
realizado el desarrollodel softwarede acuerdo con están R evisión de las actividades de ingeniería del soft
dares preestablecidos? ¿Han desem peñado apropiada ware p a r a verificar su ajuste cdproceso de software
m ente sus papeles las disciplinas técnicas com o parte definido. El grupo de SQA identifica, docum entay sigue
de la actividad de SQA? El grupo de SQA intenta res la pista de las desviaciones desde el proceso y verifica
ponder a estas y otras preguntas para asegurar que se que se han hecho las correcciones.
m antiene la calidad del software. A uditoría de los productos de software designados
p a ra verificar el ajuste con los definidos com oparte del
8.3.2. A c tiv id a d e s d e SQA proceso del software. El grupo de SQA revisa los pro
ductos seleccionados; identifica, docum enta y sigue la
La garantía de calidad del software com prende una gran
pista de las desviaciones; verifica que se han hecho las
variedad de tareas, asociadas con dos constitutivosdife-
correcciones, e inform a periódicam ente de los resulta
rentes — los ingenieros de software que realizan traba
dos de su trabajo al gestor del proyecto.
jo técnico y un grupo de SQA que tiene la responsabilidad
A segurar que las desviaciones del trabajo y los pro
de la Planificación de garantía de calidad, supervisión,
ductos del softw are se docum entan y se m anejan de
m antenim iento de registros, análisis e informes— .
acuerdo con un procedim iento establecido. Las des
Los ingenieros de software afrontan la calidad (y rea
viaciones se pueden encontrar en el plan del proyecto,
lizan garantía de calidad) aplicando m étodos técnicos
en la descripción del proceso, en los estándares aplica
sólidos y m edidas, realizando revisiones técnicas for
bles o en los productos técnicos.
m ales y llevando a cabo pruebas de software bien pla
Registrar lo que no se ajuste a los requisitos e infor
nificadas. Solamente las revisiones son tratadas en este
m ar a sus superiores. Los elem entos que no se ajustan
capítulo. Los temas de tecnología se estudian en las Par
a lo s requisitos están bajo seguim iento hasta que se
tes Tercera a Quinta de este libro.
resuelven.
Las reglas del grupo de SQA tratan de ayudar al equi
www.FreeLibros.org
po de ingeniería del software en la consecución de un pro Además de estas actividades, el grupo de SQA coor
ducto final de alta calidad. El Instituto de Ingeniería del dina el control y la gestión de cambios (Capítulo 9) y ayu
Software [PAU93] recomienda un conjunto de activida da a recopilar y a analizar las métricas del software.
136
CAPÍTULO 8 G A R A N T Í A DE CA L I D AD DEL S O L T WA R E
Errores inadvertidos
E rro re s
h! igual que los filtros de aguo, las RTF's tienden o
retardarel «flujo» de las actividadesde ingeniería del
d e paso s
a n te r.o re s < !■ ErroresampPbag&fejt.Ñ^ déla detección E rrores
pasados al
software. Muypocos y el flujo es «suelo». Muchos y el dé arrotas s ig u ie n te paso
flujose reducté o ungoteo. Utilicemétricosporo Errores nuevamerte generados
determinar qué revishnes son efectivasy cuáles no.
Saque los que nosean efectivosfuero del flujo. F I G U R A 8 . 2 . M o d e lo d e a m p l if ic a c ió n d e d e f e c t o s .
8.4.1. Im pacto d e lo s d efe cto s d e l so ftw a r e so b re U na serie de estudios (T R W ,N ippon Electric y M itre
el co ste
www.FreeLibros.org
C orp., entre otros) indican que las actividades del dise
El IEEE Standard D ictionary o f E léctrical and E lec ñ o introducen entre el 50 al 65 p o r ciento de todos los
tronics Terms (IE E E S ta n d a rd 1 0 0 -1 9 9 2 ) d efin e un errores (y en últim o lugar, todos los defectos) durante
137
IN GE NI E RÍ A DEL S OFT W ARE . UN E N F O Q U E P R Á C T I C O
el proceso del software. Sin embargo, se ha dem ostra corrige el 50 por 100 de los errores que le llegan, sin intro
do que las revisiones técnicas formales son efectivas en ducir ningún error nuevo (una suposición muy optimis
un 75 por 100 a la hora de detectar errores [JON86], ta). Antes de que comience la prueba, se han amplificado
Con la detección y la elim inación de un gran porcenta diez errores del diseño prelim inar a 94 errores. Al termi
j e de errores, el proceso de revisión reduce substan nar quedan 12 errores latentes. La Figura 8.4 considera
cialmente el coste de los pasos siguientes en las fases las mismas condiciones, pero llevando a cabo revisiones
de desarrollo y de mantenimiento. del diseño y de la codificación dentro de cada paso del
Para ilustrar el im pacto sobre el coste de la detec desarrollo. En este caso los 10 errores del diseño preli
ción anticipada de errores, considerem os una serie de m inar se amplifican a 24 antes del comienzo de la prue
costes relativos que se basan en datos de coste realmente ba. Sólo quedan 3 errores latentes. Recordando los costes
recogidos en grandes proyectos de software [IBM 81]3. relativos asociados con el descubrimientoy la corrección
Supongamos que un error descubierto durante el dise de errores, se puede establecer el coste total (con y sin
ño cuesta corregirlo 1,O unidad monetaria. De acuerdo revisiones para nuestro ejemplo hipotético). El número
con este coste, el m ism o error descubierto justo antes de errores encontrado durante cada paso m ostrado en las
de que com ienza la prueba costará 6,5 unidades; duran figuras 8.3 y 8.4 se m ultiplica por el coste de elim inar un
te la prueba 15 unidades; y después de la entrega, entre error (1.5 unidades de coste del diseño, 6.5 unidades de
60 y 100 unidades. coste antes de las pruebas, 15 unidades de coste durante
las pruebas, y 67 unidades de coste después de la entre
ga. Utilizando estos datos, se puede ver que el coste total
8.4.2. A m plificación y elim inación de defectos para el desarrollo y el mantenim iento cuando se realizan
Se puede usar un m odelo de amplificación de defectos revisiones es de 783 unidades. Cuando no hay revisio
[IBM81] para ilustrarla generacióny detección de erro nes, el coste total es de 2.177 unidades — casi tres veces
res durante los pasos de diseño preliminar, diseño deta m ás caro— .
llado y codificación del proceso de ingeniería del
software. En la Figura 8.2 se ilustra esquemáticamente
el modelo. Cada cuadro representa un paso en el desa
rrollo del software. Durante cada paso se pueden gene enfermedades, como dicen los médicos, en
' zo m fáciles de curar pero difíciles de
rar errores que se pasan inadvertidos. La revisión puede
pero con el paso del tiempo, cuando no
fallar en descubrir nuevos errores y errores de pasos
SÉ-fc» «conocido y trotado al principio, se vuelven
anteriores, produciendo un m ayor núm ero de errores
'f&feude reconocer pero difíciles de curar.
que pasan inadvertidos. En algunos casos, los errores
SSíste JtaHweli
que pasan inadvertidos desde pasos anteriores se am pli
fican (factor de amplificación, x) con el trabajo actual.
Las subdivisiones de los cuadros representan cada una Para llevar a cabo revisiones, el equipo de desarrollo
de estas característicasy el porcentaje de eficienciapara debe dedicar tiem po y esfuerzo, y la organización de
la detección de errores, una función de la profundidad desarrollo debe gastar dinero. Sin embargo, los resulta
de la revisión. dos del ejem plo anterior no dejan duda de que hemos
La Figura 8.3 ilustra un ejemplo hipotético de la ampli encontrado el síndrome de «pague ahora o pague, des
ficación de defectos en un proceso de desarrollo de soft pués, mucho más». Las revisiones técnicas formales (para
ware en el que no se llevan a cabo revisiones. Com o el diseño y otras actividadestécnicas) producen un bene
m uestra la figura, se asum e que cada paso descubre y ficio en coste demostrable. Deben llevarse a cabo.
_ _____________
Una revisión técnica formal (RTF) es una actividad de desarrollado de form a uniform e y (5) hacer que los
garantía de calidad del software llevada a cabo por los proyectos sean m ás m anejables. A dem ás, la RTF sir
ingenieros del software (y otros). L o s objetivos de la ve com o cam po de entrenamiento, permitiendo que los
RTF son: (1) descubrir errores en la función, la lógi ingenieros m ás jó v en es puedan observar lo s diferen
ca o la im plem entación de cualquier representación tes enfoques de análisis, diseño e im plem entación del
del software; (2) verificar que el software bajo revi software. La RTF tam bién sirve para prom over la segu
sión alcanza sus requisitos; (3) garantizar que el soft ridad y la continuidad, ya que varias personas se fami
w are ha sido rep resen tad o de acuerdo con ciertos liarizarán con partes del software que, de otro modo,
están d ares predefinidos; (4) co n seg u ir un softw are no hubieran visto nunca.
www.FreeLibros.org
3 Aunque estos datos son de hace m ás de 20 años, pueden ser apli
cados en un contexto m oderno.
138
CAPÍTULO 8 G A R A N T Í A DE C A L I D A D DEL S O F T WA R E
FIGURA 8.4. Amplificación de defectos, llevando a cabo La reunión de revisión es llevada a cabo por el jefe
revisiones. de revisión, los revisores y el productor. Uno de los revi
sores tom a el papel de registrador, o sea, de persona que
registra (de form a escrita) todos los sucesos im portan
tes que se produzcan durante la revisión. La RTF
8.5.1. l a r e u n ió n d e re v is ió n
com ienza con una explicación de la agenda y una bre
Independientemente del form ato que se elija para la ve introducción a cargo del productor. Entonces el pro
RTF, cualquier reunión de revisión debe acogerse a las ductor procede con el «recorrido de inspección» del
siguientes restricciones: producto, explicando el material, m ientras que los revi
• deben convocarse para la revisión (norm alm ente) sores exponen sus pegas basándose en su preparación
entre tres y cinco personas; previa. Cuando se descubren problem as o errores váli
• se debe preparar por adelantado, pero sin que requiera dos, el registrador los va anotando.
más de dos horas de trabajo a cada persona; y
• la duración de la reunión de revisión debe ser m enor
de dos horas. Referencia W e b l ^
www.FreeLibros.org
Puede descargarseel NASASATC
Cuando realizamos RTF's,
139
I N G E N IE RI A DEL S OFT W ARE . UN E N F O Q U E P R Á C T I C O
A l final de la revisión, todos los p articipantes en la 1 Revisar elproducto, no alproductor. U na RTF invo
RTF deben decidir si (1) aceptan el p roducto sin p o ste lu cra g en te y egos. C o n d u cid a ad ecu ad am en te, la
riores m o d ificaciones; (2) rech azan el p roducto debido RTF debe llevar a todos los participantes a un senti
a los serios errores encontrados (una v ez corregidos, ha m iento agradable de estar cu m p lien d o su deber. Si
de hacerse o tra revisión) o (3 ) aceptan el producto p ro se lleva a cabo incorrectam ente, la RTF puede tomar
visionalm ente (se han encontrado errores m enores que el aura de inquisición. Se deben señalar los errores
deben ser corregidos, pero sin necesid ad de o tra p o ste edu cad am en te; el to n o de la re u n ió n debe ser dis
rio r re v isió n ). U n a v ez to m a d a la d ecisió n , to d o s los tendido y constructivo; no debe intentarse dificultar
participantes term in an firm ando, indicando así que han o batallar. El je f e de revisión debe m oderar la reu
participado en la rev isió n y que están de acu erd o con n ió n p a ra garantizar que se m antiene un tono y una
las conclusiones del equipo de rev isió n . actitud adecuados y debe inm ediatam ente cortar cual
quier revisión que haya escapado al control.
8.5.2. R e g is tro e in fo rm e d e l a r e v is ió n
D u ran te la RTF, u n o de los rev iso res (el reg istrad o r)
^ W N S E fO ^
procede a reg istrar todas las peg as que v ay an surgien
do. Al final de la reun ió n de revisión, resum e todas las No señóle bruscamente los errores. Uno forma de ser
p egas y genera u n a lista de sucesos de rev isió n . A d e educada es hacer una pregunto que permita al productor
m ás, p repara un inform e sum ario de la rev isió n técnica descubrir su propia errar.
www.FreeLibros.org
trolad a puede ser p eo r que no h acer ningún tipo de re v i una, pero catorce no son necesariam ente m ejores que
sión. A co ntinuación se m u estra un conjunto m ínim o de cuatro. Se ha de m antener el núm ero de participantes
directrices p ara las revisiones técnicas form ales: en el m ínim o necesario. A dem ás. todos los miembros
140
CAPÍTULO 8 G A R A N T Í A DE C ALI DAD DEL S O F T WA R E
del equipo de revisión deben prepararse por anticipado. 9. L levar a cabo un buen entrenam iento de todos los
El je fe de rev isió n debe solicitar com entarios (que revisores. P or razones de efectividad, todos los p ar
muestren que cada revisor ha revisado el material). tic ip an te s en la revisión deben recibir algún e n tre
7. D esarrollar una lista de com pro b a ción p a r a cada nam iento form al. El entrenam iento se debe b asar en
producto que haya de ser revisado, U n a lista de co m los aspectos relacionados con el proceso, así com o
probaciones ay uda al je f e de rev isió n a estru c tu ra r las consideraciones de psicología hum ana que a ta
la reunión de R T F y ayuda a cada rev isor a centrarse ñen a la revisión. F reed m an y W einberg [FR E 90]
en los asuntos im portantes. Se deb en desarrollar lis estim an en un m es la curva de aprendizaje para cada
tas de com probaciones p ara los docum entos de aná veinte personas que vayan a p articipar de form a efec
lisis, de diseño, de codificación e incluso de prueba. tiv a en las revisiones.
1 0 .R e p a sa r las revisiones anteriores. L as sesiones de
inform ación pueden ser beneficiosas para descubrir
problem as en el propio proceso de revisión. El p ri
m er producto que se haya revisado puede e sta b le
cer las propias directivas de revisión.
C om o existen m uchas variables (por ejem plo, nú m e
ro de participantes, tipo de productos de trabajo, tie m
8. D isponer recursos y una agenda p a r a las RTF. Para po y duración, enfoque de revisión específico) que tienen
que las revisiones sean efectivas, se d eben planificar im pacto en una revisión satisfactoria, una organización
como una tarea del p ro ceso de in g e n iería del so ft de softw are d eb ería d e te rm in ar qué m éto d o fu nciona
ware. A dem ás se debe trazar u n p lan de actuación m e jo r en un c o n te x to local. P o rte r y sus c o le g a s
para las m o d ific a c io n e s in e v ita b le s q ue aparecen [POR95] proporcionan una guía excelente para este tipo
como resultado de u n a RTF. de experim entos.
www.FreeLibros.org
niería del softw are ad ap tativ o en el cual se realizan c am • D ocum entación im precisa o incom pleta (DII).
bios para m ejo rar aquellos elem entos del proceso que • E rror en la traducción del d iseño al lenguaje de p ro
introducen errores. gram ación (TLP).
141
I N GE NI E RÍ A DEL S OF TWARE. UN E N F O Q U E P R A C T I C O
. Interfaz hom bre-m áquina ambigua o inconsistente En cada etapa del proceso de ingeniería del softwa
(IHM). re se calcula un índice de fa s e , IF ¡ :
• Varios (VAR).
lFi = W ¡ (S ¡/E l)+ W m (M i¡E i) + W ,( T ¡/E|)
www.FreeLibros.org
de cada fase deberían agrandarse a m edida que el Un estudio exhaustivo de la SQA estadística se sale
desarrollo evoluciona. Esto favorece a la organi del alcance de este libro. Los lectores interesados debe
zación que encuentra los errores al principio. rían consultar [SCH98], [KAP95] y [KAN95],
142
CAPÍTULO 8 G A R A N T I A DE C A L I D A D DEL S O F T WA R E
www.FreeLibros.org
W s los fallos del softw are, se pro d u cen p o r p ro b le b ilid a d es a lg o m á s se n sib le al T M D R , una m e d id a
mas de diseño o de im plernentación; el desajuste (con in d ire c ta de la fa c ilid a d de m a n te n im ie n to del so ft
sulte el C apítulo 1) no en tra en este panoram a. w are.
143
INGENIERIA DEL SOF TW ARE . UN E N F O Q U E P R Á C T I C O
8.7.2. S e g u r id a d d e l s o f tw a r e
L eveson [LEV 86] d iscu te el im p acto del softw are en -M -
sistem as críticos de seguridad, diciendo: Referencia m b J x
A ntes de que se usara softw are en sistem as críticos de segu Se pueden encontrar documentos sobre la seguridad
ridad, norm alm ente éstos se controlaban m ediante dispositi del software (y un glosario detollodo) que merecen
vos electró n ico s y m ecánicos co n v en cio n ales (no progra- la peno en www.rstcorp.com/hotlist/topics-
m ables). L as técnicas de seguridad de sistem as se diseñaban
safety.html
para hacer frente a fallos aleatorios en esos dispositivos [no
program ables]. L os errores hum anos de diseño n o se c o n si
deraban porque se suponía que todos los defectos producidos vedad y su probabilidad de ocurrencia4. Para que sea
por los errores hum anos se podían evitar o elim inar com ple efectivo, se tiene que analizar el software en el contex
tam ente antes de su distribución y funcionam iento. to del sistema completo. Por ejemplo, puede que un sutil
error en la entrada del usuario (las personas son com
ponentes del sistem a) se m agnifique por un fallo del
software que producen los datos de control que actúan
.Nepoedcimogm cualquier condición que podría de forma inadecuada sobre un dispositivo mecánico. Si
íOUüffi^i hundimiento de este borco. lo construcción se dan un conjunto de condiciones externas del entor
navd moderna ha ido más allá de eso. no (y sólo si se dan), la situación inadecuada del dis
L f. SskHc, Capitón del Titonic positivo m ecánico producirá un fallo desastroso. Se
pueden usar técnicas de análisis, com o el análisis del
árbol de f a l lo s [V ES81], la lógica de tiempo real
C u an d o se u tiliza e l softw are co m o parte d e l siste
[JAN86] o los modelos de redes de Petri [LEV87], para
m a de co n tro l, la co m p le jid a d puede au m en tar en un
predecir la cadena de sucesos que pueden producir los
ord en de m ag n itu d o m ás. L os defectos sutiles de dise
riesgos y la probabilidad de que se dé cada uno de los
ño, produ cid o s p o r un error h u m ano — algo que se p u e
sucesos que com ponen la cadena.
de d e s c u b rir y e lim in a r en e l c o n tro l c o n v e n c io n a l
Una vez que se han identificado y analizado los ries
basado en el h a r d w a r e - llegan a ser m u ch o m ás d ifí
gos, se pueden especificar los requisitos relacionados
ciles de descu b rir cu an d o se u tiliza el softw are.
con la seguridad para el software. Esto es, la especifi
L a seguridad del software es u n a actividad de garan
tía de calidad del softw are que se cen tra en la identifi
cación puede contener una lista de eventos no desea
bles y las respuestas del sistema a estos eventos. El papel
cació n y e v a lu a c ió n d e lo s rie s g o s p o te n c ia les que
del software en la gestión de eventos no deseados es
pu ed en p ro d u cir un im pacto n egativo en el softw are y
entonces apropiado.
hacer que falle el sistem a com p leto . S i se p u ed en id en
tificar p ronto los riesgos en el proceso de ingeniería del
softw are podrán especificarse las características del dise |S | ¿Cuál es la diferencia
ñ o del softw are que p erm itan elim inar o con trolar los W entre fiabilidad del softw are
riesgos poten ciales. y seguridad del softw are?
C o m o parte de la seg u rid ad del so ftw are, se puede Aunque la fiabilidad y la seguridad del software están
dirig ir un proceso de análisis y m odelado. Inicialm ente, bastante relacionadas, es im portante entender la sutil
se id e n tific a n los rie sg o s y se c la sific a n p o r s u im p o r diferencia que existe entre ellas. La fiabilidad del soft
tan cia y su g rad o de riesg o . P o r ejem p lo , alg unos de ware utiliza el análisis estadístico para determ inar la
los rie sg o s aso ciad o s co n el c o n tro l b asad o en c o m probabilidad de que pueda ocurrir un fallo del softwa
pu tad o ra del sistem a de co n d u c c ió n de un autom óvil re. Sin embargo, la ocurrencia de un fallo no lleva nece
pod rían ser: sariamente a un riesgo o a un accidente. La seguridad
• P ro d u c e u n a ace le rac ió n in c o n tro la d a que no se del software exam ina los m odos según los cuales los
puede detener. fallos producen condiciones que pueden llevar a acci
• N o responde a la presión del pedal del fren o (dete dentes. Es decir, los fallos no se consideran en vacío,
niéndose). sino que se evalúan en el contexto de un completo sis
• N o responde cuando se activa el contacto.
tem a basado en computadora.
Un estudio completo sobre seguridad del software y
• Pierde o g an a velo cid ad lentam ente.
análisis del riesgo va más allá del ámbito de este libro. Ría
C u an d o se h an id entificado esto s riesgos del siste aquellos lectores que estén más interesados, deberían con
m a, se u tilizan técnicas de análisis p ara asignar su gra- sultar el libro de Leveson [LEV95] sobre este tema.
www.FreeLibros.org
4 Este m étodo es anólogo al m étodo de análisis de riesgos descrito
para la gestión del proyecto de softw are en el capítulo 6. l a princi
pal diferencia es el énfasis en aspectos de tecnología frente a temas
relacionados con el proyecto.
144
CAPÍTULO 8 GARA N T I A DE C ALI DAD DEL S O F T WA R E
www.FreeLibros.org
inglés para «Cióse», tiene el m nem ónico«C » asociadocon ello. m nem ónicos que no satisfagan el criterio. E ste enfoque
Cuando la aplicación se vende en un país de habla francesa, el tam bién evitaría errores, pero el beneficio obtenido sería
mismo elem ento del m enú es «Fermer» con el m nem ónico «F». m ínim o: los m nem ónicos incorrectos son lo suficiente
145
IN GE NI E RÍ A DEL S O F T W A R E . UN E N F O Q U E P R Á C T I C O
mente fáciles de detectar y corregir después de que apa estructurales de los m enús . Un pequeño «script» poka-
rezcan. yoke leería la tabla, recuperaría los m nem ónicos y eti
Dispositivo de detección. Nosotros podríam os pro quetas a partir del catálogo de m ensajes, y compararía
porcionar un program a para verificar que las etiquetas posteriorm ente las cadenas recuperadas con el criterio
del m enú escogidas y los m nem ónicos satisfacen los establecido descrito anteriormente.
criterios anteriores. Nuestros localizadores podrían eje Los «Scripts» poka-yoke eran pequeños (aproximada
cutar los program as sobre los catálogos de mensaje tra mente 100 líneas), fáciles de escribir (algunos de los escri
ducidos antes de enviarnos a nosotros dichos catálogos. tos estaban en cuanto al tiem po por debajo de una hora)
Este enfoque proporcionaría una realim entación rápida y fáciles de ejecutar. Nosotros ejecutábamos nuestros
sobre los errores y será, probablem ente, un paso a dar «scripts» poka-yoke sobre 16 aplicaciones en la ubicación
en el futuro. en inglés por defecto y en 11 ubicaciones extranjeras. Cada
Dispositivo de detección. Nosotros podríam os escri ubicación contenía 100 m enús para un total de 1.200
bir un programa que verificase las etiquetas y mnemóni- menús. Los dispositivos poka-yoke encontraron 311 crro-
cos del menú, y ejecutara el programa sobre catálogos de res en menús y mnemónicos. Pocos de los problemas que
mensajes después de que nos los hayan devuelto los loca nosotros descubrimos eran como muy llamativos, pero en
lizadores. Este enfoque es el cam ino que actualmente total habrían supuesto una gran preocupación en la prue
estamos tomando. No es tan eficiente como alguno de los ba y ejecución de nuestras aplicaciones localizadas.
r iétodos anteriormente m encionados y puede requerir El ejemplo descrito antes representa un dispositivo
que se establezca una com unicación fluida hacia delan poka-yoke que ha sido integrado en la actividad de prue
te y hacia atrás con los localizadores, pero los errores bas de ingeniería del software. La técnica poka-yoke
detectados son incluso fáciles de corregir en este punto. puede aplicarse a los niveles de diseño, codificacióny
Varios textos pequeños de poka-yoke se utilizaron pruebas y proporciona un filtro efectivo de garantía de
como dispositivos poka-yoke para validar los aspectos calidad.
www.FreeLibros.org
to the D evelopm ent, Supply and M aintainance o f
Softw are. Este es un docum ento esp ecífico que M erece la pena ver un pequeño extracto de la ISO
interpreta el ISO 9001 para el desarrollador de soft 9001. Este le dará al lector una idea del nivel con el que
ware. la ISO 9001 trata la garantía de calidad y el proceso de
146
CAPÍTULO 8 G A R A N T I A DE CALI DAD DEL S O F T W A R E
desarrollo. El extracto elegido proviene de la sección ción del párrafo — es pretendido obviam ente p o r los
1. 1 1 : procesos estándar de ingeniería donde equipos tales
4.11. El equipo de Inspección, medición y pruebas. com o indicadores de calibración y potencióm etros son
habituales— .
H suministradordebe controlar, calibrar y mantenerla ins
pección, medir y probar el equipo, ya sea el dueño el suminis Una interpretación del párrafo anteriores que el dis
trador, prestado o proporcionado por el comprador, para tribuidor debe asegurar que cualquiera de las herram ien
demostrarla conformidaddel producto con los requisitos espe tas de software utilizadas para las pruebas tiene, por lo
cificados. El equipo debe utilizarse de un modo que asegure m enos, la m ism a calidad que el software a desarrollar, y
que se conoce la incertidumbre de la medición y que es con que cualquier prueba del equipo produce valores de medi
sistente con la capacidad de medición requerida.
ción, por ejemplo, los monitores del rendimiento, tienen
Lo prim ero a destacar es su generalidad; se puede una precisión aceptable cuando se compara con la preci
aplicar al d esa rro llad o r de cu alq u ier producto. Lo sión especificadapara el rendimiento en la especificación
segundo a considerar es la dificultad en la interpreta de los requisitos.
Elplan de SQA proporciona un m apa para institucio • docum entos de usuario (por ejem plo: archivos de
nalizar la garantía de calidad del software. El plan, desa ayuda).
rrollado por un grupo de SQA, sirve como plantilla para Además, esta sección define el conjunto m ínim o de
actividades de SQA instituidas para cada proyecto de productos de trabajo que se pueden aceptar para lograr
software. alta calidad.
Los estándares, prácticas y convenciones m uestran
todos los estándares/prácticas que se aplican durante el
www.FreeLibros.org
IN GE NI E RÍ A DEL S OFT W ARE . UN E N F O Q U E PR AC T I C O
^ J lE S U M E H
L a g arantía de calidad del softw are es u n a «actividad m ostrado extrem adam enteefectiva en el descubrimiento
de p ro tecció n » que se aplica a ca d a p aso del pro ceso de errores.
del softw are. L a SQ A com prende p rocedim ientos para P ara llev ar a cabo adecu ad am en te u n a garantía de
la aplicación efectiv a de m étodos y h erram ien tas, revi calidad del softw are, se deben recopilar, evaluar y dis
siones técnicas form ales, técnicas y estrategias de pru e tribuir todos los datos re lac io n ad o s con el proceso de
ba, d isp o sitiv o sp o k u -y o k e , p rocedim ientos de control in g e n iería del softw are. L a S Q A e sta d ístic a ayuda a
de cam bios, p rocedim ientos de g arantía de ajuste a los m ejorar la calidad del producto y la del proceso de soft
estándares y m ecanism os de m ed id a e inform ación. ware. L os m odelos de fiabilidad del softw are amplían
L a SQ A es com p licad a p o r la com pleja n atu raleza de las m edidas, perm itiendo extrapolar los datos recogidos
la calidad del softw are —un atributo de los program as sobre los defectos, a predicciones de tasas de fallo y de
de com pu tad o ra que se define com o « co n cordancia con fiabilidad.
los requisitos definidos explícita e im plícitam ente» — . R esum iendo, recordem os las palabras de D unn y Ull-
C uando se considera de form a m ás general, la calidad del m an [D U N 82]: «L a garantía de calidad del softwarees
softw are eng lo b a m uchos factores de p roceso y de pro— la guía de los preceptos de gestión y de las disciplinas
ducto diferentes con sus m étricas asociadas. de diseñ o de la garantía de calidad para el espacio tec
L as revisiones del softw are son u n a de las activida nológico y la aplicación de la ingeniería del software.))
des m ás im portantes de la SQ A . L as revisiones sirven L a capacidad para garantizar la calidad es la m edida de
co m o filtros durante todas las actividades de ingeniería m adurez de la disciplina de ingeniería. C uando se sigue
del softw are, elim inando defectos m ientras que no son de fo rm a adecuada esa g u ía anteriorm ente menciona
relativam ente costosos de encontrar y corregir. L a re v i da, lo que se obtiene es la m adurez de la ingeniería del
sión técn ica form al es un a rev isió n específica que se ha softw are.
[ALV64] von Alvin, W. H. (ed.), R eliability Engineering, [GLA98] Glass,R., «Defining Quality Intuitively»,/££,£ 'Soft
Prentice-Hall, 1964. w are,M ayo 1998,pp. 103-104 y 107.
[ANS87] ANSI/ASQC A3-1987, Quality Systems Termino- [HOY98] Hoyle, D ,,/so 9000 Quality Systems Development
logy, 1987. Handbook: A Systems EngineeringApproach, Butterworth-
Heinimann, 1998.
[ART92] Arthur, L. J Improving Software Quality: An Insi-
der’s Guide to TOM, Wiley, 1992. [IBM81] «Implementating Software Inspections», notas del
curso, IBM Systems Sciences Institute, IBM Corporation,
[ART97] Arthur, L. J., «Quantum Improvements in Softwa 1981.
re System Quality», CACA1, vol. 40,n.s 6, Junio 1997,pp.
47-52. [IEE90] Software Quality Assurance: Aíodel Procedures, Ins-
titution of Electrical Engineers, 1990.
[BOE81] Boehm, B., Software Engineering Economías, Pren-
[IEE94] Software Engineering Standards, ed. de 1994, IEEE
tice-Hall, 1981.
Computer Society, 1994
[CR075] Crosby, P., Quality is Free, McGraw-Hill, 1975.
[JAN86] Jahanian, E , y A. K. Mok, «Safety Analysis of
[CR079] Crosby, P., Quality is Free, McGraw-Hill, 1979. Timing Properties of Real Time Systems», IEEE Trctns.
Software Engineering, vol. SE-12,n.° 9, Septiembre 1986,
[DEM86] Deming, W. W., O utofthe Crisis, MIT Press, 1986.
pp. 890-904.
[DEM99] DeMarco, T., «Management Can Make Quality [JON86] Jones, T. C., Programming Productivitv, McGraw-
(Im)possible», presentación de Cutter Summit '99, Bos Hill, 1986. '
ton, MA, 26 de Abril 1999.
[KAN95] Kan, S. H., Me tries and Models in Software Qua
[DIJ76] Dijkstra, E.,A Discipline o f Programming, Prentice- lity Engineering, Addison Wesley, 1995.
Hall, 1976.
[KAP95] Kaplan, C., R. Clark y V. Tang, Secrets o f Softwa
[DUN82] Dunn, R., y R. Ullman, QualityAssurance fo r Com re Quality: 40Innovationsfrom IBM , McGraw-Hill, 1995.
puter Software, McGraw-Hill, 1982.
[LEV86] Leveson, N.G., «Software Safety: Why, What, and
[FRE90] Freedman, D. R, y G. M. Weinberg,Handbook oj How», ACM Computing Surveys, vol. 18,n.e 2, Junio 1986,
Walkthroughs, Inspections and TechnicalReviews, 3.- ed., pp. 125-163.
www.FreeLibros.org
Dorset House, 1990.
[LEV87] Leveson,N. G.,y J.L. Stolzy, «Safety Analysis using
[GIL93] Gilb, T., y D. Graham, Software Inspections, Addi- Petri Nets», IEEE Trans. Software Engineering, vol. SE-13,
son-Wesley, 1993. n.° 3, Marzo 1987, pp. 386-397.
148
CAPÍTULO 8 G A R A N T I A DE CA L I D A D DEL S O F T WA R E
(LEV951 Leveson, N.G., Safeware: System Safety and Com- [ROO90] Rook, J., Software Reliahilitv Handhook, Elsevier,
puters, Addison-Wesley, 1995. 1990. '
PLIN79] Linger, R., H. Mills y B. Witt, Structured Program- [SCH98] Schulmeyer, G. C., y J.I. McManus (eds.), H and
ming, Addison-Wesley, 1979. hook o f Software Oualitv Assurance, Prentice-Hall, 3.a ed.,
JUT89] Littlewood,B„ «Forecasting Software Reliability», 1998. ~ '
en Software Reliahility: Modelling and Identification (S. [SCH94] Schmauch, C.E1., ISO 9000 fo r Software Develo-
Bittanti,ed.), Springer-Verlag, 1989, pp. 141-209. per s, ASQC Quality Press, Milwaukee, WI, 1994.
[MAN96] Manns,T. y M. Coleman, Software Quality Assu- [SCH97] Schoonmaker, S.J.,/SO 9000 fo r Engineers and
rance, MacMillan Press, 1996. Designers, McGraw Hill, 1997.
[MUS87] Musa, J. D., A. Iannino y K. Okumoto, Enginee
[SHI86] Shigeo Shingo, Zero Quality Control: Source h is
ring and Managing Software with Reliahilitv Measures,
pe ction and the Poka-Yoke System, Productivity Press,
McGqrw-Hill, 1987. '
1986. ' '
[PAU93] Paulk, M., et al., Capability M aturiry M odel for
[SOM96] Somerville, I., Softw’are Engineering, 5.a ed., Addi-
Software, SoftwareEngineering Institute, Camegie Mellon
son-Wesley, 1996.
’ University, Pittsburgh, PA, 1993.
[F*OR95] Porter, A., H. Siv, C. A. Toman, y L. G. Votta, «An [TIN96] Tingey, M., Comparing ¡SO 9000, Malcolm Bal-
Experiment to Assess the Cost-Benefits of Code Inspec- dridge y al SEJ CMM para Software, Prentice-Hall, 1996.
tions in-Large Scale Software Development», Proc. Third [TR197] Tricker, R., ISO 9 0 0 0 /o r Small Bussinesses, But-
ACM SIGSOFT Symposium on the Foundations o f Soft terworth-Heinemann, 1997.
ware Engineering, Washington DC, Octubre 1996, ACM
Press, pp. 92-103. [VES81] Veseley, W.E., et al., Fault Tree H andhook, U.S
Nuclear Regulatory Commision, NUREG-0492, Enero
[ROB97] Robinson, H., «Using Poka-Yoke Techniques for 1981.
Early Error Detection», Proc. Sixth International Confe-
rence on Software Testing Analysis and Review (STAR’97), [WI494] Wilson, L. A., 8 stp to Succesful ISO 9000, Cam
1997,pp. 119-142. bridge Interactive Publications, 1996.
8.1. Al principio del capítulo se señaló que «el control de varia 8 . 1 0 . Algunas personas piensan que una RTF debe evaluar el
ción está en el centro del control de calidad». Como todos los estilo de programación al igual que la corrección. ¿Es una bue
programas que se crean son diferentes unos de otros, ¿cuáles na idea? ¿Por qué?
son las variaciones que se buscan y cómo se controlan? Revise la Tabla 8.1 y seleccione las cuatro causas vita
8 .1 1 .
8 .2 ¿Es posible evaluar la calidad del software si el d ie n les de errores serios y moderados. Sugiera acciones correc
ta no se pone de acuerdo sobre lo que se supone que ha de toras basándose en la inform ación presentada en otros
hacer? capítulos.
8.3. La calidad y la fiabilidad son conceptos relacionados, Una organización utiliza un proceso de ingeniería del
8 .1 2 .
pero son fundamentalmente diferentes en varias formas. Dis software de cinco pasos en el cual los errores se encuentran
cútalas. de acuerdo a la siguiente distribución de porcentajes:
8.4. ¿Puede un programa ser correcto y aún así no ser fiable?
Explique por qué. P aso P o rc e n ta je d e e r ro r e s e n c o n tra d o s
8.5. ¿Puede un programa ser correcto y aun así no exhibir una 1 20%
traía calidad? Explique por qué. 2 15%
8.6. ¿Por qué a menudo existen fricciones entre un grupo de 3 15 %
ingeniería del software y un grupo independiente de garantía
de calidad del software? ¿Es esto provechoso? 4 40%
8.7. Si se le da la responsabilidad de mejorar la calidad del 5 10%
software en su organización. ¿Qué es lo primero que haría?
¿Qué sería lo siguiente? Mediante la información de la Tabla 8.1 y la distribución de
porcentajes anterior, calcule el índice de defectos global para
8.8. Además de los errores, ¿hay otras características claras dicha organización. Suponga que PS = 100.000.
dd software que impliquen calidad? ¿Cuáles son y cómo se
pueden medir directamente? 8 . 1 3 . Investigue en los libros sobre fiabilidad del software y
escriba un artículo que explique un modelo de fiabilidad del
8.9. Una revisión técnica formal sólo es efectiva si todo el
www.FreeLibros.org
software. Asegúrese de incluir un ejemplo.
mundo se la prepara por adelantado. ¿Cómo descubriría que
uno de los participantes no se la ha preparado? ¿Qué haría si 8 . 1 4 . El concepto de TMEF del software sigue abierto a deba
fuera el jefe de revisión? te. ¿Puede pensar en algunas razones para ello?
149
IN GE NI E RÍ A DEL S O F T W A R E . UN EN F O Q U E P R Á C T I C O
8.15. Considere dos sistemas de seguridad crítica que estén 8.17. Sugiera unos cuantos dispositivos poka-yoke quepue*
controlados por una computadora. Liste al menos tres peligros dan ser usados para detectar y/o prevenir errores que son
para cada uno de ellos que se puedan relacionar directamen encontrados habitualmente antes de «enviar» un mensaje
te con los fallos del software. por e-mail.
8.16. Utilizando recursos web y de impresión, desarrolle un 8.18. Adquiera una copia de ISO 9001 e ISO 9000-3. Prepa
tutorial de 20 minutos sobrepoka-yoke y expóngaselo a su cla re una presentación que trate tres requisitos ISO 9001 y cómo
se. se aplican en el contexto del software.
Los libros de Moriguchi {Software Excellence: A Total Qua- Sanders, J., Software Quality: A Fratneworkfor Success
lity Management Guíele, Productivity Press, 1997), Horch in Software Development, Addison-Wesley, 1994.
(Practica 1 Guíele to Software Quality Management, Artech Sumner, F. H. Software QualitvAssurance, MacMillan,
Publishing, 1996) son unas excelentes presentaciones a nivel 1993. '
de gestión sobre los beneficios de los programas formales de Wallmuller, E., Software Quality Assurance: A Practical
garantía de calidad para el software de computadora. Los Approach, Prentice-Hall, 1995.
libros de Deming [DEM86] y Crosby [CR079], aunque no
se centran en el software, ambos libros son de lectura obli Weinberg, G. M., Quality Software Management, 4vols.,
Dorset House, 1992, 1993, 1994y 1996.
gada para los gestores senior con responsabilidadesen el desa
rrollo de software. Gluckman y Roome (EvetydayHeroes of Wilson, R. C., Software Rx: Secrets of Engineering Qua-
the Quulity Movement, Dorset House, 1993) humaniza los lity Software, Prentice-Hall, 1997.
aspectos de calidad contando la historia de los participantes Una antología editada por Wheeler, Bryczynsky y Mee-
en el proceso de calidad. Kan (Metrics anel Moeleh in Soft son (Software Inspection: Industry Best Practice, IEEE Com
ware Quality Engineering, Addison-Wesley, 1995) presenta puter Society Press, 1996) presenta información útil sobre
una visión cuantitativa de la calidaddel software. Manns {Soft esta importante actividad de GCS. Friedman y Voas (Software
ware QualityAssurance, Macmillan, 1996) es una excelente Assessment, Wiley, 1995) estudian los soportes y métodos
introducción a la garantía de calidad del software. prácticos para asegurar la fiabilidad y la seguridad de pro
Tingley (ComperinglSO 9000,Malcom Balelrielge, anel gramas de computadora.
the SEICMMfor Software, Prentice-Hall, 1996)proporciona Musa (SoftwareReliability Engineering: More Reliable
una guía útil para las organizacionesque se esfuerzan en mejo Software, Faster Development and Testing, McGraw-Hill,
rar sus procesos de gestión de calidad. Oskarsson {An ISO 1998) ha escrito una guía práctica para aplicar a las técnicas
9000 Approach to Building Quality Software, Prentice-Hall, de fiabilidad del software. Han sido editadas antologías de
1995) estudia cómo se aplica el estándar ISO al software. artículos importantes sobre la fiabilidad del software por Kapur
Durante los últimos años se han escrito docenas de libros y otros (Contrihutions to Hardware and Software Reability
sobre aspectos de garantía de calidad. La lista siguiente es Modelling, World Scientific Publishing Co., 1999), Gritzails
una pequeña muestra de fuentes útiles: (Reliability,Quality anel Safety ofSoftware-lntemive Systems,
Clapp, J. A., et al., Softw’are Quality Control, ErrorAnaly- Kluwer Academic Publishing, 1997), y Lyu (Handbookof
sis anel Testing, Noyes Data Corp.. Park Ridge, NJ,1995. Software Reliahility Engineering, McGraw-Hill, 1996). Sto-
Dunn, R. H., y R.S. Ullman, TQM for Computer Softwa rey (Safety-Critica1 Computer Systems, Addison-Wesley,
re, McGrawHill, 1994. 1996)y Leveson [LEV95] continúan siendo los estudios más
Fenton, N., R. Whitty y Y. Iizuka, Software Quality Assu completos sobre la seguridad del software publicados hasta
rance and Measurement: Worldwide Industrial Applications, la fecha.
Chapman & Hall, 1994. Además de [SHI86], la técnicapoka-yoke para el software
Ferdinand, A. E., Systems, Software, and Quality Enginee- de prueba de errores es estudiada por Shingo (TheShingoPro-
ring, Van Nostrand Reinhold, 1993. ductionManagement System: Improving Product Quality by
Preventing Defects, Productivity Press, 1989) y por Shimbun
Ginac, F. P., Customer Oriente el Software Quality Assu (Poka-Yoke: Improving Product Quulity by Preventing Defects,
rance, Prentice-Hall, 1998.
Productivity Press, 1989).
Ince, D., ISO 9001 anel Software Quality Assurance, En Intemet están disponibles una gran variedad de fuen
McGraw-Hill, 1994. tes de información sobre la garantía de calidad del software,
Ince, D.,Hn ¡ntroduction to Software Quality Assurance fiabilidad del software y otros temas relacionados. Se puede
and Implementation, McGraw-Hill, 1994. encontrar una lista actualizada con referencias a sitios (pági
Jarvis, A., y V. Crandall, Inroads to Software Quality: nas) web que son relevantes para la calidad del software en
«How To» Guíele anel Toolkit, Prentice-Hall, 1997. http://www.pressman5.com.
www.FreeLibros.org 150
CAPÍTULO
Q GESTIÓN DE LA CONFIGURACIÓN
DEL SOFTWARE (GCS/SCM)*
UAN DO se construye software de computadora, los cambios son inevitables. Adem ás,
C los cambios aumentan el grado de confusión entre los ingenieros del software que están
trabajando en el proyecto. La confusión surge cuando no se han analizado los cam bios
antes de realizarlos, no se han registrado antes de implementarlos, no se les han com unicado a
aquellas personas que necesitan saberlo o no se han controlado de m anera que m ejoren la cali
dad y reduzcan los errores. Babich [BAB86] se refiere a este asunto cuando dice:
E l arte de coordinar el desarrollo de softw are para m inim izar.. ,1a confusión, se d enom ina g estión de c o n
figuración. L a gestión de configuración es el arte de identificar, organizar y controlar las m odificaciones que
sufre el softw are que con stru y e un equipo de program ación. L a m eta es m axim izar la prod u ctiv id ad m in i
m izando lo s erro res.
VISTAZO RÁPIDO
¿Qué es? C uando construim ossoftw arede ¿Por q u é e s im p o rta n te? Si no con q u e n ecesitan conocer los c am b io s son
com putadora, surgen cam bios. D ebido trolam os el cam bio, él nos c o n tro lará a in fo rm ad o s, se realizan los inform es.
a esto, necesitam os controlarlos eficaz nosotros. Y e sto n u n c a e s buen o . Es ¿Cuál e s e l p ro d u cto o b te n id o ? El
m ente. La gestió n d e la configuración m uy fá cil p a r a u n flujo d e c a m b io s P la n d e G e stió n d e la C o n fig u ra c ió n
del softw are (GCS) e s u n conjunto de in co n tro lad o s lle v a r a l c a o s a u n pro d e l S o ftw a re d e fin e la e s tr a te g ia d el
actividades d ise ñ a d a s p a ra controlar el yecto d e so ftw a re correcto. P or e s ta proyecto p a ra la GCS. A d em ás, c u a n
cam bio identificando los productos del razón, la G CS e s u n a p a rte e se n cial de do se re a liz a la G CS form al, el proce
trabajo q u e p ro b a b le m e n te c am b ien , u n a b u e n a g e stió n d el proyecto y u n a so d e control d e l c a m b io p ro v o c a
e stab lecien d o re la c io n e s e n tre e llo s, p rá c tic a fo rm al d e la in g e n ie ría del p e tic io n e s d e c a m b io d e l so ftw a re e
definiendom ecanism os p a ra g estionar softw are. inform es d e ó rd e n e s d e c a m b io s d e
distintas versiones d e estos productos, in g en ie ría .
¿ C u á les so n lo s p a so s? P u e sto q u e
controlando los c am b io s realizad o s, y
m uchos pro d u cto s d e tra b a jo s e o b tie ¿Cómo puedo esta r s e g u r o d e q u e lo
auditando e inform andode los cam bios
n e n c u a n d o s e con stru y e el softw are, h e h ech o correctam ente? C u an d o
realizados. c u a lq u ie r p ro ducto d e tra b a jo p u e d e
c a d a uno d e b e e s ta r id en tificad o u n í
¿Quién lo h a c e ? T odos a q u e llo s q u e v ocam ente. U na vez q u e e s to se h a se r e s tim a d o p a r a se r s u p e rv is a d o y
e sté n in v o lu c ra d o s e n el p ro c e so d e lo g ra d o , s e p u e d e n e s ta b le c e r los controlado: c u an d o c u a lq u ie r c am b io
in g en ie ría d e so ftw a re e s tá n re la cio m ec a n ism o s p a r a el control d e l c a m p u e d a se r se g u id o y a n a liz a d o ; c u a n
nados con la GCS h a s ta cierto punto, bio y d e l a s versiones. P a ra g a ra n tiz a r do c u a lq u ie ra q u e necesite sa b e r a lg o
pero la s p osiciones d e m antenim iento q u e s e m a n tie n e la c a lid a d m ie n tra s so b re a lg ú n c am b io h a sid o in fo rm a
e s p e c ia liz a d a s so n c r e a d a s a v eces se re a liz a n los c a m b io s, se a u d ita el do, lo h a b re m o s re a liz a d o c o rre c ta
p a ra la g estió n d el p roceso d e GCS. proceso. y p a r a a s e g u ra r q u e a q u ello s m ente.
www.FreeLibros.org
* En inglés, Software Configuration M anagem ent.
151
I NGENI ERÍ A DEL S OF TWARE . UN E NF OQUE P R Á C T I C O
Qfita: S in e m b a rg o , si a b a n d o n a la c o c in a , le d a ,e l plato al
c lie n te y lu e g o se le in fo rm a de su e rro r, d e b e seguir el
.N o hoy nado perorar ente excepto el cambio siguiente procedim iento: (1) m irar en la o rden de pedido si
Heródfto, 500 AdC. ha habido alg ú n error: (2 ) discu lp arse in sisten tem en te: (3)
vo lv er a la cocina por la puerta de E N T R A D A : (4 ) expli
¿Cuál es el origen de estos cambios? La respuesta a c ar el pro b lem a, etc.
esta pregunta es tan variada como los cambios mismos.
Sin embargo, hay cuatro fuentes fundamentales de cam
bios: CLAVE
• nuevos negocios o condiciones com erciales que dic Un producto de trabajo de la Ingeniería
tan los cambios en los requisitos del producto o en del software se convierte en una línea base,
las norm as comerciales; solamente después de haber sido revisado y aprobado.
• nuevas necesidades del cliente que dem andan la Una línea base es análoga a la cocina de un restau
m odificación de los datos producidos por sistemas rante. A ntes de que un elem ento de configuración de
de información, funcionalidades entregadas por pro software se convierta en una línea base, el cambio se
ductos o servicios entregados por un sistema basado puede llevar a cabo rápida e informalmente. Sin embar
en computadora; go, una vez que se establece una línea base, pasamos,
• reorganización o crecimiento/reducción del negocio de form a figurada, por una puerta de un solo sentido.
que provoca cambios en las prioridades del proyecto Se pueden llevar a cabo los cambios, pero se debe apli
o en la estructura del equipo de ingeniería del software; car un procedim iento form al para evaluar y verificar
cada cambio.
• restricciones presupuestarias o de planificación que En el contexto de la ingeniería del software, defini
provocan una redefinición del sistema o producto. mos una línea base com o un punto de referencia en el
La gestión de configuración del software (GCS) es un desarrollo del software que queda m arcado por el envío
www.FreeLibros.org
conjunto de actividades desarrolladas para gestionarlos de uno o más elementos de configuración del software
cambios a lo largo del ciclo de vida del software de com y la aprobación del ECS obtenido mediante una revi
putadora. sión técnica formal (Capítulo 8). Por ejem plo, los ele
152
CAPÍTULO 9 GE S T I Ó N DE LA C O N F I G U R A C I Ó N DEL S OF T WARE
mentos de una E specificación de D iseñ o se docum en so de ingeniería del software. Llevado al extremo, se pue
tan y se revisan. Se encuentran errores y se corrigen. de considerar un ECS como una sección individual de
Cuando todas las partes de la especificación se han revi una gran especificación o cada caso de prueba de un gran
sado, corregido y aprobado, la E specificación de D ise conjunto de pruebas. De forma más realista, un ECS es
ño se convierte en una línea base. Sólo se pueden realizar un documento, un conjunto completo de casos de prue
cambios futuros en la arquitectura del software (docu ba o un componente de un programa dado (p. ej., una fun
mentado en la E specificación de D iseño) tras haber sido ción de C++ o un paquete de ADA).
evaluados y aprobados. Aunque se pueden definir las En realidad, los ECSs se organizan como objetos de
líneas base con cualquier nivel de detalle, las líneas base configuración que han de ser catalogados en la base de
más comunes son las que se m uestran en la Figura 9.1. datos del proyecto con un nom bre único. Un objeto de
configuración tiene un nombre y unos atributos y está
^CONSEJO «conectado» a otros objetos mediante relaciones. Efe acuer
do con la Figura 9.2, los objetos de configuración,Espe-
quelabasededatosdelproyecta se montiene
Asegúrese
cificación de Diseño, modelo de datos, componente N,
sobteunentomocontrolodo,centralizado. código fuente y Especificaciónde Prueba, están defini
La progresión de acontecim ientosque conducen a un dos por separado. Sin embargo, cada objeto está relacio
línea base está tam bién ilustrada en la Figura 9.1. Las nado con otros com o m uestran las flechas. Una flecha
tareas de la ingeniería del software producen uno o más curvada representa una relación de com posición.E s decir,
ECSs. Una vez que un ECS se ha revisado y aprobado, modelo de datos y componente N son parte del objeto
se coloca en una base de dato s d el p ro y e c to (también Especificación de Diseño. Una flecha recta con dos pun
denominada biblioteca d el p ro yecto o depósito de soft tas representa una interrelación. Si se lleva a cabo un cam
ware). Cuando un miem bro del equipo de ingeniería del bio sobre el objeto código fuente, las interrelaciones
software quiere hacer modificaciones en un ECS de línea perm iten al ingeniero de software determ inar qué otros
base, se copia de la base de datos del proyecto a un área objetos (y ECSs) pueden verse afectados'.
efe trabajo privada del ingeniero. Sin embargo, este ECS
extraído puede m odificarse sólo si se siguen los contro
les GCS (tratados m ás adelante en este capítulo). Las
flechas punteadas de la Figura 9.1 m uestran el camino
de modificación de una línea base ECS.
m o d ific a d a
Elementos de configuración del software.
j B a s e d e d a to s d e l p ro y e c to
r a p ro b a d a M o d e lo d e da to s
T a re a s R e v is io n e s
4 e n g e n ie ría ► té c n ic a s 1
del s o ftw a re f o rm a le s
i
a lm a c e n a d a ttaeltodadaft*'**—
bfeeñoaaidftrttóñfeó -
Diseñe de módulos —
e x tra íd a
c o n tro les. 'i; ■.
GCS ¡L IN E A S B A S E :
[ E s p e c if ic a r o n d e l s is te m a D escripción de la interfaz
R e q u is ito s d e l s o ftw a re Descripción del algoritmo
E s p e c ific a c io n e s d e d is e ñ o ■?0Uv :y • . ..
I C ó d ig o fu e n te
[P la n e s / P r o c e d im ie n to s / Plano*la potaba
¡D a to s d e p ru e b a ProcedimientoMi
( S is t e m a d e fu n c io n a m ie n to l&iapraá&H
UtueB»
FIGURA 9 .1 . ECS de línea base y base de datos del proyecto. ;Códigofwrde.
www.FreeLibros.org
1 Estas relaciones se tratan en la Sección 9.2.1 y la estructura de la
base de datos del proyecto se trata con detalle en el Capítulo 3 1.
153
IN GE NI E RÍ A DEL S O F TW A RE . UN E N F O Q U E P R A C T I C O
www.FreeLibros.org
2 Com o m ecanism os para representar una versión com pleta de la
configuración del softw are se ha propuesto el concepto de objeto
agregado [GUS89]
154
CAPÍTULO 9 G E S T I Ó N DE LA C O N F I G U R A C I Ó N DEL S OF TWARE
jerarquía de objetos. P or ejem p lo , el m odelo de datos [GUS891 para c u alq u ier objeto. E l grafo de ev o lu ció n
está interrelacionadocon los diagram as de flujo de datos d escrib e la h isto ria de los cam b io s de un ob jeto y ap a
(suponiendo que se usa el análisis estructurado) y ta m rece ilu strad o en la F ig u ra 9.3. El ob jeto de co n fig u
bién está interrelacionado con un conjunto de casos de ració n 1.O p a sa la re v isió n y se con v ierte en el o b je to
prueba p ara u n a clase p a rtic u la r de eq u iv alen cia. Las 1.1. A lg u n as co rre ccio n es y cam b io s m ín im o s p ro d u
relaciones a trav és de la estructura se pu ed en rep resen c en las v e rsio n e s 1.1.1 y 1.1.2, que v an seg u id as de
tar de la siguiente form a: u na actualización im portante, re su lta n d o el o b jeto 1.2.
M odelo d e d a to s < in te rre la c io n a d o > m o d e lo d e flu jo d e L a ev o lu ció n de o b jeto 1.O sigue h acia 1.3 y 1.4, pero,
datos; al m ism o tie m p o , una g ra n m o d ific a c ió n del o b je to
M odelo de d a to s < in te rre la c io n a d o > c a so d e p ru e b a de la produce un nuevo cam ino de ev o lu ció n , la versión 2.0.
clase m; A estas do s v ersio n es se les sigue d an d o soporte.
Se p u e d e n re a liz a r ca m b io s en c u a lq u ie r v e rsió n ,
r w a jj.n ijju .u .f c aunque no n ec esa riam e n te en todas. ¿C óm o pued e el
tos modelos de datos y losdlagromasde flujo de datos desarrollador establecer las referencias de todos los co m
se tratan en el Capítulo 12. po n en tes, do cu m en to s, casos de p ru e b a de la v ersió n
1.4.? ¿Cóm o puede saber el departam ento com ercial los
En el prim er caso , la interrelación es entre objetos n om bres de los clientes que en la actualidad tienen la
compuestos, m ientras que en el segundo caso, la re la versión 2.1.? ¿C óm o podem os e star seguros de que los
ción es entre un objeto com puesto (m odelo de datos) cam bios en el código fuente de la versión 2.1 han sido
y un objeto básico (caso de prueba de la clase m). reflejados adecuadam ente en la correspondiente d o c u
Las in terrelaciones en tre los o b jeto s de co n fig u ra m entación de diseño? U n elem en to clave para resp o n
ción se pueden rep resen tar con u n lenguaje de interco der a todas estas preguntas e s la identificación.
nexión de módulos ( L I M ) [N A R 87], U n L IM describe
las interdependencias entre los objetos de configuración
y permite construir autom áticam ente cualq uier versión
do un sistema.
El esquem a de identificación de los objetos de so ft
ware debe ten er en c u en ta que los o b je to s e v o lu c io Herramientas CASEGCS
nan a lo largo del p ro ceso de in g e n ie ría del softw are.
Antes de que un o b jeto se co n v ierta en una línea base, Se han desarrollado varias herram ientas autom áticas
puede cam biar v arias v e c e s,.e in c lu so cu an d o y a es para ayu d aren la tarea de identificación(y otras de GCS).
una línea base, los cam b io s se p re se n ta n con bastan te En algunos casos, se diseña la herram ienta para m antener
frecuencia. Se p u e d e c re a r u n grafo de evolución copias com pletas de las versiones m ás recientes.
CQyiTROL DE VERSIQNES
El control de versiones com bina procedim ientos y herra tip o s d e c a m b io s fu n c io n a le s a p lic a d o s al siste m a
mientas para gestionar las v ersiones de los objetos de [L IE 89],
configuración creados durante el p roceso del softw are.
Clemm [CLE89] describe el control de v ersiones en el
contexto de la GCS:
www.FreeLibros.org
sencillos com o u n n ú m ero e sp ecífico de versión aso decir, una versión com pleta del softw are. Cada versión
ciado a cada o b jeto o tan co m p lejo s co m o u n a cad en a del softw are es una colección de ECSs (código fuente,
de variables ló g ic a s (in d ic a d o re s) q u e e sp e c ifiq u e n do cu m en to s, datos) y cad a versión pued e e sta r c o m
IS5
IN GENIERÍA DEL S OFT W ARE . UN E N F O Q U E P R Á C T I C O
pu esta de diferentes variantes. P ara ilu strar este co ncep o b jeto s del m ism o n iv el de revisión. U n a variante es
to, considerem os u n a versió n de un sencillo p rogram a u n a colección diferente de objetos del m ism o nivel de
que está form ado p o r los com ponentes 1, 2, 3, 4 y 5 3. El re v isió n y, p o r ta n to , c o e x iste en p a ra le lo co n otras
com ponente 4 sólo se usa cuando el softw are se im ple- variantes. U n a n u eva versión se define cu an d o se reali
m enta para m onitores de color. El com ponente 5 se im ple- zan cam bios significativos en uno o m ás objetos.
m en ta cuando se dispone de m o n ito r m onocrom o. Por E n la pasada década se propusieron diferentes enfo
tanto, se pueden definir dos v ariantes de la versión: (1) ques autom atizados para el control de versiones. La prin
com ponentes 1, 2, 3 y 4; (2) com ponentes 1, 2, 3 y 5. cip al diferencia entre los distintos enfoques está en la
Para construir la variante adecuada de una determ ina sofisticación de los atributos que se usan para construir
da versión de un program a, a cada com ponente se le asig versiones y variantes específicas de un sistem a y en la
na una «tupia de atributos» —una lista de características m ecánica del proceso de construcción.
que definen si se ha de utilizar el com ponente cuando se va
v a ria n te s
a construir una determ inada versión del software— . A cada A
variante se le asigna uno o m ás atributos. Por ejem plo, se
podría usar un atributocolor para definir qué com ponentes
se deben incluir para soporte de m onitores en color.
.P.E..CAMBIQS
La realidad del control de cam bio en un contexto m oder
no de ingeniería de softw are ha sido bien resum ida por
Jam es B ach [BA C98] :
estó en mantener el orden en
E l control de cam bio es vital. Pero las fuerzas que lo hacen mantener el cambio en medio
necesario tam bién lo hacen m olesto. N o s preocupam os por el
cam bio porque una dim inuta perturbacion en el código puede
Mfrad North WhHrñsad
crear un gran fallo en el producto. Pero tam bien puede reparar
un gran fallo o habilitar excelentescapacidadesnuevas. N os preo
cupam os por el cam bio porque un desarrollador pícaro puede yectos, el control de cam bios com bina los procedim ien
hacer fracasar el proyecto; sin em bargo las brillantes ideas naci tos hum anos y las herram ientas autom áticas para propor
das en la m ente de estos pícaros, y un pesado proceso de con
c io n a r un m ecan ism o para el control del cam bio. El
trol de cam bio pueden disuadirle de hacer un trabajo creativo.
proceso de control de cam bios está ilustrado esquem áti
B ach reconoce que nos enfrentam os a u n a situacion cam ente en la Figura 9.5. Se hace una p etició n de cam
a equilibrar. M ucho control de cam bio y crearem os pro b ió 4 y se e v alú a para ca lcu la r el esfu erzo técnico, los
blem as. Poco, y crearem os o tro s problem as. posibles efectos secundarios, el im pacto global sobre o ta s
En un gran proyecto de ingeniería de softw are, el cam funciones del sistem a y sobre otros objetos de la confi
bio incontrolado lleva rápidam ente al caos. Para estos pro- guración. L os resultados de la evaluación se presentan
3 En este contexto, el térm ino «com ponente» se refiere a todos los 4 A unque m uchas de las peticiones de cam bio se reciben durante la
www.FreeLibros.org
objetos com puestos y objetos básicos di: un ESC de línea base. Por fase de m antenim iento, en este estudio tom am os un punto de vista
ejem plo, un com ponente de «entrada» puede e star constituido por m ás am plio. Una petición de cam bio puede a p are ce r en cualquier
seis com ponentes de softw are distintos, cada uno responsable de m om ento durante el proceso del software.
una subfunción de entrada.
156
CAPÍTULO 9 GE S TI ÓN DE LA C O N F I G U R A C I Ó N DEL S OF T WAR E
Objeto de configuración
(versión modificada) Objeto de configuración
Desbloqueo (versión de línea base)
Información de
auditoría
Información
(versión extraída)
www.FreeLibros.org
FIG U R A 9 .6 . Control de acceso y de sincronización.
157
IN GE NI E RÍ A DEL S OF TWARE. UN E N F O Q U E P R Á C T I C O
La id en tificació n ,el control de versiones y el control de ha im plem entado correctam ente? L a respuesta es doble:
cam bios ayudan al equipo de d esarrollo de softw are a (1) revisiones técnicas form ales y (2) auditorías de con
m an te n e r un o rden que, de o tro m o d o , lle v a ría a una figuración del softw are.
situación caótica y sin salida. Sin em bargo, incluso los Las revisiones técnicas form ales (presentadas en deta
www.FreeLibros.org
m ecanism os m ás correctos de control de cam bios hacen lle en el C apítulo 8) se centran en la corrección técnica
un seguim iento al cam bio sólo h asta que se h a g enera del elem ento de configuración que h a sido modificado.
do la OCI. ¿C óm o p odem os asegurar que el cam bio se Los revisores evalúan el ECS para determ inar la con-
158
CAPÍTULO 9 G E S T I Ó N DE LA C O N F I G U R A C I Ó N DEL S O F T WA R E
sistenciacon otros ECSs, las om isiones o los posibles 3. ¿Se ha seguido el proceso del software y se han apli
efectos secundarios. Se debe llevar a cabo una revisión cado adecuadamente los estándares de ingeniería del
técnica formal para cualquier cambio que no sea trivial. software?
Una auditoría de configuración del software com 4. ¿Se han «resaltado» los cambios en el ECS? ¿Se han
plementa la revisión técnica formal al com probar carac especificado la fecha del cam bioy el autor? ¿Reflejan
terísticas que generalm ente no tiene en cuenta la los cambios los atributosdel objeto de Configuración?
revisión. La auditoría se plantea y responde las siguien
tes preguntas: 5. ¿Se han seguido procedim ientos de GCS para seña
lar el cam bio, registrarlo y divulgarlo?
¿ Cuáles son las principales
lA .y INFORMES DE ESTADO________
La generación de informes de estado de la configura
ción. (a veces denom inada contabilidad de estado) es
una tarea de GCS que responde a las siguientes pre Desarrolle una «lista que se necesita conocer»
guntas: (l)¿ Q u é pasó? (2) ¿Quién lo hizo? ^ ¿ C u á n para cadaECS y manténgalo actualizada. Cuando
do pasó? (4) ¿Qué m ás se vio afectado? se realice un cambó, asegúrese que se informa
En la Figura 9.5 se ilustra el flujo de inform ación a todos los que estén en la listo.
para la generación de informes de estado de la confi
guración (IEC). Cada vez que se asigna una nueva iden La generación de informes de estado de la configura
tificación a un ECS o una identificación actualizada se ción desempeña un papel vital en el éxito del proyecto de
genera una entrada en el IEC. C ada vez que la ACC desarrollode software. Cuandoaparece involucrada mucha
aprueba un cambio (o sea, se expide una OCI), se gene gente es muy fácil que se dé el síndrome de que «la mano
ra una entrada en el IEC. Cada vez que se lleva a cabo izquierda ignora lo que hace la mano derecha». Puede que
una auditoría de configuración, los resultados aparecen dos programadores intenten modificar el m ismo ECS con
como parte de una tarea de generación de un IEC. La intenciones diferentes y conflictivas. Un equipo de inge
salida del IEC se puede situaren una base de datos inte niería del software puede em plear meses de esfuerzo en
ractiva [TAY85] de forma que los encargados del desa construir un software a partir de unas especificacionesde
rrollo o del mantenim iento del software puedan acceder hardware obsoletas. Puede que la persona que descubra
a la información de cambios por categorías clave. A de los efectos secundarios senos de un cambio propuesto no
más, se genera un IEC regularm ente con intención de esté enterada de que el cambio se está realizando. El IEC
mantener a los gestores y a los profesionales al tanto de ayuda a elim inar esos problem as, m ejorando la com uni
los cambios importantes. cación entre todas las personas involucradas.
m m m m
La gestión de configuración del software es una activi La configuración del software está com puesta por un
dad de protección que se aplica a lo largo de todo el pro conjunto de objetos interrelacionados, tam bién deno
ceso del software. La GCS identifica, controla, audita e m inados elementos de configuración del software, que
informa de las m odificaciones que invariablemente se se producen como resultado de alguna actividad de inge
dan al desarrollar el software una vez que ha sido dis niería del software. Además de los documentos, los pro
tribuido a los clientes. Cualquier inform ación produci gramas y los datos, tam bién se puede poner bajo control
da como parte de la ingeniería del software se convierte de configuración el entorno de desarrollo utilizado para
www.FreeLibros.org
en parte de una configuración del software. La confi crear el software.
guración se organiza de tal form a que sea posible un U na vez que se ha desarrollado y revisado un obje
control organizado de los cambios. to de configuración, se convierte en una línea base. Los
159
IN GENIERÍA DEL S O F T W A R E . UN E N F O Q U E P R Á C T I C O
[ADA89] Adams, E., M. Honda y T. Miller, «Object Mana [IEE94] Software Engineering Standards, edición de 1994,
gement in a CASE Environment», Proc. 11 th Intl. C onf IEEE Computer Society, 1994.
Software Engineering, IEEE, Pittsburg, PA, Mayo 1989,
[LIE89] Lie, A. etal., «Change Oriented Versioning in a Soft
pp. 154-163. ' ware Engineeering Database», Proc. 2nd Intl. Workshop
[BAC98] Bach, J., «The Highs and Lows of Change Con on Software Configuration Management, ACM, Prince
trol», Computer, vol. 31, n.e 8, Agosto 1998,pp. 113-115. ton, NJ, Octubre 1989,pp. 56-65
[BER80J Bersoff, E.H., V.D. Hendersony S. G. Siegel,óo//- [NAR87] Narayanaswamy, K., y W. Scacchi, «Maintatning
ware Configuraron Management, Prentice-Hall, 1980. Configurations of Evolving Software Systems», IEEE
[BRY80] Bryan, W., C. Chadboume,y S. Siegel,So/brare Con- Trans. Software Engineering, vol.SE-13, n.° 3, Marzo
figuration Management, IEEE Computer Society Press, 1980. 1987,pp. 324-334.
[CH089] Choi, S. C., y W. Scacchi, «Assuring the Correct- [REI89] Reichenberger, C., «Orthogonal Versión Manage
ness of a Configured Software Descriptíon», Proc. 2nd ment», Proc. 2nd Intl. Workshop on Software Configura
Intl. Workshop on Software Conftguration Management, tion Management, ACM, Princeton, NJ, Octubre 1989,
ACM, Princeton, NJ, Octubre 1989,pp. 66-75. pp. 137-140.
[CLE89] Clemm, G. M., «Replacing Versión Control with [ROC75] Rochkind, M., «The Source Code Control System»,
Job Control», Proc. 2ndlntl. Workshop on Software Con- IEEE Trans. Software Engineering, vol. SE-1, n." 4, Diciem
figuration M anagement, ACM, Princeton, NJ, Octubre bre 1975,pp. 364-370.
1989,pp. 162-169. [TAY85] Taylor,B., «A Database Approach to Configuration
[GUS89] Gustavsson, A., «Maintaining the Evaluation of Management for Large Projects», Proc. Conf. Software
Software Objects in an Integrated Environment», Proc. Maintenance-1985, IEEE, Noviembre 1985,pp. 15-23.
2nd Intl. Workshop on Software Configuration Manage [TIC82] Tichy, W. F., «Design, Implementation and Evalua
ment, ACM, Princeton, NJ, Octubre 1989, pp. 1 14-117. tion of a Revisión Control System», Proc. 6,h Intl. Conf.
[HAR89] Harter, R., «Configuration Management», YWPro- Software Engineering, IEEE, Tokyo, Septiembre 1982,pp.
fessional, vol.3, n.B6, Junio 1989. 58-67.
9 . 1 . ¿Por qué es cierta la primera ley de la ingeniería de sis mo programa? ¿Se manejaría de forma diferente el código
temas? ¿Cómo afecta a nuestra percepción de los paradigmas fuente que la documentación? ¿Cómo se evitaría que dos pro
de la ingeniería del software? gramadores hicieran cambios diferentes sobre el mismo ECS
al mismo tiempo?
9 .2 .Exponga las razones de la existencia de líneas base con
sus propias palabras. 9.5. Investigue un poco sobre bases de datos orientadas a
objetos y escriba un artículo que describa cómo se podrían
9 .3 . Asuma que es el gestor de un pequeño proyecto. ¿Qué
usar en el contexto de la GCS.
líneas base definiría para el proyecto y cómo las controlaría?
9 .6 .Utilice un modelo E-R (Capítulo 12) para describir las
9 .4 .Diseñe un sistema de base de datos que permita a un
interrelaciones entre los ECS (objetos) de la Sección 9.1.2.
ingeniero del software guardar, obtener referencias de forma
www.FreeLibros.org
cruzada, buscar, actualizar, cambiar, etc., todos los elemen 9 . 7 . Investigue sobre herramientas de GCS existentes y des
tos de la configuración del software importantes. ¿Cómo criba cómo implementan el control de versiones, de cambios
160
CAPÍTULO 9 G E S T I Ó N DE LA C O N F I G U R A C I Ó N DEL S O F T WA R E
9.8. Las relaciones «parte-de» e «interrelacionado» repre 9.10. Utilizando la Figura 9.5 como guía, desarrolle un
sentan relaciones sencillas entre los objetos de configuración. esquema de trabajo más detallado aún para el control de cam
Describa cinco relaciones adicionales que pudieran ser Utiles bios. Describa el papel de la ACC y sugiera formatos para la
en el contexto de la base de datos del proyecto. petición de cambio, el informe de cambios e IEC.
9.9. Investigue sobre una herramienta de GCS existente y 9.11. Desarrolle una lista de comprobaciones que se pueda
describa cómo implementa los mecanismos de control de ver utilizar en las auditorías de configuración.
siones. Alternativamente, lea dos o tres de los artículos a los
que se hace referencia en este capítulo e investigue en las 9 .1 2 . ¿Cuál es la diferencia entre una auditoria de GCS y una
estructurasde datos y los mecanismos que se usan para el con revisión técnica formal? ¿Se pueden juntar sus funciones en
trol de versiones. una sola revisión? ¿Cuáles son los pros y los contras?
www.FreeLibros.org 161
www.FreeLibros.org
PARTE
MÉTODOS CONVENCIONALES
PARA LA INGENIERÍA
DEL SOFTWARE
N esta parte de Ingeniería del Software U n EnfoquePrácticoconsidera-
Una vez que estas cuestiones sean contestadas, comprenderás cómo cons
truir software utilizando un enfoque disciplinado de ingeniería.
www.FreeLibros.org 163
www.FreeLibros.org
CAPÍTULO
10 INGENIERÍA DE SISTEMAS
A C E casi 500 años, M aquiavelo dijo: «... no hay nada m ás difícil de llevar a cabo, m ás
VISTAZO RÁPIDO
¿Qué e#? Antes de que el software se pue es el sistema, y los árboles son los ele ¿Cuál es el producto obtenido? Se debe
da construir, el «sistema» en el que mentos tecnológicos (incluido el soft obtener una correcta representación
residirá se debe comprender. Para ware) que son requeridos para realizas del sistema como consecuencia de la
lograrlo, se deben definir los objetivos el sistema. El empeño en construir ele ingeniería de sistemas. Se puede rea
generalesdel sistema;se debe identi mentos tecnológicos, antes de com lizar a través de un prototipo, una
ficar el papel del hardware, sotware, prender el sistema, lleva a cometer especificación o, incluso, un modelo
personas, bases de datos, procedí errores que desagradarán a t e clientes. simbólico, debiendo comunicar la
mientos y otros elementos del sistema; operativa, la funcionalidad y las
¿Cuáles son los pasos? Los objetivos y
y los requerimientos operacionales características de comportamiento del
los requisitos operacionales de mayor
deben ser identificados; analizados, sistema que se va a construir e incor
detalle son identificados gracias a la
especificados,modelizados,validados información facilitada por el cliente. porarlo dentro de la arquitectura del
y gestionados. Estas actividades son sistema,
Los requisitos son analizados para
la base de la ingeniería de sistemas. valorar su claridad, completitud y ¿Cómo puedo estar seguro de que lo he
¿Quién lo hace? Un ingeniero de sistemas consistencia. Una especificación, hecho correctamente? El producto obte
traba,ja para comprenderlos requisitos incorporada a un modelo del sistema, nido a tiavés de la aplicación de la
del sistema en colaboración con el se crea y valida posteriormente por ingeniería de sistemas, debe ser revi
cliente, los futuros usuarios y otras par los clientes y las partes interesadas. sado para determinar su claridad, com-
tes interesadas. Finalmente, los requisitos del siste pletitud y consistencia. Es importante
¿Por qué es impo.jlante?Hay un viejo dicho ma son gestionados para asegurar que los cambiosen los requisitos de un
que dice que «los árboles no dejan ver que los cambios se controlac ade sistema sean gestionados utilizando
el boscrue». En este contexto, el «bosque» cuadamente. métodos sólidos de GCS (Capítulo©.
www.FreeLibros.org
1 En realidad, el térm ino ingeniería de sistemas se em plea a m enudo en este contexto. Sin em bargo, en este libro, el
térm ino «ingeniería de sistem as» e s genérico y se usa para abarcar a la ingeniería de proceso de negocio y a la inge
niería de producto.
165
I N GE NIE RÍA DEL S O F T W A R E . UN E N F O Q U E PR AC T I C O
L a p alab ra sistem a es posiblem ente el térm ino m ás u sa ciones específicas, en un conjunto de señales de control
do y abusado del léxico técnico. H ablam os de sistem as que provocan alguna acción físic a específica. T anto la
políticos y de sistem as educativ o s, de sistem as de avia creación de un sistem a de inform ación para asesorar a un
ción y de sistem as de fab ricació n , de sistem as banca- departam ento de m arketing, com o el softw are de control
rio s y de sistem as de lo co m o ció n . L a p a la b ra n o nos p ara el robot, requieren de la ingeniería de sistem as.
dice gran cosa. U sam os el adjetivo p ara describ ir el sis U na característica com plicada de los sistem as basa
tem a y p ara en tender el contexto en q u e se em plea. El dos en com putadora es que los elem entos que com po
diccio n a rio W ebster define sistem a com o: n e n un siste m a p u ed e n tam b ié n re p re se n ta r un
1. un conjunto o disposición de cosas relacionadas de m ane m acroelem ento de un sistem a aún m ás grande. El macro-
ra que form an una unidad o un todo orgánico; 2. un conjunto elem ento es un sistem a basado en com putadora que es
de hechos, principios, reglas, etc., clasificadas y dispuestas de parte de un sistem a m ás grande basado en com putado
m anera ordenada m ostrando un plan lógico de unión de las par ra. P o r ejem plo, considerem os un «sistem a de autom a
tes; 3. un m étodo o plan de clasificacióno disposición; 4 . una
tiz ac ió n de u n a fá b ric a » que es e se n c ia lm e n te una
m anera establecida de hacer algo; m étodo; procedim iento...
je ra rq u ía de sistem as. E n el niv el in fe rio r de la je ra r
S e proporcio n an cin co d e fin icio n es m ás en el dic q u ía tenem os u n a m áquina de control num érico, robots
cionario, pero no se sugiere u n sinónim o preciso. S is y dispositivos de entrada de inform ación. C ad a uno es
tem a es u n a p alab ra especial. un sistem a basado en com putadora p o r derecho propio.
Tom ando prestada la definición del diccionario W ebs L o s elem entos de la m áquina de control num érico inclu
ter, definim os un sistem a basado en com putadora com o: yen hardw are electrónico y electrom ecánico (por ejem
U n conjunto o disposición de elem entos que están organi plo, p rocesador y m em oria, m otores, sensores); software
zados para realizar un objetivo predeñnido procesando infor (para com unicaciones, control de la m áquina e interpo
m ación. lación); personas (el operador de la m áquina); una base
E l o b je tiv o p u e d e ser so p o rta r alg u n a fu n c ió n de de datos (el p rogram a C N alm acenado); docum entación
negocio o desarro llar u n p roducto q u e p u ed a venderse y p ro ced im ien to s. Se po d ría ap licar u n a d escom posi
p ara g enerar beneficios. P ara conseguir el o bjetivo, un ción sim ilar a los d isp o sitiv o s de entrada de in form a
sistem a b asado en com pu tad o ra hace u so de v arios e le c ió n y al ro b o t. T odos so n siste m a s b asad o s en
m entos del sistem a: com putadora.
Software. Programas de com putadora, estructuras de datos
y su docum entación que sirven para hacer efectivo el m étodo
lógico, procedim iento o control requerido.
CLAVE
Hardware. D isp o sitiv o s e lectró n ico s que p ro porcionan
los sistemas complejos son actualmente uno jerarquía
c a p a c id a d d e c á lc u lo , d isp o sitiv o s de in te rc o n e x ió n (p o r
e jem plo, co n m u tad o res de red, d isp o sitiv o s de te le c o m u n i de macro elementos que son sistemas en s' mismos.
c ación) y d isp o sitiv o s electro m ecán ico s (p o r ejem p lo , se n
s o re s, m o to re s, b o m b as) q u e p ro p o rc io n a n una fu n c ió n E n el siguiente nivel de la je ra rq u ía , se d efine una
externa, del m undo real. célula de fabricación. L a célula de fabricación es un sis
Personas. U suarios y operadores del hardw are y software.
tem a basado en com putadora que puede ten er elem en
to s p ro p io s (p o r e je m p lo , c o m p u ta d o ra s, fijacio n es
Documentación. M an u ales, fo rm u lario s y o tra in fo rm a
m ecánicas) y tam bién integra los m acroelem entos que
ción descriptiva que plasm a el em pleo y/o funcionam iento
del sistema. h em os denom inado m áquina de control num érico, robot
y dispositivo de entrada de inform ación.
Procedimientos. Los pasos que definen el em pleo especí
fico de cada elem ento del sistem a o el contexto procedim ental
P ara resum ir, la célula de fabricación y sus macroe-
en que reside el sistema. lem en to s está n c o m p u esto s de elem en to s del sistem a
con las etiquetas genéricas: softw are, hardw are, perso
nas, base de datos, p ro c ed im ien to s y docum entación.
fw H S E ld ^ . En algunos casos, los m acroelem entos pueden compartir
No esté atraído por hablar de un planteamiento un elem ento genérico. P or ejem plo, el ro b o t y la m áqui
«centrada en el software». Comience por considerar n a C N podrían ser m an e jad a s p o r el m ism o operador
todos los elementos de un sistema antes de concentrarse (el elem en to personas). E n otros casos, los elem entos
en el software. genéricos son exclusivos de un sistem a.
El papel del ingeniero de sistem as es definir los ele
Los elem entos se com binan de varias m aneras para m en to s de un sistem a esp ecífico b asad o en com puta
transform ar la información. Por ejem plo, un departam ento dora en el co n tex to de la je ra rq u ía global de sistem as
www.FreeLibros.org
de m arketing tran sfo rm a la inform ación bruta de ventas (m acroelem entos).
en un perfil del típ ico co m prador del producto; un robot En las siguientes secciones, exam inam os las tareas que
transform a un archivo de órdenes, que contiene in struc constituyen la ingeniería de sistem as de com putadoras.
166
CAPÍTULO 10 I NGENI ERI A DE S I STEMAS
í
Dominio
d e n ego cio Vista g lo b al
o d e p ro d u cto
E le m en to
del siste m a
2 En algunas situaciones, sin em bargo, los ingenieros del sistem a 3 Las en tra d as exógen as unen un elem ento de una visión dada con
www.FreeLibros.org
deben considerar primero los elem entos individuales del sistema y /o otros elem entos al m ism o o a o tro s niveles; las en tra d as endógenas
los requisitos detallados. Em pleando este enfoque, los subsistem as unen com ponentes individuales de un elem ento en una visión par
se escriben de abajo a arriba considerando primero los com ponen ticular.
tes de detalle del subsistem a.
167
I N GEN IE RÍ A DEL S O F TW A RE . UN E N F O Q U E P R Á C T I C O
plo, considere un p roducto de rep resen tació n en tres cliente es a m enudo tom ada en cuenta h asta el punto
dim ensiones usado p o r la industria de entretenim iento de realizar su enfoque preferido.
para crear anim aciones realistas. U n dom inio del pro E l m o d e lo de siste m a re su ltan te (desde cualquier
d u cto p erm ite la rep resen tació n de form as hum anas v isió n ) p u ede recla m a r u n a so lu ció n co m p letam en te
en 3D . Las entradas a este dom inio co m prenden la au to m ática, sem iau to m ática o un enfo q u e m anual. De
h ab ilid ad de in tro d u c ir m o v im ien to de u n «actor» h e c h o , es p o sib le a m e n u d o c a rac teriza r m o d elo s de
h um ano vivo, desd e vídeo o creando m odelos gráfi ca d a tip o que sirv en de so lu cio n es altern ativ as para el
cos. E l ingeniero del sistem a hace ciertos supuestos p ro b le m a que te n e m o s e n tre m an o s. E n e s e n c ia , el
sobre el rango de m ovim ien to s h um anos perm itidos ingeniero del sistem a m odifica sim plem ente la influen
(por ejem plo, las p iernas n o p u ed en enrollarse alre c ia re la tiv a de lo s d ife re n te s e le m e n to s del sistem a
ded o r del tro n co ) de m an era que puede lim itarse el (p ersonas, h ard w are, so ftw a re ) para cre ar m o d elo s de
p roceso y el rango de entradas. ca d a tipo.
2. Sim plificaciones q u e p e rm ite n c re a r el m o d e lo a
tiem po. P ara ilustrarlo, considere u n a com pañía de
10.2.2. Sim u lación d el siste m a
p ro d u cto s de o fic in a que v en d e y su m in istra una
am plia v aried ad de fotocopiadoras, faxes y equipos E n los años 60, R.M. G raham [GRA69] hizo un com en
sim ilares. El ingeniero del sistem a e stá m odelando tario crítico sobre la m anera en que se construían los sis
las necesid ad es de la o rganización su m inistradora y tem as basados en com putadora: «C onstruim os sistemas
está trabajando p ara en tender el flujo de in form ación igual que los herm anos W right construían aviones: cons
que en gendra u n a o rden de sum inistro. A unque una truim os todo el sistem a, lo em pujam os barranco abajo,
ord en de sum inistro puede generarse desde m uchos le dejam os que se estrelle y em pezam os de n uevo.» De
orígenes, el ingeniero categoriza solam ente dos fu en h ech o , para al m enos un tip o de sistem a — el sistema
tes: d em an d a in te rn a o p etició n externa. E sto p er reactivo— lo continuam os haciendo hoy en día.
m ite una p artició n sim plificada de entradas necesaria M uchos sistem as basados en com putadora interac-
p ara g enerar u n a ord en de trabajo. cionan con el m u n d o real de form a reactiva. Es decir,
los acontecim ientos del m u n d o real son vigilados por
3. Lim itaciones que ayudan a delim itar el sistem a. Por
el hardw are y el softw are que com ponen el sistem a, y
ejem plo, se está m odelando un sistem a de aviónica
basándose en esos sucesos, el sistem a aplica su control
p ara un avión de p ró x im a generación. C om o el avión
sobre las m áquinas, procesos e incluso las personas que
ten d rá un diseño de dos m otores, tod o s los dom inios
m otivan los acontecim ientos. L os sistem as de tiempo
de supervisión de la prop u lsió n se m o d elarán para
real y sistem as em p o trad o s p ertenecen a m enudo a la
albergar un m áxim o de d os m otores y sus sistem as
categoría de sistem as reactivos.
redundantes asociados.
sistem a de rep resen tació n en tres d im ensiones d es ajustar sus característicos.
www.FreeLibros.org
p ara tod o s los datos, funciones y tecnología. L a solu trolan m áquinas y/o procesos (por ejem plo, aerolíneas
ción p referid a e n tra a v eces en conflicto con otros com erciales o refinerías de p etróleo) que deben operar
fa c to re s re s tric tiv o s. A u n q u e la sa tisfa c c ió n del con extrem a fiabilidad.
168
CAPITULO 10 IN GE NI ER IA DE S I STEMAS
S i e l s is t e m a f a lla , p o d r í a n o c u r r ir p é r d id a s e c o n ó f i c a c i ó n d e l s i s t e m a . E n e l C a p í t u l o 31 s e e s t u d i a n
m ic a s o h u m a n a s s i g n i f i c a t i v a s . P o r e s t e m o t i v o , e l e n f o b r e v e m e n te lo s d e t a lle s t é c n ic o s y t é c n ic a s e s p e c ia
q u e d e s c r ito p o r G r a h a m e s p e n o s o y p e lig r o s o . le s d e m o d e la d o q u e s e e m p le a n p a r a ll e v a r a c a b o
H o y e n d ía s e u t iliz a n h e r r a m ie n ta s s o ftw a r e p a ra e s ta s p ru e b a s .
e l m o d e la d o y s im u la c ió n d e s is t e m a s p a r a a y u d a r a
e lim in a r s o r p r e s a s c u a n d o s e c o n s t r u y e n s is t e m a s
r e a c tiv o s b a s a d o s e n c o m p u t a d o r a . E s ta s h e r r a m ie n
ta s s e a p l i c a n d u r a n t e e l p r o c e s o d e i n g e n i e r í a d e sis
t e m a s , m i e n t r a s s e e s t á n e s p e c i f i c a n d o la s n e c e s i d a d e s
d e l h a rd w a re , s o ftw a r e , b a s e s d e d a to s y d e p e rs o n a s .
L a s h e r r a m ie n ta s d e m o d e la d o y s im u la c ió n c a p a c i Herramientas CASE
tan a l i n g e n i e r o d e s i s t e m a s p a r a p r o b a r u n a e s p e c i Modelado y Simulación
■ B h £ . 2 E N I E . ^ „ D E P l.Q C E S Q
E l o b je t iv o d e la in g e n ie r í a d e p r o c e s o d e n e g o c io ( I P N ) S e d e b e n a n a liz a r y d is e ñ a r tr e s a r q u it e c t u r a s d i f e
es d e f in ir a r q u it e c t u r a s q u e p e r m it a n a la s e m p r e s a s re n te s d e n tr o d e l c o n te x to d e o b je t iv o s y m e ta s d e
e m p le a r l a i n f o r m a c i ó n e f i c a z m e n t e . M i c h a e l G u t t m a n n e g o c io :
[G U T 9 9 ] d e s c r ib e e l d e s a f io c u a n d o d ic e : • a r q u it e c t u r a d e d a to s
El actual e n torno com putacional co n siste e n un po d er de • a r q u it e c t u r a d e a p lic a c io n e s
com putación distrib u id o en to d a la em p resa con m últiples
unidades d iferentes de procesam iento, div id id o y configura • in f r a e s tr u c tu r a d e la t e c n o lo g ía
do por una am plía variedad de tareas, N uevos planteam ien
tos com o la c o m p u tació n c lie n te -se rv id o r, p ro c e sa m ie n to m n sm m m *
distribuido,el trabajo en red (por nom brar algunos de los té r lo s objetos de datos son tratados en detalle
minos m ás so b reu sad o s) p erm iten g e stio n a r las dem andas
en el C a p íJo 12.
aportando m ayor funcionalidad y flexibilidad.
Sin em bargo, el coste de estos cam bios es am p liam ente L a a r q u it e c t u r a d e d a to s p r o p o r c io n a u n a e s tr u c tu
discutido por la organizacionesde TI (Tecnologíasde la Infor
r a p a r a la s n e c e s id a d e s d e i n f o r m a c i ó n d e u n n e g o c io o
m ación) que deb en so p o rtar esta p o líg lo ta configuración.
Hoy, cada organización de TI debe fav o re c er la integración d e u n a f u n c i ó n d e n e g o c i o . L os l a d r i l l o s d e l a a r q u i t e c
de sus sistem as. D ebe d iseñ ar, im p lem en tar y so p o rta r su t u r a s o n lo s o b je t o s d e d a to s q u e e m p le a la e m p r e s a . U n
propia configuración de recursos de c o m p u tació n h etero g é o b je t o d e d a to s c o n tie n e u n c o n ju n t o d e a t r ib u to s q u e
nea, distribuidos lógica y geográficam ente por toda la e m p re d e f in e n a s p e c to s , c u a lid a d e s , c a r a c te r ís tic a s o d e s c r ip
sa, conectándola a través de un esquem a apro p iad o para el
t o r d e lo s d a to s q u e h a n s id o d e s c r ito s . P o r e je m p lo , u n
trabajo en red.
in g e n ie r o d e la in f o r m a c ió n p u e d e d e f in ir e l o b je t o d e
Por otra parte, esta configuración debe ser d ise ñ ad a p ara
d a to s : c lie n te . P a r a d e s c r ib ir m á s e n d e t a lle a l c lie n t e ,
cambios continuos, d esig u alm en te lo c a liz a d o s e n la e m p re
s e d e f in e n lo s s ig u ie n te s a t r ib u t o s :
sa, debido a cam bios en requisitos del n egocio y en las p ro
pias tecnologías. E sto s d iv e rso s e in crem en tales c am b io s O bjeto: Cliente
deben ser coordinados a través del e n torno d istrib u id o , c o n
A tributos:
sistente en hardw are y softw are sum inistrado por decenas,
cuando no cientos, de vendedores. P or supuesto, e speram os nom bre
que estos cam bios los in co rp o rem o s sin ruptura con la o p e nom bre de la com pañía
rativa habitual perm itiendo adem ás a m p liar la operativa.
clasificación d el trabajo y au to rid a d en com pra
C u a n d o h a b l a m o s d e u n a v i s i ó n g e n e r a l d e la s n e c e dirección com ercial e inform ación de contacto
s id a d e s d e t e c n o l o g í a d e i n f o r m a c i ó n d e u n a c o m p a ñ í a , producto(s) de interés
p is te n p e q u e ñ a s in c e r t id u m b r e s q u e s o n p la n te a d a s a
com pra)s) anteriores
la in g e n ie r í a d e s is t e m a s . L a i n g e n i e r í a d e p r o c e s o d e
f e c h a de últim o contacto
g o c io e s u n a c e r c a m i e n t o p a r a c r e a r u n p l a n g e n e
t ! p a ra im p le m e n t a r la a r q u it e c t u r a d e c o m p u t a c ió n
ÍSPE93],
situación d el contacto
U n a v e z d e f in id o e l c o n ju n t o d e d a to s , s e id e n t if ic a n
s u s r e la c io n e s . U n a r e la c ió n in d ic a c o m o lo s o b je t o s
e s tá n c o n e c ta d o s . C o m o e je m p lo , c o n s id e r a r lo s o b je
t o s : cliente y productoA. L o s d o s o b j e t o s p u e d e n c o n e c
www.FreeLibros.org
Tres arqultecturasdlferentes son desorrollodos durante ta r s e p o r la r e la c ió n c o m p r a ; e s d e c ir , u n c lie n te c o m p r a
la PNla arquitectura de datos, la arquitectura e l p r o d u c to A o e l p r o d u c to A e s c o m p r a d o p o r u n c lie n
de aplicación y la Infraestructura tecnológica. te . L o s o b je t o s d e d a to s ( p u e d e n e x is t ir c ie n t o s o m ile s
169
IN GENIERÍA DEL SOFTW ARE . UN E N F O Q U E P R Á C T I C O
para una actividad de negocio im portante) fluyen entre dad de la em presa. La PEI define los objetos de datos
las funciones de negocio, están organizados dentro de visibles a nivel em presa, sus relaciones y cóm o fluyen
una base de datos y se transforman para proveer infor entre los dominios del negocio [M AR90].
mación que sirva a las necesidades del negocio.
La arquitectura de aplicación comprende aquellos ^ C O N S E iO ^ .
elementos de un sistema que transform an objetos den
tro de la arquitectura de datos por algún propósito del
lomoingenierodelsoftware,nodebesprofundizarenPEI
negocio. E n el contexto de este libro, consideram os
nienelAAN. No obstante, sinoestácloroqueestas
norm alm ente que la arquitectura de aplicación es el sis
octividodeshoyansidorealizadas, informea susuperior
queelriesgodelproyectoesmuyalto.
tem a de program as (software) que realiza esta trans
formación. S in embargo, en un contexto m ás amplio, La vista del dominio se trata con una actividad IPN
la arquitectura de aplicación podría incorporar el papel denom inada análisis del área de negocio (AAN). Hares
de las personas (por ejemplo, cliente/servidor) que ha [HAR93] describe AAN de la siguiente manera:
sido diseñado para im plem entar estas tecnologías. El A A N se ocupa de identificar en detalle la inform ación (en
la form a de tipos de entidad [objeto datos]) y los requisitos de
m sm m n m las funciones (en la form a de procesos) de áreas de negocio
B detalle sobre la arquitectura del software seleccionadas [dom inios] identificadas durante el PE I, averi
guando sus interacciones (en form a de matrices). Se ocupa sola
es presentado enel Capítulo 14.
m ente de especificar qué se requiere en un área de negocio.
A n á lis is d e l á re a
d e n e g o c io
(vista
IngenieríadeProcesosde Negocio
d e l d o m in io )
U na vez que se ha aislado un sistema de información
para un desarrollo posterior, la IPN hace una transición
a la ingeniería del software. Invocando la fase del dise
D is e ñ o d e l s is te m a ño de sistema de negocio (DSN), se m odelan los requi
d e n e g o c io
(v is ta d e l e le m e n to )
sitos básicos de un sistema de inform ación específico y
In g e n ie ría estos requisitos se traducen en arquitectura de datos,
. del arquitectura de aplicación e infraestructura tecnológica.
s o ftw a re
C o n s tru c ció n El paso final de la IPN (construcción e integración,
e in te g ra c ió n C&I) se centra en los detalles de la implementación. La
(vista d e ta lla d a )
arquitectura e infraestructura se implementan constru
yendo una base de datos apropiaday estructuras internas
F IG U R A 1 0 .2 . La jerarquía de la ingeniería de procesos. de datos, mediante la construcción de aplicaciones que
están constituidas por programas, y seleccionando los
Para m odelar las arquitecturas de sistema descritas elementos apropiados de una infraestructuratecnológica
anteriormente, se define una jerarquía de actividades de para dar soporte al diseño creado durante el DSN. Cada
ingeniería de la información. Como m uestra la Figura uno de estos componentes del sistema debe integrarse
10.2, la visión global se consigue a través de la planifi para formar una aplicación o sistema de información com
cación de la estrategia de información (PEI). La PEI pleto. La actividad de integración también coloca al nue
www.FreeLibros.org
ve todo el negocio como una entidad y aisla los dom i vo sistem a de inform ación en el contexto del área de
nios del negocio (por ejemplo, ingeniería, fabricación, negocio, realizando todo el entrenam iento de usuario y
marketing, finanzas, ventas) importantes para la totali soporte logístico para conseguir una suave transición.
170
C A P I T U L O 10 I NGENI ERI A DE SI STEMAS
INGENIERÍA DE REQUISITOS
La consecuencia del p roceso de ingeniería de sistem as
es la especificación de un sistem a o producto basado en
computadora que se d escrib e g en éricam en te, e n d ife la porte más dura en la construcción de un sistema
rentes niv eles en la F ig u ra 10.1. P ero el desafío de la s ié íita te es decidir cómo construirlo... Ninguna parte
ingeniería del sistem a (y de los ingenieros del softw a déf hahojo mutila el resultado del sistema si está
re) es im portante: ¿C óm o podem os asegurar que hem os hecho m al. Ninguna parte es más dificultoso para
especificado un sistem a que recoge las necesidades del
cliente y satisface sus e x p e c ta tiv as? N o hay u n a re s
puesta segura a esta difícil p regunta, pero un sólido p ro
ceso de ingen iería de requisitos es la m ejo r solución de L a in g e n ie ría de re q u isito s fa c ilita el m e c a n ism o
que disponem os actualm ente. ap ropiadopara c o m p ren d erlo que quiere el cliente, ana-
www.FreeLibros.org
utilizada en la Figura 10.2 está asociada con la ingeniería de la infor
mación, la predecesora del m oderno IPN. Sin em bargo, el área cen
tral implicada en cada actividad se ñ a la d a e s dirigida por to d o s
a q u e llo s que consideran el tem a.
171
I N GEN IE RÍ A DEL S OFT W ARE . UN E N F O Q U E P R Á C T I C O
•
¿Por qué es tan difícil
ciando una solución razonable, especificando la solu obtener un planteamiento
ción sin am bigüedad, validando la especificación y claro de lo que necesita
gestionando los requisitos para que se transform en en el cliente?
un sistema operacional [THA97]. El proceso de inge
niería de requisitos puede ser descrito en 5 pasos dis « identificar las personas que ayudarán a especificar
tintos [SOM97]: Identificación de Requisitos, Análisis requisitos y contrastar su papel en la organización;
de Requisitos y Negociación, Especificación de Requi « definir el entorno técnico (arquitectura de com puta
sitos, M odelizado del Sistema, Validación de R equisi ción, sistema operativo, necesidades de telecom uni
tos y Gestión de Requisitos. caciones) en el sistem a o producto a desarrollar e
integrar;
10.5.1. Id e n tific a c ió n d e r e q u is ito s « identificar «restricciones de dominio» (característi
En principio, parece bastante sim ple — preguntar al cas específicas del entorno de negocio en el dom i
cliente, a los usuarios y a los que están involucrados en nio de la aplicación) que lim iten la funcionalidad y
los objetivos del sistema o producto y sean expertos, rendimientos del sistema o producto a construir;
investigar cóm o los sistemas o productos se ajustan a • definir uno o m ás métodos de obtención de requisi
las necesidades del negocio, y finalmente, cóm o el sis tos (entrevistas, grupos de trabajo, equipos de dis
tem a o producto va a ser utilizado en el día a día—: Esto cusión);
que parece simple, es muy complicado. « solicitar la participación de m uchas personas para
Christel y Kang [CRI92] identifican una serie de pro que los requisitos se definan desde diferentes puntos
blemas que nos ayudan a com prender por qué la obten de vista, asegurarse de identificar lo fundamental de
ción de requisitos es costosa. cada requisito registrado;
. problem as de alcance. El límite del sistema está mal « identificar requisitos ambiguos como candidatos para
definido o los detalles técnicos innecesarios, que han el prototipado, y
sido aportados por los clientes/usuarios, pueden con • crear escenarios de uso (ver Capítulo 11) para ayu
fundir m ás que clarificarlos objetivos del sistema. dar a los clientes/usuarios a identificar m ejor los
. problem as de comprensión. Los clientes/usuarios no requisitos fundamentales.
están com pletam ente seguros de lo que necesitan,
tienen una pobre com presión de las capacidades y
limitaciones de su entorno de computación, no existe
un total entendim iento del dom inio del problem a, Asegúrate de haber valorado los características generales
antes de especificar el esfuerzo y plazo para obtener
existen dificultades para com unicar las necesidades
los requisitos de detalle.
al ingeniero del sistema, la om isión de información
por considerar que es «obvia», especificación de
El resultado alcanzado como consecuencia de la iden
requisitos que están en conflicto con las necesidades
tificación de requisitos variará dependiendo del tama
de otros clientes/usuarios, o especificar requisitos
ño del sistem a o producto a construir. Para grandes
ambiguos o poco estables.
sistemas, el producto obtenido debe incluir:
• Problem as de volatilidad. Los requisitos cam bian • una relación de necesidades y características;
con el tiempo.
• un informe conciso del alcance del sistema o producto;
. una lista de clientes, usuarios y otros intervinientes
ü & que deben participar en la actividad de obtención de
Referencia W ebl requisitos;
Un informe detallado bajo el titulo ((Necesidades . una descripción del entorno técnico del sistema;
en lo Obtención de Requisitos)) puede ser descargado de « una relación de requisitos (perfectamente agrupados
www.sei.cmu.edu/publications/documents/
por funcionalidad) y las restricciones del dominio
92.reports/92.tr.012.html
aplicables a cada uno;
Para ayudar a solucionar estos problem as, los inge « un conjunto de escenarios que perm iten profundizar
nieros de sistem as deben aproxim arse de una m ane en el uso del sistema o producto bajo diferentes con
ra o rg an izad a a través de reu n io n es p ara d efin ir diciones operativas, y
requisitos. . cualquier prototipo desarrollado para definir mejor
Sommerville y Sawyer [SOM97] sugieren un con los requisitos.
junto de actuacionespara la obtención de requisitos, que
www.FreeLibros.org
están descritos en las tareas siguientes: c s a fflg fflffla
• valorar el im pacto en el negocio y la viabilidad téc los métodos de obtención de requisitos
nica del sistema propuesto; son presentados en el Capítulo 11.
172
CAPÍTULO 10 I NGENI ERI A DE S I STEMAS
Cada uno de los productos obtenidos debe ser revi E l ingeniero del sistem a debe resolver estos c o n flic
sado por las personas que hayan participado en la obten tos a través de un proceso de negociación. L os clientes,
ción de sus requisitos. usuarios y el resto de intervinientes deberán clasificar
sus requisitos y discutir los posibles conflictos según su
10.5.2. A n á lis is y n e g o c ia c ió n d e r e q u is ito s prioridad. Los riesgos aso ciadoscon cada requisito serán
identificadosy analizados (ver C apítulo 6). Se efectúan
Una vez recopilados los requisitos, el producto obteni «estim aciones» del esfu erzo de desarrollo que se u tili
do configura la base del análisis de requisitos. Los requi zan para v alorar el im pacto de cada requisito en e l co s
sitos se agrupan por categorías y se organizan en te del proyecto y en el plazo de entrega. U tilizando un
subconjuntos, se estudia cada requisito en relación con procedim iento iterativo, se irán elim inando requisitos,
el resto, se examinan los requisitos en su consistencia, se irá n co m b in a n d o y/o m o d ific a n d o p a ra c o n se g u ir
completitudy ambigüedad, y se clasifican en base alas satisfacer los objetivos planteados.
necesidades de los clientes/usuarios.
• preguntadas y contestadas
. durante el análisis de requisitos?
E n el contexto de un sistem a basado en com putadoras
(y softw are), el térm ino especificación significa distin
tas cosas para diferentes personas. U na especificación
Al iniciarse la actividad del análisis de requisitos se puede ser un docum ento escrito, un m odelo gráfico, un
plantean las siguientes cuestiones: m odelo m atem ático form al, una co lec ció n de e sc e n a
• ¿Cada requisito es consistente con los objetivos gene rios de uso, u n prototipo o un a com binación de lo ante
rales del sistema/producto? riorm ente citado.
• ¿Tienen todos los requisitos especificados el nivel A lgunos sugieren que d ebe desarrollarse una «p lan
adecuado de abstracción? Es decir, ¿algunos requi tilla estándar» [SO M 97] y usarse en la especificación
sitos tienen un nivel de detalle técnico inapropiado del sistem a, argum entando que así se conseguirían requi
en esta etapa? sitos que sean p resen tad o s de una fo rm a m ás c o n sis
te n te y m ás c o m p re n sib le . N o o b sta n te , en m u ch a s
• ¿El requisito es necesario o representa una caracte
ocasiones es necesario b u scar la flexibilidad cuando una
rística añadida que puede no ser esencial a la finali
especificación va a ser desarrollada. P ara grandes sis
dad del sistema?
tem as, un docum ento escrito, co m b in ad o con d escrip
• ¿Cada requisito está delimitado y sin ambigüedad? ciones en lenguajes n atu ral y m o d elo s gráficos p u ede
• Cada requisito tiene procedencia. Es decir, ¿existe ser la m ejor alternativa. E n cualquier caso, los e sc e n a
un origen (general o específico) conocido para cada rios a u tilizar pueden ser tan to los requeridos para p ro
requisito? ductos de tam año pequeño o los de sistem as que residan
• ¿Existen requisitos incom patibles con otros requi en entornos técnicos bien conocidos.
sitos?
• ¿Es posible lograr cada requisito en el entorno téc
nico donde se integrará el sistema o producto?
• ¿Se puede probar el requisito una vez implementado?
Técnicasde Negociación
www.FreeLibros.org
S/los diferentesclientes/usuarios nopueden facilitar
losrequisitos, el riesgo de errares muy alto. Proceda
conextremaprecaución. Especificacióndel sistema
173
I N G E N IE R ÍA DEL S O F T W A R E . UN E N F O Q U E P R Á C T I C O
Requisitos
^ O N S E J O 4^
Un punto fundamental durante la validación Las preguntas planteadas en la lista de com proba
de los requisitos es lo consistencia. Utilice el modelo ción ayudan a asegurar que el equipo de validación dis
del sistema para asegurar que los requisitos pone de lo necesario para realizar una revisión completa
han sido consistentemente establecidos. de cada requisito.
www.FreeLibros.org
m edida que se desarrolla la especificación del sistema. Es m ejor para
el equipo de revisión exam inar pequeñas partes de la especificación,
de form a que se pueda centrar la atención en un aspecto específico
de los requisitos.
174
CAPÍTULO 10 I NGENI ERÍ A DE S I STEMAS
B i t ó , M O D E L A D O D E L . S I S T IL M A
www.FreeLibros.org
modelo de componentesde sistema que establezca el fun
damento para análisis de requisitos posteriores y etapas
d e diseño en cada una de las disciplinas de ingeniería.
175
INGENIERÍA DEL SOF TW ARE . UN E N F O Q U E PR AC T I C O
Mantenimiento
y autocomprobación
www.FreeLibros.org
de la cinta. Las cajas pasarán a través de una estación clasifi produce una entrada de inform ación etiquetada como
cadora donde se identificarán. Basándose en un núm ero de iden código de b a r r a s . En esencia, el DCS sitúa a cualquier
tificación im preso en un lateral de la caja (se prop o rcio n a un sistema en el contexto de su entorno exterior.
176
CAPÍTULO 10 I NGENI ERÍ A DE SI STEMAS
Interfaz
Peticiones de op era dor Respuestas, inform es y visu a liza cio n e sd e l SCCT
el operador Subsistem a
de interfaz
con el
operador
Datos Posición
del código del contenedoi Ó rdenes de m aniobra
Código de barras t-
de barras
S ubsistem a
de acceso Inform es de SCCT
a la b a s e d o d a t o s S ubsistem a
Clave de configuración
Velocidad de inform es
Subsistema
de la cinta
del sensor
de adquisición C lasificación C ontrolador
de registros de las
de datos
com unicaciones
Estado BCR
con la com putadora
Estado de m aniobra central
Estado del sensoi Ci ihr'it'tpma
Entrada de diagnósticos
efe tacómetro Estado de com unicaciones C onfiguración
cte impulsos de los datos
Estado del lector
del inform e
de código de barras
Interfaz de adquisición
de datos Interfaz de diagnóstico Interfaz de salida
www.FreeLibros.org
de las cinco regiones de proceso estudiadas anterior tiva de cada subsistema y una definición de todos los
mente. En este punto, cada uno de los subsistemas pue datos que fluyen entre los subsistemas son elem entos
de contener uno o m ás elem entos del sistem a (por importantes de la Especificación del Sistema.
177
INGENIERÍA DEL S O F T W A R E . UN E N F O Q U E P R Á C T I C O
— □
DFA de A
j L J —f B > FA de B
DFA de C M
t ) X □
1^ * 1 — E 3 )7 O
□ - — 1
1 1 1— u un
12J
F IG U R A 1 0 .8 . C o n stru c c ió n d e u n a je ra rq u ía DFA.
Un sistema de alta tecnología comprende varios com prende una planificación de la estrategia de la infor
ponentes: hardware, software, personas, bases de datos, mación (P E I),un análisis del área de negocio (AAN)y
docum entación y procedimientos. La ingeniería de sis un análisis específico de aplicación que de hecho for
temas ayuda a traducir las necesidades del cliente en un m an parte de la ingeniería del software.
modelo.de sistema que utiliza uno o más de estos com La ingeniería de productos es un enfoque de la inge
ponentes. niería de sistemas que em pieza con el análisis del sis
La ingeniería de sistem as com ienza tom ando una tema. El ingeniero de sistemas identifica las necesidades
«visión global». Se analiza el dom inio de negocio o del cliente, determ ina la viabilidad económica y técni
producto para establecer todos los requisitos básicos. ca, y asigna funciones y rendim ientos al software, hard
El en fo q u e se estrech a en to n ce s a una « v isió n de ware, personas y bases de datos; los componente claves
dom inio», donde cada uno de los elem entos del sis de la ingeniería.
tem a se analiza individualm ente. C ada elem ento es L a ingeniería del sistem a dem anda una intensa
asignado a uno o m ás com ponentes de ingeniería que com unicación entre el cliente y el ingeniero del siste
son estudiados por la disciplina de ingeniería corres ma. Esto se realiza a través de un conjunto de activi
pondiente. dades bajo la denom inación de ingeniería de requisitos
La ingeniería de procesos de negocio es un enfoque -identificación, análisis y negociación, especificación,
de la ingeniería de sistemas que se usa para definir arqui m odelización, validación y gestión-.
tecturas que perm itan a un negocio utlizar la inform a U na vez que los requisitos hayan sido aislados, el
ción eficazm ente. La intención de la ingeniería de m odelado del sistem a puede ser realizado, y las repre
procesos de negocio es crear minuciosas arquitecturas sentaciones de los subsistemas principales pueden ser
de datos, una arquitectura de aplicación y una infraes desarrolladas. La tarea de la ingeniería del sistema fina
tructura tecnológica que satisfaga las necesidades de la liza con la elaboración de una Especificación del Siste
estrategía de negocio y los objetivos de cada área de m a -u n docum ento que sirve de base para las tareas de
negocio. La ingeniería de procesos de negocio com ingeniería que se realizarán posteriorm ente-.
www.FreeLibros.org
ced Practitioner, W ile y , 1 9 9 3 ,pp. 12-13.
[T H A 9 7 ] T h a y e r, R .H ., y M . D o r f m a n , Software Require
[H A T 87] H a tle y ,D .J ., e l .A . P irb h a i, StrategiesforReal-Time ments Engineering, 2 .a e d ., IE E E C o m p u te r S o c iety Press,
System Specification, D o rs e t H o u s e , 1987. 1997. ' '
178
CAPITULO 10 I NGENI ERI A DE S I STEMAS
101. Encuentre tantos sinónimos como pueda de la palabra 10.10.Investigue las técnicas de'contabilidad que se emplean
«sistema». ¡Buena suerte! para un análisis detallado de coste/beneficio de un sistema
que requiera algo de fabricación y m ontaje de hardware.
10.2. Construya una descripción en estructura jerárquica para
Intente escribir un libro de directrices que pueda aplicar un
un sistema, producto o servicio que le sea familiar. El plantea
gestor técnico.
miento abarcará los elementos fundamentalesdel sistema (hard
ware, software, etc.) de una rama concreta de dicha estructura. 10.11. Desarrolle el diagrama de contexto DCS y el resto de
10.3. Seleccione un gran sistema o producto con el que esté diagramas de flujo de un sistema a su elección (o definido por
familiarizado. Defina el conjunto de dominios que describen la su profesor).
visión global de él. Describa el conjunto de elementos que com 10.12. Escriba una descripción de un módulo del sistema que
pongan uno o dos dominios. Para un elemento, identifique los pudiera estar contenido en la especificación de diagrama de
componentes técnicos con los que hay que hacer ingeniería. arquitectura de uno o más de los subsistemas definidos en los
10.4. Seleccione un gran sistema o producto con el que esté DFA desarrollados para el problema 10.11.
familiarizado. Establezca los supuestos, simplificaciones,limi- 10.13. Investigue documentación sobre herramientas CASE
taciones, restricciones y preferencias que deberían haberse y escriba un breve documento describiendo cómo trabajan las
hecho para construir un modelo de sistema eficaz y realizable. herramientas de modelado y simulación. Alternativa: Reúna
10.5. La ingeniería de proceso de negocio requiere definir información de dos o más vendedores de CASE que suminis
idatos, arquitectura.de aplicaciones, además de una infraes tren herramientas de modelado y simulación y valore las simi
tructura tecnológica. Describa cada uno de estos términos litudes y las diferencias.
mediante un ejemplo.
10.14. Basándose en la documentación que le proporcione su
10.6. La planificación de la estrategia de la información empie profesor, desarrolle una pequeña Especificación de Sistema
za por la definición de objetivos. Ponga ejemplos de cado uno para uno de los siguientes sistemas:
de los dominios de negocio.
a. Un sistema de edición de vídeo digital no lineal
,10.7. Un ingeniero de sistemas puede venir de una de tres pro
b. Un escáner digital para ordenador personal
cedencias: el desarrollo de sistemas, el cliente o una tercera
'organización. Discuta los pros y contras de cada procedencia. c. Un sistema de correo electrónico
Descnba a un ingeniero de sistemas «ideal». d. Un sistema para apuntarse a la universidad
10.& Su profesor les repartirá una descripción de alto nivel de e. Un proveedor de acceso a internet
un sistema o producto.
f. Un sistema interactivo de reserva de hoteles
a. Desarrolle un conjunto de cuestiones que debería pre
guntar como ingeniero de sistemas. g. Un sistema de interés local
b. Proponga al menos dos asignaciones diferentes para el Asegúrese de crear los modelos de arquitectura descritos en
sistema basándose en las respuestas de su profesor a la Sección 10.6
sus preguntas. 10.15. ¿Existen características de un sistema que no se pue
c. En clase, compare sus respuestas con las de sus com dan establecer durante las actividades de ingeniería de siste
pañeros. mas? Describa las características, si existen, y explique por
qué se debe retrasar su consideración a fases posteriores de la
¡10.9. Desanolle una lista de comprobación para los atributos ingeniería.
¡«considerar cuando hay que evaluar la «viabilidad» de un sis-
¡jema o producto. Estudie la interacción entre los atributos e 10.16. ¿Existen situaciones en las que se pueda abreviar o eli
¡tatente proporcionar un método para puntuar cada uno de minar completamente la especificación formal del sistema?
¡panera que se obtenga una «puntuación de viabilidad». Explíquelo.
I f e f lS T .K H T U R A S y f u e n t e s d e i n f o r m a c i ó n .
|5elian publicado relativamente pocos libros sobre inge- ring Guidehook, CRC Press, 1996), Wymore (Model-Based
|nería de sistemas en los últimos años. Entre ellos desta Systems Engineering, CRC Press, 1993), Lacy (SystemEngi
camos: neering Management, McGraw-Hill, 1992), Aslakseny Bel-
BlanchardjB.S., System Engineering Management, 2." ed., cher (System s Engineering, Prentice-H all,1992), Athey
PMley, 1997. ' (SystematicSystems Approach, Prentice-Hall, 1982), y Blan-
Rechtin,E., y M.W. Maier, TheA rt o f Systems Architec- chard y Fabrycky (SystemsEngineering andAnalysis, Pren
B/ig, CRC Press, 1996. tice-Hall, 1981) presentan el proceso de la ingeniería del
Weiss, D., et al.,Software Product-LineEngineering, Addi- sistema (con un énfasis diferente de la ingeniería) y ofrecen
www.FreeLibros.org
wn-Wesley, 1999. una valiosa guía.
Libros como los de Armstrong y Sage (Intoduction to Sys- En los Últimos años, los textos de ingeniería de la infor
ttms Engineering, Wiley, 1997), Martin (Systems Enginee mación han sido reemplazados por libros que se centran en
179
INGENIERÍA DEL S O F TW A RE . UN E N F O Q U E P R Á C T I C O
www.FreeLibros.org 180
C A PÍT U L O
CONCEPTOS Y PRINCIPIOS
DEL ANÁLISIS
A ingeniería de requisitos del softw are es u n p ro ceso de descubrim iento, refinam iento,
L m odelado y especificació n . Se refinan en d etalle los req u isito s del sistem a y el papel
asignado al softw are — in icialm enteasignado po r el in g en iero del sistem a— . Se crean
m od elo s de los requisitos de datos, flujo de inform ación y co n tro l, y del c o m p o rtam ien to ope
rativo. Se analizan soluciones alternativas y el m odelo com pleto del análisis es creado. D onald
R e ife r [R E I94] d escrib e el p ro ceso de in g e n iería de req u isito s del softw are e n el siguiente
párrafo:
L a ingeniería de requisitos es el uso sistem ático de procedim ientos, técnicas, lenguajes y herram ientas para
obtener con un coste reducido el análisis, docum entación, evolución continua de las necesidades del usuario
y la especificación del com portam iento externo de un sistem a que satisfaga las necesidades del usuario. T enga
en cuenta que todas las disciplinas de la ingeniería son sem ejantes, la ingeniería de requisitos no se guía por
conductas esporádicas, aleatorias o por m odas pasajeras, si no que se debe b asar en el uso sistem ático de apro—
xim aciones contrastadas.
T anto el desarro llador com o el cliente tienen un papel activo en la ingeniería de requisitos
del softw are —un conjunto de actividades que son denom inadas análisis— . El cliente intenta
rep lan tear un sistem a confuso, a nivel de descripción' de datos, fu n cio n es y com portam iento,
en d etalles concretos. El desarrollador actúa com o un interrogador, co m o consultor, com o p er—
sona que resuelve p roblem as y com o negociador.
VISTAZO RÁPIDO
. ¿Qué es? El p ap el global del softw are e n co m p lejas, u n « a n a lista d e siste m a s» se incorpora a l m odelo d e l softw are y
un gran sistem a e s identificado d u ra n — form ado e n los a sp e c to s d e l negocio e s v a lid a d a ta n to por el ingeniero del
te la in g en ie ría del siste m a (C apítulo d el d om inio d e la a p licació n — p u e d e softw are com opor los clientes/usuarios.
10). De cu alq u ier m an e ra, e s necesario re aliz a r e s t a ta re a . ¿C uál e s e l p rod u cto o b ten id o ? U na
considerar u n a visión lo m ás p rofunda ¿Por q u é e s im p ortan te? Si no a n a li— re p re se n ta c ió n e fe c tiv a d e l so ftw a re
;s, posible del p a p e l d el softw are — para z a s , e s m uy p ro b a b le q u e c o n stru y a s d e b e se r p ro d u c id a com o u n a c o n se —
, com prender los req u isito s específicos u n a so lu c ió n so ftw a re m uy e le g a n te c u en cia del a n á lis is d e requisitos. Tan—
' que d e b e n se r c o n s id e ra d o s e n la q u e re su e lv a in c o rre c ta m e n te e l p ro — to los re q u is ito s d e l s is te m a com o los
)' construcción d e u n so ftw a re d e a lt a blerna. El re su lta d o e stie m p o y d in ero re q u is ito s d e l so ftw a re p u e d e n se r
; calidad — .E ste e s el tra b a jo d el a n á li— perd id o , fru strac ió n p e rso n al y c lie n — re p re se n ta d o s u tilizan d o u n prototipo,
!i sis de requisitos del so ftw are.P ara re a — te s descontentos. u n a e s p e c ific a c ió n o u n m o d elo sim —
i) lizar el tra b a jo a d e c u a d a m e n te , se ¿C uáles son los p asos? Los requisitos bólico.
deben seguir un conjunto d e co n c ep to s ¿Cómo p u e d o esta r se g u r o d e q u e
d e d a to s, fu n cio n es y c om portam iento
y principios fu n d a m e n ta les. son id en tificad o s por la o b ten ció n d e lo h e h e c h o c o r r e c ta m e n te ? El
) ¿Quién lo h a ce? G e n era lm e n te,el inge- in fo rm a ció n f a c ilita d a por el c lien te. re s u lta d o o b te n id o d e l a n á l i s i s d e
• niero d el softw are e s q u ién re a liz a el Los req u isito s son refin ad o s y a n a liz a — re q u is ito s d el softw are d e b e se r revi—
- a n á lisis d e re q u isito s. E n c u a lq u ie r dos p a ra verificar su c la rid a d ,c o m p le - sa d o p a ra co n se g u ir: c la r id a d , com -
- c aso , p a r a a p lic a c io n e s d e n e g o cio titu d y co nsistencia. L a especificación pletitud y consistencia.
fc '
El an álisis y la esp ec ificació n de los req u isito s puede p are c e r u n a ta re a relativam ente sen—
cilla, p ero las ap arien cias engañan. El co n ten id o de co m u n ic ac ió n e s m uy denso. A bundan
las o casio n es p ara las m alas in terp re tacio n es o falta de in form ación. E s m u y p ro b a b le que
hay a am b igüedad. E l d ilem a al que se en fren ta el in g en iero del softw are puede en tenderse
m uy b ien re p itie n d o la fam o sa frase de u n clien te anónim o: «S é que cree que e n ten d ió lo que
www.FreeLibros.org
pien sa que d ije, pero n o estoy seguro de que se d é c u en ta de que lo que escu ch ó n o es lo que
y o quise decir.»
181
I N G E N IE RÍ A DEL S OFT W ARE . UN EN FOQ UE P R Á C T I C O
El análisis de los requisitos es una tarea de ingeniería información se le proporcionará al sistema. Por ejem
del software que cubre el hueco entre la definición del plo, el cliente desea un informe diario que indique qué
software a nivel sistema y el diseño del software (Fig. piezas se han tom ado del inventario y cuántas piezas
11.1). El análisis de requisitos permite al ingeniero de similares quedan. El cliente indica que los encargados
sistemas especificar las característicasoperacionalesdel del inventario registrarán el núm ero de identificación de
software (función, datos y rendim ientos),indica la inter cada pieza cuando salga del inventario.
faz del software con otros elementos del sistema y esta
blece las restricciones que debe cum plir el software.
www.FreeLibros.org
'D avis [DAV93] arg u m en ta que los térm inos «que» y «cómo» son
dem asiado vagos Puede leer su libro si desea encontrar un intere
san te debate sobre el tem a '
182
CAPÍTULO 11 C O N C E P T O S Y P R IN C IP IO S DEL A N Á LISIS
Durante la actividad de evaluación y síntesis de la En el Capítulo 2, indicamos que puede no ser posi
solución, el analista crea m odelos del sistem a en un ble una especificación detallada en esta etapa. El clien
esfuerzo de entender mejor el flujo de datos y de control, te puede no estar seguro de lo que quiere. El
el tratamiento funcional y el comportamiento operativo desarrollador puede no estar seguro de que un enfoque
y el contenido de la información. El m odelo sirve como específico consiga apropiadamente el funcionam iento
fundamentopara el diseño del software y como base para y rendim iento adecuados. Por estas y otras m uchas razo
la creación de una especificación del software. nes, se puede llevar a cabo un enfoque alternativo del
análisis de requisitos, denominado creación de p ro to ti
¿Cuál será mi primer p o s oprototipado. El prototipado se com enta m ás tar
Q fto á
El últim o conjunto de preguntas se concentra en la
«■ U figce uno pregunto es un tonto por cinco
eficacia de la reunión. Gauge y W einberg [GAU89] las
•■- quién no lo hoce es tonto poro siempre
denom inan «meta-preguntas» y proponen la siguiente
jfof*|tÍ»dÉN
lista (abreviada):
Sin embargo, hay que em pezar la com unicación. • ¿Es usted la persona adecuada para responder a estas
Gauss y W einberg [GAU89] sugieren que el analista preguntas? ¿Sus respuestas son «oficiales»?
empiece preguntando cuestiones de contexto libre. Es • ¿Estoy preguntando demasiado?
flécir, un conjunto de preguntas que llevarán a un enten ■ ¿Hay alguien m ás que pueda proporcionar inform a
dimiento básico del problema, qué solución busca, la
ción adicional?
fiaturaleza de la solución que se desea y la efectividad
■ ¿Hay algo m ás que debería preguntarle?
del primer encuentro. El prim er conjunto de cuestiones
dé contexto libre se enfoca sobre el cliente, los objeti
vos generales y los beneficios esperados. Por ejemplo,
él analista podría preguntar:
Si un sistema o producto va o servir poro muchos usuarios,
¿Quién está detrás de la solicitud de este trabajo? los requisitos deberán ser obtenidos de un grupo
* ¿Quién utilizará la solución? representativo de usuarios. Sisólo unopeisona define
• ¿Cuál será el beneficio económico del éxito de una iodos ios requisitos, el riesgo de aceptación seré olio.
www.FreeLibros.org
solución? Estas preguntas (y otras) ayudarán a «rom per el hie
♦ ¿Hay alguna otra alternativa para la solución que lo» e iniciar la com unicación tan esencial para el éxito
necesita? del análisis. Pero el form ato de reunión tipo «pregunta
183
INGE NIE RÍA DEL S OFT W ARE . UN E N F O Q U E P R Á C T I C O
y respuesta» no es un enfoque que haya tenido mucho lo suficientemente informal como para animar el libre
éxito. De hecho, esta sesión de preguntas y respuestas flujo de ideas.
debería emplearse solamente en el prim er encuentro y • un «coordinador» (que puede ser un cliente, un desa-
sustituirsedespués por una m odalidad que combine ele rrollador o un tercero) que controle la reunión.
mentos de resolución del problema, negociación y espe • se usa un «mecanismo de definición» (que puede ser
cificación. En la siguiente sección se presenta un enfoque hojas de trabajo, gráficos, carteles o pizarras).
a reuniones de este tipo.
• el objetivo es identificar el problema, proponer ele
mentos de solución, negociar diferentes enfoques y
11.2.2. T é c n ic a s p a r a f a c i l it a r l a s e s p e c if ic a c io especificar un conjunto prelim inar de requisitos de
n e s d e u n a a p lic a c ió n la solución en una atm ósfera que perm ita alcanzar el
Los clientes y los ingenieros del software a m enudo tie objetivo.
nen una mentalidad inconsciente de «nosotros y ellos». ¿Qué diferencias existen
En vez de trabajar como un equipo para identificar y refi-
nar los requisitos, cada uno define por derecho su propio
«territorio»y se comunica a través de una serie de memo
• entre una reunión TFEA
y una reunión ordinaria?
randos, papeles de posiciones formales, documentos y Para com prender m ejor el flujo de acontecimientos
sesiones de preguntas y respuestas. La historia ha demos tal y como ocurren en una reunión TFEA, presentamos
trado que este m étodo no funciona muy bien. Abundan un pequeño escenario que esboza la secuencia de acon
los malentendidos, se omite inform ación importante y tecim ientos que llevan a la reunión, los que ocurren en
nunca se establece una buena relación de trabajo. la reunión y los que la siguen.
C o g ita :
P ^ f e r f in r in Los hechos no dejan de existir por ignorarlos.
AM ous H uxley
Una aproximación a FASI es llamada ((Diseño común de
apllcaclones»(JAD). Un detallado estudio de JAD puede
encontrarse en
En las reuniones iniciales entre el desarrollador y el
www.bee.net/bluebird/jaddoc.htm cliente (Sección 11.2.1) se dan preguntas y respuestas
básicas que ayudan a establecer el ámbito del problema
Con estos problem as en mente es por lo que algunos y la percepción global de una solución. Fuera de estas
investigadores independientes han desarrolladoun enfo reuniones iniciales, el cliente y el desarrollador escri
que orientado al equipo para la reunión de requisitos ben una «solicitud de producto» de una o dos páginas.
que se aplica durante las prim eras fases del análisis y Se selecciona lugar, fecha y hora de reunión TFEA y se
especificación. Denominadas T écn ica s p a r a fa c ilita r elige un coordinador. Se invita a participar a represen
las especificaciones de la aplicación (T F E A ),este enfo tantes de ambas organizaciones; la del cliente y la de
que es partidario de la creación de un equipo conjunto desarrollo. Se distribuye la solicitud de producto a los
de clientes y desarrolladores que trabajan juntos para asistentes antes de la fecha de reunión.
identificar el problema, proponer soluciones, negociar
diferentes enfoques y especificar un conjunto prelim i
nar de requisitos de la solución [ZAH90]. Hoy en día,
las TFEA son empleadas de forma general por los sis Antes de una reunión FAST confecciona una lista de
temas de información, pero la técnica ofrece un poten objetos, servicios, restriccionesy criterios de rendimiento
cial de m ejora en aplicaciones de todo tipo.
Se han propuesto m uchos enfoques diferentes de M ientras se revisa la solicitud días antes de la reu
TFEA2. Cada uno utiliza un escenario ligeramente dife nión, se pide a todos los asistentes que hagan una lista
rente, pero todos aplican alguna variación en las siguien de o b je to s que form en parte del entorno del sistema,
tes directrices básicas: otros objetos que debe producir el sistem a y objetos que
• la reunión se celebra en un lugar neutral y acuden usa el sistema para desarrollar sus funciones. Además,
tanto los clientes como los desarrolladores. se pide a todos los asistentes que hagan otra lista de ser
• se establecen norm as de preparación y de partici vicios (procesos o funciones) que m anipulan o interac-
pación. túan con los objetos. Finalmente, se desarrollan también
• se sugiere una agenda lo suficientem ente form al listas de re stric c io n e s (por ejem plo, costes, tamaño,
como para cubrir todos los puntos importantes, pero peso) y criterios de rendim iento (por ejem plo, veloci-
www.FreeLibros.org
2 Dos de los enfoques m ás populares de TFEA son Desarrollo Con
junto de Aplicaciones (JAD), desarrollado por IBM, y The METHOD,
desarrollado por Perform ance Resources, Inc., Falls Church, VA.
184
CAPÍTULO 11 C O N C E P T O S Y P R IN C IP IO S DEL A N Á LISIS
dad, precisión). Se inform a a los asistentes que no se producto, pues todo el m undo debería estar de acuer
espera que las listas sean exhaustivas, pero que sí que do en que el desarrollo (o adquisición) del producto
reflejen su punto de vista del sistema. estájustificada. U na vez que se ha conseguido el acuer
Por ejem plo3, imagínese que a un equipo de trabajo do, cada participante presenta sus listas para su estu
TFEA de una com pañía de productos para el consum i dio. Las listas pueden exponerse en las paredes de la
dor se le ha dado la siguiente descripción del producto: habitación usando largas hojas de papel, pinchadas o
N uestras investigaciones indican que el m ercado de siste pegadas, o escritas en una pizarra. Idealm ente debería
mas de seguridad para el hogar está creciendo a un ritm o del poderse m anejar separadam ente cada entrada de las
40 por 100 anual. N os gustaría entrar en este m ercado c o n s listas para poder com binarlas, borrarlas o añadir otras.
truyendo un sistem a de seguridad para el hogar basado en un En esta fase, está estrictam ente prohibido el debate o
m icroprocesador que proteja y/o reconozca varias situaciones
las críticas.
indeseables tales com o irrupciones ilegales, fuego, inundacio
nes y otras. E l producto, provisionalm ente W&maáoHogarSe-
guro, utilizará lo s sensores adecu ad o s para d etectar cada
situación, puede p rogram arsepor el propietario del h ogar y lla
Evita el impulso de cortar la Idea de un cliente
mará autom áticam ente a una agencia d e vigilancia cuando se
detecte alguna de estas situaciones. por ((demasladocostosa» o «poco próctica».
lo ideo es negociar alga que sea aceptable paro todos.
En realidad, se proporcionatía considerablemente más Es decir, debes tener uno mente abierto.
información en esta fase. Pero incluso con inform ación
adicional, habría ambigüedades presentes, existirán om i U na vez que se han presentado las listas individua
siones probablemente y podrían ocurrir errores. Por aho les sobre un tem a, el grupo crea una lista combinada.
ra, la «descripción de producto» anterior bastará. La lista com binada elim ina las entradas redundantes y
El equipo TFEA está compuesto por representantes de añade las ideas nuevas que se les ocurran durante la pre
marketing, ingeniería del software y del hardware, y de la sentación, pero no se elim ina nada más. C uando se han
fabricación también participará un coordinador externo. creado las listas com binadas de todos los tem as, sigue
el estudio - m o d e r a d o p o r el c o o rd in a d o r-. La lista
com binada es ordenada, ampliada o redactada de nue
vo para reflejar apropiadamente el producto o sistema
CLAVE que se va a desarrollar. El objetivo es desarrollar una
los objetos deben ser manipulados por servicios y deben lista de consenso por cada tem a (objetos, servicios, res
«contemplar» las restrlcclonesy rendimientos definidos tricciones y rendimiento). Después estas listas se ponen
por el equipo FAST. aparte para utilizarlas posteriormente.
Todos los componentes del equipo TFEA desarrollan U na vez que se han com pletado las listas de con
las listas descritas anteriormente. Los objetos descritos senso, el equipo se divide en subequipos; cada uno tra
pata HogarSeguro podrían incluir detectores de humo, baja para desarrollar una m ini-especificación de una o
sensores de ventanas y puertas, detectores de m ovim ien m ás entradas de cada lista4. La m ini-especificación es
tos, una alarma, un acontecim iento (se ha activado un una elaboración de la palabra o frase contenida en una
sensor), un panel de control, una pantalla, núm eros lista. P or ejem plo, la m ini-especificación del objeto
de teléfono, una llam ada de teléfono, etc. La lista de panel de control d q HogarSeguro podría ser: montado
servicios podría incluir la instalación de la alarma, vigi en la pared; tam año aproximado 23 13 centímetros;
lancia de los sensores, m arcado de teléfono, program a contiene el teclado estándar de 12 teclas y teclas espe
ción del panel de control y lectura de la pantalla (fíjese ciales; contiene una pantalla LC D de la form a m ostra
que los servicios actúan sobre los objetos). D e igual da en el bosquejo (no presentado aquí); toda la
manera, todos los asistentesTFEA desarrollarán una lis interacción del cliente se hace a través de las teclas usa
ta de restricciones (por ejemplo, el sistem a debe tener das para activar o desactivar el sistema; software para
un coste de fabricación de m enos de £80, debe tener proporcionar una directriz de em pleo, recordatorios,
una «interfaz amigable» con el usuario y debe conectar etc., conectado a todos los sensores.
directamente con una línea telefónica estándar) y de cri Cada subequipo presenta entonces sus mini-especi-
terios de rendim iento (por ejemplo, un acontecimiento ficaciones a todos los asistentes TFEA para estudiarlas.
detectado por un sensor debe reconocerse en un segun Se realizan nuevos añadidos, eliminaciones y se sigue
do; se debería im plem entar un esquem a de prioridad de elaborando. En algunos casos, el desarrollo de algunas
acontecimientos). m ini-especificaciones descubrirá nuevos objetos, ser
Cuando em pieza la reunión TFEA, el prim er tem a vicios, restricciones o requisitos de rendim iento que se
de estudio es la necesidad y ju stific ació n del nuevo añadirán a las listas originales. Durante todos los estu-
www.FreeLibros.org
3Este ejemplo (conextensionesy variacionesjse em pleará para ilus 4 Una alternativa puede ser la creación de casos de uso. Ver Sección
trar métodos im portantes de ingeniería del softw are en m uchos de 1 1.2.4para m ás detalles.
los capítulos siguientes. Com o ejercicio, sería útil que realizara su
propia reunión TFEA y desarrollara un conjunto de listas.
185
IN GE NI E RÍ A DEL S OFT W ARE . UN EN F O Q U E P R A C T I C O
www.FreeLibros.org
características estándar. El producto entregado contiene cier—
\ a VE
tas capacidades de diseño de página que resultan m uy válidas Un caso de uso es un escenario que describe cómo
y que no eran esperadas. el software va a ser usado en uno determinada situación.
186
CAPÍTULO 11 C O N C E P T O S Y P R IN C IP IO S DEL A N Á L IS IS
sitivos) juegan como impulsores del sistema. Definido de un actor. Un actor es un popel que las personas
(usuarios) o dispositivos juegan cuando ¡nteracclonon
más formalmente, un actor es algo que com unica con
con el software.
el sistema o producto y que es externo al sistema en sí
mismo. En general, un caso de uso es, simplemente, un tex
Es importante indicar que un actor y un usuario no to escrito que describe el papel de un actor que interac
son la misma cosa. Un usuario norm al puede ju g ar un túa con el acontecer del sistema.
número de papeles diferentes cuando utiliza un sistema, Volviendo a los requisitos básicos de HogarSeguro
per lo tanto un actor representa una clase de entidades (Sección 11.2.2), podem os identificar tres actores: el
externas (a veces, pero no siempre personas) que lleva propietario (el usuario), sensores (dispositivos vincula
a cabo un papel. Como ejemplo, considerar un operador dos al sistema), y el subsistema de m onitorizacióny res
de una máquina (un usuario) que interactúa con el orde puesta (la estación central que monitoriza HogarSeguro).
nador central para un elem ento de fabricación que con Para los propósitos de este ejemplo, consideremos úni
tiene un núm ero de robots y m áquinas bajo control camente al actor propietario. El propietario interactúa
numérico. Después de una revisión cuidadosa de los con el producto en un núm ero de diferentes caminos:
requisitos, el software del com putador central requiere . introduce una contraseña para p erm itir cualquier
cuatro modelos diferentes (papeles) de interacción: modo interacción
programación, m odo prueba, m odo m onitorización y
• pregunta acerca del estado de una zona de seguridad
modo investigación. Además, se pueden definir cuatro
actores: programador, probador, supervisor e investiga- . pregunta acerca del estado de un sensor
dcr. En algunos casos, el operador de la máquina puede • presiona el botón de alarma en caso de emergencia
realizar todos los papeles. En otras ocasiones, diferen . activa/desactiva el sistema de seguridad
tes personas pueden jugar el papel de cada actor.
to é m m ittiW e k
Una discusión detallada de los casos de usos, Incluyendo
ejemplos, referencias y plontlllos, se presenta en
membersAoUom/acodéum/|Kfere/OnUseCasesJitiit
= JM
Casos de uso Un caso de uso para el sistema de activac/««persigue:
El propietario observa un prototipo del panel de con
Porque la obtención de requisitos es una actividad
trol de HogarSeguro (Fig. 11.2) para determ inar si
de evolución, no todos los actores se identifican duran
te la primera iteración. Es posible identificar actores ini el sistema está preparado para la entrada. Si el sis
tema no está preparado, el propietario debe física
ciales [JAC93] durante la prim era iteración y actores
secundarios cuando m ás se aprende del sistema. Los mente cerrar ventanas/puertas para que se encienda
el indicador de preparado. (El indicador no prepa
actores iniciales interactúan para conseguir funciones
del sistema y derivar el beneficio deseado del sistema. rado implica que el sensor está abierto, por ejemplo,
que la puerta o ventana está abierta.)
Ellos trabaian directa y frecuentemente con el software.
Los actores secundarios existen para dar soporte al sis
tema que los actores iniciales han dado form a con su HOGARSEGURO orí away stay
trabajo. Q ) © ©
Una vez que se han identificado los actores, se pue max test bvpass
den desarrollar los casos de uso. El caso de uso descri (T ) (D [_6_
be la m anera en que los actores interactúan con el instarrt code chime
sistema. Jacobson [JAC93] sugiere un núm ero de pre
0 0
guntas que deberán responderse por el caso de uso: ready
armed power
• ¿Cuáles son las principales tareas o funciones que
serán realizadas por el actor?
Indicadores O o 0 ®
'— -panic
0
i
en inglés
• ¿Cuál es el sistem a de inform ación que el actor
adquiere, produce o cambia?
FIGURA 11.2. Panel de control de H o g a r S eguro.
www.FreeLibros.org
• ¿Qué actor informará al sistema de los cambios en
el entorno externo? 2. El propietario utiliza el teclado para introducir una
• ¿Qué inform aciónnecesita el actor sobre el sistema? contraseña de cuatro dígitos. La contraseña es com-
187
IN GE NI E RÍ A DEL S O F T W A R E . UN EN F O Q U E P R Á C T I C O
parada con la contraseñaválida alm acenada en el sis indican que ocurrirá 30 segundos después de pulsar la
tema. Si la contraseña es errónea, el panel de control tecla stay o away. Esta inform ación puede añadirse al
em itirá un sonido y se restaurará para incorporar una caso de uso.
nueva entrada. Los casos de uso describen escenarios que serán per
3. El propietario selecciona y pulsa stay o aw ay (ver cibidos de distinta form a por distintos actores. Wyder
Fig. 11.2) para activar el sistema. Stay activa sola [WYD96] indica que la calidad de la función desplegada
mente sensores perim etrales (cuando detectan m ovi puede ser usada para desarrollar un amplio valor de prio
miento interno se desactivan). Aw ay activa todos los ridades para cada caso de uso. Para acabar, los casos de
sensores. uso son evaluados desde el punto de vista de todos los
actores definidos para el sistema. Se asigna un valor de
4. C uando ocurre una activación, una luz de alarm a prioridad a cada caso de uso (por ejemplo, un valor de 1
puede ser observada por el propietario. a 10)para cada acto?. Se calcula una prioridad, indican
C ada caso de uso facilita un escenario sin am bi do la importancia percibida de cada caso de uso.
güedad en la interacción entre el actor y el software. Cuando un m odelo de proceso iterativo es usado por
Esto puede usarse para especificar requisitos de tiem la ingeniería del software orientado a objetos, las prio
po u otras restricciones del escenario. Por ejem plo, en ridades pueden influir en qué funcionalidad del sistema
el caso de uso referido anteriorm ente, los requisitos será entregada primero.
Durante las dos pasadas décadas, se han desarrollado reducir la complejidad. Son necesarias las visiones esen
un gran núm ero de métodos de modelado. Los inves ciales y de im plementación del software para acomo
tigadores han identificado los problem as del análisis y dar las restricciones lógicas impuestas por los requisitos
sus causas y han desarrollado varias notaciones de del procesam iento y las restricciones físicas impuestas
m odelado y sus correspondientes conjuntos de heurís por otros elementos del sistema.
ticas para solucionarlos. Cada m étodo de análisis tie Además de los principios operativos de análisis men
ne su punto de vista. Sin em bargo, todos los métodos cionados anteriorm ente, Davis [DAV95a] sugiere un
de análisis se relacionan por un conjunto de principios conjunto6 de principios directrices para la «ingeniería
operativos: de requisitos»:
1. Debe representarse y entenderse el dominio de infor . Entender el problem a antes de em pezar a crear el
m ación de un problema. modelo de análisis. Hay tendencia a precipitarse en
2. Deben definirse las funciones que debe realizar el busca de una solución, incluso antes de entender el
software. problema. ¡Esto lleva a m enudo a un elegante soft
ware para el problem a equivocado!
3. Debe representarse el comportamiento del software
(como consecuencia de acontecimientos externos). ■ D esarrollar p ro to tip o s que p erm ita n al usuario
entender cómo será la interacción hombre-máquina.
4 . Deben dividirse los modelos que representan infor
Como el concepto de calidad del software se basa a
m ación, función y com portam iento de m anera que
m enudo en la opinión sobre la «amigabilidad» de la
se descubran los detalles por capas (ojerárquica-
interfaz, el desarrollo de prototipos (y la iteración
mente).
que se produce) es altamente recomendable.
5. El proceso de análisis debería ir desde la inform a
• Registrar el origen y la razón de cada requisito. Este
ción esencial hasta el detalle de la implementación.
e s el p rim er paso para establecer un seguimiento
¿Cuáles son los principios hasta el cliente.
subyacentes que guían el . Usarmúltiplesplanteamientos de requisitos. La cons
trabajo de análisis? trucción de modelos de datos, funcionales y de com
Aplicando estos principios, el analista se aproxima portam iento, le proporcionan al ingeniero del
al problem a sistemáticamente. Se exam ina el dominio software tres puntos de vista diferentes. Esto reduce
de inform ación de m anera que pueda entenderse com la probabilidad de que se olvide algo y aumenta la
pletam ente la función. Se emplean modelos para poder probabilidad de reconocer la falta de consistencia.
com unicar de forma com pacta las características de la . D ar prio rid a d a los requisitos. Las fechas ajustadas
función y su comportamiento. Se aplica la partición para de entrega pueden im pedir la im plem entación de
www.FreeLibros.org
5 Lo ideal e s que la evaluación se a realizada por fu n c io n e s indi 6 Aquí se m enciona sólo un pequeño subconjunto de los principios
viduales de,la organización o negocio re p re se n tad a s por un actor. de ingeniería de requisitos de Davis. Para obtener m ás información,
véase [DAV95a],
188
CAPÍTULO 11 C O N C E P T O S Y P R IN C IP IO S DEL A N Á LISIS
todos los re q u isito s d e l so ftw a re . Si se a p lic a un u n m odelo de datos. E ste dom inio contiene tres v isio
modelo de proceso increm ental (Capítulo 2), se deben nes diferentes de los datos y del control a m ed id a que
identificar los requisitos que se v an a entregar en la se p rocesa cada uno en u n p rogram a de com putadora:
primera entrega. (1 ) contenido de la inform ación y relaciones, (2) flujo
■ Trabajar-para e lim in a r la a m b ig ü e d a d . C om o la de la in fo rm a ció n y (3) e stru ctu ra de la inform ación.
m ayoría de los requisitos están descritos en u n len P ara en te n d er co m p letam en te el do m in io de la in fo r
guaje n atural, abunda la o portunidad de am bigüeda m ación, debería estudiarse cad a u n a de estas visiones.
des. El em p leo de re v isio n e s té c n ic a s form ales es
una m anera de descu b rir y elim in ar la am bigüedad.
www.FreeLibros.org
dentro del dom inio de la inform ación de un problem a. se relaciona la inform ación de u n a estructura con la de
El prim er principio operativo de análisis requiere el otra? E stas y o tras p reg u n ta s se re sp o n d en m ed ian te
examen del dom inio de la info rm ació n y la creación de u n a v a lo ra c ió n d e la e s tru c tu ra d e la in fo rm a c ió n .
189
I N GE NI E RÍ A DEL S OFT W ARE . UN E N F O Q U E P R Á C T I C O
D e b e ría r e s a lta s e que la e stru c tu ra de dato s, un c o n n a m anera. U n m odelo de com p o rtam ien to crea una repre
cep to afín que se e stu d ia rá m ás ad elan te en este libro, sentación d e los estad o s del softw are y los sucesos que cau
san que cam bie de estado.
se re fie re al d iseñ o e im plem entación de la estru ctu ra
de la inform ación. Los modelos creados durante el análisis de requisi
tos desempeñan unos papeles muy importantes:
11.3.2. M o d e la d o • El m odelo ayuda al analista a entender la informa
ción, la función y el com portam iento del sistema,
Los m odelos se crean p ara entender m ejor la entidad que
haciendo por tanto más fácil y sistem ática la tarea de
se va a construir. C uando la entidad es algo físico (un ed i
análisis de requisitos.
ficio , un avión, u n a m áq u in a), p odem os c o n stru ir un
m odelo idéntico en form a, pero m ás pequeño. Sin em bar • El m odelo se convierte en el punto de m ira para la
go, cuando la entidad que se v a a construir es softw are, revisión y por tanto la clave para determ inar si se ha
nuestro m odelo debe to m ar una fo rm a diferente. D ebe completado, su consistencia y la precisión de la espe
ser capaz de m o d elar la inform ación que tran sfo rm a el cificación.
softw are, las funciones (y subfunciones) que perm iten • El m odelo se convierte en el fundam ento para el
que ocurran las transform aciones y el com portam iento diseño, proporcionando al diseñador una represen
del sistem a cuando ocurren estas transform aciones. tación esencial del software que pueda trasladarse al
El segundo y tercer principios operativos del análi contexto de la implementación.
sis requieren la construcción de m odelos de función y
% ¿ Cómo usar los modelos
com portam iento.
• creados durante el trabajo
* 1 ¿ Qué tipos de modelos de análisis de requisitos?
* debemos crear durante
Los métodos de análisis estudiados en los Capítulos
el análisis de requisitos?
12y 21 son de hecho métodos de modelado. Aunque el
M o d e lo s f u n c io n a le s . El softw are tran sfo rm a la in fo r m étodo de m odelado em pleado es a m enudo cuestión
m ación y, para hacerlo, debe realizar al m enos tres fu n c io de preferencias personales (o de la organización),la acti
nes genéricas: entrada, procevam iento y salida. C uando se
vidad de m odelado es fundamental para un buen traba
crean m odelos fun cio n ales de una ap licació n , el ingeniero
del softw are se co n cen tra en funciones específicas del pro
jo de análisis.
blem a. El m odelo funcional em p ieza con un sencillo m ode
lo a nivel de con tex to (p o r e jem plo, el nom bre del softw are 11.3.3. P artición
que se va a construir). D espués de una serie de iteraciones,
se c o n sig u en m ás y m ás detalles fu n cio n ales, hasta q u e se
A m enudo los problemas son demasiado grandes o com
consigue representar una m inuciosa definición de toda la fun plejos para entenderlos globalmente. Por este motivo,
cionalidad del sistema. tendem os a hacer una partición (dividir) de estos pro
blemas en partes que puedan entenderse fácilmente y
establecer las interacciones entre las partes de manera
que se pueda conseguir la función global. El cuarto prin
cipio operativo del análisis sugiere que se pueden par
tir los dom inios de la inform ación, funcional y de
comportamiento.
CLAVE
Lo descomposición es un proceso que resulta
de la elaboraciónde datos, funciones o comportamientos.
Puede ser realizada horizontal o verticalmente,
www.FreeLibros.org
de esp e ra h asta que (1) un reloj interno le indique que ha
pasado cierto intervalo de tiem po, (2) un suceso externo (por deremos el sistema de seguridad H ogarSeguro descrito
ejem plo, un m ovim iento del ratón) provoca una interrupción, en la Sección 11.2.2. La asignación de software para
o (3) un sistem a externo señala al softw are que actúe de algu- H ogarSeguro (obtenido com o consecuencia de las acti
190
CAPITULO 11 C O N C E P T O S Y P R IN C IP IO S DEL A N Á LISIS
vidades de in g e n ie ría del sistem a y de la s reu n io n es en el C apitulo 12) proporcionará una visión m ás profun
TFEA) puede establecerse en los párrafos siguientes: d a de los requisitos del sistema. A m edida que se parte el
El softw are de H o g a rS eg u ro perm ite al propietario con-
sistem a, se obtienen las interfaces entre las funciones. L os
figurarel sistem a de seguridad cuando se instala, vigila todos datos y elem entos de control que se m ueven a través de
los sensores co n ectad o s al sistem a de seguridad e interactúa u n a interfaz deberían restringirse a las entradas necesa
con el propietario a través de un tec lad o y teclas fu n c io n a rias para realizar la función en cuestión y a las salidas
les del panel de control de H ogarSeguro m ostrado en la F ig u requeridas por otras funciones o elem entos del sistema.
ra 11.2.
www.FreeLibros.org
7 Mucha gente utiliza térm inos visión «lógica» y «física» para referirse
al m ism o concepto.
191
I N GE NI E RÍ A DEL S O F TW A RE . UN EN F O Q U E P R A C T I C O
se acom ode a ciertos detalles de im plem entación. Un propuesta de todos los elementos del sistema. El mode
dispositivo de entrada de inform ación a H ogarSegu lo esencial (de función o datos) es genérico en el senti
ro podría ser un sensor de perím etro (no un perro guar do de que la realización de la función no se indica
dián, un guardia de seguridad o una trampa). El sensor explícitamente.
detecta una entrada no autorizada al detectar una rup
S o tfw a re de HogarSeguro
tu ra en un circu ito electrónico. Las ca racterísticas
generales del sensor deberían tenerse en cuenta com o
parte de la especificación de los requisitos del soft
ware. El an alista debe reco n o cer las re stric cio n es Configurar Monitorizar Interactuar
im puestas por elem entos predefinidos del sistem a (el sistema sensores con el usuario
sensor) y considerar la visión de im plem entación de
la función y de la inform ación cuando tal visión es
apropiada.
Ya hem os comentado anteriormente que el análisis
de los requisitos del software debería concentrarse en
qué es lo que debe hacer el software, en vez de cóm o
se im plem entará el procesam iento. Sin em bargo, la
visión de im plem entaciónno debería interpretarse nece Leer Identificar Activar/ Activar Marcar
el estado el tipo desactivar la alarma el número
sariam ente com o una representación del cóm o. M ás del sensor de suceso el sensor sonora de teléfono
bien, un m odelo de im plementación representa el m odo
actual de operación, es decir, la asignación existente o FIGURA 11.5. Partición vertical de la función de HogarSeguro.
•
lo del software a fabricar denom inado prototipo para
que lo valore el cliente y el desarrollador. Finalmente, determinar si un prototipo
hay circunstancias que requieren la construcción de un es o no una alternativa viable?
prototipo al comienzo del análisis, ya que el m odelo es Antes de poder elegir un enfoque abierto o cerrado,
el único m edio a través del cual se pueden obtener efi es necesario determ inar si se puede crear un prototipo
cazmente los requisitos. El m odelo evoluciona después del sistema a construir. Se pueden definir varios facto
hacia la producción del software. res candidatos a la creación de prototipos [BOA84]: área
de aplicación, complejidad, características del clientey
C del proyecto'.
En general, cualquier aplicación que cree panta
los desorrolloaores pueden construir y probar
t e «psefaraones, pero los usuarios son los que
llas visuales dinám icas, interactúe intensam ente con
en reeüdod aceptan o rechazan ¡a operativa actual. el ser humano, o dem ande algoritmos o procesamiento
>l*RMRlÍMr de com binaciones que deban crearse de m anera pro
gresiva, es un buen candidato para la creación de un
prototipo. Sin em b arg o , estas áreas de aplicación
11.4.1. S e le c c ió n d e l e n fo q u e d e c r e a c ió n d e deben po n d erarse con la co m p lejid ad de la aplica
p ro to tip o s ción. Si una aplicación candidata (una con las carac
El paradigm a de creación de prototipos puede ser cerra terísticas reseñadas an terio rm en te) va a requerir el
do o abierto. El enfoque cerrado se denom ina a m enu d esarro llo de decenas de m iles de líneas de código
www.FreeLibros.org
8 Se puede encontrar otro útil estudio sobre los factores candidatos
de «cuando hacer un prototipo» en (DAV95bl.
192
CAPÍTULO 11 C O N C E P T O S Y P R IN C IP IO S DEL A N Á L IS IS
antes de p o d er re a liz a r c u a lq u ie r fu n c ió n d e m o s tra w are existentes. L a com binación de pro to tip o s con la re u ti
lización de com ponentes de pro g ram a s ó lo fu n c io n a rá si se
ble, es m uy probable q u e se a d e m a s ia d o c o m p le ja
d esarro lla un sistem a bibliotecario de m anera que lo s c o m
para crear un p ro to tip o . Si se p u ed e h a c e r una p a r
p o nentes ex isten tes estén c atalo g ad o s y p u e d a n recogerse.
tición a su c o m p le jid a d , p u ed e se r p o sib le c re a r p r o D e b ería resaltarse que se puede usar un p rodiicto so ftw a re
totipos de p o rc io n e s del so ftw are. e x is te n te c o m o p rototipo de un « n u e v o y m e jo ra d o » p ro
Como el clien te debe in te ra c tu a r co n el p ro to tip o ducto co m petitivo. E n cierta m anera, é sta es una fo rm a de
en fases p o ste rio re s, es e se n c ia l que (1) se d e stin e n reutilización en la creación de prototipos softw are.
recursos del clien te a la ev alu ació n y re fin am ie n to del E sp e cific a cio n es fo rm a le s y e n to rn o s p a r a p ro to tip o s.
prototipo, y (2) el clien te sea capaz de to m a r d e c isio D u ran te las pasadas dos décadas, se han desarrollado varios
nes inm ediatas so b re los re q u is ito s . F in a lm e n te , la len g u ajes fo rm ales de especificación y herram ientas c o m o
naturaleza del p royecto de d e sa rro llo te n d rá una gran sustitutos d e las técnicas de especificación con lenguaje natu
influencia en la capacidad de crear un prototipo. ¿Desea ral. H oy en d ía, lo s d e sarro llad o res de estos lenguajes fo r
m ale s e s tá n d e sa rro lla n d o e n to rn o s in teractiv o s que ( 1 )
y es capaz la g e stió n del p ro y e c to de tra b a ja r co n el
p erm itan a l an alista crea r interactivam ente una especifica
método del p ro to tip o ? ¿,T enem os d isp o n ib le s h e rra ción basada en len g u aje de un sistem a o softw are, (2) invo
mientas para la creación de p ro to tip o s? ¿T ienen e x p e quen herram ientas autom áticas que traducen la especificación
riencia los desarro llad o resco n los m étodos de creación b asad a en el lenguaje en código ejecutable, y (3 ) perm itan
de prototipos? A ndriole [A N D 92] su g iere un c o n ju n al cliente usar el código ejecu tab le del prototipo para refinar
to de seis p reguntas (Fig. 11.6) e in d ic a unos c o n ju n lo s requisitos form ales.
tos básicos de respuestas con su co rresp o n d ien te tipo
de prototipo sugerido. Trabajo
preliminar
Prototipo Prototipo adicional
11.4.2. M étodos y h e r r a m i e n t a s p a r a el d e s a rro llo Pregunta desechable evolutivo requerido
d e p ro to tip o s
¿Se entiende el dominio
Para que la creación del prototipo de softw are sea efec de la aplicación? sí sí No
tivo, debe desarrollarse rápidam ente p ara que el clien ¿Se puede modelar
te pueda valorar los resultados y recom endar los cam bios el problema? sí sí No
oportunos. Para p o d er crear prototipos rápidos, hay d is ¿Está el cliente
ponibles tres clases genéricas de m éto d o s y herram ien suficientemente seguro
tas (por ejem plo, [A N D 92], [TAN89]): de los requisitos
básicos del sistema? Sí/No Sí/No No
Técnicas d e C u a r ta G e n e ra c ió n . L a s técn ica s d e cu a r
¿Están establecidos
t a g en era ció n (T 4 G ) c o m p re n d e n una a m p lia g a m a de
los requisitos
lenguajes de co n su lta e inform es de b ases de d a to s, g e n e y son estables? No sí sí
radores de p rogram as y a p lic a c io n e s y de o tro s le n g u a je s
no procedim entales de m uy alto nivel. C o m o las té c n ic a s ¿Hay requisitos
T4G perm iten al ingeniero del softw are g enerar código e je
ambiguos? sí No sí
cutable ráp id am en te, son id e a le s para la c re a c ió n rápida ¿Hay contradicciones
de prototipos. en los requisitos? sí No sí
C om ponentes d e so ftw a re re u tiliz a b le s. O tro enfoque
para crear prototipos ráp id o s es en sam b lar, m á s q u e co n s F IG U R A 1 1 .6 . Selección del enfoque apropiado de creación
truir, el prototipo m ediante un conjunto de com ponentes soft de prototipo.
www.FreeLibros.org
I En algunos casos, se pueden construir rapidam ente prototipos extre
madamente complejos usando técnicas de cuarta generacion o com
ponentes software reutilizables
193
INGE NIE RÍA DEL S O F TW A RE . UN E N F O Q U E P R Á C T I C O
www.FreeLibros.org
área de aplicación. P or ejem plo. !a especificación de un siste
m a autom ático de fabricación utilizaría diferente sim bología, las in terfaces h ard w are, softw are y h u m an as para los
diag ram as y lenguaje que la esp ecificaciónde un com pilador e le m e n to s externos del siste m a y p ara las funciones
de u n lenguaje de program ación. internas del softw are.
194
C A P Í T U L O 11 C O N C E P T O S Y P R IN C IP IO S DEL A N Á L IS IS
¡ m
La revisión de la E specificación de requisitos del so ft a veces, norm alm ente, corrientem ente, m u ch o , o p rin
ware (y/o prototipo) es llevada a cabo tanto p o r el d esa c ip a lm e n te ), el re v is o r señ a la rá la se n te n c ia p a ra su
rrollador del so ftw are co m o p o r el c lie n te. C om o la clarificación.
especificación form a el fundam ento p ara el diseño y las U n a v ez que se h a co m p le ta d o la re v isió n , se f ir
subsiguientes actividades de la ingeniería del softw are, m a la esp ecificació n de re q u isito s del so ftw a re p o r el
se debería poner extrem o cuidado al realizar la revisión. clie n te y el d esarro llad o r. L a e sp e c ific a c ió n se c o n
v iene en u n « c o n tra to » p a ra el d e sa rro llo del so ftw a
re. L a s p e tic io n e s de c a m b io s e n lo s re q u is ito s u n a
v e z que se h a fin a liz a d o la e sp e c ific a c ió n n o se e li
m in arán , p ero el c lie n te d eb e sa b e r que c a d a c a m b io
a p o sterio ri sig n ific a u n a a m p lia c ió n d e l ám b ito del
so ftw a re , y p o r ta n to p u e d e n a u m e n ta r lo s c o s te s y
R equisitosS oftw are p ro lo n g a r los p la zo s de la p lan ifica ció n tem p o ral del
Revisión de la Especificación proyecto.
Incluso con los m ejores procedim ientos de revisión,
Inicialm ente la re v isió n se lle v a a c a b o a n iv el siem pre persisten algunos problem as com unes de e sp e
macroscópico. A este niv el, los re v iso re s intentan ase cificación. La especificación es difícil de «probar» de
gurarse de que la e s p e c ific a c ió n se a c o m p le ta , c o n m an era significativa, p o r lo que pueden p asar inadver
sistente y c o rre c ta c u a n d o la in fo rm a c ió n g e n e ra l, tid as c ie rta s in c o n siste n cia s y om isiones. D u ran te la
funcional y de los d o m in io s del c o m p o rtam ien to son revisión, se pueden reco m en d ar cam bios a la especifi
considerados. A sim ism o, u n a exploración com pleta de cació n . P u e d e se r e x tre m a d a m en te d ifíc il v a lo ra r el
cada uno de esto s d o m in io s, la re v isió n p ro fu n d iz a en im pacto global de un cam bio; es decir, ¿cóm o afecta el
el detalle, exam inando n o solo las descripciones super cam bio en una fu nción a los re q u isito s de las dem ás?
ficiales, sino la v ía en la que los re q u isito s son e x p re Los m odernos entornos de ingeniería del softw are (C apí
sados. Por ejem plo, cuando u n a especificación contiene tu lo 3 1) incorporan herram ientas C A S E desarrolladas
un «térm inovago» (por ejem p lo , algo, algunas veces, para ayudar a reso lv er estos problem as.
www.FreeLibros.org 195
IN GE NI ER ÍA DEL S O F T W A R E . UN EN F O Q U E P R Á C T I C O
i
SU
_________________________________________ M
El análisis de requisitos es la p rim era fase técn ica del En m uchos casos, no es posible especificar completa
p roceso de ingeniería del softw are. E n este pun to se refi m ente un problem a en una etapa tan tem prana. La crea
n a la d eclaración general del ám bito del softw are en una ción de p ro to tip o s ofrece un en fo q u e altern ativ o que
e sp e c ific ac ió n co n c re ta que se co n v ierte en el fu n d a produce un m odelo ejecu tab le del softw are en el que
m en to de to d as las activ id ad es sig u ien tes de la in g e se p u e d en re fin a r lo s req uisitos. Se n e ce sita n herra
n iería del softw are. m ientas especiales para p o der realizar adecuadamente
El a n á lisis d eb e e n fo c a rse en los d o m in io s de la la creación de prototipos.
inform ación, funcional y de c o m p o rtam ien to del p ro C om o resultado del análisis, se desarrolla la Especi
blem a. Para entender m ejo r lo que se requiere, se crean fic a c ió n de requisitos d e l software. L a revisión es esen
m odelos, los p roblem as sufren u n a p artició n y se d e sa cial p a ra a se g u ra rse que el c lie n te y el desarrollador
rrollan rep resentaciones que m u estran la esen cia de los tie n e n el m ism o c o n c e p to del sistem a. D esgraciada
re q u isito s y p o sterio rm e n te los d e ta lle s de la im ple- m ente, incluso con los m ejores m étodos, la cuestión es
m entación. que el problem a sigue cam biando.
M EK EREr S I& S
[AKA90] Akao, Y. (de.), Quality Function Deployment :lnte- [HOL95] Holtzblatt, K., y E. Carmel (eds.), «Requirements
grating Customer Requirements in Product Design (tra Gathering: The Human Factor», un resultado especialde
ducido por G. Mazur), Productivity Press, Cambridge MA, CACM, vol. 38, n.° 5, Mayo 1995.
1990
[JAC92] Jacobson, I., Object-Oriented Software Engineering,
[BAL86] Balzer,R., y N. Goodman, «Principies of Good Spe- Addison-Wesley, 1992.
cification and their Implications for Specification Lan-
[JOR89] Jordan, P.W. et al., «Software Storming: Combining
guages», in Software Specification Techniques (Gehani
Rapid Prototyping and Knowledge Engineering», IEEE
and McGetrick, eds.), Addison-Wesley, 1986,pp. 25-39.
Computer, vol. 22,n.° 5, Mayo 1989, pp. 39-50.
[BOA84] Boar, B., Application Prototyping, Wiley-Inters-
cience, 1984. [REI94] Reifer, D.J., «Requirements Engineering», in Ency-
clopedia o f Software Engineering (J.J Marciniak, editor),
[BOS91] Bossert, J.L., Quality Function Deployment: A Prac- Wiley, 1994,pp. 1043-1054.
titioner's Approach, ASQC Press, 1991.
[TAN89] Tanik, M.M., y R.T. Yeh (eds.), «Rapid Prototyping
[CUR85] Curtis, B., Human Factors in Software Develop in Software Development» (resultado especial), ÍEEE
ment, IEEE Computer Society Press, 1985. Computer, vol. 22, n.° 5, Mayo 1989.
[DAV93] Davis, A., SoftM'are requirements: Objetes, Func- [WYD96] Wyder, T., «Capturing Requirements with use-
tions and Stutes, Prentice-Hall, 1993. cases», Software Development, Febrero 1996,pp. 37-40.
[DAV95a] Davis, A., 201 Principies o f Software Develop [ZAH90] Zahniser, R.A., «Building Software in Groups»,
ment, McGraw-Hill, 1995. A m erican Programmer, vol. 3, n.1" 7/8, Julio-Agosto
[DAV95b] Davis, A., «Software Prototyping», in Advances 1990.
in Computers, vol. 40, Academic Press, 1995. [ZUL92] Zultner,R., «Quality Function Deployment for Soft
[GAU89] Gause, D.C., y G. M. Weinberg, Exploring Requi ware: Satisfying Customers», Am erican Programmer,
rements: Quality Befare Design, Dorset House, 1989. Febrero 1992,pp. 28-41.
•0
11.1. El análisis de requisitos del software es indudablemente pueden llevar a cabo las tareas de análisis de manera que se
la fase de comunicación más intensa del proceso de ingenie- minimicen estas repercusiones políticas?
rí a del software. ¿Por qué suele romperse frecuentemente este
enlace de comunicación? 11.3. Estudie su percepción ideal de la formación y currícu
lum de un analista de sistemas.
11.2. Suele haber serias repercusiones políticas cuando
comienza el análisis de requisitos del software (y/o análisis 11.4. A lo largo de todo el capítulo nos referimos al «clien
www.FreeLibros.org
de un sistema). Por ejemplo, lo s trabajadores pueden creer te». Describa el «cliente» desde el punto de vista de los
que la seguridad de su trabajo puede verse amenazada por un desarrolladores de sistemas de información, de los cons
nuevo sistema automático. ¿Qué origina tales problemas? ¿Se tructores de productos basados en com putadora y de los
196
C A P I T U L O 11 C O N C E P T O S Y P R IN C IP IO S DEL A N Á LISIS
constructores de sistemas. ¡Tenga cuidado, el problema pue el contenido y cualquier estructura de la información que le
de ser más complejo de lo que parece! parezca relevante.
11.5. Desarrolle un «kit» de técnicas de especificación de apli 11.9. Llaga una partición del dominio funcional de H ogarSe
cación (TFEA). El kit debería incluir un conjunto de directri guro. Inicialmente haga una partición horizontal; después haga
ces para llevar a cabo una reunión TFEA, materiales para la partición vertical.
facilitar la creación de listas y otros elementos que pudieran 11.10. Construya la representación esencial y de implemen-
ayudaren la definición de requisitos. tación del sistema HogarSeguro.
11.11. Construya un prototipo en papel (o uno real) deHogar-
'11.6. Su profesor dividirá la clase en grupos de cuatro a seis
Seguro. Asegúrese de mostrar la interacción del propietario y
estudiantes. La mitad del grupo hará el papel del departamento
el funcionamiento global del sistema.
íde marketing y la otra mitad el de la ingeniería del software.
1Slírabajo consiste en definir los requisitos del sistema de segu 11.12. Intente identificar componentes software de H ogar-
ridad HogarSeguro descrito en este capítulo. Celebre una reu Seguro que podrían ser «reutilizables» en otros productos o
nión TFEA usando las directrices estudiadas en el capítulo. sistemas. Intente clasificar esos componentes.
11.13. Desarrolle una especificación escrita de HogarSegu-
*11.7. ¿Se puede decir que un Manual preliminar de usuario m usando el esquema propuesto en la página web SEPA. (Nota:
es una forma de prototipo? Razone su respuesta. Su profesor le sugerirá qué secciones com pletar en este
11.8. Analice el dominio de información de HogarSeguro. momento.) Asegúrese de aplicar las cuestiones descritas en la
¡Represente (usando la notación que crea apropiada) el flujo, revisión de la especificación.
Los libros que indicamos sobre la ingeniería de requisitos per (Applying Use-cases: A P ractica 1 G uide, Addison-Wesíey,
miten una buena base para el estudio de los conceptos y prin 1998), y Texel y W illiams (U se-C a se s C o m b in e d W ith
cipios básicos del análisis. Thayer y Dorfman (Software B o o ch /d M T /U M L ,P re n tic e-lla \\, 1997) facilitan una guía
RequirementsEngineering, 2.a ed., IEEE Computer Society detallada y muchos ejemplos Utiles.
Press, 1997)presentan una amplía antología sobre el tema. El análisis del dominio de la información es un principio
Giabam y Graham (Requirem ents E ngineering and R a p id fundamental del análisis de requisitos. Los libros de Matti-
Development, Addison-Wesley, 1989,destaca el desarrollo rápi son (The O bject-O riented E nterprise, McGraw-Hill, 1993),
doy el uso de métodos orientadosa objetos en su planteamiento y Modell (D ataAnalysis, D ata M odelling and Classification,
Sobre la ingeniería de requisitos, mientras MacCauley (Requi- McGraw-Hill, 1992) cubre distintos aspectos de este impor
rements Engineering, Springer Verlag, 1996) presenta un bre tante tema.
ve tratado académico sobre el tema. Un reciente libro de Harrison (Prototyping and Software
En los últimos años, la literatura hacia énfasis en el D evelopm ent, Springer Verlag, 1999) facilita una moderna
modelo de requisitos y en los métodos de especificación, perspectiva sobre el prototipado del software. Dos libros de
pero hoy se hace igual énfasis en los métodos eficientes C onnelly Shafer (Stru ctu red R a p id P rototyping, Prentice-
para la obtención de requisitos del software. Wood y Sil- Hall, 1989) y (Object-O riented R a p id Prototyping, Yourdon
ver (JointApplication D evelopment, segunda edición, Wiley, Press, 1994) muestra como esta importante técnica de análi
1995) han escrito un tratado definitivo para el desarrollo sis puede ser utilizada tanto para entornos convencionales
deaplicacionesenlazadas. Cohén y Cohén (Quality Function como para entornos orientados a objetos.
Deployment, Addison-Wesley, 1995), Terninko ( S te p -B y- Otros libros como los de Pomberger et al. (O bjectO rien-
StepOFD: C ustom er-D riven P roduct D esign, Saint Lucie tation and Prototyping in Software Engineering, Prentice-
Press, 1997), Gause y W einberg [GAU89] y Zahniser Hall, 1996) y Krief et al. (Prototyping W ith O bjects,
ÍZ A H 90] estudia los mecanismos para tener reuniones efec Prentice-Hall, 1996) examina el prototipado desde la pers
tivas, métodos de brainstorm ing y obtención de requisitos pectiva de la orientación a objetos. La IE E E Proceedings o f
cpe pueden usarse para clarificar resultados y una variedad International W orkshop on R apid System Prototyping (publi
de otras necesidades. Los casos de uso configuran una par cado el pasado año) presenta una visión actual en esta área.
te importante del análisis de requisitos orientado a objetos, Una amplía variedad de fuentes de información sobre el
¡}ue pueden usarse de forma independiente de la imple- análisis de requisitos y otros temas relacionados están dispo
toentación tecnológica que se seleccione. Rosenburgy Scott nibles en internet. Una lista actualizada de páginas web que
(Use-CaseDriven Ohject. M odelling w ith I M I.:. 1 P racti- son significativas sobre los conceptos y métodos de análisis
CÚApproach, Addison-W esley, 1999), Schneider et al. se encuentran en http://www.pressman5.com
www.FreeLibros.org 197
www.FreeLibros.org
CAPÍTULO
N un nivel técnico, la ingeniería del software empieza con una serie de tareas de m ode
E lado que llevan a una especificación com pleta de los requisitos y a una representación
del diseño general del software a construir. El modelo de análisis, realm ente un conjunto
de modelos, es la prim era representación técnica de un sistema. Con los años se han propuesto
m uchos métodos para el modelado del análisis. Sin embargo, ahora dos tendencias dom inan el
panoram a del m odelado del análisis. El primero, análisis estructurado, es un m étodo de m ode
lado clásico y se describe en este capítulo. El otro enfoque, análisis orientado a objetos, se estu
dia con detalle en el Capítulo 21. En la Sección 12.8 se presenta una breve visión general de
otros métodos de análisis comúnmente usados.
El análisis estructurado es una actividad de construcción de modelos. M ediante una nota
ción que satisfaga los principios de análisis operacional estudiada en el Capítulo 11, creamos
modelos que representan el contenido y flujo de la inform ación (datos y control); partimos el
sistema funcionalmente, y según los distintos comportamientos establecem os la esencia de lo
que se debe construir. El análisis estructurado no es un método sencillo aplicado siem pre de la
m ism a forma por todos los que lo usan. M ás bien, es una amalgama que ha evolucionado duran
te los últim os 30 años.
En su principal libro sobre este tema, Tom DeMarco [DEM79] describe el análisis estruc
turado de la siguiente forma:
VISTAZO RAPIDO
¿Qué es? La palabra escrita es un vehícu vista. El análisis representa los requi especificación incorporada en el mode
lo maravilloso para la comunicación, sitos en tres «dimensiones», por esa lo es creada y luego validada, tanto por
pero no es necesariamente el mejor razón, se incrementa la probabilidad de el ingenierodel software, como por los
camino para representar los requisitos encontrar errores, descubrir inconsis clientes/usuarios.
del software. El análisis utiliza mía com tencias y detectar omisiones. ¿Cuál es el producto obtenido? Las des
binación de texto y de diagramas, para ¿C son los pasos? Los requisitos de cripciones de los objetos de datos, los
representar los requisitos de datos, fun diagramas entidad-relación, los dia
datos, funciones y comportamientos
ciones y comportamientos, que es rela son modelados utilizando diferentes gramas de flujo de datos, los diagra
tivamente fácil de entender y, más mas de transición de estados, las
importante aún, sencillo para revisar su diagramas, El modelado de datos defi
especificaciones del proceso y las
corrección, completitud y consistencia. ne objetos de datos, atributos y rela
especificaciones de control son crea
ciones. El modelado de funciones
¿Quién lo hace? El ingenierodel software indica como ios datos son transforma da s como resultado de las actividades
(a veces llamado analista) construye el del análisis.
dos dentro del sistema. El modelado
modelo utilizando los requisitos defini del comportamiento representa el ¿Cómo puedo estar seguro de que lo he
dos por el cliente, impacto de los sucesos. Se crean unos hecho correctamente?E1 resultado del
i ¿Por qué es importante? Para validar los modelos preliminares que son anali modelado del análisis debe ser revisa
requisitos del software necesitamos zados y refinados para valorar su cla do para verificar su corrección, comple
f examinarlos desde diferentespuntos de ridad. completitud y consistencia. Una titud y consistencia.
Observando los problemas y fallos reconocidos para la fase de análisis, se puede sugerir que necesita
mos añadir los siguientes objetivos a la fase de análisis.
• Los productos del análisis han de ser de mantenimiento muy fácil. Esto concierne concretamente al
documento final [Especificación de Requisitos del Software],
• Se deben tratar los problemas de gran tamaño mediante algún método efectivo de partición. La espe
cificación mediante novelas victorianas ya no sirve.
• Siempre que sea posible, se deben utilizar gráficos.
• Tenemos que diferenciarlas consideraciones lógicas [esenciales] y las físicas [de implernentación]...
Como mínimo, necesitamos ....
www.FreeLibros.org
■Algo que nos ayude a hacer una partición de los requisitos y a documentar esas divisiones antes de
especificar ...
• Algún método de seguimiento y evaluación de interfaces ...
■Nuevas herramientas para describir la lógica y la táctica, algo mejores que descripciones narrativas ...
199
IN GE NI E RÍ A DEL S OFT W ARE . UN E N F O Q U E P R Á C T I C O
Es m uy probable que n in g ú n o tro m étodo de ingeniería del softw are h ay a generado tanto interés, h ay a sido pro
bado (y a v eces rechazado y vuelto a probar) p o r tan ta gente, criticado y h ay a provocado tan ta controversia. Pero
el m étodo h a subsistido y h a alcan zad o u n im portante seguim iento d en tro de la com unidad de la ingeniería del
softw are.
A l igual que m uchas de las contribuciones im portan E l té rm in o «análisis e stru c tu ra d o » originalm ente
tes a la ingeniería del softw are, el análisis estructurado a cu ñ ad o p o r D o u g las R oss, fu e p o p u la riz a d o por
no fue introducido en un solo artículo o libro clave que D e M arc o [D E M 79]. E n su lib ro so b re e sta m ateria,
in clu y e ra un tra ta m ie n to co m p leto del tem a. L o s p ri D eM arco p resentó y d en o m in ó los sím bolos gráficos y
m eros trabajos sobre m odelos de análisis aparecieron a los m odelos que los incorporan. E n los años siguientes,
finales de los 60 y principios de los 70, pero la p rim e P ag e-Jo n es [PA G 80], G ane y S arso n [G A N 82] y
ra ap arició n del en fo q u e de an álisis e stru ctu rad o fue m uchos otros propusieron variaciones del enfoque del
com o com plem ento de otro tem a im p o rtan te— el « d ise análisis estructurado. E n todos los casos, el m étodo se
ño estructurado» — . L os investigadores (por ejem plo, centraba en aplicaciones de sistem as de inform ación y
[ST E 74], [Y O U 78], necesitab an u na n o tació n gráfica no proporcionaba una notación adecuada p ara los aspec
p ara rep resen tar los datos y los p rocesos que los tra n s tos de co n tro l y de co m p o rtam ien to de los problem as
form an. E sos p rocesos quedarían finalm ente estableci de ingeniería de tiem po real.
dos en u n a arquitectura de diseño. A m ediados de los 80, las «am pliaciones» para tiem
po real fueron introducidas p o r W ard y M ellor [WAR85]
y, m ás tarde, p o r H atley y P irbhai [HAT87]. C on esas
am pliaciones, se co n sig u ió un m étodo de análisis más
8 p B existan problemas.
robusto que p o día ser aplicado de form a efectiva a pro
•, p s ® » ss esperar que vengan y pensa
blem as de ingeniería. En la actualidad, se está inten
problemas es un problema.
tan d o desarrollar una notación consistente [BRU88] y
fP M N jlite StA&s
se están publicando tratam ientos m odernos que permi
tan acom odar el uso de herram ientas C A SE [YOU89],
www.FreeLibros.org
d o s p ro p ó sito s: ( 1 ) p ro p o rc io n a r u n a in d ic a c ió n d e
có m o se tra n sfo rm a n los d ato s a m e d id a que se av an su b fu n c io n e s) que tra n sfo rm a n el flu jo de datos. El
z a en el s is te m a , y (2) re p re s e n ta r las fu n c io n e s (y D F D p ro p o rc io n a in fo rm a c ió n a d ic io n a l q u e se usa
200
C A P I T U L O 12 M O D E L A D O DEL ANÁ LIS IS
durante el an álisis del d o m in io de in fo rm a ció n y s ir siciones de estad o a estado. El D T E sirve co m o la base
ve com o b ase p a ra el m o d e la d o de fu n ció n . E n u n a del m odelado de com portam iento. D entro de la especi
especificaciónde proceso ( EP) se en c u e n tra u n a d e s ficación de control ( E C ) se encuentra m ás inform ación
cripción de c a d a fu n c ió n p re s e n ta d a en el DFD. sobre los aspectos de control del softw are.
El diagrama de transición de estados (D TE) indica El m o d elo de an álisis aco m p añ a a cad a d iagram a,
cómo se co m p o rta el sistem a co m o c o n se c u e n c ia de especificación y descripción, y al diccionario señalado
sucesos externos. Para log rar e sto , el D T E representa en la Figura 12.1. U n estudio m ás detallado de estos ele
los diferentes m odos de com portam iento (llam ados esta m entos del m odelo de an álisis se presenta en las sec
dos) del sistem a y la m an era en que se h acen las tra n ciones siguientes.
§ da respuesta el modelo
de datos?
Número
— ► de bastidor
Tipo de
carrocería
Para responder estas preguntas, los m étodos de m ode Color
lado de datos h acen uso del d iagram a de en tidad-rela
ción (DER). El D ER, descrito con detalle posteriorm ente FIGURA 12.2. Objetos de datos, atributos y relaciones.
en esta sección, p erm ite que un ingeniero del softw are
identifique objetos de datos y sus relaciones m ediante 12.3.1. O b je to s d e d a to s , a t r ib u to s y r e la c io n e s
una notación gráfica. E n el contexto del análisis estruc El m odelo de datos se com pone de tres piezas de in fo r
turado, el D E R d efin e todos los datos que se introdu m ación interrelacio n ad as: el o b jeto de datos, los atri
cen, se alm acenan, se tran sfo rm an y se pro ducen dentro butos que describen el objeto de datos y la relación que
de una aplicación. conecta objetos de datos entre sí.
O bjetos de datos. U n objeto de datos es una repre
sentación de cualquier com posición de inform ación co m
puesta que deba com prenderel software. Por composición
de inform ación, entendem os to d o aquello que tiene un
! aproximoáón ER está en I
núm ero de propiedades o atributos diferentes. P or tanto,
(fe describir untídades de negocio del mundo real y
el «ancho» (un valor sen cillo jn o sería un objeto de datos
sus relaciones.
M artin JfM eU . -
válid o , p ero las «d im en sio n es» (in co rp o ran d o altura,
ancho y profundidad) se po d ría definir com o objeto.
www.FreeLibros.org
transform an los d ato s), el m o d elad o de datos estudia inform ación), una cosa (por ejem plo, un inform e o una
los datos in d ep en d ien tem en te del p ro c e sa m ien to que pantalla), una ocurrencia (por ejem plo, una llam ada tele
los transform a. fónica) o suceso (por ejem plo, una alarm a), un puesto
IN GE NIE RI A DEL SOF TW ARE . UN E N F O Q U E P R A C T I C O
(por ejemplo, un vendedor), una unidad de la organiza com o un identificador -es decir, el atributo identifi-
ción (por ej emplo, departamento de contabilidad), o una cador supone una «clave» cuando queram os encontrar
estructura (por ejemplo, un archivo). Por ejemplo, una una instancia del objeto de dato— . En algunos casos,
persona o un coche (Fig. 12.2) se pueden ver com o un los valores para los identificadores son únicos, aun
objeto de datos en el sentido en que cualquiera se pue que esto no es un requisito. H aciendo referencia al
de definir según un conjunto de atributos. La descrip o bjeto de datos coch e, un id en tificad o r razonable
ción de objeto de datos incorpora el objeto de datos y podría ser el núm ero de bastidor.
todos sus atributos.
www.FreeLibros.org
1 Esta distinción separa el objeto de datos de la ciase u objeto defini
dos como parte del paradigm a orientado a objetos que se estudia en
la Parte Cuarta de este libro.
202
C A P Í T U L O 12 M O D E L A D O DEL ANÁ LIS IS
www.FreeLibros.org
texto para una relación bidireccional, la Figura 12 4b podría in te r
pretarse erróneamente como libros piden librerías. En tales casos, se
necesita volver a escribir la frase.
203
I N GEN IE RÍ A DEL S O F TW A RE . UN E N F O Q U E P R Á C T I C O
12.3.3. D ia g r a m a s E n tid a d - R e la c ió n
L a pareja objeto-relación (estudiada en la Sección 12.3.1)
es la piedra angular del m odelo de datos. Estas parejas se
pueden rep resen tar gráficam ente m ediante el diagrama
entidad relación (DER). El D E R fue propuesto original
m ente por Peter C hen [CHE77] para el diseño de siste F IG U R A 1 2 .7 . DER ampliado.
m as de bases de datos relaciónales y ha sido am pliado por
otros. Se identifica un conjunto de com ponentes p rim a A m pliando el m odelo, representam os un D ER extre
rios para el DER: objetos de datos, atributos, relaciones m adam ente sim plificado (F igura 12.7) del elementode
y varios indicadores tipo. El propósito prim ario del D ER d istrib u c ió n del n e g o c io de los autom óviles. Se han
es representar objetos de datos y sus relaciones. in tro d u cid o n u ev o s o b jeto s de datos, tra n sp o rtis ta y
d is trib u id o r. A dem ás, las relaciones nuevas —trans
porta, contrata, autoriza y alm acena— indican cómo
Cl a VE los objetos de datos de la figura se asocian entre sí. las
Eobjetivo principal de un DERes representarentidades tablas p ara cada objeto de datos del D ER , se tendría que
(objetos de datas) ysus relacionesentre sí. d e sa rro lla r de a cu erd o c o n las reg las presentadas al
com ienzo del capítulo.
U na notación D E R rudim entaria se h a p resentado en A dem ás de la notación de D E R básica introducida
la Sección 12.3.L os objetos de datos son representados en las Figuras 12.6 y 12.7, el analista puede represen
p o r un rectángulo etiquetado. L as relacio n es se indican tar jerarquías de tipos de objetos de datos. En muchas
m ediante u na lín ea etiquetada conectando objetos. En ocurrencias, un ob jeto de d atos realm ente puede repre
algunas v ariaciones del D E R , la lín ea de co nexión co n sentar una clase o categoría de inform ación. Por ejem
tiene un rom bo que se etiqueta con la relación. Las cone plo, el objeto de d atos coche puede categorizarse como
www.FreeLibros.org
xiones entre objetos de datos y relaciones se establecen d o m é stic o , euro p eo o asiático. L a notación del DER
m ediante una v aried ad de sím bolos especiales que in d i m ostrada en la F igura 12.8 representa esta categoriza-
can cardinalidad y m odalidad (S ección 12.3.2). ción en form a de je rarq u ía.
204
C A P I T U L O 12 M O D E L A D O DEL A N Á LI S IS
^ C Q N S E Jo ffi
Desarrolle el DER de formo Iterativa poro Ir reflanado
los objetos de datas y los relaciones que los conectan.
www.FreeLibros.org
que es u tilizada p o r el software— . L a sim plicidad de la
n o tación del D FD es una razón p o r la que las técnicas
FIGURA 1 2 .9 . Asociación de objetos de datos. del análisis estructurado son am pliam ente utilizadas.
205
IN GE NI E RI A DEL S O F T W A R E . UN EN F O Q U E P R Á C T I C O
CLAVE
El DFDfad/ia un mecanismo paro modelizare I flujo
de Informacióny modellzar las funciones.
S e p u ed e u sar el d ia g ra m a de flu jo de d a to s p a ra
rep resen tar un sistem a o un softw are a cualq u ier nivel F I G U R A 1 2 . 1 1 . R e f i n a m i e n t o d e l flujo d e I n f o r m a c i ó n .
de abstracción. D e hecho, los D FD s p u ed en ser div id i
dos en niveles que represen ten un m ay o r flujo de in fo r L a notación básica que se usa para desarrollar un D FD
m ació n y un m ay o r detalle funcional. P o r consiguiente, no es en sí m ism a suficiente para describir los requisi
el D FD p ro p o rcio n a un m ecanism o p ara el m odelado to s del softw are. P o r ejem p lo , u n a fle ch a de un DFD
funcional, así com o el m odelado del flujo de in form a representa un objeto de datos que entra o sale de un pro
ción. A l h acer esto, se cum ple el segundo p rincipio de ceso. U n alm acén de datos representa alguna colección
análisis operacional (esto es, crear u n m odelo funcio o rganizada de datos. P ero ¿cuál es el contenido de los
n al) estudiado en el C apítulo 11. datos im plicados en las flechas o en el alm acén? Si la
U n D F D de nivel O, tam b ién d en o m in ad o m o delo flecha (o el alm acén) representan una colección de obje
fu n d a m e n ta l d el sistem a o m odelo de co n texto , re p re tos, jc u á le s son? P ara responder a estas preguntas, apli
senta al elem ento de softw are com pleto com o una sola cam os otro com ponente de la notación básica del análisis
b u rb u ja con datos de entrad a y de salida representados estru c tu ra d o — el diccionario de datos— . El formato y
p o r flechas de entrad a y de salida, respectivam ente. A l el uso del diccionario de datos se explica m ás adelante.
dividir el D FD de nivel O p ara m ostrar m ás detalles, apa
recen representados p rocesos (b u rb u jas) y cam inos de ^ O N S E J o j^
flujo de info rm ació n adicionales. P or ejem plo, un D FD
de nivel 1 puede contener cinco o seis b urbujas con fle Si bien lo continuidad del flujo de Información debe
ser mantenido, reconocemosque un ebmento de datos
chas interconectadas. C ad a uno de los p rocesos rep re
representado en un nivel puede ser refinado en sus partes
sen tad o s en el n iv el 1 es u n a su b fu n ció n del sistem a
constituyentesen el siguiente nivel.
general en el m odelo del contexto.
L a notación gráfica debe ser am pliada con texto des
^ 0 ONSEJÓ^ criptivo. Se puede u sar u n a especificación de proceso
www.FreeLibros.org
lo descomposición de un nivel de DFD en su siguiente
(EP) para especificar los detalles de procesam iento que
debería seguir uno oproximociónol ratiol:5, reduciendo
im plica una b u rbuja del D FD . L a especificación de pro
los futuros descomposiciones ceso describe la entrada a la función, el algoritm o que
206
C A P Í T U L O 12 M O D E L A D O DEL A NÁ LI SI S
se aplica para transform ar la entrada y la salida que se vise la v elo cid ad de la tu rb in a , la tem p eratu ra del
produce. Además, el EP indica las restricciones y lim i com bustible y varias sondas de presión, todo ello de
taciones impuestas al proceso (función), las caracterís form a continua. La notación del flujo de datos c o n
ticas de rendim iento que son relevantes al proceso y las vencional no hace distinciones entre datos discretos
restricciones de diseño que puedan tener influencia en y datos continuos en el tiem po. U na am pliación de la
la forma de im plementar el proceso. notación básica del análisis estructurado que se m ues
tra en la Figura 12.12 proporciona un m ecanism o para
12.4.2. Ampliaciones para sistemas de tiempo real representar el flujo de datos continuo en el tiem po.
Para representar el flujo continuo en el tiem po se usa
Muchas aplicaciones de software son dependientes del la flecha de dos cabezas, m ie n tra s que el flu jo de
tiempo y procesan m ás inform ación orientada al con datos discreto se re p resen ta con una flech a de una
trol de datos. Un sistem a de tiem po real debe inter- sola cabeza. En la figura, se m ide continuam ente la
actuar con el m undo real en m arcos tem porales que temperatura supervisada, m ientras que sólo se p ro
vienen dados por el m undo real. El control de naves o porciona un valor para el ajuste de temperatura. El
de procesos de fabricación, los productos de consum o p roceso de la fig u ra p ro d u c e una salid a co n tin u a,
y la instrum entación industrial son algunas de entre valor corregido.
cientos de aplicaciones del software de tiem po real.
Para que resulte adecuado el análisis del software de
tiempo real, se han propuesto varias am pliaciones para
la notación básica del análisis estructurado.
$La v e
Pora odecuor el modelo a un sistema en tiem po real,
la notación del análisis estructurado debe permitir
12.4.3. Ampliaciones de Ward y Mellor procesar eventos y la llegada de continuos datos.
Wardy M ellor [WAR85] am plían la notación básica La distinción entre flujo de datos discreto y c o n
del análisis estru ctu rad o para que se adapte a las tinuo en el tiem po tiene im plicaciones im portantes,
siguientes dem andas im puestas por los sistem as de tanto para el ingeniero de sistem as com o para el d ise
tiempo real: ñador del softw are. D urante la creación del m odelo
• Flujo de inform ación que es recogido o producido del sistem a, podrá aislar los procesos que pueden ser
de forma continua en el tiempo. c rític o s p ara el re n d im ie n to (es m uy usu al que la
• Información de control que pasa por el sistema y el e n tra d a y salid a de d ato s continuos e n el tiem p o
procesamiento de control asociado. dependan del rendim iento). Al crear el m odelo fís i
co o de im plem entación, el diseñador debe esta b le
• Ocurrencias múltiples de la m ism a transform ación
ce r un m eca n ism o para la reco lecc ió n de dato s
que se encuentran a m enudo en situaciones de mul-
continuos en el tiem po. O bviam ente, el sistem a d ig i
titarea.
tal recolecta datos en una form a casi continua u tili
• Estados del sistema y mecanismos que producen tran zan d o técn icas de m u estreo de alta v e lo cid a d . La
sición de estados en el sistema. notación indica dónde se necesita hardw are de c o n
versión analógica a dig ital y qué tran sfo rm acio n es
requerirán, con m ayor probabilidad, un softw are de
E n trad a alto rendim iento.
« c o n tin u a »
T e m p e ra tu ra / S a lid a En los diagram as de flujo de datos c o n v e n cio n a
les no se representa ex p lícitam en te el co n tro l o f l u
j o s de sucesos. De hecho, al analista se le advierte
de que ha de ex c lu ir específicam ente la rep resen ta
ción del flu jo de co n tro l del d iag ra m a de flu jo de
datos. Esta exclusión es dem asiado restrictiv a cu a n
do se trata de aplicaciones de tiem po real y, p o r este
m otivo, se ha d esarro llad o una n o tació n e sp e c ia li
zada para la representación del flujo de sucesos y del
procesam iento de control. S iguiendo con los co n v e
FIGURA 1 2 .1 2 . F lu jo d e d a t o s c o n t i n u o e n e l t i e m p o . nios esta b le c id o s p ara los d iag ra m as de flu jo de
datos, el flujo de datos se representa m ediante fle
En un porcentaje significativo de aplicaciones de chas con traz o co n tin u o . Sin em b arg o , el f l u j o de
tiempo real, el sistem a debe controlar la inform ación control se representa m ediante flechas de trazo d is
continua en el tiempo generada por algún proceso del continuo o som breadas. U n proceso que sólo m an e
www.FreeLibros.org
mundo real. Por ejem plo, puede que se haga n ecesa j a flujos de control denom inado p ro c e so de control,
rio un sistem a de control de pruebas en tiem po real se representa analógicam ente m ediante una burbuja
para m áquinas de turbina de gas, para que se super con trazo discontinuo.
207
IN GE NI E RI A DEL SOF TW ARE . UN EN F O Q U E P R Á C T I C O
www.FreeLibros.org
este caso en un entorno m ultitarea en el que se activan El m odelo de control está «conectado» con el modelo
las tareas com o resultado de algún p rocesam iento in ter de procesos m ediante la inform ación de activación de
n o o de sucesos externos. procesos contenida en la EC.
208
C A P Í T U L O 12 M O D EL A D O DEL A NÁ LI S IS
Comienzo/ / Producir \
parada / / Gestión \ »I visualizaciór, 1
/ í de copilado 1 V de usuario M
/
Leer
entrada de
operador
Realizar
diagnóstico
del
problema
Recargar
papel Llena
Fallo
de reproducción
F IG U R A 1 2 .1 5 . DFCde nivel 1 para el software de unafoto-
copiadora.
BftU MQPELADII^£LJS.QMP.0RIÁMI£IÍ1Q.
El modelado del com portam iento e s uno de lo s p rin
¿Cómo modelizar la reacción
cipios fu n d am en tales de to d o s los m é to d o s de a n á li
sis de requisitos. S in em b arg o , sólo alg u n as versio n es
am pliadas d el a n á lis is e s tr u c tu r a d o ([W A R 8 5 ],
• del software ante un evento
externo?
www.FreeLibros.org
qué a ccio n es (p o r e je m p lo , a ctiv ació n d e p ro c e so s) uno de estos estados representa un m odo de co m porta
se llevan a c a b o c o m o c o n s e c u e n c ia d e un su c e s o m iento del sistema. Un diagram a de transición de estados
determ inado. indica cóm o se m ueve el sistem a de un estado a otro.
209
INGE NIE RÍA DEL SOF TW ARE . UN E N F O Q U E P R A C T I C O
P ara ilustrar el uso de las am pliaciones de com por z o /p a r a d a p ara a c tiv a r/d e sac tiv a r el p ro c e so de ges
tam iento y de control de H atley y Pirbhai, considerem os tión de copiado. D e fo rm a sim ilar, el suceso ata sc a
el softw are em potrado en una m áquina foto co p iadorade d a (p a rte d e l e s ta d o de a lim e n ta c ió n d e l papel)
oficina. E n la F ig u ra 12.15 se m u estra u n flujo de co n a c tiv a ría rea liza r d ia g n ó stico d el p ro b le m a . Se debe
trol p ara el softw are de fotocopiadora. L as flechas del ría d esta car que to d as las b a rras v ertica le s dentro del
flujo de datos se h an som breado ligeram ente con p ro D F C se refie ren a la m ism a EC. U n flu jo de suceso
pósito s ilustrativos, pero en realid ad se m u estran com o se pued e in tro d u c ir directam en te en el p ro ceso como
parte de un diagram a de flujo de control. m u estra fa llo d e re p ro d u c c ió n . Sin em bargo, este flu
L os flu jo s de co n tro l se m u e stra n de c a d a p ro ceso j o no a c tiv a el p ro c e so , sino que p ro p o rcio n a infor
individual y las b arras v erticales rep resen tan las « v e n m ació n de c o n tro l p a ra el a lg o ritm o de proceso.
ta n a s » EC . P o r e je m p lo , lo s su c e so s e s ta d o d e a li U n d iag ram a de tran sic ió n de estad o s sim plificado
m e n ta c ió n d e l p a p e l y de c o m ie n z o /p a r a d a flu y e n p a ra e l so ftw a re d e fo to c o p ia d o ra d e sc rito anterior
d e n tro de la b a rra de EC. E sto im p lic a que ca d a uno m en te se m u e stra en la F ig u ra 12.16. L os rectángulos
d e e s to s s u c e s o s h a rá q u e se a c tiv e a lg ú n p ro c e so re p re se n ta n e sta d o s del siste m a y las fle c h a s repre
rep re se n ta d o en el D FC . Si se fu e ra n a ex am in ar las sentan transiciones entre estados. C ad a flech a está eti
in te rio rid a d e s del E C , se m o stra ría el su ceso co m ien - q u e ta d a con u n a ex p re sió n en fo rm a de fracción. La
parte superior in d ica el suceso (o sucesos) que hace(n)
que se p ro d u z ca la tran sició n . L a parte in ferio r indica
Llena y comienzo
la acción que se produce co m o con secu en cia del suce
so. A sí, c u a n d o la b a n d e ja d e p a p e l e s tá llen a , y el
b o tó n de co m ie n z o h a sido p u lsa d o , el sistem a pasa
del estad o leyendo órdenes al estado realizando copias.
O bserve que lo s e sta d o s no se co rresp o n d e n necesa
ria m e n te co n los p ro c e so s d e fo rm a b iu n ív o c a . Por
ejem p lo , el esta d o realizando c o p ia s e n g lo b a ría tanto
el p ro c e so g e stió n de co p ia d o c o m o e l p ro ceso pro
ducir visualización de usuario que aparecen en la Figu
ra 12.15.
invocar realizar diagnóstico del problema
No atascado
Diagnosticando 1 C ^ C /fa :
ei problema i
lo ttre c o perdido es un estado de confusión..
Ate orifica misteriosa sobre un DTE
F IG U R A 1 2 .1 6 . Diagramas de transición de estados simplifi FWB¡eirte complejo.
cado para el software de una fotocopiadora.
www.FreeLibros.org
DFDs y DTEs cuando construyes el modelo
¿Cuáles son los pasos
E n las seccio n es sig u ien tes, se ex a m in a c a d a uno requeridos para construir
de los pasos que se debe seguir p ara desarro llar m o d e un DER?
210
C A P I T U L O 12 M O D E L A D O DEL ANA LIS IS
1. Durante la reco p ilació n de requisitos, se pide que los ta entre el propietario y panel de control, sistem a de
clientes listen las «cosas» que afronta el proceso de seguridad y servicio de vigilancia. Existe una cone
la aplicación o del negocio. E stas «co sas» e v o lu xión Única entre el sensor y el sistema de seguridad, y
cionan en u n a lista de objetos de datos de entrada y así sucesivamente.
de salida, así com o entidades externas que producen U na vez que se han definido todas las conexiones,
o consum en inform ación. se identifican una o varias parejas objeto-relación para
2. Tomando objetos uno cada vez, el analista y el cliente cada conexión. Por ejem plo, se determ ina la conexión
definen si existe u n a conexión (sin n o m brar en ese entre sensor y sistem a de seguridad para que tenga las
punto) o no en tre el objeto de datos y otros objetos. parejas objeto-relación siguientes:
el sistem a de seguridad supervisa el sensor
3. Siem pre que e x iste u n a c o n e x ió n , el a n a lista y el
el sistem a de seguridad a ctiva ld esa ctiva el sensor
cliente crean u n a o varias parejas de objeto-relación.
el sistem a de seguridad p r u e b a el sensor
4. Para cada p areja objeto -relació n se explóra la card i el sistem a de seguridad p ro g ra m a el sensor
nalidad y la m odalidad. Cada una de las parejas objeto-relación anteriores se
5. Interactivam ente se co n tin ú an los pasos del 2 al 4 analizan para determ inar la cardinalidad y la m odali
hasta que se hayan definido todas las parejas objeto- dad. Por ejem plo, en la pareja objeto-relación el siste
relación. Es norm al descu b rir o m isio n es a m ed id a m a de seguridad supervisa el sensor, la cardinalidad
que el p roceso continúa. O bjetos y relaciones n u e entre sistem a de seguridad y sensor es una a muchos.
vos se añadirán invariablem ente a m edida que crezca La m odalidad es una incidencia de sistem a de seguri
el núm ero de interacciones. dad (obligatoria) y al m enos una incidencia de sensor
6. Se definen los atributos de cada entidad. (obligatorio). M ediante la notación DER introducida en
7. Se form aliza y se revisa el diagram a entidad-relación. la Sección 12.3, la línea de conexión entre sistema de
seguridad y sensor se m odificaría, com o se m uestra en
8. Se repiten los pasos del 1 al 7 h asta que se term ina
la Figura 12.18. Se aplicaría un análisis sim ilar al res
el m odelado de datos.
to de los objetos de datos.
Para ilu strar el uso de estas directrices básicas, u sa
remos el ejem plo del sistem a de seg u rid ad H ogarSe-
Supervisa
giiro tratado en e l C ap ítu lo 11. A c o n tin u a c ió n ,
reproducimos la narrativa de procesam iento para Hogar-
Seguro (Sección 11.3.3), la siguiente lista (parcial) de
«cosas» son im portantes para el problem a:
• propietario
• panel de control
• sensores
• sistema de seguridad
• servicio de vig ilan cia
F IG U R A 1 2 .1 8 . Desarrollo de relaciones y cardinalidad/
modalidad.
12.6.2. C r e a c ió n d e u n m o d e lo d e flu jo d e d a t o s
El diagram a de flu jo de datos (1)F D ) permite al inge
niero del software desarrollar los m odelos del ám bito
de inform ación y del ám bito funcional al m ism o tiem
FIGURA 1 2 .1 7 . Establecimiento de conexiones. po. A m edida que se refina el DFD en mayores niveles
de detalle, el analista lleva a cabo implícitam ente una
Tomando estas «cosas» una a una, se exploran las descomposición funcional del sistema. Al m ismo tiem
www.FreeLibros.org
conexiones. Para realizar esto, se dibuja cada objeto y po, el refinam iento del D F D produce un refinam iento
se señalan las líneas que conectan objetos. Por ejemplo, de los datos a m edida que se mueven a través de los pro
la Figura 12.17 m uestra que existe una conexión direc cesos que com ponen la aplicación.
211
in g e n ie r ía del s o f t w a r e , un enfoque pr á c tic o
www.FreeLibros.org
3 Se debe tener en cuenta que serán om itidos los nom bres y verbos
que sean sinónim os o no tengan una relación directa con el modelo
de procesos.
212
C A P Í T U L O 12 M O D E L A D O DEL ANÁLISIS
InfornruaaDínmdel sensor
www.FreeLibros.org
" Estado del sensor T o n o s d e l n ú m e ro d e te lé fo n o A
se ap lic ó a la n a rra tiv a de p ro c e sa m ie n to , rev isa r
FIGURA 12 .21. DFD de nivel 2 que refina el proceso to d o s los « e le m e n to s de c o n tro l» co m o po sib les
m o n ito r iz a r s e n s o re s . entradas/salidas de ECs.
213
IN GE NI E RÍ A DEL SOF TW ARE . UN E N F O Q U E P R Á C T I C O
• D e sc rib ir el c o m p o rtam ien to del sistem a id e n tifi L a Figura 12.23 refleja un diagram a de transición de
cando sus estados; identificar có m o se alcanza cada estados para el m odelo de flujo de nivel 1 de HogarSegu
estad o y d efinir las transiciones en tre los estados. ro. Las flechas de transición etiquetadas indican cóm o ies-
« C entrarse en las posibles om isiones —un e rro r m uy ponde el sistem a a los sucesos a m edida que pasa por los
co m ú n en la especificación del control (por ejem plo, cuatro estados definidosen este nivel. Estudiando el DTE,
p reguntarse si existe alguna otra form a en la que se un ingeniero del softw are puede determ inar el comporta
puede llegar a un estado o salir de él)— . m iento del sistem a y, lo que es m ás im portante, compro
bar si hay «lagunas» en el com portam iento especificado.
¿Cómo seleccionas eventos U na representación algo diferente del m odo de com
www.FreeLibros.org
ron los a trib u to s in h e re n te s de la EC . A h o ra es el
m om ento de ex am in ar un ejem plo de esta im portante F IG U R A 1 2 .2 4 . Tabla de activación de procesos para
notació n del m odelado del análisis estructurado. HogarSeguro.
214
CA PÍ T U L O 12 M O D E L A D O DEL ANÁLISIS
www.FreeLibros.org
e n tra d a . h a c e r p re g u n ta s b a sa d a s en « d ó n d e se u sa /c ó m o se
• d ó n d e s e usa!cómo se u s a — u n l i s t a d o d e l o s p r o c e usan y o b te n e r re sp u e stas a p eticio n e s sim ila re s a las
so s q u e u s a n e l e le m e n to d e d a to s o d e c o n t r o l y an te rio res.
215
INGE NIE RÍA DEL S OFT W ARE . UN E N F O Q U E P R Á C T I C O
P a r a ilu s t r a r e l u s o d e l d ic c io n a r io d e d a to s , v o lv a
m o s a l D F D d e n i v e l 2 y d e l p r o c e s o m o n i t o r i z a r e l s is
t e m a d e H ogarSeguro, m o s t r a d o e n l a F i g u r a 1 2 .2 1 .
R e f i r i é n d o n o s a l a f i g u r a , e s p e c i f i c a m o s e l e l e m e n t o de
Herramientas CASE d a t o s n ú m e ro d e teléfono. ¿ Q u é e s e x a c t a m e n t e un
Análisis Estructurado n ú m e r o d e t e l é f o n o ? P u e d e s e r u n n ú m e r o l o c a l d e sie
t e d í g i t o s , u n a e x t e n s i ó n d e 4 d í g i t o s , o u n a s e c u e n c ia
L a n o tació n u tilizad a p ara desarro llar u n a descrip d e 2 5 d í g it o s p a r a lla m a d a s d e la r g a d is t a n c ia . E l d ic
ción de contenido se in d ica en la siguiente tabla: c io n a r io d e d a to s n o s p r o p o r c io n a u n a d e f in ic ió n p re
c i s a d e núm ero de teléfono p a r a e l D F D e n c u e s t ió n .
C onstrucción N otación Significado
A d e m á s , i n d i c a d ó n d e y c ó m o s e u s a e s t e e l e m e n t o de
de datos d a t o s y c u a l q u i e r i n f o r m a c i ó n a d i c i o n a l q u e l e s e a r e le
A gregación - está com puesto de v a n t e . L a e n t r a d a d e l d i c c i o n a r i o d e d a t o s c o m i e n z a de
la s ig u ie n te f o r m a :
Secuencia + Y
Selección ti] uno u otro nom bre: núm ero de teléfono
alias: ninguno
R epetición t 1" n repeticiones de
dónde se usa/cóm o se asa: com probar con ajustes inicia
o datos opcionales les (salida)
* * delim itadores m arcar núm ero (entrada)
de com entarios descripción:
núm ero de teléfono = prefijo + núm ero de acceso
L a no tació n p erm ite al ingeniero del softw are rep re prefijo = l * un n úm ero de cuatro dígitos que comience en
sentar una com po sició n de datos en una de las tres alter 0 Ó un núm ero de cinco dígitos que com ience por 0]
nativas fu ndam entales que p u ed en ser construidas núm ero de acceso = *secuencia num érica de cualquiertama-
1. C om o u n a secuencia de elem entos de datos. ño*
2. C o m o u n a selección de en tre un c o n ju n to de e le U n n ú m e r o c o m o e l O 1 3 2 7 5 4 6 3 8 1 q u e d a d e s c r it o
m entos de datos. d e e s ta fo r m a .
3. Com o una agrupación repetitiva de elem entos de datos. P a r a g r a n d e s s is t e m a s b a s a d o s e n c o m p u t a d o r a e l
C ada entrada de elem ento de datos que aparezca com o d ic c io n a r io d e d a to s c re c e r á p id a m e n te e n ta m a ñ o y en
parte de una secuencia, una selección o una repetición c o m p l e j i d a d . D e h e c h o , e s e x t r e m a d a m e n t e d i f í c i l man
puede a su vez ser otro elem ento de datos com puestos t e n e r m a n u a l m e n t e e l d i c c i o n a r i o . P o r e s t a r a z ó n , se
que necesite un m ayor refinam iento en el diccionario. d e b e n u s a r h e r r a m ie n ta s C A S E .
ja m iM E N .
El análisis estructurado es el m étodo m ás usado para el de todos los objetos de datos que son im portantes para
m odelado de requisitos, u tiliza el m odelo de datos y el el sistem a. L os sistem as de datos y flujo de control son
www.FreeLibros.org
m o d elo de flu jo s p a ra c re a r la base de u n ad e cu a d o la base de representación de la transform ación de datos
m odelo de análisis. U tilizando el diag ram a entidad-rela y control. Al m ism o tiem po, estos m étodos son usados
ción, el ingeniero del softw are crea una representación para crear un m odelo funcional del softw are y proveer
216
C A P Í T U L O 12 M O D E L A D O DEL ANÁLISIS
se de un m ecanismo para dividir funciones. Después, de datos convencionales, pero ahora hay am pliacio
Crea un modelo de comportamiento usando el diagra- nes que perm iten aplicar el m étodo a los sistem as de
ília de transición de estados y un m odelo de contenido tiem po real.
de los datos con un diccionario de datos. Las especifi- El análisis estru ctu rad o está soportado p o r una
cacicnes de los procesos y del control proporcionan una larga lista de h erram ien tas CA SE que ayudan en la
Elaboración adicional de los detalles. c re a c ió n de cada elem e n to del m o d elo y tam b ién
La notación original para el análisis estructurado en el m a n te n im ie n to de la c o n s is te n c ia y de la
fue desarrollada para aplicaciones de procesam iento corrección.
I,... O E M L d A S L ~ _ ■_ ~ .......
(BRU88] Bruyn, W. et al., «ESML: An Extended Systems |ROS77] Ross, D., y K. Schoman, «Structured Analysis for
Modeling Language Based on the Data Flow Diagram», Requirements Definitions», IEEE Trans. Software Engi-
ACM Software Engineeri'ng Notes, vol. 13,n.° 1, Enero neering, vol. 3, n." 1, Enero 1977,pp. 6-15.
’ 1988,pp. 58-67. [ROS84] Ross, D., «Applications and Extensions of SADT»,
[CHE77] Chen, P., The Entity-Relationship Approach toLogi- IEEE Computer, vol. 18,n.° 4, Abril 1984,pp. 25-35.
calDatahase Design, QED Information systems, 1977/ [STE74] Stevens, W.P., G.J. M yers y L.L. Constantine,
[DEM79] DeMarco, T., StructuredAnalysis and System Spe- «Structured Design», IBM Systems Journal, vol. 13,n.°2,
, cificaction, Prentice-Hall, 1979. 1974,pp. 115-139.
[GAN82] Gane, T., y C. Sarson, Structured System s,Analy [TIL93] Tillman, G.A.,H Practical Guide to Logical Data
sis, McDonnell Douglas, 1982. Modeling, McGraw-Hill, 1993.
[HAT87] Elatley, D.J., e I.A. Pirbhai, Strategies fo r Real- [WAR81] Wamier, J.D., Logical Construction o f Programs,
Time System Specification, Dorset House, 1987. Van Nostrand Reinhold, 1981.
[JAC83] Jackson, M.A., System Development, Prentice-Hall, [WAR85] Ward, P.T., y S. J. Mellor, Structured Development
1983. fo r Real-Tune Systems, tres volúmenes, YourdonPress, 1985.
[0RR81] Orr, K.T., StructuredRequirements Definition, Ken [YOU78] Yourdon, E.N., y L.L. Constantine, Structured
Orr & Associates, Inc., Topeka,KS, 1981. Design, Yourdon Press, 1978.
(PAG80] Page-Jones, M., The Practical Guide to Structured [YOU89] Yourdon,E.N., Modern Structured Analysis, Pren-
Systems Design, YourdonPress, 1980. tice Hall, 1990.
L : .. EM • ’ 2RAR
121. Obtenga al menos tres de las diferencias que se men 12.4. Dibuje un modelo de nivel de contexto (DFD de nivel
cionan en la sección 12.1 y escriba un breve artículo que 0) para uno de los cinco sistemas que se listan en el problema
refleje el cambio a lo largo del tiempo de la concepción 12.2. Escriba una descripción de procesamiento a nivel de con
del análisis estructurado. En una sección de conclusiones, texto para el sistema.
Sugiera formas en las que crea que cambiará el método en 12.5. Mediante el DFD de nivel de contexto desarrollado en
el futuro. el problema 12.4, desarrolle diagramas de flujo de datos de
122. Se le pide que constmya uno de los sistemas siguientes: nivel 1y nivel 2. Utilice un «analizador gramatical» en la des
a un sistema de registro en cursos basado en red para su uni cripción de procesamiento a nivel de contexto para que se ini
versidad cie en ese tema. Recuerde especificar todo el flujo de
información etiquetando todas las flechas entre burbujas. Uti
b. un sistema procesamiento de transacciones basado en inter
lice nombres significativos para cada transformación.
net para un almacén de computadoras
c. un sistema simple de facturas para una empresa pequeña 12.6. Desarrolle DFC, EC, E P y un diccionario de datos para
el sistema que seleccionó en el problema 12.2. Intente cons
d. un producto de software que sustituya a rolodex construi truir su modelo tan completo como sea posible.
do en un teléfono inalámbrico
12.7. ¿Significa el concepto de continuidad del flujo de infor
e. un producto de libro de cocina automatizado constmido en
mación que si una flecha de flujo aparece como entrada en el
una cocina eléctrica o en un microondas
nivel 0, entonces en los subsiguientes niveles debe aparecer
Seleccione el sistema que le sea de interés y desarrolle un una flecha de flujo como entrada? Explique su respuesta.
diagtama entidad-relación que describa los objetos de datos,
www.FreeLibros.org
relaciones y atributos. 12.8. Usando las ampliaciones de Ward y Mellor descritas en
las figuras 12.13.¿Cómo encaja la EC que se indica en la figu
122 ¿Qué diferencia hay entre cardinalidad y modalidad? ra 12.13? Ward y Mellor no usan esa notación.
217
INGE NIE RÍA DEL SOF TW ARE . UN E N F O Q U E P R Á C T I C O
12.9. Usando las ampliaciones de Hatley y Pirbhai, rehaga el (determinada a partir de su tamaño). A cada bache se le
modelo de flujo contenido en la Figura 12.13. ¿Cómo encaja asocian datos de petición de obra, incluyendo la ubicación
el modelo de control que se indica en la Figura 12.13? Flatley y el tamaño, la brigada, el equipamiento asignado,lashoras
y Pirbhai no usan esa notación. de reparación, el estado del bache (obra en curso, reparaj
12.10. Describa con sus propias palabras un flujo de sucesos. do, reparación temporal, no reparado), la cantidadde mate-,
rial de relleno usado y el coste de la reparación (calcula&
12.11. Desarrolle un modelo de flujo completo para el soft con las horas dedicadas, el número de trabajadores, el mate
ware de fotocopiadora discutido en la sección 12.5. Puede uti rial y el equipamiento usados). Finalmente, se crea un archi
lizar las ampliaciones de Ward y M ellor o las de Hatley y vo de daños para mantener la información sobre losdañof
Pirbhai. Asegúrese de desarrollar para el sistema un diagrama reportados debidos a la existencia del bache, incluyendo
de transición de estados detallado. el nombre del ciudadano, su dirección, su número de telé
12.12. Complete la descripción de procesamiento para el soft fono, el tipo de daño y el coste de subsanamiento del cafa
ware HogarSeguro que se ha presentado en la Figura 12.20; El sistema SSRB es un sistema interactivo.
describiendo los mecanismo de interacción entre el usuario y Utilice el análisis estructurado para modelar SSRB.
el sistema. ¿Cambiará su información adicional los modelos
de flujo de HogarSeguro que aparecen en este capítulo? Si es 12.14. Se va a desarrollar un sistema de procesamientocb tex
así, ¿cómo? tos basados en computadoraspersonales. Investiguedurantealgu-
nas horas sobre el área de aplicación y lleve a cabo una reunión
12.13. El departamento de obras públicas de un gran ciudad TFEA (Capítulo 1l)con sus compañerosde clase para un mode
ha decidido desarrollar un sistema de seguimiento y repara lo de requisitos del sistema utilizando el análisis estructurado (su
ción de baches (SSRB)basado en página web. Con los siguien profesor le ayudará a coordinarlo). Constmya un modelo de requi
tes requisitos: sitos del sistema mediante el análisis estructurado.
Los ciudadanos pueden conectarse a la página e infor
12.15. Se va a desarrollar el software para un videojuego. Pro
mar sobre la situación y la importancia del bache. Amedi-
ceda como en el problema 12.14.
da que se informa sobre cada bache, se le asigna un número
de identificación y se guarda con la calle en la que se 12.16. Contacte con cuatro o cinco vendedores de herramien
encuentra, su tamaño (en una escala de 1 a 10), su posi tas CASE para análisis estructurado. Revise sus folletosy escri
ción (en el medio, a un lado, etc.), su distrito (determina ba un breve artículo que resuma las características generales
do a partir de la calle) y una prioridad de reparación y las que se distingan a unas herramientas de las otras.
www.FreeLibros.org 218
C A P ÍT U L O
1 Q CONCEPTOS Y PRINCIPIOS
X 0 DE DISEÑO
L a d iv e rs ific a c ió n y la c o n v e rg e n c ia c o m b in a n in tu ic ió n y ju i c i o e n fu n c ió n de la e x p e rie n
c ia e n c o n s tru ir e n tid a d e s s im ila re s ; u n c o n ju n to d e p rin c ip io s y /o h e u rís tic a q u e p ro p o rc io n a n
la fo r m a d e g u ia r la e v o lu c ió n d e l m o d e lo ; u n c o n ju n to d e c rite rio s q u e p o s ib ilita n la c a lid a d
qu e se v a a ju z g a r , y u n p ro c e s o d e ite ra c ió n q u e p o r Ú ltim o c o n d u c e a u n a re p re s e n ta c ió n fin a l
d e d is e ñ o .
VISTAZO RÁPIDO
¿Qué «*? El diseño es una representación como se aplican en la aplicación qué datos, la arquitectura del sistema, la
significativa de ingeniería de algo que se va a construir. En el nivel dé la inter representación dé la interfaz y los deta
se va a construir. Se puede hacer el faz, es la ergonótnica humana la que lles a nivel de componentes. Durante
seguimiento basándose en los requisi dicta nuestro enfoque de diseño. Y en cada una de las actividades del dise
tos del cliente, y al mismo tiempo la cali el nivel de componentes, un «enfoque ño, se aplican los conceptos y princi
dad se puede evaluar y cotejar con el de programación» conduce a diseños pios básicos que llevan a obtener una
conjunto de criterios predefinidos para de datos y procedimentales eficaces. alte li vad.
obtener un diseño «bueno». En el con ¿P er q u é e s im portante? Si se cons ¿Cuál e s e l p roducto ob ten id o? Por
texto de la ingeniería del software, el truye una casa, ¿se hace sin un plano? último se produce una especificación
diseño se centra en cuatro áreas impor Se correrían riesgos, se cometerían del diseño. La especificación se com
tantes de interés: datos, arquitectura, errores, habría un plano de casa sin pone de ios modelos del diseño que
interfaces y componentes. En estas cua sentido, con ventanas y puertas en describen ios datos, arquitectura, inter
tro áreas se aplican los principios y con - sitios equivocados... un desastre. El faces y componentes. Cada una de
ceptos que se abarcan en este capítulo software de computadora es conside estas partes es lo que forma el produc
¿Quién lo h a c e ? El ingeniero del soft rablemente más complejo que una to obtenido del proceso de diseño.
ware es quien diseña los sistemas casa, de aqui que necesitemos un pla ¿Céuto p u ed o - dar seg u r d e q u e lo
basados en computadora, pero los no —el diseño—. h e h ech o correctam ente? ti» cada
conocimientos que se requieren en ¿ C u á les s e n lo s p a so s? El diseño etapa se revisan los productos del dise
cada nivel de diseño funcionan de dife comienza con el modelo de los requi ño del software en cuanto a claridad,
rentes maneras. En el nivel de datos y sitos. Se trabaja por transformar este corrección, finalización y consistencia,
de arquitectura, el diseño se centra en modelo y obtener cuatro niveles de y se comparan con los requisitos y unos
los patrones de la misma manera a detalles de diseño: la estructura de con otros.
www.FreeLibros.org
a to d o d is e ñ o d e s o ftw a re . E n lo s C a p ítu lo s 1 4 , 1 5 , 1 6 y 2 2 se e x a m in a n d iv e rs o s m é to d o s de
d is e ñ o d e s o ftw a re e n c u a n to a la m a n e ra e n q u e se a p lic a n a l d is e ñ o a rq u ite c tó n ic o , de in te r
fa z y a n iv e l d e c o m p o n e n te s .
219
IN GENIERÍA DEL S O F TW A R E . UN E N F O Q U E P R Á C T I C O
s is ( C a p í t u l o 1 2 ) p r o p o r c i o n a l a i n f o r m a c i ó n n e c e
s a r ia p a r a c r e a r lo s c u a t r o m o d e lo s d e d is e ñ o q u e s e F IG U R A 1 3 .1 . Conversión del m odelo de análisis
r e q u ie r e n p a r a u n a e s p e c if ic a c ió n c o m p le t a d e d is e en un diseño de software.
ñ o . E l f l u jo d e in f o r m a c ió n d u r a n te e l d is e ñ o d e l s o f t
w a r e s e m u e s t r a e n l a F i g u r a 13.1. L o s r e q u i s i t o s d e l E l diseño de la in terfa z d e s c r i b e l a m a n e r a d e
s o f t w a r e , m a n if e s t a d o s p o r lo s m o d e lo s d e d a to s f u n c o m u n i c a r s e e l s o f t w a r e d e n t r o d e s í m i s m o , c o n s is
c io n a le s y d e c o m p o r t a m ie n t o , a lim e n t a n la ta r e a d e l t e m a s q u e i n t e r o p e r a n d e n t r o d e é l y c o n la s p e r s o n a s
d is e ñ o . M e d ia n t e u n o d e lo s m u c h o s m é t o d o s d e d is e q u e l o u t i l i z a n . U n a i n t e r f a z i m p l i c a u n f l u j o d e in f o r
ñ o ( q u e s e a b a r c a r á n e n c a p í t u lo s p o s t e r io r e s ) la ta r e a m a c ió n ( p o r e je m p lo , d a to s y / o c o n t r o l) y u n t ip o e sp e
d e d is e ñ o p r o d u c e u n d is e ñ o d e d a to s , u n d is e ñ o c í f i c o d e c o m p o r t a m ie n t o . P o r t a n t o , lo s d ia g r a m a s
a r q u it e c t ó n ic o , u n d is e ñ o d e in t e r f a z y u n d is e ñ o d e d e f l u j o d e c o n t r o l y d e d a t o s p r o p o r c io n a n g r a n p a r
c o m p o n e n te s . t e d e l a i n f o r m a c i ó n q u e s e r e q u i e r e p a r a e l d i s e ñ o de
E 1 diseño de datos t r a n s f o r m a e l m o d e l o d e l d o m i la in t e r f a z .
n i o d e i n f o r m a c i ó n q u e s e c r e a d u r a n t e e l a n á l i s i s e n la s E l diseno a nivel de componentes t r a n s f o r m a lo s e le
e s tr u c tu r a s d e d a to s q u e s e n e c e s it a r á n p a r a im p le m e n - m e n t o s e s t r u c t u r a l e s d e l a a r q u i t e c t u r a d e l s o f t w a r e en
t a r e l s o f t w a r e . L o s o b j e t o s d e d a t o s y la s r e l a c i o n e s u n a d e s c r ip c ió n p r o c e d im e n t a l d e lo s c o m p o n e n te s d e l
d e f in id a s e n e l d ia g r a m a r e la c ió n e n tid a d y e l c o n t e n i s o f t w a r e . L a in f o r m a c ió n q u e s e o b tie n e d e E P , E C y
d o d e d a to s d e t a lla d o q u e s e r e p r e s e n ta e n e l d ic c io n a d e D T E s ir v e c o m o b a s e p a r a e l d is e ñ o d e lo s c o m p o
r i o d e d a to s p r o p o r c io n a n la b a s e d e la a c t iv id a d d e l n e n te s .
d is e ñ o d e d a to s . E s p o s ib le q u e p a r te d e l d is e ñ o d e d a to s L a im p o r t a n c ia d e l d is e ñ o d e l s o ftw a r e se p u e d e
te n g a lu g a r ju n t o c o n e l d is e ñ o d e la a r q u it e c t u r a d e l d e s c r i b i r c o n u n a s o l a p a l a b r a — calidad — . E l d is e
s o ftw a r e . A m e d id a q u e s e v a n d is e ñ a n d o c a d a u n o d e ñ o e s e l l u g a r e n d o n d e s e f o m e n t a r á l a c a l i d a d e n la
lo s c o m p o n e n te s d e l s o f t w a r e , v a n a p a r e c ie n d o m á s i n g e n i e r í a d e l s o f t w a r e . E l d i s e ñ o p r o p o r c i o n a las
d e ta lle s d e d is e ñ o . r e p r e s e n t a c io n e s d e l s o f t w a r e q u e s e p u e d e n e v a lu a r
E l diseño arquitectónico d e f i n e l a r e l a c i ó n e n t r e e n c u a n t o a c a lid a d . E l d is e ñ o e s la ú n ic a f o r m a de
lo s e le m e n to s e s tr u c tu r a le s ’ p r in c ip a le s d e l s o ftw a r e , c o n v e r t i r e x a c t a m e n t e l o s r e q u i s i t o s d e u n c l i e n t e en
lo s p a tr o n e s d e d is e ñ o q u e s e p u e d e n u t ili z a r p a r a u n p r o d u c t o o s i s t e m a d e s o f t w a r e f i n a l i z a d o . E l d is e
l o g r a r lo s r e q u i s i t o s q u e s e h a n d e f i n i d o p a r a e l s i s ñ o d e l s o f t w a r e s i r v e c o m o f u n d a m e n t o p a r a t o d o s los
t e m a , y la s r e s t r ic c io n e s q u e a f e c t a n a la m a n e r a e n p a s o s s i g u i e n t e s d e l s o p o r t e d e l s o f t w a r e y d e l a in g e
q u e s e p u e d e n a p lic a r lo s p a tr o n e s d e d is e ñ o a r q u i n i e r í a d e l s o f t w a r e . S i n u n d i s e ñ o , c o r r e m o s e l r ie s
te c tó n ic o s [ S H A 9 6 ] . L a r e p r e s e n ta c ió n d e l d is e ñ o g o d e c o n s t r u i r u n s i s t e m a i n e s t a b l e — u n s i s t e m a que
a r q u it e c t ó n ic o — e l m a r c o d e t r a b a jo d e u n s is t e m a f a l l a r á c u a n d o s e l l e v e n a c a b o c a m b i o s ; u n s is te m a
b a s a d o e n c o m p u t a d o r a — p u e d e d e r iv a r s e d e la e s p e q u e p u e d e r e s u l t a r d i f í c i l d e c o m p r o b a r ; y u n s is te m a
www.FreeLibros.org
c if ic a c ió n d e l s is t e m a , d e l m o d e lo d e a n á lis is y d e la c u y a c a lid a d n o p u e d e e v a lu a r s e h a s ta m u y a v a n z a d o
in t e r a c c ió n d e l s u b s is te m a d e f in id o d e n t r o d e l m o d e e l p r o c e s o , s i n t i e m p o s u f i c i e n t e y c o n m u c h o d in e r o
lo d e a n á lis is . g a s ta d o e n é l— .
220
C A P Í T U L O 13 C O N C E P T O S Y P R IN C IP IO S D E D ISE Ñ O
E l d is e ñ o d e l s o f t w a r e e s u n p r o c e s o i t e r a t i v o m e d i a n t e
•
¿Existen directrices
e l c u a l lo s r e q u i s i t o s s e t r a d u c e n e n u n « p l a n o » p a r a c o n s generales que lleven
t r u ir e l s o f t w a r e . I n ic i a lm e n t e , e l p la n o r e p r e s e n t a u n a a un buen diseño?
v is i ó n h o l í s t i c a d e l s o f t w a r e . E s t o e s , e l d i s e ñ o s e r e p r e
s e n ta a u n n i v e l a l t o d e a b s t r a c c i ó n - u n n i v e l q u e p u e d e 3 . U n d is e ñ o d e b e rá c o n te n e r d is tin ta s r e p r e s e n ta c io
ra s tre a rs e d i r e c t a m e n t e h a s t a c o n s e g u i r e l o b j e t i v o d e l s is n e s d e d a to s , a r q u it e c t u r a , in te r f a c e s y c o m p o n e n te s
te m a e s p e c í f i c o y s e g ú n u n o s r e q u i s i t o s m á s d e t a l l a d o s ( m ó d u lo s ) .
de c o m p o r ta m ie n to , fu n c io n a le s y d e d a to s — . A m e d id a 4 . U n d is e ñ o d e b e rá c o n d u c ir a e s tr u c tu r a s d e d a to s a d e
que o c u r r e n la s i t e r a c i o n e s d e l d i s e ñ o , e l r e f i n a m i e n t o c u a d a s p a r a lo s o b je t o s q u e s e v a n a im p le m e n t a r y
s u b s ig u ie n t e c o n d u c e a r e p r e s e n t a c i o n e s d e d i s e ñ o a n i v e q u e p r o c e d a n d e p a tr o n e s d e d a to s r e c o n o c ib le s .
le s d e a b s t r a c c i ó n m u c h o m á s b a j o s . E s t o s n i v e l e s s e
p o d rá n r a s tr e a r a ú n s e g ú n lo s r e q u is it o s , p e r o la c o n e x ió n 5 . U n diseño deberá c o n d u c i r a c o m p o n e n t e s q u e Pre"
senten características funcionales independientes.
es m á s s u t il .
6 . U n d is e ñ o d e b e r á c o n d u c ir a in te r f a c e s q u e r e d u z
c a n l a c o m p l e j i d a d d e la s c o n e x i o n e s e n t r e l o s m ó d u
13.2.1. D ise ñ o y c a li d a d d e l s o f tw a r e lo s y c o n e l e n t o r n o e x te r n o .
A lo la r g o d e t o d o e l p r o c e s o d e l d is e ñ o , la c a lid a d d e
7 . U n d is e ñ o d e b e r á d e r iv a r s e m e d ia n t e u n m é t o d o r e p e
la e v o l u c i ó n d e l d i s e ñ o s e e v a l ú a c o n u n a s e r i e d e r e v i
t i t iv o y c o n t r o la d o p o r la in f o r m a c ió n o b te n id a
s io n e s t é c n i c a s f o r m a l e s o c o n la s r e v i s i o n e s d e d i s e ñ o
d u r a n t e e l a n á lis is d e lo s r e q u is it o s d e l s o f t w a r e
a b o rd a d a s e n e l C a p í t u lo 8 . M c G la u g h lin [ M C G 9 ! ]
E s to s c r it e r io s n o s e c o n s ig u e n p o r c a s u a lid a d . E l p r o
s u g ie r e t r e s c a r a c t e r í s t i c a s q u e s i r v e n c o m o g u í a p a r a
c e s o d e d is e ñ o d e l s o ftw a r e fo m e n ta e l b u e n d is e ñ o a t r a
la e v a l u a c i ó n d e u n b u e n d i s e ñ o :
v é s d e la a p lic a c ió n d e p r in c ip io s d e d is e ñ o fu n d a m e n ta le s ,
• e l d is e ñ o d e b e r á im p le m e n t a r to d o s lo s r e q u is it o s
d e m e t o d o l o g í a s i s t e m á t i c a y d e u n a r e v i s i ó n c u id a d o s a .
e x p líc ito s d e l m o d e lo d e a n á lis is , y d e b e r á n a ju s ta r s e
a to d o s lo s r e q u is it o s im p lí c it o s q u e d e s e a e l c lie n t e ;
• e l d is e ñ o d e b e r á s e r u n a g u ía le g ib le y c o m p r e n s ib le
p a ra a q u e llo s q u e g e n e r a n c ó d i g o y p a r a a q u e llo s q u e ‘tíéfffes formas éconstruir un diseño de software:
c o m p ru e b a n y c o n s e c u e n te m e n te , d a n s o p o rte a l s o ft ' es hacer un diseño tan simple que no
w a re ; :•: oWafnente deficiencias, y la otra es hacer
M tÉ e flo fon complicado que no existan deficiencias
• e l d is e ñ o d e b e r á p r o p o r c io n a r u n a im a g e n c o m p le t a
o t ó : La primera forma es mucho más difícil.
d e l s o ftw a r e , e n fr e n tá n d o s e a lo s d o m in io s d e c o m
p o r ta m ie n to , f u n c io n a le s y d e d a to s d e s d e u n a p e r s -
13.2.2. L a e v o lu c ió n d e l d is e ñ o d e l s o f tw a r e
L a e v o lu c ió n d e l d is e ñ o d e l s o ftw a r e e s u n p r o c e s o c o n
ñtira lograr un buen diseño, hay que pensar t i n u o q u e h a a b a r c a d o la s ú l t i m a s c u a t r o d é c a d a s . E l p r i
•» 4 fíwnera correcta de llevar a cabo la actividad m e r tr a b a jo d e d is e ñ o s e c o n c e n tr a b a e n c r it e r io s p a r a e l
d e s a r r o llo d e p r o g r a m a s m o d u la r e s [ D E N 7 3 ] y m é to d o s
Kvtbarfe® Whifaíiead p a r a r e f i n a r la s e s t r u c t u r a s d e l s o f t w a r e d e m a n e r a d e s
c e n d e n te [ W I R 7 1 ] , L o s a s p e c to s p r o c e d im e n t a le s d e la
C o n e l f in d e e v a lu a r la c a lid a d d e u n a r e p r e s e n ta c ió n
d e f in ic ió n d e d is e ñ o e v o lu c io n a r o n e n u n a f ilo s o f í a d e n o -
de d is e ñ o , d e b e r á n e s t a b le c e r s e l o s c r i t e r i o s t é c n i c o s p a r a
n r in a d a p r o g r a m a c ió n e s tr u c tu r a d a [ D A H 7 1 , M I L 7 2 ] .
u n b u e n d i s e ñ o . M á s a d e la n t e e n e s t e m i s m o C a p í t u l o , s e
U n tr a b a jo p o s te r io r p r o p u s o m d to d o s j a c o n v e r s ió n
a b o r d a r á n m á s d e t a l l a d a m e n t e lo s c r i t e r i o s d e c a l i d a d d e l
d e l f lu jo d e d a to s [S T E 7 4 ] o e s tr u c tu r a d e d a to s [J A C 7 5 ,
d is e ñ o . P o r a h o r a s e p r e s e n t a r á n la s s i g u i e n t e s d i r e c t r i c e s :
W A R 7 4 ] e n u n a d e f in ic ió n d e d is e ñ o . E n f o q u e s d e d is e
1. U n d i s e ñ o d e b e r á p r e s e n t a r u n a e s t r u c t u r a a r q u i t e c t ó ñ o m á s r e c ie n t e s h a c i a l a d e r i v a c i ó n d e d i s e ñ o p r o p o n e n
n ic a q u e ( 1 ) s e h a y a c r e a d o m e d i a n t e p a t r o n e s d e d i s e ñ o u n m é t o d o o r ie n t a d o a o b je t o s . H o y e n d í a , s e h a h e c h o
r e c o n o c i b le s , ( 2 ) q u e e s t é f o r m a d a p o r c o m p o n e n t e s h in c a p ié e n u n d is e ñ o d e s o f t w a r e b a s a d o e n la a r q u it e c
q u e e x h ib a n c a r a c te r ís tic a s d e b u e n d is e ñ o ( a q u e lla s tu r a d e l s o ftw a re [G A M 9 5 , B U S 9 6 , B R 0 9 8 ],
q u e s e a b o r d a r á n m á s a d e la n t e e n e s t e m i s m o c a p í t u l o ) , In d e p e n d ie n te m e n te d e l m o d e lo d e d is e ñ o q u e s e u t i
Y (3 ) q u e s e p u e d a n im p le m e n ta r d e m a n e r a e v o lu tiv a , lic e , u n in g e n ie r o d e l s o ftw a r e d e b e rá a p lic a r u n c o n
fa c ilita n d o a s í la im p le r n e n ta c ió n y la c o m p r o b a c ió n . j u n t o d e p r in c ip io s fu n d a m e n ta le s y c o n c e p to s b á s ic o s
www.FreeLibros.org
2. U n d i s e ñ o d e b e r á s e r m o d u l a r ; e s t o e s , e l s o f t w a r e p a r a e l d is e ñ o a n iv e l d e c o m p o n e n te s ,d e in te r fa z , a r q u i
d e b e rá d i v id ir s e ló g ic a m e n t e e n e le m e n to s q u e r e a te c tó n ic o y d e d a to s . E s to s p r in c ip io s y c o n c e p to s s e
lic e n f u n c io n e s y s u b f u n c io n e s e s p e c í f ic a s . e s t u d ia n e n la s e c c ió n s ig u ie n te .
22 1
I N G E N IE RÍ A DEL SOF TW ARE . UN E N F O Q U E P R Á C T I C O
El diseño de softw are es tanto un proceso com o un E l diseño deberápresentar uniformidade integración.
modelo. El proceso de diseño es una secuencia de pasos Un diseño es uniforme si parece que fue una persona
que hacen posible que el diseñador describa todas los la que lo desarrolló por completo. Las reglas de estilo
aspectos del software que se va construir. Sin embargo, y de form ato deberán definirse para un equipo de
es im portante destacar que el proceso de diseño sim diseño antes de com enzar el trabajo sobre el diseño.
plem ente no es un recetario. Un conocimiento creativo, Un diseño se integra si se tiene cuidado a la hora de
experiencia en el tem a, un sentido de lo que hace que definir interfaces entre los componentes del diseño.
un software sea bueno, y un com prom iso general con E l diseño deberá estructurarse p a ra adm itir cam
la calidad son factores críticos de éxito para un diseño bios. Los conceptos de diseño estudiados en la sec
competente. ción siguiente hacen posible un diseño que logra este
El modelo de diseño es el equivalente a los planes principio.
de un arquitecto para una casa. Comienza representan El diseño deberá estructurar separa degradarsepoco
do la totalidad de todo lo que se va a construir (por ejem a poco, incluso cuando se enfrenta con datos, suce
plo, una representación en tres dim ensiones de la casa) sos o condiciones de operación aberrantes. Un soft
y refina lentamente lo que va a proporcionarla guía para ware bien diseñado no deberá nunca explotar como
construir cada detalle (por ejemplo, el diseño de fonta una «bomba». Deberá diseñarse para adaptarse a cir
nería). De m anera similar, el m odelo de diseño que se
cunstancias inusuales, y si debe term inar de funcio
crea para el softwareproporciona diversas visiones dife
nar, que lo haga de forma suave.
rentes de software de computadora.
Los principios básicos de diseño hacen posible que
el ingeniero del software navegue por el proceso de dise 9*»
ño. Davis [DAV95] sugiere un conjunto' de principios CLAVE
para el diseño del software, los cuales han sido adapta La consistencia del diseño y Id uniformidad es crucial
dos y ampliados en la lista siguiente: cuando se van a construir sistemas grandes. Se deber6
establecer un conjunto de reglas de diseño para el equipo
• En el proceso de diseño no deberá utilizarse «ore
del software antes de comenzar a trabajar.
jeras». Un buen diseñador deberá tener en cuenta
enfoques alternativos, ju zg an d o todos los que se E l diseño no es escribir código y escribir código no
basan en los requisitos del problem a, los recursos es diseñar. Incluso cuando se crean diseños proce-
disponibles para realizar el trabajo y los conceptos dimentales para componentes de programas, el nivel
de diseño presentados en la Sección 13.4. de abstracción del m odelo de diseño es m ayor que
• E l diseño deberá poderse rastrear hasta el modelo el código fuente. Las únicas decisiones de diseño
de análisis. Dado que un solo elem ento del modelo realizadas a nivel de codificación se enfrentan ccn
de diseño suele hacer un seguimiento de los m últi pequeños datos de im plementación que posibilitan
ples requisitos, es necesario tener un m edio de ras codificar el diseño procedimental.
trear cóm o se han satisfecho los requisitos por el E l diseño deberá evaluarse en fu n c ió n de la calidad
modelo de diseño. m ientras se va creando, no después de terminarlo.
• E l diseño no d eberá inventar nada que y a esté Para ayudar al diseñador en la evaluación de la cali
inventado. Los sistem as se construyen utilizando dad se dispone de conceptos de diseño (Sección 13.4)
un conjunto de patrones de diseño, m uchos de los y de m edidas de diseño (Capítulos 19y 24).
cuales probablem ente ya se han encontrado antes. E l diseño deberá revisarse p a ra minimizar los errores
Estos patrones deberán elegirse siem pre com o una conceptuales (semánticos). A veces existe la tenden
alternativa para reinventar. Hay poco tiem po y los cia de centrarse en minucias cuando se revisa el diseño,
recursos son lim itados. El tiem po de diseño se olvidándose del bosque por culpa de los árboles. Un
deberá invertir en la representación verdadera de
equipo de diseñadores deberá asegurarse de haber
ideas nuevas y en la integración de esos patrones afrontado los elementos conceptualesprincipales antes
que ya existen.
de preocuparse por la sintaxis del modelo del diseño.
• E l diseño deberá «minimizar la distancia intelec
tual» [DAV95] entre el software y el problem a como
si de la misma vida real se tratara. Es decir, la estruc C&3H
En et Capitulo 8 se presenta las directrices para llevar
tura del diseño del software (siempre que sea posi
a cabo revisiones de diseño efectivas.
ble) imita la estructura del dominio del problema.
www.FreeLibros.org
1 Aquí solo se destaca un peq u eñ o subconjunto de los principios
de diseño de Davis. Para m as información, véase [DAV95],
222
C A P I T U L O 13 C O N C E P T O S Y P R IN C IP IO S E E D ISE Ñ O
Cuando los princip io s de diseño descritos anterior ejem plo, velocidad, fiabilidad,grado de corrección, usa-
mente se aplican adecuadam ente, el ingeniero del soft bilidad)2. Los.factores de calidad internos tienen im p o r
ware crea un diseño que m u estra los factores de calidad ta n c ia p a ra los in g en iero s del so ftw a re . D esd e u n a
tanto internos com o externos [M EY 88]. L o sfa c to re s de perspectiva técnica conducen a un diseño de calidad alta.
calidad externos son esas propiedades del softw are que P ara lograr los factores de calidad internos, el diseñador
pueden ser observadas fácilm ente p o r los usuarios (por deberá com prender los conceptos de d iseño básicos.
www.FreeLibros.org
2 S i el C apítulo 19 se presen ta un estu d io m ás d etallado sobre
los factores de calidad.
223
I N G E N IE RÍ A DEL SOF TW ARE . UN EN F O Q U E P R A C T I C O
abstracción de datos para puerta acom pañaría a un c o n (o descripción de inform ación) que se define a un nivel
ju n to de atributos que d escriben esta pu erta (p o r ejem alto de abstracción. E sto es, la sentencia describe la fun
plo, tip o de puerta, d irección de apertura, m ecanism o ción o inform ación conceptualm ente, pero no propor
de apertura, peso, dim ensiones). Se puede seguir d icien ciona inform ación sobre el funcionam iento interno de
do que la ab stracción p rocedim ental abrir hace u so de la inform ación. El refinam iento hace que el diseñador
la inform ación co ntenida en los atributos de la abstrac trabaje sobre la sentencia original, proporcionando cada
ción de datos puerta. vez m ás detalles a m ed id a que van teniendo lugar suce
L a a b stra c c ió n de co n tro l es la te rc e ra fo rm a de sivam ente todos y cada uno de los refinam ientos (ela
ab stracció n que se u tiliza en el d iseñ o del softw are. A l boración).
igual que las abstracciones p rocedim entales y de datos,
este tip o de abstracción im plica un m ecanism o de c o n 13.4.3. M odularidad
trol de p ro g ram a sin especificar los d ato s internos. U n
eje m p lo de a b stracció n de co n tro l es el se m á fo ro de El concepto de m odularidad se h a ido exponiendo des
sin c ro n iz a c ió n [K A I83] que se u tiliz a p a ra co o rd in ar de hace casi cin co d écadas en el softw are de com puta
las activ id ad es en un sistem a op erativ o . E l co n cepto dora. L a a rq u ite ctu ra de co m p u ta d o ra (d escrita en la
de ab stracció n de co n tro l se e stu d ia b rev em en te en el S e cc ió n 13.4.4) e x p re sa la m o d u larid ad ; es decir, el
C ap ítu lo 14. softw are se d ivide en com ponentes nom brados y abor
dados p o r separado, llam ad o s frecu en tem en te módu
los, que se in teg ran para satisface r los requisitos del
13.4.2. R efinam iento problem a.
El refinam iento p a s o a p a s o es una estrateg ia de diseño Se ha afirm ado que «la m odularidad es el Único atri
descendente propuesta originalm ente po r N iklaus W irth buto del softw are que perm ite g estio n a r un program a
[W IR 71]. El d esarrollo de un pro g ram a se realiza re ti intelectualm ente»[M Y E 78], El softw are m onolítico (es
nando sucesivam ente los niveles de detalle procedim en- decir, un program a grande form ado por un Único módu
tales. U na je ra rq u ía se desarro lla descom poniendo una lo) no puede ser entendido fácilm ente p o r el lector. La
sentencia m acroscópica de función (una abstracción p ro cantidad de rutas de control, la am plitud de referencias,
cedim ental) paso a paso hasta alcanzar las sen tenciasdel la can tid ad de v ariab les y la co m p lejid ad global hará
lenguaje de program ación. W irth [W IR71] p roporciona que el entendim iento esté m uy cerca de ser imposible.
una visión general de este concepto: P ara ilustrar este p u n to , tom em os en consideración el
siguiente argum ento basado en observaciones humanas
E n cada paso (del refinam iento), se descom pone una o varias
sobre la resolución de problem as.
instrucciones del program a dado en instrucciones m ás detalla
das. E sta descom posición sucesiva o refinam iento de especifi Pensem os que C(x) es una función que define la com
caciones term ina cuando todas las instrucciones se expresan plejidad percibida de un problem a x, y que E (x) es una
en función de cualquier com putadora subyacente o de cual función que define el esfuerzo (oportuno) que se requie
quier lenguaje de program ación.. .D e la m ism a m anera que se re para resolver un problem a x . Para dos p ro b lem as/^
refinan las tareas, los datos tam bién se tienen que refinar, des
y p 2, si
com poner o estructurar, y es natural refinar el program a y las
especificaciones de los datos en paralelo. C ( p j) > C ( p 2) ( I 3 .ia )
T odos los pasos del refinam iento im plican decisiones de im plica que
diseño. Es im portante q u e ... el program ador conozca los cri
E (p ]) > E ( p 2) (13.1b)
terios subyacentes (para decisiones de diseño) y la existencia
de soluciones alternativas., .
www.FreeLibros.org
El re fin a m ie n to v erd a d e ram e n te e s un p ro ceso de L a ecuación (13.2) im plica que la com plejidad per
elaboración. Se com ien za con u n a sentencia de función cib id a de un problem a que co m b in a p¡ y p 2 es mayor
224
C A P Í T U L O 13 C O N C E P T O S Y P R IN C IP IO S DE D ISE Ñ O
que la complejidad percibida cuando se considera cada ¿Cómo se puede evaluar un método
problema por separado. Teniendo en cuenta la ecuación
(13.2)y la condición implicada por la ecuación (13.1),
se establece que
E(P¡ + P 2) > E(P¡) + E(p2) ( 13-3)
• de diseño para determinar si va a
conducir a una modularidad efectiva?
www.FreeLibros.org
cinco criterios que nos permitirán evaluar un método de un aspecto modular a primera vista, se ha mantenido la
diseño en relación con la habilidad de definir un siste filosofía y el programa proporcionará los beneficios de
ma modular efectivo: un sistema modular.
225
INGENIERÍA DEL S O F TW A R E . UN EN F O Q U E P R Á C T I C O
www.FreeLibros.org
3 Por ejem plo, los com p o n en tes a rq u itectó n ico s de un sistem a
cliente/servidor se representan en un nivel de abstracción diferente.
P ara m ás detalles véase el Capítulo 28.
226
C A P Í T U L O 13 C O N C E P T O S Y P R IN C IP IO S DE D ISE Ñ O
Para representar la jerarquía control de aquellos esti La j erarquía de control tam bién representa dos carac
los arquitectónicos que se avienen a la representación se terísticas sutiles diferentes de la arquitectura del soft
utiliza un conjunto de notaciones diferentes. El diagra ware: visibilidad y conectividad. La visibilidad indica
ma más com ún es el de forma de árbol (Fig. 13.3) que el conjunto de componentes de program a que un com
representa el control jerárquico para las arquitecturas de ponente dado puede invocar o utilizar como datos, inclu
llamada y de retom o4. Sin embargo, otras notaciones, so cuando se lleva a cabo indirectamente. Por ejem plo,
tales como los diagram as de W am ier-O rr [ORR77] y un módulo en un sistema orientado a objetos puede acce
Jackson [JAC83] tam bién se pueden utilizar con igual der al amplio abanico de objetos de datos que haya here
efectividad. Con objeto de facilitar estudios posteriores dado, ahora bien solo utiliza una pequeña cantidad de
de estructura, definiremos una serie de m edidas y térm i estos objetos de datos. Todos los objetos son visibles
nos simples. Según la Figura 13.3, laprofundidad y la para el módulo. La conectividad indica el conjunto de
anchura proporcionan una indicación de la cantidad de componentes que un componente dado invoca o utiliza
niveles de control y el ámbito de control global, respec directam ente com o datos. Por ejem plo, un m ódulo que
tivamente. El grado de salida es una m edida del núm e hace directam ente que otro m ódulo em piece la ejecu
ro de módulos que se controlan directam ente con otro ción está conectado a él5.
módulo. El grado de entrada indica la cantidad de m ódu
los que controlan directam ente un módulo dado.
13.4.6. D iv isió n estru ctu ral
Si el estilo arquitectónico de un sistem a esjerárquico,
la estructura del program a se puede dividir tanto h ori
zontal com o verticalmente. En la Figura 13.4.a la par
tición horizontal define ramas separadas de lajerarquía
m odular para cada función principal del programa. Lo
m ódulos de control, representados con un som breado
m ás oscuro se utilizan para coordinar la com unicación
entre ellos y la ejecución de las funciones. El enfoque
m ás simple de la división horizontal define tres parti
ciones - e n tr a d a , transform ación de datos (frecuente
m ente llamado procesam iento) y salida— . La división
horizontal de la arquitectura proporciona diferentes
ventajas:
FIGURA 1 3.3. Term inologías de estructura para un estilo ■ proporciona software m ás fácil de probar
arquitectónico de llam ada y retorno.
. conduce a un software m ás fácil de m antener
La relación de control entre los m ódulos se expresa • propaga m enos efectos secundarios
de la manera siguiente: se dice que un m ódulo que con
trola otro m ódulo es superior a él, e inversamente, se . proporciona software m ás fácil de ampliar
dice que un m ódulo controlado por otro m ódulo es
subordinado del controlador [YOU79]. Por ejemplo, en
¿Cuáles son las ventajas
la Figura 13.3 el m ódulo M es superior a los módulos
a, b y c. El m ódulo h está subordinado al m ódulo e y
por Ultimo está subordinado al m ódulo M. Las relacio
• de la partidón horizontal?
nes en anchura (por ejemplo, entre los m ódulos d y e ) , Com o las funciones principales se desacoplan las
aunque en la práctica se puedan expresar, no tienen que unas de las otras, el cam bio tiende a ser m enos com
definirse con term inología explícita. plejo y las extensiones del sistema (algo muy com ún)
tienden a ser m ás fáciles de llevar a cabo sin efectos
secundarios. En la parte negativa la división horizontal
suele hacer que los datos pasen a través de interfaces de
Si desarrollamos un software orientado o objetos,
no se aplicarán los medidos estructurales destacadas
m ódulos y que puedan com plicar el control global del
aquí. Sin embargo, se aplicarán otros (las que se flujo del program a (si se requiere un m ovimiento rápi
abordan en lo Porte Cuarta). do de una función a otra).
4 Una arquitectura de llamada y de retorno (Capítulo 14)es una estruc 5 En el Capítulo 20, explorarem os el concepto de herencia para el
tura de program a clásica que descom pone la función en una je ra r softw are orientado a objetos. Un com ponente de program a puede
www.FreeLibros.org
quía de control en donde el program a «principal» invoca un núm ero heredar una lógica de control y /o datos de otro com ponente sin refe
de com ponentes de program a que a su vez pueden invocar aún a rencia explícita en el código fuente. Los com p o n en tes de este tipo
otros com ponentes. serán visibles, pero no e stará n c o n ec ta d o s directam en te. Un dia
gram a de estructuras (Capítulo 14) indica la conectividad.
227
INGE NIE RÍ A DEL SO FT W AR E. UN E N F O Q U E P R Á C T I C O
L a división vertical (Fig. 13.4.b), frecuentem ente 11a- L a estructura dicta las alternativas de organización,
m ada facto riza ció n (factoring) sugiere que dentro de la m étodos de acceso, grado de capacidad de asociación
estructura de program a el control (tom a de decisiones)y y p ro cesam ien to de la in form ación. Se han dedicado
el trabajo se distribuyan de m an era descendente. Los lib ro s e n te ro s (p o r e je m p lo , [A H 0 8 3 ], [K RU 84],
módulos del nivel superior deberán llevar a cabo fu n cio [G A N 89]) a estos tem as, y un estudio m ás am plio sobre
nes de control y no realizarán m ucho trabajo de procesa este te m a q u e d a fu e ra del á m b ito d e e ste libro. Sin
miento. L os m ódulos que residen en la parte inferior de em bargo, es im p o rtan te en te n d er la disponibilidad de
la estructura d eberán ser los trab ajad o res, aquellos que m éto d o s clásico s para o rg an iz ar la in fo rm ació n y los
realizan todas las tareas de entrada, proceso y salida. conceptos que subyacen a las jerarq u ías de inform ación.
L a naturaleza del cam bio en las estructuras de progra- La organización y com plejidad de una estructura de
m asjustifica la necesidad de la división vertical. En la Figu datos están lim itados U nicam ente po r la ingenuidad del
ra 13.4b se puede observar que un cam bio en un m ódulo diseñador. Sin em bargo, existe un núm ero lim itado de
de control (parte superior de la estructura) tendrá una pro estructuras de datos clásicas que com ponen los bloques
babilid ad m ay o r de p ro p ag ar efectos secundarios a los de construcción para estructuras m ás sofisticadas.
m ódulos subordinados a él. U n cam bio en el m ódulo de
trabajador, dado su nivel bajo en la estructura, es m enos
probable que propague efectos secundanos.E n general, los
cambios en los program as de com putadora giran alrededor
del programa (es decir, su com portam ientobásico es m enos
probable que cam bie). Por esta razón las estructuras con
división vertical son menos susceptibles a los efectos secun
darios cuando se producen cam bios y p or tanto se podrán U n e lem e n to esca la r es la estru ctu ra de datos más
m antener m ejor - u n factor de calidad clave— . sim ple. C om o su no m b re in d ica, u n elem en to escalar
rep re sen ta un solo elem en to d e in fo rm a ció n que pue
de ser tra tad o p o r un id en tificad o r; es decir, se puede
lo g ra r a c c e so e s p e c ific a n d o un so la d ire c c ió n en
CLAVE m em oria. E l tam añ o y fo rm ato de un elem en to esca
los módulos de «trabajador» tienden a cambiar de forma lar puede v a ria r d en tro de los lím ites que d ic ta el len
más frecuente que los módulos de control. SI se colocan g u a je d e p ro g ra m a c ió n . P o r e je m p lo , u n elem ento
en la parte Inferior de la estructura, se reducen los efectos escalar puede ser: u n a entidad lógica de u n bit de tam a
secundarios (originados por el cambio).
ñ o ; un en tero o nú m ero de co m a flo tan te con un tam a
ño de 8 a 64 bits; u n a c ad en a de caracteres de cientos
13.4.7. E s tr u c tu r a d e d a to s o m iles de bytes.
C uando los elem entos escalares se organizan como
La estructura de datos es u n a represen tació n de la rela
una lista o grupo contiguo, se form a un vector secuen-
ción lógica entre elem entos individ u alesd e datos. C om o
cial. Los vectores son las estructuras de datos m ás comu
la estru ctu ra de la inform ación afectará in v ariab lem en
nes y abren la p u e rta a la in d e x a c ió n v a ria b le de la
te al diseño procedim ental final, la estructura de datos
inform ación.
es tan im portante com o la estru ctu ra de pro g ram a para
C uando el v ector secuencia1 se am plía a dos, tres y
la represen tació n de la arquitectura del softw are.
po r últim o a un nú m ero arb itrario de dim ensiones, se
Función 1 Función crea un espacio n-dim ensioncd. El espacio n-dimensio-
nal m ás com ún es la m atriz bidim ensional. E n muchos
lenguajes de program ación, un esp acio n-dim ensional
se llam a array.
Los elem entos, vectores y espacios pueden estar orga
u& u F u n c ió n 3
(a) D ivisión horizontal
nizados en diversos form atos. U na lista enlazada es una
estructura de datos que o rganiza elem entos escalares no
c o n tig u o s, v ecto res o esp a c io s de m a n e ra (llam ados
nodos) que les p erm ita ser procesados com o una lista.
M ódulos
d e tom a
C ada nodo contiene la organización de datos adecuada
de decisiones (por ejem plo, un vector) o un puntero o m ás que indi
can la dirección de alm acenam iento del siguiente nodo
de la lista. Se pueden añ ad ir nodos en c u alq u ie r p un
to de la lista para adaptar una entrada n u eva en la lista.
M ódulos O tras estructuras de datos incorporan o se constru
www.FreeLibros.org
de «trabajo y en m ed ian te las e stru ctu ras de d ato s fundam entales
(b ) D ivisión V ertical descritas anteriorm ente. Por ejem plo, una estructura de
F IG U R A 1 3 .4 . Partición estructural. d a to s je r á r q u ic a se im p lem en ta m ed ian te listas mul-
228
CA P Í T U L O 13 C O N C E P T O S Y P R IN C IP IO S DE D ISE N O
www.FreeLibros.org
6 Esto no es verdad para to d as las estructuras arquitectónicas, Por
ejemplo, la estratificaciónjerárquica de procedimientos no se encuen
tra en arquitecturas orientadas a objetos.
229
INGENI ER ÍA DEL S O F T W A R E . UN EN F O Q U E P R Á C T I C O
sión» a u n a in te ra c c ió n e x c e s iv a c o n o tro s m ódulos. tiene tareas que están relacionadas entre sí p o r el hecho
D icho de o tra m anera, querem os d iseñar el softw are de de que todas deben ser ejecutadas en el m ism o interva
m anera que cada m ódulo trate un a subfunción de req u i lo de tiem po, el m ódulo m u estra cohesión tem poral.
sitos y tenga una interfaz sencilla cuando se observa d es C om o ejem plo de b aja cohesión, tom em os en con
de otras partes de la estru ctu ra del program a. Es ju s to sideración un m ódulo que lleva a cabo un procesamiento
preguntarse p o r qué es im portante la independencia. El de erro res de un paquete de an álisis de ingeniería. El
softw are con una m odularidad efectiva, es decir, m ó d u m ódulo es invocado cu an d o los datos calculados exce
los independientes, es m ás fácil de desarro llar porque la d en los lím ites p reestab lecid o s. Se re aliz an las tareas
función se puede com partim entary las interfaces se sim siguientes: (1) calcula los datos com plem entarios basa
plifican (tengam os en consideración las ram ificaciones dos en los datos calculados originalm ente; (2) produce
cuan d o el d esarrollo se hace en equipo). L os m ódulos un inform e de errores (con contenido gráfico) en la esta
independientes son m ás fáciles de m an ten er (y probar) ción de trabajo del usuario; (3 ) realiza los cálculos de
porque se lim itan los efectos secundarios o riginados por seguim iento que h ay a pedido el usuario; (4 ) actualiza
m odificaciones de diseño/código; p o rq u e se reduce la u n a base de datos, y (5 ) activ a un m enú de selección
p ro p a g a c ió n de e rro re s; y p o rq u e e s p o sib le u tiliz a r para el siguiente procesam iento. A unque las tareas ante
m ódulos usables. E n resu m en , la in d e p e n d e n c ia fu n riores están po co relacionadas, ca d a una es una entidad
cional e s la clave p ara un b u en diseño y el diseño es la fu n c io n a l in d e p e n d ie n te que p o d rá re a liz a rs e m ejor
clave p ara la calidad del softw are. co m o un m ódulo separado. L a com binación de funcio
L a independencia se m ide m ediante dos criterios cu a n es en un solo m ó d u lo p u ede se rv ir sólo p a ra in cre
litativos: la co hesión y el acoplam iento. L a cohesión es m entar la probabilidad de propagación de errores cuando
una m ed id a de la fuerza relativ a funcional de un m ó d u se hace una m odificación a alguna de las tareas proce-
lo. E l a co p la m ien to e s u n a m ed id a de la independencia d im entales anteriorm ente m encionadas.
relativ a en tre los m ódulos.
/ S in \
^ c o p la m ie n to N
13.5.2. C o h e s ió n
L a co hesión e s una ex tensión natural del co n cep to de X
d irec to
'- - I
\
E structura D a to s a | In d ic a d o r
ocultación de inform ación descrito en la Sección 13.4.8. d e d a to s (v a ria b le s ) \ J d e c o n tro l
U n m ódulo cohesivo lleva a cabo una sola tarea dentro
de un procedim iento de softw are, lo cual requiere poca X ) Cp X) 1X1X I
interacció n con los p rocedim ientos que se llevan a cabo
en otras partes de u n program a. D icho de m an era sen
cilla, un m ó d u lo co h esiv o d e b e rá (id ealm en te) h acer
\ XÍpXl / A re a d e d a to s '-, y?
una sola cosa.
www.FreeLibros.org
tareas relacionadas lógicam ente (por ejem plo, un m ó d u y reconocer cu an d o hay p o ca cohesión para m odificar
lo que produce todas las salidas in d ep endientem entedel el diseño del softw are y conseguir una m ay o r in d epen
tipo) es lógicam ente cohesivo. C uando un m ódulo co n dencia funcional.
230
C A P Í T U L O 13 C O N C E P T O S Y P R IN C IP IO S EE D ISEÑ O
www.FreeLibros.org
estructura del p rogram a, se p u ed en ex p lo sio n a r o jj| formas,odecirqueunmúsico no
im p lo sio n a r los m ó d u lo s co n v istas a m e jo ra r la Mido sobre teoría musical.
in d ep en d en cia del m ódulo. U n m ó d u lo explosio- r a M Zsfcawtti ei al
231
INGENIERÍA DEL SO FTW A R E . UN E N F O Q U E P R Á C T IC O
www.FreeLibros.org
7 Un m ódulo de «caja negra, es una abstracción procedimental.
232
C A P Í T U L O 13 C O N C E P T O S Y P R I N C I P I O S DE DISE ÑO
f e ! » E L M O D E L O B E L P t 8 E » Q ______
Los principios y conceptos de diseño abordados en este nosotros querem os crear un d iseño de softw are que sea
capítulo establecen las bases p ara la creación del m o d e estable. C rea re m o s u n m o d elo de d ise ñ o que se ta m
lo de diseño que com prende rep resentaciones de datos, b alee fácilm en te c o n v ien to s de ca m b io al esta b lec er
arquitectura, in terfaces y com ponentes. A l igual que en u n a base a m p lia e n el diseñ o de datos, m ed ian te u n a
el m odelo de análisis anterior al m odelo, cad a una de reg ió n m e d ia estab le e n el diseñ o a rq u itectó n ico y de
estas rep resentaciones de diseño se en cuentran unidas in te rfa z , y u n a p a rte su p e rio r a p lic a n d o el d ise ñ o a
unas a otras y p o d rá n su frir un seg u im ien to h a sta los n iv el de com ponentes.
requisitos del softw are. L os m étodos que conducen a la creación del m o d e
En la F ig u ra 13.1, el m o d e lo d e d is e ñ o se re p re lo de d iseño se presentan en los C apítulos 14, 15, 16 y
sentó com o u n a p irám id e. E l sim b o lism o de e sta fo r 22 (para sistem as o rien tad o s a objetos). C ad a m éto d o
ma es im p o rta n te . U n a p irá m id e e s u n o b je to perm ite que el diseñador cree u n d iseño estable que se
extrem adam ente estab le con u n a base am p lia y con un ajuste a los co n cep to s fu n d am en tales que co n d u cen a
centro de g ra v e d a d b ajo . A l ig u a l q u e la p irá m id e , un softw are de alta calidad.
La E specificación d e l diseñ o a b o rd a d iferen tes asp e c de d ise ñ o p ro ced im e n tal para c o n v e rtir e s a e s tru c tu
tos del m odelo de d iseñ o y se c o m p le ta a m e d id a que ra en u n a d e scrip ció n estructural.
el diseñador re fin a su p ro p ia re p re se n ta ció n del so ft L a E s p e c ific a c ió n d e l d is e ñ o c o n tie n e u n a r e f e
ware. En p rim e r lu g ar, se d e sc rib e el ám b ito g lo b al ren cia cruzada de requisitos. E l pro p ó sito de e sta re fe
del esfu erzo re a liz a d o en e l d iseñ o . L a m a y o r p arte ren c ia c ru za d a (n o rm alm en te re p re se n ta d a c o m o u n a
de la in fo rm a c ió n q u e se p re s e n ta a q u í se d e riv a de m atriz sim ple) es: (1 ) e sta b le c e r que to d o s los re q u i
la E sp e c ific a c ió n d e l siste m a y del m o d e lo d e a n á sito s se satisfag a n m ed ian te el d ise ñ o del so ftw a re , y
lisis (E sp e c ific a c ió n de lo s r e q u isito s d e l so ftw a re ). ( 2 ) in d ic ar c u a le s so n lo s c o m p o n e n te s c rític o s p ara
A c o n tin u ació n , se e s p e c ific a el d is e ñ o de datos. la im p lem e n tac ió n de req u isito s específicos.
Se d efin en ta m b ié n la s e s tru c tu ra s d e la s b a s e s de E l p rim er paso e n el d e sa rro llo de la d o c u m e n ta
datos, c u a lq u ie r e s tr u c tu r a e x te r n a d e a rc h iv o s , ción de p ru eb as tam bién se encuentra den tro del d o c u
estructuras in te rn a s d e d a to s y u n a re fe re n c ia c r u z a m e n to del diseño. U n a vez que se han e sta b le c id o las
da que co n e c ta o b je to s d e d a to s c o n a rc h iv o s e s p e in terfaces y la e stru c tu ra de p ro g ra m a po d rem o s d esa
cíficos. rro lla r las lín e a s g en erales p a ra co m p ro b ar los m ó d u
El d iseñ o a rq u ite c tó n ic o in d ic a có m o se h a d e ri los in d iv id u a le s y la in te g ra ció n de to d o el paquete.
vado la a rq u ite c tu ra del p ro g ra m a del m o d elo de a n á E n algunos ca so s, e sta secció n se p o d rá b o rra r d e la
lisis. A dem ás, p ara rep resen tar la je ra rq u ía del m ódulo E sp e c ific a c ió n d e l diseño.
se utilizan g ráfico s de estru ctu ras. L as re stric c io n e s de d ise ñ o , ta le s co m o lim ita c io
nes físicas de m e m o ria o la n e ce sid a d de u n a in terfaz
ex te rn a e sp e c ia liz a d a , p o d rán d icta r re q u isito s e sp e
ciales p a ra en sam b la r o e m p aq u etar el softw are. C o n
sid e ra c io n e s e sp e c ia le s o rig in a d a s p o r la n e c e sid a d
de su p e rp o sic ió n de p ro g ra m a s, g estió n de m em o ria
v irtu al, p ro ce sam ie n to de a lta v e lo c id ad u o tro s fa c
Especificacióndel diseño del software to res p o d rá n o rig in ar m o d ific ac io n es e n d ise ñ o d e ri
vadas del flujo o estructura de la inform ación. A dem ás,
Se representa el diseño de interfaces internas y ex ter esta secció n describ e el en fo q u e que se u tiliz a rá p ara
nas de p rogram as y se describe u n diseño detallado de tra n sfe rir so ftw are al clien te.
la interfaz hom bre-m áquina. E n algunos casos, se podrá L a ú ltim a secció n d e la E sp e c ific a c ió n d e l d ise ñ o
representar un prototipo detallado del IG U . c o n tie n e d ato s co m p lem en tario s. T am b ién se p re se n
Los co m p o n en tes — elem en to sd e so ftw are que se tan descripciones de algoritm os, procedim ientos alte r
pueden tratar p o r sep arad o tales co m o subrutinas, fu n n ativos, datos tabulares, extractos de otros docum entos
ciones o p rocedim ientos — se d e sc rib e n in icialm en te y o tro tip o de in fo rm a ció n re le v a n te , to d o s m e d ia n te
con una n arrativ a de procesam ienfo en c u alq u ie r id io n o tas e sp eciales o ap éndices separados. S e rá a c o n se
ma (C astellano, Inglés). L a n arrativ a de p rocesam iento ja b le d esa rro llar un M a n u a l p r e lim in a r de O p e ra c io
www.FreeLibros.org
explica la fu n c ió n p ro c e d im e n ta l de u n c o m p o n e n te n e s /In s ta la c ió n e in c lu irlo c o m o a p é n d ic e p a ra la
(m ódulo). P o sterio rm en te, se u tiliz a u n a h erra m ien ta d o c u m en ta ció n del diseño.
233
I N GE NI E RÍ A DEL S OFT W ARE . UN E N F O Q U E P R Á C T I C O
I m ü Ü seis
El diseñ o es el n úcleo técnico de la ingeniería del soft visión global de la arquitectura del softw are, m ientras
w are. D urante el diseño se desarrollan, rev isan y do cu que el procedim iento proporciona el detalle necesario
m entan los refinam ientos progresivos de la estructura p a ra la im p le m en tac ió n de los algoritm os. L a oculta
de dato s, arquitectura, in terfaces y d ato s procedim en- ció n de inform ación y la independencia funcional pro
ta les de los c o m p o n e n te s del softw are. E l d ise ñ o da p orcionan la heurística para conseguir una m odularidad
com o resultado representaciones del softw are p ara ev a efectiva.
luar la calidad. C oncluirem osnuestro estudio de los fundam entos del
D urante las cuatro últim as décadas se han propuesto diseño con las palabras de G lendord M yers [MYE78]:
d ife re n te s p rin c ip io s y c o n c e p to s fu n d a m e n ta le s del
Intentamos resolver el problema dándonos prisa en el pro
d iseñ o del softw are. L os p rin c ip io s del d iseñ o sirven ceso de diseño de forma que quede el tiempo suficiente hasta
de gu ía al in g en iero del so ftw are a m edida que avan el final del proyecto como para descubrir los errores que se
za el p ro ceso de diseño. L os co n cep to s de d iseñ o p ro cometieron por correr en el proceso de diseño...
p o rc io n a n los c rite rio s b á sic o s p a ra la c a lid a d del
diseño. L a m oraleja es: ¡No te precipites durante el diseño!
L a m od u larid ad (tanto en el pro g ram a co m o en los M erece la pena esforzarse p o r un buen diseño.
datos) y el concepto de abstracción perm iten que el dise N o hem os term inado nuestro estudio sobre el dise
ñ ado r sim plifique y reutilice los com ponentes del soft ño. E n los capítulos siguientes, se abordan los métodos
ware. El refin am ien to p ro p o rcio n a un m ecanism o para de diseño. E stos m éto d o s co m b in ad o s con lo s funda
representar sucesiv ascap as de datos funcionales. El p ro m entos de este cap ítu lo , fo rm an la base de una visión
gram a y la estructura de datos contribuyen a ten er una com pleta del diseño del softw are.
BEFE&SNCIAS
[AH083] Aho, A.V.J., Hopcroft, y J. Ullmann, Data Struc- [JAC92] Jacobson, I., Object-Oriented Software Engineering,
tures andAlgorithms, Addison-Wesley, 1983. Addison-Wesley, 1992.
[BAS89] Bass,L.,P. Clementsy R. Kazman, Software Archi- [KRU84] Kruse R.L., Data Structures and Program Design,
tecture in Practice, Addison-Wesley, 1998. Prentice-Hall, 1984.
[BEL81] Belady, L., Foreword to Software Design: Methods [MCG91] M cGlaughlin, R., «Some Notes on Program
and Techniques (L.J. Peters, autor), Yourdon Press, 1981. Design», Software Engineering Notes, vol. 16,n.° 4, Octu
bre 1991, pp. 53-54.
[BR098] Brown, W.J. et al., Anti—
Patterns, Wiley, 1998.
[MYE78] Myers, G., CompositeStructuredDesign, VanNos-
[BUS96] Buschmann, F. et al., Pattem -O riented Software
trand, 1978.
Architecture, Wiley, 1996.
[MEY88] Meyer, B., Object-Oriented Software Construction,
[DAV95] Davis, A., 201 Principies o f Software Development,
Prentice-Hall, 1988.
McGraw-Hill, 1995.
[MIL72] Mills, H.D., «Mathematical Foundations for Struc
[DEN73] Dennis, J., «Modularity», in Advanced Course on
tured Programming», TechnicalReportFSC71-6012,IBM
Software Engineering, F.L. Bauer, ed., Springer-Verlag,
Corp., Federal Systems Division, Gaithersburg, Maryland,
Nueva York, 1973, pp. 128-182.
1972.
[GAM95] G am m a,E.,et al,DesignPatterns, Addison-Wes
[NAS73] Nassi, I., y B. Shneiderman, «Flowchart Techni
ley, 1995.
ques for Structured Programming», SIGPLAN Notices,
[GAN89] Gannet, G .,H andbook o f A lgorithm s and Data ACM, Agosto 1973.
Structures, 2.a ed, Addison-Wesley, 1989.
[ORR77] O n, K.T., Structured Systems Development, Your
[GAR95] Garlan, D., y M. Shaw, «An Introduction to Soft don Press, Nueva York, 1977.
ware Architecture», Advances in Software Engineering
[PAR72] Pamas, D.L.,«On Criteria to be used in Decompo-
and Knowledge Engineering, vol. 1, V. Ambriolay G. Tor sing Systems into Modules», CACM, vol. 14,n.° 1, Abril
tora (eds.), World Scientific Publishing Company, 1995. 1972, pp. 221-227.
[JAC75] Jackson, M . A Principies o f ProgramDesign, Aca- [ROS75] Ross, D., J. Goodenough y C. Irvíne, «Software
demic Press, 1975. Engineering: Process, Principies and Goals», IEEE Com
[JAC83] Jackson, M.A., System Development, Prentice-Hall, puter, vol. 8, n.° 5, Mayo 1975.
1983. [SHA95a] Shaw, M., y D. Garlan, «Formulations and For-
www.FreeLibros.org
[KAI83] Kaiser, S.H., The Design o f OperatingSystemsfor Small malisms in Software Architecture», Volunte 1000-Lectu-
Computer Systems, Wiley-Inerscience, 1983, pp. 594 ss. re Notes in Computer Science, Springer Verlag, 1995.
234
C A P Í T U L O 13 C O N C E P T O S Y P R IN C IP IO S DE D IS E Ñ O
[SHA95b] Shaw, M. et al., «Abstractions for Software Archi- [WAR74] Wamier, 1., Lógica! Constructionof Programs, Van
tecture and Toolsto SupporiThem», IEEE Truns. Software No strand-Reinhold, 1974.
Engineering, vol. 21, n.° 4, Abril 1995,pp. 314-335. [WAS83] Wasserman, A., «Information System Design
[SHA96] Shaw, M., y D. Garlan, Software Architecture, Methodology», in Software Design Techniques (P. Free-
Prentice-Hall, 1996. man y A. Wasserman, eds.), 4.a ed., IEEE Com puter
Society Press, 1983,p. 43.
[SOM96] Sommerville, I., Software Engineering, 3.a ed.,
Addison-Wesley, 1989. [WIR71] Wirth, N., «Program Developm ent by Stepwise
Refinement», C4CM, vol. 14,n.°4, 197l,pp.' 221-227.
[STE74] Stevens, W, G. Myers y L. Constantine, «Structu-
rcd Design», IBM Systems Journal, vol. 13,n.° 2, 1974, [YOU79] Yourdon, E., y L. Constantine, StructuredDesign,
pp. 115-139. Prentice-Hall, 1979.
B H B L 4 X Ü .V i l i t f e t iii>
13.1. Cuando se «escribe» un programa, ¿se está diseñan e. cualquier problema que hayan acordado usted y su pro
do software? ¿En qué se diferencia el diseño del software fesor.
de la codificación?
Conforme disminuye el grado de abstracción, su foco de
13.2. Desarrolle tres principios de diseño adicionales que atención puede disminuir de manera que en la última abs
añadir a los destacados en la Sección 13.3. tracción (código fuente) solo se necesite describir una úni
ca tarea.
13.3. Proporcione ejemplos de tres abstracciones de datos
y las abstracciones procedimentales que se pueden utilizar 13.8. Obtenga el trabajo original de Pamas [PAR72] y resu
para manipularlos. ma el ejemplo de software que utiliza el autor para ilustrar
la descom posición en m ódulos de un sistema. ¿Cómo se
13.4. Aplique un «enfoque de refinam iento paso a paso»
utiliza la ocultación de información para conseguir la des
para desarrollar tres niveles diferentes de abstracción pro-
composición?
cedimental para uno o más de los programas que se mues
tran a continuación: 13.9. Estudie la relación entre el concepto de ocultación de
a. Desarrolle un dispositivo para rellenar los cheques que, información como atributo de modularidad eficaz y el con
dada la cantidad numérica en pesetas, imprima la canti cepto de independencia del módulo.
dad en letra tal y como se requiere normalmente. 13.10. Revise algunos de los esfuerzos que haya realiza
b. Resuelva iterativamente las raíces de una ecuación trans do recientem ente en desarrollar un software y realice un
cendental. análisis de los grados de cada m ódulo (con una escala
ascendente del 1 al 7). Obtenga los m ejores y los peores
c. Desarrolle un simple algoritmo de planificación round- ejemplos.
robin para un sistema operativo
13.11. Un grupo de lenguajes de programación de alto nivel
13.5. ¿Es posible que haya algún caso en que la ecuación soporta el procedimiento interno como construcción modu
(13.2) no sea verdad? ¿Cómo podría afectar este caso a la lar. ¿Cómo afecta esta construcción al acoplamiento y a la
modularidad? ocultación de información?
13.6. ¿Cuándo deberá im plem entarse un diseño m odular 13.12. ¿Qué relación tienen los conceptos de acoplamien
ccmo un software m onolítico? ¿Cómo se puede llevar a to y de movilidad del software? Proporcione ejemplos que
cabo? ¿Es el rendim iento la única ju stificación para la apoyen esta relación.
implementación de software monolítico?
13.13. Haga un estudio de la manera en que ayuda la par
13.7. Desarrolle al menos cinco niveles de abstracción para tición estructural para ayudar a mantener el software.
uno de los problemas de software siguientes:
13.14. ¿Cuál es el propósito de desarrollar una estmctura
a. un vídeo-juego de su elección. de programa descompuesta en factores?
b. un software de transformación en tres dimensiones para
13.15. Describa el concepto de ocultación de información
aplicaciones gráficas de computador. con sus propias palabras.
c. un intérprete de lenguajes de programación.
13.16. ¿Por qué es una buena idea m antener el efecto de
d. un controlador de un robot con dos grados de libertad. alcance de un módulo dentro de su alcance de control?
www.FreeLibros.org 235
ING EN IE RÍA DEL S O F TW A RE . UN E N F O Q U E P R Á C T I C O
www.FreeLibros.org 236
C A P ÍT U L O
D IS E Ñ O A R Q U IT E C T Ó N IC O
E nes de la estructura de los datos, la estructura del program a, las características de la inter
faz y los detalles procedimentales desde los requisitos de la información. Esta descripción
es ampliada por Freeman [FRE80]:
E l d ise ñ o es una actividad en la que se to m an decisio n es im p o rtan tes, frecu en tem en te d e n a tu ra le z a
estructural. C om parte con la p ro g ram ació n un interés por la a b strac ció n de la re p re se n tac ió n d e la in fo r
m ación y de las secuencias de procesam iento, pero el nivel de d etalle es m uy d iferente en am bos casos. E l
d iseño co n stru y e re p resen tacio n es c oherentes y bien planificadas d e los p ro g ram as, con cen trán d o se en las
interrelaciones de los com p o n en tes de m ayor nivel y en las operacio n es ló g icas im p licad as en los niveles
in fe rio re s...
Como dijimos en el capítulo anterior, el diseño está dirigido por la información. Los m éto
dos de diseño del software se obtienen del estudio de cada uno de los tres dominios del m ode
lo de análisis. El dominio de los datos, el funcional y el de comportamiento sirven de directriz
para la creación del diseño.
En este capítulo se introducen los m étodos requeridos para la creación de «rep resen ta
ciones coherentes y bien planeadas» de los datos y las capas arquitectónicas del m odelo de
diseño. El objetivo es proporcionar un enfoque sistem ático para la o b ten ció n del diseño
arquitectónico — el anteproyecto prelim inar desde el que se construye el software— .
VISTAZO RÁPIDO
4%»é es? El diseño arquitectónico repre sitos derivados durante el análisis de el fin de obtener la estructura que
sente Sa estructura de los datos y los la ingeniería del sistema y de los mejor se ajusta a los requisitos del
componentes del programa que se requisitos del software. cliente y a las normas de calidad. Una
requieren para construir un sistema ¿Por q ué es im portante? En la sección vez que es seleccionada una de las
iwsado en computadora. Constituye Vistazo rápido del capítulo anterior pre alternativas, la arquitectura se elabo
el estilo arquitectónico que tendrá el guntamos: «No serias capaz de inten ra utilizando el método de diseño
sistema, la estructura y las propie tar construir una casa sin un plano, arquitectónico.
dades de los componentes que ese ¿verdad?» Tú tampoco comenzarías el ¿ C u á l e s e l p r o d u c to o b te n id o ?
sistema comprende, y las interrela- esbozo del plano por los bosquejos del Durante el diseño arquitectónico se
cíones que tienen lugar entre todos diseño de tuberías de la casa. Necesi crea un modelo de arquitectura que
los componentes arquitectónicos del tarlas ver la foto completa —la casa en abarca la arquitectura de datos y la
sistema. ai misma— antes de preocuparte por estructura del programa. Además, se
¿Quién lo h a ce? Aunque los ingenie los detalles. Esto es lo que el diseño describen las propiedades de los com
ros del software pueden diseñar tan arquitectónico hace —proporciona la ponentes y sus relaciones (interac
to los datos como la arquitectura, foto completa y asegura que lo estás ciones).
cuando se trata de construir sistemas haciendo bien —. ¿Cómo p u e d o e sta r se g u r o d e q u e
grandes y complejos, el trabajo es, a ¿C uáles <s»a. los p ases? El diseño arqui lo h e h e c h o c o r r e c ta m e n te ? En
menudo, asignado a especialistas. El tectónico comienza con el diseño de cada etapa, los productos resultantes
diseñador de una base de datos o ún datos y después procede a la deriva del diseño del software son revisados
almacén de datos crea la arquitectu ción de una o más representaciones de para clarificar, corregir, completar y
ra de datos para el sistema. El «arqui- la estructura arquitectónica del siste dar consistencia acorde a los requi
iecto del sistema» selecciona un estilo ma. Los estilos arquitectónicos alter sitos establecidos, y entre unos y
arquitectónico apropiado a los requi nativos o patrones son analizados con otros.
www.FreeLibros.org 237
in g e n ie ría del so f t w a r e , un e n fo q u e p rá c tic o
Shaw y Garlan [SHA96], en su libro de referencia sobre alternativas arquitectónicasen u n a etapa en la cual hacer
la m ateria, tratan la arquitectura del softw are de la cam bios en el diseño es relativam entefácil, y (3) reducir
siguiente forma: los riesgos asociados a la construcción del software.
Incluso desde que el prim er program a fue dividido en m ódu
los, los sistemas de softw arehan tenido arquitecturas,y los pro-
g ram adoreshan sido responsablesde sus interaccionesa través
de m ódulos y de las propiedades globales de ensam blaje. H is
tóricam ente, las a rq u itectu ras han estado im p lícitas — bien
com o accidentes en la im plem entación, bien com o sistem as
legados del p a s a d o - . L os buenos desarrolladores de softw a
re han adoptado, a m enudo, uno o varios patrones arquitectó
nicos co m o e strateg ias de o rg an izació n del sistem a, pero
utilizaban estos patrones de m odo inform al y no tenían ningún L a definición presentada anteriorm ente enfatiza el,
interés en hacerlos explícitos en el sistem a resultante. papel de los «com ponentes del softw are» en cualquier
Hoy, la arquitectura de software operativa y su repre representación arquitectónica. E n el contexto del dise
sentación y diseño explícitos se han convertido en temas ñ o arquitectónico, un com ponente del softw are puede
dominantes de la ingeniería de software. ser tan sim ple com o un m ódulo de program a, pero tam
b ién puede ser algo tan com plicado co m o incluir bases
de datos y softw are interm edio («middleware») queper-
14.1.1. ¿Q u é e s a rq u itectu ra ?
m iten la configuración de u n a red de clien tes y servi
C uando hablam os de la «arquitectura» de un edificio, dores. Las propiedades de los com ponentes son aquellas
nos vienen a la cabeza diferentes atributos. A nivel más características necesarias para entender cóm o los com
básico, pensam os en la form a global de la estructura p o n en tes in te ra ctú a n con otros co m ponentes. A nivel
física. Pero, en realidad, la arquitectura es m ucho más. arquitectónico, no se especifican las propiedades inter
E s la form a en la que los diferentes com ponentes del nas (p o r ejem plo, detalles de un algoritm o). Las rela
edificio se integran para form ar un todo unido. Es la for ciones entre los com ponentes pueden ser tan sencillas
m a en la que el edificio encaja en su entorno y con los co m o u n a llam a d a de p ro c ed im ien to de un m ódulo a
otros edificios de su vecindad. Es el grado en el que el otro, o tan com plicadas com o el protocolo de acceso a
edificio consigue su propósito fijado y satisface las nece bases de datos.
sidades de sus propietarios. Es el sentido estético de la En este libro, el diseño de la arquitectura de software
estructura— el impacto visual del edificio— y el m odo tien e en c u en ta do s niveles de la p irám id e del diseño
en el que las texturas, los colores y lo s materiales son (Fig. 13.1)— el d iseño de datos y a rq u ite c tó n ic o -. En
combinados para crear la fachada extem a y el «entor este sentido, el diseñ o de datos nos facilita la represen
no vivo» interno. Son los pequeños detalles - e l dise tación de los com ponentes de datos de la arquitectura.
ñ o de las instalaciones eléctricas, del tipo de suelo, de E l diseño arquitectónico se centra en la representación
la colocación de tapices y una lista casi interminable — . de la e stru c tu ra de lo s co m p o n en tes del softw are, sus
Y, finalmente, es arte. propiedades e interacciones.
www.FreeLibros.org
es la representación que capacita al ingeniero del softw a pequeño e intelectualm ente com prensible de cómo
re para: (1) analizar la efectividad del diseño p ara la co n está estructurado el sistem a y de cóm o trabajan jun
secución de los requisitos fijados, (2) con sid erar las tos sus com ponentes» [BAS98],
238
CA P Í T U L O 14 DI SE ÑO A R Q U I T E C T Ó N I C O
! ■ : ; ..................■ - . tos
Al igual que otras actividades de la ingeniería del soft D urante m uchos años, la arquitectura de datos estu
ware, el diseño de d atos (a veces llam ado arquitectura vo lim itada, generalm ente, a las estructuras de datos a
de datos) crea un m odelo de datos y/o inform ación que nivel del p rogram a y a las bases de datos a nivel de apli
se representa con un alto n ivel de abstracción (la visión cación. P ero hoy, las em presas grandes y pequeñas están
de datos del cliente/usuario). E ste m odelo de datos, es in u n d a d a s de d ato s. N o es in u su a l, in c lu so p a ra u n a
entonces refinado en p ro gresivas representaciones esp e m ediana em presa, ten er docenas de bases de datos sir
cificas de la im plem entación, que p u ed en ser procesa viendo diferentes aplicaciones de cientos de gigabytes
das por un sistem a b asado en com putadora. E n m uchas de d ato s. E l d e sa fío de las e m p re sa s h a sido e x tra e r
aplicaciones de softw are, la arquitectura de datos ten inform ación útil de su entorno de datos, particu larm en
drá una gran influencia sobre la arquitectura del soft te cuando la inform ación deseada está funcionalm ente
ware que debe procesarlo. in te rre la cio n ad a (por e je m p lo , in fo rm ac ió n que sólo
La estru ctu ra de d a to s h a sid o sie m p re u n a p arte puede obtenerse si los datos de m arketing específicos
importante del diseño de softw are. A l nivel de los co m se cruzan con los datos de la ingeniería del producto).
ponentes del p rogram a, el d iseñ o de las e stru ctu ras de P ara resolver este d esafío, la com unidad de e m p re
datos y de los algoritm os asociados requeridos para su sas de T I h a d e sa rro lla d o las técn icas de m in e ría de
manipulación, son la p arte esen cial en la cre ac ió n de datos, ta m b ié n lla m a d a s d e sc u b rim ie n to de c o n o c i
aplicaciones de alta calidad. A n ivel de ap licación, la m iento en bases de datos (D C B C ), que navegan a tra
traducción de un m odelo de datos (derivado com o p ar vés de las bases de datos en un inten to p o r e x trae r el
te de la ingeniería de req u isito s) en u n a base de datos nivel de inform ación de negocio apropiado. Sin e m b a r
es el punto clave p ara a lcan zar los o b jetiv o s de n e g o go, la existencia de m últiples bases de datos, sus d ife
cio del sistem a. A n iv el de n e g o c io s, el c o n ju n to de rentes estru ctu ras, el grad o de detalle co n ten id o en las
iftformación a lm a c e n a d a en las d ife re n te s b a se s de bases de datos, y m uchos otros factores hacen d ifícil la
datos y reorganizada en el alm acén de d ato s facilita la m in e ría de d a to s d e n tro de un en to rn o co n b a se s de
tninería de datos o el d esc u b rim ie n to de c o n o cim ie n d ato s e x iste n te s. U n a so lu c ió n a lte rn a tiv a , lla m a d a
to que puede influ ir en el p ropio éx ito del negocio. De alm acén de datos, añade u n a cap a adicional a la a rq u i
cualquier m odo, el diseño de datos ju e g a un papel m uy tectu ra de datos.
importante.
14.2.1. M o d e la d o d e d a t o s , e s t r u c t u r a s d e d a t o s ,
b a se s d e d a to s y a lm a c é n d e d a to s
í
Para obtener Información actualizado sobre tecnologías
Los objetos de d ato s d efin id o s d u ran te el an álisis de
de olmocén de datos visitar:
tequisitos del softw are son m odelad o s u tilizando dia
www.datawarehouse.com
gramas de e n tid a d -re lac ió n y el d iccio n ario de d ato s
(Capítulo 12). L a actividad de diseño de datos traduce
fsos elem entos del m odelo de requisitos en estructuras U n alm a cén de datos es un e n to rn o de d ato s se p a
de datos a nivel de los com ponentes del softw are y, cuan rad o , que no e stá directam en te in teg rad o con las a p li
do es necesario, a arquitectura de base de datos a nivel caciones del día a día, p ero que abarca to d o s los d ato s
de aplicación. utilizad o s p o r una em p resa [M AT96], E n cierto se n ti
do, un alm acén de datos es una gran base de datos in d e
Q c ita : p e n d ie n te , que c o n tie n e a lg u n o s, p e ro n o to d o s lo s
datos alm acen ad o s en las b ases de datos que sirv en al
plfiéofcfcjd de los datos es lo que marca
conjunto de aplicaciones requeridas en un negocio. Sin
www.FreeLibros.org
llif e f e n c io entre un olmocén de datos
em bargo, hay m uchas características diferenciales entre
y ó it t e w e r o de dolos.
un a lm a c é n d e d a to s y u n a b ase d e d a to s típ ic a
fe w ft Rossoberg
[IN M 95]:
239
in g e n ie r ía del s o f t w a r e , un e n fo q u e pr a c tic o
O rie n ta ció n p o r m a te ria . Un almacén de datos y revisarse, las de objetos de datos deberían identifi
está organizado por las m aterias im portantes del carse, se deberían estudiar las organizaciones alter
negocio, más que por los procesos o funciones del nativas de datos y debería evaluarse el im pacto del
negocio. Esto nos lleva a una exclusión de datos que m odelado de datos sobre el diseño del software. P o r
podrían ser necesarios para una función particular ejem plo, la especificación de u n a lista enlazada con
del negocio, pero que generalmente no son necesa m últiples anillos puede satisfacer los requisitos de los
rios para la m inería de datos. datos pero puede llevar a un diseño del softw are poco
Integración. Sin tener en cuenta la fuente de datos, flexible. U n a organización de datos alternativa nos
da consistencia nom brar convenciones, unidades y po d ría llevar a obtener m ejores resultados.
medidas, estructuras de codificación y atributos físi
cos incluso cuando la inconsistencia existe a través de ¿Qué principios son aplicables
las diferentes bases de datos orientadas a aplicaciones. para el diseño de datos?
R estricciones de tiem po. Para un entorno de apli
cación orientado a transacción, los datos son precisos 2. Todas las estructuras de datos y las operaciones a lle
en el momento del acceso y por un periodo de tiempo var a cabo en cada una de ellas deberían estar clara
relativamente pequeño (normalmente de 60 a 90 días) mente identificadas. E l d iseño de u n a estructura de
antes del acceso. Sin embargo, en un almacén de datos, datos eficaz debe tener en cuenta las operaciones que
se accede a los datos en un m om ento específico del se van a llevar a cabo sobre dicha estructura de datos
tiem po (por ejemplo, los clientes con los que se ha (vea [A H 083]). P or ejem plo, im agínese una estruc
contactado el mismo día que el nuevo producto ha sido tura de datos h ech a con un conjunto de elementos de
anunciado en la prensa comercial). El horizonte típico datos diversos. L a estru ctu rad e datos se va a manipu
de tiem po de un almacén de datos es de 5 a 10 años. lar con varias funciones principales del software. Des
No v o latilidad. A diferencia de las típicas bases pués de la evaluación de la operación realizada sobre
de datos de aplicaciones de negocios que atraviesan la estructura de datos, se define un tipo de datos abs
una continua corriente de cambios (insertar, borrar, tracto para usarlo en el diseño del software subsiguiente.
actualizar), en el almacén de datos los datos se car L a especificación de los tipos de datos abstractospuede
gan, pero después de la prim era transferencia, los sim plificar considerablem enteel diseño del software.
datos no cambian. 3. Se debería establecer un diccionario de datos y
usarlo p a ra definir el diseño de los datos y delpro-
grama. El concepto de diccionario de datos se intro
CLAVE d u jo en el C ap ítu lo 12. U n d ic c io n a rio de datos
rep re se n ta ex p lícitam en te las re la cio n e s entre los
Un almacén de datos contiene todos los datos utilizados
en una empresa. Su objetivo es facilitar el acceso
objetos de datos y las restricciones de los elementos
a ((conocimiento)) que de otro modo no se dispondría. de una estructura de datos. L os algoritm os que deben
aprovecharse de estas relaciones específicas pueden
Estas características presentan un cuadro Único de definirse m ás fácilm ente si existe una especificación
desafíos de diseño para el arquitecto de datos. de datos tipo diccionario.
4. Las decisiones de diseño de datos de bajo nivel debe
14.2.2. D ise ñ o d e d a to s a n iv e l d e c o m p o n en te s rían dejarse p a ra elfin a l del proceso de diseño. Se
El diseño de datos a nivel de componentes se centra puede usar un proceso de refinamiento paso a paso para
en la representación de estructuras de datos a las que se el diseño de datos. Es decir, la organización general de
accede directamente a través de uno o m ás com ponen datos puede definirsedurante el análisis de requisitos;
tes del software. W asserman [WASSO] ha propuesto un refinarse durante los trabajos de diseño de datos y espe
conjunto de principios que pueden emplearse para espe cificarse en detalle durante el diseño a nivel de com
cificar y diseñar dicha estructura de datos. En realidad, ponentes. El enfoque descendentedel diseño de cfefca
el diseño de datos empieza durante la creación del m ode proporciona ventajas análogas al enfoque descendente
lo de análisis. Recordando que el análisis de requisitos del diseño de software: se diseñan y evalúan primera
y el diseño a m enudo se so lap an , consideram os el m ente los atributos estructuralesprincipales de manera
siguiente conjunto de principios [WASSO] para la espe que se pueda establecer la arquitectura de los datos.
cificación de datos: 5. L a representación de las estructuras de datos debe
rían conocerla sólo aquellos m ódulos que deban
1. Los principios del análisis sistemático aplicados a la hacer uso directo de los datos contenidos dentro de
fu n ció n y al comportamiento deberían aplicarse tam la estructura. E l c o n c e p to de o c u ltació n de infor
bién a los datos. Invertimos mucho tiempo y esfuerzo m ación y el concepto relacionado de acoplamiento
www.FreeLibros.org
en obtener, revisar y especificar los requisitos fun (C apítulo 13) p ro porciona u n a im portante visión de
cionales y el diseño preliminar. Las representaciones la c a lid a d del d ise ñ o del so ftw a re . E ste principio
de flujo de datos y contenido deberían desarrollarse alude a la im portancia de estos conceptos así como
240
C A P Í T U L O 14 D IS E Ñ O A R Q U I T E C T Ó N I C O
a «la im portancia de separar la v isió n lógica de un 7. Un diseño del softw are y un lenguaje de p ro g ra m a
objeto de datos de su v isió n física» [WASSO]. ción debería soportar la especificación y realización
6. Debería desarrollarse una biblioteca de estructuras de los tipos abstractos de datos. L a im plem entación
de datos útiles y de las operaciones que se les p u e de una estructura de datos sofisticada puede hacerse
den aplicar. L as estructuras de datos y las operacio excesivam ente difícil si no existen los m edios de esp e
nes d eberían c o n sid e ra rse co m o re c u rso s p a ra el cificación directa de la estructura en el lenguaje de pro
diseño del softw are. L as estructuras de datos pueden gram ación escogido para dicha im plem entación.
diseñarse p ara que se p u ed an reutilizar. U n a b ib lio L o s principios descritos anteriorm ente fo rm an una
teca de plantillas de estructuras de datos (tipos abs base para un enfoque de diseño de datos a nivel de co m
tractos de datos) puede red u cir el esfuerzo del diseño ponentes que puede integrarse en las fases de análisis y
y de la especificación de datos. diseño.
■ U fcUTll n a A R Q U IT E C T Ó N IC O S
www.FreeLibros.org
' Los términos estilos y patrones se utilizan indistintam ente en este
capítulo.
24 1
I N GEN IE RÍ A DEL SOF TW ARE . UN E N F O Q U E P R Á C T I C O
www.FreeLibros.org
• a rq u ite c tu ra s de lla m a d a de p ro c e d im ie n to rem oto:
lo s c o m p o n e n te s d e una a rq u ite c tu ra d e p ro g ra m a
p rincipal/subprogram a, e stán distribuidos e n tre v a ría s
co m p u tad o ras e n una red. F IG U R A 14.3. Arquitectura ectratificada.
242
C A PIT U L O 14 DI SE ÑO A R Q U I T E C T Ó N I C O
Los estilos arquitectónicos citados anteriorm ente son cuál es el papel de los com ponentes dentro de esajerarq u ía de
sólo una pequeña parte de los que dispone el diseñador control? ¿C óm o transfieren el control los com ponentes d e n
tro del sistem a? ¿C óm o se com parte el control entre co m p o
de softw are'. U n a v ez que la in g e n ie ría de req u isito s
nentes? ¿Cuál es la topología de control (por ej em plo, la form a
define las características y las restricciones del sistem a geom étrica3 que adopta el control)?, ¿Está el control sincro
que ha de ser construido, se esco g e el p atrón arquitec nizado o los com ponentes actúan asincrónicam ente?
tónico (estilo) o la co m b in ació n de p a tro n es (estilos)
que m ejor encajan con las características y restriccio ^ ¿Cómo se evalúa un estilo
nes. En m uchos casos, puede ser apropiado m ás de un W arquitectónico que se ha derivado?
patrón y se pod rían d iseñar y evalu ar estilos arquitec
D atos. ¿C óm o se co m u n ican los datos entre co m p o n e n
tónicos alternativos.
tes? ¿El flujo d e d atos es contin u o o son objetos de datos que
pasan de un com ponente a otro, o los d atos e stán disponibles
14.3.2. O rg a n iza ció n y re fin a m ie n to globalm ente para ser com partidos entre los com ponentes del
sistem a? ¿E xisten los com p o n en tes de datos (p o r e je m p lo ,
Puesto que el proceso de diseño d eja a m enudo al in g e una p izarra o alm acén ), y si es así, cuál es su papel? ¿C óm o
niero con un núm ero de alternativas arquitectónicas, es in te ra c tú a n los c o m p o n e n te s fu n c io n a le s c o n los co m p o
importante establecer un conjunto de criterios de d ise n entes de datos? ¿L os com p o n en tes de datos son activ o s o
ño que p u ed an ser u tiliz a d o s p a ra e v a lu a r un d iseñ o p asivos (p o r ejem p lo , los com p o n en tes de datos interactú an
a c tiv a m e n te c o n o tro s c o m p o n e n te s del siste m a )? ¿ C ó m o
arquitectónico derivado. L as sig u ie n te s c u e stio n e s
interactúan los datos y el control d entro del sistem a?
[BAS98] proporcio n an u n a idea del estilo arquitectó
nico que h a sido derivado: E stas preguntas proporcionan al diseñador una ev a
Control. ¿C óm o se gestiona el control dentro de la arqui luación tem prana de la calidad del diseño y sientan las
tectura? ¿Existe unajerarquía de control diferente, y si es así. bases para un análisis m ás detallado de la arquitectura.
Las preguntas citadas en la sección anterior pro p o rcio 2. Elicitación de requisitos. E sta inform ación es req u e
nan una ev aluación p relim in ar del estilo arquitectónico rid a com o parte de los requisitos de ingeniería y se
escogido p ara u n sistem a concreto. Sin em bargo, para utiliza para asegurarse de que todos los clientes, usua
la consecución efectiv a del diseño, se necesita un m éto rios y partícipes im plicados han sido atendidos.
do de ev aluación de la calidad de la arquitectura m ás
completo. E n las sig u ien tes seccio n es, co n sid eram o s
dos enfoques diferentes p ara el análisis de diseños arqui
tectónicos altern ativ o s. E l p rim e r e n fo q u e u tiliz a un Referencia Web
método iterativo p ara evalu ar el diseño de los com pro Se puede encontrar información detallada sobre análisis
misos. El segundo en fo q u e a p lica u n a p se u d o téc n ica de compromiso de software arqultectónlcoen:
cuantitativa para evaluar la calidad del diseño. www.sei.cmu.edu/ o t a / ata_method.html
www.FreeLibros.org
2Ver [SHA97], [BAS98] y [BUS98] para un estudio detallado de esti 3 Una jerarq u ía es una form a g eo m étrica, pero tam bién podem os
los y patrones arquitectónicos. e n c o n tra r m ecanism os de control se m ejan te s en un sistem a
c lie n te /se rv id o r.
243
I N GEN IE RÍ A DEL SOF TW AR E . UN EN FOQ UE P R Á C T I C O
4. Evaluar los atributos de calidad considerando cada Asada [SHA96] propone varios modelos simples para
atributo d efo rm a aislada. El n ú m ero de atributos ayudar al diseñador a determ inar el grado al cual una
de calid ad esco g id o s p a ra el an álisis d e p e n d e del arquitecturaparticular alcanza los criterios de «bondad»
tie m p o d isp o n ib le p a ra la re v isió n y del g rad o de predefinidos. Estos criterios, a veces llamados dimen
relev an cia de dichos atributos p ara el sistem a actual. siones d e l diseño, a m enudo abarcan los atributos de
Los atributos de calidad para la evaluación del diseño calidad definidos en la sección anterior: fiabilidad, ren
a rq u ite c tó n ic o in c lu y e n : fia b ilid a d , re n d im ie n to , dimiento, seguridad, facilidad de mantenim iento, flexi
seguridad, facilidad de m antenim iento, flexibilidad, bilidad, capacidad de prueba, movilidad, reutilización
capacid ad de prueba, m ovilidad, reu tilizació n e inte- e interoperatibilidad, entre otros.
roperatibilidad. El primer modelo, denominado análisis del espectro,
evalúa un diseño arquitectónicoen un espectro de «bon
5. Identificar la sensibilidad de los atributos de cali dad» desde el mejor diseño posible hasta el peor. Una vez
dad con los diferentes atributos arquitectónicos en que la arquitectura del software ha sido propuesta, se ana
nn estilo arquitectónico específico. E sto se puede liza asignando una «puntuación» a cada una de las
conseguir realizando p equeños cam bios en la arqui dim ensiones del diseño. Estas notas de las dimensiones
tectu ra y d eterm inando cuán sensibles al cam bio son se suman para determ inar la calificación total, S, del
los atributos de calidad, com o el rendim iento. A q u e diseño como un todo. Los casos de notas más bajas4 son
llo s atrib u to s afectad o s sig n ificativ am en te p o r un asignados a un diseño hipotético, y se computa la suma
cam bio en la arquitectura son denom inados puntos de notas de la peor arquitectura, S, La mejor nota.
sensibles. se com puta para un diseño óptim o5. Entonces calcu
6. A nálisis de las arquitecturas candidatas (desarro lamos el índice del espectro, 1 , mediante la ecuación:
lladas en el p a so 3)utilizando el análisis de sensi
l s = [ ( S - S J ( S h - S w) l ) x 1 0 0
bilidad del p a so 5 . El SEI describe este enfoque de
la siguiente form a [K A Z98]: El índice del espectro indica el grado al cual la arqui
Una vez determinados los puntos sensibles de la arquitec tectura propuesta se aproxima al sistema óptimo dentro
tura, encontrar los puntos de compromisoconsiste simplemente del espectro de alternativas razonables para el diseño.
en la identificación de los elementosarquitectónicos en los cua
les varios atributos son sensibles. Por ejemplo, el rendimiento
de una arquitectura cliente/servidor sena muy sensible al núme
ro de servidores (el rendimiento aumenta, dentro de un grado, ün doctor ¡Hiede enterrar sus errores,
aumentando en número de servidores). La disponibilidad de
fsetn d arquitecto sólo puede aconsejar
esa arquitectura también variaría directamente con el número
de servidores. Sin embargo, la seguridad del sistema variaría a s *¡ te te s que planten viñedos.
inversamente al número de servidores (porque el sistema con f r r ¡ tíoyd Wrigbt
tiene más puntos de ataque potenciales). El número de servi
dores, entonces, es un punto de compromiso con respecto a la Si se realizan m odificaciones del diseño propuesto
arquitectura. Este es un elemento, potencialmente uno de
o si se propone un nuevo diseño entero, los índices de
muchos, donde se harán los compromisos arquitectónicos,cons-
ciente o inconscientemente. espectro de ambos deben ser comparados y se compu
tará un índice de mejora, ¡me:
E sto s seis p aso s re p re se n ta n la p rim e ra iteració n
M A C A . Tras los resultados de los pasos 5 y 6 algunas
arquitecturas alternativas se elim in arían , u n a o v arias
Esto proporciona al diseñador una indicación relati
de las arquitecturas restantes serían m o dificadas y p re
va a la m ejora asociada con los cambios arquitectóni
sentadas con m ay o r detalle, y después los pasos M A C A
cos realizados o con la nueva arquitectura propuesta. Si
se aplicarían de nuevo.
Ime es positivo, entonces podemos concluir que el sis
tem a 1 ha sido m ejorado en relación al sistema 2.
14.4.2. G u í a c u a n t i t a t i v a p a r a e l d i s e ñ o a r q u i El análisis de selección del diseño es otro modelo
te c tó n ic o que requiere un cuadro de dim ensiones de diseño para
U no de los m uchos p roblem as con los que se enfrentan ser definido. La arquitectura propuesta es entonces eva
los ingenieros del softw are durante el p roceso de d ise luada para determ inar el núm ero de dim ensiones del
ño es la carencia general de m étodos cuantitativos para diseño que se logran cuando se com para con un siste
la ev aluación de la calidad de los diseños propuestos. m a ideal (el m ejor caso). Por ejem plo, si una arquitec
El enfoque M A C A recogido en la Sección 14.4.1 re p re tura propuesta alcanzara una reutilización de
senta u n enfoque innegablem ente cualitativo y útil para componentes excelente, y esta dim ensión es requerida
el análisis del diseño. para el sistem a ideal, la dim ensión de reutilización ha
www.FreeLibros.org
4 El diseño debe ser todavía aplicable al problem a actual, incluso á 5 El diseño seria Óptimo, pero las restricciones, los costes u otros fac
la solución no es particularm ente buena. tores no perm itirán su construcción.
244
C A P Í T U L O 14 DISEÑO A R Q U I T E C T Ó N I C O
s id o l o g r a d a . S i l a a r q u i t e c t u r a p r o p u e s t a t i e n e p o c a E l E D C e s b a s ta n te f á c il d e im p le m e n t a r c o m o u n
s e g u r id a d , y s e n e c e s i t a u n a g r a n s e g u r i d a d , n o s e h a m o d e lo d e h o ja d e c á lc u lo y p u e d e s e r u t iliz a d o p a r a
a lc a n z a d o l a d i m e n s i ó n d e l d i s e ñ o . a is la r p o r q u é u n c u a d r o d e a lte r n a tiv a s d e d is e ñ o o b t i e
n e u n a s n o ta s m e n o re s q u e o tro .
C a l c u l a m o s e l ín d ice de s e le c c ió n d e l d is e ñ o , d,
com o:
d=(NJNJxlOO 14.4.3. C o m p lejid a d a rq u itectó n ica
d c n d e A , e s e l n ú m e r o d e d im e n s io n e s d e d is e ñ o lo g r a P a r a e v a lu a r la c o m p le jid a d to ta l d e u n a a r q u it e c t u r a
d a s e n la a r q u i t e c t u r a p r o p u e s t a y I V , e s e l n ú m e r o t o t a l d a d a , u n a t é c n ic a ú t i l c o n s is te e n c o n s id e r a r la s r e l a
de d im e n s io n e s e n e l e s p a c io d e d is e ñ o . A m a y o r í n d i c io n e s d e d e p e n d e n c ia e n tr e lo s c o m p o n e n t e s d e la
ce de s e l e c c i ó n d e l d i s e ñ o , m á s c e r c a e s t a m o s d e q u e l a a r q u it e c t u r a . E s ta s r e la c io n e s d e d e p e n d e n c ia s o n c o n
a r q u it e c t u r a p r o p u e s t a a l c a n c e e l s i s t e m a i d e a l . d u c id a s a tr a v é s d e lo s f l u jo s d e in f o r m a c ió n / c o n t r o l
d e n t r o d e l s is t e m a .
E l análisis de contribución « i d e n t i f i c a la s r a z o n e s p o r
Z h a o [ Z H A 9 8 ] p r o p o n e tr e s tip o s d e d e p e n d e n c ia :
las q u e u n g r u p o d e a l t e r n a t i v a s d e d i s e ñ o o b t i e n e u n a s
D ependencias de com partim iento,representan las re la c io
n o ta s m e n o r e s q u e o t r o » . [ S H A 9 6 ] R e t o m a n d o e l e s t u
nes de dependencia entre los consum idores que u tilizan lo s
d io d e l despliegue de la fu n c ió n de calidad (D F C ) v i s m ism os recursos o los productores que producen para íos m is
to e n e l C a p í t u l o 1 1 , e l a n á l i s i s d e v a l o r s e r e a l i z a p a r a m os consum idores. P or ejem plo, tenem os dos com p o n en tes u
d e t e r m in a r l a p r i o r i d a d r e l a t i v a d e l o s r e q u i s i t o s d e t e r y v, si u y v se refieren a los mismos datos globales, entonces
m in a d o s d u r a n t e e l d e s p l i e g u e d e f u n c i o n e s , e l d e s p l i e existe una dependencia de compartim iento entre am bos.
g u e d e i n f o r m a c i ó n y e l d e s p lie g u e d e t a r e a s . S e i d e n t i f i c a D ependencias de flujo, representan las relaciones d e d e p en
un c o n ju n to d e « m e c a n is m o s d e r e a liz a c ió n » ( c a r a c te dencia entre los productores y los consum idores de recursos.
r ís tic a s d e l a a r q u i t e c t u r a ) . S e c r e a u n l i s t a d o c o n t o d o s P o r ejem plo, entre dos com ponentes u y v, si u debe c o m p le
tarse antes de que el control fluya a v (prerrequisito), 0 s¡ u y v
lo s r e q u is it o s d e l c l i e n t e ( d e t e r m i n a d o s a t r a v é s d e l D F C )
se com unican a través de parámetros, entonces existirá una rela
y u n a m a t r iz d e r e f e r e n c ia s c r u z a d a s . L a s c e ld a s d e la
ción de dependencia de flujo entre ambos.
m a t r iz i n d i c a n ( e n u n a e s c a l a d e l 1 a l 1 0 ) l a f u e r z a r e l a
t iv a d e l a r e l a c i ó n e n t r e u n m e c a n i s m o d e r e a l i z a c i ó n y D ependencias restrictivas, representan las restricciones de
un relativo flujo de control entre un cuadro de actividades. Por
un r e q u is it o p a r a c a d a a r q u it e c t u r a p r o p u e s t a . A e s to s e
ejem plo, dos com ponentes u y v, si u y v no se pueden e je c u
le c o n o c e c o m o espacio de diseño cuantificado (E D C ). tar al m ism o tiem po (por exclusión m utua), entonces existirá
una dependencia restrictiva entre u y v.
L a s d e p e n d e n c ia s d e c o m p a r t im ie n t o y d e f l u j o r e c o
g id a s p o r Z h a o s e p a r e c e n d e a lg u n a f o r m a a l c o n c e p
t o d e a c o p la m ie n t o v is t o e n e l C a p í t u lo 1 3 . E n e l
C a p í t u lo 1 9 s e e x p lic a r á n m e d ic io n e s s e n c illa s p a r a la
Hoja de cálculo DFC e v a l u a c i ó n d e la s d e p e n d e n c i a s .
www.FreeLibros.org
y retorno pueden residir dentro de otras arquitecturas m as sofistica
das vistas anteriorm ente en este capitulo. Por ejem p lo ,la arquitec
tura de uno o vanos com ponentesde una arquitectura cliente/servidor
podría ser de llam ada y retorno.
245
I N GEN IE RÍ A DEL S O F TW A RE . UN E N F O Q U E P R A C T I C O
[D A H 7 2 , L IN 7 9 ], S te v e n s, M y e rs y C o n sta n tin e
[STE74] p ro p u siero n el diseño del softw are b asado en c s a « E g g a
el fluyo de datos a trav és de un sistem a. L os prim eros Losdiogramos deflujo de datos se estudian en detalle
trabajos se refinaron y se presentaron en libros de M yers en el Capitulo 12.
[M Y E 78], Y ourdon y C onstantine [Y O U 79],
14.5.2. F lu jo d e t r a n s a c c ió n
¿Cuáles son los pasos
a seguir en la evaluación El m odelo fundam ental de sistem a im plica un flujo de
del DFD en una arquitectura de transform ación; p o r tanto, es posible caracterizar todo
llamada y retorno? el flujo de datos en esta categoría. Sin em bargo, el flu
j o de inform ación está caracterizado a m enudo por un
El diseño estructurado suele caracterizarse com o un único elem ento de datos, denom inado transacción, que
m étodo de diseño orientado al flujo de datos p orque per d esencadena otros flujos de inform ación a lo largo de
m ite u n a cóm o d a tran sició n desde el diagrama de f lu uno de los m uchos cam inos posibles. C uando un D F D
j o de datos ( DFD) a la a rq u ite c tu ra de so ftw are7. La to m a la form a m ostrada en la F igura 14.4, lo que tene
tran sició n desde el flujo de info rm ació n (representado m os es un flu jo de transacción.
co m o un diag ram a de flujo de datos) a u n a estructura
del p ro g ram a se realiza en un p roceso de seis pasos: (1)
se establece el tipo de flujo de inform ación; (2) se in d i
can los lím ites del flujo; (3) se convierte el D F D en la
e stru c tu ra del program a; (4) se d efin e la je ra rq u ía de
c o n tro l; (5 ) se re fin a la e s tru c tu ra re su lta n te usan d o
m edidas y h eur'sticas de diseño, y (6 ) se refina y e la
b o ra la d escripción arquitectónica.
El tipo de flujo de inform ación es lo que d eterm ina
el m étodo de co nversión requerido en el paso 3 . E n las
siguientes secciones exam inam os los d os tipos de flujo.
14.5.1. F lu jo d e tr a n s f o r m a c ió n
R etom ando el m odelo fundam ental de sistem a (nivel O
del d iag ram a de flu jo de d ato s), la in fo rm a c ió n debe
introducirse y obtenerse del softw are en fo rm a de «m u n
do exterior». P or ejem plo, los datos escritos con un tecla
do, los tonos en u n a línea telefónica, y las im ágenes de
vídeo en una aplicación m u ltim ed ia son todas form as de F IG U R A 1 4 .4 . Flujo de transacción.
inform ación del m u n d o exterior. T ales d ato s in tern o s
deb en convertirse a un form ato interno p ara el p ro cesa El flujo de transacción se caracteriza p o r datos que
m iento. La info rm ació n en tra en el sistem a a lo largo de se m ueven a lo largo de un cam ino de entrada que con
cam inos que tran sfo rm an los d ato s ex tern o s a un fo r vierte la inform ación del m u n d o e x terio r en una tran
m ato interno. E stos cam inos se identifican com oflujo de sacción. L a transacción se e v alú a y, basándose en ese
entrada. En el interio r del softw are se produce una tra n valor, se inicia el flujo a lo largo de uno de m uchos cami
sición. L a inform ación entrante se p asa a través de un nos de acción. El centro del flujo de inform ación del
centro de transformación y em pieza a m overse a lo lar que parten m uchos de los cam inos de acción se deno
go de cam in o s que ahora conducen h acia « fu era» del m in a centro de transacción.
softw are. L os datos que se m uev en a lo largo de estos D ebería recalcarse que dentro del D F D de un siste
cam inos se denom inan flujo de salida. El flujo general m a grande, am bos flujos de transacción y de transfor
de datos ocurre de m an era secuencial y sigue un, o unos m ac ió n pueden p resen tarse. P o r ejem plo, en un flujo
pocos, cam in o s8 «directos». C uando un segm ento de un orientado a transacción, el flujo de inform ación a lo lar
diag ram a de flujo de datos p resen ta estas características, go de un cam in o de acción puede ten er características
lo que tenem os presente es un flujo de transformación. de flujo de transform ación.
1 Debe recordarse que tam bién d urante el m odelado de análisis se 8 Un análisis obvio de este tipo de flujo de inform ación lo encontra
utilizan otros elem en to s del m étodo de análisis (por ejem plo; el m os en la Sección 14.3.1 en la arquitectura de flujo de datos. Sin
diccionario de datos, EP, EC). em bargo, hay m uchos casos en los que la arquitectura de flujo de
www.FreeLibros.org
datos no sería la m ejor elección para un sistem a complejo. Los ejem
plos incluyen sistem as que sufrirían cam bios sustanciales en el tiempo,
o sistem as en los cuales el procesam iento asociado con el flujo de
datos no es necesariam ente secuencial.
246
C A P Í T U L O 14 D IS E Ñ O A R Q U I T E C T Ó N I C O
El análisis de las transform aciones es un conjunto de de requisitos del software. Am bos documentos descri
pasos de diseño que permite convertirun DFD, con carac ben el flujo y la estructura de la inform ación en la inter
terísticas de flujo de transform ación, en un estilo arqui faz del software. Las Figuras 14.5 y 14.6 m uestran el
tectónico específico. En esta sección se describe el análisis nivel 0 y 1 del flujo de datos del software Hogarseguro.
de las transformaciones aplicando los pasos de diseño a Paso 2. Revisar y refinar los diagram as de flujo
un sistema de, por ejem plo, una parte del software de de datos del software. La inform ación obtenida de los
Hogarsegnro presentado en capítulos anteriores. modelos de análisis contenidos en la Especificación de
Requisitos del Software se refina para obtener m ayor
14.6.1. Un ejem p lo detalle. Por ejem plo, se exam ina el DFD del nivel 2 de
El sistema de seguridad Hogarsegnro, presentado ante m onitorizar sensores (Fig. 14.7) y se obtiene un d ia
riormente en este libro, es representativo de m uchos grama de flujo de datos de nivel 3 com o se m uestra en
productos y sistemas basados en com putadora actual la Figura 14.8. En el nivel 3, cada transform ación en
mente en uso. El producto vigila el m undo real y reac- el diagram a de flujo de datos presenta una cohesión
dcna ante cambios que encuentra. También interacciona relativam ente alta (Capítulo 13). Es decir, el proceso
con el usuario a través de una serie de entradas por tecla implicado por una transform ación realiza una función
do y visualizaciones alfanuméricas. El nivel 0 del dia única y distinta que puede im plem entarse com o un
grama de flujo de datos de H ogarsegnro, reproducido módulo' en el so \\ware HogarSeguro. Por tanto, el DFD
del Capítulo 12, se m uestra en la Figura 14.5. de la Figura 14.8 contiene suficiente detalle para esta
blecer un diseño «inicial» de la arquitectura del sub
sistema de m onitorizar sensores y continuam os sin más
Monitor
del
refinamiento.
panel
de control
\ de alarmo b
Si e I DFD es refinado más de uno vez, se esforzará por
Alarma 1
derivar burbujas que presentan gran cohesión.
www.FreeLibros.org
9 l a utilización del térm ino m ódulo en este capítulo equivale al tér
mino com ponente usado anteriorm ente en el estudio de la arquitec
tura de software.
247
IN GE NI ER ÍA DEL S O F T W A R E . UN EN F O Q U E P R A C T I C O
E valuando el D FD (Fig. 14.8), vem o s que los datos dos lím ites so m b read o s que van de arrib a abajo en el
entran al softw are p o r un cam ino de entrada y salen por dibujo. Se p o d ría arg u m en tar algún cam b io para rea
tres cam inos de salida. N o se distingue n in g ú n centro ju s ta r los lím ites (por ejem plo, se po d ría p roponer un
de tran sacció n (aunque la tran sfo rm ació n establecer las lím ite del flujo de entrada que separe leer sensores, de
condiciones de alarm a p o d ría p ercibirse com o tal). Por a d q u irir inform ación de respuesta). El énfasis en este
tanto, se asum irá u n a característica general de tran sfo r p aso del diseñ o debería ponerse en seleccionar límites
m ació n p ara el flujo de inform ación. razonables, en vez de largas disquisicionessobre la colo
cación de las separaciones.
P a so 5 . R e a liz a r u n a « d esc o m p o sició n d e prim er
n ivel». F a estructura del program a representa una dis
Órdenes y datos tribución descendente del control. L a descom posición
1 del usuaria,-
\ en partes provoca u n a estructura de p rogram a en la que
los m ódulos del nivel superior realizan la to m a de deci
Datos h. siones y los m ódulos del nivel inferior realizan la mayo
, - J e configuración \
/ / V .. Petición ■. ría del trabajo de entrada, cálculos y salida. L os módulos
| Interactuar Vde configuración i . ; >. , rr-i \
[con el usuarioj |informacion de conf^iguracionj de nivel interm edio realizan algún control y cantidades
Datos I
m oderadas de trabajo.
i — r Arranque/ f \ |y /n s a ie \ * * ••
|Contraseña\ parada ( “ var ¡ , ^ o n frg u ra c o n ,
fe^activaclói\ /
Información
I Procesar \Contraseña válida / Visualizar V is u a liz a Monitor
lia contraseña]................ ' mensajes üel pane?
\ y estado de control
\ V V Datos
\ configuración
información Alarma
del sensor
Monitorizar Tipo de alarma
Estado" l sensores
Id el sensor* Tonos
del número de teléfono
P a s o 4. A is la r el c e n tro d e tr a n s f o r m a c ió n e sp ec i
fic a n d o lo s lím ite s d e los flu jo s d e e n tr a d a y s a lid a .
En la sección precedente el flujo de entrada se describió
com o un cam ino en el que la inform ación se convierte
de form ato externo en interno; el flujo de salida convierte F IG U R A 1 4.7. Nivel 2 del DFD que refina el proceso
de form ato interno a externo. L os lím ites del flujo de de m onitorizar sensores
entrad a y el de salida son interpretables. E s decir, los
diseñadores p u ed en elegir p untos ligeram ente d iferen C uando encontram os un flujo de transform ación, un
tes com o lím ites de flujo. De hecho, se p u ed en obtener D FD se organiza en una estructura específica (una arqui
soluciones de diseño alternativas v ariando la posición tectura de llam ada y retorno) que p roporciona control
de los lím ites de flujo. A unque hay que ten er cu idado p ara el procesam iento de inform ación de entrada, trans
cuando se seleccionan los lím ites, u n a variació n de una form ación y de la salida. E sta descom posición en fac
b u rb u ja a lo largo de un cam ino de flujo ten d rá general to res o p rim e r n iv e l del su b siste m a de m onitorizar
m ente p oco im pacto en la estru ctu ra final del program a. sen sores se ilu stra en la F ig u ra 1 4 .9 . U n controlador
p rin c ip al, d en o m in ad o g e s to r d e m o n ito riz a c ió n de
se n so re s, reside en la parte superior de la estructura del
^ C O N S E JO ^ .
p rogram a y sirve para coordinar las siguientes funcio
Cambio lo situación de los fronteras de flujo en un nes de control subordinadas:
esfuerzo por explorar los estructuras de programa • un controlador de procesam iento de la inform ación de
alternativas. No llevo mucho tiempo y puede entrada denom inado controlador de la entrada del sen
proporcionarnos importantes ¡deas.
sor, coordínala recepción de todos los datos de entrada;
• un controlador del flujo de transform ación, denom i
L os lím ites de flujo del ejem plo se ilustran com o cu r nado controladorde las condiciones de alarm a, super
www.FreeLibros.org
vas som breadas que v an v erticales a través del flujo en visa todas las operaciones sobre los datos en su forma
la Figura 14.8. Las transfo rm acio n es(b u rb u jas) que fo r interna (por ejem plo; un m ódulo que invoca varios
m an el centro de tran sfo rm ació n se en cuentran entre los procedim ientos de transform ación de datos);
248
CA PÍ T U L O 14 DI SE ÑO A R Q U I T E C T Ó N I C O
Estado
del sensor
Código de la
condición de la alarma,
identificación del sensor, información
de temporización
Tonos
del número
de telefono
FIGURA 14.8. Nivel 3 del DFDde monitorizar sensores con los límites de flujo.
www.FreeLibros.org
duales (burbujas) de u n D F D en los m ó d u lo s c o rre s
pondientes dentro de la arquitectura. E m pezando desde F IG U R A 1 4.9. Descomposición de primer nivel
d límite del centro de tran sfo rm ació n y m oviéndonos para la monitorización de sensores.
249
ING EN IE RÍA DEL S O F TW A RE . UN EN F O Q U E P R Á C T I C O
h acia fuera a lo largo de los cam inos de entrada, y luego m iento pueden llevar a cam bios en la estructura, pero
de salida, las transform aciones se co nvierten en niveles puede servir co m o u n a prim era iteración del diseño.
subordinados de la estru ctu ra del softw are. El enfoque
general del segundo nivel de d escom posición del flujo
de datos H ogarSeguro se ilustra en la Figura 14.10.
Mantén bajos los controladores de trabajo en la estructura
A unque la F ig u ra 14.10 ilu stra u n a co rrespondencia
del programa. Así, la arquitectura seré más fácil de modificar.
u n a a u n o e n tre las tra n sfo rm a c io n es d el D F D y los
m ódulos del softw are, ocurren frecuentem ente d iferen
tes conversiones. Se pueden com binar dos o incluso tres L a descom posición de facto res de segundo nivel del
b u rb u jas y re p re se n ta rla s co m o u n so lo m ó d u lo flujo de entrada sigue de igual m anera. L a descompo
(teniendopresente los p roblem as potenciales de la co h e sición en factores se realiza de nuevo m oviéndose hacia
sión), o u n a sola b u rb u ja puede dividirse en dos o m ás fu e ra d e sd e el lím ite del c e n tro de transform ación
m ódulos. L as co nsideraciones p rácticas y las m edidas correspondiente al flujo de entrada. El centro de trans
de la calidad d ictan el resultado de la descom posición form ación del softw are del subsistem a de monitorizar
en facto res de seg u n d o nivel. L a rev isió n y el re fin a sensores se direcciona de m anera algo diferente. Cada
www.FreeLibros.org
F IG U R A 1 4 .1 0 . Descomposición de factores de segundo nivel de m onitorización de sensores.
250
C A P Í T U L O 14 DISEÑO A RQ U ITE C TÓ N IC O
conversión de datos o transform aciones de cálculo de El texto explicativo sirve com o una prim era genera
la porción de transform ación del DFD se convierte en ción de la especificaciónde diseño. Sin embargo, se dan
un módulo subordinado al controlador de transform a más refinamientos y adiciones regularm ente durante este
ción. En la Figura 14.11 se m uestra una estructura de periodo de diseño.
programa com pleta de prim era iteración. Paso 7. Refinar la estructura inicial de la arquitec
Los m ódulos direccionados de la m anera descrita tura usando heurísticas para mejorar la calidad del
anteriormente y m ostrados en la Figura 14.11 repre software. U na primera estructurade arquitectura siempre
sentan un diseño inicial de la estructura del programa. puede refmarse aplicando los conceptos de independen
Aunque los m ódulos se nom bran de m anera que indi cia de m ódulos (Capítulo 13). Los m ódulos se incremen
quen su función, se debería escribir para cada uno un tan o reducen para producir una descomposiciónrazonable,
breve texto que explique su procesam iento (adaptado buena cohesión, acoplamiento m ínim o y lo m ás im por
del EP creado durante la m odelación de análisis). El tante, una estructura que se pueda implementar sin difi
texto describe: cultad, probarse sin confusión y mantenerse sin problemas.
• la inform ación que entra y la que sale fuera del Los refinam ientos se rigen por el análisis y los m éto
módulo (una descripción de la interfaz); dos de evaluación descritos brevem ente en la Sección
• la inform ación que es retenida en el m ódulo, por 14.4, así com o por consideraciones prácticas y por el
sentido común. Hay veces, por ejemplo, que el contro
ejem plo, datos alm acenados en una estructura de
lador del flujo de datos de entrada es totalmente inne
datos local;
cesario, o se requiere cierto procesam iento de entrada
• una descripción procedim ental que indique los prin en un módulo subordinado al controlador de transfor
cipales puntos de decisión y las tareas; m ación, o no se puede evitar un alto acoplam iento
• un pequeño estudio de las restricciones y caracterís debido a datos generales,o no se pueden lograr las carac
ticas especiales (por ejem plo, archivo I/O, caracte terísticas estructurales óptim as (vea la Sección 13.6).
rísticas dependientes del hardw are, requisitos Los requisitos del software ju n to con el buen ju icio son
especiales de tiempo). los árbitros finales.
Gestor
de !a monitorización
de sensores
www.FreeLibros.org
FIGURA 1 4.11 . Primera iteración de la estructura del program a para m onitorízar sensores.
251
I N GEN IE RI A DEL S OFT W ARE . UN EN F O Q U E P R A C T I C O
Se pueden hacer muchas m odificaciones a la primera En la Figura 14.12 se m uestra la estructura del soft
estructura desarrollada para el subsistema de m onitori ware refinada del subsistema de m onitorizar sensores.
zar sensores de HogarSeguro. Algunas de ellas son: El objetivo de los siete puntos anteriores es desarro
1. El controlador del flujo de entrada se puede elim i llar una representación general del software. Es decir,
nar porque es innecesariocuando sólo hay que mane- una vez que se ha definido la estructura, podem os eva
ja r un solo camino de flujo de entrada. luar y refinar la arquitectura del software viéndola en
2. La subestructura generada del flujo de transform a su conjunto. Las m odificaciones hechas ahora requie
ción puede reducirse en el m ódulo establecer las ren poco trabajo adicional, pero pueden tener un gran
condiciones de alarm a (que incluirá ahora el pro im pacto en la calidad del software.
cesamiento implicado por seleccionar núm ero de El lector debería reflexionar un m om ento y consi
teléfono). El controlador de transform ación no será derar la diferencia entre el enfoque de diseño descri
necesario y la pequeña dism inución en la cohesión to anteriormente y el proceso de «escribir programas)).
es tolerable. Si el código es la única representación del software,
3. Los módulos dar formato de visualización y gene el desarrollador tendrá grandes dificultades en eva
rar la visualización pueden unirse (asumimos que dar luar o refinar a nivel general u holístico y, de hecho,
formato de visualización es bastante simple) en un tendrá dificultad para que «los árboles dejen ver el
nuevo módulo denominado producir visualización. bosque».
TR A N SA C C IO N ES
En m uchas aplicaciones software, un solo elem ento de 14.6. R efinando el flujo, se desarrolla un nivel 2 del
datos inicia uno o varios de los flujos de inform ación diagram a de flujo (también se crearían un diccionario
que llevan a cabo una función derivada por el elemento de datos correspondiente, EC y EP) que se muestra en
de datos iniciador. El elem ento de datos, denom inado la Figura 14.13.
transacción, y sus características de flujo correspon Como se m uestra en la figura, Ordenes y datos del
dientes se trataron en la Sección 14.5.2. En esta sec usuario fluye al sistema y provoca un flujo de infor
ción consideram os los pasos de diseño usados para m ación adicional a lo largo de uno de tres caminos de
tratar el flujo de transacción. acción. Un elemento de datos, tipo de o rd en ,hace que
el flujo de datos se expanda del centro. P or tanto, la
característica general del flujo de datos es de tipo tran
sacción.
Debería recalcarse que el flujo de inform ación a lo
largo de dos de los tres cam inos de acción acomodan
flujos de entrada adicionales (por ejemplo, parámetros
y datos del sistema son entradas en el camino de acción
a «configurar»). Todos los caminos de acción fluyen a
una sola transformación, mostrar mensajes y estado.
Le er I P ro d u c ir ■ G e n e ra r ■ E sta b le c er L
la c o n e x ió n 1 14.7.2. P a s o s d e l d is e ñ o
. s en s o res 1 v is u a liza c ió n 1 s eñ a l d e a la rm a 1
a la re d te le fó n ic a 1 Los pasos del diseño para el análisis de las transaccio
nes son similares y en algunos casos idénticos a los pasos
para el análisis de las transform aciones (Sección 14.6).
G e n e ra rp u ls o s |
La principal diferencia estriba en la conversión del DFD
e n la linea en la estructura del software.
Paso 1. R evisar el m odelo fundam ental del sis
F IG U R A 1 4 .1 2 . Estructura refinada del program a
tema.
para monitorizar sensores. Paso 2. Revisar y refinar los diagram as de flujo de
datos para el software.
14.7.1. Un eje m p lo Paso 3. Determ inar si el DFD tiene características
El análisis de las transacciones se ilustrará conside de flujo de transformación o de transacción.Los pasos
www.FreeLibros.org
rando el subsistema de interacción con el usuario del 1,2 y 3 son idénticos a los correspondientes pasos del
software HogarSeguro. El nivel 1 del flujo de datos de análisis de las transformaciones. El DFD m ostrado en la
este subsistem a se m uestra com o parte de la Figura Figura 14.13tiene la clásicacaracterísticade flujodetran-
252
C A P Í T U L O 14 DISEÑO A RQU ITE CTÓ NICO
Órdenes Datos
y datos Parámetros de configuración
del usuario y datos de sistema o n h r u tr »
Datos
de configuración
Contraseña
Mensaje de
«inténtelo de nuevo»
FIGURA 1 4.13 . Nivel 2 de DFD para el subsistema de interación del usuario con lím ites del flujo.
www.FreeLibros.org
sacción. E l f lu jo d e tra n s a c c ió n se c o n v ie r te e n u n a e l m is m o n o m b re . Los c o n tro la d o re s d e la c o n fig u r a
arq u ite c tu ra q u e c o n tie n e u n a r a m a d e e n tra d a y u n a c ió n d e l s is te m a y p ro c e s a m ie n to d e la c o n tra s e ñ a se
rama de d is trib u c ió n . L a e s tru c tu ra d e la ra m a d e e n tra d a o b tie n e n c o m o se in d ic a e n la F ig u ra 1 4.16 .
253
IN GE NI E RÍ A DEL S O F T W A R E . UN E N F O Q U E P R A C T I C O
Control
de transacción
Distribuidor
Camino
de recepción
www.FreeLibros.org
F IG U R A 1 4 .1 6 . Primera iteración de la estructura del program a del su b sic tem a interacción del u su ario.
254
C A P Í T U L O 14 DISEÑO ARQUITECTÓNICO
K 5. R E F I N A M I E N T O D E L D IS E A Q ARQ1
El éxito de la aplicación del análisis de transform ación o m em oria o de tiem po, la delim itación de los valores o
de transacción se co m plem entaañadiendo la d o cum enta cantidades de las estructuras de datos, los casos esp e
ción adicional requerida com o p arte del diseño arquitec ciales no considerados y las características específicas
tónico. D espués de h ab er d esa rro lla d o y refinado la de un m ódulo individual. El p ro p ó sito de una sección
estructura, se deben com pletar las siguientes tareas: restricciones/lim itaciones es re d u c ir el núm ero de erro
« se debe desarrollar una descripción del procesam iento res debidos a características fu n cio n ales asum idas.
para cada m ódulo. U na vez que se h a desarrollado la docum entación de
diseño para todos los m ódulos, se lleva a cabo una revisión
• se aporta u n a d esc rip c ió n de la in te rfaz p a ra ca d a
(vea las directrices de revisión en el C apítulo 8). L a revi
módulo.
sión hace hincapié en el seguim iento de los requisitos del
• se definen las estructuras de datos generales y locales.
soft waie, j calidad ^ ja arquitectura del programa, las d es'
• se anotan to d a s las lim ita c io n e s /re s tric c io n e s del
criDciones de las interfaces, las desciiDciones de las estruc
diseño. turas de datos, los datos prácticos de la im plem entación,la
• se lleva a cabo u n a rev isió n del diseño. capacidad de prueba y la facilidad de mantenimiento.
• se considera un « refinam iento»(si es n ecesario y está
justificado).
%
« ¿Qué pasa una vez que
W la arquitectura ha sido creada?
Documento del diseñode software.
Un tex to ex p lic a tiv o del p ro c e sa m ie n to es (id e al D ebe fom entarse el refinam iento de la arquitectura
mente) u n a d e lim ita d a d esc rip c ió n sin am big ü ed ad es del so ftw are d u ra n te las p rim e ra s e ta p a s d e l d iseño.
del p rocesam iento que ocurre dentro de u n m ódulo. L a C om o y a d ijim o s anterio rm en te en e ste c a p ítu lo , los
narrativa describe el procesam iento, las tareas, las deci- estilos arquitectónicos alternativos deben ser derivados,
sionesy la entrada/salida. L a d escripción de la interfaz refinados y ev alu ad o s para un «m ejor» enfoque. E ste
requiere el d ise ñ o de in te rfa c e s in te rn a s de m ó d u lo , enfoque de optim ización es uno de los verdaderos b en e
interfaces ex tern as del sistem a y la in te rfaz h o m bre- ficios derivados del desarrollo de la representación de
computadora (C apítulo 15).E l diseño de estructuras de la arquitectura del softw are.
datos puede ten er u n p rofundo im pacto en la arquitec Es im portante anotar que la sim plicidad estructural es,
tura y en los detalles p rocedim entales de cada c o m p o a m enudo, reflejo de eleganciay eficiencia. El refinamiento
nente del softw are. T a m b ié n se d o c u m e n ta n las del diseño debería luchar p o r obtener un pequeño núm e
www.FreeLibros.org
restriccio n es/lim itacio n es de ca d a m ó d u lo . A lgunos ro de m ódulos consecuentes a la m odularidad operativa
aspectos típicos que p u e d e n tra ta rse in cluyen: la re s y la estructura de datos m enos com pleja que sirva ade
tricción de tipo o form ato de datos, las lim itaciones de cuadam ente a los requisitos de inform ación.
255
IN GE NIE RÍA DEL SOF TW ARE . UN EN F O Q U E P R Á C T I C O
La arquitecturadel software nos proporciona una visión la eficacia de cada arquitectura propuesta. Esto se con
global del sistema a construir. Describe la estructura y sigue determ inando la sensibilidad de los atributos de
la organización de los componentes del software, sus calidad seleccionados (también llamados dimensiones
propiedades y las conexiones entre ellos. Los com po del diseño) con diferentes m ecanismos de realización
nentes del software incluyen m ódulos de program as y que reflejan las propiedades de la arquitectura.
varias representaciones de datos que son manipulados El m étodo de diseño arquitectónico presentado en
por el programa. Además, el diseño de datos es una par este capítulo utiliza las características del flujo de datos
te integral para la derivación de la arquitectura del soft descritas en el m odelo de análisis que derivan de un esti
ware. La arquitectura m arca decisiones de diseño lo arquitectónico utilizado com únm ente. El diagrama
tempranas y proporciona el m ecanismo para evaluar los de flujo de datos se descompone dentro de la estructu
beneficios de las estructuras de sistema alternativas. ra del sistema a través de dos enfoques de análisis—el
El diseño de datos traduce los objetos de datos defi análisis de las transform aciones y/o el análisis de las
nidos en el m odelo de análisis, en estructuras de datos transacciones — . Se aplica el análisis de las transfor
que residen dentro del software. Los atributos que des m aciones a un flujo de inform ación que presenta dife
cribe el objeto, las relaciones entre los objetos de datos rentes límites entre los datos de entrada y de salida. El
y su uso dentro del program a influyen en la elección de DFD se organiza en una estructura que asigna los con
la estructura de datos. A m ayor nivel de abstracción, el troles de entrada, procesam iento y salida a través de tres
diseño de datos conducirá a lo que se define como una jerarquías separadas de m ódulos de descomposición en
arquitectura para una base de datos o un almacén de datos. factores. El^ análisis de las transform aciones se aplica
El ingeniero del software cuenta con diferentes esti cuando un Único ítem de inform ación bifurca su flujo a
los y patrones arquitectónicos. Cada estilo describe una través de diferentes caminos. El DFD se organiza en
categoría de sistema que abarca un conjunto de com una estructura que asigna el control a una subestructu-
ponentes que realizan una función requerida por el sis ra que adquiere y evalúa la transacción. Otra subes-
tem a, un conjunto de conectores que posibilitan la tructura controla todas las acciones potenciales de
com unicación, la coordinación y cooperación entre los procesam iento basadas en la transacción. Una vez que
componentes, las restricciones que definen cómo se inte la arquitectura ha sido perfilada se elabora y se analiza
gran los componentes para conform ar el sistema, y los contrastándola con los criterios de calidad.
modelos semánticos que facilitan al diseñador el enten El diseño arquitectónico agrupa un grupo inicial d e
dimiento de todas las partes del sistema. actividades de diseño que conducen a un m odelo com
Han sido propuestos uno o varios estilos arquitectó pleto del diseño del software. En los siguientes capítu
nicos por sistema, y el m étodo de análisis de com pro los, se estudiará el diseño de las interfaces y de los
misos para la arquitectura podría utilizarse para evaluar componentes.
www.FreeLibros.org
[INM95] Inmon, W.EL, «What is a Data Warehouse?» Prism
Solutions, Inc. 1995, presentada en: [MYE78] Myers, G., Composite Structures Design, Van-
http://w w w .cait.w ustl.edu/cait/papers/prism /voll_nol. No strand, 1978.
256
CAPÍTULO 14 D IS E Ñ O A R Q U I T E C T Ó N I C O
[PET81] Peters, L.J., S oftw are D esig n : M eth ods an dT ech n i- [WAS80] W asserm an, A., «Principies o f S y stem atic Data
ques, Yourdon Press, Nueva York, 1981. D esign and Im plem entation», en S o ftw a re D e s ig n Tech-
[PRE98] Preiss, B.R. D a ta Structures a n d A lg o rith m s: With n iqu es (P. Freem an y A. W asserman, eds.), 3.a ed., IEEE
O h ject-O rien tedD esign P a ttern s in C + + , W iley, 1998. C om puter Society Press, 1980,pp. 287-293.
[SHA96] S haw ,M .,y D. (¡arlan. Sofhvare A rquitecture, Pren- [WIR71] W irth,N ., «Program Development by Stepw ise Refi-
tice Hall, 1996. ' nem ent», CACM , vol. 1 4,n.°4, 1971, pp. 221-227.
[SHA97] Shaw, M., y P. Clem ents, «A Field G uide to Boxo- [YOU79] Yourdon, E., y L. Constantine, Structures D e sig n ,
logy: Preliminary C lassificationof Architectural Styles for Prentice-Hall, 1979.
Software System s», P roc. C O M P S A C , W ashington DC,
Agosto 1997. [ZHA98] Zhao, J., «On Assessing the C om plexity o f S o ft
w are A rchitectures», P ro c. Intl. S o ftw a re A rc h ite c tu re
[STE74] Stevens, W., G. M yers y L. Constantine, «Structu- W orkshop, ACM , Orlando, Florida, 1998, pp. 163-167.
red D esign», IB M S ystem J o u rn a l, vol. 13, n.° 2, 1974,
pp. 115-139.
www.FreeLibros.org
ción que le sea familiar.
ño (Capítulo 8) para valorar la calidad de su diseño. Este pro
14.11. Algunos diseñadores defienden que todo el flujo de blem a debe asignarse a un eq uipo en vez de a un solo
, datos debe ser tratado com o orientado a transform aciones. individuo.
257
IN GE NI ER IA DEL S OFT W ARE . UN E N F O Q U E P R Á C T I C O
Durante la Última década han aparecido muchísimos libros Docenas de libros actuales, a menudo abordan el diseño
sobre arquitectura de software. Los libros de Shaw y Gannon de datos y el diseño de estructuras desde un contexto especí
[SHA96], Bass, Clementsy Kazman [BAS98] y Buschmann fico del lenguaje de programación. Algunos ejemplos típicos
y colaboradores[BUS98], proporcionan un tratamiento en los encontramos en:
profundidad sobre la materia. El primer trabajo de Garlan (An Horowitz, E. Y S. Sahni, Fundamentáis <±Data Structures
Introduction to Software Architecture, Software Engineering in Pascal, AI ed., W.H Freeman& Co., 1999.
Institute, CMU/SEI-94-TR-021,1994) proporciona una exce
Kingston, J.H., Algorithms and Data Structures: Design,
lente introducción al tema.
Correctness,Analysis,21 ed., Addison-Wesley, 1997.
Los libros específicos de implementación de arquitectu
ra, sitúan el diseño arquitectónico dentro de un entorno espe Main, M., Data Structures & Otlier Ohjects Using Java,
cífico de desarrollo o tecnología. Mowray (CORBA Design Addison-Wesley, 1998.
Patterns, Wiley, 1997)y Mark y colaboradores(ObjectMana- Preiss, B.R., Data Structures andAlgorithms: With Object-
gement Architecture Guide, Wiley, 1996) proporcionan pará OrientedDesign Patterns in C++, Wiley, 1998.
metros de diseño detallados para el marco de soporte de las Sedgew ick. R., ,4Igorithms inC++: Fundamentáis, Data
aplicaciones distribuidas de CORBA. Shanley (Protected Structures,Sorting, Searching, Addison-Wesley, 1999.
Mode Software Architecture, Addison-Wesley, 1996) pro Standish,T.A., Data Structures in Java, Addison-Wesley,
porciona una guía de diseño arquitectónico para aquellos que 1997.
diseñen sistemas operativos a tiempo real basados en com Standish,T.A., Data Structures, 1Igorithms, and Software
putadora, sistemas operativos multitarea o controladores de Principies in C, Addison-Wesley, 1995.
dispositivos.
Las investigaciones actuales sobre arquitectura de soft En la mayoría de los libros dedicados a la ingeniería de soft
ware están recogidas en el anuario Proceedings ofthe Inter ware se puede encontrar un tratamiento general del diseño del
national Workshopon SoftwareArchitecture, patrocinado por software en discusión con el diseño arquitectónicoy el diseño
la ACM y otras organizaciones de computadoras y en el Pro de datos. Los libros de Pfleeger (SoftwareEngineering:Theory
ceedings of the International Conference on Software Engi- and Practice, Prentice may, 1998) y Sommerville {Software
neering. Engineering, 5." ed., Addison-Wesley, 1995) son representati
El modelado de datos es un prerrequisito para un buen vos de los libros que cubren en detalle el tema del diseño.
diseño de datos. Los libros de Teory (Database Modeling Se puede encontrar un tratamientomás riguroso de la mate
& Design, Academic Press, 1998), Schimdt (DataModeling ria en Feijs (Formalization ofDesign Methods, Prentice may,
f o r Information Professionals, Prentice Hall, 1998), Bobak, 1993), Witt y colaboradores (SoftwareArcliitecture andDesign
(DataModeling and Design f o r Today's Ar chite ctur es, Principies, Thomson Publishing, 1994) y Budgen (Software
Artech House, 1997), Silverston, Graziano e Inmon (The Design, Addison-Wesley, 1994).
Data Model Resource Book, Wiley, 1997), Date [DAT95], Se pueden encontrar representaciones completas de dise
Reingruber y Gregory (The Data Modeling Handbook: A ños orientados a flujos de datos en Myers [MYE78], Yourdcn
Best-Practice Approach to Building Quality Data Models, y Constantine[YOU79], Buhr (SystemDesign withAda,Pren
Wiley, 1994), Hay (DataModel Patterns: Conventions of tice may, 1984), y Page-Jones (ThePractical Guide to Struc
Thought, Dorset House, 1994) contienen una presentación tured Systems Design, segunda edición, Prentice may, 1988).
detallada de la notación de modelado de datos, heurísticas, Estos libros están dedicados solamente al diseño y propor
y enfoques de diseño de bases de datos. En los últimos años cionan unas completas tutorías en el enfoque de flujo de datos.
el diseño de almacenes de datos ha ido cobrando importan En Intemet están disponibles una gran variedad de fuen
cia. Los libros de Humphreys, Hawkins y Dy (DataWare- tes de información sobre diseño de software y temas relacio
housing: Architecture and Implementation, Prentice Hall, nados. Una lista actualizada de referencias web sobre
1999), Kimball [KIM98] e Inmon [INM95] cubren con gran conceptos y métodos de diseño relevantes se puede encon
detalle la materia. trar en: http://www.pressman5.com.
www.FreeLibros.org 258
C A PÍT U L O
D IS E Ñ O DE LA IN T E R F A Z
DE U S U A R IO
L plano de una casa (su diseño arquitectónico) no está completo sin la representación de
VISTAZO RAPIDO
Los problem as a los que alude Shneiderman son reales. Es cierto que las interfaces gráficas,
ventanas, iconos y selecciones mediante ratón han elim inado m uchos de los terribles proble
mas con la interfaz. Pero incluso en un «m undo de ventanas» todos encontramos interfaces de
www.FreeLibros.org
usuario difíciles de aprender, difíciles de utilizar, confusas, imperdonables y en m uchos casos
totalmente frustrantes. Sin em bargo, hay quien dedica tiem po y energías construyendo estas
interfaces, y es posible que estos problem as no los crearan a propósito.
259
IN GE NI E RÍ A DEL SOF TW AR E . UN E N F O Q U E P R Á C T I C O
www.FreeLibros.org
que d ife re n te s usuarios tie n e n p re fe re n c ia s de in te ra c c ió n ra z ó n p o r la que u n a in te rfa z de u s u ario b ie n diseñada no
diferentes, se deberán p ro p o rc io n ar diferentes selecciones. p o n d rá a p ru e b a la m e m o ria d e l usuario . S ie m p re que sea
P o r e je m p lo , u n s o ftw a re que p u e d a p e rm itir al u s u ario p o s ib le , e l s is te m a d e b e rá « re c o rd a r» la in fo rm a c ió n per-
260
CAPÍTULO 15 D I S E Ñ O DE LA INTERFAZ DE U S U A R I O
15.1.3. C o n s tr u c c ió n d e u n a in te rfa z c o n s is t e n t e
www.FreeLibros.org
La interfaz d eberá a d q u irir y p re se n ta r la in fo rm ació n
de form a c o n se c u e n te . E sto im p lic a (1) que to d a la Líneas Generales poro el diseño
información v isu al esté o rg a n iz a d a de a c u e rd o co n el de lo interíoces.
26 1
I N GEN IE RÍ A DEL S O F T W A R E . UN E N F O Q U E P R A C T I C O
El proceso global para el diseño de la interfaz de usua • usuarios esporádicosy con conocimientos:poseen
rio com ienza con la creación de diferentes modelos de un conocim iento sem ántico razonable, pero una
funcionam iento del sistema (la percepción desde fue retención baja de la inform ación necesaria para uti
ra). Es entonces cuando se determ inan las tareas orien lizar la interfaz;
tadas al hom bre y a lajn áq u in a que se requieren para « usuarios frecuentes y con conocimientos: poseen
lograr el funcionam iento del sistema; se tienen en con el conocim iento sintáctico y sem ántico suficiente
sideración los tem as de diseño que se aplican a todos como para llegar al «síndrom edel usuario avanzado)),
los diseños de interfaces; se utilizan herram ientas para esto es, individuos que buscan interrupciones breves
generar prototipos y por últim o para im plem entar el y m odos abreviados de interacción.
m odelo de diseño, y evaluar la calidad del resultado.
www.FreeLibros.org
1Por supuesto esto no e s com o debena ser. Para si stem as interactivos,
el diseño de la interfaz es tan im portante com o el diseño de los datos, cación —una com prensión de la realización de to d as las funciones,
arquitectura o el de com ponentes. del significado de e ntrada y salida, de las m etas y objetivos del sis
2 Eii este contexto el conocim iento sintáctico se refiere a la m ecánica tem a—.
de interacción que se requiere para utilizar la interfaz de fonna eficaz.
262
CAPÍTULO 15 DISEÑO DE LA INTERFAZ DE U S U A R I O
so n a p ie n s a q u e d e b e r ía e s ta r h a c ie n d o c u a n d o u t ili z a S e r e g is t r a n e l n iv e l d e c o n o c im ie n t o , la c o m p r e n s ió n
u n s is t e m a i n t e r a c t i v o » [ M O N 8 4 ] , E s e n c i a l m e n t e , e s t o s d e l n e g o c io y la r e c e p t iv id a d g e n e r a l d e l n u e v o s is t e
m o d e lo s p e r m i t e n q u e e l d i s e ñ a d o r d e l a i n t e r f a z s a t i s m a , y s e d e f in e n d ife r e n te s c a te g o r ía s d e u s u a r io s . E n
fa g a u n e le m e n t o c la v e d e l p r i n c i p i o m á s im p o r t a n t e c a d a c a te g o r ía s e lle v a a c a b o la e lic it a c ió n d e lo s r e q u i
d e l d is e ñ o d e la in t e r f a z d e u s u a r io : « q u ie n c o n o c e a l s ito s . E s e n c ia lm e n t e , e l in g e n ie r o d e l s o f t w a r e in t e n t a
u s u a r io , c o n o c e la s t a r e a s » . c o m p r e n d e r l a p e r c e p c i ó n d e l s i s t e m a ( S e c c i ó n 15 .2.1)
p a r a c a d a c la s e d e u s u a r io .
15.2.2. El p r o c e so d e d is e ñ o d e la in terfaz U n a v e z d e f in id o s lo s r e q u is it o s g e n e r a le s , s e ll e v a a
c a b o u n a n á l i s i s m á s d e t a l l a d o d e la s t a r e a s . S e i d e n t i f i
d e u su a r io
c a n , d e s c r i b e n y e l a b o r a n la s t a r e a s q u e l l e v a a c a b o e l
E l p r o c e s o d e d is e ñ o d e la s in t e r f a c e s d e u s u a r io e s i t e u s u a r io p a r a c o n s e g u ir lo s o b je t iv o s ( p o r e n c im a d e la c a n
r a t iv o y s e p u e d e r e p r e s e n ta r m e d ia n t e u n m o d e lo e s p i t id a d d e p a s o s it e r a t iv o s a tr a v é s d e la e s p ir a l) . E l a n á li
ral s i m i l a r a l a b o r d a d o e n e l C a p í t u l o 2 . E n l a F i g u r a s is d e t a r e a s s e e s t u d i a d e t a l l a d a m e n t e e n l a S e c c i ó n 1 5 .3 .
1 5 .1 s e p u e d e o b s e r v a r q u e e l p r o c e s o d e d i s e ñ o d e l a E l a n á lis is d e l e n to r n o d e u s u a r io s e c e n tr a e n e l
in te r fa z d e u s u a r io a c o m p a ñ a c u a t r o a c t iv id a d e s d i s t i n e n t o r n o d e l t r a b a jo f í s ic o . E n t r e la s p r e g u n t a s q u e s e
ta s d e m a r c o d e t r a b a j o [ M A N 9 7 ] : f o r m u l a n s e e n c u e n t r a n la s s ig u ie n t e s :
1. A n á l i s i s y m o d e l a d o d e u s u a r i o s , t a r e a s y e n t o r n o s . • ¿ D ó n d e se u b ic a r á fí s ic a m e n t e la in te r fa z ?
2 . D is e ñ o d e la in t e r f a z « ¿ D ó n d e s e s itu a r á e l u s u a r io ? ¿ L le v a r á a c a b o ta r e a s
3. I m p l e m e n t a c i ó n d e l a i n t e r f a z n o r e la c io n a d a s c o n e l in t e r f a z ?
4 . V a lid a c ió n d e la in t e r f a z « ¿ S e a d a p t a b i e n e l h a r d w a r e a la s l i m i t a c i o n e s d e l u z ,
e s p a c io o r u id o ?
E s ta r e c o p ila c ió n d e in fo r m a c ió n q u e fo r m a p a r te d e
la a c t iv id a d d e a n á lis is s e u t i l i z a p a r a c r e a r u n m o d e lo
d e a n á lis is p a r a la in t e r f a z . M e d ia n t e e s ta b a s e d e m o d e
lo s e c o m ie n z a la a c t iv id a d d e d is e ñ o .
£ ¿Cuál es e l objetivo
W del diseño de lo interíoz
de usuario?
E l o b je t iv o d e l d is e ñ o d e la in t e r f a z e s d e f in ir u n c o n
j u n t o d e o b je t o s y a c c io n e s d e in t e r f a z ( y s u s r e p r e s e n
ta c io n e s e n la p a n t a lla ) q u e p o s i b il it e n a l u s u a r io lle v a r
a c a b o t o d a s la s t a r e a s d e f i n i d a s d e f o r m a q u e c u m p l a n
t o d o s lo s o b je t iv o s d e u s a b ilid a d d e f in id o s p o r e l s is t e
m a . E l d is e ñ o d e la in t e r f a z s e a b o r d a m á s d e t a lla d a
m e n te e n la S e c c ió n 1 5 .4
L a a c t iv id a d d e im p le m e n t a c ió n c o m ie n z a n o r m a l
m e n te c o n la c r e a c ió n d e u n p r o t o t ip o q u e p e r m it a e v a
lu a r lo s e s c e n a rio s d e u t iliz a c ió n . A m e d id a q u e a v a n z a
L a e s p ir a l q u e se m u e s tr a e n la F ig u r a 1 5 .1 im p lic a e l p r o c e s o d e d is e ñ o it e r a t iv o , y p a r a c o m p le t a r la c o n s
q u e c a d a u n a d e la s t a r e a s a n t e r i o r e s a p a r e c e r á n m á s d e t r u c c ió n d e la in t e r f a z , s e p u e d e u t ili z a r u n k i t d e h e r r a
una v e z , e n d o n d e a m e d i d a q u e s e a v a n z a p o r l a e s p i m ie n ta s d e u s u a r io ( S e c c ió n 1 5 .5 ).
ral s e r e p r e s e n t a r á l a e l a b o r a c i ó n a d i c i o n a l d e l o s r e q u i L a v a lid a c ió n s e c e n tr a e n : ( 1 ) la h a b ilid a d d e la in t e r
s ito s y e l d i s e ñ o r e s u l t a n t e . E n l a m a y o r í a d e l o s c a s o s , f a z p a r a im p le m e n ta r c o r r e c ta m e n te to d a s la ta re a s d e l
la a c t i v i d a d d e i m p l e m e n t a c i ó n i m p l i c a l a g e n e r a c i ó n u s u a r i o , p a r a a c o p l a r t o d a s la s v a r i a c i o n e s d e t a r e a s , y
de p r o to tip o s — la ú n ic a f o r m a p r á c t ic a p a r a v a lid a r lo p a r a a r c h iv a r t o d o s lo s r e q u is it o s g e n e r a le s d e l u s u a r io ;
www.FreeLibros.org
q u e s e ha d i s e ñ a d o — . (2 ) e l g r a d o d e f a c i l i d a d d e u t i l i z a c i ó n d e l a i n t e r f a z y
L a a c t iv id a d d e a n á lis is in ic ia l s e c o n c e n tr a e n e l p e r d e a p r e n d iz a je , y ( 3 ) la a c e p ta c ió n d e la in t e r f a z p o r p a r
fil d e l o s u s u a r i o s q u e v a n a i n t e r a c t u a r c o n e l s is t e m a . te d e l u s u a r io c o m o u n a h e r r a m ie n ta Ú t il e n s u tr a b a jo .
263
i n g e n i e r í a d e l s o f t w a r e . u n e n f o q u e p r ac t i c o
¿í£i2¡^LjSííjjÉESÍi¿áEÉjtóBÉ$BÉ¡eB^2LÍ^£uIfijÉL¡Ei¡&2u
E n el C apítulo 13 se estudió la elaboración paso a paso de una serie de actividades im portantes: diseño del mobi
(llam ada tam bién refinam iento p aso a p aso y d escom po liario, selección de tejidos y m ateriales, selección de deco
sición funcional) com o m ecanism o p ara refinar las tareas rados en paredes y ventanas, presentación (al cliente),
de procesam iento necesarias p ara que el softw are lleve a costes y com pras. Todas y cada una de estas tareas pue
cabo la función deseada. M ás adelanteen este m ism o libro den elaborarse en otras subtareas. P or ejem plo, el diseño
tendrem os en consideración el análisis orientado a obje del m obiliario puede refinarse en las tareas siguientes: (1)
tos com o enfoque de m odelado p ara los sistem as basados dibujar el plano de la casa con las dim ensionesde las habi
en com putadora. El análisis de tareas p ara el diseño de la taciones; (2) ubicar ventanas y puertas en los lugares ade
interfaz o bien utiliza un enfoque elaborativo o bien orien cuados; (3) utilizar plantillas de m uebles para dibujar en
tado a objetos, pero aplicando este enfoque a las activi el plano un esbozo del m obiliario a escala; ( 3 ) m over el
dades humanas. esbozo del m obiliario para m ejorar su colocación; ( ^ e ti
El análisis de tareas se puede aplicar de dos m aneras. quetar el esbozo del m obiliario; (6) dibujar las dimensio
C om o y a hem os d estacad o an terio rm en te, un sistem a nes para m ostrar la colocación; (7) realizar un dibujo en
interactivo b asado en com pu tad o ra se suele u tilizar para p erspectiva para el cliente. P ara las otras tareas impor
reem p lazar u n a actividad m anual o sem i-m anual. P ara tantes del enfoque se puede utilizar un m étodo similar.
com prender las tareas que se h an de llev ar a cab o para
lo g ra r el objetivo de la actividad, un ingeniero4 deberá
entender las tareas que realizan los h om bres actualm ente CLAVE
(cuando se u tiliza un enfoque m anual) y h acer corres
las tareas humanasse definen y se clasifican como parte
ponder esta tareas con un conjunto de tareas sim ilar (aun
del anólisis de las tareas. Para retinarlas tareas se utiliza
que no necesariam ente idénticas) que se im plem entan en
un procesode elaboración. Deforma alternativa,
el contexto de la interfaz de usuario. Efe form a alternati se Identificany se retinan los objetos y las acciones.
va, el in genieropuede estudiar la especificación ex isten
te p ara la solución b asad a en com pu tad o ra y extraer un L as subtareas (1)-(7) pueden recib ir m ás refinamien
con ju n to d e tareas que se ajusten al m odelo de usuario, al to. L as subtareas (1)-(6) se llevarán a cabo m ediante la
m odelo de diseño y a la percepción del sistema. m anipulación de inform ación y m ediante la realización
Independientem ente del enfoque global utilizado para de acciones dentro de la interfaz de usuario. Por otro lado,
el análisis de tareas, el ingeniero d eberá en prim er lugar la subtarea (7) se podrá llevar a cabo autom áticam enteen
definirlas y clasificarlas. Ya se h a descrito anteriorm ente el softw are y dará com o resultado m uy poca interacción
que el enfoque es una elaboración paso a paso. P or ejem directa con el usuario. El m odelo de diseño de la interfaz
plo, supongam osque una com pañía pequeña quiere cons deberá adaptarse a cada una de estas tareas de form a con
tru ir un sistem a de d iseñ o asistido p o r com putadora secuente con el m odelo del usuario (el perfil de un dise
explícitam en tep ara diseñadores de interiores. A l obser ñ ador «típico» de interio res) y con la percepción del
v ar a un diseñador de interiores en su trabajo, el ingenie sistem a (lo que el diseñador de interiores espera de un sis
ro se da cuenta y notifica que el diseño interior se compone tem a autom atizado).
tM M k t Á .'M r i É m c '
U na v ez finalizado el análisis de tareas, quedan defini 2. H acer corresponder cada objetivo/intención con una
das detalladam ente todas (u objetos y acciones) las que secuencia de acciones específicas
requiere el usuario final y com ienza la actividad del dise 3 _ E specificar la secuencia de acciones de tareas y sub
ño de la interfaz. M ediante el enfoque que se m u estra a tareas, tam bién llam ado escenario del usuario, de la
continuación se p o d rán llevar a cabo los prim eros pasos m an era en que se ejecutarán a nivel de la interfaz.
del diseño de la interfaz [N O R86]: 4. Indicar el estad o del sistem a, esto es, el aspecto que
1. E stablecer los objetivo? e intenciones p ara cada tarea. tien e la in te rfaz cu an d o se está llev an d o a cabo el
escenario del usuario.
■ R ¿Cuáles son los pasos 5. D efinir los m ecanism o de control, esto es, los obje
W que hay que seguir para Nevar tos y acciones disponibles para que el usuario altere
a cabo el diseño d e la iaterfaz? el estad o del sistem a.
www.FreeLibros.org
4 En m uchos casos las actividades descritas en esta sección son lle 5 Entre los objetivos se pueden incluir la consideración de la utilidad de
vadas a cabo por un ingeniero del softw are. Esperem os que el indi las tareas, la efectividad al llevara cabo el objetivo comercial primor
viduo tenga experiencia en ingeniería hum ana y en el diseño de la dial, el grado de rapidez de aprendizaje de las tareas y el grado de satis
interfaz de usuario. facción de los usuarios con la implernentación final de la tarea.
264
CAPÍTULO 15 D IS E ÑO DE LA INTERFAZ DE U S U A R I O
En la Sección 12.6.2 se puede encontrar un estudio Escenario. E l pro p ietario de la casa desea a cced er al sis
completa del análisissemántico gramatical. tem a H o g a rS eg u ro instalado en su casa. M ed ian te el siste
m a o perativo de un PC rem oto (por ejem p lo , un portátil que
el pro p ietario se lleve al trab ajo o de v ia je ), el p ropietario
U n a v e z que se h a n d e fin id o y e la b o ra d o ite r a tiv a d eterm in a el estado del sistem a de alarm a, arm a o d esarm a
mente ta n to lo s o b je to s c o m o las a c c io n es , se e s ta b le el sistem a, reconfigura las zonas de seguridad y o b serv a las
cen categorías p o r tip o s . L o s o b je to s se id e n tific a n c o m o diferentes habitaciones de la casa m ediante la p rein stalació n
objetos o rig e n , d e s tin o y d e a p lic a c ió n . U n objeto o ri de una cám ara de vídeo.
gen (p o r e je m p lo , un ic o n o de in fo r m e s ) se a rra s tra y se Para acceder a H ogarSeguro desde una localización rem o
coloca sobre o tro objeto destino (p o r e je m p lo , u n ic o n o ta, el propietario proporciona un identificador y una contrase
de im p re s o ra ). L a im p lic a c ió n de e sta a c c ió n es c re a r ña. C on esto se definen los niveles d e acceso (p o r ejem plo,
todos los usuarios puede que no tengan la capacidad d e recon-
una c o p ia im p re s a d e u n in fo r m e . U n objeto de aplica
figurar el sistem a) y se proporciona seguridad. U na vez vali
ción re p re s e n ta lo s d a to s e s p e c ífic o s d e la a p lic a c ió n dados, el usuario (con los privilegios para el acceso) com prueba
que no se m a n ip u la n d ire c ta m e n te c o m o p a rte d e la in te el estado del sistem a,y cam bia el estado arm ando y desarm ando
racción de la p a n ta lla . P o r e je m p lo , u n a lis ta d e c o rre o H o g a rS eg u ro . E l usuario reconfigura el sistem a visualizando
postal se u t iliz a p a ra a lm a c e n a r lo s n o m b re s q u e se u t i todas las zonas configuradas actualm ente,m odificando las zonas
lizarán p a ra u n c o rre o p o s ta l. E s ta lis ta se p u e d e o rd e cuando se requiera. E l usuario observa el interior de la casa
m ediante cám aras de vídeo estratégicam enteubicadas. E l usua
nar, fu s io n a r o p u rg a r (a c c io n e s basadas e n m e n ú ) p e ro
rio puede utilizar las cám aras para recorrer todo el interior y
no se pu e d e a rra s tra r y c o lo c a r m e d ia n te la in te ra c c ió n
am pliarlopara ofrecer diferentes visiones del interior de la casa.
del usuario.
www.FreeLibros.org
6 La opción de vídeo posibilita al usuario c o lo c ar una c ám ara
de vídeo en lugares clave por la casa y exam inar la salida desde una
localizaciónrem ota. ¿E! Gran Herm ano?
265
IN GE NI E RÍ A DEL S O F T W A R E . UN E N F O Q U E P R Á C T I C O
Hogar Seguro
Cámara
p im á g e n | d e v i d e o _ .- R j
5P?
www.FreeLibros.org
FIG URA 1 5 .2 . Form ato preliminar de pantalla.
266
CAPÍTULO 15 D IS E Ñ O DE LA INTERFAZ DE U S U A R I O
cb control (por ejem plo, p u lsar la tecla intro o pu lsar el • ¿Se n e ce sita rá d isp o n er de to d as las fu n cio n es del
botón del ratón) h asta que el softw are responde con la sistem a en cualquier m om ento durante la interacción
salida o acción deseada. del sistem a? O pciones: ayuda solo para un subcon-
El tiem po de resp u esta del sistem a tiene dos carac ju n to de todas las funciones y acciones; ayuda para
terísticas im portantes: la d uración y la variabilidad. Si todas las funciones.
la duración de la re sp u e sta del sistem a es d em asiado • ¿De qué fo rm a solicitará ayuda el usuario? O p c io
larga, es inevitable o btener co m o resultado la fru stra nes: un m enú de ayuda; una tecla de fu n ció n e sp e
ción y el estrés del usuario. Sin em bargo, si la interfaz cial; una orden de A Y U D A .
va m arcando el ritm o del u su a rio u n a d u rac ió n breve
• ¿Cóm o se representará la ayuda? O pciones: una v e n
del tiem po de resp u esta puede ser tam b ién perjudicial.
tana separada; una referencia a un docum ento im preso
Un tiem po de resp u esta rápido puede obligar a que el
(no es lo ideal); una sugerencia de una o dos líneas
usuario se precipite y com eta errores.
que surge en una localización fija en la pantalla.
• ¿C óm o regresará el usuario a la interacción norm al?
^ O N S E J o j^ jf Opciones: un botón de reto m o visualizado en la p a n
talla; una tecla de función o una secuencia de control.
Si no se puede evitar unorespuesto variable, asegúrese
de proporcionar alguno indicación visual del progreso • ¿Cóm o se estructurará la inform ación sobre la panta
para que el usuario sepa lo queestó ocurriendo. lla? Opciones: una estructura«plana» donde el acceso
a la inform ación se realiza m ediante una contraseña;
La variabilidad se refiere a la d esviación del tiem po u n ajerarq u ía estratificada de inform ación que va pro
cb respuesta prom edio, y en m uchos aspectos es la carac p o rcio n a n d o m ás datos a m edida que el u su a rio va
terística m á s im portante del tiem po de respuesta. U na entrando por la estru ctu rad a utilización de hipertexto.
variabilidad b aja posib ilita al usuario establecer un rit
C uando ha salido algo m al, los m ensajes de e rro r y
mo de interacción, aunque el tiem po de respuesta sea
las sugerencias son « m alas noticias» para los usuarios
relativam ente largo. P or ejem plo, es p referible obtener
de sistem as interactivos. E n el p eo r de los casos, estos
una segundarespuesta de u n a ord en a una respuesta que
m ensajes im parten inform ación sin u tilizar o engañosa
varíe de 0,1 a 2,5 segundos. E l usuario siem pre estará
y sirven solo para increm entar la frustración del u su a
desconcertado y preguntándose si ha ocurrido algo «d ife
rio. E xisten m uy pocos usuarios que puedan decir que
rente» detrás de la escena.
no se han encontrado con un erro r del tipo:
Casi todos lo s usuarios de un sistem a interactivo basa
do encom putadorarequierenayuda,ahoray siem pre.Los FALLO GRAVE DEL S IS T E M A - - 14 A
dos tipos de funciones de ayuda m ás com unes son: inte
E n algún lu g a r d eb e e x istir una ex p lica ció n del erro r
gradas y com plem entarias(añadibles). [RUB88], Se dise
14A , o sino ¿por qué habrá incluido el diseñador esta
ña u na/u n ció n de a yu d a in teg ra d a d en tro del m ism o
identificación? A pesar de esto, el m ensaje de error no
software desde el principio. Suele ser sensible al contex
proporciona una indicación verdadera de lo que va m al
to, lo que posibilita al usuario seleccionar entre los tem as
o d e donde m irar p ara o b ten er m ás in form ación. U n
que sean relevantes para las acciones que esté llevando a
m en saje d e e rro r co m o el que se ha presentado a n te
cabo en ese m om ento. O bviam enteesto reduce el tiem po
riorm ente no hace nada p o r a liv ia rla ansiedad del usu a
que requiere para o btener ayuda, e increm enta su «fam i
rio o p o r ayudar a solucionar el problem a.
liaridad» con la interfaz. Una fu n ció n de ayuda com ple
E n general, todos los m ensajes de error o sugeren
mentaria se añade al softw are u n a v ez co n stru id o el
cias de un sistem a interactivo deberán ten er las carac
sistema. En m uchos aspectos es m uy sim ilar a un m anual
terísticas siguientes:
de usuario en línea con una capacid ad lim itada de co n
sulta. Es posible que el usuario tenga que buscar en una • El m ensaj e deberá describir el problem a en una j erga
lista de m iles de tem as para encontrar la guía adecuada, que el usuario pueda entender.
entrando norm alm ente en las ayudas incorrectas y reci • E l m ensaje deberá proporcionar consejos c o n stru c
biendo m ucha inform ación irrelevante. N o hay ninguna tivos para recuperarse de un error.
duda de que es preferible el enfoque de funciones de ayu - E l m en saje deb erá in d ica r c u a lq u ier co n secu en cia
da integradas al enfoque de funciones com plem entarias. negativa del error (por ejem plo, los archivos de datos
posiblem ente deteriorados) para que el usuario pueda
•
¿Cuáles son los temas de diseño com probar y g arantizar que no hay ninguno (y co rre
que deberán tenerse en cuenta girlos si existen).
en la construcción de las funciones
de ayuda?
www.FreeLibros.org
Cuando se va a con sid erar u n servicio de ayuda hay
Duplique el esfuerzo y f e palabras al solucionar errores
una serie de tem as de d ise ñ o q u e d eb erán a b o rd a rse
cuandopiense que necesito uno función de ayudo y,
[RUBSS]: de esto forma, es probable que consigo un buen resultado.
267
I N GE NI E RÍ A DEL S O F TW A RE . UN E N F O Q U E P R A C T I C O
■ El m ensaje d eb erá ir seguido p o r u n a clave audible softw are del sistem a, y se utilizaban norm alm ente para
o visual. E sto es, p ara a c o m p añ ar la v isu a liz ac ió n aplicaciones de to d o tipo. A ctualm ente, la utilización
del m ensaje se p o d ría g enerar un p itido, o aparecer de in terfaces o rien tad as a v en tan a s en donde solo se
m o m en tán eam en te u n a luz d estellean te o v isu a li señala y se selecciona, h a reducido el hecho de depen
zarse en un colo r que se pued a reco n o cer fácilm ente der de órdenes tecleadas, aunque m uchos usuarios avan
com o el « co lo r del error». za d o s sig u e n p re firie n d o el m o d o de interacción
« El m ensaje no d eberá tener «sentencias». E sto es, las orientado a órdenes. C u an d o se proporcionan Órdenes
palabras del m ensaje nunca deberán culpar al usuario. escritas com o m odo de interacción surge una serie de
tem as de diseño:
D ado que a nadie le g u sta realm ente tener m alas noti
« ¿Se corresponden todas las opciones del m enú con
cias, a m uy p ocos u suarios les gustará ten er un m ensaje
su órdenes?
de e rro r in dependientem ente del diseño. N o ob stante,
« ¿Q ué form as adquirirán las órdenes? O pciones: una
u n a filosofía eficaz de m ensajes de e rro r puede ayudar
m u ch o a la h o ra de m e jo ra r la calid a d de u n sistem a secuencia de control (p o r ejem p lo , alt-P ); teclas de
interactivo y red u cirá significativam ente la frustración función; u n a p alab ra tecleada.
del usuario cu an d o aparecen problem as. . ¿Será difícil aprender y recordar las órdenes? ¿Qué
A n teriorm ente las órdenes escritas o tecleadas eran se puede hacer si se olvida u n a orden?
el m o d o de interacción m ás co m ú n en tre el usuario y el . ¿Podrá personalizar o abreviar el usuario las órdenes?
15 .5 HERRAMIENTAS DE IMPLEMENTACIÓ N
U n a v ez c re a d o el m o d elo de d ise ñ o , se im p lem en ta • proporcionar una respuesta (por ejem plo,un eco auto
co m o un prototipo’, que los usuarios h an ex am inado m ático de la entrada)
(aq u e llo s que adaptan el m odelo del u su a rio d escrito • p ro p o rc io n ar ayu d a e in d icacio n es de solicitud de
anteriorm ente), y que se h a b asado en los com entarios entrada de órdenes;
de los usuarios.
• m a n ip u la r v en tan a s y cam pos, d esp lazarse por las
P ara acoplar este enfoque de diseño iterativo se ha
ventanas;
desarrollado u n a clase extensa de herram ientas diseño
de interfaz y de g eneración de prototipos. E stas herra • establecer conexiones entre el softw are de la aplica
m ientas así llam ad as,/u eg o de herram ientas de la inter ción y la interfaz;
f a z de usuario o sistem as de desarrollo de la interfaz de • aislar la aplicación de las funciones de gestión de la
usuario ( S D I U ) ,proporcio n an com ponentes u objetos interfaz;
que facilitan la creación de ventanas, ruenús, interacción • perm itir que el usuario personalice la interfaz.
de dispositivos, m ensajes de error, Órdenes y m uchos
otros elem entos de un entorno interactivo.
M ediante los com ponentes de softw are p reestab le
cidos que se p u ed en u tilizar p ara crear u n a interfaz de
usu ario , un S D IU p ro p o rc io n a rá los m ecan ism o s
[M Y E89] para:
• g e stio n a r los d isp o sitiv o s de salid a (tales co m o el
Diseño de la Interfaz de usuario
rató n o el teclado);
• v alid ar la entrad a del usuario; E stas funciones se pueden im plem entar m ediante un
• m an ip u lar los errores y v isu alizar m ensajes de error; enfoque gráfico o basado en lenguajes.
U na vez que se h a creado un prototipo de interfaz de usua táneas hasta un estudio form alm ente diseñado que utili
rio, deberá sufrir una evaluación para determ inar si cu m zará m étodos estadísticos para la evaluación de cuestio
ple las n ecesidades del usuario. L a ev aluación podrá narios cum plim entadospor un grupo de usuarios finales.
abarcar un espectro de form alidad: desde «pruebas» infor El ciclo de evaluación de la interfaz adquiere forma
m ales en donde el usuario proporciona respuestas espon en la Figura 15.3. U na vez finalizado el m odelo de dise
www.FreeLibros.org
1 Debe destacarse que en algunos casos (por ejemplo, los indicadores
del panel de los aviones), el primer paso debena ser simular la inter
faz en un dispositivo en vez de utilizar el hardw are del indicador.
268
C A PÍT U L O 15 D I S E Ñ O DE LA INTERFAZ DE U S U A RI O
ño, se crea un prototipo de p rim er nivel. E ste prototipo 1 . L a d u rac ió n y la co m p lejid a d de la esp e cific ació n
es evaluado p o r el usuario, que es quien proporcionará que se h ay a escrito del sistem a y de su interfaz p ro
al diseñador los co m entarios directos sobre la eficacia porcionan u n a indicación de la cantidad de aprendi
de la interfaz. A dem ás, si se u tilizan técnicas form ales zaje que requieren los usuarios del sistem a.
de evaluación (por ejem plo, cuestio n ario s,hojas de ev a 2. La cantidad de tareas especificadasy la cantidad m edia
luación), es posible que el d iseñador extraiga inform a de acciones p o r tarea proporcionan una indicacióndel
ción de estos datos (por ejem plo, el 80 p o r 100 de los tiem po y de la eficacia global del sistema.
usuarios no m ostró afinidad con el m ecanism o para gra
3. L a cantidad de acciones, tareas y estados de sistem as
bar archivos de datos). L as m odificaciones que se re a
indicados con el m odelo de diseño indican la carga de
licen sobre el diseño se basarán en la entrad a del usuario
m em oria que tienen los usuarios del sistema.
y entonces se creará el p rototipo de segundo nivel. El
ciclo de ev aluación continúa h asta que y a no sean n ec e 4. El estilo de la interfaz, las funciones de ayu d a y el
sarias m ás m odificaciones del diseño de la interfaz. protocolo de solución de erro res proporcionan una
indicación general de la com plejidad de la interfaz
y el grado de aceptación p o r parte del usuario.
U n a vez construido el prim er prototipo, el diseñador
puede recopilar u n a diversidad de datos cualitativos y
& escribir delante que pueda
cualificativos que ayudarán a ev a lu ar la interfaz. P ara
y in 'a p #9fft¡2 en donde la mente
recopilar los datos cualitativos, se pueden distribuircues-
■ H H p j , : -. r can el universo y los
tionarios a los usuarios del prototipo. Las preguntas p u e
o fados.
d en ser (1) del tip o de re sp u e sta si/no; (2) re sp u e sta
num érica; (3 ) respuesta con escala de valoración (sub
je tiv a ), o (4) re sp u e sta p o r p o rc en taje s (subjetiva). A
El enfoque de g e n e ra c ió n de p ro to tip o s es efic az , continuación se m uestran unos ejem plos:
ahora bien ¿es posible evaluar la calidad de la interfaz 1. ¿E ran c la ro s lo s ic o n o s? E n c aso n e g a tiv o , ¿Q ué
de usuario antes de construir un p rototipo? Si los p ro iconos no eran claros?
blemas se p u ed en descu b rir y solucionar rápidam ente,
2. ¿Eran fáciles de recordar y de invocar las acciones?
el núm ero de b ucles en el ciclo de ev aluación se re d u
cirá y el tiem po de desarrollo se acortará. Si se h a crea 3. ¿C uántas acciones diferentes ha utilizado?
do un m odelo de d ise ñ o de la in te rfa z , d u ra n te las 4 . ¿R esultaron fáciles de ap renderlas operaciones bási
primeras re v isio n e s del d iseñ o se p o d rá n ap licar una cas del sistem a? (v a lo rac ió n d e l a 5)
serie de criterios [M O R 81] de evaluación: 5. E n com paración con otras interfaces que haya u tili
zado, ¿C óm o evaluaría ésta?
entre el 1 % m ejores, 10% m ejores, 25% m ejores, 50%
Diseño m ejores, 5 0 % inferiores.
preliminar
Interfaz de usuario.
www.FreeLibros.org
U n estudio com pleto de los m étodos de ev aluación de
está finalizada
la interfaz de usuario queda fuera del ám bito de este libro.
FIGURA 1 5 .3 . El ciclo de evaluación de diseño de la interfaz. Para m ás inform ación, véase [LEA88] y [M AN97],
269
I N GEN IE RÍ A DEL SOF TW ARE . UN E N F O Q U E P R A C T I C O
S B H H I
¡ n u m
[DUM88] Dumas, J . S Designing User Interfaces f o r Soft puter Systems», Intl. Journal o f Man-Machine Studies,
ware, Prentice-Hall, 1988. vol. 15,pp. 3-50.
[LEA88] Lea, M., «Evaluating User Interfaces Designs», User [MYE89] Myers, B.A., «User Interface Tools: Introduction
Interface D esig n fo r Computer Systems, Halstead Press and Survey», IEEE Software, Lnero 1989, pp. 15-23.
(Wiley), 1988.
[NOR86] Norman, D.A., «Cognitive Engineering», UserCen-
[MAN97] Mandel, T„ The Elements o f User Interface Design, tered Systems Design, Lawrence Earlbaum Associates,
Wiley, 1997. Nueva Jersey, 1984.
[MON84] Monk, A. (ed), Fundamentáis o f Human-Compu- [RUB88] Rubin, T„ User Interface D esignfor CornputerSys-
ter Interaction, Academic Press, 1984. tems, Haldstead Press (Wiley), 1988.
[MOR81] Moran, T.P., «The CommandLanguage Grammar: [SHN87] Shneiderman, B., Designing the User Interface,
ARepresentationforthe User Interface o f InteractiveCom- Addison-Wesley, 1987.
NMM
• . •..i ..í a I li
15.1. Describa la peor interfaz con la que haya trabajado algu a. un sistema de autoedición
na vez y critíquela en relación con los conceptos que se han b, un sistema de diseño asistido por computadora
presentado en este capítulo. Describa la mejor interfaz con la
c. un sistema de diseño de interiores
que haya trabajado alguna vez y critíquela en relación con los
conceptos presentados en este capítulo. d,un sistema de matriculación automatizado para la uni
versidad
15.2. Desarrolle dos principios de diseño más que «den el
e. un sistema de gestión de biblioteca
control al usuario».
f. un sistema de votación basada en Internet para las elec
15.3. Desarrolle dos principios de diseño más que «reduzcan ciones públicas
la carga de memoria del usuario».
un sistema bancario en casa
15.4. Desarrolle dos principios de diseño más que «ayuden h. una aplicación interactiva asignada por su instructor
www.FreeLibros.org
a construir una interfaz consecuente».
Desarrolle un modelo de diseño, un modelo de usuario, una
15.5. Considere una de las aplicaciones interactivas siguien imagen de sistema y una percepción de sistema para cual
tes (o una aplicación asignada por su profesor): quiera de los sistemas anteriores.
270
C A P I T U L O 15 DISEÑO DE LA INTERFAZ DE U S U A R I O
156. Realice un análisis detallado de tareas para cualquiera el análisis de tareas que haya llevado a cabo desde el Proble
ds los sistemas que se relacionan en el Problema 15.5. Utili ma 15.6 al 15.8.
ce un enfoque elaborativo u orientado a objetos.
15.11. Proporcione unos cuantos ejemplos que muestren la
15.7. Como continuación al Problema 15.6, defina objetos y razón de que la variabilidad del tiempo de respuesta pueda
acciones para la aplicación que acaba de seleccionar. Identi considerarse un tema a tener en cuenta.
fique todos los tipos de objetos.
15.12. Desarrolleun enfoque que integre automáticamente los
15.8. Desarrolle un conjunto de formatos de pantalla con una mensajes de error y una función de ayuda al usuario. Esto es,
definición de los elementos del menú principales y secunda que el sistema reconozca automáticamente el tipo de error y
rios para el sistema que haya elegido en el Problema 15.5. proporcione una ventana de ayuda con sugerencias para corre
15.9. Desarrolle un conjunto de formatos de pantalla con una girlo. Realice un diseño de software razonablemente comple
definición de los elementos principales y secundarios del menú to que tenga en consideración estructuras de datos y algoritmos.
para el sistema estándar HogarSeguro de la Sección 15.4.1. 15.13. Desarrolle un cuestionariode evaluación de la interfaz
Puede optar por un enfoque diferente al mostrado en la Figu que contenga20 preguntas genéricas que se puedan aplicar a la
ra 15.2 sobre un formato de pantalla. mayoría de las interfaces. Haga que 10 compañeros de clase
15.10. Describa el enfoque utilizado en las funciones de ayu rellenen el cuestionario del sistemade interfaz que vayan a uti
da del usuario que haya utilizado para el modelo de diseño en lizar todos. Resuma los resultados e informe de ellos a la clase.
jñ&xsQxmiiñJLzm mz&júJLi H t v * ‘
Aunque el libro de Donald Norman no trata específicamente usuario ha sido editado por Carroll (Scenario-BasedDesign:
interfaces hombre-máquina, mucho de lo que su libro (The Envisioning Work and Technology in System Development,
Design o f Everyday Things, Reissue edition, Currency/Dou- Wiley, 1995). Horrocks (Constructing the User Interface with
bleday, 1990) tiene que decir sobre la psicología de un dise Statecharts, Addison-Wesley, 1998)ha desarrollado un méto
ño eficaz se aplicará a la interfaz de usuario. Es una lectura do formal para el diseño de interfaces de usuario que se basa
recomendada para todos los que sean serios a la hora de cons en el modelado del comportamiento basado en el estado.
truirun diseño de interfaz de alta calidad. La actividad de evaluación se centra en la usabilidad. Los
Durante la década pasada se han escrito docenas de libros libros de Rubin (HandbookofUsability Testing:How to Plan,
acerca del diseño de interfaces. Sin embargo, los libros de Design, and ConductEffective Tests, Wiley, 1994)y Nielson
Mandel [MAN97] y Shneiderman (Designing the User Inter- (Usability Inspection Methods, Wiley, 1994) aborda el tema
face: Strategiesfor Effective Human-Computer Interaction, de forma considerable y detallada.
3.a ed., Addison-Wesley, 1990) continúan proporcionando el La computadora Apple de Macintosh popularizó las inter
estudio más extenso acerca de la materia. Donnelly (In Your faces de usuario con diseños sólidos y fáciles de utilizar. El
Face: The Best o f Interactive Design, Rockport Publications, personal de Apple (MacintoshHuman Interface Guidelines,
1998), Fowler, Stanwicky Smith (GUI Design Handbook, Addison-Wesley, 1993)estudia la apariencia y utilización del
McGraw-Hill, 1998), Weinschenk, Jamar, y Yeo (GUIDesign ahora famoso Macintosh (y tan imitado). Uno de los prime
Essentials, Wiley, 1997), Galitz (TheEssential Guide to User ros libros que se han escrito acerca de la interfaz de Micro
Interface Design: An Introduction to GUI Design Principies soft Windows fue elaborado por el personal de Microsoft (The
and Techniques, Wiley, 1996), Mullet y Sano (Designing Windows G uidelinesfor Software Design: A n Application
VisualInterfuces: Communication Oriented Techniques,Pren- Design Guide, Microsoft Press. 1995).
ticeHall, 1995), y Cooper (A boutFace: The Essentials of En un libro de Murphy (FrontPanel: Designing Software
User Interface Design, IDG Books, 1995) han escrito estu f o r Embedded User Interfaces, R&D Books, 1998), el cual
dios que proporcionan las líneas generales y principios de puede resultar de gran interés para los diseñadores del pro
diseño adicionales así como las sugerencias para la elicita- ducto, se proporciona una guía detallada para el diseño de
ción de requisitos, modelado, implementación y comproba interfaces de sistemas empotrados y aborda los peligros inhe
ción del diseño. rentes en controles, en manipulación de maquinaria pesada e
El análisis y modelado de tareas s o n las actividades fun interfaces para sistemas médicos y de transporte. El diseño
damentales del diseño de la interfaz. Hackos y Redish (User de la interfaz para productos empotrados también se estudia
and TaskA nalysisfor Interface Design, Wiley, 1998) han en el libro de Garrett (AdvancedInstrumentation and Com
escrito un libro especializado en estos temas y proporcionan puter HO Design: Real-Time System Computer Interface Engi
un método detallado para abordar el análisis de tareas. Wood neering, IEEE, 1994).
(Userlnterface Design: Bridging the Gapfrom User Requi Una amplia variedad de fuentes de información sobre el
rements to Design, CRC Press, 1997) tiene en consideración diseño de la interfaz de usuario y de temas relacionados están
la actividad de análisis para interfaces y la transición hacia disponibles en Internet. Una lista actualizada de referencias
las tareas de diseño. Uno de los primeros libros que presen relevantes para la interfaz de usuario se puede encontrar en
tan el tema de los escenarios en el diseño de la interfaz de http://w ww.pressm an5.com
www.FreeLibros.org 271
www.FreeLibros.org
C A P IT U L O
16 D IS E Ñ O A N IV E L DE C O M P O N E N T E S
L diseño a nivel de com ponentes, llam ado tam bién diseño pro ced im en ta l, tiene lugar d e s
VISTAZO RÁPIDO
www.FreeLibros.org
interfaces y algoritm os deberán ajustarse a la diversidad de líneas generales del d iseño p ro ce
dim ental establecidas com o ayuda para evitar errores durante la evolución del m ism o diseño.
E n este capítulo, exam inarem os estas líneas generales de diseño.
273
IN GE NI E RÍ A DEL SOF TW AR E . UN E N F O Q U E P R A C T I C O
ÍStACIÓM aSÉtgCTBRÁD»
Los fundam entos del diseño a nivel de com ponentes na que los psicólogos denom inan fra g m e n ta c ió n (tro
proceden de la década de los años sesenta, y tom aron ceado o chunking). Para entender este proceso, consi
cuerpo con el trabajo de Edsgar Dijkstra y sus colabo deremos la m anera de leer esta página. Las letras no se
radores [BOH66, DIJ65, DIJ76], A finales de los sesen leen individualmente: m ás bien, se reconocen formasú
ta, D ijkstra y otros propusieron la utilización de un trozos de letras que forman palabras o frases. Las cons-;
conjunto de construcciones lógicas restringidas de las tracciones estructuradas son fragm entos lógicos que:
que poder formar cualquier programa. perm iten al lector reconocer elementos procedimenta*»'
les de un módulo en lugar de leer el diseño o el código;
línea a línea. La com prensión mejora cuando se encuen-t
tran patrones fácilmente reconocibles.
Siguiente
tarea
Primera
tarea T Parte
Parte si-no Si-entonces
Tarea
Parte de bucle
caso
Condición Tarea
Mientras- He b u c le ,
de bucle
hacer 0 u c e R e p e tir - h a s t a
( d o - w h il e ) ( r e p e a t - u n t il)
Condición
www.FreeLibros.org
Según-sea (seleción) Repetición de bucle
274
C A PÍT U L O 16 D ISEÑ O A NIVEL D E C O M P O N E N T E S
m ediante e l s ím b o lo d e l r o m b o d e d e c is ió n q u e , si es C h a p ín [ C F IA 7 4 ] , lo s d ia g ra m a s (ta m b ié n d e n o m in a
cierto, p ro v o c a e l p ro c e s a m ie n to d e la p a rte entonces, dos diagramas Nassi-Schneiderman, diagramas N -S o
y, si es fa ls o , in v o c a e l p ro c e s a m ie n to d e la p a rte si-no. diagramas Chapin) tie n e n las c a ra c te rís tic a s s ig u ie n
La re p etició n se re p re s e n ta m e d ia n te dos fo rm a s lig e tes: ( 1 ) d o m in io fu n c io n a l (es d e c ir, e l a lc a n c e d e u n a
ramente d ife re n te s . E l mientras-hacer p ru e b a u n a c o n re p e tic ió n o d e u n s i-e n to n c e s -s i-n o ) b ie n d e fin id o y
dición y e je c u ta u n a ta re a d e b u c le r e p e tid a m e n te c la ra m e n te v is ib le c o m o re p re s e n ta c ió n g rá fic a ; ( 2 ) la
siempre que la c o n d ic ió n siga s ie n d o v e rd a d . U n repe- tra n s fe re n c ia a rb itra ria de c o n tro l es im p o s ib le ; ( 3 ) e l
tir-hasta p rim e ro e je c u ta la ta re a de b u c le , después p ru e a lc an ce d e los datos lo ca les y /o g en erales se p u e d e d e te r
ba la c o n d ic ió n y re p ite la ta re a h asta q u e la c o n d ic ió n m in a r fá c ilm e n te y (4)l a re c u rs iv id a d es fá c il d e re p re
falla. L a c o n s tru c c ió n d e s e le c c ió n ( según_sea ) q u e se sentar.
muestra en la fig u ra re a lm e n te es u n a e x te n s ió n d e si-
entonces-si_no. U n p a rá m e tro se p ru e b a p o r d e cis io n es Primera tarea
sucesivas hasta q u e o c u rre u n a c o n d ic ió n v e rd a d e ra y
se e je c u ta d c a m in o d e p ro c e s a m ie n to aso ciad o .
Las c o n s tru c c io n e s e s tru c tu ra d a s p u e d e n a n id a rs e
Siguiente tarea
unas en otras c o m o m u e s tra la F ig u ra 16.2. E n esta F ig u Parte Parte
ra, un re p e tir-h a s ta fo rm a la p a rte th e n d e u n s i-e n to n - si_no entonces
c e s -s i-n o (m o s tra d a d é n tro d e la lín e a d is c o n tin u a
Siguiente tarea + 1
exterior). O tro if-th e n -e ls e fo rm a la p a rte s i-n o d e la p r i
m a n c o n d ic ió n . F in a lm e n te l a c o n d ic ió n p ro p ia m e n te
dicha se c o n v ie rte e n u n s eg u n d o b lo q u e e n u n a sec u en Secuencia Si-entonces-si-no
cia. A n id a n d o c o n s tru c c io n e s d e e sta m a n e ra , se p u e d e
desarrollar u n e s q u e m a ló g ic o c o m p le jo . Se d e b e ría des Condición de bucle
tacar que c u a lq u ie ra d e lo s b lo q u e s d e la F ig u r a 1 6 .2 Parte
podría h a ce r re fe re n c ia a o tro m ó d u lo , lo g ra n d o p o r ta n repetir hasta
( r e p e a t u n til)
to la e stratifica ció n p ro c e d im e n ta l que c o n lle v a la estruc
Parte
tura del p ro g ra m a . hacer m ientras
(d o w h ile )
ffc o N S E J O ^ . a
las construcciones de programación estructurado Condición de bucle
deberán facilitarla comprensióndeldiseño. Es correcto
soltarlos, si utlllzarlossln «saltarlas» da como resultado
Repetición
uno complejidad Innecesaria
www.FreeLibros.org
ción de d is e ñ o p ro c e d im e n ta l q u e n o p e rm itie ra la v io re p e tir-h a s ta ) q u e se v a a re p e tir. F in a lm e n te , la s e le c
lación de las c o n s tru c c io n e s e stru ctu ra d as . D e s a rro lla d a c ió n se re p re se n ta m e d ia n te la fo rm a g rá fic a m o s tra d a
p c r N a s s iy S c h n e id e r m a n [ N A S 7 3 ] y a m p lia d a p o r e n la p a rte in fe r io r d e la fig u ra .
275
IN GE NI E RÍ A DEL S O F TW A RE . UN EN F O Q U E P R Á C T I C O
Condiciones
c o n d ic ió n n.° 1 V
1 2 3 4
y y
n
• una tabla de decisiones?
c o n d ic ió n n.° 3
y y cripción procedim ental para un sistema de facturación
de un servicio público:
Si la cu en ta del cliente se factura utilizando un método de
tarifas fijo, se establece un cargo m ensual m ínim o para con
sum os m enores de lOOkWh (kilovatios/hora). E n los demás
Acciones casos, la facturación por com putadora aplica la tarifa A. Sin
em bargo, si la cuenta se factura em pleando un m étodo de fac
ac ció n n.° 1 V yy turación variable, se aplicará la tarifa A para consum os por
acció n n.° 2 y V debajo de lOOkWh, con un consum o adicional facturado de
www.FreeLibros.org
Utilice uno tabla de decisión cuando dentro «un lenguaje rudim entario en el sentido de que utiliza
de un componente se combine un conjunto el vocabulario de un lenguaje (por ejem plo, el Inglés),
'¿xvfeAhesAw>Usa» es,m\ewga»i^, tstesRr
276
CAPÍTULO 16 D IS E Ñ O A NIVEL DE C O M P O N E N T E S
turado de program ación )> fC A I7 5 ]. E n este capítulo se H ay que d e sta c a r que L D P se p u ede a m p lia r de
utiliza L D P co m o referen cia genérica de un lenguaje de m anera que incluya palabras clave para procesos m ul-
diseño. titarea y/o concurrentes, m anipulación de in terru p cio
A prim era v ista L D P se parece a un lenguaje de p ro n e s, sin c ro n iz a c ió n en tre p ro c e so s y m u c h a s o tras
gramación m oderno. L a diferencia entre éste y un v er características. L os diseños de aplicaciones para los que
dadero lenguaje de program ació n rad ica en el em pleo se utiliza L D P deberán dictar la fo rm a final que tendrá
de texto d esc rip tiv o (p o r e je m p lo , In g lé s) in se rta d o el lenguaje de diseño.
directamente dentro de las sentencias de LDP. D ado que
se utiliza tex to d escrip tiv o in sertad o d irectam en te en 16.1.4. U n e je m p lo d e LDP
una estructura sin táctica,este lenguaje no se puede co m
P ara ilustrar el em pleo de L D P presentam os un e je m
pilar (alm enos p o r ahora). Sin em bargo, las herram ientas
plo de diseño procedim ental para el softw are del siste
LDP que e x iste n actu alm en te co n v ie rte n L D P en un
m a de seguridad H ogarSeguro com entado en capítulos
«esquem a» de len g u aje de p ro g ram ació n , y/o re p re
anteriores. El sistem a H ogarSeguro en cuestión vigila
sentación gráfica (por ejem plo, un d iagram a de flujo de
las alarm as de detección de fuego, hum o, ladrones, agua
diseño). E stas herram ientas tam b ién prod ucen m apas
y tem peratura (por ejem p lo , la ruptura del sistem a de
anidados, un índice de o peración de d iseñ o, tablas d e
calefacción durante la ausencia del propietario en invier
referencias cruzadas, y m ás d iversidad de inform ación.
no); hace saltar el sonido de la alarm a, y llam a al ser
v icio de v ig ila n cia g e n e ra n d o un m e n sa je d e voz
Reglas
-----------------------------------------
sintetizada. E n el L D P que se m uestra a continuación,
Condiciones 1 2 3 4 5 1 se ilu stran algunas de las c o n stru ccio n es im p o rtan tes
Cuenta de tarifa fija F señaladas en secciones anteriores.
V V F F
Hay que recordar que L D P no es un lenguaje de p ro
Cuenta de tarifa variable F F V V F
gram ación. El diseñador hace una adaptación cuando
Consumo < lOOkWh V F V F lo requiere y sin preocuparse de errores de sintaxis. Sin
Consumos 100kWh F V F V em bargo, se deb erá re v isa r el d iseño del softw are de
v ig ilan cia (¿se o b serv a algún p ro b lem a?) y re finarlo
antes de escribirse. El L D P siguiente define una e la b o
Acciones ració n de diseño procedim ental para el com ponente de
m onitor de seguridad.
Cargo mensual mínimo V
Facturación tarifa A V V PROCEDURE s e g u r id a d .m o n ito r ;
INTERFACE RETURNS s i s t e m a . e s ta d o ;
,Facturacióntarifa B V TEPE s e ñ a l I S STRUCTURE DEFINED
Otro tratamiento V nom bre I S STR1NG LENGTH VAR;
d i r e c c i ó n I S HEX d i s p o s i t i v o l o c a l i z a c i ó n ;
l í m i t e . v a l o r I S s u p e r i o r l í m i t e SCALAR;
m e n s a je I S STRING LENGTH VAR;
FIGURA 16.5. Tabla de decisión resultante. END s e ñ a l TEPE;
TEPE s i s t e m a . e s t a d o I S B IT (4 );
Un lenguaje de diseño de prog ram as puede ser una TEPE a la rm a , t i p o DEFINED;
simple transp o sició n de un lenguaje tal com o A da o C. hum o.alarm a I S INSTANCE OF s e ñ a l ;
A lternativam ente, p u ed e ser un p ro d u c to c o m p rad o fu e g o , alarm a I S INSTANCE OF s e ñ a l ;
específicamente p ara el diseño procedim ental. agua, alarm a I S INSTANCE OF s e ñ a l ;
tem p. alarm a I S INSTANCE OF s e ñ a l;
la d r ó n , alarm a I S INSTANCE OF s e ñ a l ;
TEPE t e l é f o n o . n ú m e ro I S a re c ó d ig o t 1 -d íg ito
Sería una buena idea utilizar un lenguaje
n ú m e ro ;
de programación cama base para el LDP.
Esb hará posible generar un esquema de código
(mezclado can texto) a medida que se lleva
a cabo el diseño a nivel de componentes.
i n i c i a l i z a r to d o s s i s t e m a s p u e r t o s y r e i n i c i a l i z a r
Una sintaxis b ásica L D P deberá inclu ir construccio to d o h a rd w a re ;
nes para la definición de subprogram as, d escripción de CASE OF c o n tr o l .p a n e l . i n t e r r u p t o r e s (c p s) -
la interfaz, d eclaración de datos, técnicas p ara la estru c WHEN c p s = " t e s t ' SELECT
turación de bloques, co nstrucciones de condición, co n s CALL alarm a PROCEDURE W1TH " a c ti v a d o " p a r a c o
www.FreeLibros.org
p r o b a c ió n , tie m p o en se g u n d o s;
trucciones re p e titiv a s y c o n stru c c io n e s de E /S. El
formato y la sem ántica de estas co nstrucciones L D P se ItHEN c p s = "a la rm a -d e sa c tiv a d a "S E L E C T
277
in g e n ie ría d e l s o f tw a r e , un en fo q u e p ra c tic o
www.FreeLibros.org
F acilid ad de ed ició n . E s p o s ib le q u e e l d is e ñ o te las p ru e b a s d e l s o ftw a re . U n a n o ta c ió n q u e m e jo ra la
p ro c e d im e n ta l r e q u ie r a a lg u n a m o d ific a c ió n a m e d i h a b ilid a d d e v e r ific a r la ló g ic a m e jo r a e n o rm e m e n te lo
d a q u e e l p ro c e s o d e s o ftw a r e a v a n z a . L a f a c ilid a d a c e p ta b le de las pru eb as.
270
CAPITULO 16 D I S E Ñ O A NIVEL DE C O M P O N E N T E S
El proceso de diseño acompaña a una secuencia de acti las notaciones de diseño que representa los detalles a
vidades que reducen lentamente el nivel de abstracción nivel de componentes o bien en formatos gráficos, tabu
con el que se representa el software. El diseño a nivel lares o basados en texto.
de componentes representa el software a un nivel de La programación estructurada e s una filosofía de
abstracción muy cercano al código fuente. diseño procedimental que restringe el número y tipo de
A un nivel de componentes, el ingeniero del software construcciones lógicas que se utilizan para representar
debe representar estructuras de datos, interfaces y algo el dato algorítmico. El objetivo de la programación
ritm os con suficiente detalle como para servir de guía estructurada es ayudar a que el diseñador defina algo
en la generación de códigos fuente de lenguajes de pro ritmos menos complejos y por tanto más fáciles de leer,
gramación. Para conseguirlo, el ingeniero utiliza una de comprobar y mantener.
[BOH66] Bohm, C., y G. Jacopini,«Flow Diagramas, Turing [DIJ76] Dijkstra, E., «Structure Programming», Software
Machines andLanguageswith only twoFormation Rules», Engineering, Concepts and Techniques (J. Buxton et al.,
CACMvol. 9, n.a 5, Mayo 1966,pp. 366-371. eds.), Van Nostrand-Reinhold, 1976.
[CAI75] Carne, S„ y K. Gordon, «PDL -A Tool for Soft [HUR83] Hurley, R.B., Decisión Tables in Software Engi
ware Design», in Proc. National Computer Conference, neering, Van Nostrand Reinhold, 1983.
AFIPS Press, 1975,pp. 271-276.
[LIN79] Linger, R.C, H. D. Mills y B.I. W itt, Estructured
[CHA74] Chapín,N., «A N ew Form atforFlow charts», Soft Programming, Addison-Wesley, 1979
ware—Practice and Experience, vol. 4, n.2 4, 1974, pp.
341-357. [NAS73] Nassi, I., y B. Shneiderman, «Flowchart Techni
ques for Structured Programming», SIG PLAN Notices,
[DU65] Dijkstra,E., «Programming Consideredas a Human
ACM, Agosto 1973.
Activity», in Proc. 1 9 6 5 IFIP Congress, North Holland
Publishing Co., 1965. [PET81] Peters, L.J., Software Design: Methods and Tech
niques, Yourdon Press, Nueva York, 1981.
[DU72] Dijkstra,E„ «TheHumbleProgrammer», 1972ACM
Turing Áward Lecture, CACM, vol. 15. n.2 10, Octubre [SOM96] Som m erville, I. Software Engineering, 5.- ed..
1972,pp. 859-866. Addison-Wesley, 1996.
www.FreeLibros.org 279
I N GE NI E RÍ A DEL S OFT W ARE . UN E N F O Q U E P R A C T I C O
9jdü1Z.H
www.FreeLibros.org 280
C A PÍT U L O
T É C N IC A S DE PR U EB A
D EL S O FTW A R E
k “ TUNCA se dará suficiente im portancia a las pruebas del software y sus implicaciones en
\ I la calidad del software. Citando a Deutsch [DEU79]:
El desarro llo de sistem as de softw are im plica una serie de activ id ad es d e p ro d u cció n en las que las p o si
bilidades de que ap arezca el fallo hum ano son enorm es. L o s errores pued en em p ezar a darse d e sd e el p ri
m er m om ento del proceso, en el que los objetivos....pueden estar especificados de form a errónea o im perfecta,
a sí co m o [en] po sterio res pasos de diseño y d e sa rro llo ..D e b id o a la im p o sib ilid ad h um ana de trab a ja r y
c o m u n icarse de form a perfecta, el desarro llo de softw are h a de ir a com pañado de una actividad que g a ran
tice la calidad.
Las pruebas del software son un elemento crítico para la garantía de calidad del software y
representa una revisión final de las especificaciones, del diseño y de la codificación.
La creciente percepción del software com o un elemento del sistema y la im portancia de los
«costes» asociados a un fallo del propio sistema, están m otivando la creación de pruebas m inu
ciosas y bien planificadas. N o es raro que una organización de desarrollo de software emplee
entre el 30 y el 40 por ciento del esfuerzo total de un proyecto en las pruebas. En casos extre
mos, las pruebas del software para actividades críticas (por ejemplo, control de tráfico aéreo,
control de reactores nucleares) puede costar ¡de tres a cinco veces m ás que el resto de los pasos
de la ingeniería del software juntos!
VISTAZO RÁPIDO
www.FreeLibros.org
En este capítulo, verem os los fundamentos de las pruebas del software y las técnicas de dise
ñ o de casos de prueba.
281
IN GE NI E RÍ A DEL S O F TW A RE . UN EN FOQ UE P R A C T I C O
Las p ruebas presen tan una interesante anom alía para el 2. U n bu en caso de prueba es aquel que tiene una alta
ingeniero del softw are. D urante las fases anteriores de probabilidad de m ostrar un error no descubierto hasta
definición y de desarrollo, el ingeniero intenta construir entonces.
el softw are partiendo de un concepto abstracto y llegan 3. U na prueba tiene éxito si descubre un error no detec
do a una im plem entacióntangible. A continuación, llegan tado hasta entonces.
las pruebas. El in g e n ie ro c rea u n a serie de casos de prue
ba que intentan «dem oler» el softw are construido. De ¿Cuál es nuestro primer
hecho, las pruebas son uno de los p asos de la ingeniería
del softw are que se puede v er (por lo m enos, psicológi
cam ente) com o destructivo en lugar de constructivo.
• objetivo cuando probamos
el softw are?
www.FreeLibros.org
1 Aquí se presenta sólo un pequeño subconjunto de los principios de
ingeniería de pruebas de Davis. Para obtener m ás inform ación, vea
[DAV96],
282
CAPITULO 17 T É C N I C A S DE P RU E BA DEL S O F T W A R E
• Las p ru e b a s d eberían p la n ific a rse m u ch o a n tes de La facilidadde prueba del software es simplemente la
que empiecen. L a planificación de las p ruebas (C apí facilidad con la que se puede probar un programa de com
tulo 18) p u ed en em p ezar tan pronto co m o esté co m putadora. Como la prueba es tan profundam ente difícil,
pleto el m odelo de requisitos. L a definición detallada merece la pena saber qué se puede hacer para hacerlo más
de los caso s de p ru e b a p u ed e e m p e z a r ta n p ro n to sencillo. A veces los program adores están dispuestos a
com o el m o d elo de d iseñ o se h a co n so lidado. P o r hacer cosas que faciliten el proceso de prueba y una lista
tanto, se pu ed en p lan ificar y d iseñ ar to d as las p ru e de comprobación de posibles puntos de diseño, caracte
bas antes de g en erar n in g ú n código. rísticas, etc., puede ser útil a la hora de negociar con ellos.
• E l p rin cip io de P areto es aplicable a la p r u e b a del
software. D icho de m an era sencilla, el principio de
Pareto im plica que al 80 p o r 100 de tod os los e rro
Referencia
res d escu b ierto s d u ra n te las p ru e b a s se les puede
hacer un seguim iento h asta u n 20 p o r 100 de todos Un útil documento titulado ((Perfeccionandola facilidad
los m ódulos del p ro g ram a. E l p ro b le m a , p o r déla prueba del software» puede encontrarseen:
supuesto, es aislar estos m ódulos sospechosos y p ro www.it!abs.coni/itewsletters/testnet/docs/testg|iKty.ht¡n.
barlos concienzudam ente.
• Las p ru e b a s deberían em p eza r p o r «lo p e q u e ñ o » y
Existen, de hecho, métricas que podrían usarse para
m edir la facilidad de prueba en la m ayoría de sus aspec
progresar hacia «lo gra n d e ». L as p rim eras pruebas
tos. A veces, la facilidad de prueba se usa para indicar
planeadas y ejecutadas se centran generalm ente en
lo adecuadamente que un conjunto particular de prue
m ódulos in dividuales del program a. A m ed id a que
bas va a cubrir un producto. También es em pleada por
avanzan las pruebas, d esplazan su pun to de m ira en
los militares para indicar lo fácil que se puede com pro
un intento de encontrar errores en grupos integrados
bar y reparar una herram ienta en plenas maniobras. Esos
de m ódulos y finalm ente en el sistem a entero (C apí
dos significados no son lo m ismo que «facilidadde prue
tulo 18).
ba del software». La siguiente lista de com probación
• No son p o s ib le s las p ru e b a s exhaustivas. E l núm ero proporciona un conjunto de características que llevan a
de p erm utaciones de cam inos p ara in clu so un p ro un software fácil de probar.
gram a de tam añ o m o d erad o es ex cep cio n alm en te
grande (v ea la S e c c ió n 17.2 p a ra u n e stu d io m ás O p e ra tiv id a d . «C uanto m ejor funcione, m ás efi
avanzado). P o r este m o tiv o , es im p o sib le ejecu tar cientemente se puede probar.»
todas las com binaciones de cam inos durante las p ru e • El sistem a tiene pocos errores (los errores añaden
bas. Es posible, sin em bargo, cu b rir adecuadam ente sobrecarga de análisis y de generación de informes
la lógica del p ro g ra m a y aseg u rarse de que se han al proceso de prueba).
aplicado todas las co ndiciones en el d iseñ o a nivel « Ningún error bloquea la ejecución de las pruebas
de com ponente.
• El producto evoluciona en fases funcionales (per
• Para ser m ás eficaces, las p ru e b a s deberían ser rea-
m ite sim ultanear el desarrollo y las pruebas).
lizadaspor un ecpiipo independiente. P o r «m as efi
caces» querem os referirnos a p ruebas con la m ás alta O b serv ab ilid a d . «Lo que ves es lo que pruebas.»
probabilidad de encontrar errores (el objetivo prin ci • Se genera una salida distinta para cada entrada.
pal de las pruebas). P o r las razones que se ex pusie
• Los estados y variables del sistema están visibles o
ron an terio rm en teen este capítulo, y que se estudian
con m ás detalle en el C apítulo 18, el ingeniero del
se pueden consultar durante la ejecución.
software que creó el sistem a no es el m ás adecuado « Los estados y variables anteriores del sistema están
para llevar a cabo las p ruebas p ara el softw are. visibles o se pueden consultar (por ejem plo, reg is
tros de transacción).
17.1.3. F a cilid a d d e p ru eb a • Todos los factores que afectan a los resultados están
En circunstancias id eales, u n in g en iero d el so ftw are visibles.
diseña un p ro g ram a de com putadora, un sistem a o un « Un resultado incorrecto se identifica fácilmente.
producto con la « facilidad de p ru eb a» en m ente. Esto « Los errores internos se detectan automáticamente a
permite a los encargados de las p ruebas d iseñar casos través de m ecanismos de auto-comprobación.
de prueba m ás fácilm ente. Pero, ¿qué es la «facilidad
• Se inform a automáticamente de los errores internos.
de prueba» Jam es B ach 2 describe la facilidad de p ru e
ba de la siguiente m anera: . El código fuente es accesible.
www.FreeLibros.org
2 Los siguientes párrafos son copyright de Jam es Bach, 1994,y se han
adaptado de una página de lntem et que apareció inicialm ente en el
grupo de noticias comp.software-eng. Este material se ha usado con
penniso.
283
IN GE NIE RÍA DEL S OFT W ARE . UN E N F O Q U E P R Á C T I C O
www.FreeLibros.org
« Se h an com unicado los cam b ias del diseño.
prueba, los posibles efectos secundarios de este enfo
• L a d o c u m e n ta c ió n té c n ic a es in s ta n tá n e a m e n te que p u ed e n e n m a sc a ra r erro re s. E n g eneral, cada
accesible. p ru eb a debería realizarse separadam ente.
284
CAPITULO 17 T É C N I C A S DE P R U E B A D EL S O F T W A R E
I D IS E ftO d e c a s o s d e p r u e b a
El diseño de p ruebas p ara el softw are o p ara otros pro condiciones y/o bucles. Se puede exam inar el «estado del
ductos de ingeniería puede requerir tanto esfuerzo com o program a» en varios puntos para determ inar si el estado
el propio diseño inicial del pro d u cto . S in em bargo, los real coincide con el esperado o m encionado.
ingenieros del so ftw are,p o r razones que y a hem os trata
do, a m enudo tratan las pruebas com o algo sin im portan
cia, desarrollando casos de p ru eb a que « p arezcan
adecuados», pero que tien en p o ca g arantía de ser co m
CLAVE
pletos. R ecordando el objetivo de las pruebas, debem os I a s pruebas de caja blanca son diseñadas después
diseñar p ruebas que ten g an la m a y o r pro babilidad de de que exista un diseño de componente (o código fuente).
El detalle de lo lógica del programa debe estar disponible.
encontrar el m ayor núm ero de errores con la m ínim a can
tidad de esfuerzo y tiem po posible.
A prim era vista parecería que una prueba de caja blan
ca m uy profunda nos llevaría a tener «program as cien por
Qc/ta: cien correctos».T odo lo que tenem os que h acer es definir
baste uno sola regla pora el diseño de casos todos los cam inos lógicos, desarrollar casos de p rueba que
,de pruebo: cubrir todos les posibilidades, sin hacer los ejerciteny evaluar los resultados, es decir, generar casos
demasiados casos de pruebo. de prueba que ejerciten exhaustivamente la lógica del pro
TmmwoYamaura grama. D esgraciadam ente, la prueba exhaustiva presenta
ciertos problem as logísticos. Incluso para pequeños p ro
gram as, el núm ero de cam inos lógicos posibles puede ser
Cualquier producto de ingeniería (y de m uchos otros enorm e. Por ejem plo, considere un program a de 100 líne
campos) puede probarse de una de estas dos formas: (1) as de código en lenguaje C. D espués de la declaración de
conociendo la función específica p ara la que fue diseña algunos datos básicos, el program a contiene dos bucles
do el pro d u cto , se p u ed en llev ar a cab o pruebas que que se ejecutan de 1 a 20 veces cada uno, dependiendo de
demuestren que cada función es com pletam ente operati las condiciones especificadas en la entrada. D en tro del
va y, al m ism o, tiem po buscando errores en cada función; bucle interior, se necesitan cuatro construccionesif-then-
(2) conociendo el funcio n am ien to d el producto, se pue else. ¡Existen aproximadamente 1014 cam inosposibles que
den desarrollar pruebas que aseguren que «todas las pie se pueden ejecutar en este programa!
zas encajan», o sea, que la o peración in terna se ajusta a
las especificaciones y que todos los com ponentes in ter
nos se han com probado de fo rm a adecuada. E l prim er
enfoque de prueba se denom ina prueba de caja negra y el
segundo, prueba de caja blanca. No es posible una prueba exhaustiva sobre todos
los caminos del programa, porque el número de caminos
es simplemente demasiado grande.
c )£ c
Referencia Web
’e b f , Para poner de m anifiesto el significado de este núm e
ro, supongam os que hem os desarrollado un procesador
Lo página de técnicas de prueba es una excelente fuente
de información sobre los métodos de prueba: de pruebas m ágico («m ágico» porque no existe tal pro
www.testworks.com/News/TTN-Online/ cesador) para hacer una prueba exhaustiva. El procesador
puede desarrollarun caso de prueba, ejecu tarlo y evaluar
Cuando se consid era el softw are de com putadora, la los resultados en un m ilisegundo. Trabajando las 24 horas
prueba de caja negra se refiere a las p ruebas que se lle del día, 365 días al año, el procesadortrabajaría durante
van a cabo sobre la interfaz del software. O sea, los casos 3 1 7 0 años para p robar el program a. E sto irrem ediable
de prueba preten d en d e m o stra r que las fu n cio n es del m ente causaría estragos en la m ayoría de los planes de
software son operativas, que la entrad a se acepta de fo r desarrollo. L a p rueba exhaustiva es im posible para los
ma adecuada y que se produce un resultado co rrecto, grandes sistem as software.
así como que la integridad de la in fo rm a ció n ex tern a La prueba de caja blanca, sin embargo, no se debe dese
(por ejemplo, archivos de datos) se m antiene. U na p ru e char com o im practicable. Se pueden elegir y ejercitar una
ba de caja n eg ra exam in a algunos aspectos del m odelo serie de cam inos lógicos im portantes.
fundamental del sistem a sin te n e r m u ch o en cuenta la Se pueden co m p ro b ar las estru ctu ras de datos m ás
estructura ló g ica interna del softw are. im portantes para verificar su validez. Se pueden co m b i
La p ru eb a de caja blanca del softw are se b asa en el nar los atributos de la p rueba de caja blanca así com o los
www.FreeLibros.org
minucioso exam en de los detalles procedim entales. Se de caja negra, para llegar a un m étodo que valide la inter
comprueban los cam inos lógicos del software proponiendo faz del softw are y asegure selectivam ente que el funcio
casos de p ru eb a que ejerciten conjuntos específicos de nam iento interno del softw are es correcto.
285
IN GE NI ER ÍA DEL SOF TW AR E . UN E N F O Q U E P R Á C T I C O
L a p ru eb a de caja blanca, d enom inada a veces prueba cedim iento habitual tiende a hacerse m ás comprensi
de caja de cristal es un m étodo de d iseñ o de casos de ble (y bien exam inado), m ientras que el procesamiento
prueba que usa la estructura de control del diseño pro de «casos especiales» tiende a caer en el caos.
cedim ental para o btener los casos de prueba. M ediante • A m enudo creem os que un cam ino lógico tiene pocas
los m étodos de p ru eb a de caja blanca, el ingeniero del p o sib ilid a d e s d e e je c u ta rse c u a n d o , d e hecho, se
softw are puede o btener casos de p ru eb a que (1) garan puede ejecutar de fo rm a norm al. El flujo lógico de
ticen que se ejercita por lo m enos una vez todos los cam i un program a a veces no es n ad a intuitivo, lo que sig
nos independientes de cada m ódulo; (2) ejerciten todas n ifica que nuestras suposiciones intuitivas sobre el
las decisiones lógicas en sus vertientes v erd ad era y fal flujo de control y los datos nos pueden llevar a tener
sa; (3 ) ejecuten tod o s los bucles en sus lím ites y con sus e rro re s d e d ise ñ o que sólo se d e sc u b re n cuando
lím ites operacionales; y (4)ejerciten las estructuras inter com ienza la p ru eb a del cam ino.
nas de datos p ara asegurar su validez. • L os errores tipográficos son aleatorios. Cuando se
E n e ste m o m e n to , se p u ed e p la n te a r u n p re g u n ta traduce un p rogram a a có d ig o fu ente en un lenguaje
razonable: ¿P or qué em plear tiem po y energía p reo cu de program ación, es m u y probable que se den algu
p án d o se de (y p ro b a n d o ) las m in u c io sid a d e s ló gicas nos errores de escritura. M uchos serán descubiertos
cu a n d o p o d ría m o s e m p le a r m e jo r el e sfu e rz o ase g u p o r los m eca n ism o s de co m p ro b ac ió n de sintaxis,
rando que se h an alcanzado los requisitos del p ro g ra p e ro o tro s p e rm a n e c e rá n sin d e te c ta r h asta que
m a? O, d ich o de o tra fo rm a, ¿p o r qué no em p leam o s com ience la prueba. E s igual de probable que haya
todas n uestras energías en la pru eb a de caja negra? La un erro r tipográfico en un oscuro cam ino lógico que
resp u e sta se en c u e n tra en la n a tu ra le z a m ism a de los en un cam in o principal.
defectos del softw are (por ejem plo, [JO N 81]):
• Los errores lógicos y las su posicionesincorrectas son
inversam ente proporcionales a la probabilidad de que Q p a :
se ejecute un cam ino del program a. L os errores tie n w de en los esquinas
den a introducirse en nuestro trabajo cuando diseña ^ É i ^ l m e n los límites.
m os e im p lem en tam o s fu n cio n es, c o n d icio n es o ím p i* *
controles que se encuentran fuera de lo normal. El pro-
Donde cada círculo representa una o más sentencias, sin bifurcaciones, P ara ilustrar el uso de un grafo de flujo, considere
en LDP o código fuente m os la representación del d iseño procedim ental en la
FIG U R A 1 7 .1 . N otación de grafo de flujo. Figura 17.2a. E n ella, se usa un diagram a de flujo para
www.FreeLibros.org
3 Realmente, el método del camino básico se puede llevar a cabo sin
usar grafos de flujo. Sin embargo, sirve como herramienta Útil para
ilustrar el método.
286
CAPITULO 17 T É C N I C A S DE PRUEBA DEL S OF TW AR E
representar la estructura de control del program a. E n la C uando en un d iseño procedim ental se en cu en tran
Figura 17,2b se m u e stra el g rafo de flu jo co rre sp o n condiciones com puestas, la generación del grafo de flu-
diente al diagram a de flujo (suponiendo que no hay co n j o se hace un poco m ás com plicada. U na condición co m
diciones co m p u estas en lo s ro m b o s de d e c isió n del p u esta se da c u a n d o aparecen u n o o m á s o p e ra d o re s
diagrama de flujo). (OR, A N D , N A N D , Ñ O R lógicos) en una sentenciacon-
En la F igura 17,2b, cad a círcu lo , d en o m in ad o nodo dicional. E n la Figura 17.3 el segm ento en L D P se tra
del grafo de flujo, represen ta u n a o m ás sentencias pro- duce en el grafo de flujo anexo. Se crea un n o d o aparte
cedimentales. U n solo n o d o puede corresponder a una p o r cada una de las condiciones a y b de la sentencia SI
secuencia de cuadros de p roceso y a un ro m bo de d eci a O b. C ada n o d o que contiene una condición se d e n o
sión. Las flechas del grafo de flu jo , denom inadas a ris m ina nodo p re d ic a d o y está caracterizado po rq u e dos o
tas o e n la c e s, re p re se n ta n flu jo de c o n tro l y son m ás aristas em ergen de él.
análogas a las flechas del d iag ram a de flujo. U na aris
ta debe term in ar en un n o d o , in clu so au nque el nodo
Nodo
no represente n in g u n a sen ten cia p ro c e d im en ta l (p o r predicado
ejem plo, v éase el sím b o lo p a ra la c o n stru c c ió n
S i-en to n ces-si-n o ). L as áreas delim itadas p o r aristas
y nodos se d enom inan regiones. C u an d o c o n ta b iliz a IF a OR b
mos las regiones incluim os el área e x te rio r del grafo, Then Drocedimiento x
contando com o otra reg ió n m ás4. Else procedim iento y
ENDIF
17.4.2. C o m p l e j i d a d c i c l o m á t i c a
La com plejidad ciclom ática es una m étrica del so ftw a
re que proporciona una m edición cuantitativa de la co m
p le jid a d ló g ica de un p rogram a. C uando se u sa en el
co n tex to del m éto d o de p ru e b a del cam ino b ásico , el
v alor calcu lad o co m o com plejidad ciclom ática define
el núm ero de cam inos independientes del conjunto b á si
co de un program a y nos da un lím ite superior para el
núm ero de pruebas que se deben realizar para asegurar
que se ejecuta cada sentencia al m enos una vez.
a) Diagrama de flujo
U n ca m in o in dependiente es c u alq u ier cam in o del
program a que introduce, p o r lo m enos, un nuevo co n
ju n to de sentencias de proceso o una nueva condición.
E n térm inos del grafo de flujo, un cam ino independiente
está constituido p o r lo m enos p o r una arista que no haya
sido recorrida anteriorm ente a la definición del cam ino.
P or ejem plo, para el grafo de flujo de la Figura 17.2b,
un conjunto de cam inos independientes sería:
cam in o 1: 1-11
cam in o 2: 1-2-3-4-5-10-1-11
cam in o 3: 1-2-3-6-8-9-10-1-11
cam ino 4: 1-2-3-6-7-9-10-1-11
www.FreeLibros.org
4 En la Sección 17.6.1 viene un estudio m as detallado de los gratos
y su empleo en las pruebas.
287
I N GEN IE RÍ A DEL S O F TW A RE . UN EN F O Q U E PR AC T I C O
www.FreeLibros.org
B e n d if
1. el grafo de flujo tiene cuatro regiones END media
2. V (G ) = 1 1 aristas - 9 nod o s + 2 = 4 F IG U R A 1 7.4. LDP para diseño de pruebas con nodos
3. V (G ) = 3 nod o s p redicado + 1 = 4. no identificados.
288
CAPÍTULO 17 T É C N I C A S DE PRUE BA DEL S O F T W A R E
2 Determ inam os la com plejidad ciclom ática del m alm ente m erece la p en a id en tificar los n o d o s p re
grafo de flujo resultante. La co m p lejidad ciclom á d ic ad o p a ra que sea m ás fácil ob ten er lo s caso s de
tica, V(G), se d eterm in a aplicando uno de los algo prueba. E n este caso , los n o dos 2, 3, 5, 6 y 10 son
ritmos d escritos en la S ección 17.5.2.. Se debe ten er n o d o s predicado.
en cuen ta que se p u ede d eterm in ar V(G) sin d e sa 4. Preparamos los casos de prueba que forzarán la
rrollar el grafo de flujo, co ntando to d as las sen ten ejecución de cada cam ino del conjunto básico.
cias co n d icio n ales del L D P (para el p rocedim iento D ebem os escoger lo s datos de form a que las co n d i
media las co n d icio n es co m p u estas cu entan com o 2) ciones de los no d o s p redicado estén adecuadam ente
y añadiendo 1. establecidas, con el fin de co m probar cad a cam ino.
En la F ig u ra 17.5, Los casos de prueba que satisfacen el conjunto básico
V (G ) = 6 reg io n es p reviam ente descrito son:
V (G ) = 1 7 aristas - 13 n o d o s +2 = 6
Caso de prueba del camino 1:
V (G ) = 5 nodos p red icad o + 1 = 6
v a lo r (k) = entrada válida, donde k < i definida a con
tinuación
v a lo r (íj = - 9 9 9 , donde 2 <= i <= 100
resultados esperados: m e d ia co rre c ta sobre lo s k
v alores y to tales adecuados.
N ota: el cam ino 1 no se puede p ro b ar p o r sí solo;
debe ser p robado com o parte de las pruebas de los
cam inos 4, 5 y 6.
www.FreeLibros.org
L os p u n to s su sp e n s iv o s (...) que sig u en a los v a lo r (i) = entrada válid a donde i < 100
cam inos 4, 5 y 6 in d ican que cu alq u ier cam in o del resultados esperados: m e d ia co rre c ta so b re lo s n
resto de la estru ctu ra de con tro l es aceptable. N o r valores y to tales adecuados
289
INGE NIE RÍA DEL S O F TW A RE . UN E N F O Q U E P R Á C T I C O
17.4.4. M a tric e s d e g r a f o s
E l p ro c e d im ie n to p a ra o b te n e r e l g ra fo d e flu jo , e
in c lu so la d e te rm in a c ió n de u n c o n ju n to de c a m in o s
básico s, es su scep tib le de ser m ecan izad o . P ara d e s a
rrollar u n a h erram ien ta softw are que ayude en la pru e
b a d e l c a m in o b á s ic o , p u e d e se r b a s ta n te Útil u n a
e stru c tu ra de d a to s d e n o m in a d a m a triz de grafo.
U n a m a triz de g ra fo es u n a m a triz c u a d ra d a cu y o
ta m a ñ o (es decir, el n ú m e ro de fila s y de c o lu m n as)
Grafo de flujo Matriz del grafo
es ig u al al n ú m ero de n o d o s d el g ra fo de flujo. C ada
fila y c a d a c o lu m n a c o rre sp o n d e a u n n o d o e s p e c ífi F IG U R A 1 7.6. M atriz del grafo.
co y las entradas de la m atriz co rresponden a las co n e
x io n e s (aristas) e n tre los n odos. E n la F ig u ra 17.6 se
m u e stra u n se n c illo eje m p lo de u n g ra fo de flu jo con E n la F ig u ra 17.7, c a d a fila c o n d o s o m ás entra
su c o rre sp o n d ie n te m a triz de g ra fo [B E I90], d a s r e p r e s e n ta u n n o d o p re d ic a d o . P o r ta n to , los
c á lc u lo s a ritm é tic o s que se m u e stra n a la derecha de
E n la figura, c a d a n o d o d el grafo d e flu jo e s tá id en la m atriz de c o n e x io n e s n o s d an o tro n u ev o método
tific a d o p o r u n n ú m e ro , m ien tras que c a d a a rista lo
está p o r su letra. Se sitú a un a e n tra d a en la m atriz p o r de d eterm in ac ió n de la co m p le jid ad ciclom ática (Sec
c a d a c o n e x ió n e n tre d o s n odos. P o r e je m p lo , el nodo c ió n 17.4.2).
B eizer [BEI90] proporciona un tratam iento profun
3 e stá c o n e c ta d o co n el n o d o 4 p o r la a rista b.
do de otros algoritm os m atem áticos que se pueden apli
ca r a las m atrices de grafos. M ediante estas técnicas, el
| i | ¿Qué es una matriz análisis requerido para el d iseño de casos de prueba se
w de grafos y cómo aplicarla puede autom atizar parcial o totalm ente.
en la prueba?
Conectado
H asta aquí, la m atriz de grafo no es n ad a m ás que una
'representación tab u lar del grafo de flujo. Sin em bargo,
añadien d o u np e s o de enlace a cada entrad a de la m atriz, 1 1 1-1=0
la m atriz de grafo se puede convertiren una potente herra
2
m ien ta p ara la ev aluación de la estru ctu ra de control del
prog ram a durante la prueba. El peso de enlace nos da 3 1 i ¡¡ 2 - 1 = 1
inform ación adicional sobre el flujo de control. En su for
m a m ás Sencilla,el peso de enlace es 1 (existe u n a co n e 4 iilllj 1 1; 2 - 1 = 1
xión) ó O (no existe conexión). A los pesos de enlace se
les puede asignar otras p ropiedades m ás interesantes: 5 IIÉlll ¡Sil 2-1 =1
..... 3+1=*
« la probabilidad de que un enlace (arista) sea ejecutado; Matriz de grafo
. el tiem po de p rocesam iento asociado al recorrido de
www.FreeLibros.org
un enlace; Complejidad
. la m e m o ria re q u e rid a d u ra n te el re c o rrid o de un ciclomática
290
CAPÍTULO 17 T É C N I C A S DE PRUE BA DEL S O F T W A R E
f c u u P R U E B A D E L A E S T R U C T U R A D E C O M T R O L : ___
La técnica de pru eb a del cam in o b ásico descrita en la El m étodo de lap ru e b a de condiciones se centra en la
Sección 17.4 es una de las m uchas técnicas para la p ru e prueba de cada una de las,condiciones del program a. Las
ba de la estru ctu ra de control. A u n q u e la p ru e b a del estrategias de p ru eb a de condiciones (tratadas posterior
cam ino b á sic o es sencilla y altam en te efectiv a, no es m ente en este capítulo) tienen, gen eralm en te,d o s v en ta
suficiente p o r sí sola. E n e s ta secció n se tra tan otras ja s. L a prim era, que la c o b e rtu ra de la p ru e b a de u n a
variantes de la p ru e b a de e stru c tu ra de control. E stas condición es sencilla. L a segunda, que la cobertura de la
variantes am plían la cobertura de la p ru eb a y m ejoran p ru eb a de las condiciones de un p rogram a da una o rien
la calidad de la p ru eb a de c a ja blanca. tación para generar pruebas adicionalesdel program a.
El propósito de la p ru eb a de condiciones es detectar,
no sólo los errores en las condiciones de un program a,
17.5.1. P r u e b a d e c o n d ic ió n ’
sino tam bién otros errores en dicho program a. Si un co n
ju n to de p ru e b a s de un p ro g ra m a P es e fe c tiv o p a ra
d e te ctar erro res en las c o n d icio n es que se e n cu en tran
en P, es probable que el conjunto de pruebas tam bién sea
los erroresson muchomós comunes en el entorno efectiv o para d e tecta r otros erro res en el p ro g ram a P.
de los condicioneslógicas que en los sentencias de A d em ás, si u n a e strateg ia de p ru e b a es e fec tiv a para
proceso secuencial. d etectar errores en una condición, entonces es probable
que d ich a estrategia tam bién sea efectiva para detectar
errores en el program a.
La p r u e b a de c o n d ic ió n e s u n m é to d o de d ise ñ o de Se han propuesto u n a serie de estrategias de prueba
casos de p ru e b a que e je rc ita las c o n d icio n es ló gicas de condiciones. L a p ru e b a de ram ificaciones es, posi
contenidas en el m ó d u lo de un p ro g ram a. U n a co n d i blem en te, la estrategia de prueba de condiciones m ás
ción sim ple es u n a v a ria b le ló g ic a o u n a e x p re sió n sencilla. P ara una condición com puesta C, es necesario
relacional, p o sib le m e n te p re c e d id a c o n un o p e ra d o r ejecutar al m enos una vez las ram as verdadera y falsa
NOT (« i» ). U na expresión relacional to m a la siguien de C y cada condición sim ple de C [M Y E79].
te form a
E , < operador-relacional> E 2
www.FreeLibros.org
5Las secciones 17.5.1. y 17.5.2. se han adaptado de [TAI89] con per
miso del profesor K.C. Tai.
291
I N GE NI E RI A DEL S O F T W A R E . UN EN F O Q U E P R A C T I C O
Tam bién se pueden o btener p ruebas sensibles a error cio n al, podem os construir un conjunto de restricciones
p a ra e x p re sio n e s ló g icas [F O S 84, T A I87]. P ara una p ara C2 m ediante la m odificación del conjunto de res
expresión ló g ica sin g u lar (una ex p re sió n lógica en la tricciones {(v, v), (f, v), (v, f ) } definido para C,. Obsér
cual cada variable lógica sólo aparece u n a vez) con n vese que «v» para (E, = E 4) im plica «=» y que «f» para
variables lógicas (n > 0), p odem os g enerar fácilm ente (£,. = E 4) im plica «< »o «>». A l reem plazar (v, v) y (f,
un conjunto de pruebas con m en o s de 2" pruebas, de tal v) p o r (v, =) y (f, =), respectivam ente y reemplazando
form a que ese grupo de p ruebas garantice la detección (v, f) p o r (v, <) y (v,>), el conjunto de restricciones resul
de m ú ltiples erro res de operadores ló g ico s y tam bién tante para C, es {(v, =), (f, =), (v, <), (v, >)} .La cobertura
sea efectivo p ara detectar otros errores. del conjunto de restricciones anterior garantizará la detec
T ai [T A I89] su g ie re u n a e s tra te g ia de p ru e b a de ción de errores del operador relacional o lógico en C2.
c o n d ic io n e s q u e se b asa en las té c n ic a s d e sta c a d a s C om o tercer ejem plo, considerem os una condición
an terio rm en te. L a técn ica, d en o m in ad a B R O (p ru e de la form a
ba d el opera d o r re la c io n a /y de ra m ific a c ió n ) , g a ra n
C ,: (E, > E 2) & ( 13 = E4)
tiza la d etección de errores de operadores relaciónales
y de ra m ific a cio n e s en u n a co n d ició n d a d a , en la que donde E ,, E 2, E, y E, son ex p resio n es aritm éticas. Una
to d as las v ariab les ló g icas y o p erad o res relació n ales restric c ió n de c o n d ic ió n p ara C, es de la fo rm a (D¡,
d e la c o n d ic ió n a p a re c e n só lo u n a v e z y n o tie n e n D 2), donde to d o s los I), y D, son >, = o <. Puesto que
v ariab les en com ún. Cj es igual que C, e x c e p to en que la p rim era condi
La estrategia B R O utiliza restricciones de condición ció n sim ple de C, es una ex p resió n rela cio n a l, pode
para una condición C. U na restricción de co n d ició npara m o s c o n stru ir un c o n ju n to d e re stric c io n e s para C¡
C co n n c o n d icio n es sim p le s se d e fin e co m o (D ,, m ed ian te la m o d ific ac ió n del co n ju n to de restriccio
D 2,...,D n), donde D¡ (0 < i < n) es un sím bolo que e sp e nes para C„ obten ien d o
cifica una restricció n sobre el re su lta d o de la i-ésim a
{(>, =), (=, =), (<, =), o , » , ( > . <)}
condición sim ple de la condición C. U na restricción de
condición D para una condición C se cubre o se trata en La cobertura de este conjunto de restricciones garan
una ejecución de C, si durante esta ejecución de C, el tiza rá la d etecció n de erro res de o p e ra d o r relacional
resultado de cada condición sim ple de C satisface la re s en C,.
tricció n correspondiente de D.
P ara una variable lógica B , especificam os una re s 17.5.2. P rueba del flu jo de datos
tricció n sobre el resultado de B, que consiste en que B
El m étodo d e p r u e b a de flu jo de datos selecciona cami
tiene que ser verdadero (v) o falso (f). De form a sim i
nos de prueba de un program a de acuerdo con la ubi
lar, p ara una expresión relacional, se u tilizan los sím
cación de las definiciones y los usos de las variables del
bo lo s >, = y < p ara e sp e c ific ar re stric c io n e s sobre el
program a. Se han estudiado y com parado varias estra
resultado de la expresión.
teg ia s de p ru e b a de flu jo de d ato s (p o r ejem plo,
C om o ejem plo, considerem os la condición
[FR A 88], [N TA 88], [FRA 93]).
C,: Bi & B2 Para ilustrar el enfoque de prueba de flujo de datos,
supongam os que a cada sentencia de un program a se le
donde B , y B, son v ariables lógicas. L a restricción de
asigna un núm ero único de sentencia y que las funcio
condición p ara C¡ es de la form a (D¡, D 2), donde D , y
nes no m odifican sus parám etros o las variables globa
D, son «v» o «f». El v alo r (v, f) es una restricción de
les. Para una sentenciacon S com o núm ero de sentencia,
condición p ara C, y se cubre m ediante la prueba que
hace que el v alo r de B, sea v erdadero y el v alo r de B, DEF(S) = (X I la sentencia S contiene una definición
sea falso. L a estrategia de prueba B R O requiere que el deX }
co n ju n to de re s tric c io n e s {(v, v), (f, v ), (v, f )} sea U SO (S) = {X I la sentencia S contiene un uso deX}
cubierto m ediante las ejecuciones de C,. Si C, es in co
rrecta p o r uno o m ás errores de o perador lógico, p o r lo Si la sentencia S es una sentencia i f o de bucle, su con
m enos un p ar del conjunto de restricciones forzará el ju n to D E F estará vacío y su conjunto U SE estará basa
fallo de C,. do en la condición de la sentenciad. La definición de una
C om o segundo ejem p lo , c o n sid erem o s una c o n d i v aria b le!' en una sentenciad se dice que está viva en una
ción de la form a sentencia S 1 si existe un cam ino de la sentenciad a la sen
tencia S 1 que no contenga otra definición de X.
Ce. B i & ( % = E 4)
donde ffl es una expresión lógica y E, y E, son expre
siones aritm éticas. U n a restricció n de co n d ició n p ara C,
es de la form a ( D,, D2),
donde D,
es «v» o «f» y D, es
www.FreeLibros.org
Es para realista asumir que la prueba del flujo de datas
>, = o <. Puesto que C 2 es igual que C h excepto en que
puede ser usada ampliamente cuando probamos grandes
la segunda condición sim ple de C2 es una expresión rela-
sistemas. En cualquier rasa, puede ser utilizada en oreas
* En ingles, Branch arid Relational Operator del software que sean sospechosos.
292
CAPÍTULO 17 TÉCNIC AS DE PRUEBA DEL S O F T W A R E
www.FreeLibros.org
necesitamos cinco cam inos p ara cubrir la cadena DU. Bucles no
La razón es que se necesitan cinco cam inos para cubrir estructurados
la cadena D U de X desde B¡, 0 < i < 5, h asta B 6, y las F IG U R A 1 7.8. Clases de bucles.
293
I N GE NI E RÍ A DEL S O F TW A RE . UN E N F O Q U E P R A C T I C O
L a s p r u e b a s de caja negra, tam b ién d enom inada p r u e • ¿Es el sistem a particularm ente sensible a ciertos valo
ba de com portam iento, se centran en los requisitos fu n res de entrada?
cio n ales del softw are. O sea, la p ru e b a de c a ja n e g ra • ¿D e qué form a están aislados los lím ites de una clase
perm ite al ingeniero del softw are o b ten er conjuntos de de datos?
co n d icio n es de e n tra d a que e je rc ite n co m p letam en te
• ¿Q ué v o lú m e n es y niveles de datos to lerará el sis
to do s los re q u isito s fu n c io n a le s de un p ro g ram a. L a
tem a?
p rueb a de caja n eg ra no es una alternativa a las técn i
cas de p ru eb a de caja blanca. M ás b ien se trata de un . ¿Q ué efectos sobre la operación del sistem a tendrán
enfoque co m plem entario que intenta descu b rir d iferen com binaciones específicas de datos?
tes tipos de errores que los m étodos de c a ja blanca. M e d ia n te las técn icas d e p ru e b a d e c a ja neg ra se
L a p ru eb a de caja neg ra intenta en co n trar errores de o b tiene un c o n ju n to d e c aso s de p ru e b a que satisfa
las sig u ien tes categ o rías: (1 ) fu n cio n es in co rrectas o c e n lo s sig u ie n te s c rite rio s [M Y E 7 9 ]: (1 ) casos de
ausentes, (2) errores de interfaz, (3) errores en estruc p ru e b a que red u cen , en un c o eficien te que es mayor
turas de datos o en accesos a b ases de d ato s externas, que uno, el n ú m e ro d e c a so s de p ru e b a adicionales
(4 )errores de rendim iento y (5 ) erro res de in icializa- que se d eb en d ise ñ a r p a ra a lc a n z a r una p ru e b a razo
ción y de term inación. n able y ( 2 ) c a so s de p ru e b a que nos d icen algo sobre
A diferen cia de la pru eb a de caja blanca, que se lle la p rese n c ia o au sen cia de clases de erro res en lugar
v a a cabo p reviam ente en el p roceso de prueba, la p ru e de errores asociados solam ente con la p ru eb a que esta
b a de c a ja n e g ra tien d e a a p lic a rse d u ra n te fases m os realizando.
p osteriores de la p ru eb a (véase el C apítulo 18). Ya que
la p ru e b a de c a ja n e g ra ig n o ra in ten cio n ad am en te la
17.6.1. M é to d o s d e p r u e b a b a s a d o s e n g ra fo s
estru ctu ra de control, cen tra su atención en el cam po de
la inform ación. L as p ruebas se diseñan p ara resp onder El prim er paso en la p rueba de caja n eg ra es entender
a las siguientes preguntas: los objetos6 que se m odelan en el softw are y las rela
ciones que conectan a estos objetos. U n a vez que se ha
• ¿C óm o se p ru eb a la validez funcional?
llevado a cabo esto, el siguiente paso es definir una serie
. ¿Cóm o se prueba el rendim iento y el com portam iento de pruebas que verifiquen que «todos los objetos tienen
del sistem a? entre ellos las relaciones esperadas» [BEI95], Dicho de
. ¿Q u é clases de e n tra d a c o m p o n d rán u n o s b u enos o tra m anera, la p ru eb a del softw are em pieza creando un
casos de prueba? grafo de objetos im portantes y sus relaciones, y después
www.FreeLibros.org
°En este contexto, el térm ino «objeto» com prende los objetos de datos
que se estudiaron en los Capítulos 11 y 12 así com o objetos de pro
gram a tales com o m ódulos o colecciones de sentencias del lenguaje
de program ación.
294
CAPÍTULO 17 T É C N I C A S DE PRUEB A DEL SO F T W A R E
%
se esp e ra n cu an d o se gen era u n a ventana. E l p e so del
en lace in d ica que la v en tan a se tien e que g e n e ra r en
iV E m e n o s de 1.0 segundos. U n e n la ce no d irig id o e s ta
Un grafo representa Id relación entre objeto dato y objeto blece una relación sim étrica entre selección en el menú
programa, permitiéndonos derivar casos de prueba
de archivo nuevo y texto del documento, y los e n la
que buscan errores asociados con estas relaciones.
ces p aralelo s in d ic an las relac io n es en tre la ventana
del documento y el texto del documento. E n re a li
d ad , se d eb ería g en erar un grafo b asta n te m ás d e ta lla
Y Enlace dirlaldo Q b je to \ do c o m o p re c u rso r al d ise ñ o d e c aso s de p ru e b a. El
1 (peso de enlace)
ingeniero del softw are obtiene en to n ces caso s de p ru e
Enlace Peso de! nodo
ba a tra v e sa n d o el g ra fo y cu b rie n d o ca d a u n a d e las
no dirigido relaciones m ostradas. E stos casos de p rueba están d ise
Enlaces paralelos *v a 'o r®
. Obieto _ ñados para intentar encontrar erro res en alguna de las
relaciones.
a) Notación de grafo B eizer [BEI95] describ e un núm ero de m éto d o s de
prueba de com portam iento que pueden hacer uso de los
/V e n t a n a \
Nuevo \ La selección del m enú genera f de 1 grafos:
archivo J (tiem po de generación < 1.0 seg.) ^documental
M o d e la d o d e l f l u j o de tra n sa cció n . L o s n o d o s
Perm ite
la edición d e , A trib uto s: rep re sen tan los p aso s de alguna tran sa cc ió n (p o r
Se representa com o ejem plo, los pasos necesarios para una reserva en una
' C ontiene Dimensiones de Inicio
configuración
o preferencias línea aérea usando un servicio en línea), y los en la
predeterminadas ces representan las conexiones lógicas entre los pasos
Color de fondo: blanco
b) Un sencillo ejemplo Color cbl texto:
(por ejem plo, vuelo.inform ación.entrada es seguida
color o preferencias de validación!disponibilidad.procesam iento). El d ia
predeterminadas gram a de flujo de datos (C apítulo 12) puede usarse
R G U R A 1 7 .9 . para ayudar en la creación de grafos de este tipo.
Para llevar a cabo estos p aso s, el ingeniero del soft M odelado de estadofinito. Los nodos representan
ware empieza creando un grafo —una colección de nodos d iferen tes estad o s del softw are o b serv ab les p o r el
qte representan objetos; enlaces que representan las rela usuario (por ejem plo, cada una de las «pantallas» que
ciones entre los objetos;pesos de nodos que describen las aparecen cuando un telefonista coge una petición por
propiedades de un nodo (por ejem plo, un valor específi teléfono), y los enlaces representan las transiciones
co de datos o com portam iento de estado) y p e so s de enla que o cu rren p a ra m o v erse de estad o a estad o (por
ces que describen alguna característica de un enlace— !. e je m p lo ,p e tic ió n -in fo rm a ció n se verifica durante
En la F igura 17.9a se m u e stra u n a re p re se n tació n inventario-disponibilidad-búsqueda y es seguido por
simbólica de un grafo . L os n odos se representan com o cliente-factura-inform ación-entrada). E l diagram a
círculos conectados p o r enlaces que tom an diferentes fo r e sta d o -tra n sició n (C ap ítu lo 1 2 ) puede u sarse para
mas. Un enlace dirigido (representado p o r u n a flecha) ayudar en la creación de grafos de este tipo.
indica que una relación se m ueve sólo en una dirección. M o d e la d o d e l flu jo de d a to s. L o s n o d o s so n
Uv i enlace bidireccional, tam b ién denom inado enlace o b jeto s de d a to s y lo s e n la c e s son las tra n sfo rm a
simétrico, im plica que la relación se aplica en am bos sen c io n e s q u e o c u rre n p a ra c o n v e rtir u n o b je to de
tidos. Los enlaces paralelos se usan cuando se establecen d atos en otro. P or ejem plo, el n o d o F IC A .im p u e s -
diferentes relaciones entre los n odos del grafo. t o ,r e te n id o (F IR ) se c a lc u la d e b r u to s .s u e ld o s
Como ejem plo sencillo, considerem os una parte de (B S) u sa n d o la rela c ió n F IR = 0 ,6 2 X BS.
un grafo de una aplicación de un p ro cesador de texto M o d ela d o de planificación. L os nodos son o b je
(Fig. 17.9b) donde: to s de p ro g ram a y los e n la c e s so n las c o n e x io n e s
objeto n.s 1 = selección en el menú de archivo nuevo secuenciales entre esos objetos. L o s pesos de e n la
objeto n.® 2 = ventana del documento ce se usan para especificar los tiem pos de ejecución
objetan.® 3 = texto del documento requeridos al ejecutarse el program a.
www.FreeLibros.org
^Si losconceptos anteriores suenan vagam ente familiares, recordemos gram a) caracterizados com o representaciones de diseño procedimen-
que los grafos se usaron tam bién en la Sección 17.4.1 para crear un tal o com o código fuente y los enlaces dirigidos indicaban el flujo de
grafo del programa para el método de la prueba del camino básico. Los control entre estos objetos del program a. Aquí se extiende el uso de los
nodos del grafo del programa contenían instrucciones (objetos de pro grafos para incluir la prueba de caja negra.
295
IN GE NI ER ÍA DEL SOF TW AR E . UN EN FOQ UE P R Á C T I C O
U n estudio detallado de cada u no de esto s m étodos de no se puede usar U N D O )d eb ería n apuntarse. Final
de p ru eb a basados en grafos está m ás allá del alcance m ente, todos los nodos del grafo deberían tener una rela
de este libro. El le c to r in te re sa d o d e b e ría c o n su lta r ción que los lleve de vuelta a ellos m ism os; en esencia,
[BEI95] p ara v er un estudio detallado. M erece la pena, un bucle de «no acción» o «acció n n u la» . Estas relacio
sin e m b a rg o , p ro p o rc io n a r un re s u m e n g e n é ric o del nes reflexivas deberían probarse tam bién.
enfoque de p ruebas b asadas en grafos. C uando em pieza el diseño de casos de prueba, el pri
m er objetivo es conseguir la cobertura de nodo. Esto sig
¿Cuáles son las artividodes nifica que las pruebas deberían diseñarse para demostrar
U generales requeridas que ningún nodo se h a om itido inadvertidam entey que
durante la prueba basada los pesos de nodos (atributos de objetos) son correctos.
en un grafo? A continuación, se trata la cobertura de enlaces. Todas
las relaciones se prueban basándose en sus propiedades.
Las p ruebas b asadas en grafos em piezan con la defi P o r e je m p lo , u n a re la c ió n sim étrica se p rueba para
nició n de todos los nod o s y pesos de nodos. O sea, se dem ostrar que es, de hecho, bidireccional. U na relación
identifican los objetos y los atributos. El m odelo de datos transitiva se p ru eb a para dem ostrar que existe transiti-
(C apítulo 12) puede usarse com o pun to de partida, pero vidad. U n a relación reflexiva se p rueba para asegurarse
es im portante ten er en cuen ta que m uchos nod o s p u e de que hay un bucle nulo presente. C uando se han espe
den ser objetos de p ro g ram a (no representados ex plíci cificado los pesos de enlace, se diseñan las pruebas para
tam ente en el m odelo de datos). P ara prop o rcio n ar una dem ostrar que estos pesos son válidos. Finalm ente, se
indicación de los p untos de inicio y final del grafo, es invocan las pruebas de bucles (S ección 17.5.3).
útil d efinir unos nod o s de entrada y salida.
U n a vez que se h an id entificado los nodos, se d eb e 17.6.2. P artición e q u iv a le n te
rían e sta b le c e r los en laces y los p eso s de enlaces. En
Lap a rtició n equivalente es un m étodo de prueba de caja
general, conviene n o m b rar los enlaces, aunque los en la
n eg ra que d ivide el cam po de entrada de un programa
ces que represen tan el flujo de control en tre los objetos
en clases de datos de los que se pueden derivar casos
de p ro g ram a no es n ecesario nom brarlos.
de prueba. U n caso de p rueba ideal descubre de forma
E n m uchos casos, el m odelo de g rafo puede tener
in m ed ia ta u n a clase de erro res (por ejem p lo , proceso
bucles (por ejem plo, un cam ino a través del grafo en el
incorrecto de todos los datos de carácter) que, de otro
que se encuentran uno o m ás nodos m ás de una vez). La
m odo, requerirían la ejecución de m uchos casos antes
prueb a de bucle (S ección 17,5.3) se puede aplicar tam
de detectar el e rro r genérico. L a partición equivalente
bién a nivel de com portam iento (de caja negra). El grafo
se dirige a la definición de casos de p ru eb a que descu
ayudará a identificar aquellos bucles que hay que probar.
bran clases de errores, reduciendo así el núm ero total
C ada relació n es estudiada separadam ente, de m an e
de casos de p rueba que hay que desarrollar.
ra que se p u ed an o btener casos de prueba. L a transiti-
v id a d de re la c io n e s se c u e n c ia le s es e s tu d ia d a p ara
determ in ar cóm o se p ro p ag a el im pacto de las relacio
nes a través de objetos definidos en el grafo. L a transi-
las clases de entrada san conocidas relativamente
tividad puede ilustrarse considerando tres objetos X ,Y
temprano en el procesa de software. Por esto razón,
y Z. C onsiderem os las siguientes relaciones:
comenzamos pensando en la partición equivalente
X es necesaria p a r a calcular Y una vez el diseña ha sido creada.
Y es necesaria p a r a calcular Z
El diseño de casos de p rueba para la partición equi
P or tanto, se h a establecido u n a relació n transitiva
valente se b asa en una evaluación de las clases de equi
entre X y Z:
v a le n c ia para u n a co n d ició n de entrada. M ediante
X es n ecesaria p a r a calcular Z conceptos introducidos en la sección anterior, si un con
B asán d o se en e s ta re la c ió n tra n sitiv a , las p ru eb as ju n to de objetos puede unirse p o r m edio de relaciones
para encontrar errores en el cálculo de Z deb en co n si sim étricas, transitivas y reflexivas, entonces existe una
derar u n a v aried ad de v alores p ara X e Y. clase de equivalencia [BEI95]. U na clase de equiva/en-
L a sim etría de u n a relación (enlace de grafo) es tam cia representa un conjunto de estados válidos o no váli
bién un a im portante directriz p ara d iseñar casos de prue do s para co n d icio n es de entrada. T íp ic am e n te, una
ba. Si un enlace es bidireccional (sim étrico),es im portante condición de entrada es un valor num érico específico,un
p ro b a r esta característica. L a c a ra c terístic a U N D O rango de valores, un conjunto de valores relacionados o
[BEI95] (deshacer) en m uchas aplicaciones para o rd e una condición lógica. Las clases de equivalencia se pue
nadores personales im plem enta una lim itada simetría. Es den definir de acuerdo con las siguientes directrices:
www.FreeLibros.org
decir, U N D O perm ite desh acer u n a acción después de 1. Si u n a c o n d ic ió n de e n tra d a e sp ec ifica un rango,
haberse com pletado. E sto debería probarse m in u cio sa se d efine u n a clase de eq u iv a len c ia v álid a y dos no
m ente y todas las excepciones (por ejem plo,lugares d o n válidas.
296
CAPÍTULO 17 TÉ CN IC A S DE PRUEBA DEL S O F T W A R E
2. Si una condición de entrada requiere un v alor e sp e prueba. E l an álisis de valores lím ite n o s lle v a a u n a
cífico, se define u n a clase de equivalencia válida y e le c c ió n d e c aso s de prueba que e je rc ite n los v a lo re s
dos no válidas. lím ite.
3. Si una condición de entrada especifica un m iem bro
de un conjunto, se define u n a clase de equivalencia
válida y una no válida. CLAVE
4. Si una condición de entrada es ló g ica, se define una AVL amplía la partlclónequlvalente para fijarse sobre
clase de equivalencia v álid a y u n a no válida. datos en el «límite» de una clase de equivalencia.
www.FreeLibros.org
tienden a darse m ás en los lím ites del cam po de e n tra H ay situaciones (por ejem p lo , aviónica de aeronaves,
da que en el « c e n tro » . P o r ello , se ha d e sa rro lla d o el co n tro l de planta nu clear) en las que la fiab ilid a d del
análisis de v a lo re s lím ite s (A V L ) c o m o té c n ic a de softw are es algo absolutam ente crítico. E n ese tipo de
297
in g e n ie r ía del s o f t w a r e . un en fo q u e p r á c tic o
aplicaciones, a menudo se utiliza hardware y software bas exhaustivas. El método de prueba de la tabla orto
redundante para minimizar la posibilidad de error. Cuan gonal es particularmente útil al encontrar errores aso
do se desarrolla software redundante, varios equipos de ciados con fallos localizados — una categoría de error
ingeniería del software separados desarrollan versiones asociada con defectos de la lógica dentro de un com
independientes de una aplicación, usando las mismas ponente software— .
especificaciones. En esas situaciones, se deben probar Para ilustrar la diferencia entre la prueba de la tabla
todas las versiones con los mismos datos de prueba, para ortogonal y una aproximación más convencional «un
asegurar que todas proporcionan una salida idéntica. elemento de entrada distinto cada vez», considerar un
Luego, se ejecutan todas las versiones en paralelo y se sistema que tiene tres elementos de entrada, X , Y y Z.
hace una comparación en tiempo real de lo s resultados, Cada uno de estos elementos de entrada tiene tres valo
para garantizar la consistencia. res diferentes. Hay 33 = 27 posibles casos de prueba.
Con las lecciones aprendidas de los sistemas redun Phadke [PHA97] sugiere una visión geométrica de los
dantes, los investigadores (por ejemplo, [BRI87]) han posibles casos de prueba asociados con X , Y y Z,
sugerido que, para las aplicaciones críticas, se deben según se ilustra en la Figura 17.10. Observando la
desarrollar versiones de software independientes, inclu figura, cada elemento de entrada en un momento dado
so aunque só lo se vaya a distribuir una de las versiones puede m odificarse secuencialm ente en cada eje de
en el sistema final basado en computadora. Esas ver entrada.
siones independientes son la base de una técnica de prue
ba de caja negra denominada p rueba de comparación
o pru eb a mano a mano [KNI89].
Cuando se han producido múltiples implementacio-
nes de la misma especificación, a cada versión del soft
ware se le proporciona como entrada los casos de prueba
diseñados mediante alguna otra técnica de caja negra
(por ejemplo, la partición equivalente). Si las salidas
producidas por las distintas versiones son idénticas, se
asume que todas las implementaciones son correctas.
Si la salida es diferente, se investigan todas las aplica Un e le m e n to d e e n tra d a T ab la o rto g o n a l L9
ciones para determinar el defecto responsable de la dife a la vez
rencia en una o más versiones. En la mayoría de los F IG U R A 17.10. Una vista geométrica de los casos.
casos, la comparación de las salidas se puede llevar a
cabo mediante una herramienta automática.
Esto da com o resultado un alcance relativamente
limitado al dominio de entrada (representado en la figu
17.6.5. P r u e b a d e l a t a b l a o rto g o n a l
ra por el cubo de la izquierda).
Hay muchas aplicaciones en que el dominio de entrada Cuando se realiza la prueba de la tabla ortogonal,
es relativamente limitado. Es decir, el número de pará se crea una tabla ortogonal L 9 de casos de prueba. La
metros de entrada es pequeño y los valores de cada uno tabla ortogonal L9 tiene una «propiedad de equilibrio))
de los parámetros está claramente delimitado. Cuando [PHA97], Es decir, los casos de prueba (representados
estos números son muy pequeños (por ejemplo, 3 pará por puntos negros en la figura) están «uniformemen
metros de entrada tomando 3 valores diferentes), es posi te dispersos en el dominio de prueba», según se ilus
ble considerar cada permutación de entrada y comprobar tra en el cubo de la derecha de la Figura 17.10. El
exhaustivamente el proceso del dominio de entrada. En alcance de la prueba por todo el dominio de entrada
cualquier caso, cuando el número de valores de entra es más completo.
da crece y el número de valores diferentes para cada Para ilustrar el uso de la tabla ortogonal L9, consi
elemento de dato se incrementa, la prueba exhaustiva derar la función enviar para una aplicación de un fax.
se hace impracticable o imposible. Cuatro parámetros, P l, P2, P3 y P4 se pasan a la fun
ción enviar. Cada uno tiene tres valores diferentes. Por
ejemplo, Pl toma los valores:
CLAVE P l = 1, enviar ahora
I a prueba de le tabla ortogonal permite diseñar casos P2 = 2, enviar dentro de una hora
de prueba que facilitan una cobertura máximo de prueba P3 = 3, enviar después de media noche
con un número razonable de casos de prueba. P2, P3, y P4 podrán tomar también los valores 1, 2y 3,
representando otras funciones enviar.
www.FreeLibros.org
La p ru eb a de la tabla ortogonal puede aplicarse a Si se elige la estrategia de prueba «un elemento de
problemas en que el dominio de entrada es relativamente entrada distinto cada vez», se especifica la siguiente
pequeño pero demasiado grande para posibilitar prue secuencia de pruebas (P1,P2,P3,P4): (1,1,1,1), (2,1,1,1),
290
C A P Í T U L O 17 T É C N I C A S DE P RU EB A DEL S O F T W A R E
(3.1.1.1), (1,2,1,1), (1,3,1,1), (1,1,2,1), (1,1,3,1), L a p ru eb a de la tab la o rtogonal nos perm ite propor
(1.1.1.2), y (1,1,1,3). Phadke [PHA97] v aloraestos casos c io n a r u n a b u en a c o b e rtu ra de p ru e b a c o n b a sta n te s
de prueba de la siguiente m anera: m enos casos de p ru eb a que en la estrategia exhaustiva.
C ada uno de estos casos de prueba son Útiles, Únicam ente U n a tab la ortogonal L 9 para la función de envío del fax
cuando estos p arám etros de prueba no se influyen m utuam en se describe en la Figura 17.11.
te. Pueden detectar fallos lógicos cuando el v alor de un pará P h ad k e [P H A 97] v a lo ra el re su lta d o d e las p ru e
metro produce un mal funcionam iento del software. E stos fallos
b a s u tiliz a n d o la ta b la o rto g o n a l d e la s ig u ie n te
pueden llam arse fallos de m odalidad simple. E l m étodo no pue
de detectar fallos lógicos que causen un m al funcionam iento
m an era:
cuando dos o m ás parám etros sim ultáneam ente tom an deter Detecta y aísla todos los fallos de modalidad sim
minados valores; es decir, no se pueden detectar interacciones. ple. U n f a llo d e m o d a lid a d sim p le e s u n p ro b le m a q u e
Así, esta habilidad para detectar fallos es lim itada. afecta a un s o lo parám etro. P o r e je m p lo , si to d o s lo s caso s
Dados un núm ero relativam ente pequeño de parám e d e p ru e b a del fa c to r P 1 = 1 c au sa n una c o n d ic ió n d e e rro r,
tros de entrada y valores diferentes, es posible realizar una n os e n c o n tra m o s c o n el fa llo d e m o d a lid a d sim ple. E n los
e je m p lo s d e p ru e b a 1, 2 y 3 [Fig. 17.111 se e n c o n tra rá n
prueba exhaustiva. E l n ú m ero de p ruebas requeridas es
e rro re s . A n a liz a n d o la in fo rm a c ió n e n q u e la s p ru e b a s
3-81 — grande pero manejable— . Todos los fallos aso m u estran erro res, se puede id en tific ar que valo res del p a rá
ciados con la perm utación de los datos serán encontrados, m etro c au sa n el error. E n e ste e je m p lo , a n o ta m o s q u e las
pero el esfuerzo requerido es relativam ente alto. p ru e b a s 1, 2 y 3 c au sa n un e rro r, lo q u e p e rm ite a is la r [el
p ro c e so ló g ic o a so c ia d o c o n « e n v ia r ah o ra» (P1 = 1)] la
fuente del error. E l aislam ien to del fallo es im p o rtan te para
so lu c io n a r el error.
P1 P2 P3 P4 '
Detecta todos los fallos de modalidad doble. S i e x is
1 1 1 1 te un pro b lem a d o n d e e stán afectados d o s p a rá m e tro s que
1 2 2 2 in te rv ie n e n c o n ju n ta m e n te , se lla m a fa llo d e m o d alid ad
doble. E n e fe c to , un fallo de m odalidad doble es una in d i
1 3 3 3 c ació n de in co m p atib ilid ad o de im p o sib ilid ad de in te ra c
2 1 2 3 c ió n e n tre dos parám etros.
2 2 3 1
Fallos multimodales. L as tab las orto g o n ales [del tipo
2 3 1 2 indicado] pueden asegurar la detección Ú nicam ente de fallos
3 1 3 2 de m odalidad sim ple o doble. S in em bargo, m uchos fa llo s
e n m o d a lid a d m últip le p u e d e n ser d e te c ta d o s a tra v é s de
3 2 1 3 e sta s pruebas.
3 3 2 1
Se p u ede e n c o n tra r u n e stu d io d e ta lla d o so b re la
FIGURA 17.11. Unatabla ortogonal L9. prueba de tabla ortogonal en [P H A 89].
A medida que el softw are de com p u tad o ra se h a hecho en m en o s c o sto sa en tie m p o y m ás exacta. A l m ism o
más com plejo, h a crecido tam b ién la necesidad de en fo tie m p o , la c o m p le jid a d d e las IG U s h a a u m e n ta d o ,
ques de p ruebas especializados. L os m étodos de prue o rig in an d o m á s d ific u ltad en el d iseño y e je c u c ió n de
ba de c a ja b la n c a y de c a ja n e g ra tra ta d o s en las los c a so s de prueba.
Secciones 17.5 y 17.6 son aplicables a todos los e n to r
nos, arquitecturas y aplicaciones pero a v eces se nece
sitan unas directrices y enfoques Únicos p ara las pruebas.
En esta sección se estudian directrices de p ru eb a para
entornos, arq u itectu ras y a p licacio n es esp ecializad as
que pueden encontrarse los ingenieros del softw are.
D ado que las IG U s m o d ern as tie n e n la m ism a ap a
rie n c ia y filo s o fía , se p u e d e n o b te n e r u n a se rie de
17.7.1. P r u e b a d e i n t e r f a c e s g r á f i c a s d e u s u a r i o
p ru eb as estándar. L o s g rafo s de m o d elad o de estad o
(IG U s)
finito (S ección 16.6.1) pueden ser utilizados para re a
Las interfaces g rá fic a s de u su a rio (IG U s) p resen tan liz a r p ru eb as que v ay an dirig id as sobre d ato s e s p e c í
interesantes d esafío s p ara los in g en iero s del so ftw a fico s y p ro g ram as o b jeto que sean re le v an te s p a ra las
www.FreeLibros.org
re. D ebido a los co m p o n en tes re u tiliz a b le s p ro v isto s IG U s.
como p arte de los en to rn o s de d e sa rro llo de las G U I, C onsiderando el gran núm ero de perm utaciones aso
la creación de la in te rfa z d e u su a rio se h a co n v ertid o ciad as con las o p e racio n es IG U , sería n ec esario p a ra
299
IN GE NI E RÍ A DEL SOF TW ARE . UN E N F O Q U E P R Á C T I C O
pro b ar el u tilizar herram ientas autom áticas. U n a am plía claridad editorial. La segunda fase, la p r u e b a en vivo,
lista de herram ientas de p ru eb a de IG U h an aparecido utiliza la docum entación unto al uso del programa real.
en el m ercado en los Últimos años. P ara p ro fu n d izar en Es sorprendente, pero la prueba en vivo de la docu
el tem a, v er el C apítulo 31. m entación se puede enfocar usando técnicas análogas
a m uchos de los métodos de prueba de caja negra estu
diados en la Sección 17.6. Se pueden em plear pruebas
basadas en grafos para describir el em pleo del progra
ma; se pueden em plear el análisis de la partición equi
valente o de los valores límites para definir varias clases
de entradas e interacciones asociadas.
Prueba IGU.
www.FreeLibros.org
L a p ru eb a de la d ocum entación se puede en focar en sistemas de tiem po real consiste en probar cada tarea
d o s fases. L a p rim e ra fase, la revisió n e in sp ecció n independientemente. Es decir, se diseñan pruebas de
(C apítulo 8), exam ina el d ocum ento para com p ro bar la caja blanca y de caja negra y se ejecutan para cada
300
CAPÍTULO 17 T É C N I C A S DE PRUEB A DEL S O F T W A R E
tarea. Durante estas pruebas, cada tarea se ejecuta inde Prueba intertareas. U na vez que se han aislado
pendientemente. L a prueba de la tarea h a de descubrir los erro res en las tareas in d iv id u ales y en el c o m
errores en la lógica y en el funcionam iento, pero no p o rta m ie n to del sistem a, la p ru e b a se dirige h a cia
los errores de tem porización o de com portam iento. los errores relativos al tiem po. Se prueban las tare
as asíncronas que se sabe que co m u n ican con otras,
co n d iferen tes tasa s de d ato s y ca rg a s d e p ro c e so
. . . . • 'T T V p ara determ inar si se producen erro res de sin cro n is
m o entre las tareas. A dem ás, se prueban las tareas
BForum de Discusión de la Prueba del Software presenta temas que se c o m u n ic a n m e d ia n te co la s de m e n sa je s o
de ¡nterésa los profesionales que efectúanla pruebo: alm acenes de datos, para detectar errores en el ta m a
www.ondaweb.coni /HyperNews/get.cgi/forums/sti.html ño de esas áreas de alm acenam iento de datos.
Prueba de comportamiento. U tilizando m odelos Prueba del sistema. El software y el hardware están
del sistema creados con herram ientas C A SE, es posi integrados, por lo que se lleva a cabo una serie de prue
ble sim ular el com portam iento del sistem a en tiem po bas com pletas del sistem a (C apítulo 18) para intentar
real y exam inar su com portam iento com o consecuen descubrir errores en la interfaz softw are/hardw are.
cia de sucesos externos. Estas actividades de análisis L a m ayoría de los sistem as de tiem po real procesan
pueden servir com o base del diseño de casos de prue interrupciones. P or tanto, es esencial la prueba del m ane-
ba que se llevan a cabo cuando se ha construido el soft j o de estos sucesos lógicos. U sando el diagram a estado-
ware de tiem po real. U tilizando una técnica parecida tran sició n y la especificaciónde control (C apítulo 12), el
a la partición equivalente (Sección 17.6.1), se pueden responsable de la p rueba desarrolla una lista de todas las
categorizar los sucesos (por ejem plo, interrupciones, posibles interrupciones y del proceso que ocurre com o
señales de control, datos) p ara la prueba. Por ejem plo, consecuenciade la interrupción. Se diseñan después prue
los sucesos p ara la fotocopiadora p u eden ser in te bas para valorar las siguientes característicasdel sistema:
rrupciones del usuario (por ejem plo, reinicialización
• ¿Se han asignado y gestionado apropiadam ente las
del contador), interrupcionesm ecánicas (por ejem plo,
prioridades de interrupción?
atasco del papel), interrupciones del sistema (por ejem
plo, bajo nivel de tinta) y m odos de fallo (por ejem • ¿Se g estio n a co rrectam en te el p ro ce sam ie n to para
plo, rodillo excesivam ente caliente). Se p rueba cada todas las interrupciones?
uno de esos sucesos individualm ente y se exam ina el • ¿Se ajusta a los requisitos el rendim iento (por eje m
com portam iento del sistem a ejecutable para detectar plo, tiem po de proceso) de todos los procedim ientos
errores que se produzcan com o co n secuenciadel pro de gestión de interrupciones?
ceso asociado a esos sucesos. Se puede com parar el
• ¿C rea problem as de funcionam iento o rendim iento
com portam iento del m odelo del sistem a (desarrolla
la llegada de un gran volum en de interrupciones en
do durante el análisis) con el softw are ejecutablepara
m om entos críticos?
ver si existe concordancia. U n a vez que se h a proba
do cada clase de sucesos, al sistem a se le presentan A dem ás, se deberían p robar las áreas de datos g lo
sucesos en un orden aleatorioy con una ffecuenciaale- bales que se usan para transferir inform ación com o p ar
atoria. Se exam in a el co m portam iento del softw are te del p ro c e so de u n a in te rru p c ió n p a ra v a lo ra r el
para detectar errores de com portam iento. potencial de generación de efectos colaterales.
El principal objetivo del diseño de casos de p ru eb a es p endientes que aseguren la total cobertura. L a prueba
obtener un co n ju n to de p ru eb as que ten g an la m a y o r de condiciones y del flujo de datos ejercita m ás aún la
probabilidad de d escu b rirlo s defectos del software. Para lógica del p rogram a y la p ru eb a de los bucles com ple
llevar a cabo este objetivo, se usan d os categorías d ife m en ta a otras técnicas de caja blanca, proporcionando
rentes de técnicas de diseño de casos de prueba: p ru e un procedim iento para ejercitar bucles de distintos g ra
ba de caja b lan ca y p ru eb a de c a ja negra. dos de com plejidad.
Las pruebas de caja b lan ca se centran en la e stru c H eztel [H ET84] describ e la p ru eb a de caja b lan ca
tura de control del program a. Se obtienen casos de prue co m o « p ru eb a a p eq u e ñ a esc ala» . E sto se d eb e a que
ba que aseguren que durante la p ru eb a se han ejecutado, las p ru eb as de c a ja b la n c a que h em o s c o n sid erad o en
por lo m enos u n a vez, todas las sentencias del p ro g ra este c a p ítu lo son típ ic a m e n te a p lic a d a s a p e q u e ñ o s
ma y que se ejercitan todas las condiciones lógicas. La c o m p o n e n te s de p ro g ram as (po e je m p lo ; m ó d u lo s o
www.FreeLibros.org
prueba del cam ino básico, u n a técn ica de caja blanca, p eq u eñ o s g rupos de m ódulos). P or o tro lado, la p ru e
hace uso de grafos de p ro g ram a (o m atrices de grafos) b a de c aja n e g ra am p lía el enfo q u e y se pued e d e n o
para obtener el conjunto de p ruebas linealm ente inde- m in a r «pru eb a a gran escala».
30 1
ING EN IE RÍA DEL S OFT W ARE . UN E N F O Q U E P R A C T I C O
Las pruebas de caja negra son diseñadas para validar Los m étodos de prueba especializados comprenden una
los requisitos funcionales sin fijarse en el funcionam ien am plia gam a de capacidades del softw are y áreas de apli
to interno de un program a. Las técnicas de prueba de caja cación. Las interfaces gráficas de usuario, las arquitectu
neg ra se centran en el ám bito de inform ación de un pro ras cliente/servidor, la docum entación y facilidadesde
gram a, de form a que se proporcione una cobertura co m ayuda, y los sistem as de tiem po real requieren directrices
pleta de prueba. Los m étodos de prueba basados en grafos y técnicas especializadas para la prueba del software.
exploran las relaciones entre los objetos del program a y A m enudo, los desarrolladores de softw are experi
su com portam iento. L a p artició n equivalente divide el m entados dicen que «la prueba nunca term ina, simple
cam po de entrada en clases de datos que tienden a ejerci m ente se transfiere de usted (el ingeniero del software)
tar determ inadas funciones del softw are. El análisis de al cliente: C ada vez que el clien te usa el program a, lle
valores límite prueba la habilidad del program a para m ane- va a cabo una prueba.» A plicando el diseño de casos de
ja r datos que se encuentran en los lím ites aceptables. La prueba, el ingeniero del softw are puede conseguir una
prueba de la tabla ortogonal sum inistra un m étodo siste prueba m ás com pleta y descubrir y corregir así el mayor
m ático y eficiente p ara p ro b ar sistem as con un núm ero n ú m ero de erro res antes de que co m ien cen las «prue
reducido de parám etros de entrada. bas del cliente».
[BE190] B eizer,B ., Software T estin g T e clm iq u e s,% ed., Van [JON81] Jones, T.C., Program m ing Productivity: Issuesfor
N ostrand Reinhold, 1990. the 8 0 ’s, IEEE Com puter Society Press, 1981.
[BE195] Beizer, B., Black-Box Testing, Wiley, 1995. [KAN93] K aner,C ., J. F a lk y H.Q. N guyen, TestingCompu-
[BRI87] Brilliant, S.S., J.C. K night, y N.G. Levenson, «The ter Software, 2.a ed., Van N ostrand Reinhold, 1993.
Consistent C om parisonP roblem in N-Versión Software», [KNI89] Knight, J., y P. Am m ann, «Testing Software Using
A C M Software Engineering N otes, vol. 12,n.° 1, enero M últiple V ersions», Softw are P roductivity Consortium,
1987,pp. 29-34. Report n.° 89029N, Reston, VA, Junio 1989.
[DAV95] D avis, A., 201 Principies o f Software Development, [MCC76] M cCabe, T., «A Software Com plexity Measure»,
M cGraw -H ill, 1995. IE E E Trans. Software Engineering, vol. 2, Diciembre 1976,
[DEU79] D eutsch, M., «Verification and Validation», Soft pp. 308-320.
ware Engineering, R. Jensen y C.Tonies (eds.), Prentice- [MYE79] Myers, G., T heA rt o f Software Testing,Wiley, 1979.
Hall, 1979,pp. 329-408. [NTA88] Ntafos, S.C., «Acomparison of Some StmcturalTes-
[FOS84] Foster, K .A ., «S ensitive Test D ata fo r B oolean tingStrategiess./E LA Trans. Software Engineering, vol. 14,
E xpressions»,H CA / Software Engineering Notes, vol. 9, n.° 6, Jum o 1988,pp. 868-874.
n.° 2, Abril 1984,pp. 120-125. [PHA89] Phadke, M .S., Q uality Engineering U sing Robust
[FRA88] Frankl,P.G .,y E.J. W eyuker,«An A pplicableFam ily Design, Prentice Hall, 1989.
of Data Flow Testing Criteria», IE E E Trans. Software Engi [PHA97] Phadke, M.S., «Planning Efficient Software Tests»,
neering, vol. 14,n.° 10, O ctubre 1988,pp. 1483-1498. Crosstalk, vol. 10,n.° 10, Octubre 1997,pp. 278-283.
[FRA93] Frankl, P .G , y S. Weiss, «A n Experim ental Com- [TAI87] Tai, K.C., y H.K. Su, «Test G eneration for Boolean
parison of the Effectiveness of Branch Testing and Data Expresions», Proc. CO M PSAC’87, Octubre 1987,pp. 278-
Flow » ,IE E E Trans. Software Engineering, vol. 19,n.° 8, 283.
Agosto 1993,pp. 770-787. [TAI89] Tai, K.C., «W hat to D o B eyond Branch Testing»,
[HET84] H etzel, W., The Com plete G uide to Softw are Tes A C M Softw are E ngineering N o tes, vol. 14,n.° 2, Abril
ting, QED Information Sciences, Inc., Wellesley, M A, 1984. 1989,pp. 58-61.
[HOW82] H ow den, W.E., «Weak M utation Testing and the [WHI80] W hite, L.J., y E.I. Cohén, «A D om ain Strategiefor
Com pletenessof Test Cases», IE E E Trans. Software E ngi Program Testing», IE E E Trans. Software Engineering, vol
neering, vol. SE-8, n.° 4, ju lio 1982,pp. 371-379. SE-6, n.° 5, M ayo 1980,pp. 247-257.
TI
17.1. M yers [MYE79] usa el siguiente program a com o auto- 17.2. Diseñe e implemente el programa especificado en el Pro
com probación de su capacidad para especificar una prueba blem a 17.1 (con tratam iento de errores cuando sea necesario).
adecuada: un program a lee tres valores enteros. Los tres valo O btenga un grafo de fluj o para el program a y aplique la prue
res se interpretan com o representación de la longitud de los ba del cam ino básico para desarrollar casos de prueba que
tres lados de un triángulo. El program a im prim e un m ensaje garanticen la com probación de todas las sentencias del pro
www.FreeLibros.org
indicando si el triángulo es escaleno, isósceles o equilátero. grama. E jecute los casos y m uestre sus resultados.
D esarrolle un conjunto de casos de prueba que considere que 17.3. ¿Se le ocurren algunos objetivos de prueba adicionales
probará de form a adecuada este programa. que no se hayan m encionado en la Sección 17.1.1?
302
CAPÍTULO 17 T É C N I C A S DE PRUE BA DEL S O F T W A R E
WBéhias lec t u r a s y fu e n t e s de in f o r m a c ió n
www.FreeLibros.org
Application Software Testing,P rentice-H all, 1 9 9 3 )e stu d ia asp e c re n c ia s a p á g in a s w e b que son re le v a n te s sobre lo s c o n
tos de las p ruebas p a ra g ra n d es siste m a s d e in fo rm ació n , y M a rk s c e p to s d e p ru e b a , m é to d o s y e s tra te g ia s se p u e d e n
CTesting VeryBig Systems, M cG raw -H ill, 1 9 9 2 )e stu d ia lo s asp e c e n c o n tra r e n h t t p : //w w w .p r e s s m a n 5 .c o m .
www.FreeLibros.org
C A P ÍT U L O
1 Q E S T R A T E G IA S DE PR U E B A
X O DE S O FTW A R E
N A estrateg ia de p ru eb a del softw are integra las técnicas de diseño de casos de prueba
U en u n a serie de pasos bien planificados que dan com o resultado una correcta co n struc
ción del softw are. L a estrategia p roporciona un m ap a que describ e los pasos que hay
que llev ar a cabo co m o parte de la p rueba, cuán d o se deben p lanificar y realizar esos paso s, y
cuánto esfu erzo , tiem po y recursos se van a requerir. P o r tan to , cualquier estrategia de prueba
debe inco rp o rar la planificación de la prueba, el diseño de casos de p rueba, la ejecución de las
p ruebas y la agrupación y evaluación de lo s datos resultantes.
U n a estrateg ia de p rueba del softw are debe ser suficientem ente flexible para prom over la
creatividad y la adaptabilidad necesarias para adecuar la p rueba a todos lo s grandes sistem as
basados en softw are. A l m ism o tiem po, la estrategia debe ser suficientem ente ríg id a para p ro
m o v er un seguim iento razonable de la planificación y la gestión a m ed id a que progresa el p ro
yecto. S hoom an [S H 0 8 3 ] trata estas cuestiones:
E n m uchos aspectos, la p ru eb a es un p roceso individualista, y el núm ero de tipos diferentes de pruebas
varía tan to com o los diferen tes enfo q u es de desarrollo. D urante m uchos años, nuestra Unica d efensa contra
los errores de program ación era un cuid ad o so diseño y la propia inteligencia del program ador. A hora nos
enco n tram o s en una era en la que las técnicas m odernas de diseño [y las revisiones técn icas form ales] nos
ayudan a re d u cir el núm ero de errores iniciales que se encuentran en el código de form a inherente. D e fo r
m a sim ilar, los d iferen tes m étodos de prueba e stán em pezando a agruparse en v arias filosofías y enfoques
diferentes.
VISTAZO RÁPIDO
E stas « filosofías y enfoques» constituyen lo que nosotros llam arem os estrategia. E n el C apí
tulo 17 se p resentó la tecnología de p ru eb a del softw are'. E n este capítulo centrarem os nuestra
www.FreeLibros.org
atención en las estrategias de p rueba del softw are.
305
IN GE NI ER ÍA DEL S OFT W ARE . UN E N F O Q U E P R Á C T I C O
Referencia Web
Información útil sobre las estrotegiosde pruebo del software
es suministrado en el informe sobre lo Pruebo del Software
en:www.ondaweb.com/stí/newshr.htm
18.1.1. V e r i f i c a c i ó n y v a l i d a c i ó n
L a p ru e b a d e l s o ftw a re es u n e le m e n to d e u n te m a m ás
a m p lio q u e , a m e n u d o , es c o n o c id o c o m o v e rific a c ió n M i l l e r [ M Í L 7 7 ] re la c io n a la p ru e b a d e l s o ftw a re con
y v a lid a c ió n ( V & V ) . L a verificación se re fie re al c o n la g a ra n tía d e c a lid a d a l e s ta b le c e r q u e « la m o tiv a c ió n
ju n to d e a c tiv id a d e s que aseguran que e l s oftw are im p le - su b ya ce n te d e la p ru e b a d e p ro g ra m a s es c o n firm a r la
m e n ta c o rre c ta m e n te u n a fu n c ió n e s p e c ífic a . L a c a lid a d d e l s o ftw a re c o n m é to d o s q u e se p u e d e n a p li
validación se re fie r e a u n c o n ju n to d ife re n te de a c tiv i c a r de fo r m a e c o n ó m ic a y e fe c tiv a , ta n to a g ra n d e s c o m o
d ades q u e a s e g u ra n q u e e l s o ftw a re c o n s tru id o se a ju s a p e q u e ñ o s sistem as».
www.FreeLibros.org
2 Para los sistem as o rientadosa objetos,laspruebas empiezan a nivel * Por lo habitual de su utilización m antenem os el term ino ingles SQA
de clase o de objeto. Vea m ás d e tallesen el Capítulo23. (Softw areQ uality A ssurance).
306
CAPITULO 18 ES TR AT EG IA S DE PRUEB A DEL S O F T W A R E
18.1.2. Organización para las pruebas del software h e ch o de p erm itir al c o n stru c to r que p ru eb e lo que ha
Bl cualquier proyecto de softw are ex iste un conflicto construido. U n a p ru e b a in d ep en d ien te elim in a el c o n
de intereses inherente que aparece cu an d o com ienzan flicto de intereses que, de otro m odo, estaría p re se n
las pruebas. Se pide a la gente que ha construido el soft te. D espués de to d o , al personal del e q u ip o que form a
ware que lo pruebe. E sto parece to talm ente inofensivo: el grupo in d ep en d ien te se le p ag a para que encuentre
después de todo, ¿quién puede con o cer m ejo r un p ro errores.
grama que los que lo h an d esarro llad o ? D esgraciada Sin em bargo, el responsable del desarrollado del soft
mente, esos m ism o s p ro g ram ad o res tie n e n un g ran w are no entrega sim plem ente el program a al G IP y se
interés en dem ostrar que el pro g ram a está libre de e rro desentiende. El responsable del d esa rro llad o y el G IP
res, que funciona de acuerdo con las especificaciones trabajan estrecham ente a lo largo del proyecto de soft
del cliente y que estará listo de acuerdo con los plazos w are para asegurar que se realizan pruebas exhaustivas.
y el presupuesto. C ada u n o de esto s intereses se c o n M ientras se realiza la prueba, el desarrollador debe estar
vierte en inconveniente a la ho ra de encontrar errores a disponible para co rre g ir los errores que se van d e sc u
lo largo del p roceso de prueba. briendo.
Desde un punto de v ista psicológico, el análisis y el
diseño del softw are (junto con la codificación) son tareas
constructivas. El ingeniero del softw are crea un p ro g ra
Sino existe un GIPen tu organización,
ma de com putadora, su d o cu m entacióny sus estructuras
tendrás que asumir su punto de vista.
de datos asociadas. A l igual que cualq u ier constructor, el Cuando pruebes, intenta destrozare! software.
ingeniero del softw are está orgulloso del edificio que aca
ba de construir y se en fren ta a c u alq u iera que intente
sacarle defectos. El G IP es parte del equipo del proyecto de d esarro
Cuando com ienza la prueba, aparece una sutil, aun llo de softw are en el sentido de que se ve im p licad o
que firme intención de «rom per» lo que el ingeniero del durante el proceso de especificación y sigue im plicado
software ha construido. D esde el punto de vista del co n s (planificación y especificación de los procedim ientos
tructor, la prueba se puede considerar (psicológicam ente) de prueba) a lo largo de un gran proyecto. Sin em bar
destructiva. Por tanto, el con stru cto r anda con cuidado, go, en m uchos casos, el G IP inform a a la organización
diseñandoy ejecutando p ruebas que d em uestren que el de g aran tía de calid ad del softw are, c o n sig u ien d o de
programa funciona, en lug ar de detectar errores. D e s este m odo un grado de independencia que no sería p o si
graciadamente, los errores seguirán estando. Y si el in g e ble si fuera una parte de la organización de desarrollo
niero del softw are no los encuentra, ¡el cliente si lo hará! del softw are.
A m enudo, existen ciertos m alentendidos que se pue
dan deducir eq uivocadam ente de la anterior discusión: 18.1.3. U na estra teg ia de prueba del softw are
(1) el responsable del desarrollo no debería entrar en el El proceso de ingeniería del softw are se puede ver com o
proceso de prueba; (2) el softw are debe ser «p u esto a una espiral, com o se ilustra en la F igura 18.1. Inicial
salvo» de extraños que p u ed an p robarlo de form a d es m ente, la ingeniería de sistem as define el papel del soft
piadada; (3) los encargados de la prueba sólo aparecen w are y conduce al análisis de los requisitos del softw are,
en el proyecto cuando com ien zan las etapas de prueba. donde se establece el dom inio de inform ación, la fu n
Todas estas frases son incorrectas. ción, el com portam iento, el rendim iento, las restriccio
El responsable del desarrollo del softw are siem pre nes y los c rite rio s de v a lid a c ió n del so ftw a re . A l
es responsable de p ro b a r las u n id a d e s in d iv id u a le s m ovem os hacia el interior de la espiral, llegam os al d ise
(módulos)del p rogram a, asegurándose de que cada una ño y, p o r últim o, a la codificación. Para desarrollar soft
lleva a cab o la fu n c ió n p a ra la q u e fu e d ise ñ ad a . E n w are de com putadora, dam os vueltas en espiral a través
muchos caso s, ta m b ié n se e n carg ará de la p ru e b a de de una serie de flujos o líneas que dism inuyen el nivel
integración, el paso de las p ruebas que lleva a la co n s de abstracción en cada vuelta,
trucción (y prueba) de la estru ctu ra total del sistem a.
Sólo una vez que la arquitectura del softw are esté c o m ¿Qué es la estrategia global
pleta entra e n ju e g o un grupo independiente de prueba.
• para la prueba del softw are?
www.FreeLibros.org
nos hacia fuera de la espiral, hasta llegar a la p ru e b a de
El pap el del g ru p o in d ep en d ien te de p ru e b a (G IP) in teg ració n , donde el foco de atención es el diseño y la
es elim inar los in h eren tes p ro b lem as aso ciad o s con el construcción de la arquitectura del softw are. D ando otra
307
I N GE NI E RÍ A DEL SOF TW ARE . UN E N F O Q U E P R Á C T I C O
v \ \ l
\ \. '1§¡
• ¡Íl¡¡ H ÍÍIÍÉ Ík IS P ^
P S Jr y /
y i
www.FreeLibros.org
c a , es a l m e n o s 0 ,9 9 5 .»
El últim o paso de p ru eb a de alto n ivel queda fuera M e d ia n te e l m o d e la d o e s ta d ís tic o y la te o ría de fiabi
de los lím ites de la ingeniería del softw are, entrando en lid a d del so ftw are, se p u ed en d esarro llar m o d e lo s de fallos
308
CAPÍTULO 18 ES TR AT EG IA S DE PR UE BA DEL SOFTW ARE
del software (descubiertos durante las pruebas) como una ro de puntos de datos, el modelo se puede usar para pre
función del tiem po de ejecución. Una versión del m ode decir el tiem po de prueba total requerido para alcanzar
lo de fallos, denominado m odelo logarítm ico de P oisson una intensidad de fallos aceptablemente baja.
de tiempo de ejecución, tom a la siguiente forma:
t I I
f(t) = (Hp) In [(lf)pt + 1)] (1 8 .1 ) ■ Datos recogidos durante la prueba |
donde
f(t) número acumulado de fallos que se espera que
se produzcan una vez que se ha probado el soft
ware durante una cierta cantidad de tiem po de
ejecución t,
l0 la intensidad de fallos inicial del software (fallos
por unidad de tiempo) al principio de la prueba
p la reducción exponencial de intensidad de fallo
a medida que se encuentran los errores y se van
haciendo las correcciones. F IG U R A 18 .3. Intensidad de fallos en función del tiem po
La intensidad de fallos instantánea,/(t)se puede obte de ejecución.
ner mediante la derivada de f( t) :
M ediante la agrupación de métricas durante la prue
l (t )=l 0 / ( l 0 pt + 1) (1 8 .2 ) ba del software y haciendo uso de los modelos de fia
Mediante la relación de la ecuación (18.2), los que bilidad del software existentes, es posible desarrollar
realizan las pruebas pueden predecir la dism inución de directrices im portantes para responder a la pregunta:
errores a medida que estas avanzan. La intensidad de error ¿cuándo term inam os la prueba? No hay duda que toda
real se puede trazarjunto a la curva predecida (Fig. 18.3). vía queda m ucho trabajo por hacer antes de que se pue
Si los datos reales recopilados durante la prueba y el dan establecer reglas cuantitativas para la prueba, pero
modelo logarítmico de Poisson de tiem po de ejecución los enfoques em píricosque existen actualmente son con
están razonablemente cerca unos de otros, sobre un núme siderablemente mejores que la pura intuición.
Más adelante, en este capítulo, exploram os una estrate o frecuencia de ocurrencia, y horas de trabajo por
gia sistemática para la prueba del software. Pero inclu prueba de regresión deberían establecerse dentro de
so la mejor estrategia fracasará si no se tratan una serie la planificación de la prueba [GIL95],
de aspectos invalidantes. Tom Gilb [GIL95] plantea que C om prender qué usuarios van a m anejar el so ft
se deben abordar los siguientes puntos si se desea imple- w are y desarrollar un p e r fil p a r a cada categoría de
mentar con éxito una estrategia de prueba del software: usuario. U sar casos que describan el escenario de
¿Qué debemos hacer para interacción para cada clase de usuario pudiendo redu
¿JDJJJ.UIJJJIU.I.l.fc
los casos de usa describen un escenario para usar
pruebas. Aunque el objetivo principal de la prueba el software y se estudianen el CapíLb 11.
es encontrar errores, una buena estrategia de prueba
también evalúa otras características de la calidad,
tales com o la portabilidad, facilidad de m an ten i D esarrollar un p la n de p r u e b a que haga h in ca
miento y facilidad de uso (Capítulo 19). Todo esto p i é en la «prueba de ciclo rápido». Gilb [GIL95]
debería especificarse de manera que sea medible para recom ienda que un equipo de ingeniería del software
que los resultados de la prueba no sean ambiguos.
«aprenda a probar en ciclos rápidos (2 por 100 del
E stablecer los objetivos de la p r u e b a de m anera esfuerzo del proyecto) de increm entos de funciona
explícita. Se deberían establecer en térm inos medi- lidad y/o m ejora de la calidad Utiles para el cliente,
bles los objetivos específicos de la prueba. Por ejem y que se puedan probar sobre el terreno». La reali
www.FreeLibros.org
plo, la efectividad de la prueba, la cobertura de la mentación generada por estas pruebas de ciclo rápido
prueba, tiempo m edio de fallo, el coste para encon puede usarse para controlar los niveles de calidad y
trar y arreglar errores, densidad de fallos remanente las correspondientes estrategias de prueba.
309
ING EN IE RÍA DEL S O F TW A RE . UN EN F O Q U E P R A C T I C O
n ic a s fo rm a le s ( C a p ít u lo 8 ) p u e d e n s er ta n efecti
vas c o m o las p ru e b a s e n e l d e s c u b rim ie n to de erro
ds los requisitos percibidos por e! usuorio res. P o r e ste m o tiv o , la s re v is io n e s p u e d e n reducir
$ 4 es semejante a la inspección de una construcción la c a n tid a d d e e s fu e rz o d e p ru e b a n e c e s a ria para
jssBodo en el trabajo realizado por un decorador p ro d u c ir s o ftw a r e d e a lta c a lid a d .
'&feí9 ol p í o en cimientos, vigas y fontanería. Llevar a cabo revisiones técnicasformalespara
evaluar la estrategia de p ru eb a y los propios casos
de prueba. L a s re v is io n e s té c n ic a s fo rm a le s pueden
C onstruir un software «robusto» diseñado p a ra d e s c u b rir in c o n s is te n c ia s , o m is io n e s y errores cla
probarse a sí mismo. E l s o ftw a re d e b e ría d iseñ arse ros e n e l e n fo q u e d e la p ru e b a . E s to a h o rra tiempo
de m a n e ra que use técn icas d e d e p u ra c ió n a n tie rro re s y ta m b ié n m e jo r a la c a lid a d d e l p ro d u c to .
(S e c c ió n 1 8 .3 .1 ). E s d e c ir, e l s o ftw a re d e b e r ía ser
D esarrollar un enfoque de m ejora continua al
c a p a z de d ia g n o s tic a r c ie rta s clases d e e rro re s. A d e
proceso de prueba. D ebería medirse la estrategia
m á s , e l d is e ñ o d e b e ría in c lu ir p ru e b a s a u to m a tiz a d a s
de p ru eb a . L a s m é tr ic a s a g ru p a d a s d u ra n te la
y pru ebas de re g re s ió n .
p ru e b a d e b e ría n usarse c o m o p a rte d e un enfoque
U sar revisiones técnicas fo r m a le s efectivas e s ta d ís tic o d e c o n tr o l d e l p ro c e s o p a ra la prueba
com ofiltro antes de la prueba. L a s re v is io n e s té c d e l s o ftw a re .
L a p ru e b a de u n id a d c e n tra e l p ro c e s o de v e r ific a c ió n
e n la m e n o r u n id a d d e l d is e ñ o d e l s o ftw a re : e l c o m p o
n e n te s o ftw a re o m ó d u lo .
Interiaz
E stru c tu ra s d e d a to s lo c a le s
18.3.1. C o n s id e r a c io n e s s o b r e l a p r u e b a d e u n i d a d
L a s p ru e b a s q u e se d a n c o m o p a rte d e la p ru e b a d e u n i C o n d icio n e s lím ite
D u ra n te la p ru e b a d e u n id a d , la c o m p ro b a c ió n selec
tiv a de lo s c a m in o s d e e je c u c ió n es u n a ta re a esencial.
Se d e b e n d is e ñ a r casos d e p ru e b a p a ra d e te c ta r errores
d eb id o s a c álcu lo s inco rrecto s,co m paracion esin correctas
o flu jo s d e c o n tro l in a p ro p ia d o s . L a s p ru e b a s d e l cam i
Prueba de Unidad. n o b á s ic o y d e b u c le s son té c n ic a s m u y e fe c tiv a s para
A n te s d e in ic ia r c u a lq u ie r o tra p ru e b a es p re c is o p r o d e s c u b rir u n a g ra n c a n tid a d de e rro re s e n lo s cam inos.
b a r e l f lu jo d e d a to s d e la in te rfa z d e l m ó d u lo . S i los
¿Qué errores son los mós comunes
datos n o e n tra n c o rre c ta m e n te , to d as las d e m ás p ru eb a s
n o tie n e n s en tid o . A d e m á s d e las estru ctu ra s d e da to s
§ durante la prueba de unidad?
www.FreeLibros.org
lo c a le s , d u ra n te la p ru e b a de u n id a d se d e b e c o m p ro b a r
(e n la m e d id a de lo p o s ib le ) e l im p a c to d e lo s datos g l o E n tre los e rro re s m ás c o m u n e s e n lo s c á lc u lo s están:
b a le s sobre e l m ó d u lo . (1 ) p re c e d e n c ia a ritm é tic a in c o rre c ta o m a l interpretada;
310
C A P I T U L O 18 ESTRATEGIAS DE PRUE BA DEL S O F T W A R E
(2) operaciones de m o d o m ezcladas; (3) inicializaciones m áxim o o m ínim o perm itidos. L os casos de p rueba que
incorrectas; (4) falta de precisión; (5) incorrecta rep re ejerciten las estructuras de datos, el flujo de co n tro l y
sentación sim bólica de una expresión. L as com paracio los valores de los datos p o r debajo y p o r e n c im a d e los
nes y el flujo de control están fu ertem ente em parejadas m áxim os y los m ínim os son m uy apropiados para d e s
(por ejem plo, el flujo de control cam bia frecuentem ente cubrir estos errores.
tras una com paración). L os casos de p ru eb a deben d es
cubrir errores com o: (1) c o m p aracio n es ente tip o s de
datos distintos; (2) operadores lógicos o de precedencia Interfaz
incorrectos; (3) igualdad esperad a cuando los errores de
Estructuras de datos locales
precisión la h acen p oco probable; (4)variables o co m
paraciones incorrectas; (5 ) term in ació n de bucles in a Condiciones límite
propiada o in ex isten te; (6) fa llo d e salid a c u an d o se Caminos independientes
encuentra u n a iteración divergente, y (7 ) v ariab les de
Caminos de manejo de errores
bucles m odificadas de form a inapropiada.
Un buen diseñ o ex ig e que las co n d icio n es de e rro r
sean p revistas de an tem an o y que se d isp o n g a n unos
caminos de m an ejo de erro res que re d irija n o te rm i
nen de u n a fo rm a lim p ia el p ro ceso c u a n d o se dé un
error. Y ourdon [Y O U 75] lla m a a e ste e n fo q u e anti-
purgado. D e sg ra c ia d a m e n te , e x iste u n a te n d e n c ia a
incorporar la m a n ip u la c ió n de erro res en el softw are
y así no probarlo nunca. C om o ejem p lo , sirve u n a h is
toria real: RESULTADOS
Mediante un contrato se desarrolló un importante sistema
F IG U R A 1 8.5. Entorno para la prueba de unidad.
de diseño interactivo.En un módulo de proceso de transaccio
nes, un bromista puso el siguientemensaje de manipulación de
error que aparecía tras una serie de pruebas condicionales que
invocaban varias ramificaciones del flujo de control: ¡ERROR! 18.3.2. Procedim ientos de Prueba de Unidad
NO HAY FORMA DE QUE VD. LLEGUE HASTA AQUÍ. D ebido a que un com ponente no es un p rogram a in d e
¡Este «mensaje de error» fue descubiertoporun cliente duran pendiente, se debe desarrollar para cada p rueba de un i
te la fase de puesta a punto!
dad un softw are que controley/o resguarde. E n la Figura
18.5 se ilustra el entorno para la p ru eb a de unidad. En
la m ayoría de las aplicaciones, un controlador no es m ás
Asegura que tu diseño de pruebes ejecuta todos los caminos
que un «program a principal» que acepta los datos del
pura encontrar errores. Si no lo haces, el camino puede fallar
caso de prueba, p asa estos datos al m ódulo (a ser p ro
al ser invocado, provocando una situación Incierta. bado) e im prim e los resu ltad o s im portantes. L os re s
g u a rd o s sirv en p a ra re e m p la z a r m ó d u lo s que e stá n
sub o rd in ad o s (llam ados por) el co m p o n en te que hay
Entre los errores p otenciales que se deb en co m pro que probar. U n resguardo o un «subprogram a sim ula
bar cuando se evalú a la m anip u lació n de errores están: do» usa la interfaz del m ódulo subordinado,lleva a cabo
1. D escripción ininteligible del error. u n a m ínim a m anipulación de datos, im prim e u n a v e ri
2. El e rro r se ñ a la d o n o se c o rre sp o n d e co n e l e rro r ficac ió n de e n tra d a y d e v u e lv e co n tro l al m ó d u lo de
encontrado. p rueba que lo invocó.
3. La condición de error hace que in tervenga el sistem a
antes que el m ecan ism o de m anejo de errores. ^C O N S E J O ^p .
4. El p ro c e sa m ie n to de la c o n d ic ió n e x c e p c io n al es Hay ocasiones en que no dispones de los recursos para hacer
incorrecto. una prueba unitaria completa. & esta situación, selecchna
5. La d escripción del e rro r no p ro p o rcio n a suficiente b s módulos críticos y aquellos con alto complejidad
inform ación p a ra a y u d a r en la lo c a liz a ció n d e la clclomática y realiza sobre ellos la prueba unitaria.
causa del error.
La prueba de lím ites es la últim a (y probablem ente, L o s controladores y los resguardos son u n a so b re
la más im portante) tarea del paso de la p ru eb a de u n i carga de trabajo. Es decir, am bos son softw are que debe
dad. El softw are falla frecuentem ente en sus condicio desarrollarse (norm alm ente no se aplica un diseñ o fo r
nes lím ite. E s decir, co n fre c u e n cia aparece un e rro r m al) p ero que no se e n tre g a con el p ro d u cto de so ft
www.FreeLibros.org
cuando se p ro cesa el elem ento n -ésim o de un array n- w are final. S i lo s c o n tro la d o re s y re sg u a rd o s son
dim ensional,cuando se hace la i-ésim a rep etición de un sencillos, el trabajo adicional es relativam ente p e q u e
bucle de i p aso s o c u a n d o se e n c u e n tra n los valo res ño. D esgraciadam ente, m uchos com ponentes no p u e
311
IN GE NI E RÍ A DEL S OFT W ARE . UN E N F O Q U E P R Á C T I C O
den ten er una adecuada pru eb a unitaria con un « se n ci La prueba de u n idad se sim plifica cu an d o se diseña
llo» softw are adicional. E n tales caso s, la pru eb a co m un m ódulo con un alto g rado de cohesión. Cuando un
pleta se pospone hasta que se lleg u e al paso de prueba m ódulo sólo realiza una función, se reduce el número
de integración (donde tam b ién se u san controladores o de casos de prueba y los errores se pueden predecir y
resguardos). descubrir m ás fácilm ente.
U n neófito del m undo del softw are podría, u n a vez que se puedan pro b ar com pletam ente las interfacesy se pue
se les ha hech o la prueba de u n id ad a todos los m ó d u de a p lic a r un e n fo q u e de p ru eb a siste m á tic a . En las
lo s, c u e s tio n a r de fo rm a a p a re n te m e n te le g ítim a lo siguientes secciones se tratan varias estrategias de inte
siguiente: «Si todos fu ncionan b ien p o r separado, ¿por gración increm ental diferentes.
qué dudar de que funcio n en tod o s ju n to s?» P or supues
to, el p roblem a es «ponerlos ju n to s» (interacción). Los 18.4.1. Integración descendente
datos se pu ed en p erd er en una interfaz; un m ódulo pue
L a p r u e b a de integración descendente es un plantea
de ten er un efecto adverso e in advertido sobre otro; las
m iento increm ental a la construcción de la estructura de
subfunciones, cu an d o se co m b in an , pu ed en no pro d u
program as. Se integran los m ódulos m oviéndose hacia
cir la función principal deseada; la im precisión ac ep
abajo p o r la je ra rq u ía de co n tro l, c o m en zan d o por el
ta d a in d iv id u a lm e n te p u ed e c re c e r h a sta n iv e le s
m ódulo de control principal (program a principal). Los
inaceptables; y las estructuras de d ato s g lo b ales p u e
m ó d u lo s su b o rd in a d o s (su b o rd in a d o s de cualquier
den p re se n ta r p ro b lem as. D e sg raciad am en te, la lista
m odo) al m ódulo de control principal se van incorpo
sigue y sigue.
rando en la estructura, bien de form a primero-en-pro-
La pru eb a de integración es una técnica sistem ática
fu n d id a d , o bien de fo rm aprim ero-en-cm chura.
para construir la estructura del pro g ram a m ientras que,
al m ism o tiem po, se llevan a cab o p ruebas p ara d etec
tar errores asociados con la interacción. El objetivo es
cog er los m ódulos probados m ediante la pru eb a de un i Cuando desarrollas una planificación detallada del
dad y construir una estructura de pro g ram a que esté de proyecto debes considerar la manera en que la
acuerdo con lo que dicta el diseño. integración se va a realizar, de formo que los
componentes estén disponibles cuando se necesiten.
ONSEJÓ^
Efectuar una integración big bag es una estrategia vaga C om o se m uestra en la Figura 18.6, la integraciónpri-
que está condenada al fracaso, la prueba de integración m ero-en-profundidad integra todos los m ódulos de un
deberó ser conducida incrementalmente. cam ino de control principal de la estructura. La selección
del cam ino principal es, de alguna m anera, arbitraria y
dependerá de las características específicas de la aplica
A m enudo hay una ten d en cia a inten tar un a integra
ción. P or ejem plo, si se elige el cam ino de la izquierda,
ción no increm ental; es decir, a construir el p rogram a
se integrarán prim ero los m ódulos M 1, M 2 y M 5. A con
m ediante un enfoque de «big bang». Se com binan todos
tinuación, se integrará M8 o M 6 (si es necesario para un
los m ódulos p o r anticipado. Se pru eb a todo el p ro g ra
fu n cionam ientoadecuadode M2). A cto seguido se cons
m a en c o n ju n to . ¡N o rm alm en te se lleg a al caos! Se
truyen los cam inos de control central y derecho. La inte
encuentran un gran conjunto de errores. L a corrección
gración prim ero-en-anchura incorpora todos los módulos
se hace difícil, p uesto que es com plicado aislar las cau
directam ente subordinadosa cada nivel, m oviéndose por
sas al tener delante el pro g ram a entero en toda su ex ten
la estructura de form a horizontal. Según la figura, los pri
sión. U na vez que se corrigen esos errores aparecen otros
m eros m ódulos que se integran son M 2, M 3 y M4. A con
nuevos y el p roceso continúa en lo que parece ser un
tinuación, sigue el siguiente nivel de control, M 5, M6, etc.
ciclo sin fin.
L a integración increm ental es la antítesis del e n fo
§
¿ Cuáles son los pasos para una
que del «big bang». El pro g ram a se construye y se prue integración top-down?
ba en p equeños segm entos en los que los erro res son
El proceso de integración se realiza en una serie de
m ás fáciles de aislar y de corregir, es m ás p robable que
cinco pasos:
www.FreeLibros.org
3 Las estrategias de integración para sistemas orientados a objetos
se tratan en el Capitulo 23.
312
C A P I T U L O 18 ES TR AT EG IA S DE P RU EB A DEL S O F T W A R E
18.4.2. I n te g r a c ió n a s c e n d e n t e
FIG U R A 1 8 .6 . Integración descendente,
L a p r u e b a d e la in te g r a c ió n a s c e n d e n te , c o m o s u n o m
La estrategia de integración descendente verifica los b r e in d ic a , e m p ie z a la c o n s t r u c c ió n y la p r u e b a c o n lo s
puntos de decisión o de control principales al principio m ódulos atóm icos ( e s d e c i r , m ó d u l o s d e l o s n i v e l e s m á s
delprocesodeprueba. En una estructurade programabien b a jo s d e la e s t r u c t u r a d e l p r o g r a m a ) . D a d o q u e lo s
fabricada, la toma de decisiones se da en los niveles supe m ó d u lo s s e in t e g r a n d e a b a jo h a c ia a r r ib a , e l p r o c e s o
riores de lajerarquíay , por tanto, se encuentranantes. Si r e q u e r id o d e lo s m ó d u lo s s u b o r d in a d o s s ie m p r e e s tá
existenproblemas generales de control, es esencial reco d is p o n ib le y s e e lim in a la n e c e s id a d d e r e s g u a r d o s .
nocerlos cuanto antes. Si se seleccionala integraciónpri
mero en profundidad, se puede ir implementando y ¿Cuáles son los pasos para
demostrandolas funciones completas del software. Por una integraciónascendente?
ejemplo, considere una estructuraclásica de transacción
(Capítulo 14) en la que se requiere una compleja serie de S e p u e d e im p le m e n ta r u n a e s tr a t e g ia d e in t e g r a c ió n
entradas interactivas, obtenidas y validadas por medio de a s c e n d e n te m e d ia n t e lo s s ig u ie n t e s p a s o s :
un camino de entrada. Ese camino de entradapuede ser 1 . S e c o m b i n a n l o s m ó d u l o s d e b a j o n i v e l e n g rupos ( a
integradoenformadescendente. Así, se puede demostrar v e c e s d e n o m in a d o s c o n s tr u c c io n e s ) q u e r e a lic e n u n a
todoel proceso de entradas (paraposteriores operaciones s u b f u n c ió n e s p e c íf ic a d e l s o ftw a r e .
dotransacción) antes de que se integren otros elementos 2. S e e s c r i b e u n c o n t r o l a d o r ( u n p r o g r a m a d e c o n t r o l
dola estructura. La demostración anticipada de las posi d e la p r u e b a ) p a r a c o o r d in a r la e n tr a d a y la s a lid a d e
bilidades funcionales es un generador de confianzatanto lo s c a s o s d e p ru e b a .
para el desanollador como para el cliente.
3. S e p r u e b a e l g r u p o .
4. S e e l i m i n a n l o s c o n t r o l a d o r e s y se c o m b i n a n l o s g r u
p o s m o v ié n d o s e h a c ia a r r ib a p o r la e s t r u c t u r a d e l
lo fabricación es ¡m portanteporo ciertos estilos de
arquitectura. Para más detalles ver el Capítulo 14.. p ro g ra m a .
www.FreeLibros.org
L a in t e g r a c ió n s ig u e e l e s q u e m a ilu s t r a d o e n la F i g u
La estrategia descendenteparece relativamente fácil, r a 1 8 . 7 . S e c o m b in a n lo s m ó d u lo s p a r a f o r m a r l o s g r u
pero, en la práctica, pueden surgir algunos problemas p o s 1 ,2 y 3. C a d a u n o d e l o s g r u p o s s e s o m e t e a p r u e b a
313
I N GEN IE RI A DEL S OFT W ARE . UN EN F O Q U E P R A C T I C O
m e d ia n te u n c o n t r o la d o r ( m o s tr a d o c o m o u n b lo q u e o l o s d a t o s q u e l o s o p o r t a n ) . L a p r u e b a d e r e g r e s i ó n es
p u n te a d o ) . L o s m ó d u lo s d e lo s g r u p o s 1 y 2 s o n s u b o r l a a c t i v i d a d q u e a y u d a a a s e g u r a r q u e l o s c a m b i o s ( d e b i
d in a d o s d e M ,. L o s c o n tr o la d o r e s D j y D 2 s e e lim in a n d o s a la s p r u e b a s o p o r o t r o s m o t i v o s ) n o i n t r o d u c e n u n
y lo s g r u p o s in t e r a c c io n a n d ir e c t a m e n t e c o n M ,. D e f o r c o m p o r t a m ie n t o n o d e s e a d o o e r r o r e s a d ic io n a le s .
m a s im ila r , se e lim in a e l c o n tr o la d o r D 3 d e l g r u p o 3
a n te s d e la in t e g r a c ió n c o n e l m ó d u lo M ,. T a n t o M ,
c o m o M , s e in te g r a r á n f in a lm e n t e c o n e l m ó d u lo M c y
a s í s u c e s iv a m e n te . la prueba de regresión es una estrategia importantepara
reducir «efectos colaterales». Se deben ejecutor pruebas
de regresión cada vez que se realice un cambó
importanteen el software (incluyéndola ¡ntegraclónde
CLA VE nuevos módulos).
18.4.4. P r u e b a d e h u m o
L a prueba de hum o es un m étodo de prueba de inte
gración que es com únm ente utilizada cuando se ha
desarrollado un producto softw are «empaquetado».
Es diseñado com o un m ecanism o para proyectos crí
ticos por tiem po, perm itiendo que el equipo de soft
w are v alore su p royecto sobre una base sólida. E n
esencia, la prueba de hum o com prende las siguientes
actividades:
1. Los componentes software que han sido traducidos
a código se integran en una «construcción». Una
F IG U R A 18.7. Integración ascendente. construcción incluye ficheros de datos, librerías,
m ódulos reutilizables y componentes de ingeniería
E n u n c o n t e x t o m á s a m p l i o , la s p r u e b a s c o n é x i t o
que se requieren para im plementar una o más fun
( d e c u a lq u ie r t ip o ) d a n c o m o r e s u lta d o e l d e s c u b r im ie n to
ciones del producto.
www.FreeLibros.org
d e e r r o r e s , y lo s e r r o r e s h a y q u e c o r r e g ir lo s . C u a n d o se
c o r r ig e e l s o ftw a r e , s e c a m b ia a lg ú n a s p e c to d e la c o n 2. Se diseña una serie de pruebas para descrubir erro
f ig u r a c ió n d e l s o ftw a r e ( e l p r o g r a m a , s u d o c u m e n ta c ió n res que im piden a la construcción realizar su fun
314
CAPITULO 18 ES TR A TE G IA S DE PRUEBA DEL SOFTW ARE
c ió n a d e c u a d a m e n t e . E l o b je t iv o s e r á d e s c u b r i r e r r o in t e g r a c ió n , e s p r o b a b le q u e lo s e r r o r e s s in d e s c u
re s « b lo q u e a n t e s » q u e te n g a n la m a y o r p r o b a b i l i b r i r d u r a n t e la p r u e b a d e h u m o s e a s o c ie n a « n u e v o s
d a d d e im p e d ir a l p r o y e c to d e s o ftw a r e e l in c r e m e n to s d e s o ftw a r e » - e s t o e s , e l s o ftw a r e q u e
c u m p lim ie n to d e s u p la n if ic a c ió n . s e a c a b a d e a ñ a d ir a la c o n s t r u c c ió n e s u n a p o s ib le
c a u s a d e u n e r r o r q u e s e a c a b a d e d e s c u b r ir — .
3. E s h a b it u a l e n la p r u e b a d e h u m o q u e la c o n s t r u c c ió n
s e in t e g r e c o n o t r a s c o n s t r u c c i o n e s y q u e s e a p l i c a u n a . E l progreso esfá cil de observar. C a d a d í a q u e p a s a ,
p ru e b a d e h u m o a l p r o d u c to c o m p le t o ( e n s u fo r m a s e in t e g r a m á s s o ftw a r e y s e d e m u e s tr a q u e f u n
a c t u a l) . L a i n t e g r a c i ó n p u e d e h a c e r s e b i e n d e f o r m a c io n a . E s to m e jo r a la m o r a l d e l e q u ip o y d a u n a
d e s c e n d e n t e (top-down)o a s c e n d e n t e (bottom-up). in d ic a c ió n a lo s g e s to r e s d e l p r o g r e s o q u e s e e s tá
r e a liz a n d o .
CLAVE 18.4.5. C o m e n t a r i o s s o b r e l a p r u e b a d e i n t e
la prueba de humo se caracteriza por una estrategia de integración g r a c ió n
continua. El software es reconfigurado (con la incorporación de
H a h a b id o m u c h o s e s tu d io s ( p o r e je m p lo , [ B E I 8 4 ] )
nuevos componentes) y utilizado continuamente.
s o b r e la s v e n t a ja s y d e s v e n t a ja s d e la p r u e b a d e in t e
g r a c ió n a s c e n d e n te fr e n te a la d e s c e n d e n te . E n g e n e
La f r e c u e n c i a c o n t i n u a d e la p r u e b a c o m p l e t a d e l r a l , la s v e n t a j a s d e u n a e s t r a t e g i a t i e n d e n a c o n v e r t i r s e
p ro d u c to p u e d e s o r p r e n d e r a a lg u n o s le c to r e s . E n c u a l e n d e s v e n t a j a s p a r a la o t r a e s t r a t e g i a . L a p r i n c i p a l d e s
q u ie r c a s o , la s f r e c u e n t e s p r u e b a s d a n a g e s t o r e s y p r o v e n t a ja d e l e n f o q u e d e s c e n d e n te e s la n e c e s id a d d e
f e s io n a le s u n a v a l o r a c i ó n r e a l i s t a d e l a e v o l u c i ó n d e la s r e s g u a r d o s y la s d i f ic u lt a d e s d e p r u e b a q u e p u e d e n
p m e b a s d e in t e g r a c ió n . M c C o n n e ll [ M C 0 9 6 ] d e s c r ib e e s ta r a s o c ia d o s c o n e llo s . L o s p r o b le m a s a s o c ia d o s
la p r u e b a d e h u m o d e l a s i g u i e n t e f o r m a : c o n lo s r e s g u a r d o s p u e d e n q u e d a r c o m p e n s a d o s p o r
L a prueba d e h um o e je rc ita el sistem a e n te ro d e p rin l a v e n t a ja d e p o d e r p r o b a r d e a n t e m a n o la s p r i n c i p a
cipio a fin. N o h a de se r e x h a u s tiv a , p e ro se rá c a p a z de l e s f u n c i o n e s d e c o n t r o l . L a p r i n c i p a l d e s v e n t a j a d e la
descubrir im portantes p ro b lem as. L a p ru e b a d e h u m o se rá in t e g r a c ió n a s c e n d e n te e s q u e « e l p r o g r a m a c o m o e n t i
suficiente si v e rific a m o s d e fo rm a c o m p le ta la c o n s tru c d a d n o e x is te h a s ta q u e s e h a a ñ a d id o e l ú l t im o m ó d u
ción y podem os asu m ir q u e es suficien tem en te estable para
lo » [ M Y E 7 9 ] , E s te in c o n v e n ie n t e s e r e s u e lv e c o n la
ser probado c o n m ás profundidad.
m a y o r f a c ilid a d d e d is e ñ o d e c a s o s d e p r u e b a y c o n la
L a p r u e b a d e h u m o f a c i l i t a u n a s e r ie d e b e n e f ic io s fa lta d e re s g u a rd o s .
c u a n d o s e a p lic a s o b r e p r o y e c t o s d e in g e n ie r í a d e l s o f t
w a r e c o m p l e j o s y c r í t i c o s p o r su d u r a c i ó n :
¿Qué es un módulo crítico y
• Se minimizan los riesgos de integración. D a d o q u e
la s p r u e b a s d e h u m o s o n r e a l i z a d a s f r e c u e n t e m e n t e ,
in c o m p a t ib ilid a d e s y o t r o s e r r o r e s b lo q u e a n te s s o n
• por qué debemos identificarlo?
L a s e le c c ió n d e u n a e s tr a te g ia d e in t e g r a c ió n
d e s c u b ie r t o s r á p i d a m e n t e , p o r e s o s e r e d u c e l a p o s i d e p e n d e d e la s c a r a c t e r í s t ic a s d e l s o f t w a r e y , a v e c e s ,
b ilid a d d e im p a c t o s im p o r t a n t e s e n la p l a n i f ic a c ió n
d e la p l a n if ic a c ió n d e l p r o y e c to . E n g e n e r a l, e l m e jo r
p o r e r r o r e s s in d e s c u b r ir .
c o m p r o m is o p u e d e s e r u n e n fo q u e c o m b in a d o ( a v e c e s
• Se perfecciona la calidad del producto final. D a d o d e n o m i n a d o p ru eb a sandw ich) q u e u s e la d e s c e n d e n t e
q u e la p r u e b a d e h u m o e s u n m é t o d o o r i e n t a d o a la p a r a lo s n iv e le s s u p e r io r e s d e la e s t r u c t u r a d e l p r o
c o n s tr u c c ió n ( in t e g r a c ió n ) , e s p r o b a b le q u e d e s c u g r a m a , j u n t o c o n la a s c e n d e n te p a r a lo s n iv e le s s u b o r
b r a e r r o r e s f u n c io n a le s , a d e m á s d e d e fe c to s d e d is e ñ o d in a d o s .
a n iv e l d e c o m p o n e n te y d e a r q u it e c t u r a . S i e s to s A m e d id a q u e p r o g r e s a la p r u e b a d e in te g r a c ió n ,
d e fe c to s s e c o r r ig e n r á p id a m e n te , e l r e s u lta d o s e rá e l r e s p o n s a b le d e la s p r u e b a s d e b e i d e n t i f i c a r lo s
un p r o d u c t o d e g r a n c a l i d a d . m ó d u lo s c r í tic o s . U n m ó d u lo c r í t ic o e s a q u e l q u e t ie
n e u n a o m á s d e la s s ig u ie n t e s c a r a c t e r í s t ic a s : ( 1 ) e s tá
d ir ig id o a v a r io s r e q u is ito s d e l s o ftw a r e ; ( 2 ) tie n e u n
m a y o r n iv e l d e c o n t r o l ( e s tá r e la tiv a m e n te a lt o e n la
diorio es el aliciente del proyecto. e s tr u c tu r a d e l p r o g r a m a ) ; ( 3 ) e s c o m p le jo o p r o p e n
S iw hsy oficíente, el proyecto se muere. s o a e r r o r e s (s e p u e d e u s a r la c o m p le jid a d c ic lo m á t i
c a c o m o i n d i c a d o r ) ; o (4 ) t i e n e u n o s r e q u i s i t o s d e
r e n d im ie n t o m u y d e f in id o s . L o s m ó d u lo s c r í t ic o s
d e b e n p r o b a r s e l o a n t e s p o s ib le . A d e m á s , la s p r u e b a s
www.FreeLibros.org
■ Se simplifican el diagnóstico y la corrección de erro d e r e g r e s ió n s e d e b e n c e n t r a r e n e l f u n c io n a m ie n t o d e
res. A l i g u a l q u e t o d o s l o s e n f o q u e s d e p r u e b a d e lo s m ó d u lo s c r í t ic o s .
315
INGENIERÍA DEL S O F TW A RE . UN E N F O Q U E PR AC T I C O
T ra s la c u lm in a c ió n d e la p r u e b a d e in te g r a c ió n , e l s o f t 1 8 .5 .2 . Revisión de la configuración
w a r e e s tá c o m p le t a m e n te e n s a m b la d o c o m o u n p a q u e U n e l e m e n t o i m p o r t a n t e d e l p r o c e s o d e v a l i d a c i ó n e s la
te , s e h a n e n c o n tr a d o y c o r r e g id o lo s e r r o r e s d e in t e r f a z r e v i s i ó n d e la c o n f i g u r a c i ó n . L a i n t e n c i ó n d e l a r e v i s i ó n
y p u e d e c o m e n z a r u n a s e r ie f i n a l d e p r u e b a s d e l s o f t e s a s e g u r a r s e d e q u e t o d o s lo s e le m e n t o s d e la c o n f i
w a re : la p r u e b a d e v a lid a c ió n . L a v a lid a c ió n p u e d e d e f i g u r a c ió n d e l s o f t w a r e s e h a n d e s a r r o lla d o a p r o p ia d a
n ir s e d e m u c h a s f o r m a s , p e r o u n a s i m p l e ( a u n q u e v u l g a r ) m e n t e , s e h a n c a t a lo g a d o y e s tá n s u fic ie n te m e n te
d e f in ic ió n e s q u e la v a lid a c ió n s e c o n s ig u e c u a n d o e l d e ta lla d o s p a r a s o p o r t a r la fa s e d e m a n t e n im ie n t o d u ra n
s o f t w a r e f u n c i o n a d e a c u e r d o c o n la s e x p e c t a t i v a s r a z o te e l c ic l o d e v id a d e l s o ftw a r e . L a r e v is ió n d e la c o n fi
n a b le s d e l c lie n t e . E n e s te p u n t o , u n d e s a r r o ll a d o r d e g u r a c i ó n , a v e c e s d e n o m i n a d a auditoría, s e h a e s t u d ia d o
s o ftw a r e e s t r ic t o p o d r í a p r o te s ta r : « ¿ Q u é o q u ié n e s e l c o n m á s d e ta lle e n e l C a p í t u lo 9 .
á r b i t r o d e la s e x p e c t a t i v a s r a z o n a b l e s ? »
www.FreeLibros.org
d e la t e r m in a c ió n p la n ific a d a . A m e n u d o e s n e c e s a rio lla d o r d e l s o ftw a r e lle v a a c a b o m o d ific a c io n e s y a s í
n e g o c i a r c o n e l c l i e n t e u n m é t o d o p a r a r e s o l v e r la s d e f i p r e p a r a u n a v e r s ió n d e l p r o d u c t o d e s o ftw a r e p a r a to d a
c ie n c ia s . la c la s e d e c lie n t e s .
316
C A PIT U L O 18 ES TR AT EG IA S DE PRUEB A DEL S O F T W A R E
www.FreeLibros.org
sistema debe ser to lerante con los fallo s; es decir, los clave de acceso al sistem a, etc.
fallos del p roceso no d eben h acer que cese el fu n c io C on tiem po y recursos suficientes, una buena p ru e
namiento de todo el sistem a. ba de seg u rid ad te rm in ará p o r acceder al sistem a. El
317
INGENIERÍA DEL S OFT W ARE . UN E N F O Q U E P R A C T I C O
pap el del d iseñador del sistem a es h acer que el coste de situ acio n es (la m ás c o m ú n se d a con alg o ritm o s mate
la entrad a ilegal sea m ay o r que el v alo r de la in form a m á tic o s), un ra n g o de d ato s m uy p eq u eñ o dentro de
ción obtenida. los lím ites de una entrada válid a para un p rogram a pue
de p ro d u cir un p ro ceso ex ag erad o e in clu so erróneo o
u n a profunda degradación del rendim iento. E sta situa
c ió n es a n á lo g a a u n a sin g u la rid a d e n u n a función
m atem ática. L a p ru e b a de sen sib ilid ad in ten ta descu
b rir c o m b in a c io n e s de d a to s d e n tro de u n a clase d e
e n trad a v álid a que p u ed a p ro d u cir in e stab ilid a d o un
p ro ceso incorrecto.
18.6.4. P r u e b a d e r e n d im ie n to
18.6.3. P r u e b a d e r e s is t e n c i a (S tre s s ) P ara sistem as de tiem p o real y sistem as em potrados,
D urante los pasos de p ru eb a an teriores, las técnicas de es in a c e p ta b le e l so ftw a re q u e p ro p o rc io n a las f u n
caja blanca y de caja negra dab an com o resultado la ev a cio n es re q u e rid a s p ero no se aju sta a los requisitos d e
luación del fu ncionam iento y del rendim iento n orm a ren d im ien to . L a p r u e b a de rendim iento e stá diseñada
les del p ro g ram a. L a s p ru eb as de re s is te n c ia está n p ara p ro b a r el ren d im ien to del softw are en tiem po d e
diseñadas p ara enfren tar a los p rogram as con situacio ejecu ció n d en tro del con tex to de un sistem a integra
nes anorm ales. En esencia, el sujeto que realiza la p ru e do. L a p ru e b a de ren d im ien to se da du ran te todos los
ba de resistencia se pregunta: «¿A qué poten cia puedo pasos del proceso de la prueba. Incluso al nivel de uni
ponerlo a fun cio n ar antes de que falle?» d ad , se debe aseg u rar el ren d im ien to de los módulos
L a p r u e b a de resistencia ejecu ta un sistem a de fo r in d iv id u ales a m ed id a que se lle v an a cab o las prue
m a que d em an d e recu rso s en c a n tid a d , fre c u e n c ia o b as de c a ja blanca. S in em b arg o , h a sta que no están
v o lú m en es anorm ales. P or ejem plo: (1) d ise ñ a r p ru e co m p letam en te integrados todos los elem entos del s is
b a s e s p e c ia le s q ue g e n e re n d ie z in te rru p c io n e s por te m a no se pued e aseg u rar realm en te el rendim iento
segundo, cuando las norm ales son u n a o dos; (2) in cre del sistem a.
m en tar las frecuencias de d ato s de entrada en un orden Las pruebas de rendim iento, a m enudo, van empa
de m a g n itu d co n e l fin de c o m p ro b a r c ó m o re s p o n rejadas con las pruebas de resistencia y, frecuentem en
d en las fu n c io n e s de e n tra d a ; ( 3 ) e je c u ta r c a so s de te, requieren instrum entación tan to de softw are como
p ru e b a q u e re q u ie ra n el m á x im o de m e m o ria o de de hardw are. Es decir, m uchas veces es necesario medir
otro s recu rso s; (4 )d ise ñ a r caso s de p ru e b a que p u e la utilización de recursos (por ejem p lo , ciclos de pro
dan d a r p ro b lem as en u n sistem a o p erativ o v irtu a l o cesador), de un m odo exacto. L a instrum entaciónexter-
(5 ) d ise ñ a r caso s de p ru e b a que p ro d u z c a n ex cesivas n a puede m o n ito rizar los in terv alo s de ejecución, los
b ú sq u e d a s de d a to s r e s id e n te s en d isc o . E s e n c ia l sucesos ocurridos (por ejem plo, interrupciones)y mues
m en te, el re sp o n sa b le de la p ru e b a in te n ta ro m p er el tras de los estados de la m áquina en un funcionam ien
prog ram a. to norm al. Instrum entando un sistem a, el encargadode
U n a variante de la p ru eb a de resisten cia es u n a té c la prueba puede descubrir situaciones que lleven a degra
n ica d e n o m in a d a p ru eb a de sensibilidad. E n algunas daciones y posibles fallo s del sistem a.
L a p ru eb a del softw are es un p roceso que puede p la n i w are. Es decir, la m anifestación externa de un error, y
ficarse y especificarse sistem áticam ente. Se puede lle la causa interna del e rro r pueden no e star relacionados
var a cabo el diseño de casos de prueba, se puede definir de u n a fo rm a obvia. El p ro ceso m en tal, apenas com
una estrategia y se pueden evaluar los resultados en com prendido, que conecta un síntom a con u n a causa es la
paració n con las expectativas prescritas. depuración.
L a d e p u ra c ió n o c u rre co m o c o n s e c u e n c ia de una
p ru eb a efectiva. Es decir, cuando un caso de p ru eba d e s
cubre un error, la depuración es el p roceso que p ro v o
ca la elim inación del error. A unque la depuración puede Referencia
y debe ser un p roceso ordenado, sigue teniendo m ucho BugNet facilita información sobre problemas de seguridad
www.FreeLibros.org
de arte. U n ingeniero del softw are, al evalu ar los re su l y fallos en softwore basado en PC y proporciona una
tados de u n a prueba, se en cuentra frecuentem ente con información útil sobre temas de depuración:
una indicación«sintom ática» de un p roblem a en el soft- www.bugnet.com
318
CAPÍTULO 18 ESTRA TEGIA S DE PRUEBA DEL SOFTW ARE
www.FreeLibros.org
4 Al decir esta frase, tom am os el punto de vista m ás am plio que se
puede tener de la prueba. N o sólo ha de llevar a cabo la prueba el
equipo de desarrollo a n te s de en treg ar el softw are, sino que el
cliente/usuario prueba el softw are cada vez que lo usa.
319
INGE NIE RÍA DEL SOF TW AR E . UN ENFOQUE P R Á C T I C O
18.7.3. E n fo q u e s d e l a d e p u r a c ió n d a to s r e la c io n a d o s c o n la o c u r r e n c ia d e l e r r o r s e o rg a
Independ ien tem en ted el enfoque que se utilice, la dep u n iz a n p a r a a is la r la s p o s ib le s c a u s a s . S e lle g a a u n a
ració n tiene un objetivo p rim o rd ial: encontrar y co rre « h ip ó t e s is d e c a u s a » y s e u s a n lo s d a to s a n te r io r e s p a ra
gir la cau sa de un e rro r en el softw are. El objetivo se p r o b a r o r e v o c a r la h ip ó t e s is . A lt e r n a t iv a m e n t e , s e d e s a
consigue m ediante una co m binación de una evaluación r r o l l a u n a l i s t a d e t o d a s la s p o s i b l e s c a u s a s y s e ll e v a n
sistem ática, de intuición y de suerte. B radley [B RA 85] a c a b o p ru e b a s p a r a e lim in a r c a d a u n a . S i a lg u n a p ru e
describ e el e n fo q u e de la d ep u ració n de la sig uiente b a in ic ia l in d ic a q u e d e te r m in a d a h ip ó t e s is d e c a u s a e n
form a: p a r t ic u la r p a r e c e p r o m e te d o r a , s e r e f in a n lo s d a to s c o n
e l fin d e i n t e n t a r a i s l a r e l e r r o r .
L a depuración es una aplicación directa del m étodo cientí
C a d a u n o d e lo s e n fo q u e s a n te r io r e s p u e d e c o m p le
fico desarrollado hace 2.500 años. L a base de la depuración es
la localización de la fuente del problem a [la causa] m ediante m e n ta r s e c o n h e r r a m ie n ta s d e d e p u r a c ió n . P o d e m o s u s a r
partición binaria, m anejando hipótesis que predigan nuevos u n a g r a n c a n tid a d d e c o m p ila d o r e s d e d e p u r a c ió n , a y u
valores a exam inar. d a s d in á m ic a s p a r a la d e p u r a c ió n ( « t r a z a d o r e s » ) , g e n e
Tom em os un sencillo ejem plo que no tiene que ver con el r a d o r e s a u t o m á t i c o s d e c a s o s d e p r u e b a , v o l c a d o s de
software: en mi casa no funciona una lám para. Si no funciona m e m o r ia y m a p a s d e r e f e r e n c ia s c ru z a d a s . S in e m b a r
nada en la casa, la causa debe estar en el circuito principal de g o , la s h e r r a m i e n t a s n o s o n u n s u s t i t u t o d e l a e v a l u a
fusibles o fuera de la casa; m iro fuera para ver si hay un apa c ió n c u id a d o s a b a s a d a e n u n c o m p le t o d o c u m e n t o d e l
gón en todo el vecindario. C onecto la sospechosalám para a un
d is e ñ o d e l s o f t w a r e y u n c ó d ig o fu e n t e c la r o .
enchufe que funcione y un aparato que funcione en el circuito
sospechoso. A sí se sigue la secuencia de hipótesis y de pruebas.
www.FreeLibros.org
vuelta se hace d ifícilm ente m anejable. g r a m a e s tá p r o d u c id o p o r u n p a tr ó n d e ló g ic a e rró n e o
El tercer enfoque p ara la depuración — elim inación q u e s e p u e d e r e p e t ir e n c u a lq u ie r lu g a r . L a c o n s id e
d e c a u s a s - se m anifiesta m ediante inducción o d educ r a c ió n e x p lí c it a d e l p a tr ó n ló g ic o p u e d e te r m in a r e n
ción e introduce el concepto de p artició n binaria. L o s e l d e s c u b rim ie n to d e o tr o s e rro re s .
320
CAPÍTULO 18 ESTRATEGIAS DE PRUEB A DEL S O F T W A R E
2. ¿Cuál es el «siguiente error» que se podrá presentar a 3. ¿ Q u é p o d ría m o s haber hecho p a r a p re v e n ir este
raíz de la corrección que hoy voy a realizar? A ntes de error laprimera vez? E sta pregunta es el prim er paso
hacer la corrección, se debe evaluar el código fuente (o para establecer un m étodo estadístico de garantía de
mejor, el diseño) para determ inarel em parejam ientode calidad del softw are (Capítulo 8 ). Si corregim os tanto
la lógica y las estructuras de datos. Si la corrección se el p ro ceso com o el producto, se elim in a rá el e rro r
realiza en una sección del program a altamente acoplada, del program a actual y se puede elim inar de todos los
se debe tener cuidado al realizar cualquier cambio. futuros program as.
La prueba del softw are contab iliza el m ay o r po rcen ta A d iferencia de la p ru eb a (una actividad sistem ática
je del esfuerzo técnico del p roceso de d esarrollo de soft y planificada), la depuración se puede considerar un arte.
ware. Todavía estam os com enzando a com prender las A p artir de una indicación sintom ática de un problem a,
sutilezas de la planificació n sistem ática de la prueba, de la actividad de la depuración debe rastrear la causa del
su ejecución y de su control. error. D e entre los recursos disponibles durante la dep u
El o b jetiv o de la p ru e b a de so ftw are es d e sc u b rir ración, el m ás valioso puede ser el apoyo de otros in g e
errores. P ara conseguir este objetivo, se p lanifica y se nieros de softw are.
ejecutan u n a serie de pasos; p ruebas de unidad, de in te El requisito de que el softw are sea cada vez de m ayor
gración, de validación y del sistem a. Las pruebas de uni calidad exige un planteam iento m ás sistem ático de la
dad y de in te g ra c ió n se c e n tra n en la v e rific a c ió n prueba. C itando a D unn y U llm an [D U N 82]:
funcional de ca d a m ódulo y en la in corporación de los
L o que se requiere es una estrategia global, que se extienda
módulos en u n a estru ctu ra de program a. L a p rueba de
por el espacio estratégicode la prueba, tan deliberada en su m eto
validación dem uestra el seguim iento de los requisitos dología com o lo fue el desarrollo sistem ático en el que se basa
del softw are y la p ru eb a del sistem a v alid a el softw are ron el análisis, el diseño y la codificación,
una vez que se h a incorporado en un sistem a superior.
C ada paso de p ru eb a se lleva a cab o m ediante una En este capítulo hem os exam inado el espacio estra
serie de técnicas sistem áticas de p ru eb a que ayudan en tégico de la prueba, considerando los pasos que tienen
el diseño de casos de prueba. C on cada paso de prueba la m ay o r probabilidad de conseguir el fin Último de la
se am plía el nivel de ab stracción con el que se co n si prueba: encontrar y subsanar los defectos de una m an e
dera el softw are. ra ordenada y efectiva.
[BEI84] B e iz er, B ., Sojhs’are System Testing and Quality Assu [M IL L 7 7 ] M ille r, E ., « T h e P h ilo s o p h y o f T e s tin g » , Program
rance, V an N o s tr a n d R e in h o ld , 1984. Testing Techniques, IE E E C o m p u te r S o c ie ty P re s s , 1 9 7 7 ,
pp. 1-3. '
[BOE81] B o e h m , B ., Software Engineering Economics, P re n -
tic e -H a ll, 1981, p. 37. [M U S 8 9 ] M u s a , J. D ., y A c k e rm a n , A . F., « Q u a n tify in g S o ft
w a re V a lid a tio n : W h e n to S to p T e s tin g ? » , IEEE Softwa
[BRA85] B ra d le y , J.H ., « T h e sc ie n c e a n d A r t o f D e b u g g in g » , re, M a y o 1 9 8 9 ,p p . 19-27.
C o m p u te rw o rld , 1 9 d e A g o s to d e 1 9 8 5 ,p p . 3 5 -3 8 .
[M Y E 7 9 ] M y e rs , G ., The A rt cf Software Tests, W ile y , 1979.
[CHE90] C h e u n g , W. H ., J. P. B la c k y E. M a n n in g , « A F ra - [S H 0 8 3 ] S h o o m a n , M. L ., Software Engineering, M c g ra w -
m ew o rk fo r D istrib u te d D e b u g g in g » , IEEE Software, E n e H ill, 1983.
ro 1 9 9 0 ,pp. 1 0 6-115.
[S H N 8 0 ] S h n e id e rm a n , B ., SoftW’are Psychology, W in th ro p
[DUN82] D u n n , R ., y R. U llm a n , Quality Assurancefor Com P u b lis h e rs , 1 9 8 0 , p. 28.
puter Software, M c G ra w -H ill, 1 9 8 2 ,p. 158.
[V A N 8 9 ] V an B le c k , T „ « T h re e Q u e s tio n s A b o u t E a c h B u g
[GIL95] G ilb , T., « W h a t W e F a il T o D o In O u r C u rre n t T e s Y ou fin d » ,,4 C A / S o fia r e Engineering Notes, vo l. 1 4 ,n .3
ting C u ltu re » , Testing Techniques Newsletter, (e d ic ió n en- 5 , J u lio 1 9 8 9 ,pp. 6 2 -6 3 .
lín e a , t tn @ s o f t.c o m ), S o f tw a r e R e s e a r c h , I n c , S a n [W A L 8 9 ] W a lla n c e , D . R ., y R. U . F u jii, « S o ftw a re V erifica-
F ra n c is c o , E n e ro 199.5. tio n a n d V a lid a tio n : A n O verV iew » , IEEE Software, M a y o
www.FreeLibros.org
1 9 8 9 ,pp. 10-17. '
[M C 0 9 6 ] M c C o n n e ll, S., « B e s t P ra c tic e s : D a ily B u ild a n d
Sm oke T e s t» , IE E E S o ftw a re , vo l. 13, n .9 4 , Ju lio 1996, [Y O U 7 5 ] Y o u rd o n , E ., Techniques cf Progrum Structure and
p p . 143-144. Design, P r e n tic e - H a ll, 1975.
321
IN G EN IERÍA DEL SO FTW A R E . UN E N F O Q U E P R Á C T IC O
’ PU N TO S fl COMS1DE1
18.1. C on sus propias palabras, describa las diferencias entre tifique el orden de integración. Suponga que todos los módu
verificació n y validación. ¿ U tiliza n las dos los m étodos de los han sido probados en unidad y están disponibles. [Nota:
diseño de casos de prueba y las estrategias de prueba? puede ser necesario com enzar trabajando un poco con el dise
ño inicialm ente.]
18.2. H ag a una lista de algunos problem as que puedan estar
asociados con la creación de un grupo independiente de prue 18.7. ¿Cómo puede afectar la plan ificación del proyecto a la
ba. ¿Están form ados por las m ism as personas el G IP y el gru prueba de integración?
po SQ A ? 18.8. ¿Es posible o incluso deseable la prueba de unidad en
18.3. ¿Es siem pre posible desarrollar una estrategia de prue cualquier circunstancia? Ponga ejem plos que ju stifiquen su
ba de softw are que use la secuencia de pasos de prueba des respuesta.
crita en la Sección 18.1.3? ¿Qué posibles com plicaciones
18.9. ¿Quién debe llevar a cabo la prueba de v a lid a c ió n — el
pueden surgir para sistemas empotrados?
desarrollador del software o el usuario— ? Justifique su respuesta.
18.4. Si sólo pudiera seleccionar tres métodos de diseño de
1 8 .1 0 . D esarrolle una estrategia de prueba com pleta para el
casos de prueba para aplicarlos durante la prueba de unidad,
sistem a HogarSeguro descrito anteriorm ente en este libro.
¿cuáles serian y por qué? D ocum éntela en una Especificación de Prueba.
18.5. Porqué es d ifíc il de realizar la prueba unitaria a un m ódu
1 8.11. Corno proyecto de clase, desarrolle una guía de depu
lo con alto n ive l de integración. ración para su instalación. L a guía debe proporcionar conse
18.6. D esarrolle una estrategia de prueba de integración para jo s orientados al len g u ajey al sistema que se hayan aprendido
cualquiera de los sistemas im plem entados en los problem as con las m alas experiencias. C om ience con un esbozo de los
16.4 a 16.11. D efin a las fases de prueba, indique el orden de temas que se tengan que revisar por la clase y su profesor.
integración, especifique el softw are de prueba adicionaly ju s Publique la guía para otras personas de su entorno.
Libros orientados a las estrategias de prueba del softw are son al. (Testing Computer Software, 2 ed., Van N ostrand Rein-
los de B lack ( Managing the TestingProcess, M icro so ft Press, hold, 1993) define los pasos para una estrategia efectiva, pro
1999), D ustin, Rashka and Paul (TestProcess Improvement: p orciona un con ju n to de técnicas y directrices y sugiere
S tep-B y-Step G uide to Structured Testing, A ddison -W esley, procedim ientos para controlar y hacer un seguim iento a los
1999), Perry (Suwiving the Pop Ten Challenges o f Software procesos de prueba. H utcheson (Software Testing Methods
Testing:A People-OrientedApproach, D orset H ouse, 1997), and Metrics, M c G ra w -H ill, 1996) presenta unos métodos y
and K it anáY'mz\(Software Testingin the Real World:Impro- estrategias de prueba pero tam bién proporciona un estudio
ving the Process, A ddison -W esley, 1995). detallado de cóm o se puede usar la m ed ición para conseguir
Kaner, N g u y e n y Falk (TestingComputerSoftwa-re, W iley, una prueba efectiva.
1 99 9), Hutcheson (Software Testing M ethods and Metrics:
U n libro de D unn (Sojhi’are Defect Removal, M cG raw -H ill,
TheM ostImportant Tests, M c G ra w H ill, 1997), M a ric k (The
1 9 8 4 ) contiene unas directrices para la depuración. B eizer
Craft o f Software Testing: Subsystem Testinglncluding Object-
[B E I8 4 ] presenta una interesante «taxonom ía de errores» que
Based and Object-Oriented Testing, Prentice H a ll, 1995), Jor-
puede conducir a unos m étodos efectivos para la planificación
gensen (Software Testing: A Crafts-m an's Approach, C R C
de pruebas. M cConnell (Cocle Complete, M icrosoft Press, 1993)
Press, 1995) presentan estudios sobre los métodos y estrate
gias de prueba. presenta unos pragm áticos consejos sobre las pruebas de uni
A dem ás, antiguos libros de Evans (Productive Software dad y de integración así com o sobre la depuración.
Test Management, W ile y -In te rs c ie n c e , 1 9 8 4 ), H e tze l (The U na am plia variedad de fuentesde inform ación sobre prue
Complete Guide to Software Testing, Q E D Inform ation S cien - bas del softw are y elem entos relacionados están disponibles
ces, 1984), B e iz e r [B E I8 4 ], O u ld y U n w in (Testing in Soft en Internet. U n a lista actualizada de páginas w eb sobre con
ware Development, C am bridgeU niversity Press, 1986), M arks ceptos de prueba, m étodos y estrategias pueden encontrarse
(Testing VeiyBig Systems , M c G ra w -H ill, 1992), y K a n e r et en h ttp ://w w w .p re s s m a n 5 .c o m .
www.FreeLibros.org 322
1 Q M É T R IC A S T É C N IC A S
1 O DEL S O FTW A R E
U
N e le m e n to c la v e d e c u a lq u ie r p r o c e s o d e in g e n ie r í a e s la m e d ic ió n . E m p le a m o s m e d i
d a s p a r a e n te n d e r m e jo r lo s a t r ib u to s d e lo s m o d e lo s q u e c re a m o s . P e r o , f u n d a m e n t a l
m e n t e , e m p l e a m o s la s m e d i d a s p a r a v a l o r a r l a c a l i d a d d e l o s p r o d u c t o s d e i n g e n i e r í a o
d e lo s s is t e m a s q u e c o n s t r u im o s .
A d i f e r e n c i a d e o t r a s d is c ip lin a s , la in g e n ie r í a d e l s o ftw a r e n o e s tá b a s a d a e n le y e s c u a n t i
t a t iv a s b á s ic a s d e la F í s ic a . L a s m e d id a s a b s o lu t a s , t a le s c o m o e l v o lt a je , la m a s a , la v e l o c i
d a d o l a t e m p e r a t u r a n o s o n c o m u n e s e n e l m u n d o d e l s o f t w a r e . E n su l u g a r , i n t e n t a m o s o b t e n e r
u n c o n ju n t o d e m e d id a s in d ir e c ta s q u e d a n lu g a r a m é tr ic a s q u e p r o p o r c io n a n u n a in d ic a c ió n
d e la c a li d a d d e a lg ú n t i p o d e r e p r e s e n t a c ió n d e l s o f t w a r e . C o m o la s m e d id a s y m é t r ic a s d e l
s o f t w a r e n o s o n a b s o lu t a s , e s t á n a b ie r t a s a d e b a te . F e n t o n [ F E N 9 1 ] t r a t a e s te a s p e c t o c u a n d o
d ic e :
L a m edición es el p roceso por el que se a sig n an n úm eros o sím bolos a los a tributos d e las entidades en
el m undo real, d e tal m anera que las definan de acuerdo c o n unas reg las claram en te definidas .... E n las c ie n
cias físicas, m ed icin a y, m ás recien tem en te, en las ciencias sociales, som os a hora capaces d e m edir a trib u
tos que p reviam ente pensábam os que no eran m ed ib les... P or supuesto, tales m ediciones no están tan refinadas
co m o las de las ciencias físicas..., pero existen [y se tom an im portantes decisio n es basadas e n ellas]. S e n
tim o s que la o b lig ació n de intentar «m ed ir lo no m edible» para m ejo rar nu e stra c o m p ren sió n d e entidades
particulares es tan p o d ero sa en la in g en ie ría del softw are com o en cu alq u ier disciplina.
P e r o a lg u n o s m ie m b r o s d e la c o m u n id a d d e s o ftw a r e c o n t in ú a n a r g u m e n ta n d o q u e e l s o ftw a r e
n o e s m e d ib le o q u e s e d e b e r ía n p o s p o n e r lo s in te n to s d e m e d ic ió n h a s ta q u e c o m p r e n d a m o s m e jo r
e l s o f t w a r e y lo s a t r ib u to s q u e h a b r í a q u e e m p le a r p a r a d e s c r ib ir lo . E s t o e s u n e r r o r .
VISTAZO RÁPIDO
¿Qué es? Por su naturaleza,la ingenie necesita criterios objetivos para guiarse datos históricos. El resultado del análi
r a es una disciplina cuantitativa.Los en el diseño de datas, de la arquitectu sis es interpretado para profundizar en
ingenieros usan números para ayu ra, de las interfaces y de los componen la calidad del software, y el resultado de
darse en el diseño y cálculo del pro tes. El verificador necesita una referencia la interpretación orienta las modifica
ducto a construir. Hasta hace poco cuantitativa que le ayude en la selección ciones a originarse en los resultados
tiempo. los ingenieros del software dis de ios casos de prueba y de sus objeti obtenidos en el análisis, diseño, codifi
ponían de pocas referencias cuantita vos. Las métricas técnicas facilitan una cación y prueba.
tivas en su trabajo —pero esto está base para que el análisis, diseño, codi ¿Cuál e s e l p rod ucto ob ten id o? Las
cambiando—. Las métricas técnicas ficación y prueba puedan ser conduci métricas del software serán calculadas
ayudan a los ingenieros del software das más objetivamente y valoradas más sobre datos agregados del análisis, de
a profundizar en el diseño y construc cuantitativamente ios modelos de diseño, del código fuen
ción de los productos que desarrollan. ¿Cuáles son los p esos? La primera eta te y de los casos de prueba,
¿Quién lo h ace? Les ingenieros del soft pa en el proceso de medida consiste en ¿Cómo p u e d o ¡‘«te* *«gnro d e q u e
ware usan las métricas técnicas para extraer las medidas y métricas del sof? lo h e Hecho c o r r í st«w;*>nt*'? Hay
ayudarse en el desarrollo de software ware que son apropiadas para la repre que establecer los objetivos y medidas
de mayor calidad. sentación del software que está siendo antes de comenzar la acumulación de
¿Por q ué es importante? Siemprehabrá considerado. A continuación, se requie datos, definiendo sin ambigüedad
elementoscualitativospara la creación ren datos para extraer la formulación de cada métrica técnica. Define pocas
del software. H problema estribaen que métricas agregadas. Una vez calculadas, métricas y utilízalas para profundizar
la valoración cualitativapuede no ser las métricas apropiadas son analizadas en la calidad del resultado obtenido en
suficiente. Un ingeniero del software en base a directrices preestablecidas y la ingeniería del software
A u n q u e la s m é t r i c a s t é c n i c a s p a r a e l s o f t w a r e d e c o m p u t a d o r a n o s o n a b s o l u t a s , n o s p r o
p o r c io n a n u n a m a n e r a s is t e m á tic a d e v a lo r a r la c a lid a d b a s á n d o s e e n u n c o n ju n t o d e « r e g la s
www.FreeLibros.org
c la r a m e n te d e fin id a s » . T a m b ié n le p r o p o r c io n a n a l in g e n ie r o d e l s o f t w a r e u n a v is i ó n in t e r n a e n
e l a c to , e n v e z d e a p o s t e r io r i. E s to p e r m it e a l in g e n ie r o d e s c u b r ir y c o r r e g ir p r o b le m a s p o t e n
c ia le s a n te s d e q u e s e c o n v ie r t a n e n d e fe c to s c a t a s tr ó f ic o s .
323
I N G E N IE RÍ A DEL S O F T W A R E . UN E N F O Q U E P R A C T I C O
En el Capítulo 4 estudiábamos las métricas del software tal y como se aplican a nivel del proceso y del proyecto. En
este capítulo, nuestro punto de atención se desplaza a las medidas que se pueden emplear para valorar la calidad del pro
ducto según se va desarrollando. Estas medidas de atributos internos del producto le proporcionan al desarrollador de soft
ware una indicación en tiempo real de la eficacia del análisis, del diseño y de la estructura del código, la efectividad de los
casos de prueba, y la calidad global del software a construir.
Incluso los desarrolladores del software más hastiados que se pueden m edir directamente (por ejemplo, defec
estarán de acuerdo en que un software de alta calidad es tos por punto de función) y ( 2 ) factores que se pueden
una de las metas más importantes. Pero, ¿cómo definimos m edir sólo indirectam ente (por ejem plo, facilidad de
la calidad? En el Capítulo 8 propusimos diferentes m ane u s o o de m antenimiento). En todos los casos debe apa
ras de interpretar la calidad del software e introdujimos recer la medición. Debemos com parar el software (docu
una definición que hacía hincapié en la concordancia con mentos, programas, datos) con una referencia y llegar
los requisitos funcionales y de rendimiento explícitamen a una conclusión sobre la calidad.
te establecidos, los estándares de desarrollo explícitamente
documentadosy las característicasimplícitas que se espe
ran de todo software desarrollado profesionalmente. CLAVE
Es interesante onotor que los factores de calidad
de McCall son tan válidos hoy como cuando fueron
los primeros propuestos en losaños 70. Aterís,
es razonable Indicar que los factores que afectan
a la calidad del software no cambian.
www.FreeLibros.org
m odelos que presentan una alta calidad (en el sentido técnico) darán
lugar a un softw are de una alta calidad desde el pun to de vista del
cliente.
324
C A PIT U L O 19 M ÉTR ICA S T É C N I C A S DEL S O F T W A R E
E fic ie n cia .L a cantidad de recursos inform áticos y de códi C om p lecció n . E l grado con que se h a lo g ra d o la im ple-
go necesarios para que un program a realice su función. m entación total de una función.
Integridad. H asta dónde se puede controlar el acceso al soft C o n cisión.L o com pacto que es el program a en térm inos de
w are o a los datos por personas no autorizadas. líneas de código.
C onsistencia.E l em pleo de un diseño uniform e y de técni
cas de docum entación a lo largo del proyecto de desarrollo del
Q c 'i f a :
software.
I b cotídod de un producto es una fundón E standarizaciónde datos. El em pleo de estructuras y tipos
de ios muchos cambios del mundo por meiorar. de datos estándares a lo largo del program a.
fmDeMerce Tolerancia a l error. El daño causado cuando un program a
encuentra un error.
UsabUidad (facilidad de m anejo). E l esfuerzonecesario para
aprender a operar con el sistem a, preparar los datos de entra E ficiencia de ejecución. E l rendim iento del funcionam ien
da e interpretar las salidas (resultados) de un program a. to de un program a.
C a p a cid a d de e xpansión. El grado con que se pueden
F a cilid a d de m antenim iento. El esfuerzo necesario para
am pliar el diseño arquitectónico, de datos o procedim ental.
localizar y arreglar un error en un program a. (E sta es una defi
nición m uy lim itada). G eneralidad. L a am plitud de aplicación potencial de los
com ponentes del program a.
F lexib ilid a d .E l esfuerzo necesario para m odificar un pro
gram a que ya está en funcionam iento. Indep en d en cia d e l hardware. El grado con que se desaco
pla el softw are del hardw are donde opera.
F acilidad de prueba. El esfuerzo n ecesario para probar un
Instrum entación. E l grado con que el program a vigila su
program a y asegurarse de que realiza correctam ente su fun
propio funcionam iento e identifica los errores que ocurren.
ción.
P ortabilidad. E l esfuerzo necesario para transferir el pro
gram a de un entorno hardw are/softw are a otro entorno dife
rente.
R easabilidad (capacidad de reutilización). H asta dónde se
puede volver a em plear un program a fo p a rte s de un progra
m a) en otras aplicaciones, en relación al em paquetam iento y
alcance de las funciones que realiza el program a. Factoresde Calidad
Interoperatividad. El esfuerzonecesario para acoplarun sis M odularidud. L a independenciafuncional (C apítulo 13) de
tem a con otro. com ponentes de program a.
www.FreeLibros.org
E standarización de com unicaciones. E l grado de em pleo re. H ew lett-P ackard [G RA 87] ha desarrollado un c o n
de estándares de interfaces, protocolos y anchos de banda. ju n to de factores de calidad del softw are al que se le h a
325
I N GE NI E RÍ A DEL S OFT W ARE . UN E N F O Q U E P R A C T I C O
dado el acrónimo de FURPS: funcionalidad, facilidad subatributos: facilidad de instalación, facilidad de ajuste, faci
de uso, fiabilidad, rendim ientoy capacidad de soporte. lidad de adaptación al cam bio.
Los factores de calidad FURPS provienen de trabajos
anteriores, definiendo los siguientes atributos para cada
uno de los cinco factores principales:
lÜ lp t id creativorequiere
• La funcionalidad se valora evaluando el conjunto de 3parahacerlo bien, operfecto
características y capacidades del program a, la gene
ralidad de las funciones entregadas y la seguridad
del sistem a global. D e l m is m o m o d o q u e lo s fa c to r e s d e c a lid a d e s tu
• L afacilidad de uso se valora considerando factores d ia d o s e n la s s e c c io n e s 1 9 . 1 . 1 . y 1 9 . 1 . 2 . , lo s f a c t o r e s
humanos (capítulo 15), la estética, la consistencia y I S O 9 1 2 6 n o n e c e s a r ia m e n t e s o n u t iliz a d o s p a r a m e d i
la docum entación general. d a s d ir e c t a s . E n c u a l q u i e r c a s o , f a c i l i t a n u n a v a lio s a
b a s e p a r a m e d id a s in d ir e c t a s y u n a e x c e le n te lis t a p a ra
• La fiabilidad se evalúa midiendo la frecuencia y gra
d e t e r m in a r la c a lid a d d e u n s is t e m a .
vedad de los fallos, la exactitud de las salidas (resul
tados), el tiem po de m edio de fallos (TM D F), la
Capacidad de pruebas
v M é tric a
capacidad de recuperación de un fallo y la capaci
N. d e la calidad
Interoperativllidad
dad de predicción del programa. d e l s o ftw a re
Mantenimiento
• El rendim iento se mide por la velocidad de procesa
Reusabilidad
Portabilidad
Flexibilidad
Fiabialidad
Usabilidad
integridad
Correeión
m iento, el tiem po de respuesta, consum o de recur
Eficiencia
sos, rendim iento efectivo total y eficacia. Factor d e \
c a lid a d \
• La cap acid ad de soporte com bina la capacidad de
ampliar e l program a (extensibilidad), adaptabilidad y Facilidad
servicios (estos tres atributos representan un término de auditoria X X
más común — mantenimiento — ), así como capacidad Exactitud X
Estandarización
de hacer pruebas, compatibilidad, capacidad de con de comunicaciones X
figuración (la capacidad de organizar y controlar ele Compleción X
mentos de la configuración del software [Capítulo9]), Compleiidad X X X
Concisión X X X
la facilidad de instalación de un sistema y la facilidad
Consistencia X X X X
con que se pueden localizar los problemas. Estandarización
Los factores de calidad FURPS y atributos descritos de datos X
Tolerancia a errores X
anteriorm ente pueden usarse para establecer m étricas Eficiencia de ejecución X
de la calidad para todas las actividades del proceso del Capacidad de expansión X
software. Generalidad X X X X
mdependiencia
del hardware X X
19.1.3. Factores de calidad ISO 9126 Instrumentación X X X
Modularidad X X X X X X X
El estándar ISO 9126 ha sido desarrollado en un intento Operatividad X X
de identificarlos atributos clave de calidad para el soft Seguridad X
ware. El estándar identifica seis atributos clave de calidad: Autodocumentación X X X. X X
Simplicidad X X X X
F uncionalidad. El grado en que el softw are satisface las
independencia del sistema X X
necesidades indicadas por los siguientes subatributos: idonei
Trazabilidad X
dad, corrección, interoperatividad, conform idad y seguridad.
Facilidad deformación X
Confiabilidad. C antidad de tiem po que el softw are está dis
ponible para su uso. E stá referido por los siguientes subatri F IG U R A 1 9 .2 . Factores y m étricas de calidad.
butos: m adurez, tolerancia a fallo sy facilidad de recuperación.
Usabilidad. G rado en que el softw are es fácil de usar. Vie 19.1.4. La transición a una visión cuantitativa
ne reflejado por los siguientes subatributos: facilidad de com E n la s s e c c io n e s p r e c e d e n t e s s e e s t u d ia r o n u n c o n ju n
prensión, facilidad de aprendizaje y operatividad. to d e fa c to r e s c u a lit a t iv o s p a r a la « m e d ic ió n » d e la c a li
E ficiencia. G rado en que el softw are hace Óptimo el uso de d a d d e l s o ftw a r e . I n t e n ta m o s d e s a r r o lla r m e d id a s e x a c ta s
los recursos del sistem a.E stá in dicadopor los siguientessuba- d e la c a lid a d d e l s o f t w a r e fr u s tr a d a s a v e c e s p o r la n a tu
tributos: tiem po de uso y recursos utilizados. r a le z a s u b je tiv a d e la a c t iv id a d . C a v a n o y M c C a ll
F acilidadde mantenimiento. La facilidad con que una m odi [ C A V 7 8 ] e s tu d ia n e s ta s itu a c ió n :
ficación puede ser realizada. E stá indicada por los siguientes
L a d eterm in ació n de la calidad es un fa cto r clave en los
subatributos: facilidad de análisis, facilidad de cam bio, estabi
acontecim ientos diarios: concursos de cata de vinos, aconteci
lidad y facilidad de prueba.
m ientos deportivos (por ejem plo, la gim nasia), concursos de
www.FreeLibros.org
Portabilidad. L a facilidad con que el softw are puede ser talento,etc. E n estas situaciones,la calidad seju zg a de la mane
llevado de un entorno a otro. E stá referido por los siguientes ra m ás fundam ental y directa: com paración de objetos unos al
326
CAPÍTULO 19 M ÉT RI CA S T É C N I C A S D EL SOF TW ARE
lado de los otros bajo condiciones idénticas y con conceptos te m anera: «A ño tía s año ingeniam os instrum entos m ás exac
predeterm inados. El vino puede serjuzgado de acuerdo con su to s con los que observar la naturaleza con m ás exactitud. Y
claridad, color, bouquet, sabor, etc. Sin em bargo, este tipo de cuando m iram os las observaciones estam os desconcertados de
ju ic io es m uy subjetivo: para que tenga algo de valor, debe ver que todavía son confusas, y tenem os la sensación de que
hacerse por un experto. son tan inciertas com o siem pre.»
I Ü ** - ’ 11 * Ü * '
. ..2.PB..VES*.. ........................... - ..............................í ..i £ c .e h c : . : .............. r i m s
Como dijim os en la introducción de este capítulo, la m edi P ero existe la necesidad de m ed ir y controlar la co m
ción asigna núm eros o sím bolos a atributos de entidades plejidad del softw are. Y si es difícil de obtener un solo
en el m undo real. Para conseguirlo se necesita un m ode v alo r de esta «m étrica de calidad», si debería ser p o si
lo de m edición que com prenda un conjunto consistente ble desarrollar m edidas de diferentes atributos internos
de reglas. A unque la teoría de la m edición (por ejem plo, del program a (por ejem plo, m odularidad efectiva, in d e
[KYB84]) y su aplicación al softw are (por ejem plo, pendencia funcional y otros atributos tratados desde el
[DEM81], [B R I96]) son tem as que están m ás allá del C apítulo 13 al C apítulo 16). E stas m edidas y las m étri
alcance de este libro, m erece la pena estableceruna estruc cas obtenidas de ellas pueden usarse com o indicadores
tura fundam ental y un conjunto de principios básicos para independientes de la calidad de los m odelos de análisis
la medición de m étricas técnicas para el software. y diseño. Pero tam bién surgen problem as aquí. F enton
[FEN94] lo advierte cuando dice:
Q g ita : El peligro de intentar encontrar m edidas que caractericen
tantos atributos diferentes es que, inevitablem ente, las m edi
•i quefasmedidosdetemperatura das tienen que satisfacerobjetivosincom patibles.E sto es con
: ■;¡níúnuníndicedereferenciayevolucionan trario a la teoría de representaciónde la m edición.
| , e-m ;escalos, herramientasytécnicos, A unque la declaración de F enton es correcta, m ucha
v i *ma formaestánmadurandolasmedidas gente argum enta que la m edición técnica llevada a cabo
durante las prim eras fases del proceso de softw are les
proporciona a los desarrolladores de softw are un c o n
sistente y objetivo m ecanism o para v alorar la calidad.
19.2.1. El reto d e la s m é trica s té c n ic a s
C onviene preguntarse, no obstante, qué validez tie
Durante las p asadas tres décadas, m uchos in v estigado nen las m étricas técnicas. E s decir, ¿cóm o están de p ró
res han intentado desarro llar u n a sola m étrica que p ro xim as las m étricas técnicas y la fiabilidad y la calidad a
porcione u n a m edida c o m p leta de la co m p le jid ad del largo plazo de un sistem a basado en com putadora? F en
software. F enton [FE N 94] ca ra c teriz a esta in v e stig a ton [FEN91] trata esta cuestión de la siguiente m anera:
ción com o u n a b ú squeda del « im p o sib le santo grial».
A p e sa r de las intuitivas conexionesentre la estructura inter
Aunque se h an p ropuesto docenas de m edidas de c o m na de los productos softw are (m étricas técnicas) y su produc
plejidad [ZU S90], cada una tiene un punto de vista d ife to externo, y los atributos del proceso, ha habido, de hecho,
rente de lo que es la com plejidad y qué atributos de un m uy pocos intentos científicospara establecer relaciones espe
sistema llevan a la com plejidad. cíficas. H ay varias razones para ello: la que se m enciona m ás
a m enudo es la im posibilidad de llevar a cabo experim entos.
Todos los desafíos m encionados anteriorm ente son
Referencia lüfah m otivo de precaución, pero no es m otivo de d esprecio
de las m étricas técnicas2 . L a m edición es esencial si se
Voluminosa informaciónsobre métricas técnicas han sido desea conseguir calidad.
recopiladas por Horst Zuse: irb.cs.tu-berlin.de/-zuse/
2 Se ha producido una gran cantidad de literatura sobre las m étricas del
software(porejem plo,vea [FEN94], [ROC94], [ZUS97] para obtener unas
extensasbibliografias) y es común la critica de métricas específicas (inclu
yendo algunas de las presentadasen este capítulo)Sin em bargounuchas
www.FreeLibros.org
de las críticas se concentran en aspectos esotéricos y pierden el obje
tivo primario de la m edición en el m undo real: ayudar al ingeniero a
estableceruna m anera sistemática y objetiva de conseguir una visión
interna de su trabajo y mejorar la calidad del producto com o resultado.
327
IN GE NIE RÍ A DEL SOF TW ARE . UN E N F O Q U E PR AC T I C O
www.FreeLibros.org
Por encima de todo, intento obtener medidos técnicos
• in d ep endientes del lenguaje de p ro g ra m a c ió n . Las
simples. No te obsesiones por lo métrica «perfecta» m étrica s d e b e ría n b a sa rse en el m o d e lo de análi
porque no existe. sis, m o d elo de d ise ñ o o en la p ro p ia e stru c tu ra del
328
CAPÍTULO 19 MÉ TRI CA S T É C N I C A S DEL S O F T W A R E
www.FreeLibros.org
3 Fíjese que se puede hacer un contra argumento igualmente vigo- 4 HogarSeguro e s un sistema de seguridad para el hogar que se ha
roso. Tal es la naturaleza de las métricas del software usado como aplicación de ejemplo en capítulos anteriores
329
IN GE NIE RÍA DEL S OFT W ARE . UN EN F O Q U E P R A C T I C O
c o n fig u ra c ió n d el s is te m a ). También están presentes tor del proyecto una importante información de plani
dos salidas de usuarios (m e n s a je s y e s ta d o s d el se n ficación basada en el m odelo de análisis en lugar de en
s o r) y cuatro interfaces externas (s e n s o r d e p r u e b a , estim aciones preliminares.
co n fig u ra c ió n d e zo n a , a c tiv a r/d e s a c tiv a r y a le r ta de C onsiderar que de los proyectos anteriores se han
a la r m a ) . Estos datos, ju n to con la com plejidad apro encontrado una m edia de 3 errores por punto de función
piada, se m uestran en la Figura 19.4. durante las revisiones de análisis y diseño, y 4 errores
Factor d e ponderación
por punto de función durante las pruebas unitaria y de
Parámetro Cuenta Simple Media Compleja
integración. Estos datos pueden ayudar a valorar a los
de medición ingenieros del software la com pletitud de su s revisio
nes y las actividades de prueba.
Número de entradas 0 x 0
del usuario □
0 X 0 19.3.2. l a M é tr ic a b a n g
Número de salidas
del usuario
5
□ Al igual que la m étrica de punto de función, la métrica
consuftas bang puede emplearse para desarrollar una indicación
6 =
□ del tam año del software a im plem entar com o conse
cuencia del m odelo de análisis.
Número de archivos
□ x0 10 15
□ Desarrollada por DeMarco [DEM82], la métrica bang
es «una indicación independiente de la implernentación
Número de interfacesl0 X 0 7 10 = del tamaño del sistema». Para calcular la m étrica bang,
extemas
el desarrollador de software debe evaluar prim ero u n
Cuenta total
conjunto de prim itivas (elementos del m odelo de aná
lisis que no se subdividen m ás en el nivel de análisis).
Las prim itivas [DEM82] se determ inan evaluando el
F IG U R A 19.4. C álculo de p u n to s de fu n c ió n
m odelo de análisis y desarrollando cuentas para los
p a ra una fu n c ió n de H ogar Seguro. siguientes elem entos?
La cuenta total mostrada en la Figura 19.4debe ajus P r im itiv a s fu n c io n a le s (P F u ). Transform aciones (burbu
ja s) que aparecen en el nivel inferior de un diagram a de flujo
tarse usando la ecuación (4.1):
de datos (C apítulo 12).
PF= cuenta-total x (0,65 + 0,01 x X[F7j) E le m e n to s d e d a to s (E D ). L os atributos de un objeto de
Donde cuenta-total es la suma de todas las entradas PF datos, los elem entos de datos son datos no com puestos y apa
obtenidas en la Figura 19.3y F¡ (i=l a 14) son «los valo recen en el diccionario de datos.
res de ajuste de complejidad». Para el propósito de este O b je to s (O B ). O bjetos de datos tal y com o se describen en
ejemplo, asumimos que X[F7] es 46 (un producto m ode el C apítulo 11.
radam ente complejo). Por tanto: R elaciones (R E ). L as conexiones entre objetos de datos tal
PF= 50 x [0,65 + (0,01 x 46)] = 56 y com o se describen en el C apítulo 12.
E sta d o s (ES). E l núm ero de estados observables por el usua-
n o en el diagram a d e transición de estados (C apítulo 12).
T ran sicio n es (T R ). E l núm ero de transicionesde estado en
el diagram a de transición de estados (C apítulo 12).
Referencia Wgfe/
Una introducción útil al PF ha sido elaborada
por Capéis Jones y puede ser localizada en:
www.spr.com/ líbrary/ 0funcmet.htm A n ís s rp reflexionemos sobre uno «nuevo métrico»
¿«temos(^icor... podemos preguntarnos nosotros
jÉSfflOS sobre los puntos básicos, «Qué pretendemos
Basándose en el valor previsto de PF obtenido del jk w is métricas.
m odelo de análisis, el equipo del proyecto puede esti A k t ó NUk y Larry Pvtium
m ar el tam año global de im plementación de las funcio
nes de interacción de HogarSeguro. Asuma que los datos Además de las seis prim itivas apuntadas arriba, se
de los que se disponen indican que un PF supone 60 determ inan las cuentas adicionales para:
líneas de código (se va a usar un lenguaje orientado a P rim itiv a s m o d ific ad a s de fu n c ió n m a n u a l (PM Fu). Fun
objetos) y que en un esfuerzo de un m es-persona se pro ciones que caen fuera del lím ite del sistem a y que deben modi
ducen 12PF. Estos datos históricos proporcionan al ges- ficarse para acom odarse al nuevo sistema.
www.FreeLibros.org
5 El acrónim o apuntado entre paréntesis a continuación de la primi
tiva se em plea para denotar la cuenta de la prim itiva particularipor
ejem plo.PFu indica el núm ero de prim itivas funcionales presente a i
un m odelo de análisis.
330
CAPÍTULO 19 M É TR IC A S T É C N I C A S DEL S O F T W A R E
C o m o d ife r e n te s m o d e lo s d e a n á lis is h a r á n u n a p a r R E i IO B C
tic ió n d e l m o d e lo c o n m a y o r o m e n o r g r a d o d e r e f in a
1 1 ,0
m ie n to . D e M a r c o s u g ie r e q u e s e e m p le e u n a c u e n ta
3 4 ,0
m e d i a d e m u e s t r a (token) p o r p r i m i t i v a
6 9 ,0
p a ra c o n t r o la r la u n if o r m id a d d e la p a r t ic ió n a tr a v é s d e U n a v e z q u e s e h a c a lc u la d o la m é t r ic a b a n g , s e p u e
m u c h o s d ife r e n te s m o d e lo s d e n tr o d e l d o m in io d e u n a d e e m p le a r e l h i s t o r ia l a n t e r io r p a r a a s o c ia r la c o n e l
a p lic a c ió n . e s f u e r z o y e l t a m a ñ o . D e M a r c o s u g i e r e q u e la s o r g a n i
P a r a c a l c u l a r l a m é t r i c a bang p a r a a p l i c a c i o n e s d e z a c io n e s s e c o n s t r u y a n s u s p r o p ia s v e r s io n e s d e t a b la s
d o m in io d e f u n c ió n , s e e m p le a e l s ig u ie n te a lg o r it m o : IP F u C e I O B C p a r a c a lib r a r la in f o r m a c ió n d e p r o y e c
Asignar a bang un valor in ic ia l = <¡); to s c o m p le t o s d e s o ftw a r e .
Mientras queden p rim itiv a s funcionales p o r evaluar
Calcular cuenta-token alrededor del lím ite de l a 1 9 3 3 . M é tric a s d e l a c a lid a d d e l a e s p e c ific a c ió n
p r im itiv a i;
D a v is y s u s c o le g a s [ D A V 9 3 ] p r o p o n e n u n a lis t a d e c a r a c
Calendar el incremento PFu corregido (IPFuC) te r ís tic a s q u e p u e d e n e m p le a r s e p a r a v a lo r a r la c a lid a d d e l
Asignar l a p r i m i t i v a a una clase
m o d e lo d e a n á lis is y la c o r r e s p o n d ie n t e e s p e c if ic a c ió n d e
Evaluar l a clase y anotar el peso valorado r e q u is ito s : e s p e c if ic id a d ( a u s e n c ia d e a m b ig ü e d a d ) , c o m -
M ultiplicar IPFuC por el peso valorado
p le c ió n , c o r r e c c ió n , c o m p r e n s ió n ,c a p a c id a d d e v e r if ic a
bang = bang + ponderación IPFuC: c ió n , c o n s is te n c ia in te r n a y e x te r n a , c a p a c id a d d e lo g r o ,
FinMi en tras
c o n c is ió n , t r a z a b ilid a d , c a p a c id a d d e m o d if ic a c ió n , e x a c
L a c u e n t a - t o k e n s e c a lc u la d e te r m in a n d o c u á n to s t i t u d y c a p a c id a d d e r e u t iliz a c ió n . A d e m á s , lo s a u to r e s
s í m b o l o s l é x i c o s (tokens) d i f e r e n t e s s o n « v isib les» a p u n t a n q u e la s e s p e c i f i c a c i o n e s d e a l t a c a l i d a d d e b e n
[D E M 8 2 ] d e n tr o d e la p r im it iv a . E s p o s ib le q u e e l n ú m e e s ta r a lm a c e n a d a s e le c tr ó n ic a m e n t e , s e r e je c u ta b le s o a l
r o d e s í m b o l o s l é x i c o s (tokens) y e l n ú m e r o d e e l e m e n t o s m e n o s in t e r p r e t a b le s , a n o ta d a s p o r im p o r t a n c ia y e s t a b i
d e d a to s s e a d ife r e n te , s i lo s e le m e n to s d e d a to s p u e d e n lid a d r e la tiv a s , c o n s u v e r s ió n c o r r e s p o n d ie n te ,o r g a n iz a -
m o v e rs e d e s d e la e n tr a d a a la s a lid a s in n in g u n a tr a n s d a s , c o n r e f e r e n c ia s c r u z a d a s y e s p e c if ic a d a s a l n i v e l
www.FreeLibros.org
f o r m a c ió n in te r n a . L a I P F u C c o r r e g id a s e d e t e r m in a d e c o r r e c t o d e d e ta lle .
u n a ta b la p u b lic a d a p o r D e M a r c o . A c o n t in u a c ió n , se A u n q u e m u c h a s d e la s c a r a c t e r í s t i c a s a n t e r i o r e s p a r e
p re s e n ta u n a v e r s ió n m u y a b r e v ia d a : c e n s e r d e n a tu r a le z a c u a lit a t iv a , D a v is [ D A V 9 3 ] s u g ie
331
IN GE NI E RÍ A DEL S OFT W ARE . UN E N F O Q U E P R Á C T I C O
re que to d as p u e d a n re p re se n ta rse u san d o u n a o m ás donde n u¡ es el núm ero de requisitos para los que todos
m étricas6. P or ejem plo, asum im os que hay nr req u isi los revisores tuvieron interpretaciones idénticas. C uan
tos en una especificación, tal com o to m ás cerca de 1 esté el valor de Q, m en o r será la am bi
g üedad de la especificación.
nr = nf + nnf La com pleción de los requisitos funcionales pueden
donde «y es el núm ero de requisitos funcionales y es determ inarse calculando la relación
el núm ero de requisitos no fu n cio n ales (por ejem plo,
rendim iento). Q2= un! ( * /x «s)
donde u, es el núm ero de requisitos únicos de función,
n¡ e s el n ú m e ro de e n tra d a s (e stím u lo s) d e fin id o s o
im p licad o s p o r la e sp e cific ació n y n s es el n ú m ero de
O .A V E
estad o s esp ecificad o s. L a rela ció n Q, m ide el p o rcen
Para medir las característlcasde Id especificación, es taje de fu n cio n es n ec esa rias que se han especificado
necesario conseguir profundizar cuantitativamente en la para un sistem a. Sin em bargo, no tra ta los requisitos
especificidad y en la completitud. no funcionales. P ara in c o rp o ra rlo s a una m étrica glo
bal co m p leta, deb em o s c o n sid erar el g rado de valid a
P ara d eterm inar la especificidad (ausencia de am bi ción de los requisitos.
güed ad ) de los req u isito s. D avis su g iere u n a m étrica Q 3 = nc / ( n c + n J
basada en la consistencia de la interpretación de los revi donde nc es el núm ero de requisitos que se han valida
sores para cada requisito: do com o correctos y n " el núm ero de requisitos que no
Q i = n ui/ n r se han validado todavía.
www.FreeLibros.org
6 Un estudio completo de las métricas de calidad de especificación 7 Como se dijo en el estudio introducido en el Capítulo 13, la expan
está m ás allá del alcance de este capítulo. Vea [DAV93] para m ás sión (fout) indica el número de módulos inmediatamente subordina
detalles. dos al módulo ¡, es decir, el número de módulos que son invocados
directamente por el módulo i.
332
C A P Í T U L O 19 MÉ TR IC A S T É C N I C A S DEL S OF TW AR E
d o n d e n e s e l n ú m e r o d e n o d o s ( m ó d u lo s ) y a e s e l
n ú m e r o d e a r c o s ( lín e a s d e c o n t r o l) . P a r a la a r q u it e c t u
CLAVE r a m o s t r a d a e n la F ig u r a 1 9 .5 ,
Las máfcas pueden profundizar en la estructura,
en los datos, y en lacomplejidad del sistema skxb±>
con el diseño arquitectónico.
L a c o m p le jid a d d e d a to s , D ( i ) , p r o p o r c io n a u n a i n d i
c a c ió n d e la c o m p le jid a d e n la in t e r f a z in t e r n a d e u n
m ó d u lo i y s e d e f in e c o m o :
d o n d e v ( i) e s e l n ú m e r o d e v a r ia b le s d e e n tr a d a y s a li
d a q u e e n t r a n y s a le n d e l m ó d u lo í
F in a lm e n t e , la c o m p le jid a d d e l s is te m a , C ( i ) , s e d e f i
n e c o m o l a s u m a d e la s c o m p l e j i d a d e s e s t r u c t u r a l y d e
4 - Anchura -
d a to s , y s e d e f in e c o m o :
F IG U R A 1 9 .5 . Métricas de morfología
C ( i) = S ( i) + D ( i) (1 9 .3 )
A m e d id a q u e c r e c e n lo s v a lo r e s d e c o m p le jid a d , la t a m a ñ o = 17 + 1 8 = 35
c o m p le jid a d a r q u it é c t ó n ic a o g lo b a l d e l s is t e m a t a m p r o f u n d id a d = e l c a m in o m á s la r g o d e s d e e l n o d o
b ié n a u m e n ta . E s to lle v a a u n a m a y o r p r o b a b ilid a d d e r a í z ( p a r te m á s a lt a ) a u n n o d o h o ja . P a r a la
q u e a u m e n te e l e s fu e r z o n e c e s a r io p a r a la in te g r a c ió n a r q u it e c t u r a m o s t r a d a e n la F ig u r a 1 9 .5 , la
y la s p r u e b a s . p r o fu n d id a d = 4 .
§ valorar la Complejidad
de ciertos modelos
arquitectónicos?
n iv e l d e la a r q u it e c t u r a . P a r a la a r q u it e c t u r a m o s t r a
d a e n la F ig u r a 1 9 .5 , la a n c h u r a = 6 .
R e l a c i ó n a r c o - a - n o d o , y = a / n.
q u e m id e la d e n s id a d d e c o n e c t iv id a d d e la a r q u it e c t u
U n a m é tr ic a d e d is e ñ o a r q u it e c t ó n ic o d e a lto n iv e l,
r a y p u e d e p r o p o r c io n a r u n a s e n c illa in d ic a c ió n d e l a c o
p r o p u e s t a p o r H e n r y y K a f u r a [ H E N 8 1 ], t a m b i é n e m p l e a
p la m ie n t o d e la a r q u it e c t u r a . P a r a la a r q u it e c t u r a
la e x p a n s i ó n y l a c o n c e n t r a c i ó n . L o s a u t o r e s d e f i n e n
m o s t r a d a e n la F ig u r a 1 9 .5 , y = 1 8 / 1 7 = 1 , 0 6 .
u n a m é tr ic a d e c o m p le jid a d d e la f o r m a :
M H K = l o n g i t u d ^ : ) x \ J J i ) + f 0J i ) ] 2 (1 9 .4 )
Q c i
d o n d e l a longitud(i) e s e l n ú m e r o d e s e n t e n c i a s e n l e n til medición puede ser visto como un rodeo. Este
g u a je d e p r o g r a m a c i ó n e n e l m ó d u l o i y f in ( i ) e s l a c o n rodeo és necesorio porque los humónos muchos
c e n t r a c ió n d e l m ó d u lo í H e n r y y K a f u r a a m p lí a n la veces no estamos copocitodos paro tomor decisiones
d e f in ic ió n d e c o n c e n t r a c ió n y e x p a n s ió n p r e s e n ta d a s con claridad y objetividad [sin un soporte
e n e s te li b r o p a r a i n c l u i r n o s ó lo e l n ú m e r o d e c o n e
x io n e s d e c o n t r o l d e l m ó d u l o ( lla m a d a s a l m ó d u lo ) ,
s in o t a m b i é n e l n ú m e r o d e e s t r u c t u r a s d e d a t o s d e l q u e
e l m ó d u lo i r e c o g e ( c o n c e n t r a c ió n ) o a c tu a liz a ( e x p a n
19.4.2. M étricas d e d iseñ o a n iv el d e com po
s ió n ) d a t o s . P a r a c a lc u la r e l M H K d u r a n t e e l d i s e ñ o nentes
p u e d e e m p le a r s e e l d is e ñ o p r o c e d im e n t a l p a r a e s t im a r L a s m é tr ic a s d e d is e ñ o a n i v e l d e c o m p o n e n te s s e c o n
e l n ú m e r o d e s e n te n c ia s d e l le n g u a je d e p r o g r a m a c ió n c e n t r a n e n la s c a r a c t e r í s t ic a s in t e r n a s d e lo s c o m p o
d e l m ó d u l o i. C o m o e n l a s m é t r i c a s d e C a r d y G l a s s n e n t e s d e l s o f t w a r e e i n c l u y e n m e d i d a s d e la s « 3 C s »
m e n c io n a d a s a n t e r io r m e n t e , u n a u m e n t o e n la m é t r i — la c o h e s ió n , a c o p la m ie n t o y c o m p le jid a d d e l m ó d u
c a d e H e n r y - K a fu r a c o n d u c e a u n a m a y o r p r o b a b ili lo — i E s t a s t r e s m e d i d a s p u e d e n a y u d a r a l d e s a r r o l l a
d a d d e q u e t a m b ié n a u m e n te e l e s fu e r z o d e in te g r a c ió n d o r d e s o ftw a r e a ju z g a r la c a lid a d d e u n d is e ñ o a n iv e l
y p r u e b a s d e l m ó d u lo . d e lo s c o m p o n e n te s .
F e n to n [F E N 9 1 ] s u g ie r e v a r ia s m é tr ic a s d e m o r f o L a s m é t r ic a s p r e s e n ta d a s e n e s ta s e c c ió n s o n d e c a ja
lo g í a s im p le s ( p o r e j e m p lo , f o r m a ) q u e p e r m it e n c o m b la n c a e n e l s e n tid o d e q u e r e q u ie r e n c o n o c im ie n t o d e l
p a r a r d if e r e n te s a r q u it e c t u r a s d e p r o g r a m a m e d ia n te t r a b a jo in t e r n o d e l m ó d u lo e n c u e s tió n . L a s m é t r ic a s d e
u n c o n ju n t o d e d im e n s io n e s d ir e c ta s . E n la F ig u r a 1 9 .5 , d is e ñ o d e lo s c o m p o n e n te s s e p u e d e n a p lic a r u n a v e z
www.FreeLibros.org
se p u e d e n d e f i n i r la s s i g u i e n t e s m é t r i c a s : q u e s e h a d e s a r r o lla d o u n d is e ñ o p r o c e d im e n t a l. T a m
b ié n se p u e d e n r e tra s a r h a s ta te n e r d is p o n ib le e l c ó d i
tam añ o = n + a 19.5
g o fu e n te .
333
INGE NIERÍA DEL SOF TW ARE . UN EN F O Q U E P R Á C T I C O
Señales de unión. E l conjunto d e m uestras de datos que se da = núm ero de parám etros de datos de salida
encuentran en una o m ás porciones d e datos. c0 = núm ero de parám etros de control de salida
Señales de superunión. L a m uestras de datos com unes a
todas las porciones de datos de un m ódulo.
P egajosidad. L a pegajosidad relativa de una m uestra de
-M *
unión es directam ente proporcional al núm ero de porciones de
Referencia KteW
datos que liga. Edocumento,«Sistema de métricas del software
B i e m a n y O t t d e s a r r o l l a n m é t r i c a s p a r a cohesiones módulos» podéis bajarlo de
para el acoplamiento de
www.FreeLibros.org
8 El autor [DHA95] advierte que los valores de k y a, b y c (tratados
en la siguiente ecuación)pueden ajustarse a m edida que se van ven-
ficando experim entalm ente.
334
CAPÍTULO 19 MÉ TR IC A S T É C N I C A S DEL S OFT WA RE
www.FreeLibros.org
d o d a to s d e v a r io s p r o y e c t o s d e p r o g r a m a c ió n r e a le s , h a d e e n u n a c u a d r í c u la . C a d a c u a d r o d e la c u a d n c u la r e p r e
a v e r ig u a d o q u e u n a c o m p l e j i d a d c i c l o m á t i c a d e 1 0 p a r e - s e n ta u n a p o s ib le p o s ic ió n d e u n a e n t id a d d e la
ce s e r e l lí m it e p r á c t ic o s u p e r io r p a r a e l ta m a ñ o d e u n r e p r e s e n ta c ió n . P a r a u n a c u a d r í c u la c o n N p o s ib le s p o s i
335
IN GE NI ER ÍA DEL S O F TW A RE . UN E N F O Q U E P R Á C T I C O
ciones y K diferentes entidades de representación para La CR se em plea para valorar diferentes distribu
colocar, el número posible de distribuciones se repre ciones propuestas de IGU y la sensibilidadde una repre
senta de la siguiente manera [SEA93]: sentación en particular a los cambios en las descripciones
número posible de distribuciones = de tareas (por ejemplo, cambios en la secuencia y/o fre
= [ N ! / ( K k ( N - K ) ] ] x K ! (19.9) cuencia de transiciones). El diseñador de interfacespue-
de emplear el cambio en la conveniencia de la
A medida que crece el número de posiciones de repre representación, A C R , com o guía en la elección de la
sentación, el número de distribuciones posibles se hace mejor representación de IGU para una aplicación en
muy grande. Para encontrar la representación óptima particular.
(menor coste). Sears [SEA93] propone un algoritmo de Es importante apuntar que la selección de un diseño
búsqueda en árbol. de IGU puede guiarse con métricas tales como CR, pero
el árbitro final debería ser la respuesta del usuario basa
da en prototipos de IGU. Nielsen y Levy [NIE94] infor
la s métricas del diseno de interface son volidos, pero man que «existe una gran posibilidad de éxito si se elige
sobre todo, son absolutamentenecesarhs para aseguro/ una interfaz basándose solamente en la opinión del usua
que a los usuarios finales les agrado la intefoce y estén rio. El rendimiento medio de tareas de usuario y su satis
satisfechos con los interacciones requeridas. facción con la IGU están altamente relacionadas.»
www.FreeLibros.org
que la teoría subyacente sea correcta. Sin em bargo, se han realizado
verificaciones experim entales de las averiguaciones de Halstead para
varios lenguajes de program ación (porejem plo, [FEL89]).
336
CAPÍTULO 19 MÉ TRI CA S T É C N I C A S DEL S O F T W A R E
El trabajo de H alstead se presta a la verificación expe pero puede decirse que se ha llegado a un bu en a c u e r
rim ental y de hech o se ha desarrollado u n a gran labor do entre lo previsto analíticam entey los resultados ex p e
de in v estigación en la ciencia del softw are. U n estudio rim e n ta le s. P ara m ás in fo rm a c ió n , v e a [Z U S 9 0 ],
de este trabajo estaría fu era del alcance de este libro, [FEN91] y [ZUS97],
Aunque se ha escrito m ucho sobre las m étricas del soft de diseño de casos de prueba presentado en el C apítu
ware para p ruebas (por ejem plo, [H E T 93]), la m ayoría lo 17. A dem ás, la com plejidad ciclom ática puede u sa r
de las m étricas p ropuestas se co ncentran en el proceso se para elegir m ódulos com o candidatos para pruebas
de prueba, no en las características técnicas de las pru e m ás p ro fu n d as (C a p ítu lo 18). L os m ó d u lo s c o n gran
bas m ism as. E n general, los responsables de las p ru e com plejidad ciclom áticatienen m ás probabilidad de ten
bas d eben fiarse de las m é tric a s de a n álisis, d iseño y dencia a errores que los m ódulos con m en o r co m pleji
código p ara que les guíen en el d iseñ o y ejecución de dad ciclom ática.
los casos de prueba. Por esta razón, el analista debería invertir un esfuerzo
extra para descubrir errores en el m ódulo antes de in te
grarlo en un sistema. E s esfuerzo de las pruebas tam bién
se puede estim ar usando m étricas obtenidas de m edidas
CLAVE de Halstead (Sección 19.5). U sando la definición del volu
los métricos de lo prueba desembocan en las siguientes m en de un program a, V, y nivel de program a, N P , el
categorias:(l) métricas que ayudan o determinar esfuerzo de la ciencia del softw are, e, puede calcularse
el número de pruebas requeridosen los distintos niveles
como:
dé la prueba; (2)métr¡cas poro cubrirla pruebo
de un componente dado. N P = 1 / [(nj/2) X ( N 2/n2)\ (19.13a)
www.FreeLibros.org
ces y controladores). L a com plejidad ciclom ática (una de los fallos proporcionan una descripción de un error,
métrica de diseño de com ponentes) se encuentra en el de m anera que se puedan llevar a cabo análisis estadís
núcleo de las p ruebas de cam inos básicos, un m étodo ticos de errores.
337
INGE NIERÍA DEL SOF TW ARE . UN EN F O Q U E P R Á C T I C O
Todas las métricas del softwarepresentadas en este capí F a _ núm ero de m ódulos en la versión actual que se han aña
tulo pueden usarse para el desarrollo de nuevo softwa dido
Fd = núm ero de m ó d u lo s d e la versión anterior que se han
re y para el m antenim iento del existente. Sin embargo,
borrado en la versión actual
se han propuesto métricas diseñadas explícitam entepara
El índice de m adurez del software se calcula de l a
actividades de m antenim iento.
siguiente manera:
El estándar E E E 982.1-1988 [EEE94] sugiere un índi
IM S = [ M T - ( F á + F c + Fd) ] I M T (19.15)
ce de madurez del software (IMS) que proporciona una
indicación de la estabilidad de un producto software (basa A m edida que el IMS se aproxima a 1 ,O el producto
da en los cambios que ocurren con cada versión del pro se em pieza a estabilizar. EL IMS puede emplearse tam
ducto). Se determina la siguiente información: bién com o m étrica para la planificación de las activi
dades de m antenim iento del software. El tiem po medio
M t - núm ero de m ódulos en la versión actual para producir una versión de un producto software pue
F c _ núm ero de m ódulos en la versión actual que se han de correlacionarse con el IMS desarrollándose mode
cam biado los empíricos para el mantenimiento.
RESV.- . i
Las m étricas del softw are proporcionan una m anera de diseño de alto nivel consideran los aspectos arqui
cuantitativa de valorar la calidad de los atributos inter tectónicos y estructurales del m odelo de diseño. Las
nos del producto, perm itiendo por tanto al ingeniero m étricas de diseño de nivel de com ponentes propor
valorar la calidad antes de construir el producto. Las cionan una indicación de la calidad del módulo esta
métricas proporcionan la visión interna necesaria para bleciendo m edidas indirectas de la cohesión,
crear modelos efectivos de análisis y diseño, un código acoplamiento y complejidad. Las métricas de diseño de
sólido y pruebas minuciosas. interfaz proporcionan una indicación de la convenien
Para que sea útil en el contexto del m undo real, una cia de la representación de una IGU.
m étrica del software debe ser simple y calculable, per La ciencia del software proporciona un intrigante
suasiva, consistente y objetiva. D ebería ser indepen conjunto de métricas a nivel de código fuente. Usando
diente del lenguaje de program ación y proporcionar el núm ero de operadores y operandos presentes en el
una realim entación eficaz para el desarrollador de soft código, la ciencia del software proporciona una varie
ware. dad de métricas que pueden usarse para valorar la cali
Las métricas del m odelo de análisis se concentran dad del programa.
en la función, los datos y el comportamiento (los tres Se han propuesto pocas m étricas técnicas para un
componentes del m odelo de análisis). El punto de fun empleo directo en las pruebas y mantenim iento del soft
ción y la m étrica bang proporcionan m edidas cuantita ware. Sin em bargo, se pueden em plear m uchas otras
tivas para evaluar el m odelo de análisis. Las métricas métricas técnicas para guiar el proceso de las pruebas
del diseño consideran aspectos de alto nivel, del nivel y com o m ecanismo para valorar la facilidad de mante
de componentes y de diseño de interfaz. Las métricas nim iento de un program a de computadora.
[BAS84] Basili, y V.R D.M. Weiss, «A Methodology for [CAV78] Cavano, J.R, y J.A. McCall, «AFrameworkforthe
CollectingValid Software EngmeeringData»,/£,£ ,£' Trans. Measurement of Software Quality», Proc.ACM Software
Software Engineering, vol. SE-10, 1984,pp. 728-738. Quality Assurance Wokshop, Noviembre 1978,pp. 133
139. '
[BIE94] Bieman, J.M .,y L.M. Ott, «Measuring Functional
Cohesión», IEEE Trans. Software Engineering, vol. 20, [CHA89] Charette, R.N., Software Engineering Risk Analy
n.e 8, Agosto 1994,pp. 308-320. sis and Management,McGraw-Hill/Intertext, 1989.
[BRI96] Briand, L.C., S. Morasca, y V.R. Basili, «Properly-Based [CURSO] Curtís, W., «Management and Experimentation in
Software Engineering Measurement», IEEE Trans. Softwa Software Engineering», Proc. IEEE, vol. 68, n.Q9, Sep
www.FreeLibros.org
re Engineering, vol 22, n.‘J 1,Enero 1996,pp. 68-85. tiembre 1980.
[CAR90] Card, D., y N. R. L. Glass, Measuring Software [DAV93] Davis, A., et al.,«Identifying and Measuring Qua
Design Quality, Prentice-Hall, 1990. lity in a Software Requirements Specification», Proc. l st
338
CAPÍTULO 19 M É T R I C A S T É C N I C A S DEL S OF TW AR E
Intl. Softw are M e tric s Sym posium , IE E E , B altim o re, M D , [IE E 9 4 ] S o ftw a r e E n g in e e r in g S ta n d a r d s , 1994, IE E E , 1994.
M a y 1993, pp. 141-152. [K Y B 8 4 ] K y b u rg ,H .E ., T h e o r y a n d M e a s u re m e n t, Cam bridge
[D E M 8 1 ] D e M illo , R .A . , y R.J. L ip to n , « S o ftw are Project U n iversity Press, 1984.
Forecasting», S o f t w a r e M e t r i c s (Á.J. Perlis, F.G . Sayw ard
[M C C 7 6 ] M c C a b e , T.J., « A Softw are C o m p lexity M easure»,
y M . Shaw, ed.), M I T Press, 1 9 8 1 ,pp. 77-89.
IE E E Trans. Software Engineering, vol. 2, D iciem bre 1976,
[D E M 8 2] D eM a rc o , T., C o n t r o llin g S o ftw a re P r o je c ts , Your- pp. 3 08-320.
don Press, 1982.
[M C C 7 7 ] M c C a ll, J., P. R ichards, y G. W alters, «Factors in
[D H A 95] D ham a, H ., «Q uantitative M o d e ls o f Cohesión and Softw are Q uality », 3 vols., N T IS A D -A 0 4 9 -0 1 4 ,0 1 5 ,0 5 5 ,
Coupling in Softw are», J o u r n a l o f S y s t e m s a n d S o f t w a r e , N o vie m b re 1977.
vol. 2 9, n.° 4, A b ril 1995. '
[M C C 8 9 ] M c C a b e , T .J .,y C .W .B u tle r, «D esign C om plexity
[EJI91] E jio g u ,L ., S o f t w a r e E n g in e e r in g w ith F o r m a l M e t r ic s , M easu rem en t and Testin g », C A C M , vol. 3 2 , n.° 12,
Q E D Publishing, 1991. D ic iem b re 1 9 8 9 ,pp. 1415-1425.
[F E L 89] F e lic an , L ., y G . Z a la te u , « V a lid a tin g Halstead's [M C C 9 4 ] M c C a b e , T.J., y A .H . W atson, «S o ftw are C o m p le
Theory fo r Pascal Programs», IE E E Trans. Softw are E n g i xity», Crosstalk, vol. 7, n.° 1 2 ,D iciem bre 1 99 4,pp. 5-9.
neering, vol. 1 5 ,n.° 2, D ic iem b re 1 9 8 9 ,pp. 1630-1632.
[N IE 9 4 ] N ielsen, J., y J. L evy, «M easuring U sability: P refe-
[F E N 91] Fenton, N ., S o ftw are M e tric s , C hapm an & H a ll, rence vs. Perform ance», C A C M , vol. 37,n.° 4, A b ril 1994,
1991. pp. 76-85.
[FEN 94] Fenton, N ., «So ftw are M easurem ent: A Necessary [R O C 9 4 ] R oche, J .M ., «S o ftw are M e tric s and M easurem ent
S cie n tific B a sis »,/£ ,£ ,£ ' T r a n s . S o f t w a r e E n g i n e e r i n g , vol. Principies», S o f t w a r e E n g i n e e r i n g N o t e s , A C M , vol. 19,
2 0 , n.° 3, M a rz o 1994, pp. 199-206. n.° 1 ,E nero 1 9 9 4 ,pp. 76-8 5 .
[GRA87] Grady, R. B ., y D .L . Caswell, S o f t w a r e M e t r i c s : E s t a - [S E A 93] Sears,A., «LayoutA ppropriaten ess:A M etricforE va-
b l i s h i n g a C o m p a n y - W i d e P r o g r a m , Prentice-H all, 1987. luating U ser Interface W idg et L a y o u t» ,/£ ,£ '£' T r a n s . S o f t
w a r e E n g i n e e r i n g , vol. 19,n.° 7, ju lio 1 99 3,pp. 7 07-719.
[H A 77] H alstead, M ., E le m e n t s o f S o f t w a r e S c ie n c e , N A rth
H olland, 1977. [U S A 8 7 ] M a n a g e m e n t Q u a l i t y I n s i g h t , A FC S P 8 0 0 -1 4 (U.S.
A ir Force), 2o Enero, 1987.
[H EN 81] H enry, S., y D . K a fu ra ,« Softw are S tm ctureM etrics
Based on in fo rm a tio n F lo w » , I E E E T r a n s . S o f t w a r e E n g i [Z U S 90] Zuse, H ., S o f t w a r e C o m p l e x it y : M e a s u re s a n d M e th o d s ,
n e e r i n g , vol. S E -7, n .° 5 , Septiem bre 1 9 8 1 ,pp. 5 10 -5 18 . DeGruyter, N ueva York, 1990.
[H E T 9 3] H etze l, B ., M a k i n g S o ftw a r e M e a s u re m e n t. W o rk , [Z U S 9 7 ] Zuse, H , , A F r a m e w o r k o f S o ftw a re M e a s u re m e n t,
Q E D Publishing, 1993. D eG ruyter, N u ev a Y o rk, 1997.
19.1. L a teoría de la m edición es un tem a avanzado que tie 19.3.2., desarrollecuentasprim itivaspara la m étrica bang. ¿El
ne una gran influencia en las m étricas del software. M e d ia n sistema SSR B es de dom inio de fu nción o de datos?
te [F E N 9 1], [Z U S 9 0 ] y [K Y B 8 4 ] u otras fuentes, escriba una 19.6. C alcule el v alo r de la m étrica bang usando las m edidas
pequeña redacción que recoja los principales principios de la que desarrolló en el P roblem a 19.5.
teoría de la m ed ición. Proyecto in d ivid u a l: Prepare una con
ferencia sobre el tem a y expóngala en clase. 19.7. Cree un m odelo de diseño com pleto para un sistema
propuesto por s u profesor. C alcule la com plejidad estructural
19.2. Los factores de calidad de M c C a ll se desarrollaron y de datos usando las m étricas descritas en la Sección 19.4.1.
durante los años setenta. Casi todos los aspectos de la in fo r C alcule tam bién las m étricas de H e n ry -K a fu ra y de m o rfo lo
mática han cam biado dram áticam ente desde que se desarro gía para el m odelo de diseño.
llaron, y sin embargo, los factores de M c C a ll todavía se aplican
enel software moderno. ¿Puede sacar alguna conclusiónbasa- 19.8. U n sistema de inform ación grande tiene 1.140 m ódu
da en este hecho? los. H ay 96 m ódulos que realizan funciones de control y coor
dinación, y 4 9 0 cuya fu nción depende de un proceso anterior.
19.3. Por qué no se puede desarrollar una única m étrica que E l sistemaprocesa aproxim adam ente220 objetos de datos con
lo abarque todo para la com plejidad o calidad de un progra una m edia de tres atributos por objeto de datos. H ay 140 e le
ma? m entos de la base de datos Unicos y 9 0 segmentos de base de
19.4. R evise el m odelo de análisis que desarrolló com o p ar datos diferentes. 6 0 0 m ódulos tienen un solo punto de entra
te del P roblem a 12.13. M e d ian te las directrices de la Sección da y de salida. C alcule el IC D E del sistema.
19.3.1., desarrolle una estim ación del núm ero de puntos fu n
19.9. Investigueel trabajo de B iem an y Ott [B IE 9 4 ] y desarro
www.FreeLibros.org
ción asociados con SSRB.
lle un ejem plo completo que ilustre el cálculo de su m étrica de
19.5. R evise el m odelo de análisis que desarrolló com o p ar cohesión. Asegúrese de indicar cóm o se determ inan las porcio
te del Problem a 12.13. M e d ian te las directrices de la Sección nes de datos, señales de datos y señales de unión y superuníón.
339
IN GE NI E RÍ A DEL S OFT W ARE . UN E N F O Q U E P R Á C T I C O
19.10. Seleccione cinco módulos existentes de un progra 19.13. Desarrolle una pequeña herramienta de software que
ma de computadora. Mediante la métrica de Dhama descrita realice un análisis Halstead de un código fuente de un lenguaje
en la Sección 19.4.2., calcule el valor de acoplamiento de de programación a su elección.
cada módulo. 19.14. Haga una investigacióny escriba un documento sobre
la relación entre las métricas de la calidad del software de Hals-
19.11. Desarrolle una herramienta de software que calcule teady la de McCabe (conrespecto a la cuenta de errores). ¿Son
la complejidad ciclomática de un módulo de lenguaje de pro convincentes los datos? Recomiende unas directrices para la
gramación. Elija el lenguaje. aplicación de estas métricas.
19.12. Desarrolle una herramienta de software que calcule 19.15. Investigue documentos recientes en busca de métri
la conveniencia de la representación de una IGU. Esa herra cas específicamente diseñadas para el diseño de casos de prue
mienta debería permitirle asignar el coste de transición entre ba. Exponga los resultados en clase.
las entidades de la representación. (Nota: fíjese en que el tama 19.16. Un sistema heredado tiene 940 módulos. La última
ño potencial del número de las alternativas de representación versión requiere el cambio de 90 de estos módulos. Además,
crece mucho a medida que aumenta el número de posibles se añaden 40 módulos nuevos y se quitaron 12 módulos anti
posiciones de cuadrícula.) guos. Calcule el índice de madurez del software del sistema.
www.FreeLibros.org 340
PARTE
IV
INGENIERÍA
DEL SOFTWARE
ORIENTADA A OBJETOS
www.FreeLibros.org 341
www.FreeLibros.org
C A P ÍT U L O
CONCEPTOS Y PRINCIPIOS
ORIENTADOS A OBJETOS
V
I V I M O S e n u n m u n d o d e o b je t o s . E s to s o b je t o s e x is t e n e n la n a tu r a le z a , e n e n t id a d e s
h e c h a s p o r e l h o m b r e , e n lo s n e g o c io s y e n lo s p r o d u c t o s q u e u s a m o s . P u e d e n s e r c la
s if ic a d o s , d e s c r ito s , o r g a n iz a d o s , c o m b in a d o s , m a n ip u la d o s y c r e a d o s . P o r e s to n o e s
s o r p r e n d e n te q u e s e p r o p o n g a u n a v is ió n o r ie n t a d a a o b je t o s p a r a la c r e a c ió n d e s o ftw a r e
c o m p u ta d o r a , u n a a b s tr a c c ió n q u e m o d e la e l m u n d o d e f o r m a t a l q u e n o s a y u d a a e n te n d e r lo
g o b e r n a r lo m e jo r .
L a p r im e r a v e z q u e s e p r o p u s o u n e n fo q u e o r ie n t a d o a o b je t o s p a r a e l d e s a r r o llo d e s o f t w a
r e f u e a f i n a l e s d e l o s a ñ o s s e s e n t a . S i n e m b a r g o , la s t e c n o l o g í a s d e o b j e t o s h a n n e c e s i t a d o c a s i
v e in t e a ñ o s p a r a lle g a r a s e r a m p lia m e n t e u s a d a s . D u r a n t e lo s a ñ o s 9 0 , la in g e n ie r í a d e l s o f t
w a r e o r ie n t a d a a o b je t o s s e c o n v ir t ió e n e l p a r a d ig m a d e e le c c ió n p a r a m u c h o s p r o d u c to r e s d e
s o f t w a r e y p a r a u n c r e c ie n t e n ú m e r o d e s is t e m a s d e in f o r m a c ió n y p r o f e s io n a le s d e la in g e n ie
r í a . A m e d i d a q u e p a s a e l t i e m p o , la s t e c n o l o g í a s d e o b j e t o s e s t á n s u s t i t u y e n d o a l o s e n f o q u e s
c lá s ic o s d e d e s a r r o llo d e s o ftw a r e . U n a p r e g u n t a im p o r t a n t e e s : ¿ P o r q u é ?
L a r e s p u e s ta ( c o m o m u c h a s o tr a s r e s p u e s ta s a in te r r o g a n te s s o b r e in g e n ie r í a d e l s o ftw a r e )
n o e s s e n c illa . A lg u n a s p e r s o n a s a r g u m e n ta r ía n q u e lo s p r o fe s io n a le s d e l s o ftw a r e s e n c illa
m e n te a ñ o r a b a n u n n u e v o e n fo q u e , p e r o e s ta v is ió n e s m u y s im p lis ta . L a s te c n o lo g ía s d e o b je
t o ll e v a n u n n ú m e r o d e b e n e f ic io s in h e r e n t e s q u e p r o p o r c io n a n v e n t a ja s a lo s n iv e le s d e d ir e c c ió n
y té c n ic o .
VI STAZO RÁPI DO
¿ Q u é « s ? Use/ m uchas form as d e enfocar E sta im p o rta n te c a ra c te rís tic a p e rm i d e l p ro b le m a , el d ise ñ o p roporciona
un pro b lem a utilizan d o u n a solución te c o n stru ir c la s e s d e o b je to s e in h e d e ta lle s sobre la arquitectura, lasin ter-
b a sa d a e n e l softw are.U n enfoque muy r e n te m e n te c o n s tru ir b ib lio te c a s d e fa c e s y los c o m p o n e n te s, la im ple-
utilizado e s la visión o rientada a obje objetos y c la s e s reu tilizab les. El p a r a m e n ta c ió n (u tiliz a n d o u n le n g u a je
tos. El dom iniodel problem a secaracte- d ig m a d e o rie n ta c ió n a ob jeto s e s ta n orientado a objetosjtransform a el dise
riza m ediante un conjunto d e objetos con a tra c tiv o p a r a ta n ta s o rg a n iz a c io n e s ñ o e n código, y la s p ru e b a s ch eq u e an
atributosy com portam ientos específicos. d e d e s a rro llo d e so ftw a re d e b id o a ta n to la arq u itectu ra como la s in terfa
Los objetos son m an ip u lad o s m ediante q u e l a re u tiliz a c ió n e s u n a trib u to c es y los com ponentes.
u n a colección d e fu n cio n es (lla m a d a s im p o rta n tís im o e n la in g en ie ría . d e l ¿Cuól e s e l p ro d u cto o b ten id o ? S e
m étodos, o peracio n es o servicios) y se so ftw a re. A d e m á s , lo s c o m p o n e n te s produce un conjunto d e m odelos o rien
com unican entre ellos m ediante u n pro d e so ftw a re d e riv a d o s m e d ia n te el ta d o s a objetos. E stos m odelos de sc ri
tocolo d e m ensajes. Los objetos se c la si p a ra d ig m a d e objetos m u estran c a ra c b e n los req u isito s, el diseñ o , e l código
fican m ediante c la se s y subclases. te rística s (com ola in d ep en d en cia fun y los p ro ceso s d e p ru e b a s p a ra un sis
¿ Q u ié n lo h a c e ? Ia d e fin ic ió n d e objetos c io n a l, la o c u lta c ió n d e in form ación, te m a o producto.
implica 1a descripción de atributos, com etc,) a s o c ia d a s con e l so ftw a re d e a lta
¿Cómo p u e d o e s ta r se g u r o d e que
portam ientos, operaciones y m ensajes. calid ad .
lo h e h e c h o c o r r e c ta m e n te ? E n
E sta a c tiv id a d la re a liz a un ingeniero ¿C uáles son lo s p aso s? L a in g e n ie ría c a d a e ta p a se revisa la c la rid a d d e l os
del software. d el softw are o rie n ta d o a objeto s sig u e productos d e tra b a jo orien tad o s a obje
¿Por q u é e s im p o r ta n te? Un objeto los m ism os p a so s q u e el en fo q u e con to s, su co rrecció n , co m p leció n y c o n
e n c a p s u la ta n to d a to s com o lo s p ro vencional. El a n á lisis identifica ¡a s c la siste n c ia con los re q u is ito s d e l c lie n te
c e so s q u e s e a p li c a n a e s o s d a to s. s e s y objeto s re le v a n te s e n el dom inio y e n tre ellos.
www.FreeLibros.org
g r a n d e s s is t e m a s e n s a m b la n d o s u b s is t e m a s r e u t iliz a b le s ) .
E n e s te c a p í t u lo p r e s e n ta m o s lo s p r in c ip io s y c o n c e p to s b á s ic o s q u e f o r m a n e l f u n d a m e n to
p a r a la c o m p r e n s ió n d e te c n o lo g í a s d e o b je t o s .
343
INGE NIE RÍA DEL SOFTWARE. UN EN F O Q U E P R Á C T I C O
Ge*na:
Conjos objetos es realmente mós fácil construir
modelos [paro sistemas complejos] que dedicarse o
lo programación secuenciol
D avid Tayier Una de las listos más completas de recursos 00
en la web puede consultarse en
El lector fam iliarizado con el enfoque convencional x mini.net/cetus/software.html.
de ingeniería del softw are (p resentada en la tercera p ar
te de este libro) puede reaccio n ar ante e sta declaración El proceso O O se m ueve a través de una espiral evo
con esta pregunta: «¿Cuál es la gran ventaja? U sam os lutiva que com ienza con la com unicación con el u s u a
el análisis, diseño, la p rogram ación, las p ruebas y otras rio. E s aquí donde se define el dom inio del problema y
tecnologías relacionadas cuando real izam os ingeniería se identifican las clases básicas del problem a (tratadas
del software según m étodos clásicos. ¿Por qué debe ser m ás tarde en este capítulo). L a planificación y el análi
la OO diferente?» C iertam ente,¿por qué debe ser la OO sis de riesgos establecen una base para el plan del pro
diferente?E n pocas palabras, ¡no debiera! yecto O O . El trabajo técnico asociado con la ingeniería
del softw are O O sigue el cam ino iterativo m ostrado en
la caja som breada. La ingeniería del softw are 0 0 hace
hincapié en la reutilización. P or lo tanto, las clases se
Id e n tific a r
c la s e s
c a n d id a ta s
A ñ a d ir las E x tra e r
nuevas nuevas
c la s e s a la c la s e s si
b ib lio te c a e x is te n
D e s a rro lla r
1— la s c la se s
si n o e x is te n
A n á lis is 0 0
D is e ñ o 0 0
www.FreeLibros.org
P ro g ra m a c ió n 0 0
P ru e b a s 0 0
344
CA P I T U L O 20 C O N C E P T O S Y P R IN C IP IO S O R IE N T A D O S A O B JE T O S
b u s c a n e n u n a b i b l i o t e c a ( d e c la s e s 0 0 e x i s t e n t e s ) a n t e s L a v is ió n o r ie n t a d a a o b je t o s d e m a n d a u n e n fo q u e
d e c o n s t r u ir s e . C u a n d o u n a c la s e n o p u e d e e n c o n tr a r s e e v o lu t iv o d e la in g e n ie r í a d e l s o ftw a r e . C o m o v e r e m o s
e n la b ib lio t e c a , e l d e s a r r o lla d o r d e s o f t w a r e a p lic a a n á a tr a v é s d e e s te y lo s p r ó x im o s c a p ít u lo s , s e rá e x t r e m a
lis is o r i e n t a d o a o b j e t o s ( A O O ) , d i s e ñ o o r i e n t a d o a o b j e d a m e n t e d i f í c i l d e f i n i r la s c la s e s n e c e s a r i a s p a r a u n g r a n
to s ( D O O ) , p r o g r a m a c ió n o r ie n t a d a a o b je t o s ( P O O ) y s is t e m a o p r o d u c t o e n u n a s o la it e r a c c ió n . A m e d id a q u e
p ru e b a s o r ie n t a d a s a o b je t o s ( P R O O ) p a r a c r e a r la c la e l a n á lis is 0 0 y lo s m o d e lo s d e d is e ñ o e v o lu c io n a n , s e
s e y l o s o b j e t o s d e r i v a d o s d e l a c la s e . L a n u e v a c l a s e s e h a c e p a t e n t e l a n e c e s i d a d d e c la s e s a d i c i o n a l e s . E s p o r
p o n e e n la b ib lio t e c a d e t a l m a n e r a q u e p u e d a s e r r e u - e s ta r a z ó n p o r lo q u e e l p a r a d ig m a a r r ib a d e s c r ito f u n
t iliz a d a e n e l f u t u r o . c io n a m e jo r p a r a la O O .
C u a lq u ie r d is c u s ió n s o b r e in g e n ie r í a d e l s o f t w a r e
o r ie n ta d a a o b je t o s d e b e c o m e n z a r p o r e l t é r m in o
orientado a objetos. ¿ Q u é e s u n p u n t o d e v i s t a o r i e n
ta d o a o b je t o s ? ¿ Q u é h a c e q u e u n m é t o d o s e a c o n s i
d e ra d o c o m o o r ie n t a d o a o b je t o s ? ¿ Q u é e s u n o b je t o ?
D u ra n te a ñ o s h a n e x is tid o m u c h a s o p in io n e s d if e r e n
te s ( p . e j . : [ B E R 9 3 ] , [ T A Y 9 0 ] , [ S T R 8 8 ] , [ B 0 0 8 6 ] )
s o b r e la s r e s p u e s t a s c o r r e c t a s a e s t a s p r e g u n t a s . E n l o s
p á r r a fo s s ig u ie n t e s t r a t a r e m o s d e s in t e t iz a r la s m á s
c o m u n e s d e é s ta s .
www.FreeLibros.org
l l a m a d o S ille s a ( u n c r u c e e n t r e u n a s i l l a y u n a m e s a ) r io e s tá n « c o n e c ta d a s » a la d e f in ic i ó n d e l o b je t o c o m o
q u e e s u n m i e m b r o d e l a c l a s e M o b i l i a r i o . L a S ille s a se m u e s tr a e n la F ig u r a 2 0 .3 y s o n h e re d a d a s p o r to d a s
h e re d a t o d o s lo s a t r ib u t o s d e M o b ilia r io . la s i n s t a n c i a s d e e s t a c la s e .
345
IN GE NI ER ÍA DEL S O F T W A R E . UN E N F O Q U E P R A C T I C O
g a m m u m m L a s a b s t r a c c io n e s d e d a t o s ( a t r i b u t o s ) q u e d e s c r i
Se puede utilizor lo notación de modelado de datos b e n la c la s e e s tá n e n c e r r a d a s p o r u n a « m u r a lla » de
del Capitulo 12. a b s t r a c c io n e s p r o c e d im e n t a le s ( lla m a d a s o p e r a c io
n e s , m é t o d o s o s e r v i c i o s ) c a p a c e s d e m a n i p u l a r lo s
d a to s d e a lg u n a m a n e r a . L a Ú n ic a f o r m a d e a lc a n z a r
l o s a t r i b u t o s ( y o p e r a r s o b r e e l l o s ) e s i r a t r a v é s de
E l o b j e t o silla ( y t o d o s l o s o b j e t o s e n g e n e r a l ) a l g u n o d e lo s m é t o d o s q u e f o r m a n la m u r a lla . P o r lo
e n c a p s u la d a to s ( lo s v a lo r e s d e lo s a t r ib u t o s q u e d e f i t a n t o , la c la s e e n c a p s u la d a t o s ( d e n t r o d e la m u r a lla )
n e n la s i l l a ) , o p e r a c io n e s ( la s a c c io n e s q u e s e a p lic a n y e l p r o c e s o q u e m a n ip u la lo s d a to s ( lo s m é to d o s qu e
p a r a c a m b ia r lo s a t r ib u t o s d e la s illa ) , o t r o s o b je t o s c o m p o n e n la m u r a lla ) . E s t o p o s i b i l i t a la o c u lta c ió n
( p u e d e n d e f in ir s e o b je t o s c o m p u e s to s [ E V B 8 9 ] ) , c o n s d e i n f o r m a c i ó n y r e d u c e e l i m p a c t o d e e f e c t o s c o la
ta n te s ( p a r a f i j a r v a lo r e s ) y o t r a in f o r m a c ió n r e l a c io t e r a le s a s o c ia d o s a c a m b io s . C o m o e s to s m é to d o s
n a d a . E l e n c a p s u la m ie n to s ig n if ic a q u e to d a e s ta t ie n d e n a m a n i p u l a r u n n ú m e r o l i m i t a d o d e a t r ib u to s ,
in f o r m a c ió n s e e n c u e n t r a e m p a q u e ta d a b a jo u n n o m e s to e s u n a a lt a c o h e s ió n , y c o m o la c o m u n ic a c ió n
b r e y p u e d e r e u t iliz a r s e c o m o u n a e s p e c if ic a c ió n o o c u r r e s ó l o a t r a v é s d e l o s m é t o d o s q u e e n c i e r r a la
c o m p o n e n te d e p ro g ra m a . « m u r a lla » , la c la s e t ie n d e a u n d e s a c o p la m ie n t o c o n
o t r o s e le m e n t o s d e l s is t e m a . T o d a s e s ta s c a r a c te r ís
tic a s d e l d is e ñ o ( C a p í t u lo 1 3 ) c o n d u c e n a s o ftw a re
d e a lta c a lid a d .
A h o r a q u e h e m o s in t r o d u c id o a lg u n o s c o n c e p to s
b á s ic o s , r e s u lta r á m á s s ig n if ic a t iv a u n a d e f in ic ió n m á s
f o r m a l d e la « o r ie n t a c ió n a o b je t o s » . C o a d y Y o u r d o n
[ C O A 9 1 ] d e f in e n e l t é r m in o d e la s ig u ie n te f o r m a :
o r ie n t a c ió n a o b je t o s =
= o b je t o s + c la s if ic a c ió n + h e r e n c ia + c o m u n ic a c ió n
F IG U R A 20.4. Representación alternativa de una clase
Y a h e m o s in t r o d u c id o tr e s d e e s to s c o n c e p to s . P o s orientada a objetos.
p o n d r e m o s e l t r a ta m ie n to s o b re la c o m u n ic a c ió n p a r a
m á s a d e la n t e .
P u e s t o d e o t r a m a n e r a , u n a c la s e e s u n a d e s c r ip c ió n
g e n e r a liz a d a ( p o r e je m p lo , u n a p l a n t ill a , u n p a tr ó n o
20.2.1. C l a s e s y o b je to s u n p r o t o t i p o ) q u e d e s c r i b e u n a c o l e c c i ó n d e o b je t o s
L o s c o n c e p to s fu n d a m e n ta le s q u e lle v a n a u n d is e ñ o d e s i m i l a r e s . P o r d e f i n i c i ó n , t o d o s l o s o b j e t o s q u e e x is t e n
a l t a c a l i d a d ( C a p í t u l o 13) s o n i g u a l m e n t e a p l i c a b l e s a d e n t r o d e u n a c l a s e h e r e d a n s u s a t r i b u t o s y la s o p e r a
s is t e m a s d e s a r r o lla d o s u s a n d o m é t o d o s c o n v e n c io n a le s c i o n e s d i s p o n i b l e s p a r a l a m a n i p u l a c i ó n d e l o s a t r ib u
y o r ie n t a d o s a o b je t o s . P o r e s ta r a z ó n , u n m o d e lo 0 0 t o s . U n a s u p e r e la s e e s u n a c o l e c c i ó n d e c la s e s y u n a
d e s o f t w a r e d e c o m p u t a d o r a d e b e e x h i b ir a b s tr a c c io n e s s u b c l a s e e s u n a i n s t a n c i a d e u n a c la s e .
d e d a to s y p r o c e d im ie n to s q u e c o n d u c e n a u n a m o d u
la r id a d e f ic a z . U n a c la s e e s u n c o n c e p t o 0 0 q u e e n c a p
s u l a la s a b s t r a c c i o n e s d e d a t o s y p r o c e d i m i e n t o s q u e s e
r e q u ie r e n p a r a d e s c r ib ir e l c o n t e n id o y c o m p o r t a m ie n
t o d e a lg u n a e n t id a d d e l m u n d o r e a l. T a y lo r [ T A Y 9 0 ] Una de los primeros cosas o tener en cuento o la hora
u s a la n o ta c ió n q u e se m u e s tr a a la d e r e c h a d e la F ig u de construir un sistema 0 0 es cómo dosificar los objetos
u n a c la s e ) .
E s ta s d e f in ic io n e s im p li c a n la e x is t e n c ia d e u n a je r a r -
q u í a d e c la s e s e n l a c u a l l o s a t r i b u t o s y o p e r a c i o n e s d e
CLAVE l a s u p e r c l a s e s o n h e r e d a d o s p o r s u b c la s e s q u e p u e d e n
www.FreeLibros.org
Un objeto encapsula dotas (atributos) y los métodos a ñ a d ir , c a d a u n a d e e lla s , a t r ib u t o s « p r iv a d o s » y m é to
(operaciones, métodos o servicios) que manipulan d o s . U n a j e r a r q u í a d e c la s e s p a r a l a c l a s e M obiliario se
esos datos. ilu s t r a e n la F ig u r a 2 0 .5 .
346
CAPÍTULO 20 C O N C E P T O S Y P R IN C IP IO S O R IE N T A D O S A O B JE T O S
CLAVE
Sferrpe que un objeto es estimulado por un mensaje,
inicia algún co m p atern ie rtoejeo te ndo uno operación.
www.FreeLibros.org
1 U sarem os aquí el térm ino operaciones, pero m étodos y servicios
son igualm ente populares.
347
I N GEN IE RÍ A DEL S O F TW A RE . UN EN F O Q U E P R Á C T I C O
E n la F ig u r a 2 0 .6 . s e il u s t r a e s q u e m á tic a m e n t e la E l p a s o d e m e n s a j e s m a n t i e n e c o m u n i c a d o u n s is te m a
in t e r a c c ió n e n tr e o b je t o s . U n a o p e r a c ió n d e n t r o d e u n o r ie n t a d o a o b je t o s . L o s m e n s a je s p r o p o r c io n a n una
o b je t o e m is o r g e n e r a u n m e n s a je d e la f o r m a : v is i ó n in t e r n a d e l c o m p o r t a m ie n t o d e o b je t o s in d iv i
d u a le s , y d e l s is t e m a 0 0 c o m o u n t o d o .
d e s tin o .o p e r a c ió n ( p a r á m e tr o s )
d o n d e d e s tin o d e f in e e l o b je to r e c e p t o r e l c u a l e s e s t i
m u la d o p o r e l m e n s a je , o p e r a c ió n s e r e f ie r e a l m é t o d o
q u e r e c ib e e l m e n s a je y p a r ú m e t r o s p r o p o r c io n a i n f o r
m a c ió n r e q u e r id a p a r a e l é x it o d e la o p e r a c ió n .
www.FreeLibros.org
g ien d o prim ero la o peración que im p lem en ta el n o m b re del hereda todos los atributos y operaciones asociadas con
m e n s a je , ejecu tan d o d ic h a o p eración y d esp u és devolvien su superclase X . Esto significa que todas las estructu
do el co n tro l al o b jeto q u e orig in a la lla m ad a . ras de datos y algoritm os originalm ente diseñados e
348
CAPÍTULO 20 C O N C E P T O S Y P R IN C IP IO S O R IE N T A D O S A O B JE T O S
im p le m e n t a d o s p a r a X e s tá n in m e d ia t a m e n t e d i s p o n i n u e v a c la s e . C o m o s e ñ a la J a c o b s o n , c u a n d o s e e m p l e a l a
b le s p a r a Y ( n o e s n e c e s a r i o m á s t r a b a j o e x t r a ) . L a r e u a n u la c ió n , « la h e r e n c ia n o e s t r a n s it iv a » [ J A C 9 2 ] ,
tiliz a c ió n s e r e a liz a d ir e c ta m e n te . E n a lg u n o s c a s o s , e s te n ta d o r h e r e d a r a lg u n o s a t r ib u to s
C u a lq u ie r c a m b io e n lo s d a to s u o p e r a c io n e s c o n t e y o p e r a c io n e s d e u n a c la s e y o t r o s d e o t r a c la s e . E s t a a c c i ó n
n id a s d e n t r o d e u n a s u p e r c l a s e e s h e r e d a d o i n m e d i a t a s e ll a m a h e r e n c ia m ú lt ip le y e s c o n t r o v e r t id a . E n g e n e r a l,
m e n te p o r to d a s la s s u b c la s e s q u e s e d e r iv a n d e la l a h e r e n c i a m ú l t i p l e c o m p l i c a l a j e r a r q u í a d e c la s e s y c r e a
s u p e r c la s e 2. D e b i d o a e s t o , l a j e r a r q u í a d e c la s e s s e c o n p r o b le m a s p o te n c ia le s e n e l c o n t r o l d e la c o n f ig u r a c ió n
v ie r t e e n u n m e c a n i s m o a t r a v é s d e l c u a l l o s c a m b i o s ( C a p i t u l o 9 ) . C o m o la s s e c u e n c ia s d e h e r e n c i a m ú l t i p l e s o n
( a a lto s n i v e le s ) p u e d e n p r o p a g a r s e in m e d ia t a m e n t e a m á s d if í c ile s d e s e g u ir ,lo s c a m b io s e n la d e f in ic ió n d e u n a
t r a v é s d e t o d o e l s is t e m a . c la s e q u e r e s i d e e n l a p a r t e s u p e r i o r d e l a j e r a r q u í a p u e d e n
E s im p o r t a n t e d e s ta c a r q u e e n c a d a n iv e l d e la je r a r t e n e r im p a c t o s n o d e s e a d o s o r i g i n a l m e n t e e n la s c la s e s d e f i
q u í a d e c la s e s , p u e d e n a ñ a d i r s e n u e v o s a t r i b u t o s y o p e n id a s e n z o n a s in f e r io r e s d e la a r q u it e c t u r a .
r a c io n e s a a q u e l l o s q u e h a n s i d o h e r e d a d o s d e n i v e l e s
s u p e r io r e s d e l a j e r a r q u í a . D e h e c h o , c a d a v e z q u e s e
d e b e c r e a r u n a n u e v a c la s e , e l in g e n ie r o d e l s o f t w a r e
t ie n e v a r i a s o p c i o n e s :
• L a c la s e p u e d e d is e ñ a r s e y c o n s t r u ir s e d e la n a d a .
E s to e s , n o s e u s a la h e r e n c ia .
+ c h a r5 + c h a r6
• L a j e r a r q u í a d e c la s e s p u e d e s e r r a s t r e a d a p a r a d e t e r
m in a r s i u n a c la s e a s c e n d ie n t e c o n t ie n e la m a y o r í a
d e lo s a t r ib u t o s y o p e r a c io n e s r e q u e r id a s . L a n u e v a
c la s e h e r e d a d e s u c l a s e a s c e n d i e n t e , y p u e d e n a ñ a
d ir s e o t r o s e le m e n to s s i h a c e n fa lta .
+ c h a r7
• L a je r a r q u í a d e c la s e s p u e d e r e e s t r u c t u r a r s e d e t a l
+ c h a r f>
m a n e r a q u e lo s a t r ib u t o s y o p e r a c io n e s r e q u e r id o s
p u e d a n s e r h e r e d a d o s p o r l a n u e v a c la s e .
• L a s c a r a c t e r í s t ic a s d e u n a c la s e e x is t e n t e p u e d e n
4
s o b r e s c r ib i r s e y s e p u e d e n i m p l e m e n t a r v e r s i o n e s p r i
v a d a s d e a t r i b u t o s u o p e r a c i o n e s p a r a l a n u e v a c la s e . X3 X4
c h a r lo c h a r lo
char20 char20
char30 char30
char40 char40
Mientras que un objeto es una entidad que existe c h a r5 () c h a r5 0
¡n el tiempo y en el espacio, uno dase representa c h a r6 0 chár70
j$6|o uno abstracción, «la esencia» del objeto,
F IG U R A 2 0 .8 a . Jerarquía de clases original.
P a ra ilu s t r a r c ó m o la r e e s t r u c t u r a c ió n d e la je r a r q u í a
d e c la s e s p u e d e c o n d u c i r a l a c l a s e d e s e a d a , c o n s i d e r e e l i| | | M » e [polimorfismo] puede ser extraño, pero el
e j e m p lo m o s t r a d o e n l a F i g u r a 2 0 . 8 . L a j e r a r q u í a d e c l a mernnkmn es puro elegancia.
s e s il u s t r a d a s e n l a F i g u r a 2 0 . 8 a n o s p e r m i t e d e r i v a r la s tffHátoyh
c la s e s X3 y X 4 c o n la s c a r a c t e r í s t i c a s 1 , 2 , 3 , 4 , 5 y 6 , y
1, 2 , 3 , 4 , 5 y 7 , r e s p e c tiv a m e n te 3.A h o r a , s u p o n g a q u e
s e d e s e a c r e a r u n a n u e v a c l a s e s o l a m e n t e c o n la s c a r a c E l p o lim o r f is m o e s u n a c a r a c te r ís tic a q u e r e d u c e e n
te r ís tic a s 1 , 2 , 3 , 4 y 8. P a r a d e r iv a r e s ta c la s e , lla m a d a g r a n m e d i d a e l e s f u e r z o n e c e s a r i o p a r a e x t e n d e r u n s is
X2b e n e l e j e m p l o , l a j e r a r q u í a d e b e r e e s t r u c t u r a r s e c o m o te m a O O . P a r a e n te n d e r e l p o lim o r f is m o , c o n s id e r e u n a
se m u e s tr a e n la F ig u r a 2 0 .8 b . E s im p o r t a n t e d a r s e c u e n a p lic a c ió n c o n v e n c io n a l q u e d e b e d ib u ja r c u a tr o tip o s
ta d e q u e l a r e e s t r u c t u r a c i ó n d e l a j e r a r q u í a p u e d e s e r d i f í d i f e r e n t e s d e g r á f i c o s : g r á f i c o s d e l í n e a s , g r á f i c o s d e ta r
c il y , p o r e s ta r a z ó n , s e u s a a v e c e s la a n u la c ió n . ta , h is to g r a m a s y d ia g r a m a s d e K iv ia t . Id e a lm e n te , u n a
E n e s e n c ia , l a a n u l a c i ó n o c u r r e c u a n d o l o s a t r i b u t o s y v e z q u e s e h a n r e c o g id o lo s d a to s n e c e s a r io s p a r a u n t ip o
o p e r a c io n e s s e h e r e d a n d e m a n e r a n o r m a l , p e r o d e s p u é s p a r t ic u la r d e g r á fic o , e l g r á f ic o d e b e d ib u ja r s e é l m is m o .
s o n m o d i f i c a d o s s e g ú n la s n e c e s id a d e s e s p e c í f i c a s d e l a P a ra r e a liz a r e s to e n u n a a p lic a c ió n c o n v e n c io n a l ( y m a n -
www.FreeLibros.org
2 A veces se emplean los términos descendiente y antecesor [JAC92] 3 En este ejemplo llam arem os característica tanto a los atributos como
en lugar de subclase y superclase. a las operaciones.
349
IN GE NI E RÍ A DEL S OFT W ARE . UN E N F O Q U E PR AC T I C O
te n e r la c o h e s ió n e n tr e m ó d u lo s ) , s e r ía n e c e s a r io d e s a
r r o l la r m ó d u lo s d e d ib u jo p a r a c a d a t ip o d e g r á fic o . S e g ú n
e s to , d e n tr o d e l d is e ñ o p a r a c a d a t ip o d e g r á fic o , s e d e b e
r á a ñ a d i r u n a l ó g i c a d e c o n t r o l s e m e ja n t e a l a s i g u i e n t e :
case of tipo-grafico:
if tip o -g ra fic o = g ra fic o _ lin e a th e n
D ib u ja r L in e a ( d a to s );
if tip o -g ra fic o = g ra fic o _ ta rta th en
end case; X2
A u n q u e e s te d is e ñ o e s r a z o n a b le m e n te e v id e n t e , a ñ a c h a rlo
char20
d i r n u e v o s t ip o s d e g r á fic o s p u e d e s e r c o m p lic a d o , p u e s +char5 char30
h a y q u e c re a r u n n u e v o m ó d u lo d e d ib u jo p a r a c a d a tip o char4Q
d e g r á f ic o y a c tu a liz a r la ló g ic a d e c o n t r o l p a r a c a d a
+char8
g r á fic o .
X2a X2b
P a r a r e s o l v e r e s t e p r o b l e m a , c a d a u n o d e los gráfi-
e o s m e n c io n a d o s a n te r io r m e n te s e c o n v ie r t e e n u n a s u b charlO charlO
char20 char20
c la s e d e u n a c la s e g e n e r a l lla m a d a G r á f ic o . U s a n d o u n char30 char30
c o n c e p t o l l a m a d o s o b r e c a r g a [ T A Y 9 0 ] , c a d a s u b c la s e +ehar6 char40 char40
char50 charSO
d e f in e u n a o p e r a c ió n lla m a d a d ib u ja r . U n o b je t o p u e
d e e n v ia r u n m e n s a je d ib u ja r a c u a lq u ie r a d e lo s o b je x , _____ i +char7 ^
t o s i n s t a n c i a d o s d e c u a l q u i e r a d e la s s u b c la s e s . E l o b j e t o
X3 X4 .
q u e r e c ib e e l m e n s a je in v o c a r á s u p r o p ia o p e r a c ió n d ib u
j a r p a r a c r e a r e l g r á f ic o a p r o p ia d o . P o r e s to , e l d is e ñ o charlO charlO
char20 char20
m o s tr a d o a n te r io r m e n te se r e d u c e a : char30 char30
char40 char40
tipo-grafico dibujar char50 ehar50
charBO ehar70
C u a n d o h a y q u e a ñ a d ir u n n u e v o t ip o d e g r á f ic o a l
s is t e m a , s e c r e a u n a s u b c la s e c o n s u p r o p ia o p e r a c ió n FIGURA20.8b. Jerarquía de clasesreestmcturada.
L o s e le m e n to s d e u n m o d e lo d e o b je t o s - c l a s e s y o b je
t o s , a t r i b u t o s , o p e r a c i o n e s y m e n s a je s — f u e r o n d e f i n i d o s
y e x a m in a d o s e n l a s e c c ió n p r e c e d e n t e . P e r o , ¿ c ó m o p o d e
m o s h a c e r p a r a id e n t if ic a r e s to s e le m e n to s e n u n p r o b le
m a r e a l ? L a s s e c c io n e s q u e s i g u e n p r e s e n t a n u n a s e r i e d e
d ir e c tr ic e s in f o r m a le s q u e n o s a y u d a r á n e n la id e n t if ic a
c ió n d e lo s e le m e n t o s d e u n m o d e lo d e o b je t o s .
P o d e m o s e m p e z a r a i d e n t i f i c a r o b je t o s 4 e x a m in a n d o
2 0 .3 . 1 . I d e n t i f i c a c i ó n d e c l a s e s y o b j e t o s e l p la n t e a m ie n to d e l p r o b le m a o ( u s a n d o la t e r m in o lo
S i u s te d o b s e r v a a s u a lr e d e d o r e n u n a h a b it a c ió n , e x is g í a d e l C a p í t u lo 1 2 ) r e a liz a n d o u n « a n á lis is s in t á c t ic o
te n u n c o n ju n t o d e o b je t o s f í s ic o s q u e p u e d e n s e r f á c i l g r a m a t ic a l» e n la n a r r a t iv a d e l s is t e m a q u e s e v a a c o n s
m e n te id e n t ific a d o s ,c la s ific a d o s y d e f in id o s ( e n té r m in o s t r u ir . Los o b je t o s s e d e te r m in a n s u b r a y a n d o c a d a n o m
d e a t r ib u t o s y o p e r a c io n e s ) . P e r o c u a n d o u s te d « o b s e r v a » b r e o c l á u s u l a n o m i n a l e i n t r o d u c i é n d o l a e n u n a t a b la
e l e s p a c io d e u n p r o b le m a e n u n a a p lic a c ió n d e s o f t w a r e , s im p le . L o s s in ó n im o s d e b e n d e s ta c a r s e . S i s e r e q u ie
lo s o b je t o s p u e d e n s e r m á s d if í c ile s d e id e n t ific a r . r e d e l o b je t o q u e im p le m e n t e u n a s o lu c ió n , e n to n c e s
www.FreeLibros.org
4 E n r e a lid a d , e l A n á lis is OO in t e n t a id e n t if ic a r la s c la s e s a p a r t ir de
las cuales se instancian los objetos. Por tanto, cuando aislam os obje
tos potenciales, tam bién identificam os m iem bros de clases poten
ciales.
350
CAPÍTULO 20 C O N C E P T O S Y P R IN C IP IO S O R IE N T A D O S A O B JE T O S
é s te f o r m a r á p a r t e d e l e s p a c io d e s o lu c ió n ; e n c a s o d e L a c la s ific a c ió n m o s tra d a a n te r io r m e n te e s u n a d e
q u e e l o b je t o s e n e c e s it e s o la m e n te p a r a d e s c r ib i r u n a la s m u c h a s q u e s e h a n p r o p u e s t o e n l a l i t e r a t u r a .
s o lu c ió n , é s te f o r m a p a r t e d e l e s p a c io d e l p r o b le m a . T a m b ié n e s im p o r t a n t e d e s ta c a r .q u é n o s o n lo s o b je
P e ro , ¿ q u é d e b e m o s b u s c a r u n a v e z q u e s e h a n a is la d o to s . E n g e n e r a l, u n o b je t o n u n c a d e b e t e n e r u n « n o m
to d o s lo s n o m b r e s ? b r e p r o c e d i m e n t a l i m p e r a t i v o » [ C A S 8 9 ] . P or e j e m p l o ,
s i lo s d e s a r r o lla d o r e s d e u n s o f t w a r e p a r a u n s is t e m a
g r á fic o m é d ic o d e f in ie r o n u n o b je t o c o n e l n o m b r e
¿Cómo identificar objetos inversión de im agen, e s t a r í a n c o m e t i e n d o u n s u t i l e r r o r .
C Í A VE
Hay que utilizar un anolizador sintáctico gramat
para detectar objetos potenciales (nombres) y
F IG U R A 2 0 .9 . Cómo se manifiestan los objetos. operaciones (verbos).
www.FreeLibros.org
5 En este contexto, el term ino suceso denota cualquier ocurrencia.
No necesariam ente implica control, en el sentido del Capítulo 12.
351
INGE NIE RÍA DEL SOFTWARE. UN EN F O Q U E P R Á C T I C O
E xtrayendo los n om bres p odem os p ro p o n er varios 4 . A trib u to s com unes: puede definirse un conjunto de
objetos potenciales: atributos para el objeto potencial, los cuales son apli
cables a todas las ocurrencias del objeto.
Clase / Clasificación 5. O peraciones com unes: puede definirse un conjunto
O b j e t o potencial general de o p eracio n es para el o b jeto p o ten c ial, las cuales
p ro p ie ta rio
son aplicables a todas las ocurrencias del objeto;
ro l o
e n tid a d e x te rn a 6. R eq u isito s e sen cia les: en tid ad es extern as que apa
sensor e n tid a d e x te rn a recen en el esp acio del problem a y producen o co n
su m en in fo rm a ció n esen cial p a ra la p ro d u c ció n de
panel de c o n tro l e n tid a d e x te rn a
cualquier solución para el sistem a, serán casi siem
in sta la c ió n o c u rre n c ia p re d efin id as co m o o b je to s en el m o d elo de re q u i
siste m a cosa sitos.
( a lia s siste m a
de se g u rid ad )
•
Clase / Características
potencial es un buen
Objeto potencial aplicables
candidato para utilizarlo
en un sistema 0 0 . p ro p ie ta rio R echazado
( 1 , 2 f a lla n aunque
6 es a p lic a b le )
C oad y Y ourdon [CO A 91] sugieren seis caracterís
sensor A cep tad o ( se a p li can
ticas de selección a usar cada v ez que un analista c o n
to d as)
sidera si incluye o no un objeto p otencial en el m odelo
de análisis: panel de c o n tro l A cep tad o (se a p lic a n
to d as)
7. In fo rm a c ió n retenida: el o b jeto p o te n c ia l será de
u tilid a d d u ra n te el a n á lisis so lam en te si la in fo r in sta la c ió n R echazado
m ació n acerca de él debe recordarse p ara que el sis siste m a (a lia s s i s A cep tad o (se a p lic a n
te m a funcione. tem a d e se g u rid ad ) to d as)
2. S e r v ic io s n e c e s a r io s : el o b je to p o te n c ia l d eb e n úm ero, tip o R echazado ( f a l l a 3)
p o se e r un c o n ju n to de o p e racio n es id en tificab les c o n tra se ñ a m ae stra R echazado ( f a l l a 3)
que p u e d e n c am b iar de alg u n a m a n e ra el v a lo r de
núm ero d e te lé fo n o R echazado ( f a l l a 3)
sus atributos.
3. A trib u to s m últiples: durante el análisis de requisitos, suceso de sensor A cep tad o (se a p lic a n
to d as)
se debe centrar la atención en la info rm ació n p rin ci
pal (un objeto con un solo atributo puede, en efecto, a la rm a a u d ib le A cep tad o (se a p lic a n
www.FreeLibros.org
ser Util d u ra n te el d ise ñ o , p ero seg u ram en te será 2 , 3 , 4 , 5 Y 6)
m ejo r p resen tad o co m o un atrib u to de otro objeto se rv ic io de c o n tro l Rechazado ( f a lla n 1 y
durante la actividad de análisis); 2 aunque 6 se a p lic a )
352
CAPÍTULO 20 C O N C E P T O S Y P R I N C I P I O S O R I E N T A D O S A O BJ E TO S
D ebe tenerse en cu enta que: (1) la lista anterior no información del censor = tipo de sensor
incluye todo, hay que añadir objetos adicionales para com + número de sensor + umbral de alarma
pletar el m odelo; (2) algunos de los objetos potenciales información de respuesta de la alarma =
rechazados serán atributos de los objetos aceptados (por tiempo de retardo + número de teléfono
ejem plo, núm ero y tipo son atributos de s e n so r, y co n + tipo de alarma
traseña m aestra y núm ero de teléfono pueden convertir información de activación/desactivación
se en atributos de sistem a);y (3) diferentes descripciones = contraseña maestra + cantidad de
intentos permitidos + contraseña tempo
del problem a pueden provocar la tom a de diferentes deci
ral
siones de «acep tació n o rechazo» (por ejem plo, si cada
información de identificación = ID del
propietario tiene su propia co ntraseña o fue identificado
sistema + verificación de número de telé-
por im presiones de voz, el objeto P ro p ie ta rio cum pliría Eono + estado del sistema
las características 1 y 2 y habría sido aceptado).
C ad a uno de los elem entos de datos a la d erech a del
20.3.2. E s p e c if ic a c ió n d e a t r i b u t o s signo de igualdad puede vo lv er a definirse en un nivel
elem ental, pero para nuestros propósitos, com prenden
L os atributos d escriben un objeto que h a sido seleccio
una lista razonable de atributos para el ob jeto sistem a
nado para ser incluido en el m odelo de análisis. E n esen (porción som breada de la Fig. 20.10).
cia, son los atributos los que definen al objeto, los que
clarifican lo que se representa el objeto en el contexto del
20.3.3. D e f in ic ió n d e o p e r a c i o n e s
espacio del problem a. P or ejem plo, si tratáram os de co n s
truir un sistem a de estadísticas p ara ju g a d o re s profesio Las operaciones definen el com portam iento de un o b je
nales de béisbol, los atributos del objeto J u g a d o r serían to y cam bian, de alguna m anera, los atributos de dicho
muy diferentes de los atributos del m ism o objeto cuando objeto. M ás concretam ente, una operación cam bia valo
se use dentro del contextode un sistem a de pensiones para res de uno o m ás atributos contenidos en el objeto. Por
ju g a d o re s profesionales. E n el p rim ero, atributos tales lo tanto, una operación debe ten er «conocim iento» de
com o nom bre, posición; p rom edio de bateo, porcentaje la naturaleza de los atributos de los objetos y deben ser
de estancia en el cam po de ju e g o , años ju g a d o s y parti im plem entadas de m anera tal que le p erm ita m anipular
dos ju g a d o s pueden ser relevantes. En el segundo caso, las estructuras de datos derivadas de dichos atributos.
algunos de estos atributos serían relevantes pero otros serí A unque existen m uchos tipos diferentes de o p e ra
an reem plazados (o p otenciados)por atributos com o sala ciones, éstas pueden clasificarse en tres gran d es c a te
rio m edio, crédito total, opciones elegidas p ara el plan de g o rías: (1) o p e ra c io n e s que m a n ip u la n , d e alg u n a
pensión, dirección postal, etc. m anera, datos (p.e.: añadiendo, elim inando, reform a-
Para desarrollar un conjunto significativo de atributos tean d o , seleccio n an d o ); (2) o p eracio n es que realizan
para un objeto, el analista puede estudiar de nuevo la narra algún cálculo; y (3) o p eracio n es que m o n ito riza n un
tiva del p roceso (o d escripción del ám bito del alcance) ob jeto frente a la ocurrencia de un suceso de control.
para el p ro b lem a y seleccionar aquellos elem entos que
razonablem ente «pertenecen» al objeto. A dem ás, para ¿Existe alguna forma
cada objeto debe responderse el siguiente interrogante:
«¿Qué elem entos (com puestosy/o sim ples) definen co m
pletam ente al objeto en el contexto del problem a actual?»
• razonable de categorizar
las operaciones de un objeto?
www.FreeLibros.org
el diccionario de datos y p resen tad a en el C apítulo 12, el objeto S e n s o r;
p odríam os rep resen tar esto s elem entos de datos c o m • que u n a o p eració n de p ro g ra m a r se le ap licará al
puestos de la siguiente m anera: ob jeto S iste m a ;
353
IN GE NI E RÍ A DEL SOF TW ARE . UN E N F O Q U E P R Á C T I C O
Como examinamos en la Parte Prim era y Segunda de 6. Seguimiento, m onitorización y control del progreso.
este libro, la m oderna gestión de proyectos de softwa
re puede subdividirse en las siguientes actividades:
1 . E stablecim iento de un m arco de proceso com ún
las proyectas 0 0 requieren mucha más gestión
para el proyecto.
de lo planificación y seguimientoque los proyectas
2. U so del m arco y de m étricashistóricas para desa de software convencional. Nosuponga que la 00
rrollar estim aciones de esfuerzo y tiem po. le releva de esto actividad.
www.FreeLibros.org
de riesgos, aseguramiento de la calidad y control. orientado a objetos, cada una de estas actividades de
5. G estión de los cam bios que ocu rren in v a ria b le gestión tiene un m atiz levemente diferente y debe ser
m ente al progresar el proyecto. enfocado usando un m odelo propio.
354
C A P Í T U L O 20 C O N C E P T O S Y P R I N C I P I O S OR IE N TA DO S A O B J E T O S
E n la s s e c c i o n e s q u e s i g u e n , e x p l o r a m o s e l á r e a d e . E n s a m b la r u n n u e v o p r o t o t ip o u s a n d o o b je t o s d e la
g e s t ió n d e p r o y e c t o s o r ie n t a d o s a o b je t o s . L os p r i n c i b ib lio t e c a y lo s o b je t o s q u e s e c r e a r o n n u e v o s .
p io s d e g e s tió n fu n d a m e n ta le s s e r á n lo s m is m o s , p e r o • R e a liz a r p r u e b a s p a r a d e s c u b r ir e r r o r e s e n e l p r o t o -
para que u n p ro y e c to 0 0 sea d irig id o co rrectam en te . tip o .
h a y q u e a d a p ta r la té c n ic a .
• O b te n e r r e a lim e n ta c ió n d e l c lie n t e s o b r e e l p r o t o
tip o .
E s te e n fo q u e c o n tin ú a h a s ta q u e e l p r o to tip o e v o lu
Referencia W&bA c io n a h a c ia u n a a p lic a c ió n e n p r o d u c c ió n .
Encontraráun tutorial muy completo sobre gestión
de proyectos 0 0 y un buen conjunto de enlaces en: ¿Cómo aplicar un modelo
mm¡.net/cetus/oo_pro¡ect_mngt.html.
• recursivo/paralelo en la
ingeniería del software 0 0 ?
www.FreeLibros.org
• R e f in a r e l d is e ñ o p a r a a c o m o d a r s u s c a m b io s . hoce que el comenzar o trabajar en paralelo sea
más fácil. Sin embargo, también es cierto que codo
• C o n s t r u ir o b je t o s e s p e c ia le s ( n o d is p o n ib le s e n la
toreo paralela se define de formo que pueda calcularse
b ib lio t e c a ) . el progreso.
JZ 7
INGE NIE RÍA DEL SOF TW ARE . UN E N F O Q U E P R Á C T I C O
Primeras iteraciones
en análisis/diseño
p ro to tip o
Evaluación | Siguiente
incremento
Evaluación l 'U-ésimo
dei cliente Bincremento
C ada iteración del proceso recursivo/paralelo requie que el objetivo principal es la reutilización. Las estim a
re planificación, ingeniería (análisis, diseño, extracción ciones a partir de PF pueden usarse de m anera efectiva,
de clases, p rototipado y p ru eb as) y actividades de ev a pues los elem entos del dom inio de inform ación requeri
luación (Fig. 20.11). D urante la planificación, las activi dos se pueden determ inar a partir del planteam iento del
dades asociadas con cada u n a de las com ponentes problem a. El análisis de PF puede aportar valores para
independientes del program a son incluidas en la planifi estim acionesen proyectos 0 0 ,p e r o la m edida de PF no
cación. [Nota: Con cada iteración se ajusta la agenda para provee una granularidad suficiente para ajustes de plani
acom odar los cam bios asociados con la iteración prece ficación y esfuerzo a realizar, los cuales se requieren cuan
dente]. D urante las prim eras etapas del proceso de inge do iteram os a través del paradigm a recursivo/paralelo.
niería, el análisis y el diseño se realizan iterativam ente. L orenz y K idd [LO R94] sugieren el siguiente con
La intención es identificar todos los elem entos im portan ju n to de m étricas para proyectos6:
tes del análisis OO y de los m odelos de diseño. Al co n ti
N úm ero de guiones de escenario. U n guión de
n u ar el trabajo de ingeniería, se pro d u cen versiones
esc en a rio (co m o los casos de uso d iscu tid o s en el
increm entales del software. D urante la evaluación se rea
C apítulo 11) es una secuencia detallada de pasos que
lizan, p ara cada increm ento, revisiones, evaluaciones del
describen la interacción entre el usuario y la aplica
cliente y pruebas, las cuales producen una realim entación
ción. C ada guión se organiza en tripletes de la forma:
que afecta a la siguiente actividad de planificación y al
subsiguiente increm ento. {in iciad o r, acción, p a rtic ip a n te ]
donde iniciador es el ob jeto que solicita algún ser
20.4.2. Métricas y estim ación en proyectos vicio (que inicia un m ensaje); acción es el resultado
orientados a objetos de la solicitud; y p a rtic ip a n te es el objeto servidor
Las técnicas de estim ación en proyectos de softw are con que cum ple la petición (solicitud). El núm ero de guio
vencionales requieren estim aciones de líneas de código nes de actu ació n e stá directam en te re la c io n a d a al
(LD C ) o puntos de función (PF) com o controlador prin tam año de la aplicación y al núm ero de casos de prue
cipal de estim ación. Las estim aciones realizadas a partir b a que se deben desarrollar para ejercitar el sistem a
una vez construido.
www.FreeLibros.org
de LD C tienen p oco sentido en proyectos OO debido a
356
CAPÍTULO 20 C O N C E P T O S Y P R IN C IP IO S O R IE N T A D O S A O B JE TO S
O
dom inio de problem a, se conociera la cantidad p ro
Interfaz de usuario
m ed io de clases de soporte p o r clase clave, la esti basada en texto 2,25
m ació n (b asad a en la can tid a d to tal de c la se s) se
sim plificaríam ucho. Interfaz Gráfica de Usario
(IGU) 2, 5
Lorenz y K idd sugieren que las aplicaciones con
IGU poseen entre dos y tres veces m ás clases de sopor Interfaz Gráfica de Usuario
te que clases clave. L as aplicaciones sin IG U poseen (IGU) compleja 3, 0
a lo sum o dos veces m ás de soporte que clave.
Número de subsistemas.Un subsistema es una agre M ultiplicar el núm ero de clases clave (paso 3) p o r
gación de clases que dan soporte a una íúnción visible el m u ltip lic a d o r an terio r para o b ten er una e s tim a
al usuario final del sistema. U na vez que se identifican c ió n del n ú m ero de c la se s de soporte.
los subsistemas, resulta m ás fácil realizar una planifica 5. M u ltip lic a r la c a n tid a d to tal d e c la se s (c la v e +
ción razonable en la cual el trabajo en los subsistem as soporte) p o r el núm ero m edio de unidades de trabajo
está repartida entre los m iem bros del proyecto. p o r clase. L o ren zy K idd sugieren entre 15y 2 0 d ía s-
-persona p o r clase.
www.FreeLibros.org
p o r guión de acción.
La estim ación en p royectos de softw are es m ás un arte
que u n a cie n c ia . Sin e m b a rg o , e sto en m o d o alg u n o L a planificación de proyectos o rien tad o s a objetos
excluye el u so de u n en fo q u e sistem ático. P ara d e sa es com plicada p o r la naturaleza iterativa del m arco de
357
in g en ier ía del s o f t w a r e , un en fo q u e pr á c tic o
tr a b a jo d e l p ro c e s o . L o r e n z y K id d s u g ie r e n u n c o n ju n t o « S e h a c r e a d o y r e v is a d o u n m o d e lo d e c o m p o r ta
d e m é tr ic a s q u e p u e d e n a y u d a r d u r a n te e s ta p l a n i f ic a m ie n to ( C a p ítu lo 2 1 ) .
c ió n d e l p r o y e c to : • S e h a n m a r c a d o c la s e s r e u t i l i z a b l e s .
N ú m e ro de ite ra c io n e s p rin c ip a le s . R e c o r
d a n d o e l m o d e lo e n e s p ir a l ( C a p í tu lo 2 ) , u n a it e H ito técnico: diseño OO term inado
r a c ió n p r in c ip a l c o r r e s p o n d e rá a u n r e c o r r id o d e • S e h a d e f in id o y r e v is a d o e l c o n ju n t o d e s u b s is te m a s
3 6 0 g r a d o s d e la e s p ir a l. E l m o d e lo d e p r o c e s o ( C a p ítu lo 2 2 ).
r e c u r s iv o /p a r a le lo e n g e n d r a r á u n n ú m e r o d e m in i—
• L a s c la s e s s e h a n a s i g n a d o a s u b s i s t e m a s y h a n s i d o
e s p ir a le s ( it e r a c io n e s lo c a liz a d a s ) q u e s u c e d e n
r e v is a d a s .
d u r a n te e l p r o g r e s o d e la it e r a c ió n p r in c ip a l. L o r e n z
y K i d d s u g ie r e n q u e la s it e r a c io n e s d e e n tr e 2 .5 y • S e h a e s t a b le c id o y r e v is a d o la a s ig n a c ió n d e ta re a s .
4 m e s e s d e d u r a c ió n s o n m á s f á c ile s d e s e g u ir y • S e h a n id e n t if ic a d o r e s p o n s a b ilid a d e s y c o la b o r a
g e s tio n a r . c io n e s ( C a p í t u lo 2 2 ) .
N ú m e r o d e c o n tr a to s c o m p le to s . U n c o n t r a t o • S e h a n d i s e ñ a d o y r e v i s a d o l o s a t r i b u t o s y o p e r a c io n e s .
e s « u n g r u p o d e r e s p o n s a b ilid a d e s p ú b lic a s r e la
• S e h a c r e a d o y r e v is a d o e l m o d e lo d e p a s o d e m e n
c io n a d a s q u e lo s s u b s is te m a s y la s c la s e s p r o p o r
s a je s .
c io n a n a s u s c lie n te s » [ L O R 9 4 ] , U n c o n t r a t o e s u n
h i t o e x c e le n t e , y d e b e r í a a s o c ia r s e a l m e n o s u n c o n
H ito técnico:program ación OO term inada
tr a to a c a d a it e r a c ió n d e l p r o y e c to . U n je f e d e p r o
y e c t o p u e d e u s a r c o n tr a to s c o m p le t o s c o m o u n • C a d a n u e v a c la s e h a s id o im p le m e n t a d a e n c ó d ig o a
b u e n in d ic a d o r d e l p r o g r e s o e n u n p r o y e c to O O . p a r t ir d e l m o d e lo d e d is e ñ o .
. L a s c la s e s e x t r a í d a s ( d e u n a b i b l i o t e c a d e r e u t i l i z a
c ió n ) s e h a n in te g r a d o .
20.4.4. S e g u im ie n t o d e l p r o g r e s o e n u n p r o
• S e h a c o n s t r u id o u n p r o t o t ip o o in c r e m e n to .
y e c to o r ie n ta d o a o b jeto s
A u n q u e e l m o d e lo d e p r o c e s o r e c u r s iv o /p a r a le lo e s e l H ito técn ico:pru eba OO
m e jo r m a r c o d e tr a b a jo p a ra u n p r o y e c to 0 0 , e l p a r a
• H a n s id o r e v is a d a s la c o r r e c c ió n y c o m p le c ió n d e l
le lis m o d e ta r e a s d i f ic u lt a e l s e g u im ie n t o d e l p r o y e c
a n á lis is 0 0 y d e l m o d e lo d e d is e ñ o .
to . E l je f e d e l p r o y e c to p u e d e te n e r d ific u lt a d e s
e s t a b le c ie n d o h it o s s ig n if ic a t i v o s e n u n p r o y e c t o O O . S e h a d e s a r r o lla d o y r e v is a d o u n a r e d d e c la s e s —
d e b id o a q u e s ie m p r e h a y u n c ie r t o n ú m e r o d e c o s a s r e s p o n s a b ilid a d e s - c o la b o r a c io n e s ( C a p ítu lo 2 3 ).
o c u r r ie n d o a la v e z . E n g e n e r a l, lo s s ig u ie n te s h it o s • S e h a n d is e ñ a d o c a s o s d e p r u e b a y e je c u ta d o p r u e
p r in c ip a le s p u e d e n c o n s id e r a r s e « c o m p le t a d o s » a l b a s a l n i v e l d e c la s e s p a r a c a d a c l a s e ( C a p í t u l o 2 3 ) .
c u m p lir s e lo s c r it e r io s m o s t r a d o s :
• S e h a n d is e ñ a d o c a s o s d e p r u e b a y c o m p le t a d o p r u e
b a s d e a g r u p a m i e n t o s ( C a p í t u l o 2 3 ) y la s c la s e s s e
H ito técnico: análisis OO term inado h a n in te g r a d o .
• T o d a s la s c la s e s , y l a j e r a r q u í a d e c la s e s , e s t á n d e f i • S e h a n t e r m i n a d o la s p r u e b a s d e l s is t e m a .
n id a s y r e v is a d a s .
R e c o r d a n d o e l m o d e lo d e p r o c e s o r e c u r s iv o /p a r a le
• S e h a n d e f in id o y r e v is a d o lo s a t r ib u t o s d e c la s e y
lo e x a m in a d o a n te r io r m e n te e n e s te c a p í t u lo , e s im p o r
la s o p e r a c i o n e s a s o c ia d a s a u n a c la s e .
ta n te d e s ta c a r q u e c a d a u n o d e e s to s h ito s p u e d e s e r
• S e h a n e s t a b le c id o y r e v is a d o la s r e l a c io n e s e n t r e r e v is a d o n u e v a m e n te a l e n tr e g a r d ife r e n te s in c r e m e n
c la s e s ( C a p í t u l o 2 1 ) . t o s a l u s u a r io .
L a s t e c n o lo g ía s d e o b je t o s r e f le ja n u n a v is i ó n n a t u s e n ta d o s c o m o o b je t o s . Es im p o r t a n t e d e s ta c a r q u e
r a l d e l m u n d o . L o s o b je t o s s e c la s if i c a n e n c la s e s y lo s o b je t o s ( y la s c la s e s d e la s q u e s e d e r iv a n ) e n c a p -
la s c la s e s s e o r g a n i z a n e n je r a r q u í a s . C a d a c la s e c o n s u la n d a to s y p r o c e s o s . L a s o p e r a c io n e s d e p r o c e s a
tie n e u n c o n ju n t o d e a t r ib u t o s q u e la d e s c r ib e n y u n m i e n t o s o n p a r t e d e l o b j e t o y s e i n i c i a n a l p a s a r l e un
c o n ju n t o d e o p e r a c io n e s q u e d e f in e su c o m p o r t a m e n s a je a l o b je t o . U n a d e f i n i c i ó n d e c la s e , u n a v e z
m ie n t o . L o s o b je t o s m o d e la n c a s i t o d o s lo s a s p e c to s d e f in id a , c o n s t it u y e la b a s e p a r a la r e u t iliz a c ió n e n
www.FreeLibros.org
id e n t if ic a b le s d e l d o m i n io d e l p r o b le m a : e n tid a d e s lo s n iv e le s d e m o d e la d o , d is e ñ o e im p le m e n t a c ió n .
e x t e r n a s , c o s a s , o c u r r e n c ia s , r o le s , u n id a d e s o r g a n i- L o s o b je t o s n u e v o s p u e d e n s e r in s t a c ia d o s a p a r t ir
z a c io n a le s , lu g a r e s y e s t r u c t u r a s p u e d e n s e r r e p r e d e u n a c la s e .
358
CAPÍTULO 20 C O N C E P T O S Y P R I N C I P I O S O R I E N T A D O S A O BIE TO S
T re s c o n c e p to s im p o r t a n t e s d ife r e n c ia n e l e n fo q u e O O d e l í n e a s d e c ó d i g o n e c e s a r i a s p a r a i m p l e m e n t a r u n s is
d e la in g e n ie r í a d e l s o ftw a r e c o n v e n c io n a l. E l e n c a p s u - te m a y f a c il it a lo s c a m b io s e n c a s o d e q u e s e p r o d u z c a n .
l a m i e n t o e m p a q u e t a d a t o s y la s o p e r a c i o n e s q u e m a n e Los p r o d u c t o s y s i s t e m a s o r i e n t a d o s a o b j e t o s s e p r o
ja n e s o s d a to s . L a h e r e n c ia p e r m it e q u e lo s a t r ib u to s y d u c e n u s a n d o u n m o d e lo e v o lu t iv o , a v e c e s lla m a d o
o p e r a c io n e s d e u n a c la s e p u e d a n s e r h e r e d a d o s p o r to d a s r e c u r s iv o /p a r a le lo . E l s o ftw a r e o r ie n t a d o a o b je t o s e v o
la s c la s e s y o b je t o s q u e s e in s t a n c ia n d e e lla . E l p o l i lu c io n a it e r a tiv a m e n te y d e b e d ir ig ir s e te n ie n d o e n c u e n
m o r f is m o p e r m it e q u e u n a c a n t id a d d e o p e r a c io n e s d i f e ta q u e e l p r o d u c t o f i n a l se d e s a r r o lla r á a p a r t ir d e u n a
re n te s p o s e a n e l m is m o n o m b r e , r e d u c ie n d o la c a n tid a d s e r ie d e in c r e m e n t o s .
[ B 0 0 9 1 ] B ooch , G ., Object-O riented Design, B e n ja m in - [JA C 92] Jacobson, I., Object-Oriented Software Engineering,
C um m ings, 1991. A d d iso n -W esley, 1992.
20.1. L a ingeniería del softw areorientada a objetos está reem 2 0 .6 . C onsidere la típ ic a in te rfa z g ráfica de usuario (IG U ).
plazando rápidam ente a los enfoques de desarrollo de soft D e fin a un c o n ju n to de clases y subclases para las e n ti
ware tradicionales. C om o todas las tecnologías, la orientación dades de la in te rfa z q u e ap arecen g e n e ra lm e n te en una
a objetos tam bién tiene sus fallo s. U tiliza n d o Internet y otras IG U . A s e g ú re s e de d e fin ir lo s a trib u to s y o p e ra c io n e s
fuentes de b ib lio g ra fía m ás tradicionales, escriba un breve apropiadas.
artículo que resuma lo que les críticos dicen sobre la O O y
por qué creen que hay que tener cuidado al aplicar el para 2 0 .7 . D e ta lle los objetos que aparecerían en un sistem a de
digm a de objetos. reserva de aulas de lec tu ra en una universidad o c o le g io .
¿C uáles serían sus atributos?
20.2. E n este capítulo no hemos considerado el caso en el que
un nuevo objeto necesita un atributo u operación que no está 2 0 .8 . L e ha sido asignada la tarea de in g e n ie ría de un n u e
contenido en la clase de la que hereda el resto de atributos y vo p ro g ram a de p ro cesam iento de textos. Se ha id e n tifi
operaciones. ¿Cómo cree que se m anejaría esta situación? cado una clase lla m a d a d o cu m en to . D e fin a los atributos
y operaciones relevantes de dicha clase.
20.3. D e ta lle los objetos que p a rtic ip aría n en un sistem a
de reservas de vuelos. ¿Cuáles serían sus atributos? 2 0 .9 . In v e s tig u e dos leng uajes de pro gram ación O O d ife
20.4. U tilizando sus propias palabras y algunos ejem plos defina rentes y m uestre la im p lem e n ta ció n de l o s m ensajes en la
los términos clase, encapsulamiento, herencia y polimorfismo. sintaxis de cada uno de e llo s . Ponga e je m p lo s .
www.FreeLibros.org
20.5. R evise los objetos definidos en el sistem a H ogarSe 20.10. Ponga un e je m p lo concreto de reestructuración de
guro. ¿Cree que hay otros objetos que deban ser d e fin id o s je ra rq u ía de clases tal y com o aparece en la discusión de
como p rin c ip io del m odelado? la F ig u ra 2 0 .8 .
359
I N GEN IE RÍ A DEL S OFT W ARE . UN E N F O Q U E P R A C T I C O
20.11. Ponga un e je m p lo de herencia m ú ltip le . Investigue la Sección 2 0 .3 .1 para determ in ar qué clases deberían estar
algunos artícu lo s sobre e l te m a y e x tra ig a los pros y los en e l m o d e lo de a n álisis .
contras.
20.13. D es crib a con sus propias palabras p o r qué el m ode
20.12. E scriba un enunciado para un sistem a que le p ro lo re cu rsivo /p ara lelo es apropiado en los sistem as O O .
p orcione su pro fesor. U tilic e e l a n a liza d o r sintáctico gra
m a tic a l p a ra id e n tific a r clases c an d id a ta s, a trib u to s y 20.14. Ponga tres o cuatro e je m p lo s de clases c la ve y de
operaciones. A p liq u e el c rite rio de selección discutido en soporte que se describiero n én la Sección 2 0 .4 .2 .
n » » A « t g C í ttl>Afi Y f BENTES DE IN FO R M A C IÓ N
L a explosión de interés por las tecnologías O O ha dado com o L a naturaleza Única del p arad ig m a O O supone especia
resultado la publicación de literalm ente cientos de libros duran les retos a los gestores de pro yecto. L o s lib ro s de C ock-
te los Ú ltim os 15 años. E l tratam iento abreviado de T a y lo r B u rn (Surviving Object-Oriented P rojects: A M anager’s
[T A Y 9 0] sigue siendo la m ejor introducción al tema. Adem ás, Guide, A d d iso n -W esley, 1 9 9 8 ), B o o ch (Object Solutions:
los libros de A m bler (The ObjectPrimer: The applicationDeve- M anaging the Object Oriented Project, A ddison -W esley,
lopper’s Guideto Object-Orientation,S I G S B o o k s , 1998), Gos- 1 9 9 5 ), G o ld b erg y R u b ín (Succeding With Objects: Deci
sain y Graham (ObjectModeling and Design Strategies, S IG S sión Frameworks f o r Project Management, A d d iso n -W es
Books, 1998), B ahar (Object TechnologyMade Simple, Sim ple ley, 1 9 9 5 ) y M e y e r (Object-Success: A M an a g er’s Guide
Software Publishing, 1 99 6)y Singer (Object Technology Stra to Object Orientation, P re n tic e -H a ll, 1 9 9 5 ) consideran las
tegies and 7«crics,Cam bndgeUniversityPress, 1 9 9 6 )son tam estrategias de p la n ific a c ió n , seguim iento y control de pro
bién valiosas introducciones a los conceptos y métodos O O . yectos O O .
Z a m ir (Handbookof Object Technology, C R C Press, 1998) E a rle s y S im m s (B uilding B usiness O bjects, W ile y ,
ha editado un volum inoso tratado que cubre todos los aspec 1 9 9 8 ), C a rm ic h a e l (D evelopingB usiness O bjects, S IG S
tos de las tecnologías de objetos. Fayad y L aitn en (Trunsition B ooks, 1 9 9 8 ), F in g a r (T heB lueprintfor Business Objects,
to Object-Oriented Software Development, W ile y , 1998) u ti C am bridge U n iversity Press, 1996) y T a y lo r (Business Engi-
liz a casos de estudio para iden tificar los retos técnicos, c u l neerin with O bject Technology, W ile y , 1 9 9 5 ) enfocan la
turales y de gestión a superar cuando una organización hace tecn ología de objetos tal y com o se aplica en contextos de
una transición a la tecnología de objetos. G ardner et al. (Cog- negocios. Sus lib ro s m uestran m étodos p ara expresar los
nitive Patterns: Problems-Solving F ram ew orksfor Object conceptos y requisitos de negocio directam ente com o obje
Technology, C am bride U n iversity Press, 1 99 8)p ro p o rcio n a r tos y aplicaciones orientadas a objetos.
al lector una introducción básica sobre conceptos de resolu E n In te rn e t hay gran v a rie d a d de fu entes de in fo rm a
ción de problemas y la tecnología asociada a los patrones cog- ción sobre tecnologías de objetos y otros tem as relaciona
nitivos y al m odelado cognitivo tal y com o se aplican en los dos. E n http://www.pressman5.com e ncon trará una lista
sistemas orientados a objetos. de referencias w eb actu alizada sobre tem as O O .
www.FreeLibros.org 360
C A P ÍT U L O
U A N D O s e t ie n e q u e c o n s t r u i r u n n u e v o p r o d u c t o o s is t e m a , ¿ c ó m o l o c a r a c t e r iz a m o s d e
C f o r m a t a l q u e s e a t r a t a d o p o r la in g e n ie r í a d e l s o f t w a r e o r ie n t a d o a o b je t o s ? ¿ H a y p r e g u n
t a s e s p e c i a l e s q u e q u e r a m o s h a c e r a l c l i e n t e ? ¿ C u á le s s o n l o s o b j e t o s r e l e v a n t e s ? ¿ C ó m o
s e r e l a c io n a n e n t r e s í? ¿ C ó m o s e c o m p o r t a n lo s o b je t o s e n e l c o n t e x t o d e l s is t e m a ? ¿ C ó m o e s p e
c if ic a m o s o m o d e la m o s u n p r o b le m a d e f o r m a t a l q u e p o d a m o s c r e a r u n d is e ñ o e f ic a z ?
A c a d a u n a d e e s ta s in te r r o g a n t e s s e r e s p o n d e d e n t r o d e l c o n t e x t o d e l a n á lis is o r ie n t a d o a
o b j e t o s (A O O ), p r i m e r a a c t i v i d a d t é c n i c a q u e s e d e s a r r o l l a c o m o p a r t e d e l a i n g e n i e r í a d e l s o f t
w a r e 0 0 . E n lu g a r d e e x a m in a r u n p r o b le m a u t iliz a n d o e l m o d e lo d e in f o r m a c ió n c lá s ic o d e
f l u j o d e d a to s , e l A O O in t r o d u c e v a r io s c o n c e p to s n u e v o s . C o a d y Y o u r d o n [ C O A 9 1 ] c o n s id e
r a n el t e m a c u a n d o e s c r i b e n :
E1 A O O (A nálisis O rien tad o a O b jeto s) se basa en con cep to s que ya aprendim os en la guardería: o b je
tos y atributos, clases y m iem bros, to d o s y partes. E l porqué n o s ha llevado tan to tiem p o a p lic ar estos c o n
ceptos al análisis y especificación de sistem as es algo que nadie sabe a cie n cia cierta...
E l A O O s e b a s a e n u n c o n ju n t o d e p r in c ip io s b á s ic o s q u e s e in t r o d u je r o n e n e l C a p ítu lo 11 .
P a r a c o n s t r u ir u n m o d e lo d e a n á lis is s e a p lic a n c in c o p r in c ip io s b á s ic o s : ( 1 ) s e m o d e la e l d o m i
n i o d e la in f o r m a c ió n ; ( 2 ) s e d e s c r ib e la f u n c ió n ; ( 3 ) s e r e p r e s e n ta e l c o m p o r t a m ie n t o d e l m o d e
lo ; ( 4 ) lo s m o d e lo s d e d a t o s , f u n c i o n a l y d e c o m p o r t a m ie n t o s e d i v i d e n p a r a m o s t r a r m á s d e t a lle s ;
y ( 5 ) lo s m o d e lo s in ic ia l e s r e p r e s e n t a n la e s e n c ia d e l p r o b le m a m ie n t r a s q u e lo s U lt im o s a p o r -
t a n 'd e t a lle s d e la im p le m e n t a c ió n . E s t o s p r i n c ip i o s f o r m a n la b a s e p a r a e l e n f o q u e d e l A O O
p r e s e n ta d o e n e s e c a p ít u lo .
VISTAZO RÁPIDO
¿ Q u é es? Antes d e q u e pueda construir un ¿P or qué es im portante? No se puede tra sla d a la in ío rm aáó c d e l o ta m M d e
sistem a orien tad o a objetos, tien e q u e construir softw are (o rien tad o s objetos o uso.a u n a representación d e laBciaMB-y
definir la s clases (obletos) q ue represen de otro tipo) h a sta que se tien e un cono sus colaboraciones con la s otras ciases.
ta n el problem a a resolver, la form a e n cim iento ra zo n a b le d el siste m a o pro Las características estáticas y dinám icas
que la s c la s e s s e relacio n an e interac- ducto. El AOO nos proporciona u n a forma d e la s c la se s se m odelan entonces utili
tú a n u n a s con otras, el funcionam iento concreta d e re p re se n tar e l conocim iento zando u n lenguaje d e m odelado unifica
interno (atrib u to sy operaciones) d e l os d e los requiáitos y u n a form a d e probca do o cualquier otro métcxlo.
objetos y los m ecanism os d e com unica dicho conocim ientoenfaentándolo con la ¿ C u á l e s e l p r o d u c t o p b t e n i d o ? Se
ción (m ensajes)que los perm iten trab a - percepción q u e el cliente tiene del siste c re a u n m odelo d e a n á lis is o rie n ta d o
jarjuntos. Todas e s t a s cosas se cum plen m a a cxnstm ir. . a objetos. Dicho m odelo se com pone d e
en el a n á lisis orientado a objetos. ¿ C u á l e s m t e s p a s a * ? El AOO com ien u n a re p re se n ta c ió n g ráfica, o b a s a d a
¿ Q u ié n lo h u s e ? La definición d e un mode za con u n a descripción d e c aso s d e uso, e n el len g u a je, q u e d efine los a trib u to s
lo d e a n á lis is llev a im plícita u n a d e s q u e e s u n a descripción d e e sc e n a rio s d é l a c la se , 1a s re la c io n e s y co m porta
cripción d e la s c aracterísticas d e la s sobre cómo interactúan los actores (gen m ie n to s y l a s c o m u n ic a c io n e s e n tre
c la se s q u e d escriban u n sistem a o pro te, m áquinas u otros sistem as) con el s is c la s e s , a s í com o u n a r e p re s e n ta c ió n
ducto. L a a ctividad la r e a l i i u n in g e te m a a construir. El m odelo d e c la s e s - d e l com p o rtam ien to d e la c la s e e n e l
niero del software. re s p o n sa b ilid a d -c o la b o ra c ió n (CRC) tiem po.
E l p r o p ó s i t o d e l A O O e s d e f i n i r t o d a s la s c la s e s q u e s o n r e l e v a n t e s a l p r o b l e m a q u e s e v a a
r e s o l v e r , la s o p e r a c i o n e s y a t r i b u t o s a s o c i a d o s , la s r e l a c i o n e s y c o m p o r t a m i e n t o s a s o c ia d a s c o n
e l l a s . P a r a c u m p l i r l o s e d e b e n e j e c u t a r la s s i g u i e n t e s t a r e a s :
1. L o s r e q u is it o s b á s ic o s d e l u s u a r io d e b e n c o m u n ic a r s e e n tr e e l c lie n t e y e l in g e n ie r o d e l
s o ftw a re .
2 . I d e n t i f i c a r la s c la s e s ( e s d e c i r , d e f i n i r a t r i b u t o s y m é t o d o s ) .
3 . S e d e b e e s p e c i f i c a r u n a j e r a r q u í a d e c la s e s .
www.FreeLibros.org
4 . R e p r e s e n t a n la s r e l a c i o n e s o b j e t o a o b j e t o ( c o n e x i o n e s d e o b j e t o s ) .
5 . M o d e la r e l c o m p o r t a m ie n t o d e l o b je t o .
6 . R e p e t i r i t e r a t i v a m e n t e la s t a r e a s d e l a 1 a l a 5 h a s t a c o m p l e t a r e l m o d e l o .
36Z
INGE NIE RI A DEL SO FTW A RE. UN E N F O Q U E P R Á C T IC O
Es im portante observar que no existe un acuerdo universal sobre los «conceptos» que sirven de base para el A O O ,
pero un lim itado núm ero de ideas clave se repten a m enudo, y son éstas las que co n siderarem osen este capítulo.
o r ie n t a d o a o r e e t o s ______________________________ '
El ob jetiv o del análisis orientado a objetos es d esarro El método de Booch. El m étodo de B ooch [B 0 0 9 4 ]
llar u n a serie de m odelos que d escriban el softw are de abarca un «m icroproceso de desarrollo» y un «m acro-
com putadora al trab ajar p ara satisfacer un conjunto de proceso de desarrollo». El nivel m icro define un conjunto
requisitos definidos p o r el cliente. E l A O O , co m o los de tareas de análisis que se reaplican en cada etapa en el
m étodos de análisis convencional descritos en el C apí m acro proceso. P or esto se m antienen un enfoque ev o
tulo 12, fo rm a n u n m odelo de análisis m ultiparte para lutivo. El m icro proceso de desarrollo identifica clases y
sa tisfa c e r este o bjetivo. El m o d elo de an álisis ilustra objetos y la sem ántica de dichas clases y objetos, define
inform ación, fu ncionam iento y com portam iento dentro las relaciones entre clases y objetosy realiza una serie de
del c o n te x to d e los elem en to s del m o d elo de o bjetos refin am ien to sp ara elaborar el m odelo del análisis.
descrito en el C apítulo 20.
1La discusión detallada de estos m étodos y su s diferencias esta fuera 2 En general, los m étodos de AOO se identifican usando el (o los)
del alcance en este libro. A dem ás, la industria se m ueve hacia una nombre(s) del desarrollador del m étodo, incluso si al m étodo se le
www.FreeLibros.org
form a de m odelado unificada en un único m étodo, lo que hace que ha dado un nom bre o acrónim o único
las discusiones sobre los antiguos m étodos sólo ten g a n sentido a
e fectos históricos. El lector interesad o puede co n su ltar a Berard
[BER92] y G raham [GRA94J para una com paración m ás detallada.
362
CAPÍTULO 21 A NÁ LISIS O R IE N TA D O A O B JE T O S
www.FreeLibros.org
3 Booch, R um baugh y Ja co b so n han publicado una trilogía fu n d a 4 Si aún no lo ha hecho, lea por favor la discusión sobre los casos de
mental de libros sobre UML. El lector interesad o puede co n su ltar uso de la Sección 11.2.4.
[B0099], [RUM99] y [JAC99].
363
INGENIERÍA DEL S OFT W ARE . UN E N F O Q U E P R Á C T I C O
V is t a d e l c o m p o r t a m i e n t o : e s t a p a r t e d e l m o d e l o d e l V i s t a d e i m p l e m e n t a c i ó n ', l o s a s p e c t o s e s t r u c t u r a l e s
a n á lis is r e p r e s e n ta lo s a s p e c to s d in á m ic o s o d e c o m y d e c o m p o r ta m ie n to se r e p r e s e n ta n a q u í ta l y c o m o v a n
p o r t a m i e n t o d e l s i s t e m a . T a m b i é n m u e s t r a la s i n t e r a c a s e r im p le m e n t a d o s .
c io n e s o c o la b o r a c io n e s e n tr e lo s d iv e r s o s e le m e n to s
V is t a d e l e n t o r n o : a s p e c t o s e s t r u c t u r a le s y d e c o m
e s t r u c t u r a l e s d e s c r i t o s e n la s v i s t a s a n t e r i o r e s .
p o r t a m ie n t o e n e l q u e e l s is t e m a a im p le m e n t a r s e r e p r e
s e n ta .
E n g e n e r a l, e l m o d e lo d e a n á lis is d e U M L s e c e n tr a
Referencia Web e n la s v i s t a s d e l u s u a r i o y e s t r u c t u r a l . E l m o d e l o d e d i s e
Bimini.net/cetus/oo_uml.html hay un amplio ñ o d e U M L ( tr a ta d o e n e l C a p ítu lo 2 2 ) se d ir ig e m á s a
tutorial y una lista de recursos UML que Incluye la s v i s t a s d e l c o m p o r t a m i e n t o y d e l e n t o r n o . E n e l C a p í
herramientas, artículos y ejemplos. t u lo 22 d e s c r ib ir e m o s U M L c o n m á s d e ta lle .
lo
E l a n á lis is e n s is t e m a s o r ie n t a d o s a o b je t o s p u e d e o c u la n e c e s id a d d e 1 0 0 c la s e s . S e le a s ig n a a d o s e q u ip o s
r r i r a m u c h o s n iv e le s d if e r e n t e s d e a b s tr a c c ió n . A n i v e l la ta r e a d e c o n s t r u ir la a p lic a c ió n . C a d a u n o d e b e d is e
d e n e g o c i o s o e m p r e s a s , la s t é c n i c a s a s o c ia d a s c o n e l ñ a r y c o n s tr u ir u n p r o d u c to f in a l y , a s u v e z , e s tá c o m
A O O p u e d e n a c o p la r s e c o n u n e n f o q u e d e in g e n ie r í a p u e s to d e p e rs o n a s c o n e l m is m o n iv e l d e h a b ilid a d y
d e la in f o r m a c ió n ( C a p í t u lo 1 0 ) e n u n e s fu e r z o p o r d e f i e x p e r ie n c ia .
n i r c la s e s , o b je t o s , r e la c io n e s y c o m p o r t a m ie n t o s q u e
m o d e le n e l n e g o c io p o r c o m p le t o . A n i v e l d e á re a s d e
n e g o c io s , p u e d e d e f in ir s e u n m o d e lo d e o b je t o s q u e d e s ^P O N SE JO ^.
c r ib a e l tr a b a jo d e u n á re a e s p e c íf ic a d e n e g o c io s ( o u n a
c a t e g o r í a d e p r o d u c t o s o s i s t e m a s ) . A n i v e l d e la s a p l i Otros beneficios derivados déla reutilización son
c a c io n e s , e l m o d e lo d e o b je t o s s e c e n tr a e n lo s r e q u is i
del software serán más consistentes, tendiendo
to s e s p e c íf ic o s d e l c lie n t e , p u e s é s to s a f e c t a n a la
o facilitar el mantenimiento del producto. Asegúresede
a p lic a c ió n q u e se v a a c o n s tr u ir .
establecer un conjunto de reglas de reutilización
poro conseguir dichos objetivos.
CLAVE
E l e q u ip o A n o tie n e a c c e s o a u n a b ib lio t e c a d e c la
£I objetivodel análisis del dominio es definir el conjunto
s e s , p o r l o q u e d e b e d e s a r r o l l a r la s 1 0 0 c la s e s d e s d e
de clases (objetos) que se encuentran en el dominio de
e l p r i n c i p i o . E l e q u i p o B u s a u n a b i b l i o t e c a d e c la s e s
la aplicación. Dichas clases podrán re u É im e muchas veces.
r o b u s t a y e n c u e n t r a q u e y a e x i s t e n 5 5 c la s e s . S e g u r o
que:
E l A O O , e n s u n iv e l d e a b s tr a c c ió n m á s a lt o ( e l n iv e l
1 . E l e q u ip o B f in a liz a r á e l p r o y e c t o m u c h o a n te s q u e
d e e m p r e s a ) , e s tá m á s a llá d e l a lc a n c e d e e s te lib r o . L o s
elA.
le c t o r e s in t e r e s a d o s d e b e r í a n v e r a [ E E L 9 8 ] , [ C A R 9 8 ] ,
[ F I N 9 6 ] , [ M A T 9 4 ] , [ S U L 9 4 ] y [ T A Y 9 5 ] , lo s c u a le s 2 . E l c o s te d e l p r o d u c to d e l e q u ip o B s e rá s ig n if ic a t i
h a c e n u n a n á lis is m á s d e ta lla d o . A n iv e l d e a b s tr a c c ió n v a m e n te m á s b a jo q u e e l c o s te d e l p r o d u c to d e l
m á s b a jo , e l A O O c a e d e n t r o d e l a lc a n c e g e n e r a l d e la e q u ip o A .
in g e n ie r í a d e l s o ftw a r e o r ie n t a d o a o b je t o s y e s e l c e n 3. L a v e r s i ó n q u e s e d i s t r i b u y a d e l p r o d u c t o p r o d u c i d o
t r o d e a t e n c i ó n d e l r e s t o d e la s s e c c i o n e s d e e s t e c a p í p o r e l e q u ip o B te n d r á m e n o s d e fe c to s q u e la d e l p r o
t u lo . E n e s ta s e c c ió n n o s c e n tr a r e m o s e n e l A O O q u e d u c t o d e l e q u ip o A .
s e r e a liz a a u n n iv e l m e d io d e a b s tr a c c ió n . E s ta a c t iv i
A u n q u e e l m a r g e n p o r e l c u a l e l tr a b a jo d e l e q u ip o
d a d , lla m a d a a n á lis is d e l d o m in io , t ie n e lu g a r c u a n d o
B e x c e d e r á a l d e l A e s tá a b ie r t o a d e b a te , p o c o s a r g u
u n a o r g a n iz a c ió n d e s e a c r e a r u n a b i b li o t e c a d e c la s e s
m e n ta r á n q u e la r e u s a b ilid a d a p o r ta u n a v e n t a ja s u b s
r e u t iliz a b le s ( c o m p o n e n te s ) a m p lia m e n t e a p lic a b le s a
t a n c ia l a l e q u ip o B .
u n a c a t e g o r ía c o m p le t a d e a p lic a c io n e s .
¿ P e r o d e d ó n d e v i n o l a « b i b l i o t e c a d e c la s e s r o b u s
t a » ? ¿ Y c ó m o s e d e t e r m i n ó q u e la s e n t r a d a s d e l a b i b l i o
21.2.1. A n á l i s i s d e r e u t i l i z a c i ó n y d e l d o m in io t e c a e r a n a p r o p ia d a s p a r a s u u s o e n n u e v a s a p lic a c io n e s ?
www.FreeLibros.org
L a s t e c n o lo g ía s d e o b je t o s e s tá n in f lu e n c ia d a s p o r la P a r a r e s p o n d e r e s ta s p r e g u n ta s , la o r g a n iz a c ió n q u e c re ó
r e u t iliz a c ió n . C o n s id e r e u n e je m p lo s im p le . E l a n á li y m a n t u v o d ic h a b ib lio t e c a t u v o q u e a p lic a r e l a n á lis is
s is d e l o s r e q u i s i t o s p a r a n u e v a s a p l i c a c i o n e s i n d i c a n d e l d o m in io .
364
CAPÍTULO 21 A N Á LI S IS O R I E N T A D O A O B J E T O S
21.2.2. El p r o c e s o d e a n á l i s i s d e l d o m in io
F ir e s m it h [ F I R 9 3 ] d e s c r ib e e l a n á lis is d e l d o m i n io d e l
s o ftw a r e d e la s ig u ie n te m a n e r a : j¡ É o? s p quera hacer una inversión
El análisis del dominio del software es la identificación, " M ilu t e a t e c ió n de software, necesita
análisis y especificación de requisitos comunes de un domi i componentes a considerar
nio de aplicación específico, normalmente para su reutili
# e f rfasarraite de un modelo de ese tipo.
zación en múltiples proyectos dentro del mismo dominio
de aplicación ... (el análisis orientado a objetos del domi ü ft?
nio es la identificación, análisis y especificación de capa
cidades comunes y reutilizables dentro de un dominio de
aplicación específico, en términos de objetos, clases, sub- L a F i g u r a 2 1 . 1 [ A R A 8 9 ] i l u s t r a la s e n t r a d a s y s a l i
montajes y marcos de trabajo comunes... d a s c la v e p a r a e l p r o c e s o d e a n á lis is d e l d o m in io . S e e x a
E 1 « d o m in io d e a p lic a c io n e s e s p e c íf ic o » p u e d e m i n a n la s f u e n t e s d e l d o m i n i o d e c o n o c i m i e n t o e n u n
v a r ia r d e s d e a v ió n ic a h a s ta b a n c a , d e s d e ju e g o s d e in t e n t o d e id e n t if ic a r o b je t o s q u e s e p u e d a n r e u t il iz a r a
v íd e o m u lt im e d ia h a s ta a p lic a c io n e s d e n tr o d e u n e s c á l o la r g o d e t o d o e l d o m in io . E n e s e n c ia e l a n á lis is d e l
n e r CAT. E l o b j e t i v o d e l a n á l i s i s d e l d o m i n i o e s c l a d o m in io e s m u y s im ila r a la in g e n ie r í a d e l c o n o c im ie n
r o : e n c o n t r a r o c r e a r a q u e lla s c la s e s a m p lia m e n t e to . E l in g e n ie r o d e l c o n o c im ie n t o in v e s t ig a u n á re a d e
a p lic a d a s , d e t a l m a n e r a q u e s e a n r e u t il iz a b le s . in t e r é s e s p e c í f i c a , i n t e n t a n d o e x t r a e r h e c h o s c l a v e s q u e
s e p u e d a n u s a r p a r a la c o n s t r u c c ió n d e u n s is t e m a e x p e r
t o o u n a r e d n e u r o n a 1 a r t if ic ia l. D u r a n t e e l a n á lis is d e l
á.iiiJjjjJiJjjiu.M.fc d o m i n i o o c u r r e l a e x t r a c c i ó n d e o b j e t o s ( y c la s e s ) .
La reutilización es lo piedra angular de la ingeniería D efinir el dom inio a investigar. P a r a l l e v a r a c a b o
del software basada en componentes, tema que se e s ta ta r e a , e l a n a lis ta d e b e p r im e r o a is la r e l á re a d e n e g o
c io , t i p o d e s is t e m a o c a t e g o r í a d e l p r o d u c t o d e in t e r é s .
A c o n t in u a c ió n , s e d e b e n e x t r a e r lo s « e le m e n to s » ta n t o
0 0 c o m o n o 0 0 . L o s e le m e n to s 0 0 in c lu y e n e s p e c if i
U s a n d o la t e r m in o lo g í a in t r o d u c id a a l in ic io d e l c a c i o n e s , d i s e ñ o s y c ó d i g o p a r a c la s e s d e a p l i c a c i o n e s
lib r o , e l a n á lis is d e l d o m in io p u e d e v e r s e c o m o la a c t i 0 0 y a e x i s t e n t e s ; c l a s e s d e s o p o r t e ( p . e . : c la s e s d e l n t e r -
v id a d d e c o b e r tu r a p a r a e l p r o c e s o d e l s o ftw a r e . C o n f a z G r á f i c a d e U s u a r io o c la s e s d e a c c e s o a b a s e s d e
e s to q u e r e m o s d e c ir q u e e l a n á lis is d e l d o m in io e s u n a d a to s ) ; b ib lio t e c a s d e c o m p o n e n te s c o m e r c ia le s y a d e s a
a c tiv id a d e n c u r s o d e la in g e n ie r í a d e l s o ftw a r e n o r r o lla d a s (C Y D ) r e le v a n te s a l d o m i n io y c a s o s d e p r u e b a .
lig a d a a n in g ú n p r o y e c to d e s o ftw a r e . E n c ie r ta f o r L o s e le m e n to s n o 0 0 a b a r c a n p o lític a s , p r o c e d im ie n
m a , e l p a p e l d e u n a n á lis is d e l d o m in io e s s im ila r a l to s , p la n e s , e s tá n d a r e s y g u ía s ; p a r te s d e a p lic a c io n e s n o
d e u n m a e s tro to r n e r o d e n tr o d e u n e n to r n o d e fa b r i 0 0 ( in c lu y e n d o e s p e c if ic a c ió n , d is e ñ o e in f o r m a c ió n d e
c a c ió n fu e r te . E l tr a b a jo d e l m a e s tr o to r n e r o e s d is e p r u e b a ) , m é tr ic a s y C Y D d e l s o ftw a r e n o O O .
ñ a r y c o n s tr u ir h e r r a m ie n ta s q u e p u e d e n u s a rs e p o r C lasificar los elem entos extraídos del dom inio. L o s
v a r ia s p e r s o n a s q u e t r a b a ja n e n a p lic a c io n e s s i m i l a e l e m e n t o s s e o r g a n i z a n e n c a t e g o r í a s y s e e s t a b l e c e n la s
r e s , p e r o n o n e c e s a r ia m e n t e id é n t ic a s . E l p a p e l d e l c a r a c t e r í s t ic a s g e n e r a le s q u e d e f in e n la c a te g o r ía . S e
a n a lis ta d e l d o m in io e s d is e ñ a r y c o n s t r u ir c o m p o p r o p o n e u n e s q u e m a d e c la s if ic a c ió n p a r a la s c a t e g o
n e n te s r e u t iliz a b le s q u e p u e d a n s e r u t iliz a d o s p o r d if e r ía s y s e d e f in e n c o n v e n c io n e s p a r a la n o m e n c la t u r a d e
r e n te s p e r s o n a s q u e tr a b a ja n e n a p lic a c io n e s s im ila r e s c a d a e le m e n to . S e e s t a b le c e n je r a r q u í a s d e c la s if ic a c ió n
p e r o n o n e c e s a r ia m e n te ig u a le s . e n c a s o d e s e r a p r o p ia d o .
Literatura técnica
Taxonom ía de clases
Aplicaciones existentes \ ►
\ Estándar de reusabilidad M odelo
Recursos del cliente Análisis 1 ► del
del dominio 1 Modelos funcionales
Consejo de experto análisis
m Lenguajes del dom inio del
Requisitos actuales/futuros W * dom inio
www.FreeLibros.org
FIGURA 2 1 .1 . Entrada y salida para an álisis del d om in io.
365
I N GE NI E RÍ A DEL S O F TW A RE . UN E N F O Q U E P R A C T I C O
caaamgga
Una estrategia completa del modele del anáfisis debe
A d e m á s , u n a v e z q u e s e h a n d e f in id o lo s o b je t o s , e l
a n a lis ta d e b e e s tim a r q u é p o r c e n ta je d e u n a a p lic a c ió n
t í p ic a p u d ie r a c o n s tr u ir s e u s a n d o lo s o b je t o s r e u tiliz a b le s .
considerar tanto la arquitectura como ios componentes.
En el Capítulo 14 hay una confíela discusión sobre D e s a r r o lla r u n m o d e lo d e a n á lis is p a r a los o b je
to s. E l m o d e l o d e a n á l i s i s s e r v i r á c o m o b a s e p a r a e l
d is e ñ o y c o n s t r u c c ió n d e lo s o b je t o s d e l d o m in io .
E l p r o c e s o d e a n á lis is o r ie n t a d o a o b je t o s s e a d a p ta a c o m p o n e n te s d e r e p r e s e n ta c ió n g e n é r ic o s q u e a p a re
c o n c e p to s y p r in c ip io s b á s ic o s d e a n á lis is d is c u t id o s e n c e n e n t o d o s l o s m o d e l o s d e a n á l i s i s O O 5 . L o s co m p o
e l C a p ítu lo 1 1 . A u n q u e la t e r m in o lo g í a , n o ta c ió n y a c t i n e n te s e stá tic o s s o n e s t r u c t u r a l e s p o r n a t u r a l e z a , e
v id a d e s d if ie r e n r e s p e c to d e lo s u s a d o s e n m é to d o s c o n in d ic a n c a r a c te r ís tic a s q u e s e m a n t ie n e n d u r a n t e to d a
v e n c io n a le s , e l A O O ( e n s u n ú c le o ) r e s u e lv e lo s m is m o s l a v i d a o p e r a t i v a d e u n a a p l i c a c i ó n . L o s com ponentes
o b je t iv o s s u b y a c e n te s . R u m b a u g h [ R U M 9 1 ] e x a m in a dinám icos s e c e n t r a n e n e l c o n t r o l , y s o n s e n s i b l e s a l
e s to c u a n d o a s e g u ra q u e : tie m p o y a l t r a ta m ie n to d e s u c e s o s . E s to s ú lt im o s d e f i
n e n c ó m o in te r a c tú a u n o b je t o c o n o t r o s a lo la r g o d e l
E l análisis... se ocupa de proyectar un m odelo preciso, c o n
ciso, com prensible y correcto del m undo real. ..E l propósito tie m p o . P u e d e n id e n t if ic a r s e lo s s ig u ie n te s c o m p o n e n
de análisis Orientado a objetos es m odelar el m undo real de for te s [ M O N 9 2 ] :
m a tal que sea com prensible. P ara esto se deben exam inar los
requisitos, analizar las im plicaciones que se deriven de ellos y
V istaestática de clases sem ánticas. U n a t a x o n o m í a d e
reafirm arlos de m anera rigurosa. Se deben abstraer prim ero las c la s e s t í p i c a s s e m o s t r ó e n e l C a p í t u l o 2 0 . S e i m p o n e n lo s
características del m undo real y de ja r los pequeños detalles r e q u i s i t o s y s e e x t r a e n ( y r e p r e s e n t a n ) la s c la s e s c o m o
para m ás tarde. p a r t e d e l m o d e l o d e a n á l i s i s . E s t a s c la s e s p e r s i s t e n a t r a
P a r a d e s a r r o lla r u n « m o d e lo p r e c is o , c o n c is o , c o m v é s d e t o d o e l p e r í o d o d e v id a d e la a p lic a c ió n y s e d e r i
v a n b a s á n d o s e e n l a s e m á n t i c a d e l o s r e q u i s i t o s d e l c lie n t e .
p r e n s ib le y c o r r e c to d e l m u n d o r e a l» , u n in g e n ie r o d e l
s o ftw a r e d e b e s e le c c io n a r u n a n o t a c ió n q u e s e s o p o r
te a u n c o n ju n t o d e c o m p o n e n te s g e n é r ic o s d e A O O . n ¿Cuáles son los componentes
M o n a r c h i y P u h r [ M O N 9 2 ] d e fin e n u n c o n ju n t o d e clave de un modelo de AOO?
www.FreeLibros.org
5 Los autores [MON92] aportan tam bién un análisis de veintitrés méto
dos de AOO e indican cóm o representan éstos dichas com ponentes.
366
C A PIT U L O 21 A N Á L IS IS OR IE N TA DO A O B J E T O S
21.4 EL PR O C E SO DE R O O
www.FreeLibros.org
los casos de usa son una excelente herramlentade
ejem plo, considerarem os solam ente el actor propietario.
licitoción de requisitos, independientemente del método de
análisis utilizado. Véase el copítulo 11 para más detalle.
La F ig u ra 2 1.2.a m uestra u n d iag ram a de caso s de
uso de alto nivel para el propietario. E n d icha figura
367
I N GE NI E RÍ A DEL S O F TW A R E . UN EN F O Q U E P R Á C T I C O
s e id e n t if ic a n d o s c a s o s d e u s o y s e r e p r e s e n ta n c o n e lip f a c e r e s t a s s e is c a r a c t e r í s t i c a s p a r a p o d e r s e r c o n s i d e
ses. C a d a c a s o d e u s o d e a l t o n i v e l p u e d e d e t a l l a r s e r a d o c o m o p o s ib le m ie m b r o d e l m o d e lo :
m e d ia n te d ia g r a m a s d e c a s o s d e u s o d e n iv e l in f e r io r .
P o r e je m p lo , la F ig u r a 2 1 .2 . b r e p r e s e n ta u n d ia g r a m a 1. retener inform ación: e l o b j e t o p o t e n c i a l s e r á ú t i l
d e c a s o s d e u s o p a r a l a f u n c i ó n interactúa. S e c r e a u n d u r a n te e l a n á lis is s i la in f o r m a c ió n s o b r e e l m is m o
c o n ju n t o c o m p le t o d e d ia g r a m a s d e c a s o s d e u s o p a r a d e b e g u a r d a r s e p a r a q u e e l s is t e m a f u n c io n e
to d o s lo s a c to r e s . P e r o p a r a u n a d e t a lla d a d is c u s ió n s o b r e 2 . Servicios necesarios: e l p o t e n c i a l o b j e t o d e b e t e n e r
lo s c a s o s d e u s o u s a n d o U M L e s m e jo r c o n s u lt a r la u n c o n ju n t o d e o p e r a c io n e s id e n t if ic a b le s q u e p e r
b i b l i o g r a f í a s o b r e e l t e m a (p.e. [ E R I 9 7 ] o [ A L H 9 8 ] ) . m it a n c a m b ia r lo s v a lo r e s d e s u s a t r ib u to s .
3. M últiples atributos: d u r a n t e e l a n á l i s i s d e r e q u i s i t o s
21.4.2. M o d e l a d o d e c la se s-r e sp o n sa b ilid a d e s- n o s c e n tra m o s m á s e n la in f o r m a c ió n m á s im p o r
c o la b o r a c io n e s ta n te . U n o b je t o c o n u n s o lo a t r ib u t o p u e d e , e n e fe c to ,
s e r Ú til d u r a n te e l d is e ñ o , p e r o p r o b a b le m e n te s e rá
U n a v e z q u e s e han d e s a r r o l l a d o lo s e s c e n a r i o s d e u s o
u n a t r ib u t o d e o t r o o b je t o d u r a n t e e l a n á lis is d e a c t i
b á s i c o s p a r a e l s i s t e m a , e s e l m o m e n t o d e i d e n t i f i c a r la s
v id a d e s .
c la s e s c a n d i d a t a s e i n d i c a r s u s r e s p o n s a b i l i d a d e s y c o l a
b o r a c i o n e s . E l m o d e l a d o d e clases-responsabilidades- 4. Atributos comunes: e l c o n j u n t o d e a t r i b u t o s d e f i n i d o
p a r a l a c l a s e d e b e s e r a p l i c a b l e a t o d a s la s o c u r r e n
colaboraciones ( C R C ) [ W 1 R 9 0 ] a p o r t a u n m e d i o s e n c i l l o
d e i d e n t i f i c a r y o r g a n i z a r la s c la s e s q u e r e s u l t e n r e l e v a n t e s c ia s d e l o b je t o .
a l s is t e m a o r e q u is it o s d e l p r o d u c t o . A m b l e r [ A M B 9 5 ]
d e s c r ib e e l m o d e la d o C R C d e la s ig u ie n t e m a n e r a :
HogarSeguro
U n m odelo CRC es realm ente una colección de tarjetas
índice estándar que representan clases. L as tarjetas están divi
didas en tres secciones. A lo largo de la cabecera de la tarjeta
usted escribe el nom bre de la clase. E n el cuerpo se listan las
responsabilidades de la clase a la izquierda y a la derecha los
colaboradores.
Referencia W e b ^ "
Enwww.univ-paris1.fr/CRINFO/iimrg/MEE97/inisop013 (a)
puede consultor uno discusión detalloda de lo técnico de los fórjelas CRC.
E n r e a lid a d , e l m o d e lo C R C p u e d e h a c e r u s o d e t a r
j e t a s í n d i c e v i r t u a l e s o r e a le s . E l c a s o e s d e s a r r o l l a r u n a
r e p r e s e n t a c i ó n o r g a n i z a d a d e la s c la s e s . L a s responsa
bilidades s o n l o s a t r i b u t o s y o p e r a c i o n e s r e l e v a n t e s p a r a
l a c la s e . P u e s t o d e f o r m a s i m p l e , u n a r e s p o n s a b i l i d a d
e s « c u a lq u ie r c o s a q u e c o n o c e o h a c e la c la s e »
[ A M B 9 5 ] . L o s colaboradores s o n a q u e l l a s c la s e s n e c e
s a r ia s p a r a p r o v e e r a u n a c l a s e c o n l a i n f o r m a c i ó n n e c e
s a r ia p a r a c o m p le t a r u n a r e s p o n s a b ilid a d . E n g e n e r a l,
u n a c o la b o r a c ió n im p lic a u n a s o lic it u d d e in f o r m a c ió n
o u n a s o lic it u d d e a lg u n a a c c ió n .
C lases
L a s p a u t a s b á s i c a s p a r a i d e n t i f i c a r c la s e s y o b j e t o s s e
p r e s e n ta r o n e n e l C a p í t u lo 2 0 . R e s u m ie n d o , lo s o b je t o s
s e m a n if ie s t a n e n u n a v a r ie d a d d e f o r m a s ( S e c c ió n
2 0 .3 . 1 ) : e n tid a d e s e x te r n a s , c o s a s , o c u r r e n c ia s o s u c e
s o s , r o le s , u n id a d e s o r g a n iz a t iv a s , lu g a r e s , o e s t r u c t u
ra s . U n a té c n ic a p a r a id e n t ific a r lo s e n e l c o n te x to d e u n
p r o b le m a d e l s o f t w a r e e s r e a liz a r u n a n á lis is g r a m a t i
c a l c o n l a n a r r a t i v a d e p r o c e s a m i e n t o p a r a e l s is t e m a . ib)
www.FreeLibros.org
T o d o s lo s n o m b r e s s e t r a n s f o r m a n e n o b je t o s p o t e n c ia
le s . S i n e m b a r g o , n o t o d o o b j e t o p o t e n c i a l p o d r á F IG U R A 2 1 .2 . a ) D iagram a de casos de uso de alto nivel.
in c lu ir s e e n e l m o d e lo . U n o b je t o p o t e n c ia l d e b e s a tis b) D iagram a de casos de uso detallado.
368
CAPÍTULO 21 ANÁLISIS O R I E N T A D O A O B J E T O S
R e sp o n sa b ilid a d e s
¿Cómo determinar si merece la
www.FreeLibros.org
se las «tarjetas índice» creadas com o p arte del m odelo Si una clase tiene ana listo excesivamente larga de
CRC p ara incluir el tipo de la clase y sus característi responsobilidodes, tal vez deberla considerarsesu división
cas (Fig. 21.3). en varias clases menores.
369
I N GEN IE RI A DEL S O F TW A R E . UN EN F O Q U E P R Á C T I C O
P ara d eterm inar si la inteligencia del sistem a está sab ilid ad no d eb e com p artirse, de m an era general,
d istrib u id a eq u itativ am en te, las resp o n sa b ilid a d es e n tre v a ria s clases. Si la in fo rm a c ió n e stá d istri
d e fin id a s en ca d a ta rje ta ín d ic e d el m o d e lo C R C bu id a, el softw are se to rn a m ás d ifícil de m antener
d eb en ser ev alu ad as p ara d e te rm in a r si ca d a clase y probar.
p o see u n a lista de re sp o n sa b ilid a d e s e x tra o rd in a 5. Compartir responsabilidades entre clases relacio
riam en te grande. E sto in d ic a un a co n c e n tra ció n de nadas cuando sea apropiado. E xisten m uchos casos
inteligencia. A dem ás, las responsabilidades de cada en los cuales u n a gran variedad de objetos exhibe el
clase d e b en m o stra r el m ism o niv el de abstracción. m ism o com portam iento al m ism o tiem po. Com o un
P o r e je m p lo , e n tre la lista de o p e ra c io n e s de una ejem p lo , considere un videojuego que debe mostrar
clase ag reg ad a lla m a d a C om probación de cuenta los sig u ien tes objetos: ju gador, cuerpo-del-juga-
ex iste n dos resp o n sab ilid ad es: saldo-de-la-cuenta dor, brazos-del-jugador,cabeza-del-jugador. Cada
y verificar-talones-cobrados. L a prim era operación uno de estos atributos tiene sus propios atributos (p.e.:
(re s p o n s a b ilid a d ) im p lic a u n c o m p le jo p ro c e d i p o sició n , orientación, color, velo cid a d ), y todos
m iento m atem ático y lógico. L a segunda es un a sim deben actualizarse y visualizarse al m o v er el usua
ple a ctiv id ad p ara e m p le a d o s. D eb id o a que estas rio el jo y stic k . L as re sp o n sab ilid ad es actualizar y
d o s a c tiv id a d e s n o e s tá n al m ism o n iv e l d e a b s visualizar d eben, p o r lo tan to , co m p artirse por los
tracció n , verificar-talones-cobrados debe situarse objetos señalados. El ju gad or sabe cuán d o algo ha
d e n tro de las re sp o n sa b ilid a d e s de la c la se C om cam biado y se requiere actualizar; colabora con los
probación de entradas, la cu al está co n te n id a en o tro s o b je to s p a ra a lc a n z a r u n a n u ev a posición u
la clase agregada C om probación de cuenta. o rie n ta c ió n , p e ro c a d a o b je to c o n tro la su propia
visualización.
Nombre de la clase:
Colaboradores
Tipo de la clase: (dispositivo, propiedad, rol, evento,...)
Características de la clase: (tangible, atómica, concurrente,...) L as clases c u m p le n c o n sus re sp o n sab ilid ad es de u n a
Responsabilidades: Colaboradores: , d e las d o s sig u ie n te s m an eras: (1) u n a c la se puede
u sar sus p ro p ias o p e racio n es p a ra m an ip u la r sus pro
p io s atributos, c u m p lie n d o p o r lo tan to con una res
p o n s a b ilid a d p a rtic u la r, o (2) p u e d e c o la b o ra r con
o tra s clases.
W irfs-B rock [W IR90] y sus colegas definen las cola
boraciones de la siguiente form a:
L as colaboraciones representan solicitudes de un cliente a
un serv id o r en el cu m p lim ien to de una responsabilidad del
F IG U R A 2 1 .3 . Un modelo CRC de tarjeta índice. cliente. U na colaboración es la realización de un contrato entre
el cliente y el servidor... D ecim os que un objeto colabora con
otro, si para ejecutar una responsabilidad necesita enviar cual
2. Cada responsabilidaddebe establecerse lo más gene quier m ensaje al otro objeto. U na colaboración sim ple fluye en
ral posible. E sta directriz im plica que las resp o n sa una dirección, representando una solicitud del cliente al servi
b ilid ad es g en erales (ta n to los atrib u to s c o m o las dor. D esde el punto de vista del cliente, cada una de sus cola
boraciones está asociada con una responsabilidad particular
operaciones) d eben residir en la parte alta de la je ra r- im plem entada por el servidor.
quía de clases (puesto que son genéricas, se aplica
rán a to d a s las su b c la se s). A d ic io n a lm e n te , debe
usarse el polim orfism o (C apítulo 20) p ara d efinir las
operaciones que generalm ente se aplica a la super-
clase, pero que se im plem en tan de m an era diferente
CLAVE
en cada u n a de las subclases. Un objeto servidor colabora con un objetos cliente
en un esfuerzo por llevar o cabo una determinada
3. La información y el comportamiento asociado a ella,
responsabilidad. la colaboración implica el paso de mensajes.
debe encontrarse dentro de la m ism a clase. E sto
im p lem en ta el p rin c ip io O O de e n c a p su la m ie n to
(C apítulo 20 ). L os datos y p rocesos que m anipulan Las colaboraciones identifican relaciones entre cla
esto s d ato s d e b en em p aq u etarse co m o u n a unidad ses. C uando todo un conjunto de clases colabora para
cohesionada. satisfacer algún requisito, es posible organizarlas en un
4. La información sobre un elemento debe estar loca subsistem a (un elem ento del diseño).
lizada dentro de una clase, no distribuida a través L as c o lab o racio n es se id en tifican determ inando si
www.FreeLibros.org
de varias clases. U n a clase sim ple debe asu m ir la u n a clase puede satisfacer cada responsabilidad. Si no
resp o n sab ilid ad de alm acenam iento y m anipulación puede, entonces necesita interactuar con otra clase. De
de un tip o e sp ecífico de in fo rm ació n . E sta re sp o n aquí surge'lo que hem os llam ado u n a colaboración.
370
CAPÍTULO 21 A NÁ LI SI S O R IE N TA D O A O B JE T O S
www.FreeLibros.org
6 Vea una explicación de las clases deH ogarseguroen la Sección
2 0 .3 .
37 1
IN GE NI E RÍ A DEL S OFT W ARE . UN EN F O Q U E P R Á C T I C O
tantes que surgen al em erg er clases y subclases. U sa n m en ta un o o m ás co n tra to s [W IR 90] con sus colabo
do la n o tació n U M L p odem os c re a r gran v ariedad de rad o re s externos. U n c o n tra to es una lista esp ecífica
diagram as. D ebe crearse u n a estructura de generaliza- de so licitu d es que los co lab o rad o res p u e d en hacer a
ción-especialización p ara las clases identificadas. u n subsistem a'.
P ara ilustrarlo co n sid ere el o b jeto sensor d efin id o
para H ogarSeguro y m ostrado en la Figura 21.4. Aquí,
la generalización, sensor, se refin a en u n co n ju n to de Sensor
especializaciones: sensor de entrada, sensor de hum o
y sensor de m ovim iento. L os atributos y operaciones A trib u to s O p e ra c io n e s
identificados en el sensor son h eredados p o r las e sp e
cializaciones de la clase. H em os cread o u n a je ra rq u ía
de clases sim ple.
E n o tro s c a so s, un o b je to re p re s e n ta d o se g ú n el
m odelo inicial puede estar com puesto realm ente de un Sensor Sensor S ensor
núm ero de partes las cuales p u ed en definirse a su vez de entrada de hum o d e m o v im ie n to
com o objetos. E sto s objetos agregados p u ed en re p re
se n ta rse co m o u n a e stru c tu ra co m p o n en te-a g reg a d o
[ER I97] y se d efinen usando la n o tació n representada F IG U R A 2 1 .4 .a Diagram a de clases que ¡lustra la relación
en la F ig u ra 21.5. E l ro m b o im p lica u n a re la c ió n de de generalización-especialización.
ensam b laje. D ebe n o tarse que las lín eas de co n ex ió n
pued en aum entarse con sím bolos adicionales (no m o s
trados) para rep resen tar cardinalidad, que se adaptan de
la n o tació n del m odelo entidad-relación descrito en el
C apítulo 12.
L as rep resentaciones estructurales p ro v een al an a
lista de los m edios p ara p articio n ar el m odelo CRC y
p ara rep resen tar esta p artició n gráficam ente. L a ex pan
sión de cad a clase ap o rta los d etalles n e c e sa rio s para
rev isió n y p ara el subsiguiente diseño.
www.FreeLibros.org
7 Recuerde que las clases interactúan usando una filosofía cliente/ser
vidor. En este caso el subsistem a es el servidory los colaboradores
externos los clientes.
372
CAPÍTULO 21 AN Á LIS IS O RI EN TA D O A O B J E T O S
temas, como se muestra en la figura, pudiera referen- sensor (Figs. 21.5 y 21.6); para el sistem a, suceso sen
ciarse toda la estructura a través de un simple icono sor y alarm a audible se crearán también estructuras si
(la carpeta de ficheros). Las referencias de paquetes estos objetos necesitan objetos ensamblados.
se crean generalmente para cualquier estructura que Las flechas discontinuas mostradas en la parte supe
posea múltiples objetos. rior de la Figura 21.7 representan relaciones de depen
Al nivel más abstracto, el modelo de AOO conten dencia entre los paquetes que se muestran. Sensor
drá solamente referencias de paquetes tales como las depende del estado del paquete suceso sensor. Las fle
que se ilustran al inicio de la Figura 21.7. Cada una de chas continuas representan composición. En el ejem
las referencias se expandirá a una estructura. Se ilus plo, el paquete sistem a está compuesto por los paquetes
tran las estructuras para los objetos panel de control y panel de control, sensor y alarm a audible.
www.FreeLibros.org
8 Otros térm inos para relación son asociación [RUM91] y conexión 9 Es im portante notar que esta e s una salida de la n atu ra le z a bidi-
[COA91]. " reccional de las relaciones usadas en el m odelado de d a to s (C apí
tulo 12).
373
IN GE NI E RÍ A DEL S O F TW A RE . UN E N F O Q U E P R Á C T I C O
L o s p a s o s a n t e r io r m e n t e m o s t r a d o s c o n t in ú a n h a s ta
q u e s e p r o d u z c a u n m o d e lo o b je t o - r e la c ió n c o m p le t o .
E n e l d e s a r r o llo d e u n m o d e lo o b je t o - r e la c ió n , e l a n a
lis t a a ñ a d e a ú n a lg u n a o t r a d im e n s ió n a l m o d e lo d e a n á
l i s i s g e n e r a l . N o s o l a m e n t e s e i d e n t i f i c a n la s r e l a c i o n e s
e n t r e o b j e t o s , s i n o q u e s e d e f i n e n t o d a s la s v í a s i m p o r
t a n te s d e m e n s a je s ( C a p í t u l o 2 0 ) . E n n u e s t r a d e s c r ip
c i ó n d e l a F i g u r a 2 1 . 7 , h i c i m o s r e f e r e n c i a a la s f l e c h a s
q u e c o n e c ta n s ím b o lo s d e p a q u e te s . T a m b ié n s o n v ía s
d e m e n s a je s . C a d a f l e c h a i m p l i c a e l i n t e r c a m b i o d e m e n
F IG U R A 2 1 .7 . Modelo de análisis con referencias a paquetes. s a je s e n t r e s u b s i s t e m a s e n e l m o d e l o .
E l m o d e lo C R C y e l d e o b je t o - r e la c ió n r e p r e s e n t a n e le 5. R e v is a r e l m o d e lo o b je t o - c o m p o r t a m ie n t o p a r a v e r i
m e n to s e s tá t ic o s d e l m o d e lo d e a n á lis is O O . A h o r a e s e l f i c a r e x a c t it u d y c o n s is te n c ia .
m o m e n to p a r a h a c e r u n a t r a n s ic ió n a l c o m p o r ta m ie n to
C a d a u n o d e e s t o s p a s o s s e d i s c u t e e n la s s e c c io n e s
d i n á m ic o d e l s is t e m a o p r o d u c t o O O . P a r a e je c u t a r e s te
s ig u ie n te s .
p a s o d e b e m o s r e p r e s e n ta r e l c o m p o r t a m ie n t o d e l s is t e
m a c o m o u n a f u n c ió n d e s u c e s o s e s p e c íf ic o s y tie m p o .
21.6.1. Id e n tific a c ió n d e s u c e s o s con c a s o s d e uso
•
¿Cuáles son los posos C o m o v im o s e n la S e c c ió n 2 1 .4 .1 , e l c a s o d e u s o
o seguir poro construir un r e p r e s e n t a u n a s e c u e n c ia d e a c t iv id a d e s q u e in c lu y e n
modelo objetos-tomportomiento? a a c to r e s y a l s is t e m a . E n g e n e r a l, u n s u c e s o o c u r r e
c a d a v e z q u e u n s is t e m a O O y u n a c t o r ( r e c u e r d e q u e
E l m o d e lo o b je to - c o m p o r ta m ie n to in d ic a c ó m o r e s u n a c to r p u e d e s e r u n a p e rs o n a , u n d is p o s itiv o o in c lu
p o n d e r á u n s is t e m a O O a s u c e s o s e x t e r n o s o e s t í m u lo s . s o u n s is t e m a e x t e r n o ) in t e r c a m b ia n in fo r m a c ió n .
P a r a c r e a r e l m o d e lo , e l a n a lis t a d e b e e je c u t a r lo s R e c o r d a n d o la e x p lic a c ió n d a d a e n e l C a p ítu lo 1 2 , es
s ig u ie n te s p a s o s : im p o r t a n t e r e c o r d a r q u e u n s u c e s o e s B o o le a n o . E s to
1. E v a lu a r to d o s lo s c a s o s d e u s o ( S e c c ió n 2 1 .4 . 1 ) p a r a e s , u n s u c e s o n o e s la in f o r m a c ió n q u e s e in t e r c a m
c o m p r e n d e r t o t a lm e n t e la s e c u e n c ia d e in t e r a c c ió n b ia , e s e l h e c h o d e q u e la in f o r m a c ió n h a s id o in t e r
d e n t r o d e l s is t e m a . c a m b ia d a .
2 . I d e n t if ic a r s u c e s o s q u e d i r ig e n la s e c u e n c ia d e in t e r U n c a s o d e u s o s e e x a m in a p o r p u n to s d e in te r c a m
a c c ió n y c o m p r e n d e r c ó m o e s to s s u c e s o s s e r e la c io n a n b io d e in f o r m a c ió n . P a r a ilu s t r a r lo , r e c o n s id e r e e l c a s o
c o n o b je t o s e s p e c íf ic o s . d e u s o d e s c r ito e n la S e c c ió n 1 1 .2 .4 :
www.FreeLibros.org
(Figura 11.2) para determ inar si el sistem a está listo para
de uso.
recibir datos. Si el sistem a no está listo , el propietario debe
4 . C o n s t r u ir u n d ia g r a m a d e t r a n s ic ió n d e e s ta d o s p a r a cerrar físicam ente ventanas y puertas de tal m anera que el
e l s is t e m a . indicador de disponibilidad esté p resente. [Un indicador de
374
CAPÍTULO 21 ANÁLI SI S O R I E N T A D O A O BJ E TO S
E n g e n e r a l, la g u a r d a d e u n a t r a n s ic ió n d e p e n d e
21.6.2. R e p r e s e n ta c io n e s d e e s ta d o s
u s u a lm e n te d e l v a lo r d e u n o o m á s a t r ib u t o s d e u n o b je
En el contexto de sistemas OO deben considerarse dos to . E n o t r a s p a la b r a s , la c o n d ic ió n d e g u a r d a d e p e n d e
caracterizaciones de estados: (1) el estado de cada obje d e l e s ta d o p a s iv o d e l o b je t o .
to cuando el sistema ejecuta su función, y (2) el estado U n a acción o c u r r e c o n c u r r e n t e m e n t e c o n l a t r a n s i c i ó n
del sistema observado desde el exterior cuando éste eje o c o m o u n a c o n s e c u e n c ia d e e lla y g e n e r a lm e n t e im p li c a
cuta su función. u n a o m á s o p e r a c io n e s ( r e s p o n s a b ilid a d e s ) d e l o b je t o . P o r
E1 estadode un objeto adquiere en ambos casos carac e j e m p l o , l a a c c i ó n c o n e c t a d a c o n e l s u c e s o contraseña
terísticas pasivas y activas [CHAR93], Un estado pasi
www.FreeLibros.org
introducida ( F i g . 2 1 . 9 ) e s u n a o p e r a c i ó n q u e a c c e d e a u n
vo es simplementeel estado actual de todos los atributos o b je t o c o n tr a s e ñ a y r e a liz a u n a c o m p a r a c ió n d í g it o a d í g i
de un objeto. Por ejemplo, el estado pasivo del objeto t o p a r a v a lid a r la c o n tr a s e ñ a in tr o d u c id a .
375
INGE NIE RÍA DEL S OFT W ARE . UN E N F O Q U E P R Á C T I C O
J E S 1 Z M £ Í I __________________________________________________________________________________
______________________________________________ s
L os m étodos de A O O p erm iten a un ingeniero del soft los re q u isito s esp e cific ad o s p o r el clien te tal y como
w are m o d elar un p ro b lem a representando las caracte éstos afectan a la aplicación a construir.
rísticas tanto dinám icas com o estáticas de las clases y El proceso de A O O co m ien za con la definición de
sus relaciones com o com ponentesprincipales del m o d e casos de uso (escen ario s que d escrib en cóm o se v a a
lado. C om o los m étodos precedentes, el lenguaje u n ifi u tilizar el sistem a). L a técnica de m odelado de clases-
cado de m odelado U M L construye un m odelo de análisis responsabilidades-colaboraciones (C R C ) se aplica para
con las siguientes características: (1) rep resen tación de d o c u m e n ta r las clases y sus atributos y operaciones.
las clases y jerarq u ías de clases, (2) creación de m o d e T am bién p ro p o rc io n a u n a vista inicial de las colabora
los o b jeto-relación, y (3 ) o btención de m odelos objeto- ciones que ocurren entre los objetos. El siguiente paso
com portam iento. en el A O O es la clasificación de objetos y la creación
El análisis de sistem as orientados a objetos se re ali de u n a je ra rq u ía de clases. L o s sistem as (paquetes) se
za a m uchos niveles diferentes de abstracción. E n l o s pueden u tiliz a r para en ca p su lar o b jeto s relacionados.
niveles de em presa o de negocio las técnicas asociadas E l m o d e lo o b je to -re la c ió n p ro p o rc io n a inform ación
con e l an álisis se p u ed en co n ju g a r con el en fo q u e de sobre las c o n ex io n es entre las clases, m ientras que el
www.FreeLibros.org
in g e n ie ría del p ro ceso de negocio. A estas técn icas a m odelo objeto-com portam iento rep re se n ta el compor
m enudo se las llam a de análisis del dom inio. E n el nivel tam iento de l o s o b jeto s individualm ente y el global de
de im plem en tació n el m odelo de objetos se cen tra en todo el sistem a.
376
CAPÍTULO 21 A N Á LI S IS O RI EN TA D O A O B JE T O S
[ALH98] Alhir, S.S., UML m a Nutshell, O ’Reilly & Asso [FIC92] Fichman, R.G., y Kemerer, C.F., O bject-O riented
ciates, Inc. 1998. a nd C onventional A n a ly sis and D esign M ethodologies,
[AMB95] Ambler, S., «Using Use-Cases», Software Deve Computer, vol. 25, n.° ÍO,Octubre 1992,pp. 22-39.
lopment, Julio 1995,pp. 53-61 [FTN96] Fingar, P., The B lu ep rin tfo rB u sin ess O bjects, Cam
[ARA89] Arango, G., y Prieto-Diaz, R., «Domain Analysis: bridge University Press, 1996.
Concepts and Research Directions», D om ain A nalysis: [FIR93] Firesm ith, D.G., Object. O riented R eq u erim en ts
A cquisition o f R eusable Inform ation f o r Software Cons- A nalysis and L ogical D esign, Wiley, 1993.
truction (G. Arango y Prieto-Diaz, eds.), IEEE Computer
Society Press, 1989. [JAC92] Jacobson, I., Object-Oriented Software Engineering,
Addison-Wesley, 1992.
[BER93] Berard, E.V., Essays on O bject-O riented Software
Engineering, Addison-Wesley, 1993. [JAC99] Jacobson, I., Booch, G., y Rumbaugh, J., U nified
Software D evelopm ent Process, Addison-Wesley, 1999.
[BEN99] Beneth, S., S. McRobb y R. Farmer, O bject-O rien
ted System A nalysis and D esign Usign UNL, McGraw- [MAT94] M attison, R., The O b ject-O rien ted E nterprise,
Hill, 1999. McGraw Hill, 1994.
[B0094] Booch, G., O bject-O riented A nalysis and D esign, [MON92] Monarchi, D.E., y Puhr, G.I., «A Research Typo-
2 r ed., Benjamín Cummings, 1994. logy for Object-Oriented Analysis and Design», CACM,
vol. 35, n.° 9, Septiembre 1992,pp. 35-47.
[B0099] Booch, G., Jacobson, I.,y Rumbaugh, J., The Unified
Modeling Language User Guide, Addison-Wesley, 1999. [RUM91] Rumbaugh, J., et al., O bject O rientedM odelling
[CAR98] Carmichael,A., Developing Business Objects, SIGS and D esign, Prentice-Hall, 1991.
Books, 1998. [RUM99] Rumbaugh, J., Jacobson, I.,y Booch, G., The U ni
[CHA93] de Champeaux, D., D. Lea, y P. Faure, O bject- fie d M o d ellin g Language R eference M a n u a l, Addison-
O riented System D evelopm ent, Addison-Wesley, 1993. Wesley, 1999.
[C0A91] Coad, P., y E. Yourdon, O bject-O riented A nalysis, [SUL94] Sullo, G.C., O bject Engineering, Wiley, 1994.
2.a ed., PrenticeHall, 1991 [TAY95] Taylor, D.A., B usiness E ngineering w ith O b ject
[EEL98] Eeles, P,. y Simms, O., B uilding B usiness Objects, Technology, Wiley, 1995.
Wiley, 1998.
[WIR90] Wirfs-Brock,R., Wilkerson,B., y Weiner, L., Desig-
[ERI98] Eriksson, H.E., y Penker,M., UMLToolkit, Wiley, 1998. ning O bject O riented Software, Prentice-Hall, 1990.
21.1. Hágase con uno o más libros sobre UML y compárelo 21.5. Escriba un caso de uso para el sistema HogarSeguro. Los
con el análisis estructurado (Capítulo 12) utilizando las dimen casos de uso deben tratar el escenario requerido para establecer
siones de modelado propuestas por Fichman y Kemerer una zona de seguridad. Una zona de seguridadlleva asociado un
[FIC92] en la Sección 21.1.1. conjuntode sensores que pueden ser accedidos, activados y desac
tivados no individualmente sino en conjunto. Debe ser posible
21.2. Desarrolle una clase-presentación sobre un diagrama
definir hasta diez zonas de seguridad. Sea creativo, pero intente
estático o dinámico de UML. Presente el diagrama en el con mantenerse dentro de lo definido para el panel de control del sis
texto de un ejemplo sencillo, pero intente mostrar el suficien tema tal y como fue definido previamente en este libro.
te nivel de detalle como para demostrar los aspectos más
importantes del tipo de diagrama elegido. 21.6. Desarrolle un conjunto de casos de uso para el sistema
SSRB del Problema 12'. 13.
21.3. Conduzcaun análisis del dominio para una de las siguien
tes áreas: Tendrá que hacer varias suposiciones sobre la form a de
interacción del usuario con el sistema.
a) Un sistema para almacenarlos expedientes de los alumnos
de una universidad. 21.7. Desarrolle un conjunto de casos de uso para alguna de
las siguientes aplicaciones:
b) Una aplicación de comercio electrónico (p.e. ropa, libros,
a) Software para un asistente personal electrónico de propó
equipos electrónicos, etc.)
sito general.
c) Un servicio al cliente para un banco.
b) Software para un videojuego de su elección.
d) El desarrollo de un videojuego. c) Software para el sistema de climatización de un auto
www.FreeLibros.org
e) Un área de aplicación propuesta por su instructor. móvil.
21.4. Describa con sus propias palabras la diferencia entre las d) Software para un sistema de navegación de un automóvil.
vistas estática y dinámica de un sistema. e) Un sistema propuesto por su instructor.
377
I N GEN IE RI A DEL S O F TW A RE . UN EN F O Q U E P R Á C T I C O
Lleve a cabo una pequeña investigación (unas pocas horas) en 21.13. Desarrolle un modelo objeto-comportamiento para el
el dominio de la aplicación y conduzca una reunión TFEA producto o sistema elegido en el problema 21.7. Asegúrese de
(Capítulo 11) con sus compañerospara desarrollar unos requi listar todos los sucesos,proporcionar la traza de sucesos, desa
sitos básicos (su instructor le ayudará a coordinarlo). rrollar un diagrama de flujo de sucesos y definir diagramas de
21.8. Desarrolle un conjunto completo de tarjetas CRC del estado para cada clase.
producto o sistema elegido en el problema anterior.
21.14. Describa con sus propias palabras la forma de deter
21.9. Dirija una revisión de las tarjetas CRC con sus colegas.
minar los colaboradores de una clase.
¿Cuántas clases, responsabilidades y colaboraciones adicio
nales ha añadido a consecuencia de la reunión? 21.15. ¿Qué estrategia propondría para definir subsistemasen
21.10. Desarrolle una jerarquía de clases para el producto o colecciones de clases?
sistema elegido en el Problema 21.7.
21.16. ¿Qué papel desempeña la cardinalidad en el desarrollo
21.11. Desarrolle un conjunto de subsistemas (paquetes) para
de un modelo objeto-relación?
el producto o sistema elegido en el Problema 21.7.
21.12. Desarrolle un modelo objeto-relaciónpara el producto 21.17. ¿Cuál es la diferencia entre los estados pasivo y activo
o sistema elegido en el Problema 21.7. de un objeto?
www.FreeLibros.org 378
C A P ÍT U L O
L d iseñ o o rien tad o a o b jeto s transform a el m odelo de an álisis cread o usando análisis
E orientado a objetos (C apítulo 21), en un m odelo de diseño que sirve com o antep ro y ecto
para la construcción de softw are. El trabajo de diseñador de softw are puede ser in tim i
dante. G am m a y sus colegas [G A M 95] proveen un panoram a razonablem ente ex acto del D O O
cuando d eclaran que:
El diseño de softw are orientado a objeto s es difícil, y el diseño de softw are reusable orientado a o b je
tos es aun m ás difícil. Se deb en identificar lo s ob jeto s p ertin en tes, clasificarlos d entro de las clases en la
granularidad correcta, definir interfaces de clases y je ra rq u ía s de h erencia y establecer relaciones clave entre
ellos. El diseño debe ser específico al problem a que se tien e entre m anos, pero suficientem ente general para
adaptarse a problem as y req u erim ien to s futuros. A d e m ás se d eberá e v ita r el rediseño, o por lo m enos m in i
m izarlo. L o s d iseñ ad o res e x p erim en tad o s en O O dicen que un diseño reu sab le y flexible es difícil, si no
im posible de o b ten er « b ien » , la prim era vez. A ntes de que un diseño sea term in ad o , usu alm en te tratan de
reutilizarlo varias veces, m odificándolo cada vez.
VISTAZO RÁPIDO
¿Qué es? El diseño d e softw are Orientado el principio, pero m uchas o tra s pueden nentes: la in terfazd eu su ario , la g e stió n
a objetos req u iere la definición d e una ser re u tiliz ad a s, si s e reconocen los de datos y los m ecanism os d e adminis
arq u itec tu ra d e softw are m u lticap a, la patro n es d e diseño apropiados. El DOO tración d e tareas. Ei diseño d e obj etos se
esp ecificaciónde su b sistem as que re a establece un anteproyecto d e d iseñ o ,q u e cen tra e n los d e ta lle s internos d e c a d a
lizan fu n cio n es n e c e s a ria s y proveen perm ite a l ingeniero d e softw are definir c lase, definición d e atributos. operacio
soporte de infraestructura, u n a d escrip la arquitectura OO, e n form a que maxi- n e s y d e ta lle s d e l os m en sq es.
ción d e objetos (clases),que so n lo sb lo - mice la reutilización; d e e s ta m anera, se ¿Cuál es e l p r o d u c to «Munido? El mode
qu es d e construccióndel sistem a, y una m ejora la velocidad del desarro llo y la lo d c diseño OO a b a rc a arquitectura de
descripciónde los m ecanism osdecom u- c a lid a d del producto term inado. softw are, descripción d e la interfaz d e
nicación, que perm iten que los datos Bu- ¿C uáles s o n los p a s o s ? E l DOO se divide usu ario , com p o n en tes d e g e stió n d e
ya n e n tre la s c a p a s, s u b s is te m a s y e n dos g ra n d e s actividades: diseño del datos. m ecanism osde ad m in istració n de
objetos. El Diseño O rien tad o a O bjetos siste m a y d ise ñ o d e objetos. El diseño de tareas y descripciones detalladas d e cada
(DOO), cum ple todos estos requisitos. sistem a c rea l a arquitectura del produc una d e la s clases u sa d a s e n el sistema.
¿ Q u ié n l o h a c e ? El D O O lo realiza un to definiendo una serie d e «capas», que ¿ C ó m o p u e d o «wtar se g u ro d e q u e lo
ingeniero d e software. cum plen funcionesespecíficas d e lsiste - h e h e c h o c o r r e c t a m e n t e ? En c a d a
¿Por q u é e s i m p o r t a n t e ? Un sistem a m a e identifica 1a s clases, q u e son encap- e ta p a , lo s e le m e n to s d e l m o d e lo d e
orientado a objetosutiliza la s definicio su la d a s p o r los su b siste m asq u ere sid en d ise ñ o o rientado a objetos son re v isa
nes d e la s cla se s d eriv ad as del m odelo en c a d a capa. dos por clarid ad , corrección, integridad
d e an álisis. A lg u n a s d e e s ta s defm icio- A dem ás, el diseño d e sistem as incor y c o n siste n c ia c o n los r e q u is ito s del
nes ten d rá n q u e ser co n stru id as desd e pora la e sp e cific a ció n d e tre s com po cliente y e n tre ellos.
L a n atu raleza Única del diseño orientado a objetos, reside en su capacidad para construir cua
tro c o n cep to s im p o rtan tes de d iseño de softw are: ab stracció n , o cu ltam ien to (o cu ltació n ) de
inform ación, in dependencia funcional y m odularidad (C apítulo 13). Todos los m étodos de dise
ño p ro cu ran softw are que exhiba estas características fundam entales, pero sólo el D O O provee
un m ecanism o que perm ite al diseñador alcanzar las cuatro, sin com plejidad ni com prom iso.
www.FreeLibros.org
El diseño orientado a objetos, la program ación orientada a objetos, y las pruebas orientadas
a objetos son actividades de construcción para sistem as O O . E n este capítulo se considera el
p rim er paso en la construcción.
379
I N GE NIE RÍA DEL S O F TW A RE . UN E N F O Q U E P R Á C T I C O
E n el C apítulo 13 se introdujo el concepto de u na pirá form a los cim ientos sobre los que la pirám ide se sostie
m ide de diseño p ara el softw are convencional. C uatro ne. La capa fundamental se centra en el diseño de los obje
capas de diseño - - d a to s , arquitectura, interfaz y nivel tos del dom inio (11am adospatronesde diseño). Los objetos
de c o m p o n e n t e s - fuero n definidas y discutidas. P ara del d o m iniojuegan un papel clave, en la construcción de
sistem as orientados a objetos, podem os tam b ién definir la infraestructura del sistem a O O aportando soporte para
un a p irám id e, p ero las cap as son un p o co diferentes. las actividades de interfaz hom bre/m áquina, administra
Refiriéndose a la Figura 22.1, las cuatro capas de la pirá ción (gestión) de tareas y gestión (administración) de datos.
m ide de diseño O O son: L os objetos del dom inio se pueden usar, adem ás, para
La capa subsistem a. C ontiene u n a representación d esarro llarel diseño de la aplicación en s í mism a.
de cada uno de los subsistem as, p ara p erm itir al soft
w are conseguir sus requisitos definidos p o r el cliente e 22.1.1. E n fo q u e c o n v e n c io n a l v s. O O
im p lem en tar la infraestructura q u e soporte los req u eri
Los enfoques convencionalespara el diseño de software
m ientos del cliente.
aplican distintas notaciones y conjunto de heurísticas,
para trazar el m odelo de análisis en un m odelo de dise
Q c /to : ño. R ecordando la Figura 13.1, cada elem ento del mode
En el diseño, configuramos el sistema lo convencional de análisis se corresponde con uno o
f encontramos su forma... m ás capas del m odelo de diseño. A l igual que el dise
hrtr Jwobson, Grsdy Boodi y James Rumbough. ño convencional de softw are, el D O O aplica el diseño
de datos cuando los atributos son representados, el di
La capa de clases y objetos. C ontiene la je rarq u ía señ o de in te rfa z cu an d o s e d e sa rro lla un m o d elo d e
de clases, q u e p erm iten al sistem a ser cread o usando m ensajería, y diseño a nivel de com ponentes (procedi-
generalizaciones y cada v ez esp ecializacionesm ás acer m ental), para operaciones de diseño. Es im portante notar
tadas. E sta capa tam b ién contiene representaciones. que la arquitectura de un diseño OO tiene m ás que ver
La capa de mensajes. C ontiene detalles de diseño, con la colaboración entre objetos que con el control de
que p erm ite a cada objeto com unicarse con sus colabo flujo entre com ponentes del sistem a.
radores. E sta capa establece interfaces externas e in ter A pesar de que existen sim ilitudes entre los diseños
nas p ara el sistem a. convencionales y 0 0 , se h a optado p o r renom brar las
La capa de responsabilidades. C ontiene estructu capas de la pirám ide de diseño, para reflejar con mayor
ras de datos y diseños algorítm icos, p ara tod o s los atri precisión la naturaleza de un diseño O O . L a Figura 22.2
buto s y operaciones de cada objeto. ilustra la relación entre el m odelo de análisis 0 0 (Capí
tulo 21) y el m odelo de diseño que se derivará de ahí'.
Bisafto íNusaujssjstemas
Ei m o d elo d e diseño
L a pirám ide de diseño se centia exclusivam ente en el
diseño de un p roducto o sistem a específico. O bserve, sin F IG U R A 2 2.2. Transform ación de un m odelo de análisisOO
em bargo, que existe otra capa de diseño, y que esta capa a un m odelo de diseño OO.
www.FreeLibros.org
1 Es im p o rtan te h acer n o tar que la derivación n o e s siempre
evidente. Para profundizar véase [DAV95],
380
CAPÍTULO 22 DISEÑO ORIE NT ADO A O B JE T O S
E l d is e ñ o d e s u b s is te m a s s e d e r iv a c o n s id e r a n d o lo s • c o n tin u id a d : la h a b ilid a d p a r a h a c e r p e q u e ñ o s c a m
r e q u e r im ie n to s g lo b a le s d e l c lie n t e ( r e p r e s e n ta d o s p o r b io s e n u n p r o g r a m a y q u e s e r e v e le n h a c ie n d o lo s
lo s c a s o s d e u s o ) y l o s s u c e s o s y e s t a d o s q u e s o n e x t e r c a m b io s p e r tin e n t e s e n u n o o m u y p o c o s m ó d u lo s .
n a m e n te o b s e r v a b le s ( e l m o d e lo d e c o m p o r t a m ie n t o d e • p r o t e c c ió n : u n a c a r a c t e r í s t ic a a r q u it e c t ó n ic a , q u e
o b j e t o s ) . E l d i s e ñ o d e c la s e s y o b j e t o s e s t r a z a d o d e l a r e d u c e la p r o p a g a c ió n d e e f e c t o s c o la te r a le s , s i o c u
d e s c r ip c ió n d e a t r ib u t o s , o p e r a c io n e s y c o la b o r a c io n e s r r e u n e r r o r e n u n m ó d u lo d a d o .
c o n t e n id a s e n e l m o d e lo C R C . E l d is e ñ o d e m e n s a je s e s
m a n e ja d o p o r e l m o d e lo o b je t o - r e la c ió n , y e l d is e ñ o d e
r e s p o n s a b ilid a d e s e s d e r iv a d o d e l u s o d e a t r ib u t o s , o p e
r a c io n e s y c o la b o r a c io n e s d e s c r it o e n e l m o d e lo C R C . Referencia W e b ^
F ic h m a n y K e m e r e r [ F I C 9 2 ] s u g ie r e n d ie z c o m p o Una referencia que responde a la pregunta ¿qué hace
n e n te s d e d is e ñ o m o d e la d o , q u e p u e d e n u s a r s e p a r a c o m que un diseño orientado o objetos sea bueno?, puede
p a r a r v a r io s m é to d o s c o n v e n c io n a le s y o r ie n t a d o s a encontrarse en: www.kinetico.com/ootips/ood-
o b je t o s : principles.html
1. r e p r e s e n ta c ió n d e la je r a r q u í a d e m ó d u lo s .
2 . e s p e c i f i c a c i ó n d e la s d e f i n i c i o n e s d e d a t o s . D e e s to s c r it e r io s , M e y e r [ M E Y 9 0 ] , s u g ie r e c in c o
p r in c ip io s b á s ic o s d e d is e ñ o , q u e p u e d e n s e r d e d u c id o s
3 . e s p e c i f i c a c i ó n d e l a l ó g i c a procedimental.
p a r a a r q u it e c t u r a s m o d u la r e s : ( 1 ) u n id a d e s lin g ü í s t ic a s
4 . in d ic a c ió n d e s e c u e n c ia s d e p r o c e s o f i n a l - a - f i n a l
m o d u la r e s , ( 2 ) p o c a s in te r fa c e s , ( 3 ) p e q u e ñ a s in t e r f a
(end-to-end)
c e s ( a c o p la m ie n t o d é b il) , ( 4 ) in te r fa c e s e x p lí c it a s y ( 5 )
5. r e p r e s e n t a c i ó n d e e s t a d o s y t r a n s i c i o n e s d e l o s o c u lt a c ió n d e in f o r m a c ió n .
o b je t o s .
6 . d e f i n i c i ó n d e c la s e s y j e r a r q u í a s . ¿Qué principios básicos
7 . a s i g n a c i ó n d e o p e r a c i o n e s a la s c la s e s .
8 . d e f in ic i ó n d e t a lla d a d e o p e r a c io n e s .
9 . e s p e c i f i c a c i ó n d e c o n e x i o n e s d e m e n s a je s .
§ nos guian en el diseño
de arquitecturas modulares?
1 0 . id e n t if ic a c ió n d e s e r v ic io s e x c lu s iv o s . L o s m ó d u lo s s e d e f in e n c o m o u n id a d e s lin g ü í s t ic a s
m o d u la r e s , c u a n d o « c o r r e s p o n d e n a u n id a d e s s in t á c t i
c a s e n e l le n g u a je u s a d o » [ M E Y 9 0 ] , E s d e c ir , e l le n
¿Qué criterio se puede usar
www.FreeLibros.org
• comprensibilidad l a f a c i l i d a d c o n l a q u e e l c o m p o c u a n d o to d a in fo r m a c ió n a c e rc a d e u n c o m p o n e n te se
n e n te d e u n p r o g r a m a p u e d e s e r e n te n d id o , s in h a c e r o c u lta a l a c c e s o e x te r n o , a m e n o s q u e e s a in fo r m a c ió n
r e f e r e n c ia a o t r a in f o r m a c ió n o m ó d u lo s . s e a e s p e c íf ic a m e n te d e f in id a c o m o p ú b lic a .
38 1
I N GEN IE RI A DEL S OFT W ARE . UN E N F O Q U E P R A C T I C O
www.FreeLibros.org
2 Un bloque e s la abstracción de diseño, que permite la representa- 3 Un protocolo e s una descripción formal de los m ensajes, a los que
ción de un objeto agregado. la clase responde.
382
CAPÍTULO 22 D IS E Ñ O OR IE N TA DO A O B J E T O S
www.FreeLibros.org
4 Booch, R um baugh y Jacobson han escrito tres libros muy im por 5 Visibilidad indica si el atributo es público (disponible a través de
tan te s sobre UML. El lector interesad o debe co n su lta r [B 0099], todas las instancias de la clase),privado (disponible sólo para la clase
[RUM99] y LÍAC99] que lo especifica) o protegido (un atributo que puede ser usado por
la clase que lo especifica y por sus subclases).
383
IN GE NI E RÍ A DEL S O F TW A RE . UN EN F O Q U E P R Á C T I C O
El diseño de sistema desarrolla el detalle arquitectóni particiona el modelo de análisis, para definir colecciones
co requerido para construir un sistema o producto. El congruentes de clases,relaciones y comportamiento. Estos
proceso de diseño del sistema abarca las siguientes acti elementos de diseño se definen como subsistema.
vidades:
• Partición del modelo de análisis en subsistemas. (c O N S E Ifl^
• Identificar la concurrencia dictada por el problema. las conceptos de cohesión y acoplamiento (Capítulo 131
• Asignar subsistemas a procesadores y tareas. pueden aplicarse o nivel de subsistemas. Esfuércese
• Desarrollar un diseño para la interfaz de usuario. par alcanzar uno buena Independencia funcional,
cuando diseñe subsistemas
• Elegir una estrategia básica para implementar la
administración (gestión) de datos. En general, todos los elementos de un subsistema
• Identificar recursos globales y los mecanismos de comparten alguna propiedad en común. Y se integran
control requeridos para su acceso. para completar la misma función; deben residir dentro
del mismo producto de hardware, o deben administrar
¿Cuáles son las etapas la misma clase de recursos. Los subsistemas se caracte-
www.FreeLibros.org
6 Hoy en día la m ayoría de las clases de interfaz son parte de una 7 Recuerde que el AOO e s una actividad iterativa. Es totalm ente posi
librería de c o m p o n e n tes de softw are reutilizables. Esto facilita el ble que el m odelo de análisis sea revisado com o consecuencia del
diseño e im plem entación de IGUs (Interfaz gráfica de u su a rio ). trabajo de diseño.
384
CAPÍTULO 22 D IS E Ñ O O R I E N T A D O A O BJ E TO S
• C o n l a e x c e p c i ó n d e u n p e q u e ñ o n ú m e r o d e « c la s e s 6 . D e f i n i r e l m o d e lo d e m e n s a je r ía p a r a la c o m u n ic a
d e c o m u n ic a c ió n » , la s c la s e s in c l u id a s d e n t r o d e l c ió n e n tr e c a p a s .
s u b s i s t e m a d e b e n c o l a b o r a r s ó l o c o n o t r a s c la s e s d e n 7. R e v i s a r e l d i s e ñ o d e c a p a s , p a r a a s e g u r a r q u e e l a c o
t r o d e l s u b s is te m a . p la m ie n to e n tr e c a p a s s e m in im iz a ( u n p r o t o c o lo
• E l n ú m e r o d e s u b s is t e m a s d e b e s e r b a jo . c lie n t e / s e r v id o r p u e d e a y u d a r a r e a liz a r e s ta ta r e a )
• U n s u b s is te m a p u e d e s e r p a r t ic io n a d o in te r n a m e n te ,
8. I t e r a r p a r a r e f in a r e l d is e ñ o d e c a p a s .
p a r a a y u d a r a r e d u c ir la c o m p le jid a d .
C u a n d o d o s s u b s is t e m a s s e c o m u n ic a n e n t r e s í, p u e
d e n e s t a b l e c e r u n enla ce c lien telservid o r o u n e n l a c e 22.2.2. A sig n a c ió n d e c o n c u rre n c ia y s u b s is te m a s
piinto-a-punto (peer-to-peer) [ R U M 9 1 ] . E n u n e n l a c e E l a s p e c to d in á m ic o d e l m o d e lo o b je t o - c o m p o r t a m ie n
c lie n t e / s e r v id o r , c a d a u n o d e lo s s u b s is t e m a s a s u m e u n o t o p r o v e e u n a i n d i c a c i ó n d e c o n c u r r e n c i a e n t r e c la s e s ( o
d e lo s p a p e le s im p lic a d o s , e l d e e l c lie n t e o e l d e l s e r s u b s i s t e m a s ) . S i la s c la s e s ( o s u b s i s t e m a s ) n o s e a c t i v a n
v id o r . E l s e r v ic io f l u y e d e l s e r v id o r a l c lie n t e e n u n a al m i s m o t i e m p o , n o h a y n e c e s id a d p a r a e l p r o c e s a m i e n t o
s o la d i r e c c i ó n . E n u n e n l a c e p u n t o - a - p u n t o , l o s s e r v i c o n c u r r e n t e . E s t o s i g n i f i c a q u e la s c la s e s ( o s u b s i s t e m a s )
c io s p u e d e n f l u i r e n c u a lq u ie r d ir e c c ió n . p u e d e n s e r im p le m e n ta d a s e n e l m is m o p r o c e s a d o r d e
C u a n d o u n s is t e m a e s p a r t ic io n a d o e n s u b s is te m a s , h a r d w a r e . P o r o t r o la d o , s i la s c la s e s ( o s u b s is t e m a s )
se lle v a a c a b o o t r a a c t iv id a d d e d is e ñ o , lla m a d a e s tr a d e b e n a c tu a r e n s u c e s o s a s in c r ó n ic a m e n te y a l m is m o
t if ic a c ió n p o r c a p a s . C a d a c a p a [ B U S 9 6 ] d e u n s is t e m a t ie m p o , s e v e r á n c o m o c o n c u r r e n te s . C u a n d o lo s s u b
0 0 . c o n t ie n e u n o o m á s s u b s is te m a s y r e p r e s e n t a u n s is t e m a s s o n c o n c u r r e n t e s , e x is t e n d o s o p c io n e s d e a l o
n iv e l d if e r e n t e d e a b s tr a c c ió n d e la f u n c io n a lid a d r e q u e - ja m ie n t o : ( 1 ) a lo ja r c a d a s u b s is te m a e n p r o c e s a d o r e s
r id a p a r a c o m p le t a r la s f u n c io n e s d e l s is t e m a . E n la in d e p e n d ie n t e s ó ( 2 ) a l o ja r lo s s u b s is t e m a s e n e l m is m o
m a y o r ía d e lo s c a s o s , lo s n iv e le s d e a b s tr a c c ió n s e d e t e r p r o c e s a d o r y p r o p o r c io n a r s o p o r te d e c o n c u r r e n c ia , s o b r e
m in a n p o r e l g r a d o e n q u e e l p r o c e s a m ie n t o a s o c ia d o la s c a r a c t e r í s t ic a s d e l s is t e m a o p e r a t iv o .
c o n e l s u b s is te m a e s v is i b le a l u s u a r io f in a l.
P o r e je m p lo , u n a a r q u it e c t u r a d e c u a tr o c a p a s d e b e ^C O N S E JO ^.
in c lu ir : ( 1 ) u n a c a p a d e p r e s e n t a c ió n ( e l s u b s is te m a a s o
c ia d o c o n l a in t e r f a z d e u s u a r io ) , ( 2 ) u n a c a p a d e a p l i En la mayoría ríe los casas, unaimplementoción
demultiproceso incrementóla compkjidady el riesgo
c a c i ó n ( e l s u b s is t e m a q u e l l e v a a c a b o p r o c e s o s a s o c ia d o s
técnica. Siempre que sea posible, escojo lo orquitecturo
c o n l a a p l i c a c i ó n ) , (3) u n a c a p a d e f o r m a t o d e d a t o s ( l o s
de procesada más simple que pueda realizar el trobojo.
s u b s is t e m a s q u e p r e p a r a n l o s d a t o s p a r a s e r p r o c e s a d o s ) ,
y ( 4 ) u n a c a p a d e b a s e d e d a to s ( e l s u b s is t e m a a s o c ia d o L a s t a r e a s c o n c u r r e n t e s s e d e f i n e n [R U M 9 1 ] e x a
c o n la a d m in is t r a c ió n d e d a to s ) . C a d a c a p a s e e n c u e n m in a n d o e l d ia g r a m a d e e s ta d o p a r a c a d a o b je t o . S i e l
tr a m á s p r o f u n d a m e n t e d e n t r o d e l s is t e m a , r e p r e s e n t a n f l u jo d e s u c e s o s y tr a n s ic io n e s in d ic a q u e s o lo u n o b je
d o u n p r o c e s a m ie n to m á s e s p e c íf ic o a l a m b ie n te . t o e s tá a c tiv o e n e l t ie m p o , u n h ilo d e c o n t r o l s e h a e s ta
b le c id o . E l h i lo d e c o n t r o l c o n tin ú a , a u n c u a n d o u n
¿Cómo se crea un diseño
§ por capas?
B u s c h m a n n y s u s c o le g a s [ B U S 9 6 ] s u g ie r e n e l
s ig u ie n t e e n f o q u e d e d i s e ñ o p a r a e s t r a t i f i c a c i ó n p o r c a p a s :
o b je t o e n v í a u n m e n s a je a o t r o o b je t o , m ie n t r a s q u e e l
p r im e r o b je t o e s p e r a p o r la r e s p u e s ta . S in e m b a r g o , s i
e l p r im e r o b je t o c o n tin ú a p r o c e s a n d o d e s p u é s d e e n v ia r
u n m e n s a je , e l h i l o d e c o n t r o l s e d iv id e .
1. E s t a b l e c e r l o s c r i t e r i o s d e e s t r a t i f i c a c i ó n p o r c a p a s . L a s ta r e a s e n u n s is t e m a 0 0 s e d is e ñ a n g e n e r a n d o
E s to s ig n if ic a d e c i d ir c ó m o s e a g r u p a r á n lo s s u b s is h ilo s d e c o n t r o l a is la d o s . P o r e je m p lo , m ie n tr a s q u e e l
te m a s e n u n a a r q u it e c t u r a d e c a p a s . s is t e m a d e s e g u r id a d H o g a r S e g u r o m o n i t o r iz a s u s s e n
2. D e t e r m in a r e l n ú m e r o d e c a p a s . M u c h a s d e e lla s s o res , p u e d e t a m b i é n m a r c a r a l a e s t a c i ó n c e n t r a l d e
c o m p lic a n in n e c e s a r ia m e n te ; m u y p o c a s d e b ilit a n la m o n it o r iz a c ió n p a r a v e r if i c a r la c o n e x ió n . Y a q u e lo s
in d e p e n d e n c ia f u n c io n a l. o b je t o s in v o lu c r a d o s e n a m b o s c o m p o r t a m ie n t o s e s tá n
3. N o m b r a r la s c a p a s y a s i g n a r s u b s i s t e m a s ( c o n s u s a c tiv o s a l m is m o t ie m p o , c a d a u n o r e p r e s e n ta u n h i lo
c la s e s e n c a p s u l a d a s ) a u n a c a p a . A s e g u r a r s e d e q u e d e c o n t r o l y c a d a u n o p u e d e s e r d e f in id o c o m o u n a ta re a
la c o m u n ic a c ió n e n t r e s u b s is t e m a s ( c la s e s ) e n u n a d is tin ta . S i la m o n ito r iz a c ió n y m a r c a d o o c u r r ie r a n
c a p a 8, y o t r o s s u b s i s t e m a s ( c l a s e s ) e n o t r a c a p a , s e c u e n c ia lm e n te , p o d r í a im p le m e n t a r s e u n a s o la ta r e a .
s ig u e n la f i lo s o f í a d e d is e ñ o d e la a r q u it e c t u r a . P a r a d e t e r m i n a r c u á l d e la s o p c i o n e s d e a s i g n a c i ó n
4 . D is e ñ a r in te r fa c e s p a r a c a d a c a p a . d e p r o c e s a d o r e s e s a p r o p ia d a , e l d is e ñ a d o r d e b e c o n s i
5. R e f i n a r l o s s u b s i s t e m a s , p a r a e s t a b l e c e r l a e s t r u c t u r a d e r a r lo s r e q u is it o s d e d e s e m p e ñ o , c o s to s y e l e n c a b e
d e c la s e s p a r a c a d a c a p a . z a d o im p u e s t o p o r la c o m u n ic a c ió n e n tr e p r o c e s a d o r e s .
www.FreeLibros.org
8 Eli una arquitectura cetrada, los m en sajes p ro c ed e n te s de una
capa se deberían h a b er en v iad o a la capa a d y ac en te inferior. En
una a rq u ite c tu ra abierta, los m e n s a je s d eb en e n v ia rse a c u a l
quiera de las c a p a s inferiores.
385
ING EN IE RÍA DEL S O F TW A RE . UN E N F O Q U E P R Á C T I C O
www.FreeLibros.org
22.2.4. C o m p o n e n t e d e in t e r f a z d e u s u a r i o mediante el análisis del dominio (Capítulo 21), o que
A u n q u e la c o m p o n e n te d e in t e r f a z d e u s u a r io s e im p le - se proporcionan directamente por el fabricante de la
m e n ta d e n tr o d e l c o n t e x t o d e l d o m in io d e l p r o b le m a , la base de datos. Una discusión detallada del diseño de
386
CAPÍTULO 22 DI SE ÑO ORIE NT ADO A O BI ETO S
bases de datos p ara sistem as O O está fuera del ám bito debe diseñar un m ecanism o de control para ello. R um -
de este libro'. b a u g h y sus colegas [RUM 91] sugieren que cad a rec u r
El d iseñ o de la co m p o n en te de ad m in istrac ió n de so deba ser poseído po r un «objeto guardián». E l objeto
datos incluye el diseño de los atributos y operaciones guardián es el portero del recurso, controlando el acce
requeridas p ara ad m inistrar objetos. L os atributos sig so y m oderando peticiones contradictorias para é l.
nificativos se añaden a cad a o b jeto en el d o m in io del
problem a, y p ro p o rcio n an inform ación que responde a 22.2.7. Com unicaciones entre subsistem as
la preg u n ta «¿C óm o m e alm aceno?». C o a d y Y ourdon
U na vez que cad a subsistem a h a sido especificado, es
[CO A 91] aco n sejan la cre a c ió n de u n a c lase objeto-
necesario definir las colaboraciones que e x iste n entre
servidor, « con los servicios de (a) in d icar al objeto que
subsistem as. E l m odelo que se usa para la colaboración
se alm acene a sí m ism o, y (b) recu p erar objetos alm a
objeto-objeto puede ser extendido en conjunto para los
cenados p ara su uso p o r otros com ponentes de diseño».
subsistem as. L a Figura 2 2.4 ilustra un m odelo de c o la
C om o un ejem plo de la gestión de los datos para el
boración. C om o se vio anteriorm ente e n este cap ítu lo ,
objeto Sensor, ex am in ad o co m o p arte del sistem a de
la com unicación puede ocurrir estableciendo un enlace
SQgaridadHogarSeguro, el diseño puede especificar un
cliente/servidor o punto-a-punto.R efiriéndose a la F ig u
archivo llam ado «Sensor». C ada registro debería co rres
ra, se debe e sp e cific ar la in terac ció n que e x iste en tre
ponder a una instancia denom inada Sensor, y habría de
subsistem as. R ecuérdese que un contrato proporciona
contener los valores de cada atributo de Sensor para una
la indicación de los m odos com o un subsistem a puede
instancia dada. Las operaciones dentro de la clase objeto-
interactuar con otro.
servidor d e b e ría n p e rm itir a u n o b jeto e sp e c ífic o ser
alm acenado y recuperado, cuando sea requerido p o r el
¿Qué etapas de diseño
sistem a. P ara o b jeto s m ás co m p lejo s, sería n ecesario
especificar una base de datos relacional, o una base de
datos orientada a objetos para eje c u ta rla m ism a función. • se requieren para especificar
un «contrato» de un subsistema?
FIG URA 22 .4. Modelo de colaboración entre subsistemas. Tipo: el tipo de contrato (por ejem plo, cliente/
servidor o punto-a-punto).
www.FreeLibros.org
9 Los lectores in te resad o s deben c o n su lta r [BR091], [TAY92] y
[RA094]
387
IN GE NI ER ÍA DEL S O F TW A RE . UN EN F O Q U E P R AC T I C O
www.FreeLibros.org
m e n t a c ió n in c lu y e n in f o r m a c ió n a c e r c a d e la p a r te p r i
v a d a d e l o b je t o ; e s to s ig n if ic a , d e ta lle s in t e r n o s a c e r c a F IG U R A 2 2 .6 . Gráfico a b re v ia d o del subsistem a colaborado
d e la e s t r u c t u r a d e d a to s , q u e d e s c r ib e n lo s a t r ib u t o s d e l de H o g a rS e g u ro .
388
CAPÍTULO 22 DISEÑO ORIENTADO A OBJETOS
www.FreeLibros.org
ño de datos y del diseño a n iv el de com ponentes e x a haga un análisis gramatical y aísle nuevas operaciones
m inadas p ara la ingeniería del softw are convencional. a un nivel de abstracción más bajo.
389
IN GE NI E RI A DEL S O F TW A RE . UN E N F O Q U E P R A C T I C O
L o s m e jo r e s d is e ñ a d o r e s e n c u a lq u ie r c a m p o t ie n e n lo s a r c h iv o s d e l u s u a r io , y p r o p o r c io n a fa c ilid a d e s
u n a h a b ilid a d e x tr a ñ a p a r a r e c o n o c e r p a tr o n e s q u e p a r a c r e a r , r e n o m b r a r y e l i m i n a r t a l e s a r c b ó ^<¡.
c a r a c t e r iz a n u n p r o b le m a y lo s p a tr o n e s c o r r e s p o n S o lo e x is t ir á u n a in s t a n c ia d e e s e a d m in is tr a r
d ie n t e s , q u e p u e d e n c o m b in a r s e p a r a c r e a r u n a s o lu a r c h iv o s .
c ió n . G a m m a y s u s c o le g a s [ G A M 9 5 ] e x a m in a n e s to • E n u n s is t e m a d e c o n t r o l d e t r á f ic o a é r e o , s o lo e x is
c u a n d o a f ir m a n q u e : t i r á u n a in s ta n c ia d e l c o n t r o la d o r , q u e m a n tie n e r e g is
S e e n co n trará n patrones rep etid o s de clases y o b jeto s de t r o s d e lo s p la n e s d e v u e lo y s u s p o s ic io n e s .
com unicación,en m uchos sistem as orientados a objetos. Estos • E n u n a a p lic a c ió n b a n c a r ia , s o lo e x is t ir á u n c o n t r o
patrones resuelven problem as específicosde diseñ o ,y vuelven
la d o r , q u e m a n t ie n e e l r e g is t r o d e lo s c a je r o s a u to
al diseño o rien tad o a objetos m á s flexible, eleg an te y ex tre
m adam ente reutilizable.A yudan a los diseñadores a reutilizar m á tic o s u t iliz a d o s p o r e l b a n c o .
diseños exitosos b asando nu ev o s d iseños en experiencia pre
via. U n diseñador bastante fam iliarizado con ese tipo de patro | | | | ¿Qué es un patrón de diseño
nes puede aplicarlos inm ediatam ente a problem as d e diseño, W y por qué se necesitan esos
sin tener que redescubrirlos. patrones?
g s b s s s x b e r L a F i g u r a 2 2 . 7 m u e s t r a l a e s t r u c t u r a g e n e r a l d e e s te
Los potrones existen o nivel tonto de orquitecturo p a t r ó n , la p a la b r a « s ta t ic » d e s c r ib e u n a v a r ia b le u t i
como de componentes. Pora mayor información,
l i z a d a p a r a t o d a la c la s e . E n e s ta F i g u r a s o lo s e m u e s
t r a n d o s o p e r a c i o n e s e n l a c l a s e Singleton, p e r o s e
p u e d e n m o s t r a r a lg u n a s m á s d e p e n d ie n d o d e l c o n
D u r a n te e l p r o c e s o d e D O O , u n in g e n ie r o d e l s o f t t e x t o . A c o n t in u a c ió n s e m u e s t r a u n e s q u e le to e n J a v a
w a r e d e b e 'o b s e r v a r c a d a o p o r t u n i d a d e n la q u e p u e d a n p a ra e l p a tró n :
r e u t il iz a r p a tr o n e s d e d is e ñ o e x is te n te s (c u a n d o c u m
p tib lic c la s s S in g le to n {
p l e n la s n e c e s i d a d e s d e l d i s e ñ o ) , e n v e z d e c re a r o tro s
p r í v a t e s t a t i c O b je to S ím p le in s ta n c ia ü n ic a = n u il;
nuevos.
p tib lic s t a t i c O b je to S ím p le I n s ta n c ia ü n ic a ( )
{
22.4.1. ¿Q ué e s un patrón d e diseño? if ( i n s t a n c i a ü n i c a == n u i l )
A n t e s d e e x a m in a r lo s p a tr o n e s c o n d e ta lle v a le la p e n a i n s t a n c i a ü n i c a = new O b je to S ím p le ( ) ;
o b s e r v a r u n e je m p lo s e n c illo d e u n p a tr ó n , q u e s e p r e r e tu r n in s ta n c ia ü n ic a ;
s e n ta u n a y o t r a v e z . M u c h a s a p lic a c io n e s tie n e n e l
}
r e q u is it o d e q u e s o lo u n a in s t a n c ia d e u n s o lo o b je t o
//C ó d ig o p a ra c o n s tr u c to r e s , se rá p r iv a d o .
d e b e s e r in s t a n c ia d a . A lg u n o s e je m p lo s d e a p lic a c io n e s
/ / C ó d i g o p a r a m é to d o s q u e im p le m e n te n l a e s c r i t u
www.FreeLibros.org
y o b je t o s d e in s ta n c ia s s im p le s s o n :
ra de
. E n u n s is t e m a o p e r a t iv o h a b r á s o lo u n o b je t o a d m i
/ / o p e r a c i o n e s d e n t r o de S i n g l e t o n , que p u e d e n
n is tr a d o r d e a r c h iv o s , q u e m a n tie n e e l r e g is tr o d e in c lu ir
390
CAPÍTULO 22 DI SEÑ O O RI EN TA D O A O BJ E TO S
\c u VE 2 2 .4 .3 . U n e j e m p l o f i n a l d e u n p a t r ó n
Frecuentemente, existe la necesidad de desarrollar
un código que lleve a cabo el procesamiento de
www.FreeLibros.org
El patrón de M em en to se usa datos accedidos secuencialmente. Este acceso
para la recuperación de sistemas. secuencia1 tendrá usualmente la misma forma, y por
391
I N GEN IE RÍ A DEL S O F TW A RE . UN E N F O Q U E P R Á C T I C O
www.FreeLibros.org
• FuenteConcreta E s ta c la s e e s u n a s u b c la se de in te ré s in d u stria l. L o s p a tro n e s, ju n to co n los co m
F u en te e im p le m e n ta el m éto d o o b te n e rD a to s. Su p o n e n te s, o fre c e n la e sp e ra n z a de que la in g en iería
fu n c ió n e s p ro p o rc io n a r d a to s a los o b je to s a so de so ftw a re , e v e n tu a lm e n te , se p a re z c a a o tra s dis-
392
CAPITULO 22 DI SE NO O R IE N TA D O A O B JE T O S
CLAVE
En la actualidad existe un buen grupo de patrones;
sn embargo, en los próximos años debería haber
una verdadera expansión en su uso. F IG U R A 2 2 .9 . El patrón Filtro.
CLAVE
UML se está convirtiendo en un estándar de facto No se muestran
todos los atributos
para el análisis y diseño orientado a objetos.
y operaciones
22.5.1. El m o d elo d e c la s e s
Un m odelo de clases es un a descripción de las clases en F IG U R A 2 2 .1 0 . Un ejem plo de una clase descrita en UM L.
un sistem a y sus relaciones. N o describe el com porta
m iento dinám ico del sistem a, p o r ejem plo el com por T am b ié n e n la F ig u ra 2 2 .1 0 se m u e s tra u n a v e r
tam iento de objetos individuales. El p rim er elem en to sió n g rá fic a de los c o m e n ta rio s u tiliz a d o s e n el le n
de un diag ram a de clases es u n a d escripción de clases g u a je d e p ro g ra m a c ió n . E l c u a d ro , c o n u n a e s q u in a
individuales. L a F ig u ra 22.10 m u estra com o se d escri su p e rio r d e re c h a d o b la d a , lla m a la a te n c ió n d e l le c
be una clase. L a clase describe al cliente de un banco. to r a a lg ú n asp ec to d e u n d ia g ram a. E n e l c a s o d e la
E sta figura es m uy sim ple, y a que solo contiene una F ig u r a 2 2 .1 0 , se lla m a la a te n c ió n d e l le c to r , al
clase. C onsta del nom bre de lá clase (C lie n te ),e l n o m h e c h o de que m u c h o s d e lo s a trib u to s y o p e ra c io n e s
bre de algunos de sus atributos, p o r ejem plo el atribu a so c ia d o s c o n la c la se C lie n te n o se m u e s tra n ; p o r
to d i r e c c i ó n , que contiene la d irección del cliente, y la e je m p lo , la c o le c c ió n de c u e n ta s que p o se e el c lie n
lista de o p eracio n es; p o r ejem p lo , la o p e ra ció n obte- te n o se m u e stra n e n la se c c ió n d e a tr ib u to s d e la
nerNombre recupera el nom bre de un cliente. C ada cu a clase .
dro que rep resen ta u n a clase contiene, p o r consiguiente, L a F ig u ra 22.10 es m uy sim ple, e n la p rá c tic a los
una sección que contiene el nom bre de la clase, una sec d ia g ra m a s de cla se s e n U M L m o s tra rá n la re la c ió n
www.FreeLibros.org
ción que en um era los atributos de los objetos definidos entre clases. Existe un gran n ú m ero d e tip o s d ife re n
por la clase, y u n a sección que describe las operaciones tes de rela cio n e s, que pueden se r expresadas. L a p ri
asociadas con tales objetos. m era co sa que tratem os será la gen eralizació n .
393
I N G E N I E R Í A DEL S OFT W ARE . UN E N F O Q U E P R Á C T I C O
77
Cliente
ColecciónCuentas
F IG U R A 22.12. Agregación en UML.
¿Qué es composición?
Com ponenteA C om ponentes Com ponenteC
www.FreeLibros.org
co m o co m p o sició n . É sta se u sa c u a n d o se tien e una
F IG U R A 2 2 .1 3 . Un diagram a UM L de clases mostrando situ ació n en la que un o b jeto c o n tie n e un n ú m ero de
generalización y agregación. otros objetos, y cuando el objeto contenedor se elim i
394
CAPITULO 22 DISENO ORIENTADO A OBJETOS
n a t o d a s la s i n s t a n c i a s d e l o s o b j e t o s q u e e s t á n c o n t e m o d e la lí n e a d e t e r m in a q u e u n a d m in is t r a d o r d ir ig e a
n id o s d e s a p a r e c e n . P o r e je m p lo , u n a c la s e C lie n t e q u e u n c o n ju n t o d e e m p le a d o s .
r e p r e s e n ta c lie n te s e n u n b a n c o te n d r á u n a r e la c ió n d e L a a s o c ia c ió n e n t r e c la s e s p u e d e n o m b r a r s e p a r a
c o m p o s ic i ó n c o n la s c u e n ta s q u e e l c lie n t e p o s e e ; p o r d o c u m e n ta r e x p lí c it a m e n t e la r e la c ió n . P o r e je m p lo , la
q u e s i e l c lie n te s e e lim in a , p o r e je m p lo , s e m u e v e a o t r o F ig u r a 2 2 .1 7 d o c u m e n ta e l h e c h o d e q u e u n a d m in is
b a n c o , to d a s s u s c u e n ta s s o n e lim in a d a s ; e s ta f o r m a d e t r a d o r d ir ig e a u n g r u p o ( c o le c c ió n ) d e e m p le a d o s .
r e la c ió n s e in d ic a d e m a n e r a m u y s im i la r a la a g r e g a
c ió n , p e r o e n e s ta o c a s ió n e l r o m b o e s tá r e lle n o e n lu g a r Administrador
d e h u e c o . E s to s e m u e s tr a e n la F ig u r a 2 2 .1 4 .
2 2 .5 .4 . A s o c i a c i o n e s
L a a g r e g a c ió n y la c o m p o s ic ió n s o n e je m p lo s e s p e c í f i
c o s d e u n a r e l a c i ó n e n t r e d o s c la s e s . U n a r e l a c i ó n o c u
r r e e n t r e d o s c la s e s c u a n d o e x i s t e a l g u n a c o n e x i ó n e n t r e Em pleado
e lla s , e n U M L e s to s e c o n o c e c o m o a s o c ia c ió n . A l g u
n o s e je m p lo s d e e s to s e d e s c r ib e n a c o n t in u a c ió n :
. Administrador se r e l a c i o n a c o n l a c la s e
U n a c la s e F I G U R A 2 2 .1 6 . Multiplicidad en un diagram a de clases
Empleado e n v i r t u d d e q u e u n a d m i n i s t r a d o r d i r i g e en UML.
a u n n ú m e r o d e e m p le a d o s .
U n a a lt e r n a t iv a p a r a d o c u m e n t a r la a s o c ia c ió n e s
> U n a c la s e Vuelo s e a s o c ia c o n la c la s e Avión e n v ir
d o c u m e n t a r lo s p a p e le s ( r o le s ) q u e c a d a c la s e ju e g a e n
tu d d e q u e u n a v ió n e m p r e n d e u n v u e lo p a r tic u la r .
u n a a s o c ia c ió n . U n e je m p lo d e e s ta s it u a c ió n s e m u e s
• U n a c la s e Computadora s e r e l a c i o n a c o n u n a c la s e
t r a e n l a F i g u r a 2 2 . 1 8 . A q u í , l a c l a s e Universidad j u e
Mensaje e n v ir t u d d e l h e c h o d e q u e u n a c o le c c ió n
g a e l r o l d e h o s p e d a r u n a s e r i e d e e s t u d i a n t e s q u e , a su
d e m e n s a je s e s tá e s p e r a n d o e l p r o c e s o d e u n a c o m
v e z , ju e g a n e l r o l d e s e r e s tu d ia n te s m ie m b r o s d e la u n i
p u ta d o ra .
v e r s i d a d . N o r m a l m e n t e , c u a n d o s e d o c u m e n t a n la s a s o
. InformeBancario s e r e l a c i o n a c o n l a c la s e
U n a c la s e c ia c io n e s , s e e lig e e l t i p o d e d o c u m e n t a c ió n q u e s e
Transacción e n v i r t u d d e q u e e l i n f o r m e c o n t i e n e u t iliz a r á : s i la d o c u m e n ta c ió n d e a s o c ia c ió n o la d o c u
d e ta lle s d e c a d a tr a n s a c c ió n . m e n t a c i ó n d e r o l e s d e c la s e s q u e p a r t i c i p a n e n l a a s o
D e e s ta s r e la c io n e s , s ó lo la ú l t im a e s d e a g r e g a c ió n . c ia c ió n . E l r e a liz a r a m b o s , a u n q u e p e r fe c ta m e n te v á lid o ,
T o d a s la s o t r a s s o n a s o c i a c i o n e s c l a r a s . T a l e s a s o c i a s e c o n s id e r a c o m o u n e x c e s o .
c io n e s s e e s c r i b e n e n U M L c o m o u n a l í n e a r e c t a . P o r
e je m p lo , la F ig u r a 2 2 .1 5 m u e s tr a la p r im e r a a s o c ia c ió n A d m in istra d o r |
d e la s a n t e r i o r e s .
1....................... I
L a s a s o c i a c i o n e s e n t r e c la s e s s e d o c u m e n t a n e n t é r 1
m in o s d e la m u lt i p li c id a d d e la a s o c ia c ió n y d e l n o m Administra
b re d e la a s o c ia c ió n . A c o n t in u a c ió n s e o b s e r v a r á la
1..*
m u lt ip lic id a d , e x a m in a n d o e l e je m p lo d e la F ig u r a
2 2 .1 5 . E n e s te e je m p lo u n s im p le a d m in is t r a d o r d ir ig e Empleado
a u n o o m á s e m p le a d o s , y u n s o lo e m p le a d o s e rá d i r i-
g id o p o r u n s o lo a d m in is tr a d o r . E s ta a s o c ia c ió n s e m u e s
tr a e n la F ig u r a 2 2 .1 6 . F IG U R A 2 2 .1 7 . Docum entando una Asociación.
22.5.5. C a s o s d e u s o
A n t e r io r m e n t e , e n e l C a p í t u lo 2 1 , s e e x a m in a r o n lo s
c a s o s d e u so . E n U M L , u n c a s o d e u so s e d o c u m e n t a
d e m a n e r a m u y s im p le , e n té r m in o s d e a c to r e s y d e u n
c a s o d e u s o . U n a c to r e s c u a lq u ie r a g e n te q u e in te r a c -
t ú a c o n e l s is t e m a q u e s e c o n s t r u y e , p o r e je m p lo e l p i l o
to d e u n a v ió n , u n p r e s ta ta r io d e lib r o s d e u n a lib r e r í a
o e l j e f e d e lo s e m p le a d o s e n u n a c o m p a ñ í a . U n c a s o d e
F IG U R A 2 2 .1 5 . Un ejem plo de una relación simple en UML. u s o d o c u m e n ta a lg u n a a c c ió n q u e e l a c to r e je c u ta ; p o r
e je m p lo , e l p r é s ta m o d e u n li b r o , e l c a m b io d e d ir e c
c ió n d e u n a v ió n o la a d ic ió n d e u n m ie m b r o a u n e q u i
www.FreeLibros.org
A q u í e l 1 q u e s e e n c u e n t r a a l f i n a l d e la lí n e a d e a s o p o d e p r o g r a m a c ió n . U n c a s o d e u s o s im p le s e m u e s tr a
c ia c ió n in d ic a q u e u n e m p le a d o s o lo e s d i r ig i d o p o r u n e n la F ig u r a 2 2 .1 9 . S e m u e s tr a e l u s u a r io d e u n a b i b l i o
a d m in is t r a d o r ; y e l 1 .. q u e s e e n c u e n t r a e n e l o t r o e x t r e te c a q u e p id e p r e s ta d o u n lib r o .
395
INGENIERÍA DEL SO F TW A RE . UN EN F O Q U E P R A C T I C O
22.5.6. C o la b o ra cio n es
D u ran te la ejecu ció n de u n sistem a o rien tad o a obje
Administrador Emitir inform e de estado tos, los objetos interactuarán con cada uno de los otros.
Por ejem p lo , en un sistem a b an cario , un ob jeto C uen
ta p u ed e e n v ia r un m e n sa je a un o b je to transacción
para crear una transacción que ha ocurrido en una cuen
ta, p o r ejem plo una cuenta de cargo. E ste tipo de infor
m ac ió n es im p o rtan te para el d iseñ a d o r de un sistem a
Seleccionar plantilla
orien tad o a o b jeto s, du ran te el p ro ceso de la identifi
ca c ió n y v a lid a c ió n d e clases. P o r esta ra z ó n , UML
tiene dos notaciones eq u iv alen tes para definir las inte
racciones. E n este libro no s c en trarem o s sólo en uno:
el d iag ram a de secu en cias; el o tro d iag ram a se cono
Term inar proyecto
ce co m o d iag ram a de co lab o ració n , y es equivalente
al d iag ram a de secuencia; de h ech o , son tan sim ilares
Iniciar Proyecto que las h e rram ie n tas C A S E pueden norm alm ente cre
www.FreeLibros.org
ar un diag ram a, a p a rtir de una in sta n cia o de la otra.
L a F ig u ra 2 2 . 2 2 m u estra un ejem p lo sim ple de un dia
FIG URA 2 2 .2 0 . Un con ju n to d e c a s o s d e uso. g ram a de secuencias.
396
CAPÍTULO 22 D I S E Ñ O O RI EN TA DO A O B J E T O S
22.5.7. D i a g r a m a s d e e s t a d o
O tro co m p o n en te im p o rtan te de U M L es el diag ram a
de estado. Este m uestra los diferentes estados en que un
v ie jo C lie n te : a c t u a li z a r ln f o r m e ; objeto se encuentra, y có m o se dan las transiciones de
C lie n te B a n c o
cada estad o a otros estados. Tal diagram a contiene los
siguientes com ponentes:
c r e a r T r a n s a c c ió n |
• E stados: se m uestran dentro de cuadros, con esq u i
¡ c a m b ia r D e t a lle s < Ti
nas redondeadas.
u
• Transiciones entre estados m ediante flechas.
¿Qué es un diagrama
F IG U R A 22.22. Un diagrama de secuencia sencillo.
de estados?
E n e l d ia g ra m a de s e c u e n c ia e x is te n tre s o b je to s
Sucesos que provocan las transiciones entre estados.
in v o lu crad o s, u n o de e llo s (a dm inistrador)Ú Q nQ su
clase e s p e c ífic a ( E m p le a d o ) , los o tro s no. L o s c o n M a rc a de inicio, que m uestra el estado inicial, en el
ten id o s e n lo s c u a d ro s d e u n d ia g ra m a d e s e c u e n que un ob jeto se encuentra cu an d o se crea.
cia p u e d e n c o n te n e r so lo e l n o m b re d e l o b je to , el M a rc a de p a r a d a (fin), que indica que un objeto ha
n o m b re d e u n o b je to ju n t o c o n su c la s e se p a ra d o alcanzado el final de su existencia (vida).
p o r d o s p u n to s , o so lo el n o m b re d e u n a c la se p r e
cedida de d o s p u n to s ; e n e s te ú ltim o c a s o , el o b je
to es a n ó n im o .
La F igura 22.22 tam b ién m u e stra el rol de un actor
d entro de u n a co lab o ració n : aq u í el acto r C lien teB a n
co y V ie jo C lie n te , interactúa co n el ad m in istrad o r del
objeto E m p le a d o , e n v ian d o u n m en saje cam biarD e-
talles.
La F igura 22.23 m uestra otro ejem plo de u n diag ra
ma de secuencias.
cuenta Je
¡a la n c e
j
:C lie n te B a n c o
r c o n s u lt a C u e n t a
www.FreeLibros.org
tam bién m uestra que, cu an d o una cuenta se cierra, se
FIG U R A 2 2 .2 3 . O tro e je m p lo d e d ia g ra m a d e s e c u e n c ia . destruye.
397
I NGE NIERIA DEL S O F T W A R E . UN E N F O Q U E P R A C T I C O
WBE&MmbÉ' E N LÍ NEA
El objetivo de esta sección es mostrar el uso de diagra 6 . E l s i t i o w e b d e b e r á in t e r a c t u a r c o n u n s is t e m a d e
mas UML, descrito en la Sección 22.25, aplicado a un c o n t r o l d e in v e n t a r io , q u e t a m b ié n r e q u ie r e d e s a r r o
sistema real. Este sistema es un sistema de comercio llo . E s te s is t e m a d e c o n t r o l d e in v e n t a r io s d e b e m a n e
electrónico (e-commerce). j a r e l p r o c e s o d e r e c e p c ió n d e lib r o s d e lo s in v e n t a r io s
d e la s e d i t o r i a l e s , r e t i r o d e l i b r o s c u a n d o s e o r d e n a n
p o r p a r te d e u n c lie n t e , y r e o r d e n a c ió n d e e x is te n c ia
22.6.1. L ib ros-en -lín ea d e u n lib r o , c u a n d o s e e n c u e n tr a p o r v a c ia r s e , p a r a
Libros-en-línea es una compañía creada reciente e n c a r a r u n p r o b le m a d e s u m in is t r o s , e n u n tie m p o
mente, que es subsidiaria de otra gran compañía mul d e s ie t e d í a s .
tinacional de comercio, conocida como Pollday 7 . E l c o n t r o l d e in v e n ta r io s p o r p a r te d e l a d m in is tr a d o r
Publishing. Los directores de Pollday Publishing se s e r á f i j a d o e n u n t i e m p o d e s ie t e s e m a n a s . É l o e l l a
decidieron a llevar a cabo un gran crecimiento en ven t e n d r á n l a r e s p o n s a b i l i d a d d e m a n t e n e r la s v e n t a s , y
tas por internet entre sus clientes, y decidieron pre l a d i s p o n i b i l i d a d d e e x i s t e n c i a s y , c u a n d o la s e x i s
parar a Libros-en-Línea para ello. El concepto que t e n c i a s d e u n l i b r o s e e n c u e n t r e n b a j a s , h a c e r un
Pollday tiene es el de un sitio Web de comercio elec n u e v o p e d id o . P a r a r e a liz a r e s to , e s te s is t e m a d e c o n
trónico, que tenga catálogos detallados de cada libro t r o l d e in v e n t a r io s d e b e p r o p o r c io n a r in f o r m e s d e
que manejan, junto con recursos con los que el usua v e n ta s y e x is te n c ia s d e in v e n t a r io c o n r e g u la r id a d .
rio del sitio Web puede ordenar libros, utilizando una 8. U n A d m in is t r a d o r d e M a r k e t t in g in te r v e n d r á c a d a
forma incluida en una página Web. A continuación, o c h o s e m a n a s . E l J e fe d e M a r k e ttin g te n d r á la fu n
se muestran algunos extractos, tomados del conjun c ió n d e d e t e r m in a r lo s p r e c io s a lo s q u e lo s lib r o s
to de requisitos iniciales, detallados por el equipo téc s e r á n v e n d id o s . S e d a r á la s it u a c ió n d e q u e u n lib r o
nico de Libros-en-línea: p u e d e te n e r u n n ú m e r o d ife r e n te d e p r e c io s d u ra n te
1 . Libros-en-línea desea desarrollar la capacidad de s u t ie m p o d e v id a ; p o r e je m p lo , se d e b e d e c id ir s i se
ventas en línea por medio de la Web. EL sitio web o f r e c e c o n u n m a y o r d e s c u e n t o d u r a n t e la s p r i m e r a s
que implementa esta capacidad debe permitir al s e m a n a s , y lu e g o a ju s ta r e l p r e c io a lo s p r e c io s r e c o
cliente examinar los detalles del libro, ordenarlo y m e n d a d o s p o r la s e d i t o r i a l e s .
registrar su dirección de correo electrónicopara reci L a com pañía que desarrolló el softw are para Libros-
bir ofertas especiales con detalles, publicaciones nue en-línea, prim ero identificó un núm ero de clases candi-
vas y revisiones. d a ta s , q u e a c o n t in u a c ió n s e d e ta lla n :
2. Cuando un cliente accede al sitio Web, cada uno de • R eg istro C lien te . D e t a l l e s d e a l g u i e n q u e c o m p r a
los recursos antes descritos se despliegan. lib r o s , o q u e s e r e g is tr ó p a r a r e c ib ir c o r r e o s e le c tr ó
3. Si el cliente registra su dirección de correo electró n ic o s c o n in f o r m a c ió n .
nico, se le preguntarán su informaciónpersonal. Esto • Libro. E l a r t í c u l o p r i n c i p a l , q u é L i b r o s - e n - l í n e a
incluye su nombre, una dirección de correo electró vende.
nico, una dirección postal. Un miembro del equipo • Orden. U n a o r d e n q u e u n c l i e n t e r e a l i z a , p a r a u n o
conocido como el administrador de contratos será el o m á s lib r o s . E s ta o r d e n d e b e s e r p a r a u n a s im p le
responsable de enviar información de oferta, etc., a c o p ia d e u n lib r o , o p a r a c o p ia s d e u n n ú m e r o d e
los clientes. l i b r o s o i n c l u s o m ú l t i p l e s c o p i a s d e m u c h o s li b r o s .
4. El cliente podrá comprar libros del catálogo en U n a o r d e n c o n t e n d r á u n n ú m e r o d e lí n e a s d e o r d e n
línea, examinando las páginas con detalles de los (v é a s e a c o n t in u a c ió n ) , y u n a e s p e c if ic a c ió n d e e n v ío .
libros y seleccionando el libro, que comprará • L ín ea D eO rd en . E s t a e s u n a s i m p l e l í n e a d e o r d e n .
mediante algún mecanismo como el de presionar P o r e je m p lo la o r d e n d e la c o p ia d e u n lib r o . U n a
un botón. El sistema deberá mantener un carrito de o r d e n c o n s is t ir á e n u n a o m á s lí n e a s d e o r d e n . U n a
compras virtual, en el que los detalles de cada libro lí n e a d e o r d e n c o n t e n d r á in f o r m a c ió n a c e r c a d e
se almacenan. Conforme el carrito se va llenando q u é li b r o s e o r d e n a y la c a n t id a d o r d e n a d a ( u s u a l
de libros, se muestra al cliente el precio acumulado m e n te 1 ).
de todas sus compras. • C arrito. E s u n c o n t e n e d o r q u e e x i s t e d u r a n t e l a
5. Cuando el clienteha terminado de comprar en el sitio e x p lo r a c ió n d e l s it io W e b , p o r p a r te d e u n c lie n te q u e
Web, se le pedirá información acerca de qué forma r e a liz a u n a o r d e n . L o s c o n te n id o s d e l c a r r it o s e rá n
de envío se utilizará. Por omisión se mostrará la lí n e a s d e o r d e n . C u a n d o u n c lie n t e c o m p le t e u n a
opción de envío por correo estándar, y un servicio o r d e n , la s l í n e a s d e o r d e n d e l c a r r i t o y l a i n f o r m a
www.FreeLibros.org
de envío expreso garantizado para entregar dentro c ió n d e e n v í o p r o p o r c io n a d a p o r e l u s u a r io s e r á n a n e
de 24 horas. x a d a s a u n a o rd e n .
398
CAPÍTULO 22 D IS E ÑO O RI EN TA D O A O B JE T O S
OrdenEspera. Esta es una parte de la orden, la cual Estas fueron, entonces, las clases identificadasprinci
no puede cumplirse por las existencias del almacén. palmente. También se identificaronun número de actores:
Si el cliente está conforme, esperando por un libro . Cliente. Este es el actor principal: la persona que
que no está en existencia, entonces se realiza una lleva a cabo las acciones, que resultan en los mayo
orden de espera. Esta orden de espera se satisface, res cambios de estado del sistema.
cuando las existencias del libro se restauran por . Administrador de marketting. Es un actor importante
Libros-en-línea. que ajusta muchos de los parámetros del sistema,
Almacén. Esta es una colección de libros que se tales como el precio de los libros.
encuentran en existencia. Una orden de libro o de • Adm inistrador del control de inventarios. Alguien
colección de libros se manda al almacén y de ahí que controla los inventarios en un almacén y toma
se retiran los libros de sus cajas del almacén, se decisiones acerca de las órdenes.
empaquetan y se despachan al cliente. En ese Existen un gran número de casos de uso asociados
momento, se ajustan los detalles de las existen con estas acciones, muchas de ellas asociados con el
cias. actor cliente, se muestran en la Figura 22.25.
RegistroExistencias. Estos son los datos que des La selecciónde casos de uso asociadosconel Cliente,y
criben los detalles de las existencias de un libro; las mostradasenla Figura 22.25 incluyencasosdeusopara:
por ejemplo, cuántos hay en existencia, el nivel « Registro. Aquí el cliente proporciona su nombre y
actual cuando se ha hecho una requisición a las edi su clave. Una vez registrada, pueden examinar el
toriales, y la localización de los libros dentro del catálogo de libros.
almacén. . Ordenar. Aquí el cliente ordena una o más copias de
NotaEmpaque. Esta es una nota enviada con una un libro.
colección de libros al cliente. La nota de empaque . Realizar. El cliente completa la ordeny ordena al sis
contiene información acerca de cuántos libros se tema iniciar el proceso en que la orden se despacha.
enviarony la tarifa de envío aplicada. Tambiénpuede ■ Buscar un libro. El cliente busca, en el catálogo en
contener detalles de algunos libros, que no pudieron línea, un libro específico.
ser enviados porque no se encontraban en las exis . Eliminar tarjeta de crédito. Aquí el clientepuede eli
tencias.
minar una o más de las tarjetas de crédito registra
TarjetaCrédito. Un cliente pagará por sus libros das y asociadas con él.
mediante una tarjeta de crédito. El sistema permite ■ Registrar tarjeta de crédito. Aquí el cliente registra
a l cliente pre-registrar su o sus tarjetas, para que
no tenga que reescribirlas cada vez que haga una una o más de sus tarjetas de crédito al sistema.
orden. Una porción de uno de estos diagramas de clase para
el sistema, se muestra en la Figura 22.26. Un número
de roles asociados con el diagrama se ha omitido; regu
larmente se incluyen. Algunas de las relaciones entre
clase, también se omitieron.
El diagrama muestra muchas de estas clases antes
descritas. Las únicas clases que se omitieron son:
OrdenSatisfecha y OrdenEspera. Estas dos clases son
especializaciones de la clase Orden, que representauna
orden de libros para un cliente.
Borrar tarjeta
de crédito
Registrar
www.FreeLibros.org
tarjeta de crédito
F IG U R A 2 2 .2 6 . Una sección de un diagram a de clases
FIGURA 2 2 .2 5 . Algunos casos de u so para el actor Cliente. para el caso de estudio.
399
IN G E N IE R ÍA DEL S O F T W A R E . UN E N F O Q U E PR AC T I C O
C uando se hace un pedido, algunos de los artículos entre tarjetas de crédito y órdenes, en virtud de que una
pedidos p u d iero n no haberse servido, porque los libros ta rje ta de créd ito p a rtic u la r se u tiliz a p a ra p ag ar una
no estaban en existencia. C uando esto ocurre, la orden orden. D e cualquier m anera, se m u estra suficiente deta
se d iv id e en dos: to d o s los lib ro s que p u ed en p ro p o r lle para proporcionar u n a indicación de qué tan com
cionarse en un o b jeto O rdenS atisfecha, y aquellos que plicado se ve un diagram a de clases U M L.
no pudieron encontrarse, se registran en un objeto Orden- U n ejem plo de diagram a de secuencias asociado con
Espera. Las relaciones en el diag ram a de clases se d eta el caso en estudio se m u estra en la F igura 2 2 .27.
llan a continuación. A quí e l c lie n te o rd e n a un libro. E sto resu lta en el
• U n alm acén se asocia con u n núm ero de registros de registro de existencias para el libro consultado,y se ajus
existencias, los cuales detallan los libros alm acena ta si el libro está en existencia. Si el libro está en exis
dos en el alm acén. U n sim ple alm acén se asocia con tencia, un objeto de tipo línea de orden se crea, el cual
uno o m ás registros de existencia. se anexa a una orden, la cual se construye conform e el
clien te n avega p o r el sitio w eb de Libros-en-línea. E l
• U n registro de existencia se asocia con un solo libro,
diagram a final (Fig. 22.28) m uestra un diagram a de esta
y un libro se asocia con un solo registro de existencia.
do para el objeto Orden.
• U n a o rden puede consistir en u n n ú m ero de líneas U n cliente prim ero realiza la orden, y el estado del
de orden, y u n a línea de o rden será asociada con una o b jeto O rden se vuelve orden parcial; entonces se da al
so la orden. cliente la opción de añadir m ás libros o de elim inar libros
• U n cliente reg istrará su núm ero de tarjeta de crédito de su orden. E n cualquier m om ento de la construcción
al sistem a, un núm ero de tarjeta de crédito se asocia de la orden, el cliente puede cancelar la orden, esto con
co n u n solo cliente. duce a la term inación. C uando el cliente indica que se
h a llegado al fin de la orden, entonces la orden se vuel
• U n cliente se asocia con un núm ero de órdenes satis
ve u n a orden de libros com pleta. E n este punto, el clien
fe c h a s, las cu ales se re a liz a n sobre u n p e río d o de
te tiene dos opciones: cancelar al orden o especificarel
tiem po. C ada o rden satisfecha se asocia con un solo
tipo de envío que se u sará para la orden. Si se seleccio
cliente.
n a el tipo de envío, en to n ces la orden se convierte en
• U n clien te se a so cia con un núm ero de órdenes en u n a orden com pleta. E n e sta etapa, el cliente tiene otras
espera, que actualm ente no p u ed en ser satisfechas. dos opciones: confirm ar la orden, en este caso la orden
C ada ord en en esp e ra se asocia con un solo cliente. se envía para ser procesada, o cancelar la orden. Ambas
L a F ig u ra 22.26 m u e stra solo alg u n as de las rela- opciones conducen al punto de salida del diagram a de
c ie n e s involucradas, p o r ejem p lo , ex iste u n a relación estados.
www.FreeLibros.org
U n a clase en Jav a se introduce p o r m ed io de la p a la la clase será C liente. In m ed iatam en te a continuación,
bra clave class, dentro del código p ara la clase; el p ro las d escrip cio n es de atributos de clase. E n el código
gram ador define los atributos y operaciones para la clase. anterior, solo se m uestran dos atributos: el nom bre del
400
CA P Í T U L O 22 D I S E Ñ O O R IE N TA DO A OB JE TO S
cliente y su dirección; ambos se expresan como cade La palabra clave String especificaque esta operación
nas de caracteres. Normalmente, enun sistemareal exis devolverá una cadena, y la palabra clavepu blic descri
ten muchos más atributos asociados con la clase. La be el hecho de que cualquier código de cualquier otra
descripción del atributo incluye su tipo (S trin g ) y s u clase puede hacer u so de esta operación: p u b lic e s el
visibilidad. En el ejemplo anterior, a los dos atributos opuestode la palabra claveprivate, detalladaen el párra
mostrados se les asigna la visibilidad de privados. Esto fo anterior.
significa que pueden ser accedidos por cualquier códi El código para esta operación se encierra con llaves
go dentro de la clase pero no por alguno fuera de ella; ({() de operación.
por ejemplo, el código que pertenece a otra clase. Esto La operación modificarDirecciónCliente difiere en
significa que las variables de instancia se encapsulan dos cosas de la operación obtenerNombreCliente. En
dentro de la clase. Existen otros modificadores de visi primer lugar, le antecede la palabra void; esto indica que
bilidad en Java: Se encontrará con otro después, cuan no hay resultado que regresar de la operación: la ope
do se describan las operaciones de una clase. ración solo lleva a cabo acciones que modifican los atri
butos de la clase. En segundo, la operación asociada con
el argumento dirección, que es una cadena que repre
^ istroStock) ( eS I r) :Orden
J senta la nueva dirección de un cliente, que reemplaza
rá a la anterior.
Cliente
Esto, entonces, es la forma básica de una clase en
"‘i OrdenLibro Java; es muy similar en muchas formas a la estructura
de clases expresadapara los lenguajes orientados a obje
tos, con excepción de SmallTalk. A continuación, se
muestra el código completo de una clase muy simple.
La clase representa un contador, que es un dispositivo
que sirve pararegistrar el número de veces que una pági
na web ha sido accedida por visitantes de un sitio Web.
c la s s Contador {
p r ív a te i n t veces;
p u b lic Contador ( i n t v a lo r ln ic io )
{
FIG U R A 2 2 .2 7 . Un diagrama de secuencia para el caso de veces = v a lo rln ic io ;
estudio.
}
p u b lic vo id ajustaContador ( in t v a lo r )
También se han mostrado dos operaciones dentro de {
la clase Cliente. La primera es la operación obtener- veces = va lo r;
NombreCHente, que devuelve el nombre del cliente des }
critopor la clase. p u b lic i n t obtenerC uenta( )
í
re tu r n veces;
}
p u b lic vo id incrementaCuenta ( )
Orden(libro) vecese t ;
}
}
La clase denominada Contador tiene un atributo
veces, que registra el número de veces consultado por
usuarios. La siguiente operación tiene el mismo nom
bre de la clase, y se conoce como constructor. Este es
Seleccionar
Transporte
un fragmento de código ejecutable, que se ejecuta cuan
tancelarOrden \ ( t i p o transporte) do el objeto se crea, recibe un argumento entero que es
el valor inicial del contador. Cuando el usuario de la
Orden Completa clase desea crear un objeto contador, el código es el
siguiente:
Contador cont = new Contador ( 0 ) ;
www.FreeLibros.org
Cancelarorden La palabra clave new llama al constructorpara crear
un objeto contador que tiene un solo atributo veces ini-
FIG U R A 2 2 .2 8 . Un diagrama de estados. cializado a cero.
401
I N GEN IE RÍ A DEL S O F TW A RE . UN EN F O Q U E P R A C T I C O
La operación obtenerCuenta regresa el valor actual del R ecuérdese que, en la herencia, las operaciones en
contador, la operación ajustaC ontador ajusta el atributo la superclase (en nuestro clase C ontador) se heredan por
veces a un valor dado p o r su argum ento, y la operación la su p e rc la se (en n u e stro c a so T ie m p o C o n ta d o r), a
incrementaCuenta in c re m e n ta d atributo veces en uno (la m enos que se sobrecarguen.
operación ++ es la operación de increm ento en uno). La prim era operación ajustaContador, sobrecarga al
La sintaxis de Java p ara env iar m ensajes al objeto es m étodo correspondiente en la superclase. Prim ero ini-
la siguiente: cializa el atributo veces dentro de la superclase, hacien
Objeto.nombreOperación ( argumentos ) do una llam ada a su constructor (la palabra clave súper
se utiliza para ello), y luego se construye un nuevo obje
P or ejem p lo p ara in c re m e n ta r u n o b jeto C o ntador
to Tim e. Este objeto se define en cualquier otro lugar, y
cont el código sería: no se debe m ostrar el código. La operación ajustaC on
c o n t. increm entaCuenta< ); tador tam bién sobrecarga la operación correspondiente
La clase anterior es m uy sim ple; de cualq u ier m odo, dentro de C ontador. El código dentro de la clase prim e
sirve p ara ilu strar las características estructurales p rin ro inicializael atributo de la superclase, para que sea igual
cipales de cóm o se define una clase. E xisten otras co m a valor. Luego envía un m ensaje setNow al atributo hora
plicaciones, com o el hecho de que pueden definirse varios A cceso, para ajustar su v alo r a la hora actual, el código
niveles de visibilidad; de cualq u ier m o d o , esto queda para la operación setN ow form a parte de la clase Time y
fuera del alcance de un libro de ingeniería del softw are. no se m uestra. El m étodo obtenH ora es sim ple: todo lo
E xisten dos m aneras de com binar clases: la prim era que hace es regresar el v alor de horaAcceso. La opera
es la herencia y la segunda es la agregación. Los lenguajes ción increm entaC uenta sobrecarga la operación corres
de program ación o rientada a objetos co ntienen recursos pondiente en la clase C ontador. Prim ero increm enta el
que perm iten a am bas ser im plem entadasfácilm ente. valor de veces, llam ando a la operación incrementaCuenta
E n Java, la palabra clave extends se utiliza p ara d eri dentro de la superclase, luego ajústale v alor de horaAc
var una clase de una y a existente p o r m ed io de la h eren ceso, enviando un m ensaje setN ow al objeto. El método
cia. P or ejem plo, asúm ase que se n ecesita derivar una obtenC uenta, heredado de la c la s e C o n tad o r,n o necesi
clase nueva, que se parece m u ch o a la clase C ontador, ta ser sobrecargada, y a que todo lo que hace es regresar
pero que adem ás registra la h o ra a la que la cuenta se el v alor del atributo veces, dentro de la superclase.
increm entó. El esqueleto de la nuev a clase, que hereda Esto es, com o un lenguaje de program ación orienta
la clase C ontador, se m uestra a continuación: do a objetos im p lem entala herencia. La implem entación
c la s s TiempoContador ex ten d s Contador{ de la agregación es m ás sim ple: todo lo que involucra
/ / Algunos a tr ib u to s nuevos es la inclusión de las partes agregadas com o atributos de
/ / Algunas operaciones nu eva s. clase. P o r e je m p lo , la c lase sig uiente C om putadora,
} representa a una com putadora; form a parte de un siste
m a para p lanificar la fabricación de com putadoras. Una
La palabra clave extends especifica el h echo de que
com putadora es agregada desde un m onitor, un teclado,
la clase T iem poC ontador se h ereda de la clase C onta
una unidad de proceso y así sucesivam ente. Esto se mues
dor. El código p ara la clase se m uestra a continuación:
tra en la clase com o una serie de atributos.
c la ss TiempoContador ex ten d s Contadorf
c la s s Computer {
Time horaAcceso;
p r iv a te M onitor mon;
p u b lic TiempoContador( i n t v a lo r ln ic io )
p r ív a te KeyBoard kb;
{ p r iv a te P rocessor proc;
superf v a lo r ln ic io ) ; / / demás a tr ib u to s
horaAcceso = new Tíme horaAcceso( ) ; //d e fin ic ió n de la s operaciones asociadas con
l la computadora.
p u b lic void ajustaC ontador( in t v a lo r ) )
{
C o m o un eje m p lo fin a l de c ó d ig o en Jav a , se ha
super .ajustaC ontador ( in t v a l o r ) ;
horaAcceso.setNow) ); re p ro d u c id o m u c h o del c ó d ig o p a ra un c lie n te , del
} pequeño caso de estudio m ostrado en la Sección 22.6.
p u b lic Tíme obtenHora ( ) U n cliente es alguien que com prará libros usando inter
{ net. El código para m uchos de los m étodos se encuen
retu rn horaAcceso; tra a continuación:
} c la s s C lie n te
p u b lic void increm entaCuenta( ) {
{ Ctring nombre, d irecció n , típoTarj etaCredi to ,
super .incrementaCuenta í ) ; c la v e , infoSeguridad;
www.FreeLibros.org
horaAcceso. setNow( ) ; H istorialCom pras He;
} OrdenesActuales ordenesA;
} P refere n cia s p r e f ;
402
CAPÍTULO 22 D I S E Ñ O ORIE NT ADO A O B JE T O S
P ublic o b te n P re fC lie n te { ) í
( r e tu r n Hc;
re tu rn p r e f; }
} p u b lic vo íd inicO rdenesAf )
p u b lic C tring obtenerNombre( ) {
{ / / u t i l i z a e l método se tC lea r de Ordenes-
re tu rn nombre; A c tu a le s para
} / / i n i c i a l i z a r la s ordenes a c tu a le s
p u b lic C tring obtenD ireccion( ) o rd en esA .setC lea r( );
{
re tu rn d ire c c ió n ; p u b lic vo íd agregaOrdenf Orden ord J
} {
p u b lic C tring obtenTipoTajetaC redito ( ) / / U t i l i z a e l método addCurrentOrders de
{ O rdenesActuales
r e tu m tipoT arjetaC redi to; ordenesA.addCurrentOrders ( ord );
} }
p u b lic C tring obtenC lave( ) p u b lic vo íd borraOrden ( Orden ord )
t {
re tu rn clave; / / U t i l i z a e l método removeCurrentOrder de
1 O rdenesActuales
p u b lic C tring o b te n ln fo S e g u n d a d ( ) OrdenesA.removeCurrentOrder( ord );
i }
r e tu m ínfoSeguridad; p u b lic i n t numOrdenesActuales( )
} {
p u b lic vo íd ponNombre( C tring nom ) / / U t i l i z a e l método no de la c la se Orde-
{ nesA ctuales
nombre = nom; r e tu m OrdenesA,no( );
}
p u b lic vo íd ponDireccion { C tring d ir ) p u b lic O rdenesActuales obtenOrdenesActuales ( )
i {
d ire c c ió n = d ir ; r e tu m OrdenesA;
}
p u b lic void ponTipoTarjetaC reditol C trin g t t c )
(
tipoTarjetaC redi to = t te ; Muchos de los métodos sonmuy simples: todo lo que
} hacen es o ajustar u obtener los valores de los atributos
p u b lic ponClavef C tring c l v )
que se encuentranen la clase Cliente. Estos atributos son:
i
cla ve = c lv ; • nom bre. Nombre del cliente.
1 • d irecció n . Dirección del cliente.
p u b lic voíd ponlnfoSeguridadf C tring is g ) ■ tip o T a rjeta C réd ito . Una cadena que describe el tipo
t de tarjeta de crédito usada por el cliente.
ÍnfoSeguridad = is g ; . clave. La cadena usada por el cliente, para acceder
)
p u b lic voíd ponP referencias ( C tring p r f )
al sitio de venta de libros.
{
. ín foS egu ridad. Esta es una cadena que se utiliza por
pref = p r f; el cliente, para identificarsecon el equipo de servicio
1 del sitio, en caso de que se olvide su clave. Por ejem
p u b lic voíd iniciaH istC om pras( ) plo, puede contenerel lugar de nacimiento del cliente.
t . Hc. Es el historial de los libros que el cliente ha com
/ / i n í c i a l i z a e l h is t o r i a l de compras con prado.
e l m é t o d o setC lear
. o rd en esA . Contiene los detalles de cada orden, que
} se lleva a cabo en ese momento; por ejemplo, una
p u b lic voíd agregaTransCompra (TransCompra t e ) orden que no puede ser satisfecha completamente.
{ • p r e f. Contiene una lista de preferencias de compra
/ / u t i l i z a e l método add definido en H isto - para el cliente. Por ejemplo, el hecho de que el cliente
rialCompras para normalmente compra novelas de terror.
//a g r e g a r un lib r o a la tran sa cció n de
compras al o b je to
Existe un grupo de métodos, que pueden llamar a
//C lle n t e métodos definidos en otras clases; por ejemplo, el méto
www.FreeLibros.org
H e.add( te ); do b o rra O rd e n , que elimina una orden de los detalles
de cliente, y utiliza el método re m o ve C u rren tO rd e r de
p u b lic HistCompras obtenHistCompras{ ) la clase O rdenesActuales.
403
i n g e n i e r í a d e l s o f t w a r e . u n e n f o q u e p r ac t i c o
El diseño orientado a objetos traduce el modelo de Durante el diseño del sistema, la arquitecturadel sis
AOO del mundo real, a un modelo de implementación tema orientado a objetos se desarrolla.Además del desa
específica, que puede realizarse en software. El pro rrollo de sistemas, de sus interaccionesy de su colocación
ceso de DOO puede describirse como una pirámide dentrode las capas arquitectónicas,el diseño de sistemas
compuesta por cuatro capas. La capa fundamental se considera la componente de interacción con el usuario,
centra en el diseño de subsistemas, que implementan una componente de administraciónde tareas y una com
funciones principales de sistema. La capa de clases ponente de manejo de datos. Estas componentesde sub
especifica la arquitectura de objetos global, y lajerar sistemas proporcionan la infraestructura de diseño, que
quía de clases requerida para implementar un sistema. permite a la aplicaciónoperar efectivamente. El proceso
La capa de mensajes indica cómo debe ser realizada de diseño de objetos se centraen la descripciónde estruc
la colaboración entre objetos, y la capa de responsa turas de datos, que usan los atributos de clase, los algo
bilidades identifica las operaciones y atributos que ritmos que usan las operaciones y los mensajes que
caracterizan cada clase. • permiten colaboraciones entre objetos relacionados.
Al igual que el AOO, existen diferentes métodos de Los patrones de diseño permiten al diseñador crear
D O O . UML es un intento de proporcionar una aproxi la arquitectura de diseño integrando componentes reu-
mación simple al D O O , que se aplica en los dominios sables. La programaciónOO extiendeel modelo de dise
de aplicaciones. UML y otros métodos, aproximan el ño a un dominio de ejecución. Un lenguaje de
proceso de diseño mediante dos niveles de abstracción programación OO se usa para traducir las clases, atri
—diseño de subsistemas (arquitectura) y diseño de obje butos, operaciones y mensajes, de manera que puedan
tos individuales-. ejecutarse por la máquina.
.....
[BEN99] Bennett, S., S. M cRobb y R. Farmer, O bject [GAM95] Gamma, E., et al., D esign Patterns, Addison-
O riented Svstem A nalvsis and D esign Using UML, Wesley, 1995.
M cG raw H Íll, 1999. '
[GOL83] Goldberg, A., y D. Robson, Smalltalk-80: The
[BIH92] Bihari, T., y P. Gopinath, «Object-Oriented Real- Languuge and Its Im plem entation, Addison-Wesley,
Time Systems: Concepts and Examples», Computer, vol. 1983.
25, n.3 12,Diciembre 1992,pp. 25-32.
[JAC92] Jacobson, I., Object-Oriented Software Enginee-
[B 0094] Booch, G., Object-Oriented Analysis and Design, ring, Addison-Wesley, 1992.
2.- ed., Benjamín Cummings, 1994. [JAC99] Jacobson, I., G. Booch y J. Rumbaugh, Unified
[B 0 0 9 9 ] Booch, G., 1. Jacobsony J. Rumbaugh, The Uni- Software Development Process, Addison-Wesley, 1999.
fied M o d ellin g Language User Guide, Addison-Wesley, [MEY90] Meyer, B., Object-Oriented Software Construc-
1999. tion, 2.- ed., Prentice-Hall, 1988.
[B R 091] Brow n, A.W., O bject-O riented D atabases, [PRE95] Pree, W., D esign Patterns f o r Object-Oriented
McGraw-Hill, 1991. Software Development, Addison-Wesley, 1995.
[BUS96] Buschmann, F., et al.,.4 System ofPatterns: Pat- [RUM91] Rumbaugh, J., et al., Object-Oriented Modelling
tern Oriented System Architecture, Wiley, 1996. and Design, Prentice-Hall, 1991.
[COA91] Coad, P., y E. Yourdon, Object-Oriented Design, [RUM99] Rumbaugh, J., I. Jacobsony G. Booch, The Uni-
Prentice-Hall, 1991. fi e d M odelling Language Reference M anual, Addison-
Wesley, 1999.
[COX85] Cox, B., «Software Ies and Objective-C», Unix-
World, primavera de 1985. [R A 094] Rao. B.A., O bject-O riented Databases: Tech
nology, A p p lica tio n s and P roducts, McGraw-Hill,
[DAV95] Davis, A., «O bject-O riented Requirem ents to 1994.’
Object-Oriented Design: An Easy Transition?», J.Sys
tems Software, vol. 30, 1995, pp. 151-159. [TAY92] Taylor, D.A., Object-Oriented Information Sys
tem, Wiley, 1992.
[DOU99] Douglass, B., Real-TimeUML: Developing Effi-
cient Object.sfor Embedded Systems, Addison-Wesley, [WIR90] Wirfs-Brock, R., B. Wilkerson y L.Weiner, Desig-
ning Object-Oriented Software, Prentice-Hall, 1990.
www.FreeLibros.org
1999. '
404
CAPÍTULO 22 DISENO O R I E N T A D O A O B J E T O S
Además de las muchas referencias de este capítulo, los libros dos en la sección o t r a s l e c t u r a s yf u e n t e s d e i n f o r m a c i ó n del
de Gossainy Graham ( O b j e c t m o d e l l i n g a n d D e s i g n S t r a t e - Capítulo 21 también se centran en el diseño con un nivel de
g ie s , SIGS Books, 1998), Meyer (Object-Oriented Design detalle considerable.
Through Heuristics, Addison-Wesley, 1996), y Walden, Jean- El uso de patrones de diseño para el desarrollo de soft
Maic Nerson ( S e a m l e s s O b j e c t - O r i e n t e d S o f t w a r e A r c h i t e c - ware orientado a objetos tiene importantes implicaciones
t u r e : A n a l i s i s a n d D e s i g n o f R e l i a b l e S y s t e m s , Prentice-Hall, para la ingeniería del software basada en componentes, la
1995)cubren con bastante detalle el DOO. Fowler (R e f a c i ó - reutilización en general y la calidad global de los sistemas
r i n g : i m p r o v i n g t h e D e s i g n o f E x i s t i n g C o d e , Addison-Wes resultantes. Además de [BUS96] y [GAM95], muchos libros
ley, 1999) dirige el uso de técnicas orientadas a objetos para recientes dedican sus páginas al mismo tema, como los
rediseñar y reconstruir programas antiguos con el fin de mejo siguientes:
rar su calidad de diseño. Ambler, S.W., P r o c e s s P a t t e r n s : B u i l d i n g L a r g e - S c a l e
Muchos libros de diseño orientado a objetos publicados S y s t e m s U s i n g O b j e c t T e c h n o l o g y , Cambridge University
www.FreeLibros.org
recientemente enfatizan UML. El lector seriamente interesa Press, 1999.
do en aplicar UML a su trabajo debe adquirir [B 0 0 9 9 ], Coplien, J.O., D.C. Schmidt, P a t t e r n L a n g u a g e s o f P r o -
[RUM99] y [JAC99], Además, muchos de los libros referi- g r a m D e s i g n , Addison-Wesley, 1995.
405
I N GE NI E RI A DEL SOFTWARE. UN EN F O Q U E P R A C T I C O
www.FreeLibros.org 406
C A PÍT U L O
Q PR U E B A S O R IE N T A D A S
¿k O A O BJETO S
VISTAZO RÁPIDO
¿Q ué e s ? La a rq u ite c tu ra d e so ftw a re la frustración a s o c ia d a c o n un produc- basado en usos y p r u e b a s d e a g ru p a -
o rie n ta d o a o b je to s se m a n ifie s ta en t o d e b a j a c alid ad . G o n e l propósito de miento, junto con los enfoques basados
una serie d e su b siste m a s o rg an izad o s en co n trar el m ayor n ú m ero posible de en fallos, se aplican para probar
por c a p a s , q u e e n c a p su la n c la s e s q u e errores, la s p ru e b a s d e b e n conducirse ?. exhaustivamente l a s c la s e s c o la b o ra
c o la b o ran e n tre sí. C a d a uno d e e sto s sistem áticam ente, y los casosdeprue doras. Por úllimo, lo s c a s o s d e uso
elem en to s d el siste m a (su b s is te m a s y ba deb en ser d e sig n a d o s mediante téc (desarrollados com o p a rte d e l m odelo
cla se sj.re a liz a n funciones que a y u d an n ica s d isc ip lin a d a s. de análisis OC) se u s a n p a r a d e sc u b rir
a alcan zar requerim ientos del sistem a.
¿C uáles so n lo s p a ro s? l as pruebas errores en el sc ftw a re a nivel d e v a li
Es necesario pro b ar un siste m a OO, en dación.
0 0 son e stra té g ic a m e n te similares a
una v a rie d a d d e niv eles d iferen tes, en ¿C nál e s e l ¡p re d se to o b te n id o ? Se
la s p ru e b a s d e sistem asconvencíonct-
un esfuerzo p a ra d e sc u b rir errores, que diseñan y documer t a n u n c o njunto d e
les. p ero tá c tic a m e n te d ife re n te s. Ya
d e b en ocurrir c u an d o la s c la s e s c o la casos de prueba, diseñados para pro
q u e los m odelos d e a n á lis is y diseño
b o ra n con o tra s e n tre sí, y los s u b s is bar clases, sus c o la b o ra c io n e s y cam-
0 0 son sim ila re s e n e stru c tu ra y con
tem a s se co m u n ican por m edio d é l a s portamien os; s e d e fin e n los re su lta d o s
ten id o a 1p ro g ram a 0 0 ,1 a s «pruebas»
c a p a s a rquitectónicas. esperados y s e r e g is tra n los r e s u lta
c o m ie n z a n c o n la re v is ió n de estos
¿Q uién lo h a c e ? L as p ru e b a s o rie n ta m odelos. U na vez q u e s e h a generado dos reales
d a s a objeto s se re a liz a n por in g e n ie el c ó d ig o ,la s p ru e b a s 0 0 comienzan ¿Cómo peed o esta r seg u re d e q u e lo
ro s d e so ftw a re y e s p e c ia lis ta s e n «en lo pequeño, con la s p ru e b a s d® h e lt@«li« co rred ó m en te? C u a n d o
pru eb as. c la se s. E x iste n p r u e b a s d is e ñ a d a s comienzan l a s p r u e b a s , s e c a m b ia su
¿P er q u é es im portante? S e d e b e e je p a ra probar la s o p e ra c io n e s d e la s c la punto de v is ta . ¡In te n ta «romper» si
c u ta r el program a a n te s d e q u e lle g u e s e s y e x a m in a r si los e rro re s e x iste n software! Diseñar los casos de prueba
al c lie n te ,c o n la in ten ció n e sp e c ífic a c u a n d o u n a c la s e c o la b o ra con otras. de una form a d isc ip lin a d a y re vi sar los
www.FreeLibros.org
d e d e sc u b rir to d o s los e rro re s, d e A sí com o la s c la s e s se in te g ra n p a ra casos de p ru e b a q u e s e c re a n con m eti
m a n e ra que el c lie n te no experim ente form ar un su b siste m a b a sa d o e n hilos. c ulosidad.
407
in g en ier ía del s o f t w a r e . un e n f o q u e p r a c t ic o
L a c o n s tru c c ió n d el s o ftw a re o rie n ta d o a o b je to s 3. El com portam iento del sistem a o sus clases pueden
co m ien za co n la cre a c ió n de los m o d elo s de análisis caracterizarse inadecuadam ente, para alojar el atri
y d iseñ o (C ap ítu lo s 21 y 22). D eb id o a la n a tu ra lez a buto irrelevante.
evolu tiv a del p arad ig m a de ingen iería de softw are 0 0 ,
estos m odelos co m ienzan com o rep resen tacio n es, rela Si el error no se descubre durante el análisis y se pro
tiv am en te in fo rm a le s, de los re q u isito s del siste m a, y p ag a m ás allá, los siguientes problem as pueden ocurrir
ev o lu c io n a n en m o d elo s d e ta lla d o s de c la s e s , co n e (y tendrán que evitarse con una n u eva revisión) duran
x io n es y re la c io n e s de c la se s, el d iseñ o del sistem a y te el diseño:
el d is e ñ o d e o b je to s (in c o rp o ra n d o u n m o d e lo de 1. L a localización im propia de la clase a un subsistem a
co n e c tiv id a d de o b jeto s p o r m ed io de m e n sa je s). E n y/o ta re as p u ede o c u rrir du ran te el diseñ o del sis
cada etap a, los m odelos p u ed en pro b arse, en un in ten tema.
to de d e sc u b rir e rro re s, antes de su p ro p a g a c ió n a la
sigu ien te ite ra c ió n . 2. El trabajo del diseño innecesario tendrá que ser recu
perado, para crear el diseño procedim ental, para las
operaciones que afecten al atributo innecesario.
www.FreeLibros.org 408
CAPÍTULO 23 PRUE BAS OR IE N TA DA S A O BI ET O S
Los modelos de análisis y diseño no pueden probarse en gráfica de las conexiones entre clases. Toda esta infor
el sentidoconvencional,ya queno puedenejecutarse. S i n mación se puede obtener del modelo de AOO (Capítu
embargo, se pueden utilizar las revisiones técnicas for lo 21).
males (Capítulo 8) para examinar la exactitud y consis
tencia de ambos modelos de análisis y diseño.
www.FreeLibros.org
1 Les casos de uso poseen un valor incalculable, en el seguim iento
de los m odelos de análisis y diseño, frente a los escenarios del m undo
real para el sistem a OO.
409
INGENIERÍA DEL S O F T W A R E . UN EN F O Q U E P R A C T I C O
U n a v e z q u e se c re a e l m o d e lo d e D O O ( C a p í tu lo 2 2 ),
Nombre de la clase: venta a crédito d e b e n l l e v a r s e a c a b o t a m b i é n la s r e v i s i o n e s d e l d i s e ñ o
Tipo de la clase: evento de transacción d e l s i s t e m a y d e l d i s e ñ o d e o b j e t o s . E l d i s e ñ o d e l s is t e
Características de la clase: intangible, atómica, secuencia!, m a d e s c r ib e e l p r o d u c t o a r q u it e c t ó n ic o g lo b a l, lo s s u b
permanente, protegida s is t e m a s q u e c o m p o n e n e l p r o d u c t o , la m a n e r a e n q u e
Responsabilidades: Colaboradores: lo s s u b s is t e m a s s e a s ig n a n a lo s p r o c e s a d o r e s , la a s ig
n a c i ó n d e c la s e s a s u b s i s t e m a s y e l d i s e ñ o d e l a i n t e r f a z
Leer tarjeta de crédito Tarjeta de crédito .
d e u s u a r io . E l d is e ñ o d e o b je t o s p r e s e n ta lo s d e ta lle s d e
Obtener autorización A utorización de crédito
c a d a c l a s e , y la s a c t i v i d a d e s d e m e n s a j e r í a n e c e s a r i a s
Enviar por correo p a r a i m p l e m e n t a r la s c o l a b o r a c i o n e s e n t r e c la s e s .
Etiqueta de producto
cantidad de compra
Vendedor
A rchivo a u d ito r
G enerar factura Factura
Modelos de DOO
F IG U R A 2 3 .1 . Un ejem plo de tarjeta índice CRC usada para E l d is e ñ o d e s is t e m a s e r e v is a e x a m in a n d o e l m o d e
revisión. lo o b je t o - c o m p o r ta m ie n to d e s a r r o lla d o d u r a n te e l A O O ,
y la c o r r e s p o n d e n c ia n e c e s a ria d e l c o m p o r ta m ie n to d e l
4. U t iliz a n d o la s c o n e x io n e s in v e r t id a s , y a e x a m in a
s is t e m a , f r e n t e a lo s s u b s is t e m a s d is e ñ a d o s p a r a lo g r a r
d a s e n e lp a s o 3 , d e t e r m in a r s i o t r a s c la s e s s e r e q u ie
e s te c o m p o r ta m ie n to .
re n y s i la s r e s p o n s a b ilid a d e s s e h a n r e p a r tid o
L a c o n c u r r e n c ia y a s ig n a c ió n d e ta re a s t a m b ié n se
a d e c u a d a m e n te e n tr e la s c la s e s .
r e v i s a n d e n t r o d e l c o n t e x t o d e l c o m p o r t a m i e n t o d e l s is
te m a . L o s e s ta d o s d e c o m p o r t a m ie n t o d e l s is t e m a s e e v a
5 . D e te r m in e s i la s r e s p o n s a b ilid a d e s m u y s o l ic it a
lú a n p a r a d e t e r m in a r c u á le s e x is te n c o n c u r r e n te m e n te .
d a s , d e b e n c o m b in a r s e e n u n a s o la r e s p o n s a b ili
L o s e s c e n a rio s o s itu a c io n e s d e lo s c a s o s d e u s o s e u t i
d a d . P o r e j e m p lo , le e r t a r je t a d e c r é d it o y o b te n e r
l i z a n p a r a v a l i d a r e l d is e ñ o d e la in t e r f a z d e u s u a r io .
a u t o r iz a c ió n o c u r r e n e n c a d a s itu a c ió n . P o r c o n s i
E l m o d e la d o d e o b je t o s d e b e p r o b a r s e fr e n t e a la re d
g u ie n te , se p u e d e n c o m b in a r e n la r e s p o n s a b ilid a d
o b je t o - r e la c ió n , p a r a a s e g u ra rs e d e q u e to d o s lo s o b je
v a lid a r p e t ic ió n d e c r é d ito , q u e in c o r p o r a o b te n e r
to s d e d is e ñ o c o n t ie n e n lo s a t r ib u t o s y o p e r a c io n e s n e c e
e l n ú m e r o d e t a r je t a d e c r é d it o , y c o n s e g u ir la a u to
s a r ia s y p a r a im p le m e n t a r la s c o la b o r a c io n e s q u e s e
r iz a c ió n .
d e f in ie r o n p a r a c a d a t a r je t a C R C . A d e m á s , la e s p e c if i
6 . S e a p lic a n it e r a t iv a m e n t e lo s p a s o s 1 a 5 p a r a c a d a c a c i ó n d e t a l l a d a d e l a s o p e r a c i o n e s ( p o r e j e m p l o , lo s
c la s e , y d u ra n te c a d a e v o lu c ió n d e l m o d e lo de a l g o r i t m o s q u e i m p l e m e n t a n a la s o p e r a c i o n e s ) , s e r e v i
AOO. s a n u s a n d o té c n ic a s d e in s p e c c ió n c o n v e n c io n a le s .
L a e s tr a te g ia c lá s ic a p a r a la p r u e b a d e s o ftw a r e d e o r d e ú l t im o , e l s is t e m a s e c o m p r u e b a c o m o u n t o d o p a r a a s e
n a d o r , c o m ie n z a c o n « p r o b a r lo p e q u e ñ o » y fu n c io n a g u r a r s e d e q u e s e d e s c u b r e n los e r r o r e s e n r e q u i s i t o s .
h a c ia f u e r a h a c ie n d o « p r o b a r lo g r a n d e » . S ig u ie n d o la
je r g a d e la p r u e b a d e s o ftw a r e ( C a p í t u lo 1 8 ), s e c o m ie n Q c ifo ;
z a c o n la s p r u e b a s d e u n i d a d , d e s p u é s s e p r o g r e s a h a c i a
j o p » probodor no es el que encuentra
la s p r u e b a s d e i n t e g r a c i ó n y s e c u l m i n a c o n la s p r u e b a s
» yoi cte tos errores...; el mejor
d e v a li d a c ió n d e l s is t e m a . E n a p lic a c io n e s c o n v e n c io
í g r a * repara lo mayorío de ellos,
n a l e s , la s p r u e b a s d e u n i d a d s e c e n t r a n e n la s u n i d a d e s
isa» »t «L
d e p r o g r a m a c o m p ila b le s m á s p e q u e ñ a s — e l s u b p r o -
g r a m a ( p o r e je m p lo , m ó d u lo , s u b r u tin a , p r o c e d im ie n t o ,
23.3.1. L as p r u e b a s d e u n id a d e n e l co n tex to
c o m p o n e n t e ) - . U n a v e z q u e c a d a u n a d e e s ta s u n id a
d e s h a n s id o p r o b a d a s in d iv id u a lm e n t e , s e in t e g r a n e n
d e la O O
u n a e s tr u c tu r a d e p r o g r a m a , m ie n tr a s q u e se e je c u ta n C u a n d o s e c o n s id e r a e l s o ftw a r e o r ie n t a d o a o b je t o s , e l
www.FreeLibros.org
u n a s e r ie d e p r u e b a s d e r e g r e s ió n p a r a d e s c u b r ir e r r o r e s , c o n c e p to d e u n id a d c a m b ia . L a e n c a p s u la c ió n c o n d u c e
d e b i d o s a la s i n t e r f a c e s e n t r e l o s m ó d u l o s y l o s e f e c t o s a la d e f i n ic i ó n d e c la s e s y o b je t o s . E s t o s ig n if ic a q u e
c o la te r a le s p r o d u c id o s p o r a ñ a d ir n u e v a s u n id a d e s . P o r c a d a c l a s e y c a d a i n s t a n c i a d e u n a c l a s e ( o b j e t o ) , e n v u e l
410
CAPÍTULO 23 PRUEBAS OR IE N TA DA S A OB JE TO S
ven atrib u to s (d ato s) y o p eracio n es (tam b ién co n o c i ro, las pru ebas basadas en hilos, integran el co n junto
dos co m o m éto d o s o serv icio s), que m an ipulan estos de clases requeridas, para responder u n a entrada o suce
datos. E n v ez de p ro b ar un m ód u lo in d iv id u al, la u n i so al sistem a. C ada hilo se integra y p rueba in dividual
dad m á s p e q u e ñ a c o m p ro b a b le es la c lase u o b je to m ente. Las pruebas de regresión se aplican para asegurar
encapsulado. Ya que una clase puede contener un n ú m e que n o o cu rran e fe c to s laterales. L a se g u n d a ap ro x i
ro de o peraciones d iferen tes, y u n a o peración p a rtic u m ac ió n de in te g ra c ió n , la p ru eb a basada en el u s o ,
lar d eb e e x istir c o m o p a rte de u n n ú m e ro de c lase s com ienza la construcción del sistem a p ro b a n d o aque
diferentes, el significado de la u n id ad de p rueba c a m llas clases (llam adas clases independientes), que u tili
bia drásticam ente. zan m uy pocas (o ninguna) clases servidoras. D espués
N o se puede p ro b ar m ás de u n a o peración a la vez de que las clases independientes se prueban, esta secuen
(la visión co nvencional de la unidad de prueba), pero s í c ia de pruebas p o r capas de clases dependientes co n ti
com o parte de u n a clase. P ara ilustrar esto, co nsidére n ú a h a sta que se co n stru y e el siste m a co m p le to . A
se una je ra rq u ía .d e clases, en la cual la o peración X se diferencia de la integración convencional, el uso de dri-
define p ara la superclase y se h ered a p o r algunas su b vers y stubs com o operaciones de reem plazo, debe ev i
clases. C a d a su b clase u tiliza la o p eració n X , p ero se tarse siem pre que sea posible.
aplica en el contexto de l o s atributos y o p eraciones p ri
vadas que han sido definidas p ara la subclase. Ya que el
contexto en el que la o p e ra c ió n X se u tiliz a v a ría de
m anera sutil, es n ecesario p ara p ro b ar la operación X c VE
en el contexto de estas subclases. E sto significa que p ro la estrategia de integración de pruebas 0 0 se centra
bar la operación X en vacío (la aproxim ación de la prue en grupos de clases que colaboran o se comunican
ba de unidades tradicionales) es inefectiva en el contexto de la misma manera.
orientado a objetos.
La pru eba de agrupamiento [M G R 94] es una fase
en las pruebas de integración de softw are O O . A q u í, un
ag ru p am ien to de clases co lab o rad o ras (determ in ad as
CLAVE p o r la revisión de los m odelos C R C y objeto-relación),
I a prueba de softwareOO es equivalente al módulo se p rueba diseñando los casos de prueba, que intentan
de pruebas unitariaspara el software convencional. rev elar errores en las colaboraciones.
No es recomendable comprobar operacionespor separado.
2 3 .3 .3 . Pruebas de validación en un contexto OO
La prueba de clases para el softw are OO es el eq u iv a
A l n iv e l de siste m a o d e v a lid a c ió n , lo s d e ta lle s de
lente de las pruebas de unidad p ara el softw are conven
cional* A diferencia de las pruebas de unidad del softw are c o n ex io n es de clases d esap arecen . A s í c o m o la v a li
d ació n co n v en cio n al, la v a lid a ció n del so ftw are O O
convencional que tienden a centrarse en el detalle algo-
se ce n tra en las accio n es v isib les al u su a rio y salidas
ntm ico de un m ódulo y de los datos que fluyen a través
reconocibles desde el sistem a. P a ra ay u d ar en la c o n s
de la interfaz del m ódulo, la prueba de clases para el soft
tru cción de las pruebas de validación, el p ro bador debe
ware OO se conduce m ediante las operaciones encapsu-
u tilizar los casos de u so (C ap ítu lo 20), que son parte
ladas por la clase y el com portam iento de la clase.
del m odelo de análisis. L os casos de uso p ro p o rc io n an
un escen ario , que tien e u n a g ran sim ilitu d de errores
23.3.2. Las pruebas de integración con l o s revelados en los req u isito s de in te ra cció n del
en el contexto OO usuario.
Ya que el so ftw a re o rie n ta d o a o b je to s n o tie n e una
estru ctu ra de co n tro l je rá rq u ic o , las e stra te g ia s c o n o m in a g a s a
v encionales de integración descendente (top-dow n) y Aparentemente, todos los métodos de pruebas
ascendente (bottom -up) tien en m uy p oco significado. de caja negmdiscutidos en eI Capítulo 17
En sum a, la integración de o p eraciones u n a p o r una en son aplicables a la 00 .
una clase (la aproxim ación de la integración increm en-
tal convencional), a m enudo es im posible p o r la «inte L os m étodos de prueba convencionales de caja negra
racció n d ire c ta e in d ire c ta de los c o m p o n e n te s que p ueden usarse para realizar pruebas de validación. A d e
co n fo rm an la clase» [BER93], m ás, los casos de p rueba deben derivarse del m o d elo de
E xisten dos estra te g ia s diferentes p ara las pruebas com portam iento del objeto y del diagram a de flu jo de
de integración de los sistem as O O [BIN 94a]. El p rim e sucesos, creado com o parte del A O O .
www.FreeLibros.org
2 Los m étodos de diseño para pruebas de caso, para las clases 0 0 ,
se discuten de las Secciones 23.4 a 23.6.
411
IN GENIERÍA DEL SOF TW AR E . UN E N F O Q U E P R A C T I C O
www.FreeLibros.org
3 C o n c e p to d e D O O q u e d e b e u s a rs e c o n e x tr e m a p re c a u c ió n . 4 L a s S e c c io n e s 2 3 . 4 . 3 a 23.4.6 h a n s id o a d a p t a d a s d e u n a r t íc u lo '
d e B r i a n M a r i c k , d i v u l g a d o e n e l g r u p o d e n o t i c i a s d e in t e r n e t
comp.testing. E s ta a d a p t a c ió n s e h a in c l u id o c o n e l p e r m is o d e l a u to r.
P a r a a d e n t r a r s e m á s e n la d is c u s ió n d e e s te t e m a , v é a s e |M A R 9 4 ] ,
412
CAPITULO 23 PRUE BAS O R I E N T A D A S A O B J E T O S
planificación preliminar requerida para llevar a cabo la perciben como «improbables», entonces esta aproxi
prueba basada en fallos comienza con el modelo de aná mación no es en realidad mejor que la técnica de prue
lisis. El probador busca fallos posibles (por ejemplo, los bas aleatorias. De cualquier manera, si los modelos de
aspectos de implementación del sistema que pueden análisis y diseño pueden proporcionar la visión de lo
manifestarse en defectos). Para determinar si existen que parece andar mal, entonces las pruebas basadas en
estos fallos, los casos de prueba se diseñan para probar errores pueden encontrar un número significativo de
el diseño o código. errores con esfuerzos relativamente pequeños.
Las pruebas de integración buscan fallos probables
en operaciones o mensajes de conexión. Tres tipos de
fallos se encuentran en este contexto: resultados ines
CLAVE perados, uso incorrectode operaciones/mensajes, invo
la estrategia consiste en hacer hipótesis de una serie caciones incorrectas. Para determinar fallos probables
de posiblesfallos, y luego conducirlas pruebas cuando las funciones (operaciones) se invocan, se debe
para comprobarlas hipótesis. examinar el comportamiento de la operación.
C o n s id é r e s e u n e je m p lo s im p le 5. L o s in g e n ie r o s d e áÜii ,
■ m ¿ Q u e tip o d e fa llo s
s o f t w a r e g e n e r a l m e n t e c o m e t e n e r r o r e s e n lo s l í m i t e s lü ! , „ ,
W s e e n c u e n tra n e n lla m a d a s
d e l p r o b le m a . P o r e je m p lo , c u a n d o s e p r u e b a u n a o p e
o o p e ra c io n e s y c o n e x io n e s
r a c i ó n SQRT q u e g e n e r a e r r o r e s p a r a n ú m e r o s n e g a t i d e m e n s a je s ?
v o s , s e s a b e p r o b a r los l í m i t e s : u n n ú m e r o n e g a t i v o
c e rc a n o a l c e r o y e l c e r o m is m o . E l « c e r o m is m o » c o m Las pruebas de integración se aplican tanto a atribu
p r u e b a s i e l p r o g r a m a d o r h a c o m e tid o u n e r r o r c o m o : tos como a operaciones. Los «comportamientos» de un
I f ( x > 0 ) calcular_la_raíz_cuadrada ( ); objeto se definen por los valores que se asignan a sus
E n lu g a r d e lo c o r r e c to
atributos. Las pruebas debenverificar los atributos para
determinar si se obtienen valores apropiados para los
( x >= 0 ) ca lcu la r-la -ra íz-c u a d ra d a ( );
If
distintos tipos de comportamientos de los objetos.
C o m o o t r o e je m p lo , c o n s id é r e s e l a e x p r e s ió n b o o le a n a E s importante hacer notar que las pruebas de inte
s ig u ie n te : gración intentanencontrar los errores en el objeto clien
If (a && !b I ! c ) te, no en el servidor. Dicho en términos comunes, el
enfoque de las pruebas de integración es determinar si
el error existe en el código de invocación, no en el códi
^C O N S E J O go invocado. La invocación a operaciones se utiliza como
una pista, una forma de encontrar los requerimientos de
Ya que la prueba basada en fallos se da en un nivel
la prueba que validen el código de invocación.
detallada, se reservo mejor para las operaciones
y clases que son críticas a sospechosas.
23.4.4. El impacto de la programación OO en las
L a s p r u e b a s d e m u lt ic o n d ic ió n y té c n ic a s r e la c io n a pruebas
d a s e x a m i n a n la s f a l t a s p o s i b l e s c o n t o d a s e g u r i d a d e n Hay distintas maneras en que la programación orienta
e s ta e x p r e s ió n , c o m o , p o r e je m p lo , da a objetos puede tener un impacto en las pruebas.
&& debería de ser II Dependiendo del enfoque de la P O O .
! se ignoró donde se necesitaba
. Algunos tipos de fallos se vuelven menos probables
(no vale la pena probar).
Y debería haber un paréntesis alrededor de !b lie
> Algunos tipos de fallos se vuelven más probables
P a ra c a d a e r r o r p r o b a b le , s e d is e ñ a n c a s o s d e p r u e (vale la pena probar).
b a , q u e fo r z a r á n a la c o n d ic ió n in c o r r e c t a a fa lla r . E n la . Aparecen algunos tipos nuevos de fallos.
e x p r e s ió n a n t e r io r , ( a = 0 , b = 0 , c = 0 ) f o r z a r á n a q u e la
e x p r e s i ó n s e evalúe f a l s a . S i e l & & h u b i e r a s i d o II, e l
c ó d ig o h u b ie r a d a d o e l r e s u lta d o in c o r r e c t o y e l c o n t r o l
h a b r ía s e g u id o la r a m a e r r ó n e a . Si usted deseo y espera que un programo funcione,
D e s d e lu e g o q u e la e f e c t iv id a d d e e s ta s té c n ic a s seré más probable que vea un programa
d e p e n d e d e c ó m o lo s p r o b a d o r e s p e r c ib e n e l « f a ll o p r o funcionando — extrañará fallos— .
b a b le » . S i lo s f a l l o s v e r d a d e r o s e n u n s is t e m a 0 0 s e
www.FreeLibros.org
5 El código presentado en ésta y en las siguientes secciones utiliza la
sintaxis de C++. Para m ayor inform ación, véase cualquier buen libro
de C++.
413
IN GE NI E RI A DEL SOF TW ARE . UN E N F O Q U E P R Á C T I C O
Cuando se invoca una operaciónes difícil decir exac bada, porque representa un nuevo diseño y nuevo
tamente qué código se ejecuta. Esto es, la operación código. Pero, ¿la d e r i v a d a : . h e r e d a d a ( ) debe Ser
debe pertenecer a una de muchas clases. Incluso, pue recomprobada?
de ser difícil determinar el tipo exacto o clase de un Si la d e r i v a d a : h e r e d a d a ( ) invoca a redefini-
parámetro. Cuando el código lo acceda puede obtener da y el comportamiento de redefinida cambia, d e r i
se un valor inesperado. La diferencia puede entenderse v a d a : - . h e r e d a d a ( ) podría manejar erróneamente
considerando la llamada a una función convencional: el nuevo comportamiento. De este modo, se necesi
tan nuevas pruebas aunque el diseño y el código no
hayan cambiado. Es importante hacer notar, sin
Para el softwareconvencional,el probador debe con embargo, que s o l o un subconjunto de todas las prue
siderar todos los comportamientos atribuidos afu n c y bas para d e r i v á d a -. - . h e r e d a d a ( ) deben rehacerse.
nada más. En un contexto 00,el probador debe consi Si parte del diseño y codificación para heredada no
derar los comportamientos de base::func( ) , de deriva- depende de redefinida (por ejemplo, no la llama ni
da::func( ) y así sucesivamente. Cada vez que fu n c se llama ningún código que indirectamente la llame),
invoca, el probador debe considerar la unión de todos ese código no necesita ser recomprobado en la clase
los comportamientos distintos. Esto es más fácil si se derivada.
siguen prácticas de diseño OO adecuadas, y se limitan B a se :r e d e ñ n id a ( ) y d e r iv a d a ::r e d e ñ n íd a ( )
las diferencias entre superclases y subclases (en el len son dos operaciones diferentes con especificaciones e
guaje de C++, estas se llaman clases base y clases deri implementaciones diferentes. Cada una debería tener
vadas). un conjunto de requisitos de prueba, derivadas de la
La aproximación a las pruebas para clases derivadas especificación e implementación. Aquellos requisitos
y base es esencialmente la misma. La diferencia es de prueban errores probables: fallos de integración, fallos
contabilidad. de condición, fallos de límitesy así sucesivamente.Pero
Probar las operaciones de clases es análogo a probar las operaciones es probable que sean similares por lo
código que toma un parámetro de la función y luego la que el conjunto de requisitos de pruebas se solapan.
invoca. La herencia es una manera conveniente de pro Cuanto mejor sea el diseño 0 0 , el solapamiento será
ducir operaciones polimórficas. En la llamada, lo que mayor. Es necesario desarrollar las nuevas pruebas, solo
importa no es la herencia, sino el polimorfismo. La para aquellos requisitos de d e r i v a d a : - .r e d e f i n i d a ( )
herenciahace que la búsqueda de los requisitos de prue que no fueron satisfechas por pruebas d e b a s e : - .r e d e
ba sea más directa. ñ n id a ( ) .
En virtud de la construcción y arquitectura de soft Para concluir, las pruebas de b a s e : -.re d e f i n i d a ( )
ware, ¿existen algunos tipos de fallos más probables se aplican a los objetos de la clase derivada. Las entra
para un sistema 00,y otros menos probables? la res das de las pruebas deben ser apropiadas para las clases
puesta es «sí». Por ejemplo, a causa de que las ope base y derivada, pero l o s resultados esperados pueden
raciones OO son generalmente más pequeñas, se diferir en la clase derivada.
tiende a gastar más tiempo en la integración ya que
existen más oportunidades de errores de integración.
A sí que los errores de integración se vuelven más pro
23.4.6. D is e ñ o d e p r u e b a s b a s a d a s
bables.
e n e l e s c e n a r io
Las pruebas basadas en los errores no localizan dos
23.4.5. C a s o s d e p ru eb a y je ra rq u ía d e c la s e s tipos de errores: (1) especificaciones incorrectas y (2)
Como se explicó previamente en este capítulo, la heren interacción entre subsistemas. Cuando ocurren errores
cia no obvia la necesidad de probar todas las clases asociados con especificaciones erróneas, el producto
derivadas. De hecho, puede complicar el proceso de no realiza lo que el cliente desea. Puede que haga cosas
prueba. incorrectas, o puede omitir funcionalidad importante.
Pero en cualquier circunstancia, la calidad (cumpli
miento de requisitos) se sacrifica. L o s errores asocia
CLA VE dos con la interacción de subsistemas ocurren cuando
el comportamiento de un subsistema crea circunstan
Aunque se haya comprobado bastante una clase base,
cias, (por ejemplo, sucesos, flujo de datos) que causan
tendrá que comprobarlas clases derivadas de ella.
que el otro subsistema falle.
Las pruebas basadas en el escenario se concentran
Considérese la situación siguiente. Una clase base en lo que el usuario hace, no en lo que el producto
contiene operaciones heredadas y redefinidas. Una hace. Esto significa capturar las tareas (por medio de
www.FreeLibros.org
clase derivada redefine operaciones redefinidas para los casos de u s o ) que el usuario tiene que hacer,
funcionar en un contexto local. Existe la pequeña duda después aplicarlas a ellas y a s u s variantes como
de que la d e r i v a d a : : r e d e ñ n i d a ( ) debe ser compro pruebas.
414
CAPÍTULO 23 PRUEB AS OR IE N TA DA S A O BJ E TO S
www.FreeLibros.org
I o estructura de pruebas se da en dos niveles:
como fueron impresos por última vez. Por omisión, se (1) pruebas que validan la estructura visible
imprimende la misma forma la siguiente vez. Después por el usuario final, (2) pruebas diseñadas
del escenariop r e p a r a r ¡a versión fin a l, con solo selec para validar la estructura Interna del programa.
415
in g en ier ía del s o f t w a r e . un e n f o q u e p r a c t ic o
www.FreeLibros.org
El número de combinaciones posibles poro uno prueba de clases?
aleatoria puede crecer mucha. Una estiotegio similar
L a p a rtic ió n basada en estados clasifica las opera
puede usarse poro mejorar lo eficiencia de los pruebas. cio n es de clase b a sa d a en su h a b ilid a d de cam biar el
416
CAPÍTULO 23 PRUEB AS O R I E N T A D A S A O B J E T O S
estado de la clase. U na vez m ás, co nsiderando la clase L a partición basada en atributos clasifica las o p e ra
cuenta, o p eraciones de estad o in cluyen a depositar y ciones de clase basada en los atributos que ellas usan.
retirar, y co nsiderando que las o p eraciones de no -esta Para la clase cuenta, los atributos saldo y Lím iteCré-
do in cluyen a co n su lta r saldo, re su m e n y L ím iteC rédi- dito pueden usarse para definir particiones. L as o p e ra
to, las pruebas se diseñan de m anera que las operaciones ciones se dividen en tres particiones: (1) O p eraciones
que cam bian el estad o , y aquellas que n o lo cam bian, que utilizan LimiteCrédito, (2) operaciones que m o d i
se ejerciten separadam ente. Entonces: fican L ím itecrédito, y (3) operaciones que n o utilizan
o m odifican L ím itecrédito. Las secuencias d e p ru eb a
P ru e b a p x : a b r ir - configurar - d e p o s ita r - d e p o sita r se diseñan p o r cada partición.
- r e t i r a r - r e t i r a r - cerra r.
P r u e b a p , : a b r ir - configurar - d e p o s ita r - resumen -
L a partición basada en categorías clasifica las op era
L ím ite c ré d ito - r e t i r a r - ce rra r. ciones de la clase basadas en la función genérica que cada
una lleva a cabo. Por ejem plo, las operaciones en la cla
La pru eb a p¡ cam bia el estado, m ientras que la p ru e se cuenta pueden clasificarse en operaciones de iniciali-
ba p2 ejercita las o p eraciones que no cam bian el estado zación (abrir, configurar), operacionescom putacionales
(excepto p o r las necesarias de la secuencia m ínim a de (depositar, retirar), consultas (saldo, resumen, Límite-
prueba). Crédito) y operaciones de term inación (cerrar).
El diseño de casos de prueba se v uelve m ás com plica ve rifC u en ta - ve rifN IP - [ [ v e r ifP ó liz a
do cuando la integración del sistem a OO com ienza. Es reg R etira r] I reqD epositar I reqlnfoCuenta ]r‘
en esta etapa en que la v erificació n de colaboraciones
entre clases com ienza. P ara ilu strar «la g eneración de Tarjetalnsertada
Verifica rCuenta
C ontraseña
casos de pru eb a in te rc la se s» [KIR94], se exp an d e el D epósito
VerificarPIN
VerificarP olííica
ejemplo de la ap licació n b an caria in troducida en la S ec R etirar
ReqRetirar
ción 23.5, p ara inclu ir las clases y colaboraciones de la EstadoCuenta
Req Depósito ValidarPIN
ATM te rm in a r
Figura 23.2. L a d ire c c ió n de las flech as en la F ig u ra IníoCuenta ValidarC uenta
Interfaz \ a t m | Banco
indica que se invo can co m o co nsecuencia de colabora A brirC uenta
de. usuafio i VerificarÉstíido
ciones im plícitas a los m ensajes. D epósitolnicial
EstadoD epósito TarjetaA utorizo
TarjetaA utorizo
Así com o la v erificació n de clases in d iv id u ales, la Im prim irE stadoC uenta
Desautorizar
TipoC uenta
LeerlnfoTarjeta Balance
v erificació n de c o lab o racio n es de clases p u ede c o m Cerra rCuenta d
O btenerC antidadE fectivo ncuiai
pletarse ap lican d o m éto d o s de p artició n y al azar, así Depósito
como pruebas basadas en el escenario y pruebas de co m Cerrai
portam iento. V alid a ción
\ Cajero C u e n ta
de in fo rm a ció n
23.6.1.P ru eb a d e m ú ltip le s c la s e s
F IG U R A 23.2. Grafo de colaboraciones de clase
Kirani y Tsai [KIR94] sugieren la secuencia siguiente para una aplicación bancaria [KIR94],
de pasos, p ara g enerar casos de pru eb a aleatorios para
múltiples clases:
U n caso de p ru e b a a le a to rio p ara la c la se banco
1. Para cada clase cliente, utilice la lista de operacio
podría ser:
nes de clase, p ara g enerar una serie de secuencias de
Prueba r 3 = verifC uenta - verifN IP - reqD epositai
pruebas al azar. L as o p eraciones en viarán m ensajes
a las otras clases servidoras. C on la finalidad de c o n sid e ra r a los co lab o rad o res
2. Para cada m ensaje que se genere, determ ine la clase involucrados en esta prueba, los m ensajes asociados con
co laboradora y la o peración co rre sp o n d ien te en el cada una de las operaciones m encionadas en el caso de
objeto servidor. prueba r3 deben ser tom ados en cuenta. Banco debe co la
3. Para cada o peración en el objeto servidor (invocada b o rar con infoValidación para e je cu tar verifC uenta y
por m ensajes enviados p o r el objeto cliente), d eter verifNIP. Banco debe colaborar con cuenta para ejecu
m ine los m ensajes que transm ite. tar reqD epositar. De aquí que un nuevo caso de prueba,
que ejercite estas colaboraciones, es:
4. Para cada uno de los m ensajes, determ ine el siguiente
nivel de o peraciones que son invocadas, e incorpore Prueba r 4 = verifC uentaBanco [validCuepta, níoValidación
éstas a la secuencia de pruebas.
- reqD epositar - [DepositarCuúnlJ
www.FreeLibros.org
Para ilu strar [KIR94], considérese una secuencia de
o peraciones p a ra la c la se banco re la tiv a a una clase L a aproxim ación para la prueba de partición de m ú l
A ™ (F igura 23.2): tiples clases es sim ilar a la aproxim ación usada para la
417
I N GEN IE RÍ A DEL S O F TW A RE . UN E N F O Q U E P R Á C T I C O
Las pruebas a diseñarse deben alcanzar una cober Uno extensa colección de ((consejos sobre
pruebas 0 0 » (incluyendo muchos referencias
tura de todos los estados [KIR94], Eso significa que las
útiles) puede encontrarse en:
secuencias de operaciones deben causar que la clase
w ww .kinetka.com /ootips/
cuenta haga transiciones por todos los estados:
www.FreeLibros.org
6 La simbologia UML se utiliza para el DTE que se ilustra en la Figura
23.3. Difiere ligeram ente de la simbología usada para los DTEs en la
parte tres de este libro.
418
CAPITULO 23 PRUEBAS ORIENTADAS A OBJETOS
JL £ £ £ E £ £ £ IA ¿ .
[AMB95] Ambler, S., «Using Use Cases», Software D eve [KIR94] Kirani, S., y W.T. Tsai, «Specification and Verifica-
lopment, Julio de 1995,pp. 53-61. tion of Object-Oriented Programs», Technical Report TR
[BER93] Berard, E.V., Essays on Ohject-Oriented Software 94-96, Computer Science Department, University of Min
Engineering, vol. 1,Addison-Wesley, 1993. nesota. Diciembre de 1994.
[BIN94a] Binder, R.V., «Testing Object-Oriented Systems:
[LIN94] Lindland, O.I., et al., «Understanding Quality in Con
A Status Report», American Programmer, vol. 7, n.° 4,
ceptual Modeling», IEEE Software, vol. 11, n.° 4, Julio de
Abril de 1994, pp. 23-28.
1994,pp. 42-49.
[BIN94b] Binder,R.V., «Object-Oriented Software Testing»,
C4CM,vol. 37, n.° 9, Septiembre de 1994, p. 29. [MAR94] Marick, B., The Craft o f Software Testing, Prenti-
[CHA93] DeChampeaux, D., D. Leay P. Faure, Object-Orien ce Hall. 1994.
ted System Development, Addison-Wesley, 1993.
[FIC92] Fichman, R., y C. Kemerer, «Object-Oriented and [MGR94] McGregor, J.D., y T.D. Korson, «Integrated Object-
conceptual Design Methodologíes», Computer, vol. 25, Oriented Testing and Development Processes», CACM,
n.° 10, Octubre de 1992, pp. 22-39. vol. 37, n." 9, Septiembre de 1994,pp. 59-77.
2 3 .1 . Describa con sus propias palabras por qué la clase es 2 3 .4 . Derive un conjunto de tarjetas índice CRC para Hogar-
la más pequeña unidad razonable para las pruebas dentro de Seguroy ejecute los pasos señalados en la Sección 23.2.2 para
un sistema OO. determinar si existen inconsistencias.
2 3 .2 . ¿Por qué debemos probar de nuevo las subclases ins- 2 3 .5 . ¿Cuál es la diferencia entre las estrategiasb a s a d a s en hilos
tanciadas de una clase existente si ésta y a ha sido probada por y aquellas estrategiasbasadas en uso para las pruebas de inte
completo? ¿Podemos usar los casos de prueba diseñados para gración? ¿Cómo cabe la pmeba de agrupación en ellas?
www.FreeLibros.org
dicha clase? 2 3 . 6 . Aplique la prueba aleatoria y la de partición a tres cla
2 3 .3 . ¿Por qué debe comenzar la «prueba» con las activida ses definidas en el diseño del sistema HogarSeguro produci
des de AOO y DOO? do por usted en el Problema 22.12.
419
IN GE NI E RÍ A DEL S O F TW A RE . UN E N F O Q U E P R Á C T I C O
Produzca casos de prueba que indiquen las secuencias de ope 23.10. Obtenga pruebas usando los métodos señalados en los
raciones que se invocarán. Problemas 23.6 y 23.7 para el sistema de e-mail considerado
23.7. Aplique la prueba de múltiples clases y las pruebas deri en el Problema 22.15.
vadas del modelo de comportamiento al diseño de HogarSe-
guro. 23.11. Obtenga pruebas usando los métodos señalados en los
Problemas 23.6 y 23.7 para el sistema ATC considerado en el
23.8. Obtenga pruebas usando los métodos señalados en los Problema 22.16.
Problemas 23.6 y 23.7 para el sistema S S R B descrito en el
Problema 22.13. 23.12. Obtenga cuatro pruebas adicionales usando cada
23.9. Obtenga pruebas usando los métodos señalados en los uno de los métodos señalados en los Problemas 23.6 y 23.7
Problemas 23.6 y 23.7 para el juego de vídeo considerado en para la aplicación bancaria presentada en las Secciones 23.5
el Problema 22.14. y 23.6.
La literatura para la prueba OO es relativamente escasa, aun Jorgenesen (Software Testing: A Cruftsman ’sApprouch,
que se ha expandido algo en años recientes. Binder (Testing CRC Press, 1995) y M cGregor y Sykes fObject-Oriented
Object-Oriented Systems: Models, Patterns, and Tools, Addi- Software Development, Van Nostrand Reinhold, 1992) pre
son-Wesley, 2000) ha escrito el tratamiento más extenso del senta capítulos dedicados al tema. Beizer (Black-BoxTes-
tema publicado hasta la fecha. Siegel y Muller (ObjectOrien- ting, Wiley, 1995) analiza una variedad de m étodos de
ted Software Testing:A HierarchicalApproach, Wiley, 1996) diseño de casos prueba los cuales son apropiados en un con
propusieron una estrategia práctica de prueba para sistemas texto O O .
OO. Marick (The Craft. o f Software Testing: Subsystem Tes Binder (Testing Object-Oriented Systems, Addison-Wes
ting Including Ohject-Based and Object-Oriented Testing, ley, 1996) y Marick [M A R 9 4 ] presenta tratamientos detalla
Prentice Hall, 1995) cubre la prueba tanto para software con dos de prueba O O . En resumen, muchas de las fuentes
vencional como para O O . anotadas para e l Capítulo 17 son en general aplicables a la
Antologías de publicaciones sobre pmeba OO han sido edi prueba O O .
tadas por Kung et al. (TestingObject-Oriented Software, IEEE Una amplia variedad de fuentes de información de prue
Computer Society, 1998)y Braude (OhjectOrientedAnalysis, ba orientada a objetos y temas relacionados se encuentran dis
Design and Testing: Selected Readings, IEEE Computer ponibles en intemet. Una lista reciente a sitios (páginas) web
Society, 1998). Estos tutoriales de IEEE proporcionan una inte que son relevantes a la prueba OO puede encontrarse en
resante perspectiva histórica en el desarrollo de prueba O O . h t t p ://w w w .p r e s s m a n 5 .c o m
www.FreeLibros.org 420
C A P ÍT U L O
^ m M É T R IC A S T É C N IC A S PARA S IS T E M A S
A ¿X O R IE N T A D O S A O B JE T O S
N secciones anteriores de este libro, se mencionó que las métricas y mediciones son com
La «relación amor-odio» que Berard declara es real. Más aun, como los sistemas OO se
encuentran cada vez más implantados, es esencial que los ingenieros en software posean medi
ciones cuantitativas, para la evaluación de calidad de diseños, a niveles arquitectónicos y de
componentes.
Estas mediciones permiten al ingeniero evaluar el software al inicio del proceso, haciendo
cambios que reducirán la complejidad y mejorarán la viabilidad, a largo plazo, del producto
final.
VISTAZO RÁPIDO
¿Qué es? Construir software OO ha sido la arquitectura 0 0 ,la s clases y sub riores. Los resultados del análisis son
una actividad de ingeniería, que confía sistemas que conforman la arquitectu interpretados para obtener una visión
más en el juicio, folklore y referencias ra, las operaciones y atributos que inherente a la calidad del software, y
cualitativas, que en la evaluación cuan constituyen una clase. El comprobador los resultados de la interpretación con
titativa. Las métricas OO se han intro necesita lasreferencias cuantitativas, ducen a la modificación de resultados
ducido para ayudar a un ingeniero del que le ayudarán en la selección de de trabajo deducidos del análisis, dise
software a usar el análisis cuantitativo, casos de prueba y sus objetivos. Las ño, codificación o prueba.
para evaluar la calidad en el diseño métricas técnicas proporcionan una ¿Cuál e s e l p rod u cto o b ten id o ? Las
antes de que un sistema se construya. base desde la cual el análisis, el dise métricas de software que se calculan
El enfoque de métricas OO está en la ño y la verificación pueden conducirse mediantelosdatos recolectados délos
clase —la piedra fundamental de la de manera más objetiva, y ser evalua modelos de análisis y diseño, código
arquitectura 0 0 —, dos más cuantitativamente. fuente y casos de prueba.
¿Quién lo h a c e ? Les ingenieros del soft ¿C uáles son lo s p asos? El primer paso ¿Cómo p u e d o e s ta r se g u r o d e q u e
ware se ayudan de las métricas para en el proceso de medición es deducir lo h e h ech o correctam ente? Debe
construir software de mayor calidad. lasmediciones de software y métricas establecer los objetivos de las medi
¿P or q u é e s im p ortan te? Como se que pudieran ser apropiadas para la ciones antes de que la recolección de
expuso en el vistazo rápido del Capí representación del software en consi datos comience, definiendo cada métri
tulo 19, la evaluación cualitativa de deración. Después, se recolectan los ca OO de manera concreta. Definir
software debe complementarse con el datos requeridos para aplicar las métri solamente algunas métricas y después
análisis cuantitativo. Un ingeniero del cas formuladas. Una vez computados, utilizarlas, para obtener una vista inhe
software necesita un criterio objetivo se analizan basándose en orientacio rente a la calidad de un producto de
para ayudarse a conducir el diseño de nes preestablecidas y en datos ante ingeniería de software.
www.FreeLibros.org 421
INGENIERÍA DEL S O F TW A RE . UN E N F O Q U E P R Á C T I C O
Las m étricas p ara cualq u ier p roducto de ingeniería son Ya que el softw are convencional enfatiza la fúnción
reguladas p o r las c a ra c terístic a s ú nicas del p roducto. co m o un m ecan ism o de lo calizació n , las m étricas de
Por ejem plo, sería inútil o sin sentido con tar las m illas softw are se han enfo cad o a la estructura interna o ju n
por galón de consum o p ara u n autom óvil eléctrico. La ciones de com plejidad (por ejem plo, longitud del m ódu
m étrica es firm e p ara los autom óviles convencionales lo, cohesión o com plejidad ciclom ática), o a la m anera
(es decir, im pulsados p o r sistem as de com bustión in ter com o las funciones se conectan entre sí (acoplam iento
na a gasolina) pero no se aplica cuando el m odo de p ro de m ódulos).
pulsión cam bia radicalm ente. E l softw are o rien tad o a
objetos e s fu n d am en talm en te d ife re n te del so ftw are
desarrollado con el uso de m étodos convencionales. Por
tm sm
Métricostécnicas pam software convencional
esta razón, las m étricas para sistem as O O d eben ser afi se describen en el Capitulo 19.
www.FreeLibros.org
1 Este estudio ha sido adaptado de [BER95]
422
CAPÍTULO 24 MÉ TR IC A S T É C N I C A S P ARA SI ST EM AS O R IE N TA DO S A OBJE TO S
n e s , y lo s e s ta d o s d e la c la s e , d e f in id o s p o r v a lo r e s d e u n a je r a r q u í a d e c la s e s . E n g e n e r a l, e l s o f t w a r e c o n
a t r ib u t o s e s p e c íf ic o s . v e n c io n a l n o c u m p le e s ta c a r a c te r ís tic a .
L a e n c a p s u l a c i ó n i n f l u y e e n la s m é t r i c a s , c a m b i a n Y a q u e la h e r e n c ia e s u n a c a r a c te r ís t ic a v it a l e n
d o e l e n f o q u e d e la s m e d i c i o n e s d e u n m ó d u l o s i m p l e , m u c h o s s is t e m a s O O , m u c h o s m é t o d o s O O s e c e n t r a n
a u n p a q u e te d e d a to s ( a t r ib u to s ) y m ó d u lo s d e p r o c e e n e lla . L o s e je m p lo s ( d is c u t id o s m á s a d e la n te e n e s te
s o ( o p e r a c io n e s ) . c a p í t u lo ) in c l u y e n m ú lt ip le s h ijo s ( in s ta n c ia s in m e d ia
E n s u m a , la e n c a p s u la c ió n e le v a la m e d ic ió n a u n ta s d e u n a c la s e ) , m ú lt ip le s p a d r e s ( g e n e r a liz a c io n e s
n iv e l d e a b s tr a c c ió n m á s a lto . in m e d ia t a s ) , y je r a r q u í a s d e c la s e a u n n i v e l d e a n id a -
P o r e je m p lo , m á s a d e la n te e n e s te c a p í t u lo s e i n t r o m i e n t o ( p r o f u n d id a d d e u n a c la s e e n la j e r a r q u í a d e
d u c i r á n la s m é t r i c a s a s o c ia d a s c o n e l n ú m e r o d e o p e r a - h e r e n c ia ) .
c i o n e s p o r c la s e . C o n t r a s t a e s t e n i v e l d e a b s t r a c c i ó n c o n
la s m é t r i c a s q u e s e c e n t r a n e n c o n t a r c o n d i c i o n e s b o o -
24.2.5. A b s t r a c c i ó n
le a n a s ( c o m p l e j i d a d c i c l o m á t i c a ) o e n c o n t a r l í n e a s d e
L a a b s tr a c c ió n e s u n m e c a n is m o q u e p e r m it e a l d is e
c ó d ig o .
ñ a d o r c o n c e n t r a r s e e n lo s d e t a lle s e s e n c ia le s d e u n c o m
p o n e n te d e p r o g r a m a ( y a s e a n d a to s o p ro c e s o s ),
24.2.3. O c u l t a c i ó n d e i n f o r m a c ió n p r e s ta n d o p o c a a t e n c ió n a lo s d e t a lle s d e b a jo n iv e l.
L a o c u lt a c ió n d e in f o r m a c ió n s u p r im e ( u o c u lt a ) lo s C o m o B e r a r d d e c la r a : « la a b s tr a c c ió n e s u n c o n c e p to
d e t a lle s o p e r a c io n a le s d e u n c o m p o n e n t e d e p r o g r a m a . r e la t iv o . A m e d id a q u e s e m u e v e a n iv e le s m á s a lto s d e
S o lo s e p r o p o r c io n a la in f o r m a c ió n n e c e s a r ia p a r a a c c e a b s tr a c c ió n , s e ig n o r a n m á s y m á s d e ta lle s , e s d e c ir , s e
d e r a l c o m p o n e n te a a q u e llo s o t r o s c o m p o n e n te s q u e tie n e u n a v is ió n m á s g e n e ra l d e u n c o n c e p to o e le m e n
d e s e e n a c c e d e r. to . A m e d id a q u e s e m u e v e a n iv e le s d e a b s tr a c c ió n m á s
U n s is t e m a O O b ie n d is e ñ a d o d e b e im p le m e n t a r b a jo s , s e in t r o d u c e n m á s d e ta lle s , e s d e c ir , s e tie n e u n a
o c u l t a c i ó n d e i n f o r m a c i ó n . P o r e s t a r a z ó n , la s m é t r i c a s v is ió n m á s e s p e c íf ic a d e u n c o n c e p to o e le m e n to .»
q u e p r o p o r c io n a n u n a in d ic a c ió n d e l g r a d o d e o c u lt a Y a q u e u n a c la s e e s u n a a b s t r a c c ió n , q u e p u e d e v is u a
c ió n lo g r a d o s u m in is t r a n u n 'in d ic io d e la c a lid a d d e l liz a r s e a d if e r e n t e s n iv e le s d e d e t a lle d e d if e r e n t e s d e
d is e ñ o O O . m a n e r a s ( p o r e je m p lo , c o m o u n a lis t a d e o p e r a c io n e s ,
c o m o u n a s e c u e n c ia d e e s ta d o s , c o m o u n a s e r ie d e c o la
b o r a c i o n e s ) , la s m é t r i c a s O O r e p r e s e n t a n a b s t r a c c i o n e s
24.2.4. H e r e n c i a e n t é r m in o s d e m e d ic io n e s d e u n a c la s e ( p o r e je m p lo ,
L a h e r e n c i a e s u n m e c a n i s m o q u e h a b i l i t a la s r e s p o n n ú m e r o d e in s t a n c ia s p o r c la s e p o r a p lic a c ió n , n ú m e r o
s a b ilid a d e s d e u n o b je t o , p a r a p r o p a g a r s e a o t r o s o b je o c la s e s p a r a m e t r i z a d a s p o r a p l i c a c i ó n , y p r o p o r c i ó n d e
to s . L a h e r e n c ia o c u r r e a tr a v é s d e to d o s lo s n iv e le s d e c la s e s p a r a m e t r i z a d a s c o n c la s e s n o p a r a m e t r i z a d a s ) .
M u c h o a c e r c a d e l d is e ñ o o r ie n t a d o a o b je t o s e s s u b d a d . L a p o b l a c i ó n s e m i d e h a c i e n d o u n r e c u e n t o d e la s
je t iv o — u n d is e ñ a d o r e x p e r im e n ta d o « s a b e » c o m o e n t i d a d e s 0 0 , c o m o la s c la s e s u o p e r a c i o n e s . L a s m e d i
c a r a c t e r iz a r a u n s is t e m a 0 0 , p a r a q u e im p le m e n t e d a s d e v o lu m e n s o n id é n t ic a s a la s d e p o b la c ió n , p e r o
e f e c t i v a m e n t e l o s r e q u e r i m i e n t o s d e l c lie n t e — . P e r o , s e r e a liz a n d in á m ic a m e n te - e n u n in s ta n te d e tie m p o
c u a n d o u n m o d e lo d e d is e ñ o 0 0 c re c e e n ta m a ñ o y d a d o - . L a lo n g itu d e s la m e d id a d e u n a c a d e n a d e e le
c o m p le jid a d , u n a v is i ó n m á s o b je t iv a d e la s c a r a c t e m e n to s d e d is e ñ o in te r c o n e c t a d o s ( p o r e je m p lo , la p r o
r ís tic a s d e l d is e ñ o p u e d e b e n e f ic ia r a l d is e ñ a d o r e x p e f u n d id a d d e u n á r b o l d e h e r e n c ia e s u n a m e d id a d e
r im e n t a d o ( q u e a d q u ie r e v is t a a d ic io n a l) , y a l n o v a t o lo n g it u d ) . L a s m é tr ic a s d e f u n c io n a lid a d p r o p o r c io n a n
( q u e o b tie n e in d ic a d o r e s d e c a lid a d q u e d e o t r a m a n e u n a in d ic a c ió n in d ir e c ta d e l v a lo r e n tr e g a d o a l c lie n te
r a n o e s ta r ía n d is p o n ib le s ) . p o r u n a a p lic a c ió n O O .
C o m p le jid a d . A s í c o m o e l ta m a ñ o , e x is te n d if e r e n
¿Qué características pueden
§
te s e n fo q u e s d e la c o m p le jid a d d e l s o ftw a r e [ Z U S 9 7 ] ,
medirse cuando se evalúa W h i t m i r e la d e fin e e n té r m in o s d e c a r a c te r ís tic a s e s tr u c -
un diseño OO? t u r a le s , e x a m in a n d o c ó m o s e in t e r r e la c io n a n la s c la s e s
C o m o p a r t e d e u n t r a t a m i e n t o d e t a l l a d o d e la s m é t r i d e u n d is e ñ o 0 0 c o n o tra s .
c a s d e s o f t w a r e p a r a s is t e m a s 0 0 , W h i t m i r e [ W H I 9 7 ] A c o p la m ie n t o . L a s c o n e x io n e s f ís ic a s e n tr e lo s e le
d e s c r ib e n u e v e c a r a c te r ís tic a s d is t in t a s y m e d ib le s d e m e n to s d e l d is e ñ o 0 0 ( p o r e je m p lo , e l n ú m e r o d e c o la
www.FreeLibros.org
u n d is e ñ o 0 0 : b o r a c io n e s e n t r e c la s e s o e l n ú m e r o d e m e n s a je s
T a m a ñ o . E l ta m a ñ o s e d e f in e e n té r m in o s d e c u a t r o in t e r c a m b ia d o s e n tr e o b je t o s ) , r e p r e s e n ta n e l a c o p la
e n fo q u e s : p o b la c ió n , v o lu m e n , lo n g it u d y f u n c io n a li m ie n t o d e n t r o d e u n s is t e m a O O .
423
INGENIERÍA DEL SO FTW AR E. UN E N F O Q U E P R Á C T I C O
Por esta razón, las medidas y métricas para una clase Así mismo, la clase «padre» es de las que heredan las
individual, lajerarquía de clases y las colaboraciones subclases (algunas veces llamadas hijas), sus atributos
de clases poseen un valor incalculable, para el ingenie y operaciones. La clase, normalmente, colabora con
ro del software que ha de evaluar la calidad del diseño. otras clases. Cada una de estas características pueden
En capítulos anteriores se estudió que la clase encap- usarse como base de la medición2,
sula operaciones (procesamiento) y atributos (datos).
www.FreeLibros.org
lismo que algunas de las m étricas OO no proporcionan. De cualquier
m anera, es razonable declarar que todas las m étricas proporcionan
una visión útil para el ingeniero de software.
424
CAPÍTULO 24 MÉTRIC AS T É C N I C A S PARA SI STE MAS OR IE N TA DO S A O B J E T O S
www.FreeLibros.org
3 Chidamber, Darcy y K em erer usan el térm ino m étodos en vez de
operaciones. Su utilización del térm ino es reflejada en esta sección.
425
I N GEN IE RÍ A DEL S O F T W A R E . UN EN F O Q U E P R A C T I C O
s e c u e n c ia d e c o m p r o b a c i ó n ( C a p í t u lo 2 3 ) s e in c r e m e n t a
ta m b ié n . A s í m is m o , se d ic e q u e , a s í c o m o la R P C
a u m e n t a , l a c o m p l e j i d a d d e l d i s e ñ o g l o b a l d e l a c la s e
s e in c r e m e n ta .
Carencia de cohesión en los métodos (CCM ). C a d a
m é t o d o d e n t r o d e u n a c la s e , C , a c c e d e a u n o o m á s a t r i
b u t o s ( t a m b ié n lla m a d o s v a r ia b le s d e in s t a n c ia ) C C M
e s e l n ú m e r o d e m é t o d o s q u e a c c e d e a u n o o m á s d e lo s
m is m o s a t r ib u t o s 4. S i n o e x is te n m é to d o s q u e a c c e d a n
a l o s m i s m o s a t r i b u t o s , e n t o n c e s C C M = O.
P a ra ilu s tr a r e l c a s o e n e l q u e C C M e s d ife r e n te d e 0 ,
c o n s id é r e s e u n a c la s e c o n 6 m é t o d o s . C u a t r o d e l o s m é t o
d o s t ie n e n u n o o m á s a t r ib u to s e n c o m ú n (e s d e c ir , a c c e
d e n a a t r ib u to s c o m u n e s ) . D e e s ta m a n e r a , C C M = 4 .
S i C C M e s a l t o , lo s m é t o d o s d e b e n a c o p la r s e a o t r o ,
p o r m e d io d e lo s a t r ib u to s . E s to in c r e m e n t a la c o m p le
j i d a d d e l d i s e ñ o d e c la s e s . E n g e n e r a l , l o s v a l o r e s a l t o s
p a r a C C M im p li c a n q u e la c la s e d e b e d is e ñ a r s e m e jo r
d e s c o m p o n i e n d o e n d o s o m á s c la s e s d i s t i n t a s . A u n q u e
e x is ta n c a s o s e n lo s q u e u n v a lo r a lt o p a r a C C M e s ju s -
t if ic a b le , e s d e s e a b le m a n t e n e r la c o h e s ió n a lta , e s d e c ir ,
m a n t e n e r C C M b a jo .
www.FreeLibros.org
4 l a definición formal e s un poco m ás compleja. Véase [CHI94] para 5 Para un tratam iento m ás com pleto, véase [LOR94]
m ás detalle.
426
CAPÍTULO 24 M É TR IC A S T É C N I C A S P ARA SI ST EM AS O R IE N TA DO S A O B J E T O S
índice de especialización (IES). El índice de e sp e FA = [ME¡ e s-c lie n te (C¡, C .)] / (TC 2 - T C )
1 J 1 J
cialización prop o rcio n a una indicación aproxim ada del donde los sum atorios van desde i = 1 hasta TC y desde
grado de especialización, p ara cada una de las subcla j = 1 hasta TC. L a función
ses en un sistem a OO. La especialización se puede alcan
www.FreeLibros.org
zar añadiendo o elim inando operaciones, pero tam bién E s cliente = 1, si existe una relación entre la clase
redefiniendo. cliente, C c y la clase servidora C v y C c ^ Cs.
IE = [Ñ O R x n ivel ] / M tota¡ E s - d ie n te = 0, en cualquier otro caso.
427
I N GEN IE RÍ A DEL S O F T W A R E . UN EN F O Q U E P R A C T I C O
F a c t o r d e p o lim o r f is m o ( F P ) .H a r r is o n , C o u n s e lly
MJCj) =a l n ú m e ro d e m é to d o s n u e vo s.
N it h i [ H A R 9 8 ] d e fin e n F P c o m o « e l n ú m e ro de m é to M J C¡) =a l n ú m e ro d e m é to d o s re d e fin id o s .
dos q u e re d e fin e n m é to d o s h e re d a d o s , d iv id id a p o r el DC(C¡) =a l n ú m e ro d e d e s c en d ie n te s (e l n ú m e ro de
m á x im o n ú m e ro d e p o s ib le s s itu a c io n e s p o lim ó rfic a s clases d e s c en d ie n te s d e u n a c lase b a se ).
d is tin ta s ...; de esta m a n e ra , e l F P es u n a m e d id a in d i H a r r is o n , C o u n s e ll y N it h i [ H A R 9 8 ] p re s e n ta n un
re c ta d e la c a n tid a d r e la tiv a de lig a d u ra d in á m ic a e n u n a n á lis is d e ta lla d o d e F H M , F A y F P e n c o n ju n to con
sis te m a » . L a c o le c c ió n de m é tric a s M D O O d e fin e e l F P o tras m é tric a s , y e x a m in a n su v a lid e z d e u so, en la e v a
de la s ig u ie n te m a n e ra : lu a c ió n de la c a lid a d d e l d iseñ o .
Y a q u e la c la s e es la u n id a d d o m in a n te e n lo s s is te e n v ia d o s p o r u n a sola o p e ra c ió n se in c re m e n ta n , es má$
m a s 0 0 , se h a n p ro p u e s to m e n o s m é tric a s p a ra o p e p ro b a b le que las re sp o n sa b ilid a d e s n o h a y a n sid o correc
ra c io n e s q u e las re la c io n a d a s c o n las clases. C h u rc h e r ta m e n te a sig n ad as d e n tro d e la clase.
y S h e p p e r d [C F 1 U 9 5 ] d is c u te n lo a n te r io r c u a n d o
iiü m jiü iim i-iii
d e c la ra n q u e :
Las métricas pueden aplicarse a nivel de componentes,
Resultados de estudios recientes indican que los métodos
pero también pueden aplicarse a operaciones. Véase el
tienden a ser pequeños, tanto en términos de número de sen
tencias como en complejidad lógica [WIL93], sugiriendo que
Capítulo 19 para más detalles.
la estructura de conectividddde un sistema debe ser mas impor
tante que el contenido de los módulos individuales.
D e c u a lq u ie r m o d o , e x is te n a lg u n as id e a s que p u e C o m p l e j i d a d d e o p e r a c ió n ( C O ) . L a c o m p le jid a d
d e n lle g a r a a p re c ia rs e , e x a m in a n d o las c a ra c te rís tic a s de u n a o p e ra c ió n p u e d e ser c a lc u la d a usand o c u alq u iera
p ro m e d io p a ra lo s m é to d o s (o p e ra c io n e s ). A c o n tin u a de las m é tric a s d e c o m p le jid a d (C a p ítu lo 1 9 ) p ro p u es
c ió n se re s u m e n tres s im p le s m é tric a s , p ro p u es ta s p o r tas p a ra e l s o ftw a re c o n v e n c io n a l [ Z U S 9 0 ] , Y a que las
L o r e n z y K id d [ L O R 9 4 ] : o p e ra c io n e s d e b e n lim ita rs e a u n a re s p o n s a b ilid a d espe
c ífic a , e l d is e ñ a d o r d e b e ría e s fo rz a rs e p o r m a n te n e r la
T a m a ñ o m e d io d e o p e r a c ió n (T O medj0). A u n q u e
C O ta n b a ja c o m o sea p o s ib le .
las lín e a s de c ó d ig o p o d ría n ser usadas c o m o u n in d i
c ad o r p a ra e l ta m a ñ o d e o p e ra c ió n , la m e d id a L D C ad o N ú m e r o d e p a r á m e t r o s d e m e d ia p o r o p e ra c ió n
le c e de to d o s los p ro b le m a s d is c u tid o s e n e l C a p ítu lo 4. ( N P med ia )' T a n la rg o c o m o sea e l n ú m e ro d e p arám e
P o r esta ra z ó n , e l n ú m e ro d e m e n s a je s e n v ia d o s p o r la tro s de o p e ra c ió n , m á s c o m p le ja s erá la c o la b o ra c ió n
o p e ra c ió n p ro p o rc io n a u n a a lte rn a tiv a p a ra e l ta m a ñ o e n tre o b je to s . E n g e n e ra l, N P media d e b e m a n te n e rs e tan
de o p e ra c ió n . A m e d id a q u e e l n ú m e r o d e m e n s a je s b a ja c o m o sea p o s ib le .
www.FreeLibros.org
« c o m p ro b a b ilid a d » d e u n s is te m a 0 0 . L a s m é tric a s se tos c o la te ra le s .
428
C A P I T U L O 24 M ÉT R IC A S TÉ C N IC A S PARA SISTEMAS O R I E N T A D O S A O B I E T O S
C o m o s e p r e s e n tó e n la P a r te D o s d e e s te li b r o , e l t r a m a c ió n d e l ta m a ñ o d e im p le m e n t a c ió n d e l s o ftw a r e . E l
b a jo d e l j e f e d e p r o y e c t o e s p l a n e a r , c o o r d i n a r , r e g i s t r a r ta m a ñ o e s d ir e c ta m e n te p r o p o r c io n a l a l e s f u e r z o y la
y c o n tr o la r u n p r o y e c to d e s o ftw a r e . E n e l C a p ítu lo 2 0 d u r a c ió n . L a s s ig u ie n t e s m é t r ic a s [ L O R 9 4 ] p u e d e n p r o
se p r e s e n t a r o n a lg u n o s d e lo s a s p e c to s e s p e c ia le s a s o p o r c io n a r u n a v is ió n s o b re e l ta m a ñ o d e l s o ftw a r e :
c ia d o s c o n l a g e s t i ó n d e p r o y e c t o p a r a p r o y e c t o s O O .
P e r o ¿ q u é h a y a c e r c a d e la s m é t r i c a s '? ¿ E x i s t e n m é t r i c a a fflS E B g a
c a s O O e s p e c ia liz a d a s q u e p u e d a n s e r u t iliz a d a s p o r e l I a oplicabilidod de un modelo de procesos evolutivos,
je f e d e p r o y e c t o p a r a p r o p o r c io n a r u n a v is ió n in te r n a llamado el modelo recursivo/porolelo, se discute en el
a d ic io n a l s o b r e e l p r o g r e s o d e s u p r o y e c t o ? 8. L a r e s Capítulo 20.
p u e s ta , d e s d e lu e g o e s « s í» .
L a p r im e r a a c tiv id a d e je c u ta d a p o r e l je f e d e p r o
Número de escenario (NE). E l n ú m e r o d e e s c e n a
y e c t o e s p l a n i f i c a r , y u n a d e la s p r i m e r a s t a r e a s d e p l a
r io s o c a s o s u s o ( C a p ítu lo s 11 y 2 1 ) e s d ir e c ta m e n te
n if ic a c ió n e s la e s t im a c ió n . R e to m a n d o e l m o d e lo
p r o p o r c i o n a l a l n ú m e r o d e c la s e s r e q u e r i d a s p a r a c u b r i r
e v o lu tiv o d e p r o c e s o s , la p l a n i f ic a c ió n s e v u e lv e a r e v i
lo s r e q u is it o s , e l n ú m e r o d e e s ta d o s p a r a c a d a c la s e , e l
s a r d e s p u é s d e c a d a it e r a c ió n d e l s o ft w a r e . D e e s te
n ú m e r o d e m é to d o s , a t r ib u to s y c o la b o r a c io n e s . E l N E
m o d o , la p l a n i f ic a c ió n ( y s u s e s t im a c io n e s d e p r o y e c
e s u n im p o r t a n t e in d ic a d o r d e l ta m a ñ o d e u n p r o g r a m a .
to) e s r e v i s a d a n u e v a m e n t e d e s p u é s d e c a d a i t e r a c i ó n
de A O O , D O O e in c lu s o P O O . Número de clases clave (NCC). U n a c l a s e c l a v e s e
U n o d e lo s a s p e c to s c la v e , a l q u e d e b e h a c e r f r e n t e c e n tr a d ir e c ta m e n te e n e l d o m in io d e l n e g o c io p a r a e l
un je f e d e p r o y e c to d u r a n te la p la n if ic a c ió n , e s u n a e s ti p r o b le m a , y te n d r á u n a m e n o r p r o b a b ilid a d d e s e r im p le -
www.FreeLibros.org
7Véase la Sección 24.4.1 para una descripción de NCC y APM 8 Una descripción interesante de la colección de m étricas CK (Sec
ción 24.4.1) para el uso en la adm inistración de la to m a de decisio
nes puede encontrarse en [CH198],
429
IN GE NI ER ÍA DEL S O F T W A R E . UN EN F O Q U E P R Á C T I C O
MSHMM___________________
El software orientado a objetos es fundam entalm entedife- L as m é tric a s o rie n ta d a s a o p e ra c io n e s se centran
rente al softw are desarrolladocon el uso de m étodos co n en el tam añ o y co m p le jid ad de las o p eracio n es in d i
vencionales. Es p o r esto que las m étricas para sistem as viduales. S in e m b a rg o , es im p o rtan te h ac er n o tar que
O O se enfocan en la ponderación que puede aplicarse a la p rim e ra p ara las m é trica s de d ise ñ o O O es a nivel
las clases y a las características del diseño — lo c a liz a de clases.
ció n , encapsulación, ocultam ientode inform ación, heren Se ha propuesto una am plia variedad de m étricas OO
cia y técnicas de abstracción de objetos— , que definen para evaluar la com probabilidad de un sistem a OO. Estas
a la clase com o única. m étricas se centran en la encapsulación, herencia, com
L a co lección de m étricas C K define seis m étricas de plejidad de las clases y polim orfism o. M uchas de estas
softw are o rientadas a la clase que se centran en la cla m étricas han sido adaptadas de la colección CK y de las
se y en la je ra rq u ía de clases. L a co lección de m étricas m étricas propuestas por L orenz y K idd. O tras han sido
tam b ién inco rp o ra m étricas p ara evalu ar las co labora propuestas p o r Binder.
ciones en tre clases y la cohesión de m étodos que re si L as c arac terística s p o n d erab les del m odelo de aná
den d en tro de la clase. A l n ivel o rien tad o a clases, la lisis y d iseño p u ed en a y u d ar al je fe de proyecto de un
colección CK puede co m plem entarse con las m étricas sistem a O O en la p lan ifica ció n y reg istro de las acti
propuestas p o r L orenz y K idd y la co lección de m é tri v idades. El n ú m ero de e scen ario s (casos de uso), cla
cas M D O O . E stas incluyen p o n deraciones de «tam año» ses c lav e y su b siste m a s p ro p o rc io n a n in fo rm ació n
de clase, y otras m étricas que p roporcionan u n a visión acerca del nivel de esfuerzo requerido para implem entar
acerca del grado de especialización de las subclases. el sistem a.
www.FreeLibros.org
9 Esto sólo es verdad h asta que una robusta librería de com ponentes
reutilizables se desarrolla para un dom inio particular.
430
CAPÍTULO 24 M É T R I C A S T É C N I C A S P A R A S I S T E M A S O R I E N T A D O S A O BJETOS
PROBLEMAS Y P P K T O S A CO NSIDERAR
24.1. R e v is e la s m é tr ic a s p re s e n ta d a s e n e s te c a p ítu lo y e n el
N ú m e ro NGE NCC NSUB E s fu e rzo
C a p ítu lo 19. ¿ C ó m o p o d ía c a r a c te r iz a r la s d if e re n c ia s s e m á n
de p ro vecto (d ía s)
ticas y s in tá c tic a s e n tr e la s m é tric a s p a ra s o f tw a r e c o n v e n
cio n al y O O ? 1 34 60 3 900
24.2. ¿ C ó m o e s q u e la lo c a liz a c ió n a fe c ta la s m é tric a s d e s a 2 55 75 6 1.575
rro lla d a s p a r a s o ftw a re c o n v e n c io n a l y O O ?
3 122 260 8 4.420
24.3. ¿Por q u é n o se h a c e m á s é n fa s is e n la s m é tric a s OO q u e
ab o rd an la s c a r a c te rís tic a s e s p e c íf ic a s d e la s o p e ra c io n e s r e s i 4 45 66 2 990
d e n te s d e n tro d e u n a c la s e ?
5 80 124 6 2.480
24.4. R e v is e la s m é tr ic a s d e s c rita s e n e s te c a p ítu lo y s u g ie ra
a lg u n as q u e a b o rd e n d ire c ta o in d ire c ta m e n te e l o c u lta m ie n -
to d e in fo rm a c ió n . S e d is p o n e d e u n n u e v o p r o y e c to q u e s e e n c u e n tr a
24.5. R e v is e la s m é tr ic a s d e s c rita s e n e s te c a p ítu lo y s u g ie ra e n la s p r im e r a s fa s e s d e A O O . S e e s t im a q u e p a r a e s te
alg u n as q u e a b o rd e n d ire c ta o in d ire c ta m e n te la a b s tra c c ió n . p r o y e c t o s e d e s a r r o lla r á n 9 5 c a s o s p r á c tic o s . E s tim a r :
24.6. U n a c la s e x p o s e e 12 o p e ra c io n e s . S e h a c a lc u la d o la a . e l n ú m e r o t o t a l d e c la s e s q u e s e r á n n e c e s a r ia s p a r a
c o m p le jid a d c ic lo m á tic a p a r a to d a s la s o p e r a c io n e s d e l s is te im p le m e n t a r e l s is t e m a ;
m a OO y e l v a lo r p ro m e d io d e la c o m p le jid a d d e l m ó d u lo e s b. l a c a n t i d a d t o t a l d e e s f u e r z o q u e s e r á n e c e s a r i a p a r a
4. P a ra la c la s e x la c o m p le jid a d d e la s o p e ra c io n e s d e la 1 a im p le m e n t a r e l s is t e m a .
la 1 2 e s 5 ,4 ,3 ,6 ,8 ,2 ,2 ,5 ,5 ,4 ,4 r e s p e c tiv a m e n te . C a lc u la rM P C .
2 4 .1 2 . Su profesor le proporciona una lista de métricas OO
24.7. C o n r e s p e c to a la s F ig u r a s 2 0 .8 a y b , c a lc u le e l v a lo r procedente de este capítulo. Calcule los valores de estas métri
A P H p a r a c a d a u n o d e lo s á rb o le s d e h e re n c ia . ¿ C u á l e s e l cas para uno o más de los problemas que se indican a conti
v a lo r d e NDD p a ra la c la s e x2 d e a m b o s á rb o le s? nuación:
24.8. A c u d a a [C H I94] y p re s e n te u n a d e sc rip c ió n d e u n a p á g i a . e l m o d e lo d e d is e ñ o p a r a e l d is e ñ o H o g a r S e g u r o .
na re fe re n te a la d e f in ic ió n fo rm a l d e la m é tr ic a C C M .
b . e l m o d e lo d e d is e ñ o p a r a e l s is t e m a S S R B d e s c r it o
24.9. E n la F ig u r a 2 0 .8 b , ¿ c u á l e s e l v a lo r d e N O A p a r a la s
e n e l p r o b le m a 1 2 .1 3 .
cla se s x3 y x4?
c. e l m o d e l o d e d i s e ñ o p a r a e l j u e g o d e v í d e o c o n s i d e
24.10. C o n r e s p e c to a la F ig u ra 2 0 .8 b su p o n g a q u e la s c u a
r a d o e n e l p r o b le m a 2 2 .1 4 .
tro o p e ra c io n e s h a n s id o in v a lid a d a s e n e l á rb o l d e h e re n c ia
(jerarquía d e c la s e s ),¿ c u á l e s e l v a lo r d e IE p a ra e s a je ra rq u ía ? d . e l m o d e lo d e d is e ñ o p a r a e l c o r r e o e le c t r ó n ic o c o n
s id e r a d o e n e l p r o b le m a 2 2 .1 5 .
24.11. U n e q u ip o d e s o ftw a re h a f in a liz a d o c in c o p r o y e c
tos h a sta la fe ch a . L o s d a to s sig u ie n te s h a n sid o re c o g id o s p a ra e . e l m o d e lo d e d is e ñ o p a r a e l p r o b le m a C T A c o n s id e
to d o s lo s ta m a ñ o s d e lo s p r o y e c to s : r a d o e n e l p r o b le m a 2 2 .1 6 .
Una variedad de libros de AOO, DOO y Comprobación OO (O bject-O rien tedM etrics: M e asures o f C om plexity, Prentice-
(véase O tras lecturas yfu e n te s d e inform ación en los Capítu Hall, 1996) ofrecen los únicos libros dedicados a métricas
los 20, 21 y 22) que hacen referencia de paso a las métricas O O . Otros libros dedicados a las métricas de software con
OO, pero hay pocos que abordan el tema con detalle. Los libros vencional (véase o tra s lectu ras y fu e n te s d e inform ación en
escritos por Jacobson (O hject-O rientedSoftw are Engineering, los Capítulos 4 y 19) contienen discusiones lim itadas de
Addison-Wesley, 1994) y Graham (O h je c to -O rie n te d M et- métricas O O .
hods, Addison-Wesley, segunda edición, 1993).Proporcionan Una amplia variedad de fuentes de información para métri
un tratamiento más extenso que la mayoría. cas orientadas a objetos y temas relacionados se encuentra
Whitmire [WHI97] presenta el tratamiento matemática y disponible en intemet. Una lista reciente de referencias a sitios
extensamentemás sofisticado de las métricas OO publicadas (páginas) web relevantes a las métricas OO pueden encon
a la fecha. Lorenz y Kidd [LOR94] y Hendersen-Sellers trarse en h ttp ://w w w . m h h e .p re s s m a n 5 .c o m
www.FreeLibros.org 43 1
www.FreeLibros.org
PARTE
V
TEM AS AVANZADOS
EN INGENIERÍA
DEL SOFTWARE
Una vez que se hayan contestado estas preguntas, se comprenderán los temas
que pueden tener un impacto profundo en la ingeniería del software la próxima
década.
www.FreeLibros.org 433
www.FreeLibros.org
C A P ÍT U L O
M É TO D O S FO R M A LES
E n este c a p ítu lo se e x p lo ra n lo s m é to d o s fo rm a le s y se e x a m in a su p o s ib le im p a c to s o b re la
in g e n ie ría d e l s o ftw a re e n lo s años v e n id e ro s .
VI STAZO RÁPI DO
¿Q u é es? Estos métodos permiten al inge pueden perder vidas o incluso tener lee o escribe datos en un estado. Una
niero del software crear una especifi graves consecuencias económicas. En operación se asocia a dos condicio
cación sinambigüedades que seamás dichas situaciones es esencial descu nes: una precondición y una postcon
completa y constante que las que se brir los errores antes de poner en ope dición. La notación y la heurística
utilizan en los métodos convenciona ración la computadora. Los métodos asociados con los conjuntos y especi
les u orientados a objetos. La teoría de formales reducen drásticamente los ficaciones constructivas —operadores
conjuntos y las notaciones lógicas se errores de especificación, y conse de conjuntos, operadores lógicos y
utilizan para crear una sentencia cla cuentemente son la base del software sucesiones— forman la base de los
ra de hechos (o de requisitos). Esta que tiene pocos errores una vez que el métodos formales.
especificación matemática entonces se cliente comienza a utilizarlo.
puede analizar para comprobar que ¿C uál e s e l p r o d u c to o b te n id o ?
¿C uáles son lo s p a so s? El primer paso Cuando se aplican métodos formales
sea correcta y constante. Como esta en la aplicación de los métodos for s e produce una especificación repre
especificación se crea utilizando nota males es definir el invariante de
ciones matemáticas. inherentemente sentada en un lenguaje formal como Z
datos, el estado y las operaciones o VDM.
es menos ambigua que los nodos infor para el funcionamiento deun sistema.
males de presentación. El invariante de datos es una condi ¿Cómo p u e d o e s ta r se g u r o d e q u e
¿Quién lo h a ce? Un ingeniero del soft ción que se verifica mediante la eje lo h e h ech o co rred a m en te? Debi
ware especializado crea una especifi cución de una función que contiene un do a que los métodos formales utilizan
cación formal. conjunto de datos. Los datos almace la matemática discreta como meca
¿Por q u é e s im portante? En sistemas nados forman el estado en donde una nismo de especificación, para demos
críticos para la misión y para la segu función puede acceder y alterar; y las trar que una especificación es correcta,
www.FreeLibros.org
ridad, un fallo puede pagarse muy operaciones son las acciones que tie se pueden aplicar pruebas lógicas a
caro. Cuando la computadora falla se nen lugar en un sistema a medida que cada función del sistema.
435
I N GE NI E RÍ A DEL SOF TW ARE . UN E N F O Q U E P R Á C T I C O
25.1 C O N C E P T O S B Á SIC O S
L a E ncyclopedia o f Software E ngineering [ M A R 9 4 ] r o s d e l s o ftw a r e , h a y o t r o s ( h a y q u ie n d ir í a q u e la m a y o
d e fin e lo s m é to d o s f o r m a le s d e la s ig u ie n t e f o r m a : r í a ) q u e n o c o n s id e r a n e s p e c ia lm e n t e a g r a d a b le e l p u n
L os m étodos form ales que se utilizan para desarrollar sis to d e v is t a m a te m á tic o d e l d e s a r r o llo d e l s o ftw a r e . P a ra
tem as de com putadoras son técnicas de base m atem ática para e n te n d e r p o r q u é u n e n fo q u e f o r m a l tie n e u n c ie r t o in te
describir las propiedades del sistem a. E stos m étodos form ales r é s , e s p r e c i s o c o n s i d e r a r e n p r i m e r l u g a r la s d e f i c i e n
proporcionan m arcos de referencia en el seno de los cuales las c i a s a s o c ia d a s a l o s e n f o q u e s m e n o s f o r m a l e s .
personas pueden especificar, desarrollar y verificar los siste
m as de m anera sistem ática, en lugar de hacerlo ad hoc.
Se dice que un m étodo es form al si posee una base m ate
25.1.1. Deficiencias de los enfoques menos
m ática estable, que norm alm ente vendrá dada por un lengua formales
je form al de especificación. E sta base proporciona una form a
L o s m é t o d o s d e s c r i t o s p a r a e l a n á l i s i s y d i s e ñ o e n la s
de definir de m anera precisa nociones tales com o la consis
P a r te s T e r c e r a y C u a r t a d e e s te li b r o h a c e n u n a m p lio
tencia y com pletitud, y, lo que es aun m ás relevante, la especi
ficación, la im plem entación y la corrección. u s o d e l le n g u a je n a tu r a l y d e to d a u n a g a m a d e n o ta
c io n e s g r á fic a s . A u n c u a n d o la a p lic a c ió n c u id a d o s a d e
ío s m é to d o s d e a n á lis is y d is e ñ o ju n t o c o n u n a r e v is ió n
Q e /fa : d e ta lla d a p u e d e c ie r ta m e n te lle v a r a u n s o ftw a r e d e e le
los métodos formales tienen un potencial tremendo v a d a c a lid a d , la to r p e z a e n la a p lic a c ió n d e e s to s m é to
pora mejorar la claridad y la precisión de las d o s p u e d e c r e a r t o d a u n a g a m a d e p r o b le m a s . L a
- f < de los requisitos y a la hora de e s p e c if ic a c ió n d e u n s is t e m a p u e d e c o n te n e r c o n t r a d ic
encontrar tanto errores im portantes como sutiles. c io n e s , a m b ig ü e d a d e s , v a g u e d a d e s , s e n te n c ia s in c o m
Steve Easterbiook et al. p le ta s y n iv e le s m e z c la d o s d e a b s tr a c c ió n .
L a s p r o p ie d a d e s d e s e a d a s d e u n a e s p e c if ic a c ió n f o r
fjc O M S E jd j^
m a l - c a r e n c i a d e a m b ig ü e d a d , c o n s is te n c ia y c o m - Aunque un buen índice de documentono puede elimina!
p l e t i t u d - s o n lo s o b je t iv o s d e t o d o s lo s m é t o d o s d e las Contradbciones, puede ayudara descubrirlas.
e s p e c if ic a c ió n . S in e m b a r g o , la u t iliz a c ió n d e m é to d o s Poro las especificaciones y otros documentoshay
fo r m a le s d a lu g a r a u n a p r o b a b ilid a d m u c h o m a y o r d e que invertir tiempo en crear un índice completo.
a l c a n z a r e s t o s o b j e t i v o s id e a l e s . L a s i n t a x i s f o r m a l d e
u n le n g u a je d e e s p e c if ic a c ió n ( S e c c ió n 2 5 . 4 ) h a c e p o s i L a s contradicciones s o n c o n j u n t o s d e s e n t e n c i a s q u e
b le in t e r p r e t a r lo s r e q u is it o s o e l d is e ñ o d e u n a f o r m a d if ie r e n e n tr e s í . P o r e je m p lo , u n a p a r te d e la e s p e c if i
ú n ic a , e lim in a n d o e s a a m b ig ü e d a d q u e s u e le p r o d u c ir c a c ió n d e u n s is t e m a p u e d e a f ir m a r q u e e l s is t e m a d e b e
s e c u a n d o e s c u a lq u ie r le c t o r q u ie n in t e r p r e t a u n le n d e m o n i t o r i z a r t o d a s la s t e m p e r a t u r a s d e u n r e a c t o r quí
g u a je n a t u r a l ( p o r e je m p lo , e l e s p a ñ o l) , o u n a n o t a c ió n m ic o m ie n t r a s q u e o t r a p a r te , q u e q u iz á s h a y a e s c r ito
g r á f i c a . L a s c a p a c id a d e s d e s c r i p t i v a s d e l a t e o r í a d e c o n o t r o m i e m b r o d e l p e r s o n a l , p u e d e a f i r m a r q u e s o la m e n t e
ju n t o s y d e la n o ta c ió n g r á f ic a ( S e c c ió n 2 5 .2 ) h a c e n s e r á p r e c is o m o n i t o r iz a r la s t e m p e r a t u r a s q u e p e r te
p o s ib le u n e n u n c ia d o c la r o d e lo s h e c h o s ( lo s r e q u is i n e z c a n a u n d e t e r m i n a d o i n t e r v a l o . N o r m a l m e n t e , la s
to s ) . P a r a q u e lo s h e c h o s s e a n c o n s is te n te s p u e s to s d e c o n t r a d ic c io n e s q u e s e p r o d u c e n e n la m is m a p á g in a d e
m a n if ie s t o e n u n lu g a r d e u n a e s p e c if ic a c ió n , n o d e b e la e s p e c if ic a c ió n d e l s is t e m a s e p u e d e n d e t e c t a r c o n f a c i
r á n v e r s e c o n t r a d ic h o s a l e s ta b le c e r s e e n o t r o lu g a r d e l i d a d . S i n e m b a r g o , e s f r e c u e n t e q u e la s c o n t r a d i c c i o
la m is m a . L a c o n s is te n c ia se a s e g u r a m e d ia n te u n a n e s e s t é n s e p a r a d a s p o r u n e l e v a d o n ú m e r o d e p á g in a s .
d e m o s t r a c ió n m a t e m á t ic a d e q u e lo s h e c h o s in ic ia le s se L a s am bigüedades s o n s e n t e n c i a s q u e s e p u e d e n
p u e d e n h a c e r c o r r e s p o n d e r f o r m a lm e n t e ( m e d ia n te in te r p r e ta r d e m u c h a s m a n e ra s . P o r e je m p lo , e l e n u n
r e g la s d e in f e r e n c ia ) c o n s e n te n c ia s p o s te r io r e s e x is c ia d o s ig u ie n te e s a m b ig u o :
te n te s d e n tr o d e la e s p e c if ic a c ió n . El o p erad o r de identidad c o n sta del nom bre y la contra
L a completitud e s d i f í c i l d e l o g r a r , a u n c u a n d o s e u t i seña del o p e rad o r; la co n traseñ a c o n sta de seis dígitos; debe
de ser visualizada en la pantalla de seguridad, y se deposi
lic e n m é to d o s fo r m a le s . C u a n d o se e s tá c re a n d o la e s p e
tará en el arch iv o de re gistro cuando el o p erad o r se conecte
c if ic a c ió n s e p u e d e n d e ja r s in d e f in ir a lg u n o s a s p e c to s con el sistem a.
d e l s is t e m a ; q u iz á s o t r a s c a r a c t e r í s t ic a s s e o m it a n a p r o
E n e s te e x tr a c to , ¿ L a p a la b r a « d e b e » a lu d e a la c o n
p ó s it o p a r a o f r e c e r a lo s d is e ñ a d o r e s u n a c ie r t a lib e r t a d
tr a s e ñ a o a la id e n t id a d d e l o p e r a d o r ?
a la h o r a d e s e le c c io n a r u n e n fo q u e d e im p le m e n t a c ió n ;
a d e m á s e s im p o s ib le c o n s id e r a r to d o s lo s e s c e n a r io s
o p e r a c io n a le s e n u n s is t e m a g r a n d e y c o m p le jo . P o r ú l t i
www.FreeLibros.org
m o , la s c o s a s p u e d e n o m i t i r s e s i m p l e m e n t e p o r e r r o r . Com eter errores es hum ano, y volver a com eterlos
A u n q u e e l f o r m a l i s m o p r o p o r c i o n a d o p o r la s m a t e
m á tic a s t ie n e u n c ie r t o a t r a c t iv o p a r a a lg u n o s in g e n ie AMcoltn Fertaí
436
CAPÍTULO 25 M ÉTODOS FORM ALES
La va g u ed a d suele producirse p orque la especifica 25.1.2. M atem áticas en el desarrollo del software
ción del sistem a e s u n d o c u m e n to m u y v o lu m in o so . Las m atem áticas poseen m uchas propiedades útiles para
A lcanzar un elevado nivel de p recisió n de form a co n quienes desarrollan grandes sistem as. U n a de las p ro
sistente es una tarea casi im posible. P uede dar lugar a piedades m ás útiles es que pueden d esc rib ir de form a
sentencias tales com o «la interfaz con el sistem aem plea- su cin tay exacta una situación física, un objeto o el re su l
da po r los operadores del rad ar debe ser am istosa para tado de una acción. L a situación ideal sería que un in g e
con el usuario», o «la interfaz virtu al se basará en sim niero del softw are estuviera en la m ism a situación que
ples conceptos globales que sean sencillos de entender u n m atem ático dedicado a la m atem ática aplicada. Se
y utilizar, y, adem ás, en escaso núm ero». U na revisión debería presentar una especificación m atem ática de un
poco d etallada de estas afirm aciones p o d ría no detectar sistem a, y elaborar la solución en base a una arquitec
la carencia de inform ación útil subyacente. tura de softw are que im plem ente la especificación2.
La inco m p lecció n 1 es p o siblem ente uno de los p ro O tra de las ventajas de la utilización de las m atem á
blemas que se producen m ás frecuentem ente en las esp e ticas en el proceso del softw are es que proporcionan una
cificaciones de sistem as. P o r ejem p lo , con sid érese el transición suave entre las actividades de ingeniería del
siguiente req u isito funcional: softw are. E n m atem áticas no solo se pueden ex p re sar
El sistema debe de mantener el nivel horario del depósito a especificaciones funcionales sino tam bién diseños de sis
partir de los sensores de profundidad situados en el depósito. tem a, y, desde luego, el código del program a es una n o ta
Estos valores deben de ser almacenados para los Ultimos seis
ción m atem ática, aunque ciertam ente sea algo verbosa.
meses.
L a propiedad fundam ental de las m atem áticas es que
Esto describe la parte principal del alm acenam iento adm ite la abstracción y es un m ed io ex celen te para el
del sistema. Supongam os que una de las órdenes del sis m odelado. D ado que es u n m e d io e x a cto , hay p o c as
tema es: probabilidades de am b igüedad, y las especificaciones
La función de la orden PROMEDIOtiene que visualizaren se p u e d en v e rific a r m atem áticam en te p a ra d e sc u b rir
un PC el nivel medio de agua para un sensor concreto entre dos
contradicciones e incom pletitud;y, p o r últim o, la v ag u e
fechas dadas.
dad desap arece com pletam ente. A dem ás, las m a te m á
S uponiendo que n o se o fre c ie se m á s in fo rm ació n tic a s se p u e d e n u tiliz a r p a ra re p re s e n ta r n iv e le s de
acerca de esta orden, los d etalles de la orden e starían ab stracció n en la e sp ecific ació n de sistem a de form a
gravem ente incom pletos. P or ejem p lo , la descripción organizada.
de la orden n o incluye lo que sucedería si un usuario de L as m atem áticas constituyen una herram ienta ideal
sistema especificase una fecha que distase m ás de seis p a ra el m o delado. H acen p o sib le e x h ib ir el esquem a
meses de la fecha actual. fundam ental de la especificación y ayudan al analista y
L a m ezcla de los n iv e le s de abstra cció n se produce especificador del sistem a a v erificar una especificación
cuando sen ten cias ab stractas se en tre m e zcla n a lea to para su funcionalidad, sin problem as tales com o el tie m
riam ente con sentencias que se en cuentran en un nivel po de respuesta, las directrices de d iseño, las directri
muy inferior. P or ejem plo, sentencias tales com o: ces de im plem entación y las restricciones del proyecto
El objetivodel sistemaes hacer un seguimientode stockde que siem pre estorban. Tam bién ayuda al diseñador, por
un almacén que la especificación de diseño del sistem a m uestra las
pueden v erse m ezcladas con la siguiente: propiedades del m odelo, y ofrece tan sólo los detalles
Cuando el encargado de la carga escribe la orden retirar suficientes para h acer posible llevar a cabo la tarea que
será preciso comunicar el número de pedido, la identidad del tengam os entre m anos.
artículo a retirar y la cantidad retirada. El sistema responderá P or últim o, las m atem áticas proporcionan un e le v a
con una confirmación de que la extracciones admisible. do nivel de verificación cuando son usadas com o m edio
Aun cuando dichas sentencias son im portantes en la de desarrollo del softw are. C uando es preciso d em os
especificación de un sistem a, quienes h acen la esp eci trar que un diseño se ajusta a una especificación y que
ficación suelen arreglárselas para m ezclarlas de tal m odo algunos có d ig o s de program a son el reflejo exacto de
que resulta m uy difícil v er toda la arquitectura fu n cio un d iseño, es posible u tilizar una dem ostración m a te
nal global del sistem a. m ática. A ctualm ente es la práctica preferida po rq u e no
Todos estos problem a son m ás frecuentes que lo que hay que hacer un gran esfu erzo para la validación in i
uno d esearía creer. Y cada uno de ello s representa una cial, y porque gran parte de la com probación del siste
deficiencia p otencial en los m étodos convencionales y m a de so ftw are tie n e lu g a r d u ra n te la p ru e b a de
orientados a objetos de especificación. aceptación y del sistem a.
1Esta muy extentida la traducción del término incontpleteness por 2 Una palabra de precaución es apropiada en este punto. Las espe
incompletitud, pero este término en español no está aceptado por la
www.FreeLibros.org
cificaciones matemáticas de sistemas que se presentan en este capí
RAE. (N. del Trad.) tulo no son tan sucintas como una expresión matemática simple.Los
sistemas de software son notoriamente complejos,y no sería realista
esperar que pudieran especificarse en la misma línea que las mate
máticas.
JÍ9 7
IN GE NIE RÍA DEL S O F T W A R E . UN EN F O Q U E P R Á C T I C O
www.FreeLibros.org
3 Recuérdese que el térm ino e stad o se ha utilizado tam bién en los
Capítulos 12 y 2 1 com o una representación del com portam iento de
un sistem a o de objetos.
438
CAPÍTULO 25 MÉTODOS FORMALES
www.FreeLibros.org
archivos. bre de concentrador de im presión.
• En la c o le c c ió n de b lo q u e s sin u sa r n o ex istirán E n e ste e je m p lo se supone que el sistem a o p e ra ti
núm eros de b loques duplicados. vo no puede em p lea r m ás de D isp M a x d isp o sitiv o s de
439
INGENIERIA DEL S O F T W A R E . UN EN F O Q U E P R Á C T I C O
s a lid a y q u e c a d a u n o t ie n e a s o c ia d a u n a c o la . T a m T o d o a r c h iv o tie n e a s o c ia d o u n ta m a ñ o .
b ié n s e s u p o n d r á q u e c a d a u n o d e lo s d i s p o s i t iv o s T o d a c o la a s o c ia d a a u n d is p o s i t iv o d e s a lid a c o n
e s tá a s o c ia d o a u n c ie r t o l í m i t e d e lí n e a s p o r a r c h i te n d r á a r c h iv o s q u e te n g a n u n ta m a ñ o m e n o r q u e e l
v o q u e se p u e d e n im p r im ir . P o r e je m p lo , u n d is p o l í m i t e s u p e r io r d e e s te d i s p o s i t iv o d e s a lid a .
s it iv o d e s a lid a q u e t e n g a u n l í m i t e d e 1 . 0 0 0 lí n e a s N o e x is t ir á n m á s d e D is p M a x d is p o s it iv o s d e s a lid a
d e im p r e s ió n e s ta r á a s o c ia d o a u n a c o la q u e c o n t e n
q u e s e a n a d m in is tr a d o s p o r e s te c o n c e n tr a d o r .
g a ta n s o lo a q u e llo s a r c h iv o s q u e n o p o s e a n m á s d e
1 .0 0 0 lí n e a s d e t e x t o . L o s c o n c e n t r a d o r e s d e im p r e
s ió n s u e le n im p o n e r e s t a l i m i t a c i ó n p a r a e v i t a r la s
8»
g r a n d e s ta re a s d e im p r e s ió n , q u e p o d r ía n o c u p a r u n o s C LA VE
d is p o s it iv o s d e im p r e s ió n le n to s d u r a n t e p e r ío d o s d e los estados y las operaciones en muchos aspectos
t i e m p o s u m a m e n t e l a r g o s . E n l a F i g u r a 25.3 s e m u e s son análogos a lo definición de clases en los sistemas
tr a u n a r e p r e s e n t a c ió n e s q u e m á tic a d e u n c o n c e n orientados a objetos. los estados representan el dominio
tr a d o r d e im p r e s ió n . de los datos (atributos) y los operaciones
son los procesos (métodos) que manipulan los datos.
S e g ú n se m u e s tr a e n la fig u r a , e l e s ta d o d e l c o n c e n
t r a d o r c o n s t a d e c u a t r o c o m p o n e n t e s : la s c o l a s d e a r c h i
E l c o n c e n t r a d o r p u e d e t e n e r a s o c ia d o u n c ie r t o n ú m e
v o s q u e e s p e r a n p a r a s e r im p r e s o s , e n d o n d e c a d a c o la
e s tá a s o c ia d a a u n d i s p o s i t iv o d e s a lid a e n p a r t ic u la r ; la r o d e o p e r a c io n e s . P o r e je m p lo :
c o le c c ió n d e d is p o s it iv o s c o n tr o la d o s p o r e l c o n c e n tr a • U n a o p e r a c ió n q u e a ñ a d a u n d i s p o s i t i v o d e s a lid a
d o r ; la r e la c ió n e n tr e d is p o s it iv o s d e s a lid a y e l ta m a ñ o n u e v o a l c o n c e n t r a d o r , j u n t o c o n su l í m i t e d e i m p r e
m á x im o d e a r c h iv o q u e p u e d e im p r im ir c a d a u n o d e s ió n a s o c ia d o .
e llo s , y, p o r ú l t im o , la r e la c ió n e n tr e lo s a r c h iv o s q u e « U n a o p e r a c ió n q u e e lim in a u n a r c h iv o d e la c o la a s o
e s p e r a n p a r a s e r im p r e s o s y s u t a m a ñ o e n lí n e a s . P o r
c ia d a a u n d e t e r m in a d o d i s p o s i t iv o d e s a lid a .
e je m p lo , e n la F ig u r a 2 5 .3 se m u e s tr a e l d is p o s it iv o d e
• U n a o p e r a c ió n q u e a ñ a d a u n a r c h iv o a la c o la a s o
s a li d a L P 1 , q u e c o n u n l í m i t e d e i m p r e s i ó n d e 7 5 0 lí n e a s ,
c ia d a a u n d is p o s it iv o d e s a lid a e n p a r t ic u la r .
t i e n e d o s a r c h i v o s fim p y p e rs o n a s a l a e s p e r a d e i m p r i
m ir s e , y c o n u n t a m a ñ o d e 6 5 0 lí n e a s y 7 0 0 lí n e a s r e s . U n a o p e r a c i ó n q u e a l t e r e e l l í m i t e s u p e r i o r d e lí n e a s
p e c tiv a m e n te . d e im p r e s ió n p a r a u n d is p o s it iv o d e s a lid a e n p a r
tic u la r .
« U n a o p e r a c i ó n q u e t r a s l a d e u n a r c h i v o d e u n a c o la
Dispositivos de salida Colas
a s o c ia d a a u n d i s p o s i t iv o d e s a lid a a o t r a c o la a s o
LP1 f im p p e rs o n a s | c ia d a a u n s e g u n d o d i s p o s i t iv o d e s a lid a .
LP 2 d a to s n u e v o s C a d a u n a d e e s ta s o p e r a c io n e s s e c o r r e s p o n d e c o n
u n a f u n c ió n d e l c o n c e n tr a d o r . P o r e je m p lo , la p r im e r a
LAS1
o p e r a c i ó n s e c o r r e s p o n d e r í a c o n l a n o t i f i c a c i ó n a l con
LAS2 e x re s c e n tr a d o r d e u n n u e v o d is p o s itiv o c o n e c ta d o a l o rd e
n a d o r q u e c o n t i e n e e l s i s t e m a o p e r a t i v o q u e a su v e z
límites Dimensiones a d m in is tr a a l c o n c e n tr a d o r .
r T a l c o m o s u c e d í a a n t e s , c a d a o p e r a c i ó n e s t á a s o c ia
LP1 - * ■ 7 5 0 d a to s n u e v o s — ► 4 5 0 d a a u n a p r e c o n d ic ió n y a u n a p o s t c o n d ic ió n . P o r e je m
LP2 -* ■ 500 f im p - * - 6 5 0 p lo , la p r e c o n d ic ió n p a r a la p r im e r a o p e r a c ió n e s q u e e l
LAS1 - ^ 3 0 0 e x re s — ► 50 n o m b r e d e l d i s p o s i t iv o d e s a lid a y a n o e x is t e y q u e e x is
LAS2 200 p e rs o n a s — * - 7 0 0 ta n e n e s e m o m e n t o m e n o s d e D is p M a x d is p o s itiv o s d e
s a l i d a a e f e c t o s d e l c o n c e n t r a d o r . L a p o s t c o n d i c i ó n es
q u e e l n o m b r e d e l d i s p o s i t i v o n u e v o s e a ñ a d e a l a c o le c
F IG U R A 2 5 .3 . Un concentrador de impresión. c ió n d e n o m b r e s d e d is p o s it iv o s y a e x is te n te s , fo r m á n
d o s e u n a n u e v a e n t r a d a p a r a e l d i s p o s i t i v o s i n q u e e s ta
E l e s ta d o d e l c o n c e n tr a d o r s e re p r e s e n ta m e d ia n te e n t r a d a t e n g a a s o c ia d o s a r c h iv o s e n s u c o la , y e l d is
lo s c u a t r o c o m p o n e n te s : c o la s , d is p o s it iv o s d e s a lid a , p o s i t i v o s e a s o c i a a su l í m i t e d e i m p r e s i ó n .
lí m it e s y d im e n s io n e s . E l in v a r ia n te d e d a to s tie n e c in L a p r e c o n d i c ió n d e la s e g u n d a o p e r a c ió n ( la e lim in a
c o c o m p o n e n te s : c i ó n d e u n a r c h i v o d e u n a c o l a a s o c i a d a a u n d e t e r m in a
d o d i s p o s i t i v o d e s a li d a ) e s q u e e l d i s p o s i t i v o s e a c o n o c id o
. C a d a d i s p o s i t iv o d e s a lid a e s tá a s o c ia d o a u n lí m it e p a r a e l c o n c e n t r a d o r y q u e e x i s t a a l m e n o s u n a e n tr a d a
s u p e r io r d e lí n e a s d e im p r e s ió n . e n la c o la a s o c ia d a a l d i s p o s i t iv o . L a p o s t c o n d ic ió n es
www.FreeLibros.org
. T o d o d i s p o s i t iv o d e s a lid a e s tá a s o c ia d o a u n a c o la q u e l a c a b e z a d e l a c o l a a s o c i a d a a l d i s p o s i t i v o d e s a lid a
d e a r c h iv o s e s p e r a n d o im p r e s ió n , q u e p o s ib le m e n te s e a e lim in a d a y se b o r r e s u e n tr a d a e n la p a rte d e l c o n
n o e s tá v a c ía . c e n t r a d o r q u e s i g a l a p i s t a d e l o s t a m a ñ o s d e a r c h iv o s .
440
CAPÍTULO 25 M ÉTODOS FORMALES
La precondición de la quinta operación descrita ante . El tam año del archivo es m enor o igual que el límite
riormente (el traslado de un archivo de una cola aso de impresión asociado al segundodispositivode salida.
ciada a u n dispositivo de salida a la cola asociada a un
La postcondición es que el archivo será elim inado
segundo dispositivo de salida) es:
de una cola y añadido a otra cola.
• El prim er dispositivo de salida es conocido para el En cada uno de los ejemplos indicados en esta sec
concentrador. ción, se han presentado los conceptos clave de la espe
• El segundo dispositivo de salida es conocido para el cificación formal. Se ha hecho esto sin hacer hincapié
concentrador. en las m atem áticas necesarias para hacer formal la espe
• La cola asociada al prim er dispositivo contiene el cificación. Consideraremos estas m atem áticas en la sec
archivo que hay que trasladar. ción siguiente.
www.FreeLibros.org
Se trata del conjunto
juntos. La forma general de los núm eros de un conjun
to se especifican empleando una expresión Booleana.
441
IN GE NI ER ÍA DEL S O F T W A R E . UN E N F O Q U E P R A C T I C O
E videntem ente, una especificación co nstructiva de El operador c es sim ilar a c . Sin em bargo, si sus
conjuntos tal co m o la que se requiere p ara representar operandos son iguales posee el v alor verdadero. C on
alg u n o s co m p o n en tes del so ftw are de co m p u tad o ras siguientem ente, el v alor del predicado
puede ser co nsiderablem ente m ás com plicada que los
{HD 1, LP4, R C 5 } c {HD 1, RC2, HD3, L P 1, LP4, LP 6 }
indicados anteriorm ente. Sin em bargo, la m ism a form a
y la estructura b ásica seguirán siendo las m ism as. es fa ls o , y el predicado
{ H D 1 .L P 4 , RC5} c { H D 1 .L P 4 , R C 5 }
25.2.2. Operadores de conjuntos
es verdadero.
Para rep resen tar las operaciones conjuntos y las opera U n conjunto especial es el conjunto vacío O .E n m ate
ciones lógicas se utiliza el m ism o co n ju n to esp eciali m áticas norm ales este operador se corresponde con el
zado de sím bolos. El ingeniero del softw are que pretenda cero. El conjunto vacío tiene la propiedad de que es un
ap licar los m éto d o s fo rm ales d eb e de e n te n d e r esto s subconjunto de todos los conjuntos restantes. D os iden
sím bolos. tidades útiles relacionadas con el conjunto vacío son
0 u A = A y 0 n A = 0
tfc O N S u d j^
para todo conjunto A, en donde u es el o p e ra d o r unión,
Cuando se desarrollan especificaciones formales
tam bién conocido com o «taza» (dado su form a); y n es
es indispensable el conocimientodel conjunto
el o p e ra d o r in te rse c c ió n , c o n o c id o ta m b ién com o
de operaciones. Sise pretende aplicar métodos formales
«gorra».
lo mejor es dedicar tiempo poro familiarizarnos
con los conjuntos de operaciones.
El operador unión adm ite dos conjuntos y form a uno
con todos los elem entos del conjunto después de elim i
nar los duplicados. A sí pues, el resultado de la expresión
El operador e se utiliza p ara indicar la p ertenencia {A rc h iv o l,A rc h iv o 2 , Im puesto, C om pilador} u
de un conjunto. P or ejem plo la expresión {N uevolm puesto, D 2, D 3, A rchivo2}
X E X
es el conjunto
tiene el v alo r verdadero s ix es m iem bro del conjunto X {A rc h iv o l, A rchivo2, Im puesto, C om pilador,
y el valo r fa lso en caso contrario. P or ejem plo, el p re N u ev olm puesto, D 2, D 3 }
dicado
El operador de intersección adm ite dos conjuntos y
12 e ( 6 , 1, 12, 2 2 } form a un conjunto que consta de los elem entos com u
tiene el v alo r verdadero p o r cuanto 12 es un m iem bro nes a los dos anteriores. P or tanto, la expresión
del conjunto. { 1 2 ,4 ,9 9 , 1} n { 1, 13, 12,771
El c o n tra rio del o p e ra d o r e e s el o p e ra d o r £ . La
expresión da lugar a un conjunto { 12, 1).
x g X
www.FreeLibros.org
posee el v a lo rfa ls o p o rq u e el elem en to RCS no está ciona un conjunto; sin em bargo, en este caso no exis
den tro del conjunto que se encuentra a la derecha del ten elem entos com unes entre sus operandos, de manera
operador. que el conjunto resultante carecerá de elem entos.
442
CAPITULO 25 MÉTODOS FORMALES
25.2.3. O p e r a d o r e s ló g ic o s
(2,3 , 3 4 , i ) A ( 7 2 , 3 3 , 3 4 , 200)
Otro co m p o n en te im p o rtan te de los m é to d o s fo rm a d a com o resultado la sucesión (2, 3, 34, 1, 12, 33, 34,
les es la ló g ic a : el á lg e b ra de las e x p re sio n e s v e rd a 200).
deras y falsas. C u a lq u ie r in g e n ie ro d e l so ftw a re O tr o s o p erad o res que p u ed en a p lic a rse a la s su c e
en tenderá e l s ig n ific a d o d e lo s o p e ra d o re s ló g ic o s sio n es so n cabeza, colafrente y último. El o p e ra d o r
com unes. S in e m b a rg o , lo s o p e ra d o re s ló g ic o s que cabeza e x tra e el p rim e r e le m e n to de u n a su c e sió n ; el
están a so c ia d o s a lo s le n g u a je s d e p ro g ra m a c ió n o p e ra d o rcola p ro p o rc io n a lo s ú ltim o s n- 1 e le m e n
com unes se esc rib e n u tiliz a n d o los sím b o los d isp o n i to s fin a le s de u n a su c e sió n de lo n g itu d n; p o r Ú ltim o
bles en el teclad o . L os o p erad o res m atem ático s e q u i el o p e ra d o r Último e x tra e el e le m e n to fin a l d e u n a
valentes son los siguientes: su c e sió n ; y el o p e ra d o r frente p ro p o rc io n a lo s ú lti
A
Y
m os n- 1 elem en to s en una su cesió n de longitud n. P or
eje m p lo ,
V O
—i cabeza(2, 3, 34, 1 ,9 9 , 101) = 2
no
cola{2 , 3 , 3 4 , 1 , 9 9 , 1 0 1 )= { 3 ,3 4 ,1 ,9 9 , 101)
=> im plica ú ltim o(2 , 3, 34, 1, 99, 10 1 )= 101
fr e n te (2 ,3 ,3 4 , 1, =
101) <2, 3, 34, 1, 99)
La cuantificación universal es u n a m an era de co n
feccionar u n a afirm ación acerca de los elem en to s del D ado que una sucesión es un conjunto de parejas, se
conjunto que resu lta ser v erd ad era p ara tod o s los m iem pueden aplicar todos los operadores de co n ju n to s d es
bros de ese conjunto. L a cuantificación u niversal u tili critos en la S ección 25.2.2. C uando en un estad o se u ti
za el sím bolo V. V eam os un ejem plo de la utilización liz a u n a su c e sió n , se d e b e ría d e sig n a r u tiliz a n d o la
de este sím bolo p alab ra clave seq . P or ejem plo,
ListaArchivos: seqA R C H IV O S
NingúnUsuario: {(J
www.FreeLibros.org
en donde se lee que to d a p areja de v alores del conjunto
i
de los n úm eros n aturales, si es m ay o r que entonces j, d e sc rib e n un e stad o con do s com ponentes: u n a suce
i2es m ay o r que f. sión de archivos y un núm ero natural.
443
INGE NIE RÍA DEL S O F T W A R E . UN EN F O Q U E P R Á C T I C O
www.FreeLibros.org
4 Si no recuerda lo que ocurrió en la colección del gestor de bloques
consulte la Sección 25.1.3 para revisar el invariante de datos, las pre
condiciones de las operaciones y las postcondiciones asociadas al
gestor.
444
CAPÍTULO 25 M ÉTODOS FORM ALES
n u e v a d e b lo q u e s s e rá ig u a l a la c o la d e l v ie jo v a lo r L a p o s t c o n d ic ió n e s q u e e l c o n ju n t o d e b lo q u e s s e
d e la c o la d e b lo q u e s , e s d e c ir , a to d o s lo s e le m e n to s a ñ a d e a l f in a l d e la c o la d e b lo q u e s y e l c o n ju n t o d e b lo
d e la c o la s a lv o e l p r im e r o . U n a s e g u n d a o p e r a c ió n q u e s lib r e s y u s a d o s p e r m a n e c e in v a r ia b le :
es la q u e s e e n c a r g a d e a ñ a d ir u n a c o la d e b lo q u e s ColaBloques’=ColaBloqu.es A (ABlocks)A
BloquesA a la c o la d e b lo q u e s . L a p r e c o n d ic ió n e s usados’= usados A
que BloquesA s e a e n e s e m o m e n to u n c o n ju n to d e libres’= libres
b lo q u e s u s a d o s :
N o c a b e d u d a d e q u e la e s p e c if ic a c ió n m a t e m á t ic a
BloquesA c usados d e la c o la d e b lo q u e s e s c o n s id e r a b le m e n t e m á s r ig u
r o s a q u e u n a n a r r a c ió n e n le n g u a je n a t u r a l o u n m o d e
¿Cómo se pueden representar
U n le n g u a je d e e s p e c if ic a c ió n f o r m a l s u e le e s ta r c o m p o s ib le e s p e c if ic a r e l c o m p o r t a m ie n t o d e l s is t e m a . P o r
p u e s to d e tr e s c o m p o n e n te s p r im a r io s : ( 1 ) u n a s in t a e je m p lo , s e p u e d e d e s a r r o lla r u n a s in t a x is y u n a s e m á n
x is q u e d e f in e la n o t a c ió n e s p e c í f ic a c o n la c u a l s e t i c a p a r a e s p e c i f i c a r l o s e s t a d o s y la s t r a n s i c i o n e s e n t r e
re p re s e n ta la e s p e c if ic a c ió n ; ( 2 ) u n a s e m á n tic a q u e e s t a d o s , l o s s u c e s o s y s u s e f e c t o s e n la s t r a n s i c i o n e s d e
a y u d a a d e f in ir u n « u n iv e r s o d e o b je t o s » [ W I N 9 0 ] q u e e s ta d o s , o la s in c r o n iz a c ió n y la t e m p o r iz a c ió n .
se u t iliz a r á p a r a d e s c r ib ir e l s is t e m a ; y ( 3 ) u n c o n ju n E s p o s ib le u t i l i z a r d is t in t a s a b s tr a c c io n e s s e m á n t i
to d e r e l a c i o n e s q u e d e f i n e n la s r e g l a s q u e i n d i c a n c u á c a s p a r a d e s c r ib ir u n m is m o s is t e m a d e d if e r e n t e s
le s s o n l o s o b j e t o s q u e s a t i s f a c e n c o r r e c t a m e n t e l a m a n e r a s . E s o s e h a h e c h o d e m a n e r a f o r m a l e n lo s
e s p e c if ic a c ió n . C a p í t u lo s 1 2 y 2 1 . E l f l u jo d e d a to s y e l p r o c e s a m ie n
El dominio sintáctico d e u n le n g u a je d e e s p e c if ic a t o c o r r e s p o n d ie n te s e d e s c r ib í a u t iliz a n d o e l d ia g r a m a
c ió n f o r m a l s u e le e s t a r b a s a d o e n u n a s in t a x is d e r iv a d a d e f l u j o d e d a to s , y s e r e p r e s e n ta b a e l c o m p o r ta m ie n
d e u n a n o ta c ió n e s tá n d a r d e la te o r ía d e c o n ju n t o s y d e l t o d e l s is t e m a m e d ia n t e u n d ia g r a m a d e t r a n s ic ió n e n tr e
c á l c u l o d e p r e d i c a d o s . P o r e j e m p l o , la s v a r i a b l e s t a l e s e s ta d o s . S e e m p le a b a u n a n o t a c ió n a n á lo g a p a r a d e s
com o x,y, z y d e s c r ib e n u n c o n ju n t o d e o b je t o s q u e e s tá n c r i b i r lo s s is t e m a s o r ie n t a d o s a o b je t o s . E s p o s ib le u t i
r e la c io n a d o s a u n p r o b le m a ( a lg u n a s a v e c e s s e d e n o liz a r u n a n o ta c ió n d e m o d e la d o d if e r e n t e p a r a
m in a n e l dominio del discurso) y se u t iliz a n ju n t o c o n r e p r e s e n t a r e l m is m o s is t e m a . L a s e m á n t ic a d e c a d a
lo s o p e r a d o r e s d e s c r i t o s e n l a S e c c i ó n 2 5 . 2 . A u n q u e l a r e p r e s e n ta c ió n p r o p o r c io n a u n a v is ió n c o m p le m e n t a
s in ta x is s u e le s e r s im b ó li c a , t a m b i é n s e p u e d e n u t i l i z a r r i a d e l s is t e m a . P a r a il u s t r a r e s te e n f o q u e c u a n d o s e
ic o n o s ( s í m b o l o s g r á f i c o s c o m o c u a d r o s , f l e c h a s y c í r u t ilic e n lo s m é to d o s f o r m a le s , s u p ó n g a s e q u e s e u t i l i
c u l o s ) s i no s o n a m b i g u o s . z a u n le n g u a je d e e s p e c if ic a c ió n f o r m a l p a r a d e s c r ib ir
El dominiosemántico d e u n le n g u a je d e e s p e c if ic a e l c o n ju n t o d e s u c e s o s q u e d a n lu g a r a q u e s e p r o d u z
c ió n in d ic a la f o r m a e n q u e e s e le n g u a je r e p r e s e n ta lo s c a u n c ie r t o e s t a d o d e n t r o d e u n s is t e m a . O t r a r e la c ió n
r e q u is it o s d e l s i s t e m a . P o r e j e m p l o , u n l e n g u a j e d e p r o f o r m a l r e p r e s e n ta to d a s a q u e lla s f u n c io n e s q u e s e p r o
g r a m a c ió n p o s e e u n c o n ju n t o d e s e m á n tic a s f o r m a le s d u c e n d e n tr o d e u n c ie r t o e s ta d o . L a in te r s e c c ió n d e
q u e h a c e p o s ib le q u e e l d e s a r r o lla d o r d e s o ftw a r e e s p e e s ta s d o s r e la c io n e s p r o p o r c io n a u n a in d ic a c ió n d e lo s
c ifiq u e a lg o r it m o s q u e t r a n s f o r m a n u n a e n tr a d a e n u n a s u c e s o s q u e d a rá n lu g a r q u e se p r o d u z c a n fu n c io n e s
s a lid a . U n a g r a m á t i c a f o r m a l ( t a l c o m o B N F ) s e p u e d e e s p e c íf ic a s .
u t iliz a r p a r a d e s c r ib ir la s in t a x is d e l le n g u a je d e p r o E n la a c tu a lid a d s e u t ili z a to d a u n a g a m a d e le n g u a
g r a m a c ió n . S in e m b a r g o , u n le n g u a je d e p r o g r a m a c ió n je s fo r m a le s d e e s p e c if ic a c ió n : C S P [ H I N 9 5 , H O R 8 5 ] ,
n o e s u n b u e n le n g u a je d e e s p e c if ic a c ió n , p o r q u e s o la L A R C H [G U T 9 3 ], V D M [J O N 9 1 ] y Z [S P I8 8 , S P I9 2 ]
m e n te p u e d e r e p r e s e n ta r f u n c io n e s c o m p u ta b le s . U n s o n le n g u a je s f o r m a le s d e e s p e c if ic a c ió n r e p r e s e n t a t i
le n g u a je d e e s p e c if ic a c ió n d e b e r á p o s e e r u n d o m i n io v o s q u e m u e s t r a n la s c a r a c t e r í s t i c a s i n d i c a d a s a n t e r i o r
s e m á n tic o m á s a m p lio ; e s to e s , e l d o m in io s e m á n tic o m e n te . E n e s te c a p í t u lo , s e u t iliz a e l le n g u a je d e
de un l e n g u a j e d e e s p e c i f i c a c i ó n d e b e d e s e r c a p a z d e e s p e c if ic a c ió n Z a e fe c to s d e ilu s tr a c ió n . Z e s tá a c o m
e x p r e s a r id e a s t a le s c o m o « P a r a t o d o x d e u n c o n ju n t o p a ñ a d o d e u n a h e r r a m ie n ta a u to m a tiz a d a q u e a lm a c e
www.FreeLibros.org
in f in it oA, e x is te u n y d e u n c o n ju n to in f in it o B ta l q u e n a a x io m a s , r e g la s d e in f e r e n c ia y te o r e m a s o r ie n t a d o s
la p r o p i e d a d / * e s v á l i d a p a r axe y» [W IN 9 0 ], O tr o s le n a la a p lic a c ió n q u e d a n lu g a r a p r u e b a s d e c o r r e c c ió n
g u a je s d e e s p e c i f i c a c i ó n a p l i c a n u n a s e m á n t i c a q u e h a c e m a te m á tic a s d e la e s p e c if ic a c ió n .
445
IN GE NI E RÍ A DEL S O F TW A RE . UN E N F O Q U E P R A C T I C O
L a s e s p e c if ic a c io n e s e n Z s e e s tr u c tu r a n c o m o u n c o n E n e s ta s e c c ió n , s e u t i l i z a e l le n g u a je d e e s p e c if ic a
j u n t o d e e s q u e m a s — s o n e s tr u c tu r a s p a r e c id a s a c u a d r o s c ió n Z p a r a m o d e la r e l e je m p lo d e l g e s to r d e b lo q u e s
q u e p r e s e n ta n v a r ia b le s y q u e e s p e c if ic a n la r e la c ió n e x is q u e s e p r e s e n t a b a e n l a S e c c i ó n 2 5 . 1 .3 y s e t r a t a b a p o s
t e n t e e n t r e la s v a r i a b l e s — . U n e s q u e m a e s , e n e s e n c i a , t e r io r m e n t e e n la S e c c ió n 2 5 .3 . E n la T a b la 2 5 .1 s e p r e
u n a e s p e c if ic a c ió n f o r m a l a n á lo g a a la s u b r u t in a o e l p r o s e n t a u n r e s u m e n d e l a n o t a c i ó n d e l l e n g u a j e z . El
c e d im ie n t o d e u n le n g u a je d e p r o g r a m a c ió n . D e l m is m o s ig u ie n t e e je m p lo d e e s q u e m a d e s c r ib e e l e s ta d o d e l
m o d o q u e l o s p r o c e d i m i e n t o s y la s s u b r u t i n a s s e u t i l i z a n g e s to r d e b lo q u e s y d e l in v a r ia n te d e d a to s :
p a r a e s t r u c t u r a r u n s is t e m a , l o s e s q u e m a s s e u t i l i z a n p a r a
e s tr u c tu r a r u n a e s p e c if ic a c ió n f o r m a l.
La notación Z está basada en la teoría de conjuntos con tipos y en la lógica de primer orden. Z proporcio
na una estructura denom inada esqu em a, para describir el estado y las operaciones de una especificación.
Los esq u em as agrupan las declaraciones de variables con una lista de predicados que limitan los posibles
valores de las variables. En Z el esquem a X se define en la forma
------------------------------ X --------------------------------------------
declaraciones
predicados
predecibles
La declaración proporciona el tipo de la función o constante, mientras que el predicado proporciona su
valor. En esta tabla solam ente se presenta un conjunto abreviado de sím b olos de Z.
C o n ju n to s :
S : NN X S se declara com o un conjunto de X .
X G S x es miembro de S.
xg S x no e s miembro de S
Se T S e s un subconjunto de T: Todo miembro de S e s tá tam bién en T.
Su T La unión de S y T\ Contiene tod os los m iem bros de S o T o ambos.
S n T La inserción de S y T: Contiene tod os lo s m iem brostanto de S c o m o de T.
S\ T La diferencia de S y T: Contienetodos los miembros de S sa lv o losq u e están también en T.
O Conjunto vacío: No contiene miembros.
{x} Conjunto unitario: Solam ente contiene a x.
NN El conjunto de lo s núm eros naturales O, 1 , 2 ....
s: f x S e declara S com o un conjunto finito de X .
m ax(S) El máximo del conjunto no vacío de núm eros S.
F u n c io n e s :
f:X>^> Y S e declara com o una inyección parcial de X e Y.
dom f El dom inio de f. D ícese del conjunto de valores de x para los cuales está definido flx).
ran f El rango de ñ El conjunto de valores que tom a flx) cuando x recorre el dom inio de f.
f ® {x ■
—^ y} Una función que coincide con f salvo que x se hace corresponder con y.
{x}< f Una función igual que f, salvo que x s e ha elim inado de su dominio.
L ó g ic a :
P AQ P yQ : Es verdadero si tanto P com o Q son verdaderos.
P => Q P implica Q: Es verdadero tanto si Q es verdadero com o si P e s falso.
www.FreeLibros.org
es' =es Ningún com ponente del esquem a S cambia en una operación.
446
CAPITULO 25 MÉTODOS FORMALES
A G esto rB lo q u es
El esquem a se co m p o n e de d os partes. L a prim era
B loques A ? :B L O Q U E S
está p o r en cim a de la línea cen tral re p re sen ta n d o las
variables del estado, m ientras que la que se encuentra B lo q u es A l c usados
por debajo de la línea central describe un invariante de C o la B lo q u es' = C olaB loques (B lo quesA ?)
los datos. C uando el esquem a que representa el in v a
usados ’ = usados A
riante y el estad o se utiliza en otro esquem a, va p rece
dido por el sím bolo A Por tanto, si se utiliza el esquem a libres ’ = libres
anterior en uno que describa, p o r ejem plo, una o p era
ción, se rep resen taría m ediante A G estorBloques. C om o P o r convención en Z , toda variable que se lea y que
la afirm ación anterior establece, los esquem as se p u e no form e parte del estado irá term inada m ediante un sig
den u tilizar p ara d e s c rib ir o p e ra c io n e s. El e je m p lo n o de in terro g ació n . C o n sig u ien tem en te, B lo quesA ?,
siguiente describe la o peración que elim ina un elem en que actúa com o parám etro de entrada, acaba con un sig
to de una cola de bloques: n o de interrogación.
www.FreeLibros.org
elemento! : T
cación en O bject Z. A quí se representa la especificación cola ^ < >
de una clase que describe una cola g enérica que puede elemento! = cabeza cola
tener objetos de cualq u ier tipo. cola’ = cola cola
447
INGE NIE RI A DEL S OFT W ARE . UN E N F O Q U E P R A C T I C O
S e h a d e fin id o u n a c la s e q u e tie n e u n a v a r ia b le d e
in s ta n c ia c o la , es d e c ir, u n a s e c u e n c ia q u e tie n e o b je
to s d e l tip o T, d o n d e T p u e d e ser d e c u a lq u ie r tip o ; alta, baja '.ColaProc
p o r e je m p lo , p u e d e ser u n e n te ro , u n a fa c tu ra , u n g r u alta A baja
p o d e e le m e n to s d e c o n f ig u r a c ió n o b lo q u e s d e -------------------------------- IN IT
m e m o ria . D e b a jo d e la d e fin ic ió n d e c o la se le e n unos
alta .IN IT a b a ja .IN IT
e s q u e m a s q u e d e fin e n la clase. L a p rim e ra d e fin e u n a
c o n s ta n te q u e te n d r á u n v a lo r n o m a y o r d e 1 0 0 . E l
s ig u ie n te e s p e c ific a la lo n g itu d m á x im a d e l a c o la y
lo s d o s e s q u e m a s s ig u ie n te s A ñ a d ir y E x tra e r d e f i
n e n lo s p ro c e s o s d e a ñ a d ir y e x tr a e r u n e le m e n to de
total! : 1^1_____________
la c o la .
L a p re c o n d ic ió n d e A ñ a d ir e s p e c ific a q u e c u a n d o se total! =: llalla + ftbaja
añ ad e a la c o la u n o b je to elem ento? n o d e b e te n e r u n a
lo n g itu d m a y o r a la p e rm itid a ; y la p o s tc o n d ic ió n e s p e
c ific a lo que o c u rre c u a n d o se h a fin a liz a d o la a d ic ió n L a p rim e ra lín e a d e fin e e l e s q u e m a . L a seg u n d a y
de e le m e n to s . L a p re c o n d ic ió n d e la o p e ra c ió n E xtraer te rc e ra d e fin e n e l e s ta d o y e l in v a ria n te d e l estado. E n
e s p e c ific a que p a ra q u e esta o p e ra c ió n se h a g a c o n é x i este caso e l e s ta d o se c o m p o n e d e dos c o la s de p ro ce
to la c o la n o d e b e e sta r v a c ía , y la p o s tc o n d ic ió n d ebe so b ie n d ife re n c ia d a s : alta y baja.
d e fin ir la e x tra c c ió n de la c a b e z a d e la c o la y su c o lo A la d e fin ic ió n d e l e s ta d o le s ig u e la d e fin ic ió n de
c a c ió n e n la v a ria b le elem ento! c u a tro o p e ra c io n e s . IN IT se d e fin e c o m o la a p lic a c ió n
E s to es, p o r ta n to , la e s p e c ific a c ió n b á s ic a d e la c la de la o p e ra c ió n h e re d a d a IN IT e n las c o la s alta y baja ;
se de u n o b je to e n O b je c t Z . S i q u is ié ra m o s u t iliz a r un a ñ a d ir A lta se d e fin e c o m o la a p lic a c ió n d e la o p e ra
o b je to d e fin id o p o r d ic h a c la se , s e ría re la tiv a m e n te s im c ió n h e re d a d a añadir e n e l c o m p o n e n te d e l estad o alta;
p le de hacer. P o r e je m p lo , s u p o n g a m o s q ue se está d e fi a ñ a d irB a ja se d e fin e c o m o la a p lic a c ió n d e la o p e ra
n ie n d o p a rte de u n s is te m a o p e ra tiv o q u e m a n ip u la b a c ió n h e re d a d a a ñadir so b re e l c o m p o n e n te d e estado
p ro ceso s que re p re s e n ta n los p ro g ra m a s e n e je c u c ió n y b a ja ty , fin a lm e n te , la o p e ra c ió n totalP rocesos se d e fi
que to m a m o s la d e c is ió n d e que los p ro ceso s te n ía n que n e c o m o la s u m a d e ta m a ñ o s de las c o la s in d iv id u a le s
e sta r e n dos c o la s , u n a c o n lo s p ro ceso s d e a lta p r io r i alta y baja.
d a d y la o tra c o n a q u e llo s d e b a ja p rio rid a d , y d o n d e la C o n s e c u e n te m e n te , esto es u n e je m p lo d e in stan cia-
p r io r id a d la u tilic e e l p la n ific a d o r d e l s is te m a o p e ra ti c ió n e n a c c ió n , d o n d e los o b jeto s d e fin id o s p o r un esque
v o c o n e l p ro p ó s ito d e d e c id ir c u a l es e l s ig u ie n te p r o m a O b je c t Z se u tiliz a n e n o tro e s q u e m a . C o n esto se
ceso a e je c u ta r. L a p r im e r a s e n te n c ia d e O b je c t Z p u e d e d e fin ir la h e re n c ia .
n e ce sa ria in s ta n c ia rá la c lase d e c o la g e n e ra l e n u n a que P a ra p o d e r lle v a r a c a b o la d e fin ic ió n d e h e re n c ia ,
c o n te n g a pro cesos. e x a m in e m o s o tro e je m p lo , e l d e u n a ta b la d e sím bo los.
C olaP roc = = C ola[ P R O C E SO S ] E stas ta b la s se u tiliz a n c o n s ta n te m e n te e n a p lic ac io n es
[procQ / co la ,p ro c ? I e lem en to ? p ro c! / elem ento!] q u e c o n tie n e n lo s n o m b re s d e e m p le a d o s e n sistem as
d e p e rs o n a l, n o m b re s d e im p re s o ra s e n sistem as opera
S e p u e d e d e c ir que to d o lo que h a ce e s re e m p la z a r tiv o s , n o m b re s d e c a rre te ra s e n sistem as d e n a ve g ac ió n
e l tip o T p o r P R O C E S O S e n la d e fin ic ió n d e la c la se , la p a ra v e h íc u lo s , y otros. P a ra d e s c rib ir la h e re n c ia , p ri
c o la g e n e ra l cola p o r la c o la d e lo s p ro ceso s procQ y m e ro d e fin ire m o s u n a ta b la g e n é ric a de s ím b o lo s , a con
los p a rá m e tro s g e n e ra le s d e e n tra d a y s a lid a elem ento? tin u a c ió n la u tiliz a re m o s y m o s tra re m o s c ó m o se puede
y elem ento!, p o r a q u e llo s p a rá m e tro s d e p ro c e s o p ro c? , h e re d a r d e l e s q u e m a Z q u e la d e fin e . E n p rim e r lugar
y p ro c!. E l s ím b o lo / re p re s e n ta u n a fo r m a d e s u s titu se d e b e n d e s c rib ir in fo r m a lm e n te las o p e ra c io n e s y el
c ió n d e te x to . e stad o n e ce sa rio s.
E l s ig u ie n te p a so , c o m o se m u e s tra a c o n tin u a c ió n ,
E l e s ta d o e sta rá c o m p u e s to de un c o n ju n to d e l tipo
es d e fin ir u n a c lase que d e s c rib e las dos colas. E s ta c la
T. S u p o n e m o s q u e n o h a b rá m ás d e 100 o b je to s y d e fi
se u t iliz a las o p e ra c io n e s d e fin id a s e n la c la s e Cola.
n ire m o s u n a s erie d e o p e ra c io n e s q u e a c tu a rá n sobre el
S u p o n g a m o s q u e las s ig u ie n te s o p e ra c io n e s son n e c e
estado:
sarias:
• IN IT que in ic ia liz a la ta b la d e s ím b o lo s p a ra que esté
• a ñadir A lta , añ ad e u n p ro c e s o a la c o la d e lo s p ro c e
v a c ía .
sos d e a lta p rio rid a d .
• añadirB aja, añ ad e u n p ro c e s o a la c o la d e lo s p r o • añadir que a ñ a d e u n o b je to a la ta b la d e sím bolos.
cesos de b a ja p rio rid a d . • extraer q u e e x tra e u n o b je to d e la ta b la de sím bolos.
www.FreeLibros.org
• IN IT in ic ia liz a las c o la s d e a lta y b a ja p rio rid a d . • núm ero q u e re to rn a c o n e l n ú m e ro d e o b je to s de la
• totalP rocesos d e v u e lv e e l n ú m e ro to ta l de pro cesos ta b la d e s ím b o lo s . A c o n tin u a c ió n se m u e s tra esta
q u e está n e n las colas. d e fin ic ió n .
448
CAPÍTULO 25 MÉTODOS FORM ALES
-------------- T a b la S ím b o lo [T ] A h o r a s u p o n g a m o s q u e s e n e c e s it a u t ili z a r la h e r e n
c ia . P a r a m o s t r a r e s te c a s o , s u p o n g a m o s u n a o p e r a c ió n
n u m O b je to s M a x : ÑJ___________ e n c o n tr a r q u e d e v u e l v e u n v a l o r e n c o n tr a d o s i s e e n c u e n
M a x E le m < 1 0 0 tr a u n o b je t o e n la ta b la d e s ím b o lo s , y u n v a lo r no en con
ta b la : T _______________________ tr a d o s i n o e s t á e n l a t a b l a . V a m o s a s u p o n e r t a m b i é n u n a
# ta b la < M a x E le m a p lic a c ió n e n la q u e c u a n d o s e e je c u ta la o p e r a c ió n en con
tr a r s e s u e l e u t i l i z a r e l m i s m o o b j e t o q u e e s t á e n l a t a b l a .
--------------------------------- IN IT -------
A s e g u r a r e m o s q u e , c u a n d o s e a p lic a a n te s e s ta o p e r a
t a b l a = ) ) ___________________________ c ió n , a n te s d e e m p e z a r s e c o m p r o b a r á q u e é s te e s e l o b je
----------------------------------------- A ñ a d ir — t o , lo q u e p o d r í a s u p o n e r u n a b ú s q u e d a p r o lo n g a d a e n la
A ( ta b la ) ta b la . A n t e s d e d e f in ir e s te e s q u e m a s e d e b e d e u t ili z a r
o b ie t o ? : T e l e s q u e m a o r ig in a l d e ta b la d e s ím b o lo s p a r a i n c l u i r e s ta
in f o r m a c ió n . E n p r i m e r lu g a r n e c e s it a m o s u n m ie m b r o
# ta b la < M a x E le m
d i f e r e n c i a d o d e l a t a b l a q u e s e c o n o c e c o m o F re c E le m .
t a b l a ' = t a b l a u { o b j e t o ? }_______
E s te e s e l e le m e n to q u e s e u t ili z a c o n m á s fr e c u e n c ia . L a
----------------------------------------- E x t r a e r — d e f in ic ió n d e la ta b la n u e v a e s :
A ( ta b la )
o b je t o ? : T T a b la D if[T ] -------------------
o b ie t o ? e t a b la T a b la S ím b o lo s /T ] -------------------------------------------------
ta b la ' = ta b l a \ ( o b je to ? ] F r e c E le m : T
------------------- ta b la E m p --------------------- Y
-------------------- Em pleadoFrec ------------------------
e : T a b E n w le a d o s
A ñ a d irE m p = e .a ñ a d ir e : T a b E m p le a d o F r e c
A ñ a d ir E m p F r e c i e .A Ñ A D lR
E x tra e rE m p = e. e x tr a e r
www.FreeLibros.org
E x tr a e r E m p F r e c i e.E X T R A E R
In itE m p = e.IN IT In itE m p F r e c i e .IN IT
N ú m ero E m p = e .n ú m e r o N ú m e r o E m p F r e c = e .N U M E R O
449
INGENIERÍA DEL SOFTWARE. UN ENFOQUE PRACTICO
E s to e s u n a in t r o d u c c ió n c o r ta p a r a m o s t r a r la m a n e c i ó n a n t e r i o r , p a r a i m p l e m e n t a r la s f u n c i o n e s p a r a l a in s -
r a d e e m p e z a r a u t i l i z a r la s n o t a c i o n e s f o r m a l e s p a r a l a t a n c ia c ió n y la h e r e n c ia . E l t r a b a jo e n e s ta á r e a e s tá t o d a
e s p e c i f i c a c i ó n d e s is t e m a s o r i e n t a d o s a o b j e t o s . L a m a y o r v í a a n iv e l d e in v e s t ig a c ió n c o n p o c a s a p lic a c io n e s . S in
p a r te d e l tr a b a jo q u e s e h a lle v a d o a c a b o d e n tr o d e e s ta e m b a r g o , d u r a n t e e l p e r í o d o d e v i d a d e e s t a e d i c i ó n la s
á re a h a e m p le a d o la n o c ió n Z y se h a in te n ta d o c o n s t r u ir n o ta c io n e s fo r m a le s o r ie n t a d a s a o b je t o d e b e r í a n e x p e
b a s a d o e n la s i d e a s d e e s t a d o , p r e c o n d i c i ó n , p o s t c o n d i r im e n t a r e l m is m o n i v e l d e p e n e tr a c ió n in d u s t r ia l q u e
c ió n e in v a r ia n t e d e d a to s , q u e s e h a d e s c r ito e n la s e c n o t a c i o n e s e s t á n d a r t a l e s c o m o la s n o t a c i o n e s Z .
U n a d e la s c a r a c t e r í s t i c a s p r i n c i p a l e s d e la s d o s t é c n i N o m b r e : c o la P a r c ia l
c a s d e e s p e c if ic a c ió n d e s c r ita s a n te r io r m e n t e , Z y Z + + , C la s e s : c o l a ( Z )
e s e l h e c h o d e q u e e s tá n b a s a d a s e n la n o c ió n d e e s ta O p e ra d o re s :
d o : u n a c o le c c ió n d e d a to s q u e s e v e n a fe c ta d o s p o r o p e c o la V a c í a : — » c o la ( Z )
r a c io n e s d e f in id a s p o r e x p r e s io n e s e s c r ita s e n e l c á lc u lo a ñ a d ir E le m e n to : Z x c o la ( Z ) —» c o la ( Z )
d e l p r e d ic a d o . e x t r a e r E le m e n to : Z x c o la ( Z ) - » c o la ( Z )
U n a t é c n ic a a lte r n a tiv a se c o n o c e c o m o e s p e c if ic a p r im e r a : c o la ( Z ) — > Z
c ió n a lg e b r a ic a . Y c o n s is te e n e s c r i b ir s e n te n c ia s m a t e c o la ( Z ) —» Z
ú ltim a :
m á t ic a s q u e n a r r a n e l e f e c t o d e la s o p e r a c io n e s
e s tá V a c ía ? : c o la ( Z ) —> B o o le a n a
a d m is ib le s e n a lg u n o s d a to s . E s ta t é c n ic a tie n e la v e n
t a ja p r i n c ip a l d e a p o y a r e l r a z o n a m ie n t o d e m a n e r a L a p r im e r a lí n e a e s la q u e d a e l n o m b r e a l t i p o d e
m u c h o m á s f á c il q u e lo s m é to d o s b a s a d o s e n e l e s ta d o . c o la . L a s e g u n d a lí n e a a f ir m a q u e la c o la m a n e ja r á c u a l
E l p r im e r p a s o a l e s c r ib ir u n a e s p e c if ic a c ió n a lg e q u ie r t ip o d e e n tr a d a Z ; p o r e je m p lo , Z p o d r ía s e r m e n
b r a ic a e s d e t e r m in a r la s o p e r a c io n e s n e c e s a r ia s . P o r s a je s , p r o c e s o s , e m p l e a d o s e s p e r a n d o e n t r a r a u n e d i f i c i o
e je m p lo , p o d r í a d a r s e e l c a s o d e q u e u n s u b s is te m a q u e o a e r o n a v e s e s p e r a n d o p a r a a t e r r iz a r e n u n s is t e m a d e
im p le m e n t e u n a c o la d e m e n s a je s e n u n s is t e m a d e c o n tr o l d e l tr á fic o a é re o .
c o m u n i c a c i ó n n e c e s i t e o p e r a c i o n e s q u e e x t r a i g a n un E l r e s t o d e l a e s p e c i f i c a c i ó n d e s c r i b e la s s i g n a t u r a s
o b je t o d e l c o m ie n z o d e la c o la , q u e d e v u e lv a n e l n ú m e d e la s o p e r a c i o n e s : c u á l e s s o n l o s n o m b r e s y e l t i p o d e
r o d e o b je t o s d e u n a c o la y q u e c o m p r u e b e n s i la c o la e l e m e n t o q u e p r o c e s a n . L a d e f i n i c i ó n d e colaVacía a f i r
e s tá v a c í a . m a q u e n o t o m a a r g u m e n t o s , y q u e d a u n a c o la q u e e s tá
U n a v e z q u e s e h a n d e s a r r o lla d o e s ta s o p e r a c io n e s , v a c í a ; l a d e f i n i c i ó n d e añadirE lem ento a f i r m a q u e t o m a
s e p u e d e e s p e c if ic a r la r e l a c ió n q u e e x is t e e n t r e e lla s . u n o b je t o d e l t ip o Z y u n a c o la c o n lo s o b je t o s d e l t ip o
P o r e je m p lo , e l e s p e c if ic a d o r p o d r ía d e s c r ib ir e l h e c h o Z y e n to n c e s d a u n a c o la d e o b je t o s d e l t ip o Z , y a s í
d e q u e c u a n d o se a ñ a d e u n e le m e n to a la c o la e l n ú m e s u c e s iv a m e n te .
r o d e e le m e n to d e e s a c o la a u m e n ta e n u n e le m e n to . E s to e s s o lo la m it a d d e la e s p e c if ic a c ió n — e l r e s to
P a r a m o s t r a r u n a im p r e s ió n d e l a s p e c to d e u n a e s p e c i d e s c r i b e l a s e m á n t i c a d e c a d a o p e r a c i ó n e n f u n c i ó n d e la
f ic a c ió n a lg e b r a ic a r e p r o d u c ir e m o s d o s e s p e c if ic a c io r e la c ió n c o n o tr a s o p e r a c io n e s - . A c o n tin u a c ió n , se
n e s . L a p r im e r a e s p a r a u n a c o la , y la s e g u n d a p a r a u n a m u e s t r a n a lg u n o s e je m p lo s d e e s te t i p o d e e s p e c if ic a c ió n .
t a b la d e s í m b o lo s . A s u m im o s q u e la s o p e r a c io n e s L a p r i m e r a a f i r m a q u e estáVacíal s e r á v e r d a d e r a p a r a
s ig u ie n te s s o n n e c e s a r ia s p a r a la c o la : u n a c o l a v a c í a y f a l s a s i e x i s t e a l m e n o s u n o b j e t o e n la
• C olaVacía. D e v u e l v e u n v a l o r B o o l e a n o v e r d a d e r o c o la ; c a d a u n a d e e s ta s p r o p ie d a d e s s e e x p r e s a n e n u n a
s i la c o la a la q u e se a p lic a e s tá v a c í a y fa ls o s i n o lo s o la lí n e a
e s tá . e s tá V a c í a ? ( c o la V a c ía ) = v e rd a d e ra
• añadirO bjeto. A ñ a d e u n o b j e t o a l f i n a l d e l a c o l a . e s t á V a c í a ? ( a ñ a d ir O b je to ( z ,q ) ) = fa ls a
• extraerO bjeto. E x t r a e u n o b j e t o d e l f i n a l d e l a c o l a . L a d e f i n i c i ó n d e l a o p e r a c i ó n p r im e r a e s
• p rim ero . D e v u e l v e e l p r i m e r e l e m e n t o d e u n a c o l a , p r im e r a ( a ñ a d ir E le m e n to ( z ,q ) ) = z
y e s ta n o s e v e a f e c t a d a p o r e s ta o p e r a c ió n . l a c u a l e s t a b l e c e q u e p rim e ro v o l v e r á c o n e l p r i m e r e l e
• Último. D e v u e l v e e l ú l t i m o e l e m e n t o d e u n a c o l a , y m e n t o d e la c o la .
e s ta n o s e v e a fe c t a d a p o r e s ta o p e r a c ió n . C o n e s to s e p u e d e v e r e l e s t ilo d e e s p e c if ic a c ió n .
P a ra c o n c lu ir o fr e c e r e m o s u n a e s p e c if ic a c ió n c o m
• estáVacía? D e v u e l v e u n v a l o r B o o l e a n o v e r d a d e r o
p le t a d e u n a t a b la d e s ím b o lo s . E s ta e s u n a e s tr u c tu
www.FreeLibros.org
s i la c o la e s tá v a c í a ,' y f a ls o s i n o lo e s tá .
r a d e d a t o s q u e c o n t i e n e u n a c o l e c c i ó n d e o b j e t o s s in
A c o n t i n u a c i ó n s e m u e s t r a n la s p r i m e r a s l í n e a s d e l a d u p lic a d o s . E s ta s ta b la s s e e n c u e n t r a n p r á c tic a m e n te
e s p e c if ic a c i ó n y la s o p e r a c io n e s d e e s ta c o la : e n t o d o s lo s s is t e m a s d e c o m p u t a d o r a s : s e u t iliz a n
450
CAPITULO 25 MÉTODOS FORM ALES
para alm acenar nom bres en sistem as de em pleados, La definición del operador añadirElemento es
identificadores de aeronaves en sistem as de control añadirElem ento(s2, añadirElem ento(s l,s)) =
del tráfico aéreo, program as en sistem as operativos y si s 1 = s2 entonces añadirElemento(s2,s)
otros. o si no añadirElem ento(sl,añadirElem ento(s2,s))
• tablaVacía. Construye una tabla de símbolos vacía.
Esto establece que si se realizan dos sumas en la tabla
• añadirElemento. Añade un sím bolo a una tabla de de símbolos y se intenta añadir el m ismo elem ento dos
símbolos que ya exista. veces, solo será equivalente a la suma de uno de los dos
• extraerElemento. Extrae un símbolo de una tabla de elementos. Sin embargo, si los elementos difieren, enton
símbolos que ya exista. ces el efecto será el de añadirlos en un orden diferente.
• estáenTabla? Será verdadero si un símbolo está en La definición de extraerElemento es
una tabla y falso si no está. extraerElem ento(s l.tablaVacía) = tablavacía
• unir. Une el contenido de dos tablas de símbolos. extraerElemento (si, añadirElemento (s2,s)) =
• común. Toma dos tablas de símbolos y retorna con si s 1 = s2 entonces extraerElemento (s l,s)
los elementos comunes de cada tabla. o si no añadirElemento (s2,extraerElemento (sl,s))
• esParteDe. Retorna verdadero si una tabla de sím Esta definición establece que si se intenta extraer un
bolos está en otra tabla de símbolos. elem ento de una tabla vacía se elaborará la construc
ción de tabla vacía, y que cuando se extrae un elem en
• eslgual. Retorna verdadero si una tabla de símbolos to s i de una tabla que contiene un objeto s2, entonces
es igual a otra tabla de símbolos.
si s 1 y s2 son idénticos el efecto es el de extraer el obje
• estáVacía. Retorna verdadero si la tabla de símbolos to s i , y si no son iguales el efecto es el de dejar s2 y
está vacía. extraer el objeto s l .
A continuación se m uestra la definición de las firmas La definición de estáenTabla! es
de los operadores estáenTabla?(sl, tablavacía) = falso
estáenTabla(sl, añadirElem ento(s2,s)) =
T a b la d e n o m b r e s
si sl = s2 entonces es verdadero o si no está
Clases: tablaSímbolos(Z)con = en Tabla? (s l,s)
Operadores: En esta definición se establece que un elem ento no
tablavacía: — tablaSímbolos(Z) puede ser m iem bro de una tabla de sím bolos vacía y
añadirElemento: Z x tablaSímbolos (Z) —> . que el resultado de aplicar estaenTablal y sl auna tabla
tablaSímbolos (Z) que esté formada de sl y s2 devolverá un valor verda
dero si sl es igual a s2\ si no son iguales hay que apli
extraerElemento: Z x tablaSímbolos (Z) —» car estáenTabla? a s i .
tablaSímbolos (Z) A continuación se m uestra la definición de unir:
estáenTabla?: Z x tablaSímbolos (Z) —» unir(s, tablavacía) = s
Booleano unir(s, añadirElem ento(sl,t)) =
unir: tablaSímbolos (Z) x añadirElem ento(sl ,unir (s,t))
tablaSímbolos (Z) —>
Aquí se establece que uniendo una tabla vacía y una
tablaSímbolos (Z) tabla s da com o resultado la construcción de una tabla
común: tablaSímbolos (Z) x vacía s, y que el efecto de unir dos tablas en donde una
tablaSímbolos (Z) —> de ellas tenga el sím bolo s l es equivalente a añadir sl
tablaSímbolos Z) al resultado de unir dos tablas.
esParteDe?: tablaSímbolos (Z) x A continuación se m uestra la definición de común:
tablaSímbolos (Z) —» Booleano común(s, tablavacía) = tablavacía
com ún(s,añadirElem ento(sl,t)) = si estáenT abla?(sl,s)
tablaSímbolos (Z) x
entonces añadirElem ento(sl,
tablaSímbolos (Z) —» Booleano
común(s,t))
estáVacía?: tablaSímbolos (Z) -» Booleano o sino común(s,t)
Esta definición establece que la tabla com puesta ele
Todas las definiciones se pueden entender al margen los elem entos com unes de la tabla vacía y cualquier
de la línea siguiente otra tabla es siem pre la tabla vacía. La segunda línea
afirm a que, si se unen dos tablas, entonces, si hay un
Clases: tablaSímbolos (Z) con =
www.FreeLibros.org
elem ento com ún s l , este se añade al conjunto com ún,
la cual establece que los objetos del tipo Z se asociarán o de lo contrario se form a el conjunto com ún de dos
con un operador de igualdad. conjuntos. .
45 1
INGE NIE RÍA DEL S O F T W A R E . UN E N F O Q U E P R Á C T I C O
extraerE lem ento: Z x tablaS ím bolos (Z) —> estáV acía?(tablaV acía) = verdadero
tablaS ím bolos (Z ) estáV acía?(añadirE lem ento(s l,s) = falso
estáenTabla?: Z x tablaSím bolos (Z) —>
B ooleana
Tales especificaciones son bastante difíciles de cons
unir: tablaS ím bolos (Z) x truir, y el problem a principal es qúe no se sabe cuándo
tablaS ím bolos (Z) —> hay que p arar de añadir sentencias que relaten opera
tablaS ím bolos (Z ) ciones y que tienden a ser m ucho m ás prolongadas que
com ún: tablaS ím bolos (Z ) x sus eq u iv alen tes b asad o s en el estad o . Sin em bargo,
tablaS ím bolos (Z) —> m atem áticam ente son m ás puras y m ás fáciles para lle
tablaS ím bolos (Z ) var a cabo el razonam iento.
www.FreeLibros.org
po -y- frecuentem ente con un grado elevado de c o m u m ás conocidas: P S I (P ro c e so s S ecu en ciales in te rc o
n ic a c ió n e n tre e sto s procesos — . A u n q u e se h a n m u n ic a d o s) [C S P (C o m m u n ic a tin g S eq u e n tia l Pro-
rea liz a d o m uchos esfu erzo s p o r m o d ific a r n o tacio n es cesses)].
452
CAPÍTULO 25 M ÉTODOS FORMALES
P S I f u e d e s a r r o lla d o e n O x f o r d p o r e l c ie n t í f ic o to r ia m e n t e . E J E C U T A R e s u n p r o c e s o q u e p u e d e e n c a r
in f o r m á t ic o in g lé s T o n y H o a r e . L a id e a p r in c ip a l q u e g a rs e d e c u a lq u ie r s u c e s o e n s u a lfa b e to . A l ig u a l q u e
r e s p a ld a e s ta n o t a c ió n e s q u e s e p u e d e v e r u n s is t e P A R A R e s u n p r o c e s o n o d e s e a d o e in d ic a q u e h a h a b i
m a c o m o u n c o n j u n t o d e p r o c e s o s s e c u e n c ia le s ( p r o d o u n b lo q u e o .
g r a m a s s im p le s n o c o n c u r r e n te s ) q u e s e e je c u ta n y P a r a p o d e r h a c e m o s u n a id e a d e la u t iliz a c ió n d e P S I
se c o m u n ic a n c o n o t r o s p r o c e s o s d e m a n e r a a u tó n o e n la e s p e c if ic a c ió n d e p r o c e s o s e s p e c if ic a r e m o s a lg u
m a . H o a re d is e ñ ó P S I p a r a d e s c r ib ir ta n to e l d e s a n o s s is t e m a s m u y s im p le s . E l p r i m e r o e s u n s is t e m a q u e
r r o l lo d e e s ta s n o ta c io n e s c o m o la c o m u n ic a c ió n q u e se c o m p o n e d e u n p ro c e s o C . U n a v e z q u e s e h a a c ti
tie n e lu g a r e n tr e e lla s . D e la m is m a m a n e r a q u e d e s a v a d o e s te p r o c e s o , la v á lv u la d e u n r e a c to r q u í m ic o s e
r r o l ló e s ta n o t a c ió n , t a m b ié n d e s a r r o lló u n a s e r ie d e c e rra rá y se p a ra rá .
le y e s a lg e b r a ic a s q u e p e r m it e n l l e v a r a c a b o u n r a z o
aC = (c e rra r}
n a m ie n to : p o r e je m p lo , s u s le y e s p e r m it e n a l d is e
C = (c e r r a r —> P A R A R )
ñ a d o r d e m o s tr a r q u e e l p r o c e s o P ,n o s e b lo q u e a r á
e s p e r a n d o la a c c ió n d e o t r o p r o c e s o P , q u e e s tá a s u L a p r im e r a lí n e a d e f in e e l a lfa b e to d e l p r o c e s o c o m o
v e z e s p e r a n d o a q u e e l p r o c e s o P , lle v e a c a b o a lg u u n p ro c e s o q u e s e c o m p o n e d e u n s u c e s o , y la s e g u n d a
n a o t r a a c c ió n . lí n e a e s ta b le c e q u e e l p r o c e s o C s e e n c a r g a r á d e c e r r a r
L a n o t a c ió n P S I e s m u y s im p le e n c o m p a r a c ió n c o n y e n to n c e s p a ra r.
u n a n o ta c ió n Z u O b je c t Z ; d e p e n d e d e l c o n c e p to d e u n E s ta e s u n a e s p e c if ic a c ió n m u y s im p le y a lg o ir r e a l.
s u c e s o . U n s u c e s o e s a lg o q u e s e p u e d e o b s e rv a r, e s a tó D e f in a m o s a h o r a o t r o p r o c e s o C , q u e a b r ir á la v á lv u la ,
m ic o e in s t a n t á n e o , lo q u e s ig n if ic a q u e u n s u c e s o , p o r la c e r r a r á y q u e c o m e n z a r á o t r a v e z a c o m p o r ta r s e e n t o n
e je m p lo , n o s e p u e d e in t e r r u m p ir , s in o q u e s e c o m p le c e s c o m o C ,.
ta r á , in d e p e n d ie n t e m e n t e d e l o q u e e s té o c u r r ie n d o e n aC , = { a b r ir , c e r r a r }
u n s is t e m a . L a c o l e c c i ó n d e s u c e s o s a s o c ia d o s c o n a l g ú n
C ,= ( a b r i r - ) c e r r a r —> C ,)
p r o c e s o P s e c o n o c e c o m o e l a lfa b e to d e P y s e e s c r ib e
c o m o o (P . E je m p lo s t í p ic o s d e s u c e s o s s o n e l e n c e n d i U n a d e f in ic ió n a lt e r n a t iv a d o n d e s e d e fin a n d o s p r o
d o d e la v á lv u la d e u n c o n tr o la d o r in d u s tr ia l, la a c tu a c e s o s s e ría
liz a c ió n d e u n a v a r ia b le g lo b a l d e u n p r o g r a m a o la aC , = { a b r ir }
t r a n s f e r e n c ia d e d a to s a o t r a c o m p u ta d o r a . L o s p r o c e C, = • ( a b r ir á C J
sos s e d e f i n e n r e c u r s i v a m e n t e e n f u n c i ó n d e l o s s u c e
s o s . P o r e je m p lo Y
(esP) aC 2= (c e rra r)
C, = (c e rr a r —> C ,)
d e s c r ib e e l h e c h o d e q u e u n p r o c e s o e s tá in v o lu c r a d o
e n e l s u c e s o e d e n tr o d e a P y e n to n c e s se c o m p o r ta A q u í , e l p r im e r p r o c e s o C j tie n e e l a lfa b e to { a b r i r ) ,
c o m o P . E n P S I s e p u e d e n a n id a r d e f in ic io n e s d e p r o s e e n c a r g a d e u n s o lo s u c e s o q u e a p a r e c e d e n t r o d e l a lf a
c e s o s : p o r e je m p lo , P s e p u e d e d e f in ir e n f u n c ió n d e b e t o y q u e s e c o m p o r t a e n t o n c e s c o m o e l p r o c e s o C ,.
o tro p ro c e s o P , c o m o E 1 C , t a m b ié n p o s e e u n a lfa b e to d e u n s o lo s u c e s o , s e
e n c a r g a d e e s te s u c e s o y s e c o m p o r t a e n to n c e s c o m o
( e - > (e a - > /> ,) )
C , . U n o b s e r v a d o r a je n o a l t e m a q u e v e a e l s is t e m a
e n d o n d e o c u r r e e l s u c e s o e, y e l p r o c e s o s e c o m p o r ta e x p r e s a d o d e e s ta f o r m a v e r í a la s ig u ie n te s u c e s ió n d e
c o m o e l p ro c e s o P ,. sucesos:
L a fu n c io n e s q u e s e a c a b a n d e d e s c r ib ir n o s o n m u y
a b r i r , c e r r a r , a b r i r , c e r r a r . . ..
ú t ile s , y a q u e n o p r o p o r c i o n a n n i n g u n a o p c i ó n , p o r e j e m
p lo , p a ra e l h e c h o d e q u e u n p ro c e s o se p u e d a e n c a rg a r E s ta s u c e s ió n s e c o n o c e c o m o r a s tr e o d e l p r o c e s o .
d e d o s s u c e s o s . E l o p e r a d o r d e o p c i ó n | p e r m i t e q u e la s A c o n tin u a c ió n , s e m u e s tr a o t r o e je m p lo d e e s p e c if ic a
e s p e c if ic a c io n e s P S I in c lu y a n e l e le m e n to d e d e t e r m i- c ió n P S I. E s ta re p r e s e n ta u n r o b o t q u e s e p u e d e e n c a r
n is m o . P o r e je m p lo , la s ig u ie n te e s p e c if ic a c ió n d e fin e g a r d e d o s s u c e s o s q u e se c o rre s p o n d e n c o n u n re tro c e s o
un p r o c e s o P q u e p e r m i t e u n a o p c i ó n . o u n a v a n c e e n l a lí n e a . S e p u e d e e s t a b l e c e r l a d e f i n i
c ió n d e l c a m in o i n f i n i t o d e u n r o b o t s in p u n to s f in a le s
P = ( e , — ) P { I e , — » P 2)
e n e l r e c o r r id o d e la s ig u ie n te m a n e r a
A q u í e l p r o c e s o P s e d e f in e c o m o u n p r o c e s o c a p a z
a R O B O T = {a v a n c e ,re tr o c e s o }
d e e n c a r g a r s e d e d o s s u c e s o s e , o e,. S i s e d a e l p r i m e
R O B O T = (a v a n c e -) R O B O T ] re tro c e s o s R O B O T )
r o , e l p ro c e s o se c o m p o r ta r á c o m o P ,, y s i a p a re c e e l
s e g u n d o , s e c o m p o r t a r á c o m o P ,. A q u í e l ro b o t se p u e d e e n c a rg a r d e a v a n z a r o re tro
E n P S I e x is t e u n a s e r ie d e p r o c e s o s e s tá n d a r . P A R A R c e d e r y c o m p o r ta r s e c o m o u n r o b o t , p u d ie n d o a v a n z a r
e s e l p r o c e s o q u e in d ic a q u e e l s is t e m a h a t e r m in a d o d e y r e t r o c e d e r , y a s í s u c e s iv a m e n te . S u p o n g a m o s o t r a v e z
www.FreeLibros.org
m a n e r a a n o r m a l, e n u n e s ta d o n o d e s e a d o c o m o e s e l q u e la e s p e c if ic a c ió n e s r e a l in t r o d u c ie n d o a lg u n a s o tr a s
b lo q u e o . S A L T A R e s u n p r o c e s o q u e t e r m in a s a tis fa c fu n c io n e s P S I. L a c o m p lic a c ió n e s q u e la p is ta s o b r e la
453
ING EN IE RÍA DEL S OFT W ARE . UN E N F O Q U E P R A C T I C O
q u e v ia j a e l r o b o t s e c o m p o n e d e c ie n to s d e m o v im ie n t o s n o r m a s o b r e la c o m u n ic a c ió n y la s in c r o n iz a c ió n e s q u e
c o n a v a n c e s y r e tro c e s o s q u e d e n o ta n e s te m o v im ie n c u a n d o d o s p r o c e s o s s e e s tá n e je c u ta n d o e n p a r a le lo , d o n
t o . S u p o n g a m o s t a m b i é n q u e e n e s t a p i s t a e l r o b o t a r ra n d e tie n e n a lg u n o s s u c e s o s e n c o m ú n , d e b e n d e e je c u ta r
c a d e la p o s ic ió n 1 . A c o n tin u a c ió n se m u e s tr a la e s e s u c e s o s im u lt á n e a m e n t e . T o m e m o s c o m o e j e m p lo u n
d e f in ic ió n d e e s te R O B O T ,: s i s t e m a b a s t a n t e s i m p l e y r e a l q u e e n c i e n d e y a p a g a la s
lu c e s y q u e s e b a s a e n u n e je m p lo s im ila r a l d e [ H I N 9 5 ] .
aR O BO Tc { a v a n c e ,re tro c e s o }
L a s d e f in ic io n e s d e lo s d o s p r o c e s o s d e e s te s is t e m a s o n :
ROBOT R,
R, (avance —» R .) oL U Z , = { e n c e n d id a ,a p a g a d a ]
R, (avance —>R ¡+¡ I retroceso —> R , ,) LU Z, = ( e n c e n d id a — > e n c e n d id a — » P A R A R
(¿ < 100 a i > 1) I a p a g a d a —> a p a g a d a —> P A R A R )
R„ (re tro c e so —» R J a L U Z 2 = { e n c e n d id a , a p a g a d a )
LU Z, = ( e n c e n d i d a —> a p a g a d a -+ L U Z ,)
A q u í el r o b o t r e p r e s e n t a u n p r o c e s o c o n l o s m i s m o s
d o s s u c e s o s d e l a lf a b e t o c o m o e l r o b o t a n t e r io r . S in A m b o s p r o c e s o s tie n e n e l m is m o a lfa b e to . E l p r im e r
e m b a r g o , l a e s p e c i f i c a c i ó n d e su i m p l i c a c i ó n e n e s t o s p r o c e s o L U Z , , o b ie n e n c ie n d e la lu z y la v u e lv e a e n c e n
s u c e s o s e s m á s c o m p le ja . L a s e g u n d a lí n e a e s ta b le c e q u e d e r d e n u e v o ( h a y q u e r e c o r d a r q u e e s p o s ib le q u e o tr o s
e l r o b o t a r r a n c a r á e n u n a p o s ic ió n in ic ia l y se c o m p o r p r o c e s o s h a y a n a p a g a d o e l s is t e m a e n tr e m e d ia s , y se
ta r á d e la m is m a m a n e r a q u e c o n e l p r o c e s o R , e l c u a l h a a v e r ia d o (P A R A R e s u n e s ta d o n o d e s e a d o ), o b ie n
r e p r e s e n t a su p o s i c i ó n e n e l p r i m e r r e c u a d r o . L a t e r c e la a p a g a u n a v e z , y u n a v e z m á s . E l p r o c e s o LUZ,
r a lí n e a e s ta b le c e q u e e l p r o c e s o R , s o lo s e p u e d e e n c a r e n c ie n d e la lu z y la a p a g a , y a c o n t in u a c ió n e m p ie z a a
g a r d e l s u c e s o d e a v a n c e y a q u e se e n c u e n tra e n e l p u n to c o m p o r t a r s e d e n u e v o c o m o LUZ,. L o s d o s p r o c e s o s e n
f i n a l . L a c u a r t a lí n e a d e f in e la s e r ie d e p r o c e s o s d e s d e p a r a le lo se d e n o ta n m e d ia n te :
R, a / ? „ . A q u í s e d e f i n e e l h e c h o d e q u e e n c u a l q u i e r p u n - L U Z , II L U Z ,
t o e l r o b o t s e p u e d e a v a n z a r o r e t r o c e d e r . L a lí n e a f i n a l
¿ C u á l e s e l e fe c to d e e je c u ta r e s to s p r o c e s o s e n p a ra
e s p e c if ic a lo q u e s u c e d e c u a n d o e l r o b o t h a a lc a n z a d o
le lo ? E n u n a in tr o d u c c ió n c o m o e s e s ta n o se p u e d e
e l f i n a l d e l r e c o r r i d o : s o lo p u e d e r e t r o c e d e r .
e n t r a r e n m u c h o d e ta lle . S in e m b a r g o , s e p u e d e d a r u n a
E s ta e s la m a n e r a e n q u e f u n c io n a n lo s p r o c e s o s e n
id e a d e l r a z o n a m ie n t o q u e s e p u e d e a p lic a r a d ic h a
P SI. En s i s t e m a s r e a l e s e x i s t i r á u n a s e r i e d e p r o c e s o s
e x p r e s ió n . S e r e c o r d a r á q u e c u a n d o s e in t r o d u jo P S I se
e je c u tá n d o s e c o n c u r r e n te m e n te y c o m u n ic á n d o s e c o n
a f ir m ó q u e n o s o lo c o n s is te e n u n a n o t a c ió n p a r a e s p e
o tr o s , c o m o s e m u e s tr a a c o n tin u a c ió n m e d ia n te a lg u
c if ic a r lo s p r o c e s o s c o n c u r r e n te s , s in o q u e ta m b ié n c o n
n o s e je m p lo s :
t ie n e u n a s e r ie d e n o r m a s q u e p e r m it e n r a z o n a r a c e r c a
• E n u n s is t e m a c lie n t e / s e r v id o r , u n s o lo s e r v id o r e n d e la s e x p r e s i o n e s d e p r o c e s o s c o m p l e j o s y , p o r e j e m
e je c u c ió n c o m o p r o c e s o e s ta r á e n c o m u n ic a c ió n c o n p lo , d e te r m in a r s i c u a lq u ie r s u c e s o n e fa s to c o m o u n b lo
v a r io s c lie n te s q u e ig u a lm e n te s e e je c u ta r á n c o m o q u e o a p a r e c e r á d e n t r o d e l s is t e m a e s p e c if ic a d o e n P S I.
p ro c e s o s . P a ra p o d e r v e r lo q u e o c u r r e m e r e c e la p e n a a p lic a r a lg u
• E n s is t e m a s d e t i e m p o r e a l, q u e c o n t r o la n u n r e a c n a s d e la s n o r m a s q u e d e s a r r o l l ó H o a r e p a r a P S I . R e c o r
t o r q u í m ic o , e x is t ir á n p r o c e s o s d e s u p e r v is ió n d e la d e m o s q u e s e in t e n t a a v e r ig u a r c u á l e s e l p r o c e s o q u e
te m p e r a tu r a d e lo s r e a c to r e s q u e s e c o m u n ic a r á n c o n s e h a d e f i n i d o m e d i a n t e l a e j e c u c i ó n e n p a r a l e l o d e lo s
l o s p r o c e s o s q u e a b r e n y c i e r r a n la s v á l v u l a s d e e s t o s p r o c e s o s L U Z , y LUZ,. E s t a e x p r e s i ó n e s e q u i v a l e n t e a:
re a c to re s .
L U Z t ( e n c e n d id o — > e n c e n d id o - + P A R A R
• E n u n s i s t e m a d e c o n t r o l d e t r á f i c o a é r e o , l a fu n c io = I a p a g a d o — » a p a g a d o —> P A R A R )
n a lid a d d e l r a d a r se p o d r ía im p le m e n t a r c o m o p r o
LU Z, = ( e n c e n d id o - ^ a p a g a d o —> L U Z , )
c e s o s q u e se c o m u n ic a n c o n p r o c e s o s q u e lle v a n a
c a b o la s t a r e a s d e v i s u a l i z a r e n p a n t a l l a la s p o s i c i o U n a d e la s n o r m a s d e H o a r e e s t a b l e c e q u e
n e s d e la s a e r o n a v e s .
( e - > P ) \ \ ( e —> Q ) = e —> ( P W Q )
D e a q u í q u e e x is t a la n e c e s id a d d e r e p r e s e n t a r e n P S I .E s to n o s p e r m it e a m p lia r la e x p r e s ió n q u e in v o lu c r a
la e je c u c ió n e n p a r a le lo d e lo s p r o c e s o s . T a m b ié n e x is a L U Z , y L U Z , con
te la n e c e s id a d d e a lg ú n m e d io c o n e l q u e s e p r o d u z c a
( e n c e n d i d o — > ( ( e n c e n d i d o - ^ P A R A R ) II ( a p a g a d o — >
la c o m u n ic a c ió n y la s in c r o n iz a c ió n e n tr e e s to s p r o c e
L U Z 2) ) )
sos. E l o p e r a d o r q u e e s p e c i f i c a l a e j e c u c i ó n e n p a r a l e
l o e n P S I e s II. P o r t a n t o , e l p r o c e s o P q u e r e p r e s e n t a l a E s ta e x p r e s ió n s e p u e d e s im p lif ic a r a u n m á s u t i l i
e j e c u c i ó n e n p a r a l e l o d e l o s p r o c e s o s d e P , y P, s e d e f i z a n d o o t r a d e la s n o r m a s d e H o a r e a l a e x p r e s i ó n
ne com o
( e n c e n d id o - + P A R A R )
P =P, \ \ P,
lo c u a l s ig n if ic a q u e la e je c u c ió n e n p a r a le lo d e lo s d o s
www.FreeLibros.org
L a s in c r o n iz a c ió n e n t r e lo s p r o c e s o s s e lo g r a m e d ia n p r o c e s o s e s e q u iv a le n t e a u n a lu z q u e s e e n c ie n d e y
te p r o c e s o s c o n a lg ú n s o la p a m ie n t o e n s u s a lfa b e to s . L a e n to n c e s se p a ra e n u n e s ta d o d e b lo q u e o n o d e s e a d o .
454
CAPÍTULO 25 M ÉTODOS FORMALES
H asta ahora, se h an visto procesos que cooperan con ne el proceso PROD,, el cual equipara este p ro ceso con
la sincronización m ediante el hech o de que tienen alfa A , sin entradas esperando. La segunda lín e a estab lece
betos sim ilares o que se solapan. E n los sistem as reales que cu an d o el proceso recibe un v alo r d e e n tra d a x se
tam bién e x istirá la n e c e sid a d de que los p ro c eso s se com porta com o el proceso con u n v alor x alm acenado.
com uniquen con datos. PS I es un m étodo uniform e para L a tercera línea establece que cu an d o u n p ro c e so con
la co m unicación de datos: se trata sim plem ente com o un v alor alm acenado recibe un v alor y entonces se c o m
un suceso en donde el suceso nom C anal.val indica que po rta co m o un proceso con dos valores alm acenados.
ha ocurrido un suceso que se corresponde con la co m u L a últim a línea establece que un proceso co n d o s v alo
nicación del v alo r va l a través de un canal nom C anal. res alm acenados em itirá el producto de esto s v alo res,
PSI contiene u n dispositivo notacional sim ilar al de Z alm ac en ará el últim o v alor y en to n ces se c o m p o rta rá
para distin g u ir en tre la entrad a y la salida; para distin com o A con ese valo r alm acenado, de m a n e ra que, p o r
guir la prim era se introduce el signo de interrogación, ejem p lo , si aparece otro v alor se m u ltip lica rá p o r ese
m ientras que para distin g u ir la segunda se utiliza el sig v a lo r y se e m itirá p o r el canal de salida. A s í p u es, la
no de exclam ación. especificación anterior se co m p o rta co m o u n p ro c e so
A c o n tin u ació n , se m u e stra un ejem p lo b asa d o en en donde se recib e u n a su cesió n d e e n te ro s y lle v a a
[HIN95], en donde se representa la especificación de un cabo la m ultiplicación de los valores.
proceso que to m a d os enteros y form a el producto. S e puede decir entonces que e sta es u n a definición
breve de PSI —al igual que todos los m étodos fo rm ales
PRO/), = A ()
incluye tam bién una notación m atem ática y las n orm as
= ( e n ? x ^ > A ,„)
para el ra z o n a m ie n to -. A unque en las descripciones de
A ( l) = (en) y A*,>) Z y O bject Z no se han exam inado las norm as y se h a
A*.y) = (fu e r a ! { x A ,„)
co n cen trad o en el fo rm alism o to d a v ía co n tie n en fu n
A p rim era v ista esto parece m uy com plicado, por eso ciones sustanciales para razo n ar sobre las propiedades
m erece la pena describirlo línea a línea. L a p rim era defi de un sistem a.
La decisión de h acer uso de los m étodos form ales en el seguridad serán nuestras prim eras opciones, e irán
m undo real n o debe de adoptarse a la ligera. B ow en y seguidos p o r aquellos co m p o n en tes cuyo fallo no
H inchley [B O W 95] h an a c u ñ a d o « lo s d ie z m a n d a se p u eda adm itir (por razones de negocios).
mientos de los m étodos form ales» ,co m o guía para aque III. Estim arás los costes. L os m étodos form ales tienen
llos que estén a pun to de em barcarse en este im portante unos costes de arranque considerables. El e n tre n a
enfoque de la ingeniería del softw are5. m iento del personal, la adquisición de herram ien
ta s de ap o y o y la u tiliz a c ió n de a se so re s b a jo
contrato dan lugar a unos costes elevados en la p ri
m era ocasión. E stos costes deben tenerse en cuenta
l a decisión de utilizar métodos formales no debería
cu an d o se esté considerando el beneficio obtenido
tomarse a lo ligera. Siga estos mandamientos»
frente a esa inversión asociada a los m étodos fo r
y asegúrese de que todo el mundo haya recibida
lo formación adecuada.
m ales.
IV. Poseerás un experto en m étodos form ales a tu
I. Seleccionarás la notación adecuada. C on objeto disposición. El entrenam iento de expertos y la ase
de seleccionar eficientem ente dentro de la am plia soría continua son esenciales para el éx ito cuando
gam a de lenguajes de especificación fo rm al e x is se utilizan los m étodos form ales p o r prim era vez.
tente, el ingeniero del softw are d eb erá considerar V. No abandonarás tus m étodos form ales de desa
el v o c a b u la rio del len g u aje, el tip o de aplicació n rrollo. E s posible, y en m uchos casos resu lta d esea
que h ay a que especificar y el grado de utilización ble, integrar los m étodos form ales con los m étodos
del lenguaje. convencionales y/o con m étodos orientados a obje
II. Formalizarás, pero no de más. E n general, resulta tos (C apítulos 12 y 21). C ada uno de estos m étodos
necesario aplicar los m étodos form ales a todos los posee sus ventajas y sus inconvenientes. U na co m
asp ecto s de los sistem as de c ie rta en v e rg a d u ra. b in ac ió n de am bos, ap licad a de fo rm a adecuada,
A q u ello s c o m p o n e n te s que sean c rític o s p a ra la puede p roducir excelentes resultados6.
www.FreeLibros.org
5 Esta descripción e s una versión sumamente abreviada de [BOW95] 6 La ingeniería del software de la sala limpia (Capítulo26) e s un ejem
plo integrado que hace uso de los m étodos form ales y de una nota
ción m ás convencional para el desarrollo..
455
IN GE NI E RÍ A DEL S O F TW A RE . UN E N F O Q U E P R A C T I C O
u n a g a r a n t ía d e c o r r e c c ió n . E s p o s ib le (o c o m o
a lg u n o s p r o b a b le m e n te d ir í a n ) q u e e l s is t e m a fin a l,
Referencia J É W a u n c u a n d o s e h a y a d e s a r r o lla d o e m p le a n d o m é to
d o s f o r m a le s , s ig a c o n t e n ie n d o p e q u e ñ a s o m is io
Información útil sobre los métodos formales se puede
n e s , e r r o r e s d e m e n o r im p o r t a n c ia y o t r o s a t r ib u to s
obtener en: www.cIcam/users/mghlOOl
q u e n o s a tis fa g a n n u e s tr a s e x p e c ta tiv a s .
VI. D ocum entarás suficientem ente. L o s m é t o d o s IX . Comprobarás, com probarás y volverás a com
f o r m a le s p r o p o r c io n a n u n m é t o d o c o n c is o , s in probar. L a i m p o r t a n c i a d e l a c o m p r o b a c i ó n d e l
a m b ig ü e d a d e s y c o n s is te n te p a r a d o c u m e n t a r lo s s o f t w a r e s e h a d e s c r it o e n lo s C a p í t u lo s 1 7 , 1 8
r e q u i s i t o s d e l s is t e m a . S i n e m b a r g o , s e r e c o m i e n d a y 2 3 . L o s m é to d o s f o r m a le s n o a b s u e lv e n a l in g e
q u e s e a d ju n te u n c o m e n t a r io e n le n g u a je n a t u r a l n ie r o d e l s o f t w a r e d e la n e c e s id a d d e ll e v a r a
a la e s p e c if ic a c ió n f o r m a l, p a r a q u e s ir v a c o m o c a b o u n a s c o m p r o b a c io n e s e x h a u s t iv a s y b ie n
m e c a n is m o p a r a r e f o r z a r la c o m p r e n s ió n d e l s is p la n e a d a s .
te m a p o r p a r te d e lo s le c to r e s . X. Reutilizarás cuanto puedas. A l a l a r g a , l a ú n i c a
VII. No com prom eterás los estándares de calidad. f o r m a r a c io n a l d e r e d u c ir lo s c o s te s d e l s o ftw a r e
« L o s m é to d o s fo r m a le s n o tie n e n n a d a d e m á g ic o » y d e in c r e m e n ta r la c a lid a d d e l s o ftw a r e p a s a p o r
[ B O W 9 4 ] , y , p o r e s t a r a z ó n , la s d e m á s a c t i v i d a la r e u t iliz a c ió n ( C a p í tu lo 2 7 ). L o s m é to d o s f o r
d e s d e SQA ( C a p í t u l o 8) d e b e n d e s e g u i r a p l i m a l e s n o m o d i f i c a n e s t a r e a l i d a d . D e h e c h o , qui
c á n d o s e c u a n d o s e d e s a r r o l l e n s is t e m a s . z á s s u c e d a q u e l o s m é t o d o s f o r m a l e s s e a n un
VIII. No serás dogm ático. E l i n g e n i e r o d e s o f t w a r e e n fo q u e a d e c u a d o c u a n d o e s p r e c is o c re a r c o m
d e b e r e c o n o c e r q u e lo s m é to d o s fo r m a le s n o s o n p o n e n te s p a r a b ib lio te c a s r e u tiliz a b le s .
A u n c u a n d o la s t é c n i c a s d e e s p e c i f i c a c i ó n f o r m a l , c o n P e r o s ig u e n e x is t ie n d o p r o b le m a s . L a e s p e c if ic a c ió n
fu n d a m e n to m a te m á tic o , to d a v ía n o se u t iliz a n c o n f o r m a l s e c e n t r a f u n d a m e n t a l m e n t e e n la s f u n c i o n e s y
d e m a s ia d a f r e c u e n c ia e n la in d u s t r ia ) é s t a s o f r e c e n c ie r lo s d a to s . L a t e m p o r iz a c ió n , e l c o n t r o l y lo s a s p e c to s d e
t a m e n t e u n a s v e n t a j a s s u b s t a n c i a l e s c o n r e s p e c t o a la s c o m p o r ta m ie n to d e l p r o b le m a s o n m á s d if í c ile s d e re p re
té c n ic a s m e n o s f o r m a le s . L is k o v y B e r s in s [ L I S 8 6 ] s e n ta r. A d e m á s , e x is t e n c ie r ta s p a r te s d e l p r o b le m a ( p o r
r e s u m e n e s to e n la m a n e r a s ig u ie n te : e j e m p l o , la s i n t e r f a c e s h o m b r e - m á q u i n a ) q u e s e e s p e c i
f i c a n m e j o r e m p l e a n d o t é c n i c a s g r á f i c a s . P o r ú l t i m o , la
Las especificaciones formales se pueden estudiar mate
máticamente, mientras que las especificaciones informales e s p e c if ic a c ió n m e d ia n te m é to d o s fo r m a le s e s m á s d if í
no pueden estudiarse de esta manera. Por ejemplo, se puede c i l d e a p r e n d e r q u e o t r o s m é to d o s d e a n á lis is q u e s e p r e
demostrar que un programa correcto satisface sus especifi s e n ta n e n e s te li b r o y r e p r e s e n ta « u n c h o q u e c u lt u r a l) )
caciones, o bien se puede demostrar que dos conjuntos alter s ig n if ic a t iv o p a r a a lg u n o s e s p e c ia lis ta s d e l s o ftw a r e . P o r
nativos de especificacionesson equivalentes.. . Ciertas formas e s t a r a z ó n , e s p r o b a b l e q u e la s t é c n i c a s d e e s p e c i f i c a
de falta de completitud o de inconsistencia se pueden detec
c ió n fo r m a le s m a te m á tic a s p a s e n a s e r e l fu n d a m e n to d e
tar de forma automática.
u n a f u t u r a g e n e r a c ió n d e h e r r a m ie n ta s C A S E . C u a n d o
A d e m á s , la e s p e c if ic a c ió n f o r m a l e lim in a la a m b i e s t o s u c e d a , e s p o s i b l e q u e la s e s p e c i f i c a c i o n e s b a s a d a s
g ü e d a d , y p r o p u g n a u n m a y o r r i g o r e n la s p r i m e r a s f a s e s e n m a te m á tic a s s e a n a d o p ta d a s p o r u n s e g m e n to m á s
d e l p r o c e s o d e in g e n ie r í a d e l s o ftw a r e . a m p l i o d e l a c o m u n i d a d d e l a i n g e n i e r í a d e l s o f t w a r e 7.
L o s m é to d o s fo r m a le s o fr e c e n u n fu n d a m e n to p a r a e n to r c r ip t iv a s d e la te o r ía d e c o n ju n t o s y d e la n o ta c ió n ló g i
n o s d e e s p e c if ic a c ió n q u e d a n lu g a r a m o d e lo s d e a n á li c a c a p a c it a n a l in g e n ie r o d e l s o ftw a r e p a r a c r e a r u n e n u n
s is m á s c o m p l e t o s , c o n s is t e n t e s y c a r e n t e s d e a m b i g ü e d a d , c ia d o c la r o d e lo s h e c h o s ( r e q u is it o s ) .
q u e a q u e llo s q u e s e p r o d u c e n e m p le a n d o m é to d o s c o n L o s c o n c e p to s s u b y a c e n te s q u e g o b ie r n a n lo s m é to
v e n c io n a le s u o r ie n t a d o s a o b je t o s . L a s c a p a c id a d e s d e s - d o s f o r m a le s s o n : ( 1 ) lo s in v a r ia n t e s d e d a to s - c o n -
www.FreeLibros.org
7 Es importante tener en cuenta que hay otras personas que no están
de acuerdo. Véase [YOU94],
456
C A P Í T U L O 25 MÉTODOS FORMALES
diciones que son ciertas a lo larg o de la e je cu c ió n del Z , al igual que todos los lenguajes de especificación
sistem a que co n tien e u n a c o le c c ió n de datos— ; ( 2 ) el fo rm a l, posee tan to un d o m in io se m á n tic o c o m o un
estado — los d a to s a lm a c e n a d o s a los q ue acced e el dom inio sintáctico. El dom inio sintáctico utiliza una sim -
sistem a y que son alterados p o r él—¿ (3) la operación bología que sigue estrecham ente a la notación de c o n
— una acción que tien e lu g a r en u n sistem a y que lee ju n to s y al cálculo de predicados. El dom inio sem ántico
o escribe d ato s en un estado— . U n a o p e ra ció n q u eda capacita al lenguaje para ex p resar requisitos de form a
asociada con dos condiciones: u n a preco n dición y una concisa. La estructura Z contiene esquem as, estructuras
postcondición. en form a de cu adro que p re se n ta n las v aria b les y que
La m atem ática d isc re ta — la n o tació n y práctica aso especifican las relaciones entre estas variables.
ciada a los conjuntos y a la especificación constructiva, L a decisión de u tilizar m étodos form ales debe c o n
a los operadores de conjuntos, a los operadores lógicos siderar los costes de arranque, así com o los cam bios pu n
y a las su cesiones— constituyen la base de los m étodos tuales asociados a una tecnología radicalm ente distinta.
formales. E stas m atem áticas están im p lem entadas en el E n la m ayoría de los casos, los m étodos form ales o fre
contexto de un lenguaje de e sp e c ific ac ió n fo rm al, tal cen los m ayores beneficios para los sistem as de seguri
como Z. dad y para los sistem as críticos para los negocios.
J l £ ] '.EREN £LI& SL
[BOW95] Bowan, J.P., y M.G. Hinchley, «Ten Command- tions Techniques; eds.: N. G ehaniyA T. McKittríck, Addi
ments of Fermal Methods, Computer», vol. 28, n.a 4, Abril son-Wesley, 1986, p. 3.
1995. [MAR94] Marcianiak, J.J. (ed.), Encyclopedia o f Software
[GRI93] Gries, D., y F.B, Schneider,H Lógica!Approach to Engineering, Wiley, 1994.
DiscreteMath, Springer-Verlag, 1993. [ROS95] Rosen, K.H., Discrete Mathernatics and Its Appli
[GUT93] Guttag, J.V., y J.J. Homing, Larch:Languages and cations, 3.a ed., McGraw-Hill, 1995.
Toolsfor Formal Specifications, Springer-Verlag, 1993. [SPI88] Spievy, J.M., UnderstandingZ:A Specification Lan-
guage and Its Formal Semantics, Cambridge University
[HAL90] Hall, A., «Seven Myths of Formal Methods», IEEE
Press, 1988.
Software, Septiembre 1990.
[SPI92] Spievy, J.M., The ZNot.at.ion: A Reference Manual,
[HOR85] Hoare, C.A.R., Communicating Sequential Pro- Prentice-Hall, 1992.
cesses, Prentice-Hall International, 1985.
[WIL87] Witala, S.A., Discrete Mathernatics: A Unified
[HIN95] Hinchley, M.G., y S.A. Jarvis, C on curren t Systems: Approach, McGraw-Hill, 1987.
FonnalDevelopment in CSP, McGraw-Hill, 1995.
[WIN90] Wing, J.M., «A Specifrer’s Introduction to Formal
[JON91] Jones, C.B., Systematic Development JJsing VDM, M ethods», IEEE Computer, vol. 23, n .fi 9, Septiembre
2.a ed., Prentice-Hall, 1991. 1990, pp. 8-24.
[LIS86] Liskov, B.H., y V. Berzins, «An Appraisal of Pro- [YOU94] Yourdon, E., «Formal Methods», Guerrilla Pro-
gram Specifications», publicado en Software Specifica grammer, Cutter Information Corp., Octubre 1994.
PROBLEMAS Y PUNTO S A C Q N 5 I II E B A R
25.1. Revisar los tipos de deficiencias asociados a los enfo a. el invariante de datos
ques menos formales de la ingeniería del software en la Sec
b. el estado
ción 25.1.1. Proporcione tres ejemplos de cada uno de ellos,
procedentes de su propia experiencia. c. las operaciones probables
25.2. Los beneficios de las matemáticas como mecanismo de 25.4. Se le ha asignado un equipo de software que está desa
especificación se han descrito con cierta extensión en este capí rrollando software, denomina do DuplicadosMemoria, y que
tulo. ¿Existe algún aspecto negativo? proporciona una mayor cantidad de memoria aparente para
25.3. Se le ha asignado un equipo de software que va a desa un PC, en comparación con la memoria física. Esto se logra
rrollar software para un fax módem. Su trabajo consiste en identificando, recogiendo y reasignando bloques de memo
desarrollar el «listín telefónico» de la aplicación. La función ria que hayan sido asignados a aplicaciones existentes pero
del listín telefónico admite hasta MaxNombre nombres de no estén siendo utilizados. Los bloques no utilizados se rea
www.FreeLibros.org
direcciones que serán almacenados junto con los nombres de signan a aplicaciones que requieran memoria adicional. Efec
la compañía, números de fax y otras informaciones relacio tuando las suposiciones oportunas, y empleando el lenguaje
nadas. Empleando el lenguaje natural, defina: natural, defina:
INGE NIERÍA DEL S O F TW A RE . UN EN F O Q U E P R A C T I C O
www.FreeLibros.org 458
C A P ÍT U L O
a p IN G E N IE R ÍA DEL S O F TW A R E
A Y \ DE S A LA L IM P IA
A u t iliz a c ió n in te g r a d a d e l m o d e la d o d e in g e n ie r í a d e l s o ftw a r e c o n v e n c io n a l, m é to d o s
L fo r m a le s , v e r if i c a c ió n d e p r o g r a m a s ( d e m o s tr a c io n e s d e c o r r e c c ió n ) y e s ta d ís tic a S Q A
s e h a n c o m b in a d o e n u n a té c n ic a q u e p u e d e d a r lu g a r a u n s o ftw a r e d e c a lid a d e x t r e
m a d a m e n t e a lta . L a in g e n ie r í a d e l s o ftw a r e d e s a la lim p ia e s u n e n f o q u e q u e h a c e h in c a p ié e n
la n e c e s id a d d e i n c l u i r la c o r r e c c ió n e n e l s o f t w a r e a m e d id a q u e é s te s e d e s a r r o lla . E n lu g a r
d e l c i c l o c l á s i c o d e a n á l i s i s , d i s e ñ o , p r u e b a s y d e p u r a c i ó n , e l e n f o q u e d e s a l a l i m p i a s u g i e r e un
p u n to d e v is t a d is t in t o [ L I N 9 4 ] :
L a filosofía que subyace tras la ingeniería del softw are de sala lim pia co n siste en e v ita r la dep en d en cia
de costosos procesos de elim inación de d efecto s, m ediante la escritura de increm entos de código desde un
prim er m om ento, y m ediante la verificación de su corrección antes de las pruebas. Su m odelo de proceso
incluye la certificación estadística de calidad de los increm entos de código, a m edida que estos se van a ñ a
d iendo cn el siste m a .
E n m u c h o s a s p e c t o s , e l e n f o q u e d e s a la l i m p i a e l e v a l a i n g e n i e r í a d e l s o f t w a r e a o t r o n i v e l .
A l ig u a l q u e la s t é c n ic a s d e m é t o d o s f o r m a le s q u e s e p r e s e n ta b a n e n e l C a p í t u l o 2 5 , e l p r o
c e s o d e s a la l i m p i a h a c e h in c a p ié e n e l r i g o r e n la e s p e c if ic a c ió n y e n e l d is e ñ o , y e n la v e r i
f ic a c ió n f o r m a l d e c a d a u n o d e lo s e le m e n to s d e l m o d e lo d e d is e ñ o r e s u lta n t e m e d ia n t e e l
u s o d e p r u e b a s d e c o r r e c c ió n b a s a d a s e n fu n d a m e n to s m a te m á tic o s . A l e x te n d e r e l e n fo q u e
a d o p t a d o e n lo s m é t o d o s f o r m a l e s , e l e n f o q u e d e s a la l i m p i a h a c e h in c a p i é t a m b i é n e n t é c
n i c a s d e c o n t r o l e s t a d í s t i c o d e c a l i d a d , i n c l u y e n d o la s c o m p r o b a c i o n e s b a s a d a s e n e l u s o a n t i
c ip a d o d e l s o f t w a r e p o r p a r t e d e lo s c lie n t e s .
ViSTAZO RÁPIDO
¿Qué e s ? ¿C uántas v eces se h a oído decir (fallos inform áticos)que se com eten e n se a n a liz a n p a r a p e rm itir el c álcu lo
«Hazlocorrectam ente a la primera.? Esa el diseño y construcción d el softw are? m atem ático d e l a fiabilidad proyectada
es la filosofía prim ordial d e la ingenie Esto e s lo que prom ete la in g e n ie ría del e n el com ponente d e softw are.
ría del softw are de s a la lim pia, un pro softw are de s a la lim pia. ¿Cuál e s e l p ro d u cto o b te n id o ? El
ceso q u e d a im portancia a la verificación d e sa rro llo d e e sp e cific a cio n es d e c a ja
¿Cuáles son los pasos? Los m odelos de
matemática d e la corrección antes de que n eg ra, d e c a ja d e e sta d o y d e c a ja lim
a n á lis is y diseño se c re a n utilizando la
com ience la construcción d e u n progra p ia. Y, a d e m á s, el reg istro d e l os re su l
re p re s e n ta c ió n d e e s tru c tu ra d e caja.
m a y d e q u e la certificación de la fiabili ta d o s d e l a s p ru e b a s fo rm a le s d e
U na «caja» e n c a p s u la el s is te m a (o
dad d el softw are forme p a rte de la corrección y la s p ru e b a s e s ta d ís tic a s
a lg ú n a sp e c to d el siste m a ) a un nivel
actividad de pruebas. H aciendo hinca d e utilización.
específico d e ab stracció n . La verifica
pié en u n a filosofía m ás profunda, se tra
ción d e la corrección se a p lic a u n a vez ¿Cómo p u ed o e s ta r se g u r o d e q u e
taría d e aq u e lla que tiene índices d efallo
q u e se h a c o m p le ta d o el d ise ñ o d e l a lo h e h e c h o c o r r e c ta m e n te ? La
extrem adam ente bajos y q u e e s difícil o
e stru c tu ra d e c a ja Y la p ru e b a e sta d ís p ru e b a form al d e corrección se a p lic a
im posible de lograr utilizando m étodos
tic a d e la utilización com ienza u n a vez a la e sp e c ific a c ió n d e e s tr u c tu r a d e
m enos form ales.
q u e s e h a v e rifica d o la corrección en c ajas. L as p ru e b a s e s ta d ís tic a s d e u ti
¿Quién lo h a ce? Un in g en iero d el soft c a d a e stru c tu ra d e caja. El softw are se lización ejercitan los e scen ario s d e u ti
ware formado p a ra e sta especialización. p ru e b a definiendo un conjunto d e e s c e liz a ció n p a r a a s e g u ra r q u e no se
¿Por q ué e s im portan te? Los erro res narios, d e te rm in a n d o la p ro b a b ilid a d re v elen y se p u e d a n c o rre g ir los e rro
c o n lle v an d o b le trab ajo . T rab a ja r el d e utilización d e c a d a uno y definiendo re s e n la funcionalidad del usuario. Los
doble lleva m ás tiem po y e s m ás caro. ento n ces la s p ru e b a s a le a to ria s q u e se d a to s d e p ru e b a se u tiliz a n p a r a p ro
¿No sería m aravilloso poder reducir d ra a ju s ta n a la s p ro b ab ilid ad es. Por ú lti porcionar u n a señ al d e la fiabilidad del
m á tic a m e n te la c a n tid a d d e erro res mo, los registros d e errores re su lta n tes softw are.
C u a n d o e l s o f t w a r e f a lla e n e l m u n d o r e a l, s u e le n a b u n d a r lo s p e lig r o s a la r g o p la z o a s í c o m o
los p e l i g r o s i n m e d i a t o s . L o s p e l i g r o s p u e d e n e s t a r r e l a c i o n a d o s c o n l a s e g u r i d a d h u m a n a , c o n
www.FreeLibros.org
p é r d id a s e c o n ó m ic a s o c o n e l f u n c io n a m ie n t o e f e c t iv o d e u n a in f r a e s t r u c t u r a s o c ia l y d e n e g o
c i o s . L a i n g e n i e r í a d e l s o f t w a r e d e s a la l i m p i a e s u n m o d e l o d e p r o c e s o q u e e l i m i n a l o s d e f e c
to s a n te s d e q u e p u e d a n d a r lu g a r a r ie s g o s g r a v e s .
459
INGE NIERÍA DEL S O F T W A R E . UN E N F O Q U E P R Á C T I C O
li£ j
RR CEU c
w are. El uso de p ro ceso s de sa la lim p ia re q u ie re
.. ..... ... £P _ .................... ¡
u n a ap licació n rig u ro sa de p ro c e so s d efin id o s en incremento n2 2
to d as las fases del ciclo de vida. D ado que la m ayor EES DF VC IC J
GCi CEU C
p arte de la in d u stria fu n c io n a to d a v ía en el n iv el RR
1 . , PP ....
ad hoc (según se h a definido p o r parte del Softw are
incremento ns 3
E n g in e e rin g In stitu te C ap ab ility M atu rity M odel), EES DF VC¡
la in d u s tria n o h a e s ta d o p re p a ra d a p a ra a p lic a r RR
GCÍ IC| C E U c
estas técnicas. 1 pP í
IS - In g e n ie ría de s is te m a s GC - G e n e ra c ió n de c ó d ig o
A u n cu an d o e x iste n cierto s in d ic io s de v e rd ad en RR - R e c o le cció n de re q u is ito s IC - In sp e cció n de c ó d ig o
to d a s las in d icacio n es e x p resad as an terio rm en te, l o s E E C - E sp ecificación de e s tru c tu ra CEU - C o m p ro b a c ió n estadística
posib les beneficios de la ingeniería del softw are de sala d e ca ja s de u tiliz a c ió n
DF - D is e ñ o fo rm a l C - C e rtific a c ió n
lim p ia co m pensan m ás que sobradam ente la inversión
www.FreeLibros.org
VC -V e rific a c ió n de c o rre c c ió n PP - P la n ific a c ió n d e prueba
re q u e rid a p a ra su p e ra r la re siste n c ia c u ltu ra l que se
encu en tra en el n ú cleo de estas objeciones. FIG URA 2 6 .1 . El m o d e lo de p r o c e s o de sala limpia.
460
C A P I T U L O 26 IN GE NI ER IA DEL SOFTWARE: DE S A L A LIMPIA
www.FreeLibros.org
ra 2 6 . 1 , e s t a a c t i v i d a d d e s a l a l i m p i a s e r e a l i z a e n 3. H ace m ucho uso de la com probación e sta d ística de
p a r a le lo c o n l a e s p e c i f i c a c i ó n , l a v e r i f i c a c i ó n y l a g e n e utilización para descubrir errores de esp ecial in c i
r a c ió n d e c ó d ig o . dencia.
461
IN GENIERÍA DEL S O F TW A R E . UN E N F O Q U E P R Á C T I C O
2,6.2 E S P E C I F I C A C I Ó N F U N C I O N A L
Independientem entedel m étodo de análisis selecciona C aja negra. E sta caja esp e cific a el co m p o rta m ien
do, los principios de operació n p resentados en el C apí to del sistem a, o de p arte de un sistem a. El sistem a (o
tulo 11 siem pre serán aplicables. Se m o d elan los datos, parte de él) responde a estím u lo s específicos (sucesos)
las funciones y el com portam iento. L os m od elo s re su l m e d ia n te la a p lic a c ió n d e un c o n ju n to de re g la s de
tantes deben de ser d escom puestos (refinados) para p ro tran sic ió n que hacen c o rresp o n d er el estím u lo con la
porcionar un grado de detalle cada v ez m ás elevado. El respuesta.
objetivo global consiste en pasar de una esp ecificación C aja de estado. E sta c aja e n c a p su la los d ato s de
que captura la esencia de un problem a, a una esp ecifi estad o s y de se rv ic io s (operacio n es) de fo rm a a n á lo
cación que pro p o rcio n a una cantidad de detalle sustan ga a lo s o b jeto s. E n e sta v ista de e sp e c ific a c ió n , se
cial para su im plem entación.
representan las en trad as de la caja de estad o s (los estí
La ingeniería del softw are de sala lim pia satisface m u lo s) y sus sa lid a s (las resp u estas). L a c aja de e sta
los principios de análisis o p eracio n alp o r cuanto em plea dos tam b ié n rep resen ta la « h isto ria de estím u lo s» de
un m étodo denom inado especificación de e stn ic tu n i de la c aja n e g ra , es decir, lo s d a to s e n c a p su la d o s en la
caja. U n a «caja» encapsula el sistem a (o algún aspec caja de estado que deben ser m antenidos entre las tran
to del sistem a) co n un cierto grado de detalle. M edian sicio n es im p licad as
te un p ro ceso de re fin a m ie n to p ro g re siv o , se van
refinando las cajas para fo rm ar u n a je ra rq u ía en la cual Caja lim pia. Las fu n cio n es de tra n sic ió n que están
cada caja tiene transparencia referencia!. E sto es, «el im p licad as en la c aja de e sta d o se d efin en en la caja
contenido de inform ación de cada especificación de caj a lim p ia. D ich o literalm e n te, la c a ja lim p ia co n tien e el
basta p ara d efin ir su refinam iento, sin d epender de la diseño procedim ental correspondiente a la caja de esta
im plem en tació n de n inguna otra caja» [L IN 94], E sto dos.
capacita al analista p ara desglosar jerárq u icam en te el
sistem a, pasando de la representación esencial situada ¿ Cómo se lleva o cabo
en la parte superior, h asta los detalles específicos de la * el refinamiento como parte
im plem en tació n situados en la parte inferior. Se u tili de lo especificación de estructura
zan tres tipos de cajas: de caja negra?
www.FreeLibros.org
1 Las pruebas s e realizan, pero las efectúa un equipo independiente
de pruebas
462
C A P Í T U L O 26 I N G E N I E R Í A D E L SO F T W A R E D E S A L A L I M P I A
www.FreeLibros.org
FIGURA 2 6 . 2 . R efinam iento de la estructura de cajas. F IG U R A 2 6 . 4 .Una esp ecificación de caja de esta d o [MIL88]
463
INGE NIE RÍA DEL S O F T W A R E . UN E N F O Q U E P R Á C T I C O
Según se m uestra en la Figura 26.4, la caja de estado tituida por las estructuras de program ación estructura
contiene una caja negra. El estím ulo, S, que se introduce da que im plem enta g.
en la caja negra, procede de alguna fuente extem a y de un
conjunto de estados internos del sistem a, T. M ills p ro tm m m m k
porciona una descripción m atem ática de la fu n ció n ,/, de El diseño de pocedmErtosy la programación
la caja negra contenida en el seno de la caja de estado: estudiada se descrbenen el Capitulo 16.
2 6 .3 RE FI NA M IE N T O Y V E R I F I C A C I O N DEL D IS E Ñ O
E l enfoque de diseño que se utiliza en la in g en iería del pero ¿qué pasa con el diseño de datos'? En este aspec
softw are de sala lim p ia hace m u ch o uso de la filosofía to, entra e n ju e g o mi cierto n ú m ero de conceptos fun
de la program ació n estructurada. Pero, en este caso, la d a m e n ta le s d e d ise ñ o (C a p ítu lo 13). L os datos del
p ro g ram ació n estru ctu rad a se a p lica de fo rm a m ucho program a se encapsulan com o un conjunto de abstrac
m ás rigurosa. ciones a las cu ales prestan serv icio las subfuncionec.
L os co n c e p to s de e n c a p su la m ie n to de d a to s, oculta-
m iento de inform ación y los tipos de datos se utilizan
entonces para crear el diseño de datos.
Referencia Web
E l programa DoD STARTS ha desarrollado varias glbs
y doarrertosde sala limpio: ftp.cdrom.com/
p u b /ad a /d o c s/tle an rm
www.FreeLibros.org
zado para la im plem entación» [D Y E92], * se aplican para probar
El enfoque de la p ro g ram ació n estru ctu rad a se pue que las construcciones
de u tilizar de fo rm a e fic ie n te p ara refin ar la fu n ció n , estructuradas son correctas?
464
C A P I T U L O 26 I N G E N I E R Í A D E L S O F T W A R E DE S A L A L I M P I A
C a d a v e z q u e se r e fin a u n a c a ja l i m p ia h a s ta e l
s ig u ie n te n iv e l d e d e ta lle , se a p lic a n las c o n d ic io n e s de
c o rre c c ió n in d ic a d a s a n te rio rm e n te .
E s im p o rta n te te n e r e n c u en ta que la u tiliz a c ió n de
e s tru c tu ra s d e p ro g ra m a c ió n e s tru c tu ra d a re s trin g e e l
n ú m e ro d e c o m p ro b a c io n e s d e c o rre c c ió n q u e es p re
c is o e fe c tu a r. S e v e rific a una sola c o n d ic ió n e n busca
de sucesiones; se v e r ific a n dos c o n d ic io n e s p a ra lo s si-
e n to n c e s -s in o ; y se v e r ific a n tres c o n d ic io n e s p a ra los
b u c le s .
C o n o b je to d e ilu s tra r a lg u n a v e r ific a c ió n d e c o rre c
c ió n p a ra un d is e ñ o d e p ro c e d im ie n to s , se u tiliz a un sen
c illo e je m p lo p re s e n ta d o p o r p rim e ra v e z p o r p a rte de
L in g e r y sus c o la b o ra d o re s [ L Y N 7 9 ] , N u e s tro o b je tiv o
es d is e ñ a r y v e r ific a r u n p e q u e ñ o p ro g ra m a q u e c a lc u
le la p a rte e n te ra , y, d e una r a íz c u a d ra d a de u n e n te ro
dado, x. E l d is e ñ o d e p r o c e d im ie n to s se re p re s e n ta
e m p le a n d o e l d ia g ra m a d e flu jo de la F ig u r a 2 6 .7 .
www.FreeLibros.org
2 Dado que todo el equipo está implicado en el proceso de verifica
ción, es m enos probable que se produzca un error al efectuar la veri
ficación en sí.
465
INGENIERIA DEL S O F TW A RE . UN E N F O Q U E P R Á C T I C O
Raíz ción que utilice x. Por tanto, queda intacto. Dado que
la com probación de co n d ic io n es ( y + 1)2 < v tiene
que fallar para alcanzar la condición s o l i d o , se sigue
que (y + 1)2 < x. A dem ás, la condición b u c l e debe
se g u ir sien d o v e rd a d e ra (esto e s, y 2 < v). C o n si
guien tem en te, que ( y + 1 )2 > ,v e y 2 < ,v se pueden
com binar para satisfacer la condición de s a l i d a .
A dem ás, es preciso ase g u ra r que finalice el bucle.
U n exam en de la condición del bucle indica que dado
que y se va increm entando y que v > 0 , el bucle fínal-
m ente debe term inar.
i salida: x intacto, e y2 < x < (y + 1)2 L os cin c o p aso s in d icad o s an terio rm e n te son una
dem ostración de la corrección del diseño del algoritmo
F IG U R A 2 6 . 8 . D e m o s tr a c ió n d e la c o r r e c c ió n d e l d is e ñ o indicado en la F igura 26.7. A h o ra estam os seguros de
[L IN 7 9 ], que el diseñ o calcu lará, realm en te, la parte entera de
una raíz cuadrada.
1. L a c o n d ic ió n co m ien zo ex ig e que f.v > 0 e y = 0], Es posible utilizar un enfoque m atem áticam ente más
B asándose en los requisitos del problem a, se supone riguroso de la V erificación del diseño. S in em bargo, un
q u e la c o n d ic ió n de e n tra d a es correcta'. C o n s i debate sobre este tem a iría m á s allá del alcance de este
guientem ente, se satisface la prim era parte de la co n libro. Los lectores interesados pueden consultar [LIN79],
dición c o m i e n z o , x > 0. En el d iag ram a de flujo, la
sen ten cia que p reced e in m ed iatam en te a la c o n d i 26.3.2. V e n ta ja s d e l a v e r i f i c a c i ó n d e l d is e ñ o 4
ción c o m i e n z o h ace que y = 0. C o nsiguientem ente,
la segunda parte de la condición c o m i e n z o tam bién L a verificación de corrección rig urosa de cada uno de
se satisface. De aq u í que com ienzo sea verdadero. los re fin am ien to s del diseñ o de c aja lim p ia posee un
cierto n úm ero de v en ta jas ev id en tes. L in g e r [LIN94]
2. La condición b u c l e se puede encontrar de dos m an e
las describe de la siguiente m anera:
ras: ( 1) d irectam ente saliendo de c o m i e n z o (en este
. Se red u c e la v e rific a c ió n a un p r o c e s o fin ito . La
caso, la condición del bucle se satisface directamente)
o bien ( 2 ) a través del control de flujo que p asa por fo rm a anidada y secuencial, en que se organizan las
la c o n d ic ió n c o n t . D ad o que la c o n d ic ió n c o n t es estructuras de control en una caja lim pia, define de
idéntica a la condición b u c l e , b u c l e es verdadera inde m an e ra natural una .jerarquía que rev ela las condi
pendien tem en te de la ram a de flujo que lleve a ella. cio n e s de c o rrec ció n que es p rec iso verificar. Un
ax io m a de su stitu c ió n [LIN 79J nos perm ite reem
p lazar las funciones objetivo p o r sus refinam ientos
% de estructura de control dentro de lajerarquía de sub-
CLA VE d em o stra cio n e s. P o r e je m p lo , la subdem ostracióii
Poro dem o strar la corrección de un diseño, p rim ero para la función final f l de la Figura 26.9 requiere que
se d eben identificar todos las co n d icio n e s y dem ostrar
la com probación de las operaciones g l y g 2 con la
qu e to do u no de e llo s tom o un valo r Booleono.
función final f 2 pro d u zca sobre los datos el mismo
Esto e s lo q u e se llam a subdem ostroción.
efecto f l . O b sérvese que f2 reem plaza a todos los
detalles de su refin am ie n to den tro de la dem ostra
3. Se llega a la condición c o n t únicam ente después de
ción. E sta su stitu c ió n lo c aliz a el arg u m en to de
hab er increm entado en 1 el v alo r de y . A d em ás, la
dem ostración en la estructura de control que se está
ruta de flujo de control que lleva a c o n t solam ente se
estudiando. D e hecho, perm ite al ingeniero del soft
puede invocar si la condición si tam b ién es v e rd a
w are realizar dem ostraciones en cualquier orden.
dera. C onsiguientem ente si M + 1 )2 < .v. se sigue que
y 2 < -v. La condición c o n t se satisface. ^ ¿ Qué es lo que se gana
4 . L a condición s i se com prueba en la lógica co n d icio * realizando las demostraciones
nal que se m uestra. C onsiguientem ente, la condición de corrección?
s i debe de ser v erd ad era cu an d o el flujo de control
pase p o r la v ía m ostrada. . E s im p o s ib le a s o c ia r u n a im p o r ta n c ia e x c e s iv a al
5. La condición salido exige, en prim er lugar, que v no e fe c to p o s it iv o q u e p o s e e s o b re la c a lid a d lo re d u c
www.FreeLibros.org
’ U n v a lo r n e g a t iv o p a r a u n a r a ia c u a d r a d a c a re c e d e s ig n if ic a d o e n 4 E s ta s e c c ió n y la s F ig u r a s 2 6 7 h a s t a la 2 6 9 s e h a n a d a p ta d o de
e s te c o n t e x t o . IU 6 I9 4 ] S e u t iliz a n c o n p e r m is o d e l a u t o r
466
C A P Í T U L O 26 I N G E N I E R I A DEL S O F T W A R E D E S A L A L I M P I A
rutas de ejecución, se pueden verificar en un núm ero de acu erd o en que cada c o n d ició n es co rrec ta, por
finito de pasos. tanto, mi e rro r solam ente es posible si todos y cada
mío de los m iem bros del eq uipo verifican in co rrec
tam ente una condición. El requisito de acuerdo uná
CLAVE n im e b asad a en las v e rific a cio n e s in d iv id u ale s de
resultados da lugar a u n softw are que posee pocos o
A un cu an do en un p royrom o h ay uno contidod
extrem o d o m ente grand e d e fo rm a s de ejecución,
ningún defecto antes de su prim era ejecución.
lo s p o so s poro d e m o strar qu e u n proyrom o • T odo sistem a de so ftw are, in d e p e n
E s e s c c d a b le .
es correcto son m uy pocos. d ie n te m e n te de su ta m a ñ o , p o see unos p ro c e d i
m ie n to s de ca ja tran sp aren te del m ás a lto n iv el
[f 1] f 1 = [D O g 1; g 2; [ f 2] E N D I? form ados por estructuras de secuencia, alternancias
DO e iteraciones. C ada uno de estos invoca típicam ente
gi
g2 a un gran subsistem a que posee m iles de líneas de
[f2 ] f 2 = [W H IL E p1 D O [ f 3] E N D I ? có d ig o — cada uno de estos sub sistem as posee su
W H IL E p ropio nivel superior de funciones y procedim ientos
pl
DO [ f 3] f 3 = [D O g 3 ; [f4 ]; g 8 E N D I ? finales — . Por tanto, las condiciones de corrección
g3 para estas estructuras de control de alto nivel se veri
[f4 ] f4 = [IF p 2 ; T H E N [ f 5] ELS E [ f 6] E N D I ?
fican de la m ism a fo rm a en que se procede con las
IF
P2 estructuras de bajo nivel. Las verificaciones de alto
T H E N [f 5] f 5 = [D O g 4 ; g 5 E N D I ? nivel pueden requerir, y m erecerá la pena, mía m ayor
g4 cantidad de tiem po, pero no se necesita m ás teoría.
g5
ELSE [ f 6 ] f 6 = [D O g 6 ; g 7 E N D I ? • P r o d u c e u n c ó d ig o m e jo r q u e la c o m p r o b a c ió n u n i
g6 t a r i a . La c o m p ro b a c ió n u n itaria so la m e n te c o m
g?
EN D p ru e b a los e fe c to s de e je c u ta r v ía s de p ru e b a s
98 seleccionadas entre m uchas vías posibles. Al basar
EN D la verificación en la teoría de funciones, el enfoque
END
de sala lim pia puede v erificar todos y cada uno de
F IG U R A 2 6 .9 .Diseño con subdemostraciones [LIN94]. los p o sib les e fe c to s so b re los d a to s, p o rq u e aun
cuando mi program a pueda tener m últiples vías de
• P e r m it e q u e lo s e q u ip o s d e s a la l im p i a v e r ifiq u e n ejecución, solam ente posee mía función. La v erifi
L os diseños
to d a s la s lín e a s d e d is e ñ o y d e c ó d ig o . cación es, adem ás, m ás eficiente que la com proba
pueden efectu ar la verificación m ediante mi análisis c ió n u n itaria. La m a y o r de las c o n d ic io n e s de
y debate en grupo de las bases del teorem a de correc verificación se pueden verificar en unos pocos m inu
ción y pueden p ro d u cir p ruebas escritas cuando se tos, pero las com probaciones unitarias requieren una
necesite mía co n fia n z a ad icio n al en algún sistem a cantidad notable de tiem po para prepararlas, ejecu
crítico para vidas o m isiones. tarlas y com probarlas.
• D a l u g a r a u n n iv e l d e d efecto s p r ó x i m o a c e r o . E s im portante ten er en cuenta que la verificación de
Durante una revisión en equipo, se verifica por tu r diseño debe de aplicarse en últim a instancia al código
nos la corrección de todas y cada mía de las e stru c fuente en sí. En este contexto, suele denom inarse v e r -
turas de control. Cada m iem bro del equipo debe estar f ic a c ió n d e c o r r e c c ió n .
26. 4 P R U E B A DE S A L A L I M P I A
La táctica y estrategia de la prueba de sala limpia es algo El com portam iento visible para el usuario de ese p ro
fundam entalm ente distinto de los enfoques conv en cio gram a está co n tro lad o por las en trad as y sucesos que
nales de com probación. Los m étodos c o n v en cio n ales suelen ser producidos por el usuario. Pero en casos co m
derivan de casos de p ru eb a p ara d e sc u b rir e rro res de plejos, el espectro posible de entradas y sucesos (esto
diseño y de co d ificació n . E l o b je tiv o de los caso s de es, lo s c aso s p ráctic o s) p u ed e n ser e x tre m a d a m e n te
prueba de sala lim pia es v alid ar los req u isitos del so ft variables. ¿C uál es el su b co n ju n to de casos prácticos
ware m ediante la dem ostración de que mía m uestra esta que verifica adecuadam ente el com portam iento del pro
dística de casos prácticos (Capítulo 11) se han ejecutado gram a? Esta es la prim era cuestión que aborda la prue
con éxito. ba estadística de casos prácticos.
L a p ru eb a esta d ístic a de caso s « eq u iv ale a p ro b ar
el so ftw a re en la fo rm a en que los u su a rio s tie n e n
www.FreeLibros.org
26.4.1. Prueba e sta d ístic a d e c a so s prácticos intención de utilizarlo» [L1N94J. Para lo g rar esto, los
El usuario de un p ro g ram a de co m p u tad o ra n o suele e q u i p o s d e p r u e b a d e s a l a l i m p i a (tam bién llam ados
necesitar com prender los detalles técn ico s del diseño. e q u i p o s d e c e r t i f i c a c i ó n ) deben d e te rm in a r la d is tri
I NGE NIERÍA DEL S O F TW A RE . UN EN FOQ UE P R Á C T I C O
3 8 -2 1 -5 2 -8 4 -8 6 -4
Los pasos 1 a 4 se han descrito en secciones ante
S e d e r iv a n lo s s ig u ie n t e s c a s o s p r á c t ic o s m e d ia n riores. En esta sección, nos concentram os en la certifi
te la s e le c c ió n d e lo s e s t í m u lo s a d e c u a d o s b a s a d o s e n cación de fiabilidad.
www.FreeLibros.org
5 Se utilizan herram ientas autom atizadas con este fin Para m as infor
m a c io n , v e a s e [D Y E 9 2 |
468
C A PI T U L O 26 INGENIERIA DEL S O F T W A R E D E S A L A LIMPIA
La certificación para la ingeniería del software de sala M odelo de Certificación. Se estima y certifica la fia
limpia requiere la creación de tres modelos [P 0 0 3 4 ]: bilidad global del sistema.
M odelo de m uestreo. La com probación de softw a Al final de la prueba estadística de utilizació n , el
re ejecuta m casos de prueba aleatorios, y queda certi equipo de certificación posee la inform ación necesaria
ficada si n o se produce ningún fallo o si se produce un para proporcionar un software que tenga un T M E F cer
número de fallos inferior al especificado. El valor de m tificado que se habrá calculado em pleando todos estos
se deriva m atemáticamente para asegurar que se alcan modelos.
ce la fiabilidad necesaria. Una descripción detallada del cálculo de los m ode
Modelo de com ponentes. Es preciso certificar un sis los de muestreo, de componentes y de certificación va
tema compuesto por n componentes. El modelo de com más allá del alcance de este libro. El lector interesado
ponentes capacita al analista para detenninar la probabilidad encontrará detalles adicionales en [M US87], [CUR86J
de que falle el componente í antes de finalizar el programa. y [P 0 0 9 3 ],
RESUMEN
La ingeniería del software de sala lim pia es un enfoque definen condiciones de salida para cada una de las sub
formal para el desarrollo del software, que puede dar funciones y se aplica un conjunto de subpruebas. Si se
lugar a u n software que posea una calidad notablem en satisfacen todas y cada una de las condiciones de sali
te alta. Emplea la especificación de estructura de cajas da, entonces el diseño debe ser correcto.
( o métodos form ales) para el m odelado d e análisis y U na vez finalizada la verificación de co rrecció n ,
diseño, y hace hincapié en la verificación de la correc com ienza la prueba estadística de utilización. A d ife
ción, m ás que en las pruebas, com o mecanismo funda rencia de la comprobación condicional, la ingeniería del
mental para hallar y elim inar errores. Se aplica una software de sala limpia no hace hincapié en la prueba
prueba estadística de utilización para desarrollar la infor unitaria o de integración. En su lugar, el softw are se
mación de tasa de fallos necesaria para certificar la fia com prueba m ediante la definición de un conjunto de
bilidad del software proporcionado. escenarios, mediante la determinación de las probabi
El enfoque de sala limpia comienza por unos modelos lidades de utilización de cada uno de esos escenarios y
de análisis y diseño que hacen uso de una representación mediante la aplicación posterior de pruebas aleatorias
de estructura de cajas. Una «caja» encapsula el sistema (o que satisfagan estas probabilidades. Los registros de
algún aspecto del sistema) en un determ inado nivel de error resultantes se combinan con modelos de muestreo,
abstracción. Se utilizan cajas negras para representar el de componentes y de certificación para hacer posible el
comportamiento observable externamente de ese sistema. cálculo matemático de la fiabilidad estimada de ese com
Las cajas de estado encapsulan los datos y operaciones de ponente de software.
ese estado. Se utiliza una caja limpia para modelar el dise La filosofía de sala limpia es un enfoque riguroso de
ñ o de procedimientos que está implicado por los datos y la ingeniería del software. Se trata de un modelo de pro
operaciones de la caja de estados. ceso del software que hace hincapié en la verificación
Se aplica la verificación de corrección una vez que m atem ática de la corrección y en la certificación de la
está completo el diseño de estructura de cajas. El dise fiabilidad del software. El resultado final son unas tasas
ño de procedimientos para un componente de software de fallo extremadamente bajas, que sería difícil o im po
se desglosará en una serie de subfunciones. Para dem os sible de conseguir empleando unos métodos menos for
trar la corrección de cada una de estas subfunciones, se males.
R E FER ENC IA S
[CUR86] Currit, P.A., M. Dyer y H.D. Mills, «Certifying the [HEN95] Elenderson, J., «Why isn’t cleanrooin the Univer
Reliability of Software»,IEÉE Trcms. Software Enginee- sal Software Development Methodology?». Crosstalk, vol.
ríng, vol. SE-12,n." l,E n ero d e 1994. 8 , n.- 5, Mayo de 1995,pp. 11-14.
[DYE92] Dyer, M., The Cleanroom Appwach to Quality Soft [HEV93] Elevner,A.R., y H.D. Mills,«Box Structure Methods
ware Development, Wiley, 1992. for System Development with Objects», IBM Systems Jour
nal, vol. 3 l,n." 2, Febrero de 1993,pp. 232-251.
[HAU94] Elausler, P.A., R. Linger y C. Trammeb «Adopting
www.FreeLibros.org
Cleanroom Software Engineering with a phased Appro- [LIN79] Linger, R. M., H. D. Mills y B.l. Witt, Structured
ach»,/ÜA/ Systems Journal, vol. 33, n." 1, Enero de 1994, Programming: Theory and Practice, Addison-Wesley,
pp. 89-109.' 1979.
469
IN GENIERÍA D E L S O F T W A R E . U N E N F O Q U E P R Á C T I C O
[LIN88] Linger, R. M., y H. D. Mills, «A Case Study in Cle- [MUS87] Musa, J.D., A . Iannino y K. Okumoto, E n g in e e r in g
anroom Software Engineering: The IBM COBOL Struc- u n d M a n a g i n g S o ftw a r e w ith R e l i a b il i tv M e a s u r e s ,
turing Facility», P ro c . C O M P S A C ' 88 , Chicago, Octubre McGraw-Hill, 1987. '
de 1988. [POO 88] Poore, J. H., y H.D. M ills, «Bringing Software
[LIN94] Linger, R., «Cleanroom Process Model»,/??.??.?? S o ft Under Statistical Quality Control», Q u a lity P r o g r e s s ,
w a re , v o l. 11, n.a 2, Marzo de 1994,pp. 50-58. Noviembre de 1988, pp. 52-55.
IMIL87] Mills, H.D.,M. D yery R. Linger, «Cleanroom Soft [P0093J Poore, J. H., H.D. Mills y D. Mutchler, «Planning
ware Engineering», I E E E S o ftw a r e , vol. 4, n.° 5, Sep and Certifying Software System Reliability», I E E E S o ft
tiembre de 1987,pp. 19-24. w a re , vol. 10,n.Q 1, Enero de 1993,pp. 88-99.
[MIL 88] Mills, H.D., «Stepwise Refinement and Verification [WOH94] Wohlin, C., y P. Runeson, «Certification of Soft
in Box StructuredSystems», C o m p u te r , vol. 21, n.- 6 , Junio ware Components», I E E E T ra n s, S o ftw a r e E n g in e e r in g ,
de 1988, pp. 23-35. vol. 20, n.y 6, Junio de 1994,pp. 494-499.
www.FreeLibros.org
han sido editados por Poore y Trammell ( C le a n r o o m S o f t de varios artículos importantes. Linger [L1N94] es una de las
w a r e : A R e a d e r , Blackwell Publishing, 1996). Becker y mejores introducciones a este tema. A s s e t S o u r & e fo t S o ftw a
W hittaker ( C le a n r o o m S o f tw a r e E n g in e e r i n g P r a c ti c e s , re E n g in e e r in g T e c h n o lo g y , ASSET (Departamento de Defen
Idea Group Publishing, 1996) presentan una visión general sa americano) ofrece u n conjunto excelente de seis volúmenes
470
C A P Í T U L O 26 I N GE NIE RÍ A DEL SO F T W A R E DE S A L A LIMPIA
de C leanroom E n gin eerin g H a n dbooks. Se puede contactar Deck, M.D., «Using Box Structures to Link Cleanroom
con ASSET en info@source.asset.com. Lockheed Martin ha and Object-Oriented Software Engineering», Technical R eport
preparado la guía G iiide to the Integration o f O b ject-O rien - 94.01h , Cleanroom Software Engineering Inc., Boulder, CO,
tedM ethods an d C leanroom Software Engineering (1997) que 1994.
contiene un proceso genérico de sala limpia para sistemas ope Dyer, M. «Designing Software for Provable Correctness:
rativos y está disponible en: the direction for quality softwar e»,In form ation a n d S o ftw a
http://www.asset.com/stars/cleanroom/oo/guidhome.htm re Technology, \o \. 30, n.y 6, Julio/Agosto de 1988, pp. 331
340. '’
Linger y Trammell (C le a n ro o m S o ftw a re E n g in eerin g
Referent e M o d el, SEI Technical Report CMU/SEI-96-TR- Pruebas y C ertificación
022, 1996) han definido un conjunto de 14 procesos de sala Dyer, M .,«A n Approach to Software Reliability Measu-
limpia y 20 productos de trabajos que forman la base del SEI rement», Inform ation an d Softw are Technology, vol. 29, n.ü
CMM para la ingeniería del software de sala limpia 8 , Octubre de 1987,pp. 415-420.
(CMU/SEI-96-TR-023). Head, G.E., «Six-Sigma Software Using Cleanroom Soft
Michael Deck, de Cleanroom Software Engineering, Inc., ware Engineering Techniques», H e w le tt-P a c k a rd Jou rn al,
ha preparado una bibliografía sobre temas de sala limpia. Juniode 1994,pp. 40-50.
Entre las referencias se encuentran las siguientes: Oshana, R., «Quality Software via a Cleanroom Metho-
Generales e Introductorias dology», E m h ed d ed S ystem s P ro g ra m m in g , Septiembre de
Deck, M.D., «Cleanroom Software Engineering Myths 1996,pp. 36-52. ’ ' "
andRealities», O u alitv Week 1997, San Francisco, C A, Mayo Whittaker, J.A., y Thomason, M.G., «A Markov Chain
de 1997. ~ ' ' Model for Statistical Software Testing», IEEE Trans. on Soft-
Deck, M.D, y J.A. Whittaker, «Lessons Learned from Fif- wure E n gin eerin g, Octubre de 1994, pp. 8 12-824.
teen Years of Cleanroom Testing», Software Testing, A nalysis,
Estudios de casos e inform es experim entales
andR eview (STAR) '97, San José, CA, 5-9 de Mayo de 1997.
Head, G.E., «Six-Sigma Software Using Cleanrooin Soft
Lokan, C. J., «The Cleanroom for Software Development»,
ware Engineering Techniques», Hewlett-Packard Journal,
The Australian C om pu ter Journal, vol. 25, n.e 4, Noviembre
Juniode 1994,pp. 40-SO.
de 1993.
Hevner, A.R., y H.D. Mills, «Box-structured methods for
Linger, Richard C., «Cleanroom Software Engineering for
systems development with objects», IB M system s Journ al,
Zero-Defect Software», P roc. 15 th In tern a tio n a l Conferen-
vol. 32, nP 2, 1993,pp. 232-251. ’
ce Internationul on Software E ngineering, Mayo de 1993.
Keuffel, W., «Clean YourRoom: Formal Methods forthe Tann, L-G., «OS32 and Cleanroom», P ro c. !st A n im al
European Industrial Symposium on Cleanroom Software Engi
90’s», C om pu ter L anguage, Julio de 1992, pp. 39-46.
n eerin g, Copenhagen, Denmark, 1993, pp. 1-40.
Hevner, A.R, S.A. Becker y L.B. Pedowitz, «Integrated
CASE for Cleanroom Development», IE E E Softw are, M ar Hausler, P.A., «A Recent Cleanroom Success Story: The
zo de 1992, pp. 69-76. Redwing Project», P roc. 17 * A n im al Softw are E ngineering
Cobb, R.H. y H.D. Mills, «Engineering Software under W orkshop, NASA Goddard Space Flight Center, Diciembre
Statistical Quality Control», IE E E S oftw are, Noviembre de de 1992.
1990,pp. 44-45.' Trammel, C.J., Binder L.H. y Snyder, C.E., «The Auto-
mated Production Control Documentation System: A Case
Practicas de Gestión Study in Cleanroom Software Engineering», A C M Trans. on
Becker, S.A.,M.D. Deck y T. Janzon, «Cleanroom and Orga- Softw are E n gin eerin g and M ethoclology, vol. 1, flj-’ 1, Enero
nizational Change », Proc. I4 ,h Pacific Nortlm ’est Software Qua- de 1992,pp. 81-94. ’
lity Conference, Portland, OR, 29-30 de Octubre de 1996.
La verificación de diseños mediante pruebas de correc
Linger, R.C., «Cleanroom Process Model», IE E E Soft ción se encuentra en el centro del enfoque de sala limpia. En
ware, marzo de 1994, pp. 50-58. los libros de Baber (E rro r-F ree S o ftw a re , Wiley, 1991) y
Linger, R.C. y Spangler, R.A., «The IBM Cleanroom Soft Schulmeyer (Zero D e je c t Softw’are, McGraw-Hill, 1990) se
ware Engineering Technology Transfer Program», Sixth SEI estudia la prueba de corrección de forma m u y detallada.
Conference on Software E n gin eerin g E du cation , San Diego,
En Internet se puede encontrar disponible mucha infor
CA, Octubre de 1992.
mación variada sobre la ingeniería del software dc sala lim
Especificación, D iseño y R evisión pia y sobre temas relacionados. Para conseguir una lista
Deck, M.D., «Cleanroom and Object-Oriented Software actualizada de referencias que sea relevante para la ingenie
Engineering: A Unique Synergy», I Y 96Softw are Technology ría del software de sala limpia se puede visitar http://w w w
Conference, SaltLake City, UT, 24 de Abril de 1996. pressm an5.com
www.FreeLibros.org 47 1
www.FreeLibros.org
CAPÍTULO
— IN G E N IE R ÍA DEL S O FTW A R E
/ / B A SA D A EN C O M P O N E N T E S
VI STAZO RÁPI DO
¿Qué es? Compre un equipo de música diciendo que los sistemas basados en en la arquitectura del sistema; (3)adap-
estéreo y lléveselo a casa. Cada com componentes son más fáciles de ta los componentes si se deben hacer
ponente ha sido diseñado para aco ensamblar y, por tanto, más caros de modificaciones para poderlos integrar
plarse en un estilo arquitectónico construir a partir de piezas separadas. adecuadamente; (4) integra los compo
específico—las conexiones son están Además, la ISBC hace hincapié en la nentes para formar subsistemas y la
dar y puede preestablecerse el protoco utilización de patrones arquitectónicos aplicación completa. Además, loscom-
lo de comunicación—. El ensamblaje es predecibles y en una infraestructura de ponentes personalizados se han dise
fácil porque el sistema no tiene que software estándar, lo que lleva a un ñado para afrontar esos aspectos del
construirse a partir de piezas por sepa resultado de calidad superior. sistema que no pueden implementarse
rado. La ingeniería del software basa utilizando componentes que ya existen.
;Cuáles son los p aso s? La ISBC acom
da en componentes (ISBC) lucha por ¿Cuál e s e l p ro d u c to o b te n id o ? El
paña a dos actividades de ingeniería
conseguir lo mismo. Un conjuntode com producto de la ISBC es el software ope-
paralelas: la ingeniería del dominio y
ponentes de software preconstruidos y racional ensamblado utilizando los
el desarrollo basado en componentes.
estandarizados están disponibles para componentes de software existentes y
La ingeniería del dominio explora un
encajar en un estilo arquitectónicoespe- los que se acaban de desarrollar.
dominio de aplicaciones con la inten
cífico pura algún dominiode aplicación.
ción de encontrar específicamente los ¿Cómo p u e d o e s ta r se g u r o d e q u e
la aplicación se ensambla entonces uti
componentes de datos funcionales y de lo h e h ech o correcta m en te? Utili
lizando estos componentesy no las .pie
comportamiento candidatos para la zando las mismas prácticas SQA que
zas por separado. de un lenguaje de
reutilización. Estos componentes se se aplican en todos los procesos de
programación convencional.
encuentran en bibliotecas de reutiliza ingeniería del software—las revisio
;Q uién lo h a c e ? Los ingenieros del ción. El desarrollo basado en compo nes técnicas formales evalúan los
software. nentes obtiene los requisitos del cliente modelos de análisis y diseño — : las
¿Por q u é e s im p ortan te? La instala y selecciona el estilo arquitectónico revisiones especializadas tienen en
ción del equipo estéreo solo lleva unos adecuado para cumplir los objetivos consideración temas asociados con los
pocos minutos, porque los componen del sistema que se va a construir, y a componentes adquiridos; y la compro
tes están diseñados para integrarse continuación: (1) selecciona posibles bación se aplica para descubrir errores
con facilidad. Aunque el software es componentes para la reutilización; (2) en el software nuevo y en componentes
www.FreeLibros.org
considerablemente más complejo que cualifica los componentes para asegu reutilizables que se hayan integrado en
el sistema estéreo, se puede seguir rarse de que encajan adecuadamente la arquitectura.
473
IN G E N IE R Í A DEL SOFTW ARE . UN EN F O Q U E P R A C T I C O
www.FreeLibros.org
ciales o del producto de m anera que se puede lograr la im plem enta-
ción b asada en com p o n en tes sin la necesidad de una ingeniería
personalizada. Este enfoque reduce el coste del sistem a y mejora el
tiempo de com ercialización, pero no siempre es posible.
474
CAPITULO 27 I N GE NIE RÍ A DEL SOFTWARE B A SA D A EN C O M P O N E N T E S
• c o m p o n e n te - u n a p a r t e r e e m p l a z a b l e , c a s i i n d e p e n c io n a lid a d s in o ta m b ié n e l r e n d im ie n to , la f i a b i lid a d y
d ie n t e y n o t r iv ia l d e u n s is t e m a q u e c u m p le u n a f u n o t r o s f a c t o r e s d e c a lid a d ( C a p í t u lo 1 9 ) e n c a ja n c o n lo s
c ió n c la r a e n e l c o n t e x t o d e u n a a r q u it e c t u r a b ie n r e q u is it o s d e l s is t e m a /p r o d u c to q u e s e v a a c o n s t r u ir ;
d e f in id a ;
• com ponente d el softw are en e je c u c ió n - u n p a q u e t e G s sm s E E zm
d in á m ic o d e u n ió n d e u n o o m á s p r o g r a m a s g e s tio b certificación de componentesse puede realizar
con losmétodos de salo limpia. Para obtener
n a d o s c o m o u n a u n id a d , a lo s q u e s e a c c e d e a tr a v é s
más información consulteelCopftulo 26.
d e in te r fa c e s d o c u m e n ta d a s q u e s e p u e d e n d e s c u b r ir
e n la e je c u c ió n ;
• com ponentes a d a p ta d o s- a d a p t a d o s p a r a m o d i f i c a r
• com ponente de s o ftw a r e - u n a u n i d a d d e c o m p o s i ( t a m b ié n lla m a d o s « e n m a s c a r a d o s » o « e n v o lt o r io s » )
c ió n q u e s o lo d e p e n d e d e l c o n t e x t o c o n tr a c tu a l d e
[ B R 0 9 6 ] la s c a r a c t e r í s t i c a s n o d e s e a d a s .
f o r m a e s p e c íf ic a y e x p lí c it a ; . com ponentes en sa m b la d o s- i n t e g r a d o s e n u n e s t i l o
• com ponente de n e g o c io - l a i m p l e m e n t a c i ó n d e s o f t a r q u it e c t ó n ic o e in t e r c o n e c t a d o s c o n u n a in f r a e s
w a re d e u n c o n c e p to c o m e r c ia l « a u tó n o m o » o d e u n t r u c t u r a d e c o m p o n e n te s a d e c u a d a q u e p e r m it e c o o r
p r o c e s o c o m e r c ia l; d in a r y g e s tio n a r lo s c o m p o n e n te s d e f o r m a e f ic a z ;
A d e m á s d e la s d e s c r i p c i o n e s a n t e r i o r e s , l o s c o m p o • c o m p o n en te s a c tu a liza d o s- e l s o f t w a r e a c t u a l s e
n e n te s d e l s o f t w a r e t a m b i é n s e p u e d e n c a r a c t e r i z a r p o r e l r e e m p la z a a m e d id a q u e s e d is p o n e d e n u e v a s v e r
u s o e n e l p r o c e s o I S B C . A d e m á s d e lo s c o m p o n e n t e s C Y D , s io n e s d e c o m p o n e n t e s ;
e l p r o c e s o I S B C p r o d u c e lo s s ig u ie n t e s c o m p o n e n t e s : D a d o q u e la IS B C e s u n a d is c ip lin a e n e v o lu c ió n , n o
• com ponentes c u a lific a d o s- e v a l u a d o s p o r l o s i n g e e s p r o b a b le q u e e n e l f u t u r o s u r ja u n a d e f in ic ió n u n i f i
n ie r o s d e s o f t w a r e p a r a a s e g u r a r q u e n o s ó lo la f u n cada.
Referencia Web
La página de tecnología de componentes proporciono
Información útil sobre ISBC:
www.odateom.com/c o p /
L a F ig u r a 2 7 .1 ilu s t r a u n m o d e lo d e p r o c e s o t í p ic o q u e
a c o p la l a I S B C e x p l í c i t a m e n t e [ C H R 9 5 ] . L a i n g e n i e r í a d e l
d o m in io c re a u n m o d e lo d e d o m in io d e a p lic a c ió n q u e se
u t i l i z a c o m o b a s e p a r a a n a l i z a r los r e q u i s i t o s d e l u s u a r i o
e n e l f l u j o d e la in g e n ie r í a d e l s o ftw a r e . U n a a r q u it e c t u r a
d e s o f t w a r e g e n é r i c a (y l o s p u n t o s d e e s t r u c t u r a c o r r e s
p o n d ie n t e s , v é a s e la S e c c ió n 2 7 . 3 . 3 ) p r o p o r c io n a la e n t r a
d a p a r a e l d is e ñ o d e la a p lic a c ió n . F in a lm e n te , d e s p u é s d e
q u e s e h a n c o m p r a d o lo s c o m p o n e n t e s r e u t i l i z a b l e s , s e h a n
s e l e c c i o n a d o a p a r t i r d e la s b i b l i o t e c a s e x i s t e n t e s o s e h a n
www.FreeLibros.org
c o n s t r u id o ( c o m o p a r t e d e la in g e n ie r í a d e l d o m in io ) , lo s
in g e n ie r o s d e l s o f tw a r e d is p o n d r á n d e e llo s d u r a n t e la a c t i
FIGURA 27.1. Un m o d elo de p roceso de sop orte a la ISBC. v id a d d e d e s a r r o llo b a s a d a e n c o m p o n e n te s .
475
in g e n ie ría d e l s o ftw a re . un enfoque p ra c tic o
, :: , : •' r que estón ubicadas de forma El lenguaje del dominio hace posible la especifica
¡¡¡8# asquea provecho de esos componentes. ción y construcción posterior de aplicaciones dentro del
há&tbmmH dominio.
Aun cuando los pasos indicados anteriormente pro
La ingeniería del dominio incluye tres actividades porcionan un modelo Útil para el análisis del dominio, no
principales: análisis, construcción y diseminación. En proporcionan ninguna guía para decidir cuáles son los com
el Capítulo 2 1 se presentó una revisión general del aná ponentes de software que son candidatos para la reutiliza
lisis del dom inio. Sin embargo, este tem a se vuelve a ción. Hutchinson y Hindley [HUT88] sugieren el siguiente
tratar en las secciones siguientes. La construcción y la conjunto de cuestiones pragmáticas como guía para iden
disem inación del dominio se describirán m ás adelante tificar los componentes del software reutilizables:
en otras secciones dentro de este m ismo capítulo. ■ ¿Es la funcionalidad del com ponente un requisito
Se podría argumentar que «la reutilización desapa para futuras im plementaciones ?
recerá, no m ediante la elim inación, sino m ediante la
• ¿Hasta qué punto es corriente la función del com
integración» en el entram ado de prácticas de la inge
ponente dentro del dominio?
niería del software [TRA95], Como la reutilización cada
vez recibe más importancia, todavía hay quien cree que • ¿Existe una duplicación de la función del compo
en la próxim a década la ingeniería del dominio tendrá nente dentro del dominio?
tanta im portancia como la ingeniería del software. • ¿Depende ese componente del hardware?
• ¿Permanece intacto el hardware entre implementa
27.3.1. El p ro ce so d e a n á lis is d el d o m in io ciones?
En el Capítulo 21 se describía el enfoque general del ¿Cuáles son
análisis del dominio en el contexto de la ingeniería del ♦ los componentes
software orientado a objetos. Las pasos del proceso se identificados durante el análisis
definían de la siguiente manera: del dominio que serán candidatos
1. Definir el dominio que hay que investigar. de la reutilización?
2. Categorizar los elementos extraídos del dominio.
• ¿Es posible trasladar las partes específicas del hard
3. R ecoger una m uestra representativa de las aplica
ware a otro componente?
ciones del dominio.
• ¿Está el diseño suficientemente optimizado para la
4. Analizar cada aplicación de la muestra.
siguiente implementación?
5. Desarrollar un m odelo de análisis para los objetos.
• ¿Es posible param etrizar un componente no reutili-
Es im portante tener en cuenta que el análisis del zable para que pase a ser reutilizable?
dominio se puede aplicar a cualquier paradigm a de la
• ¿Es reutilizable ese componente en m uchas imple-
ingeniería del software, siendo posible aplicarlo tanto
m entaciones con cambios solo m enores?
para el desarrollo convencional com o para el desarro
• ¿Es viable la reutilización mediante modificaciones?
llo orientado a objetos.
Prieto-Diaz[PRI87] am p liad segundo paso del aná • ¿Se puede descomponer un componente no reutili
www.FreeLibros.org
lisis del dominio indicado anteriormente y sugiere un zable para producir componentes reutilizables?
enfoque de ocho pasos para la identificación y clasifi • ¿Hasta qué punto es válida la descomposición del
cación de componentes reutilizables: componente para su reutilización?
476
CAPÍTULO 27 I N GE NIE RI A DEL SOF TW ARE B A S A D A EN C O M P O N E N T E S
U na d escripción en p ro fu n d id ad de los m étodos de 4. claram ente relevante, y si el softw are nuevo no posee
análisis del dom inio va m ás allá del alcance de este libro. esta c arac terístic a, la reu tiliz a c ió n será in eficien te
Para m ás info rm ació n acerca del análisis del dom inio, pero quizás siga siendo posible
véase [PRI93]. 5. es claram en te relevante, y si el so ftw are nuevo no
posee esta característica, la reutilización será inefi
27.3.2. F u n cion es de caracterización ciente y la reutilización sin esta característica no es
Aveces resulta difícil determ inar si un com ponente poten recom endable.
cialmente reutilizable es realm ente aplicable en una situa C uando se va a construir un softw are nu ev o , w , den
ción determ inada. Para llevar a cabo esta determ inación, tro del d o m in io de la ap licación, se d e riv a p a ra él un
es n ecesario d efinir un conjunto de características del conjunto de característicasdel dom inio. A continuación,
dominio que sean co m p artid asp o r todo el softw are en el se efectúa una com paración entre D p¡ y D w¡, para d eter
seno del dom inio. U na característica del dom inio define m inar si el com ponentep se puede reutilizar eficazm ente
algún atributo genérico de todos los productos que ex is en la aplicación w .
ten dentro del dom inio. P or ejem plo, entre las caracte
rísticas genéricas se podría incluir: la im portancia de la
seguridad y fiabilidad, el lenguaje de p rogram ación, la
concurrencia de p ro c e s a m ie n to ^ m uchas más. Referencia W ebl
Un conjunto de características de dom inio de un co m Para encontrar referenciasvaliosas sobre
ponente reutilizable se puede rep resen tar com o {D¡} \ en una tecnología de objetos de dlreccionamlento
donde cada elem ento D p¡ del conjunto representa una de informes, arquitecturas y análisis de dominios,
característica específica de dom inio. El v alor asignado se puede visitar lo dirección de Internet:
a D ■representa una escala ordinal com o una indicación www.sei.cmu.edu/mbse/ wisr_report.html
de la relevancia de esa característicapara el com ponente
p. Una escala típ ica [B A S94] p o d ría ser: L a Tabla 27.1 [BA S94] enum era las características
1. no es relevante para que la reutilización sea o no ade típicas del dom inio que pueden ten er im pacto en la reu
cuada. tilización del softw are. E stas características del d o m i
2. relevante sólo en circunstancias p oco com unes. nio deben de tenerse en cuenta con o b jeto de reutilizar
un com ponente de form a eficiente.
3. relevante: el co m p o n en te se p u ed e m o d ific ar para
A un cuando el softw are que se vaya a construir ex is
poder u tilizarlo, a p esar de las diferencias.
ta claram ente en el seno de un dom inio de aplicación,
los co m p o n en tes re u tiliz ab le s situados d e n tro de ese
P ro d u c to P ro c e s o P e rs o n a l dom inio deberán ser analizados con objeto de d eterm i
nar su aplicabilidad. E n algunos casos (esperem os que
Estabilidad M odelo M otivación
sea un núm ero lim itado), la «reinvención de la rueda»
de requisitos de proceso
puede seguir siendo la opción m ás rentable.
Software A juste Educación
concurrente del proceso
Restricciones Entorno Experiencia/ 27.3.3. Modelado estructural y puntos d e estructura
de memoria del proyecto form ación C uando se aplica el análisis del dom inio, el analista bu s
Tamaño R estricciones • dom inio ca tram as repetidas en las aplicaciones que residen d e n
de aplicaciones de planificación de aplicación tro del dom inio. El m odelado estructural es un enfoque
Complejidad R estricciones • proceso de ingeniería basado en tram as que opera efectuando la
de interfaz de presupuesto suposición consistente en que todo dom inio de aplicación
de usuario posee tram as repetidas (de función, de datos y de co m
portam iento) que tienen un potencial de reutilización.
Lenguaje(s) Productividad • plataform a
P ollak y R issm an [PO L94] d escrib en los m o delos
de programación
estructurales de la siguiente m anera:
Seguridad • lenguaje
Los modelos estructurales constan de un pequeño número
y fiabilidad
de elementos estructurales que manifiestan unas tramas de
Requisitos Productividad interacción claras. Las arquitecturas de sistemas que utilizan
de la duración global del equipo modelos estructurales se caracterizan por múltiples ensambla
de desarrollo jes formados por estos elementos del modelo. De esta mane
ra, las interacciones complejas entre sistemas que tienen muchas
Calidad del producto unidades arquitectónicas, surgen de tramas sencillas de inte
Fiabilidad racción que existen en el conjunto pequeño de elementos.
www.FreeLibros.org
del producto Todo d o m in io de ap licació n se puede c arac teriza r
TABLA 27.1. Características del dominio que afectan por un m odelo estructural (por ejem plo, la aviónica d ifie
al software [BAS94]. re m ucho en los aspectos específicos, pero todo el so ft
477
I N G E N I E R Í A DEL S OFT W ARE . UN EN FOQUE P R Á C T I C O
www.FreeLibros.org
2Se debería destacar que el estilo arquitectónico suele estar influen
ciado por el modelo de estructura genérico creado en la ingeniería
del dominio (véase Figura 27.1)
478
CAPÍTULO 27 INGE NIE RÍ A DEL SO FT W AR E B A SA D A EN C O M P O N E N T E S
www.FreeLibros.org
• supuestos de diseños em bebidos, incluyendo la u ti o s i p o r e l c o n t r a r io se d e b e r í a d is e ñ a r u n c o m p o n e n te
lización de algoritm os n um éricos y no num éricos; p e r s o n a liz a d o ( d is e ñ a d o p a r a e l im i n a r lo s c o n f lic t o s
• m anip u lació n de excepciones. q u e se e n c u e n tre n ).
479
INGE NIE RÍA DEL SOFTW ARE . UN EN F O Q U E P R A C T I C O
www.FreeLibros.org
3 En [O R F 9 6 ] y [Y O U 9 8 ] se presenta un estudio excelente sobre los 4 En este contexto, un applet se puede considerar un componente
estándares de « o b je to s d is t r ib u id o s » . simple.
480
CAPÍTULO 27 INGE NIE RIA DEL S O F T W A R E BA SA D A EN C O M P O N E N T E S
www.FreeLibros.org
5Para aprender más sobre estos temas, véase desde el Capítulo 13 6 En general las preparaciones indicadas para el diseño destinado a
hasta el 16, y desde el 20 al 22. la reutilización deberían de llevarse a cabo com o parte de la inge
niería del dom inio (Sección 27.3).
INGENIERÍA DEL SO FT W A RE. UN E N F O Q U E PRÁCTICO
dam entales que deb en considerarse com o base del d ise U na vez que se han estab lecid o los datos estándar,
ño para la reutilización: las interfaces y las plantillas de program a, el diseñador
D a to s estándar. Es preciso investigarel dom inio de la apli posee un m arco de referencia en el cual puede crear el
cación, y es preciso iden tificarlas estructuras de datos están diseño. L os com ponentes nuevos que se ajustan a este
dar globales (por ejem plo, las estructuras de archivos o toda m arco de referencia tendrán una m ay o r probabilidad de
una base de datos com pleta). E ntonces se pueden caracterizar ser posteriorm ente reutilizables.
todos los com ponentes de diseño para uso de estas estructuras
A l igual que el d iseño, la co n stru cc ió n de c o m p o
de datos estándar.
nentes reutilizables se basa en m étodos de la ingeniería
P rotocolos de interfaz estándar. D eberían establecerse tres
del softw are que y a se han descrito en otras partes de
niveles de protocolo de interfaz: la naturaleza de las interfaces
intram odulares, el diseño de interfaces técnicas externas (no
este libro. La construcción se puede efectuar em plean
hum anas) y la interfaz hom bre-m áquina. do lenguajes convencionales de program ación, de te r
P lantillas de program a. E l m odelo de estructura (Sección
ce ra g e n e ra c ió n , le n g u a je s de c u a rta g en e ra ció n y
27.3.3) puede servir com o plantilla para el diseño arquitectó generadores de código, técnicas de program ación visual
nico de un nuevo program a. o herram ientas m ás avanzadas.
C o nsid ere u n a g ran b ib lio te c a u n iv ersitaria. P ara su El co n cep to de un c o m p o n e n te de softw are es una
u tiliz a c ió n tie n e d isp o n ib le s d e c e n a s de m illa res de «descripción de lo que hace el com ponente» [W HI95].
lib ro s , p e rió d ic o s y o tra s f u e n te s de in fo rm a c ió n . L a in te rfaz con el c o m p o n e n te se describ e c o m p le ta
A h o ra b ie n , p a ra a cced er a e sto s recu rso s es p re c iso m en te y su sem án tica — representada d en tro del co n
d esa rro lla r alg ú n sistem a de clasificació n . P ara re c o texto de pre y postcondiciones — se identifica tam bién.
rre r e ste gran v o lu m e n de in fo rm a c ió n , los b ib lio te El c o n c e p to d eb e c o m u n ic a r la in ten ció n del com po
cario s h an d e fin id o u n e sq u e m a d e c la sific a ció n que nente.
in clu y e un c ó d ig o d e c la s ific a c ió n de la b ib lio te c a ,
p alab ras re serv ad as, n o m b res de au to r y o tras e n tr a
das de índice. T odas e lla s c a p a c ita n al u s u a rio para
en co n tra r el re c u rso n e c e sa rio de fo rm a rá p id a y sen C LA VE
cilla. Poro describir un componente reutilizable, se tendrá
que describir su concepto, contenido y contexto.
.f ia :
i mejor después de conocer oigo, El contenido de un com ponente describe la form a en
sáer dónde se encuentra. que se construye el concepto. E n esencia, el contenido
S». *1Minos es una inform ación que queda oculta a los ojos del usua
rio h a b itu a l y que so lam ente n ec esita co n o ce r quien
intentará m odificar ese com ponente.
C onsidere ahora un gran depósito de com ponentes.
El contexto sitúa el com ponente de softw are reutili
R esiden en él decenas de m illares de com ponentes de
zable en el seno de su dom inio de aplicabilidad, esto es,
softw are reutilizables. ¿C óm o puede h allar el in g enie
m ed ian te la e sp ec ificac ió n de c a ra cterística s co ncep
ro del softw are el com ponente que necesita? P ara re s
tuales, operacionales y de im plem entación, el contexto
ponder a esta p regunta, surge otra preg u n ta m ás. ¿Cóm o
capacita al ingeniero del softw are para h allar el com
se describen los com ponentes de softw are en térm inos
p o n en te adecuado para sa tisfa ce r los req u isito s de la
de no am biguos y fácilm ente clasificables? Se trata de
aplicación.
cuestiones difíciles y tod av ía no se ha desarrollado una
respuesta definitiva. E n esta sección, se exploran las ten
dencias actuales que capacitarán a los futuros in g enie
ros del so ftw a re p a ra n a v e g a r p o r las b ib lio tecas
Referencia Wfejfei
reutilizables.
Uno detallado guía de reutlllzaclón de componentes
se puede descargar de la dirección
27.5 .1. D e s c r ip c ió n d e c o m p o n e n t e s r e u t i l i z a b l e s webl .ssg.gunter.af.mil/
U n com ponente de softw are reutilizable se puede d es sep/SEPver40/Main.html#GD
www.FreeLibros.org
cribir de m uchas m aneras, pero la descripción ideal abar
ca lo que T racz [T R A 90] ha lla m a d o el M o d e lo 3 C P ara que resulte útil en un sentido práctico, el con
- c o n c e p t o , contenido y c o n t e x t o - . cepto, el contenido y el contexto tienen que traducirse
482
CAPÍTULO 27 IN G EN IER IA DEL S O F T W A R E B A S A D A EN C O M P O N E N T E S
en un e sq u e m a de e s p e c ific a c ió n c o n c re to . Se h a n e s c ri
to v a ria s d o c en as d e a rtíc u lo s y tra b a jo s ace rca d e los
esquem as d e c la s ific a c ió n p a ra c o m p o n e n te s d e s o ft
ware reutilizables (por ejem plo, [W H I95] contiene una
extensa b ib lio g r a fía ). L os m é to d o s p ro p u es to s se p u e
den d e s c o m p o n e r e n tres zo n a s fu n d a m e n ta le s : m é to
dos de las c ie n c ia s d e la d o c u m e n ta c ió n y d e Términos Términos 1
■ Palabra |
b ib lio te c o n o m ía , m é to d o s de in te lig e n c ia a rtific ia l y sis Clasificado 1 reservada 9 extraídos no extraídcsl
tem as d e h ip e rte x to . L a g ra n m a y o r ía d e lo s tra b a jo s del texto del texto I
re a liz a d o s h asta e l m o m e n to s u g ie re la u tiliz a c ió n de
m étodos p ro p io s de b ib lio te c o n o m ía p a ra la c la s ific a Descriptores | Con sintaxis
yEnumeraciónjl
ción de c o m p o n e n te s .
Encabezados i Sin sintaxis (
L a F ig u ra 27.2 p re s e n ta u n a ta x o n o m ía d e lo s m é to HFaceta
del tema |
vocabula
dos de in d e x a c ió n e n b ib lio te c o n o m ía . L o s
rios controlados de indexación lim itan los térm inos y Diccionario
P
sintaxis que se p u e d e n u t iliz a r p a ra c la s ific a r lo s o b je
tos (c o m p o n en tes ). L o s vocabularios de indexación no F IG U R A 27.2'. Una taxonom ía de métodos de indexación
controlados n o im p o n e n re s tric c io n e s sobre la n a tu ra le [FRA94],
za de la d e s c rip c ió n . L a g ra n m a y o ría d e los e sq u em as
de c la s ific a c ió n p a ra lo s c o m p o n e n te s d e s o ftw a re se Clasificación por facetas. Se analiza una cierta área del
dom inio y se identifica un conjunto de características descrip
encuentran d e n tro de las tres c a te g o ría s s ig u ie n te s :
tivas básicas. E stas características, que se denom inan facetas,
Clasificación enumerada. Los componentes se describen reciben entonces diferentesprioridades según su im portanciay
mediante la definición de una estructurajerárquica en la cual se relacionan con un com ponente. L a faceta puede describir la
se definen clases y diferentes niveles de subclases de compo función que lleva a cabo el com ponente, los datos que se m ani
nentes de software. Los componentes en sí se enumeran en el pulan, el contexto en que se aplican o cualquier otra caracterís
nivel más bajo de cualquierruta de lajerarquía enumerada. Por tica. El conjunto de facetas que describen los com ponentes se
ejemplo, una jerarquía enumerada para operaciones con v e n denom ina descriptor de facetas. G eneralm ente, la descripción
ta n a s podríaser por facetas se lim ita a un m áxim o de siete u ocho facetas.
o p e r a c io n e s v en ta n a
v is u a l iz a c ió n ¿Cuáles son las opciones
a b r ir
b a sa d o s en menú
v e n ta n a A b ie r ta
b a sa d o s en s i s t e m a s
v e n ta n a S is tema
• disponibles para clasificar
componentes?
www.FreeLibros.org
1 Solamente se indica un pequeño subconjunto de todas las opera
ciones posibles.
483
I NGE NIERÍA DEL S O F T W A R E . UN EN F O Q U E P R Á C T I C O
Un esquema de clasificación por facetas proporcionaal inge to s ) que p e rm ite a la a p lic a c ió n c lie n te re c u p e ra r
niero del dominio una mayor flexibilidad al especificar des lo s c o m p o n e n te s y s e rv ic io s d el s e rv id o r d e la
criptores complejos de los componentes [FRA94], Dado que
b iblioteca.
es posible añadir nuevos valores de facetas con facilidad, el
esquema de clasificación por facetas es más fácil de extender • unas herram ientas C A S E que prestan su apoyo a la
y de adaptar que el enfoque de enumeración. integración de com ponentes reutilizados en un nuevo
Clasificaciónde atributos y valores. Para todos los com d iseño o im plem entación.
ponentes de una cierta zona del dominio se define un conjun
to de atributos. A continuación, se asignan valores a estos C a d a u n a de e sta s fu n c io n e s in te ra ctú a co n una
atributos de forma muy parecida a una clasificación por face b iblioteca de reutilización o b ien se encuentra incorpo
tas. De hecho, la clasificación de atributos y valores es pareci rad a a e sta últim a.
da a la clasificaciónpor facetas con las excepcionessiguientes: L a b iblioteca de reutilización es un elem ento de un
(1) no hay límite para el número de atributos que se pueden repositorio C A S E m ás ex ten so (C apítulo 3 1) y pro p o r
utilizar; (2) no se asignan prioridades a los atributos;y (3) no
c io n a las p o sib ilid a d es a d e c u a d as p a ra el alm ac en a
se utiliza la función diccionario.
m iento de una am plia gam a de elem entos reutilizables
B asándose en un estudio em pírico de cada u n a de las (por ejem plo, especificación, diseño, casos de prueba,
técnicas anteriores de clasificación, Frakes y Pole [FRA94] guías para el usuario). L a b iblioteca abarca una base de
indican que no existe una técnica que sea claram ente «la datos y las herram ientas necesarias para consultar esa
mejor» y que «ningúnm étodo es m ás que m oderadam ente b ase de d ato s y re c u p e ra r de e lla com ponentes. Un
adecuado en lo tocante a efectividad de búsq u ed a.. e sq u e m a de c la sific a c ió n de c o m p o n e n te s (Sección
Parece entonces que es p reciso realizar un trabajo m ás 27.5.1) servirá com o base para consultas efectuadas a
extenso en el desarrollo de unos esquem as de clasifica la biblioteca.
ción efectivos p ara las bibliotecas de reutilización. L as consultas suelen caracterizarse m ediante el uso
del elem ento de contexto del M odelo 3C que se descri
2 7 .5 .2 . E l e n t o r n o d e r e u t i l i z a c i ó n b ía anteriorm ente. Si una consulta inicial d a lugar a una
L a reutilizació n de com ponentes de softw are debe de lista volum inosa de candidatos a com ponentes, enton
estar apoyada p o r un entorno que abarque los elem en ces se refin a la consulta para lim itar esa lista. A conti
tos siguientes: n u ació n , se ex trae n las in fo rm acio n es de concepto y
• una base de datos de com ponentes capaz de alm ace co n ten id o (d espués de h a b e r h a lla d o los candidatos a
com ponentes) para ayudar al desarrollador a que selec
nar com ponentesde softw are, así com o la inform ación
cione el com ponente adecuado.
de clasificación necesaria p ara recuperarlos.
U n a descripción detallada de la estructura de biblio
« un s is te m a d e g e s tió n d e b ib lio te c a s q u e p r o
tecas de reutilización y de las herram ientas que las ges
p o r c io n a a c c e s o a la b a s e d e d a to s .
tio n an v a m ás allá de los lím ites de este libro. El lector
• un s is te m a d e re c u p e ra c ió n d e c o m p o n e n te s de interesado debería consultar [H 0 0 9 1 ] y [LIN95] para
s o ftw a re (p o r e je m p lo , u n d is tr ib u id o r de o b je - m ás inform ación.
www.FreeLibros.org
A lo larg o de los Ú ltim os añ o s, e x iste n n o tab les e v i cación form al no se lleva a cabo de form a rutinaria, y
dencias proced en tes de casos p rácticos en la in dustria los defectos pueden aparecer y aparecen. Sin embargo,
(por ejem plo, [HEN95], [M CM 95] y [LIM 94]), las cu a con ca d a reutilización, los defectos se van hallando y
484
CAPÍTULO 27 I N GE NIE RÍ A DEL S OF TWARE B A S A D A EN C O M P O N E N T E S
C LA VE 2 7 .6 .2 . A n á l i s i s d e c o s t e e m p l e a n d o p u n t o s
www.FreeLibros.org
8 Existen m uchas circunstancias a te n u an te s (por ejem plo, área de
aplicación, complejidad del problema, estructura y tam año del equipo,
duración del proyecto, tecnología aplicada) que puede te n e r su
impacto sobre la productividad del equipo de un proyecto.
485
INGE NIE RÍ A DEL S O F TW A RE . UN E N F O Q U E P R Á C T I C O
utilizado en un cierto núm ero de aplicaciones adicio lización en un sistem a basado en com putadoras. Los
nales, y los costes m edios de adaptación, integración y beneficios asociados a la reutilización dentro de un sis
mantenim iento están disponibles. tem a S se pueden expresar com o el siguiente cociente
Rb ($)= I f 's in reutilización' ^ con le u tiliz a á á n ] / ^ s in reutilización ( 2 7 .1 )
■IB ¿Existe un cálculo rápido
W que permita estimar donde
el beneficio de la reutilización C • reutilización es coste de desarrollar S sin reutilización,
y sin
de componentes en términos
de coste? C reutilización es coste de d esa rro llará con reutilización
De lo que se deduce que R b(S) se puede expresar
Para estim ar el esfuerzo requerido para proporcionar com o un valor no dim ensional que se encuentra en el
la aplicación,X, es preciso efectuar el siguiente cálculo: intervalo
esfuerzo global = Enuevo + E¡gua, + Eada¡mián + E¡n(egración 0 < R h( S ) < \ (27.2)
RESUMEN
La ingeniería del software basada en componentes rrollo basado en componentes cualifica, adapta e inte
proporciona unos beneficios inherentes en lo tocante a gra estos componentes para su reutilización en un siste
calidad del software, productividad del desarrollador y m a nuevo. Además, el desarrollo basado en componentes
coste general del sistema. Sin embargo, es preciso ven diseña componentes nuevos que se basan en los requi
cer muchas dificultades antes de que el m odelo de pro sitos personalizados de un sistema nuevo.
ceso ISB C se utilice ampliamente en la industria. Las técnicas de análisis y diseño de componentes
Además de l o s com ponentes del software, un inge reutilizables se basan en los m ismos principios y con
niero del softw are puede adquirir toda una gam a de ceptos que forman parte de las buenas prácticas de inge
elem entos reutilizables. E ntre estos se cuentan las niería del softw are. Los com ponentes reutilizables
representaciones técnicas del software (por ejem plo, deberían de diseñarse en el seno de un entorno que esta
especificación, m odelos de arq u itectu ra, diseños y blezca unas estructuras de datos estándar, unos proto
códigos), docum entos, datos de prueba e incluso tare colos de interfaz y unas arquitecturas de program a para
as relacionadas con los procesos (por ejem plo, técni todos los dominios de aplicación.
cas de inspección). La ingeniería del software basada en componentes
El proceso ISB C acompaña a dos subprocesos con hace uso de un m odelo de intercam bio de datos; herra
currentes - in g e n ie r ía d e l dominio y desarrollo basado m ientas, alm acenam iento estructurado y un m odelo
en componentes— . El objetivo de la ingeniería del domi objeto subyacente para construir aplicaciones. El mode
www.FreeLibros.org
nio es identificar, construir, catalogar y disem inar un lo de objetos suele ajustarse a uno o m ás estándares de
conjunto de componentes de software en un determ i com ponentes (por ejem plo, OM G/CORBA) que defi
nado dom inio de aplicación. A continuación, el desa nen la form a en que una aplicación puede acceder a los
486
CAPÍTULO 27 I NGENI ERÍ A DEL S OF TWARE BA S A D A EN C O M P O N E N T E S
objetos reutilizables. Los esquem as de clasificación La econom ía de reutilización del softw are se abar
capacitan al desarrollador para hallar y recuperar com ca con una Unica pregunta: ¿Es ren tab le co n stru ir
ponentes reutilizables y se ajustan a un modelo que iden m enos y reu tilizar m ás? En general, la respuesta es
tifica conceptos, contenidos y contextos. La clasificación «sí», pero un planificador de proyectos de softw are
enumerada, la clasificación de facetas, y la clasifica debe considerar los costes no triviales asociados a la
ción de valores de atributos son representativas de adaptación e integración de los com ponentes reu tili
muchos esquem as de clasificación de com ponentes. zables.
[BAS94] B as ili, V.R ., L .C . B ria n d y W .M . Thom as, «D om ain [L IM 9 4 ] L im , W .C ., «Effects o f Reuse on Q u ality, Producti-
Analysis fo r the Reuse o f Softw are D evelopm ent E xp e- vity, and Economics», I E E E S o f t w a r e , Septiem brede 1994,
riences», P r o c . O f t h e 1 9 !l> A n n u a l S o f t w a r e E n g i n e e r i n g pp. 2 3-3 0 .
W o r k s h o p , N A S A /G S F C , Greenbelt, M D , D ic iem b re de [L IA 9 3 ] L ia o , H . , y F . W ang, « S o ftw are R euse Based on a
1994. Large O b ject-O riented Library», A C A / S o f t w a r e E n g i n e e
[B EL95] B e llin zo n a ,R ., M .G . G u g in iy B. P em ici, «Reusing r i n g N o t e s , vol. 18,n.° 1, Enero de 1993, pp. 74-8 0 .
Specifications in O O A pplications», I E E E S o f t w a r e , M a r [L IN 9 5 ] L in th ic u m , D .S ., «Com ponent D evelopm ent (asp e-
zo de 1 9 9 5 ,pp. 65-75. cial featu re)», A p p l i c a t i o n D e v e l o p m e n t T r e n d s , Junio de
[B IN 93] B in der, R ., «D esign fo r Reuse is fo r R e a l» , A m e r i 1995, pp. 57-78.
c a n P r o g r c n n m e r , vol. 6, n.° 8, Agosto de 1 9 9 3 ,p p . 3 3- [M C M 9 5 ] M c M ah o n , P.E., «Pattem -Based Architecture: B rid-
37. ging Softw are R euse and Cost M anag em ent», C r o s s t a l k ,
[B R 0 9 6 ] B ro w n , A .W ., y K .C . W a lln a u , « E n g in ee rin g o f vol. 8, n.° 3, M a rz o de 1995, pp. 10-16.
C om ponent B ased System s», C o m p o n e n t - B a s e d S o f t [O R F 9 6 ] O rfa li, R ., D . Flarkey y J. Edw ards, T h e E s s e n t i a l
w a r e E n g i n e e r i n g , T E F E C o m p u ter Society Press, 1996, D i s t r i b u t e d O b j e c t s S u r v i v a l G u i d e , W ile y , 1996.
pp. 7-15.
[P R I8 7 ] P rie to -D ía z , R ., « D o m a in A n a ly s is fo r R eu sab i-
[C H R 95] Christensen, S.R ., «So ftw are Reuse Iniciatives at lity » , P r o c . C O M P S A C '8 7 , T o k y o , O ctu b re de 1 987,
Lockheed», C r o s s t a l k , v ol. 8, n.° 5 , M a y o de 1 99 5,pp. 26- pp. 2 3 -2 9 .
31.
[P R I9 3 ] P rieto -D íaz, R ., «Issues andE xp eriencesin Softw are
[C LE95] Clem ens, P C ., «From Subroutines to Subsystems: Reuse», A m e r i c a n P r o g r a m m e r , vol. 6, n.° 8, Agosto de
Com ponent-Based S o ftw are D e v e lo p m e n t» , A m e r i c a n 1 9 9 3 ,pp. 10-18.
P r o g r a m m e r , y ol. 8, n.° 1 1 ,N o vie m b re de 1995.
[P O L 9 4 ] P ollak, W ., y M . Rissm an, «Structural M o d e ls and
[D E V 95 ] D evanbu, P. et al., «A n a lytic al and E m p irica l E va- Pattem ed A rchitectures», C o m p u t e r , vol. 2 7 ,n .° 8, A g o s
lu a tio n o f S o ftw are R euse M e tric s » , T e c h n i c a l R e p o r t , to de 1 99 4,p p . 67-68.
Com puter Science D epartm ent, U niversity o f M a ryla n d , [S T A 9 4] Staringer, W ., «Constructing A pplications fro m Reu-
Agosto de 1995. s a b l e C o m p o n z n X s » , I E E E S o f t w a r e , S ep tiem brede 1994,
[FR A 94] Frakes, W .B ., y T.P. Pole, « A n E m p irica l Study o f pp. 6 1-6 8 .
Representation M ethods fo rR e u s a b le Softw are C o m p o - [T R A 9 0 ] Tracz, W ., «W h e re Does Reuse Start?», P r o c . R e a -
nents » , I E E E T r a n s . S o f t w a r e E n g i n e e r i n g , vol. 2 0, n.° 8, l i t i e s c f R e u s e W o r k s h o p , Syracuse U niversity C A S E C e n -
Agosto de 1 9 9 4 ,pp. 6 17 -6 30 . ter, E nero de 1990.
[H A R 98] Elarm on, P., «N avig atin g the D istribu ted C om po- [T R A 9 5 ] Tracz, W ., « Third International C onference on S oft
nents Landscape», C u t t e r I T J o u r n a l , vol. l l , n . ° 2 , ware Reuse-Sum m ary», A C A / S o f t w a r e E n g i n e e r i n g N o t . e s ,
D iciem bre de 1 9 9 8 ,pp. 4-11. vol. 2 0, n.° 2, A b ril de 1995, pp. 2 1-2 2 .
[H E N 9 5 ] Elenry, E ., y B . F a lle r, « L a rg e S cale In d u s tria l [W H I9 5 ] W h ittle , B ., «M odels and Languages fo r C o m p o
Reuse to Reduce Cost and C ycle T im e » , I E E E S o f t w a r e , nent D escription and Reuse», A C M S o f t w a r e E n g i n e e r i n g
Septiembre de 1995, pp. 4 7-5 3 . N o t e s , vol. 2 0, n.° 2, A b ril de 1995,pp. 76-89.
www.FreeLibros.org 487
INGENIERIA DEL S O F TW A R E . UN EN F O Q U E P R A C T I C O
www.FreeLibros.org
M ic ro s o ft Press, 1999.
estudiosde costes asociados con la IS B C y con la reutilización.
Poulin (Measuring Software Reuse: Principies, Practices, and M uchas com pañías aplican una com binación de estándares
Economic Models, Addison-W esley, 1996) sugiere un número de componentes. Los libros de Geraghty et al. (COM-CORBA
488
CAPÍTULO 27 INGENIERIA DEL S OF T WARE B A S A D A EN C O M P O N E N T E S
Interoperubility, Prentice-Hall, 1999), Pritchard (COM and Valesky, T . C Enterprise JavaBeans: Developing Com-
CORBA Side by Side: Architectures, Strutegies, und Imple - ponent-BasedDistributedApplicutions, Addison-Wesley, 1999.
mentaiions, Addsion-Wesley, 1999)y Rosen etal. (Integrating Vogel,A., y M. Rangarao, Programming with Enterprise
CORBA und COMApplicutions, Wiley, 1999) tienen en consi JavaBeans, JTS und OTS, Wiley, 1999.
deración los temas asociados con la utilización de CORBA y En Intemet está disponible una gran variedad de fuentes
COM como base para el desarrollobasado en componentes. de información sobre la ingeniería del software basada en
JavaBeans componentes. Una lista actualizada de referencias en la red
Asbury, S., y S.R. Weiner ,Developing Javu Enterprise que son relevantes para la ISBC se puede encontrar en la direc
Applications, Wiley, 1999. ción http://www.pressman5.com
www.FreeLibros.org 489
www.FreeLibros.org
c a p it u l o |NGEN|ER ÍA De l SOFTWARE
O O DEL COMERCIO ELECTRÓNICO
¿ O CLIENTE / SERVIDOR
fí n a le s d e s ig lo , e l d e s a r r o llo d e u n a n u e v a g e n e r a c ió n d e m á q u in a s h e r r a m ie n ta s c a p a
A c e s d e s o p o r t a r fu e r te s t o le r a n c ia s d ie r o n p o d e r a lo s in g e n ie r o s q u e d is e ñ a b a n u n p r o
c e s o n u e v o d e f a b r ic a c ió n lla m a d o p r o d u c c ió n e n m a s a . A n t e s d e la lle g a d a d e e s ta
t e c n o lo g í a a v a n z a d a d e m á q u in a s h e r r a m ie n ta s , n o s e p o d í a n s o p o r t a r fu e r te s t o le r a n c ia s . P e r o
c o n e s ta t e c n o lo g í a s e p o d í a n c o n s t r u ir p ie z a s in t e r c a m b ia b le s y f á c ilm e n t e e n s a m b la b le s —
la p ie d r a a n g u la r d e la p r o d u c c ió n e n m a s a — .
C u a n d o s e v a a d e s a r r o lla r u n s is t e m a b a s a d o e n c o m p u t a d o r a , u n in g e n ie r o d e s o f t w a r e s e
v e r e s t r i n g i d o p o r la s l i m i t a c i o n e s d e la s t e c n o l o g í a s e x i s t e n t e s y p o t e n c i a d o c u a n d o l a s t e c
n o l o g í a s n u e v a s p r o p o r c i o n a n c a p a c i d a d e s q u e n o e s t a b a n d i s p o n i b l e s p a r a la s g e n e r a c i o n e s
a n t e r i o r e s d e i n g e n i e r o s . L a e v o l u c i ó n d e la s a r q u i t e c t u r a s d i s t r i b u i d a s d e c o m p u t a d o r a h a c a p a
c it a d o a lo s in g e n ie r o s d e s is t e m a s y d e l s o f t w a r e p a r a d e s a r r o lla r n u e v o s e n f o q u e s s o b r e c ó m o
se e s tr u c tu r a e l tr a b a jo y c ó m o se p r o c e s a la in fo r m a c ió n d e n tr o d e u n a e m p re s a .
L a s n u e v a s e s t r u c t u r a s d e la s o r g a n i z a c i o n e s y l o s n u e v o s e n f o q u e s d e p r o c e s o d e i n f o r m a c i ó n
( p o r e j e m p l o : t e c n o l o g í a s i n t r a n e t e I n t e r n e t , s i s t e m a s d e a p o y o a la s d e c i s i o n e s , s o f t w a r e d e g r u
p o , e i m á g e n e s ) r e p r e s e n t a n u n a s a l i d a r a d i c a l d e la s p r i m e r a s t e c n o l o g í a s b a s a d a s e n m i n i c o m
p u ta d o r a s o e n m a in fr a m e s . L a s n u e v a s a r q u it e c t u r a s d e c o m p u t a d o r a h a n p r o p o r c io n a d o la te c n o lo g í a
q u e h a h e c h o p o s i b l e q u e la s e m p r e s a s v u e l v a n a d i s e ñ a r s u s p r o c e s o s d e n e g o c i o ( C a p í t u l o 3 0 ) .
E n e s te c a p í t u lo , e x a m in a r e m o s u n a a r q u it e c t u r a d o m in a n te p a r a e l p r o c e s o d e in f o r m a c ió n
— lo s s is t e m a s c lie n t e ! s e m id o r ( C / S ) d e n t r o d e l c o n t e x t o d e lo s s is t e m a s d e c o m e r c io e l e c t r ó
n ic o — . L o s s is t e m a s c lie n t e / s e r v id o r h a n e v o l u c io n a d o j u n t o c o n lo s a v a n c e s d e la i n f o r m á t i
c a p e r s o n a l , e n l a i n g e n i e r í a d e l s o f t w a r e b a s a d a e n c o m p o n e n t e s , c o n la s n u e v a s t e c n o l o g í a s
d e a lm a c e n a m ie n to , c o m u n ic a c ió n m e jo r a d a a tr a v é s d e r e d e s , y t e c n o lo g í a d e b a s e s d e d a to s
m e j o r a d a s . E l o b j e t i v o d e e s t e c a p í t u l o ' e s p r e s e n t a r u n a v i s i ó n g l o b a l y b r e v e d e l o s s is t e m a s
c lie n t e / s e r v id o r c o n u n é n fa s is e s p e c ia l e n lo s te m a s d e la in g e n ie r í a d e l s o f t w a r e q u e d e b e n d e
a f r o n t a r s e c u a n d o s e a n a liz a n , d is e ñ a n , p r u e b a n y s e d a s o p o r t e a d ic h o s s is t e m a s C /S .
VISTAZO RAPIDO
¿Qué as? Las arquitecturas cliente/servi dominante. Puesto que los avances tec- lidad del cliente y del servidordentro del
dor (CVS) dominan el horizontede los sis nológicos(por ej emplo,desarrollo basa contexto de losestándares de integración
temas basados en computadora. Todo do en componentes,agentesde solicitud de componentes y d e 1a arquitectura C/S.
existe: desde redes de cajeros automá de objetos, Java) cambian la forma de ¿Cuál es el p ro d u c to o b te n id o ? Un
ticos hasta Internet. y esto es debido a construir los sistemas C/S, en su cons sistema C/S de alta calidad es el pro
que el software que reside en una com trucción se debe deaplicar un proceso ducto de la ingeniería del software C/S,
putadora - e lcliente— solicita servi de ingeniería del software sólido. También se producen otros productos
cios y/o datosde otra computadora -el ¿Cuáles son los pasos? Los pasos que de trabajo de software (tratados ante
servidor—. La ingeniería del software se siguen en la ingeniería de los siste riormente en este mismo libro).
cliente/servidor combina principios con mas C/S son similares a los que seapli- ¿Cómo puedo e s ta r segure d e que lo
vencionales, conceptos y métodos tra can durante la ingeniería del software h e h e c h o c o rre c ta m e n te ? Utili
tados anteriormente en este libro, con basada en componentes y OO. El mode zando las mismas prácticas SQA que se
elementos de la ingeniería del softwa lo de proceso es evolutivo, comenzan aplican en todos los procesos de inge
re basada en componentes y orientada do por la obtención de los requisitos. niería del software—las revisiones téc
a objetos para crear sistemas C/S, La funcionalidad se asigna a los subsis nicas formales evalúan los modelos de
¿Quién lo h a c e ? Los ingenieros de soft temas decomponentesque se van aasig- análisis y diseño-;las revisiones espe
ware llevan a cabo el análisis, diseño, n a despuésobienalclienteoal servidor cializadas consideran los temas aso
implementación y prueba de estos sis de la arquitectura C/S. El diseño se cen ciados a la integración decomponentes
temas. tra en l a integración de los componentes y al software intermedio (middlewaie),
¿P o rq u é as im portante? El impacto de existentes y en la creación de compo y las pruebas se aplican para desvelar
los sistemas C/S en los negocios, el nentes nuevos. la implementacióny las errores al nivel de componentes, sub-
comercio. el gobierno y la ciencia es pruebas luchan por ejercitarla funciona sistema,cliente y servidor.
www.FreeLibros.org
1Parte de este capítulo se ha adaptado a partir del material de cursos desarrollado por John Porter para el Client/Server Curri
culum ofrecido en la Facultad de Ingeniería BE1 de la Universidad de Fairfield. Se ha obtenido permiso para su utilización.
49 1
INGENIERÍA DEL S O F T W A R E . UN E N F O Q U E P R Á C T I C O
ÍZ
Los últimos diez años han sido testigos de avances m asi datos que contienen las com putadoras que com ponen el
vos en las áreas de computación. La prim era es que el sistema. En lugar de tener que reproducir los datos en
hardware se ha ido abaratando cada vez más, y a su vez todas las com putadoras se pueden distribuir por un
se ha ido haciendo m ás potente: las com putadoras de pequeño número de computadoras. Un sistema distribuido
sobremesa hoy en día tienen la potencia que poseían los tam bién proporciona acceso a servicios especializados
mainframes hace algunos años. La segunda área es la de que quizás no se requieran muy frecuentemente,y que se
las comunicaciones; avances tales como los sistemas de puedan centralizaren una com putadora del sistema.
comunicación vía satélite y los sistemas de teléfonos digi
tales significa que ahora es posible conectar económ ica C ^ C /fa ;
mente y eficientemente con otros sistemas informáticos f ! modelo de computación C/S representa
separados físicamente. Esto ha llevado al conceptode un 4 *i ejempb específico de proceso cooperativo
sistema de com putación distribuido. Dicho sistema con «fe ' nde la relación entre clientes
siste en un núm ero de com putadoras que están conecta e los componentes
das y que llevan a cabo diferentes funciones. Existen líWÓ M hardware como del software.
muchas razones por las que tales sistemas se han hecho ÍIk I w sm
populares:
Tolerancia a fallos. Un sistema distribuido se puede
Rendimiento. El rendim iento de m uchos tipos de diseñar de forma que tolere los fallos tanto del hardware
sistemas distribuidos se puede increm entar añadiendo como del software. Por ejemplo, se pueden utilizar varias
simplemente m ás computadoras. Norm alm ente esta es com putadoras que lleven a cabo la m ism a tarea en un
una opción m ás sencilla y m ás barata que m ejorar un sistem a distribuido. Si una de las com putadoras fu n
procesador en un mainframe. Los sistem as típicos en cionaba m al, entonces una de sus herm anas puede
donde se puede lograr este increm entoen el rendimiento hacerse cargo de su trabajo. Una base de datos de una
son aquellos en donde las com putadoras distribuidas com putadora se puede reproducir en otras com putado
llevan a cabo m ucho proceso, y en donde la relación tra ras de forma que si la com putadora original tiene un mal
bajo de comunicaciones y proceso es bajo. funcionam iento, los usuarios que solicitan la base de
Compartición de recursos. Un sistema distribuido datos son capaces de acceder a las bases de datos repro
permite a sus usuarios acceder a grandes cantidades de ducidas.
28.2 s i s t e m a s nmmmmíms____
282.1. C lientes y servidores poca potencia para comunicarse con el central. Los dos
El propósito de esta sección es introducir tanto la idea problem as m ás serios son la dificultad de m ejorar y de
de cliente com o la de servidor. Estos son los bloques copiar con interfaces IGU modernas. A m edida que las
básicos de construcción de un sistema distribuido y, de aplicaciones van siendo más grandes, la carga de una main
esta m anera, cuando se describa el diseño y el desarro frame común llega al punto en que también necesita mejo
llo de dichos sistemas, será necesario tener conocimiento rar y normalmente con hardware de procesamientonuevo,
de sus funciones y de su capacidad. memoria o alm acenam ientode archivos. Mejorar dichas
Un servidor es una com putadora que lleva a cabo com putadoras es más fácil que antes; sin embargo, pue
un servicio que norm alm ente requiere m ucha poten de resultar un proceso moderadamente difícil y caro -es
cia de procesam iento. Un cliente es una com putadora ciertamente más caroy más difícil que añadirun servidor
que solicita los servicios que proporciona uno o m ás nuevo basado en PC a un conjunto de computadorascon-
servidores y que tam bién lleva a cabo algún tipo de figuradas como clientes y servidores— . El segundo pro
procesam iento por sí mismo. Esta form a de organiza blem a es hacerse con interfaces IGU modernas. Para
ción de com putadoras es totalmente diferente a los dos ordenar a una computadora que visualice incluso una pan
modelos que dom inaron los años ochenta y principios talla relativamente prim itiva relacionada, digamos, con
de los noventa. unos cuantos botones y una barra de desplazamiento de
El primer modelo se conoce como procesamiento cen la misma, conlleva tanto tráfico en las líneas de comuni
tral (host). En este modelo de organización todo el pro cación que un sistema podría colapsarse fácilmente con
cesamiento que se necesitaba para una organización se los datos que se utilizan para configurar y m anterer una
www.FreeLibros.org
llevaba a cabo por una com putadora grande — normal serie de interfaces basadas en IGUs.
mente una m ainfram e— m ientras que los usuarios El segundo modelo de com putación es en donde hay
emplean sencillas terminales inform áticaso PCs de muy un grupo de com putadoras actuando com o servidores,
492
CAPÍTULO 28 I NGENI ERÍ A DEL S OF TWARE DEL C O M E R C I O E L E C T R Ó N I C O C L I E NT E/ S ERVI DOR
pero poseen poco procesam iento que llevar a cabo. N or bre de cuenta, nom bre del titular de la cuenta, saldo
malmente estos term inales poco inteligentes actuarían actual de la cuenta y límite de descubierto de la cuenta.
como servidores de archivos o servidores de impresión U na de las característicasde las bases de datos que inva
para un número de PCs potentes o minicomputadoras lidan la utilización de los servidores de archivos e s que
que llevarían a cabo el procesam iento y estarían conec los archivos que se crean son enorm es y ralentizan el
tados a una red de área local. Las com putadoras clien tráfico si se transfirieran en bloque al cliente. A fortu
te solicitarían servicios a gran escala, como es obtener nadamente, para la gran m ayoría de aplicaciones no se
un archivo, llevando a cabo entonces el procesam iento requiere dicha transferencia; por ejem plo en una apli
de dicho archivo. De nuevo, esto conduce a problemas cación bancaria las consultas típicas que se realizarían
con el tráfico en donde, por ejemplo, la transm isión de en una base de datos bancaria serían las siguientes:
archivos grandes a un núm ero de clientes que requie . Encontrar las cuentas de los clientes que tienen un
ren simultáneamente estos archivos hace que el tiempo descubierto m ayor de 2.000 pts.
de respuesta de la red vaya tan lento com o una tortuga.
. E ncontrar el saldo de todas las cuentas del titular
¿Qué es la informática John Smith.
diente/servidor? • Encontrar todas las órdenes regulares del cliente Jean
La computacióncliente/servidor es un intento de equi Smith.
librar el proceso de una red hasta que se com parta la • Encontrar el total de las transacciones que se reali
potencia de procesam iento entre com putadoras que lle zaron ayer en la sucursal de M anchester Picadilly.
van a cabo servicios especializados tales como acceder Actualm ente una base de datos bancaria típica ten
a bases de datos (servidores),y aquellos que llevan a cabo drá m illones de registros, sin em bargo, las consultas
tareas tales como la visualización IGU que es más ade anteriores conllevarían transferir datos a un cliente que
cuado para el punto final dentro de la red. Por ejemplo, sería solamente una fracción muy pequeña del tamaño.
permite que las com putadoras se ajusten a tareas espe En un entorno de bases de datos cliente/servidor los
cializadas tales como el procesam ientode bases de datos clientes envían las consultas a la base de datos, n or
en donde se utilizan hardware y software de propósito m alm ente utilizando alguna IGU. Estas consultas se
especial para proporcionar un procesam iento rápido de envían al servidor en un lenguaje llam ado SQL (Len
la base de datos com parado con el hardw are que se guaje de Consultas Estructurado). El servidor de bases
encuentra en las mainfTames que tienen que enfrentarse de datos lee el código SQL, lo interpreta y, a continua
con una gran gam a de aplicaciones. ción, lo visualiza en algún objeto HCI tal como una caja
de texto. El punto clave aquí es que el servidor de bases
de datos lleva a cabo todo el procesam iento, donde el
28.2.2. C a te g o r ía s d e s e r v id o r e s
cliente lleva a cabo los procesos de extraer una consul
Y a se ha desarrollado una gran variedad de servidores. ta de algún objeto de entrada, tal como un campo de tex
La siguiente lista ampliada se ha extraído de [ORF99]: to, enviar la consulta y visualizar la respuesta del
Servidores de archivos. Un servidor de archivos pro servidor de la base de datos en algún objeto de salida,
porciona archivos para clientes. Estos servidores se utili tal com o un cuadro de desplazamiento.
zan todavía en algunas aplicaciones donde los clientes S erv id o re s de so ftw a re de g ru p o . Softw are de
requieren un procesamiento com plicado fuera del rango grupo es el térm ino que se utiliza para describir el soft
normal de procesamientoque se puede encontrar en bases ware que organiza el trabajo de un grupo de trabajado
de datos comerciales. Por ejemplo, una aplicación que res. Un sistem a de softw are de grupo norm alm ente
requiera el almacenamiento y acceso a dibujos técnicos, ofrece las siguientes funciones:
digamos que para una empresa de fabricación, utilizaría
u n servidor de archivos para almacenar y proporcionar
• Gestionar la agenda de los individuos de un equipo
los dibujos a los clientes. Tales clientes, por ejemplo, serían de trabajo.
utilizados por ingenieros quienes llevarían a cabo opera • G estionar las reuniones para un equipo, por ejem
ciones con dibujos, operaciones que serían demasiado plo, asegurar que todos los m iem bros de un equipo
caras de soportar, utilizando una com putadora central que tienen que asistir a una reunión estén libres
potente. Si los archivos solicitados no fueran demasiado cuando se vaya a celebrar.
grandes y no estuvieran compartidos por un número tan • Gestionar el flujo de trabajo, donde las tareas se dis
grande de usuarios, un servidor de archivos sería una forma tribuyen a los m iem bros del equipo y el sistema de
excelente de almacenar y procesar archivos. software de grupo proporciona inform ación sobre la
S erv id o res de bases de d ato s. Los servidores de finalización de la tarea y envía un recordatorio al per
bases de datos son com putadoras que almacenan gran sonal que lleva a cabo las tareas.
www.FreeLibros.org
des colecciones de datos estructurados. Por ejemplo, un • Gestionar el correo electrónico, por ejemplo, organi
banco utilizaría un servidor de bases de datos para alm a zar el envío de un correo específico a los miem bros
cenar registros de clientes que contienen datos del nom de un equipo una vez term inada una tarea específica.
493
IN GE NI E RÍ A DEL SOF TW ARE . UN E N F O Q U E P R Á C T I C O
Un servidor de software de grupo guarda los datos inform ar a las com putadoras cliente que ya ha finali
que dan soporte a estas tareas, por ejemplo, almacena zado una petición de im presión en particular.
las listas de correos electrónicos y permite que los usua Servidores de aplicaciones. Un servidor de aplica
rios del sistem a de software de grupo se comuniquen ciones se dedica a una aplicación única. Tales servidores
con él, notificándoles, por ejemplo, que se terminado suelen escribirse utilizando un lenguaje tal como Java o
una tarea o proporcionándoles una fecha de reunión en C++. Un ejemplo típico del servidor que se utiliza en el
la que ciertos empleados puedan acudir. dibujo de un fabricante de aviones que gestionaba las ver
siones diferentes de dibujos producidos por el personal
| | | | ¿Qué es un servidor Web? técnico iría dirigido a algún proceso de fabricación.
Hf
28.2.3. Software intermedio (middleware)
Servidores Web. Los documentos Web se alm ace Hasta el m om ento probablem ente ya tenga la impresión
nan com o páginas en una com putadora conocida como de que la com unicación entre cliente y servidor es direc
servidor Web. Cuando se utiliza un navegador (brow- ta. Desgraciadamente, esto no es verdad: normalmente
ser) para ver las páginas Web normalmente pincha sobre existe por lo m enos una capa de software entre ellos.
<i enlace en un docum ento Web existente. Esto dará Esta capa se llam a software interm edio (middleware).
como resultado un mensaje que se enviará al servidor Como ejemplo de software interm edio considerem os la
Web que contiene la página. Este servidor responderá Figura 28.1. É sta m uestra la com unicación entre un
entonces enviando una página a su computadora, donde cliente ejecutando un navegador com o Internet Explo
el navegador pueda visualizarlo. De esta m anera los ser rer y un servidor Web.
vidores Web actúan com o una form a de servidor de
archivos, administrando archivos relativamente peque
ños a usuarios, quienes entonces utilizan un navegador El software
intermedio
para exam inar estas páginas. Para comunicarse con un determina
navegador Web, un cliente que utiliza un navegador está El navegador dónde está
solicita la página
haciendo uso a su vez de un protocolo conocido com o una página Web y la solicita
HTTP. al servidor
Servidores de correo. Un servidor de correo ges
Navegador
tiona el envío y recepción de correo de un grupo de usua
rios. Para este servicio norm alm ente se utiliza un PC de
rango medio. Existen varios protocolos para el correo
La página Web La página
electrónico. Un servidor de correo estará especializado es devuelta es enviada
en utilizar solo uno de ellos. al navegador al software
intermedio
Servidores de objetos. Uno de los desarrollos más por el servidc
excitantes en la inform ática distribuida durante los últi
mos cinco años ha sido el avance realizado, tanto por FIGURA 28.1. Software intermedio y servidor Web.
parte de los desarrolladores, como por parte de los inves
tigadores, para proporcionar objetos distribuidos. Estos A quí el software interm edio que se encuentra entre
son objetos que se pueden alm acenar en una com puta el servidor Web y el cliente que ejecuta el navegador
dora, norm alm ente un servidor, con clientes capaces de W eb intercepta las peticiones que proceden del nave
activar la funcionalidad del objeto enviando m ensajes gador. S i se hace una petición para una página Web
al objeto, los cuales se corresponden con métodos defi entonces determ ina la localización del docum ento
nidos por la clase de objeto. Esta tecnología liberará Web y envía una petición para esa página. El servidor
finalmente a los program adores de la program ación de responde a la petición y devuelve la página al software
bajo nivel basada en protocolos requerida para acceder intermedio, quien la dirige al navegador que la visuali
a otras com putadoras de una red. En efecto, esto per zará en la pantalla del m onitor que utiliza el cliente.
mite que el program ador trate a los objetos a 'distancia Existen dos categorías de software intermedio: el soft
como si estuvieran en su computadora local. Un servi w are interm edio general y el software interm edio de
dor que contiene objetos que pueden accederse a dis servicios. El prim ero es el que está asociado a los ser
tancia se conoce com o servidor de objetos. vicios generales que requieren todos los clientes y ser
vidores. El software típico que se utiliza com o tal es:
Servidores de impresión. L o s servidores de im pre
sión dan servicio a las solicitudes de un cliente remoto. • El software para llevar a cabo comunicaciones utili
Estos servidorestienden abasarse enPC s bastantebara- zando el protocolo TCP/IP y otros protocolos de red.
www.FreeLibros.org
tos, y llevan a cabo las funciones limitadas de poner en . El software del sistema operativo que, por ejemplo,
cola de espera las peticiones de impresión, ordenar a la mantiene un alm acenam iento distribuido de archi
im presora que lleve a cabo el proceso de im presión e vos. Este es una colección de archivos que se espar-
494
CAPÍTULO 28 I NGENI ERÍ A DEL S OF TWARE DEL C O M E R C I O E L E C T R Ó N I C O CLI E NT E/ S ERVI DOR
cen por un sistema distribuido. El propósito de esta • Un softw are interm edio asociado a productos de
parte del sistema operativo es asegurar que los usua seguridad específicos. Un buen ejem plo es el soft
rios pueden acceder a estos archivos, de forma que ware interm edio asociado a lo que se conoce com o
no necesiten conocer la localización de los archivos. conexiones (sockets) seguras. Estas son conexiones
que se pueden utilizar para enviar datos seguros en
una red de tal form a que hace imposible que intru
sos escuchen a escondidas los datos. Este tecnología
VE se describe en la Sección 28.8.
B software intermedio es el centro de un sistema
diente/servidor.
28.2.4. U n e je m p lo d e s o f tw a r e in te r m e d io
El software de autentificación, el cual com prueba El software intermedio orientado a mensajes es el soft
que un usuario que desee utilizar un sistema distri ware intermedio que administra el flujo de mensajes hacia
buido pueda en efecto hacerlo. y desde un cliente. Esta sección estudia detalladamente
El software interm edioorientado a mensajes que ges este software con el fin de proporcionar un ejemplo de
tiona el envío de mensajes desde clientes'a servido un tipo específico de software intermedio. Para referirse
res y viceversa. al software interm edio orientado a mensajes a m enudo
se utiliza la sigla MOM. Es el que gestiona de forma efi
Clientes caz las colas que contienen mensajes que proceden y que
Clientes
instalaciones se envían desde servidores. La Figura 28.2 m uestra un
Cola de de servidor número de configuraciones. La Figura 28.2 (a) m uestra
Cola de
entrada Servidor entrada un número de clientes que acceden a dos colas, una cola
dh de entrada a la que envían los mensajes y una cola de sali
da desde la que tom an los mensajes y un único servidor
que lee y escribe los mensajes. Un mensaje de entrada
d
típico podría ser el que ordena al servidor que encuentre
Cola de
salida algunos datos en una base de datos y un mensaje de sali
da podría ser los datos que se han extraído de la base de
datos. La Figura 28.2 (b) m uestra múltiples clientes y un
(b)
número de instanciaciones del programa servidor que tra
FIG U R A 2 8 .2 . Configuraciones Mom . bajan concurrentemente en las mismas colas.
Hay que establecer una serie de puntualizaciones a
El software interm edio de servicios es el software cerca de un software M OM :
asociado a un servicio en particular. Entre los ejemplos • No se necesita establecer una conexión especializada
típicos de este tipo de software se incluyen: m ientras que el cliente y el servidor interactúan.
• Un software que permite a bases de datos diferentes . El m odelo de interacción entre clientes y servidores
conectarse a una red clienteiservidor.Probablemente es, en efecto, muy simple: los clientes y servidores
el m ejor ejem plo de este tipo de softw are sea la interactúan m ediante colas. Todo lo que necesita
O DBC (C onectividad abierta de bases de datos) hacer el program ador del cliente y del servidor es
(Open Database Connectivity)) producida por M icro enviar un mensaje a la cola. El software M OM a nivel
soft. Esta permite que existan felizmente en una red de program ador es muy simple.
la vasta m ayoría de sistemas de gestión de bases de . U tilizando el softw are M OM la com unicación es
datos. asíncrona, hasta el punto en que la m itad de la pareja
• Un software específico de objetos distribuidos tal cliente/servidor puede que no esté com unicándose
como el que está asociado a CORBA. CORBA es con la otra parte. Por ejem plo, el cliente puede que
una tecnología de objetos distribuida que permite a no esté ejecutándose: puede detenerse para su m an
objetos escritos en una gran variedad de lenguajes tenim iento y que el servidor siga m andando m ensa
que coexistan felizmente en una red de tal form a que je s a colas MOM. Puede que el cliente haya cerrado
cualquier objeto pueda enviar mensajes a otro objeto. con algunos mensajes a la espera de que l o s procese
El software interm edio de CORBA tiene que ver con el servidor. El servidor puede colocar estos m ensa
funciones tales como configurar objetos distribuidos, je s en la cola de m anera que la próxim a vez que el
com unicación y seguridad entre objetos. cliente se conecte pueda leer los mensajes. Este esce
• Un software interm edio de Web asociado al proto nario es el ideal para la inform ática móvil.
colo HTTP.
www.FreeLibros.org
• Un software interm edio de software de grupo que
adm inistra los archivos que describen a los equipos CLAVE
de trabajo y sus interacciones. Cuando se utiliza el software comunicacion es asincrona.
495
I N GEN IE RÍ A DEL S OFT W ARE . UN E N F O Q U E P R Á C T I C O
E l p r o p ó s it o d e e s ta s e c c ió n e s e x p lo r a r la id e a d e u n a . ¿ E s r e la t iv a m e n t e e s tá t ic a la b a s e d e d a to s e n lo q u e
a r q u it e c t u r a e s tr a t ific a d a p a r a u n a a p lic a c ió n c lie n te / s e r s e r e f ie r e a p r e d e c ir u n c r e c im ie n t o p e q u e ñ o d e
v i d o r y s e l i m i t a a d e s c r i b i r la s a r q u i t e c t u r a s p o p u l a r e s ta m a ñ o y e s tru c tu ra ?
d e d o s y d e tr e s c a p a s . U n a a r q u it e c t u r a d e d o s c a p a s d e • ¿ E s e s tá t ic a la b a s e d e l u s u a r io ?
u n a a p lic a c ió n c lie n t e / s e r v id o r c o n s is te e n u n a c a p a d e • ¿ E x is t e n r e q u is it o s f i jo s o n o h a y m u c h a s p o s i b i l i
ló g ic a y p r e s e n ta c ió n , y o t r a c a p a d e b a s e s d e d a to s . L a
d a d e s d e c a m b io d u r a n t e la v id a d e l s is t e m a ?
p r im e r a tie n e q u e v e r c o n p r e s e n ta r a l u s u a r io c o n ju n t o s
• ¿ N e c e s ita r á e l s is t e m a u n m a n t e n im ie n t o m í n im o ?
d e o b je t o s v is u a le s y lle v a r a c a b o e l p r o c e s a m ie n t o q u e
r e q u ie r e n lo s d a to s p r o d u c id o s p o r e l u s u a r io y lo s d e v u e l A u n q u e a lg u n a s d e e s ta s c u e s t io n e s v a n e n la z a d a s
to s p o r e l s e r v id o r . P o r e je m p lo , e s ta c a p a c o n te n d r ía e l ( l o s c a m b i o s e n l o s r e q u i s i t o s d a n l u g a r a la s t a r e a s d e
c ó d i g o q u e m o n i t o r i z a la s a c c i o n e s d e p u l s a r b o t o n e s , e l m a n te n im ie n to ) , se tr a ta d e u n c a n tid a d b ie n a m p lia d e
e n v ío d e d a to s a l s e r v id o r , y c u a lq u ie r c á lc u lo lo c a l n e c e p r e g u n ta s q u e d e b e r ía n d e te n e r s e e n c u e n ta a n te s d e
s a r io p a r a la a p lic a c ió n . E s to s d a to s s e p u e d e n a lm a c e a d o p ta r u n a a r q u it e c t u r a d e d o s c a p a s .
n a r e n u n a b a s e d e d a to s c o n v e n c io n a l, e n u n a r c h iv o
s im p le o p u e d e n s e r in c lu s o lo s d a to s q u e e s tá n e n la
m e m o r ia . E s ta c a p a r e s id e e n e l s e r v id o r .
N o r m a l m e n t e la s a r q u i t e c t u r a s d e d o s c a p a s s e u t i
CLAVE
liz a n c u a n d o s e r e q u ie r e m u c h o p r o c e s a m ie n t o d e d a to s . Cuandounaaplicaciónimplicaunprocesamiento
L a a r q u it e c t u r a d e l s e r v id o r W e b d e n a v e g a d o r es u n considerableel enfoquededoscopascadavez
b u e n e je m p lo d e u n a a r q u it e c t u r a d e d o s c a p a s . E l n a v e esmásdifícildeimplementor.
g a d o r d e l c lie n t e r e s id e e n la c a p a d e ló g ic a y p r e s e n
t a c i ó n m i e n t r a s q u e l o s d a t o s d e l s e r v i d o r W e b — la s C u a n d o u n a a p lic a c ió n im p lic a u n p r o c e s a m ie n to c o n
p á g i n a s W e b — r e s i d e n e n la s c a p a d e l a b a s e d e d a t o s . s id e r a b le , e n to n c e s c o m ie n z a n a s u r g ir p r o b le m a s c o n
O t r o e je m p lo d e a p lic a c ió n e n d o n d e se e m p le a r ía n o r la a r q u it e c t u r a d e d o s c a p a s , p a r t ic u la r m e n t e a q u e lla s
m a lm e n t e u n a a r q u it e c t u r a d e d o s c a p a s e s u n a a p lic a a p lic a c io n e s q u e e x p e r im e n ta n c a m b io s d e f u n c io n a li
c ió n s im p le d e e n t r a d a d e d a t o s , d o n d e la s f u n c io n e s d a d a m e d id a q u e s e v a n u t iliz a n d o . T a m b ié n , u n a a r q u i
p r in c ip a le s q u e e je r c it a n lo s u s u a r io s e s in t r o d u c i r lo s te c tu r a d e d o s c a p a s , d o n d e n o h a y m u c h a s p a rte s d e
d a to s d e fo r m a s m u y d iv e r s a s e n u n a b a s e d e d a to s c ó d ig o d e p r o c e s a m ie n t o u n id a s a a c c io n e s ta le s c o m o
r e m o ta ; p o r e je m p lo , u n a a p lic a c ió n d e e n tr a d a d e d a to s p u ls a c ió n d e b o to n e s o in t r o d u c c ió n d e t e x t o e n u n c a m
d e u n s i s t e m a b a n c a r i o , d o n d e la s c u e n t a s d e u s u a r i o s p o d e t e x t o , e s tá a lta m e n t e o r ie n t a d a a s u c e s o s e s p e c íf i
n u e v o s s e te c le a n e n u n a b a s e d e d a to s c e n tr a l d e c u e n c o s y n o a lo s d a to s s u b y a c e n te s d e u n a a p lic a c ió n , y d e
ta s . E l c lie n t e d e e s ta a p lic a c ió n r e s id ir á e n la c a p a l ó g i a q u í q u e la r e u t iliz a c ió n s e a a lg o c o m p lic a d o .
c a y d e p r e s e n ta c ió n m ie n tr a s q u e la b a s e d e d a to s d e
Capa Capa del servidor Capa de bases
c u e n ta s r e s id ir í a e n la c a p a d e b a s e d e d a to s . de presentación de la aplicación de datos
L a s d o s a p lic a c io n e s d e s c r ita s a n t e r io r m e n t e m u e s
t r a n l a c a r a c t e r í s t i c a p r i n c i p a l q u e d i s t i n g u e a la s a p l i
c a c io n e s d e c a p a s d e o tr a s a p lic a c io n e s q u e e m p le a n
m á s c a p a s p o r e l h e c h o d e q u e la c a n tid a d d e p r o c e s a
m ie n t o n e c e s a r io e s m u y p e q u e ñ a . P o r e je m p lo , e n la
a p lic a c ió n d e v a lid a c ió n d e d a to s , e l Ú n ic o p r o c e s a
m ie n t o r e q u e r id o d e l la d o d e l c lie n t e s e r ía la v a lid a c ió n
d e d a to s q u e s e lle v a r í a a c a b o s in r e c u r r ir a la b a s e d e
d a t o s d e la s c u e n t a s . U n e j e m p l o s e r í a c o m p r o b a r q u e
e l n o m b r e d e u n c lie n te n o c o n tie n e n in g ú n d í g it o . E l
r e s to d e la v a lid a c ió n s e h a r ía e n la c a p a d e la b a s e d e Nianta
d a to s y c o n lle v a r ía c o m p r o b a r la b a s e d e d a to s p a r a a s e
g u r a r q u e n o s e a ñ a d ie r o n r e g is t r o s d u p lic a d o s d e c lie n
te s a la b a s e d e d a to s . R e e c e [R E E 9 7 ] h a d o c u m e n ta d o F IG U R A 2 8 .3 . Una arquitectura de tres capas.
lo s c r it e r io s q u e s e d e b e r í a n u t i l i z a r c u a n d o c o n s id e r a
m o s a d o p ta r u n a a r q u it e c t u r a c lie n te s e r v id o r d e d o s L a F ig u r a 2 8 .3 m u e s tr a u n a a r q u it e c t u r a d e tr e s c a p a s .
c a p a s . E s to s s o n lo s c r it e r io s : S e c o m p o n e d e u n a c a p a d e p r e s e n ta c ió n , u n a c a p a d e
p r o c e s a m ie n to ( o c a p a d e s e r v id o r d e s o lic it u d e s ) y u n a
www.FreeLibros.org
. ¿ U t iliz a la a p lic a c ió n u n a ú n ic a b a s e d e d a to s ?
c a p a d e b a s e d e d a to s . L a c a p a d e p r e s e n ta c ió n e s la re s
. ¿ S e lo c a liz a e l p r o c e s a d o r d e b a s e d e d a to s e n u n a p o n s a b l e d e l a p r e s e n t a c i ó n v i s u a l d e l a a p l i c a c i ó n , la
s o la C P U ? c a p a d e l a b a s e d e d a t o s c o n t i e n e l o s d a t o s d e l a a p li-
496
CAPÍTULO 28 IN GE NIE RI A DEL S OF TWARE DEL C O M E R C I O E L E C T R O N I C O CL IE N T E /S E R V I D O R
cacióny la capa de procesam iento es la responsable del tra el servidor de los clientes. La localización de esta
procesamiento que tiene lugar en la aplicación. Por ejem capa no le resta valor a las ventajas que proporciona una
plo, en una aplicación bancaria el código de la capa de arquitectura de tres capas:
presentación se relacionaría simplemente con la m oni • En prim er lugar, la arquitectura de tres capas permite
torización de sucesos y con el envío de datos a la capa aislar a la tecnología que implementa la base de datos,
de procesamiento. Esta capa interm edia contendría los de forma que sea fácil cambiar esta tecnología. Por
objetos que se correspondencon las entidades de la apli ejem plo, una aplicación podría utilizar en prim er
cación; por ejem plo,en una aplicación bancaria los obje lugar la tecnología relacional para la capa de base de
tos típicos serían los bancos, el cliente, las cuentas y las datos; si una base de datos basada en objetos fu n
transacciones. ciona tan eficientem ente com o la tecnología rela
La capa final sería la capa de la base de datos. Ésta cional que se pudiera entonces integrar fácilm ente,
estaría com puesta de los archivos que contienen los todo lo que se necesitaría cam biar serían los m éto
datos de la aplicación. La capa interm edia es la que dos para comunicarse con la base de datos.
conlleva capacidad de m antenim iento y de reutiliza • U tiliza m ucho código lejos del cliente. Los clien
ción. Contendrá objetos definidos por clases reutili tes que contienen m ucho código se conocen com o
zables que se pueden utilizar una y otra vez en otras clientes pesados (gruesos). En un entorno en donde
aplicaciones. Estos objetos se suelen llam ar objetos de se suele n ec esitar algún cam bio, esto s clien tes
negocios y son los que contienen la gam a norm al de p esados pu ed en co n v ertirse en una p esa d illa de
constructores, métodos para establecer y obtener varia m antenim iento. C ada vez que se requiere un cam
bles, m étodos que llevan a cabo cálculos y m étodos, bio la organización tiene que asegurarse de que se
norm alm ente privados, en com unicación con la capa ha descargado el código correcto a cada cliente.
de la base de datos. La capa de presentación enviará Con una capa interm edia una gran parte del código
mensajes a los objetos de esta capa intermedia, la cual de una aplicación cliente/servidor reside en un lugar
o bien responderá entonces directam ente o m antendrá (o en un núm ero reducido pequeño de lugares si se
un diálogo con la capa de la base de datos, la cual pro u tilizan servidores de copias de seguridad) y los
porcionará los datos que se m andarían com o respues cam bios de m antenim iento ocurren de form a cen
ta a la capa de presentación. tralizada.
El lugar donde va a residir la capa interm edia depen
• La idea de las tres capas encaja con las prácticas
de de la decisión sobre el diseño. Podría residir en el
orientadas a objetos de hoy en día: todo el procesa
servidor, que contiene la capa de base de datos; por otro
m iento tiene lugar por medio de los mensajes que se
lado, podría residir en un servidor separado. Éa deci
envían a los objetos y no m ediante trozos de código
sión sobre dónde colocar esta capa dependerá de las
asociados a cada objeto en la capa de presentación
decisiones sobre diseño que se apliquen, dependiendo
que se está ejecutando.
de factores tales como la cantidad de carga que tiene un
servidor en particular y la distancia a la que se encuen
CLAVE
Tipo Código S u m a de | Existe una diferenciaenire el software intermedio
(8 bits) (8 bits) verificación |
(middleware) y la capa del servidor de la aplicación.
P arám etros
I Lo que m erece la pena destacar, llegado este pun
to, es que existe una diferencia entre la capa in ter
Datos
1 m edia del serv id o r de la aplicació n y el softw are
intermedio (middleware). M ientras que el prim ero des
cribe el software de la aplicación que m edia entre el
cliente y el servidor, el segundo se reserva para el soft
FIGURA 28.4. El fo r m a to del p r o t o c o l o IC M P . ware de sistemas.
fcl8.4 PR OT O CO LO S____________________________________________________________
www.FreeLibros.org
no protocolo sin proporcionar realm ente m ucho deta Con objeto de describir lo que es exactamente un pro
lle. El propósito de esta sección es proporcionar este tocolo, utilizaré un pequeño ejemplo: el de un cliente
detalle. que proporciona servicios bancarios para casa, permi-
497
INGENIERÍA DEL S O F TW A RE . UN E N F O Q U E P R Á C T I C O
U n punto importante acerca de los protocolos es que Existen varios protocolos de correo, entre los que se
siempre que se utiliza un mecanismo para la comuni incluyen SMTP, IMAP y diferentes versiones de POP.
cación en una red existe un protocolo. Por ejemplo, los Probablemente el más complicado de estos sea IMAP,
objetos distribuidos son objetos que se encuentran en el cual incluye funciones secundarias y un conjunto de
localizaciones remotas en una red, y es mediante la uti mensajes más rico que POP.
lización de un protocolo la manera en que se envían los El propósito de POP es posibilitar a los usuarios
mensajes, aunque la programación de estos objetos esté acceder al correo remoto y consta de una serie de
a un nivel superior por debajo de la programación y comandos que permiten a los programas de usuario
oculta al programador. interactuar con un servidor de correo POP. El están
El protocolo que he descrito se asemeja a unjugue dar POP3 describe un grupo de mensajes posibles que
te y también a un protocolo de aplicaciones. Merece pueden enviarse al servidor de correo POP3 y el for
mato de los mensajes es devuelto por el servidor. L a
www.FreeLibros.org
la pena entrar en el estudio de algunos protocolos más
reales que estén asociados a los servicios de nivel de Tabla 28.1 muestra un subconjunto pequeño del pro
sistema. tocolo POP3.
498
CAPÍTULO 28 I NGENI ERÍ A DEL S O F T WA R E DEL C O M E R C I O E L E C T R Ó N I C O CLI E NT E/ S ER V ID OR
p r o t o c o lo H T T P y s e rá n in te r p r e ta d o s p o r e l s e r v id o r
M ensaje S ig n ifica d o
q u e lle v a r á a c a b o o p e r a c io n e s ta le s c o m o d e v o lv e r u n a
USER I n f o r m a a l s e r v id o r s o b re u n u s u a p á g in a W e b o p r o c e s a r a lg ú n f o r m u la r io q u e e s té in s e r
r i o e n p a r t ic u la r q u e e s tá in t e n t a n t a d o d e n t r o d e u n a p á g in a .
d o e n v ia r u n c o r r e o A c o n tin u a c ió n , se m u e s tr a u n e je m p lo q u e ilu s t r a lo
PASS P r o p o r c io n a u n a c o n tr a s e ñ a p a r a d e s c r ito a n te r io r m e n te
u n u s u a r io e n p a r t ic u la r
GET/index.html HTTP/ 1.1
STAT P r e g u n ta cd s e r v id o r c u á n to s m e n
s a je s h a y e s p e r a n d o p a r a s e r le íd o s E s te e s e l m e n s a je q u e e n v í a u n n a v e g a d o r c u a n d o
D ELE B o r r a u n m e n s a je q u ie r e v is u a liz a r u n a p á g in a e n p a r t ic u la r . E s te m e n s a
RETR R e c u p e r a u n m e n s a je j e se p u e d e h a b e r g e n e ra d o d e d ife r e n te s m a n e ra s . P o r
e je m p lo , e l u s u a r io p u e d e h a b e r p in c h a d o c o n e l r a t ó n
T A B L A 2 8 .1 . U n s u b c o n ju n to d e l P O P 3 e n u n d e t e r m i n a d o e n l a c e e n un d o c u m e n t o W e b q u e
s e ñ a la a la p á g i n a s o l i c i t a d a . L a l í n e a a n t e r i o r c o n t i e n e
la p a la b r a r e s e r v a d a G E T , la c u a l e s p e c if ic a b a q u e s e
ib a a d e v o lv e r u n a r c h iv o , y e s p e c if ic a b a t a m b ié n e l
28.4.4. El p ro to c o lo HTTP n o m b r e d e l a r c h iv o q u e s ig u e a l c a r á c t e r '/ ' ( in d e x . h t m l)
E s te e s u n o d e lo s p r o t o c o lo s m á s im p o r t a n t e s q u e s e y la v e r s ió n d e l p r o t o c o lo q u e u t ili z a e l n a v e g a d o r q u e
u t iliz a n d e n tr o d e I n t e r n e t ; e s e l p r o t o c o lo q u e r ig e v a a e n v i a r e l m e n s a je .
la c o m u n i c a c i ó n e n t r e u n c l i e n t e q u e u t i l i z a u n n a v e E l s e r v id o r ta m b ié n u t iliz a r á e l p r o to c o lo H T T P p a ra
g a d o r W e b ta l c o m o In te r n e t E x p lo r e r y u n s e r v id o r e n v i a r m e n s a je s d e v u e lt a a l c lie n t e . P o r e j e m p lo , e l
W eb. m e n s a je
L a fu n c ió n p r in c ip a l d e u n s e r v id o r W e b e s p o n e r a
HTTP/1.1 200 OK
d is p o s ic ió n d e c lie n t e s p á g in a s W e b . E s to s c lie n t e s u t i
li z a r á n u n n a v e g a d o r q u e le s c o n e c t a r á a l p u e r t o 8 0 e n s ig n if ic a q u e e l s e r v id o r , q u e e s tá u t iliz a n d o H T T P v e r
e l s e r v id o r W e b ; e s te e s e l p u e r to e s tá n d a r q u e s e u t i l i s i ó n 1 .1 , h a p r o c e s a d o c o n é x i t o l a p e t i c i ó n i n i c i a d a p o r
z a p a r a ta le s s e r v id o r e s . E l n a v e g a d o r q u e e s tá u t i l i e l c l i e n t e . E l c ó d i g o 200 e n e s t e c a s o e s u n e j e m p l o d e l
z a n d o e l c lie n t e . e n v ia r á m e n s a je s d e f in id o s p o r e l c ó d ig o d e e s ta d o q u e in d ic a é x ito .
28.5.1. ¿ Q u é e s e l c o m e r c io e le c tró n ic o ? e s e a r t íc u lo . N o r m a lm e n t e la c o m p a ñ í a d e s u b a s ta s
e s p e c if ic a r ía u n p e r ío d o d e o f e r t a p a r a a s í d a r la p o r
P a ra ilu s t r a r la a p a r ie n c ia d e u n s is t e m a d i s t r i b u i d o e x a
fin a liz a d a .
m in a r e m o s u n e j e m p lo t o m a d o d e u n á r e a d e a p lic a c ió n
• S is te m a s q u e p r o p o r c io n a n a lg ú n s e r v ic io b a s a d o e n
c o n o c id a c o m o c o m e r c i o e l e c t r ó n i c o . E n u n s e n t i d o
a m p l io , e l t é r m i n o « c o m e r c i o e l e c t r ó n i c o » ( E c o m m e r - r e d p a r a u s u a r io s . P r o b a b le m e n t e lo s m á s c o n o c id o s
c e ) se p u e d e d e f in ir c o m o la a p lic a c ió n d e la te c n o lo g í a s o n lo s q u e o f r e c e n c u e n ta s d e c o r r e o g r a tis , d o n d e
d e s is t e m a s d i s t r i b u i d o s q u e a p o y a la s o p e r a c i o n e s c o m e r - lo s in g r e s o s d e d i c h a e m p r e s a p r o b a b le m e n t e p r o
c ia le s . A c o n t i n u a c i ó n , s e d e t a l l a n a l g u n o s d e d i c h o s s i s c e d a n d e l a p u b l i c i d a d e n la s p á g i n a s W e b q u e s e u t i
te m a s : l i z a n p a r a e s e s i t i o W e b . E s t a s so n c o m p a ñ í a s q u e
m e d ia n t e u n h o n o r a r io m o n i t o r iz a n s u s it io W e b y le
• S is t e m a s p a r a v e n d e r a l g u n o s a r t í c u l o s o s e r v i c i o s
e n v í a n u n m e n s a je , n o r m a lm e n t e p o r c o r r e o e le c
u t iliz a n d o I n t e r n e t , d o n d e lo s c lie n t e s in t e r a c t ú a n
tr ó n ic o o m e d ia n te u n b u s c a d o r s i h a n d e te c ta d o u n
c o n e l s is t e m a q u e u t i l i z a n a v e g a d o r e s . E n t r e lo s
p r o b le m a , c o m o e l m a l f u n c io n a m ie n t o d e l s e r v id o r
s is t e m a s t í p ic o s d e c o m e r c i o e l e c t r ó n i c o d e e s t a
q u e se u t iliz a p a ra e l s itio W e b .
c a te g o r ía se in c lu y e n lo s q u e v e n d e n li b r o s , r o p a
y C D s. • S is te m a s q u e p r o p o r c io n a n s e r v ic io s d e a s e s o r a -
m i e n t o . Los s i s t e m a s t í p i c o s d e e s t e t i p o s o n l o s q u e
^ ¿Qué es el comercio p r o c e s a n u n a d e s c r ip c ió n d e a r t íc u lo s , c o m o u n C D ,
• electrónico? p a r a lo s q u e e s t a b le c e r á n e l m e jo r p r e c io , d e s p u é s
d e h a b e r e x p l o r a d o u n n ú m e r o d e s is t e m a s d e v e n t a
• S is t e m a s p a r a s i m u l a r a l g u n a a c t i v i d a d c o m e r c i a l e n
e n la r e d .
tie m p o r e a l u t iliz a n d o t e c n o lo g í a d e r e d . U n b u e n
e je m p lo d e e s te t i p o d e s is t e m a s e s u n a s u b a s ta e n la « S is te m a s in t e r n o s q u e e l c lie n t e n o v e , p e r o q u e d a n
www.FreeLibros.org
r e d .U n s is t e m a d e s u b a s ta t í p i c o s o l i c i t a r í a a r t í c u s o p o r te a m á s a c tiv id a d e s c o m e r c ia le s c o n v e n c io n a
lo s a l o s u s u a r i o s d e I n t e r n e t , u b i c a r í a l o s d a t o s e n le s . P o r e j e m p l o , u n s i s t e m a q u e a p o y a e l s u m i n i s t r o
u n a p á g in a W e b y e n t o n c e s c o m e n z a r í a l a o f e r t a p a r a d e m e r c a n c ía s a u n c o m e r c ia n t e m in o r is t a d e la c a lle .
499
I N GEN IE RÍ A DEL S O F TW A RE . UN E N F O Q U E P R Á C T I C O
« Sistemas de publicidad. M uchos de los ingresos del realiza el pedido de un libro, a continuación se le
comercio electrónico proceden de la publicidad en solicitan los datos de la tarjeta de crédito. Algunos
línea. M uchas páginas Web asociadas a las aplica sistem as de pedidos suelen quedarse con los datos
ciones de com ercio electrónico contendrán peque de las tarjetas de form a permanente de m anera que
ños espacios publicitarios conocidos com o b a n n e r s . no se requiere que el cliente proporcione los datos
Estos anuncios se pueden «pinchar», conduciendo cada vez que haga un pedido.
así al usuario del navegador a un sitio Web el cual • Estos ser
L a p r o v i s ió n d e s e r v ic io s d e s e g u im ie n to .
norm alm ente vende algún producto o servicio. Los vicios posibilitarán al cliente seguir con el proceso
sistemas de publicidad son una form a particular de de una com pra utilizando su navegador. Las páginas
sistemas de comercio electrónico que llevan a cabo W eb personalizadas para el cliente describirán el
funciones tales com o vender un b a n n e r (espacio desarrollo de un pedido: si ya se ha enviado, si está
publicitario), m onitorizando el éxito de estos anun esperando porque el libro no está en stock, y cuál es
cios y la adm inistración del pago de los honorarios la fecha en la que se espera enviar el pedido.
de publicidad.
• Un servicio ofrecido
E l p r o c e s a m ie n t o d e r e v is io n e s .
E stas form an un conjunto típico de aplicaciones por los sitios de ventas de libros más sofisticados y
que están bajo el «banner» del com ercio electrónico. es el que proporciona el medio por el que los clien
En la parte restante de esta sección observarem os una tes pueden escribir revisiones de los libros a com
aplicación típica de com ercio electrónico que adm i prar. Estas revisiones se pueden com unicar al
nistra la venta de un artículo. Esto es lo que piensa vendedor o bien por correo electrónico o por una
cu a lq u ie r p e rso n a de una a p lic a c ió n de co m ercio página Web especializada.
electrónico, aunque espero que después de leer este
• Un ser
L a p r o v is ió n d e u n s e r v ic io d e c o n fe r e n c ia .
preám bulo este sistem a se considerará sólo com o un
vicio de conferencia capacita a un grupo de clientes
tipo de sistema.
para interactuar entre ellos enviando mensajes a una
conferencia, entendiendo por conferencia algo dedi
cado a un tem a específico tal como, por ejemplo, la
CLAVE últim a novela de Robert Goddard o el estado de la
El comercio electrónico no es solamente ficción crim inal. Tales servicios no proporcionan
un comercio minorista de red. ingresos directamente a un vendedor de libros en red.
Sin em bargo, sí pueden proporcionar información
28.5.2. U n s is te m a típ ic o d e c o m e rc io e le c tró n ic o Útil sobre las tendencias en las compras de libros de
las que el personal de ventas de una librería pueden
Con objeto de entender la naturaleza de los sistem as sacar provecho.
cliente/servidor, merece la pena exam inar un ejem plo • L a p r o v is ió n d e n o t i c i a s o b o l e t i n e s p a r a c l ie n t e s .
de una de las áreas del comercio electrónico. Es un sis Un servicio popular que se encuentra en muchos
tem a para adm inistrar las ventas de una gran librería sitios de comercio electrónico dedicados a la venta
que tenga una funcionalidad sim ilar a la que exhiben de un producto es el de proporcionar información
grandes librerías como Blackwells o la filial británica por m edio del correo electrónico. Para el sitio de ven
de Amazon. Las funciones típicas que un sistema como tas de libros que se está describiendo en esta sección
éste proporciona son las siguientes: se incluirían mensajes tal como textos de revisiones,
• Cada libro
L a p r o v is ió n d e s e r v ic io s d e C a t á lo g o . ofertas especiales o m ensajes relacionados con un
que venda una com pañía estará en catálogo y la pedido específico, tal como el hecho de haberse des
página Web proporcionará la descripción de ese libro. pachado.
La inform ación típica que se proporciona sobre un • C o n t r o l y a d m i n i s t r a c i ó n d e l s t o c k . Este es un con
libro es el nombre, autor, editorial y precio. ju n to de funciones que están ocultas para el usuario
• El usuario de
L a p r o v is ió n d e s e r v ic io s d e b ú s q u e d a . del sistema de ventas de libros pero que son vitales
dicho sistema necesitará navegar por el catálogo para para el sistema. Estas funciones se asocian a las acti
decidir si va a com prar un libro. Esta navegación se vidades m undanas, tales com o hacer pedidos de
podría realizar de muchas m aneras diferentes: desde libros, hacer el seguimiento de los stocks y reorde-
navegar secuencialmente desde el prim er libro que nar y proporcionar inform ación de ventas al perso
aparece, hasta navegar utilizando consultas de bús nal responsable de los pedidos.
queda tal com o el título de un libro o su ISBN. • I n f o r m e s f i n a n c i e r o s . Estos son de nuevo un con
• L a p r o v is ió n C uando un
d e s e r v ic io s d e p e d id o s . junto de funciones que están ocultas ante los ojos del
cliente de un sitio de com ercio electrónico quiere usuario del sistema de ventas de libros pero que son
www.FreeLibros.org
com prar un libro, el sistema le proporcionará algún vitales. Proporcionan la inform ación para la gestión
servicio para poderlo hacer y, normalmente, mediante financiera de la com pañía que ejecuta el sistema y
tarjetas de crédito. Generalm ente cuando el cliente proporciona la inform ación de datos tales como la s
500
CAPÍTULO 28 I NGENI ERÍ A DEL S OF TWARE DEL C O M E R C I O E L E C T R Ó N I C O CLI E NT E/ S ERVI DOR
v e n t a s d í a a d í a , a n u a le s y d a to s m á s c o m p le j o s t a le s
c o m o la e f e c t iv id a d d e c ie r ta s e s tr a t e g ia s d e v e n ta s
r e s p e c t o a la s v e n t a s d e l o s l i b r o s q u e e r a n e l t e m a S e r v id o r e s
d e e s ta s e s tr a te g ia s .
□
d e s e g u rid a d
S e p u e d e d e c ir q u e e s ta s s o n u n c o n ju n t o t í p ic o d e
fu n c io n e s m o s tra d a s p o r e l c o m e r c io e le c tr ó n ic o d e d i
c a d o a v e n d e r p ro d u c to s ; e n n u e s tro c a s o e l p r o d u c
to s o n lib r o s , a u n q u e n o h a y n in g u n a r a z ó n p a r a n o
□
h a b e r e le g id o , p o r e j e m p lo , r o p a , C D s , a n t ig ü e d a d e s ,
e t c . , a u n q u e la s f u n c i o n e s d e l s is t e m a v a r ia r í a n u n
p o c o ; p o r e je m p lo , e n u n s it io e s p e c ia liz a d o e n v e n
d e r r o p a n o h a b r í a r a z ó n p o r la q u e im p le m e n t a r la s
□
f u n c io n e s q u e e s tá n c o n e c t a d a s c o n la s r e v is io n e s d e
p ro d u c to s . S e r v id o r
A n t e s d e e s t u d ia r la a r q u it e c t u r a d e d ic h o s is t e m a d e c o n fe r e n c ia
m e r e c e la p e n a h a c e r h in c a p i é e n e l d e s a r r o llo d e t a le s
s is t e m a s . D u r a n t e e l n i v e l d e a n á l i s i s h a y p o c a d i f e r e n
c ia e n tr e e l s is t e m a d e c o m e r c io e le c t r ó n ic o y u n s is t e
m a m á s c o n v e n c io n a l, t a l c o m o e l q u e d e p e n d e d e lo s
o p e r a d o r e s t e le f ó n ic o s p a r a a n o ta r lo s p e d id o s y d o n d e
F IG U R A 2 8 .5 . La arquitectura.
e l c a tá lo g o s e im p r im e y s e e n v í a a lo s c lie n t e s d e la
f o r m a c o n v e n c io n a l. C ie r t a m e n t e e x is t ir á n fu n c io n e s
q u e n o e s ta r á n d e n t r o d e t a le s s is t e m a s c o n v e n c io n a le s , • Un servidor de correo. E s t e s e r v i d o r m a n t e n d r á l i s
c o m o p o r e j e m p l o l o s q u e t i e n e n q u e v e r c o n la s r e v i ta s d e c o r r e o s d e c lie n te s q u e , p o r e je m p lo , h a n i n d i
s io n e s ; s i n e m b a r g o , l a m a y o r p a r t e d e la s f u n c i o n e s s o n c a d o q u e d e s e a n e s ta r p u n tu a lm e n te in f o r m a d o s d e
m u y s im ila r e s , y e s p o s ib le q u e s e lle v e n a c a b o d e f o r la s o f e r t a s e s p e c i a l e s y l o s l i b r o s n u e v o s q u e s e e s t á n
m a d if e r e n t e ; p o r e je m p lo , e l p r o c e s o d e o b t e n e r lo s p u b lic a n d o . E s te s e r v id o r s e c o m u n ic a r á c o n e l s e r
d a t o s d e la s t a r j e t a s d e c r é d i t o s e r í a l l e v a d o a c a b o p o r v id o r W e b p r in c ip a l, y a q u e lo s c lie n t e s p r o p o r c io
u n o p e r a d o r y n o p o r u n a p á g in a W e b . n a r á n s u s d ir e c c io n e s d e c o r r e o y lo s s e r v ic io s q u e
q u i e r e n , i n t e r a c t u a n d o c o n la s p á g i n a s W e b q u e v i s i
ta n . E s t o il u s t r a u n t e m a im p o r t a n t e a c e r c a d e lo s
c lie n t e s y lo s s e r v id o r e s : n o h a y u n a d e s ig n a c ió n
CLAVE fu e r te o r á p id a d e lo q u e e s u n c lie n te o u n s e r v id o r
En el n iv e l de análisis h a y m u y poca d ife re n c ia e n tre los d e u n s is t e m a d e c o m e r c io e le c t r ó n ic o : e s to d e p e n d e
s is te m as d e com ercio electró nico y IOS c onvencio nales. r e a l m e n t e d e l a r e l a c i ó n e n t r e la s e n t i d a d e s i m p l i c a
d a s . P o r e je m p lo , e l s e r v id o r W e b a c tú a c o m o u n s e r
E n la F ig u r a 2 8 .5 s e m u e s tr a la a r q u it e c t u r a té c n ic a v id o r p a r a lo s c lie n t e s q u e e je c u ta n u n n a v e g a d o r ,
d e u n s is t e m a d e li b r o s t í p ic o . L o s c o m p o n e n t e s d e e s te p e r o a c tú a c o m o u n c lie n te c o n e l s e r v id o r d e c o r r e o
s is t e m a s o n : a l c u a l le p r o p o r c io n a d ir e c c io n e s d e c o r r e o p a r a s u s
• Clientes Web. E s t o s e j e c u t a r á n u n n a v e g a d o r q u e lis ta s d e c o r r e o .
in t e r a c t ú a c o n e l s is t e m a y q u e p r i n c ip a lm e n t e ll e v a • Unservidor de conferencia. E s t e e s u n s e r v i d o r q u e
a c a b o fu n c io n e s d e n a v e g a r s o b re c a tá lo g o s y h a c e r a d m i n i s t r a c o n f e r e n c i a s . L e e e n la s c o n t r i b u c i o n e s
p e d id o s . a la c o n f e r e n c ia , v is u a liz a e s ta s c o n t r ib u c io n e s e n
• Un servidor Web. E s t e s e r v i d o r c o n t e n d r á t o d a s la s u n a v e n t a n a a s o c ia d a a u n a c o n f e r e n c ia y b o r r a c u a l
p á g i n a s W e b a la s q u e el c l i e n t e i r á a c c e d i e n d o y s e q u ie r e n t id a d q u e n o e s té a c tu a liz a d a .
c o m u n ic a r á c o n e l r e s t o d e l s is t e m a p a r a p r o p o r c io • Servidores de bases de datos. S o n s e r v i d o r e s q u e
n a r in f o r m a c ió n t a l c o m o la d is p o n ib ilid a d d e u n a d m i n i s t r a n la s b a s e s d e d a t o s a s o c i a d a s a l a a p l i
lib r o . N o r m a lm e n t e e x is t ir á m á s d e u n s e r v id o r W e b c a c ió n d e c o m e r c io . A q u í s e in c lu y e la b a s e d e d a to s
d is p o n ib le p a r a e n fr e n ta r s e c o n u n f a llo d e l h a r d p r in c ip a l d e lib r o s , la c u a l c o n tie n e d a to s d e c a d a
w a re . S i e l s e r v id o r W e b e s ta b a fu n c io n a n d o y se li b r o ; la b a s e d e d a to s d e p e d id o s q u e c o n tie n e d a to s
v i e n e a b a jo , d i c h o s u c e s o s e r í a e x t r e m a d a m e n t e s e n o d e lo s p e d id o s q u e h a n r e a liz a d o lo s c lie n t e s , to d o s
y s e c o r r e s p o n d e r í a c o n la s p u e r t a s d e u n a l i b r e r í a lo s q u e n o s e h a n c u m p lid o t a n t o a n te r io r e s c o m o
c o n v e n c io n a l c e r r a d a a lo s c lie n t e s im p id ie n d o s u a c t u a le s ; la b a s e d e d a to s d e c lie n t e s q u e c o n t ie n e
e n t r a d a . D e b i d o a la s c a ja s r e g i s t r a d o r a s , l o s s i s t e d a to s d e lo s c lie n te s d e lo s v e n d e d o r e s d e lib r o s ; y
www.FreeLibros.org
m a s d e c o r r e o e le c tr ó n ic o q u e tie n d e n a s e r m u y c r í u n a b a s e d e d a to s q u e c o n t ie n e d a to s d e la s v e n t a s
tic o s p a r a u n n e g o c io te n d r á n h a r d w a r e r e p r o d u c id o , d e lib r o s c o n c r e to s ; e s ta b a s e d e d a to s e s p a r tic u
in c lu y e n d o r e p r o d u c c io n e s d e s e r v id o r e s d e W e b . la r m e n t e ú t i l p a r a m u c h o s v e n d e d o r e s d e lib r o s e n
501
INGE NIE RÍA DEL SOF TW ARE . UN EN F O Q U E P R A C T I C O
la red, puesto que les permite publicar las listas de dor Web frontal que se comunica con un sistema ser
los libros m ás vendidos ju n to con las ofertas espe vidor no cliente. Este sistema servidor no cliente es
ciales de esos libros. En m uchos sistemas de com er el que lleva existiendo ya desde hace algún tiempo
cio electrónico estas bases de datos son im ple- y se utilizaba para un procesam iento m ás conven
m entadas en varios servidores de bases de datos cional com o es el de tom ar pedidos por teléfono.
especializados que son duplicados: tales bases de Los servidores de bases de datos se m antendrán
datos son vitales para el funcionam iento de una com actualizados por m edio de un software de sistemas
pañía de comercio electrónico: si el servidor de bases que detecta cuando se va a aplicar una transacción
de datos funcionaba m al y no existen servidores a una base de datos: prim ero aplica la transacción a
duplicados, ocurría algo muy serio, ya que no ten la base de datos que se está utilizando en ese
drían ingresos y los vendedores en red obtendrían m om ento y, a continuación, la aplica a todas las
una reputación muy pobre. Un punto im portante a bases de datos duplicadas.
tener en cuenta sobre esta parte del sistema es que • Un servidor de monitorización. Este es el servidor
no hay razón para que una tecnología anterior, tal que se utiliza para m onitorizar la ejecución del sis
como un mainframe que ejecuta una m onitorización tema. Es utilizado por un adm inistrador del sistema
de transacciones se pueda utilizar para funciones de para com probar el funcionam iento correcto del sis
bases de datos; en realidad m uchos de los sistemas tema y también para ajustar el sistema de manera que
de com ercio electrónico se com ponen de un servi se archive un rendim iento óptimo.
§
bases de datos relaciónales para proporcionar alm ace
nes de datos a gran escala. distribuido?
www.FreeLibros.org
enviaría al servidor de conferencia que utiliza una con J++ (la variedad de Java desarrollada por Microsoft)
figuración de sockets en el servidor. Los sockets son un se comuniquen con los objetos que están en compu
mecanismo de bajo nivel, pero una forma muy eficien tadoras remotas.
502
CAPÍTULO 28 I NGENI ERI A DEL S OF TWARE DEL C O M E R C I O E L E C T R Ó N I C O CLIE NT E/SE RV ID OR
. CORBA. Esta es la tecnología de objetos distribui el formulario, y lleva a cabo la funcionalidad asociada
dos m ás sofisticada. Fue desarrollada por un co n al formulario; por ejemplo, recuperando los datos soli
sorcio de com pañías inform áticas, clientes y citados en el formulario. La program ación CGI se pue
compañías de software. La característica más im por de llevar a cabo en varios lenguajes de programación,
tante del enfoque CORBA es que es m ultilenguaje, aunque el lenguaje seleccionado ha sido Perl, lenguaje
donde los program adores pueden utilizar diferentes de procesam iento de cadenas, existen otros entre los que
lenguajes de program ación para enviar m ensajes a se incluyen, por ejemplo, Java y C++, que contienen los
objetos CORBA: las interfaces CORBA existen para servicios para el procesam iento CGI. Recientemente los
lenguajes tales como Java, FORTRAN, LISP, Ada y que desarrollan Java han proporcionado a los progra
Smalltalk. CORBA está al principio de su desarro m adores el servicio de utilizar Java para este tipo de
llo, sin embargo, amenaza con convertirse en la tec program ación que utiliza la tecnología conocida com o
nología dominante para objetos distribuidos. sewlets. Estos trozos pequeños de código Java son inser
La principal ventaja de los objetos distribuidos sobre tados en un servidor de Web y se ejecutan cuando ocu
la de los sockets es el hecho de que como abarca ente rre un suceso, com o enviar un formulario. Los servlets
ramente el paradigm a de orientación a objetos se pue ofrecen un alto grado de portabilidad sobre otros len
de em plear los mismos métodos de análisis y diseño que guajes de programación.
se utilizan para la tecnología de objetos convencional.
28.6.5. Contenido ejecutable
28.6.3. Espacios Este es el término que se aplica a la inclusión en una pági
Esta es una tecnología que se encuentra en un nivel de na Web de un program a que se ejecuta cuando la página
abstracción incluso más alto que los objetos distribui es recuperada por un navegador. Este program a puede
dos. Fue desarrollada por David Gelemter, un profesor llevar a cabo un núm ero diverso de funciones entre las
de la Universidad de Yale. La tecnología de espacios que se incluyen la animación y la presentación de un for
concibe un sistema distribuido en base a un gran alm a m ulario al usuario para insertar datos. Existen varias tec
cén de datos persistentes donde las com putadoras de un nologías que proporcionan servicios para insertar
sistema distribuido puede leer o escribir. No concibe el contenido ejecutable en una página Web. Aquí se inclu
sistema distribuido com o una serie de program as que yen applets, Active X y Javascript. Un applet es un pro
pasan m ensajes a los dem ás utilizando un mecanismo grama escrito en Java que interactúa con una página Web.
como los sockets, o com o una serie de objetos distri Lo im portante a señalar de esta tecnología es que es por
buidos que se com unican utilizando m étodos. Por el tátil: el código Java se puede m over fácilmente desde un
contrario, la tecnología de espacios conlleva procesos sistema operativo a otro, pero es potencialmente insegu
como escribir, leer o copiar datos a partir de un alm a ro. La razón de por qué los applets son inseguros es que
cén persistente. Un program ador que utiliza esta tecno se pueden utilizar como m edio de transm isión de virus y
logía no se preocupa por detalles com o dónde están otros m ecanismos de acceso a una computadora. Cuan
almacenados los datos, qué proceso va a recoger los do una página de navegador que contiene un applet es
datos y cuándo los va a recoger. descargadapor un navegador, es lo m ismo que cargar un
Esta tecnología se encuentra sólo al principio, aun program a en la com putadora cliente que ejecuta el nave
que las im plementaciones llevan ya disponibles duran gador. Afortunadam ente los diseñadores de Java desa
te algún tiem po para lenguajes com o C y C++; sin rrollaron el lenguaje de tal m anera que es inmensamente
embargo, la im plementación de la tecnología dentro de difícil escribir applets que provoquen violaciones en la
Java como Javaspaces debería asegurar que cada vez se seguridad. Desafortunadam entela solución que se adop
utilizará más para las aplicaciones principales. tó evita acceder a los recursos de una com putadora clien
te o ejecutar otro program a en la computadora. Aunque
se han hecho muchas mejoras en los applets que perm i
28.6.4. CGI
ten un acceso limitado, el m odelo principal del uso de
applets está restringido a este modo de ejecución.
^ ¿Para qué se utiliza CGI? Active X es otra tecnología de contenido ejecutable
que fue desarrollada por M icrosoft. De nuevo se trata
El térm ino CGI (Common Gateway Interface) signifi de un código de program a insertado en una página Web;
ca Interfaz com ún de pasarela. Es la interfaz con el ser la diferencia principal entre esta tecnología y los applets
vidor W eb al cual se puede acceder m ediante los es el hecho de que estos trozos de código se pueden
programas que se ejecutan en el servidor. Gran parte de escribir en diferentes lenguajes com o Visual B asic y
la interactividad asociada a las páginas Web se imple- C++. Esta forma de contenido ejecutable tam bién sufre
menta program ando el acceso a la CGI. Por ejem plo, de posibles problem as de seguridad.
www.FreeLibros.org
cuando el usuario de un navegador accede a una pági Javascript es un lenguaje de program ación interpre
na que contiene un formulario, éste lo rellena y lo envía tado y sencillo que se inserta directamente en una pági
al servidor Web, program a que accede al CGI, procesa na Web. Se diferencia de las soluciones de Active X y
503
INGE NIE RÍA DEL S O F T W A R E . UN E N F O Q U E P R Á C T I C O
applets en que el código fuente de cualquier program a • Paquetes de seguridad. Estos son paquetes que moni-
de guiones de Java se integra en una página Web en vez torizan el tráfico dentro de un sistema distribuido y
de en el código de objetos como ocurre con los applets avisan al adm inistrador de sistemas de la aparición
y Active X. Javascript es un lenguaje sencillo que se de cualquier violación posible en la seguridad. Por
utiliza para una programación relativamente a bajo nivel. ejemplo, el hecho de que alguien intente entrar en un
sistema con una contraseña sin reconocer.
28.6.6. P a q u e te s c lien te /se rv id o r
• M onitores de transacciones. Estos son paquetes de
Este térm ino describe las colecciones de software que
software que administran las transacciones que tie
norm alm ente llevan a cabo algún tipo de procesam ien
nen lugar dentro de un sistem a distribuido y ase
to de sistemas. A continuación, se m uestra un grupo de guran que se devuelvan los datos correctos com o
ejemplos típicos de paquetes de software:
resultado de una transacción y en el orden correcto.
• Paquetes de reproducción de datos. Este tipo de soft M uchas de las funciones de estos m onitores tienen
ware realiza una transacción en la base de datos y la que ver con asegurar que los resultados correctos
aplica a un núm ero de bases de datos reproducidas, se d ev uelvan incluso en el entorno en donde
evitando así acceder a estas bases de datos hasta que podrían aparecer errores de hardw are o de tran s
estén todas en sincronización. misión.
Antes de observar algunos de los principios del diseño rápidos (y caros). El proceso de asignar tales m edios
que se utilizan en el desarrollo de sistemas distribuidos, norm alm ente tiene lugar después de haber tom ado deci
particularm ente de sistemas de com ercio electrónico, siones sobre la potencia de procesam iento de distribu
m erece la pena reiterar lo que se ha señalado anterior ción en un sistema y, algunas veces, conlleva unas ligeras
mente: a nivel de análisis hay poca diferencia entre un iteraciones al final de la fase de diseño.
sistema distribuido y un sistema local, y se basa en que
el m odelo de análisis de un sistema no contendrá nin 28.7.2. M antenimiento de los datos m ás usados
gún dato de diseño com o el hecho de que tres com pu en un alm acenam iento rápido
tadoras, y no una solo, están llevando a cabo algún
Este principio tam bién es obvio. Requiere que el dise
procesamiento. Esto significa que el desarrollador de
ñador exam ine los patrones de datos en un sistema y
un sistema distribuido se enfrentará norm alm ente con
asegure que los datos a los que se accede frecuentemente
un m odelo de objetos o un m odelo funcional sim ilar al
se guarden en algún m edio de almacenamiento rápido.
que se m ostró en las primeras partes de este libro; esta
En m uchos sistem as tales datos pueden constituir no
descripción irá acompañada de algunos de los tipos de
más del 5 por 100 de los datos originales almacenados
com putadoras y de hardware de redes que se van a uti
en el sistema, y de esta m anera permite utilizar con fre
lizar. El proceso de diseño implica transform ar el m ode
cuencia las estrategias que conllevan el alm acenam ien
lo de análisis en algún m odelo físico que se im plementa
to de estos datos dentro de la mem oria principal.
en los elementos de hardware del sistema.
www.FreeLibros.org
Este es uno de los principios m ás obvios. Esto signifi en otros servidores con otras ubicaciones, y cualquier
ca que para un tráfico denso de datos en un sistema dis consulta que se originara sobre los datos se tendría que
tribuido se deberían utilizar m edios de transm isión com unicar a través de líneas lentas de transmisión.
504
CAPITULO 28 I NGENI ERÍ A DEL S O F T W A R E DEL C O M E R C I O E L E C T R Ó N I C O CLI ENTE/ SERVI DOR
www.FreeLibros.org
apariciónde retrasos porque las transacciones permane Los datos que están relacionados deberían de estar den
ceránen cola esperando a que la base de datos se sincro tro del mismo servidor. Por ejemplo, en una aplicación
nice con otras bases de datos. Esto no significa que se de reservas en un sistema de vacaciones, los paquetes
505
IN GE NI E RÍ A DEL S O F TW A RE . UN E N F O Q U E P R A C T I C O
individuales de vacaciones deberían de estar cerca de buido y otro componente. El único gasto que se requie
los datos que describen las reservas actuales de ese re para utilizar esta técnica es tiempo del procesador y
paquete. Ubicar por separado los datos en diferentes ser la memoria necesaria para llevar a cabo la compresión
vidores asegura que los medios de baja transmisión y en la computadora del emisor y la descompresión en la
muy cargados se cargarán incluso más. El diseñador de computadora del receptor.
un sistema distribuido debe asegurarse de que los datos
relacionados gracias al hecho de que se suelen recupe- 28.7.12. D iseño para el fallo
rarjuntos tendrán que residir lo más cerca posible, pre
feriblemente en el mismo servidor, o si no, y no de
¿Por qué puede ser
manera tan preferible, en servidores conectados a tra
vés de medios de transmisión rápidos tales como los
medios utilizados en una red de área local. • catastrófico un fallo de
hardware en un sistema de
comercio electrónico?
www.FreeLibros.org
Se dispone de un grupo de algoritmos que comprimen utilizan en los sistemas distribuidos que implementan
dalos y que reducen el tiempo que tardan los datos en las funciones del comercio electrónico. Un punto impor
transferirse entre un componente de un sistema distri tante a tener en cuenta antes de abandonar esta sección
506
CAPÍTULO 28 ING EN IE RÍ A DEL S O F T WA R E DEL C O M E R C I O E L E C T R Ó N I C O C L IE NT E/ S ER V ID OR
es que una estrategia puede m ilitar contra otra, m ini de datos duplicadas increm enta la latencia de un siste
mizar la latencia y duplicar bases de datos pueden ser m a; com o consecuencia, el diseño de sistem as distri
dos estrategias opuestas: incrementar el número de bases buidos, más que otra cosa, es un arte.
El incremento m asivo en la utilización pública de sis Estas son entonces algunas de las intrusiones que pue
temas distribuidos ha dado lugar a algunos problemas den tener lugar dentro de un sistema distribuido; estas
graves con la seguridad. Los sistemas distribuidos ante intrusiones cada vez son m ás frecuentes, ya que gran
riores se suelen localizar en un lugar físico utilizando parte de la transm isión en los sistemas de comercio elec
tecnologías tales com o redes de área local. Dichos s is trónico ocurren en una Internet públicam ente accesible
temas estaban físicamente aislados de los usuarios exter que utiliza protocolos públicam ente disponibles.
nos y com o consecuencia la seguridad, aunque es un Una de las tareas m ás importantes del diseñador de
problema, no era un problem a enorme com o lo es aho sistemas distribuidos es diseñar un sistema con el pro
ra para los sistemas de comercio electrónico a los que pósito de m inim izar la posibilidad de éxito de las ins
pueden acceder m iem bros de usuarios que emplean un trucciones de alto riesgo. Para poder llevarlo a cabo se
navegador. necesita utilizar una serie de tecnologías. En la siguien
A continuación, se detallan algunas de las intrusio te sección se hace una relación detallada de estas tec
nes típicas en la seguridad que pueden ocurrir: nologías.
• Un intruso monitoriza el tráfico de una línea de trans
m isión y recoge la inform ación confidencial que 28.8.1. E n crip ta ció n
genera un usuario. Por ejemplo, el intruso podría leer
el núm ero, la fecha de caducidad y el nom bre del ¿Qué es la encriptación y
titular de una tarjeta de crédito. Y, a continuación,
puede utilizar esta inform ación para realizar pedidos
en Internet.
• por qué es útil?
www.FreeLibros.org
• Un empleado contrariado de una compañía envía un encriptación: una conocida com o clave pública y otra
programa a un sistema distribuido el cual borra los com o clave privada. Un usuario que desea recibir men-
archivos importantes del sistema. sajes encriptados publicará su clave pública. O tros
507
in g en ier ía del s o f t w a r e . un e n fo q u e pra c t ic o
u s u a r io s q u e d e s e e n c o m u n ic a r s e c o n e l u s u a r io u t i e s la q u e s e u t ili z a n o r m a lm e n t e p a r a e s to . C o n s id e
liz a r á n e s ta c la v e p a r a e n c r i p t a r c u a l q u i e r m e n s a je ; r e m o s u n a f o r m a d e lle v a r a c a b o e s te p r o c e s o : d o s
lo s m e n s a je s e n t o n c e s s o n d e s e n c r ip t a d o s m e d ia n t e u s u a r io s d e c o m p u ta d o r a s A y B q u ie r e n c o m u n ic a r
la c la v e p r iv a d a c u a n d o lo s r e c ib e e l u s u a r io o r ig in a l. s e , y A q u ie r e a s e g u r a r s e d e q u e s e e s tá c o m u n ic a n d o
E s ta f o r m a d e e n c r ip ta c ió n tie n e la v e n ta ja p r in c ip a l c o n B . P a r a p o d e r h a c e r e s to , B n e c e s it a t e n e r u n a c la
d e q u e la g e s tió n d e c la v e s e s s e n c illa : la c la v e p r i v e p ú b lic a y u n a p r iv a d a , y te n e r c o n o c im ie n t o d e c u á l
v a d a n u n c a s e e n v í a a n a d ie . U n in t r u s o q u e m o n i t o - e s la c la v e p ú b lic a . A e n v í a u n m e n s a je a B c o n u n t e x
r iz a lo s d a t o s e n c r ip t a d o s q u e v ia j a n p o r a lg ú n m e d io to e n e l q u e A p id e a B u n a e n c r ip t a c ió n u t iliz a n d o su
d e t r a n s m is ió n e s in c a p a z d e d e c o d if ic a r n i n g ú n m e n c la v e p r iv a d a . E s te t e x t o e n to n c e s e s e n c r ip t a d o p o r B
s a je p u e s t o q u e n o t i e n e n a c c e s o p o s i b l e a l a c la v e y d e v u e lt o a A q u ie n l o d e s c if r a u t iliz a n d o la c la v e
p r iv a d a . E l in c o n v e n ie n te p r in c ip a l d e e s ta f o r m a d e p ú b lic a q u e B le h a p r o p o r c io n a d o . S i e l m e n s a je e s e l
e n c r ip t a c ió n e s q u e s e n e c e s it a u n a g r a n c a n t id a d d e m is m o q u e e l q u e s e e n v ió , B e s e n to n c e s q u ie n d ic e
r e c u rs o s p a ra lle v a r a c a b o e l p r o c e s o d e d e s e n c r ip - q u e e s , p e r o , s i n o lo e s , B e n t o n c e s n o h a d e m o s t r a
t a c ió n . D e b id o a e s ta c la v e p ú b lic a , lo s s is t e m a s n o r d o s u id e n t id a d . E s te e s q u e m a c o m p a r t e to d a s la s v e n
m a lm e n t e s e li m it a n a e n v ío s c o r t o s d e t e x t o o a u n t a ja s d e c u a lq u ie r m é t o d o d e c la v e p ú b lic a e n d o n d e
te x t o p e n s a d o p a r a s e r a lta m e n t e s e g u r o . T a m b ié n se la c la v e p r iv a d a e s s e g u r a ; s in e m b a r g o , p u e d e s e r a ta
u t ili z a p a r a la a u t e n t ic a c ió n , la c u a l u t ili z a u n a t é c n i c a d o p o r c u a lq u ie r a q u e d e s e e e s ta b le c e r f a lt a d e c o n
c a c o n o c id a c o m o f ir m a s d ig it a le s , q u e s e d e s c r ib e n fia n z a e n tr e u n e m is o r y u n r e c e p to r . E s to se p u e d e
e n la s e c c ió n s ig u ie n te . h a c e r a lte r a n d o e l m e n s a je e n c r ip t a d o q u e s e h a d e v u e l
L a te c n o lo g ía p r in c ip a l q u e s e u t iliz a e n In te r n e t t o a l e m is o r .
p a r a la e n c r ip t a c ió n s im é t r ic a e s la c a p a d e s o c k e ts
s e g u r o s (SSL ). E s t a e s u n a t e c n o l o g í a q u e s e u t i l i z a
p a r a e n c r i p t a r d a t o s c o n f i d e n c i a le s t a le s c o m o lo s
28.8.4. Certificaciones digitales
n ú m e r o s d e la s t a r j e t a s d e c r é d i t o q u e v i a j a n d e s d e e l
n a v e g a d o r a u n s e r v id o r W e b , o d e s d e u n a a p lic a c ió n U n a c e r tif ic a c ió n d ig it a l e s u n d o c u m e n to e le c tr ó n ic o
a o tra . q u e p r o p o r c io n a a l u s u a r io u n a lt o d e g r a d o d e c o n fia n z a
c o n u n a o r g a n iz a c ió n o p e r s o n a c o n la q u e e s té n tr a
ta n d o . S e p u e d e n u t iliz a r c u a tr o tip o s d e c e r tif ic a c io
nes:
28.8.2. Funciones de compendio de m ensajes
• C e r t if ic a c io n e s d e u n a a u t o r id a d d e c e r t if ic a c ió n .
U n a f u n c i ó n d e c o m p e n d io d e m e n s a je s e s u n a l g o r i t
U n a a u to r id a d d e c e r t if ic a c ió n e s u n a o r g a n iz a c ió n
m o q u e g e n e ra u n n ú m e ro g ra n d e - n o r m a lm e n te e n tr e
q u e p r o p o r c io n a c e r t if ic a d o s d ig it a le s , ta le s c o m o
1 2 8 y 2 5 6 b its d e lo n g itu d — q u e re p r e s e n ta u n c o m
e s t a s d o s o r g a n i z a c i o n e s : Cañada P o s t C o r p o r a t i o n
p e n d io o r e s u m e n d e lo s c a r a c te r e s d e u n m e n s a je . T i e
y lo s s e r v ic io s p o s ta le s d e U S .
n e la p r o p ie d a d d e q u e s i e l m e n s a je c a m b ia y s e v u e lv e
a a p lic a r e l a l g o r i t m o , e l n ú m e r o e n to n c e s c a m b ia . E x is • C e r t if ic a c io n e s d e l s e r v id o r . E s ta s c e r t if ic a c io n e s
t e n m u c h a s u t i l i z a c i o n e s d e la s f u n c i o n e s d e c o m p e n c o n t ie n e n d a to s ta le s c o m o la c la v e p ú b lic a d e l s e r
d i o d e m e n s a je s . U n u s o c o m ú n e s d e t e c t a r lo s c a m b io s v id o r , e l n o m b r e d e la o r g a n iz a c ió n q u e p o s e e e l s e r
e n u n m e n s a je , p o r e je m p lo , e l h e c h o d e q u e u n a t r a n v id o r y la d ir e c c ió n d e l s e r v id o r e n In te r n e t.
s a c c ió n f in a n c ie r a s e h a y a m o d i f ic a d o e n la t r a n s m is ió n • C e r t i f i c a c i o n e s p e r s o n a l e s . E s t a s s o n la s c e r t i f i c a
c o n o b je t o d e f a v o r e c e r a l q u e m o d if ic a . A n t e s d e e n v ia r c i o n e s a s o c ia d a s a u n i n d i v i d u o . C o n t e n d r á n i n f o r
u n m e n s a je s e a p lic a la f u n c ió n d e c o m p e n d io d e m e n m a c ió n f í s ic a ta l c o m o la d ir e c c ió n d e l in d iv id u o
s a je y s e f o r m a u n n ú m e r o g r a n d e . E l m e n s a j e e n t o n j u n t o c o n la in f o r m a c ió n r e la c io n a d a c o n la c o m p u
c e s s e e n v í a c o n e l n ú m e r o a ñ a d id o a l f in a l. L a f u n c ió n ta d o r a c o m o la c la v e p ú b lic a y la d ir e c c ió n d e c o r r e o
d e c o m p e n d io d e m e n s a je s e a p lic a e n e l r e c e p t o r y e l e le c tr ó n ic o d e la p e rs o n a .
n ú m e r o r e s u lta n te se c o m p a r a c o n e l q u e s e e n v ió . S i
• C e r t if ic a c io n e s d e l e d it o r d e s o ftw a r e . E s to s s o n c e r
lo s d o s s o n ig u a le s e l m e n s a je e n to n c e s n o s e h a m o d i
t if ic a d o s q u e p r o p o r c io n a n c o n fia n z a e n q u e e l s o ft
f ic a d o : s i n o s o n ig u a le s e l m e n s a je h a s id o m o d if ic a d o
w a r e h a s id o p r o d u c id o p o r u n a c o m p a ñ í a d e
d u r a n te la t r a n s m is ió n .
s o f t w a r e e s p e c íf ic a .
C o m o e je m p lo p a r a e l f u n c io n a m ie n t o d e e s ta s c e r
t i f i c a c i o n e s t o m e m o s e l d e la s c e r t i f i c a c i o n e s d e l s e r v i
28.8.3. Firmas digitales
d o r . U n s e r v id o r q u e u t ili z a la c a p a d e s o c k e ts s e g u ro s
U n a f ir m a d ig it a l, c o m o s u p r o p io n o m b r e s u g ie r e , e s ( S S L ) d e b e d e te n e r u n c e r tif ic a d o S S L . E s te c e r tif ic a
u n a f o r m a d e q u e e l e m i s o r d e un m e n s a j e s e p u e d a d o c o n t ie n e u n a c la v e p ú b li c a . C u a n d o u n n a v e g a d o r se
www.FreeLibros.org
id e n t if ic a r c o n e l r e c e p to r d e ta l m a n e ra q u e e l r e c e p c o n e c t a c o n e l s e r v id o r s e u t i l i z a e n to n c e s e s ta c la v e
t o r p u e d a c o n f i a r e n q u e e l m e n s a je f u e e n v ia d o r e a l p ú b lic a p a r a c o d if ic a r la in t e r a c c ió n in ic ia l e n tr e e l s e r
m e n te p o r e l e m is o r . L a e n c r ip t a c ió n d e c la v e p ú b li c a v id o r y e l n a v e g a d o r.
508
CAPÍTULO 28 I N GE NI E RÍ A DEL S OF TWARE DEL C O M E R C I O E L E C T R Ó N I C O CLI E NT E/ S ER V ID OR
www.FreeLibros.org
El software Intermedio establécela Infraestructura
que hace posible que los componentes P resen ta ció n rem ota. En esta extensión del enfoque
diente/servidor ¡nteroperen. de presentacióndistribuida, la lógica primaria de la base
509
IN GE NI E RÍ A DEL S O F TW A RE . UN EN F O Q U E P R A C T I C O
d e d a to s y d e la a p lic a c ió n p e r m a n e c e n e n e l s e r v id o r ,
y lo s d a to s e n v ia d o s p o r e l s e r v id o r s e r á n u t iliz a d o s p o r
e l c lie n t e p a r a p r e p a r a r la p r e s e n t a c ió n d e l u s u a r io . I t f f i p á ® ven kt computación
L ó g ica distribuida. S e a s i g n a n a l c l i e n t e t o d a s la s ^/sefWÉf tomo la cuarta generación del
ta r e a s d e p r e s e n ta c ió n d e l u s u a r io y t a m b ié n lo s p r o c e ^^léÍÉlC Éenta informática]
sos a s o c i a d o s a l a i n t r o d u c c i ó n d e d a t o s t a l e s c o m o l a
v a lid a c ió n d e n iv e l d e c a m p o , la f o r m u la c ió n d e c o n
s u l t a s d e s e r v i d o r y la s s o l i c i t u d e s d e i n f o r m a c i o n e s d e
E l r e s t o d e l o s c o m p o n e n t e s d e l a a p l i c a c i ó n s e dis*
a c t u a l i z a c i o n e s d e l s e r v i d o r . S e a s i g n a n a l s e r v i d o r la s
t r i b u y e e n t r e c l i e n t e y s e r v i d o r b a s á n d o s e e n l a d i s t r i
t a r e a s d e g e s t i ó n d e la s b a s e s d e d a t o s , y l o s p r o c e s o s
b u c i ó n q u e o p t i m i c e l a s c o n f i g u r a c i o n e s d e c lie n t e y
p a r a la s c o n s u lt a s d e l c lie n t e , p a r a a c t u a liz a c io n e s d e
s e r v i d o r y d e l a r e d q u e l o s c o n e c t a . P o r e j e m p l o , la
a r c h iv o s d e l s e r v id o r , p a r a c o n tr o l d e v e r s ió n d e c lie n
i m p l e m e n t a c i ó n d e u n a r e l a c i ó n m u t u a m e n t e e x c lu y e n -
te s y p a r a a p lic a c io n e s d e á m b it o g e n e r a l d e la e m p r e s a .
t e i m p l i c a u n a b ú s q u e d a e n l a b a s e d e d a t o s p a r a d e te r
G estión de dato s remota. L a s a p l i c a c i o n e s d e l s e r m i n a r s i e x is t e u n r e g is t r o q u e s a t is f a g a lo s p a rá m e tro s
v id o r c re a n u n a n u e v a fu e n te d e d a to s d a n d o fo r m a t o a d e u n a c i e r t a t r a m a d e b ú s q u e d a . S i n o s e e n c u e n t r a n in
lo s d a to s q u e s e h a n e x t r a í d o d e a lg ú n o t r o lu g a r ( p o r g ú n r e g i s t r o , s e e m p l e a u n a t r a m a d e b ú s q u e d a a lte r n a
e je m p lo , d e u n a fu e n te d e n iv e l c o r p o r a tiv o ) . L a s a p li tiv a . S i la a p lic a c ió n q u e c o n t r o la e s ta tr a m a d e b ú s q u e d a
c a c io n e s a s ig n a d a s a l c lie n t e s e u t i l i z a n p a r a e x p l o t a r e s tá c o n t e n id a e n s u t o t a lid a d e n e l s e r v id o r , s e m in im i
lo s n u e v o s d a to s a lo s q u e s e h a d a d o f o r m a t o m e d ia n te z a e l t r á f ic o d e r e d . L a p r im e r a t r a n s m is ió n d e la re d d e s
e l s e r v i d o r . E n e s t a c a t e g o r í a s e i n c l u y e n l o s s is t e m a s d e e l c lie n t e h a c ia e l s e r v id o r c o n t e n d r í a lo s p a rá m e tro s
d e a p o y o d e d e c is io n e s . t a n t o p a r a l a t r a m a d e b ú s q u e d a p r i m a r i a c o m o p a r a la
B ases de datos distribuidas. L o s d a t o s d e q u e c o n s t a t r a m a d e b ú s q u e d a s e c u n d a r i a . L a l ó g i c a d e a p lic a c ió n
la b a s e d e d a to s s e d is t r ib u y e n e n tr e m ú lt ip le s c lie n te s d e l s e r v id o r d e te r m in a r ía s i s e r e q u ie r e la s e g u n d a bú s
y s e r v id o r e s . C o n s ig u ie n t e m e n t e , e l c lie n t e d e b e d e q u e d a . E l m e n s a je d e r e p u e s ta a l c lie n t e c o n te n d r ía e l
a d m itir c o m p o n e n te s d e s o ftw a r e d e g e s tió n d e d a to s r e g i s t r o h a l l a d o c o m o c o n s e c u e n c i a b i e n d e l a p r im e r a
a s í c o m o c o m p o n e n te s d e a p lic a c ió n y d e I G U . o b i e n d e l a s e g u n d a b ú s q u e d a . E l e n f o q u e a l t e r n a t iv o
D u r a n te lo s Ú lt im o s a ñ o s s e h a d a d o m u c h a im p o r ( e l c l i e n t e i m p l e m e n t a l a l ó g i c a p a r a d e t e r m i n a r s i se
ta n c ia a la t e c n o lo g ía d e c lie n te lig e r o . U n c lie n te lig e r e q u i e r e u n a s e g u n d a b ú s q u e d a ) i m p l i c a r í a u n m e n s a je
r o e s la lla m a d a « c o m p u t a d o r a d e r e d e s » q u e r e le g a to d o p a r a la p r im e r a r e c u p e r a c ió n d e r e g is t r o s , u n a re s p u e s
e l p r o c e s a m ie n to d e la a p lic a c ió n a u n s e r v id o r p e s a d o . t a a t r a v é s d e l a r e d si n o s e h a l l a e l r e g i s t r o , un s e g u n
L o s c lie n te s lig e r o s ( c o m p u ta d o r a s d e r e d ) o f r e c e n u n d o m e n s a je q u e c o n t u v ie r a lo s p a r á m e tr o s d e la s e g u n d a
c o s te p o r u n id a d s u s t a n c ia lm e n te m á s b a jo a u n a p é r b ú s q u e d a , y u n a r e s p u e s t a f i n a l q u e c o n t u v i e r a e l r e g is
d id a d e r e n d im ie n to p e q u e ñ a o n a d a s ig n if ic a t iv a e n t r o r e c u p e r a d o . S i e n l a s e g u n d a b ú s q u e d a s e n e c e s it a e l
c o m p a r a c i ó n c o n la s c o m p u t a d o r a s d e s o b r e m e s a . 5 0 p o r 1 0 0 d e la s v e c e s , l a c o l o c a c i ó n d e l a l ó g i c a e n e l
s e r v i d o r p a r a e v a l u a r l a p r i m e r a b ú s q u e d a e i n i c i a r la
28.9.3. L ín e a s g e n e r a l e s p a r a l a d is tr ib u c ió n d e s e g u n d a s i fu e r a n e c e s a r io r e d u c ir í a e l t r á f ic o d e re d en
un 33 p o r 100.
c o m p o n e n te s d e a p lic a c io n e s
A u n c u a n d o n o e x is t e n r e g la s a b s o lu t a s q u e d e s c r ib a n
la d is t r ib u c ió n d e c o m p o n e n te s d e a p lic a c io n e s e n tr e e l
c l i e n t e y e l s e r v i d o r , s u e l e n s e g u i r s e la s s i g u i e n t e s l í n e
Aunque t e líneas generóles de lo distribución son valiosos,
a s g e n e r a le s :
todos los sistemas deben de tomarse en consideración
El c o m p o n e n te d e p re se n ta c ió n lin te ra c c ió n su ele por sus propios méritos. Poro todos los beneflclosderivados
ub icarse en el cliente. L a d i s p o n i b i l i d a d d e e n t o r n o s de, digamos, un cliente pesado, el diseñador debe de luchar
b a s a d o s e n v e n ta n a s y d e la p o te n c ia d e c ó m p u to n e c e con un conjunto parecido de contruriedodes.
s a r ia p a r a u n a in t e r f a z g r á f ic a d e u s u a r io h a c e q u e e s te
e n fo q u e s e a e f ic ie n t e e n té r m in o s d e c o s te . L a d e c is ió n f in a l a c e rc a d e la d is t r ib u c ió n d e c o m
S i es necesario com partir la base de datos entre m ú l p o n e n t e s d e b e r í a e s t a r b a s a d a n o s o la m e n t e e n la a p li
tiples usuarios conectados a través de la LA N , en to n c a c i ó n i n d iv id u a l , s in o e n la m e z c la d e a p lic a c io n e s q u e
ces la base de dato s suele u b icarse en el servidor. E l e s t é f u n c i o n a n d o e n e l s i s t e m a . P o r e j e m p l o , u n a in s t a
s is t e m a d e g e s t ió n d e la b a s e d e d a to s y la c a p a c id a d d e l a c i ó n p o d r í a c o n t e n e r a l g u n a s a p l i c a c i o n e s q u e r e q u ie
a c c e s o a la b a s e d e d a to s t a m b ié n s e a s ig n a n a l s e r v i r a n u n e x te n s o p r o c e s a m ie n to d e I G U y m u y p o c o
d o r , j u n t o c o n la b a s e d e d a to s fís ic a . p r o c e s a m i e n t o c e n t r a l d e l a b a s e d e d a t o s . E s t o d a r ía
L o s d atos estáticos que se utilicen deberían de a sig l u g a r a l a u t i l i z a c i ó n d e p o t e n t e s e s t a c i o n e s d e t r a b a jo
www.FreeLibros.org
narse a l cliente. E s t o s i t ú a l o s d a t o s m á s p r ó x i m o s a l e n e l l a d o c l i e n t e y a u n s e r v i d o r m u y s e n c i l l o . U n a vez
u s u a r io q u e tie n e n e c e s id a d d e e llo s y m i n im iz a u n t r á im p la n t a d a e s ta c o n f i g u r a c i ó n , o t r a s a p lic a c io n e s f a v o -
f i c o d e r e d in n e c e s a r io y la c a r g a d e l s e r v id o r . r e c e r í a n e l e n f o q u e d e c l i e n t e p r i n c i p a l , p a r a q u e la s
510
CAPÍTULO 28 I NGENI ERI A DEL S O F T W A R E DEL C O M E R C I O E L E C T R Ó N I C O CLI ENTE/ S ERVI DOR
capacidades del servidor no tuvieran necesidad de ver el objeto al cual se había destinado el mensaje, para invo
se aumentadas. car su método, para pasar al objeto los datos adecuados,
Habría que tener en cuenta que a m edida que m adu y para transferir los datos resultantes de vuelta al obje
ra el uso de la arquitectura cliente/servidor, la tenden to que generase el mensaje inicialmente.
cia es a ubicar la lógica de la aplicación volátil en el
servidor. Esto simplifica la im plantación de actualiza
ciones de software cuando se hacen cambios en la lógi \ a v e
ca de la aplicación [PAU95]. Un ORB capacito a un objeto que resida en un cliente
para enviar un mensaje a un método que esté
Se utiliza toda una gam a de m ecanismos distintos para En el Capítulo 27 se estudiaron los tres estándares
enlazar los distintos com ponentes de la arquitectura m ás utilizados que im plementan una filosofía de redis
cliente/servidor. Estos m ecanismos están incluidos en tribución de objetos: CORBA, CO M y JavaBeans. COR-
la estructura de la red y del sistema operativo, y resul BA se utilizará para ilustrar la utilización del software
tan transparentes para el usuario final situado en el cen interm edio O R B .
tro cliente. Los tipos m ás comunes de mecanismos de
enlazado son:
• Tuberías (pipes):se utilizan mucho en los sistemas
basados en UNIX; las tuberías perm iten la m ensaje Referencía W e b Í^ '
ría entre distintas m áquinas que funcionen con dis La información más actualizada sobre estándares de
tintos sistemas operativos. componentes se puede encontrar en la página
www.omg.com,www.microsoft.com/COM, y
• L l a m a d a s a p r o c e d i m i e n t o s r e m o t o s : perm iten que
java.sun.com/beans
un proceso invoque la ejecución de otro proceso o
módulo que resida en una m áquina distinta. En la Figura 28.6 se m uestra la estructura básica de
una arquitectura CORBA. Cuando se implementaCOR-
¿Cuáles son las opciones BA en un sistema cliente/servidor, los objetos y las cla
www.FreeLibros.org
objeto que resida en un servidor. En esencia, el ORB alguna otra parte del sistema, CORBA utiliza una invo
intercepta el mensaje y m aneja todas las actividades de
comunicación y de coordinación necesarias para hallar 2 En inglés IDL (Interface Description Language)
511
INGE NIE RÍ A DEL S OFT W ARE . UN E N F O Q U E P R Á C T I C O
cación dinámica para (1) obtener la inform ación perti dentes del cliente, y lleva a cabo otras muchas tareas
nente acerca del objeto deseado a partir del depósito de de gestión de objetos [ORF99]. En el servidor unos
interfaz; (2) crear una estructura de datos con parám e stubs LDI, similares a los definidos en la máquina Chen
tros que habrá que pasar al objeto; (3) crear una solici te, se em plean com o interfaz con la implementación
tud para el objeto; y (4) invocar la solicitud. A del objeto real que reside en la ubicación del servidor.
continuación, se pasa la solicitud al núcleo ORB — una El desarrollo del software para sistemas C/S moder
parte dependiente de im plementación del sistema ope nos está orientado a objetos. Empleando la arquitectu
rativo en red que gestione las solicitudes — y, a conti ra C O RBA descrita brevem ente en esta sección, los
nuación, se satisface la solicitud. desarrolladores de software pueden crear un entorno a i
La solicitud se pasa a través del núcleo y es proce el cual se pueden reutilizarlos objetos a lo largoy ancho
sada por el servidor. En la ubicación del servidor, un de una red muy amplia. Para m ás inform ación acerca
adaptador de objetos almacena la inform ación de cla de CORBA y de su impacto general sobre la ingeniería
ses y de objetos en un depósito de interfaz residente en del software para sistemas C/S, el lector interesado pue
el servidor, adm ite y gestiona las solicitudes p ro c e de consultar [HOQ99] y [SIE99],
La actividad de modelado de requisitos para los sistemas Dado que el m odelado de análisis evita la especi
C/S difiere poco de los métodos de m odelado de análisis ficación de detalles de im plem entación, sólo cuando
que se aplicaban para la arquitectura de computadoras más se haga la tran sició n al diseño se considerarán los
convencionales. Consiguientemente, los principios bási problem as asociados a la asignación de software al
cos de análisis descritos en el Capítulo 11 y los métodos cliente y al servidor3. Sin em bargo, dado que se apli
de modelado de análisis presentados en los Capítulos 12 ca un enfoque evolutivo de la ingeniería del softwa
y 21 son igualmente aplicables al software C/S. Se debe re para los sistem as C /S, las d ec isio n e s de imple-
ría destacar, sin embargo, que dado que muchos sistemas m entación acerca del enfoque C/S global (por ejem
C/S m odernos hacen uso de componentes reutilizables, plo, cliente pesado frente a servidor pesado) se podrán
también se aplican las actividades de cualificación aso hacer durante las prim eras iteraciones de análisis y
ciadas a la ISBC (Capítulo 27). diseño.
www.FreeLibros.org
3 Por ejem plo, una arquitectura C /S conform e a CORBA (Sección
2 8.1,5)tendrá un profundo impacto en la decisiones sobre el diseño
y la implementación.
512
CAPÍTULO 28 I N GE NIE RÍ A DEL S O F T WA R E DEL C O M E R C I O E L E C T R Ó N I C O CLI E NT E/ S ER V ID OR
a lo s p r o b l e m a s s i g u i e n t e s : a r q u it e c t u r á d e la s ig u ie n te m a n e r a :
El o bjetivo es lograr la calidad de la escalabilidad. U n ser
• E l d is e ñ o d e d a to s ( C a p í t u lo 1 4 ) d o m in a e l p r o c e s o
vid o r e xiste p a ra pro p o rcio n ar datos para uno o m ás clientes,
d e d i s e ñ o . P a r a u t i l i z a r e f e c t i v a m e n t e la s c a p a c i d a
que suelen estíií distribuidos en u n a red. E l cliente origina una
d e s d e u n s is t e m a d e g e s t ió n d e b a s e s d e d a to s r e la - ña m a d a al servidor, el cual trabaja síncronam ente o asincro
c io n a l ( S G B D R ) o u n s is t e m a d e g e s t ió n d e b a s e s d e nam ente, para serv ir a la solicitud del cliente. Si el servidor
d a to s o r ie n t a d o a o b je t o s ( S G B D O O ) e l d is e ñ o d e fun cio n a síncronam ente, d evuelve el control al cliente al m is
m o tiem p o que devuelve los datos. Si el servidor trabaja asin
lo s d a t o s p a s a a s e r t o d a v í a m á s s i g n i f i c a t i v o q u e e n cro n am en te, d evuelve solo los datos al cliente (el que tiene su
la s a p l i c a c i o n e s c o n v e n c i o n a l e s .
propio h ilo de control).
ONSEJÓ^ m sm e m a k .
km cuando el software C/S es diferente, se pueden Biel Capítulo 14 se presenta un estudio detallado de
utilizarmétodos convencionales o de diseño00 conm uy aiquitecturcs.
pocos modificaciones.
D a d o q u e lo s s is t e m a s m o d e r n o s C /S e s tá n b a s a d o s
• C u a n d o s e s e le c c io n a e l p a r a d ig m a c o n t r o la d o p o r
e n c o m p o n e n te s , s e u t ili z a u n a a r q u it e c t u r a d e a g e n te
s u c e s o s , d e b e r ía r e a liz a r s e e l m o d e la d o d e l c o m d e s o lic it u d d e o b je t o s ( O R B ) p a r a im p le m e n t a r e s ta
p o r t a m ie n t o ( u n a a c t iv id a d d e l a n á lis is , C a p í t u lo 1 2 c o m u n ic a c ió n s ín c r o n a y a s ín c r o n a .
y 2 1 ) y s e r á p r e c is o t r a d u c ir lo s a s p e c to s o r ie n t a d o s A u n n iv e l a r q u it e c t ó n ic o , e l le n g u a je d e d e s c r ip
al c o n t r o l i m p l í c i t o s e n e l m o d e l o d e c o m p o r t a m i e n t o c ió n d e la in t e r f a z C O R B A 4 s e u t ili z a p a r a e s p e c if i
a l m o d e lo d e d is e ñ o . c a r lo s d e t a lle s d e la in t e r f a z . L a u t ili z a c ió n d e L D I
. E l c o m p o n e n te d e in t e r a c c ió n /p r e s e n ta c ió n d e l u s u a p e r m it e q u e lo s c o m p o n e n te s d e s o f t w a r e d e la a p l i
r io d e u n s is t e m a C /S im p le m e n t a t o d a s a q u e lla s f u n c a c ió n a c c e d a n a lo s s e r v ic io s O R B ( c o m p o n e n te s )
c io n e s q u e s e a s o c i a n t í p i c a m e n t e c o n u n a i n t e r f a z s in u n c o n o c im ie n t o d e s u f u n c io n a m ie n t o in te r n o .
g r á f ic a d e u s u a r i o ( I G U ) . C o n s i g u i e n t e m e n t e , s e v e r á E l O R B ta m b ié n t ie n e la r e s p o n s a b ilid a d d e c o o r d i
in c r e m e n t a d a l a i m p o r t a n c i a d e l d i s e ñ o d e i n t e r f a n a r la c o m u n ic a c ió n e n tr e lo s c o m p o n e n te s d e l c lie n
c e s ( C a p í tu lo 1 5 ). E l c o m p o n e n te d e in te r a c c ió n /p r e te y d e l s e r v id o r . P a r a lo g r a r e s to , e l d is e ñ a d o r
s e n t a c i ó n d e l u s u a r i o i m p l e m e n t a t o d a s la s f u n c i o n e s e s p e c if ic a u n a d a p ta d o r d e o b je t o s ( ta m b ié n lla m a d o
q u e s e a s o c ia n t í p ic a m e n t e c o n u n a in t e r f a z g r á f ic a e n c u b r id o r ) q u e p r o p o r c io n a lo s s e r v ic io s s ig u ie n te s
d e u s u a r io ( I G U ) . [B A S 9 8 ]:
• S u e le s e l e c c i o n a r s e u n p u n t o d e v i s t a o r i e n t a d o a • S e r e g i s t r a n la s i m p l e m e n t a c i o n e s d e c o m p o n e n t e s
o b je t o s p a r a e l d is e ñ o ( C a p í t u l o 2 2 ) . E n lu g a r d e la ( o b je t o s ) .
e s tr u c tu r a s e c u e n c ia 1 q u e p r o p o r c io n a u n le n g u a je
• S e i n t e r p r e t a n y s e r e c o n c i l i a n t o d a s la s r e f e r e n c i a s
d e p r o c e d im ie n to s se p r o p o r c io n a u n a e s tr u c tu r a d e
d e c o m p o n e n te s ( o b je t o s ) .
o b je t o s m e d ia n t e la v in c u l a c i ó n e n t r e lo s s u c e s o s
in ic ia d o s e n la I G U y u n a f u n c i ó n d e g e s t ió n d e • S e h a c e n c o i n c i d i r la s r e f e r e n c ia s d e c o m p o n e n t e s
s u c e s o s q u e r e s id e e n e l s o f t w a r e b a s a d o e n e l ( o b je t o s ) c o n la im p le m e n t a c ió n d e lo s c o m p o n e n
c lie n t e . te s c o r r e s p o n d ie n te .
Aun c u a n d o p r o s ig u e to d a v ía e l d e b a te a c e rc a d e l
• S e a c tiv a n y d e s a c tiv a n o b je t o s .
m e jo r e n f o q u e d e a n á l i s i s y d i s e ñ o p a r a l o s s i s t e m a s • S e in v o c a n m é to d o s c u a n d o s e tr a n s m ite n m e n s a
C /S , lo s m é t o d o s o r i e n t a d o s a o b j e t o s ( C a p í t u l o s 2 1 y je s .
2 2 ) p a re c e n o f r e c e r la m e jo r c o m b in a c ió n d e c a r a c te • S e im p le m e n t a n s e r v ic io s d e s e g u r id a d .
www.FreeLibros.org
4 S i COM y JavaBeans se utiliza un m étodo análogo.
513
INGENIERIA DEL SOFTWARE. UN EN FOQ UE PRACT ICO
www.FreeLibros.org
después para especificar la estructura de los objetos p ú ; : ¡lar el significado subyacente y la
de negocios que se em plean en el sistem a cliente/ser ¡ É N p f n te datos de forma eficaz y correcta
vidor. El análisis necesario para identificar los obje
514
CAPÍTULO 28 I NGENI ERÍ A DEL S OF TWARE DEL C O M E R C I O E L E C T R Ó N I C O CLI ENTE/ S ERVI DOR
A medida que las arquitecturasC/S se han ido hacien que van más allá del alcance de este libro. El lector inte
do más frecuentes, la tendencia hacia una gestión de resado puede consultar [BR091], [BER92], [VAS93] y
datos distribuida se ha visto acelerada. En los sistemas [ORF99] para una descripción más extensa.
C / S que implementan este enfoque, el componente de
gestiónde datos reside tanto en el cliente como en el ser
vidor. En el contexto del diseño de bases de datos, un
problema fundamental es la distribución de datos. Esto
es, jcómo se distribuyen los datos entre el cliente y el
servidor y cómo se dispersan entre los nudos de la red?
Un sistema de gestión de bases de datos relaciona1
(SGBDR)hace fácil el acceso a datos distribuidosmedian
te el uso del lenguaje de consultaestructurado(SQL). La Objetos
ventaja de SQL en una estructuraC/S es que «no requie de aplicación
re navegar» [BER92], En un SGBDR, los tipos de datos (Componentes) i
seespecificanempleando SQL, pero no se requiere infor
mación de navegación. Por supuesto, la implicación de
esto es que SGBDR debe ser suficientemente sofisticado F IG U R A 28.7. Notación de diagrama de estructura
paramantener la ubicación de todos los datos y tiene que para componentes C/S.
ser capaz de definir la mejor ruta hasta ella. En sistemas
de bases de datos menos sofisticados, una solicitud de 28.12.4. V is ió n g e n e r a l d e u n e n f o q u e d e d i s e ñ o
datos debe indicar a qué hay que acceder y dónde se
encuentra. Si el software de aplicación debe mantener la Porter [POR95] sugiere un conjunto de pasos para dise
información de navegación, entonces la gestión de datos ñar un proceso elemental de negocio que combine ele
se vuelve mucho más complicada por los sistemas C/S. mentos de diseño convencional con elementos de
diseño orientado a objetos. Se supone que se ha desa
¿Qué opciones existen para ' rrollado un modelo de requisitos que defina los obje
www.FreeLibros.org
momento no es frecuente encontrarla. sentación c o n e l u s u a r i o , se construye típicamente en
El diseño de bases de datos, y más específicamente, un único archivo o bien otros archivos relacionados que
el diseñode bases de datos para sistemas C/S sontemas se hayan unido mediante una consulta. Incluye méto-
515
I N G E N IE RÍ A DEL S O F TW A RE . UN E N F O Q U E P R Á C T I C O
dos para dar formato a la interfaz IGU y también la Asociación de datos. Cuandoun objeto invoca a otro
lógica de aplicación residente en el cliente, junto con objeto independiente, se pasa un mensaje entre dos obje
los controles de la interfaz. También incluye sentencias tos. El símbolo de asociación de datos se utiliza para
incrustadas de SQL, que especifican el procesamiento denotar este hecho.
de la base de datos efectuado en el archivoprimario con A sociación d e c o n tro l. Cuando un objeto invoca a
respecto al cual se haya construido la interfaz. Si la otro objeto independiente y no se pasan entre los dos
lógica de aplicación asociada normalmente a un objeto objetos, se utiliza un símbolo de asociación de control.
de interfaz se implementa en un servidor, típicamente
mediante el uso de herramientas de software interme
dio, entonces la lógica de aplicación que funcione en el 28.12.5. Ite r a c ió n d e l d is e ñ o d e p ro c e s o s
servidor deberá de identificarsecomo un objeto de apli El repositorio de diseño (Sección 28.4.3), que se utili
cación por separado. za para representar objetos de negocio, se emplea tam
O b je to de base d e d ato s. Este tipo de componentes bién para representar objetos de interfaz, de aplicación
se utiliza para identificar el procesamiento de bases de y de base de datos. Obsérvese que se han identificado
datos tal como la creación o selección de registros que las entidades siguientes:
esté basada en un archivo distinto del archivo primario • Métodos: describen cómo hay que implementar una
en el cual se haya construido el objeto de interfaz. Es regla de negocio.
preciso tener en cuenta que si el archivo primario con « Procesos elementales:definen los procesos elementa
respecto al cual se construyeel objeto de interfaz se pro les de negocio identificadosen el modelo de análisis.
cesa de manera distinta, entonces se puede utilizar un • Enlaceprocesolcomponente: identifica a los com
segundo conjunto de sentencias SQL para recuperar un
archivo en una secuencia alternativa. La técnica de pro ponentes que forman la solución de un proceso ele
cesamiento del segundo archivo debería identificarse mental de negocio.
• Componentes: describe los componentes mostrados
por separado en el diagrama de estructura, en forma de
un objeto de base de datos por separado. en el diagrama de estructura.
« Enlace reglade negocioslcornponente: identifican a
O b je to de aplicación. E s utilizado por un objeto de
interfaz,bien por un objeto de base de datos, y este com los componentes que son significativos para la imple-
ponente será invocadobien por un activadorde una base mentación de una determinada regla de negocio.
de datos, o por una llamada a procedimientos remotos. Si se implementa un repositorio utilizando un
También se puede emplear para identificar la lógica de SGBDR, el diseñador tendrá acceso a una herramienta
negocios que normalmente se asocia al procesamiento de diseño muy Útil que proporciona informes que sir
de interfaz que ha sido trasladado al servidor para su ven de ayuda tanto para la construcción como para el
funcionamiento. futuro mantenimiento del sistema C/S.
www.FreeLibros.org
5 Esta sección es una versión m uy abreviada y adaptada de un a r
tículo escrito por Daniel Mosley [MOS96] (utilizado con perm iso del
au to r). En [MOS99] se puede e ncontrar una versión actu alizada y
am pliada.
516
CAPÍTULO 28 I N GE NI E R ÍA DEL S OF TWARE DEL C O M E R C I O E L E C T R Ó N I C O C L IE NT E/ S ER V ID OR
• comprobaciones se realizan
para los sistemas C /S?
cia con la que se utilizará cada una de estas funciones.
Entonces se com binan estos datos (para todos los usua
rios) para crear el perfil operativo.
Pruebas de servidor. Se prueban la coordinación y La estrategia para probar arquitecturas C/S es aná
las funciones de gestión de datos del servidor. También loga a la estrategia de pruebas para sistemas basados en
se considera el rendim iento del servidor (tiempo de res software que se describían en el Capítulo 18. La com
puesta y trasvase de datos en general). probación comienza por com probar al por menor. Esto
Pruebas de bases de datos. Se prueba la precisión e es, se com prueba una única aplicación de cliente. La
integridad de los datos almacenados en el servidor. Se integración de los clientes, del servidor y de la red se
examinan las transacciones enviadas por las aplicacio irá probando progresivamente. Finalmente, se prueba
nes cliente para asegurar que los datos se alm acenen, todo el sistema com o entidad operativa. La prueba tra
actualicen y recuperen adecuadam ente. Tam bién se dicional visualiza la integración de m ódulos para sub
prueba el archivado. sistem as/sistem as y su prueba (Capítulo 18) com o un
Pruebas de transacciones. Se crea una serie de prue proceso descendente, ascendente o alguna variación de
bas adecuada para comprobar que todas las clases de tran los dos anteriores. La integración de m ódulos en el desa
sacciones se procesen de acuerdo con los requisitos. Las rrollo C/S puede tener algunos aspectos ascendentes o
transacciones hacen especial hincapié en la corrección descendentes, pero la integración en proyectos C/S tien
de procesamiento y también en los temas de rendimiento de m ás hacia el desarrollo paralelo y hacia la integra
(por ejemplo, tiem po de procesam iento de transacciones ción de m ódulos en todos los niveles de diseño. P or
y comprobación de volúm enes de transacciones). tanto, la prueba de integración en proyectos C/S se efec
Pruebas de comunicaciones a través de la red. Estas túa a veces del mejor m odo posible empleando una apro
xim ación no incremental o del tipo «big bang».
pruebas verifican que la com unicación entre los nudos
de la red se produzca correctamente, y que el paso de
mensaje, las transacciones y el tráfico de red relacio
nado tenga lugar sin errores. También se pueden efec
O K p<
es un área
tuar pruebas de seguridad de la red com o parte de esta pfRíWtos comunes se encuentran
actividad de prueba. tratónoles y los sistemas
llá e n te /s e rY id o r.
■
Para llevar a cabo estos enfoques de pruebas, M usa
[MUS93] recom ienda el desarrollo de perfiles operati
vos derivados de escenarios cliente/servidor. Un perfil
operativo indica la form a en que los distintos tipos de El hecho de que el sistema no se esté construyendo
usuarios interactúancon el sistema C/S. Esto es, los per para utilizar un hardw are y un software especificado
files proporcionan un «patrón de uso» que se puede apli con anterioridad tiene su im pacto sobre la com proba
car cuando se diseñan y ejecutan las pruebas. Por ción del sistema. L a naturaleza m ultiplataform a en red
www.FreeLibros.org
ejemplo, para un determ inado tipo de usuarios, ¿qué de los sistemas C/S requiere que se preste bastante m ás
porcentaje de las transacciones serán consultas? ¿Actua atención a la prueba de configuraciones y a la prueba
lizaciones? ¿Pedidos? de compatibilidades.
517
IN GE NI ER ÍA DEL S O F T W A R E . UN E N F O Q U E P R Á C T I C O
L a d o c t r in a d e p r u e b a d e c o n f ig u r a c io n e s im p o n e la fo r m a s . A d e m á s , la c o m p r o b a c ió n d e b e e x p lo r a r u n
p r u e b a d e l s is t e m a e n t o d o s lo s e n t o r n o s c o n o c id o s d e e le v a d o n ú m e r o d e r u ta s ló g ic a s , p o r q u e la I G U c re a ,
h a r d w a r e y s o ftw a r e e n lo s c u a le s v a y a a f u n c io n a r . L a m a n ip u la y m o d i f ic a u n a a m p lia g a m a d e o b je t o s g rá
p r u e b a d e c o m p a t ib ilid a d a s e g u ra u n a in t e r f a z f u n c io fic o s . L a c o m p r o b a c ió n se v e c o m p lic a d a a u n m á s p o r
n a lm e n t e c o n s is te n te e n tr e p la t a f o r m a s d e s o f t w a r e y q u e lo s o b je t o s p u e d e n e s ta r p r e s e n te s o a u s e n te s ,
h a r d w a r e . P o r e je m p lo , la in t e r f a z d e v e n ta n a s p u e d e s e r p u e d e n e x is t ir d u r a n te u n c ie r to p e r ío d o d e tie m p o , y
v is u a lm e n te d is t in t a d e p e n d ie n d o d e l e n to r n o d e im p le - p u e d e n a p a r e c e r e n c u a lq u ie r lu g a r d e l e s c r it o r io .
m e n ta c ió n , p e r o lo s m is m o s c o m p o r t a m ie n t o s b á s ic o s E s to s ig n ific a q u e e l e n fo q u e t r a d ic io n a l d e c a p tu
d e l u s u a r io d e b e r í a n d a r lu g a r a lo s m is m o s r e s u lta d o s r a / r e p r o d u c c ió n p a r a c o m p r o b a r in te r fa c e s c o n v e n c io
in d e p e n d ie n te m e n te d e l e s tá n d a r d e in t e r f a z d e c lie n te . n a le s b a s a d a s e n c a r a c te r e s d e b e s e r m o d if ic a d o p a ra
q u e p u e d a m a n e ja r la s c o m p le jid a d e s d e u n e n to r n o
I G U . H a a p a r e c id o u n a v a r ia c ió n f u n c io n a l d e l p a r a
d ig m a d e c a p tu r a /r e p r o d u c c ió n d e n o m in a d o c a p tu ra /
r e p r o d u c c i ó n e s t r u c t u r a d a [ F A R 9 3 ] p a r a e f e c t u a r la
p r u e b a d e la IG U .
L a c a p t u r a / r e p r o d u c c i ó n t r a d i c i o n a l r e g i s t r a la s
EspecificacióndepruebasC/S
e n t r a d a s t a l e s c o m o l a s t e c l a s p u l s a d a s y la s s a l i d a s
t a le s c o m o im á g e n e s d e p a n t a lla q u e s e a lm a c e n a n
28.13.2. T á c tic a d e p r u e b a s C /S p a r a c o m p r o b a c io n e s p o s te r io r e s . L a c a p tu r a /r e p r o
A u n c u a n d o e l s is t e m a C /S n o s e h a y a im p le m e n t a d o d u c c ió n e s tr u c tu r a d a e s tá b a s a d a e n u n a v is ió n in
e m p le a n d o t e c n o lo g í a o r ie n t a d a a o b je t o s , la s t é c n i t e r n a ( ló g ic a ) d e la s a c t iv id a d e s e x te r n a s . L a s
c a s d e p r u e b a s o r ie n t a d a s a o b je t o s ( C a p í t u lo 2 3 ) t ie in t e r a c c io n e s d e l p r o g r a m a d e a p lic a c ió n c o n la IG U
n e n s e n t id o p o r q u e lo s d a to s y p r o c e s o s d u p lic a d o s s e s e r e g is tr a n c o m o s u c e s o s in te r n o s , q u e s e p u e d e n
p u e d e n o r g a n iz a r e n c la s e s d e o b je t o s q u e c o m p a r t a n a lm a c e n a r e n f o r m a d e « g u io n e s » e s c r it o s e n V is u a l
u n m is m o c o n ju n t o d e p r o p ie d a d e s . U n a v e z q u e s e B a s ic d e M i c r o s o f t , e n u n a d e la s v a r ia n t e s d e C , o
h a y a n d e r iv a d o lo s c a s o s p r á c t ic o s p a r a u n a c la s e d e e n e l le n g u a je p a te n ta d o d e l f a b r ic a n t e . L a s h e r r a
o b je t o s ( o s u e q u iv a le n t e e n u n s is t e m a d e s a r r o lla d o m i e n t a s q u e e j e r c i t a n l a s I G U s n o a b a r c a n la s v a l i
c o n v e n c io n a lm e n te ) , e s to s c a s o s d e p r u e b a d e b e r ía n d a c i o n e s d e d a t o s t r a d i c i o n a l e s n i t a m p o c o la s
r e s u l t a r a p lic a b le s e n g e n e r a l a t o d a s la s in s t a n c ia s d e n e c e s id a d e s d e c o m p r o b a c ió n d e r u t a s . L o s m é to d o s
e s a c la s e . d e c o m p r o b a c ió n d e c a ja b la n c a - y c a ja n e g r a d e s c r i
E l p u n t o d e v is t a O O e s e s p e c ia lm e n t e v a lio s o c u a n to s e n e l C a p í t u lo 1 7 s o n a p lic a b le s e n m u c h o s c a s o s ,
d o s e c o n s id e r a la in t e r f a z g r á f ic a d e u s u a r io d e lo s y la s e s t r a t e g ia s o r ie n t a d a s a o b je t o s e s p e c ia le s q u e
s is t e m a s C /S m o d e r n o s . L a I G U e s in h e r e n t e m e n t e s e p r e s e n t a b a n e n e l C a p í t u l o 23 son a d e c u a d a s t a n
o r ie n t a d a a o b je t o s , y s e a p a r t a d e la s in t e r f a c e s t r a d i to p a r a e l s o ftw a r e d e c lie n te c o m o p a r a e l s o ftw a r e
c io n a le s p o r q u e tie n e q u e f u n c io n a r e n m u c h a s p la ta d e s e r v id o r .
A u n c u a n d o lo s s is t e m a s c lie n t e / s e r v id o r p u e d e n a d o p L a s a r q u it e c t u r a s d e a g e n t e d e s o li c it u d d e o b je t o s
t a r u n o o m á s d e lo s m o d e lo s d e p r o c e s o s d e s o ftw a r e s i r v e n d e a p o y o p a r a l o s d i s e ñ o s C / S e n l o s c u a l e s lo s
y m u c h o s d e lo s m é to d o s d e a n á lis is , d is e ñ o y c o m o b je t o s c lie n t e e n v í a n m e n s a je s a lo s o b je t o s s e r v id o r .
p r o b a c i ó n d e s c r i t o s a n t e r i o r m e n t e e n e s t e l i b r o , la s E l e s tá n d a r C O R B A h a c e u s o d e u n le n g u a je d e d e fín i-
c a r a c t e r í s t ic a s d e a r q u it e c t u r a s e s p e c ia le s d e C /S r e q u ie c ió n d e in t e r f a z , y lo s r e p o s it o r io s d e in t e r f a z g e s tio n a n
r e n u n a p e r s o n a liz a c ió n d e l s o ftw a r e d e in g e n ie r í a d e l la s s o l i c i t u d e s d e o b j e t o s i n d e p e n d i e n t e m e n t e d e s u u b i
s o ftw a r e . E n g e n e r a l, e l m o d e lo d e p r o c e s o d e l s o ftw a r e c a c ió n d e n tr o d e la r e d .
q u e s e a p lic a a lo s s is t e m a s C /S t ie n e u n a n a t u r a le z a e v o - E l a n á lis is y e l d is e ñ o d e s is t e m a s c lie n t e / s e r v id o r
lu t iv a , y lo s m é to d o s t é c n ic o s s u e le n te n d e r a e n fo q u e s h a c e n u s o d e d ia g r a m a s d e f l u jo d e d a to s y d e e n ti
o r ie n t a d o s a o b je t o s . E l d e s a r r o lla d o r d e b e d e s c r ib ir a q u e d a d e s y r e la c io n e s , d ia g r a m a s d e e s t r u c t u r a m o d if i
ll o s o b je t o s q u e s e p r o d u z c a n e n la im p le m e n t a c ió n d e lo s c a d o s , y o tr a s n o ta c io n e s q u e s e e n c u e n t r a n e n e l
c o m p o n e n te s d e in te r a c c ió n /r e p r e s e n ta c ió n c o n e l u s u a d e s a r r o llo d e a p lic a c io n e s c o n v e n c io n a le s . E s p r e c i
r io , d e b a s e d e d a to s y d e a p lic a c ió n . L o s o b je t o s d e f i s o m o d i f i c a r la s e s t r a t e g i a s d e c o m p r o b a c i ó n p a r a a d e
n id o s p a r a e s to s c o m p o n e n t e s d e b e r í a n a s ig n a r s e b ie n c u a r la s a la s c o m p r o b a c i o n e s q u e e x a m in a n la
www.FreeLibros.org
a la m á q u in a , o b ie n a la m á q u in a s e r v id o r , y s e p u e c o m u n ic a c ió n a tr a v é s d e la r e d y e l ju e g o e n tre e l
d e n v in c u la r a tr a v é s d e u n d is t r ib u id o r d e s o lic it u d e s s o f t w a r e q u e r e s id e e n e l c lie n t e y a q u e l q u e r e s id e e n
d e o b je t o s . e l s e r v id o r .
518
CAPITULO 28 I NGENI ERI A DEL S O F T WA R E DEL C O M E R C I O E L E C T R Ó N I C O CLI E NT E/ S ERVI DOR
[BAS98] Bass, L., P. Clemens y R. Kazman, Software Archi- [MOS99] Mosley, D., Client Server Software Testing on the
tecture in Practice, Addison-Wesley, 1998. Desk Topam lthe Web, Prentice-I Iall. 1999.
[BER92] Berson, A., ClientlServer Architecture, McGraw- [MUS93] Musa, J., «Operational Profilesin Software Relia-
Hill, 1992. bility Engineering», IEEE Software, Marzo de 1993,pp.
14-32.
[BIN92] Binder, R., «A CASE-based Systems Engineering
[ORF99] Orfali, R., D, Harkey y J. Edwards, Essential
Approachto Client-Server Development», CASE Trends,
ClientlServer Survival Guide, 3.a ed., Wiley, 1999.
1992.
[PAU95] L. G. Paul, «Client/Server Deployment», Compu-
[BIN95] Binder, R., «Scenario-Based Testingfor Client Ser terworld, 18de Diciembre, 1995.
ver systems», Software Development, vol. 3, n.2 8, Agos
to de 1995,pp. 43-49. [POR94] Porter, J., O-DES Design M anual, Fairfield Uni-
versity, 1994.
[BR091] Brown, A.W., Object-Oriented Databases, [POR95] Porter, J., Synon Developer’s Guide, McGraw-Hill,
McGraw-Hill, 1991. 1995. ‘
[FAR93] Farley,K.J., «Software Testing For Windows Deve- [REE97] Reece, G., JBDC and Java, O ’Reilly, 1997.
lopers»,Data BasedAdvisor, Noviembre de 1993,pp. 45 [S1E99] Siegel, J., CORBA 3 Fundamentáis and Program
46, 50-52. ming, Wiley, 1999.
[HOQ99] Hoque, R., CO RBAfor Real Programmers, Aca- [VAS93] Vaskevitch, D., ClientlServer Strategies, IDG
demic Press/Morgan Kaufmann, 1999. Books. 1993.
28.1. Empleando publicaciones comerciales o recursos e Inter Wide Web, y se pueden hacer pedidos a través de correo elec
net de información de fondo, defina un conjunto de criterios trónico, mediante el sitio Web y también por teléfono o fax.
para evaluar herramientas para la ingeniena del software C/S. Se construirá un sistema cliente/servidor para prestar su apo
yo al procesamiento de pedidos en el sitio de la compañía.
28.2. Sugiera cinco aplicacionesen las cuales un servidor pesa
Defina un conjunto de objetos de alto nivel que fueran nece
do parezca una estrategia de diseño adecuada.
sarios para el sistema de procesamiento de pedidos, y organi
28.3. Sugieracinco aplicacionesen las cuales un cliente pesa ce estos objetos en tres categorías de componentes: la
do parezca ser una estrategia de diseño adecuada. presentación con el usuario, la base de datos y la aplicación.
28.4. Efectúe una investigación sobre los Últimos delitos come 2 8.8. Formule reglas de negocio para establecercuándo se pue
tidos en Intemet y describa cómo la tecnología de seguridad de efectuar un envío si el pago se efectúa mediante tarjeta de
apuntada en este capítulo podría haberla evitado. crédito, con respecto al sistema descrito en el Problema 28.7.
28.5. Describa cómo se podría estructurarun sistema de reser Añada reglas adicionales si el pago se efectúamediante cheque.
vas en unas líneas aéreas como un sistema cliente/servidor. 2 8.9. Desarrolle un diagrama de transición de estados (Capí
28.6. Investigue los últimos avances en software para traba tulo 12) que defina los sucesos y estados que resultarían visi
jo en grupo y desarrolle una breve presentación para la clase. bles para un dependiente de entrada de pedidos que trabajase
El profesor puede asignar una función específica a los distin en un PC cliente en la división de ventas por catálogo (P ro
tos participantes. blema 28.7).
28.7. Una compañía va a establecer una nueva división de 2 8 .1 0 . Ofrezca ejemplos de tres o cuatro mensajes que pudie
ventas por catálogo para vender mercancías de uso frecuente ran dar lugar a una solicitud de un método de cliente mante
y en exteriores. El catálogo electrónico se publicará en la World nido en el servidor.
Aun cuando los métodos básicos de análisis y diseño para nahan (Developing Client-Server Applications, IDG Books
sistemas cliente/servidor son bastante parecidos a los siste Worldwide, 1999) abarca un amplio abanico de temas C/S.
mas OO convencionales, se requieren técnicas y conoci A un nivel más sofisticado, Orfali y sus colaboradores
mientos especializados. Lowe y Helda han escrito unas [ORF99], y Linthicum (Guide to ClientlServer and Intranet
introducciones valiosas a los conceptos básicos (ClientlSer Development, Wiley, 1997) proporcionan las líneas genera
www.FreeLibros.org
ver Computingfor Dummies, 3.a ed., IDG Books Worldwide, les detalladas para aplicaciones C/S. Berson (ClientlServer
1999), al igual que Zantinge y Adriaans (ManagingClientlSer- Architecture, 2.a ed., McGraw-Hill, 1996)trata temas de arqui
ver, Addison-Wesley, 1997). En un nivel intermedio, McCla- tectura y componentes.
519
I N GEN IE RÍ A DEL S OFT W ARE . UN E N F O Q U E P R A C T I C O
En los últimos años las computadorasde redes se han con dimiento del software y los aplican a la arquitectura y al dise
vertido en un tema tecnológicocandente (y una estrategiaarries- ñ o de los sistemas distribuidos. Heinckiens y Loomies (B uil-
gada de negocios). Sinclair y Merkow ( T h in C lie n ts C le a r ly d in g S c a la b le D a ta b a s e A p p li c a ti o n s : O b je c t- O r ie n te d
E x p la in e d , MorganKaufmannPublishers, 1999), Friedrichsy D e s ig n , A r c h ite c tu r e s , a n d I'm p le m e n ta tio n s , Addison-Wes
Jubin (J a v a T h in - C lie n tP r o g r a m m in g fo r a N e tW o r k C o m p u - ley, 1998) dan importancia al diseño de bases de datos en su
tin g E n v ir o n m e n t, Prentice-Hall, 1999), Dewire (T h in C lie n ts , guía para construir aplicaciones cliente/servidor. Ligón
McGraw-Hill, 1998)y Kanter (U n d e rsta n d in g T h in -C lie n tlS e r- ( C l ie n t lS e r v e r C o m r n u n ic u tio n s S e r v ic e s : A G u i d e f o r the
v e r C o rn p u tin g , Microsoft Press, 1998)proporcionan una guía A p p lic a tio n s D e v e lo p e r , McGraw-Hill, 1997) tiene en cuen
valiosa de cómo diseñar, construir, hacer uso y apoyar siste ta una gran variedad de temas de comunicación relacionados
mas cliente ligeros (delgados). entre los que se incluyen TCP/IP, ATM, EDI, CORBA, men
Empezando con el modelado de sucesos de negocios, sajes y encriptación. Schneberger ( C l ie n t lS e r v e r S o ftw a r e
Ruble (P r a c tic a 1 A n a ly s is a n d D e s i g n f o r C lie n tlS e r v e r a n d M a in te n a n c e , McGraw-Hill, 1997) presenta un marco de tra
G U I S y s te m s , 1997)proporciona un estudio en profundidad bajo para controlar los costes de mantenimiento de software
de las técnicas para el análisis y diseño de sistemas C/S. Los C/S y para optimizar el apoyo al usuario.
libros de Goldman, Rawles y Mariga ( C lie n tlS e r v e r I n f o r Literalmente cientos de libros abarcan el desarrollo de sis
m a tio n S y ste m s: A B u s in e s s -O r ie n te d A p p r o u c h , Wiley, 1999), temas C/S específicos del vendedor. La siguiente relación
Shan, Earle y Lenzi (E n te r p r is e C o m p u tin g W ith O b je c ts : representa un pequeño muestreo:
F r o m C lie n tlS e r v e r E n v ir o n m e n ts to th e I n te r n e t, Addison-
Anderson, G.W., Client/Server Database Design With
Wesley, 1997) y Gold-Berstein y Marca ( D e s ig n in g E n te r Sybase: A High-Performance and Fine-Tuning Guide,
p r is e C lie n tlS e r v e r S y s te m s , Prentice-Hall, 1997) tienen en McGraw-Hill, 1997.
consideración los sistemas C/S en un contexto más amplio Barlotta,M. J., Distributed ApplicationDevelopment With
de empresa. Powerbuilder 6, Manning Publications Company, 1998.
Existe un grupo de libros que estudian la seguridad en Bates, R.J., Hands-On Client/Server Intemetworking,
redes; a continuación se proporciona una muestra: McGraw-Hill, 1997. '
Stallings, W., C r y p to lo g y a n d N e tw o r k S e c u r ity , Prenti Mahmoud, Q.H., Distributed Programming with java,
ce-Hall, 1998. Manning Publications Company, 1998.
Gralla, P., T h e C o m p le te I d io ts G u id e to P r o te c tin g Y our- Orfali, R., y Harkey, Client/Server Programming with
s e l f O n lin e , Que, 1999. JavaBeans, Wiley, 1999.
Ghosh, A. K., E -c o r n rn e r c e S e c u r it y : W e a k L in k s , B e s t Sankar, K., Building Internet Client/Server Systems,
D e fe n s e s , John Wiley, 1998. McGraw-Hill, 1999.
Atkins, D. T., Sheldeny T. Petru, I n te r n e t S e c u r ity : P ro - Mosley [MOS99] y Boume (T e s tin g C l ie n t lS e r v e r S y s
fe s s i o n a l R e fe r e n c e , New Riders Publishing, 1997. McGraw-Hill, 1997) han escrito libros de guía detalla
te m s ,
Bemstein, T., A.B. Bhimani, E. Schultzy C. Síegel, I n te r dos para pruebas C/S. Ambos autoresproporcionanun estudio
n e t S e c u r it y f o r B u s in e s s , John Wiley, 1998. en profundidad de las estrategias de comprobación, tácticas
Garfinkel, S .,y G . Spafford, W e b S e c u r ity a n d C o m m e r - y herramientas.
ce, O . Reilly, 1997.
Una gran variedad de fuentes de información sobre inge
niería del software cliente/servidor está disponible en Inter
Tiwana, A., W eb S e c u r ity , Digital Press, 1999.
net. Una lista actualizada de referencias a sitios (páginas) web
Loosely y Douglas ( H ig h - P e r fo r m a n c e C lie n tlS e r v e r , que son relevantes para sistemas C/S se pueden encontraren
Wiley, 1997) explican los principios de la ingeniería de ren http://www.pressman5.com.
www.FreeLibros.org 520
C A P ÍT U L O
29 INGENIERÍA WEB
A W o r ld W id e W e b e In t e r n e t h a n in t r o d u c id o a la p o b la c ió n e n g e n e r a l e n e l m u n d o d e
L la in f o r m á t ic a . C o m p r a m o s fo n d o s d e in v e r s ió n c o le c tiv o s y a c c io n e s , d e s c a r g a m o s
m ú s ic a , v e m o s p e lí c u la s , o b te n e m o s a s e s o r a m ie n to m é d ic o , h a c e m o s r e s e r v a s d e h a b i
t a c i o n e s e n h o t e l e s , v e n d e m o s a r t í c u l o s p e r s o n a l e s , p l a n i f i c a m o s v u e l o s e n lí n e a s a é r e a s , c o n
c e m o s g e n te , h a c e m o s g e s tio n e s b a n c a r ia s , r e c ib im o s c u r s o s u n iv e r s it a r io s , h a c e m o s la c o m p r a
-e s d e c i r , e n e l m u n d o v i r t u a l s e p u e d e h a c e r t o d o l o q u e s e n e c e s it e — . S e p u e d e d e c i r q u e
I n t e r n e t y la W e b s o n lo s a v a n c e s m á s im p o r t a n t e s e n la h is t o r ia d e la in f o r m á t ic a . E s ta s t e c
n o lo g ía s in f o r m á t ic a s n o s h a n lle v a d o a to d o s n o s o tr o s a la e r a d e la in f o r m á t ic a ( c o n o t r o s
m i llo n e s d e p e r s o n a s q u ie n e s f in a lm e n t e e n t r a r á n t a m b ié n ) . D u r a n t e lo s p r im e r o s a ñ o s d e l s ig l o
v e in t iu n o e s ta s te c n o lo g í a s h a n lle g a d o c a s i a f o r m a r p a r te d e n u e s tr a v id a d ia r ia .
P a r a to d o s n o s o tr o s q u e r e c o r d a m o s u n m u n d o s in W e b , e l c r e c im ie n t o c a ó t ic o d e la t e c n o -
lo g ia t ie n e s u o r ig e n e n o t r a e r a — lo s p r im e r o s d ía s d e l s o ftw a r e — . E r a n t ie m p o s d e p o c a d i s
c ip lin a , p e r o d e e n o r m e e n t u s ia s m o y c r e a t iv id a d . E r a n t ie m p o s e n q u e lo s p r o g r a m a d o r e s a
m e n u d o e n t r a b a n e n o t r o s s is t e m a s , a lg u n a s v e c e s c o n b u e n a in t e n c ió n y o t r a s c o n m a la in t e n
c ió n . L a a c t it u d q u e p r e v a le c ía p a r e c ía s e r la d e « H a z lo r á p id a m e n te , y e n tr a e n e l c a m p o , q u e
n o s o tr o s l o lim p ia r e m o s ( y m e jo r s e r ía q u e e n te n d ie r a s lo q u e r e a lm e n te q u e r e m o s c o n s t r u ir )
c u a n d o a c tu e m o s » . ¿ L e s u e n a f a m ilia r ?
E n u n a m e s a r e d o n d a v ir t u a l p u b lic a d a e n I E E E S o f tw a r e [P R E 9 8 ] , m a n tu v e e n f ir m e m i
p o s tu r a e n r e la c ió n c o n la in g e n ie r í a d e W e b :
M e parece q u e c u alq u ier p roducto o sistem a im portante es m ereced o r d e recib ir una ingeniería. A ntes
de co m en zar a c o n stru irlas, lo m ejo r es e n ten d er el pro b lem a, d iseñ ar una solución viable, im p lem en tarla
de una m anera só lid a y c o m p ro b a rla e n profundidad. P ro b ab lem en te tam b ién se d eb erían c o n tro la r los
cam bios a m ed id a que el trab a jo vaya a vanzando, y d isp o n er de m ecanism os p ara a seg u rar la calidad del
resultado final. M uchos d e los q u e d esarro llan W ebs n o dicen lo m ism o; e llo s p ien san que su m undo es
realm ente d iferen te, y que sim plem ente no se van a ap lic ar los enfoques d e in g en iería del softw are c o n
vencionales.
V I S T A Z O R Á P I D O
www.FreeLibros.org
q u e lasW e b A p p s se in teg ran c a d a vez m ie n tas e sp e c ia liz a d o s a so c ia d o s con c a p a ra d escubrir erro res e n el conteni
m á s e n g ra n d e s y p e q u e ñ a s c o m p a la W eb.y entonces com ienzan la s p ru e do, fu n cio n alid ad y com patibilidad.
521
IN GE NI E RÍ A DEL SOF TW AR E . UN E N F O Q U E P R A C T I C O
1 En esta categoría se incluyen unos sitios W eb completos, fu n d o 2 En el contexto de este capitulo el term ino «aplicación web» abar
www.FreeLibros.org
nalidad especializada dentro de los sitios W eby aplicaciones de pro cara todo, desde una pagina Web simple que podría a yudara un con
ceso de inform ación que residen en Internet, en una Intranet o en sum idor a calcular el pago de un alquiler de un coche hasta un sitio
una Extranet W eb com pleto que proporcione los servicios com pletos para viales
de negocios y de vacaciones
522
C A P Í T U L O 29 I NGENI ERÍ A WEB
E v o lu c ió n c o n tin u a . A d if e r e n c ia d e l s o f t w a r e d e a p li m e d id a s d e s e g u r id a d e n t o d a la in f r a e s t r u c t u r a q u e a p o
c a c io n e s c o n v e n c io n a l , q u e e v o l u c i o n a c o n u n a s e r ie d e y a u n a W e b A p p y d e n tr o d e la m is m a a p lic a c ió n .
v e r s i o n e s p l a n i f i c a d a s y c r o n o l ó g i c a m e n t e e s p a c ia d a s , E s t é t ic a . U n a p a r t e in n e g a b le d e l a t r a c t iv o d e u n a
la s a p l i c a c i o n e s W e b e s t á n e n c o n s t a n t e e v o l u c i ó n . N o W e b A p p e s s u a p a r ie n c ia e in t e r a c c ió n . C u a n d o s e h a
e s in u s u a l q u e a lg u n a s W e b A p p s ( e s p e c ífic a m e n te , s u
d is e ñ a d o u n a a p lic a c ió n c o n e l f i n d e c o m e r c ia liz a r s e o
c o n t e n id o ) s e a c tu a lic e n c a d a h o r a . v e n d e r p r o d u c t o s o id e a s , la e s t é t ic a p u e d e t e n e r m u c h o
A lg u n o s a r g u m e n ta n q u e la e v o lu c ió n c o n tin u a d e q u e v e r c o n e l é x it o d e l d is e ñ o té c n ic o .
la s W e b A p p s h a c e q u e e l t r a b a j o r e a l i z a d o e n e l l a s s e a
L a s c a r a c t e r í s t ic a s g e n e r a le s d e s ta c a d a s a n t e r i o r
s im ila r a la ja r d in e r í a . L o w e [ L O W 9 9 ] tr a ta e s te te m a
m e n t e s e a p lic a n a to d a s la s W e b A p p s , p e r o c o n u n g r a
c o n e l s ig u ie n te e s c r it o :
d o d ife r e n t e d e in f lu e n c ia . L a s c a te g o r ía s d e a p lic a c io n e s
La in g en ie n a e stá a p u n to de a d o p ta r un en fo q u e c ie n tí q u e s e e n u m e r a n a c o n t i n u a c i ó n s o n la s m á s f r e c u e n t e s
fico y co nsecuente, su a v iza d o p o r u n con tex to específico y e n e l tr a b a jo d e la W e b [ D A R 9 9 ] :
práctico, para el de sa rro llo y el com isio n ad o de sistem as y
aplicaciones. El d esarro llo de los sitios W eb suele e sta r d e s • in f o r m a t iv a : s e p r o p o r c io n a u n c o n t e n id o s o lo d e le c
tinado a crea r una infraestructura (sem b rar el ja rd ín ) y e n to n t u r a c o n n a v e g a c ió n y e n la c e s s im p le s ;
ces « o c u p a rse » de la in fo rm a c ió n q u e crece y b ro ta d e n tro • d e s c a r g a : u n u s u a r io d e s c a r g a la in f o r m a c ió n d e s d e
del jard ín . D espués de u n tiem po, el ja rd ín (es d e cir, el sitio
e l s e r v id o r a p r o p ia d o ;
W eb) c o n tin u a rá e v o lu c io n a n d o , c a m b ia n d o y c re c ie n d o .
U n a b u e n a a rq u itec tu ra inicial d e b e rá p e rm itir q ue este c re
c im iento o curra de form a c o n tro la d a y c o n se c u e n te ...p o d rí W¡k ¿Cómo se pueden
am os h a c e r q u e «tres c irujanos» p o d a ran los « á rb o le s» (es W tategorizar las WebApps?
decir, las secciones del sitio W eb) d e n tro del ja rd ín (el sitio
en sí) a la vez se a seg u ra la in te g rid a d de las referen cias c ru
zadas. P o d ría m o s d isfru tar de «guarderías de jard ín » d o n d e • p e r s o n a liz a b le : e l u s u a r io p e r s o n a liz a e l c o n t e n id o
«se cultiven» las p lan ta sjó v en e s (es decir, las c o n fig u ra cio a s u s n e c e s id a d e s e s p e c í f ic a s ;
nes de d iseño para sitios W eb). A cab em o s c o n e sta analogía, • in te r a c c ió n : la c o m u n ic a c ió n e n tr e u n a c o m u n id a d
n o vaya a ser que v a y am o s d e m a sia d o lejos.
d e u s u a r io s o c u r r e m e d ia n t e u n e s p a c io c h a t ( c h a r la ) ,
U n c u id a d o y u n a a lim e n t a c ió n c o n t in u a p e r m it e q u e t a b lo n e s d e a n u n c io s o m e n s a je r ía in s ta n tá n e a ;
u n s it io W e b c r e z c a ( e n r o b u s te z y e n im p o r t a n c ia ) . P e r o • e n tr a d a d e l u s u a r io : la e n tr a d a b a s a d a e n f o r m u la
a d i f e r e n c i a d e u n j a r d í n , la s a p l i c a c i o n e s W e b d e b e n r io s e s e l m e c a n is m o p r i m a r i o d e la n e c e s id a d d e
d e s e r v i r ( y a d a p t a r s e a ) la s n e c e s i d a d e s d e m á s d e u n c o m u n ic a c ió n ;
ja r d in e r o , L a s s ig u ie n te s c a r a c te r ís tic a s d e W e b A p p s
• o r ie n t a d a a tr a n s a c c io n e s : e l u s u a r io h a c e u n a s o l i
s o n la s q u e c o n d u c e n e l p r o c e s o :
c it u d ( p o r e je m p lo , la r e a liz a c ió n u n p e d id o ) q u e e s
In m e d ia te z . L a s a p lic a c io n e s b a s a d a s e n W e b t ie n e n
c u m p lim e n ta d o p o r la W e b A p p ;
u n a in m e d ia te z [ N O R 9 9 ] q u e n o s e e n c u e n tr a e n o tr o s
• o r ie n t a d o a s e r v ic io s : la a p lic a c ió n p r o p o r c io n a u n
tip o s d e s o ftw a r e . E s d e c ir , e l tie m p o q u e s e ta r d a e n
s e r v ic io a l u s u a r io , p o r e je m p lo , a y u d a a l u s u a r io a
c o m e r c ia liz a r u n s it io W e b c o m p le t o p u e d e s e r c u e s tió n
d e te r m in a r u n p a g o d e h ip o t e c a ;
d e d ía s o s e m a n a s 3. L o s d e s a r r o lla d o r e s d e b e r á n u t i l i
z a r lo s m é t o d o s d e p l a n i f ic a c ió n , a n á lis is , d is e ñ o , im p le - • p o r t a l: la a p lic a c ió n c a n a liz a a l u s u a r io lle v á n d o lo
m e n ta c ió n y c o m p r o b a c ió n q u e se h a y a n a d a p ta d o a a o t r o s c o n te n id o s o s e r v ic io s W e b f u e r a d e l d o m i
p la n if ic a c io n e s a p r e ta d a s e n tie m p o p a r a e l d e s a r r o llo n io d e la a p lic a c ió n d e l p o r ta l;
de W e b A p p s. • a c c e s o a b a s e s d e d a to s : e l u s u a r io c o n s u lt a e n u n a
b a s e d e d a to s g r a n d e y e x tr a e in fo r m a c ió n ;
(w N S E M ^ • a lm a c e n e s d e d a t o s : e l u s u a r io h a c e u n a c o n s u lt a e n
u n a c o le c c ió n d e b a s e s d e d a to s g r a n d e y e x tr a e in f o r
No hay duda de que la Inmediatez o menudo prevalece
m a c ió n .
en el desarrollo de /as WebApps, pero hay que tener
cuidodo, porque el hecho de hocer oigo répldomente L a s c a r a c t e r í s t ic a s y la s c a t e g o r í a s d e s ta c a d a s a n te
no significo tener el privilegio de hacer un trabajo r io r m e n t e e n e s t a s e c c ió n , y la s c a t e g o r í a s d e a p lic a
delngenleríopobre. lo rápido y erróneo raros veces c io n e s r e p r e s e n ta n lo s h e c h o s r e a le s p a r a lo s in g e n ie r o s
tiene un resultado aceptable. d e l a W e b . L a c l a v e e s v i v i r d e n t r o d e la s r e s t r i c c i o n e s
im p u e s t a s p o r la s c a r a c t e r í s t ic a s a n t e r io r e s y a u n a s í
S e g u r i d a d . D a d o q u e la s W e b A p p s e s t á n d i s p o n i b l e s te n e r é x it o e n la e la b o r a c ió n d e la W e b A p p .
a tr a v é s d e l a c c e s o p o r r e d , e s d i f í c il, s i n o im p o s ib le ,
li m it a r la p o b la c ió n d e u s u a r io s f in a le s q u e p u e d e n a c c e
d e r a la a p lic a c ió n . C o n o b je t o d e p r o te g e r e l c o n t e n i 29.1.1. A tr ib u to s d e c a l i d a d
d o c o n fid e n c ia l y d e p r o p o r c io n a r fo r m a s s e g u ra s d e T o d a s la s p e r s o n a s q u e h a y a n n a v e g a d o a l g u n a v e z p o r l a
www.FreeLibros.org
tr a n s m is ió n d e d a to s , d e b e r á n im p le m e n ta r s e fu e r te s W e b o h a y a n u t iliz a d o u n a in t r a n e t d e u n a c o m p a ñ í a p u e -
523
IN GE NIE RÍ A DEL S O F TW A RE . UN E N F O Q U E PR AC T I C O
E n r e a l i d a d , t o d a s la s c a r a c t e r í s t i c a s g e n e r a l e s d e l a
c a l i d a d d e l s o f t w a r e e s t u d i a d a s e n l o s C a p í t u l o s 8, 1 9
y 2 4 s e a p l i c a n t a m b i é n a la s W e b A p p s . S i n e m b a r g o , Seguridad
la s c a r a c t e r í s t i c a s m á s r e l e v a n t e s — u s a b i l i d a d , f i a b i l i
S i e n u n a r e d r e s id e u n a W e b A p p , é s ta e s tá a b ie r t a a u n
d a d , e f ic i e n c ia y c a p a c id a d d e m a n t e n im ie n t o - p r o
a c c e s o s in a u to r iz a c ió n . E n a lg u n o s c a s o s , h a s id o e l p e r
p o r c io n a n u n a b a s e Ú t il p a r a e v a lu a r la c a lid a d d e lo s
s o n a l i n t e r n o e l q u e h a i n t e n t a d o a c c e d e r s i n a u t o r i z a c ió n .
s is t e m a s b a s a d o s e n W e b .
E n o t r o s c a s o s , in t r u s o s ( h a c k e r s ) p u e d e n in t e n t a r a c c e
O ls in a y s u s c o la b o r a d o r e s [ O S L 9 9 ] h a n p r e p a r a d o
d e r p o r d e p o r t e , p o r s a c a r p r o v e c h o o c o n in t e n c io n e s m á s
u n « á r b o l d e r e q u is it o s d e c a lid a d » q u e id e n t if ic a u n
m a lic io s a s . M e d ia n t e la in f r a e s t r u c t u r a d e r e d s e p r o p o r
c o n ju n t o d e a t r ib u to s q u e c o n d u c e a W e b A p p s d e a lta
c io n a u n a v a r ie d a d d e m e d id a s d e s e g u r id a d ,ta le s c o m o
c a lid a d . L a F ig u r a 2 9 .1 r e s u m e s u t r a b a jo .
e n c r ip t a c ió n , c o r ta f u e g o s y o tra s . U n e s tu d io a m p lio d e
C a p ac id ad d e c o m p re n s ió n d e l sitio glo b al e s te te m a q u e d a fu e r a d e l á m b it o d e e s te lib r o . P a ra m á s
S ev ic io s d e a y u d a y re a lim e n ta c ió n e n linea i n f o r m a c i ó n , e l l e c t o r in t e r e s a d o p u e d e c o n s u l t a r e n e s ta
U s ab ilid ad
S ervicio s especiales b ib lio g r a fía : [ A T K 9 7 ] , [ K A E 9 9 ] y [B R E 9 9 ],
www.FreeLibros.org
l l o b a s a d o e n c o m p o n e n t e s , la s e g u r id a d y lo s e s tá n d a r e s s o n a liz a d a s s e d e f in e e n la in f o r m a c ió n t r a n s m it id a a l
d e In te r n e t. U n in g e n ie r o W e b d e b e r á e s ta r f a m ilia r iz a d o s it io d e l c lie n te . P a r a m á s in f o r m a c ió n s o b r e X M L , e l
c o n la s t r e s p a r a c o n s t r u i r W e b A p p s d e a l t a c a l i d a d . le c t o r in t e r e s a d o d e b e r á c o n s u lt a r [ P A R 9 9 ] y [S T L 9 9 ] ,
524
CAPÍTULO 39 I N G E N I E R Í A WE B
Las características de sistemas y aplicaciones basados suelen ser controladas por el contenido haciendo hin
en Web influyen enormem ente en el proceso de IWeb. capié en la estética, es probable que las actividades de
La inm ediatez y la evolución continúan dictando un desarrollo paralelas se planifiquen dentro del proceso
m odelo de proceso incremental e interactivo (Capítulo IWeb y necesiten un equipo de personas tanto técnicas
2) que elabora versiones de WebApps muy rápidam en com o no (por ejem plo, redactores publicitarios, dise
te. La naturaleza intensiva de red de las aplicaciones en ñadores gráficos).
este dominio sugiere una población de usuarios diver
sa (exigiendo especialm ente la obtención y m odelado
de requisitos), y una arquitectura de aplicación que pue CLAVE
da ser altamente especializada (realizando de esta mane La IWeb demanda un proceso de software
ra exigencias en el diseño). D ado que las W ebApps incremental y evolutivo
A medida que la evolución de las WebApps pasa de uti tos técnicos para la WebApp e identifica los elementos
lizar recursos estáticos de inform ación controlada por del contenido que se van a incorporar. También se defi
el contenido a utilizar entornos de aplicaciones diná nen los requisitos del diseño gráfico (estética).
micos controlados por el usuario, cada vez es más impor La actividad de ingeniería incorpora dos tareas para
tante la necesidad de aplicar una gestión sólida y unos lelas, como se muestra a la derecha en la Figura 29.2. El
principios de ingeniería. Para conseguir esto, es nece diseño del contenido y la producción son tareas lleva
sario desarrollar un marco de trabajo IWeb que acom das a cabo por personas no técnicas del equipo IWeb. El
pañe a un m odelo de proceso eficaz, popularizado por objetivo de estas tareas es diseñar, producir, y/o adqui
las actividades4 del marco de trabajo y por las tareas de rir todo el contenido de texto, gráfico y vídeo que se
ingeniería. En la Figura 29.2 se sugiere un m odelo de vayan a integrar en la WebApp. Al mismo tiempo, se lle
proceso para IWeb. va a cabo un conjunto de tareas de diseño (Sección 29.5)
El proceso IWeb comienza con Yáformulación — acti La generación de páginas es una actividad de cons
vidad que identifica las metas y los objetivos de la WebApp trucción que hace mucho uso de las herramientas auto
y establece el ámbito del primer incremento— . matizadas para la creación de la WebApp. El contenido
definido en la actividad de ingeniería se fusiona con los
diseños arquitectónicos, de navegación y de la interfaz para
elaborar páginas Web ejecutables en HTML, XM L y otros
[ P la n i f ic a c ió n ! lenguajes orientados a procesos (por ejemplo, Java). Duran
te esta actividad también se lleva a cabo la integración con
el software intermedio (Middleware) de componentes (es
decir, CORBA, DCOM o JavaBeans). Las pruebas ejer
citan la navegación, intentan descubrir los errores de las
applets, guiones y formularios, y ayuda a asegurar que la
WebApp funcionará correctamente en diferentes entornos
(por ejemplo, con diferentes navegadores).
www.FreeLibros.org
4 Retom ando el estudio de los m odelos de proceso del Capítulo 2, las
actividades del m arco de trabajo se realizan para todas las WebApps,
m ientras que las tareas se adaptan al tam año y a la complejidad de
la WebApp que se va a desarrollar.
525
IN GE NI E RÍ A DEL S O F T W A R E . UN E N F O Q U E P R Á C T I C O
c lie n te . E s e n e s te p u n t o e n d o n d e s e s o lic it a n c a m b io s s e i n t e g r a n e n l a s i g u i e n t e r u t a m e d i a n t e e l f l u j o in c r e -
( tie n e n lu g a r a m p lia c io n e s d e l á m b ito ) . E s to s c a m b io s m e n ta l d e l p ro c e s o .
H I ¿Qué preguntas E n e l c o n te n id o d e la W e b H o g a r S e g u r o In c .c o m ,u n a
W se deberían hacer m e ta in f o r m a t iv a p o d r í a s e r la s ig u ie n te :
para formular el problema?
El sitio proporcionará a los usuarios especificacionesde un
producto detallado, com o descripción técnica, instruccionesde
L a r e s p u e s ta a e s ta s p r e g u n ta s d e b e r á s e r d e lo m ás instalación e inform ación de precios.
s u c in to p o s ib le . P o r e je m p lo , s u p o n g a m o s q u e e l f a b r i
E l e x a m e n d e la s r e s p u e s t a s a n t e r io r e s lle v a r á a
c a n t e d e s is t e m a s d e s e g u r id a d e n e l h o g a r h a d e c id id o
p o d e r s e a p lic a r la a f ir m a c ió n d e m e t a s ig u ie n te :
e s ta b le c e r u n s it io W e b d e c o m e r c io e le c t r ó n ic o p a r a
v e n d e r s u s p r o d u c t o s d ir e c t a m e n t e a lo s c o n s u m id o r e s . H o g arS eg u ro In c.co m c onsultará al cliente só b re la ins
U n a fr a s e q u e d e s c r ib ie r a la m o t iv a c ió n d e la W e b A p p tala ció n (es decir, so b re la c asa, oficina/alm acén minoris
ta ) q u e se v a a p ro te g e r, y d a rá reco m en d acio n es per
p o d r í a s e r la s ig u ie n te :
so nalizadas so b re el p ro ducto y la c o n fig u ració n que se va
H ogarSeguroInc.com 5 perm itirá a los consum idores confi utilizar.
gurar y com prar todos los com ponentes necesarios para insta
lar un sistem a de seguridad en casa o en su com ercio. U n a v e z q u e h a n i d e n t i f i c a d o t o d a s la s m e t a s a p l i
Es im p o r t a n t e d e s ta c a r q u e e n e s ta fr a s e n o s e h a p r o c a b l e s e i n f o r m a t i v a s s e d e s a r r o l l a e l p e r f i l d e l c lie n t e .
p o r c io n a d o n i n g ú n d e ta lle . E l o b je t iv o e s d e lim it a r la E l p e r f i l d e l u s u a r io r e c o g e « la s c a r a c te r ís tic a s r e le
in t e n c ió n g lo b a l d e l s it io W e b . v a n t e s d e lo s u s u a r io s p o t e n c ia le s in c lu y e n d o a n te c e
D e s p u é s d e d is c u t ir c o n o tr o s p r o p ie ta r io s d e H o g a r - d e n te s , c o n o c im ie n t o , p r e fe r e n c ia s e in c lu s o m á s »
S e g u r o I n c ., la s e g u n d a p r e g u n ta se p o d r ía c o n te s ta r d e [ G N A 9 9 ] , E n e l c a s o d e H o g a r S e g u r o In c .c o m , e l p e r
la s ig u ie n te m a n e r a : f i l d e u s u a r i o i d e n t i f i c a r á la s c a r a c t e r í s t i c a s d e un com
p r a d o r t í p i c o d e s is t e m a s d e s e g u r id a d ( e s ta in f o r m a c ió n
H ogarSeguroInc.com nos perm itirá vender directam ente a
s e r í a p r o p o r c i o n a d a p o r e l d e p a r t a m e n t o d e m a r k e t in g
los consum idores, elim inando por tanto los costes de interm e
diarios, y m ejorando de esta m anera los m árgenes de benefi d e H o g a rS e g u ro In c .c o m ).
cios. Tam bién nos perm itirá aum entar las ventas en un 25 por U n a v e z q u e s e h a n d e s a r r o l l a d o la s m e t a s y lo s p e r
100 por encim a de las ventas anuales y nos perm itirá penetrar f ile s d e u s u a r io s , la a c t iv id a d d e f o r m u la c ió n s e c e n tra en
www.FreeLibros.org
5 Hogarseguro ya se ha utilizado anteriorm ente com o ejem plo en el
libro.
526
C A P I T U L O 29 I NGENI ERI A WEB
I
te, indicar el grado de integración que se espera para la t e * gjmpion mejor
WebApp. Es decir, a m enudo es necesario integrar los ^«ÉpHofnenteydefofmfl
sistemas de inform ación existentes (por ejemplo, la apli ¡(flanes, y no Qtravés de usuarios
cación de base de datos existente) en un planteamiento ' e frRfdeodos. La habilidad
basado en Web. En este punto se tienen en consideración •¿cferttentes dilectamente
también los temas de conectividad. ! v ? >. « a infraestructura
l&hoámiento.
29.4.2. A n á lis is
Los conceptos y principios que se trataron para el aná
lisis de los requisitos del software (Capítulo 11) se apli de procesamiento. Aquí se realiza una descripción deta
can sin revisión en la actividad de análisis de ingeniería llada de todas las funciones y operaciones.
Web. Para crear un m odelo de análisis completo para la
W ebApp se elabora el ámbito definido durante la acti
Análisis de la configuración. Se efectúa una des
cripción detallada del entorno y de la infraestructura en
vidad de formulación. Durante la IWeb se realizan cua
donde reside la WebApp. La W ebApp puede residir en
tro tipos de análisis diferentes:
Internet, en una intranet o en una Extranet. Además, se
Análisis del contenido. Se trata de la identificación deberá identificar la infraestructura (es decir, la infra
del espectro com pleto de contenido que se va a p ro estructura de los componentes y el grado de utilización
porcionar. En el contenido se incluyen datos de texto, de la base de datos para generar el contenido) de la
gráficos, imágenes, vídeo y sonido. Para identificar y W ebApp.
describir cada uno de los objetos de datos que se van a A un cu an d o se reco m ien d a una esp ecificació n
utilizar dentro de la WebApp se puede utilizar el m ode detallada de los requisitos para W ebA pps grandes y
lado de datos (Capítulo 12). com plejas, tales docum entos no son los usuales. Se
Análisis de la interacción. Se trata de la descrip puede decir que la continua evolución de los requisi
ción detallada de la interacción del usuario y la tos de la W ebA pp puede hacer que cualquier do cu
WebApp. Para proporcionar descripciones detalladas m ento se quede obsoleto antes de finalizarse. Aunque
de esta interacción se pueden desarrollar casos prácti se puede decir que esto sucede de verdad, es necesa
cos (Capítulo 11). rio definir un m odelo de análisis que pueda fu n cio
n ar com o fu n d a m e n to de la siguiente activ id ad de
Análisis funcional. Los escenarios de utilización
diseño. Como mínimo, la inform ación recogida duran
(casos de uso) creados com o parte del análisis de inte
te las cuatro tareas de análisis anteriores deberá ser
racción definen las operaciones que se aplicarán en el
rev isad a, m o d ificad a a p etició n , y org an izad a para
contenido de la WebApp e im plicarán otras funciones
form ar un docum ento que pueda pasarse a los d ise
ñadores de W ebA pps
La naturaleza de inmediatez de las aplicaciones basadas en Con objeto de realizar un diseño eficaz basado en
Web unida a la presión de evolucionar continuamente obli W eb, el ingeniero deberá trabajar reutilizando cuatro
ga a que un ingenieroestablezcaun diseño que resuelva el elementos técnicos [NAN98]:
problema comercial inmediato, mientras que al mismo tiem Principios y métodos de diseño.Es im portante des
po obliga a definir'una arquitectura de aplicación que ten tacar que los conceptos y principios del diseño estu
ga la habilidad de evolucionar rápidamente con el tiempo. diados en el Capítulo 13 se aplican a todas las WebApps.
El problema, desde luego, es que resolver (rápidamente) el La m odularidad eficaz (exhibida con una cohesión alta
problema inmediato puede dar como resultado compromi y con un acoplam ientobajo), la elaboración paso a paso,
sos que afectan a la habilidad que tiene la aplicación de evo y cualquier otra heurística de diseño del software con
lucionar con el paso del tiempo. ducirá a sistemas y aplicaciones basados en W eb m ás
fáciles de adaptar, m ejorar, probar y utilizar.
Cuando se crean aplicaciones Web se pueden reutili-
Referencia m b zar los métodos de diseño que se utilizan para los siste
Uno fuente valiosa de líneas generóles prácticos
m as orientados a objetos estudiados anteriormente en
www.FreeLibros.org
poro el diseño de sitios Web se puede encontrar en este libro. La hiperm edia define «objetos» que interac-
w w w .ibiii.com /ibm /easy/design/low er/ túan mediante un protocolo de com unicación algo sim i
f060100.htm l lar a la mensajería. De hecho, la notación de diagramas
527
I N GE NI E RÍ A DEL S O F TW A R E . UN EN F O Q U E P R A C T I C O
29.5.1. D is e ñ o a r q u ite c tó n ic o
E l d is e ñ o a r q u it e c t ó n i c o p a r a lo s s is t e m a s y a p lic a c io
n e s b a s a d o s e n W e b s e c e n t r a e n la d e f in ic i ó n d e la
e s t r u c t u r a g l o b a l h i p e r m e d i a p a r a l a W e b A p p , y e n la
a p lic a c ió n d e la s c o n f ig u r a c io n e s d e d is e ñ o y p la n t illa s
c o n s t r u c t i v a s p a r a p o p u l a r i z a r l a e s t r u c t u r a ( y l o g r a r la
r e u t i l i z a c i ó n ) . U n a a c t i v i d a d p a r a l e l a , l l a m a d a d is e ñ o
R eglas de oro. L a s a p l i c a c i o n e s h i p e r m e d i a i n t e d e l c o n t e n id o 6, d e r iv a la e s t r u c t u r a y e l f o r m a t o d e ta
r a c tiv a s ( W e b A p p s ) lle v a n c o n s tr u y é n d o s e y a h a c e u n a lla d o s d e l c o n te n id o d e la in f o r m a c ió n q u e s e p re s e n ta
d é c a d a . D u r a n t e e s e t ie m p o , lo s d is e ñ a d o r e s h a n d e s a r á c o m o p a r te d e la W e b A p p .
r r o lla d o u n c o n ju n t o d e h e u r ís tic a s d e d is e ñ o ( r e g la s d e
o r o ) q u e se p o d r á n v o lv e r a a p lic a r d u r a n te e l d is e ñ o d e 0 9 N S E IO 0 .
a p lic a c io n e s n u e v a s .
la moyorío de las estructuras de las WebApps
Configuraciones de diseño. C o m o s e h a d e s t a c a d o simplemente aparecen. Evite esto trampa. Establezco
a n t e r io r m e n t e e n e s te l i b r o , la s c o n f ig u r a c io n e s d e d is e el diseña estructural de la WebApp explícitamente
ñ o s o n u n e n fo q u e g e n é r ic o p a ra r e s o lv e r p e q u e ñ o s p r o antes de em pezara desarrollar los detalles de la pógino
b le m a s q u e s e p u e d e n a d a p ta r a u n a v a r ie d a d m á s a m p lia y de la navegación.
d e p r o b le m a s e s p e c í f ic o s . E n e l c o n t e x t o d e la s
W e b A p p s , la s c o n f ig u r a c io n e s d e d is e ñ o s e p u e d e n a p l i Estructuras de las W ebApps
c a r n o s o lo a lo s e le m e n to s f u n c io n a le s d e u n a a p lic a L a e s t r u c t u r a a r q u i t e c t ó n i c a g l o b a l v a u n i d a a la s m e t a s
c i ó n , s i n o t a m b i é n a los d o c u m e n t o s , g r á f i c o s y e s t é t i c a e s ta b le c id a s p a r a u n a W e b A p p , a l c o n t e n id o q u e s e v a
g e n e ra l d e u n s itio W e b . a p r e s e n ta r , a lo s u s u a r io s q u e la v is it a r á n y a la f ilo s o
Plantillas. L a s p l a n t i l l a s s e p u e d e n u t i l i z a r p a r a p r o f í a d e n a v e g a c i ó n ( S e c c i ó n 2 9 . 5 . 3 ) e s t a b l e c i d o s . Cuan
p o r c io n a r u n m a r c o d e tr a b a jo e s q u e m á tic o d e c u a lq u ie r d o e l e n c a r g a d o d e la a r q u it e c t u r a v a a r e a liz a r e l d is e ñ o
c o n f ig u r a c ió n d e d is e ñ o o d o c u m e n to a u t ili z a r d e n tr o d e u n a W e b A p p típ ic a p u e d e e le g ir e n tr e c u a tr o fu e n
d e u n a W e b A p p . N a n a r d y K a h n [ N A N 9 8 ] d e s c r ib e n te s d ife r e n te s [P O W 9 8 ] ,
e s te e le m e n t o d e d is e ñ o r e u t iliz a b le d e la s ig u ie n t e
m a n e ra : ¿Cuáles son las opciones
L a s e s t r u c t u r a s lin e a le s ( F ig . 2 9 . 3 ) a p a r e c e n c u a n
d o e s c o m ú n la s u c e s ió n p r e d e c ib le d e in te r a c c io n e s
t
( c o n a lg u n a v a r ia c ió n o d iv e r s if ic a c ió n ) . U n e je m p lo
c lá s ic o p o d r í a s e r la p r e s e n ta c ió n d e u n m a n u a l d e u s u a
r i o e n la q u e la s p á g in a s d e in f o r m a c ió n s e p r e s e n ta n
c o n g r á f i c o s r e l a c i o n a d o s , v í d e o s c o r t o s o s o n i d o solo
t
d e s p u é s d e h a b e r p r e s e n ta d o u n p r e r r e q u is ito . L a s u c e
s ió n d e p r e s e n ta c ió n d e l c o n t e n id o q u e d a p r e d e f in id a y
s e p u e d e d e c ir q u e , g e n e r a lm e n t e , e s lin e a l. O t r o e je m
Lineal con flujo Lineal p lo p o d r í a s e r la s u c e s ió n d e u n a e n tr a d a d e p e d id o d e
Lineal
opcional con desviaciones
u n p r o d u c to d o n d e s e te n g a q u e e s p e c if ic a r la in f o r m a
F IG U R A 2 9 .3 . Estructuras lineales. c ió n e s p e c í f ic a e n u n o r d e n e s p e c íf ic o . E n ta le s c a s o s ,
www.FreeLibros.org
6 El diseño del contenido es una actividad no técnica que llevan a
cabo redactores publicitarios, artistas, diseñadores gráficos y otros
que generan el contenido de las WebApps. Para más información,
véase ID1N9&1 y 1LYN99L
m
CAPÍTULO 29 I NGENI ERI A WEB
las estructuras que se muestran en la Figura 29.3 son las dél extremo izquierdode lajerarquía puede tener enlaces
adecuadas. A medida que el contenido y el procesa de hipertexto que lleven al contenido que existe enmedio
miento crecen en complicación, el flujo puramente line de la rama derechade la estructura. Sin embargo, debería
al que se muestra a la derecha da como resultado de destacarse que aunque dicha rama permita una nave
estructuras lineales más sofisticadas en las que se pue gación rápida por el contenidode la WebApp, puede ori
de invocar el contenido alternativo, o en donde tiene ginar también confusiónpor parte del usuario.
lugar una desviación para adquirir un contenido com
plementario (la estructura se muestra a la derecha en la
Fig. 29.3).
El acoplamiento es un temo engañoso poro
lo orquitecturo de los WebApps. Por un lodo, facilita
lo navegación. Pero, por otro, también puede hacer
que el usuario «se pierdo». Norehogo conexiones
horizontales dentrode unojerorquío.
F I G U R A 2 9 . 4 . E s t r u c t u r a r e t ic u la r .
Las estru ctu ras reticulares (Fig. 29.4) sonuna opción
arquitectónica que puede aplicarse cuando el contenido
de la WebApp puede ser organizado categóricamenteen
dos dimensiones (omás). Por ejemplo, consideremosuna F I G U R A 2 9 . 5 . E s t r u c t u r a s je r á r q u ic a s .
situaciónen la que un sitio de comercio electrónicoven
de palos de golf. La dimensiónhorizontal de la retícula Una estru ctu ra en r e d o de «web pura» (Fig. 29.6)
representa el tipo de palo en venta (por ejemplo, made se asemeja en muchos aspectos a la arquitectura en evo
ras, hierros, wedges, putters). La dimensiónvertical repre lución para los sistemas orientados a objetos. Los com
senta la ofertaproporcionadapor los fabricantesde palos ponentes arquitectónicos (en este caso las páginas Web)
de golf. De aquí que un usuariopueda navegar por la retí se diseñan de forma que pueden pasar el control
cula horizontalmente para encontrar la columna de los (mediante enlaces de hipertexto) a otros componentes
putters, y recorrer la columna para examinar las ofertas del sistema. Este enfoque permite una flexibilidad de
proporcionadas por los vendedores de putters. Esta arqui navegación considerable, aun cuando puede resultar
tectura WebApp es de utilidad solo cuando se encuentra confuso para el usuario.
un contenido muy regular [POW98].
< Ía v e
Las estructuras reticulares ír a o r a n ben cuando
el conendo puede organizarse caegóricam srte
en dos dimensiones o más.
www.FreeLibros.org
medio de la ramificación de hipertexto) el flujo de con
trol en horizontal atravesando las ramas verticales de la Las estructuras arquitectónicas estudiadas en los
estructura. Por tanto, el contenidopresentado en la rama párrafos anteriores sepueden combinarpara formarestruc-
529
IN GE NI ER IA DEL S O F TW A R E . UN E N F O Q U E P R A C T I C O
tu r a s c o m p u e s ta s . L a a r q u it e c t u r a g lo b a l d e u n a W e b A p p • T a m iz : u n a c o n f i g u r a c i ó n q u e v a g u ia n d o a l u s u a r io
p u e d e s e r je r á r q u ic a , p e r o p a r te d e la e s tr u c tu r a p u e d e a t r a v é s d e u n a s e r ie d e o p c io n e s ( d e c is io n e s ) c o n e l
e x h i b ir c a r a c te r ís tic a s lin e a le s , m ie n t r a s q u e o t r a p a r te d e f i n d e lle v a r a l u s u a r io a u n c o n t e n id o e s p e c íf ic o e
la a r q u it e c t u r a p u e d e c o n fe c c io n a r s e e n r e d . L a m e t a d e l in d ic a d o p o r la s u c e s ió n d e o p c io n e s e le g id a s o d e c i
d is e ñ a d o r a r q u it e c t ó n ic o e s h a c e r c o r r e s p o n d e r í a e s tr u c s io n e s to m a d a s .
t u r a d e la W e b A p p c o n e l c o n t e n id o q u e s e v a a p r e s e n • V e c in d a r io : u n a c o n f ig u r a c ió n q u e a b a r c a u n m a r c o
t a r y c o n e l p r o c e s a m ie n to q u e s e v a a lle v a r a c a b o . d e n a v e g a c ió n u n if o r m e p o r to d a s la p á g in a s W e b
Patrones de diseño p a r a p e r m it ir q u e u n u s u a r io te n g a u n a g u ía d e n a v e
C o m o s e h a d e s ta c a d o a n te r io r m e n te e n e s te m is m o g a c ió n c o n s e c u e n te in d e p e n d ie n t e m e n t e d e la lo c a
li b r o , lo s p a tr o n e s d e d is e ñ o s o n u n b u e n m é to d o p a r a liz a c ió n d e la W e b A p p .
r e s o lv e r p e q u e ñ o s p r o b le m a s q u e p u e d e n a d a p ta r s e a L a s c o n fig u ra c io n e s d e d is e ñ o d e h ip e r te x to q u e se
u n a v a r ie d a d m u c h o m á s a m p lia d e p r o b le m a s e s p e c í h a n d e s c r ito a n t e r io r m e n t e s e p u e d e n r e u t iliz a r a m e d i
f i c o s . E n e l c o n t e x t o d e l o s s is t e m a s y a p l i c a c i o n e s b a s a - d a q u e e l c o n te n id o v a a d q u ir ie n d o e l f o r m a t o q u e p e r
d o s e n W e b , lo s p a tr o n e s d e d is e ñ o p u e d e n a p lic a r s e e n m i t ir á la n a v e g a c ió n a tr a v é s d e u n a W e b A p p .
e l n iv e l je r á r q u ic o , n iv e l d e c o m p o n e n te s y n iv e l d e
h ip e r t e x t o ( d e n a v e g a c ió n ) .
29.5.2. D is e ñ o d e n a v e g a c ió n
cam m aga U n a v e z e s ta b le c id a u n a a r q u it e c t u r a d e W e b A p p , u n a
B i los Copítulos 14 y 22 se puede encontrar más v e z id e n t if ic a d o s lo s c o m p o n e n t e s ( p á g in a s , g u io n e s ,
información sobre las configuradonesde diseño. a p p le t s y o t r a s f u n c io n e s d e p r o c e s o ) d e la a r q u it e c t u
r a , e l d i s e ñ a d o r d e b e r á d e f i n i r la s r u t a s d e n a v e g a c i ó n
C u a n d o d e n tr o d e u n a W e b A p p s e r e q u ie r e la f u n q u e p e r m it a n a l u s u a r io a c c e d e r a l c o n t e n id o y a lo s s e r
c io n a lid a d d e l p r o c e s o d e d a to s , p u e d e n a p lic a r s e lo s v ic io s d e la W e b A p p . P a r a q u e e l d is e ñ a d o r p u e d a lle
p a tr o n e s d e d is e ñ o a r q u it e c t ó n ic a s a n iv e l d e c o m p o v a r l o a c a b o , d e b e ( 1 ) i d e n t i f i c a r la s e m á n t ic a d e la
n e n te s p ro p u e s ta s p o r [B U S 9 6 ], [ G A M 9 5 ] y o tro s . L o s n a v e g a c ió n p a r a d if e r e n t e s u s u a r io s d e l s it io ; y ( 2 ) d e f i
p a tr o n e s d e d is e ñ o a n iv e l d e h ip e r t e x t o se c e n tr a n e n n i r la m e c á n ic a ( s in t a x is ) p a r a lo g r a r la n a v e g a c ió n .
e l d i s e ñ o d e la s c a r a c t e r í s t i c a s d e n a v e g a c i ó n q u e p e r G e n e r a lm e n te u n a W e b A p p g r a n d e te n d r á u n a v a r ie
m it e n a l u s u a r io m o v e r s e p o r e l c o n te n id o d e la W e b A p p d a d d e r o l e s d e u s u a r i o s d i f e r e n t e s . P o r e j e m p l o , lo s
f á c ilm e n t e . E n t r e m u c h o s d e lo s p a tr o n e s d e d is e ñ o d e r o le s p o d r í a n s e r e l d e v is it a n t e , c lie n t e r e g is t r a d o o
h ip e r t e x t o p r o p u e s to s e n lite r a t u r a s o b r e e s te te m a se c lie n t e p r i v i l e g i a d o . C a d a u n o d e e s to s r o le s s e p u e d e n
e n c u e n t r a n lo s s ig u ie n te s [B E R 9 8 J : a s o c ia r a d if e r e n t e s n iv e le s d e a c c e s o a l c o n t e n id o y d e
• C ic lo : u n a c o n f ig u r a c ió n q u e d e v u e lv e a l u s u a r io a l s e r v ic io s d ife r e n te s . U n v is ita n te p u e d e t e n e r a c c e s o
n o d o d e c o n te n id o v is it a d o a n te r io r m e n te . s ó lo a u n c o n t e n i d o l i m i t a d o , m i e n t r a s q u e u n c lie n te
r e g is t r a d o p u e d e t e n e r a c c e s o a u n a v a r ie d a d m u c h o
m á s a m p lia d e in f o r m a c ió n y d e s e r v ic io s . L a s e m á n
Q f Í ta l t i c a d e la n a v e g a c ió n d e c a d a u n o d e e s to s r o le s s e ría
Coda una de las configuraciones es una iregla d ife r e n te .
•:■..•! de tres portes, y que expresa E l d i s e ñ a d o r d e W e b A p p s c r e a u n a unidad semánti
w a relación entre un cierto contexto, ca de navegación ( U S N ) p a r a c a d a u n a d e la s m e t a s a s o
ira proferto y una soludón. c i a d a s a c a d a u n o d e l o s r o l e s d e u s u a r i o [ G N A 9 9 ] , Por
C M stepiw r A kxaader e j e m p l o , u n c l i e n t e r e g i s t r a d o p u e d e t e n e r s e is m e t a s
d if e r e n t e s , to d a s e lla s c o n u n a c c e s o a in f o r m a c ió n y
• A n illo d e W e b : u n a c o n f ig u r a c ió n q u e im p le m e n ta s e r v i c i o s d i f e r e n t e s . P a r a c a d a m e t a s e c r e a u n a USN.
u n « g r a n c ic l o q u e e n la z a h ip e r t e x t o s e n te r o s v ia G n a h o y L a r c h e r [ G N A 9 9 ] d e s c r i b e n l a U S N d e la
ja n d o p o r u n te m a » [B E R 9 8 ], s ig u ie n te m a n e r a :
• C o n to r n o : u n p a tr ó n q u e a p a re c e c u a n d o v a r io s c ic lo s
L a e stru ctu ra de una U S N se com pone de un conjunto de
in c id e n e n o tr o , p e r m it ie n d o n a v e g a r p o r r u ta s d e f i subestructuras de navegación que llam am os fo rm a s de n a v e
n id a s p o r lo s c ic lo s . g a c i ó n [W oN ( W a v s o f n a v i g a t i n g ) ] . U na W oN representa
• C o n tr a p u n to : u n p a t r ó n q u e a ñ a d e c o m e n ta r io s d e la m ejor form a de n a v eg ació n o ruta para que usuarios con
h ip e r t e x t o in t e r r u m p ie n d o la n a r r a tiv a d e l c o n te n id o ciertos perfiles lo g ren su m eta o su b m eta deseada. Por tan
to , el con cep to de W oN se asocia al con cep to de Perfil de
p a r a p r o p o r c io n a r m á s in f o r m a c ió n o m á s in d a g a c ió n .
U suario.
• M u n d o d e e s p e jo : e l c o n t e n i d o s e p r e s e n t a u t i l i z a n d o
L a estru ctu ra d e una W oN se com pone de un conjunto de
d ife r e n te s h ilo s n a r r a tiv o s , c a d a u n o c o n u n p u n to d e
n o d o s d e n a v e g a c i ó n (N N ) relev an tes conectados a enlaces
v is t a o p e r s p e c t iv a d ife r e n te . P o r e je m p lo , e l c o n te
de navegación, e n tre los que a lgunas v eces se incluyen las
www.FreeLibros.org
n id o q u e d e s c r ib e u n a c o m p u t a d o r a p e r s o n a l p o d r í a U S N s. Eso sig n ifica que las U S N s pueden agregarse para
p e r m it ir a l u s u a r io s e le c c io n a r u n a n a r r a t iv a « t é c fo rm ar una U S N de nivel superior, o anidarse en cualquier
n ic a » o « n o té c n ic a » q u e d e s c r ib a la m á q u in a . nivel de profundidad.
530
CAPÍTULO 29 I NGENI ERÍ A WEB
d o , la s o f is t ic a c ió n d e la s c a p a c id a d e s , lo s s e r v ic io s d e
p r o c e s a m ie n to y e l b e n e f ic io g lo b a l d e la W e b A p p e n
CLAVE s í , u n a in t e r f a z c o n u n d is e ñ o p o b r e d e c e p c io n a r á a l
Una USN se compone de un conjunto de subestructuras u s u a r io p o t e n c ia l y p o d r á d e h e c h o h a c e r q u e e l u s u a
de navegación llamadas ((formas de navegación)) (WoN). r io s e v a y a a c u a lq u ie r o t r o s it io . D a d o e l g r a n v o lu m e n
Una USN representa una meta de navegaciónespecífica d e W e b A p p s q u e c o m p i t e n v i r t u a l m e n t e e n t o d a s la s
para un tipo específico de usuario. á re a s te m á t ic a s , la in t e r f a z d e b e « a r r a s t r a r » in m e d ia t a
m e n te a l u s u a r io p o te n c ia l. N ie ls e n y W a g n e r [ N I E 9 6 ]
D u r a n t e la s e t a p a s i n i c i a l e s d e l d is e ñ o d e n a v e g a s u g ie r e n u n a s c u a n ta s lí n e a s g e n e r a le s y s e n c illa s e n e l
c ió n , p a r a d e te r m in a r u n a o m á s W o N s p a r a c a d a m e ta r e d is e ñ o d e u n a W e b A p p :
d e u s u a r io , s e e v a lu a r á la e s tr u c tu r a d e la W e b A p p • P r o b a b ilid a d d e q u e lo s e r r o r e s d e l s e r v id o r , in c lu s o
( a r q u it e c t u r a y c o m p o n e n te s ) . C o m o s e h a d e s ta c a d o lo s m á s p e q u e ñ o s , h a g a n q u e e l u s u a r io a b a n d o n e e l
a n te r io r m e n te , u n a W o N id e n t if ic a lo s n o d o s d e n a v e s it io W e b y b u s q u e in f o r m a c ió n y s e r v ic io s e n a lg ú n
g a c ió n ( p o r e je m p lo , p á g in a s W e b ) , y e n to n c e s lo s e n la o t r o s itio .
c e s q u e h a c e n p o s ib le la n a v e g a c ió n e n tr e e llo s . L a W o N
e n to n c e s se o r g a n iz a e n U S N s . ¿Cuáles son algunas
A m e d id a q u e a v a n z a e l d is e ñ o , s e v a id e n t if ic a n d o la
m e c á n ic a d e c a d a e n la c e d e n a v e g a c ió n . E n t r e o t r a s
m u c h a s o p c io n e s s e e n c u e n t r a n lo s e n la c e s b a s a d o s e n
te x to , ic o n o s , b o to n e s , in te r r u p to r e s y m e tá f o r a s g r á fic a s .
• de las líneas generales
básicas para el diseño
de la interfaz de un sitio W eb?
E l d i s e ñ a d o r d e b e r á e l e g i r l o s e n la c e s d e n a v e g a c i ó n a d e
L a v e lo c id a d d e le c t u r a d e l m o n it o r d e u n a c o m p u
c u a d o s p a r a e l c o n te n id o y c o n s e c u e n te s c o n la h e u r ís ti
ta d o r a e s a p r o x im a d a m e n te u n 2 5 p o r 1 0 0 m á s le n to
c a q u e c o n d u c e a l d is e ñ o d e u n a in t e r f a z d e a lta c a lid a d .
q u e le e r u n a c o p ia im p r e s a . P o r ta n to , n o h a y q u e o b l i
A d e m á s d e e l e g i r la m e c á n ic a d e n a v e g a c ió n , e l d is e
g a r a l u s u a r io a le e r c a n tid a d e s v o lu m in o s a s d e te x t o ,
ñ a d o r t a m b i é n d e b e r á e s t a b l e c e r la s c o n v e n c i o n e s y a y u
p a r t ic u la r m e n t e c u a n d o e l t e x t o e x p lic a la o p e r a c ió n
d a s a d e c u a d a s . P o r e je m p lo , lo s ic o n o s y lo s e n la c e s
d e la W e b A p p o a y u d a a n a v e g a r p o r la re d .
g r á fic o s d e b e r á n te n e r u n a s p e c to « c lic k a b le ( c a p a c id a d
d e a c c e d e r s e ) » c o n lo s b o r d e s b is e la d o s , y d a r a s í u n a E v it e lo s s í m b o lo s « b a jo c o n s t r u c c ió n » — le v a n ta n
im a g e n e n tr e s d im e n s io n e s . L a r e a lim e n t a c ió n v is u a l e x p e c t a c ió n y p r o v o c a n u n e n la c e in n e c e s a r io q u e
o d e s o n id o se d e b e rá d is e ñ a r p a r a p r o p o r c io n a r a l u s u a s e g u ra m e n te s e a d e c e p c io n a n t e - .
r io u n a in d ic a c ió n d e q u e se h a e le g id o u n a o p c ió n d e L o s u s u a r io s p r e f ie r e n n o t e n e r q u e r e c o r r e r la p a n
n a v e g a c ió n . P a r a l a n a v e g a c i ó n b a s a d a e n t e x t o , s e d e b e t a lla . D e n t r o d e la s d im e n s io n e s n o r m a le s d e u n a
r á u t ili z a r e l c o lo r q u e in d ic a lo s e n la c e s d e n a v e g a c ió n v e n ta n a d e l n a v e g a d o r se d e b e rá in c lu ir in fo r m a c ió n
y p r o p o r c io n a r u n a in d ic a c ió n d e lo s e n la c e s p o r lo s q u e im p o r t a n t e .
se h a n a v e g a d o . E s ta s s o n s o lo u n a s p o c a s c o n v e n c io
L o s m e n ú s d e n a v e g a c i ó n y la s b a r r a s d e c a b e c e r a s e
n e s d e la s d o c e n a s q u e h a c e n q u e l a n a v e g a c i ó n p o r l a
d e b e rá n d is e ñ a r c o n s e c u e n te m e n te y d e b e r á n e s ta r
r e d s e a a g r a d a b l e . A d e m á s d e la s c o n v e n c i o n e s , e n e s t e
d i s p o n i b l e s e n t o d a s la s p á g i n a s a la s q u e el u s u a r i o
p u n to ta m b ié n s e d e b e r á n d is e ñ a r a y u d a s d e n a v e g a c ió n
t e n g a a c c e s o . E l d i s e ñ o n o d e b e r á d e p e n d e r d e la s f u n
t a le s c o m o m a p a s d e s i t i o s , t a b l a s d e c o n t e n i d o s , m e c a
c io n e s d e l n a v e g a d o r p a r a a y u d a r e n la n a v e g a c ió n .
n is m o s d e b ú s q u e d a y s e r v ic io s d in á m ic o s d e a y u d a
L a e s té t ic a n u n c a d e b e r á s u s t it u ir la f u n c io n a lid a d .
P o r e je m p lo , u n b o t ó n s e n c illo p o d r ía s e r u n a o p c ió n
29.5.3. D is e ñ o d e l a in te rfa z d e n a v e g a c ió n m e jo r q u e u n a im a g e n o ic o n o e s té
L o s c o n c e p to s , p r in c ip io s y m é to d o s d e d is e ñ o s d e in t e r tic a m e n te a g r a d a b le s , p e r o v a g o s c u y a in t e n c ió n n o
fa z q u e se p r e s e n ta ro n e n e l C a p ítu lo 1 5 s o n to d o s a p li e s m u y c la r a .
c a b le s a l d is e ñ o d e in t e r f a c e s d e u s u a r io p a r a W e b A p p s .
S i n e m b a r g o , la s c a r a c t e r í s t i c a s e s p e c i a l e s d e l o s s i s t e
m a s y a p lic a c io n e s W e b r e q u ie r e n o tr a s c o n s id e r a c io
n e s a d ic io n a le s . Referencia
Uno de los mejores grupos de recursosde usabilidod
de la Web ha sido recogido por el Grupo de Usabilidod,
Q cíH a : y se puede encontrar en la dirección
’tiijisU flÉ B tienen poca paciencia con los sitios w w w.usability.com/umijinks.htm
| ' r finen un diseño pobre
m É MMsM y A m ito Wagner L a s o p c io n e s d e n a v e g a c ió n d e b e r á n s e r o b v ia s ,
www.FreeLibros.org
in c lu s o p a r a e l u s u a r io c a s u a l. E l u s u a r io d e b e r á b u s
L a in t e r f a z d e u s u a r io d e u n a W e b A p p e s la « p r im e r a c a r la p a n t a lla p a r a d e t e r m in a r c ó m o e n la z a r c o n o t r o
im p r e s ió n » . In d e p e n d ie n t e m e n t e d e l v a lo r d e l c o n t e n i- c o n t e n id o o s e r v ic io .
531
I N G E N IE RÍ A DEL S OFT W ARE . UN E N F O Q U E P R A C T I C O
U na interfaz bien d iseñ ad a m ejora la percepción de las in te rfa c e s W ebA pp de u su a rio está fuera
del contenido o de los servicios del usuario que p ro del ám bito de este libro. L os lecto res interesados
p o rcio n a el sitio Web. N o tiene que ser n e c e sa ria pu ed en c o n su lta r [S A N 96], [F L E 98], [ROS98], o
m ente deslum brante, pero deberá estar siem pre bien [LY N 99] e n tre los c ien to s de o fe rta s que existen
e stru c tu ra d a y erg o n ó m ica. U n e stu d io c o m p le to com o guía.
>ADAS EN WEB
En el Capítulo 17, se destacó que las pruebas son el pro ces de navegación (Sección 29.5.2) son revisados
ceso de ejercitar el software con la intención de encon para asegurar su correspondencia con los especifi
trar (y por últim o corregir) los errores. Esta fdosofía cados en cada USN del rol de usuario.
fúndamentalno se cambiarápara el caso de las WebApps. 3. Se aplican p ru eb a s de unidad a los componentes de
De hecho, dado que los sistemas y aplicaciones basados proceso seleccionados y las p á ginas Web. Cuando
en Web residen en una red e interoperan con muchos sis lo que se tiene en consideración es el tem a de las
temas operativos diferentes, navegadores, plataformas de W ebApps el concepto de unidad cambia. Cada una
hardware, y protocolos de com unicación,la búsqueda de de las páginas Web encapsulará el contenido, los enla
errores representa un reto significativopara los ingenie ces de navegación y los elementos de procesamiento
ros Web. (formularios, guiones, applets). No siempre es posi
¿Qué pasos hay que seguir ble o práctico com probar cada una de las caracterís
www.FreeLibros.org
ejecutables ayudan a descubrir errores en la nave 5. La WebApp ensam blada se p ru eb a p a ra conseguir
gación (por ejemplo, un caso en donde el usuario no una fu n cio n a lid a d global y un contenido. Al igual
pueda leer un nodo de navegación). Además, los enla que la validación convencional, la validación de los
532
C A P Í T U L O 29 I NGENI ERI A WEB
sistemas y aplicaciones basados en Web se centra en cubrir los errores asociados con todas y cada una de
acciones visibles del usuario y en salidas reconoci las configuraciones posibles.
bles para el usuario que procedan del sistema. Para 7. L a W ebAppse com prueba con unapoblación de usua-
ayudar en la derivación de las pruebas de validación, riosfi nales controlada y m onitorizada. Se selecciona
las pruebas deberán basarse en casos prácticos. El un grupo de usuarios que abarque todos los roles posi
caso práctico proporciona un escenario con una pro bles de usuarios. La WebApp se pone en práctica con
babilidad alta de descubrir errores en los requisitos estos usuarios y se evalúan los resultados de su inte
de interacción del usuario. racción con el sistema para ver los errores de conte
6. L a W ebApp se im plem enta en una va ried a d de con nido y de navegación, los intereses en usabilidad,
fig u ra c io n e s diferentes de entornos y com probar así compatibilidad, fiabilidad y rendimiento de la WebApp.
la co m patibilidad con cada configuración. Se crea Dado que muchas W ebApps están en constante evo
una m atriz de referencias cruzadas que define todos lución, el proceso de com probación es una actividad
los sistem as operativos probables, plataform as de continua, dirigida por un personal de apoyo a la Web
hardware para navegadores7 y protocolos de com u que utiliza pruebas de regresión derivadas de pruebas
nicación. Entonces se llevan a cabo pruebas para des desarrolladas cuando se creó la WebApp.
Dada la inm ediatez de las W ebApps, sería razonable ciplinas. ..» Aun cuando los autores están absolutamente
preguntarse: ¿necesito realm ente invertir tiem po esfor en lo cierto, los «renacentistas» no disponen de muchas
zándome con la W ebApp? ¿no debería dejarse que la provisiones, y dado las exigencias asociadas a los pro
WebApp evolucionara de forma natural, con poca o nin yectos importantes de desarrollo de WebApps, el conjun
guna gestión explícita? M uchos diseñadores de Webs to de conocimientos diversos necesario podrá distribuirse
optarían por gestionar poco o nada, pero eso no hace incluso mejor dentro del equipo de IWeb.
que estén en lo cierto.
La ingeniería W eb es una actividad técnica com
plicada. Hay m uchas personas im plicadas, y a m enu
inundo actual de redes y Webs, se necesita
do trabajando en paralelo. La com binación de tareas
di#» un conocimiento amplio de Internet.
técnicas y no técnicas que deben de tener lugar (a tiem
Scott THy y SMhovg Hoang
po y d en tro del presupuesto) para producir una
WebApp de alta calidad representa un reto para cual
quier grupo dtfíprofesionales. Con el fin de evitar cual Los equipos de IWeb pueden organizarse de forma
quier confusión, frustración y fallo, se deberá poner muy sim ilar a como se organizan los equipos de softwa
en acción una planificación, tener en cuenta los ries re del Capítulo 3 . Sin embargo, pueden existir diferen
g o s , establecer y rastrear una planificación tem poral cias entre los participantes y sus roles. Entre los muchos
y definir los controles. Estas son las actividades clave conocim ientos que deben distribuirse por los miem bros
que constituyen lo que se conoce com o gestión de pro del equipo IWeb se encuentran los siguientes: ingeniería
yectos. del software basada en componentes,realización de redes,
diseño arquitectónicoy de navegación, lenguajesy están
im s m m m
dares de Internet, diseño de interfacespara personas, dise
Losactividadesasociadosconlagestióndeproyectos ño gráfico, disposición del contenido y pruebas de las
desoftwareseestudianenlaPorteSegunda WebApps. Los roles' siguientes deberán ser distribuidos
deestelibro. entre los m iem bros del equipo IWeb:
www.FreeLibros.org
7 Los navegadores son excelentes para implementar sus propias Ínter- 8 Estos roles se han adaptado de Harsen y sus colaboradores [HAN99]
prefaciones «estándar» ligeram ente diferentes de HTMLy JavaScript.
Para un estudio de tem as de com patibilidad, véase www.browser-
caps.com.
533
IN GE NIE RÍ A DEL S O F T W A R E . UN EN F O Q U E P R Á C T I C O
do. Retom ando la idea de que el contenido abarca un • el desarrollo e im plem entación de norm as para el
amplio abanico de objetos de datos, los diseñadores y funcionam iento de la W ebApp;
proveedores del contenido pueden proceder de diver • el establecimiento de los procedim ientos de soporte
sos planos de fondo (no de software). Por ejem plo, el y realimentación;
personal de ventas o de m arketing puede proporcionar • los derechos de acceso y seguridad de la implemen
inform ación de productos e imágenes gráficas: los pro tación;
ductores de m edios pueden proporcionar imagen y soni
• la m edición y análisis del tráfico del sitio Web;
do; los diseñadores gráficos pueden proporcionar diseños
para com posiciones gráficas y contenidos estéticos; los • la coordinación de los procedim ientos de control de
redactores publicitarios pueden proporcionar conteni cambios (Sección 29.7.3);
do basado en texto. A dem ás, existe la posibilidad de • la coordinación con especialistas de soporte.
necesitar personal de investigación que encuentre y dé El adm inistrador tam bién puede estar involucrado
form ato al contenido externo y lo ubique y referencie en las actividades técnicas realizadas por los ingenie
dentro de la WebApp. ros de Web y por los especialistas de soporte.
Editores de Web. El contenido tan diverso generado
por los desarrolladores y proveedores de contenido debe 29.7.2. G e s tió n d e l p ro y e c to
rá organizarse e incluirse dentro de la WebApp. Además, En la Parte Segunda de este libro se tuvieron en consi
alguien deberá actuar como conexión entre el personal deración todas y cada una de las actividades global
técnico que diseña la WebApp y l o s diseñadores y pro mente llamadas gestión de proyectos'. Las métricas de
veedores del contenido. Esta función la lleva a cabo el procesos y proyectos, la planificación de proyectos (y
editor de Web, quien deberá entender la tecnología tan estimación), el análisis y gestión de riesgos, la planifi
to del contenido como de la WebApp en donde se inclu cación tem poral y el rastreo, SQA y CGS, se estudia
ye el lenguaje HTM L (o am pliaciones de generaciones ron en detalle. En teoría, la m ayoría de las actividades
posteriores, tal como XML), la funcionalidad de bases de gestión de proyectos, si no todas, estudiadas en capí
de datos y guiones, y la navegación global del sitio Web. tulos anteriores, se aplican a los proyectos de IWeb. Pero
Ingeniero de Web. Un ingeniero Web cada vez se en la práctica, el enfoque de IW eb para la gestión de
proyectos es considerablem ente diferente.
involucra m ás con la gran cantidad de actividades del
desarrollo de una WebApp entre las que se incluyen la En prim er lugar, se subcontrata un porcentaje sus
obtención de requisitos, m odelado de análisis, diseño tan cia l” de W ebA pps a proveedores que (supuesta
arquitectónico, de navegación y de interfaces, imple- m ente) son especialistas en el desarrollo de sistemas y
mentación de la WebApp y pruebas. El ingeniero de Web aplicaciones basados en Web. En tales casos, un nego
también deberá conocer a fondo las tecnologías de com cio (el cliente) solicita un precio fijo para el desarrollo
ponentes, las arquitecturas cliente/servidor, HTML/XML, de una W ebApp a uno o m ás p ro v e e d le s , evalúa los
y las tecnologías de bases de datos; y deberá tener cono precios de los candidatos y selecciona un proveedor para
cimiento del trabajo con conceptos de m ultimedia, pla hacer el trabajo. Pero, ¿qué es lo que busca la organi
taformas de hardw are/softw are, seguridad de redes y zación contratista?, ¿cómo se determ ina la competen
cia de un proveedor de W ebA pps?, ¿cóm o se puede
temas de soporte a los sitios Web.
saber si un precio es razonable?, ¿qué grado de planifi
Especialistas de soporte. Este papel se asigna a la per cación, program ación temporal, y valoración de riesgos
sona (personas) que tiene la responsabilidad de continuar se puede esperar a m edida que una organización (y su
dando soporte a la WebApp. Dado que las WebApps están subconstratista) se va em barcando en un desarrollo
en constante evolución, el especialista de soporte es el res im portante de W ebApps?
ponsable de las correcciones, adaptaciones y mejoras del En segundo lugar, el desarrollo de W ebApps es una
sitio Web, donde se incluyen actualizaciones del conteni área de aplicación relativamente nueva por tanto se pue
do, implementación de productos y formularios nuevos, den utilizar pocos datos para la estim ación. H asta la
y cambios del patrón de navegación. fecha, no se ha publicado virtualm ente ninguna métri
Administrador. Se suele llam ar Web master, y es el ca de IWeb. De hecho, tam poco han surgido muchos
responsable del funcionam iento diario de la W ebApp, estudios sobre lo que esas métricas podrían ser. Por tan
en donde se incluye: to, la estim ación es puramente cualitativa — basada en
www.FreeLibros.org
9 Se recom ienda que lectores no fam iliarizados con los conceptos 10 Aun cuando los datos de industria fiables son difíciles de encon
básicos de gestión de proyectos revisen en este m om ento el Capí trar, es seguro decir que este porcentaje e s considerablem ente mayor
tulo 3. que el que s e encuentra en el trabajo del software convencional.
534
CAPÍTULO 29 I N GE NI E RÍ A WEB
experiencias anteriores con proyectos similares—. Pero una WebApp con éxito. Esta información deberá de
casi todas las WebApps tienen que ser innovadoras documentarseen una especificacióndel producto.
—ofreciendo algo nuevo y diferente a aquellos que la 2. S e d e b e r á d e s a r r o lla r in te r n a m e n te u n d is e ñ o a p r o
utilizan—. De aquí que la estimación experimental, aun d e l a W e b A p p . Obviamente una persona
x im a d o
que sea Útil, está abierta a errores considerables. Por expertaen el desarrollodeWebApps creará un diseño
consiguiente, ¿cómo se derivan estimaciones fiables?, completo, pero puede ahorrar tiempo y dinero iden
¿con qué grado de seguridad pueden cumplirse los pro tificando el aspecto e interacción general de la
gramas temporales definidos? WebApp para el proveedor de subcontratación (esto
En tercer lugar, el análisis de riesgos y la programa siempre puede modificarse durante las etapas preli
ción temporal se predican bajo un entendimiento claro minares del proyecto). El diseñodeberáincluir la indi
del ámbito del proyecto. Y sin embargo, la característi cación del proceso interactivo que se va a llevar a
ca de «evolución continua» tratada en la Sección 29.1 cabo (por ejemplo, formularios, entrada de pedidos).
sugiere que el ámbito de la WebApp sea fluido. ¿Cómo 3 . S e d e b e r á d e s a r r o lla r u n a p la n ific a c ió n t e m p o r a l a p r o
pueden controlar los costes la organización contratista x im a d a d e l p r o y e c t o , in c lu y e n d o n o s o lo la s f e c h a s
y el proveedor subcontratado?, y ¿cómo pueden plani f in a l e s d e e n t r e g a ,s in o ta m b ié n la s fe c h a s h it o ( s ig n i
ficar el momento en que es probable que los requisitos Los hitos deberán adjuntarse a las versiones
f ic a t iv a s ) .
cambien drásticamente a lo largo del proyecto?, ¿cómo de entregaposibles a medida que avanza el proyecto.
se puede controlar el cambio del ámbito?, y lo que es
4 . S e d e b e r á id e n t if i c a r e l g r a d o d e s u p e r v is ió n e in t e
más importante, dado su naturaleza ¿deberán contro
larse los sistemas y aplicaciones basados en Web ? Deberá
r a c c ió n d e l c o n tr a tis ta c o n e l p r o v e e d o r .
Llegado a este punto de gestión de proyectos para incluirse el nombre del contacto del proveedor y la
WebApps, las preguntas que se han formulado por las identificación de la responsabilidad y autoridad del
diferencias destacadas anteriormente no son fáciles de contacto, la definición de los puntos de revisión de
responder. Sin embargo, merece la pena tener en con calidad a medida que el desarrollo va avanzando, y
sideraciónuna serie de líneas generales. la responsabilidad de los proveedores enrelación con
la comunicación entre organizaciones.
Inicio de un proyecto. Aun cuando la subcontrata-
Toda la información desarrollada en los pasos ante
ción sea la estrategia elegida para el desarrollo de riores deberá de organizarse en una s o l i c i t u d d e o p c i o
WebApps, una organización deberá realizar una serie n e s que se transmite a los proveedores candidatos” .
de tareas antes de buscar el proveedor de subcontrata-
ción para hacer el trabajo.
p f e í
B
1. M u c h a s d e la s a c t iv id a d e s d e a n á lis is t r a t a d a s e n la
Se
S e c c ió n 2 9 . 3 s e d e b e r á n r e a li z a r in t e r n a m e n t e . ; -v ■ - g a pagar por cacahuetes,
identifica el público de la WebApp; se confecciona un v- .nono.
listado de aquellos con intereses internos en la nffijSppr I».
WebApp; y se defineny revisan las metas globales de
la WebApp; se especifica tanto la información como Selección entre los proveedores de subcontrata
los servicios que se van a proporcionaren laWebApp; ción candidatos. En los últimos años han surgido miles
se destacan los sitios Web rivales, y se definen las de compañías de «diseño Web» para ayudar a las empre
«medidas» cuantitativas y cualitativas para obtener sas a establecer una presencia y/o implicación Web en
el comercio electrónico. Muchas han llegado a tener
adicciónpor el proceso IWeb, mientras que otras muchas
se asemejan a los intrusos informáticos ( h a c k e r s ) . Con
objeto de seleccionar el desarrollador de Web candida
: -A: ( « m i consejo pora los constructores
to, el contratistadeberá llevar a cabo una diligencia obli
mj¡ÉI0 si? 1, Establecer los requisitos gada: (1) entrevistar a los clientes antiguos para
f . l M : ; - v # fiv ente 2. Conseguir
determinar la profesionalidad del proveedor de Web, la
S ¡ p t f i i# -':.* toles 3. Utilizar proveedores
habilidad de cumplir los compromisosde horarios y cos
:í demostrada. 4. Construir y ampliar
tes, y la habilidad de comunicarseeficazmente; (2) deter
I f p É f a sTpor etapas evolutivas. 5. Tener
minar el nombre del ingenierojefe de Web del proveedor
: j i f Jeredimdoncia sistemática adecuarla
f (y '?. i.-és jara permitir algún grado
de proyectos anterior con éxito (y después cerciorarse
• i cuando aparezcan errores.
de que esta persona se vea obligada mediante contrato
pÉi Sil
a su implicación en el proyecto), y (3) examinar cuida
dosamente las muestras de trabajo del proveedor simi-
www.FreeLibros.org
11 Si el trabajo de desarrollo de la W ebApp e s dirigida por un grupo
interno, nada cam bia. El proyecto se inicia de la m ism a m anera.
535
I N GEN IE RÍ A DEL S OFT W ARE . UN E N F O Q U E P R Á C T I C O
lares en aspecto e interacción (y en área de negocios) a «temporalmente».Este enfoque hace posible que el equi
la W ebApp que se va a contratar. Antes incluso de que po de la WebApp trabaje sin tener que aceptar una corrien
se vaya a establecer la oferta, una reunión cara a cara te continua de cambios,pero reconociendo la característica
puede proporcionar una buena im presión para que el de evolución continua de la mayoría de las WebApps.
contratista y el proveedor conecten bien. Las líneas generales sugeridas anteriormente no pre
Evaluación de la validez de las ofertas de precios tenden ser un recetario a prueba de tontos para WebApps
y de la fiabilidad de las estim aciones.Dado que exis puntuales y con una producción a un coste bajo. Sin
ten muy pocos datos históricos y el ám bito de las embargo, ayudarán tanto al contratista como al provee
WebApps es notoriam ente fluido, la estim ación es inhe dor a iniciar el trabajo suavem ente con unos conoci
rentem ente arriesgada. Por esta razón algunos provee m ientos mínimos.
dores incorporarán m árgenes sustanciales de seguridad
en las ofertas de precios de un proyecto. Evidentem en 29.7.3. P r o b le m a s G C S p a ra la IWEb
te esto es comprensible y adecuado. L a pregunta no es Durante la últim a década, las W ebApps han evolucio
si tenemos la mejor solución para nuestra inversión, sino nado y han pasado de utilizar dispositivos informales
la serie de preguntas que se m uestran a continuación: para la difusión de inform ación a utilizar sitios sofisti
• ¿Es el coste acordado una buena oferta para propor cados para el com ercio electrónico. A m edida que las
cionar un beneficio directo o indirecto sobre la inver W ebApps van creciendo en im portancia para la super
sión y justificar así el proyecto? vivencia y el crecimiento de los negocios, también cre
• ¿Es el proveedor de la oferta una m uestra clara de la ce el control de la configuración. ¿Por qué? Porque sin
profesionalidad y experiencia requeridos? controles eficaces cualquier cam bio inadecuado en una
W ebApp (recordemos que la inm ediatez y la evolución
Si la respuesta es «sí», el precio ofertado es justo.
continua son los atributos dom inantes de muchas
El grado de gestión del proyecto que se puede espe
WebApps) puede conducir a: (1) una ubicación no auto
rar o realizar. La formalidad asociada con las tareas de
rizada de la inform ación del producto nuevo; (2) u n a
gestión del proyecto (llevadas a cabo tanto por el provee
funcionalidad errónea y pobremente com probada que
dor como por el contratista) es directamente proporcional
frustra a los visitantes del sitio W eb; (3) agujeros de
al tamaño, coste y complejidad de la WebApp. Para pro
seguridad que ponen en peligro a los sistemas internos
yectos complejos y grandes deberá desarrollarse una pla
de las com pañías, y otras consecuencias económ ica
nificación que defina las tareas del trabajo, los puntos de
m ente desagradables e incluso desastrosas.
comprobación, los productos de trabajo de ingeniería, los
puntos de revisión del cliente y los hitos importantes. El
proveedor y el contratista deberán evaluar el riesgo en
conjunto, y desarrollar los planes de mitigar, monitorizar Q c /f a :
y gestionar esos riesgos considerados como importantes.
k forma mós eficaz de enfrentarse
Los mecanismos para la seguridad de calidad y el control
sí cambio es ayudar a crearlo.
de cambios se deberán definir explícitamente al escribir
se. Y tendrán que establecerse métodos de comunicación
entre el contratista y el proveedor. Se pueden aplicar las estrategias generales para la
Evaluación de la planificación temporal del desa gestión de la configuración del software (GCS) descri
rrollo. Dado que las planificacionesde desarrollo de las tas en el Capítulo 9, pero las tácticas y herram ientas
WebApps abarcan un período de tiem po relativamente deberán adaptarse y ajustarse a la naturaleza única de
corto (normalmente menos de un m es o dos), la plani las W ebApps. C uando se desarrollan tácticas para l a
ficación de desarrollo deberá tener un alto grado de gra- gestión de configuración de las WebApps, deberán tener
nularidad. Es decir, las tareas del trabajo y los hitos se en consideración cuatro tem as [DA R99]: el conteni
menores se tendrán que planificar día a día. Esta gra- do, las personas, la escalabilidad y la política.
nularidad permite que el contratistay el proveedor reco Contenido. Una W ebApp normal contiene una gran
nozcan la reducción del tiem po de planificación antes cantidad de contenido — texto, gráficos, applets, guiones,
de que amenace la fecha de finalización. archivos de sonido y vídeo, elementos activos de pági
Gestión del ám bito. Dado que es muy probable que nas, tablas, corrientes de datos y m uchos más—. El reto
el ámbito cambie a medida que avanza el proyecto de la es organizar este m ar de contenido en un conjunto razo
WebApp, el m odelo de proceso deberá ser incremental nable de objetos de configuración (C apítulo9), y enton
(Capítulo 2). Esto permite que el equipo de desarrollo ces establecer los mecanismos de control de configuración
«congele» el ámbito para poder crear una nueva versión adecuados para estos objetos. Un enfoque será modelar
operativa de la WebApp. El incremento siguiente puede el contenido de la WebApp mediante la utilización de téc
www.FreeLibros.org
afrontar los cambios de ámbito sugeridos por una revi nicas convencionales de m odelado de datos (Capítulo
sión del incrementoprecedente, pero una vez que comien 11), adjuntando un conjunto de propiedades especializa
za el incremento, el ám bito se congela de nuevo das a cada objeto. La naturaleza estática y dinámica de
536
C A P Í T U L O 29 I NGE NI E RI A WEB
cada objeto y la longevidad proyectada (por ejem plo, en las actividades de gestión y control asociadas con la
existencia tem poral y fij a, o un objeto permanente) son IWeb. En algunos casos los diseñadores de W ebApps
ejemplos de las propiedades necesarias para establecer se encuentran fuera de la organización TI, dificultando
un enfoque GCS eficaz. Por ejem plo, si se cambia un posiblem ente la comunicación. Para ayudar a entender
objeto de contenido cada hora, se dice que tiene una lon la política asociada a IW eb, E&fc [DAR99] sugiere las
gevidad temporal. Los m ecanismos de control de este siguientes preguntas: ¿quién asum e la responsabilidad
objeto serán diferentes (menos formales) de los que se de la inform ación en el sitio Web? ¿quién asegura que
aplicaba un componente de formularios (objeto perm a los procesos de control de calidad se han llevado a cabo
nente). antes de publicarla inform ación en el sitio Web? ¿quién
es el responsable de hacer los cambios? ¿quién asume
el coste del cambio? Las respuestas ayudarán a deter
m inar qué personas dentro de la organización deberán
S esencial controlar el cambio dorante los proyectos adoptar un proceso de gestión de configuración para las
IWeb, oon coando puede hacerse de formo exagerada. WebApps.
Empiece por los procedimientosde control de cambh
La gestión de configuración para la IWeb está toda
de relativa informalidad (Capítulo 9). lo meto inicial será
vía en su infancia. Un proceso convencional de GCS
evitar los efectos de trinquete en cambios incontrolados.
puede resultar demasiado pesado y torpe. La gran m ayo
P erso n as. Dado que un porcentaje significativo del ría de las herram ientas GCS no tienen las característi
desarrollo de las WebApps continúarealizándose depen cas que perm iten adaptarse fácilmente a la IWeb. Entre
diendo del caso, cualquier persona que esté implicada los tem as que quedan por tratar se encuentran los
en la WebApp puede (y a m enudo lo hace) crear el con siguientes [DAR99]:
tenido. M uchos creadores de contenido no tienen ante • creación de un proceso de gestión de configuración
cedentes en ingeniería del software y no tienen ningún que sea lo suficientemente hábil como para aceptar la
conocimiento de la necesidad de una gestión de confi inmediatez y la evolución continua de las WebApps;
guración. La aplicación crece y cambia de forma incon
• aplicación de mejores conceptos y herram ientas de
trolada.
gestión de configuración para aquellos que desarro
E scalab ilid ad . Las técnicas y controles aplicados a llan y no están familiarizados con la tecnología;
una W ebApp pequeña no tienen buena escalabilidad. • suministro del soporte a los equipos de desarrollo de
No es muy com ún que una WebApp sencilla crezca sig W ebApps distribuidos;
nificativam ente cuando se im plementan las intercone
• suministro de control en un entorno de cuasipubli-
xiones que existen dentro de los sistem as de
cación, donde el contenido cambia de forma casi con
información, bases de datos, almacenes de datos y pasa
tinua;
relas de portales. A m edida que crece el tam año y la
complejidad, los pequeños cambios pueden tener efec • consecución de la granularidad necesaria para con
tos inalcanzables y no intencionados que pueden ser trolar una gran cantidad de objetos de configuración;
problemáticos. Por tanto, el rigor de los mecanismos de • incorporación de la funcionalidad de gestión de con
control de la configuración deberán ser directam ente figuración en las herram ientas IWeb existentes;
proporcionales a la escalabilidad de la aplicación. • gestión de cam bios en objetos que contienen enla
P olítica. ¿Quién es el propietario de una W ebApp? ces con otros objetos.
Esta pregunta se argum enta en com pañías grandes y Estos y otros temas deberán afrontarse antes de que se
pequeñas, y la respuesta tiene un im pacto significativo disponga una gestión de configuración eficaz para la IWeb.
Se puede argumentar que el im pacto de los sistemas y nadas por el contenido y están en continua evolución. La
aplicacionesbasados en Web es el acontecimiento m ás inmediatez que conduce a su desarrollóla necesidad pri
significativo en la historia de la informática. A medida m ordial de seguridad al funcionar,y la dem anda de esté
que las WebApps crecen en importancia, el enfoque de tica y la entrega del contenido fúncional son otros factores
ingeniería de Web disciplinado ha em pezado a evolu diferenciadores. Durante el desarrollode la WebApp hay
cionar — basado en principios, conceptos, procesos y tres tecnologías que se integran con otras de ingeniería
métodos que se han desarrollado para la ingeniería del del software convencional; desarrollobasado en com po
www.FreeLibros.org
software— . nentes, seguridad y lenguajes de notas estándar.
Las WebApps son diferentes de otras categorías de El proceso de ingeniería de Web com ienza con la for
software informático. Son intensivas de red, están gober mulación —una actividad que identifica las metas y los
537
IN GE NI E RÍ A DEL S OFT W ARE . UN E N F O Q U E P R Á C T I C O
[ATK97] Atkins, D., et al., Internet Security: Professional [MUR99] Murugesan, S., WebE Home Page, http://fist-
Reference, New Riders Publishing, 2.a ed., 1997. serv.macarthur.uws.edu.au./sanAVebHome, Julio de 1999.
[BER98] Bemstein, M., «Pattems in Hypertext», Proc. 9,h [NAN98] Nanard, M., y P. Kahn, «Pushing Reuse in Hyper
A C M Conf. Hypertext, ACM Press, 1998, pp. 21-29. media Design: Golden Rules, Design pattems and cons-
tructive Templates», Proc. 9th ACM conf. On Hypertext
[BRA97] Bradley, N., TlteConcise SGML Companion, Addi-
and Hypermedia, ACM Press, 1998, pp. 11 -20.
son-Wesley, 1997.
[NIE96] Nielsen, J., y A. Wagner, «User Interface Design for
[BRE99] Brenton, C., Mastering Network Security, Sybex,
the WWW», Proc. CHI' 96 conference on Human Factors
Inc., 1999. ' '
in Computing systems, ACM, Press, 1996,pp. 330-331.
[BUS96] Buschmann, E et al., Pattern-Oriented Software
[NOR99] Norton, K., «Applying Cross Functional Metho-
Architecture, Wiley, 1996.
dologies to Web Development», Proc. l sl ICSE Works
[DAR99] Dart, S., «Containing the Web Crisis Configura- hop on Web Engineering, ACM, Los Ángeles, Mayo de
tion Management», Proc. l s' ICSE Workshopon Web engi 1995.
neering, ACM, Los Ángeles, Mayo de 199912.
[OSL99] Olsina, L. et al., «Specifying Quality Characteris-
[DIN98] Dinucci, D., M. Giudice y L. Stiles, Elements of tics and Attributes for Web Sites», Proc. l st Workshopon
WebDesign: The Designer’s Guide to a New Médium, 2.a Web Engineering, ACM, Los Ángeles, Mayo de 1995.
ed., Peachpit Press, 1998.
[PAR99] Pardi, W J.,X M L in Action, Microsoft Press, 1999.
[GAM95] Gamma, E. et ai., DesignPatterns, Addison-Wes
[POW98] Powell, T.A., WebSite engineering, Prentice-Hall,
ley, 1998.
1998.
[GNA99] Gnaho, C., y F. Larcher, «A User Centered Me-
[PRE98] Pressman, R.S. (moderador), «Can Intemet-Based
thodology for Complex and Customimizable Web Appli
Applications be Engineered?», IEEE Software, Septiem
cations engineering», Proc. ls t ICSE Workshop on Web
bre de 1998, pp. 104-110.
engineering, ACM, Los Ángeles, Mayo de 1999.
[ROS98] Rosenfeld, L., y P. Morville, Information Architec
[HAN99] Hansen,S., Y. Deshpandey S. Murgusan, «A Skills
turef o r the World Wide fiú/>,0'Reilly & Associates, 1998.
Hierarchy for Web Information system Development»,
Proc. l st ICSE Workshop on Web Engineering, ACM, Los [SAN96] Sano. D., Designing large-Scale Web Sites: A
Ángeles, Mayo de 1999. Visual Design Methodology, Wiley 1996.
[ISA95] Isakowitz, T. et al., «RMM: A M ethodology for [SCH96] Schwabe, D., G. Rossi y S. Barbosa, «Systematíc
Structured Hypermedia Design», CACM, vol. 38, n.Q 8, Hypermedia Application Design with OOHDM», Proc.
Agosto de 1995,pp. 43-44. Hypertext ' 96, pp. 116-128.
[KAE99] Kaeo, M., Designing N etw ork Security, Cisco [SP098] Spool, J.M., et al., Web Site Usability:A Desig
Press, 1999. ner’s Guide, Morgan Kaufmann Publishers, 1998.
[LOW99] Lowe,D.,«WebEngineeringorWebGardening?», [STL99] St. Laurent, S., y E. Cerami, Building X M I Appli
WebNet Journal, vol. l,n .2 2, Enero-Marzo de 1999. cations, McGraw-Hill, 1999.
[LYN99] Lynch, P.J., y S. Elorton, WebStyle Guide: Basic [TIL99] Tilley, S., y S. Huang, «On the emergence of the
Design Principlesfor Creating WebSites, Yale University RenaissanceSoftwareengineer», Proc. l s>ICSE Workshop
Press. 1999. on the WebEngineering, ACM, Los Ángeles, Mayo de 1999.
www.FreeLibros.org
12 Los procedimientos del Primer Taller ICSE sobre Ingeniería del Soft
ware se publican en la red en h ttp ://ñ stserv .m a rca rth u r.
uw s.edu.au/san/icse99-W ebE /IC SE 99-W eb-E -P roc/default.htm
538
CAP ÍTU LO 29 I NGE NI E RI A WEB
2 9 .1 . ¿Existen otros atributos genéricos que diferencien a las 29.10. Realice un análisis del contenido para HogarSegu -
W ebA pps de otras aplicaciones de software? Enum ere 2 Ó 3. roInc.com o para un sitio Web asignado por su profesor.
29.2. ¿Cóm o sejuzga la calidad de un sitio Web? C onfeccio 29.11. Sugiera tres «reglas de oro» que servirán como guía en
ne una lista de 10 atributos de calidad prioritarios que consi el diseño de WebApps.
dere más importantes.
29.12. ¿En qué difiere una configuración de diseño WebApp
29.3. Realice una pequeña investigación y realice un trabajo de una plantilla?
de 2 ó 3 páginas que resuma una de las tres tecnologías que
29.13. Seleccione un sitio Web con el que esté familiarizado
se destacaron en la Sección 29.1.2.
y desarrolle un diseño arquitectónico razonablemente com
29.4. U tilizan d o un sitio W eb real com o ejem plo, ilustre las pleto para el sitio. ¿Qué estmctura arquitectónica seleccionó
diferentes m anifestaciones del «contenido» de la W e b A p p . el diseñador del sitio?
29.5. Responda a las tres preguntas de form ulación para un 29.14. Haga una investigación breve y escriba 2 ó 3 páginas
sitio W eb con el que esté fa m ilia riza d o . D esarrolle una a fir que resuman el trabajo actual en las configuraciones de dise
m ación de ám bito para el sitio W eb. ño de las WebApps.
29.6. D esarrolle un conjunto de p e rfile s para H ogarS egu - 29.15. Desarrolle un diseño arquitectónico para HogarSegu-
roInc.com o un sitio W eb asignado por su profesor. roInc.com o para un sitio Web asignado por su instructor.
29.7. D esarrolle una lista completa de metas inform ativas y 29.16. Utilizando un sitio Web real como ejemplo, desarrolle
aplicables para H ogarSeguroInc.com o un sitio W eb asigna una crítica de su interfaz de usuario y haga una recomenda
do por su profesor. ción que lo mejore.
29.8. Elabore un conjunto de casos de uso para H ogarSegu- 29.17. Describa la manera en que una gestión de proyecto para
roInc.com o un sitio W eb asignado por su profesor. sistemas y aplicaciones basados en Web difieren de la gestión
29.9. ¿En qué difiere el análisis del contenido del análisis fu n de proyecto para el software convencional. ¿En qué se ase
cional y de interacción? meja?
Durante los últimos años se han publicado cientos de libros Menasce y Almeida (Capacity Planningfor Web Perfor
que tratan uno o más temas de ingeniería de Web, aunque mance: Metrics, Models, and Methods, Prentice-Hall, 1998)
relativamente pocos tratan todos los aspectos. Lowe y Hall tratan la valoración cuantitativa del rendimiento de las
(Hypertextand the Web:An Engineering Approach, Wiley, WepApps. Amoroso (IntrusionDetection: AnIntroduction to
1999), y Powell [POW98] abarcan razonablemente estos Internet Surveillance, Correlation, Trace Back, Traps, and
temas. Norris, West y Warson (MediaEngineering: A Quide Response, Intrusión.Net Books, 1999) proporciona una guía
to Developing Information Products, Wiley, 1997), Navarro detallada para los ingenieros de Web que están especializa
y Khan (Effective WebDesign: Master the Essentials, Sybex, dos en temas de seguridad. Umar (AppIication(Re)Enginee-
1998), Fleming y Koman (WebNavigation: Designing the ring: Building Web-Based Applications and Dealing With
User Experience, O ’Reilly & Associates, 1998), y Sano Legacies, Prentice-Hall, 1997)estudiaestrategiaspara latrans-
[SAN96] también abarcan aspectos importantes del proceso formación (reingeniería) de sistemas anteriores en aplicacio
de ingeniería. nes basadas en Web. Mosley (ClientSewer Sofware Testing
Además de [LYN99], [DIN98] y [SP098], los siguientes on the Desk Top and the Web, Prentice-Hall, 1999) ha escri
libros proporcionan una guía útil para los aspectos del dise to uno de los mejores libros que estudian los temas de com
ño de WebApps tanto técnicos como no: probación asociados con WebApps.
Baumgardt, M., Creative WebDesign: Tips and Tricks Haggard (Survival Guide to Web Site Development.,
StepbyStep, Springer Verlag, 1998. Microsoft Press, 1998) y Siegel (Secrets o f Successful Web
Donnelly, D. et al., Cutting Edge Design: TheNext Gene- Sites: Project Management on the World Wide Web, Hay-
ration, Rockport Publishing, 1998. den Books, 1997) proporcionan una guía para el gestor que
Holzschlag, M.E., Web by Design: The Complete Guide, debe de controlar y hacer un seguimiento del desarrollo de
Sybex, 1998. ' WebApps.
Niederst, J., y R. Koman, WebDesign in a Nutshell: A Una amplia variedad de fuentes de información sobre inge
Desktop Quick Reference, O’Reilly & Associates, 1998. niería de Web está disponible en Internet. Una lista amplia y
Weinman, L., y R. Prirouz, Click Here: WebCommuni- actualizada de referencias en sitios (páginas) web se puede
cation Design, New Riders Publishing, 1997. obtener en http:/www.pressman5.com.
www.FreeLibros.org 539
www.FreeLibros.org
C A P IT U L O
30 REINGENIERIA
E N u n a r t í c u l o d e g r a n i m p o r t a n c i a e s c r i t o p a r a la H a r v a r d B u s in e s s R e v ie w , M i c h a e l
H a i n m e r [ H A M 9 0 ] s e n t a b a la s b a s e s p a r a u n a r e v o l u c i ó n d e l p e n s a m i e n t o a d m i n i s t r a t i
v o a c e r c a d e lo s p r o c e s o s y c o m p u t a c ió n d e lo s n e g o c io s :
Ha llegado el momento de dejar de pavimentar los senderos para vacas. En lugar de incrustar unos pro
cesos anticuados en silicio y en software, deberíamos eliminarlos y volver a empezar. Tenemos que reha
cer la ingeniería de nuestros negocios: hay que utilizar la potencia de la tecnología de'la información moderna
para rediseñar de forma radical nuestros procesos de negocios, y lograr así unas mejoras drásticas de su ren
dimiento.
Todas las compañías funcionan de acuerdo con una gran cantidad de reglas no escritas... La reingenie
ría intenta apartarse de las viejas reglas acerca de la forma en que se organizan y desarrollan nuestros ne
gocios.
A l i g u a l q u e t o d a s la s r e v o l u c i o n e s , l a l l a m a d a a la s a r m a s d e H a m m e r h a d a d o l u g a r a c a m
b io s t a n to p o s it iv o s c o m o n e g a tiv o s . A lg u n a s c o m p a ñ í a s h a n h e c h o u n e s fu e r z o le g í t i m o e n
r e h a c e r su i n g e n i e r í a , y l o s r e s u l t a d o s h a n m e j o r a d o s u c o m p e t i t i v i d a d . O t r a s s e h a n b a s a d o
ú n i c a m e n t e e n r e d u c i r la s d i m e n s i o n e s y h a c e r s u b c o n t r a t a s ( e n l u g a r d e r e h a c e r s u r e i n g e n i e
r í a ) p a r a m e jo r a r s u s b e n e fic io s . Y c o m o r e s u lta d o s e o b t u v ie r o n o r g a n iz a c io n e s r e d u c id a s c o n
p o c a s p r o b a b ilid a d e s d e c r e c e r e n m i f u t u r o [ D E M 9 5 ] ,
D u r a n t e la p r im e r a d é c a d a d e l s ig lo v e in t iu n o , e l b o m b o p u b li c i t a r io a s o c ia d o a la r e in g e
n ie r ía h a d e c a íd o , p e r o e l p r o c e s o e n s í c o n tin ú a e n c o m p a ñ ía s g r a n d e s y p e q u e ñ a s . L a u n ió n
d e la r e in g e n ie r í a c o n la in g e n ie r í a d e l s o f t w a r e s e e n c u e n t r a e n u n a « r e v i s ió n d e l s is t e m a » .
VISTAZO RAPIDO
¿Qué es? T enga e n c o n sid eració n c u a l ¿Por q u é a s im p o r t a n te ? Vivimos e n un los p ro g ra m a s e x is te n te s q u e e xhiben
quier producto d e tecnología que h a y a m undo e n constantecam bio. Las dem an una m antenibilidad d e m ayor calidad.
adquirido. Lo ve con re g u la rid a d , pero d a s d e funciones d e negocios y d e tec ¿Cuál e s e l p rod ucto o b ten id o ? Son
e s t á en v ejec ien d o . S e rom pe con fre nología de inform ación que la s soportan v a rio s los pro d u cto s q u e se e la b o ra n
c u e n c ia , ta rd a e n re p a ra rs e y y a no e s tá n c am biando a un ritm o que im po (porejem plo,m odelos an álisis, m odelos
representa la ú ltim a tecnología. ¿Q ué ne m ucha presión com petitiva en todas d e d iseñ o , procedim ientos d e pruebas).
se p u e d e h acer? Si el pro d u cto e s d e la s o rg an izacio n es com erciales. Tanto El resultado final e s un proceso d e rein
h ard w are, pro b ab lem en te lo tira rá y se los negocios como el softw areque sopor geniería d e negocios y/o el softw are d e
c o m p rará uno nuevo. Pero si e s un soft ta n (o e s )e l negocio d eb erán diseñarse re in g e n ie ría q u e lo soporta.
w a re p e rso n a liz a d o , no d isp o n d rá la una vez m ás p a ra m antener el ritmo. ¿Cómo puedo e s t a seguro d e q u e lo
opción d e tirarlo. N e c e sita rá re co n s ¿Cuáles son los pasos? La reingenieria h e h ech o correctamente?Utilizan-
truirlo. C reará un producto con una fun d e p ro c e so sd e negocios (RPN) d e fín e la s do la s m ism as prácticas que se a p lic a n
cionalidad nueva, un m ejor rendim iento m etas com erciales, identifica y e v alú a e n todos los procesos d e in g en iería del
y fiab ilid ad , y un m antenim iento m ejo los procesos d e negocios ex isten tes, y s o ftw a re —la s rev isio n es té c n ic a s for
rado. E so e s lo q u e lla m a m o s re in g e crea procesos com ercialesrevisados que m ale s e v a lú a n los m odelos d e a n á lisis
niería. m ejoran la s m etas actuales. El proceso y d e diseños, la s revisiones e sp e cializa
¿Quién lo h a ce? A nivel d e negocio, la d e reingeniería del softw are acom paña d a s tie n e n e n consideración la c a p a c i
re in g e n ie ría e s e je rc id a por e s p e c ia el a n á lisis d e inventarios, la estructura d a d d e a p lic a c ió n co m ercial y la
lis ta s d e n egocio (fre c u e n te m e n te ción de documentoc. la in g en ie ría inver c o m p atib ilid ad , y la c o m p ro b ació n se
e m p re s a s d e c o n s u lto ría ). A n iv el d e s a . la re estru c tu ra ció n d e d a to s y la a p lic a p a ra d esc u b rir los erro res e n el
softw are, la re in g e n ie ría e s e je c u ta d a ingeniería avanzada. El objetivode estas contenido, e n la fun cio n alid ad y e n la
por ingen iero s d el softw are. actividades e s crear v ersionesnuevas de interoperabilidad.
E l s o f t w a r e s u e le s e r l a r e a l i z a c i ó n d e la s r e g la s d e n e g o c i o q u e d e s c r ib e H a m m e r . A m e d i d a q u e
la s r e g la s c a m b i a n , e l s o f t w a r e t a m b i é n t i e n e q u e c a m b ia r . E n l a a c t u a l i d a d , e x i s t e n c o m p a ñ í a s i m p o r
t a n t e s q u e p o s e e n d e c e n a s d e m i l e s d e p r o g r a m a s d e c o m p u t a d o r a q u e p r e s t a n a p o y o a la s « v i e j a s
r e g la s d e l n e g o c i o » . C u a n d o lo s a d m i n i s t r a d o r e s t r a b a j a n p a r a m o d i f i c a r e s ta s r e g la s y l o g r a r a s í m í a
m a y o r e f e c t i v i d a d y c o m p e t i t i v i d a d , e l s o f t w a r e s e g u ir á e l m i s m o r i t m o . E n a l g u n o s c a s o s , e s t o i m p l i
www.FreeLibros.org
c a l a c r e a c i ó n d e s is t e m a s n u e v o s e i m p o r t a n t e s b a s a d o s e n c o m p u t a d o r a '. P e r o e n m u c h o s o t r o s , e s t o
i m p l i c a l a m o d i f i c a c i ó n y / o r e c o n s t r u c c i ó n d e la s a p l i c a c i o n e s e x is t e n t e s .
1Los sistemas y aplicaciones basados en Web estudiados en el Capítulo 29 son ejemplos contemporáneos.
541
I N GEN IE RI A DEL S O F T W A R E . UN E N F O Q U E P R A C T I C O
En este capítulo se examina la reingeniería de forma descendente, comenzando por una visión general de la reingenie
ría de procesos de negocio y pasando entonces a una discusión más detallada de las actividades técnicas que se producen
cuando se efectúa una reingeniería del software.
www.FreeLibros.org
subprocesos de negocio Poro encontrar uno extensa información
sobre lo reingenierío de procesosde negocios
' BPR, en castellanoRPN visite la dirección w w w .b rin t.c o m /B P R .h tm
542
CAPITULO 30 R EI N G EN IE RI A
www.FreeLibros.org
mejora de ca lid a d y desarrollo y p o te n c ia c ió n del p e r esfuerzo por analizar m ejor los procesos existentes. A de
sonal. L os o b jetiv o s se p u e d e n d e fin ir en el n iv el de m ás, para im plem entar las cuatro prim eras actividades des
negocios o p ara un com ponente específico del negocio. critas en el m odelo de procesos se pueden u tilizar las
543
ING E NI E RI A DEL SO FTW AR E. UN E N F O Q U E P R Á C T I C O
técnicas de m odelado que se asocian norm alm ente a las dos por la evidencia empírica. Para muchas compañías parece
actividades de ingeniería de la inform ación tales com o la que la bala de plata no da en el blanco.
planificació n de estrategias de inform ación y el análi Para otras, sin embargo, el nuevo esfuerzo de la reingenie
sis de áreas de negocios (Capítulo 10). ría ha tenido evidentemente su fruto...
L a RPN puede funcionar, si es aplicada por personas
30.1.4. Advertencias m otivadas y form adas, que reconozcan que el proceso de
E s m uy frecuente que se exagere la im p o rtan cia de un reingeniería es una actividad continua. Si la RPN se lle
nuevo en fo q u e de n e g o cio - e n este caso, la R P N — va a cabo de form a efectiva, los sistem as de información
co m o si fu ese la p an acea, p a ra d esp u és c ritic a rla con se integran m ejo r con los procesos de negocios. Dentro
tanta severidad que pase a ser un desecho. A lo largo de del contexto de una estrategiam ás am plia de negocios se
los U ltim os años, se ha d eb atid o de fo rm a ex ag erad a puede exam inar la reingeniería de aplicacionesm ás anti
acerca de la eficacia de la R PN (por ejem plo: [BLE93] guas, y tam bién se pueden establecer de form a inteligente
y [D IC95]). E n un resu m en excelente del caso a favor las prioridades de reingeniería del softw are.
y en contra de la R PN , W eisz (W E I95) expone su argu A unque la reingeniería de negocio sea una estrate
m ento de la m an era siguiente: gia rechazada p o r una com pañía, la reingeniería del soft
w are es algo que d e b e h ac erse. E x isten decen as de
Resulta tentador atacar a la RPN como si se tratase de otra
m illares de sistem as heredados — aplicaciones crucia
reencarnación de la famosa bala de plata. Desde varios puntos
de vista — pensamiento de sistemas, tratamiento de personal, les para el éxito de negocios grandes y p e q u e ñ o s - que
simple historia— habría que predecir unos índices de fallos se v en a fe cta d o s p o r una e n o rm e n ece sid ad de ser
elevados para el concepto, índices que parecen ser confirma reconstruidos o rehechos en su totalidad.
www.FreeLibros.org
Esperábam os que lo que era inm ediatam ente visible fue vitable cuando se construyen sistem as basados en com
ra de v erd ad lo que había, pero sabíam os que un a enor putadoras; p o r tanto debem os desarrollar m ecanism os
m e m a sa de p o sib le s p ro b lem as y c o ste s y a c ía p o r para evaluar, controlar y realizar m odificaciones.
544
CAPÍTULO 30 R EI N G EN IE R IA
www.FreeLibros.org
cionar la casa. Para determ inar si necesita una recons
trucción, usted (o un inspector profesional) creará una
lista de criterios para que la inspección sea sistemática. Análisis de inventario
545
I N GEN IE RÍ A DEL S OFT W ARE . UN E N F O Q U E P R Á C T I C O
www.FreeLibros.org
T o d a s y c a d a u n a d e estas o p c io n e s son v ia b le s . L a s tr u c tu ra c ió n d e d a to s c o m ie n z a p o r u n a a c tiv id a d de
o rg a n iz a c io n e s d e l s o ftw a re d e b e rá n s e le c c io n a r a q u e in g e n ie r ía in v e rs a . L a a rq u ite c tu ra d e d a to s a c tu a l se
l l a que re s u lte m á s a d e c u a d a p a ra c a d a caso. a n a liz a m in u c io s a m e n te y se d e fin e n lo s m o d e lo s de
546
CAP IT U LO 30 REINGENIERÍA
datos n ecesarios (C apítulo 12). Se id entifican los o b je do u n « m o to r de rein g en iería» a u to m a tiz a d o . E n el
tos de datos y atributos y, a continuación, se revisan las m o to r se insertaría el program a v iejo , que lo analizaría,
estructuras de datos a efectos de calidad. reestructuraría y después regeneraría la fo rm a de e x h i
b ir los m ejores aspectosde la calidad del softw are. D es
p u és de un espacio de tiem po c o rto , es p ro b a b le que
llegue a aparecer este «m otor», p ero los fa b ric a n te s de
Referencia C A SE han presentado herram ientas que p ro p o rc io n an
Para poder obtener una gran cantidad de recursos un subconjunto lim itado de estas cap acid ad es y que se
parala comunidad de reingeniería visite esto dirección: enfrentan con dom inios de aplicacio n esesp ecífico s (por
vmw.comp.lancs.ac.uk/projects/RenaissanceWeb/ e je m p lo , ap licacio n es que h an sid o im p le m e n ta d a s
em pleando un sistem a de bases de datos específico). L o
C uando la estructura de datos es débil (por ejem plo, que es m ás im portante, estas h erra m ie n tas d e re in g e
actualm ente se im plem en tan archivos planos, cuando niería cada vez son m ás sofisticadas.
un enfoque relaciona 1 sim plificaría m uchísim o el p ro
L a ingeniería directa, que se denom ina ta m b ién ren o
cesam iento), se aplica u n a reingeniería a los datos. vación o reclamación [CHI90], no solam ente recupera la
D ado q u e la a rq u ite c tu ra de d a to s tie n e u n a gran inform ación de diseño de un so ftw arey a existen te, sino
influencia sobre la arquitectura del p rogram a, y tam bién que, además, utiliza esta inform aciónpara alterar o reco n s
so b re los alg o ritm o s que lo p u e b la n , los ca m b io s en tru ir el sistem a existente en un esfuerzo p o r m e jo ra r su
datos d arán lug ar invariablem ente a cam bios o b ien de calidad global. E n la m ayoría de los casos, el softw are
arquitectura o b ien de código. procedente de una reingeniería vuelve a im p lem e n tar la
I n g e n ie r ía d ir e c ta (fo r w a r d e n g in e e r in g ). E n un funcionalidad del sistema existente,y añade adem ás n u e
m undo ideal, las aplicaciones se reco n struyen u tilizan vas funcionesy/o m ejora el rendim iento global.
www.FreeLibros.org
sa es m onodireccional, toda la inform ación extraída del
Lo notación indicadoaquí se explica con detalle
código fu en te se proporcionará a la ingeniería del soft
en el Capítulo 12.
w are que podrá en to n ces utilizarla durante la actividad
547
IN GE NI ER ÍA DEL S O F TW A R E . UN E N F O Q U E P R Á C T I C O
T o d o se c o m p lic a c u a n d o se c o n s id e ra e l c ó d ig o que
Referencia W e b ^ re s id e e n e l in te rio r d e l c o m p o n e n te . E l in g e n ie ro bus
Lo página de Recuperación de diseños y entendimiento c a las secciones de c ó d ig o q u e re p re s e n ta n las c o n fig u
de programasproporcionalos recursos útiles para untrabajo ra c io n e s g e n é ric a s d e p ro c e d im ie n to s . E n casi to dos los
de reingeniería: www.sel.iit.nrt.ca/projects/dr/dr.html c o m p o n e n te s , e x is te u n a s e c c ió n d e c ó d ig o que p re p a
ra lo s datos p a ra su p ro c e s a m ie n to (d e n tro d e l c o m p o
E l n ú c le o de la in g e n ie ría in v e rs a es u n a a c tiv id a d n e n te ), u n a s e c c ió n d ife re n te d e c ó d ig o q u e e fe c tú a el
d e n o m in a d a extracción de abstracciones. E l in g e n ie ro p ro c e s a m ie n to y o tra s e c c ió n d e c ó d ig o que p re p a ra los
tie n e q u e e v a lu a r e l v ie jo p ro g ra m a y a p a rtir d e l c ó d i re s u lta d o s d e l p ro c e s a m ie n to p a ra e x p o rta rlo s d e ese
g o fu e n te (q u e n o suele e sta r d o c u m e n ta d o ) tie n e que c o m p o n e n te . E n e l in te r io r d e c a d a u n a d e estas sec
e x tr a e r u n a e s p e c ific a c ió n s ig n if ic a tiv a d e l p ro c e s a - c io n e s , se e n c u e n tra n c o n fig u r a c io n e s m á s p eq u eñ as.
3 El código se puede reestructurar autom áticam ente em pleando un 4 Con frecuencia, las especificaciones escritas en fases centradas de
www.FreeLibros.org
((m otorde reestructuración), —una herram ienta CASE que reestruc la historia del program a no llegan a actualizarse nunca. A medida
tura el código fuente— . que se hacen cam bios, el código deja de satisfacer esas especifica
ciones.
548
CAPÍTULO 30 REINGENIERIA
P or ejem p lo , suele producirse u n a v erificación de los 3. Para toda variable (dentro de un program a) que rep re
datos y u n a co m probación de los lím ites den tro de la sente una m atriz o archivo, la construcción d e u n lis
sección de código que p rep ara los datos para su p ro c e tado de todas las variables que tengan u n a re la ció n
sam iento. lógica con ella.
P ara los sistem as grandes, la ingeniería inversa sue
le efectuarse m ediante el uso de un enfoque sem iauto-
m atizad o . L a s h e rra m ie n ta s C A S E se u tiliz a n p a ra
«analizar» la sem ántica del código existente. L a salida B i ksptóxim oscñxlos comptomlsosrelofivamente
de este p ro ceso se p asa en to n ces a unas herram ientas significativos en/'asestruáiras efedatos pueden conducii
o tener pioblem s pdenciámentecotostróficos. Fíjese
de reestru ctu ració n y de ingeniería directa que com ple
por ejemplo en el electo del año 2000.
tarán el p roceso de reingeniería.
E stos pasos hacen posible que el in g en iero d el so ft
30.3.2. I n g e n ie r ía in v e r sa p a ra co m p ren d er w are identifique las clases del program a que in te ra ctú -
lo s d a to s an con las estructuras de datos globales.
www.FreeLibros.org
5 Para una descripción com pleta de e sto s concep tos o rien tad o s a
objetos, véase la Parte Cuarta de este libro.
549
IN GENIERÍA DEL S OFT W ARE . UN E N F O Q U E P R Á C T I C O
Una vez que se conoce la inform ación definida en los . ¿Cuáles son las acciones básicas que deberá proce
pasos anteriores, se pueden aplicar una serie de trans sar la interfaz, por ejem plo, acciones de teclado y
formaciones [PRE94] para hacer correspondería estruc clics de ratón?
tura de la vieja base de datos con una nueva estructura . ¿Cuál es la descripción com pacta de la respuesta de
de base de datos. comportamiento del sistema a estas acciones?
■ ¿Qué queremos decir con «sustitución», o más exac
30.3.3. I n g e n ie r ía in v e r s a d e in te r f a c e s tamente, qué concepto de equivalencia de interfaces
d e u s u a r io es relevante en este caso?
Las IGUs sofisticadas se van volviendo de rigor para La notación de m odelado de comportamiento (Capí
los productos basados en com putadoras y para los sis tulo 12)puede proporcionar una form a de desarrollar las
tem as de todo tipo. Por tanto el nuevo desarrollo de respuestas de las dos prim eras preguntas indicadas ante
interfaces de usuario ha pasado a ser uno de los tipos riormente. Gran parte de la inform ación necesaria para
m ás com unes de las actividades de reingeniería. A ho crear un modelo de comportamiento se puede obtener
ra bien, antes de que se pueda reconstruir una interfaz mediante la observación de la m anifestación extema de
de usuario, deberá tener lugar una actividad de inge la interfaz existente. Ahora bien, es preciso extraer del
niería inuersa. código la inform ación adicional necesaria para crear el
m odelo de comportamiento.
A ¿Cómo puedo entender Es im portante indicar que una IGU de sustitución
W el funcionamiento de la puede que no refleje la interfaz antigua de form a exac
interfaz de usuario existente? ta (de hecho, puede ser totalm ente diferente). Con fre
cuencia, m erece la pena d esa rro llar m etáforas de
Para com prender totalmente una interfaz de usuario interacción nuevas. Por ejem plo, una solicitud de IU
ya existente (IU), es preciso especificar la estructura y antigua en la que un usuario proporcione un
comportamiento de la interfaz. M erlo y sus colabora superior (del 1 a 10)para encoger o agrandar una ima
dores [M ER93] sugieren tres preguntas básicas a las gen gráfica. Es posible que una IGU diseñada utilice
cuales hay que responder cuando com ienza la ingenie una barra de im ágenes y un ratón para realizar la mis
ría inversa de la IU : m a función.
L a reestructuración del softw are m odifica el código « Reduce la frustración entre ingenieros del software
fuente y/o los datos en un intento de adecuarlo a futu que deban trabajar con el program a, mejorando por
ros cambios. En general, la reestructuración no m odifi tanto la productividad y haciendo m ás sencillo el
ca la arquitectura global del programa. Tiende a centrarse aprendizaje.
en los detalles de diseño de m ódulos individuales y en • Reduce el esfuerzo requerido para llevar a cabo las
estructuras de datos locales definidas dentro de los actividades de mantenimiento.
módulos. Si el esfuerzo de la reestructuración se extien • Hace que el software sea m ás sencillo de comprobar
de m ás allá de los límites de lo s m ódulos y abarca la y de depurar.
arquitectura del software, la reestructuración pasa a ser
La reestructuración se produce cuando la arquitectura
ingeniería directa (Sección 30.5).
básica de la aplicación es sólida, aun cuando sus interio
ridades técnicas necesiten un retoque. Com ienza cuando
H I ¿Qué beneficios se derivan existen partes considerables del software que son Útiles
W de la reestructuración? todavía, y solamente existe un subconjuntode todos los
módulos y datos que requieren una extensa modificación6.
A m old [ARN89] define un cierto número de bene
ficios que se pueden lograr cuando se reestructura el 30.4.1. R e estru ctu r a ció n d e l c ó d ig o
software: La reestructuración del código se lleva a cabo para con
. Program as de m ayor calidad — con m ejor docu seguir un diseño que produzca la m isma función pero con
m entación y m enos com plejidad, y ajustados a las m ayor calidad que el program a original. En general, las
prácticas y estándares de la ingeniería del software técnicas de reestructuracióndel código (por ejemplo, las
moderna— . técnicas de sim plificaciónlógica de Wamier [WAR74])
www.FreeLibros.org
6 En algunas ocasiones,resulta difícil distinguir entre una reestructura
ción extensa y un nuevo desarrollo. Ambos son casos de reingeniería.
550
CAPÍTULO SO REINGENIERÍA
U n program a que posea flujo de control es el equivalente caciones, aplicando un enfoque de ingeniería del soft
gráfico de un plato de espaguetis con « m ódulos»,es decir w are a todos los segm entos revisados.
con 2.000 sentencias de longitud; con p ocas líneas de 4 . L a posibilidad de rediseñar, recodificar y com probar
com entarioútiles en 290.000 sentenciasde código fuente, el program a en su totalidad, utilizando herram ientas
y sin ninguna otra docum entación que se deba modificar CASE (h erram ien tas de re in g e n ie ría ) que servirán
para ajustarle a los requisitos de cam bios del usuario. Se para com prender el d iseño actual.
puede decir que disponem os de las opciones siguientes:
1. L a po sib ilid ad de esforzarse p o r efectuar una m odi N o existe u n a Única opción « c o rre c ta» .L a s circuns
ficación tras otra, luchando co n el d iseño im plícito tancias pueden im poner la prim era opción, aun cuando
y con el código fuente p ara im p lem en tar los cam bios las otras sean las preferidas.
necesarios. E n lu g a r d e e s p e ra r a que se re c ib a u n a so lic itu d
2. L a p o sib ilid ad de inten tar com prender el fu n ciona d e m a n te n im ie n to , la o rg a n iz a c ió n d e d e s a rro llo o
miento interno m ás amplio del programa, en un esfuerzo d e s o p o rte u tiliz a r á lo s r e s u lta d o s d e l a n á lis is de
por hacer que las m odificaciones sean m ás efectivas. in v e n ta rio p a ra se le c c io n a r el p ro g ra m a (1) q u e c o n
tin ú e u tiliz á n d o se d u ra n te u n n ú m e ro d e te rm in a d o
d e a ñ o s, ( 2 ) q u e se e s té u tiliz a n d o c o n é x ito e n la
¿Qué opciones existen
www.FreeLibros.org
3. L a p o sib ilid ad de rediseñar, reco d ificar y com probar d u cido po r M iller [M IL 8 1] con el nom bre de «reajuste
aquellas partes del softw are que req uieran m odifi- estructurado». D efinía este concepto com o «la aplica
551
I N G E N IE RÍ A DEL S O F TW A RE . UN E N F O Q U E P R Á C T I C O
la relngenieríaes muy similaral hecho de lavarse Es im portante ten er en cuenta que la m igración d es
los dientes. Sepuedepensar en mil razanes de co m p u tad o ras cen trales a un p ro ceso C/S requiere
y tardaren lavárselas, dejándoloparomás tarde. tan to una rein g e n ie ría del n e g o cio c o m o u n a rein g e
Pera, al final, estas tácticas deretrasarlos cosos niería del softw are. A dem ás, es preciso establecer una
siempre volverána rondemos. «infraestructura de red de em presa». [JAY94]
www.FreeLibros.org
ap licar rein g en iería. E l p ro g ram a que se ha v u elto a
d e sa rro lla r a m p lía las c a p a c id a d e s d e la a p lic a c ió n aplicaciones de cliente proporcionan la funcionalidad
anterior. deseada para la com unidad de usuarios.
552
CAPÍTULO 30 REINGENIERÍA
L a s fu n c io n e s d e l s is te m a d e g e s tió n d e bases d e U n e s tu d io c o m p le to so b re e l d is e ñ o y r e in g e n ie r ía
datos y a e x is te n te y la a rq u ite c tu ra d e datos d e la base d e s o ftw a re c lie n te /s e rv id o r es m ás a d e c u a d o p a ra o tro s
d e d a to s e x is te n te d e b e rá n s u fr ir u n p ro c e s o d e in g e lib ro s e s p e c ia liz a d o s e n este m a te ria . E l le c to r in te r e
n ie r ía in v e rs a c o m o p re c e d e n te p a ra e l re d is e ñ o d e la sado d e b e rá c o n s u lta r [ V A S 9 3 ] , [ I N M 9 3 [ y [ B E R 9 2 ] ,
c a p a d e fu n d a m e n to d e la b ase d e d a to s . E n a lg u n o s
casos, se c re a u n n u e v o m o d e lo de datos (C a p ítu lo 1 2).
30.5.2. I n g e n i e r í a d i r e c t a p a r a a r q u i t e c t u r a s
E n to d o s lo s casos, la base d e datos C /S s u fre u n p r o
o r i e n t a d a s a o b je to s
ceso d e re in g e n ie ría p a ra a s e g u ra r q u e la s tra n s a c c io
nes se e je c u ta n c o n s is te n te m e n te ; p a ra a s e g u ra r q u e L a in g e n ie ría d e l s o ftw a re o rie n ta d a a o b je to s se h a tran s
to d as la s a c tu a liz a c io n e s se e fe c tú e n ú n ic a m e n te p o r fo r m a d o e n e l p a ra d ig m a o p c io n a l d e d e s a r r o llo p a ra
u s u a rio s a u to riz a d o s ; p a ra a s e g u ra r q u e se im p o n g a n m u c h a s o rg a n iz a c io n e s d e s o ftw a re . S in e m b a rg o , ¿qué
las re g las d e n e g o c io s fu n d a m e n ta le s (p o r e je m p lo , antes sucede c o n la s a p lic a c io n e s e x is te n te s q u e se d e s a rro
d e b o rra r e l re g is tro de u n p ro v e e d o r, e l s e rv id o r se ase . lla ro n e m p le a n d o m é to d o s c o n v e n c io n a le s ? E n a lg u n o s
g u ra d e q u e n o e x is ta n in g ú n re g is tro p e n d ie n te , c o n casos, la re sp u es ta c o n sis te e n d e ja r estas a p lic a c io n e s
tra to o c o m u n ic a c ió n p a ra ese p ro v e e d o r ); p a ra a se g u ra r ta l y c o m o e ran . P e ro e n o tro s casos, es p re c is o a p lic a r
q ue se p u e d a n a d m itir las c o n su ltas d e fo r m a e fic a z ; y u n a r e in g e n ie r ía a las v ie ja s a p lic a c io n e s p a ra q u e se
p a ra a s e g u ra r que se h a e s ta b le c id o u n a c a p a c id a d c o m p u e d a n in te g ra r fá c ilm e n te e n g ra n d e s sistem as o rie n ta
p le ta d e a rc h iv a d o . dos a o b je to s .
L a re in g e n ie ría d e l s o ftw a re c o n v e n c io n a l p a ra pro
d u c ir u n a im p le m e n ta c ió n o rie n ta d a a o b je to s h a ce uso
Interfaz: IGU de m u c h a s de las m is m a s té c n ic a s d e sc rita s e n la C u a r
ta P a rte d e este lib ro . E n p r im e r lu g a r, se h a ce u n a in g e
n ie r ía in v e rs a d e l s o ftw a re e x is te n te p a ra que sea p o s ib le
Aplicaciones cliente
c re a r lo s m o d e lo s a d ecu ad o s d e d a to s , fu n c io n a l y de
c o m p o rta m ie n to . S i e l s is te m a que se a p lic a a la re in g e
n ie r ía e x tie n d e la fu n c io n a lid a d o c o m p o rta m ie n to d e la
a p lic a c ió n o rig in a l, se c re a n casos p rá c tic o s (C a p ítu lo s
Interfaz: solicitudes de proceso 11 y 2 1 ). L o s m o d e lo s d e datos c rea d o s d u ra n te la in g e
n ie r ía in v e rs a se u tiliz a n en to n c es ju n t o c o n u n m o d e la
d o C R C (C a p ít u lo 2 1 ) p a ra e s ta b le c e r la base p a ra la
d e fin ic ió n d e clases. L a s je ra rq u ía s d e clases, lo s m o d e
lo s d e re la c io n e s e n tre o b je to s , lo s m o d e lo s d e c o m p o r
ta m ie n to d e o b je to s , y lo s s u b s is te m a s se d e fin e n a
c o n tin u a c ió n , y c o m ie n z a e l d is e ñ o o rie n ta d o a o b je to s .
Interfaz: transacciones y consultas A m e d id a que la in g e n ie ría d ire c ta o rie n ta d a a objetos
pasa d e l análisis hasta e l d iseñ o , se p o d rá in v o c a r e l m o d e
Base de datos
lo d e pro ceso d e IS B C (C a p ítu lo 2 7 ). S i la a p lic ac ió n e xis
ten te se e n c u e n tra c o n un d o m in io y a h a sido p o p u la riza d a
p o r m u c h as a p lic a c io n e s o rie n ta d a s a o b je to s , es p ro b a
b le que e x is ta u n a b ib lio te c a ro b u s ta d e c o m p o n e n te s y
F IG U R A 30.4. Proceso de reingeniería de aplicaciones que se p u e d a u tiliz a r d u ran te la in g e n ie ría directa.
de computadores centrales a cliente/servidor.
P ara a q u ellas clases que sea p re cis o c o n s tru irp a rtie n d o
d e c e ro , q u iz á sea p o s ib le r e u tiliz a r a lg o ritm o s y e s tru c
L a c a p a d e re g la s d e n e g o c io s re p re s e n ta e l s o ftw a re tu ras d e datos p ro c e d e n te s d e la a p lic a c ió n c o n v e n c io n a l
re s id e n te ta n to e n e l c lie n te c o m o e n e l s e rv id o r. E s te y a e x is te n te . S i e m b a rg o , es p re c is o v o lv e r a d is e ñ a rlo s
s o ftw a re lle v a a c a b o las ta re as d e c o n tro l y c o o rd in a p a ra a justarse a la a rq u ite c tu ra o rie n ta d a a o b je to s .
c ió n p a ra a s e g u ra r q u e las tra n s a c c io n e s y c o n s u lta s
e n tre la a p lic a c ió n c lie n te y la base d e datos se a ju s te n
30.5.3. I n g e n i e r í a d i r e c t a p a r a in t e r f a c e s
a los p ro ceso s d e n e g o c io s e sta b lec id o s .
L a c ap a d e a p lic a c ió n d e l c lie n te im p le m e n ta las fu n d e u s u a r io
cio n es d e n e g o c io s re q u e rid a s p o r g ru p o s e s p e c ífic o s de C u an d o las a p lic ac io n es m ig ra n desde la co m p u ta d o ra c e n
usuarios fin a les . E n m u c h o s casos, se s eg m e n ta u n a a p li tr a l a la c o m p u ta d o ra d e so b re m es a, lo s u s u a rio s y a n o
c a c ió n d e c o m p u ta d o ra c e n tra l e n u n c ie rto n ú m e ro de están dispuestos a a d m itir unas interfaces d e usuarios a rca
a p lic a c io n e s m ás p e q u e ñ a s , s o m e tid a s a re in g e n ie ría , y nas basadas e n caracteres. D e h e ch o , u n a p a rte s ig n ific a
a d ec u ad as p a ra su fu n c io n a m ie n to d e s o b re m e s a . L a tiv a de todos los esfuerzos in vertid o s en la tran sició n desde
la c o m p u ta c ió n d e c o m p u ta d o ra ce n tra l hasta la a rq u ite c
www.FreeLibros.org
c o m u n ic a c ió n e n tre a p lic a c io n e s de s o b re m es a (c u a n d o
es n e c e s a ria ) s erá c o n tro la d a p o r la c a p a d e re g la s d e tu ra c lie n te /s e rv id o r se p u e d e n re in v e rtir en la re in g e n ie
n egocios. ría d e las in te rfa c es d e u s u ario d e la a p lic a c ió n clie n te .
553
IN GE NI E RÍ A DEL SOF TW ARE . UN E N F O Q U E P R A C T I C O
www.FreeLibros.org
d e stin a rse a la re in g e n ie ría , m ie n tra s que las dem ás
el v alo r nom inal); po d rán ser p ro p u estas h a sta que se d isp o n g a de más
L = v id a esperada d el sistema. recursos.
554
CAP ITU LO 30 R E I N G E N IE R lA
[ARN89] Amold, R. S., «Software Restructuring», Proc. [DEM95] DeMarco, T., «Lean and Mean», IEEE Software,
IEEE, vol. 77, n.° 4, Abril de 1989,pp. 607-617. Noviembre de 1995,pp. 101-102.
[BER92] Berson, A Client/Server Architecture, McGraw- [DIC95] Dickinson, B., Strategic Business Reengineering,
Hill, 1992. LCI Press, 1995.
[BLE93] Bleakley,F.R., «The Best Plans: Many Companies [HAM90] Flammer, M., «Reengineer Work: D on’t Automa-
Try ManagementFads, Only to See Them Flop», The Wall te, Oblitérate», Harvard Business Review, Julio-Agosto
Street Journal, 6 de Julio de 1993, p. 1. de 1990,pp. 104-112.
[BRE91] Breuer, P.T., y K. Laño, «Creating Specification [HAN93] Flanna, M., «Maintenance Burden Begging for a
From Code: Reverse-Engineering Techniques», Journal Remedy», Datamation, Abril de 1993,pp. 53-63.
o f Software Muintenance: Research and Practice, vol. 3,
Wiley, 1991,pp. 145-162. [INM93] Inmon. W.I I.. Developing Client Server Applica
tions, QED Publishing, 1993.
[CAN72] Canning, R., «The Maintenance “Iceberg”», EDP
A nalyzer,vol. 10,n.° 10, Octubre de 1972. [JAY94] Jaychandra, Y., Re-engineeringtheNetworked Enter
prise », MeGraw-Hi11, 1994.
[CASSS] «Case Tools for Reverse Engineering», CASE Out
look, CASE Consulting Group, Lake Oswego, OR, vol. 2, [MAR94] Markosian, L. et al.,«Using an Enabling Techno
n.° 2, 1988,pp. 1-15. logy to Reengineer Legacy Systems, CA CM, vol. 37,n.° 5,
Mayo de 1994,pp. 58-70.
[CHI90] Chifofsky, E.J., y J.H. Cross, II, «Reverse Enginee
ring and Design Recovery: ATaxonomy», IEEE Software, [MER93] Merlo, E. et al., «Reverse Engineering of User
Enero de 1990,pp. 13-17. Interfaces», Proc. Working Conference on Reverse Engi
neering, IEEE, Baltimore, MD, Mayo de 1993,pp. 171
[DAV90] Davenport, T.Ff, y J.E. Young, «The New Indus
www.FreeLibros.org
178. '
trial Engineering: Information Technology and Business
Process Redesign», Sloan Management Review, Summer [MER95] Merlo, E. et al., «Reengineering User Interfaces»,
1990,pp. 11-27. ' IEEE Software, Enero de 1995,pp. 64-73.
555
I N GE NI E RÍ A DEL S OFT W ARE . UN E N F O Q U E P R A C T I C O
[MIL81] Miller, J., T eclm iq u eso fP ro g ra m an d S ystem M ain [STE93] Steward, T.A., «Reengineering: The Elot New Mana-
tenance (G. Parikh, ed.), Winthrop Publishers, 1981. ging Tool», F ortune, 23 de Agosto de 1993, pp. 41-48.
[OSB90] Osbome, W.M., y E.J. Chifofsky, «Fitting Pieces to [SWA76] Swanson, E.B., «The Dimensions of Maintenan
the Maintenance Puzzle», IEEE Softw are, Enero de 1990, ce», P ro c. 2 nd In tl. Conf. S oftw are E n g in eerin g , IEEE,
pp. 10-11. Octubre de 1976,pp. 492-497.
[PRE94] Premerlani, W.J., y M.R. Blaha, «An Approach for [VAS93] Vaskevitch,D., C lientlServer Strategies, IDGBooks,
Reverse Engineering of Relational Databases», C A C M , San Mateo, CA, 1993.
vol. 37, n.° 5, Mayo de 1994,pp. 42-49. [WAR74] Wamier, J.D., L ó g ic a 1 C on stru ction o f Prograrns,
[RIC89] Ricketts, J.A., J.C. DelMonaco y M.W. Weeks, «Data VanNostrand Reinhold, 1974.
Reengineering for Application Systems», Proc. Conf. Soft [WEI95] Weisz, M., «BPR is Like Teenage Sex», A m erican
w are M ain ten an ce-1989, IEEE, 1989, pp. 174-179. P ro g ra rn m er,vo \. 8, n.° 6, Junio de 1995,pp. 9-15.
30.4. Explore la lista de comprobación del análisis de inventa 30.11. Investigue en la literatura para hallar uno o dos artícu
rio presentada en el sitio Web SEPA e intente desarrollaran sis los que describan casos prácticos de reingeniería de grandes
tema de evaluación cuantitativodel software que se pueda aplicar computadoras para producir una arquitectura cliente/servidor.
a los programas existentes en un esfuerzo de seleccionar los pro Presente un resumen.
gramas candidatos para su reingeniería. Su sistema deberá ir 30.12. ¿Cómo se determinarían los valores de P4 a P7 en el
más allá del análisis económico presentado en la Sección 30.6. modelo de costesy beneficios presentado en la Sección30.6?
Al igual que muchos tópicos candentes dentro de la comuni 1997), Hunt (P rocessM apping: H ow to R eengineer YourBusi-
dad de negocios, el bombo publicitario de la reingeniería de ness P rocesses, Wiley 1996), y C arry Johanson (B estPrac-
procesos de negocios ha dado pie a una visión más pragmáti tices in R een gin eerin g: W hat Works an d W h atD oesn 't in the
ca del tema. Elammery Champy (R eengineering the C o rp o R eengineering P rocess, McGraw-Hill, 1995) presentan casos
ration, HarperCollins, 1993) anticiparon gran interés por el prácticos y líneas generales detalladas para RPN.
tema con su best seller. Posteriormente, Elammer (B eyoncl Feldmann (T h e P ra ctica l G uide to Business P rocess Reen
R eengineering: H ow the P rocessed-C en tered O rganization is g in eerin g U sin g ID E F O , Dorset House, 1998) estudia una
C h angingO ur Work and O u rL ives , Elarper-Collins, 1997)refi- notación modelada que ayuda en la RPN. Berztiss ( S o f ia r e
nó su visión centrándose en temas «centrados en procesos». M eth o d s f o r Business R eengineering, Springer, 1996)y Spurr
www.FreeLibros.org
L o s libros de Andersen (B u sin ess P ro ce ss Irnprovernent y colaboradores (S o ftw a re A ssista n c e fo r B usiness R eengi
Toolhox, American Society for Quality, 1999), Elarrington et n eerin g, Wiley, 1994) estudian las herramientas y técnicas
al. (B u sinessP rocess Im provem ent Workhook, McGraw-Hill, que facilitan la RPN.
556
C A P Í T U L O 30 REI NG EN IER ÍA
Relativamente pocos libros se han dedicado a la reingenie mation Architectures: Reengineering Information Systems,
ría del software. Rada (Reengineering Software: How to Reu- Prentice Hall, 1996) estudia el puente que existe entre RPN
se Programming to Build New, State-Of-The-Art Software, y la tecnología de información. Aiken (Data Reverse Engi
Fitzroy Dearbom Publishers, 1999) se centra en la reinge neering, McGraw-Hill, 1996) estudia cómo reclamar, reor
niería a p n nivel técnico. Miller (Re engineering Legacy Soft ganizar y reutilizar los datos de la organización. Arnold
ware Systems, Digital Press, 1998) «proporciona un marco (SoftwareReengineering, IEEE Computer Society Press,
de trabajo para mantener los sistemas de aplicaciones sin 1993) ha publicado una antología excelente de los primeros
cronizados con las estrategias de negocios y con los cambios trabajos sobre las tecnologías de reingeniería del software.
tecnológicos». Umar (Application(Re¡Engineering: Building En Internet se disponen de gran variedad fuentes de infor
Web-BasedApplications and Dealing WithLegacies, Prentice mación sobre la reingeniería de procesos de negocios y la
Hall, 1997) proporciona una guía valiosa para aquellas orga reingeniería del software. Una lista actualizada de referen
nizaciones que quieren transformar los sistemas antiguos en cias a sitios (páginas) web se puede encontrar en la dirección
un entorno basado en Web. Cook (BuildingEnterprise Infor h ttp :/w w w .p re s s m a n 5 .c o m .
www.FreeLibros.org 557
www.FreeLibros.org
C A P ÍT U L O
^ A IN G E N IE R ÍA D EL S O F TW A R E
«3 I A S IS T ID A POR C O M P U T A D O R A
O D O e l m u n d o h a o íd o ese p ro v e rb io q u e h a b la d e lo s h ijo s d e l z a p a te ro : e l z a p a te ro
VI STAZO RÁPI DO
¿Qué es? Las herramientas CASE ayu de trabajo o para realizar algún hito tie niero del software en la producción de
dan a los gestores y practicantes de la ne un beneficio sustancial. Pero hay resultados de alta calidad. Además,
ingeniería del software en todas las algo incluso más importante. Las herra disponer de automatización permite
actividades asociadas a tos procesos mientas pueden proporcionar nuevas que el usuario de CASE elabore resul
de software. Automatizan las activida formas de observar la información de la tados adicionales y personalizados
des de gestión de proyecte gestionan ingeniería del software —formas que que no serán fáciles ni prácticos de
todos los productos de los trabajos ela- mejoran la perspicacia del ingeniero producir sin el soporte de las herra
horados a través del proceso, y ayudan que realiza el trabajo—. Esto conduce a mientas.
a los ingenieros en el trabajo de análi tomar mejores decisiones y conseguir ¿Cémo puedo «star sogueo d@ que
sis, diseño y codificación. Las herra una calidad mejor del software. lo b e hache eorroetam snio? Uti
mientas CASE se pueden integrar ¿Cuáles sen los pases? CASE se utili lice las herramientas como comple
dentro de un entorno sofisticado. za junto con el modelo de procesos que mento de las prácticas de ingeniería
¿Quién 1# h«e«? Los gestores de pro se haya elegido. Si se dispone de un del software —no como sustitutivo—
yectos y los ingenieros del software juego completo de herramientas, se uti- Antes de poder utilizar las herramien
¿Por qué es importante? La ingeniería fizará CASE a lo largo de casi todos los tas eficazmente deberán aprenderse
del software es difícil. Las herramientas pasos del proceso de software. los conceptos y métodos de la ingenie
www.FreeLibros.org
que reducen la cantidad de esfuerzo que ¿Cuál es e l producto obtenido? Las ría del software. Solo entonces CASE
se requiere para producir un producto herramientas CASE ayudan al inge proporcionará algún beneficio.
559
I N GE NI E RÍ A DEL SOF TW ARE . UN EN F O Q U E P R Á C T I C O
El m ejo r taller de un artesano — sea m ecánico, carp in El taller de ingeniería del softw are se denom ina un
tero o ingeniero del softw are — tiene tres característi entorno de a p o yo integrado a p r o y e c to s (que se des
cas fundam entales: (1) una colección de h erram ientas cribirá posteriorm ente en este cap ítu lo ), y el conjunto
útiles que le ay u d arán en to d o s los p aso s de la c o n s de herram ientas que llena ese taller se denom ina inge
trucció n de un producto; (2) u n a d isposición o rganiza niería del softw’are asistida p o r com putadora (CASE).
da que p erm itirá h allar rápidam ente las h erram ientas y C A S E p ro p o rc io n a al in g e n ie ro la p o sib ilid ad de
utilizarlas con eficacia; y (3) un artesano cualificado que autom atizar actividadesm anuales y de m ejorar su visión
entien d a la form a de u tilizar las herram ientas de m an e general de la ingeniería. A l igual que las herram ientas
ra eficaz. A h o ra es cu an d o los ingenieros del softw are de ingeniería y de diseño asistidos por com putadoraque
reco n o cen que n ecesitan m ás h erram ientas y m ás v aria utilizan los in g en iero s de otras d iscip lin as, las herra
das ju n to con un taller eficiente y organizado en el que m ien tas C A S E ayudan a g ara n tiza r que la calidad se
pued an ubicarlas. diseñe antes de llegar a construir el producto.
www.FreeLibros.org
puente entre las herram ien tas C A SE , su m arco de in te análisis), pero esta herram ienta no se com unica direc
g ración y la arquitectura del entorno. E l m arco de in te tam ente con otras, no está u n id a a una base de datos del
gración es un grupo de p rogram as especializados que p ro y e c to , y no fo rm a p a rte de un en to rn o integrado
560
CAPÍTULO 31 in g e n ie r ía del s o f t w a r e a s is t id a p o r c o m p u t a d o r a
C A SE (1-CASE). A unque e sta situación no es la ideal, puente entre herram ientas (por ejem plo,una herram ienta
se puede u tilizar u n a h erram ien ta C A S E b astante e fi de análisis y d iseño que se enlaza con un generador de
ciente, aunque se trate de u n a solicitud puntual. código). M ediante la utilización de este enfoque, la siner
g ia entre herram ientas puede p roducir unos resultados
finales que serían difíciles de crear em pleando c ad a una
H e rra m ie n ta in d iv id u a l
de las h e rra m ie n ta s p o r separado. L a in teg ra c ió n de
(s o lu c ió n p u n tu a l)
fu e n te única se produce cu an d o un único v endedor de
herram ientas C A SE integra una cierta cantidad de h e rra
Fuente única m ientas distintas y las vende en form a de paquete. A u n
In tercam bio de datos que este enfoque es bastante eficiente, la arq u itectu ra
cerrada de la m ayoría de los entornos de fu ente Unica
e v ita a ñ a d ir fá c ilm e n te h e rram ien tas p ro c e d e n te s de
Puentes y asociaciones
entre herram ientas otros fabricantes.
www.FreeLibros.org
herram ientas dentro del p roceso del software — . aplicación específica, estas herram ientas C A S E m o d e
L as herram ientas C A S E se p u ed en clasificar p o r su lan la inform ación de negocio cuando ésta se transfiere
fu n ció n , p o r su p a p e l co m o in stru m en to s para a d m i entre distintas entidades org an izativ asen el seno de una
561
in g e n ie r ía del s o f t w a r e , un e n f o q u e p r á c t ic o
www.FreeLibros.org
que el g esto r del proyecto construya u n a tabla de rie s
gos pro porcionando una guía d etallada en la id entifica H erram ientas de docum entación. Las herram ien
ción y análisis de riesgos. tas de producción de docum entos y de autoediciónpres-
562
CAPITULO 31 INGENIERÍA DEL S OF TW AR E A SIS TI D A P O R C O M P U T A D O R A
www.FreeLibros.org
1 La herramientas de diseño y de análisis orientado a objetos pro
porcionan representaciones análogas.
563
INGE NIE RÍA DEL S O F TW A RE . UN E N F O Q U E P R A C T I C O
www.FreeLibros.org
E n tre estas h e rra m ie n tas se in c lu y e n las q u e p resta n gram a que se esté ejecu tan d o , prueban la cobertura de
ayuda en la g eneración de texto, gráficos, form ularios, rutas, prueban las afirm aciones acerca del valor de varia
guiones, applets y otros elem entos de u n a p ág in a W eb. bles específicas e instrum entan p o r otro lado el flujo de
564
CAPÍTULO 31 I N GE NIE RI A DEL SOF TW ARE ASISTIDA P O R C O M P U T A D O R A
www.FreeLibros.org
ción entre los m iem bros del personal que estén embargo, los entornos integrados sí que existen, y con
trabajando en grandes proyectos de software. el paso de los años se van haciendo más poderosos.
565
IN GE NIE RÍA DEL S OFT W ARE . UN E N F O Q U E P R Á C T I C O
J i í I£ fiH A £ IÚ tlL
www.FreeLibros.org
ría d e los m o d e lo s (p o r e je m p lo , [F O R 9 0 ], [S H A 95] gestión de la interfaz hom bre-m áquina, y una bibliote
del m a rc o de re fe re n c ia de in te g ra c ió n re p re se n ta n a ca de objetos de visualización. A m bos proporcionan un
esto s co m p o n en tes co m o si fu e ra n capas. E n la F ig u m ecanism o consecuente para la com unicación entre la
566
CAPÍTULO 31 IN GENIERIA DEL S OF TW AR E A S I S T I D A P O R C O M P U T A D O R A
Herramienta
ti n r
Capa de herramientas
las funciones de gestión de configuración que se d e s
cribían en el C apítulo 8. E n esencia, el softw are de esta
|C A S E j
L J l__ H__II__I capa de la arquitectura de m arco de referencia pro p o r
ciona el m ecanism o para la integración de herram ien
Capa de gestión de objetos tas. C ada herram ienta C A SE «se enchufa» en la capa
Servicios de integración
Servicios de gestión de configuración de gestión de objetos. A l funcionar en co n ju n to con el
repositorio C A SE, la C G O proporciona los servicios de
'■¡hA integración —un conjunto de m ódulos estándar que aco
S p ó de-datos plan las herram ientas con el re p o s ito rio —. A dem ás, la
O M L proporciona los servicios de gestión de co n figu
ración haciendo posible la id e n tifica ció n de todos los
F IG U R A 31.3. Modelo de arquitectura para el marco objetos de configuración, llev an d o a cabo el control de
de referencia de integración. v e rsio n e s y p ro p o rc io n an d o ap o y o p a ra el co n tro l de
cam bios, auditorías y contabilidad de estados.
L a capa de h erra m ien ta s in co rp o ra un co n ju n to de L a capa de repositorio com partido es la base de datos
se rv ic io s de g e stió n d e h e rra m ie n ta s c o n las h e rra C A SE y las funciones de control de acceso que hacen
m ientas C A SE en sí. L os servicios de gestión de herra posible que la capa de gestión de objetos interactúe con
m ie n ta s (S G H ) c o n tro la n el c o m p o rta m ie n to de las la base de datos. L a in te g ra c ió n de d a to s se logra
h erram ientas d en tro del entorno. Si d u ran te la e je c u m ediante las capas de gestión de objetos y de rep o sito
ción de u n a o m ás h e rra m ie n tas se em p lea la m ultita- rio com partido que se estudian m ás adelante y con m ás
rea, SGH e fe c tú a la s in c ro n iz a c ió n y c o m u n ic a c ió n profundidad en este m ism o capítulo.
El D iccionario Webster define la palabra repositoriocom o del softw are) es interactuar con el repositorio em pleando
.«todo objeto o persona considerado centro de acum ula herram ientas CA SE integradas con él.
ción o almacenam iento». D urante las prim eras fases de la E n este libro, se utiliza un d eterm in ad o n ú m ero de
historia del desarrollo del softw are, el repositorio era en térm inos distintos para hacer alusión al lugar de alm a
realidad una persona -el programador que tenía que recor cenam iento de la inform ación de la ingeniería del soft
dar la ubicación de toda la inform ación relevante para un ware: base de datos C A SE , base de datos del p ro y e c to ,
determ inado proyecto de softw are, que tenía que recordar base de datos de entorno de apoyo integrado a p r o y e c
inform ación que nunca se había escrito y que tenía que to (EA1P), diccionario de requisitos (una base de datos
reconstruirla inform ación que se había perdido— . Triste lim itada) y repositorio, A unque existen sutiles d iferen
m ente, la utilización de una persona com o «centro de acu cias entre algunos de estos térm inos todos ellos hacen
m ulación y alm acenam iento» (aunque corresponda con la referencia al centro de acum ulación y alm acenam iento.
definición del diccionario) no funciona dem asiado bien.
En la actualidad, el repositorio es una «cosa» —una base
31.6.1. El papel del repositorio en 1-CASE
www.FreeLibros.org
de datos que actúa com o centro tanto para la acum ulación
com o para el alm acenam iento de inform ación de ingenie El repositorio de un en to rn o 1-CASE es el conjunto de
ría del software— . El papel de la persona (del ingeniero m ecanism os y de estructuras de datos que consiguen la
567
IN GE NI ER ÍA DEL S O F T W A R E . UN E N F O Q U E P R Á C T I C O
§
determ ina la form a en que se almacena la inform ación
típicas de los SGBD que dan
en el repositorio, la forma en que las herram ientas pue
soporte a CASE ?
den acceder a los datos y estos datos pueden ser visua
lizados por los ingenieros de software, el grado hasta el
cual se puede m antener la seguridad e integridad de los Independencia de datos. Las herram ientas CASE y
datos, y la facilidad con que se puede ampliar el m ode las aplicaciones destino se aíslan del almacenamiento
lo ya existente para adm itir nuevas necesidades físico para que no se vean afectadas cuando la configu
[WEL89], ración del hardware se cambie.
El m etam odelo es la plantilla en la cual se sitúa la Controlde transacciones. El repositorio implementa
información de ingenieríadel software. Una descripción bloqueo de registros, admisiones de dos fases, registros
www.FreeLibros.org
detallada de estos modelos va más allá del alcance de este de transacciones y procedim ientos de recuperación para
libro. Para más información, el lector interesado podría m antener la integridad de los datos cuando existen usua
consultar [WEL89], [SHA95] y [GRI95], rios concurrentes.
568
CAPÍTULO 31 IN GENIERÍA DEL SOF TW ARE A SIS TID A P O R C O M P U T A D O R A
In fo rm a c ió n d e la e m p re sa C o n s tru c c ió n
Estructura organizativa Código fuente; código objeto
Análisis del área de n egocios Instrucciones de construcción del sistem a
Funciones de n egocios Im ágenes binarias
Reglas de n egocios Dependencias de configuración
M odelos de procesos (escenarios) Información de cam bios
Arquitectura de la información V a lid a c ió n y v e rific a c ió n
D is e ñ o de a p lic a c io n e s Plan de comprobación; casos de prueba de los
Reglas de m etodología datos
Representaciones gráficas G uiones de com probación de regresión
Diagramas de sistem a Resultados de com probaciones
Estándares de denom inación Análisis estadísticos
Reglas de integridad referenciales Métricas de calidad de softw are
Estructuras de datos In fo rm a c ió n de g e s tió n del p ro y e c to
Definiciones de proceso Planes de proyecto
Definiciones de clase Estructura de d esg lo se de tareas
Arboles de m enú Estimaciones; planificaciones
Criterios de rendimiento Carga de recursos; informe de problem as
Restricciones tem porales Solicitudes de cambios; informes de estado
Definiciones de pantalla Información de auditoría
Definiciones de informes
Definiciones lógicas D o c u m e n ta c ió n del s is te m a
Lógicas de com portam iento D ocum entos de requisitos
Algoritmos D iseños internos/externos
Reglas de transformación M anuales de usuario
T A B L A 31.1. Contenido de un repositorio CASE [FOR89B]
§
¿Cuáles son las características
c o n c u rre n te a l a b a s e d e d a to s m e d ia n te m ú lt ip le s especiales mostradas en el
h e rra m ie n ta s y p o r p a rte d e m ú ltip le s u s u a r io s , c o n repositorio CASE?
a rb itra je d e accesos y c o n b lo q u e o s e n e l n iv e l de a rc h i
vos o re g istro s. P a ra lo s e n to rn o s b a s a d o s e n re d e s , e l Imposición de una integridad. E l m o d e lo d e i n f o r
so p o rte m u ltiu s u a rio im p lic a ta m b ié n q u e e l re p o s ito m a c ió n d e l re p o s ito rio c o n tie n e ta m b ié n re g la s , o p o lí
r io se p o d rá c o m u n ic a r m e d ia n te in te r fa z c o n p ro to tic a s , q u e d e s c rib e n re g la s d e n e g o c io s v á lid a s y otras
c o lo s (a g e n te s d e s o lic itu d d e o b je to s ) y s e rv ic io s re s tric c io n e s y re q u is ito s a c e rc a d e la in fo r m a c ió n que
c o m u n e s d e red. se in s e rta e n e l re p o s ito rio (d ire c ta m e n te o a tra v é s de
E l e n to rn o C A S E ta m b ié n e fe c tú a d e m a n d a s espe u n a h e rra m ie n ta C A S E ) . E s p o s ib le e m p le a r u n s e rv i
c ia le s c o n re s p e c to a l re p o s ito rio que v a n m á s a llá d e c io lla m a d o disparador p a ra a c tiv a r las re g la s a s o c ia
www.FreeLibros.org
lo que está d is p o n ib le d ire c ta m e n te e n u n S G B D c o m e r das a u n o b je to s ie m p re que este sea m o d ific a d o , lo c u a l
c ia l. E n tre las c a ra c te rís tic a s e s p e cia le s d e lo s re p o s i hace p o s ib le v e rific a r la v a lid e z de los m o d e lo s de diseño
to rio s C A S E se in c lu y e n las s ig u ie n te s : e n tie m p o re a l.
569
INGE NIE RIA DEL S OFT W ARE . UN EN F O Q U E P R Á C T I C O
www.FreeLibros.org
diseño.
m k ¿De qué forma presta ayuda Por ejem plo, si se m odifica un diagram a de flujo de
W el repositorioa la GCS? datos, el repositorio puede detectar s i los diccionarios
570
C A P Í T U L O 31 INGE NIE RI A DEL S O F T W A R E A SIS TID A P O R C O M P U T A D O R A
de datos relacionados, definiciones de p antallas y m ódu de u n a serie de configuraciones que representarán h ito s
los de códigos tam b ién req u ieren m odificación y p u e específicos del proyecto o de versiones de producción.
dan llam ar la atención del desarrollador los com ponentes L a gestión de versiones p roporciona las versiones n e ce
afectados. sarias, y la gestión de enlaces hace seguim iento de las
S eg u im ie n to d e req u isito s. E sta fu n c ió n esp e c ia l interdependencias.
depende de la g estión de enlaces y p ro p o rciona la cap a Seguim ientode auditoría. El seguim iento de auditoría
cid ad de h ac e r s e g u im ie n to de los c o m p o n e n te s de establece inform ación extra acerca de cuándo, por qué, y
d iseñ o y de los p ro d u cto s d eriv ad o s que proceden de p o r quién son efectuados los cam bios. L a inform ación
u n a esp ecificaciónde requisitos específica (seguim iento acerca de las fuentes de las modificaciones se pueden intro
p rog resiv o ).A d em ás, p ro p o rcio n a la capacidad de id en ducir en form a de atributosde objetos específicos del repo
tificar cuáles son los requisitos que generaron cualquier sitorio. Un m ecanism o disparador del repositorio resultará
p roducto derivado (seguim iento regresivo). útil para solicitar al desarrollador o a la herram ienta que
G estión de configuración. U n a función de gestión de esté utilizando que inicie la introducción de inform ación
co nfiguración que trab aja m uy c e rc a de las fun cio n es de auditoría.(tal com o la razón del cam bio) siem pre que
de versiones y gestión de enlaces p ara hacer seguim iento se m odifique un elem ento de diseño.
J L E S n M E J S ________________________________ __
Las herram ientas de ingeniería del softw are asistida por p o r parte de fabricantes que trabajan a la v ez, o b ien se
com pu tad o ra abarcan todas las actividades del proceso puede lograr m ed ian te un softw are d e g estió n que se
del softw are y tam b ién aquellas actividades generales proporcione com o parte del repositorio.
que se aplican a lo largo de todo el proceso. C A SE co m L a integración entre hom bre y com putadora se logra
b in a u n c o n ju n to de b lo q u es de c o n s tru c c ió n que m ediante estándares de interfaz que se están vo lv ien d o
co m ienzan en el nivel del h ardw are y del softw are de ca d a vez m ás com u n es a lo largo y a n ch o d e to d a la
sistem a operativo y finalizan en las herram ientas in d i industria. Para fa c ilita r la in teg ra ció n d e los usuarios
viduales. con las h erram ien tas,d e las herram ientas entre sí, de las
E n este capítulo se h a tenido en co nsideración una herram ientas con los datos y de los datos con otros datos
tax o n o m ía de herram ientas CA SE. L as categorías abar se diseña una arquitectura de integración.
can tanto las actividades de gestión co m o las técnicas, Se h a aludido al repositorio C A S E con el nom bre de
e in cluyen la m ay o r parte de las áreas de aplicación del «bus de softw are». L a inform ación p asa p o r él, y v a cir
softw are. T odas las categorías de herram ientas se han cu lan d o de herram ienta en h e rram ien ta a m e d id a que
considerado « soluciones puntuales». progresa el proceso de softw are. P ero el repositorio es
El e n to rn o 1-CA SE co m b in a m ec a n ism o s de in te m ucho m ás que un «bus». T am bién se trata de un lugar
gración p ara datos, herram ientas e interacción hom bre- de alm acenam iento que co m b in a sofisticados m ecan is
com putadora. L a integración de datos se puede conseguir m os para integrar herram ientas C A SE m e jo ran d o con-
m ediante el intercam bio directo de inform ación, m edian siguientem enteel proceso m ediante el cual se desarrolla
te estructuras de archivos com unes, m ediante datos co m el softw are. El repositorio es una base de datos relacio-
partidos o interoperabilidad, o a través de la utilización nal u orientada a objetos que es «el centro de acu m u la
de u n repositorio 1-CASE com pleto. L a integración de ción y alm acenam iento»de la inform ación de ingeniería
herram ientas se puede d iseñar de fo rm a p ersonalizada del softw are.
B 2 E t» . . i » . b C l A S ,
[FOR89a] Forte, G., «In Search of the Integrated Environ- [QED89] CASE: The Pot.ent.ial and the JÜtfálls, QED Infor
ment», CASE Outlook, Marzo/Abril de 1989,pp. 5-12. mation Sciences, Inc., Wellsley, MA, 1989,
[FOR89b] Forte, G., «Rally Round the Repository», CASE [SHA95] Sharon, D., y R. Bell, «Tools that Bind: Creating
Outlook, Diciembre de 1989,pp. 5-27. IntegratedEnvironments», IEEE Software, Marzo de 1995,
[FOR90] Forte, G., «Integrated CASE: ADefinition», Proc. pp. 76-85.
3 rdA m m al TEM IW O RKERS Intl. User's Group Confe-
rence, C adre Technologies, Providence, IR, Marzo de 1990. [SQE95] Testing Tools Reference Guide, Software Quality
Engineering, Jacksonville, FL, 1995.
www.FreeLibros.org
[GRI95] Griffen,J., «Repositories: Data Dictionary Descen-
dant Can Extend Legacy Code Investment», Application [WEL89] Welke, R.J. «M eta Systems on M eta Models»,
Development Trends, Abril de 1995, pp. 65-71. CASE Outlook, Diciembre de 1989,pp. 35-45.
571
IN GENIERÍA DEL S O F TW A RE . UN EN F O Q U E P R Á C T I C O
31.1. Haga una lista de todas las herramientas de desarrollo 31.6. ¿Existen situaciones en las cuales las herramientas de
de software que utilice. Organícelas de acuerdo con la taxo com probación dinám icas sean «la Única forma posible»? De
nomía presentada en este capítulo. ser así, ¿cuáles son?
31.2. Empleando las ideas introducidas en los Capítulos 14y 31.7. Describa otras actividades humanas en las cuales la inte
16,¿cómo cree usted que deberían de construirse los servicios gración de un conjunto de herramientas haya proporcionado
de portabilidad? un mayor beneficio que la utilización de cada una de esas herra
mientas de forma individual. N o utilice ejem plos de com pu
31.3. Construye un prototipo en papel para una herramienta
tación.
de gestión de proyectos que abarque las categorías indicadas
en la Sección 31.3. Utilice la Segunda Parte de este libro para 31.8. Describa lo que quiere decir la integración entre herra
obtener información adicional. m ientas y datos con sus propias palabras.
31.4. Lleve a cabo una investigación acerca de los sistema de 31.9. En diferentes lugares de este capítulo se utilizan los tér
gestión de bases de datos orientados a objetos. Estudie por qué minos m etam odelos y metadatos. Describa lo que significan
un SGBDOO sería ideal para herramientas GCS. estos términos em pleando sus propias palabras.
31.5. Recoja la inform ación de productos de al m enos tres 31.10.¿Se le ocurre algún elem ento de configuración adicio
herramientas CASE en una categona especificada por su pro nal que pudiera incluirse entre los elem entos del repositorio
fesor. Desarrolle una matriz que com pare las características. m ostrados en la Tabla 31.1? Haga una lista.
En los años ochenta y principios de los noventa se publica entornos de desarrollo de software. M uller y sus colaborado
ron varios libros sobre CASE en un esfuerzo de sacar provecho res (Com puterAided Software Engineering, Kluwer Academic
del alto grado de interés de la industria en ese momento. Entre Publishers, 1996) han editado una colección de descripciones
las primeras ofertas que todavía disfrutan de valor se encuentran: de investigación CASE a mediados de los noventa. La mejo
res fuentes de información actual sobre herramientas CASE se
Bergin, T. et al., Com puter-Aided Software Engineering:
encuentran en Internet, en publicaciones técnicas periódicas y
Issu es and T ren d sfo r the 1990s a nd B eyond, Idea G roup
en boletines informativos de industria.
Publishing, 1993.
El estándar 1209 IEEE (Evaluation and Selection ofC A SE
Braithwaite, K.S., A pplication D evelopm ent Using CA SE
T ools)presenta un conjunto de líneas generales para evaluar
Tools, Academic Press, 1990.
las herram ientas CASE para los «procesos de gestión de pro
Brown, A. W., D.J. Carney y E.J. M orris, P rincipies o j
yectos, procesos de predesarrollo, procesos de desarrollo, pro
CASE Toollntegration, O xford U niversity Press, 1994.
cesos de postdesarrollo y procesos integrales». Un informe
Clegg, D., y R. Barker, C A SE M ethod Fast-Track: A RAD
detallado de W allnau y F eiler (T o o lln teg ra tio n and Envi-
Approach, Addison Wesley, 1994.
ronm ent A rchitectures, Softw are E ngineering Instituto,
Lew is, T.G., C om puter-Aided Software Engineering, Van
CM U/SEI-9 1 -T R -ll, M ayo de 1991), aunque esté fechado,
Nostrand-Reinhold, 1990.
sigue siendo uno de los m ejores tratam ientos sobre entornos
My lis, R ., Inform ation Engineering; C A SE P ractices and
CASE fácilm ente disponibles.
Techniques, Wiley, 1993.
Una am plia v ariedad de fuentes de inform ación sobre
En la antología de Chifofsky (Com puter-Aided Software CA SE está disponible en Internet. Una amplia lista actuali
Engineering, IEEE Computer Society, 2.a Ed., 1992) se encuen zada de referencias a sitios (páginas) w eb se puede obtener
tra una colección útil de los primeros trabajos sobre CASE y en http :/www.pressman5.com.
www.FreeLibros.org 572
CAPÍTULO
32 P E R S P E C T IV A S F U T U R A S
Los cam bios de la tecnología de la ingeniería del softw are son, en efecto, «ráp id o s e im pla
cab les» , pero al m ism o tiem po el progreso suele ser bastante lento. Pero una vez que se tom a
la decisión de adaptar un m étodo nuevo (o u n a herram ienta nueva), la decisión de llevar a cabo
la form ación n ecesaria para com prender su aplicación, y la decisión de introducir la tecnología
en la cultura de desarrollo del softw are, y a h a surgido algo nuevo (e incluso m ejor) y co m ien
za de nuevo el proceso.
VI STAZO RÁPI DO
E n este capítulo se exam inan las tendencias futuras. N uestro intento no es explorar todas las
áreas de investigación que resulten prom etedoras. T am poco lo es m irar en una «bola de c ris
www.FreeLibros.org
tal» y p ro n o sticar el futuro, m ás bien se intentará explorar el ám bito del cam bio y la form a en
que el cam bio en sí va a afectar al proceso del softw are en los años venideros.
573
IN GE NI E RÍ A DEL S OFT W ARE . UN E N F O Q U E P R A C T I C O
Ü H H U l . ; '. - / . . . . ...i.
L a im po rtan cia del softw are de com pu tad o ra se puede de una corporación. El software es crucial para casi todos los
enunciar de m uchas form as. E n el C apítulo 1, el so ft aspectos del negocio. Pero de muchas maneras, el software es
también una tecnología oculta. Encontramos el software (fre
w are se caracterizaba com o diferenciador. L a función
cuentemente, sin darnos cuenta) cuando nos desplazamos has
prop o rcio n ad a p o r el softw are es lo que diferen cia a los ta nuestro trabajo, cuando efectuamos cualquier compra, cuando
productos, sistem as y servicios, y p ro p o rcio n a u n a v e n nos detenemos en el banco, cuando hacemos una llamada tele
taja com p etitiv a en el m ercado. S in e m b a rg o , el soft fónica, cuando visitamos al médico o cuando realizamoscual-
w are es m ás que u n d iferen ciad o r. L o s p ro g ra m a s, quiera de los cientos de actividades diarias que reflejan la vida
docum entos y d ato s que constituyen el softw are ayu moderna.
dan a g en erar la m ercan cía m ás im portante que pueda El software está en todas partes y, sin embargo, hay muchas
adquirir cualq u ier individuo, negocio o gobierno — la personas en puestos de responsabilidad que tienen poca o nin
guna comprensión de lo que realmente es, como se construye,
inform ación— . P re ssm a n y H errón [PRE91] describen
o de lo que significa para las institucionesque lo controlan (y a
el softw are de la fo rm a siguiente: las que controla). Y, lo que es más importante, tienen muy poca
El software de computadora es una de las pocas tecnologí idea de los peligros y oportunidades que este software ofrece.
as clave que tendrán un impacto significativo en los años 90. L a om nipresencia del softw are nos lleva a u n a con
Se trata de un mecanismo para automatizar negocios, indus clu sió n sencilla: siem pre que u n a te cn o lo g ía tiene un
trias y gobiernos, un medio para transferir nuevas tecnologías,
im pacto am plio —un im pacto que puede salvar vidas o
un método para adquirir experiencia valiosa que otras perso
nas puedan utilizar, un medio para diferenciar los productos de p o n e rla s en p e lig ro , co n stru ir n e g o cio s o destru irlo s,
una compañía de los productos de los de sus competidores, y in form ar a los je fe s de go b iern o o c o n f u n d ir lo s - , es
una ventana que permite examinar el conocimiento colectivo p reciso «m anejarla con cuidado».
. . .. " , J2„ . - uM .L O
L os cam bios en la info rm ática durante los últim os 50 E s posible que la influencia de las ciencias no ex p e
años han sido controlados p o r los avances en las « c ie n rim entales ayude a m o ldear la dirección de la investi
cias experim entales duras» — fisicoquím ica, cien cia de gación inform ática en las ciencias experim entales. Por
m ateriales e ingeniería— . D urante las p róxim as d éca ejem plo, el diseño del las «com putadoras futuras» p u e
das, lo s avances revolucionarios en la info rm ática serán de que sea dirigido m ás p o r un entendim iento de la p si
dirigidos p o r las c ie n c i a s n o experim entales suaves» c o lo g ía del c e re b ro que p o r el e n te n d im ie n to de la
- p s ic o lo g ía h u m a n a , b iología, n eu rofisiología, socio m icroelectrónica convencional.
logía, filosofía y otras— . El período de g estación de las L os cam bios que afectarán a la ingeniería del soft
tecnologías inform áticas que se puede d eriv ar de estas w are du ran te la próxim a d éc ad a se verán influenciados
disciplinas es m u y difícil de predecir. p o r cuatro fuentes sim ultáneas: (1) las personas que re a
lizan el trabajo; (2) el proceso que aplican; (3) la n atu
raleza de la inform ación, y (4) la tecnología inform ática
Q p ík H subyacente. E n las secciones sig u ientes, ca d a uno de
!¡6j8Í»ttóh¡iufo es que cada vez llego un día nuevo. estos com ponentes — personas,proceso, inform ación y
t e c n o l o g í a - se estudiarán detalladam ente.
2 2 .3 y la f o r m a en q o e c o n s t r u y e n sis t e m a s
El softw are necesario p ara los sistem as de alta tecnología w are, es posible que la productividad global del grupo
cada vez son m ás difíciles a m edida que van pasando los sufra. U n m étodo para resolver este problem a es crear
años y el tam año de los program as resultantes increm en un núm ero de equipos de ingeniería del softw are, por
ta de m anera proporcional. El crecim iento rápido del tam a el que se com partim entalicen las personas en grupos de
ño del program a «prom edio»nos presentará unos cuantos tra b a jo in d iv id u a le s. Sin e m b arg o , a m e d id a que el
problem as si no fuera por el sim ple hecho de que: a m edi núm ero de equipos de ingeniería del softw are aum en
da que el program a aum enta, el núm ero de personas que ta, la com unicación entre ellos es tan difícil y larga com o
www.FreeLibros.org
deben trabajar en él tam bién aumenta. la com unicación entre individuos. Es aún peor, la com u
L a exp erien cia in d ica que a m ed id a que aum enta el n ic ació n (e n tre in d iv id u o s o e q u ip o s) — es decir, es
núm ero de personas de un equipo de proyecto de soft dem asiado tiem po el que se pasa transfiriendo poco con
574
CAPÍTULO 32 P E R S P E C T I V A S FU T UR A S
tenido de inform ación, y to d a esta inform ación im p o r (o en continentes diferentes) se « en c u e n tre n » regular
tante suele «perderse entre las grietas»— . m ente. Pero el vídeo tam bién p ro p o rc io n a otra ventaja:
Si la com unidad de ingeniería del softw are va a tra se puede utilizar com o dep ó sito p ara conocim iento sobre
ta r el dilem a de la com unicación de m anera eficaz, el el softw are y para los recién lleg ad o s a un proyecto.
futuro de los ingenieros deberá ex perim entar cam bios L a ev o lu ció n de los a g e n tes in te lig e n te s ta m b ié n
radicales en la fo rm a en q ue los individuos y los equi cam b iará los patrones de tra b ajo de un in g e n ie ro del
pos se co m u n ic a n en tre sí. E l co rreo electró n ico , los softw are am pliando dram áticam ente las h e rram ien tas
tablones de anuncios y los sistem as de v ideoconferen del software. Los agentes in telig entesm ejorarán la h ab i
cia son los lugares com unes com o m ecan ism os de co n e lidad de los ingenieros m ed ian te la c o m p ro b a c ió n de
xión entre m u ch as perso n as de u na red de inform ación. los p ro d u cto s del tra b ajo u tilizan d o el c o n o c im ie n to
L a im portancia de estas herram ientas en el contexto del específico del dom inio, realizando ta rea s ad m in istra ti
trabajo de la ingeniería del softw are n o se puede sobre- vas, llevando a cabo una investigación d irig id a y c o o r
valorar. C on un sistem a de correo electrónico o de tablón dinando la com unicación entre personas.
de an u n cio s e fic a z , el p ro b le m a q u e se en cu e n tra un Finalm ente, la adquisiciónde conocim iento está cam
ingeniero del softw are en la ciudad de N ueva York, se biando profundamente. E n Intem et, un ingeniero del soft
puede reso lv er con la ayuda d e un com pañero en Tokio. w are puede subscribirse a un grupo de noticias centrado
E n realidad, los tablones de anuncios y los grupos de en áreas de tecnología de inm ediata preocupación. U na
n oticias especializados se convierten en los d ep ó sito s p regunta e n v iad a a un g rupo de n o ticias p ro v o c a r e s
de conocim iento q ue perm iten reco g er un conocim ien puestas de otras partes interesadasdesde cualquier lugar
to colectivo de un grupo grande de técn icos p ara resol del globo. L a W orld W ide W eb proporciona a l ingenie
v e r un pro b lem a técnico o un asunto de gestión. r o del softw are la b iblioteca m ás grande del m u n d o de
trabajos e inform es de investigación,m anuales, com en
tarios y referencias de la ingeniería del softw are'.
0 tHoque futuro es el trem endo agobio Si la h istoria pasad a se puede considerar un indicio,
f k r desorientación que inducimos en los individuos es ju s to decir que las m ism as personas no v an a c a m
s o ip é n d o lo s o dem asiados cambios en períodos biar. S in em bargo, las form as en que se co m unican, el
m uy coitos de tiem po. en torno en el que trabajan, la form a en que adq u ieren
el conocim iento, los m étodos y herram ientas que u tili
zan, la d iscip lin a que aplican, y p o r ta n to , la c u ltu ra
El vídeo perso n aliza la com unicación. Y lo m ejor es general del desarrollo del softw are sí c am b iarán sig n i
que hace p osible que com pañeros en lugares diferentes ficativa y profundam ente.
E s razonable caracterizar las dos p rim eras décadas de del m arco de tiem po asignado. L o s m odelo s evolutivos
la práctica de ingeniería del softw are com o la era del hacen h incapié en la necesidad de productos d e trabajo
«pensam ientolineal». Im p u lsad o p o r el m odelo de ciclo increm entales, análisis de riesgos, planificación y revisión
vital clásico, la ingeniería del softw are se h a enfocado de planes, y realim entación que provenga del cliente.
com o una actividad en la cual se podían aplicar una serie
de pasos secuenciales en un esfuerzo p o r resolver p ro
b lem as com plejos. S in em bargo, los enfoques lineales iQ cüio:
del desarrollo del softw are v an en co n tra de la form a en t a e j o i preparación de buen trabajo paro m oñona
que se c o nstruyen realm ente la m ay o ría de los sistem as. es bees? u d í m r trabajo hoy.
E n realidad, los sistem as com plejos ev olucionan de fo r r|lHitiM&ará
m a iterativa, e incluso increm ental. P o r esta razón, un
gran segm ento de la com unidad de la in g eniería del soft ¿Q ué actividades deberán de p oblar el p ro ceso e v o
w are se está desplazando h acia m odelos evolutivos para lu tiv o ? A lo largo d e la d éc ad a pasad a, el M o d e lo de
el desarrollo del softw are. m a d u re z de c a p a c id a d d e sa rro lla d o p o r el S o ftw are
L os m odelos de proceso evolutivos reconocen que la E ngineering Institute (SEI) [PAU93] ha tenido u n im pac
incertidumbre dom ina la m ayoría de los proyectos; que las to apreciable sobre los esfuerzos p o r m ejorar las p rá c
líneas tem porales suelen ser im posibles y cortas; y que la ticas de ingeniería del softw are. El M M C h a dado lugar
iteración proporciona la habilidad de dar una soluciónpar- a m uchos debates (por ejem plo, [B O L91] y [G IL 96]),
cial, aunque un producto com pleto no es posible dentro y sin em bargo p roporciona un a bu en a indicación de los
www.FreeLibros.org
1El sitio W eb SEPA puede proporcionar enlaces electrónicos con las
m aterias m ás im portantes que se p resentan en este libro.
575
IN GE NI E RÍ A DEL S O F T W A R E . UN E N F O Q U E P R Á C T I C O
atributos que d eben existir cuando se pone en práctica El crecim iento rápido de las aplicaciones basadas en
una b u en a ingeniería del softw are. W eb (W ebA pps) está cam biando tanto en el proceso de
L as tecnologías de objetos, ju n to con la ingeniería del la ingeniería del softw are com o en sus participantes. De
softw are (Capítulo 27) son un brote de la tendencia hacia nuevo, nos encontram os con un paradigm a increm en-
los m odelos de p roceso evolutivos. A m bos ten d rán un tal y evolutivo. Pero en el caso de las W ebApps, la inm e
im pacto profundo sobre la productividad de desarrollo del diatez, seguridad y estética se están convirtiendo en las
softw are y sobre la calidad del producto. L a reutilización p re o cu p a cio n es d om inantes. U n eq uipo de ingeniería
de com ponentes proporciona beneficios inm ediatosy con de W eb m ezcla técnicos con especialistas de contenido
vincentes. Cuando la reutilización se une a las herramientas (por ejem plo, artistas, m úsicos, videógrafos) para co n s
C A SE p ara los prototipos de u n a aplicación, los in cre tru ir una fuente de inform ación para una com unidad de
m entos del program a se pueden construir m ucho m ás rápi usuarios grande e im predecible. El softw are que h a sur
dam ente que m ediante la u tilización de enfoques gido del trabajo de la ingeniería de W eb ya ha dado com o
convencionales. L a construcción de prototipos arrastran resultado un cam bio radical tanto económ ico com o c u l
al cliente al proceso. Por tanto es probable que clientes y tural. A unque los conceptos y principios básicos trata
usuarios se im pliquen m ás en el desarrollo del software. dos en este libro son invariables,el proceso de ingeniería
E sto, a su vez, puede llevar a una satisfacción m ayor del del softw are deberá adaptarse para llegar a acoplarse a
usuario final y a una calidad m ejor del softw are global. la W eb.
www.FreeLibros.org
2 El crecim iento rápido de las tecnologías de m inería de datos (data
mining) y de alm acen es de d a to s (dala warehousing) reflejan este
rápido crecim iento.
576
CA PÍTULO 32 PERSPECTIVAS FUTURAS
co m binarlas de m o d o que nos proporcione algún b en e du ran te la próxim a década, el n ú m ero d e a lu m n o s que
ficio definido. cu rsa rá n estudios prim arios y s e c u n d a rio s , o la p re
sión habida sobre los políticos para re d u c ir los im p u e s
tos y lim itar p o r tanto los aum entos de su eld o p a ra los
Q p » - -
profesores.
6s el podar que nos capacita pora Todos estos elem entos de in fo rm a c ió n se p u e d e n
: v r d c o n o a rn e n to en nuestro propio beneficio com binar para form ular una representación del c o n o c i
cíe ios dem ás, m ie n to - e x is tir á una presión significativa so bre el sis
tlw n ir i, Wotsoii
tem a de educación de los E stados U n id o s a p rin cip io s
del siglo veintiuno y esta presión p ro se g u irá d u ra n te
P ara ilu stra r la p ro g re sió n desd e los d atos al c o n o m ás de una década— . M ediante este conocim iento, p u e
cim iento, co nsiderarem os los datos del censo que in d i de aparecer la oportunidad de un negocio. Q u izá e x is
c a n q u e e l n ú m e ro d e n a c im ie n to s en lo s E stad o s tan oportunidades significativaspara d esarrollar n u evos
U n id o s en 1996 fu e d e 4,9 m illo n e s. E ste n ú m e ro m odelos de aprendizaje que sean m ás efectivas y m enos
re p re se n ta u n v a lo r de datos. A l re la c io n a r este d ato costosas que los enfoques actuales.
co n los n acim ientos de los cu aren ta años an terio res se El futuro del softw are conduce a sistem as que p ro
puede e x tra e r u n elem en to de in fo rm a c ió n útil: aque cesan el conocim iento. Se ha estado p ro cesan d o d ato s
llas p e rso n a s que tu v ie ro n m u ch o s h ijo s en los años durante cincuenta años y extrayendo inform ación du ran
50 y a principios de los 60, está n e fectu an d o un ú lti te casi tres décadas. U no de los desafíos m ás sig n ific a
m o esfu erzo p o r te n e r n iñ o s antes de lle g ar al fin al de tivos a los que se enfrenta la com unidad de la in g en iería
sus años fértiles. E sta in fo rm a c ió n se puede co n ectar del softw are consiste en construir sistem as que d e n el
en to n ces co n o tro s elem en to s de in fo rm ac ió n ap a re n siguiente paso en el espectro: sistem as que ex traig an el
tem ente no relacionados, p o r ejem plo, el núm ero actual conocim iento de los datos y de la inform ación p a ra que
de p ro fe so re s de escu elas p rim a ria s que se retira rá n sea práctica y beneficiosa.
• *- % . y i*
«A-TEQliQLQGÍA COMO IV JIL&QU .
Las personas que co nstruyen y utilizan softw are, el p ro les) p u ed e n dar lu g a r a cam bios radicales e n la c la se
ceso de ingeniería del softw are que se aplica, y la in fo r de softw are que se pued e construir y ta m b ién a c a m
m ació n que se produce se ven afectados todos ellos por bios fu n d am en tales en nuestro enfoque de la in g e n ie
los avances en la tecn o lo g ía del h ardw are y softw are. ría del softw are. D ado que estos enfoques no tra d ic io
H istóricam ente, el h ardw are ha servido com o im pulsor n a le s sig u en esta n d o en el prim er segm en to del c ic lo
de la tecn o lo g ía de la com putación. U na nueva tecn o de quince años, resulta difícil p redecir la form a en que
logía de h ardw are pro p o rcio n a un potencial. E ntonces el m u n d o del so ftw a re se m odificará para a d a p ta rse a
los co n stru c to re s de so ftw are re a c c io n an fre n te a las ellas.
solicitudes de los clientes en un intento de aprovechar L as ten d en c ias fu tu ras de la ingeniería del so ftw a
ese potencial. re se verán im p u lsad as p o r las tecnologías de so ftw a
Las tendencias futuras de la tecnología del hardw are re. La reutilización y la ingeniería del softw are b asad a
tien en p robabilidades de p ro g resar en d os rutas parale en c o m p o n e n te s (te c n o lo g ía s que to d a v ía n o e s tá n
las. E n u n a de las ru tas, las te c n o lo g ía s de h ardw are m a d u ra s) o fre c e n la m e jo r o p o rtu n id a d en c u a n to a
seguirán evolucionando rápidam ente. M ediante la m ayor m ejo ras de gran m a g n itu d en la calid ad de los s is te
capacid ad que p ro p o rc io n a n las te c n o lo g ía s de h a rd m a s y se e n c u e n tra n en el m o m e n to de c o m e rc ia li
w are tradicionales, las dem andas efectuadas a los in g e z a rse . D e h e c h o , a m e d id a que p a sa el tie m p o , el
n ieros de softw are seguirán creciendo. negocio del softw are puede em p e za r a ten er un asp ec
to m uy p arecid o al que tien e el n e g o cio del h a rd w a
re e n la a c tu a lid a d . Q u iz á e x is ta n fa b ric a n te s q u e
la nuevo in d e p e n d e rá electrónica recreo al mundo co n stru y a n d isp o sitiv o s d iferen tes (c o m p o n e n te s de
o im agen y sem ejanza del pueblo global. so ftw are re u tiliz a b le s), o tro s fa b ric a n te s q u e c o n s
Mduhan truyan com ponentes de sistem as (por ejem p lo , un c o n
ju n to de h e rra m ie n ta s p a ra la in te ra c c ió n h o m b re -
P ero los c a m b io s v e rd a d e ro s de la te c n o lo g ía de m áq u in a) e in teg rad o re s de sistem as que p ro p o rc io
h a rd w a re se p u e d e n p ro d u c ir en o tra d ire c c ió n . E l nen so lu cio n es p ara el u su a rio final.
www.FreeLibros.org
d esarro llo de arq u itectu ras de h ard w are no tra d ic io L a in g en iería del so ftw a re va a c a m b ia r — de eso
n ales (por ejem p lo , m áquinas m asiv am en te paralelas, podem os estar seguros— . P ero independientem ente de
p ro c e sa d o re s ó p tic o s y m áq u in as de red es neu ro n a- lo radicales que sean los cam bios, podem os estar segu-
577
ING EN IE RÍA DEL S OFT W ARE . UN EN F O Q U E P R Á C T I C O
ros de que la calidad n u n ca p erd erá su im portancia, y probación co m p eten te siem pre tendrán su lu g a r en el
de que un análisis y diseño efectiv o sju n to con una com - desarrollo de sistem as basados en com putadoras.
Ya han p asado 20 años desde que se escribió la prim e los cuales parecen estar preparados a rep etir lo s errores
ra edición de este libro. Y to d av ía m e acuerdo de c u an del pasado.
do e ra u n jo v e n p ro fe so r se n ta d o en m i m e sa y Para facilitar la transición necesitam os m uchas cosas
escribiendo (a m ano) el m anuscrito de un libro sobre un - u n proceso de softw are adaptable y sensible, m étodos
tem a que no p reo cu p ab a a m uchas p ersonas y que aún m ás eficaces, herram ientas m ás potentes y una acepta
m en o s en tendían realm ente. R ecuerdo la cartas de los ción m ejor de sus partidarios y soporte de los directores,
editores rech azan d o el libro y argum entando (de form a y una dosis no pequeña de educación y « p u b licidad»-.
educada, pero contundente) que n u n ca h ab ría m ercado L a ingeniería del softw are no h a disfrutado de una gran
para un libro sobre « ingeniería del softw are». A fo rtu publicidad, pero a m ed id a que v a pasando el tiem po el
nadam ente, M cG raw -H ill decidió inten tarlo 3, y el re s concepto se vende solo. D e alguna m anera, este libro es
to y a es historia. un «anuncio» para la tecnología.
D urante los Últimos v einte años, este libro h a cam Es posible no estar de acuerdo con todos los e n fo
biado espectacularm ente - e n ám bito, tam año, estilo y ques descritos en este libro. A lgunas de las técnicas y
contenido— . A l igual que la ingeniería del softw are m is opiniones son polém icas; otras deberán ajustarse para
m a, el libro tam bién h a crecido, y p o r suerte tam bién ha trabajar en diferentes entornos de desarrollo de softw a
m adurado durante los Últimos años. re. Sin em bargo, m i sincera esperanza es que In g en ie
H oy en d ía un enfoque de ingeniería en el d esarro ría d el Softw are: Un enfoque p rá c tic o haya d ib ujado
llo del so ftw a re de c o m p u ta d o ra es u n a sa b id u ría los problem as con los que nos enfrentam os; haya dem os
convencional. A unque continúe el debate sobre el «para trado las ventajas de los conceptos de la ingeniería del
d ig m a a d e c u a d o » , el g ra d o de au to m atizació n y los softw are, y h ay a proporcionado un m arco de trabajo de
m étodos m ás efectivos, hoy en d ía los princip io s sub m étodos y herram ientas.
yacen tes de la ingeniería del softw are se aceptan a tra C o m o e m p ie z a un n u e v o m ile n io , el so ftw are se
vés de la industria. E ntonces, ¿por qué solo hace m uy h a c o n v e rtid o e n el p ro d u c to m á s im p o rta n te de la
po co tie m p o q u e e sta m o s sie n d o testig o s de su gran in d u stria y ta m b ién m ás im p o rtan te a n iv el m undial.
adopción? S u im pacto e im portancia han recorrido un larg o cam i
L a respuesta, creo yo , ra d ic a en la d ificultad de la no. Y, sin e m b a rg o , u n a n u e v a g e n e ra c ió n d e desa-
transición de la tecn o lo g ía y el cam bio cultural que la rro lla d o re s de s o ftw a re d e b e rá n e n c o n tra rs e con
acom paña. A unque la m ay o ría de n osotros apreciam os m u ch o s de los m ism o s re to s co n los que se e n fre n ta
la necesid ad de u n a disciplina de ingeniería p ara el soft ro n g en eracio n es anteriores. E sp erem o s que aquellas
w are, lucham os contra la inercia de la p ráctica anterior p erso n as que se en cu e n tre n co n el re to - i n g e n i e r o s
y nos enfrentam os con nuevos dom inios de aplicacio del s o f t w a r e - t e n g a n la sab id u ría de d esarro llar sis
nes (y los que diseñan que son quienes trabajan en ellos) tem as que m e jo re n la co n d ició n hum ana.
[BOL91] Bollinger, T„ y C. M cGowen, «A C ritical Lookat [HOP90] Hopper, M .D., «R attling SABRE, N ew Ways to
Software Capability Evaluations,» IE E E Softw are, Julio C om pete on Inform ation», H a r v a r d B u sin e ss R eview ,
de 1991,pp. 25-41' M ayo-Junio de 1990.
[PAU93J Paulk, M, et al., C a p a b ility M a tu rity M o d el fo r
[GIL96] Gilg, T., «W hat is level $>ixl»JE E E Softw are , E ne
ro de 1996,pp. 97-98 y 103 Software, Software Engineering Institute, Camegie Mellon
U niversity,Pittsburgh, PA, 1993.
www.FreeLibros.org
3 Realm ente los m éritos son de Peter Freem an y Eric M unson, que
fueron quienes convencieron a McGraw-Hill de que valdría la pena
intentarlo.
578
CAPÍTULO 32 PE RS PE C TI V AS FUT URAS
3 2 .1Consiga una copia de las mejores revistas de negocios y 3 2 .4Revise el estudio de lo s modelos de proceso evolutivo
de noticias de esta semana (por ejemplo -.Newsweek, Time, B usi del Capítulo 2. Haga una investigación y recoja artículos
ness Week). Haga una lista de todos los artículos o noticias que recientes sobre este tema. Resuma las ventajas e inconvenientes
se puedan utilizar para ilustrar la importancia del software. de los paradigmas evolutivos basados en las experiencias indi
3 2 .2 Uno de los dominios de aplicaciones de software más cadas en los artículos.
candentes son los sistemas y las aplicaciones basados en Web 3 2 .5 Intente desarrollar un ejemplo que comience con la
(Capítulo 29). Estudie la forma en que las personas, comuni recolección de datos puros y dé lugar a la adquisición de
cación y proceso tienen que evolucionar para adoptar el desa información, después del conocimiento, y finalmente de sabi
rrollo de WebApps de «próxima generación». duría.
3 2 .3Escriba una breve descripción del entorno de desarrollo
ideal de un ingeniero del software hacia el año 2010. Descri 3 2 .6Seleccione una tecnología de actualidad «candente» (no
ba los elementos del entorno (hardware, software y tecnolo necesita ser una tecnología de software) que se esté estudian
gías de comunicación) y su impacto en la calidad y el tiempo do en los medios populares y describa la forma en que el soft
de comercialización. ware posibilita su evolución e impacto.
...QTiL&S .LECXURAS-Y.jEJJJEWX.ES P E . í
Los libros que estudian las tendencias futuras del software tution Press, 1999)han publicado una colección de artículos
y de la computación abarcan una amplia gama de temas téc y ensayos sobre el impacto de la tecnología en las estructu
nicos científicos, económicos, políticos y sociales. Robertson ras sociales, de negocios y económicas. Para aquellos que
(T h eN ew R en a issa n ce: C o m p u ters a n d T h e N e x t L e v e l o f estén interesados en estos temas técnicos, Luryi, Xu y Zas-
C ivilization, Oxford University Press, 1998), argumenta que lavsky (Future Trends in M icro elec tro n ics, Wiley, 1999) han
la revolución informática puede que sea el Único avance más publicado una colección de artículos sobre las direcciones
significativo en la historia de la civilización. Dertrouzos y probables del hardware de computadora. Hayzelden y Big-
Gates (W h a tW ill B e: H o w The N ew W orld o f In form ation ham (S oftw are A g e n ts f o r F uture C om m u n ication S ystem s,
W ilIChange O u rL iv e s, Harperbusiness, 1998)proporcionan Springer Verlag, 1999) han editado una colección que estu
un profundo estudio de algunas de las direcciones que las tec dia las tendencias del desarrollo de los agentes de software
nologías de la información pueden seguir en las primeras inteligentes.
décadas de este siglo. Bamatt (V aluew are: Technology,Huma- K u rzw e il (T h eA g e o f S p iritu a l M achines, W hen C om pu-
nity and Organization, Praeger Publishing, 1999)presenta un ters E xceedH um an Intelligence, Viking/Penguin Books, 1999)
estudio intrigante de la «economía de las ideas» y de la for argumenta que dentro de 20 años la tecnología del hardware
ma en que se creará el valor económico a medida que evolu tendrá la capacidad de modelar completamente el cerebro
ciona el ciber-negocio. El libro de Negroponte (B eing D igital, humano. Borgman (H o ld in g on to R e a lity : The N atu re o f
Alfred A. Knopf, Inc., 1995) fue un best seller a mediados de Inform ation a t the Turn o f the M illenium , University of Chi
los noventa y continúa proporcionando una visión interesan cago Press, 1999) ha escrito una historia de información intri
te de la computación y de su impacto global. gante, haciendo un seguimiento de su papel en la
Kroker y Kroker (.D igitalD eliriu m , New World Perspecti- transformación de la cultura. Devlin (InfoSense: Turning Infor
ves, 1997) han publicado una colección polémica de ensayos, m ation in to K n o w led g e, W.H. Freeman& Co., 1999) trata de
poemas y humor en donde examinan e l impacto de las tecno dar sentido al constante flujo de información que nos bom
logías digitales en las personas y en la sociedad. Brin (TheTrans- bardea día a día. Gleik (F aster: T heA cceleration o fJ u stA b o u t
parent Society: W iü Technology F orcé us To C hoose Betw een E verything, Pantheon Books, 20 0 0 ) estudia el ritmo cada vez
P rivacy and Freedom ?, Perseus Books, 1999) repasa el debate más veloz del cambio tecnológico y de su impacto en todos
continuo asociado a la pérdida inevitable de privacidad perso los aspectos de la vida moderna. Jonscher (T h eE volu tion o f
nal que acompaña al crecimiento de las tecnologías de la infor W iredLife: From theAlphabet. to the Soul-C atcher C hip-H ow
mación. Shenk (D a ta S m o g : Surviving the Inform ation G lut, Inform ation Technologies C hange O u r W orld, Wiley, 2 0 0 0 )
Harpercollins, 1998) estudia lo s problemas asociados con la argumenta que el pensamiento humano y la interacción tras
«sociedad infectada de información» que se está produciendo cienden la importancia de la tecnología.
del volumen de información que producen las tecnologías de Una variedad de fuentes de información sobre las ten
información. dencias futuras en la informática está disponible en Intemet.
Miller, Michalski y Stevens (2 1 st C en tu ry Technologies: Una lista actualizada de referencias en la red se puede encon
P rom ises an d P erils o f a D yn am ic Future, Brookings Insti- traren h t tp : / /w w w .p r e s s m a n 5 .c o m
www.FreeLibros.org 579
www.FreeLibros.org
A P É N D IC E
S IG L A S MÁS C O M U N E S EN
IN G E N IE R ÍA D EL S O F TW A R E
AAN (Análisis del área del negocio) BAA (Business Area Analysis)
ACC (Autoridad de control de cambio) CCA (Change Control Authority)
ACO (Acoplamientoentre clases de objetos) CBO (Coupling Between Object Classes)
ACPs (Areas clave de proceso) KPAs (Key Process Areas)
ACV (Arquitectura del ciclo de vida) LCA (Life Cycle Architecture)
ADOO (Análisis del dominio orientado a objetos) OODA (Object-Oriented Domain Analysis)
AE (Análisis estructurado) SA (Structured Analysis)
AG2D (Análisis geométrico de dos dimensiones) 2DGA (Two-dimensional Geometric Analysis)
AG3D (Análisis geométrico de tres dimensiones) 3DGA (Three-dimensional Geometric Analysis)
AOO (Análisis orientado a objetos) OOA (Object-Oriented Analysis)
APD (Acceso público a datos miembros) PAD (Public Access to Data members)
APH (Arbol de profundidad de herencia) DIT (Depth of the Inheritance Tree)
API (Interfaz de programación de aplicaciones) API (Application Programming Interface)
AROO (Análisis de los requisitos orientado a objetos) OORA (Object-Oriented Requirements Analysis)
AVG (Análisis de valor ganado) EVA (Eamed Valué Analysis)
AVL (Análisis de valores límites) BVA (Boundary Valué Analysis)
BDK (Kit de desarrollo Bean) BDK (Bean Development Kit)
BRO (Operador relacional y de ramificación) BRO (Branch and Relational operator)
BS (brutos.sueldos) GW (gross .wages)
C (Certificación) C (Certification)
C (Consulta) Q (Query)
C& I (construcción e integración) C& I (Construction and Integration)
C/S (Cliente/servidor) C/S (Client/server)
CAD (Diseño asistido por computadora) CAD (Computer-Aided Design)
Cadena DU (cadena de definición-uso) DU chain (Definition-Use chain)
CASE (Ingeniería del software asistida por computadora) CASE (Computer-Aided Software Engineering)
CC (Centralizado controlado) CC (Controlled Centralised)
CCM (Carencia de cohesión en los métodos) L CO M (Lack of Cohesión in Methods)
CEU (Comprobación estadística de utilización) SUT (Statistical Use Testing)
CFD (Cohesiones funcionales débiles) W FC (WeakFunction Cohesión)
CFF (Cohesiones funcionales fuertes) SFC (Strong Functional Cohesión)
CGI (Interfaz común de pasarela) CG I (Common Gateway Interface)
C G O (Capa de gestión de objetos) OM L (Object Management layer)
CK serie de métricas (Chidamber y Kemerer) CK metrics suite (Chidamber and Kemerer metrics)
CN (Control numérico) NC (Numerical Control)
CO (Complejidad de operación) O C (Operation Complexity)
CO CO M O (Modelo constructivo del coste) C O C O M O (Constructive Cost Model)
CO I (Capacidad operativa inicial) IO C (Initial Operational Capability)
COM (Modelo de objetos para componentes) CO M (Component Object Model)
CORBA (Arquitectura común de distribución de objetos) CORBA (Common Object Request Broker Architecture)
CP (Control de periféricos) PC (Peripheral Control)
C PT P (Coste de presupuestos del trabajo planificado) BCWS (Budgeted Cost of Work Scheduled)
CPTR (Coste de presupuestos del trabajo realizado) BCW P (Budgeted Cost of Work Performed)
CR (Conveniencia de la representación) LA (Layout Appropriateness)
CRC (Clase-responsabilidad-colaboración) CRC (Class-Responsibility-ODllaborator)
CRTR (Coste real de trabajo realizado) ACW P (Actual Cost of Work Performed)
CTA (Control de tráfico aéreo) ATC (Air Trafile Control)
CYD (Comerciales ya desarrolladas) COTS (Commercial Off-The-Shelf)
DBC (Desarrollo basado en componentes) CBD (Component-Based Development)
DC (Descentralizado controlado) CD (Controlled Decentralised)
DCBC (Descubrimiento de conocimiento en bases de datos) KDD (Knowledge Discovery in Databases)
DCS (Diagrama de contexto del sistema) SCD (System Context Diagram)
www.FreeLibros.org
DD (Descentralizado democrático) DD (Democratic Decentralized)
DDE (Desviación deliverada de la especificación) IDS (Intentional Deviation from Specification)
DER (Diagrama de entidad-relación) ERD (Entity Relationship Diagram)
DE (Diseño formal) ED (Formal Design)
581
APÉNDICE
www.FreeLibros.org
IGU (Interfaz gráfica de usuario) GUI (Graphical User Interface)
IH M (Interfazhombre-máquina) HCI (Human-ComputerInterface)
IM I (Interfaz de módulo inconsistente) ICI (InconsistentComponent Interface)
IM S (índice de madurez del software) SMI (Software Maturity Index)
582
AP ÉN DI C E
www.FreeLibros.org
PRO/SIM (Construcción de prototipos y simulación) PRO /SIM (PROtotyping and SIMulation)
PrO O (Pruebas orientadas a objetos) OOT (Object-Oriented Testing)
PSI (Procesos secuenciales intercomunicados) CSP (Communicating Sequential Processes)
RE (Relaciones) RE (Relatíonships)
583
APÉNDICE
www.FreeLibros.org
BAC (Budget At Completion) PAT (Presupuesto a la terminación)
BCW P (Budgeted CostofW orkPerfonned) C PTD (Coste de presupuestos del trabajo desarrollado)
BCWS (Budgeted Cost of Work Scheduled) C PT P (Coste presupuestado del trabajo planificado)
BDK (Bean Development Kit) BDK (Kit de desarrollo Bean)
584
AP ÉNDICE
www.FreeLibros.org
FD (Formal Design) DF (Diseño formal)
FIN (Fanin) NPD (Número de padres directos)
FP (Function Points) PF (Puntos de función)
FTR (Formal Technical Review) RTF (Revisión técnica formal)
585
APÉNDICE
www.FreeLibros.org
Broker Architecture) de distribución de objetos)
O M L (Object Management Layer) C G O (Capa de gestión de objetos)
OM T (Object Modelling Technique) TM O (Técnica de modelado de objetos)
OO (Object-Oriented) OO (Orientado a objetos)
586
APÉNDICE
www.FreeLibros.org
TCi (Data tokens) TCi (Muestras — tokens— de datos)
TMS (Tools Management Services) SGH (Servicios de gestión de herramientas)
T P (Test Planning) PP (Planificación de prueba)
TQM (Total Quality Management) G TC (Gestión total de calidad)
587
APÉNDICE
T R (Transitions) TR (Transiciones)
UI (User Interface) IU (Interfaz de usuario)
UICE (User Interface and Control Facilities) IUFC (Interfaz de usuario y facilidades de control)
UIDS (User-Interface Development Systems) SDIU (Sistemas de desarrollo de la interfaz de usuario)
UML (Unified Modelling Language) UML (Lenguaje de modelado unificado)
UNPL (UpperNatural Process Limit) LPNS (Límite de proceso natural superior)
V&V (Verification and validation) V&V (Verificación y validación)
VPS (Violation of Programming Standards) IE P (Incumplimientode las estádandaresde programación)
WB S (Work Breakdown Structure) EAT (Estructurasde análisis del trabajo)
W ebApps (Web-basedApplications) Web Apps (Aplicacionesbasadas en Web)
W ebE (Web-Engineenng) IWeb (Ingeniería Web)
W FC (WeakFunction Cohesión) C FD (Cohesiones funcionalesdébiles)
W M C (Weighted methods per class) MPC (Métodos ponderados por clase)
WoN (Ways of navígating) NN (Nodos de navegación)
XM L (Extensible Mark-up Language) X M L (Lenguaje de marcas extensible)
ZS (Zone Set) FZ (Fijar zona)
www.FreeLibros.org 588
ÍNDICE
Abstracción. 223-224.423 funcional, 527
Acceso público a datos miembros (APD). 429 para ganar valores, 125-126
Ackerman, A.F.. 308 de interacción, 527
Acoplamiento. 231.424 de inventario, 545-546, 554
entre clases objeto (ACO). 426 (m a p p in g )
común. 231 de las transacciones, 252-255
de contenido. 231 de las transformaciones, 247-252
de control. 231 orientado a objetos (AOO), 352, 376
externo. 231 de componentes genéricos, 366-367
métricas de. 334-335 consistencia, 410-412
Actividades enfoque(s)
de construcción e integración (C&I), 170. 171 00,362
del marco de trabajo. 25, 46 unificado, 363-364
de modelado de diseño. 171 exactitud, 409-410
protectoras. 16.38 métodos de, 362-363
Actores, 187-188, 368 proceso, 367-373
Adaptador de objetos, 513 pruebas, 409-410
Agente de distribución de objetos (ORB). 511 principios del, 188-192
Agregación. 394-395 de los requisitos, 20
Agrupación descripción, 182-183
de datos afines, 505-506 orientado a objetos (AROO), 344
de objetos, 156 para la reutilización, 481-482
Albretch, A J., 62 de selección del diseño, 244-245
Algoritmos. 61 de tareas, 264
diseño de. 389-390 de valores límite (AVL),297
Almacén Aplicaciones basadas en Web ( WebApps)
CASE integrado (1-CASE) atributos de calidad, 523-524
características y contenido, 568-571 características, 523
papel. 567-568 categorías, 523
de datos. 239-240,504 contenido, 536-537
Almacenamiento estructurado, 480 controladas por el contenido, 522
Ambigüedades, 436 diseño, 527-532
Ambito, 536 escalabilidad, 537
del concepto. 119, 120-121 evolución continua, 523
preliminares. 119 intensivas de red, 522
del software. 45 personas, 537
definición, 79 políticas, 537
ejemplo, 80-82 pruebas, 532-533
obtener información, 79-80 tecnologías, 524
vabilidad, 80 Árbol
Arnbler, S., 368 de decisión, 93-94
Análisis, 2 16.563 de profundidad de herencia (APE1), 425,429
del árbol de fallos, 144 Áreas de proceso clave (ACP). 14
del área de negocio (AAN), 170 características, 18
del código fuente, 550-55 1 Amold, R.S., 550
de compromiso para la arquitectura, 243-244 Arquitectura(s), 169-170
de la configuración, 527 de aplicación, 169-170
del contenido, 527 del ciclo de vida (ACV), 27
de contribución, 245 cliente/servidor (C/S), 552-553
de coste. 485-486 de control, 243
de datos. 551 de datos. 169-170.241-242.243
descripción del. 181, 361 descripción, 238
del dominio, 364,476-477 estratificadas, 242,496-497
orientado a objetos (ADOO). 344 importancia de la, 238-239
proceso, 365-366 de integración, 566-567
estructurado, 216-217 de llamada y retorno, 242
descripción, 199-200 orientadas a objetos, 242
www.FreeLibros.org
historia, 200 del software, 226
mecanismos, 210-215 Asignación de componentes
de fallos. 56-57 gestión de datos remota, 5 10
589
ÍN D I C E DE MATERIAS
A s ig n a c ió n d e c o m p o n e n tes (C o n t.) C a p a de
ló g ic a d istrib u id a , 5 1 0 g e stió n de o b jeto s (C G O ), 567
p re se n ta c ió n d istrib u id a, 509 interfaz de u su a rio , 566
rem o ta, 5 0 9 -5 1 0 re p o sito rio c o m p a rtid o , 567
A so cia ció n , 395 C ap ac id a d
de co n tro l, 516 d e d e sc o m p o sic ió n , 284
de datos, 5 1 6 de e x p an sió n , 325
A trib u to s, 202, 233-234 o p e rativ a in ic ial (C O I), 27
e sp e c ific a c ió n de, 353 C ard , D .N ., 332
A u d ito ría de co n fig u ra ció n , 158-159 C a rd in a lid a d , 203
A u to d o c u m e n tac ió n , 325 C a ren c ia d e c o h e s io n e n los m é to d o s (C C M ), 4 2 6 ,4 2 8
A u to m atiza ció n , 480 C A S E in te g rad o (1-C A S E ), 565 -5 6 6
A u to rid a d de co n tro l de c am b io (A C C ), 1 5 7 -1 5 8 ,1 5 9 C a sh m an , M , 351
C aso(s) de
p ru e b a, 4 1 5
B a c h ,J „ 156 d e riv a ció n , 2 8 8 -2 9 0
B alzer, R,, 194 uso, 186-188, 367-368, 374-375, 395-397
B ase de datos, 1 6 6 ,2 3 9 ,5 0 9 C a sw e ll, D .L ., 65
d iseñ o de, 514-5 15 C avano, J.P., 326
estru ctu ra, 549 -5 5 0 C e rtifica ció n , 4 6 1 ,4 6 8 -6 4 9
o b jeto de, 516 C e rtifica d o s d ig ita le s, 508
p ru e b as, 517 C h a m p e au x , D. de, 3 4 7 ,3 6 7
B a sili, V., 67 C ham py, J., 4
B a s s ,L ., 2 3 8 ,5 1 3 C h ap ín , N ., 276
B eizer, B ., 2 8 2 ,2 9 0 C h a re tte ,R .N ., 97
B elady, L .,2 1 9 C hen, R, 204
B e n n e tt,S ., 383 C h id am b e r, S.R ., 427
B e rard , E ., 4 2 1 ,4 2 2 C h ifo v sk y ,E .J., 544
B e rard , E.V., 3 4 4 ,3 5 5 C h ristel, M .G ., 172
B iem a n ,J.M ., 334 C hurcher, N .I., 425
B in d er,R .V „ 4 0 7 ,4 2 8 ,4 2 9 C iclo de v id a clásica. V éase m o d elo secu en cial lineal
B o al, I., 4 C lases, 3 4 6 ,3 6 8 -3 6 9
B o e h m ,B „ 25, 2 6 ,4 9 ,9 1 , 134, 306 clave, 429-430
B o o c k ,G „ 3 5 5 ,3 6 2 ,3 8 2 d ep en d ien te s, 412
B o w a n , J.P., 455 d isp o sitiv o de, 369
B reuer, P.T., 549 id e n tific a c ió n d e , 350-353
B ro o h , J., 4 in te ra c c ió n de, 369
B ro o k s, F., 9, 21, 113 in te rd ep e n d ien te s, 412
B u sc h m an n .F ., 385 p ro p ie d a d de, 369
C la s e s -resp o n sab ilid a d e s-c o la b o rac io n es(C R C ), 368-371
co n sisten c ia, 4 1 0 -4 1 2
estru ctu ras, 371-372
C ad en a d efinición-uso (D U j, 292-293
je ra rq u ía s, 371-372
C alid ad , 63-64, 69, 306, 324
su b sistem as, 372
co m p o n e n tes re u tiliz ab le s, 484 -4 8 5
tarjeta s índice, 368, 369, 3 7 3 ,4 1 1
c o n ce p to s, 132-134
C lasific ac ió n
c o n tro l d e v a ria ció n , 132
d e a trib u to s y v a lo re s, 4 84
de c o n co rd a n cia , 132-133
en u m e rad a , 483
de co ste, 133
p o r facetas, 4 8 3 -4 8 4
de d ise ñ o , 1 3 2 -1 3 3 ,2 2 0 ,2 2 1
C lem e n ts,P .C ., 473
e stán d a res, 146-147
C lem m , G .M ., 155
facto res
C lie n te, 39, 169
e x te rn o s, 223
c o m u n ic a c ió n ,25, 46, 79-80
in tern o s, 2 2 3 '
e v alu ac ió n , 25, 46
IS O , 326
ligero, 5 1 0
de M cC all, 234-235
p esad o , 509
fallo, 134
re a c c ió n an te el c o n ce p to , 119
F U R P S , 325 -3 2 6
C o a d ,P ., 3 4 6 ,3 5 2 ,3 6 2 - 3 6 3 ,3 8 2 ,3 8 6 , 387
m edidas de, 94
C o b e rtu ra
m étrica s, 3 31 -3 3 2
de e n laces, 296
m o v im ien to , 134-135
de nodos, 296
p re v en c ió n , 133
C ó d ig o fu en te, m étrica s, 336 -3 3 7
tran sició n a una v isió n c u an tita tiv a , 3 26-327
C o h e sió n , 2 3 0 ,4 2 4
v a lo ra c ió n , 134
a cc id e n tal, 230
www.FreeLibros.org
v a ria c io n e s e n tre m u estra s, 132
lóg ica, 230
C am b io , 9 -1 0
m étrica s de, 334
ám b ito , 574
tem p o ral, 2 30
590
I n d ic e de m a t e r ia s
www.FreeLibros.org
C ontenido D e sp lieg u e de la fu n c ió n de c alid ad (D F C ), 186-188
e je cu ta b le , 503 -5 0 4 D eu tsch , M., 281
de la in fo rm ació n , 189-190 D evanbu, P., 486
591
ÍNDICE DE MATERIAS
www.FreeLibros.org
asp e cto s, 3 81 -3 8 2 organización/estructura, 40-43
co n sisten c ia, 410-411 E rro re s, 311
d e sc rip c ió n , 379 d e te cc ió n de, 2 9 1 -2 9 2
592
I N D I C E DE MAT ERI AS
E rro re s (C o n t.)
d iseñ o de, 389-391
ló g ic a de, 286 in tern as, 549
tipográficos de, 286
je rá rq u ic a s, 529
E sfu e rz o lin e a le s, 528 -5 2 9
d istrib u c ió n , 115-116
e n red , 529
p e rso n as, 114-116
reticulares, 529
E sp a cio s, 503 E v a lu a c ió n y té c n ic a de re v is ió n d e p ro g ra m a s (E T R P ),
de d iseñ o c u a n tific a d o (E D C ), 245 122-123
n -d im e n sio n a l, 228-229 E x ac titu d , 325
E sp e cific a ció n , 193-195 E x p re s ió n ló g ic a (B o o lea n a), 291 -292
a lg e b raic a, 450-452 E x tra c c ió n m anual, 5 15
de c o n tro l (E C ), 2 0 1 ,2 0 8 ,2 1 3 -2 1 4
de datos, 240-241
d iseñ o , 233 F a c ilid a d de
de la e stru ctu ra de cajas, 4 6 0 -4 6 1 ,4 6 2 a u d ito ría, 325
de estado, 4 6 2 ,4 6 3 -4 6 4 co m p re n sió n , 284
n e g ra, 4 6 2 ,4 6 3 p ru e b a, 325
tran sp are n te , 4 6 2 ,4 6 4
a trib u to s, 284
fo rm al, 193 c ara cte rística s, 2 8 3 -2 8 4
len g u a jes de, 445 F a c to r de
n o tac ió n m ate m á tic a, 444-445 a co p lam ien to (FA ), 4 2 7 -4 2 8
fu n c io n a l, 4 6 2 -4 6 4 h e re n c ia d e m é to d o s (FH M ), 427
p rin cip io s, 194 polim orfism o (F P ), 4 28
de p ro c e so (E P ), 2 0 1 ,2 0 6 -2 0 7 ,2 1 4 -2 1 5 F allo(s), 506
re p re se n tac ió n , 194 del año 2 000, 3, 4
de los re q u isito s d el so ftw are, 194-195 d o b les, 299
del sistem a, 1 7 3 ,1 7 7 m ultim odales, 299
Z , 4 4 6 -4 4 7 sim p les, 2 99
E spiral W IN W IN , 2 6-27 F a se de
E sq u em a d el m o d ela d o del sistem a, 1 7 6 ,1 7 8 d e fin ició n , 15
E stabilidad, 284 d e sa rro llo , 15
E stado d el sistem a, 189 soporte, 15
E stándares de Intern et, 524 ad ap tac ió n , 15
E stan d arizació n de co rre c ció n , 15
la co m u n ic ac ió n , 325 m ejora, 15
d atos, 325 p re v en c ió n , 15
rediseño de datos, 551 F e c h a lím ite, 112-113
E stilos arq u itec tó n ic o s, 2 4 1 -2 4 2 F e ig e n b a u m ,E A ., 4
o rg a n iz a c ió n d e , 243 F e n to n ,N ., 3 2 7 ,3 3 3
refinam iento de, 243 F ia b ilid ad , 80, 1 4 3 ,3 2 4 ,3 2 6
taxonom ía de, 241-243 d isp o n ib ilid ad , 143
E stim ación, 78, 84 m ed id a s, 143
a u to m a tiza d a , 84
F iresm ith, D .G ., 369
basada F irm a d ig ita l, 508
p ro b lem as, 86-87 F le m in g , Q.W ., 125
p ro c e so s, 89 F le x ib ilid a d , 325
eje m p lo b a sa d o e n p ro c eso s, 89-90 F lo ra c, W .A ., 53
e m p írica , 84 F lu jo de
L ín e a s de c ó d ig o (L D C ), 85-88 co n tro l, 208
0 0 ,2 9 9 -3 0 0 d atos, 242
P untos de fu n c ió n (P F ), 86-87, 88
a rq u itec tu ras, 242
E strategia de p ru e b a, 321
c o n tin u o e n el tie m p o , 207
a sp e cto s, 3 09 -3 1 0 d iscreto , 207
d ep u ració n , 318-321
grafo de, 206
d e sc rip c ió n , 305
p ru e b as, 292-293
e n fo q u e, 306-309
in fo rm a ció n , 189-190
in te g rac ió n , 312-315 m o d elo , 2 0 5 -2 0 9
o rg a n iz ac ió n , 307
tran sac ció n , 246
sistem a, 3 17 -3 1 8 tran sfo rm a ció n , 246
un id ad , 3 10 -3 1 2 F o rm a ció n , 325
v a lid a c ió n , 3 1 6 F ra g m en tac ió n , 274, 515
E structura(s) de F re e d m a n ,D .P ., 137
an álisis d el tra b a jo (EA T), 122 F re e m a n ,P ., 237
datos, 2 2 8 -2 2 9 ,2 3 9 F u n c ió n de
je rá rq u ic a s, 2 2 8 -2 2 9
www.FreeLibros.org
ayuda
la in fo rm a ció n , 189-190 c o m p le m e n ta ria, 267
p ro g ram a , 2 2 6 -2 2 7 ,2 2 9
in teg rad a, 267
593
ÍNDICE DE MATERIAS
www.FreeLibros.org
G rady, R .G ., 56, 57, 65 actividades, 474-475
G ráfico(s) de d escrip ció n , 4 73-474
control, 70 eco n ó m ica de, 484 -4 8 6
594
ÍNDICE DE MATERIAS
www.FreeLibros.org
L ó g ica e n tie m p o re al, 144
gráfica de usuario (IG U ), p ru e b as, 2 9 9 -3 0 0 L o ren z , M ., 3 5 6 -3 5 7 ,4 2 6 ,4 2 7
h o m b re-m áq u in a , 337 L o w e , D ., 523
595
In d i c e de materias
www.FreeLibros.org
restricciones, 168
co m p lejid ad , 335 sim plificaciones, 168
definición, 53, 54 supuestos, 167-168
596
ÍN D I C E DE MAT ERIAS
www.FreeLibros.org
(N C C ), 429-430 P ark, R .E., 53
(N C R ), 429 Partición. 190-191
597
ÍNDICE DE MATERIAS
www.FreeLibros.org
reacción del cliente. 119
P rincipio(s) enfo q u e, 48
de las pruebas, 282-283 indicador, 55
598
ÍNDIC E DE MATERIAS
Proyecto(s) (C o n t.)
de re c u p e rac ió n , 317
m an te n im ien to de a p lic ac io n e s, 116 de re n d im ien to , 318
m ejo ra s de a p lic ac io n e s, 116
d e re siste n c ia (estrés), 318
p lan ifica ció n , 49
de seg u rid ad , 317-318
re in g e n ie n a , 116
d el sistem a, 301, 317
tam a ñ o , 78
d e le g a c ió n de c u lp a b ilid ad , 317
Prueba(s), 5 1 6 ,5 6 4
re c u p e rac ió n , 3 17
a n ivel de clase, 417-418
re n d im ien to , 3 1 8
de a g ru p a m ie n to ,4 1 1
re siste n c ia (estrés), 318
alfa, 3 1 6
seg u rid ad , 317-318
basada(s) en,
e n tie m p o re al, 300-301
esc en a rio s, 415-417
del so ftw are
fa llo s, 4 14-415
d e sc rip c ió n , 2 8 1 -2 8 2
grafo s, 2 9 4 -2 9 6
fu n d a m e n to s, 2 82-284
h ilo s, 4 1 3 ,4 2 0
de la ta b la ortogonal, 298-299
usos, 412
tá c tic a s C /S, 5 1 8
b eta, 293
en tre tare as, 301
de b u c le s, 294
de tran sac cio n e s, 5 1 7
a n id a d o s, 294
de u n id ad , 307-308
c o n ca te n a d o s, 294
c o n sid era cio n e s, 310-311
no e stru ctu rad o s, 294
c o n tex to 0 0 , 4 1 0 - 4 1 1
sim p les, 293
p ro c ed im ie n to s, 311-312
de la caja
de v a lid a c ió n , 3 1 6
b lan c a, 2 8 5 ,2 8 6
alfa y b e ta , 3 1 6
n e g ra, 2 9 4 -2 9 9 ,3 0 2
c o n te x to 0 0 , 4 1 1
de c am in o b a se , 286
criterio s, 3 1 6
de c iclo rá p id o , 309 -3 1 0
rev isió n de co n fig u ra ció n , 3 1 6
de cla se m ú ltip le , 4 18 -4 1 9
P seu d o c ó d ig o . V éase L e n g u a je d e d iseñ o de p ro g ra m a s (L D P )
cliente/servidor, 300 P uhr, G .I., 366
de co m p a rac ió n , 2 9 7 -2 9 8 Puntos
de co m p o rtam ien to , 301
de c ara cte rística s, 61
de c o m u n ic a c ió n d e re d es, 517-51 8
de estru ctu ra, 4 7 7 -4 7 8 ,4 8 5 -4 8 6
de c o n d ic ió n , 2 9 1 -2 9 2
de fijación, 26
criterios p a ra c o m p le ta r, 3 08 -3 0 9
de fu n c ió n (P F ), 6 0 -6 1 , 85
d o c u m e n tac ió n , 300
a m p liad o s, 6 1 -62
del d o m in io , 291
eje m p lo de estim a ció n , 88
y en treg a, 23
estim a ció n , 86-87
e stad ística de caso s p rá ctic o s, 4 6 7 -4 6 8
tres d im e n sio n e s,
de e strateg ia C /S, 516-517
P u tn a m ,L ., 80
e stru ctu ra
de co n tro l, 2 9 1 -2 9 4
p ro fu n d a, 4 17
R a cc o o n , L.B.S., 19
de su p e rfic ie ,4 1 7
R eco lecció n de re q u isito s, 460
fa cilid a d es de ay u d a, 300
R e cu rso s
de fu nción de la a p lic ac ió n , 5 1 7
de e n to rn o , 83
herram ientas C /S, 565
h u m an o s, 82
IG U , 2 9 9 -3 0 0
R e d de tare as, 121-122
im p a c to de la p ro g ra m a c ió n 0 0 , 4 1 5 R ediseño de datos, 551
de in te g rac ió n , 312,413,420
R eel, J.S., 48
a sc en d e n te , 313-314
R e e s tru c tu ra c ió n d e , 550-551
c o n tex to 0 0 , 4 1 3
c ó d ig o , 5 4 6 ,5 5 0 -5 5 1
desc en d e n te , 312-313
datos, 5 4 6 -5 4 7 ,5 5 1
estu d io , 315
d o cu m e n to s, 546
h u m o , 3 1 4 -3 1 5
R e fin a m ie n to ,224, 464-465
re g re sió n , 314
p a so a p a so , 224
de lím ite s, 3 11
R egión(ones) de
de m an o a m an o , 298
d efecto s, 298
m étrica s, 337
tare as, 26
m odelo de
R e g la 90-90, 48
AOO, 409-410 R e g la (C o n t.)
D O O , 409-410
de z o n a, 71
del o p e rad o r relacional y de ram ificació n (B R O ), 292
R eifer., D .J., 181
o rien tad a s a o b jeto s (O O ), 4 0 9 -4 1 9 ,4 2 0
R e in g e n iería
d e sc rip c ió n , 409
c o ste-b e n efic io , 554
e strateg ia s, 412
d e sc rip c ió n , 541-542
www.FreeLibros.org
m étrica s, 4 28-429
e co n o m ía de la, 554
de ra m ifica cio n es, 291
h e rra m ie n tas, 565
599
ÍNDICE DE MATERIAS
www.FreeLibros.org
R oche, J.M ., 328 S obrecarga, 350
R oss, D., 200 So ckets (C o n ex io n es), 502
R um b au g h , J., 3 6 2 ,3 6 6 ,3 7 3 ,3 8 2 ,3 8 7 S oftw are, 166
600
ÍNDICE DE MATERIAS
www.FreeLibros.org 601
Q uinta edición
enfoque práctico
r S. PRESSMAN
www.FreeLibros.org
9788448132149