Title | Lectura 4 - Modelo Ideal |
---|---|
Author | Anny Gutierrez |
Course | Calidad de Software |
Institution | Universidad Siglo 21 |
Pages | 15 |
File Size | 743 KB |
File Type | |
Total Downloads | 18 |
Total Views | 151 |
Download Lectura 4 - Modelo Ideal PDF
DŽĚĞůŽ />
ĂůŝĚĂĚ ĚĞ ^ŽĨƚǁĂƌĞ
Modelo IDEAL El modelo IDEAL (Initiating, Diagnosing, Establishing, Acting, Learning) fue inicialmente creado como un modelo de ciclo de vida para la mejora de procesos basado en el CMM pero su aplicación es mucho más amplia. Este modelo fue elaborado por el SEI (Software Engineering Institute), organización fundada en 1984 por el Congreso de los Estados Unidos para:
Juiar el inicio
Slanificación
Lmplementación.
Es decir: generar las iniciativas que ayuden a las mejoras para el proceso de software en las organizaciones. El modelo IDEAL provee un enfoque disciplinado de ingeniería para la mejora del proceso de software. Es un modelo que se focaliza en el gerenciamiento del programa de mejoras y establece los fundamentos para una estrategia de largo plazo.
Arquitectura del modelo El modelo IDEAL se compone de cinco fases: 1. Iniciar (I nitiating). 2. Diagnosticar (D iagnosing). 3. Establecer (E stablishing). 4. Ejecutar (A cting). 5. Aprender (L earning). Iniciar En esta fase se definen las bases del trabajo a realizar. Debemos identificar las necesidades de cambio en la organización. El éxito de este proceso dependerá de la claridad en la identificación y presentación de estas necesidades al cliente.
1
Considerando las razones para iniciar el cambio es necesario establecer las metas y objetivos del trabajo a realizar. Debemos evaluar la forma en que afectará Ăl trabajo y los beneficios que se esperan obtener. Es crítico contar con el apoyo efectivo y compromiso de la dirección desde que se inicia el programa. Finalmente, es necesario establecer la estructura organizativa que apoyará el programa de mejora. Se debeŶ documentar las responsabilidades y expectativas de cada grupo. Diagnosticar En esta fase debemos obtener un entendimiento completo del trabajo a realizar. Es necesario definir el estado actual de la organización y el estado futuro. El resultado que obtendremos son recomendaciones que sirven para definir las actividades siguientes del programa. ƐƚĂƐ influyen en las decisiones que debe tomar la gerencia. Establecer En esta fase debemos elaborar un plan detallado identificando:
Ăcciones específicas
Ğntregables
ƌĞsponsabilidades,
para el programa de mejoras basado en los resultados del diagnóstico y en los objetivos que se quieren alcanzar. En esta fase también se definen las métricas que permitirán medir el progreso alcanzado. Además, se comienza a definir y capacitar a los grupos técnicos de trabajo que desarrollarán los procesos. Ejecutar En esta fase se implementan las acciones planificadas. Se trata de la fase que consume más tiempo y recursos. Se inicia con la definición de la solución que cubre los objetivos de la organización.
2
ƐƚĂ debe abarcar: Herramientas Procesos Habilidades Asesorías Información El proceso se itera hasta obtener una solución satisfactoria que funcione, sin esperar que sea perfecta. Finalmente, la solución obtenida se comienza a implantar en la organización. Aprender Es la fase de cierre del ciclo de mejoras. Su objetivo es garantizar que el próximo ciclo sea más efectivo. Duranteesta fase revisamos la información recolectada en los pasos anteriores. Se evalúan los logros y objetivos alcanzados para lograr implementar el cambio de manera más efectiva y eficiente en el futuro. Todas las lecciones aprendidas deben quedar documentadas.
Conceptos de madurez de procesos “No puedo controlar lo que no puedo medir” De Marco (1978) “Si algo puede ser medido y expresado en números entonces se sabe algo acerca de ello” Lord Kelvin Thompson (1900)
3
Me parece importante comenzar compartiendo la importancia que las mediciones tienen en la gestión, control y calidad del producto o servicio a desarrollar. Dentro de nuestra profesión es la Ingeniería de Software ůĂƋƵĞ se encarga de este tema. A título personal la defino como: “La disciplina o área de la informática que ofrece métodos y técnicas para desarrollar y mantener software de calidad” Esta ingeniería trata con áreas muy diversas de la informática y de las ciencias de la computación, tales como:
Fonstrucción de compiladores
Vistemas operativos, o
ĚĞsarrollos Intranet/Internet.
Ğ ĞƐƚĞŵŽĚŽ ĂďŽƌĚĂ todas las fases del ciclo de vida del desarrollo de cualquier tipo de sistemas de información. s aplicable a infinidad de áreas (negocios, investigación científica, ŵedicina, producción, logística, banca, control de tráfico, meteorología, Ěerecho, Internet, Intranet, etc.)
Objetivos de la Ingeniería de Software En la construcción y desarrollo de proyectos se aplican métodos y técnicas para resolver los problemas. La Informática aporta herramientas y procedimientos sobre los que se apoya la Ingeniería de Software. Sus objetivos ƉƵĞĚĞŶƐĞƌƌĞƐƵŵŝĚŽs en:
Pejorar la calidad de los productos de software.
ĂƵmentar la productividad y trabajo de los ingenieros del software.
Ĩacilitar el control del proceso de desarrollo de software.
ƐƵministrar a los desarrolladores las bases para construir software de alta calidad en una forma eficiente.
4
ĚĞfinir una disciplina que garantice la producción y el mantenimiento de los productos software desarrollados en el plazo fijado y dentro del costo estimado.
Madurez de Procesos Es importante comenzar explicando un poco quĠ es el Softwar e Engineering Institute, SEI de Estados Unidos. Es un centro de investigación y desarrollo perteneciente a la Universidad de Carnegie Mellon, fundado y financiado por el departamento de Defensa de los Estados Unidos. Este instituto tiene como objetivos: ACELERAR La introducción en las organizaciones de producción de software de las prácticas y técnicas de la Ingeniería de Software más eficientes y eficaces, identificando evaluando y mejorando aquellas que se consideren útiles. MANTENER A largo plazo la competencia en Ingeniería de Software y en la gestión del cambio tecnológico. HABILITAR Krganizaciones privadas y públicĂƐ trabajando con ellas, para que hagan mejoras en sus prácticas de Ingeniería de Software. FOMENTAR La adopción y uso continuo de estándar de excelencia en prácticas de Ingeniería de Software. El SEI tiene varias sedes y ofrece gran variedad de servicios a las organizaciones de desarrollo de software. En el MODELO DE MADUREZ de la CAPACIDAD del SOFTWARE del SEI (Software Capability Maturity Model, SW-CMM) se define un conjunto de áreas claves del proceso, que describen las funciones de Ingeniería de Software que deben llevarse a cabo para el desarrollo de las buenas prácticas, agrupadas en cinco niveles. Aplicando una serie de métricas se determina la calidad de cada área clave, loƋƵĞůŽŐƌĂ una visión precisa del rigor, la eficacia y la eficiencia de la metodología de desarrollo de una organización productora de software.
5
Cada una de esas áreas está organizada en secciones denominadas CARACTERÍSTICAS COMUNES.
COMPROMISO DE REALIZACIÓN
CAPACIDAD PARA LLEVARLA A CABO
ACTIVIDADES QUE HAY QUE REALIZAR
MEDICIÓN Y ANÁLISIS
VERIFICACIÓN DE LA IMPLEMENTACIÓN
En cada característica común se especifican prácticas claves, que son normas, procedimientos y actividades cuya realización lleva a la consecución de los objetivos del área. Asimismo, el SEI define indicadores claves que son aquellas prácticas claves o componentes de prácticas claves que ofrecen una visión mayor de la consecución de los objetivos de un área clave de proceso.
Áreas Claves/Áreas de Procesos Los niveles en los que se agrupan las áreas claves son inclusivos, es decir, para alcanzar uno, es necesario haber alcanzado y poder mantener todos los anteriores. Los niveles que maneja el SEI son:
INICIAL REPETIBLE DEFINIDO GESTIONADO OPTIMIZADO
6
Podemos sintetizar cada nivel diciendo que: INICIAL Se caracteriza por:
Ƶna aproximación intuitiva al proceso de desarrollo de software
ĚĞĨŝŶŝƌĂů éxito ĐŽŵŽdependŝĞŶƚĞ del esfuerzo individual
ůĂŶŽĚĞĨŝŶŝĐŝſŶĚĞ procesos metodológicos
ůĂŶĞĐĞƐŝĚĂĚĚĞ realizar medidas que sirvan para estimar y planificar a futuro.
Generalmente, podemos ver en este nivel que la organización no provee un ambiente estable para el desarrollo. Cualquier beneficio de una buena práctica de ingeniera de softwarese pierde por un planeamiento ineficiente. Ante una crisis se abandonan los procedimientos planeados. El éxito depende en gran medida de las habilidades del gerente y ĚĞ su equipo. Al no tener bien definidaƐ las actividades el proceso de desarrollo se asemeja a una caja negra. Los requerimientos suelen proceder de manera descontrolada. REPETIBLE La madurez metodológica de la organización permite estimar fiablemente el tamaño funcional o físico del sistema. También permite llevar el control de la gestión de recursos, costos y calendario. Se pueden repetir éxitos anteriores en proyectos de características similares. Las áreas claves de proceso definidas en este nivel, cuyo estado se puede conocer por diversas métricas, son:
Gestión de requisitos
Planificación del proyecto de software
Seguimiento y control de proyectos
Gestión de la subcontratación de software
7
Aseguramiento de la calidad
Gestión de la configuración de software
En este nivel se implementan procesos efectivos que son:
Definidos
Documentados
Utilizados
Entrenados
Medidos
Reforzados
Mejorados
Se cuenta con estándar de los proyectos de software y la organización asegura que serán respetados. El gerente de proyecto controla los costos, cronograma y funcionalidades los problemas de cumplimiento de los compromisos son identificados a medida que surgen. DEFINIDO Se conoce la forma de construcción del sistema. El proceso de software de las actividades de gestión e ingeniería se documenta y se estandariza. Las actividades intermedias están bien definidas y, por lo tanto, se pueden examinar y medir. Es posible detectar tempranamente posibles problemas y aplicar una adecuada gestión de riesgos. Las áreas claves definidas para este nivel son:
ĚĞsarrollo y mejora de los procesos de la organización
ĚĞfinición de los procesos de la organización
Ɖƌograma de formación
ŐĞstión integrada de software
ŝŶgeniería de producto de software
8
ĐŽordinación intergrupos
ƌĞvisión conjunta La capacidad del proceso de software de una organización en este nivel pƵĞĚĞƐĞƌƌĞƐƵŵŝĚĂ como estándar y consistente porque tanto la Ingeniería de Software como las actividades de administración son estables y repetibles. Esto se basa en el entendimiento común y organizacional de las actividades, roles y responsabilidades de un proceso de software definido. GESTIONADO Se suma la gestión a un proceso definido.
Se usa realimentación desde las primeras actividades del proyecto para seleccionar prioridades en las actividades actuales y conocer cſmo se emplean los recursos.
Los efectos de los cambios en una actividad se pueden seguir en otras.
Se recopilan medidas detalladas del proceso de software y de la calidad del producto.
Se evalúa la efectividad del proceso.
Las áreas claves definidas son:
Gestión cuantitativa del proyecto.
Gestión de calidad de software.
En este nivel la organización establece objetivos de calidad tanto para productos como para procesos de software. Una base de datos de procesos de software de la organización se usa para recolectar y analizar los datos disponibles de los procesos de software definidos de los proyectos. Estos procesos de software son implementados con medidas bien definidas y consistentes. Estas medidas establecen los fundamentos cuantitativos para evaluar los procesos y productos de software del proyecto. OPTIMIZADO Existe una mejora continua de los procesos.
9
Las medidas de actividades se usan para mejorar el proceso, eliminando y añadiendo actividades y reorganizando su estructura como respuesta a los resultados de las medidas. Las áreas definidas para este nivel son:
Ɖƌevención de defectos
ŐĞstión de cambios tecnológicos
ŐĞstión de cambios en los procesos. En este nivel toda la organización se concentra en la mejora continua de procesos. La organización tiene los medios para identificar proactivamente las debilidades y fortalezas del proceso, con el objetivo de prevenir defectos. Los datos, en la efectividad de los procesos de software, se usan para realizar análisis de costo/beneficio de nuevas tecnologías y de cambios propuestos a los procesos de software de la organización. Durante el desarrollo del proyecto se analizan defectos para determinar su causa. Se evalúan los procesos para prevenir la recurrencia en tipos de defectos conocidos y esto se transfiere a toda la organización.
Evaluaciones de CMMI Como vimos, el Modelo de Madurez de Capacidad (CMM) surge como iniciativa del SEILJ propone 5 niveles de madurez, considerando que una organización alcanza el nivel cuando cumple todas las prácticas de ese nivel y de los niveles inferiores. Los cinco niveles son:
Inicial Repetible Definido Gestionado Optimizado
10
Las áreas claves tienen una serie de prácticas o procesos claves, conocidas como Áreas Claves de Procesos (KPA – Key Process Area). Cada área de proceso tiene definidas buenas prácticas, que deben ser:
Definidas Provistas Ejecutadas Medidas
Verificadas
Esas características reciben el nombre de características comunes. CMM es un modelo que si bien brinda el soporte para madurar el proceso, no asegura que el producto construido en los proyectos sea el correcto. A medida que el nivel aumenta también lo hace la cantidad de documentación. CMM le brinda a las organizaciones de software una guía de cómo controlar sus procesos para desarrollo y mantenimiento de software. Permite evolucionar hacia la cultura de Ingeniería de Software y excelencia en la administración. La forma de lograr estos objetivos es focalizar en un conjunto de actividades y trabajar fuertemente para que los logros sean continuos y duraderos en el proceso de software. La mejora continua de procesos está basada en realizar pequeños cambios evolutivos en lugar de una innovación revolucionaria. CMM brinda un marco, una forma de organizar pasos para lograr estos objetivos, para lo cual define los cinco niveles de madurez. Estos niveles definen en forma ordenada esta evolución.
11
PROCESOS DE MEJORA CONTINUA
PROCESOS PREDECIBLES
ESTÁNDAR, PROCESOS CONSISTENTES
DISCIPLINA EN LOS PROCESOS
OPTIMIZADO
GESTIONADO
DEFINIDO
REPETIBLE
INICIAL
El CMM es un modelo descriptivo dado que describe los atributos esenciales que se esperan para caracterizar a una organización en un nivel de maduración en particular. Por lo tanto, es un modelo de tipo normativo en el sentido que detalla prácticas que caracterizan el tipo normal de comportamiento que se espera en los proyectos de gran escala en una organización. CMM no es prescriptivo, es decir, no dice a la organización cſmo debe mejorar. El CMM nos dice en qué nivel de maduración se encuentra la organización. Con CMMI logramos:
Ɖƌevisibilidad del presupuesto
ŵĞjoras en tiempo de entrega ŝŶcrementar productividad ŝŶcrementar el retorno de la inversión ĚĞcremento en el costo de la calidad
12
Según el SEI, la utilización de este modelo permite mejoras promedios de: Costo 34%
Entregas 50% Productividad 61% Calidad 48% Satisfacción del Cliente 14% Retorno de la Inversión 4:1
13
BibliografíaGHUHIHUHQFLD Brooks, Frederick P. (1995), The Mythical Man – Month, USA: Adidison – Wesley Publishing Company Pressman, Roger S. (2010), Ingeniería de Software. Un enfoque práctico, Argentina: McGraw- Hill. Humphrey, W. (1989), Managing the Software Process. USA, Addison-Wesley Standish Group. (1994), http://blog.standishgroup.com/ Sommerville, I. (2009), Ingenieria de Software, Argentina, Pearson McConnell, S. (1996) Rapid Development , Taming Wild Software Schedules, USA: MicrosoftPress De Marco,T. (1978) Structured Analysis and System Specification, N.Y. Yourdon Press
14...