Está en la página 1de 30

Mejoramiento de los procesos de

desarrollo de software
Mejoramiento de Procesos de Software

Objetivos de la charla
Discutir los factores crticos de xito para el
desarrollo del software
Destacar la importancia de asegurar la calidad
del software
Discutir los procesos para el mejoramiento del
desarrollo de software
Presentar la metodologa WATCH para el
desarrollo de software OO basado en la
reutilizacin de componentes
2
Contenidos de la charla
Factores crticos de xito para el desarrollo de software
La calidad del software
Procesos de evaluacin y certificacin de la calidad del
software
El Modelo de Madurez de la Capacidad (CMM)
El mtodo WATCH para el desarrollo de software OO

3
Factores crticos de xito
del desarrollo de software
El proceso
de desarrollo

El El
aseguramiento
de la
recurso
calidad humano
Desarrollo de Software

La gerencia Las herramientas


del proyecto de desarrollo
4
Factores crticos de xito del desarrollo
de software

EL RECURSO
HUMANO

5
El Recurso Humano
Perfil del ingeniero requerido por la industria del software:
Debe ser capaz de:
Gerenciar proyectos de software
Planificar y controlar proyectos de alta tecnologa

Organizar, coordinar y dirigir grupos o equipos de desarrollo

Gerenciar el riesgo

Desarrollar y mantener software bajo restricciones de costos y


tiempo
Modelado de negocios

Definicin y especificacin de requerimientos

Diseo de software

Programacin

Pruebas de software

Mantenimiento de software

Asegurar la calidad del software en desarrollo


Evaluar la calidad del software producido
Mejorar los procesos de desarrollo de software
Familiarizarse rapidamente con las tecnologas de software ms
recientes 6
El Recurso Humano
El desarrollo de software requiere un RH altamente especializado
y muy actualizado
Estado del arte en Ingeniera de Software:
Ingeniera de Software Orientada a Objetos
Reutilizacin de activos y componentes de software
Ingeniera de Dominios
Interfases Humano-Computador
Interfases web y multimedia
Integracin de software heterogneo
Objetos y componentes distribuidos
Arquitecturas de integracin: CORBA, EJB, COM
Modelado de negocios
Arquitecturas de software, patrones de diseo, marcos 7
El Recurso Humano
Estrategias para mejorar la formacin del RH
Programa de formacin continua del RH
Debe ser institucional
Debe ser parte del plan estratgico de informacin de la empresa
Debe estar a cargo de empresas consultoras privadas o
universidades
Cursos de extensin profesional en Ingeniera de Software
Talleres de adiestramiento en el uso de nuevas tecnologas de
software
Programa de Postgrado en Ingeniera de Software
A cargo del Postgrado de Computacin de la Fac. de Ingeniera
Otorgara el ttulo de Especialista en Ingeniera del Software
Niveles de formacin del especialista en IS:
I) Tecnologas y sistemas de software
II) Procesos de desarrollo y mantenimiento de software de alta calidad
III)Gerencia de proyectos de software 8
Factores crticos de xito del
desarrollo de software

La calidad
del producto

9
La Calidad del Software
Qu significa el trmino calidad ?
" Conjunto de caractersticas de una entidad
[producto o servicio] que le confieren su aptitud
para satisfacer necesidades expresadas e
mplicitas" (ISO 8402)
Cmo medir la calidad de un producto de software?
Se emplean modelos que especifican la calidad
mediante la definicin de un conjunto de
atributos o caractersticas.
Se basan en descomponer la calidad del
producto en caractersticas y estas en criterios
que pueden ser medidos mediante mtricas.
10
La Calidad del Software
Qu caractersticas debe tener el software de alta calidad ?
Utilidad:
Determina si el sistema hace lo que sus usuarios esperan que haga
El sistema es til si:
Su funcionalidad ayuda al usuario en la realizacin de sus actividades

Confiabilidad:
Baja probabilidad de falla => bajo nmero de errores
Mantenibilidad:
Es flexible, es modificable y es internamente comprensible ?
Eficiencia:
Medida en relacin al uso de los recursos del computador
Ej., bajo tiempo de ejecucin y mnimo uso del espacio de
almacenamiento
Facilidad de prueba:
Se puede probar con facilidad ?
en que medida el diseo y codificacin facilitan las pruebas

11
La Calidad del Software
Otras caractersticas de la calidad del software
Economa
Integridad y consistencia
Documentacin
Interoperabilidad
Modularidad
Correctitud
Generalidad
Reutilizacin
Claridad
Portabilidad 12
La Calidad del Software
Cmo asegurar la calidad del software ?
Establecimiento de un sistema de calidad
Gestin de la calidad
Planificacin de la calidad

