martes, 25 de julio de 2017

Fuentes de consulta


 Espero que la información sea de tu agrado pero sobre todo que te sea útil.


4.7. Tendencias actuales aplicadas a la calidad en los sistemas de información.

Termino muy usado en el mundo de la moda, entendemos como tendencia cualquier idea religiosa, económica, política, artística, etc., que se orienta en determinada dirección. En tecnologías de la información y comunicaciones, TIC, es un concepto muy utilizado por los responsables de sistemas, ávidos por implantar tecnologías que aporten ventajas competitivas a sus organizaciones. En definitiva invertir en la tecnología adecuada en el momento justo; todo un reto.

  • Menos riesgo. Se tiende a desplegar tecnologías informáticas sobre aplicaciones más accesibles y menos costosas. El riesgo es menor y la implantación es más rápida disminuyendo significativamente el tiempo que tardo en estar en el mercado con las nuevas soluciones.


  •  Utilización de las redes sociales dentro de las compañías. Muchas compañías empiezan a descubrir que hay formas de comunicarse internamente más allá del email. Redes como Yammer pueden mejorar significativamente la comunicación eliminando cuellos de botella compartimientos estancos. Mejoran la comunicación, la distribución del conocimiento tanto que algunas compañías no solo las están implantando internamente sino que las abren a jubilados, ex empleados, socios etc. Además las compañías viven en modelos de negocios que implican costosos desplazamientos, largas e improductivas jornadas de aeropuerto de aeropuerto. La implantación de estas soluciones aumenta la productividad a la vez que recorta gastos significativamente.




  • Llegada del Internet de los objetos. Un mundo cuajado de sensores, que podrán absorber y transmitir datos de forma masiva, además de adaptarse o reaccionar automáticamente a cambios en el entorno. Estos "activos inteligentes" harán más eficientes los procesos y generarán novedosos modelos de negocios. Estas nuevas herramientas traerán consigo nuevos modelos de seguridad, interoperabilidad y productividad.


  • Cualquier dato es válido. Cada transacción, cada interacción de forma que podamos convertir ese dato en información, poniendo esa información en el contexto adecuado para que genere conocimiento.

  • Cualquier cosa es un servicio. El software como servicio SAAS (del inglés: Software as a Service, SaaS) se basa un modelo de acceso al software en régimen de alquiler en lugar de compra por un precio a priori asequible. El proveedor del servicio es quien tiene hospedadas las aplicaciones en sus servidores accediendo los usuarios a las mismas a través de una conexión a Internet, estando por tanto disponibles en cualquier momento y desde cualquier lugar. El modelo SaaS ofrece ventajas significativas a los vendedores de software y a sus clientes. Nada de comprar activos, pagar solo por lo que se usa.

  • Computacion de software alojado y nube.


Es un juego difícil, con mucho riesgo de patinazos significativos; muy pocos predijeron hace 10 años que existiría algo llamado Facebook y que tendría 500 millones de usuarios. Quizás hace 3 años fuera más fácil identificar dicha tendencia y ver que esa cifra, 500 millones, era posible; es decir hace 3 años muchas empresas con productos destinados al usuario final, pudieron identificar que tenían que estar en Facebook sí o sí.

Es una realidad que muchas empresas llegan a determinadas soluciones tecnológicas tarde y mal (llegan porque hay que estar), por miedo a quedar arrinconados, sin comprender para nada estas nuevas tendencias. Esta actitud les impiden capitalizar a tiempo la ventajas, cuando llegan es tarde y solo les supone costes; hay que estar al precio que sea. Pagan vivir siempre mirando al pasado, al "así se ha hecho siempre" sin darse cuenta como la Red acelera los cambios, y como sus directivos al vivir de espaldas a la Red no llegan a comprender a tiempo las nuevas tendencias.

4.6 CMMI

CMMI es un modelo para la mejora y evaluación de los procesos de desarrollo y mantenimiento de sistemas y productos de software de una empresa, desarrollado por el Instituto de Ingeniería del Software de la Universidad Carnegie Mellon (SEI).

