Informes Técnicos

Un enfoque actual sobre la calidad del software
Oscar M. Fernández Carrasco1, Delba García León2 y Alfa Beltrán Benavides3 1. Investigador Agregado. Centro de Desarrollo Informático. SOFTCAL, SIME. 2. Especialista en Sistemas de Computación. 3. Aspirante a Investigador.

Uno de los problemas que se afrontan actualmente en la esfera de la computación es la calidad del software. Desde la década del 70, este tema ha sido motivo de preocupación para especialistas, ingenieros, investigadores y comercializadores de softwares, los cuales han realizado gran cantidad de investigaciones al respecto con dos objetivos fundamentales:
1. ¿Cómo obtener un software con calidad? 2. ¿Cómo evaluar la calidad del software? Ambas interrogantes conllevan amplias respuestas, pero están estrechamente ligadas con el concepto de la calidad del software, que es el resultado de la primera y la fuente de la segunda.

¿QUE ES LA CALIDAD DEL SOFTWARE? La calidad del software es el conjunto de cualidades que lo caracterizan y que determinan su utilidad y existencia. La calidad es sinónimo de eficiencia, flexibilidad, corrección, confiabilidad, mantenibilidad, portabilidad, usabilidad, seguridad e integridad.

La calidad del software es medible y varía de un sistema a otro o de un programa a otro. Un software elaborado para el control de naves espaciales debe ser confiable al nivel de "cero fallas"; un software hecho para ejecutarse una sola vez no requiere el mismo nivel de calidad; mientras que un producto de software para ser explotado durante un largo período (10 años o más), necesita ser confiable, mantenible y flexible para disminuir los costos de mantenimiento y perfeccionamiento durante el tiempo de explotación. La calidad del software puede medirse después de elaborado el producto. Pero esto puede resultar muy costoso si se detectan problemas deriva dos de imperfecciones en el diseño, por lo que es imprescindible tener en cuenta tanto la obtención de la calidad como su control durante todas las etapas del ciclo de vida del software.
¿COMO OBTENER UN SOFTWARE DE CALIDAD? La obtención de un software con calidad implica la utilización de metodologías o procedimientos estándares para el análisis, diseño, programación y prueba del software que permitan uniformar la filosofía de trabajo, en aras de lograr una mayor confiabilidad, mantenibilidad y facilidad de prueba, a la vez que eleven la productividad, tanto para la labor de desarrollo como para el control de la calidad del software.

La política establecida debe estar sustentada sobre tres principios básicos: tecnológico, administrativo y ergonómico.

y de complejidad de sistema o estructura. pero no la asegura. Una vez seleccionados los índices de calidad. Para cada clase de software es necesario definir los indicadores y sus magnitudes. nuestro Centro se encuentra enfrascado en un proyecto para el Aseguramiento de la Calidad del Software (ACS). de acuerdo con los estándares establecidos para el desarrollo del software. definir los parámetros. El principio administrativo contempla las funciones de planificación y control del desarrollo del software. Para el aseguramiento de la calidad es necesario su control o evaluación. de Rusia. esfera de aplicación. La Metodología para la evaluación de la calidad de los medios de programas de la CIC. "usted no puede controlar lo que no se puede medir". Por ejemplo. cuándo se realiza. John Wiley define métricas de calidad y criterios. donde cada nivel inferior contiene los indicadores que conforman el nivel precedente. se debe establecer el proceso de control. criterio. define indicadores de calidad estructurados en cuatro niveles jerárquicos: factor. Otros autores identifican la calidad con el nivel de complejidad del software y definen dos categorías de métricas: de complejidad de programa o código. Crear o determinar los métodos de valoración de los indicadores: métodos manuales como cuestionarios o encuestas estándares para la medición de criterios periciales y herramientas automatizadas para medir los criterios de cálculo. ante todo. ¿COMO CONTROLAR LA CALIDAD DEL SOFTWARE? Para controlar la calidad del software es necesario.El principio tecnológico define las técnicas a utilizar en el proceso de desarrollo del software. los cuales las denominan y agrupan de formas diferentes. complejidad. así como la organización del ambiente o centro de ingeniería de software. indicadores o criterios de medición. donde cada métrica se obtiene a partir de combinaciones de los diferentes criterios. como bien plantea Tom De Marco. etc. métrica. elemento de evaluación. etc. el control y el perfeccionamiento de la productividad. válido para cualquier entidad . A partir del análisis de todo lo anterior. qué documentos deben ser revisados y elaborados. El principio ergonómico define la interfaz entre el usuario y el ambiente automatizado.. Seleccionar una medida que pueda ser aplicada al objeto de control. Definir las regulaciones organizativas para realizar el control: quiénes participan en el control de la calidad. La adopción de una buena política contribuye en gran medida a lograr la calidad del software. Todos los autores coinciden en que el software posee determinados índices medibles que son las bases para la calidad. que requiere los siguientes pasos: y y y y Definir el software que va a ser controlado: clasificación por tipo. ya que. Las cualidades para medir la calidad del software son definidas por innumerables autores.

