You are on page 1of 6

La calidad como atributo esencial del software y las organizaciones.

Hctor Leonardo Arias Garca, John Smith Gmez, Jimy Leonardo Snchez Perilla. Corporacin Universitaria Minuto de Dios. Bogot, Colombia.
hariasga@uniminuto.edu.co jgomeztr@uniminuto.edu.co jsanch83@uniminuto.edu.co

Resumen: La calidad en el software es un atributo adicional que permite verificar en qu nivel el software cumple con los requerimientos funcionales y no funcionales inicialmente. Existen diferentes mtricas, estndares, modelos y metodologas que ayudan a construir la calidad en el producto de software. Los sistemas de informacin se deben apoyar en las IT para buscar una precisin mayor en todos los procesos involucrados en la bsqueda de la calidad. En el presente documento se busca resaltar la importancia de construir la calidad en el software, as entonces se har referencia a la importancia de aplicar un plan de aseguramiento de la calidad que permita ordenar y parametrizar todo el proceso SQA, tambin la importancia durante la etapa de definir roles y grupos de trabajos que realicen tareas especificas que enriquezcan el desarrollo del software y den el plus adicional necesario para que el cliente sienta satisfecha la necesidad por la cual se cre el sistema.

a plan for quality assurance and configuration allowing all sort SQA process, the importance during the stage to define roles and workgroups that perform specific tasks that enrich software development and give the necessary additional plus for the customer feel satisfied the need for which the system was created. Key Words: quality, software, information systems, metrics, methodologies, requirements, standards, parameters. I. INTRODUCCIN

Palabras claves: calidad, software, sistemas de informacin, mtricas, metodologas, requerimientos, estndares, parmetros. Abstract: The quality of software is an additional attribute that allows you to verify at what level the software meets the functional and nonfunctional requirements initially. There are various metrics, standards, models and methodologies that help build the quality of software product. Information systems should be supported in the IT to seek greater accuracy in all processes involved in the pursuit of quality. This paper seeks to highlight the importance of building quality software, and then will be referred to the importance of implementing

La calidad en el software no solo se limita a crear productos de alta gama, tampoco se debe limitar a buscar una certificacin por parte de las organizacin en cualquier estndar de calidad. La calidad del software va mas all, y es que no solo es una bsqueda de prestigio por parte de las organizaciones certificadas sino que debe apuntar a que todos los procesos, esfuerzos, actividades, tareas, metodologas y dems sean orientadas a presentar un producto de excelente calidad que supla las necesidades de los clientes. Es un esfuerzo complejo y que adems no se limita a un grupo determinado que interviene en el proyecto a construir. En el proceso intervienen muchas personas, desde el gerente general aportando sus valiosas experiencias como tambin el grupo de desarrollo, auditoria, el lder del proyecto y dems personas. Todos los agentes independiente del lugar en que nos ubiquemos en la jerarqua del desarrollo del proyecto informtico estamos involucrados y comprometidos para construir la calidad del

software a partir de nuestras actividades. Las bsqueda de la calidad en el software debe transcender mas all del grupo de trabajo asignado para el aseguramiento de la calidad, todos deben aportar desde sus diversas actividades a enriquecer el proceso de desarrollo de las aplicaciones, esto implica tener un conocimiento suficiente y autocrtico de cmo se estn haciendo las actividades respecto a como se deberan llevar a cabo. La calidad no es algo que se consigue de la noche a la maana, ni mucho menos un proceso que resulte de un golpe de suerte o un momento de "iluminacin". A que apunto lo anterior, pues a que las organizaciones se den cuenta que el fin justifica los medios y en el caso de la calidad pues seguir un conducto regular de cmo se debe construir la calidad, muchas veces las organizaciones en el afn de buscar una certificacin pues simplemente ocultan acciones o actividades mal hechas y en ocasiones cumplen su propsito de ser certificadas pero existirn procesos que se seguirn realizando de manera errnea y que en algn punto pueden evidenciarse generando un gran riesgo para las organizaciones.

