Metodologias y Ciclos de Vida

47
METODOLOGIAS Y CICLOS DE VIDA Dr. Ing. Juan Oswaldo Alfaro Bernedo

description

Metodologias y Ciclos de Vida

Transcript of Metodologias y Ciclos de Vida

  • METODOLOGIAS Y CICLOS DE VIDADr. Ing. Juan Oswaldo Alfaro Bernedo

  • Claves en el Desarrollo de SIHerramientasMetodologaNotacin

  • Sistema ComputacionalProceso de NegociosEl modelado captura laspartes esenciales del sistema Notacin

  • Notacin: Modelado para manejar la Complejidad

  • Interface de Usuario(Visual Basic,Java, ..)Lgica del Negocio(C++, Java, ..)Servidor de BDs(C++ & SQL, ..)Modelar el sistema independientemente del lenguaje de implementacinNotacin Modelado de la Arquitectura del SW

  • Mltiples SistemasNotacin Modelado para promover la ReutilizacinComponentes Reutilizados

  • Requisitos nuevoso modificadosSistema nuevoo modificadoProceso de Desarrollo de SoftwareEn un proyecto de desarrollo de software la metodologa define Quin debe hacer Qu, Cundo y Cmo debe hacerlo

    No existe una metodologa de software universal. Las caractersticas de cada proyecto (equipo de desarrollo, recursos, etc.) exigen que el proceso sea configurableQu es una Metodologa?

  • Procesos y Metodologas

    La Ingeniera de Software como disciplina

    Algunos modelos de proceso de desarrollo son: desarrollo en Cascada, usando Prototipos, Basado en Componentes, en Espiral (Incremental, Iterativo), Programacin Automtica. Las metodologas se basan en alguna combinacin de estos enfoques

    Las metodologas (tanto comerciales como en el mbito acadmico y de investigacin) pueden ser agrupadas en dos grandes corrientes: Metodologas Estructuradas y Metodologas Orientadas a Objetos

  • Metodologas EstructuradasLos mtodos estructurados comenzaron a desarrollar-se a fines de los 70s con la Programacin Estructurada, luego a mediados de los 70s aparecieron tcnicas para el Diseo primero y luego para el Anlisis. Enfocados a implementaciones usando lenguajes de 3ra generacin

    Ejemplos de metodologas estructuradas gubernamentales: MERISE (Francia), MTRICA 3 (Espaa), SSADM (Reino Unido)

    Ejemplos de mtodos estructurados en el mbito acadmico: Gane & Sarson, Ward & Mellor, Yourdon & DeMarco e Information Engineering

  • Metodologas OOSu historia va unida a la evolucin de los lenguajes de programacin orientada a objeto, los ms representativos: a fines de los 60s SIMULA, a fines de los 70s Smalltalk-80, la primera versin de C++ por Bjarne Stroustrup en 1981 y actualmente Java o C#. A fines de los 80s comenzaron a consolidarse algunos mtodos Orientadas a Objeto

    En 1995 aparece el Mtodo Unificado, que posteriormente se reorienta para dar lugar al Unified Modeling Language (UML), la notacin OO ms popular en la actualidad

    Algunos mtodos OO con notaciones predecesoras de UML: OOAD (Booch), OOSE (Jacobson), Coad & Yourdon, Shaler & Mellor y OMT (Rumbaugh)

    Algunas metodologas orientadas a objetos basadas en UML: Rational Unified Process (RUP), OPEN, MTRICA 3

  • Metodologa Elementos de un Proceso SWProcesoSWNotacinHerramientasPersonas

  • Herramientas CASECASE es un acrnimo para Computer-Aided Software Engineering, aunque existen algunas variaciones para lo que actualmente se entiende por CASE:

    CComputerAAidedAssistedAutomatedSSoftwareSystemsEEngineering

  • Qu es una CASE?En Terminology for Software Engineering and Computer-aided Software Engineering, B.Terry & D.Logee, Software Engineering Notes, Abril 1990, CASE es definido como:

    Herramientas individuales para ayudar al desarrollador de software o administrador de proyecto durante una o ms fases del desarrollo de software (o mantenimiento).

    En The CASE Experience, Carma McClure, BYTE Abril 1989 p.235 se ofrece la siguiente definicin:

    Una combinacin de herramientas de software y metodologas de desarrollo

  • MODELOS DE CLICLO DE VIDA

  • Modelo secuencialAnlisisDiseoCdigoPruebasIngeniera de SistemasMantencin

  • Modelo Cascada (ciclo de vida clsico)AnlisisDiseoCdigoPruebasMantencin

  • Modelo PrototipoEscuchar al usuario/clienteConstruir/revisarprototipoAprobacin u observacionesdel usuario/clienteRefinamientoRefinamientode RequisitosDiseo rpidoPruebas

  • Modelo en EspiralEstilo incremental.Es similar al de prototipos, pero agrega la evaluacin de riesgos tcnicos y de gestin.Etapas : (desde adentro hacia fuera)Desarrollo conceptualDesarrollo del productomejora del productomantenimiento del productoCaso : MS-Office

  • Modelo en EspiralComunicacin con el usuario/clienteConstruccin y adaptacinAprobacin u observacionesdel usuario/clienteRefinamientoPlanificacinIngenieraEvaluacin delRiesgo

  • Modelo de ensamblaje de componentesModelos anteriores, pero con uso de bibliotecas de rutinas (tradicional) o clases (orientacin a objetos).Ms rpido.Menores costos de desarrollo.Programadores ms experimentados.Menor dependencia de las personas que participaron en el proyecto.

  • Otros modelos (a)Modelo DRA (Desarrollo Rpido de Aplicaciones) Orientado de proyectos cortos y modularizables; ptimo para trabajo en equipos diferenciables.Ejemplo : Juego sencillo.Equipo 1 : Algoritmos del juegoEquipo 2 : Interfaz de usuariosEquipo 3 : Manejo de errores y situaciones excepcionales.Equipo 4 : Ayuda y configuracin del SW.

  • Otros Modelo (b)Modelo Incremental : Mezcla del modelo lineal incremental, con el de prototipos.Entrega un modelo operativo con cada entrega.Puede irse agregando personal con cada incremento.Se descubren a tiempo los riesgos del proyecto.

  • Otros modelos (c)Modelo de desarrollo concurrente : Se trabaja en distintas tareas a la vez : Anlisis, programacin, prueba, etc..Orientado a cliente/servidor.Se distinguen dos dimensiones :De sistemas : Diseo, ensamblaje y uso.De componentes : Diseo y realizacin.Proporciona una imagen exacta del estado actual del proyecto.

  • Otros modelos (c)Modelo de desarrollo concurrente : Se trabaja en distintas tareas a la vez : Anlisis, programacin, prueba, etc..Orientado a cliente/servidor.Se distinguen dos dimensiones :De sistemas : Diseo, ensamblaje y uso.De componentes : Diseo y realizacin.Proporciona una imagen exacta del estado actual del proyecto.

  • Metodologa vs Ciclo de Vida

    Diferencias entre Metodologa, Ciclo de Vida y Mtodo Una Metodologa puede seguir uno o varios modelos de Ciclo de Vida Un Ciclo de Vida indica qu obtener, pero no cmo Una Metodologa es un concepto ms amplio que Mtodo Se puede considerar como un conjunto de mtodos. Una metodologa puede englobar un conjunto de mtodos (de anlisis, diseo, programacin, etc.) para abarcar el ciclo de vida completo

  • Relacin Histrica Metodologas

  • Impacto de las Metodologas en el Entorno de Desarrollo Implantacin de Metodologas en los Entornos deDesarrollo. Opciones: Seleccionar entre un gran nmero de posibilidades ycombinaciones de mtodos de gestin, tcnicas de desarrollo y soporte automatizado, para crear y desarrollar unaMetodologa de Desarrollo Software ms apropiada. Analizar y evaluar las metodologas existentes y seleccionar laque ms se adapte a las necesidades. Factores que influyen en las metodologas: Tamao y estructura de la organizacin Tipo de aplicaciones a desarrollar

  • Caractersticas Deseables de una Metodologa Existencia de reglas predefinidas Cobertura total del ciclo de desarrollo Verificaciones intermedias Planificacin y control Comunicacin efectiva Utilizacin sobre un abanico amplio de proyectos Fcil formacin Herramientas CASE Actividades que mejoren el proceso de desarrollo Soporte al mantenimiento Soporte de la reutilizacin de software

  • Metodologas Estructuradas Proponen la creacin de modelos del sistema que representan: Los procesos Los flujos La estructura de los Datos Enfoque Top-Down De visin general a nivel de abstraccin ms sencillo Tipos: Orientadas a Procesos Orientadas a Datos Estructuras de Datos Jerrquicas Estructuras de Datos no Jerrquicas Mixtas

  • Metodologas Estructuradas

  • Metodologas Estructuradas

  • Metodologas Estructuradas

    Metodologas Orientadas a Procesos Metodologa de Yourdon/Constantine Realizar los DFD del sistema Realizar el diagrama de estructuras Evaluar el diseo Preparar el diseo para la implantacin

  • Metodologas Estructuradas

  • Metodologas Estructuradas

  • Capas de la Ingeniera de SWEnfoque de calidadprocesomtodosherramientas

  • Ejemplo : Un futbolista

    HerrramientasCondiciones fsicasMtodosTcnicaProceso90 minutos de juegoEnfoque de calidadEstilo -Elegancia

    amateur

    Profesional(normalmente)

    profesional

    Nivel de juego confiable

    amateur

  • MtodosActividades de trabajo : El Cmo.Anlisis de requisitosDiseoConstruccinPruebasMantenimiento

  • HerramientasDistintas herramientas de desarrollo y/o programacin.Algunas presentan soporte automtico o semi automtico : CASE, CAD, 4GL, etc.

  • El ProcesoCmo controlamos o evaluamos que las cosas vayan bien?.{cmo se las arregla el DT para asegurar el xito del partido, si se considera que l no est jugando?}Control de gestin de proyectos de sw.Establecimiento del contexto en que se aplican los mtodos tcnicos, modelo, documentos, datos, informes, formularios, etc.

  • Fases de la Ingeniera de SWFase de Definicin : Qu?. Ingeniera de Sistemas, planificacin del proyecto y anlisis de requisitos.Fase de Desarrollo : Cmo?. Diseo, construccin (programacin) y prueba.Fase Mantencin : El cambio. Se aplican fases anteriores sobre SW ya existente.

  • Tipos de cambio en la mantencinCorreccin : Mantencin correctiva de defectos.Adaptacin : Mantencin adaptativa por cambios en el entorno del SW.Mejora : Agrega funcionalidades adicionales a las originales.Prevencin : Reingeniera del SW. Lo prepara para que sus mantenciones sean ms fciles y expeditas.Analizar : caso ao 2.000; portabilidad; upgrade de SO.

  • Modelo de calidad SEINivel I : Inicial. Catico. xito se debe al esfuerzo individual.Nivel II : Repetible. Hay gestin de proyecto. Los xitos obtenidos pueden repetirse.Nivel III : Definido. Estndares de desarrollo bien definidos y exigibles. Nivel II documentado y generalizado.Nivel IV : Gestionado. Nivel III cuantificado mediante control y estadsticas.Nivel V : Optimizacin. Mejoramiento continuo.

  • Tcnicas de 4 generacinApoyado en herramientas CASE. Prototipos.Aplicaciones pequeas y de tamao medio.AnlisisDiseoProgramacinPruebasUpper CASELower CASEMantencin4GL

  • ResumenLa Ingeniera de SW es una disciplina.Integra proceso, mtodos y herramientas.Existen diversos paradigmas, con ventajas y desventajas pero basado en fases comunes.En este curso se estudiarn los principios, conceptos y mtodos que permiten llevar a cabo el Proceso que se denomina Ingeniera del software.

    ************************