sábado, 24 de enero de 2015

Sistemas de calidad en T.I

Universidad Tecnológica de Aguascalientes.



Presentan los alumnos:
Jorge Luis Montiel Flores
Alejandra Saraí Cardona Hernández
María Fernanda Ruvalcaba Reyes

Con ayuda del profesor:

Ricardo Israel Roque Covarrubias.

Aguascalientes, AGS.                                                                                     24/01/2015
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


Introducción

Antes que nada quisiéramos agradecer por su visita a nuestro blog, esperando que la información que se presente a continuación sea de mucha ayuda o que simplemente sea de su agrado.

La redacción que a continuación se mostrara tiene como objetivo explicar de manera resumida pero entendible las normas y estándares que son más comunes y conocidas cuando hablamos de proyectos de tecnologías de la Información, y para esto contestaremos dos preguntas claves para poder entender mejor la información del blog: 

Que es un estándar?
Un estándar son normas y protocolos internacionales que deben cumplir los productos de cualquier tipo y en nuestro caso productos de software, para que se puedan distribuir y utilizar por el cliente final, además estas son necesarias para poder estandarizarse y certificarse.

Que es una norma?
Una norma está compuesta de estándares y guías que están relacionadas con sistemas de gestión y de herramientas específicas como los métodos de auditoría (el proceso de verificar que los sistemas de gestión cumplen con el estándar). 

Actualmente, la calidad del software es una algo fundamental para las organizaciones enfocadas a la rama de tecnologías de la comunicación. Todo proyecto tiene como objetivo producir software de la mejor calidad posible, que cumpla con las expectativas de los usuarios y que aún mejor "que las supere". 

Una característica del software es que independientemente de la tecnología que se utilice para el desarrollo los procesos del ciclo de vida son similares.
La mejora en el ciclo de vida del software, es algo que se ha estudiado a lo largo del tiempo y ha desarrollado metodologías y normativas para estandarizar las buenas prácticas, es por eso que hoy explicaremos algunas de las normas y estándares en la calidad de software y las calificaremos de acuerdo a su aplicación.

Normas y estándares que aplican en la calidad de procesos:
  • El estándar ISO/IEC 12207 el cual se enfoca en los procesos del ciclo de vida del software, tales como procesos principales, procesos de soporte y procesos de la organización los cuales se explicaran más adelante.
  • Incluiremos la norma ISO 15504 que tiene como objetivo mejorar la evaluación de los procesos de desarrollo, el mantenimiento de sistemas de información y  los productos de software.
  • La integración de modelos de madurez de capacidades y mejor conocida por sus siglas CMMI, este modelo se enfoca en la evaluación de procesos para el desarrollo, mantenimiento y operación de sistemas de software. Este modelo es muy parecido a la norma ISO 15504 hablando de  la evaluación y mejora de la calidad software, así que también  daremos nuestra opinión a  la pregunta ¿CMMI o ISO 15504?
  • MOPROSOFT el modelo para la mejora y evaluación de los procesos de desarrollo y mantenimiento de sistemas y productos de software, además, cabe destacar que este modelo es diseñado en México como objetivo de elevar el nivel de madurez de las pequeñas y medianas empresas mexicanas dedicadas al desarrollo y mantenimiento de software, este modelo es muy interesante y se explicara a fondo como funciona y donde se crea específicamente.


Normas y estándares que se aplican en la calidad del producto:

  • ISO 9126, el cual es un estándar internacional para la evaluación de la calidad del software. Este esta reemplazado por el proyecto SQuaRE, ISO 25000:2005, el cual sigue los mismos conceptos que el estándar del cual estamos hablando.
  • ISO/IEC 14598, establece un marco de trabajo para evaluar la calidad de los productos de software, además, proporciona métricas y requisitos para los procesos de evaluación de los mismos. En particular, es utilizada para aplicar los conceptos descritos en la norma ISO/IEC 9126 la cual mencionamos anteriormente y de la misma forma que ISO 9126, esta norma también es remplazada por el proyecto SQuaRE, ISO 25000.
  • ISO/IEC 25000 SQuaRE el cual tiene como objetivo general el organizar, enriquecer y unificar las series que cubren dos procesos principales como la especificación de requisitos de calidad y evaluación de la calidad del software y como lo mencionamos anteriormente este estándar remplaza al estándar ISO 9126 y al estándar ISO 14598, así que hablaremos de cuáles son las ventajas y mejoras de este estándar.


