03 Proceso de Desarrollo de Software
-
Upload
marsapa-paredes -
Category
Documents
-
view
19 -
download
1
description
Transcript of 03 Proceso de Desarrollo de Software
![Page 1: 03 Proceso de Desarrollo de Software](https://reader036.fdocuments.co/reader036/viewer/2022062423/55cf97bc550346d033934cb4/html5/thumbnails/1.jpg)
Proceso de desarrollo de software
Pablo Gervás
F. Informática, UCM, noviembre 2007
![Page 2: 03 Proceso de Desarrollo de Software](https://reader036.fdocuments.co/reader036/viewer/2022062423/55cf97bc550346d033934cb4/html5/thumbnails/2.jpg)
Contenidos
• El proceso de desarrollo de software (PDS)
• Una vara de medir para empresas: SW CMM
![Page 3: 03 Proceso de Desarrollo de Software](https://reader036.fdocuments.co/reader036/viewer/2022062423/55cf97bc550346d033934cb4/html5/thumbnails/3.jpg)
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)
![Page 4: 03 Proceso de Desarrollo de Software](https://reader036.fdocuments.co/reader036/viewer/2022062423/55cf97bc550346d033934cb4/html5/thumbnails/4.jpg)
Para vosotros
• Personas
• Producto
• Proyecto
• Proceso
(vuestro grupo)
(la aplicación elegida)
(parte práctica IS)(entregas mensuales +
cómo vosotros decidáis
organizaros)
![Page 5: 03 Proceso de Desarrollo de Software](https://reader036.fdocuments.co/reader036/viewer/2022062423/55cf97bc550346d033934cb4/html5/thumbnails/5.jpg)
Modelos Genéricos de Desarrollo de Software
• Desarrollo Evolutivo
• Modelo de Cascada
• Prototipado
• En espiral
• Desarrollo basado en componentes
• Métodos Formales
![Page 6: 03 Proceso de Desarrollo de Software](https://reader036.fdocuments.co/reader036/viewer/2022062423/55cf97bc550346d033934cb4/html5/thumbnails/6.jpg)
Desarrollo Evolutivo
Descripcióndel sistema
VersiónInicial
VersiónFinal
VersionesIntermedias
Especificación
Desarrollo
Validación
ActividadesConcurrentes
![Page 7: 03 Proceso de Desarrollo de Software](https://reader036.fdocuments.co/reader036/viewer/2022062423/55cf97bc550346d033934cb4/html5/thumbnails/7.jpg)
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
![Page 8: 03 Proceso de Desarrollo de Software](https://reader036.fdocuments.co/reader036/viewer/2022062423/55cf97bc550346d033934cb4/html5/thumbnails/8.jpg)
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
![Page 9: 03 Proceso de Desarrollo de Software](https://reader036.fdocuments.co/reader036/viewer/2022062423/55cf97bc550346d033934cb4/html5/thumbnails/9.jpg)
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
![Page 10: 03 Proceso de Desarrollo de Software](https://reader036.fdocuments.co/reader036/viewer/2022062423/55cf97bc550346d033934cb4/html5/thumbnails/10.jpg)
Identificarcomponentescandidatos
Buscar componentesen biblioteca
Extraercomponentesdisponibles
Construircomponentes
que falten
Añadircomponentesa biblioteca
Construiriteración Ndel sistema
Desarrollo basado en componentes
![Page 11: 03 Proceso de Desarrollo de Software](https://reader036.fdocuments.co/reader036/viewer/2022062423/55cf97bc550346d033934cb4/html5/thumbnails/11.jpg)
Desarrollo con métodos formales
Requirementsdefinition
Formalspecification
Formaltransformation
Integration andsystem testing
![Page 12: 03 Proceso de Desarrollo de Software](https://reader036.fdocuments.co/reader036/viewer/2022062423/55cf97bc550346d033934cb4/html5/thumbnails/12.jpg)
Transformaciones formales
R2Formalspecification R3 Executable
program
P2 P3 P4
T1 T2 T3 T4
Proofs of transformation correctness
Formal transformations
R1
P1
![Page 13: 03 Proceso de Desarrollo de Software](https://reader036.fdocuments.co/reader036/viewer/2022062423/55cf97bc550346d033934cb4/html5/thumbnails/13.jpg)
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”.
![Page 14: 03 Proceso de Desarrollo de Software](https://reader036.fdocuments.co/reader036/viewer/2022062423/55cf97bc550346d033934cb4/html5/thumbnails/14.jpg)
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?)
![Page 15: 03 Proceso de Desarrollo de Software](https://reader036.fdocuments.co/reader036/viewer/2022062423/55cf97bc550346d033934cb4/html5/thumbnails/15.jpg)
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
![Page 16: 03 Proceso de Desarrollo de Software](https://reader036.fdocuments.co/reader036/viewer/2022062423/55cf97bc550346d033934cb4/html5/thumbnails/16.jpg)
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
![Page 17: 03 Proceso de Desarrollo de Software](https://reader036.fdocuments.co/reader036/viewer/2022062423/55cf97bc550346d033934cb4/html5/thumbnails/17.jpg)
Ejemplos
• Dos modelos de proceso concretos:– Proceso Unificado de Rational (pesado)– Extreme Programming (ágil)
![Page 18: 03 Proceso de Desarrollo de Software](https://reader036.fdocuments.co/reader036/viewer/2022062423/55cf97bc550346d033934cb4/html5/thumbnails/18.jpg)
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
![Page 19: 03 Proceso de Desarrollo de Software](https://reader036.fdocuments.co/reader036/viewer/2022062423/55cf97bc550346d033934cb4/html5/thumbnails/19.jpg)
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
![Page 20: 03 Proceso de Desarrollo de Software](https://reader036.fdocuments.co/reader036/viewer/2022062423/55cf97bc550346d033934cb4/html5/thumbnails/20.jpg)
Contenidos
• El proceso de desarrollo de software (PDS)
• Una vara de medir para empresas: SW CMM
![Page 21: 03 Proceso de Desarrollo de Software](https://reader036.fdocuments.co/reader036/viewer/2022062423/55cf97bc550346d033934cb4/html5/thumbnails/21.jpg)
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.
![Page 22: 03 Proceso de Desarrollo de Software](https://reader036.fdocuments.co/reader036/viewer/2022062423/55cf97bc550346d033934cb4/html5/thumbnails/22.jpg)
Software Capability Maturity Model
Level 3Defined
Level 2Repeatable
Level 1Initial
Level 4Managed
Level 5Optimizing
![Page 23: 03 Proceso de Desarrollo de Software](https://reader036.fdocuments.co/reader036/viewer/2022062423/55cf97bc550346d033934cb4/html5/thumbnails/23.jpg)
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 ##
![Page 24: 03 Proceso de Desarrollo de Software](https://reader036.fdocuments.co/reader036/viewer/2022062423/55cf97bc550346d033934cb4/html5/thumbnails/24.jpg)
Datos Agosto 2000
• Inicial 34,9%
• Repetible 38,2%
• Definido 18,5%
• Gestionado 5,5%
• Optimizado 2,9%
• Resultados de 901 empresas desde 1996.
![Page 25: 03 Proceso de Desarrollo de Software](https://reader036.fdocuments.co/reader036/viewer/2022062423/55cf97bc550346d033934cb4/html5/thumbnails/25.jpg)
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