Lectura 4 - Modelo Ideal PDF

Title Lectura 4 - Modelo Ideal
Author Anny Gutierrez
Course Calidad de Software
Institution Universidad Siglo 21
Pages 15
File Size 743 KB
File Type PDF
Total Downloads 18
Total Views 151

Summary

Download Lectura 4 - Modelo Ideal PDF


Description

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. Duranteesta 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 softwarese 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 SEILJ 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íaGHUHIHUHQFLD 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...


Similar Free PDFs