Sin embargo. ya que está logrando que el consumidor no lo reemplace por otro. cuando su nivel de preferencia se afinca en una determinada marca. . de forma tal que se conforme un Sistema de Aseguramiento de la Calidad del Software. la calidad es el resultado de un esfuerzo arduo. y por los estándares del grupo ISO 9000. ya que todo dependerá del nivel de satisfacción o conformidad del cliente. Cuando esto ocurre. el cliente prefiere seguir buscando en otros establecimientos en vez de resolverse con un producto sustitutivo. producción y comercialización del software. el cual incluye la elaboración de un Sistema de Indicadores de la Calidad del Software. Muchas veces el nivel de calidad se mide de acuerdo a la reacción y preferencias del cliente. ¿Qué es la calidad? El significado de esta palabra puede adquirir múltiples interpretaciones. y por tanto se decidirá por otro producto de mayor o menor precio. se trabaja de forma eficaz para poder satisfacer el deseo del consumidor. sin embargo. Esto sólo es posible con la implantación de un Sistema para el Aseguramiento de la Calidad del Software directamente relacionado con la política establecida para su elaboración y que esté en correspondencia con la definición internacional ISO de calidad. Dependiendo de la forma en que un producto o servicio sea aceptado o rechazado por los clientes. podremos decir si éste es bueno o malo. va directo al lugar donde se encuentra el producto de su preferencia. muchas veces la calidad de éste dependerá de la atención al cliente y de las mínimas incomodidades que éste pueda darle. cuando el individuo está pagando por un servicio. La calidad aporta nivel al cliente. En ocasiones. es muy posible que la calidad de ese producto sea alta.que se dedique a la investigación. sabe exactamente qué va a comprar y dónde ubicarlo. la confección de una Metodología para el Aseguramiento de la Calidad del Software y el desarrollo de herramientas manuales y automatizadas de apoyo para la aplicación de las técnicas y procedimientos del ACS. pero no siempre el bolsillo del consumidor está preparado a invertir en ella. CONCLUSIONES Lograr el éxito en la producción de software es hacerlo con calidad y demostrar su buena calidad. Desde el mismo momento en que éste llega al establecimiento comercial. Sin embargo. no encontrará lo que está buscando. amplia mente aceptada.

la calidad depende de quien la observa. prensa y televisión. satisfacer necesidades explícitas o implícitas. El cliente será quien finalmente decidirá qué es lo que mejor le conviene. Es necesario definir el concepto con claridad. a continuación se ofrece la definición de calidad ofrecida por la organización ISO [14].1. Para trabajar sobre un esquema consistente y evitar ambigüedades. proceso o servicio que cuenta con la habilidad de satisfacer necesidades explícitas o implícitas´. Para complementar la definición. Definiciones de calidad del software ± ³Concordancia con los requisitos funcionales y de rendimiento explícitamente establecidos con los estándares de desarrollo explícitamente documentados y con las características implícitas que se espera de todo software desarrollado profesionalmente´ R. como la belleza. ± ³El conjunto de características de una entidad que le confieren su aptitud para satisfacer las necesidades expresadas y las implícitas´ ISO 8402 (UNE 66-001-92). S. siendo esta ³La totalidad de características de un producto. Otra definición bastante completa de calidad en el software es la que se presenta más adelante [35]: Se puede decir que el software tiene calidad si cumple o excede las expectativas del usuario en cuanto a: . 2. es esencial identificar dichas necesidades para el usuario o para la organización [23]. se tomará la definición de calidad en el software propuesta por la organización internacional de estándares (ISO/IEC DEC 9126): La totalidad de características de un producto de software que tienen como habilidad. y donde la calidad no puede se medida entonces no r puede ser controlada [30]. 2. y no dejarnos persuadir por una marca. Calidad del software: es el desarrollo de software basado en estándares con la funcionalidad y rendimiento total que satisfacen los requerimientos del cliente. Pressman (1992).En algunas ocasiones. simplemente porque está de moda o es la más sonada.5 Calidad de Software Definición El término puede ser ambiguo e incluso subjetivo porque. no puede ser medida. Hay que estar mosca con las campañas engañosas. Calidad en el Software Dentro del contexto de Ingeniería de Software. dado que el concepto calidad puede ser subjetiva y debido a que las necesidades explícitas o implícitas varían de organización en organización o de usuario en usuario [20]. ya que si la calidad no puede ser definida. incurrimos en el error de pensar que un producto o servicio es de calidad porque lo escuchamos o leemos a toda en hora en la radio.5.

Disponibilidad (que funcione bajo cualquier circunstancia) y 5. se puede decir que la calidad de software ha sido usada desde un simple argumento de venta. Mantenibilidad: el software debe ser diseñado de tal manera. Dentro de ésta. Apoyo. 2. Confiabilidad (que haga lo que debe). que permita ajustarlo a los cambios en los requerimientos del cliente. 4. etc. 3. Extrañamente dentro de la IS. gestión de proyectos. .1. hasta verdaderos estudios formales y usos de métricas para el desarrollo de software. son solo algunos de los componentes que se aglomeran para conformar la ingeniería de software (IS) como disciplina para la creación y mantenimiento de software. a un costo menor o igual al que el usuario está dispuesto a pagar. especificación de requerimientos. por lo que en esta nota. Funcionalidad (que sirva un propósito). existe un subconjunto de teorías. Ejecución (que sea práctico). la calidad del software es muy complicada de definir y de enmarcar en un simple concepto teórico. artifacts. Confiabilidad: incluye varias características además de la confiabilidad. herramientas y métodos orientados a lo que se denomina la calidad del software. Para resumir de alguna manera la amplitud de este concepto. me concentraré solo en las diversas características que permiten describirla y en los elementos que importan específicamente al diseñador de software. Una idea general sobre un software de calidad es aquel que debiera cumplir con los requerimientos funcionales y de performance además de ser mantenible. como la seguridad. debido al inevitable cambio del contexto en el que se desempeña un software. Resumiendo podemos decir. Esta característica es crucial. confiable y aceptable. análisis y diseño. Calidad del Software Procesos de desarrollo. arquitectura. que la calidad de software se refiere a: ³Los factores de un producto de software que contribuyen a la satisfacción completa y total de las necesidades de un usuario u organización´. Veamos cada uno de las principales características que hacen a un software de calidad. control de fallos.

Algunas tienen que ver con el usuario que interactúa con el sistema. Bien. me animo a decir que no es necesario el uso de un gran esfuerzo ni dedicación de gran cantidad de recursos para lograr software de calidad. También se necesita coherencia desde el principio de cada proyecto. ¿qué se necesita entonces? y Como ya lo expresara en un post previo. diferentes procesos de desarrollo. Esta búsqueda para poder controlar y medir la calidad del software. ¿Cuál?. Como puede observarse. toda empresa o equipo de desarrollo de software debe adoptar un proceso de desarrollo. otras características parecen muy abstractas y hasta indefinidas. las diversas características con las que se desea que cumpla un software de calidad varían ampliamente. En ese momento deben definirse. Hay una gran variedad de procesos de donde tomar los elementos más convenientes para alinear los desarrollos con algunas características de la calidad del software vistas previamente. y Es muy importante también. Usabilidad: el software debiera ser utilizado sin un gran esfuerzo por los usuarios para los que fue diseñado. estimarlas e implementarlas. otras con el líder de proyecto y diseñadores. la IS ha desarrollado desde los primeros días de su existencia. etc. con el fin de poder medirlas. técnicas y herramientas de la IS. Las empresas y equipos de desarrollo deben saber que con la adopción de solo algunas prácticas de la IS. ya es suficiente para estar en el buen camino. disponer de personas preparadas técnicamente y liderados por al menos un profesional con experiencia. como mínimo EL QUE LE CONVENGA. etc. Como resultado de mi experiencia personal y lo extraído de otras lecturas. es tal vez una de las principales causas que han inspirado el estudio y definición de un sinnúmero de metodologías. Para ordenar este aparente caos de indefiniciones y características abstractas. y . cuantificarse y/o especificarse las características de calidad a cumplirse en ese producto. y También se requieren las herramientas necesarias que ayuden al equipo para llevar adelante todas las tareas necesarias en relación a alcanzar los objetivos de calidad planteados.Eficiencia: tiene que ver con el uso eficiente de los recursos que necesita un sistema para su funcionamiento. que formen un equipo con la capacidad de adaptarse y mejorar continuamente. documentado.

