Вы находитесь на странице: 1из 18

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...

Ingeniera
directa

Ingeniera
inversa
La Necesidad de Modelar

Diseo de Software Avanzado


Departamento de Informtica

Comunicacin y Representacin
del Conocimiento
Especificaciones

Pruebas

Documentacin

Planificacin

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

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.

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

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

Diseo de Software Avanzado


Departamento de Informtica

Qu es un Modelo? (III)
Modelo de un sistema

Sistema S

El mundo real

representa

Modelo M

El mundo modelado

Jean Bzivin, Model Engineering for Software Modernization,


The 11th IEEE Working Conference on Reverse Engineering, 2004.
La Necesidad de Modelar

Diseo de Software Avanzado


Departamento de Informtica

Qu es un Modelo? (IV)
Modelo de un sistema
Tractor
conductor
peso

representa
Grano
cantidad
calidad

Campo
superficie

Jean Bzivin, Model Engineering for Software Modernization,


The 11th IEEE Working Conference on Reverse Engineering, 2004.
La Necesidad de Modelar

Diseo de Software Avanzado


Departamento de Informtica

Qu es un Modelo? (V)
Modelo de un modelo

Sistema S

representa

Modelo M

representa
Modelo M

Jean Bzivin, Model Engineering for Software Modernization,


The 11th IEEE Working Conference on Reverse Engineering, 2004.
La Necesidad de Modelar

Diseo de Software Avanzado


Departamento de Informtica

Qu es un Modelo? (y VI)
Modelo de un modelo
representa

representa
Tractor

conductor
peso
Grano

cantidad
calidad

Campo

superficie

Jean Bzivin, Model Engineering for Software Modernization,


The 11th IEEE Working Conference on Reverse Engineering, 2004.
La Necesidad de Modelar

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 sistema
propuesto, 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

Diseo de Software Avanzado


Departamento de Informtica

10

Modelos de Anlisis y de Diseo (II)


Representan realidades distintas
Dominio del
problema
Modelo de anlisis
Abstraccin
(modelo conceptual)

Realidad

Dominio de la
solucin
Modelo de diseo
(modelo del software)

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.
La Necesidad de Modelar

Diseo de Software Avanzado


Departamento de Informtica

11

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

Diseo de Software Avanzado


Departamento de Informtica

12

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

Diseo de Software Avanzado


Departamento de Informtica

13

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

Diseo de Software Avanzado


Departamento de Informtica

14

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

Diseo de Software Avanzado


Departamento de Informtica

15

Tipos de Diagramas en UML 2


Modelado de requisitos

Diagrama de casos de uso


Diagrama de clases

Diagrama de objetos
Modelado esttico

Diagrama de paquetes
Diagrama de estructura compuesta
Comunicacin
Interaccin
Modelado dinmico

Secuencia
Temporizacin
Visin global de interaccin

Diagrama de estados
Diagrama de actividad
Modelado fsico

Diagrama de componentes
Diagrama de despliegue

La Necesidad de Modelar

Diseo de Software Avanzado


Departamento de Informtica

16

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

Diseo de Software Avanzado


Departamento de Informtica

17

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

Diseo de Software Avanzado


Departamento de Informtica

18

Вам также может понравиться