Representa un camino de mejoramiento, y permite determinar la madurez, y evaluar las capacidades de las organizaciones que desarrollan software. Es una colección estructurada de elementos, que describe características de procesos que han demostrado, por experiencia, ser exitosos. Es recomendado para organizaciones que quieren incrementar la capacidad de su proceso de desarrollo y desarrollar software con calidad.


El modelo de CMMI plantea 5 niveles de madurez. Cada nivel es un escalón bien definido de mejora de proceso y estabiliza una parte importante de los procesos organizacionales.


Existen cinco "niveles de madurez", de modo que una organización que tenga institucionalizadas todas las prácticas incluidas en un nivel y sus inferiores, se considera que ha alcanzado ese nivel de madurez. 

Los niveles son: 

Inicial. Las organizaciones en este nivel no disponen de un ambiente estable para el desarrollo y mantenimiento de software. Aunque se utilicen técnicas correctas de ingeniería, los esfuerzos se ven minados por falta de planificación. El éxito de los proyectos se basa la mayoría de las veces en el esfuerzo personal, aunque a menudo se producen fracasos y casi siempre retrasos y sobrecostes. El resultado de los proyectos es impredecible. 

Repetible o administrado. En este nivel las organizaciones disponen de unas prácticas institucionalizadas de gestión de proyectos, existen unas métricas básicas y un razonable seguimiento de la calidad. La relación con subcontratistas y clientes está gestionada sistemáticamente. 

Definido. Además de una buena gestión de proyectos, a este nivel las organizaciones disponen de correctos procedimientos de coordinación entre grupos, formación del personal, técnicas de ingeniería más detallada y un nivel más avanzado de métricas en los procesos. Se implementan técnicas de revisión por pares. 

Gestionado o cuantitativamente administrado. Se caracteriza porque las organizaciones disponen de un conjunto de métricas significativas de calidad y productividad, que se usan de modo sistemático para la toma de decisiones y la gestión de riesgos. El software resultante es de alta calidad. 

Optimizado. La organización completa está volcada en la mejora continua de los procesos. Se hace uso intensivo de las métricas y se gestiona el proceso de innovación. 



Así es como el modelo CMM establece una medida del progreso, conforme al avance en niveles de madurez. Cada nivel a su vez cuenta con un número de áreas de proceso que deben lograrse. El alcanzar estas áreas o estadios se detecta mediante la satisfacción o insatisfacción de varias metas claras y cuantificables. Con la excepción del primer nivel, cada uno de los restantes Niveles de Madurez está compuesto por un cierto número de Áreas Claves de Proceso, conocidas a través de la documentación del CMM por su sigla inglesa: KPA. 

Cada KPA identifica un conjunto de actividades y prácticas interrelacionadas, las cuales cuando son realizadas en forma colectiva permiten alcanzar las metas fundamentales del proceso. Las KPAs pueden clasificarse en 3 tipos de proceso: 
  • Gestión
  • Organizacional 
  • Ingeniería. 

Las prácticas que deben ser realizadas por cada Area Clave de Proceso están organizadas en 5 Características Comunes, las cuales constituyen propiedades que indican si la implementación y la institucionalización de un proceso clave es efectivo, repetible y duradero. 

Estas 5 características son: 
  • Compromiso de la realización
  • La capacidad de realización
  • Las actividades realizadas
  • Las mediciones y el análisis
  • La verificación de la implementación. 


4.5. PSP/TSP

PSP

Es un conjunto de prácticas disciplinadas para la gestión del tiempo y mejora de la productividad personal de los programadores o ingenieros de software, en tareas de desarrollo y mantenimiento de sistemas. Está alineado y diseñado para emplearse en organizaciones con modelos de procesos CMMI o ISO 15504. Fue propuesto por Watts Humphrey en 1995 y estaba dirigido a estudiantes. A partir de 1997 con el lanzamiento del libro "An introduction to the Personal Software Process" se dirige ahora a ingenieros juniors.

