Calidad de Software

¿Qué es Calidad?

Conjunto de propiedades inherentes a una cosa que permite caracterizarla y valorarla con respecto a las restantes de su especie. Superioridad o excelencia de algo o de alguien. “Una mercancía de calidad; un asunto de calidad; la calidad del vino de Tarija ha conquistado los mercados”

Definición de Calidad de Software

IEEE

  1. Cumple con los requisitos especificados.
  2. Cumple las necesidades o expectativas del cliente o usuario.

ISO

Satisface las necesidades.

Definición de Aseguramiento de Calidad de Software

IEEE

  1. Un patrón planeado y sistemático de todas las acciones necesarias para que un elemento o producto cumpla con los requisitos técnicos establecidos.
  2. Conjunto de actividades diseñadas para evaluar el proceso con el que los productos se desarrollan y producen. Es diferente al control de calidad.

¿Cómo Controlar la Calidad del Software?

“Cero fallas”
Necesita ser confiable, mantenible y flexible.

Algunas Características son:

  • Cumplir con los requisitos funcionales y de rendimiento.
  • Mantenibilidad: El software se debe diseñar de tal manera que permita ajustarlo a los cambios en los requisitos del interesado.
  • Confiabilidad: Incluye varias características como la seguridad, el control de fallos, etc.
  • Eficiencia: Tiene que ver con el uso adecuado de los recursos que necesita un sistema para su funcionamiento.
  • Usabilidad: El software se debería utilizar sin un gran esfuerzo para los usuarios que posibilitaron la información para el diseño y documentación.

Defectos de Software

Un defecto de software (computer bug en inglés), es el resultado de un fallo o deficiencia durante el proceso de creación de programas de ordenador o computador (software). Dicho fallo se puede presentar en cualquiera de las etapas del ciclo de vida del software.

Error

Es una equivocación cometida por un desarrollador. Algunos ejemplos de errores son: un error de tipeo, una malinterpretación de un requisito o de la funcionalidad de un método. El estándar 829 de la IEEE coincide con la definición de diccionario de error como “una idea falsa o equivocada”.

Bug

En 1947, los creadores de Mark II informaron del primer caso de error en un ordenador causado por un bicho.
El Mark II, ordenador sucesor de ASCC Mark I, construido en 1944, sufrió un fallo. Cuando se investigó ese fallo, se encontró que una polilla lo había provocado.

Tipos de Error

  • Errores de código
  • Errores de procedimiento
  • Errores de documentación
  • Errores de datos

Causas de Errores de Software

  • Errores en la definición de requisitos
  • Fallas de comunicación entre cliente-desarrollador
  • Desviaciones deliberadas de los requisitos de software
  • Errores de diseño
  • Errores de programación
  • Incumplimiento de las políticas de documentación y programación
  • Dificultades del proceso de pruebas
  • Errores de procedimiento
  • Errores de documentación

Casos de Error Famosos

  • Therac-25
  • Sistema de misiles Patriot
  • NASA’s Mars Polar Lander
  • Sistema de lanzamiento Ariane 5
  • Apagón 2003

Objetivo de la Calidad en los Sistemas

El objetivo que persigue la calidad en los sistemas está orientada a:

  • Incrementar la productividad y satisfacción al trabajo de los profesionales afines al campo de la computación.
  • Mejorar la calidad del producto del software.
  • Proveer técnicas aplicadas para automatizar el manejo de datos.
  • Realizar una planeación eficaz de los sistemas.
  • Documentar, validar y controlar formalmente la calidad del trabajo realizado.
  • Cumplir con los objetivos de la organización en cuanto a productividad de sus sistemas de cómputo.

Objetivos de SQA

  • Planificar las actividades de aseguramiento de la calidad.
  • Revisar y auditar objetivamente los productos y las actividades para verificar que estén conformes con los procedimientos y estándares.
  • Proporcionar los resultados de estas revisiones o auditorías informando a la dirección.

Ventajas de SQA

  • Satisfacción de cliente mejorada.
  • Coste reducido de desarrollo.

La SQA Engloba

  • Un enfoque de gestión de calidad.
  • Métodos y herramientas de ingeniería de software efectivas.

Coste de Calidad

Los costos del software a menudo dominan al costo del sistema. El costo del software en un PC es a menudo más caro que la PC.
Cuesta más mantener el software que desarrollarlo.
La Ingeniería de Software concierne a un desarrollo efectivo en cuanto a costes del software.

