Proceso de software y ciclo de vida

Embed Size (px)

Citation preview

  • 8/7/2019 Proceso de software y ciclo de vida

    1/72

    Gonzalo MndezDpto. de Ingeniera de Software e Inteligencia Artificial

    Facultad de Informtica

    Universidad Complutense de Madrid

    Curso 2008-2009

    Proceso Software yCiclo de Vida

    Presentacin de IS

    Proyecto de IS

    Introduccin a la IS

    Proceso y Ciclo de Vida

  • 8/7/2019 Proceso de software y ciclo de vida

    2/72

    Conceptos importantes

    Personas

    los que trabajanlos que trabajan Producto

    lo que se obtienelo que se obtiene Proyecto

    la pauta a seguir para desarrollar un productola pauta a seguir para desarrollar un producto Proceso

    la pauta a seguir para desarrollar un proyectola pauta a seguir para desarrollar un proyecto

  • 8/7/2019 Proceso de software y ciclo de vida

    3/72

    Un traje

    Personas

    El sastreEl sastre Producto

    El trajeEl traje

    Proyecto: el sastre, el traje, el presupuesto del traje, el traje en sel sastre, el traje, el presupuesto del traje, el traje en s, los, los

    pasos a dar para hacer el traje...pasos a dar para hacer el traje...

    Proceso La secuencia de acciones para hacer un traje concretoLa secuencia de acciones para hacer un traje concreto

  • 8/7/2019 Proceso de software y ciclo de vida

    4/72

    Una cena

    Personas

    Empleados de una empresa de cateringEmpleados de una empresa de catering Producto

    La cena que se sirveLa cena que se sirve

    Proyecto El menEl men, el presupuesto, lo que hay que hacer para, el presupuesto, lo que hay que hacer para

    conseguir el menconseguir el men, ..., ... Proceso

    La secuencia de acciones de servir una cenaLa secuencia de acciones de servir una cena

  • 8/7/2019 Proceso de software y ciclo de vida

    5/72

    Una gama de automviles

    Personas

    Empleados de la marcaEmpleados de la marca Producto

    Los automLos automvilesviles

    Proyecto Desarrollo de un modelo nuevoDesarrollo de un modelo nuevo

    Proceso Las instrucciones de la empresa sobre cLas instrucciones de la empresa sobre cmomo

    desarrollar un modelo nuevodesarrollar un modelo nuevo

  • 8/7/2019 Proceso de software y ciclo de vida

    6/72

    Para vosotros

    Personas

    vuestro grupovuestro grupo Producto

    la aplicacila aplicacin elegidan elegida

    Proyecto parte prparte prctica ISctica IS

    Proceso entregas mensuales + centregas mensuales + cmo vosotros decidmo vosotros decidisis

    organizarosorganizaros

  • 8/7/2019 Proceso de software y ciclo de vida

    7/72

    Capas de la IS

    Capa de enfoque de calidad

    Capa de proceso Capa de mtodos

    Capa de herramientas

  • 8/7/2019 Proceso de software y ciclo de vida

    8/72

    Capas de la IS

    Capa de calidad

    Base de cualquier proceso de ingenierBase de cualquier proceso de ingenieraa La IS se basa en calidadLa IS se basa en calidad

    Mejores tcnicas de construccin de software

    Capa de proceso Capa que une calidad y mCapa que une calidad y mtodostodos

    Desarrollo racional de la IS

    CConjuntoonjunto de actividades y resultados asociados quede actividades y resultados asociados que

    sirven para construir un producto softwaresirven para construir un producto software

  • 8/7/2019 Proceso de software y ciclo de vida

    9/72

    Capas de la IS

    Capa de mtodos

    Un mUn mtodo incluye:todo incluye: Anlisis de requisitos Diseo

    Construccin de programas

    Prueba

    Mantenimiento

    Suelen estar bastante ligados al procesoSuelen estar bastante ligados al proceso

    Capa de herramientas Soporte automSoporte automtico o semiautomtico o semiautomtico para el proceso y lostico para el proceso y los

    mmtodostodos Herramientas CASEHerramientas CASE

  • 8/7/2019 Proceso de software y ciclo de vida

    10/72

    Visin general de la IS

    Con independencia del modelo de proceso hay

    tres fases genricas: Fase de definiciFase de definicinn

    Fase de desarrolloFase de desarrollo Fase de mantenimientoFase de mantenimiento

    Cada una de estas fases se descompone en unconjunto de tareas

  • 8/7/2019 Proceso de software y ciclo de vida

    11/72

    Fase de definicin/especificacin

    Se identifican requisitos de sistema y software:

    InformaciInformacin a procesarn a procesar FunciFuncin y rendimiento deseadosn y rendimiento deseados

    Comportamiento del sistemaComportamiento del sistema Interfaces establecidasInterfaces establecidas

    Restricciones de diseRestricciones de diseoo

    Tareas principales:Tareas principales: Planificacin del proyecto software

    Ingeniera de sistemas o de informacin Anlisis de requisitos

  • 8/7/2019 Proceso de software y ciclo de vida

    12/72

    Fase de desarrollo

    Se define:

    CCmo disemo disear las estructuras de datosar las estructuras de datos CCmo implementar las funcionesmo implementar las funciones

    CCmo caracterizar las interfacesmo caracterizar las interfaces CCmo traducir el disemo traducir el diseo a programacio a programacinn

    CCmo validar el producto (pruebas, verificacimo validar el producto (pruebas, verificacin)n)

    Tareas principales:Tareas principales: Diseo del software

    Generacin del cdigo Pruebas del software

  • 8/7/2019 Proceso de software y ciclo de vida

    13/72

    Fase de mantenimiento

    Centrada en cambios que se pueda necesitar realizar

    sobre un producto Se vuelven a aplicar las fases de definicin y

    desarrollo, pero sobre software ya existente

    Pueden producirse cuatro tipos de cambio: CorrecciCorreccinn: Corregir los defectos: Corregir los defectos

    AdaptaciAdaptaci

    nn

    : Modificaciones por cambio externo: Modificaciones por cambio externo

    MejoraMejora: Ampliar los requisitos funcionales originales, a: Ampliar los requisitos funcionales originales, apeticipeticin del clienten del cliente

    PrevenciPrevencinn: Cambio para facilitar el cambio: Cambio para facilitar el cambio

  • 8/7/2019 Proceso de software y ciclo de vida

    14/72

    Visin general de la IS

    Estas fases se complementan con las

    actividades de soporte No crean softwareNo crean software Mejoran suMejoran su calidadcalidad

    Facilitan su desarrolloFacilitan su desarrollo Se aplican a lo largo de todo el proceso del

    software

  • 8/7/2019 Proceso de software y ciclo de vida

    15/72

    Visin general de la IS

    Ejemplos de actividades de soporte

    DocumentaciDocumentacinn GestiGestin de configuracin de configuracinn Seguimiento y control del proyecto de softwareSeguimiento y control del proyecto de software Revisiones tRevisiones tcnicas formalescnicas formales GarantGaranta de la calidad del softwarea de la calidad del software

    GestiGestin de reutilizacin de reutilizacinn MedicionesMediciones GestiGestin de riesgosn de riesgos

  • 8/7/2019 Proceso de software y ciclo de vida

    16/72

    Proceso software

    Conjunto estructurado de actividades y resultadosasociados requeridos para desarrollar un sistema desoftware EspecificaciEspecificacinn: establecer requisitos y restricciones: establecer requisitos y restricciones DiseDiseoo: Producir un modelo en papel del sistema: Producir un modelo en papel del sistema ImplementaciImplementacinn: construcci: construccin del sistema de softwaren del sistema de software ValidaciValidacinn:: verificar (por ejemplo mediante pruebas) que elverificar (por ejemplo mediante pruebas) que el

    sistema cumple con las especificaciones requeridassistema cumple con las especificaciones requeridas

    InstalaciInstalacinn: entregar el sistema al usuario: entregar el sistema al usuario EvoluciEvolucin y mantenimienton y mantenimiento:: cambiar/adaptar el softwarecambiar/adaptar el software

    segsegn las demandas;n las demandas; reparar fallos en el sistemareparar fallos en el sistema

  • 8/7/2019 Proceso de software y ciclo de vida

    17/72

    Modelos de proceso

    Un modelo de proceso, o paradigma de IS, es

    una plantilla, patrn o marco que define elproceso a travs del cual se crea software

    Dicho de otra forma, los procesos soninstancias de un modelo de proceso

    En esta asignatura los trminos proceso ymodelo de proceso se utilizan indistintamente

  • 8/7/2019 Proceso de software y ciclo de vida

    18/72

    Modelos de proceso

    Una organizacin podra variar su modelo de

    proceso para cada proyecto, segn: La naturaleza del proyectoLa naturaleza del proyecto

    La naturaleza de la aplicaciLa naturaleza de la aplicacinn Los mLos mtodos y herramientas a utilizartodos y herramientas a utilizar

    Los controles y entregas requeridasLos controles y entregas requeridas

  • 8/7/2019 Proceso de software y ciclo de vida

    19/72

    Caractersticas del proceso

    Entendible

    Visibilidad: Grado en que las actividades del procesoproporcionan resultados

    Soportable por herramientas CASE

    Aceptabilidad: Grado en que los desarrolladores aceptan yusan el proceso

    Fiabilidad: Capacidad de evitar o detectar errores antes de que

    sean defectos Robustez: Continuidad del proceso a pesar de los problemas

    Mantenible: Capacidad de evolucin para adaptarse

    Rapidez: Velocidad en que el proceso puede proporcionar unsistema a partir de una especificacin

  • 8/7/2019 Proceso de software y ciclo de vida

    20/72

    Modelos Genricos de Desarrollo de

    Software Modelo de Cascada

    Prototipado Desarrollo Evolutivo

    En espiral Desarrollo basado en componentes

    Mtodos Formales

  • 8/7/2019 Proceso de software y ciclo de vida

    21/72

    Modelo en cascada (waterfall)

    Modelo de proceso clsico (desde los 70)

    Basado en la mentalidad de lnea deensamblaje (cartesiano)

    Es sencillo y fcil de entender El proyecto pasa a travs de una serie de fases

    Al final de cada fase se revisan las tareas deAl final de cada fase se revisan las tareas detrabajo y productostrabajo y productos Para poder pasar a la siguiente fase se tiene que haber

    conseguido todos los objetivos de la fase anterior No hay apenas comunicaciNo hay apenas comunicacin entre las fasesn entre las fases

  • 8/7/2019 Proceso de software y ciclo de vida

    22/72

    Modelo en cascada (waterfall)

    Definicin de

    Requisitos

    Diseo del Software

    y del Sistema

    Implementacin y

    Pruebas Unitarias

    Integracin y Prueba

    del Sistema

    Operacin y

    Mantenimiento

  • 8/7/2019 Proceso de software y ciclo de vida

    23/72

    Modelo en cascada (waterfall)

    Fases:

    ConceptualizaciConceptualizaci

    nn

    : Se determina la arquitectura de la: Se determina la arquitectura de la

    solucisolucin (divisin (divisin del sistema en subsistemas)n del sistema en subsistemas) AnAnlisis de requisitoslisis de requisitos: B: Bsicamente se definen lossicamente se definen los

    requisitos funcionales y de rendimientorequisitos funcionales y de rendimiento

    DiseDiseoo: Representaci: Representacin de la aplicacin de la aplicacin que sirve de gun que sirve de gua aa ala implementacila implementacinn

    ImplementaciImplementacinn: Transforma el dise: Transforma el diseo en co en cdigodigo

    PruebaPrueba: Validaci: Validacin e integracin e integracin de software y sistemasn de software y sistemas InstalaciInstalacin y comprobacin y comprobacinn: Se instala el software al: Se instala el software al

    cliente, el cual comprueba la correccicliente, el cual comprueba la correccin de la aplicacin de la aplicacinn

    Se supone que slo se baja en la cascada... perotambin se puede subir (aunque difcilmente)

  • 8/7/2019 Proceso de software y ciclo de vida

    24/72

    Modelo en cascada (waterfall)

    Posibles ventajas:

    Sencillo: Sirve cuando el personal estSencillo: Sirve cuando el personal est poco cualificadopoco cualificado Aplicable cuando el problema es estable y cuando seAplicable cuando el problema es estable y cuando se

    trabaja con ttrabaja con tcnicas conocidascnicas conocidas

    Crticas: No se ve un producto hasta muy tarde en el procesoNo se ve un producto hasta muy tarde en el proceso

    Un error grave detectado en las ltimas fases puede ser letal

    EspecificaciEspecificacin de requisitos establen de requisitos estable Impone una estructura de gestiImpone una estructura de gestin de proyectosn de proyectos

    Fases muy rgidas

    Las revisiones de proyectos de gran complejidad son muyLas revisiones de proyectos de gran complejidad son muydifdifcilesciles

  • 8/7/2019 Proceso de software y ciclo de vida

    25/72

    Prototipado

    Se usa un prototipo para dar al usuario una ideaconcreta de lo que va a hacer el sistema

    Se aplica cada vez ms cuando la rapidez dedesarrollo es esencial

    Prototipado evolutivo: el prototipo inicial se refinaprogresivamente hasta convertirse en versin final Prototipado desechable: de cada prototipo se extraen

    ideas buenas que se usan para hacer el siguiente, perocada prototipo se tira entero

  • 8/7/2019 Proceso de software y ciclo de vida

    26/72

    Prototipado

    Escucharal cliente

    El clienteevala elprototipo

    Construir/

    revisarprototipo

  • 8/7/2019 Proceso de software y ciclo de vida

    27/72

    Prototipado

    Comienza con la recoleccin de requisitos

    Cliente y desarrolladores definen los objetivos globales delCliente y desarrolladores definen los objetivos globales delsoftware.software.

    AdemAdems, identifican los requisitos conocidos y aquellos ques, identifican los requisitos conocidos y aquellos que

    deben ser mdeben ser ms definidos.s definidos. Aparece un diseo rpido centrado en los aspectos

    visibles para el cliente (e.g. informacin de E/S)

    El diseEl diseo ro rpido lleva a la construccipido lleva a la construccin de un prototipon de un prototipo El prototipo lo evala el cliente y lo utiliza para

    refinar los requisitos

    El proceso se itera... desechando el prototipo?

  • 8/7/2019 Proceso de software y ciclo de vida

    28/72

    Prototipado

    Ventajas

    Permite identificar los requisitos incrementalmentePermite identificar los requisitos incrementalmente Permite probar alternativas a los desarrolladoresPermite probar alternativas a los desarrolladores

    Tiene una alta visibilidadTiene una alta visibilidad tanto clientes comotanto clientes como

    desarrolladores ven resultados rdesarrolladores ven resultados rpidamentepidamente Inconvenientes

    El cliente no entiende por quEl cliente no entiende por qu hay que desechar el prototipohay que desechar el prototipo

    Si simplemente ha pedido unos ajustes...(?)

    Riesgo de software de baja calidadRiesgo de software de baja calidad Compromisos de implementacin para que el prototipo funcione

    rpidamente y que al final son parte integral del sistema Utilizar un SO o lenguaje de programacin inadecuado pero conocido

  • 8/7/2019 Proceso de software y ciclo de vida

    29/72

    Modelos evolutivos

    Caractersticas:

    Gestionan bien la naturaleza evolutiva del softwareGestionan bien la naturaleza evolutiva del software Son iterativos: construyen versiones de softwareSon iterativos: construyen versiones de software

    cada vez mcada vez ms completass completas

    Se adaptan bien: Los cambios de requisitos del productoLos cambios de requisitos del producto

    Fechas de entrega estrictas poco realistasFechas de entrega estrictas poco realistas Especificaciones parciales del productoEspecificaciones parciales del producto

  • 8/7/2019 Proceso de software y ciclo de vida

    30/72

    Modelos evolutivos

    Descripcindel sistema

    VersinInicial

    VersionesIntermedias

    VersionesIntermedias

    VersinFinal

    Especificacin

    Desarrollo

    Validacin

    ActividadesConcurrentes

  • 8/7/2019 Proceso de software y ciclo de vida

    31/72

    Modelos evolutivos. Incremental

    Fusiona el modelo lineal secuencial con el de

    construccin de prototipos

    A D C P 1er incremento

    A D C P 2 incremento

    ..................... N-simo incremento

  • 8/7/2019 Proceso de software y ciclo de vida

    32/72

    Modelos evolutivos. Incremental

    Cada secuencia lineal secuencial produce un

    incremento del software Incremento: producto operacional de una parte del sistemaIncremento: producto operacional de una parte del sistema

    El primer incremento suele ser el ncleo

    Requisitos bRequisitos bsicossicos Muchas funciones suplementarias se dejan para despuMuchas funciones suplementarias se dejan para despuss

    Se evala (p.ej., por el cliente) el producto entregado Como resultado se desarrolla un plan para el siguienteComo resultado se desarrolla un plan para el siguiente

    Se itera

    Hasta elaborar el producto completoHasta elaborar el producto completo

  • 8/7/2019 Proceso de software y ciclo de vida

    33/72

    Modelos evolutivos. Incremental

    Ventajas

    Es interactivoEs interactivo Con cada incremento se entrega al cliente un producto operacionalal cliente, que puede evaluarlo

    PersonalPersonal Permite variar el personal asignado a cada iteracin

    GestiGestin riesgos tn riesgos tcnicoscnicos Por ejemplo, disponibilidad de hardware especfico

    Inconvenientes La primera iteraciLa primera iteracin puede plantear los mismos problemasn puede plantear los mismos problemas

    que en un modelo lineal secuencialque en un modelo lineal secuencial

  • 8/7/2019 Proceso de software y ciclo de vida

    34/72

    Modelo de Proceso en Espiral

    Original: Boehm, 1988

    IEEE Std. 1490-1998 Tratar primero las reas de mayor riesgo

    Mltiples iteraciones sobre varias regiones de tareas Vuelta a la espiral: cicloVuelta a la espiral: ciclo

    NNmero de iteraciones predeterminadas o calculadasmero de iteraciones predeterminadas o calculadasdindinmicamentemicamente

    Se pueden variar las actividades de desarrollo: familiade modelos de procesos

  • 8/7/2019 Proceso de software y ciclo de vida

    35/72

    Modelo de Proceso de Espiral

    Determine objetivosalternativas yrestricciones

    Evale alternativas,identifique y resuelva

    riesgosAnlisis de

    Riesgos

    Anlisis deRiesgos

    Anlisis deRiesgos

    Anlisisde

    Riesgos

    Planea la

    siguiente faseDesarrolla y verifica

    el siguiente niveldel producto

    PrototipoOperacionalPrototipo

    3Prototipo2Proto

    tipo1

    Plan de requerimientosPlan del ciclo de vida

    REVISIN

    Plan deDesarrollo

    Plan de Integraciny Prueba

    Concepto deOperacin

    Simulaciones, modelos y benchmarks

    Requerimientos

    de

    SWValidacin deRequerimientos

    DiseoV &V

    Servicio

    Prueba de

    Aceptacin

    Prueba deIntegracin

    Prueba deUnidades

    Codificacin

    Diseo

    Detallado

    Diseo

    delProducto

  • 8/7/2019 Proceso de software y ciclo de vida

    36/72

    Modelo de Proceso en Espiral

    El modelo en espiral es bastante adecuado para

    la gestin de riesgos Se puede aadir una actividad de gestin de

    riesgos De hecho, el modelo original de Boehm:

    Fijar objetivosFijar objetivos

    Gestionar y reducir riesgosGestionar y reducir riesgos

    Desarrollo y validaciDesarrollo y validacinn

    Planificar siguiente cicloPlanificar siguiente ciclo

  • 8/7/2019 Proceso de software y ciclo de vida

    37/72

    Modelos Evolutivos. Espiral Boehm

    Fijar objetivos

    Definir objetivos del cicloDefinir objetivos del ciclo Identificar restricciones del proceso y productoIdentificar restricciones del proceso y producto Desarrollar plan de gestiDesarrollar plan de gestinn

    Identificar riesgosIdentificar riesgos Identificar estrategias alternativasIdentificar estrategias alternativas

    Gestionar y reducir el riesgo RSGR para cada riesgo identificadoRSGR para cada riesgo identificado

  • 8/7/2019 Proceso de software y ciclo de vida

    38/72

    Modelos Evolutivos. Espiral Boehm

    Desarrollo y validacin

    Elegir modelo de desarrolloElegir modelo de desarrollo Algunos autores lo denominan metamodeloAlgunos autores lo denominan metamodelo Yo prefiero llamarlo modeloYo prefiero llamarlo modelo paramparamtricotrico

    Planificacin RevisiRevisin del proyecton del proyecto

    DecisiDecisin de una nueva vueltan de una nueva vuelta

  • 8/7/2019 Proceso de software y ciclo de vida

    39/72

    Modelos de Proceso en Espiral

    Ventajas

    Enfoque realistaEnfoque realista GestiGestin expln explcita de riesgoscita de riesgos

    Centra su atenciCentra su atenci

    n en la reutilizacin en la reutilizaci

    n den de

    componentes y eliminacicomponentes y eliminacin de errores enn de errores eninformaciinformacin descubierta en fases inicialesn descubierta en fases iniciales

    Los objetivos de calidad son el primer objetivoLos objetivos de calidad son el primer objetivo Integra desarrollo con mantenimientoIntegra desarrollo con mantenimiento

  • 8/7/2019 Proceso de software y ciclo de vida

    40/72

    Modelos de Proceso en Espiral

    Inconvenientes

    Convencer cliente enfoque controlableConvencer cliente enfoque controlable Requiere de experiencia en la identificaciRequiere de experiencia en la identificacin den de

    riesgosriesgos

    Requiere refinamiento para uso generalizadoRequiere refinamiento para uso generalizado

  • 8/7/2019 Proceso de software y ciclo de vida

    41/72

    Desarrollo Basado en Componentes

    Desarrollo de sistemas en poco tiempo

    Adaptacin a alta velocidad de la cascada Equipos trabajando en paraleloEquipos trabajando en paralelo

    Aplicando tecnologAplicando tecnologa de componentesa de componentes

    A

    D

    C

    P

    Equipo 1

    A

    D

    C

    P

    Equipo 2

    A

    D

    C

    P

    Equipo n

    ............

    60-90 das

  • 8/7/2019 Proceso de software y ciclo de vida

    42/72

    Desarrollo Basado en Componentes

    Ventajas

    RapidezRapidez VVlido para aplicacioneslido para aplicaciones modularizablesmodularizables

    Inconvenientes

    Exige conocer bien los requisitos y delimitar elExige conocer bien los requisitos y delimitar el mbito delmbito delproyectoproyecto

    NNmero de personasmero de personas

    Clientes y desarrolladores comprometidosClientes y desarrolladores comprometidos GestiGestin riesgos tn riesgos tcnicos altoscnicos altos

    Uso de nueva tecnologa

    Alto grado de interoperabilidad con sistemas existentes

  • 8/7/2019 Proceso de software y ciclo de vida

    43/72

    Identificar

    componentescandidatos

    Buscar

    componentesen biblioteca

    Extraer

    componentesdisponibles

    Construir

    componentesque falten

    Aadir

    componentesa biblioteca

    Construir

    iteracin Ndel sistema

    Desarrollo Basado en Componentes

  • 8/7/2019 Proceso de software y ciclo de vida

    44/72

    Desarrollo con mtodos formales

    Se basa en la transformacin de una

    especificacin formal a lo largo de variasrepresentaciones hasta llegar a un programaejecutable

    Las transformaciones preservan la correccin PermitenPermiten comprobarcomprobar ffcilmentecilmente queque elel programaprograma eses

    conformeconforme a laa la especificaciespecificacinn

  • 8/7/2019 Proceso de software y ciclo de vida

    45/72

    Desarrollo con mtodos formales

    Requirements

    definition

    Formal

    specification

    Formal

    transformation

    Integration andsystem testing

  • 8/7/2019 Proceso de software y ciclo de vida

    46/72

    Transformaciones formales

    R2Formalspecification R3 Executableprogram

    P2 P3P4

    T1 T2 T3 T4

    Proofs of transformation correctness

    Formal transformations

    R1

    P1

  • 8/7/2019 Proceso de software y ciclo de vida

    47/72

    Desarrollo formal de sistemas

    Problemas

    HaceHace faltafalta unauna formaciformacinn especializadaespecializada parapara aplicaraplicar lalattcnicacnica

    MuchosMuchos aspectosaspectos de losde los sistemassistemas realesreales sonson difdifcilesciles dede

    especificarespecificar

    formalmenteformalmente

    Interfaz de usuario

    Requisitos no funcionales

    Aplicabilidad SistemasSistemas crcrticosticos en losen los queque lala seguridadseguridad yy fiabilidadfiabilidad debedebepoderpoder asegurarseasegurarse antes deantes de ponerponer elel sistemasistema enen operacioperacinn

  • 8/7/2019 Proceso de software y ciclo de vida

    48/72

    Visibilidad de Procesos

    Los sistemas de software son intangibles por lo que

    los administradores necesitan documentacin paraidentificar el progreso en el desarrollo

    Esto puede causar problemas

    El tiempo planeado para entregar resultados puede noEl tiempo planeado para entregar resultados puede nocoincidir con el necesario para completar una actividadcoincidir con el necesario para completar una actividad

    La necesidad de producir documentos restringe la iteraciLa necesidad de producir documentos restringe la iteracinn

    entre procesosentre procesos Tiempo para revisar y aprobar documentos significativoTiempo para revisar y aprobar documentos significativo

    El modelo de cascada es an el modelo basado enresultados mas utilizado

  • 8/7/2019 Proceso de software y ciclo de vida

    49/72

    Visibilidad de Procesos

    Modelo de Proceso Visibilidad del Proceso

    Modelo de Cascada Buena visibilidad, cada actividad

    produce un documento oresultado

    Desarrollo Evolutivo Visibilidad pobre, muy caro alproducir documentos en cadaiteracin

    Modelos Formales Buena visibilidad, en cada fasedeben producirse documentos

    Desarrollo orientado a lareutilizacin

    Visibilidad moderada. Importantecontar con documentacin de

    componentes reutilizables

    Modelo de Espiral Buena visibilidad, cada segmentoy cada anillo del espiral debeproducir un documento

  • 8/7/2019 Proceso de software y ciclo de vida

    50/72

    Qu modelo utilizar?

    Para sistemas bien conocidos se puede utilizar el

    Modelo de Cascada. La fase de anlisis de riesgos esrelativamente fcil

    Con requisitos estables y sistemas de seguridad

    crticos, se recomienda utilizar modelos formales Con especificaciones incompletas, el modelo de

    prototipado ayuda a identificarlos y va produciendoun sistema funcional

    Pueden utilizarse modelos hbridos en distintas partes

    del desarrollo

  • 8/7/2019 Proceso de software y ciclo de vida

    51/72

    Ejemplos

    Dos modelos de proceso concretos:

    Proceso Unificado deProceso Unificado de RationalRational (pesado)(pesado) ExtremeExtreme ProgrammingProgramming ((gil)gil)

  • 8/7/2019 Proceso de software y ciclo de vida

    52/72

    Proceso Unificado

    Los autores de UML

    BoochBooch: m: mtodotodo BoochBooch RumbaughRumbaugh: OMT: OMT

    Jacobson: procesoJacobson: proceso ObjectoryObjectory

    Tambin conocido como RUP: RationalUnified Process

  • 8/7/2019 Proceso de software y ciclo de vida

    53/72

    Proceso Unificado

    Es un proceso de desarrollo de software Dirigido por casos de usoDirigido por casos de uso

    Centrado en la arquitecturaCentrado en la arquitectura Iterativo e incrementalIterativo e incremental

    Utiliza UML para definir los modelos del sistema software

    El sistema software en construccin est formado por componentescomponentes softwaresoftware

    interconectados a travinterconectados a travs des de interfacesinterfaces

    Proceso dedesarrollo de

    software

    Requisitosde usuario

    Sistemasoftware

    Los requisitos cambiany el sistema software evoluciona

  • 8/7/2019 Proceso de software y ciclo de vida

    54/72

    Proceso Unificado

    Elaboration Construction TransitionInception

    Phases

    Requirements Capture

    Analysis & Design

    Implementation

    Test

    Management

    EnvironmentDeployment

    ProcessComponents

    SupportingComponents

    Iterations

    preliminary

    iteration(s)

    iter.

    #1

    iter.

    #2

    iter.

    #n

    iter.

    #n+1

    iter.

    #n+2

    iter.

    #m

    iter.

    #m+1

    Organizationalongcontent

    Organization alongtime

  • 8/7/2019 Proceso de software y ciclo de vida

    55/72

    Extreme Programming (XP)

    Modelo de proceso de Kent Beck

    Un modo ligero, eficiente, de bajo riesgo, flexible,Un modo ligero, eficiente, de bajo riesgo, flexible,predecible, cientpredecible, cientfico y divertido de producir softwarefico y divertido de producir software

    Caractersticas Alta visibilidad debido a ciclos muy cortosAlta visibilidad debido a ciclos muy cortos

    PlanificaciPlanificacin incrementaln incremental

    Se adapta a cambios de negocioSe adapta a cambios de negocio

  • 8/7/2019 Proceso de software y ciclo de vida

    56/72

    Extreme Programming (XP)

    Basado en pruebas automatizadas escritas por

    desarrolladores y clientes (test-driven) Alta comunicacin

    Diseo evolutivo

    Colaboracin entre programadores

    Busca equilibrio entre las necesidades a cortoplazo de los programadores y las de largoplazo del proyecto

  • 8/7/2019 Proceso de software y ciclo de vida

    57/72

    Extreme Programming (XP)

    La estructura del proceso, si la hay, es un poco

    atpica

    Actividades en XP

    Prueba Evaluacin DiseoCodificacin

  • 8/7/2019 Proceso de software y ciclo de vida

    58/72

    Extreme Programming (XP)

    Las cuatro actividades estn soportadas por doce prcticas: El juego de planificaciEl juego de planificacinn

    PequePequeas entregasas entregas MetMetforafora

    DiseDiseo simpleo simple

    PruebaPrueba RefactoringRefactoring

    ProgramaciProgramacin en parejan en pareja

    Propiedad colectivaPropiedad colectiva IntegraciIntegracin continuan continua

    Semana de cuarenta horasSemana de cuarenta horas

    Cliente en el lugar de desarrolloCliente en el lugar de desarrollo

    CodificaciCodificacin estn estndarndar

  • 8/7/2019 Proceso de software y ciclo de vida

    59/72

    Extreme Programming (XP)

    Ventajas:

    Bueno para especificaciones cambiantesBueno para especificaciones cambiantes FundamentaciFundamentacin prn prcticactica

    Inconvenientes: Poco probadoPoco probado Poco compatible con especificaciones/disePoco compatible con especificaciones/diseosos

    totalestotales SSlo funciona con equipos pequelo funciona con equipos pequeos (hasta diezos (hasta diez

    personas)personas)

    E P i (XP)

  • 8/7/2019 Proceso de software y ciclo de vida

    60/72

    Extreme Programming (XP)

    Diferencias fundamentales (hay ms que ya se

    vern) No hay requisitos explNo hay requisitos explcitos sino que el clientecitos sino que el clienteparticipa en el desarrolloparticipa en el desarrollo

    Se empieza por automatizar las pruebasSe empieza por automatizar las pruebas Se desarrolla siempre la versiSe desarrolla siempre la versin mn ms simple posibles simple posible

    que resuelva el problemaque resuelva el problema

    Se ejecutan todas las pruebas todos los dSe ejecutan todas las pruebas todos los dasas Se cambia el diseSe cambia el diseo (aunque sea radicalmente)o (aunque sea radicalmente)

    siempre que haga faltasiempre que haga falta

  • 8/7/2019 Proceso de software y ciclo de vida

    61/72

    Calidad del proceso de software

    Cmo medir la calidad del

    proceso de software de unaempresa ?

  • 8/7/2019 Proceso de software y ciclo de vida

    62/72

    La empresa ideal

    El Dpto. de la Defensa de los US fund el SoftwareEngineering Institute (SEI) asociado con laUniversidad de Carnegie Mellon (CMU).

    Desarrollan el Software Capability Maturity Model

    (SW CMM) a mediados de 1980s, refinado en losinicios de l990s.

    Este modelo define una serie de reas clave de

    proceso (ACP) UnUn rea clave de proceso es, brea clave de proceso es, bsicamente, una actividad desicamente, una actividad de

    ISIS

    S f C bili M i M d l

  • 8/7/2019 Proceso de software y ciclo de vida

    63/72

    Software Capability Maturity Model

    Level 3Defined

    Level 2Repeatable

    Level 1

    Initial

    Level 4Managed

    Level 5Optimizing

    l d l

  • 8/7/2019 Proceso de software y ciclo de vida

    64/72

    reas clave del proceso

    P r o c e s s c h a n g e m a n a g em e n tT e c h n o l o g y c h a n g e m a n a g em e n tD e f e c t p r e v e n t io n

    S o f tw a re q u a l it y m a n a g em e n tQ u a nt it a t iv e p r o c e s s m a n a g e m e n t

    P e e r r e v ie w sI n t e r g ro u p c o o r d in at io nS o f tw a r e p r o d u c t e n g i n e e r i n g

    I n t e g r a t e d s o f tw ar e m a n a g e m e n tT r a i n i n g p r o g r a m m eO r g a n i z a ti o n p r oc e s s d e f in it io nO r g a n i z a ti o n p r oc e s s f o c u s

    S o f tw a r e c o n f i g u ra t io n m a n a g e m e n tS o f tw a r e q u a l it y a s su r a n c eS o f tw a r e s u b c o n t r a c t m a n a g em e n tS o f tw a r e p ro je c t tr a c k i n g a n d o v e r s ig h tS o f tw a r e p ro je c t p l a n n i n gR e q u i r e m e n t s m a n a g e m e n t

    I n it i a l

    R e p e a t a b l e

    D e f i n e d

    M a n a g ed

    O p t i m i zi n g

    Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 31.

  • 8/7/2019 Proceso de software y ciclo de vida

    65/72

    CMM

    Los niveles son acumulativos

    Nivel 1: Inicial El proceso de software se caracteriza segEl proceso de software se caracteriza segn el cason el caso

    Se definen poco procesosSe definen poco procesos ElEl xito depende del esfuerzo individualxito depende del esfuerzo individual

  • 8/7/2019 Proceso de software y ciclo de vida

    66/72

    CMM

    Nivel 2: Repetible

    Se incluye seguimiento del coste, la planificaciSe incluye seguimiento del coste, la planificacin y lan y lafuncionalidadfuncionalidad

    Se repiten tSe repiten tcnicas de proyectos anteriores con buenoscnicas de proyectos anteriores con buenosresultadosresultados

    Las ACP son:Las ACP son: Planificacin del proyecto de software

    Seguimiento y supervisin del proyecto de software

    Gestin de requisitos

    Gestin de la configuracin software (GCS)

    Garanta de calidad del software (SQA)

    Gestin de la subcontratacin

  • 8/7/2019 Proceso de software y ciclo de vida

    67/72

    CMM

    Nivel 3: Definido

    Nivel 2Nivel 2

    Las actividades se documentan, estandarizan e integran enLas actividades se documentan, estandarizan e integran enun proceso a nivel organizaciun proceso a nivel organizacinn

    Existe un proceso documentadoExiste un proceso documentado Las ACP son:Las ACP son: Definicin y enfoque del proceso de la organizacin

    Programa de formacin

    Revisiones peridicas

    Coordinacin entre grupos

    Ingeniera de productos software

    Gestin de integracin del software

  • 8/7/2019 Proceso de software y ciclo de vida

    68/72

    CMM

    Nivel 4: Gestionado

    Nivel 3Nivel 3 Se recopilan medidas del proceso del software y deSe recopilan medidas del proceso del software y de

    la calidad del productola calidad del producto

    Estas medidas sirven para gestionar el procesoEstas medidas sirven para gestionar el proceso

    Las ACP son:Las ACP son:

    Gestin de la calidad del software Gestin cuantitativa del software

  • 8/7/2019 Proceso de software y ciclo de vida

    69/72

    CMM

    Nivel 5: Optimizacin

    Nivel 4Nivel 4 En base a la experiencia y mEn base a la experiencia y mtricas se optimiza eltricas se optimiza el

    procesoproceso

    Las ACP son:Las ACP son: Gestin de cambios del proceso

    Gestin de cambios de tecnologa Prevencin de defectos

  • 8/7/2019 Proceso de software y ciclo de vida

    70/72

    CMM

    Un nivel razonable es el definido (nivel 3)

    Un nivel deseable es optimizacin (nivel 5) Con independencia del CMM, ACPs mnimas:

    PlanificaciPlanificacin del proyecton del proyecto

    Seguimiento y supervisiSeguimiento y supervisin del proyecton del proyecto GestiGestin de requisitosn de requisitos

    GCSGCS

    SQASQA

    DefiniciDefinicin del proceson del proceso

    Revisiones periRevisiones peridicasdicas CoordinaciCoordinacin entre gruposn entre grupos

  • 8/7/2019 Proceso de software y ciclo de vida

    71/72

    Datos Agosto 2000

    Inicial 34,9%

    Repetible 38,2% Definido 18,5%

    Gestionado 5,5% Optimizado 2,9%

    Resultados de 901 empresas desde 1996.

  • 8/7/2019 Proceso de software y ciclo de vida

    72/72

    Referencias

    Modelos de procesoModelos de proceso Pressman 17-46, Sommerville 42-67

    Proceso UnificadoProceso Unificado Jacobson, Krutchen

    SW CMMSW CMM Pressman Cap. 2, Sommerville Cap. 25 http://www.sei.cmu.edu/cmm/obtain.cmm.html

    MaterialMaterial

    Pablo Gervs Juan Pavn y Jorge Gmez

    Natalia Juristo