El origen del PSP se dio debido a ciertos problemas que se empezaron a presentar en forma recurrente respecto al proceso de desarrollo de software. Por ejemplo:
  • Imposibilidad de cumplir con las fechas de entrega
  • Defectos detectados en el último minuto
  • Incapacidad de demostrar el avance del desarrollo, no hay una medición clara ni exacta
  • Esfuerzos duplicados y por ende desperdicio de recursos
  • Clientes insatisfechos con el servicio brindado

Se puede considerar como la guía de trabajo personal para ingenieros de software en organizaciones que emplean un modelo CMMI con nivel de madurez o de capacidad de procesos que implica la medición cualitativa y mejora de procesos.

Uno de los mayores problemas que tiene es la gran cantidad de datos que hay que tomar. El PSP tiene obsesión por la toma de datos y elaboración de tablas. El PSP se orienta el conjunto de áreas clave del proceso que debe manejar un desarrollador cuando trabaja de forma individual.

PSP, es uno de los 3 vértices donde descansa un proceso de mejora que trabaja sobre 3 niveles de la organización, los otros 2 son CMM y TSP.
El PSP amplia el proceso de mejora a la gente que realiza el trabajo de desarrollo de software, concentrándose en las practicas de trabajo de los ingenieros en una forma individual, enseñando como manejar la calidad desde el principio de un producto. PSP son nuestras propias métricas, que permiten estructurar y ordenar nuestro trabajo del día a día (no solo de desarrollo de software, esto lo voy a explicar mas adelante). El resultado de nuestro trabajo, además puede ser llevado a un trabajo en equipo TSP (Team Process Software), el cual es “comandado” por un sistema de gestión de la configuración y por supuesto, un Jefe de Proyecto quien evalúa los resultados y avances de los miembros del equipo.


Objetivos:


PSP pretende formar ingenieros de software con métodos disciplinados para mejorar su desarrollo personal de software. PSP le ayuda a los desarrolladores a:
  • Mejorar sus habilidades de estimación y planeación.
  • Hacer compromisos que se puedan cumplir.
  • Administrar la calidad de sus procesos.
  • Reducir la cantidad de defectos en sus productos.

Niveles:

El PSP trabaja en una estructura de siete niveles, de lo más básico hasta el control.

PSP 0

Identificar actividades: definición, secuencia
Bases mejoras: planeación, evaluación, resultados
  • Documentar proceso: 
  • Actividades (Scripts)
  • Tiempos (Logs Time)
  • Defectos (Defect Logs)
  • Resumir planes, resultados (Proyect plan summary)
PSP 0.1
Registrar tamaño del producto y hacer un histórico:
  • Líneas de código
  • Function points
  • Estandarización de la codificación
  • Registrar problemas y mejoras de propuestas
PSP 1
Mejora la planeación:
  • Con la estimación tamaño del producto (histórico)
  • Decidir en base a reportes de pruebas

PSP 1.1
Mejora la planeación:
  • Con la estimación de recursos
  • Introducción de calendarizar, plasmar el plan con números, un presupuesto
PSP 2
Mejora la ejecución:
  • Detección temprana de defectos, en base a la predicción de estos.
  • Revisiones de diseño
  • Revisiones de código
  • Uso de checklists (Listas de verificación)
PSP 2.1
Mejora el diseño:
  • Al hacer uso de formas detalladas de diseño (formas C76, C77)
PSP 3
Mejora el ciclo, mejora del proceso en términos de hacerlo repetible (ciclico):
  • Para aplicación a programas de mayor tamaño
  • Registro del seguimiento de asuntos importantes
  • Análisis del resumen de la planeación, tiempos, tamaños y defectos por cada ciclo