si las empresas siguieran estos lineamientos mínimos para cuando llegue ese momento. puedan ser satisfechas completamente. En japonés se le llama ten kai lo cuál significa ³despliegue´. La función de despliegue de la calidad tiene como objetivo asegurar que se cumplan las expectativas del cliente desde el diseño del producto. prepararlos y coordinarlos adecuadamente. ayudando a que la voz del cliente se despliegue a través de toda la organización. tomar por el camino del desarrollo de software de calidad no significa disponer de grandes inversiones. y hasta que es utilizado por el consumidor. Llegado el momento de escalar. Este proceso de traducción no es sencillo y requiere de la integración de conocimientos de mercadotecnia con ingeniería y administración. sino de alinear los recursos disponibles. Algunos de varios standares para software provienen de ISO 9000 quien rige la calidad mundial. será mucho mejor y más simple. esto como política de calidad. La calidad del software la define o avala una Gestión de la calidad del software por ejemplo: ISO 9000. el control de la calidad.Modelos de calidad. ISO/IEC 9126±1: Ingeniería de Software . estos deben ser traducidas en términos cuantitativos y tangibles. ¿Quien define la calidad? Los estándares o metodologías definen un conjunto de criterios de desarrollo que guían la forma en que se aplica la ingeniería del software. refiriéndose a la idea de llevar las necesidades y expectativas del cliente expresados en su lenguaje (voz del cliente) a todos los involucrados en la organización. los objetivos. el cual sirve para realizar todo este proceso de traducción. se entiende como un conjunto de actividades de la función general de la dirección que determina la calidad. o sencillamente buscar ser una empresa que logre desarrollar productos de calidad. Conocidos los deseos y necesidades de los consumidores. durante su proceso de manufactura. . o desear el logro de alguna certificación para ampliar mercados.Como puede observarse. e ir en cada etapa ³traduciéndolas´ al lenguaje apropiado.Calidad de producto. Entre la técnica más importante para tales fines tenemos el Despliegue de la Función de Calidad (QFD). para que las necesidades del consumidor y las expectativas que desarrolló durante el proceso de selección del producto.

Calidad de producto.Calidad de producto.Control del cursor en edición de textos. Especificaciones: ISO/IEC 10741±1: Interacción de Diálogo . Especificaciones: ISO/IEC 18021: Interfaz de usuario para dispositivos móviles. interfaz e interacción ISO/IEC TR 9126±2: Ingeniería de software. documentación ISO/IEC 18019: Guías para el diseño y preparación de documentación de software de usuario. Interacción IEC TR 61997: Guías de interfaz de usuario en equipos multimedia de uso general. Especificaciones: ISO 20282: Usabilidad en productos de cada día. símbolos y funciones.Métricas internas. ISO 14915: Ergonomía de software para interfaz multimedia.Calidad de producto. ISO/IEC TR 9126±3: Ingeniería de software.Calidad en métricas de uso. ISO 11064: Diseño ergonómico para centros de control. Especificaciones: ISO/IEC 14754: Interfaz de escritura manual. .Métricas externas.ISO/IEC TR 9126±4: Ingeniería de software . ISO 18789: Requisitos ergonómicos y sistemas métricos para pantallas. ISO 9241±11: Guías en Usabilidad. Especificaciones: ISO 13406: Requisitos ergonómicos de trabajo de paneles planos. Especificaciones: ISO/IEC 11581: Iconos. Especificaciones: ISO 9241: Requisitos ergonómicos para trabajo en oficinas y terminales de trabajo. ISO 9241: Requisitos ergonómicos para oficinas con terminales visuales.

generará propuestas de métodos y herramientas automáticas para la aplicación de pruebas de software. ISO DTS 16071: Guía de accesibilidad en interfaz de usuario. métricas de calidad y refactoring (re-codificación de aplicaciones para facilitar su entendimiento y garantizar la mantenibilidad). Es por esto que debe indagarse sobre los métodos y .Especificaciones: ISO/IEC 15910: Documentación de procesos de software. El grupo responsable de ejecutar proyectos en la línea de calidad de software. reingeniería de software. con el fin de proponer soluciones para aplicar procesos que mejoren la calidad de software. Justificación La calidad de un producto de software es el indicador que permite determinar si los procesos de construcción de software fueron apropiados. Calidad de software Descripción Uno de los principales problemas que actualmente se presenta en la industria del software es la ausencia de calidad en los productos. Especificaciones: ISO/IEC 14598: Evaluación de software. ISO 10075±1: Principios ergonómicos de carga mental. ISO 9241±2: Guía en requisitos de acciones. por lo tanto esta línea de investigación se ocupará de investigar acerca de las propuestas existentes que dan solución a dichos problemas. términos y definiciones. de usuario proceso de desarrollo ISO 13407: Diseño de procesos interactivos. capacidad de la empresa ISO TR 18529: Procesos descriptivos de vida de producto (lifecycle) otros ISO ISO 9241±1: Introducción general. ISO TR 16982: Métodos de soporte de diseños centrados en usuarios.