Desarrollo de Software

Es una actividad compleja del esfuerzo intelectual de las personas.

  • Requerimientos (documentar los servicios que ofrece).
  • Análisis y diseño (cumple requerimientos especificados).
  • Codificación (lenguaje o herramienta de programación).
  • Pruebas de sistema (que no presente fallas).

Calidad

Se define también como característica o atributo de algo. Como atributo se refiere a cosas que se pueden comparar para reconocer estándares, longitud, color, propiedades eléctricas y maleabilidad.
Cuando se habla de características de un producto, existen dos tipos de calidad:

  • Calidad de diseño: Se refiere a las características que los diseñadores especifican para un elemento.
  • Calidad de concordancia: Es el grado en el que las especificaciones de diseño se aplican durante la fabricación.

Control de Calidad: Involucra inspecciones, revisiones y pruebas empleadas a lo largo del proceso de Software.
Garantía de la calidad: Consiste en un conjunto de funciones de auditoría e información que evalúan la efectividad y que tan completas son las actividades de control de calidad.
Coste de la Calidad: Incluye costos que genera la calidad o que demanda el desarrollo de actividades relacionadas con la calidad. Los costes de calidad se dividen en:

  • Costos asociados con prevención (revisiones técnicas).
  • Evaluación (inspección en el proceso y entre procesos).
  • Fallas (defectos).

Modelo de Estimación de la Calidad de Software (MOECS)

MOECS está formado por un conjunto de características (o atributos), agrupadas por categorías y evaluadas a través de métricas (criterios) capaces de ser expresadas en forma numérica asociadas a factores internos y externos relativos al producto (el software) y al proceso (de desarrollo de software).

Propuesta Metodológica en el Marco de Proceso de Evaluación del Software llevado adelante por el CNTI que propone el uso de una nueva metodología denominada: (MEECS) Metodología de Estimación de la Calidad de Software. La cual utiliza el modelo integrado y simplificado denominado (MOECS).

MEECS es el resultado de unificar en un conjunto de pasos:

  • ISO 14598: Modelo para el proceso de la evaluación del producto de software (CNT001).
  • CMMI : Capability Maturity Model Integration.
  • INFOGAS: Integración formal de modelos de calidad con enfoque sistemático (MOS001).