Esta estructura, a su vez, podemos ubicarla en tres grandes etapas o fases:
  • Planificación, donde se desarrolla un plan detallado con el objetivo de obtener compromiso por parte de quien realiza el proyecto de desarrollo.
  • Desarrollo
  • Post-mortem, donde se obtiene y analizan datos para planificaciones y mejoras futuras.
TSP

Team Software Process (TSP) es un método de establecimiento y mejora del trabajo en equipo para procesos software. TSP proporciona directrices para ayudar a un equipo a establecer sus objetivos, a planificar sus procesos y a revisar su trabajo con el fin de que la organización pueda establecer prácticas de ingeniería avanzadas y así obtener productos eficientes, fiables y de calidad. Está formado por dos componentes primarios que abarcan distintos aspectos del trabajo en equipo:
  • Formación del equipo de trabajo.
  • Gestión del equipo de trabajo.


Existen diferentes metodologías para la mejora de procesos, la mayoría de ellas se basa en la mejora de los procesos que dan como resultado un servicio o producto. El TSP busca integrar un equipo que tenga como punto de partida la unificación del mismo, para poder llevar a cabo todos aquellos procedimientos que puedan realizar mejora a los procesos que desarrollan.

Los objetivos que tiene el TSP son:

  • Maximizar calidad software, minimizar costos.
  • Integrar equipos independientes de alto rendimiento que planeen su trabajo, establezcan metas y san sueños de sus procesos y planes.
  • Mostrar a los gerentes como monitorear y motivar a sus equipos de trabajo y como ayudarlos a alcanzar su máxima productividad.
  • Acelerar la mejora continua de monitoreo.
  • Proveer de una guía para e mejoramiento en organizaciones maduras

El Team Software Process (TSP) es un proceso de desarrollo para equipos de ingenieros basado en CMMI, ayuda a conformar equipos para el desarrollo de software de calidad. TSP proporciona directrices para ayudar a un equipo a establecer sus objetivos, a planificar sus procesos y a revisar su trabajo con el fin de que la organización pueda establecer prácticas de ingeniería avanzadas y así obtener productos eficientes, fiables y de calidad.

TSP es una solución basada en procesos para resolver problemas de negocio, tales como:
  • Predictibilidad de costo y tiempo
  • Mejora de productividad
  • Ciclos de desarrollo y mejora de calidad de productos.

Características de los grupos eficaces:

  • Miembros expertos en papeles de liderazgo y pertenencia.
  • Relaciones tranquilas y establecidas entre los miembros.
  • Los miembros se sienten atraídos por el grupo y son fieles.
  • Los valores y metas del grupo son los de sus integrantes
  • Los miembros están motivados por hacer lo que puedan por el grupo.
  • La interacción y toma de decisiones tiene lugar en el ambiente adecuado.
  • El grupo desea ayudar a cada miembro a adquirir su pleno El grupo desea ayudar a cada miembro a adquirir su pleno potencial.
  • Cada miembro acepta con gusto y sin resentimiento las metas y normas establecidas.
  • Los miembros se prestan ayuda mutua cuando es necesaria o recomendable.
  • Existe una atmósfera de creatividad.
  • El grupo conoce el “conformismo constructivo” y se sirve de él.
  • Existe gran motivación para iniciar y recibir las comunicaciones.
  • Los miembros son flexibles y adaptables en sus metas y actitudes.
  • Los miembros se sienten seguros al tomar decisiones que les parecen apropiadas al entender la filosofía de la operación.
En las fases del Ciclo TSP se planea el número de ciclos. Dentro de cada ciclo se realiza:
  • Lanzamiento
  • Estrategia
  • Plan
  • Requisitos
  • Diseño
  • Implementación
  • Pruebas
  • Postmortem
 Sus entornos son:
  • CMM- Administración.
  • TSP- Equipo Ingenieros.
  • PSP-Ingeniero.


Cuadro comparativo TSP/PSP

