Sei sulla pagina 1di 13

TIA

Tecnología, Investigación y Academia

Impacto de los requerimientos en


la calidad de software
Impact of Requirements on Software Quality
Cindy Tatiana Rodríguez Barajas1

Para citar este artículo: Rodríguez, C. T. (2017). Impacto de los requerimientos en la calidad de sof-
tware. TIA, 5(2), pp. 161-173.

Resumen
El siguiente artículo pretende dar a conocer el impacto que tiene la definición de los
requerimientos en la calidad del desarrollo de software; se darán a conocer conceptos
Artículo básicos sobre requerimientos y la correcta forma de realizar su definición (levantamiento),
de investigación calidad de software enfocada a pruebas estáticas y un breve análisis estadístico, de cómo los
requerimientos influyen en la calidad de software y, por ende, en los costos del proceso de
Fecha de recepción: desarrollo de software.
14-10-2014 Palabras clave: calidad de software, defectos, elicitación, pruebas estáticas, requerimientos.
Fecha de aceptación:
27-06-2017 Abstract
This article intends to make known the impact that has definition of requirements in the
ISSN: 2344-8288 quality of software development. Basic concepts of requirements and the right way to define
Vol. 5 No. 2 them (survey), quality of software focused on static tests and a brief statistical analysis of
Julio - diciembre 2017 how requirements influence the quality of software and, therefore, the costs of software
Bogotá-Colombia development process will be announced.
Keywords: software quality, defects, elicitation, static test, requirements..
http://revistas.udistrital.edu.co/ojs/index.php/tia/issue/archive

1
Ingeniera Industrial, Universidad Distrital Francisco José de Caldas. Correo electrónico: cindy_taty@hotmail.com

Publicación de la Facultad de Ingenieria


Tecnol.Investig.Academia TIA
ISSN: 2344-8288 • Vol. 5 No. 2 • Julio - Diciembre 2017 • Bogotá-Colombia

INTRODUCCIÓN documento formalmente impuesto”. Sin embargo,


los requerimientos se ven influenciados por factores
Hoy en día el proceso de desarrollo de software es como las perspectivas y prejuicios de los usuarios
de vital importancia para muchas empresas, pues respecto al sistema o las políticas organizacionales,
a través de él se da solución a las necesidades de lo cual puede llegar a incidir de forma negativa en
los usuarios. Una de las etapas más importantes las etapas posteriores del desarrollo de software
dentro de dicho proceso consiste en la definición si no se realiza una adecuada definición de los
de requerimientos, ya que es en esta etapa donde mismos [2].
se plasman de forma clara y concisa todos los Es por esta razón que un apropiado conocimiento
requisitos del usuario. acerca de las características de los requerimientos
Sin embargo, muchos proyectos de desarrollo y de las técnicas que permiten plasmar las
de software no tienen el éxito esperado debido verdaderas necesidades de los usuarios, ofrece
a la deficiente información que posee el ventajas tales como la reducción de esfuerzo en la
documento de requerimientos; es por esta razón etapa de desarrollo, acertada estimación de costos
que a través del presente documento se desea y fácil identificación de posibles mejoras.
presentar información clave para entender qué
es un requerimiento y las diferentes técnicas que Características de los requerimientos
existen para realizar una adecuada definición de De acuerdo con el estándar IEEE 830, un
los mismos. requerimiento debe cumplir con ciertas
Asimismo, se desea mostrar una serie características, para ser considerado de calidad.
de estadísticas que evidencian cómo los En la Figura 1 se muestran de manera general las
requerimientos afectan de forma significativa características fundamentales.
la calidad del software y, por ende, los costos
asociados al proceso de desarrollo de software. A continuación, se desarrolla lo expuesto en la
Figura 1.

CONTENIDO • Correcto: un requerimiento cumple esta