métodos y automatización de software ya que harán aportes significativos en los atributos de calidad exigidos por los estándares internacionales de aseguramiento de calidad de software. tesis de maestría o como tesis de doctorado. que incluyan procesos relacionados con pruebas. en procesos de pruebas. monografías de especialización. pruebas y reingeniería de software. Objetivos y y y y y Estudiar continuamente los resultados de la investigación de punta. técnicas y herramientas para apoyar procesos de evolución. reingeniería de software y refactoring. Para esta línea de investigación. Los resultados de los proyectos enmarcados en esta línea. métricas de calidad. En Colombia existen grupos de investigación dedicados a la calidad del software en La Universidad de los Andes y en la Universidad Javeriana. entre las principales organizaciones están el instituto de Ingeniería de Software SEI y el Grupo de Gestión de Objetos OMG. sin embargo existen organizaciones académicas y científicas que supervisan y promueven los estudios en esta área. Desarrollar nuevos métodos. pero son escasas y poco asequibles. complementarán los proyectos adelantados por la línea de procesos. El grupo de investigación responsable de esta línea generará propuestas orientadas a construir software de calidad. establecer los sub-proyectos y actividades que pueden ser desarrollados como trabajos de grado. métricas de calidad y reingeniería de software. Proyectos Activos y Definición de un método de Integrado de pruebas e Inspecciones de Sofware (en evaluación) . Estado del Arte La calidad del software es objeto de estudio por parte de diversos grupos de investigación nacionales e internacionales. entre otros. Construir herramientas automáticas para la aplicación de pruebas y reingeniería de software Proponer y desarrollar proyectos compatibles con esta línea de investigación y diseñar la estrategia para su desarrollo. En la actualidad existen técnicas que se han generalizado para todo tipo de software. con miras a gen erar propuestas concretas para aplicaciones con características específicas.técnicas que garantizan calidad en los productos. Ellos alimentarán los proyectos y servirán para confirmar o rechazar hipótesis.