mercado, al ser un producto intangible no se puede probar fsicamente y al ser un producto completamente artesanal derivado de un trabajo intelectual pues debe haber alguna manera de asegurar al cliente que el producto que se le entrega es de gran calidad. Hay que garantizar de alguna forma al cliente que el producto que est recibiendo cumple con las necesidades que ha manifestado en la etapa inicial del desarrollo del software. Para esto existen diferentes actividades, planes de aseguramiento de la calidad, modelos de calidad, mtricas, estndares entre otras que se deben convertir en el principal aliado para demostrar que el producto generado es lo suficientemente bueno que genere credibilidad en los clientes, crecimiento en el mercado y una mayor captacin de personas interesadas en adquirir productos de software con la empresa. III. CALIDAD DE SOFTWARE BASADA EN LOS REQUERIMIENTOS [3] Se puede decir que la calidad en el software se edifica y despus se soporta mediante los requerimientos iniciales en el software. Recordemos que los requerimientos se dan a todo nivel, que significa esto que existen requerimientos que especifican lo que debe realizar tanto el sistema como tambin su interaccin con el ambiente donde se implementara. Los requerimientos vistos desde un mbito general representan los requisitos que debe cumplir un software o sistema para suplir la necesidad del cliente que solicito dicha solucin informtica. A continuacin una pequea resea sobre la clasificacin de los requerimientos y la funcionalidad que estos tienen para la generacin de un producto de software efectivo a las necesidades. Requerimientos de sistema: Aqu se indica en un lenguaje tcnico lo que el sistema debe hacer y como lo debe hacer, debe ser comprensible por los ingenieros que hacen parte del desarrollo del sistema a todo nivel. Requerimientos de usuario: Al igual que los requerimientos de sistemas es un documento pero este tiene como caracterstica fundamental que contempla lo que debe hacer el sistema con la salvedad que lo presenta con un lenguaje sencillo y cotidiano con el cual el cliente se sienta

II. POR QUE APUNTAR A LA CALIDAD DEL SOFTWARE? Y bien alguien se preguntara porque buscar la calidad en el software cuando los esfuerzos se pueden orientar a actividades como potenciar el rea de mercadeo de ventas del software, robustez en la aplicacin para construir, reducir los tiempos de desarrollo en cada proyecto para aumentar la productividad y cumplir con la demanda creciente, entre otras actividades. Resulta que la calidad es un atributo inherente en el software y que en gran medida determina si el software construido para un cliente cumple con los propsitos que para los cuales fue creado Las empresas estn destinadas a prestar servicios u ofrecer productos para ser financieramente viables y generar ganancias para seguir funcionando en el mercado, las organizaciones desarrolladoras de software no son ajenas a esta caractersticas, es decir se debe entregar un producto de excelentes caractersticas que realmente sea funcional para el cliente. Ahora la calidad en el software no se mide como se hace con otros productos del

plenamente enterado de las actividades que se realizaran para la construccin de un software que supla sus necesidades. Pues bien en estos dos tipos de presentacin de los requerimientos de alguna manera se hace alusin al cliente como ente fundamental en la validacin y verificacin de que el software se desarrolle de manera correcta. Respecto ya al sistema existen dos tipos de requerimientos que son los siguientes: Requerimientos funcionales: Estos se centran netamente en lo que el sistema debe realizar, los procesos, tiempos y dems que debe cumplir el sistema y de los cuales solo se calculan en el mismo. Requerimiento no funcionales: Los requerimientos no funcionales ya no enfatizan en el sistema como tal sino que las condicione sobre las cuales este debe funcionar, es decir el comportamiento y rendimiento que debe tener cuando sea implementado con respecto a otros sistemas ya existentes, compatibilidad con diverso hardware y en ocasiones si la ocasin lo amerita el funcionamiento en red que debe cumplir. Existe la norma IEEE 830 que es una gua til sobre la documentacin de los requerimientos, recordemos que el mal levantamiento de requerimientos significa el fracaso en la gran mayora de ocasiones de los proyectos informticos. IV. ESTANDARES RESPECTO A MODELOS DE CALIDAD Concordancia con los requisitos funcionales explcitamente establecidos con los estndares de desarrollo explcitamente documentados y con las caractersticas implcitas que se espera de todo software desarrollado profesionalmente R.S.Presman. En la actualidad existe gran variedad de ambientes de desarrollo como mtodos del lenguaje por ello es necesario tomar modelos estndares para garantizar una adecuada recoleccin de informacin y datos que el desarrollo de software, como IT cumplan con requisitos mnimos para el tratamiento de la informacin, sin perder los principios bsicos de la informacin: Confidencialidad, Integridad y disponibilidad. Algunos de los Estndares ms conocidos:

Nivel de Calidad

Modelo de Calidad

Estndar de Calidad

Proceso

FMI Ticket Bootstrap Personal SW Process (PSP) Team SW Process (TSP) Practical SW Measurement (PSM)

ISO 90003 ISO 12207 ISO 15504 (SPICE) IEEE / EIA 12207 ISO 20000 ITIL Cobit 4.0

Tabla. 1. Modelos de calidad respecto a los estndares.

[2] Como se puede observar en la tabla no solo existen estndares de tratamiento de la calidad del software, tambin existen modelos orientados a la calidad del software. Existen diversos modelos para cumplir con el objetivo de la calidad, los modelos son una referencia muy til debido a que dividen en niveles los procesos que se deben realizar para dicho fin haciendo que la actividad sea ms entendible. [2] Cabe aclarar que existen modelos que tienden significativamente al desarrollo del software y otros que abordan aspectos de carcter administrativo y de recurso humano. Como se contempla en cualquier organizacin el xito est basado en gran parte en la interaccin correcta del recurso humano con el tcnico, tecnolgico y econmico entre otros claro est. [2] Los modelos ayudan a definir las caractersticas fundamentales de la calidad del software tales como la correctitud que significa que el software cumpla con sus procesos de forma efectiva, integridad que destaca que cada uno de los componentes o mdulos del sistema funcionen en armona entre s, portabilidad aqu se busca que el sistema no est restringido a un solo ambiente de funcionamiento por ejemplo que funcione en distintos sistemas operativos y as existen diversas caractersticas que definen si un software es de calidad o no. [4] Un fiel representante de los modelos de calidad es el modelo McCall que contempla tres niveles o situaciones donde el cliente determina la

calidad del producto como la operacin, revisin y transicin en el software. Tambin existe otro modelo llamado Boehm que es un derivado del modelo McCall que tambin ayuda a determinar el nivel de calidad respecto a la perspectiva del cliente. Caractersticas McCall Boehm Correctitud X X Integridad X X Eficiencia X X Flexibilidad X X Portabilidad X X Modificable X Entendible X Confiabilidad X X Tabla. 2. Caractersticas vs modelos de calidad. Algunos estndares representativos para construccin de la calidad del software son: la

Fig. 1. Estructura organizacional involucrada en el proceso de calidad.

CMMI: Es un estndar orientado a la calidad desde el punto de vista del desarrollo del software. CMM: ISO 15504: Determina parmetros para la evaluacin de procesos y el cumplimiento de los requisitos que debe cumplir el sistema. ISO 12207: Concentra su estructura en definir mdulos y responsabilidades, estableciendo un actor en el proceso para cada proceso. ITIL: Presta su atencin en la integracin de las TI (Tecnologa de la informacin) basndose en los componentes ms representativos del software. Los anteriores estndares solo son algunos de los diversos que existen que adems tambin son muy tiles al momento de desarrollar sistemas de informacin para las compaas donde se debe tener bajo control las actividades informticas en cada dependencia segn el propsito que deba cumplir dicho sistema. V. ENFOQUE CORPORATIVO DE LA CALIDAD En la edificacin de la calidad se debe tambin tener en cuenta la estructura organizacional de las organizaciones, dado que cada persona que interviene debe tener un rol definido con responsabilidades asignadas que enriquezcan el proceso de principio a fin.

