Post on 24-Jan-2016
transcript
Proceso de desarrollo de software
Pablo Gervás
F. Informática, UCM, noviembre 2007
Contenidos
• El proceso de desarrollo de software (PDS)
• Una vara de medir para empresas: SW CMM
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)
Para vosotros
• Personas
• Producto
• Proyecto
• Proceso
(vuestro grupo)
(la aplicación elegida)
(parte práctica IS)(entregas mensuales +
cómo vosotros decidáis
organizaros)
Modelos Genéricos de Desarrollo de Software
• Desarrollo Evolutivo
• Modelo de Cascada
• Prototipado
• En espiral
• Desarrollo basado en componentes
• Métodos Formales
Desarrollo Evolutivo
Descripcióndel sistema
VersiónInicial
VersiónFinal
VersionesIntermedias
Especificación
Desarrollo
Validación
ActividadesConcurrentes
Modelo de CascadaDefinición de
Requerimientos
Diseño del Softwarey del Sistema
Implementación yPrueba de unidades
Integración y Prueba del Sistema
Operación yMantenimiento
Prototipado • Se usa un prototipo para dar al usuario una idea
concreta de lo que va a hacer el sistema• Se aplica cada vez más cuando la rapidez de
desarrollo es esencial• Prototipado exploratorio: el prototipo inicial se
refina progresivamente hasta convertirse en versión final
• Prototipado de usar y tirar: de cada prototipo se extraen ideas buenas que se usan para hacer el siguiente, pero cada prototipo se tira entero
Modelo de Proceso de EspiralDetermine objetivos
alternativas yrestricciones
Evalúe alternativas,identifique y resuelva
riesgosAnálisis de
Riesgos
Análisis deRiesgos
Análisis deRiesgos
Análisis de
Riesgos
Planea la siguiente fase
Desarrolla y verificael siguiente nivel
del producto
PrototipoOperacionalPrototipo
3Prototipo2Proto
tipo1
Plan de requerimientosPlan del ciclo de vida
REVISIÓN
Plan de Desarrollo
Plan de Integracióny Prueba
Concepto deOperación
Simulaciones, modelos y benchmarks
Requerimientos de
SWValidación deRequerimientos
DiseñoV &V
Servicio
Prueba deAceptación
Prueba deIntegración
Prueba deUnidades
Codificación
DiseñoDetallado
Diseño delProducto
Identificarcomponentescandidatos
Buscar componentesen biblioteca
Extraercomponentesdisponibles
Construircomponentes
que falten
Añadircomponentesa biblioteca
Construiriteración Ndel sistema
Desarrollo basado en componentes
Desarrollo con métodos formales
Requirementsdefinition
Formalspecification
Formaltransformation
Integration andsystem testing
Transformaciones formales
R2Formalspecification R3 Executable
program
P2 P3 P4
T1 T2 T3 T4
Proofs of transformation correctness
Formal transformations
R1
P1
El Proceso de Software
• “Conjunto estructurado de actividades requeridas para desarrollar un sistema de software.
Especificación. Diseño. Validación. Evolución”.
• “Las actividades varían dependiendo de la organización y del tipo de sistema a desarrollarse”.
• “Debe estar explícitamente modelado si va a ser bien administrado”.
El Proceso de Software• Las instrucciones para desarrollar una aplicación.
Cómo descubrir qué tiene que hacer la aplicación. Cómo decidir cómo va a estar estructurada la aplicación. Cómo asegurarse de que la aplicación funciona y hace lo que tenía que hacer. Cómo ocuparse de que la aplicación se pueda ampliar / migrar / adaptar.
• Hay que adaptarlas para cada caso.
• Conviene que las instrucciones figuren por escrito
(¿Cuándo?)
Proceso explícito: condiciones
• Se llevan a cabo varios proyectos en paralelo
• Se hacen proyectos periódicamente
• El equipo es muy grande
• Hay mucha rotación de personal
• Se pretende ir refinando la manera de trabajar
Qué debe incluir un Proceso
• Especificación - establecer los requisitos y restricciones del sistema
• Diseño - producir un modelo en papel del sistema• Manufactura - construir el sistema• Prueba - verificar que el sistema cumpla con las
especificaciones requeridas• Instalación - entregar el sistema al usuario y
asegurarse de que satisface sus necesidades• Mantenimiento - reparar fallos en el sistema cuando
sea descubiertos
Ejemplos
• Dos modelos de proceso concretos:– Proceso Unificado de Rational (pesado)– Extreme Programming (ágil)
Proceso Unificado de Rational
Elaboration Construction TransitionInception
Phases
Requirements Capture
Analysis & Design
ImplementationTest
ManagementEnvironmentDeployment
Process Components
Supporting Components
Iterations
preliminaryiteration(s)
iter.#1
iter.#2
iter.#n
iter.#n+1
iter.#n+2
iter.#m
iter.#m+1
Organizationalong content
Organization along time
Extreme Programming (XP)Diferencias fundamentales (hay más que ya se verán)• No hay requisitos explícitos sino que el cliente participa
en el desarrollo• Se empieza por automatizar las pruebas• Se desarrolla siempre la versión más simple posible que
resuelva el problema• Se ejecutan todas las pruebas todos los días• Se cambia el diseño (aunque sea radicalmente) siempre
que haga falta
Contenidos
• El proceso de desarrollo de software (PDS)
• Una vara de medir para empresas: SW CMM
La empresa ideal
• El Dpto. de la Defensa de los US fundó el Software Engineering Institute (SEI) asociado con Carnegie Mellon.
• Desarrollan el Software Capability Maturity Model (SW CMM) a mediados de 1980s, refinado en los inicios de l990s.
Software Capability Maturity Model
Level 3Defined
Level 2Repeatable
Level 1Initial
Level 4Managed
Level 5Optimizing
Areas clave del proceso
Process change managementTechnology change managementDefect prevention
Software quality managementQuantitative process management
Peer reviewsIntergroup coordinationSoftware product engineeringIntegrated software managementTraining programmeOrganization process definitionOrganization process focus
Software configuration managementSoftware quality assuranceSoftware subcontract managementSoftware project tracking and oversightSoftware project planningRequirements management
Initial
Repeatable
Defined
Managed
Optimizing
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 31. Slide ##
Datos Agosto 2000
• Inicial 34,9%
• Repetible 38,2%
• Definido 18,5%
• Gestionado 5,5%
• Optimizado 2,9%
• Resultados de 901 empresas desde 1996.
Referencias
– Modelos de proceso• Pressman 17-46, Sommerville 42-67
– Proceso unificado de Rational• Jacobson, Krutchen
– SW CMM• Áreas clave del SW CMM (campus virtual)
• Pressman 21-25, Sommerville 557-575
• http://www.sei.cmu.edu/cmm/obtain.cmm.html