Tm01a Modelado en El Desarrollo Del Sw

38
El Modelado en el desarrollo del software

description

.

Transcript of Tm01a Modelado en El Desarrollo Del Sw

  • El Modelado en el desarrollo del software

  • Conceptos Generales

  • 3. El proceso de desarrollo de software*Tcnicas bsicas usadas en las ingenierasHistricamente se han utilizado tcnicas como:El modeladoDivisin del ProductoDivisin del ProcesoEn principio se deberan utilizar estas tcnicas, tambin en informtica .

    3. El proceso de desarrollo de software

  • 3. El proceso de desarrollo de software*El modelado. Simplificacin del objeto en el mundo real, pero que es suficientemente realista como para dar una idea de lo que ocurrir en la realidad y usarse como base del desarrollo.

    3. El proceso de desarrollo de software

  • Modelado: Grado de Complejidad

  • Sistema ComputacionalAbstraccin - Modelado Visual (MV) El modelado captura laspartes esenciales del sistema

  • 3. El proceso de desarrollo de software*Divisin del Producto.Se fracciona el producto de modo que cada fragmento lo puede realizar un miembro del grupo de desarrollo.

    3. El proceso de desarrollo de software

  • 3. El proceso de desarrollo de software*Divisin del Proceso.Implica dividir el desarrollo del artefacto por fases. Normalmente se habla de especificacin, diseo y fabricacin. Realizacin

    3. El proceso de desarrollo de software

  • 3. El proceso de desarrollo de software*En el desarrollo de software nos encontramos con la siguiente situacinCiclos de Vida del SOFTWARE Metodologas de Desarrollo del SOFTWARE

    3. El proceso de desarrollo de software

  • Metodolgicas de desarrolloIngeniera de la InformacinOrientada a ObjetosEstructuradoSistemas CompletosProyecto por ProductoEnfasis en la DataEnfasis en las funciones1.- Informales*2.- Semi formales3.- Formales

  • Ingeniera de la InformacinSe concentran en las necesidades de informacin y las estructuras de datos que soportan las operaciones de la organizacin.

    MODELO DE DATOS PARA LA EMPRESAAplicacin 1Aplicacin 2Plan EstratgicoPlanificacin: construir una arquitectura de la Informacin y una estrategia que soporte los objetivos de la organizacin.Anlisis: comprender las reas del negocio y determinar los requisitos del sistema. Diseo: establecer el comportamiento del sistema deseado por el usuario y que sea alcanzable por la tecnologa.Construccin: construir sistemas que cumplan los tres niveles anteriores.

  • Enfoque EstructuradoSe basan en la descomposicin de procesos funcionales del sistema y en el flujo de datos que ocurren entre estos procesos, teniendo en cuenta sus transformaciones.

    FUNCIONESDATOS Programacin estructurada Diseo estructurado Anlisis estructurado Especificaciones funcionales: Grficas Particionadas Mnimamente redundantes

  • Enfoque Orientado a ObjetosLos objetos, entidades del mundo real, son estudiados y descritos en trminos de sus atributos (datos) su comportamiento (procesos) y la relacin entre dichos objetos

    Objetos encapsulan data y funciones a la vezDATAOPERACIONES

  • 3. El proceso de desarrollo de software*Ciclo de Vida del SoftwareConsiste en determinar:las fases productivas de un proyecto,los objetivos de cada fase productiva, ylos productos obtenidos en cada una de estas fases as como sus caractersticas.

    3. El proceso de desarrollo de software

  • Concepto de Ciclo de Vida(Norma ISO 12207-1).

    Es un marco de referencia Contiene los procesos, actividades y las tareas del desarrollo, explotacin y mantenimiento de un producto softwareAbarcando la vida del sistema desde la definicin de los requisitos hasta la finalizacin de su uso.

    QUE CAMINO SEGUIR?

  • Objetivos del Ciclo de VidaDefinir actividades / tareas a ser realizadas en el proyecto.

    Introducir consistencia entre varios proyectos de desarrollo en la organizacin.

    Definir puntos de chequeo (checkpoints) para el control administrativo del proyecto.

  • Procesos del Ciclo de Vida(Norma ISO 12207-1)PROCESOS PRINCIPALES

    PROCESOS DE SOPORTEADQUISICIONSUMINISTRODESARROLLO

    EXPLOTACIONMANTENIMIENTODOCUMENTACIONGESTION DE CONFIGURACIONASEGURAMIENTO DE CALIDADVERIFICACIONVALIDACIONREVISION CONJUNTAAUDITORIAREVISION DE PROBLEMAS

    PROCESOS DE LA ORGANIZACIONGESTIONMEJORAINFRAESTRUCTURAFORMACION

  • Modelos de Ciclo de VidaSon diferentes aproximaciones, que dependiendo del caso, son o no recomendables. Modelo de CascadaModelo de PrototipoModelo IncrementalModelo de EspiralModelo Desarrollo basado en componentesModelo Proceso Unificado

  • Ciclo de Vida en CascadaProceso que sigue una secuencia estricta, donde una tarea debe ser completamente terminada antes de la prxima (orden secuencial).No acepta cambios (limitados), y el producto es visto solo al final del procesoRecomendable para proyectos cortos, simples, y directos.No es bueno para cambios en los requerimientos o riesgos posibles.

  • Ciclo de Vida por PrototipoRpida implantacin en la negociacin de requerimientos.El usuario provee el feedback mediante el uso de los prototipos..Se trabaja con un modelo computarizado, software que simula funciones bsicas solicitadas por el usuario

  • Ciclo de Vida IncrementalPermite el desarrollo en etapas incrementales, donde cada etapa agrega funcionalidad.Cada etapa consiste en diseo, construccin, prueba e implantacin.Permite poner productos en manos de los usuarios mucho antes que el modelo de cascada.Incremento 1Incremento 2Incremento N

  • Ciclo de Vida en Espiral El modelo en espiral esta orientado al riesgo, donde en cada ciclo el riesgo es evaluado y continua con un ciclo normal (cascada).Cada ciclo apunta a tratar un riesgo mayor que el ciclo anteriorEvaluar alternativas y resolver riesgosDesarrollar producto y verificar correccinObjetivosAlternativas, RestriccionesRevisin de resultados Planificar fase siguiente

  • Desarrollo basado en componentesUso y re-uso de cdigo en aplicaciones escritas en cualquier lenguaje y que corren en cualquier plataforma:En base a componentes de software probadosUso de frameworks / infraestructura estndarNotacin uniforme de diseo (descripcin de funciones y propiedades): UML (Lenguaje de Modelacin Uniforme) basado en O-OInterfaces estndar (Distributed Component Object Model de Microsoft, JavaBeans de SUN y Object Management Architecture de OMG)Repositorio o catlogo de componentes con sus descripciones (requiere estndares y mecanismos de bsqueda): MS RepositoryProblemas: cambio de mentalidad, control, modificaciones, licenciamiento

  • El proceso unificado de desarrollo OOThe Unified Software Development Process (RUP)Extiende y formaliza el modelo de Espiral.Ampliamente documentado.Predicado vehementemente por Rational.Estrechamente relacionado con UML.

  • El proceso unificado de desarrollo OOPhasesProcess WorkflowsIterationsSupporting WorkflowsManagementEnvironmentBusiness ModelingImplementationTestAnalysis & DesignPreliminary Iteration(s) Iter. #1 Iter. #2 Iter. #n Iter. #n+1 Iter. #n+2 Iter. #n Iter. #n+1DeploymentConfiguration MgmtRequirementsElaborationTransitionInceptionConstruction

  • Mtodos giles

  • Manifiesto gilhttp://agilemanifesto.org Estamos poniendo al descubierto formas mejores de desarrollo de software, hacindolo y ayudando a otros a que lo hagan. A travs de este trabajo hemos llegado a valorar:Los individuos y la interaccin por encima de los procesos y herramientas.El software que funciona por encima de la documentacin abarcadora.La colaboracin con el cliente por encima de la negociacin contractual.La respuesta al cambio por encima del seguimiento de un plan. Aunque hay valor en los elementos a la derecha, valorizamos ms los de la izquierda.

  • Acrnimos y jergaScrum, gallinas, cerdos, corridas (sprints), pre-juego, juego y pos-juego (Scrum) - Pas (spikes) (Scrum, XP)El minimalismo es esencial, Todo se puede cambiar, Mejor 80% hoy que 100% maana (LD), Refactorizacin implacable (XP)Si funciona bien, arrglelo de todos modos (Beck)

  • Scrum

  • ScrumPrimera referencia: Takeuchi-Nonaka, 1986, The New Product Development GameEn software, Jeff Sutherland, Ken Schwaber, 1995Aplica principios de procesos de control industrial, junto con experiencias metodolgicas de Microsoft, Borland y Hewlett-Packard No es mtodo independiente, sino complemento de otras metodologas (XP, MSF, RUP)Enfatiza valores y prcticas de gestin, no cuestiones tcnicas de desarrollo

  • Principios de ScrumEquipos auto-dirigidos y auto-organizados. No hay manager que decida, ni otros ttulos que miembros del equipo o cerdos; la excepcin es el Scrum Master que debe ser 50% programador y que resuelve problemas, pero no manda. Los observadores externos se llaman gallinas; pueden observar, pero no interferir ni opinar.Una vez elegida una tarea, no se agrega trabajo extra. En caso que se agregue algo, se recomienda quitar alguna otra cosa.Encuentros diarios con las tres preguntas Se realizan siempre en el mismo lugar, en crculo. El encuentro diario impide caer en el dilema sealado por Fred Brooks: Cmo es que un proyecto puede atrasarse un ao?: Un da a la vez [Bro95].Iteraciones de treinta das; se admite que sean ms frecuentes.Demostracin a participantes externos al fin de cada iteracin.Al principio de cada iteracin, planeamiento adaptativo guiado por el cliente.

  • Ciclo de Scrum

    Acumulacin de Producto:

    Acumulacin de Carrera:

  • Artefactos de ScrumAcumulacin (backlog) de producto

    Acumulacin de carrera (o corrida)

  • Prcticas de ScrumAl fin de cada iteracin de treinta das hay una demostracin a cargo del Scrum Master. Las presentaciones en PowerPoint estn prohibidas. En los encuentros diarios, las gallinas deben estar fuera del crculo. Todos tienen que ser puntuales; si alguien llega tarde, se le cobra una multa que se destinar a obras de caridad. Es permitido usar artefactos de los mtodos a los que Scrum acompae, p. Ej. Listas de Riesgos si se utiliza UP, Planguage si el mtodo es Evo, o los Planes de Proyecto sugeridos en la disciplina de Gestin de Proyectos de MSF. No es legal el uso de instrumentos como diagramas PERT, porque parten del supuesto de que las tareas de un proyecto se pueden identificar y ordenarEl supuesto dominante es que el desarrollo es semi-catico, cambiante y tiene demasiado ruido como para que se le aplique un proceso definido.

  • UMLUML = Unified Modeling Language

    Un lenguaje de propsito general para el modelado orientado a objetos

    UML combina notaciones provenientes desde:Modelado Orientado a Objetos Modelado de DatosModelado de Componentes Modelado de Flujos de Trabajo (Workflows)

  • Diagramas de UMLUn modelo es una descripcin completa de un sistema desde una perspectiva concreta

  • ... Diagramas de UML Diagrama de Casos de Uso Diagrama de Clase (incluyendo Diagrama de Objetos) Diagramas de Comportamiento Diagrama de Estados Diagrama de Actividad Diagramas de InteraccinDiagrama de SecuenciaDiagrama de Colaboracin Diagramas de implementacin Diagrama de Componentes Diagrama de Despliegue

  • Bibliografia y Referencias Webhttp://es.wikipedia.org/wiki/Scrum

    *Extraida desde la presentacin Software Architecture and UML de Grady Booch (Rational Software).*Clientes y Proveedores, con intereses distintosDesarrolladores que cada cual va a la suya.La forma de evitar el desastre pasa por:Tener un ciclo de vida apropiado a la situacin.Complejidad: Es un producto complejo?Incertidumbre: El cliente sabe lo que quiere?Utilizar una metodologa de desarrolloLenguaje claro,Especificacin, diseo, ...Conjunto de herramientas a utilizar.Un proceso maduro, es decir:Que conozcamos bien (utilizado otras veces)Que lo tengamos medidoQue sea completo, para producir con calidad.*****En el momento en que se percibio el desastre del software se trato de regular las tareas que se deben realizar durante el desarrollo de software, y el ordenen que se deben realizar.Se tomaron como ejemplo otras ingenieras.

    *

    Una actividad es un conjunto de tareas. Una tarea es una accin que transforma entradas en salidas.*Pero: el ciclo de vida no soluciona los problemas, es slo una pauta/modelo para enfrentarlos.

    ****Al igual que otras ingenieras se utilizan los prototipos para que el cliente observe, confirme y mejore el productoEste enfoque es apropiado cuando:El cliente no tiene claro lo que quiere,Al cliente le gustara ver algo similar para poder hacerse una idea de lo que obtendr

    *****9Documento OMG Unified Language Specification, (versin 1.3, 808 pginas, 8 de Julio de 1999 y versin 1.4, 582 pginas, 1 de Noviembre de 2000)ResumenSemntica (185 pginas)Gua de Notacin (173 pginas)Profiles EstndaresDefinicin de Interfaz CORBAfacilityEspecificacin DTD de XMIEspecificacin del Object Constraint LanguageElementos Estndar de UMLGlosario de Modelado del OMG