Академический Документы
Профессиональный Документы
Культура Документы
Cuerpo de conocimientos
versión 3.0
SWEBOK ®
versión 3.0
editores
1) no se hacen con fines de lucro o en lugar de la compra de copias para las clases, y que este aviso y una referencia completa a la obra original aparecen en la primera página de
la copia y 2) no implican su reconocimiento IEEE de cualquier producto de terceros o servicios. El permiso para reproducir / a publicar este material para fines comerciales,
publicidad o con fines promocionales o para la creación de nuevas obras colectivas para la reventa o redistribución debe ser obtenido de IEEE por escrito a la Oficina de Derechos
La referencia a cualquier producto comercial específico, proceso o servicio no implica reconocimiento alguno por el IEEE. Los puntos de vista y opiniones expresadas en esta publicación
IEEE pone este documento a disposición “tal cual” y no hace ninguna garantía, expresa o implícita, en cuanto a la exactitud, la capacidad, la eficiencia de comercialización, o
el funcionamiento de este documento. En ningún caso, IEEE ser responsable de los daños generales, consecuentes, indirectos, incidentales, ejemplares o especiales, incluso
978-0-7695-5166-1
copias digitales de Guía SWEBOK V3.0 se puede descargar de forma gratuita para uso personal y académico a través www.swebok.org .
Anne Marie Kelly, Director Ejecutivo Asociado, Director del Programa de Certificación de Gobierno
Productos IEEE Computer Society y Servicios. El IEEE Computer Society de renombre mundial publica, promueve y distribuye una amplia variedad de
revistas de ciencia e ingeniería equipo autorizado, revistas, actas de congresos y productos de educación profesional. Visite la Sociedad Informática de la www.computer.org
Prefacio xvii
Prólogo a la edición de 2004 xix
editores xxi
coeditores xxi
Colaboradores de redacción xxi
Tablero de control de cambios xxi
Editores Área de Conocimiento xxiii
Editores Área de Conocimiento de SWEBOK Versiones anteriores xxv
Equipo de revisión xxvii
Expresiones de gratitud xxix
Actividades profesionales Board, 2013 Membresía xxix
Movimientos respecto a la aprobación de la Guía SWEBOK V3.0 xxx
Movimientos respecto a la aprobación de la Guía SWEBOK 2004 Versión xxx
Introducción a la Guía XXXI
v
vi Guía SWEBOK® V3.0
Cada profesión se basa en un conjunto de conocimientos, a pesar de En 1958, John Tukey, la istician stat- de renombre mundial, acuñó el
que el conocimiento no siempre se define de una manera concisa. En término software. ingeniería de cerámica El término blandas se utiliza en
los casos en que no existe ninguna formalidad, el cuerpo de el título de una conferencia de la OTAN celebrada en Alemania en 1968.
conocimiento se “GEN-ralmente reconocido” por los médicos y puede El IEEE Computer Society publicó por primera vez su Las transacciones
ser codificado en una variedad de formas para una variedad de usos en Ingeniería de Software en 1972, y una camiseta de compromiso para
diferentes. Pero en muchos casos, una guía para un cuerpo de el desarrollo de la ingeniería de software Dardos Están- se estableció
conocimiento se documenta formalmente, el aliado no baja en una dentro de la IEEE Computer Society en 1976.
forma que permite que sea utilizado para fines tales como el desarrollo
y la acreditación de programas académicos y de capacitación,
certificación de especialistas, o licencia profesional. En general, una En 1990, se inició la planificación para una norma interna- cional
asociación profesional u organismo similar mantiene la administración para proporcionar una visión global de ingeniería de soft- ware. El
de la definición formal de un conjunto de conocimientos. estándar se completó en 1995 con la designación ISO / IEC 12207
y recibió el título de Cesos estándar para Software Ciclo de Vida
Pro-. La versión de IEEE 12207 fue publicada en 1996 y
proporcionó una base importante para el conjunto de
Durante los últimos cuarenta y cinco años, la ingeniería de software ha conocimientos capturado en SWEBOK 2004. La versión actual de
evolucionado a partir de una frase conferencia Catch en una profesión de 12207 se designa como ISO / IEC 12207: 2008 e IEEE 12.207 a
la ingeniería, caracteriza- da por la 1) una sociedad profesional, 2) las 2.008; que proporciona la base para este V3 SWEBOK. Esta Guía
normas que especifican las prácticas profesionales generalmente de la Ingeniería de Software de Administración de Conocimiento se
aceptadas; presenta a usted, el lector, como un mecanismo para adquirir los
3) un código de ética, 4) actas de la conferencia, conocimientos que necesita en su desarrollo de carrera de toda la
5) libros de texto, 6) directrices del plan de estudios y planes de vida como un profesional de la ingeniería de software.
estudio, 7) los criterios de acreditación y programas de grado
acreditados, 8) la certificación y concesión de licencias, y 9) de esta
guía al cuerpo de conocimientos. En esto Guía de la Ingeniería de
Software de Administración de Conocimiento, las cons- tituye IEEE
Computer Society una versión revisada y actualizada del conjunto de
conocimientos anteriormente documentado como SWEBOK 2004; Dick Fairley, Presidente
esta versión revisada y actualizada se denota SWEBOK V3. Este Software y Comité de Ingeniería de Sistemas
trabajo está en cumplimiento parcial de la responsabilidad de la IEEE Computer Society
sociedad para promover el avance de la teoría y la práctica de la
profesión de la ingeniería de software. Cabe señalar que esta Guía lo
cual no representa la totalidad del cuerpo de conocimientos de Don Shafer, vicepresidente
ingeniería de soft- ware sino que sirve como guía para el conjunto de Junta actividades profesionales
conocimientos que se ha desarrollado durante más de cuatro IEEE Computer Society
décadas. El software de inge- niería cuerpo de conocimientos está
constantemente en evolución ing. Sin embargo, esta Guía constituye
una valiosa caracterización poder de la profesión de la ingeniería de
software.
xvii
Prólogo a la edición de 2004
En esto Guía, lishes la IEEE Computer Society esta- por primera normas. Estos talleres involucrados ners practitio- compartiendo sus
vez una línea de base para el conjunto de conocimientos para el experiencias con los Standards existentes. Los talleres también se
campo de la ingeniería de software, y el trabajo cumple llevaron a cabo sesiones sobre la Planificación de las normas futuras,
parcialmente la responsabilidad de la sociedad para promover el incluyendo uno que incluya las medidas y métricas para la ingeniería
avance de la teoría y la práctica en este campo. De este modo, la de software de productos y procesos. La planificación también resultó
Sociedad se ha guiado por la experiencia de disciplinas con en IEEE Std. 1002, Taxonomía de los Estándares de Ingeniería de
historias más largas, pero no estaba vinculado por sus Software ( 1986), que proporciona una nueva visión, holística de
problemas o sus soluciones. Cabe señalar que la Guía no PUR ingeniería de software. La norma describe la forma y el contenido de
puerto para definir el conjunto de conocimientos, sino más bien las normas de ingeniería de un soft- ware taxonomía. Se explican los
para servir como un compendio y guiar al cuerpo de diferentes tipos de Dardos de ingeniería de software Están-, sus
conocimiento que se ha ido desarrollando y en evolución ing en relaciones funcionales y externos, y el papel de las diversas
las últimas cuatro décadas. Por otra parte, este conjunto de funciones que participan en el ciclo de vida del software.
conocimientos no es estática. los Guía
debe, necesariamente, desarrollar y evolucionar a medida que madura la En 1990, se inició la planificación para un Dard Están-
ingeniería de software. Sin embargo, constituye un valioso elemento de internacional con una visión de conjunto. El la Planificación centrada
la infraestructura de la ingeniería de software. sobre la conciliación de los puntos de vista del proceso de software
de IEEE Std. 1074 y la norma revisada 2167A de EE.UU.
En 1958, John Tukey, la istician stat- de renombre mundial, Departamento de Defensa. La revisión fue publicada como aliado
acuñó el término software. El termino Ingeniería de software se eventu- DoD Std. 498. La norma internacional se completó en 1995
utilizó en el título de una conferencia de la OTAN celebrada en con la denomina- ción, ISO / IEC 12207, y se le dio el título de Dard
Alemania en 1968. El IEEE Computer Society publicó por primera Están- para los procesos de ciclo de vida del software. Std. ISO / IEC
vez su Las transacciones en Ingeniería de Software en 1972. El 12207 proporciona un importante punto de partida para el conjunto
comité establecido en la IEEE Computer Society para el desarrollo de conocimientos capturados en este libro. Era la Junta IEEE
de estándares de ingeniería de software fue fundada en 1976. 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
La primera visión integral de ingeniería de software para salir de Machinery Consejo (ACM) aprobó una moción relacionada en agosto
la IEEE Computer Society fue resultado de un esfuerzo dirigido por de 1993. Los dos movimientos condujeron a un comité conjunto bajo
Fletcher Buckley para desarrollar el estándar IEEE 730 para el la dirección de Mario Barbacci y Stuart Zweben que sirvió como
software de cali- dad de aseguramiento, que se completó en 1979. copresidentes. La declaración de la misión de la comisión conjunta
El propósito de la norma IEEE Std. 730 era proporcionar uniformes, era “Establecer los conjuntos apropiados (s) de criterios y normas
requisitos mínimos aceptables para la preparación y el contenido para la práctica profesional de la ingeniería de software sobre el cual
de los planes de ANCE assur- de calidad de software. Esta norma siones industriales terio, la certificación profesional, y los programas
fue influyente en com- pletar las normas de desarrollo de los de estudio se pueden basar.” El comité directivo grupos de trabajo
siguientes temas: gestión de configuración, software de Exámenes, organizados en las siguientes áreas:
requisitos de software, diseño de software, y la verificación y
validación de software.
xix
xx Guía SWEBOK® V3.0
2. Definir Ética y Estándares Profesionales. Se espera que los lectores encontrarán en este libro uso-ful para
3. Definir planes de estudio para la Educación univer- comieron, guiarlos hacia el conocimiento y los recursos que necesitan en su
graduado, y la educación continua. carrera de por vida desa- rrollo como profesionales de ingeniería de
software. El libro está dedicado a Fletcher Buckley en
Este libro suministra el primer componente: se requiere reconocimiento a su compromiso con la promoción de la ingeniería
conjunto de conocimientos y recomendar prácticas. El código de software como una disciplina profesional y su excelencia como
de ética y práctica profesional de la ingeniería de software se Tioner una ingeniería de software prác- en aplicaciones de radar.
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.
Leonard L. Tripp, Fellow de IEEE 2003
Presidente del Comité de Prácticas Profesionales, IEEE
El plan de estudios para los estudiantes está siendo Computer Society (2001-2003)
completada por un esfuerzo conjunto de la IEEE Computer
Society y de la ACM y se espera que esté terminado en 2004. Presidente del Comité Directivo Conjunto IEEE Computer
Society y ACM para el Establecimiento de Ingeniería de
Cada profesión se basa en un cuerpo de El conocimiento y las Software como Profesión (1998-1999)
prácticas recomendadas, a pesar de que no siempre se definen de
una manera precisa. En muchos casos, éstos se documentan Presidente del Comité de Estándares de Ingeniería de Software,
formalmente, el aliado no baja en una forma que les permite ser IEEE Computer Society (1992-1998)
utilizado para fines tales como la acreditación de programas
académicos, el desarrollo de programas de educación y formación, la
certificación de especialistas, o licencia profe- sional. En general, una
sociedad profesional u organismo relacionado mantiene la custodia
de una definición Mal tales lucro. En los casos en que no exista tal
formalidad, el conjunto de conocimientos y prácticas recomendadas
son “generalmente reconocidos” por ners practitio- y pueden ser
codificados en una variedad de maneras para diferentes usos.
EDITORES
Pierre Bourque, Departamento de Ingeniería de Software y TI, Escuela de Tecnología Superior (ETS),
Canadá, pierre.bourque@etsmtl.ca
Richard E. (Dick) Fairley, Software e Ingeniería de Sistemas Asociados (S2EA), EE.UU.,
dickfairley@gmail.com
coeditores
Alain Abran, Departamento de Ingeniería de Software y TI, Escuela de Tecnología Superior (ETS),
Canadá, alain.abran@etsmtl.ca
Juan Garbajosa, Universidad Politécnica de Madrid (Universidad Politécnica de Madrid, UPM), España,
juan.garbajosa@upm.es
Gargi Keeni, Tata Consultancy Services, la India, gargi@ieee.org
Beijun Shen, Escuela de software, Shanghai Jiao Tong Universidad, China, bjshen@sjtu.edu.cn
editores colaboradores
Las siguientes personas que se presentan en el Guía SWEBOK V3 Junta de Control de Cambio:
Pierre Bourque Richard E. (Dick)
Fairley, Presidente
Dennis Frailey
Michael Gayle
Thomas Hilburn Paul
Joannou James W.
Moore
Don Shafer
Steve Tockey
xxi
EDITORES área de conocimiento
Requisitos de Software
Gerald Kotonya, Facultad de Informática y Comunicaciones, Universidad de Lancaster, Reino Unido,
gerald@comp.lancs.ac.uk
Peter Sawyer, Facultad de Informática y Comunicaciones, Universidad de Lancaster, Reino Unido,
sawyer@comp.lancs.ac.uk
Diseño de software
Yanchun Sol, Facultad de Ingeniería Electrónica e Informática, Universidad de Pekín, China,
sunyc@pku.edu.cn
Construcción de software
Xin Peng, Escuela de Software de la Universidad de Fudan, China, pengxin@fudan.edu.cn
Pruebas de software
Antonia Bertolino, ISTI-CNR, Italia, antonia.bertolino@isti.cnr.it
Eda Marchetti, ISTI-CNR, Italia, eda.marchetti@isti.cnr.it
xxiii
xxiv Guía SWEBOK® V3.0
Fundamentos de computación
Hengming Zou, Shanghai Jiao Tong Universidad, China, zou@sjtu.edu.cn
Fundamentos matemáticos
Nabendu Chaki, Universidad de Calcuta, India, nabendu@ieee.org
Fundamentos de ingeniería
Amitava Bandyopadhayay, Instituto de Estadística de la India, la India, bamitava@isical.ac.in
Mary Jane Willshire, Software e Ingeniería de Sistemas Asociados (S2EA), EE.UU.,
mj.fairley@gmail.com
Las siguientes personas sirvieron como editores asociados, ya sea para la versión de prueba publicado en 2001 o para la versión 2004.
Requisitos de Software
Peter Sawyer, Departamento de Informática, Universidad de Lancaster, Reino Unido Gerald
Diseño de software
Chico Tremblay, departamento de Informática, UQAM, Canadá
Construcción de software
Steve McConnell, Construx Software, EE.UU. Terry Bollinger, la
MITRE Corporation, EE.UU. Philippe Gabrini, departamento de Informática,
UQAM, Canadá Louis Martin, departamento de Informática, UQAM, Canadá
Pruebas de software
Antonia Bertolino, ISTI-CNR, Italia Eda
Marchetti, ISTI-CNR, Italia
xxv
xxvi Guía SWEBOK® V3.0
referencias Editor
Marc Bouisset, departamento de Informática, UQAM
equipo de revisión
Las personas que se indican a continuación participaron en el proceso de revisión pública de Guía SWEBOK V3. La membresía de la IEEE
Computer Society no era un requisito para participar en este proceso de revisión, y la información de pertenencia no se ha solicitado a los
colaboradores. Más de 1.500 comentarios individuales se recogieron y debidamente adjudicadas.
xxvii
xxviii Guía SWEBOK® V3.0
Los fondos para el desarrollo de Guía SWEBOK diversas maneras: Pieter Botman, Evan Butterfield, Carine
V3 ha sido proporcionada por la IEEE Computer Society. Los Chauny, Pierce Gibbs, Diane Girard, John Keppler, Dorian
editores y coeditores aprecian el importante trabajo realizado por McClenahan, Kenza Meridji, Sam-uel Redwine, Annette Reilly, y
los editores Ka y los editores colaboradores, así como por los de Pam Thompson. Por último, seguramente hay otras personas
los miem- bros de la Junta de Control de Cambios. El equipo que han contribuido a este Guía, ya sea directa o indirectamente,
editorial también debe reconocer la contribución indispensable de cuyos nombres tenemos omitirse sin querer Ted. Para esas
los colaboradores. personas, ofrecemos nuestra apre- ciación tácito y disculpas por
haber omitido el reconocimiento explícito.
El equipo editorial también desea agradecer a las personas
siguien- tes que han contribuido al proyecto en
xxix
xxx Guía SWEBOK® V3.0
los Guía SWEBOK V3.0 fue sometida a votación por los miembros del IEEE Computer Society verificados en noviembre de 2013,
con la siguiente pregunta: “¿Aprueba este manuscrito de la Guía SWEBOK
V3.0 para ubicarse en el formato y la publicación?”Los resultados de esta
votación había 259 Sí votos y 5 Sin votos.
La siguiente moción fue aprobada por unanimidad por la Junta de Actividades Profesionales de la IEEE Computer Society en diciembre de
2013:
La Junta de Actividades Profesionales de la IEEE Computer Society considera que el Guía para la Cesión de Software Ingeniería
Cuerpo de Conocimientos La versión 3.0 ha sido completada con éxito; y hace suya la Guía de la Ingeniería de Software de
Administración de Conocimiento Versión 3.0 y lo recomienda a la Junta IEEE Computer Society de Gobernadores para su
aprobación.
La siguiente moción fue aprobada por la Junta IEEE Computer Society de Gobernadores en diciembre de 2013:
Movido, que la Junta de Gobernadores de la IEEE Computer Society aprueba la versión 3.0 de la
Guía de la Ingeniería de Software de Administración de Conocimiento y autoriza al Presidente de la Junta sionales Actividades Profe- para
continuar con la impresión.
La siguiente moción fue aprobada por unanimidad por el Consejo Asesor Industrial del Guía SWEBOK
proyecto en febrero de 2004:
El Consejo Asesor Industrial encuentra que la ingeniería del cuerpo software de proyecto Conocimiento ini- ciada en 1998
se ha completado con éxito; y hace suya la versión del 2004 Guía de la SWEBOK y lo recomienda a la Junta IEEE
Computer Society de Gobernadores para su aprobación.
La siguiente moción fue aprobada por la Junta IEEE Computer Society de Gobernadores en febrero de 2004:
Movido, que la Junta de Gobernadores de la IEEE Computer Society aprueba la edición de 2004 de la Guía de la Ingeniería de
Software de Administración de Conocimiento y autoriza al Presidente del Comité de Prácticas pro- fesional para continuar con la
impresión.
Tenga en cuenta también que la edición del 2004 Guía de la Ingeniería de Software de Administración de Conocimiento
fue presentado por el IEEE Computer Society con la norma ISO / IEC sin ningún cambio y fue reconocido como el informe técnico ISO /
IEC TR 19759: 2005.
INTRODUCCIÓN A LA GUÍA
KA Área de conocimiento
literatura. El propósito de Guía es describir la parte del
Software Cuerpo de Ingeniería del
SWEBOK cuerpo de conocimientos que se gene- ralmente
Conocimiento
aceptada, para organizar esa porción, y para
proporcionar acceso tópica a la misma. los Guía de la
Publicación de la versión de este 2004 Guía de la Ingeniería de swebok (Guía SWEBOK) se estableció con los cinco
Software de Administración de Conocimiento ( SWE- BOK 2004) fue un objetivos siguientes:
hito importante en el establecimiento de la ingeniería de software como
una disciplina de ingeniería reconocida. El objetivo en el desarrollo de
esta actualización para SWEBOK es mejorar la moneda, la legibilidad, 1. Promover una visión consistente de la ingeniería de software en
consistencia y facilidad de uso de la Guía. todo el mundo
2. Para especificar el alcance de, y aclarar el lugar de la
Todas las áreas de conocimiento (KAS) se han actualizado para ingeniería de software con respecto a otras disciplinas
reflejar los cambios en la ingeniería de software desde la publicación como la informática, la gestión del pro- yecto, ingeniería
de SWEBOK 2004. Cuatro nuevos dación Fun- KAs y una Ingeniería informática y matemáticas
de Software Prácticas Profe- sional KA se han añadido. Las
herramientas de ingeniería de software y métodos KA ha sido 3. Caracterizar los contenidos de la disciplina de la ingeniería
revisada como modelos y métodos de ingeniería de software. de software
herramientas de ingeniería de software es ahora un tema en cada 4. Proporcionar un acceso tópica en la Ingeniería de Software de
una de la KAS. Tres apéndices proporcio- nar las especificaciones Administración de Conocimiento
para la descripción KA, un conjunto anotada de normas relevantes 5. Proporcionar una base para el desarrollo curricular y
para cada KA, y una lista de las referencias citadas en el Guía. para la certificación individual y material de licencias
Esta Guía, escrita bajo los auspicios de la Junta de Actividades El primero de estos objetivos, una amplia visión del mundo
Profesionales de la Sociedad IEEE orde- nador, representa un coherente de ingeniería de software, fue apoyada por un proceso de
siguiente paso en la evolu- ción de la profesión de la ingeniería de desarrollo que dedica aproximada- mente 150 los colaboradores de
software. 33 países. Más información sobre el proceso de desarrollo se puede
encontrar en la página web ( www.swebok.org ). Se estableció
Qué es la ingeniería de software? contacto con las agencias fesionales y las sociedades científicas y
públicas pro involucrados en la ingeniería de software, conscientes de
ISO / IEC / IEEE Sistemas y de Ingeniería de Software de este proyecto para actualizar SWEBOK, e invitados a participar en el
vocabulario (SEVOCAB) define las soluciones de inge- niería proceso de revisión. tores KA edi- fueron reclutados de América del
como “la aplicación de una disci- plined, enfoque sistemático y Norte, la cuenca del Pacífico, y Europa. Las presentaciones sobre el
cuantificable al desarrollo, operación y mantenimiento de proyecto se hicieron en varios lugares internacionales. El segundo de
software; es decir, la aplicación de la ingeniería al software) “. 1 los objetivos, el deseo de especificar el ámbito de la ingeniería de
software, moti- VATES la organización fundamental de la Guía. El
material que se reconoce como estar dentro de esta disciplina se
¿QUÉ SON LOS OBJETIVOS DE LA GUÍA organiza en los quince KAs enumerados en la Tabla I.1. Cada uno de
SWEBOK? estos Kas es tratado en un capítulo de esta Guía.
1 Véase www.computer.org/sevocab .
XXXI
xxxii Guía SWEBOK® V3.0
Software Engineering Modelos y Métodos de Calidad de interés. los Guía trata los temas seleccionados de una manera
compatible con las principales escuelas de pensamiento y con las
Software
averías que se encuentran generalmente en la industria y en la
Fundamentos de Ingeniería de Software Práctica Profesional
literatura de ingeniería de software y estándares. Las averías de los
de Ingeniería de Software de Computación Economía temas no presumen dominios particulares de aplicación, usos
fundamentos matemáticos Fundamentos de Ingeniería comerciales, filosofías de gestión, métodos de desarrollo, y así
sucesivamente. La extensión de la descripción de cada tema es sólo
eso necesitaba comprender la naturaleza generalmente aceptada de
los temas y para que el lector encuentre éxito material de referencia; el
Cuerpo de Conocimiento se encuentra en los materiales de referencia
Al especificar el alcance, también es importante adoptar la definición de a sí mismos, no en el Guía.
las disciplinas que se cruzan con la ingeniería de software. Con este fin,
enumeran en la tabla
Matemáticas gestión de la
del Guía. Cada KA incluye referencias relevante de la lista
consolidada de referen- cia y también incluye una matriz que
ciencia de computadoras en
relaciona el material de referencia para los temas incluidos.
general Ingeniería Informática Cabe señalar que la Guía no pretende ser exhaustivo en sus
citas. Mucho material que es a la vez conveniente y excelente
certificación y concesión de licencias, el criterio de generalmente El desglose de los temas en cada KA consti- tuye el
aceptado el conocimiento se ha aplicado, que se distingue de un núcleo la descripción KA, que describen la descomposición
conocimiento avanzado y la investigación (sobre la base de la de la KA en subáreas, temas y subtemas. Para cada tema
madurez) y de conocimiento especializado (por motivos de o subtema, se da una breve descripción, junto con una o
generalidad de la solicitud). El término equivalente generalmente más referencias.
reconocido
El material de referencia fue elegido porque se considera que
proviene del Instituto de Gestión de Proyectos: “Generalmente constituye la mejor presentación de los conocimientos en relación
reconocido significa el conocimiento y las prácticas descritas son con el tema. Una matriz vincula los temas que el material de
aplicables a la mayoría de los proyectos, la mayor parte del referencia. La última parte de la descripción de cada KA es la lista
tiempo, y no hay consenso sobre su valor y utilidad.” 2 de referencias recomendadas y (opcionalmente) las lecturas ther de
pieles. normas pertinentes para cada KA se presentan en el
Sin embargo, los términos “generalmente aceptados” o Apéndice B de la Guía.
“generalmente reconocido” no implican que el des- conocimiento
ignated debe aplicarse de manera uniforme a todos los esfuerzos de
ingeniería de software, cada una de las necesidades pro- yecto APÉNDICE A. KA Descripción
determinan que-pero sí implica que, ingenieros de software capaces Especificaciones
competentes deberían estar equipados con este conocimiento para su
aplicación potencial. Más precisamente, el conocimiento generalmente Apéndice A describe las especificaciones proporcionadas por el
aceptado debe ser incluido en el estudio de mate- rial para la ingeniería equipo editorial de los editores asociados de los contenidos,
de licencias de software exami- nación que los graduados tomarían referencias, formato y estilo de las descripciones KA
después de ganar cuatro años de experiencia laboral. Aunque este cri- recomendado.
terio es específico para el estilo de los EEUU de la educación y no
necesariamente se aplica a otros países, consideramos que es útil. APÉNDICE B. ASIGNACIÓN DE Normaliza- ción
A KAS
2 Una guía para la Dirección de Proyectos del Conocimiento, 5 ed, marcados con un asterisco (*) en el texto).
el Project Management Institute, 2013.; www.pmi.org .
CAPÍTULO 1
REQUISITOS DE SOFTWARE
Tamaño funcional Medición Consejo requisitos mediante el establecimiento de los recursos y las
limitaciones con las que opera el proceso y que actúan para
Internacional sobre Sistemas INCOSE
configurarlo. Una descomposición alternativa podría utilizar una
ingeniería
estructura a base de pro- ducto (requisitos del sistema, los requisitos
UML Lenguaje Unificado de Modelado de
de soft- ware, prototipos, casos de uso, y así sucesivamente). La
Sistemas SysML Lenguaje de Modelado composición basada en el proceso refleja el hecho de que el proceso
de requisitos, si ha de tener éxito, debe ser considerada como un
proceso que implica actividades complejas, fuertemente acoplados
INTRODUCCIÓN (tanto secuenciales y simultáneas), en lugar de como una discreta,
de una sola vez la actividad realizada al inicio de un proyecto de
El área de conocimiento Requisitos de software (KA) se ocupa de desarrollo de software. Los requisitos de software KA se relaciona
la obtención, análisis, speci- ficación, y la validación de los estrechamente con el diseño de software, pruebas de software,
requisitos de software, así como la gestión de los requisitos mantenimiento de software, Software Configuration Management,
Duran- todo el ciclo de vida del producto de software. Es Gestión de Ingeniería de Software, Software de Ingeniería de
ampliamente reconocido entre los investigadores y profesionales Procesos, Ingeniería de Software y Modelos Métodos y Calidad de
de la industria que los proyectos de software son críticamente Software de Kas.
vulnerables cuando están mal realizan las actividades
relacionadas REQUISITOS. Requisitos de software expresan las
necesidades y limitaciones impuestas a un producto de software
que contribuyen a la solución de algunos problemas del mundo
real.
1-1
1-2 Guía SWEBOK® V3.0
Para resolver algún problema en el mundo real. Se puede tratar requisitos pueden ser verificados dentro de las limitaciones de recursos
de automatizar parte de una tarea para alguien para apoyar los disponibles.
procesos de negocio de una organiza- ción, para corregir Requisitos tienen otros atributos en adi- ción a las propiedades de
defectos de software existente, o para controlar un nombre de comportamiento. Los ejemplos más comunes incluyen una clasificación
dispositivo a sólo algunos de los muchos problemas para los que de prioridad para permitir compensaciones en la cara de los recursos
son posibles soluciones de software . Las formas en que los finitos y un valor de estado para permitir el avance del proyecto a
usuarios, pro- cesos de negocio, y dispositivos de función suelen vigilar. Tıpicamente, los requisitos de software son singularmente
ser complejas. Por extensión, por lo tanto, los requisitos de identificadas con los de modo que puedan ser objeto de software de
software de par- ticular son típicamente una compleja gestión de con- figuración durante todo el ciclo de vida de la entidad y
combinación de varias personas en diferentes niveles de una del software.
organización, y que están en una u otra manera involucrados o
relacionados con esta función del entorno en el que el software
operará. Una propiedad esencial de todos los requisitos de 1.2. Requisitos del producto y de proceso
software es que sean verificables como una característica
individual como requisito funcional o a nivel del sistema como un Un requisito de un producto es una necesidad o restricción en el
requisito no funcional. Puede ser difícil o costoso para verificar software que se desarrollarán (por ejemplo, “El software verificará
ciertos requisitos de soft- ware. Por ejemplo, la verificación del que un estudiante cumple con todos los requisitos previos antes de
requisito de caudal en un centro de llamadas puede hacer que él o ella se registre en un curso”). Un requisito proceso es
necesario el desarrollo de software de simulación. Requisitos de esencialmente un con- straint en el desarrollo del software (por
software, ING Ensayos software y personal de calidad debe ejemplo, “El software se desarrolla utilizando un proceso RUP”).
asegurar que el
técnica es un ejemplo. Otro podría ser el uso de técnicas de análisis dependen para su interpretación en un juicio subjetivo ( “el
particularmente rigurosas (tales como los métodos de especificación software será fiable”, “el software debe ser fácil de usar”).
formal) para reducir los fallos que pueden conducir a insuficiente Esto es Particularmente importante para los requisitos no
fiabilidad. requisitos pro- ceso También pueden imponerse funcionales. Dos ejemplos de requisitos cuantificados son los
directamente por la organización de desarrollo, su cliente, o un siguientes: software de un centro de llamadas debe aumentar
tercero, tal como un regulador de la seguridad. el rendimiento del centro en un 20%; y un sistema tendrá una
probabilidad de generar un error fatal durante cualquier hora
de operación de menos de 1 * 10 - 8. El requisito de caudal está
1.3. Requisitos funcionales y no funcionales en un nivel muy alto y tendrá que ser utilizado para derivar
una serie de requisitos detallados. El requisito dad fiabili- será
Funcional requisitos describen las funciones que el software es fuertemente restringir la arquitectura del sistema.
ejecutar; por ejemplo, para- estera algún texto o la modulación de
una señal. A veces se conocen como capacidades o características.
Un requisito funcional también puede ser descrito como uno para el
cual un conjunto finito de pasos de prueba se puede escribir para
validar su comportamiento. 1.6. Requisitos del sistema y requisitos de
software
no funcional los requisitos son los que actúan para limitar la
solución. Los requisitos no funcionales son a veces conocidos En este tema, los medios del “sistema”
2. Requisitos Proceso
[1 *, c4s4] [2 *, C1-4, c6, c22, c23]
1.5. Requisitos cuantificables
En esta sección se presenta el proceso de requisitos de software, la
Requisitos de software deben expresarse tan claramente y orientación de los cinco temas restantes y mostrando cómo el proceso se
sin ambigüedad como sea posible, y, en su caso, ajusta perfectamente a los requisitos del proceso general de la ingeniería
cuantitativamente. Es importante evitar los requisitos de de software.
vagas y no verificables que
1-4 Guía SWEBOK® V3.0
2.1. Los modelos de proceso la gente de marketing son a menudo necesarios para esta- blecer
costo y puntualidad de un producto de software y de la satisfacción para garantizar las necesidades de negocios más importantes del
del cliente con él. Esto ayudará a orientar el proceso de requisitos de cliente son las primeras en cubrirse. Esto minimiza el riesgo de
calidad con Dardos Están- y modelos de mejora de procesos para las especialistas necesidades de gasto de tiempo elicit- requisitos de
mercancías y los sistemas blandas. La calidad del proceso y la ING que son de poca importancia, o los que resultan ser ya no es
mejora está estrechamente relacionado tanto a la calidad del relevante cuando se entrega el software. Por otra parte, la
software y KA KA Proceso de Ingeniería de Software, que descripción debe ser escalable y extensible para aceptar otras
comprende exigencias no se expresa en las primeras listas formales y
compatibles con los anteriores como se contempla en métodos
recursivos.
• requisitos de cobertura proceso de normas y modelos
de mejora de procesos;
• requisitos las medidas de proceso y 3.1. requisitos Fuentes
la evaluación comparativa;
• planificación de la mejora e implementación; Requisitos tienen muchas fuentes en cerámica típica blandas, y es
• seguridad / mejora de la CIA / planificación y esencial que se identifican y evalúan todas las fuentes potenciales.
ejecución. Este tema está diseñado para promover el conocimiento de las
diversas fuentes de requisitos de software y de los marcos para la
3. la obtención de requisitos gestión de los mismos. Los principales puntos cubiertos son los
[1 *, c4s5] [2 *, c5, c6, c9] siguientes:
Uno de los principios fundamentales de un buen proceso de • Conocimiento del dominio. El ingeniero de software necesita
obtención requisitos es el de la comunicación tivo effec- entre los para adquirir o tener El conocimiento disponible sobre el
distintos titulares stake-. Esta comunicación continúa con el dominio de aplicación. conocimiento del dominio
proceso entero de desarrollo de software del Ciclo de Vida proporciona el contexto en el que todo el conocimiento
(SDLC) con diferentes actores a diferentes puntos en el tiempo. requisitos provocada debe ajustarse con el fin de
Antes de que comience el desarrollo, los especialistas requisitos entenderlo. Es una buena práctica para emular un enfoque
pueden formar el conducto para esta comunicación. Deben Medi ontológico en el dominio del conocimiento. relacio- nes entre
comieron entre el dominio de los usuarios de software (y otras los conceptos relevantes dentro del dominio de aplicación
partes interesadas) y el mundo de la técnica del ingeniero de deben ser identificados.
software. Un conjunto de modelos internamente consistentes en
diferentes niveles de abstracción facilitar las comunicaciones • Las partes interesadas (véase la sección 2.2, actores del
entre los usuarios de software / titulares stake- e ingenieros de proceso). Gran parte del software ha demostrado ser
software. insatisfactorio porque ha hecho hincapié en las exigencias
de un grupo de interesados a expensas de los demás. Por lo
tanto, el software entregado es difícil de usar, o subvierte las
Un elemento crítico de la obtención de requisitos está informando estructuras culturales o políticas de la organización al cliente
al alcance del proyecto. Esto implica proporcio- nando una central. El ingeniero de software tiene que identificar,
descripción del software que se especifica y su propósito y dar representar y administrar
prioridad a los entregables
1-6 Guía SWEBOK® V3.0
los “puntos de vista” de muchos tipos diferentes de grupos de aún no se ha obtenido a partir de los usuarios finales. La importancia
interés. de la planificación, verificación y validación en la obtención de
• Reglas del negocio. Estas son declaraciones que definen o requisitos no puede ser exagerada. Existe un número de técnicas para
limitan algún aspecto de la estruc- tura o el comportamiento de los requisitos de elici- tación; las principales son las siguientes:
la propia empresa. “Un estudiante no puede inscribirse en los
cursos del próximo semestre si quedan algunos derechos de
matrícula no pagados” sería un ejemplo de una regla de • Entrevistas. Entrevistando a las partes interesadas es un
negocio que sería una fuente requisito para el software del medio “tradicional” de provocar requisitos. Es importante
curso-registro de una uni- versidad. entender las ventajas y limitaciones de las entrevistas y la
forma en que debe llevarse a cabo.
• El entorno operativo. Requisitos se derivan del entorno en
el que se ejecutará el programa. Estos pueden ser, por • Escenarios. Escenarios proporcionan un medio valioso para
ejemplo, las limitaciones de tiempo en las restricciones proporcionar contexto a la ción elicita- de requisitos del usuario.
del software o de rendimiento en tiempo real en un Permiten que el ingeniero de software para proporcionar un
entorno empresarial. Estos deben ser buscados marco para las preguntas sobre las tareas del usuario al permitir
activamente, ya que pueden afectar en gran medida la que “qué pasaría si” y “cómo se hace” preguntas que se le
viabilidad y el costo de software así como restringir las pregunte. El tipo más común de escena- rio es la descripción de
opciones de diseño. casos de uso. Hay un enlace aquí al Tema 4.2 (Modelado
Conceptual) debido a las notaciones de escenarios tales como
• El entorno de la organización. El software se requiere a diagramas de casos de uso son comunes en el software de
menudo para apoyar un pro- ceso de negocios, la selección modelado.
de los cuales puede ser condicionado por la estructura, la
cultura y la política interna de la organización. El ingeniero • Prototipos. Esta técnica es una herramienta valiosa para aclarar
de software tiene que ser sensible a éstos, ya que, en los requisitos ambiguos. Pueden actuar de una manera similar a
general, el nuevo software no debe forzar el cambio no los escenarios por los pro- usuarios Viding con un contexto en el
planificado en el proceso de negocio. que puedan entender mejor lo que la información que necesitan
para ofrecer. Hay una amplia gama de técnicas-de prototipado
ups papel maqueta de diseños de pantalla a las versiones de las
3.2. técnicas de obtención pruebas beta de productos de software y un fuerte solapamiento
de sus usos separados para requisitos elicita- ción y para la
Una vez que las fuentes de requisitos se han iden- tificado, el validación de los requisitos (véase la sección 6.2, Prototyping) .
ingeniero de software puede iniciar la obtención de información de los Baja fidelidad prototipos se prefieren a menudo para evitar que
requisitos de los mismos. Tenga en cuenta que los requisitos rara vez las partes interesadas “anclaje” en la carac- terísticas de menor
se suscitó confeccionada. Más bien, el ingeniero de software obtiene importancia, incidental de un prototipo de mayor calidad que
información de la que él o ella formula requisitos. Este tema se centra puede limitar la flexibilidad de diseño de formas no deseadas.
en técnicas para conseguir los interesados humanos para articular la
información relevante REQUISITOS. Es una tarea muy difícil y el
ingeniero de software es necesario sensibilizar al hecho de que (por
ejemplo) los usuarios pueden tener dificultades para describir sus • reuniones facilitadas. El propósito de estas reuniones es tratar
tareas, puede dejar infor- mación importante no declarada, o pueden de lograr un efecto acumulativo, por el que un grupo de
ser dispuestos o no pueden cooperar. Es particularmente importante personas puede traer más información sobre sus exigencias
entender que la provocación no es una actividad pasiva y que, incluso de software que trabajando individualmente. Pueden
si las cooperativas interesadas y articulados están disponibles, el intercambiar ideas y refinar las ideas que pueden ser difíciles
ingeniero de software tiene que trabajar duro para obtener la de llevar a la superficie utilizando entrevistas. Otra ventaja es
información correcta. Muchos de los requisitos de negocio o técnicas que los requisitos conflictivos superficie desde el principio en
son tácito o en la retroalimentación que una forma que permite a las partes interesadas reconocen
cuando éstos se producen. Cuando funciona bien, esta
técnica
Requisitos de software 1-7
puede resultar en un conjunto más rico y más coherente de los Análisis 4. Requisitos
requisitos que de otro modo podrían ser alcanzables. Sin [1 *, c4s1, c4s5, c10s4, c12s5]
embargo, las reuniones deben ser manejados con cuidado (de ahí [2 *, c7, c11, c12, c17]
la necesidad de un facilitador) para evitar una situación en la que
las habilidades críticas del equipo son erosionadas por la lealtad Este tema tiene que ver con el proceso de ana-
al grupo, o en las que los requisitos que reflejan las requisitos lyzing a
preocupaciones de unos pocos pelos en la lengua (y quizás de
alto nivel) las personas que se ven favorecidas en detrimento de • detectar y resolver los conflictos entre los
otros. requisitos;
• descubrir los límites del software y cómo debe
• Observación. La importancia del contexto de software dentro de interactuar con su entorno organizacional y
la ment ENTORNO organización ha llevado a la adaptación de operativa;
las técnicas observacionales tales como la etnografía para la • requisitos del sistema elaborados para derivar los requisitos de
obtención de requisitos. Los ingenieros de software aprenden soft- ware.
acerca de las tareas del usuario mediante la inmersión de sí
mismos en el medio ambiente y la observación de cómo los La visión tradicional de análisis de requisitos ha sido que ser
usuarios realizan sus tareas mediante la interacción con los reducido a ing modelo- conceptual usando uno de una serie de
demás y con herramientas de software y otros recursos. Estas métodos de análisis, tales como el método de análisis
técnicas son relativamente caros, sino también instructiva estructurado. Si bien el modelado conceptual es importante,
porque ilustran que muchas tareas de usuario y procesos de incluimos la clasificación de los requisitos para ayudar a informar
negocio son demasiado sutil y complejo por sus actores para a soluciones de compromiso entre los requisitos (clasificación
describir fácilmente. requisitos) y el proceso de creación de estas compensaciones
(requisitos de negociación). Se debe tener cuidado para describir
los requisitos de forma suficientemente precisa para permitir que
• Historias de usuarios. Esta técnica se utiliza comúnmente en los los requisitos para ser validados, su aplicación a ser verificada, y
métodos de adaptación (ver Métodos ágiles en los modelos de sus costes a estimar.
ingeniería de software y Métodos Ka) y se refiere a las
descripciones de nivel cortos, de alta de funcionalidad requerida
expresada en términos de los clientes. Una historia de usuario
típico tiene la forma: “Como <función>, quiero <meta / deseo> de 4.1. requisitos Clasificación
manera que <beneficio>”. Una historia de usuario está destinado a
contener suficiente informa- ción para que los desarrolladores Los requisitos pueden ser clasificadas en varias dimensiones.
pueden producir una estimación razonable del esfuerzo para que Ejemplos incluyen los siguientes:
las aplicará. El objetivo es evitar algunos de los residuos que
sucede a menudo en proyectos en los que se utilizarán para reunir • Si el requisito es funcional o no funcional (ver
los requisitos detallados temprano, pero se han invalidado antes de sección 1.3, funcional y requerimientos no
que comience el trabajo. Antes se implementa una historia de funcionales).
usuario, un procedimiento de acep- tación adecuada debe ser • Si el requisito se deriva de uno o más requisitos de alto
escrita por el al cliente central para determinar si se han cumplido nivel o una propiedad de gent gencia (véase la sección
los objetivos de la historia de usuario. 1.4, propiedades emergentes), o está siendo impuesta
directamente en el software por un actor o alguna otra
fuente.
• Otras técnicas. Una variedad de otras técnicas para el apoyo a • Si el requisito es en el producto o el proceso (ver
la obtención de información de los requisitos existen y van sección 1.2, producto y requisitos del proceso).
desde el análisis de productos de la competencia para aplicar Requisitos en el proceso pueden limitar la elección de
los datos min-ing técnicas para el uso de fuentes de bases de Tor contracción, el proceso de ingeniería de software
datos de conocimiento de dominio o petición del cliente. para ser adoptado, o las normas que deben ser
respetados.
1-8 Guía SWEBOK® V3.0
• La prioridad requisito. Cuanto mayor sea la priori- dad, más 4.2. Modelado conceptual
esencial es el requisito para cumplir con los objetivos
generales del software. A menudo clasificada en una El desarrollo de modelos de un problema del mundo real es clave
escala de coma fija como obligatoria, altamente deseable, para el análi- sis requisitos de software. Su propósito es ayudar a
deseable u opcional, la prioridad que a menudo tiene que comprender la situación en la que se produce el problema, así
ser equili- brada con el coste de desarrollo e como que representa una solución. Por lo tanto, los modelos
implementación. conceptuales comprenden modelos de entidades del dominio del
problema, configurado para reflejar sus relaciones y dependencias
• El alcance de la prescripción. Ámbito de aplicación se refiere del mundo real. Este tema está estrechamente relacionado con las
a la medida en que un requisito afecta a los componentes de els Ingeniería de Software y Métodos Mod-KA.
software y de software. Algunos de los requisitos, en
especial a algunos que no funcionales, tienen un alcance
global en que su satisfacción no puede ser asignado a un Hay varios tipos de modelos pueden ser desarrollados. Estos incluyen
componente discreto. Por lo tanto, un requisito de ámbito diagramas de casos de uso, los modelos de flujo de datos, modelos de
global puede afectar en gran medida la arquitectura de estado, los modelos basados en objetivos, las interacciones del usuario,
software y el diseño de muchos componentes, mientras que modelos de objetos, modelos de datos, y muchos otros. Muchas de estas
uno con un alcance limitado puede ofrecer una serie de notaciones de modelado son parte de Unified Modeling Language (UML). Utilice
opciones de diseño y tienen poco impacto en la satisfacción diagramas de casos, por ejemplo, se utilizan rutinariamente para
de otras necesidades. representar escenarios en los que el límite que separa a los actores
interno donde cada caso de uso representa una funcionalidad del sistema.
• Volatilidad / estabilidad. Algunos de los requisitos cambiarán Los factores que influyen en la elección de la notación ing modelo-
Esto es crucial para la comprensión de con- texto del software en su 4.4. requisitos de Negociación
entorno operativo y para que identifique los valores de sus interfaces
con el medio ambiente. Este subtema no busca “enseñar” a un estilo de Otro término comúnmente utilizado para este subtema es
modelado particu- lar o anotación, sino más bien proporciona “resolución de conflictos”. Esto se refiere resolv- ing problemas con
orientación sobre el propósito e intención de modelado. los requisitos donde los conflictos se producen entre dos actores
que requieren mutu- características aliado incompatibles, entre las
necesidades y los recursos, o entre los requisitos funcionales y no
4.3. Diseño y requisitos arquitectónicos Asignación funcionales, por ejemplo, . En la mayoría de los casos, no es
aconsejable para el ingeniero de software para hacer una decisión
unilateral, lo que se hace preciso proceder a consultar con la parte
En algún momento, la arquitectura de la solución debe ser derivado. interesada (s) para llegar a un consenso sobre una compensación
El diseño arquitectónico es el punto en el que el proceso se adecuada. A menudo es importante, por razones contractuales,
superpone con los requisitos de software o sistemas de diseño e que tales las decisiones sean detectables de nuevo al cliente.
ilustra lo imposible que es disociar limpiamente las dos tareas. Este Hemos clasificado esto como un tema de análisis de requisitos de
tema está estrechamente relacionada con la estructura y software debido a problemas surgen como el resultado del análisis.
arquitectura de software en el diseño de software KA. En muchos Sin embargo, un fuerte caso también se puede hacer por
casos, el ingeniero de software actúa como arquitecto de software considerarlo un tema de validación de requisitos (ver tema 6, los
debido a que el proceso de análisis y elaboración de los requisitos requisitos de validación). Requisitos priorización es necesario, no
que exige ser identificados los componentes / diseño de arquitectura sólo como un medio para filtrar los requisitos importantes, sino
que se encargarán de satisfacer los requisitos. Esta es la asignación también con el fin de resolver los conflictos y el plan de entregas
de-la requisitos de asignación a componentes de la arquitectura escalonadas, lo que significa tomar decisiones complejas que
respon- sable para satisfacer los requisitos. La asignación es requieren el conocimiento de dominio detallado y buenas
importante para permitir Ysis anal-detallado de las necesidades. Por habilidades de estimación. Sin embargo, a menudo es difícil
lo tanto, por ejemplo, una vez que un conjunto de requisitos se ha obtener información real que puede actuar como base para este
asignado a un componente, los requisitos individuales se pueden tipo de decisiones. Además, los requisitos a menudo dependen
analizar aún más para descubrir nuevos requisitos sobre cómo el unos de otros, y prioridades son relativos. En la práctica, los
componente tiene que interactuar con otros componen- tes con el fin ingenieros de software realizan requisitos priorización con
de satisfacer el requisito asignado mentos. En grandes proyectos, la frecuencia sin necesidad de conocer todos los requisitos.
asignación estimula una nueva ronda de análisis para cada Requisitos priorización puede seguir un enfoque de valor de costo
subsistema. Como ejemplo, los requisitos para un rendimiento que implica un análisis de las partes interesadas en una escala que
determinado de frenado para un coche (distancia de frenado, la definen los beneficios o el valor agregado que el ción ¡Ejecución
seguridad en condiciones de conducción pobres, suavidad de apli- del requisito les lleva, en comparación con las penas de no haber
cación, la presión del pedal necesarios, y así sucesivamente) puede implementado un requisito particular. También implica un análisis
ser asignada al hardware de frenado (conjuntos mecánicos e de los ingenieros de software de estimación en una escala el costo
hidráulicos) y un sistema de frenado antibloqueo (ABS). Sólo de la implementación de cada requisito, en relación con otros
cuando un requisito para un sistema antibloqueo de frenos ha sido requisitos. Otro enfoque oritization pri- requisitos llama el proceso
identificado, y los requerimientos asignados a ella, se pueden utilizar analítico jerárquico implica comparar todos los pares únicos de los
los lazos capabili- del ABS, el hardware de frenado, y emer- requisitos para determinar cuál de los dos es de mayor prioridad, y
propiedades Gent (tales como el peso del coche) para identificar la en qué medida.
detallada requisitos de software ABS. El diseño arquitectónico está
estrechamente identificada con el modelado conceptual (ver sección
4.2, Modelado Conceptual).
1-10 Guía SWEBOK® V3.0
4.5. Análisis formal un documento que pueda ser revisado de forma sistemática,
evaluada y aprobada. Para sistemas complejos, especialmente
preocupaciones formales de análisis no sólo el tema 4, pero también aquellos que involucran componentes mercancías nonsoft-
las secciones 5.3 y 6.3. En este tema también se relaciona con sustanciales, como se producen hasta tres diferentes tipos de
métodos formales en los modelos de ingeniería de software y métodos documentos: sistema de defini- ción, requisitos del sistema y los
Área de Conocimiento. Análisis formal ha hecho un impacto en algunos requisitos de software. Para los productos de software simple, sólo
dominios de aplicación, en particular los de los sistemas de alta se requiere el tercero de estos. Los tres documentos se describen
integridad. La expresión formal de requisitos requiere una lengua con aquí, con el entendimiento de que se pueden combinar según sea
la semántica formalmente definidos. El uso de un análisis formal para apropiado. Una descripción de la ingeniería de sistemas se puede
la expresión requisitos tiene dos ventajas. En primer lugar, permite a encontrar en las disciplinas de Ingeniería de Software capítulo de
los requisitos expresados en el idioma que se especifique con este Relacionados Guía.
precisión y forma ambigua, por lo tanto (en principio) para evitar la
posibilidad de una mala interpretación. En segundo lugar, los requisitos
se puede razonar sobre, permitiendo propiedades deseadas del
software especificado para ser probada. razonamiento formal requiere 5.1. Definición del sistema de documentos
soporte de herramientas para ser practicable para distintos de los
sistemas triviales nada, y herramientas generalmente se dividen en Este documento (a veces conocido como el documento de
dos tipos: los demostradores de teoremas o las damas modelo. En requerimientos del usuario o el concepto de documento de
ninguno de los casos puede ser totalmente automatizado prueba, y el operaciones) registra los requisitos del sistema. Define los
nivel de competencia en razonamiento formal sea necesario con el fin requisitos del sistema de alto nivel de la perspectiva de dominio. Su
de utilizar las herramientas restringe la aplicación más amplia de número de lectores incluye representantes de los usuarios del
análisis formal. El análisis más formal, se centra en etapas sistema / clientes (marketing puede desempeñar estas funciones
relativamente tardías de análisis de requisitos. Es general- mente para el software impulsado de mercado), por lo que su contenido
contraproducente para solicitar la formalización hasta que los objetivos debe ser expresada en términos de dominio. El documento
de negocio y necesidades de los usuarios han entrado en un enfoque enumera los requisitos del sistema, junto con la información de
nítido a través de medios tales como los descritos en otras partes de la fondo sobre los objetivos globales para el sistema, su entorno de
sección 4. SIN EMBARGO, una vez que los requisitos se han destino, y una declaración de las limitaciones, supuestos y
estabilizado y se han elaborado para especificar propie- concreto lazos requisitos no funcionales. Puede incluir modelos conceptuales
del software, puede ser beneficioso para para- malize al menos los diseñados para ilustrar el contexto del sistema, escenarios de uso,
requisitos críticos. Esto per- mite la validación estática que el software y las principales entidades de dominio, así como los flujos de
especificado por los requisitos sí tiene las pro- piedades (por ejemplo, trabajo.
ausencia de estancamiento) que el cliente, los usuarios, y el ingeniero
de software de esperar que tenga.
Los comentarios pueden ser constituidos en la finalización del dominio, el intercambio de datos. Si se utiliza el análisis formal notación
documento de definición del sistema, el documento de especificación del ciones, es posible utilizar ing razonable formal para probar las propiedades
sistema, el documento de especificación de requisitos de software, la de especificación. Este tema está estrechamente relacionado con las els
especificación de línea de base para un nuevo lanzamiento, o en cualquier Ingeniería de Software y Métodos Mod-KA.
producto motivado cuenta con el fin de evaluar el impacto de los producto. Esto a menudo conduce a la revisión de los requisitos
cambios propuestos. Por lo tanto, la documentación y los requisitos finales del ciclo de vida. Tal vez el punto más crucial en la
de gestión del cambio son la clave para el éxito de cualquier proceso comprensión de los requisitos de software es que una proporción
de requisitos. significativa de los requisitos será cambio. Esto es a veces debido a
errores en el análisis, pero a menudo es una consecuencia
7.1. La naturaleza iterativa del proceso Requisitos inevitable del cambio en el “medio ambiente”; por ejemplo, el
entorno operativo o de negocio del cliente, procesos de regulación
impuestas por las autoridades, o el mercado en el que el software
Existe una presión general en el software de indus- tria de los ciclos debe vender. Cualquiera que sea la causa, es importante reconocer
de desarrollo cada vez más cortos, y esto es particularmente la inevitabilidad del cambio y tomar medidas para mitigar sus
pronunciado en sectores altamente competitivos, impulsados por el efectos. El cambio tiene que ser gestionado por asegurar que los
mercado. Por otra parte, la mayoría de los proyectos se ven limitados cambios propuestos pasan por una revisión definido y tasa de
de alguna manera por su entorno, y muchos son actualizaciones o aprobación pro y mediante la aplicación de los requisitos
revisiones de software, tentes ing en el que se da por la arquitectura. cuidadosos trac- ción, análisis de impacto, y la gestión de
En la práctica, por lo tanto, casi siempre es práctico para implementar configuración de software (ver el KA Software Configuration
el proceso de requisitos como un proceso lineal y determinista en el Management). Por lo tanto, los requisitos de pro- ceso no es sólo
que los requisitos de software son provocados a partir de los grupos una tarea para el usuario en el desarrollo de software, pero se
de interés, bases forrado, asignado y entregado al equipo de extiende por todo el ciclo de vida del software. En un proyecto
desarrollo de software. Sin duda, es un mito que los requisitos para típico, el software requisito actividades mentos evolucionan con el
grandes proyectos de software están siempre perfectamente tiempo de obtención de la gestión del cambio. Una combinación de
entendidas o perfectamente especificados. En su lugar, los requisitos arriba hacia abajo métodos de análisis y diseño y de abajo hacia
normalmente iterar hacia un nivel de calidad y detalle que es arriba y métodos de implementación de refactorización que se
suficiente para permitir que las decisiones de diseño y de reúnen en el medio podría proporcionar lo mejor de ambos mundos.
adquisiciones a realizar. En algunos proyectos, esto puede dar lugar a Sin embargo, esto es difícil de lograr en la práctica, ya que depende
los requisitos que se baselined antes de todas sus propiedades se en gran medida de la madurez y la experiencia de los ingenieros de
entienden completamente. Se corre el riesgo expen- retrabajo siva si software.
surgen problemas al final del proceso de ingeniería soft- ware. Sin
embargo, los ingenieros de software están necesariamente limitados
por los planes de gestión de proyectos y por lo tanto deben tomar
medidas para asegurar que la “calidad” de los requisitos es tan alto
como sea posible dados los recursos disponibles. Deben, por
ejemplo, hacer explícitas las suposiciones que sustentan los 7.2. Gestión del cambio
requisitos, así como los problemas conocidos.
La gestión del cambio es fundamental para la gestión de requisitos.
En este tema se describe el papel de la gestión del cambio, los
procedimientos que deben estar en su lugar, y el análisis que se debe
aplicar a los cambios propuestos. Tiene fuertes vínculos con la
Cesión de Software Gestión de la Configuración KA.
Para los productos de software que se desarrollan ITER tivamente, un
equipo de proyecto puede línea de base sólo a los requisitos necesarios
para la iteración actual. El especialista requisitos puede seguir 7.3. requisitos Atributos
desarrollándose requisitos para futuras iteraciones, mientras res
desarrollos proceder con el diseño y la construcción de la iteración actual. Los requisitos deben consistir no sólo en un ficación speci- de lo
Este enfoque proporciona ERS adaptado para el cliente con el valor de que se requiere, sino también de información auxiliar, lo que
negocio de forma rápida, mientras minimizando ing el costo de reproceso. ayuda a manejar e interpretar los requisitos. Requisitos atributos
deben ser definidos, registran y actualizan a medida que el soft-
ware en fase de desarrollo o mantenimiento evoluciona.
En casi todos los casos, los requisitos de conocimiento sigue
evolucionando como el diseño y desarrollo Esto debe incluir los diversos clasificación
1-14 Guía SWEBOK® V3.0
dimensiones de la exigencia (véase la sección 4.1, los requisitos de 7.5. La medición de Requisitos
clasificación) y el método de verificación o sección del plan de
prueba de aceptación correspondiente. También puede incluir Como cuestión práctica, suele ser útil tener algún concepto de
información adicional, como una justificación de resumen para cada “volumen” de las exigencias para un producto de software en
requisito, la fuente de cada requerimiento, y un historial de cambios. particular. Este número es útil para evaluar el “tamaño” de un
Los requisitos más importantes atribuyen, SIN EMBARGO, es un cambio en los requisitos, al estimar el costo de una tarea de
identificador que permite a los requisitos para ser identificadas de desarrollo o mantenimiento, o simplemente para su uso como
manera única e inequívoca. el denominador en otras mediciones. medida del tamaño
funcional (FSM) es una téc- nica para evaluar el tamaño de un
cuerpo de requisitos funcio- nales.
7.4. requisitos de rastreo
Requisitos de rastreo tiene que ver con objeto de reembolso ing Información adicional sobre la medición y estándares de
la fuente de los requisitos y la predicción de los efectos de los tamaño se encuentra en el Proceso de Software niería Inge- KA.
requisitos. El rastreo es fundamental para la realización de
análisis de impacto cuando los requisitos cambian. Un requisito
debe ser trazable dadas vuelta a los requisitos y las partes 8. Requisitos de software Herramientas
Sommerville 2011
Wiegers 2003
[2 *]
[1 *]
1. Requisitos de software Fundamentos
2. Requisitos Proceso
2.1. Los modelos de proceso c4s4 c3
3. la obtención de requisitos
Análisis 4. Requisitos
4.1. requisitos Clasificación c4s1 c12
5. Requisitos Especificación
c4s2, c12s2,
5.2. Requisitos del sistema Especificación c12s3, c12s4, c10
c12s5
6. Requisitos de Validación
Sommerville 2011
Wiegers 2003
[2 *]
[1 *]
7. Consideraciones prácticas
LECTURAS
C. Potts, K. Takahashi, y A. Antón, “indagación Análisis Este trabajo es una obra de referencia clásica en un elemento
Requisitos Basado” [6]. clave de la gestión de requisitos. Basándose en estudios
empíricos, establece las razones y las barreras para el rastreo
Este documento es una cuenta de fácil digestión de trabajo que ha eficaz de los requisitos. Es una lectura esencial para la
demostrado ser muy influyente en el desa- rrollo de las necesidades comprensión de por qué los requisitos de rastreo es un elemento
de manipulación. En él se describe cómo y por qué la elaboración esencial de un proceso de software efectivo.
de requisitos no puede ser un proceso lineal por el cual el analista
simplemente transcribe y reformula requisitos provocadas por parte
del cliente. El papel de los escenarios se describe de una manera N. Maiden y C. Ncube, “La adquisición de COTS Requisitos
que ayuda a definir su uso en el descubrimiento y la descripción de de selección de software” [9].
los requisitos.
Este documento es importante porque reconoce explícitamente que los
productos de software a menudo integran componentes de terceros.
Ofrece una visión de los problemas de la selección de software
off-the-shelf para satisfacer los requisitos: por lo general hay una falta
de coincidencia. Esto desafía algunos de los supuestos sub fijando la
mayor parte de los requisitos tradicionales dling manipulan de, que
tiende a asumir software personalizado.
1-18 Guía SWEBOK® V3.0
Referencias
DISEÑO DE SOFTWARE
Responsabilidad clase Colaborador DFD pro- cesos de ciclo de vida del software, tales como que en la norma ISO
/ IEC / IEEE Std. 12207,
Diagrama de flujo de datos
2-1
2-2 Guía SWEBOK® V3.0
Construcción, Ingeniería de Software Ment Manage-, modelos la comprensión de los límites del diseño. Un número de otras nociones y
de ingeniería de software y met- ods, Calidad de Software y conceptos También son de interés en la comprensión del diseño en su
Computación Fundaciones ciones de Kas. sentido general: objetivos, las limitaciones, las alternativas, las
representaciones y las soluciones (véase el problema técnicas de
resolución en los Fundamentos de Informática KA).
DISTRIBUCIÓN DE TEMAS PARA EL DISEÑO
DEL SOFTWARE
1.2. Contexto de Diseño de Software
El desglose de temas para el Software de Diseño KA se muestra [4 *, c3]
en la Figura 2.1.
El diseño de software es una parte importante del proceso de
1. Fundamentos del Diseño de Software desarrollo de soft- ware. Para entender el papel del diseño de
software, tenemos que ver cómo se integra en el ciclo de vida del
La conceptos, nociones, y la terminología intro- ducido aquí software de desarrollo. Por lo tanto, es importante comprender las
forman una base subyacente para la sub pie el papel y el principales caracterís- ticas de análisis de requisitos de software,
alcance de diseño de software. diseño de software, la construcción de software, pruebas de software,
y el mantenimiento del software.
1.1. Conceptos generales de diseño
[4 *, c1]
1.3. Software de Diseño de Procesos
En sentido general, el diseño puede ser visto como una forma de [4 *, c2]
resolución de problemas. Por ejemplo, el con- cepto de una
solución de un problema complejo sin solución definitiva, es El diseño del software es generalmente considerado como un proceso de
• Diseño arquitectonico (También conocido como el diseño de alto el software se divide en una serie de componentes nombrados
nivel de diseño y de nivel superior) describe cómo el software está más pequeños que tienen interfaces bien definidas que describen
organizado en componentes. las interacciones de los componentes. Por lo general, el objetivo
• El diseño detallado se describe el comporta- miento deseado de es colocar diferentes funcionalidades y responsabilidades en
estos componentes. diferentes componentes.
La salida de estos dos procesos es un conjunto de modelos y • Encapsulación y ocultación de la información significa la
artefactos que registran las mayores las decisiones que se han agrupación y el envasado de los detalles internos de una
tomado, junto con una explicación de los fundamentos de cada abstracción y haciendo esos detalles inaccesibles a entidades
decisión no trivial. Guardando el razonamiento, la capacidad externas.
maintain- a largo plazo del producto de software es mayor. • La separación de interfaz y la implementación.
La separación de interfaz y la implementación consiste en
definir un componente de specify- ing una interfaz pública
1.4. Principios de Diseño de Software (conocidos por los clientes) que es independiente de los
[4] [5 *, c6, c7, c21] [6 *, c1, c8, c9] detalles de cómo se realiza el componente (ver encapsulación
y ocultación de la información anterior).
UN principio es “una completa y fundamen- tal ley, doctrina o
suposición” [7]. principios de diseño de software son nociones • Suficiencia, integridad y primitivo.
clave que proporcionan la base para muchos diferentes El logro de suficiencia y medios de integridad para
enfoques de diseño de software y conceptos. diseño de garantizar que un componente de software captura todas
software prin- cipios incluyen la abstracción; acoplamiento y de las características importantes de una abstracción y nada
cohesión; la descomposición y la modularización; ción más. Ness Primitive- significa que el diseño debe estar
encapsula- / ocultar información; separación de interfaz y la basado en patrones que son fáciles de implementar.
implementación; suficiencia, integridad, y primitivo; y la
separación de preocupaciones. • Separación de intereses. Una preocupación es un “área de interés
con respecto a un diseño de software” [8]. Una de las
• Abstracción es “una vista de un objeto que se centra en la para uno o más de sus grupos de interés. Cada vista de la
información relevante para un propósito particular y hace caso arquitectura enmarca uno o más preocupaciones. La separación de
omiso de la der restante de la información” [1] (véase las preocupaciones por los puntos de vista permite a las partes
Abstracción en los Fundamentos de computación KA). En el interesadas para centrarse en algunas cosas a la vez y ofrece un
contexto del diseño de software, dos mecanismos de medio para gestionar la complejidad [9].
cuestiones relacionadas con la eficiencia, la atomicidad, sincronización y Diseño para la seguridad tiene que ver con la forma de pre ventilar la
programación. divulgación no autorizada, creación, cambio, supresión o negación del
acceso a la información y otros recursos. También tiene que ver con la
2.2. Control y manejo de Eventos forma en que tolerar ataques o violaciónes relacionadas con la seguridad
[5 *, c21] mediante la limitación de daños, funcionamiento continuo, acelerar la
reparación y recuperación, y en su defecto y recuperar de forma segura.
Este problema de diseño se ocupa de la forma de organizar los datos y El control de acceso es un con- cepto fundamental de la seguridad, y
flujo de control, así como la forma de manejar los eventos reactivos y también se debe garantizar el buen uso de la criptografía.
temporales a través de diversos mecanismos como la invocación
implícita y devoluciones de llamadas.
[5 *, c18]
3.1. Las estructuras arquitectónicas y puntos de vista patrones que describen la organización de alto nivel de software,
[14 *, c1] otros patrones de diseño se pueden utilizar para describir los
detalles en un nivel inferior. Estos patrones de diseño de bajo nivel
Las diferentes facetas de alto nivel de un diseño de software pueden ser son los siguientes:
descritos y documentados. Estas facetas son a menudo llamados puntos
de vista: “Una vista representa un aspecto parcial de una arquitectura de • patrones de creación (por ejemplo, constructor, fábrica,
software que muestra propiedades especí- espe- de un sistema de prototipo, Singleton)
software” [14 *]. Vistas pertenecen a distintos temas relacionados con el • patrones estructurales (por ejemplo, adaptador, puente,
software de diseño, por ejemplo, la vista lógica (satisfaciendo los compuesto, decorador, fachada, peso FLY-, Proxy)
requisitos funcionales) frente a la vista de procesos (problemas de
concurrencia) frente a la vista física (problemas de distribu- ción) frente a • Los patrones de comportamiento (por ejemplo, comandos,
la vista de desarrollo (como el el diseño se divide en unidades de intérprete, iterador, mediador, recuerdo,
ejecución con representación explícita de las dependencias entre las observador, estado, estrategia, plantilla, visitante).
unidades). Varios autores utilizan diferentes terminologías-como frente a
la conducta funcional vs. vistas de modelado de datos vs. estructurales. 3.4. Las decisiones Arquitectura Diseño
En resumen, un diseño de software es un artefacto multifacético [5 *, c6]
producido por el proceso de diseño y generalmente compuesta de
puntos de vista relativamente independientes y ortogonales. El diseño arquitectónico es un proceso creativo. Duran- te el proceso de
diseño, los diseñadores de software tienen que tomar una serie de
decisiones fundamentales que afectan profundamente el proceso de
desa- rrollo de software y. Es útil pensar en el proceso de diseño arqui-
tectural desde una perspectiva de toma de decisiones en lugar de
3.2. Estilos arquitectónicos [ 14 *, c1, c2, c3, c4, c5] desde una perspectiva actividad. A menudo, el impacto sobre los
atributos de calidad y soluciones de compromiso entre los atributos de
calidad que compiten son la base para las decisiones de diseño.
Un estilo arquitectónico es “una especialización de tipos Ment y
relación ele-, junto con un conjunto de restricciones sobre la forma en
que se pueden utilizar” [14 *]. Un estilo arquitectónico de este modo
puede ser visto como para simplificar la organización de alto nivel del 3.5. Las familias de los programas y marcos
software. Varios autores han identificado una serie de grandes estilos [5 *, C6, C7, C16]
tectural arqui-:
Un enfoque para proporcionar la reutilización de diseños y componentes
• Las estructuras generales (por ejemplo, capas, tuberías y como líneas de productos de software. Esto se puede hacer mediante la
filtros, pizarra) identificación de los puntos en común entre los miembros de estas familias
• Los sistemas distribuidos (por ejemplo, cliente-servidor, tres y mediante el diseño de componentes reutilizables y personalizables para
• Los sistemas interactivos (por ejemplo, Model-View- programación orientada a objetos (OO), una noción relacionada clave es
• sistemas adaptables (por ejemplo, nel microker-, puede ser extendido por instanciar apropiadamente extensiones
y el control de la máquina. Para el software para alcanzar su pleno y la presentación del software, los antecedentes y la experiencia
potencial, la interfaz de usuario debe ser diseñado para que coincida de los usuarios de software y los dispositivos disponibles.
con las habilidades, experiencia y expectativas de sus usuarios
previstos.
4.3. El diseño de las modalidades de interacción del usuario
4.1. Principios generales para el usuario el diseño de interfaces [5 *, c29-web] [17 *, c2]
[5 *, c29-web] [17 *, c2] 1
La interacción del usuario implica la emisión de comandos y la
• Facilidad de aprendizaje. El software debe ser fácil de aprender para disponibilidad de datos asociada con el software. estilos de interacción
que el usuario pueda iniciar rápidamente tra- baja con el software. del usuario se pueden clasificar en los estilos primarios siguien- tes:
para los usuarios con capacidades diferentes (ciegos, • Forma de relleno. El usuario llena en los campos de un formulario.
problemas de visión, sordos, ciegos al color, etc.). A veces campos incluyen menús, en cuyo caso el formulario tiene
botones de acción para que el usuario inicie la acción.
4.2. Interfaz de usuario Problemas Diseño • lenguaje de comandos. El usuario emite un com- mand y
[5 *, c29-web] [17 *, c2] proporciona los parámetros relacionados para dirigir el
software qué hacer.
diseño de interfaz de usuario debe resolver dos cuestiones fundamentales: • Lenguaje natural. El usuario emite un com- mand en
lenguaje natural. Es decir, el lenguaje natural es una
• ¿Cómo debe el usuario interactuar con el software? interfaz a un lenguaje de comandos y se analiza y se
traduce en comandos de soft- ware.
• ¿Cómo debe la información desde el software se
presenta al usuario?
4.4. El diseño de la información Presentación
diseño de interfaz de usuario debe integrar la interacción del [5 *, c29-web] [17 *, c2]
usuario y presentación de la información. diseño de interfaz de
usuario debe considerar un compromiso entre los estilos más presentación de la información puede ser textual o gráficamente cal en
apropiados de interacción la naturaleza. Un buen diseño mantiene la presentación de información
por separado de la información en sí misma. El enfoque MVC
(Modelo-Vista-Controlador) es una forma efectiva de mantener la
1 Capítulo 29 es un capítulo basado en la web disponible en http://ifs.host.cs.st-andrews.ac.uk/Books/SE9/
presentación de información se separe de la información que se
WebChapters / .
presenta.
Diseño de Software 2-7
Los ingenieros de software también tienen en cuenta el tiempo de 4.6. Localización e internacionalización
respuesta del software y la retroalimentación en el diseño de presentación [17 *, c8, c9]
de infor- mación. El tiempo de respuesta se mide generalmente desde el
punto en el que un usuario ejecuta una cierta acción de control hasta que diseño de interfaz de usuario a menudo necesita considerar la
el software responde con una respuesta. Una indicación del progreso es internacionalización y localización, que son medios para adaptar el
deseable poder mientras que el software está preparando la respuesta. La software a los diferentes idiomas, diferencias regionales y las
retroalimentación puede ser proporcionado mediante la reformulación de exigencias técnicas de un mercado objetivo. La internacionalización
la entrada del usuario mientras que el procesamiento se está terminando. es el proceso de diseño de una aplicación de software para que
Abstractos visualizaciones pueden ser utilizados cuando grandes pueda ser adaptado a diferentes idiomas y regiones sin mayores
cantidades de información se han de presentar. De acuerdo con el estilo cambios de ingeniería. La localización es el proceso de adaptación
de presenta- ción de la información, los diseñadores también pueden de soft- ware internacionalizado para una región o idioma mediante
utilizar el color para mejorar la interfaz. Existen varias pautas importantes: la adición de componentes específicos de localización y traducción
del texto. Localización e internacionalización deben tener en cuenta
factores tales como símbolos, números rencia Cur-, el tiempo y las
unidades de medida.
• Limitar el número de colores utilizados.
• Utilice el cambio de color para mostrar el cambio de estado de soft-
ware.
• Use códigos de colores para apoyar la tarea del usuario. 4.7. Metáforas y modelos conceptuales [ 17 *, c5]
• Use códigos de colores de una manera reflexiva y consis- carpa.
• Use colores para facilitar el acceso de las personas con los diseñadores de interfaces de usuario pueden utilizar metáforas y
ceguera o deficiencia cromática de color (por ejemplo, utilizar el modelos conceptuales para establecer correspondencias entre el software
cambio de la saturación del color y el brillo del color, tratar de y algún sistema de referencia conocida a los usuarios en el mundo real, lo
evitar combinaciones de azul y rojo). que puede ayudar a los usuarios a aprender más fácilmente y usar la
• No dependa sólo en el color para transmitir información convertir en una metáfora con el icono de un cubo de basura. En el diseño
importante para los usuarios con capacidades diferentes de una interfaz de usuario, inge- niería de software deben tener cuidado
(ceguera, problemas de visión, ceguera por colores, etc.). de no usar más de una metáfora para cada concepto. Metáforas también
4.5. Proceso de Interfaz de usuario Diseño misma manera dentro de todas las culturas.
5.2. Análisis de calidad y técnicas de evaluación • medidas (estructurada) de diseño basados en funciones: medidas
[4 *, c4] [5 *, c24] obtenidas mediante el análisis fun- cional de descomposición;
generalmente representado mediante un diagrama de estructura
Varias herramientas y técnicas pueden ayudar en ing analyz- y la (a veces llamado un diagrama jerárquico) sobre la que se pueden
evaluación de la calidad del diseño de software. calcular diversas medi- das.
• Software revisiones de diseño: técnicas malized informales y • medidas de diseño orientada a objetos: la estructura de diseño
lucro para determinar la calidad de los artefactos de diseño se representa típicamente como un diagrama de clases, en el
(por ejemplo, la arquitectura comentarios, revisiones de diseño, que se pueden calcular diversas medidas. Medidas sobre las
e inspecciones técnicas basadas en escenarios; propiedades del contenido interno de cada clase también se
requisitos pueden calcular.
rastreo). las revisiones de diseño de software también pueden
el uso (por ejemplo, manuales y archivos de ayuda) pueden ser 6. Diseño de Software notaciones
revisados.
• El análisis estático: static formal o semiformal análisis (no Existen muchas notaciones para representar artefactos de diseño de
ejecutable) que puede ser utilizado para evaluar un diseño (por software. Algunos se utilizan para describir la organización estructural de
ejemplo, análisis de árbol a fallos o automatizada comprobación un diseño, otros para representar el comportamiento de soft- ware.
cruzada). análisis de vulnerabilidad de diseño (por ejemplo, el Ciertas notaciones se utilizan sobre todo durante el diseño arquitectónico
análisis estático de las debilidades de seguridad) puede llevarse y otros, principalmente durante el diseño detallado, aunque algunas
a cabo si la seguridad es una preocupación. El análisis formal anotaciones se pueden utilizar para ambos propósitos. Además, algunas
del diseño utiliza modelos matemáticos que permiten a los anotaciones se utilizan sobre todo en el contexto de los métodos de
diseñadores predicado el comportamiento y validar el diseño específicos (ver tema 7, Software de Diseño Estrategias y
rendimiento del software en lugar de tener que depender por Métodos). Tenga en cuenta que el diseño de software a menudo se logra
completo de la prueba. análisis de diseño formal puede ser usando notaciones múlti- ples. A continuación, se clasifican en las
utilizado para detectar errores de especificación y diseño notaciones para describir la vista estructural (estático) frente a la vista del
residuales (per- HAPS causado por la imprecisión, la comportamiento (dinámico).
ambigüedad, y algunas veces otros tipos de errores). (Ver
también los modelos de ingeniería de software y métodos KA).
utilizan para describir los componentes principales y la forma en que están • diagramas de actividad: se utiliza para mostrar el flujo de control de
interconectados (visión estática): una actividad a. Se puede utilizar para repre- actividades
concurrentes resienten.
• Descripción de la arquitectura idiomas (AVD): textual, a • diagramas de comunicación: se utilizan para mostrar las
menudo formal, idiomas utilizados para describir la interacciones que se producen entre un grupo de objetos; se
arquitectura de software en términos de componentes y hace hincapié en los objetos, sus enlaces, y los mensajes que
conectores. intercambian en estos enlaces.
• Clase y objeto diagramas: se utilizan para represen- envían
un conjunto de clases (y objetos) y sus interrelaciones. • diagramas de flujo de datos (DFDs): Se utiliza para mostrar el flujo
de datos entre los elementos. Un flujo de datos gramo dia- ofrece
• diagramas de componentes: utilizados para representar un “una descripción basada en modelo- ing el flujo de información en
conjunto de componentes ( “físico y reemplazar- parte capaz [s] torno a una red de elementos operativos, con cada elemento
de un sistema que [conforme] para y [proporcionar] la haciendo uso de o la modificación de la información que fluye en
realización de un conjunto de caras inter” [18]) y sus ese elemento” [4 *]. Los flujos de datos (y por tanto los diagramas
interrelaciones . de flujo de datos) se pueden utilizar para el análisis de la
• Clase tarjetas responsabilidad colaboradores (CRC): se seguridad, ya que ofrecen identifica- ción de posibles caminos para
utiliza para denotar los nombres de los componentes (clase), sus el ataque y el cierre difusión de la información confidencial.
responsabilidades, y los nombres de sus componentes que
colaboran.
• Los diagramas de despliegue: utilizados para representar un • Las tablas de decisión y diagramas: se utilizan para REPRESENTA
conjunto de nodos (físicas) y sus interrelaciones, y, por lo combinaciones complejas de condiciones y acciones.
tanto, para modelar los aspectos físicos de software.
• Diagramas de flujo: se utilizan para representar el flujo
• diagramas entidad-relación (ERD): se utilizan para representar los de control y las acciones asociadas a realizar.
modelos conceptuales de los datos almacenados en los depósitos
6.2. Las descripciones de comportamiento (vista dinámica) • lenguajes de especificación formales: idiomas textuales que
[4 *, c7, c13] [5 *, c6, c7] [6 *, c4, c5, c6, c7] utilizan nociones básicas de matemá- ticas (por ejemplo, la lógica,
[14 *, c8] set, secuencia) para definir rigurosamente y de manera abstracta
interfaces de componentes de software y el comportamiento, a
Las siguientes notaciones y lenguajes, algunos gráfica y textual alguna, menudo en términos de condiciones previas y posteriores. (Véase
se utilizan para describir el comportamiento dinámico de los sistemas y también la Ingeniería de Software Modelos y ods met KA).
componentes de software. Muchas de estas anotaciones se uso-ful
sobre todo, pero no exclusivamente, durante el diseño detallado. Por otra
parte, las descripciones del comportamiento pueden incluir una • pseudo código y lenguajes de diseño de programas (PDL):
justificación de la decisión de diseño tales como la forma de un diseño lenguajes de programación como estructurados utilizados para
cumplirá con los requisitos de seguridad. describir, en general, en la etapa de diseño detallado, el
comportamiento de un proce- dimiento o método.
2-10 Guía SWEBOK® V3.0
7. Diseño de Software estrategias y métodos diseño de mediados de 1980 (sustantivo = objeto; verbo = método;
adjetivo = atributo), donde heren- cia y el polimorfismo juegan un papel
Existen varias estrategias generales para ayudar a guiar el proceso de clave, al campo del diseño basado en componentes, donde la formación
diseño. En contraste con las estrategias generales, los métodos son de metain- se puede definir y se accede ( a través de la reflexión, por
más específicos en cuanto a que proporcionan generalmente un ejemplo). Aunque las raíces del diseño orientado a objetos provienen
conjunto de notaciones para ser utilizado con el método, una del concepto de abstracción de datos, diseño impulsado por la
descripción del proceso que se utilizará cuando se sigue el método, y responsabilidad ha sido propuesta como un enfoque alternativo al
un conjunto de directrices para el uso del método. Tales métodos son diseño orientado a objetos.
útiles como un marco común para los equipos de ingenieros de
software. (Ver también los modelos niería de Software Engineers y
Métodos KA). 7.4. Estructura centrada en los datos de diseño [ 4 *, c14, c15]
7.1. Estrategias generales [ 4 *, c8, c9, c10] [12 *, c7] estructura centrada en los datos de diseño comienza a partir de las
estructuras de datos de un programa manipula más que de la función que
realiza. El ingeniero de software se describen en primer lugar las
Algunos ejemplos citados con frecuencia de las estrategias generales estructuras de datos de entrada y salida y luego se desarrolla la estructura
útiles en el proceso de diseño incluyen las estrategias de dividir-y-vencerás de control del programa en base a estos diagramas de estructura de
y refinamiento paso a paso, de arriba hacia abajo frente a las estrategias datos. Se han propuesto varias heurísticas para hacer frente a ejemplo
de abajo hacia arriba, y las estrategias que hacen uso de la heurística, el especial casos-para, cuando hay una falta de coincidencia entre las
uso de patrones y lenguajes tern PAT- y el uso de un enfoque iterativo y estructuras de entrada y salida.
mentales incre-.
diseño orientada a aspectos es un método por el cual el software se 8. Herramientas de diseño de software [ 14 *, c10, Apéndice A]
manera de construir software distribuido mediante servicios web creación de los artefactos de diseño de software durante el proceso de
ejecutados en ordenadores distribuidos. sistemas de soft- ware se desarrollo de software. Pueden apo- parte portuaria o la totalidad de las
Brookshear 2008
Página-Jones 1999
Budgen 2003
Nielsen 1993
Allen 2008
[12 *]
[13 *]
[15*]
[17 *]
[14 *]
[5 *]
[4 *]
[6 *]
1. Fundamentos del Diseño
de Software
2. Cuestiones clave en
el diseño de software
2.4. Distribución de
c18
Componentes
2.6. Interacción y
c16
Presentación
c12,
2.7. Seguridad c4
c18
arquitectónicas y puntos c1
de vista
c1, c2,
3.2. Estilos
c3, c4,
arquitectónicos
c5
c3, c4, c5
3.3. Patrones de diseño
Diseño de Software 2-13
Brookshear 2008
Página-Jones 1999
Budgen 2003
Nielsen 1993
Allen 2008
[12 *]
[13 *]
[15*]
[17 *]
[14 *]
[5 *]
[4 *]
[6 *]
3.4. Las decisiones
c6
Arquitectura Diseño
4. Diseño de Interfaz de
Usuario
4.4. El diseño de la
web
información
c29-
Presentación
4.6. Localización e
C8, C9
internacionalización
4.7. Metáforas y
c5
modelos conceptuales
5. Análisis de Calidad de
Software de Diseño y
Evaluación
5.2. Análisis de
calidad y
c4 c24
técnicas de
evaluación
Brookshear 2008
Página-Jones 1999
Budgen 2003
Nielsen 1993
Allen 2008
[12 *]
[13 *]
[15*]
[17 *]
[14 *]
[5 *]
[4 *]
[6 *]
6. Diseño de Software
notaciones
7. Diseño de Software
estrategias y métodos
7.2. Orientada
automático- c13
(Estructurado) Diseño
c19,
7.6. Otros metodos
c21
LECTURAS Referencias
Roger Pressman, Ingeniería de Software: Un [1] ISO / IEC / IEEE 24765: 2010 Sistemas y
Enfoque del practicante (séptima edición) Ingeniería de Software-Vocabulario, ISO / IEC / IEEE
[19]. 2010.
Por cerca de tres décadas, Roger Pressman de [2] IEEE Std. 12207-2008 (también conocido como ISO / IEC
Ingeniería de Software: Enfoque para profesionales 12207: 2008) Estándar de Sistemas y Software de
ha sido uno de los libros de texto más importantes del mundo en Ingeniería de Software-procesos de ciclo de vida, IEEE
ingeniería de software. Cabe destacar que este libro de texto comple- 2008.
mentarios a [5 *] integral presenta software de diseño, incluyendo los
conceptos de diseño, diseño arquitectónico, diseño a nivel de [3] T. DeMarco, “The Paradox de Software
componentes, diseño de la interfaz de usuario, diseño basado en Arquitectura y diseño,”Conferencia Premio Stevens,
patrones y diseño de aplicaciones web. 1999.
El artículo seminal “The 4 + 1 Vista Modelo” or- noce una descripción [5 *] I. Sommerville, Ingeniería de software, noveno
de una arquitectura de software utilizando cinco vistas concurrentes. ed., Addison-Wesley, 2011.
Los cuatro puntos de vista del modelo son la vista lógico, la vista del
desarrollo, la vista del proceso, y la vista físico. Además, se utilizan [6 *] M. Página-Jones, Fundamentos de objeto-
casos o escenarios de uso seleccionadas para ilustrar la arquitectura. Diseño orientado en UML, 1ª ed., Addison-Wesley,
Por lo tanto, el modelo contiene 4 + 1 vistas. Las vistas se utilizan 1999.
para describir el software según lo previsto por las diferentes partes
interesadas, tales como los usuarios finales, desarrolladores y [7] Diccionario Colegiado de Merriam-Webster,
administradores de proyectos. ed 11., 2003.
Este libro presenta los conceptos y las mejores ticas ticas de [9] ISO / IEC 42010: 2011 Sistemas y Software
arquitectura de software, es decir, cómo el software está estructurado Ingeniería-Práctica Recomendada para la descripción
y cómo interactúan los componentes del software. Basándose en su arquitectónica de los sistemas intensivos Software-, ISO /
propia experiencia, los autores cubren los temas técnicos esenciales IEC 2011.
para el diseño, especificación y validación de arquitecturas de
software. También hacen hincapié en la importancia del contexto [10] J. Bosch, Diseño y Uso de Software
empresarial en el que se ha diseñado gran soft- ware. Su objetivo es Arquitecturas: La adopción y el desarrollo de un enfoque
dar a conocer la arquitectura de software en un entorno del mundo Producto-Línea, ACM Press, 2000.
real, lo que refleja tanto las oportunidades y limitaciones que orga-
nizaciones encuentran. Este es uno de los mejores libros disponibles [11] G. Kiczales et al., “Orientado a Aspectos
en la actualidad en la arquitectura de software. Programación," Proc. Conf Europea 11. Programación
orientada a objetos ( ECOOP
97), Springer, 1997.
2-16 Guía SWEBOK® V3.0
[12 *] JG Brookshear, Ciencias de la Computación: Un [17 *] J. Nielsen, Ingeniería de la Usabilidad, Morgan
Visión de conjunto, 10ª ed., Addison-Wesley, 2008. Kaufmann, 1993.
[14 *] P. Clements et al., Software de documentación [19] RS Pressman, Ingeniería de Software: Un
Vistas: arquitecturas y más allá, 2ª ed., Pearson Enfoque del practicante, 7ª ed., McGraw-Hill, 2010.
Education, 2010.
[15 *] E. Gamma et al., Patrones de diseño: [20] PB Kruchten, “The 4 + 1 View Modelo de
Elementos de software reutilizables orientada a Arquitectura," IEEE Software, vol. 12, no.
objetos, 1ª ed., Addison-Wesley Professional, 1994. 6, 1995, pp. 42-55.
IDE Interfaz Gráfica de Usuario Por lo tanto, la construcción del software KA también está estrechamente
ligada a la Gestión de la Configuración de Software KA. Mientras que la
Entorno de desarrollo
calidad del software es importante en todos los Kas, código es la entrega
integrado
definitiva de un proyecto de software, y por lo tanto la calidad del software
OMG de administración de grupos POSIX
KA está estrechamente ligada a la construcción del software KA. Desde
Portable Operating System Object la construcción de software requiere el conocimiento de algoritmos y de
interfaz las prácticas de codificación, que está estrechamente relacionado con las
TDD UML desarrollo basado en pruebas fundaciones Informática KA, que se ocupa de la informática fundaciones
ciones que apoyan el diseño y construcción de productos de software.
Lenguaje de Modelado Unificado
También está relacionada con la gestión de proyectos, en la medida en la
gestión de cons- trucción puede presentar retos considerables.
INTRODUCCIÓN
• minimizando la complejidad
Aunque algunos de diseño detallado se puede realizar antes de la • anticipar el cambio
construcción, tanto el trabajo de diseño se realiza durante la actividad • la construcción para la verificación
de construcción. Por lo tanto, la construcción del software KA está • reutilización
A lo largo de la construcción, tanto los ingenieros de software de Los primeros cuatro conceptos se aplican al diseño, así como a la
prueba de unidad e integración a prueba su trabajo. construcción. Las siguientes secciones definen
3-1
3-2 Guía SWEBOK® V3.0
estos conceptos y describen cómo se aplican a la construcción. pruebas independientes y las actividades operacionales. Las técnicas
1.1. Complejidad minimizando código y pruebas de unidad, la organización de código para apoyar
Construcción), el diseño modular (ver sección 3.1, Diseño construcción para la reutilización” y “reutilización construcción con” Los
Construcción), y otras numerosas técnicas específicas (ver antiguos medios para crear activos de software reutilizables, mientras que
sección 3.3, Coding). También es apoyado por técnicas de el segundo medio para la reutilización de activos de software en la
calidad centrado con la construcción (ver sec- ción 3.7, construcción de una nueva solución. Reutilización menudo trasciende los
Construcción de Calidad). límites de los proyectos, lo que significa activos reutilizados se pueden
La construcción de medios de verificación de construcción de software de • los estándares de codificación (por ejemplo, los estándares para las
tal manera que los fallos pueden ser lectura ily encontrados por los convenciones de nomenclatura, el diseño y la sangría)
ingenieros de software de escritura del software, así como por los • plataformas (por ejemplo, los estándares de interfaz de llamadas al
probadores y usuarios durante sistema operativo)
3-4 Guía SWEBOK® V3.0
• herramienta (por ejemplo, normas para anotaciones el Software de Gestión y Procesos de Software KAs).
esquemáticas como UML (Unified Modeling Language)).
En consecuencia, lo que se considera que es “cons- trucción”
depende en cierta medida en el modelo de ciclo de vida utilizado. En
El uso de estándares externos. La construcción depende de la general, la construcción de software es en su mayoría codificación y
utilización de estándares externos para lenguajes de construcción, depuración, pero también implica la planificación de la construcción,
herramientas de construcción, interfaces técnicas, y las diseño detallado, las pruebas unitarias, pruebas de integración, y otras
interacciones entre el software de construcción KA y otros KAs. actividades.
Normas proceden de numerosas fuentes, incluyendo
especificaciones de la interfaz de hardware y software (como el
Grupo de Gestión de Objetos (OMG)) y las organizaciones inter- 2.2. Ordenación de la Edificación
nacionales (tales como el IEEE o ISO). [1 *]
El uso de estándares internos. Las normas también pueden ser creados La elección del método de construcción es un aspecto clave de la
sobre una base de organización a nivel corpo- rativa o para su uso en actividad de la construcción-planificación. La elección del método
proyectos específicos. Estas normas apoyan la coordinación de las de construcción afecta el grado en que se realizan los requisitos
relaciones de grupo activi-, lo que minimiza la complejidad, la anticipación previos de la construcción, el orden en que se realizan, y el grado
del cambio, y la construcción para su verificación. en que deben ser completados antes de que comience el trabajo
de construcción.
desa- rrollo ágil. Estos enfoques tienden a tratar la cons- trucción incluyendo el código desarrollado, código modificado, reutilizado código, el
como una actividad que se produce simultáneamente con otras código destruida, código de complejidad, las estadísticas de inspección de
actividades de desarrollo de software (incluyendo los requisitos, el código, culpa y culpa-fix-encontrar tarifas, el esfuerzo y la programación.
diseño y la planificación) o que los solapamientos. Estos enfoques Estos surements Measure pueden ser útiles para los propósitos de la
tienden a diseño, codificación, y las actividades de prueba mezclar, gestión de la construcción, lo que garantiza la calidad durante la
y que a menudo tratan la combinación de actividades como la construcción, y mejorar el proceso de construcción, entre otros usos
sobre la medición).
Construcción de Software 3-5
3. Consideraciones prácticas instalaciones. Los archivos de configuración basados en texto que se
utilizan tanto en los sistemas operativos Windows y Unix son ejemplos
La construcción es una actividad en la que el ingeniero de software de esto, y las listas de selección de estilo de menú de algunos
tiene que hacer frente a las limitaciones del mundo real a veces generadores de programas constituiría, otro ejemplo de un lenguaje de
caóticos y cambiantes, y él o ella debe hacerlo con precisión. Debido a configuración.
la influencia de las restricciones del mundo real, la construcción está idiomas Toolkit se utilizan para construir aplica- ciones de elementos de
más impulsado por consideraciones prácticas que algunos otros Kas, e juegos de herramientas (series integradas de partes reutilizables
ingeniería de software es quizás lo más oficio- como en las actividades específicos de la aplicación); que son más complejos que los idiomas de
[1 *]
Los lenguajes de script son tipos de uso común de los lenguajes de
Algunos proyectos de diseño asignan considerable activi- dad a la programación de aplicaciones. En algunos lenguajes de script, guiones
construcción, mientras que otros asignan diseño a una fase centrada son llamados archivos por lotes o macros.
explícitamente en el diseño. Independien- temente de la asignación
exacta, algún trabajo de diseño detallado se producirá a nivel de la Lenguajes de programación son el tipo más flexible de las lenguas
construcción, y que el trabajo de diseño tiende a ser dictado por las de construcción. También contienen la menor cantidad de
limitaciones impuestas por el problema del mundo real que está siendo información sobre áreas específicas de aplicación y desarrollo de
tratado por el software. procesos-, por lo tanto, requieren más entrenamiento y habilidad
para utilizar con eficacia. La elección del len- guaje de programación
Al igual que los trabajadores de la construcción la construcción de una puede tener un gran efecto sobre la probabilidad de vulnerabilidades
estructura físi- cas deben hacer modificaciones a pequeña escala para dar de ser introducido durante coding- por ejemplo, el uso acrítico de C y
cuenta de las lagunas no previstos en los planes del constructor, C ++ son opciones cuestionables desde un punto de vista de la
trabajadores de la construcción de software deben hacer modificaciones seguridad. Hay tres tipos generales de notación que se utiliza para
en una escala más pequeña o más grande para dar cuerpo a los detalles lenguajes de programación, es decir,
del diseño de software durante la construcción .
pero se aplican en una escala más pequeña de algoritmos, • formales (por ejemplo, Evento-B)
El tipo más simple del lenguaje es una construcción lenguaje de por definiciones precisas, de forma ambigua unidades organizativas y
configuración, en el que los ingenieros de software elegir entre un formales (o matemáticos). notaciones formales de construcción y ods met
conjunto limitado de opciones predefinidas para crear un software formales están en la base semántica de la mayoría de las formas de
nuevo o personalizado
3-6 Guía SWEBOK® V3.0
mal para- también utilizan formas definidas con precisión de la Construcción implica dos formas de pruebas, que a menudo son
combinación de símbolos que evitan la ambigüedad de muchas realizadas por el Neer niería de software que escribió el código:
construcciones de lenguaje natural.
• aplicación variabilidad con mecanismos tales como la • pruebas unitarias y pruebas de integración (ver sec- ción 3.4,
parametrización, la compilación condicional, patrones de Pruebas de construcción)
diseño, y así sucesivamente. • prueba de primer desarrollo (ver sección 2.2 en el KA de Pruebas
• encapsulación variabilidad para que los activos soft- ware de Software)
fácil de configurar y personalizar. • uso de afirmaciones y programación defensiva
• Prueba de la variabilidad proporcionada por los activos de software • depuración
capaces Reus-. • inspecciones
• Descripción y publicación de soft- ware activos • revisiones técnicas, incluyendo comentarios enteder-ori-
reutilizables. seguridad (ver sección 2.3.2 en la calidad KA Cesión de
Software)
3.6. Construcción con reutilización • el análisis estático (véase la sección 2.3 de la Calidad KA
[2 *] Soft- Ware)
Construcción con reutilización significa crear un nuevo software con la La técnica o técnicas específicas seleccionadas dependen de la
reutilización de activos de software existentes. El método más popular naturaleza del software que se con- structed, así como en el conjunto de
de reutilización es la reutilización de código de las bibliotecas habilidades de los ingenieros de software que realizan la construcción
proporcionadas por el len- guaje, la plataforma, las herramientas que activi- lazos. Los programadores deben conocer las buenas prácticas y
se utiliza, o un repositorio organizativa. Los apartes de estos, las comunes ejemplo vulnerabilidades-para, a partir de listas ampliamente
aplica- ciones desarrolladas ampliamente hoy hacen uso de muchas reconocidos acerca de las vulnerabilidades comunes. análisis estático
bibliotecas de código abierto. Reutilizados y off-the-shelf software a automatizado de código para las debilidades de seguridad está
menudo tienen la misma o mejor calidad requisitos como nuevo disponible para varios lenguajes de programación mon com- y se puede
desarrollo de software (por ejemplo, nivel de seguridad). utilizar en proyectos críticos para la seguridad.
Las tareas relacionadas con la construcción de software con la actividades de construcción de calidad diferenciada se ated de otras
reutilización durante la codificación y las pruebas son las siguientes: actividades de calidad por su enfoque. actividades de calidad de la
construcción se centran en código y artefactos que están estrechamente
• La selección de las unidades reutilizables, Data- bases, relacionados con código como el diseño, a diferencia de otros artefactos
procedimientos de prueba, o datos de prueba. que están conectados directamente al menos el código, como los
• La evaluación de código o prueba de reutilización. requisitos, diseños de alto nivel, y los planes detallados.
• La integración de los activos de software reutilizables en el
software actual.
• La presentación de la información reutilización de código nuevo, los 3.8. Integración
procedimientos de prueba o datos de prueba. [1 *]
3.7. construcción de Calidad Una actividad clave durante la construcción es el ción integración
[1 *] de rutinas construidos individualmente, clases, componentes y
subsistemas en un único sis- tema. Además, puede necesitar ser
Además de los fallos que resultan de los requisitos y de diseño, defectos integrado con otros sistemas de software o hardware de un sistema
introducidos durante la construcción pueden dar lugar a problemas de software en particular.
graves de calidad -por ejem- plo, las vulnerabilidades de seguridad. Esto
incluye no sólo los fallos en la funcionalidad de seguridad, sino también Las preocupaciones relacionadas con la integración de la construcción
fallos en otras zonas que permiten la anulación de esta funcionalidad y incluyen la planificación de la secuencia en la que se integrarán los
otras debilidades de seguridad o violaciónes. Existen numerosas componentes, la identificación de lo que se necesita utensilios de
técnicas para asegurar la cali- dad de código como se construye. Las hardware, creando un andamio para apoyar versiones provisionales del
técnicas primarios utilizados para la calidad de la construcción incluyen software, para determinar el grado de la prueba y la calidad del trabajo
realizado en los componentes antes de que sean integrada, y
3-8 Guía SWEBOK® V3.0
la determinación de puntos en el proyecto en el que se prueban versiones 4.2. Orientado a Objetos Problemas de tiempo de ejecución
provisionales del software. [1 *]
Los programas pueden estar integrados por medio de cualquiera de los
gradual o el enfoque incremental. la integración por etapas, también lenguajes orientados a objetos soportan una serie de mecanismos de
llamada integración “big bang”, implica retrasar la integración de las partes ejecución que incluye el polimorfismo y la reflexión. Estos mecanismos
componentes de software hasta que todas las partes destinados a la de ejecución aumentan la flexibilidad y adaptabilidad de los programas
liberación de una versión se han completado. la integración incremental se orientados a objetos. El polimorfismo es la capacidad de un lenguaje
cree que ofrecen muchas ventajas sobre el tra- dicional por fases de para apoyar las operaciones generales con- sin saber hasta que el
integración, por ejemplo, la ubicación de error más fácil, un mejor tiempo de ejecución qué tipo de objetos concretos del software incluirá.
seguimiento de los avances, a principios de la entrega del producto, y la Debido a que el programa no conoce el tipo exacto de los objetos de
mejora de relaciones con los clientes. En la integración gradual, el ERS antemano, el comportamiento exacto está determinado en tiempo de
desarrollos escribir y probar un programa en pequeños trozos y luego se ejecución (unión llamada dinámica). La reflexión es la capacidad de un
combinan las piezas una a la vez. infraestructura de pruebas adicionales, programa para observar y modificar su propia estructura y el
tales como talones, los controladores y los objetos de imitación, por lo comportamiento en tiempo de ejecución. La reflexión permite la
general se necesita para permitir la integración incrementales. Con la inspección de las clases, interfaces, campos y métodos en tiempo de
construcción y la integración de una unidad a la vez (por ejemplo, una ejecución con- sin saber sus nombres en tiempo de compilación.
clase o compo- nente), el proceso de construcción pueden proporcionar También permite la instanciación en tiempo de ejecución de nuevos
información temprana a los desarrolladores y clientes. Otras ventajas de la objetos y invocación de métodos que usan nombres de clase y método
integración incrementales incluyen la ubicación más fácil error, la mejora con parámetros.
de progreso Monitor-ing, unidades probado más completamente, y así
sucesivamente.
la API sea sencillo y se mantiene estable para facilitar el desarrollo y de por lo general una rutina o macro- que permite controles de tiempo de
mantenimiento de las aplicaciones cliente. ejecución del programa. ciones aseveraciones son especialmente útiles en
uso API implica los procesos de ING Seleccionar-, el aprendizaje, las sucesivamente. Las afirmaciones se obtiene generalmente en el código en
pruebas, la integración, y posiblemente se extiende API proporcionadas tiempo de desarrollo y posteriormente se compilan fuera del código para
por una biblioteca o trabajo marco (véase la sección 3.6, de la construcción que no se degradan el rendimiento.
con la reutilización).
Construcción de Software 3-9
Diseño de contrato es un enfoque de desarrollo en los que las o que contiene sus efectos si la recuperación no es posi- ble. Las
condiciones previas y condiciones posteriores se incluyen para cada estrategias de tolerancia a fallos más comunes incluyen copias de
rutina. Cuando se utilizan condiciones previas y condiciones seguridad y de reintentar, utilizando el código auxiliar, utilizando
posteriores, se dice que cada clase de rutina o para formar un algoritmos de votación, y la sustitución de un valor erróneo con un valor
contrato con el resto del programa. Por otra parte, un contrato falso que tendrá un efecto benigno.
proporciona una especificación precisa de la semántica de una
rutina, y por lo tanto ayuda a la comprensión de su comportamiento.
Diseño de contrato se cree que mejora la calidad de la construcción 4.6. ejecutable modelos
de software. [5 *]
La programación defensiva medios para proteger a una rutina de ser ejecutable modelos abstraer los detalles de los lenguajes de
roto por las entradas no válidas. Las formas más comunes para manejar programación específicos y las decisiones sobre la organización del
las entradas no válidas incluyen la comprobación de los valores de todos software. Diferente de los modelos tradicionales de software, una
los parámetros de entrada y decidir cómo manejar las malas entradas. especificación construido en un lenguaje de modelado ejecutable
ciones aseveraciones son de uso frecuente en la programación defensiva como xUML (UML ejecutable) se puede implementar en varios
para comprobar los valores de entrada. entornos de software sin cambios. Un compilador ejecutable-modelo
(transformador) puede convertir un modelo ejecutable en una
aplicación utilizando un conjunto de decisiones sobre el hardware de
4.5. Control de errores, control de excepciones, y la tolerancia a destino y el entorno de software. Por lo tanto, la construcción de
fallos modelos ejecutables puede considerarse como una forma de
[1 *] construir software ejecutable. ejecutable modelos son una fundación
apoyando actividades de gestión de la arquitectura dirigida por
La forma en que se manejan los errores afecta la capacidad del software modelos (MDA) inicia- tiva del Object Management Group (OMG).
para satisfacer los requisitos relacionados con Ness correcta-, robustez, y Un modelo ejecutable es una forma de especificar completamente
otros atri- buye no funcionales. Las afirmaciones se utilizan a veces para un modelo independiente de la plataforma (PIM); un PIM es un
comprobar si hay errores. -Están mercancías también se utilizan otras modelo de una solución a un problema que no se basa en ningún
técnicas-tales de manejo de errores como devolver un valor neutro, tecnologías de implementación. A continuación, un modelo de
sustituyendo la siguiente pieza de datos válidos, registrando un mensaje plataforma específica (PSM), que es un modelo que contenga los
de advertencia, devolver un código de error, o el cierre de la soft-. detalles de la tación aplica-, puede ser producido por tejer el PIM y
la plataforma sobre la que se basa.
que un usos de rutina lanzar para lanzar una excepción detectada y una
con la programación orientada a objetos, formando un nuevo enfoque las variables definidas por el programador que pueblan el árbol. Después
compuesto llamado , Programación orientada a objetos basado en el de construir el árbol de análisis, el programa utiliza como entrada a los
estado. procesos computacionales.
Un método de la tabla impulsado es un esquema que utiliza tablas
para buscar información en lugar de utilizar sentencias lógicas (por 4.10. Las primitivas de concurrencia
ejemplo, Si y caso). Se utiliza en las circunstancias apropiadas, [7 *]
claves basadas en tablas
es más simple que la lógica complicada y más fácil de modificar. Al Una primitiva de sincronización es una abstracción de programación
utilizar métodos basadas en tablas, el programador se centra en dos proporcionada por un lenguaje de programación o el sistema
cuestiones: qué tipo de información a almacenar en la tabla o tablas, operativo que facilita rencia concurrente y sincronización. Conocidos
y cómo efi- ciente información de acceso en la tabla. primitivas RENCIA concurrentes incluyen semáforos, monitores y
exclusiones mutuas.
4.8. Configuración de tiempo de ejecución y la Un semáforo es un tipo de datos variable o extracto protegida
internacionalización que proporciona un simple pero útil abstracción para controlar el
[1 *] acceso a un recurso común por múltiples procesos o hilos en un
entorno de programación concurrente. Un monitor es un tipo de
Para lograr una mayor flexibilidad, un programa a menudo se construye datos abstractos que presenta un conjunto de operaciones
para soportar el tiempo de unión finales de sus Ables variabilidad. definidas por el programador que se ejecutan con la exclusión
configuración de ejecución es una técnica que une los valores de mutua. Un monitor de con- tains la declaración de variables
variables y ajustes del programa cuando el programa se está compartidas y cedimientos o funciones pro que operan en esas
ejecutando, por lo general mediante la actualización y la lectura de los variables. El constructo del monitor asegura que sólo un proceso
archivos de configuración en un modo justo a tiempo. La a la vez es activo dentro del monitor. Un mutex (exclusión mutua)
internacionalización es la activi- dad técnica de la preparación de un es un sin- cronización primitiva que permite el acceso exclusivo a
programa, generalmente software interactivo, para soportar múltiples un recurso compartido por un solo proceso o hilo a la vez.
lugares. La actividad correspon- diente, localización, es la actividad de la
modificación de un programa de apoyo a un idioma local específica. El
software interactivo puede contener ens doz- o cientos de instrucciones,
indicaciones de estado, mensajes de ayuda, mensajes de error, y así
sucesivamente. Los procesos de diseño y construcción deben dar cabida
a temas de cuerda y de juego de caracteres que incluye el cual el 4.11. middleware
conjunto de caracteres se va a utilizar, qué tipo de cadenas se usan, [3 *] [6 *]
cómo mantener las cuerdas sin cambiar el código, y traducir las cadenas
en diferentes idiomas con un impacto mínimo en el código de Middleware es una amplia clasificación de soft- ware que proporciona
procesamiento y la interfaz de usuario. servicios por encima de la capa del sistema operativo todavía por
debajo de la capa de programa de aplicación. Middleware puede
proporcionar ERS tiempo de ejecución contención de componentes de
software para proporcionar el paso de mensajes, la persistencia, y una
ubicación transparente a través de una red. Middleware puede ser visto
4.9. Gramática-Basado procesamiento de entrada [ dieciséis*] como un conector entre los componentes que utilizan el middleware.
Moderno orientado a mensajes middleware proporciona generalmente
un bus de servicios empresariales (ESB), que apoya ción y la
procesamiento de entrada basado en la gramática implica el análisis de comunicación entre múltiples aplicaciones de soft- ware interacción
sintaxis, o análisis, de la corriente de token de entrada. Se trata de la orientada al servicio.
creación de una estructura de datos (llamada
4.12. Métodos de construcción de software distribuido algoritmo de selección-influye en una velocidad y el tamaño ejecución.
Análisis de rendimiento es la investiga- ción de la conducta de un
[7 *] programa utilizando informa- ción recopilada como se ejecuta el
programa, con el objetivo de identificar posibles puntos calientes en el
Un sistema distribuido es una colección de siste- mas informáticos programa para ser mejorado.
físicamente separados, posiblemente heterogéneos que están
conectados en red para proporcionar a los usuarios el acceso a los Código de sintonía, lo que mejora el rendimiento a nivel de código, es
diversos recursos que mantiene el sistema. Construcción de la práctica de modificar el código correcto en formas que hacen que
software distribuido se distingue de software tradicional trucción funcione más eficientemente. Código de sintonía por lo general implica
ción por cuestiones tales como paralelismo, comu- nicación, y sólo cambios a pequeña escala que afectan a una sola clase, una sola
tolerancia a fallos. rutina, o, más comúnmente, unas pocas líneas de código. Un amplio
conjunto de técnicas de optimización de código está disponible,
programación distribuida normalmente cae en una de varias INCLUYENDO las de sintonización expresiones lógicas, bucles,
categorías arquitectónicos básicos: cliente-servidor, arquitectura de 3 transformaciones de datos, expresiones, y rutinas. El uso de un lenguaje
capas, de n niveles de arquitectura, dis- objetos Tributado, de de bajo nivel es otra téc- nica común para la mejora de algunos puntos
acoplamiento suelto, o estrecho acoplamiento (véase la sección 14.3 de calientes en un programa.
los fundamentos Informática KA y la sección 3.2 de el programa de
diseño KA).
4.15. Normas de plataforma
4.13. La construcción de sistemas heterogéneos [ 6 *] [6 *] [7 *]
La parte de software se traduce en un lenguaje de programación Development-TDD) es un estilo de desa- rrollo popular en la que los casos
4.14. Análisis de Rendimiento y ajuste la codificación, exponiendo así a los requerimientos y problemas de diseño
[1 *] más pronto.
Un entorno de desarrollo o entorno de desarrollo integrado (IDE), Prueba de la unidad es a menudo auto-acoplado. Los desarrolladores
proporciona Comprehensive instalaciones hensive a los pueden utilizar herramientas de prueba de unidad y los marcos para
programadores de software para la construcción mediante la extender y crear ambiente de prueba automatizado. Con las herramientas
integración de un conjunto de herramientas de desarrollo. Las opciones de pruebas unitarias y marcos, el desarrollador puede codificar criterios en
de los entornos de desarrollo pueden afectar la eficiencia y la calidad la prueba para verificar la exactitud de la unidad bajo variabilidad conjuntos
de construcción de software. de datos ous. Cada prueba individual se implementa como un objeto, y un
En adicional a las funciones básicas de edición de código, entornos de la prueba, los casos de prueba fallidos serán marcados e informaron de
depuración / test /, comprimido o delinear puntos de vista de los 5.4. Perfilado, análisis de rendimiento, y cortar
programas, código automatizado transforma y soporte para la Herramientas
refactorización. [1 *]
Un constructor de GUI (Graphical User Interface) es una herramienta de de perfiles supervisa el código mientras se ejecuta y registra el número de
desarrollo de software que permite el fun desa- para crear y mantener veces que se ejecuta cada instrucción o cuánto tiempo el programa pasa
interfaces gráficas de usuario en un WYSI- WYG (lo que ves es lo que en cada ruta declaración o ejecución. Pro-presentación del código
obtienes) de modo. Un constructor de interfaz gráfica de usuario por lo mientras se está ejecutando da una idea de cómo funciona el programa,
general incluye un editor visual para el desarrollador para diseñar formas y donde están los puntos calientes, y donde los desarrolladores deben
ventanas y gestionar la distribución de los widgets por Arrastrando, goteo centrarse los esfuerzos de optimización de código.
si- bajo el estilo orientado a eventos (en la que el flujo del programa es programa (es decir, el programa de rebanada) que pueden afectar a los
determinado por eventos y manejo de eventos), las herramientas de valores de las variables especificadas en algún punto de interés, que se
desarrollo GUI suelen proporcionar asistentes de generación de código, conoce como un criterio de fragmentación. rebanar programa puede ser
que automatizan las tareas más repetitivas requeridas para el manejo de utilizado para la localización de la fuente de errores, programa de
eventos. El código de soporte se conecta widgets con los eventos comprensión, y análisis de optimización. herramientas de corte en lonchas
salientes y entrantes que activan las funciones que proporcionan la lógica programa computan las rebanadas de programas para varios lenguajes de
de la aplicación. Algunos entornos de desarrollo modernos proporcionan programación que utilizan métodos de análisis estáticos o dinámicos.
[2 *]
[7 *]
[5 *]
[3 *]
[4 *]
[6 *]
[1 *]
1. Fundamentos de
construcción de
software
c2, c3,
C7-C9, C24,
1.1. Complejidad
C27, C28,
minimizando
C31, C32,
C34
C3-C5,
1.2. pronóstico del
C24, C31,
cambio
C32, C34
c8, c23
1.3. La construcción de C20, C31,
Verificación
c34
1.5. Normas de
c4
construcción
2. Gestión de la
Construcción
C3, C4,
2.2. Ordenación de la
C21,
Edificación
C27-C29
2.3. Medición de la
c25, c28
construcción
3. Consideraciones
prácticas
3.2. Idiomas de
c4
construcción
C5-C19,
3.3. Codificación
C25-C26
3-14 Guía SWEBOK® V3.0
[2 *]
[7 *]
[5 *]
[3 *]
[4 *]
[6 *]
[1 *]
3.4. Prueba de la
c22, c23
construcción
3.5. Construcción de
c16
Reutilización
4. Tecnologías de la
Construcción
4.3.
Parametrización y c1
Genéricos
4.6. ejecutable
c1
modelos
construcción basadas en
c18
tablas de base estatal y
internacionalización
4.9. Procesamiento de la
c5 c8
entrada Gramática-Basado
Construcción de Software 3-15
[2 *]
[7 *]
[5 *]
[3 *]
[4 *]
[6 *]
4.10. Las primitivas de [1 *]
c6
concurrencia
4.11. middleware c1 c8
4.12. Métodos de
construcción para c2
El software distribuido
4.13. La construcción de
sistemas heterogéneos C9
4.14. Actuación
Análisis y c25 Tuning, c26
4.15. Normas de
c10 c1
plataforma
4.16. Programación
c22
Test-First
5. Instrumento de construcción
5.1. Entornos de
c30
desarrollo
5.2. Constructores GUI c30
5.3. Herramientas de
c22 c8
prueba de unidad
5.4. Perfilado,
análisis de
c25, c26
rendimiento, y
cortar Herramientas
3-16 Guía SWEBOK® V3.0
LECTURAS Referencias
PRUEBAS DE SOFTWARE
control de pruebas de notación pruebas siempre implica un equilibrio entre los recursos y los
4-1
4-2 Guía SWEBOK® V3.0
y los planes y procedimientos de prueba deben ser System- que avanza el y los atributos de calidad del software y también para la identificación
desarrollo de software refinados como Bly-lidades ticamente y de fallas en aquellos casos en los que la prevención de errores no ha
continuamente desarrollados y. Estas actividades de planificación y el sido eficaz. Es quizás obvio, pero vale la pena reconocer que el
diseño de prueba de la prueba proporcionan información útil para los software todavía puede contener errores, incluso después de la
diseñadores de software y ayudan a poner de relieve las debilidades finalización de una extensa actividad de la prueba. Los fallos de
potenciales, como descuidos de diseño / contradicciones u omisiones / software riencia rienced después del parto se abordan mediante el
ambigüedades en la documentación. mantenimiento correctivo. temas de mantenimiento de software están
cubiertas en el mantenimiento del software KA. En la calidad del
Para muchas organizaciones, el enfoque de la calidad soft- ware software KA (ver Técnicas para el control de calidad de software),
es una de prevención: es, obviamente, mucho mejor para prevenir los técnicas de gestión de la calidad del software se clasifican
problemas que corregirlos. Las pruebas pueden verse, entonces, principalmente en técnicas estáticas (sin ejecución de código) y
como un medio para proporcionar información acerca de la
funcionalidad
Pruebas de Software 4-3
técnicas dinámicas (la ejecución de código). Tanto catego- rías 1. Fundamentos de Software Testing
son útiles. Esta KA se centra en técnicas dinámicas.
1.1. Terminología de pruebas relacionados
Las pruebas de software también está relacionado con la construcción
El desglose de temas para el Software de Exámenes KA se 1.1.2. Las fallas fallas vs.
muestra en la Figura 4.1. Un desglose más detallado se [1 *, c1s5] [2 *, c11]
proporciona en la Matriz de Temas vs. Material de referencia al
final de este KA. El primer tema se describe damentals Software Muchos términos se utilizan en la literatura de ingeniería de
Testing FUn-. Cubre las definiciones básicas en el campo de software para describir un mal funcionamiento: en particular, avería,
pruebas de software, la terminología básica y las cuestiones clave, fallo, y error, entre otros. Este gía terminología se define
y el buque PARENTESCO de pruebas de software con otras precisamente en [3, c2]. Es esencial distinguir claramente entre el porque
actividades. de un mal funcionamiento (para el que se utilizará el fallo término
aquí) y un efecto no deseado observado en servicio entregado del
El segundo tema, los niveles de prueba, se compone de dos sis- tema (que será llamado un fracaso). En efecto bien puede
subtemas (ortogonales): la primera subtema se enumeran los niveles haber fallos en el software que nunca se manifiestan como
en los que la prueba de software grande se subdivide fracasos (ver limitaciones teóricas y prácticas de pruebas en la
tradicionalmente, y el segundo subtema considera la prueba para las sección 1.2, Temas clave). Por lo tanto ing Test- puede revelar
condiciones específicas o propie- dades y se conoce como objetivos fallos, pero es los defectos que pueden y deben ser removidos
de la prueba. No todos los tipos de pruebas se aplican a todos los [3]. El término más genérico
productos de software, ni ha sido incluido todos los tipos posibles. El
objetivo blanco de prueba y la prueba en conjunto determinan cómo
se identifica el equipo de prueba, tanto en cuanto a su consistencia, la defecto puede ser utilizado para hacer referencia a un fallo o un
cantidad de pruebas es suficiente para lograr el objetivo declarado -y fracaso, cuando la distinción no es importante [3]. Sin embargo, se
a su composición- que los casos de prueba deben seleccionarse para debe reconocer que la causa de un fallo no siempre puede ser
lograr el objetivo declarado inequívocamente identi- ficados. No existen criterios teóricos para
determinar definitivamente, en general, el fallo que provocó un fallo
observada. Podría decirse que era la falla que tuvo que ser
(Aunque por lo general “para lograr el obje- tivo declarado” queda modificado para eliminar el fallo, pero otras modificaciones podría
implícita y sólo se plantea la primera parte de las dos preguntas haber funcionado igual de bien. Para evitar la ambigüedad, se
anteriores en cursiva). Criterios para hacer frente a la primera podría hacer referencia a
pregunta se denominan
adecuación de la prueba criterios, mientras que los relativos a la segunda entradas de fallo causante en lugar de los fallos, es decir, aquellos
pregunta son la prueba Criteria de selección. conjuntos de entradas que hacen que aparezca un fallo.
es suficiente para un propósito determinado. Prueba criterios en este sentido es el aforismo Dijkstra que “las pruebas pro- grama se
quacy ade- se pueden utilizar para decidir cuando la prueba sufi- puede utilizar para mostrar la presencia de insectos, pero nunca para
sufi- será, o se ha logrado [4] (ver terminación en la sección 5.1, mostrar su ausencia” [5]. La razón obvia de esto es que la prueba
las consideraciones prácticas). completa no es viable en el software realista. Debido a esto, la prueba
se debe conducir basado en el riesgo [6, parte 1] y puede ser visto
como una estrategia de gestión de riesgos.
1.2.2. Los tests de efectividad / Objetivos para las pruebas
ejecutarán puede ser guiado por diferentes objetivos: es sólo a la luz del ejercidos por cualquier dato de entrada. Ellos son un problema no puede
objetivo perseguido que la eficacia del equipo de prueba se puede signifi- en pruebas basadas en el camino, sobre todo en la derivación
control.
• Prueba vs. Programa de Construcción (ver pruebas de la hilos funcionales. Las pruebas de integración es a menudo una
construcción en la construcción del software KA [1 *, c3s2]). actividad continua en cada etapa de desarrollo durante el cual los
ingenieros de software abstractos perspectivas de distancia de nivel
inferior y se concentran en las perspectivas del nivel en el que están
2. Niveles de prueba inte- grando. Para que no sea el software pequeño, sencillo,
estrategias de pruebas de integración incrementales son el aliado
Las pruebas de software se realiza generalmente en dife- rentes niveles
preferido no baja de poner todos los componentes juntos en las
a lo largo de los procesos de manteni- miento y desarrollo. Los pruebas una vez que está a menudo llamado “big bang”.
niveles pueden distinguirse basándose en el objeto de la prueba,
que se llama el objetivo, o en la finalidad, que se llama el
elementos de software que son comprobables por separado. Dependiendo 2.2. Objetivos de las Pruebas
del contexto, estos podrían ser los subprogramas individuales o un [1 *, c1s7]
componente más grande hecha de unidades altamente cohesivos.
Típicamente, la unidad de pruebas se produce con acceso al código La prueba se llevó a cabo a la vista de objeti- vos específicos, que
siendo probado y con el apoyo de herramientas de depuración. Los se indican más o menos explícitamente y con diferentes grados
programadores que escribieron el código típicamente, pero no siempre, las de precisión. La indicación de los objetivos de la prueba en
pruebas unitarias conducta. términos precisos, cuantitativos apoya la medición y el control del
proceso de prueba.
2.1.2. Pruebas de integración La prueba puede ser dirigido a la verificación de diferentes pro-
[1 *, c7] [2 *, c8] piedades. Los casos de prueba pueden ser diseñados para comprobar
que las especificaciones funcionales son correctamente mentado
Las pruebas de integración es el proceso de verificar las interacciones Implementers, que se refiere vario en el eratura lit- como las pruebas
entre los componentes de software. estrategias de pruebas de integración de conformidad, las pruebas de corrección, o pruebas funcionales. Sin
Sical cla-, como el de arriba hacia abajo y de abajo hacia arriba, se utilizan embargo, varias otras propiedades no funcionales pueden ser probados
a menudo con el software quía chically estructurado. como bien incluyendo el rendimiento, la fiabilidad y dad usabil-, entre
muchos otros (ver modelos y características de calidad de la calidad del
, estrategias de integración sistemáticas modernas son software KA). Otros objetivos importantes para las pruebas incluyen
típicamente arquitectura dirigida, que consiste en integrar pero no se limitan a la seguridad de medición,
progresivamente los componentes o subsistemas de software
basado en com- identificado
4-6 Guía SWEBOK® V3.0
Las pruebas de seguridad se centra en la verificación de que el software En los casos donde el software se construye para servir a diferentes
está protegido de ataques externos. En particular, las pruebas de usuarios, pruebas de configuración verifica el software bajo diferentes
[1 *, c8s8] persona-ordenador es evaluar lo fácil que es para los usuarios finales para
Las pruebas de estrés ejerce de software en la carga máxima de diseño, software fun- ciones que soporta las tareas del usuario, la documentación
así como más allá de ella, con el objetivo de determinar los límites de que ayuda a los usuarios, y la capacidad del sistema para recuperarse de
comportamiento, y para poner a prueba los mecanismos de defensa en los errores del usuario (ver diseño de la interfaz de usuario en el software
IEEE / ISO / IEC Standard 24765 define las pruebas de espalda de Uno de los objetivos de la prueba es detectar la mayor cantidad
Regreso a como “prueba en el que dos o más variantes de un posible de fallos. Muchas técnicas se han desarrollado para hacer
programa se ejecutan con las mismas entradas, las salidas se esto [6, parte 4]. Estas técnicas intentan “romper” un programa por ser
comparan, y los errores se analizan en caso de discrepancias.” Tematic como sis- como sea posible en la identificación de las
entradas que van a producir comportamientos representativos del
programa; por ejemplo, teniendo en cuenta las subclases del dominio
2.2.10. Prueba de recuperación de entrada, los escenarios, los estados, y los flujos de datos. La
[1 *, c14s2] clasificación de las técnicas de prueba pre SENTED aquí se basa en
cómo se generan las pruebas: desde la intuición del ingeniero de
las pruebas de recuperación está dirigido a comprobar la capacidad de software y expe- riencia, las especificaciones, la estructura del código,
reinicio de software después de un fallo del sistema o de otro tipo las faltas reales o imaginarios a ser descubiertos, el uso previsto,
“desastre”. modelos, o la naturaleza de la aplicación. Una categoría se refiere a la
utilización combinada de dos o más técnicas.
2.2.11. Prueba de interfaz
[2 *, c8s1.3] [9 *, c4s4.5]
defectos de interfaz son comunes en siste- mas complejas. pruebas de A veces, estas técnicas se clasifican como
la interfaz tiene como objetivo verificar si la interfaz componentes caja blanca ( también llamado caja de vidrio), Si las pruebas se basan en
correctamente para proporcionar el intercambio correcto de datos y la información sobre la forma en que el software ha sido diseñado o
control de informa- ción. Por lo general, los casos de prueba se codificado, o como recuadro negro si los casos de prueba se basan
generan a partir de la especificación de interfaz. Un objetivo específico únicamente en el comportamiento de la entrada / salida del software. La
de pruebas de la interfaz es para simular el uso de las API de siguiente lista incluye las técnicas de prueba que se utilizan normalmente,
aplicaciones de usuario final. Esto implica la genera- ción de los pero algunos médicos se basan en algunas de las técnicas más que
parámetros de las llamadas a la API, el ajuste de las condiciones del otros.
entorno externo, y a la definición de los datos interna que afecta a la
API.
4-8 Guía SWEBOK® V3.0
3.1. Sobre la base de la intuición y la experiencia del ingeniero de en lugar de considerar todas las combinaciones posibles. pruebas
software Pairwise pertenece a combinatoria pruebas, que en general
también incluye combinaciones de más alto nivel que los pares:
3.1.1. Ad hoc estas técnicas se denominan t-sabia, por lo que cada combinación
posible de t variables de entrada se considera.
Tal vez la técnica que más se practica es la prueba ad-hoc: las
pruebas se derivan depender de la habilidad del ingeniero de
software, la intuición y ex- periencia con programas similares. 3.2.3. Análisis de valores en la frontera
pruebas Ad hoc puede ser útil para identificar las pruebas casos [1 *, c9s5]
que no generan fácilmente por técnicas más formales.
Los casos de prueba son elegidos en o cerca de los límites del dominio
de las variables de entrada, con la lógica subyacente que muchos fallos
3.1.2. Prueba exploratoria tienden a concentrarse cerca de los valores extremos de entradas. Una
extensión de esta técnica es la prueba de solidez, en el que los casos de
pruebas exploratorias se define como aprendizaje simultáneo, diseño prueba se eligen también fuera del dominio de entrada de variables a
de la prueba, y ejecución de la prueba [6, parte 1]; es decir, las robustez programa de prueba en el procesamiento de entradas
pruebas no se definen por adelantado en un plan de pruebas inesperadas o erróneos.
establecido, pero están diseñados de forma dinámica, ejecutados, y
modificados. La eficacia de pruebas exploratorias se basa en el
conocimiento de los ingenieros de software, que se puede derivar de 3.2.4. Pruebas al azar
varias fuentes: el comportamiento del producto observada durante la [1 *, c9s7]
prueba, la familiaridad con la aplicación, la plataforma, el proceso
falla, el tipo de fallas y fracasos po- sible, el riesgo asociado con un Las pruebas se generan puramente al azar (que no debe confundirse con
producto en particular, y así sucesivamente. la prueba estadística del perfil fun- cional, como se describe en perfil
de entrada debe ser conocido con el fin de ser capaz de recoger puntos al
3.2. Las técnicas basadas en el dominio de entrada azar dentro de ella. Las pruebas al azar proporciona un enfoque
3.2.1. Partición de equivalencia han propuesto formas mejoradas de pruebas al azar en los que pling la
[1 *, c9s4] entrada aleatoria sam- está dirigida por otros criterios de selección de
partición de equivalencia implica la partición del dominio de entrada en forma especial de pruebas al azar dirigida a romper el software; Con mayor
una colección de subconjuntos (o clases Alent valente) en base a un frecuencia se utiliza para las pruebas de seguridad.
bucles, otros criterios menos estrictos se centran en la cobertura de 3.4.1. error de adivinanzas
los caminos que limitan iteraciones del bucle, tales como la cobertura [1 *, c9s8]
de sentencias, cobertura de sucursales, y las pruebas DICIÓN / con-
decisión. La adecuación de estas pruebas se mide en porcentajes; por En adivinar de error, los casos de prueba están diseñados
ejemplo, cuando todas las ramas se han ejecutado al menos una vez específicamente por los ingenieros de software que intentan anticipan las
por los ensayos, se ha logrado 100% de cobertura de rama. fallas más plausibles en un programa dado. Una buena fuente de
información es la historia de los fallos detectados en los proyectos
anteriores, así como la experiencia del ingeniero de software.
para guiar derivación de casos de prueba que evaluarán la (Más o menos, las salidas). Los casos de prueba se derivan
consecución de los objetivos de fiabilidad y ejercer uso sistemáticamente por considerar cada posible combinación de
relativo y importancia de las distintas funciones similares a condiciones y sus acciones resul- tantes correspondientes. Una
lo que se encontró en el entorno operativo [3]. técnica relacionada es causa-efecto gráfica [ 1 *, c13s6].
3.5.2. La heurística de observación del usuario 3.6.2. Las máquinas de estados finitos
[10 *, C5, C7] [1 *, c10]
principios de usabilidad pueden proporcionar directrices para los Al modelar un programa como una máquina de estados finitos, las pruebas
problemas de los descubrimientos confirma en el diseño de la cara del pueden ser seleccionados con el fin de cubrir los estados y transiciones.
métodos de inspección facilidad de uso, se aplican para la observación 3.6.3. Las especificaciones formales
sistemática del uso del sistema bajo condiciones controladas con el fin de [1 *, c10s11] [2 *, c15]
deter- minar qué tan bien la gente puede utilizar el sistema y sus
interfaces. heurísticas de usabilidad incluyen recorridos cognitivos, análisis Indicando las especificaciones en un lenguaje formal (ver Métodos
de reclamaciones, observaciones de campo, pensando en voz alta, y los Formales en la ingeniería de software Modelos y Métodos KA)
enfoques incluso indirectos, tales como cuestionarios de usuario y permite la derivación automática de casos de prueba funcionales, y,
entrevistas. al mismo tiempo, proporciona un oráculo para comprobar los
resultados de pruebas.
3.6. Técnicas de ensayo basado en modelos TTCN3 (Pruebas y control de pruebas notación de la versión 3) es un
Un modelo en este contexto es una representación abstracta (formal) concebida para las necesidades específicas de los sistemas de prueba de
del software bajo prueba, o de sus requisitos de software (ver Modelado telecomunicaciones, por lo que es particularmente adecuado para probar
de los modelos de ingeniería de software y métodos KA). pruebas protocolos de comuni- cación complejos.
utilizado para la generación de caso de prueba; la infraestructura de realizadas por los seres humanos y / o software aplica- ciones,
apoyo para la ejecución de la prueba; y la evaluación de los resultados generalmente representados a través de notaciones gráficas. Cada
de las pruebas en comparación con los resultados esperados. Debido a secuencia de acciones constituye un flujo de trabajo (también llamado un
la complejidad de las técnicas, los métodos de ensayo basados en escenario). Tanto cal normalmente, un y flujos de trabajo alternativos
modelos se utilizan a menudo en conjunción con los arneses ción de deben ser probados [6, parte 4]. Un enfoque especial en los papeles en
prueba automatización. técnicas de pruebas basadas en modelos una especificación de flujo de obra está dirigida en las pruebas de
• software orientado a objetos en cada punto de decisión. Para evitar este tipo de malentendidos,
• software basado en componentes una clara distinción debe hacerse entre las medidas relacionadas
• software basado en web con las pruebas que proporcionan una evaluación del programa que
• programas concurrentes se está probando, a partir de las salidas de prueba observadas y las
• software basado en el protocolo medidas que evalúan la minuciosidad de la prueba. (Véase la
• sistemas de tiempo real Ingeniería de Software de medición en la Gestión KA Ingeniería de
• sistemas de seguridad críticos Software para obtener información sobre los programas de
• software orientada a servicios medición. Ver Proceso de Software y Medición del producto en el
• software de código abierto Proceso de Ingeniería de Software KA para obtener información
• software embebido sobre las medidas).
A veces, las técnicas de prueba son confundidos con los objetivos de La literatura es rica en pruebas de clasificaciones y taxonomías
las pruebas. Técnicas de ensayo pueden ser vistos como auxiliares de faltas. Para hacer la prueba tivo más effec-, es importante
que ayudan a asegurar el logro de objetivos de la prueba [6, Parte 4]. saber qué tipos de fallos se pueden encontrar en el software bajo
Por ejemplo, la cobertura de la rama es una técnica de prueba prueba y la frecuencia relativa con la que se han producido estos
popular. El logro de una cobertura rama medida especificada (por fallos en el pasado. Esta información puede ser uso-ful para hacer
ejemplo, 95% de cobertura de sucursales) no debe ser el objetivo de predicciones de calidad, así como en la mejora de procesos
las pruebas per se: es una forma de improv- ing las posibilidades de (véase ción de defectos caracterización de la calidad del software
encontrar fallos por intentar ejercer sistemáticamente todas las ramas KA).
del programa
4-12 Guía SWEBOK® V3.0
Un programa bajo prueba se puede evaluar por recuento fallos En la siembra de fallos, algunos fallos se intro- ducido artificialmente en
descubiertos como la relación entre el número de fallos encontrados y un programa antes de la prueba. Cuando se ejecutan las pruebas,
el tamaño del programa. algunos de estos fallos cabezas de serie se dará a conocer, así como,
posiblemente, algunos defectos que ya estaban allí. En teoría,
4.1.4. Prueba de vida, Evaluación Fiabilidad dependiendo de cuáles y cuántos de los defectos artificiales se presen-
[1 *, c15] [9 *, c3] ten, Ensayos sobre la eficacia puede ser evaluado y el número restante
de fallos genuinos puede ser acoplado estimación. En la práctica, los
Una estimación estadística de la fiabilidad del software, que estadísticos cuestionan la distribu- ción y la representatividad de los
puede ser obtenido mediante la observación de fiabilidad fallos sembradas en relación con los fallos genuinos y el tamaño
alcanzado, se puede utilizar para evaluar un producto de software pequeño de la muestra sobre la que se basan las extrapolaciones.
y decidir si o no la prueba puede ser detenido (ver sección 2.2, Algunos también argumentan que esta técnica se debe utilizar con
Logro Fiabilidad y evaluación). mucho cuidado ya que la inserción de fallos en el software implica el
riesgo evidente de dejarlos allí.
el fracaso de conteo y tiempo entre fallos modelos. 4.2.4. La comparación y la eficacia relativa de las
diferentes técnicas
4.2. La evaluación de las pruebas realizadas
Se han realizado varios estudios para com- parar la eficacia relativa
4.2.1. Medidas de cobertura / Minuciosidad de las diferentes técnicas de prueba. Es importante ser preciso en
[9 *, c11] cuanto a la propiedad contra la cual se están evaluando las
técnicas; lo que, por ejemplo, es el significado exacto dado al
Varios criterios de adecuación de prueba requieren que los casos de término “eficacia”? Posibles interpretaciones incluyen el número de
prueba ejercen sistemáticamente un conjunto de elementos pruebas necesarias para encontrar el primer fracaso, la proporción
identificados en el programa o en las especificaciones (véase el tema entre el número de fallos que se encuentran a través de pruebas de
3, Técnicas de Prueba). Para evaluar la rigurosidad de las pruebas todos los defectos encontrados durante y después de la prueba, y la
ejecutadas, nieros de software niería pueden monitorear los elementos cantidad de fiabili- dad se ha mejorado. comparaciones analíticas y
cubiertos de manera que puedan medir dinámicamente la relación empíricas entre diferentes técnicas se han llevado a cabo de
entre los elementos cubiertos y el número total. Por ejem plos, es acuerdo con cada una de las nociones de eficacia especificados
posible medir el porcentaje de ramas cubiertas en el gráfico de flujo del anteriormente.
programa o el porcentaje de requisitos funcionales ejercidas entre los
enumerados en el documento de especificaciones. criterios de
adecuación basados en códigos requieren instrumentación apropiada
del programa que se está probando. Proceso 5. Prueba
proceso controlado. El proceso de prueba es compatible con las el elemento de prueba. la documentación de prueba debe hay que producir
actividades de ensayo y proporciona orientación a los probadores y y actualizada continuamente para el mismo nivel de calidad que los demás
equipos de prueba, desde la planificación de prueba para probar la tipos de documentación en la ingeniería de software. documentación de
evaluación de salida, de tal manera como para ofrecer garantías de que prueba también debe estar bajo el control de la gestión de con- figuración
los objetivos de la prueba se cumplirán de manera tivo costo-effec-. de software (ver el KA Software Configuration Management). Por otra
gerentes tienen un papel clave en la promoción de una recepción prácticas núcleo XP (programación extrema) y consiste en escribir las
favorable en general hacia el descubrimiento fracaso y la corrección pruebas unitarias antes de escribir el código para ensayar (ver Métodos
durante el desarrollo y mantenimiento de software; por ejemplo, ágiles en los modelos de ingeniería de software y métodos KA). De esta
mediante la superación de la mentalidad de código individual ERSHIP manera, TDD desarrolla los casos de prueba como rogate sur- para un
de propia entre los programadores y la promoción de un entorno de documento de especificación de requisitos de software en lugar de como
colaboración con el equipo de responsa- bilidad de anomalías en el una verificación independiente de que el software ha implementado
5.1.2. Guías de prueba tener un impacto positivo en la elaboración de las necesidades del usuario
Las fases de prueba pueden ser guiados por varios objetivos, por ejemplo,
priorizar y centrarse EGY la prueba estra-, y pruebas basadas en 5.1.6. Interna frente del equipo de pruebas independientes
escenario define casos de prueba basado en escenarios de software [1 *, c16]
especificados.
entre otros, el plan de pruebas, especificación de diseño de la prueba, Una serie de medidas relacionadas con los recursos gastados en las
procedimiento de ensayo, la especificación de casos de prueba, registro de pruebas, así como a la relativa eficacia de búsqueda de errores de las
la prueba, y el informe de incidente prueba. El software bajo prueba se diversas fases de prueba, son utilizados por los administradores para
proceso. Estas medidas de prueba pueden cubrir aspectos tales como el 5.2. Las actividades de prueba
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 Como se muestra en la siguiente descripción, manejo exitoso de
prueba falló, entre otros. las actividades de prueba depende en gran medida Cess la
gestión de configuración de software pro (véase el software de
Evaluación de los informes de las pruebas de fase puede ser configuración Manage- ment KA).
combinarse con el análisis de las causas para evaluar la efectividad del
posible. Tal evaluación puede estar asociada con el análisis de riesgos. 5.2.1. Planificación
Por otra parte, los recursos que merece la pena el gasto en las pruebas [1 *, c12s1, c12s8]
deben ser com- realizó medición con el uso / criticidad de la apli- cación:
diferentes técnicas tienen diferentes costos y el rendimiento de los Al igual que todos los otros aspectos de la gestión de proyectos, se deben
diferentes niveles de confianza en la fiabilidad del producto. planificar las actividades de prueba. Los aspectos clave de la planificación
5.1.8. Terminación resultados no deseable. Si se mantiene más de una línea de base del
Una decisión debe ser tomada en cuanto a cuánto ing Test- es prueba se establece en la configuración adecuada.
5.1.9. Prueba de reutilización y de prueba Patrones [ 9 *, c2s5] 5.2.3. Desarrollo Entorno de prueba
[1 *, c12s6]
Para llevar a cabo pruebas o mantenimiento de una forma nizado y El entorno utilizado para la prueba debe ser com- patible con
rentable or-, los medios utilizados para probar cada parte del herramientas niería otro software adoptada niería. Se debe
software deben ser reutilizados de forma sistemática. Un repositorio facilitar el desarrollo y control de casos de prueba, así como el
de materiales de prueba debe estar bajo el control del software de registro y la recuperación de los resultados esperados, guiones y
gestión de con- figuración de modo que los cambios en los requisitos otros materiales de prueba.
de software de diseño o se pueden reflejar en cambios en las
pruebas realizadas.
5.2.4. Ejecución
Las soluciones de ensayo adoptadas para probar algunos tipos de [1 *, c12s7]
aplicaciones, en determinadas circunstancias, con las motivaciones detrás
de las decisiones tomadas, forman un patrón de prueba que puede en sí La ejecución de los ensayos deberá incorporar un prin- cipio básico de
mismo ser documentados para su posterior reutilización en proyectos la experimentación científica: todo lo realizado durante la prueba debe
similares. ser realizado y documentado con claridad suficiente como para que
otra persona
Software de Pruebas 4-15
podrían replicar los resultados. Por lo tanto, las pruebas deben El software. información de seguimiento de defectos se utiliza para
realizarse de acuerdo con los procedimientos documentados usando determinar qué aspectos de las pruebas de software y otros
una versión claramente definida del software bajo prueba. procesos necesitan mejora y la eficacia de los enfoques anteriores
han sido.
[9 *, c15]
6.1. Herramienta de soporte de pruebas
Los resultados de las pruebas deben ser evaluados para determinar [1 *, c12s11] [9 *, c5]
si la prueba ha tenido éxito. En la mayoría de los casos, “éxito”
significa que el software lleva a cabo como se esperaba y no tenía Las pruebas requiere muchas tareas intensivas en mano de obra, de
ningún principales resultados inesperados. No todos los resultados funcionamiento ejecuciones numerosos programas Ning, y el manejo de
inesperados son necesariamente defectos, pero en algún momento una gran cantidad de información. herramientas adecuadas pueden aliviar
se determinan a ser simplemente ruido. Antes de que una falla la carga de opera- ciones de oficina, tediosas y hacerlos menos propensos
puede ser eliminado, es necesario un esfuerzo de análisis y a errores. Sofisticación herramientas CATed pueden apoyar el diseño de
depuración de aislar, identificar y describir. Cuando los resultados pruebas y generación de casos de prueba, por lo que es más eficaz.
5.2.6. Informe de problemas / prueba de log [ 1 *, c13s9] Orientación a los directores y los probadores sobre cómo seleccionar las
Las actividades de prueba se pueden introducir en un registro de pruebas gran medida la eficiencia y la eficacia de la prueba. Selección de
para identificar cuándo se llevó a cabo una prueba, que se realiza el herramienta depende de la evidencia diversa, tales como las opciones de
examen, lo que la configuración del software se utilizó, y otra identificación desarrollo, los objetivos de evaluación, instalaciones de ejecución, y así
correspondiente infor- mación. resultados de prueba inesperados o sucesivamente. En general, puede no ser una herramienta única que va a
incorrectos pueden ser grabados en un sistema de notificación de satisfacer necesidades particulares, por lo que un conjunto de
problema, los datos para el cual constituye la base para más tarde debug- herramientas podría ser una opción apropiada.
documentados en caso de que más tarde resultan ser más grave de lo 6.2. Categorías de Herramientas
previsto inicialmente. Los informes de ensayo son también aportaciones al
proceso de gestión de solicitudes de cambio (véase Control de la Clasificamos las herramientas disponibles de acuerdo a su
figuración Software Con- en el KA Software Configuration Management). funcionalidad:
5.2.7. seguimiento de defectos de un pro- grama, se proporcionan los conductores y los talones
Los defectos pueden ser rastreados y analizados para determinar • generadores de prueba [ 1 *, c12s11] proporcionar tancia asis- en
cuando se introdujeron en el software, por qué fueron creados (por los casos de prueba generación. La gene- ración puede ser al azar,
ejemplo, requisitos de mal definidos, ción incorrecta variable de basado en vía modelo- basa, o una mezcla de los mismos.
pruebas ejecutadas que han grabado las entradas y salidas (por • trazadores [ 1 *, c1s7] registrar la historia de las rutas de ejecución
ejemplo, pantallas). de un programa.
• comparadores de Oracle / archivo / afirmación herramientas de • herramientas de pruebas de regresión [ 1 *, c12s16] apoyar la
comprobación [ 1 *, c9s7] ayudar a decidir si un resultado de la ejecución adicional de un conjunto de pruebas después de una
prueba es exitosa o no. sección del software ha sido modificado. También pueden ayudar a
• analizadores de cobertura y instrumenters [ 1 *, c4] trabajar seleccionar un subconjunto de pruebas de acuerdo con el cambio
ejercido muchas entidades de la gráfica de flujo del programa • herramientas de evaluación de la fiabilidad [ 9 *, c8] prueba apoyo
entre todos los requeridos por el criterio de cobertura de resultados de análisis y ción visualiza- gráfica a fin de evaluar medi-
prueba seleccionada. El análisis se puede hacer gracias a das relacionadas fiabilidad-de acuerdo con los modelos
del programa.
Software de Pruebas 4-17
Sommerville 2011
Nielsen 1993
Kan 2003
[10 *]
[9 *]
[2 *]
[1 *]
1. Fundamentos de Software Testing
c1s9,
1.2.4. El problema de Oracle
c9s7
2. Niveles de prueba
Sommerville 2011
Nielsen 1993
Kan 2003
[10 *]
[9 *]
[2 *]
[1 *]
2.2. Objetivos de las Pruebas c1s7
c13s7,
2.2.3. Alfa y Beta Testing c8s4
c16s6
3. Técnicas de Prueba
3.1.1. Ad hoc
dominio de entrada
Sommerville 2011
Nielsen 1993
Kan 2003
[10 *]
[9 *]
[2 *]
[1 *]
3.3.2. Criterios basados en el flujo de datos c5
modelos
Programa
Sommerville 2011
Nielsen 1993
Kan 2003
[10 *]
[9 *]
[2 *]
[1 *]
4.2. La evaluación de las pruebas
realizadas
Proceso 5. Prueba
c12s1
5.2.1. Planificación
c12s8
c12s1
5.2.2. Generación de casos de prueba
c12s3
Sommerville 2011
Nielsen 1993
Kan 2003
[10 *]
[9 *]
[2 *]
[1 *]
5.2.6. Informe de problemas / Registro de
c13s9
Pruebas
Referencias
Verificación y validación
producto de software que satisfaga las necesidades del usuario. En El desglose de temas para el manteni- Software Principal- KA se
consecuencia, el producto de software debe cambiar o evolucionar. Una muestra en la Figura 5.1.
vez en funcionamiento, los defectos se descubren, cambian entornos
operativos, y los nuevos requisitos de los usuarios superficie. La fase de 1. Fundamentos de mantenimiento de software
mantenimiento del ciclo de vida comienza después de un período de
garantía o soporte posterior a la implementación del parto, pero las Esta primera sección presenta los conceptos y terminología que forman
actividades de mantenimiento producirse mucho antes. una base subyacente a la comprensión de la función y el alcance del
mantenimiento del software. Los temas proporcionan definiciones y
hacer hincapié en por qué hay una necesidad de mantenimiento.
El mantenimiento de software es una parte integral de un ciclo de Categorías de mantenimiento de software son fundamentales para la
vida del software. Sin embargo, no ha recibido el mismo grado de comprensión de su significado subyacente.
atención que las otras fases tienen. Históricamente, el desarrollo de
software ha tenido un perfil mucho más alto que el mantenimiento del
software en la mayoría de las organizaciones. Esto está cambiando, ya 1.1. Definiciones y terminología
que las empresas se esfuerzan para exprimir el máximo rendimiento de [1 *, c3] [2 *, c1s2, C2S2]
su inversión en el desarrollo de software por el software que opera ING
mantener- el mayor tiempo posible. El paradigma de código abierto ha El propósito del mantenimiento del software se define en el estándar
traído más aten- ción a la cuestión del mantenimiento de artefactos de internacional para el mantenimiento de software: ISO / IEC / IEEE
software desarrollados por otros. En esto Guía, mantenimiento del 14764 [1 *]. 1 En el contexto de la ingeniería de software,
software se define como el conjunto de actividades necesarias para mantenimiento de software es esencialmente uno de los muchos
proporcionar soporte rentable de software. Las actividades se llevan a procesos técnicos.
cabo durante la etapa de pre-entrega, así como
5-1
5-2 Guía SWEBOK® V3.0
El objetivo del mantenimiento del software es modificar el modificada, la prueba se lleva a cabo, y una nueva versión del
software existente, preservando su integridad. La norma producto de software es liberado. Además, forma- ción y apoyo diario
internacional también señala la importancia de tener algunas se proporcionan a los usuarios. El termino mantenedor se define como
actividades de mantenimiento antes de la entrega final de software una organización que lleva a cabo actividades de mantenimiento. En
(actividades previas a la entrega). En particular, IEEE 14764 hace este KA, el término se referirá en ocasiones a las personas que per-
hincapié en la importancia de los aspectos de mantenimiento formar esas actividades, lo que contrasta con los desarrolladores.
previo a la entrega de planificación, por ejemplo.
mantenedor ayuda a reducir el esfuerzo de mantenimiento percepción de mantenimiento del software es que se limita a fijar los
general. En algunos casos, el desarrollador inicial no puede ser fallos. Sin embargo, estudios y encuestas realizadas a lo largo de los
alcanzado o ha pasado a otras tareas, lo que crea un desafío años han indicado que la dad de División, más del 80 por ciento, del
adicional para man- recipientes. El mantenimiento debe tener mantenimiento del software se utiliza para acciones noncorrective [2 *,
artefactos de software de desarrollo (por ejemplo, código o docu- figura 4.1]. La agrupación de mejoras y correcciones juntos en los
mentación) y apoyarlos de inmediato, y luego evolucionar informes de gestión contribuye a algunos conceptos erróneos con
progresivamente / mantenerlas durante un ciclo de vida del respecto a los altos costos de correcciones. La comprensión de las
software. categorías de mantenimiento de software ayuda a comprender la
estructura de los costes de mantenimiento de software. Además, la
comprensión de los factores que influyen en la capacidad de
1.3. La necesidad de mantenimiento mantenimiento de software puede ayudar a contener los costos. Algunos
[2 *, c1s5] factores medioambientales y su relación con los costos de
mantenimiento de software incluyen los siguientes:
El mantenimiento es necesario para asegurar que el software continúa
para satisfacer las necesidades del usuario. manteni- miento es aplicable
al software que se desarrolla utilizando cualquier modelo de ciclo de vida
del software (por ejemplo, espiral o lineal). productos de software • Entorno de funcionamiento se refiere a hardware y
cambian debido a las acciones correctivas y de software noncorrective. software.
Mantenimiento debe ser realizado con el fin de • ambiente organizacional se refiere a cies POLI,
competencia, proceso, producto, y personal.
• corregir fallas;
• mejorar el diseño; 1.5. Evolución de Software
• implementar mejoras; [2 *, c3s5]
• interactuar con otros softwares;
• adaptar los programas a fin de que distintos tipos de hardware, el El mantenimiento del software en términos de evolución se abordó por
software, las características del sistema y de las primera vez en la década de 1960. Durante un período de veinte años, la
telecomunicaciones instalaciones se pueden utilizar; investigación condujo a la formulación de ocho “leyes de la evolución.” Las
• migrar software heredado; y principales conclusiones son una propuesta que el mantenimiento es desa-
• retirarse de software. rrollo evolutivo y que las decisiones de mantenimiento son ayudados
Cinco características clave incluyen las actividades de la er Algunos afirman que el mantenimiento se continúa el desarrollo, con la
• mantener el control sobre las funciones de día-a-día del evolucionando; a medida que evoluciona, crece más compleja si no se
Mantenimiento consume una parte importante de los recursos finan- ciales • El mantenimiento correctivo: modifica- ción reactiva (o
en un ciclo de vida del software. Una común reparación) de un producto de software
5-4 Guía SWEBOK® V3.0
realizado después de la entrega para corregir problemas Ered próximo lanzamiento, mientras que el envío de parches de emergencia
descu-. Se incluyen en esta categoría es el mantenimiento de para la versión actual, también crea un desafío. En la siguiente sección
emergencia, que es una modificación no programada se realiza se presentan algunos de los problemas gías Nical y de gestión
para mantener temporariamente un producto de software en relacionados con el mantenimiento del software. Se han agrupado bajo
funcionamiento en espera de mantenimiento correctivo. los siguientes encabezados de los temas:
Mejora de la corrección
2. Temas clave en el mantenimiento de software El costo de la repetición de la prueba completa en una pieza importante
de software es importante en términos de tiempo y dinero. Con el fin de
Una serie de cuestiones clave debe ser tratada para garantizar el garantizar que los informes de problemas solicitados son válidos, el
mantenimiento eficaz de software. mantenimiento de software ofrece mantenedor debe replicar o verificar los problemas mediante la ejecución
retos únicos cal y de gestión técnicamente para los ingenieros de de las pruebas adecuadas. Las pruebas de regresión (la repetición de
software-para ejemplo, tratando de encontrar un fallo en el software pruebas selec- tiva de software o un componente de ver- ify que las
que contiene un gran número de líneas de código que otro ingeniero modificaciones no han causado efectos unin- cuidados) es un concepto
de software desarrollados. Del mismo modo, compitiendo con los importante en las pruebas de mantenimiento. Además, encontrar tiempo
desarrolladores de software de recursos es una batalla constante. para probar es a menudo difícil. La coordinación de las pruebas cuando
La planificación de una versión futura, que a menudo incluye la diferentes miembros del equipo de mantenimiento están trabajando
codificación
El software de mantenimiento 5-5
sobre diferentes problemas al mismo tiempo sigue siendo un desafío. 2.1.4. mantenibilidad [ 1 *, c6s8] [2 *, c12s5.5]
Cuando el software realiza fun- ciones críticos, puede ser difícil para
llevarlo fuera de línea para la prueba. Las pruebas no se pueden
ejecutar en el lugar-ful el sistema de producción más sentido-. La IEEE 14 764 [1 *, c3s4] define mantenibilidad como la capacidad del
Prueba KA Software proporciona información y referencias adicionales producto de software para ser modificado. Las modificaciones
sobre este asunto en su subtema en las pruebas de regresión. pueden incluir correcciones, mejoras, o la adaptación del software a
cambios en el entorno, así como cambios en los requisitos y
especificaciones funcionales. Como una característica de calidad del
software principal, capacidad de mantenimiento se debe especificar,
2.1.3. Análisis de impacto [ 1 *, c5s2.5] [2 *, c13s3] revisado y controlado durante los lazos de desarrollo de software
activi- el fin de reducir los costes de mantenimiento. Cuando se hace
correctamente, el mantenimiento del software mejorará. La
Análisis de impacto describe cómo llevar a cabo, de manera rentable, mantenibilidad es a menudo difícil de lograr debido a las
un análisis completo del impacto de un cambio en el software subcaracterísticas menudo no son un foco importante durante el
existente. Mantenedores deben poseer un conocimiento profundo de proceso de desarrollo de soft- ware. Los desarrolladores están, por
la estructura y el contenido del software. Ellos usan este conocimiento lo general, más preocupados con muchas otras actividades y con
para llevar a cabo análisis de impacto, que identifica a todos los frecuencia propensos a ignorar las exigencias del mantenedor. Esto
sistemas y productos de software afectadas por una solicitud de a su vez puede, ya menudo lo hace, dar lugar a una falta de
cambio de software y desarrolla una estimación de los recursos documentación de software y entornos de prueba, que es una de las
necesarios para llevar a cabo el cambio. Además, se determina el principales causas de los lazos dificultades en la comprensión del
riesgo de hacer el cambio. La solicitud de cambio, a veces se llama programa y análisis de impacto posterior. La presencia de procesos
una petición de modificación (MR) y, a menudo llamado un informe de sistemáticos y maduros, técnicas y herramientas de ayuda para
problemas (PR), primero debe ser analizado y traducido en términos mejorar la capacidad de mantenimiento de software.
de software. Análisis de impacto se realiza después de una solicitud
de cambio entra en el proceso de gestión de la configuración soft-
ware. IEEE 14764 establece las tareas de análisis de impacto:
• obtener la aprobación de la opción de modificación seleccionado. inicial es por lo general basado en proyectos, con una escala de tiempo
La gravedad de un problema a menudo se utiliza para decidir Por el contrario, el mantenimiento de software a menudo tiene el objetivo
cómo y cuándo va a ser fijo. El ingeniero de soft- ware a de extender la vida de software para el mayor tiempo posible. Además,
continuación, identifica los componen- tes afectados. Se puede ser impulsado por la necesidad de satisfacer la demanda del
proporcionan varias soluciones posibles, seguido de una usuario para las actualizaciones y mejoras del software. En ambos casos,
recomendación sobre el mejor curso de acción. el retorno de la inversión es mucho menos clara, por lo que la vista en el
Software diseñado con capacidad de mantenimiento en mente facilita consume recursos significativos sin ningún beneficio cuantificable clara
en gran medida el análisis del impacto. más infor- mación se puede para la organización.
de segunda clase”, y por lo tanto, la moral se resiente. La externalización y la deslocalización de software manteni- miento se ha
convertido en una industria importante. Las organizaciones que están
externalizando carteras enteras de software, incluyendo el mantenimiento
2.2.3. Proceso del software. Más a menudo, la opción de la externalización se selecciona
[1 *, c5] [2 *, c5] por menos de software de misión crítica, como las organizaciones no
están dispuestos a perder el control del software utilizado en su negocio
El proceso del ciclo de vida del software es un conjunto de actividades, principal. Uno de los principales retos para los subcontratistas es
métodos, prácticas y transformaciones que PEO uso PLE para determinar el alcance de los servicios de mantenimiento requeridos, los
desarrollar y mantener el software y sus productos asociados. A nivel términos de un acuerdo de nivel de ser- vicio, y los detalles contractuales.
de proceso, las actividades de mantenimiento de software tienen Subcontratistas tendrán que invertir en una infraestructura de
mucho en común con el desarrollo de software (por ejemplo, gestión de mantenimiento y el servicio de asistencia en el sitio remoto debe contar
configuración de software es una actividad crucial en ambos). El con personal con hablantes de lengua nativa. La externalización requiere
mantenimiento también requiere varias actividades que no se una inver- sión inicial importante y la configuración de un proceso de
encuentran en desarrollo de software (ver sección 3.2 en actividades mantenimiento que requerirá la automatización.
únicas para más detalles). Estas actividades presentan desafíos para la
gestión.
Aspectos organizativos describen cómo iden- tificar qué mantenimiento de software, expuestos anteriormente, con el fin de abordar
organización y / o función será responsable del mantenimiento la cuestión de ing realizan estimaciones del costo de mantenimiento de
del software. El equipo que desarrolla el software no está software. Para fines de planificación, estimación de costos es un aspecto
necessar- ily asignado para mantener el software una vez que importante de la planificación para el mantenimiento del software.
esté en funcionamiento.
2.3.2. Los modelos paramétricos modelo de calidad sugiere medidas que son específicos para el
[2 *, c12s5.6] mantenimiento del software. Medidas para la carac- subchar- de
mantenimiento incluyen la si- guiente [4 *, p. 60]:
el modelo de costos paramétricos (modelos matemáticos) se ha
aplicado al mantenimiento del software. De significación es que se
necesitan datos históricos del pasado de manteni- miento con el fin de • Analizabilidad: medidas de esfuerzo o recursos utilizados en el
usar y calibrar los modelos matemáticos. atributos generador de intento, ya sea para diagnosticar deficiencias o causas de fallo
costos afectan las estimaciones. o para identificar las partes del mantenedor a ser modificados.
expe- riencia. El coste para llevar a cabo una modificación (en términos los usuarios en el intento de probar el software modificado.
El mantenedor debe determinar qué medidas son adecuadas para • implementación de procesos,
una organización específica basada en el propio contexto de esa • problema y el análisis de la modificación,
organización. El software • aplicación modificación,
5-8 Guía SWEBOK® V3.0
• opinión de mantenimiento / aceptación, actividades y tareas son responsabilidad del mantenedor. Como ya se ha
• migración y señalado, muchas actividades de mantenimiento son similares a las del
• Retirada del software. software de Desa- ción. Mantenedores de realizar el análisis, diseño, ing
de bacalao, pruebas y documentación. Deben realizar un seguimiento de
los requisitos en sus actividades al igual que se hace en la documentación
de desarrollo y actualización a medida que cambian las líneas de base.
IEEE 14764 recomienda que cuando un mantenedor utiliza un proceso de
desarrollo, debe ser adaptada para satisfacer las necesidades específicas
[1 *, c5s3.2.2]. Sin embargo, para el mantenimiento del software, algunas
actividades implican procesos únicos para el mantenimiento del software.
Figura 5.2. Proceso de Mantenimiento de Software • Transición: una secuencia controlada y coordinada de las
actividades durante el cual el software se transfiere
Otros modelos de procesos de mantenimiento incluyen: progresivamente de la oper desa- al mantenedor.
• espiral, que solicitan trabajo más allá de un CER Tain tamaño / esfuerzo /
de los servicios de manteni- miento. Mejoras para el proceso de por un cambio potencial;
mantenimiento del software se apoya en modelos especializados • Acuerdos de mantenimiento de nivel de servicio (SLA) y
capacidad de mantenimiento de software de vencimiento (ver [6] y licencias de mantenimiento y con- tratos: acuerdos
[7], que están anotados brevemente en la sección Lecturas Además). contractuales que describen los servicios y los objetivos
de calidad.
y las auditorías. Otra actividad importante apoyo consiste en la • identificación de la organización de mantenimiento de
formación de los mantenedores y usuarios. software, y
• estimación de los costes de mantenimiento de software.
3.2.5. Calidad del software 4.3. Ingeniería inversa[ 1 *, c6s2] [2 *, c7, c14s5]
[1 *, c6s5, c6s7, c6s8] [2 *, c12s5.3]
No es suficiente con la esperanza de que una mayor calidad tendrá La ingeniería inversa es el proceso de análisis de software para
como resultado del mantenimiento de soft- ware. Mantenedores identificar los componentes del software y sus interrelaciones y
deben tener un programa de cali- dad de software. Se debe crear representaciones del software en otra forma o en los
planificarse y procesos debe ser implementado para apoyar el niveles más altos de abstracción. Reverse Engineer- ing es
proceso de mantenimiento. Las actividades y técnicas para la Cesión pasivo; no cambia el software o dar lugar a un nuevo software.
de Software Quality Assurance (SQA), V & V, opiniones y auditorías Invertir Engineer- esfuerzos ing producen gráficos de llamada y
deben ser seleccionados de común acuerdo con todos los demás gráficos de flujo de control de código fuente. Un tipo de
procesos para alcanzar el nivel deseado de calidad. También se ingeniería inversa es redocumentación. Otro tipo es la
recomienda que el tainer man- adaptar el desarrollo de software recuperación de diseño. Por último, los datos inversa inge-
procesos, técnicas y resultados (por ejemplo, la documentación de la niería, donde los esquemas lógicos son recuperados de bases
prueba), y los resultados de las pruebas. Más detalles se pueden de datos físicos, ha crecido en importancia en los últimos años.
encontrar en la calidad del software KA. Las herramientas son clave para inge- niería inversa y tareas
relacionadas, como redocumenta- ción y recuperación de
diseño.
4. Técnicas de Mantenimiento
Este tema se presentan algunas de las técnicas generalmente aceptados 4.4. Migración
utilizados en el mantenimiento del software. [1 *, c5s5]
4.1. programa de Comprensión Durante la vida de software, que puede tener que ser modificada
[2 *, c6, c14s5] convenientemente para funcionar en entornos diferentes. Con el fin de
migrar a un nuevo entorno, el responsable tiene que determinar las
Los programadores pasan considerable tiempo a la lectura y la acciones necesarias para la migración cumpla cabalmente, y luego
comprensión de los programas con el fin de implementar los cambios. desarrollar y docu- mento los pasos necesarios para llevar a cabo la
navegadores de código son herramientas clave para la comprensión del migración en un plan de migración que cubre la migración tos requisitos,
programa y se utilizan para organizar y código fuente ent PRESION. herramientas de migración, conversión de producto y datos, la ejecución,
documentación clara y concisa también puede ayudar en la comprensión la verificación, y el apoyo. Migración de software también puede implicar
del programa. una serie de actividades adicionales, tales como
4.2. reingeniería
[2 *, c7]
• notificación de la intención: una declaración de por qué
Reingeniería se define como el examen y la alteración de software para el antiguo entorno ya no ser Apoyado, seguida de una
reconstituir en una nueva forma, e incluye el ción ¡Ejecución posterior descripción del nuevo entorno y su fecha de
de la nueva forma. A menudo no se lleva a cabo para mejorar la disponibilidad es;
mantenibilidad, pero para reemplazar el envejecimiento de software • operaciones paralelas: poner a disposición los viejos y
ACY pierna-. Refactoring es una téc- nica reingeniería que pretende nuevos entornos de modo que el usuario experimenta
reorganizar un programa sin cambiar su comportamiento. Se trata de una transición suave al nuevo entorno;
mejorar una estructura pro- grama y su facilidad de mantenimiento. ING
técnicas Refactor- se pueden utilizar durante los cambios de menor • notificación de finalización: cuando se haya completado la
importancia. migración ULed sched-, se envía una notificación a todos los
interesados;
El software de mantenimiento 5-11
• opinión después de la operación: una evaluación de la • rebanadoras de programas, que seleccionan sólo partes de un
operación parale- y el impacto del cambio al nuevo programa afectado por un cambio;
Una vez que el software ha alcanzado el final de su vida ful uso-, el seguimiento de todos los posibles flujos de datos de un programa;
Sneed 2008
[3 *]
[2 *]
[1 *]
1. Fundamentos de mantenimiento
de software
de software
2.2.3. Proceso c5 c5
Sneed 2008
[3 *]
[2 *]
[1 *]
2.3.2. Los modelos paramétricos c12s5.6
3. Proceso de Mantenimiento
c5, c5s3.2.2,
3.2. Actividades de mantenimiento
c6s8.2, c7s3.3
4. Técnicas de Mantenimiento
4.2. reingeniería c7
LECTURAS Referencias
A. abril y A. Abran, Mantenimiento del software [1 *] IEEE Std. 14764-2006 (también conocido como ISO / IEC
Gestión: Evaluación y Mejora Continua [ 6]. 14764: 2006) estándar para el software de ingeniería
en software de ciclo de vida Procesos de
mantenimiento, IEEE 2006.
Este libro explora el dominio de los procesos de mantenimiento de
software pequeños (S3M). Proporciona mapas ROAD- para mejorar [2 *] P. Grubb y AA Takang, Software
cesos pro de mantenimiento de software en las organizaciones. En Mantenimiento: Conceptos y práctica, 2ª ed.,
él se describe un modelo de madurez específica mantenimiento de Editorial Científico Mundial, 2003.
software organizada por niveles que permiten la evaluación
comparativa y la mejora continuas con. Metas para cada área clave [3 *] HM Sneed “, software de Oferta
Tice prác- se proporcionan, y el modelo de proceso de pre-tantes Mantenimiento como un servicio Marino,” Proc. IEEE Conf
está totalmente alineado con la arquitectura y el marco de las Int'l. Mantenimiento del software
normas ISO12207 internacional ISO14764 y ISO15504 y modelos de (ICSM 08), IEEE, 2008, pp. 1-5.
madurez populares como ITIL, COBIT, CMMI y CM3.
[4 *] JW Moore, La hoja de ruta de software
Ingeniería: Una guía basada en estándares,
Wiley-IEEE Computer Society Press, 2006.
M. Kajko-Mattsson, “Hacia un Modelo de Negocio de
Mantenimiento,” IEEE Int'l Conf. Mantenimiento [5] ISO / IEC / IEEE 24765: 2010 Sistemas y
Software [7]. Ingeniería de Software-Vocabulario, ISO / IEC / IEEE
2010.
Este artículo presenta una visión general del modelo de madurez de
mantenimiento correctivas (cm3). A diferencia de otros modelos de [6] A. abril y A. Abran, Software
procesos, CM3 es un modelo espe- cializada, dedicado Gestión de Mantenimiento: evaluación y mejora
exclusivamente al mantenimiento correctivo del software. Se continua, Wiley-IEEE Computer Society Press,
considera que el mantenimiento en términos de las actividades a 2008.
realizar y su orden, en función de la información utilizada por estas
actividades, metas, reglas y motivaciones para su ejecución, y los [7] M. Kajko-Mattsson, “Hacia un negocio
niveles de organización y roles involucrados en las distintas etapas Mantenimiento Modelo” Proc. Int'l Conf.
de un proceso típico de mantenimiento correctivo. Mantenimiento del software, IEEE, 2001, pp. 500-509.
CAPÍTULO 6
/ CMMI Madurez de Capacidades del Software de gestión de proyectos, desarrollo y mantenimiento, actividades de
Engineering Institute Modelo de Integración SQA aseguramiento de la calidad, así como los clientes y usuarios del
producto final.
6-1
6-2 Guía SWEBOK® V3.0
Las actividades de la SCM son la gestión y la Planificación del el desarrollo y el cambio aplicación activi- lazos. Una
proceso de SMC, identificación de la configuración de software, el implementación exitosa de SMC requiere una planificación y
control de la configuración de software, la contabilidad de estado de una gestión cuidadosa. Esto, a su vez, requiere una
configuración de software, auditoría de configuración de software, y la comprensión del contexto de la organización para, y las
gestión de versión de software y la entrega. limitaciones impuestas a, el diseño y la implementación del
proceso de SMC.
El software de configuración de administración de KA se
relaciona con los demás Kas, ya que el objeto de la gestión de 1.1. Contexto de organización de SMC
la configuración es el artefacto pro ducido y utilizado en todo el [2 *, c6, Ann. D] [3 *, la introducción] [4 *, c29]
software de inge- niería proceso.
Para planificar un proceso de SMC para un proyecto, es preciso
proceder a entender el contexto de la organización y las relaciones
DISTRIBUCIÓN DE TEMAS PARA LA entre los elementos de la organización. SMC interactúa con otras
GESTIÓN DE CONFIGURACIÓN DEL actividades o elementos de la organización.
SOFTWARE
Los elementos de la organización responsable de la ingeniería de
El desglose de los temas para el Config- Software de Gestión software procesos de apoyo pueden estructurarse de varias
URACIÓN KA se muestra en la Figura 6.1. maneras. Aunque la responsabili- dad para realizar ciertas tareas
SCM podría ser asignado a otras partes de la organización (por
1. Gestión del Proceso de SMC ejemplo, la organización de desarrollo), el responsa- bilidad global
para SCM menudo recae en un elemento zational orga- distinta o
SCM controla la evolución y la integridad de un producto mediante la persona designada. El software se desarrolló con frecuencia como
identificación de sus elementos; la gestión y el control del cambio; y parte de un sistema más grande que contiene los elementos de
verificar, grabación, y la información sobre la información de hardware y firmware. En este caso, las actividades se llevan a cabo
configuración. Desde la perspectiva del ingeniero de software, SCM SCM
facilita
Configuración del software 6-3 Gestión
en paralelo con hardware y firmware CM activi- dades y deben ingeniería emitido por las diversas normas orga- nizaciones
ser compatibles con el sistema de nivel (ver Apéndice B de las normas).
CM. Tenga en cuenta que el firmware contiene hardware y software;
Por lo tanto, ambos conceptos CM de hardware y software son 1.3. La planificación de SMC
aplicables. [2 *, c6, Ann. D, Ann. E] [3 *, c23] [4 *, c29]
SMC podría interactuar con la actividad de aseguramiento de la
calidad de una organización en temas como la gestión de registros y La planificación de un proceso de SMC para un proyecto dado debe ser
elementos no conformes. Respecto al primero, algunos artículos bajo coherente con el contexto organiza- zational, las restricciones
control SMC también pueden incluir datos sobre los proyectos sujetos a aplicables, comúnmente aceptado orientación com-, y la naturaleza del
las disposiciones del programa de garantía de calidad de la organización. proyecto (por ejemplo, el tamaño, la criticidad de seguridad, y la
La gestión de elementos no conformes es aliado no baja de la seguridad). Las principales actividades cubiertas son la identificación
responsabilidad de la actividad de aseguramiento de la calidad; Sin del software de configuración, control de configuración de software, la
embargo, SCM puede ayudar con pista- ing e informar sobre los contabilidad de estado de configuración de software, auditoría de
elementos de configuración de software que caen en esta categoría. configuración de software, y la gestión de versión de software y la
entrega. Además, cuestiones como la organización y
responsabilidades, recursos y horarios, la selección de herramientas y
Tal vez la relación más estrecha es con el desarrollo de software y la aplicación, el control de proveedores y subcontratistas, y el control
mantenimiento or- nizaciones. Es dentro de este contexto que de la interfaz son típicamente sidered con-. Los resultados de la
muchas de las tareas de control de la configuración del software se actividad de planificación se registran en un Plan de SCM (SCMP), que
con- canalizado. Con frecuencia, las mismas herramientas soportan es Tıpicamente sujeto a SQA revisión y auditoría. Ramificación y las
desa- rrollo, el mantenimiento y los propósitos de SCM. estrategias que se fusionan deben ser cuidadosamente planeado y
comunicado, ya que impactan en muchas actividades de la SCM.
Desde el punto un SCM stand-, una rama se define como un conjunto
1.2. Limitaciones y orientación para el proceso SMC de la evolución de versiones de archivo fuente [1]. La fusión consiste
en la combinación de diferentes cambios en el mismo archivo [1]. Este
[2 *, c6, Ann. D, Ann. E] [3 *, C2, C5] Tıpicamente se produce cuando más de una persona cambia de un
[5 *, c19s2.2] elemento de configuración. Hay muchas estrategias de ramas y la
mezcla de uso común (véase la sección Lecturas adicionales para una
Limitaciones que afectan, y una guía para el proceso de SMC discusión adicional). El modelo de ciclo de vida de desarrollo de
provenir de varias fuentes. normativas y procedimientos de exponen software (véase el ciclo de vida del software Modelos en el proceso de
a niveles de organización corporativos u otros podrían influir o ingeniería de software KA) también afecta SCM actividades, y la
prescribir el diseño y la implementación del pro- ceso SMC para un planificación SMC debe tener esto en cuenta. Por ejemplo, la
proyecto determinado. Además, el contrato entre el comprador y el integración continua es una práctica común en muchos enfoques desa-
proveedor podría con- disposiciones Tain que afectan el proceso de rrollo de software. Por lo general se caracteriza por ciclos de
SMC. Por ejemplo, podrían ser necesarias ciertas auditorías de acumulación de prueba de implementar frecuentes. SCM actividades
configuración, o puede ser especificado que ciertos artículos pueden deben planificarse en consecuencia.
colocar bajo CM. Cuando los productos de software para ser
desarrollados tienen el potencial de afectar a la seguridad pública,
los organismos reguladores externos pueden imponer limitaciones.
Por último, el proceso del ciclo de vida del software particular elegido
para un proyecto de software y el nivel de formalismo seleccionado
para implementar el software afecta al diseño y la implementación
del proceso de SMC.
1.3.1. Organización y responsabilidades SMC
[2 *, Ann. DS5, Ann. DS6] [3 *, c10-11]
[4 *, introducción, c29]
Una guía para el diseño y la implementación de un proceso de SMC
también se puede obtener de “mejores prácticas”, como se refleja en Para evitar la confusión sobre quién llevará a cabo las actividades
las normas sobre el software o tareas SCM dados, de la organización
6-4 Guía SWEBOK® V3.0
papeles para que participen en el proceso de SMC deben ser • Futuro: ¿cuál es el plan para el uso de las herramientas en el
actividades o tareas SCM dados también tienen que ser asignados a • Cambiar: su capacidad de adaptación son las herramientas?
entidades de organización, ya sea por título o por el elemento de la • Ramas y la mezcla: son capaci- dades de dichas herramientas
organización. Los informes dad y canales globales de Autor-SMC compatibles con el ing rama-planificada y estrategias de la
también deben ser identificados, aunque esto puede ser logrado en la fusión?
etapa de planificación de la gestión de proyectos o la garantía de • Integración: hacer las diferentes herramientas de SCM inte-
calidad. rejilla entre sí? Con otras herramientas en uso en la
organización?
• Migración: el repositorio puede mantenida por la herramienta de
1.3.2. Recursos SCM y horarios control de versiones ser portado a otra herramienta de control de
[2 *, Ann. DS8] [3 *, c23] versiones, manteniendo la historia com- pleta de los elementos de
configuración que contiene?
La planificación de SMC identifica el personal y las herramientas que
cuestiones de programación mediante el establecimiento de secuencias SMC por lo general requiere un conjunto de herramientas, en lugar de
necesarias tareas de SCM y que identifique los valores de sus relaciones una sola herramienta. Tales conjuntos de herramientas son algunas veces
con los programas de los proyectos y los hitos establecidos en el proyecto referidos como bancos de trabajo. En un texto tan con-, otra consideración
de manage- ment etapa de planificación. También se especifican los importante en la Planificación para la selección de la herramienta es
requisitos de formación necesarios para la ejecución de los planes y la determinar si el banco de trabajo SMC será abierto ( en otras palabras, las
formación de los nuevos miembros del personal. herramientas de diferentes proveedores serán utilizados en diferentes
1.3.3. Herramienta de selección e implementación (Donde se han diseñado elementos del banco de trabajo para trabajar
[3 *, c26s2, c26s6] [4 *, c29s5] juntos).
El tamaño de la organización y el tipo de proyectos que participan
En cuanto a cualquier área de la ingeniería de software, la selección e también puede afectar a la selección de herramientas (ver tema 7,
implementación de herramientas de SCM deben ser cuidadosamente Configuración de Software Manage- Herramientas Ment).
planificadas. Los siguientes pre- guntas deben ser considerados:
• Financiación: ¿quién va a pagar por la adquisición, el mantenimiento Consideraciones similares se aplican al software subcontratado.
de las herramientas, entrenar y Al utilizar el software de subcontratación, tanto los requisitos de
personalización? SCM a ser impuestas sobre el proceso de SMC del subcontratista
• Alcance: cómo se deployed- las nuevas herramientas, por como parte del subcontrato y los medios para vigilar pliance com-
ejemplo, a través de toda la organización o sólo en proyectos necesitan ser establecidos. Este último incluye la consideración de
específicos? lo que debe estar disponible para la vigilancia del cumplimiento
• Propiedad: ¿quién es el responsable de la introducción de nuevas efectivo de información SMC.
herramientas?
Configuración del software 6-5 Gestión
1.3.5. control de interfaz • Horarios de SCM (coordinación con otras actividades del
[2 *, c12] [3 *, c24s4] proyecto)
• Recursos SCM (herramientas, recursos físicos y recursos
Cuando un elemento de software de interfaz con otro elemento de humanos)
software o hardware, un cambio a cualquiera de elemento puede • Mantenimiento SCMP.
afectar al otro. La planificación para el proceso SMC considera
cómo se identificarán los elementos de interfaz y cómo se gestionen 1.5. La vigilancia de la Gestión de la Configuración de
y cambios en los elementos. El papel SCM puede ser parte de un Software
proceso de sistema de nivel más grande para la especificación y [3 *, c11s3]
control de la interfaz; puede tratarse de especificaciones de interfaz,
planes de control de interfaz, y los documentos de control de Después del proceso de SMC se ha implementado, un cierto grado
interfaz. En este caso, la planificación de SMC para el control de la de vigilancia puede ser necesario para garantizar que las
interfaz tiene lugar dentro del contexto del proceso de nivel del disposiciones de la PGCS se realicen adecuadamente. No es
sistema. probable que sean los requisitos especí- SQA espe- para garantizar
el cumplimiento de los procesos y procedimientos especificados
SCM. La persona responsable de SMC asegura que los que tienen
la responsabilidad de realizar las tareas asignadas SCM definidos
1.4. Plan de SMC [ 2 *, Ann. D] [3 *, c23] [4 *, c29s1] correctamente. La autoridad de control de calidad de software, como
parte de una actividad de auditoría El cumplimiento, también puede
realizar esta vigilancia.
Los resultados de la planificación SMC para un proyecto dado se
registran en una configuración de software manage- ment Plan
(SCMP), un “documento vivo” que sirve como referencia para el El uso de herramientas de SCM integrados con capacidad de control
proceso de SMC. Se mantiene (es decir, actualizada y aprobada) de procesos puede hacer más fácil la tarea de vigilancia. Algunas
según sea necesario durante el ciclo de vida del software. En herramientas facilitan el proceso pliance com- mientras que proporciona
Menting imple- PGCS, normalmente es necesario desarrollar una flexibilidad para el ingeniero de soft- ware para adaptar los
serie de procedimientos más detallados, subordinados que define procedimientos. Otras herramientas de cumplir proceso, dejando el
cómo los requisitos específicos se llevará a cabo durante ingeniero de software con menos flexibilidad. requisitos de vigilancia y el
actividades- del día a día, por ejemplo, que se utilizarán estrategias nivel de flexibilidad para ser proporcionados al ingeniero de software son
de ramificación y con qué frecuencia se basa ocurrir y auto-pruebas consideraciones importantes en la selección de herramientas.
apareadas de todo tipo se ejecutan.
ideas que lleva a procesar los cambios y actualizaciones Esto implica la comprensión de la configuración del software en el contexto
Bibliotecas de software y las diversas posibilidades de configuración de software, desarrollo de una estrategia para los elementos
herramientas SCM proporcionan fuentes para extraer información de software de etiquetado y la descripción de sus relaciones, y la
acerca de las características del proceso de SMC (así como el identificación tanto de las líneas de base a ser utilizados y el procedimiento
suministro de información agement hombre-proyecto y). Por para la adquisición de una línea de base de los artículos.
debe considerar la necesidad de asignar elementos identificados a la líneas de base. La línea de base funcional corresponde a los
estructura del software, así como la necesidad de apoyar la requisitos del sistema revisado. La línea de base asignarse los
evolución de los elementos de software y sus relaciones. corresponde a la especificación de requisitos de software y los
requisitos de la interfaz de software revisado. La línea de base del
desarrollo representa la configuración de software que evoluciona a
2.1.4. Versión del software la hora seleccionada durante el ciclo de vida del software. Cambio
[1, c3] [4 *, c29s3] autoridad de esta línea de base normalmente recae principalmente
en la organización de desarrollo, sino que puede ser compartida
los elementos de software evolucionar como Ceeds pro de proyectos de con otras organizaciones (por ejemplo, SMC o de prueba). La línea
software. Una versión de un elemento de software es una instancia de base del producto se corresponde con el producto de software
identifica- do de un elemento. Puede ser considerado como un estado de para la integración completado entregado sis- tema. Las líneas de
un elemento en evolución. Una variante es una versión de un programa base a utilizar para un proyecto dado, junto con los niveles
resultante de la aplicación de la diversidad soft- ware. asociados de autoridad necesario para la aprobación del cambio,
son Tıpicamente identificado en el SCMP.
2.1.5. Base
[1, c3]
Una línea de base software es un aprobado formalmente ver- sión de un 2.1.6. La adquisición de elementos de configuración de software
elemento de configuración (con independencia de los medios de [3 *, c18]
comunicación) que se designa formalmente y se fija en un momento
específico durante el ciclo de vida del elemento de configuración. El los elementos de configuración de software se colocan bajo control
término también se utiliza para referirse a una ver- sión particular de un SCM en diferentes momentos; es decir, que se incorporan en una línea
elemento de configuración de software que ha sido acordado. En cualquier de base en particular en un punto particular en el ciclo de vida del
caso, la línea de base sólo puede modificarse a través de procedimientos software. El evento desencadenante es la realización de algún tipo de
trol das a cambios formales. Una línea de base, junto con todos los tarea formal de aceptación, tales como una revisión formal. Figura
cambios aprobados en la línea de base, representa la configuración actual
de los elementos cambiantes. La solicitud de cambio de software (SCR) se qué cambios hacer, la autoridad de approv- ing ciertos cambios,
describe en la sección 3.1. el apoyo a la ción ¡Ejecución de esos cambios, y el concepto de
En la adquisición de un SCI, se deben establecer su origen y desviaciones formales de los requisitos del proyecto, así como
integri- dad inicial. Después de la adquisi- ción de un SCI, cambios exenciones de ellos. La información derivada de estas
en el elemento debe ser formalmente aprobado como adecuado para actividades es útil en la medición de tráfico el cambio y la rotura,
el SCI y la línea de base que participan, como se define en el PGCS. así como los aspectos de reproceso.
Después de la aprobación, el elemento se incorpora en la línea de
base software de acuerdo con el procedimiento adecuado.
3.1. Solicitar, evaluar y cambios que aprueba
Software
[2 *, c9s2.4] [4 *, c29s2]
2.2. software Library
[3 *, c1s3] [4 *, c29s1.2] El primer paso en la gestión de los cambios a los artículos
controlados es determinar qué cambios hacer. El proceso de solicitud
Una biblioteca de software es una colección controlada de software y la de cambio de software (véase un flujo típico de un proceso de
documentación relacionada diseñado para ayudar en el desarrollo de solicitud de cambio en la figura 6.3) proporciona procedimientos
software, uso o mantenimiento [1]. También es fundamental para la formales para la presentación y el registro de las solicitudes de
versión de software agement hombre- y actividades de entrega. Existen cambio, evaluar el costo TiAl poten- y el impacto de un cambio
varios tipos de bibliotecas podrían ser utilizados, cada uno correspondiente propuesto, y aceptar, modificar, difiriendo, o rechazar el cambio
a nivel particular del elemento de software de madurez. Por ejemplo, una propuesto. Una solicitud de cambio (CR) es una petición para
biblioteca de trabajo podría apoyar la codificación y una biblioteca de expandir o reducir el alcance del proyecto; modificar las políticas,
soporte proyecto podría apoyar de Exámenes, mientras que una librería procesos, planes o procedimientos; modificar los costos o
maestra podría ser utilizado para productos termi- nado. Un nivel presupuestos; o horarios Revisar [1]. Las solicitudes de cambios en
adecuado de SCM trol con- (línea de base y el nivel de autoridad para el el software artículos con- figuración pueden ser originados por
cambio asociado) está asociado con cada biblioteca. Seguridad, en cualquier persona en cualquier momento del ciclo de vida del
términos de control de acceso y las instala- copia de seguridad, es un software y pueden incluir una propuesta de solución y la prioridad
aspecto clave de la gestión de la biblioteca. La herramienta (s) que se solicitada. Una fuente de un CR es el inicio de una acción correctiva
utiliza para cada biblioteca debe ser compatible con las necesidades de en respuesta a los informes de problemas. Independientemente de la
control de SMC para esa biblioteca, tanto en términos de control de LIC y fuente, el tipo de cambio (por ejemplo, defecto o mejora) que se
controlar el acceso a la biblioteca. A nivel biblioteca de trabajo, se trata de registra en el CR Software (SCR).
una capacidad de gestión de código que sirve Desa- ERS, mantenedores,
múltiples desarrolladores. En los niveles más altos de control, el acceso es Esto proporciona una oportunidad para el seguimiento de
más restringida y SCM es el usuario principal. defectos y la recolección de las mediciones de actividad por tipo de
cambio de cambio. Una vez que se recibe una SCR, una evaluación
técnica (también conocido como un análisis de impacto) se lleva a
cabo para determinar la extensión de las modificaciones que serían
necesarias se debe aceptar la solicitud de cambio. Una buena
Estas bibliotecas son también una importante fuente de comprensión de las relaciones entre el software (y, posiblemente, el
información para las mediciones de trabajo y progreso. hardware) elementos es importante para esta tarea. Por último, una
autoridad realizó medición-com- establecida con la línea de base
afectada, el SCI involucrados, y la naturaleza del cambio evaluará
3. Control de Configuración de Software los aspectos técnicos y de gestión de la solicitud de cambio y, o
[2 *, c9] [4 *, c29s2] bien aceptar, modificar, rechazar o posponer el cambio propuesto.
3.1.1. Junta de Control de Configuración de Software decisiones CCB, y la información del proceso de cambio que se informa.
[2 *, c9s2.2] [3 *, c11s1] [4 *, c29s2] Un vínculo entre esta capacidad de la herramienta y el sistema de reporte
de problema puede facilitar el seguimiento de soluciones para problemas
La autoridad para aceptar o rechazar los cambios propuestos se detectados.
apoya con una entidad típicamente conocida como un tablero de
control de configuración (CCB). En proyectos más pequeños, esta 3.2. Cambios en el software de aplicación
autoridad puede residir de manera efectiva con el líder o una persona [4 *, c29]
asignada en lugar de una tabla con varias personas. Puede haber
varios niveles de autoridad cambian dependiendo de una variedad de SCRs aprobados se implementan utilizando los procedimientos de
terios teria, tales como el carácter crítico del tema planteado y la software definidos de acuerdo con los requisitos de programación
naturaleza del cambio (por ejemplo, impacto en el presupuesto y el aplicables. Puesto que un número de SCRs aprobados podría
calendario), o punto actual del proyecto en la vida ciclo. La implementarse de forma simultánea, es necesario proporcionar un
composición de los CCBs se utilizan para un sistema dado varía en medio para el seguimiento que SCRs se incorporan en las
función de estos criterios (un representante SCM siempre estaría versiones de software particulares y líneas de base. Como parte
presente). Todos los interesados, de acuerdo al nivel de la CCB, están del cierre del proceso de cambio, cambios pletó com- pueden
representados. Cuando el alcance de la autoridad de un CCB es someterse a auditorías de configuración y la calidad del software
estrictamente cerámica blandas, que se conoce como una Junta de de verificación-Esto incluye garantizar que se han realizado
Control de Configuración de Software (SCCE). Las actividades de la cambios aprobados. El proceso de solicitud de cambio de software
CCB son típicamente sujetos a auditoría o revisión de calidad del descrito anteriormente por lo general documentará el SMC (y otra)
software. información de aprobación para el cambio.
3.1.2. Software Proceso de Solicitud de Cambio código fuente sión ver-. Estas herramientas permiten a un equipo de
Una solicitud de cambio de software eficaz (SCR) proceso requiere herramientas proporcionan un único repositorio para almacenar el código
el uso de herramientas de apoyo y procedi- mientos para originar fuente, puede evitar más de un ingeniero de soft- ware de la edición del
las solicitudes de cambio, enforc- ing el flujo del proceso de mismo módulo, al mismo tiempo, y registrar todos los cambios realizados
cambio, la captura en el
6-10 Guía SWEBOK® V3.0
código fuente. Los ingenieros de software de verificación módulos del sistema de información, la información de estado de configuración para
repositorio, hacer cambios, documentar los cambios, a continuación, ser administrado por los las configuraciones cambiantes deben ser
guarde los módulos editados en el repositorio. Si es necesario, los identificados, recogidos, y mantenido. Diversa información y las
cambios también pueden ser descartados, la restauración de una línea mediciones son necesarias para apoyar el proceso de SMC y para cumplir
de base anterior. herramientas más potentes pueden apoyar el con el estado de con- figuración necesidades de información de gestión,
desarrollo paralelo y entornos distribuidos geográficamente. Estas ingeniería de software, y otras actividades relacionadas. Los tipos de
herramientas se pueden manifestar como aplicaciones información disponibles incluyen la identificación de la configuración
independientes, especializados bajo el control de un grupo aprobada, así como la identificación y tus implementación actual de esta-
independiente SMC. También pueden aparecer como una parte cambios, desviaciones, y las renuncias. Alguna forma de soporte de la
integrada del entorno de la ingeniería de software. Por último, pueden herramienta automatizada es preciso proceder para llevar a cabo la
ser tan elemental como un sistema de control de cambios rudimentaria recogida de datos SCSA y tareas de informes; esto podría ser una
provisto de un sistema operativo. capacidad de base de datos, una herramienta independiente, o una
capacidad de un entorno de herramientas más amplio e integrado.
podría contener disposiciones que no pueden ser satisfechas en el punto información reportada puede ser utilizado por varios elementos,
designado en el ciclo de vida. Una desviación es un rización autori- escrita, incluyendo los proyectos de organización y el equipo de desarrollo, el
otorgada con anterioridad a la fabricación de un elemento, para apartarse equipo de mantenimiento, gestión de proyectos, y la calidad del
de una actuación en particular o requisito de diseño para un número software activi- dades. Informes pueden tomar la forma de Que- hoc
determinado de unidades o un período específico de tiempo. Una renuncia Ries anuncios para responder a preguntas específicas o la producción
es un diez autorización ESCRITO para aceptar un elemento de periódica de informes prediseñados. Algunos infor- mación producida
configuración o de otro elemento designado que se encuentra, durante la por la actividad contable de estado durante el curso del ciclo de vida
produc- ción o después de haber sido presentado para su inspección, a podría convertirse en los registros de control de calidad.
apartarse de los requisitos especificados, pero se considera ertheless nev-
aprobado. En estos casos, un proceso formal se utiliza para obtener la Además de informar el estado actual de la configuración, la
aprobación de las desviaciones de las renuncias, o de, las disposiciones. información obtenida por el SCSA puede servir como base de
diversas mediciones. Los ejemplos incluyen el número de
solicitudes de cambio por SCI y el tiempo medio necesario
para ejecutar una solicitud de cambio.
notificación de la informa- ción necesaria para gestionar una producto de trabajo o conjunto de productos de trabajo para evaluar el
4.1. Software de información de estado de configuración proceso bien definido que consiste en diversas funciones y
Los diseños de actividad SCSA y opera un sis- tema para la captura y personas para realizar una variedad de tareas durante un período
presentación de la información necesaria a medida que avanza el ciclo relativamente corto de tiempo. Herramientas de apoyo
la planificación y realización de una auditoría pueden facilitar enormemente la actividad de desarrollo; esto incluye comunicados internos, así como la
el proceso. distribución a los clientes. Cuando diferentes versiones de un elemento de
auditoría de configuración software determina el grado en que software están disponibles para la entrega (tales como versiones para
un elemento satisface las características funcionales y físicas diferentes formas plataformas o versiones con diferentes capacidades),
requeridas. auditorías informal de este tipo puede llevarse a cabo frecuentemente es necesario volver a crear versiones específicas y
en puntos clave del ciclo de vida. Hay dos tipos de auditorías empaquetar los materiales adecuados para la entrega de la versión. La
formales podrían ser requeridos por el contrato que rige (por ejem- biblioteca de software es un elemento clave en la realización de tareas de
plo, en los contratos que cubren software crítico): la Auditoría liberación y entrega.
funcional de configuración (FCA) y la configuración de auditoría
física (PCA). La conclusión con éxito de estas auditorías puede ser
un requisito previo para el establecimiento de la línea base del 6.1. Edificio de software
producto. [4 *, c29s4]
5.1. Software de Auditoría de Configuración Funcional correctas de los elementos de configuración de software, utilizando los
El propósito de la FCA software es para asegurar que el elemento de sistemas con hardware o firmware, el programa ejecutable se entrega a la
software auditado es consistente con sus especificaciones de gobierno. activi- dad de la capacidad del sistema. Construir instrucciones de
La salida de las mercancías de las actividades de verificación y asegurar que las medidas adecuadas de construcción se toman en la
validación blandos (véase Verificación y validación en el software de secuencia correcta. Además de la creación de software para los nuevos
cali- dad KA) es un insumo clave para esta auditoría. lanzamientos, por lo general es también necesaria para SMC para tener la
5.2. Auditoría de Configuración física de software se construye a partir de versiones particulares de herramientas de apoyo,
El propósito de la auditoría de software guración física ción (PCA) es una copia exacta de un elemento de configuración de software
asegurar que la documentación de proyectos y de referencia es previamente construida. En este caso, las herramientas de apoyo y las
consistente con el producto de software como incorporado. instrucciones de construcción asociados deben estar bajo el control de
herramientas.
Como se mencionó anteriormente, las auditorías pueden ser llevadas a Una capacidad de herramienta es útil para la selección de las
cabo durante el proceso de desarrollo para investigar el estado actual de versiones rect angulares del elementos de software para un entorno de
los elementos específicos de la con- figuración. En este caso, una destino dado y para automatizar el proceso de construcción del software
auditoría se podría aplicar a los elementos de línea de base de la muestra de las versiones seleccionadas y datos de configuración apropiados. Para
para asegurar que per- formance es consistente con las especificaciones o proyectos con am- bientes desarrollo paralelos o distribuidos, esta
para asegurar que la documentación evolución sigue siendo compatible capacidad herramienta es necesaria. La mayoría de los entornos de
con el elemento de referencia en desarrollo. ingeniería de software proporcionan esta capacidad. Estas herramientas
varían en complejidad desde que requiere el ingeniero de software para
aprender un lenguaje de script espe- cializada a los enfoques orientados a
6. El software de administración de lanzamientos y gráficos que ocultan gran parte de la complejidad de una instalación de
Entrega acumulación “inteligente”. El proceso de construcción y los productos son
[2 *, c14] [3 *, c8s2] a menudo sub- ject de verificación de la calidad del software. Las salidas
de
En este contexto, lanzamiento se refiere a la distribu- ción de un
elemento de configuración de software fuera
6-12 Guía SWEBOK® V3.0
el proceso de construcción podría ser necesaria para futuras referencias y 7. herramientas de Software
puede convertirse en los registros de control de calidad. [3 *, c26s1] [4 *, c8s2]
6.2. Software de administración de lanzamientos [ 4 *, c29s3.2] Cuando se habla de herramientas Ment manage- de configuración de
software, es útil para clasificarlos. herramientas de SCM se pueden
dividir en tres clases en función del ámbito en el que se proporcionan
gestión de versiones de software abarca la identificación, el apoyo: el apoyo vidual indicación, el apoyo relacionados con el proyecto,
empaquetado, y la entrega de los elementos de un ejemplo de y el apoyo en procesos com- panywide.
producto-para, un programa capaz execut-, documentación, notas de la
versión, y datos de configuración. Teniendo en cuenta que los cambios herramientas de apoyo individual son apropiadas y por lo
de producto pueden producirse de manera continua, una preocupación general suficiente para organizaciones o grupos de desarrollo
por la gestión de la liberación es determinar cuándo deben emitir un de pequeñas y sin variantes de sus productos de software u
comunicado. La gravedad de los problemas abordados por la liberación otras exigencias SCM compleja. Incluyen:
y la medición de la falla den- sidades de las versiones anteriores afectan
a esta decisión. La tarea de envasado debe identificar qué producto
artículos son para ser entregados y luego seleccione las variantes • herramientas de control de versiones: pista, documentar y
correctas de esos elementos, dada la aplica- ción previsto del producto. almacenar elementos de configuración individuales como el código
conoce como un documento de descripción de la versión. Las notas de • Construir herramientas de manipulación: en su forma más simple,
la versión describen típicamente nuevas capacidades, problemas este tipo de herramientas de compilación y enlace para una versión
conocidos y requisitos de plataforma necesarios para el funcionamiento ejecutable del software. Más herramientas avanzadas de
adecuado del producto. El paquete que se lanzará también contiene construcción extracto de la última versión del software de control de
instrucciones de instalación o actualización. Este último puede ser versiones, realizar comprobaciones de cali- dad, ejecutar pruebas
complicado por el hecho de que algunos usuarios actuales podrían tener de regresión, y producir diversos tipos de informes, entre otras
versiones que son varias las viejas versiones. En algunos casos, la tareas.
administración de liberación puede ser necesario con el fin de realizar un • Cambiar las herramientas de control: sobre todo apoyar el control de
seguimiento de la distribución del producto a varios clientes o Sistemas las solicitudes de cambio y eventos noti- ficación (por ejemplo,
de destino, por ejemplo, en un caso donde se requiere el proveedor para cambios en el estado de solicitud de cambio, los hitos alcanzados).
con el fin de asignar los contenidos de liberación de los SCR que se proporcionando soporte para mentos de flujo de trabajo manage-, roles y
han recibido. Esta capacidad herramienta también puede mantener responsabilidades. Ellos son capaces de manejar muchos artículos, datos
información sobre diversas plataformas de destino y en diversos y ciclos de vida. Estas herramientas se suman el apoyo relacionados con
Sommerville 2011
IEEE 828-2012
Moore 2006
Hass 2003
[5 *]
[3 *]
[2 *]
[4 *]
1. Gestión del Proceso de SMC
c6, ann.D,
1.3. La planificación de SMC c23 c29
ann.E
1.3.1. Organización y
ann.Ds5-6 c10-11 introducción c29
responsabilidades SMC
Sommerville 2011
IEEE 828-2012
Moore 2006
Hass 2003
[5 *]
[3 *]
[2 *]
[4 *]
2.1.5. Base
2.1.6. La adquisición de elementos de
c18
configuración de software
3. Control de Configuración de
C9 c29s2
Software
4. Configuración de software de
c10
contabilidad Estado
6. El software de administración de
c14 c8s2 c29s3
lanzamientos y Entrega
7. herramientas de Software
c26s1
Configuración del software de gestión 6-15
LECTURAS Referencias
Stephen P. Berczuk y Brad Appleton, [1] ISO / IEC / IEEE 24765: 2010 Sistemas y
Los patrones de software de gestión de configuraciones: Ingeniería de Software-Vocabulario, ISO / IEC / IEEE
el trabajo en equipo, la integración práctica [ 6]. 2010.
7-1
7-2 Guía SWEBOK® V3.0
Otros aspectos de la gestión de las organizaciones ejercen un Otro aspecto importante de la gestión de la organización son las
impacto en la ingeniería de software (por ejemplo, políticas de la políticas y procedimientos de gestión de personal para la
organización y los procedimientos que constituyen el marco en el contratación, capacitación y mentor personal ing para el desarrollo
que se llevan a cabo proyectos de ingeniería de software). Estas profesional, no sólo a nivel de proyecto, sino también a la Cess Suc a
normativas y procedimientos de pueden necesitar ser ajustado por más largo plazo de una organización. el personal de ingeniería de
los requisitos de software eficaz Desa-, crear y mantener. Además, software pueden presentar retos de formación o gestión de personal
una serie de políticas específicas para la ingeniería de software único (por ejemplo, el mantenimiento de la moneda en un contexto
puede necesitar estar en su lugar o establecido para la gestión eficaz donde la tecno- logía subyacente sufre un cambio rápido y continuo).
de la ingeniería de software a nivel nizational or-. Por ejemplo, las gestión de la comunicación también se menciona a menudo como un
políticas son generalmente necesarios para establecer procesos de aspecto pasado por alto pero importante del rendimiento de las
toda la organización o procedimientos específicos para tareas de personas en un campo en el que es necesaria la comprensión
ingeniería de software, tales como diseño de software, software de precisa de las necesidades del usuario, requisitos de software y
construc- ción, la estimación, el seguimiento y la presentación de diseños de software. Por otra parte, la gestión de carteras, que pro-
informes. Este tipo de políticas son importantes para la gestión porciona una visión de conjunto, no sólo de software actualmente en
efectiva a largo plazo de los proyectos de ingeniería de software en fase de desarrollo en diversos proyectos y programas (proyectos
toda la organización (por ejemplo, el establecimiento de una base integrados), sino también de software previstas y actualmente en uso
constante por el que analizar los resultados anteriores pro- yecto e en una organiza- ción, se deseable. Además, la reutilización de
implementar mejoras). software es la clave
Ingeniería de Software de Gestión de 7-3
deben ser evaluados. Adquisición de software y el uso de así como por las cuestiones relativas al personal (por ejem- plo, la
terceros para desarrollar las prestaciones debe ser planeada y productividad de las personas y los equipos, la dinámica del equipo, y
Equipos, instalaciones y personas deben asignarse los que las 2.6. Gestión de la calidad
tareas identificadas, incluyendo el catión alo de responsabilidades [3 *, c4] [4 *, c24]
para la realización de elementos de variabilidad ous de un proyecto
y el proyecto en general. Una matriz que muestra quién es los requisitos de calidad de software deben ser identifi- cado, tal vez en
responsable de, responsables de, consultado sobre, e informado términos cuantitativos y cualitativos, para un proyecto de software y los
sobre cada una de las tareas se pueden utilizar. La asignación de productos de trabajo asociados. Los umbrales para las mediciones de
recursos se basa en, y limitada por la disponibilidad de recursos y calidad aceptables deben establecerse para cada requisito de calidad de
su uso óptimo, como se software basada en las necesidades de las partes interesadas
Ingeniería de Software de Gestión de 7-7
y expectativas. Procedimientos relacionados con el software en ejemplo, diseño de software, código de software y pruebas de software
curso Garantía de Calidad (SQA) y la mejora de la calidad de los casos) se generan.
durante todo el proceso de desarrollo, y para la verificación y
validación del producto software entregable, también deben 3.2. Software de Adquisición y Gestión de Proveedores
especificarse durante la planificación de la calidad (por ejemplo, Contrato
las revisiones e inspecciones técnicas o de- mostraciones de [3 *, c3, c4]
completado funcionalidad, véase la calidad del software KA).
adquisición de software y contrato de abastecimiento agement
hombre- se ocupa de los aspectos que intervienen en la
contratación con clientes del software desa- rrollo organización que
2.7. Gestión del plan adquieren los productos de trabajo y entregables con los
[3 *, c4] proveedores que suministran productos o servicios a la organización
de ingeniería de software.
Para proyectos de software, donde el cambio es un tación tivas, los
planes deben ser manejados. Administrar el plan de proyecto por lo Esto puede implicar la selección de los tipos apropiados de
tanto debe ser planificada. Planes y procesos seleccionados para el contratos, como el precio fijo, el tiempo y mate- als, de costo más una
desarrollo de software deben ser controlados de forma sistemática, cuota fija, o el costo más gasto de incentivo. Acuerdos con clientes y
revisados, informaron, y, en su caso, revisada. Planes asociados a los proveedores normalmente, un especifican camente el alcance del
procesos de apoyo (por ejem- plo, la documentación, configuración de trabajo y los Ables deliver- e incluyen cláusulas tales como las
software agement hombre- y resolución de problemas) también sanciones de entrega o de no entrega tardía y acuerdos de propiedad
deberían ser manejadas. Informes, seguimiento y control de un intelectual que especifican lo que el proveedor o proveedores están
proyecto debe encajar dentro de la SDLC seleccionado y las realidades ofreciendo y lo que el adquirente es pagar - ing para, además de lo
del proyecto; planes deben tener en cuenta los diversos artefactos que que será entregado y propiedad del adquirente. Para el software está
serán utilizados para la edad causados por el hombre del proyecto. siendo desarrollado por los proveedores (internos o externos a la
organización de desarrollo de software), los acuerdos com-
comúnmente indican los requisitos de calidad de software para la
aceptación del software entregado. Después de que el acuerdo se ha
puesto en marcha, cution eje- del proyecto de acuerdo con los
La promulgación 3. Proyecto de Software términos del acuerdo debe gestionarse (véase el capítulo 12 de SWX,
Gestión de adquisición de software, para más información sobre este
Durante software del proyecto promulgación (también conocidos como tema [2]).
la ejecución del proyecto) los planes se implementan y se promulgan
los procesos incorporados en los planes. En todo momento, debe
haber un enfoque en el cumplimiento de los procesos seleccionados
SDLC, con una expectativa primordial que la adhesión dará lugar a la
exitosa satisfacción de los requisitos de las partes interesadas y el 3.3. Implementación de Proceso de medida
logro de los objeti- vos del proyecto. Fundamental para la [3 *, c7]
incorporación son las actividades de gestión en curso de supervisión,
control-ling, y generación de informes. El proceso de medición debe ser promulgada Duran- el
proyecto de software para asegurar que se recogen los datos
relevantes y útiles (ver secciones 6.2, planificar el proceso de
medición, y 6.3, realizar el proceso de medición).
3.1. Implementación de Planes
[4 *, c2]
3.4. Process monitor
Las actividades del proyecto deben llevarse a cabo en ajustan al [3 *, c8]
plan del proyecto y los planes de apoyo. Recursos (por ejemplo,
personal, tecnología y financiación) son utilizados y productos de La adhesión al plan del proyecto y planes relacionados
trabajo (por debe ser continuamente evaluado y al
7-8 Guía SWEBOK® V3.0
intervalos predeterminados. Además, se deben evaluar los productos y procedimientos de gestión de control de configuración de software y
los criterios pletion com- para cada tarea. Entregables deben ser configuración de software deben ser atendidas (ver el software de
evaluados en términos de sus características requeridas (por ejemplo, a configuración Hombre- agement KA), las decisiones deben ser
través de las inspecciones o mediante la demostración de la documentados y comunicados a todas las partes interesadas, los
funcionalidad de trabajo). gasto esfuerzo, horario de la adherencia, y los planes deben ser revisados y revisados cuando sea necesario, y los
costes hasta la fecha deben ser analizados, y el uso de recursos datos pertinentes registrados ( véase la sección 6.3, Per- formar el
examinados. El perfil de riesgo del proyecto (ver sección proceso de medición).
Los datos de medición deben ser analizados (véase Sta- Análisis En especificado y acordado veces, el progreso hasta la fecha se debe
Statistical en los Fundamentos de Ingeniería KA). El análisis de informar, tanto dentro de la organiza- ción (por ejemplo, a un co- mité
varianza basado en la desviación de real de los resultados y valores de dirección del proyecto) y para los colaboradores externos (por
esperados debe ser determinado. Esto puede incluir los excesos de ejemplo, clientes o usuarios). Los informes deben centrarse en las
costes, cronograma deslizamiento, u otras medidas similares. necesidades de información del público objetivo en comparación con
identificación y análisis de los datos de calidad y otra de medición el estado detallado de informes dentro del equipo del proyecto.
de valores atípicos se deben realizar (por ejemplo, análisis de
defectos; ver Software Medición de la Calidad en el Software
Quality KA). exposiciones de riesgo deben ser recalculados (ver
sección 2.5, Gestión de Riesgos). Estas actividades pueden permitir 4. Revisión y Evaluación
la detección del problema e identificación excepción basada en
umbrales que se han superado. Los resultados deben ser En tiempos pre-especificados y según sea necesario, reso general
reportados cuando se han superado los umbrales, o según sea prog- hacia el logro de los objetivos planteados y la satisfacción de las
necesario. partes interesadas (usuarios y clientes) requisitos deben ser
evaluados. Del mismo modo, las evaluaciones de la eficacia del
proceso de software, el personal involucrado, y las herramientas y
métodos empleados también deben llevarse a cabo larmente REG y
3.5. Control de procesos como determinados por las circunstancias.
[3 *, C7, C8]
Los resultados de las actividades de seguimiento de proyectos 4.1. La determinación de satisfacción de los requisitos
proporcionan la base sobre la cual se pueden tomar decisiones. En su [4 *, c8]
caso, y cuando la probabilidad y el impacto de los factores de riesgo
se entienden, se pueden realizar cambios al proyecto. Esto puede Debido a lograr la satisfacción de las partes interesadas es un
tomar la forma de acción correctiva (por ejemplo, volver a probar objetivo principal de la gerente de ingeniería de software, el
ciertos componentes de software); que puede implicar calificación progreso hacia este objetivo debe evaluarse periódicamente. El
incorpora acciones adicionales (por ejemplo, la decisión de utilizar la progreso debe ser evaluado en el logro de los principales hitos del
creación de prototipos para ayudar en software de validación de los proyecto (por ejemplo, la finalización de la arquitectura de diseño
requisitos; ver Prototipos en los requisitos de software KA); y / o de software o la finalización de una revisión técnica de software),
puede implicar la revisión del plan del proyecto y otros documentos oa la conclusión de un ciclo de desarrollo iterativo que se traduce
del proyecto (por ejemplo, los requisitos de software especifi- cación) en un incremento del producto. Las variaciones de los requisitos
para dar cabida a eventos no previstos y sus implicaciones. de software deben ser identificados y deben tomarse acciones
Apropiada. Como en la actividad proceso de control anteriormente
(véase sec- ción 3.5, Process Control), configuración de software
la organización y el proyecto (por ejem- plo, un objetivo de la priorizado. A continuación, un subconjunto de los objetivos que se
organización podrían ser “los primeros en el mercado con abordarán se puede seleccionar, documentado, com- municated, y
• Ámbito de aplicación de la medición. La unidad • Optar por medidas. medidas candidatos deben ser
organizativa a la que cada requisito de medición se va a seleccionados, con claros vínculos con las necesidades de
aplicar debe ser establecido. Esto puede consistir en un informa- ción. Las medidas deben ser seleccionados en base a
área funcional, un solo proyecto, un solo sitio, o toda una las prioridades de las necesidades de información y otros
empresa. criterios tales como coste de la recogida, el grado de
El ámbito temporal de la medición de esfuerzo también interrupción del proceso durante la recogida, la facilidad de
debe ser considerado porque puede ser necesario series obtención, los datos Consistente precisa, y la facilidad de
de tiempo de algunas mediciones; por ejemplo, para análisis y ing informe-. Debido a las características de calidad
calibrar los modelos esti- mación (ver sección 2.3, interna (ver modelos y características de calidad de la calidad
Esfuerzo, ULE Sched-, y estimación de costos). del software KA) a menudo no contenida en los requisitos de
software contractuales, es importante tener en cuenta medi-
• el compromiso del equipo de medición. El compromiso suring la calidad interna del software para proporcionar un
debe establecerse formalmente, comunica, y apoyado indicador temprano de potencial cuestiones que puedan afectar
por los recursos (ver siguiente punto). a las partes interesadas externas.
tareas de medición. La disponibilidad de recursos puede ser Fundamentos de ingeniería KA). Los resultados y
puesta en escena en los casos en que los cambios han de ser conclusiones son generalmente revisados, usando un
pilotado antes del despliegue generalizado. Deberán tener en proceso definido por la organización (que puede ser formal o
cuenta a los recursos necesarios para la implementación exitosa informal). Los proveedores de datos y usuarios de medida
de nuevos procedimientos o medidas. deben participar en la revisión de los datos para asegurarse
de que son significativos y precisos y que puedan dar lugar a
• Adquirir y desplegar tecnologías de apoyo. Esto incluye la acciones razonables.
evaluación de las tecnologías de soporte disponibles, la
selección de las tecnologías más adecuadas, la adquisición • Comunicar los resultados. Los productos de información deben ser
de esas tecnologías, y el despliegue de esas tecnologías. documentados y comunicados a los usuarios y grupos de interés.
• Integrar los procedimientos de medición con los procesos de • Evaluar productos de información y el proceso surement medi- contra
software Evant rel. Los procedimientos de medición, tales como especificado Evaluation criterios ación y determinar las
la recopilación de datos, deben integrarse en los procesos de fortalezas y debilidades de los productos de información o
software que se está midiendo. Esto puede implicar cam- ing proceso, respectivamente. La evaluación puede ser realizada por
procesos de software actuales para acomodar la recopilación de un proceso interno o una auditoría nal externamente; que debe
datos de fecha o actividades de generación. También puede incluir la retroalimentación de los usuarios de medición. Las
implicar el análisis de los procesos de soft- ware actuales para lecciones aprendidas deben ser registrados en una base de
reducir al mínimo esfuerzo adicional y la evaluación del efecto datos adecuada.
de los empleados para asegurar que se aceptarán los
procedimientos de medición. problemas de moral y otros • identificar el potencial mejoras. Tal
factores humanos deben ser considerados. Además, los mejoras pueden ser cambios en el formato de los
procedimientos de medición deben ser comu- nicated a los que indicadores, los cambios en unidades medidas, o
proporcionan los datos. También puede ser necesario reclasificación de categorías de medición. Los costos y los
proporcionar formación y apoyo. procedimientos de análisis de beneficios potenciales de las mejoras deben ser
datos y de información están típicamente integrados en los determinados y acciones de mejora apropiadas deben ser
procesos de organización y / o proyecto de manera similar. reportados.
• Comunicar las mejoras propuestas para el propietario
del proceso de medición y ERS stakehold- para su
revisión y aprobación. Además, la falta de mejoras
• Recolectar datos. Los datos deben recogerse, que ha potenciales debe comuni- nicated si el análisis no
comprobado, y se almacenan. Colección veces se puede identifica ninguna mejora.
automatizar mediante el uso de software de Engineer-
herramientas de gestión de ING (véase el tema 7, la Cesión de
Software de Gestión de Herramientas de ingeniería) para analizar 7. Herramientas de Gestión de Ingeniería de Software
los datos y elaborar informes. Los datos pueden ser agregados, [3 *, c5, c6, c7]
transformadas, o recodificados como parte del proceso de
análisis, utilizando un grado de rigor apropiado a la naturaleza de herramientas de gestión de la ingeniería de software a menudo se
los datos y las necesidades de información. Los resultados de utilizan para proporcionar visibilidad y control de los procesos de gestión
este análisis son típicamente indicadores tales como gráficos, de ingeniería de software. Algunas herramientas son automatizados,
números u otras indicaciones que serán interpretadas, resultando mientras que otros son manualmente implementado. Ha habido una
en conclusiones y recomendaciones que se presentará a las tendencia reciente hacia el uso de suites integradas de ingeniería de
partes interesadas (ver Análisis estadístico en el software herramientas que se utilizan en un proyecto para planificar,
recopilar y registrar, monitorear y controlar, y
7-12 Guía SWEBOK® V3.0
proyecto de informe e información del producto. Las herramientas se y estimaciones subjetivas de las probabilidades de los eventos de riesgo.
pueden dividir en las siguientes categorías: herramientas de simulación Monte Carlo se pueden utilizar para producir
Planificación de proyectos y herramientas de seguimiento. planificación distribuciones de probabilidad de esfuerzo, horario, y el riesgo mediante la
de proyectos y herramientas de seguimiento se pueden utilizar para combinación de múltiples distribuciones de probabilidad de entrada de una
estimar el esfuerzo y el coste del proyecto compañero y preparar los manera algorítmica.
automatizadas esti- mación que aceptan como entrada el tamaño estimado Herramientas de comunicación. Las herramientas de comunicación
y otras características de un producto de software y producen pueden ayudar a proporcionar información oportuna y consistente a las
estimaciones del esfuerzo total, el cronograma y costo requerido. partes interesadas que participan en un proyecto. Estas herramientas
herramientas de planificación también incluyen herramientas de pueden incluir cosas como las notificaciones de correo electrónico y
programación que analizan las tareas dentro de una estructura de transmisiones de los miembros del equipo y las partes interesadas.
desglose de trabajo automatizado, su estimación acoplado duraciones, sus También incluyen comu- nicación de las actas de las reuniones regulares
relaciones de precedencia, y los recursos asignados a cada tarea para del proyecto, reuniones diarias de stand-up, además de gráficos que
pro- ducir un calendario en forma de un diagrama de Gantt. herramientas muestran el progreso, el trabajo atrasado, y solicitud de mantenimiento
regularmente, ciclos de iteración programadas, demostraciones de Herramientas de medición. Herramientas de medición SUP- actividades
productos y / o elementos de acción. portuarias relacionadas con el programa de medición ción (véase el tema
Herramientas de gestión de riesgos. herramientas de gestión del riesgo completamente automatizadas en esta categoría. instrumentos de
(ver sección 2.5, gestión de riesgos) se pueden utilizar para realizar un medición utilizados para reunir, analizar y reportar los datos de medición
seguimiento de la identificación del riesgo, estimación y supervisión. Estas de proyecto pueden estar basados en hojas de cálculo desarrollados por
herramientas incluyen el uso de enfoques como la simulación o de árboles los miembros del equipo de proyecto o empleados organizativas.
[7 *]
[5 *]
[3 *]
[4 *]
1. Iniciación y Definición del
Alcance
2. software de planificación
3.3. Implementación de
c7
Proceso de medida
4. Revisión y Evaluación
requisitos
[7 *]
[5 *]
[3 *]
[4 *]
5. Cierre
5.1. Cierre la determinación
6. Software de Ingeniería de
medición
7. Herramientas de Gestión de
C5, C6, C7
Ingeniería de Software
Ingeniería de Software de Gestión 7-15
LECTURAS Referencias
Una guía para la Dirección de Proyectos [1] Instituto de Gestión de Proyectos, Una guía para la
(PMBOK ® Guía) [ 1]. Guía de los fundamentos de gestión de proyectos
(PMBOK (R) Guía), 5ª ed., Project Management
los PMBOK ® Guía proporciona directrices para la gestión de proyectos Institute, 2013.
individuales y define los conceptos relacionados con la gestión de
proyectos. También describe el ciclo de vida de gestión de proyectos y [2] Instituto de Gestión de Proyectos e IEEE
sus procesos relacionados, así como el ciclo de vida del proyecto. Es Computer Society, Software de la extensión de la Guía
una guía reconocida a nivel mundial para la profesión agement el del PMBOK® quinta edición, Project Management
proyecto hombre-. Institute, 2013.
Tor.
CAPÍTULO 8
BPMN Business Process Modeling actividades de trabajo, no el proceso de ejecu- ción para el software
CASO
implementado. procesos de software se especifican para un
Asistido por Computadora Ingeniería de número de razones: para facilitar la comprensión humana, la
notación
Software CM comunicación y la coordinación; para ayudar agement-hombre de
Configuración de Gestión de CMMI los proyectos de software; para medir y mejorar la calidad de los
productos de software de una manera eficiente; para apoyar
Capability Maturity Model
proceso de mejora ción; y para proporcionar una base para el
Integration
puerto SUP- automatizado de ejecución del proceso. SWEBOK KAs
GQM Meta-pregunta-Metric IDEF0
estrechamente relacionados con este proceso de Ingeniería de
Integración Definición LOE Software KA incluyen el software de gestión de ingeniería, modelos
Lenguaje de Modelado Unificado software para un proyecto de software específico (ver Proceso de
Planificación en el KA Software Engineering Management). Els y
métodos mo- apoyan un enfoque sistemático para el desarrollo de
INTRODUCCIÓN software y modificación. La calidad KA software se ocupa de la
planificación, aseguramiento y control de procesos para el proyecto
Un proceso de ingeniería consiste en un conjunto de actividades y la calidad del producto. Medición y medición de los resultados en
interrelacionadas que transforman una o más entradas en salidas, la Ingeniería Foundation ciones KA son esenciales para la
mientras que consume recursos cumpla cabalmente la evaluación de los procesos de software y control- ling.
transformación. Muchos de los procesos de disciplinas de ingeniería
tradicionales (por ejemplo, eléctrica, mecánica, civil, químicos) se
refieren a la transformación de la energía y las entidades físicas de
una forma a otra, como en una presa hidroeléctrica que transforma la
energía potencial en energía eléctrica o una refinería de petróleo que
utiliza procesos químicos para transformar el petróleo crudo en
gasolina. En esta área de conocimiento (KA), ingeniería de software
procesos tienen que ver con las actividades de trabajo realizado por DISTRIBUCIÓN DE TEMAS DE INGENIERÍA DE
los ingenieros de software para desarrollar, mantener y operar el PROCESOS DE SOFTWARE
software, tales como los requisitos, diseño, construcción, pruebas,
gestión de con- figuración, y otra procesos de ingeniería de software. Como se ilustra en la Figura 8.1, este KA tiene que ver con la definición
Para facilitar la lectura “, la ingeniería de software de procesos de software, los ciclos de vida del software, evaluación de
procesos de software y la mejora, la medición del software, el software y
herramientas de proceso de inge- niería.
8-1
8-2 Guía SWEBOK® V3.0
1. Definición del proceso de software concluido, incluyendo los criterios de aceptación para el producto del
[1 *, P177] [2 *, P295] [3 *, p28-29, p36, c5] trabajo de salida o productos de trabajo. Un proceso de software
puede incluir subprocesos. Por ejemplo, la validación de los requisitos
Este tema tiene que ver con una definición de proceso de software, de software es un proceso utilizado para determinar si los requisitos
gestión de procesos de software, y la infraestructura de procesos de proporcionarán una base adecuada para el desarrollo de software; es
software. un subproceso del proceso de requisitos de software. Las entradas
Como se mencionó anteriormente, un proceso de software es un para la validación de requisitos son típicamente unos requisitos de
conjunto de actividades y tareas interrelacionadas que transforman los software valor especificado y los recursos necesarios para realizar la
productos de trabajo de entrada en productos de trabajo de salida. Como validación (personal, herramientas de validación, tiempo suficiente).
mínimo, la descripción de un pro- ceso de software incluye entradas Las tareas de la actividad de validación requisitos podrían incluir
requiere, transformar las actividades de trabajo y genera salidas. Como se requisitos de los comentarios, prototipado y validación del modelo.
ilustra en la Figura 8.2, un proceso de software también puede incluir su Estas tareas incluyen las asignaciones de trabajo para las personas y
entrada y criterios de salida y la descomposición de las actividades de equipos. La salida de validación de requisitos suele ser una
trabajo en tareas, que son las unidades más pequeñas de trabajo sujetas especificación de requisitos de software validado que proporciona
a la responsabilidad de gestión. Una entrada de proceso puede ser un entradas para el diseño de software y el software de Exámenes
evento ing Trigger o la salida de otro proceso. Los criterios de ingreso procesos ing. validación de requisitos y otros subprocesos del
deben ser satisfechas antes de que un proceso pueda comenzar. Todas proceso de requisitos de software son a menudo intercalada y
las condiciones especificadas deben ser satisfechas antes de que un reiterada en varias formas;
proceso puede ser con éxito
Software de Ingeniería de Procesos 8-3
el proceso de requisitos de software y sus subprogramas, cesos resultado de un enfoque sistemático para accomplish- ing
pueden entraba y salía varias veces durante el desarrollo de procesos de software y producir trabajo Pro- ductos-ya sea a
software o modificación. definición completa de un proceso de nivel individual, proyecto, o el nivel y organizativa para introducir
software también puede incluir las funciones y competencias, TI procesos nuevos o mejorados.
SUP- puerto, técnicas de ingeniería de software y herramientas, y
ambiente de trabajo necesario para llevar a cabo el proceso, así Los procesos se cambian con la expectativa de que un proceso
como los enfoques y medidas (indicadores clave de rendimiento) nuevo o modificado mejorará la eficiencia y / o la eficacia del proceso y
que se utiliza para determinar la la eficiencia y la eficacia de la la calidad de los productos de trabajo resultantes. El cambio a un nuevo
realización del proceso. proceso, la mejora de un proceso existente, el cambio organizacional y
cambio de infraestructura (inserción de la tecnología o los cambios de
herramientas) están estrechamente relacionados, ya que todos están
Además, un proceso de software puede incluir actividades inicia generalmente con el objetivo de mejorar el coste, el desarrollo
tivas técnicas, colaborativas y administraciones intercalados. sched- ULE, o la calidad de los productos de software. cambio de
proceso tiene un impacto no sólo para el producto de software; que a
Notaciones para la definición de procesos de software incluyen listas menudo conducen al cambio organizativo. El cambio de un proceso o la
textuales de actividades que lo componen y las tareas que se describen en introducción de un nuevo proceso puede tener efectos de la ondulación a
lenguaje natural; diagramas de flujo de datos; gráficos de estado; BPMN; lo largo de un orga- nización. Por ejemplo, los cambios en las
IDEF0; redes de Petri; y los diagramas de actividad UML. Las tareas de herramientas informáticas infra- estructura y la tecnología a menudo
transformación dentro de un proceso pueden definirse como procedimien- requieren cambios en el proceso.
tos; un procedimiento se puede especificar como un conjunto ordenado de
proceso de software o conjunto de procesos de software. procesos de soft- Los procesos existentes pueden ser modificados cuando otros
ware deben ser seleccionados, adaptados, y se aplican según sea procesos nuevos se despliegan por primera vez (por ejemplo, la
apropiado para cada proyecto y cada contexto de la organización. No hay introducción de una actividad de inspección dentro de un proyecto de
proceso ideal, o un conjunto de procesos, existe. desarrollo de software probablemente tendrá un impacto en las pruebas
de software proceso- ver revisiones y auditorías de la calidad de
software y KA en las pruebas de software KA). Estas situa- ciones
también pueden ser denominados “evolución del proceso.” Si las
modificaciones son extensas, a continuación, los cambios en la cultura y
1.1. Gestión de procesos de software la empresa modelo de organización es probable que sea necesario para
[3 *, s26.1] [4 *, p453-454] acomodar los cambios en el proceso.
1.2. Infraestructura de Procesos de Software adaptación de procesos, y consideraciones prácticas. Un ciclo de vida
[2 *, P183, P186] [4 *, p437-438] de desarrollo de software (SDLC) incluye los procesos de software
utilizados para especificar y transformar los requisitos de software en
El establecimiento, implementación y gestión de procesos de software y un producto de software erable deliv-. Un ciclo de vida del producto
modelos de ciclo de vida del software a menudo se produce en el nivel de software (SPLC) incluye un software de ciclo de vida de desarrollo
de los proyectos de software individuales. Sin embargo, la aplicación de software más procesos adicionales que proporcionan para el
sistemática de los procesos de software y de ciclo de vida del software despliegue, mantenimiento, soporte, la evolución, la jubilación, y
els mo- través de una organización puede proporcionar beneficios a todos los demás procesos inception--a la jubilación para un producto
todos los trabajos de software dentro de la organización, a pesar de que de software, incluyendo la gestión de configuración de software y los
requiere un compromiso a nivel orga- zational. Una infraestructura de procesos de garantía de calidad del software que se aplican a lo largo
proceso de software puede proporcionar definiciones de los procesos, las de un ciclo de vida del software de producto. Un ciclo de vida del
políticas de preting inter y la aplicación de los procesos, y las producto de software puede incluir software PLE ciclos de vida de
descripciones de los procedimientos que se utilizarán para implementar desarrollo múltiples para desarrollar y mejorar el software. procesos
los procesos. Además, una infraestructura de proceso de software puede de software individuales no tienen ningún pedido ral tempo entre
proporcionar financiación, herramientas, ING forma-, y miembros del ellos. Las naves PARENTESCO temporales entre los procesos de
personal que hayan sido asignadas responsabilidades para establecer y software son proporcionados por un modelo de ciclo de vida del
mantener la infraestructura de proceso de software. software: ya sea un SDLC o SPLC. modelos de ciclo de vida suelen
destacar los procesos de software clave dentro del modelo y sus
interdependencias y relaciones cias temporales y lógicas. las
definiciones detalladas de los procesos de software en un modelo de
infraestructura de proceso de software varía, Dependiendo del ciclo de vida se pueden proporcionar directamente o por referencia a
tamaño y la complejidad de la organización y los proyectos llevados otros documentos.
a cabo dentro de la organización. , organizaciones y proyectos
sencillos pequeños tienen necesidades de infraestructura pequeños
y sencillos. Grandes, organizaciones y proyectos complejos, por
sidad nece-, tienen infraestructuras de procesos de software más
grandes y complejos. En el último caso, se pueden establecer
diferentes unidades organizativas (tal como un grupo de procesos de Además de transmitir las relaciones temporales y lógicas entre los
ingeniería de software o un comité ing steer-) para supervisar la procesos de software, el modelo de desarrollo de software de ciclo de
aplicación y mejora de los procesos de software. Un error común es vida (o modelos usan dentro de una organización) incluye los
que el establecimiento de una infraestructura de proceso de software mecanismos de control para la aplicación de criterios de entrada y salida
e implementación de procesos de software repetibles añadirá tiempo (por ejemplo, las revisiones del proyecto, el cliente approv- del als, las
y costo para el desarrollo y mantenimiento de software. Hay un costo pruebas de software , umbrales de calidad, onstrations demos-, equipo
asociado con la introducción o la mejora de un proceso de software; de consenso). La salida de un proceso de software a menudo
Sin embargo, expe- riencia ha demostrado que la aplicación de la proporciona la entrada para ERS oth- (por ejemplo, requisitos de
mejora sistemática de los procesos de software tiende a dar lugar a software proporcionan entrada para un proceso de diseño arquitectónico
menor costo mediante la mejora de la eficiencia, Ance Evitar- de software y los cesos de construcción de software y pruebas de software
repetición del trabajo, y el software más fiable y asequible. por lo pro). ejecución concurrente de varias actividades del proceso de
tanto el rendimiento del proceso influye en la calidad del producto de software pueden producir una salida compartida (por ejemplo, las
software. especificaciones de la interfaz para las interfaces entre los múltiples
componentes de software desarrollados por diferentes equipos). Algunos
procesos de software pueden ser considerados como menos efectivo a
menos que otros procesos de software se llevan a cabo al mismo tiempo
(por ejemplo, planificación de prueba de software durante el análisis de
los requisitos de software puede mejorar los requisitos de software).
2. Ciclos de vida del software
[1 *, c2] [2 *, p190]
2.1. Categorías de procesos de software 2.2. Modelos de Ciclo de vida del software
[1 *, Prefacio] [2 *, p294-295] [3 *, c22-c24] [1 *, c2] [2 *, S3.2] [3 *, S2.1] [5]
Muchos procesos diferentes de software se han definido para su La naturaleza intangible y maleable de software permite una amplia
uso en las diversas partes de los ciclos de vida de desarrollo de variedad de modelos de ciclo de vida del software de desarrollo, que
software de mantenimiento y software. Estos procesos se pueden van desde los modelos lineales en los que las fases de desarrollo de
clasificar como sigue: software se lleva a cabo secuencialmente con retroalimentación y
iteración, según sea necesario, seguido de la integración, ing Test-, y
la entrega de una producto único; a los modelos iterativo en el que se
1. procesos primarios cesos incluir software para pro- desarrollo,
desarrolla software en incrementos de aumentar la funcionalidad en
operación y mantenimiento de software. ciclos iterativos; a los modelos ágiles que normalmente implican
manifestaciones frecuentes de software que trabaja con un
2. apoyar los procesos se aplican de forma intermitente o representante del cliente o usuario que dirige el desarrollo del
continua durante todo el ciclo de vida del producto de software en ciclos iterativos cortos que producen incrementos
software para apoyar cesos pro primarias; que incluyen pequeños de trabajo, software entregable. modelos incrementales,
procesos de software, tales como gestión de la iterativos y ágiles pueden entregar los primeros subconjuntos de
configuración, Ance assur- calidad, y la verificación y software que trabaja en el entorno del usuario, si lo desea. modelos
validación. lineales SDLC se refieren a veces como los modelos de predicción del
3. procesos de organización proporcionar puerto SUP- para la ciclo de vida de desarrollo de software, mientras que SDLCs iterativos
ingeniería de software; que incluyen capacitación, análisis y ágiles se conocen como modelos de adaptación del ciclo de vida de
de medición de procesos, gestión de infraestructuras, desarrollo de software. Cabe señalar que variabilidad actividades de
gestión de cartera y reutilización, mejora de procesos de mantenimiento OU durante una SPLC puede llevarse a cabo
organización y gestión de los modelos del ciclo de vida del utilizando diferentes modelos SDLC, según sea apropiado para las
software. actividades de mantenimiento. Una característica distintiva de los
diferentes modelos de ciclo de vida de desarrollo de software es la
4. procesos entre proyectos, tales como la reutilización, la línea de manera en que se gestionan los requisitos de software. modelos de
productos soft- ware, y la ingeniería de dominio; que involucran a desarrollo del oído Lin- desarrollan típicamente por un juego completo
más de un proyecto de software solo en una organización. de los requisitos de software, en la medida en que sea posible,
durante la iniciación y planificación de proyectos. Los requisitos de
software son entonces rigurosamente controlados. Los cambios en los
procesos de software, además de los mencionados anteriormente requisitos de software se basan en las solicitudes de cambio que son
incluyen los siguientes. procesados por un tablero de control de cambios (véase la Solicitud,
los procesos de gestión de proyectos incluyen procesos para la evaluación y aprobación de software Cambios en el Consejo de
la planificación y la estimación, gestión de recursos, medición y Control de Cambios en el Software de Gestión de Con- figuración KA).
control, lo que lleva, la gestión de riesgos, la gestión de las Un modelo incremental produce incrementos sucesivos de traba-
partes interesadas, y que coordinara la primaria, el apoyo, la jando, software entregable basado en la partición de los requisitos de
organización, y entre proyectos de procesos de software Desa-, software para ser implementados en cada uno de los incrementos.
crear y mantener proyectos. Los requisitos de software pueden ser rigurosamente controladas,
como en un modelo lineal, o puede haber cierta flexibilidad en la
procesos de software también se han desarrollado para necesidades revisión de los requisitos de software como el producto de software
particulares, tales como las actividades del proceso que se ocupan de evoluciona. modelos ágiles pueden definir el alcance del producto y
las características de calidad de software (ver la calidad KA Software). de alto nivel incluye inicialmente; Sin embargo, ágil
Por ejemplo, los problemas de seguridad durante el desarrollo de
software pueden requerir uno o más procesos de software para proteger
la seguridad de MENT el desarrollo ambiente y reducir el riesgo de actos
maliciosos. procesos de soft- ware también pueden ser desarrollados
para proporcionar un fundamento adecuado para el establecimiento de
la confianza en la integridad del software.
8-6 Guía SWEBOK® V3.0
modelos están diseñados para facilitar la evolución de los construcción y pruebas) se pueden adaptar para facilitar su manejo
requisitos de software durante el proyecto. Se debe enfatizar Tate, soporte, mantenimiento, migración, y el retiro del software.
que el continuo de SDLCs de lineal a ágil no es una línea Otros factores a tener en cuenta en la definición y la adaptación de
delgada, recta. Elementos de diferentes enfoques pueden ser un modelo de ciclo de vida del software incluyen la conformidad
incorporados en un modelo específico; por ejem- plo, un requerida a las normas, las Directivas y políticas; demandas de los
software de modelo de ciclo de vida de desarrollo incremental clientes; criticidad del producto de software; y organizativo ridad
puede incorporar requisitos de software secuenciales y fases maduración y competencias. Otros factores incluyen la naturaleza
de diseño, pero permitir una gran flexibilidad en la revisión de del trabajo (por ejemplo, modificación del software existen- tes
los requisitos de software y la arquitectura durante la contra nuevo desarrollo) y el dominio de aplicación (por ejemplo, el
construcción de software. espacio aéreo frente a la gestión del hotel).
la comparación entre los proyectos dentro de una organiza- ción y examinar los pasos del procedimiento seguido y los resultados
entre organizaciones. obtenidos, además de los datos relativos a los defectos encontrados y el
Una auditoría de proceso difiere de un proceso de Assessment. Las tiempo requerido para encontrar y corregir los defectos en comparación
evaluaciones se realizaron para determinar niveles de capacidad o con las pruebas de software. Un método típico de proceso de software
madurez y para identificar los procesos de software que ser mejorado. evalua- ción incluye la planificación, determinación de los hechos (por
Las auditorías se realizan normalmente para verificar el cumplimiento collect- pruebas ing a través de cuestionarios, entrevistas y observación
con las políticas y normas. Auditorías proporcionan visibilidad ción de las prácticas de trabajo), la recopilación y validación de los datos del
manage- en las operaciones reales que se lleva a cabo en la proceso, y el análisis y generación de informes. evaluaciones del
organización para que las decisiones precisas y significativas se proceso pueden confiar en el criterio subjetivo, cualitativo del evaluador,
pueden hacer cuestiones ING concern- que están afectando a una o en la presencia objetiva o ausencia de artefactos definidos, registros y
actividad de mantenimiento de desarrollo pro- yecto, o un tema otras pruebas. Las actividades llevadas a cabo durante una evaluación
relacionado con el software. de procesos de software y la distribución del esfuerzo de las actividades
de evaluación son diferentes dependiendo del propósito de la evaluación
de procesos de software. evaluaciones del proceso de software se
factores de éxito de los procesos de software evalua- ción y pueden emprender para desarrollar calificaciones de capacidad que se
mejora dentro del software Engineer- organizaciones ing incluyen utilizan para hacer recomendaciones para mejoras en el proceso o
buque gestión patrocinio, la planificación, la formación, los líderes pueden llevarse a cabo para obtener una calificación de madurez de los
experimentados y capaces, el compromiso del equipo, gestión de las procesos con el fin de calificar para un contrato o premio. La calidad de
expectativas, el uso de agentes de cambio, además de proyectos los resultados de la evaluación depende del método de evaluación de
piloto y experimentación con herramientas. fac- tores adicionales procesos de software, la integridad y la calidad de los datos obtenidos, la
incluyen la independencia del evaluador y la oportunidad de la capacidad y la objetividad del equipo de evaluación, y las pruebas
evaluación. examinadas durante la evaluación. El objetivo de un proceso de
evaluación de software es para obtener conocimientos que establecerá
el estado actual de un proceso o procesos y proporcionar una base para
3.1. Modelos de evaluación de procesos de software la mejora de procesos; la realización de una evaluación de procesos de
[2 *, S4.5, S4.6] [3 *, s26.5] [4 *, p44-48] software siguiendo una lista de comprobación para la conformidad y sin
hacerse una idea agrega poco valor.
los modelos de evaluación de procesos de software suelen incluir
criterios de evaluación de los procesos de software que son
consideradas como buenas prácticas. Estas prácticas pueden hacer
frente a los procesos de software Desa- Ment solamente, o también
pueden incluir temas tales como el mantenimiento de software,
gestión de proyectos de software, ingeniería de sistemas, o la
gestión de recursos humanos.
en comparación con los resultados anteriores o ejemplares de visibilidad de los productos de trabajo intermedios y puede ejercer
proceso y costes (control); y hacer modificaciones adicionales (en algún control sobre las transiciones entre procesos. En el nivel 3, un
funciones). El Plan-Do-Check-Act modelo de mejora de procesos se único proceso de software o los procesos en un nivel 3 grupo de
puede aplicar, por ejemplo, para mejorar los procesos de software madurez más el proceso o los procesos en el nivel de madurez 2
que mejoran la prevención de defectos. están bien definidas (tal vez en las políticas y procedimientos de
organización) y se repiten a través de dife- rentes proyectos. Nivel 3
de la capacidad del proceso o madurez proporciona la base para el
3.4. Software puntuaciones proceso continuo y puesta en escena proceso de mejora ment través de una organización porque el
proceso es (o procesos están) llevó a cabo en un ner Hombre-
[1 *, p28-34] [3 *, s26.5] [4 *, p39-45] similar. Esto permite la recogida de datos de rendimiento de manera
uniforme a través de múltiples proyectos. En el nivel de madurez 4,
Software de la capacidad de proceso y software de madurez de los las medidas cuantitativas pueden ser aplicados y utilizados para la
procesos se clasifican normalmente usando cinco o seis niveles para evaluación de procesos; análisis tical estadís- puede ser utilizado. Al
caracterizar la capacidad o madurez de los procesos de software utilizados nivel de madurez 5, se aplican los mecanismos para el proceso
dentro de una organización. UN continuo sistema de calificación implica la continuo de mejoras.
asignación de una calificación a cada una de procesos de software de
procesos de software dentro de un nivel de proceso especificado. A re- representaciones continuos y por etapas se pueden utilizar para
presentación de continua y el proceso de lev- els se proporciona en la determinar el orden en que los procesos de software son un ser
Tabla 8.1 puesta en escena. modelos continuos suelen utilizar un nivel 0 mejorado. En la representación continua, los diferentes niveles de
opinión; por etapas modelos Tıpicamente no lo hacen. capacidad para diferentes procesos de software proporcionan una
guía para determinar el orden en que serán mejorados procesos de
software. En la repre- sentación por etapas, la satisfacción de los
objetivos de un conjunto de procesos de software dentro de un nivel
Tabla 8.1. Niveles de software proceso de calificación de madurez se lleva a cabo para ese nivel de madurez, lo que
proporciona una base para la mejora de todos los procesos de
La representación La representación por
software en el siguiente nivel superior.
continua de los niveles etapas de niveles de
Nivel
de capacidad madurez
0 incompleta 1
4. Software de medición [ 3 *, s26.2] [4 *, s18.1.1]
realizado Inicial
2 Managed Gestionado
3 definido definido Este proceso de software direcciones tema y medición pro- ducto, la
calidad de los resultados de medición, modelos de información,
cuantitativamente
4 software y técnicas de medición de procesos de software (ver
Gestionado
Medición en los Fundamentos de Ingeniería KA). Antes de que un
5 Optimización nuevo proceso se ejecute o un proceso actual es modificado, los
resultados de medición de la situación actual deben obtenerse a
En la Tabla 8.1, el nivel de 0 indica que un proceso de software se proporcio- nar una línea de base para la comparación entre la
lleva a cabo de forma incompleta o no se puede realizar. En el nivel 1, situación actual y la nueva situación. Para exami- plo, antes de
se está realizando un proceso de software (valoración capacidad), o introducir el proceso de inspección de software, el esfuerzo
se están realizando los procesos de software en un grupo de madurez necesario para reparar defectos descubiertos por las pruebas deben
nivel 1, pero de forma puntual, de manera informal. En el nivel 2, un ser medidos. Después de un período de puesta en marcha ini- cial
proceso de software (valoración capacidad) o los procesos en el nivel después de que el proceso de inspección se introduce, el esfuerzo
de madurez 2 están siendo per- forman de una manera que combinado de la inspección
proporciona una gestión
Software de Ingeniería de Procesos 8-9
además de las pruebas puede ser comparada con la cantidad anterior de documentación de diseño, y otros productos de trabajo relacionados.
esfuerzo requerido para probar solo. consideraciones simi- lar se aplican
si se cambia un proceso. También tenga en cuenta que la eficiencia y la eficacia son
conceptos independientes. Un proceso de software eficaz puede ser
4.1. Proceso de Software y Medición del producto ineficaz en la consecución de un resultado de procesos de software
[1 *, S6.3, P273] [3 *, s26.2, P638] deseado; por ejemplo, la cantidad de esfuerzo realizado para encontrar
defectos de software y solución podría ser muy alto y resultar en una
procesos de software y medición del producto tienen que ver con la baja eficiencia, en comparación con las expectativas. Un proceso
determinación de la eficiencia y la eficacia de un proceso de software, la eficiente puede ser ineficaz en acompa- plishing la transformación
actividad o tarea. los eficiencia de un proceso de software, la actividad o deseada de los productos de trabajo de entrada en los productos de
tarea es la relación entre los recursos consumidos efectivamente a los trabajo de salida; por ejemplo, el hecho de encontrar y corregir un
recursos esperados o deseados para ser consumidos en el cumplimiento número suficiente de defectos de software durante el proceso de
de un proceso de software, la actividad o tarea (véase la eficiencia en el prueba. Las causas de la baja eficiencia y / o baja efectividad en la
software de Economía Ingeniería KA). Esfuerzo (o el costo equivalente) forma de un proceso de software, la actividad o tarea se ejecuta podría
es la principal medida de los recursos para la mayoría de los procesos incluir uno o más de los siguientes problemas: trabajo de entrada pro-
de software, las actividades y tareas; que se mide en unidades tales ductos deficientes, personal sin experiencia, la falta de herramientas e
como horas-persona-persona, días, semanas, o entre el personal y infraestructura adecuados , el aprendizaje de un nuevo proceso, un
persona-meses de esfuerzo o en unidades monetarias equivalentes-tales producto complejo, o un dominio del producto desconocido. La eficiencia
como euros o dólares. y eficacia de la ejecución de procesos de software también se ven
afectados (ya sea positiva o negativamente) por factores tales como
Turn- sobre en el personal de software, cambios de horario, un nuevo
Eficacia es la relación de salida real a la salida esperado representante del cliente, o una nueva política organizativa.
producido por un proceso de software, la actividad, o tarea; por
ejemplo, el número real de los defectos detectados y corregidos
durante las pruebas de software para el número esperado de
defectos para ser detectados y corregidos, quizá basada en los
datos his- tórica para proyectos similares (véase la Eficacia en el
software de Economía Ingeniería KA). Tenga en cuenta que la En la ingeniería de software, la productividad en per- que forman
medición de los procesos de software effec- tividad requiere la un proceso, actividad o la tarea es la relación de salida producida
medición de los atributos de productos de referencia; por ejemplo, dividida por recursos consumidos; por ejemplo, el número de defectos
la medición de los defectos de software descubierto y corregido de software dis- cubierto y corregida dividida por horas-hombre de
durante pruebas de software. esfuerzo (véase la productividad en el Engineer- Software ing
Economía KA). La medición precisa de la productividad debe incluir el
esfuerzo total usado para satisfa- isfy los criterios de salida de un
Hay que tener cuidado en la medición de los atributos del proceso de software, activi- dad o la tarea; por ejemplo, el esfuerzo
producto con el fin de determinar la efectividad del proceso. Por requerido para corregir defectos descubiertos durante el software de
ejemplo, el número de defectos detectados y corregidos por la Exámenes deben ser incluidos en la productividad del desarrollo de
prueba no puede alcanzar el número esperado de defectos y por lo software.
tanto proporcionar una medida engañosamente baja efectividad, ya
sea porque el software que está siendo probado es de mejor- que la
habitual calidad o quizás debido a la introducción de un proceso de El cálculo de la productividad se debe tener en cuenta el contexto
inspección aguas arriba recién introducido se ha reducido el en el que se lleva a cabo el trabajo. Por ejemplo, se incluirá el
número restante de defectos en el software. esfuerzo para corregir los defectos descubiertos en el cal- culación
productividad de un equipo de software si los miembros del equipo
de corregir los defectos que encuentran, como en la unidad de
medidas de productos que pueden ser importantes en la pruebas por los desarrolladores de software o en un equipo ágil de
determinación de la eficacia de los pro- cesos de software incluyen la funciones cruzadas. O el cálculo de la productividad puede incluir ya
complejidad del producto, defectos totales, densidad de defectos, y la sea el esfuerzo del software
calidad de los requisitos,
8-10 Guía SWEBOK® V3.0
probadores desa- y no a los individuos. la productividad del software predicción de procesos de software y producto de software atributos para
calculado al nivel de los individuos puede ser engañoso debido a los proporcionar respuestas a las preguntas pertinentes y lograr los objetivos
muchos factores que pueden afectar la productividad individual de los del proceso y mejora del producto. datos necesarios pueden ser recogidos
ingenieros de software. y retenidos en un repositorio; Los datos pueden ser ana- lisadas y los
definiciones estandarizadas y las reglas de recuento para la modelos de información de software se producen durante los proyectos de
medición de los procesos de software y productos de trabajo son software y después de la conclusión de los proyectos para asegurar que el
necesarias para proporcionar resultados de medición estandarizados a nivel de precisión es suficiente y que sus limitaciones son conocidas y
través de proyectos dentro de una organización, para rellenar un comprendidas. modelos de información de software también pueden ser
depósito de datos cal históricamente que pueden ser analizados para desarrolladas para contextos distintos proyectos de software; por ejemplo,
identificar procesos de software que necesitan ser mejoradas y para un modelo de información de software podría ser desarrollado para los
construir modelos predictivos basados en los datos acumulados. En el procesos que se aplican en toda la organización, tales como los procesos
ejemplo anterior, serían necesarias las definiciones de defectos de de garantía de calidad del software software de gestión de configu- ración
software y personal-horas de pruebas esfuerzo más contando reglas o en el nivel de organización. edificio de información de software modelo
para defectos y esfuerzo para obtener resultados de medición de análisis impulsado implica el desarrollo, la calibración y evaluación de
satisfactorios. La medida en que se institucionaliza el proceso de un modelo. Un software de infor- mación modelo se desarrolla mediante el
software es importante; insuficiencia ins- titucionalización de un proceso establecimiento de una transformación planteado la hipótesis de variables
de software puede explicar por qué los “buenos” los procesos de de entrada en resultados deseados; por ejemplo, el tamaño y la
software no siempre pro duce resultados anticipados. procesos de complejidad de los productos pueden ser transformados en estimación
software pueden ser institucionalizados por adopción dentro de la acoplado esfuerzo necesario para desarrollar un producto de software
unidad organizativa local oa través de unidades más grandes de una utilizando una ecuación de regresión desarrollado a partir de los datos
4.2. Calidad de los resultados de medición [ 4 *, s3.4-3.7] proyectos anteriores distintos de los proyectos utilizados para desarrollar el
La calidad del proceso y medición del producto resultados se similares. Hay tres posibles resultados de la evaluación:
2. Los resultados calculados para un nuevo conjunto de datos se Técnicas de medición de proceso también proporcionan la
encuentran cerca de los resultados reales de ese conjunto de datos, información necesaria para medir los efectos de las iniciativas de
en cuyo caso los menores se realizan ajustes a los parámetros del mejora de procesos. técnicas surement medi- proceso puede ser
modelo para mejorar el acuerdo; utilizado para recoger datos tanto cuantitativos como cualitativos.
El siguiente ejemplo ilustra la aplicación del método datos de proceso cuantitativos se pueden recoger como un
GQM: subproducto de los procesos de software. Por ejemplo, el número de
defectos detectados durante las pruebas de software y las horas de
• Meta: Reducir el tiempo medio de solicitud de cambio de personal gastados pueden debe desechar por por medición directa, y la
procesamiento en un 10% dentro de los seis meses. productivi- dad de descubrimiento defecto se pueden derivar por
• Pregunta 1-1: ¿Cuál es el tiempo de procesamiento de solicitud de calculat- defectos ing descubiertos por personal horas. Herramientas
cambio de línea de base? básicas para el control de calidad se pueden utilizar para analizar los
• Métricas 1-1-1: promedio de los tiempos de procesamiento de datos de medición de procesos cuantitativos (por ejemplo, hojas de
solicitud de cambio en la fecha de inicio verificación, diagramas de Pareto, histogramas, diagramas de
• Métricas 1-1-2: Desviación estándar de los tiempos de dispersión, gráficos de series, gráficos de control y diagramas de causa
procesamiento de solicitud de cambio en la fecha de inicio y efecto) (véase el análisis de causa raíz en la Ingeniería fundamentos
• Pregunta 1-2: ¿Cuál es la hora actual de procesamiento de KA). Además, diversas técnicas estadísticas se pueden usar de ese
solicitud de cambio? rango de cálculo de las medianas y los medios para métodos de análisis
• Métricas 1-2-1: promedio de los tiempos de procesamiento de multivariante (ver Análisis estadístico en los Fundamentos de Ingeniería
solicitud de cambio actualmente KA). Los datos recogidos usando proceso cuantitativo medi- técnicas
• Métricas 1-2-2: Desviación estándar de los tiempos de surement también se pueden utilizar como entradas a los modelos de
procesamiento de solicitud de cambio actualmente simulación (ver Modelando, Prototyp- Ing, y Simulación en la Ingeniería
Foundation ciones KA); estos modelos se pueden utilizar para evaluar el
4.4. Técnicas de medición de procesos de software impacto de diferentes enfoques para la mejora de procesos de software.
[1 *, c8]
cada categoría para los procesos del proceso de software o software, Además, las herramientas de negocio de propósito general, tal como una
donde un grupo de defectos origi- NATed (ver Defecto Caracterización en hoja de cálculo, puede ser útil. Ingeniería de Software (CASE),
la Soft mercancías Quality KA). defectos interfaz de software, por ejemplo, herramientas de ayuda de computadora pueden reforzar el uso de
pueden haberse originado durante una inade- equiparan proceso de procesos integrados, apoyar la ejecución de las definiciones de procesos
diseño de software; mejorar el proceso de diseño de software reducirá el defi-, y proporcionar orientación a los seres humanos en la formación de
número de defectos de la interfaz de software. ODC puede proporcionar per- procesos bien definidos. herramientas simples, tales como
datos cuantitativos para la aplicación de análisis de causa raíz. Control procesadores de texto y hojas de cálculo se pueden utilizar para preparar
Estadístico de Procesos se puede utilizar para realizar un seguimiento de las descripciones textuales de pro- cesos, actividades y tareas; Estas
la estabilidad del proceso, o la falta de estabilidad del proceso, utilizando herramientas también SUP- puerto de trazabilidad entre las entradas y
Sommerville 2011
Fairley 2009
Moore 2009
Kan 2003
[2 *]
[3 *]
[4 *]
[1 *]
p28-29,
1. Definición del proceso de software P177 P295 p36, c5
c22, c23,
2.1. Categorías de procesos de software prefacio p294-295
c24
S4.5,
3.1. Modelos de evaluación de procesos de software s26.5 p44-48
S4.6
S3.4,
S3.5,
4.2. Calidad de los resultados de medición
S3.6,
s3.7
S5.1,
4.4. Técnicas de medición de procesos de s6.4,
S5.7,
software c8
s9.8
LECTURAS Referencias
SWX ofrece adaptaciones y ampliaciones de las prácticas genéricas [2 *] JW Moore, La hoja de ruta de software
de gestión de proyectos documentado en el Guía del PMBOK® para Ingeniería: Una guía basada en estándares,
la gestión de proyectos de software. La principal contribución de Wiley-IEEE Computer Society Press, 2006.
esta extensión a la Guía del PMBOK® es descrip- ción de los
procesos que son aplicables para la gestión de proyectos de [3 *] I. Sommerville, Ingeniería de software, noveno
software de ciclo de vida de adaptación. ed., Addison-Wesley, 2011.
Característica-Driven IDE Desarrollo Este capítulo sobre modelos de ingeniería de software y métodos se
divide en cuatro áreas temáticas principales:
Entorno de desarrollo
integrado PBI
• Modelado: discute la práctica general de modelado y
La cartera de productos Artículo
presenta temas en los principios de modelado;
RAD El rápido desarrollo de aplicaciones UML propiedades y expresión de los modelos; modelado de
Unified Modeling Language XP sintaxis, la semántica y la pragmática; y las condiciones
previas, postcondi- ciones, e invariantes.
Programación extrema
1. Modelado
9-1
9-2 Guía SWEBOK® V3.0
Figura 9.1. Desglose de los temas de los modelos de ingeniería de software y métodos KA
ingeniero, y comunicar los aspectos del soft- ware a las partes decisiones importantes a otros en las comunidades interesadas.
interesadas pertinentes. Las partes interesadas son aquellas Hay tres principios generales que guían este tipo de actividades de
personas o partes que tienen un interés explícitas o implícitas en el modelado:
software (por ejemplo, usuario, comprador, proveedor, arquitecto,
certificando autori- dad, evaluador, desarrollador, ingeniero de • Modelar los Fundamentos: buenos modelos no suelen
software, y tal vez otros). representan cada aspecto o característica del software bajo
todas las condiciones posibles. Modelado por lo general
Si bien hay muchos lenguajes de modelado, notaciones, implica el desarrollo de sólo aquellos aspectos o
técnicas y herramientas en la literatura y en la práctica, hay que características del software que necesitan respuestas
unifica conceptos generales que se aplican en alguna forma a específicas, abstraerse de cualquier información no esencial.
todos ellos. Las siguientes secciones proporcionan antecedentes Este enfoque mantiene los modelos manejable y útil.
sobre estos conceptos generales.
• Proporcionar Perspectiva: modelado proporciona vistas del
software bajo estudio utilizando un conjunto definido de
1.1. Principios de modelado normas para la expresión del modelo dentro de cada vista.
[1 *, C2S2, c5s1, c5s2] [2 *, C2S2] [3 *, c5s0] Este enfoque perspectiva- impulsado proporciona
dimensionalidad al modelo (por ejemplo, una vista estructural,
Modelado proporciona al ingeniero de software con un enfoque vista del comportamiento, vista temporal, vista organizativa, y
organizado y sistemático de los aspectos significativos tando otros puntos de vista como relevante). La organización de la
sentantes de software en estudio, facilitando la toma de información en vistas centra los esfuerzos de modelado de
decisiones sobre el software o elementos de la misma, y la software en concreto
comunicación de los
Modelos de Ingeniería de Software y Métodos 9-3
preocupaciones pertinentes a la vista mediante las apropiadas Los modelos se construyen para representar objetos del mundo
notación, el vocabulario, métodos y herramientas. real y sus comportamientos para responder a preguntas específicas
acerca de cómo se espera que el software para operar. Interrogar a
• Permitir comunicaciones efectivas: modelado emplea el los modelos, ya sea a través de la exploración, simulación, o
dominio de aplicación del vocabulario del software, un revisión-puede exponer áreas de incertidumbre dentro del modelo y
lenguaje de modelado, y la expresión semántica (en otras el software al que se refiere el modelo. Estas incertidumbres y
palabras, tras tanto dentro del contexto ing). Cuando se utiliza preguntas sin respuesta sobre los requisitos, diseño y / o
de manera rigurosa y sistemática, esta modelado resultado implementación pueden ser manejados de manera apropiada. El
en un enfoque de informes que facilita la comunicación eficaz elemento de expresión primaria de un modelo es una entidad. Una
de la información de software para interesados en el entidad puede representar artefactos de hormigón (por ejemplo,
proyecto. procesadores, sensores, o robots) o artefactos abstractas (por
ejemplo, módu- los de software o protocolos de comunicación).
entidades modelo se conectan a otras entidades que utilizan rela-
Un modelo es una abstracción o la simplificación de un ciones (en otras palabras, líneas o los operadores textuales en las
componente de software. Una consecuencia del uso de la entidades de destino). Expresión de las entidades modelo se puede
abstracción es que hay una única abstracción completa- mente realizar usando textuales o gráficas lenguajes de modelado; Ambos
describe un componente de software. Por el contrario, el modelo del tipos de lenguaje de modelado se conectan a través de entidades
software se representa como una agregación de abstracciones, que, del modelo de construcciones del lenguaje específicos. El significado
cuando se toman juntos-describir aspectos seleccionados, de una entidad puede ser representado por su forma, atributos de
perspectivas o puntos de vista, sólo aquellos que son necesarios texto, o ambos. En general, la información textual se adhiere a la
para tomar decisiones informadas y responder a las razones de la estructura sintáctica del idioma. Los significados Cise previas
creación de la modelo en el primer lugar. Esta simplificación relacionadas con el modelado de contexto, estructura y
conduce a un conjunto de supuestos sobre el contexto en el que se comportamiento de uso de estas entidades y las relaciones depende
coloca el modelo que también deben ser capturado en el modelo. del lenguaje de modelado utilizado, el rigor del diseño aplicado al
Entonces, al reutilizar el modelo, estos supuestos pueden ser esfuerzo de modelado, la vista específica está construyendo, y la
validados primero en establecer la relevancia del modelo reutilizados entidad a la que el elemento notación específica puede estar unido.
dentro de su nuevo uso y el contexto. Múltiples vistas del modelo pueden ser necesarios para capturar la
semántica necesarios del software.
Propiedades de los modelos son aquellos las distintas prestaciones Al usar los modelos soportados con automatización ción, los
distintivas de un modelo en particular utilizados para caracterizar su modelos se pueden comprobará la integridad y consistencia. La utilidad
integridad, la consistencia y exactitud dentro de la notación de modelado de estas comprobaciones depende en gran medida del nivel de rigor
elegido y utillaje utilizado. Propiedades de los modelos incluyen los táctica semántica y sin- aplicada al esfuerzo de modelado en adi- ción
siguientes: al soporte de herramientas explícita. La corrección es Tıpicamente
comprobado a través de la simulación y / o revisión.
• Lo completo: el grado en que se han aplicado todos
los requisitos y comprobada dentro del modelo.
1.3. Sintaxis, la semántica y la pragmática
• Consistencia: el grado en que el modelo no contiene [2 * c2s2.2.2p6] [3 *, c5s0]
requisitos en conflicto, ciones aseveraciones, restricciones,
funciones o descripciones de componentes. Los modelos pueden ser sorprendentemente engañoso. El hecho de
que un modelo es una abstracción con la falta de informa- ción puede
• Exactitud: el grado en que el modelo satisface sus conducir a uno en un falso sentido de completa- mente la comprensión
requisitos y el diseño especifi- caciones y está libre de del software de un solo modelo. Un modelo completo ( “completo”
defectos. siendo
9-4 Guía SWEBOK® V3.0
en relación con el esfuerzo de modelado) puede haber una unión de varios puede ser introducido, lo que conduce a errores. Con muchos
submodelos y cualquiera de los modelos de función especiales. El examen ingenieros de software que trabajan en una parte del modelo con el
y la relación tivo de toma de decisiones a un modelo único dentro de esta tiempo junto con las actualizaciones de la herramienta y tal vez nuevas
colección de submodelos pueden ser problemáticos. exigencias, hay oportunidades para partes del modelo para
representar algo diferente de la intención del autor original y el
La comprensión de los significados precisos de constructos contexto modelo inicial.
ELING MOD- también puede ser difícil. lenguajes de modelado se
definen por reglas sintácticas y semánticas. Para lenguajes
textuales, la sintaxis se define utilizando una gramática notación 1.4. Condiciones previas, postConditions, e invariantes
que define construcciones len- guaje válidos (por ejemplo, la Forma
Backus-Naur (BNF)). Para lenguajes gráficos, la sintaxis se define [2 *, c4s4] [4 *, c10s4p2, c10s5p2p4]
usando modelos gráficos llamados els metamod-. Al igual que con
BNF, metamodelos definen las construcciones sintácticas válidas Al modelar las funciones o métodos, el ingeniero de software
de un lenguaje de modelado gráfico; metamodelo define cómo suele comenzar con un conjunto de suposiciones sobre el estado
estos constructos se pueden componer para producir modelos del software antes de, durante y después de la función o método
válidos. La semántica de lenguajes de modelado especifican el cutis eje-. Estos supuestos son esenciales para el funcionamiento
significado que se atribuye a las entidades y relaciones capturados rect angular de la función o método y se agrupan, para la
dentro del modelo. Por ejemplo, un diagrama simple de dos cajas discusión, como un conjunto de condiciones previas,
conectadas por una línea está abierto a una variedad de postcondiciones, e invariantes.
interpretaciones. Sabiendo que el diagrama en el que se colocan y
con- las cajas CONECTADOS es un diagrama de objeto o un
diagrama de actividad puede ayudar en la interpretación de este • Condiciones previas: un conjunto de condiciones que deben ser
modelo. Como cuestión práctica, por lo general hay un buen satisfechas antes de la ejecución de la función o método. Si estas
entendimiento de la semántica de un modelo de software específico condiciones previas no se sostienen antes de la ejecución de la
debido al lenguaje de modelado elegido, cómo se utiliza ese función o método, la función o método pueden producir resultados
lenguaje de modelado para expresar las entidades y las relaciones involuntaria de OU.
dentro de ese modelo, la base de la experiencia del modelador (s) y
el contexto dentro del cual se ha llevado a cabo el modelado y • Condiciones posteriores: un conjunto de condiciones que se
representado. El significado se com- municated a través del modelo garantiza que sea cierto después de la función o método ha
incluso en presencia de información incompleta a través de ejecutado con éxito. Por lo general, las condiciones posteriores
abstracción; pragmática explica cómo el significado se materializa representan cómo el estado del software ha cambiado, cómo
en el modelo y su contexto y comunicarse efectivamente a otros pará- metros pasados a la función o método han cambiado,
ingenieros de software. Todavía hay casos, sin embargo, donde se cómo los valores de datos han cambiado, o cómo se ha visto
necesita cautela ción en relación con el modelado y la semántica. afectado el valor de retorno.
Por ejemplo, las piezas modelo importado de otro modelo o de la
biblioteca deben ser examinados para supuestos semánticos que • invariantes: un conjunto de condiciones dentro del
entran en conflicto en el nuevo entorno de modelado; esto puede entorno operativo que persisten (en otras palabras, no
no ser obvia. El modelo debe ser revisado para supuestos cambie) antes y después de la ejecución de la función o
documentados. Mientras que la sintaxis de modelado puede ser método. Estas invariantes son pertinentes y necesarios
idéntico, el modelo puede significar algo muy diferente en el nuevo para el software y el correcto funcionamiento de la
entorno, que es un contexto diferente. Además, consideran que función o método.
como software madura y se realizan cambios, la discordia
semántica
2. Tipos de Modelos
y avisos generados por estas herramientas de análisis y demostrado en y pseudo-código, código escrito a mano y generado herramienta, casos
una inspección o revisión indican las acciones correctivas necesarias manuales y automatizados de prueba e informes, y archivos y datos. Estos
probables para garantizar la integridad de los modelos. productos de trabajo pueden estar relacionados a través de diferentes
3.2. La consistencia para analizar extendido, hay una necesidad de asignar y controlar estas relaciones de
[3 *, c4s1.1p7, c4s6] [5 *, P8-11] trazabilidad para demostrar los requisitos de software coherencia con el
La consistencia es el grado en que los modelos con- tienen no hay de software KA) y los muchos productos de trabajo. El uso de trazabilidad
requisitos en conflicto, afirmaciones, straints con-, funciones o suele mejorar el manage- ment de productos de trabajo de software y
descripciones de componentes. Típicamente, la comprobación de software de calidad pro- ceso; sino que también proporciona garantías a
consistencia se logra con la herramienta de modelado utilizando una los titulares de stake- que todos los requisitos se han cumplido. La
función de análisis automatizado; modelos también se pueden examinar trazabilidad permite cambiar el análisis una vez que el software es
para consistencia de forma manual mediante inspecciones u otras desarrollado y puesto en libertad, ya que las relaciones a los productos de
técnicas de revisión (ver la calidad KA Software). Al igual que con trabajo de software fácilmente se pueden desplazar para evaluar el
integridad, errores y avisos generados por estas herramientas de análisis impacto del cambio. Las herramientas de modelado suelen proporcionar
y demostrado en una inspección o revisión indicar la necesidad de una alguna automatizado o manual de los medios para espec- ify y gestionar
acción correctiva. enlaces de trazabilidad entre los requisitos, diseño, código y / o entidades
[5 *, P8-11]
métodos de ingeniería de software proporcionan un enfoque activamente como un recurso sistemas de negocio o activo.
típicamente compuesto de una notación y sintaxis, la semántica 4.3. Los métodos de prototipado
para el uso de la notación, y un conjunto de relaciones permitidos [1 *, c12s2] [3 *, c2s3.1] [6 *, c7s3p5]
para objetos.
• Programa de Perfeccionamiento y Derivación: Pro- gram creación de prototipos de software es una actividad que generalmente
refinamiento es el proceso de creación de un nivel más bajo (o más crea siones ver- incompletas o mínimamente funcionales de una
detallada) especificación utilizando una serie de transformaciones. aplicación de software, por lo general para prueba- ing nuevas
Es a través de sucesivas transformaciones que el ingeniero de características, solicitando información sobre los requisitos de software
software se deriva una representación ejecutable de un programa. o interfaces de usuario, fur- Ther explorar requisitos de software,
Las especificaciones pueden ser refinados, añadiendo detalles diseño de software, o opciones de implementación, y / o la obtención
hasta que el modelo se puede formu- lated en un lenguaje de de alguna otra información útil sobre el software. El ingeniero de
programación 3GL o en una parte ejecutable de la lengua software selecciona un método de creación de prototipos para
especifica- ción elegida. Este refinamiento especificación se hace entender el menos aspectos o compo- nentes del software primero
posible mediante la definición de las especificaciones con entiende; este enfoque es en contraste con otros métodos de
propiedades semánticas precisas; las especificaciones deben ingeniería de software que normalmente comienzan desarrollo con las
establecer no sólo las relaciones entre las entidades, sino también porciones más entendidos primeros. Típicamente, el producto
los significados de tiempo de ejecución exactos de esas relaciones proto-mecanografiada no se convierta en el producto de software final
y operaciones. sin extensa retrabajo desarrollo o la refactorización.
de software que implica especificar las condiciones previas y creación de prototipos. Los ejemplos de objetivos de creación de
condiciones posteriores alrededor de cada bloque importante prototipos incluyen una especificación de requisitos, un elemento de
del diseño, y el uso de la lógica del desarrollo de la prueba de diseño arquitectónico o componente, un algoritmo, o una interfaz de
un objetivo conjunto de requisitos (por ejemplo, un prototipo • Melé: Este enfoque es más ágil la gestión del medio ambiente
requisitos); el prototipo también puede servir como modelo para que los otros proyectos. El scrum master gestiona las
un futuro esfuerzo de desarrollo de software (por ejemplo, como actividades dentro del proyecto de la subasta; cada incremento
en una especificación de interfaz de usuario). se llama una carrera de velocidad y no dura más de 30 días. Se
desarrolla una lista de reserva de pedidos de productos de
artículos (PBI) a partir del cual se identifican las tareas,
4.4. Los métodos ágiles definidas, prioridad, y estima. Una versión traba- jando del
[3 *, c3] [6 *, c7s3p7] [7 *, c6, App. UN] software ha sido probado y puesto en libertad en cada
incremento. Las reuniones diarias de scrum asegurar el trabajo
Los métodos ágiles nacieron en la década de 1990 a partir de la se logró planificar.
necesidad de reducir la gran sobrecarga aparente asocia- dos con el
peso pesado, los métodos basados en planes utilizados en los • FDD: Este es un enfoque basado en modelos, corto, iterativo
proyectos de desarrollo de software a gran escala. Los métodos de desarrollo de software tivo usando un proceso de cinco
ágiles son considerados métodos ligeros en cuanto a que se fases: (1) el desarrollo de un modelo de producto a alcance la
caracterizan por ciclos cortos, iteraciones de desarrollo tiva, equipos amplitud del dominio, (2) crear la lista de necesidades o
auto-organizados, los diseños más simples, la refactorización de características, (3 ) construir el plan de desarrollo de
código, desarrollo basado en pruebas, la participación de cliente funciones, (4) el desarrollo de diseños para funciones de
frecuente, y un énfasis en la creación de un trabajo demostrable iteración específica, y (5) de código, prueba, y luego integrar
producto con cada ciclo de desarrollo. Muchos métodos ágiles están las funciones. FDD es similar a un enfoque incremental de
disponibles en la lit- eratura; algunos de los enfoques más populares, desarrollo de software; También es similar a XP, excepto que
que se discuten aquí en breve, incluyen desarrollo rápido de la propiedad del código es asignado a individuos más que el
aplicaciones (RAD), eXtreme Pro- gramación (XP), Scrum, y el equipo. FDD hace hincapié en un enfoque de arquitectura
desarrollo de funciones-Driven (FDD). global para el software, que promueve la creación de la función
correctamente la primera vez en lugar de enfatizar
refactorización continua.
Sommerville 2011
Brookshear 2008
Página-Jones 1999
Budgen 2003
ala 1990
[7 *]
[5 *]
[3 *]
[2 *]
[4 *]
[6 *]
[1 *]
1. Modelado
C2S2,
1.1. Principios de
c5s1, C2S2 c5s0
modelado
c5s2
1.3. Sintaxis, la
c2s2.2.2
semántica y la c5s0
P6
pragmática
2. Tipos de Modelos
2.1. Modelado de
c7s2.2 c8s1
información
c7s2.1,
2.2. Modelado del
c7s2.3, c9s2 c5s4
comportamiento
c7s2.4
c7s2.5,
2.3. Modelado
c7s3.1, c5s3 c4
estructura
c7s3.2
3. Análisis de Modelos
3.3. El análisis de la
pp8-11
corrección
c4s7.1,
3.4. trazabilidad
c4s7.2
3.5. Análisis de
c10, c11 c29s1.1, c5
interacción c29s5
Modelos de Ingeniería de Software y Métodos 9-11
Sommerville 2011
Brookshear 2008
Página-Jones 1999
Budgen 2003
ala 1990
[7 *]
[5 *]
[3 *]
[2 *]
[4 *]
[6 *]
[1 *]
4. Software
Los métodos de ingeniería
c2s2.2,
4.1. Los métodos c13, c15,
c7s1,
heurísticos c16
c5s4.1
c6, app.
4.4. Los métodos ágiles c3 c7s3p7
UN
9-12 Guía SWEBOK® V3.0
Referencias
Capability Maturity Model Más recientemente, la calidad del software se define como la
CMMI
Integration cosq “capacidad de producto de software para satisfacer necesidades
Costo de software comercial de expresadas o implícitas, en condiciones especiales” requisitos [4] y
Commercial Off-The-Shelf como “el grado en que un producto de software cumple creada; Sin
calidad
Software embargo, la calidad depende del grado en que esos requisitos cado
blecimientos representan con exactitud las necesidades de los
Modo de Falla y Efectos FMEA Análisis TLC
interesados, deseos y expectativas”[5]. Ambas definiciones abrazan
El análisis de fallos árbol
la premisa de conformidad con los requisitos. Ni se refiere a tipos de
PDCA Plan-Do-Check-Act PDSA los requisitos (por ejemplo, funcional, fiabilidad, rendimiento,
Verificación y validación ("el -ilities ”Es una abreviatura común). los requisitos de calidad de
software son en realidad los atributos de (o limitaciones) sobre los
requisitos funcionales (lo que hace el sistema). Requisitos de software
INTRODUCCIÓN también pueden especificar el uso de recursos, un protocolo de
comunicación, o muchas otras características. Este KA intenta claridad
¿Cuál es la calidad del software, y por qué es tan impor- tante que mediante el uso de la calidad del software en el sentido más amplio de
se incluye en muchas áreas de conocimiento (KAS) de la Guía las definiciones anteriores y mediante el uso de los requisitos de calidad
SWEBOK? de software como con- straints sobre los requisitos funcionales. La
Una de las razones es que el término la calidad del software está calidad del software se logra mediante la conformidad con todos los
sobrecargado. La calidad del software puede referirse: a deseable requisitos, independientemente de lo que es característico manera
características capaces de productos de software, en la medida en especificada o cómo se agrupan o se nombra requisitos. La calidad del
que un determinado posi- producto de software sess esas software también se considera en muchos de los SWEBOK KAs porque
características, y para procesos, herramientas y técnicas utilizadas es un eter param básica de un esfuerzo de ingeniería de software. Para
para lograr esas características. Con los años, los autores y todos los productos neered nieros, el objetivo principal es ofrecer un
organizaciones han definido el término calidad diferente. Para Phil valor máximo de las partes interesadas, mientras que el equilibrio de las
Crosby, que era “la conformidad con los requisitos” [1]. Watts limitaciones de costo y cronograma de desarrollo; esto a veces se
Humphrey refiere a él como “lograr excelentes niveles de‘aptitud caracteriza como “aptitud para
para el uso’[2]. Entre tanto, IBM acuñó la frase “impulsada por el
mercado
10-1
10-2 Guía SWEBOK® V3.0
utilizar.”valor de los grupos de interés se expresa en los requisitos. Para los muchos aspectos de la calidad se definirán y discutirán
productos de software, los interesados podrían valorar el precio (lo que formalmente.
pagan por el producto), tiempo de espera (la rapidez con que reciben el Un ingeniero de software debe entender los conceptos cali-
producto), y la calidad del software. dad, las características, valores y su aplicación al software
bajo desarrollo o mantenimiento. El concepto importante es
Esta KA aborda las definiciones y proporciona una visión general que los requisitos de software definen los atributos de calidad
de las prácticas, herramientas y técnicas para la definición de la requeridos del software. Requisitos de software influyen en los
calidad del software y para valorar el estado de la calidad del software métodos de medición y los criterios de acep- tación para
durante el desarrollo, mantenimiento y despliegue. Las referencias evaluar el grado en que el software y la documentación
citadas proporcionan detalles adicionales. relacionada a alcanzar los niveles de calidad deseados.
que los ingenieros informan con precisión la información, con- producto de software para el cliente. costos ure Fail externos incluyen
diciones, y los resultados relacionados con la calidad. La ética actividades para responder a problemas de software descubiertas
también juegan un papel importante en la calidad del software, la después de la entrega al cliente. Los ingenieros de software deben ser
cultura, y las actitudes de los ingenieros de software. El IEEE capaces de utilizar métodos cosq para determinar los niveles de calidad
Computer Society y la ACM han desarrollado un código de ética y del software y también deben ser capaces de presentar alternativas de
la práctica pro- fesional (ver Códigos de Ética y Conducta calidad y sus costes de manera que se pueden realizar compensaciones
Profesional de la Ingeniería de Software KA Práctica Profesional). entre costo, horario, y la entrega de valor para los accionistas.
Definir y luego la consecución de la calidad del software no es Terminología para características de calidad de software difiere de
simple. Las características de calidad pueden o pueden no ser una taxonomía (o modelo de la calidad del software) a otro, cada
necesarios, o se les puede pedir a un mayor o menor grado, y las modelo tal vez tener un número diferente de niveles jerárquicos y un
compensaciones se pueden hacer entre ellos. Para ayudar a número total diferente de características. Varios autores han
determinar el nivel de calidad del software, es decir, el logro de producido modelos de características de calidad de software o
valor para los accionistas, esta sección presenta coste de la calidad atributos que pueden ser útiles para la discusión, la planificación, y
del software (cosq): un conjunto de medidas derivadas de la la calificación de la calidad de los productos de software. ISO / IEC
evaluación económica de los procesos de desarrollo y 25010: 2011 [4] define la calidad del producto y la calidad en uso
mantenimiento de software de calidad. Las mediciones cosq son como dos modelos de calidad relacionados. Apéndice B en el Guía
ejemplos de mediciones de proceso que pueden utilizarse para SWE- BOK proporciona una lista de las normas aplicables para cada
inferir carac- terísticas de un producto. KA. Normas de este KA cubren diversas formas de caracterizar la
calidad del software.
organización. surgen los costos de evaluación de las actividades del No es posible distinguir por completo la calidad del proceso de la
proyecto que encuentran defectos. Estas actividades de evaluación se calidad del producto debido a los resultados del proceso incluyen
pueden clasificar en los costos de los exámenes (diseño, pares) y los productos. La determinación de si un proceso tiene la capacidad de
costos de las pruebas (pruebas software de la unidad, de integración de productos Duce consistentemente pro de la calidad deseada no es
software, pruebas de nivel de sistema, pruebas de aceptación); los costos simple. El proceso de ingeniería de software, discutido en el proceso
de evaluación se extenderían a los proveedores de software de ingeniería de software KA, las influencias de las características de
subcontratados. Los costos de fallos internos son los que se incurre para calidad de software pro- ductos, que a su vez afectan a la calidad
fijar defectos encontrados durante las actividades de evaluación y percibida por los interesados.
descubrió antes de la entrega de la
10-4 Guía SWEBOK® V3.0
1.3.2. Calidad del producto de software en la calidad que han declarado que la calidad de un producto
está directamente relacionada con la calidad del proceso utilizado
El ingeniero de software, en primer lugar, debe determinar el verdadero para crearlo. Enfoques como el ciclo de mejora de Deming de Ley
propósito del software. En este sentido, requisitos de los interesados del Plan-Do-Fecha entrada (PDCA), entrega evolutivo, kaizen, y el
son de suma importancia, y que incluyen los requisitos de calidad, despliegue de la función de calidad (QFD) ofrecen técnicas para
además de los requisitos fun- cionales. Por lo tanto, los ingenieros de especificar los objetivos de calidad y determinar si se cumplen. El
software tienen la responsabilidad de obtener los requisitos de calidad ideal del Instituto de Ingeniería de Software es otro método [7 *].
que pueden no ser explícita al principio y al Deben conocerse su gestión de cali- dad ahora es reconocido por el Guía SWE- BOK como
importancia, así como el nivel de difi- cultad en el logro de ellos. Todos una disciplina importante. patrocinio de gestión de procesos y
los procesos de desarrollo de software (por ejemplo, la obtención de productos apoya las evaluaciones y las conclusiones resultantes.
requisitos, diseño, construcción, construcción, control, mejora de la A continuación, un programa de mejora se desarrolla la
calidad) están diseñados con estos requisitos de calidad en la mente y identificación de acciones detalladas y proyectos de mejora que
puede llevar a los costes de desarrollo adicionales si los atributos tales deben abordarse en un plazo de tiempo posible. apoyo a la
como la seguridad, la seguridad y la fiabilidad son importantes. Los gestión implica que cada proyecto mejoría tiene suficientes
costos de desa- rrollo adicionales ayudan a asegurar que la calidad recursos para lograr el objetivo definido para ello. patrocinio de
obtenida puede canjearse por los beneficios anticipados. El término gestión se solicita con frecuencia mediante la implementación de
producto de trabajo significa cualquier artefacto que es el resultado de actividades de comunicación proactivas.
un proceso utilizado para crear el producto de software final. Ejemplos
de un UCT trabajo PRODUCIRSE incluyen una especificación de
sistema / subsistema, una especificación de requisitos de software para
un componente de software de un sistema, una descripción de diseño
de software, código fuente, prueba de software documen- tación, o
informes. Aunque se describen algunos tratamientos de calidad en 1.5. software de Seguridad
términos de rendimiento del software y el sistema final, buenas prácticas [9 *, c11s3]
de ingeniería requiere que se evalúen productos de trabajo intermedios
correspondientes a la calidad durante todo el proceso de ingeniería de sistemas de seguridad críticos son aquellos en los que un fallo de
software. sis- tema podría dañar la vida humana, los demás seres vivos, las
estructuras físicas, o el medio ambiente. El software en estos
sistemas es crítico para la seguridad. Hay un número creciente de
aplicaciones de software crítico en un número creciente de
industrias. Ejemplos de sistemas con software crítico seguridad-
incluyen sistemas de transporte masivo, plantas de fabricación de
productos químicos, y dispositivos médicos. El fracaso de software
1.4. Mejora de la Calidad de Software en estos sistemas podría tener efectos catastróficos. Existen
[3 *, c1s4] [9 *, c24] [10 *, c11s2.4] normas indus- tria, como DO-178C [11], y emerg- procesos ing,
herramientas y técnicas para el Desa- software safetycritical ing. La
La calidad de los productos de software se puede mejorar a través intención de estas normas, instrumentos y técnicas es reducir el
de procesos preventivas o un proceso iterativo tiva de la mejora riesgo de defectos de inyección en el software y por lo tanto
continua, que requiere control de la gestión, coordinación, y la mejorar la fiabilidad del software. software crítico puede ser
retroalimentación de muchos procesos concurrentes: (1) los categorizado como directo o indirecto. Directa es que el software
procesos del ciclo de vida del software, (2) el proceso de embed- ded en un sistema crítico para la seguridad, como por
detección de fallos / defecto, la eliminación, y pre- vención, y (3) el ejemplo el ordenador de control de vuelo de una aeronave.
proceso de mejora de la calidad. La teoría y los conceptos detrás Indirecta incluye aplicaciones de software utilizadas para
de la mejora de la calidad, tales como la construcción de la desarrollar software crítico seguridad-. software indirecta se incluye
calidad a través de la detección temprana y la prevención de en entornos de ingeniería de software y entornos de prueba de
defectos, la mejora continua de las partes interesadas, y enfoque software.
son pertinentes para la ingeniería de software. Estos conceptos se
basan en el trabajo de los expertos
La calidad del software 10-5
Tres técnicas complementarias para reducción ing el riesgo de cumplir con las normas establecidas para el proyecto (incluyendo
fallo son la evitación, detección y eliminación, y la limitación del los requisitos, limitaciones, diseños, contratos y planes). SQC
daño. Estos software técnicas impacto requisitos funcionales, evalúa inter- medio productos, así como los productos finales. La
requisitos de rendimiento del software y los procesos de desarrollo. cuarta categoría SQM se trata de la mejora tiene varios nombres en
El aumento de los niveles de riesgo implican el aumento de los el software indus- tria, incluyendo SPI, la mejora de la calidad del
niveles de calidad del software assur- técnicas ANCE y control tales software y el software de acciones correctivas y preventivas. Las
como las inspecciones. Los niveles más altos de riesgo pueden actividades en esta categoría buscan mejorar la eficacia del
requerir una revisión más detallada de los requisitos, el diseño y el proceso, la eficiencia, y otras carac- terísticas con el objetivo último
código o el uso de técnicas analíticas más formales. Otra técnica de mejorar la calidad del software. Aunque SPI podría incluirse en
para la gestión de riesgos y control- software Ling es la construcción cualquiera de las tres primeras categorías, un número creciente de
de casos de aseguramiento. Un caso de aseguramiento es un organizaciones de organizar SPI en una cate- goría separada que
artefacto razonada, auditable creado para apoyar la afirmación de puede extenderse a través de muchos proyectos (ver el Proceso de
que su demanda o demandas son satisfechas. Contiene las Ingeniería de Software KA). los procesos de calidad de software
siguientes acciones y sus relaciones: una o más afirmaciones sobre consisten en tareas y técnicas para indicar cómo se están
propiedades; argumentos que enlazan lógicamente parte, las implementando planes de software (por ejemplo, gestión de
pruebas y las posibles hipótesis a las reclamaciones; y un conjunto software, desarrollo, gestión de la calidad, o los planes de gestión
de pruebas y los supuestos que apoyan estos argumentos [12]. de configuración) y qué tan bien los productos intermedios y finales
están cumpliendo con sus requisitos especificados. Los resultados
de estas tareas se montan en los informes de gestión antes de que
se tomen medidas correctivas. La gestión de un proceso de SQM
tiene la tarea de garantizar que los resultados de estos informes
son exactos. La gestión del riesgo también puede jugar un papel
2. Procesos de Gestión de Calidad de Software importante en la entrega de software de calidad. La incorporación
de análisis de riesgos y la gestión gías nicas disciplinados en los
gestión de la calidad del software es el conjunto de todos los procesos procesos del ciclo de vida del software puede ayudar a mejorar la
que garanticen que los productos de software, servicios y la calidad del producto (véase la Ingeniería de Software de Gestión de
implementación de procesos de ciclo de vida cumplen los objetivos de KA para mate- rial relacionado en la gestión de riesgos).
calidad de software de organización y lograr la satisfacción de las partes
interesadas [13, 14]. SQM define los procesos, los dueños del proceso,
los requisitos para los procesos, mediciones de los procesos y sus
salidas y retroalimentación Nels Chan durante todo el ciclo de vida del
software. SQM comprende cuatro subcategorías: software de
planificación de la calidad, aseguramiento de la calidad del software
(SQA), control de la calidad del software (SQC), y la mejora de procesos
de software (SPI). la planificación de la calidad del software incluye la
determinación de cuáles estándares de calidad se van a utilizar, la 2.1. Calidad de Software
definición de objetivos de calidad específicos, y estimar el esfuerzo y el [7 *, C4-C6, c11, c12, c26-27]
calendario de actividades de calidad de software. En algunos casos, la
planificación de la calidad del software también incluye la definición de Para sofocar un malentendido generalizado, chorro suave de
los procesos de calidad de software para ser utilizados. dades SQA garantía de calidad cerámica no está probando. aseguramiento de
activi- definir y evaluar la adecuación de los procesos de software para la calidad del software (SQA) es un conjunto de actividades que
proporcionar evidencia que establezca la confianza de que los procesos definen y evaluar la adecuación de los procesos de software para
de software son consignados para piado y producir productos de proporcionar evidencia que establece con- fianza que los procesos
software de calidad traje- poder para los fines previstos [5]. actividades de software son apropiados y producen productos de software de
SQC examinan artefactos específicos del proyecto (docu- mentos y calidad adecuada para sus fines previstos. Un atributo clave de
ejecutables) para determinar si SQA es la objetividad de la función SQA con respecto al proyecto.
La función SQA también puede ser organizativamente
independiente de la proyec- ect; es decir, libre de técnica, de
gestión y
10-6 Guía SWEBOK® V3.0
las presiones financieras del proyecto [5]. SQA tiene dos aspectos: de ciclo vital. Esta evaluación demuestra si los
garantía de producto y de garantía de proceso, que se explican en la requisitos son correctos, com- pleta, precisa,
sección 2.3. El plan de la calidad del software (en algunos sectores de coherente y comprobable. Los procesos de V & V
la industria que se denomina el plan de software de aseguramiento de determinar si los productos de desarrollo de una
la calidad) define las actividades y tareas empleadas para garantizar actividad dada se ajustan a los requisitos de que la
que el software desarrollado para un producto específico satisface actividad y si el producto cumple sus necesidades
mentos del proyecto establecidos requisitos y necesidades de los de uso y de usuarios previstos.
usuarios dentro de los costos del proyecto y las restricciones del
cronograma y es proporcional a los riesgos del proyecto. El PACS
asegura primero que los objetivos de calidad están claramente La verificación es un intento de asegurar que el producto se ha
definidos y entendidos. actividades y tareas de calidad del plan SQA construido correctamente, en el sentido de que los productos de salida
se especifican con sus costos, necesidades de recursos, objetivos y de una actividad cumplen con las especificacio- nes que se les
calendario en relación con los objetivos relacionados con la ingeniería imponen en las actividades anteriores. La validación es un intento de
de software Ment manage-, desarrollo de software, software y planes asegurar que el producto adecuado está construido, es decir, el
de man- tenance. El plan SQA debe ser consistentes con el plan de producto cumple con su finalidad específica. Tanto el proceso de
gestión de configuración de software (ver el software de configuración verificación y validación del proceso comienzan temprano en la fase de
Manage- ment KA). El plan SQA identifica documentos, normas, desarrollo o mantenimiento. Proporcionan un examen de las
prácticas y convenciones que rigen el proyecto y cómo estos artículos características clave del producto en relación tanto con predecesora
son revisados y monitoreados para asegurar la adecuación y inmediata del producto y las especificaciones que deben cumplirse. El
cumplimiento. El plan SQA también medidas; técnicas estadísticas; los propósito de la planificación de V & V es asegurar que cada recurso, el
procedimientos para la presentación de informes de problemas y papel y la responsabilidad está claramente asignadas. Los documentos
acciones correctivas; recursos tales como herramientas, técnicas y del plan de V & V resultantes describen los diversos recursos y sus
metodologías; la seguridad de los medios físicos; formación; y SQA funciones y actividades, así como las técnicas y herramientas que se
informes y docu- mentación. Por otra parte, el plan de SQA se ocupa utilizarán. La comprensión de los diferentes efectos de cada actividad V
de las actividades de aseguramiento de la calidad del software de y V ayuda en la planificación cuidadosa de las técnicas y los recursos
cualquier otro tipo de actividad se describe en los planes a dicho necesarios para el cumplimiento de sus fines. El plan también se ocupa
software como la adquisición de software de proveedores para el de la ment manage-, la comunicación, las políticas y procedimientos de
proyecto, el software off-the-shelf comercial (COTS) de instalación, y las actividades de V & V y su interacción, así como los requisitos de
servicio después de la entrega de El software. También puede información y documentación defecto.
contener la aceptación crite- ria, así como la presentación de informes
y la gestión de activi- lazos que son críticos para la calidad del
software.
equipos. revisiones por la dirección están a cargo de la gestión de la 2.3.2. Comentarios técnicos
organización o proyecto. El personal de inge- niería lleva a cabo
revisiones técnicas. Como se indica en [16 *],
• revisiones por la dirección evalúan los resultados reales del proyecto El propósito de una revisión técnica es evaluar un
con respecto a los planes. producto de software por un equipo de personal
• Revisiones técnicas (incluidas las inspecciones, paso a paso, y la cualificado para determinar su idoneidad para el uso
comprobación de escritorio) examinar productos de trabajo de previsto e identificar las discrepancias de las
ingeniería. especificaciones y normas. Proporciona
• auditorías de aseguramiento de proceso. actividades de administración evidencia para confirmar el estado
aseguramiento proceso SQA asegurarse de que los técnico del proyecto.
procesos utilizados para desarrollar, instalar, operar y
mantener el software se ajustan a los contratos, cumplir con
las leyes, normas y regulaciones impuestas y son Aunque cualquier producto de trabajo puede ser revisada,
adecuados, eficientes y eficaces para el fin previsto [5]. revisiones técnicas se realizan en los principales productos de trabajo
de ingeniería de software de los requisitos de software y diseño de
• auditorías de garantía de producto. actividades de garantía de software. Propósito, funciones, actividades, y lo más importante es el
producto SQA se aseguran para proporcionar evidencia de nivel de formalidad distinguen diferentes tipos de exámenes técnicos.
que los productos de software y la documentación Las inspecciones son los más formales, Tutoriales menos, y las
relacionada se identifican en y cumplir con los contratos; y revisiones de pares o controles documentales son los menos formal.
asegurar que se identifican y tratan [5] mances nonconfor-. Ejemplos de roles específicos incluyen un tomador de decisiones (es
decir, el plomo de software), un líder de opinión, una grabadora, y
damas (miembros del personal técnico que examinan los productos de
2.3.1. Los comentarios de gestión trabajo). Las revisiones también se distinguen por si las reuniones
(cara a cara o electrónico) están incluidos en el proceso. En algunos
Como se indica en [16 *], métodos de revisión de damas solitario exami- productos de trabajo ine
y enviar sus resultados a un coordinador. En otros métodos de damas
El propósito de una revisión por la dirección es monitorear el trabajan cooperativamente en las reuniones. Una revisión técnica
progreso, determinar el estado de los planes y programas, y puede requerir que las aportaciones obligatorias estar en su lugar a fin
evaluar la eficacia de los procesos de gestión, herramientas y de proceder:
técnicas. revisiones por la dirección compárense resultados
efectivos contra los planes para determinar el estado de los
proyectos o esfuerzos de manteni- miento. Los principales
parámetros de revisión-hombre agement son los costos del
proyecto, el calendario, el alcance y la calidad. revisiones por
la dirección evalúan las decisiones sobre las acciones • Declaración de objetivos
correctivas, cambios en la asignación de los recursos, o • producto de software específico
cambios en el alcance del proyecto. • plan específico de gestión de proyectos
• lista de temas relacionados con este producto
• procedimiento de revisión técnica.
Las entradas a exámenes de gestión pueden incluir informes El equipo sigue el procedi- opinión pro-documentado. La
de auditoría, informes, V & V informes y planes de muchos tipos, revisión técnica se completa una vez que todas las actividades
incluyendo la gestión de riesgos, gestión de proyectos, gestión de enumeradas en el examen se han completado.
configuración de software, la seguridad de software, y Assessment
riesgo, entre otros progresar. (Consulte el software de gestión de Revisiones técnicas de código fuente pueden incluir una amplia
Inge- niería y el software de configu- ración de Gestión KAs para variedad de problemas tales como el análisis de algoritmos de, la
organización de código para la capacidad de prueba, y consideraciones pequeña sección del producto a la vez (muestras). Cada miembro
críticas la seguridad operacional. del equipo examina el producto de software y otros insumos de
Tenga en cuenta que las revisiones técnicas de los modelos de código revisión antes de la reunión de revisión, tal vez mediante la
fuente o el diseño tales como UML también se denominan análisis estático aplicación de una téc- nica analítica (ver sección 3.3.3) a una
(véase el tema 3, Consideraciones prácticas). pequeña sección del producto o de la totalidad del producto con un
enfoque en sólo un aspecto-por ejemplo, interfaces. Durante la
2.3.3. inspecciones inspección, el moderador lleva a cabo la sesión y verifica que todo el
mundo ha preparado para la inspección y lleva a cabo la sesión. Las
“El propósito de la inspección es detectar e identificar anomalías de inspecciones grabadora ción documentos anomalías encontradas.
productos de software” [16 *]. Algunos diferenciadores importantes de Un conjunto de reglas, con criterios y preguntas pertinentes a los
las inspecciones en comparación con otros tipos de revisiones temas de interés, es una herramienta común utilizada en las
técnicas son las siguientes: inspecciones. La lista resultante a menudo clasifica las anomalías
(ver sección 3.2, defecto caracterización ción) y es revisada para su
integridad y picante Accu por el equipo. La decisión de salida de
1. Reglas. Las inspecciones se basan en el examen de un producto de inspección corresponde a una de las siguientes opciones:
trabajo con respecto a un conjunto definido de criterios
2. Toma de muestras. Más bien que intento de examinar cada 2. Aceptar con la verificación de la reanudación
3. Peer. Las personas que llevan a cabo las posiciones de Como se indica en [16 *],
5. Reunión. El proceso de inspección incluye reuniones (cara a Tutoriales se distinguen de las inspecciones. La diferencia principal
cara o electrónico) con- canalizado por un moderador de es que los Ents autor Las presiones para el trabajo de productos a los
acuerdo con un procedimiento formal en el que los equipos de demás participantes en una reunión (cara a cara o electrónico). A
inspección miem- bros informan las anomalías que han diferencia de una inspección, los participantes de la reunión pueden no
encontrado y otras cuestiones. haber visto necesariamente el material antes de la reunión. Las
reuniones pueden llevarse a cabo Mally menos de lucro. El autor toma
el papel de explicar y que muestra el material a los participantes y
Las inspecciones de software siempre implican el autor de un solicita retroalimentación. Al igual que las inspecciones, tutoriales
producto intermedio o final; otras opiniones no. Las inspecciones también puede llevarse a cabo en cualquier tipo de trabajo-producto, incluyendo
incluyen un líder de inspección, una grabadora, un lector, y algunos (de plan de proyecto, requisitos, diseño, código fuente, y los informes de
dos a cinco) Damas (inspectores). Los miembros de un equipo de las pruebas.
inspec- ción pueden poseer diferentes conocimientos, tales como
experiencia en el campo, experiencia en métodos de diseño de software,
o la experiencia lenguaje de programación. las inspecciones se realizan
normalmente en un relativamente
La calidad del software 10-9
2.3.5. Proceso de aseguramiento y Aseguramiento de auditorías • las normas específicas de ingeniería de software aplicables
porcionar una evaluación independiente de la con- Formance la programación de todos los procesos
de productos de software y pro cesos a los reglamentos • los usuarios previstos y el uso del sistema
aplicables, normas, directrices, planes y procedimientos. • el nivel de integridad del sistema.
• los componentes comerciales (externos) o estándar (inter- nal) que representan la complejidad del software, la criticidad, riesgo,
rendimiento deseado, fiabilidad, u otras características Los tipos específicos de problemas deben ser agrupados para identificar
únicas en proyectos que definen la importancia del tendencias en el tiempo. El punto es establecer una taxonomía de
software para el usuario y adquirente. Las defectos que sea significativo para la organiza- ción y para los ingenieros
características utilizadas para determinar el nivel de de software. las actividades de control de calidad de software descubrir
integridad puede variar dependiendo de la aplicación infor- mación en todas las etapas de desarrollo de software y
prevista y el uso del sistema. El software es una parte mantenimiento. En algunos casos, la palabra defecto está sobrecargado
del sistema, y su nivel de integridad se ha de determinar para referirse a diferentes tipos de anomalías. Sin embargo, diferentes
como una parte de ese sistema. cultivos de ingeniería y Standards pueden utilizar algo diferentes
puede subir o bajar los niveles de integridad de software asignadas. Los • Error de cálculo: "la diferencia
niveles de integridad de software establecidos para un proyecto son el entre un valor calculado, observado o medido o condición
resultado de acuerdos entre el adquiriente, proveedor, desarrollador, y las y el verdadero, especificado, o el valor o condición
autoridades de aseguramiento independientes. Un esquema de nivel de teóricamente correcto “.
integridad de software es una herramienta utilizada en la determinación de • Error: “Una acción humana que produce un resultado incorrecto.”
niveles de integridad de software. [5] Como se ha indicado en [17 *] “los Un resbalón o un error que hace que per- sona. También llamado
niveles de integridad se puede aplicar durante el desarrollo para asignar error humano.
los esfuerzos de verificación y validación adicionales a los componentes • Defecto: Un “imperfección o deficiencia en un producto de
de alta integridad.” trabajo donde ese producto de trabajo no cumple con sus
requisitos o especificaciones y necesita ser reparado o
reemplazado.” Un defecto es causado por una persona que
cometa un error.
3.2. Caracterización de defectos
[3 *, c3s3, c8s8, c10s2] • Culpa: Un defecto en el código fuente. Un “paso, proceso o
definición incorrecta de datos en el programa de ordenador”. La
Software de evaluación de la calidad (es decir, el control de calidad de codificación de un error humano en el código fuente. Culpa es el
software) Técnicas de encontrar defectos, fallas y fracasos. La nombre formal de un error.
caracterización de estas técnicas conduce a una comprensión del • Fracaso: Un “evento en el cual un sistema o componente de
producto, facilita las correcciones en el proceso o el producto, e informa sistema no realiza una función deseada dentro de límites
a la gestión y otras partes interesadas de la tus esta- del proceso o especificados.” Un fallo se produce cuando una falla se
producto. Existen muchas taxonomías y, si bien se han hecho intentos encuentra por el procesador en condiciones especificadas.
de obtener el consenso, la literatura indica que hay un buen número en
uso. Caracterización defecto también se utiliza en auditorías y
revisiones, con el líder de opinión a menudo se presenta una lista de Usando estas definiciones tres mediciones de calidad de soft- ware
problemas proporcionados por los miembros del equipo para su ampliamente utilizados son la densidad de defectos (número de defectos
examen en una reunión de revisión. A medida que nuevos métodos de por unidad de tamaño de documentos), la densidad de fallo (número de
diseño y las lenguas evolucionan, junto con los avances en el software fallos por 1K líneas de código), y la intensidad fallo (fallos por uso-hora o
en general tecnolo- gías, aparecen nuevas clases de defectos, y se por prueba -hora). modelos de fiabilidad se construyen a partir de datos
requiere una gran cantidad de esfuerzo para interpretar clases de fallos recogidos durante las pruebas de software o desde el software
definidas anteriormente. Cuando el seguimiento de defectos, el en el servicio y por lo tanto pueden ser utilizados para estimar la
ingeniero de soft- ware está interesado no sólo en el número de probabilidad de fallos futuros y para ayudar en las decisiones sobre
defectos, sino también los tipos. Información por sí sola, sin un poco de cuándo detener la prueba. Una probable acción resultante de SQM
clasificación, puede no ser suficiente para identificar las causas hallazgo Ings es eliminar los defectos del producto objeto de examen
subyacentes de los defectos. (por ejemplo, encontrar y corregir errores, crear nueva construcción).
Otras actividades intentan eliminar
La calidad del software 10-11
las causas de los defectos, por ejemplo, análisis de la causa raíz También Métodos formales en la Engineer- Software ing
(RCA). RCA actividades incluyen analizar y resumir los resultados modelos y métodos KA).
para encontrar las causas de raíz y el uso de técnicas de medición
para mejorar el producto y el proceso, así como para realizar un 3.3.2. Las técnicas dinámicas
seguimiento de los defectos y su eliminación. La mejora de
procesos se discute principalmente en el proceso de software técnicas dinámicas implican la ejecución del código de soft- ware.
Engineer- ing KA, con el proceso de SQM ser una fuente de Diferentes tipos de técnicas dinámicas se realizan durante todo el
información. desarrollo y mantenimiento de software. técnicas Generalmente,
estos son pruebas, pero técnicas tales como La simulación y
Los datos sobre las insuficiencias y defectos encontrados por las análisis del modelo pueden considerarse dinámica (ver los
técnicas de control de calidad de software se pueden perder a menos que modelos ingeniería de software y Métodos KA). La lectura de
se graban. Para algunas técnicas (por ejemplo, revisiones técnicas, códigos se considera una técnica estática, pero el software de
auditorías, inspecciones), grabadoras están presentes para establecer ción inge- nieros pueden ejecutar el código a medida que leen a través
tales informa-, junto con las cuestiones y decisiones. Cuando se utilizan de él experimentó. La lectura de códigos puede utilizar técnicas
herramientas automatiza apareadas (ver tema 4, Software cali- dad dinámicas. Esta discrepancia en la categorización indica que las
Herramientas), la salida de la herramienta puede proporcionar la personas con diferentes roles y experiencia en la organización
información de defectos. Los informes sobre defectos se proporcionan a la pueden considerar y aplicar estas técnicas de forma diferente.
gestión de la organización.
3.3. Técnicas de gestión de calidad de software Diferentes grupos pueden realizar pruebas durante el
[7 *, c7s3] [8 *, c17] [9 *, c12s5, c15s1, P417] desarrollo de software, incluidos los grupos inde- pendiente del
[dieciséis*] equipo de desarrollo. La Prueba KA Software está dedicado
3.4. Medición de la Calidad de Software áreas problemáticas del producto de software bajo examen. Las
[3 *, c4] [8 *, c17] [9 *, p90] tablas y gráficos resultantes son ayudas de visualización, que la
decisión MAK- ERS puede utilizar para enfocar los recursos y
mediciones de calidad de software se utilizan para apoyar la toma llevar a cabo mejoras pro Cess en el que parecen estar más se
de decisiones. Con la creciente sofisticación de software, las necesita. Los resultados de análisis de tendencias pueden indicar
cuestiones de calidad van más allá de si es o no el software que se está cumpliendo un horario, tal como en la prueba, o que
funciona a lo bien que logra los objetivos de calidad medibles. ciertas clases de fallos pueden llegar a ser más probable que
Decisiones soportados por surement medi- calidad del software ocurra a menos que se tome alguna acción correctiva en el
incluyen los niveles de calidad del software determinar (en desarrollo. Las técnicas de predicción facilitar la estimación de
particular, porque los modelos de la calidad del producto de esfuerzo de pruebas y el horario y en la predicción de fallos. Más
software incluyen medidas para determinar el grado en que el discusión sobre la medición en general aparece en el Proceso de
producto de software logra las metas de calidad); cuestiones de Ingeniería de Software Ingeniería de Software y Gestión de Kas.
gestión sobre el esfuerzo, costo y cronograma; determinar cuándo información más específica sobre la medición de la prueba se
parar de Exámenes y liberar un producto (ver terminación en la presenta en la Prueba de Software KA.
sección 5.1, las consideraciones prácticas, en el KA Soft- Testing
Ware); y determinar la eficacia de los esfuerzos de mejora de
procesos.
Software de medición de la calidad incluye medi- suring ocurrencias
de defectos y la aplicación de métodos estadísticos para comprender
El costo de los procesos SQM es un problema FRECUENTEMENTE los tipos de defectos que se producen con mayor frecuencia. Esta
criado en la decisión de cómo se deben organizar un proyecto o un grupo información puede ser utilizada por la mejora de procesos de software
de desarrollo y mantenimiento de las mercancías blandas. A menudo, se para los métodos de minería determinantes para prevenir, reducir, o
utilizan modelos genéricos de costo, que se basan en cuando se eliminar su recurrencia. También ayudan en la comprensión de las
encuentra un defecto y la cantidad de esfuerzo que se necesita para tendencias, lo bien que la detección y contención técni- cas están
corregir el defecto relación tivo a encontrar el defecto más temprano en el trabajando, y qué tan bien los procesos, crear y mantener desarrollos
proceso de desa- rrollo. los datos de medición de la calidad de software están progresando. A partir de estos métodos de medición, los perfiles
recopilados internamente pueden dar una mejor idea de costo dentro de de defectos se pueden desarrollar para un dominio apli- cación
este proyecto u organización. Mientras que los datos de medición de la específica. Entonces, para el siguiente proyecto de software dentro de
calidad del software puede ser útil en sí mismo (por ejemplo, el número esa organización, los perfiles se pueden utilizar para guiar los procesos
de requisitos defectuosos o la proporción de los requisitos defectuosos), que SQM es, hacer el esfuerzo donde los problemas son más probable
las técnicas matemáticas y gráficas se pueden aplicar para ayudar en la que ocurra. Del mismo modo, puntos de referencia, o recuentos de
interpretación de las medidas (véase la Ingeniería fundamentos KA). defectos típicos de ese dominio, pueden servir como una ayuda en la
Estas técnicas incluyen determinación cuando el producto está listo para la entrega. Discusión
del sobre con los datos de SQM para mejorar los procesos rrollo y
mantenimiento desa- aparece en la Gestión de Ingeniería de Software y
Proceso de Ingeniería de Software de Kas.
normal)
La caja de herramientas de calidad en la lista de lecturas herramientas de calidad de software incluyen herramientas de análisis
• la predicción (por ejemplo, modelos de fiabilidad). herramientas, realizar el análisis sintáctico y semántico sin ejecutar el
código, y presentar los resultados a los usuarios. Hay una gran variedad
Descriptivos técnicas y ensayos basados en estadísticas a en la profundidad, THOR oughness, y el alcance de herramientas de
se puede aplicar a los artefactos incluyendo modelos, además de código • Herramientas que apoyan el seguimiento de los problemas más
fuente. (Véase el trucción Software Con-, pruebas de software, y software para proporcionar una entrada de anomalías descu- Ered
manteni- Software Principal- KAs para las descripciones de las durante las pruebas de software y análisis posterior, disposición y
herramientas de análisis dinámicos.) resolución. Algunas herramientas incluyen soporte para flujo de
• Las herramientas que facilitan y automatizan parcialmente las pantallas visuales de datos cuantificados en forma de gráficos,
revisiones e inspecciones de documentos y código. Estas tablas, y tablas. Estas herramientas incluyen algu- veces la
herramientas pueden trabajar ruta a diferencias ent participantes funcionalidad para realizar un análisis estadístico de los conjuntos
con el fin de automatizar y controlar un proceso de revisión parcial. de datos (por El propósito de las tendencias más exigentes y hacer
Permiten a los usuarios introducir defectos encontrados durante las extremidades anteriores de los contenedores). Algunas de estas
inspecciones y revisiones para su posterior eliminación. herramientas proporcionan tasas de defectos y de inyección de
• Algunas herramientas ayudan a las organizaciones realizar análisis inyección de defectos y con cada una de las fases del ciclo de vida.
(FTA).
10-14 Guía SWEBOK® V3.0
Sommerville 2011
[dieciséis*]
Bott et al. 2000
Wiegers 2003
Voland 2003
Moore 2006
Galin 2004
Kan 2002
[10 *]
[18 *]
[17 *]
[8 *]
[9 *]
[7 *]
[3 *]
[6 *]
1. Calidad del
Software
fundamentos
1.1. Software de
Ingeniería de la
c1s4 c2s3.5
Cultura y Ética
1.3. Modelos y
características de c24s1 c2s4 c17
calidad
1.4. Mejora de la
S2.4
Calidad de c1s4 c24
c11
Software
1.5. software de
c11s3
Seguridad
2. Calidad de
Software
Los procesos de
gestión
c2
S2.3, c8,
2.2. Verificación y c15
validación S1.1,
S3.3 c21
2.3. Revisiones y
c24s3 *
auditorías
La calidad del software 10-15
Sommerville 2011
[dieciséis*]
Bott et al. 2000
Wiegers 2003
Voland 2003
Moore 2006
Galin 2004
Kan 2002
[10 *]
[18 *]
[17 *]
[8 *]
[9 *]
[7 *]
[3 *]
[6 *]
3. Consideraciones
software
c15
s3.2.2,
3.1. Requisitos de
c15
calidad de c11s1 c12
s3.3.1,
software
c16
s9.10
c3s3,
3.2. Caracterización de
c8s8,
defectos
c10s2
c12s5,
3.3. Técnicas
c7s3 c17 c15s1, *
de SQM
P417
3.4. Medición de la
Calidad de c4 c17 p90
Software
4. Herramientas de
software de calidad
10-16 Guía SWEBOK® V3.0
LECTURAS
Este libro describe la importancia de las prácticas de seguridad de Este libro ofrece explicaciones claras y concisas de los diferentes
software y cómo estas prácticas se pueden incorporar en los métodos de revisión por pares que se distinguen por el nivel de
proyectos de desarrollo de software. formalidad y eficacia. orientación pragmática para la aplicación de los
métodos y cómo seleccionar qué métodos son apropiados para
T. Gilb, Principios de Ingeniería de Software determinadas circunstancias se proporciona.
Administración [ 21].
Este es uno de los primeros libros sobre técnicas de desarrollo NR Tague, La caja de herramientas de calidad, Segunda ed., [24].
Referencias
[1] PB Crosby, La calidad es gratuito, McGraw-Hill, [13] IEEE Std. 12207-2008 (también conocido como ISO / IEC
[5] IEEE P730 ™ / D8 Proyecto de Norma para [17 *] JW Moore, La hoja de ruta de software
Procesos de Calidad de Software Assurance, Ingeniería: Una guía basada en estándares,
IEEE 2012. Wiley-IEEE Computer Society Press, 2006.
[6 *] F. Bott et al., Cuestiones profesionales en [18 *] KE Wiegers, Requisitos de Software, segundo
Ingeniería de software, 3ª ed., Taylor & Francis, ed., Microsoft Press, 2003.
2000.
[19] ISO / IEC / IEEE 24765: 2010 Sistemas y
[7 *] D. Galin, Calidad de Software: Ingeniería de Software-Vocabulario, ISO / IEC / IEEE
De la Teoría a la implementación, Pearson 2010.
Educación, SA, 2004.
[20] N. Leveson, Safeware: Sistema de seguridad y
[8 *] S. Naik y P. Tripathy, Pruebas de software Ordenadores, Addison-Wesley Professional,
y aseguramiento de la calidad: teoría y 1995.
práctica, Wiley-Spektrum, 2008.
[21] T. Gilb, Principios de Ingeniería de Software
[9 *] P. Clements et al., Software de documentación Administración, Addison-Wesley Professional,
Vistas: arquitecturas y más allá, 2ª ed., Pearson 1988.
Education, 2010.
[22] T. Gilb y D. Graham, Software
[10 *] G. Voland, Ingeniería de Diseño, segundo Inspección, Addison-Wesley Professional,
ed., Prentice Hall, 2003. 1993.
[11] RTCA DO-178C, Consideraciones sobre el software [23] K. Wiegers, Peer Reviews en el software: A
en sistemas de vuelo y certificación de equipos, Comisión Guía Práctica, Addison-Wesley
Técnica de radio para la aeronáutica, 2011. Professional, 2001.
[12] IEEE Std. 15.026,1-2011 Trial-Uso Estándar ASQ Quality Press, 2010.
La adopción de la norma ISO / IEC TR 15026-1: 2010
Sistemas y Software Systems ingeniería- y Software
Assurance-Parte 1: Conceptos y Vocabulario, IEEE
2011.
CAPÍTULO 11
INGENIERÍA DE SOFTWARE LA
PRÁCTICA PROFESIONAL
Computación CSDA Certified Software estándares o criterios determi- nados, tanto en el proceso de
Mundial de la Propiedad Intelectual aplicable. Por ejemplo, la Association for Computing Machinery
Organización (ACM) y la Sociedad IEEE Com- puter (IEEE CS) han establecido un
Código Ingeniería Cesión de Software de Ética y Práctica
Organización Mundial del Comercio OMC
Profesional. Tanto la British Computer Society (BCS) y la Federación
Internacional para el Tratamiento de la Información (IFIP) han
INTRODUCCIÓN establecido normas de la práctica pro- fesional similares. ISO / IEC e
IEEE han proporcionado aún más los estándares de ingeniería de
El área de conocimiento Tice ticas Profesional de Ingeniería de software internacionalmente aceptadas (véase el Apéndice B de
Software (KA) tiene que ver con los conocimientos, habilidades y este
actitudes que los ingenieros de software deben poseer para
practicar software de inge- niería de manera cal profesional,
responsable, y ethi-. Debido a las aplica- ciones generalizadas de
los productos de software en la vida social y personal, la calidad de
los productos de software puede tener un profundo impacto en
nuestro bienestar personal y la armonía social. Los ingenieros de Guía). IEEE CS ha establecido dos programas internacionales de
software deben manejar los problemas de ingeniería únicas, certificación (CSDA, PCSD) y un correspon- diente Guía de la
produciendo Ingeniería de Software de Administración de Conocimiento (Guía
SWEBOK). Todos estos son
11-1
11-2 Guía SWEBOK® V3.0
elementos que sientan las bases para la práctica profe- sional 11.1. Las subáreas presentados en este KA son el profesionalismo,
de la ingeniería de software. la dinámica de grupo y la psicología, y habilidades de comunicación.
prácticas que son establecidos por la comunidad profesional de la certificación es la certificación profesional, cuando una persona
del ingeniero. está certificado como ser capaz de completar una actividad en una
La comunidad profesional es a menudo representada por una o cierta disciplina en un nivel determinado de competencias. certificación
varias sociedades profesionales; aquellas sociedades publican profesional también puede verificar la capacidad del titular para
códigos de ética y conducta profe- sional, así como los criterios para cumplir con las normas profesionales y aplicar el juicio profesional en
la admisión a la comunidad. Estos criterios son la base para las la solución o la solución de los problemas. La certificación profesional
actividades de acreditación y concesión de licencias y pueden ser también puede implicar la verificación del conocimiento establecido, la
utilizados como una medida para determinar la competencia de de masterización de las mejores prácticas y metodologías
ingeniería o negligencia. comprobadas, y la cantidad de experiencia profesional. Un ingeniero
usualmente obtiene la certificación superando un examen en
conjunción con otros criterios basados en la experiencia. Estos
1.1. Acreditación, Certificación y Licencias exámenes son a menudo administrados por organiza- ciones no
[1 *, c1s4.1, c1s5.1-c1s5.4] gubernamentales, como las asociaciones profesionales. En la
ingeniería de software, certificación monio con inversión extranjera a la
1.1.1. acreditación calificación de una persona como ingeniero de software. Por ejemplo,
el IEEE CS ha promulgado dos programas de identifi- cier- (CSDA y
Acreditación es un proceso para certificar la tencia tencia, autoridad, o PCSD) diseñados para confirmar los conocimientos de un ingeniero de
la credibilidad de una organización. escuelas o programas acreditados software de las prácticas de ingeniería de software estándar y para
están asegurados a que se adhieran a las normas particulares y avanzar en la carrera de uno. La falta de certificación no excluye al
mantener cualidades determi- nados. En muchos países, los medios individuo de trabajar como ingeniero de software. Actualmente la
básicos por los cuales los ingenieros adquieren conocimientos es a certificación en ingeniería de soft- ware es completamente voluntaria.
través de la finalización de un curso acreditado de estudio. A menudo, De hecho, la mayoría de los ingenieros de software no están
la acreditación de ingeniería se lleva a cabo por una organización certificados bajo cualquier programa.
gubernamental, tales como el Ministerio de Educación. Tales países
con acreditaciones gubernamentales incluyen China, Francia,
Alemania, Israel, Italia y Rusia.
empresa puede ofrecer “servicios de ingeniería” a no ser que al menos Dado que se pueden introducir normas y códigos de ética y
un ingeniero con licencia se emplea allí. conducta profesional, modificado o reemplazado en cualquier
momento, inge- niería de software individuales tienen la
1.2. Códigos de Ética y Conducta Profesional responsabilidad de su propio estudio tinuing con- para mantenerse
[1 *, c1s6-c1s9] [3 *, c8] [4 *, c1s2] [5 *, c33] al día en su práctica profesional.
[6 *]
Los códigos de ética y conducta premio com- profesional de los 1.3. La naturaleza y la función de las Sociedades Profesionales
valores y el comportamiento y las decisiones que la práctica [1 *, C1S1-c1s2] [4 *, c1s2] [5 *, c35s1]
profesional de un ingeniero debe encarnar.
Las sociedades profesionales se componen de una mezcla de
La comunidad profesional establece códigos de ética y conducta profesionales y académicos. Estas sociedades sirven para definir,
profesional. Existen en el contexto de, y se ajustan de acuerdo con impulsar y regular sus profesiones correspon- dientes. Las
las normas sociales, y las leyes locales. Por lo tanto, los códigos de sociedades profesionales ayudan a establecer estándares
ética y conducta profesional presente Ance guid- en la cara de los profesionales, así como códigos de ética y conducta profesional.
imperativos contradictorios. Una vez que se han establecido códigos Por esta razón, también se dedican a actividades relacionadas,
de ética y conducta profesional son impuestas por la profesión, que incluyen
según lo representado por las asociaciones profesionales o por un
organismo de derecho público.
• establecer y promulgar un cuerpo de conocimiento gene-
ralmente aceptado;
Violaciónes pueden ser actos de comisión, como la ocultación • acreditación, certificación, y la concesión de licencias;
de trabajo inadecuado, la revelación de información con- • dispensación de medidas disciplinarias;
Fidential, falsificar información, o desvirtuar las habilidades de • el avance de la profesión a través de las conferencias,
uno. También pueden ocurrir a través de la omisión, incluyendo capacitación y publicaciones.
la falta de dis- cercanos riesgos o para proporcionar información
importante, el hecho de dar crédito o reconocer las referencias, y La participación en sociedades profesionales asiste al
el fracaso para representar EST cliente inter. Violaciónes de los ingeniero individuo en el mantenimiento y la nitidez ening sus
códigos de ética y conducta profesional pueden dar lugar a conocimientos profesionales y la relevancia y en la ampliación y
sanciones y po- sible la expulsión del estatus profesional. Un el mantenimiento de su red profesional.
código de ética y conducta profesional de la ingeniería de
software fue aprobado por el Consejo de la ACM y la Junta de
Gobernadores CS IEEE en 1999 [6 *]. De acuerdo con la versión 1.4. La naturaleza y la función de las normas de ingeniería de
corta de este código: software
[1 *, c5s3.2, c10s2.1] [5 *, c32s6] [7 *, c1s2]
ayudar a evitar errores, la protección de los productores y los usuarios consideración. En este caso, estamos más preocupados con el
de software, el aumento de disci- plina profesional, y ayudar a la arreglo de ingeniero a los clientes y sus acompañantes acuerdos o
transición de la tecnología. contratos, si son de la variedad contratación directa o consultor, y
los problemas que suelen abordar. Una preocupación común en
1.5. Impacto económico de Software contratos de ingeniería de software es la confidencialidad. Los
[3 *, c10s8] [4 *, c1s1.1] [8 *, c1] empleadores obtienen ventajas comerciales de la propiedad
intelectual, por lo que se esfuerzan proteger dicha propiedad de
El software tiene efectos económicos a nivel individual, negocio, y cierre dis-. Por lo tanto, los ingenieros de software a menudo tienen
los niveles de la sociedad. Software “éxito” puede ser determinado que firmar acuerdos de propiedad intelec- tual (IP) no divulgación
por la idoneidad de un producto para un problema reconocido, así (NDA) o como una condición previa para trabajar. Estos acuerdos se
como por su efectividad cuando se aplica a ese problema. A nivel aplican normalmente a la información del ingeniero de software sólo
individual, el empleo continua- ción de un ingeniero puede puede ganar a través de la asociación con el cliente. Los términos
depender de su capacidad y disposición para interpretar y ejecutar de estos acuerdos pueden extenderse más allá de la nación
tareas en el cumplimiento de las necesidades y expectativas de los terminología de la asociación.
clientes o empleadores. El cliente o situación finan- cial del
empleador pueden a su vez ser positiva o negativamente afectados
por la compra de software. A nivel empresarial, el software aplica
correctamente a un problema puede eliminar meses de trabajo y Otra preocupación es la propiedad intelectual. Los derechos sobre
traducirse en ganancias elevadas u organizaciones tivos más los activos de software de ingeniería subproductos, innovaciones,
effec-. Por otra parte, las organizaciones que adquieren o inventos, descubrimientos e ideas pueden residir con el empleador o
proporcionan software con éxito pueden ser de gran ayuda a la cliente, ya sea en virtud de los términos del contrato explícitas o leyes
sociedad en la que operan por Viding pro del empleo y de mejora pertinentes, si se obtienen dichos activos durante el plazo del
de los servicios. Sin embargo, los costes de desarrollo o ingeniero de software de relación con ese empleador o cliente.
adquisición de software también pueden equiparar a las de Contratos difieren en la propiedad de los activos creados usando ción
cualquier adquisición importante. o información equip- propiedad no por el empleador.
especializarse en el tipo y la jurisdicción de cualquier problema legal son una forma antigua de la protección idea de la propiedad y se
tificado iden-. remontan al siglo 15. Solicitud de patente implica un registro cuidadoso
del proceso que condujo a la invención. Los abogados de patentes son
1.7.1. normas útiles para escribir las reclamaciones de divulgación de patentes de una
manera más probable para proteger los derechos del ingeniero soft-
normas de ingeniería de software establecen líneas directrices para ware.
las prácticas generalmente aceptadas y el mini-requisitos mamá de
productos y servicios RESPETA por un ingeniero de software. Tenga en cuenta que, si las invenciones se realizan durante el curso de
Guía proporciona orientación sobre ingeniería de software estándares al empleador o cliente o ser realizada en forma conjunta, en lugar de
que se aplican a cada KA. Los estándares son fuentes valiosas de los pertenecer al ingeniero de software.
embalaje. Sin embargo, si un nombre, imagen, u otro activo de marca En muchos países, un activo intelectual, tales como una fórmula,
registrada se convierte en un término genérico, a continuación, se anula la algoritmo, proceso, diseño, método, patrón, instrumento o recopilación
protección de marcas. de informa- ción puede ser considerado como un “secreto comercial”, a
La Organización Mundial de la Propiedad Intelectual (OMPI) es condición de que estos activos no son generalmente conocidos y
la autoridad que defina las normas y reglamentos en materia de pueden proporcionar una empresa alguna ventaja económica. La
marcas. La OMPI es la agencia de Naciones Unidas dedicada al designación de “secreto comercial” proporciona protección legal si el
uso de la propiedad intelec- tual como medio de estimular la in- activo es robado. Esta protección no está sujeta a un límite de tiempo.
novación y la creatividad. Sin embargo, si la otra parte se deriva o descubre el mismo bien
jurídico, entonces el activo ya no está protegido y la otra parte será
también poseen todos los derechos de uso de la misma.
1.7.3. patentes
Las patentes protegen el derecho del inventor a cantes tura y vender una
idea. Una patente consiste en un conjunto de derechos exclusivos 1.7.6. Responsabilidad profesional
concedidos por una ernment gobier- soberano a un individuo, grupo de
individuos, o de la organización durante un periodo limitado de tiempo. Es común que los ingenieros de software para ser con- cerned con
patentes cuestiones de responsabilidad profesional. Como
Ingeniería de Software Profesional Práctica 11-7
un individuo presta servicios a un cliente o empleador, es vital para 1.7.8. Cumplimiento comercial
cumplir con las normas y prácticas generalmente aceptadas, protegiendo
así contra las acusaciones o procedimientos de o relacionados con Todos los profesionales de software deben estar al tanto de las
negligencia, negligencia o incompetencia. Para los ingenieros, restricciones legales a la importación, exportación o reexportación de
incluyendo ingenieros de software, responsabilidad profesional está mercancías, servicios y tecnología en las jurisdicciones en las que
relacionada con la responsabilidad del producto. En virtud de las leyes y trabajan. Las consideraciones incluyen controles de exportación y
normas que rigen en su jurisdicción, los ingenieros pueden ser obligados clasificación, transferencia de bienes, adquisición de licencias
a rendir cuentas por no seguir totalmente y con plena conciencia práctica gubernamentales necesarias para el uso exterior de hardware y
recomendada; esto se conoce como “negligencia”. También pueden software, servicios y tecnología por país sancionado, empresa o
estar sujetos a las leyes gobiernos ing “responsabilidad objetiva” y ya entidades individuales, y las restricciones de importación y deberes.
sea implícita o garantía expresa, en donde, por la venta del producto, se Los expertos en comercio debe ser consultado para una guía detallada
lleva a cabo la Neer niería a garantiza que el producto es tanto cumplimiento.
adecuado y seguro para su uso. En algunos países (por ejemplo, en los
EE.UU.), “connivencia” (la idea de que sólo se podría demandar a la
persona que vende el producto) ya no es una defensa contra la acción 1.7.9. los delitos informáticos
de responsabilidad. Procesos judiciales por responsabilidad pueden ser
sometidos en derecho de daños en los EE.UU. permitiendo que La delincuencia informática se refiere a cualquier crimen, que
cualquier persona que esté dañado para recuperar su pérdida, incluso si involucra una computadora, software de ordenador, ordenador
no se hicieron garantías. Debido a que es difícil medir la capacidad o la NETWORKS, o software incorporado el control de un sis- tema. El
seguridad de software de traje-, el hecho de tener el debido cuidado se ordenador o el software pueden haber sido utilizados en la comisión
puede utilizar para probar la negligencia por parte de los ingenieros de de un delito o que pueden haber sido el blanco. Esta categoría incluye
software. Una defensa contra tal acusación es demostrar que las normas los delitos de fraude, acceso no autorizado, spam, contenido obsceno
y prácticas generalmente aceptadas fueron seguidos en el desa- rrollo u ofensivo, amenazas, acoso, robo de datos personales o secretos
del producto. comerciales sensibles, y el uso de una computadora para dañar o
infiltrarse en otros ordenadores conectados en red y controles
automatizados del sistema.
1.7.7. Requerimientos legales Formas de acceso no autorizado incluyen ing cortar metal, una
Los ingenieros de software deben operar dentro de los confines de los se oculta de sus dueños. Muchos países tienen leyes separadas para
marcos jurídicos locales, nacionales e internacionales. Por lo tanto, los cubrir los delitos cibernéticos, pero a veces ha sido difícil de procesar a los
ingenieros de software deben estar al tanto de los requisitos legales para delitos cibernéticos, debido a la falta de estatutos pre precisamente
• registro y autorización, incluyendo nación exami-, la cómo el sistema de software protegerá o poner en peligro el software y la
educación, la experiencia y las necesidades de formación; información de usuario de acceso accidental o malintencionada, uso,
• acuerdos contractuales;
• legalidades no contractuales, como los gobier- responsabilidad
Erning;
• Información básica sobre el marco jurídico internacional se 1.8. Documentación
puede acceder desde la Organización Mundial del Comercio [1 *, c10s5.8] [3 *, c1s5] [5 *, c32]
(OMC).
Proporcionar clara, completa y precisa docu- mentación es la
responsabilidad de cada ingeniero de software. La idoneidad
de la documentación es
11-8 Guía SWEBOK® V3.0
juzgado por diferentes criterios basados en las necesidades de los del código fuente del software o el derecho a modificar el código, el
diversos públicos interesados. ingeniero de software debe proporcionar documentación de las
Una buena documentación cumple con las normas y directrices especificaciones funcionales, el diseño del software, el conjunto de
aceptadas. En particular, los ingenieros de software deben pruebas, y el entorno operativo es preciso proceder para el software.
documentar La longitud mínima de los documentos de tiempo se debe mantener
es la duración del ciclo de vida de los productos de software o el
• hechos relevantes, tiempo requerido por los requisitos pertinentes orga- zational o
• los riesgos y las ventajas y desventajas significativas, y reglamentarias.
• advertencias de consecuencias indeseables o
peligrosos de uso o mal uso del software.
1.9. Análisis compensación [ 3 *, c1s2, c10] [9 *, c9s5.10]
Los ingenieros de software deben evitar
• información necesaria para determinar si es probable que para Un primer paso en un análisis de equilibrio está establecimientos ing
satisfacer las necesidades de los usuarios de los clientes y el soft- objetivos de diseño (ver diseño de ingeniería en el Fundamentos de
ware, Ingeniería KA) y establecer la importancia relativa de estos objetivos.
• Descripción de la caja fuerte, y poco seguro, el uso del software, Esto permite la identificación de la solución que más se aproxime a
esos objetivos; esto significa que la forma en que los objetivos se
• Descripción de la protección de la información sensible expresan es de importancia crítica. Los objetivos de diseño pueden
almacenada o creado por el uso del software, y incluir la reducción al mínimo de los costos monetarios y la
maximización de la fiabilidad, rendimiento, o algún otro criterio sobre
• identificación clara de advertencias y procedimientos críticos. una amplia gama de dimensiones. Sin embargo, es difícil formular un
análisis de equilibrio de costo contra el riesgo, especialmente donde la
producción primaria y los costos basados en el riesgo ary de segunda
El uso de software puede incluir la instalación, fun- deben comercializarse uno contra el otro.
cionamiento, la administración y el desempeño de otras
funciones por varios grupos de usuarios y personal de apoyo. Si
el cliente adquirirá la propiedad
Ingeniería de Software Profesional Práctica 11-9
Un ingeniero de software debe realizar un análisis de equilibrio de una Un punto a destacar es que el software de inge- nieros deben ser
manera ética de manera -en particular por ser objetiva e imparcial la hora capaces de trabajar en entornos multidisciplinares y en variados
de seleccionar los criterios para la comparación de soluciones a los campos de aplicación. Dado que el software de hoy está en todas
problemas alternativos y en la asignación de pesos o importancia a estos partes, desde un teléfono a un coche, el software está afectando a la
criterios. Cualquier conflicto de intereses debe ser revelada en la vida de las personas más allá del concepto más tradicional de
delantera. software hecho para la gestión de la información en un entorno
empresarial.
de manera cooperativa y construc- tivamente con otros para determinar en Ingenieros deseo de resolver los problemas. La capacidad de resolver
primer lugar y luego satisfacer tanto las necesidades y expectativas. El problemas con eficacia y eficiencia es lo que se esfuerza para todos los
conocimiento de la dinámica de grupo y la psicología es un activo en la ingenieros. Sin embargo, los límites y los procesos de la cognición
interacción con los clientes, compañeros de trabajo, proveedores y individual afectan la resolución de proble- ma. En la ingeniería de software,
subordinados para resolver problemas de ingeniería de software. sobre todo debido a la naturaleza altamente abstracta de software en sí, la
problemas.
2.1. Dinámica de trabajo en equipos / grupos En general, de un individuo (en particular, de un ingeniero de software)
[3 *, c1s6] [9 *, c1s3.5, c10] la capacidad para descomponer un problema con creatividad y desarrollar
Los ingenieros de software deben trabajar con los demás. Por un lado,
trabajan internamente en los equipos de ingeniería; por el contrario, • la necesidad de un mayor conocimiento,
trabajan con tomers cliente central, los miembros del público, • supuestos subconscientes,
reguladores y otras partes interesadas. Realización de los equipos de • volumen de datos,
los que demuestran una calidad constante del trabajo y el progreso • miedo al fracaso o la consecuencia de la falta,
hacia las metas-son cohesivas y poseen una atmósfera de cooperación, • cultura, ya sea dominio de aplicación o de
honesta y enfocada. objetivos individuales y de equipo están alineados organización,
de tal manera que los miembros de forma natural se comprometan y se • la falta de capacidad de expresar el problema,
sientan dueños de resultados compartidos. • percibida ambiente de trabajo, y
• el estado emocional del individuo.
Los miembros del equipo facilitan esta atmósfera por ser El impacto de estos factores inhibidores se puede reducir mediante el
intelectualmente honesto, haciendo uso del pensamiento de grupo, cultivo de buenos hábitos de resolución de problemas que minimicen el
admitiendo la ignorancia, y acknowledg- errores ing. Ellos comparten impacto de suposiciones erróneas. La capacidad de concentrarse es de
la responsabilidad, recompensas, y la carga de trabajo de manera vital importancia, ya que es la humildad intelectual: ambos permiten un
justa. Ellos se encargan de comuni- carse con claridad, directamente Neer niería de software para suspender las consideraciones personales
entre sí y en el docu- mentos, así como en código fuente, por lo que y con- sultado con los demás libremente, lo que es especialmente
informa- ción es accesible a todos. Peer comentarios sobre los impor- tante cuando se trabaja en equipo. Hay una serie de métodos
productos de trabajo se enmarcan en una forma constructiva y no básicos ingenieros utilizan para facilitar la resolución de problemas
personal (ver revisiones y auditorías de la calidad del software KA). (véase el problema Solv- ing técnicas en los Fundamentos de
Esto permite que todos los miem- bros que persiguen un ciclo de Informática KA). El desglose de los problemas y les resolución de una
mejora continua y el crecimiento sin riesgo personal. En general, los sola pieza a la vez reduce la sobrecarga cognitiva. Aprovechando la
miembros de equipos cohesivos demuestran respeto por los demás y curiosidad profesional y la búsqueda del desarrollo profesional continuo
su líder.
11-10 Guía SWEBOK® V3.0
mediante la formación y estudio añadir habilidades y El conocimiento de Por lo tanto, es vital para mantener abierta la comunicación y pro-
la cartera del ingeniero de software; la lectura, la creación de redes, y ductiva con las partes interesadas para la duración de la vida útil del
experimentando con nuevas herramientas, técnicas y métodos son producto de software.
válidos todos los medios de desarrollo profesional.
2.5. Superación de la incertidumbre y la ambigüedad
[4 *, c24s4, c26s2] [9 *, c9s4]
2.3. Tratar con el problema Complejidad
[3 *, c3s2] [5 *, c33] Al igual que con los ingenieros de otros campos, los ingenieros de
software a menudo deben atender y resolver la incertidumbre y la
Muchos, si no la mayoría, blemas de ingeniería de software blemas son ambigüedad, mientras que la prestación de servicios y el desarrollo de
demasiado complejos y difíciles de abordar en su conjunto o para ser productos. El ingeniero de software debe atacar y reducir o eliminar
abordado por los ingenieros de software individuales. Cuando surgen tales cualquier falta de claridad que es un obstáculo para la realización de
circunstancias, los medios habituales para adoptar es el trabajo en equipo trabajos. A menudo, la incertidumbre es simplemente un reflejo de la falta
y el problema de la descomposición (véase el problema técnicas de de conocimiento. En este caso, la investigación mediante el recurso a
resolución en los Fundamentos de Informática KA). fuentes formales tales como libros de texto y revistas profesionales,
entrevistas con ERS stakehold-, o consulta con los compañeros y
Los equipos trabajan juntos para resolver los problemas más compañeros puede superarla.
complejos y grandes por compartir las cargas y N ° de dibujo en el
conocimiento y la creatividad de cada uno. Cuando los ingenieros de
software trabajan en equipos, puntos de vista dife- rentes y habilidades de Cuando la incertidumbre o ambigüedad no pueden ser excesivamente
los ingenieros individuales se complementan entre sí y ayudar a construir sido fácil, los ingenieros de software u organizaciones pueden optar por
una solución que sea de otro modo difícil de conseguir. Algunos ejemplos considerar como un riesgo del proyecto. En este caso, las estimaciones de
de trabajo en equipo espe- CIFIC a la ingeniería de software son la trabajo o de precios se ajustan para mitigar el costo anticipado de hacer
programación en parejas (ver Métodos ágiles en los modelos de frente a ella (véase Gestión de Riesgos en el KA Software Engineering
ingeniería de software y métodos KA) y la revisión de código (ver Management).
revisiones y auditorías de la calidad del software KA).
reconociendo que algunas reglas dependen de las normas etal o software de reescritura, es fundamental para comprender tanto su
ciedades y que no todas las sociedades derivan las mismas soluciones implementación derivado directamente del código presentado y su
y expectativas. diseño, que a menudo se debe inferirse.
Esta tolerancia y comprensión ing acompañante pueden ser
facilitadas por el apoyo de la dirección y gestión. comunicaciones
más frecuentes, incluyendo las reuniones cara a cara, puede 3.2. Escritura
ayudar a puerta mitiga las divisiones geográficas y culturales, [3 *, c1s5]
promover la cohesión, y aumentar la productividad. Además, al ser
capaz de comunicarse con sus compañeros en su lengua materna Los ingenieros de software son capaces de producir productos escritos
podría ser muy beneficioso. como es requerido por las peticiones del cliente o la práctica gene-
ralmente aceptado. Estos productos escritos pueden incluir código
fuente, los planes de proyectos de software, documentos de
3. Habilidades de Comunicación requerimientos de software, análisis de riesgos, documentos de diseño
de software, planes de pruebas de software, manuales de usuario,
Es vital que un ingeniero de software se comunican bien, tanto de informes técnicos y evaluaciones, las justificaciones, diagramas y
forma oral como la lectura y escritura. Suc logro cessful de los gráficos, y así sucesivamente. Escritura clara y concisa es muy
requisitos de software y plazos depende del desarrollo de sub clara importante porque a menudo es el principal método de co- municación
de pie entre el ingeniero de software y clientes, supervisores, entre las partes pertinentes. En todos los casos, los productos de
compañeros de trabajo, y abastecedores ERS. la resolución de ingeniería de software escrito deben ser escritos para que sean
problemas óptima es posible gracias a la capacidad de investigar, accesibles, comprensibles y relevantes para su público (s) previsto.
comprender y resumir la información. la aceptación del producto del
cliente y el uso de productos seguros dependen de la provisión de
capacitación y la documentación pertinente. De ello se desprende
que el propio éxito de la carrera del ingeniero de software se ve 3.3. Equipo y Comunicación Grupo
afectada por la capacidad para proporcionar de forma coherente la [3 *, c1s6.8] [4 *, c22s3] [5 *, c27s1]
comunicación oral y escrita de forma efectiva ya tiempo. [9 *, c10s4]
herramientas de colaboración para compartir información. Otras medidas, fase, los ingenieros de software puede caminar a los clientes y
además, el uso de almacenes de información electrónicos, accesibles a compañeros de equipo a través de los requisitos de software y llevar a
todos los miembros del equipo, para las políticas organiza- cionales, cabo los requisitos formales reseñas (véanse los requisitos críticas en el
normas, procedimientos comunes de la ingeniería, y la información software de los requisitos KA). Durante y después del diseño de
específica del proyecto, puede ser más beneficioso. software, la construcción de software y mantenimiento de software,
ingenieros de software llevan los comentarios, walk-through de
Algunos equipos de ingeniería de software se centran en la productos (véase comprobación y actuaciones en la calidad del software
interacción cara a cara y promover dicha interacción por el arreglo de KA), y la formación. Todo esto requiere la capacidad de presentar
oficinas. Aunque las oficinas privadas mejoran la productividad información técnica a los grupos y solicitar ideas o comentarios. La
individual, implantación común de los miembros del equipo en formas capacidad del ingeniero de software para transmitir conceptos de
físicas o virtuales y proporcionar áreas de trabajo comunal que es manera efectiva en una presentación, por lo tanto influye en la
importante para los esfuerzos de colaboración. aceptación del producto, gestión y atención al cliente; sino que también
influye en la abil- dad de las partes interesadas a comprender y ayudar
en los esfuerzos de producto. Este conocimiento tiene que ser
3.4. Habilidades de presentación archivados en forma de diapositivas, el conocimiento contra escritura
[3 *, c1s5] [4 *, c22] [9 *, c10s7-c10s8] hasta, white papers técnicos, y cualquier otro material utilizado para la
creación de conocimiento.
Los ingenieros de software confían en sus habilidades de presentación
durante los procesos del ciclo de vida del software. Por ejemplo,
durante los requisitos de software
Ingeniería de Software Práctica Profesional 11-13
McConnell 2004
Tockey 2004
Voland 2003
Fairley 2009
Moore 2006
[8 *]
[9 *]
[7 *]
[5 *]
[3 *]
[4 *]
[6 *]
[1 *]
1. Profesionalismo
1.4. La naturaleza y la
1.6. Contratos de
c7
trabajo
2. Grupo de Dinámica y
Psicología
2.2. cognición
c1s6.5 c33
individual
McConnell 2004
Tockey 2004
Voland 2003
Fairley 2009
Moore 2006
[8 *]
[9 *]
[7 *]
[5 *]
[3 *]
[4 *]
[6 *]
[1 *]
2.5. Superación de la
c24s4,
incertidumbre y la c9s4
c26s2
ambigüedad
Comunicación
3.1. Leyendo,
Comprensión, y c33s3
resumir
3.2. Escritura c1s5
3.3. Equipo y
c1s6.8 c22s3 c27s1 c10s4
Comunicación Grupo
3.4. Habilidades de c10s7-
c1s5 c22
presentación c10s8
Ingeniería de Software Práctica Profesional 11-15
LECTURAS Referencias
un esfuerzo individual y de equipo y se convirtió en un clásico en el fiel re. [2] Diccionario Colegiado de Merriam-Webster,
ed 11., 2003.
Este libro cubre las leyes de propiedad intelectual en los EE.UU.. No sólo [4 *] I. Sommerville, Ingeniería de software, noveno
habla de lo que el derecho de propiedad intelectual es; También explica ed., Addison-Wesley, 2011.
por qué se ve la forma en que lo hace.
www.acm.org/serving/se/code.htm .
mínima tasa aceptable de relaciona con achiev- ing un retorno tangible de los invertidos en capital
12-1
12-2 Guía SWEBOK® V3.0
DISTRIBUCIÓN DE TEMAS PARA ECONOMÍA para conocer los resultados de su inversión: sacaron los beneficios que
INGENIERÍA DE SOFTWARE se esperaban? En las organizaciones “con fines de lucro”, esto se
relaciona con el retorno de la inversión tangible (ver sección 4.3,
El desglose de temas para el Software Inge- niería Retorno de la Inversión), mientras que en “sin fines de lucro” y las
Economía KA se muestra en la figura 12.1. organizaciones gubernamentales, así como organizaciones “con fines
de lucro”, que se traduce en forma sostenible permanecer en el
1. Fundamentos de Ingeniería de Software negocio. La función principal de la contabilidad es medir el rendimiento
Economía financiero real de la organiza- ción y para com- municar información
financiera sobre una entidad de negocio para las partes interesadas,
1.1. Financiar como los accionistas, auditores financieros e inversores. La
[1 *, c2] comunicación es generalmente en la forma de estados financieros que
muestran en términos monetarios los recursos económicos que deben
Finanzas es la rama de la economía que se ocupan de cuestiones ser controlados. Es importante seleccionar la información adecuada
tales como la asignación, administración, adquisición, y la inversión de que sea relevante y fiable para el usuario. La información y su
los recursos. La financiación es un elemento de todas las distribución están parcialmente rigen por las políticas de gestión de
organizaciones, incluidas las organizaciones de ingeniería de software. riesgos y de gobierno. Los sistemas de contabilidad son también una
rica fuente de datos históricos para estimar.
El campo de las finanzas se ocupa de los conceptos de tiempo,
dinero, riesgo, y cómo se relacionan entre sí. También se ocupa de cómo
se gasta el dinero y geted presu-. finanzas corporativas se ocupa de pro-
Viding los fondos para las actividades de una organización. En general,
se trata de equilibrar el riesgo y la capacidad de utilidades, al intentar 1.3. Controlador
maximizar la riqueza de una organiza- ción y el valor de sus acciones. [1 *, c15]
Esto es válido sobre todo para las organizaciones “con fines de lucro”,
pero también se aplica a los “sin fines de lucro” organizaciones. Este El control es un elemento de las finanzas y una contabilidad.
último necesita recursos financieros para garantizar la sostenibilidad, Controladora implica medir y correcta- ing el desempeño de las
aunque no es la orientación de beneficio tangible. Para ello, una finanzas y la contabilidad. Se asegura de que los objetivos y planes
organización debe de la organización se llevan a cabo. El control de costos es una
rama especia- espe- de controlar utilizado para detectar varianzas
de los costes reales de los costes previstos.
ejemplo. El dinero iba a venir a causa de la realización de la soluciones. A,, producto intermediario comercial off-the-shelf objeto-
propuesta. El termino flujo de efectivo se refiere al conjunto de petición puede costar varios miles de dólares, pero el esfuerzo para
instancias de flujo de efectivo con el tiempo que son causadas por la desarrollar un servicio de cosecha propia que da la misma
realización de alguna propuesta determinada. El flujo de caja es, en funcionalidad fácilmente podría costar varios cientos de veces esa
efecto, el cuadro financiero completo de esa propuesta. ¿Cuánto cantidad. Si las soluciones candidatas resolver todos
dinero se apaga? ¿Cuándo se apaga? ¿Cuánto dinero entra? adecuadamente el problema desde un punto de vista técnico, la
¿Cuándo se presenta? Simplemente, si la corriente de flujo de efectivo selección de la alternativa más adecuada debe basarse en factores
de Propuesta A es más deseable que la corriente de flujo de caja para comerciales tales como la optimización de coste total de propiedad
la Propuesta B, entonces todas las demás cosas son iguales, la (TCO) o maximizar el rendimiento a corto plazo de la inversión (ROI)
organización es ter BET de la realización de la propuesta A de la . los costos del ciclo de vida tales como la corrección de defectos,
Propuesta B. Por lo tanto, el flujo de efectivo stream es un insumo servicio de campo, y la duración de apoyo son también
importante para las decisiones de inversión. Un ejemplo de flujo de consideraciones Evant rel. Estos costos deben ser fac- reada en la
efectivo es una cantidad específica de dinero que fluye hacia dentro o hora de elegir entre los enfoques Nical gías aceptables, ya que son
fuera de la organización en un momento específico, como parte del retorno de la inversión de por vida (ver sección 4.3,
consecuencia directa de alguna actividad. Retorno de la Inversión). Un proceso sistemático para la toma de
decisiones será lograr la transparencia y permitir ción posterior
justificación. criterios de gobierno en muchas organizaciones exigen
la selección de al menos dos alternativas. Un proceso sistemático se
Un diagrama de flujo de caja es una imagen de una corriente de flujo muestra en la figura 12.3. Se inicia con un desafío de negocios a la
de efectivo. Se le da al lector una visión general de la situación financiera mano y se describen los pasos para identificar solu- ciones
de la organización tema o proyecto. La figura 12.2 muestra un ejemplo de alternativas, definir los criterios de selección, evaluar las solu-
un diagrama de flujo de caja para una propuesta. ciones, implementar una solución seleccionada, y moni- tor el
desempeño de esa solución. La figura 12.3 muestra el proceso como
en su mayoría paso- sabia y serie. El proceso real es más fluido. A
1.5. Proceso de toma de decisiones veces, los pasos se pueden realizar en un orden diferente y con
[1 *, c2, c4] frecuencia varios de los pasos se pueden realizar en paralelo. Lo
importante es estar seguro de que
Si asumimos que las soluciones candidatas a resolver un
problema técnico determinado igualmente bien, ¿por qué se
elige el cuidado organización cuál? La respuesta es que por lo
general hay una gran diferencia en los costes e ingresos de los
diferentes
Ingeniería de Software Economía 12-5
La inflación se describen las tendencias a largo plazo de los precios. Uno de los conceptos más fundamentales en las finanzas y, por tanto,
La inflación significa que las mismas cosas cuestan más que antes. Si en los negocios decisiones- es que el dinero tiene valor temporal: su
el horizonte de planificación de una decisión de negocios es más de valor cambia con el tiempo. Una cantidad específica de dinero en este
unos pocos años, o si la tasa de inflación es más de un par de puntos momento casi siempre tiene un valor diferente que la misma cantidad
porcentuales por año, puede causar cambios notables en el valor de de dinero en algún otro momento. Este con- cepto ha estado presente
una propuesta. Por lo tanto, el valor del tiempo actual necesita ser desde la historia humana registrada más temprana y es comúnmente
ajustado por inflación y las tasas también para las fluctuaciones del conocido como valor del tiempo. Con el fin de comparar las propuestas
tipo de cambio. o elementos lio portfo-, deben ser normalizados en el costo, valor, y el
riesgo para el valor actual neto. variaciones de cambio de divisas a
través del tiempo hay que tener en cuenta sobre la base de los datos
1.8. Depreciación históricos. Esto es Particularmente importante en la evolución
[1 *, c14] transfronteriza de todo tipo.
los costes de desa- rrollo se incurren, los costos deben ser activadas entre los recursos consumidos efectivamente a los recursos previstos para
y depreciadas durante períodos de tiempo posteriores. El gasto de ser consumidos o deseado para ser consumidos en el cumplimiento del
depreciación para cada período de tiempo es el costo capitalizado de proceso, actividad o tarea. Eficiencia significa “hacer las cosas bien.” Un
desarrollar el software dividida a través del número de periodos en los comportamiento eficiente, como un comportamiento efectivo, entrega
que se venderá el software. Una propuesta de proyecto de software resultados, pero mantiene el esfuerzo necesario a un mínimo. Los factores
puede ser comparado con otro software y propuestas nonsoftware o que pueden afectar la eficiencia en ingeniería de software incluyen dad
para opciones alternativas de inversión, por lo que es importante para producto complejidad, requisitos de calidad, la presión del tiempo, la
deter- minar cómo esas otras propuestas serían ciados depre- y cómo capacidad del proceso, la distribución de equipo, interrupciones, la rotación
1.12. Eficacia
1.9. Impuestos [2 *, c1]
[1 *, c16, c17]
La eficacia es acerca de tener impacto. Es la relación
Los gobiernos cobran impuestos para financiar los gastos que la sociedad entre los objetivos alcanzados a objetivos definidos.
necesita, pero que ninguna organiza- ción invertiría en. Las empresas Eficacia significa “hacer las cosas bien.” La eficacia sólo
tienen que pagar impuestos sobre la renta, que puede tomar una parte se fija en si se alcanzan los objetivos definidos, y no en
sustancial de la utilidad bruta de una corporación. Un análisis de decisión la forma en que se alcanzan.
que no tiene en cuenta los impuestos puede conducir a una mala elección.
Una propuesta con una alta ganancia antes de impuestos no se parecerá
casi tan rentable en términos posttax. Sin tener en cuenta los impuestos 1.13. Productividad
también puede conducir a unre- alistically altas expectativas sobre la [2 *, c23]
rentabilidad podría ser un producto propuesto.
La productividad es la relación de la salida sobre la entrada desde una
perspectiva económica. La salida es el valor
Ingeniería de Software Economía 12-7
entregado. Entrada abarca todos los recursos (por ejemplo, desde la gestión de ellos de forma individual “. 2 Los programas se
esfuerzo) pasaron a generar la salida. Productividad com- eficiencia utilizan a menudo para identificar y gestionar las diferentes entregas a
y eficacia combina desde una perspectiva orientada de valor: la un solo cliente o mercado en un horizonte de tiempo de varios años.
maximización de la productividad es sobre la generación de mayor
valor con menor consumo de recursos.
2.4. portafolio
2. La vida de ciclo Economía Los portafolios son “proyectos, programas, subcarteras y operaciones
gestionadas como un grupo para alcanzar los objetivos estratégicos.” 3 Las
2.1. Producto carteras se utilizan para agrupar y gestionar simultáneamente todos los
[2 *, c22] [3 *, c6] activos dentro de una línea de negocio o de la organización. Mirando a
una cartera completa se asegura de que los impactos de las decisiones
Un producto es un bien económico (o de salida) que se crea en un son consideradas, tales como la asignación de recursos a un proyecto
proceso que transforma fac- tores de productos (o entradas) a una específico, lo cual significa que los mismos recursos no están disponibles
salida. Cuando se vende, un pro- ducto es un entregable que crea un para otros proyectos.
valor y una experiencia para sus usuarios. Un producto puede ser una
combinación de sistemas, soluciones, materiales, y servicios
entregados internamente (por ejemplo, en casa de la solución IT) o 2.5. Ciclo de vida del producto
externamente (por ejemplo, software aplicabilidad ción), ya sea tal cual [2 *, c2] [3 *, c2]
o como un componente para otro producto (por ejemplo, , software
embebido). Un ciclo de vida del producto de software (SPLC) incluye todas las
actividades necesarias para definir, construir, operar, mantener y
retirar un producto de software o servicio y sus variantes. Las
2.2. Proyecto actividades de SPLC “oper- comió”, “mantener” y “retirarse” suelen
[2 *, c22] [3 *, c1] ocurrir en un período de tiempo mucho más largo que el desarrollo
de software inicial (el software de vida de desarrollo del ciclo de
Un proyecto es “un esfuerzo temporal emprendido para crear un SDLC-ver els Software del ciclo de vida en el mo- Ingeniería de
único producto, servicio o resultado”. 1 Software proceso KA). También las actividades de operación y
En la ingeniería de software, diferentes tipos de proyectos se distinguen mantenimiento-retirarse de un SPLC consumen típicamente más
(por ejemplo, el desarrollo de productos, servicios externalizados, esfuerzo total y otros recursos de las actividades SDLC (ver La
mantenimiento de software, la creación de ser- vicio, y así mayoría de los costos de mantenimiento en el KA Mantenimiento de
sucesivamente). Durante su ciclo de vida, un producto de software puede Software). El valor aportado por un producto de software o servicios
requerir muchos proyectos. Por ejemplo, durante la fase de concepción asociados puede determinarse objetivamente durante el marco de
del producto, un proyecto podría llevarse a cabo para determinar los “operar y mantener” tiempo. ingeniería de software Economics
requisitos de necesidad del cliente y del mercado; durante el deben preocuparse por todas las actividades SPLC, incluyendo las
mantenimiento, un proyecto podría llevarse a cabo para producir una actividades después de la liberación inicial del producto.
próxima versión de un producto.
2.3. Programa
Un programa es “un grupo de proyectos relacionados, subprogramas y 2.6. Ciclo de Vida del Proyecto
actividades del programa gestionado de manera coordinada para obtener [2 *, c2] [3 *, c2]
beneficios que no están disponibles
(Ver el KA Software Engineering Management). Las actividades dentro 2.9. Planeando el horizonte
de un ciclo de vida del proyecto de software son a menudo intercalada, [1 *, c11]
se superponen, y reiterada en diversas formas [3 *, c2] [5] (ver la
Ingeniería de Procesos de Software KA). Por ejemplo, el desarrollo de Cuando una organización decide invertir en una propuesta cular
productos ágil dentro de un SPLC implica múltiples iteraciones que par-, el dinero se hace atar en esa propuesta, los llamados “activos
producen incrementos de software entregable. Un SPLC debe incluir la congelados.” El impacto económico de los bienes congelados tiende
gestión del riesgo y la sincronización con los proveedores dife- rentes a comenzar y disminuye con el tiempo. Por otra parte, ING y
(si los hay), al tiempo que proporciona información audit- poder de mantenimiento operat- costes de los elementos asociados con la
toma de decisiones (por ejemplo, comply- ing con las necesidades de propuesta tienden a empezar con poco, pero aumentará con el
responsabilidad por productos o las reglas de gobierno). El ciclo de tiempo. El costo total de la propuesta, es decir, poseer y operar un
vida del proyecto de software y el software de ciclo de vida del producto es la suma de estos dos costos. Al principio, los costos de
producto están relacionados entre sí; un SPLC puede incluir varios los activos congelados dominan; más tarde, los costos de operación
SDLCs. y mantenimiento dominan. Hay un punto en el tiempo que se
minimiza la suma de los costos; esto se llama el
2.8. Decisiones de inversión Un precio es lo que se paga a cambio de un bien o servicio. El precio es
[1 *, c4] un aspecto fundamental de la modelización financiera y es una de las
cuatro P de la comercialización
Los inversores a tomar decisiones de inversión para gastar dinero y mezcla. Los otros tres son Sal producto, promoción y lugar. El precio es
recursos en la consecución de un objetivo obje- tivo. Los inversores están el ele- mento única generadora de ingresos entre las cuatro P; el resto
ya sea en el interior (por ejemplo, las finanzas, la placa) o fuera (por son costes. El precio es un elemento de finanzas y marketing. Es el
ejemplo, bancos) de la organización. El objetivo se relaciona con algunos proceso de determinar lo que es una empresa recibirá a cambio de sus
criterios económicos, tales como el logro de un alto retorno de la productos. factores de fijación de precios incluyen el coste de
inversión, el fortalecimiento de las capacidades de la organización, o de fabricación, colo- cación mercado, la competencia, las condiciones del
mejorar el valor de la empresa. aspectos Intangi- bles tales como la mercado, y la calidad del producto. La fijación de precios se aplica a los
buena voluntad, la cultura y competen- cias deben ser considerados. precios de productos y servicios basados en factores tales como
cantidad fija, ruptura cantidad, promoción o campaña de ventas,
Ingeniería de Software Economía 12-9
cotización específica del proveedor, embarque o factura fecha, parámetros utilizados para determinar si los programas,
combinación de varios pedidos, ofertas de servicios, y muchos otros. Las inversiones y adquisiciones están logrando los resultados
necesidades del consumidor se pueden convertir en la demanda sólo si el deseados. Se utiliza para evaluar si realmente se logran los
consumidor tiene la voluntad y la capacidad para comprar el pro- ducto. objetivos de rendimiento; para controlar los presupuestos, los
Por lo tanto, el precio es muy importante en la comercialización. La fijación recursos, el progreso y las decisiones; y para mejorar el
de precios se realiza inicialmente durante la fase ción iniciativa del rendimiento.
proyecto y es una parte de la toma de decisiones “ir”.
2.15. Las decisiones de reemplazo y jubilación Uno de los objetivos de negocio se relaciona necesidades empresariales
Una decisión de reemplazo se hace cuando una organiza- ción ya presupuesto dado, contenido y el tiempo). Objetivos se aplican a la
tiene un activo en particular y que están considerando reemplazar planificación operativa (por ejemplo, para llegar a un determinado hito en
con otra cosa; por ejemplo, decidir entre el mantenimiento de y una fecha determinada o para ampliar las pruebas de software por un
apoyar un producto de software heredado o volver a desarrollar cierto tiempo para lograr un nivel de calidad deseado, ver cuestiones clave
desde el principio. las decisiones de reemplazo utilizan el mismo de la Prueba KA Cesión de Software) y al nivel estratégico ( tales como
proceso de decisión de negocios como se describió anteriormente, alcanzar una cierta rentabilidad o cuota de mercado en un período de
pero hay retos adicionales: costo hundido y valor de rescate. las tiempo establecido).
pasados por alto. La búsqueda de los factores que causaron la • valor esperado de la información perfecta.
propagación y luego volver a estimar de nuevo para pro- ducir
resultados que convergen podría conducir a una mejor estimación.
12-12 Guía SWEBOK® V3.0
3.6. Las decisiones bajo incertidumbre [ 1 *, c25] [3 *, c9] 4. Métodos de Análisis Económico
está disponible (véase Gestión de Riesgos en el KA Software alternativa de un conjunto de alternativas sivos mutuamente exclusiones.
Engineering Management). Las técnicas específicas incluyen Los criterios de decisión dependen de los objetivos de negocio y por lo
• Regla de Laplace rendimiento del capital invertido). Para fines de lucro técnicas de toma no
• Regla maximax estos casos, las organizaciones tienen diferentes objetivos, lo que significa
• Regla Hurwicz que se necesita un conjunto diferente de las técnicas de toma, como el
La tasa mínima aceptable de rendimiento (TREMA) es la más baja Análisis coste-beneficio es uno de los métodos más utilizados para
tasa interna de retorno de la organiza- ción consideraría como una la evaluación de ALS propues- individuales. Cualquier propuesta
buena inversión. En términos generales, no sería inteligente para con una relación beneficio-costo de menos de 1,0 por lo general
invertir en una actividad con un rendimiento del 10% cuando no hay puede ser rechazada sin análisis adicional porque costaría más
otra actividad que se sabe que devolver el 20%. La TREMA es una que el beneficio. Las propuestas con una necesidad mayor
declaración de que una organización confía en que puede lograr al proporción de con- Sider el riesgo asociado de una inversión y
menos que la tasa de rendimiento. La TREMA representa el costo comparar los beneficios con la opción de invertir el dinero a una
de oportunidad de la organización para las inversiones. Al elegir a tasa de interés garantizada (ver sec- ción 4.2, aceptable tasa de
invertir en algún tipo de actividad, la organización está decidiendo retorno mínima).
explícitamente a no invertir ese mismo dinero en otro lugar. Si la
organización es ya confía en que puede conseguir un poco de
velocidad conocida de retorno, otras alternativas deben elegirse sólo 4.6. Análisis coste-efectividad
si su tasa de rendimiento es al menos tan alto. Una manera sencilla [1 *, c18]
para dar cuenta de que el coste de oportunidad es utilizar la TREMA
como la tasa de interés en las decisiones empresariales. valor Análisis coste-efectividad es similar al análisis de
actual de una alternativa evaluada en la TREMA muestra cuánto coste-beneficio. Hay dos versiones de análisis
más o menos (en términos de caja actuales) que vale la pena coste-eficacia: la precio fijo Versión maximiza el beneficio
alternativa es que la inversión en el Marr. dado alguna cota superior en el precio; el -Efectividad fijo Versión
minimiza el costo necesario para lograr un objetivo fijo.
gerente y utilizada en apoyo de la consecución de los objetivos de encontrar el punto en el rendimiento general es mejor. clásica disyuntiva
negocio. espacio-tiempo de software es un ejemplo de optimización; un algoritmo
que se ejecuta más rápido con frecuencia utiliza más memoria.
4.9. Evaluación Atributo múltiple Optimización equilibra el valor del tiempo de ejecución más rápida contra
[1 *, c26] el costo de la memoria adicional. El análisis de opciones reales se puede
usar para cuantificar el valor de opciones de proyectos, incluyendo el
Los temas tratados hasta ahora se utilizan para hacer las valor de retrasar una decisión. Estas opciones son difíciles de calcular
decisiones sobre la base de un único criterio de decisión: el con precisión. Sin embargo, la conciencia de que las opciones tienen un
dinero. La alternativa con el mejor valor actual, la mejor ROI, y valor monetario proporciona la penetración en el calendario de las
así sucesivamente es la seleccionada. Aparte de viabilidad decisiones tales como el personal del proyecto ING increas- o alargando
técnica, el dinero es casi siempre el criterio de decisión más el tiempo de comercialización para mejorar la calidad.
importante, pero no es siempre el único. Muy a menudo hay otros
criterios, otros “atributos”, que deben tenerse en cuenta, y esos
atributos no se pueden colar en términos de dinero. de toma de
atributos múltiples técnicas permiten otros criterios no financieros,
que sean fac- reada en la decisión. 5. Consideraciones prácticas
resulta de la adición de características que tienen valor marginales En un ecosistema típico, hay productores y consumidores, en los que
bajos para los usuarios (ver Métodos ágiles en los modelos de los consumidores agregan valor a los recursos consumidos. Tenga en
ingeniería de software y métodos KA y Vida Software Modelos de cuenta que un consumidor no es el usuario final, sino una
Ciclo de la Ingeniería de Procesos de Software KA). En ods met organización que utiliza el producto para mejorarla. Un ecosistema de
ágiles, planificación detallada y las largas fases de desarrollo se software es, por ejemplo, un proveedor de una aplicación trabajando
sustituyen por la planificación incrementales y entrega frecuente de con las empresas que hacen la instalación y el puerto SUP- en
pequeños incrementos de un producto erable deliv- que se prueba y diferentes regiones. Ninguno de los dos puede existir sin el otro. Los
evaluadas por representantes de los usuarios. ecosistemas pueden ser permanentes o temporales. la economía de
ingeniería de software proporciona los mecanismos para evaluar
alternativas en el establecimiento o la ampliación de una instancia
ecosistema para, evaluar si trabajar con un distribuidor espe- CIFIC o
5.2. Economía-Friction Free tiene la distribución realizada por una empresa que realiza el servicio
en un área.
la fricción económica es todo lo que mantiene merca- dos de tener la
competencia perfecta. Se trata de distancia, el costo de la entrega, las
regulaciones restrictivas, y / o información imperfecta. En los mercados
de alta fricción, los clientes no tienen muchos proveedores entre los que 5.4. La deslocalización y la externalización
elegir. Después de haber sido en un negocio por un tiempo o ser
propietario de una tienda en una buena ubicación determina la posición La deslocalización significa la ejecución de una actividad de negocio
económica. Es difícil para los nuevos competidores para iniciar negocios más allá de ventas y comercialización fuera del país de origen de una
y competir. El mercado se mueve lentamente y de manera previsible. empresa. Las empresas típicamente tienen sus ramas de
mercados libres de fricción son justo lo contrario. Surgen nuevos deslocalización en países de bajos costes o que piden las empresas
competidores y los clientes son rápidos en responder. El mercado es especializadas en el extranjero para ejecutar la actividad respectiva.
cualquier cosa menos capaces predecible. En teoría, el software y TI son ING Offshor- tanto, no debe confundirse con la externalización. La
rozamientos. Las nuevas empresas pueden crear fácilmente los deslocalización dentro de una empresa se llama deslocalización
productos y a menudo lo hacen a un costo mucho más bajo que cautiva. La subcontratación es la relación entados resultado-ori- con
blecimientos empresas cado, ya que no tendrá que considerar cualquier un proveedor que ejecuta actividades de negocio para una empresa
legado. Marketing y ventas se pueden hacer a través de Internet y las cuando, tradicional- mente, esas actividades fueron ejecutadas dentro
redes sociales, y los mecanismos de distribución bási- camente libres de la empresa. La externalización es un sitio independiente. El
pueden permitir una rampa hasta un negocio global. Software Engineer- proveedor puede residir en la vecindad de la empresa o en alta mar
economía ing tiene como objetivo proporcionar bases para juzgar cómo (subcontratado offshor- ing). la economía de ingeniería de software
un negocio de software lleva a cabo y cómo libre de fricción un mercado proporciona los criterios básicos y herramientas de negocio para
que realmente es. Por ejemplo, la competencia entre los desarrolladores evaluar diferentes mecanismos de aprovisionamiento y controlar su
de aplicaciones de software se inhibe cuando las aplicaciones deben ser rendimiento. Por ejemplo, el uso de un proveedor de externalización
vendidos a través de una tienda de aplicaciones y cumplen con las de desarrollo de software y el mantenimiento podría reducir el coste
normas de esa tienda. por hora de desarrollo de software, pero aumentar el número de
horas y los gastos de capital debido a una mayor necesidad de
seguimiento y comunicación. (Para más infor- mación sobre la
deslocalización y la externalización, consulte “externalización” en
cuestiones de gestión en el mantenimiento del software KA).
5.3. ecosistemas
Sommerville 2011
Tockey 2005
Fairley 2009
[3 *]
[2 *]
[1 *]
1. Fundamentos de Ingeniería de Software
Economía
1.1. Financiar c2
1.11. Eficiencia c1
1.12. Eficacia c1
2.3. Programa
2.4. portafolio
2.7. propuestas c3
Sommerville 2011
Tockey 2005
Fairley 2009
[3 *]
[2 *]
[1 *]
3. Riesgo e Incertidumbre
3.4. priorización c6
5. Consideraciones prácticas
5.3. ecosistemas
LECTURAS Referencias
Este libro es la lectura clásica en la economía de ingeniería de [7] C. Ebert y R. Dumke, Software
software. Proporciona una visión general del pensamiento Medición, Springer, 2007.
empresarial en ingeniería de software. Aunque los ejemplos y
figuras son anticuadas, todavía vale la pena leer. [8] DJ Reifer, Haciendo la Business Software
Caso: Mejoramiento por los números,
Addison Wesley, 2002.
C. Ebert y R. Dumke, Medición de software
[7].
FUNDAMENTOS DE INFORMATICA
SIGLAS
AOP Programación Orientada a Aspectos ALU SCSI SQL Small Computer System Interface
Sistema de Gestión de Base de Datos DBMS FPU software puede existir en un vacío o correr sin un ordenador, el
núcleo de un entorno de este tipo es el ordenador y sus diversos
Flotar Point Unidad de E
componentes. El conocimiento acerca de la computadora y sus
/S Entrada y salida de ISA
principios subyacentes de las mercancías de hardware y software
Arquitectura del conjunto de instrucciones sirve como un marco en el que se ancla la ingeniería de software.
Organización Internacional de Por lo tanto, todos los ingenieros de software deben tener una
ISO
Normalización ISP buena comprensión de los ing Fundamentos de Informática KA. En
general se acepta que el software de inge- niería se acumula en la
Proveedor de Servicios de Internet
parte superior de la informática. Por ejemplo, “Ingeniería de
LAN Red de área local
Software 2004: Directrices riculum mentos de Pregrado Programas
multiplexor MUX NIC de Grado en Ingeniería de Software” [1] establece claramente, “Un
Tarjeta de interfaz de red de aspecto particularmente importante es que
Programación
programación orientada a objetosorientada a objetos OS
Identificación por Radio Frecuencia RAM Memoria Tanto la informática y el software de inge- niería acuerdo con
de acceso aleatorio ROM memoria de sólo lectura ordenadores, computación y software. La ciencia de la
computación, como un conjunto de conocimientos, está en el
centro de ambos.
13-1
13-2 Guía SWEBOK® V3.0
... Ingeniería de software se ocupa de la aplicación de las KA. Por ejemplo, los gráficos de ordenador, mientras que un curso
computadoras, computación y software para propósitos importante en un programa de grado de la informática, no está
prácticos, específica- mente el diseño, la construcción y incluido en este KA. En segundo lugar, algunos de los temas tratados
funciona- miento de los sistemas de software eficientes y en esta línea guía- no existen como cursos independientes de
económicos. programas informáticos graduados o graduados insuficientemente.
Por consiguiente, tales temas pueden no estar cubiertos
adecuadamente en un desglose basado curso-puramente. Por
Por lo tanto, en el centro de ingeniería de software es una ejemplo, la abstracción es un tema incorporado en varios cursos de
comprensión de la informática. informática diferentes; no está claro qué abstracción curso deben
Aunque pocas personas negarán las obras de informática papel pertenecer a una avería basada en el transcurso de los temas. El
en el desarrollo de la ingeniería de software, tanto como disciplina y Fundamentos de Informática KA se divide en diecisiete temas
como un conjunto de conocimientos, la importancia de la informática diferentes. Ness útil- directa de un tema a los ingenieros de software
a la ingeniería de software no puede ser demasiado hincapié es el criterio utilizado para la selección de temas para su inclusión en
tamaño; Por lo tanto, esta Fundamentos de Informática KA está esta KA (ver figura
siendo escrito.
La mayoría de los temas tratados en los Fundamentos Com- 13.1). La ventaja de esta distribución basada en el tema es su
Puting KA también son temas de dis- cusión en los cursos básicos fundamento en la creencia de que si daciones-Computing Fun- es
que figuran en los programas de grado y posgrado de la informática. para ser agarrado firmemente-deben conside- rarse como una
Dichos cursos incluyen la programación, estructura de datos, colección de temas relacionados lógicamente ciñendo la ingeniería
algoritmos, organización de computadores, sistemas operativos, de software en la construcción general y el software, en particular .
compiladores, bases de datos, redes, sistemas de dis- tribuido, y así Los fundamentos de computación KA se relaciona estrechamente
sucesivamente. Por lo tanto, cuando Break-ing por temas, puede ser con el Diseño de Software, Software Con- trucción, pruebas de
tentador para descomponer el Fundamentos de Informática KA software, software Principal- manteni-, Calidad de Software y
acuerdo con estas divisiones a menudo se encuentran en-cursos fundaciones KAs matemáticas.
pertinentes. Sin embargo, una división basada curso de temas
puramente sufre graves inconvenientes. Por un lado, no todos los
cursos de informática están relacionados o igualmente importante
para la ingeniería de software. Por lo tanto, algunos de los temas que DISTRIBUCIÓN DE TEMAS PARA
de otra forma estarían cubiertos en un curso de informática no están FUNDAMENTOS DE INFORMATICA
cubiertos en este
El desglose de temas para los cimientos Informática KA
se muestra en la figura 13.1.
Fundamentos de computación 13-3
La conceptos, nociones y terminología introducida aquí forman una base siguiente paso es analizar el planteamiento del problema o la situa- ción
subyacente para la comprensión de la función y el alcance de las técnicas para ayudar a estructurar nuestra búsqueda de una solución. Cuatro tipos
Si bien los distintos problemas garantizan soluciones diferentes y centrarnos en la estructuración de una estrategia de búsqueda para
pueden requerir diferentes herramientas y procesos, la metodología y las encontrar la solución. Con el fin de encontrar la “mejor” solución (en este
técnicas utilizadas en la solución de problemas hacen seguir algunas caso, “mejor” puede significar cosas diferentes para personas diferentes,
directrices y, a menudo se pueden generalizar como las técnicas de tales como rápido, más barato, más usables diferentes capacidades, etc.),
resolución de problemas. Por ejemplo, una pauta general para la necesitamos eliminar caminos que no conducen a soluciones viables, las
resolución de un problema de ingeniería genérica es utilizar el proceso tareas de diseño de una manera que proporciona la mayor orientación en
de tres pasos dada a continuación [2 *]. la búsqueda de una solución, y utilizan diversos atributos del estado de
de problemas.
Gerard Voland escribe: “Es importante reconocer que un de problemas. Para resolver un problema utilizando las computadoras, hay
problema específico debe ser formulada si uno va a desarrollar que responder a las siguientes preguntas.
actual y el deseado, y utilizando el enfoque del ojo fresco. es determinar qué decirle a la computadora para hacer. Puede haber
de que el equipo con el tiempo puede resolver el pro- blema. En “A través de la abstracción”, según Voland, “vemos el problema
general, un problema debe expresarse de tal manera que se facilite y sus posibles vías de solución a partir de un mayor nivel de
el desarrollo de algoritmos y estructuras de datos para resolverlo. El comprensión conceptual. Como resultado, podemos llegar a ser
resultado de la primera tarea es ment un problema por el estado. El mejores pre recortaron para reconocer posibles relaciones entre
siguiente paso es convertir el problema ción estatal en los algoritmos los diferentes aspectos del problema y de ese modo erate ge-
que resuelven el problema. Una vez que se encuentra un algoritmo, soluciones de diseño más creativas”[2 *]. Esto es particularmente
el paso final convierte el algoritmo en instrucciones de máquina que cierto en informática en general (tales como hardware vs software)
forman la solución final: software que resuelve el problema. Hablando y en ingeniería de software en particular (estructura de datos vs
en abstracto, la resolución de problemas utilizando un ordenador flujo de datos, y así sucesivamente).
puede ser considerado como un proceso de transformación
problema, en otras palabras, la etapa de transformación a paso de un
planteamiento del problema en una solución de un problema. Para la
disciplina de la ingeniería de software, el objetivo último de la 2.1. Los niveles de abstracción
resolución de problemas es transformar un problema expresado en
lenguaje natural en electrones que se ejecutan en un circuito. En Cuando la abstracción, nos concentramos en un “nivel” de la gran
general, esta transformación se puede dividir en tres fases: imagen a la vez con la confianza de que podemos conectar
eficazmente con niveles por encima y por debajo. Aunque nos
centramos en una sola planta, abstracción no significa saber nada
acerca de los niveles vecinos. niveles de abstracción no
necesariamente corresponden a componentes discretos en la
realidad o en el dominio del problema, pero para bien definido de
a) El desarrollo de algoritmos de la declaración proble- interfaces estándar como API de programación. Las ventajas que
Lem. proporcionan interfaces estándar incluyen la portabilidad, el software
b) La aplicación de algoritmos para el problema. más fácil / integración de hardware y utensilios de uso más amplio.
c) Transformación de algoritmos para el código del programa.
en diferentes momentos, en otras palabras, se trabaja en diferentes realizar una función deseada. Es una parte indispensable en la
niveles de abstracción como la situación lo requiere. La mayoría de las construcción de software. En general, programa- ción puede
veces, estos diferentes niveles de abstracción se organizan en una considerarse como el proceso de diseñar, escribir, probar,
jerarquía. Hay muchas maneras de estructurar una jerarquía particular depurar y man- TaiNing el código fuente. Este código fuente es
y los criterios utilizados para determinar el contenido específico de escriben normalmente con un lenguaje de programación. El
cada capa en la jerarquía varía dependiendo de los individuos que proceso de escribir código fuente a menudo requiere experiencia
realizan el trabajo. en muchas áreas, incluyendo sujetos diferentes conocimientos
del dominio de aplicación, estructuras de datos apropiadas,
A veces, una jerarquía de abstracción es secuencial, lo que algoritmos izadas especial-, varias construcciones del lenguaje,
significa que cada capa tiene una y sólo una predecesor capa buenas técnicas de programación, e ingeniería de software.
(inferior) y uno y sólo un sucesor (superior) capa excepto la capa
upmost (que no tiene un sucesor) y la más inferior capa (que no
tiene predecesor). A veces, sin embargo, la jerarquía está
organizada en una estructura de árbol, lo que significa que cada
capa puede tener más de una capa predecesor, pero sólo una capa 3.1. El proceso de programación
sucesor. Ocasionalmente, una jerarquía puede tener un muchos-
estructura a varios, en el que cada capa puede tener múltiples La programación implica el diseño, la escritura, pruebas,
predecesores y sucesores. En ningún momento, habrá ninguna depuración y mantenimiento. Diseño es la concepción o la
bucle en una jerarquía. Una jerarquía a menudo forma natural en la invención de un esquema para convertir un requisito de cliente
posición tarea descomposición. A menudo, un análisis de tareas se para el software de la computadora en el software operativo. Es la
puede descomponer de forma jerárquica, empezando por las tareas actividad que une a los requisitos de aplicación a la codificación y
y objetivos de la organización más grande y romper cada uno de debug- ging. Escritura es la codificación real del diseño en un
ellos hacia abajo en subtareas más pequeñas que una vez más se lenguaje de programación adecuado. Pruebas
pueden subdividir Esta divi- sión continua de tareas en otros más
pequeños produciría una estructura jerárquica de las tareas de es la actividad para verificar que el código se escribe en realidad hace
subtareas. lo que se supone que debe hacer. ging de Depuración es la actividad de
encontrar y corregir los bugs (errores) en el código fuente (o diseño). Mantenimiento
es la actividad de actualizar, corregir y mejorar los programas
existentes. Cada una de estas actividades es un tema enorme y, a
menudo garantiza que la explicación de toda una KA en el Guía
2.4. Las abstracciones alternativos SWEBOK y muchos libros.
presentimiento a escribir el código de la manera que él / ella le gusta, problemas. En la programación funcional, todas las computaciones
siempre y cuando la función está operativa. A menudo, la práctica es son tratados como la evaluación de las funciones ematical
escribir código para cumplir una utilidad específica sin tener en cuenta Matemáticas-. En contraste con la programación imperativo que
cualquier otra cosa. Los programas escritos de esta manera, no exhiben enfatiza los cambios de estado, la programación funcional hace
estructura- particular, de ahí el nombre de “programación estructurada.” hincapié en la apli- cación de las funciones, evita los datos del estado
Programación no estructurada también a veces se llama la y mutables, y proporciona transparencia referencial.
programación ad hoc.
Estructurada / Procedimientos / Imperativo programa- ción: Una 4. Principios básicos del lenguaje de programación
preocupaciones, que separa las preocupaciones funcionales no esenciales 4.2. Sintaxis y semántica de lenguajes de programación
o lógica en varios aspectos.
depuración es siempre necesario. se generan a menudo después de un proceso ha le ponga fin debido a una
interpretado (y, por lo tanto, ejecuta). En los lenguajes de rápida ejecutar secuencias de código seleccionado para obtener
programación de alto nivel, los errores de sintaxis son capturados una visión general de alto nivel del comportamiento de ejecución.
{ f retorno ( x- 1);}”para el cálculo de factorial de x! es legal, pero depuración también es muy creativo (a veces más creativa que la
lógicamente incorrecto. Este tipo de error no puede ser atrapado por programación). De este modo la ayuda de herramientas está en orden.
un compilador durante la compilación y, a menudo se descubre a Para la depuración dinámica, depuradores son ampliamente utilizados y
través de rastreo de la ejecución del programa (damas estáticos permitir al programador para controlar la ejecución de un programa,
modernos hacen identificar algunos de estos errores. Sin embargo, el detener la ejecución, reiniciar la ejecución, establecer puntos de
punto es que estos no son verificables máquina en general). interrupción, los valores de cambio en la memo- ria, e incluso, en algunos
casos, volver atrás en el tiempo. Para la depuración estática, hay muchos las
Existen dos herramientas comerciales y gratuitas en varios idiomas. 6.2. Tipos de Estructuras de Datos
Estas herramientas pueden ser extremadamente útil para comprobar
muy grandes árboles de origen, donde no es práctico hacer tutoriales Como se mencionó anteriormente, diferentes perspectivas se pueden
de código. el UNIX utilizar para clasificar las estructuras de datos. Sin embargo, la
hilas programa es un ejemplo temprano. perspectiva predominante usado en la clasificación se centra en orden
físico y lógico entre los elementos de datos. Esta clasificación divide
6. Estructura de datos y representación estructuras de datos en las estructuras lineales y no lineales.
[5 *, s2.1-2.6] estructuras lineales organizan los elementos de datos en una única
dimensión en la que cada entrada de datos tiene una (físico o lógico)
Los programas funcionan en los datos. Pero los datos se expresan y predecesor y sucesor uno con la excepción de la primera y última
organizan dentro de los ordenadores antes de ser procesados por los entrada. La primera entrada no tiene predecesor y la última entrada
programas. Esta organización y expresión de datos para su uso programas no tiene sucesor. estructuras no lineales organizan los elementos de
es el tema de la estructura de datos y la representación. Sim- poner capas, datos en dos o más dimensiones, en cuyo caso, una entrada puede
una estructura de datos intenta almacenar y organizar los datos en un tener varios predecesores y sucesores. Ejemplos de estructuras
ordenador de una manera tal que los datos pueden ser utilizados de lineales incluyen listas, pilas y colas. Ejemplos de estructuras no
manera eficiente. Hay muchos tipos de estructuras de datos y cada tipo de lineales incluyen montones, tablas hash, y los árboles (tales como
estructura es adecuada para algunos tipos de aplicaciones. Por ejemplo, B árboles binarios, árboles de equilibrio, los árboles B, y así
/ B + árboles son muy adecuadas para la implementación de sistemas de sucesivamente).
archivos maestras sivos y bases de datos.
adicionales:
13-10 Guía SWEBOK® V3.0
Los programas no son al azar piezas de código: están escritos 7.3. Análisis algorítmico
meticulosamente para realizar acciones a la esperada por el
usuario. La guía uno utiliza para componer programas son Análisis de algoritmos es el estudio teórico de rendimiento
algoritmos, que organizan diversas funciones en una serie de pasos programa de ordenador y el uso de recursos; en cierta
y tienen en cuenta el dominio de aplicación, la estrategia de medida, que determina la bondad de un algoritmo. Tal
solución, y las estructuras de datos que se utiliza. Un algoritmo análisis generalmente abstrae los detalles particulares de un
puede ser muy simple o muy compleja. equipo específico y se centra en el análisis dent asintótica,
máquina-indepen-.
7.4. Estrategias de diseño algorítmico agregación, potencial, y la contabilidad para ana- Lyze el peor
rendimiento de un algoritmo en una secuencia de
El diseño de algoritmos sigue generalmente una de las siguientes operaciones; y Análisis competitivo,
estrategias: la fuerza bruta, divide y vencerás, programación dinámica, en el que uno utiliza métodos tales como el potencial y la
y la selección codiciosos. los estrategia de fuerza bruta es en realidad contabilidad para analizar el rendimiento relativo de un algoritmo
una estrategia no. Se trata de manera exhaustiva todos los medios para el algoritmo óptimo. Para problemas complejos y algoritmos,
posibles para hacer frente a un problema. Si un problema tiene una uno puede necesitar usar una combinación de las estrategias de
solu- ción, esta estrategia está garantizada para encontrarlo; Sin análisis cionado aforemen-.
embargo, el gasto de tiempo puede ser demasiado alto. los divide y
conquistaras estrategia mejora en la estrategia de la fuerza bruta
dividiendo un gran problema en problemas más pequeños y 8. Concepto básico de un sistema de
aleatorización puede mejorar en la estrategia de selec- ción codiciosos Un sistema es más que la simple suma de sus partes. Por lo tanto, las
al eliminar la complejidad en la determinación de la elección codicioso propiedades de un sistema no son simplemente la suma de las
a través de monedas de ping flip o aleatorización. propiedades de sus componentes. En cambio, un sistema a menudo
exhibe propiedades que son propiedades del sistema como un todo.
Estas propiedades se denominan propiedades emergentes porque se
7.5. Estrategias de análisis algorítmico desarrollan sólo después de la integración de las partes constituyentes
en el sistema. las propiedades del sistema Emergentes pueden ser
Las estrategias de análisis de algoritmos incluyen funcional o no funcional. propiedades funcionales describen las cosas
análisis de recuento de base, en el que uno realmente cuenta el que hace un sistema. Por ejemplo, las propiedades funcionales de un
número de pasos de un algoritmo tarda en completar su tarea; análisis
avión incluyen la flotación en el aire, llevando a las personas o carga,
asintótico, en el que uno sólo considera el orden de magnitud y su uso como arma de destrucción masiva. propiedades no
del número de pasos de un algoritmo toma para com- pleta su funcionales describen cómo se comporta el sistema en su entorno
tarea; análisis probabilístico, en el que se hace uso de las operativo. Estos pueden incluir cualidades tales como consistencia,
probabilidades en el análisis del rendimiento promedio de un dad capaci-, el peso, la seguridad, etc.
algoritmo; amor- análisis Tized, en el que uno utiliza los
métodos de
13-12 Guía SWEBOK® V3.0
Figura 13.3. Los componentes básicos de un sistema informático basado en el modelo de von Neumann
8.2. Ingeniería de Sistemas y componentes electrónicos con cada componente realiza una
función de preajuste. Conjuntamente, estos com- ponentes son
“La ingeniería de sistemas es el enfoque interdisciplinario que rige el capaces de ejecutar las instrucciones que se dan por el programa.
esfuerzo gerial técnica y Mana- total que se requiere para transformar un
conjunto de necesidades de cliente central Tomer, expectativas y Hablando en abstracto, un ordenador recibe alguna entrada,
limitaciones en una solución y para apoyar esa solución pasantes a cabo almacena y manipula algunos datos, y proporciona una cierta salida. La
su vida.” [7]. Las etapas del ciclo de vida de la ingeniería de sistemas característica más distintiva de un ordenador es su capacidad para
varían en función del sistema que se está construyendo, pero, en almacenar y ejecutar secuencias de instrucciones llamadas programas. Un
general, incluyen requisitos del sistema de definición, el diseño del fenómeno interesante en relación con el ordenador es la equivalencia
sistema, subsistema de Desa- ción, integración de sistemas, las pruebas universal en funcionalidad. De acuerdo con Turing, todos los
del sistema, la instalación del sistema, la evolución del sistema, y el ordenadores con una cierta capacidad mínima son equivalentes en su
sistema de desmantelamiento. abil- dad para realizar tareas de cálculo. En otras palabras, dado el
tiempo suficiente y la memoria, todos Computadoras- que van desde un
netbook a un superordenador-son capaces de calcular exactamente las
Muchas directrices prácticas se han producido en el pasado para mismas cosas, independientemente de la velocidad, tamaño, costo, o
ayudar a las personas en la realización de las activi- dades de cada fase. cualquier otra cosa. La mayoría de los sistemas informáticos tienen una
Por ejemplo, el diseño del sistema se puede dividir en tareas más estructura que se conoce como el “modelo de von Neumann,” que
pequeñas de identificación de subsistemas, la asignación de sistema consta de cinco componentes: una memoria para las instrucciones y
REQUISITOS DE a los subsistemas, la especificación de la funcionalidad almacenar datos, una unidad Central de procesamiento
del subsistema, la definición de interfaces del subsistema, y así
sucesivamente.
9. Organización del ordenador la ISA, que especifica las cosas tales como los tipos de datos
[8 *, c1-c4] nativos, instrucciones, registros, modos de direccionamiento, la
arquitectura de memoria, interrumpen y el manejo de excepciones,
Desde la perspectiva de un ordenador, existe una gran diferencia y las E / S. En general, el ISA especifica la capacidad de un
semántica entre su intención comporta- miento y el funcionamiento ordenador y qué se puede hacer en el equipo con la programación.
de los dispositivos electrónicos subyacentes que realmente hacen el
trabajo dentro del equipo. Esta brecha se puentea a través ordenador
orga- nización, que engrana Various, Tronic elec- eléctrica, y 9.2. Sistemas digitales
dispositivos mecánicos en un solo dispositivo que forma un
ordenador. Los objetos que se ocupa de la organización de En el nivel más bajo, los cálculos se llevan a cabo por los
ordenador son los dispositivos, las conexiones y controles. La dispositivos eléctricos y electrónicos dentro de un ordenador. El
abstracción construida en la organización del equipo es el equipo. equipo utiliza circuitos y memo- ria para sostener los cargos que
representa la presencia o ausencia de tensión. La presencia de
tensión es igual a un 1 mientras que la ausencia de tensión es un
cero. En el disco de la polaridad de la tensión está representada por
9.1. Organización general del ordenador 0 y 1 que a su vez representa los datos almacenados. Todo,
incluyendo la instrucción y los datos se expresa o se codifica
Un equipo consiste generalmente en una CPU, memo- ria, dispositivos mediante ceros digitales y unos. En este sentido, un ordenador se
de entrada y dispositivos de salida. Hablando en abstracto, la convierte en un sistema digital. Por ejemplo, el valor decimal 6
organización de un ordenador se puede dividir en cuatro niveles puede ser codificada como 110, la instrucción de adición puede ser
(Figura 13.4). los arquitectura macro nivel es la especificación formal de codificado como 0001, y así sucesivamente. El componente del
todas las funciones de una máquina particular puede llevar a cabo y ordenador, tales como la unidad de control, ALU, la memoria y E / S
que se conoce como la arquitectura del conjunto de instrucciones usa la información para calcular las instrucciones.
(ISA). los arquitectura micro nivel es la actividad mental en práctica de
la Ley de Seguridad en una CPU específica, en otras palabras, la
forma en que las especificaciones del ISA se llevan a cabo realmente.
los circuitos lógicos nivel es el nivel en el que cada componente
funcional de la micro arquitectura se construye de circuitos que toman 9.3. lógica digital
decisiones basadas en reglas simples. los
Obviamente, se necesitan lógicas para manipular los datos y para
controlar el funcionamiento de los ordenadores. Esta lógica, que está
dispositivos nivel es el nivel en el que, finalmente, cada circuito lógico detrás ción fun- adecuada de un ordenador, se llama lógica digital porque
está construido de dispositivos electrónicos tales como semiconductores tiene que ver con las operaciones de ceros digitales y unos. lógica
complementarios de óxido metálico (CMOS), N de digital especifica las reglas tanto para la construcción de diversos
canal-semiconductores de óxido de metal (NMOS), o arseniuro de galio dispositivos digitales de los elementos más simples (tales como
(GaAs) transistores, y así sucesivamente. transistores) y para gobernar el funcionamiento de los dispositivos
digitales. Por ejemplo, la lógica digital detalla cuál será el valor si un
cero y uno es un AND, un OR o un OR exclusivo juntos. También
Macro Arquitectura Nivel (ISA) especifica cómo construir decodificadores, multiplexores ERS
(MUX), memoria y sumadores que se utilizan para montar el equipo.
Micro Arquitectura Nivel
Circuitos lógicos Nivel
Nivel dispositivos
Figura 13.4. Niveles arquitectura de la máquina 9.4. Expresión de datos del ordenador
Cada nivel proporciona una abstracción al nivel superior y es Como se mencionó antes, un ordenador expresa los datos con las
dependiente en el nivel inferior. Para un programador, el más señales eléctricas digitales o ceros y unos. Puesto que hay sólo dos
importante es la abstracción dígitos utilizados en diferentes
13-14 Guía SWEBOK® V3.0
expresión de datos, un sistema de este tipo se llama una sistema • Las células de memoria y chips
binario de expresión. Debido a la naturaleza inherente de un sistema • placas y módulos de memoria
binario, el valor máximo numérico expresable por un código binario de • jerarquía de memoria y la memoria caché
• La memoria como un subsistema del equipo.
n bits es 2 norte - 1. Específicamente, número binario un norte un n-1 ... un 1 un 0 corresponde
a un norte × 2 norte + un n-1 × 2 n-1 + ... + un 1 × 2 1 +
Las células de memoria y chips tratar con el almacenamiento de
un 0 × 2 0. Por lo tanto, el valor numérico de la expresión binaria de una sola digital y el montaje de unidades de un solo dígito en matrices
1011 es 1 × 8 + 0 × 4 + 1 × 2 + 1 de memoria unidimensionales, así como el montaje de matrices de
× 1 = 11. Expresar un valor no numérico, necesitamos para almacenamiento unidimensionales en chips de memoria de
decidir el número de ceros y unos de usar y el orden en que almacenamiento multi-dimensionales. placas y módulos de memoria preocupación
están dispuestos los ceros y unos. el montaje de chips de memoria en la memoria TEMS sis-, con el foco
que está en la organización, el funcionamiento y la gestión de los
Por supuesto, hay diferentes maneras de hacer la chips individuales en el sistema. jerarquía de memoria y la memoria
codificación, y esto da lugar a diferentes esquemas de expresión caché
de datos y subsistemas. Por ejemplo, los números enteros se
pueden expresar en forma de, complemento de uno o se utilizan para apoyar las operaciones de memoria eficientes.
complemento sin firmar de dos. Para los personajes, hay ASCII, La memoria como un sub-sistema de se ocupa de la interfaz entre el
Unicode y normas EBCDIC de IBM. Para los números de punto sistema de memoria y otras partes de la computadora.
flotante, hay IEEE-754 FP 1, 2 y 3 estándares.
La memoria es la unidad de almacenamiento de un ordenador. It vamos a la espera de la CPU mientras que el dispositivo de E / S está
preocupaciones con- el montaje de un sistema de memoria a gran escala a haciendo E / S; interrumpir impulsada I / O permite la manipulación de I de
partir de unidades más pequeñas y de almacenamiento de un solo dígito. la CPU / O ser accionado por el dispositivo de I / O; y acceso directo a
Los principales temas tratados en la arquitectura de memoria tem sis- memoria (DMA) Lets I / O ser manejado por un CPU secundaria incrustado
incluyen los siguientes: en un dispositivo DMA (o
Fundamentos de computación 13-15
canal). (Excepto durante la configuración inicial, la CPU principal hay algunas diferencias importantes entre los dos métodos. En primer
no se altera durante una operación de DMA I / O). lugar, un compilador hace que la conver- sión sólo una vez, mientras que
un intérprete normalmente con- verts cada vez que se ejecuta un
Independientemente de los tipos de esquema de E / S que se utilizan, programa. En segundo lugar, la interpretación de código es más lenta que
las principales cuestiones relacionadas con la E / S incluyen I / O de la ejecución del código compilado, ya que el intérprete debe analizar cada
direccionamiento ( que se ocupa de la cuestión de cómo identificar el declaración en el programa cuando se ejecuta y luego realizar la acción
dispositivo de E / S para un específico de E / S opera- ción), sincronización deseada, mientras que el código compilado solo realiza la acción dentro
( que se ocupa de la cuestión de cómo hacer que la CPU y O el trabajo de de un contexto fijo determinado por el Compilacion. En tercer lugar, el
E / dispositivo en armonía durante la I / O), y detección y corrección de acceso a las variables también es más lento en un intérprete porque la
errores ( que trata de la ocurrencia de errores de transmisión). asignación de identificadores a los lugares de almacenamiento debe
realizarse varias veces en tiempo de ejecución en lugar de en tiempo de
compilación. Las tareas principales de un compilador pueden incluir
preprocesamiento, análisis léxico, análisis sintáctico, análisis semántico,
10. Fundamentos del compilador generación de código, y el código de optimización ción. averías causadas
[4 *, s6.4] [8 *, S8.4] por el comportamiento del programa compilador incorrecto pueden ser
muy difíciles de localizar. Por esta razón, los ejecutores del compilador
10.1. Compilador / intérprete general invierten mucho tiempo, garantizar la exactitud de su software.
llamado un compilador o un intérprete. Este proceso de traducción dividen el proceso de compilación en muchas fases. Una composición
Hay dos formas de traducir un programa escriben normalmente con Análisis léxico divide el texto de entrada (el código fuente), que
un lenguaje de alto nivel en código de máquina: interpretación y es una secuencia de caracteres, en separada comentarios, que
compilación. Interpretación han de ser ignorados en las acciones posteriores, y símbolos
traduce el código fuente de una instrucción a la vez en básicos, que tienen significados léxicos. Estos símbolos básicos
lenguaje de máquina, lo ejecuta en el lugar, y luego regresa deben corresponder a algunos símbolos terminales de la
para otro comunicado. Tanto el código fuente de nivel de gramática de la len- guaje de programación en particular. Aquí
lengua alto y el intérprete se requieren cada vez que se ejecuta símbolos terminales se refieren a los símbolos ele- mentarios (o
el programa. fichas) en la gramática que no se pueden cambiar.
Compilacion traduce el código de nivel de lengua fuente alta en todo un
programa en lenguaje de máquina (una imagen ejecutable) por un
programa que se llama un compilador. Después de la compilación, sólo análisis sintáctico se basa en los resultados del análisis de
se necesita la imagen ejecutable para ejecutar el programa. La mayoría léxico y descubre la estructura en el programa y determina si o
del software aplica- ción se vende en esta forma. no un texto se ajusta a un formato esperado. ¿Es esta una
correcta programa aliado textu- C ++? o Es la entrada tex-
Mientras tanto la compilación e interpretación con- vert código de tualmente correcta? son preguntas típicas que pueden ser
lenguaje de alto nivel en código máquina,
13-16 Guía SWEBOK® V3.0
respondida por análisis de sintaxis. análisis sintáctico determina si el 11.1. Operativo general Sistemas
código fuente de un programa es rect cor- y la convierte en una re-
presentación (árbol de análisis sintáctico) más estructurado para el sistemas operativos es una colección de software y firmware, que
análisis o la transformación semántica. controla la ejecución de programas de ordenador y proporciona
servicios tales como la asignación de recursos del ordenador, control de
El análisis semántico agrega la información semántica al árbol de trabajo, entrada / salida de control y gestión de archivos en un sistema
análisis sintáctico construido durante el análisis sintáctico y construye la informático. Conceptualmente, un sistema operativo es un programa
tabla de símbolos. Se realiza variabilidad comprobaciones semánticas OU informático que gestiona los recursos de hardware y hace que sea más
que incluyen la comprobación de tipos, objeto de enlace (asociación de fácil de utilizar por aplicaciones mediante abstracciones agradables
variables y funciones referencias con sus definiciones), y la asignación tando previas. Esta abstracción agradable a menudo se llama la
definitiva (que requieren todas las variables locales a ser inicializado antes máquina virtual e incluye cosas tales como procesos, memoria virtual y
de su uso). Si se encuentran errores, las sentencias de programa sistemas de archivos. Un sistema operativo oculta la complejidad del
semánticamente incorrectos son rechazados y marcados como errores. hardware subyacente y se encuentra en todos los equipos modernos.
producido en las fases anteriores al idioma nativo de la máquina son ment manage- y la ilusión. administración se refiere a la gestión del
de la computadora en cuestión. Esto implica recursos y sistema operativo (asignación y recuperación) de los recursos físi- cas
almacenamiento de decisiones-tales como decidir qué variables entre múltiples usuarios / aplicaciones / tareas que compiten. Espejismo se
para encajar en los registros y la memoria y la selección y refiere a las buenas abstracciones del sistema operativo proporciona.
A menudo es posible combinar múltiples fases en un solo pase el Las tareas de un sistema operativo difieren significativamente
código en un compilador imple- mentación. Algunos compiladores dependiendo de la máquina y el tiempo de su invención. Sin embargo,
también tienen una fase de preprocesado en el comienzo o después los sistemas operativos modernos han llegado a un acuerdo en cuanto
del análisis léxico que hace el trabajo de limpieza es necesario, tales a las tareas que deben ser realizadas por un sistema operativo. Estas
como el procesamiento de las instrucciones de programa para el tareas incluyen la gestión de la CPU, la gestión de memoria, gestión de
compilador (directivas). Algunos compiladores proporcio- nar una disco (sistema de archivos), I / O de gestión de dispositivos, y la
fase de optimización opcional al final de la compilación completa seguridad y protección. Cada tarea OS hombre- edades un tipo de
para optimizar el código (como el reordenamiento de la secuencia de recurso físico. En concreto, ofertas de gestión de la CPU con la
instrucciones) para la eficiencia y otros objetivos deseables asignación y liberación de la CPU entre los programas que compiten
solicitados por los usuarios. entre sí (llamados procesos / hilos en la jerga OS), incluyendo el propio
sistema operativo. La abstracción principal proporcionada por la
administración de la CPU es el modelo de proceso / hilo. ofertas de
gestión de memoria con la asignación y liberación de espacio de
11. Fundamentos de Sistemas Operativos memoria entre procesos competitivos, y la principal abstracción
[4 *, c3] proporcionada por la gestión de memoria es la memoria virtual. Gestión
del disco se refiere a la puesta en común de los discos de estado
Cada sistema de complejidad significativa debe ser gestionado. Un magnéticos u ópticos o sólidos entre varios programas / usuarios y su
ordenador, como un sistema eléctrico-mecánicos más bien abstracción principal es el sistema de archivos. Yo dispositivo de E / S
compleja, necesita su propio hombre-ager para la gestión de los manage- ofertas de unificación con la asignación y liberación de varios
recursos y actividades que tienen lugar en él. Eso se llama un dispositivos de E / S entre los procesos que compiten.
gerente sistema operativo ( OS).
Fundamentos de computación 13-17
Seguridad y protección de acuerdo con la protección de los recursos • Multiprogramado OS procesamiento por lotes: añade la capacidad de
informáticos de uso ilegal. multi- titask en principios simples de procesamiento por lotes
las cinco tareas físicas, sistemas operativos utilizan cinco abstracciones: operativos incluyen UNIX, Linux y NT.
proceso / hilo, memoria virtual, siste- mas de archivos, de entrada / • Sistema operativo en tiempo real: añade sincronización la
salida, y dominios de protección. La abstracción general OS es la previsibilidad en el sistema operativo mediante la programación de
máquina virtual. Para cada área de tareas de sistema operativo, no es las tareas individuales de acuerdo con los plazos de realización de
tanto una realidad Physicians cal y una abstracción conceptual. La cada tarea. Ejemplos de tales OS incluyen VxWorks (WindRiver) y
abstracción conceptual se refiere a la interfaz del sistema operativo • OS distribuido: Agrega la capacidad del hombre: el envejecimiento
presenta a los usuarios / pro- gramas anteriores. Por ejemplo, en el de una red de computadoras en el sistema operativo.
modelo de rosca del sistema operativo, la realidad física es la CPU y la • OS incrustado: tiene una funcionalidad limitada y se utiliza para
abstracción es varias CPU. De este modo, el usuario no tiene que sistemas embebidos, tales como automóviles y PDAs. Ejemplos
preocuparse acerca de compartir la CPU con los demás cuando de tales sistemas operativos como Palm OS, Windows CE, y
trabajan en la abstracción proporcionada por un sistema operativo. En la PRIMERO.
abstracción de la memoria virtual de un sistema operativo, la realidad
física es la memoria RAM física o ROM (lo que sea), la abstracción es el Alternativamente, un OS se puede clasificar por su aplicable
espacio de memoria ITED unlim- múltiple. De este modo, el usuario no objetivo de la máquina / medio ambiente en lo siguiente.
tiene que preocuparse acerca de compartir la memoria física con otros o
sobre el tamaño de la memoria física limitada. Las abstracciones
pueden ser virtual o transparente; en este contexto virtual se aplica a • OS unidad central: Se ejecuta en el com- putadoras centrales
algo que parece estar allí, pero no es (como memoria utilizable más allá e incluyen OS / 360, OS / 390, AS / 400, MVS y VM.
física), mientras transparente se aplica a algo que está ahí, pero parece
no estar allí (como ir a buscar contenido de la memoria desde el disco o • Sistema operativo del servidor: se ejecuta en estaciones de trabajo o
la memoria física ). servidores e incluye sistemas como UNIX, Win- dows, Linux y VMS.
• OS procesamiento por lotes: organiza y procesos de trabajo en que una base de datos suele ser externa a programas individuales y
lotes. Ejemplos de tales sistemas operativos incluyen FMS de permanente en existencia en comparación con las estructuras de datos.
IBM, IBSYS, y Universidad de UMES de Michigan. Las bases de datos se utilizan cuando el volumen de datos es grande o
lógico
13-18 Guía SWEBOK® V3.0
las relaciones entre los elementos de datos son importantes. Los factores 12.3. Lenguaje de consulta de base de datos
considerados en el diseño de la base de datos incluyen Formance per-,
concurrencia, la integridad, y la recuperación de fallos de hardware. Usuarios / aplicaciones interactúan con una base de datos a través de un
lenguaje de consulta de base de datos, que es un lenguaje de
programación cializada espe- adaptados a la utilización de bases de
12.1. Entidad y de esquema datos. El modelo de base de datos tiende a determinar los lenguajes de
consulta que están disponibles para acceder a la base de datos. Un
Las cosas una base de datos intenta modelar y almacenar se denominan lenguaje de consulta de uso general para la base de datos relacional es
entidades. Las entidades pueden ser objetos del mundo real, como las el lenguaje de consulta estructurado, más comúnmente abreviado como
personas, coches, casas, etc., o pueden ser conceptos abstractos tales SQL. Un lenguaje de consulta común para bases Data- de objetos es el
como las personas, salario, nombres, y así sucesivamente. Una entidad lenguaje de consulta de objeto (abreviado como OQL). Hay tres
puede ser primitiva, tales como un nombre o compuesto tal como un componentes de SQL: Lenguaje de definición de datos (DDL), Lenguaje
empleado que consiste en un nombre, número de identificación, el salario, de manipulación de datos (DML) y el Lenguaje de control de datos (DCL).
dirección, y así sucesivamente. Un ejemplo de una consulta DML puede ser similar al siguiente:
define los barcos relación entre las diversas entidades que componen una SELECT Component_No, Cantidad de
base de datos. Por ejemplo, un esquema de un sistema de nómina de la Component DONDE Item_No = 100
compañía consistiría en cosas tales como la identificación de empleado,
de datos mantiene la base de datos de acuerdo con el esquema. La consulta anterior selecciona todos los Component_No y su
cantidad correspondiente de un componente de tabla de base de
datos llamada, donde el Item_No es igual a 100.
Otro concepto importante en la base de datos es la
modelo de base de datos que describe el tipo de tionship relación
entre las diversas entidades. Los modelos utilizados comúnmente 12.4. Tareas de paquetes de DBMS
incluyen relacional, la red y modelos de objetos.
Un sistema DBMS proporciona las siguientes capacidades:
recuperar datos de las bases de datos. Un DBMS controla la creación, generación de informes. Los usuarios finales pueden recuperar de
manteni- miento, y el uso de la base de datos y por lo general se clasifica forma selectiva y mostrar información y producir informes impresos.
de acuerdo con el modelo de base de datos que soporta tales como el, la Esta es la operación que la mayoría de los usuarios saben acerca
red o modelo de objeto relacional. Por ejemplo, un sistema de gestión de de las bases de datos.
base de datos relacional (RDBMS) implementa las distintas prestaciones • Mantenimiento de base de datos se utiliza para agregar, eliminar,
del modelo relacional. Un sistema de gestión de base de datos de objeto actualizar y corregir los datos en una base de datos.
(ODBMS) implementa las distintas prestaciones del modelo de objetos. • Desarrollo de aplicaciones se utiliza para desarrollar prototipos de
pantallas de entrada de datos, consultas, formularios, informes,
código de programa.
Fundamentos de computación 13-19
12.5. Gestión de datos proporcionada por las redes de ordenadores. Estos paradigmas
incluyen computación distribuida, grid computing, computación
Una base de datos debe gestionar los datos almacenados en ella. Esta Internet, y la nube.
gestión incluye tanto la organización y almacenamiento.
13.1. Tipos de Red
La organización de los datos reales en una base de datos depende del
modelo de base de datos. En un modelo relacional, los datos se organizan Las redes de ordenadores no todos son iguales y pueden clasificarse
en forma de tablas con diferentes tablas que representan entidades o de acuerdo a una amplia variedad de características, incluyendo el
relaciones diferentes entre un conjunto de entidades. El almacenamiento método de la red de conexiones ción, tecnologías alámbricas, las
de datos se refiere a la conservación de estas tablas de bases de datos en tecnologías inalámbricas, la escala, la topología de red, funciones y
discos. Las formas más comunes para lograr esto es utilizar los archivos. velocidad. Sin embargo, la clasificación que es familiar a la mayoría
Secuencial, indexada, y los archivos de hash se utiliza en toda esta se basa en la escala de las redes.
finalidad con diferentes estructuras de archivos que proporcionan un
13. Red de Comunicación Conceptos básicos [ 8 *, c12] • Internet es la red mundial que conecta los ordenadores
ubicados en muchos (tal vez todos) los países.
Una serie de paradigmas de computación han surgido para Todas las redes se componen de los mismos componentes básicos hard-
beneficiarse de las funciones y capacidades ware, incluyendo las computadoras, la red
13-20 Guía SWEBOK® V3.0
tarjetas de interfaz (NIC), puentes, concentradores, conmutadores y protocolos de capa de enlace incluyen frame relay, modo de
routers. Todos estos componentes se denominan nodos transferencia asíncrona (ATM), y el Protocolo de punto a punto
en la jerga de las redes. Cada componente per- forma una (PPP). Los protocolos de capa de aplicación incluyen canal de
función distintiva que es esencial para el embalaje, la conexión, fibra, Small Computer System Interface (SCSI) y Bluetooth. Para
la transmisión, catión amplifi-, controlando, desembalaje, y la cada capa o incluso cada protocolo individual, puede haber
interpretación de los datos. Por ejemplo, un repetidor amplifica normas establecidas por las organizaciones nacionales o
las señales, un interruptor realiza muchos-a-muchos conexiones, internacionales para orientar el diseño y desa- rrollo de los
un concentrador realiza uno-a-muchas conexiones, una tarjeta protocolos correspondientes.
de interfaz está conectado al ordenador y realiza el embalaje de
datos y de transmisión, un puente conecta uno red con otro, y un
router es un ordenador en sí y realiza el análisis de datos y Aplicación Capa de
control de flujo para regular los datos de la red. Las funciones
presentación Capa de
realizadas por diversos componentes de la red corresponden a
enlace de capa de sesión
las funciones especificadas por uno o más niveles del modelo de
redes de siete capas interconexión de sistemas abiertos (OSI), Capa de transporte Capa
de la capa física
13.3. Protocolos de red y Estándares Figura 13.5. El modelo OSI de siete capas de redes
13.6. Red Privada Virtual (VPN) Fundamentalmente, la informática distribuida es otra forma de
computación en paralelo, aunque en una escala más grande. En
Una red privada virtual es una conexión virtual planificada de computación distribuida, las unidades funcio- nales no son ALU, FPU, o
antemano entre los nodos de una red LAN / WAN o Internet. núcleos separados, pero los ordenadores individuales. Por esta razón,
Permite al administrador de red para separar el tráfico de red en algunas personas consideran que el cálculo distribuido por ser la misma
grupos de usuarios que tienen una afinidad común por los demás, que la computación paralela. Debido a que tanto distri- buido la
como todos los usuarios de la misma organización o grupo de computación y en paralelo implican algún tipo de concurrencia, que son a
trabajo. Este tipo de circuito puede mejorar el rendimiento y la la vez también llamado alquiler de computación concurrente.
seguridad entre los nodos y permite el mantenimiento de los
circuitos fácil- IER para solucionar problemas.
asignación de estas tareas a varios equipos implicados en el en la computación distribuida / paralelo, una cierta coordinación entre las
Las diferentes formas de coordinación dan lugar a diferencias ent 15. Factores Humanos de usuario básica [ 3 *, c8] [9 *, c5]
entrada?
el consenso entre todos los equipos son los más ficult rencias.
Muchos paradigmas de computación se han inventado para resolver • ¿En qué formato se desea ver los usuarios de salida?
estos problemas y son los principales puntos de discusión en la
computación distribuida / paralela. • ¿Cuál es la manera más agradable para mostrar la salida?
Fundamentos de computación 13-23
Si la parte que interactúa con el software no es humana sino otro 15.3. La robustez del software
software o equipo o sistema de con- trol, entonces tenemos que
considerar el tipo de entrada / salida y el formato que el software robustez del software se refiere a la capacidad de soft- ware para
debe producir para garantizar el intercambio de datos entre tolerar las entradas erróneas. Software se dice que es robusta si
sistemas adecuada. sigue funcionando incluso cuando se dan las entradas erróneas. Por
lo tanto, es inaceptable para el software se bloquee simplemente
Hay muchas reglas de oro para los desarrolladores a seguir para cuando encuen- tering un problema de entrada ya que esto puede
producir el bien de entrada / salida para un soft- ware. Estas reglas provocar consecuencias inesperadas, como la pérdida de datos
generales incluyen diálogo sencillo y natural, hablando el lenguaje de valiosos. El software que exhibe tal comportamiento es sidered con-
los usuarios, minimizando la carga de usuarios de la memoria, la carecer de robustez. Nielsen da una descripción más simple de la
coherencia, la mínima sorpresa, la conformidad con las normas (si lo robustez del software: “El software debe tener una baja tasa de
acordado o no: por ejemplo, los automóviles tienen una interfaz Dard error, por lo que los usuarios hacen algunos errores durante el uso
Están- de acelerador, el freno , dirección). del sistema y por lo que si lo hacen cometer errores que pueden
recuperarse fácilmente de ellos. Además, los errores catastróficos
no deben ocurrir”[9 *]. Hay muchas maneras de evaluar la robustez
15.2. Error de mensajes del software y al igual que muchas maneras de hacer el software
más robusto. Por ejemplo, para mejorar la robustez, uno debe
Es comprensible que la mayoría de software con- tiene defectos y siempre comprobar la validez de las entradas y valores de retorno
no de vez en cuando. Sin embargo, los usuarios deben ser antes de progreso- ing aún más; uno siempre debe lanzar una
notificados si hay algo que impide la correcta ejecución del excepción cuando ocurre algo inesperado, y uno nunca debe salir de
programa. Nada es más frustrante que una terminación un programa sin antes dar a los usuarios / aplicaciones la
inesperada o desviación del comportamiento del software sin oportunidad de corregir la condición.
ningún aviso o explicación. Para ser fácil de usar, el software
debe informar de todos los con- diciones de error a los usuarios o
aplicaciones de nivel superior, de manera que hasta cierto punto
se puede tomar para rectificar la situación o para salir con gracia.
Existen varias pautas que definen lo que constituye un buen
mensaje de error: mensajes de error deben ser claros, hasta el
punto, y oportuna. 16. Developer básico Factores Humanos
[3 *, c31-32]
En primer lugar, los mensajes de error deben explicar claramente lo factores humanos desarrolladores se refieren a las consideraciones de
que está sucediendo para que los usuarios sepan lo que está pasando factores humanos tomadas en el desarrollo de software. El software se
en el software. En segundo lugar, los sabios de error men- deben desarrolla por los seres humanos, leídos por los seres humanos, y
determinar la causa del error, si es posible, por lo que las acciones mantenido por los seres humanos. Si Any-lo que está mal, los seres
adecuadas se pueden tomar. En tercer lugar, los mensajes de error humanos son responsables de Cor- recting esos males. Por lo tanto, es
deben mostrarse justo cuando se produce la condición de error. De esencial para escribir software de una manera que sea fácilmente
acuerdo con Jakob Nielsen, “Los buenos mensajes de error deben comprensible por el ser humano o, por lo menos, por otros
expresarse en un lenguaje sencillo (sin códigos), indican precisamente desarrolladores de software. Un programa que es fácil de leer y
el problema y sugerir una solución constructiva” [9 *]. En cuarto lugar, entender la legibilidad exposiciones. Los medios para garantizar que el
los mensajes de error no deben sobrecargar los usuarios con informa- software de cumplir este objetivo son numerosas y van desde la
ción demasiado y hacer que se ignoran los mensajes de todos juntos. arquitectura adecuada a nivel macro al estilo de codificación particular y
el uso variable en el nivel micro. Pero los dos factores son importantes estructura
( o diseños de programas) y (comentarios documentación).
16.1. Estructura • Dentro de una función, los comentarios se deben dar por
cada sección lógica de codificación para explicar el
programas bien estructurados son más fáciles de entender y modificar. Si significado y propósito (intención) de la sección.
un programa no está bien estructurado, entonces ninguna cantidad de
explicación o comentarios es suficiente para que sea comprensible. Las • Los comentarios deben estipular lo que hace la libertad (o
formas de organizar un programa son numerosas y van desde el uso no) los programadores de mantenimiento tienen con
adecuado de los espacios en blanco, la sangría, y los paréntesis de respecto a realizar cambios en el código.
buenos arreglos de agrupaciones, las líneas en blanco, y los apoyos. Sea
cual sea el estilo que se elija, debe ser consistente a través de todo el • Los comentarios son rara vez necesarios para las declaraciones
programa. indi- viduales. Si necesita una declaración comen- tarios, se debe
reconsiderar el comunicado.
16.2. comentarios
17. asegurar el desarrollo y mantenimiento de
Para la mayoría de la gente, la programación es la codificación. Estas software
personas no se dan cuenta que la programación también incluye [11 *, c29]
comentarios que escriben y que los comentarios son una parte
integral de la programación. Es cierto que los comentarios no son Debido al aumento de las actividades maliciosas dirigidas a los
utilizados por el equipo y, desde luego, no constituyen las últimas sistemas informáticos, la seguridad se ha convertido en un problema
instrucciones para el ordenador, pero mejoran la legibilidad de los sig- sig- en el desarrollo de software. Además de la exactitud y
programas, explicando el significado y la lógica de los estados o fiabilidad de costumbre, los desarrolladores de software también
secciones de código. Debe recordarse que los programas no sólo son deben prestar atención a la seguridad del software que desarrollan.
para los ordenadores, sino que también se leen, escriben, y desarrollo de software seguro se basa en el software de seguridad,
modificados por los seres humanos. Los tipos de comentarios incluyen siguiendo una serie de reglas y prácticas establecidas reparados y / o
la repetición del código, explicación del código, marcador del código, daciones en desarrollo de software. mantenimiento de software
resumen del código, descripción de la intención del código, y la seguro complementa el desarrollo de software seguro asegurando se
información que no pueda ser posi- blemente expresada por el propio introducen los problemas de seguridad durante el mantenimiento del
código. Algunos comen- tarios son buenos, algunos no lo son. Los software.
buenos son los que explican la intención del código y justificar por qué
este código es la forma en que lo hace. Los malos son repetición del
código y la información que indica Evant irrel-. Los mejores Una vista en relación con la seguridad del software generalmente
comentarios son de código auto-documentación. Si el código está aceptada es que es mucho mejor para el diseño de seguridad en el
escrito de manera clara y precisa que su significado es proclamado software de parchear que después se desarrolló el software. Diseñar la
uno mismo, entonces no se necesita ningún comentario. Pero esto es seguridad en el software, hay que tener en cuenta todas las etapas del
más fácil decirlo que hacerlo. La mayoría de los programas no son ciclo de vida de desarrollo de software. En particular, el desarrollo de
fáciles de entender y son a menudo difíciles de leer y entender si no software seguro implica software de seguridad de los requisitos, software la
se dan los comentarios. Aquí hay algunas pautas generales para la seguridad del diseño, la seguridad de construcción de software, y las
escritura de comentarios: pruebas de software seguri- dad. Además, la seguridad también debe
tenerse en cuenta cuando se realiza el mantenimiento de software como
fallas de seguridad y lagunas pueden ser ya menudo se introducen
durante el mantenimiento.
• Los comentarios deben ser coherentes en todo el 17.1. Requisitos de software de seguridad
programa.
• Cada función debe estar asociado con los comentarios Requisitos de software ofertas de seguridad con la clarificación y la
que explican el propósito de la función y su papel en el especificación de la política y objetivos de seguridad en los
programa general. requisitos de software, los cuales
Fundamentos de computación 13-25
sienta las bases para consideraciones de seguridad en el desarrollo • Estructurar el proceso para que todas las secciones que
de software. Los factores a considerar en esta fase incluyen los requieren privilegios adicionales son módulos. Los módulos
requisitos de software y amenazas / riesgos. El primero se refiere a deben ser lo más pequeña posible y se deben realizar sólo
las funciones específicas que se requieren para el bien de seguri- aquellas tareas que requieren esos privilegios.
dad; Este último se refiere a las posibles formas en que se ve
amenazada la seguridad del software. • Asegúrese de que los supuestos en el programa son
validados. Si esto no es posible, docu- mento ellos para los
instaladores y mantenedores para que sepan que los
17.2. Diseño de Software de Seguridad supuestos atacantes tratarán de invalidar.
Ofertas de software de seguridad de diseño con el diseño de módulos • Asegúrese de que el programa no comparte objetos en la
de software que encajan entre sí para cumplir con los objetivos de memoria con cualquier otro programa.
seguridad especificadas en los requisitos de seguridad. Este paso • El estado de error de cada función debe ser comprobado.
aclara los detalles de las consideraciones de seguridad y desarrolla No trate de recuperar a menos que ni la causa del error ni
los pasos específicos para su implementación. Los factores sus efectos afectan a las consideraciones de seguridad. El
considerados pueden incluir marcos y modos de acceso que se programa debe restaurar el estado del software al estado
instalan las estrategias de seguridad de supervisión / aplicación que tenía antes de que comenzara el proceso, y luego
general, así como los mecanismos de aplicación de políticas terminar.
individuales.
La codificación de la seguridad en el software se puede lograr Aunque no hay maneras a prueba de balas para el desarrollo de software
siguiendo las normas recomendadas. Unos dichas reglas a continuación: seguro, existen algunas pautas generales que se pueden utilizar para
ayudar a tales esfuerzos. Estas
13-26 Guía SWEBOK® V3.0
directrices abarcan todas las fases del ciclo de vida de desarrollo de 1. Entrada de Validar.
software. Algunas líneas directrices de buena reputación son publicados 2. Haga caso de las advertencias del compilador.
por el Equipo de Respuesta a Emergencias Informáticas (CERT) y por 3. El arquitecto y el diseño de las políticas de seguridad.
debajo son las 10 mejores prácticas de seguridad de software (los detalles 4. Debe ser sencillo.
se pueden encontrar en [12]: 5. denegación predeterminada.
Nielsen 1993
Voland 2003
Bishop 2002
[11 *]
[8 *]
[9 *]
[5 *]
[3 *]
[2 *]
[4 *]
[6 *]
1. Técnicas de Resolución S3.2,
de Problemas S4.2
1.1. Definición de la
S3.2
resolución de problemas
1.2. Formular el
S3.2
problema real
1.3. Analizar el
S3.2
problema
1.5. La resolución de
c5
problemas Utilización de programas
s5.2-
2. Abstracción
5.4
3. Fundamentos de
C6-19
programación
3.1. El proceso de
programación C6-C19
3.3. La programación
c8
defensiva
4.1. Lenguaje de
S6.1
Programación general
4.2. Sintaxis y
semántica del
S6.2
lenguaje de
programación
13-28 Guía SWEBOK® V3.0
Nielsen 1993
Voland 2003
Bishop 2002
[11 *]
[8 *]
[9 *]
[5 *]
[3 *]
[2 *]
[4 *]
[6 *]
4.3. Bajo nivel de
s6.5-
lenguaje de
6.7
programación
4.5. frente a
declarativa lenguaje s6.5-
de programación 6.7
imperativo
5. Herramientas de
c23
depuración y Técnicas
5.3. Herramientas de
s23.5
depuración
s1.1-
1.3,
s3.3-
3.6,
s4.1-
4,8,
7. Algoritmos y s5.1-
Complejidad 5,7,
s6.1-
6.3,
s7.1-
7,6,
s11.1,
S12.1
Fundamentos de computación 13-29
Nielsen 1993
Voland 2003
Bishop 2002
[11 *]
[8 *]
[9 *]
[5 *]
[3 *]
[2 *]
[4 *]
[6 *]
7.1. Descripción general
s1.1-1.2
de Algoritmos
7.2. Atributos de
S1.3
Algoritmos
7.3. Análisis
S1.3
algorítmico
s3.3-
3.6,
s4.1-
4,8,
s5.1-
7.4. Estrategias de 5,7,
diseño algorítmico s6.1-
6.3,
s7.1-
7,6,
s11.1,
S12.1
s3.3-
3.6,
s4.1-
4,8,
s5.1-
7.5. Estrategias de 5,7,
análisis algorítmico s6.1-
6.3,
s7.1-
7,6,
s11.1,
S12.1
8. Concepto básico de un
c10
sistema de
8.2. Ingeniería de
s10.2
sistemas
sistema informático
13-30 Guía SWEBOK® V3.0
Nielsen 1993
Voland 2003
Bishop 2002
[11 *]
[8 *]
[9 *]
[5 *]
[3 *]
[2 *]
[4 *]
[6 *]
9. Organización del
C1-4
ordenador
9.1. Organización
general del s1.1-1.2
ordenador
10.1. compilador
S8.4
general
10.2. Interpretación y
S8.4
compilación
10.3. los
s6.4 S8.4
Proceso de compilación
11. Fundamentos de
c3
Sistemas Operativos
Nielsen 1993
Voland 2003
Bishop 2002
[11 *]
[8 *]
[9 *]
[5 *]
[3 *]
[2 *]
[4 *]
[6 *]
12. Conceptos básicos
de bases de datos y C9
gestión de datos
12.1. Entidad y de
S9.1
esquema
(DBMS)
12.3. Lenguaje de
S9.2
consulta de base de datos
12.4. Tareas de
S9.2
paquetes de DBMS
12.5. Gestión
s9.5
de datos
13.2. Componentes de la
S12.6
Red Básica
13.3. Protocolos de
s12.4-
red y Estándares
12.5
13.4. La Internet
13.5. Internet de las
s12.8
Cosas
14.1. Computación
paralela y s9.4.1-
distribuida general 9.4.3
13-32 Guía SWEBOK® V3.0
Nielsen 1993
Voland 2003
Bishop 2002
[11 *]
[8 *]
[9 *]
[5 *]
[3 *]
[2 *]
[4 *]
[6 *]
14.2. Las diferencias
entre Computación s9.4.4-
Paralela y Distribuida 9.4.5
14.3. Modelos de
s9.4.4-
Computación Paralela y
9.4.5
Distribuida
14.4. Problemas
principales en Distributed
Computing
S5.2,
15.2. Error de mensajes
s5.8
17.2. Codificación
de Seguridad en s29.4
Software
17.3. Seguridad
s29.2
requisito
17.4. Seguridad
s29.3
diseño
17.5. Seguridad
s29.5
implementación
Fundamentos de computación 13-33
Referencias
[1] Grupo de Trabajo Conjunto sobre Computación planes de estudio, [7] ISO / IEC / IEEE 24765: 2010 Sistemas y
IEEE Computer Society y la Association for Computing Ingeniería de Software-Vocabulario, ISO / IEC / IEEE
Machinery, Ingeniería de Software 2004: Directrices 2010.
Curriculares para Pregrado Programas de Grado en
Ingeniería de Software, 2004; http: // sites. [8 *] L. Null y J. Lobur, Lo Esencial de la
computer.org/ccse/SE2004Volume.pdf . Organización ordenador y Arquitectura,
2ª ed., Jones and Bartlett Publishers,
2006.
[2 *] G. Voland, Ingeniería de Diseño, 2ª ed.,
Prentice Hall, 2003. [9 *] J. Nielsen, Ingeniería de la Usabilidad, Morgan
Kaufmann, 1993.
[3 *] S. McConnell, Código completo, 2ª ed.,
Microsoft Press, 2004. [10] ISO 9241 a 420: 2011 ergonomía de Human-
La interacción del sistema, la norma ISO 2011.
Fundamentos matemáticos
verdades sobre cualquier concepto. Este concepto puede ser acerca entre aparatos ortopédicos, por ejemplo, S = {1, 2, 3}. El símbolo ∈ se usa
de los números, así como sobre los símbolos, imágenes, sonidos, para expresar que un ele- mento pertenece a un conjunto, o, en otras
vídeo-casi cualquier cosa. En resumen, no sólo números y palabras-es un miembro del conjunto. Su negación está representado por
precisa en un dominio de aplicación diversa. los Guía SWEBOK 'S En una representación más compacta del conjunto usando la notación
Matemática Foundation ciones KA abarca las técnicas básicas para establecer constructor, {x | P (x)} es el conjunto de todos los x tales que P
identificar un conjunto de reglas para el razonamiento en el contexto (x) para cualquier proposición P (x) sobre cualquier universo de discurso.
del sistema en estudio. Cualquier cosa que se puede deducir siguien- Ejemplos de algunos conjuntos impor- tantes incluyen los siguientes:
conjunto que no tiene un número finito de ele- mentos en que es una conjunto
14-1
14-2 Guía SWEBOK® V3.0
Cardinalidad. La cardinalidad de un conjunto finito S es el número de Conjunto vacio. Un conjunto sin elementos se llama una
elementos en S. Esto se representa | S |, por ejemplo, si S = {1, 2, 3}, conjunto vacio. Un conjunto vacío, denotado por ∅, También se conoce
entonces | S | = 3. como un conjunto nula o ineficaz.
Conjunto universal. En S general = {x ∈ T | p (x)}, donde T es el Set de poder. El conjunto de todos los subconjuntos de un conjunto X se
universo de discurso en el que debe interpretarse el predicado P (x). El llama set de poder de X. Se representa como
Un diagrama de Venn para intersección de conjuntos se muestra en la La parte sombreada del diagrama de Venn en Fig- ure 14.5
figura 14.3. La parte común de los dos conjuntos representa la intersección representa el complemento conjunto de X.
de conjuntos. Establecer diferencia o complemento relativa. El conjunto de
elementos que pertenecen al conjunto X, pero no para establecer Y
construye la diferencia de conjuntos de Y de X. Esto es repre- sentadas
por X - Y. En otras palabras, X - Y = {p | (pag ∈ X) ∧ ( pag ∉ Y)}. Como,
por ejemplo, {1, 2, 3} - {3, 4, 6} = {1, 2}. Puede probarse que X - Y = X ∩ Y'.
Conjunto diferencia X - Y se ilustra por la región sombreada en la figura
14.6 el uso de un diagrama de Venn.
3, 4, 6}.
X'. En otras palabras, X'= {p | (pag ∈ T) ∧ ( pag ∉ X)}. En otras palabras, X × Y = {(p, q) | (pag ∈ X) ∧ ( q
∈ Y)}.
Como por ejemplo, {a, b} x {1, 2} = {(a, 1), (a, 2), (b, 1), (b,
2)}
mencionan a continuación.
1. Leyes asociativas: X ∪ ( Y ∪ Z) =
(X ∪ Y) ∪ ZX ∩ ( Y ∩ Z) = (X ∩ Y) ∩ Z
Figura 14.5. Diagrama de Venn para el complemento Conjunto de X
14-4 Guía SWEBOK® V3.0
2. La ley conmutativa: X ∪ Y esto se convierte en una relación de buen comportamiento y por lo tanto
=Y∪x x∩Y=Y∩x una función. Esto significa que, mientras que todas las funciones son las
3. La ley de distribución: X ∪ ( Y ∩ Z) = (X ∪ Y) ∩ dada una x, se obtiene uno y exactamente uno y para cada par ordenado ( x,
( x ∪ Z) X ∩ ( Y ∪ Z) = (X ∩ Y) ∪ ( x ∩ Z) y).
Por ejemplo, consideremos las dos relaciones siguientes.
4. La ley de identidad: X ∪ ∅ = XX ∩ U
=X A: {(3, -9), (5, 8), (7, -6), (3, 9), (6, 3)}. B: {(5, 8),
(7, 8), (3, 8), (6, 8)}.
5. La ley del complemento: X ∪ X'=
UX ∩ = X' ∅ Son estas funciones, así? En el caso de la relación A, el
dominio es todos los valores de x, es decir, {3, 5, 6, 7}, y el rango
6. Leyes Idempotent: X ∪ X = XX ∩ es todos los valores de y, es decir, {-9, -6, 3, 8, 9}. Relación A no
X=X es una función, ya que hay dos valores de rango diferentes, -9 y
9, para el mismo valor de x de 3.
7. Leyes Bound: X ∪ U = UX ∩ ∅ =
∅
En el caso de la relación B, el dominio es mismo que el de A, es
8. Leyes absorción: X ∪ decir, {3, 5, 6, 7}. Sin embargo, el intervalo es de un solo elemento {8}.
( x ∩ Y) = X x ∩ ( x ∪ Y) = X Esto califica como un ejemplo de una función incluso si todos los
valores de x se asignan a la misma-valor y. Aquí, cada valor de x es
9. De Leyes de Morgan: (X ∪ distinto y, por tanto, la función se comporta bien. Relación B puede ser
Y) '= X' ∩ Y' (X ∩ Y) '= X' ∪ Y' representada por la ecuación y = 8. La característica de una función
puede ser verificada utilizando una prueba de la línea vertical, que
1.3. Relación y función aparece a continuación:
Una relación es una asociación entre dos conjuntos de información. Por Dada la gráfica de una relación, si se puede dibujar una línea
ejemplo, consideremos un conjunto de residentes de una ciudad y sus vertical que atraviesa el gráfico en más de un lugar, entonces la
números de teléfono. El emparejamiento de los nombres con números de relación no es una función.
teléfono correspondientes es una relación. Este emparejamiento es ordenado
para toda la relación. En el ejemplo ser conveniente examinar para cada
par, ya sea el nombre viene primero, seguido del número de teléfono o a
la inversa. El conjunto de la que se extrae se llama el primer elemento conjunto
de dominio y el otro conjunto se llama el margen establecido. El dominio
es lo que empezar y es el rango de lo que se termina con. Una función
es una de buenos ademanes relación. Un R con relación (X, Y) se
comporta bien si la función de los mapas de cada elemento del conjunto
X de dominio a un solo elemento del conjunto rango Y. Consideremos
conjunto de dominio X como un conjunto de personas y dejar un margen
establecido Y almacenar sus números de teléfono. Suponiendo que una Figura 14.7. Prueba de la recta vertical para la Función
leyes de dominación: p ∨ T
T≡ pag ∧ F ≡ F
14-6 Guía SWEBOK® V3.0
Una variable x que se introduce en una expresión lógica por un Declaraciones utilizados en una prueba incluyen axiomas y
cuantificador está unido al cuantificador de encerramiento más cercano. postulados que son esencialmente los supuestos subyacentes
sobre estructuras matemáticas, las hipótesis del teorema de ser
Una variable se dice que es una variable libre si no está unido a un probadas, y pre viamente teoremas probadas.
cuantificador.
Del mismo modo, en un lenguaje de programación de bloques Un teorema es una declaración que puede ser mostrado para ser
cuantificador más cercano dentro de cuyo ámbito aparece. Un lema es un teorema simple que se usa en la prueba de otros
teoremas.
Por ejemplo, en ∃ x (Cat (x) ∧ ∀ x (Negro (x))), x en Negro Un corolario es una proposición que puede ser estable- cido
(x) es universalmente cuantificado. La expre- sión implica directamente de un teorema que ha sido demostrado.
que existen gatos y todo es negro.
Una conjetura es una declaración, cuyo valor de verdad es
muchas afirmaciones que se utilizan en ENCE y matemáticas Cuando se encuentra una prueba de una conjetura, la conjetura se
equipo cien-. También falla para comparar la equivalencia y otros convierte en un teorema. Muchas veces las conjeturas se muestran para
tipos de relación entre las proposiciones. ser falsa y, por lo tanto, no son teoremas.
Por ejemplo, la afirmación a es mayor que 1 No es una 3.1. Métodos de demostración de teoremas
proposición porque no se puede inferir si es verdadero o falso sin
saber el valor de a. Por lo tanto, la lógica de proposiciones no puede La prueba directa. prueba directa es una técnica para esta- blecer que la
hacer frente a este tipo de frases. Sin embargo, estas afirmaciones implicación p → q es cierto, mostrando que q debe ser verdadera cuando p
parecen bastante a menudo en las matemáticas y queremos inferir es verdadera. Por ejemplo, para demostrar que si n es impar, entonces n 2 -1
en esas afirmaciones. Además, el patrón implicado en los es par, supongamos que n es impar, es decir, n = 2k + 1 para algún entero
Una prueba de ello es un argumento que establece rigurosamente la Demostración por inducción. Demostración por inducción se realiza en
verdad de un enunciado. Las pruebas pueden estar a su vez dos fases. En primer lugar, la proposición se estable- cido para ser verdad
representadas formalmente como estructuras discretas. para una base de caso-típicamente para la
Fundamentos matemáticos 14-7
entero positivo 1. En la segunda fase, se ció esta- que si la proposición norte 2 maneras, y cuando estas actividades no se pueden hacer al mismo
es válida para un número entero positivo arbitrario k, entonces también tiempo, entonces hay n 1+ norte 2 maneras de hacer bien la tarea.
lugar, ∀ k ∈ [ 2 ... n] si P (k) • En general, si A1, A2, .... , An son conjuntos disjuntos,
entonces | A1 ∪ A2 ∪ ... ∪ un | = | A1 | + | A2 |
→ P (k + 1). + ... + | An |.
Cabe señalar aquí que, para una demostración por inducción
ematical Matemáticas-, no se supone que P (k) es verdadera para Por ejemplo, si hay 200 atletas que realizan pruebas de
todos los números enteros positivos k. Probar una rem teo o velocidad y 30 atletas que participan en el evento de salto de
proposición sólo nos requiere para establecer que si se supone P (k) es longitud, entonces cuántas formas hay que elegir un atleta que
cierto para cualquier arbitraria entero positivo k, entonces P (k + 1) es o bien un velocista o un largo puente?
también es cierto. La corrección de la inducción matemática como una
técnica de prueba válida está más allá de la discusión del texto Cur- Usando la regla de la suma, la respuesta sería 200
alquiler. Probemos el siguiente proposición mediante inducción. + 30 = 230.
Proposición: La suma de la primera positivo n enteros impares P (n) es La regla del producto establece que si una tarea t 1 se puede hacer en n 1 maneras
procedimiento.
∴ 1 + 3 + 5 + ... + (2k - 1) = k 2
Por ejemplo, si hay 200 atletas que realizan pruebas de velocidad y
Ahora, es necesario demostrar que P (k) → P (k + 1). 30 atletas que participan en el evento de salto de longitud, entonces
¿Cuántas maneras hay para recoger dos atletas por lo que uno es un
P (k + 1) = 1 + 3 + 5 + ... + (2k - 1) + (2k + 1) = P (k) + velocista y el otro es un saltador de longitud? Usando la regla del
(2k + 1) = k 2 + ( 2k + 1) [usando IH] = k 2 + 2k + 1 = (k + 1) 2 producto, la respuesta sería de 200 x 30 = 6000. El principio de
inclusión-exclusión establece que si una tarea t 1 se puede hacer en n 1 maneras
y una segunda tarea t 2 se puede hacer en n 2 maneras al mismo tiempo
con t 1, a continuación, para encontrar el número total de maneras las
dos tareas se puede hacer, restar el número de maneras de hacer las
Por lo tanto, se muestra que si la proposición es cierto para n = k, dos tareas de n 1 + norte 2.
entonces también es cierto para n = k + 1. La etapa de base junto con el
• Si A y B no son disjuntos, | A ∪ B | = | A | + | B | - | A ∩ B
|.
4. Fundamentos de Conteo
recursividad es el término general para la práctica de la definición 5. Los gráficos y los árboles
5.2. árboles
• Un camino es una circuito si u = v.
• Un camino poligonales los vértices a lo largo de ella. Un árbol T (N, E) es una estructura de datos jerárquica de n = | N |
• Un camino es sencillo si no contiene ningún borde más de una vez. nodos con un nodo raíz especialmente designado R mientras que
los restantes n - 1 forman nodos subárboles en virtud de la R. nodo
raíz el número de bordes | E | en un árbol siempre sería igual a | N |
Un ciclo en n vértices C norte para cualquier n ≥ 3 es un gráfico que - 1. El sub-árbol en el nodo X es el subgrafo del árbol que consiste
PLE sim- donde V = {v 1, v 2, ..., v norte} y E = {{v 1, en el nodo X y sus descendientes y todos aristas incidentes a los
v 2}, { v 2, v 3}, ..., v { n-1, v n}, { v norte, v 1}}. descendientes. Como una alternativa a esta definición recursiva, un
Por ejemplo, la figura 14.13 ilustra dos ciclos de árbol se puede definir como un grafo no dirigido conectado sin
longitud 3 y 4. circuitos simples.
Fundamentos matemáticos 14-11
Figura 14.15. Ejemplo de un árbol de Por ejemplo, en la figura 14.15, los nodos E a través de K son todos
los nodos de la hoja con el grado 0. Los antepasados o predecesores
Sin embargo, hay que recordar que un árbol es estrictamente de de un nodo no raíz X son todos los nodos en el camino desde la raíz al
naturaleza jerárquica, en comparación con un gráfico, que es nodo X.
plana. En caso de un árbol, un par ordenado se construye entre
dos nodos como padre e hijo. Cada nodo hijo en un árbol está Por ejemplo, en la figura 14.15, los nodos A y D forman el
asociado con un único nodo padre, mientras que esta restric- ción conjunto de antepasados para J. Los sucesores o descendientes
deja de tener sentido para un gráfico donde no existe asociación de un nodo X son todos los nodos que tienen X como su
entre padres e hijos. antepasado. Para un árbol con n nodos, todos los restantes n - 1
nodos son sucesores del nodo raíz. Por ejemplo, en la figura 14.15,
Un grafo no dirigido es un árbol si y sólo si existe una trayectoria el nodo B tiene sucesores en E, F y G.
simple única entre cualesquiera dos de sus vértices.
La figura 14.15 presenta un árbol T (N, E), donde el conjunto Si el nodo X es un antepasado del nodo Y, a continuación, el nodo Y es
de nodos N = {A, B, C, D, E, F, G, H, I, J, K}. El conjunto de un sucesor de X.
aristas E es {(A, B), (A, C), (A, D), (B, E), (B, F), (B, G), (C, H), Dos o más nodos que comparten el mismo nodo padre se
(C , I), (D, J), (D, K)}. El padre de un nodo no raíz v es el único denominan hermano linfáticos. Por ejemplo, en la figura 14.15, los
nodo de U con un borde dirigido de u a v. Cada nodo del árbol nodos E y G son hermanos. Sin embargo, los nodos E y J, aunque
tiene un nodo padre única excepción de la raíz del árbol. desde el mismo nivel, no son hermanos nodos.
Dos nodos hermanos son del mismo nivel, pero dos nodos en
Por ejemplo, en la figura 14.15, nodo raíz A es el nodo padre el mismo nivel no son necesariamente hermanos.
de los nodos B, C y D. De manera similar, B es la matriz de E, F,
G, y así sucesivamente. El nodo raíz A no tiene ningún padre. Un árbol se llama árbol ordenado si la posición relativa de
las apariciones de nodos hijos es significativo.
Un nodo que tiene los niños se llama un nodo interno.
Por ejemplo, un árbol es un árbol ordenado si, por regla general, el
Por ejemplo, en la figura 14.15, el nodo A o el nodo B son nombre de un hermano mayor siempre aparece antes (es decir, a la
ejemplos de nodos internos. izquierda de) el hermano más joven.
El grado de un nodo en un árbol es el mismo que el número de
sus hijos. En un árbol desordenada, la posición relativa de las ocurrencias
Por ejemplo, en la figura 14.15, nodo raíz A y su hijo B son entre los hermanos no guarda ninguna importancia y puede ser
ambos de grado 3. Los nodos C y D tienen grado 2. alterado de manera arbitraria. Un árbol binario está formado con
cero o más nodos en los que hay una raíz nodo R y todos los nodos
La distancia de un nodo desde el nodo raíz en términos de número de restantes forman un par de subárboles ordenados bajo el nodo raíz.
saltos que se llama su nivel. Los nodos en un árbol se encuentran en
diferentes niveles. El nodo raíz es
14-12 Guía SWEBOK® V3.0
En un árbol binario, ningún nodo interno puede tener más de dos hijos.
Sin embargo, hay que considerar que, además de este criterio en
términos del grado de los nodos internos, un árbol binario es siempre
ordenado. Si se intercambian las posiciones de los subárboles izquierdo y
derecho para cualquier nodo en el árbol, a continuación, un nuevo árbol
se deriva.
Figura 14.16. Ejemplos de árboles binarios Curiosamente, a raíz de las definiciones anteriores, el árbol de la
figura 14.18 (b) es un árbol binario completo, pero no completo como
Por ejemplo, en la figura 14.16, los dos árboles binarios son nodo B ha sólo un niño en D. Por el contrario, el árbol de la figura
diferentes como las posiciones de las apariciones de los niños de A 14.17 es un completo
son diferentes en los dos árboles. - pero no completar binario árbol, como los hijos de B se producen
en el árbol, mientras que los hijos de C no aparecen en el último
nivel.
Un árbol binario de la altura H está equilibrado si todos sus nodos hoja
14,17 y 14,18 son árboles binarios equilibrados. Hay a lo sumo 2 MARIDO hojas
en un árbol binario de la altura H. En otras palabras, si un árbol binario
con hojas L es completa y equilibrada, a continuación, su altura es H =
• Iniciar sesión 2 L •.
Por ejemplo, esta afirmación es cierta para los dos árboles en las
figuras 14,17 y 14,18 (a) ya que ambos árboles son completa y
Figura 14.17. Ejemplo de un árbol binario completo equilibrada. Sin embargo, la expre- sión anterior no coincide con el
árbol de la figura
De acuerdo con [1 *], un árbol binario se llama un árbol binario 14.18 (b), ya que no es un árbol binario completo. Un árbol de búsqueda
completo si cada nodo interno tiene exactamente dos hijos. binaria (BST) es un tipo especial de árbol binario en el que cada nodo
Por ejemplo, el árbol binario en la figura 14.17 es un árbol árbol es menos de todos los valores clave en su subárbol derecho y
binario completo, ya que ambos de los dos nodos internos A y B mayor que todos los valores clave en su subárbol izquierdo. Un algoritmo
Un árbol binario completo después de la definición anterior también se los nodos de un árbol binario. recorrido de árboles pueden definirse de
conoce como una árbol estrictamente binario. forma recursiva. Si T es un árbol binario con raíz de R y los nodos de ING
Por ejemplo, ambos árboles binarios en la figura 14.18 son restante formar un par ordenado de subárbol izquierdo T no nulo L y no nulo
árboles binarios completos. El árbol de la figura subárbol derecho de T R inferior a R, entonces el orden previo función
14.18 (a) es un árbol binario completo completo, así como. Un árbol binario preorder traversal (T) se define como:
completo no está lleno, los nodos se producen desde las posiciones más a
la izquierda disponibles.
El proceso recursivo de encontrar el recorrido en preorden de los aleatoriedad se ha definido en la sección 4 de este KA. A continuación,
subárboles continúa hasta que los subárboles se encuentran para vamos a empezar con los conceptos detrás de la distribución de
ser nulo. Aquí, las comas se han utilizado como delimitadores en probabilidad y la probabilidad discreta. Un modelo de probabilidad es
aras de mejorar la legibilidad. una descripción matemática de un fenómeno aleatorio que consta de
dos partes: un espacio de muestra S y una forma de asignar
El orden posterior y en orden pueden ser definidos de forma similar probabilidades a los eventos. El espacio de muestra define el conjunto
usando la ecuación. 2 y la ecuación. 3 respectivamente. de todos los posibles resultados, mientras que un evento es un
subconjunto de un espacio muestra que representa un posible resultado
Postorden (T) = postorden (T L), Orden posterior (T R), o un conjunto de resultados. Una variable aleatoria es una función o
R ... la ecuación 2 regla que asigna un número a cada resultado. Básicamente, es sólo un
Finde (T) = finde (T L), R, a finde (T R) ... eqn 3 símbolo que representa el resultado de un experimento.
Los valores para una variable aleatoria podrían ser Crete dis- o
continua dependiendo del experimento. Una variable aleatoria
discreta puede contener todos los resultados po- sible sin perder
ninguna, aunque podría tener una cantidad infinita de tiempo. Una
variable aleatoria continua se utiliza para asegurarse de medi- un
incontable número de valores, incluso si se le da una cantidad
infinita de tiempo. Por ejemplo, si una variable aleatoria X
representa un resultado que es un número real entre 1 y
Figura 14.19. Un árbol de búsqueda binaria
Por ejemplo, el árbol de la figura 14.19 es un árbol binario de 100, entonces X puede tener un número infinito de ues Val-. Uno nunca
búsqueda (BST). Las salidas de recorrido preorden, postorden, y en puede enumerar todos los posibles resultados para X incluso si se
orden para la BST se dan a continuación en su orden respectivo. permite que una cantidad infinita de tiempo. Aquí, X es una variable
aleatoria continua. Por el contrario, para el mismo intervalo de 1 a 100,
otro Y variable aleatoria se puede utilizar para listar todos los valores
PREORDER salida: 9, 5, 2, 1, 4, 7, 6, 8, 13, 11, de número entero de la gama. Aquí, Y es una variable aleatoria Creta
10, 15 dis-.
Postorden de salida: 1, 4, 2, 6, 8, 7, 5, 10, 11, 15,
13, 9 Una letra mayúscula, digamos X, representará a la nombre de
Dentro de la orden de salida: 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, la variable aleatoria. Su minúscula contraparte, x,
13, 15 representará a la valor de la variable dom ran-.
Mayor discusión sobre los árboles y su uso ha sido incluido en la La probabilidad de que la variable aleatoria X será igual a x es:
sección 6, Estructura de Datos y de re- presentación, de los
Fundamentos de Informática KA.
P (X = x) o, más simplemente, P (x).
6. probabilidad discreta
[1 *, c7] Una función de distribución de probabilidad (densidad) es una
tabla, fórmula, o un gráfico que describe los valores de una variable
La probabilidad es la descripción matemática de la aleatoria y la probabilidad aso- ciados con estos valores.
aleatoriedad. definición básica de la probabilidad y
14-14 Guía SWEBOK® V3.0
Probabilidades asociadas con variables aleatorias discretas Estos números de hecho apuntan a derivar el valor de edad
tienen las siguientes propiedades: promedios a partir de experimentos repetidos. Esto se basa en el
único fenómeno más importante de la probabilidad, es decir, el
yo. 0 ≤ P (x) ≤ 1 para todo x valor promedio de los experimentos repetidos es probable que sea
ii. ΣP (x) = 1 próximo al valor esperado de un experimento. Por otra parte, el
valor medio es más probable que sea más próximo al valor
Una distribución de probabilidad discreta puede repre- tantes como esperado de cualquier un experimento como el número de
una variable aleatoria discreta. experimentos aumenta.
x 1 2 3 4 5 6
7. máquinas de estados finitos
P (x) 1/6 1/6 1/6 1/6 1/6 1/6 [1 *, c13]
Figura 14.20. Una función de probabilidad discreta para un balanceo Un sistema informático puede ser abstraído como un mapeo de de
Morir estado a estado impulsado por insumos. En otras palabras, un sistema
puede ser considerado como una función T transición: S × I → S × O,
El significado μ de un modelo de distribución de probabilidad es la donde S es el conjunto de estados y I, O son las funciones de entrada y
suma de los términos de productos para eventos individuales y su de salida. Si el estado conjunto S es finito (no infinita), el sis- tema se
probabilidad de resultado. En otras palabras, por los posibles llama máquina de estados finitos ( FSM). Alternativamente, una máquina
de estado finito (FSM) es una abstracción matemática compuesta de un
resultados x 1, x 2, … , x norte
en un espacio de muestra S si p k es la probabilidad de OUT- llegado x k, la número finito de estados y transiciones entre dichos estados. Si el
media de esta probabilidad sería μ = x 1 pag 1 + x 2 pag 2 + ... + x norte pag norte. dominio S × I es razonablemente pequeño, entonces se puede
especificar T explícitamente usando diagramas similares a un gráfico de
Por ejemplo, la media de la densi- dad de probabilidad para flujo para ilustrar los flujos de la forma lógica para diferentes entradas.
la distribución en la figura 14.20 sería Sin embargo, esto es prác- tica sólo para máquinas que tienen una
capacidad muy pequeña información.
1 * (1/6) + 2 * (1/6) + 3 * (1/6) + 4 * (1/6) + 5
* (1/6) + 6 * (1/6) = 21
* (1/6) = 3,5
Un FSM tiene una memoria finita interna, una característica de entrada
En este caso, el espacio muestral se refiere al conjunto de todos los que lee símbolos en una secuencia y de una en una, y una entidad de
resultados posibles. La varianza es 2 de un modelo de probabilidad discreta salida. El funcionamiento de una MEF comienza a partir de un estado
es: s 2 = ( x 1 - μ) 2 pag 1 + ( x 2 - μ) 2 pag 2 + ... + (x k - μ) 2 pag k. inicial, pasa a través de transiciones en función de la entrada a los
los desviación estándar s es la raíz cuadrada de la varianza. embargo, sólo unos pocos de todos los estados marcan un flujo exitoso de
s 2 = [( 1 - 3.5) 2 * ( 1/6) + (2 - 3.5) 2 * ( 1/6) + ácido (3 - 3.5) 2 * ( 1/6) si representamos una máquina que tiene una capacidad de información
3.5) 2 * ( 1/6) + (6 - 3.5) 2 * ( 1/6)] = (6,25 + 2,25 + 0,25 + tendrá | S | = 2 do linfáticos. Una máquina de estado finito se define
= ( S, YO, O, F, g, s 0).
= 17,5 * (1/6) =
2,90 S es el conjunto de estado;
yo es el conjunto de símbolos de entrada;
∴ desviación estándar s = O es el conjunto de símbolos de salida;
F es la función de transición de estado;
Fundamentos matemáticos 14-15
gramo es la función de salida; y s 0 es Los valores de transición y de salida de estado para diferentes entradas
el estado inicial. sobre diferentes estados pueden ser representados usando una tabla de
Dada una entrada x ∈ I en el estado S k, la FSM hace una la figura 14.22. Cada par contra un símbolo de entrada representa el nuevo
transición al estado S marido siguiente estado tran- sición función f y estado y el símbolo de salida.
8. gramáticas
[1 *, c13]
Figura 14.21. Ejemplo de una FSM Un lenguaje formal es un conjunto de palabras de longitud finita
o cuerdas sobre algún alfabeto finito, y una gramática especifica las
Por ejemplo, la figura 14.21 ilustra una FSM con S 0 como el reglas para la formación de estas palabras o cadenas. Todo el
estado de inicio y S 1 como el estado final. Aquí, S = {S 0, S 1, S 2}; I =conjunto de palabras que son válidos para una gramática constituye
{0, 1}; O = {2, 3}; f (S 0, el len- guaje de la gramática. Por lo tanto, la gramática G es
0) = S 2, f (S 0, 1) = S 1, f (S 1, 0) = S 2, f (S 1, 1) = S 2, f (S 2, cualquiera, definición matemática precisa compacta de un lenguaje
0) = S 2, f (S 2, 1) = S 0; g (S 0, 0) = 3, g (S 0, 1) = 2, G (S 1, L en lugar de sólo una lista sin procesar de todas las frases o
0) = 3, g (S 1, 1) = 2, G (S 2, 0) = 2, G (S 2, 1) = 3. ejemplos de esas frases legales de la lengua.
Estado Entrada
S0 3 2 S2 S1
Existe otro conjunto N = V - T de palabras llamado no terminales.
S1 3 2 S2 S2 Los no terminales representan conceptos como sustantivo. Las reglas
S2 2 3 S2 S0 de producción se aplican en las cadenas que contienen no terminales
hasta que no haya más símbolos no terminales están presentes en la
(segundo) cadena. El símbolo inicial S es un no terminal.
El lenguaje generado por una gramática formal 3. Cada CSG es una gramática-estructura de la frase (PSG).
G, denotado por L (G), es el conjunto de todas las cadenas sobre el
símbolo de inicio, mediante la aplicación de reglas de pro- ducción hasta Contextual Gramática: Todos los fragmentos en el RHS son o
que todos los símbolos no terminales son sustituidos en la cadena de . bien más largo que los fragmentos correspondientes en el LHS o
vacío, es decir, si b → a, entonces | b | <| A | o a = ∅.
Por ejemplo, sea G = ({S, A, a, b}, {a, b}, S, S {
→ aA, S → b, A → aa}). En este caso, el conjunto de termina- nales Un lenguaje formal es sensible al contexto, si una gramática sensible
son N = {S, A}, donde S es el símbolo inicial. Las tres reglas de al contexto genera. Gramática de contextos libre: Todos los fragmentos
producción de la gramática se dan como P1: S → aA; P2: S → b; P3: A en el LHS son de longitud 1, es decir, si A → a, entonces | A | = 1 para
→ AA. La aplicación de las normas de producción en todas las formas todos A ∈ NORTE.
posibles, las siguientes palabras pueden ser generados a partir del
símbolo de inicio. El término deriva libres de contexto desde el hecho de que A siempre
ocurre.
S → aA (Usando el símbolo de inicio P1) Un lenguaje formal es independiente del contexto, si una
→ aaa (Usando P3) gramática libre del contexto genera. lenguajes libres de contexto
S→b (P2 utilizando el símbolo de inicio) son la base teórica para la sintaxis de los lenguajes de
programación.
Nada más se puede derivar para G. Por lo tanto, el lenguaje La gramática regular. Todos los fragmentos en el RHS son o bien
de la gramática G consta de sólo dos palabras: L (g) = {aaa, b}. terminales individuales o un par construido por un terminal y un no
terminal; es decir, si A → a, entonces o bien una ∈ T, o a = CD, o a = Dc
para c ∈ T, D ∈ N. Si a = CD, y después la gramática se llama una
8.1. Reconocimiento idioma gramática lineal derecha. Por otra parte, si a = Dc, a continuación, la
gramática se llama una gramática lineal izquierda. Tanto la derecha y
gramáticas formales pueden ser clasificados de acuerdo a los tipos gramáticas lineales lineales izquierda son regu- lar o tipo 3 gramática.
de producciones que se permiten. La jerarquía de Chomsky
(introducido por Noam Chomsky en
1956) describe un esquema de dicha clasificación. El lenguaje L (G) generado por una gramática regular G se
denomina un lenguaje regular. Una expresión A regular es una
cadena (o patrón) formado a partir de los siguientes seis piezas de
informa- ción: a ∈ S, el conjunto de alfabetos, e, 0 y las
operaciones, OR (+), PRODUCTOS (.), Nación concatenación (*).
El lenguaje de G, L (G) es igual a todas esas cadenas que
coinciden con G, L (G) = {x ∈ S * | x coincide con G}.
1. Cada gramática regular es una gramática libre de contexto Por ejemplo, la expresión regular (ab) * coincide con el
(CFG). conjunto de cadenas: {e, ab, ABAB, ababab, ABABABAB, ...}.
2. Cada CFG es una gramática sensible al contexto (CSG).
Fundamentos matemáticos 14-17
Por ejemplo, la expresión regular (aa) * coincide con el conjunto o cortar ( es decir, el representante exacto inmediatamente debajo
de cadenas en una carta un que tienen igual longitud. -OR anteriormente, si es negativo-el número).
Por ejemplo, la expresión regular (aaa) * + (aaaaa) * coincide Los números que están más allá del rango deben estar representados
con el conjunto de cadenas de longitud igual a un múltiplo de 3 o 5. por el mayor número (o más grande negativo) que puede ser
representado. Esto se convierte en un símbolo de desbordamiento.
Desbordamiento se produce cuando un ción computacional produce un
9. numérica precisión, exactitud y errores valor mayor que el valor máximo de la gama.
[2 *, c2]
Cuando la velocidad de procesamiento es un cuello de botella
El objetivo principal del análisis numérico es desarrollar algoritmos importante, el uso de las representaciones de punto fijo es una
eficientes para calcular los valores numéricos de las funciones alternativa atractiva y más rápido que el de punto flotante más
pre-Cise, soluciones de ecuaciones algebraicas y diferenciales, engorroso aritmética más comúnmente utilizado en la práctica.
problemas de optimización, etc.
Vamos a definir un par de términos muy importantes:
Una cuestión de hecho es que todos los equipos digitales sólo pueden exactitud y precisión como asociado con el análisis ical numer-.
almacenar números finitos. En otras palabras, no hay manera de que una
computadora puede representar un gran número infinitamente-ya sea un La precisión es la cercanía con la que un valor calculado o
número entero, número racional, o cualquier real o todos los números Sured medi- está de acuerdo con el valor real. Precision, por
complejos (véase la sección 10, Teoría de Números). Así las otro lado, es la cercanía con la que dos o más medidos o
matemáticas de aproximación es muy crítica para manejar todos los calculados valores para la misma sustancia física de acuerdo
números en el rango finito que un ordenador puede manejar. entre sí. En otras palabras, la precisión es la Cerrar-dad con
la que un número representa un valor exacto.
que consta de un número especificado de dígitos binarios o bits. Una Sea x un número real y sea x * sea una aproximación.
palabra k de bits puede almacenar un total de N = 2 k diferentes números. los error absoluto en la aproximación x * x ≈ se define como |
x * - x |. los error relativo
Por ejemplo, un equipo que utiliza 32 bits aritmética puede se define como la relación entre el error absoluto con el tamaño
almacenar un total de N = 2 32 ≈ 4,3 × 10 9 números dife- rentes, de x, es decir, | x * - x | / | x |, que asume x ¹ 0; de lo contrario, no
mientras que otro que utiliza 64 bits puede manejar N'= 2 64 ≈ 1,84 × se define error relativo. Por ejemplo, 1000000 es una
10 19 diferentes números. La cuestión es cómo distribuir estas N aproximación a 1.000.001 con un error absoluto de 1 y un error
números sobre la recta real para la eficiencia máxima efi- y precisión relativo de 10 -6, mientras que 10 es una aproximación de 11 con un
en los cálculos prácticos. Una opción evidente es la de distribuir de error absoluto de 1 y un error relativo de
manera uniforme, dando lugar a aritmética de coma fija. En este
sistema, el primer bit en una palabra se utiliza para representar un 0.1. Típicamente, error relativo es más intuitivo y el
signo y los bits restantes son tratados para ues enteros Val-. Esto determinador preferida del tamaño del error. La presente
permite la representación de los números enteros de 1 - ½N, es convención es que los errores son siempre ≥ 0, y son = 0 si y
decir, = 1 - 2 k-1 a 1. Como método de apareamiento aproximada, esto sólo si la aproximación es exacta.
no es bueno para los números no enteros.
Una aproximación x * tiene k dígitos significativos mal deci- si
su error relativo es <5 × 10 -k-1. Esto significa que los primeros k
dígitos de x * siguientes su primer dígito distinto de cero son los
Otra opción es el espacio de los números en estrecha colaboración -por mismos que los de x. dígitos significativos son los dígitos de un
ejemplo con una separación uniforme de 2 -n -y así distribuir el número total número que se sabe que ser correcta. En una medición, se
N de manera uniforme sobre el intervalo de -2 -n-1 N <x ≤ 2 -n-1 N. Los números incluye un dígito incierto. Por ejemplo, la medición de longitud
reales que se encuentran entre los huecos están representados por con una regla de 15,5 mm con ± 0,5 mm máximo
cualquiera ING redonda ( es decir, el representante más cercano exacta)
14-18 Guía SWEBOK® V3.0
error permisible tiene 2 dígitos significativos, mientras que una decimales o no existen, por ejemplo, 15, o, cuando existen
medición de la misma longitud usando un calibrador y se registrará decimales, pueden terminar, como en 15.6, o pueden repetir
como 15,47 mm con ± 0,01 mm error permisible mamá maxi- tiene 3 con un patrón, como en 1,666 ..., (que es 5/3).
dígitos significativos.
Numeros irracionales. Estos son números que no se pueden expresar
10. Teoría de Números como un número entero dividido por un número entero. Estos números
[1 *, c4] tienen decimales que nunca se terminan y nunca se repiten con un
patrón, por ejemplo, PI o √2.
la teoría de números es una de las ramas más antiguas de las
matemáticas puras y uno de los más grandes. Por supuesto, se trata Numeros reales. Este grupo está formado por todos los números
de preguntas acerca de los números, por lo general significa números racionales e irracionales. Los números que se encuentran en el
enteros y números fraccionarios o racionales. Los diferentes tipos de estudio de álgebra son números reales. El símbolo matemático
números incluyen número entero, el número real, número natural, común para el conjunto de todos los números reales es R.
número complejo, número racional, etc.
Los números imaginarios. Estos se basan en el número
imaginario yo. Este número imaginario es igual a la raíz cuadrada de
10.1. Divisibilidad -1. Cualquier número real de múltiples yo es un número imaginario,
por ejemplo, yo, 5 yo,
Vamos a empezar esta sección con una breve descripción de cada uno de 3.2 yo, -2.6 yo, etcétera
los tipos anteriores de los números, empezando por los números naturales. Números complejos. Un número complejo es una combinación de
un número real y un número imaginario en la forma a + b yo. La parte
Números naturales. Este grupo de números comienza en 1 y real es una, y b se llama la parte imaginaria. El símbolo ematical
sigue: 1, 2, 3, 4, 5, y así sucesivamente. Cero no es en este grupo. Matemáticas- común para el conjunto de todas las fibras No. de orden
No hay números negativos o fracciones cionales en el grupo de los complejos es DO.
números naturales. El símbolo matemático común para el conjunto
de los números naturales es N. Por ejemplo, 2 + 3 yo, 3-5 yo, 7,3 + 0 yo, y 0 + 5 yo.
Tenga en cuenta los dos últimos ejemplos:
Números enteros. Este grupo tiene todos los números natu- 7,3 + 0 yo es el mismo que el número real 7.3. De este modo, todos los
ral en él más el número 0. números reales son números complejos con cero para la parte imaginaria.
Por desgracia, no todo el mundo acepta las definiciones Del mismo modo, 0 + 5 yo es sólo el número imaginario 5 yo. De este modo,
anteriores de los números naturales y enteros. No parece haber un todos los números imaginarios son números complejos con cero para la
acuerdo general sobre si se debe incluir 0 en el conjunto de los parte real. La teoría de números elemental implica la divisibilidad entre
números naturales. Muchos matemáticos consideran que, en números enteros. Sean a, b ∈ Z con una ≠ 0. El expre- sión a | b, es decir, un
Europa, la secuencia de números naturales que tradicionalmente divide b Si ∃ do ∈ Z: b = ac, es decir, no es un número entero c tal que c
se inició con 1 (0 ni siquiera fue considerado para ser un número veces a es igual a b. Por ejemplo, 3 | -12 es cierto, pero 3 | 7 es falsa. Si un
por los griegos). En el siglo 19, situado teóricos y otros divisiones segundo, entonces se dice que un es un factor de
que debe mantenerse en secreto por un partido determinado. El gcd como un grupo conmutativo o abeliano.
d que es un divisor tanto de A y de B, es decir, El conjunto de números naturales N (con el funciona- miento de
adición) no es un grupo, ya que no hay inversa para cualquier x> 0 en el
conjunto de números naturales. Por lo tanto, se viola la tercera regla (de
d = gcd (a, b) para max (d: d | a ∧ d | b) inversa) para nuestra operación. Sin embargo, el conjunto de los números
naturales tiene alguna estructura.
Por ejemplo, gcd (24, 36) = 12. Los números enteros un y segundo se
llaman primos o primos entre sí, si y sólo si su MCD es 1. Por ejemplo, Sets con una operación asociativa (la primera condición
ni 35 ni 6 son primos, pero están coprimeros ya que estos dos anterior) se llaman semigroups; si también tienen un elemento
números no tienen factores comunes mayor que 1, por lo que su MCD de identidad (el segundo ción condi-), entonces se les llama
es 1. Un conjunto de números enteros X = {i 1, yo 2, ...} es relativamente monoides. Nuestro conjunto de los números naturales bajo la
primo si todos los pares posibles i marido, yo k, h ≠ k trazada desde el suma es entonces un ejemplo de un monoide, una estructura
conjunto X son relativamente primos. que no es un grupo bastante porque falta el requisito de que
cada elemento tiene una inversa bajo la operación.
11. Estructuras algebraicas Un monoide es un conjunto S que se cierra en una sola operación
binaria asociativa • y tiene un elemento de identidad I ∈ S tal que para
En esta sección se presenta un par de representaciones utilizadas en todo un ∈ S, I • a = a • I = a. A monoid debe contener al menos un
álgebra superior. Una estructura algebraica consiste en uno o dos elemento. Por ejemplo, el conjunto de números naturales N forma un
conjuntos cerrados bajo algunas operaciones y que satisfacen una monoide conmutativo bajo la adición con el elemento de identidad 0.
serie de axiomas, incluyendo ningunos. El mismo conjunto de números naturales N también forma un monoide
bajo la multiplicación con el elemento de identidad 1. El conjunto de
Por ejemplo, grupo, monoid, anillo, y celosía son ejemplos de Gers inte- positivos P forma un monoide conmutativo bajo la
estructuras algebraicas. Cada una de ellas se define en esta multiplicación con el elemento de identidad 1. Se puede observar que,
sección. a diferencia de los de un grupo, los elementos de un monoid no
necesita tienen inversos. UN
14-20 Guía SWEBOK® V3.0
monoid también puede ser pensado como un semigrupo con un elemento 11.2. anillos
de identidad. UN subgrupo es un grupo MARIDO contenida dentro de una
más grande, GRAMO, de tal manera que el elemento de identidad de Si tomamos un grupo abeliano y definimos una segunda operación en
él, una nueva estructura se encuentra que es diferente de sólo un
GRAMO está contenido en MARIDO, y siempre marido 1 y marido 2 se grupo. Si esta segunda funciona- miento es asociativa y es distributiva
sobre la primera, entonces tenemos un anillo.
encuentran en MARIDO, entonces también lo son marido 1 • marido 2 y marido 1-1.
Así, los ele- mentos de MARIDO, equipado con la operación del grupo en
GRAMO prohibido para MARIDO, de hecho formar un grupo. Dado Un anillo es un triple de la forma (S, +, •), donde (S,
cualquier subconjunto S de un grupo GRAMO, el subgrupo generado por S se+ ) es un grupo abeliano, (S, •) es un semigrupo, y
compone de productos de elementos de S y sus inversos. Es el subgrupo • es distributiva sobre +; es decir, “a, b, c ∈ S, la ecuación ción un • ( segundo
más pequeño de GRAMO que contiene S. + c) = (a • segundo) + (Una • do) sostiene. Además, si
• es conmutativo, entonces el anillo se dice que es conmutativa. Si hay
Por ejemplo, sea GRAMO ser el grupo abeliano cuyos un elemento de identidad para el • funcionamiento, entonces el anillo
elementos son G = { 0, 2, 4, 6, 1, 3, 5, 7} y cuya operación de se dice que tiene una identidad. Por ejemplo, (Z, +, *), es decir, el
grupo es suma de módulo 8. Este grupo tiene un par de conjunto de los enteros Z, con la adición usual y multiplicación opera-
subgrupos no triviales: J = { 0, 4} y ciones, es un anillo. Como (Z, *) es conmutativo, este anillo es un anillo
H = { 0, 2, 4, 6}, donde J es también un subgrupo de MARIDO. conmutativo o abeliano. El anillo tiene 1 como su elemento de
En la teoría de grupos, un grupo cíclico es un grupo que puede identidad.
ser generada por un solo elemento, en el sentido de que el grupo
tiene un elemento un ( llamó al Vamos a señalar que la segunda operación no puede tener un
generador del grupo) de tal manera que, cuando se escribe elemento de identidad, ni tampoco tenemos que encontrar un inverso
multiplicativa, cada elemento del grupo es una potencia de a. para cada elemento con respecto a esta segunda operación. En cuanto a
lo que significa la distribución, de manera intuitiva que es lo que
Un grupo G es cíclico si G = {a norte para cualquier número entero n}. hacemos en matemá- ticas elementales al realizar el siguiente cambio:
Puesto que cualquier grupo generado por un elemento en un grupo es una
un subgrupo de dicho grupo, que muestra que el único subgrupo de un * (B + c) = (a * b) + (a * c).
grupo G que contiene un es en sí misma G es suficiente para mostrar Un campo es un anillo para el que los elementos del conjunto, con
que G es cíclico. Por ejemplo, el grupo G = { 0, 2, 4, 6, 1, 3, 5, 7}, con exclusión de 0, forman un grupo abeliano con la segunda operación.
respecto a la adición de módulo 8 operación, es cíclico. los subgrupos J
= { 0, 4} y H = { 0, 2, Un ejemplo simple de un campo es el campo de los números
gestionar racionalmente (R, +, *) con las operaciones de suma y
4, 6} también son cíclicos. multiplicación habituales. Los números del formato a / b ∈ R, donde a, b son
números enteros y
segundo ≠ 0. El inverso aditivo de una fracción tal es simplemente - a / b, y
es el inverso multiplicativo licenciado en Letras
siempre que un ≠ 0.
Fundamentos matemáticos 14-21
[2 *]
[1 *]
1. conjuntos, relaciones, funciones c2
2. Lógica Básica c1
3. Técnicas de prueba c1
4. Recuento básico c6
6. probabilidad discreta c7
8. gramáticas c13
[1 *] K. Rosen, Matemática Discreta y sus El autor reconoce por suerte la contribución del profesor Arun
aplicaciones, 7ª ed., McGraw-Hill, 2011. Kumar Chatterjee, Ex-Jefe del Departamento de Matemáticas de
la Universidad de Manipur, India, y el Prof. Devadata Sinha,
[2 *] EW Cheney y DR Kincaid, Numérico Ex-Jefe del Departamento de Ciencias de la Computación y
Matemáticas y Computación, 6ª ed., Brooks / Engineer- ing, Universidad de Calcuta, India, en la preparación de
Cole, 2007. este capítulo sobre Fundamentos matemáticos.
CAPÍTULO 15
FUNDAMENTOS DE INGENIERÍA
15-1
15-2 Guía SWEBOK® V3.0
experimentos diseñados permiten a los ingenieros para 2. Análisis estadístico [ 2 *, c9s1, C2S1] [3 *, c10s3]
determinar de forma precisa cómo se relacionan las variables y, en
concreto, si existe una relación causa-efecto entre ellos. Cada
combinación de valores de las variables independientes es una tratamiento.
Con el fin de llevar a cabo sus responsabilidades, inge- nieros deben
Los experimentos simples tienen sólo dos tratamientos que entender cómo las diferentes características del producto y de proceso
representan dos niveles de una variable independiente GLE pecado varían. Los ingenieros a menudo se encuentran con situaciones en las
(por ejemplo, usando una herramienta frente a no usar una que la relación entre las diferentes variables debe ser estudiado. Un
herramienta). surgen Más diseños experimentales complejas cuando punto importante a destacar es que la mayoría de los estudios se llevan
se utilizan más de dos niveles, más de una variable independiente, o a cabo sobre la base de muestras y por lo que los resultados
cualquier variables dependientes. observados necesita ser entendido con respecto a la población
completa. Los ingenieros deben, por lo tanto, desarrollar una
comprensión adecuada de ING técnicas estadísticas para la recogida
de datos fiables en cuanto a la toma de muestras y análisis para llegar
1.2. Estudio observacional a resultados que pueden generalizarse. Estas técnicas se discuten a
continuación.
Un estudio observacional o un caso es una investigación empírica que
hace observaciones de los procesos o fenómenos dentro de un
contexto de la vida real. Mientras que un experimento ignora
deliberadamente contexto, un estudio de observación o caso incluye 2.1. Unidad de análisis (unidades de muestreo),
contexto como parte de la observación. Un estudio de caso es más Población y Muestra
uso- ful cuando el foco del estudio está en cómo y por qué
Unidad de Análisis. Mientras lleva a cabo cualquier estudio cal
preguntas, cuando el comportamiento de los participantes en el empíricamente, las observaciones deben hacerse en unidades sen CHO-
estudio no puede ser manipulada, y cuando las condiciones con- llamados las unidades de análisis o las unidades de muestreo. La unidad
textual son relevantes y los límites entre el fenómeno y el contexto de análisis debe ser identificado y debe ser apropiado para el análisis.
no son claras. Por ejem- plo, cuando una empresa de productos de software quiere
encontrar la utilidad percibida de un producto de software, el usuario o la
1.3. Estudio retrospectivo función de software pueden ser la unidad de análisis.
resultados están siendo generalizadas pueden ser diferentes. Por Distribución de una variable aleatoria. La gama y el patrón de
ejemplo, cuando la población de estudio consta de sólo el pasado variación de una variable aleatoria está dada por su distribución.
observaciones y generalizaciones son necesarios para el futuro, la Cuando se conoce la distribución de una variable aleatoria, es posible
población estudiada y la población objetivo puede no ser la misma. calcular la probabilidad de cualquier evento. Algunos las
distribuciones se encuentran a ocurrir comúnmente y se utilizan para
Muestra. Una muestra es un subconjunto de la población. La modelar muchas variables aleatorias que se producen en la práctica
cuestión más crucial para la selección de una muestra es su en el contexto de la ingeniería. Algunas de las distribuciones que se
representatividad, incluyendo el tamaño. Las muestras deben producen más comúnmente se dan a continuación.
extraerse de una manera a fin de asegurar que los sorteos son
independientes, y las reglas de dibujo de las muestras deben ser
definidos pre- de modo que la probabilidad de seleccionar una unidad
de muestreo ticular par- se conoce de antemano. Este método de • distribución binomial: se utiliza para modelar variables
selección de las muestras se llama muestreo de probabilidad. aleatorias que cuentan el número de éxitos en norte ensayos
realizados independientemente unos de otros, en cada ensayo
da como resultado el éxito o el fracaso. Hacemos una
Variable aleatoria. En la terminología estadística, el proceso de suposición de que la posibilidad de obtener un éxito permanece
hacer las observaciones o las mediciones en las unidades de cons- tante [2 *, c3s6].
muestreo que se estudian se conoce como la realización del
experimento. Por ejemplo, si el experimento es lanzar una moneda 10 • distribución de Poisson: se utiliza para modelar el conteo de
veces y luego contar el número de veces que la moneda cae en ocurrencia de un evento con el tiempo o en el espacio [2 *, c3s9].
cabezas, cada 10 lanzamientos de la moneda es una unidad de
muestreo y el número de cabezas de una muestra dada es la • La distribución normal: se utiliza para modelar variables aleatorias
observación o el resultado para el experimento. El resultado de un OU continuidades o variables aleatorias discretas mediante la
experimento se obtiene en términos de números reales y define la adopción de un número muy grande de valores [2 *, c4s6].
o PMF se conoce, las posibilidades de la variabilidad aleatoria capaz observaciones, así como el tamaño de la muestra. Los límites se
teniendo cierto conjunto de valores pueden ser calculadas teóricamente. calculan sobre la base de algunas suposiciones con respecto a la
distribución de muestreo de la estimación puntual en que se basan
Concepto de la estimación [ 2 *, c6s2, c7s1, c7s3]. Los verdaderos los límites.
valores de los parámetros de una distribución son generalmente Propiedades de los estimadores. Varias propiedades
desconocidas y necesitan ser estimada a partir de las observaciones de la estadísticas de los estimadores se utilizan para decidir sobre la
muestra. Las estimaciones son funciones de los valores de la muestra y conveniencia de un estimador en una situación dada. Las
se llaman estadísti- cas. Por ejemplo, la media de la muestra es una propiedades más importantes son que es un estimador imparcial,
estadística y puede ser utilizado para estimar la media poblacional. Del eficiente y coherente con respecto a la población.
mismo modo, la tasa de aparición de defectos de estimación se
aparearon de la muestra (tasa de defectos por línea de código) es una Pruebas de hipótesis [ 2 *, c9s1] .A hipótesis es una
estadística y sirve como la estimación de la tasa de población de tasa de declaración acerca de los posibles valores de un eter param.
defectos por línea de código. El estadístico utilizado para estimar algún Por ejemplo, supongamos que se afirma que un nuevo método
parámetro pobla- ción se refiere a menudo como el estimador de desarrollo de software reduce la aparición de defectos. En
este caso, la hipó- tesis es que la tasa de aparición de defectos
se ha reducido. En las pruebas de hipótesis, decidimos-sobre la
del parámetro. base de las observaciones de la muestra, ya sea un pro- puesto
Un punto muy importante a tener en cuenta es que los resultados de hipótesis debe ser aceptada o rechazada. Para la prueba de
los mismos estimadores son aleatorios. Si tomamos una muestra hipótesis, se forman las hipótesis nula y alternativa. La hipótesis
diferente, es probable que obtener una estimación diferente del nula es la hipótesis de no cambio y se denota como H 0. La
parámetro de la población. En la teoría de estimación, es necesario hipótesis alternativa se escribe como H 1. Es impor- tante tener
entender las diferentes propiedades de los estimadores -en particular, la en cuenta que la hipótesis alternativa puede ser unilateral o
cantidad de las estimaciones pueden variar a través de muestras y cómo bilateral. Por ejemplo, si tenemos la hipótesis nula de que la
elegir entre diferentes modos alternativos para obtener las estimaciones. media poblacional no es menor que un cierto valor dado, la
Por ejemplo, si deseamos estimar la media de una población, podríamos hipótesis alternativa sería que es inferior a ese valor y que
utilizar como nuestro estimador de la media de una muestra, una tendría una prueba unilateral. Sin embargo, si tenemos la
mediana de la muestra, un modo de muestra, o la gama media de la hipótesis nula de que la media poblacional es igual a un valor
muestra. Cada uno de estos estimadores tiene diferentes propiedades determinado, la hipótesis alternativa sería que no es igual y que
estadísticas que pueden impactar el error estándar de la estimación. tendría una prueba bilateral (debido a que el valor real podría
ser menor que o mayor que el valor dado). Con el fin de probar
alguna hipótesis, primero se com- pute alguna estadística.
Junto con el cálculo de la estadística, una región se define de
Tipos de estimaciones [ 2 *, c7s3, c8s1] .Hay dos tipos de tal manera que en caso de que el valor calculado de la
estimaciones: a saber, las estimaciones puntuales y las estimaciones de estadística cae en esa región, se rechaza la hipótesis nula. Esta
intervalo. Cuando se utiliza el valor de una estadística para estimar un región es llamada la región crítica (también conocido como el
parámetro de la población, se obtiene una estimación puntual. Como su intervalo de confianza). En las pruebas de hipótesis, tenemos
nombre indica, una estimación puntual da un valor en puntos de la que aceptar o rechazar la hipótesis nula sobre la base de las
param eter está estimando. pruebas obtenidas. Observamos que, en general, la hipótesis
alternativa es la hipótesis de interés. Si el valor calculado de la
Aunque a menudo se utilizan las estimaciones puntuales, que dan estadística no cae dentro de la región crítica, entonces no
cabida a muchas preguntas. Por ejemplo, no se nos dice nada acerca podemos rechazar la hipótesis nula. Esto indica que no hay
de la posible tamaño del error o propiedades estadísticas del suficiente evidencia para creer que la hipótesis alternativa es
compañero de estimación punto. Por lo tanto, necesitan un suplemento verdadera.
de una estimación puntual con el tamaño de la muestra, así como la
varianza de la estimación. Como alternativa, podríamos utilizar una
estimación de intervalo. Una estimación de intervalo es un intervalo
aleatorio con el li- inferior y superior del intervalo de sus siendo
funciones de la muestra
Fundamentos de Ingeniería 15-5
A medida que se toma la decisión sobre la base de las dado el valor de una variable, la otra puede estimarse sin
observaciones de la muestra, los errores son posibles; los tipos de error. Un coeficiente de correlación positivo indica una relación
tales errores se resumen en la tabla siguien- tes. que positiva es, si una variable aumenta, también lo hace la
otra. Por otro lado, cuando las variables tienen una correlación
negativa, un aumento de un conduce a una disminución de la
Decisión estadística otra.
Naturaleza
aceptar H 0 rechazar H 0
Es importante recordar que la correlación no implica
MARIDO error tipo I
DE ACUERDO causalidad. Por lo tanto, si se correlacionan dos variables,
es verdad (probabilidad = a)
0
no podemos concluir que uno causa el otro.
MARIDO error tipo II
DE ACUERDO
0 Es falso (probabilidad = b) Regresión. El análisis de correlación sólo mide el
grado de relación entre dos variables. El análisis para
En la prueba de hipótesis, nuestro objetivo es maximizar la potencia de encontrar la relación entre dos variables se llama análisis
la prueba (el valor de 1-b), mientras que fin de • asegurar que la de regresión. La fuerza de la relación entre dos variables
probabilidad de un error de tipo I (el valor de a) se mantiene dentro de una se mide utilizando el coeficiente de determinación. Este
de valor particular, típicamente de 5 por ciento . es un valor entre 0 y 1. Cuanto más cerca el coeficiente
es de 1, mayor es la relación entre las variables. Un
Es de notar que la construcción de una prueba de hipótesis valor de 1 indica una relación perfecta.
estadística incluye la identificación (s) para estimar el parámetro
(s) y que define una región crítica de tal manera que si el valor
calculado de la estadística cae en la región crítica, el hypoth nula
- se rechaza ESIS. 3. Medición
[4 *, c3s1, c3s2] [5 *, c4s4] [6 *, c7s5]
[7 *, p442-447]
2.2. Conceptos de correlación y regresión
[2 *, c11s2, c11s8] Saber qué medir y qué método de medición ción a utilizar
es crítica en los esfuerzos de ingeniería. Es importante que
Un objetivo principal de muchas investiga- ciones estadísticos es todos los involucrados en un proyecto de ingeniería
establecer relaciones que hacen que sea posi- ble para predecir una entender los métodos de medición y los resultados de la
o más variables en función de otras. Aunque es deseable para medición que se utilizarán.
predecir una cantidad exactamente en términos de otra cantidad, es
posible dom SEL- y, en muchos casos, tenemos que estar Las medidas pueden ser, tal ambien- física, económica,
satisfechos con la estimación de los valores medios o esperados. operacional, o algún otro tipo de medida que sea significativo
para el proyecto en particular. Esta sección explora la teoría de
la medi- surement y la forma en que es fundamental para
La relación entre dos variables se IED estu- utilizando los Engineer- ing. La medición se inicia como una conceptualización
métodos de correlación y de regresión. Estos dos conceptos entonces se mueve de conceptos abstractos a las definiciones
se explican brevemente en los siguientes párrafos. del método de medición para la aplica- ción real de que el
método para obtener un resultado de la medición. Cada uno de
Correlación. La fuerza de la nave PARENTESCO lineal estos pasos debe entenderse, comunicado, y adecuadamente
entre dos variables se mide utilizando el coeficiente de empleados a fin de generar datos utilizables. En inge- niería
correlación. Si bien el cálculo del coeficiente de correlación tradicional, a menudo se utilizan medidas directas. En la
entre dos variables, se supone que estas variables miden dos ingeniería de software, una combinación de ambas medidas
atributos dife- rentes de la misma entidad. El coeficiente de directas y derivadas es necesaria [6 *, P273]. La teoría de la
correlación toma un valor entre -1 a +1. Los valores -1 y 1 medida establece que la medida es un intento de describir un
indican una situación en la que la asociación entre las subyacente
variables es perfecto, es decir,
15-6 Guía SWEBOK® V3.0
sistema empírico real. Métodos de medición definen esta simple medida dará lugar a una variación sustancial. Los
actividades que asignan un valor o un símbolo a un atributo de ingenieros deben apreciar la necesidad de definir medidas desde
una entidad. una perspectiva operacional.
Los atributos deben entonces ser definidos en términos de las
operaciones utilizadas para identificar y medir ellos- es decir, los 3.1. Niveles (Scales) de Medición
métodos de medición. En este enfoque, un método de medición se [4 *, c3s2] [6 *, c7s5]
define para ser una operación especificada precisamente que
produce un nú- mero (llamado el resultado de la medición) cuando Una vez que se determinan las definiciones operacionales, las
medi- suring un atributo. De ello se deduce que, para ser útil, el medidas reales deben llevarse a cabo. Es de notar que la medición
método de medición tiene que estar bien definida. La arbitrariedad puede ser car- ried a cabo en cuatro escalas diferentes: a saber,
en el método se reflejará en la ambigüedad en los resultados de nominal, ordinal, intervalo, y la relación. Breves descripciones de
medición. En algunos casos, particularmente en el mundo de los cada uno se dan a continuación.
atributos físicos que deseamos medir son fáciles de entender; Sin
embargo, en un mundo artificial como la ingeniería de software, la Escala nominal: Este es el nivel más bajo de surement medi- y
definición de los atributos puede no ser tan simple. Por ejemplo, los representa la asignación más sin restricciones de numerales. Los
atributos de altura, peso, distancia, etc. son fácil y uniforme números sólo sirven como etiquetas y palabras o letras servirían
comprendido formemente (aunque pueden no ser muy fácil de medir también. La escala nominal de la medición sólo implica la
en todas las circunstancias), mientras que los atributos como el clasificación y las unidades de muestreo observados se ponen en
tamaño o la complejidad del software requieren definiciones claras. una cualquiera de las categorías mutuamente excluyentes y
colectivamente exhaustivos (clases). Algunos ejemplos de escalas
nominales son:
Definiciones operacionales. La definición de atri- buye, para • Los puestos de trabajo en una empresa
empezar, es a menudo bastante abstracto. Tales definiciones no • El ciclo de vida de desarrollo de software (SDLC) modelo
facilitan mediciones. Por ejemplo, podemos definir un círculo como una (como cascada, iterativa, ágil, etc.) seguido de diferentes
línea que forma un bucle cerrado de tal manera que la distancia proyectos de software
entre cualquier punto en esta línea y un punto interior fijo llamado
centro es constante. Podemos decir, además, que la distancia fija En escala nominal, los nombres de las diferentes catego- rías
desde el centro a cualquier punto en el bucle cerrado da el radio del son sólo etiquetas y no se asume ninguna relación entre ellos. Las
círculo. Cabe señalar que aunque el concepto se ha definido, se ha únicas operaciones que se pueden llevar a cabo en la escala
propuesto ningún medio de la medición de la radio. La definición nominal es la de contar el número de ocurrencias en las diferentes
operacional especifica los pasos exactos o el método utilizado para clases y determinar si dos sucesos tienen el mismo valor nominal.
llevar a cabo una medi- ción específica. Esto también puede ser Sin embargo, los análisis estadísticos se pueden llevar a cabo para
llamado el método de medida; a veces una Procedimiento de entender cómo las entidades pertenencias ing a diferentes clases
medición puede ser necesaria para ser aún más preciso. realizan con respecto a alguna otra variable de respuesta.
• Nivel de adherencia a procesar tal como se mide en una escala de medido en escala de intervalo, ya que no es preciso proceder
5 puntos de excelente, encima de la media, media, por debajo de a definir lo que significaría cero inteligencia.
la media, y pobre, lo que indica el intervalo de adhesión total a no
adherencia en absoluto
Si una variable se mide en escala de intervalos, la mayoría de los
análisis estadísticos habituales, como media, Normaliza- dard
La medición en escala ordinal satisface la propiedad sibilidad desviación, correlación y regresión pueden llevarse a cabo sobre los
tran- en el sentido de que si A> B y B valores medidos.
> C, entonces A> C. Sin embargo, las operaciones aritméticas no Escala de proporción: Estos son muy comúnmente encon- trada en la
puede llevarse a cabo en variables medidas en escalas ordinales. Por ciencia física. Estas escalas de medi- das se caracterizan por el hecho
lo tanto, si se mide la satisfacción del cliente en una escala ordinal de 5 de que existen operaciones para la determinación de los 4 relaciones:
puntos de 5 lo que implica un alto nivel de satisfacción y 1 lo que igualdad, orden de rango, la igualdad de los intervalos, y la igualdad de
implica un alto nivel de insatisfacción, no podemos decir que una las proporciones. Una vez que tal escala está disponible, sus ues Val-
puntuación de cuatro es dos veces mejor que una puntuación de dos. numérico se pueden transformar de una unidad a otra con sólo
Por lo tanto, es mejor utilizar terminología como excelente, encima de multiplicar por una constante, por ejemplo, la conversión de pulgadas a
la media, media, por debajo de la media, y pobres que los números pies o centímetros. Cuando las mediciones se realizan en escala de
ordinales con el fin de evitar el error de tratamiento de una escala razón, la existencia de un cero no arbitrario es obligatorio. Todas las
ordinal como una escala de proporción. Es importante tener en cuenta medidas estadísticas son aplicables a escala de razón; uso logaritmo
que las medidas ordinales escala son comúnmente mal y el mal uso sólo es válido cuando se utilizan estas escalas, como en el caso de
puede llevar a conclusiones erróneas [6 *, P274]. Un mal uso común de decibelios. Algunos ejemplos de medidas de razón son
medi- das escala ordinal es presentar una media y la desviación
estándar para el conjunto de datos, los cuales son de sentido. Sin
embargo, podemos encontrar la mediana, como el cálculo de la
mediana consiste en el conteo solamente.
• el número de declaraciones en un programa de software
• Medición de la temperatura en diferentes escalas, como Las medidas pueden ser directa o derivados (algunas veces
Celsius y Fahrenheit. SUP- plantear T 1 y T 2 son llamados medidas indirectas). Un ejemplo de una medida directa
temperaturas medidas en alguna escala. Observamos sería una cuenta de cuántas veces que ocurre un evento, como
diseño del producto. Esto es cierto para los productos manufacturados, así
Diseño: La capacidad de diseñar soluciones de 4.3. Pasos a seguir en Ingeniería de Diseño [ 7 *, c4]
ingeniería, proble- blemas indefinidos complejas y diseñar
sistemas, componentes o procesos que satisfagan las
necesidades especificadas con la debida atención a los la resolución de problemas de ingeniería comienza cuando se reconoce
riesgos de salud y seguridad, las normas aplicables, y una necesidad y ninguna solución existente satisfacer esa necesidad.
con económico, ambiental, cultural y social - Como parte de esta resolución de problemas, se deben identificar los
consideraciones. [8, p12] objetivos de diseño que deben alcanzarse en la solución. Además, un
conjunto de criterios de acep- tación debe ser definido y se utiliza para
deter- minar qué tan bien una solución propuesta va a satisfacer la
De una manera similar, ABET define el diseño de ingeniería como necesidad. Una vez a la necesidad de una solución a un problema ha sido
identificado, el proceso de diseño de ingeniería tiene los siguientes pasos
genéricos:
el proceso de elaboración de un sistema, compo- nente o
e) aplicar la solución
Por lo tanto, está claro que el diseño de ingeniería es un Todas las etapas de diseño de ingeniería son tivo iterativo, y los
componente vital en la formación y la educación para todos los conocimientos adquiridos en cualquier etapa del proceso se puede utilizar
ingenieros. El resto de esta sección se centrará en varios aspectos para informar a las tareas anteriores y desencadenar una iteración en el
Es de notar que el diseño de ingeniería es un problema primar- ily características del producto también se examina de cerca. Este paso
actividad de resolución. Los problemas de diseño están abiertas y más incluye el perfeccionamiento de la declaración de problemas para
vagamente definidos. Por lo general hay varias formas alternativas para identificar el verdadero problema que hay que resolver y el establecimiento
resolver el mismo problema. El diseño se considera generalmente que es de los objetivos de diseño y criterios de éxito.
una malvados problema -un término acuñado por Horst Rittel en la década
de 1960 cuando los métodos de diseño fueron objeto de un intenso La definición del problema es una etapa crucial en el diseño de
interés. Rittel buscó una alternativa al modelo lineal paso a paso del ingeniería. Un punto a tener en cuenta es que este paso es
proceso de diseño siendo explorado por muchos diseñadores y teóricos engañosamente simple. Por lo tanto, la atención suficiente se debe tomar
del diseño y argumentó que la mayoría de los proble- mas abordados por para llevar a cabo este paso con criterio. Es importante identificar las
los diseñadores son proble- mas malvados. Como se explica por Steve necesidades y vincular los criterios de éxito con las características de los
McConnell, un problema complejo es uno que podría ser claramente productos requeridos. También es una tarea de ingeniería para limitar el
definido únicamente por su solución o mediante la resolución de parte de alcance de un problema y su solución a través de la negociación entre las
ella. Esta paradoja implica, esencialmente, de que un problema complejo partes interesadas.
tiene que ser resuelto de una vez con el fin de definir con claridad y luego
resuelve de nuevo para crear una solución que funcione. Esta ha sido una
idea importante para los diseñadores de los programas durante varias segundo. Recopilar información pertinente. En esta etapa, el
décadas [10 *, c5s1]. diseñador intenta ampliar su / su El conocimiento sobre el problema.
Esta es una etapa vital, ya menudo no. La recopilación de
información pertinente puede revelar hechos que conducen a una
redefinición de la
15-10 Guía SWEBOK® V3.0
problemas, en particular, los errores y las salidas en falso puede ser refinar el diseño o conducir a la selección de una solución de diseño
identificado. Este paso puede implicar también la descomposición del alter- nativa. Una de las actividades más impor- tantes en el diseño
problema en subproblemas más pequeños y más fáciles de resolver. es la documentación de la solución de diseño, así como de las
ventajas y desventajas de las decisiones tomadas en el diseño de la
En la recogida de información pertinente, se debe tener solución. Este trabajo debe llevarse a cabo de tal manera que la
cuidado para identificar cómo un producto puede ser usado como solución al problema de diseño se puede com- municated
un mal uso. También es importante entender el valor percibido claramente a los demás. La prueba y verificación nos llevan de
del producto / servicio que se ofrece. Incluida en la información vuelta a los criterios de éxito. El ingeniero tiene que diseñar pruebas
pertinente es una lista de restricciones que deben ser satisfechas de tal manera que la capacidad del diseño para cumplir con los
por la solución o que pueden limitar el conjunto de soluciones criterios de éxito se demuestra. Mientras diseño- ing las pruebas, el
factibles. ingeniero debe pensar a través de diferentes modos de fallo posibles
y luego diseñar pruebas basadas en los modos de fallo. El ingeniero
puede optar por llevar a cabo los experimentos diseñados para
do. Generar múltiples soluciones. Durante esta etapa, las evaluar la validez del diseño.
diferentes soluciones al mismo problema son de- sarrollados. Ya
se ha indicado que el diseño proble- blemas tienen múltiples
soluciones. El objetivo de este paso es conceptualizar múltiples
solu- ciones posibles y refinar a un nivel de detalle suficiente que
la comparación puede hacerse entre ellos. 5. Modelado, Simulación y Prototipos
[5 *, c6] [11 *, c13s3] [12 *, c2s3.1]
re. Analizar y seleccionar una solución. Una vez que se han identificado El modelado es parte del proceso de abstracción usado para
soluciones alternativas, es necesario que se ana- lyzed para identificar representar algunos aspectos de un sistema. ción simulaciones
la solución que mejor se adapte a la situación Cur- alquiler. El análisis utiliza un modelo del sistema y proporciona un medio para la
incluye un análisis funcional para evaluar si el diseño propuesto realización de experimentos diseñados con ese modelo para
cumpliría los requisitos funcionales. soluciones físicas que implican comprender mejor el sistema, su comportamiento, y las relaciones
usuarios humanos a menudo incluyen el análisis de la ergonomía o la entre los subsistemas, así como para analizar los aspectos del
facilidad de uso de la solución propuesta. Otros aspectos de la diseño. Mod eling y simulación son técnicas que se pueden utilizar
solución, tales como la seguridad del producto y la responsabilidad, un para construir teorías o hipótesis sobre el comportamiento del
análisis nómica o mercado ecológico para asegurar un retorno sistema; ingenieros luego usar esas teorías para hacer
(ganancia) en la solución, predicciones y análisis de rendimiento para predicciones sobre el sistema. Prototyping es otro proceso
satisfacer las características de calidad, oportunidades para la entrada abstracción donde se construye una representación parcial (que
de datos incorrectos o fallos de hardware, y así sucesivamente-se captura aspectos de interés) del producto o sistema. A proto- tipo
pueden estudiar. Los tipos y la cantidad de análisis utilizado en una puede ser una versión inicial del sistema, pero carece de la
solución propuesta son dent depen- del tipo de problema y las funcionalidad completa de la versión final.
necesidades que la solución debe abordar, así como las limitaciones
impuestas en el diseño.
5.1. Modelado
un problema. También pueden ayudar a los ingenieros Deben Un problema importante en el desarrollo de una simulación
conocerse lo que saben y lo que no saben sobre el problema en discreta es el de inicialización. Antes de una simulación puede
cuestión. ejecutarse, se deben proporcionar los valores iniciales de las
Hay tres tipos de modelos: icónicas, la lógica ana- y simbólica. variables de estado. Como el diseñador La simulación puede no
Un modelo icónico es un equivalente aliado visu- pero incompleta saber qué valores iniciales son apropiados para las variables de
representación, por ejemplo de 2 dimensiones o 3 dimensiones, estado, estos valores podrían ser elegidos de manera algo arbitraria.
mapas, globos, o modelos construidos a escala de las estructuras Por ejemplo, podría decidirse que una cola debe ser inicializado tan
tales como puentes o carreteras. Un modelo icónico en realidad se vacío e inactivo. Tal elección de la condición inicial puede tener un
asemeja al modelo de artefacto. Por el contrario, un modelo impacto significativo, pero ognized unrec- sobre el resultado de la
analógico es una representación funcionalmente equivalente pero simulación.
incompleta. Es decir, el modelo se comporta como el artefacto
físico a pesar de que no puede parecerse físicamente. Ejemplos de
modelos analógicos incluyen un avión en miniatura para las 5.3. prototipado
pruebas de túnel de viento o una simulación por ordenador de un
proceso de fabricación. Finalmente, un modelo simbólico es un La construcción de un prototipo de un sistema es otro proceso de
mayor nivel de abstracción, donde el modelo se representa usando abstracción. En este caso, una versión inicial del sistema se
símbolos tales como ecuaciones. El modelo captura los aspectos construye, a menudo mientras que el sistema está siendo
relevantes del proceso o sistema en forma simbólica. Los símbolos diseñado. Esto ayuda a los diseñadores a determinar la viabilidad
pueden ser utilizados para aumentar la comprensión del ingeniero de su diseño. Hay muchos usos para un prototipo, INCLUYENDO
del sistema final. Un ejemplo es una ecuación como F = Ma. Tales la elicitación de requisitos, el diseño y el refinamiento de una
modelos matemáticos se pueden utilizar para describir y predecir interfaz de usuario al sistema, validados dación de los requisitos
las propiedades o comportamiento del sistema final o producto. funcionales, y así sucesivamente. Los objetivos y propósitos para la
construcción del prototipo determinarán su construcción y el nivel
de abstracción usado.
Hay muchas organizaciones normativas como la análisis de la causa raíz (RCA) es un proceso diseñado para
Unión Internacional de Telecomunicaciones (UIT), la investigar e identificar cómo y por qué un evento no deseado ha
Comisión Electrotécnica Internacional (IEC), IEEE, y la sucedido. causas fundamentales son causas subyacentes. El
Organización Internacional de Normalización (ISO) investigador debe intentar identificar las causas subyacentes
reconocidas internacionalmente. Además, hay específicas del evento que ha ocurrido. El objetivo primario
Fundamentos de Ingeniería 15-13
de RCA es para prevenir la recurrencia del evento no deseable. Por lo Un enfoque muy simple que es útil en el control de calidad es el uso de
tanto, cuanto más específico sea el tor investiga- puede ser acerca de por una lista de verificación. Las listas de verificación son una lista de los
qué se produjo un acontecimiento, más fácil será para prevenir la puntos clave en un proceso con las tareas que debe ser completado. A
recurrencia. UN forma común para identificar causa subyacente específica medida que se completa cada tarea, se comprueba fuera de la lista. Si se
(s) es preguntar a una serie de por qué preguntas. produce un problema, entonces a veces la lista de verificación puede
identificar rápidamente las tareas que pueden haber sido omitidos, o sólo
[10 *] Cheney y
Montgomery y Runger 2007
[2 *] nulo y
[6 *] Tockey
[4 *] Voland
[5 *] Fairley
[12 *] Moore
[3 *] Kan
Sommerville 2011
McConnell 2004
[11 *]
[13 *]
[7 *]
Lobur 2006
2002
Kincaid 2007
2006
2009
2003
2004
1. Métodos
empíricos y
c1
técnicas
experimentales
1.1. experimento
diseñado
1.2.
Estudio
observacional
1.3.
Estudio
retrospectivo
c3s6,
c3s9,
2.1. Concepto de
c4s6,
unidad de análisis
c6s2,
(unidades de
c7s1,
muestreo), Muestra y
c7s3,
población
c8s1,
c9s1
2.2. Conceptos de
c11s2,
correlación y
c11s8
regresión
c3s1, c4s4
3. Medición c3s2 c7s5
3.1. Niveles
(Scales) de c3s2 P442 c7s5
- 447
Medición
3.2. Medidas
directos y
derivados
Fundamentos de Ingeniería 15-15
[10 *] Cheney y
Montgomery y Runger 2007
[2 *] nulo y
[6 *] Tockey
[4 *] Voland
[5 *] Fairley
[12 *] Moore
[3 *] Kan
Sommerville 2011
McConnell 2004
[11 *]
[13 *]
[7 *]
Lobur 2006
2002
Kincaid 2007
2006
2009
2003
2004
3.3. Fiabilidad y c3s4,
Validez c3s5
3.4. Fiabilidad
c3s5
evaluar
c1s2,
4. Diseño de
c1s3,
Ingeniería
c1s4
4.1. Diseño de la
Educación en
Ingeniería
4.3. Pasos a
seguir en Diseño
c4
de Ingeniería
5. Modelado, creación de
S3.1
prototipos y simulación c6 c13s3
c2
5.1. Modelado
5.2. Simulación
5.3. prototipado
S3.2
6. Normas c1s2
c9
c5, c9s3,
Análisis Causa s3.4.5
c3s7, c9s4,
Raíz 7. c13
c9s8 c9s5
la realización de
c5 c3
análisis de causa raíz
15-16 Guía SWEBOK® V3.0
LECTURAS
A. Abran, Las métricas de software y software WG Vincenti, Lo que los ingenieros saber y cómo
Metrología. [ 14] Ellos lo saben. [ 15]
Este libro ofrece muy buena información sobre el uso correcto Este libro ofrece una introducción interesante para bases de
de la medida de términos, método de medición y los resultados ingeniería a través de una serie de estudios de casos que muestran
de medición. Proporciona material de soporte fuerte para toda muchos de los conceptos fundacionales que se utiliza en
la sección sobre la medición. aplicaciones de ingeniería del mundo real.
Fundamentos de Ingeniería 15-17
Referencias
[1] ISO / IEC / IEEE 24765: 2010 Sistemas y [9] ABET Ingeniería Acreditación
Ingeniería de Software-Vocabulario, ISO / IEC / IEEE Comisión, “Criterios para la Acreditación de Programas
2010. de Ingeniería, 2012-2013”, ABET, 2011; www.abet.org/uploadedFiles/
Acreditación / Accreditation_Process /
[2 *] DC Montgomery y GC Runger, Accreditation_Documents / Corriente / eac-
Aplicada Estadística y Probabilidad para criterios-2012-2013.pdf .
Ingenieros, 4ª ed., Wiley, 2007.
A-1
A-2 Guía SWEBOK® V3.0
temas dentro de cada KA, y la Lista consolidada rencia Ref-. Las áreas y, por tanto, deben ser incorporados en la
propuesta de reparto de los temas de cada área de
Una Junta de Control de Cambios (CCB) ha estado en vigor conocimiento. Estos temas comunes son la medición, la
durante el desarrollo de esta versión de Han-dle todas las calidad (en gene- ral), y la seguridad.
solicitudes de cambio a esta línea de base procedentes de los
editores KA, que se produce durante el proceso de revisión, o de i) El desglose de los temas debe ser a lo sumo dos o tres
otra manera. Las solicitudes de cambio deben ser aprobadas tanto niveles de profundidad. A pesar de que hay un límite
por el Guía SWEBOK Editores y por el CCB antes de ser superior o inferior se impone sobre el número de temas
implementados. Este CCB está compuesta por miembros de las dentro de cada KA, se espera que un número razonable y
iniciativas enumeradas arriba y actuando bajo la autoridad del manejable de temas que se incluirán en cada KA. También
Software y Sistemas Comité de Ingeniería de la IEEE Computer énfasis debe ser puesto en la selección de los mismos,
Society Profesional activi- ata Junta. más que en su organización en una adecuada jerarquía
temas.
conocimiento que es “GEN-ralmente reconocido”. Véase más puede seleccionar la referencia adecuada de mate- rial de acuerdo con su
abajo para una discusión más detallada de este punto. / sus necesidades. las descripciones de los temas no deben ser
preceptivo.
c) La Guía SWEBOK se pretende por definición ser selectivo material de referencia citado es suficiente para los
en su elección de los temas y material de referencia objetivos de la Guía SWEBOK).
asociado. La lista de material de referencia debe ser » Cada referencia al material de referencia recomendada
claramente vista como una “selección informada y debe ser tan preciso como sea posible mediante la
razonable” y no como una lista definitiva. identificación de cuáles capítulo o sección específica es
relevante.
d) El material de referencia puede ser capítulos de libros, artículos » Una matriz de material de referencia (al nivel de número
en revistas arbitradas, artículos técnicos referenciados confe- de sección) versus temas debe ser proporcionada.
rencia, arbitrado informes técnicos o industriales, o cualquier otro
tipo de reconocido arti- hecho. También se permiten referencias » Una cantidad razonable de material de referencia
a otro KA, subárea, o tema. recomendado debe ser identificado para cada KA.
Las siguientes pautas deben ser utilizados en la
e) El material de referencia debe ser generalmente dispo- capaz y no determinación de cuánto es razonable:
debe ser de naturaleza confidencial.
f) material de referencia debe estar en Inglés.
g) Los criterios y requisitos para el material de referencia yo. Si el material de referencia recomendada
recomendada o la lista de referen- cia consolidada: fueron escritas de manera coheren- que siguió
a la propuesta de reparto de temas y en un
estilo uniforme (por ejemplo, en un nuevo libro
» Colectivamente la lista de referencias debe ser basado en la descripción propuesta KA), un
recomendados promedio Tar conseguir a través de todos KAs
para el número de páginas sería 750. sin
yo. completar: cubre todo el alcance de la Guía embargo, este objetivo no puede ser posible
SWEBOK cuando se selecciona el material de referencia
ii. suficiente: proporcionando suficiente existente debido a las diferencias de estilo y la
información para describir “generalmente superposición y la redundancia entre los
aceptadas” conocimiento materiales de referencia seleccionados.
iii. consistente: no proporcionar los conocimientos
contradictorios ni prácticas conflictivos
iv. creíble: reconocido como proporcionar tratamiento ii. En otras palabras, el objetivo para el número
experto de páginas para la colección completa de las
v actual:. tratar el tema de una manera que referencias recomendado de la Guía
sea acorde con el conocimiento SWEBOK está en el rango de 10.000 a
generalmente aceptado actualmente 15.000 páginas.
VI. sucinta: lo más corto posible (tanto en iii. Otra forma de ver esto es que la cantidad de
número de unidades de referencia y en el material de referencia recomendada sería
número total de páginas) sin fallar otros razonable si consistiera en el material de
objetivos. estudio en este KA para un examen de
licencia de ingeniería de software que
» material de referencia recomendada debe ser identificado pasaría un graduado después de
para cada tema. Cada elemento de referencia recomiendan completar cuatro años de experiencia
especialmente puede cubrir por supuesto múltiples temas. laboral.
Excepcionalmente, un tema puede ser auto-descriptivo y no
cita un artículo de material de referencia (por ejemplo, un
tema que es una definición o una materia competencia de la h) adicional material de referencia puede ser
descripción misma sin ningún incluido por el Editor de KA en una lista “Otras
lecturas”:
A-4 Guía SWEBOK® V3.0
» Estas lecturas adicionales deben estar relacionados con los ¿QUÉ SIGNIFICA “GENERALMENTE RECONOCIDAS
temas de la descomposición en lugar de, por ejemplo, a DE CONOCIMIENTO”?
temas más avanzados.
» La lista debe ser anotado (a menos de 1 párrafo por La Ingeniería de Software de Administración de Conocimiento es un
referencia) de por qué este material de referencia se término inclusivo que describe la suma de conocimientos dentro de
incluyó en la lista de lecturas adicionales. Lecturas la profesión de la ingeniería de software. sin embargo, el Guía
adicionales podrían incluir: nuevas versiones de una SWEBOK busca identificar y describir ese subconjunto del conjunto
referencia existen- tes ya incluidos en las referencias de conocimientos que generalmente se reconoce o, en otras
recomendadas, puntos de vista alternativos sobre una palabras, el cuerpo de la base de conocimientos. Para BET ter
KA, o un trata- miento seminal de un KA. ilustrar lo que “generalmente reconocido” el conocimiento es en
relación con otros tipos de conocimiento, la figura A.1 propone un
esquema de tres categorías de clasificación de conocimiento. El
» Una pauta general a seguir es más 10 o Instituto de Gestión de Proyectos en su Guía para la Dirección de
menos lecturas por KA. Proyectos del Conocimiento
» No hay matriz de los materiales de referencia que
figuran en lecturas adicionales y la ruptura de
temas. define el conocimiento “generalmente reconocido” para la gestión de
proyectos como ser:
i) Los criterios y requisitos con respecto adi- cionales
referencias citadas en el KA Descripción: el subconjunto de la Dirección de Proyectos del
conocimiento generalmente reconocido como buenas
» los Guía SWEBOK No es un documento de prácticas. “Generalmente reconocido” significa el
investigación y su número de lectores será IED Var-. conocimiento y las prácticas descritas son aplicables a la
Por lo tanto, un delicado equilibrio debe mantenerse mayoría de los proyectos, la mayor parte del tiempo, y no
entre la garantía de un alto nivel de legibilidad dentro hay consenso sobre su valor y utilidad. “La buena
del documento, manteniendo su lencia tecnológico práctica” significa que hay acuerdo general en que la
consolidado. material de referencia adicional, por aplicación de estas habilidades, herramientas y técnicas
tanto, sólo debe ser traído por el Editor de KA si es puede mejorar las posibilidades de éxito en una amplia
necesario a la discusión. Ejemplos de ello son la gama de proyectos. “La buena práctica” no significa que
identificación de la fuente de una cita o para citar el conocimiento descrito siempre deben ser aplicadas de
elemento de referencia en apoyo de una lógica detrás manera uniforme a todos los proyectos; la nización y / o
de un argumento en particular e importante. gestión de proyectos orga- equipo es responsable de
determinar lo que es apropiado para cualquier proyecto
dado. [1]
estructura común
KA descripciones deben utilizar la siguiente estructura: “Generalmente aceptados” conocimiento también se podría ver
como el conocimiento que debe incluirse en el material de estudio
• acrónimos de un examen de licencia de software de ingeniería (en los
• Introducción EE.UU.) que un graduado tomaría después de completar cuatro
• Desglose de los temas de la KA (incluyendo una figura que años de experiencia laboral. Estas dos definiciones deben ser
describe la descomposición) vistos como complementarios. También se espera que los
• Matriz de Temas vs. Material de Referencia editores KA a ser un poco hacia el futuro en su interpretación por
• Lista de lecturas recomendadas tak- ing en cuenta no sólo lo que se “reconoce en general”, pero
• referencias hoy y lo que esperan será “generalmente reconocido” en un plazo
de 3 a 5 años .
Apéndice A A-5
Prácticas especializado que Generalmente reconocido y comités de normas de sistemas de ingeniería. También se ha
se utiliza sólo para ciertos tipos de Establecidas ticas ticas tradicionales designado como norma fundamental por el Comité de software y
recomendadas por muchos sistema de ingeniería Normaliza- ción (S2ESC) de la IEEE. A pesar
organizaciones de que no tenemos la intención de que el Guía de la Ingeniería de
prácticas innovadoras probados y utilizados 12207-conformant, este estándar sigue siendo una entrada de
solamente por algunas organiza- ciones y tecla a la Guía SWEBOK, y especial se tendrá cuidado en todo el Guía
probadas en
Esta norma se considera el estándar clave en cuanto a la 5. ISO / IEC / IEEE 24765: 2010 Sistemas y
definición de procesos de ciclo de vida y ha sido adoptado por los Ingeniería de Software-Vocabulario, ISO / IEC / IEEE,
dos principales organismos de normalización en la ingeniería de 2010; www.computer.org/ sevocab . [6]
software: ISO / IEC JTC 1 / SC7 y la Sociedad IEEE Computer
Software
A-6 Guía SWEBOK® V3.0
La jerarquía de referencias para la terminología es la bibliografía. Creemos que este enfoque permite al lector a
Diccionario de la Real Academia Webster ( 11 ed.) [7], IEEE / ISO ser mejor expuesta a la fuente y el alcance de una norma.
/ IEC 24765 [6], y el nuevo pro- puesto definiciones si es
necesario. Las figuras y tablas que se acompañan de texto deben
explicarse por sí mismo o tener suficiente texto relacionado.
6. “Certificación y Capacitación para Profesionales de Esto garantizaría que el lector sabe lo que las figuras y tablas
software,” IEEE Computer Society, 2013; www.computer.org/certification
significan. Para asegurarse de que alguna información en el
. [8]
Guía SWEBOK no se convierta rápidamente lete obso- y debido a su
Información sobre la certificación y productos de desarrollo carácter genérico, por favor, evitar directamente las herramientas y los
profesional asociados desarrollados y ofrecidos por la IEEE productos de denominación. En su lugar, tratar de nombrar sus funciones.
• Todas las citas de material de referencia han de ser producido DIVULGACIÓN DE AUTOR
utilizando EndNote Web como se indica en las instrucciones
proporcionadas a los editores KA en este sentido. Todos los derechos de propiedad intelectual relacionados con el Guía
SWEBOK permanecerá con la IEEE. Editores KA deben firmar un
formulario de autorización de derechos de autor. También se entiende
OTROS directrices detalladas que la Guía SWEBOK
seguirá siendo disponible de forma gratuita en el dominio público
Al hacer referencia a la Guía de la Ingeniería de Software de en al menos un formato, proporcionado por la IEEE Computer
Administración de Conocimiento, utilizar el título “ Guía SWEBOK. ” Society través de la web tecnolo- gía o por otros medios. Para
más información, ver www.computer.org/ copyright.htm .
A los efectos de simplicidad, evitar las notas al pie y tratar de incluir su
simple inserción
Apéndice A A-7
Referencias
[1] Instituto de Gestión de Proyectos, Una guía para la [5] Grupo de Trabajo Conjunto sobre Computación planes de estudio,
Guía de los fundamentos de gestión de proyectos IEEE Computer Society y la Association for Computing
(PMBOK (R) Guía), 5ª ed., Project Management Machinery, Ingeniería de Software 2004: Directrices
Institute, 2013. Curriculares para Pregrado Programas de Grado en
Ingeniería de Software, 2004; http: // sites.
[2] Software y Sistemas Integrados computer.org/ccse/SE2004Volume.pdf .
Plan de estudios de ingeniería (ISSEC) Proyecto,
Graduado de Ingeniería de Software 2009
(GSwE2009): Directrices Curriculares para programas [6] ISO / IEC / IEEE 24765: 2010 Sistemas y
de postgrado en Ingeniería de Software, Stevens Ingeniería de Software-Vocabulario, ISO / IEC / IEEE
Institute of Technology, 2009; www.gswe2009.org . 2010.
Algunos podrían decir que el suministro de normas niería de título de la norma o simplemente utilizar su número. En la
software niería supera con creces la demanda. Rara vez se obtención de un nivel de interés, el lector debe basarse en el
escucha una conferencia sobre el tema sin sufrir alguna broma número, no el título, dada en este artículo. Por razones de
aparentemente obligatoria que hay demasiados de ellos. Sin coherencia, el artículo va a utilizar la convención del IEEE
embargo, la existencia de normas tiene una muy grande para la capitalización de títulos sustantivos, pronombres,
(posiblemente infinita) de espacio comercial de alternativas y adjetivos, verbos, adverbios y primera y última palabra tiene
reduce ese espacio para un conjunto más pequeño de opciones, una letra, a pesar de capital inicial el hecho de que IEEE e
una gran ventaja para los usuarios. Sin embargo, todavía puede ser ISO / IEC uso diferente convenciones.
difícil elegir entre docenas de alternativas, por lo que una
orientación complementaria, como este apéndice, puede ser útil.
Una lista resumida de las normas citadas en este apéndice aparece • Debido a que estas normas están siendo aliado continua-
al final. Para reducir el tedio en la lectura, algunas simplificaciones revisarse para tener en cuenta las nuevas tecnolo- gías y
y compendios se hacen en este apéndice: patrones de uso, este artículo será obsoleta antes de su
publicación. Por lo tanto, de vez en cuando discuten las
normas que aún no han sido publicados, si existe la
posibilidad de asumir una importancia significativa.
• ISO / IEC JTC 1 / SC 7 mantiene casi doscientos normas
sobre la materia. IEEE mantiene unos cincuenta años. Las • marcas explícitas se omiten. Baste decir que el IEEE
dos organizaciones están en el décimo año de un programa coloca una marca en todas sus denominaciones
sistemático para coordinar e integrar sus colecciones. En normalizadores.
general, este artículo se centrará en los Standards que son
reconocidos por ambas organiza- ciones, teniendo esta Hay algunos otros convenios de interés:
condición como prueba de que se ha obtenido un amplio
consenso. Otras normas serán mencionados brevemente. • En tanto IEEE e ISO / IEC, las normas para
sistemas ingeniería son mantenidos por el mismo comité
que para software Ingenieria. Muchas de las normas se
• Normas tienden a tener títulos largos, taxonómicas. Si hubiera aplican a ambos. Así, en lugar de hacer distinciones
un único estándar para la construcción de un automóvil, el sutiles, este artículo va a tratar con ambos.
uno para su Camry probablemente se titula algo así como
“vehículo de combustión interna, de cuatro ruedas, pasajeros, • Por otro lado, tanto S2ESC y SC 7 (ver más abajo para
sedán.” Además, las organizaciones de estándares modernos una descripción de estas organiza- ciones) son
proporcionan a sus estándares de bases de datos . Como responsables de las normas que no califican como
cualquier base de datos, estos contienen a veces errores, “ingeniería”. En los EE.UU. y muchos otros países, los
sobre todo para los títulos. Así que este artículo menudo servicios de un ingeniero con licencia son requiere cuando
parafraseará la un producto puede afectar a la seguridad pública, la salud,
B-1
B-2 Guía SWEBOK® V3.0
y el bienestar en lugar de afectar únicamente el bolsillo 7) es el responsable de software y siste- mas de ingeniería. SC 7,
del cliente. En este apéndice se respetará esa y sus grupos de trabajo, se reúne dos veces al año, atrayendo
distinción e ignorar Standards que parecen ser delegaciones represen- tando los organismos nacionales de
meramente económica en consecuencia. normalización de los países partici- pantes. Cada país sigue su
propio procedi- mientos para determinar las posiciones nacionales
• documentación del usuario se supone que es de- sarrollados de y cada nación tiene la responsabilidad de determinar si existe una
forma similar al software. Por ejemplo, un estándar en relación norma ISO / IEC debería ser adoptado como norma nacional. SC
con el diseño de la documentación del usuario se describe en 7 crea tres tipos de documentos:
el software de diseño KA.
estándar desarrollado en la norma ISO / IEC; La clave para recordar es que sólo la primera categoría
cuenta como una norma de consenso. El lector puede
» IEEE Std. 1220: 2005 (también conocido como ISO / IEC reconocer fácilmente a los demás por el TS sufijo o TR
26702: 2007), una “vía rápida” por la norma ISO / IEC de un antepone al número del documento.
estándar desarrollado en el estándar IEEE.
En cada uno de estos casos, las normas son IEEE SOFTWARE Y SISTEMAS DE
sustancialmente idénticos en las dos organiza- ciones, INGENIERÍA Comité de Normas (S2ESC)
que sólo difieren en la materia frente y, en ocasiones,
agregó material informativo.
IEEE es la mayor organización mundial de profesionales gías Nical,
con cerca de 400.000 miembros en más de 160 países. La
Se proporciona una lista de resumen de todos los Standards publicación de normas se lleva a cabo por la Asociación de
mencionados al final de este apéndice. Estándares IEEE (IEEE-SA), pero los comités que redactan y
patrocinan las normas se encuentran en las distintas sociedades del
ISO / IEC JTC 1 / SC 7, software y sistemas IEEE; S2ESC es una parte de la Sociedad IEEE orde- nador. IEEE es
INGENIERÍA un fabricante de normas global porque sus estándares se utilizan en
muchos países dife- rentes. A pesar de su La membresía
ISO / IEC JTC 1 / SC 7 es la principal fuente de las normas internacional (alrededor del 50% fuera de Estados Unidos), sin
internacionales sobre el software e ingeniería de sistemas. embargo, el IEEE-SA somete habitualmente a sus estándares de la
Su nombre está formado taxonómicamente. Comité Técnico American National Standards Institute (ANSI) para Endorsement
Conjunto 1 (JTC 1) es un niño de la Organización como “American National Standards.” Algunos se desarrollan las
Internacional para la estandarización (ISO) y la Comisión normas S2ESC dentro S2ESC, algunos se elabora conjuntamente
Electrotécnica Internacional (IEC); tiene el alcance de la con el SC 7, y algunos son adoptados después de ser desarrollado
“tecnología de informa- ción” y subdivida su trabajo entre por Carolina del Sur 7.
varios subcomités; Subcomité 7 (SC
Apéndice B B-3
IEEE-SA publica tres tipos de “normas”: para cualquiera de las categorías del IEEE. En la norma ISO / IEC, se trata
• Normas, con una preponderancia del verbo “deberá” inadecuado para ser un estándar. El IEEE 2004
Guía SWEBOK fue adoptado por la norma ISO / IEC con- cabo el
• Métodos recomendados, con una preponderancia del cambio. Presumiblemente, ISO / IEC adoptará Ver- sion 3 de la Guía
verbo “debería” SWEBOK.
• Guías, con una preponderancia de la palabra “podrá”.
estándares de código activos para cada definición de manera que el uso Se define la construcción de un buen requisito, proporciona
del término se puede explorar más. atributos y características de los requisitos, y discute la aplicación
iterativa y recursiva de los procesos de requisitos pasantes a cabo
el ciclo de vida. ISO / IEC / IEEE 29148: 2011 proporciona
El vocabulario es descriptiva, en lugar de prescriptivo; que orientación adicional en la aplicación de los procesos de requisitos
recoge todas las definiciones de todas las normas pertinentes, de ingeniería y gestión de las actividades de los requisitos
así como algunas otras fuentes, en lugar de elegir entre las relacionados en la norma ISO / IEC 12207: 2008 e ISO / IEC
definiciones que compiten entre sí. 15288: 2008. Los elementos de información aplicables a la
ingeniería de requisitos y su contenido están definidos. El contenido
El contenido de la norma 24765 es de libre acceso en línea de la norma ISO / IEC / IEEE 29148: 2011 puede ser añadido al
en www.computer.org/sevocab . Dos estándares, 12207 y conjunto existente de los procesos del ciclo de vida relacionada
15288, proporcionan un conjunto completo de procesos de todo REQUISITOS definidos por la norma ISO / IEC 12207: 2008 o ISO /
el ciclo de vida de un sistema o de un producto de software. IEC 15288: 2008, o puede ser utilizado de forma independiente.
Los dos Standards están alineadas para su uso simultáneo en
un solo proyecto o en una sola organización. Se mencionan
aquí porque se utilizan a menudo como un marco para explicar
o localizar el papel de otras normas en el ciclo de vida.
IEEE Std. 15288-2008 (también conocido como ISO / IEC 15288: 2008)
estándar para los sistemas y S oftware Ingeniería- Sistema de Vida los ISO / IEC 14143 [seis partes] Medición-funcional
procesos de ciclo Tecnología de la Información-Software tamaño
ISO / IEC 14143 describe FSM (medida del tamaño funcional). Los
REQUISITOS DE SOFTWARE conceptos de medición de tamaño funcional (FSM) se han diseñado
para superar las limitaciones de los métodos anteriores de software
La norma principal para la ingeniería de requisitos de software y de dimensionamiento desplazando el foco lejos de medir cómo el
sistemas es una nueva que sustituye varios estándares IEEE software se implementa para medir el tamaño en términos de las
existentes. Se pro- porciona una visión amplia de la ingeniería de funciones requeridas por el usuario.
requisitos a través de todo el ciclo de vida.
sobre todo destinados a ser utilizados en el software con un componente DISEÑO DE SOFTWARE
en tiempo real.
grupos de interés. Esta norma está destinada para su uso en norma es aplicable a la documentación del usuario para los sistemas de
situaciones de cálculo en la que una descripción explícita de diseño hardware incluyendo también.
Codificación no es la única manera de crear un producto de software. IEEE Std. 1008-1987 estándar para el software de pruebas unitarias
reutilización
IEEE e ISO / IEC JTC 1 / SC 7 están cooperando en un proyecto En él se especifica procesos para su uso en pruebas y revisión
para desarrollar una única norma global que cubre todos los de la documentación del usuario. No se limita- das a la fase de
aspectos de las pruebas. Uno puede esperar la publicación de la prueba y revisión del ciclo de vida, sino que incluye actividades
norma de cuatro partes para el año 2014. Las porciones del durante los procesos de gestión de información y de gestión de la
contenido siendo controversial. Una cuestión es si taxonómico documentación.
“métodos estáticos” -tales como la inspección, revisión y análisis de
estática-deben encontrarse dentro del alcance de la “ing Ensayos” o
deben ser distinguido como “verificación y validación.” A pesar de
que la resolución de la cuestión es, probablemente, de poca Se mencionan dos normas aquí porque algunas fuentes
importancia para los usuarios de la norma, asume una gran consideran la verificación y validación de software que se incluyen
importancia a los estándares escritores que deben gestionar un en las pruebas taxonómicamente.
conjunto integrado de interoperar normas.
de Sistemas - Pruebas de software IEEE Std. 1044-2009 norma para la clasificación para el software de
anomalías
El propósito de la norma ISO / IEC 29119 Software Testing es definir un Ver la calidad del software KA
estándar internacionalmente aceptado para las pruebas de software que
puede ser utilizado por cualquier organiza- ción al realizar cualquier tipo
de pruebas de software. MANTENIMIENTO DEL SOFTWARE
y colaboradores. estándar para el software del ciclo de vida del software de ingeniería y
procesos de mantenimiento
ISO / IEC 14764: 2006 proporciona el marco dentro del cual en la ISO / IEC / IEEE Std. 24765 y los requisitos de elemento de
se pueden ejecutar los planes de mantenimiento de software información de IEEE Std. 15939.
genéricas y específicas, evaluados y adaptados al ámbito
mantenimiento y la magnitud de los productos de software dadas.
Proporciona el marco, la terminología precisa, y procesos para ISO / IEC JTC 1 / SC 7 aún no ha determinado qué medidas
permitir la aplicación coherente de gía tecnolo- (herramientas, se deben tomar con respecto a la nueva norma IEEE Std. 828.
técnicas y métodos) para mantenimiento de software. Hay cuestiones relativas a la medida de la compatibilidad con la
norma ISO / IEC / IEEE 12207 y otras normas en la suite SC 7.
Cabe señalar, sin embargo, que SC 7 no tiene un estándar de
No se refiere a la operación del software y las funciones competencia.
operativas, por ejemplo, copia de seguridad, recuperación y
administración del sistema, que normalmente se lleva a cabo por
aquellos que operan el software. GESTIÓN DE INGENIERÍA DE
SOFTWARE
ISO / IEC 14764: 2006 está dirigido principalmente a los encargados
del mantenimiento de software y, además, para los responsables del La mayoría de los lectores interpretarán la frase “la gestión de la
desarrollo y Ance assur- calidad. También puede ser utilizado por los ingeniería de software” para referirse a la gestión de una proyecto que
adquirentes y usuarios de sistemas que contienen software, que pueden se refiere a software. Hay al menos dos posibles extensiones a este
proporcionar insumos para el plan de mantenimiento. eralization ge-, sin embargo. Algunas de las actividades de software
se gestionan de acuerdo con un acuerdo de nivel de servicio (SLA).
SLA no cumplen con los criterios de “pro- yecto” de acuerdo con
algunas definiciones. También, se ha convertido en un acuerdo
Software Configuration Management general de que algunos gestión de software debe ocurrir en la
organización a un nivel por encima del proyecto, por lo que todos
los proyectos se pueden beneficiar de una inversión común. Un
Hay un estándar para la gestión de la configuración. ejemplo comúnmente citado es la provisión de cesos pro de
software y herramientas por la organización. gestión de proyectos
de software puede ser considerado como una especialización de
“gestión de proyectos” - a menudo considerado como una disciplina
IEEE Std. 828-2012 Norma para la Gestión de la Configuración distinta. El Instituto de Gestión de proyec- etc. Guía para la Dirección
de Sistemas e Ingeniería de Software de Proyectos (PMBOK ®
el tiempo y existe un consenso sobre su valor y utilidad. “La buena Particularmente en aplicaciones de alta tecnología y proyectos
práctica” significa que hay acuerdo general en que la aplicación de de graves consecuencias, la gestión de riesgos es un aspecto
estas habilidades, herramientas y técnicas puede mejorar las importante de las responsabilidades de gestión en general pro-
posibilidades de éxito en una amplia gama de proyectos. La buena yecto. Esta norma se ocupa de ese tema.
práctica no significa que el conocimiento siempre debe aplicarse de
manera uniforme a todos los proyectos descritos; ción del equipo y /
o gestión de proyectos organiza- se respon- sable para determinar
lo que es apropiado para cualquier proyecto dado. los Guía del IEEE Std. 16085-2006 (también conocido como ISO / IEC 16085: 2006) Ciclo
PMBOK® También proporciona y promueve un vocabulario común de vida estándar para los sistemas y software de Gestión de Procesos de
si los resultados del análisis son válidos. El proceso de medición es para producir o gestionar la documentación, y se aplica tanto a la
flexible, tailorable, y adaptable a las necesidades de diferentes documentación impresa y la documentación en pantalla. Gran parte de su
ISO / IEC 15939: 2007 identifica un proceso que es compatible con la que incluyen utensilios de hardware así como software.
seleccionar, aplicar y mejorar la medición dentro de un proyecto global o la A veces, el software o los componentes del sistema se adquieren en
estructura de medición zational orga-. También proporciona definiciones lugar de desarrollarse.
para los términos de medición utilizados comúnmente dentro de las
proyectos de software a menudo requieren el desa- rrollo de la Se describe un conjunto de prácticas útiles de calidad que pueden ser
documentación del usuario. Gestión del proyecto, por lo tanto, seleccionados y aplicados durante uno o más pasos de un proceso de
incluye la gestión del esfuerzo de documentación. adquisición de software. Esta práctica recomendada se puede aplicar al
ISO / IEC / IEEE 26511: 2012 Sistemas y de Ingeniería de plataforma y el software desarrollado completamente.
ISO / IEC / IEEE 26511: 2012 especifica los procedimientos para la A veces, la documentación del usuario se adquiere con
gestión de la documentación de usuario en todo el ciclo de vida del independencia de que el software se describe fue adquirida.
software. Se aplica a las personas u organizaciones que producen suites Los siguientes Norma se ocupe de ese tema.
de documentación, a los que realizan un único proyecto de
documentación, y la documentación producida internamente, así como a
la documentación contratada para las organizaciones de servicios
externos. Proporciona una visión general de los procesos de ISO / IEC / IEEE 26512: 2011 Sistemas y de Ingeniería de
documentación ware y gestión de la información blandos, y también Software-Requisitos para los adquirentes y proveedores de
incluyendo el establecimiento de procedimientos y especificaciones, el usuarios de la norma ISO / IEC / IEEE 15288: 2008 o ISO / IEC / IEEE
establecimiento de infraestructura y construcción de un equipo. Incluye 12207: 2008 para la adquisición o la documentación de usuario del
ejemplos de funciones necesarias en un equipo de documentación del software de alimentación como parte de los procesos del ciclo de vida del
usuario. Se ocupa de las mediciones y estimaciones necesarias para el software. Define el proceso de documentación desde el punto de vista de
control de la gestión y el uso de procesos tales como la gestión del la entidad adquirente y el punto de vista del proveedor. ISO / IEC / IEEE
cambio, el horario y el control de costes, gestión de recursos y gestión 26512: 2011 cubre los requisitos de los elementos de información
de la calidad y el proceso de mejora ción de apoyo. Incluye requisitos utilizados en la adquisición de productos de documentación de usuario: el
para documentos clave producidos para la gestión de la documentación plan de adquisición, especificación documento, Ment por el estado de
del usuario, incluyendo los planes de documentación y los planes de trabajo, solicitud de propuestas, y propuesta. Proporciona una visión
gestión de documentación. ISO / IEC / IEEE 26511: 2012 es general de los procesos de documentación de usuario del software y la
independiente de las herramientas de software que pueden utilizarse gestión de la información que pueden requerir la adquisición y suministro
documentación del usuario de software. Estos requisitos son esenciales mejora de las prácticas. Por ejemplo, se podría pro- poner una práctica
para la especificación de documentos del usuario y declaración de mejorada para el software de análisis de los requisitos. Un tratamiento
trabajo. Incluye requisitos para salidas de documentos primarios del ingenuo podría relacionar la descripción a una etapa temprana del
proceso de adquisición y suministro: la solicitud de propuesta y la modelo del ciclo de vida. Un enfoque superior es para describir la
propuesta de productos y servicios de documentación del usuario. práctica en el contexto de un proceso que puede ser aplicado en
También se analiza el uso de un plan de gestión de la documentación y cualquier etapa del ciclo de vida. El proceso de análisis de requisitos,
la de un plan de documento a medida que surjan en los procesos de por ejemplo, es preciso proceder a la etapa de desarrollo, para el
adquisición y suministro. ISO / IEC / IEEE 26512: 2011 es independiente mantenimiento, y con frecuencia para el retiro, por lo que una mejora
de las herramientas de software que pueden ser utilizados para producir de la práctica se describe en términos del proceso de análisis de
la documentación y se aplica tanto a la documentación impresa y la requisitos se puede aplicar a cualquiera de estas etapas. Las dos
documentación en pantalla. Gran parte de su orientación es aplicable a normas principales son la norma ISO / IEC / IEEE
la documentación del usuario para los sistemas que incluyen hardware,
así como el software.
12207, Los procesos de software de ciclo de vida, e ISO / IEC / IEEE
15288, Procesos del ciclo de vida del sistema.
Las dos normas tienen historias distintas, pero ambos fueron
revisados en 2008 para alinear sus pro- cesos, lo que permite su uso
Se mencionan las siguientes dos normas aquí, porque interoperable a través de un amplio espectro de proyectos que van
proporcionan información utilizada en la toma de decisiones ción desde un componente de software autónomo a un sistema con
manage-. contenido de software ligible neg. Ambos están siendo revisados de
nuevo con la intención de que contiene una lista idéntica de los
procesos, pero con disposiciones especializados para las respectivas
IEEE Std. 1028-2008 estándar para las revisiones de software y auditorías disciplinas.
IEEE Std. 1061-1998 Estándar de Calidad de Software Metodología IEEE Std. 12207-2008 (también conocido como ISO / IEC 12207: 2008)
SOFTWARE INGENIERÍA DE PROCESOS ISO / IEC 12207: 2008 proporciona también un procedimiento que
puede ser empleado para definir, controlar y mejorar los procesos del
procesos de software e ingeniería de sistemas son ciclo de vida del software. Los procesos, actividades y tareas de la
fundamentales para la normalización de esas dos disciplinas, norma ISO / IEC 12207: 2008, ya sea solo o en combinación con la
no sólo porque muchos están intere- sadas en la mejora de norma ISO / IEC 15288-también puede ser aplicado durante la
procesos, sino también porque los procesos son eficaces para adquisición de un sistema que contiene el software.
la descripción de
Apéndice B B-13
IEEE Std. 15288-2008 (también conocido como ISO / IEC 15288: 2008) elementos de información (productos de información, docu- mentación)
estándar para los sistemas y software Ingeniería- vida del sistema los para ser desarrollados y revisados en los sistemas y los ciclos de vida
procesos de ciclo del software y procesos de gestión de servicios. Se especifica el
propósito y el contenido de todos los sistemas identificados y los
ISO / IEC 15288: 2008 establece un marco común para describir el registros de datos de software y elementos de información de ciclo de
ciclo de vida de los siste- mas creados por los seres humanos. Se vida, así como los registros y elementos de información para la gestión
define un conjunto de procesos y terminología asociada. Estos de servicios de tecnología de la información. El contenido elemento de
procesos se pueden aplicar en cualquier nivel en la jerarquía de la información se definen de acuerdo con los tipos genéricos de
estructura de un sistema. conjuntos seleccionados de estos documentos (descripción, plan de, helado Pol, el procedimiento,
procesos se pueden aplicar durante todo el ciclo de vida de la informe, solicitud, y en las especificaciones) y el propósito específico del
gestión y la realización de las etapas del ciclo de vida de un documento. Para simplificar la referencia, cada elemento de información
sistema. Esta es plished acompa- mediante la participación de se describe como si se publicó como documento separado. Sin
todas las partes interesadas, con el objetivo último de lograr la embargo, los elementos de información pueden ser inéditos pero está
satisfacción al cliente central. disponible en un repositorio para refe- rencia, dividido en documentos
separados o volúme- nes, o en combinación con otros elementos de
información en un solo documento. ISO / IEC / IEEE 15289: 2011 se
ISO / IEC 15288: 2008 también proporciona procesos que apoyan la basa en los procesos del ciclo de vida que se especifican en la norma
definición, el control, y la mejora de los procesos del ciclo de vida ISO / IEC 12207: 2008 (IEEE Std 12207-2008.) E ISO / IEC 15288:
utilizadas dentro de una organización o de un proyecto. Las 2008 (IEEE Std 15288-.
organizaciones y los proyectos pueden utilizar estos procesos de ciclo
de vida en que la adquisición y el suministro de sistemas.
ISO / IEC 15288: 2008 se refiere a los sistemas que son hechas por el 2008), y la gestión de servicios de procesos especificados en la
hombre y pueden ser configurados con uno o más de los siguientes: norma ISO / IEC 20000-1: 2005 e ISO / IEC 20000-2: 2005.
hardware, software, datos, los humanos, los procesos (por ejemplo, los
entidades de rally que ocurre natu-. Cuando un elemento del sistema es el Las siguientes dos guías proporcionan información
software, los procesos del ciclo de vida del software documentado en la complementaria útil en la aplicación de 12207 y 15288.
Norma ISO / IEC 12207: 2008 se pueden utilizar para poner en práctica
ISO / IEC 15288: 2008 e ISO / IEC 12207: 2008 se 24748-2: 2011 Sistemas y de Ingeniería de Software de Gestión de
armonizan para su uso simultáneo en un solo proyecto o en una Vida-Parte 2 Ciclo: Guía para la aplicación de la norma ISO / IEC 15288
Estas dos normas especifican que los procesos pueden producir ISO / IEC TR 24748-2 es una guía para la apli- cación de la norma ISO /
elementos de información, pero no pre- escriba su contenido o IEC 15288: 2008. Aborda sis- tema, ciclo de vida, proceso, organización,
formato. El siguiente estándar proporciona ayuda con eso. proyecto, y los conceptos de adaptación, principalmente a través de la
referencia a la norma ISO / IEC TR 24748-1 e ISO / IEC 15288: 2008. A
continuación, proporciona orientación sobre la aplicación de la norma ISO
/ IEC 15288: 2008, de los aspectos de la es- trategia, la planificación, la
ISO / IEC / IEEE 15289: 2011 Sistemas y de Ingeniería de aplicación en las organizaciones, y la aplicación de proyectos.
Software-contenido del Ciclo de Vida de Productos de Información
(Documentación)
ISO / IEC / IEEE 15289: 2011 proporciona los requisitos para la IEEE Std. 24.748,3-2012 Guía de implantación de la norma ISO /
identificación y planificación de la específica IEC TR 24748-3: 2011 Sistemas y Software
B-14 Guía SWEBOK® V3.0
Ingeniería-Life Management-Parte 3 Ciclo: Guía para la aplicación guías de aplicación actualizados para los estándares internacionales.
de la norma ISO / IEC 12207 (procesos del ciclo de vida del ISO / IEC TR 24748-1 es el resultado de la etapa de alineación de la
software) armonización de la norma ISO / IEC 12207 y ISO / IEC 15288.
ISO / IEC TR 24748-3 es una guía para la apli- cación de la norma ISO /
IEC 12207: 2008. Aborda sis- tema, ciclo de vida, proceso, organización,
proyecto, y los conceptos de adaptación, principalmente a través de la La siguiente norma amplía las disposiciones de la norma ISO / IEC /
referencia a la norma ISO / IEC TR 24748-1 e ISO / IEC 12207: 2008. Se IEEE 12207 para hacer frente a la reutilización del software sistemática.
ciclo
Las normas 12207 y 15288 proporcionan cesos pro que cubren el ciclo Un marco común para la ampliación de los procesos del ciclo de
de vida, pero que no proporcionan un modelo estándar de ciclo de vida vida del sistema y software de IEEE Std. 12207: 2008 para incluir
(cascada, la entrega incrementales, prototipo impulsado, etc). La selección se proporciona la práctica sistemática de la reutilización. Los
de un modelo de ciclo de vida apropiado para un proyecto es una de las procesos, actividades y tareas que deben aplicarse durante cada
principales preocupaciones de la norma ISO / IEC 24748-1. proceso de ciclo de vida para permitir a un sistema y / o producto
para ser construido a partir de los activos reutilizables se
especifican. Los procesos, actividades y tareas que permitan la
identificación, construcción, mantenimiento y gestión de los bienes
IEEE Std. 24.748,1-2011 Guía de implantación de la norma ISO / IEC suministrados también se especifican.
TR 24748-1: 2010 Sistemas y de Ingeniería de Software de
Gestión-Life-Cycle Parte 1: Guía para la Gestión del Ciclo de Vida
ISO / IEC TR 24748-1 proporciona información sobre los conceptos de IEEE Std. 1220 ha sido ampliamente aplicado como un proceso de
ciclo de vida y las descripciones de las poses PUR y los resultados de las ingeniería de sistemas y fue adoptado por la norma ISO / IEC 26702.
etapas del ciclo de vida representativos. También ilustra el uso de un con el número Desafortunadamente, la norma no es totalmente
modelo de ciclo de vida para los sistemas en el contexto de la norma ISO compatible con la norma ISO / IEC / IEEE 15288 y está siendo
/ IEC 15288 y proporciona una ilustración correspondiente de la utilización revisada para resolver ese problema. El resultado será publicado
de un modelo de ciclo de vida para el software en el contexto de la norma como ISO / IEC / IEEE 24748-4.
ISO / IEC 12207. ISO / IEC TR 24748- 1 proporciona, además, una
discusión detallada y asesoramiento sobre la adaptación de un modelo de
ciclo de vida para su uso en un proyecto específico y entorno de la
organización. Se proporciona orientación adicional sobre el ciclo de vida IEEE Std. 1220-2005 (también conocido como ISO / IEC 26702: 2007)
modelo de uso de los ámbitos, disciplinas y especialidades. ISO / IEC TR estándar para la aplicación y gestión del proceso de Ingeniería de
actuales de ISO / IEC 12207 y ISO / IEC 15288, así como consejos sobre
la transición de antes de las versiones actuales y sobre el uso de sus ISO / IEC 26702 define las tareas interdisciplinares que se requieren
guías de aplicación. La dis- cusión y asesoramiento están destinadas a a lo largo del ciclo de vida de un sistema para transformar las
proporcionar un modelo de referen- cia para los modelos de ciclo de vida, necesidades del cliente, requisitos y restricciones en una solución de
facilitar el uso de la versión actualizada de la norma ISO / IEC 15288 e sistema. En adi- ción, que especifica los requisitos para el proceso de
ISO / IEC 12207, y proporcionar un marco para el desarrollo de ingeniería de sistemas y su aplicación pasantes a cabo el ciclo de
vida del producto. ISO / IEC 26702: 2007 se centra en las actividades
de ingeniería necesarias para guiar el desarrollo de productos,
garantizando al mismo tiempo
Apéndice B B-15
que el producto está correctamente diseñado para que sea A VSE podría obtener una ISO / IEC 29110 certifica- ción. El
asequible para producir, poseer, operar, mantener y eventualmente conjunto de informes técnicos está disponible sin costo alguno en el
gastar sin riesgos indebidos para la salud o el medio ambiente. sitio web de la ISO. Muchos ISO 29110 documentos están
disponibles en Inglés, Español, tugueses Por-, japonés y francés.
IEEE Std. 24774-2012 Guía de implantación de la norma ISO / IEC TR ISO / IEC TR 29110-5-1-2: 2011 es aplicable a entidades muy
24474: 2010 Sistemas y Software Engineering-Life Cycle pequeñas (MPE). Un VSE se define como una empresa,
Management-Directrices para la Descripción del Proceso organización, departamento, o pro- yecto que tiene hasta 25
personas. Un conjunto de normas y guías se ha desarrollado de
acuerdo con un conjunto de características y necesidades MPE. Las
Un número cada vez mayor de, y las normas internacionales, guías se basan en subconjuntos de estándares apropiados ele-
nacionales industria de procesos mode- los describa. Estos modelos mentos, conocidos como perfiles VSE. El propósito de un perfil VSE
son desarrollados para una serie de propósitos, incluyendo la es definir un subconjunto de las normas internacionales ISO / IEC
implementación de procesos y evaluación. Los términos y las pertinentes al contexto las empresas muy pequeñas.
descripciones utilizadas en tales modelos varían en formato, contenido
y nivel de prescripción. ISO / IEC TR 24774: 2010 PRESION ents
directrices para los elementos utilizados más fre- cuentemente en la ISO / IEC TR 29110-5-1-2: 2011 proporciona la guía de
descripción de un proceso: el título, PUR pose, resultados, actividades, gestión e ingeniería para el perfil VSE base aplicable a
tareas y elemento de información. Mientras que el propósito primario de empresas muy pequeñas que no desarrollan software crítico.
ISO / IEC TR 24774: 2010 es fomentar la coherencia en modelos de El grupo de perfil genérico no implica ningún dominio de
referencia proceso Dard Standards, las directrices que proporciona se aplicación específica.
pueden aplicar a cualquier modelo de proceso desarrollado para
cualquier propósito.
usando las guías de gestión y de ingeniería ISO 29110. ISO / IEC del software del proyecto
ISO / IEC 29110 no pretende excluir el uso de diferentes ciclos de ciclo de vida del proyecto de software (SPLCP). Está dirigida
vida se acerca, como la cascada, iterativo e incremental, evolutivo, o principalmente a los del arquitecto proceso para un proyecto de software
ágil. determinado.
B-16 Guía SWEBOK® V3.0
Todas las normas descritas hasta ahora en esta sec- ción • es aplicable en todos los dominios de aplicación y tamaños
proporcionar una base para definiendo procesos. Algunos usuarios de organización; y
están interesados en evaluar y la mejora de sus procesos después de • puede proporcionar un punto de referencia objetiva entre las
la implementación. La serie 15504 prevé la evaluación del proceso; organizaciones.
que actualmente es de ser revisado y pasa a ser 330xx.
El conjunto mínimo de requisitos definidos en la norma ISO / IEC
15504-2: 2003 asegura que los resultados de evaluación son objetivo,
imparcial, consistente, repetible capaz, y representante de los procesos
ISO / IEC 15504 [diez partes] Tecnología-Proceso de Información evaluados. Resultados de las evaluaciones de proceso conformes
de Evaluación pueden compararse cuando se consideran los alcances de las
evaluaciones a ser similares; para obtener orientación sobre este tema,
ISO / IEC 15504-2: 2003 define los requisitos para realizar la consulte la norma ISO / IEC 15504-4.
evaluación de proceso como base para su uso en la mejora de
procesos y la determinación de la capacidad.
evaluación de proceso se basa en un modelo sional de dos Se mencionan varias otras normas aquí porque están
dimen- que contiene una dimensión de proceso y una dimensión de escritos como elaboraciones de los procesos de 12207 o
capacidad. La dimensión proceso es proporcionado por un modelo 15288. Están asignados a otras KAs debido a que cada uno
externo referencia de proceso (tal como 12.207 o 15.288), que define se ocupa de temas descritos en los otros KAs.
un conjunto de procesos que se caracterizan por estados de
resultados de propósito proceso y de proceso. La dimensión
capacidad consiste en un marco de medición que comprende seis
niveles de capacidad del proceso y sus atributos de proceso IEEE Std. 828-2012 Norma para la Gestión de la Configuración
asociados. de Sistemas e Ingeniería de Software
Consulte Gestión de la Configuración de Software KA
perfil de proceso, y también puede incluir el nivel de capacidad estándar para el software del ciclo de vida del software de ingeniería y
alcanzado por ese proceso. ISO / IEC 15504-2: 2003 define el procesos de mantenimiento
marco medi- ción de la capacidad del proceso y los requisitos Ver Mantenimiento de Software KA
para
ISO / IEC 15026-4: 2012 Sistemas y de Ingeniería de Software-Sistemas
• produce una calificación de proceso; de vida estándar para los sistemas y software de Gestión de Procesos de
ISO / IEC / IEEE 16326: 2009 de Gestión de Sistemas y de ejemplo. Ni tampoco S2ESC SC 7 tiene un estándar para el
Ingeniería de Software-Life Cycle Procesos-Proyecto desarrollo ágil, pero no existe un estándar para el desarrollo de
documentación de usuario en un proyecto ágil.
Consulte Software Engineering Management KA
comprensión, el análisis de apoyo, proporcionan la lógica de los Las siguientes dos normas proporcionan dos versiones del
cambios potenciales, especificar necesidades, y diseño de apoyo a lenguaje UML.
nivel de sistema y activi- integración lazos. IDEF0 puede ser usado
para modelar una amplia variedad de sistemas, compuestos por
personas, máquinas, mate- riales, las computadoras y la información ISO / IEC 19501: 2005 Información Tecnología distribuido
de todas las variedades, y estructurada por las relaciones entre ellos, abierto Modeling Language (UML) Versión 1.4.2
tanto automatizados y no automatizados. Para los nuevos siste- mas, Procesamiento-Unificado
IDEF0 puede ser utilizado por primera vez para definir los requisitos y
especificar las funciones a realizar por el sistema futuro. Como base ISO / IEC 19501 describe el Modelo- Unificado ing Language (UML),
de esta arquitectura, IDEF0 continuación, se puede utilizar para un lenguaje gráfico para visualizar, especificar, construir y
diseñar una aplicación que cumple con estos requisitos y realiza estas documentando los artefactos de un sis- tema intensivos en software.
funciones. Para siste- mas existentes, IDEF0 se puede utilizar para El UML ofrece una forma estándar para escribir planos de un
analizar las funciones que el sistema funciona y para grabar los sistema, incluyendo cosas conceptuales tales como procesos de
medios por los cuales estos se realizan. negocio y funciones del sistema, así como las cosas concretas, tales
como instrucciones de lenguaje de programación, esquemas de
bases de datos y componentes de software capaces Reus-.
relacionales, bases de datos relacionales, bases de datos extendidos proporcionar capacidades de modelado adicionales:
proyectos que involucran sistemas de software existentes asegurando la Dentro de los sistemas e ingeniería de software, ingeniería com-
interoperabilidad y el intercambio de datos entre las herramientas putadora asistido por software (CASE) representan una parte
proporcionadas por diferentes proveedores. importante de las tecnolo- gías de apoyo utilizados para desarrollar y
mantener sistemas de tecnología de informa- ción. Su selección debe
ISO / IEC 19507: 2012 Grupo de Gestión de Información de llevarse a cabo con una cuidadosa consideración de tanto los
Tecnología de objetos Object Constraint Language (OCL) requisitos técnicos y de gestión. ISO / IEC 14102: 2008 define tanto un
conjunto de cesos pro y un conjunto estructurado de herramienta del
caso de carac- terísticas para su uso en la evaluación técnica y la
ISO / IEC 19507: 2012 define el objeto Con- Idioma selección final de una herramienta CASE. De ello se sigue el modelo
straint (OCL), versión 2.3.1. OCL versión 2.3.1 es la de evaluación de productos de software se define en la norma ISO /
versión de OCL que está alineado con UML 2.3 y 2.0 IEC 14598-5: 1998.
MOF.
ISO / IEC 15940: 2006-Tecnologías de la Información Ingeniería de CASE, una vez seleccionado.
ISO / IEC 15940: 2006 define el entorno de ingeniería de software (VER) IEEE Std. 14471-2010 Guía de implantación de la norma ISO / IEC TR 14471:
servicios conceptualmente en un modelo de referen- cia que se puede 2007 Tecnología de la Información-Ingeniería de Software-Directrices para la
adaptar a cualquier vela por automática- compañero de una o más adopción de las herramientas CASE
apoyan las defini- ciones de proceso como en la norma ISO / IEC 12207
para que el conjunto de los servicios SEE es compatible con la norma ISO El propósito de la norma ISO / IEC TR 14471: 2007 es
/ IEC 12207. ISO / IEC 15940: 2006 se puede utilizar ya sea como refe- proporcionar una práctica recomendada para la adop- ción
rencia general o para definir un proceso de software automatizado. CASO. Proporciona una guía para establecer cesos y actividades
que se van a aplicar para la adopción exitosa de la tecnología
CASE pro. El uso de la norma ISO / IEC TR 14471: 2007 ayudará
a maximizar el rendimiento y minimizar el riesgo de invertir en la
La selección de herramientas para un entorno de ingeniería de software tecnología CASE. Sin embargo, la norma ISO / IEC TR 14471:
es en sí una tarea difícil. Dos estándares proporcionan algún tipo de 2007 no establece criterios El cumplimiento.
asistencia. ISO / IEC 14102: 2008 define tanto un conjunto de procesos y
computadora (CASE) características de la herramienta para su uso en la Se utiliza mejor en combinación con la norma ISO / IEC 14102
evaluación técnica y la selección final de una herramienta CASE. para la evaluación herramienta CASE y selección. Se dicta ni
tampoco aboga por normas particulares desarrollos Ment, procesos
de software, diseño met ods, metodologías, técnicas, lenguajes de
programación, o paradigmas del ciclo de vida.
IEEE Std. 14102-2010 La adopción del estándar ISO / IEC 14102: 2008
Tecnología de la Información-Directrices para la evaluación y
selección de herramientas CASE
B-20 Guía SWEBOK® V3.0
Dentro de un entorno de ingeniería de software, es importante para la aplicación de la norma ISO 9001: 2000 para Programas informáticos
IEEE Std. 1175,4-2008 estándar para la caja de herramienta • parte de un contrato comercial con otra
Interconexiones-Modelo de Referencia para su comportamiento organización,
Especificación • un producto disponible para un sector del mercado,
• utilizado para apoyar los procesos de una
El propósito de esta familia de normas es espec- ify un conjunto común organización,
de conceptos de modelado en base a los encontrados en las • incrustado en un producto de hardware, o
herramientas CASE comerciales para describir el comportamiento • en relación con los servicios de software.
Otro punto de vista de la calidad del software comienza con la características de calidad de software que puede ser útil en la selección de
enumeración de las características deseadas de un producto de características relevantes para un proyecto específico:
ISO / IEC 25000 25099 a través de software de ingeniería y software ISO / IEC 25010: 2011 define lo siguiente:
Requisitos de calidad del producto y Evaluación (cuadrados)
1. Una calidad en uso modelo compone de cinco
características (algunas de las cuales se subdividen
en subcaracterísticas) ese
Algunos de los estándares cuadrados se seleccionan a continuación se relacionan con el resultado de la interacción cuando un
para una atención particular. La primera es la guía general para la producto se utiliza en un contexto particular de uso. Este
serie. modelo de sistema es aplicable al sistema hombre-máquina
com- pleta, incluyendo tanto los sistemas informáticos en uso y
productos de software en uso.
ISO / IEC 25000: 2005 Software de ingeniería y software
Requisitos de calidad del producto y Evaluación (cuadrados) 2. Un modelo de la calidad del producto compone de ocho
-Guía de cuadrar características (que se subdividen en subcaracterísticas)
que se relacionan con propiedades estáticas de software y
ISO / IEC 25000: 2005 proporciona orientación para el uso de la las propiedades dinámicas del sistema informático. El
nueva serie de normas internacionales nombrados software modelo es aplicable tanto a los sistemas informáticos y
Requisitos de calidad del producto y Evaluación (cuadrados). El productos de software.
propósito de esta guía es proporcionar una visión general de los
contenidos cuadrados, modelos de referencia comunes, y
definiciones, así como la relación entre los docu- mentos, Las características definidas por ambos modelos son relevantes
permitiendo a los usuarios de esta guía una buena comprensión para todos los productos de software y sistemas de orde- nador.
de las normas internacionales. Este documento contiene una Las características y carac- subchar- proporcionan terminología
explicación del proceso de tran- sición entre la antigua norma coherente para especificar, medir y sistema y la calidad del
ISO / IEC 9126 y la serie 14598 y cuadrados, y también presenta producto software de evaluación. También proporcionan un
información sobre el uso de la serie ISO / IEC 9126 y 14598 en conjunto de características de calidad contra el que declararon los
su forma anterior. requisitos de calidad se pueden comparar para la integridad.
B-22 Guía SWEBOK® V3.0
Aunque el alcance del modelo de calidad del producto está Evaluación del formato (cuadrados) Industria -Common (CIF) de la
• la identificación de objetivos y pruebas del software del sistema; La familia CIF centra en documentar aquellos elementos
necesarios para el diseño y desarrollo de sistemas utilizables,
• la identificación de los criterios de control de calidad como parte de en lugar de prescribir un proceso específico. Está destinado a
la garantía de calidad; ser utilizado en conjunción con las normas internacionales
• la identificación de los criterios de aceptación para un producto de existentes, INCLUYENDO ISO 9241, ISO 20282, ISO / IEC
software y / o el sistema informático de software intensivo; 9126, y la serie cuadrada (ISO / IEC 25000 a ISO / IEC
para denotar una medida definida por una ecuación matemática. El Un enfoque para el logro de la calidad del software es llevar a
desacuerdo sobre el uso de estas palabras significa que las normas cabo un amplio programa de verificación y validación. IEEE Std.
sobre la materia son inherentemente no alineado. Unos pocos se verá 1012 es probablemente estándar más ampliamente aplicada del
más adelante, pero las palabras como los mencionados más arriba mundo en esta sub-Ject. Una revisión se publicó recientemente.
pueden tener diferentes significados en diferentes estándares.
En muchos casos, una base de datos de software de anoma- utilizar de cada parte y el uso combinado de múltiples partes. La
reside se utiliza para apoyar las actividades de verificación y cobertura de la garantía para un servicio que es operado y
validación. La siguiente norma sugiere cómo deben clasificarse administrado de forma continua no está cubierto en la norma ISO / IEC
anomalías. 15026.
IEEE Std. 1044-2009 norma para la clasificación para el software de La segunda parte de la norma describe la estructura de un “caso
anomalías de aseguramiento”, que pretende ser un argumento estructurado que
la propiedad crítica se ha logrado. Es una generalización de diversos
Esta norma proporciona un enfoque uniforme para la clasificación de las constructos específicos de dominio como “casos de seguridad”.
anomalías de software, independientemente del momento en que se
originan o cuando se encuen- cados dentro del ciclo del proyecto,
producto o sistema de vida. Los datos de clasificación pueden ser
utilizados para una varie- dad de propósitos, incluyendo causal defecto IEEE Std. 15026,2-2.011 adopción del estándar ISO / IEC 15026-2:
análi- sis, gestión de proyectos, y la mejora de procesos de software (por 2011 Sistemas y de Ingeniería de Software-Sistemas y de Software
ejemplo, para reducir la probabilidad de inserción de defectos y / o Assurance-Parte 2: Aseguramiento de la caja
aumentar la probabilidad de detección de defectos temprano).
ISO / IEC 15026-2: 2011 es adoptada por esta Dard Están-. ISO / IEC
15026-2: 2011 especifica los requisitos mínimos para la estructura y
contenido de un caso de garantía para mejorar la coherencia y la
En algunos sistemas, una propiedad particular del software es comparabilidad de los casos de aseguramiento y para faci-
tan importante que requiere un tratamiento especial más allá de la comunicaciones tate interesados, las decisiones de ingeniería y otros
proporcionada por un programa de verificación y validación usos de los casos de aseguramiento. Un caso de aseguramiento
convencional. El término emergente para este tipo de tratamiento es incluye un reclamo de primer nivel para una propiedad de un sistema o
“siste- mas de garantía de software.” Los ejemplos incluyen la producto (o un conjunto de reclamaciones), la argumentación
seguridad, la privacidad, de alta seguridad, y ultrareliability. La sistemática con respecto a esta reclamación, y la evidencia y
norma 15026 está en desarrollo para hacer frente a tales supuestos explícitos que subyacen a esta argumentación. Discutiendo
situaciones. La primera parte del estándar de cuatro partes ofrece la a través de múltiples niveles de las reivindicaciones subordinadas, esta
terminología y los conceptos utilizados en las partes restantes. Fue argumentación estructurado conecta la reclamación de nivel superior
escrito antes de las otras partes y ahora está siendo revisada para para las pruebas y supuestos. casos de Aseguramiento generalmente
el acuerdo com- pleta con los otros. se desarrollaron para apoyar las reivindicaciones en áreas tales como
la seguridad, la fiabilidad, facilidad de mantenimiento, factores
humanos, operabilidad, y la seguridad, aunque estos casos de garantía
son a menudo llamados por los nombres más específicos, por ejemplo,
el caso de seguridad o la fiabilidad y facilidad de mantenimiento caso
IEEE Std. 15.026,1-2011 Trial-Uso Adopción estándar de la norma (R & M). ISO / IEC 15026-2: 2011 no impone requisitos sobre la
ISO / IEC TR 15026-1: 2010 Sistemas y de Ingeniería de calidad de los contenidos de un caso de garantía y no requiere el uso
Software-Sistemas y de Software Assurance-Parte 1: Conceptos y de una terminología particular o de representación gráfica. Así mismo,
Vocabulario no impone requisitos sobre los medios de implementación física de los
datos, incluidos los requisitos para la redundancia o la colocación.
Este estándar de prueba de uso adopta la norma ISO / IEC TR
15026-1: 2010, que define los términos y esta- lishes un conjunto
amplio y organizado de los conceptos y sus relaciones para el software
y los sistemas de seguridad, estableciendo así una base para la
comprensión común de los conceptos y cen- tral principios de la norma
ISO / IEC 15026 a través de sus comu- nidades de usuarios.
Proporciona información a los usuarios de las partes subsecuentes de
la norma ISO / IEC 15026, incluyendo la En muchos sistemas, algunas porciones son críticos para el logro de la
incidental. Por ejemplo, el sistema de control de vuelo de un avión de TR 15026-1 proporciona información y referencias adicionales para ayudar
pasajeros es fundamental para la seguridad, pero el horno microondas a los usuarios de la norma ISO / IEC 15026-3: 2011. ISO / IEC 15026-3:
no lo es. Convencionalmente, las diversas partes se asignan niveles 2011 no requiere el uso de los casos de aseguramiento descritos en la
de criticidad “” para indicar su significación para el logro general de la norma ISO / IEC 15026-2, pero describe cómo los niveles de integridad y
propiedad. La tercera parte de la ISO / IEC 15026 describe cómo se de garantía de los casos pueden trabajar juntos, especialmente en la
hace. Esta parte será revisado para un mejor ajuste con el resto de la definición de las especificaciones de los niveles de integridad o mediante
norma 15026. el uso de la integridad los niveles dentro de una parte de un caso de
aseguramiento.
y de Software Assurance-Parte 3: Niveles de Integridad del sistema La parte final de 15026 proporciona orientación adicional para la
ejecución de los procesos del ciclo de vida de 12207 y 15288 cuando
se requiere un sistema o software para conseguir una propiedad
ISO / IEC 15026-3: 2011 especifica el concepto de niveles de importante.
integridad con los requisitos de nivel de integridad que se requieren
para ser reunido con el fin de mostrar el logro del nivel de integridad
correspondiente. Se coloca requisitos sobre y recomienda ods met ISO / IEC 15026-4: 2012 Sistemas y de Ingeniería de Software-Sistemas
para la definición y el uso de los niveles de integridad y de sus y de Software Assurance-Parte 4: Control de calidad en el ciclo de vida
ISO / IEC 15026-3: 2011 es aplicable a los siste- mas de requieren las reclamaciones de garantía de las propiedades seleccionadas
software y está diseñada para uso por: de una atención especial, llamadas propiedades críticas. Esta parte de la
norma ISO / IEC 15026 especifica una lista erty independiente prop- de
• definidores de los niveles de integridad, tales como organizaciones procesos, actividades y tareas para lograr la reclamación y mostrar el logro
de la industria y profesionales, organizaciones de estándares y de la reclamación. Esta parte de la norma ISO / IEC 15026 establece los
• usuarios de los niveles de integridad como desarrolladores y contexto de un modelo de ciclo de vida definido y un conjunto de procesos
mantenedores, proveedores y compradores, usuarios y de ciclo de vida para el sistema y / o gestión del ciclo de vida del software.
Un uso importante de los niveles de integridad es mediante pinzas Los estándares siguientes se ocupa de una seguridad que a menudo
SUP- y adquirentes en los acuerdos; por ejemplo, para ayudar a se identifica como propiedad-crítico. Originalmente fue desarrollado en
asegurar las características de seguridad, económico, o de seguridad cooperación con la industria de la energía nuclear de Estados Unidos.
Esta norma requiere que el plan se preparará en el marco del pro- Conocimiento (SWEBOK)
grama de seguridad del sistema. Sólo se incluyen los aspectos de ver general
seguridad del software. Esta norma no contiene disposiciones
especiales que se requieren para el software utilizado en los
sistemas de distri- buido o en procesadores paralelos. Un estándar de 7 SC proporciona un marco para las
comparaciones entre las certificaciones de profesionales de la
ingeniería de software. Que norma indica que las áreas
consideradas en la certificación debe estar asignado a la Guía
tratamientos clásicos sugieren que las ofertas de “verificación” con SWEBOK.
métodos de evaluación estática y que ofertas de “prueba” con
métodos de evaluación dinámicos. tratamientos recientes, incluyendo
ISO proyecto / IEC ISO / IEC 24773: 2008 Ingeniería de Software-Certificación de
29119, están difuminando esta distinción, aunque, por lo que aquí se Profesionales de Ingeniería de Software
mencionan las normas de ensayo.
ISO / IEC 24773: 2008 establece un marco para la comparación de
esquemas de certificación de profesionales de ingeniería de software.
IEEE Std. 829-2008 Norma para el software y la documentación de prueba Un esquema de certificación es un conjunto de requisitos de
certificación para profesionales de la ingeniería de software. ISO / IEC
del sistema Consulte Software Testing KA 24773: 2008 especifica los artículos que se requiere un esquema para
contener e indica lo que debe ser definida para cada elemento.
IEEE Std. 1008-1987 estándar para el software de pruebas unitarias
Consulte Software Testing KA ISO / IEC 24773: 2008 facilitará la Porta- bilidad de
ingeniería de software tifications cier- profesionales entre los
IEEE Std. 26513-2010 La adopción del estándar ISO / IEC 26513: diferentes países o organiza- ciones. En la actualidad,
2009 Sistemas y de Ingeniería de Software-Requisitos para diferentes países y organizaciones han adoptado diferentes
Probadores y revisores de Documentación enfoques sobre el tema, que se implementan por medio de
reglamentos y estatutos. La intención de la norma ISO / IEC
Consulte Software Testing KA 24773: 2008 es estar abierto a éstos individual y específico se
acerca al proporcionar un marco para expresarlos en un
/ / IEEE 29119 [cuatro partes] (Borrador) Software ISO IEC y Sistemas de esquema común que puede conducir a la comprensión.
Pruebas de Ingeniería de Software
IEEE es un proveedor de productos relacionados con el CER tificación de ECONOMÍA INGENIERÍA DE SOFTWARE
los practicantes profesionales de la ingeniería de software. La primera ya
ha sido descrito, el Guía de la Ingeniería de Software de Administración de No hay normas se asignan a este KA.
Conocimiento. los Guía SWEBOK ha sido adoptado por la norma ISO / IEC
como un esquema de los conocimientos que los ingenieros de software FUNDAMENTOS DE INFORMATICA
pro- fesionales deben tener.
No hay normas se asignan a este KA.
Fundamentos matemáticos
ISO / IEC TR 19759: 2005 Ingeniería de Software-Guía de los
Fundamentos de Ingeniería de Software No hay normas se asignan a este KA.
Apéndice B B-27
“navegar por el TC,” y luego “JTC 1” y luego “SC 7.” www.techstreet.com/ieeegate.html . Cabe señalar que la IEEE-SA
veces haces las normas en los grupos disponibles con un descuento
Encontrar la lista actual de normas para S2ESC es un poco considerable. Por último, el lector debe tener en cuenta que los
más difícil. comenzará a las http: // estándares. ieee.org/. En el estándares IEEE que ha adoptado de ISO / IEC, las normas que la
cuadro de búsqueda en “Buscar Standards,” tipo “S2ESC.” Esto norma ISO / IEC tiene “vía rápida” de la IEEE, y las normas que se
debería producir una lista de normas publicadas por el cual es han desarrollado o se revisan en conjunto están disponibles de
responsable S2ESC. ambas fuentes. Para todas las normas descritas en este artículo, la
versión IEEE y la versión ISO / IEC son sustancialmente idénticos.
Tenga en cuenta que las bases de datos accesibles son compilaciones. Las versiones respectivas pueden tener diferentes frontal y la
Al igual que cualquier base de datos, que pueden contener errores que materia de nuevo pero los cuerpos son idénticos.
conducen a resultados de búsqueda incompletos.
Algunos lectores querrán obtener normas descritas en este los Guía SWEBOK se publica en virtud de un derecho de
artículo. Lo primero que debe saber es que algunas normas autor IEEE. La versión actual de la Guía SWEBOK es
internacionales están disponibles gratuitamente para su uso gratuita para el público en www. swebok.org/ . La adopción
individual. La lista actualizada de las normas ISO / IEC de ISO / IEC de la
Guía SWEBOK, ISO / IEC TR 19759, es una de las normas de
disponible bajo los términos se encuentra en http://standards.iso.org/ittf/
PubliclyAvailableStandards / index.html. libre disposición.
IEEE Std. 730-2002 estándar para los planes de garantía de calidad de software SW Calidad
IEEE Std. 829-2008 Norma para el software y la documentación de prueba del sistema
Prueba de SW
IEEE Std. 982,1-2.005 estándar para Diccionario de Medidas de los aspectos del
SW Calidad
software de Fiabilidad
IEEE Std. 1028-2008 estándar para las revisiones de software y auditorías SW Calidad
IEEE Std. 1074-2006 estándar para desarrollar un proceso del ciclo de vida del software del proyecto Proceso de Ingeniería de
SW
IEEE Std. 1.175,3-2004 estándar para la caja de herramienta Interconnections- modelo de referencia SW modelos de
para especificar el comportamiento del software ingeniería y Métodos
IEEE Std. 1.175,4 a 2.008 estándar para CASE Modelo de Referencia de herramientas SW modelos de
Interconnections- para su comportamiento Especificación ingeniería y Métodos
IEEE Std. 1220-2005 (también conocido como ISO / IEC 26702: 2007) estándar para la Proceso de Ingeniería de
aplicación y gestión del proceso de Ingeniería de Sistemas SW
IEEE Std. 1228-1994 estándar para los planes de seguridad del software SW Calidad
IEEE Std. 1320,1-1998 estándar para Modelado funcional Lenguaje- sintaxis y la SW modelos de
semántica de IDEF0 ingeniería y Métodos
IEEE Std. 1320,2-1998 estándar para Modelado Conceptual Lenguaje- sintaxis y la SW modelos de
semántica de IDEF1X97 (IDEFobject) ingeniería y Métodos
IEEE Std. 1517-2010 estándar para la tecnología de la información del sistema y del software-Vida Proceso de Ingeniería de
Procesos de reutilización de procesos de ciclo SW
Apéndice B B-29
IEEE Std. 1633-2008 Práctica Recomendada para la fiabilidad del software SW Calidad
IEEE Std. 12207-2008 (también conocido como ISO / IEC 12207: 2008) estándar para los sistemas y Proceso de Ingeniería de
software de ingeniería en software procesos de ciclo de vida SW
IEEE Std. 14102-2010 La adopción del estándar ISO / IEC 14102: 2008 Tecnología de la
SW modelos de
Información-Directrices para la evaluación y selección de herramientas CASE
ingeniería y Métodos
IEEE Std. 14471-2010 Guía de implantación de la norma ISO / IEC TR 14471: 2007 Tecnología de la
SW modelos de
Información-Ingeniería de Software-Directrices para la adopción de las herramientas CASE
ingeniería y Métodos
IEEE Std. 14764-2006 (también conocido como ISO / IEC 14764: 2006) estándar para
Software de ingeniería en software de ciclo de vida Procesos de mantenimiento Mantenimiento software IEEE Std.
15.026,1-2011 Trial-Uso Adopción estándar de la norma ISO / IEC TR 15026-1: 2010 Sistemas y de Ingeniería de
Software-Sistemas y de Software Assurance-Parte 1: Conceptos y Vocabulario SW Calidad
IEEE Std. 15026,2-2.011 adopción del estándar ISO / IEC 15026- 2: 2011 Sistemas y de
Ingeniería de Software-Systems y Software Assurance-Parte 2: Aseguramiento de la caja SW Calidad
IEEE Std. 15288-2008 (también conocido como ISO / IEC 15288: 2008) Estándar de Sistemas e Proceso de Ingeniería de
Ingeniería de Software-Sistema de los procesos de ciclo de vida SW
ISO / IEC / IEEE 15289: 2011 Sistemas y Software Ingeniería- contenido del Ciclo de Proceso de Ingeniería de
Vida de Productos de Información (Documentación) SW
ISO / IEC 15504 [diez partes] Tecnología-Proceso de Información de Evaluación Proceso de Ingeniería de
SW
IEEE Std. 15939-2008 La adopción del estándar ISO / IEC 15939: 2007 Sistemas y Gestión de
Procesos de Ingeniería de Software de Mediciones Ingeniería de SW
IEEE Std. 16085-2006 (también conocido como ISO / IEC 16085: 2006) Gestión de Riesgo
Gestión de
Estándar de Sistemas e Ingeniería de Software-Software Ciclo de Vida procesos-
Ingeniería de SW
ISO / IEC / IEEE 16326: 2009 de Gestión de Sistemas y de Ingeniería de Software-Life Gestión de
Cycle Procesos-Proyecto Ingeniería de SW
ISO / IEC 19501: 2005 Tecnología de la Información-distribuido abierto Modeling SW modelos de
Language (UML) Versión 1.4.2 Procesamiento-Unificado ingeniería y Métodos
B-30 Guía SWEBOK® V3.0
ISO / IEC 19505: 2012 [dos partes] a objetos Grupo de Tecnología de Gestión de SW modelos de
Información Unified Modeling Language (UML del OMG) ingeniería y Métodos
ISO / IEC 19507: 2012 Tecnología de la Información-Object Management Group Object SW modelos de
Constraint Language (OCL) ingeniería y Métodos
IEEE Std. 24.748,1-2011 Guía de implantación de la norma ISO / IEC TR 24748-1: 2010 Sistemas y
Proceso de Ingeniería de
de Ingeniería de Software de Gestión-Life-Cycle Parte 1: Guía para la Gestión del Ciclo de Vida
SW
IEEE Std. 24748,2-2012 Guía de implantación de la norma ISO / IEC TR 24748-2: 2011 Sistemas y de
Ingeniería de Software de Gestión de Vida-Parte 2 Ciclo: Guía para la aplicación de la norma ISO / IEC Proceso de Ingeniería de
15288 (Procesos del ciclo de vida del sistema) SW
IEEE Std. 24748-3: 2012 Guía de implantación de la norma ISO / IEC TR 24748-3: 2011 Sistemas y de
Ingeniería de Software de Gestión-Life-Cycle Parte 3: Guía para la aplicación de la norma ISO / IEC Proceso de Ingeniería de
12207 (Procesos del ciclo de vida del software) SW
ISO / IEC 24773: 2008 Ingeniería de Software-Certificación de Profesionales de Ingeniería de SW Ingeniería Práctica
Software Profesional
IEEE Std. 24774: 2012 Guía de implantación de la norma ISO / IEC TR 24474: 2010 Sistemas y
Proceso de Ingeniería de
de Ingeniería de Software-Life Cycle Directrices para Management- Descripción del Proceso
SW
ISO / IEC 25000: 2005 Software de ingeniería y software Requisitos de calidad del producto
SW Calidad
y Evaluación (cuadrados) -Guía de cuadrar
Apéndice B B-31
Formato ISO / IEC 25060 25064 a través de software de ingeniería y software Requisitos de
calidad del producto y Evaluación (cuadrados) Industria -Common (CIF) de la Usabilidad SW Calidad
ISO / IEC / IEEE 26511: 2012 Sistemas y Software INGENIERÍA-Requisitos para los Gestión de
gerentes de Documentación del usuario Ingeniería de SW
ISO / IEC / IEEE 26512: 2011 Requisitos de Sistemas y Software ingeniería- para Gestión de
adquirentes y proveedores de Documentación del usuario Ingeniería de SW
IEEE Std. 26513-2010 La adopción del estándar ISO / IEC 26513: 2009 Sistemas y de
Ingeniería de Software-Requisitos para Probadores y revisores de Documentación Prueba de SW
IEEE Std. 26514-2010 La adopción del estándar ISO / IEC 26514: 2008 Sistemas y de Ingeniería
de Software-Requisitos para los diseñadores y desarrolladores de documentación del usuario SW Diseño
ISO / IEC / IEEE 26515: 2012 Sistemas y Software Ingeniería- desarrollo de la SW modelos de
documentación del usuario en un entorno ágil ingeniería y Métodos
ISO / IEC 29110 [varias partes] Ingeniería de Software-ciclo de vida de los perfiles de Proceso de Ingeniería de
entidades muy pequeñas (VSE) SW
/ / IEEE 29119 [cuatro partes] (Borrador) Software ISO IEC y Sistemas de Pruebas de
Prueba de SW
Ingeniería de Software
/ IEC / IEEE 29148 ISO: 2011 Sistemas y de Ingeniería de Software-Life Cycle procesos
Requisitos SW
de Ingeniería de Requisitos
IEEE Std. 90003: 2008 Guía de implantación de la norma ISO / IEC 90003: 2004 Ingeniería de
Software-Directrices para la aplicación de la norma ISO 9001: 2000 para Programas informáticos SW Calidad
APÉNDICE C
La lista de referencias consolidado identifica todos los materiales [4 *] F. Bott et al., Cuestiones profesionales en
de referencia recomendados (a nivel de número de sección) que Ingeniería de software, 3ª ed., Taylor & Francis,
acompañan a la descomposición de los temas dentro de cada área 2000.
de conocimiento (KA). Esta lista de referencias consolidado es
adoptada por la certificación de ingeniería de software y productos [5 *] JG Brookshear, Ciencias de la Computación: Un
asociados de desarrollo profesional ofrecido por el IEEE Computer Visión de conjunto, 10ª ed., Addison-Wesley, 2008.
Society. Editores KA utilizan las referen- cias asignadas a su KA
por la Lista de referencia consolidado como sus referencias [6 *] D. Budgen, Diseño de software, 2ª ed.,
recomendadas. En conjunto esta lista de referencia es consolidado Addison-Wesley, 2003.
C-1
C-2 Guía SWEBOK® V3.0
[14 *] E. Horowitz et al., Los algoritmos de ordenador, [25 *] S. Naik y P. Tripathy, Pruebas de software
2ª ed., Silicon Press, 2007. y aseguramiento de la calidad: teoría y
práctica, Wiley-Spektrum, 2008.
[15 *] IEEE CS / ACM Grupo de Trabajo Conjunto sobre
Ética de software de ingeniería y prácticas [26 *] J. Nielsen, Ingeniería de usabilidad, primera ed.,
profesionales, “software de código de Ingeniería de Morgan Kaufmann, 1993.
Ética y Práctica Profesional (Versión 5.2),” 1999;
[27 *] L. Null y J. Lobur, Lo Esencial de la
www.acm.org/serving/se/code.htm . Organización ordenador y Arquitectura,
2ª ed., Jones and Bartlett Publishers,
[dieciséis*] IEEE Std. 828-2012, Norma para 2006.
Gestión de la Configuración en Sistemas e Ingeniería
de Software, IEEE 2012. [28 *] M. Página-Jones, Fundamentos de objeto-
Diseño orientado en UML, 1ª ed., Addison-Wesley,
[17 *] IEEE Std. 1028-2008, Reseñas de Software 1999.
y Auditorías, IEEE 2008.
[29 *] K. Rosen, Matemática Discreta y sus
[18 *] ISO / IEC 14764 IEEE Std. 14764-2006, Aplicaciones, 7ª ed., McGraw-Hill, 2011.
Software de ingeniería en software de ciclo de vida Procesos
de mantenimiento, IEEE 2006. [30 *] A. Silberschatz, PB Galvin, y G.
Gagne, Conceptos del sistema operativo, Octava ed.,
[19 *] SH Kan, Métricas y modelos de software Wiley, 2008.
Ingeniería de calidad, 2ª ed., Addison-Wesley,
2002. [31 *] HM Sneed, “Software Ofreciendo
Mantenimiento como un servicio Marino,” Proc. IEEE Conf
[20 *] S. McConnell, Código completo, 2ª ed., Int'l. Mantenimiento del software
Microsoft Press, 2004. (ICSM 08), IEEE, 2008, pp. 1-5.
[21 *] J. McGarry et al., Practical Software [32 *] I. Sommerville, Ingeniería de software, noveno
Medición: información objetiva para la Toma de ed., Addison-Wesley, 2011.
Decisiones, Addison-Wesley Professional, 2001.
[33 *] S. Tockey, Retorno de software:
Maximizar el retorno de su inversión en software, 1ª
[22 *] SJ Mellor y MJ Balcer, Ejecutable ed., Addison-Wesley, 2004.
UML: La Base para Model-Driven
Architecture, 1ª ed., Addison-Wesley, [34 *] G. Voland, Ingeniería de Diseño, segundo
2002. ed., Prentice Hall, 2003.