Normas y estándares que aplican en la calidad de la gestión y servicios:

  • ISO 20000, este  estándar es reconocido internacionalmente en gestión de servicios de tecnologías de la información. Es aplicable a cualquier organización, pequeña o grande, en cualquier sector o parte del mundo donde confían en los servicios de TI.
Para poder entender mejor las clasificaciones de acuerdo a su aplicación, veamos la siguiente imagen:






Y finalmente concluiremos el blog hablando de PSP y TSP que a diferencia de los anteriores son modelos enfocados a los ingenieros de sistemas y a marcos de trabajo personal en el caso de PSP y  marcos de trabajo en equipo en el caso de TSP.


Así que dicho esto comencemos a explicar las características de cada uno de los estándares y de las normas que fueron mencionadas.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

ISO/IEC 12207

ISO/IEC 20207 (Information Technology / Software Life Cycle Processes) es el estándar para los procesos de ciclo de vida del software. Fue desarrollado para aquellas personas que estuvieran interesados en adquirir un software, así como para proveedores y desarrolladores. El estándar indica una serie de procesos desde que se reúnen todos los requisitos hasta el día de su entrega.

El estándar se compone de 17 procesos lo cuales son agrupados en 3 categorías, las principales, de soporte y de organización, las cuales llevan agrupadas una serie de actividades que se pueden llevar a cabo durante el ciclo de vida del software en 5 procesos principales, 8 procesos de soporte y 4 procesos de organización y cada actividad se divide a su vez en un conjunto de tareas.

Para entender mejor lo anterior, observemos la siguiente imagen:


El estándar ISO 12207 Pretende que las organizaciones usen estos 17 procesos dentro de sus proyectos particulares. Ahora expliquemos un poco cada uno de los procesos.

Dentro de los procesos principales como se muestra en la imagen están:
  • La adquisición, proceso donde se definen las actividades del adquiriente, la organización que adquiere un producto, servicio o un sistema de software.
  • Suministro, proceso en el cual se definen las actividades del suministrador, la organización que provee un producto, servicio o sistema, este proceso es un complemento de la adquisición.
  • El Desarrollo, este proceso está dividido en 13 actividades tales como: Implementación, análisis de requerimientos del software, diseño de arquitectura del software, diseño detallado del software, codificación del software, pruebas, integración del software, pruebas de calidad, instalación del software y por ultimo aceptación del software.
  • La Operación es el proceso en el cual se definen las actividades del operador, la organización que provee el servicio de operar el sistema de cómputo en el ambiente de usuarios.
  • Y el último de los procesos principales, el mantenimiento, en el cual se definen las actividades de la organización que provee un servicio de mantener el software , conservándolo actualizado y utilizable. En este caso puede ser manteniendo correctivo, perfectivo, preventivo y adaptivo.
Dentro de los procesos de soporte como se muestra en la imagen están:
  • El proceso de documentación, este proceso es donde se definen las actividades necesarias para registrar toda la información que se generó por los procesos del ciclo de vida,
  • Gestión de la configuración, este proceso es encargado de juntar todas las actividades, de llevar el control, de estadísticas y de la evaluación de las configuraciones.
  • El proceso de aseguramiento de la calidad, es el encargado de asegurarse de que los productos de software, si satisfacen los requerimientos especificados por el cliente.
  • La verificación es el proceso donde se verifican los productos y servicios del software
  • La validación es el proceso donde se validan los productos y servicios del software
  • Revisiones conjuntas este proceso lleva  a cabo actividades como la revisión tanto técnicas como administrativas, para que de este modo sea una revisión colectiva, es decir que por una parte se evalué los productos producidos y por otra parte se evalúen las actividades realizadas.
  • Auditorias, la parte donde se determina el cumplimiento de los requerimientos, planes y contratos, este proceso puede ser usado por cualquiera de las dos partes.
  • Y por último dentro de los procesos de soporte esta la resolución de problemas aquí se analizan y se resuelven todos los problemas, sin importar su dificultad u origen, los problemas  son descubiertos durante la ejecución del desarrollo, operación, mantenimiento, etc.