MOECS es el resultado de unificar en una matriz de calidad ISO 9126:(Modelo de calidad externa e interna (ABU001) y sus variantes (9241,10741,11581,18019,13407,16982,1607115910,20282)(CNT001). Mc Call: Modelo de calidad de la operación, revisión y transición del producto de software(PAZ001). MOSCA: Modelo de calidad sistémica de software(MOS001).

Metodología MOECS

En esta aplicación de la metodología participan tres equipos de trabajo con diferentes roles como ser:

Equipo de Calidad

Se encarga de controlar y hacer seguimiento al proceso de evaluación del software por medio de la aplicación de las normas en la que se basa el MOECS.

Equipo Evaluador

Se encarga de la preselección y evaluación del software por medio de la aplicación de la MEECS suministrado por el equipo de calidad. Además de la revisión y presentación del informe de la calidad del equipo.

Equipo Seleccionador

Se encarga de la revisión y aplicación final del informe según el software seleccionado por su nivel de calidad.

MOSCA (Modelo Sistemático de Calidad)

Se caracteriza principalmente por ser una herramienta que soporta la Administración de la Calidad del Software en sus tres actividades:

  • Aseguramiento de la Calidad
  • Planeación de la Calidad
  • Control de la Calidad

Permite ubicar el “nivel establecido” de la calidad de sus productos (del software).

ISO 9126

Es un estándar internacional para la evaluación de la calidad del software. La serie ISO/IEC 25000:2005 reemplaza a dos estándares relacionados: ISO/IEC 9126 (Software Product Quality) e ISO/IEC 14598 (Software Product Evaluation).

Propósito

Hacer que tanto el desarrollo y la adquisición del software cumplan las expectativas y necesidades del usuario.

La norma ISO 9126 está dividida en cuatro partes:

  • ISO 9126-1 modelo de calidad de uso
  • ISO 9126-2 métricas externas
  • ISO 9126-3 métricas internas
  • ISO 9126-4 métricas de calidad de uso

ISO 9126-1 Modelo de Calidad de Uso

Este estándar describe 6 características generales: Funcionalidad, Confiabilidad, Usabilidad, Eficiencia, Mantenibilidad, y Portabilidad.

Funcionalidad

Es un conjunto de atributos que se relacionan con la existencia de un conjunto de funciones y sus propiedades específicas. Las funciones son aquellas que satisfacen las necesidades implícitas o explícitas.

  • Adecuación: Atributos del software relacionados con la presencia y aptitud de un conjunto de funciones para tareas especificadas.
  • Exactitud: Atributos del software relacionados con la disposición de resultados o efectos correctos o acordados.
  • Interoperabilidad: Atributos del software que se relacionan con su habilidad para la interacción con sistemas especificados.
  • Seguridad: Atributos del software relacionados con su habilidad para prevenir acceso no autorizado ya sea accidental o deliberado, a programas y datos.
  • Cumplimiento funcional.

Fiabilidad

Un conjunto de atributos relacionados con la capacidad del software de mantener su nivel de prestación bajo condiciones establecidas durante un período establecido.

  • Madurez: Atributos del software que se relacionan con la frecuencia de falla por fallas en el software.
  • Recuperabilidad: Atributos del software que se relacionan con la capacidad para restablecer su nivel de desempeño y recuperar los datos directamente afectos en caso de falla y en el tiempo y esfuerzo relacionado para ello.
  • Tolerancia a fallos: Atributos del software que se relacionan con su habilidad para mantener un nivel especificado de desempeño en casos de fallas de software o de una infracción a su interfaz especificada.
  • Cumplimiento de Fiabilidad: La capacidad del producto software para adherirse a normas, convenciones o legislación relacionadas con la fiabilidad.

Usabilidad

Un conjunto de atributos relacionados con el esfuerzo necesario para su uso, y en la valoración individual de tal uso, por un establecido o implicado conjunto de usuarios.

  • Aprendizaje: Atributos del software que se relacionan al esfuerzo de los usuarios para reconocer el concepto lógico y sus aplicaciones.
  • Comprensión: Atributos del software que se relacionan al esfuerzo de los usuarios para reconocer el concepto lógico y sus aplicaciones.
  • Operatividad: Atributos del software que se relacionan con el esfuerzo de los usuario para la operación y control del software.

Eficiencia

Conjunto de atributos relacionados con la relación entre el nivel de desempeño del software y la cantidad de recursos necesitados bajo condiciones establecidas.

  • Comportamiento en el tiempo: Atributos del software que se relacionan con los tiempos de respuesta y procesamiento y en las tasas de rendimientos en desempeñar su función.
  • Comportamiento de recursos: Usar las cantidades y tipos de recursos adecuados cuando el software lleva a cabo su función bajo condiciones determinadas.

Mantenibilidad

Conjunto de atributos relacionados con la facilidad de extender, modificar o corregir errores en un sistema software.

  • Estabilidad: Atributos del software relacionados con el riesgo de efectos inesperados por modificaciones.
  • Facilidad de análisis: Atributos del software relacionados con el esfuerzo necesario para el diagnóstico de deficiencias o causas de fallos, o identificaciones de partes a modificar.
  • Facilidad de cambio: Atributos del software relacionados con el esfuerzo necesario para la modificación, corrección de falla, o cambio de ambiente.
  • Facilidad de pruebas: Atributos del software relacionados con el esfuerzo necesario para validar el software modificado.

Portabilidad

Conjunto de atributos relacionados con la capacidad de un sistema software para ser transferido desde una plataforma a otra.

  • Capacidad de instalación: Atributos del software relacionados con el esfuerzo necesario para instalar el software en un ambiente especificado.
  • Capacidad de reemplazamiento: Atributos del software relacionados con la oportunidad y esfuerzo de usar el software en lugar de otro software especificado en el ambiente de dicho software especificado.
  • Adaptabilidad: Atributos del software relacionados con la oportunidad para su adaptación a diferentes ambientes especificados sin aplicar otras acciones o medios que los proporcionados para este propósito por el software considerado.
  • Co-Existencia: Coexistir con otro software independiente, en un entorno común, compartiendo recursos comunes.

COBIT

COBIT es un acrónimo para Control Objectives for Information and related Technology (Objetivos de Control para tecnología de la información y relacionada); desarrollada por la Information Systems Audit and Control Association (ISACA) y el IT Governance Institute (ITGI).

¿Qué es COBIT?

COBIT es una metodología aceptada mundialmente para el adecuado control de proyectos de tecnología, los flujos de información y los riesgos que éstas implican.
La metodología COBIT se utiliza para planear, implementar, controlar y evaluar el gobierno sobre TIC; incorporando objetivos de control, directivas de auditoría, medidas de rendimiento y resultados, factores críticos de éxito y modelos de madurez.
Permite a las empresas aumentar su valor TIC y reducir los riesgos asociados a proyectos tecnológicos. Ello a partir de parámetros generalmente aplicables y aceptados, para mejorar las prácticas de planeación, control y seguridad de las Tecnologías de Información. clasificados en cuatro dominios:

  • Planificación y Organización (Plan and Organize)
  • Adquisición e Implantación (Acquire and Implement)
  • Entrega y Soporte (Deliver and Support)
  • Supervisión y Evaluación (Monitor and Evaluate)

Información

La información es un recurso clave para todas las empresas.
La información se crea, usa, retiene, publica y destruye.
La tecnología juega un papel clave en todas esas acciones.
La tecnología penetra todos los aspectos de la vida personal y los negocios.

El Marco COBIT 5

Ayuda a crear valor óptimo de TI por mantener un equilibrio entre la obtención de beneficios y la optimización de los niveles de riesgo y el uso de los recursos.
Permite que la información y la tecnología relacionada sean gobernadas y gestionadas de manera integral para toda la empresa, abarcando de principio a fin el negocio y áreas funcionales, teniendo en cuenta los intereses de las partes interesadas internas y externas.
Los 5 principios de COBIT y sus facilitadores son de carácter genérico y útil para las empresas de todos los tamaños, ya sea comercial, sin fines de lucro o del sector público.

Principios de COBIT 5

  1. Satisfaciendo las necesidades de los interesados.
  2. Cubriendo la empresa de extremo a extremo.
  3. Aplicando un solo marco integrado.
  4. Posibilitando un enfoque holístico.
  5. Separando Gobierno y Gestión.

En Resumen …

COBIT 5 reúne los cinco principios que permiten construir una gobernabilidad efectiva. Un marco de gestión basado en un conjunto holístico de siete facilitadores que optimizan la información y la inversión en tecnología .. .. y el uso de la Tecnología para el beneficio de las partes interesadas.

Los Principios de COBIT 5

Principio 1. Satisfaciendo las necesidades de los interesados

Permiten la definición de prioridades de implantación. Aseguramiento del gobierno de TI basado en objetivos de la empresa y sus riesgos relacionados.
En la práctica; Define objetivos relevantes y tangibles y objetivos a varios niveles de responsabilidad. Filtra la base de conocimiento de COBIT 5, sobre la base de objetivos de la empresa para extraer la orientación pertinente para su inclusión en los proyectos específicos de implantación, mejora o aseguramiento. Identifican y comunican claramente la importancia de los facilitadores (a veces muy operativa) para lograr los objetivos de la empresa.

Principio 2. Cubrir la compañía de forma integral

COBIT 5 se concentra en la organización.
Desde una perspectiva de empresa completa, de extremo a extremo.
Integra los sistemas creando un desarrollo alineado.
COBIT 5 se integra fácilmente con cualquier sistema de Gobierno porque está alineado con las últimas visiones de Gobierno.
Cumple todas las funciones y procesos dentro de la empresa.
COBIT 5 no solo se enfoca en la «función de TI» trata la información y las tecnologías relacionadas como activos que necesitan ser tratados como cualquier otro en la empresa.

Principio 3. Aplicando un unico marco integrado

COBIT 5 está alineado con Marcos y Normas Empresarios,
COSO, COSO ERM, ISO/IEC 9000, ISO/IEC 31000 Tecnología
ISO/IEC 38500, ITIL, ISO/IEC Serie 27000, TOGAF, PMBokb/PRINCE2, CMMI
Permite a las empresas utilizar COBIT 5 como un marco general de Gobierno y Gestión Integrador
Objetivo: Planea capacidades para facilitar el direccionamiento de los usuarios con prácticas y referencias de terceras partes.

Principio 4. Habilitar un enfoque holístico

Facilitadores de COBIT 5: Son factores que individual o colectivamente influyen para que algo funcione.
Impulsados por la cascada de objetivos.
Por ejemplo, los objetivos de alto nivel definen facilitadores que se deben cumplir.
Descriptos por COBIT 5 en siete categorías.