03 proceso de desarrollo de software

25
Proceso de desarrollo de software Pablo Gervás F. Informática, UCM, noviembre 2007

Transcript of 03 proceso de desarrollo de software

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