Dentro de los procesos organizativos como se muestra en la imagen están:
  • La intención de la gestión es la de proporcionar administración a todos los demás procesos del proyecto, incluyendo administración del producto y administración del proyecto.
  • La Infraestructura establece y mantiene el hardware, software, herramientas, técnicas y estándares, que se refieren a la ejecución de otros procesos.
  • Las mejoras es el proceso que establece medir, controla y mejorar los procesos de su ciclo de vida.
  • Los recursos humanos, se define como las actividades para proveer personal adecuado.
Este estándar se relaciona con normas de calidad, especialmente con la “ISO 9001: Sistemas de calidad, modelos para la garantía de calidad, desarrollo, producción, instalación y prestación de servicios”.

También tiene mucha relación con la segunda parte de la norma “ISO/IEC 15504: Tecnologías de la información, evaluación de los procesos de software”.  
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

ISO 15504

El ISO/IEC 15504, también conocido como Software Process Improvement Capability Determination, abreviado SPICE, en español, La ISO 15504 es una norma internacional para establecer y mejorar la capacidad y madurez de los procesos de las organizaciones. la ISO 15504, proporciona los principios requeridos para realizar una evaluación de la implantación de un modelo de procesos en una organización.

Es basada en dos dimensiones la de proceso y de capacidad de proceso. Define que todo modelo de evaluación de procesos debe definir:

- la dimensión de procesos: el modelo de procesos de referencia.
- la dimensión de la capacidad: niveles de capacidad y atributos de los procesos.

Los niveles de capacidad para todo modelo de evaluación de procesos pueden tener desde el 0 y al menos hasta el nivel 1 de los siguientes niveles de capacidad estándar:
·         Nivel 0: Incompleto
·         Nivel 1: Realizado
·         Nivel 2: Gestionado
·         Nivel 3: Establecido
·         Nivel 4: Predecible
·         Nivel 5: En optimización

Para cada nivel existen unos atributos de procesos estándar que ayudan a evaluar los niveles de capacidad.


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

CMMI

Integración de modelos de madurez de capacidades o Capability maturity model integration (CMMI) es un modelo que tiene como objetivo la mejora y evaluación de procesos para el desarrollo, mantenimiento y operación de sistemas de software. Agrupa las mejores practicas relacionadas a las actividades de desarrollo y mantenimiento de sistemas, asociado a todo el ciclo de vida de los productos y sistemas.

CMMI se ha estado convirtiendo poco a poco en un estándar que puede ser usado para promocionar la capacidad de desarrollar software de alta calidad, o que puede dar una ventaja competitiva si se desea participar en proyectos difíciles y con gran riesgo, es por esto que tiene un costo alto pero muy buenas ganancias.





CMMI cuenta con 25 áreas de proceso, que son un conjunto de prácticas que se deben realizar en forma colectiva con el objetivo de lograr una cierta meta, y que están agrupadas en 4 niveles de madurez. 
El nivel 2 (gestionado) cuenta con 7 áreas de proceso,  el nivel 3 (Establecida) con 14 adicionales, el nivel 4 (Predecible) con 2 adicionales y finalmente el nivel 5 (Optimizado) con 2 más.
Para entender con más claridad lo anterior, revisemos la siguiente imagen:


Este modelo es muy parecido a la norma ISO 15504 hablando de  la evaluación y mejora de la calidad software, entonces nos preguntamos: 

¿CMMI o ISO 15504?
Actualmente, las empresas que desarrollan software  y quieran entrar en el mercado público, primero quieren verse como una organización que produce productos de calidad, y para esto deben estar certificadas en algún nivel de madurez de ISO 15504 o CMMI, y la pregunta que siempre se han de hacer es ¿qué deberíamos implantar, CMMI o ISO 15504?
Pues la respuesta depende de la necesidad de la empresa, porque aunque sean muy parecidas existen características que las hacen diferentes acordes a las necesidades. 
CMMI e ISO 15504, tienen, prácticamente, la misma antigüedad, se desarrollaron a mediados de los 90, pero si queremos ver un punto en contra de la certificación en CMMI es que es superior en precio a la certificación en ISO 15504 SPICE, sin embargo en CMMI hay mucha más información, es más conocido y popular, existe más documentación, guías, herramientas, presentaciones y traducciones. La ISO 15504 aún está en Inglés y son documentos de pago y en CMMI la documentación es gratuita.
Seguro que hay más puntos a tratar en la decisión de si CMMI o ISO 15504 , pero estos son los puntos de vista que consideramos por lo pronto.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Moprosoft