TSP
PSP
Ventajas
  • Orientado a grupos/equipos
  • Mejora la productividad de las personas
  • Se establece la detección temprana de defectos y riesgos en la producción y desarrollo de software
  • Mejora la calidad del producto terminado.
  • Brinda un plan de trabajo bien estructurado.
  • Se establece una buena comunicación entre los integrantes del equipo.
  • Identificación clara de los objetivos del proyecto
  • Propicia un ambiente de trabajo agradable
  • Enlaza cada fase del proyecto para propiciar el desarrollo esperado
  • Orientado a individuos
  • Mejora la productividad individual
  • Se origina por errores en el desarrollo de software
  • Ayuda a estimar, planear y desarrollar sistemas de software
  • Disminuye la cantidad de errores de código
  • Reduce costos
Desventajas
  • Cada uno de los miembros debe de estar completamente comprometido con la causa del proyecto
  • Cada miembro del equipo debe de estar entrenado en PSP.
  • El proceso de llenar documentación es largo y tedioso.
  • Se debe de contar con un buen proceso de conjunto de métricas y parámetros de calidad.
  • Requiere capturar mucha información
  • Existe resistencia por parte de los ingenieros hacia adoptar la metodol

4.4. SPICE

SPICE es un acrónimo inglés de Simulation Program with Integrated Circuits Emphasis (Programa de simulación con énfasis en circuitos integrados). Fue desarrollado por la Universidad de California, Berkeley en 1973 por Donald O. Pederson y ‎Laurence W. Nagel.



Es un estándar internacional cuyo objetivo es simular circuitos electrónicos analógicos compuestos por resistencias, condensadores, diodos, transistores, etc. Para ello hay que describir los componentes, describir el circuito y luego elegir el tipo de simulación (temporal, en frecuencia, en continua, paramétrico, Montecarlo, etc.).

Comprende principalmente la evaluación y mejora de procesos así como la determinación de capacidad. Es un estandar equivalente y compatible al CMMI.


El proyecto SPICE tenía tres objetivos principales:

  • Desarrollar un borrador de trabajo para un estándar de evaluación de procesos de software.
  • Llevar a cabo los ensayos de la industria de la norma emergente.
  • Promover la transferencia de tecnología de la evaluación de procesos de software a la industria del software a nivel mundial.

Sus características son:

  • Establece un marco y los requisitos para cualquier proceso de evaluación de procesos y proporciona requisitos para los modelos de evaluación a ser utilizados.
  • Proporciona también requisitos para cualquier modelo de evaluación de organizaciones.
  • Proporciona guias para la definición de las competencias de un evaluador de procesos.
  • Comprende: evaluación de procesos, mejora de procesos, determinación de capacidad.

Niveles de madurez:

Desde la dimensión de capacidad el modelo define una escala de 6 niveles para determinar la capacidad de cualquier proceso:

Normalmente, en la mejora de la calidad de los procesos participan dos tipos de modelos, el modelo de procesos y el modelo de evaluación. El modelo de procesos define un catálogo o colección estructurada de buenas prácticas que describen las características de un proceso efectivo, mientras que el modelo de evaluación proporciona los principios requeridos para realizar una evaluación de la calidad, e implantación, de dicho modelo de procesos en una organización.  Como se observa en la siguiente figura, en el modelo objeto de este estudio, se hace uso del modelo de procesos ISO/IEC 12207:2008 (uno de los modelos de procesos de referencia para la industria del software), y de la norma ISO/IEC 15504 como modelo de evaluación.



4.3 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 a través de la Facultad de Ciencias de la Universidad Nacional Autónoma de México (UNAM) y a solicitud de la Secretaría de Economía para obtener una norma mexicana que resulte apropiada a las características de tamaño de la gran mayoría de empresas mexicanas de desarrollo y mantenimiento de software. 

