INTRODUCCIÓN A LA CALIDAD DE SOFTWARE - Dialnet

Transcription

Scientia et Technica Año XIV, No 39, Septiembre de 2008. Universidad Tecnológica de Pereira. ISSN 0122-1701326INTRODUCCIÓN A LA CALIDAD DE SOFTWAREIntroduction to software qualityRESUMENLa creciente preocupación por la calidad en la industria del software tiene comoobjetivo principal el desarrollo sistemático de productos y servicios de mejorcalidad y el cumplimiento de las necesidades y expectativas de los clientes. En elpresente artículo se hace una introducción a la calidad y al modelo de calidadadoptado por Colciencias, CMMI. Pretendemos unir esfuerzos con esta iniciativay motivar a la comunidad académica a trabajar en calidad con las empresasdesarrolladoras de software para mejorar la competitividad y la calidad global deesta industria.PALABRAS CLAVES: Calidad, calidad de software, industria de software,CMMI, niveles CMMI.ABSTRACTThe growing concern for quality in the software industry have as its mainobjective the systematic development of products and services of better qualityand fulfilling the needs and expectations from customers. This article providesan introduction to quality and the quality model adopted by Colciencias, CMMI.We seek to join forces with this initiative and motivate the academic communityto work out quality in software development companies to improvecompetitiveness and overall quality of this industry.ANAMARIALÓPEZECHEVERRYIngeniera Electricista.Profesora Asistente,Universidad Tecnológica de Pereira.anamayi@utp.edu.coCESAR CABRERAIngenierodeSistemasyComputación.Profesor Auxiliar,Universidad Tecnológica de iera IndustrialCandidata a M. Sc. en Investigaciónde Operaciones y Estadística.Profesora Asistente,Universidad Tecnológica de Pereira.levayala@utp.edu.coKEYWORDS: Quality, software quality, software industry, CMMI, CMMIlevels.inherentes a algo, que permiten juzgar su valor”.Esta definición esta orientada al mercado1.1. INTRODUCCIÓNEn un mundo globalizado, en donde las organizaciones seven enfrentadas a competencia de nivel mundial, lacalidad se convierte en un importante puntodiferenciador, además de aumentar la satisfacción generaldel cliente, disminuir costos y optimizar los recursos. Losproductos o servicios que ostentan certificados de calidadson preferidos por los compradores porque trasmitenseguridad y confianza. Esto también constituye un unatributo de valor para las estrategias de comercializaciónen el exterior.Si bien la industria del software es nueva, ha tenido quemadurar rápidamente, tal como lo exigen los avancestecnológicos y su alta participación al interior de lasempresas. Esta industria comparte con las demásindustrias el interés por la calidad y la competitividad. La International Standards Organization, ISO enla norma 8402:1994, la define como la “Totalidadde propiedades y características de un producto,proceso o servicio que le confiere su aptitud parasatisfacer unas necesidades expresadas oimplícitas.” En la actualización de la Norma ISO, la9000:2000, la definición quedó “Grado en el que unconjunto de características inherentes cumple con losrequisitos”. En esta definición se hace especialénfasis en cumplir los requerimientos de losconsumidores2.En las definiciones siguientes, el concepto se extiendepara abarcar las características que influyen en la calidadhacia el interior de las empresas o hacia el consumidor.2. DEFINICIÓN DE LA CALIDAD1Pero, para empezar, ¿Qué es la calidad? A continuaciónpresentamos algunas definiciones: La Real Academia Española, define la calidad,como: “Propiedad o conjunto de propiedadesFecha de Recepción: 5 de Junio de 2008.Fecha de Aceptación: 27 de Julio de 2008.Real academia de la Lengua; búsqueda por calidad enhttp://buscon.rae.es/draeI/html/cabecera.htm, visitada en Mayo de 20082Sistemas de gestión de calidad – Conceptos y vocabulario(Traducción certificada), ISO 9000:2000, ISO 2000.

