Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Agenda
1. Definiciones
2. Modelos de Ciclo de Vida
3. Estndares para Procesos del Ciclo de Vida
del software
4. Casos prcticos de Ciclos de Vida
5. Resumen final
6. Modelo OSO : Ciclo de Vida para
aplicaciones web - Relator C.Bravo
1. Definiciones
Ciclo de Vida
Todo esfuerzo de desarrollo de software conlleva
un CICLO DE VIDA que consiste en realizar
todas las actividades comprendidas entre el
momento en que se inicia la VERSION 1.0 de un
producto de software(desde la idea de una
persona) hasta el momento en que la VERSION
X.Z exhala su ltimo aliento en la mquina del
ltimo cliente
Ciclo de Vida
Actividades principales del Ciclo de Vida
Estados en el Proceso de Desarrollo
primero ?
Anlisis Sistema
Prueba
segundo ?
mantencin
tercero ?
Diseo
Construccin
Anlisis de
Requisitos
Plan:
Organizacin de actividades
Actividad
Conjunto de tareas
Tarea
Trabajo realizado en un tiempo determinado
Mtodo
En proyectos de construccin de software es tan importante el
producto final como el proceso por el cual fue obtenido.
Paradigma
Modelo de modelos. En una metodologa implica
la forma en que vamos a combinar las etapas de
anlisis, diseo e implementacin.
1. Anlisis
2. Diseo
3. Implementacin
Por ejemplo: 1, 2, 3 Cascada (sin Retroalimentacin).
1, 3, 2 Prototipo
1, 2, 3, 1, 2, 3, 1, 2, 3, ..., Espiral
Paradigma
Analisis
Requisitos globales a nivel de sistema.
Recopilacin de requisitos para el software.
Comprensin del mbito de la informacin del
software.
Entender la futura factibilidad del sistema.
Paradigma
Diseo
Estructura eficaz del sistema.
Arquitectura del software.
Detalle procedimental.
Caracterizacin de la interfaz
Problemas de adecuacin del software.
Paradigma
Implementacin
Traducir el diseo a un lenguaje que puede
interpretar la mquina.
Probar la lgica interna del software.
Depuracin de la codificacin.
Puesta en marcha del proyecto
Modelos
de desarrollo de software
Prueba y Error
Cascada (tradicional)
Evolutivo
Prueba y Error
Reingeniera
Prototipacin rpida
Uso de Lenguajes de alto nivel (4 Generacin.)
Experimental
Modelos
de desarrollo de software
Evaluacin
Ensamblaje de componentes reusables
Espiral
RAD
Rational Unified Process
Modelo de desarrollo para software web
Otros
Modelos
Prueba y Error (orden: I, A, D)
Sirve solo si el proyecto es chico o
manejable.
Depende de la experiencia no
documentada.
Puede malgastar esfuerzos
Modelo tradicional
CASCADA( genrico)
Ing. de
Sistemas
Anlisis
Diseo
Codificacin
Prueba
Mantencin
CASCADA ( orden: A, D, I)
Los proyectos no tienen flujo
secuencial como el que propone.
No es fcil establecer al principio
todos los requisitos con el cliente.
Hasta etapas finales del proyecto no
hay nada funcionando.
Modelo CASCADA
Poco realista :
Los proyectos raramente siguen el flujo
secuencial que propone el modelo
El cliente no establece explcitamente al principio
todos los requisitos
Se puede volver atrs, pero es ms difcil !
Mucho rework ( repeticin de trabajo )
Slo hasta llegar a las etapas finales del proyecto, no
estar disponible una versin operativa del software
Modelo CASCADA
Cundo usarlo ?
Para velocidades de desarrollo lentas
Cuando los requerimientos estn muy completos y detallados y
el rea de aplicacin es muy estable
Cuando el software no requiere de interaccin hombre-mquina.
Cundo NO usarlo ?
( todo lo contrario de lo anterior )
HIPOTESIS : Bien implementado, puede resultar mejor que
otros modelos
CASCADA incremental
Incremento 1
Diseo
Requerimientos
Implementacin
Prueba
Incremento 2
Requerimientos
Analysis
Diseo
Implementacin
Prueba
Incremento 3
Requerimientos
Diseo
Implementacin
Prueba
Hitos
TIEMPO CALENDARIO
Entrega
Incremento 1
Entrega
Entrega
Incremento 2 Incremento 3
Modelo EVOLUTIVO
Inicio
Trmino
Evaluacin
prototipo
Recoleccin
requisitos
Construccin
prototipo
Modelo EVOLUTIVO
Descripcin :
Se va completando el producto de software, a
medida que avanza el proyecto, a partir de un
prototipo.
Se comienza desarrollando el prototipo , con los
requerimientos ms claros o completos.
Exige que cliente y desarrollador se pongan de
acuerdo respecto a cuando el prototipo es lo
suficientemente bueno como para entregarlo
como producto final.
Modelo EVOLUTIVO
Definicin de PROTOTIPO
El prototipo puede ser :
a) Un modelo en papel
b) Un modelo basado en herramientas de PC que
describa la interaccin hombre-mquina
c) Un programa que implemente algunas funciones
del software
d) Un programa ya existente que contenga algunas
de las funciones y que sirva de muestra.
Modelo EVOLUTIVO
Cundo usarlo ?
Cuando los requerimientos cambian con rapidez
Cuando el cliente es reacio a especificar los
requerimientos con ms detalle
Cuando ni el cliente o desarrollador, conocen bien el
rea de aplicacin
Cuando no se est seguro de la arquitectura que tendr
el software
Cuando se requiere una velocidad de desarrollo rpida
Modelo EVOLUTIVO
Principales inconvenientes !
No conocer desde el comienzo las caractersticas del
producto aceptable o final.
No conocer desde el comienzo la cantidad de
iteraciones a realizar, y por ende, los plazos.
Se ignoran aspectos de calidad y mantencin del
software.
Modelo
PROTOTIPACION(orden:A, I, D)
Hay prototipos que se construyen
para desecharse.
El cliente una vez que ve
funcionando el prototipo quiere
que lo mejoren y no que hagan un
nuevo sistema.
El programador comunmente
adquiere vicios por desarrollar
rpidamente.
Modelo
PROTOTIPACION RAPIDA
Construir prototipos sucios y desechables, utilizando
distintas herramientas para su utilizacin : generadores
de informes, generadores de ventanas, herramientas de
productividad como Word o Excel,etc.
Modelo
PROTOTIPACION RAPIDA
Cundo usarlo ?
Para evitar un ataque cardaco debido a la presin
del cliente por ver algo funcionando.
Cundo NO usarlo ?
No se debe usar en lo posible.
Modelo
USO DE LENGUAJES DE ALTO NIVEL
4 Generacin (orden: D, I, A)
Descripcin :
Abarca el uso de una amplia gama de herramientas de
software que especifican el software a alto nivel y luego
la convierten automticamente al cdigo fuente.
Se orienta a la posibilidad de especificar el software a un
nivel ms prximo al lenguaje natural.
Idealmente el cliente describe los requerimientos que
son traducidos a un prototipo operativo (casi on-line).
Modelo
USO DE LENGUAJES DE ALTO NIVEL
4 Generacin (orden: D, I, A)
Las herramientas no son ms
fciles de usar que los lenguajes de
programacin.
El cdigo producido por las
herramientas es ineficiente (rgido).
El diseo inicial queda desvirtuado
(intercalaciones, otras).
Modelo
USO DE LENGUAJES DE ALTO NIVEL
Principales inconvenientes !
El tipo de herramientas utilizadas slo est disponible
para mbitos de aplicacin especficos
( generalmente para sistemas de gestin )
El cliente puede no estar seguro de lo que necesita, o ser
ambiguo al plantear lo que desea. Las herramientas de
alto nivel actuales no son an tan sofisticadas como
para entender el lenguaje natural.
Induce a saltarse la actividad de Diseo (slo esbozos).
Modelo
USO DE LENGUAJES DE ALTO NIVEL
Cundo usarlo ?
Si un alto % de los requerimientos es de :
clasificacin, consulta y presentacin de datos.
Cmo usarlo ?
Efectuando un diseo global del sistema
Efectuando una prueba completa y elaborando la
documentacin necesaria, para transformar la
implementacin de 4gl 5gl en un producto de
software.
Modelo
Ensamblaje de Componentes Reusables
El proceso de desarrollo se focaliza (centrado) en
integrar partes del sistema ya existentes ms que
en desarrollarlas (obviamente se debe tener o al
menos conocerlas).
El ensamblaje de componentes es una tecnologa
emergente.
Modelo
Ensamblaje de Componentes Reusables
Qu significa realmente ensamblar
componentes de software ?
Analoga : Un Ingeniero Electrnico debe construir
el hardware de control para un producto basado en
microprocesador. Disea el circuito digital, hace
algunos anlisis para asegurar que la funcin
deseada ser realizada y busca en un catlogo de
componentes digitales, lo que necesita.
Modelo
Ensamblaje de Componentes Reusables
Componentes reusables :
Componente : parte del producto que encapsula
datos y proceso. Puede ser una unidad mnima,
mdulo o sub-sistema.
Permiten que el diseador pueda concentrarse en
los aspectos innovativos de un diseo (es decir,
las partes que representan algo nuevo).
Deben ser diseados e implementados, de modo
que puedan ser usados en distintos productos.
Modelo
Ensamblaje de Componentes Reusables
Cmo se identifica un componente en un
catlogo ?
Componente : PART_876_A
Funcin
: XXXXXXXXXXXXX
Interfaz
: (parmetros ubicacin, parmetros
componente A, parmetros componente B)
Set de guas de integracin o ensamble.
Modelo
Ensamblaje de Componentes Reusables
Identificar
componentes
candidatos
Buscar
componentes
en libreras
Extraer
componentes
disponibles
Construir
componentes no
existentes
Catalogar
nuevos
componentes
Construir iteracin
n-sima del producto
Modelo ESPIRAL
( Barry Boehm )
Planificacin
Ciclo 4
Anlisis de Riesgos
Ciclo 3
Ciclo 2
Punto de entrada
del proyecto
Ciclo 1
Evaluacin Cliente
Ingeniera
Modelo ESPIRAL
(orden: A, D, I)
Puede alargar innecesariamente el
proyecto.
La funcin de anlisis de riesgo debe
ser clara.
La sucesivas aproximaciones pueden
ser divergentes.
Modelo ESPIRAL
Modelo EN ESPIRAL : el ms realista !
Cubre las mejores caractersticas del modelo cascada y
del evolutivo, agregando dos actividades que faltan en
aquellos : Planificacin y Anlisis de Riesgos
Divide un proyecto en mini-proyectos.Cada proyecto se
centra en uno o ms riesgos hasta que todos estn
controlados
Despus de controlar todos los riesgos, recin el proyecto
termina.
Modelo ESPIRAL
Principales marcos de actividades o
regiones de actividades
1. Planificacin : Determinar objetivos, alternativas y
restricciones
2. Anlisis de Riesgos : Identificar riesgos y analizar
alternativas de resolucin
3. Ingeniera : Desarrollar el producto del sgte. nivel
4. Evaluacin del Cliente : Someter a comprobacin
del cliente el producto de ingeniera.
Modelo ESPIRAL
Cada iteracin contempla los sgtes. cinco
pasos :
1. Determinar objetivos, alternativas y restricciones
2. Identificar y resolver riesgos
3. Evaluar alternativas y decidir si continuar o no
4. Generar los productos de esta iteracin y comprobar
que son correctas
5. Planificar la siguiente iteracin (si se decide
continuar)
Modelo ESPIRAL
RIESGO
Definicin :
Hecho que pueda ocurrir en el futuro
Pueden referirse a :
Planificacin
Requerimientos poco comprensibles
Entorno de desarrollo
Personal contratado
etc.
Modelo ESPIRAL
Riesgo
Probabilidad
que ocurra
Magnitud
de la prdida
(semanas )
5
Exposicin a
riesgo
( semanas )
2,5
Planificacin demasiado
optimista
50 %
1,0
La nuevas herramientas
de programacin no
producen el ahorro
prometido
30 %
1,5
Modelo ESPIRAL
( extensin del modelo para el Ciclo de Vida completo )
Planificacin
Comunicacin
con el Cliente
Ciclo 4
Ciclo 3
Ciclo 2
Ciclo 1
Anlisis de Riesgos
Ingeniera
Evaluacin
del Cliente
Construccin & Release
Proyectos de desarrollo de
requerimientos
Proyectos de Desarrollo
de nuevos productos
Proyectos de Evolucin
de productos
Proyectos de Mantencin
de productos
Modelo ESPIRAL
( extensin del modelo para el Ciclo de Vida completo )
Regiones :
Comunicacin con el cliente
Tareas para establecer efectiva comunicacin entre
desarrollador y cliente
Planificacin
Anlisis de Riesgos
Ingeniera
Construccin & Release
Tareas para construir,probar, instalar y proveer soporte al
usuario(documentacin y capacitacin)
Evaluacin del Cliente
Modelo ESPIRAL
Principales inconvenientes !
Es un modelo complicado
Requiere de una buena gestin
Requiere de conocimientos sobre Gestin de
Riesgos
Puede ser difcil convencer a los clientes : es un
modelo relativamente nuevo y no se ha usado tanto
como los otros
Prueba &
60 - 90 das
Vuelta atrs
Ensamblaje de
componentes
reusables, en base a
especificacin de
componentes
Componentes ya
estn probados ,
slo se prueban las
interfaces
Captura de requerimientos
Anlisis&Diseo
Implementacin
Organizacin
en base a los
contenidos,
Testing
flujos de
Componentes de soporte
trabajo,
Gestin
productos de
Ambiente de desarollo
trabajo y
Liberacin
equipo de
trabajo
Iteracin
preliminar
It.
It.
N+1
Iteraciones
Construccin&
Release
2. Recoleccin de informacin
De distintas fuentes y medios de almacenamiento
3. Seleccin de informacin
Del total de informacin recolectada seleccionar la
informacin relevante
4. Arquitectura de la informacin
Existen dos tipos : lineal y jerrquica
6.Diseo Grfico
Caractersticas visuales : disposicin de la informacin en
la pantalla, uso de colores, definicin de tipos de letras, uso
de imgenes, definicin de la sealtica(conos).
7. Construccin&Release
Similar a otros modelos
Resumen
Modelos de desarrollo de software
No son modelos alternativos sino complementarios :
pueden combinarse para aprovechar las ventajas de
cada uno en un nico proyecto.
Se deben equilibrar los requerimientos de velocidad
de desarrollo y el COMPROMISO CON LA
CALIDAD.
Proceso
Insumos de
entrada
PROCESO
( Conjunto de actividades )
Productos
Descomposicin de un Proceso
PROCESO
Ejemplo : Proceso de Desarrollo
Actividad 1
Ej. Planificacin
Tarea 1
Ej. Narrar
requerimientos
Actividad 2
Ej. Especificacin de
Requerimientos
Tarea 2
Ej. Representar
requerimientos en
modelos
Actividad N
Ej. Prueba
Tarea 3
Ej. Presentar
modelos al cliente
Atributos de un Proceso
1. Objetivos
2. Roles y Responsabilidades
3. Entradas al proceso
4. Actividades y Tareas durante el proceso
5. Salidas desde el proceso
6. Tiempos y consideraciones de manejo de excepciones
7. Recursos
8. Supuestos
9. Restricciones y materiales de soporte
10. Verificacin y mtricas
Paradigma ETVX
Entry
Task
eXit
CRS-APP
Analysis
GUI Prototype
Requirements
Software
Requirements
Specification (SRS)
Unified Modeling
Language (UML )
INPUTS
PROCESS
OUTPUTS
Atributos de Calidad
del proceso de desarrollo
Atributos de Calidad :
Entendible
Que est explcitamente definido y sea fcil entender su
definicin
Soportado
Que las actividades sean apoyadas por herramientas
CASE
Visible
Que cada actividad termine con resultados claros , de
modo que el progreso sea externamente visible
Atributos de Calidad
del Proceso de Desarrollo
Atributos de Calidad :
Aceptable
Que sea aceptado y usado por los Ingenieros de Software
responsables por el producto de software
Confiable
Que errores en el proceso sean evitados o corregidos, antes
que influyan en el producto de software.
Robusto
Que el proceso pueda continuar, a pesar de los problemas
inesperados
Atributos de Calidad
del Proceso de Desarrollo
Atributos de Calidad :
Mantenible :
Que el proceso evolucione para reflejar cambios
organizacionales
Rpido :
Que el proceso libere el producto de software lo
antes posible.
Pre-Desarrollo
Desarrollo
Post-Desarrollo
Procesos Continuos
Fase
Proceso 1 : Resumen
Lista de las actividades (de 1 a n)
Por cada actividad (de la lista)
Tabla de Informacin de Entrada y procesos de
donde proviene y la actividad correspondiente.
Descripcin de la actividad
Tabla de Informacin de Salida y procesos hacia
donde se dirige esta informacin especificando la
actividad.
Gestin de proyecto
Iniciacin del proyecto
Relacionar las actividades de IEEE-1074 con el ciclo de vida
elegido.
Asignar recursos (humanos, materiales, software)
Elegir ambiente proyecto (metodologas, normas, herramientas,
exigencias contractuales)
Planificar la gestin de proyecto (organizacin del proyecto,
responsabilidades, definicin de los procesos de gestin y de control,
presupuestos, carta Gantt) IEEE 1058.1 Plan de gestin de
proyecto
Modelo Desarrollo SW
Iniciativa
Requerimientos
Anteproyecto
Anlisis / Diseo
Construccin
Pruebas
Implantacin
Manutencin
Charla SPIN-CHILE 2000 :
Aseguramiento de Calidad de
Software - Banco Sudamericano
Red
= Sales Manager
Arquitectura
Integral
Specification
Review
(ISR)
Customer
Requirements
Specification
(CRS-D/F/G/P )
Software
Software
Project
Project
Planning
Planning
Revisio
n
Project Plan
Review
Requireme
Requireme
nt
ntAnalysis
Analysis
and
and
prototype
prototype
generation
generation
Revisio
n
Software
Requirements
Review
Prototype
(pictures)
Software Project Plan (SPP)
Soft.Requirements
Quality Assurance Plan (QAP )
Especification(SRS-D/F/G/P)
Software Configuration Plan (SCP) Draft Users Manual
Software Test Plan ( STP )
Arquitectura
High Level
Design
Revisio
n
Detailed
Design
Software Design
Review
Software Design
Review
Prototype
Operational
- Architectural Design (SDS-A)
- Data Design ( SDS-D)
- User Interface Design (SDS-I)
- Performance (SDS-P)
Revisio
n
SQA
Impl
ement
ation
Revisio
n
SQA
Source Code
Review
Source Code
Algorithmic Design (SDS-AL)
Components Design(SDS-MO)
Software Test Description (STD)
OPERATION PHASE :
Post-implementation support
Control de Cambios
Bugs feedback to
previous steps
Unity and
Integration
Tests
Revisio
n
SQA
QAT # 1
Startu
Startu
pp
Phase
Phase
Certificati
on
Maint
enan
ce
Revisio
n
SQA
QAT#3
On site
Beta Version
QAT # 2
Users Manual
Modified
Modified
Source Code Documents
Activ idades de
Ingeniera
Activ idades de
Soporte
Dependencia
Requerimientos
Funcionales 1
Requerimientos
Funcionales 2
Requerimientos
Funcionales 3
Especificacin de
la Arquitectura
Especificacin de
la Arquitectura
Especificacin de
la Arquitectura
Especificacin de
Componentes
Especificacin de
Componentes
Especificacin de
Componentes
Empaquetamiento
del Producto
Especificacin
de Pruebas
Rev isin
Especificacin
de Pruebas
CICLO 0
Especificacin
de Pruebas
Construccin
Ciclo 1
Construccin
Ciclo 2
Construccin
Ciclo 3
Ej ecucin de
Pruebas 1
Ej ecucin de
Pruebas 2
Pruebas de
Aceptacin
Instalacin
Producto
Versin 1
Presentacin
Proyecto
Rev isin
Presentacin
Ciclo 1
CICLO 1
CICLO 2
Certificacin
del
Producto
Instalacin
Producto
Versin 2
Instalacin
Producto
Final
Presentacin
Ciclo 2
Presentacin
Ciclo 3
CICLO 3
5. Resumen final
Frmula
Referencias
Libros :
Roger Pressman - Software Engineering : A practitioners approach - 4ta. Edicin.
McGraw-Hill.
Steve McConnell - Desarrollo y Gestin de Proyectos Informticos - McGrawHill.
Papers
Normas internacionales
Norma IEEE 1074 - Standard for Developing Software Life Cycle Processes
ISO 12207 - Information Technology - Software Life Cycle Processes