lunes, 14 de mayo de 2012

COMPARACION DE LAS NORMAS DE CALIDAD PARA EL DESARROLLO DE SOFTWARE DE MACCALL, ISO/IEC 9126 E ISO 25000

COMPARACION DE LAS NORMAS DE CALIDAD PARA EL DESARROLLO DE SOFTWARE DE MACCALL, ISO/IEC 9126 E ISO 25000



1.       Resumen.-
En la actualidad  todas las industrias han sobrevivido y se han adaptado a las demandas del público  en general. Esto se debe que las mismas han desarrollado tecnologías que les permiten desarrollar productos de calidad,aumentando la producción, ahorrando tiempo, esfuerzo, , la precisión exigiendo cada vez más reglas que ayuden a la automatización de dichas tareas.
Es muy sierto  la necesidad de automatizar los procesos que generalmente siguen una rutina o procedimiento con la ayuda de Sistemas informáticos, y no solo en productos sino también en la administración de las tareas y en la venta de servicios de cualquier  tipo como: educación,industrias , etc.
En el caso del software podemos hacer una gran diferencia con los demás productos tradicionales de acuerdo a sus características por tanto no es suficiente medir solo el software como producto sino además también es necesario medir el proceso con el cual se desarrolla el software.
En este artículo haremos una comparación de las normas y modelos de calidad como MacCall, ISO/IEC 9126 e ISO 25000.

2.       Modelo de MacCall.-
El modelo de McCall organiza los factores en tres ejes o puntos de vista desde los cuales el usuario puede contemplar la calidad de un producto, basándose en once factores de calidad organizados en torno a los tres ejes y a su vez cada factor se desglosa en otros criterios:
Puntos De Vista O Ejes
Factor
Criterios
OPERACIÓN DEL PRODUCTO
Facilidad de uso
- Facilidad de operación: Atributos del software que determinan la facilidad de operación del software.
- Facilidad de comunicación: Atributos del software que proporcionan entradas y salidas fácilmente asimilables.
- Facilidad de aprendizaje: Atributos del software que facilitan la familiarización inicial del usuario con el software y la transición del modo actual de operación.
- Formación: El grado en que el software ayuda para permitir que nuevos usuarios apliquen el sistema.
Integridad
- Control de accesos. Atributos del software que proporcionan control de acceso al software y los datos que maneja.
- Facilidad de auditoría: Atributos del software que facilitan la auditoría de los accesos al software.
Seguridad: La disponibilidad de mecanismos que controlen o protejan los programas o los datos.
Corrección
- Completitud: Atributos del software que proporcionan la implementación completa de todas las funciones requeridas.
- Consistencia: Atributos del software que proporcionan uniformidad en las técnicas y notaciones de diseño e implementación.
- Trazabilidad o rastreabilidad: Atributos del software que proporcionan una traza desde los requisitos a la implementación con respecto a un entorno operativo concreto.
OPERACIÓN DEL PRODUCTO
Fiabilidad
- Precisión: Atributos del software que proporcionan el grado de precisión requerido en los cálculos y los resultados.
- Consistencia.
Tolerancia a fallos: Atributos del software que posibilitan la continuidad del funcionamiento bajo condiciones no usuales.
- Modularidad: Atributos del software que proporcionan una estructura de módulos altamente independientes.
- Simplicidad: Atributos del software que posibilitan la implementación de funciones de la forma más comprensible posible.
- Exactitud: La precisión de los cálculos y del control.
Eficiencia
Eficiencia en ejecución: Atributos del software que minimizan el tiempo de procesamiento.
- Eficiencia en almacenamiento: Atributos del software que minimizan el espacio de almacenamiento necesario.
REVISION DEL PRODUCTO
Facilidad de mantenimiento
- Modularidad.
- Simplicidad.
- Consistencia.
- Concisión: Atributos del software que posibilitan la implementación de una función con la menor cantidad de códigos posible.
- Auto descripción: Atributos del software que proporcionan explicaciones sobre la implementación de las funciones.
Facilidad de prueba
- Modularidad.
- Simplicidad.
- Auto descripción.
Instrumentación: Atributos del software que posibilitan la observación del comportamiento del software durante su ejecución para facilitar las mediciones del uso o la identificación de errores.
Flexibilidad
- Auto descripción.
- Capacidad de expansión: Atributos del software que posibilitan la expansión del software en cuanto a capacidades funcionales y datos.
- Generalidad: Atributos del software que proporcionan amplitud a las funciones implementadas.
- Modularidad.
Reusabilidad
- Auto descripción.
- Generalidad.
- Modularidad.
-Independencia entre sistema y software: Atributos del software que determinan su dependencia del entorno operativo.
- Independencia del hardware: Atributos del software que determinan su dependencia del hardware.
Interoperabilidad
- Modularidad.
- Compatibilidad de comunicaciones: Atributos del software que posibilitan el uso de protocolos de comunicación e interfaces estándar.
- Compatibilidad de datos: Atributos del software que posibilitan el uso representaciones de datos estándar.
- Estandarizacion en los datos: El uso de estructuras de datos y de tipos estándar a lo largo de todo el programa.
Portabilidad
- Auto descripción.
- Modularidad.
-Independencia entre sistema y software.
- Independencia del hardware.




Empleo del modelo de MacCall
Antes de comenzar a utilizar el modelo de McCall hay que seguir las siguientes pautas:
1.  Se aceptan los factores, criterios y métricas que propone el modelo.
2.  Se aceptan las relaciones entre factores y criterios, y entre criterios y métricas.
3.  Se selecciona un subconjunto de factores de calidad sobre los que aplicar los requisitos de calidad establecidos para el proyecto.
Al comienzo del proyecto habrá que especificar los requisitos de calidad del producto software, para lo cual se seleccionarán los aspectos inherentes a la calidad deseada del producto, teniendo que considerarse para ello:
·         Las características particulares del propio producto que se está diseñando: por ejemplo, su ciclo de vida que si se espera que sea largo implicará un mayor énfasis en la facilidad de mantenimiento y la flexibilidad, o bien si el sistema en desarrollo está destinado a un entorno donde el hardware evoluciona rápidamente implicará como requisito su portabilidad.
·         La relación calidad-precio, que puede evaluarse a través del coste de cada factor de calidad frente al beneficio que proporciona. La siguiente tabla muestra la relación calidad-precio para cada factor considerado:
Factor
Beneficio / coste
Corrección
alto
Fiabilidad
alto
Eficiencia
bajo
Integridad
bajo
Facilidad de uso
medio
Facilidad de mantenimiento
alto
Facilidad de prueba
alto
Flexibilidad
medio
Portabilidad
medio
Reusabilidad
medio
Interoperabilidad
bajo

Norma ISO/IEC 9126.-
ISO 9126-1 propone un modelo de calidad categorizando la calidad de los atributos software en seis características (funcionalidad, fiabilidad, usabilidad, eficiencia, mantenibilidad y portabilidad), las cuales son subdivididas en subcaracterísticas. Las subcaracterísticas pueden ser medidas con métricas internas o externas.

La calidad de uso es definida como “la capacidad del software que posibilita la obtención de objetivos específicos con efectividad, productividad, satisfacción y seguridad”.
                
La norma 9126-2 es un reporte técnico que contiene la terminología relacionada con las medidas de las métricas, el uso de las métricas en el proceso del ciclo de la vida y unos conjuntos básicos introductorios de métricas externas para cada característica y subcaracterística de calidad de software. Este informe proporciona al usuario una guía (o dirección) de métricas para la evaluación de planificación, selección de métricas, diseño de métricas, aplicación de métricas y interpretación de medidas de datos.
Es recomendable que las métricas internas tengan fuerte relación con las métricas externas para que puedan ser usadas para predecir los valores de las métricas externas.
La interpretación de las medidas se puede realizar de tres formas:
  • Ø Medida directa. Una medida directa es una medida de un atributo que no depende de las medidas de otros atributos.
  • Ø  Medida indirecta. Una medida indirecta es derivada de medidas de uno o más atributos.
  • Ø  Indicadores. Son aquellas medidas que pueden ser estimadas o predichas desde otras medidas.
  •  
  • Las métricas tienen unas propiedades deseables que se detallan a continuación:
  • Ø  Fiabilidad.
  • Ø  Indicabilidad.
  • Ø  Disponibilidad.
  • Ø  Corrección.
  • Ø  Imparcialidad.


El conjunto de métricas que contiene está organizadas por características y subcaracterísticas, donde cada métrica contiene:
  • Ø  Nombre.
  • Ø  Propósito.
  • Ø  Método de aplicación.
  • Ø  Medida, fórmula y cómputo de datos.
  • Ø  Interpretación del valor medido.
  • Ø  Tipo de escala.
  • Ø  Tipo de medida.
  • Ø  Fuente de medida.
  • Ø  Referencia a ISO/IEC 12207 SLCP.
  • Ø  Audiencia.


La norma 9126-3 proporciona métricas internas para medir los atributos de las características de calidad definidas en la norma 9126-1. Con las siguientes cualidades:
  • Ø  Se aplican a un producto de software no ejecutable.
  • Ø  Se aplican durante las etapas de desarrollo.
  • Ø  Permiten medir la calidad de los entregables intermedios.
  • Ø  Permiten predecir la calidad del producto final.
  • Ø  Permiten al usuario iniciar acciones correctivas temprano en el ciclo de desarrollo.


El conjunto de métricas están organizadas igualmente por características y subcaracterísticas, donde tiene los mismos campos que la norma ISO 9126-2. Por lo tanto existirá métricas de funcionalidad, fiabilidad, usabilidad, eficiencia, mantenibilidad y portabilidad. Las propiedades deseables son las siguientes: confiable, repetible, reproducible, disponible, indicable, correcta y con significado. Los pasos que se sugieren son los siguientes:
  • Ø  Identificación de los requisitos de calidad.
  • Ø  Especificación de la evaluación.
  • Ø  Diseño de la evaluación.
  • Ø  Ejecución de la evaluación.
  • Ø  Retroalimentación a la organización.



3.       Norma ISO 25000.-
Recientemente ha aparecido una nueva versión de la norma 9126: la norma ISO/IEC 25000. Esta 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.

software con la especificación y evaluación de requisitos de calidad. Establece criterios para la especificación de requisitos de calidad de productos de software, sus métricas y su evaluación. Incluye un modelo de calidad dividido en dos partes para unificar las definiciones de calidad de los clientes con los atributos en el proceso de desarrollo. 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 de software, definiciones matemáticas de las métricas de calidad y una guía práctica para su aplicación. Presenta aplicaciones de métricas para la calidad de software interna, externa y en uso.
Ø  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 de 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/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 de 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.
Ø  La norma ISO 25000 ha sido desarrollada por el subcomité SC 7 (Ingeniería de software y sistemas) del Comité Técnico Conjunto ISO/IEC JTC 1.
(Evaluación del Software), y su objetivo principal es guiar el desarrollo de los productos de
4.       Conclusiones.-

En esta investigacion se puede concluir  que cada uno de estos modelos se concentra en la medición de todos los factores empesando desde su planificación que el software es desarrollado  en producción y durante toda las etapa de  todo el ciclo de su vida del software.



Opinión personal de la elaboración del proyecto

Opinión personal de la elaboración del  proyecto

En mi opinión respecto a la elaboración del proyecto sistema de rueda de negocios CAINCO, logre aprender cómo se realiza un Plan de Desarrollo de Software. Desde mi punto de vista  es un documento preparado para servir como guía de referencia para el análisis y estimación para la elaboración del Sistema.

Es muy importante este documento porque aquí se definen de acuerdo a las características del proyecto, el equipo de desarrollo, sus roles, los bloques de tiempo, las actividades y los artefactos (entregables) que serán generados.
Por tal motivo toda la información otorgada por el docente, trabajo de  investigación y durante la elaboración del proyecto, me servirá de mucho a su vez para presentar y definir una metodología base para el desarrollo de futuros proyectos de software.

ANALISIS COMPARATIVO PRESSMAN E ISO/IEC 29119


Resumen.-

 (Roger Pressman)
Roger Pressman realiza  una reflexión sobre el mito de los roles tanto de los que elaboran el software como constructivos, como de los que elaboran y hacen las pruebas como destructivos, desde un punto de vista mas psicológico.

Por otro lado Roger Pressman en este capitulo de pruebas desmiente el mito de que las pruebas son usadas para desprestigiar a aquellos en los cuales es encotrado error. No somos perfectos cometemos errores, el éxito de una prueba es encontrar error que hasta el momento no se había encontrado.

Pressman define varios principios como operatividad y facilidad de pruebas para guiar las mismas. Tambien podemos ver que en ingeniería de software no se está dando la debida importancia que esta actividad debería tener que es de tener la mayor posibilidad de encontrar una falla.
Se pueden ver los diferentes tipos de realización de pruebas, unos con grafos, otros con pruebas en fin, pruebas como la de caja blanca para probar la estructura del control del programa y el de caja negra para validar los requisitos funsionales sin la necesidad de conocer su funcionamiento interno.
En el capitulo 18 podemos que esta vez Pressman pone mas énfasis en la planificación del proceso de realización de las pruebas. Aquí podemos observar claramente la preocupación por probar el funcionamiento interno del programa como lo hace las prueba de unida y de integridad.
Este escenario tendrá que contemplar todos los pasos necesarios para conseguir el fin mayor de la prueba que es de encontrar y repara los defectos de forma ordenada u efectiva.

