Вы находитесь на странице: 1из 21

MODELOS DE CALIDAD DE SOFTWARE Ingrid Alejandra Cabra Snchez ingrid.cabra@uptc.edu.co Delia Mara Borda Fuentes delia.borda@uptc.edu.

co Universidad Pedaggica y Tecnolgica de Colombia Facultad de ingeniera Escuela de sistemas y computacin

RESUMEN La calidad en el software es uno de las factores principales para el ptimo desarrollo de software, debido a que obliga a que las diferentes empresas desarrolladoras se basen en estndares y mtricas para garantizar que su producto cumple con aquellas necesidades del cliente, y que puede estar sometido a pruebas que corroboran su utilidad. Los modelos de calidad soportan esta gua parametrizada, y son una base para que los productores de software alcancen una certificacin debido a su transparencia y cuidado en las aplicaciones que ofrecen al mercado de los sistemas. PALABRAS CLAVES Calidad de software, modelos de calidad, CMMI.

ABSTRACT The software quality is one of the main factors for optimal software development, because it requires different development companies based on standards and metrics to ensure your product meets those customer needs, and can be tested to confirm its usefulness. Quality models support this guide parameters, and a foundation for software producers to achieve certification because of its transparency and care in applications that offer the systems market.

KEYWORDS Software quality, quality models, CMMI.

INTRODUCCIN El desarrollo de software es una de las herramientas de mayor importancia en la Ingeniera de Sistemas, su evolucin se ha dado de manera significativa gracias a la variedad de herramientas que en los ltimos tiempos se han creado y mejorado. Una de las mayores ventajas de la utilizacin de esta eficaz herramienta es la posibilidad de plasmar mediante una serie de sentencias lgicas las ideas del ser humano y aplicarlas a las diferentes actividades con el fin de facilitar y solucionar aquellos problemas cotidianos a los que se enfrenta en sus labores.

Uno de los factores ms importantes que se deben tener en cuenta en la produccin de software es la calidad, que se constituye por una serie de metodologas y herramientas cuyo nico fin es la produccin de software de calidad, teniendo en cuenta los

requisitos especificados, y la valoracin previa a dichos requisitos para determinar el modelo ms adecuado para su desarrollo. Las principales caractersticas que se deben evaluar antes de elegir el modelo a seguir, se basan en primera medida, en la eficiencia, la flexibilidad, la facilidad de uso, la correccin, el mantenimiento, y la seguridad.

En la actualidad la calidad en el software solamente es alcanzable, cuando el software es sometido a diferentes pruebas, que hacen que se posicione segn estndares previstos, como el modelo CMM/CMMI, la norma ISO15504, entre otras mtricas que pretenden evaluar el software y certificarlo. La certificacin de Calidad en la industria del software

se realiza, habitualmente, a travs de normas que reglamentan estos modelos de calidad, que apuntan a controlar la gestin en el desarrollo del software de una manera integral.

CONCEPTOS CLAVES Para lograr un buen entendimiento de los modelos de calidad es necesario tener en cuenta el significado de algunos conceptos como marco de referencia tales como:

Calidad

La calidad es una cualidad muy importante en la presentacin, diseo y servicio de un producto. Radica en que el producto est bajo estndares que le permitan lograr altas posiciones, y sean confiables para el consumidor. La calidad en el software solamente es alcanzable, cuando el software es sometido a diferentes pruebas, que hacen que se posiciones segn estndares previstos, como el modelo CMM/CMMI, la norma ISO15504, entre otras mtricas que pretenden evaluar el software y certificarlo.

Ingeniera del software:

La ingeniera del software es aquella ciencia que se encarga del estudio, planeacin, evaluacin, verificacin, e implementacin de las estructuras y metodologas para garantizar software de calidad. Segn la IEEE (Instituto de Ingenieros Elctricos y Electrnicos), la Ingeniera del Software es la aplicacin de un enfoque sistemtico, disciplinado y cuantificable al desarrollo, operacin y mantenimiento del software.