para vislumbrar la punta de un iceberg: la falta de un control riguroso y sistemático de la calidad del software de gestión. Comenzó con ello la instauración paulatina de la división del trabajo.E. Finalmente el control de calidad moderno o control de calidad estadístico comenzó en los años 30 del siglo XX con la aplicación industrial del cuadro de control ideado por el Dr. telefonía. automóviles. así como el gasto que ha conllevado la revisión y modificación de los programas. Continuando en este proceso cronológico destaca el hecho de que pasados unos años del final de la II Guerra Mundial los japoneses comienzan a hacer verdadero énfasis en la calidad. Basta con observar la frenética actividad que ha supuesto para la industria. se crean grandes organizaciones y los antiguos artesanos se transforman en los trabajadores de las empresas.) conlleva cada vez más la presencia de programas informáticos que gobiernan muchas de sus prestaciones. A. A lo largo de toda la historia la búsqueda y el afán de perfección por parte del hombre ha sido constante. etc. cuyo objeto fue la preparación de normas para que los trabajadores las cumpliesen.) y sus productos finales (aviación. lo que suponía que los operarios interviniesen solamente en algunas operaciones del proceso productivo. Este hecho provocó la necesidad de que surgiese la figura de los empleados dedicados a tareas de inspección. La importancia de captar la dispersión en las estadísticas. En 1950 la Unión de Científicos e Ingenieros Japoneses realizó un seminario cuyo conferenciante. verificar y actuar. de Bell Laboratories. que el interés por el trabajo bien hecho y la necesidad de asumir responsabilidades sobre la labor efectuada poco a poco derivó en el concepto de calidad. hacer. Algunos antecedentes al concepto de c alidad. W. l as empresas de servicios y la Administración el enfrentarse al tan temido "efecto 2000". Shewhart. o bien como herramientas que el cliente empleará en su propio beneficio. Control de procesos mediante el empleo de cuadros de control y su aplicación. el Dr. electrodomésticos. Con la revolución industrial comienza a desaparecer el artesanado.INTRODUCCIÓN La mayor importancia de las nuevas tecnologías de la información y su creciente presencia en los diversos ámbitos de la industria moderna (robots. etc. En esta época Taylor elaboró su teoría acerca de la "gestión científica del trabajo". aunque se prestaba más atención a la forma de realizar el trabajo (los procesos) que a la calidad de los produc tos. En el presente trabajo se aborda este tema que ayudaría a proveedores y clientes desde el comienzo del diseño de una aplicación específica de software para su negocio o actividad. . W. centros de control. Deming. que fue el inventor de los conocid os gráficos de control. de tal forma. desarrolló los siguientes temas: Cómo mejorar la calidad mediante el ciclo de planear.

directivos. del mantenimiento y de la superación de la calidad de un producto. empleados. las metas que se establezcan para la calidad del producto van a determinar los objetivos a establecer de calidad del proceso de desarrollo. ya que el sof tware tiene sus propias características específicas: . A la hora de definir la calidad del software se debe diferenciar entre la calidad del producto software y la calidad del proceso de desarrollo de éste (calidad de diseño y fabricación). Deming y Juran] "La mejor calidad que una empresa puede producir con su tecnología de producción y capacidades de proceso actuales. Sin un buen proceso de desarrollo es casi imposible obtener un buen producto. pro ducir (calidad de fabricación) y vender (calidad que desea el cliente). con el fin de hacer posi ble la fabricación y servicio a satisfacción completa del consumidor y al nivel más económico" [Feigenbaun. Una vez revisados los antecedentes del concepto calidad para concretar su significado se van a reproducir tres definiciones de calidad emanada s de personas y entidades de reconocido prestigio: y "Conjunto de esfuerzos efectivos de los diferentes grupos de una organización para la integración del desarrollo. Calidad: definiciones.La visita de Juran marcó una transición en las actividades de control de calidad y creó un ambiente en que se reconoció el Control de Calidad como un instrumento de gerencia abriendose las puertas para el establecimiento del control total de calidad tal como se concibe hoy. en función de factores tales como el coste y el uso previsto" [Dr. Pero la calidad del producto software se diferencia de la calidad de otros productos de fabricación industrial. Este proceso constituye el objeto del presente trabajo. satisfacer y superar constantemente las expectativas y necesidades de todos los colectivos humanos relacionados con ella. Calidad del software. ya que la calidad del primero va a depender. aceptar. Kaoru Ishikawa] " La gestión de calidad en la empresa es el proceso de identificar. clientes. y que satisfará las necesidades de los clientes. proveedores y la comunidad con respecto a los productos y servicios que esta proporciona" [consultora Arthur Andersen] y y De todas estas definiciones se extraen una serie de parámetros básicos que definen la calidad: si se desea producir productos y servicios de buena calidad para el consumidor será necesario decidir por adelantado que calidad de producto (o servicio) planificar (calidad de diseño). entre otros aspectos. No obstante. propietarios. de ésta.

no se fabrica. se construye a medida. no restringido por las leyes de la Física o por los límites de los procesos de fabricación.. en su mayoría. Los costes del desarrollo de software se concentran en las tareas de Ingeniería. El coste está fundamentalmente en el proceso de diseño. pero los efectos de estos cambios se pueden pr opagar de forma explosiva e incontrolada. No basta con verificar la calidad d el producto una vez finalizado cuando los problemas de mala calidad ya no tienen solución o su reparación es muy costosa. no en la producción. por lo que las técnicas de las que dispone aún no están perfeccionadas. lo que dificulta aún más el control de su calidad. pero cada fallo en el software implica un error en el diseño o en el proceso mediante el cual se tradujo el diseño en código máquina ejecutable. No es susceptible de los efectos del entorno y su curva de fallos es muy diferente de la del hardware. mientras que en la fabricación clásica los costes se acentúan más en las tareas de producción. La problemática general a la que se enfrenta el software es: y y Aumento constante del tamaño y complejidad de los programas. Se desarrolla. y y y y y y y y También es importante destacar que la calidad de un producto software debe ser considerada en todos sus estados de evolución (especificaciones. El mantenimiento del software es mucho más complejo que el mantenimiento del hardware. Es algo abstracto. Todos los problemas que surjan d urante el mantenimiento estaban allí desde el principio y afectan a todas las copias del mismo. El software con errores no se rechaza. El software. Carácter dinámico e iterativo a lo largo de su ciclo de vida. códigos. Se asume que es inevitable que el software presente algunos errores de poca importancia. no en la posterior producción en serie. y los errores se introducen también en el diseño.). Cuando un componente del hardware se deteriora se sustituye por una pieza de repuesto. es decir que los programas de software a lo largo de su vida cambian o evolucionan . en vez de ser construido ensamblando componentes existentes y ya probados. Como disciplina. un intangible. El software no se deteriora con el tiempo. no se generan nuevos errores. el desarrollo de software es aún muy joven... diseño. Es artesanal en gran medida.y El software es un producto mental. Es engañosamente fácil realizar cambios sobre un producto software.

así como posteriores por parte de los proveedores del software. y calidad. coherentes y precisas previas por parte del cliente. y y y y y La calidad a través de la normalización en la in geniería del software y su problemática. Escasez de uso de técnicas actuales y automatizadas para la gestión de proyectos. ni cumpliendo los niveles deseables de los requisitos especificados por el usuario. Incrementos constantes de los costes de desarrollo debido entre otros. con el objeto de definir. Procesos artesanales de producción con escasez de herramientas. Se dedican elevados recursos monetarios a su mantenimiento. y Dificultad de conseguir productos tota lmente depurados. . ni con los costes estipulados. normas y convenciones sobre una determinada materia. Escasez o ausencia de entornos integrados de programación. y y y y y y Todo lo anterior puede concretarse en: y Ausencia de especificaciones completas. No suelen estar terminados en los plazos previstos. Ausencia de la aplicación sistemática de métodos. procedimientos y normas de ingeniería del software. ya que en ningún caso un programa será perfecto. Escasez de personal con formación y experiencia en los nuevos métodos. Insuficientes procedimientos normalizados para estipular y evaluar la productividad. Los clientes tienen una alta dependencia de sus proveedores por ser en muchos casos aplicaciones a "medida". debido a la dificultad que los proyectos de software entrañan y a la no normalización a la hora de realizar los proyectos. costes.de una versión a otra para mejorar las prestaciones con respecto a las anteriores. Otros derivados del grado de desarrollo técnico y organizativo de cada compañía. a unos niveles de productividad bajos. normas y uso de entornos y utilidades de programación. La normalización consiste en un proceso donde se elaboran guías.

. bajo enfoques distintos y destinadas a ámbitos de actuación diferentes. proveyendo de guías que indican a nivel de detalle el contenido de dichos documentos y recomendaciones de las actividades que hay que realizar durante todo el proceso de producción del software. las normas de IS son la solución a una de las mayores necesidades de la industria del software actual: la comunicación mas adecuada y precisa entre sus profesionales. En relación a las normas los profesionales se encuentran con un problema fundamental: la dispersión de las normas relativas a1 softwar e que. La Ingeniería del Software (IS) se ha ido desarrollando en los últimos 15 años. en todo caso. desde la definición de sus requisitos hasta su mantenimiento una vez el producto comience a emplearse. la necesidad creciente de incrementar la productividad de la programación mejorando y garantizando. la adopción de las normas de la organización que tenga más avanzados sus desarrollos y un ámbito de actuación más amplio. procedimientos. esto es. Pero también se dan casos en que organizaciones distintas tienen los mismos objetivos por lo que resultaría razonable su colabor ación y. En pocas palabras. han sido creadas por organismos muy diversos. Puede afirmarse que en la actualidad se ha llegado a un nivel de madurez en la industria del software que ha permitido a todos 1os implicados que exista un interés por aunar sus experiencias y esfuerzos para crear normas generales que abarquen sus áreas de interés. La creación e implantación de normas de desarrollo del software son un autentico desafío que tiene la IS c omo medio de comunicación para transferir sus métodos. Y ello con las restricciones generales de todos los procesos modernos de ingeniería. Muchas compañías. por su parte. A medida que ha ido aumentando la ne cesidad de un software más fiable. técnicas y procedimientos a la industria del software para el diseño y desarrollo de nuevos productos. De hecho muchas organizaciones desarrollan sus propios conjuntos de normas adecuándolas a sus fines específicos. con frecuencia. Estas normas tienen como criterio general de desarrollo maximizar la comunicación entre los profes ionales del software a través de la definición de documentos generales que se han de producir. a través de la creación e implantación en la industria software de métodos.simplificar y especificar las actividades relacionadas con la materia d e que se trate. se ha reconocido que las normas de ingeniería del software (NIS) son una contribución fundamental para asegurar la producción de software de calidad. Además una consecuencia del objetivo genérico de mejorar la comunicació n es que se reducen los costes por un aumento de productividad y una mejora de la calidad de los desarrollos de software. simultáneamente la calidad del producto resultante. técnicas y útiles que tratan de cubrir las necesidades de cada una de las etapas del ciclo de vida de un producto software. se han visto obligadas a generar sus propias normas cuando no disponen de unas de á mbito general.

descripción y princi pales contactos para llevar a cabo el proyecto. modificarla o eliminarla si ya ha sido superada por una nueva norma. Una vez terminado un desarrollo se concretará en un documento (borrador o draft) que pasará por varias revisiones como consecuencia del proceso de valoración y votación para aceptarlo. nos remitiremos a las dictadas por el IEEE: una nueva idea puede tenerla y sugerirla cualquiera de sus miembros. En cuanto al proceso de creación e implantación de las normas. Finalmente. el cual cursará una Petición de Autorización de Proyecto (PAP) que se transmite a todos los grupos que hacen normas y al ANSI (American National Standard Institute) que se encargará de la coordinación. pasándola a continuación al Comité de Normas de IS. La etapa siguiente en este ciclo corresponde con la de uso de la norma por las empresas u organismos. como trabajo complementario se procede difundir la norma a través de Seminarios.Estos esfuerzos varían en cuanto al tipo de industrias o usuarios así como en lo relativo a los logro s alcanzados. pero la tendencia actual es hacia la normalización de1 proceso de desarrollo software a través de normas que conduzcan a homogeneizar los planes de garantía de calidad de él. Finalmente se decidirá dejarla igual. Durante esta fase los usuario s proporcionan comentarios positivos o negativos acerca de la norma. La etapa siguiente corresponde al desarrollo de la norma a cargo de un grupo de trabajo. El proceso será más enriquecedor cuantos más profesionales de distinto nivel y más organismos intervengan. Cualquiera puede adherirse al grupo y el IEEE se encargará de implicar a todos los interesados para que participen en reuniones con los demás miembros (unas cuatro reuniones anuales). Tras su aprobación sé distribuirá la nueva norma. la document ación de sus pruebas. Los modelos de calidad del softw are de gestión. La PAP define el objetivo. Las modificaciones se remiten al consejo de normas del IEEE para su evaluación por el grupo de trabajo entrando en una nueva fase del ciclo de elaboración de normas. ámbito. o sea la calidad se produce como consecuencia de la evaluación de un conjunto de indicadores o métricas en diferentes etapas: . los planes de gestión de la configuración del software. En cuanto al tiempo medio que se tarda desde que se inicia la elaboración de una norma hasta que se aprueba es de tres años. y en ocasiones aceptan o modifican las normas para sus fines específicos. Durante este periodo habrán de vota r al menos el 75% de los miembros del grupo de votación (unos 100 expertos) y a su vez el 75% debe ser positivo. El ciclo completo dura cinco años. según su propia experiencia. etc. También pueden intervenir a distancia detallando las contribuciones oportunas y remitiéndolas al grupo correspondiente. En general los modelos de calidad definen a ésta de forma jerárquica.

Se trata de una visión de la calidad técnica.. 105 -113. desde el punto de vista del producto software y se les denomina también atributos de calidad internos. BIBLIOGRAFÍA Kitchenham. medir y planificar. De esta manera. y ello repercute en la obligación de que sus proveedores de software los hayan empeado en la elaboración de sus productos. Vol. hoy día se comienza a imponer la obligación de normas de calidad del software donde un fallo en l a información. Tutorial. sistemas automáticos. . E. o en el tratamiento de ésta puede llevar a fallos catastróficos y de consecuencias imprevisibles. N. E.2. Howden. Miller.En el nivel más alto de la jerarquía se encu entran los factores de calidad definidos a partir de la visión del usuario del software. Finalmente para cada uno de los criter ios de calidad se definen un conjunto de métricas o medidas cuantitativas de ciertas características del producto que indican el grado en que dicho producto posee un determinado atributo de calidad. Software Testing & Validation Techniques.. 2a ed. 1981. En contra de los modelos de calidad pesa que aún no ha quedado demostrada la validez absoluta de ninguno de ellos. W. y conocidos también como atributos de calidad externos. sistemas documentales. a través de un modelo de calidad se concr etan los aspectos relacionados con ella de tal manera que se puede definir. pp. 4. Towards a Constructive Quality Model. IEEE Computer Society Press. Además el empleo de un modelo de calidad permite comprender las relaciones que existen entre diferentes características de un producto software. Por ello las organizaciones están exigiendo controles de calidad más rigurosos en la confección de su software. Cada uno de los factores se descompone en un conjunto de criterios de calidad. etc. CONCLUSIÓN Como se ha visto a lo largo de esta exposición. Hoy día el tener implantados si stemas de calidad en la empresa. 1987. Por todo ello la i mplantación de sistemas de calidad en cualquier empresa u organización debe implicar que también el software que empleen los posea.B.. De esa forma se evitarían defectos provenientes de los sistemas de información. Software Engineering Journal.. debe llevar no solo él tener que instalar la metodología del sistema de calidad sino también sistemas de información que controlen y coordinen el sistema. o sea aquéllos atributos que cua ndo están presentes contribuyen a obtener un software de la calidad.

A case study in SQA Audits. G. Quality Progress vol.E. pp. W. . 38 -43. Oman.11. 13-27. Integrating software quality metrics with software QA. 1988. 1993. . P. . Nov. pp.Murine. Software Quali ty Journal nº 2.21. no.