La Necesidad de Modelar
description
Transcript of La Necesidad de Modelar
-
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