- 1 Fac. Informática - Universidad Nacional de La Plata Maestría Ingeniería de Software Ciclo de Vida de Desarrollo de Software Alejandro Oliveros [email protected]Administración de Proyectos 1er. Cuatrimestre 2006 AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software 2 Temario • Ciclo de vida del software • Modelos de proceso software • Ciclos de vida de desarrollo de software
1. Fac. Informtica - Universidad Nacional de La PlataMaestra
Ingeniera de SoftwareCiclo de Vida de Desarrollo de Software
Alejandro [email protected] de Proyectos
1er. Cuatrimestre 2006Temario Ciclo de vida del software Modelos de
proceso software Ciclos de vida de desarrollo de software
AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software2
- 1
2. Desarrollo de software En el proceso de desarrollo de
software: conjunto de actividades que generan productos intermedios
los que, a su vez, son transformados en otros productos por otros
procesos. El desarrollo puede verse como una cadena de actividades
conproductos intermedios, esa visin es la de ciclo de vida.
AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de
software3Ciclo de vidaNacimientoMadurez y muerte Vida Evoca la
visin de los organismos vivientes Puede verse como una secuencia de
estados AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de
software4 - 2
3. Ciclo de vida de sistemasPlaneamiento Operacin y Desarrollo
Mantenimiento AP-2006-Alejandro OliverosCiclo de vida de desarrollo
de software5Modelo en cascada Anlisis de necesidades del usuario
Diseo s de programas Anlisis de sistemas Diseo s de mdulos
Especificaciones de Requerimientos Diseo s de bajo nivel Diseo s de
algoritmosREQUERIMIENTOSDEL SISTEMA DISEO PRELIMINARDISEO DETALLADO
Diseo de alto nivel CODIGO Definicin de la arquitectura desoftware
Programas funcionando AP-2006-Alejandro OliverosCiclo de vida de
desarrollo de software6- 3
4. Proceso Conjunto de pasos que involucran actividades,
restricciones y recursosque producen un output de algn tipo
Involucra: Tcnicas, Herramientas, Procedimientos Proceso. Secuencia
de pasos ejecutadas con un propsito dado [IEEE-STD-610]. Proceso
Software. Un conjunto de actividades, mtodos, prcticas
ytransformaciones que la gente usa para desarrollar y mantener
softwarey los productos asociados AP-2006-Alejandro Oliveros Ciclo
de vida de desarrollo de software 7Definiciones Tcnica: conjunto de
pasos a seguir para producir algn resultado Herramienta: es un
instrumento o sistema automatizado para alcanzaralgo en una forma
mejor Mtodo/Procedimiento: combinacin de herramientas y tcnicas que
enconjunto producen un producto particular Ejemplo Tcnica: lectura
de cdigo Herramienta: analizador de cdigo Mtodo: inspeccin de
cdigo, que usa las dos anteriores Multiplicidad de categoras y
definiciones AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo
de software 8- 4
5. Procesos de desarrollo de software Establecer
requerimientosDefinir arquitecturaREQUERIMIENTOSDEL SISTEMA DISEO
PRELIMINARDisear DISEOmdulos DETALLADOCODIGO Codificar Delivery
AP-2006-Alejandro OliverosCiclo de vida de desarrollo de
software9Modelo completo NecesidadesResultadoRequerimientos Diseo
Diseo Cdigopreliminar detallado EspecificarDisear
DisearCodificarDelivery Requerimientos arquitecturamdulosPROJECT
MANAGEMENT AP-2006-Alejandro OliverosCiclo de vida de desarrollo de
software 10- 5
6. Modelo abstracto Necesidades ResultadoEstado 1Estado 2 .
Estado NActividad AActividad B.Actividad Z PROJECT MANAGEMENT
AP-2006-Alejandro OliverosCiclo de vida de desarrollo de software
11Nomenclatura Dos conceptos Ciclo de vida = visin del proceso
software que considera la presencia de productos Ciclo de vida de
software =conjunto de mtods que cubren el ciclo de vida completo:
modelo de desarrollo incremental, uso de diseo estructurado =
proceso software = modelo de ciclo de vida = modelo de proceso
software A los efectos de la preocupacin en el proceso, se pueden
considerar comosinnimos AP-2006-Alejandro OliverosCiclo de vida de
desarrollo de software 12- 6
7. Temario Ciclo de vida del software Modelos de proceso
software Ciclos de vida de desarrollo de software AP-2006-Alejandro
OliverosCiclo de vida de desarrollo de software 13El proceso por
dentro Establece todas las principales actividades del proceso
Utiliza recursos, sujeto a una serie de restricciones(tal como
uncronograma) y genera productos intermedios y finales Puede estar
compuesto por subprocesos que se encadenan de algunamanera Cada
actividad del proceso tiene criterios de entrada y salida Las
actividades se organizan en una secuencia Tiene una serie de
principios-gua que explican los objetivos de cadaactividad Las
restricciones o controles pueden ser de aplicacin a una
actividad,recurso o producto AP-2006-Alejandro OliverosCiclo de
vida de desarrollo de software 14- 7
8. Mapa conceptual del concepto de procesoRecursos
UtilizaSecuencia deSujeto-a actividadesPrincipios -guaUtilizaSujeto
a RestriccionesOrganizadas por Tiene Sujeto-a Explica Proceso
ActividadesIncluyeAlcanzaProduce Produce y procesaObjetivos
Producto final Productosintermedios Compuesto
deSatisfaceSubprocesosencadenanCriterios de entraday salida
Representacin basada en las ideas de Pfleeger, S.L., Ingeniera de
software. Teora y prctica, 2002 AP-2006-Alejandro Oliveros Ciclo de
vida de desarrollo de software15
9. Mapa conceptual del concepto de proceso
RecursosUtilizaSecuencia deSujeto -aactividades Principios-gua
Utiliza Sujeto a RestriccionesOrganizadas porTieneSujeto -a Explica
ProcesoActividades IncluyeAlcanza ProduceProduce y procesaObjetivos
Producto final ProductosintermediosCompuesto de Satisface
Subprocesos Criterios de entrada encadenan y salidaRepresentacin
basada en las ideas de Pfleeger,S.L., Ingenier a de software. Teor
a y pr ctica, 2002AP-2006-Alejandro OliverosCiclo de vida de
desarrollo de software15Estructura de los conceptos de
procesoProcess EngineeringEl Proceso de desarrollo de procesos
Propiedades estticas Process Enactment es utilizado para
desarrollar y evolucionarPropiedades dinmicasSoftware Engineering
El Proceso de Desarrollo de Software Propiedades estticas Process
Enactment es utilizado para desarrollar y evolucionarPropiedades
dinmicas Productos Softwareson utilizados para desarrollar y
evolucionarResultados para los usuarios Relaciones entre
actividades desoftware y actividades de procesoAP-2006-Alejandro
OliverosCiclo de vida de desarrollo de software16- 8
10. Para qu modelos de proceso? Ayuda una comprensi n comn
Ayuda encontrar inconsistencias, redundancias y omisiones El modelo
debera reflejar los objetivos de desarrollo Permite evaluar
actividades candidatas para atacar estos objetivos. Permite la
adecuacin a cada situacin especialAP-2006-Alejandro OliverosCiclo
de vida de desarrollo de software17Acciones y entidades de procesos
(1/2)AdecuacinAdecuacinProcess Model . An abstractrepresentation of
a processA conceptual framework forarchitecture, design, or
definitionconsistently incorporating, relating, and tailoring
process elements intoARQUITECTURA enactableprocesses DEL PROCESO
Desarrollo Adecuacin An embodiment of a process architecture that
establishes the architectural options and parameters, the existing
elements toEvolucinDISEO DEL be reused, the structure and behavior
of PROCESO the new elements, and the relationships among these
elements DesarrolloAdecuacin EvolucinAn implementation of a process
designin the form of a partially ordered set ofEvolucin DEFINICION
DELprocess steps that is
enactablePROCESOFeiler&HumphreyAP-2006-Alejandro OliverosCiclo
de vida de desarrollo de software18- 9
11. Acciones y entidades de procesos (2/2) Adecuar DEFINICION
DELPlanearPLAN DE PROCESO PROCESOP.Disponible. An instanceof a
process definition thatincludes all the elements Intanciarrequired
for enactment AnalizarRESTRICCIONESAjustar Analizar DE
PROCESOAjustarESTADO DELPROCESO PROCESO
IntanciarDISPONIBLEDISPONIBLEAnalizarPROCESO DE
CONTROLInteractuarIniciar Monitorear
AnalizarAjustarMonitorearPROCESOEN ACCIONTRAZA DELAGENTE Ejecutar
PROCESO AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de
software 19Modelos y mtricas La mediciones capturan informacin
sobre el proceso que se estejecutando Permiten: Evaluar el proceso
Profundizar el conocimiento del producto Detectar las debilidades
del ambiente Proveer conocimiento sobre la mejora del proceso
Ayudar en la evolucin del proceso AP-2006-Alejandro Oliveros Ciclo
de vida de desarrollo de software 20 - 10
12. Modelo de proceso y mtodos (Basili) Un modelo de proceso
define la secuencia de mtodos y el desarrollode los documentos
anexos Los mtodos se determinarn por las necesidades: las
necesidades del problema las necesidades del ambiente la capacidad
de integracin de los mtodos que requiere el modelo de ciclo de vida
AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software
21Modelo de proceso y mtodos (Basili) Input: objetos sobre los que
opera el mtodo y el estado del ambiente enque se aplica Output:
objetos que produce el mtodo y cambios en el ambiente Tcnica: la
tecnologa bsica a que se ejecuta, ej: el algoritmo que sesigue
Formalidad: rigor con el que se aplica Enfasis:conjunto de focos
del mtodo y tcnica Definicin del mtodo: modelo de proceso asociado
con la aplicacin dela tcnica Perspectiva: punto de vista desde el
cual se aplica el mtodo y la tcnica Calidad del producto: conjunto
de cualidades del output que interesan Calidad del proceso:
conjunto de cualidades del proceso AP-2006-Alejandro Oliveros Ciclo
de vida de desarrollo de software 22 - 11
13. Modelo de U. MassachussetsTable 1: Basic Unit Cell
SpecificationSpecificationEntry Conditions to be met before task
initiationExit Results produced IN: Feedback from other
cellsFeedback OUT: Feedback to other cellsTask What is to be done
(who, what, when)? Standards, procedures, and
responsibilities.Measurements Task, output, and feedback measures
AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software
23Temario Ciclo de vida del software Modelos de proceso software
Ciclos de vida de desarrollo de software Cascada Prototipo Mejora
iterativa Entrega en etapas Espiral Reuso Sistemas Web
AP-2006-Alejandro Oliveros Ciclo de vida de desarrollo de software
24 - 12
14. Requerimientosde softtwareModelo cascada completoDiseo
preliminar DiseodetalladoCodificacinTesteounitario Testeo
integracinTesteoOperacin y sistema mantenimiento software
AP-2006-Alejandro OliverosCiclo de vida de desarrollo de software
25Visin de la calidadValidacin de los requerimientos Requerimientos
PlaneamientoTesteode softtwaretesteo sistemasistema dede
softwaresoftwareVerificacin del DiseoDiseo Planeamiento
testeoTesteo preliminar integracinintegracin DiseoPlaneamiento
Testeodetallado testeo unitariounitario Codificacin
AP-2006-Alejandro OliverosCiclo de vida de desarrollo de software
26- 13
15. Modelo de cascada clsico (Davis) Requiere definir qu har el
sistema antes de construrlo(REQUERIMIENTOS/DISEO) Requiere planear
la interaccin de las partes antes de
construrlas(DISEO/CODIFICACION) Los gerentes deben seguir muy de
cerca el proyecto y corregir muytempranamente Requiere producir una
serie de documentos que luego se usan en eltesteo y mantenimiento
Reduce los costos de desarrollo y mantenimiento como consecuenciade
las razones anteriores Permite a la organizacin de desarrollo ser
ms estructurada yorganizada AP-2006-Alejandro Oliveros Ciclo de
vida de desarrollo de software27Fases conceptuales Descubrimiento
Inven cin Implementa cinFoco TiempoCopyright 1998 Steven C.
McConnell. Reprinted with permission from Software Project
SurvivalGuide (Microsoft Press, 1998). AP-2006-Alejandro Oliveros
Ciclo de vida de desarrollo de software28- 14
16. Superposicin de actividadesPlaneamiento
ManagementDesarrollo derequerimientosArquitecturaDiseo Detallado
Construccin QA/Testeo de sistema Documentacin del usuarioCheckpoint
de revisndel planTiempo e Copyright 1998 Steven C. McConnell.
Reprinted with permission from Software Project Survival Guide
(Microsoft Press, 1998).AP-2006-Alejandro Oliveros Ciclo de vida de
desarrollo de software 29Problemas del cascada El desarrollo de
software es iterativo en su esencia Cmo se transforman los
productos? El desarrollo es una actividad de resolucin de problemas
En los hechos de una etapa se pasa a cualquiera de las otras Se ha
convertido en un modelo ideal tpicoAP-2006-Alejandro Oliveros Ciclo
de vida de desarrollo de software 30- 15
17. Prototipos : Tipologia Escenarios o simulaciones,
herramienta para entender o validad losrequerimientos del usuario
Rpidos desechables, construccin quick and dirtyque atacan unaspecto
particular para que el usuario potencial lo utilice durante
untiempo y provea informacin al equipo. Evolutivos, atacan una
funcionalidad acotada del sistema que resuelvealgunos de los
requerimientos del usuario. AP-2006-Alejandro Oliveros Ciclo de
vida de desarrollo de software 31 Requerimientos Modelo prototipode
softwareDiseo preliminar Validacin Diseodetallado
CodificacinVerificacinTesteounitario PROTOTIPO Testeo integracin
TesteoOperacin ysistema mantenimientosoftware AP-2006-Alejandro
Oliveros Ciclo de vida de desarrollo de software 32 - 16
18. Modelo mejora iterativa Requerimi entos Requerimientosde
softtwarede softtwareDiseoDiseo CodificacinCodificacin Testeo
TesteoAnlisis Anlisis AP-2006-Alejandro OliverosCiclo de vida de
desarrollo de software33Requerimientos Entrega en etapas de
softtware DiseopreliminarEtapa 1 Diseo detallado, Codificacin,
Etapa 2 Testeo, Delivery Diseo detallado, Codificacin, Testeo y
Delivery Etapa n Diseo detallado, Codificacin, Testeo y Delivery
Delivery AP-2006-Alejandro OliverosCiclo de vida de desarrollo de
software34 - 17
19. Hitos y fases principales Mostly open-Mostly closed- ended
work ended work0%10% 20% 3 0 % 40% 50% 6 0 % 70% 80% 90%
100%Beginning of ProjectProject Launch/Feasibility StudyPreliminary
Requirements DevelopmentDetailed Requirements DevelopmentPlanning
Checkpoint Review andGo/No Go DecisionArchitectureFirst StageStage
1 ReleaseSecond StageStage 2 ReleaseLast Stage (assuming 3
stages)Stage 3 ReleaseRelease PreparationsProduct ReleaseCopyright
1998 Steven C. McConnell. Reprinted with permission from Software
ProjectSurvival Guide (Microsoft Press, 1998). AP-2006-Alejandro
OliverosCiclo de vida de desarrollo de software 35Modelo espiral
AP-2006-Alejandro OliverosCiclo de vida de desarrollo de software
36- 18
20. Componentes del modelo Objetivos. Objetivo general a
alcanzar, luego se ira desglosando en msniveles. Restricciones.
Restricciones que se imponen al proyecto. Alternativas. Se detallan
las alternativas de solucin. Riesgos. Se detallan los riesgos que
podra generar cada alternativa. Resolucin de Riesgos. Propuesta de
solucin a cada uno de los riesgos. Plan de la etapa siguiente. Plan
de la etapa siguiente. Compromiso. Detalles de Compromisos para
llevarla a cabo.AP-2006-Alejandro OliverosCiclo de vida de
desarrollo de software 37Modelo reusoSistemadesarrollado
Repositorio de Nuevo sistemapreviamentesoftwarea desarrollar
Requerimientos Requerimientos de softtwareRequerimientosde
softtware de softtwareDiseo Diseo Diseo Codificacin Codificacin
CodificacinTesteo TesteoTesteoAP-2006-Alejandro OliverosCiclo de
vida de desarrollo de software 38 - 19
21. Procesos en la WebCaracterstica Proyecto
tradicionalProyecto WebObjetivo primario Construir productos de
software de calidadLanzar productos de calidad al mercado tana un
costo mnimo pronto como sea posibleTamao tpico Medio a grandePequeo
(3 a 5 miembros)Duracin tpica 10-18 meses 3-6 mesesEnfoque de
desarrollo Clsico, basado en requerimientos, entregaRAD, contruccin
en bloques, prototipos,por fases o incremental, uso de
UMLdocumentacinPrincipal tecnologaOO, generadors, lenguajes
modernos de Componentes, lenguajes de 4ta y 5tausada programacin
(C++), herramientas CASE generacin (HTML, Java),
visualizacinProceso utilizado Basados en CMMAd hocProducto
desarrollado Basados en cdigo, la mayora nuevo, algnSistemas
basados en objetos, muchasreuso, muchas interfaces externas,
acomponentes reusables, pocas interfacesmenudo aplicaciones
complejas externas, relativamente simpleGente involucrada
Ingenieros en software, como 5+ aos de Diseadores grficos,
ingenieros en softwareexperiencia el ms de un dominio de con poca
experiencia (2+ aos),aplicacinrecientemente egresadosTecnologa de
VariasAnaloga basada en la experiencia actual, elestimacin
utilizadadiseo se basa en los recursos disponibles,enfoque de
breadown (WBS) AP-2006-Alejandro OliverosCiclo de vida de
desarrollo de software 39SE y Web Est abierta la problemtica de la
Ingeniera Software para proyectosWeb Web impacta a todo nivel:
Ciclo de vida del producto Procesos Project Management
AP-2006-Alejandro OliverosCiclo de vida de desarrollo de software
40 - 20
22. Referencias Zelkowitz, M.V., MSWE 607 Software Life Cycle
Methods andTechniques, Maryland, 2000, Notas de aula McConnell, S.,
Software Project Survival Guide, MicrosoftPress, 1998,Redmond
Reifer, D.J., Web Development: Estimating Quick-to-Market
Software,IEEE Software, nov/dic 2000 Feiler, P H and Humphrey, W S
Software process development andenactment: concepts and definitions
in Proc. 2nd Int. Conf: SoftwareProcess, Berlin, Germany (25-26
February 1993) pp 28-39 AP-2006-Alejandro Oliveros Ciclo de vida de
desarrollo de software 41 - 21