You are on page 1of 25

Proceso de desarrollo de software

Pablo Gervs

F. Informtica, 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 aplicacin elegida) (parte prctica IS) (entregas mensuales + cmo vosotros decidis organizaros)

Modelos Genricos de Desarrollo de Software


Desarrollo Evolutivo Modelo de Cascada Prototipado En espiral Desarrollo basado en componentes Mtodos Formales

Desarrollo Evolutivo
Actividades Concurrentes

Especificacin

Versin Inicial

Descripcin del sistema

Desarrollo

Versiones Intermedias

Validacin

Versin Final

Modelo de Cascada
Definicin de Requerimientos Diseo del Software y del Sistema

Implementacin y Prueba de unidades

Integracin y Prueba del Sistema

Operacin y Mantenimiento

Prototipado
Se usa un prototipo para dar al usuario una idea concreta de lo que va a hacer el sistema Se aplica cada vez ms cuando la rapidez de desarrollo es esencial Prototipado exploratorio: el prototipo inicial se refina progresivamente hasta convertirse en versin 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 Espiral


Determine objetivos alternativas y restricciones Anlisis de Riesgos Anlisis de Riesgos Anlisis de Riesgos Evale alternativas, identifique y resuelva riesgos

REVISIN

Prototipo Prototipo Operacional Anlisis Prototipo 3 Proto de 2 Riesgostipo1 Simulaciones, modelos y benchmarks

Plan de requerimientos Concepto de Plan del ciclo de vida Operacin

Planea la siguiente fase

Requeri Diseo mientos de Diseo del Detallado SW Plan de Validacin de Producto Codificacin Desarrollo Requerimientos Prueba de Unidades Plan de Integracin Diseo Prueba de y Prueba V &V Prueba de Integracin Desarrolla y verifica Aceptacin el siguiente nivel Servicio del producto

Desarrollo basado en componentes


Identificar componentes candidatos Construir iteracin N del sistema Aadir componentes a biblioteca Buscar componentes en biblioteca Extraer componentes disponibles

Construir componentes que falten

Desarrollo con mtodos formales

Requirements definition

Formal specification

Formal transformation

Integration and system testing

Transformaciones formales
Formal transformations T1 T2 T3 T4

Formal specification

R1

R2

R3

Executable program

P1

P2

P3

P4

Proofs of transformation correctness

El Proceso de Software
Conjunto estructurado de actividades requeridas para desarrollar un sistema de software.

Especificacin. Diseo. Validacin. Evolucin.

Las actividades varan dependiendo de la organizacin y del tipo de sistema a desarrollarse. Debe estar explcitamente modelado si va a ser bien administrado.

El Proceso de Software
Las instrucciones para desarrollar una aplicacin.

Cmo descubrir qu tiene que hacer la aplicacin. Cmo decidir cmo va a estar estructurada la aplicacin. Cmo asegurarse de que la aplicacin funciona y hace lo que tena que hacer. Cmo ocuparse de que la aplicacin se pueda ampliar / migrar / adaptar.

Hay que adaptarlas para cada caso. Conviene que las instrucciones figuren por escrito (Cundo?)

Proceso explcito: condiciones


Se llevan a cabo varios proyectos en paralelo Se hacen proyectos peridicamente El equipo es muy grande Hay mucha rotacin de personal Se pretende ir refinando la manera de trabajar

Qu debe incluir un Proceso


Especificacin - establecer los requisitos y restricciones del sistema Diseo - producir un modelo en papel del sistema Manufactura - construir el sistema Prueba - verificar que el sistema cumpla con las especificaciones requeridas Instalacin - 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


Organization along time

Phases Process Components


Requirements Capture Analysis & Design
Inception Elaboration Construction Transition

Organization along content

Implementation Test

Supporting Components
Management Environment Deployment
preliminary iteration(s) iter. #1 iter. #2 iter. #n iter. iter. #n+1 #n+2 iter. #m iter. #m+1

Iterations

Extreme Programming (XP)


Diferencias fundamentales (hay ms que ya se vern) No hay requisitos explcitos sino que el cliente participa en el desarrollo Se empieza por automatizar las pruebas Se desarrolla siempre la versin ms simple posible que resuelva el problema Se ejecutan todas las pruebas todos los das Se cambia el diseo (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 5 Optimizing

Le vel 4 Managed Level 3 Defined Le vel 2 Repeatable Level 1 Initial

Areas clave del proceso


O p t i m iz i n g P r o c e s sc h a n g em a n a g e m e n t T e c h n o l o g y c h a n g em a n a g e m e n t D e f e c tp r e v e n ti o n M a n a g e d S o f t w a r eq u a l i ty m a n a g e m e n t Q u a n t i ta t i v ep r o c e s sm a n a g e m e n t D e f i n e d P e e rr e v i e w s I n t e r g r o u pc o o r d i n a t i o n S o f t w a r ep r o d u c te n g i n e e r i n g I n t e g r a t e ds o f t w a r em a n a g e m e n t T r a i n i n gp r o g r a m m e O r g a n i z a t i o np r o c e s sd e f i n i t i o n O r g a n i z a t i o np r o c e s sf o c u s R e p e a t a b l e S o f t w a r ec o n f i g u r a t i o n m a n a g e m e n t S o f t w a r eq u a li t y a s s u r a n c e S o f t w a r es u b c o n t r a c tm a n a g e m e n t S o f t w a r ep r o j e c tt r a c k i n ga n d o v e r s i g h t S o f t w a r ep r o j e c tp l a n n i n g R e q u i r e m e n t sm a n a g e m e n t

I n i t i a l

Ian Sommerville 1995

Software Engineering, 5th edition. Chapter 31.

Slide ##

Datos Agosto 2000


Inicial Repetible Definido Gestionado Optimizado 34,9% 38,2% 18,5% 5,5% 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

You might also like