Modelo de Calidad: Un modelo de calidad constituye una serie de pasos a seguir para alcanzar un alto grado de perfeccin, convirtindose en un punto de referencia para el desarrollo de nuevos proyectos.

Producto de Software:

Es el resultado final de un proceso que ha pasado por varias etapas. Empezando por el anlisis previo de las necesidades del usuario (Levantamiento de Requisitos), donde se aplican diferentes tcnicas de recopilacin de informacin para as dar inicio al

desarrollo del proyecto; la siguiente fase se constituye por el diseo y desarrollo del producto de software, y finalmente se realizan las pruebas, y mantenimiento del software mediante la puesta en marcha del producto.

Producto: Es el resultado de un proceso que satisface las necesidades del usuario.

Estndar: Son las mtricas y parmetros bajo los que se debe basar un producto de software para alcanzar un nivel de alta calidad, definindose como el grado de cumplimiento exigible a un criterio de calidad. Los estndares de calidad determinan el nivel mnimo y mximo aceptable para un indicador.

Modelo: Es un prototipo que sirve de gua en la elaboracin de proyectos se destaca por ser un punto de referencia para imitarlo o reproducirlo.

Software: Es el soporte lgico e inmaterial que permite que la computadora pueda desempear tareas inteligentes, dirigiendo al hardware con instrucciones y datos a travs de diferentes tipos de programas.

UN POCO DE HISTORIA DE LOS MODELOS DE CALIDAD DE SOFTWARE El avance que ha tenido la industria de software ha evolucionado rpidamente, debido a que las nuevas tecnologas e investigaciones estn en una constante produccin de ideas, dando paso a la creacin de distintos productos y utilidades en el mercado.

Este acontecimiento fue notorio por la gran demanda que generaron los productos de software reduciendo su costo y aumentando su rentabilidad, haciendo surgir una variedad de estilos por parte de los desarrolladores al producir sus aplicaciones, lo que causo que se construyera infinidad de software sin mtricas y normas de calidad, si no solo con las apreciaciones de quienes diseaban este producto. Esto dio paso a la creacin de organismos que fijaron ciertos parmetros y modelos de calidad para los productos y las empresas productoras de software.

Una de las principales razones por las que se crearon los modelos de calidad se basa, en que es ms factible corregir el software durante todo el proceso de desarrollo, que en la entrega de un producto final, debido a que se hace una considerable disminucin en los costos de revisin, y en el trabajo del programador. Segn Romero Garca[1], se le debe dar importancia a cada programa que se desarrolla, tomar conciencia y responsabilidad de las consecuencias que un defecto en el producto podra ocasionar, distinguiendo

entre simple y fcil porque un error simple no necesariamente es fcil de encontrar afectando la calidad, por este motivo es indispensable que se realice una visualizacin del modelo de calidad con el que se va a trabajar el software, tomndolo como una gua parametrizada para elaborar un producto de alto nivel.

A nivel mundial se est generando un conjunto de modelos para medir la calidad de los sistemas de software (SS), los cuales representan las caractersticas para que estos sean productos y servicios de calidad que compitan en un mercado abierto y global, esto segn una investigacin realizada por la universidad Simn Bolvar de Venezuela [2]. Actualmente existe un gran apogeo del mercado de las Tecnologas de la Informacin, concretamente del mercado de productos de software, debido a que las empresas han empezado a adoptar los modelos y mtricas para la realizacin de productos con calidad y as favorecer las necesidades y expectativas de los clientes, brindando soporte y seguridad en sus aplicaciones, lo anterior mencionado por medio de un estudio de la facultad de ingeniera de electricidad y computacin de la escuela superior Politcnica del Litoral de Ecuador [3].

Segn la referencia [4], los modelos ms destacados en la industria del software con calidad son la norma ISO/IEC 15504 y los modelos CMMI nivel 3 y nivel 4.

Los modelos de calidad se deben formular de acuerdo a las caractersticas competitivas para cada tipo de SS, considerando la alta participacin humana en el proceso de desarrollo de software. A continuacin se mencionarn los ms utilizados:

