Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Autor:
Antonio Marco Rodrigo Jiménez
Tutora:
Isabel Román Martínez
Profesora colaboradora
El tribunal nombrado para juzgar el Proyecto arriba indicado, compuesto por los siguientes miembros:
Presidente:
Vocales:
Secretario:
Sevilla, 2018
El Secretario del Tribunal
Agradecimientos
Este proyecto tiene como objetivo realizar un estudio teórico de un proceso de calidad en el ámbito del
desarrollo software. Se describirán todas las partes de un modelo software en cascada, destacando el papel y la
intervención del departamento de calidad en las diferentes secciones.
Se ha elegido un modelo en cascada porque es el modelo software que se utiliza en ciertos proyectos dentro de
everis. La labor en dichos proyectos consiste en formar parte de la OAC (Oficina del Aseguramiento de la
Calidad), que realiza revisiones técnicas a los proyectos software para el cliente: CAPDER (Consejería de
Agricultura, Pesca y Desarrollo Rural), de la Junta de Andalucía.
En este proyecto se explicarán todas las posibles situaciones y casos dentro del ámbito del desarrollo software,
y se detallará cómo actúa la OAC en cada una de ellas. No obstante, se desarrollarán con más detalle aquellas
situaciones y casos que coincidan con las funciones directas de un técnico de calidad.
Abstract
The main purpose of this project is to elaborate a theoretical essay about a quality process, regarding software
development. Every part of a cascade software model will be described, focusing on the role and tasks of the
quality department through the different sections.
A cascade software model has been chosen because it is the software model used in some project inside everis.
The main task in such projects consisted on being part of the QAD (Quality Assurance Department), which
performs technical reviews to CAPDER software projects (Consejería de Agricultura, Pesca y Desarrollo
Rural), from the Junta de Andalucía.
In this project, all possible situations will be taken into account regarding software development, and the main
purpose of the QAD will be detailed in each. However, those situations related to being a quality technician
will be furtherly developed in detail.
Índice
Agradecimientos 9
Resumen 11
Abstract 13
Índice 14
Índice de Tablas 17
Índice de Figuras 20
1 Descripción general del sistema 1
1.1 Modelo 1
1.2 Definición de entidades 2
1.2.1 Calidad / OAC (Oficina del Aseguramiento de la Calidad) 2
1.2.2 Cliente 2
1.2.3 Equipo de Desarrollo 3
1.2.4 Despliegue 4
1.2.5 DP (Dirección de Proyecto) 4
1.2.6 JP (Jefe de Proyecto) 4
1.2.7 Comité de seguimiento 4
1.3 Interacción entre entidades 5
1.4 Definición de Entornos 7
1.5 Diagrama de flujo del proceso software 8
1.6 Detalle Del Proceso 9
2 Descripción específica del sistema 11
2.1 Introducción 11
2.2 Comienzo Del Proyecto 11
2.2.1 Análisis de la Realidad 11
2.2.2 Adjudicación 14
2.3 Definición Del Proyecto 27
2.4 Diseño Del Proyecto 31
2.4.1 DAO (Diseño de Arquitectura Orientado a Objetos) 31
2.5 Codificación Del Proyecto 35
2.5.1 Preparación Del Entorno de Construcción 36
2.5.2 Generación de Código 36
2.5.3 MIC (Manual básico de Instalación y Configuración) 36
2.5.4 MUS (Manual de Usuario) 38
2.5.5 Elaboración del PP (Plan de Pruebas) 40
2.6 Control de Calidad 44
2.6.1 Pruebas 45
2.6.2 Incidencias 50
2.6.3 Informes de Revisión Técnica (IRT) 64
2.6.4 Informes de Calidad 66
2.7 Pruebas de Usuario 72
2.7.1 Pruebas Alfa 72
2.7.2 Pruebas Beta 72
2.8 Despliegue 73
2.9 Finalización Del Proyecto 76
2.9.1 Mantenimiento 76
2.9.2 Histórico de Proyecto 77
2.9.3 Informe de Fin de Proyecto 78
2.9.4 Cierre 79
3 Herramientas CASE 80
3.1 Herramientas CASE para la ingeniería de requisitos 80
3.2 Herramientas CASE para el diseño 80
3.3 Herramientas CASE para la codificación 81
3.4 Herramientas CASE para el aseguramiento de la calidad 81
3.4.1 JIRA 81
3.4.2 QM 82
3.4.3 Mantis 83
3.4.4 TOAD Oracle 83
3.4.5 Jenkins y Sonarqube 84
3.4.6 SoapUI 84
3.4.7 KeePass 85
3.4.8 Notepad++ 85
3.4.9 DiffPDF 85
3.4.10 VirtualBox 85
4 Conclusiones 86
Referencias 87
Glosario 90
16 Índice de Tablas
ÍNDICE DE TABLAS
P
ara el proceso software que vamos a explicar en este TFG, hemos elegido un modelo en cascada,
que es el que se usa en mis prácticas de empresa.
El modelo en cascada (basándonos en la publicación de Winston Royce, 1970 1), se caracteriza por
seguir un orden secuencial en las tareas del desarrollo software, no se empieza una tarea hasta que no se
acaba la anterior. De esta manera, primero se realizará el análisis y definición de requisitos, seguida del
diseño, codificación, pruebas y despliegue. Este modelo presenta una serie de ventajas e inconvenientes
sobre el resto de modelos, las cuales presentamos a continuación:
Tabla 1. Modelo en Cascada
MODELO EN CASCADA
VENTAJAS INCONVENIENTES
Planificación óptima de tiempo y dinero Es muy complicado introducir cambios en cualquier etapa
Permite suplir pérdidas en el equipo de desarrollo Las pruebas se realizan muy tarde, provocando que los
con bastante facilidad errores tarden en identificarse y corregirse
Estas características del modelo en cascada hacen que sea especialmente efectivo en proyectos estáticos,
bien definidos desde el principio en los que sea muy poco probable la introducción de cambios durante el
desarrollo del software (En adelante SFW). Se beneficiarán de este modelo empresas que:
1) Cuenten con un gran capital, que se puedan permitir el coste en tiempo y dinero ante la aparición
de problemas y errores. A costa de este gasto, garantizarán la satisfacción del cliente,
aumentando las posibilidades de trabajar juntos en el futuro.
2) Tengan una plantilla extensa y renovable, la cual dará lugar a equipos humanos poco
experimentados. El modelo en cascada es el más fácil para dichos equipos.
En resumen, este TFG propondrá un modelo de proceso software idóneo para grandes empresas que
contraten nuevos empleados regularmente, especializada en proyectos estáticos bien definidos al inicio.
1 ‘Managing the Development of Large Software Systems’, Winston Royce, 1970, creador del modelo de desarrollo software en cascada, m{s
tarde avalado por las publicaciones: ‘Software Engineering Economics’, Barry Boehm, 1981 y ‘Software Engineering’, Ian Sommerville, 1985
1
2 Descripción general del sistema
El departamento de calidad o OAC tiene como misión garantizar la calidad del producto software como
tal, asociado a un proyecto de desarrollo, encargándose de la ejecución de las pruebas tanto funcionales
como técnicas, detección de incidencias tanto de los documentos como del software generados por el
resto de entidades y elaboración de informes con el resultado de las pruebas llevadas a cabo.
También es el órgano encargado de la supervisión y de la evaluación de los proyectos, del cumplimiento
de la metodología definida. Participa en la revisión de los productos seleccionados para determinar si son
conformes o no a los procedimientos, normas o criterios especificados, comprobando que se han llevado a
cabo las medidas preventivas o correctoras necesarias. Durante todas las etapas del proceso software, la
OAC realizará el número de revisiones técnicas necesario hasta que el entregable en cuestión supere
dichas revisiones satisfactoriamente.
La OAC también será aquella figura encargada de la validación de los modelos de datos conceptual,
lógico y físico, generados durante el análisis y diseño del software, en cuanto a nomenclatura,
normalización, rendimiento, etc.
El departamento de calidad será la sección a la que prestaremos especial atención en este documento, en
la que profundizaremos en la sección 2.6 Control de Calidad.
1.2.2 Cliente
El cliente es aquella persona, física o jurídica, que comienza el proceso software. El cliente es aquel que,
tras un análisis de la realidad de su entorno, encuentra una carencia, problema, o posible mejora de su
sistema o entorno. Dividiremos al cliente en 2 tipos:
Persona física: Cliente formado por una única persona, la cual realizará el análisis de realidad de
su entorno, y decidirá si necesita o no ayuda externa para llevar a cabo la tarea a realizar.
Persona jurídica: Cliente consistente en una empresa, organismo o asociación.
o Empresas que no recurren a un concurso: Este cliente buscará soluciones por su
cuenta a los problemas o carencias analizados, o buscará ayuda de un tercero
específicamente seleccionado, ya sea una ayuda gratuita personalizada, o la venta de un
servicio.
o Empresas que recurren a un concurso: Este cliente es en el que nos centraremos en
este documento. Consiste en una empresa, organismo o asociación, que para solucionar
los problemas analizados, publica un pliego de prescripciones técnicas, y, a través de un
2 A falta de disposición a texto completo de las normas ISO mencionadas, utilizaremos como referencia la norma UNE 71044 – 1999
(AENOR), equivalente a la norma ISO/IEC 12207:1995.
Proceso de Calidad en Ingeniería del Software 3
concurso, otras empresas, organismos o asociaciones presentarán sus ofertas para cubrir
lo mejor posible las necesidades del cliente al precio más razonable. El cliente elegirá
qué empresa llevará a cabo su proyecto basándose en la reputación, confianza,
efectividad y presupuesto.
La empresa cliente designará a un RAU (Responsable del Área Usuaria), que será el interlocutor
representativo de la empresa cliente durante todo el proceso software en adelante. Toda comunicación
entre las diferentes entidades con el cliente se gestionará a través del RAU.
El RAU se encargará de realizar y/o gestionar la realización de las pruebas alfa y beta del software una
vez esté codificado por el equipo de desarrollo y revisado y probado por el departamento de calidad. Las
pruebas alfa las realizará en el entorno de certificación, sin que sea necesario el despliegue final de la
aplicación. Las pruebas beta las realizará una vez la aplicación ya haya sido desplegada por el equipo de
despliegue, en su propio entorno de cliente. En ambas pruebas, comunicará al departamento de calidad las
incidencias o problemas que encuentre, para que éste las revise y, a su vez, dé parte al equipo
correspondiente para que las corrija.
Figura encargada del desarrollo del software, en todo su alcance, desde su inicio hasta su mantenimiento.
Es el encargado de analizar las necesidades del software, modelarlo, diseñarlo y construirlo, realizando
los planes de pruebas necesarios para generar productos de calidad que satisfagan las necesidades
planteadas inicialmente. Es el encargado de elaborar la documentación asociada al proceso de desarrollo y
de revisarla y actualizarla, si fuese necesario.
Está formado por dos entidades bien diferenciadas:
1.2.3.1 Diseño
El equipo de diseño es la entidad encargada de elaborar el documento de diseño del software. Este equipo
analizará los requisitos exigidos por el cliente, para encontrar la manera óptima de organizar y codificar el
software, y que éste cumpla dichos requisitos de la manera más eficiente posible.
El documento que elabore el equipo de diseño deberá ser sometido a una revisión técnica por el
departamento de calidad. A medida que el departamento de calidad revise los documentos de diseño y
encuentre incidencias, el equipo de diseño deberá ir corrigiéndolas, reelaborando el documento si es
necesario y reentregarlo al departamento de calidad para que lo revise de nuevo.
Una vez revisado, el documento de diseño se entregará al equipo de codificación para que codifique el
software siguiendo sus pautas.
1.2.3.2 Codificación
El equipo de codificación será la entidad que codifique el software creando así la aplicación deseada por
el cliente, o actualizando y mejorando una entrega anterior. Utilizará la arquitectura establecida por el
equipo de diseño, y seguirá todas las pautas del documento de diseño elaborado por dicho equipo para
organizar y codificar el software.
Este equipo elaborará los ficheros de software, scripts si se necesitaran, el documento de plan de pruebas
y los documentos de manual de usuario y manual de instalación, que deberán ser revisados por el
departamento de calidad.
A medida que el departamento de calidad pruebe el software y detecte las incidencias en éste, o en los
documentos elaborados, el equipo de codificación tendrá que ir corrigiendo dichas incidencias, reelaborar
el software y/o los documentos si es necesario, y reentregarlos al departamento de calidad para que revise
de nuevo.
3
4 Descripción general del sistema
1.2.4 Despliegue
El equipo de despliegue sera el encargado de la creación de los distintos entornos (definidos en la sección
1.4 Definición de entornos) donde se llevarán a cabo las tareas del proceso software. Si ya estaban
creados con anterioridad, este equipo se encargará de actualizarlos para el proyecto software actual y
prepararlos para operar en ellos.
Por otro lado, este equipo es la entidad que desplegará la aplicación en el entorno de certificación una vez
codificada para que la OAC la pruebe, y en el entorno de cliente una vez ha sido totalmente revisada y
probada por el departamento de calidad, y el cliente haya realizado las pruebas alfa en el entorno de
certificación. Esto engloba el conjunto de acciones necesarias para que la aplicación sea accesible, se
conecte con todos los subsistemas que necesite y tenga acceso a todos sus datos y registros, entre otras
tareas.
La OAC revisará el despliegue del software y llevará a cabo una segunda ejecución de las pruebas de
sistema y de las pruebas de despliegue cuando el equipo de despliegue implante la aplicación en el
entorno de cliente. Si la OAC detecta incidencias durante las pruebas de sistema o despliegue, se las
comunicará al equipo de despliegue para que las corrija y vuelva a implantar el software en el entorno de
cliente, repitiéndose el proceso tantas veces como sea necesario hasta que las pruebas de sistema y
despliegue no generen ningún error.
Tiene como funciones comunicarse o reunirse con el RAU para elaborar una planificación temporal y
presupuestaria, definir los objetivos que necesita que se cubran, y llevar el seguimiento del proyecto a
través de todas sus etapas en todo momento.
El RAU y una representación de los usuarios finales del cliente facilitarán las pautas para que DP elabore
el documento DDR (Definición Detallada de Requisitos), que será revisado por el departamento de
calidad.
Responsable del Equipo de Desarrollo, y por tanto, responsable de todas las entregas que este deban
realizar. JP pertenece al Equipo de Desarrollo y será el interlocutor representativo de los equipos de
diseño y codificación.
Esta figura se encarga de realizar el seguimiento del proyecto, contribuye en la definición del proyecto y
emprende las acciones correctoras que se estimen oportunas, para obtener productos que se adecuen a las
necesidades de la organización. El Comité de Seguimiento se encargará de seguir la evolución del proyecto y
participar en su definición, y marcar las pautas técnicas de desarrollo (normativas, entornos…).
El comité de seguimiento velará por la entrega eficaz y a tiempo de todos los entregables que conforman
el proyecto, y controlará a los equipos de diseño, codificación, calidad, y despliegue.
Según el alcance del proyecto, el comité de seguimiento estará típicamente formado por DP, JP y RAU.
4 Como se indica el apartado 6.3 Proceso de Aseguramiento de la Calidad, UNE 71044:1999 (ISO/IEC 12207:1995)
5 Ejemplos encontrados en https://www.lancetalent.com/blog/8-herramientas-para-la-gestion-de-proyectos-profesionales/
6 JIRA: https://www.atlassian.com/software/jira
5
6 Descripción general del sistema
Tabla 2. Entornos
ENTORNOS
TIPO DESCRIPCIÓN
7
8 Descripción general del sistema
Esta sección tiene como objetivo resumir de manera breve el contenido expuesto en el diagrama de flujo
de la Figura 1, destacando los procesos principales que se llevan a cabo desde el inicio del Proceso de
Calidad y comienzo del proyecto hasta el final del mismo.
La descripción, orden y motivación de las siguientes tareas se basa en la normativa descrita por la ISO9,
tanto en el diagrama de flujo previamente descrito como en la sección que ahora desarrollaremos.
9 Bas{ndonos en la sección 5.Procesos principales del ciclo de vida, UNE 71044-1999 (ISO/IEC 12207:1995)
9
10 Descripción general del sistema
P
ara la realización de esta sección, se ha hecho uso de la normativa definida por la ISO, al igual que en el
apartado anterior: UNE 71044-1999 (ISO/IEC 12207:1995), norma que describe los procesos principales
del ciclo de vida del software, los procesos de apoyo y los procesos organizativos. Seguiremos el orden
que dictan tanto la normativa como el modelo en cascada.
Primera fase del proceso, en la cual, el Cliente estudia su entorno y lleva a cabo un análisis de la realidad
para descubrir las carencias del software que se utiliza, para decidir si hace falta una mejora o
actualización del mismo, o la codificación de un nuevo software para cubrir una necesidad encontrada
diferente. Del mismo modo, una vez realizado este análisis, el Cliente llevará a cabo un proceso de
adjudicación para su proyecto en vistas a elegir a la entidad (física o jurídica) que llevará a cabo el
proyecto software que cubra las necesidades analizadas.
Esta sección se apoyará en:
La sección 5.1 Proceso de Adquisición, UNE 71044-1999 (ISO/IEC 12207:1995)
La norma UNE-EN 16271:2013 Gestión del Valor. Expresión funcional de necesidades y pliego de
especificaciones funcionales. Requisitos para la expresión y validación de las necesidades a satisfacer por
un producto en el proceso de adquisición u obtención del mismo. (Correspondencia con la Norma
Europea EN 16271:2012)
*Nota: El comienzo del proyecto es la única parte del proceso software en la cual la OAC no desempeña
funciones directas, pero se explicará de manera necesaria para comprender el resto de partes del proceso
software en las que sí interviene Calidad.
11
12
Descripción específica del sistema
Con el primer grupo de procesos, los analistas elaborarán un prototipo de requisitos funcionales acerca de
las funciones fundamentales que deberá realizar el software como base del funcionamiento. Constituyen
la acción principal de la empresa (o sección de la empresa) y necesitan automatizarse de una manera
rápida y cómoda haciendo uso de módulos software.
Con los procesos que actualmente se realizan y no se deben seguir realizando, se pretende evitar todas las
tareas innecesarias o irrelevantes. A la hora de elaborar los requisitos, los analistas discernirán qué
procesos se deberían evitar en el nuevo software a crear, delimitando así el alcance de los requisitos.
Todos los requisitos que se definan estarán destinados a solicitar las funcionalidades estrictamente
necesarias.
Con los procesos que actualmente no se realizan y se deberían realizar, se pretende confeccionar un
prototipo con todos los módulos del software posibles que ayuden a la consecución de las tareas
principales. De esta manera, los procesos de negocio que se necesitan llevar a cabo serán realizados por
dicho prototipo, mejorando así el rendimiento de la empresa.
Este es el caso en el que la empresa parte ya con una aplicación parecida a la que quiere solicitar, que
cubrirá (en mayor o menor medida) los requisitos de la empresa. La motivación de solicitar una nueva
aplicación capaz de mejorar o sustituir a la anterior surge de la evaluación exhaustiva de dicho software,
en la cual se detectan carencias, incidencias, aspectos a mejorar, y nuevas funcionalidades que los
usuarios finales echan de menos en la aplicación.
El Cliente puede llevar a cabo el análisis de la realidad haciendo uso de diversas técnicas:
1) Encuestas de software13: El Cliente prepara un cuestionario con preguntas diseñadas
previamente para los usuarios del software a evaluar. Los usuarios rellenarán el cuestionario
por escrito. En este tipo de cuestionarios normalmente se valora si la aplicación cumple
correctamente con las necesidades de las actividades de la empresa, si la forma de llevar a
cabo los procesos es la idónea, o si se podría enfocar de otra forma. También se hace una
recopilación de aspectos más técnicos del software, para mejorar este apartado con la nueva
aplicación:
-El software es fácil de usar
-Cubre todos los aspectos necesarios en el desempeño laboral
-Se echa de menos alguna funcionalidad
-Responde rápidamente
-Se bloquea a menudo
Tabla 3. Extracto de cuestionario de satisfacción del usuario con el software que utiliza14
Muy en En De Muy de
CUESTIONARIO SOFTWARE
desacuerdo desacuerdo acuerdo acuerdo
Se ejecuta lentamente X
12 Basado en el est{ndar ISO 21500:2012, Guidance on Project Management, apoyado por referencias a:
https://www.emprendepyme.net/tecnicas-e-instrumentos-para-detectar-las-necesidades-de-capacitacion.html,
13 Apoyado en https://es.surveymonkey.com/mp/employee-satisfaction-surveys/
14 Basada en https://www.survio.com/plantilla-de-encuesta/evaluacion-de-software y respaldado por:
https://www.monografias.com/docs/Ejemplo-encuesta-de-satisfacci%C3%B3n-para-usuario-de-FKZ3RNCMY
12
Proceso de Calidad en Ingeniería del Software 13
Muy en En De Muy de
CUESTIONARIO SOFTWARE
desacuerdo desacuerdo acuerdo acuerdo
momento
Es complicado de usar X
Disfruto su manejo X
Una vez el Cliente ha recopilado (por cualquiera de las vías) todas las necesidades e incidencias de su
empresa y, si lo hubiera, software previo, elaborará un documento que veremos en la siguiente sección, y
estará listo para comenzar con la tarea de la adjudicación.
13
14
Descripción específica del sistema
2.2.2 Adjudicación
La adjudicación se refiere al proceso mediante el cual el Cliente selecciona qué entidad (física o jurídica)
se va a encargar de dar solución a las necesidades previamente estudiadas y detectadas. Según el análisis
y el tipo de Cliente, hay dos formas de proceder claramente diferenciadas: con y sin lanzar un concurso
público.
Esta sección usa como referencias la sección 5.1 Proceso de Adquisición, UNE 71044-1999 (ISO/IEC
12207:1995) y los apuntes de Proyectos de Telemática, asignatura de 4to del Grado de Ingeniería de
Telecomunicaciones.15
Este es el caso en el que el Cliente selecciona al adjudicatario que resolverá sus necesidades sin lanzar un
concurso público. Se basará en el presupuesto que ofrezcan empresas o autónomos (según la envergadura
del proyecto), y contratará el servicio según el RGCE.16
Este es el caso de empresas y proyectos de menor envergadura en cuanto a tiempo y dinero, que solicitan
el desarrollo directamente al adjudicatario.
Contratos de las Administraciones Públicas, y por el Reglamento General de la Contratación del Estado(Decreto 3410/1975, de 25 de
noviembre)
14
Proceso de Calidad en Ingeniería del Software 15
En este caso, el Cliente decide lanzar un concurso público para que se presenten empresas con sus
respectivas Ofertas que compitan por convertirse en la empresa adjudicataria encargada dar solución a
las necesidades del Cliente. Es el caso típico de empresas y proyectos de gran envergadura, tiempo y
dinero. Será el caso en el que nos centraremos en este TFG y que tomaremos como base. El siguiente
diagrama de flujo resume el proceso básico desde que el Cliente decide lanzar el concurso hasta que elige
a una empresa adjudicataria satisfactoria que cumpla con sus necesidades:
17
17Figura extraída directamente de: Documento ‘Introducción a los Proyectos’, Departamento de Ingeniería Telem{tica, 2017-2018:
https://ev.us.es/bbcswebdav/pid-2439180-dt-content-rid-8100833_1/courses/201718-1990061-199-EC/Proyectos-tema01.pdf
15
16
Descripción específica del sistema
CONTENIDOS DESCRIPCIÓN
Objetivos generales
(Todas aquellas carencias recogidas en el
previo análisis de la realidad) Requisitos de planificación y organización del equipo de trabajo
Criterios de valoración
Presupuesto máximo
ECONÓMICOS
Forma de pago
18Basado en el Trabajo Final Proyectos de Telem{tica, realizado por mí, Antonio Marco Rodrigo Jiménez, y corregido por el profesor titular
(PDI del Departamento de Telem{tica) Rafael Estepa.
16
Proceso de Calidad en Ingeniería del Software 17
17
18
Descripción específica del sistema
1) Procedimiento abierto: Cualquier empresa, asociación u organización tendrá acceso a este pliego y
será libre de presentarse al concurso.
2) Procedimiento restringido: El Cliente elegirá a unos cuantos contratistas por selección previa. Sólo
estos invitados podrán presentarse al concurso.
3) Procedimiento negociado: Este modo es más bien una reunión en la que el Cliente convoca a unos
pocos contratistas, con los que negocia las condiciones del proyecto.
Si el cliente se trata de la Administración Pública, las plataformas online donde publicará sus pliegos
serán:
https://contrataciondelestado.es
http://www.juntadeandalucia.es/contratación
Si el cliente se trata de una empresa privada y sigue un procedimiento abierto, distinguimos diferentes maneras
de publicidad del pliego:
Televisión
Radio
Prensa
Internet
Exterior
En los casos de procedimiento restringido o negociado, típicamente se notificará a los contratistas por vía
privada (correo, teléfono, etc).
18
Proceso de Calidad en Ingeniería del Software 19
21
21Figura extraída directamente de: Documento ‘Introducción a los Proyectos’, Departamento de Ingeniería Telem{tica, 2017-2018:
https://ev.us.es/bbcswebdav/pid-2439180-dt-content-rid-8100833_1/courses/201718-1990061-199-EC/Proyectos-tema01.pdf
19
20
Descripción específica del sistema
22
Si la respuesta a estas preguntas es SÍ, como se ve en el diagrama de flujo de arriba, la empresa está interesada
en llevar a cabo el Proyecto Software que cubre las necesidades del Pliego publicado por la empresa Cliente.
22Figura extraída directamente de: Documento ‘Introducción a los Proyectos’, Departamento de Ingeniería Telem{tica, 2017-2018:
https://ev.us.es/bbcswebdav/pid-2439180-dt-content-rid-8100833_1/courses/201718-1990061-199-EC/Proyectos-tema01.pdf
20
Proceso de Calidad en Ingeniería del Software 21
CONTENIDO DESCRIPCIÓN
Describe todos los entregables, añadiendo una breve descripción de cada uno. Resume
todo lo que la empresa contratista va a ofrecer al Cliente si es elegida.
El alcance también define el ámbito y las responsabilidades de adjudicatario y Cliente.
Esto sirve para delimitar las responsabilidades de ambas partes, y quién se encarga de
Alcance conseguir determinados aspectos en el proyecto. Es importante para evitar futuros
problemas de responsabilidad legal, se describen aspectos como:
-Quién facilita lugares o entornos de ejecución necesarios
-Quién se encarga de conseguir permisos legales
-Si se requerirá suministro ilimitado de red eléctrica u otros recursos, etc
Describe el personal que va a participar en el proyecto, pasando por los Directores de
Proyecto (DP), Jefes de Equipo, Desarrolladores, OAC, Programadores, Técnicos,
Recursos Humanos Diseñadores, Documentadores, etc. También incluye su titulación, certificación,
experiencia y salario.
Detalla los costes que va a tener la aplicación (siempre respetando el presupuesto máximo
Presupuestos designado por el Cliente en el Pliego), desglosando los gastos: Salario de los trabajadores,
gastos generales, instalaciones, etc.
En esta sección se plasma el resultado de un estudio previo de los posibles problemas que
Análisis de Riesgo puedan ocurrir durante el desarrollo del proyecto. Se detalla la probabilidad de que dichos
problemas ocurran, su prioridad y urgencia, y las soluciones planteadas ante los mismos.
En esta sección se describe cómo se va a llevar a cabo el control de calidad por parte de la
OAC durante el proyecto, se define quién forma la OAC y los recursos disponibles para
Plan de Calidad dicha tarea. También se explica la metodología de revisiones técnicas y ejecución de
pruebas que la OAC va a utilizar.
En caso de que existan, se suele tratar de leyes y normativas, planos generales, guías de
Anexos usuario de interfaces o documentos de diseño extra.
La cantidad y tipo de anexos variarán en gran medida según el tipo de proyecto/SFW.
21
22
Descripción específica del sistema
A continuación mostramos los entregables típicos que incluye un Proyecto Software de este tipo si la empresa
resulta elegida como ganadora del concurso, y le es adjudicado el Proyecto.:
La información para esta sección del TFG se apoya como referencia en el Trabajo Final para la
asignatura: Proyectos de Telemática, realizado por mí: Antonio Marco Rodrigo Jiménez, y corregido por
el profesor titular (PDI del Departamento de Telemática) Rafael Estepa.
ENTREGABLES DESCRIPCIÓN
(Plan de Pruebas) En él se aporta toda la información necesaria para que se pruebe la aplicación, y se
compruebe así que se cumplen todos los requisitos descritos en el DDR.
Más información en las secciones 2.5.5 Elaboración del PP, y sección 2.6.1 Pruebas
22
Proceso de Calidad en Ingeniería del Software 23
Configuración) También detalla cómo hacer un backup del entorno y cómo hacer una “marcha atrás”
utilizando dicho backup, necesario por si algo falla en la instalación para que no
afecte al entorno anterior.
Más información en la sección 2.5.3 MIC
La empresa ofrece correos y números de contacto para ayudar a los usuarios cuando
estén utilizando el software instalado. En caso de que tengan dudas o no sepan
Asistencia Técnica hacer algo, la empresa se compromete a brindar asistencia técnica (presencial o
remota) a los usuarios.
23
24
Descripción específica del sistema
Los entregables arriba descritos vienen recogidos en lo que se denomina un diagrama WBS (Work Breakdown
Structure „Estructura de Descomposición del Trabajo‟). Se trata de una representación gráfica de los
entregables finales al Cliente, divididos por categorías. Se encarga de recoger de manera visual todos los
entregables una vez aceptado el proyecto. Aquí mostramos un ejemplo genérico:
24
Proceso de Calidad en Ingeniería del Software 25
El método de elección depende de cada Cliente y Proyecto, el proceso de decisión se puede llevar a cabo de
muchas maneras distintas, entre las que destacan:
1) Descartar primero todas aquellas propuestas que no cumplan los requisitos de presupuesto o fecha de
finalización, y después decidir entre los restantes
2) Descartar primero todas aquellas propuestas que no cumplan los requisitos de formación, experiencia
en el sector o conocimiento técnico, y después decidir entre los restantes
3) Realización de una Matriz de Evaluación de Alternativas, en la cual se plasman los criterios
ponderados según su importancia, y a cada propuesta se le puntúa en cada uno de los parámetros.
Aquella propuesta que reúna más puntos en total es aquella que mejor cubre todos los criterios
planteados (como los citados anteriormente). A continuación se muestra un ejemplo de la misma:
Puntuación: Criterios (Bajo cada criterio se muestra el porcentaje de importancia en la decisión, para
ponderar el resultado en consecuencia)
0-10
Propuesta 1 8 5 2 8 6
Propuesta 2 5 5 5 5 5
Propuesta 3 4 3 9 8 2
Propuesta 4 7 2 1 10 0
Propuesta 5 6 7 6 4 1
De este modo, la propuesta ganadora será la que obtenga una puntuación más alta, habiendo obtenido muchos
puntos en los parámetros de más grado de importancia.
En este ejemplo, si una de las propuestas es muy fiable y se habla mucho de ella, y además tiene mucha
experiencia, (como la Propuesta 3), es propensa a ganar el concurso, ya que estos son dos de los parámetros
que más ponderan.
25
26
Descripción específica del sistema
La propuesta o empresa ganadora, se reunirá con el RAU de nuevo para aclarar los términos del alcance. Un
alcance bien definido marcará las pautas de trabajo a seguir entre el Cliente y la empresa contratista. Al fin y al
cabo, no deja de ser un proceso de venta: la empresa contratista le ofrece un servicio al Cliente, y el Cliente le
va a remunerar por ello. Así, tienen que quedar bien delimitados los límites y responsabilidades de cada parte,
para evitar confusiones, conflictos y problemas en el futuro. Mientras más transparente y claro sea este
contrato, mejor, por ello es muy importante ser profesional en este sentido. Esto generará una situación de
confianza mutua entre Cliente y adjudicatario, y se abre la posibilidad de seguir colaborando y trabajando
juntos en el futuro.
26
Proceso de Calidad en Ingeniería del Software 27
Para la realización de esta sección nos hemos basado fundamentalmente en la norma UNE-ISO/IEC
90003-200, ISO 9001-2000 y MÉTRICA v.3, Modelo SAC: „SAC007P_DDR_Definicion Detallada
Requisitos_0100‟, añadiendo a pie de página referencias más específicas referentes a cada parte de la
sección de definición del proyecto.
Llegados a este punto, el Cliente ya ha elegido a su empresa contratista que va a realizar el Proyecto
Software que cubrirá sus necesidades. Ahora que ya están dispuestos a trabajar juntos, y se ha firmado el
contrato, la comunicación entre Cliente y contratista será indispensable. De esta necesidad surge la figura
de DP (Dirección de Proyectos). El director o la directora de proyectos será aquella persona responsable
de ponerse en contacto con el Cliente para todo lo relacionado con el proyecto.
24
RAU, DP y una representación del usuario final de la aplicación de la empresa cliente, llevarán a cabo
una primera reunión en la cual pondrán en común toda la información posible para elaborar el DDR,
atendiendo a las necesidades del Pliego de Prescripciones Técnicas propuesto por el cliente, y al alcance
propuesto en la Oferta de la empresa contratista para dar solución a dichas necesidades. Dado que el
Cliente ha elegido a la empresa ganadora, es previsible que las necesidades del Cliente y lo que ofrece la
empresa sean idénticas o muy parecidas, o que al menos se cubra la mayoría de las necesidades
requeridas.
Se llevarán a cabo varias reuniones de puesta en común, hasta que DP reúna todos los requisitos
solicitados por RAU y los usuarios finales. (La labor de la OAC en esta sección será la de realizar una
revisión técnica al DDR antes de continuar a la siguiente fase, cuyos detalles veremos más adelante en el
apartado: 2.5 Control de Calidad).
25
Es importante convocar tantas reuniones como sea necesario para asegurarse de que absolutamente
todos los requisitos que Cliente solicita queden correctamente recogidos por DP. Con el modelo en
cascada que estamos usando para este caso, es imprescindible que este paso sea perfecto y sin errores o
ambigüedades, ya que un fallo al comienzo de un proceso en cascada, acarrea problemas en todas las
etapas siguientes.
El documento que elaborará DP incluyendo todos los requisitos recogidos en estas reuniones es el
denominado DDR (Definición Detallada de Requisitos), enmarcado según MÉTRICA v.3 en la fase de
Análisis del Sistema de Información (ASI).
El DDR tiene como objetivo recoger todos los requisitos del cliente para su aplicación. Normalmente, los
participantes implicados en su elaboración son el Jefe de Proyecto del Proveedor, el Jefe de Proyecto del
Cliente, y analistas.
Hay distintos tipos de requisitos, según el recurso de referencia 0408 de MADEJA (Marco de Desarrollo
de la Junta de Andalucía)26 y la norma ISO/IEC 9126 „Software engineering - Product quality‟
clasificados según la naturaleza de los mismos:
24 Apoyado por la Norma ISO/IEC 14764:1999, apartado 7.3.3 (directrices para un plan de mantenimiento).
25 Apoyado por la Norma ISO/IEC 12207:1995/Amd.1:2002, apartados F.1.3.1, F.1.3.2, F.1.3.4, 5.2.1, 5.2.6, 6.4.2.1, 6.6 y F3.1.5
26 Subsistemas de Ingeniería, RECU-0408, http://www.juntadeandalucia.es/servicios/madeja/contenido/recurso/408
27
28
Descripción específica del sistema
TIPOS DE REQUISITOS
28
Proceso de Calidad en Ingeniería del Software 29
El DDR, además de la definición de todos los requisitos deseados para la aplicación, incluye una Matriz
de Trazabilidad. Se trata de una tabla que reúne todos los requisitos descritos y muestra varios
parámetros acerca de los mismos, como son su:
Origen
Verificabilidad
Prioridad
Importancia
Relaciones con otros de los requisitos
La Matriz de Trazabilidad27 es una herramienta fundamental para la Ingeniería del Proyecto. Dicha
matriz es la pieza clave que nos ayuda a llevar un seguimiento de los requisitos de la aplicación, y supone
la diferencia entre una buena o mala ejecución que no diste mucho de la planificación. Está dirigida al
comité de seguimiento, y aporta varios beneficios al proyecto.
Esta matriz es muy importante debido a que permite controlar el ciclo de vida de los requisitos. A medida
que se van validando los requisitos, se actualizará esta Matriz de Trazabilidad, al tratarse de una tabla
dinámica. De esta manera el comité de seguimiento es capaz de controlar qué requisitos han sido
validados, cuáles están pendientes o cuáles han sido rechazados, en cualquier etapa.
Por otro lado, al mostrar las relaciones de los requisitos entre ellos, identifica dependencias críticas y
detecta rápidamente inconsistencias entre dos o más requisitos. Así, cuando se introduce un cambio para
un requisito, podemos ver en la Matriz de Trazabilidad a qué otros requisitos afecta este cambio, y
comprobarlos o modificarlos si es necesario rápidamente. También, si se detecta un fallo referente a un
requisito, se acude a la tabla para comprobar a qué otros requisitos puede afectar dicho fallo.
29
30
Descripción específica del sistema
Por otro lado, como tarea de esta sección del proceso software, la labor de la OAC también incluye la
realización del PPA (Plan de Pruebas de Aceptación). Este es el primer plan de pruebas que se elabora, sin
embargo, las pruebas de aceptación serán de las últimas que se ejecuten (consultar sección 2.6.1 Pruebas
para más detalles). La OAC, una vez realice la revisión técnica al DDR, elaborará este plan de pruebas, el
cual servirá de guía a los usuarios finales en la realización de las pruebas que verifiquen los requisitos
funcionales solicitados, en cuyo caso se aceptará el sistema.
El Plan de Pruebas de Aceptación (PPA) desarrolla las pruebas de Aceptación, las cuales se realizarán o
supervisarán por el RAU, cuyos detalles describiremos en la sección 2.6.1 Pruebas, y en la sección 2.7
Pruebas de Usuario.
30
Proceso de Calidad en Ingeniería del Software 31
En este punto, el DDR ha sido elaborado y satisfactoriamente revisado por la OAC. Así, DP se lo pasará
al equipo de Diseño, finalizando de esta manera la fase ASI y comenzando la fase DSI (Diseño del
Sistema de Información).
El objetivo del proceso de Diseño del Sistema de Información (DSI), según MÉTRICA v.3, modelo SAC:
„DSI Procedimiento Global‟28 es la definición de la arquitectura del sistema y del entorno tecnológico que
le va a dar soporte, junto con la especificación detallada de los componentes del sistema de información.
El DSI consta de varios entregables que el equipo de Desarrollo tendrá que elaborar, incluyendo, entre
otros, el documento de Diseño. En esta sección, nos centraremos en este último, el cual será elaborado
concretamente por el equipo de Diseño.
El equipo de Diseño elaborará el documento de diseño del sistema que mejor se adapte a los requisitos
especificados en el DDR, y que constituya la base para desarrollar el sistema de la forma más eficiente y
óptima en cuanto a tiempo, simplicidad y funcionalidad.
El buen trabajo del equipo de Diseño se reflejará en la definición de una arquitectura estructurada,
organizada y sencilla de entender e implementar. El equipo de Codificación será el principal destinatario
de los documentos que elabore el equipo de Diseño, ya que seguirán las pautas indicadas en sus
documentos.
A continuación, describiremos detalladamente el documento que Diseño tendrá que elaborar, basándonos
en MÉTRICA v.3, modelo SAC: „SAC007P_DAO_Diseño Arquitectura OO_0100‟.
Los objetivos de este entregable son, por un lado, definir el particionamiento físico del sistema, especificar en
detalle el entorno tecnológico y sus requisitos de operación, administración, seguridad, auditorías y control de
acceso. Y por otro lado, el diseño detallado del Sistema, el cual comprende un conjunto de actividades cuyo
alcance se resume a continuación:
Diseño de Casos de Uso Reales, con el diseño detallado del comportamiento del sistema para los
casos de uso y el diseño de la interfaz de usuario.
Diseño de Clases, con el diseño detallado de cada una de las clases que forman parte del sistema, sus
atributos, operaciones, relaciones y métodos, y la estructura jerárquica del mismo.
Diseño Físico de Datos que incluye el diseño y optimización de las estructuras de datos del sistema.
El DAO incluye trazas a los requisitos, de manera que con la elaboración del documento se puede comprobar
qué requisitos van a ser validados, en especial en la sección de Casos de Uso, los cuales representan cómo se
va a dar solución a los requisitos funcionales, y en la sección de descripción del entorno tecnológico, la cual
incluirá trazas para los requisitos de entorno tecnológico y otros requisitos no funcionales.
A continuación, describiremos en detalle la estructura de un DAO elaborado por Diseño:
28 Apoyado en la norma ISO 9001-2000, sección 7.3: „Diseño y Desarrollo‟ y en la norma ISO/IEC 12207, sección: „Development‟
31
32
Descripción específica del sistema
DAO
SECCIÓN DESCRIPCIÓN
Subsecciones:
1. INTRODUCCIÓN 1.1 Objeto
1.2 Alcance
Se describe el propósito del documento de Diseño de Arquitectura Orientado
1.1 Objeto a Objetos del Sistema para la entrega específica.
3. ARQUITECTURA DE Subsecciones:
32
Proceso de Calidad en Ingeniería del Software 33
Se especifica el comportamiento del sistema para cada caso de uso. Por ello
será necesario identificar las clases que intervienen en cada caso de uso,
teniendo en cuenta las clases adicionales que surgen como consecuencia del
diseño. Una vez identificadas las clases participantes dentro de un caso de
3.2 Diseño de Casos de Uso uso es necesario completar los escenarios que se recogen del análisis,
incluyendo las clases de diseño que correspondan y teniendo en cuenta las
restricciones del entorno tecnológico. Es necesario analizar los
comportamientos de excepción para dicho escenarios.
Se describen las clases que va a tener el sistema, así como sus atributos,
métodos y relaciones entre ellas. Se deberá detallar toda la información
3.3 Modelo de Clases de mencionada para cada clase, así como elaborar un diagrama de clases que
Diseño muestre los atributos, métodos y relaciones más importantes entre las clases
definidas, que representará los aspectos estáticos del sistema.
4. DISEÑO DE Subsecciones:
INTERFACES DEL 4.1 Diseño de interfaz de usuario
SISTEMA
4.2 Diseño de interfaces con otros sistemas
El objeto de esta sección es realizar el diseño detallado del comportamiento
de la interfaz de usuario de acuerdo con el entorno tecnológico definido. En
4.1 Diseño de interfaz de el caso de que existiese un prototipo de la interfaz de usuario se tomaría
usuario como punto de partida para el diseño. Se deben incluir, además, las ventanas
o pantallas o elementos de diseño surgidos como consecuencia del diseño de
los escenarios definidos en los casos de uso.
33
34
Descripción específica del sistema
*Nota: El Plan de Pruebas No Funcionales se completará en la fase de Codificación, una vez se tenga
generado el software. En la mayoría de casos, gran parte de las pruebas descritas en el PPNF forman parte
de las pruebas de Sistema, y se incluyen también en el PPS.
*Nota: Se ha realizado esta clasificación de los planes de prueba según el modo de operación seguido
bajo nuestra experiencia en la OAC en everis. Al igual que ocurre con el PPNF y PPS, el PPF y el PPA
pueden compartir muchas pruebas o ser casi idénticos según el caso. La diferencia principal es que el PPF
está dirigido a la OAC, mientras que en el PPA las pruebas están dirigidas al usuario final, y están
descritas de una manera diferente, más enfocadas a la perspectiva del Cliente.
34
Proceso de Calidad en Ingeniería del Software 35
En el punto intermedio del proceso software en el que nos encontramos, le llega el turno al equipo de
Codificación. En este punto, el equipo de Diseño habrá elaborado satisfactoriamente el DAO, y el equipo
de Codificación tendrá que seguirlo para codificar el software de la aplicación, dando lugar a la fase CSI
(Construcción del Sistema de Información), cuyas tareas (junto con las restantes de la fase DSI) y sus
responsables se resumen en:
(Tabla realizada según 29 MÉTRICA v.3, modelo SAC: „DSI Procedimiento Global‟)
El buen trabajo de esta fase se reflejará en la codificación de una aplicación que se adapte al diseño
elaborado previamente, que cumpla todos los requisitos del DDR y que esté bien documentada para
facilitar su corrección tras posibles incidencias halladas por la OAC. Cualquier miembro del equipo de
Codificación debería ser capaz de continuar con la codificación en cualquier momento antes de
terminarla, así como de encargarse de su corrección tras una revisión técnica de la OAC. Esto es lo que
marcará un resultado satisfactorio por parte de este equipo.
29 Apoyado en la norma ISO 9001-2000, sección 7.3: „Diseño y Desarrollo‟ y en la norma ISO/IEC 12207, sección: „Development‟
35
36
Descripción específica del sistema
El MIC es un documento cuyo objetivo es indicar de manera detallada cómo instalar y configurar la
aplicación por primera vez (ya sea en el entorno de certificación de la OAC, o en el entorno de cliente del
usuario final).
Este procedimiento reúne los recursos básicos para la instalación (humanos, hardware y software), detalla
los requisitos previos a la instalación y los pasos de la misma, incluyendo la ejecución de los SCR (si los
hubiera) en qué instancia de BBDD, la edición (en caso de necesitarla) de los ficheros de configuración
del SFW, y la compilación de todos los objetos, entre otros.
En algunos casos, el MIC describe el procedimiento para instalar el software un escenario tipo sandbox
antes del despliegue en el escenario real. Al instalar el software en un escenario tipo sandbox (con el uso
de un software o máquina virtual a tal efecto) se comprueba que todo funcione correctamente antes del
despliegue en el escenario real sin afectar a éste, ya que cualquier acción en el entorno sandbox estará
aislada.
También incluye la realización de un backup o copia de seguridad del entorno actual del equipo antes de
instalar la aplicación, en caso de que hubiera algún problema, poder volver atrás al punto de restauración
previo. Se detalla a su vez cómo realizar esta marcha atrás, indicando los pasos necesarios de borrado o
ejecución de SCR automáticos codificados por el equipo de Desarrollo.
A continuación, veremos de qué partes consta típicamente un MIC elaborado por Desarrollo, según
MÉTRICA v.3, modelo SAC: „SAC007P_MIC_Manual_Instalacion_Configuracion_0100‟.
Tabla 11. Estructura de un MIC
MIC
SECCIÓN DESCRIPCIÓN
36
Proceso de Calidad en Ingeniería del Software 37
SOLUCIÓN ADOPTADA añadir o modificar cierta funcionalidad del sistema. Así mismo, se describirá
la solución técnica adoptada a grandes rasgos.
Subsecciones:
3. INSTALACIÓN Y
CONFIGURACIÓN DEL 3.1 Requisitos previos
SISTEMA 3.2 Procedimiento de instalación
37
38
Descripción específica del sistema
El objetivo del MUS es explicar al usuario final cómo utilizar todas las funcionalidades de la aplicación
desarrollada. Resulta esencial que el manual esté escrito de forma clara y comprensible.
El MUS incluirá un mapa del sistema, para que el usuario aprenda a navegar a través de las diferentes
secciones de la misma. Por cada ventana/sección del programa, el MUS incluirá una descripción de todas
las funcionalidades, botones, menús y desplegables existentes, detallando qué hace cada uno de estos
elementos. Adjuntará a su vez pantallazos o capturas del programa para facilitar la comprensión y la
navegación.
Por último, el documento anexará bastante información de utilidad, como los requisitos y procesos que
cubre cada sección o funcionalidad de la aplicación, incidencias frecuentes, mensajes de error, y una
sección de FAQ (Frequently Asked Questions o PP.FF Preguntas Frecuentes).
A continuación, veremos de qué partes consta típicamente un MUS elaborado por Desarrollo:
Tabla 12. Estructura de un MUS
MUS
SECCIÓN DESCRIPCIÓN
Subsecciones:
1.1 Objeto
1.2 Alcance
1. DESCRIPCIÓN DEL
1.3 Funcionalidad
SISTEMA
1.3.1 Funcionalidad sustituida
1.3.2 Funcionalidad aportada
1.4 Mapa del sistema
Detalla cuáles son las diferencias funcionales entre los anteriores procesos si
1.3.1 Funcionalidad sustituida los hubiera y el nuevo sistema.
38
Proceso de Calidad en Ingeniería del Software 39
Subsecciones:
3.1 Ref Proceso / Requisito
3.2 Ref Proceso / Validación
3.3 Incidencias frecuentes
3. ANEXOS
3.4 Mensajes de error
3.5 Términos y acrónimos
3.6 FAQ
3.7 Ayudas
Se ofrecerá una lista con todos los mensajes de error que el sistema ofrece al
3.4 Mensajes de error usuario, bien sea a través de ventanas o de ficheros de log, y se adjuntará una
descripción más extensa para cada uno de ellos.
Se ofrecerá una lista de las preguntas o dudas más frecuentes que pueden
3.6 FAQ surgirle a un usuario del sistema junto a una explicación para cada una de
ellas.
39
40
Descripción específica del sistema
El PP (Plan de Pruebas) es un documento que tiene como objetivo aportar pruebas para verificar y validar
la aplicación. Generalmente este documento está dirigido a la OAC (Oficina de Aseguramiento de
Calidad), ya que Calidad será responsable de realizar la mayoría de las pruebas descritas en dicho PP, las
cuales son pruebas de integración, de sistema, de regresión, de humo, de despliegue, y todas las pruebas
no funcionales. Por otro lado, Desarrollo realizará las pruebas unitarias y el usuario final realizará las
pruebas de aceptación.
El PP está formado por varios planes de prueba distintos. Un Plan de Pruebas es un documento en el que
se resumen las pruebas de un determinado tipo, cuyo objetivo es comprobar un aspecto específico del
software, ya sea funcional o técnico.
Describiremos detalladamente las diferentes pruebas detalladas en los planes de prueba en la sección
2.6.2 Pruebas.
En la siguiente tabla mostramos de qué Planes de Prueba diferentes consta un PP completo:
PP
Como al codificar el software se completa el PPNF, el PP estará completo en este punto, y listo para ser
enviado a la OAC para que comience con la ejecución de todas las pruebas descritas en el documento.
40
Proceso de Calidad en Ingeniería del Software 41
Los diferentes Planes de Prueba tienen una estructura común, la cual se basa en describir el entorno
general de las pruebas, y los casos de prueba a realizar. Un Caso de Prueba comprende la realización de la
prueba de un ascpecto específico dentro del Plan de Pruebas. Por ello, cada Plan de Pruebas estará
formado por varios Casos de Prueba diferentes.
Como ejemplificación aclaradora, usaremos el PPF para mostrar la estructura que deben tener los
diferentes planes de prueba.
A continuación, veremos de qué partes consta típicamente un PPF elaborado por Desarrollo:
Tabla 14. Estructura de un PPF
PPF
SECCIÓN DESCRIPCIÓN
Se incluyen los anexos necesarios (si aplica) para la ejecución de las pruebas.
5. ANEXOS Si no es texto, deberá indicarse cómo se llaman los archivos anexos, y
deberán ir adjuntos al PPF comprimidos en un .zip .rar etc.
41
42
Descripción específica del sistema
Los CP definidos en el PPF deben estar detalladamente explicados, describirse paso por paso y estar
enfocados a la OAC, los cuales no han desarrollado la aplicación. Esto quiere decir que Desarrollo debe
tener cuidado a la hora de redactar los CP, porque no puede esperar que otros asuman información que
para ellos es obvia (ya que ellos han desarrollado el SFW de la aplicación).
La siguiente es la estructura típica de los Casos de Prueba:
Tabla 15. Estructura de un Caso de Prueba
Reacción
En caso de que esperada del
Si se considera
Número Ventana de la en este paso se programa. Si
Instrucciones: qué necesario, aquí se
del paso aplicación en la tengan que la ejecución
es lo que tiene describen aclaraciones,
de que debería introducir datos cumple lo
que hacer el consejos,
ejecución encontrarse en de entrada, descrito aquí,
tester. recomendaciones y
. este paso. detalla cuáles se da por
avisos.
son. verificado este
paso.
En ocasiones, los Casos de Prueba se dividen en Ciclos. Los ciclos se usan cuando hay que realizar
ciertas pruebas previas a otras en una misma sección / ventana de la aplicación para probar una
funcionalidad completa. Mostramos a continuación un ejemplo de Caso de Prueba:
Tabla 16. Ejemplo de Caso de Prueba
42
Proceso de Calidad en Ingeniería del Software 43
La labor de la OAC en esta sección del proceso será la de realizar revisiones técnicas a cada uno de los
entregables generados por Desarrollo, además de ejecutar las pruebas descritas en el plan de pruebas.
Explicaremos en detalle la ejecución de las pruebas y el proceso de revisiones técnicas en el siguiente
apartado 2.5 Control de Calidad.
DP llevará el seguimiento de la entrega, y será el intermediario entre el Cliente, los equipos y las
revisones técnicas de la OAC.
La OAC irá detectando incidencias (en el código o en los documentos) y se las irá enviando al equipo
correspondiente para que las vaya corrigiendo. Los equipos responsables reentregarán los ficheros y
documentos corregidos para que la OAC vuelva a revisarlos.
Típicamente, se utilizará una plataforma de subida y descarga de archivos, en la cual se señalizará el
estado de cada entregable: diferenciando si está pendiente de revisión, revisado, reentregado, rechazado,
en progreso, etc. De esta manera, el tráfico de archivos entre la OAC y el resto de equipos será más
fluido, y si es necesario comunicar algo de más envergadura, se usarán plataformas como el correo
electrónico o chats internos.
En el siguiente apartado describiremos el cierre de la fase CSI (la ejecución de las pruebas) y toda la fase
CEI (Certificación e Implantación del Sistema), también conocida como IAS (Implantacion y Aceptacion
del Sistema), en la cual se describen las revisiones técnicas que la OAC ha ido realizando durante todas
las partes del proceso software.
43
44
Descripción específica del sistema
En esta sección, se describirá mayoritariamente la fase CEI / IAS, en la cual se certificará, implantará y
validará la aplicación. La mayor parte de las labores de la fase CEI las realiza la OAC. La OAC ha estado
realizando tareas de certificación y revisiones técnicas durante las etapas anteriores del proceso, todas
ellas pertenecen a la fase CEI.
Según la ISO 9000:2000, la calidad se define como “grado en que un conjunto de características
inherentes cumple con unos requisitos”. El Aseguramiento de la Calidad pretende dar confianza en que el
producto reúne las características necesarias para satisfacer todos los requisitos del Software.
Una organización orientada a la calidad promueve una cultura que da como resultado comportamientos,
actitudes, y actividades y procesos para proporcionar valor mediante el cumplimiento de las necesidades
y expectativas del Cliente. 30
La calidad de los entregables y servicios de una organización está determinada por la capacidad para
satisfacer al Cliente, y no sólo incluye su función y desempeño previstos, sino también su valor percibido
y el beneficio para el Cliente.
Para asegurar la calidad de los entregables resultantes la OAC deberá realizar un conjunto de actividades
que servirán para:31
- Reducir, eliminar y lo más importante, prevenir las incidencias de calidad de los entregables a obtener.
- Alcanzar una razonable confianza en que las prestaciones y servicios esperados por el cliente o el
usuario queden satisfechas.
El grupo de aseguramiento de calidad participa en la revisión de los productos seleccionados para
determinar si son conformes o no a los procedimientos, normas o criterios especificados, siendo
totalmente independiente del equipo de desarrollo. Las actividades a realizar por la OAC vienen
gobernadas por el plan de calidad descrito en la oferta. Sus funciones están dirigidas a:
- Identificar las posibles desviaciones en los estándares aplicados, así como en los requisitos y
procedimientos especificados.
- Comprobar que se han llevado a cabo las medidas preventivas o correctoras necesarias.
Las revisiones son una de las actividades más importantes del aseguramiento de la calidad, debido a que
permiten eliminar defectos lo más pronto posible, cuando son menos costosos de corregir.
Para revisar cualquier entregable, la OAC crea una serie de “Plantillas”, a las cuales deberán adaptarse
los entregables recibidos. Estas plantillas reflejan lo que debería ser un “entregable perfecto”. Además,
con su creación, se acelera el proceso de certificación para posteriores entregas, ya que deberán adaptarse
a la misma plantilla.32
El objetivo principal de la fase CEI es certificar la entrega. Una entrega certificada es aquella que, tras
superar satisfactoriamente las revisiones técnicas de la OAC ha quedado completamente validada y
verificada. Una entrega certificada por Calidad es apta para su uso.
44
Proceso de Calidad en Ingeniería del Software 45
2.6.1 Pruebas
Un elemento clave de la certificación de Calidad es la ejecución de pruebas. Las pruebas, según la ISO
IEC IEEE 2911933, son actividades mediante las cuales se verifica y valida el software en todos sus
aspectos, comprobando que se cumplan todos los requisitos de la fase ASI.
La información de este apartado toma como referencias los apuntes de la asignatura „Ingeniería de
Software‟, la norma ISO IEC IEEE 29119 con sus 5 partes, la normativa de MADEJA y MÉTRICA v.3,
modelo SAC „Proceso de pruebas‟. Debido a la aún presente disconformidad de nomenclatura y
definiciones en conflicto referentes a las pruebas según las anteriores referencias y las normas IEEE 829,
IEEE 1008, BSI 7925-1 y 7925-2, ISO/IEC 12207 y ISO/IEC 15289, he optado por seguir la
nomenclatura de las pruebas y la definición y momento de ejecución de cada tipo de prueba según como
se hacía en nuestro equipo OAC de departamento de Calidad en everis.
Según MADEJA34, en cada una de las fases anteriores se ha ido elaborando el plan de pruebas específico
que se corresponde con la sección en la que se elabora. De manera que:
En la sección de Definición del Proyecto y realización del DDR se habrá elaborado el Plan de Pruebas de
Aceptación, que servirá como guía a los usuarios finales para probrar las funcionalidades.
En la sección de Diseño y Codificación, se habrá elaborado el Plan de Pruebas Unitarias, Plan de Pruebas
de Integración, Plan de Pruebas Funcionales y Plan de Pruebas No Funcionales, los cuales marcarán las
pautas para probar el software en los distintos niveles de prueba.
Los niveles de prueba definen el grado en el que se prueba la aplicación. Como el proceso de pruebas se
define como un proceso donde se va probando inicialmente lo de más bajo nivel y se van integrando y
probando paulatinamente componentes hasta lograr un sistema completo, hallaremos 3 niveles de pruebas
bien diferenciados:
Nivel de Unidad, (Pruebas de Unidad), en el cual se verifica el diseño y la programación correcta,
y el correcto funcionamiento de cada componente de código por separado. Esto sirve para
asegurar que cada uno de los módulos funcione correctamente por separado.
Nivel de Integración, (Pruebas de Integración), en el cual los componentes y módulos separados
se ensamblan y se prueban como un conjunto. Se deberán definir los casos de pruebas que
comprueben la integración entre los módulos del sistema, especificando la relación de los
componentes a probar, así como lo datos de entrada y la salida esperada.
Nivel de Sistema, (Pruebas de Sistema), en el cual se prueba la aplicación como un todo. Serán
las pruebas que validan las funcionalidades finales descritas en el DDR, una vez todo el software
y todos los componentes del sistema han sido probados y se intregran juntos.
La OAC será la encargada de realizar la mayoría de las pruebas, exceptuando las de aceptación y las
unitarias, y, en el caso de que detecte incidencias, se lo comunicará al equipo correspondiente para que las
corrija. Para ello, hará uso de varias herramientas CASE (consultar sección 3.Herramientas CASE).
33 La ISO IEC IEEE 29119 consta de 5 partes, publicadas en 2013, 2015 y 2016.
34 Apoyado por la información de MADEJA, Junta de Andalucía, ‘Creación y Evolución de Sistemas’ en:
http://www.juntadeandalucia.es/servicios/madeja/contenido/subsistemas/ingenieria/creacion-y-evolucion-sistemas y
http://www.juntadeandalucia.es/servicios/madeja/contenido/libro-pautas/227
35 Información basada en Wikipedia https://es.wikipedia.org/wiki/Pruebas_de_software y en la ISO IEC IEEE 29119
45
46
Descripción específica del sistema
Para realizar las pruebas estáticas no se necesita ejecutar la aplicación. Estas pruebas se refieren a la
revisión técnica documental que la OAC debe realizar con cada documento y fichero de código de cada
una de las fases del proceso software.
Las pruebas estáticas que realiza la OAC se resumen por un lado en la revisión técnica del DDR (en la
fase ASI), del DAO y PP (en la fase DSI) y del MIC y MUS (en la fase CSI).
Por otro lado, se resumen en la corrección formal de los ficheros de código, ya sean de SFW o de SCR.
Es decir, se comprueba (ya sea manualmente o con el uso de herramientas que analizan el código) que la
codificación sigue la normativa establecida y responde ante indicadores de calidad y de programación
ordenada, entre otros, dando lugar a un código limpio, comprensible y reutilizable.
Una herramienta útil utilizada por mi equipo en el departamento de Calidad es Mantis Bug Tracker 36
(Para más información, consultar sección 3.Herramientas CASE). Mantis es una herramienta que permite
llevar un control y seguimiento compartido entre OAC, DP y Desarrollo de las incidencias encontradas
durante las pruebas estáticas. La OAC sube a la plataforma de Mantis las incidencias, organizadas por
códigos y denominadas según la gravedad, el documento o fichero al que hacen referencia y la versión del
entregable en el que se encuentran y/o corrigen. El equipo pertinente accede a Mantis, encuentra la
incidencia que le afecta, y la corrige, notificando a la OAC de la corrección realizada y enviándole de
nuevo el documento o fichero.
En la sección 2.6.2 Incidencias, se describe detalladamente cada uno de los indicadores de calidad que la
OAC tendrá que comprobar que se cumplen en los documentos realizados, así como los ficheros
codificados, con su correspondiente incidencia y grado de gravedad.
Las pruebas dinámicas son aquellas en las cuales es necesario ejecutar la aplicación. Podemos dividir las
pruebas dinámicas en 2 grandes grupos según el aspecto que verifican:
Pruebas funcionales: Son las pruebas que comprueban que se cumplan los requisitos funcionales
definidos en la fase ASI en la aplicación. Es decir, se comprobará que todas las funcionalidades
de la aplicación exigidas en el DDR están presentes en la aplicación, y todos los casos de uso
definidos en las fases anteriores existen y se corroboran.
Pruebas no funcionales: Son las pruebas que comprueban que se cumplan los requisitos no
funcionales definidos en la fase ASI en la aplicación. Existirá un tipo de prueba por cada tipo de
requisito no funcional definido, de manera que las pruebas de seguridad comprobarán que se
cumplen los requisitos de seguridad, las pruebas de usabilidad comprobarán que se cumplen los
requisitos de usabilidad, etc.
Como resultado de las pruebas dinámicas, la OAC elaborará un informe que describiremos en detalle en
la sección 2.6.4 Informes de Calidad. Todas las pruebas las realizará la OAC exceptuando las de
Aceptación (Alfa y Beta), que serán ejecutadas por el RAU o los usuarios finales, y las unitarias, que
serán ejecutadas por Desarrollo en paralelo a la codificación.
46
Proceso de Calidad en Ingeniería del Software 47
Algunas herramientas software útiles para la realización de las pruebas dinámicas usadas en mi empresa
son: SoapUI, WinSCP, TOAD y Notepad++ para la edición de texto.38 (Para más información, consultar
sección 3.Herramientas CASE).
47
48
Descripción específica del sistema
TIPOS DE PRUEBAS
REQUISITOS
TIPO NOMBRE QUE DESCRIPCIÓN
PRUEBAN
39 Información contrastada entre nuestra experiencia en everis, normativas ISO, IEEE y BSI anteriormente comentadas, apuntes de
Ingeniería de Software y enlaces a Wikipedia y MADEJA, Junta de Andalucía.
48
Proceso de Calidad en Ingeniería del Software 49
49
50
Descripción específica del sistema
2.6.2 Incidencias
50
Proceso de Calidad en Ingeniería del Software 51
2.6.2.1 Documentos
2.6.2.1.1 DDR
Tabla 19. Certificación DDR
CERTIFICACIÓN DDR
SECCIÓN
DEL INDICADOR DE CALIDAD GRAVEDAD
DOCUMENTO
51
52
Descripción específica del sistema
2.6.2.1.2 DAO
Tabla 20. Certificación DAO
CERTIFICACIÓN DAO
SECCIÓN
DEL INDICADOR DE CALIDAD GRAVEDAD
DOCUMENTO
52
Proceso de Calidad en Ingeniería del Software 53
4.2 Interfaz con Se detallará la interfaces con otros sistemas, indicando los datos y el
MEDIA
otros Sistemas formatos de los mismos que se van a transferir entre los sistemas.
2.6.2.1.3 MIC
Tabla 21. Certificación MIC
CERTIFICACIÓN MIC
SECCIÓN
DEL INDICADOR DE CALIDAD GRAVEDAD
DOCUMENTO
53
54
Descripción específica del sistema
2.6.2.1.4 MUS
Tabla 22. Certificación MUS
CERTIFICACIÓN MUS
SECCIÓN DEL
INDICADOR DE CALIDAD GRAVEDAD
DOCUMENTO
1.1 Objeto Proporciona información suficiente para que el lector pueda BAJA
54
Proceso de Calidad en Ingeniería del Software 55
3.3 Incidencias Se enumeran las incidencias más frecuentes y, junto a cada una de ellas,
BAJA
Frecuentes se ofrece una solución.
Se ofrece una lista con todos los mensajes de error que el sistema ofrece
3.4 Mensajes de
al usuario, bien sea a través de ventanas o de ficheros de log, y se adjunta MEDIA
Error
una descripción más extensa para cada uno de ellos.
2.6.2.1.5 PP
Tabla 23. Certificación PP
CERTIFICACIÓN PP
SECCIÓN
DEL INDICADOR DE CALIDAD GRAVEDAD
DOCUMENTO
55
56
Descripción específica del sistema
Se incluyen los prerrequisitos necesarios para realizar cada caso de prueba. ALTA
Se describen los roles necesarios para ejecutar cada caso de prueba. ALTA
Se incluyen los datos de pruebas necesarios para ejecutar las pruebas ALTA
Para cada caso de prueba que se divida en ciclos de prueba, se explicará cada
ALTA
uno de los ciclos de prueba de forma ordenada por separado.
SECCIÓN
DEL INDICADOR DE CALIDAD GRAVEDAD
DOCUMENTO
56
Proceso de Calidad en Ingeniería del Software 57
57
58
Descripción específica del sistema
Los nombres de los scripts deben respetar el formato <nnn>_<nombre>.<ext>, tal como se define
ALTA
en la normativa técnica correspondiente. Siempre, aunque sea un solo Script.
Las sentencias para la creación de sinónimos públicos, los cuales permiten el acceso a un objeto
por parte de cualquier usuario (siempre que se tengan los permisos necesarios) se entregan dentro ALTA
de archivos con extensión ".syn".
Los sinónimos públicos se crean mediante la orden "CREATE" y nunca con "CREATE OR
ALTA
REPLACE".
No se permite la concesión del permiso GRANT CREATE SESSION en los scripts, sino que debe
ALTA
estar convenientemente documentado en el Manual de Instalación y Configuración.
Ningún script que forme parte de una entrega llama o ejecuta otro script SQL almacenado en
ALTA
archivo.
Los scripts entregados deben ejecutarse correctamente en entornos UNIX desde línea de comando
ALTA
mediante SQLPLUS.
No se permite la petición de parámetros durante la ejecución de los scripts de base de datos. ALTA
Se debe utilizar de forma adecuada el valor del parámetro INITIAL en la creación de las tablas e
índices, para aquellas entidades sobre las que se conozca su tamaño inicial aproximado, ALTA
especialmente cuando existe un proceso de migración que cargará los datos.
En las cargas y migraciones masivas de datos, deben desactivarse previamente los índices sobre las
ALTA
tablas en las que se van a introducir los datos.
En las cargas y migraciones masivas de datos, se introducen los COMMIT necesarios para no
generar transacciones anormalmente grandes que sobrecarguen el segmento de ROLLBACK de la ALTA
base de datos.
Las sentencias para la eliminación de sinónimos públicos se entregan únicamente dentro del MIC ALTA
58
Proceso de Calidad en Ingeniería del Software 59
2.6.2.2.2 SFW
(El software consiste en ficheros Java, que constituyen aplicaciones completas o web services „servicios web‟).
Tabla 26. Certificación SFW
CERTIFICACIÓN SFW
El desarrollo de una aplicación debe ser independiente del sistema operativo. ALTA
El software debe ser independiente de la arquitectura de ejecución de tal manera que no requiere
ALTA
ningún tipo de configuración para su instalación
La integración entre varias aplicaciones web ha de implementarse mediante servicios web. MEDIA
La información interna de la aplicación, como los datos que maneja, usuarios, etc, se almacena en
ALTA
BBDD y no en ficheros
59
60
Descripción específica del sistema
Una clase no debe tener atributos públicos a menos que sean declarados como final o static final. BAJA
Empaquetado de ficheros Java: Todos los componentes Java que contiene una aplicación se deben
MEDIA
empaquetar por aplicación utilizando la directiva package
La funcionalidad de las JSPs utilizada sólo incluirá la capa de presentación de la aplicación MEDIA
No se debe utilizar el código JavaScript para realizar tareas de presentación, sino únicamente como
MEDIA
mecanismo de validación de datos (fechas, tipos de datos, etc.).
La aplicación consta de 2 usuarios a nivel de BBDD, uno es el propietario del esquema y el otro es
ALTA
el usuario que se utiliza para acceder.
No confiar las medidas de seguridad en código ejecutado en cliente (JavaScript, VBScript) ALTA
No utilizar los campos ocultos de un HTML para programar criterios de seguridad MEDIA
No utilizar el metodo GET para enviar información sensible como por ejemplo contraseñas, utilizar
MEDIA
el método POST
Mantener actualizados los servidores web y programas relacionados (PHP, librerías gráficas, etc.) MEDIA
Mostrar al usuario información utíl en los mensajes de error, no mostrando información innecesaria MEDIA
Se debe registrar de forma interna los errores producidos para detectar posibles ataques BAJA
No permitir objetos con alto Fan-In.(Objetos java que referencian a más de 5 parámetros) MEDIA
No permitir objetos con alto Fan-Out.(Objetos Java que son referenciados por más de 5
MEDIA
parámetros)
60
Proceso de Calidad en Ingeniería del Software 61
El software debe contener únicamente las librerías propias de la aplicación, excluyendo las librerías
ALTA
de JAVA y del intérprete de compilación.
Evitar los triggers de ratón, timer. Las validaciones en Forms debe realizarse a nivel de bloque de
MEDIA
datos.
Evitar el uso de NULL o NOT NULL en las condiciones de las consultas ya que desactivan los
MEDIA
índices y hacen más lenta la consulta.
No utilizar funciones sobre las columnas indexadas, ya que inhabilita el indice. MEDIA
61
62
Descripción específica del sistema
La funcionalidad de los FORMS debería estár en el servidor para la mejora del rendimiento
(Paquetes, Procedimientos, etc.). Al ejecutar las funciones el servidor, la aplicación es más MEDIA
eficiente.
Para realizar la conexión a la BBDD de la aplicación no debe existir un único usuario. MEDIA
Mostrar al usuario información útil en los mensajes de error, no mostrando información innecesaria BAJA
Registrar de forma interna los errores producidos para detectar posibles ataques BAJA
Cambiar contraseña cada cierto tiempo. Para realizar el cambio de contraseña debe solicitar la que
MEDIA
está vigente
62
Proceso de Calidad en Ingeniería del Software 63
Usar el tipo VACHAR2 en vez de Char o Varchar, siempre que no conozcamos la longitud exacta
BAJA
del char
Utilización de la función NVL siempre que sea posible para evitar futuros errores en las querys MEDIA
63
64
Descripción específica del sistema
A la hora de realizar las revisiones técnicas a los entregables y detectar incidencias, antes de describirlas
en una plataforma compartida (como por ejemplo QM, como veremos más adelante en la sección
3.Herramientas CASE), para hacerle llegar la información a los equipos, será necesario que la OAC
elabore unos documentos denominados Informes de Revisión Técnica (IRT). 41
Estos informes tienen como objetivo mostrar las incidencias a corregir de un documento o fichero de una
forma ordenada, clara y comprensible. De este modo, cuando la OAC anexe los IRT a la plataforma
compartida de incidencias, el equipo responsable tan solo tendrá que leer dichos informes para localizar
rápidamente las incidencias, y optimizar el proceso de corrección del entregable en cuestión.
Todos y cada uno de los documentos y ficheros de código sometidos a inspección de calidad serán
acompañados de su correspondiente IRT. En los IRT, además, se indicará el estado del entregable según el
número y gravedad de las incidencias encontradas, lo cual explicaremos en la siguiente tabla:
64
Proceso de Calidad en Ingeniería del Software 65
Cuando un equipo equipo lea el IRT de un entregable, comprobará rápidamente si el entregable está
Aceptado, Aceptado con Reservas o Rechazado, y verá las incidencias encontradas clasificadas según la
severidad rápidamente.
En el caso de que un entregable haya sido rechazado, y el equipo responsable haya tenido que corregirlo y
reentregarlo a la OAC, esta última elaborará un segundo IRT para el mismo entregable, en el que reflejará
si las incidencias anteriores han sido debidamente corregidas, pudiendo aceptar o aceptar con reservas el
entregable, o rechazarlo de nuevo tantas veces como sea necesario. El resultado final de todos los
entregables siempre deberá ser Aceptado, o como mínimo, Aceptado con Reservas.
Nota*: Cuando un entregable se deja como Aceptado con Reservas, significa que ha habido una
comunicación previa entre RAU, DP y OAC, en la cual el Cliente acepta dicho entregable con las
incidencias medias encontradas. Aún así, la OAC siempre velará por la perfección del entregable y
luchará por no detectar ninguna incidencia, sin importar el grado de gravedad.
Además del resultado de la evaluación del entregable y de las incidencias encontradas, un IRT contendrá
típicamente cierta información de control, incluyendo:
Nombre de la aplicación a la que pertenece el entregable
Tipo de entregable revisado
Autor del IRT
Número de versión
Causa del cambio (en caso de haber más de una versión)
Fecha de versión
Responsables de Proyecto
Nombre de DP
Observaciones, otros
65
66
Descripción específica del sistema
Tras revisar todos los entregables, detectar sus incidencias y elaborar sus respectivos IRT, y ejecutar todas
las pruebas, la OAC deberá realizar varios informes, los cuales se añadirán a los entregables finales para
el Cliente. Estos informes tienen como objetivo resumir cómo han ido las pruebas, las incidencias que se
han encontrado tanto en SCR como en SFW, y que se pueda tener un resumen rápido de la evaluación de
los ficheros de código. Se entregarán al Equipo de Desarrollo para que corrijan los posibles errores que
hayan podido aparecer durante la ejecución de las pruebas dinámicas o estáticas, y envién una nueva
versión a la OAC con las correcciones y pueda probar de nuevo.
Estos informes también pueden resultar de utilidad al Cliente, bien por su posible interés en las pruebas
llevadas a cabo, o curiosidad por la detección de incidencias en una primera instancia por parte de la
OAC (Un gran número de incidencias en la primera entrega puede decir mucho del equipo responsable).
A continuación, explicaremos los distintos informes que elaborará la OAC:
El MOD es un Informe que se realiza exclusivamente para los SCR. Si una entrega no tiene scripts, la
OAC no realizará este informe. Su objetivo es asegurar que la base de datos cumple con las reglas
establecidas en la normativa técnica vigente. Dicho de otra manera, comprueba que los scripts ejecutados
de la aplicación sigan una serie de requisitos de calidad, orden, numeración, eficiencia, etc.
Para realizar el MOD, se hace uso de varias herramientas de comprobación y análisis de código sql,
lenguaje de programación en el que suelen ir codificados los scripts. Entre los parámetros fundamentales
a evaluar, destacamos:
La existencia de objetos inválidos
La comparación entre esquemas de diferentes entornos
Detección de sinónimos inválidos
Cumplimiento de normas técnicas de codificación del script
Como dato extra, se suelen anexar al MOD los logs generados por las herramientas utilizadas, siendo así
de interés para el que reciba este informe y use dichas herramientas.
*Nota: El MOD formará parte del IPC, así que no va a consistir en un entregable final por sí mismo.
66
Proceso de Calidad en Ingeniería del Software 67
El PES es un Informe que se realiza como resultado de las pruebas estáticas al software. Su objetivo es
comprobar que el SFW utilizado cumple con las normas de codificación pertinentes, y que se ha llevado a
cabo una programación ordenada, limpia y comprensible, con vistas a que el código sea revisado y
reutilizado con facilidad.
Para elaborar el informe se hace uso de una herramienta llamada Jenkins 42. Jenkins revisa y prueba el
SFW de diversas maneras atendiendo a diferentes criterios, elaborando un informe final de SonarQube.
SonarQube es otra herramienta asociada que muestra el número de archivos corruptos e incidencias de
distinta categoría (para más información, consultar sección 3.Herramientas CASE). En el informe se
detallan con precisión todas las incidencias encontradas.
*Nota: El PES formará parte del IPC, así que no va a consistir en un entregable final por sí mismo.
67
68
Descripción específica del sistema
El IPC es un informe extenso cuyo objetivo es recoger en un único documento todas las pruebas
dinámicas realizadas por parte de la OAC.
Detallamos a continuación la estructura básica del documento IPC:
Tabla 29. Estructura de un IPC
SECCIÓN DESCRIPCIÓN
Se incluye el MOD generado por la OAC y los logs generados por las
herramientas utilizadas. Se añade una breve enumeración de los objetos
7. Modelo de Datos inválidos encontrados y la comparación de los esquemas de desarrollo y de
certificación. Se añade la fecha de realización del MOD y la persona
responsable.
68
Proceso de Calidad en Ingeniería del Software 69
Se incluyen los anexos necesarios (si aplica) para la ejecución de las pruebas.
15. ANEXOS Si no es texto, deberá indicarse cómo se llaman los archivos anexos, y
deberán ir adjuntos al IPC comprimidos en un .zip .rar etc.
17. BIBLIOGRAFÍA Y Apartado en el que consta la información externa utilizada en las pruebas, o
REFERENCIAS documentos de los que ha dependido parte de la certificación.
Este documento IPC43 se anexará a los informes generados (como el MOD y el PES) en un archivo
comprimido (zip, rar, etc), constituyendo un entregable completo para la entrega final realizado
enteramente por la OAC. Cuando el equipo de Desarrollo lea este IPC, sabrá instantáneamente dónde se
encuentran las incidencias localizadas por la OAC referentes a todas las pruebas dinámicas. El IPC
también constituye un entregable para el Cliente.
43 Para la definición de la estructura del IPC nos hemos basado en la información aportada por MÉTRICA v.3, modelo SAC,
‘SAC007P_IPC_Informe_de_Pruebas_Certificación_0100’
69
70
Descripción específica del sistema
El IPA es un breve informe algo particular, que realiza la OAC después de las pruebas Alfa y Beta de
usuario. El usuario realizará las pruebas alfa y beta a la aplicación (detalladas más adelante) en el entorno
de certificación y en el de cliente. El resultado de estas pruebas se remitirá de nuevo a la OAC para que
conste en el denominado IPA.
El IPA incluirá información de la persona responsable que ejecutó las pruebas de usuario, RAU, la fecha,
y el resultado final de las mismas. Este informe se anexará a la documentación pertinente generada por el
usuario cliente, o la comunicación establecida entre usuario y OAC para apoyar los resultados de las
pruebas de usuario.
Habiendo realizado todos estos informes, se completa la lista final de entregables resumidos en la
siguiente tabla y clasificados según la fase a la que pertenecen:
ENTREGABLES
Desarrollo,
ASI DDR DP
OAC y Cliente
Desarrollo (Codificación),
DAO Desarrollo (Diseño)
OAC y Cliente
Desarrollo
SCR OAC y Cliente
(Codificación)
MIC
Desarrollo OAC y Cliente
CSI MUS
Desarrollo
SFW OAC y Cliente
(Codificación)
IPC
IPA
70
Proceso de Calidad en Ingeniería del Software 71
Según la norma UNE/ISO/IEC 90003:200544, una vez codificado el software y enviado a la OAC, la
OAC realizará todas las pruebas descritas en el PP (exceptuando las de aceptación y unitarias), y generará
el IPC. El IPC se enviará al equipo de Desarrollo y a DP, para que comprueben los errores que han tenido
lugar durante la realización de las pruebas o los aspectos que no se han cumplido, y puedan ponerle
solución y mandarle una nueva versión de la aplicación corregida a la OAC.
*Nota: En el caso de que el resultado de las pruebas de humo realizadas por la OAC contenga un error
bloqueante que impida la correcta consecución del resto de pruebas, la OAC lo notificará al equipo de
Desarrollo para que lo corrija. En este caso no se esperará a generar el IPC, sino que se generará un solo
IRT con el error localizado.
En el momento en que todas las pruebas del PP se ejecuten satisfactoriamente por la OAC, se dará por
finalizadas las pruebas dinámicas por parte de la OAC.
Asimismo, en el momento en que todos los documentos y ficheros de código se encuentran correctos y
han superado satisfactoriamente las revisiones técnicas de la OAC, se dará por finalizadas las pruebas
estáticas por parte de la OAC.
En este momento en el que las pruebas estáticas y dinámicas están superadas, el Cliente dispondrá de todo
lo necesario para probar por sí mismo el resultado final de la aplicación a nivel de usuario, dando paso a las
Pruebas de Aceptación.
71
72
Descripción específica del sistema
Basándonos en la norma ISO/IEC/IEEE 29119 y UNE45, tras las pruebas de certificación, el RAU debe
validar que el software cumple los requisitos funcionales definidos al inicio del proyecto con el fin de
validar su correcto funcionamiento.
En este punto del proceso software, la OAC ya habrá realizado todas las pruebas a la aplicación, tanto
dinámicas como estáticas. Ahora le llega el turno al usuario de realizar las pruebas de aceptación,
descritas en el PPA elaborado por la OAC en la fase de definición del proyecto.
Las pruebas de aceptación son aquellas que realizan los usuarios finales pertenecientes a la empresa
Cliente, aquellos que utilizarán la aplicación en el entorno Cliente una vez implantada. Su propósito es
verificar los requisitos definidos en el DDR desde el punto de vista de Cliente en lugar de la OAC.
Las pruebas de aceptación se dividen en dos:
72
Proceso de Calidad en Ingeniería del Software 73
2.8 Despliegue
La labor del equipo de Despliegue es, como describimos en la sección 1.2 Definición de entidades, la de
crear o preparar los diferentes entornos, e implantar la aplicación en cada uno de ellos. Según MÉTRICA
v.347, para realizar estas tareas, el equipo de Despliegue realizará diversas tareas:
En concreto, se crearán los elementos del sistema gestor de BBDD o del sistema de ficheros si estos no
existen, se reservará el espacio de almacenamiento necesario y se inicializará la BBDD con datos o
ficheros si fuese necesario. En tal caso, se utilizarán los script de creación o modificación de la BBDD.
Para la creación/preparación de los entornos de Desarrollo e Integración, el equipo de Desarrollo,
basándose en el DAO y en la fase ASI de análisis, expresará al equipo de Despliegue sus necesidades,
tales como:
Bibliotecas o librerías que hay que incluir
Herramientas software para el desarrollo (compiladores, depuradores, etc.)
Configuración de puestos de trabajo
La infraestructura tecnológica necesaria para realizar la codificación y las pruebas unitarias de
los distintos componentes
Asimismo, para la creación/preparación del entorno de Certificación, la OAC expresará al equipo de
Despliegue sus necesidades, tales como:
Bibliotecas o librerías que haya que incluir
Herramientas software para las pruebas y la certificación (automatización de pruebas,
comparadores, etc)
Configuración de puestos de trabajo
La infraestructura tecnológica para realizar la certificación y las pruebas a los distintos
componentes
Una vez el equipo de Despliegue reúne dichas necesidades, dejará listo los entornos de Desarrollo,
Integración y Certificación cuando sea necesario en la fase correspondiente del proceso software. Por
orden, mostramos las tareas del equipo de Despliegue durante el proceso:
73
74
Descripción específica del sistema
TAREAS DE DESPLIEGUE
Despliegue de la aplicación
No es necesario ya que el software se ha creado en
en los entornos de
dichos entornos.
Desarrollo e Integración
48Tabla realizada bas{ndonos en la norma UNE/ISO/IEC 90003 2005 y en MÉTRICA v.3, Modelo SAC, ‘SAC002P_IAS_Implantacion y
Aceptacion de Sistemas_1300’
74
Proceso de Calidad en Ingeniería del Software 75
Continuando con el proceso software, tras la realización de las pruebas Alfa de Aceptación por parte del
49
usuario, el equipo de despliegue implantará la aplicación en el entorno Cliente. Una vez hecho esto, es
necesario certificar o aprobar la correcta implantación del mismo, mediante una última ejecución de las
pruebas de despliegue y las pruebas de sistema. De ello se debe encargar la OAC.
La OAC debe realizar sobre el software implantado dichas pruebas, que no conllevan la actualización,
inserción o eliminación de datos. El objeto de estas pruebas no es, por tanto, la de certificar que la
funcionalidad requerida funciona correctamente, sino de comprobar que el software es estable.
Siempre que las incidencias superen el umbral de rechazo preestablecido, será necesario aplicar la marcha
atrás especificada en el MIC, y el software no quedará implantado en el entorno de Cliente. Si dicho umbral no
se supera, la OAC dará el visto bueno para que el software quede implantado en el entorno.
De cualquier modo, será necesario subsanar los errores detectados, aunque el software quede implantado en el
entorno de Cliente. Para ello se han de documentar todas las incidencias detectadas durante la tarea de
implantación.
Tras la realización de las pruebas de despliegue y de sistema, en caso de que se hayan detectado incidencias, se
ha de realizar un análisis de las mismas. Así, el jefe del Equipo de Certificación debe realizar un exhaustivo
análisis y valoración de las incidencias detectadas.
En el análisis se ha de valorar si los errores detectados provocan un mal funcionamiento del software en alguna
de sus funcionalidades o hacen que este sea total o parcialmente inservible. Se ha de medir, también, el riesgo
de corrupción de datos que provocan los errores detectados.
En caso de que la OAC encontrase anomalías de suficiente envergadura podrá, a través de su responsable,
ordenar la marcha atrás de la instalación para que el software vuelva al estado en el que se encontraba antes de
la implantación en el entorno Cliente.
Por tanto, en base al estudio de las incidencias detectadas, la OAC ha de tomar la decisión de:
Ordenar la marcha atrás de la implantación.
Dar el visto bueno a la implantación a pesar de las incidencias detectadas.
En el caso de que la OAC decida dar el visto bueno, la aplicación quedará instalada en el entorno Cliente y el
usuario final podrá realizar las pruebas beta. Una vez las pruebas beta tengan éxito, se podrá seguir con la
última fase del proceso software, explicada en la siguiente sección.
75
76
Descripción específica del sistema
Tras la realización de las pruebas de aceptación por parte del usuario final y de la redacción del Informe
de Pruebas de Aceptación donde se detallan y valoran todas las incidencias detectadas y registradas, es
necesario que el Cliente dé el visto bueno a la implantación del software en el entorno Cliente. Esta
decisión debe ser valorada y tomada en base al Informe de Pruebas de Aceptación elaborado tras las
pruebas.
En caso de que la decisión sea negativa, el Equipo de Desarrollo tendrá que realizar una nueva entrega, en
la que se hayan corregido los errores detectados en las pruebas de aceptación, y que han llevado al RAU a
desestimar el despliegue final del software en el entorno Cliente, volviéndose a tener que realizar la
actividad de certificación de implantación y funcional del Sistema.
En caso contrario, el RAU habrá dado el visto bueno a la implantación del software en el entorno Cliente
y se llevará a cabo dicha tarea para que el usuario cliente finalmente pueda hacer uso de la aplicación sin
ningún problema.
De esta manera se da por concluida la fase CEI / IAS, el Cliente tendrá la aplicación lista para su uso en
su entorno y, si fue definido en el proyecto software, comienza el mantenimiento de la aplicación.
2.9.1 Mantenimiento
En caso de que se ofreciera al Cliente un mantenimiento del software una vez instalado, será necesario
elaborar un Plan de Mantenimiento. El Plan de Mantenimiento sienta las bases del futuro mantenimiento del
proyecto. Su elaboración es responsabilidad del DP, que requerirá la necesaria colaboración del RAU.
Tomando como referencia MÉTRICA v.350 y la normativa ISO51, El resultado es un plan donde se especifica
cómo será el mantenimiento del proyecto y cómo estará compuesto el equipo que realizará dicha labor.
Sólo en el caso de proyectos cuyo alcance sea el mantenimiento en sí, de un sistema ya implantado, será
opcional la elaboración de dicho documento. El mantenimiento deberá incluir los siguientes factores:
Alcance
Identificación del estado inicial de la aplicación y los elementos de mantenimiento
Las organizaciones de apoyo y acuerdos
Las actividades de mantenimiento, incluyendo la resolución de problemas, soporte a usuarios, soporte
hardware y seguimiento del sistema para detectar fallos
Modificaciones de interfaz que puede ser requerido cuando se hacen adiciones o cambios al sistema
hardware o componentes, controlados por software
Las actividades de gestión de la configuración, pruebas y aseguramiento de la calidad
El calendario de liberaciones propuesto
Cómo se van a llevar a cabo la expansión funcional y mejora de las prestaciones
Registros e informes de mantenimiento
El resultado de los informes de mantenimiento se utilizará para la evaluación y mejora del producto software,
ya sea para una nueva entrega correspondiente a la misma aplicación de funcionalidad expandida en un futuro,
o bien para la subsanación de incidencias que se vayan encontrando durante su uso.
50 MÉTRICA v.3, Modelo SAC, ‘SAC002P_GES_Gestión de Proyectos_0500’, sección GES 14: Elaboración Plan de Mantenimiento
51 UNE ISO IEC 90003 2005, sección 7.5.1.7 Mantenimiento
76
Proceso de Calidad en Ingeniería del Software 77
52 Bas{ndonos en MÉTRICA v.3, Modelo SAC, ‘SAC002P_GES_Gestión de Proyectos_0500’, sección GES 15: Elaboración Histórico de
Proyecto
53 Según MÉTRICA v.3, Modelo SAC, ‘SAC007P_IHP_Histórico_de_Proyecto_0100’
77
78
Descripción específica del sistema
55
Figura 8. Ejemplo de Informe de Fin de Proyecto
54 Bas{ndonos en MÉTRICA v.3, Modelo SAC, ‘SAC002P_GES_Gestión de Proyectos_0500’, sección GES 16: Elaboración del Informe de Fin
de Proyecto
55 Imagen extraída de MÉTRICA v.3, Modelo SAC, Finalización y Cierre del proyecto, ‘IFP Plantilla’
78
Proceso de Calidad en Ingeniería del Software 79
2.9.4 Cierre56
Nos encontramos en la situación en la cual
El Cliente tiene la aplicación instalada en su entorno lista para funcionar
El Cliente ha recibido todos los entregables
Las tareas de mantenimiento (si las hay) se han iniciado y permanecerán activas durante todo su
alcance
Los documentos de cierre han sido firmados
El cierre del proyecto supone la finalización oficial de todos los compromisos de todas las entidades
implicadas. Además, afirma que la empresa adjudicataria ha cumplido con el alcance propuesto al Cliente, lo
que significa que cualquier petición del Cliente a partir de este momento será tratada como un nuevo proyecto.
Por otro lado, el cierre del proyecto libera tanto a DP como al resto de equipos, por lo que pueden asumir
proyectos nuevos.
En este momento, la empresa adjudicataria facturará el proyecto, o la parte ligada a la entrega final. También
se realizará la facturación de las entidades pertenecientes a distintas empresas, como el equipo de Desarrollo,
la OAC, el equipo de Despliegue, etc. Todos cerrarán sus contratos con el Proyecto llevado a cabo y facturarán
su parte.
De esta manera, Cliente y empresa adjudicataria habrán terminado el contrato y finalizado el Proyecto
software. Un buen desarrollo del proceso software provocará un buen entendimiento entre las dos partes, el
cual motivará futuras peticiones y entregas si el resultado ha sido positivo.
79
80
Herramientas CASE
3 HERRAMIENTAS CASE
E
n esta sección se describirán las herramientas CASE (Computer Aided Software Engineering „Ingeniería
de Software Asistida por Ordenador‟) más comunes utilizadas durante todas las fases del proceso
software descritas en el capítulo anterior. Nos centraremos sobre todo en las herramientas CASE
utilizadas por la OAC, en especial, las que se usaban en everis durante nuestra experiencia en su departamento
de calidad. Estas herramientas son aplicaciones que facilitan el desarrollo software en todas sus fases,
constituyendo una ayuda software que optimiza todo el proceso en términos de tiempo y dinero.
Las herramientas CASE se pueden dividir en 3 grupos según la fase del proceso software que cubren:
U-CASE (Upper): Usadas para las fases de análisis de la realidad, planificación del proyecto y
definición de requisitos
M-CASE (Middle): Usadas para las fases de análisis y diseño del software
L-CASE (Lower): Usadas para las fases de codificación y control de calidad, depuración y pruebas
A continuación explicaremos las herramientas CASE más comunes utilizadas en cada fase:
Son herramientas que facilitan el análisis de la realidad de la empresa, ayudan a encontrar las necesidades y a
definir los requisitos, además de llevar el seguimiento y trazabilidad de los mismos a lo largo de todo el ciclo
de vida software. Muchas de estas herramientas, además, proporcionan medios de comunicación entre Cliente,
DP y los diferentes equipos que participan en el proceso software.
Algunos ejemplos de herramientas CASE para esta fase son: Rambutan, Controla, Reto, SoftREQ, IBM
Rational RequisitePro, Jeremia, Irqa 4 o Gatherspace.
Son herramientas que facilitan el diseño del software, ayudan a la representación visual de los diferentes
componentes, y, en su mayoría, sirven para crear diagramas UML (Unified Modeling Language „Lenguaje
Unificado de Modelado‟). Los diagramas UML son la forma de visualizar, construir y representar un sistema
más conocida y utilizada en la actualidad, por lo tanto, diseñar el software mediante diagramas UML facilita
su comprensión por parte de todos. En el DAO el uso de estos diagramas resulta imprescindible. Por este
motivo existen diversas herramientas CASE que facilitan el diseño con la creación intuitiva de diagramas
UML.
Algunos ejemplos de herramientas CASE para esta fase son: HotGloo, Protoshare, invision, yUML, gliffy,
gennymodel, lucidchart, editor jsuml2 o MagicDraw.
80
Proceso de Calidad en Ingeniería del Software 81
Son herramientas CASE que facilitan la codificación del software. La mayoría de herramientas CASE de esta
fase la conforman las denominadas IDE (Integrated Development Environment „Entorno de Desarrollo
Integrado‟). Las IDE están constituidas por editores de código fuente, herramientas de construcción
automáticas y depuradores. Para facilitar la codificación, los IDE suelen ofrecer opciones para autocompletar
las líneas, resaltar el comienzo y el final de paréntesis, corchetes y llaves o colorear el texto según su
funcionalidad (función, variable, constante, operador, etc). Asimisno, los IDE pueden incluir un compilador o
un intérprete.
Algunos ejemplos de herramientas CASE para esta fase o IDE son: Java Netbeans, Eclipse, Visual Studio,
JetBrain, Codelite, PyCharm, Xcode o Komodo.
Son herramientas CASE que facilitan el control de calidad del proyecto software en todos sus ámbitos,
incluyendo la realización de pruebas estáticas y dinámicas, herramientas para el control de versiones,
seguimiento del proyecto, revisión documental, gestión de BBDD, administración de usuarios y contraseñas,
gestión de incidencias y transferencia de archivos.
A continuación explicaremos en detalle las herramientas más importantes que utilizamos en la oficina de
aseguramiento de la calidad en everis, y el funcionamiento detallado de las mismas.
Nota*: Las herramientas que a continuación se detallan son un ejemplo, lo cual no quiere decir que sean las
mejores ni que haya muchas otras diferentes que realicen las mismas funciones o parecidas.
3.4.1 JIRA
JIRA es una herramienta CASE para la gestión y seguimiento de proyectos software, especialmente útil para la
OAC y para el comité de seguimiento. Se trata de una herramienta que permite ordenar los proyectos que lleva
una empresa, diferenciando entre los distintos clientes, equipos de desarrollo, oficinas de calidad, etc.
Centrándonos en un único proyecto software de una empresa para un Cliente, JIRA mostrará el estado del
proyecto en todo momento, qué tareas se han hecho y qué tareas quedan por hacer. También mostrará el estado
de los diferentes entregables, y especificará si ya han sido o no sometidos a una revisión técnica por parte de la
OAC.
JIRA define una nomenclatura estándar para las diferentes entregas. Usará el siguiente formato:
XXXYYYEZZ, en el cual los 3 caracteres XXX representarán el anagrama alfabético de la aplicación en
cuestión. Los caracteres YYY serán numéricos y representarán el código de proyecto dentro de la misma
aplicación. Por último, los caracteres ZZ representarán la versión de la entrega dentro del proyecto dentro de la
aplicación. De esta manera, si nos encontramos en la versión 8 del proyecto 4 de la aplicación „Cargos‟, el
nombre de la entrega en JIRA sería: „CAR004E08‟.
Por otro lado, para cada entrega se muestra el estado en el que se encuentra y quién es la entidad responsable
de continuar. Los diferentes estados en los que puede encontrarse una entrega según JIRA son:
Preparado: La entrega se acaba de crear y subir a JIRA, y todavía no ha comenzado su certificación.
En este estado pueden estar completadas o no las fases de definición de requisitos, diseño y
codificación.
En progreso: La entrega se está certificando por la OAC, de manera que está sometiéndose a pruebas
estáticas o dinámicas o a revisiones técnicas.
Bloqueada: La OAC ha encontrado alguna incidencia bloqueante que impide la correcta consecución
del resto de pruebas. En este caso, el equipo responsable de corregir la incidencia notificará a la OAC
cuando lo haya hecho, y la entrega pasará de nuevo al estado „En Progreso‟.
81
82
Herramientas CASE
3.4.2 QM
QM (Quality Management) es una herramienta CASE para el control de versiones y la transferencia de
archivos entre diferentes entidades. Constituye el medio principal de subida, descarga y envío de archivos
entre los diferentes equipos que participan en el proceso software. Se trata de una plataforma web compartida
dividida por las diferentes entregas existentes, siguiendo la nomenclatura XXXYYYEZZ definida por JIRA.
Una vez completadas las fases de definición de requisitos, diseño y codificación, los diferentes equipos subirán
los entregables generados a QM, para que la OAC pueda descargarlos y comenzar con las revisiones técnicas y
las pruebas. LA OAC a su vez subirá a QM los IRT y los informes de calidad generados para que los equipos
correspondientes puedan descargarlos para conocer las incidencias encontradas.
QM define una nomenclatura estándar para el control de versiones de los entregables. Usará el formato:
„XXXYYYE_VVV_Nombre del entregable_ZZWW‟.
XXX representará el anagrama alfabético de la aplicación en cuestión, igual que en JIRA
YYY representará el código numérico del proyecto dentro de la misma aplicación, igual que en JIRA
VVV representará el anagrama del entregable en cuestión
ZZ representará el código numérico de la versión de la entrega dentro del proyecto dentro de la misma
aplicación, igual que en JIRA
WW representará el intento de corrección (comenzando por 0), siendo el número de veces que ha sido
sometido a las revisiones técnicas de la OAC
De manera que, siguiendo con el ejemplo de JIRA, la versión 8 del proyecto 4 de la aplicación „Cargos‟,
supongamos que el MUS ha sido rechazado 2 veces por la OAC y el equipo de Desarrollo ha subido a QM el
tercer intento. El nombre del entregable sería: „CAR004E_MUS_Manual de Usuario_0802‟.
De igual manera, cuando la OAC realice la revisión técnica de este entregable, sea el resultado aceptado o
rechazado, subirá el IRT en la sección de QM correspondiente a dicho entregable, con el nombre:
„CAR004E_IRT_Informe de Revisión Técnica_0802‟.
Con esta nomenclatura, se asegura un correcto control de versiones durante todo el proceso de certificación,
tarea fundamental por parte de la OAC en esta fase.
Por otro lado, los archivos entregables estarán accesibles para cualquier equipo que necesite descargarlos, y, a
su lado, se especificará su estado, si está aceptado, rechazado, o pendiente de revisión.
82
Proceso de Calidad en Ingeniería del Software 83
3.4.3 Mantis
Mantis es una herramienta CASE para la gestión de las incidencias detectadas por la OAC en los diferentes
entregables durante las revisiones técnicas y las pruebas estáticas y dinámicas. Se trata de una plataforma web
a la cual pueden acceder la OAC y DP, para llevar un seguimiento de las incidencias, ordenadas según las
entregas (siguiendo la nomenclatura de JIRA y QM) y de cada uno de los entregables.
Mantis es una herramienta fundamental para la OAC ya que recoge todas las incidencias de una entrega de una
forma ordenada, incluyendo la versión del entregable en cuestión, la gravedad de la incidencia y la posibilidad
de anexar archivos adjuntos, tales como capturas de pantalla o resultados en formato texto de diversas pruebas
para apoyar las incidencias. Además, incorpora una funcionalidad que, mediante diversos filtros según nombre
del entregable, fecha, versión, etc, permite exportar todas las incidencias encontradas en un entregable
directamente al IRT correspondiente a dicho entregable, automatizando así el proceso de elaboración de
informes de calidad.
Mantis almacena en su Base de Datos todos los criterios de certificación descritos en la sección 2.6.2
Incidencias, manteniendo su descripción y su gravedad, de forma que es más fácil e intuitivo registrar las
incidencias más frecuentes. A la misma vez, permite la generación de una nueva incidencia que no pertenezca
a ningún criterio de certificación previo, o incluirlacomo defecto genérico si resulta ambiguo clasificar dicha
incidencia.
Esta herramienta también añade la posibilidad de diferenciar los defectos encontrados corregidos y sin
corregir, junto con la versión del entregable en la que se encuentra la incidencia y en la que se corrige. De esta
manera, es más cómodo decidir el resultado de una revisión técnica al observar en un mismo sitio las
incidencias corregidas y no corregidas.
83
84
Herramientas CASE
3.4.6 SoapUI
Soap UI es una herramienta CASE que nos permite probar los web services (o servicios web). En ocasiones,
las entregas constituirán un web service, que no es más que un software que permite el intercambio de datos
entre dos o más aplicaciones a través de una red, privada o pública, sin importar el entorno, plataforma o
lenguaje de programación en el que se encuentren.
SOAP UI nos permitirá probar web services de forma ágil, en formato WSDL (Web Services Description
Language „Lenguage de Descripción de Servicios Web‟), mediante el estándar SOAP (Simple Object Access
Protocol „Protocolo de Acceso a Objetos Simples‟).
El funcionamiento de SOAP UI es simple. Para probar un web service, la OAC crea un proyecto SOAP y
especifica, entre otros parámetros, la url donde se encuentra el descriptor del servicio web en cuestión. De este
modo, SOAP UI se encuentra con acceso al web service que queremos probar. Una vez configurado, será
necesario crear diferentes peticiones para invocar a los métodos deseados del webservice. Esta tarea la puede
realizar la OAC desde cero, o, por el contrario, las peticiones pueden venir creadas de antemano por
Desarrollo, estando incluidas en el PP para probar así el web service más eficientemente. Una vez creadas las
peticiones, se lanzarán con SOAP UI, de manera similar a como se accede a una página web, y el web service
retornará una respuesta según la petición realizada.
Nuestro equipo de aseguramiento de calidad, entre las muchas funciones que ofrece SOAP UI, utiliza
mayoritariamente la generación de pruebas funcionales. Es el caso en el que se comprueba que el web service
cumple con las funcionalidades descritas en los RF, cuyos casos de prueba pueden ser directamente creados
por la OAC, permitiendo la modificación de todos los parámetros que se desee. En estos casos de prueba, se
comprueba la salida devuelta por el web service y se corrobora que los datos de salida son los esperados.
Además de pruebas funcionales, SOAP UI permite la realización de pruebas no funcionales, como por
ejemplo pruebas de rendimiento del web service.
84
Proceso de Calidad en Ingeniería del Software 85
3.4.7 KeePass
KeePass es una herramienta CASE que permite el almacenamiento seguro de usuarios y contraseñas. A la hora
de certificar entregas, es muy posible que la OAC necesite memorizar una gran cantidad de usuarios y
contraseñas para acceder a los distintos esquemas de BBDD, entrar a las aplicaciones en modo administrador,
acceder a los datos ocultos, etc. KeePass ofrece una forma sencilla de organizar todos los usuarios y contraseña
que se necesiten de una manera eficaz y segura.
3.4.8 Notepad++
Se trata de un editor de texto sencillo pero potente, útil para modificar ficheros de texto. La OAC utilizará el
Notepad++ cuando sea necesario modificar algún fichero de configuración de SFW para adaptarlo al entorno
de certificación, actualizar las rutas de los ficheros o modificar nombres de usuarios, contraseñas, fechas, entre
otros.
3.4.9 DiffPDF
Herramienta que permite comparar dos ficheros pdf. Con el fin de realizar un análisis estático documental más
profundo, nuestro equipo de aseguramiento de calidad opta por una herramienta como esta, que simplemente
posiciona los dos ficheros pdf en la pantalla uno al lado del otro, y marca las diferencias en un color distinto.
Al no tratarse de una herramienta que realice análisis documental automático, el personal de la OAC puede
leer los ficheros PDF con atención para detectar cualquier posible incidencia.
3.4.10 VirtualBox
Herramienta CASE de virtualización. Permite accede a máquinas virtuales y a entornos sandbox para la
ejecución de diversas pruebas o la instalación de la aplicación. Nuestro equipo de calidad, a la hora de realizar
las pruebas funcionales de una aplicación, ejecuta dicha aplicación en una máquina virtual, gestionada por
VirtualBox, para prevenir que los fallos afecten al equipo directamente, y poder realizar una marcha atrás sin
preocupaciones. Para realizar las pruebas funcionales, la OAC va ejecutando uno por uno los CP especificados
en el PPF, y va comprobando que las salidas generadas por la aplicación son las esperadas según el PPF.
85
86
Conclusiones
4 CONCLUSIONES
E
n este apartado se recogen las conclusiones personales con respecto a este TFG. El objetivo del TFG era
realizar un estudio teórico de un proceso de calidad en el ámbito del desarrollo software. Apoyándonos
en los diferentes estándares existentes al respecto, en los conocimientos adquiridos en la carrera
relacionados con el tema y en la experiencia laboral como técnico de calidad en la empresa everis, hemos
conseguido realizar un estudio amplio acerca del ciclo de vida software y el aseguramiento de la calidad del
mismo.
Durante este TFG hemos utilizado, de entre todos los que existen, un modelo en cascada de desarrollo
software, y hemos seguido casos específicos en más de una ocasión. Con respecto al proceso software, al
tratarse de un tema tan amplio y extenso, nos ha sido imposible recoger en un único trabajo todos los casos y
situaciones posibles, teniendo que realizar para tal efecto un estudio diferente para cada uno de los modelos de
desarrollo software, o teniendo en cuenta todas las posibles metodologías a seguir, o incluso utilizando
diferentes herramientas CASE de entre todas las que existen. Aún así, hemos conseguido desarrollar un
método para el control de calidad que se puede extrapolar (en mayor o menor medida según lo diferente que
sea el proyecto software del prototipo que en este documento se estudia) a otro tipo de proyectos, a modo de
guía para empresas o personas que quieran reunir información acerca del proceso software y qué pasos seguir
para llevar a cabo un aseguramiento de la calidad básico.
Este TFG se puede expandir bastante en la sección de herramientas CASE por ejemplo, ya que nos hemos
centrado en explicar las que hemos usado bajo nuestra experiencia laboral. Con una mayor experiencia laboral
y habiendo probado más herramientas, podríamos haber incorporado una sección de comparación de
herramientas CASE, y determinar las ventajas e inconvenientes de cada una para cada aspecto del control de
calidad. También se puede expandir en el ámbito de herramientas CASE en las fases que no son el control de
calidad, ya que al no haber participado activamente de estas actividades, la información acerca de las
herramientas CASE que se pueden utilizar es muy ampliable.
Hemos tratado de recoger muchos criterios de certificación, pero esta información también se podría expandir
al tratar con aplicaciones que no utilicen java como código fuente, o que sigan otros estándares para
certificarse. En la sección de criterios de certificación documentales sí hemos conseguido aportar mucha
información relevante, que se puede extrapolar fácilmente a cualquier documento del mismo tipo en cualquier
proyecto software.
En resumen, se podría haber realizado un trabajo mucho más extenso, capaz de contener todas y cada una de
las situaciones posibles en el ámbito del desarrollo software, pero al tratarse de un estudio teórico, la
información de este TFG se puede extrapolar, y utilizar fácilmente como guía de control de calidad durante el
ciclo de vida software de cualquier proyecto.
86
Proceso de Calidad en Ingeniería del Software 87
REFERENCIAS
[1] „Managing the Development of Large Software Systems’, Winston Royce, 1970
[2] „Software Engineering Economics‟, Barry Boehm, 1981
[3] „Software Engineering‟, Ian Sommerville, 1985
[4] ISO/IEC 12207:1995 (Information Technology - Software Life Cycle Processes)
[5] ISO/IEC-15504 SPICE (Software Process Improvement and Assurance Standards Capability
Determination
[6] MÉTRICA V.3, 2001
[7] UNE 71044 – 1999
[8] MÉTRICA v.3, Modelo SAC, „SAC-Definición_de_roles‟
[9] https://www.lancetalent.com/blog/8-herramientas-para-la-gestion-de-proyectos-profesionales/
[10] https://www.atlassian.com/software/jira
[11] https://ws142.juntadeandalucia.es/agriculturaypesca/qm/qm/principal/jsp/qm_pr_pri_presentacion.jsp
[12] „SAC005P_CON_Plan_de_Configuracion_0100‟, Normativa Técnica, MÉTRICA v.3
[13] UNE-EN 16271:2013
[14] ISO 21500:2012
[15] https://www.gestiopolis.com/metodologia-para-evaluacion-diagnostico-y-diseno-de-procesos/
[16] https://www.emprendepyme.net/tecnicas-e-instrumentos-para-detectar-las-necesidades-de-
capacitacion.html,
[17] https://es.surveymonkey.com/mp/employee-satisfaction-surveys/
[18] https://www.survio.com/plantilla-de-encuesta/evaluacion-de-software
[19] https://www.monografias.com/docs/Ejemplo-encuesta-de-satisfacci%C3%B3n-para-usuario-de-
FKZ3RNCMY
[20] Apuntes de Proyectos de Telemática
*21+ „Introducción alos Proyectos‟, Departamento de Ingeniería Telemática, 2017-2018:
https://ev.us.es/bbcswebdav/pid-2439180-dt-content-rid-8100833_1/courses/201718-1990061-199-
EC/Proyectos-tema01.pdf
[22] Trabajo Final Proyectos de Telemática
[23] https://contrataciondelestado.es/wps/wcm/connect/62c67958-52c9-4ef5-b30e-
cd3b1566aef2/DOC_CD2012-382658.pdf?MOD=AJPERES
[24] http://ccapsa.com/2013/10/02/
[25] UNE-ISO/IEC 90003-2005
[26] ISO 9001-2000
[27] MÉTRICA v.3, Modelo SAC, „SAC007P_DDR_Definicion Detallada Requisitos_0100‟
[28] ISO/IEC 14764:1999
87
88
Referencias
88
Proceso de Calidad en Ingeniería del Software 89
89
90
Glosario
GLOSARIO
AENOR: Asociación Española de Normalización y Certificación 2
ASI: Análisis del Sistema de Información 27
BSI: British Standards Institution 45, 88
CAPDER: Consejería de Agricultura, Pesca y Desarrollo Rural 5
CASE: Computer Aided Software Engineering 'Ingeniería de Software Asistida por Ordenador' 80
CEI: Certificación e Implantación del Sistema 43
CP: Caso de Prueba 41
CSI: Construcción del Sistema de Información 35
CU: Caso de Uso 28
DAO: Diseño de Arquitectura Orientado a Objetos 9
DDR: Definición Detallada de Requisitos 4
DP: Dirección de Proyectos 4
DSI: Diseño del Sistema de Información 31
FAQ: Frequently Asked Questions 38
IAS: Implantación y Aceptación del Sistema 43
IDE: Integrated Development Environment „Entorno de Desarrollo Integrado‟ 81
IEC: International Electrotechnical Commission 2, 87
IEEE: Institute of Electrical and Electronics Engineers 45
IPA: Informe de Pruebas de Aceptación 70
IPC: Informe de Pruebas de Certificación 68
IRT: Informe de Revisión Técnica 64
ISO: International Organization for Standardization 2, 87
JP: Jefe de Proyecto 4
LOPD: Ley Orgánica de Protección de Datos 51
LSSI: Ley de Servicios de la Sociedad de la Información 51
MADEJA: Marco de Desarrollo de la Junta de Andalucía 27
MÉTRICA: Estándar de Desarrollo software del Gobierno de España 2
MIC: Manual Básico de Instalación y Configuración 9
MOD: Informe de Modelo de Datos 66
MUS: Manual de Usuario 9
90
Proceso de Calidad en Ingeniería del Software 91
91
92
Glosario
92