[2] Cuando se tiene una estructura definida sobre cada uno de los actores en el desarrollo del software entonces se puede trabajar de una manera armnica en la bsqueda de entregar productos de calidad en el mercado. Cuando no se tienen roles establecidos y una sola persona debe realizar diversas responsabilidades de diferentes roles, pues esa persona se enfrentara a tal aprieto que ni siquiera podr cumplir sus responsabilidades originales. VI. METRICAS EN LA CALIDAD DE DATOS [1] Como la calidad en el software no se prueba de forma tangible como otros productos entonces se deben establecer unas mtricas que permitan medir el grado de calidad y de cumplimiento de los parmetros establecidos para dicho fin. Las mtricas como se menciono anteriormente se tratan de mediciones a todo nivel en el software para determinar cul es el grado de conformidad con los cuales se estn llevando a cabo los procesos en la bsqueda de la calidad del software. [1] A continuacin se presentan etapas necesarios con las cuales se busca una mejor compresin de las mtricas en el software. 1. Mediciones del Software Las mediciones en el software se pueden clasificar de dos maneras: * Las medidas directas: Ejemplo la longitud de un tornillo. * Medidas Indirectas: Tomando el ejemplo anterior la calidad de los tornillos, producidos, medidos contando los artculos defectuosos. Las mtricas del Software se categorizan de Forma similar. * Directas: Lneas de cdigo producidas (LDC), velocidad de ejecucin, tamao de memoria.

* Indirectas: Funcionalidad, calidad, complejidad 2. Costo y mtricas de calidad

Todas las mtricas deben definirse sin ambigedades. Las mtricas deben obtenerse basndose en una teora vlida para el dominio de la aplicacin. Siempre que sea posible, automatizar la recogida de los datos y el anlisis. Aplicar tcnicas estadsticas vlidas para establecer relaciones entre los atributos internos y las caractersticas externas de la calidad del producto. Establecer directrices de interpretacin y recomendacin.

Defecto /fallo vs. Error * Defecto y Fallo: Son sinnimos dentro del contexto del proceso del Software .Implican un problema de calidad que es descubierto una vez entregado el software al cliente. * Error: Problema de calidad detectado por los ingenieros u otros dentro del proceso del Software. 3. Indicadores proyecto / proceso Indicadores de proceso: Permiten a una organizacin de ingeniera de software tener una visin profunda de la eficacia de los procesos ya existentes. (Las mtricas del proceso se recopilan de todos los proyectos y durante un largo periodo de tiempo) Indicadores de proyecto: Permiten al gestor de proyectos de Software. Evaluar el estado de un proyecto en curso; Seguir la pista de los riesgos potenciales Detectar las reas de problema antes de que se vuelvan crticas. Ajustar el flujo y las areas de trabajo Evaluar la habilidad del equipo

7. Caractersticas de las mtricas Simples y fciles de calcular Emprica e intuitivamente persuasivas Consistentes y objetivas Independientes del lenguaje de programacin Eficaz mecanismo para realimentar la calidad

8. Etapas del proceso de medicin Formulacin: La obtencin de medidas y mtricas apropiadas para la representacin del software que se desea desarrollar Coleccin: Mecanismo empleado para acumular datos necesarios para obtener mtricas formuladas Anlisis: Clculo de las mtricas. Interpretacin: evaluacin de los resultados Realimentacin: Recomendaciones obtenidas a travs de la interpretacin de las mtricas obtenidas por el equipo de desarrollo.

4. Mtricas Simples (orientadas al tamao) Errores por KLDC (miles de lneas de cdigo). Defectos por KLDC. Pginas de documento por KLDC. Errores/personas mes LDC/persona mes

5. Mtricas Por el termino general, para la evaluacin de la calidad, es ms habitual centrase en medidas del producto que en las medidas del proceso. Una mtrica es una asignacin de un valor a un atributo (tiempo, complejidad, etc.) de una entidad de software, ya sea un producto (Cdigo) o un proceso de pruebas. 6. Principios de la medicin Los objetivos de la medicin deben establecerse antes de empezar la recogida de los datos.

