of 22 /22
- 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

04.01. ciclo vida

  • Author
    teby10

  • View
    72

  • Download
    2

Embed Size (px)

Text of 04.01. ciclo vida

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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