MODELO DE McCall (1977): Segn Fillottrani en su investigacin sobre calidad en el desarrollo de software [5], este modelo describe la calidad como un concepto elaborado mediante relaciones jerrquicas entre factores de calidad, estos factores se concentran en tres aspectos fundamentales: - Operacin del producto - Revisin del producto - Transicin del producto Este modelo se basa en 11 factores de calidad, que se organizan en torno a los tres ejes de la siguiente forma:

Tabla 1. Tomada de www.ldv.com.ar/alumnos/calidad/cap1.doc

Las mtricas desarrolladas se relacionan con los factores de calidad y la relacin que se establece se mide en funcin del grado de cumplimiento de los criterios. En la figura 1 se pueden observar los tres ejes principales en los que se basa este modelo y los factores que involucra cada uno.

Figura 1. Tomada de www.ldv.com.ar/alumnos/calidad/cap1.doc

Algunos de los lmites que tiene este modelo son [5]: Es difcil que las caractersticas y subcaractersticas sean siempre perfectamente independientes Falta una asociacin explcita entre los modelos y el proceso de Software Las caractersticas son en general propiedades abstractas medibles mediante mtricas. No siempre existe una relacin perfectamente lineal entre los valores de las mtricas y las caractersticas que deben estimar

MODELO MOSCA (MODELO SISTMICO DE CALIDAD) Este modelo est basado en una matriz de calidad global, la cual consta de cuatro tipos de calidades y se basa en las dos perspectivas: proceso y producto. Estos cuatro tipos de calidades son las consideraciones de los aspectos internos y conceptuales de ambas perspectivas, considerando adems el punto de vista del cliente y del usuario [2]. En la Figura 2 se detalla la relacin entre dichos elementos.

Figura 2. Tomado de http://www.ejournal.unam.mx/cys/vol08-03/CYS08304.pdf

Este modelo tambin se basa en el modelo de calidad del producto de software y proceso de software con un enfoque sistmico, cuyo objetivo especfico es soportar el enfoque de calidad global para las dos dimensiones asociadas al proceso, interna y conceptual.

Es de este punto donde surge el modelo MOSCA el cual consta de cuatro niveles: dimensiones, categoras, caractersticas y mtricas (115 en total distribuidas de la siguiente forma: 46 mtricas de funcionalidad, 32 de fiabilidad y 38 de usabilidad).

En la figura 3, se pueden ver los cuatro niveles que componen la estructura del Modelo MOSCA

Figura 3. Tomada de http://www.lisi.usb.ve/publicaciones/02%20calidad %20sistemica/calidad_21.pdf

Tomando como punto de referencia el estudio del laboratorio de investigacin en sistemas de informacin de la universidad simn Bolvar de Venezuela [6], describirn brevemente algunas caractersticas importantes de cada nivel: se

Nivel 0: Dimensiones. Eficiencia del proceso, Efectividad del proceso, Eficiencia del producto y Efectividad del producto son las cuatro dimensiones propuestas en el prototipo de modelo. Nivel 1: Categoras. Se divide en 11 categoras entre producto y proceso, pero esto no implica un desligamiento entre ellas, simplemente se realiza para identificar a que sector o submodelo pertenecen.

Nivel 2: Caractersticas. Cada categora tiene asociado un conjunto de caractersticas (56 asociadas al producto y 27 al proceso de desarrollo), las cuales definen las reas claves a satisfacer para lograr, asegurar y controlar la calidad tanto en el producto como en el proceso. Nivel 3: Mtricas. Para cada caracterstica se propone una serie de mtricas utilizadas para medir la calidad sistmica.