característica únicamente si las definiciones que
se encuentran en el documento corresponden a
Datos relevantes sobre requerimientos necesidades reales de los usuarios.
• No ambiguo: se refiere a que las necesidades
Impacto de los requerimientos en la calidad de software.

plasmadas en el documento de requerimientos


Definición de requerimiento poseen una única interpretación.
Un requerimiento se puede definir como una • Completo: se considera que un requerimiento
necesidad documentada que establece la forma se encuentra completo si incluye todas las
en la cual debe funcionar un sistema; debe definiciones de las funcionalidades deseadas,
incluir, de forma clara y concisa, los atributos y interfaces (externas y graficas), entradas, salidas,
características que del sistema para cumplir con flujos alternos y terminología.
las expectativas del usuario. • Verificable: cuando a través de un proceso
De acuerdo con el estándar IEEE 830 [1], una persona o herramienta puede constatar
Rodríguez, C. T..

un requerimiento se define como “Condición que el sistema satisface lo establecido en


o capacidad que debe poseer un sistema o el requerimiento, por ejemplo: “la salida se
componente de un sistema para satisfacer un suministra dentro de los veinte segundo siguientes
contrato. Un estándar, una especificación u otro al evento E el 60% de las veces” [3].

162
ISSN: 2344-8288 • Vol. 5 No. 2 • Julio - Diciembre 2017 • Bogotá-Colombia

• Consistente: indica que un requerimiento es Los requerimientos funcionales hacen


consistente si y solo si, el conjunto de requisitos referencia a las actividades y servicios que debe
allí definidos no se contradice entre ellos o ejecutar el sistema, este tipo de requerimientos
generan conflicto. tiene en cuenta las entradas, salidas y el
• Priorizable: un requerimiento debe ser procesamiento y almacenamiento de los datos;
priorizable, es decir, debe permitir determinar también son conocidos como requerimientos de
su importancia con relación a las necesidades comportamiento. Por lo general, están descritos
de los usuarios. en términos de usuarios y tradicionalmente se
• Modificable: si al realizar un cambio sobre las detallan a través de la sentencia “debería” [5].
definiciones ya establecidas de forma fácil, Por ejemplo, para un sistema de biblioteca
completa y consistente, se considera que el universitario, usado por estudiantes y personal
requerimiento cumple con esta característica. docente, se podrían definir los siguientes
• Explorable: también conocida como requerimientos funcionales:
“Trazabilidad”, se cumple esta característica
cuando es posible rastrear de forma sencilla el • El usuario deberá tener la posibilidad de buscar
origen de los requerimientos y los componentes en el conjunto inicial de la base de datos o
del sistema que ejecutarán las funcionalidades seleccionar un subconjunto de ella.
descritas. • El sistema deberá proporcionar visores
• Utilizable: cuando es posible utilizar el adecuados para que el usuario lea documentos
documento de requerimientos para las tareas de en el almacén de documentos.
mantenimiento. • A cada pedido se le deberá asignar un
identificador único que el usuario podrá copiar
Tipos de requerimientos al área de almacenamiento permanente de la
Los requerimientos pueden ser clasificados en cuenta.
dos tipos, los requerimientos funcionales y los no
funcionales [4].
Impacto de los requerimientos en la calidad de software.
Rodríguez, C. T..

Figura 1. Características de los requerimientos según IEEE


Fuente: elaboración propia.

163
ISSN: 2344-8288 • Vol. 5 No. 2 • Julio - Diciembre 2017 • Bogotá-Colombia

Los ejemplos son tomados textualmente de [2]. de alguno de estos requisitos puede hacer que el
sistema sea inútil para el usuario.
Por otro lado, los requerimientos no En la Figura 2 se muestra la tipología de los
funcionales se relacionan con a las propiedades requerimientos no funcionales.
que debe poseer el sistema a fin de soportar las
funcionalidades definidas por el usuario; en este Estructura básica de un requerimiento
tipo de requerimientos se describen las capacidades Una posible estructura de documento de
técnicas que el sistema debe poseer, tales como requerimientos, de acuerdo con el estándar IEEE
fiabilidad, tiempos de respuesta, disponibilidad, 830, debe contener como mínimo los elementos
rendimiento, etc. que se describen en la Figura 3.
De acuerdo con Sommerville, este tipo de A continuación se desarrolla lo expuesto en la
requerimientos en ocasiones son más críticos que Figura 3.
los requerimientos funcionales, ya que la omisión

