¿Qué es el ACS?
Comencemos por entender ¿Qué es la calidad de software?
Podemos llamar la calidad de software al conjunto de cualidades que lo caracterizan y que determinan y utilidad y existencia, Calidad es sinónimo de eficiencia, flexibilidad, corrección, confiabilidad, mantenibilidad, portabilidad, usabilidad, seguridad e integridad.
Entonces, ¿Cómo es que se controla la calidad del software? Esta parte puede ser un tanto subjetiva ya que para medir la calidad de un software se tienen que establecer los parámetros, indicadores y/o los criterios de medición. El proceso de control de calidad de software requiere de una serie de pasos, serían los siguientes:
- Definir el software que va a ser controlado: clasificación por tipo, esfera de aplicación, complejidad, etc., de acuerdo con los estándares establecidos para el desarrollo del software.
- Seleccionar una medida que pueda ser aplicada al objeto de control. Para cada clase de software es necesario definir los indicadores y sus magnitudes.
- 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.
- Definir las regulaciones organizativas para realizar el control: quiénes participan en el control de la calidad, cuándo se realiza, qué documentos deben ser revisados y elaborados.
- Lograr el éxito en la producción de software es hacerlo con calidad y demostrar su buena calidad. 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, amplia mente aceptada, y por los estándares de la Norma ISO 9000.
Definido esto podemos decir que el Aseguramiento de la Calidad de un Software (ACS) se conoce como un conjunto de actividades planificadas y sistemáticamente necesarias para aportar la confianza y estabilidad que el software requiere para satisfacer las necesidades tanto del cliente como del usuario.
Elementos del ACS
El aseguramiento de la calidad de software se compone de distintos elementos que lo conforman, en esta ocasión te mostraremos los que considero los 4 más relevantes de la lista:
- Estándares. El IEEE, ISO y otras organizaciones que establecen estándares han producido una amplia variedad de ellos para ingeniería de software y documentos relacionados. Los estándares los adopta de manera voluntaria una organización de software o los impone el cliente u otros participantes. El trabajo del ACS es asegurar que los estándares se hayan adoptado se sigan, y que todos los productos del trabajo se apeguen a ellos.
- Revisiones y auditorias. Las revisiones técnicas son una actividad del control de ca..
dad que realizan ingenieros de software para otros ingenieros de software. Su objetivo es detectar errores. Las auditorías son un tipo de revisión efectuada por personal de ACS con objeto de garantizar que se sigan los lineamientos de calidad de trabajo de la ingeniería de software. Por ejemplo, una auditoría del proceso de revisión se efectúa para asegurar que las revisiones se lleven a cabo de manera que tengan la máxima probabilidad de descubrir errores. - Pruebas. La s pruebas del software son una función del control de calidad que tiene un objetivo principal: detectar errores. El trabajo del ACS es garantizar que las pruebas se planeen en forma apropiada y que se realicen con eficiencia, de modo que la probabilidad de que logren su objetivo principal sea máxima.
- Seguridad. Debido a que el software casi siempre es un componente crucial de los sistemas humanos (como aplicaciones automotrices o aeronáuticas), la consecuencia de defectos ocultos puede ser catastrófica. El ACS es responsable de evaluar el efecto de las fallas del software y de dar los pasos que se requieren para disminuir el riesgo.
El ACS tiene además de los elementos mencionados una enfoque principal dominante, que es el asegurar que las actividades de apoyo del software (como mantenimiento, líneas de ayuda, documentación y manuales) se lleven a cabo y se produzcan con la mayor calidad posible.
Tareas del ACS
- Como principal objetivo el grupo de ACS apoya al equipo de software para desarrollar un producto final de alta calidad. Las tareas de ACS (recomendadas por el Instituto de Ingeniería de Software) son un conjunto de acciones que están enfocadas en la planeación, supervisión, registro, análisis y elaboración de reportes para el aseguramiento de la calidad. Son realizadas por un grupo independiente de ACS y constan de lo siguiente:
- Prepara el plan de ACS para un proyecto. El plan se desarrolla como parte de la preparación del proyecto y es revisado por todos los participantes. Las acciones de aseguramiento de la calidad efectuadas por el equipo de ingeniería de software y por el grupo de ACS son dirigidas por el plan . Éste identifica las evaluaciones que se van a realizar, las auditorías y revisiones por efectuar, los estándares aplicables al proyecto, los procedimiento para repm1ar y dar seguimiento a los errores, los productos del trabajo que genera el grupo de ACS y la retroalimentación que se dará al equipo del software.
- Participa en el desarrollo de la descripción del software del proyecto. El equipo de software selecciona un proceso para el trabajo que se va a realizar. El grupo de ACS revisa la descripción del proceso a fin de cumplir con la política organizacional, los estándares internos para el software, los estándares impuestos desde el exterior (como la norma IS0-900 1) y otras partes del plan del proyecto de software.
- Revisa las actividades de la ingeniería de software a fin de verificar el cumplimiento mediante el proceso definido para el software. El grupo de ACS identifica, documenta y da seguimiento a las desviaciones del proceso y verifica que se hayan hecho las correcciones pertinentes.
- Audita los productos del trabajo de software designados para verificar que se cumpla con aquellos definidos como parte del proceso de software. El grupo de ACS revisa productos del trabajo seleccionados; identifica, documenta y da seguimiento a las desviaciones; verifica que se hayan hecho las correcciones necesarias y reporta periódicamente los resultados de su trabajo al gerente del proyecto.
- Asegura que las desviaciones en el trabajo de software y sus productos se documenten y manejen de acuerdo con un procedimiento documentado. Las desviaciones pueden encontrarse en el plan del proyecto, la descripción del proceso, los estándares aplicables o los productos del trabajo de la ingeniería de software.
- Registra toda falta de cumplimiento y la reporta a la alta dirección. Se da seguimiento a los incumplimientos hasta que son resueltos.
Además de estas acciones, el grupo de ACS coordina el control y administración del cambio y ayuda a recabar y analizar métricas para el software.
Confiabilidad del software
Sin duda alguna la confiabilidad en un sistema pasar a ser un elemento importante en su calidad general, ya que si un programa falla constantemente y tiene un mal desempeño las pocas características buenas del software pasan a segundo plano.
La confiabilidad del software a diferencia de otros factores que se encuentran dentro de la calidad del software se mide de manera directa en datos históricos del desarrollo y la ejecución del software.
En términos estadísticos la confiabilidad del software se define como la probabilidad que tiene un programa de cómputo de operar sin fallas en un ambiente específico por un tiempo específico
Seguridad del software
La seguridad de software en el aseguramiento del software es una actividad centrada en la identificación y evaluación de peligros potencial que pudieran afectar de forma negativa o que podrían ocasionar una falla total en el sistema. Si dichos peligros son identificados de forma temprano durante el proceso del software, pueden ser eliminadas o al menos controladas.
Para llevar a cabo este proceso se realiza un modelado y análisis inicial donde se identifican los peligros y son clasificado según su nivel de riesgo. Una vez identificados y analizados los riesgos se especifican los requerimientos relacionadas a la seguridad del software mediante una lista de eventos indeseables y las soluciones o respuestas que se tendrían ante ellos.
La relación entre la confiabilidad y la seguridad del software es clara pero, existen una diferencia entre ellas. La primera utiliza técnicas de estadística para determinar la probabilidad de una falla en el sistema pero no necesariamente estamos hablando de un peligro o un riesgo. En cambio cuando hablamos de seguridad, esta examina las formas en que las fallas generan condiciones que llevan a un peligro.
Normas ISO / IEC
ISO 12207 – Modelos de Ciclos de Vida del Software.
Estándar para los procesos de ciclo de vida del software de la organización, Este estándar se concibió para aquellos interesados en adquisición de software, así como desarrolladores y proveedores. El estándar indica una serie de procesos desde la recopilación de requisitos hasta la culminación del software.
El estándar comprende 17 procesos lo cuales son agrupados en tres categorías:
- Principales
- De apoyo
- De organización
Este estándar agrupa las actividades que se pueden llevar a cabo durante el ciclo de vida del software en cinco procesos principales, ocho procesos de apoyo y cuatro procesos organizativos
Norma ISO/IEC 9126
La norma ISO/IEC 9126 de 1991, es la norma para evaluar los productos de software, esta norma nos indica las características de la calidad y los lineamientos para su uso, las características de calidad y sus métricas asociadas, pueden ser útiles tanto como para evaluar el producto como para definir los requerimientos de la calidad y otros usos. Esta norma definida por un marco conceptual basado en los factores tales como Calidad del Proceso, Calidad del Producto del Software y Calidad en Uso; según el marco conceptual, la calidad del producto, a su vez, contribuye a mejorar la calidad en uso.
La norma ISO/IEC 9126 define la calidad en uso como la perspectiva del usuario de la calidad del producto software cuando éste es usado en un ambiente específico y un contexto de uso específico. Éste mide la extensión para la cual los usuarios pueden conseguir sus metas en un ambiente particular, en vez de medir las propiedades del software en sí mismo.
Estándar ISO/IEC 14598
El estándar ISO/IEC 14598 es actualmente usado como base metodológica para la evaluación del producto software. En sus diferentes etapas, establece un marco de trabajo para evaluar la calidad de los productos de software proporcionando, además, métricas y requisitos para los procesos de evaluación de los mismos.
La norma define las principales características del proceso de evaluación
- Repetitividad.
- Reproducibilidad.
- Imparcialidad.
- Objetividad.
Para estas características se describen las medidas concretas que participan:
- Análisis de los requisitos de evaluación.
- Evaluación de las especificaciones.
- Evaluación del diseño y definición del plan de evaluación.
- Ejecución del plan de evaluación.
- Evaluación de la conclusión.
El estándar ISO/IEC 14598 define el proceso para evaluar un producto de
software, el mismo consta de seis partes:
software, el mismo consta de seis partes:
- ISO/IEC 14598-1 Visión General: provee una visión general de las otras cinco partes y explica la relación entre la evaluación del producto software y el modelo de calidad definido en la ISO/IEC 9126.
- ISO/IEC 14598-2 Planeamiento y Gestión: contiene requisitos y guías para las funciones de soporte tales como la planificación y gestión de la evaluación del producto del software.
- ISO/IEC 14598-3 Proceso para desenvolvedores: provee los requisitos y guías para la evaluación del producto software cuando la evaluación es llevada a cabo en paralelo con el desarrollo por parte del desarrollador.
- ISO/IEC 14598-4 Proceso para adquirentes: provee los requisitos y guías para que la evaluación del producto software sea llevada a cabo en función a los compradores que planean adquirir o reutilizar un producto de software existente o pre-desarrollado.
- ISO/IEC 14598-5 Proceso para avaladores: provee los requisitos y guías para la evaluación del producto software cuando la evaluación es llevada a cabo por evaluadores independientes.
- ISO/IEC 14598-6 Documentación de Módulos: provee las guías para la documentación del módulo de evaluación.
Norma ISO/IEC 25000 (SquaRE)
ISO 25000:2005 (SQuaRE -Software Quality Requirements and Evaluation) es una nueva serie de normas que se basa en ISO 9126 y en ISO 14598 (Evaluación del software). Uno de los principales objetivos de la serie SQuaRE es la coordinación y armonización del contenido de ISO 9126 y de ISO 15939:2002 (Measurement Information Model).
ISO 15939 tiene un modelo de información que ayuda a determinar que se debe especificar durante la planificación, performance y evaluación de la medición. Para su aplicación, cuenta con los siguientes pasos: Recopilar los datos, Preparación de los datos y Análisis de los datos.
SQuaRE está formada por las divisiones siguientes:
- ISO/IEC 2500n. División de gestión de calidad. Los estándares que forman esta división definen todos los modelos comunes, términos y referencias a los que se alude en las demás divisiones de SQuaRE.
- ISO/IEC 2501n. División del modelo de calidad. El estándar que conforma esta división presenta un modelo de calidad detallado, incluyendo características para la calidad interna, externa y en uso.
- ISO/IEC 2502n. División de mediciones de calidad. Los estándares pertenecientes a esta división incluyen un modelo de referencia de calidad del producto software, definiciones matemáticas de las métricas de calidad y una guía práctica para su aplicación.
- ISO/IEC 2503n. División de requisitos de calidad. Los estándares que forman parte de esta división ayudan a especificar los requisitos de calidad. Estos requisitos pueden ser usados en el proceso de especificación de requisitos de calidad para un producto software que va a ser desarrollado ó como entrada para un proceso de evaluación. El proceso de definición de requisitos se guía por el establecido en la norma ISO/IEC 15288 (ISO, 2003).
- ISO/IEC 2504n. División de evaluación de la calidad. Estos estándares proporcionan requisitos, recomendaciones y guías para la evaluación de un producto software, tanto si la llevan a cabo evaluadores, como clientes o desarrolladores.
- ISO/IEC 25050–25099. Estándares de extensión SQuaRE. Incluyen requisitos para la calidad de productos de software «Off-The-Self» y para el formato común de la industria (CIF) para informes de usabilidad.
Plan de acción para el ACS
Este plan nos proporciona una mapa de ruta para instituir el aseguramiento de la calidad del software, Fué desarrollado por el grupo de ACS o en su defecto por el grupo de software. El plan funciona como una plantilla para las actividades de ACS que se instituyen para cada proyecto de software.
La IEEE [IEEE93] ha publicado una norma para el ACS. Ésta recomienda una estructura que
identifica lo siguiente:
1) Propósito y alcance del plan.
2) Descripción de todos los productos como trabajo de ingeniería de software (tales como modelos, documentos, código fuente, etc.) que ubiquen dentro del ámbito del ACS.
3) Todas las normas y prácticas aplicables que se usan durante el proceso del software,
4) Acciones y tareas del ACS (incluidas revisiones y audito y su ubicación en el proceso del software, 5) Herramientas y métodos que den apoyo a las aplicaciones y tareas de ACS,
6) procedimientos para la administración de la configuración del software.
7) métodos para unificar las salvaguardas y para mantener todos registros relacionados con el ACS.
8) roles y responsabilidades relacionados con la calidad del producto.
identifica lo siguiente:
1) Propósito y alcance del plan.
2) Descripción de todos los productos como trabajo de ingeniería de software (tales como modelos, documentos, código fuente, etc.) que ubiquen dentro del ámbito del ACS.
3) Todas las normas y prácticas aplicables que se usan durante el proceso del software,
4) Acciones y tareas del ACS (incluidas revisiones y audito y su ubicación en el proceso del software, 5) Herramientas y métodos que den apoyo a las aplicaciones y tareas de ACS,
6) procedimientos para la administración de la configuración del software.
7) métodos para unificar las salvaguardas y para mantener todos registros relacionados con el ACS.
8) roles y responsabilidades relacionados con la calidad del producto.
Conclusiones
La calidad en el software es para nada una casualidad, es resultado de invertir recursos en procesos, actividades y profesionales que permiten asegurar la calidad en el software desde el inicio y brindar sistemas funcionales.
Por eso es que la industria del desarrollo de software a intensificado trabajos en aplicar los conceptos de calidad en todo el ámbito del software. Hablar de la necesidad que de contar con los requisitos y parámetros que nos permitan establecer los niveles mínimos que un producto sistema debe tener y alcanzar para considerarse como un producto de calidad es muy importante.
Una de los principales problemáticas si no es que la única es que las características que definen aun software no pueden ser cuantificadas fácilmente, por lo tanto se establecen de forma cualitativa, dificultando su medición. Para esto se establecen métricas que permiten evaluar cuantitativamente las características del producto pero depende en su totalidad del tipo de software que se pretende calificar.
Dentro de los trabajos que se han realizado para establecer propuestas de evaluación para los factores cualitativos se encuentran los de McCall , como principal ejemplo. Además en la búsqueda de la estandarización en los mecanismos de evaluación se han creado las normas ISO 9000 y el estándar para el aseguramiento de planes de calidad del IEEE 730:1984.
Bibliografía
Pressman, Roger S. (2010). Aseguramiento de la calidad del software. En Ingeniería de software: Un enfoque práctico. (7a. ed). (Pp. 368-380). México: McGraw-Hill.
Comentarios
Publicar un comentario