MODELO ISO Las Normas ISO 9000 son un conjunto de enunciados, que especifican los elementos que deben integrar el Sistema de Calidad de una empresa y como deben funcionar en conjunto para asegurar la calidad de los bienes y servicios que se producen esto aportado por una investigacin de la facultad de ingeniera de la universidad San Carlos de Guatemala [7]. En 1987 se dio lugar a la creacin de las primeras 5 normas internacionales de estandarizacin de la calidad a las que se les dio el nombre de ISO 9000, en el ao 1994 el ISO/TC 176 (comit tcnico) realizo la primera actualizacin de las normas pero esta fue poco relevante. Fue en el ao 2000 donde se presenta un cambio sustancial debido a que se le da un enfoque en el campo de la calidad, reduciendo a cuatro el nmero de normas para obtener mayores beneficios [8]:

ISO 9001: Modelo de aseguramiento de calidad, aplicable al diseo, desarrollo, fabricacin, instalacin, y servicio. ISO 9002: Modelo de aseguramiento de la calidad, aplicable a la fabricacin y a la instalacin.

ISO 9003: Modelo de aseguramiento de la calidad, aplicable a la inspeccin y a ensayos finales. ISO 9004: Principios y conceptos, lineamientos para la gestin de calidad y elementos del sistema de calidad.

En la figura 4 se muestra la relacin que existe entre los cuatro aspectos mas significativos que intervienen en la mejora continua de un sistema de calidad y su interaccin entre clientes, productos y requisitos.

Figura 4. Tomado de Fundamentos de la ISO 9000. IRTA Algunos beneficios que se alcanzan al instrumentar estas normas en una organizacin, son:

La posibilidad de darle calidad al producto o servicio Evitar costos de inspecciones finales, costos de garantas y de procesos Puede reducirse el nmero de auditoras de los clientes a los procesos de operacin

Mayor aceptacin por parte de los clientes y acogida en los mercados tanto nacionales como internacionales

Una de las mayores desventajas que se producen al emplear estas mtricas de calidad radica en que es muy general, y no proporciona informacin de cmo aplicarlo a empresas de menor tamao, tampoco proporciona directrices para su implementacin en varias industrias.

MODELO CMM/CMMI En noviembre de 1986 el SEI (Software Engineering Institute), a requerimiento del Gobierno Federal de los Estados Unidos de Amrica, desarroll una primera definicin de un modelo de madurez de procesos en el desarrollo de software, que se public en septiembre de 1987. Este trabajo evolucion al modelo CMM o SW-CMM (CMM for Software), cuya ltima versin (v1.1) se public en febrero de1993.

El modelo CMMI (Capability Maturity Model Integration), es un modelo que estudia las empresas productoras de software y define el nivel de madurez segn una escala de cinco niveles, sirviendo de gua en el proceso de desarrollo permitiendo la continua mejora de la organizacin y exigiendo una revisin constante a cada actividad. [7]

Figura 5. Tomada de Normas iso 9000 vs. cmmi-sw como estndar de calidad en el desarrollo del software y el proceso de obtencin de la certificacin en cada estndar

A continuacin se describen las caractersticas importantes de los niveles del modelo CMMI:

Nivel 1 o Inicial: Empresas que no tienen procesos, el desarrollo del proyecto es completamente opaco. Nivel 2 o Repetible: Se puede repetir el xito o los resultados, el proyecto es gestionado y controlado durante el desarrollo. Nivel 3 o Definido: La forma de desarrollar proyectos (Gestin e Ingeniera) est definido. Nivel 4 o Cuantitativamente gestionado: Los proyectos usan objetivos medibles para alcanzar las necesidades del cliente.

Nivel 5 u Optimizado: Los procesos de los proyectos y de la organizacin estn orientados a la mejora de las actividades.

Algunas de las falencias que tiene este modelo, es que requiere de mucho esfuerzo y compromiso de toda la organizacin, adems de una fuerte inversin econmica, un mnimo de personal, y de la documentacin de cada proceso que se vaya a implementar. De forma contraria, una empresa certificada en CMMI obtiene beneficios mayores a su inversin, puesto que garantiza la calidad en sus productos, ofreciendo con ellos un reconocimiento internacional.