Figura 2. Tipo de requerimientos no funcionales según Summerville


Fuente: [2].
Impacto de los requerimientos en la calidad de software.
Rodríguez, C. T..

Figura 3. Estructura de Requerimiento según IEEE 830


Fuente: elaboración propia.

164
ISSN: 2344-8288 • Vol. 5 No. 2 • Julio - Diciembre 2017 • Bogotá-Colombia

• Propósito: describe el objetivo general de los • Funcionalidades: incluye una especificación


que se desea realizar y los usuarios hacia los detallada de cada caso de uso donde se definen
cuales va dirigido. las acciones fundamentales.
• Alcance: describe lo que hará el sistema y lo • Requisitos de desarrollo: se describen requisitos
que no hará; además, describe los beneficios estáticos y dinámicos del sistema como el
que traerá la implementación del sistema. número de terminales que debe soportar el
• Definiciones: establece el vocabulario que se sistema o número de usuarios que tendrá el
utilizará a lo largo del requerimiento. sistema.
• Referencias: listado de documentos adicionales • Base de datos lógica: describe el tipo de
que soporten el requerimiento tales como información que utilizará el sistema, frecuencia
casos de uso, concepto de expertos sobre los de uso de los datos, entidad de los datos y sus
problemas actuales, etc. relaciones, restricciones de integridad de la
• Apreciación global: describe de forma muy información, etc.
general el contenido del requerimiento y cómo • Restricciones de diseño: especifica las
se encuentra organizado. restricciones que se puedan presentar por
• Perspectiva del producto: en esta sección se imposición de estándares, limitaciones del
presenta el caso de negocio y el concepto hardware, etc.
operacional del sistema; describe cómo el • Atributos de calidad de software: definición
sistema dará solución a una problemática del clara de cómo se da cumplimiento a las
negocio y lo usuarios a quien servirá. características de un requerimiento.
• Funciones del producto: en esta sección se • Modelo orientado a objetos: describe la
deben resumir las principales capacidades del arquitectura del sistema, el diagrama de clases
sistema, es aquí donde se incluyen los casos de y los diagramas de actividad.
uso.
• Características del usuario: describe y justifica Técnicas para especificación de
las habilidades técnicas y capacidades de cada requerimientos
clase de usuario. Una adecuada especificación de requerimientos
• Restricciones: se incluyen todas las limitaciones permitirá generar información consistente, clara y
del sistema tales como políticas reguladoras, compacta. Hoy en día existen múltiples técnicas
interfaces con otras aplicaciones, funciones de para el levantamiento de requerimientos, esta
control, seguridad del sistema, etc. actividad se conoce como elicitación.
Impacto de los requerimientos en la calidad de software.

• Atención y dependencias: en esta sección se Algunos de los autores más importantes que
debe nombrar cada uno de los factores que proponen varias de las técnicas comúnmente
tienen incidencia sobre el requerimiento. En utilizadas actualmente son Loucopoulos [6],
caso de que el requerimiento dependa de uno y Nuseibeh y Easterbrook [7]. De acuerdo con
más grande, se deben relacionar los requisitos Loucopulos [6], algunas de las técnicas de
de mayor jerarquía y las interfaces entre los elicitación de requerimientos que pueden ser
sistemas. utilizadas para el levantamiento de requerimientos
• Interfaces externas: detallas todas las salidas y se describen en la siguiente Tabla 1.
entradas del sistema.
Rodríguez, C. T..

