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. xiv Prologo Nuestros actuales métodos y técnicas de ingenieria del software han hecho que la cons- truccién de sistemas grandes y complejos sea mejor. A pesar de ello, sigue siendo habitual en- contrar proyectos que se retrasan, que sobrepasan el presupuesto 0 que se entregan sin sati facer las necesidades de los clientes. Mientras estaba escribiendo este libro, se divulgé una investigacién del gobierno en Reino Unido, sobre un proyecto para prover a los juzgados de un sistema software para casos de delincuencia menor. El coste del sistema fue estimado en 156 millones de libras y fue planificado para ser entregado en el aio 2001. En 2004, el coste habfa subido a 390 millones de libras y no estaba totalmente operativo. Hay, por lo tanto, una necesidad imperiosa de educacién en ingenieria del software. En los iltimos afios, el desarrollo mds significativo en ingenierfa del software ha sido la aparicién de UML como esténdar para la descripci6n de sistemas orientados a objetos, y el desarrollo de métodos giles como la programacién extrema. Los métodos giles estén per- mitiendo el desarrollo répido de sistemas, explicitamente implican al usuario en el equipo de trabajo y reducen el papeleo y 1a burocracia en el proceso software. A pesar de lo que algunos criticos sostienen, pienso que estas aproximaciones encarnan buenas pricticas de ingenieria del software. Ellas tienen unos procesos bien definidos, prestan atenci6n a la es- pecificacién del sistema y a los requerimientos del usuario, y tienen esténdares de alta ca- lidad. No obstante, esta revisién no pretende ser un texto sobre métodos giles. Prefiero centrar- ‘me en los procesos bisicos de ingenierfa del software —especificacién, diseito, implementa- ign, verificacion, y validacién y gestién—. Es necesario entender estos procesos y las técni- ‘cas asociadas para decidir si los métodos giles son la estrategia de desarrollo més adecuada y cémo adaptar los métodos a una situacién particular. Un tema dominante en el libro son tos sistemas criticos —sistemas en los que los fallos de funcionamiento tienen consecuencias ne- fastas y donde la seguridad del sistema es critica, En cada parte del libro, estudiaremas las t&c- nicas especificas de ingenieria de! software que son relevantes para la construccién sistemas criticos. Inevitablemente, los libros reflejan las opiniones y prejuicios de sus autores. Algunos lec- tores estardn en desacuerdo con mis opiniones y con mi eleccién del material. Este desacuer- do es un refiejo de la diversidad de disciplinas y es esencial para su evolucién. No obstante, yo espero que a todos los ingenieros de software y estudiantes de ingenieria del software les result interesante, Estructura del libro _—$$— Lacstructura del libro esté basada en los procesos fundamentales de ta ingenieria del software. Esta organizado en seis partes, con varios capftulos en cada parte: Parte |: Introduce la ingenierfa del software, situaindota en un amplio contexto de sistemas y presentando las nociones de procesos y gestién de ingenierfa del software. arte 2: Trata los procesos. técnicas y documentacién asociados con los requerimientos de Ingenieria. Incluye un estudio sobre los requerimientos software, modelado de sistemas, especificacién formal y técnicas para especificar la fiabilidad. Parte 3: Esta parte esté dedicada al disefto de software y a los procesos de disefio. Tres de Jos seis capitulos se centran en el importante tema de las arquitecturas software. Otros te- ‘mas incluyen disefo orientado a abjetos, disefio de sistemas en tiempo real y disefio de in- terfaces de usuario. Prélogo xv Pate 4: Describe una serie de aproximaciones a la implementacién, incluyendo métodos giles, reutilizaci6n, CBSE y desarrollo de sistemas criticos. Como los cambios son una parte importante de la implementacién, he integrado temas de evolucién y mantenimiento enesta parte, Parte 5: Se centra en temas de verificacién y validacion, Incluye capitulos de validacién y verificacién estatica, testeo y validacién de sistemas criticos. Parte 6: La parte final abarca una serie de temas de gestiGn: gestién de personal, estima- ccién de costes, gestién de calidad, procesas de mejora y gestién de cambios. En la introduceién de cada parte, expondré la estructura y organizacién con mayor detalle. Cambios en la 6.* edicién TABLA 1. Revision de los capitulos Hay cambios importantes, relativos a la organizacién y contenido, respecto a la edicién pre- via. He incluido cuatro capitulos nuevos y he hecho una importante revisién en otros once ca- pitulos. Todos los otros capitulos han sido actualizados, incorporando convenientemente nue- vo material ‘Mas y més sistemas tienen altos requerimientos de disponibilidad y fiabilidad, y espero que nosotros tomemos la fiabilidad como un conductor basico en la ingenieria del software. Por esta raz6n, los capitulos de sistemas eriticos han sido integrados en otras secciones. Para evi- tar que et volumen de! libro sea excesivo, he reducido la cantidad de material sobre manteni- miento del software y he integrado los temas de mantenimienio y evoluci6n del software en ‘otros capitulos. Hay dos casox de estudio —uno sobre ta gestién de documentos de una bi- blioteca y otro de un sistema médico—, los cuales presento en diferentes capitulos, EI material referente a los casos de estudio esté sefialado con iconos en los margenes. La Tabla 1 resume los cambios, indicando con el ntimero entre paréntesis el capitulo correspon- diente en la 6. edicién, En el sitio Web del libro se puede encontrar més informacién sobre estos cambios, Capitulo 13: Arquitectura de las aplicaciones. Capitulo 17: Desarrotlo rapido de aplicaciones. Capitulo 19: Ingenieria del software basada en componentes. Capitulo 21: Evolucién del software Capitulo 2: Sistemas socio-téenicos (2) Capitulo 4: Procesos sofware (3) Capitulo 7: Procesos de ingenierla de requerimientos (6) Capitulo 9: Especiticacién de sistemas critics (17) Capitulo 12: Arquitecturas de sistemas distibuidos (11) Capitulo 16: Disefto de interface de usuario (15) Capitulo 18: Reutilizacion de cédigo (14) Capitulo 25: Pruebas dei software (20) Capltulo 25: Gestién de personal (22) Capitulo 24; Validaci6n de sistemas crticos (21) Capitulo 28: Mejora de procesos (25) xvi Préiogo Capitulo 1: Introduccién (1) Capitulo 3: Sistemas erticos (16) Capitulo 5: Gestién de proyectos (4) Capitulo 6: Requerimientos software (5) Capitulo 8: Modelos de sistemas (7) Capitulo 10: Especficacion formal (9) Capitulo 11: Disefo arquitect6nico (10) Capitulo 14: Disefio orientado a objetos (12) Capitulo 15: Disefio de sistemas en tiempo real (13) Capitulo 20: Implementacién de sistemas crticos (18) Capitulo 22: Verificacién y validacion (19) Capitulo 26: Estimacién de costes del software (23) Capitulo 27: Gestion de calidad (24) Capitulo 29: Gestion de configuraciones (29) ‘Construcci6n de prototipos software (8) Sistemas heredados (26) Cambios en el software (27) Reingenieria del software (28) Guia para el lector Este libro esté enfocado a estudiantes, graduados e ingenieros de la industria del software. Puede ser utilizado en cursos generales de ingenieria del software o en cursos especificos, ‘como programacién avanzada, especificacién, diseiio y gestién software. A los ingenieros de software que trabajan en la industria, este libro puede resultarles stil como lectura general y ‘como actualizacién de sus conocimientos en temas panticulares como ingenierfa de requent- mientos, disefio de la arquitectura, desarrollo de sistemas formales y mejora de procesos. Los ejemplos en el texto han sido utilizados como una vfa prictica para reflejar el tipo de aplica- ciones que los ingenicros deben desarrollar. Usando el bro para ensefiar He disefiado e! libro para que pueda ser utilizado en tres tipos de cursos de ingenieria. 1. Cursos de introduccién a la ingenier(a del software para estudiantes que no tienen experiencia en ingenierfa del software. Se puede empezar con la seccién introducto- ria y luego seleccionar capitulos de otras secciones del libro. Esto dard a los estu- diantes una visi6n general de la materia con la oportunidad de hacer un estudio més detallado por parte de los alumnos interesados. Si el curso esta basado en proyectos, los primeros capitulos proporcionardn suficiente material para comenzar el proyec- to, y capitulos posteriores servirdn para referenciar y dar més informacién del avan- ce de su trabajo.

Potrebbero piacerti anche