Research article
Los estándares internacionales y su importancia para la industria del software
International standards and their relevance to the software industry
Alfonzo, Pedro L. ⓘ
Departamento de Informática.
Facultad de Ciencias Exactas y Naturales y Agrimensura.
Universidad Nacional del Nordeste. Corrientes, Argentina.
Mariño, Sonia I. ⓘ
Departamento de Informática.
Facultad de Ciencias Exactas y Naturales y Agrimensura,
Universidad Nacional del Nordeste. Corrientes, Argentina
Resumen
La República Argentina cuenta con la Ley de Promoción de la Industria del Software (Ley Nº 25.922). La misma especifica como requisito para que las empresas productoras de software puedan acceder los beneficios que otorga la ley, disponer con algún tipo de certificación, en cuanto al producto ó proceso de software. En este trabajo se aborda una selección y revisión de la literatura respecto a los estándares propuestos por la Organización Internacional de Normalización, orientados a la evaluación del producto y mejora de procesos software relacionados con la calidad, ya sea para el software tradicional o en entorno Web, tanto para el ámbito internacional como para el nacional.
Abstract
Argentina has the Law for the Promotion of Software Industry (Law No. 25,922). It mentioned as a requirement, that software companies can access the benefits granted by law, to some form of certification regarding the product or software process. This paper presents a selection and review of the literature regarding the standards proposed by the International Organization for Standardization, focused on product evaluation and process improvement related to quality software, whether for traditional software or web environment.
Palabras Clave:
Industria del software, Ingeniería del software, estándares internacionales
Keyword:
Software industry, Software engineering, international standards
1. Introducción
La Ingeniería del Software (IS) es una disciplina de la ingeniería que comprende todos los aspectos de la producción de software desde las etapas iniciales de la especificación del sistema, hasta el mantenimiento de éste después de que se utiliza. Un objetivo en la investigación en IS se fundamentó en desarrollar herramientas, técnicas y métodos que lleven a la producción de software libre de defectos, siendo éste el que cumple exactamente con su especificación (Sommerville, 2005).
Respecto a la calidad del software, en la literatura se propusieron varias definiciones, siendo una de ellas: es el cumplimiento de los requisitos de funcionalidad y desempeño explícitamente establecidos, de los estándares de desarrollo explícitamente documentados, y de las características implícitas que se espera de todo software desarrollado profesionalmente (Pressman, 2005).
La anterior definición, expuesta en Pressman (2005), resalta que los estándares especificados definen un conjunto de criterios de desarrollo que guían la forma en que se aplica la ingeniería del software, por lo tanto si no se siguen esos criterios, casi siempre habrá falta de calidad.
En relación a los estándares, a nivel internacional existe una organización conocida como ISO (Organización Internacional de Normalización), es una federación mundial de organismos nacionales de normalización (organismos miembros de ISO). El trabajo de preparación de las normas internacionales normalmente se realiza a través de los comités técnicos de ISO. Cada organismo miembro interesado en una materia para la cual se haya establecido un comité técnico, tiene el derecho de estar representado en dicho comité. Las organizaciones internacionales, públicas y privadas, en coordinación con ISO, también participan en el trabajo. ISO colabora estrechamente con la Comisión Electrotécnica Internacional (IEC) en todas las materias de normalización electrotécnica. La tarea principal de los comités técnicos es preparar Normas Internacionales.
En el ámbito nacional (República Argentina), se cuenta con el Instituto Argentino de Normalización (IRAM). Es una asociación civil sin fines de lucro. En el campo de la normalización, IRAM es el único representante Argentino ante las organizaciones regionales de normalización: AMN (Asociación MERCOSUR de Normalización), COPANT (Comisión Panamericana de Normas Técnicas) y ante las organizaciones internacionales ISO (International Organization for Standardization) e IEC (International Electrontechnical Comisión), en este caso en conjunto con AEA (Asociación Electrotécnica Argentina). IRAM lidera los comités técnicos nacionales que analizan los documentos en estudio, canaliza las propuestas nacionales, fija la posición de Argentina ante estos organismos y está presente en la conducción de varios de los comités técnicos internacionales.
IRAM, en el campo de la certificación, representa a la Argentina ante las redes: IQNET – The International Certification Network – e IECEE Worldwide Systems for Conformity Testing and Certification of Electrotechnical Equipment and Components.
Así mismo es relevante el estudio y aplicación de estándares, considerando la Ley Nº 25.922 o Ley de promoción de la Industria del Software en la República Argentina. Ésta establece como uno de sus requisitos que las empresas deben disponer con algún tipo de certificación, en cuanto al producto ó proceso de software, para acceder a sus beneficios.
En el presente artículo se hace una revisión de los principales estándares internacionales para desarrollar y evaluar productos software, enfocándose en los modelos ISO para la calidad del producto. En la sección 2, se mencionan algunos estándares ISO de evaluación del producto y mejora de procesos software relacionados con la calidad, ya sea para el software tradicional o en entorno Web, tanto para el ámbito internacional como para el nacional (República Argentina). En la sección 3 se presentan los modelos ISO/IEC para la calidad del producto software más referenciados en la literatura. La sección 4, sintetiza las Ley de Promoción de la Industria del Software. Finalmente, se exponen a modo de conclusiones preliminares reflexiones derivadas del estudio.
2. Estándares ISO de evaluación del producto y mejora de procesos
2. 1. Nivel Internacional
A continuación se mencionan y sintetizan estándares internacionales de evaluación del producto y mejora de procesos:
- ISO/IEC 9001:2000: Promueve la adopción de un enfoque basado en procesos cuando se desarrolla, implementa y mejora la eficacia de un sistema de gestión de la calidad, para aumentar la satisfacción del cliente mediante el cumplimiento de sus requisitos.
- ISO/IEC 9001:2008: Modificación de la ISO/IEC 9001:2000
- ISO/IEC 9000-3:2004: Guía la aplicación de ISO 9001 para el desarrollo, la aplicación y mantenimiento de software.
- ISO/IEC 12207:1995: Define los procesos del ciclo de vida del software.
- ISO/IEC 12207:2008: Establece un marco común para los procesos de ciclo de vida de software, con terminologías bien definidas. Contiene los procesos, actividades y tareas que se aplican durante la adquisición de un producto de software o servicios y el desarrollo, operación, mantenimiento.
- ISO/IEC 9126:2001: Permite evaluar la calidad del producto software y establece las características de la calidad.
- ISO/IEC 15939:2007: Define un proceso de medición través de un modelo que define las actividades y es adaptable, flexible a las necesidades de diferentes usuarios.
- ISO/IEC 15504:2004: Proporciona un marco para la evaluación y mejorar la capacidad y madurez de los procesos. Se aplica junto ISO/OEC 12207, para evaluar y mejora de la calidad del proceso de desarrollo y mantenimiento de software.
- ISO/IEC 14598:1999: Presenta pautas que ayudan al proceso de evaluación del producto software.
- ISO/IEC 25000:2005: Proporciona una guía para el uso de las nuevas series de estándares internacionales.
2. 2. Nivel Nacional
En relación al ámbito nacional, se mencionan a continuación las Normas IRAM-ISO para la certificación, expuestas en el catálogo de Normas IRAM, las cuales se encuentran vigentes:
- IRAM-ISO 9001. Sistemas de gestión de la calidad. Requisitos. Reemplaza a IRAM-ISO 9001: 2000.
- IRAM-ISO-IEC 90003. Tecnología de la Información. Ingeniería de software. Directrices para la aplicación de la norma IRAM-ISO 9001:2000 al software.
- IRAM-NM-ISO IEC 9126-1. Tecnología de la información. Ingeniería de software. Calidad del producto. Parte 1 - Modelo de calidad. (ISO/IEC 9126-1:2001, IDT).
- IRAM-ISO-IEC 14598-1 Tecnología de la información. Ingeniería de software. Evaluación del producto de software. Parte 1: Descripción general.
- IRAM-ISO-IEC 14598-2. Tecnología de la información. Ingeniería de software. Evaluación del producto de software. Parte 2: Planificación y gestión.
- IRAM-ISO-IEC 14598-3. Tecnología de la Información. Ingeniería de software. Evaluación del producto de software Parte 3: Proceso para desarrolladores.
- IRAM-ISO-IEC 14598-4. Tecnología de la información. Ingeniería de software. Evaluación del producto de software. Parte 4 - Proceso para compradores.
- IRAM-ISO-IEC 14598-5. Tecnología de la información. Ingeniería de software. Evaluación del producto de software. Parte 5 - Proceso para evaluadores.
- IRAM-ISO-IEC 14598-6. Tecnología de la información. Ingeniería de software. Evaluación del producto de software. Parte 6 - Documentación de los módulos de evaluación.
3. Modelos ISO para la calidad del producto software
3.1 El estándar ISO/IEC 9126
El estándar ISO9126 (2001), presenta un marco conceptual para el modelo de calidad y define un conjunto de características, refinadas en subcaracterísticas, las cuales debe cumplir todo producto software para ser considerado de calidad.
En [14], se define un modelo de calidad como “El conjunto de características y las relaciones entre las mismas, que proveen la base para especificar requerimientos de calidad y evaluar calidad”.
En relación al modelo de calidad del producto software, el estándar ISO/IEC 9126 (2001), está dividido en cuatro partes:
- ISO/IEC 9126-1 (2001): Presenta un modelo de calidad del software, estructurado en características y subcaracterísticas.
- ISO/IEC TR 9126-2 (2003): Proporciona métricas externas para medir los atributos de seis características de calidad externa definidas en la ISO/IEC 9126-1 (2001) y una explicación de cómo aplicar las métricas de calidad de software.
- ISO/IEC TR 9126-3 (2003): Proporciona métricas internas para medir atributos de seis características de calidad interna definidas en la ISO/IEC 9126-1 (2001).
- ISO/IEC TR 9126-4 [39]: Define métricas de calidad en uso para medir los atributos definidos en la ISO/IEC 9126-1 (2001).
Sólo la primera parte de la norma ISO 9126-1 (2001) es un estándar aprobado y publicado, siendo los restantes informes que componen la parte identificada como Reportes Técnicos (Technical Report TR).
El estándar ISO9126-1(2001), presenta dos modelos de calidad. La primera referida a la calidad interna y externa (Figura 1) y la segunda a la calidad en uso (Figura 2). A continuación se definen las características descriptas en la ISO/IEC 9126 (2001) y citadas en Abrahão et al. (2001):
- Usabilidad: Capacidad del producto software de ser entendido, aprendido y usado por los usuarios bajo condiciones específicas.
- Funcionalidad: Capacidad del producto software de proporcionar funciones que ejecuten las necesidades explícitas e implícitas de los usuarios cuando el software es usado bajo condiciones específicas.
- Confiabilidad: Capacidad del producto software de mantener un nivel especificado de rendimiento cuando es usado bajo condiciones específicas.
- Eficiencia: Representa la relación entre el grado de rendimiento del sitio y la cantidad de recursos (tiempo, espacio, entre otros) usados bajo ciertas condiciones.
- Mantenimiento: Capacidad del producto software de ser modificado y probado.
- Portabilidad: Capacidad del producto software de ser transferido de un ambiente a otro.
3.1.1. Calidad Interna y externa
En Olsina et al. (2005) citado en Covella (2005), se sintetizan los enfoques de calidad interna y externa del producto software, en el estándar ISO9126-1(2001).
- Calidad Interna: Especificada por un modelo de calidad similar al modelo 9126. Puede ser medida y evaluada por medio de atributos estáticos de documentos tales como: i) Especificación de requerimientos, ii) Arquitectura o diseño, iii) Piezas de código fuente, entre otros. En etapas tempranas del ciclo de vida del software es posible medir, evaluar y controlar la calidad interna de estos productos. Sin embargo, asegurar la calidad interna no es generalmente suficiente para asegurar la calidad externa.
- Calidad Externa: Especificada también por un modelo de calidad similar al modelo 9126. Puede ser medida y evaluada por medio de propiedades dinámicas del código ejecutable en un sistema de computación, esto es, cuando un módulo o la aplicación completa es ejecutado en una computadora o en una red simulando lo más cercanamente posible un ambiente real. En fases tardías del ciclo de vida del software (principalmente en distintas etapas de testing o ya en estado operativo de un producto de software o aplicación Web), es posible medir, evaluar y controlar la calidad externa de estos productos ejecutables.
La calidad interna expuesta en ISO9126-1(2001), se define como “la totalidad de atributos de un producto que determina su capacidad de satisfacer necesidades explícitas e implícitas cuando es usadas bajo condiciones específicas”. Se define como calidad externa “el grado en la que un producto satisface necesidades explícitas e implícitas cuando se utiliza bajo condiciones especificadas” (Covella, 2005).
Para los modelos de calidad interna y externa, se mantuvieron en la revisión las seis características principales de calidad. Aun más, a nivel de subcaracterísticas se transformaron en prescriptitas en vez de informativas. Además, se añadieron nuevas subcaracterísticas y otras redefinidas en términos de “capacidad del software” para facilitar la interpretación de las mismas desde una perspectiva de calidad interna o de calidad externa (Covella, 2005).
Figura 1. Características de la Calidad según la ISO/IEC 9126-1 (Fuente: Portal ISO 25000). |
3.1.2. Calidad en uso
Respecto a la calidad en uso se menciona al estándar ISO/IEC 9126-4, que contiene ejemplos de métricas para medir la productividad, efectividad, seguridad y satisfacción.
El estándar ISO9126-1 (2001), define calidad en uso como “la capacidad de un producto de software de facilitar a usuarios específicos alcanzar metas específicas con eficacia, productividad, seguridad y satisfacción en un contexto específico de uso”. Además agrega que “calidad en uso es la visión de calidad de los usuarios de un ambiente conteniendo software, y es medida sobre los resultados de usar el software en el ambiente, antes que sobre las propiedades del software en sí mismo” (Covella, 2005).
Las características de calidad en uso son agrupadas en cuatro categorías, expuestas en Covella (2005) y se definen como:
- Eficacia: Capacidad del producto software para facilitar a los usuarios alcanzar metas específicas con exactitud y completitud en un contexto específico de uso.
- Productividad: Capacidad del producto software para invertir la cantidad apropiada de recursos en relación a la eficacia alcanzada en un contexto especifico de uso.
- Seguridad: Capacidad del producto software para alcanzar niveles aceptables de riesgo de dañar a las personas, el negocio, el software, la propiedad o el ambiente en un contexto especifico de uso.
- Satisfacción: Capacidad del producto de software para satisfacer a los usuarios en un contexto específico de uso.
La Figura 2, presenta un marco conceptual para el modelo de calidad. Se observa que la calidad del proceso, en el ciclo de vida definido en ISO/IEC 12207, contribuye a mejorar la calidad del producto y ésta a la calidad en uso. Por lo tanto, mejorar el proceso de desarrollo ayuda a obtener un producto de mejor calidad y evaluar la calidad del producto mejora la calidad en uso. El estándar ISO/IEC 14598 presenta pautas que ayudan al proceso de evaluación considerando diferentes actores (desarrolladores, evaluadores, adquisidores) (González et al. 2002). En la serie ISO/IEC 14598, se destacan las siguientes normas: i) ISO/IEC 14598-1 (1999), ii) ISO/IEC 14598-2 (2000), iii) ISO/IEC 14598-3 (2000), iv) ISO/IEC 14598-4 (1999), v) ISO/IEC 14598-5 (1998) y vi) ISO/IEC 14598-6 (2001). La Figura 3 muestra la relación entre ambas series.
Figura 2. Marco conceptual para el modelo de calidad (Fuente: González et al., 2002). |
Figura 3. Relación ISO/IEC 9126 – ISO/IEC 14598 (Fuente: ISO/IEC 9126-1, 2001). |
3. 2. Estándar ISO/IEC 25000:2005
Los aspectos más importantes en el desarrollo de software son la calidad del producto y del proceso. ISO/IEC 25000, proporciona una guía para el uso de las nuevas series de estándares internacionales, llamados Requisitos y Evaluación de Calidad de Productos de Software (SQuaRE). Constituyen una serie de normas basadas en la ISO 9126 y en la ISO 14598, y su objetivo principal es guiar el desarrollo de los productos de software con la especificación y evaluación de requisitos de calidad (Portal ISO 25000).
La familia ISO 25000 está orientada al producto software, permitiendo definir el modelo de calidad y el proceso a seguir para evaluar dicho producto.
La familia de normas SQuaRE está compuesta por 5 divisiones: i) ISO 2500n: Gestión de la calidad, ii) ISO 2501n: Modelo de calidad, iii) ISO 2502n: Medida de la calidad, iv) ISO 2503n: Requisitos de calidad y v) ISO 2504n: Evaluación de la calidad.
El estándar ISO/IEC 25000 (2005), contiene una explicación sobre el proceso de transición entre el estándar ISO/IEC 9126, las series 14598 y SQuaRE. También presenta información sobre cómo utilizar la norma ISO/IEC 9126 y la serie 14598 en su forma anterior. Ofrece términos y definiciones, modelos referencia, guía general, guías de división individual y los estándares para fines de especificación, planificación y gestión, medición y evaluación.
3. 3. El estándar ISO/IEC 25010:2011
El estándar ISO/IEC 25010 (2011), reemplazada y actualiza el estándar ISO9126-1 (2001). Define:
- Un modelo de calidad en uso que se compone de cinco características (algunas de las cuales se subdividen en subcaracterísticas). Se relacionan con el resultado de la interacción cuando un producto se emplea en un contexto particular de uso.
- Un modelo de calidad del producto que se compone de ocho características (que se subdividen en subcaracterísticas). Se refieren a propiedades estáticas de software y las propiedades dinámicas del sistema informático. El modelo es aplicable a los productos de software y sistemas informáticos.
Las características definidas por ambos modelos son relevantes para todos los productos de software y sistemas informáticos. Las características y subcaracteristicas proporcionan coherencia terminológica para especificar, medir y evaluar la calidad del producto software y sistemas informáticos.
El modelo de calidad de producto abarca cualidades internas y externas del sistema y está compuesto por 8 características y 31 subcaracterísticas. El modelo en uso se compone de 5 características y 9 subcaracterísticas (Polillo, 2011). Para una descripción más detallada de las características prescriptas en este modelo en lo referente a la calidad del producto software, remitirse a Polillo (2011).
4. La certificación y Ley de Promoción de la Industria del Software
Se define la certificación como la demostración objetiva de conformidad con normas de calidad, seguridad, eficiencia, desempeño, gestión de las organizaciones y buenas prácticas de manufactura y comerciales. Además, de contribuir al desarrollo tecnológico de las organizaciones, generar un mejor posicionamiento y facilitar la apertura de nuevos mercados (IRAM Certificación).
A los efectos de promover la Industria del software y mejorar la competitividad, se citan a continuación las normativas relacionadas con la promoción de software, expuestas en el sitio web oficial Subsecretaría de Industria: i) Ley 25.922 (2004): Ley de Promoción de la Industria del Software (LPS), ii) Decreto 1594 (2004): Reglamentación de la Ley N° 25.922, iii) Resolución 61 (2005): Crea el Registro Nacional de Productores de Software y Servicios Informáticos, iv) Ley 26.692 (2011): Modificación de la Ley 25.922.
El objetivo principal de la LPS, es mejorar la competitividad de las empresas a través del otorgamiento de beneficios fiscales, estimulando el desarrollo la industria del software y servicios informáticos en el país. Incentivando la inversión, fomentando la I+D, mejorando los estándares de calidad de productos y procesos, promoviendo las exportaciones y contribuyendo al incremento del empleo (BIDP).
También a partir de la sanción de la LPS, se crea el Fondo Fiduciario de Promoción de la Industria del Software (FONSOFT), ésta promueve el fortalecimiento de las actividades de producción de software a nivel nacional. Además, designa en lo referente a FONSOFT, a la Secretaría de Ciencia, Tecnología e Innovación Productiva (actualmente Ministerio de Ciencia, Tecnología e Innovación Productiva (MinCyT)), a través de la Agencia Nacional de Promoción Científica y Tecnológica, como autoridad de aplicación.
Pueden ser beneficiarios del régimen de promoción (LPS, Artículo 2), las personas físicas y jurídicas constituidas en la República Argentina, cuya actividad principal sea la industria del software y desarrollen en el país y por cuenta propia las siguientes actividades, descriptas en el Artículo 4 de la LPS, creación, diseño, desarrollo, producción e implementación y puesta a punto de los sistemas de software desarrollados y su documentación técnica asociada, tanto en su aspecto básico como aplicativo, incluyendo el que se elabore para ser incorporado a procesadores utilizados en bienes de diversa índole, tales como consolas, centrales telefónicas, telefonía celular, máquinas y otros dispositivos.
Además, se establece que “A los fines de la aplicación de la Ley N° 25.922, se entenderá que un sujeto desarrolla como actividad principal la industria del software cuando más del CINCUENTA POR CIENTO (50%) de sus actividades estén comprendidas en el sector de software y servicios informáticos” (Decreto 1594/2004, Artículo 2) .
Respecto a las actividades que deben cumplir para ser beneficiarios son (LPS, Artículo 8): i) Investigación y desarrollo en software, ii) Procesos de certificación de calidad de software desarrollado en el territorio nacional, iii) Exportaciones de software. Además, a los efectos de la percepción de los beneficios, los sujetos que adhieran al presente régimen deben cumplir con alguna norma de calidad reconocida aplicable a los productos de software. Esta exigencia comenzará a regir a partir del tercer año de vigencia del presente marco promocional (LPS, Artículo 10).
En este sentido la Resolución 61 (2005), en su artículo 9, precisa los alcances del cumplimiento, establecidos en el artículo 8 de la ley 25.922 y establece en el anexo VI de la mencionada resolución, la lista de Certificadoras de Calidad admitidas como válidas y las cuales se mencionan a continuación:
- Para certificación de procesos de producción: i) CMM, ii) CMMi, iii) IRAM-ISO 9001-ISO/IEC 90003, iv) IRAM 17601 (CMMi (SEI)), v) ISO/IEC 15504 (IRAM-ISO/IEC 15504).
- Para certificación de calidad de producto la ISO/IEC 9126 (IRAM-ISO/IEC 9126).
5. Conclusiones
En este trabajo se presentó una revisión de los estándares a nivel internacional y nacional, relacionados con la producción de software, como parte importante para la comercialización interna y externa de un país. La certificación de un producto software, a través de las organizaciones mencionadas en este artículo, permite tener una mejor aceptación en el mercado, otorgando la confianza al cliente que su adquisición cumple con normas de calidad, seguridad, eficiencia, entre otros. En este sentido las políticas implementas por el gobierno en la Argentina, con la Ley de promoción de la Industria del Software, aportan una serie de ventajas desde el punto de vista comercial y financiero, entre otros. Además de generar mayor competitividad para la inserción internacional de empresas exportadoras de software.
Bibliografía - Bibliography
Catálogo de Normas IRAM. Consulta: 03 de enero del 2013.
Decreto 1594/2004. Reglamentación de la Ley N° 25.922. Consulta: 06 de enero del 2013.
FONSOFT. Fondo Fiduciario de Promoción de la Industria del Software. Consulta: 05 de enero del 2013.
IRAM. Instituto Argentino de Normalización y Certificación. Consulta: 02 de enero del 2013.
ISO/IEC 12207:1995. Information Technology - Software life cycle processes.
ISO/IEC 14598-4:1999. Software engineering -- Product evaluation -- Part 4: Process for acquirers.
ISO/IEC 14598-2:2000. Software engineering -- Product evaluation -- Part 2: Planning and management.
ISO/IEC 14598-3:2000. Software engineering -- Product evaluation -- Part 3: Process for developers.
ISO/IEC 9001:2000. Quality management systems - Requirements.
ISO/IEC 9126-1. (2001). Software engineering — Product quality — Part 1: Quality model.
ISO/IEC TR 9126-2:2003. Software engineering -- Product quality -- Part 2: External metrics.
ISO/IEC TR 9126-3:2003. Software engineering -- Product quality -- Part 3: Internal metrics.
ISO/IEC 15939:2007. Systems and software engineering -- Measurement process.
ISO/IEC 9001:2008. Quality management systems - Requirements.
ISO/IEC 12207:2008. Systems and software engineering -- Software life cycle processes
Ley 25.922/2004. Ley de Promoción de la Industria del Software. Consulta: 06 de enero del 2013.
Ley 26.692/2011. Modificación de la Ley 25.922. Consulta: 06 de enero del 2013.
Portal ISO 25000. Calidad del Producto Software.
Pressman, R. 2005. Ingenieria del Software. 6ª Ed. Mcgraw-Hill. Parte III, cap. 16-19.
Sommerville, I. (2005), Ingeniería del Software. 7ª Edición. Ed. Pearson.
Subsecretaría de Industria. Promoción de Software. Normativas. Consulta: 05 de enero del 2013.
Google Scholar Index
Article
Los estándares internacionales y su importancia para la industria del software
Publisher: