Sei sulla pagina 1di 691
Ingenieria del software Ingenieria del software Séptima edicién IAN SOMMERVILLE Traducci6n Marfa Isabel Alfonso Galipienso Antonio Botia Martinez Francisco Mora Lizén José Pascual Trigueros Jover Departamento Ciencia de ta Compucaciin e ineligencia Arica Universidad de Aicame PEARSON TTIOTT AYO Madrid + México + Santafé de Bogoté « Buenos Aires * Caracas * Lima * Montevideo ‘San Juan + San José + Santiago + Sdo Paulo + Reading, Massachusetts + Harlow, England Datos de eatlogacion bibliog INGENTERIA DEL SOFTWARE. Séptima edicion Ian Sommervive PEARSON EDUCACION, S.A. Maid 2005, ISBN; 847m9.074.5, MATERIA: Informatica 681.3 Format: 195 % 250 mn Paginas: 12 ‘Todos los derechos reservados. (Queda prohibida, salvo excepcién prevista en la Ley, cualquier forma de reproduccién, distribuei6n, comunicacién publica y transformaciGn de esta obra sin contar con autorizacién de tos titulares de propiedad intelectual. La infraccién de los derechos mencionados puede ser cconstitutiva de delito contra la propiedad intelectual (arts. 270 y sgts. Cédigo Penal) DERECHOS RESERVADOS © 2005 por PEARSON EDUCACION, S.A. Ribera del Loira, 28 28042 Madrid (Espafa) INGENIER{A DEL SOFTWARE. Séptima edicién Jan Sommerville ISBN: 84-7829.074-5 Depésito Legal: M-31.467-2005 PEARSON ADDISON WESLEY es un sello editorial autorizado de PEARSON EDUCACION, S.A. © Addison-Wesley Publishers Limited 1982, 1984, Pearson Education Limited 1989. 2001, 2004 ‘This translation of SOFTWARE ENGINEERING 07 Edition is published by arrangement with Pearson Education Limited, United Kingdom Equipo editorial: Editor: Miguel Martin-Romo ‘Técnico editorial: Marta Caicoya Equipo de produccién: Director: José Antonio Clares. ‘Técnico: José Antonio Henin Diseito de eubierta: Equipo de disefio de Pearson Educacién, S.A, ‘Composicién: COPIBOOK, $.L. Impreso por: TOP PRINTER PLUS, S. L. L. IMPRESO EN ESPANA - PRINTED IN SPAIN Ete libro ha sido impreso con pape! y tintas ecogicos, Protoco Parte I. VISION GENERAL . Introduccion .. Ma. Sistemas socio-téenicos .... 21 2.2 Preguntas frecuentes sobre la ingenierfa del software ...-......... 02 LAL 1.12, 113. LL Ly La La 1d LL 1.1.10. Lt 1.2, Responsabilidad profesional y 6tica ........ 0... cceveeeeeeee Propiedades emergentes de los sistemas ..... 00... 00ecc0eeeeee Ingenieria de sistemas . ... 221. 2.2.2 2.23, 2.24. 2.2.5, 2.2.6, 2.2.7. SeRoaRaE Qué es software? Qué ¢s la ingenierfa del software? Cul es Ia diferencia entre ingenierfa del software y ciencia de la computacién? ..... : {Cudl es la diferencia entre ingenierfa del software ¢ ingenieria de sistemas? . {Qué es un proceso del software? ... bettteeeeee {Qué es un modelo de procesos del software? - : {Cuales son los costos de la ingenieria del software? ......... {Qué son Jos métodos de la ingenieria del software? . éQué es CASE? ....... {2Cuales son los atributos de un buen software? . : {Cuales son los retos fundamentales que afronta Ia ingenieria del software? Definicién de requerimientos del sistema Diseiio del sistema . Modelado de sistemas Desarrollo de los subsistemas Integracién del sistema. Evolucién del sistema . . . . . Desmantelamiento del sistema... 22. eee ec ceeee vce eee vi indice de contenidos 2.3. Organizaciones, personas y sistemas informiticos .........- a 2.3.1, Procesos organizacionales 32 2.4. Sistemas heredados .... 35 3. Sistemas criticos ......6060seeeeeeeeeees 39 3.1. Unssistema de seguridad critico sencillo 2.22... 0sceceveseeeeeeeeeseeeesee al 3.2. Confiabilidad de un sistema ........226.5 bee ecevcteesseseeeeeeeees 43 3.3. Disponibilidad y fiabilidad 46 34, Seguridad .......00--+ 50 3.5. Proteccién .. woe 53 4, Procesos del software «4... +045 59 4.1, Modelos del proceso del software. ......+- 60 4.1.1. El modelo en cascada .. 62 4.1.2, Desarrollo evolutivo .. 63 4.1.3, Ingenieria del software basada en componentes. w 4.2. Meracién de procesos .......ssceeeeee eens 66 4.2.1. Entrega incremental .......0062.62000 66 42.2. Desarrollo en espiral ceeeeeees 68 4.3. Actividades del proceso ....... 05.20.0008 69 43.1, Especificaci6n del software... se cesee 69 43.2. Disefire implementacion del software. n 4.3.3. Validaci6n del software ..... 14 43.4, Evolucién del software 15 4.4. El Proceso Unificado de Rational 6 445, Ingenieria del Software Asistida por computadora 9 45.1. Clasificacién de CASE ceeeccnees 9 5. Gestion de proyectos 88 Sil. Actividades de gestion... . 0.0 0cccccce eee eeeteeseneeerereeeeeeeesseeses 87 5.2. Planificacién del proyecto. 2 88 5.2.1. El plan del proyecto ve 89 5.2.2. Hitos y entregas : 90 5.3. Calendarizaci6n del proyeclo ...... _ . ot 5.21. Graficos de baras y redes de actividades. 2 5.4. Gestidn de riesgos bebe eeeeeceeeete 95 5.4.1. Tdentficacién de tiesgos «2... 5.4.2. Andlisis de riesgos : 5.4.3. Planificacién de riesgos 5.4.4, Supervisién de riesgos : : 100 Parte I]. REQUERIMIENTOS 6. Requerimientos del software .....00..ssss0eeereee 61. Requerimientos funcionales y no funcionales. ......2+.--+.0 0+ ++ 109 6.1.1, Requerimientos funcionales ......-.-+ 0-55 cee HO 6.1.2. Requerimientos no funcionales . eM 6.1.3. Los requerimientos del dominio. . us Indice de contenidos vii 6.2, Requerimientos del usuario feet eetet tetas 116 6.3. Requerimientos del sistema . . cite eeeeeee 118 6.3.1. _Especificaciones en lenguaje estructurado oe 120 6.4. Especificacién de la interfaz sevees 122 65. El documento de requerimientos del software 123 7. Procesos de la ingenieria de requerimientos ............ssssesceeeeeseceeeeees 129 7.1. Estudios de viabilidad 131 7.2. Obtencién y andlisis de requerimientos - 132 7.2.1. Descubrimiento de requerimientos 135 7.2.2. Etmografia 2.2... cece see 142 7.3. Validacién de requerimientos - 144 7.3.1, Revisiones de requerimientos . - 145 7.4, Gestién de requerimientos . wee 146 7.4.1. Requerimientos duraderos y volitiles 147 7.4.2. Planificacidn de ta gesti6n de requerimientos eee eeee 147 7.4.3, Gestion del cambio de los requerimientos. .............. beeceeeeeees 150 8. Modelos del sistema ........ 0000000022. 00 153 8.1. Modelos de contexto cette sees 155; 8.2. Modelos de comportamiento ... - 156 8.2.1. Modelos de flujo de datos : 157 8.2.2, Modelos de maquina de estados .. 159 8.3. Modelos de datos . -- 161 8.4. Modelos de objetos . feteteteeeees + 164 8.4.1. Modelos de herencia . 165 8.4.2, Agregacién de objetos 8.4.3. Modelado de comportamiento de objetos : 169 85. Métodos estructurados .. . - 170 9. Especificacién de sistemas criticos .. seteeeeeeceeeeeseeesees ITS 9.1, Especificacién dirigida por riesgos 7 9.1.1, Identificacién de riesgos ...... 178 9.1.2. Andlisis y clasificacion de riesgos 178 9.1.3. Descomposicién de riesgos . 181 9.1.4. Valoracién de la reduccién de riesgos 182 9.2. Especificacion de la seguridad 183 9.3, Especificacién de la proteccién 186 9.4. Especificacién de la fiabilidad del software 188 9.4.1, Métricas de fiabilidad . . + 189 9.4.2. Requerimientos de fiabitidad no funcionales 191 10. Especificacién formal ... ce beesseeeeeeeeeeeeeseeees 197 10.1. Especificacién formal en el proceso del software 10.2. Especificacién de interfaces de subsistemas 10.3. Especificacién del comportamiento ... villi Indice de contenidos Parte III. DISENO «1... ue 2. 13. 15. seeeeseeees UD 222 224 225 226 227 ss 229 - 230 231 232 233 234 Diseno arquitectOnico ........2--04seeeseeeeeeeeeeee IIA. Decisiones de disefio arquitectOnico .........00sececeeeeeeeenes 11.2. Organizacién del sistema .......-. 11.2.1, El modelo de repositorio . 11.2.2. El modelo cliente-servidor 11.2.3, El modelo de capa ....... 11.3. Estilos de descomposicién modular .....-.-. 11.3.1. Descomposicién orientada a objetos - 11.3.2. Descomposicién orientada a flujos de funciones 11.4. Estilos de control... . . . 11.4.1. Control centralizado 1142. Sistemas dirgidos por eventos... 11.5. Arquitecturas de referencia. . » 236 Arquitecturas de sistemas distribuidos ........++.++ 241 12.1, Arquitecturas multiprocesador . . 244 12.2. Arquitecturas cliente-servider «245 12.3, Arquitecturas de objetos distibuidos . - 249 12.3.1. CORBA ....e...e. » 252 124. Computaci6n distribuida interorganizacional wo 256 12.4.1. Arquitecturas peer-to-peer .......- : » 256 12.42, Arguitectura de sistemas orientados a servicios... = 258 Arquitecturas de aplicaciones .........seeeseeveer eee 265 13.1, Sistemas de procesamiento de datos = 268 13.2. Sistemas de procesamiento de transacciones +. 270 13.2.1, Sistemas de informacién y de gestién de recursos - 272 276 . 279 285 288 13.3. Sistemas de procesamiento de eventos 13.4. Sistemas de procesamiento de lenguajes 14,1, Objetos y clases . 14.1.1, Objetos concurrentes : =. 290 142. Un proceso de diseio orientado a objeios . = 292 V4.2. Contexto del sistema y modelos de utilizacion seve 294 14.2.2. Disefio de la arquitectura see coves 296 14.2.3. Identificacién de objetos seseeeeees 297 14.2.4, Modelos de disefio 14.25. Especificacion de Ia interfaz de los objetos 14.3. Evolucién del disefo ...... 0.02.0 e eres ees 299 303 Diseno de software de tiempo real ........++ veeeeeesesees BIZ a4 315 316 15.1. Disefio del sistema ....... 15.1.1. Modelado de sistemas de tiempo real 15.2, Sistemas operativos de tiempo real cesteeee 15.2.1. Gestion de procesos ......0.0veeeeeees teseeeeeees indice de contenidos ix 16. Parte IV. DESARROLLO ......-.60.006 7. 18, 19. 20. 15.3, Sistemas de monitorizaci6n y control ........ +. 318 15.4, Sistemas de adquisicién de datos ...... - 323 Disefio de interfaces de usuario ............. + 331 16.1. Asuntos de disefio ... . - 335 16.1.1. Interaccién del usuario. 335 16.1.2. Presentaci6n de la informacion ....... cesses 338 16.2. El proceso de disefio de la interfaz de usuario . ceeeeees 344 16.3. Andlisis del usuario ....... . 345 16.3.1. Técnicas de andlisis : - 346 16.4, Prototipado de la interfaz de usuario. cee 348 16.5. Evaluacién de la interfaz sess 350 Desarrollo ........2.0e4 387 17.1. Métodos dgiles .... - 361 17.2. Programacisn extrema 364 17.2.1, Pruebasen XP... 0.0.2.2. 366 17.2.2. Programacién en parejas . + 369 17.3. Desarrollo répido de aplicaciones. - 370 17.4, Prototipado del software... 373 Reutilizacion del software 4.400.060.0000 379 18.1. Elcampo de la reutilizacién ... cerns . 382 18.2. Patrones de disefio 2.2... cece cece = 384 18.3, Reutilizacién basada en generadores 0.2... . 387 18.4. Marcos de trabajo de aplicaciones : 389 18.5. Reutilizaci6n de sistemas de aplicaciones. 391 18.5.1. Reutilizaci6n de productos COTS 18.5.2. Lineas de productos software... - 391 Ingenieria del software basada en componentes ... 401 19.1. Componentes y modelos de componentes . 19.1.1, Modelos de componentes 19.1.2. Desarrollo de componentes para reutilizacién 19.2. El proceso CBSE 19.3. Composicién de componentes Desarrollo de sistemas criticos ......2..-.00eee080 20.1. Procesos confiables . 20.2. Programacién confiable .. . 20.2.1. Informacién protegida 20.2.2. Programacién segura 20.2.3, Manejo de excepciones . 20.3. Tolerancia a defectos : 20.3.1. Deteccién de defectos y evaluacién de dafios 20.3.2. Recuperacién y reparacién de defectos ... 20.4. Arquitecturas tolerantes a defectos .......... X Indice de contenidos 21, Evolucién del software .. 447 21,1. Dinémica de evolucién de los programas... 449 21.2, Mantenimiento del software vee 451 21.2.1, Prediccién del manteni vee 454 21.3. Procesos de evolucién . . 456 +. 459 21.4, Evolucién de sistemas heredados . » 461 Parte V. _ VERIFICACION ¥ VALIDACION . - 22. Verificacion y validacién an 22.1. Planificacién de la verificacién y validacién . 475 22.2, Inspecciones de software 477 22.2.1. El proceso de inspeccign de programas 478 22.3. Analisis estético automatizado 482 22.4, Verificacién y métodos formales . 485 224.1. Desarrollo de software de Sala Limpia + 486 23. Pruebas del software . 491 23.1. Pruebas del sistema ... . 494 23.t.1. Pruebas de integracién 495 23.1.2, Pruebas de entregas . ve 497 23.1.3. Pruebas de rendimiento . + 500 23,2, Pruebas de componentes. . se SO 23.2.1. Pruebas de interfaces + 502 23.3. Disefio de casos de prueba .. 504 23.3.1. Pruebas basadas en requerimientos . » 505 23.3.2, Pruebas de particiones + 506 23.3.3. Pruebas estructurales + 509 23.3.4. Pruebas de caminos .. .. SH 23.4. Automatizacién de las pruebas » S13 24. Validacién de sistemas criticos . S19 24.1. Validacién de la fiabilidad . » 521 24.1.1, Perfiles operacionales. . + $22 24.1.2. Predicci6n de la fiabilidad = 523 24.2. Garantia de la seguridad . 526 24.2.1, Argumentos de seguridad + 527 24.2.2. Garantia del proceso... + $30 2423. Comprobaciones de seguridad en tempo de eicucn «. - 531 24,3, Valoracién de la proteccién ..... + 532 24.4. Argumentos de confiabilidad y de seguridad. . 534 Parte VI. GESTION DE PERSONAL . SA 28, Gestién de personal .. 543 25.1. Seleccién de personal . 54d 25.2. Motivacién 547 25.3. Gestionando grupos 550 indice de contenidos Xi 25.3.1, 28.3.2. 25.3.3. Las comunicaciones del grupo 25.3.4, La organizacién del grupo 25.3.5, Entomos de trabajo . 25.4, El Modelo de Madurez de la Capacidad del Personal 26. Estimacién de costes del software .. 551 552 554 555 556 558 Productividad - 563 ‘Técnicas de estimacién : +. 567 Modelado algoritmico de costes - 570 26.3.1. El modelo de COCOMO . : ce 572 26.3.2. Modelos algoritmicos de costes en la planificacién vee 580 26.4, Duracién y personal del proyecto 27. Gestion de calidad .......2.... 00008 582 587 389 - 591 27.1. Calidad de proceso y producto 27.2. Garantfa de ta calidad y estindares 27.21. 180.9000 .... seveeeees +. 593 27.2.2. Estindares de documentacién ....... . 594 27.3. Planificacién de la calidad .....,., =. 596 274. Control de lacalidad ..... : . 597 27.4.1, Revisiones de la calidad 597 27.5, Medici6n y métricas del software 598 275.1. El proceso de medicién 27.5.2. Métricas de producto 27.5.3, Anélisis de las mediciones 28, Mejora de procesos . 28.1, Calidad de producto y de proceso. . 28.2. Clasificacién de los procesos beste eee 28.3. Medicién del proceso . wee . 28.4. Analisis y modelado de procesos. wee 28.4.1, Excepciones del proceso .............. 28.5. Cambio en los procesos 28.6. El marco de trabajo para la mejora de procesos CMMI... 28.6.1. El modelo CMMI en etapas . . wees eee 28.6.2. El modelo CMMI continuo . . 29. Gestion de configuraciones .......6...00cecsseecreeeeeeeeeees 29.1. Planificacién de la gestién de configuraciones . 29.1.1. Identificacién de los elementos de configuraci6n 29.1.2. La base de datos de configuraciones ........ 29.2, Gestion del cambio. . eee tee 29.3. Gestién de versiones y entregas .. . 29.3.1. Identificacién de versiones 29.3.2. Gestién de entregas . 29.4. Construecién del sistema. Xli indice de contenidos 29.5, Herramientas CASE para gestién de configuraciones cece eeceeeeees ees MZ 29.5.1. Apoyo ala gestién de cambios cette ce AB 29.5.2. Soporte para gestién de versiones 643, 29.5.3, Apoyo a la construccién del sistema - 648 Glosario 2... eceeeeeceeee ee eneeeeeeeeseueuee nnn seres serene O49 Bibliografia .........ccceeeeeeneeees seceeeeees 661 indice alfabético ...........-- seeeeeeee OTT La primera edicién de este libro de ingenieria del software fue publicada hace mis de veinte afios. Aquella edicién fue escrita utilizando un terminal de tex- to conectado a una minicomputadora (un PDP-11) que posiblemente costaba cerca de 50.000 S. Yo he escrito esta edicién desde un portatil con conexién inalémbrica que cuesta menos de 2.000 $ y mucho més potente que aquel PDP-11. El software més comtin era el software para mainframes, pero las computadoras personales estaban a punto de aparecer. Ninguno de nosotros imagin6 el nivel de difusién que éstas iban a tener ni el cambio que este he- ccho iba a producir en el mundo. Los cambios en el hardware en los tiltimos veinte afios han sido notables, Y podria parecer que los cambios en el software han sido igual de significati- vos. Ciertamente, nuestra capacidad para construir sistemas grandes y com- plejos ha mejorado drdsticamente. Nuestros servicios ¢ infraestructuras na- cionales —energia, comunicaciones y transporte— dependen de sistemas informaticos muy grandes, complejos y fiables. En la construccién de siste- ‘mas software se mezclan muchas tecnologias —J2BE, .NET, EJB, SAP. BPELAWS, SOAP, CBSE— que permiten que aplicaciones grandes basadas en Web sean desarrolladas mucho més répido que en el pasado. Sin embargo, a pesar de los cambios que ha habido en tas dos dltimas déca- das, cuando nosottos miramos més alld de las tecnologias, hacia los procesos fundamentales de la ingenierfa del software, éstos se han mantenido igual. Nos- otros reconocimos hace veinte afios que el modelo en cascada tenfa problemas serios, pero un examen publicado en diciembre de 2003 por /EEE mostraba que ‘mas de un 40% de las compaiiias siguen utilizando esta aproximacién, El tes- teo sigue siendo la técnica de validaci6n dominante, a pesar de que otras técni- cas, como las inspecciones, han sido utilizadas de una forma més efectiva des- de mediados de los atios 70, Las herramientas CASE, a pesar de estar basadas ahora en UML, siguen siendo basicamente editores gréficos con alguna fun- cionalidad para chequear y generar cédigo.

Potrebbero piacerti anche