165
ISSN: 2344-8288 • Vol. 5 No. 2 • Julio - Diciembre 2017 • Bogotá-Colombia

De acuerdo con Nuseibeh y Easterbrook [7], mantenibilidad, portabilidad, usabilidad, seguridad


las técnicas de elicitación se pueden resumir en e integridad [8] y [9].
lo expuesto en la Tabla 2. Uno de los elementos fundamentales para
determinar la calidad de software es el testing o
Calidad de software pruebas. Las pruebas permiten validar y verificar
el software, entendiendo la validación como el
La calidad de software se refiere al conjunto de proceso que permite determinar si el software
cualidades que caracterizan un producto de cumple los requisitos y la verificación como
software y que determinan su utilidad y existencia; el proceso para determinar si el producto de
la calidad es sinónimo de eficiencia, flexibilidad, una determinada fase satisface las condiciones
definidas para continuar con la siguiente [10].

Tabla 1. Técnicas de elicitación de acuerdo con Loucopulos

Fuente: elaboración propia a partir de [6].

Tabla 2. Técnicas de elicitación de acuerdo con Nuseibeh y Easterbrook


Impacto de los requerimientos en la calidad de software.
Rodríguez, C. T..

Fuente: elaboración propia a partir de [7].

166
ISSN: 2344-8288 • Vol. 5 No. 2 • Julio - Diciembre 2017 • Bogotá-Colombia

Uno de los pilares fundamentales en la etapa de El esfuerzo que implica corregir este tipo de
pruebas, es hallar todos los posibles defectos del defectos es mucho mayor que cualquier otro
software antes de continuar a una etapa posterior (82%), como se ve en la Figura 5.
dentro del proceso de desarrollo de software. Sin embargo, esta situación se presenta en
Un estudio realizado por James Martin [11], gran medida porque el esfuerzo de las pruebas
reveló que la causa del 56% de los defectos se encuentra concentrado en una fase tradicional
encontrados en el proceso de pruebas, se debe de pruebas, en la cual los defectos se encuentran
a errores introducidos en la fase de requisitos hasta el final del proyecto (Figura 6).
como resultado de requerimientos mal escritos,
ambiguos o incompletos (Figura 4).

Figura 4. Distribución típica del origen de los defectos


Fuente: elaboración propia [12].

Figura 5. Distribución típica del esfuerzo para resolver errores


Fuente: elaboración propia [12].
Impacto de los requerimientos en la calidad de software.
Rodríguez, C. T..

Figura 6. Uso de los recursos de pruebas en las etapas de desarrollo de software


Fuente: elaboración propia.

167
ISSN: 2344-8288 • Vol. 5 No. 2 • Julio - Diciembre 2017 • Bogotá-Colombia

Momento en el cual el costo de reparar los estos cumplan con las características de un buen
defectos es alto y riesgoso, ya que es posible requerimiento; para esto, se recomienda incluir
encontrarse con errores complejos que requieran de forma temprana al equipo de pruebas a fin de
un tiempo considerable para su solución, lo cual que se realicen pruebas estáticas que permitan
afectaría el cronograma y presupuesto del proyecto identificar los defectos de forma temprana.
o errores que no son factibles de solucionar, Las técnicas de revisión estática se conocen
incumpliendo así los requerimientos del usuario. como revisiones porque detectan manualmente
De acuerdo con los datos promedio de defectos en cualquier producto del desarrollo;
la industria, el costo de reparar un error de dentro de las técnicas de revisiones se encuentran
requerimiento es aproximadamente de 139 US, si las revisiones informales, las inspecciones,
se encontrara durante la fase de requerimientos; walktrough y auditorías [13].
sin embargo, si ese error se encontrara en fases
posteriores el costo de arreglarlo aumentaría • Revisiones informales: consiste en un
significativamente (Figura 7). intercambio de opiniones entre los participantes.
Por ejemplo, si se encontrará un error por • Inspecciones: son un método de análisis para
requerimiento en la fase de pruebas, el costo verificar y validar un producto de software
de reparación de este defecto correspondería a manualmente. Son un proceso definido donde
los costos asociados de las fases anteriores a la un equipo de personas analiza el producto
detección hasta la fase donde se introdujo el error través de una técnica de lectura, a fin de detectar
(Figura 8). defectos antes que inicie la fase de pruebas
Es por esta razón que se debe garantizar la funcionales.
calidad del software desde el inicio del proceso, • Walktrough: consiste en simular la ejecución de
realizando una adecuada definición de los casos de prueba, es decir, se recorre le programa
requerimientos y validando desde el inicio que imitando lo que haría la computadora.
Impacto de los requerimientos en la calidad de software.