Moprosoft es el nombre del modelo en la comunidad universitaria y profesional, y la norma técnica a la que da contenido es la NMX-059/01-NYCE-2005 que fue declarada Norma Mexicana el 15 de agosto de 2005 con la publicación de su declaratoria en el Diario oficial de la Federación. Moprosoft considera que los modelos de evaluación y mejora CMMI e ISO/IEC 15504 no resultan apropiados para empresas pequeñas y medianas de desarrollo y mantenimiento de software. Sobre las áreas de procesos de los niveles 2 y 3 del modelo SW-CMM e inspirándose en el marco de ISO/IEC 15504 se ha desarrollado este modelo.


Criterios empleados
Se han aplicado los siguientes criterios para la elaboración de este modelo de procesos:

La estructura de procesos resultante debe ser acorde a la estructura generalmente empleada por las organizaciones de la industria del software (alta dirección, gestión y operación)

La alta dirección tiene un papel importante a través de la planificación estratégica. Debe actuar como promotor del buen funcionamiento de la organización a través de su implicación en la revisión y mejora continua del modelo.

El modelo considera a la gestión como proveedora de recursos, procesos y proyectos; así como responsable de la vigilancia del cumplimiento de los objetivos estratégicos de la organización.

El modelo considera a la operación como ejecutora de los proyectos de desarrollo y mantenimiento de software.

El modelo integra con claridad y consistencia los elementos indispensables para la definición de los procesos y las relaciones entre ellos.

El modelo integra los elementos para realizar la administración de proyectos desde un sólo proceso.

El modelo integra los elementos para realizar la ingeniería de productos de software en un único marco que incluya los procesos precisos de soporte (verificación, validación, documentación y control de la documentación).

El modelo destaca la importancia de la gestión de recursos, con especial relevancia en aquellos que componen el conocimiento de la organización: productos generados por proyectos, datos de los proyectos, mediciones, documentación de procesos y datos cosechados a partir del uso y de las lecciones aprendidas.



Moprosoft se basa en los modelos de procesos ISO 9001:2000, en las áreas de procesos de los niveles 2 y 3 de CMM-SW: CMM-SW v.1.1., en el marco general ISO/IEC15504 y en prácticas y conceptos de PMBOK Y SWEBOK. 

PROSOFT representa un campo diferente de apoyo a los empresarios de las tecnologías de la información, es un sector diverso para hacer negocios y generar fuentes de empleo dignas”



El Plan Nacional de Desarrollo 2001-2006 plantea el fomento a la industria y el mercado De Tecnologías de la Información (TI) como estrategia para aumentar la competitividad del País. Dado el gran potencial con que cuenta México para desarrollar esta industria, la Secretaría de Economía, en coordinación con organismos empresariales y empresas del Sector, diseñó el PROSOFT.

Características


  • 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.


BENEFICIOS

Al adoptar y aplicar el modelo MoProSoft, las empresas incorporarán las mejores prácticas en gestión e ingeniería de software; los que les permitirá elevar la capacidad de las organizaciones para ofrecer servicios con calidad y alcanzar niveles internacionales de competitividad.

Es también aplicable en áreas internas de desarrollo de software de las empresas de diversos giros.

A continuación se mencionan los siguientes beneficios y ventajas para la implementación de MoProSoft:





4.2 LA 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, fue desarrollada para dar soporte a aquellas necesidades; 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 presentan dos modelos de calidad, el primero referido a la calidad interna y externa y el segundo modelo referido a la calidad en uso, a continuación se describe cada uno de ellos.


La calidad externa se define como la totalidad de las características del producto software desde una perspectiva externa. Es la calidad del software cuando es ejecutado, la cual es típicamente medida y evaluada mientras se prueba en un ambiente simulado, con datos simulados y usando métricas externas. Durante las pruebas, muchas fallas serán descubiertas y eliminadas. Sin embargo algunas fallas todavía pueden permanecer después de las pruebas. Como es difícil corregir la arquitectura de software u otros aspectos fundamentales del diseño del software, el diseño fundamental permanece sin cambios a través de las pruebas.

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 si mismo.

El modelo de la calidad en uso muestra un conjunto de 4 características: efectividad, productividad, integridad, y satisfacción.