Beruflich Dokumente
Kultur Dokumente
Metodologa de Modelizacin
METODOLOGIAS DE MODELIZACION
Rodolfo Fernndez Gonzlez
Metodologa de Modelizacin
MODELIZACIN
- La construccin de hiptesis tericas o modelos computacionales es un arte sometido a reglas
- Modelizar: formalizar un fenmeno natural, organizacional o
tcnico para disponer de:
- una descripcin rigurosa
- un punto de partida preciso para la contrastacin de
hiptesis
- un ncleo para el desarrollo de una aplicacin informtica
- Hay diversos estilos de formalizacin:
- explcitamente matemtico:
- cuantitativo: Anlisis matemtico, Clculo de
Probabilidades
- cualitativo: Algebra, Lgica
- computacional:
- es implcitamente matemtico
- puede suponer o no una previa formalizacin
matemtica
- diversas estrategias:
- OMT (Object Modelling Tool)
Rumbaugh, J. et al. (1991) Object-oriented
modeling and design. Prentice-Hall
- KADS
Metodologa de Modelizacin
MODELOS
- Un modelo es una abstraccin o esquematizacin de algo para
facilitar su comprensin.
- Abstraccin o esquematizacin:
- omisin de detalles no esenciales del sistema real que
reduce su complejidad y facilita su comprensin.
- lo que se considera relevante viene dado por el objetivo del
modelo
- un mismo sistema puede ser objeto de distintas
modelizaciones, cada una en virtud de un objetivo distinto
- todas las abstracciones son incompletas. Se busca
adecuacin, no correccin.
Metodologa de Modelizacin
FASES DE LA MODELIZACION
- Anlisis
- Diseo
- Implementacin
Metodologa de Modelizacin
FASE DE ANLISIS
- Construccin de modelos de la situacin real que identifique las
propiedades relevantes
- Lo que interesa es comprender el problema
- Modelos de anlisis: abstracciones concisas y precisas de lo que
debe hacer el sistema, no de cmo lo har
- Los objetos de los modelos son conceptos del dominio del
problema, independientes de la implementacin.
Metodologa de Modelizacin
FASE DE DISEO
2.1. Diseo del sistema
- Decisiones de alto nivel sobre la arquitectura global
- Identificacin de subsistemas
- Decisiones de optimizacin del rendimiento
- Estrategias de resolucin
- Asignacin inicial de recursos
2.2. Diseo de los objetos
- Construccin de los modelos de diseo a partir de los
modelos de anlisis
- Detalles de implementacin impuestos por las
estrategias de resolucin
- Identificacin de las estructuras de datos y de los
algoritmos necesarios para:
- implementar cada clase
- optimizar el rendimiento
Metodologa de Modelizacin
FASE DE IMPLEMENTACIN
- Codificacin de los modelos de diseo en un lenguaje de
programacin
- Ingeniera del software:
- ajuste al diseo
- flexibilidad
- extensibilidad
Metodologa de Modelizacin
TIPOLOGA DE MODELOS
- En cada fase, la modelizacin implica la construccin o
refinamiento de tres modelos distintos:
- Modelo de objetos
- Modelo dinmico
- Modelo funcional
Metodologa de Modelizacin
MODELO DE OBJETOS
-Describe la estructura esttica de los objetos de un sistema, sus
relaciones mutuas, sus atributos y sus operaciones
- Se formula utilizando un diagrama de objetos:
- Diagrama de objetos: grafos cuyos nodos son clases de
objetos, y cuyos arcos son relaciones entre clases
- Las clases se ordenan jerrquicamente. Esa ordenacin hace que
puedan compartir estructuras y comportamientos.
- Es el modelo fundamental, porque describe qu es lo que cambia
o se transforma, antes de describir cundo o cmo lo hace.
- Proporciona la estructura bsica en la que se integran los dems
modelos
- Descripcin de los datos
- Es importante para cualquier problema que manipule estructuras
de datos no triviales
Metodologa de Modelizacin
MODELO DINMICO
- Describe los aspectos del sistema que cambian en el tiempo, las
interacciones entre los objetos del sistema
- Secuenciacin de operaciones:
- sucesos que inician o terminan cambios,
- secuencias de sucesos,
- estados que definen el contexto de los sucesos,
- organizacin de sucesos y estados
- Se formula mediante un diagrama de estados:
- Un diagrama de estados es un grafo cuyos nodos son
estados, y cuyos arcos son transiciones entre estados
causadas por sucesos.
- Describe la secuencia de sucesos y estados admisibles en
una clase de objetos
- Descripcin de los aspectos de control
10
Metodologa de Modelizacin
MODELO FUNCIONAL
- Describe las transformaciones de datos que tienen lugar en el
sistema
- Funciones, restricciones, dependencias funcionales
- Lo que el sistema hace
- Se formula mediante diagramas de flujo:
- Un diagrama de flujo es un grafo cuyos nodos son
procesos y cuyos arcos son flujos de datos.
- Representa las dependencias entre valores, y la
computacin de los valores de salida a partir de los valores
de entrada
- Descripcin de la funcin del sistema
11
Metodologa de Modelizacin
M. dinmico
M. funcional
operaciones
sucesos
acciones
funciones
12
Metodologa de Modelizacin
Modelizacin de objetos
(Rumbaugh, 87, 91; Loomis, 87)
Objetos
- Un objeto (o instancia -de objeto-) es un concepto o entidad, que
constituye un elemento bien definido del dominio del problema
- La identificacin de los objetos depende del problema: puede
haber ms de una representacin en el mismo dominio
- Los objetos se distinguen entre s no por sus atributos, sino por
su identidad
Clases
- Una clase (de objetos) es un grupo de objetos que comparten:
- propiedades (atributos)
- comportamiento (operaciones)
- relaciones con otros objetos
- significado (p. ej., un cuadro y un caballo pueden ser
considerados como bienes econmicos, pero ...)
- cada objeto conoce su clase. Esta es una propiedad implcita
del objeto
- la agrupacin de objetos en clase es una abstraccin que nos
permite:
- generalizar el conocimiento de lo individual
- simplificar la complejidad
- utilizar menos recursos (descriptivos, de almacenamiento
de informacin)
13
Metodologa de Modelizacin
- Objetos o instancias
Rumbaugh
Coad/Yourdon
14
Metodologa de Modelizacin
Atributos
- Caractersticas posedas por los objetos de la misma clase
- Cada instancia tiene un valor por cada atributo
- Diferentes instancias pueden tener el mismo o distinto valor
- Los valores de los atributos no son objetos, no tienen identidad
- Si un valor de un atributo de un objeto1 exige a su vez ser
modelizado como objeto2, se modelizar como tal, y se
asociar con objeto1 mediante una relacin entre objetos
- Se representan en las clases bajo una lnea horizontal
- Cada atributo puede tener asociado
- su tipo (precedido por :)
- su valor por defecto (precedido por =)
Persona
nombre :cadena
edad :entero
(Persona)
(Persona)
Juan Prez
27 aos
Juan Prez
27 aos
Rumbaugh
Coad/Yourdon
15
Metodologa de Modelizacin
OPERACIONES
- Operacin: Funcin o transformacin que puede aplicarse a - o
que puede ser aplicada por- objetos de una clase
- Cada operacin tiene como argumento implcito un objeto.
- La conducta de la operacin depende de la clase de su
objeto
- el objeto sabe la especificacin adecuada de su
operacin
- polimorfismo: la misma operacin:
- puede aplicarse a muchas clases distintas
- adopta en cada clase una forma distinta
16
Metodologa de Modelizacin
MTODOS
Un Mtodo es la especificacin (implementacin) de una
operacin para una clase dada
- Si una operacin tiene mtodos para varias clases, es importante
que todos ellos tengan la misma signatura:
- lista de argumentos (entre parntesis)
- tipo de cada argumento (precedido de :)
- tipo del valor resultante (precedido de :)
- Representacin:
Persona
nombre :cadena
edad :entero
comprar
- Resulta til durante la modelizacin distinguir las operaciones
que tienen efectos colaterales de aquellas que se limitan a calcular
un valor sin modificar otros objetos (queries)
- Las queries que no tienen ms argumentos que los de su objeto
pueden considerarse como atributos derivados
- Esto lleva a distinguir entre:
- atributos bsicos o primitivos, y
- atributos derivados
- Al conjunto de las operaciones y de los mtodos se les denomina
servicios
17
Metodologa de Modelizacin
ENLACES Y ASOCIACIONES
- Un enlace es una conexin fsica o conceptual entre dos
instancias de objetos
- Formalmente es una relacin, es decir, una lista ordenada de
objetos
- Un enlace es una instancia de una asociacin
- Una asociacin es un grupo de enlaces que comparten:
- la misma estructura
- la misma semntica
- Todos los enlaces de una asociacin conectan objetos de las
mismas clases
- Suelen identificarse con los verbos del enunciado del problema
- Las asociaciones suelen ser bidireccionales:
- el nombre de la asociacin binaria suele identificar una
direccin dada, la direccin hacia delante
- a esa asociacin le corresponde otra asociacin inversa
- las dos direcciones tienen el mismo significado, hacen
referencia a la misma asociacin subyacente
- la implementacin no tiene por qu ser bidireccional
- No deben representarse como punteros (atributos de un objeto
que tienen como valor otro objeto): la asociacin no es parte de
ningn objeto, sino que depende de los dos
- Todas las conexiones entre clases deben modelizarse como
asociaciones
- Por su naturaleza, las asociaciones violan el encapsulamiento de
la informacin en clases
18
Metodologa de Modelizacin
REPRESENTACION DE ASOCIACIONES
- Diagrama de una clase de asociaciones
Pas
capital
nombre
Ciudad
nombre
Diagrama de instancias:
(Pas)
Espaa
(Pas)
capital
capital
Francia
(Ciudad)
Madrid
(Ciudad)
Pars
19
Metodologa de Modelizacin
Proyecto
Lenguaje
Persona
20
Metodologa de Modelizacin
21
Metodologa de Modelizacin
REPRESENTACIN DE LA CARDINALIDAD
DE LAS RELACIONES
- Se utilizan terminadores sobre el conector para especificar
valores habituales de la multiplicidad:
- uno-a-uno: sin marca
- muchos (cero o ms):
Ejemplo: una persona puede tener 0 o ms coches:
Persona
Coche
posee
Marcap..
posee
22
Metodologa de Modelizacin
REPRESENTACIN DE LA CARDINALIDAD
DE LAS RELACIONES (2)
- Cuando es necesario, se utilizan etiquetas numricas:
- 1+ : uno o ms
- 3-5 : de 3 a 5
- 2, 4, 18 : 2, 4 o 18
- Si los objetos del extremo con multiplicidad muchos de una
asociacin deben tener un orden explcito, se indicar aadiendo
la etiqueta {ordenado}
- Cualificador: atributo especial que reduce la multiplicidad
efectiva de una asociacin
- es una forma de asociacin ternaria
- se expresa como una etiqueta dentro de un pequeo
recuadro adosado al extremo del multiplicidad muchos
23
Metodologa de Modelizacin
Usuario
tipo de permiso
(leer/escribir/ejecutar)
Persona
nombre
DNI
direccin
trabaja para
Empresa
nombre
CIF
direccin
puesto
salario
- Los atributos puesto y salario podran asociarse a la clase
Persona (la clase con multiplicidad muchos), lo que no sera
posible en relaciones muchos-a-muchos
24
Metodologa de Modelizacin
equipo
portero
ao
tiros parados
goles encajados
25
Metodologa de Modelizacin
CLASES DE ASOCIACIONES
- Cada enlace puede considerarse como una instancia de una clase
de asociaciones
- El diagrama de los atributos de los enlaces puede tener, adems,
nombre y operaciones
- Resulta til modelizar una asociacin como una clase si los
enlaces:
- pueden participar en asociaciones con otros objetos y/o
- estn sujetos a operaciones
equipo
usuario
mquina
autorizacin
prioridad
privilegios
abrir sesin
26
Metodologa de Modelizacin
ROLES
- Cada extremo de una asociacin es un rol
- Cada rol tiene un nombre que identifica el objeto o conjunto de
objetos asociado con el objeto o conjunto de objetos del otro
extremo
empleado compaa
persona
contratante
trabaja-para
27
Metodologa de Modelizacin
AGREGACIN
- forma especial de asociacin
- relacin parte-todo o es-parte-de
- los objetos que representan los componentes se asocian con un
objeto que representa todo el compuesto
- propiedades:
- transitividad
- antisimetra
- propagacin a algunas partes de algunas propiedades del
compuesto
- Representacin:
documento <>
prrafo<>
oracin
28
Metodologa de Modelizacin
GENERALIZACIN Y HERENCIA
- Recursos para compartir semejanzas entre clases, manteniendo
las diferencias
- Generalizacin: Relacin entre una clase y una versin menos
refinada de ella
- Es una relacin is-a
- la relacin inversa es la de especializacin
- la clase ms general es la superclase y la menos general la
subclase
- Asignamos a la superclase los atributos y operaciones comunes
al grupo de sus subclases
- Decimos que cada subclase hereda las caractersticas de su
superclase
- Generalizacin, especializacin y herencia son relaciones y
procesos transitivos
- una clase es antecesora de otra si es una de sus superclases
- una clase es sucesora de otra si es una de sus subclases
- Las subclases aaden sus propios atributos y operaciones a los
heredados de sus antecesoras
- Los nodos terminales del arbol jerrquico son las instancias
(objetos) de las subclases ms bajas del rbol. Estas instancias
heredan todos los atributos y operaciones de sus clases
antecesoras.
- En ocasiones, una subclase puede especificar un valor de un
atributo o una operacin, aunque le vengan suministrados por sus
superclases:
- los valores por defecto de los atributos
- los mtodos de las operaciones
- Normalmente, nunca se modifican las signaturas.
29
Metodologa de Modelizacin
REPRESENTACIN DE LA GENERALIZACIN
- tringulo que conecta una superclase con sus subclases:
Motor
tipo de energa
Elctrico
Combustin
Vapor
tipo de combustible
Gasolina
Gasoil
30
Metodologa de Modelizacin
MDULOS
- Un mdulo es un agrupamiento de clases, asociaciones y
generalizaciones
- Se especifican o definen en funcin del problema a modelizar
- Cada modelo de objetos puede dividirse en mdulos para
facilitar su manipulacin y comprensin
- Los nombres de clases y de asociaciones deben ser nicos dentro
de cada mdulo y, en la medida de lo posible, tambin dentro del
modelo de objetos completo
- Los mdulos se interconectan haciendo referencias a la misma
clase
- Es conveniente que haya menos enlaces intermdulo que
intramdulo
- Cada mdulo tiene un nombre asignado
31
Metodologa de Modelizacin
HOJAS
- Cada mdulo se representa en una hoja separada
- Si el mdulo es complejo, puede dividirse en una serie de hojas,
cada una de las cuales se numera, indicando el mdulo al que
pertenece.
- Cada asociacin o generalizacin aparece en una sola hoja
- Las clases pueden aparecer en varias hojas
- Para conectar las hojas entre s se utilizan copias de las mismas
clases. Las hojas hacen referencia a otras mediante un cdigo
encerrado en un crculo, y situado junto al smbolo de una clase:
A
A
Hoja 1
Mdulo 3
Hoja 2
Mdulo 3
32
Metodologa de Modelizacin
Modelizacin Dinmica
Referencias:
Rumbaugh, 91
D. Harel(1987) Statecharts: a visual formalism for complex
systems, Sc. of Comp. Prog. 8, 321-274
D. Harel (1988) On visual formalisms, Comm. ACM, 31, 5, 514530
Hopcroft, J. E., Ullman, J. D. (1979): Introduction to Automata
Theory, Languages and Computation, Addison-Wesley
Reisig, W. (1985), Petri Nets: An Introduction, Springer
33
Metodologa de Modelizacin
MODELIZACIN DINMICA
- Cambios de los objetos y sus relaciones en el tiempo
- Control: aspecto de un sistema que describe la secuencia de
operaciones que tiene lugar en respuesta a estmulos externos, sin
tener en cuenta qu hacen las operaciones, sobre qu operan, y
cmo estn implementadas
- Conceptos dinmicos fundamentales:
- sucesos (events): estmulos externos
- estados (conjunto de valores de objetos)
- Los programas no interactivos tienen un modelo dinmico
trivial, ya que su objetivo consiste en computar una funcin
- Diagrama de estados:
- red de estados y eventos que representa transiciones de
estados a lo largo del tiempo
- representacin grfica de las mquinas de estado finito
- Hay un diagrama de estados por cada clase que tenga un
comportamiento dinmico relevante. No todas las clases lo
necesitan
- Cada mquina de estados se ejecuta concurrentemente, y puede
cambiar de estado de forma independiente
- Los diversos diagramas de estado de cada clase se combinan
mediante sucesos compartidos. Hay que comprobar la
consistencia
34
Metodologa de Modelizacin
SUCESOS
- Algo que tiene lugar en un instante temporal determinado
- Cada suceso es nico y no tiene duracin
- Pueden estar causalmente relacionados entre s, o no (sucesos
concurrentes)
- Si no estn causalmente relacionados entre s, su ordenacin es
irrelevante
- Constituyen una transmisin de informacin unidireccional de
un objeto a otro
- El envo de un suceso desde un objeto a otro no incluye
necesariamente una rplica
- La rplica sera otro suceso
- No es como la llamada a una subrutina
- La granularidad de los sucesos depende del problema
- Clases de sucesos que indican que existe una estructura y una
conducta comn
- Esta estructura es jerrquica, igual que la de las clases de objetos
- Casi todas las clases de sucesos tienen atributos que indican la
informacin que transportan (se representan entre parntesis a
continuacin de la etiqueta del suceso)
- Pueden representarse como operaciones sobre el modelo de
objetos
35
Metodologa de Modelizacin
ESCENARIOS
- Un escenario es una secuencia de sucesos que tiene lugar
durante una ejecucin dada
- Su alcance puede variar:
- Todos los sucesos del sistema
- Slo los sucesos generados por determinados objetos del
sistema
- Puede ser un registro de una ejecucin o un experimento mental
sobre un modelo propuesto
- Despus de describir un escenario, hay que identificar al emisor
y receptor de cada suceso
- La construccin de diagramas de estado comienza por la
identificacin de escenarios
36
Metodologa de Modelizacin
EJEMPLO DE ESCENARIO
Ej. de diagrama de seguimiento (traza) de eventos: Llamada
telefnica
Persona que llama
Lnea telefnica
Persona llamada
levanta el receptor
comienza el tono de marcar
marca el 1er nmero
termina el tono de marcar
marca el 2 nmero
...
marca el ltimo nmero
suena el tono de llamada el timbre de llamada suena
leva el rec
el tono de llamada se para el timbre de llamada se para
telefonos conectados
telf con
...
...
cuelga
cuelga el telfono
fin de la conexin
fin
- El tiempo avanza de arriba abajo
- Slo se representa la secuencia, no los intervalos reales
- Se pueden enviar sucesos concurrentes
- Se pueden enviar ms de un suceso seguido
37
Metodologa de Modelizacin
ESTADOS
- Un estado es una abstraccin de los valores de los atributos y de
los enlaces de un objeto
- En un estado se agrupa un conjunto de valores de acuerdo con
propiedades que afectan al comportamiento de alto nivel del
objeto
- No tienen que especificarse todos los atributos del objeto, slo
los relevantes
- La granularidad de los estados depende del problema
- El estado especifica cul ser la respuesta del objeto a los
sucesos de entrada
- La respuesta de un objeto a un suceso puede variar
cuantitativamente en funcin de los valores de sus atributos, pero
es cualitativamente la misma para todos los valores dentro del
mismo estado, y puede ser cualitativamente diferente para valores
en diferentes estados
- La respuesta de un objeto a un suceso puede incluir una accin o
un cambio de estado del objeto
- El estado representa el intervalo entre dos sucesos recibidos por
un objeto
- El estado depende de la secuencia de sucesos que ha recibido
anteriormente, aunque en muchos casos los sucesos anteriores
estn escondidos por los sucesivos
- El estado tiene una duracin, y a veces se asocia con una
actividad continua
38
Metodologa de Modelizacin
ESTADOS (2)
- Mientras que un suceso separa dos estados, un estado separa dos
sucesos
- A veces se asocia un estado con el valor de un objeto que
satisface una condicin determinada
- En el caso ms simple, cada valor de un atributo define un
estado distinto
- Al definir estados, ignoramos los atributos que no afectan al
comportamiento del objeto, y colocamos en un solo estado todas
las combinaciones de valores de atributos y enlaces que
responden de la misma forma a los sucesos
- Especificacin del estado:
- nombre
- descripcin
- secuencia de sucesos que produce el estado
- condiciones que caracterizan el estado
- sucesos aceptados por el estado:
- suceso
- accin
- estado siguiente
- En la medida en que un enlace puede ser considerado como un
objeto, puede tener un estado.
39
Metodologa de Modelizacin
DIAGRAMAS DE ESTADO
- Describe el comportamiento de una clase de objetos
- Puesto que todas las instancias de una clase comparten el
mismo comportamiento, todas comparten el mismo diagrama
de estado
- Relacionan estados y sucesos
- El estado siguiente depende del suceso y del estado actual
- Transicin: cambio de estado causado por un suceso
- Grafo dirigido cuyos nodos son estados y los arcos estn
etiquetados con los sucesos que causan la transicin, sus
(atributos), las [condiciones], y las /acciones
- Camino: secuencia de sucesos (o estados)
- Cada estado no explicita totalmente todos los valores del objeto
- Cada instancia estar en un estado, en funcin de cules sean los
valores de sus atributos
- Cada objeto es independiente de los dems, y procede a su
propio ritmo
- El modelo dinmico es un conjunto de diagramas de estado que
interactan entre s mediante sucesos compartidos
40
Metodologa de Modelizacin
Estado1
Estado 2
hacer: Actividad1
hacer:Actividad2
Juegan blancas
mueven
negras
mueven
blancas
Juegan negras
jaque-mate
ahogo
ahogo
jaque-mate
~ Blancas ganan
~ Tablas
~ Negras ganan
41
Metodologa de Modelizacin
CONDICIONES
- Son funciones booleanas de valores de objetos
- Una condicin es vlida durante un intervalo
- Un estado es definible en trminos de una condicin
- Las condiciones pueden utilizarse como guardas sobre
transiciones
- Una transicin guardada dispara si su suceso ocurre
- Una condicin guardada sobre una transicin se expresa
como una expresin booleana encerrada entre corchetes
detrs del nombre del suceso
- Ejemplo:
tiempo [coches en izq N/S]
abrir recto N/S
tiempo
42
Metodologa de Modelizacin
OPERACIONES
- No basta con describir patrones de sucesos
- Una descripcin conductual de un objeto debe incluir lo que el
objeto hace para responder a los sucesos (operaciones asociadas a
los estados o a las transiciones)
- Actividades:
- operaciones con duracin
- asociadas a un estado
- operaciones continuas (visualizar algo) o secuenciales
- la actividad comienza cuando se entra en un estado, y
termina cuando un suceso hace salir de l
- Representacin:
hacer:
- Acciones:
- operaciones instantneas
- asociadas con un suceso
- su estructura interna no es relevante a efectos de la
modelizacin del control
- tambin pueden representar operaciones internas de
control:
- establecer atributos
- generar otros sucesos (p.ej., incrementar un
contador)
- diagramacin:
- precedido de /
- a continuacin de la condicin de guarda
43
Metodologa de Modelizacin
44
Metodologa de Modelizacin
Recoger monedas
introd. monedas/sumar
a contador
cancelar/devolver monedas
[agotado]
seleccionar prod.
[cambio < 0]
hacer: comprobar exist. y
calcular cambio
[cambio=0]
hacer: dispensar producto
[cambio > 0]
hacer: dar cambio
45
Metodologa de Modelizacin
liberada
liberado
hacer: liberar columna
hacer: liberar paquete
~
introd. dgito
hacer: borrar
producto
selecc. producto
hacer: aadir
~
dgito
confirmar
borrar
46
Metodologa de Modelizacin
GENERALIZACIN DE ESTADOS
- Los estados pueden tener subestados que heredan las
transiciones de sus superestados
- Cualquier transicin o accin que se aplica a un estado, se aplica
a todos sus subestados, a menos que stos tengan una transicin
especfica
- Los superestados se diagraman mediante una caja redondeada
grande, que contiene todos sus subestados (Harel: contornos)
- Puede haber transiciones de un subestado a otro que est fuera
del contorno
GENERALIZACIN DE SUCESOS
- Los sucesos pueden estar organizados en una jerarqua de
generalizacin, con herencia de los atributos de los sucesos
47
Metodologa de Modelizacin
48
Metodologa de Modelizacin
ACCIONES INTERNAS
- Un suceso puede hacer que se ejecute una accin sin que cambie
el estado
- Si se produce el suceso, su accin se ejecuta, pero no las
acciones de entrad y salida para el estado
- Diferencia con las autotransiciones: stas hacen que se ejecuten
las acciones de entrada y salida
TRANSICIN AUTOMTICA
- Transiciones lambda: transiciones que se disparan cuando se
completa una actividad secuencial
- Se representan mediante una flecha sin etiqueta de suceso
- Cada transicin est condicionada
ENVO DE SUCESOS
- Un objeto puede realizar la accin de enviar un suceso (con sus
atributos) a otro objeto
- Se representa mediante una lnea de puntos desde una flecha de
transicin a otro objeto o clase de objetos (o a una transicin del
diagrama de estados de ese objeto)
- Si un estado puede aceptar sucesos de ms de un objeto, el orden
en que se reciben puede afectar al estado resultante (la condicin
de carrera)
49
Metodologa de Modelizacin
CONCURRENCIA
- Cada objeto tiene su propio estado, y su propio diagrama de
estados
- La concurrencia por agregacin de estados es la combinacin de
los estados de todos los diagramas componentes
- Una transicin condicionada de un objeto puede depender de
que otro est en un estado determinado
- Puede darse concurrencia dentro del estado de un objeto si ste
puede dividirse en subconjuntos de atributos o enlaces, cada uno
con su propio subdiagrama
- En este caso, el estado del objeto ser la combinacin de
los estados de cada subdiagrama
SINCRONIZACIN DE ACTIVIDADES CONCURRENTES
- A veces un objeto debe realizar varias actividades a la vez, y
todas ellas deben acabar antes de que el objeto pueda pasar a otro
estado
- Representacin: se subdivide el estado con lneas de puntos, en
cada una de las cuales se coloca una actividad hacer
concurrentes. Las flechas se bifurcan para mostrar la concurrencia
50
Metodologa de Modelizacin
Modelizacin Funcional
Rumbaugh, 91;
Yourdon, E. (1989), Modern Structured Analysis, Yourdon Press
De Marco (1979), Structured Analysis and Systems Specification,
Prentice Hall
- Descripcin de la computacin: Qu hace el sistema
(Mod. dinmica: cundo hace el sistema lo que hace)
(Mod. de objetos: a quin hace el sistema lo que hace)
- Describe cmo se derivan los valores de salida de los de entrada,
sin tener el cuenta el orden de la computacin
- Conjunto de diagramas de flujo de datos (DFDs), cuyos
elementos son:
-entradas extenas
- operaciones
- almacenes internos
- salidas externas
- Incluye restricciones entre valores
- Especifica el significado de:
- las operaciones del modelo de objetos
- las acciones del modelo dinmico
- las restricciones del modelo de objetos
- Este modelo funcional es el principal modelo de los programas
no interactivos
- Las BDs tienen un modelo funcional trivial
51
Metodologa de Modelizacin
DFDs
- Conjunto de DFDs que especifican el significado de operaciones
y restricciones
- El DFD muestra las relaciones funcionales entre los valores
computados
- muestra el flujo origen-proceso-destino
- ignora la informacin de control (tiempo, decisiones entre
caminos alternativos)
- Contiene:
- procesos: que transforman datos:
- flujos de datos, que mueven datos
- actores: objetos que producen y/o consumen datos
52
Metodologa de Modelizacin
DFDS ANIDADOS
- Visin de la descomposicin funcional del sistema en unidades
funcionales
- La estructura de anidamiento forma un rbol
- El nivel ms bajo es el de las funciones primitivas
53
Metodologa de Modelizacin
PROCESOS
- Los procesos de nivel ms bajo son funciones puras sin efectos
colaterales
- Un DFD entero es un proceso de alto nivel
- Puede tener efectos colaterales si incluye componentes no
funcionales (almacenes de datos u objetos externos)
- El modelo funcional slo indica los posibles caminos
funcionales, no los que tienen lugar realmente en funcin de la
dinmica del sistema (esto aparece en el modelo dinmico)
- Tienen una o ms entradas y una o ms salidas
- sus entradas y salidas estn etiquetadas con su papel en la
computacin o el tipo de dato
- Slo muestra el patrn de entradas y salidas. La computacin
hay que especificarla
- Un proceso de alto nivel puede expandirse en todo un DFD de
nivel ms bajo
- Los procesos se implementan como mtodos de operaciones
sobre clases de objetos
54
Metodologa de Modelizacin
FLUJOS DE DATOS
- Conectan la salida de un objeto o proceso con la entrada de otro
objeto o proceso
- Representa un valor en un punto del proceso
- Los de entrada/salida pueden estar conectados a objetos o no (si
el diagrama es un fragmento del diagrama total)
- El mismo valor puede dirigirse a componentes distintos
- A veces, un valor agregado se descompone en sus componentes,
y cada uno se dirige a un lugar distinto. En este caso, cada flecha
componente se etiqueta
55
Metodologa de Modelizacin
ACTORES
- Objeto activo que produce o consume valores
- Estn asociados a las entradas o salidas de un DFD
(terminadores)
- Ej.: el usuario de un programa
- Las acciones de los actores no se representan en el DFD, sino en
el modelo dinmico
ALMACENES DE DATOS
- Objeto pasivo que almacena datos
- Responde a peticiones de almacenamiento y recuperacin de
datos
- Incluye aadir, modificar o borrar elementos
FLUJOS DE CONTROL
- A veces se incluyen en el modelo funcional
- Se representa como una lnea de puntos desde un proceso que
controla a otro controlado
- Puede etiquetarse con el valor de control
56
Metodologa de Modelizacin
ESPECIFICACIN DE OPERACIONES
- Los procesos se implementarn como operaciones sobre objetos
- Cada operacin puede especificarse de distintas formas:
- funcin matemtica
- tabla de valores de entrada/salida para conjuntos finitos
pequeos (enumeracin)
- ecuaciones que especifican el output en trminos del
input
- precondiciones y postcondiciones (definicin axiomtica)
- tablas de decisin
- clculo de predicados
- pseudocdigo
- lenguaje natural
- La especificacin incluye:
- nombre de la funcin
- una signatura: la interfase a la operacin
- los argumentos que exige, su nmero, orden y tipos
(entrada)
- los valores que devuelve (nmero, orden y tipos) (salida)
La signatura de todos los mtodos que implementan
una operacin debe coincidir
- una transformacin que define el efecto de una operacin:
- valores de salida como funciones de los valores de
entrada
- efectos colaterales en los objetos sobre los que opera
- restricciones
57
Metodologa de Modelizacin
58
Metodologa de Modelizacin
59
Metodologa de Modelizacin
RESTRICCIONES
- Una restriccin expresa la relacin entre:
- dos objetos al mismo tiempo
- diferentes valores del mismo objeto en tiempos distintos
- Puede expresarse como:
- una funcin total (un valor viene definido completamente
por otro)
- una funcin parcial (un valor est restringido por otro,
pero no est completamente definido por l)
- Hay restricciones en los tres tipos de modelos
- Invariantes: restricciones entre valores de un objeto
independientes del tiempo
60
Metodologa de Modelizacin
Modelo funcional
Modelo de objetos
- lo que el sistema
tiene que hacer
- procesos
- actores
- almacenes
- flujos de datos
- objetos
- objetos
- valores
Modelo dinmico
- secuencia de
ejecucin
61
Metodologa de Modelizacin
Anlisis
-------------------------------------------------------------------------------Bibliografa
Shlaer, S. (1988), Object-Oriented Systems Analysis, Yourdon
Press
-------------------------------------------------------------------------------- Primer paso: Formulacin del problema
- Requerimientos obligatorios
- Requerimientos opcionales
- Alcance del problema
- Contexto
- Supuestos
- Requerimientos de eficiencia
- Previsin de extensiones futuras
- Protocolos de interaccin con sistemas externos
- Modelizacin de objetos:
- identificar objetos y clases
- entidades fsicas
- conceptos
- denotados por nombres
- depurar los objetos y clases
- eliminar las clases redundantes, manteniendo la
descripcin ms rica
- eliminar las clases irrelevantes
- precisar o eliminar las clases vagas, confusas o
demasiado amplias
- la modelizacin de un elemento como clase o
atributo depende de cada caso
Unidad Docente de Lgica y Filosofa de la Ciencia
62
Metodologa de Modelizacin
63
Metodologa de Modelizacin
64
Metodologa de Modelizacin
65
Metodologa de Modelizacin
66
Metodologa de Modelizacin
67
Metodologa de Modelizacin
68
Metodologa de Modelizacin
--------------------------------------------------------------------------------
69
Metodologa de Modelizacin
70
Metodologa de Modelizacin
71
Metodologa de Modelizacin
72
Metodologa de Modelizacin
73
Metodologa de Modelizacin
74
Metodologa de Modelizacin
75
Metodologa de Modelizacin
list. tokens
rbol gr.
An. gramatical
An. semntico
(parsing)
arbol
gr. ampliado
cd. objeto
cd. optimiz.
cdigo
Form. c. obj .
Optimizacin
Generac. cd .
- su modelo de estados es trivial
- lo ms importante es el modelo funcional, que
especifica cmo los valores de entrada se
transforman en los de salida
- metodologas de DFD y descomposicin funcional
- etapas:
- partir la transformacin en fases
- diagrama del sistema: DFD
- definir clases intermedias para los flujos entre
cada para de fases sucesivas. Cada conjunto de
clases forma un modelo de objetos, acoplado
dbilmente con los de las fases contigas
- expandir cada fase hasta que las operaciones sean
fcilmente
implementables
- optimizar el diagrama final
- Transformacin continua
- la transformacin de datos se ejecuta de forma
continuada a medida que las entradas van
cambiando
Unidad Docente de Lgica y Filosofa de la Ciencia
76
Metodologa de Modelizacin
- etapas :
- disear el DFD
- definir objetos intermedios
- propagar los efectos intermedios de cada cambio
como actualizaciones incrementales a lo largo de
toda la secuencia
- optimizar la secuencia
- Interfase interactivo
- sistema dominado por interacciones externas
- ergonoma del dilogo con el usuario
- etapas:
- separar los objetos del interfase de los que
definen la semntica de la aplicacin
- si es posible, utilizar objetos predefinidos para
interactuar con agentes externos
- utilizar el modelo dinmico como estructura del
programa. Mejor, control guiado por sucesos.
- separar los sucesos fsicos de los lgicos
(mltiples sucesos fsicos)
- especificar completamente las funciones de la
aplicacin que son invocadas por el interfase
- Simulacin dinmica
- sistema que simula objetos cambiantes del mundo
real
- muchos objetos distintos que se actualizan
continuamente
- etapas:
78
Metodologa de Modelizacin
79
Metodologa de Modelizacin
Diseo de objetos
-------------------------------------------------------------------------------Aho, A., Hopcroft, J., Ullman, J. (1975), The Design and Analysis
of Computer Algorithms, Addison-Wesley
Sedgewick, R. (1983), Algorithms, Addison-Wesley
Gonnet, G. H. (1984), Handbook of Algorithms and Data
Structures, Addison-Wesley
Ullman, J. (1988) Principles of Database and Knowledge-Based
Systems, Comp. Sc. Press
Meyer, B. (1988), Object-Oriented Software Construction,
Prentice Hall Int.
-------------------------------------------------------------------------------- Transformacin de la estructura lgica del modelo de anlisis
en una organizacin fsica de un programa
- Papel central del modelo de objetos en el diseo
- Combinar los tres modelos para obtener las operaciones sobre
clases
- el modelo de objetos puede no mostrar las operaciones
- las acciones y actividades del modelo dinmico y los
procesos del modelo funcional se convierten en
operaciones asociadas a las clase del modelo de objetos
- Si asociamos una operacin con los sucesos que un objeto
recibe, el algoritmo que implementa la operacin depende
del estado del objeto
- el cdigo que implementa el algoritmo debe contener una
sentencia CASE que especifique el estado
- Si tenemos un par de sucesos que representan una accin
sobre otro objeto y la devolucin del resultado de la
accin, podemos representarlos como una operacin
- una accin o actividad puede expandirse en un DFD
completo del modelo funcional
- los procesos en el cuerpo del DFD representan el
cuerpo de una operacin
- los flujos son los valores intermedios
80
Metodologa de Modelizacin
81
Metodologa de Modelizacin
- Flexibilidad
- Ajuste al modelo de objetos
- Seleccionar estructuras de datos apropiadas a los
algoritmos
- instancias de clases contenedoras
- estructuras de datos genricas dadas como libreras:
matrices, listas, colas, pilas, conjuntos, bags,
diccionarios, asociaciones, rboles, colas de
prioridad, rboles, binarios, ...
- Si es necesario, definir nuevas clases y operaciones
internas
- Asignar la responsabilidad de las operaciones a las clases
adecuadas
- mejor a la clase objetivo que a la iniciadora
- el objetivo de la operacin es el objeto cambiado, no
el meramente preguntado
- el objetivo de la operacin es el objeto alrededor del
cual se agrupan en estrella las clases y asociaciones
que intervienen en la operacin
- por defecto, si es slo un objeto el que interviene,
decidir qu objeto realiza la operacin en el mundo
real
- Optimizar los caminos de acceso a los datos
- Aadir asociaciones redundantes para minimizar los
costes de acceso y maximizar la conveniencia
- reordenar ms eficientemente la computacin
- Almacenamiento de atributos derivados para evitar la
recomputacin de expresiones complicadas. Su valor se
puede actualizar de tres formas:
- actualizacin explcita
- recomputacin peridica
- valores activos
- Implementar el control de las interacciones externas
- Para implementar el modelo dinmico de acuerdo con la
estrategia bsica decidida durante el diseo del sistema se
puede:
82
Metodologa de Modelizacin
83
Metodologa de Modelizacin
84
Metodologa de Modelizacin
85
Metodologa de Modelizacin
86