Definicin de polticas de calidad

Uso de tcnicas de verificacin y validacin del


software
Revisiones e inspeccin de los productos de software
Pruebas de programas

Gestin de la Configuracin del Software


Uso de normas y estndares de calidad
Evaluacin y mejoramiento de los procesos de
software 13
La Calidad del Software
Normas y estndares de calidad:
Conjunto de guas, normas o convenios establecidos por
la empresa (o por un ente externo) con la finalidad de
definir, simplificar y estandarizar las actividades
necesarias para lograr una alta calidad de los productos
de software
Dos enfoques de normalizacin:
Normalizacin de las caractersticas medibles del
software
ISO9126
IEEE Std. 1061

Normalizacin del proceso de desarrollo del software

ISO 9000 (serie de estndares para la gestin de calidad)


ISO 15004 (estndar para la evaluacin de procesos de

software) 14
Factores crticos de xito del
desarrollo de software

El proceso
de desarrollo

15
Los procesos de software

Un proceso de software se define como un:


"conjunto de actividades, mtodos, prcticas y
transformaciones que las personas usan para
desarrollar y mantener software y sus productos
asociados [p.ej., planes, especificaciones, diseos y
pruebas]" (Piattini y
Daryanani, 1995)
Una premisa fundamental:
"La calidad de un producto de software est
determinada, en muy buena medida, por la calidad
del proceso usado para desarrollarlo y mantenerlo"
16
Evaluacin y Mejoramiento de los
Procesos de Software
Modelos para evaluar y mejorar los procesos de software
El Modelo de Madurez de la Capacidad (CMM)
CMM: Capability Maturity Model
Desarrollado por el Instituto de Ingeniera de Software

(SEI) de la Universidad Carnegie-Mellon en USA


Incorpora aspectos definidos por el ISO 9001

El conjunto de estndares SPICE


SPICE: Software Process Improvement and Capability
dEtermination
Desarrollado por el WG10 de la ISO (International

Organization for Standardization)


Inspirado en el ISO 9000

17
CMM: El Modelo de Madurez de la
Capacidad
El CMM (Capacity Maturity Model) fue desarrollado por
el Software Engineering Institute (SEI) de la Univ.
Carnegie-Mellon en USA con la finalidad de:
evaluar la madurez de los procesos de desarrollo
de software dentro de una organizacin.
proponer un plan de mejoramiento de los
procesos de desarrollo de software en base a una
serie de niveles que van desde un proceso
catico (inmaduro) hasta un proceso
disciplinado y de mejoramiento continuo
(maduro).

18
CMM: El Modelo de Madurez de la
Capacidad
Capacidad de un proceso de software:
Rango de resultados esperados que pueden ser
logrados siguiendo un proceso de software dado
Madurez de un proceso de software:
Determina en que grado un proceso de software
es explcitamente definido, administrado, medido,
controlado y hecho efectivo
La madurez es un indicador de la capacidad del
proceso de software para lograr sus objetivos y
resultados esperados.
Una organizacin logra mayor madurez mediante
la institucionalizacin del proceso de desarrollo
de software, estableciendo las polticas,
estndares y estructuras organizativas 19
CMM: El Modelo de Madurez de la
Capacidad
Organizacin inmadura Organizacin madura
Improvisa o no sigue rigurosamente los Tiene definido e implantado el mtodo de
procesos de software desarrollo y mantenimiento de software

Improvisa o no emplea la gerencia de Los procesos tcnicos y gerenciales estn


proyectos establecidos, son comunicados a toda la
organizacin y se exige su aplicacin
Acta en respuesta a las crisis que surjan Los roles y responsabilidades de los grupos y
sus miembros estn claramente definidos.

No se hacen estimaciones de costos y tiempo Las estimaciones de costos y tiempos se basan


reales en experiencias anteriores, reales y
cuantificadas

La calidad del producto no es definida sobre Existen objetivos cuantificables para medir la
una base objetiva calidad del producto
No se puede predecir la calidad del producto Se controla la calidad del producto y se
20
garantiza la satisfaccin del cliente
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 organizacin

Proceso
mejorado
contnuamente N. Optimizado

Proceso
predecible
N. Gerenciado

Proceso
estandarizado N. Definido

Proceso
disciplinado N. Repetible

N. Inicial
21
CMM: El Modelo de Madurez de la
Capacidad
Nivel Inicial
La organizacin no posee un ambiente estable de
desarrollo de software
Ausencia de gerencia de proyectos
El proceso de software es cambiante e irregular:
Durante las crisis, los grupos abandonan el mtodo y se
concentran en la codificacin y pruebas
Los planes, estimaciones y calidad son
impredecibles
El rendimiento y el xito dependen de la capacidad
individual de los miembros del grupo
La capacidad es una caracterstica de los individuos
y no de la organizacin N. Inicial 22
CMM: El Modelo de Madurez de la
Capacidad
Nivel Repetible
La organizacin establece polticas para gerenciar
los proyectos de software y procedimientos para
implantar estas polticas
Los procesos estn bajo un control efectivo de un
sistema de gerencia de proyectos basado en
experiencias anteriores
Los procesos son definidos, documentados,
practicados, medidos, obligados y mejorables
Los procesos de software son estables y repetibles
Existen estndares de desarrollo definidos y
exigidos
La calidad es controlada N. Repetible
23
CMM: El Modelo de Madurez de la
Capacidad
Nivel Definido
Los procesos de software son definidos:
estandarizados, documentados e institucionalizados
Se institucionaliza un proceso estndar de
desarrollo de software que integra en uno solo:
los procesos de ingeniera de software y
gerencia de proyectos de software

Existe un entendimiento comn de los procesos,


funciones y responsabilidades
La organizacin mantiene un grupo dedicado a la
definicin, mejoramiento y difusin del proceso
estndar
El proceso estndar es adaptado a cada proyecto
N. Definido
24
CMM: El Modelo de Madurez de la
Capacidad
Nivel Gerenciado:
La organizacin define metas de calidad
cuantitativas para:
los productos de software y
los procesos de software

El proceso estndar es medible o cuantificable:


La productividad y la calidad se miden y se registran
para cada proyecto
La calidad del software es predecible
Mediante el uso de mtricas de software, se crea
una base de datos cuantitativa para la evaluacin
y estimacin en proyectos futuros
La capacidad del proceso de software es
cuantificable y predecible N. Gerenciado
25
CMM: El Modelo de Madurez de la
Capacidad
Nivel Optimizado:
La organizacin se orienta hacia el mejoramiento
contnuo de sus procesos de software
La organizacin identifica las debilidades y fortalezas de
su proceso y determina maneras de mejorar su capacidad
La organizacin busca aumentar la capacidad y el
rendimiento de sus procesos
Se incorporan nuevas tecnologas y mtodos para
mejorar los procesos
El mejoramiento ocurre a travs de:
El avance incremental del proceso
Uso de nuevas tecnologas y mtodos

N. Optimizado
26
CMM: El Modelo de Madurez de la
Nivel
Capacidad
Area clave del proceso
1) Inicial
2) Repetible Ingeniera de requerimientos
Planificacin de proyectos
Control y seguimiento de proyectos
Gerencia de subcontratacin
Aseguramiento de la calidad del software (S/W)
Gerencia de la configuracin del S/W

3) Definido Coordinacin de la definicin y mejora del proceso


Programa de adiestramiento
Integracin Gerencia e Ingeniera de S/W
Ingeniera de productos de S/W
Coordinacin inter-grupos
Revisiones

4) Gerenciado Gerencia cuantitativa de procesos


Gerencia de la calidad del software
5) Optimizado Prevencin de defectos
27
Gerencia del cambio tecnolgico y del proceso
CMM: El Modelo de Madurez de la
Capacidad
Aspectos de uso del modelo:
El escalamiento de los niveles es progresivo
Saltarse un nivel es contraproducente
Normalmente se requiere 1 3 aos para escalar
al siguiente nivel
Alcanzar, desde el nivel 1, la categora de
Organizacin Madura puede tomar ms de 10 aos
Es posible retroceder desde un nivel superior
El CMM no es una bala de plata (silver bullet)
no resuelve todos los problemas decalidad en el
complejo proceso de desarrollo y mantenimiento de
software
La evaluacin es hecha por especialistas
adiestrados y acreditados por el SEI 28
Conclusiones
El desarrollo de software es un proceso complejo que requiere:
Un recurso humano altamente especializado y
actualizado
Un mejoramiento continuo y estandarizacin de los
procesos de desarrollo
Aplicacin de procesos gerenciales
Un aseguramiento de la alta calidad del software
producido
Tecnologa y herramientas apropiadas y
actualizadas
El CMM proporciona una estructura conceptual y metodolgica para
mejorar la gerencia y el desarrollo de S/W y, por ende, la calidad de los
productos 29
Fin de la charla

jonas@ing.ula.ve

30

También podría gustarte