Ahora empezamos hablar de Moprosoft, el modelo mexicano  para la mejora y evaluación de los procesos de desarrollo y mantenimiento de sistemas y productos de software
Moprosoft nace gracias a que en México se considero que los modelos CMMI e ISO 15504 no resultaban apropiados para empresas pequeñas y medianas de desarrollo y mantenimiento de software, porque ninguno de los estándares o modelos cumplía con los requisitos expresados por la industria nacional Mexicana y se decidió realizar la elaboración de un modelo adecuado para las características de las empresas mexicanas, que se basaría en los modelos evaluados, esto desarrollado por la Secretaría de Economía  en colaboración con la Universidad Nacional Autónoma de México (UNAM).
Moprosoft cuenta con tres categorías en los procesos, que son, alta dirección, gerencia y operación.
Veamos en la siguiente imagen el propósito de los procesos de MoProSoft:


La siguiente imagen muestra las categorías y sus respectivos procesos y una breve descripción del punto.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

ISO 9126

Esta norma está orientada a la calidad del producto de software donde la calidad del producto de software es el nivel donde un cliente percibe que el software cumple con sus expectativas. Esto implica evaluar el producto final y los procesos a los ámbitos estandarizados conocidos como modelos de referencia.
Estos modelos de referencia de calidad de producto son las norma ISO 9126, que trata del modelo del producto de software y la norma ISO 14598 que trata sobre la calidad de la evaluación del producto de software.
La norma 9126 establece 10 características, son 6 las que son comunes a las vistas interna y externa y 4 las que son propias de la vista en uso. 

A continuación se muestra el caso del modelo de calidad para métricas internas y métricas externas:



A continuación se muestra el caso del modelo de calidad para métricas de uso:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

ISO 14598

Esta norma considera las mediciones en el proceso empleado para diseñar, desarrollar, probar y controlar el producto; logra que el desarrollo y la adquisición del software cumplan las expectativas y necesidades del usuario, también define el proceso de evaluación y provee los requerimientos y las vías que conducen a evaluaciones de calidad. La norma 14598 está integrada por  6 partes que describen  los requisitos del proceso de evaluación en 3 situaciones para desarrolladores, compradores y evaluadores.



- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

ISO 25000

Esta norma tiene la funcionalidad de evaluar la calidad del producto software,  es la norma que se dio como resultado de las normas ISO 9126 que describe el modelo de calidad del producto de software y la ISO 14598 que describe los procesos de evaluación para productos de software, la norma ISO 25000, está compuesta por una serie de normas las cuales son:



La serie ISO 25000 denominada y/o conocida también como SQuaRE (Software product Quality Requirements and Evaluation) tiene como tarea coordinar y enriquecer los estándares actuales sobre especificación de requisitos de calidad del software, su medida y evaluación. Además de tener el objetivo de organizar, enriquecer y unificar las normas ISO 1926 e ISO 14598. 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

ISO 20000

La norma ISO 20000 esta específicamente realizada para la gestión de los servicios de TI, esta norma describe los procesos que prestan servicios de TI a las organizaciones y a sus clientes. Estos son 5 procesos que cubren todas las necesidades del ciclo de vida de los servicios, se desarrollan de la siguiente forma:




La Norma ISO 20000 es un estándar internacional, que cuenta con la reducción de costes relacionados al conocimiento y resolución de los incidentes de TI, lleva demás el manejo de la gestión efectiva de los suministradores entre el servicio provisto, asegura y demuestra el cumplimiento de la función de TI con la entrega de servicios, justifica el coste de la calidad del servicio y proporciona los servicios adecuados a las necesidades del negocio del cliente y del usuario.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

PSP Y TSP

Ahora hablemos de PSP y TSP que son metodologías  que tienen relación con CMMI, pero la pregunta es ¿Que tienen en común?
Pues son métodos que pueden ayudar a los equipos de Ingenieros a desarrollar sistemas.
 CMM provee la estructura de mejoramiento necesaria para el trabajo de Ingeniería y PSP provee la disciplina de Ingeniería que los Ingenieros necesitan para utilizar un proceso definido, planificado y medido. Entonces, CMM  mejora la capacidad de la organización y el enfoque de la Dirección TSP (mejora el rendimiento del equipo). Existe un enfoque respecto del proceso / producto PSP (mejora las falencias individuales).