Scientia et Technica Año XIV, No 39, Septiembre de 2008. Universidad Tecnológica de Pereira.327Para Deming la calidad esta más relacionada con losprocesos internos de la empresas, orientada hacia laproducción y para Juran con las necesidades y exigenciasde los consumidores. Edwards Deming, la comenta en su libro "Out of theCrisis", publicado en 1982: “El control de calidadno significa alcanzar la perfección. Significaconseguir una eficiente producción con la calidadque espera obtener en el mercado.” 3 Joseph Juran. En 1986, escribió La trilogía deJuran, esta trilogía es Planificación de la Calidad,Control de Calidad y Mejora de la Calidad. Seamplía el enfoque de la calidad más allá delproducto y la satisfacción del cliente hacia lo quesignifica calidad en los procesos y el papel de lamejora de procesos en la calidad final de laproducción en general: producto, satisfacción delcliente y procesos involucrados. La Planificación dela Calidad, se definió como el "rendimiento delproducto que da como resultado la satisfacción delcliente; libertad de deficiencias en el producto, queevita la falta de satisfacción del cliente". El Controlde la Calidad se entiende “como un proceso quedebe seguir toda empresa para asegurarse que susproductos o servicios mantengan un nivel mínimo deCalidad, el cual es definido por la propia empresa,de acuerdo a las características de lo que genera, delas características de sus clientes y de los objetivosde eficiencia que se hayan planteado y que debanalcanzar con regularidad”. La Mejora de la Calidades el proceso de elevarse a niveles de rendimientosin precedente. Un programa de este tipo incluyedemostrar las necesidades de las mejoras, identificarproyectos específicos para la mejora, organizar elapoyo para los proyectos, diagnosticar las causas,dar remedios para las causas, demostrar que losremedios son efectivos bajo las condiciones deoperación y proporcionar el control para mantenerlas mejoras.4De lo anterior se observa que todas las definicionesincluyen la participación del cliente y que en el contextoactual, la calidad persigue, grosso modo, los siguientesobjetivos:999Satisfacción de los consumidores.Eficiencia en la utilización de los recursos humanosReducción en el costo de las operaciones.La calidad en las empresas ha evolucionado, si loanalizamos desde los inicios de los procesos deindustrialización a mediados del siglo XIX hasta cerca de1940, la calidad se relacionaba con la inspección en losproductos con el propósito de detectar errores, de éstafecha hasta los años 80 s el control de calidad seconvirtió en un ejercicio de control estadístico cuyopropósito era impedir que el producto defectuoso llegaraal cliente y a partir de los 80 s se inician procesos degestión de calidad total, que busca garantizar la calidadpor medio de la planificación y la creación de modelos decalidad de forma permanente. Esta evolución se ilustra enla figura 1.Figura 1. Evolución de calidad3 CALIDAD DE SOFTWAREEn la industria del software se pueden evidenciarnecesidades de satisfacción del cliente de productos oservicios de software, de reducción de recursos invertidosen proyectos de software y de la efectiva asignación derecursos humanos. Si hablamos de la calidad delsoftware, una de las primeras definiciones aseguraba que“la calidad de un programa o sistema se evaluaba deacuerdo al número de defectos por cada mil líneas decódigo. (KLOC: Kilo Lines Of Code)”. 5La definición de la calidad del software según la IEEE,Std. 610-1990, es “el grado con el que un sistema,componente o proceso cumple los requerimientosespecificados y las necesidades o expectativas del clienteo usuario”6.2.1 Evolución de la calidad35Deming, Edwards, Out of the Crisis, Cambridge University Press,1986.4Juran, Joseph, Juran’s Quality Handbook, Ed. McGraw Hill,Pressman, Roger, Ingeniería de Software 3ª Ed., McGraw Hill,1993.6Standard Glossary of Software Engineering Terminology, IEEE1998STD 610-1990, IEEE 1990

Scientia et Technica Año XIV, No 39, Septiembre de 2008. Universidad Tecnológica de Pereira.En el libro Ingeniería del Software de Pressman, 1998, seafirma que la calidad es la “Concordancia del softwareproducido con los requerimientos explícitamenteestablecidos, con los estándares de desarrollo prefijados ycon los requerimientos implícitos no establecidosformalmente, que desea el usuario”7El profesor Vidal Alonso Secades, de la Facultad deInformática de la Universidad Pontificia de Salamanca,afirma 8 que las definiciones de calidad están orientadas alas facilidades que ofrece el software una vez estéterminado, éste debe contener las siguientes capacidades: Fiabilidad: Capacidad de operar sin errores. Modificable: Capacidad de hacer los cambiosnecesarios de una forma sencilla. Comprensible: Capacidad de comprender el softwareoperativo, de cara a un cambio o arreglo. Rendimiento: Velocidad y compacidad del software. Utilizable: Capacidad de uso sencillo del software. Probable: Capacidad de construir y ejecutarfácilmente casos de prueba. Portable: Capacidad de mover el software fácilmentede un entorno de trabajo a otro.3.1 Aplicación de la calidad en softwareEn el desarrollo de software, el control de la calidad esrealizado por el mismo desarrollador, que dispone depoco tiempo, cuando lo tiene. En otros casos, está ligadoa las etapas del ciclo de vida del desarrollo del software obajo un conjunto de rígidos patrones (listas de chequeo ocheck list en inglés) cuya revisión suele consumirdemasiado tiempo.La garantía de calidad se inicia con las acciones que serealizan durante la planificación como el conjunto deprocedimientos, técnicas y herramientas durante el ciclode vida, las actividades de auditoria tales como revisionestécnicas o inspecciones, optimizando los criterios decorrectitud y completitud y las funciones de informaciónde la gestión, más orientadas a la documentación y aldesarrollo de pruebas.La calidad total depende de la calidad con la cual se llevea cabo todo el proceso - las cinco etapas del ciclo de vidade un desarrollo de software (análisis, diseño,implementación, pruebas e implantación)- y cadasubproceso o fase o etapa del proyecto, adicionalmente,es indispensable contar con los siguientes componentes:claridad, involucración, planeamiento, estándares,entrenamiento, experiencia, controles, documentación,soporte y finalización. Es importante resaltar que en elproceso de mejora continua se realizan actividadestécnicas (aplicación de la ingeniería del software),organizativas (aplicación de modelos de proceso oplanes) y humanas (formación del personal ymotivación).En la actualidad, según Secades9, la construcción desoftware presenta dificultades tales como insuficiencia enla especificación de requisitos, diseño poco profundo,mala gestión de la configuración, poca flexibilidad parala incorporación de cambios, prolongado tiempo deduración y aumento en los costos. Si bien es precisoaclarar que “la demanda de software y la complejidad delproducto en sí, parecen crecer a mayor velocidad que lasmetodologías, el personal capacitado y las herramientaspara automatizar la producción. A pesar de laincorporación de herramientas CASE (del inglésComputer Assisted Software Engineering o Ingeniería deSoftware Asistido por Computadora), la producción desoftware continúa siendo una actividad con altaparticipación de recursos humanos, cien por cienintelectual y en cierto sentido, sin insumos ni materiasprimas.”10Es por ello que se hace necesaria la adopción de unestándar de calidad, basado en la experiencia de otrasindustrias con más tiempo de madurez, aunque basado enlas características particulares del software comoproducto y como servicio. En este artículo se hacereferencia al diseñado por la Universidad CarnegieMellon (EUA) en el Instituto de Ingeniería de Software –SEI (por sus siglas en inglés Software EngineeringInstitute), llamado Capability Maturity ModelIntegration, mejor conocido como CMMI, orientado amejora de procesos en diferentes niveles de madurez dela empresa. Este modelo fue el adoptado porColciencias11, para el fortalecimiento de la CapacidadNacional en Calidad de Software, por ser el principalreferente internacional de calidad exigido por lascompañías que contratan software a nivel mundial.3.2 CMMIÉste es un modelo para la mejora de procesos queproporciona a las organizaciones los elementos esencialespara procesos de desarrollo y mantenimiento de software.Durante los 90, SEI desarrolló modelos para la mejora y97IbidPressman, Roger, Ingeniería de Software 3ª Ed., McGraw Hill,1993.8Secades, Vidal. “Gestión del Conocimiento: Modelos de10transferencia del conocimiento y Calidad en los Medios deVisitada en Abril de 2008Comunicación, Organizaciones y empresas” en Curso nivelatorio deDoctorado, Universidad Pontificia de Salamanca, España, 2007.328Calidad Total en bancopub/inf/Lib5042/cap15.htm,11Colciencias, Convenio Interadministrativo de Cooperación No. 055-2005 SENA – No. 030-2005, Colciencias, Agosto de 2005.

Scientia et Technica Año XIV, No 39, Septiembre de 2008. Universidad Tecnológica de Pereira.329medición de la madurez (CMM o Capability MaturityModel) específicos para varias áreas: CMM-SW: CMM for softwareP-CMM: People CMM.SA-CMM: Software Acquisition CMM.SSE-CMM: Security Systems Engineering CMM.T-CMM: Trusted CMMSE-CMM: Systems Engineering CMM.IPD-CMM: Integrated Product Development CMM.Luego del uso y aplicación individual de éstos modelosde madurez, SEI desarrolló CMMI para facilitar ysimplificar la adopción de forma simultánea de CMMSW (CMM for Software), SE-CMM(SystemsEngineering Capability Maturity Model) e IPDCMM(Integrated Product Development)12 y de ahí lapalabra Integración en la sigla. Antes de CMMI elmodelo más común era CMM-SW y se puede ver CMMIcomo la evolución de éste ionado cuantitativamente.Optimizando o en Optimización Continua.Inicial o Nivel 1 CMMI. En los procesos de unaempresa en éste nivel, la transición desde las entradashasta las salidas está mal definida y descontrolada,provocando que proyectos similares puedan tener unagran variación en cuanto a su productividad y en sucalidad debido a la ausencia de una estructura y controladecuados. Las empresas en este nivel deben comenzarpor definir y recoger datos, estableciendo una serie demedidas de líneas base. El objetivo principal esproporcionar un punto de partida para medir, a través decomparación, las mejoras según se incremente lamadurezGestionado o Nivel 2 CMMI. En este nivel lacaracterística de los procesos es ser intuitivos,coexistiendo unos costos y calidad altamente variables,junto con un razonable control de la planificación y conunos métodos o procedimientos informales efectuados enel mismo instante. De esta forma, se identifican lasentradas y las salidas del proceso, las restricciones, comopresupuesto o calendario y los recursos utilizados paraobtener el producto final.En la definición de CMM, éste nivel de madurez sedenomina repetible. El proceso es repetible en el sentidode que las mismas entradas producen las mismas salidas,pero todavía no es posible observar cómo se generan lassalidas.Figura 2. Niveles de madurez del Modelo CMMIÉste modelo presenta una estructura de cinco niveles demadurez, en los cuales una organización puededeterminar su madurez en la producción de software enfunción de la consecución de los objetivos establecidosen cada nivel.Según el nivel de madurez en que se encuentre laempresa, las medidas se enfocarán más al grupo deobjetivos del nivel correspondiente, para que mejore lacapacidad de producir software y pueda avanzar hacia elsiguiente nivel.Los niveles de madurez de una organización en CMMIson:12CMMI Transition plan.html, visitada enMayo de 2008Definido o Nivel 3 CMMI. Éste pasa a ser un nivelcualitativo, donde se comienza a gestionar correctamentetanto los costos como la planificación dentro de unoslímites razonables. Ahora sí se conoce la forma deconstrucción del sistema, ya que se conocen lasactividades intermedias y cuáles son las entradas ysalidas para las mismas. Por tanto, es posible examinar ymedir estas actividades, dado que los productosintermedios están bien definidos.Esta definición afecta tanto a los procesos deadministración como a los de ingeniería, que estándocumentados de una forma estándar dentro del procesode software de la organización. De esta forma, todos losproyectos utilizan en el desarrollo y mantenimiento delsoftware una versión del proceso documentada.Gestionado cuantitativamente o Nivel 4 CMMI. Adiferencia del nivel anterior, este cuarto nivel pasa a serun nivel cuantitativo. Ahora se tienen medidas detalladasdel proceso del software y de la calidad del producto,

Scientia et Technica Año XIV, No 39, Septiembre de 2008. Universidad Tecnológica de Pereira.habilitando la presencia de un cierto control estadísticosobre la calidad del producto.Una vez definido el proceso, se le añade la gestión delmismo.Optimizado o Nivel 5 CMMI. En este último nivel deoptimización continua, las bases cuantitativas se utilizanpara una inversión continua de capital en el proceso deautomatización y mejora de manera que la organizaciónalcanza el nivel superior de la madurez de procesos.Las medidas en este nivel, se utilizan para mejorar elproceso, quitando o añadiendo actividades e inclusocambiando su estructura en función de las medidasobtenidas. Resumiendo se trata de aportar nuevosaspectos, ideas y tecnologías que permitan mejorar elproceso del software.En el objetivo de determinar la madurez de unaorganización en los niveles mencionados, se considera lacalificación de la capacidad de los procesos en nivelescon nombres y características muy similares al nivel demadurez de la organización (Incompleto, Ejecutado,Gestionado, Definido, Gestionado Cuantitativamente yOptimizado), adicionando un nivel de capacidadincompleto o nivel 0, en el que un proceso no consiguesusobjetivosonosetermina.13330de los estándares y de los modelos y propuestas que sehan venido desarrollando en el mundo, Colombia haadoptado el modelo CMMI que hemos ilustrado en ésteartículo.El desarrollo de estándares y modelos de calidad en elmundo ya lleva varios años de desarrollo y lo quenosotros vemos en Colombia es la necesidad imperiosade que la academia incluya el análisis de la calidad en susprogramas y permita que los estudiantes valoren ypractiquen los procesos de implementación de modelosde calidad en su formación. La adopción de un modelo decalidad por parte del Estado colombiano es un importanteindicador de que ésta nueva habilidad ya no es opcionalsino obligatoria.CMMI es un modelo de calidad basado en procesos, queayuda a recorrer el camino hacia la optimización de losmismos y se desarrolla en un contexto internacional quepermite a las empresas nacionales adquirir un importantefactor de competitividad, eficiencia y diferenciación. Loanterior, de vital importancia cuando se tiene el interésparticular de exportar productos o servicios.5. BIBLIOGRAFÍA[1] Real academia de la Lengua; búsqueda por htm,visitada en Mayo de 2008[2] Sistemas de gestión de calidad – Conceptos yvocabulario (Traducción certificada), ISO 9000:2000,ISO 2000.[3] Deming, Edwards, Out of the Crisis, CambridgeUniversity Press, 1986.[4] Juran, Joseph, Juran’s Quality Handbook, Ed.McGraw Hill, 1998Figura 3. Niveles de Capacidad del modelo CMMI4. CONCLUSIONESLo que hemos visto en éste artículo son unas basessimplificadas del concepto de calidad y cómo se aplica alSoftware. De ello nos viene a la cabeza la idea deevolución de la necesidad de diferenciación de lasindustrias y cómo ésta necesidad lleva al desarrollo deestándares de calidad a través de los años. El estadioactual de la industria del software requiere la aplicación13Sinopsis de de los modelos CMM y 0/ visitado en Mayo de2008[5] Pressman, Roger, Ingeniería de Software 3ª Ed.,McGraw Hill, 1993.[6] Standard Glossary of Software EngineeringTerminology, IEEE STD 610-1990, IEEE 1990.[7] Secades, Vidal. “Gestión del Conocimiento:Modelos de transferencia del conocimiento y Calidaden los Medios de Comunicación, Organizaciones yempresas” en Curso nivelatorio de Doctorado,Universidad Pontificia de Salamanca, España, tm, Visitada en Abril de 2008

331Scientia et Technica Año XIV, No 39, Septiembre de 2008. Universidad Tecnológica de Pereira.[9] Colciencias, Convenio Interadministrativo deCooperación No. 055-2005 SENA – No. 030-2005,Colciencias, Agosto de /cmmi/background/transplan.html, visitada en Mayo de 2008[11] Sinopsis de de los modelos CMM y 0/visitado en Mayo de 2008[12] CMMI. Calidad. Ingeniería del cmmcmmi.php, visitada en Mayo de 2008

Utilizable: Capacidad de uso sencillo del software. Probable: Capacidad de construir y ejecutar fácilmente casos de prueba. Portable: Capacidad de mover el software fácilmente de un entorno de trabajo a otro. 3.1 Aplicación de la calidad en software En el desarrollo de software, el control de la calidad es realizado por el mismo .