Documente Academic
Documente Profesional
Documente Cultură
Conocimiento
Versión 2004
SWEBOK ®
© IEEE - 2004 Versión ® SWEBOK es una marca de servicio oficial del IEEE
© IEEE - 2004 Versión
Guía de los Fundamentos de Ingeniería de Software
Conocimiento
2004 Versión
SWEBOK ®
editores ejecutivos
Alain Abran, Escuela de Tecnología Superior
James W. Moore, El MITRE Corp.
editores
Pierre Bourque, Escuela de Tecnología Superior
Robert Dupuis, Universidad de Quebec en Montreal
Proyecto campeon
Leonard L. Tripp, Presidente del Comité de Prácticas Profesionales,
IEEE Computer Society (2001-2003)
http://computer.org
© IEEE - 2004 Versión ® SWEBOK es una marca de servicio oficial del IEEE
Biblioteca del Congreso de datos Catalogación en la Publicación
2001005442
Copyright © 2004 por el Instituto de Ingenieros Eléctricos y Electrónicos, Inc. Todos los derechos reservados.
Derechos de autor y reimpresión Permisos: Este documento puede ser copiado, en su totalidad o en parte, en cualquier forma o por cualquier medio, como es, o con alteraciones, siempre
que (1) las alteraciones están claramente marcadas como alteraciones y (2) este aviso de copyright está incluido sin modificar en cualquier dupdo. Cualquier otro uso o distribución de este
documento queda prohibida sin la previa autorización expresa de la IEEE.
Se utiliza este documento con la condición de que indemnizar y mantener indemne IEEE de cualquier y toda responsabilidad o daños a sí mismo oa su hardware o software, o de
terceros, incluyendo los honorarios de abogados, costas judiciales y otros costos y gastos relacionados, que surjan para el uso de este documento, independientemente de la causa de
dicha responsabilidad.
IEEE hace que este documento disponible en "TAL CUAL" y no garantiza, expresa o implícita, AS A LA EXACTITUD, CAPACIDAD, COMERCIABILIDAD eficiencia o funcionamiento
de este DOCUMENTO. En ningún caso, IEEE RESPONSABLE DE CUALQUIER GENERAL, consecuente, indirecto incidental, ejemplar, o daños especiales, EVEN IF IEEE HA
ADVERTIDO DE LA posibilidad de tales daños.
A completar
Apéndice SER VOLUTION DE LA GRAMO UÍA ................................................. .............................. B-1 A PÉNDICE California sIGNACIÓN
DE IEEE Y ISO S OFTWARE mi NGENIERÍA S NORMAS PARA
SWEBOK K ONOCIMIENTO UN REAS ................................................. ..................... C-1
UN PÉNDICE corriente continua CLASIFICACIÓN DEL T OPICS UN egún segundo TELAR ' S T AXONOMY ................ D-1
En esta guía, el IEEE Computer Society establece por primera vez una línea de base para el conjunto de conocimientos para el campo de la
ingeniería de software, y el trabajo cumple parcialmente la responsabilidad de la sociedad para promover el avance de la teoría y la práctica en este
campo. De este modo, la Sociedad se ha guiado por la experiencia de disciplinas con historias más largas, pero no estaba vinculado por sus problemas
o sus soluciones.
Cabe señalar que la Guía no pretende definir el conjunto de conocimientos, sino más bien para servir como un compendio y guías para el conjunto de
conocimientos que se ha venido desarrollando y evolucionando en las últimas cuatro décadas. Por otra parte, este conjunto de conocimientos no es estática. los Guía
debe, necesariamente, desarrollar y evolucionar a medida que madura la ingeniería de software. Sin embargo, constituye un valioso elemento de la infraestructura
de la ingeniería de software.
En 1958, John Tukey, el estadístico de renombre mundial, acuñó el término software. El termino Ingeniería de software
se utilizó en el título de una conferencia de la OTAN celebrada en Alemania en 1968. El IEEE Computer Society publicó por primera vez su
Las transacciones en Ingeniería de Software en 1972. El comité establecido en la IEEE Computer Society para el desarrollo de estándares de
ingeniería de software fue fundada en 1976.
La primera visión integral de la ingeniería de software para salir de la IEEE Computer Society fue resultado de un esfuerzo dirigido por Fletcher Buckley para
desarrollar el estándar IEEE 730 para el aseguramiento de la calidad del software, que se completó en
1979. El propósito de la norma IEEE Std 730 era proporcionar uniformes, requisitos mínimos aceptables para la preparación y contenido de los planes de
aseguramiento de la calidad del software. Esta norma fue influyente en la realización de las normas de desarrollo de los siguientes temas: gestión de
configuración, pruebas de software, requisitos de software, diseño de software, y la verificación y validación de software.
Durante el periodo 1981-1985, la IEEE Computer Society llevó a cabo una serie de talleres sobre la aplicación de las normas de ingeniería de software.
Estos talleres profesionales involucrados compartan sus experiencias con las normas existentes. Los talleres también se llevaron a cabo sesiones de
planificación para las futuras normas, incluyendo uno que incluya las medidas y las métricas para los productos y procesos de ingeniería de software. La
planificación también resultó en IEEE Std 1002, Taxonomía de Estándares de Ingeniería de Software (1986), que proporciona una nueva visión holística de la
ingeniería de software. La norma describe la forma y el contenido de una taxonomía estándares de ingeniería de software. Se explican los diferentes tipos de
estándares de ingeniería de software, sus relaciones funcionales y externos, y el papel de las diversas funciones que participan en el ciclo de vida del software.
En 1990, se inició la planificación de una norma internacional con una visión global. La planificación se centró en la conciliación de los puntos de vista del
proceso de software de IEEE Std 1074 y la norma revisada 2167A de EE.UU. Departamento de Defensa. La revisión fue finalmente publicado como DoD Std 498.
La norma internacional se completó en 1995 con la designación, ISO / IEC12207, y se le dio el título de estándar para los procesos de ciclo de vida del software.
Std ISO / IEC 12207 proporciona un importante punto de partida para el conjunto de conocimientos capturados en este libro.
Era la Junta IEEE Computer Society de Gobernadores la aprobación de la moción presentada en mayo de 1993 mediante Fletcher Buckley, que dio
lugar a la redacción de este libro. La Association for Computing Machinery Consejo (ACM) aprobó una moción relacionada en agosto de 1993. Los dos
movimientos condujeron a un comité conjunto bajo la dirección de Mario Barbacci y Stuart Zweben que sirvió como co-presidentes. La declaración de la
misión de la comisión conjunta era “Establecer los conjuntos apropiados (s) de criterios y normas para la práctica profesional de la ingeniería de software
sobre el cual las decisiones industriales, certificación profesional, y programas de estudios pueden basarse.” Los grupos de trabajo del Comité Directivo
organizada en las siguientes áreas:
3. Definir la Educación Los planes de estudios de pregrado, postgrado y educación continua. Este libro suministra el primer componente: se
requiere conjunto de conocimientos y recomendar prácticas. El código de ética y práctica profesional de la ingeniería de software se completó en
1998 y aprobado tanto por el Consejo de ACM y la IEEE Computer Society Junta de Gobernadores. Ha sido adoptado por numerosas empresas y
otras organizaciones y está incluido en varios libros de texto recientes.
El plan de estudios para los estudiantes está siendo completada por un esfuerzo conjunto de la IEEE Computer Society y la ACM, y se
espera que esté terminado en 2004.
Se espera que los lectores encontrarán este libro útil para guiarlos hacia el conocimiento y los recursos que necesitan en su desarrollo profesional
permanente como profesionales de la ingeniería de software.
El libro está dedicado a Fletcher Buckley en reconocimiento a su compromiso con la promoción de la ingeniería de software como una disciplina profesional y
su excelencia como un practicante de ingeniería de software en aplicaciones de radar.
Requisitos de Software
PeterSawyer y Gerald Kotonya, Departamento de Informática, Universidad de Lancaster, Reino Unido, {} p.sawyer {g.kotonya}@lancaster.ac.uk
Diseño de software
Chico Tremblay, departamento de Informática, UQAM, Canadá, tremblay.guy@uqam.ca
Construcción de software
Steve McConnell, Construx Software, EE.UU., Steve.McConnell@construx.com
Terry Bollinger, la MITRE Corporation, EE.UU., terry@mitre.org
Philippe Gabrini, departamento de Informática, UQAM, Canadá,
gabrini.philippe@uqam.ca
Luis Martín, departamento de Informática, UQAM, Canadá,
martin.louis@uqam.ca
Software Pruebas
Antonia Bertolino y Eda Marchetti, ISTI-CNR, Italia, antonia.bertolino
{} {} eda.marchetti @ isti.cnr.it
Mantenimiento del software
Thomas M. Pigoski, Techsoft Inc., EE.UU., tmpigoski@techsoft.com
Alain abril de Escuela de Tecnología Superior, Canadá, aapril@ele.etsmtl.ca
Gestión de la Configuración de Software
John A. Scott, Lawrence Livermore National Laboratory, EE.UU., scott7 @ LLNL, gov
David Nisse, EE.UU., nissed@worldnet.att.net
Gestión de Ingeniería de Software
Dennis Frailey, Raytheon Company, EE.UU., DJFrailey@Raytheon.com
Stephen G. MacDonell, Universidad de Tecnología de Auckland, Nueva Zelanda,
smacdone@aut.ac.nz
Andrew R. Gray, Universidad de Otago, Nueva Zelanda
Proceso de Ingeniería de Software
Khaled El Eman, sirvió mientras que en el Consejo de Investigación Nacional de Canadá, Canadá,
khaled.el-emam@nrc-cnrc.gc.ca
Herramientas de software y métodos Engineerting
David Carrington, Facultad de Tecnología de la Información y la ingeniería eléctrica, la Universidad de
Queensland, Australia, davec@itee.uq.edu.au
François Coallier, Escuela de Tecnología Superior, hablando como IEC JTC 1 / SC7 Presidente ISO /
Philippe Kruchten, Universidad de British Columbia, sirvió como representante de Rational Software
Raytheon Company
Las siguientes personas sirven junto con el IAB en la Junta de Control de Cambios Ejecutivo para la edición de 2004:
Ann Sobel, Universidad de Miami, en representación del Comité de Dirección de Informática Los planes de estudios de
Ingeniería de Software
Las siguientes personas que se presentan en el panel de expertos para la preparación de la versión de prueba de la Guía:
Las siguientes personas participaron en el proceso de revisión de esta guía, para la versión de prueba y / o para la versión 2004.
Abbas, Rasha, Australia Abran, Alain, Bierwolf, Robert, Países Bajos Bisbal, Charette, Robert, EE.UU. Chevrier,
Canadá Accioly, Carlos, Brasil Ackerman, Jesús, Irlanda Boivin, Michel, Canadá Marielle, Canadá Chi, Donald, EE.UU.
Frank, EE.UU. Akiyama, Yoshihiro, Japón Bolton, Michael, Canadá Bomitali, Chiew, Vincent, Canadá Chilenski, John,
Al-Abdullah, Mohammad, EE.UU. Evelino, Italia Bonderer, Reto, Suiza EE.UU. Chow, Keith, Italia Ciciliani,
Alarcón, Miren Idoia, España Alawy, Bonk, Francisco, EE.UU. Booch, Ricardo, Argentina Clark, Glenda, EE.UU.
Ahmed, EE.UU. Alleman, Glen, EE.UU. Grady, EE.UU. Booker, Glenn, Cleavenger, Darrell, EE.UU. Cloos,
Allen, Bob, Canadá Allen, David, EE.UU. EE.UU. Börstler, Jürgen, Suecia Romain, Luxemburgo Coallier, François,
Amorosa, Francesco, Italia Amyot, Borzovs, Juris, Letonia Botting, Canadá Coblenza, Brenda, EE.UU.
Daniel, Canadá Andrade, Daniel, Brasil Richard, EE.UU. Bourque, Pierre, Cohen, Phil, Australia Collard, Ross,
abril, Alain, Canadá Canadá Bowen, Thomas, EE.UU. Nueva Zelanda Collignon, Stephane,
Boyd, Milt, EE.UU. Boyer, Ken, Australia Connors, Kathy Jo, EE.UU.
EE.UU. Brashear, Phil, EE.UU. Cooper, Daniel, EE.UU. Councill, Bill,
Briggs, Steve, EE.UU. brillante, EE.UU. Cox, Margery, EE.UU. Cunin,
Daniela, EE.UU. Brosseau, Jim, Pierre -Yves, Francia DaLuz, José,
Canadá Brotbeck, George, EE.UU. EE.UU. Dampier, David, EE.UU. Daneva,
Arroyo-Figueror, Javier, EE.UU. Ashford, Brown, Normand, Canadá Bruhn, Maya, Canadá Daneva, Maya, Canadá
Sonny, EE.UU. Atsushi, Sawada, Japón Anna, EE.UU. Brune, Kevin, EE.UU. Daughtry, Taz, EE.UU. Davis, Ruth,
Backitis Jr., Frank, EE.UU. Bagert, Bryant, Jeanne, EE.UU. Buglione, EE.UU. De Cesare, Sergio, Reino Unido
Donald, EE.UU. Baker, Jr., David, EE.UU. Luigi, Italia Bullock, James, EE.UU. Dekleva, Sasa, EE.UU. Del Castillo,
Baker, Theodore, EE.UU. Baldwin, Mark, Burns, Robert, EE.UU. Burnstein, Federico, Perú Del Dago, Gustavo,
EE.UU. Bales, David , Reino Unido Ilene, EE.UU. Byrne, Edward, EE.UU. Argentina DeWeese, Perry, EE.UU. Di
Bamberger, Judy, EE.UU. Banerjee, Calizaya, Percy, Perú Carreón, Juan, Nunno, Donn, EE.UU.-Díaz Herrera,
Bakul, EE.UU. Barber, Scott, EE.UU. EE.UU. Carroll, Sue, EE.UU. Jorge, EE.UU. Dieste, Oscar, España
Barker, Harry, Reino Unido Barnes, Julie, Carruthers, Kate, Australia Caruso, Dion, Francis, Canadá Dixon, Wes,
EE.UU. Barney, David, Australia Barros, Richard, EE.UU. Carvalho, Paul, EE.UU. Dolado, Javier,España
Rafael, Colombia Bastarache, Louis, Canadá Case, Pam, EE.UU. Donaldson, John, Reino Unido Dorantes,
Canadá Bayer, Steven, EE.UU. Beaulac, Cavanaugh, John, EE.UU. Celia, John Marco, México Dorofee, Audrey, EE.UU.
Adeline , Canadá Beck, William, EE.UU. A.,EE.UU. Chalupa Sampaio, Alberto Douglass, Keith, Canadá Du, Weichang,
Beckman, Kathleen, EE.UU. A Antonio, Portugal Chan, FT, Hong Canadá Duben, Anthony, EE.UU. Dudash,
continuación, Doreen, EE.UU. Kong Chan, Keith, Hong Kong Edward, EE.UU. Duncan, Scott, EE.UU.
Benediktsson, Oddur, Islandia Chandra, AK, India Chang, Wen-Kui, Duong, Vinh, Canadá Durham, George,
Ben-Menachem, Mordejai, Israel Taiwán Chapin, Ned, EE.UU. Estados Unidos
El Consejo Asesor Industrial encuentra que la ingeniería del cuerpo software de proyecto Conocimiento iniciada en 1998 se ha
completado con éxito; y hace suya la versión de la Guía de la SWEBOK 2004 y lo recomienda a la Junta IEEE Computer Society
de Gobernadores para su aprobación.
Movido, que la Junta de Gobernadores de la IEEE Computer Society aprueba la edición de la Guía de la Ingeniería de Software de
Administración de Conocimiento 2004 y autoriza al Presidente del Comité de Prácticas Profesionales para continuar con la impresión.
La ingeniería de software es una disciplina emergente y hay ha ofrecido durante mucho tiempo una certificación para los profesionales de la
ofrecen en la Universidad de Nueva Gales del Sur (Australia), literatura que se ha acumulado en los últimos treinta años. Este libro
proporciona una guía para que el cuerpo de conocimientos.
Universidad de McMaster (Canadá), el Instituto de Tecnología
de Rochester (EE.UU.), la Universidad de Sheffield (Reino
Unido) y otras universidades. En los EE.UU, PAG ROPÓSITO
Leonard Tripp
Presidente del Comité de
1999 Presidente
Prácticas Profesionales, IEEE
IEEE Computer Society
Computer Society
(2001-2003)
2004
El IEEE Computer Society define la ingeniería de software como: Un compromiso con las normas de conducta a menudo se prescribe en una código
ético
“(1) La aplicación de un enfoque disciplinado cuantificable sistemática, Esta guía contribuye a los tres primeros de estos componentes. La
para el desarrollo, operación y mantenimiento de software; es decir, la articulación de un conjunto de conocimientos es un paso esencial hacia el
aplicación de la ingeniería de software. desarrollo de una profesión, ya que representa un amplio consenso en
cuanto a lo que un profesional de la ingeniería de software debe saber. Sin
sobre un cuerpo de la base de conocimiento es imprescindible. Este hecho desarrollo y programas de educación continua profesional en las
está bien ilustrado por Starr cuando define lo que puede considerarse una organizaciones.
disciplina legítima y una profesión reconocida. En su libro ganador del premio
Pulitzer en la historia de la profesión médica en los EE.UU., afirma que: W HAT son los O OBJETIVOS DE LA SWEBOK P PROYECTO?
El primero de estos objetivos, una vista de todo el mundo consistente de Matemáticas Ingeniería de Sistemas
profesionales y aprendidos y los organismos públicos involucrados en la detalladas proporcionadas por el equipo de redacción del proyecto para los editores
ingeniería de software se pusieron en contacto oficialmente, conscientes de asociados en relación con los contenidos de las descripciones KA se pueden
El segundo de los objetivos, el deseo de establecer un límite para la en la literatura de ingeniería de software y estándares. Las averías de
El formato de libro para el que fue concebido esta edición tiene sus
limitaciones. La naturaleza de los contenidos sería mejor servido mediante
re EPTH DE T RATAMIENTO
una estructura de hipertexto, donde un tema estaría vinculada a temas
Desde el principio, se planteó la cuestión de la profundidad del tratamiento distintos a los anteriores y posteriores a él en una lista inmediatamente.
de la Guía debe proporcionar. El equipo del proyecto adoptó un enfoque Algunos límites entre Kas, sub-áreas, y así sucesivamente, también son a
que apoya la quinta parte del proyecto de veces relativamente arbitraria. Estos límites no se debe dar demasiada
objetivos proporcionando una Fundación para importancia. En la medida de lo posible, los punteros y enlaces se han dado
el desarrollo curricular, la certificación y concesión de licencias. El equipo de en el texto cuando sea relevante y útil.
redacción aplica el criterio de generalmente aceptado
conocimiento, deben distinguirse de los conocimientos avanzados y la
investigación (sobre la base de la madurez) y de conocimiento
Los vínculos entre KAs no son del tipo de entrada-salida. La KAS están
especializado (por motivos de carácter general de aplicación). La
destinados a ser puntos de vista sobre el conocimiento que uno debe
definición procede de la Gestión de Proyectos
poseer en ingeniería de software con respecto al KA en cuestión. La
Instituto: “La forma generalmente aceptada
descomposición de la disciplina dentro KAs y el orden en que se
el conocimiento se aplica a la mayoría de los proyectos de la mayor parte del tiempo, y un
presentan los KAs no han de ser asimilado con cualquier método o
amplio consenso valida sus valor y
modelo particular. Los métodos se describen en el KA apropiado en la
eficacia". 4
Guía, y la propia guía no es uno de ellos.
Generalmente aceptado
las prácticas tradicionales establecidas
T ÉL K ONOCIMIENTO UN REAS
recomendados por muchas organizaciones
Prácticas utilizados sólo para ciertos tipos
de software
investigación
Figura 1 Categorías de conocimiento Sin embargo, el término Las descripciones KA se estructuran como sigue. En la introducción, se
“generalmente aceptado” no implica que el conocimiento designado debe presentan una breve definición de la KA, y una visión general de su
aplicarse de manera uniforme a todos los de ingeniería de software esfuerzos alcance y de su relación con otros KAs.
-cada las necesidades del proyecto determinan que-pero sí implica que,
ingenieros de software capaces competentes deben estar equipados con este
El desglose de los temas constituye el núcleo de cada descripción de
conocimiento para su aplicación potencial. Más precisamente, el conocimiento
KA, que describe la descomposición de la KA en sub-áreas, temas y
generalmente aceptado debe ser subtemas. Para cada tema o tópico sub, se da una breve descripción,
junto con una o más referencias.
4
Se eligió el material de referencia porque es
Una guía para la Dirección de Proyectos del Conocimiento, Edición 2000, Project
considerar que constituyen la mejor presentación de los conocimientos en
Management Institute, Newport Square, Pensilvania. www.pmi.org.
relación con el tema, teniendo en cuenta la
usuarios que deseen aprender más sobre los temas KA. Apéndice B se tres documentos y el subyacente
presenta la lista de las normas más relevantes para el KA. Tenga en ocupaciones. El sexto sub-área es validación de requisitos, cuyo objetivo es
cuenta que las citas entre corchetes “[]” en el texto recoger cualquier problema antes de recursos se comprometen a abordar
los requisitos. validación de requisitos tiene que ver con el proceso de
identificar las referencias recomendadas, mientras que los encerrados examinar los documentos de requisitos para garantizar que se están
entre paréntesis “()” identificar las referencias habituales utilizados para escribir o definiendo el sistema correcto (es decir, el sistema que el usuario espera).
para justificar el texto. Las primeras son para ser encontrado en la sección Se subdivide en las descripciones de la conducta de los requisitos de los
correspondiente de la KA y el último en el Apéndice A de la KA. comentarios, prototipado y validación de modelos y pruebas de aceptación.
La séptima y última subzona es consideraciones prácticas.
Breves resúmenes de las descripciones KA y apéndices se dan a continuación.
Requisitos de software KA (véase la Figura 2, columna A) En él se describen los temas que deben ser entendidos en la práctica.
El primer tema es la naturaleza iterativa del proceso de requisitos. El
Un requisito se define como una propiedad que debe ser exhibido con el fin de siguiente tres temas son
resolver algunos problemas del mundo real. La primera subárea conocimiento fundamentalmente en la gestión del cambio y el mantenimiento de los
es s Requisitos OFTWARE fundamentos. requisitos en un estado que refleja con precisión el software a construir,
Eso incluye definiciones de software o que ya se ha construido. Incluye la gestión del cambio, los atributos de
requisitos de sí mismos, sino también de los principales tipos de requisitos: los requisitos y exigencias de rastreo. El último tema es la medición
estrategias generales, seguido de métodos de diseño orientados a la función, los Mantenimiento del software (Véase la Figura 2, la columna e)
sub-áreas. La primera sub-área es fundamentos de la construcción de software. necesidad de mantenimiento, la mayoría de los costos de mantenimiento, la
evolución del software, y las categorías de mantenimiento. Los segundos grupos
Los tres primeros temas son los principios básicos de la construcción: minimizar la sub-área juntos el cuestiones clave en el mantenimiento del software. Estas son
complejidad, anticipar el cambio, y las cuestiones técnicas, las cuestiones de gestión, la estimación de costos de
construir para su verificación. El último tema se describen las normas para la mantenimiento, y la medición de mantenimiento de software. La tercera sub-área
construcción. El segundo sub-área describe la gestión de la construcción. se describe la proceso de mantenimiento.
prácticas. Los temas son diseño de la construcción, construcción idiomas, codificación, mantenimiento.
prueba de la construcción, la reutilización, la calidad de la construcción, y la Las técnicas para el mantenimiento constituyen la cuarta subárea. Estos
integración. incluyen comprensión del programa, re-
la ingeniería y la ingeniería inversa.
Pruebas de software (Véase la Figura 2, la columna d) Gestión de la Configuración de Software (véase la Figura 3, la columna f)
El segundo sub-área es los niveles de prueba. Estos se dividen entre los de SMC. El segundo sub-área
objetivos de las pruebas y los objetivos de las pruebas.
es configuración del software
identificación, que identifica elementos para ser controlados, establece esquemas
La tercera sub-área es técnicas de prueba. La primera categoría incluye las
de identificación de los elementos y sus versiones, y establece las herramientas
pruebas basadas en la intuición y la experiencia del probador. Un segundo
y técnicas a utilizar en la adquisición y la gestión de elementos controlados. Los
grupo comprende técnicas ESPECIFICACIÓN base, seguido de técnicas
basadas en el código, técnicas basadas en la falla, técnicas basadas en el primeros temas de esta subzona son la identificación de los elementos que
uso, y las técnicas relativas a la naturaleza de la aplicación. También se deben ser controlados y la biblioteca de software. La tercera sub-área es control
presenta una discusión de cómo seleccionar y combinar las técnicas de la configuración de software,
programa bajo prueba y la evaluación de las pruebas realizadas. temas son: en primer lugar, solicitar, evaluar y aprobar los cambios de
software; segundo, implementar
cambios en el software; y en tercer lugar, las desviaciones, y las renuncias. El cuarto
determinación de las actividades de cierre y de cierre. enfoques de base matemática y métodos de creación de prototipos que se
ocupan de desarrollo de software enfoques basados en diversas formas de
creación de prototipos.
Disciplinas relacionadas DE Ingeniería de Software (véase la Figura 3, la columna evaluación. Los resultados de este ejercicio para todos los KAs se pueden
UN PÉNDICES
Cuestiones clave en
Proceso de mantenimiento
la obtención de Estructura del software y Consideraciones
Técnicas de prueba
requisitos Arquitectura prácticas
Requisitos dede
Especificación Diseño de software Proceso
Software de Diseño y
Requisitos
Estrategias
métodos
Consideraciones
prácticas
(2004 Version)
Herramientas de
Proyecto de software Evaluación del
Herramientas de prueba de software
Consideraciones administración
Configuración del Promulgación proceso prácticas
software Mantenimiento del software
Herramientas
Controlar
Proceso y
Revisión y Matemáticas
medición del
El software de
Evaluación producto
contabilidad de estado de ingeniería
software de software
Herramientas de administración de
Gestión de
configuración Ingeniería de software
Herramientas de ingeniería
proyectos
Herramientas de procesos
Ingeniería de
Métodos formales
Sistemas
Requisitos Métodos de
EQUERIMIENTOS
'ingeniero de software', o, en algunos casos específicos, se utilizará personas en diferentes niveles de una organización y desde el entorno en el
'requisitos especialista', este último donde el papel en cuestión se realiza que funcionará el software. Una propiedad esencial de todos los requisitos de
generalmente por una persona que no sea un ingeniero de software. Esto software es que sean verificables. Puede ser difícil o costoso para verificar
no implica, sin embargo, que un ingeniero de software no pudo realizar la ciertos requisitos de software. Por ejemplo, la verificación del requisito de
función. caudal en el centro de llamadas puede nego- cessitate el desarrollo de
software de simulación. Tanto los requisitos de software y personal de calidad
de software deben asegurarse de que los requisitos pueden ser verificados
El desglose KA es ampliamente compatible con las seccio- nes de IEEE
dentro de las limitaciones de los recursos disponibles. Requisitos tienen otros
12207 que se refieren a las actividades de requisitos. (IEEE12207.1-96)
atributos, además de las propiedades havioral BE- que expresan. Los
ejemplos más comunes incluyen una clasificación de prioridad para permitir
Un riesgo inherente en la descomposición propuesta es que un proceso de compensaciones en la cara de los recursos finitos y un valor de estado para
caída-como agua puede inferir. Para protegerse contra esto, subárea 2, Los permitir pro- greso proyecto para ser monitoreado. Típicamente, se identifican
requisitos del proceso, está diseñado para proporcionar una visión general de alto de forma única los requisitos de software para que puedan ser sometidos a
nivel del proceso de requisitos por conjunto- ting los recursos y las limitaciones
con las que opera el proceso y que actúan para configurarlo. Una descomposición
alternativa podría utilizar una estructura basada en el producto (requisitos del
sistema, los requisitos de software, prototipos, casos de uso, y así
sucesivamente). El proceso basado-
1.2. Requisitos del producto y de proceso Algunos de los requisitos de software generan los requisitos del proceso implícitos.
La elección de la técnica de verificación es un ejemplo. Otro podría ser el uso de
Una distinción puede hacerse entre producto y parámetros proceso parámetros.
técnicas de análisis de OU particularmente exigentes en este ámbito (tales como
Parámetros del producto son los requisitos de software para ser desarrollados
los métodos de especificación formal) para reducir los fallos que pueden conducir a
(por ejemplo, 'El software verificará que un estudiante cumple con todos los
insuficiente fiabilidad. requisitos de proceso también pueden ser impuestas
requisitos previos antes de que él o ella se registra para un curso.').
directamente por la organización de desarrollo, su cliente, o un tercero, tal como un
regulador de la seguridad [Kot00; Som97].
Un parámetro del proceso es esencialmente una restricción en el sarrollo
de- del software (por ejemplo, 'El software
Requisitos de
Software
Requisitos de
requisitos la obtención de requisitos Especificación de requisitos de Consideraciones
software
Proceso requisitos Análisis requisitos Validación prácticas
Fundamentos
Diseño y
Requisitos Especificación de
Administración y requisitos Modelo de requisitos
funcionales y no Requerimientos de
Apoyo Proceso arquitectónicos validación Atributos
funcionales Software
Asignación
Requisitos La medición de
cuantificables Requisitos
Requisitos del
sistema y
requisitos de
software
1.3. Requisitos funcionales y no funcionales Funcional requisitos requisitos de rendimiento, requisitos de mantenimiento, requisitos de
describen las funciones que el software es ejecutar; por ejemplo, el seguridad, requisitos de fiabilidad, o uno de muchos otros tipos de
formato de algún texto o la modulación de una señal. A veces se requisitos de software. Estos temas también se discuten en la calidad
No funcionales los requisitos son los que actúan para con- colar la 1.4. Propiedades emergentes
solución. requisitos no funcionales son algunas veces conocidas como Algunos requisitos representan las propiedades emergentes de software; es
las restricciones o requisitos de calidad. Pueden ser clasificados de decir, requisitos que no pueden ser abordados por un solo componente, pero
acuerdo a si son que dependen para su satisfactoria
probabilidad de generar un error fatal durante cualquier hora de operación Este tema se presentan las funciones de las personas que partici- par en el
de menos de 1 * 10 8. El requisito de caudal está en un nivel muy alto y proceso de requisitos. Este proceso se funda- mental interdisciplinario, y el
tendrá que ser utilizado para derivar una serie de requisitos detallados. El especialista requisitos necesita para mediar entre el dominio de la parte
requisito de fiabilidad estará fuertemente con- colar la arquitectura del interesada y el de la ingeniería de software. A menudo hay muchas personas
sistema. [Dav93; Som05] involucradas, además del especialista requisitos, cada uno de los cuales
tiene una participación en el programa. Los grupos de interés variarán de
proyectos, pero siempre incluyen US- ERS / operadores y clientes (que no
tiene por qué ser el mismo). [Gog93]
1.6. Requisitos del sistema y requisitos de software
En este tema, sistema significa ' una combinación de interacción de elementos
para llevar a cabo un objetivo definido. Estos incluyen hardware, software,
Ejemplos típicos de grupos de interés de software incluyen (pero no se
firmware, personas, información, técnicas, instalaciones, servicios y otros
limitan a):
elementos de apoyo, 'Como se define por el Consejo Internacional sobre
Sistemas de Inge- niería (INCOSE00). Usuarios-Este grupo comprende aquellos que operará el software. A menudo es la
su propio juego contra los del cliente. No será posible satisfacer perfectamente las
para negociar las compensaciones que son tanto aceptables para los principales grupos
2. Requisitos Proceso de interés y dentro de las limitaciones presupuestarias, técnicas, normativas, y otros. Un
En esta sección se presenta el proceso de requisitos de software, la orientación de requisito previo para esto es que se identifique a todos los interesados, la naturaleza de
las cinco sub-áreas restantes y mostrando cómo el proceso se ajusta perfectamente su y es el trabajo del ingeniero de software para negociar las compensaciones que son
a los requisitos del proceso general de la ingeniería de software. [Dav93; Som05] tanto aceptables para los principales grupos de interés y dentro de las limitaciones
interesados, la naturaleza de su
No es una actividad discreta front-end del ciclo de vida del software, sino
más bien un proceso iniciado en la COMIENZO
2.3. Administración y Apoyo Proceso Requisitos tienen muchas fuentes en el software típico, y es esencial que
Este tema se presentan los recursos de gestión de proyectos requeridos y ser identificados y evaluados por su impacto en él todas las fuentes
consumidos por el proceso de requisitos. Establece el contexto de la primera potenciales. Este tema está diseñado para promover el conocimiento de las
subárea ( Iniciación y Definición del Alcance) de la Ingeniería de Software diversas fuentes de requisitos de software y de los marcos para la gestión
Hombre- agement KA. Su propósito principal es hacer que el vínculo entre de los mismos. Los puntos principales son:
las actividades de los procesos identificados en 2.1 y los problemas de
costo, recursos humanos, capacitación y herramientas. [Rob99; Som97;
Metas. El término meta (a veces llamada 'empresa comercial' o 'factor
You01]
crítico de éxito') se refiere a los objetivos generales, de alto nivel de
software. Objetivos proporcionan la motivación para el software, pero
2.4. Proceso de Calidad y Mejora son de- diez vagamente formulado. Los ingenieros de software deben
prestar especial atención a la evaluación del valor (tivo relación a la
En este tema se refiere a la evaluación de la calidad y la mejora del
prioridad) y el costo de las metas. Un estudio de viabilidad es una forma
proceso de requisitos. Su propósito es hacer hincapié en el papel clave que
relativamente barata de hacer esto. [Lou95]. Conocimiento del dominio.
juega el proceso de requerimientos en términos de costo y oportunidad de
El ingeniero de software necesita adquirir o tener a su disposición, el
un producto de software, y de la satisfacción del cliente con él [Som97].
conocimiento sobre el dominio de apli- cación. Esto les permite inferir el
Esto ayudará a orientar el proceso de requisitos de las normas de calidad y
conocimiento tácito de que las partes interesadas no se articulan,
modelos de mejora de procesos de software y sistemas. La calidad del
evaluar las ventajas y desventajas que serán necesarios entre los
proceso y la mejora está estrechamente relacionado con la calidad tanto
requisitos en conflicto, y, a veces, para actuar como un campeón
KA Software y la Ingeniería de Procesos de Software KA. De particular
'usuario'. Las partes interesadas (ver tema 2.2 Los actores del proceso). Gran
interés son los temas de los atributos de calidad de software y urement
parte del software ha sido insatisfactorio, ya que ha hecho hincapié en
medi-, y la definición de procesos de software. En este tema cu- ERS:
las necesidades de un grupo de tenedores stake- a expensas de las de
los demás. Por lo tanto, el software se entrega, que es difícil de usar o
que subvierte las estructuras culturales o políticas de la organización del
cliente. El ingeniero de software tiene que identificar, representar y
la cobertura proceso de requisitos para los estándares mejoría de gestionar los puntos de vista '' de muchos tipos diferentes de grupos de
procesos y modelos interés. [Kot00].
requisitos de las medidas de proceso y la evaluación comparativa de
planificación e implementación de mejora [Kot00; Som97; You01]
3. la obtención de requisitos
[Dav93; Gog93; Lou95; Pfl01]
El entorno operativo. Requisitos se derivan del entorno en el que se
La obtención de requisitos, donde se ocupa de los requisitos de software ejecutará el programa. Estos pueden ser, por ejemplo, las
vienen y cómo la inge- Neer software puede recogerlos. Es la primera limitaciones de tiempo en las restricciones del software o de
etapa en la construcción de una comprensión del problema se requiere el interoperabilidad en tiempo real en un entorno de oficina. Estos
software de resolver. Se trata fundamentalmente de una actividad deben buscarse activamente, ya que pueden afectar en gran medida
humana, y es donde se identifican y relaciones estable- cido entre el la viabilidad y el coste del software, y restringir las opciones de
equipo de desarrollo y el cliente los grupos de interés. Se denomina diseño. [Tha97]
diversamente 'captura de requisitos', 'requisitos descubrimiento', y
'adquisición requisitos. El entorno de la organización. El software se requiere a menudo para
apoyar un proceso de negocio, la selección de los cuales puede estar
condicionado por la estructura, cul- tura, y la política interna de la
Uno de los principios fundamentales de ING buen software Engineer- es que
organización. El ingeniero de software tiene que ser sensible a estos,
exista una buena comunicación entre los usuarios de software e ingenieros de
ya que, en general, el nuevo software no debe forzar el cambio no
software. Antes de que comience el desarrollo, los especialistas requisitos
planificadas en el proceso de negocio.
pueden formar el conducto para esta comunicación. Deben mediar entre el
dominio de los usuarios de software (y otras partes interesadas) y el mundo de
la técnica del ingeniero de software. 3.2. técnicas de obtención
[Dav93; Kot00; Lou95; Pfl01] Una vez se han identificado las
fuentes de requisitos, el ingeniero de software puede comenzar la
obtención de requisitos de ellos. Este tema se centra en técnicas para
conseguir los interesados humanos para articular sus necesidades. Es una
zona muy difícil y el ingeniero de software tiene que ser
Entrevistas, unos medios 'tradicionales' de la obtención de re- detectar y resolver los conflictos entre los requisitos de descubrir los
quirements. Es importante entender las ventajas y limitaciones de límites del software y la forma en que debe interactuar con sus requisitos
entrevistas, y la forma en que debe llevarse a cabo. de medio ambiente elaborado sistema para generar requisitos de
software
Escenarios, un medio valioso para proporcionar contexto a la elicitación de
requisitos del usuario. Permiten que el ingeniero de software para La visión tradicional de análisis de requisitos ha sido que se reducirá a
proporcionar un marco para las preguntas sobre las tareas del usuario al modelado conceptual usando uno de una serie de métodos de análisis,
permitir que 'what if' y 'cómo se hace esto' preguntas que se le pregunte. tales como el análi- sis Estructurado y Diseño Technique (SADT). Si bien
El tipo más común de escenario es el caso de uso. Hay un enlace aquí el modelado conceptual es importante, incluimos la clasificación de los
para tema 4.2. ( Modelado Conceptual), Be- causa notaciones de requisitos para ayudar a informar a las compensaciones entre los
escenarios tales como casos de uso y diagramas son comunes en el requisitos (clasificación requisitos) y el proceso de creación de estas
software de modelado. Prototipos, una herramienta valiosa para aclarar compensaciones (requisitos de negociación). [Dav93]
requisitos poco claros. Pueden actuar de una manera similar a la esce-
narios proporcionando a los usuarios un contexto en el que puedan
entender mejor lo que la información que necesitan para ofrecer. Hay una
amplia gama de técnicas de tipificación prototipos, a partir de papel de Se debe tener cuidado para describir los requisitos de forma suficientemente precisa
maquetas de diseños de pantalla para las versiones beta-test de los para permitir que los requisitos para ser validados, su aplicación a ser verificada, y
productos de software, y un fuerte solapamiento de su uso para la sus costos para ser acoplado estimación.
manejados cuidadosa- mente (de ahí la necesidad de un proceso pueden limitar la elección del contratista, el proceso de
facilitador) para evitar una situación que se produzcan en las ingeniería de software para ser adoptado, o las normas que
habilidades críticas del equipo son erosionadas por la lealtad al deben ser respetados.
grupo,
La prioridad requisito. En general, cuanto mayor sea la prioridad, más
esencial es el requisito para cumplir con los objetivos generales del
software. A menudo clasificada en una escala de punto fijo tal como
obligatorio, altamente deseable, deseable, u opcional, la prioridad a
Observación. La importancia del contexto de software dentro del
menudo tiene que ser equilibrada contra el costo de rrollo y aplicación
entorno de la organización ha llevado a la adaptación de las técnicas
desa-. El alcance de la prescripción. Ámbito de aplicación se refiere a
de observación de los requisitos elicitación. Los ingenieros de
la medida en que un requisito afecta a los componentes de software y
software aprenden acerca de las tareas del usuario sumergiéndose
de software. Algunos de los requisitos, par-
en el ment ambiente y la observación de cómo los usuarios
interactúan con su software y entre sí. Estas técnicas son
coche (distancia de frenado, la seguridad en malas condiciones de conducción, la suavidad de sistema, los requisitos del sistema, y los requisitos de software. Para los
aplicación, la presión del pedal necesarios, y así sucesivamente) puede ser asignada al
productos de software simple, sólo se requiere el tercero de estos. Los tres
estrechamente identificada con el modelado conceptual. El mapeo de entidades del dominio del
mundo real para los componentes de software no siempre es evidente, por lo que el diseño 5.1. El Documento de Definición del Sistema
arqui- tectural se identifica como un tema aparte. Los re- quirements de notaciones y métodos
Este documento (a veces conocido como el documento de requerimientos del
son básicamente los mismos tanto para el modelado conceptual y el diseño arquitectónico. IEEE
usuario o el concepto de operaciones) registra los requisitos del sistema. Se
Std 1471-2000, Práctica Recomendada para arqui- Descripción tectural de Software de define el sistema de alto nivel quirements re- desde la perspectiva de dominio.
Sistemas Intensivos, gestas cias un enfoque de múltiples punto de vista para describir la Su número de lectores incluye representantes de los usuarios del sistema /
arquitectura de sistemas y sus elementos de software. (IEEE1471-00) y propiedades clientes (marketing puede desempeñar estas funciones de soft- ware impulsada
emergentes (tales como el peso del coche) ser utilizados para identificar los requisitos por el mercado), por lo que su contenido debe ser expresada en términos de los
detallados de software ABS. El diseño arquitectónico está estrechamente identificada con el principales do-. El documento enumera los requisitos del sistema, junto con la
modelado conceptual. El mapeo de entidades del dominio del mundo real para los componentes información de fondo sobre los objetivos globales para el sistema, su entorno de
de software no siempre es evidente, por lo que el diseño arqui- tectural se identifica como un destino y una declaración de las limitaciones, supuestos y requisitos no
tema aparte. Los re- quirements de notaciones y métodos son básicamente los mismos tanto funcionales. Puede incluir modelos conceptuales diseñados para IL-lustrate el
para el modelado conceptual y el diseño arquitectónico. IEEE Std 1471-2000, Práctica contexto del sistema, escenarios de uso y las entidades del dominio prin- cipal,
Recomendada para arqui- Descripción tectural de Software de Sistemas Intensivos, gestas cias así como los datos, información y flujos de trabajo. IEEE Std 1362, Concepto de
un enfoque de múltiples punto de vista para describir la arquitectura de sistemas y sus Operaciones de documentos, proporciona asesoramiento sobre la preparación y
el para
elementos de software. (IEEE1471-00) y propiedades emergentes (tales como el peso del coche) ser utilizados contenido delos
identificar dicho documento.
requisitos detallados(IEEE1362-98)
de software ABS. El diseño arquitectónico está estrechamente identificada
debe proporcionar una base realista para la estimación de los costos del producto, Es normal para programar explícitamente uno o más puntos en el proceso de
riesgos y horarios. Las organizaciones también pueden utilizar un software requisitos los requisitos en los que se validó con los requisitos. El objetivo es recoger
cualquier problema antes de re- cursos se han comprometido a hacer frente
speci- documento ficación para desarrollar sus propios planes de validación y
a las necesidades. validación de requisitos tiene que ver con el proceso de
verificación de manera más productiva.
examinar el documento de requisitos para garantizar que define el software
adecuado (es decir, el software que los usuarios esperan). [Kot00]
especificación de requisitos de software proporciona una base informada para
transferir un producto de software para nuevos usuarios o máquinas nuevas. Por
último, puede proporcionar una base para la mejora del software.
6.1. requisitos críticas
[Kot00; Som05; Tha97] Tal vez la forma más común de validación
Requisitos de software se escriben a menudo en len- guaje natural, pero, en la
es por inspec- ción o revisión del documento (s) requisitos. Un grupo de
especificación de requisitos de software, esto puede ser complementado por las
revisores se le asigna un breve para buscar errores, suposiciones
descripciones formales o semi-formales. La selección de las anotaciones
erróneas, falta de claridad, y la desviación estándar de la práctica. La
apropiadas permite requisitos particulares y aspectos de la arquitectura de
composición del grupo que con- conductos de la revisión es importante (al
software que se describirán con mayor precisión y concisión de lenguaje natural.
menos un representante del cliente debe ser incluido para un proyecto
La regla general es que las notaciones se deben utilizar que permiten a los
impulsado por el cliente, por ejemplo), y puede ayudar a proporcionar
requisitos para ser descritos como pre precisamente como sea posible. Esto es
particularmente crucial para la seguridad operacional críticos y ciertos otros tipos orientación sobre lo que debe buscar en la forma de listas de verificación.
de software fiable. Sin embargo, la elección de la notación suele estar limitado por Los comentarios pueden ser constituidos en la finalización del documento
la formación, habilidades y preferencias de los lectores Thors y au- del de definición del sistema, el documento de especificación del sistema, el
documento. documento de especificación de requisitos de software, la especificación
de línea de base para un nuevo lanzamiento, o en cualquier otro paso en
el proceso. IEEE Std 1028 proporciona orientación sobre la realización de
dichas revisiones. Re- vistas y auditorías.
Una serie de indicadores de calidad han sido desarrollados que pueden utilizarse
para relacionar la calidad del software especificación quirements re- a otras variables
del proyecto, tales como el coste, la aceptación, el rendimiento, el horario, la
reproducibilidad, etc. Los indicadores de calidad para las declaraciones de
especificación de los requisitos de software individuales incluir imperativos, las
Directivas, frases débiles, las opciones y las continuaciones. Indicadores para toda la
6.2. prototipado
especificación de requisitos de software docu- mento incluyen el tamaño, la
[Dav93; Kot00; Som05; Tha97] prototipos es comúnmente un medio
legibilidad, la especificación, la profundidad y la estructura del texto. [Dav93; Tha97]
(Ros98)
para validar la interpretación que el ingeniero de software de los requisitos de
software, así como para la obtención de nuevos requisitos. Al igual que con la
elicitación, hay una gama de técnicas de prototipado y un número de puntos
IEEE tiene un estándar, IEEE Std 830 [IEEE830-98], para la producción en el proceso donde prototipo validación ción puede ser apropiado. La
y el contenido de la especificación de requisitos de software. También, ventaja de prototipos es que pueden hacer que sea más fácil interpretar los
IEEE 1465 (similar a ISO / IEC
supuestos del software niería Neer y, si es necesario, dar Feed- útil volver
12119), es un estándar de tratamiento de requisitos de calidad en los paquetes de
sobre por qué están equivocados. Por ejemplo, el comportamiento dinámico
software. (IEEE1465-98)
de una interfaz de usuario se puede entender mejor a través de un prototipo
de animación que a través textual de- cripción o gráficos modelos. También
6. Requisitos de validación
hay desventajas, sin embargo. Estos incluyen el peligro de aten- ción de los
[Dav93]
usuarios distraerse del núcleo subyacente dad funcional- por cuestiones
Los documentos de los requisitos pueden estar sujetos a procedimientos de cosméticas o problemas de calidad con el prototipo. Por esta razón, varias
validación y verificación. Los requisitos pueden ser validados para asegurar personas recomiendan prototipos que evitan el software, tales como
que el ingeniero de software tiene sub estaban los requisitos, y también es maquetas basadas en rotafolio. Los prototipos pueden ser costosos de
importante verificar que un documento se ajusta a los requisitos Standards desarrollar. Sin embargo, si evitan el desperdicio de recursos que supone
compañía, y que es comprensible, coherente y com- pleta. Las notaciones tratar de satisfacer los requisitos erróneos, su coste se puede justificar más
formales ofrecen la importante ventaja de permitir que las dos últimas fácilmente.
propiedades a ser probada (en un sentido re- stricted, por lo menos). Las
diferentes partes interesadas, incluidos los representantes del cliente y
desarrollador, deberían
[Dav93; Kot00; Tha97] tanto, es casi siempre poco práctico im- plemento el proceso de requisitos como
lineal, determinista proceso de TIC en los que los requisitos de software son
Por lo general es necesario para validar la calidad de los els MOD- desarrollados
provocados a partir de los grupos de interés, la línea base, asignados y
durante el análisis. Por ejemplo, en modelos de objetos, es útil para llevar a cabo un
entregados al equipo de desarrollo de software. Sin duda, es un mito que los
análisis estático para verificar la existencia de rutas de comunicación entre objetos
requisitos para grandes proyectos de software están siempre perfectamente
que, en el dominio de las partes interesadas, los datos de cambio. Si se utilizan las
entendidas o perfectamente especificados. [Som97] En lugar de ello, los
notaciones de especificación formal, es posible utilizar el razonamiento formal para
requisitos normalmente iterar hacia un nivel de calidad y el detalle que es
demostrar propiedades de las especificaciones.
suficiente para permitir que las decisiones de diseño y de adquisiciones a
realizar. En algunos proyectos, esto puede dar lugar a los requisitos que se
6.4. Prueba de aceptacion baselined antes de todas sus propiedades se entienden completamente. Se corre
Identificación y diseño de pruebas de aceptación puede ser culto cultad para los
requisitos no funcionales (véase el tema 1.3 fun- cional y requisitos no
funcionales). Para ser validada de fecha, primero tienen que ser analizados para
En casi todos los casos, los requisitos de conocimiento sigue
el punto en que se pueden expresar cuantitativamente.
evolucionando como diseño y desarrollo de producto. Esto a menudo
conduce a la revisión de los requisitos finales del ciclo de vida. Quizás el
Información adicional se puede encontrar en el software de Exámenes ing KA, punto más crucial en la ingeniería de requisitos es la comprensión de que
subtema 2.2.4 Las pruebas de conformidad. una proporción significativa de los requisitos será cambio. Esto es a veces
debido a errores en el análisis, pero con frecuencia es una conse-
7. Consideraciones prácticas cuencia inevitable de cambio en el 'medio ambiente': por ejemplo, el
El primer nivel de descomposición de sub-áreas que se presentan en este KA entorno operativo o de negocio del cliente, o el mer- cado en el que el
puede parecer para describir una secuencia lineal de activi- dades. Esta es una software deben vender. Cualquiera que sea la causa, es importante
visión simplificada del proceso. [Dav93] El proceso requisitos abarca todo el ciclo reconocer la inevitabilidad del cambio y tomar medidas para mitigar sus
efectos. El cambio tiene que ser manejados edad asegurando que los
de vida del software. La gestión del cambio y el mantenimiento de los requisitos en
cambios propuestos pasan por un proceso de revisión y aprobación de-
un estado que refleja con precisión el software que se construirán, o que se ha
multado, y, mediante la aplicación de Care- requisitos ful rastreo, análisis
construido, son la clave para el ceso Suc del proceso de ingeniería de software.
de impacto, y la gestión de configuración de software (ver el software de
[Kot00; Lou95] No todas las organizaciones tienen una cultura de documentar y
gestión de configuraciones ción KA) . Por lo tanto, el proceso de
gestionar los requisitos. Es frecuente en empresas de nueva creación dinámica,
requisitos no es sólo una tarea para el usuario en el desarrollo de
impulsada por un fuerte 'visión de producto' y los recursos limi- ITED, para ver la
software, pero se extiende por todo el ciclo de vida del software. En una
documentación de requisitos como una sobrecarga innecesaria. Muy a menudo,
típica Ject pro,
sin embargo, ya que estas empresas expandirse, a medida que crece su base de
clientes, y como su producto comienza a evolucionar, descubren que necesitan
para recuperar los requisitos que motivaron las distintas prestaciones de productos
con el fin de evaluar el impacto de los cambios propuestos. Por lo tanto, la
documentación y los requisitos de cambiar ción manage- son clave para el éxito de 7.2. Gestión del cambio
cualquier proceso de requisitos. [Kot00]
Existe una presión general en la industria del software para los ciclos de desarrollo cada
7.3. requisitos Atributos
vez más cortos, y esto es particularmente notable sus poblaciones en sectores altamente
[Kot00]
competitivos impulsados por el mercado. Por otra parte, la mayoría de los proyectos se
ven limitados de alguna manera por su entorno, y muchos son actualizaciones o Los requisitos deben consistir no sólo en una especificación de lo que se
revisiones requiere, sino también de la información auxiliar que
[IEEE141
[IEEE830
[Som97]
[Som05]
[Gog93]
43,1-00]
[Rob99]
[You01]
[Dav93]
[Lou95]
[Tha97]
[Kot00]
[Pfl01]
- 98]
1. Requisitos de software Fundamentos
3. la obtención de requisitos * * * *
3.1 Requisitos Fuentes c2 * c3s1 * * c1
Análisis 4. Requisitos * c6
5. Requisitos Especificación
6. Requisitos de Validación * *
6.1 Requisitos críticas c4s1 c6 c5
7. Consideraciones prácticas * * *
7.1 naturaleza iterativa del proceso Requisitos
c5s1 c2 c6
(Bus95) D. Avutarda y P. Lundy, "Mejora suave Sys tems Análisis con (Edw95) M. Edwards y otros, "Resumen: Un obtención de requisitos, captura y
el modelado formal", presentado en Sec- ond Simposio Internacional proceso de análisis de prototipos de herramientas para Grandes Sistemas
sobre Requisitos Engineer- ing, 1995 Complejos", presentado en Primera Conferencia Internacional IEEE sobre
Ingeniería de sistemas informáticos complejos, 1995
(Che94) M. Chechik y J. Gannon, "Automated verificables cación de los
requisitos de aplicación", presentado en Actas del Simposio (ElE95) K. El-Emam y N. Madhavji, "Requisitos de Prácticas de
Internacional de Pruebas de Software y análisis, número especial de Ingeniería en Sistemas de Información Desa- ción: A Case Study
1994 múltiple", presentado en el Segundo Simposio Inter- nacional en
(Chu95) L. Chung y B. Nixon, "Tratar con los requisitos funcionales no-: Ingeniería de Requerimientos, 1995 (Fai97) R. Fairley y R . Thayer, "el
Tres estudios experimentales de un enfoque orientado al proceso", concepto de Opera- ciones: El puente de los requisitos operacionales a
presentado en Decimoséptima Conferencia Internacional IEEE sobre las especificaciones técnicas," Anales de la ingeniería de software, vol.
Ingeniería de Software, 1995 3, 1997
(Cia97) P. Ciancarini y otros, "Ingeniería formales requerimientos: un (Fic95) S. y M. Fickas pluma, "Requisitos de moni- Toring en entornos
método de análisis y pruebas para la tos Z Docu-" Anales de Ingeniería dinámicos", presentado en Segundo Simposio Internacional sobre
de Software, vol. 3, 1997 (Cre94) R. Crespo, "necesitamos identificar las Ingeniería de Requisitos, 1995
exigencias de las declaraciones de los requisitos no funcionales",
presentado en el Taller Internacional sobre Ingeniería mentos requisito: (Fie95) R. Campos y otros, "Un Enfoque Centrado en la tarea de analizar los
Fundamentos de la Calidad del Software, 1994 requisitos de tolerancia de errores humanos," pre-tantes en el Segundo
Simposio Internacional sobre Ingeniería de Requisitos, 1995
(Cur94) P. Curran y otros, "BORIS-R especificación de los requisitos de un (Gha94) J. Ghajar-Dowlatshahi y A. Varnekar, "Rapid Prototyping en fase de
software a gran escala Intensive sis- tema", presentado en la obtención de especificación de requisitos de Cesión de Software de Sistemas", presentado
requisitos para Software- Based Systems, 1994 en la Cuarta Internacional Sympo- Sium en Ingeniería de Sistemas,
Sunnyvale, California: Consejo Nacional de Ingeniería de Sistemas, 1994 (
(Dar97) R. Darimont y J. Souquières, "Reutilizando Requisitos fun- cional: Gib95) M. Gibson, "dominio reutilización del conocimiento Durante Ingeniería
un enfoque orientado al proceso," pre-tantes en el Simposio Internacional de Requisitos", presentado en Séptima Conferencia Interna- cional de
IEEE en Ingeniería de Requerimientos, 1997 Información avanzada Ingeniería de Sistemas (Caise '95), 1995
(Kro95) J. Krogstie y otros, "Hacia una posición más profunda comprensión de (Myl95) J. Mylopoulos y otros, "múltiples puntos de vista de lisis Ana- de
la Calidad en Ingeniería de Requisitos," pre-tantes en la Séptima Conferencia Proceso de Software memoria descriptiva," ciones IEEE transac- en Ingeniería
Internacional sobre Ingeniería de Sistemas de Información Avanzados (Caise de Software, 1995 (Nis92) K. Nishimura y S. Honiden ", representando y
'95), 1995
re DISEÑO
En una lista estándar de los procesos del ciclo de vida del software, tales como IEEE [Smi93]
/ EIA 12207 Procesos del ciclo de vida del software [IEEE12207.0-96], diseño de 1.2. Contexto de Diseño de Software
software consta de dos activi- dades que se ajustan entre el análisis de los requisitos
Para entender el papel del diseño de software, es importante entender el
de software y la construcción de software:
contexto en el que se inserta, el software de inge- niería ciclo de vida. Por lo
tanto, es importante comprender las características principales del análisis de
diseño de la arquitectura de software ( a veces llamado el diseño de nivel los requisitos de software de diseño de software vs vs vs construcción de
superior): describir la estructura de alto nivel de software y la organización y la software de prueba del software. [IEEE12207.0-96]; Lis01: c11; Mar02; Pfl01:
identificación de los distintos componentes c2; Pre04: c2]
El diseño de software se considera generalmente un proceso de dos pasos: [Bas03; Acoplamiento se define como la fuerza de los barcos relación entre
Dor02: v1c4s2; Fre83: I; IEEE12207.0-96]; módulos, mientras cohesión se define por cómo los elementos que
Lis01: c13; Mar02: D] componen un módulo se re RELAClONADAS. [Bas98: C6; Jal97: c5;
Pfl01: c5; Pre04: c9]
1.3.1. Diseño arquitectonico
1.4.3. La descomposición y la modularización
Diseño arquitectonico describe cómo el software se de- compuesta
y organizada en componentes (la arquitectura de software) La descomposición y modularización gran software en un número de los
[IEEEP1471-00] independientes más pequeños, por lo general con el objetivo de colocar
diferentes funcionalidades o responsa- bilidades en diferentes
1.3.2. Diseño detallado
componentes. [Bas98: C6; Bus96: c6; Jal97: c5; Pfl01: c5; Pre04: c9]
Diseño detallado describe el comportamiento específico de estos
componentes.
1.4.4. La encapsulación / ocultación de información
El resultado de este proceso es un conjunto de modelos y artefactos que
La encapsulación / ocultación de información significa la agrupación y el
registran las principales decisiones que se han tomado. [Bud04: c2;
envasado de los elementos y detalles internos de una abstracción y
IEE1016-98; Lis01: c13; Pre04: c9
haciendo esos detalles inaccesible. [Bas98: C6; Bus96: c6; Jal97: c5;
1.4. Técnicas de Activación Pfl01: c5; Pre04: c9]
De acuerdo con la Diccionario de ingles Oxford, un principio es “una verdad básica o 1.4.5. La separación de la interfaz y la implementación de la interfaz de
una ley general ... que se utiliza como base de un razonamiento o una guía para la separación e implementación implica la definición de un componente
acción.” principios de diseño de software, también llamado permitiendo técnicas [ Bus96], mediante la especificación de una interfaz pública, conocido por los
son nociones clave que se consideran fundamentales para muchos diferentes clientes, aparte de los detalles de cómo se realiza el componente.
enfoques de diseño de software y conceptos. Las técnicas que permiten son los [Bas98: C6; Bos00: c10; Lis01: c1, C9]
siguientes: [Bas98: C6; Bus96: c6; IEEE1016-98; Jal97: C5, C6; Lis01: c1, c3; Pfl01:
c5; Pre04: c9]
1.4.6. Suficiencia, integridad y primitivismo alcanzar la suficiencia,
integridad y primitivismo significa la garantía de un componente
1.4.1. Abstracción de software cap- turas todas las características importantes de
Abstracción es “el proceso de olvido información para que las cosas que una abstracción, y nada más.
son diferentes pueden ser tratados como si fueran lo mismo”. [Lis01] En [Bus96: C6; Lis01: c5]
el contexto del diseño de soft- ware, dos mecanismos clave de
abstracción son parametrización y especificación. Abstracción por la
especificación conduce a tres tipos principales de la abstracción:
abstracción de procedimientos, la abstracción de datos y control
Diseño de software
la persistencia de datos
Otros metodos
Curiosamente, la mayoría de estos conceptos puede ser visto como Los intentos de
2.1. concurrencia
describir, y por lo tanto volver a utilizar, diseño genérico knowl- borde.
Cómo descomponer el software en los procesos, las tareas y las discusiones y tratar
con eficacia relacionada, atomicidad, nización de sincronismo, y cuestiones de
3.1. Las estructuras arquitectónicas y puntos de vista
programación. [Bos00: c5; Mar02: CDS; Mey97: c30; Pre04: c9]
Las diferentes facetas de alto nivel de un diseño de software pueden y deben ser
descritos y documentados. Estas facetas son a menudo llamados puntos de vista: “Una
2.2. Control y manejo de Eventos
vista representa un aspecto parcial de una arquitectura de soft- ware que muestra
Cómo organizar los datos y el flujo de control, cómo manejar tivo reac- y eventos
propiedades específicas de un sistema de Software” [Bus96: c6]. Estos puntos de
temporales a través de diversos mecanismos, tales como
vista distintos se refieren a cuestiones distintas asociadas con el software de
implícito invocación y devoluciones de llamadas. [Bas98: c5; diseño para ejem- plo, la vista lógica (satisfaciendo los mentos funcionales
Mey97: c32; Pfl01: c5] requisitos) vs. la vista de proceso (problemas de concurrencia) vs. la vista física
2.3. Distribución de Componentes (problemas de distribución) vs. el desarrollo vista (cómo el diseño se divide en
unidades de ejecución). Otros autores utilizan diferentes terminologías, como BE-
Cómo distribuir el software en el hardware, cómo se comunican los
havioral vs vs funcional estructural frente a vistas de modelado de datos. En
componentes, cómo middleware se puede utilizar para tratar con el
resumen, un diseño de software es un artefacto de múltiples facetas producido por
software heterogéneo. [Bas03: c16; Bos00: c5; Bus96: c2 Mar94: DD;
el proceso de diseño y, en general com- puesto de puntos de vista relativamente
Mey97: c30; Pre04: c30]
independientes y ortogonales. [Bas03: c2; Boo99: c31; Bud04: c5; Bus96: c6;
2.4. Error y control de excepciones y la tolerancia a fallos IEEE1016-98; IEEE1471-00] estilos arquitectónicos (patrones macroarchitectural)
Cómo prevenir y tolerar fallos y hacer frente a condiciones excepcionales.
[Lis01: c4; Mey97: c12; Pfl01: c5]
¿Cómo de larga vida son los datos para ser manipulados. [Bos00: c5; Mey97: c31]
Los sistemas distribuidos (por ejemplo, cliente-servidor, de tres niveles, agente)
4.3. medidas
3.3. Las familias de los programas y marcos
Las medidas pueden ser utilizados para evaluar o estimar cuantitativamente diversos
Un enfoque posible para permitir la reutilización de los signos y los componentes de
aspectos de tamaño, estructura, o la calidad de un diseño de software. La mayoría de
software de- es diseñar familias de software, también conocido como software líneas de
las medidas que se han propuesto en general, dependen del método utilizado para la
productos. Esto se puede hacer mediante la que se identifica los puntos en común entre
producción del diseño. Estas medidas se clasifican en dos grandes categorías:
los miembros de estas familias y mediante el uso de componentes reutilizables y
personalizables para dar cuenta de la variabilidad entre los miembros de la familia.
medidas (estructurada) de diseño orientado a la función de: la estructura del
[Bos00: c7, c10; Bas98: c15; Pre04: c30]
diseño, obtenida principalmente a través de la descomposición funcional;
generalmente representado como un diagrama de estructura (a veces llamado
En la programación OO, una noción relacionada clave es que del marco: un
un diagrama jerárquico) en el que diversas medidas se pueden calcular [Jal97:
subsistema de software parcialmente completo que puede ser extendido por
C5, C7, Pre04: c15]
apropiadamente instanciar plug-ins específicos (también conocido como Puntos
calientes). [ Bos00: c11; Boo99: c28; Bus96: c6]
medidas de diseño orientado a objetos: la estructura general del diseño es a
menudo representado como un diagrama de clases, en la que se pueden
4. Análisis de Calidad de Software de Diseño y Evaluación calcular diversas medidas. Medidas sobre las propiedades del contenido interno
de cada clase también se pueden calcular [Jal97: c6, c7; Pre04: c15]
En esta sección se incluye una serie de calidad y evaluación de los temas que se
relacionan específicamente con el diseño de software. La mayoría están cubiertos de 5. Diseño de Software notaciones
manera general en la calidad del software KA.
Existen muchas notaciones y lenguajes para representar artefactos de diseño de
4.1. Atributos de calidad software. Algunos se utilizan principalmente para describir la organización estructural
Varios atributos se consideran generalmente importantes para la obtención de de un di- seño, otros para representar el comportamiento del software. Ciertas
un diseño de software de buena calidad varios “lazos” ili- (mantenibilidad, notaciones se utilizan sobre todo durante el diseño arquitec- tural y otros,
portabilidad, capacidad de prueba, trazabilidad), varios “sas” (corrección, principalmente durante el diseño detallado, al- aunque algunas anotaciones se pueden
robustez), incluyendo “Ness FIT- de propósito”. utilizar en ambas etapas. Otras medidas, además, algunas notaciones se utilizan sobre
[Bos00: c5; Bud04: C4; Bus96: c6; todo en el contexto de métodos especí- espe- (ver la El software de diseño estrategias y
ISO9126.1-01; ISO15026-98; Mar94: D; Mey97: C3; métodos sub-área). Aquí, se clasifican en ciones notaciones para describir la vista
Pfl01: c5] Una distinción interesante es la que existe entre los atributos de calidad estructural (estático) vs. la vista BE- havioral (dinámico).
Jackson diagramas de estructura: se usa para describir las estructuras de datos método. [Bud04: C8] Tales métodos son útiles como un medio de transferencia de
en términos de secuencia, selección, y la iteración [Bud04: C6; Mar02: DR] conocimiento y como un marco común para equipos de ingenieros de software. [Bud03:
c8] Véase también la Soft-Herramientas de ingeniería cerámica y Métodos KA.
5.2. Descripciones de comportamiento (ver dinámico) proceso de diseño son de divide y vencerás y refinamiento paso a paso [Bud04: c12;
Fre83: V], de arriba hacia abajo vs. estrategias de abajo hacia arriba [Jal97: c5; Lis01:
Las siguientes notaciones y lenguajes, algunos gráfica y textual alguna, se utilizan
c13], la abstracción de datos y ocultar infor- mación [Fre83: V], el uso de la heurística
para describir el comportamiento dinámico de software y componentes. Muchas
[Bud04: c8], el uso de modelos y lenguajes de patrones [Bud04: c10; Bus96: c5], el
de estas notaciones son útiles sobre todo, pero no exclusivamente, durante el
uso de un enfoque iterativo e incremental. [Pfl01: c2]
diseño detallado.
diagramas de flujo de datos (DFDs): utilizado para mostrar el flujo de datos entre utiliza generalmente después de un análisis estructurado, lo que produce, entre otras
un conjunto de procesos [Bud04: C6; Mar02: DR; Pre04: c8] cosas, diagramas de flujo de datos y las descripciones de proceso asociada. Los
investigadores han propuesto diversas estrategias (por ejemplo, el análisis de la
transformación, análisis de transacciones) y heurística (por ejemplo, fan-in / fan-out, el
Las tablas de decisión y diagramas: se utiliza para representar combinaciones
alcance de efecto vs. alcance de control) para transformar un DFD en un software
complejas com- de condiciones y acciones
archi- tecture generalmente representado como un gráfico de estructura.
[Pre04: c11]
3-7 v1c4s2
0.0 -
2-22
* *
* *
[Pre04] [Smi93]
c4s3-c4s5 C1S1,
[ISO15026-98]
c13s3 c1s2, c13s1, c11s1
c3s1-c3s3,
77-85, c5s8,
125-128, c13s2
[Mey97] [Pfl01]
c9s1-c9s3
[ISO9126-01]
*
{DD} CDS
Consulte
re re
la
sección siguiente
c32s2 c32s4,
c31 c12 c30 c30
c32s5
c5s5
c30 C9 C9 C9 c2
*
3-8
c7s4
c6s5,
c15
c5s6,
*
576
[YO
c7s3
c4
c5s7,
c11s5
c5s5,
c3
c4
{RE}
c5s5
c6s4
c11s4
C30
c6s2
DP
c1s1-
c1s3
c6s2
c1s1-,
c5s3
c1s3
*
*
c5
c6s1
[Pre04] [Smi93]
[IEEE
C6, C18
[IEEE1028-97]
c18 c11 C15 c16 c14 c8, c6
c10, c12
[Mey97] [Pfl01]
c5s4
[IEEE1016-98]
429
c5s1-
* {} Mar94
3-9 v1c6s3 v1c6s2 v1c6s4
181- v1c5
[Mar02][Fre83]
,
192
[Lis01][Dor02]
395- 514- 210, 201- 420- 328- 533- 320, 304- 513 506 -490, 485-
[Bus96]
407 532 436 352 539
[Boo99]
[ISO9126-01
{Bas98} [Jal97]
[Bos00] [Bud03]
] [ISO15026-98]
c5s1.4 c5s3,
c6s4 c5s4 c7s2
6S3 c
c13s13
DR DR
re re
c11 c11
C2S2 C2S2
[Bas98] L. Bass, P. Clements y R. Kazman, Arquitectura de software en la de vida, vol. IEEE, 1996. [ISO9126-01] ISO / IEC 9126-1: 2001, Ingeniería de
práctica: Addison-Wesley, 1998. [Bas03] L. Bass, P. Clements y R. software, la calidad del producto-Parte 1: Modelo de Calidad: ISO e IEC,
[IEEE1016-98] IEEE Std 1016-1998, IEEE Práctica Recomendada para las on Systems, el hombre y la cibernética, vol. 23, ISS. 5, 1209-1219,
1993.
diseño:
John Wiley & Sons, 1984. 1993. (Pag00) M. Página-Jones, Fundamentos de diseño orientada a objetos
(DSo99) DF D'Souza y AC Wills, Objetos, componentes y marcos con en UML: Addison-Wesley, 2000. (Pet92) H. Petroski, Al ingeniero es humano:
UML - El proach Catálisis: Ap- Addison-Wesley, 1999. El papel de la insuficiencia en el éxito del diseño: Vintage Books, 1992.
(Pre95) W. Pree, Patrones de diseño para el desarrollo de software orientado
(Dem99) T. DeMarco, "La paradoja de software arquitecturas tura y Diseño" Ponencia
a objetos: Addison-Wesley y ACM Press,
Premio Stevens, De agosto de 1999 (Fen98) NE Fenton y Pfleeger SL, Las
métricas de software: un enfoque riguroso y práctico, Segunda ed:
International Thomson Computer Press, 1998. (Fow99) M. Fowler, Refactoring: 1995. (Rie96) AJ Riel, Orientado a Objetos La heurística de diseño:
mejorar el diseño de código existente: Addison-Wesley, 1999. (Fow03) M.
Fowler, Los patrones de arquitectura de aplicación empresarial, Primera ed. Addison-Wesley, 1996.
Boston, MA: Addison-Wesley, 2003. (Gam95) E. Gamma, R. Helm, R. (Rum91) J. Rumbaugh, M. Blaha, W. Premerlani, F. Eddy y W. Lorensen, Orientada
Johnson y J. Vlissides, a Objetos Modelado y Diseño:
Prentice-Hall, 1991. (Sha96) M. Shaw y D. Garlan, arquitectura de
software: Perspectivas sobre una disciplina emergente: Prentice Hall,
Patrones de diseño: Elementos de software reutilizables orientada a
objetos: Addison-Wesley, 1995. (Hut94) ATF Hutt, Objeto de Análisis y 1996. (Som05) I. Sommerville, Ingeniería de software, Sexta edición:
Diseño - La comparación de métodos. Objeto de Análisis y Diseño - descrip- Addison-Wesley, 2001.
ción de los métodos: John Wiley & Sons, 1994. (Jac99) I. Jacobson, G.
Booch y J. Rumbaugh, El proceso de desarrollo de software Uni-ficado: Addison-Wesley,
(Wie98) R. Wieringa, "A Survey of estructurado y objeto: métodos de
especificación de software orientado y Técnicas"
ACM Computing Surveys, vol. 30, ISS. 4, 459-527, 1998 (Wir90) R.
1999.
Wirfs-Brock, B. Wilkerson y L. Wiener,
(Kic97) G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, El diseño de software orientado a objetos: Prentice-Hall, 1990.
C. Lopes, J.-M. Loingtier y J. Irwin, "programación orientada a aspectos",
presentado en ECOOP '97 - Orientado a Objetos
ONSTRUCCIÓN
origen, el contenido, los casos de prueba, y así sucesivamente). Por lo tanto, la construcción
anticipar el cambio es apoyado por muchas técnicas específicas que se resumen ejemplo, estándares de interfaz de programador de llamadas al sistema
en el tema 3.3 Codificación. operativo)
[Ben00; Hun00; Ker99; Mag93; McC04] La construcción de medios de herramienta (por ejemplo, las normas para esquemáticas ciones notaciones
verificación de construcción de software de tal manera que los fallos se pueden como UML (Unified Modeling Language))
descubrían fácilmente por los ingenieros de software de escritura de software, así como
El uso de estándares externos. La construcción depende de la utilización de
durante las pruebas independientes y las actividades operacionales. Las técnicas estándares externos para lenguajes de construcción, herramientas de
específicas que apoyan la construcción para la verificación incluyen siguiendo los construcción, interfaces técnicas, y las interacciones entre el software de
estándares de codificación para apoyar puntos de vista de código re, la unidad de construcción y otra de Kas. Normas proceden de numerosas fuentes,
pruebas, la organización de código para apoyar pruebas automatizadas, y el uso incluyendo hardware y software especificaciones de interfaz, como el Grupo de
restringido de las estructuras del lenguaje complejas o difíciles de comprender, entre Gestión de objetos (OMG) y las organizaciones internacionales, como la IEEE
otros. o ISO.
1.4. Normas de construcción El uso de estándares internos. Las normas también pueden ser creados sobre una base
de organización a nivel corporativo o para su uso en proyectos específicos. Estas
[IEEE12207-95; McC04]
normas apoyan la coordinación de las actividades de grupo, lo que minimiza la
Normas que afectan directamente a problemas de construcción incluyen
complejidad, la anticipación del cambio, y la construcción para su verificación.
lenguajes de programación (por ejemplo, el lenguaje Están-
Construcción de software
Fundamentos
Construcción de Consideraciones
de software
la gestión prácticas
Construcción
cambio
Verificación pronóstico del Codificación
La construcción de Planificación de construcción
Integración
actividades de prueba, y que a menudo tratan la combinación de actividades como la adaptarse al hacer modificaciones a pequeña escala para dar cuenta de las lagunas no previstos
construcción. en los planes del constructor, trabajadores de la construcción de software deben hacer
modificaciones en una escala más pequeña o más grande para dar cuerpo a los detalles del
En consecuencia, lo que se considera ser “construcción” depende en cierta
diseño de software Du- ing construcción.
medida en el modelo de ciclo de vida utilizado.
de estos objetivos también pueden ser tratadas en el proceso, los requisitos y los crear instalaciones nuevas o personalizadas de software. Los archivos de configuración
niveles de diseño, sino que también se verá afectado por la elección del método de basados en texto que se utilizan tanto en los sistemas operativos Windows y Unix son
construcción. ejemplos de esto, y las listas de selección de estilo de menú de algunos generadores
de programas constituyen otro.
Lingüística
formal Visual
3. Consideraciones prácticas
notaciones visuales confiar mucho menos en las notaciones nes orientados a texto, tanto Ver también las correspondientes sub-temas en el Software Test-ing KA: 2.1.1 Examen
de construcción lingüística y formal, y en lugar de confiar en la interpretación visual directa de la unidad y 2.1.2 Pruebas de integración
y la colocación de las entidades visuales que representan el software subyacente. Visual para material de referencia más especializado.
de la construcción tiende a ser algo limitado por la dificultad de hacer declaraciones
“complejas” utilizando sólo el movimiento de las entidades visuales en una pantalla. Sin
3.5. Reutilizar
embargo, también puede ser una herramienta roso pow- en los casos en que la tarea de
programación principal es simplemente para construir y “ajustar” una interfaz visual de un [IEEE1517-99; Som05]. Como se indica en la introducción de
programa, el comportamiento detallado de los cuales habían sido definidos anteriormente. (IEEE1517-99): “La aplicación de la reutilización del software implica algo más que la
[Ben00; IEEE12207-95; McC04] construcción de software que se incluye aquí como tema.
El uso de clases, tipos enumerados, variables, constantes con nombre, y la selección de las unidades reutilizables, bases de datos, procedimientos de prueba, o los
otras entidades similares uso de estructuras de control datos de prueba de la evaluación de código o prueba reutilización la presentación de la
recursos reutilizables en serie (in- cluyendo las discusiones o las cerraduras de bases de [Bec99; Hun00; IEEE12207-95; Mag93; McC04]
datos)
Las pruebas unitarias y pruebas de integración (como se menciona en el tema 3.4 Prueba
de la construcción)
3.4. Prueba de la construcción Ensayos primer desarrollo (véase también la Prueba de Software KA, tema 2.2
Objetivos de la prueba)
[Bec99; Hun00; Mag93; McC04]
Código pisar Uso de las
Construcción implica dos formas de pruebas, que a menudo son realizadas por el
afirmaciones de
ingeniero de software que escribió el código:
depuración
Unidad de prueba Las pruebas
Revisiones técnicas (véase también la calidad del software KA, subtema 3.3 Revisiones
de integración técnicas)
El propósito de las pruebas de la construcción es el de reducir la brecha entre el El análisis estático (IEEE1028) (véase también el software de cali- dad KA, tema
momento en que los fallos se insertan en el código y el tiempo se detectan los 3.3 Revisiones y auditorías)
fallos. En algunos casos, las pruebas de cons- trucción se realiza después de
La técnica o técnicas específicas seleccionadas dependen de la naturaleza del software
código ha sido escrito. En otros casos, los casos de prueba pueden crearse antes
que está siendo construido, así como en las habilidades conjunto de los ingenieros de
de código está escrito.
software que realizan la cons- trucción.
Dos estándares han sido publicados sobre el tema: IEEE Std 829-1998, IEEE Estándar
para la Documentación de software de prueba
12207.0]
[Ben00]
[Mag93]
[Hun00]
[Bec99]
[Ker99]
[Som05]
1517]
[Mcc04]
[IEEE
[IEEE
1. Fundamentos de construcción de
software
c2, c3,
C7-C9,
C24, C27,
1.1 minimiza la complejidad c17 c2, c3 C7, C8 c2, c3 c6 C28, C31,
C32, C34
C3-C5,
c11, c13, C24, C31,
1.2 pronóstico del cambio c2, c9
c14 C32, C34
c8,
1.3 La construcción de veri- c21, c23, C1, C5, c2, c3, c5,
c4 c20-c23,
ficación c34, c43 C6 c7
c31, c34
1.4 Estándares en cons- trucción
X c4
C2, C3,
2.1 Construcción Modals c10
C27, C29
C3, C4,
c12, c15,
2.2 Ordenación de la Edificación C21,
c21
C27-C29
3. consideraciones prácticas
C5-C19,
3.3 Codificación C6-C10 X
C25-C26
c8,
3.6 Construcción de Calidad c18 c18 X c4, c6, c7
c20-c25
3.7 Integración c16 X c29
T PRUEB
requisitos o expectativas razonables. Véase, en los requisitos de
UN CRONYM software KA, tema 6.4 Prueba de aceptacion
Dinámica: Este término significa que las pruebas siempre implica la ejecución
del programa en los insumos (valorados). Para ser precisos, el valor de Actualmente se considera que la actitud correcta hacia la calidad es uno de
entrada por sí sola no siempre es suficiente para determinar una prueba, ya prevención: es, obviamente, mucho mejor para evitar los problemas que a
que un sistema determinista compleja, no podría reaccionar a la misma corregirlos. Las pruebas deben ser visto, entonces, principalmente como un medio
entrada con comportamientos diferentes, dependiendo del estado del sistema. para comprobar no sólo si la prevención ha sido eficaz, sino también para la
En este KA, sin embargo, el término “entrada” se mantendrá, con la identificación de fallas en aquellos casos en los que, por alguna razón, no ha sido
convención implícita que su significado también incluye un estado de la eficaz. Es quizás obvio, pero vale la pena reconocer, que, incluso después de la
entrada especificada, en aquellos casos en que se necesita. Diferente de las finalización con éxito de una amplia campaña de prueba, el software aún podría
pruebas, y complementaria a la misma, son técnicas estáticas, como se contener errores. El remedio para los fallos de software experimentados después
describe en la calidad del software KA del parto es proporcionada por las acciones de mantenimiento correctivo.
Mantenimiento del software
Seleccionado: Las muchas técnicas de prueba propuestos difieren esencialmente la construcción de software (ver tema 3.4 Prueba de la construcción en ese KA).
en la forma de seleccionar el juego de prueba, y los ingenieros de software deben Unitarias y pruebas de integración están íntimamente relacionados con la construcción
ser conscientes de que los diferentes criterios de selección pueden producir muy de software, si no es parte de ella.
observado puede ser verificada contra las expectativas del usuario Fundamentos. Cubre las definiciones básicas en el campo de pruebas de
(comúnmente conocidas como pruebas de validación), contra una software, la terminología básica y las cuestiones clave, y su relación con otras
especificación (Pruebas de verificación), o, por último, en contra de actividades. El segundo sub-área, Niveles de prueba, consta de dos
(ortogonales) temas: 2.1 enumera los niveles en los que la prueba
el comportamiento esperado implícita de
Pruebas de software
objetivos de
Teclas Problemas La evaluación de las Las actividades de prueba
Pruebas
basada en la especificación pruebas realizadas
en el uso
Basado en la naturaleza
de la solicitud
La selección y la
combinación de técnicas
lugar de fallos, es decir, aquellos conjuntos de entradas que hacen que aparezca un
[Bei90: c3, c13] (Bac90; Ber96a; Voa95) El término “capacidad de
fracaso.
prueba de software” tiene dos relacionados, pero diferentes, significados: por
1.2. Cuestiones clave una parte, se refiere al grado en el que es fácil para un software para cumplir
1.2.1. criterios de selección de las pruebas / criterios de suficiencia de la prueba (o reglas de una determinado criterio de cobertura de la prueba, como en (Bac90); Por otro
En las pruebas para la identificación de defectos, una prueba exitosa es una que
Prueba de comparación de depuración. Véase también la construcción del
hace que el sistema fallará. Esto es bastante diferente de las pruebas para
software KA, tema 3.4 Prueba de la construcción
demostrar que el software cumple con su
[Bei90: c1s2.1] (IEEE1008-87) Prueba vs. programación. Véase
especificaciones, u otras propiedades deseadas, en el que las pruebas de caso es
exitoso si no se observan (significativos) fracasos. también la construcción del software KA, tema 3.4 Prueba de la
construcción
1.2.4. El problema oráculo [Bei90: c1]
[Bei90: c1s2.3] Pruebas y Certificación
(Ber96, Wey83)
(Wak99)
Un oráculo es cualquier agente (humano o mecánico) que decide si o no un
programa comportó correctamente en un ensayo dado, y en consecuencia 2. Niveles de prueba
produce un veredicto de “pase” o “fallo”. Existen muchos tipos diferentes de
oráculos, y la automatización de Oracle puede ser muy difícil y costoso. 2.1. El objetivo de la prueba
1.2.6. El problema de los caminos factibles [Bei90: fuertemente relacionados. Una unidad de ensayo se define con mayor precisión en
el estándar IEEE para el software de pruebas unitarias (IEEE1008-87), que
c3]
también describe un enfoque integrado de la unidad de pruebas sistemático y
caminos no factibles, las trayectorias de flujo de control que no pueden ser ejercidos por
documentado. Típicamente, la unidad de pruebas se produce con acceso al código
cualquier dato de entrada, son un problema significativo en las pruebas orientado al trayecto,
siendo probado y con el apoyo de
y en particular en la derivación automática de entradas de prueba para técnicas de ensayo
basadas en código.
perspectivas y concentrarse en el
perspectivas del nivel en el que están integrando. A excepción de software
pequeño, simple, pruebas de integración, estrategias incrementales sistemáticas 2.3.2. las pruebas de instalación [Per95: C9;
son generalmente preferidos para poner todos los componentes juntos a la vez, lo
Pfl01: c9s8.6]
que se llama prueba pictóricamente “big bang”.
Por lo general, después de la finalización de las pruebas de software y la aceptación, el
software puede ser verificada después de la instalación en el entorno de destino. las pruebas
2.1.3. Las pruebas del sistema [Jor02: c15;
de instalación se puede ver como las pruebas del sistema llevado a cabo una vez más de
Pfl01: c9] acuerdo con los requisitos de configuración de hardware. Los procedimientos de instalación
también pueden ser verificados.
Las pruebas del sistema tiene que ver con el comportamiento de un sistema en
su conjunto. La mayoría de los fallos funcionales ya debería haber sido
identificado durante unitarias y pruebas de integración. Las pruebas del sistema 2.3.3. Alfa y beta testing [Kan99:
se considera generalmente adecuado para comparar el sistema a los requisitos
c13]
del sistema no funcionales, tales como la seguridad, la velocidad, precisión y
Antes de que se libere el software, se da a veces a un conjunto pequeño,
fiabilidad. Externo
representativo de usuarios potenciales para uso de prueba, ya sea en casa ( alfa la
interfaces con otras aplicaciones,
prueba) o externo ( beta pruebas). Estos usuarios reportan problemas con el
servicios públicos, dispositivos de hardware, o el medio ambiente operativo también se
producto. Alfa y beta uso es a menudo incontrolable, y la prueba no siempre se
evalúan en este nivel. Ver el Software
hace referencia a un plan de pruebas.
KA requisitos para obtener más información sobre los requisitos funcionales y
no funcionales.
2.3.4. Pruebas de conformidad / Pruebas funcionales de pruebas / Corrección
2.2. Objetivos de las Pruebas
especificaciones funcionales se aplican correctamente, que se refiere de diversas identificar los fallos, la prueba es un medio para mejorar la fiabilidad. Por el
maneras en la literatura como la conformidad contrario, mediante la generación al azar casos de prueba de acuerdo con el perfil
operativo, las medidas estadísticas de fiabilidad se pueden derivar. El uso de
pruebas, exactitud pruebas o funcional pruebas. Sin embargo, varias otras modelos de crecimiento fiabilidad, ambos objetivos pueden perseguirse entre sí
propiedades no funcionales pueden ser probados, incluyendo el (véase también el subtema
rendimiento, fiabilidad y facilidad de uso, entre muchos otros.
según el destino de la prueba; en general, los propósitos diferentes que se abordarán (IEEE610.12-90), pruebas de regresión es la “repetición de pruebas selectiva de un
en un nivel diferente de la prueba. sistema o componente para verificar que las modificaciones no han causado
efectos no deseados [...]”. En la práctica, la idea es mostrar que el software que
previamente
Las pruebas de regresión puede llevarse a cabo en cada uno de los niveles de ensayo basa en cómo las pruebas se generan a partir de la intuición del ingeniero de
descritos en el tema 2.1 El objetivo de la prueba, y puede aplicarse a las pruebas software y la experiencia, las especificaciones, la estructura del código, las fallas
funcionales y no funcionales. (reales o artificiales) a ser descubiertos, el uso de campo, o, por último, la
naturaleza de la aplicación. A veces, estas técnicas se clasifican como caja blanca, también
2.3.7. Pruebas de rendimiento
llamado caja de vidrio, Si las pruebas se basan en la información sobre la forma en
[Per95: c17; Pfl01: c9s8.3] (Wak99) que el software ha sido diseñado o codificado, o como caja negra si los casos de
Esto está específicamente dirigido a verificar que el software cumple con los requisitos prueba se basan únicamente en el comportamiento de entrada / salida. Una última
de funcionamiento específicos, por ejemplo, la capacidad y el tiempo de respuesta. Un categoría se refiere a su uso combinado de dos o más técnicas. Obviamente, estas
tipo específico de pruebas de rendimiento es la prueba de volumen (Per95: p185, p487; técnicas no se utilizan con la misma frecuencia por todos los practicantes. Incluido
Pfl01: p401), en el que se trataron limitaciones del programa o internos del sistema. en la lista son los que un ingeniero de software debe saber.
Las pruebas de estrés ejerce un software a la carga máxima de diseño, así como más 3.1. Sobre la base de la intuición y la experiencia del ingeniero de software
allá de ella.
c10s3] (Jor02)
Las tablas de decisión representan las relaciones lógicas entre las condiciones
3.3.3. modelos de referencia para basado en el código pruebas
(aproximadamente, insumos) y acciones (aproximadamente, salidas). Los casos de prueba
(Flowgraph, gráfico de llamadas)
se derivan sistemáticamente por teniendo en cuenta todas las combinaciones posibles de
[Bei90: c3; Jor02: c5].
las condiciones y acciones. A técnicas relacionadas es causa-efecto gráfica. [ Pfl01: c9]
Aunque no es una técnica en sí misma, la estructura de control de un programa se
representa gráficamente utilizando un flowgraph en técnicas de ensayo basadas en
3.2.4. De estado finito de máquina basado [Bei90:
código. A flowgraph es un gráfico dirigido los nodos y arcos de los cuales
c11; Jor02: c8]
corresponden a los elementos de programa. Por ejemplo, los nodos pueden
Al modelar un programa como una máquina de estados finitos, las pruebas pueden ser representar declaraciones o secuencias ininterrumpidas de estados, y los arcos de la
seleccionados con el fin de cubrir los estados y las transiciones en él. transferencia de control entre los nodos.
[Kan99: c7]
3.2.6. Las pruebas al azar [Bei90: c13;
En adivinar de error, los casos de prueba están diseñados específicamente por los
Kan99: c7]
ingenieros de software tratando de averiguar los fallos más plausibles en un programa
Las pruebas se generan puramente al azar, que no debe confundirse con la prueba dado. Una buena fuente de información es la historia de los fallos detectados en los
estadística del perfil operativo como se describe en sub-tema 3.5.1 perfil operativo. Esta proyectos anteriores, así como la experiencia del ingeniero de software.
forma de pruebas se encuentra bajo el título de la entrada basada en la
especificación, ya que al menos debe ser conocido el dominio de entrada, para ser
3.5.2. Mutación pruebas [Per95: c17; Zhu97: S3.2-S3.3] A mutante es una versión
capaz de recoger puntos al azar dentro de ella.
ligeramente modificada del programa bajo prueba, que difiere de ella por un cambio
pequeño, sintáctica. Cada caso de prueba ejerce mutantes tanto el original y todas
3.3. técnicas basadas en código generadas: si un caso de prueba tiene éxito en la identificación de la diferencia entre
3.3.1. criterios basados en el flujo de control [Bei90: C3; el programa y un mutante, se dice que este último sea “muerto”. Originalmente
concebido como una técnica para evaluar un conjunto de prueba (véase 4.2), las
Jor02: c10] (Zhu97)
pruebas de mutación es también un criterio de prueba en sí mismo: o bien pruebas
criterios de cobertura basada en el control de flujo está destinada a cubrir todas las se generan aleatoriamente hasta que suficientes mutantes han muerto, o pruebas
declaraciones o bloques de instrucciones en un programa, o combinaciones de ellos están diseñadas específicamente para matar mutantes supervivientes. En este
especifica. Se han propuesto varios criterios de cobertura, como la cobertura de decisión último caso, las pruebas de mutación también puede ser categorizado como una
/ condición. El más fuerte de los criterios basados en el flujo de control es la prueba de
técnica basada en el código. El supuesto subyacente de pruebas de mutación, el
ruta, cuyo objetivo es ejecutar todas las trayectorias de flujo de control de entrada-salida
efecto de acoplamiento, es que, mediante la búsqueda de fallos sintácticos simples,
a la flowgraph. Dado que las pruebas de ruta generalmente no es factible debido a los
faltas más complejos, pero los reales, serán encontrados. Para que la técnica sea
bucles, otros criterios menos estrictos, tienden a ser utilizados en la práctica, tales como
eficaz, un gran número de mutantes debe derivarse de forma automática de una
pruebas de requisitos, pruebas rama, y la condición / pruebas de decisión. La
manera sistemática.
adecuación de estas pruebas se mide en porcentajes; por ejemplo, cuando todas las
ramas se han ejecutado al menos una vez por las pruebas, se dice que ha sido
alcanzado el 100% de cobertura de rama.
[Jor02: c15; Lyu96: c5; Pfl01: c9] 4. Medidas relacionadas con Test-
3.7. Las técnicas basadas en la naturaleza de la aplicación Software Ingeniería de medición. Adicional
información sobre las medidas se puede encontrar en el Proceso de Ingeniería
Las técnicas anteriores se aplican a todo tipo de software. Sin embargo, para algunos
de Software KA, subzona 4. Proceso y medición del producto.
tipos de aplicaciones, se requiere algún conocimiento adicional para la derivación de
prueba. Se proporciona una lista de algunos campos de prueba especializados aquí,
en base a la naturaleza de la aplicación que se está probando: La medición se considera generalmente como fundamental para el análisis de
calidad. La medición también se puede utilizar para optimizar la planificación y
ejecución de las pruebas. Gestión de pruebas puede utilizar varias medidas de
Orientado a objetos de prueba [Jor02: c17; Pfl01: c8s7.5] (Bin00)
proceso para monitorear el progreso. Medidas relativas al proceso de prueba a
efectos de gestión se consideran
las pruebas de las pruebas basadas en
en tema 5.1 Práctico
Web pruebas de interfaz gráfica de usuario Consideraciones.
basada en componentes [Jor20] 4.1. La evaluación del programa bajo prueba (IEEE982.1-
98)
Las pruebas de los programas concurrentes (Car91) las pruebas de
4.1.1. mediciones programa de ayuda en la planificación y el diseño de las
conformidad de protocolo (Pos96; Boc94) las pruebas de sistemas de tiempo
pruebas
real (Sch94) las pruebas de los sistemas de seguridad crítica (IEEE1228-94)
[Bei90: c7s4.2; Jor02: c9] (Ber96; IEEE982.1-88) Las medidas basadas en el
tamaño del programa (por ejemplo, líneas de código fuente o de función puntos) o en la
3.8. Seleccionando y combinando técnicas estructura del programa (como complejidad) se utilizan para guiar las pruebas. Las
medidas estructurales también pueden incluir mediciones entre los módulos de
3.8.1. Funcional y estructural
programa, en términos de la frecuencia con la que los módulos se llaman entre sí.
[Bei90: c1s.2.2; Jor02: c2, c9, c12; Per95: c17] (Pos96)
4.1.2. Avería tipos, clasificación y estadísticas [Bei90: c2; Jor02: c2; Pfl01:
técnicas de ensayo basadas en código basado en la memoria descriptiva y se
c8] (Bei90; IEEE1044-93; Kan99; Lyu96) La literatura de pruebas es
contrastan a menudo como funcional vs. pruebas estructurales. Estos dos enfoques
rica en clasificaciones y taxonomías de fallos. Para que el análisis sea
para prueba de selección no deben ser vistos como alternativa, sino más bien como
más eficaz, es importante saber qué tipos de fallos se podrían encontrar
complementaria; de hecho, se utilizan diferentes fuentes de información, y han
demostrado para resaltar diferentes tipos de problemas. Pueden ser utilizados en
en el software bajo prueba, y la frecuencia relativa con la que se han
combinación, dependiendo de consideraciones presupuestarias. producido estos fallos en el pasado. Esta información puede ser muy
útil
relación entre el número de fallos encontrados y el tamaño del programa. S3.2 S3.3-]
Proceso 5. Prueba
4.2. La evaluación de las pruebas realizadas
Conceptos de pruebas, estrategias, técnicas y medidas deben integrarse en un proceso
4.2.1. medidas de cobertura / exhaustividad [Jor02: C9;
definido y controlado que está dirigido por la gente. El proceso de prueba es compatible
Pfl01: c8] (IEEE982.1-88) con las actividades de ensayo y proporciona orientación a los equipos de prueba, desde la
planificación de prueba para probar la evaluación de salida, de tal manera que
Varios criterios de suficiencia de prueba requieren que los casos de prueba
proporcionen una seguridad justificada de que los objetivos de la prueba se cumplirán
ejercen sistemáticamente un conjunto de elementos identificados en el programa
costo-eficacia.
o en las especificaciones (véase la sub-zona 3). Para evaluar la rigurosidad de
las pruebas ejecutadas, los probadores pueden controlar los elementos
cubiertos, por lo que pueden medir de forma dinámica la relación entre los 5.1. Consideraciones prácticas
elementos cubiertos y su número total. Por ejemplo, es posible medir el
5.1.1. Actitudes / programación sin ego [Bei90: c13s3.2; Pfl01: c8] Un componente
porcentaje de ramas cubiertas de la flowgraph programa, o la de los requisitos
muy importante de la prueba con éxito es una actitud de colaboración hacia las
funcionales ejercidas entre los enumerados en el documento de especificaciones.
actividades de prueba y garantía de calidad. Los gerentes tienen un papel clave en
criterios de adecuación basados en códigos requieren instrumentación apropiada
la promoción de una recepción favorable en general hacia el descubrimiento falla
del programa que se está probando.
durante el desarrollo y mantenimiento; por ejemplo, mediante la prevención de un
modo de pensar de la propiedad entre los programadores de código, de modo que
no se sentirá responsable de los fallos revelados por su código.
4.2.2. la siembra de fallos
proceso de prueba. documentos de prueba pueden incluir, entre otros, plan de pruebas,
Para llevar a cabo pruebas o mantenimiento en un costo manera organizada y /
la prueba Especificaciones de Diseño, Especificación de Procedimiento de prueba,
efectiva, los medios utilizados para probar cada parte del software deben ser
casos de prueba de especificación, registro de la prueba, y la prueba de incidente o
reutilizados de forma sistemática. Este repositorio de materiales de prueba debe
problema de informe. El software bajo prueba está documentado como el artículo de
estar bajo el control de la gestión de configuración de software, de modo que los
prueba. la documentación de prueba debe ser producido y continuamente actualizada,
cambios en los requisitos de software o el diseño se pueden reflejar en cambios en el
para el mismo nivel de calidad que los demás tipos de documentación en la ingeniería
alcance de las pruebas realizadas.
de software.
Formalización del proceso de prueba puede implicar la formalización de la organización Bajo este tema, se da una breve descripción de las actividades de prueba; tan a
del equipo de pruebas también. El equipo de pruebas puede estar compuesto por menudo implica la siguiente descripción, manejo exitoso de las actividades de
miembros internos (es decir, en el equipo del proyecto, que participan o no en la prueba depende en gran medida del proceso de Gestión de la Configuración de
construcción de software), por miembros externos, Software.
con la esperanza de traer una perspectiva imparcial,
5.2.1. Planificación
independiente, o, por último, de los dos miembros internos y externos. Las
[Kan99: c12; Per95: c19; Pfl01: c8s7.6] (IEEE82998: S4; IEEE1008-87:
consideraciones de costos, horarios, niveles de madurez de las
organizaciones involucradas, y la criticidad de la aplicación pueden S1-S3) Al igual que cualquier otro aspecto de la gestión de proyectos, actividades de
determinar la decisión. prueba debe ser planeado. Los aspectos clave de la planificación de pruebas incluyen
la coordinación del personal, la gestión de instalaciones de prueba disponibles y el
5.1.6. Costo / estimación de esfuerzo y otras medidas de proceso [Per95: C4,
equipo (que puede incluir medios magnéticos, planes de pruebas y procedimientos), y
C21] (Per95: Apéndice B; Pos96: p139- 145; IEEE982.1-88)
la planificación de los posibles resultados indeseables. Si se mantiene más de una
línea de base del software, a continuación, una consideración importante es la
Una serie de medidas relacionadas con los recursos gastados en las pruebas, así como a
planificación del tiempo y el esfuerzo necesarios para garantizar que el entorno de
la relativa eficacia de búsqueda de errores de las diversas fases de prueba, son utilizados
prueba se establece en la configuración adecuada.
por los administradores para controlar y mejorar el proceso de prueba. Estas medidas de
prueba pueden cubrir aspectos tales como: número de casos de prueba especificados, el
número de casos de prueba ejecutados, el número de casos de prueba pasó, y el número
de casos de prueba falló, entre otros. 5.2.2. Test-caso de la generación [Kan99: c7] (Pos96: c2; IEEE1008-87: s4,
5.2.3. el desarrollo de medio ambiente [Kan99: 5.2.6. Problema de registro de informes / Test [Kan99: c5; Per95: c20] (IEEE829-98:
S9-S10) Las actividades de prueba se pueden introducir en un registro de prueba para
c11]
identificar cuándo se llevó a cabo una prueba, que se realiza el examen, lo que la
El entorno utilizado para la prueba debe ser compatible con las herramientas de
configuración del software fue la base para la prueba, y otra información de identificación
ingeniería de software. Se debe facilitar el desarrollo y control de casos de
correspondiente. resultados de prueba inesperados o incorrectos pueden ser grabados
prueba, así como el registro y la recuperación de los resultados esperados,
en un sistema de información problema, los datos de los cuales forman la base para la
guiones y otros materiales de prueba.
depuración más tarde y para la fijación de los problemas que se observaron como fallas
durante la prueba. Además, las anomalías no clasificados como fallos podrían ser
5.2.4. Ejecución
documentados en caso de que más tarde resultan ser más grave de lo previsto
[Bei90: c13; Kan99: c11] (IEEE1008-87: S6, S7) Ejecución de inicialmente. Los informes de prueba son también una contribución al proceso de
pruebas debe incorporar un principio básico de la experimentación científica: solicitud de Gestión del Cambio (véase el Software Configuration Management KA,
todo lo realizado durante la prueba se debe realizar y documentar con subzona 3. Configuración del software de control).
suficiente claridad que otra persona pueda replicar los resultados. Por lo tanto,
las pruebas deben realizarse de acuerdo con los procedimientos
documentados usando una versión claramente definida del software bajo
prueba.
5.2.7. seguimiento de defectos
[Kan99: c6]
5.2.5. Evaluación resultados de las pruebas
Las fallas observadas durante las pruebas son más a menudo debido a
[Per95: c20, c21] (Pos96: p18-20, p131-138) Los resultados del fallos o defectos en el software. Tales defectos pueden ser analizados
ensayo debe ser evaluado para determinar si o no la prueba ha tenido para determinar cuando se introdujeron en el software, ¿qué tipo de error
éxito. En la mayoría de los casos, 'exitoso' significa que causado a crearse (requisitos mal definidos,
el software realiza como incorrecta declaración de variables,
era de esperar, y no tenía ningún principales resultados inesperados. No todos los pérdida de memoria, error de sintaxis de programación, por ejemplo), y cuando
resultados inesperados son necesariamente los fallos, sin embargo, pero podrían podían haber sido observada por primera vez en el software. información de
ser juzgados a ser simplemente ruido. Antes de que un fallo se puede quitar, es seguimiento de defectos se utiliza para determinar qué aspectos de la ingeniería de
necesario un esfuerzo de análisis y depuración de aislar, identificar y describir. software necesitan mejora y la eficacia de los análisis y las pruebas anteriores han
Cuando sido.
1. Fundamentos de
Software Testing
Pruebas
eficacia / Objetivos de la prueba c1s1.4 c21
2. Niveles de prueba
3. Técnicas de Prueba
Partición de equivalencia c7 c7
análisis de Límites-valor c6 c7
tabla de decisiones c10s3 C9
basada en la máquina de estados finitos c11 c8
Pruebas de las especificaciones formales S2.2
Las pruebas al azar c13 c7
error de adivinanzas c7
Las pruebas de mutación c17 S3.2, S3.3
componentes c20
Las pruebas de los programas concurrentes pruebas
tiempo real
Proceso 5. Prueba
c13s2.2,
frente interno equipo de pruebas independiente c15 c4 C9
c1s2.3
Costo / estimación de esfuerzo y otras medidas
C4, C21
de proceso
Terminación c2s2.4 c2
reutilización de prueba y patrones de prueba c13s5
2000. (Boc94) GV Bochmann y A. Petrenko, "Protocolo de prueba: Examen de Prentice-Hall, 2001, Cap. 8, 9. (Pos96) RM Poston, La automatización de
los métodos y relevancia para las pruebas de software", presentados en ACM pruebas de Software basada en la especificación: IEEE, 1996.
Proc. En t. Simposio sobre Sw de ensayos y análisis (Issta' 94), Seattle,
Washington, EE.UU., 1994 (Rot96) G. Rothermel y MJ Harrold, "El análisis de las pruebas de
regresión Técnicas de selección" IEEE
Las transacciones en Ingeniería de Software, vol. 22, ISS. 8, 529-, agosto de
1996
(Car91) RH Carver y KC Tai, "Replay y pruebas de programas
concurrentes," IEEE Software, 66-74, Marzo de 1991 (Sch94) W. Schütz, "Cuestiones fundamentales en las inspecciones
Distribuido Sistemas de Tiempo Real" Real-Time Systems Journal, vol. 7,
(Dic93) J. Dick y A. Faivre, "Automatización de la generación y ISS. 2, 129-157, septiembre de 1994 (Voa95) JM Voas y KW Miller,
secuenciación de casos de prueba de las especificaciones Modelo- "Capacidad de prueba del software: La nueva verificación" IEEE Software, 17-
base", presentado en FME'93: Método Formal Industrial- Strenght, LNCS
670, 1993 28, mayo de 1995
(Fran93) P. Frankl y E. Weyuker, "Un análisis formal de la detección de (Wak99) S. Wakid, DR DR Kuhn y Wallace, "Hacia creíble Prueba de TI
fallo capacidad de los métodos de prueba," IEEE Transactions on y Certificación," IEEE Software, 39-47, julio-agosto de 1999 (Wey82) EJ
Software Engineering, vol. 19, ISS. 3, 202-, Marzo, 1993 Weyuker, "en las pruebas de programas no comprobables," El Diario del
ordenador, vol. 25, ISS. 4, 465-
(Fran98) P. Frankl, D. Hamlet, B. Littlewood y L. Strigini, "Evaluación de
métodos de prueba por la fiabilidad entregado," IEEE Transactions on 470, 1982
Software Engineering, (Wey83) EJ Weyuker, "Evaluación de la Prueba de Suficiencia de datos a través
vol. 24, ISS. 8, 586-601, agosto de 1998
del Programa de inferencia" ACM Trans. en
(Ham92) D. Hamlet, "¿Estamos poniendo a prueba la verdadera fiabilidad ?," Lenguajes de Programación y Sistemas, vol. 5, ISS. 4, 641-
IEEE Software, 21-27, Julio, 1992 655, octubre de 1983
(Hor95) H. y J. Horcher Peleska, "Uso de especificaciones formales para (Wey91) EJ Weyuker, SN Weiss y D. Hamlet, "Comparación de
apoyar pruebas de software," Software de calidad Diario, vol. 4, 309-327, estrategias de prueba Programa", presentado en Proc. Simposio sobre
1995 ensayos, análisis y verificación TAV 4, Victoria, Columbia Británica,
(How76) WE Howden, "La fiabilidad del Camino Estrategia de evaluación 1991 (Zhu97) H. Zhu, PAV Hall y JHR mayo, "Unidad de Software
Análisis" IEEE Transactions on Software Engineering, vol. 2, ISS. 3, 208-215, Cobertura de la prueba y suficiencia" ACM Computing Surveys, vol. 29,
septiembre de 1976 (Jor02) PC Jorgensen, "Pruebas de Software: El enfoque ISS. 4, 366-427, diciembre de 1997
(IEEE829-98) IEEE Std 829-1998, Estándar para la Documentación de la software: IEEE, 1994. (IEEE12207.0-96)
comprobación del software: IEEE, 1998. (IEEE982.1-88) IEEE Std 982,1 a IEEE / EIA 12207.0-
1988, Diccionario estándar IEEE de Medidas para producir software fiable: 1996 // ISO / IEC12207: 1995, Industria Implementación de Int. Std. ISO /
IEC 12207: 95, Norma para Tecnología de la Información-Software
Procesos del Ciclo de Vida, vol. IEEE,
IEEE, 1988.
1996.
(IEEE1008-87) IEEE Std 1008-1987 (R2003), IEEE
ANTENIMIENTO
CMMi Capability Maturity Model Integration El desglose de mantenimiento de software KA de temas se muestra en la
Figura 1.
ICSM Conferencia Internacional sobre Mantenimiento de
Software
1. Fundamentos de mantenimiento de software
SMC Gestión de la Configuración de Software
Esta primera sección presenta los conceptos y terminología que forman una base
SQA Software de Control de Calidad subyacente a la comprensión de la función y el alcance del mantenimiento del
V&V Verificación y validación software. Los temas proporcionan definiciones y hacer hincapié en por qué hay una
necesidad de mantenimiento. Categorías de mantenimiento de software son
Y2K año 2000
fundamentales para la comprensión de su significado subyacente.
yo INTRODUCCIÓN
1.1. Definiciones y terminología
los esfuerzos de desarrollo de software como resultado la entrega de un producto [IEEE1219-98: s3.1.12; IEEE12207.0-96: S3.1, S5.5; ISO14764-99:
de software que satisfaga las necesidades del usuario. En consecuencia, el
S6.1]
producto de software debe cambiar o evolucionar. Una vez en funcionamiento, los
defectos se descubren, cambian entornos operativos, y los nuevos requisitos de los El mantenimiento del software se define en el estándar IEEE para el
usuarios superficie. La fase de mantenimiento del ciclo de vida comienza después mantenimiento de software, IEEE 1219, como la modificación de un producto de
de un período de garantía o post-implantación de entrega apoyo, pero las software después de la entrega para corregir defectos, para mejorar el
rendimiento u otros atributos, o para adaptar el producto a un entorno
actividades de mantenimiento producirse mucho antes. El mantenimiento de
modificado. La norma también se ocupa de las actividades de mantenimiento
software es una parte integral de un ciclo de vida del software. Sin embargo, no ha,
antes de la entrega del producto de software, pero sólo en un apéndice
históricamente, recibido el mismo grado de atención que
información de la norma.
Definiciones y Problemas
Los procesos de mantenimiento programa de Comprensión
terminología técnicos
Ingeniería inversa
Estimación de costes de
La necesidad de mantenimiento
mantenimiento
Evolución de soffware
Categorías de
Mantenimiento
de ocupaciones comprender las cuatro llave Dado que el software demuestra el comportamiento y tendencias regular, estos
características, de acuerdo con Pfleeger [Pfl01]: pueden ser medidos. Los intentos de desarrollar modelos de predicción para
estimar han hecho el esfuerzo de mantenimiento, y, como resultado, las
Mantener el control sobre las funciones del día a día del software
herramientas de gestión útiles se han desarrollado. [Art88], (Bel72)
Mantenimiento consume una parte importante de los recursos financieros del ciclo de manera:
vida del software. Una percepción común de mantenimiento de software es que se
limita a fijar los fallos. Sin embargo, estudios y encuestas en los últimos años han
El mantenimiento correctivo: modificación reactiva de un producto de software
indicado que la mayoría, más del 80%, del esfuerzo de mantenimiento de software se
lleva a cabo después de la entrega para corregir problemas descubiertos
utiliza para acciones no correctoras.
[Abr93, Pig97, PRE01] Jones
mantenimiento adaptativo: La modificación de un producto de software se realiza
(Jon91) describe la forma en que los responsables de mantenimiento de software a
después de la entrega para mantener un producto de software utilizable en un
menudo mejoras y correcciones de grupo juntos en sus informes de gestión. Esta
inclusión de las solicitudes de mejora con los informes de problemas contribuye a entorno cambiante cambiado o mantenimiento perfectivo: Modificación de un
algunos de los conceptos erróneos con respecto a los altos costos de correcciones. producto de software después de la entrega para mejorar el rendimiento o
Corrección Mejora
de software diseño, construcción,
documentación y las pruebas Proactivo Preventivo perfectivo
inicialmente una comprensión limitada del software, y mucho tiene que hacer para promover y seguir en cuestiones de capacidad de mantenimiento durante el
remediar esto. desarrollo? El IEEE [IEEE610.12-90] define mantenibilidad como la facilidad con
la que el software puede ser mantenida, mejorado, adaptado, o corregido para
satisfacer los requisitos especificados. ISO / IEC define mantenibilidad como
2.1.2. Pruebas
una de las características de calidad (ISO9126-01). Mantenibilidad
[Art88: c9; Pfl01: c11s11.3]
sub-características deben especificarse, revisados y controlados durante las
El costo de la repetición de la prueba completa en una pieza importante de software actividades de desarrollo de software con el fin de reducir los costes de
puede ser significativo en términos de tiempo y dinero. Las pruebas de regresión, la mantenimiento. Si esto se realiza con éxito, la capacidad de mantenimiento del
repetición de pruebas selectiva de un componente de software o para verificar que
software mejorará. Esto es a menudo difícil de lograr debido a la capacidad de
las modificaciones no han causado efectos no deseados, es importante para el
mantenimiento sub-características no son un foco importante durante el proceso
mantenimiento. Así, encontrar tiempo para probar es a menudo difícil. También
de desarrollo de software. Los desarrolladores están preocupados con muchas
existe el reto de coordinar las pruebas cuando diferentes miembros del equipo de
otras cosas y, a menudo ignoran las necesidades del mantenedor. Esto a su
mantenimiento están trabajando en diferentes problemas al mismo tiempo. [Plf01]
vez puede, ya menudo lo hace,
Cuando software realiza las funciones críticas, puede que sea imposible llevarlo
fuera de línea para la prueba. La Prueba KA Software proporciona información y
referencias adicionales sobre el asunto en sus pruebas de regresión subtema 2.2.6.
resultado en una falta de sistema
documentación, que es la principal causa de dificultades en la comprensión del
programa y análisis de impacto. También se ha observado que la presencia de
procesos sistemáticos y maduros, técnicas y herramientas de ayuda para
2.1.3. Análisis de impacto mejorar la capacidad de mantenimiento de un sistema.
[Art88: c3; Dor02: v1c9s1.10; Pfl01: c11s11.5] análisis de impacto
Deklava proporciona una lista de los problemas relacionados con la dotación de personal en
base a datos de la encuesta. [Dek92] Como resultado, el personal de mantenimiento de relación. [Dor02] Otro reto
software son frecuentemente vistos como “ciudadanos de segunda clase” (Lie81) y la moral, identificado es la transición del software para el proveedor externo. [Pig97]
por lo tanto sufre. [Dor02]
2.2.3. Proceso Los ingenieros de software deben entender las diferentes categorías de
[Pau93; Ben00: c6sb; Dor02: v1c9s1.3] proceso de software es un mantenimiento de software, expuestos anteriormente, con el fin de abordar la
conjunto de actividades, métodos, prácticas y transformaciones que las personas cuestión de estimar el costo de mantenimiento del software. Para fines de
utilizan para desarrollar y mantener el software y los productos asociados. [Pau93] planificación, estimación de costos es un aspecto importante del mantenimiento
En el nivel de proceso, las actividades de mantenimiento de software comparte del software.
mucho en común con el desarrollo de software (por ejemplo, gestión de
2.3.1. Estimación de costos
configuración de software es una actividad crucial en ambos). [Ben00] El
[Art88: c3; Boe81: c30; Jon98: c27; Pfl01: c11s11.3; Pig97: c8]
mantenimiento también requiere varias actividades que no se encuentran en
desarrollo de software (ver sección
Se mencionó en el subtema 2.1.3, el análisis del impacto, que el análisis de impacto
identifica todos los sistemas y productos de software afectadas por una solicitud de
3.2 sobre las actividades únicas para más detalles). Estas actividades presentan desafíos
cambio de software y desarrolla una estimación de los recursos necesarios para
para la gestión. [Dor02]
llevar a cabo ese cambio. [Art88]
2.2.4. Aspectos de organización de mantenimiento [Pfl01:
c12s12.1-c12s12.3; Par86: c4s7; Pig97: c2s2.5;
estimaciones de los costos de mantenimiento se ven afectados por muchos factores
Tak97: c8]
técnicos y no técnicos. ISO / IEC14764 establece que “los dos métodos más
Aspectos organizativos describen cómo identificar a qué organización y / o populares a los recursos de estimación para el mantenimiento del software son el uso
función será responsable del mantenimiento del software. El equipo que de modelos paramétricos y el uso de la experiencia” [ISO14764-99: s7.4.1]. Muy a
desarrolla el software no está necesariamente asignado para mantener el menudo, se utiliza una combinación de éstos.
software una vez que esté en funcionamiento.
[ISO14764-00: s7, s7.2, s7.2.1, s7.2.4; Pig97: c8; Sta94] la identificación de las partes a ser modificados
14764.
Abran [Abr93] presenta las técnicas de benchmarking interno para comparar
El modelo de proceso de mantenimiento descrito en la Norma para el Mantenimiento de
las diferentes organizaciones de mantenimiento internos. El mantenedor debe
Software (IEEE 1219) comienza con el esfuerzo de mantenimiento del software durante
determinar qué medidas son adecuadas para la organización de que se trate.
la etapa posterior a la entrega y discute elementos tales como la planificación de
[IEEE1219- 98; ISO9126-01; Sta94] sugiere medidas que son más específicos
mantenimiento. Ese proceso se representa en la Figura 3.
de los programas de medición de mantenimiento de software.
ISO / IEC 14764 [ISO14764-99] es una elaboración del proceso de 12207,0-96 Retiro problema proceso de implementación y
mantenimiento IEEE / EIA. Las actividades del proceso de mantenimiento de la
análisis de Modificación Modificación
norma ISO / IEC son similares a los de la IEEE, excepto que se agregan un poco
Implementación de Revisión de Mantenimiento /
diferente. Las actividades de los procesos de mantenimiento desarrollados por
ISO / IEC se muestran en la Figura 4. Aceptación de Migración de Software
Implementación
Modificación Aceptación
3.2. Actividades de mantenimiento
Migración mantenimiento del software, algunas actividades implican procesos únicos para el
Jubilación mantenimiento del software.
figura 3 ISO / IEC 14764-00 proceso de mantenimiento del software 3.2.1. actividades únicas [art88: C3; Dor02: v1c9s1.9.1; IEEE1219-
98: S4.1, S4.2; ISO14764-99: s8.2.2.1, s8.3.2.1; Pfl01:
c11s11.2]
Cada una de las actividades de mantenimiento de software 14764 primaria ISO / IEC
se subdivide en tareas, de la siguiente manera. Hay una serie de procesos, actividades y prácticas que son únicos para el
mantenimiento del software, por ejemplo:
durante el cual el software se transfiere progresivamente desde el caso de problemas debe surgir Informar a todas las partes interesadas Considerando
desarrollador para el mantenedor [Dek92, Pig97] Modificación que los proyectos de desarrollo de software normalmente puede durar desde algunos
meses hasta unos pocos años, la fase de mantenimiento suele durar muchos años.
Solicitud aceptación / rechazo: Haciendo estimaciones de los recursos es un elemento clave de la planificación del
modificación Solicitud de trabajo sobre un cierto mantenimiento. Esos recursos deben ser incluidos en los presupuestos de planificación
Tamaño / esfuerzo / complejidad pueden ser rechazados por los mantenedores y de proyectos de los desarrolladores. Software de planificación de mantenimiento debe
desviados a un desarrollador [Dor02], (Apr01) Solicitud de Modificación y Informe de comenzar con la decisión de desarrollar un nuevo sistema y deben considerar los
problemas de informaciones: una función de soporte al usuario final que objetivos de calidad (IEEE1061-98). Un documento de reflexión debe ser desarrollado,
información (por ejemplo, reglas de negocio, validación, significado de datos y El alcance de la adaptación de mantenimiento del software de la
solicitudes ad-hoc / informes) (Apr03)
identificación del software de proceso de mantenimiento
el mantenimiento de software
Acuerdos de Nivel de Servicio (SLAs) y contratos de mantenimiento
organización
especializados (de dominio específico) que son responsabilidad de los
Una estimación de mantenimiento del software cuesta El siguiente
mantenedores (Apr01)
paso es desarrollar un plan de mantenimiento de software correspondiente.
3.2.2. Las actividades de apoyo Este plan debe ser preparado durante el desarrollo de software, y debe
[IEEE1219-98: A.7, A.11; IEEE12207.0-96: c6, c7; ITI01;
especificar cómo los usuarios solicitar modificaciones de software o reportar
Pig97: c10s10.2, c18]; (Kaj01)
problemas. Software de planificación de mantenimiento [Pig97] se aborda en
Mantenedores también pueden realizar actividades de apoyo, como la planificación del IEEE 1219 [IEEE1219-98]
mantenimiento de software, gestión de configuración de software, verificación y validación, el e ISO / IEC 14764.
aseguramiento de la calidad del software, las revisiones, auditorías, y la formación de los [ISO14764-99] ISO / IEC14764 proporciona directrices para un plan de
usuarios. mantenimiento.
Otra de las actividades de apoyo, formación mantenedor, también es necesaria. Por último, al más alto nivel, la organización de mantenimiento tendrá que llevar a
[Pig97; IEEE12207.0-96] (Kaj01) cabo actividades de planificación de negocios (y los recursos humanos,
presupuestarios financieros) al igual que todas las otras divisiones de la
3.2.3. actividad de planificación de mantenimiento
organización. La gestión del conocimiento requerido para ello puede encontrarse
[IEEE1219-98: A.3; ISO14764-99: S7; ITI01; Pig97: C7,
en las disciplinas relacionadas con el capítulo de Ingeniería de Software.
C8]
organizativos
c1s1.2 c1s1.0-
[Boe81]
c3 c3 C9 c1s1.2,
c11s1.1,
c11s1.2
6- 10
s5,
S6a, s7 s10.1, S11.4
[Car90]
s7 s7 s7
S6B S6a S6c s5
s10.2,
[Dek92]
c30 c30
c4s11
[Dor97]
[IEEE610.12-90]
10-17
[IEEE1061-98]
v1c9s1.7 Aspectos v1c9s1.6 Personal v1c9s1.1 v1c9s1.1 v1c9s1.1 v1c9s1.5
[IEEE1219-98]
s3.1.1, s3.1.12
A.1.7
s3.1.2,
s3.1.7,
[IEEE12207.0-96]
s3, S5.5
[ISO14764-00]
s7, 0, s4.11,
S6.8, S6.2 S4.1, S6.1
s7.2,
[Jon98]
c27 c27
108-124
[Leh97]
c4s7 Proceso
[Par86]
Experiencia
c11s11.3 c12s12.3 c12s12.1 c11s11.5 El c11s11.3 c11s11.3 c11s11.2 c11s11.2
c9s9.4
[Pfl01]
-
[Pig97]
c16
c8 Los c3
c9s9.1-
C31
[Pre04]
[Sta94]
[Tak97]
La Prueba c1
c1, c3-c6
c12 c14
C2, C10
c7s4
c3
Planificación
S2-S3
C8 Software
C18
C6, C7
S6.3 S6.2 S5.5
s5.5.3.2 s8.2.2.1,
s7 s8
s8.3.2.1
c7s1
c11s11.5 c11s11.2
c10s10.2 c14s14.6
C7, ,
c5
239-249
c6s6.3
c4 c3 c7 c2
Tecnología de software procesa ciclo de vida, vol. IEEE,
R ECOMMENDED R EFERENCIAS PARA S OFTWARE 1996.
METRO ANTENIMIENTO
[ISO9126-01] ISO / IEC 9126-1: 2001, Software
Ingeniería-producto Calidad-Parte 1: Modelo de Calidad: ISO e IEC, 2001.
[Abr93] A. Abran y H. Nguyenkim, "Medición del proceso de
mantenimiento a partir de una Demand-Based [ISO14764-99]
Perspectiva," Diario de Mantenimiento de Software: Investigación y ISO / IEC 14764-1999, Software
Práctica, vol. 5, ISS. 2, 63-90, 1993 [] Arn93 RS Arnold, La reingeniería del Mantenimiento de ingeniería del software: ISO e IEC, 1999. [ITI01] IT
software: IEEE Computer Society, 1993. [Art98] LJ Arthur, Evolución del Infrastructure Library "prestación de servicios y soporte de servicio," Stationary
software: El reto de mantenimiento de software: John Wiley & Sons, 1988. Office, Oficina del Gobierno de Comercio de 2001 [Jon98] TC Jones, La
[Ben00] KH Bennett, "Mantenimiento de Software: Un tutorial," en Ingeniería estimación de los costos de software: McGraw-Hill, 1998.
[Gra87] RB Grady y DL Caswell, Métricas de Software: se establece un de Software: Enfoque para profesionales, ed Sexto: McGraw-Hill, 2004.
programa de toda la compañía. Englewood Cliffs NJ, EE.UU.: Prentice-Hall, [SEI01] Software Engineering Institute,
1987. "Capacidad
[IEEE610.12-90] IEEE Std 610.12-1990 (R2002), Glosario IEEE Estándar Modelo integrado de madurez, v1.1," CMU / SEI-2002-TR
de Ingeniería de Software Terminología: 002, ESC-TR-2002-002, de diciembre de 2001 [Sta94] GE Stark, LC Kern
IEEE, 1990. y CV Vowell, "Un software de métrica
[IEEE1061-98] IEEE Std 1061-1998, Norma IEEE para una metodología de para Apoyo de programación
métricas de software de calidad: IEEE, 1998. [IEEE1219-98] IEEE Std Administración," Diario de sistemas y software, vol. 24, ISS. 3, marzo de
1219-1998, Norma IEEE para Mantenimiento de Software: IEEE, 1998. 1994 [Tak97] A. Takang y P. Grubb, Conceptos de software de
mantenimiento y la práctica: Internacional Thomson Computer Press, 1997.
[IEEE12207.0-96]
IEEE / EIA 12207.0-
1996 // ISO / IEC12207: 1995, Implementación de la industria Int. Std.
ISO / IEC 12207: 95, Norma de Información
(Apr00) A. abril y D. Al-Shurougi, "Medición del producto de software para Hall, Englewood Cliffs, NJ 07632, 1992. (Jon91) C.
la evaluación de proveedores", presentado en FESMA2000, Madrid, 2000
(Bol95) C. Boldyreff, E. Burd, R. Hather, R. Mortimer, M. y E. Munro más (Leh97) MM Lehman, "Leyes de la Evolución del software Revisited",
joven, "El enfoque de AMES Comprensión de aplicación: Un estudio de
presentado en EWSPT96, 1997 (Lie81) BP Lientz y EB Swanson, "Los
caso", presentado en las Actas de la Conferencia Internacional sobre
problemas en mainteanance software de aplicación" Comunicaciones del
Mantenimiento de Software -1995, Los Alamitos, CA, 1995 (Boo94) G.
ACM, vol. 24, ISS. 11, 763-769, 1981 (McC02) B. McCracken,
Booch y D. Bryan, Ingeniería de Software con Ada, Tercera edición:
Benjamin / Cummings, 1994. (Cap94) MA y M. Capretz Munro, "Problemas
"Tomar el control de ESO
de administración de configuración de software en el mantenimiento de los
Rendimiento ", presentado en InfoServer LLC, de Dallas, Texas, 2002
sistemas existentes," Diario de Mantenimiento de Software: Investigación y
Práctica, vol. 6, ISS. 2, 1994 (Car92)
(Nie02) F. Niessink, V. Clerk y H. v. Vliet, "The IT Capability Maturity
Model," liberación L2 + 3-0,3 proyecto, 2002, disponible en
http://www.itservicecmm.org/doc/itscmm -123
J. Cardow, "No se puede enseñar Software 0.3.pdf
Mantenimiento !," presentado en Actas de la Sexta Reunión Anual y
(Oma91) PW Omán, J. y D. Hagemeister Ash, "una definición y taxonomía
Conferencia de El software
Management Association, 1992 para el software de mantenimiento, la" Universidad de Idaho, Ingeniería de
Software laboratorio de pruebas, el informe técnico, 91-08 TR de noviembre
(Car94) D. Carey, "Ejecutivo de mesa redonda sobre temas de negocios en
de 1991 (Oma92) Omán y P. J. Hagemeister, "métricas para la evaluación
externalización- tomar la decisión" CIO Canadá,
del software del sistema de mantenimiento," presentado en las Actas de la
ISS. Junio / Julio de 1994
Conferencia Internacional de Software Mantenimiento-1992, los Alamitos,
(Dor97) M. Dorfman y RH Thayer, Eds., "Ingeniería de Software". IEEE
CA, 1992 (Pig93) TM Pigoski, "Software Mantenible: ¿por qué
Computer Society Press, 1997. (Dor02) M. Dorfman y RH Thayer, Eds.,
"Software
FCA Auditoría de Configuración Funcional configuración se aplican a todos los artículos que deben ser controlados, aunque
hay algunas diferencias en la implementación entre CM hardware y software
MTBF Tiempo medio entre fallos
SCR Solicitud de cambio de software actividades para proporcionar la confianza adecuada de que la calidad se está
construyendo en el software. actividades de SCM ayudan en el cumplimiento de
SCSA El software de contabilidad de estado de configuración
estos objetivos SQA. En algunos contextos del proyecto (véase, por ejemplo,
Capacidad de SEI / CMMi del Software del Instituto de Ingeniería IEEE730-02), SQA requisitos específicos prescriben ciertas actividades de SCM.
Integración del Modelo de Madurez
SRS Software de especificación de requisitos Las actividades de SCM son: gestión y planificación del proceso de SMC,
identificación de la configuración de software,
USNRC Comisión de Regulación Nuclear
el control del software de configuración, estado de la configuración de software,
auditoría de configuración de software y gestión de versiones de software y
yo INTRODUCCIÓN
entrega. La figura 1 muestra una representación estilizada de estas actividades.
atención al cliente
también ser pensado como una colección de versiones específicas de los Aseguramiento funcional
gestión
PGCS Equipo
1. Gestión del Proceso de SMC software que caen en esta categoría. Tal vez la relación más estrecha es con las
de la organización responsable de la ingeniería de software procesos de apoyo de software para ser desarrollados tienen el potencial de afectar a la seguridad
pueden estructurarse de varias maneras. Aunque la responsabilidad de llevar a pública, los organismos reguladores externos pueden imponer restricciones
cabo ciertas tareas SCM podría ser asignado a otras partes de la organización, (véase, por ejemplo, USNRC1.169-97). Finalmente, el proceso del ciclo de vida del
tales como la organización de desarrollo, la responsabilidad general de SMC software particular elegido para un proyecto de software y las herramientas
menudo recae sobre un elemento de organización distinta o persona seleccionadas para implementar el software afecta al diseño y la implementación
del proceso de SMC. [Ber92]
designada. El software se desarrolló con frecuencia como parte de un sistema
más grande que contiene los elementos de hardware y firmware. En este caso,
las actividades de SCM se llevan a cabo en paralelo con las actividades de
hardware y firmware CM, y deben ser compatibles con CM a nivel de sistema.
Buckley [Buc96: c2] describe SMC dentro de este contexto. Tenga en cuenta Una guía para el diseño y la implementación de un proceso de SMC también
que el firmware contiene hardware y software, por lo tanto, ambos conceptos se puede obtener de 'mejores prácticas', como se refleja en las normas sobre
CM de hardware y software son aplicables. la ingeniería de software emitida por los diversos organismos de
normalización. Moore [Moo98] proporciona una guía para estas organizaciones
y sus normas. La mejor práctica se refleja también en los modelos de mejora
de procesos y evaluación de procesos como
El software
Madurez de Capacidades del Instituto de Ingeniería de Integración del
SMC podría interactuar con la actividad de aseguramiento de la calidad de una modelo (SEI / CMMi) (SEI01) y IEC15504 Software Ingeniería de Procesos
organización en temas como la gestión de documentos y artículos no conformes. de Evaluación-ISO / (ISO / IEC
Respecto al primero, algunos artículos bajo control SMC también pueden incluir 15504-98).
datos sobre los proyectos sujetos a las disposiciones de la garantía de calidad de la
organización
Configuración Gestión de la
Gestión del Identificación de Configuración Configuración
del software Entrega de
Proceso de la configuración de del software del software
Determinación Software y
SMC software Controlar Revisión de cuentas
del estado de Entrega
La vigilancia de las
SMC
Medidas SCM
y
Medición
En-Proceso de
Auditorías de SMC
1.3. La planificación de SMC 1.3.1. SMC organización y responsabilidades [Ber92: c7; Buc96: C3; IEEE828-98:
[Dar90: c2; IEEE12207.0-96: c6.s2.1; Som01: c4s2] Para evitar la confusión sobre quién llevará a cabo las actividades de SCM
c29]
dados o tareas, las organizaciones que participan en el proceso de SMC
La planificación de un proceso de SMC para un proyecto dado debe ser coherente necesidad
con el contexto de la organización, las restricciones aplicables, orientación
para ser claramente identificado. Específico
comúnmente aceptada, y la naturaleza del proyecto (por ejemplo, el tamaño y la
responsabilidades para las actividades o tareas SCM dados también tienen que ser
criticidad). Las actividades principales
asignados a entidades de organización, ya sea por título o por el elemento de la
cubierto son: Configuración del software
organización. La autoridad y la presentación de informes canales globales para SMC
Identificación, Control de Software de Configuración, Configuración de Software de
también deben ser identificados, aunque esto puede ser logrado en la etapa de
Contabilidad estado, la configuración de auditoría del software y software de
planificación de la gestión de proyectos o la garantía de calidad.
gestión de emisiones y entrega. Además, cuestiones como la organización y
responsabilidades, recursos y horarios, la selección de herramientas y la
aplicación, el control de proveedores y subcontratistas, y el control de la interfaz 1.3.2. SMC Recursos y horarios [Ber92: c7; Buc96: C3; IEEE828-98: c4s4; c4s5]
son típicamente considerados. Los resultados de la actividad de planificación se Planificación de SMC identifica el personal y las herramientas que participan en la
registran en un Plan de SCM (SCMP), que es típicamente sujeto a SQA revisión y realización de actividades y tareas de SCM. Se abordan cuestiones de
auditoría. programación mediante el establecimiento de secuencias necesarias
Cambio y Autorización y
herramientas manuales, herramientas automatizadas que proporcionen una única del cambio de auditoría
Aprobación Preparación
capacidad de SMC, herramientas automatizadas que integran una gama de SCM (y
quizás otras) capacidades, o entornos de herramientas integradas que satisfacen las
figura 3 Caracterización de las herramientas de SCM y relacionados
necesidades de múltiples participantes en el proceso de ingeniería de software (por
procedimientos
ejemplo, SCM, de desarrollo, V y V). apoyo herramienta automatizada se convierte
En este ejemplo, los sistemas de gestión de código de apoyar el funcionamiento de las
cada vez más importante, y cada vez más difícil de establecer, ya que los proyectos
bibliotecas de software mediante el control de acceso a los elementos de la biblioteca, la
crecen en tamaño y, como entornos de proyectos se vuelven más complejas. Estas
coordinación de las actividades de múltiples usuarios, y ayudar a hacer cumplir los
procedimientos operativos. Otras herramientas apoyan el proceso de construcción de
herramienta
software y documentación de la versión de los elementos de software contenidos en las
capacidades proporcionan soporte para:
bibliotecas. Herramientas para la gestión de solicitudes de cambio de software compatibles
la Biblioteca SMC
con los procedimientos de control de cambios aplicados a elementos de software
la solicitud de cambio de software (SCR) y los procedimientos de aprobación controladas. Otro
herramientas pueden proporcionar la base de datos
código (y el trabajo relacionado productos) y las tareas de gestión de capacidades de gestión y de información para la gestión, desarrollo,
y las actividades de aseguramiento de la calidad. Como
cambios
se mencionó anteriormente, las capacidades de varios tipos de herramientas pueden ser
la presentación de informes de estado de configuración de software y la recogida de
integrados en sistemas SCM, que a su vez están estrechamente acoplados a varias otras
mediciones de SCM
actividades de software. En la planificación, el ingeniero de software recoge herramientas
software de auditoría de configuración SCM aptos para el trabajo. Planificación considera los problemas que puedan surgir en la
gestión y seguimiento de la documentación de software que realiza el aplicación de estas herramientas, especialmente si alguna forma de cambio de cultura es
necesario. Una visión general de los sistemas de SCM y consideraciones de selección se
software construye
da en [Dar90: c3, AppA], y un estudio de caso sobre la selección de un sistema SCM se da
gestión y seguimiento de versiones de software y su entrega en [Mid97]. Información complementaria sobre las herramientas de SCM se puede
encontrar en las herramientas de ingeniería de software y métodos KA.
muestra una asignación de representante de herramienta Consideraciones similares se aplican al software subcontratado. En este caso, los
capacidades y procedimientos a SCM Actividades. requisitos de SCM a ser impuestas sobre el proceso de SMC del subcontratista
como parte del subcontrato y también necesitan ser establecidos los medios para
la vigilancia del cumplimiento. Este último incluye la consideración de lo que debe
estar disponible para la vigilancia del cumplimiento efectivo de información SMC.
planificación para el proceso de SMC considera cómo se identificarán los hacer más fácil la tarea de vigilancia. Algunas herramientas facilitan la conformidad del
elementos de interfaz y cómo se gestionen y cambios en los elementos. El papel proceso al tiempo que proporciona flexibilidad para el ingeniero de software para adaptar
SMC puede ser parte de un proceso a nivel de sistema más grande para la los procedimientos. Otras herramientas de cumplir proceso, dejando el ingeniero de
especificación y control de la interfaz, y puede involucrar a las especificaciones de software con menos flexibilidad. requisitos de vigilancia y el nivel de flexibilidad para ser
interfaz, planes de control de interfaz, y los documentos de control de interfaz. En proporcionados al ingeniero de software son consideraciones importantes en la selección
este caso, la planificación de SMC para el control de la interfaz tiene lugar dentro de herramientas.
del contexto del proceso a nivel de sistema. Una discusión de los resultados de las
actividades de control de interfaz se da en [Ber92: c12].
1.5.1. medidas SCM y la medición [Buc96: C3;
Roy98]
SCM medidas pueden ser diseñados para proporcionar información específica sobre
1.4. Plan de SMC [ Ber92: c7; Buc96: C3; Pau93: L2-81] Los
el producto en evolución o para proporcionar información sobre el funcionamiento del
resultados de la planificación SMC para un proyecto dado se registran en un
proceso de SMC. Uno de los objetivos relacionados con el proceso de seguimiento
Plan de Software Configuration Management (SCMP), un 'documento vivo' que
de SMC es descubrir las oportunidades de mejora de procesos. Las mediciones de
sirve como referencia para el proceso de SMC. Se mantiene (es decir,
los procesos SCM proporcionan un buen medio para el seguimiento de la eficacia de
actualizada y aprobada) según sea necesario durante el ciclo de vida del
las actividades de SCM de manera continua. Estas mediciones son útiles para
software. En la ejecución del PGCS, normalmente es necesario desarrollar una
caracterizar el estado actual del proceso, así como en proporcionar una base para
serie de procedimientos más detallados, subordinados que define cómo los hacer comparaciones en el tiempo. El análisis de las mediciones puede producir
requisitos específicos se llevará a cabo durante las actividades del día a día. puntos de vista principales para procesar cambios y actualizaciones
correspondientes al SCMP.
Después del proceso de SMC se ha implementado, un cierto grado de vigilancia aspectos seleccionados del proceso y puede ser coordinado con la función SQA.
puede ser necesario para garantizar que las disposiciones de la PGCS se llevan Véase también la subzona 5. Auditoría del software de configuración.
gestión de elementos controlados. Estas actividades proporcionan la base para las versión de un elemento de software es un elemento identificado y especificado en particular.
otras actividades de la SCM. Puede ser considerado como un estado de un elemento en evolución. [Con98: c3-c5] A revisión
es una nueva versión de un elemento que está destinado a reemplazar la antigua versión
del artículo. UN
2.1. Los productos de identificación a ser controlado
variante es una nueva versión de un elemento que se añadirá a la configuración sin
[Ber92: c8; IEEE828-98: c4s3.1; Pau93: L2-83; Som05:
tener que reemplazar la versión antigua.
c29]
2.1.5. Base
Un primer paso en el control de cambio es identificar los elementos de software que
[Bab86: c5; Buc96: C4; Pre04: c27] Una línea de base software es un
deben ser controlados. Esto implica la comprensión de la configuración del software en
el contexto de la configuración del sistema, la selección de los elementos de
conjunto de elementos de configuración de software designadas formalmente y fijos
configuración de software, desarrollo de una estrategia para los elementos de software en un momento específico durante el ciclo de vida del software. El término también
de etiquetado y la descripción de sus relaciones, y la identificación de las líneas de base se utiliza para referirse a una versión particular de un elemento de configuración de
que se utiliza, junto con el procedimiento para la adquisición de una línea de base de los software que ha sido acordado. En cualquier caso, la línea de base sólo puede
artículos . modificarse a través de procedimientos formales de control de cambios. Una línea
de base, junto con todos los cambios aprobados en la línea de base, representa la
configuración actual aprobado. líneas de base comúnmente utilizados son los,
2.1.1. configuración Software [Buc96: c4;
asignados, y las líneas de base funcionales de desarrollo de productos (véase, por
c6, Pre04: c27]
ejemplo, [Ber92]). La línea de base funcional corresponde a los requisitos del
Una configuración de software es el conjunto de características sistema revisado. La línea de base asignado corresponde a la especificación y el
funcionales y físicas de software como se establece en la documentación software de los requisitos de software revisado
técnica o logrado en un producto (IEEE610.12-90). Puede ser visto como
parte de una configuración general del sistema.
interfaz requisitos
2.1.2. elemento de configuración de software [Buc96: C4; C6; especificación. La línea de base del desarrollo representa la configuración de
Con98: c2; Pre04: c27] software que evoluciona a la hora seleccionada durante el ciclo de vida del software.
Cambio autoridad de esta línea de base normalmente recae principalmente en la
Un elemento de configuración de software (SCI) es una agregación de software
organización de desarrollo, pero puede ser compartida con otras organizaciones (por
designado para gestión de la configuración, y es tratado como una entidad única
ejemplo, SMC o de prueba). La línea de base del producto se corresponde con el
en el proceso de SCM (IEEE610.12-
producto de software completado entregado para
90). Una variedad de artículos, además del código en sí mismo, se controla típicamente
sistema
por SMC. los elementos de software con potencial para convertirse en LIC incluyen
integración. Las líneas de base que se utilizará para un proyecto dado, junto con sus
planos, especificaciones y documentación de diseño, ensayos de materiales,
correspondientes niveles de autoridad necesaria para aprobar el cambio, se
herramientas de software, la fuente y el código ejecutable, librerías de código, datos y
identifican típicamente en el PGCS.
diccionarios de datos y documentación
para instalación, mantenimiento, 2.1.6. La adquisición de los elementos de configuración de software [Buc96:
Selección de LIC es un proceso importante en el que se debe lograr un equilibrio los elementos de configuración de software se colocan bajo control SCM en
entre proporcionar una visibilidad adecuada para los propósitos de control de diferentes momentos; es decir, que se incorporan en una línea de base en particular
proyectos y proporcionar un número manejable de artículos controlados. Una lista en un punto particular en el ciclo de vida del software. El evento desencadenante es
de criterios para la selección SCI se da en [Ber92]. la realización de algún tipo de tarea formal de aceptación, tales como una revisión
formal. La Figura 2 caracteriza el crecimiento de artículos baselined como las
ganancias del ciclo de vida. Esta cifra se basa en el modelo de cascada para los
2.1.3. Software relaciones entre los elementos de configuración [Con98:
propósitos de la ilustración solamente; los subíndices usados en la figura indican
c2; Pre04: c27]
versiones de los artículos en evolución. La solicitud de cambio de software (SCR) se
Las relaciones estructurales entre los LIC seleccionados, y sus partes describe en el tema 3.1 Solicitar, evaluar y aprobar los cambios de software.
constituyentes, afectan a otras actividades o tareas SCM, tales como la construcción
de software o el análisis del impacto de los cambios propuestos. seguimiento
adecuado de estas relaciones también es importante para apoyar la trazabilidad. El
diseño del esquema de identificación para el LIC debe considerar la necesidad de
asignar los elementos identificados a la estructura del software, así como
control de SCR de
Código UN Código segundo
3.1. Solicitar, evaluar y cambios que aprueba Software
modelos SRS
Los Los
control de SCR de
[IEEE828-98: c4s3.2; Pre04: c27; Som05: c29] El primer paso en la
planes de prueba UN planes de prueba segundo
SRS, modelos SDD gestión de los cambios a los artículos controlados es determinar qué cambios
Manual de hacer. El proceso de solicitud de cambio de software (véase la figura 5)
SCR de control de usuario UN proporciona los procedimientos formales para la entrega y el registro de las
SRS, Código SDD,
Prueba de
solicitudes de cambio, evaluar el coste potencial y el impacto de un cambio
planes de prueba
regresión DB UN
propuesto, y aceptar, modificar o rechazar el cambio propuesto. Las solicitudes de
cambios en los elementos de configuración de software pueden ser originados por
Figura 4 Adquisición de artículos
cualquier persona en cualquier momento del ciclo de vida del software y pueden
Tras la adquisición de un SCI, cambios en el elemento deben ser aprobados incluir una propuesta de solución y la prioridad solicitada. Una fuente de
formalmente como apropiado para el SCI y la línea de base que participan, como solicitudes de cambio es el inicio de una acción correctiva en respuesta a informes
se define en el PGCS. Después de la aprobación, el elemento se incorpora en la de problemas. Independientemente de la fuente, el tipo de cambio (por ejemplo,
línea de base software de acuerdo con el procedimiento adecuado. defecto o mejora) que se registra en el SCR.
biblioteca de software es una colección controlada de software y la documentación relacionada Necesidad de Investigación
Cambio preliminar
diseñado para ayudar en el desarrollo de software, uso y mantenimiento (IEEE610.12-90).
podría apoyar la codificación y una biblioteca de soporte proyecto podría apoyar la prueba, Aprobado
SCR generada
mientras que una librería maestra podría ser utilizado para los productos terminados. Un nivel o actualizados
Asignar al
ingeniero de por lo general también existe
adecuado de control SCM (línea de base y nivel de autoridad para el cambio asociado) está software 'Ruta de emergencia'. Los
ser compatible con las necesidades de control de SMC para esa biblioteca, tanto en términos de Figura 5 Flujo de un proceso de Control de Cambios Esto proporciona
control de LIC y controlar el acceso a la biblioteca. A nivel biblioteca de trabajo, se trata de una una oportunidad para el seguimiento de defectos y la recolección de mediciones
capacidad de gestión de código de servir a los desarrolladores, mantenedores, y SCM. Se centra de la actividad por tipo de cambio de cambio. Una vez que se recibe una SCR,
en la gestión de las versiones de los elementos de software, mientras que el apoyo a las una evaluación técnica (también conocido como un análisis de impacto) se lleva a
actividades de múltiples desarrolladores. En los niveles más altos de control, el acceso es más cabo para determinar la extensión de las modificaciones que serían necesarias se
restringida y SCM es el usuario principal. Se centra en la gestión de las versiones de los debe aceptar la solicitud de cambio. Una buena comprensión de las relaciones
elementos de software, mientras que el apoyo a las actividades de múltiples desarrolladores. En entre el software (y, posiblemente, hardware) elementos es importante para esta
los niveles más altos de control, el acceso es más restringida y SCM es el usuario principal. Se tarea. Por último, una autoridad establecida, en consonancia con la línea de base
centra en la gestión de las versiones de los elementos de software, mientras que el apoyo a las afectada, el SCI involucrados, y la naturaleza del cambio, evaluará los aspectos
actividades de múltiples desarrolladores. En los niveles más altos de control, el acceso es más técnicos y de gestión de la solicitud de cambio y, o bien aceptar, modificar,
restringida y SCM es el usuario principal. rechazar o posponer el cambio propuesto.
Estas bibliotecas son también una importante fuente de información para las 3.1.1. Junta de Control de Configuración de Software [Ber92: C9; Buc96: c9, c11;
mediciones de trabajo y progreso. Pre04: c27] La autoridad para aceptar o rechazar los cambios propuestos se
apoya con una entidad típicamente conocida como un tablero de control de
3. Control de Configuración de Software
configuración (CCB). En proyectos más pequeños, esta autoridad puede residir de
[IEEE12207.0-96: c6s2.3; Pau93: L2-84] control de la configuración manera efectiva con el líder o una persona asignada en lugar de una tabla de
del software se ocupa de la gestión de cambios durante el ciclo de vida del varias personas. Puede haber varios niveles de autoridad cambian dependiendo
software. Cubre el proceso para determinar qué cambios hacer, la de una variedad
autoridad de
vínculo entre esta capacidad de la herramienta y el sistema de notificación de medida que avanza el ciclo de vida. Al igual que en cualquier sistema de
problema puede facilitar el seguimiento de soluciones para problemas detectados. información, el
descripciones de cambio de proceso y las formas de apoyo (información) se dan en información de estado de configuración para ser administrado para las
una variedad de referencias, por ejemplo [Ber92: c9]. configuraciones cambiantes deben ser identificados, recogidos, y mantenido.
Diversa información y las mediciones son necesarias para apoyar el proceso de
SMC y para cumplir con el estado de configuración de informes necesidades de
gestión, ingeniería de software, y otras actividades relacionadas. Los tipos de
3.2. Cambios en el software de aplicación
información disponibles incluyen la identificación de la configuración aprobada,
[Bab86: C6; Ber92: C9; Buc96: c9, c11; IEEE828- 98: c4s3.2.4;
así como la identificación y el estado actual implementación de los cambios,
Pre04: c27; Som05: c29] SCRs aprobados se implementan utilizando los
desviaciones, y las renuncias. Una lista parcial de los elementos de datos
procedimientos de software definidos de acuerdo con los requisitos de
importantes se da en [Ber92: c10].
programación aplicables. Puesto que un número de SCRs aprobados podría
implementarse de forma simultánea, es necesario proporcionar un medio para
el seguimiento que SCRs se incorporan en las versiones de software
particulares y líneas de base. Como parte del cierre del proceso de cambio, Algún tipo de apoyo herramienta automatizada es necesaria para llevar a cabo la
completaron cambios pueden someterse a auditorías de configuración y recogida de datos SCSA y las tareas de informes. Esto podría ser una capacidad de
verificación de la calidad del software. Esto incluye asegurarse de que se han base de datos, o podría ser una herramienta independiente o una capacidad de un
realizado cambios aprobados. El proceso de solicitud de cambio descrito entorno de herramientas más amplio e integrado.
La implementación real de un cambio se apoya en la biblioteca equipo de desarrollo, el equipo de mantenimiento, gestión de proyectos y
herramientacapacidades, que proporcionan versión actividades de calidad de software. Informes pueden tomar la forma de consultas
gestión y apoyo repositorio de código. Como mínimo, estas herramientas ad hoc para responder a preguntas específicas o la producción periódica de
proporcionan capacidades de control de versiones y Registro de entrada / salida informes pre-diseñados. Parte de la información producida por la actividad
asociados. herramientas más potentes pueden apoyar el desarrollo paralelo y contable de estado durante el curso del ciclo de vida podría convertirse en los
entornos distribuidos geográficamente. Estas herramientas se pueden manifestar registros de control de calidad.
como aplicaciones especializadas separadas bajo el control de un grupo de SMC
independiente. También pueden aparecer como una parte integrada del entorno
de la ingeniería de software. Por último, pueden ser tan elemental como un
Además de informar el estado actual de la configuración, la información
sistema de control de cambios rudimentaria provisto de un sistema operativo.
obtenida por el SCSA puede servir como base para varias mediciones de
interés a la gestión, el desarrollo, y SMC. Los ejemplos incluyen el número
de solicitudes de cambio por SCI y el tiempo medio necesario para
3.3. Desviaciones y renuncias ejecutar una solicitud de cambio.
[Ber92: c9; Buc96: c12]
[IEEE828-98: c4s3.4; IEEE12207.0-96: c6s2.5; Pau93: plataformas o versiones con diferentes capacidades, con frecuencia es necesario
L2-86; Pre04: c276c27] volver a crear versiones específicas y empaquetar los materiales adecuados para la
entrega de la versión. La biblioteca de software es un elemento clave en la
Una auditoría de software es una actividad realizada para evaluar de forma
realización de tareas de liberación y entrega.
independiente la conformidad de los productos y procesos de software aplicables
a reglamentos, normas, directrices, planes,
y procedimientos (IEEE1028-97). Las auditorías son 6.1. Edificio de software
llevado a cabo de acuerdo con un proceso bien definido que consiste en diversas [Bab86: C6; Som05: c29] edificio Software es la actividad de la
funciones y responsabilidades auditor. En consecuencia, cada auditoría debe ser combinación de las versiones correctas de los elementos de configuración de
cuidadosamente planificado. Una auditoría puede requerir una serie de personas para software, utilizando los datos de configuración apropiados, en un programa
llevar a cabo una variedad de tareas durante un período relativamente corto de tiempo. ejecutable para la entrega a un cliente u otro receptor, tal como la actividad de
Herramientas para apoyar la planificación y realización de una auditoría puede facilitar pruebas. Para sistemas con hardware o firmware, el programa ejecutable se
enormemente el proceso. Orientación para la realización de las auditorías de software está entrega a la actividad de la construcción del sistema. Construir instrucciones de
disponible en varias referencias, como [Ber92: c11; Buc96: c15] y (IEEE1028-97). asegurar que las medidas adecuadas se toman construcción y en la secuencia
correcta. Además de la creación de software para los nuevos lanzamientos, por lo
general es también necesaria para SMC para tener la capacidad de reproducir
versiones anteriores para la recuperación, pruebas, mantenimiento o efectos
La actividad de auditoría de configuración de software determina la medida en
que un elemento satisface las características funcionales y físicas requeridas. adicionales de liberación.
auditorías informal de este tipo puede llevarse a cabo en puntos clave del ciclo
de vida. Hay dos tipos de auditorías formales podrían ser requeridos por el
contrato de gobierno (por ejemplo, en los contratos que garanticen software El software se construye a partir de versiones particulares de herramientas de apoyo,
crítico): la Auditoría funcional de configuración (FCA) y la configuración de tales como compiladores. Puede ser que sea necesario reconstruir una copia exacta de
auditoría física (PCA). un elemento de configuración de software previamente construida. En este caso, las
La conclusión con éxito de herramientas de apoyo y las instrucciones de construcción asociados deben estar bajo el
estas auditorías pueden ser un requisito previo para el establecimiento de la línea control de SMC para garantizar la disponibilidad de las versiones correctas de las
base del producto. Buckley [Buc96: c15] contrasta los efectos de la FCA y PCA herramientas. Una capacidad de herramienta es útil para la selección de las versiones
en contextos de hardware frente de software, y recomienda una cuidadosa
correctas de los elementos de software para un entorno de destino dado y para
evaluación de la necesidad de un software de FCA y PCA antes de realizar ellos.
automatizar el proceso de construcción del software de las versiones seleccionadas y
datos de configuración apropiados. Para grandes proyectos con el desarrollo paralelo o
5.1. Software de Auditoría de Configuración Funcional desarrollo distribuido
Como se mencionó anteriormente, las auditorías pueden llevarse a cabo durante el proceso
de desarrollo para investigar el estado actual de los elementos específicos de la 6.2. Gestión de la Entrega de Software
configuración. En este caso, una auditoría se podría aplicar a los elementos de línea de [Som05: c29]
base de la muestra para asegurar que el rendimiento es consistente con las
Software gestión de la liberación engloba el
especificaciones o para asegurar que la documentación de la evolución sigue siendo
la identificación, el empaquetado, y la entrega de los elementos de un producto, por
compatible con el elemento de referencia en desarrollo.
ejemplo, el programa ejecutable, documentación, notas de liberación, y datos de
configuración. Teniendo en cuenta que los cambios de producto pueden producirse de
manera continua, una preocupación por la gestión de la liberación es determinar cuándo
6. El software de administración de lanzamientos y Entrega
deben emitir un comunicado. La gravedad de los problemas abordados por la liberación
[IEEE12207.0-96: c6s2.6] y mediciones de las densidades de fallos de versiones anteriores afecta esta decisión.
(Som01) La tarea de envasado debe identificar qué elementos del producto han de ser
El término “liberación” se utiliza en este contexto para referirse a la distribución de
entregadas, y luego seleccione el
un elemento de configuración de software fuera de la actividad de desarrollo. Esto
incluye versiones internas en las
[Bab86]
c6 c6 c5 c2
7-11
[Ber92]
c11 c10 c10 C9 C9 C9 C9 c14 c8 c7 c12 c13 c15 c7 c7 c5 c4
* *
[Buc96]
c15 c13 c13 c12 c4 c4 c4 c15 c3 c3 c11 c3 c3 c2
*
[Con98]
c2 c2 c6
c3, App A
[Dar9 0 ]
c2 c2
c4s1, c4s2.3
[IEEE828-98]
c4s4,
c4s3.2.4
c4s3.4 c4s3.3 c4s3.2 c4s3.1 c4s3.1 c4s3.5 control c4s2.1
recursos
c4 c4
[IEEE12207.0-96]
c6s2.6 c6s2.5 c6s2.4 c6s2.3 c6s2.2
6.2.1
[Mid9 7 ]
*
[Moo9 8 ]
*
[Pau9 3 ]
L2-86 L2-85 L2-84 L2-82 L2-83 L2-81
medidas
c26, c27
[Pre04]
c27 c27 c27 proceso c27 c27 c27 Las c27
relaciones
188-202,
[Roy98]
*
[Som0 5 ]
c29 c29 c29 c29 tablero c29 La organización
1996 // ISO / IEC12207: 1995, Implementación de la industria Int. Std.
R ECOMMENDED R EFERENCIAS PARA SMC ISO / IEC 12207: 95, Norma para Tecnología de la
Información-Software Procesos del ciclo de vida, vol. IEEE,
[Bab86] WA Babich, Configuración del software 1996.
Gestión, coordinación de la productividad del equipo:
[Mid97] AK Midha, "Configuración del software
Addison-Wesley, 1986. [Ber92] HR
Gestión para el siglo 21" Bell Labs Technical Journal, vol. 2, ISS. 1,
Berlack, Configuración del software
154-165, Winter, 1997 [Moo98] JW Moore, Estándares de Ingeniería de
Administración. Nueva York: John Wiley & Sons, 1992. [Buc96]
Software, Plan de trabajo de un usuario. Los Alamitos, CA: IEEE Computer
FJ Buckley, Configuración de Aplicación Society, 1998.
Gestión: hardware, software y firmware, Segunda ed. Los Alamitos, CA:
IEEE Computer Society Press,
[Pau93] MC Paulk y otros, "Prácticas clave del Modelo de Madurez de la
1996.
Capacidad, Versión 1.1," Instituto de Ingeniería de Software de la
[Con98] R. Conradi y B. Westfechtel, "Modelos de versión para
Universidad Carnegie Mellon, Informe Técnico CMU / SEI-93-TR-025,
Gestión de la Configuración de Software," ACM Computing
1993 [Pre04] RS Pressman, Ingeniería de Software: Enfoque para
Surveys, vol. 30, ISS. 2, junio, 1998 [Dar90] SA Dart, Espectro de
profesionales, ed Sexto: McGraw-Hill, 2004. [Roy98] W. Royce, Software
funcionalidad en Sistemas de Gestión de la Configuración. Carnegie
de gestión de proyecto, un Estados Marco: Addison-Wesley, 1998.
Mellon University: Software Engineering Institute, 1990. [IEEE828-98]
[Som05] I. Sommerville, Ingeniería de software, Séptima edición:
IEEE Std 828 a 1.998, Norma IEEE para los planes de gestión de
Addison-Wesley, 2005.
configuración de software: IEEE, 1998. [IEEE12207.0-96]
UN CRONYM
procesos del ciclo de vida del software que complican eficaz de gestión-solo mejoras, por ejemplo. Otro aspecto importante de la gestión de personal de
algunos de los cuales son los siguientes: gestión es: políticas y procedimientos para la contratación, la capacitación y
motivación del personal, y orientación para el desarrollo profesional son
importantes no sólo a nivel de proyecto, sino también para el éxito a largo plazo de
La percepción de los clientes es tal que a menudo hay una falta de
una organización. el personal de ingeniería de software pueden presentar gestión
apreciación de la complejidad inherente a la ingeniería de software,
de la formación o el personal único
particularmente en relación con el impacto de los cambios en los
requisitos.
retos (para ejemplo,
Es casi inevitable que la ingeniería de software propios procesos el mantenimiento de la moneda en un contexto donde la tecnología
generará la necesidad de requisitos nuevos o modificados cliente. subyacente sufre un cambio continuo y rápido). gestión de la comunicación
también se menciona a menudo como una, pero se pasa por alto los aspectos
Como resultado, el software se construye a menudo en un proceso iterativo en lugar de una principales de la actuación de los individuos en un campo en el que es
secuencia de tareas cerradas. necesaria la comprensión precisa de las necesidades del usuario y de las
necesidades complejas y diseños. Por último, la gestión de carteras, que es la
La ingeniería de software incorpora necesariamente aspectos de la
capacidad de tener una visión de conjunto, no sólo del conjunto de software
creatividad y la disciplina, manteniendo un equilibrio adecuado entre los
en fase de desarrollo, sino también del software ya está en uso en una
dos es a menudo difícil. El grado de novedad y complejidad del software es
organización,
a menudo extremadamente alta.
es necesario.
Por otra parte, la reutilización de software es un factor clave en el mantenimiento
Hay una rápida tasa de cambio en la tecnología subyacente. Con y la mejora de la productividad y la competitividad. reutilización efectiva requiere
Respeto una visión estratégica que refleja la energía y los requisitos de esta técnica única.
Además de comprender los aspectos de gestión que son influenciados de forma
a la ingeniería de software, administración
las actividades suceden a tres niveles: de organización y única por el software, los ingenieros de software deben tener algún conocimiento
la gestión de infraestructuras, gestión de proyectos, y la planificación y el de los aspectos más generales, incluso en los primeros cuatro años después de
control del programa de medición. Los dos últimos se tratan en detalle en esta la graduación que se apunta en la Guía.
gestión de la calidad del proyecto, gestión de recursos humanos del proyecto, describen
La Dirección de Ingeniería de Software KA consiste tanto en el proceso de segundo REAKDOWN DE T OPICS PARA S OFTWARE mi NGENIERÍA
gestión de proyectos de software, en sus primeros cinco sub-áreas, y la METRO GESTIÓN
medición de la ingeniería de software en la última subzona. Si bien estos dos
temas son a menudo considerados como separados, y de hecho lo hacen A medida que la Ingeniería de Software de Gestión de KA es visto aquí como
poseen muchos aspectos únicos, su estrecha relación ha llevado a su un proceso organizativo que incorpora la noción de proceso y gestión de
tratamiento combinado en este KA. Por desgracia, una percepción común de proyectos, hemos creado una crisis que es a la vez basado en temas y la vida
la industria del software es que ofrece productos finales, por encima del basadas en el ciclo. Sin embargo, la base principal de la ruptura de nivel
presupuesto, y de mala calidad e incierto superior es el proceso de gestión de un proyecto de ingeniería de software.
Hay seis subzonas. Los primeros cinco subzonas siguen en gran medida la
funcionalidad. La medición-informada IEEE / EIA Proceso de Gestión de 12207. Los seis sub-áreas son:
-gestión de un principio asumido de cualquier disciplina de ingeniería
cierto-puede ayudar a girar alrededor de esta percepción. En esencia, la
gestión sin medición, cualitativo y cuantitativo, sugiere una falta de rigor, y Iniciación y definición del alcance, que trata de la decisión de iniciar un
la medición sin gestión sugiere una falta de propósito o contexto. De la proyecto de ingeniería de software
misma manera, sin embargo, la gestión y la medición sin conocimiento
la planificación de proyectos de software, las cuales aborda las actividades
experto es igualmente ineficaz, por lo que debemos tener cuidado de
realizadas para prepararse para una ingeniería de software con éxito, desde
evitar un excesivo énfasis en los aspectos cuantitativos de Gestión de
una perspectiva de gestión
Ingeniería de Software (SEM). La gestión eficaz requiere una combinación
de números y experiencia. promulgación de proyectos de software, que se ocupa de las actividades de gestión de la
ingeniería de software generalmente aceptados que se producen durante la ingeniería
de software
Las siguientes definiciones de trabajo se adoptan aquí: Revisión y evaluación, que se refieren a la seguridad de que el software es
satisfactoria
Proceso de gestión se refiere a las actividades que se llevan a cabo
con el fin de garantizar que los procesos de ingeniería de software se Cierre, que se ocupa de las actividades posteriores a la finalización de un proyecto de
llevan a cabo de una manera consistente con las políticas, objetivos y ingeniería de software
Proceso de medida
Proceso para el Esfuerzo, Planificar y Realizar el
examen y revisión Estimación de Costos proceso de
de los requisitos medición
Gestión de la
informes
calidad
Los ingenieros de software? Se debe asegurar que la capacidad y los recursos La selección del modelo de ciclo de vida del software apropiado (por ejemplo,
necesarios están disponibles en forma de personas, experiencia, instalaciones, espiral, prototipado evolutivo) y la adaptación e implementación
infraestructura y apoyo (ya sea interna o externamente) para asegurar que el de los procesos del ciclo de vida del software apropiadas se llevan a cabo a la
proyecto puede ser completado con éxito en una manera oportuna y rentable luz del alcance y los requisitos del proyecto en particular. También se
(utilizando, por ejemplo, una matriz requisito-capacidad). A menudo, esto seleccionan los métodos y herramientas pertinentes. [Dor02: v1c6, v2c8;
requiere un poco de 'bola del parque' estimación de esfuerzo y costo basado Pfl01: c2; Pre04: c2; Rei02: c1, c3, c5; Som05: C3; Tha97: c3] A nivel de
en métodos adecuados (por ejemplo, técnicas analogía expertos informados). proyecto, métodos y herramientas apropiadas se utilizan para descomponer el
proyecto en tareas, con entradas asociadas, salidas y condiciones de
finalización (por ejemplo, el trabajo de estructura descomposición). [Dor02:
v2c7; Pfl01: C3; Pre04: c21; Rei02: c4, c5; Som05: C4; Tha97: c4, c6] Esto a
1.3. Proceso para el examen y la revisión de los requisitos
su vez influye en las decisiones sobre la estructura del programa y
Dada la inevitabilidad del cambio, es vital que se llegue a un acuerdo entre las
organización de alto nivel del proyecto.
partes interesadas en este punto temprano como a los medios por los cuales el
alcance y requisitos han de ser examinado y revisado (por ejemplo, a través de
procedimientos de gestión de cambios acordados). Esto implica claramente
2.2. determinar entregables
ese alcance y
requisitos no serán 'inamovibles', pero pueden y deben ser revisados en puntos El producto (s) de cada tarea (por ejemplo, el diseño arquitectónico, informe de
predeterminados como se desarrolla el proceso (por ejemplo, en las revisiones inspección) se especifican y se caracterizó. [Pfl01: c3; Pre04: c24; Tha97: c4] Las
de diseño, revisiones de gestión). Si se aceptan los cambios, entonces algún tipo oportunidades para reutilizar los componentes de software de los desarrollos
de análisis de trazabilidad y análisis de riesgos (ver tema 2..5 Gestión de riesgos) anteriores o para utilizar fuera de la plataforma de productos de software se
evalúan. El uso de software de terceros y adquiridos se planifican y se
se debe utilizar para determinar el impacto de esos cambios. Un enfoque de seleccionan los proveedores.
cambio administrado también debe ser útil cuando se trata de tiempo para
revisar el resultado del proyecto, ya que el alcance y los requisitos deben
2.3. Esfuerzo, horario, y la estimación de costos
servir de base para la evaluación del éxito. [Som05: c6] Véase también el
Sobre la base de la descomposición de tareas, entradas y salidas, el rango
control de la configuración de software
esperado esfuerzo requerido para cada tarea se determina utilizando un modelo de
sub-área de El software
estimación calibrada en base a datos históricos tamaño de esfuerzo donde
Configuración KA Gestión.
disponibles y pertinentes, u otros métodos como el juicio de expertos.
2. Planificación de proyectos de software dependencias de tareas se establecen y posibles cuellos de botella se identifican
mediante métodos adecuados (por ejemplo, análisis de ruta crítica). Los cuellos de
El proceso de planificación iterativa es informado por el alcance y los botella se resuelven cuando sea posible, y el calendario esperado de tareas con
requisitos y por el establecimiento de viabilidad. En este punto, los proyectado horas de inicio, duración, y los tiempos finales es producida (por
procesos del ciclo de vida del software se evalúan y el más apropiado ejemplo, diagrama PERT). necesidades de recursos (personas,
(dada la naturaleza del proyecto, su grado de novedad, su complejidad
funcional y técnica, sus requisitos de calidad, etc.) se selecciona. En su herramientas) se traducen en costos
caso, el proyecto en sí está prevista a continuación, en forma de una estimados. [Dor02: v2c7; Fen98: c12; Pfl01: C3; Pre04: c23, c24; Rei02:
descomposición jerárquica de C5, C6; Som05: c4, c23; Tha97: c5] Esta es una actividad altamente
Tareas, el asociado iterativo que debe ser negociado y revisado hasta que se alcanza un
entregables de cada tarea se especifican y se caracterizaron en términos consenso entre los interesados afectados (principalmente de ingeniería y
de calidad y otros atributos de acuerdo con los requisitos establecidos, y el gestión).
esfuerzo detallada, horario, y se llevaron a cabo la estimación de costos.
2.4. Asignación de recursos
Los recursos se asignan entonces a las tareas a fin de optimizar la
productividad del personal (a nivel individual, equipo, y los niveles de [Pfl01: c3; Pre04: c24; Rei02: c8, c9; Som05: C4; Tha97: c6,
organización), el equipo y la utilización de materiales, y la adhesión a
c7]
horario. detallado de gestión de riesgos se lleva a cabo y el 'perfil de riesgo'
del proyecto se discute entre, y aceptado por todas las partes interesadas Equipos, instalaciones y personas están asociados con las tareas
pertinentes. procesos integrales de gestión de la calidad del software se programadas, incluyendo la asignación de responsabilidades para la
determinan como parte del proceso de planificación en forma de terminación (utilizando, por ejemplo, un diagrama de Gantt). Esta actividad
procedimientos y responsabilidades para la garantía de la calidad del está informado y limitada por la disponibilidad de recursos y su uso óptimo en
software, verificación y validación, opiniones y auditorías (ver la calidad KA esas circunstancias, así como por las cuestiones relativas al personal (por
este punto de la discusión con todos los demás interesados. [Dor02: v2c7;
ejemplo, el esfuerzo personal, la financiación) y los resultados se producen
Pfl01: C3; Pre04: c25; Rei02: c11; Som05: C4; Tha97: c4] aspectos de
(por ejemplo, documentos de diseño arquitectónico, casos de prueba).
cuestión. Los procedimientos relativos a la SQA en curso en todo el proceso y para La adhesión a los diversos planes se evalúa continuamente y a intervalos
el producto de verificación (de entrega) y la validación también se especifican en predeterminados. Se analizan los resultados y condiciones de finalización
esta etapa (por ejemplo, las revisiones e inspecciones técnicas) (véase también la para cada tarea. Entregables se evalúan en términos de sus características
calidad del software KA). requeridas (por ejemplo, a través de revisiones y auditorías). gasto
esfuerzo, horario de la adherencia y los costes hasta la fecha se
2.7. plan de gestión investigan, y se examina el uso de recursos. El perfil de riesgo del
proyecto, se revisa y se evalúa la adherencia a los requisitos de calidad.
[Som05: c4; Tha97: c4]
utilizados para la gestión de la misma. Sin embargo, en un entorno donde el varianza basado en la desviación de real de los resultados y valores esperados.
cambio es una expectativa en lugar de un choque, es vital que los planes se Esto puede ser en forma de exceso de costos, cronograma deslizamiento, y
administran a sí mismos. Esto requiere que la adhesión a los planes de ser similares. se lleva a cabo la identificación y el análisis de otros datos de medición de
dirigida de manera sistemática, ha de examinarse, informó, y, en su caso, calidad y de valores atípicos (por ejemplo, el análisis de la densidad de defectos). La
revisada. Planes asociados a otros procesos de apoyo orientados a la gestión exposición al riesgo y el apalancamiento se vuelven a calcular y decisiones árboles,
(por ejemplo, la documentación, gestión de configuración de software, y la simulaciones, y así sucesivamente se vuelva a ejecutar a la luz de los nuevos datos.
resolución del problema) también deben ser gestionados de la misma manera. Estas actividades permiten la detección del problema e identificación excepción
basada en umbrales excedido. Se informaron los resultados según sea necesario y,
desde luego, donde se superan los umbrales aceptables.
se implementan los planes, y se promulgan los procesos incorporados en [Dor02: v2c7; Rei02: c10; Tha97: c3, C9] Los resultados de las actividades
los planes. En todo momento, hay un enfoque en el cumplimiento de los de supervisión de procesos proporcionan la base sobre la cual se toman las
planes, con una imperiosa
decisiones de acción. Dónde
ejemplo, la decisión de utilizar la creación de prototipos para ayudar en la evaluaciones de desempeño periódicas para el personal del proyecto
validación de los requisitos de software), y / o puede implicar la revisión de los proporciona una visión en cuanto a la probabilidad de cumplimiento de los
diversos planes y otros documentos del proyecto (por ejemplo, la especificación planes, así como posibles áreas de dificultad (por ejemplo, conflictos
de requisitos) a acomodar miembros del equipo). Los diversos métodos, herramientas y técnicas
los resultados inesperados y su empleadas son evaluados por su eficacia e idoneidad, y el propio proceso se
trascendencia. evalúa sistemáticamente y periódicamente por su relevancia, utilidad y
En algunos casos, puede llevar al abandono del proyecto. eficacia en el contexto del proyecto. En su caso, se realizan cambios y
En todos los casos, los procedimientos de control de cambios y gestionados.
gestión de configuración de software se cumplen (véase también el Software
Configuration Management KA), las decisiones se documentan y se comunican a
todas las partes pertinentes, se revisan los planes y modifican cuando es
necesario, y los datos pertinentes se registra en el centro base de datos (véase 5. Cierre
también el tema 6.3 Realizar el proceso de medición).
El proyecto alcanza cierre cuando se han aprobado y completado todos los
planes y procesos incorporados. En esta etapa, se revisan los criterios para
3.6. informes el éxito del proyecto. Una vez que se establece el cierre, se llevan a cabo
[Rei02: c10; Tha97: C3, C10] de archivo, post mortem, y de mejora de procesos actividades.
para los interesados externos (por ejemplo clientes, usuarios). Los informes de esta [Dor02: v1c8, v2c3, C5; Rei02: c10; Tha97: C3, C10] las funciones
naturaleza deberían centrarse en el cumplimiento general, en contraposición a la especificadas en los planes están completos, y el logro satisfactorio de los
información detallada que se requiere con frecuencia dentro del equipo del proyecto.
criterios de terminación es
4.1. La determinación de la satisfacción de las necesidades a cabo de acuerdo con los métodos de actores-acordado,
ubicación y duración. base de datos de medición de la
[Rei02: c10; Tha97: C3, C10]
organización se actualiza con los datos finales del proyecto y análisis
Desde la consecución de los interesados (usuarios y clientes) satisfacción es uno de posteriores a los proyectos se llevan a cabo. La autopsia proyecto se realiza
nuestros principales objetivos, es importante que el progreso hacia este objetivo se para que los temas, problemas y oportunidades encontradas durante el
evaluará formalmente y de forma periódica. Esto ocurre en el logro de los proceso (sobre todo a través de la revisión y evaluación, véase subárea 4.) se
principales hitos del proyecto (por ejemplo la confirmación de la arquitectura de analizan, se extraigan lecciones del proceso y se introducen en el aprendizaje
diseño de software, integración de software de revisión técnica). Variaciones de las y la mejora de los esfuerzos de organización ( véase también la Ingeniería de
expectativas se identifican y se toman las medidas adecuadas. Al igual que en la Software Proceso KA).
actividad proceso de control anterior (ver tema 3.5
Proceso de control), en todos los casos cambian los procedimientos de control y de 6. Medición de Ingeniería de Software
gestión de configuración de software se cumplen (véase el Software Configuration
[ISO15939-02]
Management KA), las decisiones se documentan y se comunican a todas las
partes pertinentes, se revisan los planes y modifican cuando es necesario, y los La importancia de la medición y su papel en mejores prácticas de gestión es
datos correspondientes se registran en la base de datos central ( véase también el ampliamente reconocido, por lo que su importancia sólo puede aumentar en
tema 6.3 Realizar el proceso de medición). Más información también se puede los próximos años. La medición efectiva se ha convertido en una de las piedras
de software e incluye, además, un modelo de información de medición. deben ser seleccionados, con claros vínculos con las necesidades de información.
Medidas deben entonces ser seleccionados en base a las prioridades de las
necesidades de información y otros criterios tales como coste de la recogida, el
grado de interrupción del proceso durante la recogida, la facilidad de análisis, la
6.1. Establecer y mantener el compromiso de Medición
facilidad de obtención, datos precisos y consistentes, y así sucesivamente
Aceptar requisitos para la medición. Cada
[ISO15939-02: 5,2 0.3 y Apéndice C]. Definir la recolección de datos,
medición esfuerzo debe guiarse por
objetivos de la organización y accionado por un conjunto de medición
requisitos establecido por el
análisis, y generación de informes
organización y el proyecto. Por ejemplo, uno de los objetivos de la
procedimientos. Esto abarca procedimientos de recogida y horarios,
organización podría ser “el primero en el mercado con nuevos
almacenamiento, verificación, análisis, informes y gestión de la
productos”. [Fen98: c3, c13; Pre04: c22] Esto a su vez podría generar
configuración de datos [ISO15939-02:
un requisito ese factores
5.2.4].
contribuir a este objetivo se medirá por lo que los proyectos podrían ser
manejados para cumplir este objetivo. Definir los criterios para la evaluación de los productos de información.
- Definir el alcance de la medición. La unidad organizativa a la que Criterios para la evaluación están influenciados por los objetivos técnicos
cada requisito de medición se va a aplicar debe ser establecido. y de negocio de la unidad organizativa. Los productos de información
Esto puede consistir en un área funcional, un solo proyecto, un incluyen los asociados con el producto que se produce, así como los
solo sitio, o incluso toda la empresa. Todas asociados con los procesos que se utilizan para administrar y medir el
subsecuente proyecto [ISO15939-02: 5.2.5 y Apéndices D, E]. Revisión,
tareas de medición relacionadas con este requisito deben estar
dentro del alcance definido. Además, se deben identificar los grupos aprobar, y proporcionar recursos para
- Compromiso de gestión y personal a - El plan de medición debe ser revisado y aprobado por los
medición. El compromiso debe ser establecido formalmente, comunica, interesados apropiados. Esto incluye todos los procedimientos de
y apoyado por los recursos (ver siguiente punto). Comprometer recursos recopilación de datos, almacenamiento, análisis y procedimientos de
para la medición. El compromiso de la organización para la medición es un información; criterios de evaluación; horarios; y responsabilidades.
factor esencial para el éxito, como lo demuestra la asignación de los Los criterios para la revisión de estos artefactos deberían haberse
recursos para la ejecución del proceso de medición. Asignación de establecido a nivel de unidad organizativa o superior y deben
recursos incluye la asignación de responsabilidades para las distintas utilizarse como base para estas revisiones. Dichos criterios deben
tareas del proceso de medición (por ejemplo, usuario, analista, y tener en cuenta la experiencia previa, la disponibilidad de recursos, y
bibliotecario) y proporcionando una adecuada financiación, la formación, las posibles interrupciones a los proyectos cuando se proponen
las herramientas y el apoyo para llevar a cabo el proceso de forma cambios con respecto a las prácticas actuales. Aprobación
a la medida proceso
[ISO15939-02: 5.2.6.1 y Apéndice F].
6.2. Planificar el proceso de medición
- Recursos debe ponerse a disposición para
Caracterizar la unidad organizativa. La unidad de organización implementar el planificado y aprobado
proporciona el contexto para la medición, por lo que es importante tareas de medición. La disponibilidad de recursos puede ser puesta
hacer este contexto explícito y articular los supuestos que encarna y
en escena en los casos en que los cambios han de ser pilotado
las limitaciones que impone. Caracterización puede ser en términos
antes del despliegue generalizado. Deberán tener en cuenta a los
de organización
recursos necesarios para la implementación exitosa de nuevos
procesos, solicitud dominios,
procedimientos o medidas [ISO15939-02: 5.2.6.2]. Adquirir e
tecnología, y organizativo interfaces. Un
implementar tecnologías de apoyo. Esto incluye
modelo de proceso de organización es también típicamente un elemento
de la unidad de caracterización organizativa [ISO15939-02: 5.2.1].
evaluación de disponible secundario
tecnologías, selección de lo más apropiado
2. software de planificación
v1c6, v2c7,
Proceso de planificación 2.1 c2, c3 C2, C21 C1, C3, C5 C3, C4 c3, c4, c6
v2c8
23 Esfuerzo, el horario y la estimación de costos v2c7 c12 c3 C23, C24 C5, C6 C4, C23 c5
v1c8, v2c3-
2.6 gestión de calidad c26 c10 c24, c25 c9, c10
c5
v1c8, v2c2-
3.4 Monitor de proceso c10 c25 c3, C9
C5, C7
4. Revisión y evaluación
4.2 Revisión y rendimiento evaluar v1c8, v2c3, C8, C9 c10 C3, C10
c5
5. Cierre
v1c8, v2c3,
5.1 Determinación de cierre c10 C3, C10
c5
(Adl99) TR Adler, JG Leonard y RK Nordgren, "Mejora de la Gestión de (Fen98) NE Fenton y Pfleeger SL, Las métricas de software: un enfoque
Riesgos: El paso de eliminación del riesgo de Riesgos Prevención" Software riguroso y práctico, Segunda ed: International Thomson Computer Press,
Tecnología de la Información y, vol. 41, 29-34, 1999 1998. (Fle99) R. Fleming, "una nueva perspectiva sobre viejos problemas"
IEEE Software, 106-113, enero / febrero de 1999
(Bai98) R. Baines, "en todas las disciplinas: Riesgo, diseño, método, proceso
y herramientas" IEEE Software, 61-64, julio / agosto de 1998
(Fug98) A. Fuggetta, L. Lavazza, S. Morasca, S. Cinti, G. y E. Oldano
(Bin97) RV Binder, "¿Puede un modelo de trabajo de fabricación de calidad de Orazi, "Aplicación de GQM en un software de fábricas industriales," ACM
software ?," IEEE Software, 101-102,105, septiembre / octubre de 1997 Transactions on Software Engineering y Metodología, vol. 7, ISS. 4,
411-448, 1998 (Gar97) PR Garvey, DJ Phair y JA Wilson, "una
(Boe97) BW Boehm y T. DeMarco, "Gestión de Riesgos de software" IEEE arquitectura de información para la evaluación y gestión de riesgos" IEEE
Software, 17-19, mayo / junio de 1997 (Bri96) LC Briand, S. Morasca y VR Software, 25-34, mayo / junio de 1997 (Gem97) A. Gemmer, "Gestión de
Basili, "Propiedad basada en Ingeniería de Software de medición" Riesgo: Más allá del proceso," Computadora, 33-43 de mayo de 1997
(Gla97) RL de cristal, "Los altibajos del programador estrés," Communications
IEEE Transactions on Software Engineering, vol. 22, ISS. 1, 68-86, 1996 of the ACM, vol. 40, ISS. 4, 17-19, 1997
(Ncs98) P. NCSI, "Gestión de Proyectos OO Mejor" IEEE Software, 50-60, (Zel98) MV Zelkowitz y DR Wallace, "Modelos experimentales para la
julio / agosto de 1998 validación de la tecnología" Computadora, vol. 31, ISS.
(Nol99) AJ Nolan, "aprender de éxito," IEEE Software, 97-105, enero / 5, 23-31, 1998
febrero de 1999
(Off97) RJ Offen y R. Jeffery, "Establecimiento de software
PAG PROCESO
FP Punto de función
proceso de ingeniería de software es relevante no sólo para las grandes
HRM Administración de recursos humanos organizaciones. Por el contrario, las actividades pueden, y han sido relacionados
IDEAL Iniciando-Diagnóstico-Establishing- interino de con el proceso, realizado con éxito por pequeñas organiza- ciones, equipos y
tendencia (modelo) personas. El objetivo de la gestión de los procesos del ciclo de vida del software
Dios mio grupo de administración de objetos es implementar procesos nuevos o mejores en las prácticas reales, ya sean
individuales, proyecto o la organización. Este KA no aborda explícitamente los
QIP Mejora la calidad del paradigma
recursos humanos agement man- (HRM), por ejemplo, como se realiza en el
GAMBAS REBOZADAS CMM basada similares para el proceso de mejoría
People CMM (Cur02) y sistemas de procesos de ingeniería [ISO1528-028; IEEE
con el CMMi
1220-1298]. También hay que reconocer que muchos problemas de software
SCE El software de evaluación de capacidad
Engineer- proceso ing están estrechamente relacionados con otras disciplinas,
SEPG Procesos de Software Engineering Group como la gestión, aunque a veces el uso de una terminología diferente.
yo INTRODUCCIÓN
El Proceso de Ingeniería de Software KA puede ser examinado en dos
niveles. El primer nivel abarca las actividades técnicas y de gestión dentro
del ciclo de vida del software PROCESOS DE que se realizan durante la
adquisición de software, de- sarrollo, mantenimiento y retiro. El segundo
segundo REAKDOWN DE T OPICS PARA S OFTWARE
es el meta-nivel, que se ocupa de la definición, imple- mentación,
mi NGENIERÍA PAG PROCESO
evaluación, medición, gestión, el cambio y la mejora de los procesos del
ciclo de vida del software sí mismos. El primer nivel está cubierto por la La Figura 1 muestra el desglose de temas en este KA.
Implementación
Proceso y
de procesos y el Definición del Evaluación del
medición del
Cambio proceso proceso
producto
procesos
Modelos para la
Notaciones para Calidad de los resultados de
implementación de procesos
Definiciones de medición
y Cambio
procesos
Información de software
Consideraciones La adaptación de procesos
Modelos
prácticas
Técnicas
Automatización
proceso de
medición
1.1. infraestructura de procesos establecer, tal como un comité directivo para supervisar el esfuerzo proceso de
[IEEE12207.0-96; ISO15504-98; SEL96] Este tema incluye los conocimientos ingeniería de software. Una descripción de una infraestructura para la mejora del
proceso en general se proporciona en [McF96]. Existen dos tipos principales de
relacionados con la infraestructura de procesos de ingeniería de software.
infraestruc- tura se utilizan en la práctica: la Ingeniería de Software Grupo de
Procesos y la fábrica de experiencia.
Para establecer los procesos del ciclo de vida del software, es necesario contar con
una infraestructura adecuada en el lugar, lo que significa que los recursos deben
1.1.1. Procesos de Software Engineering Group (SEPG) La SEPG está
estar disponibles (personal competente, herramientas y financiación) y las
destinado a ser el foco central de la mejora de procesos de ingeniería de
responsabilidades asignadas. Cuando estas tareas se han completado, es una
indicación del compromiso de ges- tión para ción, y la propiedad de, el software en- software, y tiene una serie de responsabilidades en cuanto a la iniciación y el
esfuerzo gineering proceso. Varios comités pueden tener que mantenimiento de la misma. Estos se describen en [Fow90].
El concepto de la EF separa la organización del proyecto (la organización organizaciones de ingeniería de software, incluyendo la planificación de acciones,
de desarrollo de software, por ejemplo) de la Organización de Mejora. La la formación, la gestión de patrocinio y compromiso, y la selección de proyectos
organización del proyecto se centra en el desarrollo y mantenimiento de piloto y que cubren tanto los procesos y herramientas, se dan en [Moi98; San98;
software, mientras que la EF tiene que ver con la mejora de ingeniería de Sti99]. se reportan estudios empíricos sobre los factores de éxito para el cambio
software proc- ess. en el proceso (ElE99a). El papel de agentes de cambio en esta actividad se
discute en (Hut94). implementación de procesos y el cambio también puede ser
La EF se pretende institucionalizar el aprendizaje colectivo de una organización visto como una instancia de consultoría (ya sea interna o externamente nal).
mediante el desarrollo, la actualización y la entrega a la organización del proyecto paquetes
de experiencia ( por ejem- plo, guías, modelos y cursos de formación), también
conocida como activos de los procesos. La organización del proyecto ofrece la EF
sus productos, los planes utilizados en su desarrollo, y los datos recogidos durante
Uno puede también ver el cambio organizativo de la perspec- tiva de transferencia
el desarrollo y funcionamiento. Ejemplos de paquetes de experiencia se presentan
de tecnología (Rog83). artículos de ingeniería de software que discuten la
en [Bas92].
transferencia de tecnología y las Características de los receptores de las nuevas
tecnologías (que podría in- tecnologías relacionadas con los procesos clude) son
1.2. ciclo de gestión de procesos de software
(Pfl99; Rag89). Hay dos maneras de abordar el proceso de evaluación de la
[Bas92; Fow90; IEEE12207.0-96; ISO15504-98;
aplicación y el cambio, ya sea en términos de cambios en el proceso en sí mismo o
Mcf96; SEL96]
en términos de cambios en los resultados del proceso (por ejemplo, la medición del
La gestión de los procesos de software consta de cuatro actividades retorno de la inversión de hacer el cambio). Una mirada pragmática en lo que
secuenciadas en un ciclo iterativo que permite la retroalimentación continuas puede lograrse a partir de tales estudios de evaluación se da en (Her98). Una
con y mejora del proceso de software: visión general de cómo evaluar la implementación de procesos y el cambio, y
ejemplos de estudios que lo hacen, se pueden encontrar en [Gol99], (Kit98; Kra99;
los Establecer la infraestructura Proceso la actividad consiste en establecer
McG94).
el compromiso para procesar la aplicación y el cambio (incluyendo la
obtención de gestión de buy-in), y la puesta en marcha de una
infraestructura adecuada (fuentes y responsabilidades re) para que esto
ocurra. El objetivo de la Planificación la actividad es entender los objetivos
2. Definición del proceso
de negocio y las necesidades del proceso de la persona, proyecto o la
Una definición de proceso puede ser un procedimiento, una política o una Dard
organización actual, para identificar sus fortalezas y debilidades, y para
Están-. los procesos del ciclo de vida del software se definen para un nú- mero de
hacer un plan para la implementación de procesos y el cambio. El objetivo
razones, incluyendo el aumento de la calidad del pro- ducto, lo que facilita la
de Implementación de procesos y el Cambio es ejecutar el plan,
comprensión humana y la comunicación, el apoyo a la mejora de procesos,
implementar nuevos procesos (que pueden incluir, por ejemplo, el
apoyando el proceso de agement hombre-, proporcionar orientación proceso
despliegue de herramientas y la formación del personal), y / o cambiar los
automatizado, y la disponibilidad automatizada apoyo ejecución. Los tipos de
procesos existentes.
definiciones de procesos necesarios dependerá, al menos en parte, de la razón de la
definición.
Evaluación del proceso se ocupa de averiguar qué tan bien fueron la puesta
También hay que señalar que el contexto del proyecto y la organización
en práctica y el cambio, si los beneficios esperados se materializaron. Los
determinará el tipo de definición de proceso que es más útil. Las variables
resultados se utilizan entonces como entrada para los ciclos posteriores.
importantes a tener en cuenta incluyen la naturaleza de la obra (por ejemplo,
el mantenimiento o desa- rrollo), el dominio de aplicación, el modelo de ciclo
1.3. Modelos para la implementación de procesos y el cambio de vida y la madurez de la organización.
Dos modelos generales que han surgido para conducir la implementación de
procesos y el cambio son la Mejora paradigma de la calidad (PMC) [SEL96] y
2.1. Los modelos del ciclo de vida del software
el modelo ideal [McF96]. Los dos paradigmas se comparan en [SEL96].
Evaluación de la aplicación y los resultados del proceso de cambio puede ser [Pfl01: c2; IEEE12207.0-96] modelos del ciclo de vida del software sirven como
cualitativa o cuantitativa. una definición de alto nivel de las fases que se producen durante el desarrollo. Ellos
no tienen por objeto proporcionar definiciones detalladas, pero al poner de relieve las
actividades clave y sus interdependencias. Ejemplos de modelos de ciclo de vida del
1.4. Consideraciones prácticas software son el modelo de cascada, el modelo de prototipos de usar y tirar, desarrollo
implementación de procesos y el cambio constituyen una instancia de cambio evolutivo, entrega incrementales / iterativo, el modelo espiral, modelo de software
organizativo. La mayoría de los esfuerzos exitosos de cambio organizacional reutilizable, y la síntesis de software automatizado. Las comparaciones
tratan el cambio como un proyecto en sí mismo, con planes apropiados, monitoreo
y revisión.
[Pfl01: c2]
IEEE Std 1540: Software de Gestión de Riesgos (IEEE1540-01)
Las herramientas automatizadas o bien apoyan la ejecución de las definiciones de proceso
o que proporcionan una guía para los seres humanos que realizan los procesos definidos.
IEEE Std 1517: Procesos de reutilización de software (IEEE1517-
99) En los casos en que se realizó el análisis de proceso, algunas herramientas permiten
Algunos procesos del ciclo de vida del software hacen hincapié en la rápida ery 3. Proceso de Evaluación
deliv- y fuerte participación de los usuarios, es decir, métodos ágiles como Extreme evaluación de proceso se lleva a cabo utilizando tanto un modelo de evaluación y un
Programming [Bec99]. Una forma del problema selec- ción se refiere a la elección a método de evaluación. En algunos casos, el término “valoración” se utiliza en lugar
lo largo del plan- impulsado eje método ágil. Un enfoque basado en el riesgo de de la evaluación, y el término “evaluación de la capacidad” se utiliza cuando la
tomar esa decisión se describe en (Boe03a). valoración es el propósito de la adjudicación de un contrato.
El método de evaluación CBA-IPI, por ejemplo, se centró en la mejora de implementación de procesos y el cambio.
4. Proceso y medición del producto interés son los relacionados con la productividad de los equipos o procesos (por
ejemplo, usando un Ure medi- de puntos de función producidas por unidad de
Si bien la aplicación de la medida de ingeniería de software puede ser
esfuerzo-persona) y sus correspondientes niveles de experiencia en software de
compleja, sobre todo en cuanto a los métodos de análisis y modelado, hay
engi - niería en general, y tal vez en tecnologías particulares. [Fen98: c3, c11;
varios aspectos del software de en- gineering de medición que son
Som05: c25]
fundamentales y que subyacen en muchos de los procesos de medición y
análisis más avanzados. Además, el logro de proceso
los resultados del proceso podrían, por ejemplo, la calidad del producto (por
faltas KLOC (Kilo líneas de código) o por Función
[ISO9126-01]
Una apreciación de las escalas de medición de software y las implicaciones de
medida del producto de software incluye, en particular, el cada tipo de escala en relación con la posterior selección de los métodos de
medición de tamaño del producto, la estructura del producto, y la calidad del producto.
análisis de datos es especialmente importante. [Abr96; Fen98: c2; Pfl01: c11]
escalas significativas se re lated a una clasificación de las escalas. Para
4.2.1. medida del tamaño aquellos, teoría de la medición ofrece una sucesión de más y más restringidos
formas de asignar las medidas. Si los números asignados son meramente para
tamaño del producto de software es más a menudo evaluado por medidas de
proporcionar etiquetas para clasificar los objetos, se les llama nominal. Si se
longitud (por ejemplo, líneas de código fuente en un módulo, las páginas de un
asignan de manera que clasifica los objetos (por ejemplo, bueno, mejor, mejor),
documento de especificación de requisitos de software), o la funcionalidad (por
se les llama
ejemplo, puntos de función en una especificación). Los principios de medición de
tamaño funcional se proporcionan en IEEE Std. 14143.1. Las normas internacionales
ordinal. Si se ocupan de magnitudes de la propiedad tivo relación a una
para los métodos de medición de tamaño funcional incluyen ISO / IEC
unidad de medida definida, se les llama intervalo
(Y los intervalos son uniformes entre los números a menos que se especifique lo
19761, 20926 y 20968 [IEEE14143.1-00; ISO19761-03; ISO20926-03;
contrario, y son por lo tanto aditiva). Las mediciones se encuentran en el proporción nivel
ISO20968-02].
si tienen un punto cero absoluto, por lo que las proporciones de las distancias al punto
cero son sentido- ful.
implementación del modelo incluye tanto la interpretación y el refinamiento recogidos, sin embargo, como base para la simulación.
*
*
*
*
c12
c6
c25
c22
C3, C11
,
c12
13 6, c
c4, c
C3, C11
Implementación
c2
c11
c10
c24
c15
c8
c 11
c25
[Bas92] [Com97] [Fin94] [Fow 9 0] [Gol99] [Joh99] [McF 9 6] [Mo i9 8] [Mu s9 9] [OM G
c3,
[Pfl 0 1] [Pre04]
[Bec99] [San98]
[Boe03][SEI 0 1] [SEL96]
[Fen98] [Som05] [Sti99]
*
*
*
*
*
*
*
c2
*
c2
*
*
c2
*
*
*
*
*
*
*
*
*
*
*
*
*
*
METRO ATERIAL
* *
* * * * *
* *
*
9-10
* * * * * * * *
© IEEE - 2004 Versión
* *
* *
9001 ISO 9000-3 ISO 9126 ISO 14764 ISO 15504 ISO 15288 ISO 15939 ISO 19761 ISO 20926 ISO 20968 ISO VIM IEEE 1044 IEE mi 1061 IEEE 1074 IE
1219 IEEE 1517 IEEE 1540 IEEE IEEE 12207 14143.1
[ISO15504-98] ISO / IEC TR 15504: 1998, Tecnología de la Información -
R ECOMMENDED R EFERENCIAS Evaluación de Procesos de Software (partes 1-9): ISO e IEC, 1998.
[Abr96] A. Abran y PN Robillard, "Análisis de Puntos de Función: un [ISO15939-02] ISO / IEC 15939: 2002, Software Engineer--ing software de
estudio empírico de sus eses Medición Proc-" IEEE Transactions on proceso de medición: ISO e IEC, 2002. [Joh99] D. Johnson y J. Brodman,
Software Engineering, vol. "Adaptación de la CMM para las pequeñas empresas, organizaciones
22, 895-909, 1996 pequeñas y Jects Pequeño Pro-", presentado en Elementos de Assessment
[Bas92] V. Basili, G. Caldiera, F. McGarry, R. Pajerski, G. y S. Página ción de Procesos de Software y Mejora ,, 1999
Waligora, "El toria Software Engineering Laboratory - Una fábrica de
Software de Operación Experiencia," pre-tantes en las Actas de la
Internacional Conferencia sobre Ingeniería de Software, 1992 [Bec99] K.
[McF96] B. McFeeley, "IDEAL: instrucciones de uso para la mejora de
Beck, Extreme Programming Explained: Em- Cambio corsé: Addison-Wesley, procesos de software", tute Ingeniería de Software Ins-
1999. CMU / SEI-96-HB-001, 1996, disponible a
http://www.sei.cmu.edu/pub/documents/96.reports/pdf/hb0
[Boe03] B. Boehm y R. Turner, "Uso de riesgo para el Equilibrar ágil y 01.96.pdf
Driven-Plan Métodos," Computadora, 57-66, junio de 2003 [Moi98] D. Moitra, "Gestión del cambio de iniciativas de mejora del
software Proc- ess: Un enfoque práctico basado en la experiencia," Proceso
[Com97] E. Comer, "dels Software alternativo Ciclo de Vida Mo-", de Software - Mejora y Práctica,
presentado en Ingeniería de Software, 1997 [ElE99] K. El-Emam y N. vol. 4, ISS. 4, 199-207, 1998 [Mus99] J. Musa, Software de Ingeniería de
Madhavji, Elementos de Soft-ware y Evaluación de Procesos de Mejora: IEEE Confiabilidad: el software más fiable, más rápido desarrollo y pruebas:
CS Press, 1999.
McGraw Hill, 1999.
[Fen98] NE Fenton y Pfleeger SL, Las métricas de software: un enfoque [OMG02] Object Management Group, "Proceso de Ingeniería de Software
riguroso y práctico, Segunda ed: International Thomson Computer Press, Metamodel Especificación", 2002, disponible en
1998. http://www.omg.org/docs/formal/02-11-14.pdf [Pfl01] Pfleeger SL, Ingeniería
[Fin94] A. Finkelstein, J. Kramer y B. Nuseibeh, "Modelado Soft- Proceso de Software: Teoría y Práctica, Segunda ed: Prentice-Hall, 2001. [] Pre04 RS
Ware y Tecnología," Investigación de Estudios Press Ltd., 1994 Pressman, Ingeniería de Software: Un Enfoque de Tioner prác-, ed Sexto:
McGraw-Hill, 2004. [San98] M. Sanders, "El Manual CHAPITEL: mejor, más
[Fow90] P. Fowler y S. Rifkin, "Guía de Grupo de Procesos de Ingeniería rápido, más barato Desarrollo de Software en Pequeñas Organizaciones"
de Software," Software Engineering Institute, Informe Técnico CMU /
SEI-90-TR-24, 1990, disponible en http://www.sei.cmu.edu
/pub/documents/90.reports/pdf/tr24. Comisión Europea, 1998
90.pdf
[SEI01] Software Engineering Institute, "Capacidad madurando dad Modelo
[Gol99] D. Goldenson, K. El-Emam, J. Herbsleb y C. Deephouse, "Estudios Integración, v1.1 ", 2001, disponible en
empíricos de métodos de evaluación de procesos de software", presentado http://www.sei.cmu.edu/cmmi/cmmi.html [SEL96] Laboratorio de
en elementos de la evaluación de procesos de software y mejora, 1999 Ingeniería de Software, "Software Pro- ceso Guía de Mejora", NASA /
[IEEE1074-97] IEEE Std 1074-1997, Norma IEEE para el desarrollo de GSFC, Informe Técnico
procesos del ciclo de vida del software: IEEE, 1997. [IEEE12207.0-96] SEL-95-102, Abril, 1996, disponible a
http://sel.gsfc.nasa.gov/website/documents/online-doc/95-
IEEE / EIA 12207.0- 102.pdf [Som05] I. Sommerville, Ingeniería de software, Séptima edición:
1996 // ISO / IEC12207: 1995, Implementación de la industria Int. Std. ISO / Addison-Wesley, 2005.
IEC 12207: 95, Norma de Información tecnolo- gía-Software Procesos del
ciclo de vida, vol. IEEE, 1996. [VIM93] ISO VIM, Vocabulario Internacional de
[Sti99] H. Stienen, "Evaluación del Proceso de Software y mejoría: 5 años
Términos Básicos y Generales de Metrología. Ginebra, Suiza: ISO, de experiencias con Bootstrap," en
Elementos de Evaluación de Procesos de Software y la mejora, K.
1993. El-Emam y N. Madhavji, Eds .: IEEE CS Press,
[ISO9126-01] ISO / IEC 9126-1: 2001, Ingeniería de software, la calidad del 1999.
producto-Parte 1: Modelo de Calidad: ISO e IEC,
2001.
(EIA / IS731-99) EIA, "EIA / IS 731 Capacidad de Ingeniería de Sistemas Ance Guid- eficaz para el proceso de participantes", presentado en
Modelo," 1999, disponible a Proceedings de la 5ª Conferencia Internacional sobre el proceso de
http://www.geia.org/eoc/G47/index.html software,
E.Clark, J. Dean y F. Hall, Software La medición práctica: información (Wei93) GM Weinberg, "ment Software Quality Manage-" Medición de
objetiva para la Toma de Decisiones: Adiciones hijo-Wesley, 2001. primer orden (Ch. 8, medir el costo y valor), vol. 2, 1993
(Mcg93) C. McGowan y S. Bohner, "Sobre la base Modelo evaluaciones (Yu94) E. y J. Yu Mylopolous, "Descripción 'por qué' en el software de
Proc- ess", presentado en Actas de la Conferencia Interna- cional de modelado de procesos, análisis y diseño," pre-tantes en las Actas de la
Ingeniería de Software, 1993 (Nak91) T. Nakajo y H. Kume, "Un Análisis 16ª Conferencia Internacional sobre Ingeniería de Software, 1994 (Zah98)
Historia del caso Software de error Relación causa-efecto" Trans- acciones S. Zahran, Mejora de Procesos de Software: prác- Directrices Cal para el
IEEE en Ingeniería de Software, vol. 17, ISS. 8, 1991 (Pau94) M. Paulk y M. éxito del negocio: Addison Wesley,
Konrad, "Proceso de medición de Ca pability Versus organizacional madurez
de los procesos," pre-tantes en las Actas de la cuarta Conferencia 1998.
Internacional sobre la Calidad del Software, 1994 (Zel98) MV Zelkowitz y DR Wallace, "Modelos experimentales para la
validación de la tecnología" Computadora, vol. 31, ISS.
5, 23-31, 1998
(IEEE1540-01) IEEE Std 1540-2001 // ISO / IEC16085: 2003, ISO e IEC, 2003. (ISO20926-03) ISO / IEC 20926: 2003, Ingeniería de
Norma IEEE para procesos de riesgo del ciclo de vida del software Ma- nagement: IEEE, software-IFPUG 4.1 Sin ajustar el tamaño bien funcional prácticas método
2001. (IEEE12207.0-96) de conteo manual: ISO e IEC, 2003. (ISO20968-02) ISO / IEC 20968:
IEEE / EIA 12207.0- 2002, Ingeniería de software MK-Función Punto Prácticas Contar
1996 // ISO / IEC12207: 1995, Implementación de la industria Int. Std. ISO / IEC Analysis- Manual II: ISO e IEC, 2002. (ISO90003-04) ISO / IEC 90003:
12207: 95, Norma de Información tecnolo- gía-Software Procesos del ciclo de
2004, Software y Systematic TEMS Ingeniería-Directrices para la
vida, vol. IEEE, 1996. (IEEE12207.1-96) IEEE / EIA 12207,1-1.996, Industria Im-
aplicación de la norma ISO9001: 2000 para el software de la
plementation de Int. Std. ISO / IEC 12207: 95, Norma para Tecnología de la
computadora: ISO e IEC, 2004. (VIM93) ISO VIM, Vocabulario
Información-Software Procesos del ciclo de vida - los datos del ciclo de vida: IEEE,
Internacional de Términos Básicos y Generales de Metrología. Ginebra,
1996.
Suiza: ISO,
aspectos creativos del proceso. Las herramientas se diseñan a menudo para apoyar software de construcción Métodos formales
Herramientas de
y lenguajes de especificación
métodos de ingeniería de software en particular, la reducción de cualquier carga notaciones Refinamiento
editores de programas compiladores y
administrativa asociada con la aplicación del método manualmente. Al igual que los generadores de código
Verificación / propiedades que demuestren
Herramientas Intérpretes
métodos de ingeniería de software, que están destinados a hacer la ingeniería de depuradores Software Testing
software más sistemática, y que varían en su alcance desde el apoyo a las tareas Los métodos de prototipado
generadores de prueba prueba
individuales que abarca el ciclo de vida completo. marcos de ejecución Las técnicas de
evaluación de la prueba de evaluación estilos objetivo de
mantenimiento análisis de
prototipos
Funcionamiento de software de gestión
de pruebas
Comprensión
definitiva más probable que tenga éxito. Métodos suelen proporcionar una
de análisis estático
notación y el vocabulario, los procedimientos para la realización de tareas Herramientas de gestión de
identificables, y directrices para comprobar tanto el proceso y el producto. Varían defectos, mejora, tema
y el problema de seguimiento de la
ampliamente en su alcance, desde una única fase de ciclo de vida para el ciclo versión Release gerencia y construir
de vida completo. El énfasis en este KA está en métodos de ingeniería de software de gestión de ingeniería
Herramientas de planificación y
software que abarcan múltiples fases del ciclo de vida, ya que los métodos seguimiento de proyectos
específicos de las fases estén cubiertos por otra KAs. Medición de la gestión
de riesgos
Ingeniería de software
Proceso de herramientas de
gestión de proceso de modelado de
Si bien hay manuales detallados sobre herramientas específicas y numerosos trabajos de procesos integrados entornos CASE
es la alta tasa de cambio de herramientas de software en general. Los detalles específicos software Herramientas
Revisión y auditoría de calidad de
alteran regularmente, lo que dificulta Configuración del software
de herramientas temas
Las herramientas de ingeniería de software y métodos KA cubre los procesos herramientas meta
evaluación de herramientas
completos de ciclo de vida, y por lo tanto se relaciona con todos los KA en la Guía.
1.1. Requisitos de software Herramientas marcos de ejecución de pruebas. Estas herramientas permiten la ejecución de
Los compiladores y generadores de código. Tradicionalmente, los descripciones, que a continuación se pueden transformar para generar un nuevo
compiladores han sido los traductores no interactivas de código fuente, pero no producto de una antigua.
[Dor02] [Dor02]
Este tema abarca cuestiones aplicables a todas las clases de herramientas. Tres categorías han
herramientas de gestión de la ingeniería de software se subdividen en tres
sido identificados: técnicas de integración de herramientas, meta-herramientas, y la evaluación
categorías: Planificación de proyectos y seguimiento, gestión de riesgos y
de herramientas.
medición.
entornos de desarrollo.
herramientas de modelado de procesos. [Pfl01] Estas herramientas se utilizan 2. Software de Ingeniería de Métodos
para modelar e investigar los procesos de ingeniería de software.
los Métodos de ingeniería de software sub-área se divide en tres temas: métodos
heurísticos se trata de enfoques informales, métodos formales se trata de enfoques
Gestión de proceso herramientas. Estas herramientas proporcionan
de base matemática, y métodos de prototipado se trata de la ingeniería de software
apoyo a la gestión de la ingeniería de software. entornos
enfoques basados en diversas formas de creación de prototipos. Los tres primeros
CASE integrado. [Rei96, Som05] temas que no son disjuntos; sino que representan las preocupaciones distintas.
(ECMA55-93, ECMA69-94, IEEE1209-92, Por ejemplo, un método orientado a objetos puede incorporar técnicas formales y
IEEE1348-95, Mul96) asistido por ordenador integrado se basan en la creación de prototipos para la verificación y validación. Al igual que
herramientas o entornos que abarcan múltiples fases del ciclo de vida del las herramientas de ingeniería de software, metodologías evolucionan
software de ingeniería de software de ingeniería pertenecen en este continuamente. En consecuencia, la descripción KA evita en lo posible a
sub-tema. Tales herramientas de realizar múltiples funciones y por lo tanto metodologías particulares de denominación.
potencialmente interactúan con el proceso del ciclo de vida del software que
se ejecuta. entornos de ingeniería de software de proceso centrado. [Rei96]
(Gar96)
Estos ambientes explícitamente
especializados para los sistemas que implican en tiempo real, la seguridad o el forma final deseada de un programa ejecutable. Verificación /
desarrollo de los aspectos de seguridad. propiedades probando.
[Cla96, Pfl01,
Som05] Este tema trata sobre las propiedades de verificación que son específicos
Los métodos estructurados. [Dor02, Pfl01, Pre04, Som05] El sistema está
para el enfoque formal, incluyendo tanto la demostración de teoremas y verificación
construido a partir de un punto de vista funcional, a partir de una vista de alto
de modelos.
nivel y refinando progresivamente esto en un diseño más detallado.
C4s1,
[Cla96]
10-5
marcos de
{}
defectos,
v2c8s4 v2c8s4 v2c8s4 v2c8s4 v2c8s4 v1c4s2 [Dor02]
{Dor97}
Prueba c112s3
C8s7, c9s7
c11s5 c11s5 [Pfl01]
{PFL98}
de prueba
[Pre04]
[Som05]
c29
[Was96]
de
v2c8s4 de
10-6 [Cla96]
herramientas
* * *
v1c6s2,v1c5s1,
v1c6s3v1c5s1,
v1c6s3 v1c6s3
{Dor97}
{PFL98}
[Pre04]
C7-C9 métodos
C7-C9
c28
c112s3, c112s4
[Som05]
c8 c12
lenguajes métodos entornos
[Was96]
* * *
Práctica, Segunda ed: Prentice-Hall, Inc., 2001. [] Pre04 RS Pressman, Ingeniería
R ECOMMENDED R EFERENCIAS PARA S OFTWARE
de Software: Enfoque para profesionales, ed Sexto: McGraw-Hill, 2004.
mi HERRAMIENTAS Y ngineering METRO ÉTODOS
[Rei96] SP Reiss, Herramientas de software y entornos en el Manual de
[Cla96] EM Clarke, JM Wing y otros, "Métodos formales: Estado del Arte y Ingeniería Informática: CRC Press, 1996. [Som05] I. Sommerville, Ingeniería
orientaciones futuras" Las encuestas ACM Computer, vol. 28, ISS. 4,
de software, Séptima edición: Addison-Wesley, 2005.
626-643, 1996
(Bis92) W. Bischofberger y G. Pomberger, Prototyping- desarrollo de cuantitativamente" IEEE Software, vol. 9, ISS. 3, 29-32, mayo, 1992
(Car95) DJ Carney y AW Brown, "sobre las condiciones necesarias para inversa: Una hoja de ruta", en El futuro de la Ingeniería de Software, A.
la composición de Integrated Engineering Software Entornos", presentado Finkelstein, Ed .: ACM, 2000, 49-60. (Pom96) G. Pomberger y G.
en Avances en Informática, 1995 Blaschek, Orientación a objetos y la creación de prototipos en Ingeniería
de Software:
(Col94) D. Coleman, P. Arnold, S. Godoff, C. Dollin, H. Gilchrist, F. Hayes
Prentice Hall, 1996. (Pos96) RM Poston, La automatización de pruebas de Software
y P. Jeremaes, Desarrollo Orientado a Objetos: el método de fusión: Prentice
Hall, 1994. (Cra95) D. Craigen, S. Gerhart y T. Ralston, "Formal Métodos basada en la especificación: IEEE, 1996.
Reality Check:
Uso industrial" IEEE (Ric92) C. Rich y RC Waters, "herramientas de conocimiento intensivo de
Las transacciones en Ingeniería de Software, vol. 21, ISS. 2, 90- ingeniería de software" IEEE Transactions on Conocimiento e información
98, febrero de 1995 técnica, vol. 4, ISS. 5, 424-430, octubre de 1992
(Fin00) A. Finkelstein, Ed., "El futuro de la Ingeniería de Software." ACM,
2000. (Son92) X. canción y LJ Osterweil, "hacia el objetivo, sistemático
(Gar96) PK Garg y M. Jazayeri, Entornos de ingeniería de software comparaciones Diseño-Método," IEEE Software,
centrada en el proceso: IEEE Computer Society, 1996. vol. 9, ISS. 3, 43-53, mayo, 1992 (Tuc96) AB Tucker, La Ciencia de la
Computación e Ingeniería de la reseña: CRC Press, 1996. (Val97) LA
(Har00) W. Harrison, H.Ossher y P. Tarr, "Herramientas de ingeniería de Valaer y RCB II, "Elección de una herramienta de desarrollo de interfaz de
software y entornos: Una hoja de ruta", 2000 (Jar98) S. y R. Jarzabek usuario" IEEE Software, vol. 14, ISS.
(Lam00) A. v Lamsweerde, "Especificación Formal: Una hoja de ruta,". En El (Wie98) R. Wieringa, "Una Revisión de los métodos de especificación de
software estructurado y orientado a objetos y técnicas"
futuro de la Ingeniería de Software, A. Finkelstein, Ed .: ACM, 2000,
ACM Computing Surveys, vol. 30, ISS. 4, 459-527, 1998
149-159. (Mey97)
B. Meyer, Orientado a objetos Software
Construcción, Segunda ed: Prentice-Hall, 1997.
(IEEE1175.1-02) IEEE Std 1.175,1-2002, Guía de IEEE para CASO ISO / IEC 12207: 95, Norma para Tecnología de la
Herramienta Interconexiones-Clasificación y Información-Software Procesos del ciclo de vida, vol. IEEE,
Descripción: IEEE 2002. 1996.
Q CALIDAD
SQA Software de Control de Calidad calidad del software como parte de su cultura. Una cultura de ingeniería de
software sana se describe en [Wie96]. La ética puede jugar un papel significativo
SQM Gestión de la calidad del software
en la calidad del software, la cultura, y las actitudes de los ingenieros de software.
TQM Total Quality Management El IEEE Computer Society y la ACM [IEEE99] han desarrollado un código de ética
V&V Verificación y validación y práctica profesional basada en ocho principios, para ayudar a los ingenieros de
software refuerzan actitudes relacionadas con la calidad y la independencia de su
trabajo.
yo INTRODUCCIÓN
¿Cuál es la calidad del software, y por qué es tan importante que sea omnipresente
1.2.Value y Costos de la Calidad
en la Guía SWEBOK? Con los años, los autores y organizaciones han definido el
[Boe78; NIST03; Pre04; Wei93] La noción de “calidad” no es tan simple
término “calidad” de manera diferente. Para Phil Crosby (Cro79), era “la
como puede parecer. Para cualquier producto de ingeniería, hay muchas
conformidad con los requisitos del usuario.” Watts Humphrey (Hum89) se refiere a
él como “el logro de excelentes niveles de aptitud para el uso”, mientras que IBM cualidades deseadas relevantes a una perspectiva particular del producto, a ser
acuñó la frase "la‘calidad impulsada por el mercado’, que es basan en lograr la discutido y determinado en el momento de que los requisitos del producto se
satisfacción total del cliente. Los criterios Baldrige para la calidad de la organización establecen abajo. Las características de calidad pueden ser necesarios o no, o
(NIST03) utilizan una frase similar, “calidad impulsada por el cliente”, e incluyen la pueden ser obligados a un mayor o menor grado, y las compensaciones se
satisfacción del cliente como una consideración importante. Más recientemente, la pueden hacer entre ellos. [Pfl01] El costo de la calidad se puede diferenciar en
calidad se ha definido en (ISO9001-00) como “el grado en que un conjunto de costo prevención, el costo de tasación, costos de fallas internas, y el costo fallo
inherente características Cumple requisitos. ”En este capítulo se ocupa de las externo. [Hou99]
consideraciones de calidad de software que trascienden los procesos del ciclo de
vida. La calidad del software es una preocupación omnipresente en la ingeniería de
software, por lo que también se considera en muchos de la KAS. En resumen, la
Una de las motivaciones detrás de un proyecto de software es el deseo de crear
Guía SWEBOK describe varias formas de lograr la calidad del software. En
un software que tiene valor, y este valor puede o no puede ser cuantificado
particular, este KA cubrirá técnicas estáticas, aquellos que no requieren la ejecución
como un costo. El cliente tendrá algún coste máximo en mente, a cambio de lo
de los programas que están siendo evaluados, mientras que el técnicas dinámicas están
que se espera que se cumplirá el objetivo básico del software. El cliente también
cubiertos en el Testing de Software KA.
puede tener alguna expectativa en cuanto a la calidad del software. A veces los
clientes no pueden haber pensado a través de los problemas de calidad o sus
costos relacionados. Es la característica meramente decorativo, o es esencial
para el software? Si la respuesta se encuentra en algún punto intermedio, como
es casi siempre el caso, se trata de una cuestión de hacer al cliente una parte
del proceso de decisión y plenamente consciente de los costos y los beneficios.
segundo REAKDOWN DE S OFTWARE Q CALIDAD T OPICS Lo ideal es que la mayoría de estas decisiones se tomarán en el proceso de
requisitos de software (ver los requisitos de software KA), pero estos problemas
1. Fundamentos de Calidad de Software pueden surgir durante todo el ciclo de vida del software. No hay una regla
definida en cuanto a cómo se deben tomar estas decisiones, pero el ingeniero
Un acuerdo sobre los requisitos de calidad, así como una comunicación clara
de software debe ser capaz de presentar alternativas de calidad y sus costes.
con el ingeniero de software en lo que constituye la calidad, requieren que los
Una discusión sobre el costo y el valor de los requisitos de calidad se pueden
muchos aspectos de la calidad se definirán y discutirán formalmente.
encontrar en [Jon96: c5; Wei96: c11].
Procesos de software
Fundamentos de la calidad Consideraciones
de gestión de
del software prácticas
calidad
de Control de Calidad
Validación de Software
Modelos y Revisiones y
características de auditorías
calidad de Software
Medición de la Calidad
de calidad de software
Técnicas para el control
Mejora de calidad
Terminología para características de calidad de software difiere de una Por supuesto, no es posible distinguir por completo la calidad del
taxonomía (o modelo de la calidad del software) a otro, cada modelo tal vez proceso de la calidad del producto. La calidad del proceso, se discutió
tener un número diferente de niveles jerárquicos y un número total diferente de en la Ingeniería de Procesos de Software KA de esta guía,
características. Varios autores han producido modelos de características de
influye en la calidad
calidad de software o atributos que pueden ser útiles para la discusión, la
características de los productos de software, que a su vez afectan a la calidad
planificación, y la calificación de la calidad de los productos de software.
en uso según lo percibido por el cliente. Dos estándares de calidad son
[Boe78; McC77] ISO / IEC ha definido tres modelos relacionados de la calidad
importantes TickIT [Llo03], y uno que tiene un impacto en la calidad del
del producto de software (calidad interna, externa de la calidad, y la calidad en
software, la norma ISO9001 [ISO9001-00], junto con sus directrices para la
uso) (ISO9126-01) y un conjunto de partes relacionadas (ISO14598-98).
aplicación de software [ISO90003-04]. Otro estándar de la industria de la
calidad del software CMMi es [SEI02], también se discute en la Ingeniería de
Procesos de Software KA. CMMi tiene la intención de proporcionar una guía
1.3.1. Software de proceso de ingeniería de software de calidad de gestión para la mejora de procesos. áreas de procesos específicos relacionados con la
de calidad y la calidad del proceso de ingeniería de software tienen una influencia gestión de calidad son: a) la garantía de proceso y calidad del producto, b)
directa en la calidad del producto de software. verificación de proceso, y c) proceso
Hubo inicialmente cierto debate sobre si ISO9001 o CMMi deben ser Enfoques como el proceso de gestión de calidad total (TQM) de Planificar,
utilizados por los ingenieros de software para garantizar la calidad. Este Hacer, Verificar, y Ley ( PDCA) son herramientas con las que se puedan
debate es ampliamente publicado, y, como resultado, la posición se haya cumplir los objetivos de calidad. patrocinio de gestión de procesos y
tomado los dos son productos apoya las evaluaciones y las conclusiones resultantes. A
complementario, y que tener la certificación ISO9001 puede ayudar mucho en la continuación, un programa de mejora se desarrolla la identificación de
consecución de los más altos niveles de madurez de la CMMi. [Dac01] acciones detalladas y proyectos de mejora que debe abordarse en un
plazo de tiempo posible. apoyo a la gestión implica que cada proyecto de
mejora tiene suficientes recursos para lograr el objetivo definido para ello.
1.3.2. la calidad del producto de software
patrocinio de gestión debe ser solicitado con frecuencia mediante la
Las necesidades de ingeniería de software, en primer lugar, para determinar el implementación de actividades de comunicación proactivas. La
verdadero propósito del software. En este sentido, es de vital importancia tener participación de grupos de trabajo, así como apoyo para el medio y los
en cuenta que los clientes recursos asignados a nivel de proyecto, se discuten en la Ingeniería de
requisitos son lo primero, y que incluyen los requisitos de calidad, no sólo Procesos de Software KA.
los requisitos funcionales. Por lo tanto, el ingeniero de software tiene la
responsabilidad de obtener los requisitos de calidad que pueden no ser
explícita desde el principio, y discutir su importancia, así como el nivel de
dificultad en la consecución de ellos. Todos los procesos asociados a la 2. Procesos de Gestión de Calidad de Software
calidad del software (por ejemplo, la construcción, comprobación y mejora gestión de la calidad del software (SQM) se aplica a todos los puntos de vista
de la calidad) serán diseñados con estos requisitos en mente, y que tienen de los procesos de software, productos y recursos. Define procesos,
costos adicionales. Estándar (ISO9126-01) define, para dos de sus tres
propietarios de los procesos, y los requisitos de dichos procesos, las
modelos de calidad, las características de calidad relacionados y
mediciones del proceso y sus resultados, y canales de retroalimentación.
sub-características, y las medidas que son útiles para la evaluación de la
procesos de gestión de la calidad (Art93) Software consisten en muchas
calidad del producto de software. (Sur03)
actividades. Algunos pueden encontrar defectos directamente, mientras que
otros indican que el examen adicional puede ser valiosa. Este último también
se hace referencia a las actividades que directa de defectos de investigación.
El significado del término “producto” se amplía para incluir cualquier artefacto
Muchas de las actividades a menudo sirven como ambos. La planificación de
que es la salida de cualquier proceso que se utiliza para construir el producto de
la calidad del software consiste en: (1) definir el producto requerido en
software final. Ejemplos de un producto incluyen, pero no se limitan a, toda una
términos de sus características de calidad (que se describe con más detalle
especificación de requisitos del sistema, una especificación de requisitos de
en, por ejemplo, la Ingeniería de Software de Gestión KA) (2) la planificación
software para un componente de software de un sistema, un módulo de diseño,
de los procesos para alcanzar el producto requerido (descrito en, por ejemplo,
código, documentación de prueba, o informes producidos como resultado de las
tareas de análisis de calidad. Si bien se describen la mayoría de los tratamientos
de calidad en cuanto a la ejecución de software y sistema final, buenas prácticas
de ingeniería requiere que se evalúen los productos intermedios
correspondientes a la calidad durante todo el proceso de ingeniería de software.
Estos aspectos son diferentes de, por ejemplo, la planificación de los propios
procesos de SQM, que evalúan las características de calidad previstas en
comparación con la aplicación real de estos planes. ¿Qué tan bien productos de
1.4.Quality mejora software, o hacer, satisfacer las necesidades del cliente y de los interesados,
[NIST03; Pre04; Wei96] proporcionar valor a los clientes y otras partes interesadas, y proporcionar la
calidad del software necesario para cumplir con los requisitos de software. SQM
La calidad de los productos de software se puede mejorar a través de un
se puede utilizar para evaluar los productos intermedios, así como el producto
proceso iterativo de mejora continua que requiere control de la gestión,
final.
coordinación, y la retroalimentación de muchos procesos concurrentes:
(1) la vida del software
procesos del ciclo, (2) el proceso de detección de error / defecto, la eliminación, Algunos de los procesos SQM específicas se definen en la norma
y la prevención, y (3) el proceso de mejora de la calidad. (Kin92) (IEEE12207.0-96):
Pero difieren un tanto en su énfasis. SQM procesos ayudan a garantizar una un producto específico satisface las necesidades del usuario y es de la más alta calidad posible
mejor calidad del software en un proyecto determinado. También proporcionan, dentro de las limitaciones del proyecto. Con el fin de hacerlo, debe primero asegurarse de que el
como un subproducto, la información general de gestión, incluyendo una objetivo de calidad está claramente definida y comprendida. Debe tenerse en cuenta de gestión,
indicación de la calidad de todo el proceso de ingeniería de software. El desarrollo y mantenimiento de los planes para el software. Consulte la norma (IEEE730-98) para
Proceso de Ingeniería de Software Ingeniería de Software y Gestión KAs más detalles. Las actividades y tareas específicas de calidad se establecen, con sus costos y
discuten programas de calidad para la organización el desarrollo del software. necesidades de recursos, sus objetivos generales de gestión, y su horario en relación con esos
SQM puede proporcionar información relevante para estas áreas. objetivos en los planes de gestión de la ingeniería de software, desarrollo o mantenimiento. El
plan SQA debe ser coherente con el plan de gestión de configuración de software (consulte la
y convenciones que rigen el proyecto y cómo van a ser revisados y monitoreados para asegurar
SQM procesos consisten en tareas y técnicas para indicar cómo los planes de
la adecuación y cumplimiento. El plan SQA también identifica medidas, técnicas estadísticas,
software (Por ejemplo, la gestión,
procedimientos para informar de problemas y acciones correctivas, los recursos como
el desarrollo, la gestión de la configuración) están llevando a cabo y qué tan
herramientas, técnicas y metodologías, la seguridad física de los medios de comunicación,
bien los productos intermedios y finales están cumpliendo con sus requisitos
capacitación y generación de informes y documentación SQA. Por otra parte, el plan de SQA se
especificados. Los resultados de estas tareas se montan en los informes de
ocupa de las actividades de aseguramiento de la calidad del software de cualquier otro tipo de
gestión antes de que se tomen medidas correctivas. La gestión de un
actividad se describe en los planes de software, tales como la adquisición de software de
proceso de SQM tiene la tarea de garantizar que los resultados de estos
proveedor para el proyecto o software off-the-shelf comercial (COTS), instalación y servicio
informes son exactos.
después del parto del software. También puede contener los criterios de aceptación, así como
las actividades de información y de gestión que son críticos para la calidad del software. normas,
Como se describe en este KA, procesos SQM están estrechamente prácticas y convenciones que rigen el proyecto y cómo van a ser revisados y monitoreados para
relacionados; que pueden superponerse y son a veces incluso combinados. asegurar la adecuación y el cumplimiento. El plan SQA también identifica medidas, técnicas
Ellos parecen en gran medida de carácter reactivo porque se ocupan de los estadísticas, procedimientos para informar de problemas y acciones correctivas, los recursos
procesos como se practica y los productos tal como se produce; pero tienen un como herramientas, técnicas y metodologías, la seguridad física de los medios de comunicación,
papel importante en la etapa de planificación en ser proactivos en términos de capacitación y generación de informes y documentación SQA. Por otra parte, el plan de SQA se
los procesos y procedimientos necesarios para alcanzar los niveles de calidad y ocupa de las actividades de aseguramiento de la calidad del software de cualquier otro tipo de
grado de calidad que exigen las partes interesadas en el software. actividad se describe en los planes de software, tales como la adquisición de software de
después del parto del software. También puede contener los criterios de aceptación, así como
La gestión del riesgo también puede jugar un papel importante en la entrega de las actividades de información y de gestión que son críticos para la calidad del software. normas,
software de calidad. La incorporación de las técnicas de análisis y gestión de prácticas y convenciones que rigen el proyecto y cómo van a ser revisados y monitoreados para asegurar la adecuac
riesgos disciplinados en los procesos del ciclo de vida del software puede aumentar
2.2.Verification y Validación
el potencial de producir un producto de calidad (Cha89).
[Fre98; Hor03; Pfl01; Pre04; Som05; Wal89; Wal96] Para fines de brevedad,
Consulte el software
verificación y validación (V & V) son tratados como un solo tema en esta guía,
Ingeniería de Gestión KA para el material relacionado en la gestión de riesgos.
en vez de como dos temas separados como en la norma (IEEE12207.0-96).
“Software V & V es un enfoque disciplinado para evaluar los productos de
2.1.Software Aseguramiento de la Calidad
software en todo el ciclo de vida del producto. Un esfuerzo de V & V se
[Ack02; Ebe94; Fre98; Gra92; Hor03; Pfl01; Pre04; Rak97; Sch99; esfuerza por asegurar que la calidad está integrado en el software y que
Som05; Voa99; Wal89; Wal96] SQA procesos garantizan que los satisface los requisitos de software de usuario”(IEEE1059-93). V & V se ocupa
productos de software y procesos en el ciclo de vida del proyecto se de la calidad del producto software directamente, y utiliza técnicas de prueba
ajustan a sus requerimientos especificados por la planificación, la que puede localizar defectos para que puedan ser tratados. También evalúa
promulgación, y la realización de un conjunto de actividades para los productos intermedios, sin embargo, y, en esta capacidad, los pasos
proporcionar la confianza adecuada de que la calidad se está
intermedios de los procesos del ciclo de vida del software. La V& proceso V
construyendo en el software. Esto significa asegurar que el problema es
determina si o no productos de una actividad de mantenimiento de desarrollo
clara y adecuadamente fijados y que los requisitos de la solución son
determinado o se ajustan a la exigencia de que la actividad, y si es o no el
adecuadamente definido y expresado. SQA busca mantener la calidad
producto software final cumple su propósito previsto y cumple con los
durante todo el desarrollo y mantenimiento del producto por la ejecución
requisitos del usuario. La verificación es un intento de asegurar que el producto
de una variedad de actividades en cada etapa, que puede dar lugar a la
se ha construido correctamente, en el sentido de que los productos de salida
identificación temprana de problemas, una característica casi inevitable
de una actividad cumplen con las especificaciones impuestas sobre ellos en
de cualquier actividad compleja.
las actividades anteriores. La validación es un intento de asegurar que el
producto adecuado está construido, es decir, la
sus propósitos. normas (IEEE1012-98: s7, funciones específicas deberán estar establecidos en una revisión técnica: un tomador
IEEE1059-93: Apéndice A) especifica lo que normalmente entra en un plan de V & de decisiones, un líder de opinión, una grabadora, y el personal técnico para apoyar las
V. actividades de revisión. Una revisión técnica requiere que las entradas obligatorias estar
en su lugar a fin de proceder:
El plan también se ocupa de la gestión, la comunicación, las políticas y
procedimientos de las actividades de V & V y su interacción, así como la
presentación de informes de defectos y requisitos de documentación. La declaración de los objetivos de gestión de proyectos específicos Un
Por motivos de brevedad, revisiones y auditorías son tratados como un solo procedimiento de revisión. Una persona técnicamente capacitada presenta
tema en esta guía, en lugar de como dos temas separados como en una descripción general del producto, y el examen se lleva a cabo durante
(IEEE12207.0-96). El proceso de revisión y auditoría se define ampliamente una o más reuniones. La revisión técnica se completa una vez que todas las
en (IEEE12207.0-96) y en más detalle en (IEEE1028-97). Cinco tipos de
actividades enumeradas en el examen se han completado.
exámenes o auditorías se presentan en la norma IEEE1028-97:
1. Aceptar sin, o como mucho menor, volver a trabajar Hay varios factores que influyen en la planificación, gestión y selección de
actividades SQM y técnicas, incluyendo:
2. Aceptar con la verificación de la reanudación
El dominio del sistema en el que residirá el software (seguridad
3. reinspeccione
crítica, de misión crítica, Business-crítico)
reuniones de inspección suelen durar unas pocas horas, mientras que las revisiones técnicas y
auditorías son por lo general más amplia en su alcance y toman más tiempo.
Sistema y del software requisitos El comerciales (externos) o
componentes estándar (internos) que se utilizan en el sistema de
2.3.4. Paseos virtuales las normas específicas de ingeniería de software de aplicación
Wal96]
Los métodos y herramientas de software para ser utilizados para el
“El propósito de un recorrido es evaluar un producto de software. Un desarrollo y mantenimiento, y para la evaluación de la calidad y mejora el
recorrido puede llevarse a cabo con el propósito de educar a una
presupuesto, el personal, la organización del proyecto, planes, y la
audiencia con respecto a un producto de software. ”(IEEE1028-97). Los
programación de todos los procesos de los usuarios previstos y uso del
principales objetivos son [IEEE1028-97]:
sistema de nivel de integridad de la información del sistema en estos
factores influye en cómo se organizan y documentan los procesos SQM,
encontrar anomalías
la forma específica se seleccionan las actividades de SQM, y qué
Mejorar el producto de software consideran
recursos son necesarios y que impondrá límites a los esfuerzos.
implementaciones alternativas
El recorrido es similar a una inspección, pero por lo general se lleva a cabo de 3.1.2. Confianza
manera menos formal. El recorrido está organizado principalmente por el ingeniero
En los casos en que un fallo del sistema puede tener consecuencias muy
de software para dar a sus compañeros de equipo la oportunidad de revisar su
graves, la fiabilidad global (hardware, software y humana) es el principal
trabajo, como una técnica de aseguramiento.
requisito de calidad más allá de la funcionalidad básica. fiabilidad software
incluye características tales como la tolerancia a fallos, seguridad, seguridad
2.3.5. auditorías y facilidad de uso. La fiabilidad es también un criterio que se puede definir en
términos de fiabilidad (ISO9126). El cuerpo de la literatura para los sistemas
[Fre98; Hor03; Pfl01; PRE01; Som05; Voa99;
debe ser altamente confiable ( “sistemas de alta integridad” “alta confianza”
o). La terminología para los sistemas mecánicos y eléctricos tradicionales
Wal89; Wal96]
que no pueden incluir software ha sido importado para la discusión de las
“El propósito de una auditoría de software es proporcionar una evaluación amenazas o riesgos, los riesgos, la integridad del sistema, y conceptos
independiente de la conformidad de los productos y procesos de software relacionados, y puede ser encontrado en las referencias citadas en esta
con la normativa aplicable, sección.
normas, directrices, planes y procedimientos”[IEEE1028- 97]. La auditoría es
una actividad organizada formalmente, con participantes que tienen
funciones específicas, tales como auditor principal, otro auditor, una
grabadora, o un iniciador, e incluye un representante de la organización
auditada. La auditoría
A medida que nuevos métodos de diseño y las lenguas evolucionan, junto con los el
avances en las tecnologías de software en general, nuevas clases de defectos organización.
aparecen, y se requiere una gran cantidad de esfuerzo para interpretar clases 3.3. Técnicas de gestión de calidad de software
definidas anteriormente. Cuando el seguimiento de defectos, el ingeniero de software
[Bas94; Bei90; Con86; Chi96; Fen97; Fri95; Lev95; Mus89; Pen93;
está interesado no sólo en el número de defectos, sino también los tipos. Información
por sí sola, sin un poco de clasificación, en realidad no es de ninguna utilidad en la
Sch99; Wak99; Wei93; Zel98] técnicas SQM se pueden clasificar de
identificación de las causas subyacentes de los defectos ya que determinados tipos muchas formas: estática, las personas intensivos, analítica, dinámica.
de problemas deben ser agrupados juntos para que las determinaciones a realizar
sobre ellos. El punto es establecer una taxonomía de defectos que sea significativo
para la organización y para el ingenieros de software.
3.3.1. técnicas estáticas
Fallo: “Un paso, proceso o de definición de datos incorrectos en un programa Preparación antes de tiempo puede ser necesario. Recursos distintos de los
de ordenador” artículos objeto de examen pueden incluir listas de comprobación y los resultados
de las técnicas de análisis y pruebas. Estas actividades se discuten en
Fallo: “El [incorrecta] resultado de un fallo” error: “una acción humana
(IEEE1028-97) en revisiones y auditorías. [Fre98, Hor03] y [Jon96, Rak97]
que produce un resultado incorrecto”
el diseño o (IEEE1462-98)
aplicación es demasiado complejo para desarrollar correctamente, para poner a las pruebas de conformidad (o revisión de prueba de conformidad) de
prueba, o de mantener. Los resultados de un análisis de complejidad también se componentes y productos COTS para ser utilizados en el producto; ahora
pueden utilizar en el desarrollo de casos de prueba. técnicas de defectos de existe un estándar para los paquetes de software (IEEE1465-98) A veces, una
investigación, tales como el análisis de flujo de control, también pueden ser utilizados
organización independiente de V & V puede pedir que controle el proceso de
para apoyar otra actividad. Para el software con muchos algoritmos, el análisis
prueba, ya veces para presenciar la ejecución real para asegurarse de que se
algorítmico es importante, sobre todo cuando un algoritmo incorrecto podría causar un
lleva a cabo de conformidad con procedimientos especificados. Una vez más,
resultado catastrófico. Hay demasiadas técnicas analíticas para mencionarlos todos.
V y V pueden ser llamados para evaluar la prueba en sí: adecuación de los
La lista y las referencias proporcionadas pueden ofrecer conocimientos sobre la
planes y procedimientos, y la adecuación y exactitud de los resultados.
selección de una técnica, así como sugerencias de lecturas adicionales.
Otros, más formales, los tipos de técnicas de análisis son conocidos como
Otro tipo de pruebas que pueden caer bajo el título de V & V es la organización
métodos formales. Se utilizan para verificar los requisitos de software y
de pruebas de terceros. El tercero no es el desarrollador, ni es de ninguna
diseños. Prueba de la corrección se aplica a las partes críticas de software. En
manera asociado con el desarrollo del producto. En cambio, el tercero es una
su mayoría se han utilizado en la verificación de las partes cruciales de los
instalación independiente, por lo general acreditado por algún organismo de la
sistemas críticos, como los requisitos de seguridad y protección específicas.
autoridad. Su propósito es poner a prueba un producto para la conformidad
(Nas97)
con un conjunto específico de requisitos.
roles en la organización pueden considerar y aplicar estas técnicas de a evaluar la calidad de su trabajo para fines de SQA y para la mejora de la
forma diferente. Algunas pruebas pueden realizarse tanto en el proceso calidad del proceso a más largo plazo. Con la creciente sofisticación de
de desarrollo, proceso de SQA, o el proceso de V & V, dependiendo software, las cuestiones de calidad van más allá de si es o no el software
también de la organización del proyecto. Dado que SQM planea pruebas funciona a lo bien que logra los objetivos de calidad medibles. Hay unos
de dirección, esta sección incluye algunos comentarios sobre las cuantos temas donde la medición es compatible con SQM directamente. Estos
pruebas. incluyen la asistencia para decidir cuándo detener la prueba. por
3.3.5. Pruebas
esta, modelos de fiabilidad y
puntos de referencia, ambas a partir de datos de fallos y de fallos, son útiles.
Los procesos de aseguramiento descritos en SQA y V & V examinar cada
salida en relación con el requisito de software
[McC77]
[Mus99]
[Lew92]
[Boe78]
[Hou99]
[NIST03]
[IEEE99]
[ISO900
[Rak97]
[Dac01]
[Wei96]
[Jon96]
[Lap91]
[Sei02]
[Pre04]
[Wal96]
[Wei93]
[Pfl01]
03-04]
[Kia95]
[ISO900
[Llo03]
1-00]
1. Calidad de Software
Fundamental
[Som05]
[Rad02]
[Lew92]
[Ebe94]
[Voa99]
[Ack02]
[Sch99]
[Rak97]
[Wal89]
[Wal96]
[Gra92]
[Hor03]
[Fre98]
[Pre04]
[Pfl01]
[Gil93]
2. Procesos de Gestión de
Calidad de Software
2.2 Verificación y
validación
* * * * * * *
[Wak99]
[Mus89]
[Con86]
[Lew92]
[Rub94]
[Bas84]
[Kan02]
[Pen93]
[Rak97]
[Sch99]
[Fen97]
[Jon96]
[Lyu96]
[Wal89]
[Wal96]
[Wei93]
[Gra92]
[Hor03]
[Lev95]
[Chi96]
[Bei90]
[Fre98]
[Zel98]
[Fri95]
[Pfl01]
3. Consideraciones prácticas de
la calidad del software
3.2 Defecto
* * * * * * * * * *
Caracterización
Las técnicas de pruebas de software: Proc. IEEE Internacional de Normas de Ingeniería de Software Simposio, Los
Internacional Thomson Press, 1990. Alamitos, CA, 1995 [Lap91] JC Laprie, Fiabilidad: Conceptos básicos y la
[Boe78] BW Boehm y otros, "Características de Calidad de Software" TRW terminología en Inglés, francés, alemán, italiano y japonés, IFIP WG 10.4. Nueva
en serie Software Technologies, vol. 1, 1978 York: Springer-Verlag,
mediante la integración de CMM con ISO9001," Actualización del sistema de Software - General Electric," n77C1502, de junio de 1977 [McC04] S.
calidad, vol. 11, ISS. 11, noviembre de 2001 [Ebe94] RG Ebenau y S. Strauss, Software McConnell, Código completo: Manual práctico de construcción del
Proceso de inspección: McGraw-Hill, 1994. software, Microsoft Press, 2 Dakota del Norte
[IEEE-CS-99] IEEE-CS-1999, "Ingeniería de software de Software: Teoría y Práctica, Segunda ed: Prentice-Hall, Inc., 2001. []
Código de Ética y Práctica Profesional ", IEEE-CS / ACM, Pre04 RS Pressman, Ingeniería de Software: Enfoque para profesionales, ed
1999, disponible a Sexto: McGraw-Hill, 2004. Software Costo baja [Rad02] R. Radice alta
http://www.computer.org/certification/ethics.htm
calidad
[ISO9001-00] ISO 9001: 2000, Gestión de la calidad
Addison Wesley, 1989, Cap. 8, 10, 16. (Hya96) LE Hyatt y L. Rosenberg, "un ingenieros saber y como saben son - Estudios analíticos forman
modelo de calidad de software y métricas para la identificación de los riesgos Aeronáutica Historia. Baltimore y Londres: John Hopkins University Press,
Conferencia Anual octavo Software Technology, Utah, 1996 (Inc94) D. Ince , ISO
9001 y Calidad de Software.
(IEEE730-02) IEEE Std 730 a 2.002, Norma IEEE para Planes de (ISO9001-00) ISO 9001: 2000, Gestión de la calidad
Aseguramiento de Calidad de Software: IEEE, 2002. (IEEE982.1-88) IEEE Sistemas-Requisitos: ISO, 2000.
Std 982,1 a 1988, Diccionario estándar IEEE de Medidas para producir (ISO9126-01) ISO / IEC 9126-1: 2001, Software
software fiable, Ingeniería-producto Calidad-Parte 1: Modelo de Calidad: ISO e IEC, 2001.
1988.
(IEEE1008-87) IEEE Std 1008-1987 (R2003), IEEE estándar para el (ISO14598-98) ISO / IEC 14598: 1998, El software de evaluación del producto: ISO
software de pruebas unitarias: IEEE, 1987. (IEEE1012-98) IEEE Std e IEC, 1998. (ISO15026-98)
1012-1998, Verificación y validación del software: IEEE 1998. ISO / IEC 15026: 1998, Información
La tecnología - integridad del sistema y software de niveles: ISO e IEC, 1998.
(IEEE1028-97) IEEE Std 1028-1997 (R2002), Norma IEEE para software (ISO15504-98)
comentarios: IEEE, 1997. (IEEE1044-93) IEEE Std 1044-1993 (R2002), Norma ISO / IEC TR 15504-1998, Información
Tecnología - Software de evaluación de proceso (partes 1-9): ISO e IEC, 1998.
IEEE para la Clasificación de Software de Anomalías:
(ISO15939-00)
re ISCIPLINES DE
S OFTWARE mi NGENIERÍA
yo INTRODUCCIÓN
Con el fin de circunscribir la ingeniería de software, es necesario identificar las disciplinas con las que la ingeniería de software comparte una frontera común. En este
capítulo se identifica, en orden alfabético, estas disciplinas relacionadas. Por supuesto, las disciplinas relacionadas también comparten muchas fronteras comunes
entre ellos.
En este capítulo se identifica para cada disciplina relacionada y el uso de una fuente reconocida basada en el consenso que se encuentran:
áreas de conocimiento.
Disciplinas relacionadas de
Ingeniería de Software
informática encarna la ciencia y la tecnología de diseño, construcción, Informáticos Redes sistemas operativos
implantación y mantenimiento de componentes de software y hardware de
Programación Fundamentos de
los sistemas informáticos modernos y equipos controlados por ordenador.”
Probabilidad y Estadística Social y
Algoritmos y Complejidad
1 http://www.eng.auburn.edu/ece/CCCE/Iron_Man_Draft_October_2003.pdf
• Fundamentos de programación
• Algoritmos y Complejidad
• Arquitectura y Organización
Una lista más precisa de temas matemáticos (llamadas unidades y temas en el
• Sistemas operativos informe) que sustentan la ingeniería de software se puede encontrar en el
proyecto de informe del volumen en la ingeniería de software del proyecto
• Net-Centric Computing
Computing Curricula 2001 (CC2001) 5.
• Lenguajes de programación
• La interacción persona-ordenador
Gestión de proyectos
Las directrices europeas MBA definidos por la asociación europea de Recursos Humanos del Proyecto Gestión de la Integración
organismos nacionales de acreditación (igual) 3
del Alcance del Proyecto Proyecto de Gestión de Proyectos
MBA establece que debe incluir, particularmente, la cobertura y la instrucción en:
Gestión del tiempo Gestión de los Costos del Proyecto de
- financiar
- marketing y ventas
- jefe de operaciones
Gestión de la calidad
- ley
- gestión de recursos humanos Gestión de la calidad se define en la norma ISO 9000-2000 como “actividades
coordinadas para dirigir y controlar una organización con respecto a la calidad” Los
- ciencias económicas
tres de referencia seleccionado en la gestión de la calidad son:
- análisis cuantitativo
2 http://www.computer.org/education/cc2001/final/cc2001.pdf
3 http://www.efmd.be/ 5 http://sites.computer.org/ccse/volume/FirstDraft.pdf
4 http://www.ccpe.ca/e/files/report_ceab.pdf 6 PMBOK es una marca registrada en los Estados Unidos y otras naciones.
- Planificación, control, y asegurando producto y la calidad del Información de Procesamiento del Lenguaje Humano,
proceso;
Comunicación, ergonomía Interacción
- La fiabilidad y la gestión de riesgos;
Cognitiva AI I: Razonamiento
A continuación, la lista fue refinada por tres expertos en la materia: dos de la Universidad de Quebec en
Montreal y WW McMillan, de la Universidad de Eastern Michigan. Se les pidió que indicaran cuál de
estos temas debe ser conocido por un ingeniero de software. Los temas que fueron rechazadas por dos
10 http://sites.computer.org/ccse/volume/FirstDraft.pdf
de los tres encuestados fueron retirados de la lista original.
11 www.incose.org
Este documento comienza presentando especificaciones sobre el contenido del Software cuerpo de conocimiento que está “generalmente aceptado”. Véase la
conocimiento Descripción del área. Criterios y requisitos se definen en caso de sección 2.6 más adelante para una discusión más detallada sobre este.
un) material de referencia específica debe ser identificado para cada tema. Cada
material de referencia puede, por supuesto, cubrir múltiples temas. do Y CRITERIOS R EQUISITOS PARA IDENTIFICAR K ONOCIMIENTO
UN REAS DE LA
b) Proyecto de Documentación de referencia puede ser capítulos de libros, R EXALTADO re ISCIPLINES
artículos en revistas arbitradas, arbitrado documentos de conferencias o
a) Se espera que los Editores Asociados área de conocimiento de identificar en
arbitrado informes técnicos o industriales o cualquier otro tipo de
artefacto reconocido como documentos web. Deben ser generalizada y una sección separada que áreas de conocimiento de las disciplinas
no deben ser de naturaleza confidencial. Referencia debe ser lo más relacionadas son suficientemente relevantes para la Ingeniería de Software
precisa posible identificando qué capítulo o sección específica es área de conocimiento que se ha asignado a ellos el conocimiento de esperar
relevante. por un graduado más cuatro años de experiencia. Esta información será
especialmente útil para y se comprometerá mucho diálogo entre la Guía de la
Ingeniería de Software de Administración de la iniciativa del conocimiento y
do) Material de referencia propuesto debe estar en Inglés.
nuestras iniciativas hermanas responsables de la definición de un plan de
d) Una cantidad razonable de material de referencia debe ser seleccionado para estudios de ingeniería de software y las normas de rendimiento estándar para
cada área de conocimiento. Las siguientes pautas deben ser utilizados en
los ingenieros de software.
la determinación de cuánto es razonable:
Especializado
de software
Lista de lecturas recomendadas Avanzada e Investigación
prácticas innovadoras probados y utilizados solamente por
W SOMBRERO Qué se entiende por “ CONOCIMIENTO GENERALMENTE algunas organizaciones y conceptos todavía siendo
ACEPTADAS “? desarrolladas y probadas en organizaciones de
investigación
El swebok es un término inclusivo todo- que describe la suma de
conocimientos dentro de la profesión de la ingeniería de software. Sin
embargo, la Guía para la Ingeniería de Software de Administración de
Conocimiento busca identificar y describir ese subconjunto del conjunto de
conocimientos que es generalmente aceptado o, en otras palabras, el cuerpo Figura 1 Categorías de conocimiento
El Instituto de Gestión de Proyectos en su Guía de los Fundamentos de la texto, referencias, apéndices y mesas, etc. Esto, por supuesto, no incluye los
Dirección de Proyectos 1 define “generalmente aceptado” conocimientos materiales de referencia mismos. Este límite debe, sin embargo, no debe verse
para la gestión de proyectos de la siguiente manera: como una restricción o una obligación.
'‘Generalmente aceptadas’ significa que el conocimiento y las prácticas descritas R OLE DE mi EDITORIAL T EAM
son aplicables a la mayoría de los proyectos, la mayor parte del tiempo, y que
existe un amplio consenso sobre su valor y utilidad. “Generalmente aceptadas” no Alain Abran y James W. Moore son los editores ejecutivos y son
significa que el conocimiento y las prácticas descritas son o deberían ser responsables de mantener buenas relaciones con el IEEE CS, el Consejo
aplicados de manera uniforme en todos los proyectos; el equipo de gestión de Asesor Industrial, la Junta de Control de Cambios Ejecutivo y el Grupo de
proyectos es siempre responsable de determinar lo que es apropiado para Expertos, así como para la estrategia general, el enfoque, la organización
cualquier proyecto dado.' y financiación del proyecto.
La Guía para la Dirección de Proyectos del Conocimiento es ahora un Pierre Bourque y Robert Dupuis son los editores y son responsables de la
3. P. Bourque, R. Dupuis, A. Abran, JW Moore, L. Tripp, K. Shyne, B. 7. Collegiate Dictionary de Merriam Webster (10ª Edición). Ver nota para
Pflug, M. Maya, y G. Tremblay, Guía de la Ingeniería de Software IEEE 610.12 estándar.
de Administración de Conocimiento - una versión artificial de paja,
Universidad de Quebec en Montreal, Montreal, Informe Técnico,
septiembre de 1998. S Y TYLE T TÉCNICA GRAMO IRECTRICES
Descripción Área de Conocimiento deben ajustarse a la Conferencia
Este informe es la base de todo el proyecto. Se define la estrategia general Internacional sobre Ingeniería de Software Proceedings
del proyecto, justificación y los principios subyacentes y propone una lista formato (plantillas son disponible a
inicial de áreas de conocimiento y disciplinas relacionadas. http://sunset.usc.edu/icse99/cfp /technical_papers.html). Se espera
Descripción Área de Conocimiento de seguir el IEEE Computer
Este informe está disponible en www.swebok.org.
Sociedad Guía de estilo. Ver
4. JW Moore, Estándares de Ingeniería de Software, de un usuario http://computer.org/author/style/cs-style.htm Microsoft Word es el formato de
Hoja de Ruta. Los Alamitos: IEEE Computer Society Press, 1998. presentación preferido. Por favor, póngase en contacto con el equipo editorial si esto no
Las figuras y tablas que se acompañan de texto deben ser auto-explicativo o tener R Elease DE AUTOR
suficiente texto relacionado. Esto garantizaría que el lector sabe lo que las figuras
Todas las propiedades intelectuales asociados con la Guía para la Ingeniería de
y tablas significan. Asegúrese de que utiliza la información actual acerca de las
Software de Administración de Conocimiento permanecerán con la IEEE Computer
referencias (versiones, títulos, etc.)
Society. Se pidió Área de Conocimiento Editores Asociados para firmar un formulario de
autorización de derechos de autor.
Para asegurarse de que alguna información contenida en la Guía para el SWEBOK no se
convierta rápidamente obsoletas, por favor, evitar directamente las herramientas y los
También se entiende que la Guía de la Ingeniería de Software de
productos de denominación. En su lugar, tratar de nombrar sus funciones. La lista de
Administración de Conocimiento será puesto en el dominio público por el
herramientas y productos siempre se puede poner en un apéndice.
IEEE Computer Society, de forma gratuita a través de la tecnología web, o
por otros medios. Para más
Se espera que explican todas las siglas utilizadas y de utilizar todos los derechos de
información, ver http://computer.org/
autor correspondientes, marcas de servicio, etc. Las descripciones Área de copyright.htm
Conocimiento siempre deben ser escritas en tercera persona.
mi dición
El equipo editorial y los editores profesionales editarán Descripción Área
de Conocimiento. La edición incluye copia
A pesar de la Guía 2004 para la Ingeniería de Software de Administración de en gran medida reconciliarse con el alcance de la Guía SWEBOK. los
Conocimiento es un hito en alcanzar un amplio acuerdo sobre el contenido de la
disciplina de la ingeniería de software, que no es el final del proceso. La Guía 2004 Comité de Normas de Ingeniería de Software IEEE-CS
es simplemente la actual edición de una guía que seguir evolucionando para (SESC) ha organizado su colección por las áreas de conocimiento de
satisfacer las necesidades de la comunidad de ingeniería de software. La la Guía SWEBOK, y la Asociación de Estándares IEEE ya ha
planificación de la evolución todavía no es completa, sino un esquema provisional publicado una edición recogida CD-ROM de normas de ingeniería de
del proceso se proporciona en esta sección. Al escribir estas líneas, este proceso
software que refleje esa organización. ISO / IEC JTC / SC7,
ha sido aprobado por Consejo Asesor Industrial del proyecto e informó a la Junta
de Gobernadores de la IEEE Computer Society, pero aún no está bien financiado o
el internacional normas
puesto en práctica.
organización para el software e ingeniería de sistemas, se adopta la
guía SWEBOK como Informe ISO / IEC 19759 Técnica, y armonizar
su colección con la de IEEE.
S TAKEHOLDERS
El IEEE Computer Society Press, en cooperación con el SESC, está
La adopción generalizada de la Guía SWEBOK ha producido una comunidad
desarrollando una serie de libros sobre la base de las normas de
significativa de los interesados, además de la propia sociedad de
ingeniería de software y la Guía SWEBOK. Portal de Ingeniería de
computadora. Hay una serie de proyectos- tanto dentro como fuera de la
Software de la Computer Society, actualmente en la planificación, será
Compañía, que el ordenador están coordinando su contenido con el
contenido de la Guía SWEBOK. (Más sobre esto en un momento.) Varias organizado por las áreas de conocimiento de la Guía SWEBOK. El uso
empresas, entre ellos algunos de los miembros del Consejo Asesor Industrial a prueba la versión de la Guía SWEBOK fue traducido al japonés. Se
del proyecto, han adoptado la Guía para el uso en sus programas internos prevé que la versión 2004 también será traducido a los idiomas
para la educación y la formación. En un sentido más amplio, la comunidad de japonés, chino, y posiblemente otros.
ingeniería de software profesional, comunidad de desarrollo profesional,
y educación
T ÉL mi VOLUTION PAG PROCESO
prestar atención a la comunidad la Guía SWEBOK para ayudar a definir el alcance de sus
esfuerzos. Un grupo notable de las partes interesadas es Obviamente, un producto con esta cantidad de absorción debe ser desarrollado
los titulares de de la IEEE Computer Society de un modo abierto, consultivo, deliberada y transparente para que otros
certificación Certified Software Desarrollo proyectos puedan coordinar esfuerzos con éxito. La estrategia prevista
Profesional debido a que el alcance del examen PCSD está ampliamente actualmente es evolucionar la Guía SWEBOK utilizando un enfoque de
alineada con el alcance de la Guía SWEBOK. El IEEE Computer Society y “tiempo-caja”. El enfoque de recuadros se selecciona porque permite la Guía
otras organizaciones están llevando a cabo una serie de proyectos que SWEBOK y coordinar proyectos para llevar a cabo la revisión a la espera de
tienen una dependencia de la evolución de la Guía SWEBOK: una fecha fija para la convergencia. El recuadro temporal inicial está planeada
para ser cuatro años de duración. Al comienzo de la caja de tiempo, en
consulta con los proyectos de coordinación y plan general para la revisión de
El examen PCSD, inicialmente desarrollado en paralelo con la Guía
cuatro años sería determinada. Durante el primer año, los cambios
SWEBOK, evolucionará a un cierre partido a la Guía-tanto en alcance 1 y
estructurales en la Guía SWEBOK (por ejemplo, cambios en el número o el
material de referencia. plan de estudios de Educación a Distancia de la
alcance de las áreas de conocimiento) serían determinados. Durante el
Sociedad de Computación para los ingenieros de software tendrá el mismo
segundo y tercer año, la selección y el tratamiento de los temas dentro de las
alcance que la Guía SWEBOK. Un curso panorama inicial ya está
áreas de conocimiento serían revisados. Durante el cuarto año, el texto de las
disponible.
descripciones Área de conocimiento sería revisado y se seleccionaría
referencias hasta a la fecha.
Aunque los objetivos de educación universitaria son algo diferentes de
las de desarrollo profesional, la
Cada ciclo anual incluiría votación en las revisiones de las descripciones de áreas de conocimiento se debe evitar cuando se complica los esfuerzos de los
de área de conocimiento. Balloters revisarían las descripciones lectores para encontrar la información deseada. La adición de un tema a un área de
conocimiento es más fácil. En principio, debe ser maduro (o, al menos, la madurez
redactadas Área de conocimiento y las referencias recomendadas,
rápidamente alcanzando) y se debe generalmente aceptado 2. Las pruebas de
proporcionar comentarios y votar la aprobación de las revisiones. La
aceptación general se puede encontrar en muchos lugares, incluyendo el software de
votación estará abierta a los miembros de la sociedad de computadora y
programas de estudios de ingeniería, estándares de ingeniería de software, y los
otros participantes cualificados. (No socios tendrían que pagar una cuota
libros de texto utilizados. Por supuesto, los temas deben ser adecuados a punto de
para sufragar los gastos de la votación.) Los titulares de la PCSD serían
diseño de la Guía SWEBOK de un título de licenciatura y cuatro años de experiencia. 3
especialmente bienvenidas como miembros del grupo de votación, o
como voluntarios en otros papeles. Un Comité Electoral Resolución sería
seleccionado por el Comité de Dirección para servir como intermediarios
entre los redactores y los balloters. Su función es determinar consenso
para los cambios solicitados por el grupo de votación y para asegurar
que
los redactores
implementar los cambios necesarios. En algunos casos, el Comité
Electoral resolución puede formular preguntas para el grupo de votación
y utilizar sus respuestas para guiar la revisión del proyecto. El objetivo
2 Para la definición de “generalmente aceptado”, utilizamos IEEE Std 1490-1998,
de cada año es llegar a un consenso entre el grupo de votación en las
áreas nuevas y revisadas proyecto de conocimiento y para ganar un Adopción de PMI Standard-Una guía para la Dirección de Proyectos del
voto de aprobación de las balloters. Aunque la Guía SWEBOK no sería Conocimiento: “generalmente aceptados significa que el conocimiento y las
cambiado hasta el final del tiempo asignado, se hará libremente prácticas descritas son aplicables a la mayoría de los proyectos de la mayoría de
disponible del material aprobado del ciclo de cada año. la tiempo, y que existe un amplio consenso sobre su valor y utilidad. Esto no
significa que el conocimiento y las prácticas deben aplicarse de manera uniforme
a todos los proyectos sin considerar si son apropiadas “.
proporciona
describe la forma y el contenido de un conjunto básico de documentación para la planificación, ejecución y presentación de informes de pruebas de software.
un conjunto de medidas para evaluar la fiabilidad de un producto de software y para la obtención de los pronósticos de la fiabilidad de un producto en fase de desarrollo.
recomienda el contenido y las características de una especificación de requisitos de software. se proporcionan esquemas de ejemplo.
UN PÉNDICE
Diseño
S X
de software
de software Software
S S X
Pruebas
S PAG X
de construcción
Mantenimiento
del software
Gestión
PAG S X
de la
de ingeniería
Configuración de Software
Gestión
S S S X
de
Ingeniería de Software
Proceso
X de
Ingeniería de Software
Herramientas
de
X
ingeniería
de software y métodos
Calidad
PAG S P X tabla enumera producidos por IEEE e ISO / IEC JTC 1 / SC7, a
del software
proporciona 1012a-
describe
una terminología consistente para la medición de la productividad de software y define una forma consistente para medir los elementos que intervienen en la productividad del software de computación.
norma describe el formato y contenido de un plan de gestión de proyectos de IEEE Std
software.
clasificaciones de anomalías y datos relacionados.
Requisitos
Diseño
S P
C-2 Software
S S
Pruebas
S PAG
de construcción
Mantenimiento
del software
Gestión
S
de la
IEEE Std
Configuración de Software
Gestión
PAG PAG S S
de
Ingeniería de Software
S S S de
Ingeniería de Software
Herramientas
de
ingeniería
de software y métodos
Calidad
P P PAG S
del software
orientación
planificada de las normas sobre la integración de las herramientas CASE en un entorno de ingeniería de software productivo. Esta parte describe los concep
norma describe un método para la definición de los procesos del ciclo de vida del software.
proporciona
desarrollo de una especificación de requisitos del sistema, que abarca la identificación, organización, presentación y modificación de los requisitos. También proporciona requisitos
orientación mínimos
sobre para la estructura,
las características contenido
y cualidades deylos
formato de la documentación del usuario - tanto
requisitos.
las actividades de ingeniería de sistemas y procesos necesarios durante el ciclo de vida de un sistema para desarrollar las necesidades del cliente reunión sistemas, requisitos y limitaciones.
de prácticas útiles que pueden ser seleccionados y aplicados durante la adquisición de
Requisitos
PAG S S
Diseño
de software Software
C-3 Software
PAG S
Pruebas
de construcción
Mantenimiento
PAG S
del software
Gestión
de la
Configuración de Software
Gestión
S P S
de
Ingeniería de Software
Proceso
PAG S P S de
Ingeniería de Software
Herramientas
de
PAG
ingeniería
de software y métodos
Calidad
P S P
del software
modelado conceptual, colectivamente llamado IDEF1X97 (IDEFObject). El lenguaje de apoyar la
proporciona
orientación sobre el formato y el contenido de un Concepto de Operaciones (CONOPS), documento que describe las características de
Requisitos
PAG S S
Diseño
S S
de software Software
C-4 Software
Pruebas
de construcción
Mantenimiento
del software
Gestión
de la
Configuración de Software
Gestión
de
Ingeniería de Software
S de
Ingeniería de Software
Herramientas
de
PAG PAG PAG PAG
ingeniería
de software y métodos
Calidad
del software
un IEEE Dirección de Proyectos del Conocimiento definido por el Project Management Institute. Se identifica y se describe generalmente aceptado conocimiento con re
recomienda un marco conceptual y el contenido de la descripción arquitectónica de los sistemas intensivos en software.
Requisitos
S S
Diseño
de software Software
C-5 Software
Pruebas
de construcción
Mantenimiento
del software
Gestión
de la
Configuración de Software
Gestión
S PAG
de
Ingeniería de Software
Proceso
PAG PAG de
Ingeniería de Software
Herramientas
de
PAG
ingeniería
de software y métodos
Calidad
PAG
del software
un modelo
1: 2001
para la calidad del producto de software que cubre la calidad interna, externa de la calidad, y la calidad en uso. El modelo es en forma
Requisitos
X X PAG
Diseño
X X S
de software Software
C-6 Software
X X S
Pruebas
X X S
de construcción
Mantenimiento
X X
del software
Gestión
X X
de la
Configuración de Software
Gestión
X X
de
Ingeniería de Software
PAG PAG S de
Ingeniería de Software
Herramientas
de
X X
ingeniería
de software y métodos
Calidad
X X P PAG
del software
proporciona describe los conceptos fundamentales de una clase de medidas conocidas colectivamente como el tamaño funcional.
una visión
dirección
general de los procesos de evaluación de productos de software y proporciona orientación y requisitos para la evaluación a nivel de organización o proyecto. Las normas proporcionan métodos para la medición, análisis y evalu
establecimiento de los procesos y actividades que se pueden aplicar en la adopción de la tecnología CASE.
el
en
Requisitos
PAG X
Diseño
de software Software
C-7 Software
Pruebas
de construcción
Mantenimiento
PAG S X
del software
Gestión
X
de la
Configuración de Software
Gestión
S X
de
Ingeniería de Software
Proceso
PAG de
Ingeniería de Software
Herramientas
de
PAG X
ingeniería
de software y métodos
Calidad
PAG S X
del software
niveles de
proporciona un proceso de ciclo de vida para la medición del software. El procedimiento es adecuado para su uso con IEEE
integridad / EIA 12.207.
de software y los requisitos de integridad de software.
IFPUG 4,1 sin ajustar Counting Función Point, un método de medición del tamaño funcional conforme a los requisitos de la norma ISO / IEC 14143-1.
Requisitos
PAG PAG S
15504 (5 partes)
Diseño
de software Software
C-8 Software
Pruebas
partes) y borrador es
de construcción
Mantenimiento
S S
del software
Gestión
Configuración de Software
Gestión
S S S
de
Ingeniería de Software
PAG P P P de
Ingeniería de Software
Herramientas
de
ingeniería
de software y métodos
Calidad
S S S PAG
del software
Requisitos
PAG
Diseño
de software Software
C-9 Software
Pruebas
de construcción
Mantenimiento
del software
Gestión
de la
Configuración de Software
Gestión
S
de
Ingeniería de Software
Proceso
S de
Ingeniería de Software
Herramientas
de
ingeniería
de software y métodos
Calidad
PAG S
del software
C-10
yo INTRODUCCIÓN
Por lo que las evaluaciones se pueden adaptar a los ingenieros de
taxonomía de la flora 1 Es una clasificación muy conocido y ampliamente utilizado de los software o ingenieros de software especializados en ciertas áreas de
objetivos educativos cognitivas. Con el fin de ayudar al público que deseen utilizar la conocimiento más alto, ningún tema se da un nivel más alto que la
Guía como una herramienta en la definición material del curso, los programas taxonomía de análisis. Esto es
universitarios, los criterios de acreditación de programas universitarios, en consonancia con el enfoque adoptado en el Cuerpo Enseñanza de la
descripciones de trabajo, el papel Ingeniería de Software del Conocimiento (SEEK), donde ningún tema se le
descripciones dentro de una definición de proceso de ingeniería de software, asigna un nivel más alto que la taxonomía de aplicaciones 2. El propósito de
profesional desarrollo caminos y SEEK es definir un cuerpo de enseñanza de la ingeniería de software de
los programas de formación profesional y otras necesidades, se proponen los conocimientos apropiado
niveles de la taxonomía de Bloom para temas Guía SWEBOK en este apéndice para guiar el desarrollo de
para un graduado de ingeniería de software con cuatro años de experiencia. Un de licenciatura software Ingenieria planes de estudio.
graduado de ingeniería de software con cuatro años de experiencia es, en esencia, Aunque distintas en particular en términos de alcance, buscamos y la Guía SWEBOK
el “objetivo” de la Guía de SWEBOK según la definición de lo que se entiende por el están estrechamente relacionados 3.
conocimiento generalmente aceptado (véase la introducción de la Guía SWEBOK).
Taxonomía del dominio cognitivo propuesto en 1956 de Bloom contiene seis
niveles. tabla 1 4 presenta estos niveles y palabras clave asociadas a menudo
con cada nivel.
Desde este apéndice se refiere únicamente a lo que puede considerarse
como conocimiento “generalmente aceptado”, es muy importante recordar
que un ingeniero de software debe saber mucho más que esta “categoría”
del conocimiento. Además del conocimiento “generalmente aceptado”, un
graduado de ingeniería de software con cuatro años de conocimiento debe
poseer algunos elementos de las disciplinas relacionadas, así como ciertos
elementos de conocimiento especializado, conocimientos avanzados y
posiblemente incluso el conocimiento de investigación (véase la Introducción
de la Guía SWEBOK) . Los siguientes supuestos se hicieron al especificar
los niveles taxonomía propuesta:
y prácticas de ingeniería
Conferencia (STEP 2002), pp. 8-35, 2002)
1 B. Bloom (Eds), taxonomía de objetivos educativos: La Clasificación 4 Tabla tomada de
Conocimiento: El recuerdo de los datos. Define, describe, identifica, sabe, etiquetas, listas de los partidos, nombres, esquemas, recuerda,
reconoce, reproduce, selecciona, estados.
Comprensión: Comprender el significado, la traducción, la interpolación, y Comprende, convertidos, defiende, distingue, estimaciones, explica, se extiende,
la interpretación de las instrucciones y problemas. Estado un problema en generaliza, da ejemplos, infiere, interpreta, parafrasea, predice, reescribe, resume,
sus propias palabras. se traduce.
Solicitud: Utilizar un concepto en una nueva situación o el uso de una Se aplica, cambios, calcula, construye, demuestra, descubre, manipula, modifica,
abstracción espontánea. Se aplica lo aprendido en el aula en opera, predice, se prepara, produce, se refiere, espectáculos, resuelve, usos.
situaciones novedosas en el lugar de trabajo.
Análisis: Separa los materiales o conceptos dentro Los análisis, descansos abajo, compara, contrastes, diagramas,
partes componentes de modo que su estructura organizativa puede deconstruye, diferencia, discrimina, distingue, identifica, ilustra, infiere, esquemas, se
ser entendido. Distingue entre hechos e inferencias. refiere, selecciona, separa.
Síntesis: Construye una estructura o patrón de diversos elementos. Poner las Categoriza, cosechadoras, compila, compone, crea, elabora, diseños, explica,
piezas juntas para formar un todo, con énfasis en la creación de un nuevo genera, modifica, organiza, planifica, reorganiza, reconstruye, se relaciona,
significado o estructura reorganiza, revisa, reescribe, resume, dice, escribe.
Evaluación: Hacer juicios sobre el valor de las ideas o materiales. Evalúa, compara, concluye, contrastes, critica, criticas, defiende, describe,
discrimina, evalúa, explica, interpreta, justifica, se relaciona, resume, apoya.
El desglose de los temas en las tablas no coincide perfectamente desglose Por último, por favor, tenga en cuenta que las evaluaciones de este apéndice sólo
del tha en las áreas de conocimiento. La evaluación de este apéndice se deben definitivamente ser vistos como una propuesta para ser desarrollado y validado
preparó mientras que algunos comentarios todavía estaban llegando. aún más.
Taxonom y
taxonomía
Nivel
Desglose de los temas Desglose de los temas
Nivel
1. Requisitos de software fundamentos
1. Fundamentos del Diseño de Software
Definición de requisito de software do
conceptos generales de diseño do
los requisitos del producto y de proceso do
Contexto de diseño de software do
Los requisitos funcionales y no funcionales do
proceso de diseño de software do
Propiedades emergentes do
técnicas que permite UN
requisitos cuantificables do
2. Las cuestiones clave en el diseño de software
requisitos del sistema y los requisitos de software do
concurrencia AP
2. Requisitos proceso
Control y manejo de eventos AP
Los modelos de proceso do
Distribución de los componentes AP
actores del proceso do
Error y manejo de excepciones y tolerancia a fallos AP
apoyo y gestión de procesos do
Interacción y presentación AP
la calidad y mejora de procesos do
la persistencia de datos AP
3. Requisitos elicitación
3. Estructura del software y la arquitectura
requisitos fuentes do
estructuras arquitectónicas y puntos de vista AP
técnicas de obtención AP
Los estilos arquitectónicos (patrones) macroarchictural UN
análisis 4. Requisitos
Los patrones de diseño (patrones) microarquitectónicas UN
requisitos de clasificación AP
Las familias de los programas y marcos do
modelado conceptual UN
4. Software de análisis de calidad de diseño y evaluat ion
requisitos de diseño y arquitectura de asignación
UN Atributos de calidad do
requisitos atributos do
requisitos de rastreo AP
Evaluación, S: Síntesis
taxonomía
taxonomía
Nivel
Desglose de los temas
Nivel
Desglose de los temas
5. Proceso de Prueba
problemas de gestión do
actividades de prueba AP
taxonomía
taxonomía
Nivel
Nivel
Desglose de los temas
control de la interfaz do
Técnico
plan de gestión de configuración de software do
La comprensión limitada do
La alineación con las cuestiones de organización do La identificación de los elementos que se desea controlar
la construcción de software AP
taxonomía
taxonomía
Nivel
Nivel
1. Iniciación y definición del alcance 1. Implementación del proceso y el cambio
evaluar la medición do
taxonomía
taxonomía
Nivel
Nivel
Desglose de los temas
Revisiones y auditorías
Problemas de la herramienta Varios AP
inspecciones AP
2. Los métodos de la ingeniería del software
Revisiones hechas por colegas AP
Los métodos heurísticos AP Tutoriales AP
Los métodos formales y notaciones do Pruebas AP
métodos de prototipado AP auditorías do
Confianza do
caracterización de defectos AP
técnicas de gestión de la calidad del
software
técnicas estáticas AP
técnicas analíticas AP
técnicas dinámicas AP