Documentos de Académico
Documentos de Profesional
Documentos de Cultura
02 ProcesoCicloDeVida PDF
02 ProcesoCicloDeVida PDF
Proyecto de IS
Introduccin a la IS
Proceso y Ciclo de Vida
Proceso Software y
Ciclo de Vida
Curso 2008-2009
Gonzalo Mndez
Dpto. de Ingeniera de Software e Inteligencia Artificial
Facultad de Informtica
Universidad Complutense de Madrid
Conceptos importantes
Personas
los que trabajan
Producto
lo que se obtiene
Proyecto
la pauta a seguir para desarrollar un producto
Proceso
la pauta a seguir para desarrollar un proyecto
Un traje
Personas
El sastre
Producto
El traje
Proyecto:
el sastre, el traje, el presupuesto del traje, el traje en s, los
pasos a dar para hacer el traje...
Proceso
La secuencia de acciones para hacer un traje concreto
Una cena
Personas
Empleados de una empresa de catering
Producto
La cena que se sirve
Proyecto
El men, el presupuesto, lo que hay que hacer para
conseguir el men, ...
Proceso
La secuencia de acciones de servir una cena
Producto
Los automviles
Proyecto
Desarrollo de un modelo nuevo
Proceso
Las instrucciones de la empresa sobre cmo
desarrollar un modelo nuevo
Para vosotros
Personas
vuestro grupo
Producto
la aplicacin elegida
Proyecto
parte prctica IS
Proceso
entregas mensuales + cmo vosotros decidis
organizaros
Capas de la IS
Capas de la IS
Capa de calidad
Base de cualquier proceso de ingeniera
La IS se basa en calidad
Mejores tcnicas de construccin de software
Capa de proceso
Capa que une calidad y mtodos
Desarrollo racional de la IS
Capas de la IS
Capa de mtodos
Un mtodo incluye:
Anlisis de requisitos
Diseo
Construccin de programas
Prueba
Mantenimiento
Capa de herramientas
Soporte automtico o semiautomtico para el proceso y los
mtodos
Herramientas CASE
Visin general de la IS
Con independencia del modelo de proceso hay
tres fases genricas:
Fase de definicin
Fase de desarrollo
Fase de mantenimiento
Fase de definicin/especificacin
Se identifican requisitos de sistema y software:
Informacin a procesar
Funcin y rendimiento deseados
Comportamiento del sistema
Interfaces establecidas
Restricciones de diseo
Tareas principales:
Planificacin del proyecto software
Ingeniera de sistemas o de informacin
Anlisis de requisitos
Fase de desarrollo
Se define:
Fase de mantenimiento
Centrada en cambios que se pueda necesitar realizar
sobre un producto
Se vuelven a aplicar las fases de definicin y
desarrollo, pero sobre software ya existente
Pueden producirse cuatro tipos de cambio:
Visin general de la IS
Estas fases se complementan con las
actividades de soporte
No crean software
Mejoran su calidad
Facilitan su desarrollo
Visin general de la IS
Ejemplos de actividades de soporte
Documentacin
Gestin de configuracin
Seguimiento y control del proyecto de software
Revisiones tcnicas formales
Garanta de la calidad del software
Gestin de reutilizacin
Mediciones
Gestin de riesgos
Proceso software
Conjunto estructurado de actividades y resultados
asociados requeridos para desarrollar un sistema de
software
Modelos de proceso
Un modelo de proceso, o paradigma de IS, es
una plantilla, patrn o marco que define el
proceso a travs del cual se crea software
Dicho de otra forma, los procesos son
instancias de un modelo de proceso
En esta asignatura los trminos proceso y
modelo de proceso se utilizan indistintamente
Modelos de proceso
Una organizacin podra variar su modelo de
proceso para cada proyecto, segn:
Modelo de Cascada
Prototipado
Desarrollo Evolutivo
En espiral
Desarrollo basado en componentes
Mtodos Formales
Implementacin y
Pruebas Unitarias
Integracin y Prueba
del Sistema
Operacin y
Mantenimiento
Crticas:
No se ve un producto hasta muy tarde en el proceso
Un error grave detectado en las ltimas fases puede ser letal
Prototipado
Se usa un prototipo para dar al usuario una idea
concreta de lo que va a hacer el sistema
Se aplica cada vez ms cuando la rapidez de
desarrollo es esencial
Prototipado evolutivo: el prototipo inicial se refina
progresivamente hasta convertirse en versin final
Prototipado desechable: de cada prototipo se extraen
ideas buenas que se usan para hacer el siguiente, pero
cada prototipo se tira entero
Prototipado
Escuchar
al cliente
Construir/
revisar
prototipo
El cliente
evala el
prototipo
Prototipado
Comienza con la recoleccin de requisitos
Cliente y desarrolladores definen los objetivos globales del
software.
Adems, identifican los requisitos conocidos y aquellos que
deben ser ms definidos.
Prototipado
Ventajas
Inconvenientes
El cliente no entiende por qu hay que desechar el prototipo
Si simplemente ha pedido unos ajustes...(?)
Modelos evolutivos
Caractersticas:
Gestionan bien la naturaleza evolutiva del software
Son iterativos: construyen versiones de software
cada vez ms completas
Se adaptan bien:
Los cambios de requisitos del producto
Fechas de entrega estrictas poco realistas
Especificaciones parciales del producto
Modelos evolutivos
Actividades
Concurrentes
Descripcin
del sistema
Especificacin
Versin
Inicial
Desarrollo
Versiones
Versiones
Intermedias
Intermedias
Validacin
Versin
Final
P
A
1er incremento
2 incremento
Se itera
Hasta elaborar el producto completo
Personal
Permite variar el personal asignado a cada iteracin
Inconvenientes
La primera iteracin puede plantear los mismos problemas
que en un modelo lineal secuencial
Anlisis de
Riesgos
Anlisis de
Riesgos
Evale alternativas,
identifique y resuelva
riesgos
Anlisis de
Riesgos
REVISIN
Anlisis
de Proto
Riesgos tipo1
Planea la
siguiente fase
Prototipo
Prototipo
3
2
Prototipo
Operacional
Requeri
Diseo
Diseo
mientos de
del
Detallado
SW
Plan de
Validacin de
Producto Codificacin
Desarrollo
Requerimientos
Prueba de
Unidades
Plan de Integracin Diseo
Prueba de
y Prueba
V &V
Prueba de Integracin
Desarrolla y verifica
Aceptacin
el siguiente nivel
Servicio
del producto
Fijar objetivos
Gestionar y reducir riesgos
Desarrollo y validacin
Planificar siguiente ciclo
Planificacin
Revisin del proyecto
Decisin de una nueva vuelta
Equipo 2
Equipo n
A
D
............
D
C
C
P
D
C
60-90 das
Inconvenientes
Exige conocer bien los requisitos y delimitar el mbito del
proyecto
Nmero de personas
Clientes y desarrolladores comprometidos
Gestin riesgos tcnicos altos
Uso de nueva tecnologa
Alto grado de interoperabilidad con sistemas existentes
Buscar
componentes
en biblioteca
Aadir
componentes
a biblioteca
Extraer
componentes
disponibles
Construir
componentes
que falten
Requirements
definition
Formal
specification
Formal
transformation
Integration and
system testing
Transformaciones formales
Formal transformations
T2
T3
T1
Formal
specification
R1
P1
R2
P2
T4
Executable
program
R3
P3
P4
Aplicabilidad
Sistemas crticos en los que la seguridad y fiabilidad debe
poder asegurarse antes de poner el sistema en operacin
Visibilidad de Procesos
Los sistemas de software son intangibles por lo que
los administradores necesitan documentacin para
identificar el progreso en el desarrollo
Esto puede causar problemas
El tiempo planeado para entregar resultados puede no
coincidir con el necesario para completar una actividad
La necesidad de producir documentos restringe la iteracin
entre procesos
Tiempo para revisar y aprobar documentos significativo
Visibilidad de Procesos
Modelo de Proceso
Modelo de Cascada
Desarrollo Evolutivo
Modelos Formales
Desarrollo orientado a la
reutilizacin
Modelo de Espiral
Qu modelo utilizar?
Para sistemas bien conocidos se puede utilizar el
Modelo de Cascada. La fase de anlisis de riesgos es
relativamente fcil
Con requisitos estables y sistemas de seguridad
crticos, se recomienda utilizar modelos formales
Con especificaciones incompletas, el modelo de
prototipado ayuda a identificarlos y va produciendo
un sistema funcional
Pueden utilizarse modelos hbridos en distintas partes
del desarrollo
Ejemplos
Dos modelos de proceso concretos:
Proceso Unificado de Rational (pesado)
Extreme Programming
(gil)
Proceso Unificado
Los autores de UML
Booch: mtodo Booch
Rumbaugh: OMT
Jacobson: proceso Objectory
Proceso Unificado
Es un proceso de desarrollo de software
Proceso de
desarrollo de
software
Sistema
software
Proceso Unificado
Organization along time
Phases
Process Components
Inception Elaboration
Construction
Transition
Requirements Capture
Analysis & Design
Organization
along content
Implementation
Test
Supporting Components
Management
Environment
Deployment
preliminary
iteration(s)
iter.
#1
iter.
#2
iter.
#n
iter. iter.
#n+1 #n+2
Iterations
iter.
#m
iter.
#m+1
Caractersticas
Alta visibilidad debido a ciclos muy cortos
Planificacin incremental
Se adapta a cambios de negocio
Prueba
Evaluacin
Actividades en XP
Diseo
El juego de planificacin
Pequeas entregas
Metfora
Diseo simple
Prueba
Refactoring
Programacin en pareja
Propiedad colectiva
Integracin continua
Semana de cuarenta horas
Cliente en el lugar de desarrollo
Codificacin estndar
Inconvenientes:
Poco probado
Poco compatible con especificaciones/diseos
totales
Slo funciona con equipos pequeos (hasta diez
personas)
La empresa ideal
El Dpto. de la Defensa de los US fund el Software
Engineering Institute (SEI) asociado con la
Universidad de Carnegie Mellon (CMU).
Desarrollan el Software Capability Maturity Model
(SW CMM) a mediados de 1980s, refinado en los
inicios de l990s.
Este modelo define una serie de reas clave de
proceso (ACP)
Un rea clave de proceso es, bsicamente, una actividad de
IS
c o n f i g u ra t io n m a n a g e m e n t
q u a l it y a s s u r a n c e
s u b c o n tr a c t m a n a g e m e n t
p ro je c t tr a c k i n g a n d o v e r s ig h t
p ro je c t p l a n n in g
e n ts m a n a g e m e n t
I n it i a l
CMM
Los niveles son acumulativos
Nivel 1: Inicial
CMM
Nivel 2: Repetible
Se incluye seguimiento del coste, la planificacin y la
funcionalidad
Se repiten tcnicas de proyectos anteriores con buenos
resultados
Las ACP son:
CMM
Nivel 3: Definido
Nivel 2
Las actividades se documentan, estandarizan e integran en
un proceso a nivel organizacin
Existe un proceso documentado
Las ACP son:
CMM
Nivel 4: Gestionado
Nivel 3
Se recopilan medidas del proceso del software y de
la calidad del producto
Estas medidas sirven para gestionar el proceso
Las ACP son:
Gestin de la calidad del software
Gestin cuantitativa del software
CMM
Nivel 5: Optimizacin
Nivel 4
En base a la experiencia y mtricas se optimiza el
proceso
Las ACP son:
Gestin de cambios del proceso
Gestin de cambios de tecnologa
Prevencin de defectos
CMM
Un nivel razonable es el definido (nivel 3)
Un nivel deseable es optimizacin (nivel 5)
Con independencia del CMM, ACPs mnimas:
Inicial
Repetible
Definido
Gestionado
Optimizado
34,9%
38,2%
18,5%
5,5%
2,9%
Referencias
Modelos de proceso
Pressman 17-46, Sommerville 42-67
Proceso Unificado
Jacobson, Krutchen
SW CMM
Pressman Cap. 2, Sommerville Cap. 25
http://www.sei.cmu.edu/cmm/obtain.cmm.html
Material
Pablo Gervs
Juan Pavn y Jorge Gmez
Natalia Juristo