PAUTAS PARA ALCANZAR LA CERTIFICACIN CMMI Segn un estudio realizado por la facultad de ingeniera de la universidad San Carlos de Guatemala, para que una empresa logre obtener la certificacin CMMI necesariamente debe cumplir con cuatro objetivos esenciales [7]: Fomentar las prcticas y tcnicas de ingeniera de software ms eficaces y eficientes Mantener a largo plazo la competitividad en el campo tecnolgico Asociar las prcticas de software con organizaciones privadas y pblicas Adoptar estndares de calidad en el desarrollo de ingeniera de software.

Tambin analiz los principales pasos que una empresa debe cumplir para alcanzar la certificacin en cualquier nivel del modelo de calidad CMMI son:

1. Identificar y analizar los procesos ms relevantes de la empresa: lo fundamental es saber qu procesos son los que dan valor monetario a la empresa y as detectar posibles reas donde se estn presentando falencias. 2. Seleccionar las reas que intervienen directamente en el proceso de certificacin: Una vez seleccionadas las reas y procesos que se quieren evaluar se visualizan los alcances que se desean obtener, lo recomendable es que se avance secuencialmente al nivel superior al que se encuentra actualmente el proceso. 3. Formar grupos de trabajo para cada rea de proceso: se deben asignar las actividades y responsabilidades de cada rea a un grupo determinado cuya funcin principal es evaluar el estado de los procesos verificando que estn acorde a las metas propuestas por la organizacin y enfocndolas hacia las mtricas del modelo de calidad. 4. Generar un informe de estado y acciones a realizar: Es necesario que en la organizacin se realice un cronograma de alcances y limitaciones de aquellas actividades implicadas en el proceso de certificacin, esto para tener un mayor control de los proyectos y las acciones sugeridas por el grupo de trabajo obteniendo al final un informe detallado con las metas alcanzadas, los improvistos y los planes de contingencia. 5. Implementar las acciones de mejora en los procesos: Verificar y poner en prctica aquellas acciones y planes de contingencia, evaluando su eficiencia ante los improvistos que se puedan presentar. Dicha valoracin debe ser realizada por un organismo externo quien se encarga de auditar y corroborar el estado de los procesos, emitiendo un informe final con las fortalezas, debilidades y recomendaciones para la empresa

6. Planear estrategias para suplir las debilidades encontradas: La organizacin debe tener en cuenta las recomendaciones dadas por el organismo externo, realizando un plan estratgico que enfatice en los plazos, costos y recursos (equipo de trabajo, maquinaria y recursos financieros) que involucra cada proceso.

Cabe aadir que para obtener la certificacin en este modelo de calidad, se requiere de esfuerzo, dedicacin y compromiso de toda la organizacin, debido a que el proceso puede tardar de 1 a 3 aos.

PORQUE USAR CMMI COMO MODELO DE CALIDAD La medicin del software est adquiriendo una gran importancia debido a que cada vez se hace ms importante la necesidad de obtener datos objetivos que permitan evaluar, predecir y mejorar la calidad del software as como el tiempo y coste de desarrollo del mismo. Segn lo aportado por la investigacin de lus Miguel Quintales y su grupo de trabajo [9], el valor de las mediciones aumenta cuando se realiza sobre modelos construidos en las primeras fases del proyecto ya que los resultados obtenidos permiten tenerlo bajo control en todo momento y corregir a tiempo posibles desviaciones.

Una de los modelos ms relevantes para realizar estas mediciones, y obtener el control en el proceso de un proyecto de software, es CMMI, este modelo ofrece una definicin del grado de madurez en las gestiones de ingeniera de software de una empresa, adems de la verificacin detallada de la evolucin que va alcanzando el producto de software. CMMI tiene 5 niveles que se organizan de acuerdo a las prioridades de la empresa y de las oportunidades de mejora para obtener mayor grado de certificacin.

Este modelo es muy exigente, requiere compromiso de todos los miembros de la compaa y no deja valor aadido a corto plazo, pero con el tiempo el beneficio que trae a las empresas es muy bueno ayudndola a recorrer el camino de la optimizacin segn lo dicho en el artculo introduccin a la calidad de Software [10], adquiriendo un alto nivel de competitividad, eficiencia, diferenciacin y un mayor control sobre los proyectos por lo que es posible ofrecer productos de mejor calidad, adems se determina el nivel de madurez en la produccin de software en el que se encuentra la compaa siendo el nivel 5 el ms importante y codiciado.