Figura 7. Costo de la corrección de defectos en el ciclo de vida de desarrollo de software


Fuente: elaboración propia.
Rodríguez, C. T..

Figura 8. Costo de corrección de un defecto de requerimiento encontrado en pruebas


Fuente: elaboración propia.

168
ISSN: 2344-8288 • Vol. 5 No. 2 • Julio - Diciembre 2017 • Bogotá-Colombia

• A
uditorías: contrastan los artefactos generados CONCLUSIONES
durante el desarrollo con estándares generales o
de la organización. A fin de evidenciar en un entorno real el impacto de
los requerimientos dentro del proceso de software,
Para la evaluación de requerimientos, es posible se aplicaron pruebas estáticas a una muestra de
utilizar la técnica de lectura basada en listas de requerimientos diferentes dentro de una entidad
comprobación, ya que proporcionan un apoyo financiera; esta evaluación se realizó a través de
mediante preguntas que se deben responder a un formulario en el cual, por medio de preguntas,
medida que se lee el artefacto. se identificó si el requerimiento cumplía o no
Una lista de comprobación para requisitos cumplía las características fundamentales de un
contiene preguntas sobre los defectos típicos que requerimiento.
suelen aparecer en los requisitos (Figura 9). En la Tabla 3, la Tabla 4 y la Tabla 5 se encuentra
Dentro de este check lists, las primeras preguntas el formulario de evaluación utilizado y los criterios
corresponden a los criterios de calidad de los de evaluación definidos.
requisitos, mientras que las últimas establecen A continuación, se presentan los resultados más
los problemas típicos cuando se especifican los significativos de la aplicación de este formulario.
requisitos. De la muestra de requerimientos utilizada para
La fase de definición de requerimientos la evaluación, se pudo identificar que ningún
determina la calidad del software desde la documento cumple completamente con las
perspectiva del usuario, quien es el que finalmente características de calidad, solo el 30% de dichos
hará uso del sistema; es por esta razón que los requerimientos cumple con algunas características
requisitos necesitan ser evaluados de forma crítica de un buen requerimiento (Figura 10).
para prevenir y disminuir los costos asociados a
este tipo de errores.
Impacto de los requerimientos en la calidad de software.
Rodríguez, C. T..

Figura 9. Ejemplo check list para verificación de requerimientos


Fuente: elaboración propia.

169
ISSN: 2344-8288 • Vol. 5 No. 2 • Julio - Diciembre 2017 • Bogotá-Colombia

Tabla 3. Formulario validación requisitos

Fuente: elaboración propia.

Tabla 4. Aspectos a evaluar dentro de la prueba de requerimientos


Impacto de los requerimientos en la calidad de software.

Fuente: elaboración propia.

Tabla 5. Criterios de Evaluación para la prueba de Requerimientos


Rodríguez, C. T..

Fuente: elaboración propia.

170
ISSN: 2344-8288 • Vol. 5 No. 2 • Julio - Diciembre 2017 • Bogotá-Colombia

La Figura 11 evidencia que la mayoría de • Identificación de riesgos.


