Metodologia tradi

27
Ingeniería de Software El proceso del software Metodologías

description

meodo

Transcript of Metodologia tradi

  • Ingeniera de Software

    El proceso del software

    Metodologas

    Universidad Nacional de Colombia

  • 3004582 - I.SUniversidad Nacional de Colombia* Qu es el proceso del software?Metodologa seguida por una organizacin para el desarrollo del softwareEsta metodologa incluye todas las fases del ciclo de vida clsicoEste proceso se define de manera general para todas las aplicaciones de una organizacin Igualmente se definen tareas especificas a cada aplicacin en particular

    Universidad Nacional de Colombia

  • 3004582 - I.SUniversidad Nacional de Colombia*El proceso del softwareMarco de trabajo comn Actividades del marco de trabajoConjunto de tareasHitos, entregasTareasPuntos SQA

    Universidad Nacional de Colombia

  • 3004582 - I.SUniversidad Nacional de Colombia*Modelos del proceso del softwareModelo linealModelo de construccin de prototiposModelo de desarrollo rpido de aplicaciones (DRA)Modelos evolutivos: incremental, espiral, de desarrollo concurrenteModelos de mtodos formalesTcnicas de cuarta generacin

    Universidad Nacional de Colombia

  • 3004582 - I.SUniversidad Nacional de Colombia*Modelo lineal secuencialo CascadaDesarrollado entre 1960-1980 Basado en el modelo en cascada de Winston RoyceSe conoce como el ciclo de vida bsico Secuencia de actividades, donde la estrategia principal es seguir el progreso del desarrollo de software hacia puntos de revisin bien definidos mediante entregas calendarizadas.

    Universidad Nacional de Colombia

  • 3004582 - I.SUniversidad Nacional de Colombia*Modelo lineal secuencialo en cascadaDefinicin Anlisis Diseo Desarrollo Pruebas Mantenim. Definicin de requisitos:Las restricciones y metas del sistema se definen a partir de la interaccin con el interesado.Se comprende la naturaleza de la aplicacin y el dominio de informacin, as como su funcionalidad, rendimiento e interconexin Se renen todos los requisitos que debe cumplir el software

    Universidad Nacional de Colombia

  • 3004582 - I.SUniversidad Nacional de Colombia*Modelo lineal secuencialo en cascadaDefinicin Anlisis Diseo Desarrollo Pruebas Mantenim. Se concentra en cuatro caractersticas bsicas:Estructura de datosArquitectura del softwareRepresentaciones de interfazDetalle procedimental (algoritmo)

    Universidad Nacional de Colombia

  • 3004582 - I.SUniversidad Nacional de Colombia*Modelo lineal secuencialo en cascadaDefinicin Anlisis Diseo Desarrollo Pruebas Mantenim. Se llama tambin ImplementacinGeneracin de cdigo entendible por la mquinaActualmente se investiga mucho sobre la manera de generar cdigo automticamente

    Universidad Nacional de Colombia

  • 3004582 - I.SUniversidad Nacional de Colombia*Modelo lineal secuencialo en cascadaDefinicin Anlisis Diseo Desarrollo Pruebas Mantenim. Proceso de depuracin de programasChequear la validez de las sentenciasPruebas para detectar errores, asegurando que a partir de los datos de entrada si se genere la salida deseada

    Universidad Nacional de Colombia

  • 3004582 - I.SUniversidad Nacional de Colombia*Modelo lineal secuencialo en cascadaDefinicin Anlisis Diseo Desarrollo Pruebas Mantenim. Correccin de errores no detectados en la etapa de pruebasPosibles mejoras funcionales debidas a nuevos requerimientos del clienteEn esta fase se vuelven a aplicar todas las etapas anteriores sobre el software existente

    Universidad Nacional de Colombia

  • 3004582 - I.SUniversidad Nacional de Colombia*Modelo lineal secuencialo en cascadaDefinicin Anlisis Diseo Desarrollo Pruebas Mantenim. LIMITACIONES

    En la realidad no estrictamente secuencial (se traslapan las etapas)El interesado debera exponer los requisitos en la etapa inicial, pero en realidad l lo hace a travs de todo el proceso y esto complica las cosasLa primera versin del software llega al final del proceso, a veces el afn del cliente hace que la aplicacin final no cumpla con los requerimientos

    Universidad Nacional de Colombia

  • 3004582 - I.SUniversidad Nacional de Colombia*Modelo de Construccin de PrototiposComienza con una recoleccin inicial de requisitos para pasar a un diseo rpido y finalmente a la construccin de un prototipo de la solucin.

    Universidad Nacional de Colombia

  • 3004582 - I.SUniversidad Nacional de Colombia*Modelo de Construccin de PrototiposEl desarrollador y el cliente deben ser concientes de que el prototipo se utiliza para precisar los requisitos del software y as evitar inconvenientes como:

    El cliente cree que el prototipo es una primera versin funcional del Sistema.El desarrollador construye el prototipo rpidamente y en ocasiones sin hacer uso de la tecnologa optima disponible.

    Universidad Nacional de Colombia

  • 3004582 - I.SUniversidad Nacional de Colombia*Modelo de Desarrollo Rpido de Aplicaciones (DRA)Basado en el Modelo Lineal SecuencialModelo llevado a cabo por varias equipos de trabajo que siguen las etapas del proceso de manera simultanea.Modelo aplicable a la construccin de sistemas de informacin fcilmente modularizables.El Modelo DRA necesita clientes y desarrolladores comprometidos con el proceso.No es muy til para aplicaciones que requieren adopcin de nuevas tecnologas porque la curva de aprendizaje puede afectar el cronograma del proyecto.

    Universidad Nacional de Colombia

  • 3004582 - I.SUniversidad Nacional de Colombia*Modelo de Desarrollo Rpido de Aplicaciones (DRA)

    Universidad Nacional de Colombia

  • 3004582 - I.SUniversidad Nacional de Colombia*Modelos evolutivos del proceso del SWModelos flexibles que permiten la modificacin del sistema durante su proceso de desarrollo.Procesos iterativos que permiten a los desarrolladores construir versiones del software cada vez ms completasEjemplos:Modelo Incremental.Modelo Espiral.Modelo Espiral WINWIN.Modelo de Desarrollo Concurrente.

    Universidad Nacional de Colombia

  • 3004582 - I.SUniversidad Nacional de Colombia*Modelo IncrementalAplica el enfoque lineal secuencial escalonadamenteIncrementos parciales de la herramienta completa (versiones) Cada incremento agrega funcionalidad adicional o mejorada sobre el sistemaCada etapa debe cumplir con los requisitos de las desarrolladas Incremento 2Incremento n ......... ...

    Universidad Nacional de Colombia

  • 3004582 - I.SUniversidad Nacional de Colombia*Modelo IncrementalVentajas:Los clientes no tienen que esperar hasta que el sistema se entregue completamente para comenzar a hacer uso de l.Los clientes pueden usar los incrementos iniciales como prototipo para precisar los requerimientos posteriores del sistema.Minimizacin del riesgo de falla en el proyecto porque los errores se van corrigiendo progresivamente.Problemas:Adaptacin de los requisitos del cliente para lograr incrementos pequeos (no mas de 20.000 lneas de cdigo) que aadan funcionalidad al sistema.Nota: Una evolucin de este enfoque se conoce como Programacin Extrema (XP-Extreme Programming).

    Universidad Nacional de Colombia

  • 3004582 - I.SUniversidad Nacional de Colombia*Modelo EspiralUtilizacin de ciclos en lugar de sucesin de actividades.Facilita el desarrollo rpido de versiones incrementales de software.

    Universidad Nacional de Colombia

  • 3004582 - I.SUniversidad Nacional de Colombia*Modelo Espiral WINWINHace nfasis en la etapa Comunicacin con el Cliente definiendo un conjunto de actividades de negociacin que se llevan a cabo al principio de cada cicloEl proceso de negociacin busca que ambos ganen, tanto cliente como analista:el cliente obtiene el producto que satisface gran parte de sus necesidades y el desarrollador intenta obtener requisitos que le permitan cumplir con tiempos de entrega realistas

    Universidad Nacional de Colombia

  • 3004582 - I.SUniversidad Nacional de Colombia*Modelo ConcurrenteProvee una meta descripcin del proceso de softwareMientras que en el Espiral la principal contribucin es que las actividades del software ocurran repetidamente, en el Concurrente es la capacidad de describir las mltiples actividades del software que ocurren simultneamente.Dado que los requerimientos cambian es muy probable que una vez haya comenzado la fase de diseo, sea necesario incorporar cambios. En estos casos No se debe detener el diseo, sino que se debe continuar si es posible al mismo tiempo que se modifican los requerimientos.Por lo tanto en este modelo, diversas actividades pueden estar ocurriendo concurrentementePosibilita el conocimiento del verdadero estado del proyecto

    Universidad Nacional de Colombia

  • 3004582 - I.SUniversidad Nacional de Colombia*Modelo de Mtodos FormalesEl proceso de desarrollo se basa en la transformacin matemtica formal de la especificacin del sistema a un programa ejecutableFacilita la verificacin de programas a travs de un riguroso anlisis matemtico.La ejecucin de este tipo de modelos requiere mucho tiempo y esfuerzo.Ingeniera de Software de Sala Limpia

    Universidad Nacional de Colombia

  • 3004582 - I.SUniversidad Nacional de Colombia*Modelo de Mtodos FormalesVentaja: Consistencia!!!

    Desventaja: complejo, demanda mucho tiempo

    Universidad Nacional de Colombia

  • 3004582 - I.SUniversidad Nacional de Colombia*Tcnicas de cuarta generacin Facilita al ingeniero desarrollador del software la especificacin de las caractersticas del software a alto nivel, con el fin de generar automticamente el cdigo a partir de all.Existencia de herramientas CASE (Computer Aide Software Engineering) Ingeniera de software asistida por computador

    Universidad Nacional de Colombia

  • 3004582 - I.SUniversidad Nacional de Colombia*Algunos mtodos de desarrollo de softwareRUPCDMFDDXPUN-METODO

    Universidad Nacional de Colombia

  • 3004582 - I.SUniversidad Nacional de Colombia*RUP (Rational Unified Process) Proceso Unificado de ModeladoSurge a mediados de los 90s junto con UMLAs como el CDM es ampliamente documentalSe basa en UML y es iterativo e incrementalEl punto de partida es la elicitacin de requisitos del software

    Universidad Nacional de Colombia

  • 3004582 - I.SUniversidad Nacional de Colombia*CDM (Custom Development Method) Mtodo de desarrollo adaptableCreado por ORACLE CorporationPermite hacer un seguimiento intensivo de las diferentes fases del desarrollo (Definicin, Anlisis, Diseo, Construccin, Transicin y Produccin). Para ello, realizan un conjunto de tareas que se agrupan en procesos. Cada proceso hace parte de cada una de las fases del desarrollo y se reporta mediante un documento denominado entregable. Genera mucha documentacin

    Universidad Nacional de Colombia

    ** Marco de Trabajo Comn es el entorno para la definicin de un grupo de actividades aplicables a todos los proyectos de software independientemente de su tamao y complejidad. Actividades de Proteccin van enfocadas a garantizar la calidad del software. Se aplican durante todo el proceso y son independientes del marco de trabajo y de las tareas que lo constituyen. Conjunto de Tareas se refiere a actividades de la Ingeniera de Software que hacen que el marco de trabajo se adapte a las caractersticas particulares de cada proyecto de software. En este conjunto se definen tareas, hitos que son seales que se colocan en un momento especfico del proceso y que coinciden con la entrega de un resultado concreto y los puntos SQA (Software Quality Assurance o Aseguramiento de la Calidad del Software).Un aspecto muy importante del proceso de desarrollo de software es la madurez que se alcanza en trminos de estndares y de mtodos definidos para la construccin de software.Para determinar la madurez de las prcticas de ingeniera de software de una organizacin, el Software Engineering Institute (SEI) define cinco niveles de madurez del proceso y las actividades que se deben llevar a cabo para alcanzarlos.

    *Un MPS se selecciona de acuerdo con el tipo de aplicacin, con los mtodos que se desean utilizar en la construccin y los informes requeridos, entre otros.Ac presentamos diferentes tipos de modelos, estos modelos pretenden dar un orden a la labor de desarrollo del software y su principal objetivo es CONTRIBUIR AL CONTROL de un proyecto de software real*Es una secuencia de actividades cuyo objetivo ppal es poder hacer un control mediante entregas calendario en mano.Problema es dificil *Es una secuencia de actividades cuyo objetivo ppal es poder hacer un control mediante entregas calendario en mano.Problema es dificil *En la fase de diseo se traducen los requisitos a una representacin que permita evaluar la calidad del software que se va a construir antes de comenzar la implementacin *En la fase de diseo se traducen los requisitos a una representacin que permita evaluar la calidad del software que se va a construir antes de comenzar la implementacin *En la fase de diseo se traducen los requisitos a una representacin que permita evaluar la calidad del software que se va a construir antes de comenzar la implementacin *En la fase de diseo se traducen los requisitos a una representacin que permita evaluar la calidad del software que se va a construir antes de comenzar la implementacin *En la fase de diseo se traducen los requisitos a una representacin que permita evaluar la calidad del software que se va a construir antes de comenzar la implementacin *El interesado define los objetivos generales del sistema pero no da muchos detalles de los requisitos de entrada y de salida, en estos casos es interesante seguir este modelo. *Se puede obtener un sistema funcional en periodos cortos de tiempo (60 o 90 dias)*1. Modelo de Gestin:- Qu informacin se genera?, Quin la genera?.- A dnde va la informacin?.- Quin la procesa?.2. Modelado de Datos: Formalizacin del conjunto de objetos de datos(definicin de caractersticas de los objetos y relaciones entre ellos).3. Modelado de Procesos: Transformacin de los objetos de datos para lograrel flujo de informacin necesarios para las funciones de gestin.4. Generacin de Aplicaciones: Utilizacin de programas ya existentescomo parte de la nueva solucin (Reutilizacin de cdigo).5. Pruebas y Entrega: Se verifican los componentes nuevos del sistema,porque los ya existentes ya pasaron por el proceso de validacin, lo que reduceel tiempo de pruebas del mismo.*El SW evoluciona con el tiempo y por tanto se hace necesario contar con modelos flexibles que permitan que el sistema se vaya modificando a medida que el cliente precisa detalles respecto a las necesidades funcionales del SW.**El modelo en espiral se divide en un numero de actividades del marco detrabajo o regiones de tareas que varan entre tres y seis. En la Figura sereconocen seis regiones, que a su vez estn constituidas por un conjunto detareas que se adaptan a las caractersticas particulares del proyecto enconstruccin.Una de las principales ventajas de este modelo de desarrollo es que consideradirectamente los riesgos tcnicos en todas las etapas del proyecto,reducindolos antes de que se conviertan en problemticos. Adems, estemodelo puede adaptarse y aplicarse a lo largo de la vida del software.Los procesos que se llevan a cabo dentro de un modelo en espiral son lossiguientes:Comunicacin con el cliente : Tareas para dinamizar la interaccindesarrollador cliente.Planificacin : Definicin de recursos, tiempo y otra informacin relacionadacon el proyecto.Anlisis de Riesgos : Evaluacin de riesgos tcnicos y de gestin.Ingeniera : Construccin de una o ms representaciones de la aplicacin.Construccin y Adaptacin : Tareas de construccin, pruebas e instalacinde la aplicacin.Evaluacin del Cliente : Reaccin del cliente frente a la aplicacin obtenida apartir de la fase de ingeniera y de construccin.

    *se asume que el cliente inicialmente le proporciona al desarrollador los requisitos del sistema con un nivel de detalle considerable, pero esto rara vez ocurre. Entonces el cliente y el desarrollador entran en un proceso de negociacin que busca que ambos ganen, es decir, el cliente obtiene el producto que satisface gran parte de sus necesidades y el desarrollador intenta obtener requisitos que le permitan cumplir con tiempos de entrega realistas.

    *En este modelo todas las etapas del ciclo de vida se dan simultneamente, pero se encuentran en estados distintos.

    Por ejemplo, al finalizar la etapa de Definicin, la etapa comunicacin con el cliente ha finalizado y pasa al estado cambios en espera. As, la etapa siguiente (anlisis) pasa del estado ninguno al estado bajo desarrollo. Si en esta fase se descubre una imprecisin en los requisitos del cliente, se hace una transicin al estado cambios en espera y se regresa a la etapa anterior.

    define una serie de eventos que disparan transiciones de estado a estado para cada una de las actividades de la Ingeniera del Software.

    *El enfoque mas conocido de estos mtodos es el de Ingeniera de Software de Sala Limpia que comprende el desarrollo incremental utilizando un enfoque formal de verificacin de cada etapa

    **