VII. PLAN DE ASEGURAMIENTO DE LA CALIDAD SQA El plan de aseguramiento de la calidad SQA es un parmetro ideal para conocer cada una de las metodologas, actividades, tareas, personas y dems que se deben organizar para la consecucin de la calidad en el software. [6] Hablaremos algo respecto al plan aunque yo profundizaremos mucho dado que el objetivo es dimensionar su importancia a nivel empresarial.

El propsito es que este plan genere un producto de software con calidad suficiente para satisfacer las necesidades del cliente aadiendo a su vez cualidades adicionales que contribuyan al mejoramiento del mismo, la principal plataforma de programacin en la cual se centra el plan es la plataforma JAVA, esto debido a su gran completitud y que permite con ms facilidad llevar a cabo su documentacin mediante diagramas, informes y presentaciones permitiendo que el proceso de desarrollo del software pueda ser debidamente controlado en su proceso. Partiendo desde la premisa que la calidad no se prueba en s, si no que en el proceso de desarrollo los diferentes agentes que intervienen en ella tienen que construir la calidad. El proceso de aseguramiento de la calidad no se lleva a cabo en una fase determinada del ciclo de vida del software, por el contrario est muy compenetrado con dicho ciclo y a medida que el ciclo de vida del software va evolucionando pues tambin el proceso de aseguramiento de la calidad debe crecer a la par con el desarrollo del producto. Solo con los resultados finales del proceso se puede entrar a evaluar el plan de aseguramiento de la calidad para determinar si finalmente se cumpli con lo estipulado, este proceso se denomina supervisin. Como es sabido es de suma importancia el desarrollo de software que cumpla con unos estndares de calidad ya que permite un beneficio a todo nivel, esto quiere decir que tanto la organizacin, los procesos, el grupo desarrollador, el grupo de aseguramiento de la calidad y el cliente se ven beneficiados por este proceso en los siguientes aspectos: La organizacin gracias a la implementacin de un proceso SQA puede animarse a buscar una certificacin segn el estndar que desee manejar el cual ser de gran impulso empresarial y en el mercado, permitiendo que dicha distincin haga visible la organizacin para muchos clientes potenciales que querrn adquirir y solicitar productos de software que suplan las necesidades que ellos presentan. CONCLUSIONES La calidad en el software no se puede comprender como un costo adicional en el desarrollo del software. Esta mala interpretacin

confunde a las diferentes organizaciones ya que no se dan cuenta de la gran oportunidad que tienen de desarrollar productos de tan magna confianza que haga crecer el mercado actual de cada organizacin y as apuntar a un crecimientos empresarial reflejado en un posicionamiento mercantil ms notorio. Bien es cierta la importancia de la calidad del software reflejada en el proceso de desarrollo del producto, pero las organizaciones deben comprender que el fin no justifica los medios y es que en el afn de algunas de ellas por buscar una certificacin en la calidad del desarrollo del software ocultan errores cometidos durante el proceso de construccin de la calidad maquillndolos en su mayora para que pasen desapercibidos. Esto lo que genera es un mal endmico en las organizaciones afectando tanto al mercado, al cliente y en ultimas a las mismas empresas que tarde o temprano vern afectadas en su actividad econmica. Todos los procesos, tareas y dems deben planearse con anterioridad y disearse conforme a las exigencias previstas para obtener un resultado tan bueno que llene las expectativas del cliente y enriquezca el crecimiento econmico de la organizacin.

REFERENCIAS

[1] Mtricas en la calidad de software. http://www.noqualityinside.com/nqi/nqifiles/M%C3 %A9tricasDeCalidadDeSW.pdf [2] Libro. Calidad en el desarrollo del software. Autor Guillermo Pantaleo. [3] Libro. Ingeniera de Software. Autor Ian Sommerville. [4] Libro. Gestin, control y garanta de la calidad del software. Autora Anglica de Antonio. [5] Estndares de Calidad del Software. http://www.slideshare.net/2008PA2Info3/estndare s-calidad-del-software-cristina-ortega [6] SQA. Plan de seguimiento de la calidad. Ingeniera de Software, Ian Sommerville.