Está en la página 1de 215

GUA AL CUERPO DE CONOCIMIENTO DE LA INGENIERA DEL

SOFTWARE

VERSIN 2004

SWEBOK

r
do
UN PROYECTO DEL COMIT DE LA PRCTICA PROFESIONAL DEL
IEEE COMPUTER SOCIETY

BORRADOR - ESPAOL
rra
Bo
GUA AL CUERPO DE CONOCIMIENTO DE LA INGENIERA DEL
SOFTWARE

VERSIN 2004

SWEBOK

r
do Directores ejecutivos
Alain Abran, cole de Technologie Superieure
James W. Moore, The Mitre Corp.

Directores
Pierre Bourque, cole De Technologie Superieure
Robert Dupuis, Universite Du Quebec A Montreal
rra
Jefe de proyecto
Leonard L. Tripp, Chair, Professional Practices Committee,
IEEE Computer Society (2001-2003)
Bo
Copyright 2004 por The Institute of Electrical and Electronics Engineers, Inc. Todos los derechos reservados.

Copyright y permisos de impresin: Este documento puede ser copiado, completo o parcialmente, de cualquier forma o
para cualquier propsito, y con alteraciones, siempre que (1) dichas alteraciones son claramente indicadas como
alteraciones y (2) que esta nota de copyright est incluida sin modificacin en cualquier copia. Cualquier uso o distribucin
de este documento est prohibido sin el consentimiento expreso de la IEEE.

Use este documento bajo la condicin de que asegure y mantenga fuera de toda ofensa a IEEE de cualquier y toda
responsabilidad o dao a usted o su hardware o software, o terceras partes, incluyendo las cuotas de abogados, costes del
juicio, y otros costes y gastos relacionados que surjan del uso de este documento independientemente de la causa de dicha
responsabilidad.

IEEE PONE ESTE DOCUMENTO A DISPOSICIN TAL CUAL EST, SIN GARANTA ALGUNA, EXPRESADA O
IMPLICADA, COMO LA EXACTITUD, CAPACIDAD, EFICIENCIA COMERCIAL, O FUNCIONALIDAD DE ESTE
DOCUMENTO IEEE NO SER RESPONSABLE DE CUALQUIER CONSECUENCIA, INDIRECTA, FORTUITA,

r
EJEMPLAR, O DE PELIGROS ESPECIALES, AN SI IEEE HA ADVERTIDO DE LA POSIBILIDAD DE DICHOS
PELIGROS.

Sociedad de Computadores IEEE


Centro de Servicio al Consumidor
10662 Los Vaqueros Circle
do
Nmero de Pedido C2330 de la Sociedad de Computadores IEEE
ISBN 0-7695-2330-7
Biblioteca del Congreso Nmero 2005921729

Copias adicionales deben ser pedidas desde:

Centro de Servicio IEEE


445 Hoes Lane
P.O. Box 1331
Sociedad de Computadores IEEE
Oficina de Asia/Pacfico
Watanabe Bldg., 1-4-2
rra
P.O. Box 3014 Piscataway, NJ 08855-1331 Minami-Aoyama
Los Alamitos, CA 90720-1314 Tel: +1-732-981-0060 Minatu-ku, Tokio 107-0062
Tel: +1-714-821-8380 Fax: +1-732-981-9667 Japn
Fax:+1-714-821-4641 http://shop.ieee.org/store/customer- Tel: +81-3-3408-3118
E-mail: cs.books@computer.org service@ieee.org Fax: +81-3-3408-3553
Tokio.ofc@computer.org

Publicadora: ngela Burgess


Editora del Grupo de Gestin, Prensa CS: Deborah Plummer
Publicidad/Promociones: Tom Fink
Production Editor: Bob Werner
Bo

Impreso en los Estados Unidos de Amrica


TABLA DE CONTENIDOS
PRLOGO .............................................................................................................................................. vii

PREFACIO ............................................................................................................................................ xvii

CAPTULO 1. INTRODUCCIN A LA GUA ............................................................................................... 1-1

CAPTULO 2. REQUERIMIENTOS DEL SOFTWARE ................................................................................... 2-1

CAPTULO 3. DISEO DE SOFTWARE .................................................................................................... 3-1

r
CAPTULO 4. CONSTRUCCIN DE SOFTWARE ....................................................................................... 4-1

CAPTULO 5. PRUEBAS DEL SOFTWARE ................................................................................................ 5-1

do
CAPTULO 6. MANTENIMIENTO DEL SOFTWARE ................................................................................... 6-1

CAPTULO 7. GESTIN DE LA CONFIGURACIN DEL SOFTWARE .......................................................... 7-1

CAPTULO 8. GESTIN DE LA INGENIERA DEL SOFTWARE ................................................................... 8-1

CAPTULO 9. PROCESO DE LA INGENIERA DEL SOFTWARE .................................................................. 9-1


rra
CAPTULO 10. INSTRUMENTOS Y MTODOS DEL LA INGENIERA DEL SOFTWARE ............................... 10-1

CAPTULO 11. CALIDAD DEL SOFTWARE ............................................................................................ 11-1

CAPTULO 12. DISCIPLINAS RELACIONADAS CON LA INGENIERA DEL SOFTWARE ............................. 12-1

APNDICE A. ESPECIFICACIONES DE LA DESCRIPCIN DE REAS DE


REAS DE CONOCIMIENTO PARA LA GUA HOMBRE DE HIERRO DE LA
GUA DEL CUERPO DE CONOCIMIENTO DE LA INGENIERA DEL SOFTWARE .......................................... A-1
Bo

APNDICE B. EVOLUCIN DE LA GUA DEL CUERPO DE CONOCIMIENTO DE


LA INGENIERA DEL SOFTWARE ..............................................................................................................B-1

APNDICE C. IEEE E ISO ESTNDARES A LAS REAS DE CONOCIMIENTO DEL SWEBOK ...................C-1

APNDICE D. CLASIFICACIN DE CONTENIDOS ACORDE A LA TAXONOMA DE BLOOM ....................... D-1


Bo
rra
do
r
PRLOGO
En esta gua, el IEEE Computer Society establece por primera vez una base para el cuerpo de conocimiento del
campo de la ingeniera del software, y el trabajo, y el trabajo cubre parcialmente la responsabilidad de la Sociedad de
promover el avance de la teora y prctica de este campo. Llevando a cabo esta tarea, la Sociedad ha sido guiada por la
experiencia de otras disciplinas ms maduras sin ligarse a sus problemas o soluciones.

Ntese que la Gua no pretende definir el cuerpo de conocimiento, sino servir como un compendio y gua al cuerpo de
conocimiento que se ha desarrollado y evolucionado durante 4 dcadas. Es ms, este cuerpo de conocimiento no es
esttico. La Gua debe necesariamente desarrollarse y evolucionar segn madura la ingeniera del software. Sin embargo,
constituye un valioso elemento a la infraestructura de la ingeniera del software.

En 1958, el renombrado matemtico estadstico John Tukey, acuo el trmino software. El trmino Ingeniera del

r
Software se utiliz por primera vez en el ttulo de una conferencia de la OTAN celebrada en Alemania en 1968. La IEEE
Computer Society public las primeras Transacciones en Ingeniera del Software (Transactions on Software Engineering)
en 1972. El comit creado por la IEEE Computer Society para el desarrollo de estndares de ingeniera del software se
fund en 1976.

do
La primera vista global de la ingeniera del software emerge del trabajo del equipo liderado por Fletcher Buckley para
desarrollar el estndar IEEE Std 730 para la calidad del software finalizado en 1979. El objetivo de dicho estndar fue el de
proporcionar un mnimo de requerimientos aceptables y uniformes para el aseguramiento de la calidad. Este estndar
influy en el desarrollo de otros estndares posteriores relacionados con la gestin de la configuracin, pruebas de
software, requerimientos del software, diseo del software y verificacin y validacin del software.

Durante los aos 1981-1985, la IEEE Computer Society organiz una serie de talleres de trabajo sobre la aplicacin
de los estndares de ingeniera del software en donde los profesionales que participaron compartieron sus experiencias con
los estndares existentes y planificaron futuros estndares incluyendo uno sobre medicin y mtricas para procesos y
rra
productos de la ingeniera del software. El resultado fue el IEEE Std 1002, Taxonoma de estndares de ingeniera del
software (1986), el cual proporciono una visin global de la ingeniera del software. El estndar describe la forma y
contenido de una taxonoma de estndares de ingeniera del software. Explica los diferentes tipos de estndares de
ingeniera del software, sus relaciones externas y funcionales, y el rol de las distintas funciones en el ciclo de vida del
software.

En 1990 comenz una planificacin para un estndar internacional con una visin general. La planificacin se centr
en reconciliar las vistas de los procesos del software del estndar IEEE Std 1074 y el estndar 2167A del departamento de
defensa (DoD, en sus siglas en ingls) de los EE.UU. La revisin del estndar se public como DoD Std 498. El estndar
fue completado en 1995 como ISO/IEC 12207, Estndar para los procesos del ciclo de vida del software. Este estndar
proporciono un importante punto de arranque para el cuerpo de conocimiento contenido en este libro.
Bo

La aprobacin de la mocin por parte de la junta de gobierno del IEEE Computer Society supuso el arranque por
parte de Fletcher Buckley para la escritura de este libro. El consejo de la ACM (Association for Computing Machinery)
aprob la mocin en agosto de 1993. Las dos mociones llevaron a la creacin de un comit conjunto dirigido por Mario
Barbacci y Stuart Zweben. La misin del comit conjunto fue: establecer un conjunto apropiado de criterios y normas
para la prctica profesional de la ingeniera del software sobre las que puedan basarse decisiones industriales,
certificaciones profesionales y planes de estudios. El comit directivo organiz el trabajo en las siguientes reas:

1. Definir el cuerpo de conocimiento y prcticas recomendadas.


2. Definir estndares ticos y profesionales
3. Definir planes de estudios para cursos de grado, postgrado y formacin continua.

Este libro proporciona el primer punto, el cuerpo de conocimiento necesario y prcticas recomendadas.

El cdigo tico y conducta profesional para la Ingeniera del software fue terminado en 1998 y aprobado por la juntas
de gobierno de la ACM e IEEE Computer Society. Ha sido adoptado por numerosas empresas y organizaciones y se
incluye en libros de texto recientes.

El plan de estudios para estudios de grado fue completado en 2004.


Aunque no siempre definidas de manera precisa, cada profesin se basa en un cuerpo de conocimiento y prcticas
recomendadas. En muchos casos, estn formalmente documentadas, generalmente en un formato que permite que sean
usadas para acreditaciones de planes acadmicos, desarrollo de cursos y programas educativos, certificaciones
profesionales o licencias profesionales. Generalmente, una sociedad profesional o cuerpo relacionado mantiene la custodia
de la definicin formal. En los casos en los que no existe esa formalidad, el cuerpo de conocimiento y prcticas
recomendadas son generalmente reconocidas por profesionales y pueden ser codificadas en una variedad de formas por
los distintos usuarios.

Se espera que los lectores encuentren este libro til como gua para el conocimiento y recursos necesarios en el
desarrollo de su profesin como profesionales de la ingeniera del software.

Este libro est dedicado a Fletcher Buckley en reconocimiento a su empeo en el promover la ingeniera del software
como una disciplina profesional y su excelente profesionalidad como ingeniero de software para radares.

r
Leonard L. Tripp, IEEE Fellow 2003
Chair, Professional Practices Committee, IEEE Computer Society (2001-2003)
Chair, Joint IEEE Computer Society and ACM Steering Committee

do
for the Establishment of Software Engineering as a Profession (1998-1999)
Chair, Software Engineering Standards Committee, IEEE Computer Society (1992-1998)
rra
Bo
EDITORES ASOCIADOS
Las siguientes personas trabajaron como directores asociados bien para la versin de prueba 2001 o bien la versin 2004.

Requerimientos del Software


Peter Sawyer and Gerald Kotonya, Computing Department, Lancaster University, Reino Unido,
{p.sawy er, g.kotonya}@lancaster.ac.uk

Diseo del Software


Guy Tremblay, Dpartement dinformatique, UQAM, Canad, tremblay.guy@uqam.ca

Construccin del software


Steve McConnell, Construx Software, EEUU, Steve.McConnell@construx.com

r
Terry Bollinger, the MITRE Corporation, EEUU, terry@mitre.org
Philippe Gabrini, Dpartement dinformatique, UQAM, Canad, gabrini.philippe@uqam.ca
Louis Martin, Dpartement dinformatique, UQAM, Canad, martin.louis@uqam.ca

do
Pruebas del software
Antonia Bertolino y Eda Marchetti, ISTI-CNR, Italia, {antonia.bertolino}{eda.marchetti}@isti.cnr.it

Mantenimiento del software


Thomas M. Pigoski, Techsoft Inc., EEUU, tmpigoski@techsoft.com
Alain April, cole de technologie suprieure, Canad, aapril@ele.etsmtl.ca

Gestin de la configuracin del software


John A. Scott, Lawrence Livermore National Laboratory, EEUU, scott7@llnl.gov
David Nisse, EEUU, nissed@worldnet.att.net
rra
Gestin en la ingeniera del software
Dennis Frailey, Raytheon Company, EEUU, DJFrailey@Raytheon.com
Stephen G. MacDonell, Auckland University of technology, Nueva Zelanda, smacdone@aut.ac.nz
Andrew R. Gray, University of Otago, Nueva Zelanda

Procesos de ingeneniera del software


Khaled El Emam, Canadian National Research Council, Canad, khaled.el-emam@nrc-cnrc.gc.ca

Herramientas y mtodos en la ingeniera del software


David Carrington, School of Information Technology and Electrical Engineering, The University of Queensland,
Australia, davec@itee.uq.edu.au
Bo

Calidad del software


Alain April, cole de technologie suprieure, Canad, aapril@ele.etsmtl.ca
Dolores Wallace, retired from the National Institute of Standards and Technology, EEUU,
Dolores.Wallace@nist.gov
Larry Reeker, NIST, EEUU, Larry.Reeker@nist.gov

Coordinador de referencias
Marc Bouisset, Dpartement dinformatique, UQAM, Bouisset.Marc@uqam.ca
COMIT EJECUTIVO PROFESIONAL
A fecha de publicacin, las personas nombradas a continuacin formaron el comit ejecutivo profesional:

Mario R. Barbacci, Software Engineering Institute, representando al IEEE Computer Society

Carl Chang, representando a Computing Curricula 2001

Franois Coallier, cole de technologie suprieure, como director de ISO/IEC JTC 1/SC7

Charles Howell, The MITRE Corporation

Anatol Kark, National Research Council of Canad

r
Philippe Kruchten, University of British Columbia, como representante de Rational Software

Laure Le Bars, SAP Labs (Canad)

do
Steve McConnell, Construx Software

Dan Nash, Raytheon Company

Fred Otto, Canadian Council of Professional Engineers (CCPE)

Richard Metz, The Boeing Company

Larry Reeker, National Institute of Standards and Technology, Department of Commerce, EEUU
rra
Las siguientes personas trabajaron con este comit en el control de cambios de la edicin del 2004:

Donald Bagert, Rose-Hulman Institute of Technology, representing the IEEE Computer Society Professional Practices
Committee

Ann Sobel, Miami University, representado a la junta ejecutiva del Computing Curricula Software Engineering
Bo
PANEL DE EXPERTOS
Las siguientes personas trabajaron como panel de expertos en la preparacin de la versin de prueba (Trial) de la
Gua:

Steve McConnell, Construx Software

Roger Pressman, R.S. Pressman and Associates

Ian Sommerville, Lancaster University, Reino Unido

r
do
rra
Bo
REVISORES
Las siguientes personas trabajaron como directores asociados en la versin de prueba (Trial) 2001 y/o la versin 2004.

Abbas, Rasha, Australia Bierwolf, Robert, The Charette, Robert, EEUU


Abran, Alain, Canad Pases Bajos Chevrier, Marielle, Canad
Accioly, Carlos, Brasil Bisbal, Jesus, Irlanda Chi, Donald, EEUU
Ackerman, Frank, EEUU Boivin, Michel, Canad Chiew, Vincent, Canad
Akiyama, Yoshihiro, Japn Bolton, Michael, Canad Chilenski, John, EEUU
Al-Abdullah, Mohammad, EEUU Bomitali, Evelino, Italia Chow, Keith, Italia
Alarcon, Miren Idoia, Espaa Bonderer, Reto, Suiza Ciciliani, Ricardo, Argentina
Alawy, Ahmed, EEUU Bonk, Francis, EEUU Clark, Glenda, EEUU

r
Alleman, Glen, EEUU Booch, Grady, EEUU Cleavenger, Darrell, EEUU
Allen, Bob, Canad Booker, Glenn, EEUU Cloos, Romain, Luxembourg
Allen, David, EEUU Brstler, Jrgen, Suecia Coallier, Franois, Canad
Amorosa, Franciasco, Italia Borzovs, Juris, Latvia Coblentz, Brenda, EEUU

do
Amyot, Daniel, Canad Botting, Richard, EEUU Cohen, Phil, Australia
Andrade, Daniel, Brasil Bourque, Pierre, Canad Collard, Ross, Nueva Zelanda
April, Alain, Canad Bowen, Thomas, EEUU Collignon, Stephane, Australia
Arroyo-Figueror, Javier, EEUU Boyd, Milt, EEUU Connors, Kathy Jo, EEUU
Ashford, Sonny, EEUU Boyer, Ken, EEUU Cooper, Daniel, EEUU
Atsushi, Sawada, Japn Brashear, Phil, EEUU Councill, Bill, EEUU
Backitis Jr., Frank, EEUU Briggs, Steve, EEUU Cox, Margery, EEUU
Bagert, Donald, EEUU Bright, Daniela, EEUU Cunin, Pierre-Yves, Francia
Baker, Jr., David, EEUU Brosseau, Jim, Canad DaLuz, Joseph, EEUU
Baker, Theodore, EEUU Brotbeck, George, EEUU Dampier, David, EEUU
rra
Baldwin, Mark, EEUU Brown, Normand, Canad Daneva, Maya, Canad
Bales, David, Reino Unido Bruhn, Anna, EEUU Daneva, Maya, Canad
Bamberger, Judy, EEUU Brune, Kevin, EEUU Daughtry, Taz, EEUU
Banerjee, Bakul, EEUU Bryant, Jeanne, EEUU Davis, Ruth, EEUU
Barber, Scott, EEUU Buglione, Luigi, Italia De Cesare, Sergio, Reino Unido
Barker, Harry, Reino Unido Bullock, James, EEUU Dekleva, Sasa, EEUU
Barnes, Julie, EEUU Burns, Robert, EEUU Del Castillo, Federico, Per
Barney, David, Australia Burnstein, Ilene, EEUU Del Dago, Gustavo, Argentina
Barros, Rafael, Colombia Byrne, Edward, EEUU DeWeese, Perry, EEUU
Bastarache, Louis, Canad Calizaya, Percy, Per Di Nunno, Donn, EEUU
Bayer, Steven, EEUU Carreon, Juan, EEUU Diaz-Herrera, Jorge, EEUU
Beaulac, Adeline, Canad Carroll, Sue, EEUU Dieste, Oscar, Espaa
Bo

Beck, William, EEUU Carruthers, Kate, Australia Dion, Francis, Canad


Beckman, Kathleen, EEUU Caruso, Richard, EEUU Dixon, Wes, EEUU
Below, Doreen, EEUU Carvalho, Paul, Canad Dolado, Javier, Espaa
Benediktsson, Oddur, Islandia Case, Pam, EEUU Donaldson, John, Reino Unido
Ben-Menachem, Mordechai, Cavanaugh, John, EEUU Dorantes, Marco, Mexico
Israel Celia, John A., EEUU Dorofee, Audrey, EEUU
Bergeron, Alain, Canad Chalupa Sampaio, Alberto Douglass, Keith, Canad
Berler, Alexander, Grecia Antonio, Portugal Du, Weichang, Canad
Bernet, Martin, EEUU Chan, F.T., Hong Kong Duben, Anthony, EEUU
Bernstein, Larry, EEUU Chan, Keith, Hong Kong Dudash, Edward, EEUU
Bertram, Martin, Alemania Chandra, A.K., India Duncan, Scott, EEUU
Bialik, Tracy, EEUU Chang, Wen-Kui, Taiwan Duong, Vinh, Canad
Bielikova, Maria, Eslovaquia Chapin, Ned, EEUU Durham, George, EEUU
Dutil, Daniel, Canad Gresse von Wangenheim, Jones, James E., EEUU
Dutton, Jeffrey, EEUU Christiane, Brasil Jones, Alan, Reino Unido
Ebert, Christof, Francia Grigonis, George, EEUU Jones, James, EEUU
Edge, Gary, EEUU Gupta, Arun, EEUU Jones, Larry, Canad
Edwards, Helen Maria, Reino Unido Gustafson, David, EEUU Jones, Paul, EEUU
El-Kadi, Amr, Ejipto Gutcher, Frank, EEUU Ju, Dehua, China
Endres, David, EEUU Haas, Bob, EEUU Juan-Martinez, Manuel-
Engelmann, Franz, Suiza Hagar, Jon, EEUU Fernando, Espaa
Escue, Marilyn, EEUU Hagstrom, Erick, EEUU Juhasz, Zoltan, Hungra
Espinoza, Marco, Per Hailey, Victoria, Canad Juristo, Natalia, Espaa
Fay, Istvan, Hungra Hall, Duncan, Nueva Zelanda Kaiser, Michael, Suiza
Fayad, Mohamed, EEUU Haller, John, EEUU Kambic, George, EEUU
Fendrich, John, EEUU Halstead-Nussloch, Richard, Kamthan, Pankaj, Canad
Ferguson, Robert, EEUU EEUU Kaner, Cem, EEUU
Fernandez, Eduardo, EEUU Hamm, Linda, EEUU Kark, Anatol, Canad

r
Fernandez-Sanchez, Jose Luis, Hankewitz, Lutz, Alemania Kasser, Joe, EEUU
Espaa Harker, Rob, EEUU Kasser, Joseph, Australia
Filgueiras, Lucia, Brasil Hart, Hal, EEUU Katz, Alf, Australia

do
Finkelstein, Anthony, Reino Unido Hart, Ronald, EEUU Kececi, Nihal, Canad
Flinchbaugh, Scott, EEUU Hartner, Clinton, EEUU Kell, Penelope, EEUU
Forrey, Arden, EEUU Hayeck, Elie, EEUU Kelly, Diane, Canad
Fortenberry, Kirby, EEUU He, Zhonglin, Reino Unido Kelly, Frank, EEUU
Foster, Henrietta, EEUU Hedger, Dick, EEUU Kenett, Ron, Israel
Fowler, Martin, EEUU Hefner, Rick, EEUU Kenney, Mary L., EEUU
Fowler, John Jr., EEUU Heinrich, Mark, EEUU Kerievsky, Joshua, EEUU
Fox, Christopher, EEUU Heinze, Sherry, Canad Kerr, John, EEUU
Frankl, Phyllis, EEUU Hensel, Alan, EEUU Kierzyk, Robert, EEUU
Freibergs, Imants, Latvia Herrmann, Debra, EEUU Kinsner, W., Canad
Frezza, Stephen, EEUU Hesse, Wolfgang, Alemania Kirkpatrick, Harry, EEUU
rra
Fruehauf, Karol, Suiza Hilburn, Thomas, EEUU Kittiel, Linda, EEUU
Fuggetta, Alphonso, Italia Hill, Michael, EEUU Klappholz, David, EEUU
Fujii, Roger, EEUU Ho, Vinh, Canad Klein, Joshua, Israel
FUSCHI, David Luigi, Italia Hodgen, Bruce, Australia Knight, Claire, Reino Unido
Fuschi, David Luigi, Italia Hodges, Brett, Canad Knoke, Peter, EEUU
Gabrini, Philippe, Canad Hoffman, Douglas, Canad Ko, Roy, Hong Kong
Gagnon, Eric, Canad Hoffman, Michael, EEUU Kolewe, Ralph, Canad
Ganor, Eitan, Israel Hoganson, Tammy, EEUU Komal, Surinder Singh, Canad
Garbajosa, Juan, Espaa Hollocker, Chuck, EEUU Kovalovsky, Stefan, Austria
Garceau, Benot, Canad Horch, John, EEUU Krauth, Pter, Hungra
Garcia-Palencia, Omar, Howard, Adrian, Reino Unido Krishnan, Nirmala, EEUU
Bo

Colombia Huang, Hui Min, EEUU Kromholz, Alfred, Canad


Garner, Barry, EEUU Hung, Chih-Cheng, EEUU Kruchten, Philippe, Canad
Gelperin, David, EEUU Hung, Peter, EEUU Kuehner, Nathanael, Canad
Gersting, Judith, Hawaii Hunt, Theresa, EEUU Kwok, Shui Hung, Canad
Giesler, Gregg, EEUU Hunter, John, EEUU Lacroix, Dominique, Canad
Gil, Indalecio, Espaa Hvannberg, Ebba Thora, Islandia LaMotte, Stephen W., EEUU
Gilchrist, Thomas, EEUU Hybertson, Duane, EEUU Land, Susan, EEUU
Giurescu, Nicolae, Canad Ikiz, Seckin, Turkey Lange, Douglas, EEUU
Glass, Robert, EEUU Iyengar, Dwaraka, EEUU Laporte, Claude, Canad
Glynn, Garth, Reino Unido Jackelen, George, EEUU Lawlis, Patricia, EEUU
Goers, Ron, EEUU Jaeger, Dawn, EEUU Le, Thach, EEUU
Gogates, Gregory, EEUU Jahnke, Jens, Canad Leavitt, Randal, Canad
Goldsmith, Robin, EEUU James, Jean, EEUU LeBel, Rjean, Canad
Goodbrand, Alan, Canad Jino, Mario, Brasil Leciston, David, EEUU
Gorski, Janusz, Polonia Johnson, Vandy, EEUU Lee, Chanyoung, EEUU
Graybill, Mark, EEUU Jones, Griffin, EEUU Lehman, Meir (Manny), Reino Unido
Leigh, William, EEUU Miranda, Eduardo, Canad Phister, Paul, EEUU
Lembo, Jim, EEUU Mistrik, Ivan, Alemania Phister, Jr., Paul, EEUU
Lenss, John, EEUU Mitasiunas, Antanas, Lituania Piattini, Mario, Espaa
Leonard, Eugene, EEUU Modell, Howard, EEUU Piersall, Jeff, EEUU
Lethbridge, Timothy, Canad Modell, Staiger,EEUU Pillai, S.K., India
Leung, Hareton, Hong Kong Modesitt, Kenneth, EEUU Pinder, Alan, Reino Unido
Lever, Ronald, Pases Bajos Moland, Kathryn, EEUU Pinheiro, Francisco A., Brasil
Levesque, Ghislain, Canad Moldavsky, Symon, Ucrania Plekhanova, Valentina, Reino Unido
Ley, Earl, EEUU Montequn, Vicente R., Espaa Poon, Peter, EEUU
Linders, Ben, Pases Bajos Moreno, Ana Maria, Espaa Poppendieck, Mary, EEUU
Linscomb, Dennis, EEUU Mosiuoa, Tseliso, Lesotho Powell, Mace, EEUU
Little, Joyce Currie, EEUU Moudry, James, EEUU Predenkoski, Mary, EEUU
Logan, Jim, EEUU Msheik, Hamdan, Canad Prescott, Allen, EEUU
Long, Carol, Reino Unido Mularz, Diane, EEUU Pressman, Roger, EEUU
Lounis, Hakim, Canad Mullens, David, EEUU Price, Art, EEUU

r
Low, Graham, Australia Mllerburg, Monika, Alemania Price, Margaretha, EEUU
Lutz, Michael, EEUU Murali, Nagarajan, Australia Pullum, Laura, EEUU
Lynch, Gary, EEUU Murphy, Mike, EEUU Purser, Keith, EEUU

do
Machado, Cristina, Brasil Napier, John, EEUU Purssey, John, Australia
MacKay, Stephen, Canad Narasimhadevara, Sudha, Pustaver, John, EEUU
MacKenzie, Garth, EEUU Canad Quinn, Anne, EEUU
MacNeil, Paul, EEUU Narawane, Ranjana, India Radnell, David, Australia
Magel, Kenneth, EEUU Narayanan, Ramanathan, India Rae, Andrew, Reino Unido
Mains, Harold, EEUU Navarro Ramirez, Daniel, Rafea, Ahmed, Ejipto
Malak, Renee, EEUU Mxico Ramsden, Patrick, Australia
Maldonado, Jos Carlos, Brasil Navas Plano, Francisco, Espaa Rao, N.Vyaghrewara, India
Marcos, Esperanza, Espaa Navrat, Pavol, Eslovaquia Rawsthorne, Dan, EEUU
Marinescu, Radu, Rumana Neumann, Dolly, EEUU Reader, Katherine, EEUU
Marm, Waldo, Per Nguyen-Kim, Hong, Canad Reddy, Vijay,EEUU
rra
Marusca, Ioan, Canad Nikandros, George, Australia Redwine, Samuel, EEUU
Matlen, Duane, EEUU Nishiyama, Tetsuto, Japn Reed, Karl, Australia
Matsumoto, Yoshihiro, Japn Nunn, David, EEUU Reedy, Ann, EEUU
McBride, Tom, Australia O'Donoghue, David, Irlanda Reeker, Larry, EEUU
McCarthy, Glenn, EEUU Oliver, David John, Australia Rethard, Tom, EEUU
McChesney, Ian, Reino Unido Olson, Keith, EEUU Reussner, Ralf, Alemania
McCormick, Thomas, Canad Oskarsson, sten, Suecia Rios, Joaquin, Espaa
McCown, Christian, EEUU Ostrom, Donald, EEUU Risbec, Philippe, Francia
McDonald, Jim, EEUU Oudshoorn, Michael, Australia Roach, Steve, EEUU
McGrath Carroll, Sue, EEUU Owen, Cherry, EEUU Robillard, Pierre, Canad
McHutchison, Diane, EEUU Pai, Hsueh-Ieng, Canad Rocha, Zalkind, Brasil
Bo

McKinnell, Brian, Canad Parrish, Lee, EEUU Rodeiro Iglesias, Javier, Espaa
McMichael, Robert, EEUU Parsons, Samuel, EEUU Rodriguez-Dapena, Patricia,
McMillan, William, EEUU Patel, Dilip, Reino Unido Espaa
McQuaid, Patricia, EEUU Paulk, Mark, EEUU Rogoway, Paul, Israel
Mead, Nancy, EEUU Paella, Jan, Repblica Checa Rontondi, Guido, Italia
Meeuse, Jaap, Pases Bajos Pavlov, Vladimir, Ucrania Roose, Philippe, Francia
Meier, Michael, EEUU Pawlyszyn, Blanche, EEUU Rosca, Daniela, EEUU
Meisenzahl, Christopher, EEUU Pecceu, Didier, Francia Rosenberg, Linda, EEUU
Melhart, Bonnie, EEUU Perisic, Branko, Yugoslavia Rourke, Michael, Australia
Mengel, Susan, EEUU Perry, Dale, EEUU Rout, Terry, Australia
Meredith, Denis, EEUU Peters, Dennis, Canad Rufer, Russ, EEUU
Meyerhoff, Dirk, Alemania Petersen, Erik, Australia Ruiz, Francisco, Espaa
Mili, Hafedh, Canad Pfahl, Dietmar, Alemania Ruocco, Anthony, EEUU
Miller, Chris, Pases Bajos Pfeiffer, Martin, Alemania Rutherfoord, Rebecca, EEUU
Miller, Keith, EEUU Phillips, Dwayne, EEUU Ryan, Michael, Irlanda
Miller, Mark, EEUU Phipps, Robert, EEUU Salustri, Filippo, Canad
Salustri, Filippo, Canad Soundarajan, Neelam, EEUU Urbanowicz, Theodore, EEUU
Salwin, Arthur, EEUU Sousa Santos, Frederico, Van Duine, Dan, EEUU
Sanden, Bo, EEUU Portugal Van Ekris, Jaap, Pases Bajos
Sandmayr, Helmut, Suiza Spillers, Mark, EEUU Van Oosterhout, Bram, Australia
Santana Filho, Ozeas Vieira, Spinellis, Diomidis, Grecia Vander Plaats, Jim, EEUU
Brasil Splaine, Steve, EEUU Vegas, Sira, Espaa
Sato, Tomonobu, Japn Springer, Donald, EEUU Verner, June, EEUU
satyadas, antony, EEUU Staiger, John, EEUU Villas-Boas, Andr, Brasil
Satyadas, Antony, EEUU Starai, Thomas, EEUU Vollman, Thomas, EEUU
Schaaf, Robert, EEUU Steurs, Stefan, Belgium Walker, Richard, Australia
Scheper, Charlotte, EEUU St-Pierre, Denis, Canad Walsh, Bucky, EEUU
Schiffel, Jeffrey, EEUU Stroulia, Eleni, Canad Wang, Yingxu, Suecia
Schlicht, Bill, EEUU Subramanian, K.S., India Wear, Larry, EEUU
Schrott, William, EEUU Sundaram, Sai, Reino Unido Weigel, richard, EEUU
Schwarm, Stephen, EEUU Swanek, James, EEUU Weinstock, Charles, EEUU

r
Schweppe, Edmund, EEUU Swearingen, Sandra, EEUU Wenyin, Liu, China
Sebern, Mark, EEUU Szymkowiak, Paul, Canad Werner, Linda, EEUU
Seffah, Ahmed, Canad Tamai, Tetsuo, Japn Wheeler, David, EEUU

do
Selby, Nancy, EEUU Tasker, Dan, Nueva Zelanda White, Nathan, EEUU
Selph, William, EEUU Taylor, Stanford, EEUU White, Stephanie, EEUU
Sen, Dhruba, EEUU Terekhov, Andrey A., Russian Whitmire, Scott, EEUU
Senechal, Raymond, EEUU Federation Wijbrans, Klaas, The
Sepulveda, Christian, EEUU Terski, Matt, EEUU Pases Bajos
Setlur, Atul, EEUU Thayer, Richard, EEUU Wijbrans-Roodbergen, Margot,
Sharp, David, EEUU Thomas, Michael, EEUU Pases Bajos
Shepard, Terry, Canad Thompson, A. Allan, Australia Wilkie, Frederick, Reino Unido
Shepherd, Alan, Alemania Thompson, John Barrie, Reino Unido Wille, Cornelius, Alemania
Shillato, Rrobert W, EEUU Titus, Jason, EEUU Wilson, Charles, EEUU
Shintani, Katsutoshi, Japn Tockey, Steve, EEUU Wilson, Leon, EEUU
rra
Silva, Andres, Espaa Tovar, Edmundo, Espaa Wilson, Russell, EEUU
Silva, Andres, Espaa Towhidnejad, Massood, EEUU Woechan, Kenneth, EEUU
Singer, Carl, EEUU Trellue, Patricia, EEUU Woit, Denise, Canad
Sinnett, Paul, Reino Unido Trves, Nicolas, Francia Yadin, Aharon, Israel
Sintzoff, Andr, Francia Troy, Elliot, EEUU Yih, Swu, Taiwan
Sitte, Renate, Australia Tsui, Frank, EEUU Young, Michal, EEUU
Sky, Richard, EEUU Tsuneo, Furuyama, Japn Yrivarren, Jorge, Per
Smilie, Kevin, EEUU Tuohy, Kenney, EEUU Znotka, Juergen, Alemania
Smith, David, EEUU Tuohy, Marsha P., EEUU Zuser, Wolfgang, Austria
Sophatsathit, Peraphon, Tailandia Turczyn, Stephen, EEUU Zvegintzov, Nicholas, EEUU
Sorensen, Reed, EEUU Upchurch, Richard, EEUU Zweben, Stu, EEUU
Bo
La siguiente mocin fue unnimemente aprobada por el comit ejecutivo profesional el 6 de
febrero de 2004.
El comit ejecutivo profesional afirma que el cuerpo de conocimiento de la ingeniera del software iniciado en 1998 se ha
completado satisfactoriamente y endorsa la versin 2004 de la gua al SWEBOK y lo recomienda su aprobacin a junta de
gobierno de IEEE Computer Society.

La siguiente mocin fue unnimemente aprobada por el junta de gobierno del IEEE Computer
Society en febrero del 2004.
La junta de gobierno de IEEE Computer Society aprueba la edicin del 2004 de la Gua al cuerpo de conocimiento de la
ingeniera del software y autoriza al director del comit de prcticas profesionales a proceder con su impresin.

r
do
rra
Bo
PREFACIO

La ingeniera del software es una disciplina emergente y


hay tendencias que indican un incremento en su nivel de PROPSITO
madurez:
El propsito de la gua al conocimiento de la ingeniera del
Varias universidades en el mundo ofrecen software es proporcional una caracterizacin validada y
titulaciones en ingeniera del software. Ejemplos consensuada de los lmites de la disciplina de la ingeniera
de tales titulaciones se incluyen: University of del software, y proporcionar un acceso a los temas del
New South Wales (Australia), McMaster cuerpo de conocimiento apoyando la disciplina. El cuerpo
University (Canad), Rochester Institute of de conocimiento est dividido en 10 reas del
Technology (EE.UU.), University of Sheffield conocimiento (AC), KA, Knowledge Areas) ms un
(Reino Unido), etc. captulo adicional proporcionando una perspectiva general

r
En los EE.UU., la comisin de acreditacin de de las AC. Las descripciones de las AC estn diseadas
ingenieras de ABET (Accreditation Board for para discernir entre los varios conceptos importantes,
Engineering and Technology) es el responsable permitiendo al lector encontrar rpidamente los temas de

do
de la acreditacin de planes de estudios de grado inters. Una vez encontrado el tema de inters, el lector es
de ingeniera del software. referido a artculos clave o captulos de libro
La Canadian Information Processing Society ha seleccionados por presentar el conocimiento de manera
publicado los criterios para acreditar programas sucinta.
universitarios de grado de ingeniera del software.
El CMM (Capability Maturiry Model) y el Con una ojeada a la gua, los lectores notarn que el
CMMI (Capability Maturiry Model Integration) contenido es sustancialmente diferente de la ciencia de la
del SEI (Software Enginering Institute) se informtica. Al igual que el ingeniero electrnico se basa
emplean para evaluar la capacidad/madurez de la en fsica, el ingeniero del software se debera basar, entre
ingeniera del software en las empresas. Los otras cosas, en la informtica. En estos dos casos, el
rra
estndares de gestin de calidad ISO 9000 han nfasis es necesariamente diferente. Los cientficos
sido aplicados a la ingeniera del software en el (fsicos, informticos) incrementan nuestro conocimiento
estndar ISO/IEC 90003. de las leyes de la naturaleza, sin embargo, los ingenieros
La Junta de Ingenieros Profesionales de Texas ha aplican esas leyes para construir artefactos tiles bajo
comenzado a emitir licencias a los profesionales ciertas condiciones. Por tanto, el nfasis de esta gua se
de la ingeniera del software. centra en la construccin de artefactos de software tiles
La APEGBC (Association of Professional bajo ciertas restricciones.
Engineers and Geoscientists of British Columbia)
inscribe a ingenieros del software y la PEO Los lectores tambin notarn en muchos aspectos
(Professional Engineers of Ontario) ha anunciado importantes de la tecnologa de la informacin pueden
los requerimientos para las licencias. constituir conocimientos importantes en la ingeniera del
La ACM (Association for Computing Machinery) software an no cubiertos en esta gua, por ejemplo,
Bo

lenguajes de programacin especficos, bases de datos


y el IEEE Computer Society han desarrollado
relacionales y redes. Todo esto es consecuencia del punto
conjuntamente y adoptado el cdigo tico y
conducta profesional1. de vista de la ingeniera de software tomado. En todas las
reas no solamente en informtica los diseadores de
El IEEE Computer Society ofrece el Certificado
los planes de estudios en ingeniera se han dado cuenta
de desarrollador de software profesional. El ICCP
que tecnologas especficas estn siendo reemplazadas
(Institute for Certification of Computing
mucho ms rpidamente que la vida laboral de los
Professionals) lleva tiempo ofreciendo una
ingenieros que las utilizan. Por tanto, los ingenieros de
certificacin a profesionales de la informtica.
tener un conocimiento en el que basar la seleccin de la
tecnologa apropiada en cierto momento y bajo unas
Todos estos esfuerzos estn basados en la presuncin de
circunstancias determinadas. Por ejemplo, un programa
que existe un cuerpo de conocimiento que debera ser
puede ser construido en Fortran utilizando descomposicin
dominado por los profesionales del software. Dicho
funcional o en C++ utilizando tcnicas orientadas a objeto.
cuerpo de conocimiento existe en la literatura acumulada
Aunque las tcnicas para configuracin de dichos sistemas
en los ltimos 30 aos. Este libro proporciona una gua al
seran bastante diferentes, los principios y objetivos en la
cuerpo de conocimiento.
gestin de configuracin son los mismos. La gua, por
tanto, no se centra en el constante cambio de tecnologas,
1 sino en los principios generales relevantes descritos en las
El cdigo tico y conducta profesional est disponible en reas de conocimiento.
espaol en: http://www.sc.ehu.es/jiwdocoj/codeacm.htm
e ingls: http://www.computer.org/certification/ethics.htm
Estas exclusiones demuestran que la gua es
necesariamente incompleta. La gua cumbre conocimiento EVOLUCIN DE LA GUA
sobre la ingeniera del software que es condicin necesaria
pero no suficiente para los ingenieros del software. Los Desde 1993 hasta el 2000, el IEEE Computer Society y la
profesionales de la ingeniera del software necesitarn ACM cooperaron en promover la profesionalizacin de la
tener amplios conocimientos de, por ejemplo, informtica, ingeniera de software a travs de un comit para la
gestin de proyectos, y la ingeniera de sistemas que estn coordinacin de la ingeniera del software (Software
fuera del cuerpo de conocimiento caracterizado en esta Engineering Coordinating Committee SWECC). El
gua; sin embargo decir que todos esos conceptos deberan cdigo de tica y conducta profesional fue completado
ser conocidos por los ingenieros del software no es lo bajo la tutela de SWECC en1998 a travs de esfuerzos
mismo que decir que este conocimiento cae dentro de las voluntarios. El SWEBOK fue iniciado por el SWECC en
fronteras de la ingeniera del software. No obstante, s que 1998.
se afirma que los ingenieros del software necesitan
conocimientos de otras disciplinas. Ese es el punto de vista El mbito del proyecto SWEBOK, la gran variedad de
adoptado en esta gua. Por tanto, esta gua caracteriza el comunidades involucradas, y la necesidad de una amplia

r
cuerpo de conocimiento que cae dentro del mbito de la participacin sugirieron la necesidad de una gestin a
ingeniera de software y proporciona referencias a otros tiempo completo en lugar de esfuerzos voluntarios y
conocimientos relevantes en otras disciplinas. Un captulo altruistas. Con este fin, el IEEE Computer Society contrato

do
de la gua proporciona una visin global taxonmica de con el laboratorio de investigacin de ingeniera de
disciplinas relacionadas derivadas de importantes fuentes. software de la Universidad de Qubec en Montreal
(Universit du Qubec Montral -UQAM) para gestionar
El nfasis en la prctica de la ingeniera lleva a la gua a el proyecto. En los ltimos aos, UQAM se ha unido a la
tener una fuerte relacin con literatura normativa. La Escuela de Tecnologa Superior de Montral, Quebec
mayora de la literatura en la informtica, tecnologas de la (TS cole technologie suprieure).
informacin e ingeniera de software proporciona
informacin til a los ingenieros del software, pero slo El proyecto se dividi en tres fases: Hombre de Paja,
una pequea parte de ella es normativa. Una referencia Hombre de Piedra y Hombre de Hierro. Un prototipo
normativa prescribe que debera hacer un ingeniero en una inicial, Hombre de Paja, demostr como el proyecto
situacin especfica en vez de proporcionar informacin podra ser organizado. La publicacin de la ampliamente
rra
que podra ser til. La literatura normativa est validada circulada versin de prueba de la gua en el 2001 (Trial
por consenso entre los profesionales, y se concentra en Version) marc fin de la fase Hombre de Piedra e inicio
estndares y documentos relacionados. Desde la un periodo de prueba en uso. La gua actual marca el fin
concepcin del SWEBOK, ste fue concebido con una de del periodo Hombre de Hierro proporcionando una
fuerte relacin a la literatura normativa en la ingeniera del gua que ha alcanzado un consenso mediante revisiones y
software. Las dos entidades ms importantes en la pruebas.
creacin de estndares de ingeniera de software IEEE
Computer Society e ISO/IEC JCT1/SC7 estn siendo El equipo que desarroll el proyecto se bas en dos
representadas en el proyecto. En ltima instancia, principios fundamentales para el desarrollo de la gua:
esperamos que los estndares en la prctica de la transparencia y consenso. Por transparencia, se quiere
ingeniera del software contengan los principios decir que el proceso de desarrollo en s mismo est
Bo

contenidos en esta gua. documentado, publicado y publicitado de manera que las


decisiones importantes y progreso son visibles a todas las
A QUIN VA DIRIGIDO partes constituyentes por consenso. Por consenso,
queremos decir que el nico mtodo prctico para
La gua est orientada hacia una gran variedad de legitimar afirmaciones es a travs de una amplia
audiencias en todo el mundo. Intenta proporcionar a participacin y acuerdos por todos los sectores relevantes
organismos pblicos o privados con una visin estable de en la comunidad.
la ingeniera de software para definir requerimientos en
educacin, competencias para trabajos, desarrollo de Literalmente cientos de copartcipes, revisores y usuarios
polticas de evaluacin, o la especificacin de tareas de durante el periodo de prueba han contribuido en la
desarrollo de software. Tambin se dirige a la prctica o produccin del actual documento.
gestin, ingenieros de software y responsables de polticas
relacionadas con licencias y guas de profesionales. Como cualquier proyecto de software, el en SWEBOK
Adems, se beneficiarn del SWEBOK las sociedades contribuyeron muchos participantes algunos de los
profesionales y acadmicos que definen las normas de cuales estn formalmente representados. El proyecto ha
certificacin, polticas de acreditacin para planes de sido financiado por un comit ejecutivo profesional
estudio universitarios y guas para la prctica profesional. compuesto por representantes de la empresa (Boeing,
Finalmente, estudiantes de ingeniera de software y Construx Software, the MITRE Corporation, Rational
acadmicos relacionados con la definicin de planes de Software, Raytheon Systems, and SAP Labs-Canad),
estudio y contenidos de asignaturas. institutos de investigacin (National Institute of Standards
and Technology, National Research Council of Canad), LIMITACIONES
CCPE (Canadian Council of Professional Engineers) y el
IEEE Computer Society. Su generosidad nos ha permitido Aunque la gua ha pasado un elaborado proceso de
proporcionar el SWEBOK sin coste alguno (ver desarrollo y revisin, las siguientes limitaciones en este
http://www.swebok.org/). El comit ejecutivo profesional proceso deben ser consideradas y expuestas:
se complementa con los directores de ISO/IEC JTC1/SC7
y con la iniciativa Computing Curricula 2001. El comit La ingeniera del software continua siendo
revisa y aprueba los planes del proyecto, dndole infundida con nuevas tecnologas y nuevas
credibilidad. En general, se asegura que el esfuerzo del prcticas. La aceptacin de las nuevas tcnicas
proyecto es relevante a las necesidades del mundo real. crece y las antiguas descartadas. Los temas
globalmente aceptados que se que han incluido
La versin de prueba de la gua ha sido el resultado de en esta gua han sido cuidadosamente
extensivas revisiones y comentarios. En tres ciclos de seleccionados. Aunque inevitablemente, esta
revisin pblica, un total de unos 500 revisores de 42 seleccin tendr que ser actualizada.
pases proporcionaron aproximadamente 9.000

r
comentarios, los cuales estn todos disponibles en El volumen de literatura publicado sobre la
http://www.swebok.org/. Para producir la versin ingeniera del software es abundante y las
actual, la versin de prueba (Trial Version) se utilizo referencias incluidas en esta gua no deberan ser

do
ampliablemente durante un periodo durante el cual se consideradas como la seleccin definitiva sino
generaron 17 artculos describiendo los beneficios como una seleccin razonable. Obviamente, hay
aspectos de la gua al igual que otros aspectos en los que excelentes autores y excelentes referencias que
se deba mejorar. Una encuesta a travs de la Web, no estn incluidos en esta gua. En este trabajo, la
recopilo informacin adicional: 573 personas de 55 pases referencias seleccionadas lo fueron por estar en
se registraron para la encuesta; 124 revisores de 51 pases ingls, fcilmente accesibles, recientes, fciles de
proporcionaron 1.020 comentarios. Se sugirieron otras leer y por cubrir los temas de las AC.
mejoras a travs de otros proyectos relacionados: IEEE-
CS/ACM Computing Curricula, le proyecto IEEE CS Hay referencias importantes y relevantes que no
Certified Software Development Professional, ISO/IEC han sido escritas en ingls que han sido omitidas
JTC1/SC7 (estndares de ingeniera del software y del material seleccionado.
rra
sistemas); el comit de estndares de ingeniera del
software del IEEE, la divisin de software de la ASQS Adems uno debe considerar que:
(American Society for Quality), y una sociedad de
ingenieros profesionales, la CCPE (Canadian Council of La ingeniera del software es una disciplina
Professional Engineers). emergente, esto es especialmente cierto si se
compara con otras disciplinas ms maduras. Por
tanto, las fronteras entre las AC de la ingeniera
CAMBIOS DESDE LA VERSIN DE PRUEBA del software y entre la ingeniera del software y
otras disciplinas relacionadas continan
El objetivo general de la versin actual fue mejorar la evolucionando.
legibilidad, consistencia y usabilidad de la gua. Esto
Bo

implic una reescritura todo el texto para hacer el estilo Los contenidos de esta gua deben ser vistos como una
ms consistente a lo largo de todo el documento. En varias informada y razonable caracterizacin del cuerpo de
ocasiones la descomposicin de las reas de conocimiento conocimiento de la ingeniera de software, y base de su
(AC) fue reordenada para hacerla ms usable, pero siendo futura evolucin. Adems, ntese que la gua no es un
cuidadoso en que incluyese la informacin aprobada por intento, ni intenta reemplazar o corregir ninguna de las
consenso. Se actualiz la lista de referencias de manera leyes, normas o procedimientos definidos por organismos
que fuesen ms fciles de conseguir. oficiales con respecto a la prctica y definicin de la
ingeniera, y de la ingeniera del sobre el particular.
Tras el perodo de prueba se recomend la reescritura de 3
AC. Se destac que el AC de la construccin del software
era difcil de aplicar en un contexto prctico. El AC de
gestin fue percibido como prximo al concepto de
gestin en general y no lo suficientemente especfico a la
ingeniera del software. Del AC de calidad se percibi que
mezclaba la calidad en el proceso y calidad en el producto,
y por tanto, tambin fue revisada.

Finalmente algunas AC fueron revisadas para quitar


material contenido en otras AC.
Alain Abran Coordinadores ejecutivos de la Gua James W. Moore
cole de technologie suprieure al cuerpo de conocimiento de la The MITRE Corporation
ingeniera del software

Pierre Bourque Coordinadores de la Gua al cuerpo Robert Dupuis


cole de Technologie Suprieure de conocimiento de la ingeniera del Universit du Qubec Montral
software

Leonard Tripp Director del comit ejecutivo


1999 President profesional, IEEE Computer Society
IEEE Computer Society (2001-2003)

Diciembre 2004
La Web del proyecto SWEBOK es: http://www.swebok.org/

r
RECONOCIMIENTOS

do
El equipo de coordinacin del SWEBOK reconoce la El equipo de coordinacin tambin quiere agradecer por su
gratitud por la ayuda por parte de los miembros del comit contribucin al proyecto a las siguientes personas: Mark
ejecutivo profesional. La financiacin de este proyecto se Ardis, Yussef Belkebir, Michel Boivin, Julie Bonneau,
ha debido a las siguientes organizaciones: ACM, Boing, Simon Bouchard, Franois Cossette, Vinh Duong, Gilles
CCPE (Canadian Council of Professional Engineers), Gauthier, Michle Hbert, Paula Hawthorn, Richard W.
Construx Software, IEEE Computer Society, the MITRE Heiman, Julie Hudon, Idrissa Konkobo, Rene Kppel,
Corporation, NIST (National Institute of Standards and Lucette Lapointe, Claude Laporte, Luis Molini, Hamdan
Technology), NRC Canad (National Research Council of Msheik, Iphignie NDiyae, Serge Oligny, Suzanne
Canad), Rational Software, Raytheon Company, y SAP Paquette, Keith Paton, Dave Rayford, Normand Sguin,
Labs (Canad). El equipo tambin agradece a los Paul Sinnett, Denis St-Pierre, Dale Strok, Pascale Tardif,
rra
miembros del panel de expertos. Tambin queremos Louise Thibaudeau, Dolores Wallace, variste Valery
expresar nuestro agradecimiento por el trabajo inicial en la Bevo Wandji, y Michal Young.
descripcin de las reas de conocimiento completadas por
Imants Freibergs, Stephen Frezza, Andrew Gray, Vinh T. Finalmente, estamos seguros que hay otras personas que
Ho, Michael Lutz, Larry Reeker, Guy Tremblay, Chris han contribuido a esta gua directa o indirectamente, cuyos
Verhoef, y Sybille Wolff. El equipo de coordinacin nombres han sido omitidos inadvertidamente. A estas
tambin agradece a los cientos de revisores su valiosa personas, ofrecemos nuestro agradecimiento tcito y
contribucin. disculpas por haber omitido un reconocimiento explicito.
Bo
Bo
rra
do
r
CAPITULO 1
INTRODUCCIN A LA GUA

A pesar de los millones de profesionales del software en el Concluyeron que la profesin de la ingeniera est
mundo y de la presencia ubicua del software en nuestra caracterizada por varios componentes:
sociedad, slo recientemente la ingeniera del software ha Una educacin profesional inicial en un
alcanzado el estado de disciplina ingenieril y reconocida currculum validado por una sociedad de
profesin. acreditacin.
Registro de la correcta prctica por medio de una
Alczar un consenso por la profesin en un ncleo del certificacin voluntaria o licencia obligatoria.
cuerpo de conocimiento es un hito clave en todas las Habilidad espacial de desarrollo y una continua
disciplinas y ha sido identificado por el IEEE Computer educacin profesional.

r
Society como crucial para la evolucin hacia un status Soporte comunitario por medio de una sociedad
profesional. Esta gua, escrita bajo los auspicios del comit profesional.
del ejercicio profesional, es parte de un proyecto multi- Un compromiso con las normas de conducta a

do
anual para alcanzar tal consenso. menudo prescritas en un cdigo de tica.
QU ES LA INGENIERA DEL SOFTWARE? Esta Gua contribuye a los primeros tres de estos
componentes. La articulacin del Cuerpo del
El IEEE Computer Society define la ingeniera del Conocimiento es un paso esencial hacia el desarrollar una
software como: profesin porque representa un amplio consenso en lo que
(1) Aplicacin de un enfoque sistemtico, disciplinado y respecta a qu debera conocer un profesional de la
cuantificable al desarrollo, operacin y mantenimiento del ingeniera del software. Sin tal consenso, ningn examen
software, es decir, la aplicacin de la ingeniera al de licenciatura puede ser validado, ningn plan de estudios
software. puede preparar a una persona para un examen, y no se
(2) El estudio de los mtodos en (1). 2
rra
puede formular unos criterios para la acreditacin de dicho
plan de estudios. El desarrollo de un consenso es tambin
QU ES UNA PROFESIN RECONOCIDA? un prerrequisito para la adopcin de unas habilidades
coherentes de desarrollo y de un programa de educacin
Para que la ingeniera del software sea una legtima continua para los profesionales de una organizacin.
disciplina y reconocida profesin, es imperativo un
consenso sobre el cuerpo de conocimiento. Este hecho es
bien ilustrado por Starr cuando define que puede CULES SON LOS OBJETIVOS DEL PROYECTO
considerarse como legtima disciplina reconocida SWEBOK?
profesin. En su libro, ganador del premio Pulitzer, sobre
la historia de la profesin mdica de los EE.UU, indica: La gua no debera ser confundida con el cuerpo de
conocimiento en s mismo, el cual en la literatura
Bo

La legitimizacin de una autoridad profesional envuelve publicada. El propsito de la gua es describir que parte
tres afirmaciones distintivas: primero, todo conocimiento y del cuerpo de conocimiento es generalmente aceptada,
competencias de un profesional han sido validadas por organizar esa parte y proporcionar acceso a los temas de
una comunidad de compaeros de profesin; segundo, el inters. Informacin adicional de que se entiende por
conocimiento validado consensuadamente se basa en generalmente aceptado se describe a continuacin y en
fundamentos cientficos racionales; y tercero, las el Apndice A.
opiniones profesionales y consejos estn orientadas hacia
valores fundamentales como la salud. Estos aspectos de La gua al cuerpo de conocimiento de ingeniera del
legitimidad corresponden con los tipos de atributos - - software se estableci con los siguientes 5 objetivos:
generalmente cubiertos en el trmino profesin 3.
1. Promover una visin consistente de la ingeniera
CULES SON LAS CARACTERSTICAS DE UNA del software en el mundo.
PROFESIN? 2. Clarificar la situacin y definir fronteras de la
Gary Ford y Norman Gibbs estudi varias profesiones, ingeniera del software con respecto a otras
incluyendo medicina, derecho, ingeniera y contabilidad. disciplinas como la informtica, gestin de
proyectos, ingeniera informtica y matemticas.
2 3. caracterizar los contenidos de la disciplina de la
IEEE Standard Glossary of Software Engineering
ingeniera del software
Terminology, IEEE std 610.12-1990, 1990.
3 4. Proporcionar al cuerpo de conocimiento de la
P. Starr, The Social Transformation of American
ingeniera del software con los temas de inters
Medicine, Basic Books, 1982, p. 15.
5. Proporcionar una base para el desarrollo planes Tabla 2 Disciplinas relacionadas
de estudio, certificaciones individuales y Ingeniera informtica
materiales para licencias.
Informtica
El primero de estos objetivos una visin consistente de la Gestin
ingeniera del software fue proporcionada por el proceso
de desarrollo consistente en aproximadamente 500 Matemticas
revisores de 42 pases en la fase Hombre de Piedra, (1998- Gestin de proyectos
2001), la cual condujo a la versin de prueba; 120
revisores de 21 pases en la fase Hombre de Hierro (2003, Gestin de calidad
la cual genero la versin 2004. Informacin adicional Ergonoma del software
sobre el proceso, se encuentra disponible en Prefacio y en
la Web (http://www.swebok.org/). Se contactaron Ingeniera de sistemas
sociedades profesionales y agencias pblicas involucradas
con la ingeniera del software para que fueran conscientes ORGANIZACIN JERRQUICA

r
del proyecto y se les invit a participar en el proceso de La organizacin de las AC en los captulos proporciona el
desarrollo. Se reclutaron coordinadores asociados en tercer objetivo del proyecto una caracterizacin de los
Amrica del Norte, los pases del pacfico y Europa. Se contenidos de la ingeniera del software. Especificaciones

do
hicieron presentaciones del proyecto en acontecimientos detalladas por el equipo de coordinadores editoriales a los
internacionales y se planificaron otros para el ao coordinadores asociados en encuentra en el Apndice A.
posterior.
La gua utiliza una organizacin jerrquica para
El segundo de los objetivos, el deseo de definir fronteras descomponer cada rea de conocimiento en un conjunto de
para la ingeniera del software, motiva la organizacin temas catalogados. Una descomposicin en 2 o 3 niveles
fundamental de esta gua. El material reconocido como proporciona una manera razonable de encontrar los temas.
perteneciente a la Ingeniera del software est organizado La gua trata los temas seleccionados de una manera
en las 10 reas de conocimiento (AC) enumeradas en la compatible con las escuelas de pensamiento mayoritarias y
Tabla 1. Cada una de estas AC es tratada como un captulo con las descomposiciones encontradas en las
de la gua.
rra
organizaciones, literatura y estndares. La descomposicin
no presupone ningn dominio de aplicacin particular,
forma de negocio, filosofa de gestin, mtodos de
Tabla 1 reas de conocimiento del SWEBOK desarrollo, etc. La extensin de cada tema es la justa para
Requerimientos del software entender la naturaleza de los temas y para que el lector
Diseo del software pueda referirse a la literatura de forma satisfactoria.
Despus de todo, el cuerpo de conocimiento se encuentra
Construccin del software en el material referenciado y no en la gua en s misma.
Pruebas del software
MATERIALES DE REFERENCIA Y MATRICES
Mantenimiento del software
Gestin de la configuracin del software Para proporcionar el acceso a los temas de inters de la
Bo

gua el cuarto de los objetivos del proyecto la gua


Gestin en la ingeniera del software identifica material de referencia para cada AC, incluyendo
Mtodos y Herramientas de la ingeniera del software captulos de libro, artculos u otras fuentes de reconocido
prestigio. Cada AC incluye una matriz relacionando la
Calidad del software literatura con los temas. El total de la literatura citada
intenta ser el adecuado para un graduado con 4 aos de
experiencia.
Al establecer la frontera, tambin es importante identificar
En esta edicin de la gua, las referencias de todas las AC
que disciplinas comparten tal frontera, y a menudo, una
forman unas 500 pginas de material, lo cual era una de
interseccin comn con la ingeniera del software, A tal
las especificaciones a la hora de crear el SWEBOK. Se
respecto, la gua reconoce otras 8 disciplinas relacionadas,
puede argumentar que algunas AC, por ejemplo el diseo
enumeradas en la Tabla 2 (ver Captulo 12, Disciplinas
del software, se merecen ms referencias que otras, y
relacionadas con la ingeniera del software). Sin embargo,
puede que este criterio se aplique a futuras ediciones de la
no es objetivo de la gua del SWEBOK caracterizar el
gua.
conocimiento de las disciplinas relacionadas, sino el
conociendo que es visto como especfico a la ingeniera
Adems, ntese que la gua no busca la completitud en sus
del software
referencias. Existe mucho material importante y relevante
que no se ha sido incluido. El material fue en parte
seleccionado por que cubre los temas descritos.
PROFUNDIDAD DEL TRATAMIENTO Algunas fronteras entre AC, subreas, etc. son a veces,
arbitrarias, pero no hay que darle mucha importancia. En
Una de las cuestiones que surgieron desde el comienzo del lo posible, se dan enlaces en el texto done son relevantes y
proyecto, fue el nivel de detalle que la Gua debera tiles.
proporcionar. El equipo del proyecto adapt un enfoque
que ayuda con el quinto de los requerimientos proveer la Los enlaces entre las AC, no son del tipo entrada-salida.
base para el desarrollo curricular, certificaciones y Las reas de conocimiento proporcionan vistas al
licencias. El equipo editorial aplico el criterio de conocimiento que uno debera poseer con respecto a cada
conocimiento generalmente aceptado, conocimiento AC en la ingeniera del software. La descomposicin de la
consensuado, distinguindolo de conocimientos avanzados disciplina dentro de cada AC y el orden en el cual las reas
o de investigacin (en base a la madurez) y de de conocimiento son presentadas, no tienen por qu
conocimiento especializado (en base a la generalidad de integrarse con ningn mtodo o modelo particular. Los
aplicacin). La definicin viene del Project Management mtodos son descritos en las apropiadas AC dentro de la
Institute (PMI): El conocimiento generalmente aceptado gua, y la gua en s misma no es parte de ellos.

r
se aplica a la mayora de los proyectos la mayora del
tiempo, y su amplio consenso valida su valor y LAS REAS DE CONOCIMIENTO (AC)
efectividad4.

do
La Figura 1 describe los 11 captulos y los temas
Generalmente aceptado importantes de cada uno de ellos. Las 5 primeras reas de
Prcticas utilizadas solamente en

conocimiento son presentadas siguiendo el tradicional


Prcticas tradicionales establecidas que ciclo de vida en cascada. Sin embargo, esto no implica que
ciertos tipos de software

son recomendadas por muchas la gua adopta o fomenta el ciclo de vida en cascada o
Especializado

organizaciones. ningn otro. Las subsecuentes AC se presentan en orden


Avanzados y de investigacin alfabtico, y las disciplinas relacionadas se presentan en el
ultimo capitulo.
Practicas innovadoras probadas y usadas
solo por algunas organizaciones y ESTRUCTURA DE LAS DESCRIPCIONES DE LAS AC
conceptos que estn todava siendo
rra
desarrollados y probados en Las reas de conocimiento se estructuran como se describe
organizaciones de investigacin a continuacin.

En la introduccin, de cada AC se proporciona una breve


Sin embargo, el trmino generalmente aceptado, no definicin y una visin general de su mbito y relaciones
implica que el conocimiento nombrado deba aplicarse con otras reas de conocimiento.
uniformemente a todos los proyectos software cada
proyecto necesita determinarlos pero implica que todos La descomposicin de los temas constituye la parte
los ingenieros competentes deberan de estar equipados fundamental de cada AC en reas, subreas y subtemas.
con estos conocimientos. Siendo ms precisos, el Para cada tema o subtema, se da una breve descripcin y
conocimiento generalmente aceptado debera ser incluido referencias.
Bo

en los materiales de estudio de licencias que los graduados


deberan de adquirir tras cuatro aos de experiencia El material de referencia fue seleccionado por considerar
laboral. Aunque este criterio es especfico al estilo de que constitua la mejor presentacin del conocimiento
educacin en los EEUU y puede que no se aplique a otros relacionado con un tema teniendo en cuenta las
pases, se considera til. Sin embargo, las dos definiciones restricciones impuestas en la limitacin de las referencias
de conocimiento generalmente aceptado deberan ser (ver arriba). Una matriz enlaza los temas con las
vistas como complementarias. referencias.

LIMITACIONES RELACIONADAS CON EL FORMATO DEL La ltima parte de la descripcin de las AC es una lista de
LIBRO referencias recomendadas. El apndice A de cada AC
incluye sugerencias para los lectores que quieran
El formato en el cual este libro ha sido concebido tiene sus profundizar en un tema particular. Los apndices B
limitaciones. La naturaleza de los contenidos podra presentan la lista de estndares ms relevantes para cada
mostrarse mejor en formato de hipertexto, donde cada rea de conocimiento. Ntese que las citas entre corchetes
tema podra ser unido a otros temas que no sean el anterior [] en el texto indican las referencias recomendadas,
y posterior a una lista. mientras que las que estn en parntesis () identifican
las referencias usuales usadas al escribir o argumentar el
texto. Las primeras se encuentran en la seccin
4
A Guide to the Project Management Body of correspondiente del AC y las ultimas en el Apndice A de
Knowledge, 2000 ed., Project Management Institute, cada AC.
http://www.pmi.org/
La sexta subrea es la Validacin de Requerimientos, cuyo
A continuacin se resumen las reas de conocimiento y objetivo, es descubrir problemas antes de asignar recursos
apndices. a abordar los requerimientos. La validacin de
requerimientos concierne proceso de examinar los
REQUERIMIENTOS DEL SOFTWARE (FIGURA 2, documentos de requerimientos y asegurarse de que definen
COLUMNA A) el sistema correcto, es decir, el sistema que los usuarios
esperan. Esta subdividido en las descripciones para llevar
Un requerimiento se define como una propiedad que debe a cabo revisiones de requerimientos, prototipos y
exhibir el software para resolver algn problema del validacin y aceptacin de pruebas.
mundo real.
La sptima subrea son las Consideraciones Practicas, la
La primera subrea de conocimiento es Fundamentos de cual describe los temas que necesitan ser entendidos en la
los Requerimientos del Software. Incluye las definiciones prctica. El primer tema es la naturaleza del proceso
de requerimientos del software y sus principales tipos: iterativo de los requerimientos. Los tres temas siguientes
producto vs. proceso, funcional vs. no funcional, son sobre la gestin del cambio, el mantenimiento de los

r
propiedades emergentes. La subrea adems describe la requerimientos que reflejen el sistema a construir o ya
importancia de que los requerimientos cuantificables y construido. Incluye gestin de cambios, atributos de los
distingue entre sistemas y requerimientos software. requerimientos y trazas de los requerimientos. El ltimo

do
tema es la medicin de los requerimientos.
La segunda subrea de conocimiento son los
requerimientos del proceso, el cual introduce el proceso y DISEO DEL SOFTWARE (FIGURA 2, COLUMNA B)
orienta las 5 subreas restantes y cmo la ingeniera de
requerimientos encaja en otras con otros procesos de la Segn la definicin de IEEE [IEEE 610.12-90], el diseo
ingeniera del software. Describe los modelos de proceso, es el proceso de definir la arquitectura, componentes,
actores del proceso, procesos de soporte y gestin, y la interfaces y otras caractersticas de un sistema o
calidad mejora del proceso. componente y el resultado de [ese] proceso. El AC est
dividido en 6 subreas.
La tercera subrea, es la Captura de requisitos, la cual se
centra en de dnde vienen los requerimientos y cmo el La primera subrea presenta los Fundamentos del Diseo
rra
ingeniero de software puede obtenerlos. Incluye las del Software, el cual forma la base para entender el rol y
fuentes de los requerimientos y las tcnicas de captura. mbito del diseo del software. Estos son conceptos
generales del software, el contexto del diseo del software,
La cuarta subrea, Anlisis de requerimientos, se centra en el proceso del diseo del software, las tcnicas que
los procesos de anlisis de requerimientos para: permiten el diseo del software.

La segunda subrea agrupa los Temas Clave en el Diseo


Detectar y resolver conflictos entre del Software. Incluye concurrencia, control y manejo de
requerimientos eventos, distribucin de componentes, manejo de errores,
Descubrir las fronteras del software y como excepciones y tolerancia a fallos, interaccin y
deben interactuar con el entorno presentacin y persistencia de datos.
Bo

Elaborar los requerimientos del sistema a


requerimientos software. La tercera subrea es la Estructura del Software y la
Arquitectura, los temas son las estructuras arquitecturales
El anlisis de requerimientos incluye su clasificacin, el y los puntos de vista, estilos arquitecturales, patrones de
modelado conceptual, diseo arquitectural, asignacin de diseo, y finalmente, familias de programas y frameworks.
requerimientos y negociacin de requerimientos.
La cuarta subrea describe la Calidad Evaluacin de las
La quitan subrea es la Especificacin de requerimientos, del Diseo del Software. Aunque existe una AC dedicada
que tpicamente se refiere a la produccin de un exclusivamente a la calidad del software, esta subrea se
documento o su equivalente electrnico, que puede ser centra en los aspectos especficos del diseo. Estos
sistemticamente revisado, evaluado y aprobado. Para aspectos son atributos de calidad, anlisis de calidad y
sistemas complejos, particularmente los sistemas con una tcnicas de evaluacin y medicin.
parte substancial de componentes no-software, se pueden
producir hasta 3 tipos diferentes de documentos: La quinta subrea son las Notaciones del Diseo del
definiciones del sistema, especificacin de requerimientos Software, que se dividen en descripciones estructurales y
del sistema, y especificacin de requerimientos software. de comportamiento.
La subrea, describe los 3 documentos y actividades
asociadas. La ltima subrea describe las Estrategias y Mtodos del
diseo del Software. Primero, se describen estrategias
generales, seguidas por mtodos funcionales, mtodos de
diseo orientados a objetos, mtodos de diseo centrados La ltima subrea describe el Proceso de Pruebas e
en la estructura de datos, diseo basado en componentes y incluye las consideraciones prcticas y las actividades de
otros. pruebas.

CONSTRUCCIN DEL SOFTWARE (FIGURA 2, COLUMNA MANTENIMIENTO DEL SOFTWARE (FIGURA 2, COLUMNA
C) E)

La construccin del software se refiere la creacin de Una vez en produccin, se descubren anomalas, los
software mediante una combinacin de codificacin, entornos de trabajo cambian y aparecen nuevos
verificacin, pruebas unitarias, pruebas de integracin, y requerimientos de trabajo. La fase del ciclo de vida
depuracin. Est dividida en tres subreas. mantenimiento comienza una vez entregado el sistema, sin
embargo, las actividades de mantenimiento ocurren mucho
La primera subrea son los Fundamentos de la antes. El AC de mantenimiento del software est dividido
Construccin del Software. Los tres primeros temas son en 4 subreas.
los principios bsicos de la construccin: minimizacin de

r
la complejidad, anticipacin al cambio, y la construccin y La primera presenta los Fundamentos del Mantenimiento
verificacin. del Software: definiciones y terminologa, la naturaleza del
mantenimiento, la necesidad del mantenimiento, los

do
La segunda subrea describe la Gestin de la costes, la evolucin del software, y las categoras de
Construccin. Los temas son la construccin de modelos, mantenimiento.
planificacin de la construccin y la medicin de la
construccin. La segunda subrea agrupa los Temas Clave del
Mantenimiento del Software. Estos comprenden temas
La tercera subrea cubre las Consideraciones Practicas. tcnicos, de gestin, estimacin del coste de
Los temas son el diseo de la construccin, lenguajes de mantenimiento y la medicin del mantenimiento.
construccin, codificacin, pruebas de construccin,
reutilizacin, calidad de construccin e integracin. La tercera subrea describe el Proceso de Mantenimiento.
Los temas aqu presentados son el proceso de
PRUEBAS DEL SOFTWARE (FIGURA 2, COLUMNA D) mantenimiento y las actividades de mantenimiento.
rra
Las pruebas de software se componen de la verificacin Las Tcnicas para el Mantenimiento constituye la cuarta
dinmica del comportamiento de un programa con un subrea. Estas incluyen la compresin del software, la
conjunto finito de casos de pruebas, adecuadamente reingeniera y la ingeniera inversa.
seleccionados del un infinito nmero de posibles
ejecuciones del dominio. GESTIN DE LA CONFIGURACIN DEL SOFTWARE
(FIGURA 3, COLUMNA F)
Comienza con una descripcin de los Fundamentos de las
Pruebas del Software. Primero, se presenta la terminologa La Gestin de la Configuracin del Software (GCS) es la
relacionada con las pruebas, despus se presentan los disciplina de la identificacin del software en distintos
aspectos fundamentales de las pruebas, y finalmente, la puntos en el tiempo con el propsito de controlar los
Bo

relacin de las pruebas con otras actividades. cambios sistemticamente, y del mantenimiento de la
integridad y trazabilidad de la configuracin durante todo
La segunda subrea son los Niveles de Pruebas. Estos el ciclo de vida. Esta AC incluye 6 subreas.
estn divididos entre el objeto de la prueba y los objetivos
de las pruebas. La primera subrea es la Gestin del proceso de la GCS.
Cubre los temas del contexto organizacional para la GSC,
La tercera subrea son las Tcnicas para Pruebas. La restricciones y guas para la GCS, el plan de SGC, y el
primera categora incluye las pruebas basadas en la control del GCS.
intuicin del probador/a y experiencia. El segundo grupo
comprende las tcnicas basadas en la especificacin, La segunda subrea es la Identificacin en la
seguido de las tcnicas basadas en el cdigo, y las tcnicas Configuracin del Software, la cual establece los tems a
relativas a la naturaleza de la aplicacin. Tambin se ser controlados, establece la identificacin de esquemas,
presenta cmo seleccionar y combinar las tcnicas ms para los tems y sus versiones, y establece las herramientas
apropiadas. y tcnicas usadas en la adquisicin y gestin de los tems
controlados. Los primeros temas en esta subrea son la
La cuarta subrea cubre las Medidas relacionadas con las identificacin de los tems a ser controlados y las
Pruebas. Las medidas se agrupan en aquellas relacionadas bibliotecas de software.
con la evaluacin del programa que se est probando y la
evaluacin de las pruebas realizadas. La tercera subrea es el Control de Configuracin del
Software, trata la gestiona de cambios durante el ciclo de
vida del software. Las reas son: primero, solicitud, PROCESO DE LA INGENIERA DEL SOFTWARE (FIGURA 2,
evaluacin y aprobacin de cambios; segundo, COLUMNA H)
implementacin de cambios de software; tercero,
desviaciones y remisiones. El AC de proceso de la ingeniera del software se centra en
la definicin, implementacin, evaluacin, gestin, cambio
La cuarta rea es Registro del Estado de la Configuracin. y mejora del proceso de ingeniera del software. Est
Sus temas son la informacin sobre el estado de la dividido en cuatro subreas.
configuracin e informes sobre el estado de la
configuracin. La primera subrea presenta el Proceso de
Implementacin y Cambios. Aqu los temas son
La quita rea es Auditoria de Configuracin Software. Se infraestructura del proceso, ciclo de gestin del proceso
compone de auditora de la configuracin funcional, software, modelos para el proceso de implementacin y
auditora de la configuracin fsica y auditoras de una cambios y consideraciones practicas.
Lnea Base de software.
La segunda subrea trata la Definicin del Procesos

r
GESTIN DE LA INGENIERA DEL SOFTWARE (FIGURA 2, Incluye los modelos del ciclo de vida del software,
COLUMNA G) procesos del ciclo de vida del software, notaciones para la
definicin de procesos, adaptacin de procesos y

do
El AC de de la Gestin de la Ingeniera del Software trata automatizacin.
la gestin y medicin de la ingeniera del software.
Mientras la medicin es aspecto importante en todas las La tercera subrea es la Evolucin del Proceso. Los temas
AC, es aqu donde se presenta el tema de programas de incluyen modelos de evaluacin del proceso y los mtodos
medicin. Hay seis subreas en la gestin de ingeniera del de evaluacin del proceso.
software. Las 5 primeras cubren la gestin de proyectos
software y la ltima describe los programas de medicin La cuarta subrea describe las Mediciones de Proceso y de
software. Producto. El proceso de ingeniera del software cubre
genricamente la medicin de producto y proceso.
La primera subrea es Iniciacin y Definicin del Alcance, Mediciones especficas a cada AC se describen en las
la cual comprende la determinacin y negociacin de los respectivas AC. Los temas son la medicin del proceso, la
rra
requisitos, estudios de viabilidad, y consideracin y medicin de productos software, calidad de los resultados
revisin de requisitos. de las medicin, modelos de informacin software y
tcnicas de medicin de procesos.
La segunda subrea es la Planificacin de Proyectos
Software e incluye la planificacin del proceso, HERRAMIENTAS Y MTODOS EN LA INGENIERA DEL
determinacin de los entregables, esfuerzo, plazos y SOFTWARE (FIGURA 2, COLUMNA I)
estimacin de costes, asignacin de recursos, gestin de
riesgos, gestin de la calidad y gestin de planes. El AC de Herramientas y Mtodos de la ingeniera del
software incluye ambas, herramientas de la ingeniera del
La tercera subrea es la Promulgacin del Proyecto software y mtodos de la ingeniera del software.
Software. Los temas son los planes de implementacin,
Bo

gestin de contratos con proveedores, implementacin de Las subrea de Herramientas de la Ingeniera del
procesos de medicin, monitorizacin del proceso, control Software utiliza la misma estructura que la gua en s
del proceso e informes. misma, con un tema por cada una de las otras nueve AC de
la ingeniera del software. Se aade un tema adicional:
La cuarta subrea es Revisin y Evolucin, la cual incluye cuestiones varias sobre herramientas como tcnicas de
los temas de determinacin de la satisfaccin de requisitos, integracin de herramientas que son potencialmente
y revisin y evaluacin de la ejecucin. aplicables a todo tipo de herramientas.

La quita subrea describe el Cierre: determinacin del La subrea de Mtodos de Ingeniera del Software se
cierre y actividades del cierre. divide en cuatro subsecciones: mtodos heursticos que
tratan aproximaciones informales, mtodos formales
Finalmente, la sexta subrea describe la Medicin de la basados en aproximaciones matemticas, mtodos de
Ingeniera del Software, ms concretamente, los prototipado tratando varias formas de prototipados.
programas de medicin. Las mediciones de procesos y
productos se describen en el AC de los procesos de la CALIDAD DEL SOFTWARE (FIGURA 2, COLUMNA J)
Ingeniera del Software. Muchas de las otras AC tambin
describen mediciones especficas a sus AC. Los temas de El AC de la calidad del software se ocupa de las
esta subrea incluyen el establecimiento y mantenimiento consideraciones sobre la calidad del software las cuales
de la medicin, realizacin del proceso de medicin y transcienden los procesos del ciclo de vida del software.
evaluacin de las mediciones. Al ser la calidad del software un tema ubicuo a toda la
ingeniera del software, tambin es considerada en
muchas otras AC, por lo que el lector notar referencias a APNDICE A. DESCRIPCIN DE LAS ESPECIFICACIONES
otras AC en toda esta AC. EN LAS AC

La primera subrea describe los Fundamentos de la El apndice describe las especificaciones proporcionadas
Calidad del Software como la tica y cultura de la por el equipo editorial a los editores asociados para el
ingeniera del software, valor y coste de la calidad, contenido, referencias recomendadas, formato, y estilo de
modelos y caractersticas de la calidad y la mejora de la las descripciones de las AC.
calidad.
APNDICE B. EVOLUCIN DE LA GUA
La segunda subrea cubre los Procesos de Gestin de la
Calidad del Software. Aqu los temas son el El segundo apndice describe la propuesta de la evolucin
aseguramiento de la calidad, verificacin y validacin, y de la Gua. La Gua del 2004 es la edicin actual, la cual
revisin y auditorias. continuara evolucionando para alcanzar las necesidades de
la comunidad de la ingeniera del software. La

r
La tercera y ltima subrea describe las consideraciones planificacin de la evolucin no est todava completada,
prcticas relacionadas con la calidad del software. Los pero un esquema provisional se proporciona en el
temas son requerimientos de calidad del software, apndice. En el momento de esta escritura, este proceso ha

do
caracterizacin de defectos, tcnicas de gestin de la sido aprobado por el Comit Ejecutivo Profesional y
calidad del software, y medicin de la calidad del comunicado a la junta de gobierno del IEEE Computer
software. Society; sin embargo no ha sido ni financiada ni
implementada.
DISCIPLINAS RELACIONADAS DE LA INGENIERA DEL
SOFTWARE (FIGURA 2, COLUMNA K) APNDICE C. ASIGNACIN DE ESTNDARES A AC

El ltimo captulo se titula Disciplinas relacionadas de la El tercer apndice es una tabla comentada de los
Ingeniera del Software. Para circunscribir la ingeniera estndares ms relevantes, principalmente de IEEE e ISO,
del software, es necesario identificar las disciplinas con las asignados a las AC de la Gua del SWEBOK.
que la ingeniera del software comparte una frontera
rra
comn. Este captulo identifica en orden alfabtico, estas APNDICE D. NDICES DE BLOOM
disciplinas relacionadas. Para cada disciplina relacionada,
y mediante consenso, se identifica: Como ayuda, principalmente a los creadores de planes de
estudio (y otros usuarios), para alcanzar el quito objetivo,
Una definicin informativa (donde sea posible) el cuarto apndice clasifica cada tema con una de las
Una lista de reas de Conocimiento categoras pedaggicas atribuidas a Benjamin Bloom. El
concepto es que los objetivos educacionales pueden ser
Las disciplinas relacionadas son clasificados en seis categoras incrementando la
profundidad: conocimiento, comprensin, aplicacin,
Ingeniera de ordenadores Gestin de proyectos anlisis, sntesis y evaluacin. Los resultados de este
Informtica Gestin de la Calidad ejercicio para todas las AC se encuentran en el Apndice
Bo

Gestin Ergonoma D. Este apndice no debe ser visto como una clasificacin
Matemticas Ingeniera de sistemas definitiva, sino como un punto de partida.

APNDICES
Gua del Cuerpo del Conocimiento de la Ingeniera del Software
Versin 2004

Requerimientos Construccin de Pruebas del Mantenimiento del


Diseo de software
del software software software software

Fundamentos del
Fundamentos de diseo del Fundamentos Fundamentos de
Fundamentos
los requisitos del software de pruebas mantenimiento
de la
software software del software
Construccin
Cuestiones claves del Software
en diseo del Niveles de Problemas clave
Proceso de los
software prueba en mantenimiento
requisitos
Gestin de la de software
Construccin

r
Captura de los Estructura y
Tcnicas de Proceso de
requisitos arquitectura del
pruebas mantenimiento
software
Consideraciones
Anlisis y evaluacin Prcticas

do
Anlisis de
requisitos de la calidad del Medidas de Tcnicas de
diseo del software las pruebas mantenimiento

Especificacin de
requisitos Notaciones del Proceso de
diseo del software pruebas

Validacin de los
Estrategias y
requisitos
mtodos del diseo
de software
Consideraciones
prcticas
rra
Figura 2: Las 5 primeras reas de conocimiento
Bo
Gua del Cuerpo del Conocimiento de la Ingeniera del Software
Versin 2004

Gestin de Gestin de la Proceso de Disciplinas


Herramientas y Calidad del
configuracin ingeniera del ingeniera del Mtodos de relacionadas a la
Software
software software software Ingeniera del ingeniera del
software software
Gestin del Iniciacin y
Fundamentos
proceso SCM alcance Proceso de
Herramientas Ingeniera de
de Ingeniera de Calidad de
implementaci la
del software Software
Identificacin Planificacin de n y cambios computacin
Requerimiento
de la un proyecto s de las
configuracin herramientas Ciencia de la
software Consideraciones
Definicin de sw computacin
Control de Prcticas
Promulgacin procesos
configuracin Herramientas
del proyecto Procesos de

r
software de Diseo SW Gestin
software Gestin de
Registro del Valoracin del
Calidad del
estado de la Revisin y proceso Herramientas
de Software
configuracin evaluacin Construccin Matemticas

do
Medidas de SW
Auditora de productos y
configuracin procesos Herramientas
software Cierre de Pruebas de
SW Gestin de
Gestin de Herramientas proyectos
Medidas de la
lanzamiento y de
ingeniera del Mantenimiento
entrega Gestin de
software de SW
Las calidad
Herramientas
de Direccin de
Configuracin Software a
de SW
medida
Herramientas
de Direccin en
rra
la Ingeniera de
Software
Ingeniera
de sistemas
Las
Herramientas
de Proceso de
Ingeniera de
Software

Herramientas
de Calidad de
Software

Cuestiones de
Herramientas
Compuestas

Mtodos de
Ingeniera del
Bo

software

Mtodos
heursticos

Mtodos
formales

Mtodos de
prototipado

Figura 3: Las 6 ltimas reas de conocimiento


Bo
rra
do
r
CAPITULO 2
REQUERIMIENTOS DE SOFTWARE

ACRNIMOS Una descomposicin alternativa poda utilizar una


estructura basada en producto (requisitos del sistema,
DAG Grafo Acclico Dirigido requisitos del software, prototipos, casos de uso, y as
complejo sucesivamente). Las interrupciones basadas en procesos
FSM Medida Funcional del Tamao reflejan el hecho de que el proceso de los requisitos, si es
INCOSE Consejo Internacional sobre la acertado, se debe considerar como proceso que implica
Ingeniera de Sistemas actividades complejas, firmemente unidas (ambas
SADT Anlisis Estructurados y Tcnicas secuencial y concurrentemente), ms que una nica
actividad discreta realizada al principio de un proyecto de

r
de Diseo
UML Lenguaje de Modelado Unificado desarrollo de software.

INTRODUCCIN El KA de los requisitos del software se relaciona de cerca

do
con el Diseo del software, pruebas, mantenimiento del
El rea del conocimiento de los requisitos del software software, gerencia de la configuracin del software,
(KA) se refiere al anlisis, a la especificacin, y a la tecnologa de dotacin lgica, proceso de la tecnologa de
validacin de los requisitos del software. Est dotacin lgica, y KAs de Calidad de software.
extensamente reconocido dentro de la industria del
software que los proyectos de la ingeniera de software son
crticamente vulnerables cuando estas actividades se INTERRUPCIN DE LOS ASUNTOS PARA LOS REQUISITOS
realizan mal. DEL SOFTWARE

Los requisitos del software expresan las necesidades y los 1. Fundamentos de los requisitos del software
apremios colocados en un producto de software que
rra
contribuye a la solucin de un cierto problema del mundo 1.1. Definicin de un requisito del software
real. [Kot00] El trmino ingeniera de requisitos es
ampliamente utilizado en el campo para denotar la Bsicamente, un requisito del software es una
direccin sistemtica de requisitos. Aunque por razones caracterstica que se debe exhibir para solucionar un cierto
de consistencia, este trmino no ser utilizado en la gua, problema en el del mundo real. La gua se refiere a
pues se ha decidido que el uso del trmino ingeniera requisitos de software porque se refiere a los problemas
para las actividades con excepcin de la tecnologa de que se tratarn por el software. Por lo tanto, un requisito
dotacin lgica debe ser evitado en esta edicin de la gua. del software es una caracterstica que se debe exhibir por
el software desarrollado o adaptado para solucionar un
Por la misma razn, tampoco se utilizar ingeniero de los problema particular. El problema puede ser automatizar la
requisitos, un trmino que aparece en algo de la literatura. parte de una tarea de alguien que utilizar el software, para
En su lugar se utilizar el trmino Ingeniero de Software
Bo

apoyar los procesos del negocio de la organizacin que ha


o, en algunos casos especficos, especialista de los comisionado el software, a corregir los defectos del
requisitos, el ltimo donde el papel en la pregunta es software existente, al control de dispositivos, y muchos
realizado generalmente por un individuo con excepcin de ms. El funcionamiento de los usuarios, los procesos del
una Ingeniera de Software. Esto no implica, sin embargo, negocio, y los dispositivos es tpicamente complejo. Por
que una Ingeniera de Software no podra realizar la extensin, por lo tanto, los requisitos de software son
funcin. tpicamente una combinacin compleja de requisitos de
diversa gente en diversos niveles de una organizacin y
La interrupcin de KA es ampliamente compatible con del ambiente en el cual el software funcionar.
secciones de IEEE 12207 que se refieren a actividades de
requisitos. (IEEE12207.1-96) Una caracterstica esencial de todos los requisitos del
software es que sean comprobables. Puede ser difcil o
Un riesgo inherente en la interrupcin propuesta es que un costoso verificar ciertos requisitos del software. Por
proceso en cascada puede ser deducido. Para evitar esto, ejemplo, la verificacin del requisito del rendimiento de
los procesos de requisitos de la subzona 2, se disean para procesamiento en el centro de la llamada puede hacer
proporcionar una descripcin de alto nivel del proceso de necesario el desarrollo del software de la simulacin. Los
los requisitos precisando los recursos y los apremios bajo requisitos del software y el personal de la calidad del
los cuales el proceso funciona y los cuales actan para software deben asegurarse de que los requisitos se puedan
configurarlo. verificar dentro de los apremios disponibles del recurso.
Los requisitos tienen otras cualidades adems de las Un parmetro de proceso es esencialmente un
caractersticas del comportamiento que expresan. constreimiento en el desarrollo del software (por
Ejemplos comunes incluyen una tasa de prioridad para ejemplo, el software ser escrito en el Ada.). stos se
permitir compensaciones frente a recursos finitos y un conocen a veces como requisitos de proceso.
valor del estado para permitir que el progreso del proyecto
sea supervisado. Tpicamente, los requisitos de software se Algunos requisitos del software generan requisitos de
identifican nicamente de modo que puedan estar sujetos proceso implcitos. La opcin de la tcnica de la
al control de configuracin del software y manejados verificacin es un ejemplo. Otro puede ser el uso de
sobre el ciclo vital entero del software. [Kot00; Pfl01; tcnicas rigurosas de anlisis (tales como mtodos
Som05; Tha97] formales de la especificacin) para reducir las averas que
1.2. Producto y requisitos del proceso pueden conducir a una inadecuada confiabilidad. Los
Se puede dibujar una distincin entre los parmetros del requisitos de proceso pueden tambin ser impuestos
producto y los parmetros del proceso. Los parmetros del directamente por la organizacin del desarrollo, su cliente,
producto son requisitos en software para ser convertido o terceros tales como un regulador de seguridad [Kot00;
(por ejemplo, El software verificar que un estudiante Som97].

r
resuelva todos los requisitos previos antes de que l o ella
se coloque para un curso.).

do
rra
Bo

Figura 1: Descomposicin de materias para la KA Requisitos del Software

1.3. Requisitos funcionales y no funcionales Pueden ser clasificados ms a fondo segn si son
Los requisitos funcionales describen las funciones que el requisitos de funcionamiento, requisitos de capacidad de
software va a ejecutar; por ejemplo, ajustarse a un mantenimiento, requisitos de seguridad, requisitos de
formato de texto o modular una seal. Se conocen confiabilidad, o uno de muchos otros tipos de requisitos
tambin como capacidades. del software. Estos asuntos tambin se discuten en KA
de la calidad del software. [Kot00; Som97]
Los requisitos no funcionales son los que actan para
obligar la solucin. Los requisitos no funcionales se
conocen a veces como apremios o requisitos de calidad.
1.4. Caractersticas inesperadas con el proceso de ingeniera del software. [Dav93;
Algunos requisitos representan caractersticas Som05]
inesperadas del software- esto es, los requisitos que no
pueden ser tratados por un solo componente, pero que su 2.1. Modelos de proceso
satisfaccin va a depender de cmo todos los El objetivo de este asunto es proporcionar una
componentes de software nter operan. El requisito del comprensin de que el proceso de los requisitos
rendimiento de procesamiento para un centro de
llamadas, por ejemplo, dependera de cmo el sistema de No es una actividad anticipada discreta del ciclo
telfono, el sistema de informacin, y los operadores vital del software, sino un proceso iniciado en
obraron recprocamente bajo condiciones de principio de un proyecto y a continuacin refinado a
funcionamiento reales. Las caractersticas inesperadas travs del ciclo vital
son crucialmente dependientes en la arquitectura del
sistema. [Som05] Identifica los requisitos del software como
elementos de configuracin, y los maneja usando las
1.5. Requisitos cuantificables mismas prcticas de gerencia de la configuracin del

r
Los requisitos del software se deben indicar tan clara e software como otros productos de los procesos del
inequvocamente como sea posible, y cuantitativamente. ciclo vital del software
Es importante evitar requisitos vagos e inverificables que

do
dependen para su interpretacin del juicio subjetivo (el Necesita ser adaptado a la organizacin y al
software ser confiable; el software ser de uso fcil). contexto del proyecto
Esto es particularmente importante para los requisitos no
funcionales. Dos ejemplos de requisitos cuantificados Particularmente, el asunto se refiere a cmo las
son los siguientes: el software para un centro de llamadas actividades de anlisis, especificacin, y la validacin se
debe aumentar el rendimiento del procesamiento del configuran para diversos tipos de proyectos y apremios.
centro un 20%; y un sistema tendr una probabilidad de El asunto tambin incluye las actividades que
generar un error fatal durante cualquier hora de proporcionan la entrada en el proceso de los requisitos,
operacin menos de 1 * 108. El requisito de por ejemplo estudios de la comercializacin y de
rendimiento de procesamiento est a un alto nivel y viabilidad. [Kot00; Rob99; Som97; Som05]
necesitar ser derivado en un nmero de requisitos
rra
detallados. El requisito de la confiabilidad determinar 2.2. Agentes de proceso
firmemente la arquitectura del sistema. [Dav93; Som05] Este asunto introduce los papeles de la gente que
participa en el proceso de los requisitos. Este proceso es
1.6. Requisitos del sistema y requisitos del software fundamental interdisciplinario, y el especialista de los
En este asunto, el sistema significa una combinacin requisitos necesita mediar entre el dominio del tenedor
recproca de los elementos para lograr un objetivo de apuestas y el de la tecnologa de dotacin lgica. Hay
definido. stos incluyen el hardware, software, soporte mucha gente implicada adems del especialista de los
lgico inalterable, gente, informacin, tcnicas, requisitos, cada uno de ellos tiene una funcin en el
instalaciones, servicios, y otros elementos de apoyo, software. Los tenedores de apuestas variarn segn los
segn lo definido por el consejo internacional sobre la proyectos, pero incluyen siempre usuarios/operadores y
ingeniera de sistemas (INCOSE00). clientes (quines no necesitan ser iguales). [Gog93]
Bo

Los requisitos del sistema son los requisitos para el Los ejemplos tpicos de los tenedores de apuestas del
sistema en su totalidad. En un sistema que contiene software incluyen (pero no restringen)
componentes de software, los requisitos del software se
derivan de los requisitos del sistema. Usuarios: Este grupo abarca a los que utilizan el
software. Es a menudo un grupo heterogneo
La literatura sobre requisitos llama a veces a los que abarca a gente con diversos papeles y
requisitos del sistema exigencias del consumidor. La requisitos.
gua define exigencias del consumidor de una manera Clientes: Este grupo abarca a los que han
restricta como requisitos de los clientes o de los usuarios comisionado el software o quin representa el
finales del sistema. Los requisitos del sistema, por el blanco de mercado del software.
contrario, abarcan los requisitos del usuario, requisitos Analistas de mercado: Un producto del mass-
de otros tenedores de apuestas (por ejemplo autoridades market no tendr un cliente que comisiona, de
reguladoras), y requisitos sin un origen identificable. modo que la gente de comercializacin a
menudo necesita establecer lo que el mercado
necesita y actuar como clientes.
2. Proceso de los requisitos Reguladores: Muchos dominios de aplicacin
Esta seccin introduce el proceso de los requisitos del como por ejemplo el transporte pblico o la
software, orientando las cinco subzonas restantes y
banca son regulados. El software en estos
demostrando cmo el proceso de los requisitos encaja
dominios debe conformarse con los requisitos La captura de los requisitos se refiere a de donde vienen
de las autoridades reguladoras. los requisitos del software y cmo el ingeniero de
Ingenieros de software: Estos individuos tienen software puede recogerlos. Es la primera etapa en la
un inters legtimo en beneficiarse del construccin de una comprensin del problema que el
desarrollo del software, por ejemplo, software requiere solucionar. Es fundamental una
reutilizando componentes en otros productos. actividad humana, y es donde identifican a los
Si, en este escenario, un cliente de un producto stakeholders y las relaciones se establecen entre el
particular tiene requisitos especficos que equipo del desarrollo y el cliente. Tambin se conoce
comprometen el potencial para la reutilizacin como descubrimiento de los requisitos, y adquisicin
de componentes, los ingenieros de software de los requisitos.
deben pesar cuidadosamente sus propios
intereses contra los del cliente. Uno de los aspectos fundamentales de la buena
ingeniera de software es que haya buena comunicacin
No ser posible satisfacer perfectamente los requisitos de entre los usuarios del software y los ingenieros. Antes de
cada stakeholder, y es el trabajo de los ingenieros de que comience el desarrollo, los especialistas de

r
software negociar las compensaciones que son requisitos pueden formar el conducto para esta
aceptables a los stakeholder principales y dentro de comunicacin. Deben mediar entre el dominio de los
presupuestario, tcnico, regulador, y otros apremios. Un usuarios del software (y otros stakeholders) y el mundo

do
requisito previo para esto es que identifiquen a todos los tcnico del ingeniero de software.
stakeholder, la naturaleza de su inters analizada, y sus
requisitos sacados. [Dav93; Kot00; Rob99; Som97;
You01]

2.3. Ayuda y gerencia de proceso


Este asunto introduce los recursos de la gerencia de
proyecto requeridos y consumidos por el proceso de los
requisitos. l establece el contexto para la primera
subzona (definicin de la iniciacin y del alcance) de la
tecnologa de dotacin lgica KA de la gerencia. Su
rra
propsito principal es hacer el acoplamiento entre las
actividades de proceso identificadas en 2.1 y los temas
de coste, recursos humanos, entrenamiento, y
herramientas. [Rob99; Som97; You01]

2.4. Calidad y mejora de proceso


Este asunto se refiere al gravamen de la calidad y de la
mejora del proceso de los requisitos. Su propsito es
acentuar el papel dominante que los requisitos procesan
en trminos de coste y puntualidad de un producto de
software, y de la satisfaccin del cliente con ello
Bo

[Som97]. Ayudar a orientar el proceso de los requisitos


con estndares de calidad y modelos de mejora de
proceso para el software y los sistemas. El proceso de
calidad y la mejora se relacionan de cerca con la calidad
del software y la tecnologa de dotacin lgica KA. De
inters particular estn las aplicaciones de calidad del
software, sus cualidades y medida, y la definicin de
proceso de software. Este punto abarca

Cobertura de proceso de los requisitos mediante


estndares y modelos de la mejora
Medidas de proceso de los requisitos y
benchmarking
Plan de mejora y puesta en prctica [Kot00;
Som97; You01]

3. Captura de los requisitos


[Dav93; Gog93; Lou95; Pfl01]
3.1. Fuentes de los requisitos 3.2. Tcnicas de Captura de requisitos
[Dav93; Gog93; Pfl01] [Dav93; Kot00; Lou95; Pfl01]

Los requisitos tienen muchas fuentes en software tpico, Una vez que se hayan identificado las fuentes de los
y es esencial que todas las fuentes potenciales estn requisitos, ingenieros de software pueden comenzar a
identificadas y evaluadas para su impacto en l. Este sacar requisitos de ellos. Este asunto se concentra en las
asunto se disea para promover el conocimiento de las tcnicas para conseguir que los stakeholders articulen sus
varias fuentes de los requisitos del software y de los requisitos. Es un rea muy difcil e ingenieros de
armazones para manejarlos. Los puntos principales software necesitan sensibilizarse al hecho que (por
cubiertos son ejemplo) los usuarios pueden tener dificultad para
describir sus tareas, puede dejar la informacin
Metas: El trmino meta (a veces llamada importante sin especificar, o pueden estar poco
preocupacin de negocio o factor crtico del dispuestos o cooperar. Es particularmente importante
xito) se refiere a los objetivos totales, de alto entender que la captura no es una actividad pasiva, y
nivel del software. Las metas proporcionan la que, ingenieros de software tienen que trabajar

r
motivacin para el software, pero a menudo son difcilmente para sacar la informacin adecuada. Existe
formuladas vagamente. Es necesidad que los un nmero de tcnicas para hacer esto, las principales
ingenieros de software presten atencin son [Gog93]

do
particular a determinar el valor (concerniente a
prioridad) y coste de metas. Un estudio de Entrevistas, medios tradicionales de sacar
viabilidad es una manera relativamente barata requisitos. Es importante entender las ventajas y
de hacer esto. [Lou95]. limitaciones de las entrevistas y cmo deben
Conocimiento del dominio: Los ingenieros de ser conducidas.
software necesitan adquirir, o tener disponible, Escenarios, valiosos medios para proporcionar
conocimiento sobre el uso del dominio. Esto contexto a las exigencias del consumidor.
permite deducir el conocimiento que los Proporcionan un marco para preguntas sobre
stakeholders no articulan, determinar las tareas del usuario permitiendo preguntas y si
compensaciones que sern necesarias en y cmo se hace esto. El tipo ms comn de
requisitos que estn en conflicto, y, a veces, escenario es el caso del uso.
rra
para actuar como campen del usuario. Prototipos, una herramienta valiosa para
Stakeholders (vase a agentes de proceso del clarificar requisitos confusos. Pueden actuar de
asunto 2.2). Mucho software se ha probado una manera similar a los escenarios,
insatisfactorio porque haba tensionado los proveyendo a los usuarios un contexto dentro
requisitos de un grupo de stakeholders a del cual pueden entender mejor qu informacin
expensas de los de otros. Por lo tanto, se necesitan proporcionar. Hay una amplia gama
entrega el software que es difcil de utilizar o de tcnicas de prototipado, maquetas de
que derriba las estructuras culturales o polticas versiones de pruebas beta de los diseos de la
de la organizacin del cliente. Los ingenieros de pantalla del software, y un traslado fuerte de su
software necesitan identificar, representar, y uso para captura de los requisitos y el uso de
manejar puntos de vista de muchos diversos prototipos para la validacin de los requisitos
Bo

tipos de tenedores de apuestas. [Kot00] (vase el asunto 6.2 Prototipado).


El entorno operacional. Los requisitos sern Reuniones. El propsito de stas es intentar
derivados del ambiente en el cual el software alcanzar un efecto aditivo por el que un grupo
ser ejecutado. stos pueden ser, por ejemplo, de gente puede obtener ms penetracin en los
el medir el tiempo en tiempo real del software o requisitos del software que trabajando
de la interoperabilidad en un ambiente de la individualmente. Ellos pueden inspirarse y
oficina. stos deben ser buscados activamente, refinar las ideas que pueden ser difciles de
porque pueden afectar grandemente a la traer a la superficie usando entrevistas. Otra
viabilidad y el coste del software, y restringen ventaja es que dejan a los stakeholders
las opciones de diseo. [Tha97] reconocer donde hay requisitos en conflicto.
El entorno de la organizacin. El software se Cuando se aplica bien, esta tcnica puede
requiere a menudo para apoyar un proceso del resultar en un rico y constante sistema de
negocio, la seleccin del cual se puede requisitos que difcilmente sera realizable de
condicionar por la estructura, cultura, y poltica otro modo. Sin embargo, las reuniones
interna de la organizacin. Los ingenieros de necesitan ser dirigidas cuidadosamente (por lo
software necesitan ser sensibles a stos, puesto tanto es necesario un facilitador) para evitar que
que, el nuevo software no debe forzar una situacin ocurra donde las capacidades
generalmente cambios imprevistos en el crticas del equipo son erosionadas por lealtad
proceso del negocio. del grupo, o los requisitos que reflejan las
preocupaciones de algunos favorecen la gente ingeniera del software o los estndares que se
abierta (y quizs mayor) en detrimento de otros. adherirn.
Observacin. La importancia del contexto del La prioridad del requisito. Generalmente cuanta ms
software dentro del ambiente de organizacin alta es la prioridad, ms esencial es el requisito para
ha conducido a la adaptacin de las tcnicas de satisfacer las metas finales del software. A menudo
observacin para captura de los requisitos. Los clasificado en una escala de punto fijo tal como
ingenieros de software aprenden sobre las tareas obligatorio, altamente deseable, deseable u opcional,
del usuario sumergindose en la observacin de la prioridad a menudo tiene que ser equilibrada con
cmo los usuarios obran recprocamente con su el coste de desarrollo e implementacin.
software. Estas tcnicas son relativamente El alcance del requisito. El alcance se refiere al
costosas, pero son instructivas porque ilustran grado al cual un requisito afecta el software y
que muchas tareas del usuario y procesos del componentes software. Algunos requisitos,
negocio son demasiado sutiles y complejos para particularmente los no funcionales, tienen un
que sus agentes los describan fcilmente. alcance global que no puede ser asignado a un
componente discreto. Por lo tanto, el requisito con

r
4. Anlisis de requisitos alcance global puede afectar fuertemente a la
[Som05] arquitectura del software y el diseo de muchos
componentes, mientras que uno puede con un

do
Este asunto se refiere al proceso de analizar requisitos alcance estrecho ofrecer un nmero de opciones del
para diseo y no afectar demasiado a la satisfaccin de
otros requisitos.
Detectar y resolver los conflictos entre los requisitos Volatilidad/estabilidad. Algunos requisitos
Descubrir los lmites del software y cmo debe obrar cambiarn durante el ciclo de vida del software, y se
recprocamente con su ambiente igualarn durante el proceso de desarrollo. Es til
Elaborar los requisitos del sistema para derivar hacer estimaciones de la probabilidad de que se
requisitos software puedan hacer cambios. Por ejemplo, en actividades
bancarias, los requisitos para las funciones para
La vista tradicional del anlisis de requisitos ha sido que calcular y para acreditar los intereses en las cuentas
son probablemente ms estables que un requisito
rra
est reducida a modelado conceptual utilizando uno de
varios mtodos de anlisis tales como Anlisis para mantener un tipo particular de cuenta exenta de
Estructurados y Tcnicas de Diseo (SADT). Mientras impuestos. Lo anterior refleja una caracterstica
que el modelado conceptual es importante, nosotros fundamental del dominio de las actividades
incluimos la clasificacin de requisitos para ayudar a bancarias (esas cuentas pueden ganar intereses),
informar a compensaciones entre los requisitos mientras que el ltimo se puede dejar obsoleto por
(clasificacin de los requisitos) y el proceso de un cambio de gobierno. Sealar requisitos
establecer estas compensaciones (negociacin de los potencialmente voltiles puede ayudar al ingeniero
requisitos). [Dav93] del software a establecer un diseo que sea ms
tolerante al cambio.
El cuidado se debe tomar para describir requisitos con
exactitud, suficientemente como para permitir que los Otras clasificaciones pueden ser apropiadas,
Bo

requisitos sean validados, su implementacin sea dependiendo de la prctica normal y del uso que se le d.
verificada, y sus costes estimados.
Hay un desfase fuerte entre la clasificacin de los
4.1 Clasificacin de los requisitos requisitos y las cualidades de los requisitos (vase las
[Dav93; Kot00; Som05] cualidades de los requisitos del punto 7.3).

Los requisitos se pueden clasificar en un nmero de 4.2. El modelo conceptual


dimensiones. Los ejemplos incluyen: [Dav93; Kot00; Som05]

Si el requisito es funcional o no funcional (vase el El desarrollo de modelos de un problema del mundo real
asunto 1.3 funcional y requisitos no funcionales). es clave para el anlisis de requisitos del software. Su
Si el requisito est derivado de uno o ms requisitos propsito es ayudar a entender el problema, ms que
de alto nivel o una propiedad emergente (vase las iniciar el diseo de la solucin. Por lo tanto, modelos
caractersticas inesperadas del asunto 1.4) o est conceptuales abarcan modelos de entidades del dominio
impuesto directamente ante el software por un del problema, configurados para reflejar sus relaciones y
tenedor de apuestas u otra fuente. dependencias con el mundo real.
Si el requisito est en el producto o proceso. Los
requisitos en el proceso pueden obligarnos a la Varias clases de modelos pueden ser desarrollados. stos
opcin del contratista, a adaptar el proceso de la incluyen datos y controlan flujos, modelos de estado,
rastros de evento, interacciones de usuario, modelos de
objeto, modelos de datos y muchos otros. Los factores funcional; e IEEE Std 1320.2, IDEF1X97 (IDEFObject)
que influencian la opcin del modelo incluyen para modelado de la informacin.

La naturaleza del problema. Algunos tipos de 4.3. Asignacin arquitectnica del diseo y de los
software exigen que ciertos aspectos estn requisitos
analizados rigurosamente. Por ejemplo, controlar el [Dav93; Som05]
flujo y los modelos de estado son probablemente
ms importantes para el software en tiempo real que En un cierto punto, la arquitectura de la solucin debe
para el software de gerencia de informacin, ser derivada. El diseo arquitectnico es el punto en el
mientras que es generalmente lo contrario para los cual el proceso de los requisitos se junta con software o
modelos de datos. diseo de sistemas e ilustra cmo de imposible es
La maestra del ingeniero del software. Es a menudo desemparejar ambas tareas. [Som01] Este asunto est de
ms productivo adoptar una notacin que modele o cerca relacionado con el captulo de la estructura y de la
mtodo con el cual el ingeniero del software tiene arquitectura del software en KA del diseo del software.
una experiencia. En muchos casos, el ingeniero del software acta como

r
Los requisitos de proceso del cliente. Los clientes arquitecto del software porque el proceso de analizar y
pueden imponer su notacin o mtodo favorecido, o de elaborar los requisitos exige que los componentes que
prohibir cualquiera que le sea desconocido. Este sern responsables de satisfacer los requisitos estn

do
factor puede estar en conflicto con el factor anterior. identificados. Esto es localizacin de requisitos-la
La disponibilidad de mtodos y de herramientas. asignacin, a los componentes, de la responsabilidad de
Notaciones o mtodos que son mal apoyados por el satisfacer requisitos.
entrenamiento y las herramientas pueden no
alcanzar la aceptacin esperada aunque se satisfagan La asignacin es importante para permitir anlisis
tipos particulares de problemas. detallado de requisitos. Por lo tanto, por ejemplo, una
vez un sistema de requisitos se han asignado a un
Observar que, en casi todos los casos, es til comenzar componente, los requisitos individuales se pueden
construyendo un modelo del contexto del software. El analizar ms a fondo para descubrir otros requisitos de
contexto del software proporciona una conexin entre el cmo el componente necesita obrar recprocamente con
otros componentes para satisfacer los requisitos
rra
software previsto y su ambiente externo. Esto es crucial
para entender el contexto del software en su ambiente asignados. En proyectos grandes, la asignacin estimula
operacional e identificar sus interfaces con el ambiente. un nuevo anlisis para cada subsistema. Como ejemplo,
requisitos para el funcionamiento de los frenos de un
La aplicacin de modelar se junta firmemente con la de coche (distancia que frena, seguridad en condiciones que
los mtodos. Para los propsitos prcticos, un mtodo es conducen, suavidad del uso, la presin del pedal
una notacin (o sistema de notaciones) apoyado por un requerida, y as sucesivamente) se puede asignar un
proceso que dirige el uso de las notaciones. Hay escasa hardware que frena (montajes mecnicos e hidrulicos)
evidencia emprica para apoyar las demandas de y un sistema de frenos antibloqueo (ABS). Solamente
superioridad de una notacin sobre otra. Sin embargo, la cuando un requisito para un sistema de frenos
extensa aceptacin de un mtodo o de una notacin antibloqueo ha sido identificado, y los requisitos
particular puede conducir a nivel industrial al beneficio asignados a l, pueden usarse las capacidades del ABS,
Bo

de habilidades y de conocimiento. sta es actualmente el hardware de frenado identificado, y las caractersticas


la situacin con el UML (Lenguaje de Modelado indefinidas (tales como el peso del coche) para
Unificado). (UML04) identificar los requisitos detallados del software del
ABS.
El modelado formal usando notaciones basadas en
matemtica discreta, y que son detectables al El diseo arquitectnico se identifica de cerca con el
razonamiento lgico, han tenido impacto en algunos modelado conceptual. El mapeado de las entidades del
dominios especializados. stos puede ser impuesto por dominio del mundo real para componentes de software
los clientes o los estndares y puede ofrecer ventajas no siempre tiene un diseo obvio, as que
que obligan al anlisis de ciertas funciones o arquitectnicamente se identifica como a asunto
componentes crticos. separado. Los requisitos de notaciones y los mtodos son
ampliamente iguales para modelado conceptual y diseo
Este asunto no busca ensear un estilo o una notacin arquitectnico.
de modelado particular sino proporcionar algo a la
direccin con el propsito de modelar. IEEE Std 1471-2000, prctica recomendada para la
descripcin arquitectnica de sistemas orientados al
Dos estndares proporcionan las notaciones que pueden software, sugiere un acercamiento del mltiple punto de
ser tiles en desarrollo conceptual realizando modelado- vista para describir la arquitectura de sistemas y de sus
IEEE conceptual Std 1320.1, IDEF0 para modelado artculos del software.
(IEEE1471-00)
para el sistema, su ambiente de misin y una declaracin
4.4. Negociacin de los requisitos de apremios, asunciones, y requisitos no funcionales.
Otro trmino comnmente utilizado para este tema es Puede incluir los modelos conceptuales diseados para
resolucin del conflicto. Esto se refiere a problemas de ilustrar el contexto del sistema, panoramas del uso y las
resolucin de los requisitos donde los conflictos ocurren entidades principales del dominio, as como datos, la
entre dos stakeholders que requieren caractersticas informacin, y flujos de trabajo. IEEE Std 1362,
mutuamente incompatibles, entre los requisitos y los concepto del documento de las operaciones, proporciona
recursos, o en entre requisitos funcionales y no consejo sobre la preparacin y contenido de tal
funcionales, por ejemplo. documento.
(IEEE1362-98)
[Kot00, Som97] en la mayora de los casos, es
imprudente para el ingeniero del software tomar una 5.2. Especificacin de requisitos del sistema
decisin unilateral, y hace necesario consultar con los [Dav93; Kot00; Rob99; Tha97]
stakeholders para alcanzar un consenso en una Desarrolladores de sistemas con los componentes
compensacin apropiada. Es a menudo importante por software y no software, un avin de pasajeros moderno,

r
esas razones contractuales que tales decisiones sean por ejemplo, separa a menudo la descripcin de los
detectables de nuevo al cliente. Hemos clasificado esto requisitos del sistema de la descripcin de los requisitos
como asunto del anlisis de requisitos del software del software. En esto se especifica la visin, requisitos

do
porque los problemas emergen como resultado el del sistema, los requisitos software se derivan de los
anlisis. Sin embargo, un caso fuerte se puede tambin requisitos del sistema, y entonces los requisitos para los
hacer para considerar los requisitos como asunto de la componentes de software se especifican. En sentido
validacin. estricto, la especificacin de requisitos del sistema es una
actividad de la ingeniera de sistemas y esta fuera del
5. Especificacin de requisitos alcance de esta gua. IEEE Std 1233 es una gua para los
requisitos del sistema que se convierten. (IEEE1233-98)
Para la mayora de las profesiones de la ingeniera, el
trmino especificacin se refiere a la asignacin de 5.3. Especificacin de requisitos del software
valores o lmites numricos para metas del diseo del [Kot00; Rob99]
producto. (Vin90) Los sistemas fsicos tpicos tienen un
rra
nmero relativamente pequeo de tales valores. La especificacin de requisitos del software establece la
Tpicamente el software tiene una gran cantidad de base para el acuerdo entre los clientes y los contratistas o
requisitos, y el nfasis se comparte entre la ejecucin de los proveedores (en proyectos del mercado, estos papeles
la cuantificacin numrica y el manejo de la complejidad se pueden desempear por las divisiones de
de la interaccin entre el gran nmero de requisitos. As comercializacin y desarrollo) en los que hay que hacer
pues, en software el trmino, especificacin de el producto de software, as como lo que no se espera
requisitos del software se refiere tpicamente a la que haga. Para los lectores no tcnicos, el documento de
produccin de un documento, o a su equivalente la especificacin de los requisitos es acompaado a
electrnico, que puede estar sistemticamente repasado, menudo por un documento de la definicin de los
evaluado, y aprobado. Para los sistemas complejos, requisitos del software.
particularmente sos que implican componentes no-
Bo

software, se elaboran tres tipos de documentos: La especificacin de requisitos del software permite un
definicin de sistema, sistema requisitos, y requisitos riguroso gravamen de requisitos antes de que el diseo
del software. Para sistemas simples, solamente el tercero pueda comenzar y reducir un reajuste final. Debe
de stos es requerido. Los tres documentos se describen tambin proporcionar una base realista para estimar
aqu, entendiendo que combinados pueden ser costes, riesgos, y horario del producto.
apropiados. Una descripcin de la ingeniera de sistemas
se puede encontrar en el Captulo 12, disciplinas Las organizaciones pueden tambin utilizar un
relacionadas de la tecnologa de dotacin lgica. documento de especificacin de requisitos software para
desarrollar su propia validacin y que la verificacin sea
5.1. El documento de la definicin de sistema ms productiva.
Este documento (conocido a veces como documento de
exigencias del o concepto de operaciones) registra el La especificacin de requisitos software proporciona una
sistema requisitos. Define los requisitos del sistema de base informada para transferir un producto de software a
alto nivel desde la perspectiva del dominio. Su nmero los nuevos usuarios o a las mquinas nuevas.
total de lectores incluye los representantes de los Finalmente, puede proporcionar una base para el realce
usuarios del sistema/de los clientes (la comercializacin de software.
puede desempear estos papeles del mercado software),
as que su contenido debe estar en trminos de dominio. Los requisitos del software se escriben a menudo en
El documento enumera los requisitos del sistema junto lenguaje natural, pero, en la especificacin de requisitos
con informacin de fondo sobre los objetivos totales del software, sta se puede suplir por formal o semi-
formal. La seleccin de notaciones apropiadas permite de que este define el software correctamente (es decir, el
requisitos y los aspectos particulares de la arquitectura software que los usuarios esperan). [Kot00]
del software que se describir ms ajustadamente que en
lengua natural. La regla general es que las notaciones 6.1 Revisiones de los requisitos
deben ser utilizadas para que permitan a los requisitos [Kot00; Som05; Tha97]
ser descritos tan exactamente como sea posible. Esto es
particularmente crucial para otros tipos seguridad-crtica Quizs los medios ms comunes de la validacin estn
y casos de software confiable. Sin embargo, la opcin de cerca de inspeccin o revisiones de los documentos de
la notacin es obligada a menudo por el entrenamiento, los requisitos. Asignan un grupo de revisores en un
las habilidades y las preferencias de los autores y de los escrito para buscar errores, asunciones confundidas, la
lectores del documento. carencia de la claridad, y la desviacin de la costumbre.
La composicin del grupo que conduce la revisin es
Se han desarrollado un nmero de indicadores de la importante (por lo menos un representante del cliente
calidad para relacionar la calidad de la especificacin de debe ser incluido para un proyecto cliente-conducido,
requisitos del software a otras variables del proyecto por por ejemplo), y puede ayudar a proporcionar la direccin

r
ejemplo coste, aceptacin, funcionamiento, horario, en qu buscar bajo listas de comprobacin.
reproducibilidad, indicadores de la calidad etc. para el
individuo las declaraciones de la especificacin de Las revisiones se pueden constituir en el final del

do
requisitos del software incluyen imperativos, documento de definicin del sistema, el documento de la
directorios, frases dbiles, opciones, y continuaciones. especificacin de sistema, el documento de la
Indicadores para el documento de especificacin de especificacin de requisitos del software, especificacin
requisitos software incluye tamao, legibilidad, de la lnea de fondo para un nuevo lanzamiento, o en
especificacin, profundidad, y estructura del texto. cualquier otro paso en el proceso. IEEE Std 1028
[Dav93; Tha97] (Ros98) proporciona la direccin para conducir tales revisiones.
(IEEE1028-97) Las revisiones son tambin cubiertas en
IEEE tiene un estndar, IEEE Std 830 [IEEE830-98], KA de la calidad del software, punto 2.3 Revisiones e
para produccin y contenido de la especificacin de los intervenciones.
requisitos del software. Tambin, IEEE 1465 (similar a
ISO/IEC 12119) es un estndar que trata requisitos de 6.2. Prototipado
rra
calidad en paquetes de software. (IEEE1465-98) [Dav93; Kot00; Som05; Tha97]

Prototipar es comnmente el medio para validar la


6. Validacin de los requisitos interpretacin del ingeniero del software de los requisitos
[Dav93] del software, as como para sacar nuevos requisitos. Hay
una gama de tcnicas de prototipado y un nmero de
Los documentos de los requisitos pueden estar puntos en el proceso donde la validacin del prototipo
conformes a la validacin y procedimientos de puede ser apropiada. La ventaja de usar prototipos es que
verificacin. Los requisitos pueden ser validados para pueden hacer ms fcil la interpretacin de las
asegurarse de que el ingeniero del software entiende los asunciones del ingeniero del software y, donde lo
requisitos, y es tambin importante para verificar que un necesite, dan la explicacin til de porqu son
Bo

documento de requisitos se conforma con la compaa de incorrectas. Por ejemplo, el comportamiento dinmico de
los estndares, y ste es comprensible, constante, y un interfaz utilizador se puede entender mejor a travs de
finito. Las notaciones formales ofrecen la ventaja un prototipo animado que a travs de la descripcin
importante de permitir que las dos caractersticas pasadas textual o de modelos grficos. Hay tambin desventajas,
sean probadas (en un sentido estricto, por lo menos). sin embargo. stos incluyen el peligro de la atencin de
Diversos stakeholders, incluyendo los representantes del los usuarios que es distrada de la base de la
cliente y del revelador, deben tambin repasar los funcionalidad subyacente por las ediciones o los
documentos. Los documentos de los requisitos son problemas cosmticos de la calidad con el prototipo. Por
conformes a las mismas prcticas de gerencia de la esta razn, algunas personas dicen que los prototipos que
configuracin del software como los otros puntos evitan. Los prototipos pueden ser costosos. Sin embargo,
relevantes de los procesos del ciclo de vida del software. si evitan el despilfarro de los recursos causados
(Bry94, Ros98) intentando satisfacer requisitos errneos, su coste puede
ser ms fcilmente justificado.
Es normal programar explcitamente unos o ms puntos
en el proceso de los requisitos donde estn los requisitos 6.3. Validacin modelo
validados. La puntera es tomar cualquier problema antes [Dav93; Kot00; Tha97]
de que los recursos se destinen a tratar los requisitos. La
validacin de los requisitos se refiere al proceso de Es tpicamente necesario validar la calidad de los
examinar el documento de los requisitos para asegurarse modelos desarrollados durante el anlisis. Por ejemplo,
en modelos de objeto, es til para realizar un anlisis
esttico para verificar que las trayectorias de Hay presin general en la industria del software para
comunicacin existen entre los objetos que, en dominio ciclos de desarrollo ms cortos, y esto est
de los stakeholders, intercambian datos. Si las notaciones particularmente pronunciado en sectores del mercado
de especificacin formal se utilizan, es posible utilizar el altamente competitivos. Por otra parte, la mayora de los
razonamiento formal para probar caractersticas de la proyectos son obligados de cierta manera por su
especificacin. ambiente, y muchas son mejoras, o revisiones, del
software existente donde est la arquitectura dada. En la
6.4. Pruebas de aceptacin prctica, por lo tanto, es casi siempre imprctico poner el
[Dav93] proceso de los requisitos en ejecucin como proceso
lineal, determinista en el cual los requisitos del software
Una caracterstica esencial de un requisito del software se saquen de los stakeholders, asignado, y entregado al
es que debe ser posible validar que el producto final lo equipo de desarrollo del software. Es ciertamente un
satisface. Los requisitos que no pueden ser validados son mito que los requisitos para los proyectos grandes del
deseos realmente justos. Una tarea importante es por lo software siempre estn entendidos perfectamente o
tanto planear cmo verificar cada requisito. En la especificados perfectamente. [Som97]

r
mayora de los casos, el diseo de pruebas de aceptacin
hace esto. Identificar y disear pruebas de aceptacin En su lugar, los requisitos iteran tpicamente hacia un
pueden ser difcil para los requisitos no funcionales nivel de calidad y detallan que es suficiente permitir las

do
(vase el asunto los requisitos funcionales y no decisiones del diseo y de la consecucin que se harn.
funcionales de 1.3). Para ser validados, deben primero En algunos proyectos, esto puede dar lugar a requisitos
ser analizados al punto donde pueden ser expresados antes de que todas sus caractersticas se entiendan
cuantitativamente. completamente. Esto arriesga a una reanudacin costosa
La informacin adicional se puede encontrar en el si los problemas emergen tarde en el proceso de la
software KA de prueba, conformidad de la prueba en el ingeniera del software. Sin embargo, los ingenieros del
punto 2.2.4. software son obligados necesariamente por planes de la
gerencia de proyecto y deben por lo tanto tomar medidas
para asegurarse de que la calidad de los requisitos es
7. Consideraciones prcticas tan alta como sea posible dado los recursos disponibles.
El primer nivel de la descomposicin de los puntos Deben, por ejemplo, hacer explcita cualquier asuncin
rra
presentados en este KA puede parecer que describe una que sostengan los requisitos, as como cualesquiera
secuencia lineal de actividades. sta es una vista problemas sabidos.
simplificada del proceso.
[Dav93] En casi todos los casos, el entendimiento de los
requisitos contina desarrollndose mientras que procede
Los requisitos procesan palmos de todo el ciclo de vida el diseo y el desarrollo. Esto conduce a menudo a la
del software. Cambiar la gerencia y el mantenimiento de revisin de requisitos tarde en el ciclo de vida. Quizs el
los requisitos en un estado que refleja exactamente el punto ms crucial de entender la ingeniera de requisitos
software que se construir, o se ha construido, es clave es que una proporcin significativa de los requisitos
para el xito del proceso ingeniera del software cambiar. Esto es a veces debido a los errores en el
[Kot00; Lou95] anlisis, pero es con frecuencia una consecuencia
inevitable del cambio en el ambiente: por ejemplo, la
Bo

No toda organizacin tiene una cultura de funcionalidad del cliente o el ambiente del negocio, o el
documentacin y manejo de requisitos. Es frecuente en mercado en el cual software se va a vender. Cualquiera
las compaas de start-up dinmicas, conducidas por una que sea la causa, es importante reconocer la
visin fuerte del producto y recursos limitados, para inevitabilidad del cambio para atenuar sus efectos. El
ver la documentacin de los requisitos como gastos cambio tiene que ser manejado asegurando esos cambios
indirectos innecesarios. Ms a menudo, sin embargo, propuestos mediante una revisin definida y un anlisis
segn estas compaas crecen, mientras que su base de del proceso de aprobacin, y, aplicando los requisitos
cliente crece, y como su producto comienza a cuidadosos que remontan, del impacto, y la
desarrollarse, estas descubren que necesitan recuperar los configuracin del software (vase la configuracin del
requisitos que las caractersticas de producto motivadas software KA de la gerencia). Por lo tanto, el proceso de
para determinar el impacto de cambios propuestos. Por los requisitos no es simplemente una tarea anticipada en
lo tanto, la documentacin de los requisitos y la gerencia el desarrollo del software, pero atraviesa por completo
del cambio son llave al xito de cualquier proceso de los el ciclo de vida del software. En un proyecto tpico, las
requisitos. actividades de los requisitos del software se desarrollan
en un cierto.
7.1. Naturaleza iterativa del proceso de los
requisitos 7.2. Cambiar a gestin
[Kot00; You01] [Kot00]
La gestin del cambio es central en el anlisis de requisitos y los stakeholders que lo motivaron (de un
requisitos. Este asunto describe el papel de la gestin del requisito del software de nuevo a los requisitos del
cambio, los procedimientos que necesitan estar sistema que ayudan a satisfacer, por ejemplo).
preparados, y el anlisis que se debe aplicar a los Inversamente, un requisito debe ser detectable entidades
cambios propuestos. Tiene acoplamientos fuertes a la del diseo que lo satisfacen (por ejemplo, de un requisito
configuracin del software KA de la gestin. del sistema en el software requisitos que se han
elaborado a partir de l, y encendido en los mdulos del
7.3. Cualidades de los requisitos cdigo que lo ponen en ejecucin).
[Kot00]
Los requisitos que remontan para un proyecto tpico
Los requisitos deben consistir no slo una especificacin formarn un grfico acclico dirigido complejo (DAG)
de qu se requiere, sino tambin de la informacin de requisitos.
ancilar que las ayudas manejan e interpretan los
requisitos. Esto debe incluir varias dimensiones de la 7.5 Requisitos que miden
clasificacin del requisito (vase la clasificacin de los Como cuestin prctica, es tpicamente til tener cierto

r
requisitos del asunto 4.1) y el mtodo de la verificacin o concepto del volumen de los requisitos para un
el plan de prueba de aceptacin. Puede tambin incluir la producto de software particular. Este punto es til
informacin adicional tal como un resumen-anlisis evaluando el tamao de un cambio en requisitos, en

do
razonado para cada requisito, la fuente de cada requisito, estimar el coste de una tarea del desarrollo o del
y una historia del cambio. Los requisitos ms mantenimiento, o simplemente para el uso como el
importantes atribuyen, sin embargo, un identificador que denominador en otra medida. La medida funcional del
permite requisitos identificados inequvocamente. tamao (FSM) es una tcnica para evaluar el tamao de
un cuerpo de requisitos funcionales. IEEE Std 14143.1
7.4 El remontar de los requisitos define el concepto de FSM. [IEEE14143.1-00]
[Kot00] Estndares de ISO/IEC y otras fuentes describen
mtodos particulares del FSM.
El remontar de los requisitos se refiere a la fuente
recuperacin de requisitos y de predecir los efectos de Informacin adicional sobre la medida del tamao y los
esos requisitos. El trazado es fundamental para el anlisis estndares se encuentran en el proceso de la ingeniera
rra
de la ejecucin del impacto cuando los requisitos del software.
cambian. Un requisito debe ser detectable al revs a
Bo
Bo
rra
do
r
REFERENCIAS RECOMENDADAS PARA REQUSITOS SW

[Dav93] A.M. Davis, Software Requirements: Objects,


Functions and States, Prentice Hall, 1993.
[Gog93] J. Goguen and C. Linde, Techniques for
Requirements Elicitation, presented at International
Symposium on Requirements Engineering, 1993.
[IEEE830-98] IEEE Std 830-1998, IEEE Recommended
Practice for Software Requirements Specifications, IEEE,
1998.
(IEEE14143.1-00) IEEE Std 14143.1-2000//ISO/
IEC14143-1:1998, Information TechnologySoftware
MeasurementFunctional Size MeasurementPart 1:
Definitions of Concepts, IEEE, 2000.
[Kot00] G. Kotonya and I. Sommerville, Requirements
Engineering: Processes and Techniques, John Wiley &

r
Sons, 2000.
[Lou95] P. Loucopulos and V. Karakostas, Systems
Requirements Engineering, McGraw-Hill, 1995. [Pfl01]

do
S.L. Pfleeger, Software Engineering: Theory and
Practice, second ed., Prentice Hall, 2001, Chap. 4.
[Rob99] S. Robertson and J. Robertson, Mastering the
Requirements Process, Addison-Wesley, 1999.
[Som97] I. Sommerville and P. Sawyer, Requirements
Engineering: A Good Practice Guide, John Wiley & Sons,
1997, Chap. 1-2.
[Som05] I. Sommerville, Software Engineering, seventhed.,
Addison-Wesley, 2005.
[Tha97] R.H. Thayer and M. Dorfman, eds., Software
Requirements Engineering, IEEE Computer Society Press,
rra
1997, pp. 176-205, 389-404.
[You01] R.R. You, Effective Requirements Practices,
Addison-Wesley, 2001.
Bo
APNDICE A. LISTA DE LECTURAS COMPLEMENTARIAS (Def94) J. DeFoe, Requirements Engineering Technology
in Industrial Education, presented at IEEE International
(Ale02) I. Alexander and R. Stevens, Writing Better Conference on Requirements Engineering,1994.
Requirements, Addison-Wesley, 2002. (Dem97) E. Demirors, A Blackboard Framework for
(Ard97) M. Ardis, Formal Methods for Supporting Teams in Software Development, presented at
Telecommunication System Requirements: A Survey of Ninth IEEE International Conference on Software
Standardized Languages, Annals of Software Engineering, Engineering and Knowledge Engineering, Knowledge
vol. 3, 1997. Systems Institute, 1997.
(Ber97) V. Berzins et al., A Requirements Evolution (Die95) M. Diepstraten, Command and Control System
Model for Computer Aided Prototyping, presented at Requirements Analysis and System Requirements
Ninth IEEE International Conference on Software Specification for a Tactical System, presented at First
Engineering and Knowledge Engineering, Knowledge IEEE International Conference on Engineering of complex
Systems Institute, 1997. Computer Systems, 1995.
(Bey95) H. Beyer and K. Holtzblatt, Apprenticing with the (Dob94) J. Dobson and R. Strens, Organizational
Customer, Communications of the ACM, vol. 38, iss. 5, Requirements Definition for Information Technology,
May 1995, pp. 45-52. presented at IEEE International Conference on

r
(Bru95) G. Bruno and R. Agarwal, Validating Software Requirements Engineering, 1994.
Requirements Using Operational Models, presented at (Duf95) D. Duffy et al., A Framework for Requirements
Second Symposium on Software Quality Techniques and Analysis Using Automated Reasoning, presented at

do
Acquisition Criteria, 1995. Seventh International Conference on Advanced Information
(Bry94) E. Bryne, IEEE Standard 830: Recommended Systems Engineering, 1995.
Practice for Software Requirements Specification, (Eas95) S. Easterbrook and B. Nuseibeh, Managing
presented at IEEE International Conference on Inconsistencies in an Evolving Specification, presented at
Requirements Engineering, 1994. Second International Symposium on Requirements
(Buc94) G. Bucci et al., An Object-Oriented Dual Engineering, 1995.
Language for Specifying Reactive Systems, presented at (Edw95) M. Edwards et al., RECAP: A Requirements
IEEE International Conference on Requirements Elicitation, Capture, and Analysis Process Prototype Tool
Engineering, 1994. for Large Complex Systems, presented at First IEEE
(Bus95) D. Bustard and P. Lundy, Enhancing Soft Systems International Conference on Engineering of Complex
Analysis with Formal Modeling, presented at Second Computer Systems, 1995.
rra
International Symposium on Requirements Engineering, (ElE95) K. El-Emam and N. Madhavji, Requirements
1995. Engineering Practices in Information Systems
(Che94) M. Chechik and J. Gannon, Automated Development: A Multiple Case Study, presented at Second
Verification of Requirements Implementation, presented at International Symposium on Requirements Engineering,
Proceedings of the International Symposium on Software 1995.
Testing and Analysis, special issue, 1994. (Fai97) R. Fairley and R. Thayer, The Concept of
(Chu95) L. Chung and B. Nixon, Dealing with Non- Operations: The Bridge from Operational Requirements to
Functional Requirements: Three Experimental Studies of a Technical Specifications, Annals of Software Engineering,
Process-Oriented Approach, presented at Seventeenth vol. 3, 1997.
IEEE International Conference on Software Engineering, (Fic95) S. Fickas and M. Feather, Requirements
1995. Monitoring in Dynamic Environments, presented at
(Cia97) P. Ciancarini et al., Engineering Formal Second International Symposium on Requirements
Bo

Requirements: An Analysis and Testing Method for Z Engineering, 1995.


Documents, Annals of Software Engineering, vol. 3, 1997. (Fie95) R. Fields et al., A Task-Centered Approach to
(Cre94) R. Crespo, We Need to Identify the Requirements Analyzing Human Error Tolerance Requirements, resented
of the Statements of Non-Functional Requirements, at Second International Symposium on Requirements
presented at International Workshop on Requirements Engineering, 1995.
Engineering: Foundations of Software Quality, 1994. (Gha94) J. Ghajar-Dowlatshahi and A. Varnekar, Rapid
(Cur94) P. Curran et al., BORIS-R Specification of the Prototyping in Requirements Specification Phase of
Requirements of a Large-Scale Software Intensive System, Software Systems, presented at Fourth International
presented at Requirements Elicitation for Software-Based Symposium on Systems Engineering, National Council on
Systems, 1994. Systems Engineering, 1994.
(Dar97) R. Darimont and J. Souquieres, Reusing (Gib95) M. Gibson, Domain Knowledge Reuse During
Operational Requirements: A Process-Oriented Approach,
presented at IEEE International Symposium on
Requirements Engineering, 1997.
Requirements Engineering, presented at Seventh
International Conference on Advanced Information Systems
(Dav94) A. Davis and P. Hsia, Giving Voice to Engineering (CAiSE 95), 1995.
Requirements Engineering: Guest Editors Introduction, (Gol94) L. Goldin and D. Berry, AbstFinder: A Prototype
IEEE Software, vol. 11, iss. 2, March 1994, pp. 12-16. Abstraction Finder for Natural Language Text for Use in
Requirements Elicitation: Design, Methodology and
Evaluation, presented at IEEE International Conference on
Requirements Engineering, 1994.
(Got97) O. Gotel and A. Finkelstein, Extending International Symposium on Requirements Engineering,
Requirements Traceability: Lessons Learned from an 1995.
Industrial Case Study, presented at IEEE International (Lei97) J. Leite et al., Enhancing a Requirements Baseline
Symposium on Requirements Engineering, 1997. with Scenarios, presented at IEEE International
(Hei96) M. Heimdahl, Errors Introduced during the TACS Symposium on Requirements Engineering, 1997.
II Requirements Specification Effort: A Retrospective Case (Ler97) F. Lerch et al.., Using Simulation-Based
Study, presented at Eighteenth IEEE International Experiments for Software Requirements Engineering,
Conference on Software Engineering, 1996. Annals of Software Engineering, vol. 3, 1997.
(Hei96a) C. Heitmeyer et al., Automated Consistency (Lev94) N. Leveson et al., Requirements Specification or
Checking Requirements Specifications, ACM Transactions Process-Control Systems, IEEE Transactions on Software
on Software Engineering and Methodology, vol. 5, iss. 3, Engineering, vol. 20, iss. 9, September 1994, pp. 684-707.
July 1996, pp. 231-261. (Lut96a) R. Lutz and R. Woodhouse, Contributions of
(Hol95) K. Holtzblatt and H. Beyer, Requirements SFMEA to Requirements Analysis, presented at Second
Gathering: The Human Factor, Communications of the IEEE International Conference on Requirements
ACM, vol. 38, iss. 5, May 1995, pp. 31-32. Engineering, 1996.
(Hud96) E. Hudlicka, Requirements Elicitation with (Lut97) R. Lutz and R. Woodhouse, Requirements

r
Indirect Knowledge Elicitation Techniques: Comparison of Analysis Using Forward and Backward Search, Annals of
Three Methods, presented at Second IEEE International Software Engineering, vol. 3, 1997.
Conference on Requirements Engineering, 1996. (Mac96) L. Macaulay, Requirements Engineering,

do
(Hug94) K. Hughes et al., A Taxonomy for Requirements Springer-Verlag, 1996.
Analysis Techniques, presented at IEEE International (Mai95) N. Maiden et al., Computational Mechanisms for
Conference on Requirements Engineering, 1994. Distributed Requirements Engineering, presented at
(Hug95) J. Hughes et al., Presenting Ethnography in the Seventh International Conference on Software Engineering
Requirements Process, presented at Second IEEE and Knowledge Engineering, Knowledge Systems Institute,
International Symposium on Requirements Engineering, 1995.
1995. (Mar94) B. Mar, Requirements for Development of
(Hut94) A.T.F. Hutt, ed., Object Analysis and Design - Software Requirements, presented at Fourth International
Comparison of Methods. Object Analysis and Design - Symposium on Systems Engineering, 1994.
Description of Methods, John Wiley & Sons, (Mas97) P. Massonet and A. v. Lamsweerde, Analogical
1994.(INCOSE00) INCOSE, How To: Guide for all Reuse of Requirements Frameworks, presented at IEEE
rra
Engineers, Version 2, International Council on Systems International Symposium on Requirements Engineering,
Engineering, 2000. 1997.
(Jac95) M. Jackson, Software Requirements and (McF95) I. McFarland and I. Reilly, Requirements
Specifications, Addison-Wesley, 1995. Traceability in an Integrated Development Environment,
(Jac97) M. Jackson, The Meaning of Requirements, presented at Second International Symposium on
Annals of Software Engineering, vol. 3, 1997. Requirements Engineering, 1995.
(Jon96) S. Jones and C. Britton, Early Elicitation and (Mea94) N. Mead, The Role of Software Architecture in
Definition of Requirements for an Interactive Multimedia Requirements Engineering, presented at IEEE
Information System, presented at Second IEEE International Conference on Requirements Engineering,
International Conference on Requirements Engineering, 1994.
1996. (Mos95) D. Mostert and S. v. Solms, A Technique to
(Kir96) T. Kirner and A. Davis, Nonfunctional Include Computer Security, Safety, and Resilience
Requirements for Real-Time Systems, Advances in Requirements as Part of the Requirements Specification,
Bo

Computers, 1996. Journal of Systems and Software, vol. 31, iss. 1, October
(Kle97) M. Klein, Handling Exceptions in Collaborative 1995, pp. 45-53.
Requirements Acquisition, presented at IEEE International (Myl95) J. Mylopoulos et al., Multiple Viewpoints
Symposium on Requirements Engineering, Analysis of Software Specification Process, IEEE
1997. Transactions on Software Engineering, 1995.
(Kos97) R. Kosman, A Two-Step Methodology to Reduce (Nis92) K. Nishimura and S. Honiden, Representing and
Requirements Defects, Annals of Software Engineering, Using Non-Functional Requirements: A Process-Oriented
vol. 3, 1997. Approach, IEEE Transactions on Software Engineering,
(Kro95) J. Krogstie et al., Towards a Deeper December 1992.
Understanding of Quality in Requirements Engineering, (Nis97) H. Nissen et al., View-Directed Requirements
presented at Seventh International Conference on Advanced Engineering: A Framework and Metamodel, presented at
Information Systems Engineering (CAiSE 95), 1995. Ninth IEEE International Conference on Software
(Lal95) V. Lalioti and B. Theodoulidis, Visual Scenarios Engineering and Knowledge Engineering, Knowledge
for Validation of Requirements Specification, presented at Systems Institute, 1997.
Seventh International Conference on Software Engineering (OBr96) L. OBrien, From Use Case to Database:
and Knowledge Engineering, Knowledge Systems Institute, Implementing a Requirements Tracking System, Software
1995. Development, vol. 4, iss. 2, February 1996, pp. 43-47.
(Lam95) A. v. Lamsweerde et al., Goal-Directed (UML04) Object Management Group, Unified Modeling
Elaboration of Requirements for a Meeting Scheduler: Language, www.uml.org, 2004. (Opd94) A. Opdahl,
Problems and Lessons Learnt, presented at Second Requirements Engineering for Software Performance,
presented at International Workshop on Requirements (Span97) G. Spanoudakis and A. Finkelstein, Reconciling
Engineering: Foundations of Software Quality, 1994. Requirements: A Method for Managing Interference,
(Pin96) F. Pinheiro and J. Goguen, An Object-Oriented Inconsistency, and Conflict, Annals of Software
Tool for Tracing Requirements, IEEE Software, vol. 13, Engineering, vol. 3, 1997.
iss. 2, March 1996, pp. 52-64. (Ste94) R. Stevens, Structured Requirements, presented at
(Pla96) G. Playle and C. Schroeder, Software Fourth International Symposium on Systems Engineering,
Requirements Elicitation: Problems, Tools, and 1994.
Techniques, Crosstalk: The Journal of Defense Software (Vin90) W.G. Vincenti, What Engineers Know and How
Engineering, vol. 9, iss. 12, December 1996, pp. 19-24. They Know It - Analytical Studies form Aeronautical
(Poh94) K. Pohl et al., Applying AI Techniques to History, John Hopkins University Press, 1990.
Requirements Engineering: The NATURE Prototype, (Wei03) K. Weigers, Software Requirements, second ed.,
presented at IEEE Workshop on Research Issues in the Microsoft Press, 2003.
Intersection Between Software Engineering and Artificial (Whi95) S. White and M. Edwards, A Requirements
Intelligence, 1994. Taxonomy for Specifying Complex Systems, presented at
(Por95) A. Porter et al., Comparing Detection Methods for First IEEE International Conference on Engineering of
Software Requirements Inspections: A Replicated Complex Computer Systems, 1995.

r
Experiment, IEEE Transactions on Software Engineering, (Wil99) B. Wiley, Essential System Requirements: A
vol. 21, iss. 6, June 1995, pp. 563-575. Practical Guide to Event-Driven Methods, Addison-
(Pot95) C. Potts et al., An Evaluation of Inquiry-Based Wesley, 1999.

do
Requirements Analysis for an Internet Server, presented at (Wyd96) T. Wyder, Capturing Requirements With Use
Second International Symposium on Requirements Cases, Software Development, vol. 4, iss. 2, February
Engineering, 1995. 1996, pp. 36-40.
(Pot97) C. Potts and I. Hsi, Abstraction and Context in (Yen97) J. Yen and W. Tiao, A Systematic Tradeoff
Requirements Engineering: Toward a Synthesis, Annals of Analysis for Conflicting Imprecise Requirements,
Software Engineering, vol. 3, 1997. presented at IEEE International Symposium on
(Pot97a) C. Potts and W. Newstetter, Naturalistic Inquiry Requirements Engineering, 1997.
and Requirements Engineering: Reconciling Their (Yu97) E. Yu, Towards Modeling and Reasoning Support
Theoretical Foundations, presented at IEEE International for Early-Phase Requirements Engineering, presented at
Symposium on Requirements Engineering, 1997. IEEE International Symposium on Requirements
(Ram95) B. Ramesh et al., Implementing Requirements Engineering, 1997.
rra
Traceability: A Case Study, presented at Second (Zav96) P. Zave and M. Jackson, Where Do Operations
International Symposium on Requirements Engineering, Come From? A Multiparadigm Specification Technique,
1995. IEEE Transactions on Software Engineering,, vol. 22, iss.
(Reg95) B. Regnell et al., Improving the Use Case Driven 7, July 1996, pp. 508-528.
Approach to Requirements Engineering, presented at
Second IEEE International Symposium on Requirements
Engineering, 1995.
(Reu94) H. Reubenstein, The Role of Software
Architecture in Software Requirements Engineering,
presented at IEEE International Conference on
Requirements Engineering, 1994.
(Rob94) J. Robertson and S. Robertson, Complete Systems
Bo

Analysis, Vol. 1 and 2, Prentice Hall, 1994.


(Rob94a) W. Robinson and S. Fickas, Supporting Multi-
Perspective Requirements Engineering, presented at IEEE
International Conference on Requirements Engineering,
1994.
(Ros98) L. Rosenberg, T.F. Hammer, and L.L. Huffman,
Requirements, testing and metrics, presented at 15th
Annual Pacific Northwest Software Quality Conference,
1998.
(Sch94) W. Schoening, The Next Big Step in Systems
Engineering Tools: Integrating Automated Requirements
Tools with Computer Simulated Synthesis and Test,
presented at Fourth International Symposium on Systems
Engineering, 1994.
(She94) M. Shekaran, The Role of Software Architecture
in Requirements Engineering, presented at IEEE
International Conference on Requirements Engineering,
1994.
(Sid97) J. Siddiqi et al., Towards Quality Requirements
Via Animated Formal Specifications, Annals of Software
Engineering, vol. 3, 1997.
APNDICE B. LISTA DE ESTNDARES
(IEEE1465-98) IEEE Std 1465-1998//ISO/ IEC12119:1994,
(IEEE830-98) IEEE Std 830-1998, IEEE Recommended IEEE Standard Adoption of International Standard
Practice for Software Requirements Specifications, IEEE, ISO/IEC12119:1994(E), Information Technology-Software
1998. Packages-Quality requirements and testing, IEEE, 1998.
(IEEE1028-97) IEEE Std 1028-1997 (R2002), IEEE (IEEEP1471-00) IEEE Std 1471-2000, IEEE Recommended
Standard for Software Reviews, IEEE, 1997. Practice for Architectural Descriptionos Software Intensive
(IEEE1233-98) IEEE Std 1233-1998, IEEE Guide for Systems, Architecture Working Group of the Software
Developing System Requirements Specifications, 1998. Engineering Standards Committee, 2000.
(IEEE1320.1-98) IEEE Std 1320.1-1998, IEEE Standard (IEEE12207.0-96) IEEE/EIA 12207.0-1996//ISO/
for Functional Modeling Language-Syntax and Semantics IEC12207:1995, Industry Implementation of Int. Std.
for IDEF0, IEEE, 1998. ISO/IEC 12207:95, Standard for Information Technology-
(IEEE1320.2-98) IEEE Std 1320.2-1998, IEEE Standard Software Life Cycle Processes, IEEE, 1996.
for Conceptual Modeling Language-Syntax and Semantics (IEEE14143.1-00) IEEE Std 14143.1-2000//ISO/
for IDEFIX97 (IDEFObjetct), IEEE, 1998. IEC14143-1:1998, Information Technology-Software
(IEEE1362-98) IEEE Std 1362-1998, IEEE Guide for Measurement-Functional Size Measurement-Part 1:

r
Information Technology-System Definition-Concept of Definitions of Concepts, IEEE, 2000.
Operations (ConOps) Document, IEEE, 1998.

do
rra
Bo
Bo
rra
do
r
CAPTULO 3
DISEO DE SOFTWARE

ACRNIMOS Referente al alcance del rea del conocimiento del


diseo del software (KA), la descripcin actual de KA
ADL Lenguajes de Descripcin de Arquitecturas. no discute todos los asuntos del nombre del cual
CRC Tarjeta Clase-Responsabilidades-Colaboradores contenga la palabra diseo. En la terminologa de Tom
ERD Diagrama Entidad-Relacin DeMarco (DeM99), el KA discutido en este captulo
IDL Lenguaje de Descripcin de Interfaz trata principalmente del D-diseo (diseo de la
DFD Diagrama de Flujo de DatosData Flow Diagram descomposicin, traza del software en partes de

r
PDL Pseudo-cdigo y lenguaje de Diseo de Programa componentes). Sin embargo, debido a su importancia en
CBD Diseo Basado en Componentes el campo cada vez mayor de la arquitectura del software,
tambin trataremos el diseo desde el punto de

do
INTRODUCCIN congelacin (el diseo del patrn de familia, cual meta
El diseo se define en [IEEE610.12-90] como el es establecer concordancias explotables en una familia
proceso para definir la arquitectura, los componentes, los del software). Por el contrario, el KA del diseo del
interfaces, y otras caractersticas de un sistema o un software no trata el I-Diseo (el diseo de la Innovacin,
componente y el resultado de este proceso. Visto realizado generalmente durante el proceso de los
como proceso, el diseo del software es la actividad del requisitos del software con el objetivo de conceptuar y
ciclo de vida de la cual los requisitos del software se de especificar el software para satisfacer las necesidades
analizan para producir una descripcin de la estructura y los requisitos), puesto que este asunto se debe
interna del software que servir como la base para su considerar parte del anlisis y la especificacin de
construccin. requisitos la descripcin de KA del diseo del software
Ms exacto, un diseo del software (el resultado) debe se relaciona especficamente con los requisitos del
rra
describir la arquitectura del software, en cmo la software, la construccin del software, la gerencia de la
descomposicin del software, la organizacin de los ingeniera del software, la calidad del software, y las
componentes, y los interfaces entre los mismos disciplinas relacionadas con la ingeniera del software
componentes. Debe tambin describir los componentes
en un nivel de detalle que permita su construccin. INTERRUPCIN DE LOS ASUNTOS PARA EL DISEO DEL
El diseo del software desempea un papel importante SOFTWARE
en el desarrollo de software: permite que la Ingeniera 1. Fundamentos del diseo del software
del software produzca los diversos modelos para la
solucin que se pondr en desarrollo. Podemos analizar Los conceptos, las nociones, y la terminologa
y evaluar estos modelos para determinar si o no introducida aqu forman una base subyacente para
permitirn que se satisfaga los requisitos. entender el papel y el alcance del diseo del software.
Bo

Podemos tambin examinar y evaluar varias soluciones


alternativas y compensaciones. Finalmente, podemos 1.1. Conceptos generales de diseo
utilizar los modelos que resultan para planear las El software no es el nico campo donde est implicado
actividades subsecuentes del desarrollo, adems de el diseo. En el sentido amplio, podemos ver diseo
usarlas como entrada o punto de partida de la como forma de solucionar un problema. [Bud03: c1] Por
construccin y prueba en un listado estndar de los ejemplo, el concepto de un problema travieso del
procesos del ciclo de vida del software, tales como, problema-uno sin definitivo solucin-es interesante en
procesos del ciclo de vida del software de IEEE/EIA trminos de entender los lmites del diseo. [Bud04: c1]
12207 [IEEE12207.0-96], diseo del software consiste Un nmero de otras nociones y conceptos estn tambin
en dos actividades que quepan entre el anlisis de de inters en diseo el entender en su sentido general:
requisitos del software y la construccin del software: metas, apremios, alternativas, representaciones, y
Diseo de la arquitectura del software (a veces soluciones. [Smi93]
llamado diseo de nivel superior): describiendo la
estructura del software y organizacin e identificar a 1.2. Contexto del diseo del software
nivel superior los varios componentes
Diseo detallado software del: describiendo cada Para entender el papel del diseo del software, es
componente suficientemente para tener en cuenta su importante entender el contexto, el ciclo de vida de la
construccin. tecnologa de dotacin lgica. As, es importante
entender las caractersticas principales del anlisis de
requisitos del software contra diseo del software contra
la construccin del software contra la prueba del 1.4.1. Abstraccin
software. [IEEE12207.0-96]; Lis01: c11; 2 Mar; Pfl01: La abstraccin es el proceso de olvidarse de la
c2; Pre04: c2] informacin para poder tratar las cosas que son
diferentes como si fueran iguales. *Lis01+ En
1.3. Proceso del diseo del software el contexto del diseo del software, dos
El diseo del software generalmente se considera un mecanismos dominantes de la abstraccin son
proceso de dos etapas: [Bas03; Dor02: v1c4s2; Fre83: I; parametrizacin y especificacin. La
IEEE12207.0-96]; Lis01: c13; 2 Mar: D] abstraccin por la especificacin conduce a tres
clases importantes de abstraccin: abstraccin
1.3.1. Diseo arquitectnico procesal, abstraccin de los datos, y abstraccin
El diseo arquitectnico describe cmo el del control (iteracin). [Bas98: c6; Jal97: c5,
software se descompone y se organiza en los c6; Lis01: c1, c2, c5, c6; Pre04: c1]
componentes (la arquitectura) del software 1.4.2. Acoplador y cohesin
[IEEEP1471-00]
El acoplador se define como la fuerza de las

r
1.3.2. Diseo detallado relaciones entre los mdulos, mientras que la
El diseo detallado describe el comportamiento cohesin es definida por cmo los elementos
especfico de estos componentes. que componen un mdulo son relacionados.

do
La salida de este proceso es un sistema de modelos y los [Bas98: c6; Jal97: c5; Pfl01: c5; Pre04: c9]
artefactos que registran las decisiones principales que se 1.4.3. Descomposicin y modularizacin
han tomado. [Bud04: c2; IEE1016-98; Lis01: c13;
Pre04: c9] Descomposicin y modularizacin del software
en partes ms pequeas e independientes,
1.4. Permitir tcnicas generalmente con la meta de poner diversas
funcionalidades o responsabilidades en diversos
Segn el diccionario del ingls de Oxford, un principio componentes. [Bas98: c6; Bus96: c6; Jal97: c5;
es una verdad bsica o una ley general que se utiliza Pfl01: c5; Pre04: c9]
como una base del razonamiento o gua de la accin.
Los principios del diseo del software, tambin llamados 1.4.4. Encapsulacin/el ocultar de la
rra
tcnicas permisibles [Bus96], son nociones dominantes informacin
que consideran fundamental a los diversos Medios que ocultan de la encapsulacin/de la
acercamientos y conceptos del diseo del software. Las informacin que agrupan y que empaquetan los
tcnicas que lo permiten son las siguientes: [Bas98: c6; elementos y los detalles internos de una
Bus96: c6; IEEE1016-98; Jal97: c5, c6; Lis01: c1, c3; abstraccin y que hacen esos detalles
Pfl01: c5; Pre04: c9] inaccesibles. [Bas98: c6; Bus96: c6; Jal97: c5;
Pfl01: c5; Pre04: c9]
Bo

Figura1 Descomposicin de los temas del KA


Figura1 Descomposicin de los temas del KA de Diseo Software
2.3 Distribucin de componentes
1.4.5. Separacin del interfaz y de la
Cmo distribuir el software a travs del hardware, cmo
puesta en prctica
los componentes se comunican, cmo el middleware se
La separacin del interfaz y de la puesta en puede utilizar para ocuparse de software heterogneo.
prctica implica el definir de un componente [Bas03: c16; Bos00: c5; Bus96: c el 2 Mar de 94: DD;
especificando un interfaz pblico, a parte de Mey97: c30; Pre04: c30]
los detalles de cmo se observa el componente.
[Bas98: c6; Bos00: c10; Lis01: c1, c9] 2.1. Direccin del error y de excepcin y tolerancia de
1.4.6. Desahogo, lo completo y fallos
deshacindose de lo primitivo Cmo prevenir y tolerar averas y ocuparse de
Alcanzando desahogo, lo completo, y medios condiciones excepcionales. [Lis01: c4; Mey97: c12;
no primitivos se asegura que un componente Pfl01: c5]
de software captura todas las caractersticas
importantes de una abstraccin, y nada ms. 2.1. Interaccin y presentacin

r
[Bus96: c6; Lis01: c5].
Cmo estructurar y organizar las interacciones con los
usuarios y la presentacin de la informacin (por
2. Cuestiones claves en diseo del software
ejemplo, separacin de la presentacin y de la lgica del

do
Se tiene que tener en cuenta a la hora de disear negocio usando el acercamiento del Modelo-Vista-
software una serie de principios claves. Algunos son Regulador). [Bas98: c6; Bos00: c5; Bus96: c2; Lis01:
preocupaciones que todo el software debe tratar -por c13; Mey97: c32] Debe ser observado que este asunto
ejemplo, funcionamiento de la calidad. Otra edicin no est sobre especificar los detalles del interfaz
importante es cmo se descomponer, se organiza, y utilizador, que es la tarea del diseo del interfaz
constituyen los paquetes de software. Esto es tan utilizador (una parte de ergonmica del software); ver
fundamental que todos los acercamientos del diseo las disciplinas relacionadas de la tecnologa de dotacin
deben tratarlo de un modo u otro (vase las tcnicas del lgica.
asunto 1.4 y la subrea 6, los mtodos que permiten el
diseo del software). En cambio, otras ediciones se 2.1. Persistencia de los datos
ocupan de un cierto aspecto del comportamiento del
rra
Cmo los datos duraderos deben ser dirigidos. [Bos00:
software que no est en el dominio del uso, pero que
trata algunos de los dominios de soporte. *Bos00+ c5; Mey97: c31];
Tales ediciones, que interseccionaron a menudo la
funcionalidad del sistema, se han referido como 3. Estructura y arquitectura del software
aspectos: *aspectos+ tender para no ser unidades de la En su sentido terminante, una arquitectura del software
descomposicin funcional del software, sino algo para es una descripcin de los subsistemas y de los
ser las caractersticas que afectan el funcionamiento o la componentes de un sistema de software y de las
semntica de los componentes de manera sistemticas relaciones entre ellas. (Bus96: c6) La arquitectura
(Kic97). Un nmero de estas claves, ediciones de la procura as definir la estructura interna - segn el
cruz-corte son los siguientes (presentado en orden diccionario del ingls de Oxford, la manera de la cual
alfabtico): se construye o se organiza algo - del software que
Bo

resulta. Durante los mid-1990s, sin embargo, la


Concurrencia arquitectura del software comenz a emerger como
Cmo descomponer el software en procesos, tareas, e disciplina ms amplia que implicaba el estudio de las
hilos y reparto con eficacia relacionada, atomicidad, la estructuras y de las arquitecturas del software en una
manera ms genrica [Sha96]. Esto dio lugar a un
sincronizacin, y ediciones programar. [Bos00: c5; 2
Mar: CSD; Mey97: c30; Pre04: c9] nmero de ideas interesantes sobre diseo del software
en diversos niveles de la abstraccin. Algunos de estos
conceptos pueden ser tiles durante el diseo
Control y direccin de acontecimientos
arquitectnico (por ejemplo, estilo arquitectnico) del
Cmo organizar datos y controlar flujo, cmo manejar software especfico, as como durante su diseo
acontecimientos reactivos y temporales a travs de detallado (por ejemplo, patrones de nivel inferior del
varios mecanismos tales como invocacin y servicios diseo). Pero pueden tambin ser tiles para disear
repetidos implcitos. [Bas98: c5; Mey97: c32; Pfl01: c5] sistemas genricos, conduciendo al diseo de familias
de los programas (tambin conocidos como lneas de
productos). Interesante, la mayor parte de estos
conceptos se pueden considerar como tentativas de
describir, y de reutilizar as, conocimiento genrico del
diseo.
Patrones estructurales (por ejemplo, adapter,
3.1. Estructuras y puntos de vista arquitectnicos bridge, composite, decorator, faade, flyweight,
and proxy)
Diversas facetas de alto nivel de una poder del diseo
Patrones del comportamiento (por ejemplo,
del software y deben ser descritas y ser documentadas.
command, interpreter, iterator, mediator, memento,
Estas facetas a menudo se llaman las opiniones: Una
observer, state, strategy, template, visitor)
visin representa un aspecto parcial de una arquitectura
del software que demuestre caractersticas especficas
de un sistema de software *Bus96: c6]. Estas visiones 3.3 Familias de programas y de marcos.
distintas pertenecen a las ediciones distintas asociadas a Una posible opcin para permitir la reutilizacin de los
diseo del software - por ejemplo, la visin lgica (que diseos y de los componentes del software es disear
satisface los requisitos funcionales) contra la visin de las familias del software, tambin conocidas como
proceso (ediciones de la concurrencia) contra la visin lneas del producto de software. Estas pueden ser
fsica (ediciones de la distribucin) contra la opinin del hechas identificando las concordancias entre los
desarrollo (cmo el diseo se analiza en unidades de la miembros de tales familias y por los componentes

r
puesta en prctica). Otros autores utilizan diversas reutilizables y adaptables entre miembros de la familia.
terminologas, como del comportamiento contra [Bos00: c7, c10; Bas98: c15; Pre04: c30] En
funcional contra estructural contra los datos que programacin orientada a objetos, una clave relacionada
modelan opiniones. Resumiendo, un diseo del software

do
es la del marco: un subsistema parcialmente completo
es un artefacto mltiple producido por el proceso del del software que puede ser ampliado apropiadamente
diseo e integrado generalmente por visiones instalando los plug-ins especficos (tambin conocidos
relativamente independientes y ortogonal. [Bas03: c2; como puntos calientes). [Bos00: c11; Boo99: c28;
Boo99: c31; Bud04: c5; Bus96: c6; IEEE1016-98; Bus96: c6]
IEEE1471-00] Estilos arquitectnicos (patrones
arquitectnicos macro) 4. Anlisis y evaluacin de la calidad del diseo del
Un estilo arquitectnico es un sistema de apremios en software
una arquitectura *que+ define un sistema o una familia
de arquitecturas que las satisfagan *Bas03: c2+. Un Esta seccin incluye generalidades de la calidad y
estilo arquitectnico se puede considerar as mientras evaluacin que se relacionen especficamente con el
rra
que un meta-modelo que pueda proporcionar la diseo del software. La mayora se cubren de una
organizacin de alto nivel del software (su arquitectura manera general en Software Quality KA
macro). Los varios autores han identificado un nmero
de estilos arquitectnicos importantes. [Bas03: c5; 4.1. Cualidades de los atributos
Boo99: c28; Bos00: c6; Bus96: c1, c6; Pfl01: c5] Varias atributos son generalmente importantes para
obtener un diseo del software de buenos calidad -
Estructura general (por ejemplo, capas, pipas, y varios ilities (capacidad de mantenimiento,
filtros, pizarra) portabilidad, testeo, trazabilidad), los varios nesses
Sistemas distribuidos (por ejemplo, servidor de (correccin, robustez), incluyendo la aptitud del
cliente, tres gradas, corredor) propsito. *Bos00: c5; Bud04: c4; Bus96: c6;
Sistemas interactivos (por ejemplo, regulador de la ISO9126.1-01; ISO15026-98; Mar de 94: D; Mey97:
Modelo-Vista, Presentacin-Abstraccin-Control) c3; Pfl01: c5] Una distincin interesante es la que est
Bo

Sistemas adaptables (por ejemplo, micro-ncleo, entre las cualidades de la calidad discernible en el
reflexin) tiempo de ejecucin (funcionamiento, seguridad,
Oros (por ejemplo, hornada, intrpretes, control, disponibilidad, funcionalidad, utilidad), sas no
basados en las reglas de proceso). discernibles en el tiempo de ejecucin (modificabilidad,
portabilidad, reutilidad, integridad, y testeabilidad), y
3.2. Patrones del diseo (patrones arquitectnicos sas relacionadas con las calidades intrnsecas de la
micro). arquitectura (integridad, correccin, y lo completo,
capacidad conceptuales de la estructura). [Bas03: c4]
Resumido brevemente, un patrn es una solucin
comn a un problema comn en un contexto dado. 4.2 Tcnicas de evaluacin y calidad del anlisis.
(Jac99) Mientras que los estilos arquitectnicos se
pueden ver como patrones que describen la Varias tcnicas pueden ayudar a asegurar la calidad de
organizacin de un nivel alto del software (su un diseo del software:
arquitectura macro); otros patrones del diseo se pueden Revisiones de diseo del software: informal o
utilizar para describir los detalles en un nivel ms bajo, semiformal, a menudo basado en grupo, las
ms local (su arquitectura micro). [Bas98: c13; Boo99: tcnicas para verificar y para asegurar la calidad de
c28; Bus96: c1; 2 Mar: DP] los artefactos del diseo (por ejemplo, revisiones de
Patrones de creacin (por ejemplo, builder, factory, la arquitectura [Bas03: c11], revisiones de diseo, e
prototipo, y singleton) inspecciones [Bud04: c4; Fre83: VIII; IEEE1028-
97; Jal97: c5, c7; Lis01: c14; Pfl01: c5], tcnicas
basadas en panorama [Bas98: c9; Bos00: c5], y la Lenguajes descriptivos de la arquitectura:
toma de los requisitos [Dor02: v1c4s2; Pfl01: ]) textuales, a menudo formal, los lenguajes
Anlisis esttico: anlisis esttico formal o describan una arquitectura del software en
semiformal (ningn ejecutable) que se puede trminos de componentes y conectadores
utilizar para evaluar un diseo (por ejemplo, el [Bas03: c12]
anlisis o el cross-checking automatizado) Diagramas de la clase y objeto: usados para
[Jal97 del fault-tree: c5; Pfl01: ] representar un sistema de clases (y de objetos)
Simulacin y prototipado: tcnicas dinmicas y de sus correlaciones [Boo99: c8, c14; Jal97: ]
para evaluar un diseo (por ejemplo, Diagramas de componentes: usados para
simulacin o prototipo de la viabilidad [Bas98 representar un sistema de componentes (parte
del funcionamiento: c10; Bos00: c5; Bud04: fsica y reemplazable de un sistema al cual
c4; Pfl01: c5]) conforma y proporciona la realizacin de un
sistema de interfaces *Boo99+) y de sus
4.3 Medidas. correlaciones *Boo99: +
Tarjetas del colaborador de la responsabilidad

r
Las medidas se pueden utilizar para determinar o para
de la clase (CRCs): denotan los nombres de los
estimar cuantitativamente varios aspectos del tamao,
componentes (clases), de sus
de la estructura, o de la calidad de un diseo del
responsabilidades, y nombres de sus

do
software. La mayora de las medidas se han propuesto
componentes de colaboracin [Boo99: c4; ]
que dependen generalmente del acercamiento usado
para producir el diseo. Estas medidas se clasifican en Diagramas de despliegue: representar un
dos amplias categoras: sistema de nodos (fsico) y de sus
correlaciones, y, as, modelaban los aspectos
Diseo de medidas orientada a funcin
fsicos de un sistema [Boo99: ]
(estructuradas): Estructura del diseo, obtenida
sobre todo con la descomposicin funcional; Diagramas de la Entidad-relacin (ERDs):
representado generalmente como una carta de representan modelos conceptuales de los datos
estructura (a veces llamada un diagrama almacenados en los sistemas de informacin
jerrquico) en la cual varias medidas pueden [Bud04: c6; Dor02: v1c5; 2]
ser computadas [Jal97: c5, c7, Pre04: ] Lenguaje descriptivo de la interfaz (IDLS):
rra
Diseo de medidas orientada a objetos: La programacin como lenguajes usados para
estructura total del diseo se representa a definir los interfaces (nombres y tipos de
menudo como diagrama de la clase, en el cual operaciones exportadas) de los componentes
varias medidas pueden ser computadas. Las de software [Bas98: c8; Boo99: ]
medidas en las caractersticas del contenido Diagramas de la estructura de Jackson: Usados
interno de cada clase pueden tambin ser para describir las estructuras de datos en
computadas [Jal97: c6, c7; Pre04: c15] trminos de secuencia, seleccin, e iteracin
[Bud04: c6; 2 Mar:
5 Notaciones del diseo del software Estructura de cartas: Usados para describir la
estructura que llamaba de los programas (el
Muchas notaciones e idiomas existen para representar mdulo llama, y es llamado por otro mdulo)
los artefactos del diseo del software. Algunos se [Bud04: c6; Jal97: c5; 2 Mar: Dr; Pre04: c10]
Bo

utilizan principalmente para describir la organizacin


estructural de un diseo, otras para representar 5.2 Descripciones del comportamiento (visin
comportamiento del software. Ciertas notaciones se dinmica):
utilizan sobre todo durante el diseo arquitectnico y
otros principalmente durante el diseo detallado, Las siguientes notaciones y lenguajes, algunos grficos
aunque algunas notaciones se pueden utilizar en ambos y otros textuales, se utilizan para describir el
pasos. Adems, algunas notaciones se utilizan sobre comportamiento dinmico del software y de los
todo en el contexto de mtodos especficos (vase el componentes. Muchas de estas notaciones son tiles
Software Design Strategies and Methods subrea). sobre todo, pero no exclusivamente, durante el diseo
Aqu, se categorizan en las notaciones para describir la detallado.
opinin (esttica) estructural contra la visin (dinmica)
del comportamiento. Diagramas de actividad: Muestran el flujo del
control de la actividad (ejecucin no-atmica
5.1 Descripcin estructural (vista esttica): en curso dentro de una mquina del estado) a
la actividad *Boo99: +
Las siguientes notaciones, sobre todo (pero no siempre)
grficas, describen y representan los aspectos Diagramas de colaboracin: Muestran las
estructurales del diseo de software las cuales, interacciones que ocurren entre un grupo de
describen los componentes principales y cmo se objetos, donde est el nfasis en los objetos,
interconectan (visin esttica): sus acoplamientos, y los mensajes que
intercambian en estos acoplamientos [Boo99: ]
Organigramas de datos: Muestran los flujos de 6.2 Diseo (estructurado) orientado a funcin:
datos entre un sistema y los procesos [Bud04:
[Bud04: c14; Dor02: v1c6s4; Fre83: V; Jal97: c5;
c6; 2 Mar: Dr; Pre04: ]
Pre04: est uno c9, c10]
Tablas y diagramas de decisin: representan Esto es uno de los mtodos clsicos del diseo de
combinaciones complejas de las condiciones y software, donde los centros de descomposicin
de las acciones [Pre04: ] identifican las funciones del software y despus
Organigramas y organigramas estructurados: elaboran y refinan de una manera de arriba hacia abajo.
Representan el control de flujo y de las El diseo estructurado se utiliza generalmente despus
acciones asociadas que se realizarn [Fre83: de anlisis estructurado, produciendo as, entre otras
VII; 2 Mar: Dr; Pre04: ] cosas, organigramas de datos y de descripciones de
Diagramas de secuencia: Muestran las proceso asociados. Los investigadores han propuesto
interacciones entre un grupo de objetos, con varias estrategias (por ejemplo, anlisis de la
nfasis sobre el tiempo de ordenacin de transformacin, anlisis de la transaccin) y la
mensajes [Boo99: ] heurstica (por ejemplo, fan-in/fan-out, alcance del
Transicin de estado y diagramas de carta de

r
efecto contra el alcance del control) para transformar un
estado: demostraban el control de flujo de DFD en una arquitectura del software representada
estado a estado en una mquina de generalmente como carta de estructura.
estados[Boo99: c24; Bud04: c6; 2 Mar: Dr;

do
Jal97: ] 6.3 Diseo orientado a objeto
Lenguajes formales de especificacin:
Lenguajes textuales que utilizan nociones [Bud0: c16; Dor02: v1: c6s2, s3; Fre83: VI; Jal97: c6; 2
bsicas de matemticas (por ejemplo, lgica, Mar: D; Pre04: c9]
sistema, secuencia), para obtener de forma Numerosos mtodos de diseo de software basados en
rigurosa y abstracta, definir interfaces y objetos han sido propuestos. El campo se ha
comportamientos del componente de software, desarrollado basado en el diseo objeto de los mediados
a menudo en trminos de pre y post- de los aos ochenta (sustantivo = objeto; verbo =
condiciones [Bud04: c18; Dor02: v1c6s5; mtodo; adjetivo = cualidad) con el diseo orientado a
Mey97: ] objetos, donde la herencia y el polimorfismo
desempean un papel importante, el campo del diseo
rra
Lenguajes del diseo de pseudo cdigo del
programa (PDLs): Programa estructurado del componente-basado, donde la meta informacin
como los lenguajes usados para describir, puede ser definida y ser alcanzada (con la reflexin, por
generalmente en la etapa detallada del diseo, ejemplo). Aunque las races del diseo Orientado a
el comportamiento de un procedimiento o el Objetos provienen del concepto de la abstraccin de los
mtodo [Bud04: c6; Fre83: VII; Jal97: c7; datos, el diseo responsabilidad-conducido tambin se
Pre04: c8, c11] ha propuesto como alternativo al diseo Orientado a
Objetos.
6 Estrategias y mtodos del diseo de software
6.4 Diseo Dato-Estructura-Centrado
Existen varias estrategias generales para ayudar a dirigir
el proceso de diseo. [Bud04: c9, 2 Mar: D] Al [Bud04: c15; Fre83: III, VII; 2 Mar02:D]
El diseo Dato-estructura-centrado (por ejemplo,
Bo

contrario que en las estrategias generales, los mtodos


son ms especficos, sugieren y proporcionan Jackson, Warnier-Orr) comienza desde las estructuras
generalmente un sistema de notaciones que se utilizarn de datos que un programa manipula ms bien que desde
con el mtodo, una descripcin del proceso que se las funciones que realiza. La Ingeniera de software
utilizar despus del mtodo y un sistema de pautas al primero describe las estructuras de datos de entrada y de
usar el mtodo. [Bud04: c8] Tales mtodos son tiles salida (que usan los diagramas de la estructura de
como medios de transferir conocimiento y como marco Jackson, por ejemplo) y en seguida desarrolla la
comn para los equipos de los ingenieros de software. estructura de control del programa basada en estos
[Bud03: c8] Ver tambin Herramientas y mtodos KA diagramas de estructura de datos. La varia heurstica se
de Ingeniera de software. ha propuesto para tratar como caso especial, cuando hay
una unin mal hecha entre la entrada y las estructuras de
6.1 Estrategias generales la salida.
Algunos de los ejemplos citados de las estrategias
generales tiles en el proceso del diseo son dividir-y- 6.5 Diseo basado en componente (CBD):
conquistar y el refinamiento[Bud04: c12; Fre83: V], de
arriba hacia abajo contra las estrategias bottom-up Un componente de software es una unidad
independiente, teniendo bien definidos los interfaces y
[Jal97: c5; Lis01: c13], abstraccin de los datos y el
dependencias que se pueden componer y desplegar
ocultar de la informacin [Fre83: V], uso de la
independientemente. El diseo basado en componente
heurstica [Bud04: c8], uso de patrones y lenguajes de
trata las ediciones relacionadas con el abastecimiento,
patrones [Bud04: c10; Bus96: c5], uso de un
acercamiento iterativo e incremental. [Pfl01: c2]
desarrollo, e integracin de tales componentes para
mejorar la reutilizacin. [Bud04: c11]

6.6 Otros mtodos


Otros interesantes pero menos aprovechados tambin
existen: mtodos formales y rigurosos [Bud04: c18;
Dor02: c5; Fre83; Mey97: c11; Pre04: c29] y mtodos
transformacionales. [Pfl98: c2]

r
do
rra
Bo
MATRIZ DE TEMAS VS. MATERIAL DE REFERENCIA

[IEEE1016-98]

[IEEE1471-00]

[IEEE12207.0-
[iEEE1028-97]

[ISO15026-98]
[ISO9126-01]

[Mar02]*
{Mar94}

[Mey97]
[Bud03]
{Bas98}

[Boo99]

[Dor02]

[Smi93]
[Bus96]

[Li s01]
[Bas03]

[Bos00]

[Jal 97]
[Fre83]

[Pre04]
[Pfl01]
r
96]
1.Fundamentos del
c11s1
Diseo de Software

do
1.1Conceptos Generales c13s1,
c1
de Diseo c13s2
c1s1, c13s2,
1.2El contexto de Diseo c3s1-
Software * c3s3,c125- D c2s2 c2
128, c9s1-
c9s3

1.3 El Proceso de Diseo 2-


c2s1 c2 v1c4s2 * * * D c9
Software 22

c5s1,
c5s2,
1.4 Tcnicas Permitidas {c6s1} c10s3 c6s3 * c5s2, c9
c5s5

rra
c6s2

2.Elementos clave en el Diseo


Software

2.1 Concurrencia c5s4.1 CSD c30 c9

c32s4,
2.2 Control y manejo de eventos {c5s2} {DD} c5s3
c32s5

c16s3,
2.3 Distribucin de componentes c5s4.1 c2s3 c30 c30
c16s4
Bo
2.4 Manejo de errores y
excepciones y c4s3-c4s5 c12 c5s5
tolerancia a fallos

2.5 Interaccin y presentacin {c6s2} c5s4.1 c2s4 c13s3 c32s2

2.6 Persistencia de Datos c5s4.1 c31

* ver siguiente seccin


[IEEE12207.
[IEEE1016-

[IEEE1471-
[iEEE1028-

[ISO15026-
[ISO9126-

[Mar02]*
{Mar94}

[Mey97]
[Bud03]

r
{Bas98}

[Boo99]

[Dor02]

[Smi93]
[Bus96]

[Li s01]
[Bas03]

[Bos00]

[Jal 97]
[Fre83]

[Pre04]
[Pfl01]
0-96]
98]

97]

00]

01]

98]
do
3. Estructura y Arquitectura
c31
Software
c2s
3.1 Estructuras de la Arquitectura c28 c5 c6s1 * *
5
c1s1-
c5s
3.2 Estilos de Arquitectura c28 c6s3.1 c1s3, c2s3
9
c6s2
{c1
c1s1-
3s3 c28 DP
3.3 Patrones de Diseo c1s3
}
c7s1,
{c1 c7s2,
3.4 Familias de programas y 5s1, c10s2-
c6s2 c30
Marcos de Trabajo c15 c10s4,

rra
s3} c11s2
c11s4
4. Anlisis de la Calidad y
Evaluacin del Diseo de
Software

4.1 Atributos de Calidad c4s


c5s2.3 c4 c6s4 * * {D} c3 c5s5
2
c11
s3,
[c9s
1, c5s2.1,
4.2 Tcnicas de Anlisis de Calidad 542 c5s6,
c9s c5s2.2, c5s5,
y Evaluacin c4 v1c4s2 - * c14s1 c5s7,
2, c5s3, c7s3
Bo
576 c11s5
c10 c5s4
s2,
c10
s3}
c5s6,
4.3 Mtricas c6s5, c15
c7s4
[IEEE12207.
[IEEE1016-

[IEEE1471-
[iEEE1028-

[ISO15026-
[ISO9126-

[Mar02]*
{Mar94}

[Mey97]
[Bud03]

r
{Bas98}

[Boo99]

[Dor02]

[Smi93]
[Bus96]

[Li s01]
[Bas03]

[Bos00]

[Jal 97]
[Fre83]

[Pre04]
[Pfl01]
0-96]
98]

97]

00]

01]

98]
do
5. Notaciones de Diseo de
Software
{c8s c4, c8
4} c11,
5.1 Descripciones estructurales c12s c12, c5s3,
c6 429 DR
(Vista Esttica 1, c14, c6s3
c12s c30,
2 c31
485-
5.2 Descripciones del c6, 490,
v1c5 c7s2 DR c10
Comportamiento (Vista Dinmica) c18 506-
513
6. Mtodos y Estrategias en
c11 c8,c11

rra
Diseo de Software
304-
c8,
c5s1- 320,
6.1 Estrategias generales c10, c5s1.4 c13s13
c5s4 533-
c12
539
6.2 Diseo Orientado a Funciones
328-
(Estructurado) c5s4 c2s2
352
6.3 Diseo Orientado a Objetos 420-
c6s4 D c9,c10
436
201-
6.4 Diseo centrado en Estructuras
120,
de Datos D c9
514-
532
Bo
6.5 Diseo Basado en
Componentes (CBD)

181- c11 c2s2 c29


6.6 Otros 192
REFERENCIAS RECOMENDADAS PARA EL DISEO DE [IEEE12207.0-96] IEEE/EIA 12207.0-
SOFTWARE 1996//ISO/IEC12207:1995, Industry Implementation of
Int. Std. ISO/IEC 12207:95, Standard for Information
Technology-Software Life Cycle Processes, IEEE, 1996.
[Bas98] L. Bass, P. Clements, and R. Kazman, Software
Architecture in Practice, Addison-Wesley, 1998.[Bas03] [ISO9126-01] ISO/IEC 9126-1:2001, Software
L. Bass, P. Clements, and R. Kazman, Software Engineering Product QualityPart 1: Quality Model, ISO
Architecture in Practice, second ed., Addison-Wesley, and IEC, 2001.
2003.
[ISO15026-98] ISO/IEC 15026-1998, Information
[Boo99] G. Booch, J. Rumbaugh, and I. Jacobson, The Technology System and Software Integrity Levels, ISO
Unified Modeling Language User Guide, Addison-Wesley, and IEC, 1998.
1999.
[Jal97] P. Jalote, An Integrated Approach to Software
[Bos00] J. Bosch, Design & Use of Software Engineering, second ed., Springer-Verlag, 1997.
Architectures: Adopting and Evolving a Product-Line
[Lis01] B. Liskov and J. Guttag, Program Development in
Approach, first ed., ACM Press, 2000.
Java: Abstraction, Specification, and Object-Oriented

r
[Bud04] D. Budgen, Software Design, second ed., Design, Addison-Wesley, 2001.
Addison-Wesley, 2004.
[Mar94] J.J. Marciniak, Encyclopedia of Software

do
[Bus96] F. Buschmann et al., Pattern-Oriented Software Engineering, J. Wiley & Sons, 1994. The references to the
Architecture: A System of Patterns, John Wiley & Sons, Encyclopedia are as follows:
1996.
CBD = Component-Based Design
[Dor02] M. Dorfman and R.H. Thayer, eds., Software D = Design
Engineering (Vol. 1 & Vol. 2), IEEE Computer Society DD = Design of the Distributed System
Press, 2002. DR = Design Representation
[Fre83] P. Freeman and A.I. Wasserman, Tutorial on [Mar02] J.J. Marciniak, Encyclopedia of Software
Software Design Techniques, fourth ed., IEEE Computer Engineering, second ed., J. Wiley & Sons, 2002.
Society Press, 1983.
[Mey97] B. Meyer, Object-Oriented Software
[IEEE610.12-90] IEEE Std 610.12-1990 (R2002), IEEE
rra
Construction, second ed., Prentice-Hall, 1997.
Standard Glossary of Software Engineering Terminology,
IEEE, 1990. [Pfl01] S.L. Pfleeger, Software Engineering: Theory and
Practice, second ed., Prentice-Hall, 2001.
[IEEE1016-98] IEEE Std 1016-1998, IEEE Recommended
Practice for Software Design Descriptions, IEEE, 1998. [Pre04] R.S. Pressman, Software Engineering: A
Practitioners Approach, sixth ed., McGraw-Hill, 2004.
[IEEE1028-97] IEEE Std 1028-1997 (R2002), IEEE
Standard for Software Reviews, IEEE, 1997. [Smi93] G. Smith and G. Browne, Conceptual
Foundations of Design Problem-Solving, IEEE
[IEEE1471-00] IEEE Std 1471-2000, IEEE Recommended Transactions on Systems, Man and Cybernetics, vol. 23,
Practice for Architectural Description of Software iss. 5, 1209-1219, Sep.-Oct. 1993.
Intensive Systems, Architecture Working Group of the
Software Engineering Standards Committee, 2000.
Bo
APNDICE A. LISTA DE LECTURAS (Kic97) G. Kiczales et al., Aspect-Oriented
COMPLEMENTARIAS Programming, presented at ECOOP 97 Object-
Oriented Programming, 1997.

(Boo94a) G. Booch, Object Oriented Analysis and Design (Kru95) P. B. Kruchten, The 4+1 View Model of
with Applications, second ed., The Benjamin/Cummings Architecture, IEEE Software, vol. 12, iss. 6, 42-50, 1995
Publishing Company, 1994. (Lar98) C. Larman, Applying UML and Patterns: An
(Coa91) P. Coad and E. Yourdon, Object-Oriented Design, Introduction to Object-Oriented Analysis and Design,
Yourdon Press, 1991. Prentice-Hall, 1998.

(Cro84) N. Cross, Developments in Design Methodology, (McC93) S. McConnell, Code Complete: A Practical
John Wiley & Sons, 1984. Handbook of Software Construction, Microsoft Press,
1993.
(DSo99) D.F. DSouza and A.C. Wills, Objects,
Components, and Frameworks with UML The Catlisis (Pag00) M. Page-Jones, Fundamentals of Object-Oriented
Approach, Addison-Wesley, 1999. Design in UML, Addison-Wesley, 2000.

r
(Dem99) T. DeMarco, The Paradox of Software (Pet92) H. Petroski, To Engineer Is Human: The Role of
Architecture and Design, Stevens Prize Lecture, Aug. Failure in Successful Design, Vintage Books, 1992.
1999. (Pre95) W. Pree, Design Patterns for Object-Oriented

do
(Fen98) N.E. Fenton and S.L. Pfleeger, Software Metrics: Software Development, Addison-Wesley and ACM Press,
A Rigorous & Practical Approach, second ed., 1995.
Internacional Thomson Computer Press, 1998. (Rie96) A.J. Riel, Object-Oriented Design Heuristics,
(Fow99) M. Fowler, Refactoring: Improving the Design of Addison-Wesley, 1996.
Existing Code, Addison-Wesley, 1999. (Rum91) J. Rumbaugh et al., Object-Oriented Modeling
(Fow03) M. Fowler, Patterns of Enterprise Application and Design, Prentice-Hall, 1991.
Architecture, Addison-Wesley, 2003. (Sha96) M. Shaw and D. Garlan, Software Architecture:
(Gam95) E. Gamma et al., Design Patterns: Elements of Perspectives on an Emerging Discipline, Prentice-Hall,
Reusable Object-Oriented Software, Addison-Wesley, 1996.
rra
1995. (Som05) I. Sommerville, Software Engineering, seventh
(Hut94) A.T.F. Hutt, Object Analysis and Design ed., Addison-Wesley, 2005.
Comparison of Methods. Object Analysis and Design (Wie98) R. Wieringa, A Survey of Structured and Object-
Description of Methods, John Wiley & Sons, 1994. Oriented Software Specification Methods and
(Jac99) I. Jacobson, G. Booch, and J. Rumbaugh, The Techniques, ACM Computing Surveys, vol. 30, iss. 4,
Unified Software Development Process, Addison-Wesley, 1998, pp. 459-527.
1999. (Wir90) R. Wirfs-Brock, B. Wilkerson, and L. Wiener,
Designing Object-Oriented Software, Prentice-Hall, 1990.
Bo
APNDICE B. LISTA DE ESTNDARES

(IEEE610.12-90) IEEE Std 610.12-1990 (R2002), IEEE


Standard Glossary of Software Engineering Terminology,
IEEE, 1990.
(IEEE1016-98) IEEE Std 1016-1998, IEEE Recommended
Practice for Software Design Descriptions, IEEE, 1998.
(IEEE1028-97) IEEE Std 1028-1997 (R2002), IEEE
Standard for Software Reviews, IEEE, 1997.
(IEEE1471-00) IEEE Std 1471-2000, IEEE Recommended
Practice for Architectural Descriptions of Software-
Intensive Systems, Architecture Working Group of the
Software Engineering Standards Committee, 2000.

r
(IEEE12207.0-96) IEEE/EIA 12207.0-
1996//ISO/IEC12207:1995, Industry Implementation of

do
Int. Std. ISO/IEC 12207:95, Standard for Information
Technology-Software Life Cycle Processes, vol. IEEE,
1996.
(ISO9126-01) ISO/IEC 9126-1:2001, Software
Engineering-Product Quality-Part 1: Quality Model, ISO
and IEC, 2001.
(ISO15026-98) ISO/IEC 15026-1998 Information
Technology System and Software Integrity Levels, ISO
and IEC, 1998.
rra
Bo
Bo
rra
do
r
CAPTULO 4
CONSTRUCCIN DEL SOFTWARE

ACRNIMOS Software est vinculada de cerca a la Construccin del


Software.
Entre las Disciplinas Descritas de la Ingeniera del
OMG Grupo de Gestin de Objetos Software el KA de Construccin del Software es lo ms
UML Lenguaje Unificado de Modelado parecido a la ciencia informtica en su uso del
conocimiento de algoritmos y de las prcticas detalladas
de codificacin, ambas son consideradas, con

r
INTRODUCCIN
frecuencia, como pertenecientes al dominio de la
El trmino construccin del software hace referencia a ciencia informtica. Tambin est relacionada con la
la creacin detallada de software operativo y gestin del proyecto en la medida en que la gestin de

do
significativo, por medio de una combinacin de la construccin pueda presentar retos considerables.
codificacin, verificacin, pruebas unitarias, pruebas de
integracin y depuracin. DESCOMPOSICIN DE LOS TEMAS DE
El rea de Conocimiento de la Construccin del CONSTRUCCIN DEL SOFTWARE
Software est vinculada a todas las otras KAs (reas de
Conocimiento), ms fuertemente al Diseo del Software A continuacin se presenta la descomposicin del KA
y a las Pruebas del Software. Esto se debe a que el de la Construccin del Software junto con breves
proceso mismo de construccin del software cubre tanto descripciones de los temas ms importantes asociados a
el diseo significativo de software como las actividades este. La figura 1 ofrece una representacin grfica de la
de pruebas. Tambin utiliza las salidas del diseo y descomposicin de alto nivel de las divisiones de este
KA.
rra
proporciona una de las entradas para las pruebas,
consistiendo estas actividades en el diseo y en las
pruebas, y en este caso no en las KAs. Las fronteras 1. Fundamentos de la Construccin del Software
detalladas entre el diseo, la construccin y las pruebas Los fundamentos de la construccin del software
(si es que existen) varan dependiendo de los procesos incluyen:
de ciclo de vida del software utilizados en un proyecto. Minimizar la complejidad
A pesar de que se pueda realizar parte del diseo Anticiparse a los cambios
detallado antes de la construccin, mucho del trabajo Construir para verificar
del diseo se lleva a cabo durante la actividad misma de Estndares en la construccin
la construccin. Por lo que el KA de Construccin del
Software est vinculado muy de cerca al KA de Diseo Los tres primeros conceptos se aplican tanto al diseo
del Software.
Bo

como a la construccin. Las siguientes secciones


Por medio de la construccin los ingenieros del definen estos conceptos y describen cmo se aplican a
software realizan tanto pruebas unitarias, como pruebas la construccin.
de integracin de su trabajo. De tal manera que el KA
de Construccin del Software est tambin vinculada de
1.1 Minimizar la complejidad
cerca al KA de Pruebas del Software.
La construccin del software, por lo general, produce el [Bec99; Ben00; Hun00; Ker99; Mag93; McC04]
mayor nmero de elementos de configuracin que se El principal factor que hace que la gente utilice
necesitan gestionar en un proyecto de software ordenadores consiste en la limitadsima capacidad que
(archivos de cdigo fuente, contenido, casos de tiene para retener estructuras complejas e informacin
pruebas, etc.). De este modo, el KA de Construccin del en su memoria operativa, especialmente durante largos
Software tambin est vinculado de cerca al KA de perodos de tiempo. Esto lleva a uno de los ms fuertes
Gestin de la Configuracin del Software. impulsores de la construccin del software: minimizar
Dado que la construccin del software tiene una gran la complejidad. La necesidad de reducir la complejidad
dependencia de las herramientas y de los mtodos, y de se aplica esencialmente a todo aspecto de la
que se trata probablemente del KA que ms construccin del software, y es de crtica importancia
herramientas tienen y utiliza, est vinculada al KA de para el proceso de verificacin y pruebas de las
Herramientas y Mtodos de la Ingeniera del Software. construcciones del software.
Aunque la calidad del software es importante en todas En la construccin del software slo se alcanza una
las KAs, el cdigo es el ltimo entregable de un reducida complejidad por medio del nfasis en la
proyecto de software y, por tanto, la Calidad del
creacin de cdigo que sea simple y legible, y no tanto 1.4 Estndares en la construccin
inteligente.
[IEEE12207-95; McC04]
Se logra minimizar la complejidad mediante el uso de
Los estndares que afectan directamente a elementos de
estndares, como se ve en el apartado 1.4 Estndares de
la construccin incluyen:
Construccin, y mediante numerosas tcnicas
especficas que estn resumidas en el apartado 3.3
Codificacin. Tambin se apoya en las tcnicas de Mtodos de comunicacin (por ejemplo, estndares
calidad enfocadas a la construccin resumidas en el para los formatos de los documentos y de los
apartado 3.5 Calidad de la Construccin. contenidos)
Programacin de lenguajes (por ejemplo,
1.2 Anticiparse a los cambios estndares de lenguaje para lenguajes como Java y
C++)
[Ben00; Ker99; McC04] Plataformas (por ejemplo, estndares de interfaces
La mayora del software cambiar a lo largo del tiempo, del programador para llamadas al sistema
y el anticiparse a los cambios dirige muchos aspectos de operativo)

r
la construccin del software. El software es Herramientas (por ejemplo, estndares
inevitablemente parte de los ambientes externos que diagramticos para notaciones como UML
cambian continuamente, y los cambios en esos (Lenguaje Unificado de Modelado))
ambientes externos afectan al software de diversos

do
modos. Uso de estndares externos. Construir depende del uso
El anticiparse a los cambios se apoya en muchas de estndares externos para los lenguajes de
tcnicas especficas resumidas en el apartado 3.3 construccin, las herramientas de construccin, las
Codificacin. interfaces tcnicas, y las interacciones entre la
Construccin del Software y las otras KAs. Los
1.3 Construir para verificar estndares provienen de numerosas fuentes, incluyendo
[Ben00; Hun00; Ker99; Mag93; McC04] las especificaciones de interfaz del hardware y del
Construir para verificar significa construir software de software, tales como el Grupo de Gestin de Objetos
tal manera que los ingenieros del software puedan sacar (OMG) y las organizaciones internacionales tales como
a relucir los fallos con facilidad al estar escribiendo el la IEEE o ISO.
rra
cdigo, adems de cuando realizan pruebas Uso de estndares internos. Los estndares tambin
independientes y actividades operacionales. Las pueden crearse partiendo de una base organizacional a
tcnicas especficas que sirven de base para construir un nivel corporativo o para su uso en proyectos
con vistas a verificar incluyen el seguimiento de especficos. Estos estndares permiten la coordinacin
estndares de codificacin que permitan las revisiones de actividades de grupo, el minimizar la complejidad, el
del cdigo, las pruebas unitarias, la organizacin del anticipar los cambios y el construir para verificar.
cdigo que permita pruebas automticas, y el uso
restringido de estructuras de lenguaje que sean
complejas o difciles de entender, entre otras.
Bo

Figura 1 Descomposicin de los temas del KA de Construccin de Software


2.3 Medicin de la Construccin
2. Gestin de la Construccin
[McC04]
2.1 Modelos de Construccin [Bec99; McC04] Se pueden medir numerosas actividades de
construccin y artefactos, incluidos el cdigo
Se han creado numerosos modelos para el desarrollo del desarrollado, el cdigo modificado, el cdigo
software, algunos de los cuales ponen ms nfasis en la reutilizado, el cdigo destruido, la complejidad del
construccin que otros.
cdigo, las estadsticas de la inspeccin del cdigo, las
Algunos modelos son ms lineales que otros desde el tasas de rectificacin de errores y de identificacin de
punto de vista de la construccin tales como los errores, y los horarios. Estas mediciones pueden ser
modelos en cascada y los del ciclo de vida de entregas
tiles para propsitos de gestin de la construccin,
por etapas. Estos modelos tratan la construccin como asegurando la calidad durante la construccin,
una actividad que sucede slo despus de que se haya mejorando los procesos de construccin, amn de otras
completado un significativo trabajo con los razones.
prerrequisitos incluyendo un trabajo detallado sobre
los requisitos, un extensivo trabajo sobre el diseo y

r
3. Consideraciones Prcticas
una planificacin detallada. Los enfoques ms lineales
tienden a poner el nfasis en las actividades que La construccin es una actividad en la cual el software
preceden a la construccin (requisitos y diseo), y se las tiene que ver con restricciones arbitrarias y

do
tienden a crear separaciones ms marcadas entre las caticas del mundo real, y hacer exactamente lo que
actividades. En estos modelos, la codificacin sera el piden. Gracias a su proximidad a las restricciones del
punto de mayor nfasis de la construccin. mundo real, la construccin est guiada por
Otros modelos son ms iterativos, tales como el consideraciones prcticas ms que otras KAs, y la
prototipado evolucionista, Programacin Extrema y ingeniera del software es quizs el rea de construccin
Scrum. Estos enfoques tienden a tratar la ms artesanal.
construccin como una actividad que ocurre en estos
momentos con otras actividades de desarrollo del 3.1 Diseo de la Construccin
software incluyendo los requisitos, el diseo y la
planificacin, o que se traslapa con ellas. Estos [Bec99; Ben00; Hun00; IEEE12207-95; Mag93;
McC04]
enfoques tienden a mezclar el diseo, la codificacin y
rra
las actividades de pruebas, y con frecuencia tratan la Algunos proyectos asignan una mayor actividad de
combinacin de actividades como una construccin. diseo a la construccin; otros a una fase que se centra
explcitamente en el diseo. Independientemente de su
Por consiguiente, lo que est considerado como
construccin depende hasta cierto grado del modelo asignacin exacta, en el nivel de construccin tambin
de ciclo de vida utilizado. se trabaja algo el diseo detallado y ese trabajo de
diseo tiende a estar dictaminado por restricciones
inamovibles impuestas por un problema del mundo real
2.2 Planificacin de la Construccin
que est siendo afrontado por el software.
[Bec99; McC04] As como los obreros de una construccin que
La eleccin de un mtodo de construccin es un aspecto construyen una estructura fsica tienen que realizar
clave de la planificacin de la actividad de modificaciones a pequea escala para cubrir huecos no
construccin. La eleccin de un mtodo de construccin previstos en los planes del constructor, los obreros de la
Bo

afecta hasta dnde se realizan los prerrequisitos de construccin del software tendrn que hacer
construccin, el orden en el que se realizan, y el grado modificaciones en una mayor o menor escala para
hasta el que se espera que se completen antes de que revelar los detalles del diseo de software durante la
comience el trabajo de construccin. construccin.
El modo como se afronta la construccin afecta a la Los detalles de la actividad de diseo a nivel de la
habilidad del proyecto para reducir la complejidad, construccin son esencialmente los mismos que se
anticipar cambios y construir para verificar. Cada uno describen en el KA del Diseo del Software, pero se
de estos objetivos puede tambin afrontarse en los aplican en una escala inferior.
niveles de proceso, requisitos y diseo pero tambin
estarn influenciados por la eleccin de un mtodo de 3.2 Lenguajes de Construccin
construccin.
La planificacin de la construccin tambin define el [Hun00; McC04]
Los lenguajes de construccin incluyen todos los tipos
orden en el que se crean e integran, segn el mtodo
elegido, los componentes, los procesos de gestin de la de comunicacin mediante los cuales un humano puede
calidad del software, la asignacin de tareas a especificar una solucin ejecutable para un problema de
ingenieros del software especficos y el resto de las un ordenador.
tareas. El tipo ms simple de lenguaje de construccin es un
lenguaje de configuracin en el que los ingenieros del
software eligen de entre un conjunto limitado de
opciones predefinidas para crear nuevas o tpicas
instalaciones del software. Los archivos de la principal tarea de programacin es simplemente
configuracin basados en texto utilizados tanto en los construir y ajustar una interfaz visual a un programa,
sistemas operativos de Windows como de Unix son cuyo comportamiento detallado ha sido definido
ejemplos de esto, y otro ejemplo son las listas de anteriormente.
seleccin en forma de men de algunos generadores de
programas. 3.3 Codificacin
Los lenguajes de herramientas se utilizan para construir
aplicaciones partiendo de las herramientas (conjuntos [Ben00; IEEE12207-95; McC04]
integrados de partes reutilizables especficas de las Las consideraciones siguientes se aplican a la actividad
de construccin del cdigo del software:
aplicaciones), y son ms complejos que los lenguajes de
configuracin. Los lenguajes de herramientas pueden Tcnicas para crear cdigo fuente comprensible,
definirse explcitamente como lenguajes de que incluye la asignacin de nombres y el esquema
programacin de aplicaciones (por ejemplo, scripts), o del cdigo fuente
pueden simplemente estar implcitos en el conjunto de Utilizacin de clases, tipos enumerados, variables,
interfaces de las herramientas. constantes predefinidas, y otras entidades similares
Utilizacin de estructuras de control

r
Los lenguajes de programacin son el tipo ms flexible
de lenguaje de construccin. Tambin son los que Tratamiento de las condiciones de error tanto lo
menos informacin contienen acerca de las reas errores planeados como las excepciones (la entrada

do
especficas de la aplicacin y los procesos de desarrollo, de datos malos, por ejemplo)
y por tanto requieren el mayor entrenamiento y destreza Prevencin de brechas en la seguridad a nivel de
posibles para utilizarlo con eficacia. cdigo (el bfer o el ndice de la matriz se
Existen tres tipos generales de notacin utilizados para desborda, por ejemplo)
los lenguajes de programacin, a saber: Utilizacin de recursos por medio del uso de
Lingsticos mecanismos de exclusin y disciplina en el acceso
Formales serial a recursos reutilizables (incluyendo threads o
Visuales bloqueos de bases de datos)
Las notaciones lingsticas se distinguen en particular Organizacin del cdigo fuente (en declaraciones,
por la utilizacin de cadenas de texto del tipo palabra rutinas, clases, paquetes u otras estructuras)
para representar construcciones complejas de software, Documentacin del cdigo
rra
y por la combinacin en patrones de tales cadenas del Puesta a punto del cdigo
tipo palabra que tienen una sintaxis del tipo sentencia.
Utilizadas adecuadamente, cada una de estas cadenas 3.4 Pruebas de Construccin
debera tener una fuerte connotacin ofreciendo un
[Bec99; Hun00; Mag93; McC04]
entendimiento intuitivo inmediato de lo que sucedera
Construir implica dos tipos de pruebas, que por lo
cuando se ejecutara la construccin del software
general las realiza el mismo ingeniero del software que
subyacente.
escribi el cdigo:
Las notaciones formales se apoyan menos en los
significados de las palabras y cadenas de texto Pruebas unitarias
intuitivos y de todos los das, y ms en las definiciones Pruebas de integracin
respaldadas por definiciones precisas, sin ambigedad, El propsito de las pruebas de construccin es reducir la
brecha entre el tiempo en el que se introducen fallos en
Bo

y formales (o matemticas). Las notaciones de


construccin formal y los mtodos formales estn en el el cdigo y el tiempo en el que se detectan esos fallos.
corazn de la mayora de las formas de programacin En algunos casos, las pruebas de construccin se llevan
de sistemas, donde la precisin, el comportamiento del a cabo despus de la escritura del cdigo. En otros
tiempo, y la capacidad de realizar pruebas son ms casos, se pueden elaborar casos de pruebas antes de que
importantes que la facilidad de mapeo a un lenguaje se escriba el cdigo.
natural. Las construcciones formales tambin utilizan Es tpico de las pruebas de construccin el incluir un
modos de combinar smbolos definidos con precisin subconjunto de tipos de pruebas, que se describen en el
que evitan la ambigedad de muchas construcciones del KA de Pruebas del Software. Por ejemplo, no es tpico
lenguaje natural. de las pruebas de construccin el incluir las pruebas del
Las notaciones visuales se apoyan bastante poco en las sistema, las pruebas alfa, las pruebas beta, las pruebas
notaciones orientadas al texto tanto de la construccin de estrs, las pruebas de construccin, las pruebas de
lingstica como de la formal, y en cambio s se apoyan posibilidad de uso, u otros tipos de pruebas ms
en una interpretacin visual directa y en la colocacin especializadas.
de las entidades visuales que representan al software Se han publicado dos estndares sobre dicho tema:
subyacente. La construccin visual tiende a estar un IEEE Std 829-1998, IEEE Standard for Software Test
tanto limitada por la dificultad de hacer declaraciones Documentation and IEEE Std 1008-1987, IEEE
complejas utilizando slo el movimiento de entidades Standard for Software Unit Testing.
visuales en un despliegue. Sin embargo, tambin puede Se pueden ver tambin los sub-temas correspondientes
convertirse en un arma poderosa en los casos en donde en el KA de Pruebas del Software: 2.1.1 Pruebas
Unitarias y 2.1.2 Pruebas de Integracin para un El cdigo paso a paso
material de referencia ms especializado. Utilizacin de aserciones
Depuracin
3.5 Reutilizacin Revisiones Tcnicas (ver tambin el KA de la
[IEEE1517-99; Som05]. Calidad del Software, sub-punto 2.3.2 Revisiones
Tal y como se afirma en la introduccin del (IEEE1517- Tcnicas)
99): Anlisis esttico (IEEE1028) (ver tambin el KA
El implementar la utilizacin del software conlleva de la Calidad del Software, punto 2.3 Revisiones y
algo ms que crear y utilizar libreras de recursos. Auditorias)
Requiere formalizar la prctica de la reutilizacin por
medio de la integracin de procesos y actividades de La tcnica o tcnicas especficas elegidas dependen de
reutilizacin en el ciclo de vida del software. Sin la naturaleza del software que se est construyendo, as
embargo, la reutilizacin tiene suficiente importancia en como del conjunto de habilidades de los ingenieros del
la construccin del software como para dedicarle aqu software que llevan a cabo la construccin.
Las actividades de calidad de la construccin se

r
un tema.
Las tareas relacionadas con la reutilizacin en la distinguen de las otras actividades de calidad por su
construccin del software durante su codificacin y enfoque. Las actividades de calidad de la construccin
pruebas son: se centran en el cdigo y en los artefactos que estn

do
estrechamente relacionados con el cdigo: diseos en
La seleccin de unidades, bases de datos, pequea escala en oposicin a otros artefactos que
procedimientos de pruebas o datos de pruebas estn menos directamente ligados al cdigo, tales como
reutilizables. requisitos, diseos de alto nivel y planes.
La evaluacin de la posibilidad de reutilizacin del
cdigo o de las pruebas. 3.7 Integracin
Comunicar la informacin sobre reutilizacin [Bec99; IEEE12207-95; McC04]
realizada en el cdigo nuevo, los procedimientos de Una actividad clave durante la construccin es la
pruebas o los datos de pruebas. integracin de rutinas, clases, componentes y
subsistemas construidos por separado. Adems, un
rra
3.6 Calidad de la Construccin sistema particular del software podra necesitar ser
integrado con otros sistemas de software o de hardware.
[Bec99; Hun00; IEEE12207-95; Mag93; McC04]
Los intereses relacionados con la integracin de la
Existen numerosas tcnicas para garantizar la calidad
construccin incluyen planificar la secuencia en la que
del cdigo mientras est siendo elaborado. Las tcnicas
se integrarn los componentes, crear andamiajes que
ms importantes utilizadas para la construccin
soporten versiones provisionales del software,
incluyen:
determinar el grado de pruebas y la calidad del trabajo
realizado sobre los componentes antes de que sean
Las pruebas unitarias y las pruebas de integracin
integrados, y determinar los puntos en el proyecto en
(tal y como se describen en el punto 3.4 Pruebas de
los que se prueban las versiones provisionales del
Construccin)
software.
El desarrollo de primero-haz-pruebas (ver tambin
Bo

el KA de las Pruebas del Software, punto 2.2


Objetivos de las Pruebas)
MATRIZ DE TEMAS VS. MATERIAL DE REFERENCIA

[Mag93]
12207.0]
[Hun00]

[Som05]
[Mcc04]
[Ben00]

[Ker99]
[Bec99]

[IEEE

[IEEE
1517]
1. Fundamentos de
Construccin de
Software
c2, c3,
c7-c9,
c24,
1.1 Minimizar la

r
c17 c2, c3 c7,c8 c2, c3 c6 c27,
Complejidad
c28,
c31,

do
c32-c34

c3-c5,
1.2 Anticipacin a c11,c13- c24,
c2, c9
Cambios c14 c31,
c32, c34
c21,
c8, c20-
1.3 Construir para c23, c2,c3,
c4 c1, c5, c6 c23,
verificar c34, c5,c7
c31-c34
c43
rra
1.4 Estndares de
X c4
Construccin
2. Gestin de la
Construccin
2.1 Modelos de c2, c3,
c10
Construccin c27, c29
c12, c3,
2.2 Plan de
c15, c4,c21,
Construccin
c21 c27-c29
2.3 Mtricas de la
c25, c28
construccin
Bo

3. Consideraciones
Prcticas
3.1 Diseo de la c18-c10, c3, c5,
c17 c33 X c6
Construccin p175-6 c24
3.2 Lenguajes de c12,
C4
Construccin c14-c20
c5-c19,
3.3 Codificacin c6-c10 X
c25-c26
3.4 Pruebas de c34,
c18 X c4 c22, c23
Construccin c43
3.5 Reusabilidad X c14
3.6 Calidad de c4, c8, c20-
c18 c18 X
Construccin c6, c7 c25
3.7 Integracin c16 X c29
REFERENCIAS RECOMENDADAS PARA LA [IEEE12207.0-96] IEEE/EIA 12207.0-
1996//ISO/IEC12207:1995, Industry Implementation of
CONSTRUCCIN DE SOFTWARE
Int. Std.ISO/IEC 12207:95, Standard for Information
Technology-Software Life Cycle Processes, IEEE, 1996.
[Bec99] K. Beck, Extreme Programming Explained: [Ker99a] B.W. Kernighan and R. Pike, The Practice of
Embrace Change, Addison-Wesley, 1999, Chap. 10, 12, Programming, Addison-Wesley, 1999, Chap. 2, 3, 5, 6, 9.
15, 16-18, 21. [Mag93] S. Maguire, Writing Solid Code: Microsofts
[Ben00a] J. Bentley, Programming Pearls, second ed., Techniques for Developing Bug-Free C Software,
Addison-Wesley, 2000, Chap. 2-4, 6-11, 13, 14, pp. 175- Microsoft Press, 1993, Chap. 2-7.
176. [McC04] S. McConnell, Code Complete: A
[Hun00] A. Hunt and D. Thomas, The Pragmatic PracticalHandbook of Software Construction, Microsoft
Programmer, Addison-Wesley, 2000, Chap. 7, 8 12, 14- Press, second ed., 2004.
21, 23, 33, 34, 36-40, 42, 43. [Som05] I. Sommerville, Software Engineering, seventh
[IEEE1517-99] IEEE Std 1517-1999, IEEE Standard for ed., Addison-Wesley, 2005.
Information Technology-Software Life Cycle Processes-
Reuse Processes, IEEE, 1999.

r
do
rra
Bo
APNDICE A. LISTA DE LECTURAS ADICIONALES. (How02) M. Howard and D.C. Leblanc, Writing Secure
Code, Microsoft Press, 2002.
(Bar98) T.T. Barker, Writing Software Documentation: A (Hum97b) W.S. Humphrey, Introduction to the Personal
Task-Oriented Approach, Allyn & Bacon, 1998. Software Process, Addison-Wesley, 1997.
(Bec02) K. Beck, Test-Driven Development: By Example, (Mey97) B. Meyer, Object-Oriented Software
Addison-Wesley, 2002. Construction, second ed., Prentice Hall, 1997, Chap. 6, 10,
(Fow99) M. Fowler and al., Refactoring: Improving the 11.
Design of Existing Code, Addison-Wesley, 1999. (Set96) R. Sethi, Programming Languages: Concepts &
Constructs, second ed., Addison-Wesley, 1996, Parts II-V.

r
do
rra
Bo
APNDICE B. LISTA DE ESTNDARES

(IEEE829-98) IEEE Std 829-1998, IEEE Standard for


Software Test Documentation, IEEE, 1998.
(IEEE1008-87) IEEE Std 1008-1987 (R2003), IEEE
Standard for Software Unit Testing, IEEE, 1987.
(IEEE1028-97) IEEE Std 1028-1997 (R2002), IEEE
Standard for Software Reviews, IEEE, 1997.
(IEEE1517-99) IEEE Std 1517-1999, IEEE Standard for
Information Technology-Software Life Cycle Processes-
Reuse Processes, IEEE, 1999.
(IEEE12207.0-96) IEEE/EIA 12207.0-
1996//ISO/IEC12207:1995, Industry Implementation of
Int. Std.ISO/IEC 12207:95, Standard for Information
Technology-Software Life Cycle Processes, IEEE, 1996.

r
do
rra
Bo
Bo
rra
do
r
CAPTULO 5
PRUEBAS DEL SOFTWARE

ACRNIMOS apropiado para un conjunto de condiciones


particulares es un problema complejo; en la prctica
SRET Pruebas Orientadas a la Confiabilidad del se usa la experiencia en el diseo de pruebas y
Software tcnicas de anlisis de riesgo.
Esperado: Debera se posible, aunque a veces no sea
INTRODUCCIN fcil, decidir si el resultado observado de la

r
ejecucin de un programa es aceptable o no, porque
Hacer pruebas es una actividad que tiene el objetivo de si no el esfuerzo de realizar las pruebas sera intil.
evaluar y mejorar la calidad del producto, identificando El comportamiento observado se puede comprobar

do
defectos y problemas. con los resultados esperados por el usuario
Las pruebas del software consisten en verificar el (normalmente conocido como pruebas de
comportamiento de un programa dinmicamente a travs validacin), con las especificaciones (pruebas de
de un grupo finito de casos de prueba, debidamente verificacin), o, finalmente, con el comportamiento
seleccionados del, tpicamente, mbito de ejecuciones anticipado de requerimientos implcitos o
infinito, en relacin al comportamiento esperado. En la expectativas razonables. Vea ms detalles en el KA
definicin anterior las palabras en itlica se corresponden de Requerimientos del Software, punto 6.4 Pruebas
con aspectos esenciales en la identificacin del rea de de Aceptacin.
Conocimiento de las Pruebas del Software. En La apreciacin de las pruebas del software ha
particular: evolucionado hacia una forma ms constructiva. Ya no
rra
Dinmicamente: Este trmino significa que hacer se asume que realizar pruebas es una tarea que empieza
pruebas siempre supone ejecutar el programa con solamente cuando la fase de programacin se ha
entrada de datos (valorados). Para precisar, es completado, y que tiene el nico propsito de detectar
preciso afirmar que la entrada de valores no es errores. Las pruebas del software se ven ahora como una
siempre suficiente para definir una prueba, dado que actividad que debera estar presente durante todo el
un sistema complejo y no determinista podra tener proceso de desarrollo y mantenimiento y es en s misma
diferentes comportamientos con las misma entrada una parte importante de la construccin del producto. Es
de datos, dependiendo del estado en el que se ms, la planificacin de las pruebas debera empezar en
encuentre. En cualquier caso, en este KA, las primeras etapas del proceso de requisitos, mientras
mantendremos el trmino de entrada de datos, que los planes y procedimientos de pruebas deberan
asumiendo la convencin de que el trmino incluye desarrollare y posiblemente refinarse sistemticamente
un estado del sistema especfico, en los casos en que segn avanza el desarrollo. La planificacin de las
Bo

sea necesario. Existen otras tcnicas pruebas y las propias actividades de diseo constituyen
complementarias a las pruebas, aunque diferentes, una informacin muy til que ayuda a los diseadores de
descritas en el KA sobre la Calidad del Software. software a identificar debilidades potenciales (tales como
Finito: Incluso en programas sencillos, tericamente elementos del diseo que han pasado desapercibidos,
podra haber tantas pruebas que realizar, que hacer contradicciones de diseo, u omisiones o ambigedades
pruebas exhaustivas podra llevar meses o aos. Esta en la documentacin).
es la razn por la que en la prctica el grupo En la actualidad se considera que la prevencin es la
completo de pruebas se podra considerar infinito. actitud adecuada en lo que respecta a la calidad:
Hacer pruebas siempre supone un compromiso entre obviamente es mejor evitar problemas que solucionarlos.
recursos y calendarios de trabajo limitados, por un Realizar pruebas debe verse como un medio para
lado, y necesidades inherentes de pruebas ilimitadas, verificar, no slo si la prevencin ha sido efectiva, si no
por otro. para identificar fallos en aquellos casos en los que, por
Seleccionados: La diferencia esencial entre las alguna razn, no lo ha sido. Aunque quizs sea obvio,
distintas tcnicas de pruebas propuestas se encuentra vale la pena reconocer que, incluso despus de una
en cmo se escoge el conjunto de pruebas. Los campaa de pruebas extensiva, el software an podra
ingenieros informticos deben ser conscientes de contener errores. Las acciones de mantenimiento
que criterios de seleccin distintos pueden producir correctivas proporcionan la solucin a errores en el
grados de efectividad muy diferentes. La forma de software despus de que ste ha sido entregado. El KA
identificar el criterio de seleccin de pruebas ms
del Mantenimiento del Software aborda los temas pruebas para software grande, mientras que el segundo
relacionados con el mantenimiento del software. (2.2) considera las pruebas para situaciones o
propiedades especficas y se conoce como objetivos de
En el KA del Mantenimiento del Software (vase punto
las pruebas. No todos los tipos de pruebas se pueden
3.3 Tcnicas de Gestin de Calidad del Software), las
aplicar a todos los productos de software, tampoco se
tcnicas de gestin de la calidad del software se dividen
han enumerado todos los tipos posibles.
entre tcnicas estticas (sin ejecucin de cdigo) y
tcnicas dinmicas (con ejecucin de cdigo). Ambas El objeto y los objetivos de las pruebas determinan la
categoras son tiles. Este KA se centra en tcnicas forma en que un grupo de pruebas se identifica, en lo que
dinmicas. se refiere a su consistencia cuntas pruebas son
suficientes para conseguir el objetivo especificado y su
Las pruebas del software tambin estn relacionadas con
composicin qu casos de prueba se deberan
la construccin del software (vase la seccin 3.4
seleccionar para conseguir el objetivo especificado
Construccin de Pruebas). Las pruebas de unidad y de
(aunque normalmente la parte para conseguir el
integracin estn ntimamente relacionadas con la
objetivo especificado es implcita y slo se usa la
construccin del software, si no son parte de la misma.

r
primera parte de las dos frases anteriores). Los criterios
para responder a la primera cuestin se denominan
DIVISIN DE TEMAS
criterios de idoneidad las pruebas, mientras que los que
La descomposicin de temas en el KA de las Pruebas del se refieren a la segunda cuestin se denominan criterios

do
Software se muestra en la Figura 1. de seleccin de las pruebas.
La primera subrea describe los Fundamentos de las En las ltimas dcadas se han desarrollado varias
Pruebas del Software. Cubre las definiciones bsicas del Tcnicas de Pruebas y an se estn proponiendo nuevas
rea de pruebas del software, la terminologa bsica y los tcnicas. El conjunto de pruebas comnmente aceptadas
trminos clave, as como las relaciones con otras estn enumeradas en la subrea 3.
actividades. Las Mediciones de Pruebas se enumeran en la subrea 4.
Finalmente, los aspectos relacionados con el Proceso de
La segunda subrea, Niveles de Pruebas, est formada las Pruebas estn enumeradas en la subrea 5
por dos puntos ortogonales: el primero (2.1) enumera los
niveles en que tradicionalmente se subdividen las
rra
Bo

Figura 1 Divisin de los temas para el KA de las Pruebas del Software


Realizar pruebas consiste en observar un conjunto de
1. Fundamentos de las Pruebas del Software ejecuciones del programa. Hay diferentes objetivos que
1.1 Terminologa relacionada con las pruebas nos pueden guiar en la seleccin del conjunto de
pruebas: la efectividad del grupo de pruebas slo se
1.1.1 Definiciones de pruebas y terminologa puede evaluar en funcin del objetivo seleccionado.
relacionada
[Bei90:c1; Jor02:c2; Lyu96:c2s2.2] 1.2.3 Realizar pruebas para la identificacin de
(IEEE610.12-90) defectos
[Bei90:c1; Kan99:c1]
Vea una introduccin detallada del KA de las Pruebas
del Software en las referencias recomendadas. Cuando realizamos pruebas para la identificacin de
defectos, una prueba es satisfactoria si produce un error
en el sistema. Es ste un enfoque completamente
1.1.2 Errores Vs. Fallos [Jor02:c2; Lyu96:c2s2.2;
Per95:c1; Pfl01:c8] (IEEE610.12-90; diferente al de realizar pruebas para demostrar que el
software satisface las especificaciones u otro conjunto
IEEE982.1-88)
de propiedades deseadas, en cuyo caso una prueba

r
En la bibliografa sobre Ingeniera del Software se usan satisfactoria es aquella en la que no se observan errores
diversos trminos para describir un funcionamiento (al menos significativos).
incorrecto, particularmente falta, error, fallo y otros
1.2.4 El problema del orculo

do
trminos. Esta terminologa se define detalladamente en
el estndar IEEE 610.12-1990, Standard Glossary of [Bei90:c1] (Ber96, Wey83)
Software Engineering Terminology (IEEE610-90) y Un orculo es cualquier agente (humano o mecnico)
tambin se discute en el KA de la Calidad del Software. que decide si un programa se comporta correctamente
Es esencial distinguir claramente entre la causa de un durante una prueba y consecuentemente produce un
funcionamiento incorrecto, en cuyo caso se usan veredicto de superada o fallada. Hay varios tipos
trminos como error y defecto, y los efectos no diferentes de orculos, y la automatizacin de orculos
deseados observados en los servicios proporcionados puede ser muy difcil y cara.
por un sistema, que se llamarn fallos. Hacer pruebas
puede descubrir fallos, pero es el error el que se puede, 1.2.5 Limitaciones tericas y prcticas de las
y se debe, eliminar. pruebas [Kan99:c2] (How76)
rra
En cualquier caso, debera aceptarse que no es siempre La teora de pruebas advierte en contra de un nivel
posible identificar unvocamente las causas de un fallo. injustificado de confianza en una serie de pruebas
No existe ningn criterio terico que pueda usarse para superadas. Desafortunadamente, la mayor parte de los
determinar qu error produce el fallo observado. Podra resultados establecidos en la teora de pruebas son
decirse que hay que arreglar el error para eliminar el negativos, en el sentido de que establecen aquello que
problema, pero otros cambios tambin podran la prueba no puede conseguir, en vez de lo que
funcionar. Para evitar ambigedades, algunos autores consigui. La ms famosa cita a este respecto es el
prefieren hablar de entradas que causan fallos (Fra98) aforismo de Dijkstra que dice las pruebas de un
en vez de errores o lo que es lo mismo, aquellos programa se pueden usar para mostrar las presencia de
grupos de entradas de datos que hacen que el fallo errores, pero nunca para demostrar su ausencia. La
aparezca. razn obvia es que realizar un grupo completo de
Bo

pruebas no es posible en el software real. Como


1.2 Cuestiones clave consecuencia, las pruebas deben dirigirse en funcin de
1.2.1 Criterios de seleccin de pruebas/Criterios de los riesgos y por tanto pueden verse como una
idoneidad de pruebas (o finalizacin de estrategia de gestin de riesgo.
pruebas) 1.2.6 El problema de los caminos no alcanzables
[Pfl01:c8s7.3; Zhu97:s1.1] (Wey83; Wey91; [Bei90:c3]
Zhu97)
Los caminos no alcanzables son aquellos caminos de
Un criterio de seleccin de pruebas es un medio para control que no pueden ejecutarse para ninguna entrada
decidir cules deben ser los casos de prueba adecuados. de datos. Son un problema importante en las pruebas
Un criterio de seleccin se puede usar para seleccionar orientadas por caminos y particularmente en las
casos de pruebas o para comprobar si el grupo de casos derivaciones automticas de entradas de pruebas que se
de prueba es apropiado o sea, para decidir si se puede emplean en las tcnicas de pruebas basadas en cdigo.
terminar de hacer pruebas. Vase el apartado
Finalizacin de la seccin 5.1 Consideraciones 1.2.7 Posibilidad de hacer pruebas
prcticas. [Bei90:c3, c13] (Bac90; Ber96a; Voa95)

1.2.2 Efectividad de las pruebas/Objetivos para las El trmino posibilidad de hacer pruebas tiene dos
pruebas significados relacionados pero diferentes: por un lado,
[Bei90:c1s1.4; Per95:c21] (Fra98) se refiere al grado de facilidad del software para
satisfacer un determinado criterio de cobertura de
pruebas, como se describe en (Bac90); por otro, se soporte de herramientas de depuracin, pudiendo
define como la probabilidad, posiblemente cualificada implicar a los programadores que escribieron el cdigo
estadsticamente, de que los errores del software queden
2.1.2 Pruebas de Integracin
expuestos durante las pruebas, si es errneo, tal y como
[Jor02:c13, 14; Pfl01:c8s7.4]
se describe en (Voa95, Ber96a). Ambos significados
son importantes. Una prueba de integracin es el proceso de verificar la
interaccin entre componentes de software. Estrategias
1.3 Relacin de las pruebas con otras actividades
clsicas de integracin, como arriba-abajo o abajo-
Las pruebas del software, aunque diferentes, estn arriba, se usan, tradicionalmente, con software
relacionadas con las tcnicas de gestin de la calidad estructurado jerrquicamente.
del software esttico, las pruebas de validez del
Las estrategias modernas de integracin estn dirigidas
software, la depuracin y la programacin. Sin
por la arquitectura, lo que supone integrar los
embargo, es til considerar las pruebas desde el punto
componentes de software o subsistemas basndose en
de vista del analista de calidad del software o
caminos de funcionalidad identificada. Las pruebas de
certificador.

r
integracin son una actividad continua, que sucede en
Pruebas vs. tcnicas de Gestin de Calidad del cada fase en que los ingenieros de software tienen que
Software Esttico. Vase tambin el KA de la hacer abstracciones de las perspectivas de bajo nivel y
Calidad del Software, punto 2. Proceso de Gestin concentrarse en las perspectivas del nivel que estn

do
de la Calidad del Software. [Bei90:c1; Per95:c17] integrando. Con la excepcin de software sencillo y
(IEEE1008-87) pequeo, las estrategias de pruebas de integracin
Pruebas vs. Pruebas de Validez y Verificacin sistemticas e incrementales son preferibles a probar
Formal [Bei90:c1s5; Pfl01:c8]. todos los componentes juntos al final, lo que se conoce
Pruebas vs. Depuracin. Vase tambin el KA de la (de forma grfica), como pruebas en big bang.
Construccin del Software, punto 3.4 Pruebas de 2.1.3 Pruebas del sistema
la construccin [Bei90:c1s2.1] (IEEE1008-87). [Jor02:c15; Pfl01:c9]
Pruebas vs. Programacin. Vase tambin el KA de
la Construccin del Software, punto 3.4 Pruebas de Las pruebas del sistema se ocupan del comportamiento
la construccin [Bei90:c1s2.1] (IEEE1008-87). de un sistema completo. La mayora de los fallos
rra
Pruebas y Certificacin (Wak99). funcionales deberan haber sido identificados antes,
durante las fases de pruebas de unidad y pruebas de
2 Niveles de Pruebas integracin. Las pruebas del sistema se consideran
2.1 El objeto de la prueba normalmente como las apropiadas para comparar el
sistema con los requisitos no funcionales del sistema,
Las pruebas del software se realizan normalmente a como seguridad, velocidad, exactitud y confiabilidad.
diferentes niveles durante los procesos de desarrollo y Las interconexiones externas con otras aplicaciones,
mantenimiento. Esto significa que el objeto de las utilidades, dispositivos hardware o con el sistema
pruebas puede cambiar: un mdulo, un grupo de dichos operativo, tambin se evalan en este nivel. Vase el
mdulos (relacionados por propsito, uso, KA de Requisitos del Software para ms informacin
comportamiento, o estructura), o un sistema completo. acerca de requisitos funcionales y no funcionales.
[Bei90:c1; Jor02:c12;Pfl01:c8] Conceptualmente se
Bo

pueden distinguir tres grandes niveles de pruebas, 2.2 Objetivos de las pruebas
llamadas de Unidad, de Integracin y del Sistema. No [Per95:c8; Pfl01:c9s8.3]
hay un modelo de proceso implcito, ni se asume que Las pruebas se realizan en relacin a conseguir un
ninguno de estos tres niveles tiene mayor importancia determinado objetivo, que se ha definido ms o menos
que los otros dos. explcitamente y con diversos niveles de precisin.
2.1.1 Pruebas de Unidad Definir el objetivo, en trminos precisos y cuantitativos,
[Bei90:c1; Per95:c17; Pfl01:c8s7.3] permite establecer controles en el proceso de las
(IEEE1008-87) pruebas.
Las pruebas de unidad verifican el funcionamiento Las pruebas se pueden realizar para verificar
aislado de partes del software que se pueden probar propiedades distintas. Se pueden asignar casos de
independientemente. Dependiendo del contexto, estas prueba para comprobar que las especificaciones
partes podran ser subprogramas individuales o un funcionales se han implementado correctamente, a lo
componente ms grande formado por unidades muy que la literatura se refiere como pruebas de
relacionadas. Hay una definicin ms precisa de prueba conformidad, pruebas de correccin o pruebas de
de unidad en el estndar IEEE de pruebas de unidad del funcionalidad. Sin embargo, tambin se pueden hacer
software (IEEE1008-87), que tambin describe un pruebas a otras muchas propiedades no funcionales,
mtodo integrado para realizar y documentar pruebas de como rendimiento, confiabilidad y facilidad de uso,
unidad sistemticamente. Normalmente, las pruebas de entre otras muchas.
unidad se realizan con acceso al cdigo fuente y con el
Otros objetivos importantes de las pruebas incluyen Las pruebas, al ayudar a identificar errores, son un
(aunque no se limitan a) mediciones de confiabilidad, medio para mejorar la confiabilidad. Por contraste,
evaluacin de la facilidad de uso y aceptacin, para los generando casos de prueba aleatorios siguiendo el perfil
cuales se utilizaran mtodos diferentes. Se debe tener de operaciones, se pueden derivar aproximaciones
en cuenta que los objetivos de las pruebas varan con el estadsticas de confiabilidad. Cuando se usan modelos
objeto de las pruebas; en general, propsitos diferentes que potencian la confiabilidad, ambos objetivos se
son tratados con diferentes niveles de pruebas. pueden alcanzar al mismo tiempo (vase tambin el
punto 4.1.4 Pruebas de ejecucin, evaluacin de la
Las referencias recomendadas para este punto describen
confiabilidad)
el conjunto de objetivos de pruebas potenciales. Los
puntos enumerados seguidamente son los que se citan 2.2.6 Pruebas de regresin
ms frecuentemente en la literatura. Tngase en cuenta [Kan99:c7; Per95:c11, c12; Pfl01:c9s8.1]
que algunos tipos de pruebas son ms apropiados para (Rot96)
paquetes de software hechos a medida, pruebas de
Segn (IEEE610.12-90), las pruebas de regresin son
instalacin, por ejemplo; mientras otros son ms
pruebas selectivas que se repiten en un componente

r
apropiados para productos ms genricos, como
para verificar que los cambios no han producido efectos
pruebas beta.
indeseados... En la prctica, la idea es demostrar que
2.2.1 Pruebas de aceptacin/calificacin cierto software que previamente pas un conjunto de

do
[Per95:c10; Pfl01:c9s8.5] (IEEE12207.0- pruebas, an las pasa. Beizer (Bei90) las define como
96:s5.3.9) cualquier repeticin de pruebas que tiene como objetivo
demostrar que el comportamiento del software no ha
Las pruebas de aceptacin comparan el comportamiento
cambiado, excepto en aquellos aspectos en que se haya
del sistema con los requisitos del cliente, sea cual sea la
requerido as. Por supuesto se tiene que llegar a un
forma en que stos se hayan expresado. El cliente
compromiso entre realizar pruebas de regresin cada
realiza, o especifica, tareas tpicas para comprobar que
vez que se hace un cambio y los medios de que se
se satisfacen sus requisitos o que la organizacin los ha
dispone para realizar las pruebas.
identificado para el mercado al que se destina el
software. Esta actividad de pruebas puede incluir o no a Las pruebas de regresin se pueden realizar en cada uno
los desarrolladores del sistema. de los niveles de pruebas descritos en el punto 2.1 El
rra
objeto de la prueba y son vlidas tanto para pruebas
2.2.2 Pruebas de instalacin
funcionales como no funcionales.
[Per95:c9; Pfl01:c9s8.6]
2.2.7 Pruebas de rendimiento
Normalmente, cuando las pruebas de aceptacin han
[Per95:c17; Pfl01:c9s8.3] (Wak99)
terminado, el software se puede comprobar una vez
instalado en el entorno final. Las pruebas de instalacin Estas pruebas tienen el objetivo de verificar que el
se pueden ver como pruebas del sistema realizadas en software alcanza los requerimientos de rendimiento
relacin con los requisitos de la configuracin de especificados, particularmente los de capacidad y
hardware. Los procedimientos para la instalacin tiempo de respuesta. Un tipo particular de pruebas de
tambin se podran verificar. rendimiento son las pruebas de volumen (Per95:p185,
p487; Pfl01:p401), en los que las limitaciones internas
2.2.3 Pruebas alfa y beta
del programa o sistema se ponen a prueba.
Bo

[Kan99:c13]
2.2.8 Pruebas de desgaste
A veces, antes de poner el software en distribucin, ste
[Per95:c17; Pfl01:c9s8.3]
se proporciona a un grupo representativo de usuarios
potenciales para que puedan usarlo en pruebas en las Las pruebas de desgaste hacen funcionar el software a
instalaciones del desarrollador (pruebas alpha) o la mxima capacidad para la que fue diseado, y por
externamente (pruebas beta). Dichos usuarios notifican encima de ella.
problemas con el producto. Normalmente, el uso de
2.2.9 Pruebas de continuidad.
versiones alfa y beta sucede en entornos no controlados
y no siempre se le hace referencia en los planes de Un grupo de pruebas se ejecuta en dos versiones
pruebas. diferentes de un producto software y los resultados se
comparan.
2.2.4 Pruebas de conformidad/pruebas
funcionales/pruebas de correccin 2.2.10 Pruebas de recuperacin
[Kan99:c7; Per95:c8] (Wak99) [Per95:c17; Pfl01:c9s8.3]
Las pruebas de conformidad tienen el objetivo de El objetivo de las pruebas de recuperacin es verificar
verificar si el comportamiento del software se la capacidad del software para reiniciarse despus de un
corresponde con las especificaciones. desastre.
2.2.5 Materializacin de la confiabilidad y 2.2.11 Pruebas de configuracin
evaluacin [Lyu96:c7; Pfl01:c9s.8.4] (Pos96) [Kan99:c8; Pfl01:c9s8.3]
En los casos en los que el software se construye para [Kan99:c1]
dar servicio a distintos usuarios, las pruebas de
Quizs la tcnica usada ms globalmente continan
configuracin analizan el software en las diferentes
siendo las pruebas ad hoc: las pruebas se generan a
configuraciones especificadas.
partir la habilidad, intuicin y experiencia en programas
similares del ingeniero de software. Las pruebas ad hoc
2.2.12 Pruebas de facilidad de uso pueden ser tiles para identificar casos de prueba
[Per95:c8; Pfl01:c9s8.3] especiales, aquellos que no se pueden extraer
fcilmente mediante tcnicas formales.
Este proceso evala lo fcil que le resulta usar y
aprender a usar el software al usuario, incluyendo la 3.1.2 Pruebas por exploracin
documentacin del usuario, la efectividad de las
Las pruebas por exploracin se definen como
funciones del software para soportar las tareas de
aprendizaje, diseo de pruebas y ejecucin de pruebas
usuario y, finalmente, la habilidad de recuperarse de
al mismo tiempo. Esto significa que las pruebas no se
errores provocados por el usuario.
definen primero como parte de un plan de pruebas

r
2.2.13 Desarrollo dirigido por pruebas establecido, si no que se disean, ejecutan y se
[Bec02] modifican dinmicamente. La efectividad de las
pruebas por exploracin se basa en el conocimiento del
El desarrollo dirigido por pruebas no es una tcnica en ingeniero de software, que se puede derivar de varias

do
s misma, pero promociona el uso de pruebas como una
fuentes: el comportamiento observado del producto
parte subordinada al documento de especificacin de durante las pruebas, su familiaridad con la aplicacin, la
requisitos en vez de una comprobacin independiente plataforma o el proceso de fallos, los posibles tipos de
de que el software implementa dichos requerimientos
errores y fallos, el riesgo asociado con un producto en
correctamente. particular, etc. [Kan01:c3]
3 Tcnicas de pruebas 3.2 Tcnicas basadas en la especificacin
Uno de los objetivos de las pruebas es revelar el
3.2.1 Particiones de equivalencia
mximo nmero posible de fallos potenciales y muchas [Jor02:c7; Kan99:c7]
tcnicas se han desarrollado con este objetivo,
intentando romper el programa ejecutando una o ms El dominio de la entrada de datos se subdivide en
rra
pruebas seleccionadas de un cierto grupo de ejecuciones colecciones de subconjuntos, o clases de equivalencia,
considerado equivalente. El principio subyacente de las cuales se consideran equivalentes de acuerdo con la
estas tcnicas es tratar de ser lo ms sistemtico posible relacin especificada. Un grupo representativo de
identificando un conjunto representativo de pruebas (a veces solo uno) se toma de cada clase.
comportamientos del programa; por ejemplo,
3.2.2 Anlisis de los valores lmite
identificando subclases del dominio de entrada de
[Jor02:c6; Kan99:c7]
datos, de los escenarios, de los estados y del flujo de
datos. Casos de prueba se seleccionan en y cerca de los lmites
del dominio de las variables de la entrada de datos,
Es difcil encontrar una base homognea para clasificar
basndose en la idea de que una gran parte de los
todas las tcnicas, por lo que la aqu utilizada debe
errores se concentran cerca de los valores extremos de
entenderse como un compromiso. La clasificacin se
Bo

la entrada de datos. Una extensin de esta tcnica son


basa en cmo los ingenieros del software generan las
las pruebas de robustez, donde se seleccionan casos de
pruebas basndose en su intuicin y experiencia, en las
prueba que se encuentran fuera del dominio de las
especificaciones, la estructura del cdigo, los errores a
variables de la entrada de datos, para comprobar la
descubrir (reales o artificiales), el uso de campos de
robustez del programa con entradas de datos errneas e
entrada de datos o, en ltimo trmino, la naturaleza de
inesperadas.
la aplicacin. Algunas veces, estas tcnicas se clasifican
como de caja blanca (tambin conocidas como caja de 3.2.3 Tablas de decisin
cristal), si las pruebas estn basadas en informacin [Bei90:c10s3] (Jor02)
acerca de cmo se ha diseado o programado el
Las tablas de decisin representan relaciones lgicas
software, o como de caja negra si los casos de prueba
entre condiciones (mayoritariamente entradas) y
se basan solamente en el comportamiento de la entrada
acciones (mayoritariamente salidas). Los casos de
y salida de datos. Una ltima categora se basa en el uso
prueba se derivan sistemticamente considerando cada
combinado de dos o ms tcnicas. Obviamente, no todo
combinacin de condiciones y acciones posibles. Una
el mundo usa estas tcnicas con la misma frecuencia.
tcnica relacionada es el grfico causa-efecto.
La siguiente lista incluye las tcnicas que los ingenieros
[Pfl01:c9]
de software deberan conocer.
3.2.4 Basadas en mquinas de estado finito
3.1 Pruebas basadas en la intuicin y experiencia del
[Bei90:c11; Jor02:c8]
ingeniero de software
3.1.1 Pruebas ad hoc
Al modelar un programa como una mquina de estado necesarios, se emplean estrategias menos efectivas
finito, se pueden seleccionar las pruebas de manera que como todas las definiciones y todos los usos.
cubran estados y sus transiciones.
3.3.3 Modelos de referencia para pruebas basadas en
3.2.5 Pruebas basadas en las especificaciones el cdigo (grfico de flujos, grfico de
formales llamadas)
[Zhu97:s2.2] (Ber91; Dic93; Hor95) [Bei90:c3; Jor02:c5]
Si las especificaciones se proporcionan en un lenguaje Aunque no es una tcnica en s misma, la estructura de
formal, es posible realizar una derivacin automtica de control de un programa se representa usando grficos
los casos de prueba funcionales y, al mismo tiempo, de flujo en las tcnicas de pruebas basadas en cdigo.
proporcionar unos resultados de referencia, un orculo, Un grfico de flujo es un grfico dirigido cuyos nodos y
que se usa para comprobar los resultados de las arcos se corresponden con elementos del programa. Por
pruebas. Existen mtodos para derivar casos de prueba ejemplo, los nodos podran representar lneas de cdigo
de especificaciones basadas en el modelo (Dic93, o secuencias de lneas de cdigo ininterrumpidas y los
Hor95) o especificaciones algebraicas. (Ber91) arcos la transferencia de control entre nodos.

r
3.2.6 Pruebas aleatorias 3.4 Tcnicas basadas en errores
[Bei90:c13; Kan99:c7] (Mor90)

do
En este caso las pruebas se generan de una manera Con diferentes niveles de formalizacin, las tcnicas
completamente aleatoria, lo que no debe confundirse basadas en errores idean casos de prueba que estn
con las pruebas estadsticas basadas en el perfil especialmente orientados a descubrir categoras de
operativo descritas en el punto 3.5.1 Perfil Operativo. errores probables o predefinidos.
Esta forma de realizar pruebas se incluye en la categora
3.4.1 Conjeturar errores
de entradas basadas en la especificacin, ya que el
[Kan99:c7]
domino de las entradas de datos se debe conocer para
ser capaces de seleccionar elementos aleatorios del En la conjetura de errores, los casos de pruebas se han
mismo. diseado especficamente por ingenieros de software
intentando imaginar los errores ms probables en un
3.3 Tcnicas basadas en el cdigo
programa determinado. La historia de errores
rra
3.3.1 Criterio basado en el flujo de control descubiertos en proyectos anteriores es una buena
[Bei90:c3; Jor02:c10] (Zhu97) fuente de informacin, como lo es tambin la
experiencia del ingeniero.
Los criterios de cobertura estn basados en el flujo de
control se usan para cubrir todos los bloques de cdigo 3.4.2 Pruebas por mutacin
o lneas de cdigo individuales o una combinacin [Per95:c17; Zhu97:s3.2-s3.3]
especifica de los mismos. Hay varios criterios de
Un mutante es una versin ligeramente modificada de
cobertura propuestos, como cobertura de
un programa al que se le est haciendo pruebas,
condicin/decisin. El criterio basado en el flujo de
diferencindose tan solo en un pequeo cambio
control ms efectivo son las pruebas de caminos, cuyo
sintctico. Cada caso de prueba se aplica al original y a
objetivo es verificar todos los caminos de control de
los mutantes generados: si una prueba consigue
tipo entrada-salida del grfico de flujos. Como, en
Bo

identificar la diferencia entre el programa y el mutante,


general, las pruebas de caminos no son posibles debido
se dice que se ha matado al mutante. Esta tcnica se
a los bucles, en la prctica se usan otros criterios menos
concibi originalmente para evaluar un conjunto de
exigentes, como pruebas de lneas de cdigo, pruebas
pruebas (vase 4.2), las pruebas por mutacin son un
de condiciones y pruebas de decisin. La idoneidad de
criterio de pruebas en s mismas: o se generan pruebas
dichas pruebas se mide en porcentajes; por ejemplo,
aleatorias hasta que se han matado los mutantes
cuando las pruebas han ejecutado todas las condiciones
suficientes, o se disean pruebas especficas para matar
al menos una vez, se dice que se ha conseguido una
a los mutantes supervivientes. En el ltimo caso, las
cobertura de condiciones del 100%.
pruebas por mutacin se pueden clasificar como
3.3.2 Criterio basado en el flujo de datos tcnicas basadas en cdigo. El efecto de acoplamiento,
[Bei90:c5] (Jor02; Zhu97) que es la base asumida en las pruebas de mutacin,
consiste en asumir que buscando errores sintcticos
En las pruebas basadas en el flujo de datos, el grfico
simples, se encontrarn otros ms complejos pero
de flujos de control tiene anotaciones con informacin
existentes. Para que esta tcnica sea efectiva, se debe
acerca de como las variables del programa se definen,
poder derivar un nmero importante de mutantes de una
usan y destruyen. El criterio ms efectivo, todos los
manera sistemtica.
caminos de uso-definicin, requiere que para cada
variable, se ejecute cada uno de los segmentos del 3.5 Tcnicas basadas en el uso
camino del flujo de control de esa variable a un usa de
3.5.1 Perfil operativo
esa definicin. Para reducir el nmero de caminos
[Jor02:c15; Lyu96:c5; Pfl01:c9]
Durante pruebas para la evaluacin de la confiabilidad, Para conseguir esto, se le asigna una probabilidad de
el entorno de pruebas debe reproducir el entorno distribucin, o perfil, a las entradas de datos, basndose
operativo del software tan fielmente como sea posible. en la frecuencia en que suceden durante el
La idea es deducir la futura confiabilidad del software funcionamiento real.
durante su use real desde los resultados de las pruebas.
distribucin de entradas de datos, como se hace
3.5.2 Pruebas Orientadas a la Confiabilidad del
normalmente en las pruebas de confiabilidad. Existen
Software
varias comparaciones analticas y empricas que analizan
[Lyu96:c6]
las condiciones en que uno de los mtodos es ms
Las pruebas orientadas a la confiabilidad del software efectivo que el otro.
(SRET) son un mtodo de pruebas que forma parte del
4 Medidas de las pruebas
proceso de desarrollo completo, donde la realizacin de
pruebas est diseada y guiada por los objetivos de Algunas veces, las tcnicas de pruebas se confunden con
confiabilidad y el uso relativo esperado y lo crticas que los objetivos de las pruebas. Las tcnicas de pruebas se
sean las distintas funciones en ese mbito deben ver como medios que ayudan a conseguir los

r
objetivos de las pruebas. Por ejemplo, la cobertura de
3.6 Tcnicas basadas en la naturaleza de la aplicacin
condiciones es una tcnica de pruebas muy popular.
Las tcnicas anteriores se pueden aplicar a cualquier tipo Conseguir el valor de la cobertura de condiciones no

do
de software. Sin embargo, para algunos tipos de debera ser un objetivo de las pruebas en s mismo: es
aplicaciones, es necesario conocimientos especficos solo un medio para mejorar las posibilidades de
adicionales para derivar las pruebas. La siguiente lista encontrar fallos realizando pruebas sistemticas en cada
proporciona unas cuantas reas de pruebas condicin del programa para un punto de decisiones.
especializadas, basndose en la naturaleza de la Para prevenir dichas interpretaciones errneas, debera
aplicacin que se est comprobando: hacerse una distincin muy clara entre las medidas de las
pruebas, que proporcionan una evaluacin del programa
Pruebas Orientadas a Objetos [Jor02:c17; que se est comprobando, basada en los resultados
Pfl01:c8s7.5] (Bin00) observados de las pruebas y aquellas que evalan la
Pruebas basadas en componentes completitud del conjunto de pruebas. Se proporciona
ms informacin acerca de medidas para programas en el
rra
Pruebas para Internet KA de la Gestin del la Ingeniera del Software, punto 6,
Pruebas para GUI [Jor20] Medidas en la ingeniera del software. Se puede
encontrar ms informacin en el KA de la Gestin del la
Pruebas para programas concurrentes (Car91) Ingeniera del Software, punto 4, Proceso y medidas del
producto.
Pruebas de conformidad de protocolos (Pos96;
Boc94) Las medidas se consideran, normalmente, como
esenciales en los anlisis de calidad. Las medidas
Pruebas para sistemas de tiempo real (Sch94) tambin se pueden utilizar para optimizar la
Pruebas para sistemas de seguridad crtica planificacin y ejecuciones de las pruebas. La gestin de
(IEEE1228-94) pruebas puede utilizar varios procesos para medir o
vigilar el progreso realizado. Las medidas relacionadas
Bo

3.7 Seleccionando y combinando tcnicas con el proceso de gestin de pruebas se abordan en el


3.7.1 Funcional y estructuralmente punto 5.1 Consideraciones prcticas.
[Bei90:c1s.2.2; Jor02:c2, c9, c12; Per95:c17] 4.1 Evaluacin de un programa durante las pruebas
(Pos96) (IEEE982.1-98)
Las tcnicas de pruebas basadas en las especificaciones y 4.1.1 Medidas para ayudar en la planificacin y
el cdigo se contrastan frecuentemente como pruebas diseo de pruebas de programas
funcionales vs estructurales. Estos dos mtodos de [Bei90:c7s4.2; Jor02:c9] (Ber96; IEEE982.1-
seleccin de pruebas no se deber ver como alternativos si 88)
no como complementarios; de hecho, usan fuentes de
informacin diferentes y se ha comprobado que Las medidas basadas en el tamao de un programa (por
remarcan diferentes tipos de problemas. Estas tcnicas se ejemplo, nmero de lneas de cdigo o mtodos) o en la
pueden combinar, dependiendo del presupuesto para estructura de un programa (como la complejidad), se
pruebas. usan para guiar a las pruebas. Las medidas estructurales
pueden incluir medidas entre mdulos del programa, en
3.7.2 Deterministas vs aleatorias trminos de la frecuencia en que cada mdulo llama a los
(Ham92; Lyu96:p541-547) otros.
Los casos de pruebas se pueden seleccionar de una forma 4.1.2 Tipos de errores, clasificacin y estadsticas
determinista, de acuerdo con una de las varias tcnicas [Bei90:c2; Jor02:c2; Pfl01:c8] (Bei90;
enunciadas, o seleccionadas aleatoriamente de una IEEE1044-93; Kan99; Lyu96)
La literatura de pruebas es rica a la hora de clasificar y 4.2.2 Introduccin de errores
analizar errores. Con el objetivo de hacer las pruebas [Pfl01:c8] (Zhu97:s3.1)
ms efectivas, es importante saber que tipos de errores se
Algunas veces se introducen errores artificialmente en un
pueden encontrar en un programa que se est
programa antes de comprobarlo. Cuando las pruebas se
comprobando y la frecuencia relativa en que estos
realizan, algunos de estos errores aparecern y
errores han sucedido antes. Esta informacin puede ser
posiblemente algunos otros que ya estaban en el software
muy til para realizar predicciones de calidad y tambin
tambin aparecern. En teora, dependiendo de cul de
para mejorar el proceso. Se puede encontrar ms
los errores artificiales aparezca y cuntos de ellos, se
informacin en el KA de la Calidad del Software, punto
puede evaluar la efectividad de las pruebas y se puede
3.2 Caracterizacin de defectos. Existe un estndar del
estimar el nmero restante de errores genuinos. En la
IEEE acerca de como clasificar anomalas del software
prctica, los matemticos estadsticos se cuestionan la
(IEEE1044-93).
distribucin y representatividad de los errores
4.1.3 Densidad de fallos introducidos en relacin con los errores genuinos y el
[Per95:c20] (IEEE982.1-88; Lyu96:c9) tamao pequeo de la muestra en la que se basa

r
cualquier extrapolacin. Algunos incluso afirman que
Un programa que se est comprobando se puede valorar
esta tcnica debera usarse con sumo cuidado, ya que
contando y clasificando los errores descubiertos por su
introducir errores en el software acarrea el riesgo obvio
tipo. Parra cada tipo de error, la densidad de errores se
de olvidarlos all.

do
mide como la razn entre el nmero de errores
encontrados y el tamao del programa. 4.2.3 Puntuacin de la mutacin
[Zhu97:s3.2-s3.3]
4.1.4 Vida de las pruebas, evaluacin de
confiabilidad En las pruebas por mutacin (vase el punto 3.4.2), la
[Pfl01:c9] (Pos96:p146-154) razn de mutantes matados por nmero total de mutantes
generados puede ser una medida de la efectividad del
Una estimacin estadstica de la confiabilidad del
conjunto de pruebas realizadas.
software, que se puede conseguir mediante la realizacin
y evaluacin de la confiabilidad (vase punto 2.2.5), se 4.2.4 Comparacin y efectividad relativa de las
puede usar para evaluar un producto y decidir si las diferentes tcnicas
pruebas se pueden detener o no. [Jor02:c9, c12; Per95:c17; Zhu97:s5] (Fra93;
rra
Fra98; Pos96: p64-72)
4.1.5 Modelos de crecimiento de la confiabilidad
[Lyu96:c7; Pfl01:c9] (Lyu96:c3, c4) Se han llevado a cabo varios estudios para comparar la
efectividad relativa de las diferentes tcnicas de pruebas.
Los modelos de crecimiento de la confiabilidad
Es importante ser preciso acerca de la propiedad contra
proporcionan una prediccin de confiabilidad basada en
la cual las tcnicas se han calificado; cual, por ejemplo,
los fallos observados durante la realizacin y evaluacin
es el significado exacto dado al trmino efectividad?
de la confiabilidad (vase punto 2.2.5). Estos modelos
Las interpretaciones posibles son: el nmero de pruebas
asumen, en general, que los errores que causan los fallos
necesarias para encontrar el primer fallo, la razn entre
observados se han arreglado (aunque algunos modelos
el nmero de errores encontrados durante las pruebas y
tambin aceptan arreglos imperfectos), y por tanto, el
todos los errores encontrados durante y despus de las
producto muestra una confiabilidad incremental de
pruebas, o cual fue la mejora de la confiabilidad. Se han
Bo

promedio. Existen docenas de modelos publicados en la


llevado a cabo comparaciones analticas y empricas
actualidad. Muchos se basan en algunas presunciones
entre las diferentes tcnicas, de acuerdo con cada uno de
comunes, y otros no. Mayoritariamente, estos modelos se
los significados de efectividad especificados antes.
dividen en modelos de cuenta de fallos y tiempo entre
fallos. 5 El Proceso de las Pruebas
4.2 Evaluacin de las pruebas realizadas Los conceptos de pruebas, estrategias, tcnicas y
medidas han de ser integrados en un proceso definido y
4.2.1 Medidas de la cobertura/completitud
controlado, que debe ser gestionado por personas. El
[Jor02:c9; Pfl01:c8] (IEEE982.1-88)
proceso de las pruebas soporta actividades y sirve de
Varios criterios de idoneidad de las pruebas necesitan gua a los equipos de pruebas, desde la planificacin de
que los casos de pruebas ejecuten sistemticamente un las pruebas hasta la evaluacin de los resultados de las
conjunto de elementos identificados en el programa o en pruebas, de tal manera que se puede proporcionar una
la especificacin (vase punto 3). Para evaluar la garanta justificada de que los objetivos de las pruebas se
completitud de las pruebas realizadas, los ingenieros de conseguirn de una manera econmica.
pruebas pueden monitorizar los elementos cubiertos y su
5.1 Consideraciones prcticas
nmero total. Por ejemplo, es posible medir el porcentaje
de condiciones cubiertas ejecutadas entre las definidas en 5.1.1 Actitudes y programacin egoless
la especificacin. La idoneidad de los criterios basados [Bei90:c13s3.2; Pfl01:c8]
en cdigo necesita la instrumentacin adecuada del
programa que se est comprobando.
Un elemento muy importante para el xito de las pruebas [Bei90:c13s2.2-c13s2.3; Kan99:c15; Per95:c4;
es una actitud de colaboracin respecto a las actividades Pfl01:c9]
de pruebas y garanta de calidad. Los jefes de proyecto
La formalizacin del proceso de pruebas tambin puede
tienen un papel fundamental en fomentar una recepcin
formalizar la organizacin del equipo de pruebas. El
favorable en general respecto al descubrimiento de fallos
equipo de pruebas puede estar compuesto por miembros
durante el desarrollo y mantenimiento; particularmente,
internos (parte del equipo del proyecto, involucrados o
previniendo que los programadores se obsesionen con
no en la construccin del software), o de miembros
quien es el dueo del cdigo, de tal forma que ninguno
externos, con la esperanza de contar con una perspectiva
se sienta responsable por los fallos que aparezcan en su
independiente y sin prejuicios, o, finalmente, de
cdigo.
miembros internos y externos. La decisin puede ser
5.1.2 Guas para las pruebas afectada por consideraciones como coste, planificacin,
[Kan01] nivel de madurez de las organizacin involucradas y
como de crtica sea la aplicacin.
Se pueden guiar las fases de pruebas con varios
mecanismos, por ejemplo; en pruebas basadas en el 5.1.6 Estimacin coste/esfuerzo y otras medidas del

r
riego, que usa los riesgos en el producto para asignar proceso
prioridad y centrar la atencin de las estrategias de [Per95:c4, c21] (Per95: Appendix B;
pruebas; o en las pruebas basadas en situaciones, en las Pos96:p139-145; IEEE982.1-88)

do
que los casos de pruebas se definen y basan en
Los jefes de proyectos pueden usar varias medidas,
escenarios de software especificados.
acerca de los recursos invertidos en las pruebas y de la
5.1.3 Gestin del proceso de las pruebas efectividad de las varias fases de pruebas en encontrar
[Bec02: III; Per95:c1-c4; Pfl01:c9] (IEEE1074- fallos, para controlar y mejorar el proceso de las pruebas.
97; IEEE12207.0-96:s5.3.9, s5.4.2, s6.4, s6.5) Estas medidas de las pruebas pueden cubrir, entre otros,
aspectos como el nmero de casos de pruebas
Las actividades de pruebas realizadas a diferentes niveles
especificados, el nmero de casos de pruebas ejecutados,
(vase punto 2, Niveles de pruebas) se deben organizar,
el nmero de casos de pruebas superados y el nmero de
junto con las personas, herramientas, normas y medidas,
casos de pruebas no superados.
en un proceso bien definido que ser una parte integral
del ciclo de vida del software. En el estndar IEEE/EIA La evaluacin de los informes de las fases de pruebas se
rra
12207.0, las pruebas no se describen como un proceso puede combinar con anlisis de las races de las causas
independiente, si no que los principios de las actividades para evaluar la efectividad del proceso de las pruebas en
de las pruebas se encuentran incluidos con los cinco encontrar errores tan pronto como sea posible. Dicha
procesos primarios del ciclo de vida y con los procesos evaluacin se puede asociar con el anlisis de riesgos. Lo
de soporte. En el estndar IEEE 1074, las pruebas se que es ms, los recursos que merece la pena invertir en
agrupan con otras actividades de evaluacin como una las pruebas deberan ser proporcionales al
parte integral del ciclo de vida completo. uso/importancia de la aplicacin: diferentes tcnicas
tienen distinto coste y proporcionan diferentes niveles de
5.1.4 Documentacin y productos de las pruebas
seguridad en la confiabilidad del producto.
[Bei90:c13s5; Kan99:c12; Per95:c19;
Pfl01:c9s8.8] (IEEE829-98) 5.1.7 Finalizacin
[Bei90:c2s2.4; Per95:c2]
Bo

La documentacin es una parte integral de la


formalizacin del proceso de las pruebas. El estndar del Se debe tomar una decisin acerca de cuantas pruebas
IEEE Estndar para la Documentacin de las Pruebas del son suficientes y cuando la fase de pruebas se puede
Software (IEEE829-98) proporciona una buena finalizar. Las medidas concienzudas, como las
descripcin de los documentos de las pruebas y su conseguidas mediante cobertura de cdigo o completitud
relacin entre cada uno y con el proceso de las pruebas. funcional y la estimacin de densidad de errores o de
La documentacin de pruebas puede incluir, entre otros, confiabilidad operativa, proporcionan un suporte muy
el Plan de Pruebas, la Especificacin del Diseo de las til, pero no son suficientes por s mismas. Esta decisin
Pruebas, la Especificacin del Procedimiento de las tambin incluye consideraciones acerca del coste y los
Pruebas, la Especificacin de los Casos de Pruebas, el riesgos en que se incurrir debido a los fallos potenciales
Diario de las Pruebas y el Informe de Problemas o de que an queden, en vez del coste que conllevara
Incidentes durante las Pruebas. El software que se est continuar realizando pruebas. Vase tambin el punto
comprobando se documenta como el Artculo en 1.2.1 Criterios de seleccin de pruebas/Criterios de
Pruebas. La documentacin de las pruebas se debe idoneidad de pruebas.
generar y actualizar continuamente, con el mismo nivel
5.1.8 Reutilizacin de pruebas y patrones de pruebas
de calidad que cualquier otro tipo de documentacin en
[Bei90:c13s5]
la ingeniera del software.
Con el objetivo de realizar pruebas o mantenimiento de
5.1.5 Equipo de pruebas interno vs equipo
una forma organizada y efectiva respecto al coste, los
independiente
medios usados para realizar pruebas en cada parte del
software se deberan reutilizar de una forma sistemtica. durante las pruebas se deberan realizar y documentar de
Dicho repositorio de material de pruebas debe estar bajo una forma lo suficientemente clara, que cualquier otra
el control de un software de gestin de configuraciones, persona debera ser capaz de reproducir los resultados.
de forma que los cambios en los requerimientos del Por tanto, las pruebas deben realizarse de acuerdo con
software o el diseo queden reflejados en cambios en el los procedimientos documentados y usando una versin
alcance de las pruebas realizadas. claramente definida del software que se est
comprobando.
Las soluciones adoptadas para realizar pruebas en
determinados tipos de aplicaciones bajo determinadas 5.2.5 Evaluacin de los resultados de las pruebas
circunstancias, teniendo en cuenta los motivos detrs de [Per95:c20,c21] (Pos96:p18-20, p131-138)
las decisiones que se han tomado, forman un patrn de
Los resultados de las pruebas se deben evaluar para
pruebas que se puede documentar y ser reutilizado en
determinar si las pruebas han sido satisfactorias o no. En
proyectos similares.
la mayora de los casos, satisfactorias significa que el
5.2 Actividades de las pruebas software se ha ejecutado como se esperaba y no ha
tenido ningn resultado inesperado importante. No todos

r
En este punto, se ver una pequea introduccin a las
los resultados inesperados son necesariamente errores, ya
actividades del software; gestionar con xito las
que se podra considerar que algunos son simple ruido.
actividades relacionada con las pruebas, como la
Antes de que se pueda arreglar un error, se necesita
siguiente descripcin da a entender, depende en gran

do
realizar un anlisis y algn trabajo de depuracin para
medida del proceso de Gestin de Configuracin del
identificarlo, aislarlo y describirlo. Cuando los resultados
Software.
de las pruebas son particularmente importantes, puede
5.2.1 Planificacin que se convoque una revisin formal para evaluarlas.
[Kan99:c12; Per95:c19; Pfl01:c8s7.6]
5.2.6 Notificacin de problemas/Diario de pruebas
(IEEE829-98:s4; IEEE1008-87:s1-s3)
[Kan99:c5; Per95:c20] (IEEE829-98:s9-s10)
Como cualquier otro aspecto de la gestin de proyectos,
Las actividades de las pruebas se pueden aadir a un
las actividades de las pruebas se deben planificar.
diario de pruebas para identificar cuando una prueba se
Algunos aspectos clave de la planificacin de las pruebas
ha ejecutado, quien la ha realizado, que configuracin
incluyen la coordinacin de personal, la gestin de
del software se ha utilizado y cualquier otra informacin
rra
instalaciones y equipos disponibles (que pueden incluir
relevante de identificacin. Resultados inesperados o
soportes magnticos, planes de pruebas y
incorrectos se pueden aadir a un sistema de notificacin
procedimientos) y planificar en caso de posibles
de problemas, cuyos datos sern la base para procesos de
situaciones no deseables. Si se mantiene ms de una
depuracin posteriormente y para arreglar los errores que
lnea base del software al mismo tiempo, una importante
causaron problemas durante las pruebas. Las anomalas
consideracin de planificacin es el tiempo y esfuerzo
no clasificadas como errores tambin se podran
necesario para asegurarse de que se ha usado la
documentar, en caso de que ms tarde resulte que
configuracin correcta para establecer el entorno de
producen problemas ms serios de lo que se pens
pruebas.
originalmente. Los informes de pruebas tambin son una
5.2.2 Generacin de casos de pruebas entrada para los procesos de requerimientos de cambi
[Kan99:c7] (Pos96:c2; IEEE1008-87:s4, s5) de gestin (vase el KA de la Gestin de la
Bo

Configuracin del Software, punto 3, Control de la


La generacin de caos de pruebas se basa en el nivel de configuracin del software)
pruebas que se vaya a realizar y en las tcnicas de
pruebas a usar. Los casos de pruebas deberan estar bajo 5.2.7 Seguimiento de defectos
el control de un software de gestin de configuraciones e [Kan99:c6]
incluir los resultados esperados para cada prueba.
Los fallos observados durante las pruebas son, en la
5.2.3 Desarrollo en el entorno de pruebas mayora de los casos, debidos a errores o defectos en el
[Kan99:c11] software. Dichos defectos se pueden analizar para
determinar cuando fueron introducidos en el software,
El entorno usado para las pruebas debera ser compatible
que clase de error produjo que se aparecieran (por
con las herramientas de ingeniera de software. Debera ejemplo requerimientos definidos pobremente,
facilitar el desarrollo y control de casos de pruebas y la declaraciones incorrectas de variables, fallo de memoria
anotacin y recuperacin de los resultados esperados, los
o errores de programacin) y cuando deberan haber sido
scripts y otros materiales de pruebas. observados en el software por primera vez. La
5.2.4 Ejecucin informacin del seguimiento de defectos se usa para
[Bei90:c13; Kan99:c11] (IEEE1008-87:s6, s7) determinar qu aspectos de la ingeniera del software
necesitan mejorase y la efectividad de anlisis y pruebas
La ejecucin de las pruebas deberan incluir un principio anteriores.
bsico de experimentacin cientfica: todos los pasos
MATRIZ DE TEMAS VS. MATERIAL DE REFERENCIA

[Bec02] [Bei09] [Jor02] [Kan99] [Kan01] [Lyu96] [Per95] [Pfl01] [Zhu97]


1. Fundamentos de las Pruebas
Software
1.1Terminologa relacionada
Definiciones de pruebas
y terminologa c1 c2 c2s2.2
Errores Vs. Fallos c2 c2s2.2 c1 c8
1.2 Cuestiones Clave
Criterios de seleccin de Pruebas/
Criterios de idoneidad de Pruebas c8s7.3 s1.1

r
Efectividad de las Pruebas/
Objetivos de las Pruebas c1s1.4 c21
Realizar pruebas para la
c1 c1

do
identificacin de defectos
El problema del orculo c1
Limitaciones tericas y prcticas
de las pruebas c2
El problema de los caminos no
alcanzables c3
Posibilidad de hacer pruebas c3, c13
1.3 Relacin de las pruebas con
otras actividades

2. Niveles de Pruebas
rra
2.1El objeto de la prueba c1 c13 c8
Pruebas de Unidad c1 c17 c8s7.3

Pruebas de Integracin c13,


c8s7.4
c14
Pruebas del sistema c15 c9
2.2 Objetivos de las Pruebas c8 c9s8.3
Pruebas de aceptacin/
calificacin c10 c9s8.5
Pruebas de Instalacin c9 c9s8.6
Bo

Pruebas Alfa y Beta c13


Pruebas de conformidad/Pruebas
funcionales/Pruebas de correccin
c7 c8

Materializacin de la confiabilidad
y evaluacin
c7 c9s8.4

Pruebas de Regresin c11,


c7 c9s8.1
c12
Pruebas de Rendimiento c17 c9s8.3
Pruebas de Desgaste c17 c9s8.3
Pruebas de Continuidad

Pruebas de Recuperacin c17 c9s8.3


Pruebas de Configuracin c9s8.3
Pruebas de Facilidad de Uso c8 c8 c9s8.3
Desarrollo dirigido por Pruebas III
[Bec02] [Bei09] [Jor02] [Kan99] [Kan01] [Lyu96] [Per95] [Pfl01] [Zhu97]
3. Tcnicas de Pruebas
3.1Pruebas Basadas en la
Intuicin y Experiencia
Pruebas ad hoc c1
Pruebas por Exploracin c3
3.2 Basadas en la Especificacin
Particiones de Equivalencia c7 c7
Anlisis de los Valores Lmite c6 c7
Tablas de Decisin c10s3 c9
Basadas en Mquinas de

r
Estado Finito c11 c8
Basadas en las
especificaciones formales s2.2

do
Pruebas aleatorias c13 c7
3.3 Basadas en el cdigo
Criterio basado en el Flujo de
Control c3 c10 c8
Criterio basado en el Flujo de
Datos c5
Modelos de referencia para
pruebas basadas en cdigo c3 c5

3.4 Basadas en errores


rra
Conjeturar errores c7

Pruebas por mutacin s3.2,


c17
s3.3
3.5 Basadas en el uso

Perfil operativo c15 c5 c9

Pruebas Orientadas a la
Confiabilidad del Software
c6

3.6 Basadas en la Naturaleza de


la Aplicacin
Bo

Pruebas Orientadas a Objetos

Basadas en Componentes c17 c8s7.5


Pruebas para Internet

Pruebas para GUI c20


Pruebas para Programas
Concurrentes
Pruebas de conformidad de
Protocolos
Pruebas para Sistemas de
Tiempo Real
Pruebas para Sistemas de
Seguridad Crtica
3.7 Seleccionando y combinando
c17
tcnicas

Funcional y Estructuralmente c1,


c1s2.2
c11s11.3
Deterministas Vs. Aleatorias
[Bec02] [Bei09] [Jor02] [Kan99] [Kan01] [Lyu96] [Per95] [Pfl01] [Zhu97]
4. Medidas de las Pruebas
4.1 Evaluacin de un
programa
Medidas para ayudar en la
planificacin y diseo de c7s4.2 c9
pruebas de programas
Tipos de errores,
clasificacin y Estadsticas c2 c1 c8
Densidad de fallos c20
Vida de las pruebas c9
Modelos de crecimiento de

r
la Confiabilidad c7 c9

4.2 Evaluacin de las pruebas


realizadas

do
Medidas de la
cobertura/completitud c9 c8
Introduccin de errores c8

Puntuacin de la mutacin s3.2,


s3.3
Comparacin y efectividad
relativa de las tcnicas c8, c11 c17 s5

5. El proceso de las pruebas


5.1 Consideraciones prcticas
rra
Actitudes y programacin
egoless c13s3.2 c8
Guas para las pruebas III c5
Gestin del proceso de
pruebas c1-c4 c9
Documentacin y productos
de las pruebas c13s5 c12 c19 c9s8.8
Equipo de Pruebas Interno
Vs. c13s2.2,
c15 c4 c9
Equipo Independiente c1s2.3
Estimacin Coste/Esfuerzo
y otras Medidas del Proceso c4, c21
Bo

Finalizacin c2s2.4 c2
Reutilizacin de pruebas y
patrones de pruebas c13s5

5.2 Actividades de Pruebas


Planificacin c12 c19 c87s7.6
Generacin de casos de
Prueba c7
Desarrollo del entorno de
Pruebas c11
Ejecucin c13 c11

Evaluacin de los resultados c20,


c21
Notificacin de Problemas/
Diario de pruebas c5 c20
Seguimiento de los defectos c6
REFERENCIAS RECOMENDADAS PARA LA [Kan01] C. Kaner, J. Bach, and B. Pettichord, Lessons
Learned in Software Testing, Wiley Computer Publishing,
GESTIN DEL SOFTWARE 2001.
[Bec02] K. Beck, Test-Driven Development by Example,
[Lyu96] M.R. Lyu, Handbook of Software Reliability
Addison-Wesley, 2002.
Engineering, Mc-Graw-Hill/IEEE, 1996, Chap. 2s2.2, 5-7.
[Bei90] B. Beizer, Software Testing Techniques,
[Per95] W. Perry, Effective Methods for Software Testing,
International Thomson Press, 1990, Chap. 1-3, 5, 7s4, 10s3,
John Wiley & Sons, 1995, Chap. 1-4, 9, 10-12, 17, 19-21.
11, 13.
[Pfl01] S. L. Pfleeger, Software Engineering: Theory and
[Jor02] P. C. Jorgensen, Software Testing: A Craftsman's
Practice, second ed., Prentice Hall, 2001, Chap. 8, 9.
Approach, second edition, CRC Press, 2004, Chap. 2, 5-10,
12-15, 17, 20. [Zhu97] H. Zhu, P.A.V. Hall and J.H.R. May, Software
Unit Test Coverage and Adequacy, ACM Computing
[Kan99] C. Kaner, J. Falk, and H.Q. Nguyen, Testing
Surveys, vol. 29, iss. 4 (Sections 1, 2.2, 3.2, 3.3), Dec.
Computer Software, second ed., John Wiley & Sons, 1999,
1997, pp. 366-427.
Chaps. 1, 2, 5-8, 11-13, 15.

r
do
rra
Bo
APNDICE A. LISTA DE LECTURAS (Kan99) C. Kaner, J. Falk, and H.Q. Nguyen, Testing
ADICIONALES Computer Software, second ed., John Wiley & Sons,
1999.
(Bac90) R. Bache and M. Mllerburg, Measures of
Testability as a Basis for Quality Assurance, Software (Lyu96) M.R. Lyu, Handbook of Software Reliability
Engineering Journal, vol. 5, March 1990, pp. 86-92. Engineering, Mc-Graw-Hill/IEEE, 1996.

(Bei90) B. Beizer, Software Testing Techniques, (Mor90) L.J. Morell, A Theory of Fault-Based
International Thomson Press, second ed., 1990. Testing, IEEE Transactions on Software Engineering,
vol. 16, iss. 8, August 1990, pp. 844-857.
(Ber91) G. Bernot, M.C. Gaudel and B. Marre,
Software Testing Based On Formal Specifications: a (Ost88) T.J. Ostrand and M.J. Balcer, The Category-
Theory and a Tool, Software Engineering Journal, Partition Method for Specifying and Generating
Nov. 1991, pp.387-405. Functional Tests, Communications of the ACM, vol. 31,
iss. 3, June 1988, pp. 676-686.
(Ber96) A. Bertolino and M. Marr, How Many Paths
Are Needed for Branch Testing? Journal of Systems (Ost98) T. Ostrand, A. Anodide, H. Foster, and T.
Goradia, A Visual Test Development Environment for

r
and Software, vol. 35, iss. 2, 1996, pp. 95-106.
GUI Systems, presented at ACM Proc. Intl Symp. On
(Ber96a) A. Bertolino and L. Strigini, On the Use of Software Testing and Analysis (ISSTA 98), Clearwater
Testability Measures for Dependability Assessment, Beach, Florida, 1998.

do
IEEE Transactions on Software Engineering, vol. 22,
iss.2, Feb. 1996, pp. 97-108. (Per95) W. Perry, Effective Methods for Software
Testing, John Wiley & Sons, 1995.
(Bin00) R.V. Binder, Testing Object-Oriented Systems
Models, Patterns, and Tools, Addison-Wesley, 2000. (Pfl01) S.L. Pfleeger, Software Engineering: Theory and
Practice, second ed., Prentice-Hall, 2001, Chap. 8, 9.
(Boc94) G.V. Bochmann and A. Petrenko, Protocol
Testing: Review of Methods and Relevance for Software (Pos96) R.M. Poston, Automating Specification-Based
Testing, presented at ACM Proc. Intl Symp. on Software Testing, IEEE, 1996.
Software Testing and Analysis (ISSTA 94), Seattle, (Rot96) G. Rothermel and M.J. Harrold, Analyzing
Wash., 1994. Regression Test Selection Techniques, IEEE
(Car91) R.H. Carver and K.C. Tai, Replay and Testing Transactions on Software Engineering, vol. 22, iss. 8,
rra
for Concurrent Programs, IEEE Software, March 1991, Aug. 1996, p. 529.
pp. 66-74. (Sch94) W. Schtz, Fundamental Issues in Testing
(Dic93) J. Dick and A. Faivre, Automating the Distributed Real-Time Systems, Real-Time Systems
Generation and Sequencing of Test Cases from Model- Journal, vol. 7, iss. 2, Sept. 1994, pp. 129-157.
Based Specifications, presented at FME 93: (Voa95) J.M. Voas and K.W. Miller, Software
Industrial-Strength Formal Methods, LNCS 670, Testability: The New Verification, IEEE Software, May
Springer-Verlag, 1993. 1995, pp. 17-28.
(Fran93) P. Frankl and E. Weyuker, A Formal Anlisis (Wak99) S. Wakid, D.R. Kuhn, and D.R. Wallace,
of the Fault Detecting Ability of Testing Methods, Toward Credible IT Testing and Certification, IEEE
IEEE Transactions on Software Engineering, vol. 19, Software, July-Aug. 1999, pp. 39-47.
iss. 3, March 1993, p. 202.
Bo

(Wey82) E.J. Weyuker, On Testing Non-testable


(Fran98) P. Frankl, D. Hamlet, B. Littlewood, and L. Programs, The Computer Journal, vol. 25, iss. 4, 1982,
Strigini, Evaluating Testing Methods by Delivered pp. 465-470.
Reliability, IEEE Transactions on Software
Engineering, vol. 24, iss. 8, August 1998, pp. 586-601. (Wey83) E.J. Weyuker, Assessing Test Data Adequacy
through Program Inference, ACM Trans. On
(Ham92) D. Hamlet, Are We Testing for True Programming Languages and Systems, vol. 5, iss. 4,
Reliability? IEEE Software, July 1992, pp. 21-27. October 1983, pp. 641-655.
(Hor95) H. Horcher and J. Peleska, Using Formal (Wey91) E.J. Weyuker, S.N. Weiss, and D. Hamlet,
Specifications to Support Software Testing, Software Comparison of Program Test Strategies, presented at
Quality Journal, vol. 4, 1995, pp. 309-327. Proc. Symp. on Testing, Analysis and Verification (TAV
(How76) W. E. Howden, Reliability of the Path 4), Victoria, British Columbia, 1991.
Analysis Testing Strategy, IEEE Transactions on (Zhu97) H. Zhu, P.A.V. Hall, and J.H.R. May,
Software Engineering, vol. 2, iss. 3, Sept. 1976, pp. 208- Software Unit Test Coverage and Adequacy, ACM
215. Computing Surveys, vol. 29, iss. 4, Dec. 1997, pp. 366-
(Jor02) P.C. Jorgensen, Software Testing: A Craftsmans 427.
Approach, second ed., CRC Press, 2004.
APNDICE B. LISTA DE ESTNDARES
(IEEE610.12-90) IEEE Std 610.12-1990 (R2002), IEEE
Standard Glossary of Software Engineering
Terminology, IEEE, 1990.
(IEEE829-98) IEEE Std 829-1998, Standard for
Software Test Documentation, IEEE, 1998.
(IEEE982.1-88) IEEE Std 982.1-1988, IEEE Standard
Dictionary of Measures to Produce Reliable Software,
IEEE, 1988.
(IEEE1008-87) IEEE Std 1008-1987 (R2003), IEEE
Standard for Software Unit Testing, IEEE, 1987.
(IEEE1044-93) IEEE Std 1044-1993 (R2002), IEEE
Standard for the Classification of Software Anomalies,

r
IEEE, 1993.
(IEEE1228-94) IEEE Std 1228-1994, Standard for
Software Safety Plans, IEEE, 1994.

do
(IEEE12207.0-96) IEEE/EIA 12207.0-1996 //
ISO/IEC12207:1995, Industry Implementation of Int.
Std. ISO/IEC 12207:95, Standard for Information
Technology-Software Life Cycle Processes, IEEE, 1996.
rra
Bo
Bo
rra
do
r
CAPITULO 6
MANTENIMIENTO DEL SOFTWARE
ACRNIMOS logstica para actividades de transicin. Las
actividades de postentrega incluyen la
modificacin de software, el entrenamiento, y el
CMMI Capability Maturity Model Integration
funcionamiento del help desk.
ICSM International Conference on Software
El Mantenimiento de Software KA est
Maintenance
relacionado con otros aspectos de ingeniera de
SCM Software Configuration Management
software. Por lo tanto, esta descripcin KA est
SQA Software Quality Assurance
vinculada a otros captulos de la Gua.
V&V Verification and Validation
Y2K Year 2000

r
DESGLOSE DE PUNTOS DEL
MANTENIMIENTO DEL SOFTWARE

do
INTRODUCCIN:
El desglose de los puntos del Mantenimiento de
Los esfuerzos de desarrollo de software dan Software KA se muestra en la Figura 1.
como resultado la entrega de un producto de
software que satisfaga las exigencias del 1. Fundamentos de mantenimiento de
usuario. software
Como consecuencia el producto de software
debe cambiarse o desarrollarse. Una vez en la Esta primera seccin presenta los conceptos y la
operacin, los defectos son destapados y terminologa que forman una base subyacente a
emergen las nuevas exigencias del usuario. la comprensin de la funcin y el alcance de
La fase de mantenimiento del ciclo de vida mantenimiento de software. Los puntos
rra
comienza despus de un perodo de garanta proporcionan definiciones y enfatizan por qu
pero las actividades de mantenimiento ocurren existe la necesidad de mantenimiento. Las
mucho antes. categoras del mantenimiento de software son
crticas a la comprensin de su significado
El mantenimiento de software es una parte del subyacente.
ciclo de vida de software. Sin embargo,
histricamente, no ha recibido el mismo grado 1.1. Definiciones y Terminologa.
de atencin que otras fases del ciclo de vida. [IEEE1219-98:s3.1.12; IEEE12207.0-
Histricamente, el desarrollo de software ha 96:s3.1,s5.5;ISO14764-99:s6.1]
tenido un perfil mucho ms alto que el
mantenimiento de software en la mayor parte de El Mantenimiento de Software se define en el
organizaciones. estndar IEEE para Mantenimiento de Software,
Bo

Esto ha cambiado ahora, las organizaciones se IEEE 1219, como la modificacin de un


esfuerzan en exprimir al mximo su inversin producto de software despus de su entrega para
de desarrollo de software por lo que desean que corregir los fallos, mejorar el rendimiento u
el software funcione tanto tiempo como sea otros atributos, o adaptar el producto a un
posible. Las preocupaciones sobre el efecto entorno modificado. La norma tambin se ocupa
2000, enfoc una atencin significativa en la de las actividades de mantenimiento antes de la
fase de mantenimiento de software, y el entrega del producto software, pero slo en un
paradigma Open Source ha atrado la atencin a apndice del estndar.
la cuestin de mantener software desarrollado
por otros. El estndar IEEE / EIA 12207 para el ciclo de
vida presenta esencialmente al mantenimiento
En la Gua, el mantenimiento de software es como uno de los primeros procesos del ciclo de
definido como la totalidad de actividades vida y describe el mantenimiento como el
requeridas para proporcionar el apoyo rentable proceso de modificacin del cdigo y la
al software. Las actividades son realizadas documentacin asociada debido a un problema
durante la etapa de preentrega, as como durante o la necesidad de mejora de un producto de
la etapa de postentrega. Las actividades de software. El objetivo es modificar el producto
preentrega incluyen la planificacin para software al mismo tiempo que preservar su
operaciones de postentrega, para la capacidad de integridad. ISO / IEC 14764, estndar
mantenimiento, y para la determinacin de internacional para el mantenimiento del
software, define el mantenimiento del software IEEE / EIA 12207 como una organizacin que
en los mismos trminos que IEEE / EIA y realiza actividades de mantenimiento
12207. [IEEE12207.0-96].
Hace hincapi en la entrega previa de los
aspectos de mantenimiento, planificacin, por En este KA, el trmino a veces se refiere a las
ejemplo. personas que realizan esas actividades,
contrastndolos con los desarrolladores.
1.2. La naturaleza de Mantenimiento
[Pfl01:c11s11.2] IEEE / EIA 12207 identifica las actividades
principales de Mantenimiento de software
El mantenimiento de Software sostiene el como: proceso de implementacin; problema y
producto de software en todas partes de su ciclo anlisis de modificacin; implementacin de la
de vida operacional. La solicitud de modificacin; mantenimiento, revisin y
modificacin son registradas y rastreadas, el aceptacin; migracin, y retirada. Estas
impacto de cambios propuestos es determinado, actividades se examinan en el punto 3.2 de

r
el cdigo y otros artefactos de software son Actividades de Mantenimiento.
modificados, las pruebas son conducidas, y una
nueva versin del producto de software es Los mantenedores pueden aprender del

do
liberada. Proporcionan tambin, entrenamiento conocimiento del desarrollo del software.
y el apoyo a los usuarios. Pfleeger [Pfl01] Ponerse en contacto con los desarrolladores y la
declara que " el mantenimiento tiene un ms temprana participacin por el mantenedor ayuda
amplio alcance para rastrear y controlar que el a reducir el esfuerzo de mantenimiento.
desarrollo. Un mantenedor es definido por el

Mantenimiento del
Software
rra
Fundamentos de Problemas clave en Tcnicas de
Proceso de Mantenimiento
Mantenimiento del Mantenimiento de
Mantenimiento
Software Software

Definicin y Cuestiones Comprensin del


Conceptos Tcnicas Proceso de programa
Mantenimiento
Cuestiones de
Naturaleza del Admnistracin Reingeniera
Bo

Mantenimiento
Actividades de
Mantenimiento
Necesidad de Distribucin de
Ingeniera
Mantenimiento los
Inversa
componentes

Mayora de Costes de Estimacin de Coste


mantenimiento. de Mantenimiento

Evolucin del Medicin del


Software Mantenimiento
del Software

Categoras de
Mantenimiento

Figura 1 Desglose de los temas para Mantenimiento de Software KA


En algunos casos, el ingeniero de software no puede ser correcciones. La comprensin de las categoras de
alcanzado o ha seguido adelante con otras tareas, que mantenimiento del software ayuda a comprender la
crean un desafo adicional para el mantenedor. El estructura de costes del mantenimiento del software.
mantenimiento debe tomar los productos desarrollados, Asimismo, la comprensin de los factores que
el cdigo, o la documentacin, por ejemplo, y apoyarlos influyen en el mantenimiento de un sistema puede
inmediatamente y desarrollar/mantenerlos cada vez ms ayudar a contener los costos. Pfleeger [Pfl01] presenta
sobre el ciclo de vida de software. algunos de los
factores tcnicos y no tcnicos que afectan a los gastos
1.3. Necesidad de Mantenimiento de mantenimiento del software, de la siguiente manera:
[Pfl01:c11s11.2; Pig97: C2s2.3; Tak97:c1] El tipo de aplicacin
La novedad del Software
El Mantenimiento es necesario para asegurar que el La disponibilidad del personal
software sigue satisfaciendo las exigencias del usuario. La vida til de Software

r
El mantenimiento es aplicable al software desarrollado Caractersticas de Hardware
usando cualquier modelo de ciclo de vida de software La Calidad de diseo del software,
(por ejemplo, en espiral). El sistema se cambia debido a construccin, documentacin y pruebas

do
acciones de software correctivas y no correctivas.
El mantenimiento debe ser realizado para:
Corregir defectos 1.5. Evolucin de Software
Mejorar el diseo [Art88:c1s1.0, s1.1, s1.2, c11s1.1, s1.2; Leh97:108-
Llevar a la prctica las mejoras 124], (Bel72)
El interfaz con otros sistemas
Adapta programas con diferente hardware Lehman abord por primera vez el mantenimiento
diferente, software, caractersticas del sistema, e del software y
instalaciones de telecomunicaciones para que la evolucin de los sistemas en 1969. Durante un perodo
puedan ser usados de veinte aos, sus investigaciones condujeron a la
Emigra software
rra
formulacin de ocho "Leyes de
Retira el software Evolucin. [Leh97] Las principales conclusiones
incluyen el hecho de que
Las actividades del mantenedor comprenden cuatro el mantenimiento es una novedad evolutiva y que ayuda
caractersticas claves, segn Pfleeger [Pfl01]: a decisiones de mantenimiento entendiendo lo que le
Mantenimiento de control de las funciones pasa a los sistemas (y el software) con el tiempo. Otros
cotidianas del software declaran que el mantenimiento es un desarrollo
Mantenimiento de control de modificacin de continuado, pero hay una entrada extra- la existencia de
software software grande que nunca se completa y sigue
Perfeccionando funciones existentes desarrollndose. Como esto se desarrolla, se hace ms
Impedir la degradacin del funcionamiento de complejo a no ser que alguna accin sea tomada para
software a niveles inaceptables reducir esta complejidad.
Bo

Ya que el software demuestra el comportamiento


1.4. Costes de Mantenimiento. regular y las tendencias, estos pueden ser medidos. Se
[Abr93 :63-90; Pfl01: c11s11.3; Pig97: c3; han realizado tentativas de desarrollar modelos
Pre01: c30s2.1, c30s2.2] profticos para estimar el esfuerzo de mantenimiento,
como resultado se han desarrollado instrumentos de
El mantenimiento consume una parte importante de los direccin. [Art88], (Bel72).
recursos financieros del ciclo de vida del software. Una
percepcin comn del mantenimiento del software es
que se limita a parchear los fallos. Sin embargo, los 1.6. Las categoras de Mantenimiento
estudios [Art88:c1s1.2; Lie78; Dor02:v1c9s1.5; ieee1219-
y las encuestas a travs de los aos han indicado que la 98:s3.1.1, s3.1.2, s3.1.7, 1.7 un; iso14764-99:s4.1,
mayora, ms del 80%, del esfuerzo de mantenimiento s4.3, s4.10, s4.11, s6.2; Pig97:c2s2.3]
del software se utiliza para
acciones no correctivas. [Abr93, Pig97, Pre01] Jones Lientz y Swanson al principio definieron tres categoras
(Jon91) describe el camino en cual gerentes de de mantenimiento: correctivo, adaptativo, y perfectivo.
mantenimiento de software a menudo incluyen grupos [Lie78;
de mejoras y correcciones en sus informes de gestin. IEEE1219-98] Esta definicin ms tarde fue puesta al
Esta inclusin de solicitudes de mejoramiento con da en el Estndar para el Mantenimiento de Software de
informes de problemas contribuye a algunas de las ideas la ingeniera de Software, ISO/IEC 14764 para incluir
errneas en relacin con el elevado costo de cuatro categoras, as:
Mantenimiento Correctivo: Modificacin 2.1.1. Entendimiento limitado.
reactiva de un producto de software realizado [Dor02:v1c9s1.11.4; Pfl01:c11s11.3; Tak97:c3]
despus de entrega para corregir problemas El entendimiento limitado se refiere a como rpidamente
descubiertos, un ingeniero de software puede entender donde hacer un
Mantenimiento Adaptativo: Modificacin de un cambio o una correccin en el software que este
producto de software realizado despus de individuo no desarroll. La investigacin indica que
entrega para guardar (mantener) un producto de aproximadamente el 40 % al 60 % del esfuerzo de
software utilizable en un ambiente cambiado o mantenimiento est dedicado al entendimiento del
que se cambia. software para ser modificado. As, la comprensin del
Mantenimiento: Perfectivo: Modificacin de un software es de gran inters por parte de los ingenieros de
software despus de la entrega de los productos software.
para mejorar el rendimiento o La comprensin es ms difcil en la representacin
su mantenibilidad orientada por texto, en el cdigo original, por ejemplo,
Mantenimiento preventivo: Modificacin de un donde es a menudo difcil de remontar la evolucin de
software despus de la entrega de productos software por sus liberaciones/versiones si los cambios no

r
para detectar y corregir fallos latentes en el son documentados y cuando los desarrolladores no estn
producto de software antes de que se conviertan disponibles para explicarlo, que es a menudo el caso.
en fallos reales.

do
2.1.2. Pruebas
ISO/IEC 14764 clasifica el mantenimiento adaptativo y [Art88:c9; Pfl01:c11s11.3]
perfectivo como mejoras. Agrupa el mantenimiento
correctivo y preventivo en una categora de correccin, El coste de repetir pruebas sobre un pedazo principal de
como se muestra en la tabla 1. El mantenimiento software puede ser significativo en trminos de tiempo y
preventivo, la categora ms reciente, a menudo es dinero.
realizado sobre productos de software donde la Las pruebas de regresin, las nuevas pruebas selectivas
seguridad es crtica. de un software o el componente para verificar que las
modificaciones no han causado efectos no planeados,
Correction Enhancement son importantes para el mantenimiento. Existe tambin
Correccin Mejoras el desafo de coordinar pruebas cuando los miembros del
rra
Proactiva Preventivo Perfectivo equipo de mantenimiento trabajan sobre problemas
Reactiva Correctivo Adaptativo diferentes al mismo tiempo. [Plf01] Cuando el software
realiza funciones crticas, puede ser imposible llevarlo
fuera de lnea para probar.
Tabla 1: Categoras del Mantenimiento del Software Las pruebas de software KA proporciona la informacin
adicional y se refiere a dicha materia en su punto 2.2.6
2. Los Problemas claves en el Mantenimiento de pruebas de Regresin.
Software
2.1.3. Anlisis de impacto
Un nmero de problemas claves deben ser tratados para [Art88:c3; Dor02:v1c9s1.10; Pfl01: C11s11.5]
asegurar el mantenimiento eficaz de software. Es
Bo

importante que entienda que el mantenimiento del El anlisis de Impacto describe como conducir,
software provee desafos de direccin para los ingenieros con rentabilidad, un anlisis completo del impacto de un
del software. La tentativa de encontrar un defecto en las cambio del software existente. Los mantenedores deben
500K lneas de cdigo del software que el ingeniero de poseer un conocimiento ntimo de la estructura del
software no desarroll es un buen ejemplo. Asimismo software y el contenido [Pfl01]. Usan aquel
competir con los desarrolladores del software por los conocimiento para realizar el anlisis de impacto, que
recursos es una batalla constante. identifica todos los sistemas y los productos de software
La planificacin para una futura liberacin, cifrando la afectados por un cambio de software solicitado y se
siguiente liberacin y enviando parches de la emergencia desarrolla una estimacin de los recursos para llevar a
para la liberacin corriente, tambin crea un desafo. La cabo el cambio. [Art88] Adems, el riesgo de hacer el
seccin siguiente presenta tcnicas y cuestiones de cambio es determinado.
direccin relacionadas con el mantenimiento del La peticin de cambio, a veces llama a una peticin de
software. Han sido agrupadas bajo los ttulos siguientes: modificacin (MR) y a menudo llama un informe del
Cuestiones Tcnicas problema (PR), primero debe ser analizada y traducida
Cuestiones de Direccin en trminos de software. Es realizado despus de que
Coste estimado y una peticin de cambio entra en el proceso de direccin
Medidas de configuracin de software. Arthur [Art88] declara que
los objetivos de anlisis de impacto son:
2.1. Cuestiones Tcnicas La determinacin del alcance de un cambio para
planificar y poner en prctica el trabajo
El desarrollo de las estimaciones exactas de El nfasis principal debe entregar a tiempo y
recursos que tuvo que realizar el trabajo dentro del presupuesto para encontrar necesidades de
El anlisis del perdidas/beneficio del cambio usuario. Al contrario el mantenimiento de software a
solicitado menudo tiene el objetivo de ampliar la vida de software
La comunicacin de la complejidad de un tanto como sea posible. Adems, pueden conducirlo la
cambio dado necesidad de encontrar la demanda de usuario de
actualizaciones de software y mejoras.
La severidad de un problema a menudo se usa para En ambos casos, el rendimiento de la inversin
decidir cmo y cuando un problema ser fijado. El es mucho menos claro, de modo que la opinin en el
ingeniero del software entonces identifica los nivel de direccin sea a menudo de una actividad
componentes afectados. Proporcionando varias principal que consume recursos significativos sin la
soluciones potenciales y luego una recomendacin ventaja clara cuantificable para la organizacin. "
hecha en cuanto al mejor curso de accin. 2.2.2. Proveer de personal
El software diseado con la capacidad de mantenimiento [Dek92:10-17; Dor02:v1c9s1.6; Par86: C4s8-
en mente facilita enormemente el anlisis de impacto. c4s11] (Lie81)

r
Para ms informacin en la Direccin de Configuracin
de Software KA. El proveer de personal se refiere a como atraer y
mantener el personal de mantenimiento de software. El

do
2.1.4. Capacidad de mantenimiento [ISO14764- mantenimiento no es visto a menudo como un trabajo
99:s6.8s6.8.1; Pfl01: C9s9.4; Pig97:c16] encantador. Deklava proporciona una lista de problemas
relacionados con el personal, basados en datos de
Cmo uno promueve y lleva a cabo cuestiones de revisin. [Dek92] Por consiguiente, el personal de
capacidad de mantenimiento durante el desarrollo? El mantenimiento de software con frecuencia es visto como
IEEE [IEEE610.12-90] define la capacidad de " ciudadanos de segunda clase " (Lie81) y la moral por lo
mantenimiento como la facilidad por la cual el software tanto se ve afectada. [Dor02]
puede ser mantenido, mejorado, adaptado, o corregido
para satisfacer exigencias especificadas. ISO/IEC define
la capacidad de mantenimiento como una de las 2.2.3. Proceso
caractersticas de calidad (ISO9126-01). [Pau93; Ben00:c6sb; Dor02:v1c9s1.3]
rra
Las subcaractersticas de capacidad de El proceso de Software es un juego de
mantenimiento deben ser especificadas, repasadas, y actividades, mtodos, prcticas, y las transformaciones
controladas durante las actividades de desarrollo de que pueblan el empleo para desarrollar y mantener el
software para reducir costes de mantenimiento. Si esto se software y los productos asociados. [Pau93] En el nivel
hace satisfactoriamente, la capacidad de mantenimiento de proceso, las actividades de mantenimiento de
del software se mejorar. Esto es a menudo difcil de software comparten mucho en comn con el desarrollo
alcanzar porque las subcaractersticas de capacidad de de software (por ejemplo, la direccin de configuracin
mantenimiento no son un foco importante durante el de software es una actividad crucial en ambos). [Ben00]
proceso de desarrollo de software. Los desarrolladores el Mantenimiento tambin requiere varias actividades
estn preocupados por muchas otras cosas y a menudo que no son encontradas en el desarrollo de software
Bo

desatienden las exigencias del mantenedor. Esto a su (mirar la seccin 3.2 sobre actividades nicas para
modo, y a menudo hace que pueda causar una carencia detalles). Estas actividades presentan desafos a la
de documentacin de sistema, que es una causa principal direccin. [Dor02]
de dificultades en la comprensin de programa y el
anlisis de impacto. Tambin se observa que la presencia
de los procesos, tcnicas, e instrumentos ayudan a 2.2.4. Los aspectos de organizacin de mantenimiento
mejorar la capacidad de mantenimiento de un sistema. [Pfl01:c12s12.1-c12s12.3; Par86:c4s7;
Pig97:c2s2.5; Tak97:c8]

2.2. Cuestiones de direccin Los aspectos de organizacin describen como


identificar cual organizacin y/o la funcin que sern
2.2.1. Alineacin con objetivos de organizacin responsables del mantenimiento de software. El equipo
[Ben00:c6sa; Dor02:v1c9s1.6] que desarrolla el software no necesariamente est
asignado a mantener el software una vez que es
Los objetivos de organizacin describen como operacional.
demostrar el rendimiento de la inversin de actividades En la decisin donde la funcin de mantenimiento de
de mantenimiento de software. software ser asignada, las organizaciones de ingeniera
Bennett [Ben00] declara que " el desarrollo de del software, por ejemplo, pueden quedarse con el
software inicial es por lo general a base de proyecto, con desarrollador original o ir a un equipo distinto (o
una escala de tiempo definida y el presupuesto. mantenedor). A menudo, la opcin mantenedor es
elegida para asegurar que se desarrolla el software para software. [Boe81, Ben00] la importancia es que los datos
satisfacer necesidades de usuario. Ya que hay muchos de proyectos pasados son necesarios en el uso de los
pros y los contras a cada una de estas opciones [Par86, modelos. Jones [Jon98] habla de todos los aspectos sobre
Pig97], la decisin debera ser hecha en una base de caso estimar gastos, incluyendo puntos de funcin
por caso. Es importante que la delegacin o la asignacin (IEEE14143.1-00), y proporciona un captulo detallado
de la responsabilidad de mantenimiento sea a un grupo sobre la valoracin de mantenimiento.
solo o a una persona [Pig97], independientemente de la
estructura de la organizacin. 2.3.3. Experiencia
[ISO14764-00:s7, s7.2, s7.2.1, s7.2.4;
2.2.5. Externalizacin Pig97:c8;Sta94]
[Dor02:v1c9s1.7; Pig97:c9s9.1, s9.2], La Experiencia, en forma de juicio de expertos
(Car94;McC02) (usando la tcnica Delphi, por ejemplo), analogas, y una
estructura de interrupcin de trabajo, deberan ser usados
La externalizacin del mantenimiento forma para aumentar los datos de los modelos paramtricos.
parte de una gran industria. Claramente el mejor acercamiento a la valoracin de

r
Las grandes corporaciones externalizan las carteras mantenimiento es el de combinar datos empricos y
enteras de sistemas de software, incluyendo el experiencia. Deberan proporcionar estos datos como
mantenimiento de software. Ms a menudo, la opcin de consecuencia del uso de un programa de medida.

do
externalizacin es elegida para software menos crtico,
como las empresas no estn dispuestas a perder el
control del software usado en su negocio esencial. Carey
(Car94) relata que unos externalizarn slo si ellos 2.4. Medidas de Mantenimiento del Software
pueden encontrar los modos de mantener el control [IEEE1061-98:A.2; Pig97:c14s14.6; Gra87;
estratgico. Sin embargo, las medidas de control son Tak97:C6s6.1-c6s6.3]
difciles de encontrar. [Dor02] Otro desafo identificado Grady y Caswell [Gra87] hablan del establecimiento de
es la transicin del software al subcontratado. [Pig97] un programa de medida de software extensamente
corporativo, en el cual son descritas las formas de
medida de mantenimiento de software y la coleccin de
2.3 Estimacin del coste del mantenimiento. datos. El Software Prctico y la Medida de Sistemas
rra
(PSM) describen un proceso de medida que es usado por
Los ingenieros de Software deben entender las muchas organizaciones y es bastante prctico. [McG01].
diferentes categoras de mantenimiento de software, para
dirigir la pregunta de estimar el coste de mantenimiento Hay medidas de software que son comunes a
de software. Para planificar objetivos, estimar gastos es todos los esfuerzos, las categoras siguientes se han
un aspecto importante de mantenimiento de software. identificado por el Instituto de Ingeniera de Software
(SEI): tamao; esfuerzo; programa; y calidad. [Pig97]
2.3.1. Valoracin de coste Estas medidas constituyen un buen punto de partida para
[Art88:c3; Boe81:c30; Jon98:c27; el mantenedor. La discusin de proceso y la medida de
Pfl01:c11s11.3;Pig97:c8] producto estn presentes en el Proceso de Ingeniera de
Software KA. El programa de medida de software est
Bo

Este punto fue mencionado en el subasunto 2.1.3, el descrito en la Direccin de Ingeniera del Software KA.
Anlisis de Impacto, aquel anlisis de impacto identifica
todos los sistemas y los productos de software afectados
por la solicitud de un cambio de software y por tanto se 2.4.1. Medidas Especficas
desarrolla una estimacin de los recursos que tuvo que [Car90:s2-s3; IEEE1219-98:Table3;
utilizar para lograr aquel cambio. sta94:p239-249] Abran [Abr93]
[Art88] las estimaciones de Coste de mantenimiento Presentan tcnicas de prueba de referencia internas para
estn afectadas por muchos factores tcnicos y no comparar diferentes organizaciones de mantenimiento
tcnicos. ISO/IEC14764 declara que " los dos accesos internas.
ms populares a la estimacin de recursos para el El mantenedor debe determinar qu medidas son
mantenimiento de software son el empleo de modelos apropiadas por la organizacin en cuestin. [Ieee1219-
paramtricos y el empleo de experiencia " [ISO14764- 98; ISO9126-01; Sta94] sugiere que medidas son ms
99:s7.4.1]. Lo q ms a menudo se usa es una especficas a programas de medida de mantenimiento de
combinacin de ambas. software.

2.3.2. Modelos paramtricos La lista incluye un nmero de medidas para cada una de
[Ben00:s7; Boe81:c30; Jon98:c27; las cuatro subcaractersticas de capacidad de
Pfl01:c11s11.3] mantenimiento:
Algunos trabajos se han emprendido en la aplicacin del Analizar: Las medidas del esfuerzo del
coste paramtrico que modela al mantenimiento de mantenedor o recursos gastados en tentativa de
diagnosticar carencias o causas de fracaso, o en Figura 2 las Actividades de Proceso de Mantenimiento
identificacin de partes para ser modificadas IEEE1219-98
Variabilidad: Las medidas del esfuerzo del
mantenedor asociado con realizacin de una ISO/IEC 14764 [ISO14764-99] es una elaboracin del
modificacin especificada proceso de mantenimiento IEEE/EIA 12207.0-96. Las
Estabilidad: Las medidas del comportamiento actividades del proceso de mantenimiento ISO/IEC son
inesperado de software, incluyendo lo similares a aquellas del IEEE, pero estn agregadas de
encontrado durante las pruebas manera diferente. Las actividades de proceso de
Testeabilidad: Las medidas del esfuerzo del mantenimiento desarrolladas por ISO/IEC se muestran
mantenedor y usuarios en la tentativa de probar en la Figura 3.
el software modificado.
Ciertas medidas de la capacidad de mantenimiento de Proceso de
Implementacin
software pueden obtenerse usando instrumentos
comerciales disponibles. (Lag96; Apr00)

r
3. El Proceso de Mantenimiento
Revisin de
Problema y Anlisis Mantenimiento/
de Modificacin Aceptacin
La subrea Proceso de Mantenimiento proporciona

do
referencias y normas para poner en prctica el proceso de
mantenimiento de software. El punto de Actividades de Modificacin

Mantenimiento diferencia el mantenimiento del Implementacin

desarrollo y muestra su relacin con otras actividades de


la ingeniera del software.
La necesidad del proceso de ingeniera de software est
bien documentada. Los modelos CMMI se aplican a
procesos de mantenimiento de software, y son similares
a los procesos de los desarrolladores. [SEI01] los Migracin

modelos de Capacidad de Madurez del Mantenimiento Retirada

de Software que se dirigen los procesos nicos de


rra
mantenimiento de software son descritos en (Apr03,
Nie02, Kaj01).
Figura 3 ISO/IEC 14764-00 Proceso de Mantenimiento
3.1. Procesos de Mantenimiento de Software
[IEEE1219-98:s4; ISO14764-99:s8; ieee12207.0-
96:s5.5; Par86:c7s1; Pig97:c5; Tak97:c2] Cada uno de las actividades primarias de mantenimiento
de software ISO/IEC 14764 son las siguientes:
Los procesos de Mantenimiento proporcionan La Puesta en prctica de Proceso
actividades necesarias y entradas/salidas detalladas a El Problema y el Anlisis de Modificacin
aquellas actividades, y son descritos en normas de La Puesta en prctica de Modificacin
mantenimiento de software IEEE 1219 y ISO/IEC La Revisin/Aceptacin de Mantenimiento
Bo

14764. La Migracin
El modelo de proceso de mantenimiento descrito en el
El Retiro de Software
Estndar para el Mantenimiento de Software (IEEE1219)
comienza con el esfuerzo de mantenimiento de software
Takang y Grubb [Tak97] proporcionan una historia de
durante la etapa de postentrega y habla de artculos como
modelos de proceso de mantenimiento que conducen
la planificacin para el mantenimiento. Aquel proceso es
hasta el desarrollo del IEEE y modelos de proceso de
representado en la Figura(el Nmero) 2.
ISO/IEC. Parikh [Par86] tambin da una descripcin
buena de un proceso de mantenimiento genrico.
Identificacin Anlisis Recientemente, han surgido metodologas giles que
y Clasificacin promueven procesos ligeros. Esta exigencia surge de la
Peticin de
modificacin Diseo demanda cada vez mayor de la vuelta rpida de servicios
de mantenimiento. Algunos experimentos con el
Entrega
mantenimiento Extremo son presentados en (Poo01).

Implementacin 3.2. Actividades de Mantenimiento


Prueba de Aceptacin
Como ya ha notado, muchas actividades de
Prueba del Sistema
mantenimiento son similares a aquellas de desarrollo de
software. Los mantenedores realizan el anlisis, el
diseo, la codificacin, pruebas, y la documentacin.
Ellos deben rastrear exigencias en sus actividades tal
cual hechas en el desarrollo, y la documentacin de Una actividad importante para el mantenimiento de
actualizacin como el cambio de lneas de fondo. software es la planificacin, y los mantenedores deben
ISO/IEC14764 recomienda que, cuando un mantenedor dirigir las cuestiones asociadas con un nmero de
se refiera a un proceso de desarrollo similar, l debe perspectivas de planificacin:
adaptarlo para encontrar sus necesidades especficas La planificacin de las actividades (el nivel de
[ISO14764-99:s8.3.2.1, 2]. Sin embargo, para el organizacin)
mantenimiento de software, algunas actividades implican La planificacin de Mantenimiento (el nivel de
procesos nicos al mantenimiento de software. transicin)
La planificacin de Liberacin/versin (el nivel
3.2.1. Actividades nicas de software)
[Art88:c3; Dor02:v1c9s1.9.1; ieee1219-98:s4.1, La planificacin de peticin de cambio de
s4.2; ISO14764-99:s8.2.2.1, s8.3.2.1; software
Pfl01:c11s11.2] En el nivel de peticin individual, la planificacin es
realizada durante el anlisis de impacto (irse al

r
Hay un nmero de procesos, actividades, y prcticas que subasunto 2.1.3 Anlisis de Impacto para detalles). La
son nicas al mantenimiento de software, por ejemplo: liberacin/versin que planifica la actividad requiere que
Transicin: una secuencia controlada y el mantenedor [ITI01]:

do
coordinada de actividades durante las cuales el Rena las fechas de disponibilidad de las
software es transferido cada vez ms del solicitudes de los individuos.
desarrollador al mantenedor [Dek92, Pig97] Est de acuerdo con usuarios sobre el contenido
La Aceptacin/Rechazo de Peticin de de liberaciones/versiones subsecuentes
Modificacin: el trabajo de peticin de Identifique conflictos potenciales y desarrolle
modificacin sobre un cierto alternativas
tamao/esfuerzo/complejidad puede ser Evale el riesgo de una liberacin dada y
rechazado por mantenedores y desviado a un desarrolle un plan echarse atrs en caso de los
desarrollador [Dor02], (Apr01) problemas deberan surgir
La peticin de Modificacin y el Escritorio de Informe a todos los tenedores de apuestas
Ayuda de Informe de Problema: una funcin de
rra
apoyo de usuario final que provoca la Mientras que los proyectos de desarrollo de software
evaluacin, la ordenacin, y de presupuesto de tpicamente pueden durar a partir de algunos meses a
solicitud de modificacin [Ben00] algunos aos, la fase de mantenimiento por lo general
El Anlisis de Impacto (mirar la seccin 2.1.3 dura muchos aos. La fabricacin de las estimaciones de
para detalles) recursos es un elemento clave de planificacin de
El Apoyo de Software: ayuda y aconseja a mantenimiento. Los recursos deberan ser incluidos en
usuarios que solicitan informacin (por los presupuestos de proyecto que planifican los
ejemplo, reglas de gestin, validacin, datos desarrolladores. La planificacin de mantenimiento de
que quieren decir y ad hoc solicita/hace un software debera comenzar con la decisin de desarrollar
informe) un nuevo sistema y debera considerar objetivos de
Los Acuerdos de Nivel de Servicio (SLAs) y calidad (IEEE1061-98). Un documento de concepto
Bo

los contratos de mantenimiento especializados debera ser desarrollado, seguido por un plan de
(especficos de dominio) que son mantenimiento.
responsabilidad de los mantenedores (Apr01) El documento de concepto para el mantenimiento
[iso14764-99:s7.2] debe dirigirse a:
3.2.2. Apoyando actividades el alcance del mantenimiento de software.
[IEEE1219-98:A.7, 11 un ; IEEE12207.0-96:c6, la adaptacin del mantenimiento de software
c7;ITI01; Pig97:c10s10.2, c18]; (Kaj01) la identificacin de la organizacin de
mantenimiento de software
Los mantenedores tambin puede realizar actividades de una estimacin de costes de mantenimiento de
apoyo, como la planificacin de mantenimiento de
software
software, la direccin de configuracin de software, la
verificacin y la validacin, la garanta de calidad de El siguiente paso debe desarrollar el correspondiente
software, revisiones, revisiones de cuentas, y el
plan de mantenimiento de software. Este plan debera
entrenamiento de usuario.
estar preparado durante el desarrollo de software, y
Otra actividad de apoyo, entrenamiento del mantenedor, debera especificar como los usuarios solicitarn
tambin es necesaria. [Pig97; IEEE12207.0-96] (Kaj01)
modificaciones de software o relatarn problemas.
El plan de mantenimiento de software [Pig97] es dirigido
3.2.3. Actividad de planificacin de mantenimiento. en IEEE 1219 [IEEE1219-98] Y ISO/IEC 14764.
[IEEE1219-98:A.3; ISO14764-99:s7;
[ISO14764-99] ISO/IEC14764 proporciona directrices
ITI01;Pig97:c7, c8]
para un plan de mantenimiento.
Finalmente, en el nivel ms alto, la organizacin de [ISO14764-99] Ms detalles pueden ser
mantenimiento tendr que conducir actividades de encontrados en la Calidad de Software KA.
planificacin de business (recursos presupuestarios,
financieros, y humanos) justo como todas las otras 4. Las tcnicas para el Mantenimiento
divisiones de la organizacin. El conocimiento de Este subrea introduce algunas tcnicas
direccin requerido para hacer esto se puede encontrar generalmente aceptadas usadas en el mantenimiento de
en el captulo de Disciplinas Relacionadas de Ingeniera software.
del Software.
4.1. Comprensin de Programa
3.2.4. Direccin de configuracin de software [Arn92:c14; Dor02:v1c9s1.11.4; Tak97:c3]
[Art88:c2, c10; IEEE1219-98:A.11;
ieee12207.0-96:s6.2; Pfl01:c11s11.5; Tak97:c7] Los Programadores gastan un tiempo
considerable en la lectura y el entendimiento de
El Estndar IEEE para el Mantenimiento de programas para poner en prctica los cambios.
Software, IEEE 1219 [IEEE1219-98], describe la Los navegadores de cdigo son instrumentos claves para

r
direccin de configuracin de software como un la comprensin de programa.
elemento crtico del proceso de mantenimiento. Los La documentacin clara y concisa puede ayudar en la
procedimientos de direccin de configuracin de comprensin de programa

do
software deberan asegurar la verificacin, la validacin,
y la revisin de cuentas de cada paso requerido para 4.2. Reingeniera
identificar, autorizar, poner en prctica, y liberar el [Arn92:c1, c3-c6; Dor02:v1c9s1.11.4;
producto de software. IEEE1219-98:La b 2], (Fow99)

No es suficiente simplemente con rastrear la Reingeniera se define como el examen y la


Modificacin Solicitada o los informes de Problema. El alteracin de software para reconstituirlo en una nueva
producto de software y cualquier cambio hecho deben forma, e incluye la puesta en prctica subsecuente de la
ser controlados. Este control es establecido poniendo en nueva forma. Dorfman y Thayer [Dor02] declaran que
prctica y haciendo cumplir una direccin de reingeniera es la forma radical de alteracin. Otros creen
configuracin de software aprobada (SCM) que la reingeniera puede ser usada para cambios
rra
El proceso de Direccin de Configuracin de menores. Arnold [Arn92] proporciona un compendio
Software KA proporciona los detalles de SCM y habla comprensivo de puntos, por ejemplo: conceptos,
del proceso por el cual los cambios de software instrumentos y tcnicas, estudios de caso, y riesgos y
solicitado son sometidos, evaluados, y aprobados. SCM ventajas asociadas con la reingeniera.
para el mantenimiento de software es diferente de SCM
para el software de desarrollo en el nmero de los 4.3. Ingeniera de revs
pequeos cambios que deben ser controlados sobre el [Arn92:c12; Dor02:v1c9s1.11.3; IEEE1219-
software operacional. El proceso de SCM es puesto en 98:B.3; Tak97:c4, Hen01]
prctica por desarrollador y despus de un plan de
direccin de configuracin y procedimientos. Los La ingeniera de Revs es el proceso de analizar el
mantenedores participan en la Pasarela de Control de software para identificar los componentes del software y
Bo

Configuracin para determinar el contenido de la sus relaciones mutuas y crear las representaciones del
siguiente liberacin/versin. software en otra forma o en los niveles ms altos de
abstraccin. La ingeniera de revs es pasiva; esto no
3.2.5. Calidad de software cambia el software, o causa el nuevo software. Los
[Art98:c7s4; IEEE12207.0-96:s6.3; ieee1219- esfuerzos de la ingeniera del revs producen grficos de
98:A.7; ISO14764-99:s5.5.3.2] llamada y grficos de flujo de control del cdigo
No es suficiente, tampoco, simplemente esperar lo que original. Un tipo de ingeniera de revs es la nueva
aument la calidad sea resultado del mantenimiento de documentacin. Otro tipo es la recuperacin de diseo
software. Debe ser planificado y procesos puestos en [Dor02]. La nueva factorizacin es la transformacin de
prctica para apoyar el proceso de mantenimiento. Las programa que reorganiza un programa sin cambiar su
actividades y tcnicas para la Garanta de calidad de comportamiento, y es una forma de revs que procura
Software (SQA), V*V, revisiones, y revisiones de mejorar la estructura de programa. (Fow99).
cuentas deben ser seleccionadas de comn acuerdo con
todos los otros procesos para alcanzar el nivel deseado Finalmente, la ingeniera de revs de datos ha
de calidad. Tambin le recomiendan que el mantenedor ganado en importancia durante estos ltimos aos donde
adapte los procesos de desarrollos de software, tcnicos los esquemas lgicos son recuperados de bases de datos
y entregables, por ejemplo probando la documentacin, fsicas. (Hen01)
y pruebe resultados.
de
de
del
del

Prueba

Impacto

Personal
Limitada
Tcnicos
Software

Elementos
Anlisis de
Clave en el
del Software

2.Elementos
los Costes de
del Software

Comprensin

Alineamiento
1.5 Evolucin

con Objetivos
1.3 Necesidad

2.1 Elementos

2.2 Gestin de
1.6 Categoras
1.2 Naturaleza

Mantenimiento
Mantenimiento
Mantenimiento
Mantenimiento

Mantenibilidad
1.4 Mayora de
y Terminologa

Mantenimiento
Mantenimiento

1.1 Definiciones
1.Fundamentos

organizacionales
63-90 63-90 63-90 [Abr 93]

s3 [Arn 92]

[Art88]

s4 [Ben 00]
c1s1.0-
c3 C9 c1s1.2 c1s1.2,c11s1.1 [Boe 81]
,c11s1.2
s5, s9.3, s10.1, s11.
s6a s11.4 s10.2,s10.3
s6c s5 [Car 90]
4
Bo
[Dek 92]

[Dor 97]

10-17 [Hen 01]


v1c9s1.1
0.1- v1c9s1.1
MATRIZ DE TEMAS VS. MATERIAL DE REFERENCIA

v1c9s1.6 v1c9s1.6 v1c9s1.5 [IEEE 610.12-


v1c9s1.1 1.4
0.3 90]
s3.1.1,s3.1.2,
s3.1.7,A.1.7 [IEEE 1061-
98]
S3.1.12 [IEEE 1219-
98]
s6.8, s4.1,s4.3s4.1
0, s4.11,s6.2
s3, s5.5 [IEEE
s6.8.1
12207.0-96]
rra
[ISO 14764-
s6.1
00]

108-124 [Jon 98]


c4s8-
c4s11 [Leh 97]
c11s
c9s9.4 c11s11.5 c11s11.3 [Par 86]
11.3

c16 c2s2.3 c11s11.3 c11s11.2 c11s11.2 [Pfl 01]

c3 C2s2.3 [Pig 97]

C31 [Pre 04]


do
c3 [Sta 04]

c1 [Tak 97]
r
de
de

costes

nicas

Inversa
soporte

para el
software
Medidas
Procesos

Aspectos

especficas

Calidad del
Modelos de

4. Tcnicas
Actividades
Experiencia

del software
2.4 Medidas
de Costes de

Actividad de

Gestin de la

Comprensin
configuracin

4.3 Ingeniera
3. Proceso de
Estimacin de

Actividades de

mantenimiento
mantenimiento

2.3 Estimacin

Mantenimiento
Mantenimiento
Mantenimiento

3.1 Procesos de

3.2 Actividades
parametrizacin
Subcontratacin

Mantenimiento
Mantenimiento

4.1 Programa de

4.2 Reingeniera
planificacin del
organizacionales
63-90 63-90 63-90 63-90

A.2

c12 c1,c3-c6 c14

c7s4 c2,c10 c3 c3
s9.2, s9.2, s7, s8, s9.1,
s2, s6b,s9.2,
s10.3,s11.2, s11.4, s11.4 s9.2,s9.3, s6b s9.1 s8 s9.2 s9.2, s7 s7
s10.1,s11.4
s11.3,s11.5 s11.5 s11.4,s11.5 s10.1
Bo
c30 c30 s7 s6a, s7 s6b

s2-s3

v1c9s1.1 v1c9s1.1 v1c9s1.1 v1c9s1.9 v1c9s


v1c9s1.3
1.3 1.4 1.4 .1 1.7

B.3 B.2 A.7 A.11 A.3 A.7,A.11 s4.1-s4.2 s4 Tabla 3

s6.3 s6.2 c6,c7 s5.5


s7,s7.2,
s8.2.2.1,
s5.5.3.2 s7 s8 s7.2.1,
s8.3.2.1
s7.2.4
rra
c27 c27

c7s1 c4s7
c12s12.1
c11s11.5 c11s11.2 c11s11.3 c11s11.3 -
c12s12.3
c10s10.2 c9s9.1-
c7,c8 c5 c14s14.6 c8 c8 c8 c2s2.5
, c18 c9s9.2

239-249
do
c6s6.1-
C4 c3 c7 c2 c8
c6s6.3
r
RECOMMENDED REFERENCES FOR [Par86] G. Parikh, Handbook of Software Maintenance,
SOFTWARE John Wiley & Sons, 1986.
MAINTENANCE [Pfl01] S.L. Pfleeger, Software Engineering: Theory and
[Abr93] A. Abran and H. Nguyenkim, Measurement of Practice, second ed., Prentice Hall, 2001.
the Maintenance Process from a Demand-Based [Pig97] T.M. Pigoski, Practical Software Maintenance:
Perspective, Journal of Software Maintenance: Best Practices for Managing your Software Investment,
Research and Practice, vol. 5, iss. 2, 1993, pp. 63-90. first ed., John Wiley & Sons, 1997.
[Arn93] R.S. Arnold, Software Reengineering: IEEE [Pre04] R.S. Pressman, Software Engineering: A
Computer Society Press, 1993. Practitioners Approach, sixth ed., McGraw-Hill, 2004.
[Art98] L.J. Arthur, Software Evolution: The Software [SEI01] Software Engineering Institute, Capability
Maintenance Challenge, John Wiley & Sons, 1988. Maturity Model Integration, v1.1, CMU/SEI-2002-TR-
[Ben00] K.H. Bennett, Software Maintenance: A 002, ESC-TR-2002-002, December 2001.
Tutorial, in Software Engineering, M. Dorfman and R. [Sta94] G.E. Stark, L.C. Kern, and C.V. Vowell, A
Thayer, eds., IEEE Computer Society Press, 2000. Software Metric Set for Program Maintenance
[Boe81] B.W. Boehm, Software Engineering Economics, Management, Journal of Systems and Software, vol. 24,

r
Prentice Hall, 1981. iss. 3, March 1994.
[Car90] D.N. Card and R.L. Glass, Measuring Software [Tak97] A. Takang and P. Grubb, Software Maintenance
Design Quality, Prentice Hall, 1990. Concepts and Practice, International Thomson

do
[Dek92] S. Dekleva, Delphi Study of Software Computer Press, 1997.
Maintenance Problems, presented at the International
Conference on Software Maintenance, 1992.
[Dor02] M. Dorfman and R.H. Thayer, eds., Software
Engineering (Vol. 1 & Vol. 2), IEEE Computer Society
Press, 2002.
[Gra87] R.B. Grady and D.L. Caswell, Software Metrics:
Establishing a Company-Wide Program, Prentice Hall,
1987.
[Hen01] J. Henrard and J.-L. Hainaut, Data
Dependency Elicitation in Database Reverse
rra
Engineering, Proc. of the 5th European Conference on
Software Maintenance and
Reengineering (CSMR 2001), IEEE Computer Society
Press, 2001.
[IEEE610.12-90] IEEE Std 610.12-1990 (R2002), IEEE
Standard Glossary of Software Engineering
Terminology, IEEE, 1990.
[IEEE1061-98] IEEE Std 1061-1998, IEEE Standard for
a Software Quality Metrics Methodology, IEEE, 1998.
[IEEE1219-98] IEEE Std 1219-1998, IEEE Standard for
Software Maintenance, IEEE, 1998.
Bo

[IEEE12207.0-96] IEEE/EIA 12207.0-1996//ISO/


IEC12207:1995, Industry Implementation of Int. Std.
ISO/IEC 12207:95, Standard for Information
Technology-
Software Life Cycle Processes, IEEE, 1996.
[ISO9126-01] ISO/IEC 9126-1:2001, Software
Engineering-Product Quality-Part 1: Quality Model,
ISO and IEC, 2001.
[ISO14764-99] ISO/IEC 14764-1999, Software
Engineering-Software Maintenance, ISO and IEC, 1999.
[ITI01] IT Infrastructure Library, Service Delivery and
Service Support, Stationary Office, Office of
Government of Commerce, 2001.
[Jon98] T.C. Jones, Estimating Software Costs,
McGraw- Hill, 1998.
[Leh97] M.M. Lehman, Laws of Software Evolution
Revisited, presented at EWSPT96, 1997.
[Lie78] B. Lienz, E.B. Swanson, and G.E. Tompkins,
Characteristics of Applications Software Maintenance,
Communications of the ACM, vol. 21, 1978.
APPENDIX A. LIST OF FURTHER READINGS (Gra87) R.B. Grady and D.L. Caswell, Software Metrics:
(Abr93) A. Abran, Maintenance Productivity & Quality Establishing a Company-Wide Program, Prentice Hall,
Studies: Industry Feedback on Benchmarking, 1987.
presented (Gra92) R.B. Grady, Practical Software Metrics for
at the Software Maintenance Conference (ICSM93), Project
1993. Management and Process Management, Prentice Hall,
(Apr00) A. April and D. Al-Shurougi, Software Product 1992.
Measurement for Supplier Evaluation, presented at (Jon91) C. Jones, Applied Software Measurement,
FESMA2000, 2000. McGraw-Hill, 1991.
(Apr01) A. April, J. Bouman, A. Abran, and D. Al- (Kaj01) M. Kajko-Mattson, Motivating the Corrective
Shurougi, Software Maintenance in a Service Level Maintenance Maturity Model (Cm3), presented at
Agreement: Controlling the Customers Expectations, Seventh
presented at European Software Measurement International Conference on Engineering of Complex
Conference, Systems, 2001.
2001. (Kaj01a) M. Kajko-Mattson, S. Forssander, and U.

r
(Apr03) A. April, A. Abran, and R. Dumke, Software Olsson,
Maintenance Capability Maturity Model (SM-CMM): Corrective Maintenance Maturity Model: Maintainers
Process Performance Measurement, presented at 13th Education and Training, presented at International

do
International Workshop on Software Measurement Conference on Software Engineering, 2001.
(IWSM (Kho95) T.M. Khoshgoftaar, R.M. Szabo, and J.M.
2003), 2003. Voas,
(Bas85) V.R. Basili, Quantitative Evaluation of Detecting Program Module with Low Testability,
Software presented at the International Conference on Software
Methodology, presented at First Pan-Pacific Computer Maintenance-1995, 1995.
Conference, 1985. (Lag96) B. Lagu and A. April, Mapping for the
(Bel72) L. Belady and M.M. Lehman, An Introduction ISO9126
to Maintainability Internal Metrics to an Industrial
Growth Dynamics, Statistical Computer Performance Research
Evaluation, W. Freiberger, ed., Academic Press, 1972. Tool, presented at SESS, 1996.
rra
(Ben00) K.H. Bennett and V.T. Rajlich, Software (Leh85) M.M. Lehman and L.A. Belady, Program
Maintenance and Evolution: A Roadmap, The Future of Evolution: Processes of Software Change, Academic
Software Engineering, A. Finklestein, ed., ACM Press, Press,
2000. 1985.
(Bol95) C. Boldyreff, E. Burd, R. Hather, R. Mortimer, (Leh97) M.M. Lehman, Laws of Software Evolution
M. Revisited, presented at EWSPT96, 1997.
Munro, and E. Younger, The AMES Approach to (Lie81) B.P. Lientz and E.B. Swanson, Problems in
Application Understanding: A Case Study, presented at Application Software Mainteanance, Communications
the International Conference on Software Maintenance, of
1995. the ACM, vol. 24, iss. 11, 1981, pp. 763-769.
(Boo94) G. Booch and D. Bryan, Software Engineering (McC02) B. McCracken, Taking Control of IT
Performance, presented at InfoServer LLC, 2002.
Bo

with Ada, third ed., Benjamin/Cummings, 1994.


(Cap94) M.A. Capretz and M. Munro, Software (Nie02) F. Niessink, V. Clerk, and H. v. Vliet, The IT
Configuration Management Issues in the Maintenance of Capability Maturity Model, release L2+3-0.3 draft,
Existing Systems, Journal of Software Maintenance: 2002,
Research and Practice, vol. 6, iss. 2, 1994. available at http://www.itservicecmm.org/doc/itscmm-
(Car92) J. Cardow, You Cant Teach Software 123-
Maintenance! presented at the Sixth Annual Meeting 0.3.pdf.
and (Oma91) P.W. Oman, J. Hagemeister, and D. Ash, A
Conference of the Software Management Association, Definition and Taxonomy for Software Maintainability,
1992. University of Idaho, Software Engineering Test Lab
(Car94) D. Carey, Executive Round-Table on Business Technical Report 91-08 TR, November 1991.
Issues in Outsourcing - Making the Decision, CIO (Oma92) P. Oman and J. Hagemeister, Metrics for
Canad, June/July 1994. Assessing Software System Maintainability, presented
(Dor97) M. Dorfman and R.H. Thayer, eds., Software at
Engineering, IEEE Computer Society Press, 1997. the International Conference on Software Maintenance
(Dor02) M. Dorfman and R.H. Thayer, eds., Software 92,
Engineering (Vol. 1 & Vol. 2), IEEE Computer Society 1992.
Press, 2002. (Pig93) T.M. Pigoski, Maintainable Software: Why
(Fow99) M. Fowler et al., Refactoring: Improving the You
Design of Existing Code, Addison-Wesley, 1999.
Want It and How to Get It, presented at the
Third

Software Engineering Research Forum - November


1993,
University of West Florida Press, 1993.
(Pig94) T.M. Pigoski, Software Maintenance,
Encyclopedia of Software Engineering, John Wiley &
Sons, 1994.
(Pol03) M. Polo, M. Piattini, and F. Ruiz, eds.,
Advances
in Software Maintenance Management: Technologies
and
Solutions, Idea Group Publishing, 2003.
(Poo00) C. Poole and W. Huisman, Using Extreme

r
Programming in a Maintenance Environment, IEEE
Software, vol. 18, iss. 6, November/December 2001, pp.
42-50.

do
(Put97) L.H. Putman and W. Myers, Industrial Strength
Software - Effective Management Using Measurement,
1997.
(Sch99) S.R. Schach, Classical and Object-Oriented
Software Engineering with UML and C++, McGraw-
Hill,
1999.
(Sch97) S.L. Schneberger, Client/Server Software
Maintenance, McGraw-Hill, 1997.
(Sch87) N.F. Schneidewind, The State of Software
Maintenance, Proceedings of the IEEE, 1987.
rra
(Som96) I. Sommerville, Software Engineering, fifth ed.,
Addison-Wesley, 1996.
(Val94) J.D. Vallett, S.E. Condon, L. Briand, Y.M. Kim,
and V.R. Basili, Building on Experience Factory for
Maintenance, presented at the Software Engineering
Workshop, Software Engineering Laboratory,
1994.
Bo
APPENDIX A. LIST OF STANDARDS (IEEE14143.1-00) IEEE Std 14143.1-2000//
(IEEE610.12-90) IEEE Std 610.12-1990 (R2002), IEEE ISO/IEC14143-1:1998, Information Technology -
Standard Glossary of Software Engineering Software
Terminology, Measurement-Functional Size Measurement - Part 1:
IEEE, 1990. Definitions of Concepts, IEEE, 2000.
(IEEE1061-98) IEEE Std 1061-1998, IEEE Standard for (ISO9126-01) ISO/IEC 9126-1:2001, Software
a Engineering-Product Quality - Part 1: Quality Model,
Software Quality Metrics Methodology, IEEE, 1998. ISO
(IEEE1219-98) IEEE Std 1219-1998, IEEE Standard for and IEC, 2001.
Software Maintenance, IEEE, 1998. (ISO14764-99) ISO/IEC 14764-1999, Software
(IEEE12207.0-96) IEEE/EIA 12207.0-1996//ISO/ Engineering - Software Maintenance, ISO and IEC,
IEC12207:1995, Industry Implementation of Int. Std. 1999.
ISO/IEC 12207:95, Standard for Information (ISO15271-98) ISO/IEC TR 15271:1998, Information
Technology - Technology - Guide for ISO/IEC 12207, (Software Life
Software Life Cycle Processes, IEEE, 1996. Cycle Process), ISO and IEC, 1998. [Abr93]

r
do
rra
Bo
Bo
rra
do
r
CAPTULO 7
GESTIN DE CONFIGURACIN DEL SOFTWARE

ACRNIMOS existen algunas diferencias de implementacin entre CM


del hardware y CM del software.
La SCM est ntimamente relacionada con la actividad de
CCB Tarjeta de Control de la Configuracin garanta de calidad del software (SQA). Tal y como se
CM Gestin de configuracin define en el AC de la Calidad del Software, los procesos
FCA Auditora de la Configuracin Funcional de la SQA proporcionan la garanta de que los procesos y
MTBF Tiempo significativo entre fallos. productos de software en el ciclo de vida del proyecto
PCA Auditora de la Configuracin Fsica cumplen los requerimientos especificados gracias a la
SCCB Consejo de Control de Configuracin del planificacin, la promulgacin y ejecucin de un

r
Software conjunto de actividades que proporcionan la confidencia
SCI Elemento de configuracin de software necesaria de que se est teniendo en cuenta la calidad al
SCM Gestin de la configuracin del software construir el software. Las actividades de la SCM ayudan
SCMP Plan de gestin de la configuracin del a conseguir estos objetivos de la SQA. En el contexto de

do
software algunos proyectos (vase, por ejemplo, IEEE730-02),
SCR Peticin de cambios del software requerimientos especficos de las SQA requieren ciertas
SCSA Contabilidad del Estado de la Configuracin actividades de la SCM.
del Software Las actividades de la SCM son: gestin y planificacin de
SEI/CMMI los procesos de la SCM, identificacin de la
Instituto de Ingenieros Software/ Modelo de la configuracin del software, control de la configuracin
Capacidad de Madurez Integrado del software, responsabilidad del estado de la
SQA Garanta de calidad del software. configuracin del software, auditora de la configuracin
SRS Especificacin de Requisitos Software del software y gestin del lanzamiento y entrega del
USNRC Comisin Reguladora de Energa Nuclear de software.
los Estados Unidos
rra
INTRODUCCIN:
Un sistema se puede definir como una coleccin de
componentes que se organizan con el objetivo de
proporcionar una funcin o conjunto de funciones
determinadas (IEEE 610.12-90). La configuracin de un
sistema son las caractersticas funcionales y/o fsicas del
hardware, firmware, software o una combinacin de las
mismas, segn lo dispuesto en la documentacin tcnica
y el resultado obtenido en un producto. (Buc96) Tambin
se puede considerar como una coleccin de versiones
especficas de elementos de hardware, firmware o
software que se combinan de acuerdo con un proceso de
construccin especfico para un satisfacer un propsito La figura 1 muestra una representacin estilizada de estas
Bo

particular. Por tanto la gestin de configuracin es la actividades.


disciplina de identificar la configuracin de un sistema en
momentos diferentes con el propsito de controlar de una
manera sistemtica los cambios en la configuracin y Figura 1 Actividades SCM
mantener la integridad y el seguimiento de de los
cambios en la configuracin durante el ciclo de vida del El KA de la Gestin de Configuracin del Software se
sistema. (Ber97) Se define formalmente (IEEE610.12-90) relaciona con el resto de KAs, ya que el objetivo de la
como Una disciplina que establece direccin y configuracin del software es el producto construido y
seguimiento tcnicos y administrativos a: la usado durante todo el proceso de ingeniera del software.
identificacin y documentacin de las caractersticas
funcionales y fsicas de un elemento de configuracin, DIVISIN DE PUNTOS PARA LA SCM
toma notas y produce informes de cambios en el proceso
y en el estado de implementacin y verifica el 2. Gestin del proceso de la SCM
cumplimiento de los requerimientos especificados.
La gestin de la configuracin del software (SCM) es un La SCM controla la evolucin e integridad de un
proceso que soporta el ciclo de vida del software producto identificando sus elementos, gestionando y
(IEEE12207.0-96) que beneficia a la gestin de controlando los cambios y verificando, guardando y
proyectos, las actividades de desarrollo y mantenimiento, produciendo informes de la informacin de
las actividades de garanta y a los clientes y usuarios del configuracin. Desde la perspectiva del ingeniero de
producto final. software, la SCM facilita las actividades del desarrollo e
El concepto de gestin de configuracin es aplicable a implementacin de cambios. El xito de una
todos los elementos que se pueden controlar, aunque implementacin de la SCM requiere una planificacin y
gestin cuidadosas. Lo que al mismo tiempo requiere que
se conozca el contexto de organizacin y las restricciones elementos de configuracin del software que caigan en
impuestas en el diseo e implementacin del proceso de esta categora.
la SCM. Quizs su relacin ms cercana sea con las
organizaciones de desarrollo de software y
1.1 Contexto de Organizacin para la SCM [Ber92 mantenimiento.
:c4; Dar90:c2; IEEE828-98:c4s2.1] Muchas de las tareas de control de configuracin del
software se realizan en este contexto. Frecuentemente las
Para planificar un proceso de la SCM para un proyecto se mismas herramientas proporcionan soporte para el
necesita comprender el contexto de organizacin y la desarrollo, mantenimiento y la SCM.
relacin entre los distintos elementos de la organizacin.
La SCM interacciona con otras actividades o elementos 1.2 Restricciones y Consejos para el proceso de la SCM
de la organizacin. [Ber92:c5; IEEE828-98:c4s1,c4s2.3; Moo98]
Los elementos de la organizacin responsables de los
procesos de soporte de la ingeniera del software se Las restricciones y consejos para el proceso de la SCM
pueden estructurar de diferentes formas. Aunque la pueden venir de diferentes fuentes. Las normas y
responsabilidad de realizar algunas de las tareas de la procedimientos definidos a nivel corporativo o de la
SCM se podra asignar a otra de las partes de la organizacin pueden tener influencia o prescribir el

r
organizacin como por ejemplo la organizacin de diseo e implementacin de los procesos de la SCM en
desarrollo, normalmente es un elemento definido de la un determinado proyecto. Adems, el contrato entre el
organizacin o un individuo especialmente designado proveedor y el cliente podra contener estipulaciones que
quien tiene la responsabilidad general de la SCM. afecten los procesos de la SCM. Por ejemplo, podra ser

do
El software se desarrolla frecuentemente como una parte necesaria una auditora de configuracin o podra ser
de un sistema mayor que contiene elementos de hardware necesario poner ciertos elementos bajo el control de la
y firmware. En ese caso, las actividades de la SCM CM. Cuerpos de regulacin externos podran imponer
suceden en paralelo con las actividades de CM del restricciones a productos de software que se vayan a
hardware y firmware y debe ser consistente con la CM desarrollar cuando estos puedan afectar potencialmente a
del sistema. Buckley [Buc96:c2] describe la SCM en este la seguridad pblica (vase, por ejemplo, USNRC1.169-
contexto. Tenga en cuenta que el firmware contiene 97). Finalmente, el proceso del ciclo de vida del software
hardware y software, as que son aplicables los conceptos elegido para un proyecto de software en particular y las
de CM de ambos, hardware y software. herramientas elegidas para la implementacin de dicho
La SCM puede interactuar con la actividad de la garanta software, afectan el diseo e implementacin de los
de la calidad de la organizacin en lo que se refiere a procesos de la SCM. [Ber92]
temas como la gestin de registros y de elementos no Las mejores prcticas, como se reflejan en los
rra
vlidos. Respecto a gestin de registros, algunos estndares de la ingeniera del software publicados por
elementos bajo el control de la SCM podran ser tambin varias organizaciones de estndares, se pueden usar como
registros del proyecto, dependiendo del programa de consejo para el diseo e implementacin de un proceso
garanta de calidad de la organizacin. Normalmente la de la SCM. Moore [Moo98] proporciona una gua para
gestin de elementos no vlidos es responsabilidad de la dichas organizaciones y sus estndares. Las mejores
actividad de garanta de la calidad; sin embargo, la SCM prcticas se reflejan tambin en modelos de mejora del
pude ayudar mediante el seguimiento e informes de Gestin de la Configuracin del Software
Bo

Figura 2 Divisin de los puntos de funcin para el KA de la


proceso y valoracin de procesos como el Modelo de la importante y difcil de establecer, segn los proyectos
Capacidad de Madurez Integrado del Instituto de la crecen en tamao y el entorno del proyecto se hace ms
Ingeniera del Software (SEI/CMMI) (SEI01) y el complejo. Las habilidades de estas herramientas
estndar ISO/IEC15504 de la Valoracin del Proceso de proporcionan apoyo para:
la Ingeniera del Software (ISO/IEC15504-98).
La biblioteca de la SCM
1.3 Planificar la SCM Procedimientos de aprobacin y de peticin de
[Dar90:c2; IEEE12207.0-96 :c6.s2.1; cambios del software (SCR)
Tareas de gestin de cambios y cdigo (y los
Som01:c29]
productos relacionados)
La planificacin de un proceso de la SCM para un
proyecto dado debera ser consistente con el contexto de Informes del estado de configuracin del software y
la organizacin, las restricciones que sean aplicables, los reunin de medidas de la SCM
consejos comnmente aceptados y la naturaleza del Auditora de la configuracin del software
proyecto (por ejemplo, tamao lo crtico que sea). La Gestin y seguimiento de la documentacin del
actividades ms importantes cubiertas son: Identificacin software
del Configuracin del Software, Control de la

r
Construccin del software
Configuracin del Software, Responsabilidad del Estado
de la Configuracin del Software, Auditora de la Gestin y seguimiento de los lanzamientos del
Configuracin del Software y la Gestin de Lanzamiento software y su distribucin

do
y Entrega del Software. Adems, se suelen considerar Las herramientas utilizadas en estas reas, tambin
puntos como organizacin y responsabilidades, recursos pueden proporcionar medidas para mejorar el proceso.
y calendarios, seleccin de herramientas e Royce [Roy98] describe siete medidas centrales tiles
implementacin, control de proveedores y subcontratas y para gestionar procesos de la ingeniera del software. La
control de la interaccin. Los resultados de la informacin disponible de las varias herramientas de la
planificacin de actividades se registran en un Plan de SCM es afn al indicador de Trabajo y Progreso de Royce
SCM, que normalmente est sujeto a revisin y auditora y a sus indicadores de calidad de Cambio de Trfico y
de la SQA. Estabilidad, Ruptura y Modularidad, Repeticin del
Trabajo y Adaptabilidad y TMEF (Tiempo medio entre
1.3.1 Organizacin y responsabilidades de la SCM fallos) y Madurez. Los informes para estos indicadores se
[Ber92:c7; Buc96:c3; IEEE828-98:c4s2] pueden organizar de varias maneras, como por elemento
Para prevenir confusin acerca de quin debe realizar de configuracin del software o por tipo del cambio
tareas de la SCM determinadas, se deben identificar requerido.
rra
claramente las organizaciones involucradas en el proceso La figura 3 muestra una asignacin representativa entre
de la SCM. Responsabilidades especficas para una las habilidades de las herramientas y procedimiento a
actividad o tarea de la SCM tambin deben ser asignadas Actividades de la SCM.
a organizaciones, bien por ttulo o por elemento de la
organizacin. Se debe identificar tambin la autoridad
general y las vas de informacin de la SCM, aunque se
podra realizar como parte de la fase de planificacin de
la garanta de la calidad o al nivel de la gestin de
proyectos.
1.3.2 Recursos y planificacin de la SCM [Ber92:c7;
Buc96:c3; IEEE828-98:c4s4; c4s5]
Planificar para la SCM ayuda identifica las necesidades
Bo

de personal y herramientas que se requieren para realizar


las tareas y actividades de la SCM. Aborda cuestiones de
planificacin estableciendo las secuencias de tareas de la
SCM necesarias e identifica sus relaciones con los planes
de proyecto y los hitos establecidos en la fase de
planificacin del proyecto. Tambin se especifican las
necesidades de formacin requeridas para la
implementacin de los planes y formacin de personal. Figura 3 Caracterizacin de herramientas de SCM y
procedimientos relacionados
1.3.3 Seleccin e implementacin de herramientas
[Ber92:c15; Con98:c6; Pre01:c31] En este ejemplo, el sistema de gestin de cdigo soporta
la utilizacin de bibliotecas de software al controlar el
Las actividades de la SCM son soportadas por diferentes acceso a los elementos de la biblioteca, coordinar las
tipos de habilidad de herramientas y procedimientos para actividades de mltiples usuarios y ayudar a hacer
su uso. Dependiendo de la situacin, se pueden combinar cumplir los procedimientos operativos. Otras
estas habilidades de herramientas con herramientas herramientas soportan el proceso de construir software y
manuales, herramientas automticas que proporcionan producir documentacin de los elementos de software
una habilidad simple de la SCM, herramientas contenidos en las bibliotecas. Herramientas para la
automticas que integran una coleccin de habilidades de gestin de peticiones de cambios del software soportan
la SCM (e incluso otras habilidades) o entornos de los procedimientos de control de cambios que se aplican
herramientas integrados que cubren las necesidades de a elementos de software. Otras herramientas pueden
mltiples participantes en el proceso de ingeniera del proporcionar gestin de bases de datos y habilidad para
software (por ejemplo, SCM, desarrollo, V&V). El apoyo generar informes usados para las actividades de gestin,
de herramientas automticas se comienza a ser ms
desarrollo y garanta de calidad. Como se ha mencionado que se realizan requerimientos especficos durante las
antes, las habilidades de diferentes tipos de herramientas actividades del da a da.
se podran integrar en sistemas de la SCM, los cuales, a Se pueden utilizar varias fuentes de informacin para
su vez, tienen un acoplamiento alto con otras actividades encontrar consejo, basado en la informacin producida
del software. durante la actividad de planificacin, acerca de la
Al planificar, el ingeniero de software elige las creacin y mantenimiento de un SCMP, como en
herramientas de la SCM apropiadas para el trabajo. La [IEEE828-98:c4]. Esta referencia proporciona
planificacin debe considerar los problemas que podran requerimientos para la informacin que un SCMP ha de
surgir durante la implementacin de dichas herramientas, contener. Tambin define y describe seis categoras de
particularmente si se necesita algn cambio cultural. Una informacin de la GCS que se han de incluir en un
introduccin de los sistemas de la SCM y de SCMP:
consideraciones en su seleccin se puede encontrar en
[Dar90:c3, AppA] se puede encontrar un caso de estudio Introduccin (propsito, extensin, trminos
de seleccin de un sistema de la SCM en [Mid97]. usados)
Informacin complementaria acerca de herramientas de
la SCM se pueden encontrar en al AC de Mtodos y Gestin de la SCM (organizacin,
Herramientas de la Ingeniera del Software. responsabilidades, autoridades, normas

r
aplicables, directivas y procedimientos)
1.3.4 Control Proveedores/Subcontratas Actividades de la SCM (identificacin de la
[Ber92:c13; Buc96:c11; IEEE828-98:c4s3.6] configuracin, control de la configuracin, etc.)

do
Un proyecto de software podra hacer uso o adquirir Planificacin de la SCM (coordinacin con otras
productos software que se hayan comprado, como actividades del proyecto)
compiladores u otras herramientas. La planificacin de la Recursos de la SCM (herramientas, recursos
SCM considera si y como se pondrn estos elementos fsicos y recursos humanos)
bajo control de configuracin (por ejemplo, integrados en
bibliotecas de proyecto) y como se evaluarn y Mantenimiento del SCMP
gestionarn los cambios y actualizaciones.
Consideraciones similares son aplicables al software 1.5 Seguimiento de la Gestin del la Configuracin
subcontratado. En este caso, tambin se deben establecer del Software [Pau93:L2-87]
los requerimientos de la SCM a ser impuestos a los Despus de que el proceso de la SCM de ha
procesos de la SCM del subcontratista como parte del implementado, puede ser necesario un cierto nivel de
subcontrato y los medios para monitorizar que se cumple seguimiento para asegurarse de que las previsiones de la
con ellos. El ltimo incluye consideraciones acerca de
rra
SCM se llevan a cabo adecuadamente (vase, por
que informacin de la SCM ha de estar disponible para ejemplo [Buc96]). Probablemente habr requerimientos
poder monitorizar, de una manera eficiente, que se especficos de la SQA para asegurarse de que se cumplen
cumplen los requerimientos. los procesos y procedimientos especficos de la SCM.
Esto podra requerir que una autoridad de la SCM se
1.3.5 Control de Interaccin [IEEE828-98:c4s3.5] asegure de que aquellos que tengan responsabilidades
Cuando un elemento de software interacciona con otro asignadas realizan las tareas de la SCM definidas de una
elemento de software o hardware, un cambio a cualquiera manera correcta. Este seguimiento podra ser realizado,
de los dos elementos puede afectar al otro. La como parte de una actividad de cumplimiento de
planificacin para los procesos de la SCM considera auditora, por la autoridad de la garanta de la calidad del
como se identificarn los elementos que interaccionan y software.
como se gestionarn y comunicarn los cambios a dichos El uso de herramientas integradas de la SCM con
elementos. El papel de la SCM puede ser parte de posibilidades de control de procesos puede hacer la tarea
de seguimiento ms fcil. Algunas herramientas facilitan
Bo

proceso de nivel de sistema ms general para el control y


especificacin de las interacciones y podra afectar a las comprobar que el proceso se cumple al mismo tiempo
especificaciones de las interacciones, planes de control de que proporcionan al ingeniero de software la flexibilidad
las interacciones e documentos de control de las de adaptar procedimientos. Otras herramientas se
interacciones. En este caso, la planificacin de la SCM aseguran de que el proceso se siga, dejando menos
para el control de las interacciones ocurre dentro del flexibilidad al ingeniero de software. Los requerimientos
contexto del proceso de nivel de sistema. Se puede de seguimiento y los niveles de flexibilidad que se
encontrar una discusin del rendimiento de las proporcionarn al ingeniero de software son criterios
actividades del control de las interacciones en importantes durante la seleccin de herramientas.
[Ber92:c12].
1.5.1 Medidas y mediciones de la SCM
1.4 Plan de la SCM [Ber92:c7; Buc96:c3; [Buc96:c3; Roy98]
Pau93:L2-81] Se pueden asignar medidas de la SCM para proporcionar
informacin especfica acerca de la evolucin del
Los resultados de la planificacin de la SCM para un producto o una visin interna de cmo funcionan los
proyecto dado se reflejan en un Plan de Gestin de la procesos de la SCM. Un objetivo relacionado con el
Configuracin del Software, que es un documento vivo seguimiento de los procesos de la SCM es descubrir
que sirve como referencia para los procesos de la SCM. oportunidades para mejorar los procesos. Las mediciones
El documento se mantiene (o sea, se actualiza y aprueba) de procesos de la SCM proporcionan un buen medio para
segn vaya siendo necesario durante el ciclo de vida del monitorizar la efectividad de las actividades de la SCM
software. Al implementar un SCMP, normalmente es de una manera continuada. Estas mediciones son tiles
necesario desarrollar un conjunto de procedimientos para caracterizar el estado actual del proceso y para
subordinados ms detallados, que definirn la forma en proporcionar una base para hacer comparaciones con el
tiempo. Los anlisis de las mediciones pueden 2.1.2 Elemento de configuracin del software
proporcionar ideas que lleven a cambios en el proceso y a [Buc96:c4;c6; Con98:c2; Pre04:c27]
las correspondientes actualizaciones del SCMP. Un elemento de configuracin de software (SCI) es una
Las bibliotecas de software y las diferentes habilidades agregacin de software, asignado para tener gestin de
de las herramientas de la SCM proporcionan fuentes para configuracin y se trata como una sola entidad en el
extraer informacin acerca de las caractersticas de los proceso de la SCM (IEEE610.12-90). La SCM controla
procesos de la SCM (e informacin del proyecto y de un conjunto variado de elementos aparte del cdigo. Los
gestin). Por ejemplo, sera til para evaluar los criterios planes, documentacin de especificaciones y diseo,
usados para determinar qu niveles de autoridad son los material de pruebas, herramientas de software, cdigo
ptimos para autorizar ciertos tipos de cambios, el tener fuente y ejecutable, bibliotecas de cdigo, datos y
informacin acerca del tiempo necesario para realizar diccionarios de datos y documentacin para la
distintos tipos de cambios. instalacin, mantenimiento, operacin y uso del software,
Se debe tener cuidado en asegurarse de mantener el estn entre los elementos de software con potencial para
objetivo del seguimiento en los descubrimientos que se convertirse en SCIs.
pueden ganar de las mediciones y no en las mediciones La seleccin de SCIs es un proceso importante en el que
en s mismas. El KA del Proceso de la Ingeniera del se ha de conseguir un equilibrio entre proporcionar una
Software presenta una discusin acerca de medidas del visibilidad adecuada para el control del proyecto y

r
producto y de los procesos. El programa de medidas del proporcionar un nmero manejable de elementos a
software se describe en el KA de la Gestin del controlar. Se puede encontrar una lista con criterios para
Ingeniera del Software. la seleccin de SCIs en [Ber92].

do
1.5.2 Auditoras durante el proceso de la SCM 2.1.3 Relaciones entre elementos de la configuracin
[Buc96:c15] del software [Con98:c2; Pre04:c27]
Se pueden llevar a cabo auditoras durante el proceso de La relacin estructural entre los SCIs seleccionados y sus
ingeniera del software para investigar el estado actual de partes constituyentes, afectan a otras actividades o tareas
elementos especficos de la configuracin o para evaluar de la SCM, como la construccin del software o el
la implementacin del proceso de la SCM. Las auditoras anlisis del impacto de los cambios propuestos. El
durante el proceso de la SCM proporcionan un seguimiento adecuado de estas relaciones es tambin
mecanismo ms formal para monitorizar aspectos importante como soporte a las operaciones de
seleccionados del proceso y se podra coordinar con la seguimiento. La necesidad de asignar los elementos
funcin del SQA. Vase tambin el punto 5 Auditando la identificados a la estructura del software y la necesidad
Configuracin del Software. de soportar la evolucin de los elementos de software y
rra
sus relaciones, se debera considerar durante el diseo de
3. Identificacin de la Configuracin del los mtodos de identificacin para los SCIs.
Software
[IEEE12207.0-96:c6s2.2] 2.1.4 Versiones del software [Bab86:c2]
La actividad de la identificacin de la configuracin del Los elementos de software evolucionan al mismo tiempo
software identifica elementos que se han de controlar, que el proyecto de software avanza. Una versin de un
establece mtodos de identificacin para los elementos y elemento de software es un elemento identificado y
sus versiones y establece las herramientas y tcnicas que especificado particularmente. Se puede pensar en ella
se usarn para adquirir y gestionar los elementos como el estado de un elemento que evoluciona.
controlados. Estas actividades proporcionan la base para [Con98:c3-c5] Una revisin es una nueva versin de un
las otras actividades de la SCM. elemento que reemplazar la versin anterior. Una
variante es una nueva versin de un elemento que se
2.1 Identificando los Elementos a Controlar [Ber92:c8; aadir la configuracin sin reemplazar la versin
Bo

IEEE828-98:c4s3.1; Pau93:L2-83; Som05:c29] anterior.


Un primer paso para controlar cambios es identificar los 2.1.5 Lnea base [Bab86:c5; Buc96:c4; Pre04:c27]
elementos de software a ser controlados. Esto requiere
comprender la configuracin del software en el contexto La lnea base de un software es un conjunto de elementos
de la configuracin del sistema, seleccionando elementos Figura 4 Adquisicin de elementos
de configuracin de software, desarrollando estrategias
para etiquetar elementos de software y describir las
relaciones entre ellos e identificar las lneas base que se
usarn, adems de los procedimientos de adquisicin de
elementos para una lnea base.

2.1.1 Configuracin del software


[Buc96:c4; c6, Pre04:c27]
Una configuracin del software es el conjunto de
caractersticas funcionales y fsicas del software tal y
como se han definido en la documentacin tcnica o
conseguido en un producto final (IEEE610.12-90). Se
puede ver como parte de una configuracin del sistema
ms general.
de configuracin del software que se han designado el producto final. Se ha de asociar el nivel apropiado de
formalmente y fijados en un momento determinado control de la SCM (la lnea base asociada y el nivel de
durante el ciclo de vida del software. El trmino se usa autoridad para cambios) a cada biblioteca. La seguridad,
tambin para referirse a una versin en particular de un en trminos de control de acceso y medios de copia de
elemento de la configuracin del software acordada seguridad, es un aspecto clave en la gestin de
previamente. En cualquiera de los casos, la lnea base bibliotecas. Un modelo de una biblioteca de software se
solo se puede cambiar por medio de procedimientos de puede encontrar en [Ber92:c14].
control de cambios formales. Una lnea base representa, La herramienta/s que se usan en cada biblioteca deben
junto con todos los cambios aprobados para la lnea base, soportar los controles de la SCM que sean necesarios
la configuracin actual aprobada. para dicha biblioteca, en trminos de control de los SCIs
Algunas lneas base comnmente utilizadas son la y de acceso a la biblioteca. En el nivel de la biblioteca de
funcional, la asignada, la de desarrollo y la de productos desarrollo, esto significa la capacidad de gestin de
(vase por ejemplo [Ber92]). La lnea base funcional se cdigo que dar servicio a desarrolladores, ingenieros de
corresponde con los requerimientos del sistema ya mantenimiento y SCM. Est enfocada a gestionar las
verificados. La lnea base asignada se corresponde con versiones de los elementos de software al mismo tiempo
las especificaciones de los requerimientos del sistema y que da soporte a las actividades de mltiples
las especificaciones de los requerimientos de las desarrolladores. A mayores niveles de control, el acceso

r
interacciones entre software. La lnea base de desarrollo es ms restringido y el principal usuario en la SCM.
representa la configuracin evolutiva del software en Estas bibliotecas son tambin una fuente importante de
momentos determinados durante el ciclo de vida del informacin para mediciones del trabajo realizado y del
proyecto. La autoridad de cambios para dicha lnea base progreso.

do
es normalmente la responsabilidad de la organizacin de
desarrollo, pero se podra compartir con otras 4. Control de la Configuracin del Software
organizaciones (por ejemplo la de SCM o la de Pruebas). [IEEE12207.0-96:c6s2.3; Pau93:L2-84]
La lnea base de un producto se corresponde con el
producto de software completo, entregado para
integracin de sistemas. Las lneas base a usar en un Al control de la configuracin del software le concierne
proyecto determinado, junto con los niveles de autoridad la gestin de cambios durante el ciclo de vida del
asociados necesarios para la aprobacin de cambios, se software. Cubre los procesos que determinan los cambios
identifican normalmente en el SCMP. que se realizarn, la autoridad requerida para aprobar
ciertos cambios, el soporte para la implementacin de
dichos cambios y el concepto de desviacin formal de los
2.1.6 Adquisicin de elementos de configuracin del requerimientos del proyecto, adems de las cancelaciones
software [Buc96:c4]
rra
de requerimientos. La informacin derivada de estas
Diferentes elementos de configuracin del software se actividades es til para medir el trfico de cambios y
ponen bajo el control de la SCM en momentos distintos; ruptura y aspectos por rehacer.
lo que significa que se aaden a una lnea base en
particular en momentos especficos del ciclo de vida del
software. El evento que da comienzo al proceso es la 3.1 Peticin, Evaluacin y Aprobacin de Cambios del
terminacin de alguna forma de tarea formal de Software [IEEE828-98:c4s3.2;
aceptacin, como una revisin formal. La figura 2 Pre04:c27;Som05:c29]
caracteriza el crecimiento de elementos en una lnea base El primer paso para gestionar cambios en elementos
durante el ciclo de vida. Esta figura se basa en el modelo controlados es determinar los cambios a realizar. El
de cascada solamente por motivos ilustrativos; los proceso de peticin de cambio del software (vase la
subscripts usados en la figura indican la versin de los Figura 5) proporciona procedimientos formales para
elementos durante su evolucin. La peticin de cambios recoger y registrar peticiones de cambios, evaluando el
del software (SCR) se describe en el punto 3.1 Peticin, coste e impacto potencial de un cambio propuesto y
Bo

Evaluacin y Aprobacin de Cambios del Software. aceptar, modificar o rechazar el cambio propuesto. Las
Seguidamente de la adquisicin de un SCI, los cambios a peticiones de cambios de elementos de la configuracin
dicho elemento se deben aprobar formalmente de la del software los puede originar cualquiera durante
manera apropiada para el elemento y la lnea base cualquier momento del ciclo de vida del software y puede
involucrados, como se define en el SCMP. Despus de la incluir una solucin propuesta y una prioridad. Una
aprobacin, el elemento se incorpora en la lnea base del fuente de peticin de cambios es la iniciacin de acciones
software siguiendo el procedimiento apropiado.

2.2 Biblioteca de Software


[Bab86:c2; c5; Buc96:c4; IEEE828- 98:c4s3.1;
Pau93:L2-82; Som01:c29]
Una biblioteca de software es una coleccin controlada
de software y los documentos relacionados, y est
diseada para ayudar en el desarrollo del software, su uso
y mantenimiento (IEEE610.12-90). Tambin tiene un
papel durante las actividades de gestin de lanzamientos
y entrega de software. Se pueden usar varios tipos de
bibliotecas de software, cada uno se corresponde con un
nivel de madurez determinado del elemento de software.
Por ejemplo, una biblioteca de desarrollo podra dar
soporte durante la codificacin y una biblioteca de Figura 5 Flujo de un Proceso de Control de Cambios
soporte de proyectos podra dar soporte a las pruebas,
mientras que una biblioteca maestra se podra utilizar en
correctivas en respuesta a los informes de problemas. El PCBs, es necesario proporcionar los medios para seguir
tipo de cambio (por ejemplo, un defecto o mejora) se que PCBs se aaden a que versiones de software y lneas
registra normalmente en la SCR, sin importar la fuente. bases particulares. Como parte de la finalizacin del
Esto proporciona la oportunidad de seguir defectos y proceso de cambios, los cambios completados podran
recoger mediciones de la actividad de cambios por tipo sufrir auditoras de configuracin y verificacin de la
de cambio. Una vez se ha recibido un SCR, se realiza una calidad del software. Esto incluye asegurarse de que solo
evaluacin tcnica (tambin conocida como anlisis del se han realizado los cambios aprobados. El proceso de
impacto) para determinar el tamao de las modificaciones peticin de cambios mencionado anteriormente, aadir
necesarias en caso de que se aceptara la peticin de la informacin de la aprobacin para el cambio a la
cambio. Para realizar esta tarea es importante un buen documentacin de la SCM (y otras).
entendimiento de las relaciones entre elementos de La implementacin real de un cambio est soportada por
software (y posiblemente hardware). Finalmente, la las habilidades de la herramienta de bibliotecas, que
evaluacin de los aspectos tcnicos y de gestin de la proporciona gestin de versiones y soporte para el
peticin de cambios, ser realizada por una autoridad almacenamiento de cdigo. Estas herramientas
establecida, de acuerdo con la lnea base afectada, el SCI proporcionan como mnimo habilidades para llevar a
involucrado y la naturaleza del cambio y entonces se cabo el control de de las versiones asociadas.
aceptar, modificar, rechazar o pospondr el cambio Herramientas ms potentes pueden dar soporte al

r
propuesto. desarrollo en paralelo y entornos geogrficamente
distribuidos. Estas herramientas podran aparecer como
aplicaciones especializadas separadas, bajo el control de
3.1.1 Consejo de Control de la Configuracin del un grupo independiente de la SCM. Tambin podran

do
Software [Ber92:c9; Buc96:c9,c11; Pre04:c27] aparecer integradas como parte del entorno de la
ingeniera del software. Finalmente, podran ser tan
La autoridad para aceptar o rechazar los cambios elementales como un sistema de control de cambios
propuestos, es normalmente la responsabilidad de una
entidad conocida como Consejo de Control de la rudimentario proporcionado por el sistema operativo.
Configuracin (CCB). En proyectos pequeos, dicha
autoridad normalmente reside en el Jefe de Proyecto o 3.3 Desviaciones y Remisiones [Ber92:c9;
algn otro individuo elegido, en vez de en un consejo de Buc96:c12]
varias personas. Puede haber mltiples niveles de
autoridad de cambios, dependiendo de una variedad de Las limitaciones impuestas al esfuerzo de la ingeniera
criterios, como cuan crtico sea el elemento involucrado, del software o las especificaciones producidas durante las
la naturaleza del cambio (por ejemplo, el impacto en el actividades de desarrollo podran contener necesidades
presupuesto y planificacin), o el momento actual en el que no pueden ser satisfechas en el punto designado del
rra
ciclo de vida. La composicin de CCBs que se utilice ciclo de vida. Una remisin es la autorizacin para
para un sistema determinado varia en relacin a estos abandonar una necesidad antes del desarrollo del
criterios (siempre atendera un representante de la SCM). elemento. Un rechazo es la autorizacin para utilizar un
Cuando el alcance de la autoridad de un CCB es est elemento, despus de su desarrollo, que se aleja de la
limitado solamente al software, se le conoce como necesidad de alguna manera. En estos casos se usa un
Consejo de Control de Configuracin del Software procedimiento formal para ganar la aprobacin para la
(CCBS). Las actividades del CCB estn sujetas desviacin o remisin de las necesidades.
normalmente a auditoras de la calidad de software o
revisiones. 5. Registro del Estado de la Configuracin del
Software
3.1.2 Proceso de peticin de cambios del software
[Buc96:c9,c11; Pre04:c27] [IEEE12207.0-96:c6s2.4; Pau93:L2-85;
Pre04:c27;Som05:c29]
Bo

Un proceso efectivo de peticin de cambio del software


(SCR) requiere el uso de herramientas de soporte y La contabilidad del estado de la configuracin del
procedimientos, desde formularios de papel y un software (SCSA) es la actividad de registrar y
procedimientos documentado hasta la herramienta proporcionar la informacin necesaria para una gestin
electrnica para generar peticiones de cambio, efectiva de la configuracin del software
imponiendo el flujo del proceso de cambios, capturando
las decisiones del CCB y produciendo informacin del 4.1 Informacin del Estado de la Configuracin del
proceso de cambio. Un enlace entre las habilidades de
esta herramienta y el sistema de informe de errores puede Software [Buc96:c13; IEEE828-98:c4s3.3]
facilitar el seguimiento de soluciones para los informes La actividad de la SCSA disea y opera un sistema para
de errores. Las descripciones del proceso de cambios y la captura y generacin de los informes necesarios
los formularios de soporte (informacin) aparecen en durante el ciclo de vida. Como en cualquier sistema de
gran nmero de las referencias, por ejemplo [Ber92:c9]. informacin, se debe identificar, recoger y mantener la
informacin del estado de la configuracin que se ha de
gestionar segn las configuraciones evolucionan. Se
necesitan varias mediciones e informacin para dar
3.2 Implementando Cambios en el Software [Bab86:c6; soporte al proceso de la SCM y para cubrir las
Ber92:c9; Buc96:c9,c11; IEEE828-98:c4s3.2.4; necesidades de informes del estado de la configuracin
Pre04:c27; Som05:c29] de las actividades de gestin, ingeniera del software y
otras actividades relacionadas. Los tipos de informacin
Las PCBs aprobadas se implementan utilizando los disponible incluyen la identificacin de la configuracin
procedimientos de software definidos, de acuerdo con los aprobada y la identificacin y estado de implementacin
requerimientos de planificacin aplicables. Como se actual de cambios, desviaciones y remisiones. Se puede
podra implementar simultneamente un nmero de
encontrar una lista parcial con elementos de datos 5.1 Auditora de la Configuracin Funcional del
importantes en [Ber92:c10] Software
Es necesario algn tipo de soporte de herramientas
automticas para llevar a cabo las tareas de recogida de El propsito de la FCA del software es asegurarse de que
datos y generacin de informes de la SCSA. Podra ser el elemento de software que se audita es consistente con
una habilidad de la base de datos o una herramienta la especificacin. Los resultados de la verificacin y
independiente o la habilidad del entorno de una validacin del software son actividades clave como
herramienta integrada ms grande. entrada de datos para esta auditora.

4.2 Informes del Estado de la Configuracin del 5.2 Auditora de la Configuracin Fsica del Software
Software [Ber92:c10; Buc96:c13] El propsito de la auditora de la configuracin fsica del
Los informes generados pueden ser usados por varios software (PCA) es asegurarse de que el diseo y la
elementos de la organizacin o del proyecto, incluyendo documentacin de referencia son consistentes con el
el equipo de desarrollo, el equipo de mantenimiento, la producto de software tal y como se ha construido.
gestin del proyecto y las actividades de calidad de
software. Los informes pueden tener la forma de 5.3 Auditoras durante el proceso de una Lnea Base de

r
respuestas inmediatas a preguntas especficas o ser Software
informes prediseados producidos peridicamente.
Alguna de la informacin producida por las actividades Tal y como se menciona anteriormente, las auditoras se
de contabilidad del estado durante el curso del ciclo de pueden llevar a cabo durante el proceso de desarrollo

do
vida podra acabar siendo registros de la garanta de la para investigar el estado actual de un elemento de la
calidad. configuracin especfico. En dicho caso, se podra aplicar
Adems de informar del estado actual de la una auditora a elementos seleccionados de la lnea base
configuracin, la informacin obtenida por la SCSA para asegurarse de que el rendimiento es consistente con
puede usarse como base para varias mediciones tiles las especificaciones o para asegurarse de que la
para la gestin, desarrollo y SCM. Un ejemplo podra ser documentacin continua siendo consistente con el
el nmero de cambios pedidos por ECS y el tiempo elemento de la lnea base que se est desarrollando.
medio necesario para implementar una peticin de
cambio. 6. Gestin del Lanzamiento y Distribucin del
Software [IEEE12207.0-96:c6s2.6]
5. Auditora de la Configuracin del Software
[IEEE828-98:c4s3.4; IEEE12207.0- El trmino lanzamiento se usa en este contexto para
rra
96:c6s2.5;Pau93:L2-86; Pre04:c26c27] referirse a la distribucin un elemento de la configuracin
del software fuera de la actividad de desarrollo. Esto
La auditora de software es una actividad que se realiza incluye tanto lanzamientos internos como la distribucin
para evaluar independientemente la conformidad de a clientes. Cuando una versin diferente de un elemento
productos de software y procesos con las regulaciones, de software est disponible para ser entregada, como las
estndares, guas, planes y procedimientos (IEEE1028- versiones para diferentes plataformas o versiones con
97). Las auditoras se llevan a cabo de acuerdo con un diferentes capacidades, es normalmente necesario
proceso bien definido que consiste en varias preparar una versin especfica y empaquetar los
responsabilidades y papeles de auditora. En materiales adecuados para distribuirla. La biblioteca de
consecuencia, cada auditora se debe planear con software es un elemento clave para realizar las tareas de
cuidado. Una auditora requiere un nmero de personas lanzamiento y distribucin.
que realizarn una variedad de tareas en un periodo de
tiempo bastante reducido. Herramientas que den soporte 6.1 Construccin del Software [Bab86:c6; Som05:c29]
a la planificacin y ejecucin de la auditora pueden
Bo

facilitar el proceso enormemente. Se pueden encontrar La construccin del software es la actividad de combinar
consejos para realizar auditoras de software en varias la versin correcta de los elementos de configuracin del
referencias, como [Ber92:c11, Buc96:c15] y (IEEE1028- software, usando la configuracin de datos apropiada, en
97). un programa ejecutable para su distribucin a los clientes
La actividad de auditora de la configuracin del software u otros receptores, como la actividad de pruebas. Las
determina el grado en que un elemento satisface las instrucciones de construccin se aseguran de que se
caractersticas funcionales y fsicas. Se pueden realizar toman los pasos de construccin adecuados y en la
auditoras informales de este tipo en momentos clave del secuencia correcta. Adems de construir software para un
ciclo de vida. Hay dos tipos de auditoras que podran ser nuevo lanzamiento, la SCM normalmente necesita ser
requeridas por el contrato (por ejemplo, en contratos para capaz de reproducir lanzamientos previos para
software crtico): la Auditora de la Configuracin recuperacin, pruebas, mantenimiento u otros propsitos
Funcional (FCA) y la Auditora de la Configuracin de lanzamiento adicionales.
Fsica (PCA). El completar con xito estas auditoras El software se construye usando versiones particulares de
puede ser un prerrequisito para establecer la lnea base la herramientas de soporte, como compiladores. Podra
del producto. Buckley [Buc96:c15] contrasta los ser necesario reconstruir una copia exacta de un elemento
objetivos de las FCA y PCA en los contextos de software de configuracin que se haya construido previamente. En
y hardware y recomienda que se evale cuidadosamente ese caso, las herramientas de soporte y las instrucciones
la necesidad de una FCA y PCA de software antes de de construccin asociadas deben de estar bajo el control
realizarlas. de la SCM para asegurarse de la disponibilidad de la las
versiones correctas de las herramientas.
Las habilidades de una herramienta son tiles para
seleccionar la versin correcta de elementos de software
para un entorno destino determinado y para el proceso de
construir el software automticamente con las versiones las variantes correctas de dichos elementos, dada la
seleccionadas y los datos de configuracin apropiados. aplicacin que se le quiere dar al producto. La
En proyectos grandes con desarrollo en paralelo o en informacin que documenta el contenido fsico del
entornos de desarrollo distribuido, estas habilidades de lanzamiento se conoce como documento de descripcin
las herramientas son necesarias. La mayora de los de la versin. Las notas del lanzamiento normalmente
entornos de ingeniera del software proporcionan esta describen nuevas habilidades, problemas conocidos y
habilidad. Estas herramientas varan en complejidad, requisitos necesarios de la plataforma para la operacin
desde las que requieren que el ingeniero de software adecuada del producto. El paquete que se distribuir
aprenda un lenguaje de guiones especfico a soluciones tambin contiene instrucciones de instalacin o
grficas que ocultan la mayor parte de la complejidad en actualizacin. El ltimo se puede complicar porque
una solucin de construccin inteligente. algunos usuarios podran tener productos que son
El proceso y los productos de la construccin estn antiguos por varias versiones. Finalmente, en algunos
sujetos, normalmente, a verificacin de la calidad del casos, se podran requerir la actividad de gestin de
software. Los resultados de un proceso de construccin se lanzamientos para el seguimiento de la distribucin del
podran necesitar para futuras referencias y podran producto a varios clientes o sistemas objetivo. Un
convertirse en registros de la garanta del software. ejemplo sera el caso en el que se requiriese que un
proveedor tiene que notificar a un cliente de nuevos

r
6.2 Gestin del Lanzamiento del Software [Som05:c29] problemas.
Las habilidades de una herramienta son necesarias para
La gestin de lanzamiento del software conlleva la dar soporte a estas funciones de gestin de los
identificacin, empaquetamiento y distribucin de los lanzamientos. Es til tener una conexin con las

do
elementos de un producto, por ejemplo, programas habilidades de la herramienta para dar soporte a los
ejecutables, documentacin, notas de lanzamiento y datos procesos de peticiones de cambios, de tal forma que se
de configuracin. Dado que los cambios pueden ocurrir puedan relacionar los contenidos de un lanzamiento con
constantemente, una de las preocupaciones en la gestin los SCR que se han recibido. Esta habilidad de las
de lanzamientos es determinar cundo realizar un herramientas tambin podra mantener informacin en
lanzamiento. La severidad de los problemas solucionados varias plataformas destino y de varios entornos de
por el lanzamiento afecta a esta decisin (Som01). La clientes.
tarea de empaquetamiento debe identificar que elementos
del producto se deben distribuir y por tanto seleccionar
rra
Bo
MATRIZ DE TEMAS VS. MATERIAL DE REFERENCIA

[IEEE1220
[IEEE828-

[Moo98]

[Som05]
[Con98]

[Mid97]
[Bab86]

[Roy98]
[Buc96]

[Dar90]

[Pau93]
[Ber92]

[Pre04]
7.0-96]
98]
1.Gestin del proceso SCM
1.1Contexto de Organizacin para SCM c4 c2 c2 c4s2.1
c4s1,
1.2Restricciones y Consejos para SCM c5 6.2.1 *
c4s2.3
1.3Planificacin de SCM c2 c29
Organizacin y responsabilidades c7 c3 c4s2
c4s4,
Recursos y planificacin c7 c3
c4s5
c3,
Seleccin de herramientas e
c15 c6 App * *
implementacin

r
A
Control Proveedores/Subcontratas c13 c11 c4s3.6
Control de Interaccin c12 c4s3.5
L2-

do
1.4Plan de SCM c7 c3 c4
81
L2-
1.5Seguimiento de la SCM * c4
87
188-202,
Mtricas y mediciones c3
283-298
Auditorias durante el proceso de SCM c15
2. Identificacin de la Configuracin
c6s2.2
Sw
2.1Identificando los elementos a L2-
c8 c4s3.1 c29
controlar 83
c4,
Configuracin software c27
c6
rra
c4,
Elementos de configuracin software * c2 c27
c6
Relaciones entre elementos de
c2 c27
Configuracin Sw
Versiones Software c2 c27
Lnea Base c5 * c4 c27
Adquisicin de elementos de
c4
Configuracin Sw
c2, L2-
2.2Biblioteca Software c14 c4 c4s3.1 c29
c5 82
L2-
3. Control de la Configuracin Sw c6s2.3
84
3.1 Peticin, Evaluacin y Aprobacin
c4s3.2 c27 c29
de Cambios
Bo

c9,
Control de la Configuracin del Sw c9 c27
c11
c9,
Proceso de Peticin de Cambios Sw c9 c27
c11
c9,
3.2 Implementando Cambios del Sw c6 c9 c4s3.2.4 c27 c29
c11
3.3 Desviaciones y Remisiones c9 c12
4. Registro del Estado de la L2-
c6s2.4 c27 c29
Configuracin Sw 85
4.1 Informacin del Estado de la
c10 c13 c4s3.3
Configuracin Sw
4.2 Informes del Estado de la
c10 c13
Configuracin Software
L2- c27,
5. Auditora de la Configuracin Sw c11 c15 c4s3.4 c6s2.5
86 c26
5.1 Auditora de la Configuracin
Funcional
5.2 Auditora de la Configuracin Fsica
5.3 Auditora de una Lnea Base de Sw
6. Gestin del Lanzamiento y
c6s2.6
Distribucin Sw
6.1 Construccin Software c6 c29
6.2 Gestin del Lanzamiento Sw c29
REFERENCIAS RECOMENDADAS PARA SCM [IEEE12207.0-96] IEEE/EIA 12207.0-1996//ISO/
IEC12207:1995, Industry Implementation of Int. Std.
[Bab86] W.A. Babich, Software Configuration ISO/IEC 12207:95, Standard for Information Technology-
Management, Coordination for Team Productivity, Addison- Software Life Cycle Processes, IEEE, 1996.
Wesley, 1986.
[Mid97] A.K. Midha, Software Configuration Management
[Ber92] H.R. Berlack, Software Configuration Management, for the 21st Century, Bell Labs Technical Journal, vol. 2,
John Wiley & Sons, 1992. iss. 1, Winter 1997, pp. 154-165.

[Buc96] F.J. Buckley, Implementing Configuration [Moo98] J.W. Moore, Software Engineering Standards: A
Management: Hardware, Software, and Firmware, second Users Roadmap, IEEE Computer Society, 1998.
ed., IEEE Computer Society Press, 1996.
[Pau93] M.C. Paulk et al., Key Practices of the Capability
[Con98] R. Conradi and B. Westfechtel, Version Models Maturity Model, Version 1.1, technical report CMU/SEI-
for Software Configuration Management, ACM Computing 93-TR-025, Software Engineering Institute, Carnegie
Mellon University, 1993.

r
Surveys, vol. 30, iss. 2, June 1998.

[Dar90] S.A. Dart, Spectrum of Functionality in [Pre04] R.S. Pressman, Software Engineering: A
Configuration Management Systems, Software Engineering Practitioners Approach, Sixth ed, McGraw-Hill, 2004.

do
Institute, Carnegie Mellon University, 1990.
[Roy98] W. Royce, Software Project Management, A United
[IEEE828-98] IEEE Std 828-1998, IEEE Standard for Framework, Addison-Wesley, 1998.
Software Configuration Management Plans, IEEE, 1998.
[Som05] I. Sommerville, Software Engineering, seventh ed.,
Addison-Wesley, 2005.
rra
Bo
APNDICE A. LISTA DE LECTURAS ADICIONALES
(Hoe02) A. v. d. Hoek, Configuration Management
Yellow Pages, 2002, available at
(Bab86) W.A. Babich, Software Configuration http://www.cmtoday.com/yp/configuration_management.ht
Management, Coordination for Team Productivity, Addison- ml.(Hum89) W. Humphrey, Managing the Software
Wesley, 1986. Process,Addison-Wesley, 1989.

(Ber92) H.R. Berlack, Software Configuration Management, (Pau95) M.C. Paulk et al., The Capability Maturity Model,
John Wiley & Sons, 1992. Guidelines for Improving the Software Process, Addison-
Wesley, 1995.
(Ber97) E.H. Bersoff, Elements of Software Configuration
Management, in Software Engineering, M. Dorfman and (Som01a) I. Sommerville, Software Configuration
R.H. Thayer, eds., IEEE Computer Society Press, 1997. Management, presented at ICSE SCM-6 Workshop, Berlin,
2001.
(Buc96) F.J. Buckley, Implementing Configuration
Management: Hardware, Software, and Firmware, second
(USNRC1.169-97) USNRC Regulatory Guide 1.169,

r
ed., IEEE Computer Society Press, 1996.
Configuration Management Plans for Digital Computer
Software Used in Safety Systems of Nuclear Power Plants,
(ElE98) K. El-Emam et al., SPICE, The Theory and
presented at U.S. Nuclear Regulatory Commission,
Practice of Software Process Improvement and Capability

do
Washington, D.C., 1997.
Determination, presented at IEEE Computer Society, 1998.
(Vin88) J. Vincent, A. Waters, and J. Sinclair, Software
(Est95) J. Estublier, Software Configuration
Quality Assurance: Practice and Implementation, Prentice
Management, presented at ICSE SCM-4 and SCM-5
Hall, 1988.
Workshops, Berlin, 1995.
(Whi91) D. Whitgift, Methods and Tools for Software
(Gra92) R.B. Grady, Practical Software Metrics for Project
Configuration Management, John Wiley & Sons, 1991.
Management and Process Management, Prentice Hall, 1992.
.
rra
Bo
APNDICE B. LISTA DE ESTNDARES

(IEEE730-02) IEEE Std 730-2002, IEEE Standard for


Software Quality Assurance Plans, IEEE, 2002.

(IEEE828-98) IEEE Std 828-1998, IEEE Standard for


Software Configuration Management Plans, IEEE, 1998.

(IEEE1028-97) IEEE Std 1028-1997 (R2002), IEEE


Standard for Software Reviews, IEEE, 1997.

(IEEE12207.0-96) IEEE/EIA 12207.0-1996//ISO/


IEC12207:1995, Industry Implementation of Int. Std.
ISO/IEC 12207:95, Standard for Information Technology-
Software Life Cycle Processes, IEEE, 1996.

r
(IEEE12207.1-96) IEEE/EIA 12207.1-1996, Industry
Implementation of Int. Std. ISO/IEC 12207:95, Standard for

do
Information Technology-Software Life Cycle Processes -
Life Cycle Data, IEEE, 1996.

(IEEE12207.2-97) IEEE/EIA 12207.2-1997, Industry


Implementation of Int. Std. ISO/IEC 12207:95, Standard for
Information Technology-Software Life Cycle Processes -
Implementation Considerations, IEEE, 1997.

(ISO15846-98) ISO/IEC TR 15846:1998, Information


Technology - Software Life Cycle Processes - Configuration
Management, ISO and IEC, 1998.
rra
Bo
Bo
rra
do
r
CAPTULO 8
GESTIN DE LA INGENIERA DEL SOFTWARE

ACRNIMOS Estos dos ltimos se cubren con ms detalle en la


descripcin de este KA. A pesar de todo, esto no va en
detrimento de la importancia de los temas de gestin
PMBOK Gua al Proyecto de Gestin del Cuerpo de organizacional.
Conocimientos
SQA Garanta de Calidad del Software Dado que la unin con las disciplinas sealadas
obviamente, la de gestin es importante, se describir
con ms detalle que las otras descripciones del KA. Los

r
INTRODUCCIN aspectos de gestin organizacional son importantes en
La Gestin de la Ingeniera del Software puede definirse trminos de su impacto sobre la ingeniera del software
como la aplicacin para actividades de gestin en gestin de polticas, por ejemplo: polticas

do
planificacin, coordinacin, mediciones, monitoreo, organizativas y estndares que proporcionan el marco en
control e informes que asegure un desarrollo y el que se desenvuelve la ingeniera del software. Puede
mantenimiento del software sistemtico, disciplinado y que se necesite que estas polticas se vean afectadas por
cuantificado (IEEE610.12-90). los requisitos de un software de desarrollo y
mantenimiento efectivo, y puede que se necesite
El KA de Gestin de la Ingeniera del Software, por establecer un nmero de polticas especficas de
tanto, se encarga de la gestin y medicin de la ingeniera del software para una gestin eficaz de la
ingeniera del software. A pesar de que medir es un ingeniera del software a nivel organizacional. Por
aspecto importante en todas las KAs, no es hasta aqu ejemplo, normalmente se necesitan polticas para
que se presenta el tema de programas de medicin. establecer procesos especficos a nivel organizacional o
rra
Aunque por una parte sea verdad afirmar que, en cierto procedimientos para tareas de ingeniera del software
sentido, debiera ser posible gestionar la ingeniera del tales como el diseo, la implementacin, la estimacin,
software de la misma manera que cualquier otro proceso el seguimiento y los informes. Tales polticas son
(complejo) existen aspectos especficos de los productos esenciales, por ejemplo, para una gestin de la ingeniera
software y de los procesos del ciclo de vida del software del software eficaz a largo plazo, ya que establecen una
que complican una gestin efectiva slo algunos de los base consistente sobre la que analizar actuaciones
cuales se apuntan a continuacin: anteriores e implementar mejoras.

La percepcin de los clientes es tal que con Otro aspecto importante de la gestin es la gestin del
frecuencia existe una falta de aprecio de la personal: las polticas y procedimientos para contratar,
complejidad inherente a la ingeniera del software, entrenar y motivar al personal y actuar como mentor del
particularmente en relacin al impacto que produce desarrollo de una carrera son importantes no slo a nivel
de proyecto sino tambin para el xito a largo plazo de
Bo

cambiar los requisitos.


Es casi inevitable que los propios procesos de una organizacin. Todo el personal de desarrollo del
ingeniera del software generen la necesidad de software puede haber sido entrenado del mismo modo o
nuevos o modificados requisitos del cliente. puede presentar retos para la gestin del personal (por
Como resultado, el software se construye con ejemplo, mantener el capital en un contexto en el que la
frecuencia mediante un proceso iterativo en vez de tecnologa subyacente sufre cambios continuos y
mediante una secuencia de tareas cerradas. rpidos). Con frecuencia tambin se menciona la gestin
de la comunicacin como un aspecto pasado por alto
La ingeniera del software incorpora necesariamente
pero importante de la actuacin de los individuos en un
aspectos de creatividad y de disciplina mantener
campo en el que es necesario un entendimiento preciso
un balance apropiado entre los dos es con frecuencia
de las necesidades del usuario y de los complejos,
difcil.
requisitos y diseos. Finalmente, es necesaria la gestin
El grado de novedad y de complejidad del software
de la cartera de trabajo, que es la capacidad de tener una
son con frecuencia extremadamente altos.
visin general, no slo del conjunto del software en
La tasa de cambio de la tecnologa subyacente es desarrollo sino tambin del software que ya se est
muy rpida. utilizando en la organizacin. Ms an, la reutilizacin
Con respecto a la ingeniera del software, las actividades del software es un factor clave en el mantenimiento y
de gestin tienen lugar en tres niveles: gestin mejora de la productividad y competitividad. Una
organizacional y de infraestructura, gestin de proyectos, reutilizacin eficaz requiere una visin estratgica que
y programa de planificacin y control de mediciones. refleje el poder nico y los requisitos de esta tcnica.
Los ingenieros del software deben entender los aspectos de ingeniera del software se realizan de una manera
de gestin que se encuentran influidos de modo singular consistente con las polticas, objetivos y estndares
por el software, y adems conocer sus aspectos ms de la organizacin.
generales, incluso en los primeros cuatro aos tras La medicin se refiere a la asignacin de valores y
graduarse, como est marcado en la Gua. etiquetas a los aspectos de la ingeniera del software
La cultura y comportamiento organizacional y la gestin (productos, procesos, y recursos segn los define
comercial funcional en trminos de consecucin de [Fen98]) y a los modelos que se derivan de ellos, se
metas, aportan la gestin en cadena, la publicidad, la hayan desarrollado estos modelos utilizando
venta y la distribucin, todas ellas influyen, aunque sea tcnicas estadsticas, conocimientos expertos u otras
indirectamente, en el proceso de ingeniera del software tcnicas.
de una organizacin.
La nocin de gestin de proyectos tiene que ver con esta Las subreas de gestin del proyecto de ingeniera del
KA, como la construccin de artefactos de software software hacen un uso extensivo del subrea de gestin
tiles, se gestiona por lo general como (quizs de ingeniera del software.
programas de) proyectos individuales. A este respecto, No es de extraar que esta KA est relacionada de cerca

r
encontramos un amplio respaldo en la Gua al Proyecto con otras en la Gua del SWEBOK, y sera de particular
de Gestin del Cuerpo de Conocimientos (PMBOK) utilidad leer las siguientes descripciones del KA junto
(PMI00), que en s misma incluye las siguientes KAs de con sta.

do
gestin de proyectos: gestin de integracin del
proyecto, gestin de objetivos del proyecto, gestin del Los Requisitos del Software, en donde se describen
tiempo del proyecto, gestin del coste del proyecto, algunas de las actividades que tendrn que realizarse
gestin de la calidad del proyecto, gestin de los durante la fase de definicin de Iniciacin y Alcance
recursos humanos del proyecto y gestin de las del proyecto.
comunicaciones del proyecto. Est claro que todos estos La Gestin de Configuracin del Software, ya que
temas tienen una relacin directa con el KA de Gestin trata de la identificacin, control, consideraciones de
de la Ingeniera del Software. Sera imposible e estado, y auditora de la configuracin del software,
inadecuado intentar duplicar aqu el contenido de la Gua junto con la gestin de entregas y repartos del
de la PMBOK. En su lugar, sugerimos que el lector que software
est interesado en la gestin de proyectos ms all de lo El Proceso de Ingeniera del Software, porque los
rra
que es especfico a los proyectos de ingeniera del procesos y los proyectos estn estrechamente
software consulte la propia PMBOK. La gestin de relacionados (esta KA tambin describe la medicin
proyectos tambin se encuentra en el captulo sobre las de procesos y productos).
Disciplinas Sealadas de la Ingeniera del Software. La Calidad del Software, ya que la calidad es un
El KA de Gestin de la Ingeniera del Software consiste objetivo constante de la gestin y es una meta con
tanto en el proceso de gestin del proyecto de software muchas actividades que tiene que gestionarse.
en sus primeras cinco subreas, como en la medicin de
la ingeniera del software en su ltima subrea. Aunque DESCOMPOSICIN DE LOS TEMAS DE GESTIN
estos dos temas se suelen considerar como distintos, y de DE LA INGENIERA DEL SOFTWARE
hecho poseen muchos aspectos nicos en s mismos, su
gran cercana ha llevado a que se les trate de manera Hemos creado una descomposicin basada tanto en
temas como en ciclos de vida, ya que el KA de Gestin
Bo

conjunta en esta KA. Desafortunadamente, se comparte


la percepcin comn de que la industria del software de Ingeniera del Software se ve aqu como un proceso
entrega sus productos tarde, por encima de lo organizacional que incorpora la nocin de gestin de
presupuestado, y de pobre calidad e incierta procesos y proyectos. Sin embargo, la base primaria de
funcionalidad. Una gestin regulada por la medicin la descomposicin de alto nivel es el proceso de
un principio presupuesto en cualquier disciplina de gestionar un proyecto de ingeniera del software. Existen
verdadera ingeniera puede ayudar a darle la vuelta a seis subreas principales. Las primeras cinco subreas
esta percepcin. En esencia, una gestin sin medicin, siguen principalmente el Proceso de Gestin IEEE/EIA
cualitativa y cuantitativa, da la sensacin de falta de 12207. Las seis subreas son:
rigor, y medir sin gestionar da la sensacin de una falta
de fines o de contexto. De igual manera, sin embargo, Definicin de iniciacin y alcance, que trata de la
gestin y medicin sin conocimientos de expertos es decisin de iniciar un proyecto de ingeniera del
igualmente ineficaz, por lo que debemos tener cuidado software.
para evitar poner un nfasis excesivo en los aspectos Planificacin del proyecto de software, que afronta
cuantitativos de la Gestin de Ingeniera del Software las actividades emprendidas para prepararse para
(GIS). Una gestin eficaz requiere la combinacin tanto una ingeniera del software exitosa desde una
de nmeros como de experiencia. perspectiva de gestin.
Aqu se adoptan las siguientes definiciones de trabajo: Promulgacin del proyecto de software, que trata de
las actividades de gestin de ingeniera del software
El proceso de gestin se refiere a las actividades que
se emprenden para asegurarse de que los procesos
ampliamente aceptadas que tienen lugar durante la Medicin de la ingeniera del software, que trata del
ingeniera del software. desarrollo e implementacin eficaz de los programas
Repaso y evaluacin, que buscan asegurarse de que de medicin en las organizaciones de ingeniera del
el software es satisfactorio. software (IEEE12207.0-96)
Cierre, que afronta las actividades de post-
La descomposicin de los temas del KA de Gestin de
realizacin de un proyecto de ingeniera del
Ingeniera del Software se muestra en la Figura 1
software.

Figura 1 Descomposicin de los temas del KA de Gestin de Ingeniera del Software

r
do
rra
Bo
1. Iniciacin y Alcance cambios. Tambin resultar til un acercamiento que
gestione los cambios cuando llegue el momento de
El enfoque de este conjunto de actividades se centra en
repasar los resultados del proyecto, ya que el alcance y
la determinacin eficaz de los requisitos del software
los requisitos tendrn que ser la base para evaluar el
por medio de varios mtodos de induccin y la
xito. [Som05: el c6] Ver tambin la subrea de control
valoracin de la viabilidad del proyecto desde distintos
de la configuracin del software del KA de Gestin de
puntos de vista. Una vez que se ha establecido la
la Configuracin del Software.
viabilidad, la tarea pendiente dentro de este proceso es
la especificacin de la validacin de requisitos y del
2. Planificacin de un Proyecto de Software
cambio de procedimientos (ver tambin el KA de
Requisitos del Software). El proceso de planificacin iterativa est regulado por
el alcance y requisitos, y por el establecimiento de la
1.1. Determinacin y Negociacin de los Requisitos viabilidad. A estas alturas, se evalan los procesos del
ciclo de vida del software y se selecciona el ms
[Dor02: v2c4; Pf101: c4; Pre04: c7; Som05: c5]
apropiado (considerando la naturaleza del proyecto, su

r
Los mtodos de requisitos del software para la grado de novedad, su complejidad funcional y tcnica,
induccin de los requisitos (por ejemplo, observacin), sus requisitos de calidad, etc.).
anlisis (por ejemplo, modelado de datos, modelado de
Si la situacin lo aconseja, se planea entonces el propio
casos de uso), especificacin y validacin (por ejemplo,

do
proyecto en la forma de una descomposicin jerrquica
prototipado) deben seleccionarse y aplicarse, tomando
de tareas, se especifican y caracterizan los entregables
en cuenta las distintas perspectivas del contratista. Esto
asociados de cada tarea en trminos de calidad y de
lleva a la determinacin del alcance del proyecto, de los
otros atributos en la lnea de los requisitos declarados, y
objetivos, y de las restricciones. sta siempre es una
se emprende la descripcin detallada del esfuerzo de
actividad importante, ya que fija las fronteras visibles
realizacin, el calendario y la estimacin de costes.
para el conjunto de tareas que se emprenden, y sucede
as especialmente donde la tarea es de gran novedad. Ms adelante se asignan los recursos a las tareas para
Puede encontrarse informacin adicional en el KA de optimizar la productividad del personal (a nivel de
los Requisitos del Software. individuo, de equipo y organizacional), el uso de
equipos y materiales, y la adhesin a los horarios. Se
rra
Viabilidad, Anlisis (Tcnico, emprende una gestin de riesgos detallada y se discute
Operacional, Financiero, el perfil de riesgo entre todos los contratistas de
Social/Poltico) relieve, llegando a un acuerdo. Se determinan los
procesos comprehensivos de gestin de la calidad del
[Pre04: c6; Som05: c6] software como parte del proceso en trminos de
Se debe asegurar a los ingenieros del software que hay procedimientos y responsabilidades para asegurar la
disponibles capacidad y recursos adecuados en forma calidad del software, la verificacin y la validacin, las
de personas, pericia, medios, infraestructura y apoyo revisiones y las auditoras (ver el KA de la Calidad del
(sea interna o externamente) para cerciorarse de que el Software). Ya que es un proceso iterativo, resulta de
proyecto pueda completarse con xito de un modo vital importancia que se declaren y pacten con claridad
oportuno y rentable (utilizando, por ejemplo, una matriz los procesos y responsabilidades para la gestin, repaso
de requisitos y capacidades). A menudo esto requiere y revisin del plan en ejecucin.
Bo

un clculo del esfuerzo y del coste basado en los


mtodos adecuados (por ejemplo, tcnicas de analoga Planificacin de un Proceso
reguladas por expertos).
La seleccin de un modelo adecuado de ciclo de vida
del software (por ejemplo, un prototipado evolutivo en
Construir para verificar espiral) y la adaptacin y el despliegue de ciclos de vida
Dado que los cambios son inevitables, es de vital del software, se emprenden a la luz del alcance
importancia que desde el inicio se llegue a un acuerdo particular y de los requisitos del proyecto. Tambin se
entre los contratistas acerca de los medios por los que seleccionan mtodos y herramientas pertinentes.
se repasarn y revisarn el alcance y requisitos (por [Dor02: el v1c6,v2c8; Pfl01: el c2; Pre04: el c2; Rei02:
ejemplo, por medio de procedimientos pactados para la el c1,c3,c5; Som05: el c3; Tha97: el c3] A nivel de
gestin de cambios). Esto claramente implica que el proyecto, se utilizan mtodos y herramientas adecuados
alcance y los requisitos no quedarn grabados en para descomponer el proyecto en tareas, con entradas
piedra sino que pueden y deben volverse a revisar en asociadas, resultados y condiciones de finalizacin de
puntos predeterminados segn se vaya desenvolviendo obra (por ejemplo, una estructura para la
el proyecto (por ejemplo, en las revisiones del diseo, descomposicin del trabajo). [Dor02: el v2c7; Pfl01: el
en las revisiones de gestin). Si se aceptan los cambios, c3; Pre04: el c21; Rei02: el c4,c5; Som05: el c4; Tha97:
deber usarse entonces algn tipo de anlisis de el c4,c6] Esto influye a su vez en las decisiones sobre el
trazabilidad y de anlisis de riesgos (ver el apartado 2.5 horario y estructura de la organizacin de alto nivel del
Gestin de Riesgos) para determinar el impacto de esos proyecto.
Determinar los Entregables riesgos (por ejemplo, los rboles de decisin y los
procesos de simulacin) deben utilizarse para resaltar y
Se especifica y caracteriza el producto o productos de
evaluar riesgos. A estas alturas se deben determinar las
cada tarea (por ejemplo, un diseo arquitectnico, un
polticas de abandono de proyectos en conversaciones
informe de inspeccin). [Pfl01: el c3; Pre04: el c24;
con todos los otros contratistas. [Dor02: el v2c7; Pfl01:
Tha97: el c4] Se evalan las oportunidades de reutilizar
el c3; Pre04: el c25; Rei02: el c11; Som05: el c4;
los componentes del software de desarrollos anteriores
Tha97: el c4] La gestin de riesgos del proyecto debe
o de utilizar productos software del mercado. Se
influir en aspectos de riesgo nicos en el software,
planifica la utilizacin de terceras personas y del
como la tendencia de los ingenieros del software a
software obtenido y se seleccionan los proveedores.
agregar utilidades no deseadas o como el controlador de
riesgos presente en la naturaleza intangible del
Esfuerzo, Calendario y Clculo del software.
Coste
Partiendo de la descomposicin de tareas, entradas y 2.6 Gestin de Calidad
resultados, se determina el rango de esfuerzo esperado

r
[Dor02: v1c8,v2c3-c5; Pre04: c26; Rei02: c10;
que se requiere para cada tarea, utilizando un modelo de
Som05: c24,c25; Tha97: c9,c10]
estimacin calibrado basado en datos histricos sobre el
esfuerzo empleado, cuando estn disponibles y sean La calidad se define en trminos de atributos

do
pertinentes, u otros mtodos como el juicio de un pertinentes al proyecto especfico y en los de cualquier
especialista. Se establecen las dependencias de las producto o productos asociados a ella, probablemente
tareas y se identifican los cuellos de botella potenciales tanto en trminos cuantitativos como cualitativos. Estas
utilizando los mtodos convenientes (por ejemplo, el caractersticas de la calidad habrn sido determinadas
anlisis del camino crtico). Cuando sea posible se en la especificacin de requisitos detallados del
solucionan los cuellos de botella, y se elabora el software. Ver tambin el KA de los Requisitos del
esperado cuadro de tareas con los horarios de inicio, Software.
duraciones y horarios de finalizacin bien planificados
Los lmites de adhesin a la calidad para cada indicador
(por ejemplo, el diagrama PERT). Los requisitos de
se colocan de acuerdo a las expectativas que tenga el
recursos (personas, herramientas) se traducen en
contratista sobre el software en cuestin. Los
estimaciones de costo. [Dor02: el v2c7; Fen98: el c12;
rra
procedimientos que hacen referencia a lo largo del
Pfl01: el c3; Pre04: el c23, el c24,; Rei02: el c5,c6;
proceso a la SQA en curso a lo largo del proceso y a la
Som05: el c4,c23; Tha97: el c5] sta es una actividad
verificacin y validacin del producto (entregable)
muy iterativa que debe ser negociada y revisada hasta
tambin se especifican en esta fase (por ejemplo, las
que se alcance un acuerdo general entre los contratistas
revisiones tcnicas e inspecciones) (ver tambin el KA
afectados (principalmente de ingeniera y gestin).
de la Calidad del Software).
2.4 Reparto de Recursos
2.7 Gestin de Planes
[Pf101: c3; Pre04: c24; Rei02: c8,c9; Som05: c4;
[Som05: c4; Tha97: c4]
Tha97: c6,c7]
Tambin se ha de planificar cmo se gestionar el
Los equipos, medios y personas se asocian a las tareas
proyecto y cmo se gestionar la planificacin. Los
Bo

programadas, incluyendo la asignacin de


informes, la supervisin y el control del proyecto deben
responsabilidades de cara a su completa realizacin
encajar en el proyecto de ingeniera del software
(usando, por ejemplo, un diagrama de Gantt). Esta
seleccionado y en las realidades del proyecto, y deben
actividad est regulada y limitada por la disponibilidad
reflejarse en los varios artefactos que se usarn para
de los recursos y por su uso ptimo bajo estas
gestionarlo. Pero, en un contexto en donde los cambios
circunstancias, as como por temas relacionados con el
son ms una expectativa que un susto, es de vital
personal (por ejemplo, productividad de los individuos
importancia que se gestionen los propios planes. Esto
y equipos, dinmicas de equipo, estructuras
requiere que sistemticamente se dirija, supervise,
organizativas y de equipo).
repase, informe y, donde as lo requiera, revise, la
adhesin a los planes. Los planes asociados a otros
2.5 Gestin de Riesgos
procesos de soporte orientados a gestin (por ejemplo,
Se lleva a cabo la identificacin y anlisis de riesgos (lo documentacin, gestin de la configuracin del
que puede salir mal, cmo y por qu, y sus posibles software, y resolucin de problemas) tambin necesitan
consecuencias), la valoracin crtica de riesgos (cules gestionarse de esa misma manera.
son los riesgos ms significativos a los que se est
expuestos, sobre cules podemos hacer algo en cuanto a 3. Promulgacin del Proyecto de Software
su influencia), la mitigacin de riesgos y la
A continuacin se ejecutan los planes y se promulgan
planificacin de contingencias (formulando una
los procesos incluidos en los planes. A lo largo de este
estrategia para controlar los riesgos y gestionar los
proceso todo se centra en la adhesin a los planes, con
perfiles de riesgo). Los mtodos de valoracin de
una expectativa arrolladora de que tal adhesin llevar a de los lmites existentes. Se informa de los resultados
la satisfaccin plena de los requisitos del contratista y al segn se vaya necesitando y sobre todo cuando se
logro de los objetivos del proyecto. Las actividades hayan superado los lmites aceptables.
actuales de gestin para medir, supervisar, controlar e
3.5 Proceso de Control
informar son fundamentales para la promulgacin.
[Dor02: v2c7; Rei02: c10; Tha97: c3,c9]
3.1 Implementacin de Planes Los resultados de las actividades de supervisin del
proceso proporcionan la base sobre la que se toman las
[Pf101: c3; Som05: c4]
decisiones para actuar. Se pueden hacer cambios al
Inicia el proyecto y se emprenden las actividades del proyecto cuando se juzgue oportuno y cuando se
proyecto segn el horario. En el proceso, se utilizan modele y gestione el impacto y los riesgos asociados a
recursos (por ejemplo, esfuerzo del personal, stos. Esto puede tomar la forma de una accin
financiacin) y se producen entregables (por ejemplo, correctiva (por ejemplo, volviendo a probar ciertos
documentos de diseo de arquitectura, casos de componentes), puede que involucre la incorporacin de
pruebas). contingencias para evitar sucesos semejantes (por

r
ejemplo, la decisin de utilizar prototipados para ayudar
3.2 Gestin de Contratos con Proveedores en la validacin de los requisitos del software), y/o
puede implicar la revisin de los distintos planes y de

do
[Som05: c4] otros documentos del proyecto (por ejemplo, la
Preparar y ejecutar acuerdos con los proveedores, especificacin de requisitos) para corregir los resultados
supervisar la actuacin del proveedor, y aceptar sus inesperados y sus implicaciones.
productos, incorporndolos cuando sean adecuados. En algunos casos, puede llevar al abandono del
proyecto. En todos los casos, se adhiere al control de
3.3 Implementacin de Procesos para Medir cambios y a los procedimientos de gestin de
[Fen98: c13,c14; Pre04: c22; Rei02: c10,c12; configuracin del software (ver tambin el KA de la
Tha97: c3,c10] Gestin de Configuracin del Software) se documentan
y comunican decisiones a todos los implicados
Se promulga el proceso de medicin junto con el importantes, se repasan los planes y si es necesario se
rra
proyecto del software, asegurndose de que se recogen revisan, y todos los datos importantes se graban en la
datos relevantes y tiles (ver tambin los apartados 6.2 base de datos central (ver tambin el apartado 6.3
Planificar el Proceso de Medicin y 6.3 Realizar el Llevar a cabo el Proceso de Revisin).
Proceso de Medicin).
3.6 Informes
3.4 Proceso de Supervisin
[Rei02: c10; Tha97: c3,c10]
[Dor02: v1c8, v2c2-c5,c7; Rei02: c10; Som05:
c25; Tha97: c3;c9] En perodos especficos y concertados, se informa de la
adhesin a los planes dentro de la organizacin (por
Se evala continuamente y a intervalos ejemplo al comit de direccin de cartera del proyecto)
predeterminados la adhesin a los diferentes planes. Se y a los contratistas externos (por ejemplo, clientes,
analizan los resultados y las condiciones de acabado de usuarios). Informes de esta naturaleza deben orientarse
Bo

cada tarea. Se evalan los entregables en trminos de hacia una adhesin global en oposicin a los informes
las caractersticas que ellos requieren (por ejemplo, por detallados que se requieren frecuentemente dentro del
medio de revisiones y auditoras). Se investiga el equipo de proyecto.
consumo de fuerzas, la adhesin a horarios, y los costes
a da de hoy, y se examina el uso de recursos. Se revisa 4. Revisin y Evaluacin
de nuevo el perfil de riesgo del proyecto y se evala la
adhesin a los requisitos de calidad. En puntos crticos del proyecto, se evalan el progreso
global hacia el logro de los objetivos prefijados y la
Se modelan y analizan los datos de medicin. Se satisfaccin de los requisitos del contratista. De igual
emprende el anlisis de variacin basado en la modo, en hitos particulares se llevan a cabo
desviacin actual de los resultados y valores esperados. valoraciones sobre la efectividad del proceso global
Esto puede darse en forma de desbordamiento de hasta la fecha, del personal involucrado, y de las
costes, equivocaciones en el horario y similares. Se herramientas y mtodos utilizados.
lleva a cabo la identificacin de la desviacin y el
anlisis de calidad y otros datos de medicin (por 4.1 Determinar la Satisfaccin de los Requisitos
ejemplo, el anlisis de la densidad de los defectos). Se
recalculan la exposicin a riesgos y sus influencias y se [Rei02: c10; Tha97: c3,c10]
ejecutan de nuevo los rboles de decisiones, las Ya que uno de nuestros objetivos principales consiste
simulaciones, etc., a la luz de los nuevos datos. Estas en lograr la satisfaccin del contratista (usuario o
actividades permiten la deteccin de problemas y la cliente), es importante que el progreso hacia este
identificacin de excepciones basada en la superacin
objetivo sea evaluado formal y peridicamente. Esto 5.2 Actividades de Cierre
ocurre al lograr los principales hitos del proyecto (por
[Pf101: c12; Som05: c4]
ejemplo, la confirmacin de la arquitectura del diseo
de software, la revisin tcnica de la integracin del Tras haberse confirmado el cierre, se archivan los
software). Se identifican variaciones a las expectativas materiales del proyecto de acuerdo a los mtodos,
y se llevan a cabo acciones adecuadas. Al igual que en localizacin y duracin pactados con los contratistas.
la actividad de control del proceso arriba indicada (ver La base de datos de medicin de la organizacin se
el apartado 3.5 Proceso de Control), en todos los casos, pone al da con los datos finales del proyecto y se
se adhiere al control de cambios y a los procedimientos emprenden anlisis post-proyecto. Se inicia un proyecto
de gestin de configuracin del software (ver tambin post mortem con el fin de analizar los temas, problemas
el KA de la Gestin de Configuracin del Software) se y oportunidades encontrados durante el proceso
documentan y comunican decisiones a todos los (particularmente por medio de revisiones y
implicados importantes, se repasan los planes y si es evaluaciones, ver el subrea 4 Revisin y Evaluacin) y
necesario se revisan, y todos los datos importantes se se sacan lecciones del proceso que luego alimentan los
graban en la base de datos central (ver tambin el conocimientos de la organizacin y los intentos de

r
apartado 6.3 Llevar a cabo el Proceso de Revisin). Se mejora (ver tambin el KA del Proceso de Ingeniera
puede encontrar ms informacin en el KA de las del Software).
Pruebas del Software, en el apartado 2.2 Objetivos de

do
las Pruebas y en el KA de la Calidad del Software, en 6. Medidas de la Ingeniera del Software
el apartado 2.3 Revisiones y Auditoras.
[ISO 15939-02]
4.2 Revisar y Evaluar la Ejecucin La importancia de la medicin y su papel en las buenas
[Dor02: v1c8,v2c3,c5; Pfl01: c8,c9; Rei02: c10; prcticas de gestin est ampliamente reconocido, y es
Tha97: c3,c10] tal que su importancia slo puede aumentar en los
prximos aos. Medir con eficacia se ha convertido en
Las revisiones peridicas de lo realizado, dirigidas al una de las piedras angulares de la madurez de una
personal del proyecto, proporcionan detalles sobre la organizacin. Las palabras claves para la medicin del
probabilidad de ser fiel a los planes as como sobre las software y para los mtodos de medicin fueron
posibles reas de dificultad (por ejemplo, conflictos definidas en [ISO15939-02] basadas en el vocabulario
rra
entre miembros del equipo). Se evalan los distintos internacional de metrologa ISO [ISO93]. No obstante,
mtodos, herramientas y tcnicas empleadas para ver su los lectores encontrarn en la literatura existente
eficacia y adecuacin, y se valora sistemtica y diferencias en la terminologa; por ejemplo, el trmino
peridicamente el propio proceso para conocer su "mtrica" a veces se usa en lugar de "medicin".
relevancia, utilidad y eficacia en el contexto del
proyecto. Cuando se juzga necesario, se llevan a cabo y Este apartado sigue el estndar internacional ISO/IEC
se gestionan los cambios. 15939, que describe el proceso que define las
actividades y tareas necesarias para implementar un
proceso de medicin e incluye, asimismo, un modelo de
5. Cierre
medicin de la informacin.
El proyecto llega a su fin cuando todos los planes y
procesos implicados se han promulgado y completado. 6.1 Establecer y Sostener el Compromiso de Medir
Bo

En esta fase, se repasan los criterios para el xito del


proyecto. Una vez que se ha establecido el cierre, se Aceptar los requisitos de medicin. Cada tentativa
llevan a cabo actividades de archivado, post mortem y de medicin debe estar guiada por objetivos
de mejoras de los procesos. organizacionales, e impulsada por un conjunto de
requisitos de medicin establecidos por la
5.1 Determinar el Cierre organizacin y por el proyecto. Por ejemplo, un
objetivo organizacional podra ser ser los primeros
[Dor02: v1c8,v2c3,c5; Rei02: c10; Tha97: c3,c10] en salir al mercado con los nuevos productos."
[Fen98: c3,c13; Pre04: c22] Esto a su vez podra
Se han completado las tareas tal y como se
generar un requisito para que se midan los factores
especificaron en los planes, y se confirman los criterios
que contribuyen a este objetivo, y as se puedan
para lograr un acabado satisfactorio. Todos los
gestionar los proyectos para hacer frente a este
productos planificados han sido entregados con
objetivo.
caractersticas aceptables.
- Definir el alcance de la medicin. Se debe
Se marca y confirma la satisfaccin de los requisitos, se
establecer la unidad organizacional a la que se
han logrado los objetivos del proyecto. Estos procesos
va a aplicar cada requisito de medicin. Esto
por lo general involucran a todos los contratistas y
puede consistir en un rea funcional, en un
acaban con la documentacin tanto de la aceptacin del
solo proyecto, en un solo sitio, o incluso en
cliente y como de los informes de cualquier otro
toda la empresa. Todas las subsiguientes tareas
problema pendiente conocido.
de medicin relacionadas con este requisito
deben encontrarse dentro del alcance definido. anlisis, informes y configuracin [ISO15939-02:
Adems, se debe identificar a los contratistas 5.2.4].
implicados.
Definir los criterios para evaluar los productos de
- Compromiso de la direccin y del personal con informacin. Los criterios para evaluar estn
la medicin. El compromiso debe establecerse influenciados por los objetivos tcnicos y
formalmente, debe comunicarse, y debe comerciales de la unidad organizacional. Los
apoyarse en los recursos (ver el siguiente productos de informacin incluyen los asociados
artculo). con el producto que est siendo elaborado, as
como los asociados con los procesos utilizados
Empear recursos para la medicin. El
para gestionar y medir el proyecto [ISO15939-02:
compromiso de la organizacin con la medicin es
5.2.5 y Apndices D y E].
un factor esencial para el xito, como demuestra la
asignacin de recursos para llevar a cabo el proceso Revisar, aprobar y proporcionar recursos para las
de medicin. El asignar recursos incluye el reparto tareas de medicin.
de responsabilidades para las diferentes tareas del
-

r
proceso de medicin (tales como usuario, analista y El plan de medicin debe ser revisado y
bibliotecario) y el proporcionar una financiacin, aprobado por los contratistas adecuados. Esto
entrenamiento, herramientas, y apoyo adecuados incluye todos los procedimientos de

do
para dirigir el proceso de un modo perdurable. recoleccin de datos y los procedimientos de
almacenamiento, anlisis e informes; los
criterios de evaluacin; horarios y
6.2 Planificar el Proceso de Medicin
responsabilidades. Los criterios para revisar
Caracterizar la unidad organizacional. La unidad estos artefactos tendran que haberse
organizacional proporciona el contexto para la establecido a un nivel de unidad
medicin as que es importante hacer explcito este organizacional o superior y debieran usarse
contexto y articular las presunciones que ste como base para estas revisiones. Tales criterios
incluye y las restricciones que va imponiendo. La deben tomar en cuenta experiencias anteriores,
caracterizacin puede darse en trminos de disponibilidad de recursos, y trastornos
procesos organizacionales, dominios de potenciales del proceso cuando se proponen
rra
aplicaciones, tecnologa e interfaces cambios a las prcticas actuales. La aprobacin
organizacionales. Un modelo de proceso demuestra que existe un compromiso con el
organizacional tambin es por lo general un proceso de medicin [ISO15939-02: 5.2.6.1 y
elemento de una caracterizacin de la unidad Apndice F].
organizacional [ISO15939-02: 5.2.1].
- Hay que hacer que los recursos estn
Identificar las necesidades de informacin. Las disponibles para implementar las tareas de
necesidades de informacin se basan en las metas, medicin planeadas y aprobadas. La
restricciones, riesgos y problemas de la unidad disponibilidad de los recursos puede
organizacional. stas pueden proceder de objetivos organizarse en aquellos casos en donde los
comerciales, organizacionales, reguladores y/o del cambios han de pilotarse antes de un amplio
producto. Deben ser identificadas y deben despliegue. Se debe prestar atencin a los
Bo

priorizarse. Debe entonces seleccionarse un recursos necesarios para un amplio despliegue


subconjunto para ser cotejado y los resultados de los nuevos procedimientos o mediciones
deben ser documentados, comunicados y revisados [ISO15939-02: 5.2.6.2].
por los contratistas [ISO 15939-02: 5.2.2].
Adquirir y desplegar tecnologas de apoyo. Esto
Seleccionar las mediciones. Se deben elegir las incluye una evaluacin de las tecnologas de apoyo
mediciones candidatas al puesto, claramente disponibles, la seleccin de las tecnologas ms
vinculadas a las necesidades de informacin. Las adecuadas, la adquisicin de esas tecnologas, y el
mediciones deben seleccionarse en base a las despliegue de esas tecnologas [ISO 15939-
prioridades de las necesidades de informacin y 02:5.2.7].
otros criterios como el coste de recoleccin de
datos, el grado de trastorno del proceso durante la 6.3 Realizar el Proceso de Medicin
recoleccin, la facilidad de anlisis, la facilidad de
Integrar los procedimientos de medicin con los
obtener datos precisos y consistentes, etc.
procesos pertinentes. Los procedimientos de
[ISO15939-02: 5.2.3 y Apndice C].
medicin, tales como la recoleccin de datos,
Definir la recoleccin de datos, el anlisis y los deben integrarse en los procesos que estn
procedimientos para informar. Esto abarca los midiendo. Esto puede que implique cambiar los
procedimientos y horarios de recoleccin, y la procesos actuales para adaptar la recoleccin de
gestin de datos de almacenamiento, verificacin, datos o las actividades de generacin. Puede
tambin implicar el anlisis de los actuales
procesos para minimizar esfuerzos adicionales y Comunicar los resultados. Los productos de
evaluaciones del efecto en los empleados, con el informacin deben documentarse y comunicarse a
fin de asegurarse de que sern aceptados los los usuarios y contratistas [ISO 15939-02: 5.3.4].
procedimientos de medicin. Se necesita considerar
los temas morales y otros factores humanos. 6.4 Evaluar las Mediciones
Adems, los procedimientos de medicin deben
comunicarse a los proveedores de datos, puede que Evaluar los productos de informacin. Evaluar los
se tenga que proporcionar entrenamiento, y se debe productos de informacin contrastndolos con los
proporcionar el tpico apoyo. De manera similar, el criterios de evaluacin especficos y determinar las
anlisis de datos y los procedimientos de fuerzas y debilidades de los productos de
informacin deben tener la tpica integracin en los informacin. Esto puede realizarlo un proceso
procesos organizacionales y/o del proyecto [ISO interno o una auditora externa y debe incluir una
15939-02: 5.3.1]. retroalimentacin de los usuarios de las
mediciones. Grabar las lecciones aprendidas en una
Recolectar datos. Se debe recolectar, verificar y base de datos adecuada [ISO 15939-02: 5.4.1 y

r
almacenar datos [ISO 1539-02: 5.3.2]. Apndice D].
Analizar datos y desarrollar productos de Evaluar el proceso de medicin. Evaluar el proceso
informacin. Se pueden agregar, transformar o de medicin contrastndolo con los criterios de

do
recodificar datos como parte del proceso de evaluacin especficos y determinar las fuerzas y
anlisis, utilizando un grado de rigor adecuado a la debilidades de los procesos. Esto puede realizarlo
naturaleza de los datos y las necesidades de un proceso interno o una auditora externa y debe
informacin. Los resultados de este anlisis son incluir una retroalimentacin de los usuarios de las
indicadores tpicos, tales como grficas, nmeros u mediciones. Grabar las lecciones aprendidas en una
otras indicaciones que han de ser interpretadas, base de datos adecuada [ISO 15939-02: 5.4.1 y
dando lugar a conclusiones iniciales que han de Apndice D].
presentar los contratistas. Los resultados y
conclusiones han de consultarse, utilizando un Identificar las mejoras potenciales. Tales mejoras
proceso definido por la organizacin (que puede pueden consistir en cambios en el formato de los
ser formal o informal). Los proveedores de datos y indicadores, cambios en las unidades medidas, o en
rra
los usuarios de las mediciones deben participar en la reclasificacin de las categoras. Determinar los
revisar los datos para asegurar que son costes y beneficios de las mejoras potenciales y
significativos y precisos, y que puede llevar a seleccionar las acciones de mejora adecuadas.
acciones razonables [ISO 15939-02: 5.3.3 y Comunicar las mejoras propuestas al dueo del
Apndice G]. proceso de medicin y a los contratistas para su
revisin y aprobacin. Comunicar tambin la falta
de mejoras potenciales si el anlisis no identifica
ninguna mejora [ISO 15939-02: 5.4.2].
Bo
MATRIZ DE TEMAS VS. MATERIAL DE REFERENCIA
[ISO15239-
[Dor02] [Fen98] [Pfl01] [Pre04] [Rei02] [Som05] [Tha97]
02]
1.Iniciacin y Alcance

1.1 Determinacin y
v2c4 c4 c7 c5
Negociacin de Requisitos
1.2 Viabilidad, Anlisis c6 c6
1.3 Construir para Verificar c6
2. Planificacin de un
Proyecto Software
2.1 Planificacin de un v1c6, v2c7, c1, c3, c3, c4,
c2, c3 c2, c21 c3, c4
Proceso v2c8 c5 c6

r
2.2 Determinar los
c3 c24 c4
entregables
2.3 Esfuerzo, Horario y c23,
v2c7 c12 c3 c5, c6 c4, c23 c5

do
Clculo del Coste c24
2.4 Reparto de Recursos c3 c24 c8, c9 c4 c6, c7
2.5 Gestin de Riesgos v2c7 c3 c25 c11 c4 c4
2.6 Gestin de Calidad v1c8, c24,
c26 c10 c9, c10
v2c3-c5 c25
2.7 Gestin de Planes c4 c4
3. Promulgacin del
Proyecto Software
3.1 Implementacin de
c3 c4
Planes
3.2 Gestin de Contratos con
rra
c4
Proveedores
3.3 Implementacin de c13, c10,
c22 c3, c10
Procesos para medir c14 c12
3.4 Proceso de Supervisin v1c8,
v2c2-c5, c10 c25 c3, c10
c7
3.5 Proceso de Control v2c7 c10 c3, c9
3.6 Informes c10 c3, c10
4. Revisin y Evaluacin
4.1 Determinar la
c10 c3, c10
satisfaccin de los Requisitos
Bo

4.2 Revisar y Evaluar la v1c8, v2c3,


c8, c9 c10 c3, c10
Ejecucin c5
5. Cierre
5.1 Determinar el Cierre v1c8, v2c3,
c10 c3, c10
c5
5.2 Actividades del Cierre c12 c4
6. Medida de la Ingeniera
*
del Software
6.1 Establecer y Sostener el
c3, c13 c22
compromiso de Medir
6.2 Planificar el Proceso de
c5, C,D,E,F
Medicin
6.3 Realizar el Proceso de
c5, G
Medicin
6.4 Evaluar las Mediciones c5, D
REFERENCIAS RECOMENDADAS PARA LA GESTIN [Pfl01] S.L. Pfleeger, Software Engineering: Theory
DEL SOFTWARE and Practice, second ed., Prentice Hall, 2001, Chap. 2-
4, 8, 9, 12, 13.
[Dor02] M. Dorfman and R.H. Thayer, eds., Software
Engineering, IEEE Computer Society Press, 2002, Vol. [Pre04] R.S. Pressman, Software Engineering: A
1, Chap. 6, 8, Vol. 2, Chap. 3, 4, 5, 7, 8. Practitioner's Approach, sixth ed., McGraw-Hill, 2004,
Chap. 2, 6, 7, 22-26.
[Fen98] N.E. Fenton and S.L. Pfleeger, Software
Metrics: A Rigorous & Practical Approach, second ed., [Rei02] D.J. Reifer, ed., Software Management, IEEE
International Thomson Computer Press, 1998, Chap. 1- Computer Society Press, 2002, Chap. 1-6, 7-12, 13.
14.
[Som05] I. Sommerville, Software Engineering,
[ISO15939-02] ISO/IEC 15939:2002, Software seventh ed., Addison-Wesley, 2005, Chap. 3-6, 23-25.
Engineering Software Measurement Process, ISO

r
and IEC, 2002. [Tha97] R.H. Thayer, ed., Software Engineering Project
Management, IEEE Computer Society Press, 1997,
Chap. 1-10.

do
rra
Bo
APNDICE A. LISTA DE LECTURAS ADICIONALES Intensive Projects, IEEE Software, May/June 1997, pp.
83-89.
(Adl99) T.R. Adler, J.G. Leonard, and R.K. Nordgren,
Improving Risk Management: Moving from Risk (Dav98) A.M. Davis, Predictions and Farewells,
Elimination to Risk Avoidance, Information and IEEE Software, July/August 1998, pp. 6-9.
Software Technology, vol. 41, 1999, pp. 29-34.
(Dem87) T. DeMarco and T. Lister, Peopleware:
(Bai98) R. Baines, Across Disciplines: Risk, Design, Productive Projects and Teams, Dorset House
Method, Process, and Tools, IEEE Software, Publishing, 1987.
July/August 1998, pp. 61-64.
(Dem96) T. DeMarco and A. Miller, Managing Large
(Bin97) R.V. Binder, Can a Manufacturing Quality Software Projects, IEEE Software, July 1996, pp. 24-
Model Work for Software? IEEE Software, 27.
September/October 1997, pp. 101-102,105.
(Fav98) J. Favaro and S.L. Pfleeger, Making Software

r
(Boe97) B.W. Boehm and T. DeMarco, Software Risk Development Investment Decisions, ACM SIGSoft
Management, IEEE Software, May/June 1997, pp. 17- Software Engineering Notes, vol. 23, iss. 5, 1998, pp.
19. 69-74.

do
(Bri96) L.C. Briand, S. Morasca, and V.R. Basili, (Fay96) M.E. Fayad and M. Cline, Managing Object-
Property-Based Software Engineering Measurement, Oriented Software Development, Computer,
IEEE Transactions on Software Engineering, vol. 22, September 1996, pp. 26-31.
iss. 1, 1996, pp. 68-86.
(Fen98) N.E. Fenton and S.L. Pfleeger, Software
(Bri96a) L. Briand, K.E. Emam, and S. Morasca, On Metrics: A Rigorous & Practical Approach, second ed.,
the Application of Measurement Theory in Software International Thomson Computer Press, 1998.
Engineering, Empirical Software Engineering, vol. 1,
1996, pp. 61-88. (Fle99) R. Fleming, A Fresh Perspective on Old
Problems, IEEE Software, January/February 1999, pp.
rra
(Bri97) L.C. Briand, S. Morasca, and V.R. Basili, 106-113.
Response to: Comments on Property-based Software
Engineering Measurement: Refining the Addivity (Fug98) A. Fuggetta et al., Applying GQM in an
Properties, IEEE Transactions on Software Industrial Software Factory, ACM Transactions on
Engineering, vol. 23, iss. 3, 1997, pp. 196-197. Software Engineering and Methodology, vol. 7, iss. 4,
1998, pp. 411-448.
(Bro87) F.P.J. Brooks, No Silver Bullet: Essence and
Accidents of Software Engineering, Computer, Apr. (Gar97) P.R. Garvey, D.J. Phair, and J.A. Wilson, An
1987, pp. 10-19. Information Architecture for Risk Assessment and
Management, IEEE Software, May/June 1997, pp. 25-
(Cap96) J. Capers, Applied Software Measurement: 34.
Bo

Assuring Productivity and Quality, second ed.,


McGraw-Hill, 1996. (Gem97) A. Gemmer, Risk Management: Moving
beyond Process, Computer, May 1997, pp. 33-43.
(Car97) M.J. Carr, Risk Management May Not Be For
Everyone, IEEE Software, May/June 1997, pp. 21-24. (Gla97) R.L. Glass, The Ups and Downs of
Programmer Stress, Communications of the ACM, vol.
(Cha96) R.N. Charette, Large-Scale Project 40, iss. 4, 1997, pp. 17-19.
Management Is Risk Management, IEEE Software,
July 1996, pp. 110-117. (Gla98) R.L. Glass, Short-Term and Long-Term
Remedies for Runaway Projects, Communications of
(Cha97) R.N. Charette, K.M. Adams, and M.B. White, the ACM, vol. 41, iss. 7, 1998, pp. 13-15.
Managing Risk in Software Maintenance, IEEE
Software, May/June 1997, pp. 43-50. (Gla98a) R.L. Glass, How Not to Prepare for a
Consulting Assignment, and Other Ugly Consultancy
(Col96) B. Collier, T. DeMarco,and P. Fearey, A Truths, Communications of the ACM, vol. 41, iss. 12,
Defined Process for Project Postmortem Review, IEEE 1998, pp. 11-13.
Software, July 1996, pp. 65-72.
(Gla99) R.L. Glass, The Realities of Software
(Con97) E.H. Conrow and P.S. Shishido, Technology Payoffs, Communications of the ACM,
Implementing Risk Management on Software vol. 42, iss. 2, 1999, pp. 74-79.
(Gra99) R. Grable et al., Metrics for Small Projects: (Kit97) B. Kitchenham and S. Linkman, Estimates,
Experiences at the SED, IEEE Software, March/April Uncertainty, and Risk, IEEE Software, May/June
1999, pp. 21-29. 1997, pp. 69-74.

(Gra87) R.B. Grady and D.L. Caswell, Software (Lat98) F. v. Latum et al., Adopting GQM-Based
Metrics: Establishing A Company-Wide Program. Measurement in an Industrial Environment, IEEE
Prentice Hall, 1987. Software, January-February 1998, pp. 78-86.

(Hal97) T. Hall and N. Fenton, Implementing (Leu96) H.K.N. Leung, A Risk Index for Software
Effective Software Metrics Programs, IEEE Software, Producers, Software Maintenance: Research and
March/April 1997, pp. 55-64. Practice, vol. 8, 1996, pp. 281-294.

(Hen99) S.M. Henry and K.T. Stevens, Using Belbins (Lis97) T. Lister, Risk Management Is Project
Leadership Role to Improve Team Effectiveness: An Management for Adults, IEEE Software, May/June
Empirical Investigation, Journal of Systems and 1997, pp. 20-22.

r
Software, vol. 44, 1999, pp. 241-250.
(Mac96) K. Mackey, Why Bad Things Happen to
(Hoh99) L. Hohmann, Coaching the Rookie Good Projects, IEEE Software, May 1996, pp. 27-32.

do
Manager, IEEE Software, January/February 1999, pp.
16-19. (Mac98) K. Mackey, Beyond Dilbert: Creating
Cultures that Work, IEEE Software, January/February
(Hsi96) P. Hsia, Making Software Development 1998, pp. 48-49.
Visible, IEEE Software, March 1996, pp. 23-26.
(Mad97) R.J. Madachy, Heuristic Risk Assessment
(Hum97) W.S. Humphrey, Managing Technical Using Cost Factors, IEEE Software, May/June 1997,
People: Innovation, Teamwork, and the Software pp. 51-59.
Process: Addison-Wesley, 1997.
(McC96) S.C. McConnell, Rapid Development: Taming
(IEEE12207.0-96) IEEE/EIA 12207.0- Wild Software Schedules, Microsoft Press, 1996.
rra
1996//ISO/IEC12207:1995, Industry Implementation of
Int. Std. ISO/IEC 12207:95, Standard for Information (McC97) S.C. McConnell, Software Project Survival
Technology-Software Life Cycle Processes, IEEE, Guide, Microsoft Press, 1997.
1996.
(McC99) S.C. McConnell, Software Engineering
(Jac98) M. Jackman, Homeopathic Remedies for Principles, IEEE Software, March/April 1999, pp. 6-8.
Team Toxicity, IEEE Software, July/August 1998, pp.
43-45. (Moy97) T. Moynihan, How Experienced Project
Managers Assess Risk, IEEE Software, May/June
(Kan97) K. Kansala, Integrating Risk Assessment with 1997, pp. 35-41.
Cost 812 IEEE 2004 Version Estimation, IEEE
(Ncs98) P. Ncsi, Managing OO Projects Better, IEEE
Bo

Software, May/June 1997, pp. 61-67.


Software, July/August 1998, pp. 50-60.
(Kar97) J. Karlsson and K. Ryan, A Cost-Value
Aproach for Prioritizing Requirements, IEEE (Nol99) A.J. Nolan, Learning From Success, IEEE
Software, September/October 1997, pp. 87-74. Software, January/February 1999, pp. 97-105.

(Kar96) D.W. Karolak, Software Engineering Risk (Off97) R.J. Offen and R. Jeffery, Establishing
Management, IEEE Computer Society Press, 1996. Software Measurement Programs, IEEE Software,
March/April 1997, pp. 45-53.
(Kau99) K. Kautz, Making Sense of Measurement for
Small Organizations, IEEE Software, March/April (Par96) K.V.C. Parris, Implementing Accountability,
1999, pp. 14-20. IEEE Software, July/August 1996, pp. 83-93.

(Kei98) M. Keil et al., A Framework for Identifying (Pfl97) S.L. Pfleeger, Assessing Measurement (Guest
Software Project Risks, Communications of the ACM, Editors Introduction), IEEE Software, March/April
vol. 41, iss. 11, 1998, pp. 76-83. 1997, pp. 25-26.

(Ker99) B. Kernighan and R. Pike, Finding (Pfl97a) S.L. Pfleeger et al., Status Report on Software
Performance Improvements, IEEE Software, Measurement, IEEE Software, March/April 1997, pp.
March/April 1999, pp. 61-65. 33-43.
(Put97) L.H. Putman and W. Myers, Industrial Strength (Sco92) R.L. v. Scoy, Software Development Risk:
Software Effective Management Using Measurement, Opportunity, Not Problem, Software Engineering
IEEE Computer Society Press, 1997. Institute, Carnegie Mellon University CMU/SEI-92-
TR-30, 1992.
(Rob99) P.N. Robillard, The Role of Knowledge in
Software Development, Communications of the ACM, (Sla98) S.A. Slaughter, D.E. Harter, and M.S. Krishnan,
vol. 42, iss. 1, 1999, pp. 87-92. Evaluating the Cost of Software Quality,
Communications of the ACM, vol. 41, iss. 8, 1998, pp.
(Rod97) A.G. Rodrigues and T.M. Williams, System 67-73.
Dynamics in Software Project Management: Towards
the Development of a Formal Integrated Framework, (Sol98) R. v. Solingen, R. Berghout, and F. v. Latum,
European Journal of Information Systems, vol. 6, 1997, Interrupts: Just a Minute Never Is, IEEE Software,
pp. 51-66. September/October 1998, pp. 97-103.

(Rop97) J. Ropponen and K. Lyytinen, Can Software (Whi95) N. Whitten, Managing Software Development

r
Risk Management Improve System Development: An Projects: Formulas for Success, Wiley, 1995.
Exploratory Study, European Journal of Information
Systems, vol. 6, 1997, pp. 41-50. (Wil99) B. Wiley, Essential System Requirements: A

do
Practical Guide to Event-Driven Methods, Addison-
(Sch99) C. Schmidt et al., Disincentives for Wesley, 1999.
Communicating Risk: A Risk Paradox, Information
and Software Technology, vol. 41, 1999, pp. 403-411. (Zel98) M.V. Zelkowitz and D.R. Wallace,
Experimental Models for Validating Technology,
Computer, vol. 31, iss. 5, 1998, pp. 23-31.
rra
Bo
APNDICE B. LISTA DE ESTNDARES

(IEEE610.12-90) IEEE Std 610.12-1990 (R2002), IEEE


Standard Glossary of Software Engineering
Terminology, IEEE, 1990.

(IEEE12207.0-96) IEEE/EIA 12207.0-


1996//ISO/IEC12207:1995, Industry Implementation of
Int. Std. ISO/IEC 12207:95, Standard for Information
Technology-Software Life Cycle Processes, IEEE,
1996.

(ISO15939-02) ISO/IEC 15939:2002, Software


Engineering-Software Measurement Process, ISO and
IEC, 2002.

r
(PMI00) Project Management Institute Standards
Committee, A Guide to the Project Management Body

do
of Knowledge (PMBOK), Project Management
Institute, 2000.
rra
Bo
Bo
rra
do
r
CAPTULO 9
PROCESO DE INGENIERA DEL SOFTWARE
ACRNIMOS ingeniera del software. Este es el significado que
se pretende con el ttulo de esta KA y el que se usa
CMMI Modelo de Capacidad de Madurez Integrado con ms frecuencia en la descripcin del KA.
EF Creadora de Experiencia
FP Punto Funcin Finalmente, un tercer significado podra referirse al
HRM Gestin de Recursos Humanos conjunto actual de actividades realizadas dentro de
IDEAL (Modelo de) Iniciacin-Diagnstico- una organizacin, que podra verse como un solo

r
Establecimiento-Actuacin-Apoyo proceso, especialmente desde dentro de la
OMG Grupo de Gestin de Objetos organizacin. Se utiliza este significado en el KA
QIP Paradigma de Mejoras de la Calidad en muy pocos casos.

do
SCAMPI Evaluacin Basada en el MCM para Mejoras Esta KA se aplica a cualquier parte de la gestin de los
de los Procesos utilizando la CMMI procesos del ciclo de vida del software en la que se
SCE Evaluacin de la Capacidad del Software introduzcan cambios de procedimiento o tecnolgicos
SEPG Grupo de Proceso de la Ingeniera del para la mejora de procesos o productos.
Software
Los procesos de ingeniera del software tienen
INTRODUCCIN importancia no slo para las grandes organizaciones.
El KA del Proceso de Ingeniera del Software puede Ms an, las actividades relacionadas con los procesos
examinarse en dos niveles. El primer nivel engloba las pueden ser, y han sido, realizadas con xito por
actividades tcnicas y de gestin dentro de los procesos pequeas organizaciones, equipos e individuos.
rra
del ciclo de vida del software realizadas durante la El objetivo de gestionar los procesos del ciclo de vida
adquisicin, desarrollo, mantenimiento y retirada del del software es implementar nuevos o mejores procesos
software. El segundo es un meta-nivel, que se refiere a en las prcticas actuales, sean stos individuales,
la definicin, implementacin, valoracin, medicin, proyectos u organizacionales.
gestin, cambios y mejoras de los procesos mismos del
ciclo de vida del software. El primer nivel lo cubren las Esta KA no aborda explcitamente la Gestin de
otras KAs en la Gua. Este KA se ocupa del segundo Recursos Humanos (HRM), por ejemplo, como lo
nivel. recoge el MCM de la Gente (Cur02) y procesos de
ingeniera de sistemas [ISO1528-028; IEEE 1220-98].
El trmino proceso de ingeniera del software puede
interpretarse de diversas maneras, y esto puede llevar a Tambin debera reconocerse que muchos temas de
confusiones. procesos de ingeniera del software estn relacionados
Bo

de cerca con otras disciplinas, tales como la gestin,


Un significado, donde se usa la palabra el, como en incluso a veces utilizando una terminologa diferente.
el caso de el proceso de ingeniera del software,
podra implicar que existe slo un modo correcto DESCOMPOSICIN DE LOS TEMAS PARA EL
de realizar tareas de ingeniera del software. En la PROCESO DE INGENIERA DEL SOFTWARE
Gua se evita este significado porque no existe tal
La Figura 1 muestra la descomposicin de los temas en
proceso. Los estndares como IEEE12207 hablan
este KA:
de procesos de ingeniera del software, lo que
significa que hay muchos procesos involucrados, 7. Proceso de Implementacin y Cambios
tales como Procesos de Desarrollo o Proceso de
sta subrea se centra en los cambios organizacionales.
Configuracin de Gestin.
Describe la infraestructura, actividades, modelos y
Un segundo significado se refiere a una discusin consideraciones prcticas de un proceso de
general sobre procesos relacionados con la implementacin y cambios.
r
do
rra
Figura 1 Divisin de los temas para el KA del Proceso de Ingeniera Software

Aqu se describe la situacin en la que los procesos se del esfuerzo del proceso de ingeniera del software.
despliegan por primera vez (por ejemplo, introduciendo Puede que haya que establecer diversos comits, tales
un proceso de inspeccin en un proyecto o un mtodo como un comit de direccin que supervise el esfuerzo
Bo

que cubra todo el ciclo de vida), y donde se cambian los del proceso de ingeniera del software.
procesos actuales (por ejemplo, introduciendo una
En [McF96] se ofrece una descripcin de la
herramienta u optimizando un procedimiento). A esto
infraestructura de la mejora de los procesos en general.
tambin se le puede denominar proceso de evolucin.
En la prctica se utilizan dos tipos principales de
En ambos casos hay que modificar las prcticas
infraestructura: el Grupo de Proceso de Ingeniera del
actuales. Si resulta que se extienden las modificaciones,
Software y la Creadora de Experiencia.
puede que tambin sean necesarios cambios en la
cultura organizacional. 1.1.1 Grupo de Proceso de la Ingeniera del
Software (SEPG)
1.2. Infraestructura del Proceso
[IEEE12207.0-96; ISO15504; SEL96] Se pretende que el SEPG sea el foco central del proceso
de mejoras de la ingeniera del software y tiene cierto
Este tpico incluye el conocimiento relacionado con la
nmero de responsabilidades en trminos de
infraestructura del proceso de ingeniera del software.
inicializacin y mantenimiento. stos se describen en
Para establecer procesos de ciclo de vida del software, [Fow90].
es necesario que la adecuada infraestructura est en su
1.1.2 Creadora de Experiencia (EF)
lugar, es decir que los recursos estn al alcance de la
mano (personal competente, herramientas y El concepto de EF separa la organizacin del proyecto
financiacin) y que se hayan asignado (la organizacin del desarrollo del software, por
responsabilidades. El que se hayan completado estas ejemplo) de la organizacin de las mejoras. La
tareas, indica el compromiso con la gestin y propiedad organizacin del proyecto se centra en el desarrollo y en
el mantenimiento del software, mientras que la EF se Consideraciones Prcticas
ocupa del proceso de mejoras de la ingeniera del
El proceso de implementacin y cambios constituye una
software.
instancia del cambio organizacional. Los esfuerzos de
Se trata de que la EF institucionalice el aprendizaje ms xito en los cambios organizacionales tratan del
colectivo de una organizacin, desarrollando, cambio como un proyecto en toda regla, con planes
actualizando, y entregando a la organizacin del adecuados, monitoreo y revisiones.
proyecto los paquetes de experiencia (por ejemplo,
En [Moi98; San98; Sti99] se encuentran las directrices
guas, modelos y cursos de entrenamiento), tambin
sobre el proceso de implementacin y cambios dentro
conocidos como validaciones de procesos. La
de las organizaciones de ingeniera del software,
organizacin del proceso ofrece a la EF sus productos,
incluyendo la planificacin de las acciones,
los planes utilizados en su desarrollo, y los datos
entrenamientos, gestin de patrocinadores,
reunidos durante su desarrollo y operacin. En [Bas92]
compromisos, y la seleccin de proyectos piloto, y
se presentan ejemplos de paquetes de experiencia.
abarcan tanto los procesos como las herramientas. En
Ciclo de Gestin del Proceso del [EIE99a] se sealan los estudios empricos sobre

r
Software factores de xito para los cambios en los procesos.
[Bas92; Fow90; IEEE12207.0-96; ISO15504-98;
El papel de los agentes de cambio en esta actividad se
McF96; SEL96]
discute en (Hut94). El proceso de implementacin y

do
La gestin de los procesos del software consiste en cambios puede verse asimismo como una instancia de
cuatro actividades secuenciadas en un ciclo iterativo consultora (sea interna o externa).
permitiendo una retroalimentacin continua y mejoras
Uno tambin puede ver cambios organizacionales desde
del proceso del software:
la perspectiva de la transferencia de tecnologa (Rog83).
La actividad del Establecimiento de la Los archivos de ingeniera del software que se ocupan
Infraestructura de un Proceso consiste en establecer de la transferencia de tecnologa y de las caractersticas
un acuerdo con el proceso de implementacin y de los recipientes de nuevas tecnologas (que podran
cambios (que incluya la obtencin de la gestin de incluir tecnologas relacionadas con los procesos) son
compra buy-in) y levantar una adecuada (Pfl99; Rag89).
infraestructura (recursos y responsabilidades) para
rra
Hay dos formas de acercarse la evaluacin de un
que tenga lugar.
proceso de implementacin y cambios, sea en trminos
El propsito de la actividad de Planificacin es de cambios al proceso mismo o en trminos de cambios
comprender los objetivos de las empresas actuales en las salidas de los procesos (por ejemplo, midiendo lo
y las necesidades del proceso del individuo, que te devuelve una inversin tras realizar un cambio).
proyecto u organizacin, para identificar sus Una visin pragmtica de lo que se puede lograr con
fuerzas y flaquezas, y elaborar un plan para el estas evaluaciones se nos da en (Her98).
proceso de implementacin y cambios.
El propsito del Proceso de Implementacin y Las investigaciones sobre cmo evaluar el proceso de
Cambios consiste en llevar a cabo el plan, implementacin y cambios, y los ejemplos de estudios
desplegar nuevos procesos (que pueden implicar, dedicados a ello, se encuentran en [Gol99], (Kit98;
por ejemplo, el desarrollo de herramientas y el Kra99; McG94).
Bo

entrenamiento del personal) y/o cambiar procesos 8. Definicin de Procesos


ya existentes.
La Evaluacin del Proceso se encarga de descubrir Una definicin de un proceso puede ser un
lo bien que se ha llevado a cabo la implementacin procedimiento, una poltica, o un estndar. Los procesos
y cambios, y si se materializaron o no los de ciclo de vida del software se definen por muchas
beneficios esperados. Los resultados se utilizarn razones, que incluira el incrementar la calidad del
ms adelante como entradas para ciclos producto, el facilitar el entendimiento y la
subsiguientes. comunicacin humana, apoyar las mejoras de los
procesos, apoyar la gestin de los procesos, suministrar
Modelos Para el Proceso de una gua automatizada para los procesos, y suministrar
Implementacin y Cambios un apoyo para ejecuciones automatizadas. Los tipos de
Han surgido dos modelos generalizados para llevar a definiciones de procesos requeridos dependern, al
cabo el proceso de implementacin y cambios que son menos parcialmente, de las razones para la definicin.
el Paradigma de Mejoras de la Calidad (QIP) [SEL96] Habra que sealar tambin que el contexto del proyecto
y el modelo IDEAL [McF96]. En [SEL96] se comparan y de la organizacin determinar el tipo de definicin
los dos paradigmas. La evaluacin del proceso de del proceso que resulte ms til. Algunas variables
implementacin y de los resultados de los cambios importantes que hay que considerar incluyen la
pueden ser cualitativos o cuantitativos. naturaleza del trabajo (por ejemplo, mantenimiento o
desarrollo), el dominio de la aplicacin, el modelo de
ciclo de vida, y la madurez de la organizacin.
Modelos de Ciclo de Vida del de la calidad y la ISO/IEC 90003 interpreta esos
Software requerimientos para organizaciones que desarrollan
[Pf101:c2; IEEE12207.0-96] software (ISO90003-04).
Los modelos del ciclo de vida del software sirven como Algunos procesos del ciclo de vida del software ponen
definiciones de alto nivel de las fases que tienen lugar nfasis en entregas rpidas y en una fuerte participacin
durante el desarrollo. No estn enfocadas a ofrecer de los usuarios, como por ejemplo mtodos giles tales
definiciones detalladas sino ms bien a sobresaltar las como la Programacin Extrema [Bec99]. Un tipo de
actividades clave y sus interdependencias. Algunos problema de seleccin tiene que ver con la eleccin
ejemplos de modelos de ciclo de vida del software son realizable a lo largo del eje del mtodo basado en
el modelo de cascada, el modelo de prototipado de usar planificacin. Un acercamiento basado en riesgos para
y tirar lo desechable, desarrollo evolutivo, entrega tomar tal decisin se describe en (Boe03a).
incremental/iterativa, el modelo en espiral, el modelo de
Notaciones para las Definiciones de
software reutilizable, y la sntesis de software
los Procesos
automatizado. Las comparaciones entre estos modelos

r
se encuentran en [Como97], (Dav88), y hay un mtodo Se pueden describir los procesos en diferentes niveles
para seleccionar entre muchos de ellos en (Ale91). de abstraccin (por ejemplo, definiciones genricas
contrapuestas a definiciones adaptadas, descriptivas
Procesos del Ciclo de Vida del
contrapuestas a prescriptivas contrapuestas a

do
Software
proscriptivas [Pf101].
Las definiciones de los procesos de ciclo de vida del
Varios elementos de un proceso pueden definirse, por
software tienden a ser ms detalladas que los modelos
ejemplo, actividades, productos (artefactos), y recursos.
de ciclo de vida del software. Sin embargo, los procesos
Los marcos detallados que estructuran los tipos de
del ciclo de vida del software no pretenden ordenar sus
informacin requeridos para definir los procesos estn
procesos en el tiempo. Esto significa que, en lnea de
descritos en (Mad94).
principio, los procesos del ciclo de vida del software
pueden ordenarse para tener cabida en cualquiera de los Existen algunas notaciones que se utilizan para definir
modelos del ciclo de vida del software. La principal procesos (SPC92). Una diferencia clave entre ellas
referencia sobre esta rea se encuentra en IEEE/EIA reside en el tipo de informacin que definen, capturan y
rra
12207.0: Informacin Tecnolgica Procesos del Ciclo utilizan los marcos mencionados anteriormente. El
de Vida del Software [IEEE 12207.0-96]. ingeniero del software debera ser consciente de las
siguientes aproximaciones al asunto: diagramas de flujo
El estndar IEEE 1074:1997 para desarrollar procesos
de datos, en trminos de la finalidad del proceso y de
de ciclo de vida ofrece tambin una lista de procesos y
las salidas [ISO15504-98], como una lista de procesos
actividades para el desarrollo y el mantenimiento del
descompuestos en actividades constituyentes y tareas
software [IEEE1074-97], adems de ofrecer una lista de
definidas en lenguaje natural [IEEE12207.0-96],
actividades del ciclo de vida que pueden mapearse hacia
Grficos de Estados (Har98), EVTX (Rad85), modelado
procesos y organizarse del mismo modo que cualquiera
de Dependencia del Actor (Yu94), notacin SADT
de los modelos de ciclo de vida del software. Adems,
(Mcg93), redes Petri (Ban95); IDEF0 (IEEE 1320.1-
identifica y une a estas actividades otros estndares de
98), y los basados en reglas (Bar95). Ms
software IEEE. En lnea de principio, el estndar IEEE
recientemente, un estndar de modelado del proceso ha
Bo

1074 puede utilizarse para construir procesos de


sido publicado por el OMG que tiene como fin
acuerdo a cualquiera de los modelos de ciclo de vida.
armonizar las notaciones de modelado. A esto se le
Los estndares enfocados al mantenimiento de procesos
llama la especificacin MPIS (Meta-Modelo del
son el estndar IEEE 1219-1998 y la ISO 14764:1998
Proceso de Ingeniera del Software). [OMG02]
[IEEE 1219-98].
Adaptacin del Proceso
Otros estndares importantes que ofrecen definiciones
[IEEE 12007.0-96; ISO15504-98; Joh99]
de procesos son:
Es importante sealar que los procesos predefinidos
Estndar IEEE 1540: Gestin de Riesgos del
incluso los estandarizados deben adaptarse a las
Software.
necesidades locales, por ejemplo, el contexto
Estndar IEEE 1517: Procesos de Reutilizacin del organizacional, el tamao del proyecto, los requisitos
Software (IEEE 1517-99). reguladores, las prcticas industriales y las culturas
ISO/IEC 15939: Proceso de Medicin del Software corporativas. Algunos estndares, tales como IEEE/EIA
[IEEE 15939-02]. Ver tambin el KA de Gestin 12207, contienen mecanismos y recomendaciones para
de Ingeniera del Software para una descripcin lograr la adaptacin.
detallada de este proceso.
Automatizacin
En algunas ocasiones se han de definir los procesos de [Pf101:c2]
ingeniera del software tomando en cuenta los procesos
organizacionales para la gestin de la calidad. La ISO Las herramientas automatizadas o apoyan la ejecucin
9001 ofrece los requisitos para los procesos de gestin de las definiciones del proceso o aportan una gua a los
humanos que desarrollan los procesos definidos. En los Mtodos de Valoracin del Proceso
casos en los que se realiza el anlisis de un proceso, [Go199]
algunas herramientas permiten distintos tipos de
Para poder realizar una valoracin, se necesita seguir un
simulaciones (por ejemplo, la simulacin de un evento
mtodo especfico de valoracin para producir un
discreto).
resultado cuantitativo que caracterizara la capacidad
Adems, existen herramientas que apoyan cada una de del proceso (o madurez de la organizacin).
las notaciones de la definicin del proceso citados
El mtodo de valoracin CBA-IPI, por ejemplo, se
anteriormente. Ms an, estas herramientas pueden
centra en la mejora de proceso (Dun96), y el mtodo
ejecutar las definiciones de procesos para otorgar una
SCE se centra en evaluar la capacidad de los
ayuda automatizada a los procesos actuales, o en
proveedores (Bar95). Ambos mtodos fueron
algunos casos para automatizarlos plenamente. Una
desarrollados para el SW-CMM. En [ISO15504-98],
visin general de las herramientas de modelado de
(Mas95) se ofrecen los requisitos de ambos tipos de
procesos puede encontrarse en [Fin94] y de los entornos
mtodos que reflejan lo que se cree que seran buenas
centrados en procesos en (Gar96). Los trabajos sobre
prcticas de valoracin. Los mtodos SCAMPI giran en

r
cmo aplicar Internet al suministro de una gua de un
torno a las valoraciones CMMI [SEI01]. Las
proceso en tiempo real est descrita en (Kel98).
actividades realizadas durante una valoracin, la
9. Valoracin del Proceso distribucin de esfuerzos en estas actividades, as como

do
la atmsfera durante una valoracin son muy diferentes
La valoracin del proceso se lleva a cabo utilizando
dependiendo de que sean para una mejora o para la
tanto un modelo de valoracin como un mtodo de
adjudicacin de un contrato.
valoracin. En algunas instancias, el trmino
apreciacin se utiliza en vez de valoracin, y el Se han criticado los modelos y mtodos de las
trmino evaluacin de la capabilidad se utiliza valoraciones de los procesos, por ejemplo (Fay97;
cuando la apreciacin tiene como propsito la Gra98). La mayora de estas crticas se refieren a la
adjudicacin de un contrato. evidencia emprica que apoya el uso de modelos y
mtodos de valoracin. Sin embargo, desde la
Modelos de Valoracin del Proceso
publicacin de estos artculos, ha existido alguna
Un modelo de valoracin recoge lo que se reconoce evidencia sistemtica que apoyaba la eficacia de las
rra
como buenas prcticas. Estas prcticas pueden referirse valoraciones de los procesos (Cla97; Ele00; Ele00a;
slo a las actividades tcnicas de ingeniera del Kri99).
software, o puede que se refieran tambin, por ejemplo,
10. Medicin de los Procesos y Productos
a actividades de gestin, de ingeniera de sistemas, y
tambin de gestin de recursos humanos. Mientras que la aplicacin de mediciones a la ingeniera
del software puede resultar compleja, particularmente
La ISO/IEC 15504 [ISO15504-98] define un modelo
en trminos de mtodos de modelado y anlisis, existen
ejemplar de valoracin y de requisitos de conformidad
varios aspectos de las mediciones en la ingeniera del
con otros modelos de valoracin. Los modelos de
software que resultan fundamentales y que estn a la
valoracin especficos disponibles y en uso son SW-
base de muchos de los procesos de medicin y anlisis
CMM (SEI95), CMMI [SEI01], y Bootstrap [Sti99]. Se
ms avanzados. Ms an, los esfuerzos para mejorar el
han definido muchos otros modelos de capacidad y
logro de procesos y productos slo pueden valorarse si
Bo

madurez por ejemplo, para diseo, documentacin y


se ha establecido un conjunto de medidas de base.
mtodos formales, por nombrar algunos. La ISO 9001
es otro modelo comn de validacin que ha sido La medicin puede realizarse para apoyar la iniciacin
aplicado por organizaciones de software (ISO9001-00). de un procesos de implementacin y cambio o para
evaluar las consecuencias de un proceso de
Se ha desarrollado asimismo un modelo de madurez
implementacin y cambio, o puede realizarse en el
para sistemas de ingeniera, que puede resultar til
producto mismo.
cuando un proyecto u organizacin est implicado en el
desarrollo y mantenimiento de sistemas, incluido el La medicin puede realizarse para apoyar la iniciacin
software (EIA/IS731-99). de unos procesos de implementacin y cambio o para
evaluar las consecuencias de un proceso de
En [Joh99; San98] se examina la aplicabilidad de los
implementacin y cambio, o puede realizarse en el
modelos de valoracin a pequeas organizaciones.
producto mismo.
Existen dos arquitecturas generales para un modelo de
Los trminos clave de medicin del software y de
valoracin que ofrecen diversas conjeturas sobre el
mtodos de medicin han sido definidos en la ISO/IEC
orden en el que los procesos han de ser valorados:
15939 basados en el vocabulario ISO internacional de
continua y escalonadamente (Pau94). Son muy
metrologa. La ISO/IEC 15359 tambin ofrece un
diferentes entre s y la organizacin debera evaluarlos
proceso estndar para medir tanto los procesos como las
sopesndolos para determinar cules son los ms
caractersticas de los productos [VIM93].
pertinentes para sus necesidades y objetivos.
A pesar de todo, los lectores encontrarn diferencias satisfaccin del cliente), debemos haber implementado
terminolgicas en la literatura; por ejemplo, el trmino los procesos adecuados.
mtrica se utiliza a veces en vez de medida.
Por supuesto que no son nicamente los procesos lo que
4.1 Medicin del Proceso tiene incidencia en las salidas. Otros factores como la
[ISO15539-02] capacidad del equipo y las herramientas que utilizan
juegan un importante papel. Por ejemplo, cuando se
El trmino medicin del proceso, tal y como se utiliza
evala el impacto de cambio en un proceso, es
aqu, significa que se recoge, analiza e interpreta
importante poner de relieve esas otras influencias.
informacin cuantitativa sobre el proceso. Se utiliza la
Adems es importante considerar el grado en el que el
medicin para identificar las fuerzas y las debilidades
proceso ha sido institucionalizado (que fidelidad hay al
de los procesos y para evaluar los procesos despus de
proceso) para poder explicar porqu buenos procesos
que hayan sido implementados y/o cambiados.
no siempre proporcionan las salidas deseadas en una
La medicin del proceso tambin puede servir para situacin dada.
otros propsitos. Por ejemplo, la medicin del proceso

r
es til para gestionar un proyecto de ingeniera del
software. Aqu, el enfoque est en la medicin del
proceso con el propsito de la implementacin y
cambio del proceso.

do
El diagrama de caminos de la Figura 2 ilustra algo que
se dar por supuesto en la mayora de los proyectos de
ingeniera del software, que indica que normalmente el
proceso tiene un impacto en los resultados de un
proyecto.
No todo proceso va a tener un impacto positivo en todas
sus salidas. Por ejemplo, la introduccin de Figura 2 Diagrama que muestra la relacin entre un
inspecciones del software puede reducir esfuerzos y proceso y los resultados obtenidos
costes de las pruebas, pero puede incrementar el tiempo
Medida del Producto Software
rra
de espera si cada inspeccin introduce largas esperas a
causa de haber calendarizado reuniones de larga [ISO9126-01]
inspeccin (Vot93). Por tanto, es preferible utilizar
medidas para salidas de mltiples procesos que resultan La medicin de un producto software incluye,
importantes para la organizacin de la empresa. principalmente, la medicin del tamao del producto, la
estructura del producto y la calidad del producto.
Mientras que se pueden hacer algunos esfuerzos para
valorar la utilizacin de herramientas y de hardware, el 4.1.1 Medicin del Tamao
recurso principal que necesita ser gestionado en la
ingeniera del software es el personal. Como resultado El tamao de un producto software es evaluado a
de esto, las principales mediciones del inters son menudo mediante medidas de longitud (por ejemplo,
aqullas relacionadas con la productividad de los lneas de cdigo fuente en un mdulo, pginas en
documento de especificacin de los requisitos del
Bo

equipos o procesos (por ejemplo, utilizando una medida


de puntos funcin producidos por unidad de persona- software), o funcionalidad (por ejemplo, puntos de
esfuerzo) y sus niveles asociados de experiencia en la funcin en una especificacin). El Estndar IEEE Std
ingeniera del software en general, y quizs en 14143.1 proporciona los principios de medicin
particulares tecnologas [Fen98: c3, c11; Som05: c25]. funcional del software. Los estndares internacionales
para la medicin funcional del software incluyen el
Las salidas de los procesos pueden ser, por ejemplo, ISO/IEC 19761, 20926, y el 20968 [IEEE 14143.1-00;
calidad del producto (errores por KLOC (Kilo Lneas de ISO19761-03; ISO20926-03; ISO20968-02].
Cdigo) o por Punto Funcin (FP)), mantenibilidad (el
esfuerzo para hacer un cierto tipo de cambio),
productividad (LDC (Lneas de Cdigo)) o Puntos 4.1.2 Medicin de la Estructura
Funcin por persona-mes), tiempo-de-mercado, o
satisfaccin del cliente (como medidos por medio de Un rango diverso de medidas de la estructura de un
una encuesta a clientes). Esta relacin depende del producto software puede ser aplicado a un nivel bajo y
contexto particular (por ejemplo, el tamao de la alto de diseo y cdigo del artefacto para as reflejar el
organizacin o el tamao del proyecto). control del flujo (por ejemplo el nmero ciclomtico,
cdigo de nudo), flujo de la informacin (por ejemplo,
En general, estamos mucho ms preocupados acerca del medidas de porcin), anidacin (por ejemplo, la medida
proceso de salidas. Sin embargo, con el objetivo de polinomial de anidacin, la medida BAND), estructuras
conseguir las salidas del proceso que deseamos (por de control (por ejemplo, la medida del vector, la medida
ejemplo, mayor facilidad de mantenimiento, mayor NPATH), y la estructura e interaccin modular (por
ejemplo, el flujo de la informacin, medidas basadas en 4.3 Modelos de Informacin del Software
rboles, acoplamiento y cohesin).
Tal como la informacin es recogida y el repositorio de
[Fen98: c8; Pre04: c15] medicin es completado, nosotros podemos hacer
posible la construccin de modelos usando la
informacin y el conocimiento.
4.1.3 Medicin de la Calidad
Esos modelos existen para analizar, clasificar y
Como un atributo multidimensional, la medicin de la predecir. Tales modelos necesitan ser evaluados para
calidad es menos sencilla de definir que los anteriores. asegurar que los niveles de precisin son suficientes y
Adems, algunas de las dimensiones de la calidad son que sus limitaciones son conocidas y entendidas. El
probables que requieran medidas cualitativas ms que refinamiento de los modelos, que tiene lugar durante y
cuantitativas. Una discusin ms detallada de las despus de que los proyectos sean completados, es otra
medidas de calidad del software es ofrecido en la KA de actividad importante.
Calidad del Software, tema 3.4. Los modelos ISO de la
calidad del software y las medidas relacionadas son

r
descritos en la ISO 9126, de la parte 1 a la parte 4 4.3.1 Creacin de Modelos
[ISO9126-01]. [Fen98: c9,c10; Pre04: c15; Som05: La creacin de modelos incluye la calibracin y la
c24] evaluacin del modelo. El objetivo aproximado al que

do
nos dirigimos son informes de medidas del proceso de
construccin de un modelo hasta que los modelos son
4.2. Calidad de los Resultados de Medicin construidos para as resolver las cuestiones importantes
Los resultados de la medicin de la calidad (precisin, y conseguir las mejoras del software propuestas. Este
reproducibilidad, repitibilidad, convertibilidad, proceso es est tambin influenciado por las
medicin aleatoria de errores) son primordiales para la limitaciones de unas escalas particulares de medicin en
medida de los programas para proveer resultados relacin con el mtodo de anlisis seleccionado. Los
efectivos y estables. Las caractersticas clave de los modelos son calibrados (mediante el uso de ciertas
resultados de la medicin y la calidad relacionada con observaciones relevantes, como por ejemplo, proyectos
los instrumentos de medicin definidos en vocabulario recientes, proyectos en los cuales se han utilizado
rra
internacional de metrologa [VIM93] de la ISO. tecnologas similares) y su efectividad es evaluada (por
ejemplo, mediante pruebas de su rendimiento en
La teora de la medicin establece la base en qu algunas muestras). [Fen98: c4,c6,c13;Pfl01:
medidas significativas pueden ser creadas. La teora de c3,c11,c12;Som05: c25]
la medicin y los tipos de escalas son discutidas en
[Kan02]. La medicin es definida en la teora como la
asignacin de nmeros a los objetos de una forma 4.3.2 Implementacin de Modelos
sistemtica para presentar las propiedades de los
objetos. La implementacin de modelos incluye interpretacin y
refinamiento de modelos- los modelos calibrados son
Una apreciacin de las escalas para la medicin del usados en los procesos, sus resultados son interpretados
software y la implicacin de cada tipo de escala en y evaluados en el contexto del proceso/proyecto, y los
relacin a la posterior seleccin de mtodos de anlisis modelos son luego redefinidos donde sea apropiado.
Bo

de informacin es especialmente importante. [Fen98: c6; Pfl01: c3,c11, c12; Pre04: c22; Som05:
[Abr96; Fen98: c2; Pfl01: c11] Las escalas c25]
significativas son mencionadas en una clasificacin de
escalas. Para aquellas, la teora de medicin ofrece una
sucesin de ms y ms caminos obligatorios de 4.4 Tcnicas de Medicin del Proceso
asignacin de medidas. Si los nmeros asignados son Las tcnicas de medicin deben ser usadas para analizar
simplemente para ofrecer etiquetas para clasificar los los procesos de ingeniera del software y para la
objetos, entonces son llamados nominales. Si son identificacin de las fortalezas y debilidades. Esto
asignados de tal forma que clasifique los objetos (por puede ser desempeado para iniciar la implementacin
ejemplo, bueno, mejor, el mejor), son llamados y cambio del proceso, o para evaluar las consecuencias
ordinales. Si son tratados con magnitudes de la de la implementacin y el cambio en el proceso.
propiedad relativa a la unidad de medicin definida, son
llamados intervalos (y los intervalos son uniformes La calidad de los resultados medidos, como la
entre los nmeros; si no, entonces sern aditivos). Las exactitud, repetitividad, y la reproductibilidad, son
medidas estn el nivel del ratio si tienen un punto de asuntos de medicin en el proceso de ingeniera del
cero absoluto, por lo que las distancias de los ratios al software, ya que estn basados en instrumentos y
punto cero son significativas. mediciones crticas, como por ejemplo, cuando un
asesor asigna una puntuacin a un proceso en particular.
Un mtodo y una forma de conseguir calidad en las resultados deseables. Estudios observacionales
mediciones se puede encontrar en [Gol99]. pueden tambin proveer una til retroalimentacin
para identificar las mejoras de los procesos.
Las tcnicas de medicin de procesos han sido
(Agr99)
clasificadas dentro de dos tipos generales: analticas y
puntos de referencia. Los dos tipos de tcnicas puedes
ser usados conjuntamente ya que estn basados en
distinto tipo de informacin. (Car91) La Clasificacin del Defecto Ortogonal es una
tcnica que puede ser usada para enlazar los errores
encontrados con causas potenciales. Depende de las
vinculaciones entre tipos y disparadores de errores.
4.4.1 Tcnicas Analticas
(Chi92; Chi96) En la clasificacin de errores (o
Las tcnicas analticas se caracterizan por depender de anomalas), el Estndar IEEE puede ser til en este
la evidencia cuantitativa para determinar dnde son contexto (Estndar IEEE para la Clasificacin de
necesarias unas mejoras y si una iniciativa de mejora ha Anomalas del Software (IEEE1044-93).
tenido xito. El tipo analtico es ejemplificado por el

r
Paradigma de la Mejora de la Calidad (QIP), que
consiste en un crculo de entendimiento, evaluacin y El Anlisis de Causas desde la Raz es otra tcnica
empaquetado [SEL96]. Las tcnicas presentadas a analtica comn que se utiliza en la prctica. sta

do
continuacin son pretendidas como otros ejemplos de tiene su origen desde los problemas detectados (por
tcnicas analticas, y reflejan que est hecho en la ejemplo, errores) para detectar las causas del
prctica. [Fen98; Mus99], (Lyu96; Wei93; Zel98) Si proceso, con el propsito de cambiar el proceso
una organizacin especfica usa o no todas estas para evitar estos problemas en el futuro. Se pueden
tcnicas depender, al menos parcialmente, en su encontrar ejemplos para distintos tipos de procesos
madurez. en (Col93; Ele97; Nak91).

Estudios Experimentales: la experimentacin La tcnica de Clasificacin del Defecto Ortogonal


implica el establecimiento controlado o cuasi descrita arriba puede ser usada para encontrar
experimentos en la organizacin para evaluar
rra
categoras en las que pueden existir muchos
procesos. (McG94). De forma usual, un Nuevo problemas, hasta el punto en el que puedan ser
proceso es comparado con el proceso actual para analizados. La Clasificacin del Defecto Ortogonal
determinar si el primero tuvo mejores resultados o es as de este modo usada para hacer una seleccin
no. cuantitativa para saber dnde aplicar el Anlisis de
Otro tipo de estudios experimentales es la Causas desde la Raz.
simulacin del proceso. Este tipo de estudio puede
ser usado para analizar el comportamiento del
proceso, para explorar las mejoras exponenciales El Proceso de Control Estadstico es un modo
del proceso, predecir los resultados del proceso si eficaz de identificar estabilidad, o la falta de ella,
el proceso actual es cambiado de cierta manera, en el proceso a travs del uso de trazas de control y
controlar la ejecucin del proceso. La informacin sus interpretaciones. Una buena introduccin a SPC
Bo

inicial sobre el rendimiento del proceso actual en el contexto de la ingeniera del software es
necesita ser recogida como base a la simulacin. presentada en (Flo99).

El Informe de Definicin del Proceso es un medio El Proceso Personal de Software define una serie
por el cual la definicin de un proceso (si es de mejoras a una prctica de desarrollo
descriptivo, o preceptivo, o ambos) es revisado, e individualizada en un orden especfico [Hum95].
identificadas las deficiencias y las mejoras Es un proceso que va desde abajo arriba en el
potenciales del proceso. Ejemplos tpicos de esto sentido que estipula una coleccin de informacin
son presentados en (Ban95; Kel98). Un camino personal y las mejoras basadas en la interpretacin
operacional sencillo para analizar el proceso es de la informacin.
compararlo con un estndar existente (nacional,
internacional, o entidad profesional), como
IEEE/EIA 12207.0 [IEEE12207.0-96]. Con esta 4.4.2 Tcnicas de Bancos de Pruebas
aproximacin, la informacin cuantitativa no es La segunda tcnica, bancos de prueba, depende de la
recogida del proceso, o, si hay, juegan un rol de identificar una organizacin excelente en un campo y
apoyo. La definicin de los anlisis de en la documentacin de sus prcticas y herramientas.
rendimiento individual de los procesos utilizan su El banco de pruebas asume que si una organizacin
conocimiento y capacidades para decidir qu menos competente adopta las prcticas de la
cambios en los procesos deberan conducir a
organizacin excelente, ella tambin llegar a ser
excelente. Los bancos de pruebas engloban la
evaluacin de la madurez de una organizacin o de la
capacidad de sus procesos. Eso se simplifica por el
trabajo de evaluacin del proceso software. Se puede
ver una introduccin general de evaluaciones de
procesos y su aplicacin en (Zah98).

r
do
rra
Bo
MATRIZ DE TEMAS VS. MATERIAL DE REFERENCIA

[OMG02]
[Com97]

[McF96]

[Som05]
[Mus99]

[SEL96]
[Fow90]

[Moi98]
[Abr96]

[Fen98]
[Boe03]

[San98]

[SEI01]
[Bec99]
[Bas92]

[Joh99]

[Pre04]
[Fin94]

Gol99]

[Pfl01]

[Sti99]
r
1.Proceso de Implementacin y Cambios

do
1.1Infraestructura del Proceso * *
1.2 Ciclo de Gestin del Proceso Software * * * *
1.3 Modelos para el Proceso de Implementacin y
* * *
Cambios
1.4 Consideraciones Prcticas * * *

2.Definicin de Procesos * *
2.1Modelos de Ciclo de Vida del Software *

rra
2.2Procesos del Ciclo de Vida del Software * * c2
2.3Notaciones para la Definicin de Procesos
2.4 Adaptacin del Proceso * c2
2.5Automatizacin *

3.Valoracin del Proceso * c2


3.1Modelos de Valoracin de Procesos * * *
3.2Mtodos de Valoracin de Procesos * *

4.Medicin de Productos y Procesos *


Bo
4.1Medicin de Procesos c3,
c25
c11
4.2Medicin de Productos Software c8-
c15 c24
c10
4.3Caliddad de los Resultados de Medicin * c2
4.4Modelos de Informacin Software c11
Construccin del Modelo c4,
c25
c6,c13
Implementacin del Modelo c3,
c6 c22 * c25
c11,c12
4.5 Tcnicas de Medicin de Procesos * *

IEEE12207

IEEE14143
IEEE 1044

IEEE 1061

IEEE 1074

IEEE 1219

IEEE 1517

IEEE 1540
ISO9000-3

ISO14764

ISO15504

ISO15288

ISO15939

ISO19761

ISO20926

ISO20969

ISO VIM
ISO9001

ISO9126

r
.1
1.Proceso de Implementacin y Cambios

do
1.1Infraestructura del Proceso * *
1.2 Ciclo de Gestin del Proceso Software * *
1.3 Modelos para el Proceso de Implementacin y Cambios
1.4 Consideraciones Prcticas

2.Definicin de Procesos
2.1Modelos de Ciclo de Vida del Software
2.2Procesos del Ciclo de Vida del Software * * * * * * * * *

rra
2.3Notaciones para la Definicin de Procesos *
2.4 Adaptacin del Proceso *
2.5Automatizacin

3.Valoracin del Proceso


3.1Modelos de Valoracin de Procesos * *
3.2Mtodos de Valoracin de Procesos *

4.Medicin de Productos y Procesos


4.1Medicin de Procesos * *
Bo
4.2Medicin de Productos Software * * * * *
4.3Caliddad de los Resultados de Medicin *
4.4Modelos de Informacin Software
Construccin del Modelo
Implementacin del Modelo
4.5 Tcnicas de Medicin de Procesos * *
REFERENCIAS RECOMENDADAS [ISO15504-98] ISO/IEC TR 15504:1998, Information
Technology - Software Process Assessment (parts 1-9),
[Abr96] A. Abran and P.N. Robillard, Function Points ISO and IEC, 1998. [ISO15939-02] ISO/IEC 15939:2002,
Analysis: An Empirical Study of its Measurement Software Engineering Software Measurement Process,
Processes, IEEE Transactions on Software Engineering, ISO and IEC, 2002.
vol. 22, 1996, pp. 895-909.
[Joh99] D. Johnson and J. Brodman, Tailoring the CMM
[Bas92] V. Basili et al., The Software Engineering for Small Businesses, Small Organizations, and Small
Laboratory An Operational Software Experience Projects, presented at Elements of Software Process
Factory, presented at the International Conference on Assessment and Improvement, 1999.
Software Engineering, 1992.
[McF96] B. McFeeley, IDEAL: A Users Guide for
[Bec99] K. Beck, Extreme Programming Explained: Software Process Improvement, Software Engineering
Embrace Change, Addison-Wesley, 1999. Institute CMU/SEI-96-HB-001, 1996, available at
[Boe03] B. Boehm and R. Turner, Using Risk to Balance http://www.sei.cmu.edu/pub/documents/96.reports/pdf/hb0
Agile and Plan-Driven Methods, Computer, June 2003, 01.96.pdf.

r
pp. 57-66. [Moi98] D. Moitra, Managing Change for Software
[Com97] E. Comer, Alternative Software Life Cycle Process Improvement Initiatives: A Practical Experience
Models, presented at International Conference on Based Approach, Software Process Improvement and

do
Software Engineering, 1997. Practice, vol. 4, iss. 4, 1998, pp. 199-207.
[ElE99] K. El-Emam and N. Madhavji, Elements of [Mus99] J. Musa, Software Reliability Engineering: More
Software Process Assessment and Improvement, IEEE Reliable Software, Faster Development and Testing,
Computer Society Press, 1999. McGraw-Hill, 1999.
[Fen98] N.E. Fenton and S.L. Pfleeger, Software Metrics: [OMG02] Object Management Group, Software Process
A Rigorous & Practical Approach, second ed., Engineering Metamodel Specification, 2002, available at
International Thomson Computer Press, 1998. http://www.omg.org/docs/formal/02-11-14.pdf.
[Fin94] A. Finkelstein, J. Kramer, and B. Nuseibeh, [Pfl01] S.L. Pfleeger, Software Engineering: Theory and
Software Process Modeling and Technology, Research Practice, second ed., Prentice Hall, 2001.
Studies Press Ltd., 1994.
rra
[Pre04] R.S. Pressman, Software Engineering: A
[Fow90] P. Fowler and S. Rifkin, Software Engineering Practitioners Approach, sixth ed., McGraw-Hill, 2004.
Process Group Guide, Software Engineering Institute, [San98] M. Sanders, The SPIRE Handbook: Better,
Technical Report CMU/SEI-90-TR-24, 1990, available at Faster, Cheaper Software Development in Small
http://www.sei.cmu.edu/pub/documents/90.reports/pdf/tr2 Organisations, European Commission, 1998.
4.90.pdf.
[SEI01] Software Engineering Institute, Capability
[Gol99] D. Goldenson et al., Empirical Studies of Maturity Model Integration, v1.1, 2001, available at
Software Process Assessment Methods, presented at http://www.sei.cmu.edu/cmmi/cmmi.html.
Elements of Software Process Assessment and
Improvement, 1999. [SEL96] Software Engineering Laboratory, Software
Process Improvement Guidebook, NASA/GSFC,
[IEEE1074-97] IEEE Std 1074-1997, IEEE Standard for Technical Report SEL-95-102, April 1996, available at
Bo

Developing Software Life Cycle Processes, IEEE, 1997. http://sel.gsfc.nasa.gov/website/documents/online-doc/95-


[IEEE12207.0-96] IEEE/EIA 12207.0-1996//ISO/ 102.pdf.
IEC12207:1995, Industry Implementation of Int. Std [Som05] I. Sommerville, Software Engineering, seventh
ISO/IEC 12207:95, Standard for Information Technology- ed., Addison-Wesley, 2005.
Software Life Cycle Processes, IEEE, 1996.
[Sti99] H. Stienen, Software Process Assessment and
[VIM93] ISO VIM, International Vocabulary of Basic and Improvement: 5 Years of Experiences with Bootstrap,
General Terms in Metrology, ISO, 1993. Elements of Software Process Assessment and
[ISO9126-01] ISO/IEC 9126-1:2001, Software Improvement, K. El-Emam and N. Madhavji, eds., IEEE
Engineering - Product Quality-Part 1: Quality Model, ISO Computer Society Press, 1999.
and IEC, 2001.
APNDICE A. LISTA DE LECTURAS ADICIONALES Benefit: Principles and Experiences, R. Messnarz and C.
Tully, eds., IEEE Computer Society Press, 1999.
(Agr99) W. Agresti, The Role of Design and Analysis in
Process Improvement, presented at Elements of Software (ElE-00a) K. El-Emam and A. Birk, Validating the
Process Assessment and Improvement, 1999. ISO/IEC 15504 Measures of Software Development
Process Capability, Journal of Systems and Software, vol.
(Ale91) L. Alexander and A. Davis, Criteria for Selecting
51, iss. 2, 2000, pp. 119-149.
Software Process Models, presented at COMPSAC 91,
1991. (ElE-00b) K. El-Emam and A. Birk, Validating the
ISO/IEC 15504 Measures of Software Requirements
(Ban95) S. Bandinelli et al., Modeling and Improving an
Analysis Process Capability, IEEE Transactions on
Industrial Software Process, IEEE Transactions on
Software Engineering, vol. 26, iss. 6, June 2000, pp. 541-
Software Engineering, vol. 21, iss. 5, 1995, pp. 440-454.
566
(Bar95) N. Barghouti et al., Two Case Studies in
(Fay97) M. Fayad and M. Laitinen, Process Assessment:
Modeling Real, Corporate Processes, Software Process
Considered Wasteful, Communications of the ACM, vol.
Improvement and Practice, Pilot Issue, 1995, pp. 17-32.
40, iss. 11, November 1997.

r
(Boe03a) B. Boehm and R. Turner, Balancing Agility and
(Flo99) W. Florac and A. Carleton, Measuring the
Discipline: A Guide for the Perplexed, Addison-Wesley,
Software Process: Statistical Process Control for Software
2003.
Process Improvement, Addison-Wesley, 1999.

do
(Bur99) I. Burnstein et al., A Testing Maturity Model for
(Gar96) P. Garg and M. Jazayeri, Process-Centered
Software Test Process Assessment and Improvement,
Software Engineering Environments: A Grand Tour,
Software Quality Professional, vol. 1, iss. 4, 1999, pp. 8-
Software Process, A. Fuggetta and A. Wolf, eds., John
21.
Wiley & Sons, 1996.
(Chi92) R. Chillarege et al., Orthogonal Defect
(Gra97) R. Grady, Successful Software Process
Classification - A Concept for In-Process Measurement,
Improvement, Prentice Hall, 1997.
IEEE Transactions on Software Engineering, vol. 18, iss.
11, 1992, pp. 943-956. (Gra88) E. Gray and W. Smith, On the Limitations of
Software Process Assessment and the Recognition of a
(Chi96) R. Chillarege, Orthogonal Defect Classification,
Required Re-Orientation for Global Process
Handbook of Software Reliability Engineering, M. Lyu,
Improvement, Software Quality Journal, vol. 7, 1998, pp.
rra
ed., IEEE Computer Society Press, 1996.
21-34.
(Col93) J. Collofello and B. Gosalia, An Application of
(Har98) D. Harel and M. Politi, Modeling Reactive
Causal Analysis to the Software Production Process,
Systems with Statecharts: The Statemate Approach,
Software Practice and Experience, vol. 23, iss. 10, 1993,
McGraw-Hill, 1998.
pp. 1095-1105.
(Her98) J. Herbsleb, Hard Problems and Hard Science:
(Cur02) B. Curtis, W. Hefley, and S. Miller, The People
On the Practical Limits of Experimentation, IEEE TCSE
Capability Maturity Model: Guidelines for Improving the
Software Process Newsletter, vol. 11, 1998, pp. 18-21,
Workforce, Addison-Wesley, 2002.
available at http://www.seg.iit.nrc.ca/SPN.
(Dav88) A. Davis, E. Bersoff, and E. Comer, A Strategy
(Hum95) W. Humphrey, A Discipline for Software
for Comparing Alternative Software Development Life
Engineering, Addison-Wesley, 1995.
Cycle Models, IEEE Transactions on Software
Bo

Engineering, vol. 14, iss. 10, 1988, pp. 1453-1461. (Hum99) W. Humphrey, An Introduction to the Team
Software Process, Addison-Wesley, 1999.
(Dun96) D. Dunnaway and S. Masters, CMM-Based
Appraisal for Internal Process Improvement (Hut94) D. Hutton, The Change Agents Handbook: A
Survival Guide for Quality Improvement Champions,
(CBA IPI): Method Description, Software Engineering
Irwin, 1994.
Institute CMU/SEI-96-TR-007, 1996, available at
http://www.sei.cmu.edu/pub/documents/96.reports/pdf/tr0 (Kan02) S.H. Kan, Metrics and Models in Software
07. 96.pdf. Quality Engineering, second ed., Addison-Wesley, 2002.
(EIA/IS731-99) EIA, EIA/IS 731 Systems Engineering (Kel98) M. Kellner et al., Process Guides: Effective
Capability Model, 1999, available at Guidance for Process Participants, presented at the 5th
http://www.geia.org/eoc/G47/index.html. International Conference on the Software Process, 1998.
(ElE-97) K. El-Emam, D. Holtje, and N. Madhavji, (Kit98) B. Kitchenham, Selecting Projects for
Causal Analysis of the Requirements Change Process for Technology Evaluation, IEEE TCSE Software Process
a Large System, presented at Proceedings of the Newsletter, iss. 11, 1998, pp. 3-6, available at
International Conference on Software Maintenance, 1997. http://www.seg.iit.nrc.ca/SPN.
(ElE-99a) K. El-Emam, B. Smith, and P. Fusaro, Success (Kra99) H. Krasner, The Payoff for Software Process
Factors and Barriers in Software Process Improvement: An Improvement: What It Is and How to Get It, presented at
Empirical Study, Better Software Practice for Business Elements of Software Process Assessment and
Improvement, 1999.
(Kri99) M.S. Krishnan and M. Kellner, Measuring (Rad85) R. Radice et al., A Programming Process
Process Consistency: Implications for Reducing Software Architecture, IBM Systems Journal, vol. 24, iss. 2, 1985,
Defects, IEEE Transactions on Software Engineering, pp. 79-90.
vol. 25, iss. 6, November/December 1999, pp. 800-815.
(Rag89) S. Raghavan and D. Chand, Diffusing Software-
(Lyu96) M.R. Lyu, Handbook of Software Reliability Engineering Methods, IEEE Software, July 1989, pp. 81-
Engineering, Mc-Graw-Hill/IEEE, 1996. 90.
(Mad94) N. Madhavji et al., Elicit: A Method for (Rog83) E. Rogers, Diffusion of Innovations, Free Press,
Eliciting Process Models, presented at Proceedings of the 1983.
Third International Conference on the Software Process,
(Sch99) E. Schein, Process Consultation Revisited:
1994.
Building the Helping Relationship, Addison-Wesley, 1999.
(Mas95) S. Masters and C. Bothwell, CMM Appraisal
(SEI95) Software Engineering Institute, The Capability
Framework - Version 1.0, Software Engineering Institute
Maturity Model: Guidelines for Improving the Software
CMU/SEI-TR-95-001, 1995, available at
Process, Addison-Wesley, 1995.
http://www.sei.cmu.edu/pub/documents/95.reports/pdf/tr0

r
01.95.pdf. (SEL96) Software Engineering Laboratory, Software
Process Improvement Guidebook, Software Engineering
(McG94) F. McGarry et al., Software Process
Laboratory, NASA/GSFC, Technical Report SEL-95-102,
Improvement in the NASA Software Engineering

do
April 1996, available at
Laboratory, Software Engineering Institute CMU/SEI-94-
http://sel.gsfc.nasa.gov/website/documents/online-doc/95-
R-22, 1994, available at
102.pdf
http://www.sei.cmu.edu/pub/documents/94.reports/pdf/tr2
2.94.pdf. (SPC92) Software Productivity Consortium, Process
Definition and Modeling Guidebook, Software
(McG01) J. McGarry et al., Practical Software
Productivity Consortium, SPC-92041-CMC, 1992.
Measurement: Objective Information for Decision Makers,
ddison-Wesley, 2001. (Som97) I. Sommerville and P. Sawyer, Requirements
Engineering: A Good Practice Guide, John Wiley & Sons,
(Mcg93) C. McGowan and S. Bohner, Model Based
1997.
rocess Assessments, presented at International
Conference on Software Engineering, 1993. (Vot93) L. Votta, Does Every Inspection Need a
rra
Meeting? ACM Software Engineering Notes, vol. 18, iss.
(Nak91) T. Nakajo and H. Kume, A Case History
5, 1993, pp. 107-114.
Analysis of Software Error Cause-Effect Relationship,
IEEE Transactions on Software Engineering, vol. 17, iss. (Wei93) G.M. Weinberg, Quality Software
8, 1991. Management, First-Order Measurement (Ch. 8,
Measuring Cost and Value), vol. 2, 1993.
(Pau94) M. Paulk and M. Konrad, Measuring Process
Capability Versus Organizational Process Maturity, (Yu94) E. Yu and J. Mylopolous, Understanding Why
presented at 4th International Conference on Software in Software Process Modeling, Analysis, and Design,
Quality, 1994. presented at 16th International Conference on Software
Engineering, 1994
(Pfl99) S.L. Pfleeger, Understanding and Improving
Technology Transfer in Software Engineering, Journal of (Zah98) S. Zahran, Software Process Improvement:
Systems and Software, vol. 47, 1999, pp. 111-124.
Bo

Practical Guidelines for Business Success, Addison-


(Pfl01) S.L. Pfleeger, Software Engineering: Theory and Wesley, 1998.
Practice, second ed., Prentice Hall, 2001.
(Zel98) M. V. Zelkowitz and D. R. Wallace,
Experimental Models for Validating Technology,
Computer, vol. 31, iss. 5, 1998, pp. 23-31.
APNDICE B. LISTA DE ESTNDARES
(ISO9001-00) ISO 9001:2000, Quality Management
(IEEE1044-93) IEEE Std 1044-1993 (R2002), IEEE
Systems-Requirements, ISO, 1994.
Standard for the Classification of Software Anomalies,
IEEE, 1993. (ISO9126-01) ISO/IEC 9126-1:2001, Software
Engineering-Product Quality-Part 1: Quality Model, ISO
(IEEE1061-98) IEEE Std 1061-1998, IEEE Standard for a
and IEC, 2001.
Software Quality Metrics Methodology, IEEE, 1998.
(ISO14674-99) ISO/IEC 14674:1999, Information
(IEEE1074-97) IEEE Std 1074-1997, IEEE Standard for
Technology - Software Maintenance, ISO and IEC, 1999.
Developing Software Life Cycle Processes, IEEE, 1997.
(ISO15288-02) ISO/IEC 15288:2002, Systems
(IEEE1219-98) IEEE Std 1219-1998, IEEE Standard for
Engineering-System Life Cycle Process, ISO and IEC,
Software Maintenance, IEEE, 1998.
2002.
(IEEE1220-98) IEEE Std 1220-1998, IEEE Standard for
(ISO15504-98) ISO/IEC TR 15504:1998, Information
the Application and Management of the Systems
Technology - Software Process Assessment (parts 1-9),

r
Engineering Process, IEEE, 1998.
ISO and IEC, 1998.
(IEEE1517-99) IEEE Std 1517-1999, IEEE Standard for
(ISO15939-02) ISO/IEC 15939:2002, Software
Information Technology-Software Life Cycle Processes-
Engineering-Software Measurement Process, ISO and

do
Reuse Processes, IEEE, 1999.
IEC, 2002.
(IEEE1540-01) IEEE Std 1540-
(ISO19761-03) ISO/IEC 19761:2003, Software
2001//ISO/IEC16085:2003,IEEE Standard for Software
Engineering-Cosmic FPP-A Functional Size Measurement
Life Cycle Processes-Risk Management, IEEE, 2001.
Method, ISO and IEC, 2003.
(IEEE12207.0-96) IEEE/EIA 12207.0-1996//ISO/
(ISO20926-03) ISO/IEC 20926:2003, Software
IEC12207:1995, Industry Implementation of Int. Std
Engineering-IFPUG 4.1 Unadjusted Functional Size
ISO/IEC 12207:95, Standard for Information Technology-
Measurement Method-Counting Practices Manual, ISO
Software Life Cycle Processes, IEEE, 1996.
and IEC, 2003.
(IEEE12207.1-96) IEEE/EIA 12207.1-1996, Industry
(ISO20968-02) ISO/IEC 20968:2002, Software
Implementation of Int. Std ISO/IEC 12207:95, Standard
rra
Engineering-MK II Function Point Analysis Counting
forInformation Technology-Software Life Cycle Processes
Practices Manual, ISO and IEC, 2002.
-Life Cycle Data, IEEE, 1996.
(ISO90003-04) ISO/IEC 90003:2004, Software and
(IEEE12207.2-97) IEEE/EIA 12207.2-1997, Industry
Systems Engineering - Guidelines for the Application of
Implementation of Int. Std ISO/IEC 12207:95, Standard
ISO9001:2000 to Computer Software, ISO and IEC, 2004.
for Information Technology-Software Life Cycle Processes
-Implementation Considerations, IEEE, 1997. (VIM93) ISO VIM, International Vocabulary of Basic and
General Terms in Metrology, ISO, 1993.
(IEEE14143.1-00) IEEE Std 14143.1-2000//ISO/
IEC14143-1:1998, Information Technology-Software
Measurement-Functional Size Measurement-Part 1:
Definitions of Concepts, IEEE, 2000.
Bo
Bo
rra
do
r
CAPTULO 10
INSTRUMENTOS Y MTODOS DE LA INGENIERA DE SOFTWARE

ACRNIMOS
Herramientas y Mtodos de Ingeniera del software

CASE Computer Assisted


Software Engineering Herramientas de Ingeniera
del software
Mtodos de Ingeniera
del software

Requerimientos de las Mtodos heursticos


herramientas sw Mtodos estructurados
Mtodos Orientados a Datos
INTRODUCCIN Modelado de los requerimientos
Trazabilidad de los requerimientos Mtodos Orientados a Objetos
Mtodos formales

r
Herramientas de Diseo SW
Los instrumentos de desarrollo de software son los Especificacin del lenguaje y
Herramientas de Construccin notaciones
instrumentos asistidos por ordenador que son requeridos SW Refinamiento
para ayudar a los procesos de ciclo de vida de software. Redactores del Programa Propiedades de Verificacin/

do
Los instrumentos permiten a acciones repetidas, bien Compiladores y generadores de confirmacin
cdigo
definidas para ser automatizadas, reduciendo la carga Intrpretes Mtodos de prototipado
Depuradores Estilos de prototipado
cognoscitiva sobre el ingeniero de software que es Objetivo del prototipado
entonces libre de concentrarse en los aspectos creativos Herramientas de Pruebas de Tcnicas de evaluacin del
SW prototipado
del proceso. Los instrumentos a menudo son diseados Generadores de pruebas
para apoyar el software particular mtodos de la Marcos de ejecucin de prueba
ingeniera, reduciendo cualquier carga administrativa Evaluacin de prueba
Direccin de prueba
asociada con la aplicacin del mtodo a mano. Como los Anlisis de Funcionamiento
mtodos de la ingeniera de software, ellos son queridos Herramientas de
para hacer el software que trama ms sistemtico, varan Mantenimiento de SW
en el alcance de apoyar tareas individuales que abarcan Herramientas de Comprensin
rra
el ciclo de vida completo. Las Herramientas de Direccin
de Configuracin de SW
Herramientas de defecto, mejora,
Los mtodos de la ingeniera de software imponen la cuestin y rastreo del problema
Herramientas de direccin de
estructura a la actividad de la ingeniera de software con Versin
el objetivo de hacer la actividad sistemtica y en ltima Herramientas de Liberacin y
instancia ms probablemente de ser acertado. Los construccin
mtodos por lo general proporcionan la notacin y el Herramientas de Direccin en
vocabulario, procedimientos para realizar tareas la Ingeniera de Software
identificables, y directrices para comprobar tanto el Herramientas que planifican y
rastrean proyectos
proceso como el producto. Ellos varan extensamente en Herramientas de Manejo arriesgado
el alcance, de una fase nica del ciclo de vida al ciclo de Herramientas de Medida
Bo

vida completo. El nfasis en esta rea de Conocimiento Las Herramientas de Proceso


est sobre los mtodos de la ingeniera de software que de Ingeniera de Software
Herramientas de modelado del
abarcan mltiples fases de ciclo de vida, ya que mtodos Proceso
especficos de fase son cubiertos por otras reas de Herramientas de direccin de
Proceso
conocimiento. Entornos CASE Integrados
Entornos de Ingenieria del SW
centrada en proceso
Mientras hay manuales detallados sobre instrumentos
especficos y numerosos papeles de investigacin sobre Herramientas de Calidad de
Software
instrumentos innovadores, escrituras genricas tcnicas Herramientas de revisin de
sobre instrumentos de la ingeniera de software son auditoria
Herramientas de anlisis estticos
relativamente escasas. Una dificultad es la alta tarifa de
Cuestiones de Herramientas
cambio de instrumentos de software en general. Detalles
Compuestas
especficos cambian con regularidad, haciendo difcil de Herramientas de integracin de
proporcionar ejemplos concretos y actualizados. tcnicas
Meta-herramientas
Herramientas de evaluacin
Los Instrumentos de Ingeniera de Software y los
Mtodos del rea de Conocimiento cubren los procesos
Figura 1 Desglose de tpicos de Instrumentos de Ingeniera del
de ciclo de vida completos, y por lo tanto son
software y los Mtodos del rea de Conocimiento.
relacionados con cada rea de conocimiento en la Gua.
ESTUDIO DE LAS HERRAMIENTAS Y MTODOS general o redactores de documento, o pueden ser
DE LA INGENIERA DE SOFTWARE especializado para un idioma de llegada.
Compiladores y generadores de cdigo.
1. Las Herramientas de Ingeniera de Software Tradicionalmente, los compiladores han sido los
traductores no interactivos de cdigo original, pero
Los cinco primeros asuntos del subrea de los hubo una tendencia para integrar compiladores y
Instrumentos de Ingeniera de Software corresponden a redactores de programa para proporcionar ambientes
las cinco primeras reas del conocimiento de la Gua de programa integrados. Este asunto tambin cubre
(Exigencias de Software, el Diseo de Software, la preprocesadores, enlazadores/cargadores, y
Construccin de Software, Pruebas de Software, y el generadores de cdigo.
Mantenimiento de Software). Los cuatro siguientes Intrpretes. Estos instrumentos proporcionan la
asuntos corresponden a las reas de conocimiento ejecucin de software por la emulacin. Pueden
restantes (la Direccin de Configuracin de Software, la apoyar actividades de construccin de software
Direccin de la Ingeniera de Software, el Proceso de proporcionando un ambiente ms controlable y
Ingeniera de Software, y la Calidad de Software). observable para la ejecucin de programa.

r
Proporcionan un asunto adicional, dirigiendo reas como Depuradores. Estos instrumentos son considerados
las tcnicas de integracin de instrumento que son en una categora separada ya que ellos apoyan el
potencialmente aplicables a todas las clases de proceso de construccin de software, pero son

do
instrumentos diferentes de redactores de programa y
recopiladores.
1.1 Las herramientas de Exigencias de Software
[Dor97, Dor02]
1.4. Herramientas de Pruebas de Software
Los instrumentos para tratar con exigencias de software [Dor02, Pfl01, Rei96]
han sido clasificados en dos categoras: modelado e
instrumentos de capacidad de rastreo. Generadores de pruebas. Estos instrumentos ayudan
Exigencias de los Instrumentos de modelado. Estos en el desarrollo de casos de prueba.
instrumentos son usados para la obtencin, el Marcos de ejecucin de prueba. Estos instrumentos
rra
anlisis, la especificacin, y validez de las permiten la ejecucin de casos de prueba en un
exigencias de software. ambiente controlado donde el comportamiento del
Exigencias de los Instrumentos de capacidad de objeto bajo prueba es observado.
rastreo. [Dor02] Estos instrumentos se hacen cada Herramientas de evaluacin de prueba. Estos
vez ms importante debido a que la complejidad de instrumentos apoyan la evaluacin de los resultados
software crece. Ya que ellos son tambin relevantes de ejecucin de prueba, ayudando a determinar si
en otros procesos de ciclo de vida, son presentados realmente el comportamiento observado se
separadamente de los instrumentos de modelado. conforma al comportamiento esperado.
Herramientas de direccin de prueba. Estos
1.2. Las herramientas Diseo de Software instrumentos proporcionan el apoyo a todos los
[Dor02] aspectos del proceso de pruebas de software.
Herramientas de anlisis de Funcionamiento.
Bo

Este asunto cubre instrumentos para crear y comprobar [Rei96] Estos instrumentos son usado para medir y
diseos de software. Hay una variedad de tales analizar el funcionamiento de software, que es una
instrumentos, con la mayor parte de esta variedad siendo forma especializada de pruebas donde el objetivo es
una consecuencia de la diversidad de notaciones de de evaluar el comportamiento de funcionamiento
diseo de software y mtodos. A pesar de esta variedad, ms bien que el comportamiento funcional (la
ninguna divisin convincente para este asunto ha sido correccin).
encontrada.
1.5. Herramientas de Mantenimiento de Software
1.3. Las Herramientas de Construccin de Software [Dor02, Pfl01]
[Dor02, Rei96]
Este asunto abarca los instrumentos que son en particular
Este asunto cubre instrumentos de construccin de importantes en el mantenimiento de software donde el
software. Estos instrumentos son usados para producir y software existente est siendo modificado. Dos
traducir la representacin de programa (por ejemplo, el categoras son identificadas: instrumentos de
cdigo original) que suficientemente es detallado y comprensin e instrumentos de reingeniera.
explcito para permitir la ejecucin de mquina. Herramientas de Comprensin. [Re196] Estos
Redactores del Programa. Estos instrumentos son instrumentos ayudan en la comprensin humana de
usados para la creacin y la modificacin de programas. Los ejemplos incluyen instrumentos de
programas, y posiblemente los documentos visualizacin como rebanadores de programa y
asociados con ellos. Pueden ser el texto de uso animadores.
Herramientas de reingeniera. En el Mantenimiento 1.8. Las Herramientas de Proceso de Ingeniera de
de las reas de conocimiento de Software, Software
reingeniera es definido como el examen y la [Dor02, Som05]
alteracin del software sustancial para reconstituirlo
en una nueva forma, e incluye la puesta en prctica Las herramientas de proceso de ingeniera de Software
subsiguiente de la nueva forma. Los instrumentos de estn divididos en instrumentos que modelan,
reingeniera apoyan aquella actividad. instrumentos de direccin, y ambientes de desarrollo de
Al revs herramientas de la ingeniera ayudan al proceso software.
trabajando hacia atrs de un producto existente a crear Herramientas de modelado del Proceso. [Pfl01]
artefactos como la especificacin y descripciones de Estos instrumentos son usados para modelar e
diseo, que entonces pueden ser transformadas para investigar los procesos de la ingeniera de software.
generar un nuevo producto de uno anterior. Herramientas de direccin de Proceso. Estos
instrumentos proporcionan el apoyo a la direccin
1.6. Las herramientas de Direccin de de la ingeniera de software.
Entornos CASE Integrados. [Rei96, Som05]

r
(ECMA55-93, ECMA69-94, IEEE1209-92,
Configuracin de Software
IEEE1348-95, Mul96) el software Integrado
automatiza instrumentos de la ingeniera o

do
[Dor02, Rei96, Som05] ambientes que cubren mltiples fases del software el
ciclo de vida de la ingeniera pertenece a este
Las herramientas para la direccin de configuracin han subtema. Tales instrumentos realizan mltiples
sido divididos en tres categoras: rastreo, direccin de funciones y de ah potencialmente actan
versin, e instrumentos de liberacin. recprocamente con el proceso de ciclo de vida de
Defecto, mejora, cuestin, e instrumentos que software siendo ejecutado.
rastrean problema. Estos instrumentos son usados en Entornos de Ingeniera del SW centrada en proceso.
la conexin con las cuestiones que rastrean [Rei96] (Gar96) Estos ambientes explcitamente
problema asociadas con un producto de software incorporan la informacin sobre los procesos de
particular. ciclo de vida de software y dirigen y supervisan al
Herramientas de direccin de Versin. Estos
rra
usuario segn el proceso definido.
instrumentos estn implicados en la direccin de
mltiples versiones de un producto. 1.9. Las Herramientas de Calidad de Software
Herramientas de liberacin y construccin. Estos [Dor02]
instrumentos son usados para las tareas de liberacin
y construccin de software. La categora incluye los Las herramientas de Calidad son divididas en dos
instrumentos de instalacin que se han hecho categoras: inspeccin e instrumentos de anlisis.
extensamente usados para configurar la instalacin Herramientas de revisin de auditora. Estos
de productos de software. instrumentos son usados para apoyar revisiones y
Ms informacin adicional en Software Configuration revisiones de cuentas.
Management KA, topic 1.3 Planning for SCM. Herramientas de anlisis estticos. [Cla96, Pfl01,
Rei96] Estos instrumentos son usados para analizar
Bo

artefactos de software, como analizadores


1.7. Herramientas de Direccin en la Ingeniera de sintcticos y semnticos, as como datos, el flujo de
Software control, y analizadores de dependencia. Tales
[Dor02] instrumentos son queridos para comprobar artefactos
de software para la conformidad o para verificar
Herramientas de Direccin en la Ingeniera de Software propiedades deseadas.
esta subdividido en tres categoras: planificacin de
proyecto y rastreo, manejo arriesgado, y medida. 1.10. Cuestiones de Instrumento Compuestas
Herramientas que planifican y rastrean proyectos. [Dor02]
Estos instrumentos son usados en la medida de
esfuerzo de proyecto de software y cuentan la Este asunto cubre el tema aplicable a todas las clases de
valoracin, as como la planificacin de proyecto. instrumentos. Tres categoras han sido identificadas:
Herramientas de Manejo arriesgado. Estos tcnicas de integracin de instrumento, meta-
instrumentos son usados en la identificacin, la instrumentos, y evaluacin de instrumento.
estimacin, y riesgos de supervisin. Herramientas de integracin de tcnicas [Pfl01,
Herramientas de Medida. Los instrumentos de Rei96, Som01] (Bro94) la integracin de
medida asisten en la realizacin de las actividades Instrumento es importante para hacer a instrumentos
relacionadas con el programa de medida de individuales cooperar. Esta categora potencialmente
software. se solapa con la categora de ambientes de CASO
integrada donde las tcnicas de integracin son
aplicadas; sin embargo, es suficientemente distinto un programa manipula ms que la funcin que esto
para merecer una categora de su propiedad. Las realiza.
clases tpicas de integracin de instrumento son la Mtodos Orientados a objetos. [Dor02, Pfl01, Pre04,
plataforma, la presentacin, el proceso, datos, y el Som05] el sistema es visto como una coleccin de
control. objetos ms que de funciones.
Meta-herramientas. Los Meta-instrumentos generan
otros instrumentos; recopilador de recopiladores son
el ejemplo clsico. 2.2. Mtodos Formales
Herramientas de evaluacin. [Pfl01] (IEEE1209-92, [Dor02, Pre04, Som05]
IEEE1348-95, Mos92, Val97) A causa de la
evolucin continua de los instrumentos de la Esta subdivisin trata con el software matemticamente
ingeniera de software, la evaluacin de instrumento basado mtodos de la ingeniera, y es subdividida segn
son un tema esencial. varios aspectos de mtodos formales.
Especificacin del lenguaje y notaciones. [Cla96,
2. Los Mtodos de la Ingeniera de Software Pfl01, Pre01] Este tema concierne la notacin de

r
especificacin o la lengua usada. Las lenguas de
Los Mtodos de la Ingeniera de Software estn dividido especificacin pueden ser clasificadas como
en tres temas: mtodos heursticos que tratan con accesos orientado por modelo, orientado por caracterstica, u

do
informales, mtodos formales que tratan con accesos orientado por comportamiento.
matemticamente basados, y mtodos de prototipado que Refinamiento. [Pre04] Este tema trata como el
tratan con software que trama accesos basados en varias mtodo refina (o transforma) la especificacin en
formas de prototipado. Estos tres temas no son una forma que es ms cercana a la forma deseada
inconexos; ms bien representan preocupaciones final de un programa ejecutable.
distintas. Por ejemplo, un mtodo orientado por objeto Propiedades de Verificacin/confirmacin. [Cla96,
puede incorporar tcnicas formales y confiar en Pfl01, Som05] Este tema cubre las propiedades de
prototipado para la verificacin y la validacin. Como verificacin que son especficas al acercamiento
los instrumentos de la Ingeniera de Software, las formal, incluyendo tanto confirmacin de teorema
metodologas continuamente se desarrollan. Por como la comprobacin del modelo.
consiguiente, la descripcin del rea de conocimiento
rra
evita en la medida de lo posible llamar metodologas 2.3. Mtodos de prototipado
particulares. [Pre04, Som05, Was96]

2.1. Mtodos heursticos Esta subdivisin cubre mtodos que implican el


[Was96] prototipado de software y es subdividida en estilos de
prototipado, objetivos, y tcnicas de evaluacin.
Este tema contienen cuatro categoras: estructurado, Estilos de prototipado. [Dor02, Pfl01, Pre04]
orientado a datos, orientado a objetos, y especfico de (Pom96) el tema de estilos de prototipado identifica
dominio. La categora especfica de dominio incluye varios accesos: especificacin desechable, evolutiva,
mtodos especializados para desarrollar los sistemas que y ejecutable.
implican en tiempo real, de seguridad, o aspectos de Objetivo del prototipado. [Dor97] (Pom96) los
Bo

seguridad. Ejemplos de los objetivos de un mtodo prototipado


Mtodos Estructurados. [Dor02, Pfl01, Pre04, puede ser exigencias, el diseo arquitectnico, o el
Som05] el sistema es construido de un punto de interfaz de usuario.
vista funcional, que comienza con una vista de alto Tcnicas de evaluacin del prototipado. Este tema
nivel y cada vez ms la refinacin de esto en un cubre las razones por las cuales los resultados de un
diseo ms detallado. ejercicio de prototipo son usados.
Mtodos Orientados a datos. [Dor02, Pre04] Aqu,
los puntos de partida son las estructuras de datos que
MATRIZ DE TEMAS VS. REFERENCIAS

[Dor02] [Pfl01]
[Cla96] [Pre04] [Rei96] [Som05] [Was96]
{Dor97} {PFL98}
1.Las Herramientas de Ingeniera de Software
1.1Las Herramientas de Exigencias de Software {c4s1} ,v2c8s4

r
Exigencias de los Herramientas de modelado
Exigencias de los Herramientas de capacidad de rastreo. v1c4s2

do
1.2 Los Herramientas de Diseo de Software v2c8s4
1.3. Los Herramientas de Construccin de Software v2c8s4 c112s2
Redactores del Programa
Compiladores y generadores de cdigo
Intrpretes.
Depuradores
1.4. Herramientas de Pruebas de Software v2c8s4 C8s7,c9s7 c112s3
Generadores de pruebas
Marcos de ejecucin de prueba

rra
Herramientas de evaluacin de prueba
Herramientas de direccin de prueba.
Herramientas de anlisis de Funcionamiento c112s5
1.5. Herramientas de Mantenimiento de Software v2c8s4 c11s5
Herramientas de Comprensin c112s5
Herramientas de reingeniera
1.6.Las Herramientas de Direccin de Configuracin de Software v2c8s4 c11s5 c112s3 c29
Herramientas de defecto, mejora, cuestin y rastreo del problema
Herramientas de direccin de Versin
Bo
Herramientas de Liberacin y construccin
[Cla96] [Dor02]{Dor97} [Pfl01]{PFL98} [Pre04] [Rei96] [Som05] [Was96]
1.7. Herramientas de Direccin en la Ingeniera de Software v2c8s4
Herramientas que planifican y rastrean proyectos
Herramientas de Manejo arriesgado

r
Herramientas de Medida
1.8. Las Herramientas de Proceso de Ingeniera de Software v2c8s4

do
Herramientas de modelado del Proceso c2s3, 2s4
Herramientas de direccin de Proceso
Entornos CASE Integrados c112s3, c112s4 c3
Entornos de Ingeniera del SW centrada en proceso c112s5
1.9. Las Herramientas de Calidad de Software v2c8s4
Herramientas de revisin de auditoria
Herramientas de anlisis estticos * C8s7 c112s5
1.10. Cuestiones de Herramientas Compuestas v2c8s4
Herramientas de integracin de tcnicas c1s8 c112s4 *

rra
Meta-herramientas
Herramientas de evaluacin C9s10
2. Los Mtodos de la Ingeniera de Software
2.1. Mtodos heursticos *
Mtodos Estructurados v1c5s1, v1c6s3 c4s5 c7-c9 c15
Mtodos Orientados a datos v1c5s1, v1c6s3 c7-c9
Mtodos Orientados a objetos v1c6s2, v1c6s3 c4s4, c6, c8s5 c7-c9 c12
2.2. Mtodos Formales v1c6s5 c28 c9
Especificacin del lenguaje y notaciones * c4s5
Bo
Refinamiento
Propiedades de Verificacin/ confirmacin * c5s7, c8s3
2.3. Mtodos de prototipado c8 *
Estilos de prototipado v1c4s4 c4s6, c5s6
Objetivo del prototipado v1c4s4
Tcnicas de evaluacin del prototipado
REFERENCIAS RECOMENDADAS PARA HERRAMIENTAS [Pfl01] S.L. Pfleeger, Software Engineering: Theory and
Y MTODOS DE INGENIERA DEL SOFTWARE Practice, second ed., Prentice Hall, 2001.
[Pre04] R.S. Pressman, Software Engineering: A
[Cla96] E.M. Clarke et al., Formal Methods: State of the Practitioner's Approach, sixth ed., McGraw-Hill, 2004.
Art and Future Directions, ACM Computer Surveys, vol. [Rei96] S.P. Reiss, Software Tools and Environments in The
28, iss. 4, 1996, pp. 626-643. Computer Science and Engineering Handbook, CRC Press,
[Dor97] M. Christensen, M. Dorfman and R.H. Thayer, 1996.
eds., Software Engineering, IEEE Computer Society Press, [Som05] I. Sommerville, Software Engineering, seventh
1997. ed., Addison-Wesley, 2005.
[Dor02] M. Christensen, M. Dorfman and R.H. Thayer, [Was96] A.I. Wasserman, Toward a Discipline of
eds., Software Engineering, Vol. 1 & Vol. 2, IEEE Software Engineering, IEEE Software, vol. 13, iss. 6,
Computer Society Press, 2002. November 1996, pp. 23-31.

r
do
rra
Bo
APNDICE A. LISTA DE LECTURAS (Moo98) J.W. Moore, Software Engineering Standards, A
COMPLEMENTARIAS User's Roadmap, IEEE Computer Society Press, 1998.
(Ber93) E.V. Berard, Essays on Object-Oriented Software (Mos92) V. Mosley, How to Assess Tools Efficiently and
Engineering, Prentice Hall, 1993. Quantitatively, IEEE Software, vol. 9, iss. 3, May 1992,
(Bis92) W. Bischofberger and G. Pomberger, Prototyping- pp. 29-32.
Oriented Software Development: Concepts and Tools, (Ml96) H.A. Muller, R.J. Norman, and J. Slonim, eds.,
Springer-Verlag, 1992. Computer Aided Software Engineering, special issue of
(Bro94) A.W. Brown et al., Principles of CASE Tool Automated Software Engineering, vol. 3, iss. 3/4, Kluwer,
Integration, Oxford University Press, 1994. 1996.
(Car95) D.J. Carney and A.W. Brown, On the Necessary (Ml00) H. Mller et al., Reverse Engineering: A
Conditions for the Composition of Integrated Software Roadmap, The Future of Software Engineering, A.
Engineering Environments, presented at Advances in Finkelstein, ed., ACM, 2000, pp. 49-60.
Computers, 1995. (Pom96) G. Pomberger and G. Blaschek, Object-
(Col94) D. Coleman et al., Object-Oriented Development: Orientation and Prototyping in Software Engineering:
The Fusion Method, Prentice Hall, 1994. Prentice Hall, 1996.
(Cra95) D. Craigen, S. Gerhart, and T. Ralston, Formal (Pos96) R.M. Poston, Automating Specification-based

r
Methods Reality Check: Industrial Usage, IEEE Software Testing, IEEE Press, 1996.
Transactions on Software Engineering, vol. 21, iss. 2, (Ric92) C. Rich and R.C. Waters, Knowledge Intensive
February 1995, pp. 90-98. Software Engineering Tools, IEEE Transactions on

do
(Fin00) A. Finkelstein, ed., The Future of Software Knowledge and Data Engineering, vol. 4, iss. 5, October
Engineering, ACM, 2000. 1992, pp. 424-430.
(Gar96) P.K. Garg and M. Jazayeri, Process-Centered (Son92) X. Song and L.J. Osterweil, Towards Objective,
Software Engineering Environments, IEEE Computer Systematic Design-Method Comparisons, IEEE Software,
Society Press, 1996. vol. 9, iss. 3, May 1992, pp. 43-53.
(Har00) W. Harrison, H. Ossher, and P. Tarr, Software (Tuc96) A.B. Tucker, The Computer Science and
Engineering Tools and Environments: A Roadmap, 2000. Engineering Handbook, CRC Press, 1996.
(Jar98) S. Jarzabek and R. Huang, The Case for User- (Val97) L.A. Valaer and R.C.B. II, Choosing a User
Centered CASE Tools, Communications of the ACM, vol. Interface Development Tool, IEEE Software, vol. 14, iss.
41, iss. 8, August 1998, pp. 93-99. 4, 1997, pp. 29-39.
(Kit95) B. Kitchenham, L. Pickard, and S.L. Pfleeger, (Vin90) W.G. Vincenti, What Engineers Know and How
rra
Case Studies for Method and Tool Evaluation, IEEE They Know It Analytical Studies from Aeronautical
Software, vol. 12, iss. 4, July 1995, pp. 52-62. History, John Hopkins University Press, 1990.
(Lam00) A. v. Lamsweerde, Formal Specification: A (Wie98) R. Wieringa, A Survey of Structured and Object-
Roadmap, The Future of Software Engineering, A. Oriented Software Specification Methods and Techniques,
Finkelstein, ed., ACM, 2000, pp. 149-159. ACM Computing Surveys, vol. 30, iss. 4, 1998, pp. 459-527.
(Mey97) B. Meyer, Object-Oriented Software Construction,
second ed., Prentice Hall, 1997.
Bo
APNDICE B. LISTA DE ESTNDARES (IEEE1209-92) IEEE Std 1209-1992,
Recommended Practice for the Evaluation and
(ECMA55-93) ECMA, TR/55 Reference Model for Selection of CASE Tools, (ISO/IEC 14102, 1995),
Frameworks of Software Engineering IEEE Press, 1992.
Environments, third ed., 1993. (IEEE1348-95) IEEE Std 1348-1995,
(ECMA69-94) ECMA, TR/69 Reference Model for Recommended Practice for the Adoption of CASE
Project Support Environments, 1994. Tools, (ISO/IEC 14471), IEEE Press, 1995.
(IEEE1175.1-02) IEEE Std 1175.1-2002, IEEE (IEEE12207.0-96) IEEE/EIA 12207.0-1996//ISO/
Guide for CASE Tool Interconnections IEC12207:1995, Industry Implementation of Int.
Classification and Description, IEEE Press, 2002. Std. ISO/IEC 12207:95, Standard for Information
Technology Software Life Cycle Processes,
IEEE Press, 1996.

r
do
rra
Bo
Bo
rra
do
r
CAPTULO 11
CALIDAD DEL SOFTWARE
Un ingeniero de software debera entender los
ACRNIMOS significados subyacentes en los conceptos y
caractersticas de calidad y su relevancia en el desarrollo
CMMI Capability Maturity Model Integrated
o mantenimiento de software.
COTS Commercial Off-the-Shelf Software
PDCA Plan, Do, Check, Act El concepto relevante es que los requerimientos del
SQA Software Quality Assurance software definen las caractersticas de calidad requeridas
SQM Software Quality Management de ese software e influyen en los mtodos de medicin y
TQM Total Quality Management criterios de aceptacin para evaluar estas caractersticas.
V&V Verificacin y Validacin
1.1. Ingeniera del Software Cultura y tica.

r
INTRODUCCIN
Los ingenieros de software esperan compartir un
Que es la calidad de software, y por qu es tan compromiso sobre calidad de software como una parte
de su cultura. Una cultura sana sobre ingeniera del

do
importante como para estar omnipresente en la Gua
SWEBOK? Durante aos, los autores y organizaciones software se describe en [Wie96].
han definido el trmino "calidad" de manera diferente.
Para A Phil Crosby (Cro79), fue " la conformidad a las La tica puede jugar un papel significativo en la calidad
exigencias de usuario. " Watts Humphrey (Hum89) se de software, la cultura, y las actitudes de ingenieros de
refiere a calidad como " el alcanzar los niveles software. La IEEE Computer society y el ACM
excelentes de salud para el empleo" mientras IBM acu [IEEE99] han desarrollado un cdigo de tica y prctica
la frase " la calidad conducida por el mercado, " frase profesional basada en ocho principios con el objetivo de
basada en el objetivo de alcanzar la satisfaccin de ayudar a los ingenieros de software a reforzar actitudes
cliente total. relacionadas con la calidad y con la independencia de su
trabajo.
rra
Los criterios Bladridge para la calidad organizacional 1.2. Valor y coste de la calidad.
utilizan una frase similar calidad conducida por el El concepto de calidad no es tan simple como parece,
cliente, e incluye la satisfaccin del cliente como una para un ingeniero de productos hay muchas calidades
consideracin mayor. Ms recientemente, la calidad se deseadas relevantes para una perspectiva determinada de
ha definido en (ISO9001-00) como el grado en que un un producto, para que esto pueda ser tratado y
conjunto de caractersticas inherentes cumple determinado en el tiempo las exigencias de producto son
requisitos. puestas por escrito. Las caractersticas de calidad pueden
requerirse o no, o se pueden requerir en un mayor o
Este captulo estudia los aspectos relativos a la calidad menor grado, y pueden hacerse compensaciones entre
de software los cuales transcienden a los procesos del ellas. [Pfl01] El coste de calidad puede segmentarse en el
ciclo de vida. La calidad de software es un aspecto coste de prevencin, el coste de apreciacin, el coste de
ubicuo en la ingeniera de software, y por lo tanto
Bo

fracaso interno, y el coste de fracaso externo. [Hou99]


tambin es tratado en mucho de los KAS. En el sumario,
la Gua SWEBOK describe un conjunto de modos de La motivacin latente tras un proyecto de software es el
alcanzar la calidad del software. En particular, este KA deseo de crear un software que tiene valor, y este valor
tratar las tcnicas estticas, es decir, aquellas que no puede o no puede ser cuantificado como un coste. El
requieren la ejecucin del software para su evaluacin, cliente tendr en mente algn coste mximo, a cambio
mientras que las tcnicas dinmicas son cubiertas en el del cual espera que se cumpla el objetivo bsico del
KA referido a Pruebas del Software. software. El cliente tambin puede tener alguna
expectativa en cuanto a la calidad del software. En
DESGLOSE DE LOS TEMAS EN CALIDAD DEL ocasiones los clientes pueden no haber estudiado
SOFTWARE detenidamente las cuestiones de calidad o sus gastos
relacionados. La calidad es meramente decorativa, o es
1. Fundamentos de Calidad de Software consustancial al software? Si la respuesta se sita en un
punto intermedio, como es casi siempre el caso, es
Un acuerdo sobre exigencias de calidad, as como cuestin de hacer del cliente parte del proceso de
trasladar a la ingeniera del software qu constituye decisin y concienciarle totalmente tanto de los costes
calidad, requiere que muchos de los aspectos del como de los beneficios. Idealmente, la mayor parte de
concepto calidad sean formalmente definidos y tratados. estas decisiones sern adoptadas en el proceso de
requerimientos de software (vd. El KA Requerimientos
del software), sin embargo estas cuestiones pueden
surgir en todas las etapas del ciclo de vida del software. calidad y sus correspondientes costes. Una discusin
No hay ninguna regla definida en cuanto a como deben acerca del coste y el valor de los requerimientos de
ser adoptadas estas decisiones, pero el ingeniero de calidad puede encontrarse en [Jon96:c5; Wei96:c11].
software debera ser capaz de presentar alternativas de

Calidad del Software

Fundamentos de Consideraciones Procesos de Gestin

r
Calidad de Software Prcticas de Calidad del
Software

do
Ingeniera del Aseguramiento de Requerimientos de
Software Cultura y la Calidad del calidad del software
tica. Software
Caracterizacin de
Valor y coste de la Verifications & defectos
calidad Validacin
Tcnicas de Gestin
Modelos y Revisiones y de Calidad del
Caractersticas de Auditorias Software
Calidad
rra
Tcnicas Dinmicas
Mejora de Calidad.

Figura 1 Desglose de los temas de Calidad del Software.

1.3 .Modelos y Caractersticas de Calidad. Los modelos y los criterios que evalan las capacidades
[ Dac01; Kia95; Lap91; Lew92; Mus99; NIST; organizacionales en software son esencialmente la
Pre01; Rak97; Sei02; Wal96]. organizacin de proyecto y consideraciones de gestin,
Bo

y, como tales, son tratados en los KAs relativos a


La terminologa para las caractersticas de calidad del Gestin en Ingeniera del Software y el Proceso en
software difiere de una taxonoma (o modelo de calidad Ingeniera de Software.
de software) a otra, cada modelo quizs tenga un nmero Desde luego, no es posible distinguir completamente la
diferente de niveles jerrquicos y un nmero total calidad del proceso de la calidad del producto.
diferente de caractersticas. Varios autores han
enunciado distintos modelos de caractersticas de calidad La calidad de proceso, tratada en el KA, de esta Gua, el
de software o atributos que pueden ser tiles para la Proceso en Ingeniera de Software, afecta a las
negociacin, planificacin, y tasacin de la calidad de caractersticas de calidad de los productos software, que
productos software. [Boe78; McC77] ISO/IEC ha a su vez repercuten en la calidad-en-el-uso tal y como es
definido tres modelos relacionados de calidad de percibido por el cliente.
productos software (la calidad interna, la calidad externa, Dos importantes estndares de calidad son TickIT
y la calidad en el empleo) (ISO9126-01) y un conjunto [Llo03] y uno con impacto sobre la calidad de software,
de partes relacionadas (ISO14598-98). el estndar ISO9001-00, con sus directrices para su
1.3.1. La calidad del proceso en la ingeniera del aplicacin al software [ISO90003-04].
software.
Otro estndar industrial en calidad del software es el
La gestin de la calidad de software y la calidad de CMMI [SEI02], tambin tratado en el KA Proceso en la
proceso en la ingeniera de software guarda relacin Ingeniera de Software. CMMI pretende proporcionar
directa con la calidad del producto software. directrices para mejorar procesos.
Especficamente las reas de procesos relacionadas con requiere control de direccin, coordinacin, y
la gestin de calidad son: a) Aseguramiento de la calidad retroalimentacin de muchos procesos simultneos: (1)
en el proceso y el producto, (b) la verificacin de los procesos de ciclo de vida de software, (2) El proceso
proceso, y c) la validacin de proceso. CMMI clasifica de deteccin de error/defecto, retirada de los mismo y
revisiones y auditorias como los mtodos de prevencin, (y 3) el proceso de mejora de calidad.
verificacin, y no como procesos especficos como (Kin92) La teora y conceptos presentes detrs de mejora
(IEEE12207.0-96). de calidad, tales como la construccin en calidad,
mediante la prevencin y deteccin temprana de errores,
Hubo inicialmente algn debate sobre si ISO9001 O mejora continua y enfoque en el cliente, son adecuados
CMMI deberan ser usados por ingenieros de software para la ingeniera de software. Estos conceptos estn
para asegurar la calidad. Este debate ha sido basados en el trabajo de expertos en calidad los cuales ha
profusamente publicado, y, como resultado, se ha afirmado que la calidad de un producto est directamente
concluido que los dos resultan complementarios y que conectada con la calidad del proceso empleado para
tener la certificacin ISO9001 puede ayudar crearlo.
enormemente para alcanzar los niveles de madurez ms
Aproximaciones tales como Total Quality Management

r
altos del CMMI. [Dac01].
(TQM) process of Plan, Do, Check, and Act (PDCA) son
1.3.2. Calidad de producto software. Instrumentos mediante los cuales conocer los objetivos
El ingeniero de software, ante todo, necesita determinar de calidad. El apoyo a la gestin sustenta el proceso y la

do
el Objetivo verdadero del software. En cuanto a esto, es evaluacin del producto as como las conclusiones
de capital importancia tener presente los requerimientos resultantes. Entonces se desarrolla un programa de
del cliente y aquellos que estos incluyen como mejora identificando acciones detalladas y proyectos de
requerimientos de calidad, no nicamente los mejora para ser gestionados en un plazo de tiempo
requerimientos funcionales. As, el ingeniero de software factible. El apoyo a la gestin implica que cada proyecto
tiene como responsabilidad obtener los requerimientos de mejora tiene suficientes recursos para alcanzar el
de calidad, que pueden no estar explcitos en un objetivo definido. El apoyo a la gestin ha ser solicitado
principio, tratar su importancia as como el nivel con frecuencia mediante la implementacin proactiva de
dificultad para alcanzarlos. Todos los procesos asociados actividades de comunicacin. La participacin de los
a la Calidad de software (como por ejemplo, equipos de trabajo, as como el apoyo a la gerencia
rra
construccin, pruebas, mejora de la calidad) sern media y los recursos asignados en el nivel de proyecto,
diseados con estas exigencias en mente, y ello conlleva son tratados en el KA Proceso de Ingeniera de Software.
gastos adicionales.
2. Procesos de Gestin de Calidad del Software
El estndar (ISO9126-01) define, para dos de sus tres La gestin de calidad de software (SQM) resulta de
modelos de calidad, las caractersticas de calidad aplicacin a todas las perspectivas de procesos de
mencionadas, las Sub-caractersticas, y las medidas que software, productos, y recursos. Esto define procesos,
son tiles para Evaluacin de calidad de producto de propietarios de proceso, y requerimientos para aquellos
software. (Sur03) procesos, medidas del Proceso y sus correspondientes
salidas, y canales de retroalimentacin. (Art93) Los
El significado del trmino "producto" es ampliado para procesos de gestin de calidad del software consisten en
incluir cualquier artefacto que es la salida de cualquier numerosas actividades. Algunos de ellos pueden
Bo

proceso empleado para construir el producto de software encontrar defectos directamente, mientras otros indican
final. Como ejemplos de un producto cabe incluir, donde pueden resultar valiosas ms revisiones. Estos
aunque no con carcter limitativo, una completa ltimos tambin son conocidos como actividades de
especificacin del sistema, una especificacin de "direct-defect-finding". Muchas actividades a menudo
requerimientos de software para un componente de sirven para ambos propsitos.
software de un sistema, un mdulo de diseo, cdigo,
documentacin de prueba, o los informes producidos La planificacin para la calidad de software implica:
como consecuencia de tareas de anlisis de calidad.
Mientras la mayor parte del tratamiento de la calidad es (1) Definicin del producto requerido en trminos de sus
descrito en trminos del software final y funcionamiento caractersticas calidad (descrito ms detalladamente en,
del sistema, una ingeniera prctica responsable requiere por ejemplo, El KA Gestin en Ingeniera del Software).
que los productos intermedios relevantes para la calidad (2) Planificacin de los procesos para alcanzar el
sean evaluados a lo largo de todo el proceso de producto requerido (Descrito, por ejemplo, en los Kas,
ingeniera de software. Diseo de Software y Construccin de Software).

1.4. Mejora de Calidad. Estos aspectos difieren de, por ejemplo, los procesos
[ NIST03; Pre04; Wei96] mismos de planificacin SQM, que evalan las
caractersticas de calidad planificadas versus la
La calidad de los productos software puede ser mejorada implementacin actual de esa planificacin. Los
mediante un proceso iterativo de mejora continua que procesos de gestin de calidad de software deben
dirigirse a como los buenos productos software van 2.1. Aseguramiento de la Calidad del Software
a satisfacer o satisfacen al cliente y las exigencias del [Ack02; Ebe94; Fre98; Gra92; Hor03; Pfl01; Pre04;
personal implicado, a como proporcionan valor a los Rak97; Sch99; Som05; Voa99; Wal89; Wal96]
clientes y dems personal implicado, y proveen la Los procesos SQA proporcionan la garanta de que los
calidad de software precisa para conocer los productos software y los procesos en el ciclo de vida de
requerimientos del software. proyecto son conformes a los requerimientos
El SQM puede ser utilizado para evaluar productos especificados por medio de la planificacin, emitiendo, y
intermedios as como el producto final. realizando un conjunto de actividades para generar la
Algunos de los procesos especficos SQM estn confianza adecuada en que se est construyendo calidad
definidos en el estndar (IEEE12207.0-96): dentro del software.
Ello significa asegurar que el problema est clara y
Procesos de aseguramiento de calidad
suficientemente identificado y que los requerimientos de
Procesos de verificacin
la solucin estn correctamente definidos y expresados.
Procesos de validacin El SQA procura mantener la calidad a lo largo de todo el
Procesos de revisin

r
desarrollo y mantenimiento del producto mediante la
Procesos de auditora ejecucin de una variedad de actividades en cada etapa
Estos procesos incentivan la calidad y tambin permiten que pueden permitir identificacin temprana de

do
encontrar posibles problemas. Sin embargo presentan problemas, un rasgo casi inevitable de cualquier
diferencias en cuanto a su nfasis. actividad compleja. El papel del SQA en lo que
concierne al proceso es asegurar que procesos
Los procesos SQM ayudan a asegurar una calidad de
planificados son apropiados y posteriormente
software ptima en un proyecto dado. Adems proveen,
implementados de acuerdo con la planificacin, y se
como un subproducto, informacin general sobre
proveen procesos de medicin relevantes para una
gestin, incluyendo directrices de calidad para todo el
adecuada organizacin.
proceso de ingeniera del software. Las Kas Proceso de
la Ingeniera del Software y Gestin en Ingeniera del El plan SQA define el medio que ser usado para
Software tratan sobre la calidad de los programas para la asegurar que el software desarrollado para un producto
organizacin que desarrolla el software. El SQM puede especfico satisface las exigencias del usuario y es de la
mxima calidad posible dentro de las restricciones del
rra
proporcionar retroalimentacin relevante para estas
reas. proyecto. Con el objetivo de llevar esto acabo, primero
debe asegurarse que el objetivo de calidad es claramente
Los procesos SQM consisten en tareas y tcnicas para
definido y entendido. En ello deben considerarse los
indicar como los proyectos de software (por ejemplo, la
planes de gestin, desarrollo, y mantenimiento para el
gestin, el desarrollo, la gestin de configuracin) estn
software. Ver el estndar (IEEE730-98) para detalles.
siendo puestos en prctica y la mejor manera para que
los productos intermedios y los finales encuentren sus Las actividades y tareas especficas de calidad se
requerimientos especificados. Los resultados de estas elaboran, con sus gastos y exigencias de recursos, sus
tareas son recopilados en informes para la direccin objetivos totales de gestin, y su programa en relacin
antes de que sea tomada la accin correctiva. La gestin con aquellos objetivos de gestin en la ingeniera, el
de un proceso SQM se desarrolla con la certeza de que desarrollo, o planes de mantenimiento. El plan SQA
los resultados de estos informes son exactos. debera ser compatible con el plan de gestin de
Bo

configuracin de software (refirase al KA Gestin de


Como se describe en este KA, los procesos SQM estn
Configuracin de Software). El plan SQA identifica
estrechamente relacionados; pueden solaparse y hasta, en
documentos, normas, prcticas, y convenciones que
ocasiones, estar combinados. En su mayor parte parecen
guan el proyecto y de qu manera sern comprobados y
de naturaleza reactiva ya que toman los procesos como
supervisados para asegurar adecuacin y conformidad.
practicados y los productos como producidos; sin
El plan SQA tambin identifica medidas, tcnicas
embargo tienen un papel principal en la fase de
estadsticas, procedimientos para el reporte de problemas
planificacin, con carcter proactivo en trminos de los
as como la correspondiente accin correctiva, recursos
procesos y los procedimientos precisos para alcanzar las
tales como herramientas, tcnicas, y metodologas,
caractersticas y grados de calidad requerida por los
seguridad para el medio fsico, formacin, adems de
sujetos implicados en el software.
reportes y documentacin SQA. Por otro lado, el plan
La gestin del riesgo tambin puede jugar un papel SQA considera las actividades de garanta de calidad de
importante en la entrega de software de calidad. La software como cualquier otro tipo de actividad descrita
incorporacin de un anlisis de riesgo disciplinado y en los proyectos de software, tales como la consecucin
tcnicas de gestin en los procesos de ciclo de vida de de proveedor de software para el proyecto o el software
software puede incrementar el potencial para producir un de instalacin comercial disponible (COTS), as como el
producto de calidad (Cha89). Refirase al KA Gestin en servicio tras la entrega del software. Tambin puede
la Ingeniera del Software para el material relacionado incluir criterios de aceptacin as como reportes y
sobre gestin de riesgos. actividades de gestin crticas para la calidad de
software.
2.2. Verificaciones y Validacin son ampliamente definidos en (IEEE12207.0-96) y ms
[Fre98; Hor03; Pfl01; Pre04; Som05; Wal89; Wal96] detalladamente en (IEEE1028-97). Cinco tipos de
revisiones o auditorias se presentan en el estndar
Con el propsito de ser breve, Verificacin y Validacin IEEE1028-97:
(V&V) son tratadas como un nico asunto en esta Gua
ms que como dos asuntos separados tal y como se hace Revisiones de gestin
en el estndar (IEEE12207.0-96). La V&V del software Revisiones tcnicas
es un acercamiento disciplinado a la evaluacin de Inspecciones
productos de software a lo largo de todo el ciclo de vida
Walk-throughs
de producto. Un esfuerzo en V&V es esforzarse en
Auditorias
asegurar que la calidad es construida dentro del software
y que el software satisface exigencias de usuario " 2.3.1. Revisiones de gestin
(IEEE1059-93). El objetivo de una revisin de gestin es supervisar el
La V&V trata directamente la calidad de producto progreso, determinando el estado de planes y programas,
software y emplea tcnicas de prueba que pueden requerimientos confirmados y su sistema de localizacin,

r
localizar defectos de tal manera que estos puedan ser o evaluar la efectividad de los enfoques de gestin
tratados. Tambin evala los productos intermedios, empleados para lograr la idoneidad del objetivo.
como, y, en esta capacidad, los pasos intermedios de los [IEEE1028-97]. Ello apoya decisiones sobre cambios y

do
procesos de ciclo de vida de software. las acciones correctivas precisas durante un proyecto de
software. Las revisiones de gestin determinan la
El proceso V&V determina si productos de una actividad
idoneidad de los proyectos, programas, y requerimientos
dada de desarrollo o mantenimiento se adecuan o no al
y supervisan su progreso o inconsistencias. Estas
correspondiente requisito de esa actividad, y si el
revisiones pueden ser realizadas sobre productos tales
producto final de software cumple o no cumple con su
como informes de auditora, informes de progreso,
propsito fijado y converge o no con los requisitos del
informes V&V, y proyectos de muchos tipos, incluyendo
usuario. La Verificacin es un intento para asegurar que
la gestin de riesgo, gestin del proyecto, gestin de
el producto se construya correctamente, en el sentido que
configuracin del software, seguridad del software, y la
los productos resultantes de una actividad converjan con
evaluacin de riesgo, entre otros. Refirase para el
las especificaciones fijadas para los mismos en
material relacionado a los Kas Gestin en Ingeniera del
rra
actividades previas. La validacin es un intento por
Software y Gestin de Configuracin de Software.
asegurar que se construye el producto correcto, es decir,
que el producto satisface su propsito especfico fijado. 2.3.2. Revisiones tcnicas
Tanto el proceso de comprobacin como el proceso de [Fre98; Hor03; Lew92; Pfl01; Pre04; Som05;
validacin empiezan temprano en la fase de desarrollo o Voa99; Wal89; Wal96]
mantenimiento. Proporcionan un examen de El propsito de una revisin tcnica es evaluar el
caractersticas claves del producto en relacin con el producto software para determinar si es idneo para su
producto inmediato predecesor y a las especificaciones correspondiente uso. El objetivo es identificar
con las que debe converger. discrepancias con especificaciones aprobadas y
El propsito de la planificacin V&V es asegurar que estndares. El resultado debera proporcionar gestin con
cada recurso, papel y responsabilidad est claramente evidencias (o no) de que el producto converge con sus
Bo

asignada. Los documentos del proyecto V&V resultantes especificaciones y se adhiere a los estndares, y que los
describen varios recursos y sus papeles y actividades, as cambios estn controlados. (IEEE1028- 97).
como tcnicas y herramientas para ser usados. La En una revisin tcnica deben estar establecidos los roles
comprensin de los objetivos diferentes de cada especficos: el que adopta las decisiones, un lder revisor,
actividad V&V ayudar en la planificacin cuidadosa de un registrador, y un personal tcnico para apoyar las
las tcnicas y los recursos precisos para alcanzar sus actividades de revisin. Una revisin tcnica requiere
respectivos objetivos. Estndares especficos que las entradas obligatorias estn en su lugar con el
(IEEE1012-98:s7 y IEEE1059-93: El apndice A) que objeto de proceder a:
generalmente incluye un plan de V&V.
El plan tambin considera la gestin, la comunicacin, la Exposicin de objetivos
poltica, y los procedimientos de las actividades V&V y Un producto software especfico
su interaccin, as como el reporte de defectos y El plan especfico de gestin del proyecto
exigencias de documentacin. La lista de cuestiones claves asociadas al producto
El procedimiento de revisin tcnica

2.3. Revisiones y Auditorias El equipo sigue el procedimiento de revisin. Un


individuo tcnicamente calificado presenta una
Con el propsito de ser breve, revisiones y auditoras son descripcin del producto, y el examen se lleva a cabo
tratadas como un solo tema en esta Gua, ms que como durante una o varias reuniones. La revisin tcnica es
dos temas separados tal y como se hace en
(IEEE12207.0-96). La revisin y el proceso de auditora
completada una vez que todas las actividades 2.3.4. Walk-throughs
catalogadas en el examen han sido completadas. [Fre98; Hor03; Pfl01; Pre04; Som05; Wal89;
Wal96]
2.3.3. Inspecciones El objetivo de un Walk-throughs es evaluar un producto
[Ack02; Fre98; Gil93; Rad02; Rak97] de software. Un Walk-throughs puede ser conducido
El propsito de una inspeccin es detectar e identificar para el objetivo de formar a una audiencia en cuanto a un
anomalas en los productos software (IEEE1028- producto de software. (IEEE1028-97) los objetivos
97).Existen dos importantes elementos diferenciadores principales son [ IEEE1028-97]:
entre inspeccin y revisin, son los siguientes:
Encontrara anomalas
1. Un individuo que mantiene una posicin de Mejorar el producto software
direccin sobre cualquier miembro del equipo Considerar implementaciones alternativas
de inspeccin no participar en la inspeccin. Evaluar la conformidad con estndares y
especificaciones
2. La inspeccin ha de ser llevada por un inspector

r
con formacin en inspecciones tcnicas El Walk-throughs es similar a una inspeccin, sin
embargo, su desarrollo, por lo general, es menos formal.
Las inspecciones de software siempre implican al autor

do
El Walk-throughs es organizado fundamentalmente por
de un producto intermedio o final, mientras otras el ingeniero de software para dar a sus compaeros de
revisiones puede que no. Las inspecciones tambin equipo la oportunidad de repasar su trabajo, como una
incluyen a un lder de inspeccin, un registrador, un tcnica de aseguramiento.
lector, y un grupo (2 a 5) de inspectores. Los miembros
de un equipo de inspeccin pueden poseer diferentes 2.3.5. Auditorias
especializaciones, como especializacin en el dominio, [Fre98; Hor03; Pfl01; Pre01; Som05;Voa99;
especializacin en el mtodo de diseo, o especializacin Wal89; Wal96]
en el lenguaje. Las inspecciones por lo general son El objetivo de una auditora de software es proporcionar
llevadas a cabo sobre una relativamente pequea seccin una evaluacin independiente de la conformidad de
del producto a la vez. Cada miembro del equipo debe productos software y procesos a regulaciones aplicables,
rra
examinar el producto software as como practicar otras estndares, directrices, planes, y procedimientos "
revisiones de imputs con anterioridad a la reunin de [IEEE1028-97]. La auditora es una actividad
revisin, quizs aplicando una tcnica analtica (referida formalmente organizada, con participantes que tienen
en la seccin 3.3.3) en una pequea porcin del papeles especficos, como el auditor jefe, otro auditor, un
producto, o en todo el producto enfocando solo un registrador, o un iniciador, e incluye a un representante
aspecto, por ejemplo, interfaces. Cualquier anomala de la organizacin auditada.
encontrada se documenta y se enva al responsable de la
inspeccin. Durante la inspeccin, el responsable de la La auditora identificar los casos de no conformidad y
inspeccin conduce la sesin y verifica que todos estn producir un informe requiriendo al equipo que adopte la
preparados para la misma. accin correctiva correspondiente.

Un herramienta comnmente usada en las inspecciones Mientras puede haber muchos nombres formales para
Bo

es una lista de comprobacin, con anomalas y preguntas revisiones y auditorias como los identificados en el
pertinentes sobre las cuestiones de inters. La lista estndar (IEEE1028-97), La clave es qu revisiones y
resultante a menudo clasifica las anomalas (refirase a auditorias pueden practicarse sobre casi cualquier
IEEE1044-93 para detalles) y se revisa por parte del producto en cualquier etapa del proceso de
equipo su exactitud e integridad. La decisin sobre el mantenimiento o el desarrollo.
final de la inspeccin se corresponde con uno de los tres
criterios siguientes: 3. Consideraciones Prcticas
3.1. Requerimientos de calidad del software
1. No aceptar re-trabajo o como mucho un re-
[Hor03; Lew92; Rak97; Sch99; Wal89; Wal96]
trabajo menor
2. Aceptar con verificacin del re-trabajo 3.1.1. Factores de influencia
3. Re-inspeccin Varios factores influyen en la planificacin, gestin, y
seleccin de actividades de SQM y tcnicas, incluyendo:
Tpicamente las reuniones de inspeccin duran por lo
general algunas horas mientras que las revisiones El dominio del sistema en el cual el software residir
tcnicas y auditorias son por lo general de mayor alcance (seguridad crtica, misin crtica, negocio crtico)
y requieren ms tiempo. Requerimientos del Sistema y del software
Los componentes comerciales (externos) o estndar
(internos) que sern usados por el sistema
Los estndares especficos de ingeniera del hay bastantes en uso [Bei90, Chi96, Gra92], IEEE1044-
software especfico aplicables 93). La caracterizacin del Defecto (la anomala)
Los mtodos y herramientas de software para ser tambin es usada en auditorias y revisiones, el
usados en el desarrollo y el mantenimiento as como responsable de revisin a menudo presenta una lista de
para la evaluacin de calidad y mejora anomalas proporcionadas por miembros de equipo para
El presupuesto, el personal, planes de organizacin, su consideracin en una reunin de revisin.
proyectos, y la planificacin de todos los procesos
Los usuarios implicados y el empleo del sistema Nuevos mtodos de diseo y lenguajes se desarrollan,
El nivel de integridad del sistema junto con avances en todas las tecnologas de software,
las nuevas clases de defectos aparecen, y requieren
La Informacin sobre estos factores de influencia como mucho esfuerzo para interpretar clases previamente
los procesos SQM son organizados y documentados, son definidas. Rastreando defectos, el ingeniero de software
seleccionadas como actividades SQM especficas, que est interesado tanto en el nmero como en el tipo de
recursos son necesarios, y que impondr lmites a los defectos. La Informacin sola, sin ninguna clasificacin,
esfuerzos. no es realmente de ninguna utilidad en la identificacin

r
de las causas subyacentes de los defectos, pues los tipos
3.1.2. Confiabilidad especficos de problemas tienen que ser agrupados juntos
En casos en los que el fracaso del sistema puede tener para determinar como se gestionan. El asunto es

do
consecuencias sumamente severas, la confiabilidad total establecer una taxonoma de defectos que sea
(en hardware, el software, y humanos) son la exigencia significativa para la organizacin y los ingenieros de
de calidad principal adems de la funcionalidad bsica. software.
La confiabilidad del software incluye caractersticas tales
como tolerancia al defecto, fiabilidad, seguridad, y SQM descubre la informacin en todas las etapas de
usabilidad. La fiabilidad es tambin un criterio que desarrollo de software y mantenimiento. Tpicamente
puede ser definido en trminos de confiabilidad donde se usa la palabra "defecto" se refiere "a un fallo"
(ISO9126). tal y como se detalla ms abajo.

El cuerpo de conocimiento para sistemas debe ser Sin embargo, diferentes culturas y normas pueden usar
sumamente confiable (" alta confianza " " o alta significados algo diferentes para estos trminos, lo cual
rra
integridad en sistemas"). La terminologa para los ha llevado a tentativas para definirlos. Definiciones
sistemas tradicionales mecnicos y elctricos que no parciales tomadas del estndar (IEEE610.12-90) son:
incluyen software ha sido importada para tratar
amenazas o peligros, riesgos, integridad del sistema, y Error: Una diferencia entre un resultado calculado
conceptos relacionados, y puede ser encontrada en las y un resultado concreto
referencias citadas para esta seccin. Faultt: Un paso, proceso, o definicin de datos
3.1.3. Niveles de integridad del software incorrecto en programa de computadora.
Failure: El resultado [incorrecto] de un fault
El nivel de integridad se determina en base a las Mistake: Un error humano que produce un
consecuencias posibles del fracaso del software y a la resultado incorrecto fallo falla
probabilidad de fracaso. Para el software en el que la
Bo

seguridad o la fiabilidad son importantes, tcnicas como Los fracasos encontrados en pruebas como consecuencia
el anlisis de riesgo para la seguridad o el anlisis de de fallos de software estn incluidos como defectos en
amenazas para la fiabilidad pueden ser usadas para esta seccin.
desarrollar una actividad de planificacin que se
identificara en donde se encuentren conflictos Los modelos de fiabilidad son construidos en base a los
potenciales. Histricos de fracaso de software similar fallos recogidos durante pruebas de software o
tambin puede ayudar en la identificacin de qu procedentes de software en servicio, y de esta manera
tcnicas sern las ms tiles en el descubrimiento de pueden ser usados para predecir futuros fracasos y asistir
defectos y evaluacin de calidad. Se proponen niveles de en decisiones sobre cuando detener las pruebas. [Mus89]
integridad (por ejemplo, la gradacin de integridad) en
(IEEE1012-98). Una probable accin resultante de las conclusiones
3.2. Caracterizacin de defectos SQM es eliminar los defectos del producto durante su
[Fri95; Hor03; Lew92; Rub94; Wak99; Wal89] inspeccin. Otras acciones permiten alcanzar el valor
completo de las conclusiones SQM. Estas acciones
Los procesos SQM encuentran defectos. Caracterizar
incluyen el anlisis y el resumen de las conclusiones, y
estos defectos conduce a un entendimiento del producto,
tcnicas de medida de utilizacin para mejorar el
facilita correcciones al proceso o al producto, e informa
producto y el proceso as como para rastrear los defectos
al gestor del proyecto o al cliente del estado del proceso
y su eliminacin. La mejora de proceso principalmente
o el producto. Existes muchas taxonomas defectuosas,
es tratada en el KA Proceso de Ingeniera de Software,
y, mientras se ha intentado obtener un consenso en una
taxonoma de defectos o fallos, la literatura indica que
junto con el proceso SQM como una fuente de tales tcnicas incluyen el anlisis de complejidad,
informacin. controlan el anlisis de flujo, y el anlisis algortmico.

Los datos sobre las insuficiencias y defectos encontrados Cada tipo de anlisis tiene un objetivo especfico, y no se
durante la implementacin de tcnicas SQM pueden ser aplican todos ellos a cada proyecto. Un ejemplo de una
perdidos a no ser que sean registrados. Para algunas tcnica de apoyo es el anlisis de complejidad, que es
tcnicas (por ejemplo, revisiones tcnicas, auditorias, til para determinar si realmente el diseo o la
inspecciones), los registradores estn presentes para implementacin resultan demasiado complejos para
poner por escrito tal informacin, incluyendo cuestiones desarrollar correctamente, realizar las pruebas, o el
y decisiones. Cuando se utilizan herramientas mantenimiento. Los resultados de un anlisis de
automatizadas, las salidas de la herramienta pueden complejidad tambin pueden ser usados en test de
proporcionar la informacin sobre defectos. Los datos desarrollo. Las tcnicas para encontrar defectos como el
sobre defectos pueden ser recogidos y registrados sobre anlisis de flujo de control, tambin pueden utilizarse
un formulario SCR (software change request) y para apoyar otra actividad.
posteriormente puede ser trasladado a algn tipo de base

r
de datos, a mano o automticamente, desde una Para software con muchos algoritmos, el anlisis
herramienta de anlisis. Proporcionan informes sobre algortmico es importante, especialmente cuando un
defectos a la direccin de la organizacin. algoritmo incorrecto podra causar un resultado

do
3.3. Tcnicas de Gestin de Calidad del Software catastrfico. Hay demasiadas tcnicas analticas para
[Bas94; Bei90; Con86; Chi96; Fen97; Fri95; listarlas todas aqu. La lista y referencias proporcionadas
Lev95; Mus89; Pen93; Sch99; Wak99; Wei93; pueden ofrecer ideas en la seleccin de una tcnica, as
Zel98] como sugerencias para posteriores lecturas.

Las tcnicas SQM pueden categorizarse de diferentes Otros tipos, ms formales, de tcnicas analticas se
formas: estticas, conocen como mtodos formales. Son usados para
Personal-intensivas, analticas, dinmicas. verificar requerimiento de software y diseos. Las
3.3.1. Tcnicas Estticas pruebas de correccin corresponden a las partes crticas
de software. Han sido usadas, sobre todo, en la
Las tcnicas estticas implican el examen de la verificacin de las partes cruciales de sistemas crticos,
rra
documentacin del proyecto y el software, y otra tales como la seguridad y exigencias de fiabilidad.
informacin sobre los productos de software, sin (Nas97)
ejecutarlos. Estas tcnicas pueden incluir actividades
intensivas de personal (como se define en 3.3.2) o 3.3.4. Tcnicas Dinmicas
actividades analticas (como se define en 3.3.3) Las diferentes clases de tcnicas dinmicas son
conducidas por individuos, con o sin la ayuda de ejecutadas durante todo el desarrollo y el mantenimiento
herramientas automatizadas. de software.
3.3.2. Tcnicas intensivas de personal.
Generalmente, son tcnicas de testeo, pero tcnicas tales
La puesta en marcha de tcnicas intensivas de personal, como la simulacin, la comprobacin de modelo, y la
incluyendo revisiones y auditorias, puede variar de una ejecucin simblica pueden ser consideradas dinmicas.
reunin formal a una reunin informal o una situacin de La lectura de cdigo es considerada una tcnica esttica,
Bo

comprobacin de escritorio, pero (por lo general, al pero ingenieros de software experimentados puede
menos) dos o ms personas estn implicadas. Puede ejecutar el cdigo tal y como lo leen. En este sentido, la
resultar necesaria una preparacin anticipada. Tanto los lectura de cdigo tambin puede considerarse una
recursos como los tems bajo examen pueden incluir tcnica dinmica. Esta discrepancia en la categora indica
listas de comprobacin y son resultado de tcnicas que personal con papeles diferentes en la organizacin
analticas y pruebas. Estas actividades son tratadas en puede considerar y aplicar estas tcnicas de manera
(IEEE1028-97) sobre revisiones y auditorias. [Fre98, diferente.
Hor03] [y Jon96, Rak97]
3.3.3. Tcnicas Analticas Algunas pruebas, as mismo, pueden ejecutarse en el
Un ingeniero de software generalmente aplica tcnicas proceso de desarrollo, el proceso SQA, o el proceso de
analticas. A veces varios ingenieros de software usan la V&V, de nuevo dependen de la organizacin de
misma tcnica, pero cada uno lo aplica a partes proyecto. Debido a que la planificacin SQM incluye
diferentes del producto. Algunas tcnicas son llevadas a testeo, esta seccin incluye algunos comentarios sobre
cabo por herramientas; las otras son manuales. Algunas pruebas.
pueden encontrar defectos directamente, pero El KA Pruebas de Software proporciona el tratamiento y
generalmente son usadas para apoyar otras tcnicas. referencias tcnicas a la teora, tcnicas para pruebas, y
Algunas tcnicas tambin incluyen varias evaluaciones automatizacin.
como la parte de anlisis de calidad total. Ejemplos de
3.3.5. Pruebas
Los procesos de aseguramiento descritos en SQA y Con el incremento de la complejidad del software las
V&V examinan todos los output de la especificacin de cuestiones sobre calidad van ms all de si el software es
requerimientos del software con el objeto de asegurar su capaz de alcanzar objetivos de calidad mensurables.
trazabilidad, consistencia, completitud, correccin y Existen algunas reas en las que las mtricas soportan
ejecucin. Esta comprobacin tambin incluye los output SQM directamente. Esto incluye asistencias en la
de los procesos de desarrollo y mantenimiento, decisin de cuando detener las pruebas. Para ello los
recopilando, analizando y midiendo los resultados. SQA modelos de fiabilidad y pruebas, resultan tiles usando
asegura la planificacin, desarrollo e implementacin de datos de fallos y fracasos.
determinados tipos de pruebas, y V&V desarrolla planes
de prueba, estrategias, casos y procedimientos. El coste de los procesos SQM es una cuestin que casi
siempre se suscita cuando se adopta la decisin de cmo
Las pruebas son tratadas detalladamente en el KA. testeo debera organizarse un proyecto. A menudo, los modelos
de Software. Dos tipos de pruebas pueden incluirse en el genricos de coste usados, estn basados en cuando se
mbito de SQA y V*V, por razn de su responsabilidad encuentra y cuanto esfuerzo se precisa para fijar el

r
por la calidad de los materiales usados en el proyecto: defecto en relacin con el hallazgo del defecto temprano
en el proceso de desarrollo. Los datos de proyecto
pueden ofrecer una mejor idea del coste. El tratamiento
Evaluacin y prueba de herramientas que sern

do
de este tema puede ser encontrada en [Rak97: pp. 39-50].
usadas en el proyecto (IEEE1462-98).
La informacin relacionada puede ser encontrada en los
Prueba de Conformidad (o revisin de prueba de
KAs el Proceso de Ingeniera de Software y Gestin en
conformidad) de componentes y productos COTS
Ingeniera del Software.
que se usaran en el producto; all ahora existe un
estndar para paquetes de software (IEEE1465-98).
Finalmente los informes SQM en s mismos proveen
informacin valiosa no slo sobre estos procesos, sino
En ocasiones una organizacin independiente V&V
tambin sobre como pueden perfeccionarse todos los
puede ser requerida para monitorear el proceso de
procesos de ciclo de vida. El tratamiento de estos asuntos
pruebas y a veces para atestiguar la ejecucin actual con
puede encontrarse en [McC04] (y IEEE1012-98).
el objeto de asegurar que este es llevado a cabo conforme
rra
a los procedimientos especificados. Tambin se puede
Mientras las mtricas para caractersticas de calidad y
apelar a V&V para evaluar las pruebas en s mismas:
rasgos de producto pueden resultar tiles en s mismas
adecuacin a los proyectos y procedimientos, y
(por ejemplo, el nmero de requerimientos defectuosos o
suficiencia y exactitud de resultados
la proporcin de requerimientos defectuosos), pueden
aplicarse tcnicas matemticas y grficas para ayudar en
Otro tipo de pruebas que puede incluirse en el mbito de
la interpretacin de esa mtricas. Ello se encuentra en las
la organizacin V&V es el de pruebas de terceros.
categoras siguientes y son tratados en [Fen97, Jon96,
Kan02, Lyu96, Mus99].
Este tercero no es el desarrollador, tampoco est
relacionado en modo alguno con el desarrollo del
Basadas estadsticamente basado (por ejemplo,
producto. En cambio, el tercero es un Facility
Pareto analysis, run charts, scatter plots, normal
independiente, por lo general acreditado por alguna
Bo

distribution.
autoridad. Su objetivo es el de probar un producto
respecto de su conformidad con un conjunto especfico Pruebas Estadsticas (por ejemplo, binomial test,
de exigencias. chisquared test ).
El anlisis de Tendencia.
3.4. Medicin de calidad del software Prediccin (por ejemplo, modelos de fiabilidad).
Los modelos de calidad del software a menudo incluyen
mtricas para determinar el grado de calidad de cada Las tcnicas basadas en estadsticas y las pruebas a
caracterstica alcanzada por el producto. menudo proporcionan una imagen de las reas ms
problemticas del producto software examinado. Los
Si estos modelos se seleccionan correctamente, las cuadros y grficos resultantes resultan ayudas de
mtricas pueden apoyar la calidad del software de visualizacin que los gestores con poder de decisin
muchas maneras (entre otros aspectos de los procesos de pueden utilizar para concentrar recursos donde resulten
ciclo de vida de software). ms necesarios. Los resultados del anlisis de tendencia
pueden indicar que una programacin no ha sido
Pueden ayudar en procesos de toma de decisiones de respetada, tales como las pruebas, o que ciertas clases de
gestin. Pueden encontrar reas problemticas y cuellos fallos se intensificarn a no ser que se adopte alguna
de botella en procesos de software y pueden ayudar a los accin correctiva en el desarrollo. Las tcnicas de
ingenieros de software a evaluar la calidad de su trabajo prediccin asisten en la planificacin del periodo de
respecto de objetivos SQA y respecto de procesos a largo prueba y en la prediccin del fracaso. Ms informacin
plazo de mejora de calidad. sobre medicin en general pude encontrarse en los Kas
Proceso de Ingeniera de Software y Gestin en As, para el siguiente sistema de software dentro de esa
Ingeniera del Software. Informacin ms especfica organizacin, los perfiles podrn utilizarse para guiar los
sobre medicin en pruebas se presenta en el Ka Testeo procesos SQM, es decir, para focalizar esfuerzo all
de Software. donde sea ms probable que puedan surgir problemas.
Semejantemente, los puntos de referencia, o los defectos
Las referencias [ Fen97, Jon96, Kan02, Pfl01 ] tpicos de ese dominio, pueden servir como ayuda en la
proporcionan un tratamiento del anlisis del defecto, determinacin de cundo estar el producto listo para su
consistente en medir la aparicin del defecto y entrega.
posteriormente aplicar mtodos estadsticos para
entender los tipos de defectos que aparecen ms El estudio de como usar datos de SQM para mejorar
frecuentemente, es decir, determinar su densidad. procesos de desarrollo y mantenimiento puede
Tambin ayudan a comprender las tendencias en cmo encontrarse en los Kas Gestin en Ingeniera del
estn trabajando las tcnicas de deteccin, y cmo estn Software y Procesos en Ingeniera del Software.
progresando los procesos de desarrollo y mantenimiento.
La medicin de la cobertura de la prueba ayuda a estimar

r
cuanto esfuerzo en trminos de prueba queda por hacer,
y predecir los posibles defectos restantes. De estos
mtodos de medicin, pueden desarrollarse los perfiles

do
del defecto para un dominio especfico de la aplicacin.
rra
Bo
ISO9001-00]
[Hou99]

[Lew92]
[Jon96]

[Lap91]

[Llo03]

[Mus99]
[IEEE99]

03-04]

[NIST03]

[Pfl01]

[Rak97]

[Sei02]

[Wal96]
[Boe78]

[Dac01]

[Kia95]

[McC77]

[Wei93]

[Wei96]
[Pre04]
[ISO900

r
1. Fundamentos de Calidad de Software
1.1. Ingeniera del Software Cultura y tica. * *

do
1.2. Valor y coste de la calidad. * * * * * * * *
1.3 .Modelos y Caractersticas de Calidad. * * * * * * * * * * * * * * *
1.4. Mejora de Calidad. * * *
MATRIZ DE TEMAS VS REFERENCIAS

[Som05]
[Lew92]

[Rad02]
[Ack02]

[Ebe94]

[Rak97]

[Sch99]

[Voa99]

[Wal89]

[Wal96]
[Gra92]

[Hor03]

[Pre04]
[Fre98]

[Gil93]

[Pfl01]
2.

2.2. Verificaciones y Validacin


2.3. Revisiones y Auditorias
rra
Procesos de Gestin de Calidad del Software
2.1. Aseguramiento de la Calidad del Software *

*
* *
*
* *
* *
*
* *
*
*
*
*
*
* *
*

*
* *
*
*
*

*
*
*
*
*
*
*

[McC04]

[Wak99]
[Mus89]

[Mus99]
[Con86]

[Lew92]

[Rub94]
[Kan02]
[Bas84]

[Pen93]

[Rak97]

[Sch99]
[Fen97]

[Jon96]

[Lyu96]

[Wal89]

[Wal96]

[Wei93]
[Lev95]
[Gra92]

[Hor03]
[Chi96]

[Fre98]
[Bei90]

[Zel98]
[Fri95]

[Pfl01]
Bo
3. Consideraciones Prcticas
3.1. Requerimientos de calidad del
software
* * * * * *
3.2. Caracterizacin de defectos * * * * * * * * * *
3.3. Tcnicas de Gestin de Calidad
del Software
* * * * * * * * * * * * * * * * *
3.4. Medicin de calidad SW * * * * * * * * *
REFERENCIAS RECOMENDADAS PARA [Lap91] J.C. Laprie, Dependability: Basic Concepts and
Terminology in English, French, German, Italian and
CALIDAD SW
Japanese, IFIP WG 10.4, Springer-Verlag, 1991.
[Lev95] N.G. Leveson, Safeware: System Safety and
[Ack02] F.A. Ackerman, Software Inspections and the Computers, Addison-Wesley, 1995.
Cost Effective Production of Reliable Software, Software [Lew92] R.O. Lewis, Independent Verification and
Engineering, Volume 2: The Supporting Processes, Richard Validation: A Life Cycle Engineering Process for Quality
H. Thayer and Mark Christensen, eds., Wiley-IEEE Software, John Wiley & Sons, 1992.
Computer Society Press, 2002. [Llo03] Lloyd's Register, TickIT Guide, iss. 5, 2003,
[Bas84] V.R. Basili and D.M. Weiss, A Methodology for available at http://www.tickit.org.
Collecting Valid Software Engineering Data, IEEE [Lyu96] M.R. Lyu, Handbook of Software Reliability
Transactions on Software Engineering, vol. SE-10, iss. 6, Engineering: McGraw-Hill/IEEE, 1996.
November 1984, pp. 728-738. [Mcc77] J.A. McCall, Factors in Software Quality
[Bei90] B. Beizer, Software Testing Techniques, General Electric, n77C1502, June 1977.
International Thomson Press, 1990. [Boe78] B.W. Boehm [McC04] S. McConnell, Code Complete: A Practical
et al., Characteristics of Software Quality, TRW Series on Handbook of Software Construction, Microsoft Press,

r
Software Technologies, vol. 1, 1978. second ed., 2004.
[Chi96] R. Chillarege, Orthogonal Defect Classification, [Mus89] J.D. Musa and A.F. Ackerman, Quantifying
Handbook of Software Reliability Engineering, M. Lyu, ed., Software Validation: When to Stop Testing? IEEE
IEEE Computer Society Press, 1996.

do
Software, vol. 6, iss. 3, May 1989, pp. 19-27.
[Con86] S.D. Conte, H.E. Dunsmore, and V.Y. Shen, [Mus99] J. Musa, Software Reliability Engineering: More
Software Engineering Metrics and Models: The Benjamin Reliable Software, Faster Development and Testing:
Cummings Publishing Company, 1986. McGraw Hill, 1999.
[Dac01] G. Dache, IT Companies will gain competitive [NIST03] National Institute of Standards and Technology,
advantage by integrating CMM with ISO9001, Quality Baldrige National Quality Program, available at
System Update, vol. 11, iss. 11, November 2001. http://www.quality.nist.gov.
[Ebe94] R.G. Ebenau and S. Strauss, Software Inspection [Pen93] W.W. Peng and D.R. Wallace, Software Error
Process, McGraw-Hill, 1994. Analysis, National Institute of Standards and Technology,
[Fen98] N.E. Fenton and S.L. Pfleeger, Software Metrics: A Gaithersburg, NIST SP 500-209, December 1993, available
Rigorous & Practical Approach, second ed., International at http://hissa.nist.gov/SWERROR/.
Thomson Computer Press, 1998.
rra
[Pfl01] S.L. Pfleeger, Software Engineering: Theory and
[Fre98] D.P. Freedman and G.M. Weinberg, Handbook of Practice, second ed., Prentice Hall, 2001.
Walkthroughs, Inspections, and Technical Reviews, Little, [Pre04] R.S. Pressman, Software Engineering: A
Brown and Company, 1998. Practitioners Approach, sixth ed., McGraw-Hill, 2004.
[Fri95] M.A. Friedman and J.M. Voas, Software [Rad02] R. Radice, High Quality Low Cost Software
Assessment: Reliability, Safety Testability, John Wiley & Inspections, Paradoxicon, 2002, p. 479.
Sons, 1995. [Rak97] S.R. Rakitin, Software Verification and Validation:
[Gil93] T. Gilb and D. Graham, Software Inspections, A Practitioners Guide, Artech House, 1997.
Addison-Wesley, 1993. [Rub94] J. Rubin, Handbook of Usability Testing: How to
[Gra92] R.B. Grady, Practical Software Metrics for Project Plan, Design, and Conduct Effective Tests, John Wiley &
Management and Process Management, Prentice Hall, Sons, 1994.
1992. [Sch99] G.C. Schulmeyer and J.I. McManus, Handbook of
[Hor03] J. W. Horch, Practical Guide to Software Quality
Bo

Software Quality Assurance, third ed., Prentice Hall, 1999.


Management, Artech House Publishers, 2003. [SEI02] Capability Maturity Model Integration for
[Hou99] D. Houston, Software Quality Professional, Software Engineering (CMMI), CMU/SEI-2002-TR-028,
ASQC, vol. 1, iss. 2, 1999. ESC-TR-2002-028, Software Engineering Institute,
[IEEE-CS-99] IEEE-CS-1999, Software Engineering Code Carnegie Mellon University, 2002.
of Ethics and Professional Practice, IEEE-CS/ACM, 1999, [Som05] I. Sommerville, Software Engineering, seventh
available at http://www.computer.org/certification/ ed., Addison-Wesley, 2005.
ethics.htm. [ISO9001-00] ISO 9001:2000, Quality [Voa99] J. Voas, Certifying Software For High Assurance
Management Systems Requirements, ISO, 2000. Environments, IEEE Software, vol. 16, iss. 4, July-August
[ISO90003-04] ISO/IEC 90003:2004, Software and Systems 1999, pp. 48-54.
Engineering-Guidelines for the Application of [Wak99] S. Wakid, D.R. Kuhn, and D.R. Wallace, Toward
ISO9001:2000 to Computer Software, ISO and IEC, 2004. Credible IT Testing and Certification, IEEE Software,
[Jon96] C. Jones and J. Capers, Applied Software July/August 1999, pp. 39-47.
Measurement: Assuring Productivity and Quality, second [Wal89] D.R. Wallace and R.U. Fujii, Software
ed., McGraw-Hill, 1996. Verification and Validation: An Overview, IEEE Software,
[Kan02] S.H. Kan, Metrics and Models in Software Quality vol. 6, iss. 3, May 1989, pp. 10-17.
Engineering, second ed., Addison-Wesley, 2002. [Wal96] D.R. Wallace, L. Ippolito, and B. Cuthill,
[Kia95] D. Kiang, Harmonization of International Reference Information for the Software Verification and
Software Standards on Integrity and Dependability, Proc. Validation Process, NIST SP 500-234, NIST, April 1996,
IEEE International Software Engineering Standards available at http://hissa.nist.gov/VV234/.
Symposium, IEEE Computer Society Press, 1995.
[Wei93] G.M. Weinberg, Measuring Cost and Value, [Zel98] M.V. Zelkowitz and D.R. Wallace, Experimental
Quality Software Management: First-Order Measurement, Models for Validating Technology, Computer, vol. 31, iss.
vol. 2, chap. 8, Dorset House, 1993. 5, 1998, pp. 23-31.
[Wie96] K. Wiegers, Creating a Software Engineering
Culture, Dorset House, 1996.

r
do
rra
Bo
APNDICE A. LISTA DE LECTURAS (Inc94) D. Ince, ISO 9001 and Software Quality Assurance,
McGraw-Hill, 1994.
COMPLEMENTARIAS
(Jur89) J.M. Juran, Juran on Leadership for Quality, The
(Abr96) A. Abran and P.N. Robillard, Function Points
Free Press, 1989.
Analysis: An Empirical Study of Its Measurement
(Kin92) M.R. Kindl, Software Quality and Testing: What
Processes, presented at IEEE Transactions on Software
DoD Can Learn from Commercial Practices, U.S. Army
Engineering, 1996. //journal or conference?//
Institute for Research in Management Information,
(Art93) L.J. Arthur, Improving Software Quality: An
Communications and Computer Sciences, Georgia Institute
Insiders Guide to TQM, John Wiley & Sons, 1993.
of Technology, August 1992.
(Bev97) N. Bevan, Quality and Usability: A New
(NAS97) NASA, Formal Methods Specification and
Framework, Achieving Software Product Quality, E. v.
Analysis Guidebook for the Verification of Software and
Veenendaal and J. McMullan, eds., Uitgeverij Tutein
Computer Systems, Volume II: A Practitioners
Nolthenius, 1997.
Companion, 1997, available at http://eis.jpl.nasa.gov/
(Cha89) R.N. Charette, Software Engineering Risk Analysis
quality/Formal_Methods/.
and Management, McGraw-Hill, 1989.
(Pal97) J.D. Palmer, Traceability, Software Engineering,
(Cro79) P.B. Crosby, Quality Is Free, McGraw-Hill, 1979.
M. Dorfman and R. Thayer, eds., 1997, pp. 266-276.

r
(Dem86) W.E. Deming, Out of the Crisis: MIT Press, 1986.
(Ros98) L. Rosenberg, Applying and Interpreting Object-
(Dod00) Department of Defense and US Army, Practical
Oriented Metrics, presented at Software Technology
Software and Systems Measurement: A Foundation for
Conference, 1998, available at http://satc.gsfc.nasa.gov/
Objective Project Management, Version 4.0b, October

do
support/index. html.
2000, available at http://www.psmsc.com.
(Sur03) W. Suryn, A. Abran, and A. April, ISO/IEC
(Hum89) W. Humphrey, Managing the Software Process,
SQuaRE. The Second Generation of Standards for Software
Chap. 8, 10, 16, Addison-Wesley, 1989.
Product Quality, presented at IASTED 2003, 2003.
(Hya96) L.E. Hyatt and L. Rosenberg, A Software Quality
(Vin90) W.G. Vincenti, What Engineers Know and How
Model and Metrics for Identifying Project Risks and
They Know It Analytical Studies from Aeronautical
Assessing Software Quality, presented at 8th Annual
History, John Hopkins University Press, 1990.
Software Technology Conference, 1996.
rra
Bo
APNDICE B. LISTA DE ESTNDARES
(FIPS140.1-94) FIPS 140-1, Security Requirements for
Cryptographic Modules, 1994.
(IEC61508-98) IEC 61508, Functional Safety Safety-
Related Systems Parts 1, 2, 3, IEEE, 1998.
(IEEE610.12-90) IEEE Std 610.12-1990 (R2002), IEEE
Standard Glossary of Software Engineering Terminology,
IEEE, 1990.
(IEEE730-02) IEEE Std 730-2002, IEEE Standard for
Software Quality Assurance Plans, IEEE, 2002.
(IEEE982.1-88) IEEE Std 982.1-1988, IEEE Standard
Dictionary of Measures to Produce Reliable Software,
1988.
(IEEE1008-87) IEEE Std 1008-1987 (R2003), IEEE
Standard for Software Unit Testing, IEEE, 1987.

r
(IEEE1012-98) IEEE Std 1012-1998, Software Verification
and Validation, IEEE, 1998.
(IEEE1028-97) IEEE Std 1028-1997 (R2002), IEEE
Standard for Software Reviews, IEEE, 1997.

do
(IEEE1044-93) IEEE Std 1044-1993 (R2002), IEEE
Standard for the Classification of Software Anomalies,
IEEE, 1993.
(IEEE1059-93) IEEE Std 1059-1993, IEEE Guide for
Software Verification and Validation Plans, IEEE, 1993.
(IEEE1061-98) IEEE Std 1061-1998, IEEE Standard for a
Software Quality Metrics Methodology, IEEE, 1998.
(IEEE1228-94) IEEE Std 1228-1994, Software Safety
Plans, IEEE, 1994.
(IEEE1462-98) IEEE Std 1462-1998//ISO/IEC14102,
Information Technology Guideline for the Evaluation
rra
and Selection of CASE Tools.

(IEEE1465-98) IEEE Std 1465-1998//ISO/IEC12119:1994,


IEEE Standard Adoption of International Standard
IDO/IEC12119:1994(E), Information Technology-Software
Packages Quality Requirements and Testing, IEEE,
1998.
(IEEE12207.0-96) IEEE/EIA 12207.0-1996//ISO/
IEC12207:1995, Industry Implementation of Int. Std
ISO/IEC 12207:95, Standard for Information Technology-
Software Life Cycle Processes, IEEE, 1996.
(ISO9001-00) ISO 9001:2000, Quality Management
Bo

Systems Requirements, ISO, 2000.


(ISO9126-01) ISO/IEC 9126-1:2001, Software Engineering
Product Quality, Part 1: Quality Model, ISO and IEC,
2001.
(ISO14598-98) ISO/IEC 14598:1998, Software Product
Evaluation, ISO and IEC, 1998.
(ISO15026-98) ISO/IEC 15026:1998, Information
Technology System and Software Integrity Levels, ISO
and IEC, 1998.
(ISO15504-98) ISO/IEC TR 15504-1998, Information
Technology Software Process Assessment (parts 1-9),
ISO and IEC, 1998.
(ISO15939-00) ISO/IEC 15939:2000, Information
Technology Software Measurement Process, ISO and
IEC, 2000.
(ISO90003-04) ISO/IEC 90003:2004, Software and Systems
Engineering Guidelines for the Application of
ISO9001:2000 to Computer Software, ISO and IEC, 2004.
Bo
rra
do
r
CAPTULO 12
DISCIPLINAS RELACIONADAS CON LA
INGENIERA DEL SOFTWARE
INTRODUCCIN
Para circunscribir la Ingeniera del Software, es necesario identificar las disciplinas con las que la Ingeniera del Software
comparte un lmite comn. Este captulo identifica, en orden alfabtico, esas Disciplinas Relacionadas. Por supuesto, las
Disciplinas Relacionadas tambin comparten varios lmites en comn entre ellas mismas.

Usado como fuente reconocida y consensuada, este captulo identifica para cada Disciplina Relacionada:

r
Una definicin informativa (cuando sea factible).
Un listado de reas de conocimiento.

do
La figura 1 da una representacin grfica de estas disciplinas relacionadas.

Figura 1 Disciplinas relativas a la Ingeniera del Software


rra
LISTADO DE DISCIPLINAS RELACIONADAS Y SUS Sistemas distribuidos
REAS DE CONOCIMIENTO Electronica
Ingeniera de la computacin Sistemas embebidos
Interaccin Hombre-Mquina
El informe borrador del volumen en la Ingeniera de la
Gestin de la informacin
Computacin de Computing Curricula 2001 project
(CC2001)1 establece que La Ingeniera de la Sistemas inteligentes
Computacin incorpora la ciencia y la tecnologa del
Bo

Redes
diseo, construccin, implementacin y mantenimiento de
los componentes software y hardware de los sistemas de Sistemas operativos
clculo moderno y del equipo controlado por ordenador. Fundamentos de la programacin
Probabilidad y Estadstica
Este informe identifica las siguientes reas de
Conocimiento (conocidas como reas en el informe) para Problemas sociales y profesionales
la ingeniera de la computacin: Ingeniera del Software
Algoritmos y Complejidad Verificacin y Prueba
Arquitectura de ordenadores y Organizacin Diseo VLSI/ASIC
Ingeniera de Sistemas Informticos
Circuitos y Sistemas
Lgica Digital Ciencia de la computacin
Estructuras discretas
El informe final del volumen en Ciencia de la
Procesamiento de seales digitales computacin de Computing Curricula 2001 project
(CC2001)2 identifica la siguiente lista de reas de
1
hhtp://www.eng.auburn.edu/ece/CCCE/Iron_Man_Draft_October_ conocimiento (identificadas como reas en el informe)
2003.pdf para la Ciencia de la computacin:
Estadstica
Estructuras discretas Anlisis numrico
Fundamentos de la programacin Matemtica discreta
Algoritmos y Complejidad
Arquitectura y Organizacin Un listado ms enfocado en asuntos matemticos
Sistemas operativos (llamados unidades y asuntos en el informe) que sostiene
la ingeniera del software puede ser encontrado en el
Sistemas centralizados
informe borrador del volumen en Ingeniera del Software
Lenguajes de programacin en el Computing Curricula 2001 project (CC2001)5.
Interaccin Hombre-Mquina
Grficos y computacin visual Gestin de Proyectos
Sistemas inteligentes
La gestin de proyectos es definida en la edicin del 2000
Gestin de la informacin
de A Guide to the Project Management Body of

r
Problemas sociales y profesionales Knowledge (PMBOK Guide 6) publicado por el Project
Ingeniera del Software Management Institute y adoptado como IEEE Std 1490-
Ciencia computacional y Clculo numrico 2003, como el uso del conocimiento, de las habilidades,

do
de las herramientas, y de las tcnicas para planificar
Gestin actividades para satisfacer los requisitos del proyecto.
Las reas de conocimiento identificadas en la gua de
La European MBA Guidelines definida por la asociacin PMBOK para la Gestin de Proyectos son
europea de cuerpos de acreditacin nacional (EQUAL)3 Gestin de Integracin del proyecto
establece que el ttulo Master en Administracin de Gestin de Alcance del proyecto
negocios debe incluir cobertura e instruccin en
Gestin del tiempo del proyecto
1) Contabilidad Gestin del coste del proyecto
Finanzas Gestin de la calidad del proyecto
Gestin de los recursos humanos del proyecto
rra
Marketing y ventas
Gestin de operaciones Gestin de comunicaciones del proyecto
Gestin de Sistemas de Informacin Gestin de riesgos del proyecto
Derecho Gestin de consecucin del proyecto
Gestin de Recursos Humanos
Gestin de calidad
Economa
Analisis cuantitativo La gestin de la calidad es definida en el ISO 9000-2000
Poltica y estrategia de negocio como actividades coordinadas para dirigir y controlar una
organizacin con respecto a la calidad. Las tres
referencias seleccionadas en gestin de calidad son
Matemticas
Bo

Dos fuentes son seleccionadas para identificar la lista de ISO 9000:2000 Sistemas de gestin de calidad
reas de conocimiento para matemticas. El informe Fundamentos y vocabulario
titulado "Criterios de acreditacin y procedimientos"4 de la ISO 9001:2000 Sistemas de gestin de calidad
Canadian Engineering Accreditation Board identifica que Requerimientos
los elementos apropiados de las reas siguientes deben ISO 9004:2000 Sistemas de gestin de calidad -
estar presentes en un plan de estudios de la ingeniera del Pautas para la mejora del funcionamiento
estudiante:

Algebra lineal
Clculo Integral y Diferencial
Ecuaciones diferenciales
Probabilidad 5 http://sites.computer.org/ccse/volume/FirstDraft.pdf
6 PMBOK es una marca registrada de los Estados Unidos y otras
naciones.
La Sociedad Americana para la Calidad identifica las
2 siguientes reas de conocimiento en su Cuerpo de
ttp://www.computer.org/education/cc2001/final/cc2001.pdf
3
http://www.efmd.be/
Conocimiento para la certificacin como Ingeniero de
4
Calidad7:
http://www.ccpe.ca/e/files/report_ceab.pdf
2) Gestin y liderazgo en ingeniera de calidad Universidad de Qubec en Montral y por W. W. McMillan, de
la Eastern Michigan University.
Sistemas de calidad de desarrollo,
Fundaciones de la ciencia cognoscitiva
implementacin y verificacin
Extraccin de la informacin del habla y del
Planificacin, control y fiabilidad en la calidad
texto
del producto y del proceso
Procesado lxico
Gestin de la fiabilidad y el riesgo
Adquisicin de cmputo de la lengua
Solucin de problemas y mejora de la calidad
Naturaleza del HCI
Mtodos cuantitativos
- (Meta-) Modelos de HCI
Uso y contexto de computadoras
Ergonoma del software
- Organizacin y trabajo sociales humanos
El campo de la ergonoma est definido por la ISO
- reas de aplicacin

r
Technical Committee 159 sobre la ergonoma y dice:
Ergonoma o (factores humanos) es la disciplina cientfica Ajuste y adaptacin Hombre-Mquina
referida a comprensin de las interacciones entre un ser
Caractersticas humanas

do
humano y otros elementos de un sistema, y la profesin
- Tratamiento de la informacin humana
que conlleva teora, principios, datos y mtodos para
disear con objeto de optimizar el bienestar humano y el - Lengua, comunicacin, interaccin
funcionamiento del sistema global.8 - Ergonmica
Sistema informtico y arquitectura del interfaz
Una lista de las reas del conocimiento para la ergonoma - Dispositivos de la entrada y de salida
n relacin con el software se detalla a continuacin9: - Tcnicas del dilogo
Cognicin - Gnero del dilogo
- Grficos de computadora
I.A. cognoscitiva I: Razonamiento
Arquitectura del dilogo
Aprendizaje de las mquinas e induccin de la
rra
Proceso del desarrollo
gramtica
- Borradores del diseo
Mtodos formales en ciencia cognoscitiva: - Tcnicas de implementacin
Lenguaje - Tcnicas de la evaluacin
- Sistemas de ejemplo y casos de estudio
Ellos deban indicar cules de estos tpicos
deban ser conocidos como Ingeniera del Se puede encontrar una lista ms detallada de asuntos de
Software. Los que fueron rechazados por dos de interfaz hombre-computadora diseada (llamado unidades
y asuntos en el informe) para la ingeniera del software, en
los tres integrantes fue eliminados de la lista el borrador del informe del volumen en la ingeniera del
original. software Computing Curricula 2001 project (CC2001)10.
Bo

Mtodos formales en ciencia cognoscitiva:


Ingeniera de sistemas
Razonamiento
Mtodos formales en ciencia cognoscitiva: El consejo internacional sobre la ingeniera de sistemas
(INCOSE)11 dice que la ingeniera de sistemas es
Arquitectura cognoscitiva interdisciplinar y capaz de activar la realizacin de
I.A. cognoscitiva II: Aprendizaje sistemas eficientes. Se centra en definir los requisitos de
usuario y funcionalidad requerida en fases iniciales del
ciclo de desarrollo, documentando requisitos, luego
procediendo con la sntesis del diseo y la validacin del
sistema mientras se considera el problema globalmente:
7.http://isotc.iso.ch/livelink/livelink.exe/fetch/2000/2122/687806 operaciones de funcionamiento, pruebas, desarrollo, coste
/ISO_TC_159__Ergonomics_.pdf?nodeid=1162319&vernum=0h y planificacin, entrenamiento, ayuda y disposicin.
ttp://www.asq.org/cert/types/cqe/bok.html
8.http://isotc.iso.ch/livelink/livelink.exe/fetch/2000/2122/687806 La ingeniera de sistemas integra todas las disciplinas y
/ISO_TC_159_Ergonomics_.pdf?nodeid=1162319&vernum=0 grupos de especialidades en un esfuerzo del equipo que
9 Esta lista fue compilada para la edicin del 2001 del SWEBOK
forma procesos estructurados de desarrollo a el cual
Guide para la lista de cursos ofrecidos por el Departamento de
Ciencia Cognitiva de la Universidad de John Hopkins University procede de concepto, a produccin y a operacin. La
y el ACM SIGCHI Curricula for Human-Computer.La lista fue
entonces refinada por tres expertos en el campo: dos de la
10 http://sites.computer.org/ccse/volume/FirstDraft.pdf 1. Procesos de negocio y gravamen operacional
11 www.incose.org (BPOA)
ingeniera de sistemas considera ambos el negocio y las 2. Sistema/Solucin/Prueba de la arquitectura (SSTA)
necesidades tcnicas de todos los clientes con el objetivo 3. Coste del ciclo vital y anlisis de costes y
de proporcionar un producto de calidad que resuelve las beneficios (LCC y CBA)
necesidades del usuario. 4. Utilidad/logstica (S/L)
El consejo internacional sobre la ingeniera de sistemas 5. Modelado, simulacin, y anlisis (MS&A)
(INCOSE, www.incose.org) est trabajando en una gua 6. Gestin: Riesgo, configuracin, lnea de fondo
del Cuerpo de Conocimiento de la ingeniera de sistemas. (Mgt)
Versiones iniciales incluyen las siguientes reas de
competencias de primer nivel:

r
do
rra
Bo
APNDICE A
ESPECIFICACIONES DE LA DESCRIPCIN DE REAS DE
CONOCIMIENTO PARA LA GUA HOMBRE DE HIERRO DE LA GUA
DEL CUERPO DE CONOCIMIENTO DE LA INGENIERA DEL
SOFTWARE

INTRODUCCIN Conocimiento que es globalmente aceptado.


Este punto se detalla ms adelante.
Este documento presenta la versin 1.9 de las

r
especificaciones proporcionadas al equipo editorial a los d) La descomposicin de temas propuesta dentro de
expertos de las AC en relacin a las Descripciones de las un rea de Conocimiento no debe asumir
reas de Conocimiento de la Gua del Cuerpo de dominios de aplicaciones especficos,

do
Conocimiento de la Ingeniera del software (Versin necesidades de negocio, tamaos de
Hombre de Hierro). organizaciones, filosofas de gestin, ciclos de
vida del software, tecnologas software o mtodos
Este documento comienza presentando especificaciones de desarrollo del software.
sobre los contenidos de las reas de las Descripciones de
las reas de Conocimiento. Los criterios y requerimientos e) La descomposicin de temas propuesta debe, en
son definidos: para las descripciones de los temas todo lo posible, ser compatible con las varias
propuestos, las bases para dichas descomposiciones y una escuelas de pensamiento dentro de la ingeniera
breve descripcin de los temas, para la seleccin de las del software.
referencias, y para la identificacin de las reas de
Conocimiento de las Disciplinas Relacionadas. Se f) La descomposicin de temas propuesta dentro de
rra
explican documentos y sus roles de dentro de los las reas de Conocimiento, debe ser compatible
proyectos software. Adems se tratan asuntos no con la descomposicin de la ingeniera del
relacionados con el contenido como formatos de entrega y software encontrada en la industria y en los
guas de estilo. estndares y literatura de la ingeniera del
software.
CRITERIOS Y REQUERIMIENTOS PARA LA
DESCOMPOSICIN DE TPICOS INTERRUPCIN DE LOS g) La descomposicin de temas propuesta debe ser
ASUNTOS PARA LOS REQUISITOS DEL SOFTWARE tan extensa como sea posible. Es mejor sugerir
muchos temas y que luego algunos sean
Los siguientes requerimientos y criterios que deberan abandonados que lo contrario.
utilizarse para proponer una descomposicin de temas en
un rea de Conocimiento: h) Se espera de los editores asociados del rea de
Bo

Conocimiento, que se posicionen los temas de


a) Se espera que los editores asociados propongan calidad (en general) y medicin, comunes y parte
una o posiblemente dos, descomposiciones integral de todas las reas de Conocimiento.
complementarias a sus especificas reas de
Conocimiento. Los temas encontrados en todas Ntese que como tratar temas comunes u
las descomposiciones dada un rea de ortogonales, y si estos deberan de tratarse de otra
Conocimiento deben ser iguales. manera no ha sido completamente resulto
todava.
b) Se espera que la descomposicin de temas sea
razonable, no perfecta. La Gua al Cuerpo de i) La descomposicin propuesta debera de tener a
Conocimiento de la Ingeniera del Software es un lo sumo tener dos o tres niveles de profundidad.
esfuerzo a realizarse en fases, con muchas Aunque no se ha puesto ningn lmite ni superior
interacciones dentro de cada fase y mltiples ni inferior al nmero de temas dentro de cada
fases que sern necesarias para mejorar las rea de Conocimiento, se espera que los Editores
descomposiciones. Asociados de cada rea de Conocimiento
propongan un nmero razonable y manejable de
c) Las descomposiciones de los temas propuestas temas por reas de Conocimiento. Adems el
dentro de un rea de Conocimiento debe nfasis debe de ponerse en la seleccin de temas
descomponer el subconjunto del Cuerpo de en lugar de su organizacin en una jerarqua
apropiada.
del software que un graduado debera de
Los temas propuestos deben ser lo pasar tras cuatro aos de experiencia
suficientemente significantes incluso cuando se laboral.
citan fuera de la Gua al Cuerpo de Conocimiento La Gua al cuerpo de Conocimiento de
del Software. Ingeniera del Software busca por
definicin ser selectivo en su seleccin
j) La descripcin de un rea de Conocimiento de temas y material de referencia
incluir una figura (en forma de rbol) asociado. La lista de material de
describiendo la descomposicin del referencia para cada rea de
conocimiento. Conocimiento debera de ser visto y ser
presentado como una seleccin
CRITERIOS Y REQUERIMIENTOS PARA LA DESCRIPCIN razonable y bien fundada y no como
DE TEMAS una lista definitiva.
Material de referencia adicional puede
a) Los temas necesitan solo ser descritos hasta un ser incluido en la lista de Lecturas

r
nivel apropiado para que el lector pueda Complementarias. Estas lecturas
seleccionar el material referenciado acorde a sus complementarias deben relacionarse con
necesidades. los temas en la descomposicin. Adems

do
deben comentarse en el conocimiento
CRITERIOS Y REQUERIMIENTOS PARA LA SELECCIN DE globalmente aceptado. No debera de
MATERIAL DE REFERENCIA haber una matriz entre el material de
referencia contenido en las Lecturas
a) Debe identificarse material de referencia Complementarias y los temas
especfico a cada tema. Los materiales de individuales.
referencia pueden cubrir mltiples temas.
e) Si se considera posible y rentable por el IEEE
b) El material de referencia propuesto pueden ser Computer Society, el material de referencia
captulos de libro, artculos de revista revisados, seleccionado ser publicado en la Web de la Gua
artculos de referencia revisados, reportes al Cuerpo de Conocimiento de la Ingeniera del
rra
tcnicos o de empresa revisados, o cualquier otro Software. Para facilitar esta tarea, se debera
tipo de artefactos como documentos Web. Deben referenciar materiales cuyo copyright ya
de estar disponibles y no ser confidenciales por pertenecen al IEEE Computer Society. Sin
naturaleza. Las referencias deberan de ser lo ms embargo, esto no debera considerarse como una
precisas posibles especificando los captulos o restriccin o una obligacin.
secciones relevantes.
f) Debe proporcionarse una matriz con los
c) El material de referencia propuesto debe de estar materiales de referencia versus temas
en Ingles.

d) Para cada rea de Conocimiento debe CRITERIOS Y REQUERIMIENTOS PARA LA


Bo

seleccionarse una un nmero de referencias IDENTIFICACIN DE LAS REAS DE CONOCIMIENTO DE


apropiado. Las siguientes guas deben usarse para LAS DISCIPLINAS RELACIONADAS
determinar el numero apropiado:
Se espera de los editores asociados de las reas de
Si el material referenciado estuviese Conocimiento identifiquen en una seccin aparte, que
escrito de manera coherente siguiendo la reas de Conocimiento de las Disciplinas Relacionadas
descomposicin propuesta y en un estilo son suficientemente relevantes a las reas de
uniforme (por ejemplo, en un nuevo Conocimiento de la Ingeniera del Software para
libro basado en la descripcin de las graduados con cuatro aos de experiencia.
reas de Conocimiento), el objetivo
debera de ser unas 500 pginas. Sin Esta informacin ser particularmente til y generara
embargo, este objetivo puede no ser dialogo entre la iniciativa de la Gua al cuerpo de
alcanzable en la seleccin de referencias Conocimiento de la Ingeniera del Software e iniciativas
debido a diferencias en estilo, hermanas responsables de definir el currculum de la
sobreposicin y redundancia entre los ingeniera del software y normas de comportamiento
materiales seleccionados. estndar.
La cantidad de material de referencia de
ser razonable si constituyese el material La lista de reas de Conocimiento de Disciplinas
de estudio para el rea de Conocimiento Relacionadas se puede encontrar en la Lista Base de
de un examen de licencia de ingeniera Disciplinas Relacionadas propuestas. Si se considera
necesario y va acompaado de una justificacin, los de proyectos es siempre responsable de determinar que es
especialistas de las reas de Conocimiento pueden apropiado a un proyecto dado.
proponer Disciplinas Relacionadas adicionales que no han
sido incluidas en la Lista Base de Disciplinas La Gua al Cuerpo de Conocimiento de la Ingeniera del
Relacionadas (ntese que una clasificacin de los temas de Software es un estndar IEEE.
las Disciplinas Relacionadas ha sido producido pero ser
publicado en la Web ms adelante como documento en En la reunin inicial en Mont Tremblant en 1998, el
progreso. Contctese con el equipo editorial para ms comit ejecutivo profesional defini generalmente
informacin). aceptado como conocimiento a ser incluido en el material
de estudio de un examen de licencia de ingeniera del
NDICE DE CONTENIDOS COMUNES software que un graduado con cuatro aos de licencia
debera de superar. Estas dos definiciones deben verse
Las descripciones de las reas de Conocimiento deberan como complementarias.
usar el siguiente ndice de contenidos:
Tambin se espera de los editores asociados de las reas

r
Introduccin de Conocimiento miren al futuro en su interpretacin de lo
Descomposicin de temas del rea de Conocimiento que es generalmente aceptado a da de hoy, pero lo que
(por claridad, creemos que esta seccin debera de se espera que sea generalmente aceptado en 5 aos.

do
estar situarse al principio y no en un apndice al final
del documento. Adems, debera de una figura
describiendo la descomposicin). Generalmente aceptado

Prticas utilizadas solamente en


Matriz de temas vs. Material de referencia
Prcticas tradicionales establecidas que
ciertos tipos de software
Referencias recomendadas para el rea de
Conocimiento descrita (por favor, no mezclarlas con son recomendadas por muchas
Especializado

las referencias usadas al escribir la descripcin del organizaciones.


rea de Conocimiento) Avanzados y de investigacin
Lista de Lecturas Complementarias
Practicas innovadoras probadas y usadas
CONOCIMIENTO solo por algunas organizaciones y
rra
QU QUEREMOS DECIR CON
GENERALMENTE ACEPTADO? conceptos que estn todava siendo
desarrollados y probados en
El Cuerpo de Conocimiento de la Ingeniera del Software organizaciones de investigacin
es un trmino que describe la suma de conocimiento
dentro de la profesin de la ingeniera del software. Sin
embargo, la Gua al Cuerpo de Conocimiento de la
Ingeniera del Software busca identificar y describir que LONGITUD EN LA DESCRIPCIN DE LAS REA DE
subconjunto de la ingeniera del software es generalmente CONOCIMIENTO
aceptado o, en otras palabras, el ncleo del cuerpo del
conocimiento. Para ilustrar mejor que conocimiento Actualmente, se espera que la longitud de las reas de
generalmente aceptado relativo a otros tipos de Conocimiento este sobre las 10 pginas usando el formato
Bo

conocimiento, la Figura 1 propone un borrador para de la Conferencia Internacional de la Ingeniera del


clasificar el conocimiento en un esquema con 3 categoras. Software. Esto incluye texto, referencias, apndices,
tablas, etc. Esto, por supuesto, no incluye los materiales de
El Project Management Institute en su Gua al Cuerpo de referencia. Este lmite no debera de ser visto como una
Conocimiento de la Gestin de Proyectos5 define restriccin u obligacin.
conocimiento generalmente aceptado como:
EL ROL DEL EQUIPO EDITORIAL
Generalmente aceptado significa que el conocimiento y
practicas descritas son aplicables a la mayora de los Alain Abran y James W. Moore son editores ejecutivos y
proyectos la mayor parte del tiempo, y que existe un responsables de mantener buenas relaciones con el IEEE
consenso extendido sobre su valor y utilidad. Computer Society, el comit ejecutivo profesional, el
Generalmente aceptado no significa que el conocimiento panel de control de cambios, el panel de expertos y la
y practicas descritas son o deberan de ser aplicadas estrategia general, aproximaciones a tomar, organizacin y
uniformemente a todos los proyectos; el equipo de gestin financiacin del proyecto.

Pierre Bourque y Robert Dupuis son los editores y


5
responsables de la coordinacin, operacin y logstica del
Ver A Guide to the Project Management Body of proyecto. Ms especficamente, los editores son los
Knowledge, Project Management Institute, Newton responsables del desarrollo del plan del proyecto y la
Square, PA 1996, 2000; Disponible en: especificacin de la descripcin del rea de conocimiento,
http://www.pmi.org/
coordinacin de los editores asociados de las reas de
Conocimiento, reclutamiento de revisores y de capitanear Este informe es la base de todo el proyecto. Define la
las revisiones, y tambin de los varios ciclos de revisin. estrategia general del proyecto, su razn de ser, y los
principios y procesos que fundan una lista inicial de reas
Los Editores son por tanto, los responsables de la de Conocimiento y Disciplinas Relacionadas.
coherencia de la Gua y de la identificacin y
establecimiento de los enlaces entre las reas de La versin actual se encuentra disponible en
Conocimiento. Los editores y editores asociados de las http://www.swebok.org/
reas de Conocimiento negociaran la resolucin de vacos
y solapamientos entre las reas de Conocimiento. J. W. Moore, Software Engineering Standards, A Users
Road Map, IEEE Computer Society Press, 1998.
IMPORTANTES DOCUMENTOS RELACIONADOS (EN
ORDEN ALFABTICO DEL PRIMER AUTOR) Este libro describe el mbito, roles, usos y las tendencias
de los estndares ms usados en la ingeniera del software.
P. Bourque, R. Dupuis, A. Abran, J. W. Moore, L. Tripp, Se concentra en actividades importantes de la ingeniera

r
and D. Frailey, A Baseline List of Knowledge Areas for del software calidad y gestin de proyectos, ingeniera
the Stone Man Version of the Guide to the Software de sistemas, fiabilidad y seguridad (prevencin de
Engineering Body of Knowledge, Universit du Qubec riesgos). El anlisis y reagrupamiento de colecciones de

do
Montral, Montral, February 1999. estndares le muestran al lector relaciones clave entre
estndares.
Basado en la versin Hombre de Paja, en las discusiones
y en las expectativas marcadas en la reunin inicial del Aunque la Gua al Cuerpo de Conocimiento de la
Comit Ejecutivo Profesional, en otros cuerpos del Ingeniera del Software no se trata del desarrollo de
conocimiento, y en los criterios definidos en este estndares en s mismo, debe considerarse muy
documento, propone una lnea base de 10 reas de especialmente en todo el proyecto la compatibilidad de
Conocimiento para la versin de prueba de la Gua al Gua con el conjunto de estndares de IEEE e ISO.
Cuerpo de Conocimiento de la Ingeniera del Software.
Por supuesto, esta lnea base puede evolucionar al tratarse IEEE Standard Glossary of Software Engineering
de un trabajo en progreso y segn se van identificando Terminology, Std 610.12-1990, IEEE, 1990.
rra
temas durante el transcurso del proyecto.
La lista de referencias para la terminologa es Merriam
Este documento est disponible en Websters Collegiate Dictionary (10th ed.), IEEE Std
http://www.swebok.org/ 610.12, y nuevas propuestas de definiciones si son
necesarias.
P. Bourque, R. Dupuis, A. Abran, J. W. Moore, y L. Tripp,
A Proposed Baseline List of Related Disciplines for the Information Technology Software Life Cycle Processes,
Stone Man Version of the Guide to the Software International std ISO/IEC 12207:1995(E), 1995.
Engineering Body of Knowledge, Universit du Qubec
Montral, Montral, February 1999 Este estndar es considerado clave en relacin a la
definicin de los procesos del ciclo de vida y ha sido
Basado en la versin Hombre de Paja, en las discusiones
Bo

adoptado por los dos principales organismos de


y en las expectativas marcadas en la reunin inicial del estandarizacin en la ingeniera del software: ISO/IEC
Comit Ejecutivo Profesional, en trabajos posteriores, este JTC1 SC7 y el comit de estndares de ingeniera del
documento propone la lnea base de las Disciplinas software de IEEE Computer Society. Adems, ha sido
Relacionadas y reas de Conocimiento dentro de estas designado como un estndar fundamental sobre el cual el
Disciplinas Relacionadas. Este documento ha sido envido Software Engineering Standards Committee (SESC) est
y discutido en el Comit Ejecutivo Profesional, y una lista actualmente armonizando toda su coleccin de estndares.
de reas de Conocimiento todava tienen que ser Este estndar una entrada fundamental para la versin
identificadas para ciertas Disciplinas Relacionadas. Los Hombre de Paja.
editores asociados sern informados de la evolucin de
este documento. Aunque no se persigue que la Gua al Cuerpo de
Conocimiento de la Ingeniera de Software sea totalmente
La versin actual se encuentra disponible en compatible con el estndar 12207, este estndar se
http://www.swebok.org/ mantiene como uno de los documentos clave para la
versin Hombre de Piedra, y debe prestarse un cuidado
P. Bourque, R. Dupuis, A. Abran, J. W. Moore, L. Tripp, especial en todo el proyecto el relacin a la compatibilidad
K. Shyne, B. Pflug, M. Maya, and G. Tremblay, Guide to de la guiad con el estndar 12207.
the Software Engineering Body of Knowledge - A Straw
Man Version, technical report, Universit du Qubec Merriam Websters Collegiate Dictionary (10th ed.).
Montral, Montral, September 1998.
Ver nota para de Std IEEE 610.12. Para asegurarse que la informacin contenida en la gua al
SWEBOK no se queda rpidamente obsoleta, por favor,
ESTILO Y GUAS TCNICAS evtese nombrar directamente nombres de herramientas y
productos. En su lugar, intente nombrar sus funciones. La
Las Descripciones de las reas de Conocimiento debera lista de productos y herramientas siempre puede ponerse
ajustarse al formato de las actas de la conferencia en un apndice.
internacional de la ingeniera del software (International
Conference in Software Engineering). Las plantillas estn Se espera que se detallen los acrnimos usados, se haga un
disponibles en: uso apropiado de los acrnimos, marcas, etc.
http://sunset.usc.edu/icse99/cfp /technical_papers.html

Las Descripciones de las reas de Conocimiento deberan


Se espera que las Descripciones de las reas de de ser escritas siempre en tercera persona.
Conocimiento sigan la gua de estilo del IEEE Computer
Society. Ver: EDICIN
http://www.computer.org/author/style/cs-style.htm

r
El Equipo Editorial y ESTILO Y GUAS TCNICAS
El formato preferido para la presentacin del trabajo es
Microsoft Word. Por favor, contctese al equipo editorial editores profesionales editaran las Descripciones de las

do
si esto no es posible. reas de Conocimiento. La edicin incluye correccin
(gramtica, puntuacin y capitalizacin), estilo
OTRAS GUAS DETALLADAS (adaptacin al estilo de las revistas de la Computer
Society), y edicin de contenido (flujo, significado,
Cuando se referencie la gua, recomendamos que se use el claridad, lenguaje directo y organizacin). La edicin final
ttulo completo Gua al SWEBOK en lugar de ser un proceso colaborativo entre el Equipo Editorial y
SWEBOK. los autores de los trabajos para alcanzar unas
Descripciones de las reas de Conocimientos concisas,
Por simplicidad, recomendamos a los editores asociados bien escritas y tiles.
de las reas de Conocimiento que no se usen pies de
pgina. Deberan de intentar incluir su contenido en el PUBLICACIN DEL COPYRIGHT
rra
cuerpo principal del documento.
Toda propiedad intelectual asociada a la Gua al Cuerpo de
Recomendamos usar en el texto referencias explicitas a Conocimiento de la Ingeniera del Software pertenecer al
estndares en lugar de insertar los nmeros que IEEE Computer Society. Los Editores Asociados a las
referencian a la bibliografa. Creemos que permiten al reas de Conocimiento firmaran un formulario sobre la
lector una mejor exposicin a la fuente y mbito del publicacin del copyright.
estndar.
Adems, la Gua al Cuerpo de Conocimiento de la
El texto acompaando las figuras y tablas debera de ser Ingeniera del Software estar gratuitamente a disposicin
autocontenido o tener suficiente texto. Esto permite al del pblico por parte del IEEE Computer Society en un
lector saber lo que significan las lecturas y tablas. sitio Web u otros medios.
Bo

Asegrese de usar informacin correcta (actual) en las Para ms informacin, consltese:


referencias (versiones, ttulos, etc.) http://www.computer.org/copyright.htm
Bo
rra
do
r
APNDICE B
EVOLUCIN DE LA GUA DEL CUERPO DE CONOCIMIENTO DE LA
INGENIERA DEL SOFTWARE

El plan de estudios para ingenieros del software para


INTRODUCCIN la educacin a distancia del IEEE Computer Society
tendr el mismo alcance y material de referencia.
Aunque la Gua al Cuerpo de Conocimiento de la
Ingeniera del Software es un hito al haber alcanzado un Aunque los objetivos de la educacin de grado
amplio consenso en el contenido de la disciplina de la difieren de los del desarrollo profesional, la unin de
ingeniera del software, no es final del proceso. La Gua la ACM e IEEE-CS para el desarrollo de planes de

r
del 2004, es simplemente la presente edicin de la Gua estudio de grado son bastante consistes con el alcance
que continuara evolucionando para alcanzar las de la Gua del SWEBOK.
necesidades de la comunidad de la ingeniera del software.

do
La planificacin de su evolucin no se ha completado El IEEE-CS Software Engineering Standards
todava, pero en esta seccin se proporciona un borrador. Committee (SESC) ha organizado su coleccin de
A la hora de escribir esto, el proceso ha sido endorsado estndares siguiendo las reas de Conocimiento del
por el Comit Ejecutivo Profesional y comunicado a la SWEBOK, y el IEEE Standards Association ha
Junta de Gobierno del IEEE Computer Society, pero ha publicado un CD-ROM que ya refleja esta
sido ni financiado ni implementado. organizacin.

STAKEHOLDERS ISO/IEC JTC1/SC7, la organizacin internacional de


estndares para ingeniera de sistemas e ingeniera
La amplia adopcin del SWEBOK ha generado una software, est adoptando la Gua del SWEBOK como
amplia comunidad de personas involucradas a parte de ISO/IEC Technical Report 19759 y armonizando su
rra
IEEE Computer Society. Existen un nmero de proyectos coleccin con los del IEEE.
dentro y fuera del IEEE Computer Society que estn
coordinando sus esfuerzos basndose su contenido en la El IEEE Computer Society Press, en cooperacin con
Gua del SWEBOK. Varias empresas, incluyendo alguna el SESC, est desarrollando una serie de libros
de los miembros del Comit Ejecutivo Profesional, han basndose en los estndares de la ingeniera del
adoptado la Gua para sus programas internos de software y de Gua del SWEBOK.
educacin. En un sentido ms amplio, la comunidad de
profesionales de la ingeniera del software y la comunidad El portal de Ingeniera del Software del IEEE
de acadmicos prestan atencin a la Gua del SWEBOK Computer Society (SE Online) ser organizado por
ayudando a definir el mbito de sus esfuerzos. Un notable las reas de Conocimiento de la Gua del SWEBOK.
grupo de certificacin del IEEE Computer Society
Certified Software Development Professional (CSDP)
Bo

El Prueba de Uso de la Gua del SWEBOK ha sido


por que el contenido del examen CSDP est
traducido al Japons. Se anticipa que la Versin 2004
completamente alineado con los contenidos de la Gua del
sea tambin traducida al Japons, Chino y
SWEBOK. posiblemente otros lenguajes.
Actualmente, el IEEE Computer Society y otras
EL PROCESO DE EVOLUCIN
organizaciones estn llevando a cabo un nmero de
proyectos que dependen de la evolucin de la Gua del
Obviamente, un proceso como de este calibre debe
SWEBOK:
evolucionar de manera abierta, consensuada, deliberada y
transparente tal que otros proyectos puedan sucesivamente
El examen CSDP, inicialmente desarrollado en coordinar sus esfuerzos. La estrategia actualmente
paralelo con la Gua del SWEBOK, evolucionar muy planificada es planificar la evolucin siguiendo intervalos
cercano al SWEBOK tanto en su alcance6 como en de tiempo especficos. De esta manera se permite al
sus materiales de referencia. SWEBOK y proyectos coordinados revisiones que
converjan en una fecha determinada. El intervalo
planificado es de cuatro aos.

6 Al comienzo del intervalo, consultando los proyectos


El CSDP aade una nueva rea de Conocimiento,
coordinados, se determinara un plan para los cuatro aos.
Practicas de Negocio e Ingeniera Econmica, a las 10
Durante el primer ao, tambin se determinaran cambios
reas de Conocimiento de la Gua del SWEBOK.
estructurales a la Gua del SWEBOK, (por ejemplo, Conocimiento revisadas o nuevas y alcanzar la
cambios en el nmero de reas de Conocimiento). aprobacin de los votantes. Aunque la gua del
Durante el segundo y tercer aos, la seleccin y SWEBOK no ser cambiada hasta el final del ciclo, el
tratamiento de los temas dentro del rea de Conocimiento material aprobado en cada ciclo anual se har
sern revisados. Durante el cuarto ao, el texto de las disponible gratuitamente.
descripciones de rea de Conocimiento ser revisado y se
seleccionaran referencias actualizadas. Al final del ciclo, el producto completo, SWEBOK Guide
2008, ser revisado y aprobado para su publicacin por el
El proyecto ser gestionado por un comit de voluntarios Panel de Gobierno de la Computer Society. Si se consigue
del IEEE Computer Society y representantes de proyectos soporte financiero, el producto estar disponible
coordinados. El comit sera responsable de los planes gratuitamente en la Web.
globales, coordinar todos los grupos interesados en el
proyecto, y la recomendacin sobre la aprobacin de la CAMBIOS ANTICIPADOS
versin final. El comit ser aconsejado por el SWEBOK
Advisory Committee (SWAC) compuesto por los grupos Ntese que la Gua del SWEBOK es un documento

r
que han adoptado la Gua del SWEBOK. En el pasado, la conservador por varias razones. Primero, se limita a
financiacin por parte de la empresa nos ha permitido que conocimiento caracterstico de la ingeniera del software;
el Gua del SWEBOK est disponible gratuitamente en la por lo tanto, la informacin de las disciplinas relacionadas

do
Web. Futura financiacin nos permitir continuar esta (incluso aquellas que aquellas que se les aplica la
prctica. ingeniera del software) son descartadas. Segundo, est
desarrollada y aprobada por un proceso consensuado, por
Cada uno de los cuatro aos incluir un ciclo de lo que no se almacena la informacin que no haya recibido
workshops, borrador, votacin y resolucin de la votacin. una aceptacin general. Tercero, el conocimiento
Un ciclo anual puede contener las siguientes actividades: contemplado como especializado en dominios especficos
es excluido. Finalmente y muy importante, la Gua
Un workshop, que organizado asociado a un congreso, contiene slo el conocimiento que es generalmente
especificara temas a tratar para el siguiente ao, aceptado. A veces es necesario en la actualidad el uso de
priorizar asuntos a tratar, recomendar como abordar tcnicas de validacin para obtener una aceptacin general
los asuntos a tratar y nominar a quienes llevarn a dentro de la comunidad.
rra
cabo dicha tarea. Este enfoque conservador es evidente en la actual Gua
Cada grupo haciendo borradores escribir y SWEBOK. Despus de 6 aos de trabajo, an contiene las
modificar la descripcin de un rea de 10 reas de Conocimiento. Una posible pregunta es si la
Conocimiento utilizando las recomendaciones de los seleccin de las reas de Conocimiento ser algn da
workshops y referencias disponibles. En el ltimo ao alterada. El plan de evolucin contempla algunos criterios
disponible las personas encargadas de los borradores para aadir un rea de Conocimiento nuevo o para
recomendarn referencias actualizadas para su cita en modificar el alcance de stas. En principio, el candidato
la gua del SWEBOK. Tambin se encargarn de debe ser ampliamente reconocido dentro y fuera de la
modificar los borradores de acuerdo a las comunidad de ingeniera del software como representacin
recomendaciones recibidas. de un rea distintiva de conocimiento y el conocimiento
Cada ciclo anual incluir votaciones en las revisiones. generalmente aceptado dentro del rea propuesta debe de
Bo

Los votantes revisarn los borradores de las estar suficientemente detallada y completa para ser tratada
descripciones de las reas de conocimiento y con el mismo mrito que aquellas que estn ya presentes
referencias recomendadas. La votacin ser abierta a en la Gua SWEBOK. En trmino operacionales, debe de
los miembros de la Computer Society y otros estar lo menos posible acoplado el rea de Conocimiento
participantes cualificados (los que no sean miembros propuesto de las reas ya existentes, y ese
tendrn que pagar para sufragar los gastos de la desacoplamiento debe de aadir un valor significante
votacin). Los que tengan el certificado CSDP sern sobre la taxonoma del conocimiento provisto por la Gua.
particularmente bienvenidos como miembros de las No obstante, simplemente por ser un rea transversal no
votaciones o como voluntarios en otros roles. tiene justificacin de ser tratada separadamente por
Un Comit de Resolucin de las Votaciones ser separar, en muchos casos, simplemente genera un
seleccionado por el comit de gestin para servir problema de solapamiento. En general, el crecimiento del
como intermediarios entre los encargados de los nmero total de reas de Conocimiento tiende a ser
borradores y los votantes. Su trabajo es determinar el evitado cuando hace que aumenten los esfuerzos de los
consenso para los cambios pedidos por el grupo de lectores por encontrar la informacin deseada.
votantes y asegurar que se implementan los cambios Aadiendo un tpico a rea de Conocimiento es ms fcil.
necesarios. En algunos casos, Comit de Resolucin En principio, debe de estar madura (o, por lo menos,
de las Votaciones puede proponer preguntas a los alcanzando la madurez rpidamente) y generalmente
votantes y usar sus respuestas para guiar las revisiones aceptada2. Los indicios para una aceptacin general
de los borradores. El objetivo de cada ao es alcanzar pueden ser encontrados en muchos sitios, incluyendo
consenso entre el grupo de votantes en las reas de currculos y estndares de ingeniera del software, y
ampliamente usado en libros de texto. Por supuesto, los incrementarn los temas a ser tratados por el taller anual,
temas se deben de ajustar a un nivel de licenciado con estableciendo el escenario para la revisin de la Gua
cuatro aos de experiencia3. SWEBOK. Nosotros esperamos proveer un foro pblico
Ese diseo incrementa el volumen de material en lnea para comentar por cualquier miembro de la
referenciado en la Gua SWEBOK. La cantidad total de comunidad de ingeniera del software y que sirva como un
material debera estar diseado para un nivel de licenciado punto para realizar actividades.
con cuatro aos de experiencia. Actualmente, el equipo
editorial considera apropiado la cantidad de 5000 pginas
como material de texto. Durante la evolucin de la Gua,
deber ser necesario el administrar las listas de del 2. Para la definicin de generalmente aceptado, usamos el que
material citado, por lo que las referencias son actualmente utiliza IEEE, en la Adopcin de un Estndar PMI (Una Gua del
accesibles, abasteciendo una cobertura apropiada de las Proyecto de la Administracin del Cuerpo del Conocimiento):
reas de Conocimiento, por medio de una considerada Generalmente aceptado significa que el conocimiento y las
prcticas descritas son aplicables a la mayora de los proyectos la
cantidad grande de material. mayor parte del tiempo, y hay un extendido consenso sobre su
valor y utilidad. Esto no significa que el conocimiento y las

r
Un ltimo tema es el rol que debe ser tomado por los prcticas deban de ser aplicadas de forma uniforme en todos los
usuarios de la Gua SWEBOK en su evolucin. El equipo proyectos sin considerar si son apropiados.
editorial cree que la continuada publicacin de 3. Por supuesto, esta especificacin particular est indicada en

do
comentarios es el combustible para dirigir la evolucin trminos relevantes en US. En otros pases, puede ser indicada de
de la Gua SWEBOK. Los comentarios publicados forma diferente.
rra
Bo
Bo
rra
do
r
APNDICE C
ASIGNACIN DE IEEE E ISO ESTNDARES A LAS REAS DE CONOCIMIENTO DEL SWEBOK

r
La siguiente tabla lista los estndares producidos por IEEE e ISO/IEC JTC1/SC7, al igual que otros estndares seleccionados de otras fuentes. Para cada estndar, se muestra
su nmero y ttulo. Adems, la columna de descripcin se proporciona un resumen sacado del propio estndar o de otros materiales introductorios. Cada uno de los estndares
se mapea a las reas de conocimiento del SWEBOK. En unos pocos casos como estndares de terminologa el estndar es aplicable a todas las reas de conocimiento; en
estos casos aparece una X en cada columna. En la mayora de los casos, cada estndar se fuerza un rea primaria de conocimiento marcada con una P y otras secundarias

do
marcadas con S. La lista est ordenada por el nmero de estndar sin tener en cuenta su categora (IEEE, ISO, etc.)

Gestin en Procesos de Herramientas


Nmero Requisitos Diseo Gestin de la la la y Mtodos en
Nombre del Construccin Pruebas del Mantenimiento
de Descripcin del del configuracin Ingeniera Ingeniera la Ingeniera Calidad
estndar del Software Software del Software
estndar Software Software del Software del del del Software
Software Software
IEEE Std Glosario Este estndar es un
610.12- Estndar IEEE glosario de la terminologa
1990 de la de la ingeniera del
X X X X X X X X X X
(R2002) Terminologa de software.
la Ingeniera del

rra
Software
IEEE Std Estndar IEEE Este estndar especifica el
730-2002 para los Planes formato y el contenido de
de los planes de
S S P
Aseguramiento aseguramiento de la
de la Calidad del calidad del software.
Software
IEEE Std Estndar IEEE Este estndar especifica el
828-1998 para los Planes contenido de un plan de
de Gestin de la gestin de la
Configuracin configuracin de un P S
del Software software junto con los
requisitos que especifican
las actividades.
IEEE Std Estndar IEEE Este estndar describe la
829-1998 de la forma y el contenido de un
Bo
Documentacin conjunto bsico de
de Prueba del documentacin para la S P S
Software. planificacin, ejecucin, y
la presentacin de las
pruebas del software.
IEEE Std Recomendacin Este documento
830-1998 IEEE para la recomienda el contenido y
Prctica de la caractersticas de una
Especificacin especificacin de P
de Requisitos del requisitos del software.
Software. Esquemas de ejemplo son
provistos.
Gestin en Procesos de Herramientas
Nmero Requisitos Diseo Gestin de la la la y Mtodos en
Nombre del Construccin Pruebas del Mantenimiento
de Descripcin del del configuracin Ingeniera Ingeniera la Ingeniera Calidad
estndar del Software Software del Software
estndar Software Software del Software del del del Software
Software Software
IEEE Std Estndar IEEE Este estndar provee un

r
982.1- de Diccionario conjunto de medidas para
1988 de Medidas para evaluar la fiabilidad de un
S S S S P
Producir producto software y para
Software Fiable. obtener fiabilidad de un
producto en desarrollo.

do
Este estndar describe con
cierta aproximacin las
IEEE Std Estndar IEEE pruebas unitarias del
1008- para las Pruebas software, as como los
S P S S
1987 Unitarias del conceptos y supuestos en
(R2003) Software los cuales estn basadas.
Tambin provee Fuentes
de informacin y una gua.
Este estndar describe los
procesos de verificacin y
validacin que son
utilizados para determinar
si un producto software de

rra
IEEE Std una actividad tiene en P
Estndar IEEE
1012- cuenta todos los requisitos
para la
1998 deseados y para
Validacin y
and determinar si el software
Verificacin del
1012a- satisface las necesidades
Software
1998 del cliente. El mbito
incluye anlisis,
evaluacin, revisin,
inspeccin, evaluacin de
los resultados y prueba de
los productos y procesos.

Prctica IEEE
Este documento
Recomendada
IEEE Std recomienda el contenido y
para las
1016- la organizacin de una P
Descripciones
1998 descripcin del diseo de
Bo
del Diseo del
un software.
Software

Este estndar define 5


tipos de revisiones del
software y los procesos
IEEE Std S S S S S P
Estndar IEEE para su ejecucin. Los
1028-
para la Revisin tipos de revisin incluyen
1997
del Software gestiones de las revisiones,
(R2002)
revisiones tcnicas,
inspecciones, visitas
guiadas y auditoras.
Gestin en Procesos de Herramientas
Nmero Requisitos Diseo Gestin de la la la y Mtodos en
Nombre del Construccin Pruebas del Mantenimiento
de Descripcin del del configuracin Ingeniera Ingeniera la Ingeniera Calidad
estndar del Software Software del Software
estndar Software Software del Software del del del Software
Software Software
Este estndar provee una

r
aproximacin uniforme de
Estndar IEEE la clasificacin de las
IEEE Std para la anomalas encontradas en
1044- Clasificacin de el software y su
S S S P
1993 Anomalas del documentacin. Incluye

do
(R2002) Software. listas de ayuda para la
clasificacin de las
anomalas de de la
informacin relacionada.
Este estndar provee una
terminologa consistente
Estndar IEEE para medir la
IEEE Std
para las Mtricas productividad del software
1045-
de Productividad y define la forma correcta P S
1992
del Software. de medir los elementos
(R2002)
que involucrados en la
productividad del
software.

rra
Estndar IEEE
para la Este estndar describe el
IEEE Std
Planificacin de formato y el contenido de
1058- P
la Gestin de un un plan de gestin de un
1998
Proyecto proyecto software.
Software
Este estndar describe la
Estndar IEEE
metodologa (abarcando
para la
IEEE Std todo el ciclo de vida) para
Metodologa de
1061- establecer los requisitos de S S S S P
las Mtricas de
1998 calidad, y para identificar,
Calidad del
implementar y validar las
Software
medidas correspondientes.
Este documento
recomienda un conjunto
de tiles prcticas que
Bo
Prctica IEEE pueden ser seleccionadas y
IEEE Std
recomendada aplicadas durante la
1062,
para la adquisicin del software. S P
Edicin
Adquisicin del Esto se ajusta a la
1998
Software adquisicin que incluye
desarrollo o modificacin
ms que a la propia
compra en s.
Gestin en Procesos de Herramientas
Nmero Requisitos Diseo Gestin de la la la y Mtodos en
Nombre del Construccin Pruebas del Mantenimiento
de Descripcin del del configuracin Ingeniera Ingeniera la Ingeniera Calidad
estndar del Software Software del Software
estndar Software Software del Software del del del Software
Software Software
IEEE Std Estndar IEEE Este estndar provee el

r
1063- para la mnimo de requisitos para
2001 Documentacin la estructura, contenido, y
de Usuario del formato de la P S
Software documentacin de usuario
(ambos impresos y de

do
forma electrnica).
IEEE Std Estndar IEEE Este estndar describe una
1074- para el Proceso aproximacin para
1997 del Ciclo de definicin del proceso del P
Vida del ciclo de vida del software.
Desarrollo.
IEEE Std Gua IEEE para Este estndar es el primero
1175.1- la Interconexin de las series planeadas de
2002 de Herramientas los estndares de
CASE. integracin de herramientas
CASE dentro del entorno
Clasificacin y de produccin de ingeniera P
Descripcin. del software. Esta parte

rra
describe conceptos
fundamentales e introduce
el resto de las partes.
IEEE Std Estndar IEEE Este estndar describe un
1219- para el proceso para el
P S
1998 Mantenimiento mantenimiento del software
del Software. y su gestin.
IEEE Std Estndar IEEE Este estndar describe las
1220- para la actividades de ingeniera de
1998 Aplicacin y sistemas y el proceso
Gestin de requerido en todo el ciclo
Procesos de de vida del sistema para el P
Ingeniera de desarrollo de sistemas que
Sistemas. permitan conocer las
necesidades, requisitos de
Bo
los clientes, y sus lmites.
IEEE Std Estndar IEEE Este estndar describe el
1228- para Planes mnimo contenido de un
1994 Seguros del plan para aspectos del S S S P
Software. software tales como el
desarrollo, obtencin,
mantenimiento, y la
retirada de un sistema
crtico-seguro.
Gestin en Procesos de Herramientas
Nmero Requisitos Diseo Gestin de la la la y Mtodos en
Nombre del Construccin Pruebas del Mantenimiento
de Descripcin del del configuracin Ingeniera Ingeniera la Ingeniera Calidad
estndar del Software Software del Software
estndar Software Software del Software del del del Software
Software Software
IEEE Std Gua IEEE para Este documento provee

r
1233, el Desarrollo de una gua en el desarrollo
Edicin los Requisitos de una especificacin de
1998 del Software. requisitos del software,
cubriendo la
identificacin,

do
organizacin,
P
presentacin, y la
modificacin de requisitos.
Tambin provee una gua
de las cualidades y
caractersticas de los
requisitos.

IEEE Std Estndar IEEE Este estndar define el


1320.1- para el Lenguaje lenguaje de modelado
1998 de Modelado IDEF0 usado para
Funcional representar decisiones,
Sintaxis y acciones, y actividades de
Semntica para una organizacin o

rra
S S S P
IDEF0. sistema.
IDEF0 puede ser usado
para definir los requisitos
en trminos de funciones
para ser presentadas en el
sistema deseado
IEEE Std Estndar IEEE Este estndar define dos
1320.2- para el lenguajes de modelado
1998 Modelado conceptual, llamado
Conceptual generalmente IDEF1X97
(IDEFObject). El lenguaje
S S P
Sintaxis y soporta la implementacin
Semntica del de bases de datos
Lenguaje para relacionales, de objetos, y
IDEF1X 97 modelos de objetos.
Bo
(IDEFobject)
IEEE Std Gua IEEE para Este documento provee la
1362- Informacin gua del formato y
1998 Tecnolgica contenido de un
documento de Concepto de
Definicin del Operaciones (ConOps),
Sistema describiendo las P
caractersticas de un
Documento de sistema propuesto desde
Concepto de un punto de vista del
Operaciones usuario.
(ConOps)
Gestin en Procesos de Herramientas
Nmero Requisitos Diseo Gestin de la la la y Mtodos en
Nombre del Construccin Pruebas del Mantenimiento
de Descripcin del del configuracin Ingeniera Ingeniera la Ingeniera Calidad
estndar del Software Software del Software
estndar Software Software del Software del del del Software
Software Software
IEEE Std Estndar IEEE Este estndar y sus

r
1420.1- para Informacin suplementos describen
1995, Tecnolgica informacin que las
1420.1a- libreras de reutilizacin
1996, y Reutilizacin del del software deben ser
1420.1b- Software capaces de cambiar segn

do
P
1999 activos de intercambio.
(R2002) Modelo de Datos
para la
Interoperabilidad
de las Libreras
de Reutilizacin
IEEE Std Estndar IEEE Este estndar provee los
1462- pasos para la evaluacin y
1998 // Adopcin del seleccin de las
ISO/IEC Estndar herramientas CASE.
14102:19 Internacional
95 ISO/IEC
14102:1995

rra
P
Informacin
Tecnolgica

Gua para la
Evaluacin y la
Seleccin de
Herramientas
CASE.
IEEE Std Estndar IEEE, Este estndar describe la
1465- Adopcin del calidad de los requisitos
1998 Estndar que se ajustan
// Internacional especficamente a los
ISO/IEC ISO/IEC paquetes software y a la
12119 12119:1994(E), gua de pruebas de los
Informacin paquetes contra los
Bo
Tecnolgica requisitos. S P

Paquete
Software

Requisitos de
Calidad y de
prueba.
Gestin en Procesos de Herramientas
Nmero Requisitos Diseo Gestin de la la la y Mtodos en
Nombre del Construccin Pruebas del Mantenimiento
de Descripcin del del configuracin Ingeniera Ingeniera la Ingeniera Calidad
estndar del Software Software del Software
estndar Software Software del Software del del del Software
Software Software
IEEE Std Recomendacin Este documento P

r
1471- Prctica IEEE recomienda un marco
2000 para la conceptual y contenido
Descripcin para la descripcin
S S
Arquitectnica arquitectnica de sistemas
de Sistemas intensivos de software.

do
Intensivos de
Software.
IEEE Std Gua IEEE Este documento es la
1490- adopcin IEEE del Cuerpo
1998 Adopcin del de la Gestin del Proyecto
Estndar PMI de Conocimiento definido
por el Instituto de Gestin
Una Gua para el del Proyecto. Identifica y P
Cuerpo de la describe al conocimiento
Gestin del generalmente aceptado con
Proyecto del lo que concierne a la
Conocimiento. gestin del proyecto.

rra
IEEE Std Estndar IEEE Este estndar provee el
1517- para la ciclo de vida de los
1999 Informacin procesos para la
Tecnolgica reutilizacin sistemtica
del software. Los procesos
Procesos del son idneos para ser S P
Ciclo de Vida utilizados con IEEE/EIA
del Software 12207.

Reutilizacin de
Procesos
IEEE Std Estndar IEEE Este estndar provee un
1540- para los Procesos proceso de ciclo de vida
2001 del Ciclo de para gestionar problemas
// Vida del del software. El proceso es
ISO/IEC Software idneo para ser usado con S P
Bo
16085:20 IEEE/EIA 12207.
03 Gestin de
problemas
Gestin en Procesos de Herramientas
Nmero Requisitos Diseo Gestin de la la la y Mtodos en
Nombre del Construccin Pruebas del Mantenimiento
de Descripcin del del configuracin Ingeniera Ingeniera la Ingeniera Calidad
estndar del Software Software del Software
estndar Software Software del Software del del del Software
Software Software
IEEE Std Prctica IEEE Este documento

r
2001- Recomendada recomienda prcticas para
2002 para Internet la ingeniera de las pginas
WWW para usar entornos
P
Ingeniera, de redes internas y
gestin y ciclo externas.

do
de vida del Sitio
Web
ISO Sistemas de Este estndar especifica
9001: Gestin de los requisitos para un
2000 Calidad sistema de gestin de
calidad organizacional,
Requisitos consiguiendo proveer
S P
requisitos de los
productos y mejorar la
satisfaccin del usuario.

ISO/IEC Ingeniera del Este estndar provee un

rra
9126- Software modelo para la calidad del
1:2001 producto software
Calidad del cubriendo la calidad
Producto interna, externa y la
calidad en uso. El modelo P S S S
Parte 1: tiene una taxonoma de las
Modelo de caractersticas definidas
calidad que el software debe
exhibir.

IEEE/EI Implementacin Este estndar provee una


A Industrial del marca de procesos usado
12207.0- Estndar en todo el ciclo de vida del
1996 // Internacional software.
ISO/IEC ISO/IEC
12207: 12207:1995,
Bo
1995 Estndar para la
X X X X X X X P X X
Informacin
Tecnolgica

Procesos del
Ciclo de Vida
del Software
Gestin en Procesos de Herramientas
Nmero Requisitos Diseo Gestin de la la la y Mtodos en
Nombre del Construccin Pruebas del Mantenimiento
de Descripcin del del configuracin Ingeniera Ingeniera la Ingeniera Calidad
estndar del Software Software del Software
estndar Software Software del Software del del del Software
Software Software
IEEE/EI Implementacin Este documento provee

r
A Industrial del una gua para registrar
12207.1 - Estndar informacin resultante de
1996 Internacional los procesos del ciclo de
ISO/IEC vida de IEEE/EIA
12207:1995, 12207.0.

do
Estndar para la
Informacin
Tecnolgica X X X X X X X P X X

Procesos del
Ciclo de Vida
del Software
Ciclo de vida
de la
Informacin

IEEE/EI Implementacin Este documento provee


A Industrial del una gua adicional para la
12207.2- Estndar implementacin del ciclo

rra
1997 Internacional de vida de los procesos de
ISO/IEC IEEE/EIA 12207.0.
12207:1995,
Estndar para la
Informacin
Tecnolgica X X X X X X X P X X

Procesos del
Ciclo de Vida
del Software

Consideraciones
en la
Implementacin
IEEE Std Adopcin IEEE Este estndar describe los
Bo
14143.1- de ISO/IEC conceptos fundamentales
2000 // 14143-1:1998 de una clase de medida
ISO/IEC colectiva conocida como
14143- Informacin tamao funcional.
1:1998 Tecnolgica

Medida del
Software P S S S

Medida del
Tamao
Funcional

Parte 1:
Definicin de
Conceptos
Gestin en Procesos de Herramientas
Nmero Requisitos Diseo Gestin de la la la y Mtodos en
Nombre del Construccin Pruebas del Mantenimiento
de Descripcin del del configuracin Ingeniera Ingeniera la Ingeniera Calidad
estndar del Software Software del Software
estndar Software Software del Software del del del Software
Software Software
ISO/IEC Informacin Este documento provee

r
TR Tecnolgica una gua que establece los
14471:19 procesos y actividades que
99 Ingeniera del pueden ser utilizadas en la
Software adopcin de la tecnologa
P
CASE.

do
Guas para la
Adopcin de
herramientas
CASE
ISO/IEC Informacin La serie ISO/IEC 14598 da
14598 Tecnolgica una visin de los procesos
(Seis de evaluacin del producto
partes) Evaluacin del software y nos ofrece una
producto gua y los requisitos
Software necesarios para la P
evaluacin organizacional
o del nivel del proyecto.
Los estndares nos ofrecen
mtodos de medida,

rra
valoracin y evaluacin.
ISO/IEC Informacin Este estndar da ms
14764:19 Tecnolgica detalle del proceso de
99 mantenimiento ofrecido
Mantenimiento por ISO/IEC 12207.
del Software Provee una gua de P
implementacin de los
requisitos de ese proceso.

ISO/IEC Informacin Este Estndar


15026:19 Tecnolgica Internacional introduce los
98 conceptos de los niveles y
Niveles de requisitos de integridad del
Integridad del software. Define los
Bo
Software y del conceptos asociados con
Sistema los niveles de integridad, S S P
define los procesos para
determinar los niveles de
integridad y los requisitos
de integridad software, y
establece los requisitos en
cada proceso.
Gestin en Procesos de Herramientas
Nmero Requisitos Diseo Gestin de la la la y Mtodos en
Nombre del Construccin Pruebas del Mantenimiento
de Descripcin del del configuracin Ingeniera Ingeniera la Ingeniera Calidad
estndar del Software Software del Software
estndar Software Software del Software del del del Software
Software Software
Informacin

r
Tecnolgica
ISO/IEC Este documento es una
TR Gua para gua para el uso de
P
15271:19 ISO/IEC 12207 ISO/IEC
98 (Procesos del 12207.

do
Ciclo de Vida
del Software)
Ingeniera de
Este estndar nos ofrece en
Sistemas
ISO/IEC marco de procesos usados

15288:20 a lo largo del ciclo de vida P
Procesos del
02 de los sistemas hechos por
Ciclo de Vida
el hombre.
del Sistema
ISO/IEC
Este documento tcnico
TR
(ahora est siendo revisado
15504
Ingeniera del como un estndar) nos
(9 partes)
Software ofrece los requisitos para
y la
los mtodos que nos P

rra
Preparaci
Proceso de permiten valorar los
n de
Valoracin procesos para mejorar los
IS 15504
procesos o la capacidad de
(5
determinacin.
partes)
Ingeniera del Este estndar nos ofrece
Software un proceso de ciclo de vida
ISO/IEC
para la medicin de
15939:20 S P S
Proceso de software. El proceso se
02
Medida del ajusta para ser usado con
Software IEEE/EIA 12207.
Ingeniera del Este estndar describe el
Software Mtodo de Medicin de
Tamao Funcional
ISO/IEC
COSMIC-FFP COSMIC-FFP, un mtodo
19761:20 P S S S
Mtodo de de medicin de tamao
Bo
03
medicin del funcional conforme a los
tamao requisitos de ISO/IEC
funcional. 14143-1.
Ingeniera del
Software

Este estndar describe el
IFPUG 4.1
Cmputo de Puntos de
Mtodo de
ISO/IEC Funcin Desajustado de
medida del
20926:20 IFPUG 4.1, un mtodo que P S S S
tamao funcional
03 mide el tamao funcional
desajustado
conforme a los requisitos

de ISO/IEC 14143-1.
Manual de
Prcticas de
Cmputo
Gestin en Procesos de Herramientas
Nmero Requisitos Diseo Gestin de la la la y Mtodos en
Nombre del Construccin Pruebas del Mantenimiento
de Descripcin del del configuracin Ingeniera Ingeniera la Ingeniera Calidad
estndar del Software Software del Software
estndar Software Software del Software del del del Software
Software Software
ISO/IEC Ingeniera del Este estndar describe el

r
20968:20 Software Anlisis de Puntos de
02 Funcin Mk II, un mtodo
Anlisis de de medicin del tamao
Puntos de funcional conforme a los P S S S
Funcin Mk II requisitos de ISO/IEC

do
Manual de 14143-1.
Prcticas de
Cmputo
ISO/IEC Ingeniera del Este estndar provee una
90003 Software y serie de pasos para la
Sistemas organizacin en la
aplicacin de ISO
Pasos para la 9001:2000 para la
S S
Aplicacin de adquisicin, suministro,
ISO desarrollo, operacin, y
9001:2000 al mantenimiento del
Software del software del ordenador.
Ordenador

rra
Bo
Bo
rra
do
r
APNDICE D
CLASIFICACIN DE CONTENIDOS ACORDE A LA TAXONOMA DE
BLOOM

INTRODUCCIN por una por una ingeniera del software que


trabaja en un grupo especfico, como puede
La taxonoma de Bloom1 es una clasificacin de ser un equipo de gestin de la configuracin
fines educativos cognitivos ampliamente del software. Obviamente, como ingeniera
conocidos y usados. Atendiendo a la ayuda de del software requiere o necesita alcanzar
las personas que desean usar la Gua como niveles muy altos en taxonoma en el rea

r
herramienta en la definicin del material usado especfica de su grupo.
en el curso, currculo universitario, criterios de
acreditacin en el programa universitario, Un ingeniero del software con cuatro aos

do
descripcin de trabajos, como rol descriptivo de experiencia est an en el principio de su
dentro un proceso de definicin de ingeniera del carrera y le puede ser asignado la gestin de
software, programa de prueba profesional y va una seria de deberes, o por lo menos, unos
de desarrollo profesional, y otras necesidades, mayores esfuerzos. Los tpicos relacionados
que los niveles de la taxonoma de Bloom para con la Gestin no se les asigna prioridad en
los tpicos de la Gua SWEBOK son propuestos las evaluaciones propuestas. Por la misma
en este apndice para graduados en ingeniera razn, los niveles de la taxonoma tienden a
del software con unos cuatro aos de ser menores para un temprano ciclo de vida
experiencia. Un graduado en ingeniera del de contenidos tales como los relacionados
rra
software con al menos cuatro aos de con los requisitos del software, ms que los
experiencia es en esencia el objetivo fijado en la contenidos de ndole tcnico dentro del
Gua SWEBOK por el cual es aceptable el diseo, construccin o prueba del software.
conocimiento contenido en dicha gua (Lea la
Introduccin de la Gua SWEBOK). Por lo tanto, las evaluaciones pueden ser
adaptadas por ms ingenieros del software
Desde este Apndice slo se hace referencia a lo snior o por ingenieros del software
que puede ser considerado como conocimiento especializados en ciertas reas de
generalmente aceptado. Es muy importante conocimiento, en el que no hay ningn
Bo

recordar que la ingeniera del software debe ser contenido que d un mayor nivel de
aprendida de una manera ms sustancial que esta taxonoma que el Anlisis. ste es
categora de conocimiento. Adems del consistente con la aproximacin dada en la
conocimiento generalmente aceptado, un SEEK (Software Engineering Education
graduado de ingeniera del software con cuatro Bosy of Knowledge), donde no hay ningn
aos de experiencia debe de poseer algunos contenido asignado de mayor nivel de
elementos de Disciplinas Relacionadas, como taxonoma que Aplicacin2. El propsito de
tambin algunos elementos de ciertos SEEK es definir un cuerpo de educacin de
conocimientos especficos, avanzados, hasta la ingeniera del software de conocimiento
posibilidad de estudiar e investigar algunas apropiado para guiar el desarrollo del
materias (Mire la Introduccin de la Gua currculum de un estudiante universitario de
SWEBOK). Los siguientes supuestos son ingeniera del software. Aunque
creados cuando se especificaron los niveles notablemente distinto en trminos de
propuestos de la taxonoma. alcance, SEEK y la Gua SWEBOK son
muy parecidos.3
Las evaluaciones son propuestas por una
ingeniera del software generalista y no
La taxonoma de Bloom del Dominio Cognitivo 2. Mire la Fuerza de la Tarea Conjunta en el Currculum de
Cmputo Sociedad Computacional IEEE / Asociacin para la
propuesto en 1956 tiene seis niveles. La tabla 1 4 Maquinaria Computacional, Currculum de Cmputo Volumen
presenta estos niveles y las palabras claves de Ingeniera del Software Borrador pblico 1 Ingeniera del
asociadas con cada nivel. Software de Currculum Computacional, 2003:
http://sites.computer.org/ccse/.
3. Mire P.Bourque, F. Robert, J. M. Lavoie, A. Lee, S. Trudel,
T. Lethbridge, Gua para el Conocimiento del Cuerpo de la
Educacin de la Ingeniera del Software (SEEK) Un Mapeo
Preliminar. Taller de Tecnologa del Software y Conferencia de
la Prctica de la Ingeniera (STEP 2002), 2002, pp. 8-35.
1. B. Bloom (ed.), Taxonoma de los Objetivos Educativos: La 4. Tabla adaptada de
Clasificacin de las Metas Educativas, Mackay, 1956. http://www.nwlink.com/~donclark/hrd/bloom.html.

r
Tabla 1 Taxonoma de Bloom
Nivel de Taxonoma de Bloom Palabras claves asociadas
Conocimiento: Almacenamiento de la informacin Define, describe, identifica, conoce, etiqueta, listas,

do
ajustes, nombres, esquemas, memorias,
reconocimiento, reproduce, selecciona, estados
Comprensin: Entender el significado, traduccin, Comprende, convierte, defiende, distingue, estima,
interpolacin e interpretacin de las instrucciones y explica, prolonga, generaliza, da ejemplos, deduce,
problemas; plantea un problema en una de las propias interpreta, ilustra, predice, reescribe, resume, traduce.
palabras.
Aplicacin: Utiliza un concepto en una nueva situacin Aplica, cambia, computa, construye, demuestra,
o usa una abstraccin espontnea; aplica lo que fue descubre, manipula, modifica, opera, predice, prepara,
aprendido en la clase en situaciones novedosas en el muestra, resuelve y usa.
lugar del trabajo.
rra
Anlisis: Separa material o conceptos en partes que su Analiza, descompone, compara, contrasta, diagramas,
estructura organizacional puede ser comprendida; destruye, diferencia, discrimina, distingue, identifica,
distingue entre hechos e interferencias. ilustra, infiere, esquematiza, relata, selecciona, separa.
Sntesis: Crea una estructura o prototipo de una serie Categoriza, combina, compila, compone, crea, idea,
de diversos elementos; une partes para crear un disea, explica, genera, modifica, organiza, planifica,
conjunto, con nfasis en la creacin de una nueva cambia de lugar, reestructura, relata, reorganiza, revisa,
estructura o significado. reescribe, resume, cuenta, escribe.
Evaluacin: Hace un juicio sobre el valor de las ideas o Tasa, compa, concluye, contrasta, critica, defiende,
materiales. describe, discrimina, evala, explica, interpreta, justifica,
relata, resume, acepta.
Bo
La separacin de contenidos en las tablas no coincide
perfectamente con la separacin de las reas de
Conocimiento. La evaluacin para este Apndice fue
preparado mientras algunos comentarios an llegaban.

Finalmente, mantn por favor en tu mente que la


evaluacin de este Apndice debe ser visto
definitivamente como una propuesta para ser
desarrollada y validada.

r
do
rra
Bo
REQUISITOS DEL SOFTWARE5 DISEO SOFTWARE

taxonoma
taxonoma

Nivel de
Nivel de
Separacin
Desglose dedecontenidos
contenidos Desglose de contenidos

1. Requisitos fundamentales del software 1. Especificacin de requisitos


Definicin de requisitos del software C Conceptos generales de diseo C
Requisitos del producto y proceso C Contexto del diseo software C
Requisitos funcionales y no funcionales C Proceso del diseo software C
Propiedades emergentes C Tcnicas de habilitacin AN

r
Requisitos cuantificables C 2. Temas clave en el diseo software
Requisitos del software y del sistema C Concurrencia AP
Manejo y control de eventos AP

do
2. Requisitos del proceso
Modelos del proceso C Distribucin de componentes AP
Actores del proceso C Manejo de errores y excepciones y falta AP
Gestin y soporte del proceso C de tolerancia
Calidad y mejora del proceso C Interaccin y presentacin AP
3. Obtencin de requisitos Persistencia de los datos AP
Fuentes de los requisitos C 3. Estructura y arquitectura del software
Tcnicas de obtencin AP Estructuras y puntos de vistas de la AP
arquitectura
4. Requisitos de anlisis
rra
Estilos de arquitectura (Patrones de AN
Clasificacin de los requisitos AP
arquitectura)
Modelo conceptual AN
Patrones de diseo (Patrones de AN
Diseo arquitectnico y requisitos de AN
arquitectura)
cuota
Familias de programas y de marcos de C
Requisitos de negociacin AP
trabajo
5. Especificacin de requisitos
4. Anlisis y evaluacin de la calidad del
Documento de definicin del sistema C
diseo software
Especificacin de los requisitos del C
Atributos de calidad C
sistema
Tcnicas de anlisis y evaluacin de la AN
Bo

Especificacin de los requisitos del AP


calidad
software
Medidas C
6. Especificacin de requisitos
5. Notaciones de diseo del software
Anlisis de requisitos AP
Descripciones estructurales (Esttico) AP
Prototipado AP
Descripciones del comportamiento AP
Validacin del modelo C
(Dinmico)
Test de aceptacin AP
6. Mtodos y estrategias del diseo del
7. Especificacin de requisitos software
Naturaleza iterativa de los requisitos del C Estrategias generales AN
proceso
Diseo orientado a funciones AP
Gestin de cambio AP (Estructurado)
Atributos de los requisitos C
Diseo orientado a objetos AN
Localizacin de requisitos AP Diseo centrado en la estructura de C
Requisitos de medida AP datos
5. K: Conocimiento, C: Comprensin, AP: Aplicacin, AN: Diseo basado en componentes (CBC) C
Anlisis, E: Evaluacin, S: Sntesis. Otros mtodos C
CONSTRUCCIN DEL PRUEBAS DEL SOFTWARE
SOFTWARE

taxonoma
taxonoma

Nivel de
Nivel de
Desglose de contenidos Desglose de contenidos

1. Fundamentos de la construccin del 1. Fundamentos de las pruebas del software


software Terminologa relacionada con las C
Minimizacin de la complejidad AN pruebas
Contenidos claves AP

r
Anticipacin al cambio AN
Construyendo para verificar AN Relacin de las pruebas con otras C
Estndares en la construccin AP actividades

do
2. Gestin de la construccin 2. Niveles de pruebas
Mtodos de construccin C El objetivo de las pruebas AP
Plan de construccin AP Los fines de probar AP
Medidas de construccin AP 3. Tcnicas de pruebas
3. Consideraciones prcticas Basado en la intuicin y experiencia del AP
Fuentes de los requisitos C probador
Tcnicas de obtencin AP Basados en la especificacin AP
4. Requisitos de anlisis Basados en el cdigo AP
Basados en los fallos AP
rra
Diseo de la construccin AN
Lenguajes de la construccin AP Basados en el uso AP
Codificacin AN Basados en la naturaleza de la AP
Pruebas de la construccin AP aplicacin
Calidad de la construccin AN Seleccionando y combinando tcnicas AP
Integracin AP 4. Medidas relacionadas con las pruebas
Evaluacin de un programa bajo AN
pruebas
Evaluacin de las pruebas desarrolladas AN
5. Proceso de prueba
Bo

Lo que la gestin incumbe C


Actividades de las pruebas AP
MANTENIMIENTO DEL GESTIN DE LA
SOFTWARE CONFIGURACIN DEL
SOFTWARE

taxonoma

taxonoma
Nivel de

Nivel de
Desglose de contenidos Desglose de contenidos

1. Fundamentos del mantenimiento del 1. Gestin de los procesos SCM


software Contexto organizacional para SCM C

r
Definiciones y terminologa C Restricciones y gua para SCM C
Naturaleza del mantenimiento C Planificacin para SCM
Necesidad del mantenimiento C Organizacin y responsabilidades AP

do
Mayora de los costes del C SCM
Esquemas y recursos SCM AP
mantenimiento
Seleccin de herramientas e AP
Evolucin del software C implementacin
Categoras del mantenimiento AP Control del C
2. Contenidos claves en el mantenimiento del vendedor/subcontratista
software Control de la interface C
Tcnico Plan de gestin de la configuracin del C
Comprensin limitada C software
rra
Pruebas AP Gestin de la configuracin de la vigilancia
Anlisis de impacto AN del software
Mantenibilidad AN Medicin y medidas SCM AP
Auditoras de SCM C
Temas de gestin
2. Identificacin de la configuracin del
Alineacin con asuntos C
software
organizacionales
Identificacin de los elementos a ser
Personas C controlados
Asuntos de procesos C Configuracin del software AP
Organizacional C Elementos de la configuracin del AP
Estimacin del coste de mantenimiento software
Bo

Estimacin del coste AP Relaciones de los elementos de la AP


Modelos parametrizados C configuracin del software
Experiencia AP Versiones del software AP
Medida del mantenimiento del software AP Lnea base AP
3. Proceso de mantenimiento Elementos de la configuracin de AP
la adquisicin del software
Modelos de procesos de mantenimiento C
Librera software C
Actividades de mantenimiento
3. Control de la configuracin del software
Actividades de unicidad AP Solicitacin, evaluacin y aprobacin de
Actividades de soporte AP los cambios software
4. Tcnicas para el mantenimiento Tabla de control de la AP
Comprensin del programa AN configuracin del software
Reingeniera C Proceso de peticin del cambio AP
Ingeniera inversa C software
Implementacin de los cambios software AP
Desviaciones y renuncias C
4. Informe del estado de la configuracin
software
Informacin del estado de la configuracin C
del software
Reporte del estado de la configuracin del AP
software
5. Auditora de la configuracin del software
Auditora de la configuracin funcional del C
software
Auditora de la configuracin fsica del C
software
Proceso de auditora de en la lnea base del C
software
5. Gestin de la salida al mercado y entrega
del software

r
Construccin del software AP
Gestin de la venta al mercado del
software

do
rra
Bo
GESTIN DE LA INGENIERA PROCESO DE INGENIERA DEL
DEL SOFTWARE SOFTWARE

taxonoma
taxonoma

Nivel de
Nivel de
Desglose de contenidos Desglose de contenidos

1. Iniciacin y alcance de la definicin 1. Proceso de implementacin y cambio


Determinacin y negociacin de los AP Infraestructura del proceso
requisitos Grupo de procesos de C

r
Anlisis de viabilidad AP ingeniera del software
Proceso para el anlisis y revisin del C Factora de experiencia C
software Actividades AP

do
2. Planificacin del proyecto software Modelos para el proceso de K
Proceso de planificacin C implementacin y cambio
Determinacin de las entregas AP Consideraciones prcticas C
Esfuerzo, programa y estimacin de AP 2. Definicin del proceso
coste Modelos de ciclo de vida AP
Asignacin de recursos AP Procesos de ciclo de vida del software C
Gestin de problemas AP Notaciones para las definiciones del C
Gestin de la calidad AP proceso
Proceso de adaptacin C
rra
Plan de gestin C
3. Difusin del proyecto software Automatizacin C
Implementacin de planes AP 3. Valoracin del proceso
Gestin del contrato de proveedores C Modelos de valoracin del proceso C
Implementacin de procesos de AP Mtodos de valoracin del proceso C
medicin 4. Medicin del proceso y del producto
Proceso de monitoreo AN Medicin del proceso software AP
Proceso de control AP Medicin del producto software AP
Informando AP Medicin del tamao AP
4. Revisin y evaluacin Medicin de la estructura AP
Bo

Determinacin de los requisitos de AP Medicin de la calidad AP


satisfaccin Resultados de las mediciones de la AN
Revisin y evaluacin del rendimiento AP calidad
5. Cierre Modelos de informacin del software
Determinacin del cierre AP Modelo de construccin AP
Actividades del cierre AP Modelo de implementacin AP
6. Medicin de la ingeniera del software Tcnicas de medicin
Establecimiento y mantenimiento de las C Tcnicas analticas AP
mediciones Tcnicas de punto de referencia C
Plan para el proceso de medicin C
Realizacin del proceso de medicin C
Evaluacin de la medicin C
MTODOS Y HERRAMIENTAS CALIDAD DEL SOFTWARE
DE INGENIERA DEL
SOFTWARE

taxonoma
taxonoma

Nivel de
Nivel de
Desglose de contenidos Desglose de contenidos

1. Herramientas software 1. Fundamentos de la calidad del software


Herramientas de requisitos del software AP tica y cultura de la ingeniera del AN
Herramientas de diseo del software AP software

r
Herramientas de construccin del AP Valor y coste de la calidad AN
software Caractersticas y modelos de la calidad
Herramientas de pruebas del software AP Calidad del proceso software AN

do
Herramientas de mantenimiento del AP Calidad del producto software AN
software Mejora de la calidad AP
Herramientas del proceso de ingeniera AP 2. Procesos de gestin de la calidad del
del software software
Herramientas de calidad del software AP Aseguramiento de la calidad del AP
Herramientas de gestin de la AP software
configuracin del software Verificacin y validacin AP
Herramientas de gestin de la AP Revisin y auditora
ingeniera del software Inspecciones AP
rra
Herramientas para otros diversos AP Revisiones minuciosas AP
asuntos Revisin de la funcionalidad, AP
2. Mtodos de ingeniera del software entradas y salidas del software
Mtodos heursticos AP Pruebas AP
Notaciones y mtodos formales C Auditoras C
Mtodos de prototipado AP 3. Consideraciones prcticas
Mtodos para otros diversos asuntos C Aplicacin de los requisitos de la
calidad
Nivel de criticidad de los C
Bo

sistemas
Dependencia C
Integridad de los niveles del C
software
Caracterizacin imperfecta AP
Tcnicas de gestin de la calidad del
software
Tcnicas estticas AP
Tcnicas intensivas de personas AP
Tcnicas analticas AP
Tcnicas dinmicas AP
Medicin de la calidad del software AP
Bo
rra
do
r

También podría gustarte