Mejoramiento de procesos de software CMM

Anuncio
Los procesos de software
Un proceso de software se define como un:
l
"conjunto de actividades, métodos, prácticas y
transformaciones que las personas usan para desarrollar y
mantener software y sus productos asociados [p.ej., planes,
especificaciones, diseños y pruebas]"
(Piattini y Daryanani, 1995)
Una premisa fundamental:
l
"La calidad de un producto de software está determinada,
en muy buena medida, por la calidad del proceso usado
para desarrollarlo y mantenerlo"
Mejoramiento de los procesos de software
1
Evaluación y Mejoramiento de los Procesos
de Software
Modelo para evaluar y mejorar los procesos de
software
l
El Modelo de Madurez de la Capacidad (CMM)
l
l
l
CMM: Capability Maturity Model
Desarrollado por el Instituto de Ingeniería de Software (SEI) de la
Universidad Carnegie-Mellon en USA
Incorpora aspectos definidos por el ISO 9001
Mejoramiento de los procesos de software
2
CMM: El Modelo de Madurez de la
Capacidad
El CMM (Capability Maturity Model) fue
desarrollado por el Software Engineering Institute
(SEI) de la Univ. Carnegie-Mellon en USA con la
finalidad de:
l
evaluar la madurez de los procesos de desarrollo de
software dentro de una organización.
l
proponer un plan de mejoramiento de los procesos de
desarrollo de software en base a una serie de niveles que
van desde un proceso caótico (inmaduro) hasta un proceso
disciplinado y de mejoramiento continuo (maduro).
Mejoramiento de los procesos de software
3
CMM: El Modelo de Madurez de la
Capacidad
Capacidad de un proceso de software:
l
Rango de resultados esperados que pueden ser logrados
siguiendo un proceso de software dado
Madurez de un proceso de software:
l
Determina en que grado un proceso de software es
explícitamente definido, administrado, medido, controlado
y hecho efectivo
l
La madurez es un indicador de la capacidad del proceso de
software para lograr sus objetivos y resultados esperados.
l
Una organización logra mayor madurez mediante la
institucionalización del proceso de desarrollo de software,
estableciendo las políticas, estándares y estructuras
organizativas
Mejoramiento de los procesos de software
4
CMM: El Modelo de Madurez de la
Capacidad
Organización inmadura
Organización madura
Improvisa o no sigue rigurosamente los
procesos de software
Tiene definido e implantado el método de
desarrollo y mantenimiento de software
Improvisa o no emplea la gerencia de
proyectos
Los procesos técnicos y gerenciales están
establecidos, son comunicados a toda la
organización y se exige su aplicación
Actúa en respuesta a las crisis que surjan
Los roles y responsabilidades de los grupos y
sus miembros están claramente definidos.
No se hacen estimaciones de costos y tiempo
reales
Las estimaciones de costos y tiempos se basan
en experiencias anteriores, reales y
cuantificadas
La calidad del producto no es definida sobre
una base objetiva
Existen objetivos cuantificables para medir la
calidad del producto
No se puede predecir la calidad del producto
Se controla la calidad del producto y se
garantiza la satisfacción del cliente
Mejoramiento de los procesos de software
5
CMM: El Modelo de Madurez de la
Capacidad
El CMM emplea 5 niveles de madurez para evaluar y mejorar
los procesos de software de una organización
Proceso
mejorado
contínuamente
Proceso
predecible
Proceso
estandarizado
Proceso
disciplinado
N. Optimizado
N. Gerenciado
N. Definido
N. Repetible
N. Inicial
Mejoramiento de los procesos de software
6
CMM: El Modelo de Madurez de la
Capacidad
Nivel Inicial
l
La organización no posee un ambiente estable de
desarrollo de software
l
Ausencia de gerencia de proyectos
l
El proceso de software es cambiante e irregular:
l
Durante las crisis, los grupos abandonan el método y se
concentran en la codificación y pruebas
l
Los planes, estimaciones y calidad son impredecibles
l
El rendimiento y el éxito dependen de la capacidad
individual de los miembros del grupo
l
La capacidad es una característica de los individuos y no
de la organización
N. Inicial
Mejoramiento de los procesos de software
7
CMM: El Modelo de Madurez de la
Capacidad
Nivel Repetible
l
La organización establece políticas para gerenciar los
proyectos de software y procedimientos para implantar
estas políticas
l
Los procesos están bajo un control efectivo de un sistema
de gerencia de proyectos basado en experiencias anteriores
l
Los procesos son definidos, documentados, practicados,
medidos, obligados y mejorables
l
Los procesos de software son estables y repetibles
l
Existen estándares de desarrollo definidos y exigidos
l
La calidad es controlada
Mejoramiento de los procesos de software
N. Repetible
8
CMM: El Modelo de Madurez de la
Capacidad
Nivel Definido
l
Los procesos de software son definidos:
l
l
estandarizados, documentados e institucionalizados
Se institucionaliza un proceso estándar de desarrollo de
software que integra en uno solo:
l
l
los procesos de ingeniería de software y
gerencia de proyectos de software
l
Existe un entendimiento común de los procesos, funciones
y responsabilidades
l
La organización mantiene un grupo dedicado a la
definición, mejoramiento y difusión del proceso estándar
l
El proceso estándar es adaptado a cada proyecto
N. Definido
Mejoramiento de los procesos de software
9
CMM: El Modelo de Madurez de la
Capacidad
Nivel Gerenciado:
l
La organización define metas de calidad cuantitativas para:
l
l
l
los productos de software y
los procesos de software
El proceso estándar es medible o cuantificable:
l
La productividad y la calidad se miden y se registran para cada
proyecto
l
La calidad del software es predecible
l
Mediante el uso de métricas de software, se crea una base
de datos cuantitativa para la evaluación y estimación en
proyectos futuros
l
La capacidad del proceso de software es cuantificable y
predecible
N. Gerenciado
Mejoramiento de los procesos de software
10
CMM: El Modelo de Madurez de la
Capacidad
Nivel Optimizado:
l
La organización se orienta hacia el mejoramiento contínuo
de sus procesos de software
l
La organización identifica las debilidades y fortalezas de su proceso
y determina maneras de mejorar su capacidad
l
La organización busca aumentar la capacidad y el
rendimiento de sus procesos
l
Se incorporan nuevas tecnologías y métodos para mejorar
los procesos
l
El mejoramiento ocurre a través de:
l
l
El avance incremental del proceso
Uso de nuevas tecnologías y métodos
Mejoramiento de los procesos de software
N. Optimizado
11
CMM: El Modelo de Madurez de la
Capacidad
Nivel
Area clave del proceso
1) Inicial
2) Repetible
Ingeniería de requerimientos
Planificación de proyectos
Control y seguimiento de proyectos
Gerencia de subcontratación
Aseguramiento de la calidad del software (S/W)
Gerencia de la configuración del S/W
3) Definido
Coordinación de la definición y mejora del proceso
Programa de adiestramiento
Integración Gerencia e Ingeniería de S/W
Ingeniería de productos de S/W
Coordinación inter-grupos
Revisiones
4) Gerenciado
Gerencia cuantitativa de procesos
Gerencia de la calidad del software
5) Optimizado
Prevención de defectos
Gerencia del cambio tecnológico y del proceso
Mejoramiento de los procesos de software
12
CMM: El Modelo de Madurez de la
Capacidad
Aspectos de uso del modelo:
l
El escalamiento de los niveles es progresivo
l
l
Saltarse un nivel es contraproducente
Normalmente se requiere 1 – 3 años para escalar al
siguiente nivel
l
Alcanzar, desde el nivel 1, la categoría de “Organización Madura”
puede tomar más de 10 años
l
Es posible retroceder desde un nivel superior
l
El CMM no es una “bala de plata” (silver bullet)
l
l
no resuelve todos los problemas decalidad en el complejo proceso
de desarrollo y mantenimiento de software
La evaluación es hecha por especialistas adiestrados y
acreditados por el SEI
Mejoramiento de los procesos de software
13
Conclusiones
El desarrollo de software es un proceso complejo que
requiere:
l
Un recurso humano altamente especializado y actualizado
l
Un mejoramiento continuo y estandarización de los
procesos de desarrollo
l
Aplicación de procesos gerenciales
l
Un aseguramiento de la alta calidad del software producido
l
Tecnología y herramientas apropiadas y actualizadas
El CMM proporciona una estructura conceptual y
metodológica para mejorar la gerencia y el desarrollo de S/W
y, por ende, la calidad de los productos
Mejoramiento de los procesos de software
14
Fin de la Presentación
Mejoramiento de los procesos de software
15
Descargar