Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Semana 4 PDF
Semana 4 PDF
SEMANA 4
Calidad en el proceso de
ingeniería de software
Todos los derechos de autor son de la exclusiva propiedad de IACC o de los otorgantes de sus licencias. No está
permitido copiar, reproducir, reeditar, descargar, publicar, emitir, difundir, poner a disposición del público ni 1
ESTE
utilizarDOCUMENTO
los contenidos paraCONTIENE LAdeSEMANA
fines comerciales 4
ninguna clase.
2
ESTE DOCUMENTO CONTIENE LA SEMANA 4
ÍNDICE
3
ESTE DOCUMENTO CONTIENE LA SEMANA 4
3.1.6. USABILIDAD ............................................................................................................... 14
3.2. ESTRATEGIAS Y TÁCTICAS EN EL TRABAJO CON REQUERIMIENTOS .................................... 14
3.2.1. PLANEAR .................................................................................................................... 14
3.2.2. HACER ........................................................................................................................ 14
3.2.3. REVISAR ..................................................................................................................... 14
3.2.4. CORREGIR .................................................................................................................. 14
4. GESTIÓN DE LOS PROCESOS DE SOFTWARE ............................................................................. 15
4.1. ETAPAS CLAVE DE LA GESTIÓN CON CALIDAD ..................................................................... 15
4.1.1. EJECUCIÓN Y CONTROL DE PROCESO........................................................................ 15
4.1.2. MEDICIÓN Y MEJORA ................................................................................................ 15
COMENTARIO FINAL.......................................................................................................................... 16
REFERENCIAS ..................................................................................................................................... 17
4
ESTE DOCUMENTO CONTIENE LA SEMANA 4
CALIDAD EN EL PROCESO DE INGENIERÍA DE SOFTWARE
OBJETIVOS ESPECÍFICOS
Conocer y analizar los elementos que componen un proceso de software al interior de
distintos entornos de desarrollo.
Analizar los procesos del ciclo de vida del software, según ISO/IEC 12207.
Comprender la calidad de requerimiento de software, analizando sus atributos de calidad
y técnicas de trabajo.
Comprender y analizar las etapas que involucra una gestión de procesos de software.
INTRODUCCIÓN
La calidad en el proceso de ingeniería de software es un componente esencial en el resultado final
del producto de software que se debe desarrollar. Cumple con establecer métodos,
procedimientos, actividades, productos de trabajo y responsables en cada caso. Para lo cual se
basa en una serie de buenas prácticas y estándares de la ingeniería de software. Es por esta razón
que las organizaciones que desarrollan productos de software deben adherir a esta condición, con
el objeto de asegurar la calidad final del producto que se desarrolla.
5
ESTE DOCUMENTO CONTIENE LA SEMANA 4
1. ELEMENTOS DEL PROCESO DE SOFTWARE
La calidad del producto de software no solamente se garantiza poniendo énfasis en la calidad del
producto. Todas las actividades que conlleva el desarrollo de software, cuando son realizadas en
forma sistemática, sobre la base de un método, aportan y mejoran sustancialmente el resultado
del producto final. La sistematización de las actividades permite en las organizaciones repetirlas,
obteniendo el mismo o mejores resultados que los anteriores. Sin embargo, lo anterior requiere
definir un proceso de desarrollo de software que sea el marco de trabajo aplicado por todos los
equipos de desarrollo, abarcando tanto la calidad del producto, el ciclo de vida de un proyecto de
software y otros aspectos relevantes como por ejemplo tecnología, gestión, personas y otros
recursos que se requieran para el desarrollo de software.
Al igual que todo proceso, el desarrollo de software debe ser gestionado para definirlo, mejorarlo,
medirlo, ejecutarlo y controlarlo. En su etapa de definición, usualmente las organizaciones siguen
estándares de calidad de procesos y buenas prácticas.
1
http://goo.gl/7ZEjZd
6
ESTE DOCUMENTO CONTIENE LA SEMANA 4
1.1. ACTIVIDAD
1.2. PRODUCTO
1.3. RECURSO
En términos generales, un recurso es lo que se requiere para poder ejecutar las acciones que se
enmarcan dentro de una tarea. Este puede ser económico, humano, tecnológico, legal o
administrativo, por nombrar algunos. En el caso del proceso de desarrollo de software, se los
puede clasificar en el ámbito de los recursos humanos, donde se sitúa a los profesionales del área.
Así también se requieren recursos tecnológicos, donde se concentran las herramientas de
desarrollo y bases de datos. Finalmente, se tienen las herramientas de propósito general, donde
están aquellos softwares que apoyan el desarrollo de todas las actividades del proceso, como por
ejemplo planillas de cálculo, editores de texto, herramientas de diagramación o correo, entre
otras.
1.4. ROLES
En las organizaciones se definen una serie de roles, los cuales determinan el carácter de
responsabilidad, ámbito y alcance de las funciones asociadas a un determinado profesional. Lo
mismo ocurre en el proceso de desarrollo de software. Como es una definición formal, deben
estar escritos y bien definidos para su uso en la realización de tareas del proyecto.
7
ESTE DOCUMENTO CONTIENE LA SEMANA 4
2. PROCESOS DEL CICLO DE VIDA DEL SOFTWARE DE ACUERDO A
LA NORMA ISO/IEC 12207
Antes de revisar esta norma, es necesario introducir el concepto de ciclo de vida del software. Este
se refiere a un conjunto de actividades, métodos y procedimientos, los cuales en su conjunto
conforman un proceso que permite iniciar el desarrollo de un sistema de software, su
mantenimiento posterior y, finalmente, el retiro de la operación.
ISO/IEC 122072 define que las actividades a realizar durante el ciclo de vida del software
corresponden a procesos principales, procesos de soporte y procesos generales de la organización.
La norma es abstracta en lo que se refiere a la definición respecto al ciclo de vida del software,
puesto que las organizaciones pueden adoptar aquel que más se ajuste a sus necesidades y
dinámicas con sus clientes.
Corresponden a aquellos procesos que facilitan el desarrollo de actividades en todas las etapas del
proceso de desarrollo de software. Esto es al iniciarse, durante el desarrollo, puesta en marcha y
mantenimiento posterior. Dentro de esta clasificación, se destacan los siguientes (Piattini, García,
García y Pino, 2012)
Su propósito es obtener el producto o servicio que satisface la necesidad planteada por el cliente,
para lo cual se apoya en los subprocesos de preparación de la adquisición, selección del
proveedor, supervisión del proveedor y aceptación del cliente. Es decir, corresponde a las
actividades que, realizadas en forma planificada y cumpliendo todas las tareas que ahí sean
definidas, permiten entregar una solución al cliente conforme a las especificaciones que se han
elaborado.
El propósito de este proceso es entregar una solución de software sobre la base de una definición
inicial de requerimientos de usuario, los cuales tienen por objetivo satisfacer una necesidad
funcional. Corresponde al proceso más complejo desde la perspectiva de la cantidad de personas
que interactúan, la tecnología utilizada, la cantidad de tareas, métodos y procedimientos que
2
http://goo.gl/gwmYO5
8
ESTE DOCUMENTO CONTIENE LA SEMANA 4
intervienen en su ejecución. De esta forma, podemos identificar una serie de subprocesos que
sustentan todo lo anterior.
9
ESTE DOCUMENTO CONTIENE LA SEMANA 4
2.1.2.10. INSTALACIÓN DEL SOFTWARE
Su fin es dejar disponible la solución en el entorno que se requiere.
2.1.2.11. OPERACIÓN
El propósito de este proceso es velar por el correcto funcionamiento de la solución en el entorno
donde se ha dejado disponible, asegurando también el soporte a los usuarios finales.
2.1.2.12. MANTENIMIENTO
Este proceso es uno de los más importantes. Trasciende en varios aspectos que se pueden
clasificar en el contexto de mejoras, correcciones, adaptaciones, modificaciones, como también en
el de reemplazo de funcionalidad por un tema de evolución de las necesidades del usuario y la
organización.
La característica principal de este tipo de procesos es que a través de ellos se da soporte al resto
de los procesos de la organización. En el ámbito del desarrollo de software facilitan la consecución
de las tareas desde el punto de vista económico, organizacional, financiero, contable y
administrativo, entre otros. Dentro de este ámbito se tienen los siguientes subprocesos (ISO,
2008):
2.2.1. DOCUMENTACIÓN
Este proceso se encarga de confirmar que todos los productos de trabajo de software en un
proceso o proyecto cumplan con los requerimientos especificados. Así también desde el punto de
vista funcional.
10
ESTE DOCUMENTO CONTIENE LA SEMANA 4
2.2.5. AUDITORÍA
El propósito de este proceso es verificar con total independencia la concordancia de los productos
de trabajo con los procedimientos, planes y estándares definidos para ejecutar el proyecto.
El objeto de este proceso es realizar un control y seguimiento de todos los problemas que se van
detectando. Asegurando la resolución de estos.
2.2.7. USABILIDAD
El propósito de este proceso es potenciar los aspectos de uso dados y definidos por el usuario, de
manera que el producto final no sea un obstáculo en el proceso de negocio que debe apoyar. De
esta manera, prepara el camino para una mejor solución y evitar así el rechazo final del usuario.
Su propósito es garantizar que los productos y procesos de software vayan de la mano de los
objetivos de la organización.
11
ESTE DOCUMENTO CONTIENE LA SEMANA 4
2.3.2.2. GESTIÓN DE PROYECTOS
Su propósito es definir, coordinar y monitorear las actividades, tareas y recursos para que un
proyecto genere el producto o servicio establecido de acuerdo a las definiciones y alcance del
proyecto.
Además de los subprocesos mencionados, existen otros también que contribuyen desde el ámbito
técnico, como por ejemplo el proceso de infraestructura, del ámbito de la mejora de procesos y
administración de recursos humanos.
Los requerimientos son el conjunto de definiciones que forman la base para especificar funcional y
técnicamente las soluciones que se deben desarrollar en un proyecto de software. En el proceso
de definición de requerimientos, se pueden establecer características que los definen y aportan en
la calidad de estos. Son las siguientes (Pressman, 2010):
Deben ser redactados y considerados como un acuerdo, o más bien un contrato entre dos
partes.
Debe ser conciso, fácil de revisar y entendible, sin tener que realizar una descripción
extensa.
Debe ser completo, en su definición debe estar todo lo que se requiere saber.
12
ESTE DOCUMENTO CONTIENE LA SEMANA 4
3.1. ATRIBUTOS DE CALIDAD VISIBLE Y NO VISIBLE VÍA EJECUCIÓN
Entre los atributos de calidad relacionados con el sistema se pueden mencionar los siguientes (óp.
cit.):
3.1.1. DISPONIBILIDAD
Las fallas pueden ocurrir en los sistemas y comprometer el uso de estos, dejando de brindar la
funcionalidad que se especificó en su desarrollarlo. Las fallas técnicamente invalidan una
funcionalidad y pueden ser detectadas por el usuario directamente, o bien por otros sistemas. Si
se quiere cuantificar la disponibilidad, correspondería a la razón entre el tiempo de fallo dividido
por la suma del tiempo de fallo más el tiempo requerido para solucionarlo.
Es la facilidad que presenta el software para aplicar cambios, los cuales pueden ser de
funcionalidad, plataforma o integraciones. Por tal razón, es importante que este concepto esté
considerado al momento de diseñar una solución. Usualmente, una solución de software que no
facilita la incorporación de cambios, o inclusive mejoras, no es una buena solución.
3.1.3. PERFORMANCE
Es la característica que determina cuánto le toma al sistema responder una solicitud de usuario u
otra solicitud que este permita realizar. Es una condición que depende también de otros factores,
como por ejemplo la infraestructura sobre la cual se ha desplegado la solución.
3.1.4. SEGURIDAD
Es la capacidad que posee un sistema para brindar mecanismos de protección ante intentos de uso
malicioso. Manteniendo así la disponibilidad del sistema para los usuarios.
13
ESTE DOCUMENTO CONTIENE LA SEMANA 4
3.1.6. USABILIDAD
Esta característica es relevante para todo sistema. Demuestra cuán fácil de utilizar es el sistema
ante la operación del usuario. Abarca aspectos como simplicidad y efectividad, optimización del
trabajo que realiza el usuario, facilidad de aprendizaje y utilización.
3.2.1. PLANEAR
De acuerdo al plan previamente establecido, los requerimientos deben comenzar a ser escritos.
Por tanto, es necesario preparar reuniones de trabajo con los usuarios claves, puesto que ellos son
los conocedores de las necesidades funcionales. Esta instancia corresponde a las sesiones de
trabajo que han sido planificadas para realizar un levantamiento inicial que posteriormente se
transformará en los requerimientos funcionales del usuario.
3.2.3. REVISAR
Luego de haber realizado las sesiones de trabajo y depurado en conjunto con el usuario la
definición de sus requerimientos, corresponde la revisión formal. El objetivo de esta actividad es
verificar que las definiciones sean claras, completas y precisas. Siendo así, se prepara un listado de
requerimientos para su posterior formalización e implementación a nivel de estado.
3.2.4. CORREGIR
Como parte natural de todo proceso, siempre se van a requerir ajustes y correcciones. Por tanto,
al tener una lista de requerimientos formalizada y validada por las partes, se pueden realizar estas
correcciones, pero en el marco de lo definido inicialmente. Así, todo cambio que escapa del
alcance original debe ser aprobado por el usuario y todos los responsables de administrar el
proyecto. A esto se le llama mantener una línea base de requerimientos.
14
ESTE DOCUMENTO CONTIENE LA SEMANA 4
4. GESTIÓN DE LOS PROCESOS DE SOFTWARE
Las etapas clave para realizar una buena gestión de la calidad de los procesos de desarrollo de
software corresponden a las siguientes:
Los proyectos software de una organización se ejecutan de acuerdo al modelo de proceso que se
haya definido. Por lo cual, es importante poder controlar en todo momento la ejecución de estos
proyectos (y en consecuencia, de los procesos correspondientes) para garantizar y cumplir con las
expectativas de los clientes o usuarios finales. Para ello, se han desarrollado los denominados
"entornos de ingeniería del software orientados a procesos" (process software engineering
environments), los cuales corresponden a sistemas de software que ayudan en el modelamiento
de procesos de software utilizando un determinado lenguaje y en su posterior automatización.
El concepto de mejora aplicado en todo orden siempre requiere tener un objetivo por el cual
mejorar. Así es como antes de hacerlo, es necesario evaluar y medir los aspectos relevantes o
sujetos a estudio para su posterior mejora. Cuando hablamos de procesos, también entendemos
que estos están sujetos a mejora. Pero es necesario saber objetivamente qué se debe mejorar y
por qué. Cuando un proceso es medido, es fácil tener indicadores de desempeño parcial o total
dependiendo de cómo se defina.
Por ejemplo, si en un proceso de desarrollo de software se identifica que las pruebas están
resultando inapropiadas y no logran asegurar un buen resultado, sería conveniente poner atención
en esa parte del proceso y definir algunos indicadores para, posteriormente, hacer medidas y
evaluar qué mejora se debiera aplicar. O quizás, de otra forma, detectar que el problema no se da
en esa parte del proceso.
15
ESTE DOCUMENTO CONTIENE LA SEMANA 4
COMENTARIO FINAL
16
ESTE DOCUMENTO CONTIENE LA SEMANA 4
REFERENCIAS
Acuña, S. T.: De Antonio, A.; Ferré, X.; Maté, L. y López, M. (2001). The software process:
engineering and knowledge engineering. Vol. 1 Fundamentals, pp. 193-237. New Jersey,
International Organization for Standardization (2008). ISO 12207:2008, Systems and software
engineering - Software life cycle processes. Ginebra, Suiza: ISO. Recuperado de:
https://goo.gl/nRYgrI
Piattini, M.; García, F.; García, I. y Pino, F. (2012). Calidad de sistemas de información. México:
Pressman, R. (2010). Ingeniería de software, un enfoque práctico. 7.ª edición. España: Editorial
McGraw-Hill Interamericana S. A.
17
ESTE DOCUMENTO CONTIENE LA SEMANA 4
PARA REFERENCIAR ESTE DOCUMENTO, CONSIDERE:
Semana 4.
18
ESTE DOCUMENTO CONTIENE LA SEMANA 4
19
ESTE DOCUMENTO CONTIENE LA SEMANA 4