Referencias [1] Garca Romero, C. El modelo de Capacidad de madurez y su aplicacin en

empresas Mexicanas de software 6.

[2] Mendoza Luis, Prez Mara y Grimn, Anna (2004). Prototipo de modelo sistmico de calidad (MOSCA) del software. Computacin y sistemas Universidad Simn bolvar Venezuela, 8, 196-217.

[3] Reinoso Espinosa, J. A., Coba Martnez, C.Rafael, Vivanco Andrade, J.Andrs y Macias, M. Veronica (2008). Anlisis de los modelos de calidad de software existentes y su apoyo al cumplimiento de requerimientos en empresas no dedicadas al desarrollo de software. [Artculo Investigacin Cientfica]. Estudio para la facultad de Ingeniera en Electricidad y Computacin, Escuela Superior Politcnica del Litoral 7.

[4] Bertone, R., Pasini, A., Ramn H, Esponda S y Pesado P. (2007). Certificacin de Calidad en la Industria del Software. Un modelo para PYMES. [Artculo de Opinin]. LIDI- Facultad de Informtica- UNLP, 6.

[5] Fillottrani, P. R. (2007). Calidad en el desarrollo de Software, molelos de calidad de software Ciencias e Ingeniera de la Computacin Universidad Nacional del Sur 19.

[6] Mendoza, L., Prez, Mara y Grimn, Anna. Algoritmo para la Evaluacin de la Calidad Sistmica del Software. Laboratorio de Investigacin en Sistemas de

Informacin (LISI) Departamento de Procesos y Sistemas, Universidad Simn Bolvar Caracas - Venezuela. 1-11.

[7] Xitumul Ruiz, Delmi Maril(2007), Normas ISO 9000 vs. CMMI-SW como estndar de calidad en el desarrollo del software y el proceso de obtencin de la certificacin en cada estndar. Facultad de ingeniera Universidad San Carlos de Guatemala

[8] Historia de ISO 9000, Calidad Total, http://201.159.130.166/calidadtotal/ images/stories/artiso2.pdf

[9] Moreno, N. M., Quintales, L.Miguel, Garca, J.Francisco y Martn Polo, M.Jos. Obtencin y Validacin de modelos de estimacin de software mediante tcnicas de minera de datos. Revista colombiana de Computacin 3, 53-71.

[10] Lpez Echeverry, A. M., Cabrera Cesar y Valencia, L.Estella (2008). Introduccin a la Calidad del Software. [Artculo de Investigacin cientfica. Scientia et Technica, Ao XIV. Universidad Tecnolgica de Pereira, 39, 326331

[12] Chamorro Gmez, A. CMMI: Un modelo incuestionable para el desarrollo con calidad en las empresas de servicios [Artculo de Investigacin Cientfica]. Experiencias. Grupo Gesfor, 4.

Chvez Rojas, A. D. (2009). Calidad del software. "El camino al xito".

Cova, ., Arrieta, Xiomara y Riveros, victor. (2008). Anlisis y comparacin de diversos modelos de la evaluacin de software educativo Revista Venezolana de Informacin, Tecnologa y conocimiento 3, 45-67.

Delgado, M. (2006). Calidad en el Software(II). Entorno - Empresarial.com.

Forradellas, P., Pantaleo Guillermo y Roger Juan. Como garantizar el xito del proceso de mejoras en las organizaciones, superando los conflictos y tensiones generados por su implementacin It-Mentor. Capacitacin y gua para el modelo de software 21.

Tarrani, M. (2004). Real Process Improvement Using the CMMI (Hardcover). Amazon.com.

Ventura Miranda, T. y. P. B., Marcela. (2006). MoProSoft: modelo de procesos de software hecho en Mxico. Enterate en lnea. Computo Acadmico UNAM, 47.