la necesidad de modelar

18
La Necesidad de Modelar Diseño de Software Avanzado Departamento de Informática

Upload: ceps2008

Post on 11-Nov-2015

25 views

Category:

Documents


1 download

DESCRIPTION

La Necesidad de Modelar

TRANSCRIPT

  • La Necesidad

    de Modelar

    Diseo de Software Avanzado Departamento de Informtica

  • Analoga Arquitectnica

    Tiene sentido poner ladrillos sin hacer antes los planos?

    El modelo, los planos, ayuda a afrontar la complejidad del proyecto.

    Cul es el lenguaje adecuado para representar los planos?

    Ingeniera directa e ingeniera inversa: una casa, un coche, un virus...

    La Necesidad de Modelar 2

    Ingeniera

    directa

    Ingeniera

    inversa

    Diseo de Software Avanzado Departamento de Informtica

  • Comunicacin y Representacin

    del Conocimiento

    Para representar el conocimiento hace falta un lenguaje adecuado.

    El conocimiento bien representado ayuda a hacerse las preguntas

    oportunas: qu falta aqu? qu pasara si...? por qu no se

    puede...?

    La Necesidad de Modelar 3

    Especificaciones

    Documentacin

    Pruebas

    Planificacin

    Diseo de Software Avanzado Departamento de Informtica

  • Qu es un Modelo?

    Abstracto

    Simplificacin de la realidad: divide y vencers.

    Comprensible

    Expresado de tal forma que se pueda entender fcilmente.

    Preciso

    Representa fielmente el sistema modelado.

    Predictivo

    Se puede utilizar para obtener conclusiones correctas sobre el sistema.

    Barato

    Ms econmico que construir y estudiar el propio sistema.

    La Necesidad de Modelar 4

    Bran Selic, The Pragmatics of Model-Driven Development, IEEE Software, 20(5), 2003.

    Diseo de Software Avanzado Departamento de Informtica

  • Qu es un Modelo? (II)

    Diversos tipos de modelos:

    Estructura, electricidad, saneamiento

    Esttico, dinmico...

    cmo se relacionan entre s?

    Modelos formales y modelos informales.

    Modelos informales: ad hoc, sin lenguaje comn.

    Modelos formales: lenguaje universal, precisin, rigor, coherencia.

    Modelado y lenguaje.

    El lenguaje es vehculo del pensamiento: ayuda a pensar con claridad.

    El modelado es un elemento esencial del proceso de desarrollo de software.

    El modelado requiere un lenguaje adecuado.

    Metamodelo.

    Los metamodelos definen lenguajes que permiten expresar modelos.

    Un metamodelo describe un conjunto de elementos del modelo, su disposicin, sus relaciones y sus restricciones.

    Un modelo slo es vlido si es conforme a su metamodelo.

    La Necesidad de Modelar 5Diseo de Software Avanzado Departamento de Informtica

  • Qu es un Modelo? (III)

    La Necesidad de Modelar 6

    Sistema S Modelo Mrepresenta

    El mundo real El mundo modelado

    Jean Bzivin, Model Engineering for Software Modernization,The 11th IEEE Working Conference on Reverse Engineering, 2004.

    Modelo de un sistema

    Diseo de Software Avanzado Departamento de Informtica

  • Qu es un Modelo? (IV)

    La Necesidad de Modelar 7

    representa

    Tractor

    conductorpeso

    Campo

    superficie

    Grano

    calidadcantidad

    Jean Bzivin, Model Engineering for Software Modernization,The 11th IEEE Working Conference on Reverse Engineering, 2004.

    Modelo de un sistema

    Diseo de Software Avanzado Departamento de Informtica

  • Qu es un Modelo? (V)

    La Necesidad de Modelar 8

    Sistema S Modelo Mrepresenta

    Modelo M

    representa

    Jean Bzivin, Model Engineering for Software Modernization,The 11th IEEE Working Conference on Reverse Engineering, 2004.

    Modelo de un modelo

    Diseo de Software Avanzado Departamento de Informtica

  • Qu es un Modelo? (y VI)

    La Necesidad de Modelar 9

    representa

    Tractor

    conductorpeso

    Campo

    superficie

    Grano

    calidadcantidad

    representa

    Jean Bzivin, Model Engineering for Software Modernization,The 11th IEEE Working Conference on Reverse Engineering, 2004.

    Modelo de un modelo

    Diseo de Software Avanzado Departamento de Informtica

  • Modelos de Anlisis y de Diseo

    Partes integrantes esenciales de la documentacin de cualquier proyecto.

    A pesar de emplear una notacin similar, los modelo de anlisis y diseo son abstracciones (modelos) de cosas distintas.

    Anlisis (modelo conceptual): abstraccin del problema, el mundo real tal como es antes, o como ser despus, de que se construya el sistema propuesto.

    Diseo (modelo del software): abstraccin de la construccin interna del sistemapropuesto, que da solucin al problema planteado en el mundo real.

    Por tanto, tienen diferente propsito.

    Problema: estudiar los requisitos sin tomar decisiones de implementacin.

    Solucin: establecer cmo debe construirse el sistema antes de construirlo.

    No hay precedencia temporal estricta anlisis-diseo.

    El anlisis es anterior al diseo slo dentro de cada iteracin.

    Son modelos interdependientes, pueden evolucionar en paralelo.

    La transicin no es simple, inmediata ni automtica (problema solucin). Un buen diseo no se logra meramente aadiendo detalles al anlisis.

    El modelo de anlisis no puede transformarse simplemente en una parte del modelo de diseo: representan realidades distintas.

    La Necesidad de Modelar 10Diseo de Software Avanzado Departamento de Informtica

  • Modelos de Anlisis y de Diseo (II)

    Representan realidades distintas

    La Necesidad de Modelar 11

    Dominio del

    problema

    Dominio de la

    solucin

    AbstraccinModelo de anlisis

    (modelo conceptual)

    Modelo de diseo

    (modelo del software)

    Realidad

    Problema

    en el mundo real

    (realidad externa

    al sistema)

    Implementacin

    de la solucin

    (software interno

    al sistema)

    H. Kaindl. Difficulties in the Transition from OO Analysis to Design. IEEE Software, 16(5), 1999.

    Diseo de Software Avanzado Departamento de Informtica

  • Modelos de Anlisis y de Diseo (III)

    Anlisis: creacin de una especificacin del problema y de los

    requisitos.

    Exploracin y esclarecimiento de los requisitos del sistema.

    Construccin de un modelo del mundo real basado en los conceptos del

    dominio (modelo conceptual).

    Qu debe hacer (o hace: ingeniera inversa) el sistema, pero no cmo.

    No introduce artefactos de diseo o implementacin.

    Es difcil determinar dnde acaba el anlisis y dnde comienza el

    diseo.

    La Necesidad de Modelar 12Diseo de Software Avanzado Departamento de Informtica

  • Modelos de Anlisis y de Diseo (y IV)

    Diseo: definicin de una solucin software que satisfaga los

    requisitos.

    Soluciones tecnolgicas para implementar los requisitos del sistema.

    Construccin de un modelo del sistema antes de proceder a su

    construccin efectiva (modelo del software).

    Incluye aspectos de implementacin: patrones de diseo, libreras de

    clases, mecanismos de persistencia, componentes, etc.

    Introduce nuevos artefactos: un objeto de anlisis puede ser

    implementado por un conjunto de objetos de diseo.

    Tiene en cuenta la plataforma de implementacin (mquinas, sistemas

    operativos, lenguajes, etc.), as como consideraciones de eficiencia,

    rendimiento, optimizacin de recursos, etc.

    La Necesidad de Modelar 13Diseo de Software Avanzado Departamento de Informtica

  • El Lenguaje Unificado de Modelado

    Un lenguaje grfico y formal para el modelado de sistemas Visualizar, especificar, construir y documentar los artefactos de un sistema.

    Lenguaje, no mtodo, ligado a USDP, pero sirve para otros mtodos.

    Orientado a objetos, toma sus conceptos de los lenguajes de programacin orientados a objetos.

    Origen histrico Antes de 1994: la guerra de los mtodos. 1994: Booch y Rumbaugh en Rational

    1995: Jacobson se une.

    1997: primera versin estndar certificada por el OMG.

    Actualmente: la guerra de las herramientas.

    Documentacin sobre UML Libros de los Tres Amigos: Gua del Usuario, Manual de Referencia. El Estndar (v2.2): www.omg.org

    Revistas: Software and Systems Modeling, Journal of Object Technology.

    Congresos: MODELS

    Libros de otros autores, foros en Internet...

    La Necesidad de Modelar 14Diseo de Software Avanzado Departamento de Informtica

  • Elementos Principales de UML

    Cosas representan distintos aspectos del modelo: Estructura: son los sustantivos de UML, tales como clase, interfaz, atributo,

    componente, nodo...

    Comportamiento: son los verbos de UML, tales como accin, actividad, interaccin, estado, mensaje...

    Agrupamiento: son los paquetes, que se usan para agrupar elementos relacionados semnticamente en unidades coherentes.

    Anotacin: son las notas, que pueden aadirse en cualquier parte del modelo para capturar informacin no grfica.

    Relaciones representan conexiones entre las cosas: Asociacin

    Dependencia

    Generalizacin

    Realizacin

    Diagramas representan un conjunto de cosas y relaciones de manera grfica.

    La Necesidad de Modelar 15Diseo de Software Avanzado Departamento de Informtica

  • Tipos de Diagramas en UML 2

    16

    Modelado de requisitos Diagrama de casos de uso

    Modelado esttico

    Diagrama de clases

    Diagrama de objetos

    Diagrama de paquetes

    Diagrama de estructura compuesta

    Modelado dinmico

    Interaccin

    Comunicacin

    Secuencia

    Temporizacin

    Visin global de interaccin

    Diagrama de estados

    Diagrama de actividad

    Modelado fsicoDiagrama de componentes

    Diagrama de despliegue

    La Necesidad de ModelarDiseo de Software Avanzado Departamento de Informtica

  • Sistema, Modelo y Diagrama

    Un sistema informtico es una coleccin de elementos (hardware y software) organizados para cumplir una finalidad concreta.

    Un sistema puede estar dividido en subsistemas.

    Un modelo es una abstraccin de un sistema, es decir, una simplificacin (completa y consistente) del sistema real, que sirve para comprenderlo mejor.

    Provisionalmente, un modelo puede ser incompleto (faltan elementos) o inconsistente (contiene contradicciones).

    Un sistema puede estar modelado desde distintos puntos de vista complementarios, segn lo que se considere relevante en cada caso.

    Un diagrama es la representacin grfica de un conjunto de elementos interconectados, una vista parcial de un modelo.

    Un modelo no es meramente una coleccin de diagramas.

    Un modelo puede contener elementos no representados en un diagrama.

    Un modelo puede contener especificaciones textuales esenciales.

    La Necesidad de Modelar 17Diseo de Software Avanzado Departamento de Informtica

  • Herramientas de Modelado

    Qu puede ofrecer una herramienta CASE para UML?

    Dibujo

    Correccin sintctica

    Coherencia entre diagramas

    Integracin con otras aplicaciones

    Trabajo multiusuario

    Reutilizacin

    Generacin de cdigo...

    Dnde encontrarlas?

    www.objectsbydesign.com

    Ejemplos

    Altova UModel

    Visual UML

    TAU UML Suite

    MagicDraw UML

    La Necesidad de Modelar 18Diseo de Software Avanzado Departamento de Informtica