los requerimientos evaluados no cumplen las • Consistencia con políticas de la organización.
características de viabilidad, correcto, completo • Definición de acrónimos.
y no ambiguo; sin embargo, se evidencia que el • Ortografía del requerimiento.
aspecto en el cual los requerimientos tienen un • Identificación de casos de prueba o vivencia
cumplimiento óptimo es la consistencia. reales.
De acuerdo a la evaluación realizada, se • Identificación clara de las funcionalidades.
identificó que los ítems donde más inconvenientes • Definición de interfaces gráficas.
se presentan a en el momento de la definición de • Definición entradas y salidas.
un requerimiento de calidad son (Figura 12): • Límites operativos.
• Interpretación del requerimiento por todos los
involucrados.
• Redacción del requerimiento.

Figura 10. Estado de requerimientos evaluados


Fuente: elaboración propia.
Impacto de los requerimientos en la calidad de software.
Rodríguez, C. T..

Figura 11. Cumplimiento de los requerimientos por aspecto a evaluar


Fuente: elaboración propia.

171
ISSN: 2344-8288 • Vol. 5 No. 2 • Julio - Diciembre 2017 • Bogotá-Colombia

Figura 12. Ítems donde se encuentran los principales problemas


Fuente: elaboración propia.

Además, se verificó para los proyectos de Para los proyectos en proceso de pruebas, se
desarrollo de software que se encuentran en encontró que del total de defectos reportados
pruebas, de acuerdo al reporte de errores, el el 23% de los errores se dan por inadecuada
porcentaje que corresponde a defectos por definición de requerimientos.
requerimientos (Figura 13).
Impacto de los requerimientos en la calidad de software.

Figura 13. Defectos encontrados en pruebas catalogados por etapa que genera el error
Fuente: elaboración propia.
Rodríguez, C. T..

172
ISSN: 2344-8288 • Vol. 5 No. 2 • Julio - Diciembre 2017 • Bogotá-Colombia

REFERENCIAS

[1] IEEE. (1998). Especificación de Requerimientos de [8] ISO. (2014). ISO/IEC 9126, Software Engineering–
Software, IEEE/ANSI 830–1998. Autor. Product. Autor.
[2] Sommerville. (2005). Ingeniería del Software. [Sép- [9] ISO (2011). ISO/IEC 25010, System and Software
tima edición]. Madrid: Pearsson Education S. A. Engineering–System and Software Quality Requeri-
[3] Monferrer A. (2000). E78 Ingeniería del Software, ments and Evaluation. Autor.
Curso de ingeniería informática 2000–2001. Caste- [10] Pressman, S. y Roger, S. (2005). Ingeniería de Sof-
llón de la Plana: Departament d’ Informàtica, Uni- tware: Un enfoque práctico. México: McGraw Hill
versitat Jaume I. Computer Science Series.
[4] Fernández, S. n. (2006). Desarrollo de sistemas de [11] Mogyorodi, G. (2003) What is Requirements Based
información: Una metodología basada en el mode- Testing? The Journal of Defense Software Enginee-
lado. E-aula politécnica, 120, 82-86. ring, 12-15.
[5] Castillo, J. (2007). Seminario MIS–CIMAT: Perfil del [12] Lazic L., y Mastorakis N. (2008). Cost Effective Sof-
ingeniero de requerimientos. México: Centro de In- tware Test Metrics. WSEAS Transactions on Compu-
vestigación en Matemáticas A.C. ters, 6(7), 599-616.
[6] Loucopoulos P. y Karakostas, V. (1995). System Re- [13] Dolado J., Ramos, I. y Tuya, J. (2007). Técnicas
quirements Engineering. Michigan: McGraw Hill cuantitativas para la gestión en la ingeniería del sof-
International Software Quality Assurance Series. tware. Netbiblo.
[7] Nuseibeh B. y Easterbrook S. (2000). Requirements
Engineering: A Roadmap, ICSE 2000. Irlanda:
Limerick.
Impacto de los requerimientos en la calidad de software.
Rodríguez, C. T..

TIA 173

Potrebbero piacerti anche