Todos estos modelos pueden trabajar juntos, puesto que se refuerzan mutuamente. Y permiten a las organizaciones producir software de calidad con el presupuesto estimado y en los tiempos previstos.


PSP


El proceso personal de software se puede definir como el conjunto de procesos para dar paso a las prácticas en tiempo y mejora de producción de los programadores e ingenieros de software, tanto en tareas como en desarrollo.

Este proceso fue diseñado para consolidar con CMMI e iso 15504 pero no precisamente deben trabajar de la mano

Características
  • PSP se concentra para los trabajos de ingenieros de forma individual
  • PSP se usa individualmente
  • PSP se usa en pequeños programas de no más de 10 000 líneas de código
  • PSP produce software de calidad, los ingenieros puedan producir prácticas de calidad
  • PSP se centra en la administración del tiempo  y en la muestra de calidad desde un principio


 
Objetivos
  • Lograr una mejor disciplina en cuanto a mejora continua  en el proceso de desarrollo
  • Mejorar la calidad del proceso de desarrollo
  • Proveer la calidad y productividad
  • Medir, estimar, planificar y seguir el proceso de desarrollo

Ventajas

  • Tener mejor idea en habilidad y talento
  • Estimular nuevas ideas
  • Mejora de personal en cuanto a la estructura de trabajo
  • Tener una mejor base de trabajo en equipo


Desventajas
  • Tomar el tiempo necesario para conocerlo
  • Cambiar de perspectiva en cuanto a la forma de trabajo
  • Mantener una disciplina


Los Niveles de PSP son:
  • Planeación.
  • Diseño de alto nivel
  • Revisión del diseño de alto nivel
  • Desarrollo
  • Análisis de resultados.
Vea la siguiente imagen para entender mejor cada nivel de PSP:



 





TSP

Team Software Process (TSP) se define como el marco de trabajo que se especifica en ayudar a los equipos de gerencia e ingeniería para que puedan organizarse y producir proyectos de gran tamaño pero viendo así énfasis a los procesos, productos y trabajo en equipo.

El objetivo de esta metodología es mejorar  los niveles de calidad y productividad en el desarrollo de software con el fin de ayudar a los equipos alcanzar costos y tiempos estimados.

Maximizar la calidad de software

Integrar equipos independientes para que den rendimiento, planeando desarrollo de trabajo estableciendo sus propias metas

Mostrar a los gerentes como monitorear y llevar a cabo sus equipos de trabajo para ayudarlos alcanzar la máxima productividad

Llevar con rapidez la mejora continua de procesos y proveer una guía para la mejora de organizaciones

Ciclo de vida de TSP
Son ciclos que dan comienzo con la declaración de las necesidades del producto y dan término con la entrega final de este.
Los ciclos de vida de TSP son:

  • Lanzamiento
  • Estrategia
  • Planeación
  • Requerimientos
  • Diseño
  • Implementación
  • Prueba
  • Postmortem
Vea la siguiente imagen para entender mejor la estructura de TSP:




- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Conclusión de  María Fernanda Ruvalcaba Reyes

Cada uno de los proyectos en los que se implementen las normas de calidad se puede extender para determinados tipos de software de modo que se pueda seleccionar un modelo de referencia y puede aplicarse a grandes proyectos, teniendo la accesibilidad de una descomposición del producto en componentes. Ademas de que las empresas pueden fomentar la adopción de un planteamiento de procesos integrados, es decir una organización que quiera desarrollar un sistema de gestión de  la calidad tendrá que identificar sus propósitos, definir sus políticas y objetivos para determinar los procesos y su secuencia, logrando con ello una terminología común para los proveedores de servicios, sus suministradores y sus clientes.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Conclusión de Jorge Luis Montiel Flores

Gracias a esta información que vimos a lo largo del blog, podemos concluir que las normas y estándares que existen para los proyectos de T.I  sin duda son demasiado útiles.  Si estas normas y estándares se respetan y se siguen paso a paso como se especifican, los resultados que tendremos siempre es obtener que nuestro proyectos sean eficientes y mantengamos la satisfacción de las necesidades de los clientes, y no solo para ellos si  no también para los ingenieros involucrados en los proyectos, ya que mejora la forma en que trabajan y controla los tiempos.

Y pues bueno, esperamos que la información haya sido clara y le haya servido de algo, agradecemos su visita y con esto concluimos el blog.

















1 comentario: