miércoles, 27 de mayo de 2015

ADMINISTRACIÓN DE LA CALIDAD



Los factores de la calidad del software




Los factores que determinan la calidad del software se clasifican en tres grupos:

-Operaciones del producto: características operativas
  • Corrección: Grado en que un programa satisface sus especificación y logra los objetivos marcados por el usuario. (¿Hace lo que se le pide?).
  • Fiabilidad: Grado en que se puede esperar que un programa lleve a cabo las funciones esperadas con la precisión requerida. (¿Lo hace de forma fiable todo el tiempo?).
  • Eficiencia: Cantidad de recursos de computadoras y de código requeridos por el programa para realizar sus funciones con los tiempos de respuesta adecuados. (¿Qué recursos hardware y software necesito?).
  • Integridad: Grado en que puede controlarse el acceso al software o a los datos por usuarios no autorizados. (¿Puedo controlar su uso?).
  • Facilidad de uso: Esfuerzo necesario para aprender, utilizar, preparar las entradas e interpretar las salidas de un programa. (¿Es fácil y cómodo de manejar?).

-Revisión del producto: capacidad para soportar cambios.
  • Facilidad de mantenimiento: Esfuerzo requerido para localizar y arreglar un error en un programa. (¿Puedo localizar los fallos?).
  • Flexibilidad: Esfuerzo requerido para modificar un programa. (¿Puedo añadir nuevas opciones?).
  • Facilidad de prueba: Esfuerzo requerido para probar un programa de forma que se asegure que realiza la función requerida. (¿Puedo probar todas las opciones?).

-Transición del producto: adaptabilidad a nuevos entornos.
  • Potabilidad: Esfuerzo requerido para transferir un programa desde un entorno HW y/o SW a otro. (¿Podré usarlo en otra máquina?).
  • Reusabilidad: Grado en que un programa o componente SW se puede reutilizar en otras aplicaciones. (¿Podré utilizar alguna parte del software en otra aplicación?).
  • Interoperatividad: Esfuerzo requerido para acoplar un sistema con otras aplicaciones o sistemas. (¿Podrá comunicarse con otras aplicaciones o sistemas informáticos?).

Métricas de calidad del software 


Las Métricas de Calidad proporcionan una indicación de cómo se ajusta el software, a los requerimientos implícitos y explícitos del cliente.

El objetivo principal de la ingeniería del software es producir un producto de alta calidad. Para lograr este objetivo, los ingenieros del software deben utilizar mediciones que evalúen la calidad del análisis y los modelos de desafío, el código fuente, y los casos de prueba que se han creado al aplicar la ingeniería del software. Para lograr esta evaluación de la calidad en tiempo real, el ingeniero debe utilizar medidas técnicas que evalúan la calidad con objetividad, no con subjetividad.
El primer objetivo del equipo de proyecto es medir errores y defectos. Las métricas que provienen de estas medidas proporcionan una indicación de la efectividad de las actividades de control y de la garantía de calidad.



Medida de la calidad


La corrección, facilidad de mantenimiento, integridad, y facilidad de uso son medidas de calidad que proporcionan indicadores útiles para el equipo del proyecto.

•Corrección: La corrección es el grado en el que el software lleva a cabo su función requerida.

•Facilidad de mantenimiento: Es la facilidad con la que se puede corregir un programa si se encuentra un error, se puede adaptar si su entono cambia, o mejorar si el cliente desea un carnio de requisitos. Esta actividad cuenta con más esfuerzo que cualquier otra actividad de ingeniería del software.

•Integridad: Mide la capacidad de un sistema para resistir ataques (tanto accidentales como intencionados) contra su seguridad. El ataque se puede realizar en cualquiera de los tres componentes del software:programas, datos y documentos.

Metricas-300x190.jpg
Para medir la integridad, se tienen que definir dos atributos adicionales: amenaza y seguridad. Amenaza es la probabilidad de que un ataque de un tipo determinado ocurra en un tiempo determinado. La seguridad es la probabilidad de que se pueda repeler el ataque de un tipo determinado. La integridad del sistema se puede definir corno: Integridad = C [(l - amenaza) x (1 - seguridad)] Donde se suman la amenaza y la seguridad para cada tipo de ataque.

•Facilidad de uso: La facilidad de uso es un intento de cuantificar lo amigable que puede ser el programa con el usuario. Se puede medir en función de cuatro características: Habilidad intelectual y/o física requerida para aprender el sistema. El tiempo requerido para llegar a ser moderadamente eficiente en el uso del sistema. Aumento neto en productividad, medida cuando alguien utiliza el sistema moderadamente y eficientemente. Valoración subjetiva de la disposición de los usuarios hacia el sistema, a veces obtenida mediante un cuestionario.

Aseguramiento de la calidad 




Sridharan (Sridharan, 2000) indica que mientras el software que se está desarrollado reúne los requerimientos y su desempeño es el esperado,es preciso que se supervisen las actividades de desarrollo del software y su rendimiento, en distintas oportunidades durante cada fase del ciclo de vida. Este es el papel del aseguramiento de la calidad del
software.
􀂆
Hay tres (3) aspectos muy importantes con relación al aseguramiento de la calidad del software: (Wiegers, 1990)
  • La calidad no se puede probar, se construye.
  • 􀂄El aseguramiento de la calidad del software no es una tarea que se realiza en una fase particular del ciclo de vida de desarrollo.
  • 􀂄Las actividades asociadas con el aseguramiento de la calidad del software deben ser realizadas por personas que no estén directamente involucradas en el esfuerzo de desarrollo.

El aseguramiento de la calidad del software comprende una gran variedad de tareas asociadas:

  • 􀂄 Preparar u plan de aseguramiento de la calidad del software para un proyecto.
  • 􀂄 Participar en el desarrollo del proceso de descripción del proyecto de software.
  • 􀂄 Revisar las actividades de ingeniería del software para verificar su consistencia con el proceso de software definido.
  • 􀂄Auditar el producto de software para verificar el cumplimiento del proceso de software definido
  • 􀂄Asegurar que las divergencias en el trabajo de software sean documentadas de acuerdo a los estándares definidos.
  • 􀂄Almacenar cualquier inconformidad y reportarla a la gerencia media.





Documentación
El sistema de gestión de la calidad tiene su soporte en el sistema documental, por lo que éste tiene una importancia vital en el logro de la calidad, que no es más que la satisfacción de las necesidades de los clientes.

La documentación es el soporte del sistema de gestión de la calidad, pues en ella se plasman no sólo las formas de operar de la organización sino toda la información que permite el desarrollo de todos los procesos y la toma de decisiones.

La Documentación contribuye a:


a) Lograr la conformidad con los requisitos del cliente y la mejora de la calidad. 
b) Proveer la formación apropiada. 
c) La repetibilidad y la trazabilidad. 
d) Proporcionar evidencias objetivas. 
e) Evaluar la eficacia y la adecuación continua del sistema de gestión de la calidad.



Evaluación de la calidad del producto



-Documentación: La documentación proporciona evidencia objetiva sobre el sistema. La documentación tiene un papel esencial para el auditor del sistema de gestión de calidad. La documentación explica cual es la política de la institución, define las autoridades, establece los procedimientos operativos los cuales ayudan a los usuarios a cumplir sus actividades y objetivos. Requisitos de la documentación:


La documentación de un sistema de calidad debe incluir los siguientes documentos:
  • Declaraciones documentadas de una política de la calidad y de objetivos de la calidad.
  • Un manual de calidad.
  • Procedimientos documentados y registros requeridos.
  • Los documentos que la organización determina como necesarios para asegurarse de la eficaz planificación, operación y control en sus procesos.
  • Manual de calidad que incluya el alcance del sistema de gestión de calidad y una descripción de la interacción entre los procesos del sistema de gestión de la calidad, entre otros.
-Pruebas de aceptación: Estas pruebas las realiza el cliente. Son básicamente pruebas funcionales, sobre el sistema completo, y buscan una cobertura de la especificación de requisitos y del manual del usuario. Estas pruebas no se realizan durante el desarrollo, pues sería impresentable al cliente; sino que se realizan sobre el producto terminado e integrado o pudiera ser una versión del producto o una interacción funcionad pactada previamente con el cliente.

Una prueba de aceptación puede ir desde un informal caso de prueba hasta la ejecución sistemática de una serie de pruebas bien planificadas. De hecho, las pruebas de aceptación pueden tener lugar a lo largo de semanas o meses, descubriendo así errores latentes o escondidos que pueden ir degradando el funcionamiento del sistema. Estas pruebas son muy importantes, ya que definen el paso nuevas fases del proyecto como el despliegue y mantenimiento.




Se emplean dos técnicas para las pruebas de aceptación:

* La prueba alfa.

Se lleva a cabo, por un cliente, en el lugar de desarrollo. Se usa el software de forma natural con el desarrollador como observador del usuario. Las pruebas alfa se llevan a cabo en un entorno controlado. Para que tengan validez, se debe primero crear un ambiente con las mismas condiciones que se encontrarán en las instalaciones del cliente. Una vez logrado esto, se procede a realizar las pruebas y a documentar los resultados. 

 *La prueba beta.

Se lleva a cabo por los usuarios finales del software en los lugares de trabajo de los clientes. A diferencia de la prueba alfa, el desarrollador no esta presente normalmente. Así, la prueba beta es una aplicación "en vivo" del software en un entorno que no puede ser controlado por el desarrollador. El cliente registra todos los problemas (reales o imaginarios) que encuentra durante la prueba beta e informa a intervalos regulares al desarrollador.

Como resultado de los problemas informados durante la prueba beta, el desarrollador del software lleva a cabo modificaciones y así prepara una versión del producto de software para toda la clase de clientes.



-Operación y mantenimiento: El mantenimiento se define como la combinación de actividades mediante las cuales un equipo o un sistema se mantienen en, o se restablece a, un estado en el que puede realizar las funciones designadas. Es un factor importante en la calidad de los productos y puede utilizarse como una estrategia para una competencia exitosa. Las inconsistencias en la operación del equipo de producción dan por resultado una variabilidad excesiva en el producto y, en consecuencia, ocasionan una producción defectuosa. Para producir con un alto nivel de calidad, el equipo de producción debe operar dentro de las especificaciones, las cuales pueden alcanzarse mediante acciones oportunas de mantenimiento.


Modelos de calidad 


-MoProSoft: Modelo de Procesos para la Industria del Software. Modelo para la mejora y evaluación de los procesos de desarrollo y mantenimiento de sistemas y productos de software. Desarrollado por la Asociación Mexicana para la Calidad en Ingeniería de Software.


Características de MoProSoft:
  • Es específico para el desarrollo y mantenimiento de software.
  • Es sencillo de entender y adoptar.
  • Facilita el cumplimiento de los requisitos de otros modelos como ISO 9000:2000, CMM y CMMI.
  • Se enfoca a procesos.
  • Se le considera práctico en su aplicación, principalmente en organizaciones pequeñas, con bajos niveles de madurez.
  • Comprende un documento de menos de 200 páginas que, al compararlo con otros modelos y estándares, lo hace bastante práctico.
  • Resulta acorde con la estructura de las organizaciones mexicanas de la industria de software.
  • Está orientado a mejorar los procesos, para contribuir a los objetivos de negocio, y no simplemente ser un marco de referencia o certificación.
  • Tiene un bajo costo, tanto para su adopción como para su evaluación.

¿Para qué sirve MoProSoft?
  • Mejora la calidad del software producido por la empresa que adopta el modelo.
  • Eleva la capacidad de las organizaciones para ofrecer servicios con calidad y alcanzar niveles internacionales de competitividad.
  • Integra todos los procesos de la organización y mantiene la alineación con los objetivos estratégicos.
  • Inicia el camino a la adopción de los modelos ISO 9000 o CMMI.
  • Sirve para implantar un programa de mejora continua.
  • Permite reconocer a las organizaciones mexicanas por su nivel de madurez de procesos.
  • Facilita la selección de proveedores.
  • Permite obtener acceso a las prácticas de ingeniería de software de clase mundial.



MoProSoft posee tres categorías:

Categoría
Proceso
Propósito
Alta Dirección
Gestión de Negocio
Establecer la razón de ser de la organización, sus objetivos y las condiciones para lograrlos, para lo cual es necesario considerar las necesidades de los clientes, así como evaluar los resultados para poder proponer cambios que permitan la mejora continua. Adicionalmente habilita a la organización para responder a un ambiente de cambio y a sus miembros para trabajar en función de los objetivos establecidos.
Gestión
Gestión de Procesos
Establecer los procesos de la organización, en función de los procesos requeridos identificados en el Plan Estratégico. Así como definir, planificar e implantar las actividades de mejora en los mismos.
Gestión
Gestión de Proyectos
Asegurar que los proyectos contribuyan al cumplimiento de los objetivos y estrategias de la organización.
Gestión
Gestión de Recursos
Conseguir y dotar a la organización de los recursos humanos, infraestructura, ambiente de trabajo y proveedores, así como crear y mantener la Base de Conocimiento de la organización. La finalidad es apoyar el cumplimiento de los objetivos del Plan Estratégico de la organización. Las actividades de este proceso se apoyan en tres subprocesos:
- Recursos humanos y ambiente de trabajo.
- Bienes, servicios e infraestructura.
- Conocimiento de la organización.
Operación
Administración de Proyectos Específicos
Establecer y llevar a cabo sistemáticamente las actividades que permitan cumplir con los objetivos de un proyecto en tiempo y costo esperados.
OperaciónDesarrollo y Mantenimiento de SoftwareRealización sistemática de las actividades de análisis, diseño, construcción, integración y pruebas de productos de software nuevos o modificados cumpliendo con los requerimientos especificados.




-SW-CMM: Provee a las organizaciones de software de una guía sobre cómo controlar el desarrollo y mantenimiento de sus procesos de software, y cómo evolucionar hacia una cultura de ingeniería de software y administración excelente.

Fue diseñado para guiar a las organizaciones en la selección de estrategias de mejoramiento delos procesos, determinando la madurez del proceso actual e identificando los problemas más críticos para la calidad y el mejoramiento del proceso.









El CMM está estructurado en cinco (5) niveles de madurez que proporcionan las bases para el mejoramiento continuo del proceso. Estos niveles definen una escala ordinal para medir la madurez de un proceso y evaluar su capacidad.

La “madurez de un proceso de software” es el grado para el cual un proceso específico está definido, manejado, medido, controlado y es efectivo.

La “capacidad del proceso de software” describe el rango de resultados esperados que se pueden alcanzar siguiendo tal proceso.


Niveles de madurez definidos en SW-CMM



Nivel 1: Inicial

Los resultados de calidad obtenidos son consecuencia de las personas y de las herramientas que emplean. No de los procesos, porque o no los hay o no se emplean.

Nivel 2: Repetible

Se considera un Nivel 2 de madurez cuando se llevan a cabo prácticas básicas de gestión de proyectos, de gestión de requisitos, control de versiones y de los trabajos realizados por subcontratistas. Los equipos de los proyectos pueden aprovechar las prácticas realizadas para aplicarlas en nuevos proyectos. Se le llama Repetible ya que se pueden repetir éxitos anteriores aplicando la disciplina necesaria.

Nivel 3: Definido

Los procesos comunes para desarrollo y mantenimiento del software están documentados de manera suficiente en una biblioteca accesible a los equipos de desarrollo. Las personas han recibido la formación necesaria para comprender los procesos. Para cada proyecto en particular, se adaptan los procesos estándar según las necesidades del caso, es consistente la base de procesos.

Nivel 4: Gestionado

La organización mide la calidad del producto y del proceso de forma cuantitativa con base a métricas establecidas

La capacidad de los procesos empleados es previsible, y el sistema de medición permite detectar si las variaciones de capacidad exceden los rangos aceptables para adoptar medidas correctivas.

Nivel 5: Optimizado

La mejora continua de los procesos afecta a toda la organización, que cuenta con medios para identificar las debilidades y reforzar la prevención de defectos. Se analizan de forma sistemática datos relativos a la eficacia de los procesos de software para analizar el coste y el beneficio de las adaptaciones y las mejoras.

Se analizan los defectos de los proyectos para determinar las causas, y su mapeado sobre los procesos. Es el nivel más alto de CMM por el momento.

-ISO: son una serie de normas establecidas por la Organización Internacional para la Estandarización o ISO. El objetivo general de estas normas es estandarizar o normalizar el uso de información para que signifique lo mismo en todas partes del mundo.


Por su parte, ISO 9000 es una familia de normas que sirve como guía a las organizaciones —de todo tipo y tamaño— en la implantación y operación de Sistemas de Gestión de la Calidad. ISO 9000 en su versión 2000 tiene un fuerte enfoque en los procesos y en la satisfacción del cliente; además de que es certificable en México. Sin embargo, por su generalidad, es abstracto y difícil de adecuar al desarrollo de software.


No hay comentarios:

Publicar un comentario