El objetivo de ISO/IEC 29119.-  
 Es mantener una norma definitiva de  software que prueba y se  define del siguiente aspecto: vocabulario, procesos, documentación, técnicas y un modelo de valoración de proceso para software que prueba eso puede usarse dentro de cualquier software desarrollo vida ciclo. 
ISO/IEC 29119 comprende 5 partes: 
  Parta 1 - los Conceptos & el Vocabulario 
El objetivo de parte 1 de la norma es dar una apreciación global de la norma y de software general que prueba conceptos y para proporcionar un vocabulario de software que prueba términos que cubren el software entero que prueba ciclo de vida. Un proyecto del funcionamiento de parte 1 está actualmente bajo desarrollo.

La norma cubrirá todas las pruebas de documentación  dentro del l software por todo el testeo del  ciclo de vida. Esto incluirá plantillas que son a la medida y estas están cubiertas por  todas las fases del proceso de la comprobación, incluyendo:

 

Parta 2 – El  Proceso de la Prueba 

De la norma define a un modelo de proceso de comprobación genérico que puede usarse dentro de cualquier desarrollo del software y el ciclo de vida probando. Este proceso será basado en  cuatro-capa que prueba el soporte del proceso: 

Part 3 – Test  Documentacion

Parta 4 - las Técnicas de la Prueba 
Parta 4 de los tipos normales una variedad de software dinámico común que prueba técnicas: 
Técnicas Probando especificación-basado: 
- El equivalencia Dividiendo 
- El Método de Arbol de clasificación 
- El Análisis de Valor de límite 
- La Comprobación de la Transición estatal 
- La Comprobación de Mesa de decisión 
- El causa-efecto Graphing 
- La Comprobación de la sintaxis 
- Las Combinatorial Prueba Técnicas.

ISO/IEC 29119 Test Process Model


Norma ISO/IEC 29119.-
El estándar de calidad 29119 provee una guía para el testeo que cubre todos los aspectos del ciclo de vida del software.
<!--[if !supportLists]-->-                     <!--[endif]-->Propone una lista de  definiciones, procesos, procedimientos y técnicas de pruebas de software.
<!--[if !supportLists]-->-                     <!--[endif]-->Actualmente tiene la representación de más de 18 países y está siendo evaluada la unión mundial de                     profesionales de pruebas de software.
<!--[if !supportLists]-->-          <!--[endif]--> 
      La estructura 29119 constade las siguiente partes:
<!--[if !supportLists]-->-                       <!--[endif]-->Conceptos y vocabularios
<!--[if !supportLists]-->-                       <!--[endif]-->Procesos y pruebas
<!--[if !supportLists]-->-                       <!--[endif]-->Documentación de pruebas
<!--[if !supportLists]-->-                      <!--[endif]-->Técnicas de pruebas


Los modelos de procesos como están formados por 3 procesos:
<!--[if !supportLists]-->-          <!--[endif]-->Procesos de la organización
<!--[if !supportLists]-->-          <!--[endif]-->Procesos de gestión
<!--[if !supportLists]-->-          <!--[endif]-->Procesos fundamentales
En un nivel superior se encuentran los procesos de la organización que son mas bien genéricos y no asi específicos a un determinado proyecto de pruebas. Pero ya tiene definidos las políticas y estrategias aplicables a toda la dirección o a una línea de  proyectos.
Para los proyectos de pruebas se definen los procesos de gestión y fundamentales así como los procesos genéricos para permitir flexibilidad y adaptación a diferentes contextos.

Conclusión.-

Se puede llegar a la conclusion que efectivamente ISO 29119 cubre absolutamente todos los aspectos en la realización de las pruebas desde los procesos que la compone hasta el flujo y orden en que se realizan tanto a nivel macro como específico.

Esta ISO 29119 es potencialmente adecuado para grandes proyectos.
Pressman hace mas énfasis  a la forma y los tipos en los que se pueden realizar las pruebas tanto en la forma de su desenvolvimiento como conocer  a detalle el funcionamiento del programa.