SlideShare una empresa de Scribd logo
1 de 85
Descargar para leer sin conexión
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 1
METODOLOGIAS DE MODELIZACION
Rodolfo Fernández González
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 2
MODELIZACIÓN
- La construcción de hipótesis teóricas o modelos computa-
cionales es un “arte” sometido a reglas
- Modelizar: formalizar un fenómeno natural, organizacional o
técnico para disponer de:
- una descripción rigurosa
- un punto de partida preciso para la contrastación de
hipótesis
- un núcleo para el desarrollo de una aplicación informática
- Hay diversos estilos de formalización:
- explícitamente matemático:
- cuantitativo: Análisis matemático, Cálculo de
Probabilidades
- cualitativo: Algebra, Lógica
- computacional:
- es implícitamente matemático
- puede suponer o no una previa formalización
matemática
- diversas estrategias:
- OMT (Object Modelling Tool)
Rumbaugh, J. et al. (1991) Object-oriented
modeling and design. Prentice-Hall
- KADS
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 3
MODELOS
- Un modelo es una abstracción o esquematización de algo para
facilitar su comprensión.
- Abstracción o esquematización:
- omisión de detalles no esenciales del sistema real que
reduce su complejidad y facilita su comprensión.
- 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
adecuación, no corrección.
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 4
FASES DE LA MODELIZACION
- Análisis
- Diseño
- Implementación
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 5
FASE DE ANÁLISIS
- Construcción de modelos de la situación real que identifique las
propiedades relevantes
- Lo que interesa es comprender el problema
- Modelos de análisis: abstracciones concisas y precisas de lo que
debe hacer el sistema, no de cómo lo hará
- Los objetos de los modelos son conceptos del dominio del
problema, independientes de la implementación.
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 6
FASE DE DISEÑO
2.1. Diseño del sistema
- Decisiones de alto nivel sobre la arquitectura global
- Identificación de subsistemas
- Decisiones de optimización del rendimiento
- Estrategias de resolución
- Asignación inicial de recursos
2.2. Diseño de los objetos
- Construcción de los modelos de diseño a partir de los
modelos de análisis
- Detalles de implementación impuestos por las
estrategias de resolución
- Identificación de las estructuras de datos y de los
algoritmos necesarios para:
- implementar cada clase
- optimizar el rendimiento
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 7
FASE DE IMPLEMENTACIÓN
- Codificación de los modelos de diseño en un lenguaje de
programación
- Ingeniería del software:
- ajuste al diseño
- flexibilidad
- extensibilidad
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 8
TIPOLOGÍA DE MODELOS
- En cada fase, la modelización implica la construcción o
refinamiento de tres modelos distintos:
- Modelo de objetos
- Modelo dinámico
- Modelo funcional
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 9
MODELO DE OBJETOS
-Describe la estructura estática 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 jerárquicamente. Esa ordenación hace que
puedan compartir estructuras y comportamientos.
- Es el modelo fundamental, porque describe qué es lo que cambia
o se transforma, antes de describir cuándo o cómo lo hace.
- Proporciona la estructura básica en la que se integran los demás
modelos
- Descripción de los datos
- Es importante para cualquier problema que manipule estructuras
de datos no triviales
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 10
MODELO DINÁMICO
- Describe los aspectos del sistema que cambian en el tiempo, las
interacciones entre los objetos del sistema
- Secuenciación de operaciones:
- sucesos que inician o terminan cambios,
- secuencias de sucesos,
- estados que definen el contexto de los sucesos,
- organización 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
- Descripción de los aspectos de “control”
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 11
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
computación de los valores de salida a partir de los valores
de entrada
- Descripción de la “función” del sistema
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 12
RELACIONES ENTRE LOS MODELOS
- Los tres tipos de modelos son ortogonales entre sí: describen tres
aspectos distintos del sistema, pero estrechamente relacionados
entre sí:
- El modelo de objetos describe las estructuras de datos
sobre las que operan los modelos dinámico y funcional.
- Distintas modalidades descriptivas de los componentes
dinámicos del sistema:
M. de objetos M. dinámico M. funcional
operaciones sucesos funciones
acciones
- Los tres modelos evolucionan juntos durante las distintas fases
del proceso de modelización
- A veces, los límites no están claros entre los tres modelos
- A veces, los modelos no pueden captar todo lo que es relevante.
En esos casos se puede recurrir:
- al lenguaje natural
- a notaciones específicas, adecuadas al dominio del
problema
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 13
Modelización 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 identificación de los objetos depende del problema: puede
haber más de una representación 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 económicos, pero ...)
- cada objeto “conoce” su clase. Esta es una propiedad implícita
del objeto
- la agrupación de objetos en clase es una abstracción que nos
permite:
- generalizar el conocimiento de lo individual
- simplificar la complejidad
- utilizar menos recursos (descriptivos, de almacenamiento
de información)
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 14
Diagramas para objetos:
- Clases
- Objetos o instancias
Rumbaugh Coad/Yourdon
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 15
Atributos
- Características poseídas 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 relación entre objetos
- Se representan en las clases bajo una línea horizontal
- Cada atributo puede tener asociado
- su tipo (precedido por :)
- su valor por defecto (precedido por =)
Persona
nombre :cadena
edad :entero
En el caso de las clases, sólo se representan los valores:
(Persona) (Persona)
Juan Pérez Juan Pérez
27 años 27 años
Rumbaugh Coad/Yourdon
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 16
OPERACIONES
- Operación: Función o transformación que puede aplicarse a - o
que puede ser aplicada por- objetos de una clase
- Cada operación tiene como argumento implícito un objeto.
- La conducta de la operación depende de la clase de su
objeto
- el objeto “sabe” la especificación adecuada de su
operación
- polimorfismo: la misma operación:
- puede aplicarse a muchas clases distintas
- adopta en cada clase una forma distinta
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 17
MÉTODOS
Un Método es la especificación (implementación) de una
operación para una clase dada
- Si una operación tiene métodos para varias clases, es importante
que todos ellos tengan la misma signatura:
- lista de argumentos (entre paréntesis)
- tipo de cada argumento (precedido de :)
- tipo del valor resultante (precedido de :)
- Representación:
Persona
nombre :cadena
edad :entero
comprar
- Resulta útil durante la modelización 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 más argumentos que los de su objeto
pueden considerarse como atributos derivados
- Esto lleva a distinguir entre:
- atributos básicos o primitivos, y
- atributos derivados
- Al conjunto de las operaciones y de los métodos se les denomina
“servicios”
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 18
ENLACES Y ASOCIACIONES
- Un enlace es una conexión física o conceptual entre dos
instancias de objetos
- Formalmente es una relación, es decir, una lista ordenada de
objetos
- Un enlace es una instancia de una asociación
- Una asociación es un grupo de enlaces que comparten:
- la misma estructura
- la misma semántica
- Todos los enlaces de una asociación conectan objetos de las
mismas clases
- Suelen identificarse con los verbos del enunciado del problema
- Las asociaciones suelen ser bidireccionales:
- el nombre de la asociación binaria suele identificar una
dirección dada, la dirección “hacia delante”
- a esa asociación le corresponde otra asociación “inversa”
- las dos direcciones tienen el mismo significado, hacen
referencia a la misma asociación subyacente
- la implementación no tiene por qué ser bidireccional
- No deben representarse como “punteros” (atributos de un objeto
que tienen como valor otro objeto): la asociación no es parte de
ningún 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 información en clases
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 19
REPRESENTACION DE ASOCIACIONES
- Diagrama de una clase de asociaciones
País capital Ciudad
nombre nombre
Diagrama de instancias:
(País) capital (Ciudad)
España Madrid
(País) capital (Ciudad)
Francia París
- cada enlace puede etiquetarse con el nombre de la asociación
- Normalmente, las clases se ordenan para su lectura de izquierda
a derecha
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 20
N-ARIEDAD DE LAS ASOCIACIONES
- Las asociaciones pueden ser binarias, ternarias o de orden
superior
- La mayoría son binarias
- Las ternarias también pueden diagramarse:
Proyecto Lenguaje
Persona
- El nombre de la asociación puede escribirse como etiqueta junto
a la correspondiente salida del rombo de conexión
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 21
MULTIPLICIDAD DE LAS RELACIONES
- Sólo la consideraremos para las asociaciones binarias
- Podemos especificar cuántas instancias de una clase pueden
relacionarse con cada instancia de otra clase:
- Relaciones uno-a-uno (país-capital)
- Relaciones uno-a-muchos
- Relaciones muchos-a-muchos
- ...
- Es un aspecto de la modelización cuyo estudio puede dejarse
para las últimas fases
- Su consideración suele ayudar a elicitar supuestos ocultos
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 22
REPRESENTACIÓN 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 más):
Ejemplo: una persona puede tener 0 o más coches:
Persona Coche
posee
- opcionalidad (cero o uno):
Ejemplo: una persona puede tener o no un marcapasos:
Persona Marcap..
posee
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 23
REPRESENTACIÓN DE LA CARDINALIDAD
DE LAS RELACIONES (2)
- Cuando es necesario, se utilizan etiquetas numéricas:
- “1+” : uno o más
- “3-5” : de 3 a 5
- “2, 4, 18” : 2, 4 o 18
- Si los objetos del extremo con multiplicidad “muchos” de una
asociación deben tener un orden explícito, se indicará añadiendo
la etiqueta “{ordenado}”
- Cualificador: atributo especial que reduce la multiplicidad
efectiva de una asociación
- es una forma de asociación ternaria
- se expresa como una etiqueta dentro de un pequeño
recuadro adosado al extremo del multiplicidad “muchos”
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 24
ATRIBUTOS DE LOS ENLACES
- Son propiedades de los enlaces de una asociación
- Cada atributo de enlace tiene un valor para cada enlace
accesible-por
Fichero Usuario
tipo de permiso
(leer/escribir/ejecutar)
Persona trabaja para Empresa
nombre nombre
DNI CIF
dirección dirección
puesto
salario
- Los atributos “puesto” y “salario” podrían asociarse a la clase
“Persona” (la clase con multiplicidad “muchos”), lo que no sería
posible en relaciones “muchos-a-muchos”
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 25
ATRIBUTOS DE LOS ENLACES (2)
- Si se incluyen estos atributos en una clase de objetos, la
flexibilidad se reduce si, posteriormente, la multiplicidad de la
asociación cambia
equipo
portero año
tiros parados
goles encajados
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 26
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, además,
nombre y operaciones
- Resulta útil modelizar una asociación como una clase si los
enlaces:
- pueden participar en asociaciones con otros objetos y/o
- están sujetos a operaciones
equipo
usuario máquina
autorización
prioridad
privilegios
abrir sesión
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 27
ROLES
- Cada extremo de una asociación 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 compañía
persona contratante
trabaja-para
- Su uso es opcional, y puede utilizarse además de, o en vez de, el
nombre de la asociación
- Es obligatorio utilizarlos si la asociación se da entre dos objetos
de la misma clase
- Es aconsejable para distinguir dos asociaciones entre el mismo
par de clases
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 28
AGREGACIÓN
- forma especial de asociación
- relación “parte-todo” o “es-parte-de”
- los objetos que representan los componentes se asocian con un
objeto que representa todo el compuesto
- propiedades:
- transitividad
- antisimetría
- propagación a algunas partes de algunas propiedades del
compuesto
- Representación:
documento <> •párrafo<> •oración
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 29
GENERALIZACIÓN Y HERENCIA
- Recursos para compartir semejanzas entre clases, manteniendo
las diferencias
- Generalización: Relación entre una clase y una versión menos
refinada de ella
- Es una relación “is-a”
- la relación inversa es la de especialización
- la clase más 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 características de su
superclase
- Generalización, especialización 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 añaden sus propios atributos y operaciones a los
heredados de sus antecesoras
- Los nodos terminales del arbol jerárquico son las instancias
(objetos) de las subclases más 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 operación, aunque le vengan suministrados por sus
superclases:
- los valores por defecto de los atributos
- los métodos de las operaciones
- Normalmente, nunca se modifican las signaturas.
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 30
REPRESENTACIÓN DE LA GENERALIZACIÓN
- triángulo que conecta una superclase con sus subclases:
Motor
tipo de energía
Eléctrico Combustión Vapor
tipo de combustible
Gasolina Gasoil
- la etiqueta junto a cada triángulo es un discriminador que indica
qué propiedad de un objeto está siendo abstraída por la relación
de generalización
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 31
MÓDULOS
- Un módulo es un agrupamiento de clases, asociaciones y
generalizaciones
- Se especifican o definen en función del problema a modelizar
- Cada modelo de objetos puede dividirse en módulos para
facilitar su manipulación y comprensión
- Los nombres de clases y de asociaciones deben ser únicos dentro
de cada módulo y, en la medida de lo posible, también dentro del
modelo de objetos completo
- Los módulos se interconectan haciendo referencias a la misma
clase
- Es conveniente que haya menos enlaces intermódulo que
intramódulo
- Cada módulo tiene un nombre asignado
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 32
HOJAS
- Cada módulo se representa en una hoja separada
- Si el módulo es complejo, puede dividirse en una serie de hojas,
cada una de las cuales se numera, indicando el módulo al que
pertenece.
- Cada asociación o generalización 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 código
encerrado en un círculo, y situado junto al símbolo de una clase:
A
A
Hoja 1 Módulo 3 Hoja 2 Módulo 3
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 33
Modelización Dinámica
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, 514-
530
Hopcroft, J. E., Ullman, J. D. (1979): Introduction to Automata
Theory, Languages and Computation, Addison-Wesley
Reisig, W. (1985), Petri Nets: An Introduction, Springer
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 34
MODELIZACIÓN DINÁMICA
- 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 estímulos externos, sin
tener en cuenta qué hacen las operaciones, sobre qué operan, y
cómo están implementadas
- Conceptos dinámicos fundamentales:
- sucesos (events): estímulos externos
- estados (conjunto de valores de objetos)
- Los programas no interactivos tienen un modelo dinámico
trivial, ya que su objetivo consiste en computar una función
- Diagrama de estados:
- red de estados y eventos que representa transiciones de
estados a lo largo del tiempo
- representación gráfica de las máquinas de estado finito
- Hay un diagrama de estados por cada clase que tenga un
comportamiento dinámico relevante. No todas las clases lo
necesitan
- Cada máquina 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
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 35
SUCESOS
- Algo que tiene lugar en un instante temporal determinado
- Cada suceso es único y no tiene duración
- Pueden estar causalmente relacionados entre sí, o no (sucesos
concurrentes)
- Si no están causalmente relacionados entre sí, su ordenación es
irrelevante
- Constituyen una transmisión de información unidireccional de
un objeto a otro
- El envío de un suceso desde un objeto a otro no incluye
necesariamente una réplica
- La réplica sería 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 común
- Esta estructura es jerárquica, igual que la de las clases de objetos
- Casi todas las clases de sucesos tienen atributos que indican la
información que transportan (se representan entre paréntesis a
continuación de la etiqueta del suceso)
- Pueden representarse como operaciones sobre el modelo de
objetos
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 36
ESCENARIOS
- Un escenario es una secuencia de sucesos que tiene lugar
durante una ejecución dada
- Su alcance puede variar:
- Todos los sucesos del sistema
- Sólo los sucesos generados por determinados objetos del
sistema
- Puede ser un registro de una ejecución o un experimento mental
sobre un modelo propuesto
- Después de describir un escenario, hay que identificar al emisor
y receptor de cada suceso
- La construcción de diagramas de estado comienza por la
identificación de escenarios
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 37
EJEMPLO DE ESCENARIO
Ej. de diagrama de seguimiento (traza) de eventos: Llamada
telefónica
Persona que llama Línea telefónica Persona llamada
levanta el receptor
comienza el tono de marcar
marca el 1er número
termina el tono de marcar
marca el 2º número
...
marca el último número
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 teléf con
... ...
cuelga
cuelga el teléfono
fin de la conexión fin
- El tiempo avanza de arriba abajo
- Sólo se representa la secuencia, no los intervalos reales
- Se pueden enviar sucesos concurrentes
- Se pueden enviar más de un suceso seguido
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 38
ESTADOS
- Un estado es una abstracción 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, sólo
los relevantes
- La granularidad de los estados depende del problema
- El estado especifica cuál será la respuesta del objeto a los
sucesos de entrada
- La respuesta de un objeto a un suceso puede variar
cuantitativamente en función 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 acción 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
están escondidos por los sucesivos
- El estado tiene una duración, y a veces se asocia con una
actividad continua
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 39
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 condición determinada
- En el caso más 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
- Especificación del estado:
- nombre
- descripción
- secuencia de sucesos que produce el estado
- condiciones que caracterizan el estado
- sucesos aceptados por el estado:
- suceso
- acción
- estado siguiente
- En la medida en que un enlace puede ser considerado como un
objeto, puede tener un estado.
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 40
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
- Transición: cambio de estado causado por un suceso
- Grafo dirigido cuyos nodos son estados y los arcos están
etiquetados con los sucesos que causan la transición, 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 función de cuáles sean los
valores de sus atributos
- Cada objeto es independiente de los demás, y procede a su
propio ritmo
- El modelo dinámico es un conjunto de diagramas de estado que
interactúan entre sí mediante sucesos compartidos
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 41
DIAGRAMAS DE ESTADO (2)
- los diagramas pueden representar:
- ciclos de vida abiertos:
- puede ser considerado como una diagrama de estado
“subrutina”, que puede ser referenciado en varios lugares de
un diagrama de de nivel superior
- tiene estado inicial (•) y estado final ( ), que
pueden estar etiquetados
- el estado inicial se establece cuando el objeto se crea
- cuando se entra en el estado final, el objeto se
destruye
- bucles cerrados
- Forma general:
suceso1(atributos)[condición]/acción
Estado1 Estado 2
hacer: Actividad1 hacer:Actividad2
- Ejemplo simple: Ajedrez
Init
• Juegan blancas jaque-mate Blancas ganan
mueven mueven ahogo
negras blancas ahogo Tablas
Juegan negras jaque-mate Negras ganan
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 42
CONDICIONES
- Son funciones booleanas de valores de objetos
- Una condición es válida durante un intervalo
- Un estado es definible en términos de una condición
- Las condiciones pueden utilizarse como “guardas” sobre
transiciones
- Una transición guardada dispara si su suceso ocurre
- Una condición guardada sobre una transición se expresa
como una expresión booleana encerrada entre corchetes
detrás del nombre del suceso
- Ejemplo:
tiempo [coches en izq N/S]
abrir recto N/S abrir giro izq. N/S
tiempo[no hay coches izq. E/W]
tiempo
tiempo tiempo[no hay coches izq. E/W]
abrir giro izq. E/W abrir recto E/W
tiempo [coches en E/W]
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 43
OPERACIONES
- No basta con describir patrones de sucesos
- Una descripción 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 duración
- 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
- Representación:
“hacer:”
- Acciones:
- operaciones instantáneas
- asociadas con un suceso
- su estructura interna no es relevante a efectos de la
modelización del control
- también pueden representar operaciones internas de
control:
- establecer atributos
- generar otros sucesos (p.ej., incrementar un
contador)
- diagramación:
- precedido de /
- a continuación de la condición de guarda
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 44
DIAGRAMAS DE ESTADO ANIDADOS
- Las máquinas de estados se estructuran igual que los objetos:
- Generalización:
- expansión de las actividades anidadas
- se añaden detalles a las actividades que antes se
describieron a alto nivel
- los estados y los sucesos se colocan en jerarquías de
generalización, con herencia de estructura y
comportamiento (igual que la herencia de atributos y
operaciones en clases)
- Agregación:
- un estado se puede partir en componentes
ortogonales, con interacción limitada entre ellos
- equivale a la concurrencia de estados
- Con problemas complejos, la única forma práctica de trabajar
consiste en anidar diagramas
- Las actividades anidadas son diagramas de estado con
transiciones de entrada y salida, igual que las subrutinas
- Se usan estados anidados si la misma transacción se aplica a
muchos estados
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 45
EJEMPLO DE DIAGRAMA DE ESTADO
- Máquina expendedora:
introd. monedas/contar
Inactivo Recoger monedas
introd. monedas/sumar
a contador
cancelar/devolver monedas
[agotado] seleccionar prod.
[cambio < 0]
hacer: comprobar exist. y
calcular cambio
[cambio=0] [cambio > 0]
hacer: dispensar producto hacer: dar cambio
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 46
EJEMPLO DE DIAGRAMA DE ESTADO (2)
- La actividad “dispensar producto” puede expandirse en el
siguiente subdiagrama:
liberada liberado
hacer: liberar columna hacer: liberar paquete
- Los sucesos, como “seleccionar producto” también pueden
expandirse:
introd. dígito selecc. producto
hacer: borrar hacer: añadir
producto dígito confirmar
borrar
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 47
GENERALIZACIÓN DE ESTADOS
- Los estados pueden tener subestados que heredan las
transiciones de sus superestados
- Cualquier transición o acción que se aplica a un estado, se aplica
a todos sus subestados, a menos que éstos tengan una transición
específica
- 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
GENERALIZACIÓN DE SUCESOS
- Los sucesos pueden estar organizados en una jerarquía de
generalización, con herencia de los atributos de los sucesos
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 48
ACCIONES DE ENTRADA Y SALIDA
- En vez de mostrar acciones sobre las transiciones, podemos
asociar las acciones con la entrada o la salida de un estado
- Si todas las transiciones en un estado realizan la misma acción,
no se utiliza
- Siempre que se entra en un estado, mediante una transición de
entrada, se ejecuta antes la acción de entrada
- Siempre que se sale de un estado, mediante una transición de
salida, se ejecuta antes la acción de salida
- Si hay varias operaciones sobre un estado, se ejecutan en el
siguiente orden:
- acciones sobre la transición de entrada
- acciones de entrada
- actividades “hacer” (pueden ser interrumpidas por
sucesos que causen transiciones a otro estado)
- acciones de salida (también se ejecuta si se interrumpe
una actividad “hacer”)
- acciones sobre la transición de salida
- Se utilizan si un estado tiene varias transiciones de
entrada/salida , y todas causan la misma acción
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 49
ACCIONES INTERNAS
- Un suceso puede hacer que se ejecute una acción sin que cambie
el estado
- Si se produce el suceso, su acción 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
TRANSICIÓN AUTOMÁTICA
- Transiciones lambda: transiciones que se disparan cuando se
completa una actividad secuencial
- Se representan mediante una flecha sin etiqueta de suceso
- Cada transición está condicionada
ENVÍO DE SUCESOS
- Un objeto puede realizar la acción de enviar un suceso (con sus
atributos) a otro objeto
- Se representa mediante una línea de puntos desde una flecha de
transición a otro objeto o clase de objetos (o a una transición del
diagrama de estados de ese objeto)
- Si un estado puede aceptar sucesos de más de un objeto, el orden
en que se reciben puede afectar al estado resultante (la “condición
de carrera”)
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 50
CONCURRENCIA
- Cada objeto tiene su propio estado, y su propio diagrama de
estados
- La concurrencia por agregación de estados es la combinación de
los estados de todos los diagramas componentes
- Una transición 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 combinación de
los estados de cada subdiagrama
SINCRONIZACIÓN 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
- Representación: se subdivide el estado con líneas de puntos, en
cada una de las cuales se coloca una actividad “hacer”
concurrentes. Las flechas se bifurcan para mostrar la concurrencia
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 51
Modelización Funcional
Rumbaugh, 91;
Yourdon, E. (1989), Modern Structured Analysis, Yourdon Press
De Marco (1979), Structured Analysis and Systems Specification,
Prentice Hall
- Descripción de la computación: Qué hace el sistema
(Mod. dinámica: cuándo hace el sistema lo que hace)
(Mod. de objetos: a quién hace el sistema lo que hace)
- Describe cómo se derivan los valores de salida de los de entrada,
sin tener el cuenta el orden de la computación
- 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 dinámico
- 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
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 52
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 información 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
- almacenes de datos: guardan datos pasivamente
- Cada elemento lleva una etiqueta descriptiva
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 53
DFDS ANIDADOS
- Visión de la descomposición funcional del sistema en unidades
funcionales
- La estructura de anidamiento forma un árbol
- El nivel más bajo es el de las funciones primitivas
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 54
PROCESOS
- Los procesos de nivel más 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 sólo indica los posibles caminos
funcionales, no los que tienen lugar realmente en función de la
dinámica del sistema (esto aparece en el modelo dinámico)
- Tienen una o más entradas y una o más salidas
- sus entradas y salidas están etiquetadas con su papel en la
computación o el tipo de dato
- Sólo muestra el patrón de entradas y salidas. La computación
hay que especificarla
- Un proceso de alto nivel puede expandirse en todo un DFD de
nivel más bajo
- Los procesos se implementan como métodos de operaciones
sobre clases de objetos
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 55
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
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 56
ACTORES
- Objeto activo que produce o consume valores
- Están 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 dinámico
ALMACENES DE DATOS
- Objeto pasivo que almacena datos
- Responde a peticiones de almacenamiento y recuperación de
datos
- Incluye añadir, modificar o borrar elementos
FLUJOS DE CONTROL
- A veces se incluyen en el modelo funcional
- Se representa como una línea de puntos desde un proceso que
controla a otro controlado
- Puede etiquetarse con el valor de control
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 57
ESPECIFICACIÓN DE OPERACIONES
- Los procesos se implementarán como operaciones sobre objetos
- Cada operación puede especificarse de distintas formas:
- función matemática
- tabla de valores de entrada/salida para conjuntos finitos
pequeños (enumeración)
- ecuaciones que especifican el output en términos del
input
- precondiciones y postcondiciones (definición axiomática)
- tablas de decisión
- cálculo de predicados
- pseudocódigo
- lenguaje natural
- La especificación incluye:
- nombre de la función
- una signatura: la interfase a la operación
- los argumentos que exige, su número, orden y tipos
(entrada)
- los valores que devuelve (número, orden y tipos) (salida)
La signatura de todos los métodos que implementan
una operación debe coincidir
- una transformación que define el efecto de una operación:
- valores de salida como funciones de los valores de
entrada
- efectos colaterales en los objetos sobre los que opera
- restricciones
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 58
ESPECIFICACIÓN DE OPERACIONES (2)
Tipos de transformaciones:
- Operaciones de acceso (triviales):
- leen o escriben atributos o enlaces de un objeto
- se derivan de los atributos y asociaciones de una clase del
modelo de objetos
- no se especifican en la fase de análisis
- en el diseño se distinguen las públicas de las privadas
- Operaciones no triviales:
- queries:
- no tiene efectos colaterales sobre el estado externa-
mente visible de un objeto
- instantáneas
- son atributos derivados
- acciones:
- tienen efectos colaterales en los objetos
- no tienen duración
- actualizan los atributos básicos y de los enlaces
- definibles en términos de estados anterior y posterior
- se derivan de los procesos en el modelo funcional
- actividades
- operaciones con duración
- sólo tienen sentido para los actores
- suelen corresponder a un diagrama de estado en el
modelo dinámico
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 59
ESPECIFICACIÓN DE OPERACIONES (3)
- Puede haber valores internos no visibles desde fuera, que son
privados de la operación y quizás de la clase de objetos
- El estado del objeto puede dividirse entre información
externamente visible e información interna privada
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 60
RESTRICCIONES
- Una restricción expresa la relación entre:
- dos objetos al mismo tiempo
- diferentes valores del mismo objeto en tiempos distintos
- Puede expresarse como:
- una función total (un valor viene definido completamente
por otro)
- una función 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
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 61
Modelo funcional Modelo de objetos Modelo dinámico
- lo que el sistema -quién hace: los objetos
tiene que hacer
- procesos - operaciones - secuencia de
ejecución
- actores - objetos
- almacenes - objetos
- flujos de datos - valores
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 62
Análisis
--------------------------------------------------------------------------------
-
Bibliografía
Shlaer, S. (1988), Object-Oriented Systems Analysis, Yourdon
Press
--------------------------------------------------------------------------------
-
- Primer paso: Formulación del problema
- Requerimientos obligatorios
- Requerimientos opcionales
- Alcance del problema
- Contexto
- Supuestos
- Requerimientos de eficiencia
- Previsión de extensiones futuras
- Protocolos de interacción con sistemas externos
- Modelización de objetos:
- identificar objetos y clases
- entidades físicas
- conceptos
- denotados por nombres
- depurar los objetos y clases
- eliminar las clases redundantes, manteniendo la
descripción más rica
- eliminar las clases irrelevantes
- precisar o eliminar las clases vagas, confusas o
demasiado amplias
- la modelización de un elemento como clase o
atributo depende de cada caso
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 63
- la modelización de un elemento como clase o como
operación depende de cada caso
- el nombre de una clase debe reflejar su naturaleza, y
no su papel
- preparar diccionario de datos
- cada entrada corresponde a la definición de una
clase u objeto
- alcance dentro del problema
- supuestos o restricciones de su uso
- descripción de asociaciones, atributos y operaciones
- identificar asociaciones entre objetos (incluyendo
agregaciones)
- en vez de referir atributos a clases, utilizar
asociaciones
- asociaciones se expresan como verbos de
posicionamiento físico, comunicación, acciones
dirigidas, propiedad, satisfacción de condiciones,
...
- la distinción entre asociaciones y agregaciones no es
muy importante ahora
- depurar las asociaciones incorrectas:
- normalmente las asociaciones son binarias
- - redundancias: algunas asociaciones pueden ser
definidas a partir de otras (asociaciones
dependientes)
- - pueden mantenerse para mayor facilidad del
diseño, pero se marcan con líneas de puntos
- - en la medida de lo posible, clases, atributos y
asociaciones deberían representar información
independiente
- nombres claros y descriptivos (qué, y no cómo o
por qué)
- papel que una clase en una asociación desempeña
desde el punto de vista de la otra clase
- cualificador: nombre más contexto de uso
- multiplicidad: menos importante durante el
análisis
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 64
- identificar atributos y enlaces
- propiedades de objetos individuales
- no son objetos
- nombres seguidos de frases posesivas (“el color de
mi coche”)
- adjetivos
- no llevar demasiado lejos la búsqueda de atributos
- omitir o identificar los atributos derivados (edad, de
fecha de nacimiento y fecha actual)
- depurar los atributos
- si la existencia independiente de una entidad es
más importante que su valor, entonces es un
objeto
- si el valor de un atributo depende de un contexto
determinado, entonces el atributo es un
cualificador
- a veces los nombres se modelizan mejor como
cualificadores que como atributos de los objetos.
- Si no dependen del contexto, y pueden no ser
únicos, son atributos
- si una propiedad depende de la presencia de un
enlace, entonces la propiedad es un atributo del
enlace, y no del objeto relacionado
- si un atributo describe el estado interno de un
objeto que es invisible desde fuera de ese objeto,
entonces eliminarlo
- eliminar los atributos menos importantes
- organizar y simplificar clases de objetos utilizando la
herencia
- bottom up: generalizar aspectos comunes de las
clases, formando superclases
- si aparece repetidamente el mismo nombre de
asociación con el mismo significado, intentar
generalizar las clases asociadas
- top-down: refinar las clases formando subclases
especializadas: adjetivos del nombre de la clase
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 65
- verificar la existencia de caminos de acceso para las
queries
- iterar y refinar el modelo
- objetos que faltan
- clases innecesarias
- asociaciones que faltan
- asociaciones innecesarias
- asociaciones incorrectas
- atributos incorrectos
- agrupar las clases en módulos
- dividir los diagramas en hojas
- módulo: conjunto de clases (una o más hojas) que
contiene un subconjunto lógico del modelo total
- organización de módulos:
- organización en estrella
- módulo central que contiene la estructura global
de las clases de alto nivel
- otros módulos expanden cada clase de alto nivel
en una jerarquía de generalización, y añaden
asoociaciones a clases adicionales de bajo nivel
- Modelización dinámica
- Preparación de escenarios
- escenario: secuencia de sucesos
- cada suceso tiene un actor (sistema,
experimentador) y unos parámetros
- parámetros del suceso: la información
intercambiada (puede ser simplemente el hecho de
que el suceso ha ocurrido)
- diálogos típicos entre:
- experimentador y modelo
- usuario y sistema
- primero diálogos “normales”, y después los
“especiales” (entradas sin valor, con máximos o
mínimos, incompletas, etc.) y las condiciones de
error (valores no válidos, etc.)
- abortar operaciones o retornar a puntos anteriores
- Frecuente distinción entre:
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 66
- lógica de la aplicación (lo que interesa en el
modelo dinámico)
- interfase de usuario
- Identificar los sucesos entre objetos
- agrupar bajo el mismo nombre los sucesos que
tengan el mismo efecto en el flujo de control.
- asignar cada tipo de suceso a las clases de objetos
que lo envían y lo reciben (como suceso de entrada
y de salida)
- Preparar una traza de sucesos para cada escenario
- cada columna (objeto) de la traza identifica los
sucesos que afectan a un objeto determinado
- un diagrama de flujo de sucesos muestra los sucesos
entre clases, sin tener en cuenta su secuencia:
- Construir un diagrama de estados
- para cada clase de objetos con comportamiento
dinámico no trivial
- cada escenario o traza de sucesos corresponde a un
camino en el diagrama de estados
- Operativa de construcción:
- Tomamos los diagramas de traza de sucesos que
afectan a la clase que estamos modelizando.
- Tomamos una traza que corresponde a una
interacción típica, y sólo tenemos en cuenta los
sucesos que afectan a un solo objeto.
- Colocamos los sucesos en un camino cuyos arcos
están etiquetados con los sucesos de entrada y
salida que encontramos en una columna de la
traza.
- El intervalo entre dos sucesos es un estado.
- Dar un nombre (significativo, si es posible) a
cada estado.
- El diagrama inicial será una secuencia de sucesos
y estados.
- Si el escenario puede repetirse indefinidamente,
cerrar el camino en el diagrama de estados
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 67
- Revisar los bucles. Favorecerlos, y revisar sus
salidas
- insertar otros escenarios en el diagrama de
estados
- Después de los sucesos normales, los límites o
especiales, y los de error
- Si hay interacciones complejas con entradas
independientes, podemos construir el modelo
dinámico utilizando diagramas de estado anidados.
- Comprobar los sucesos entre objetos para verificar la
consistencia
- Modelización funcional
- Identificar los valores de entrada y salida
- son los parámetros de los sucesos entre el sistema y
el mundo externo
- Construir DFDs que muestren las dependencias
funcionales
- normalmente se construye por capas o niveles
- recoger valores
- computar valores
- generar salida
- proceder de atrás hacia delante: normalmente es más
difícil identificar todos los usos de una entrada que
identificar todas las fuentes de una salida
- expandir los procesos no triviales en DFDs de bajo
nivel
- Describir las funciones en el lenguaje adecuado
- preferible la descripción declarativa: especificación
de las relaciones entre entrada y salida y entre los
valores de salida: no implica una implementación
- si es más fácil que la declarativa, descripción
procedural: especificación de un algoritmo
- identificar las restricciones
- dependencias funcionales entre objetos no
relacionados mediante una dependencia de entrada-
salida
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 68
- restricciones entre dos objetos al mismo tiempo,
entre instancias del mismo objeto en tiempos
distintos (un invariante) o entre instancias de
objetos distintos en tiempos distintos
- las precondiciones sobre las funciones son
restricciones que deben satisfacer los valores de
entrada, y las postcondiciones son restricciones que
deben satisfacer los valores de salida
- hay que especificar los tiempo o condiciones en los
que valen las restricciones
- Especificar los criterios de optimización
- valores que hay que maximizar, minimizar, u
optimizar
- si hay criterios de optimización en conflicto, indicar
los criterios de decisión.
- Especificación de operaciones
- del modelo de objetos
- lectura y escritura de valores de los atributos y
enlaces de asociación
- de los sucesos
- cada suceso enviado a un objeto corresponde a una
operación sobre él
- de las acciones de estado y de las actividades
- de las funciones
- cada función corresponde a una operación sobre uno
o más objetos
- las funciones (excepto las de acceso) se organizan
en operaciones sobre objetos
- genéricas
- operaciones que no dependen de un sistema
concreto ni están sujetas a un orden de ejecución
determinado, pero que son significativas por sí
mismas
- simplificación de operaciones: eliminar redundancias y
variaciones. Utilizar la herencia para reducir el número de
operaciones distintas. Introducir nuevas superclases.
- Iteración del Análisis
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 69
--------------------------------------------------------------------------------
-
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 70
Diseño del sistema
--------------------------------------------------------------------------------
-
Bibliografía:
Yourdon, E., Constantine, L. (1989): Structured Design, Prentice
Hall
Page-Jones, M. (1988): The Practical Guide to Structured Systems
Design, Prentice Hall
--------------------------------------------------------------------------------
-
- arquitectura del sistema:
- organización global del sistema en componentes llamados
subsistemas
- Organización del sistema en subsistemas
- Cada subsistema contiene aspectos del sistema que
comparten alguna propiedad común o funcionalidad
semejante
- Un subsistema no es un objeto ni una función, sino un
empaquetamiento de clases, asociaciones, operaciones,
sucesos y restricciones que están interrelacionados y que
tienen un interfase bien definido con otros subsistemas
- normalmente un subsistema se identifica con los
“servicios” que proporciona
- un “servicio” es un grupo de funciones relacionadas que
comparten algún objetivo común, p. ej., cálculo
aritmético, procesamiento de entrada/salida, etc.
- las operaciones internas de cada subsistema pueden ser
diseñadas independientemente de las de los demás
- El diseño del sistema debe ser tal que la mayor parte de
las interacciones se produzcan dentro de cada subsistema.
- cada subsistema puede descomponerse en subsistemas
más pequeños. Los subsistemas de nivel más bajo se
llaman “módulos”
- La relación entre subsistemas puede ser:
- cliente-servidor
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 71
- el cliente llama al servidor, que realiza algún
servicio y devuelve el resultado. El cliente
conoce el interfase del servidor, pero no a la
inversa
- entre iguales (peer-to-peer)
- cada subsistema puede llamar a los demás. A
cada comunicación no le sigue necesariamente
una respuesta inmediata. Cada subsistema
debe conocer el interfase de los demás. Dada
la posible existencia de bucles, su dificultad es
mayor.
- La descomposición de sistemas en subsistemas puede
organizarse como una secuencia de capas horizontales o
de particiones verticales. También pueden adoptarse
enfoques híbridos
- Capas
- Un sistema de capas (layered system) es un conjunto
de niveles tal que cada uno de ellos está construido
en términos de los que se encuentran por debajo de
él, y constituye la base para la construcción de los
que se encuentran por encima de él
- El nivel superior es el sistema deseado y viene
especificado en la formulación del problema. El
nivel inferior son los recursos disponibles. Los
niveles intermedios se introducen:
- para eliminar el salto conceptual entre los
niveles
- para aumentar la portabilidad del sistema
- filosofía cliente-servidor: cada capa conoce los
servicios proporcionados por capas inferiores, pero
no a la inversa
- dos arquitecturas alternativas:
- cerrada: cada nivel está construido
exclusivamente en términos del nivel
inmediatamente inferior. Reduce las
dependencias entre niveles y los cambios son
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 72
más fáciles, puesto que el interfase sólo afecta al
nivel siguiente.
- abierta: cada nivel puede utilizar cualquier otro
nivel inferior. Reduce la necesidad de redefinir
operaciones en cada nivel, pero no respeta el
principio del ocultamiento de información. Los
cambios de un subsistema pueden afectar a
cualquier otro sistema superior. Menos robustez.
- Particiones
- Divisiones del sistema en subsistemas
independientes y débilmente acoplados, cada uno de
los cuales proporciona un servicio específico
- el conocimiento de los demás es superficial, y las
dependencias son mínimas
- Topologías del sistema
- tras la identificación de los subsistemas del nivel
superior, se construye un DFD que muestra el flujo
de información entre los subsistemas
- secuencia, estrella, ...
- Identificar las concurrencias inherentes
- una hebra de control es un camino a través de un conjunto
de diagramas de estado sólo está activo un objeto a la vez.
- Una hebra permanece en un diagrama de estado hasta que
un objeto envía un suceso a otro objeto y queda a la
espera de otro suceso. La hebra pasa al receptor del
suceso hasta que, en su caso, ésta vuelve al objeto
original. La hebra se parte si el objeto envía un evento y
continúa la ejecución
- En cada hebra de control, sólo está activo un objeto a la
vez. Se implementan como tareas.
- dos objetos son inherentemente concurrentes si pueden
recibir sucesos al mismo tiempo sin interactuar
- hay que identificar qué objetos deben estar activos de
forma concurrente, y cuáles tienen una actividad que es
mutuamente excluyente
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 73
- si los sucesos no están sincronizados, no pueden
colocarse en la misma hebra (thread) de control (“tarea”).
Si su actividad es mutuamente excluyente, pueden
colocarse en la misma tarea.
- los sistemas operativos multitarea pueden manejar
subsistemas inherentemente concurrentes. No es
necesario asignarlos a diferentes unidades hardware
- aunque todos los objetos son conceptualmente
concurrentes, muchos son interdependientes
- muchos objetos pueden colocarse en la misma hebra de
control, examinando los diagramas de estado de cada
objeto y el intercambio de información entre ellos
- Asignar subsistemas a los procesadores y las tareas
- Para cada subsistema, se evalúan los requerimientos de
rendimiento y los recursos necesarios
- Se escoge la implementación hard o soft para cada
subsistema
- Se asignan subsistemas soft a los procesadores para
satisfacer los requerimientos y minimizar la
comunicación interprocesadores
- Se establece la conectividad de las unidades físicas que
implementan los subsistemas
- Se asignan tareas a los procesadores, teniendo en cuenta
localización física, tiempo de respuesta o carga de
computación
- Se determina la conectividad física: topología de
conexión física, topología de las unidades repetidas,
teniendo en cuenta las pautas de entrada de datos y el
algoritmo paralelo para procesarlos (secuencia lineal,
matriz, árbol, estrella)
- Se decide la forma y tipo de los canales de conexión
(ancho de banda, latencia), y los mecanismos de
interacción (síncronos, asíncronos o de bloqueo) y
protocolos de conexión
- Elegir un enfoque para la gestión de los almacenes de
datos
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 74
- los almacenes de datos internos y externos constituyen
líneas de separación entre subsistemas con interfases bien
definidos
- el uso de bases de datos tiene ventajas e inconvenientes
- Manejar el acceso a los recursos globales
- dispositivos, espacio de almacenamiento o visualización,
nombres lógicos, bases de datos compartidas, etc.
- cada recurso debe ser poseído por un objeto guardíán que
controla su uso, total o parcial, mediante el uso de
bloqueos (locks)
- Escoger la implementación de control en el software
- en el análisis, las interacciones aparecen como sucesos
entre objetos
- dos tipos de control:
- externo: flujo de sucesos externamente visibles
entre los objetos
- tipos de control de sucesos externos:
- secuencial
- guiado por procedimientos (sist. ...)
- el procedimiento pide una entrada y
queda a la espera de recibirla
- fácil implementación si hay
alternancia regular de sucesos de
entrada/salida
- malo para las entradas asíncronas,
sistemas de control, interfases de
usuario flexibles
- C++
- guiados por sucesos (sist. ...)
- el lenguaje dispone de un dispatcher o
monitor que proporciona el control
- los procedimientos estás asignados a
sucesos, y el dispatcher los llama
cuando ocurre el suceso (callback)
- los procedimientos devuelven control
al dispatcher
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 75
- más difícil de implementar, pero más
flexible
- X-Windows
- concurrente (sist....)
- ejecución concurrente de tareas
- sucesos almacenados en una cola
- resolución de conflictos de planificación entre
tareas
- Ada
- Control interno
- flujo de control dentro de un proceso
- sólo existe en la implementación. Tipos:
- llamadas a procedimientos
- llamadas cuasi-concurrentes entre tareas
(corutinas, procesos lighweight ). Tiene
varios espacios de direccionamiento y
múltiples pilas de llamada, pero sólo puede
estar activa una hebra de control a la vez
- llamadas concurrentes entre tareas
- Otros:
- programación basada en reglas, programación
lógica...
- no control explícito, sino especificación
declarativa con reglas de evaluación
implícitas, quizás no declarativas
- Manejar las condiciones límite
- inicialización: constantes, parámetros, variables globales,
tareas, objetos guardianes, jerarquía de clases
- terminación: liberación de recursos
- fallo: errores del programa (bugs), errores de entrada,
agotamiento de recursos, fallo externo
- Establecer las prioridades
- elegir entre objetivos deseables pero incompatibles
- prototipaje rápido
- Estructuras arquitectónicas habituales
- Transformación batch
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 76
- la transformación de datos de todo un conjuntode
entrada se ejecuta una sola vez
- transformación secuencial desde la entrada hasta la
salida
- ej.: compilación
cód. fuente list. tokens árbol gr.
An. léxico An. gramatical
An. semántico
(parsing)
arbol
gr. ampliado
cód. objeto cód. optimiz. código
Form. c. obj . Optimización
Generac. cód .
- su modelo de estados es trivial
- lo más importante es el modelo funcional, que
especifica cómo los valores de entrada se
transforman en los de salida
- metodologías de DFD y descomposición funcional
- etapas:
- partir la transformación 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
débilmente con los de las fases contigüas
- expandir cada fase hasta que las operaciones sean
fácilmente implementables
- optimizar el diagrama final
- Transformación continua
- la transformación de datos se ejecuta de forma
continuada a medida que las entradas van
cambiando
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 78
- etapas :
- diseñar 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
- ergonomía del diálogo con el usuario
- etapas:
- separar los objetos del interfase de los que
definen la semántica de la aplicación
- si es posible, utilizar objetos predefinidos para
interactuar con agentes externos
- utilizar el modelo dinámico como estructura del
programa. Mejor, control guiado por sucesos.
- separar los sucesos físicos de los lógicos
(múltiples sucesos físicos)
- especificar completamente las funciones de la
aplicación que son invocadas por el interfase
- Simulación dinámica
- sistema que simula objetos cambiantes del mundo
real
- muchos objetos distintos que se actualizan
continuamente
- etapas:
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 79
- identificar actores, objetos activos del mundo
real, en el modelo de objetos. Los actores tienen
atributos que se actualizan periódicamente
- identificar sucesos discretos: interacciones
discretas con el objeto. Pueden implementarse
como operaciones sobre el objeto
- identificar dependencias continuas. Los atributos
del mundo real pueden depender de otros o variar
continuamente respecto al tiempo u otros
parámetros. Estos atributos hay que actualizarlos
periódicamente utilizando técnicas de
aproximación numérica para minimizar los
errores de cálculo
- normalmente, la simulación se ejecuta sobre un
escalamiento temporal dado. Los procesos
continuos se aproximan mediante pasos discretos
- Sistema de Tiempo real
- sistema dominado por restricciones temporales
estrictas
- determinar el escenario del peor caso
- Gestor de Transacciones
- sistema que almacena y actualiza datos, incluyendo
normalmente acceso concurrente desde distintos
lugares
- etapas:
- establecer las correspondencias entre el modelo
de objetos y la base de datos
- determinar los recursos que no pueden
compartirse (unidades de concurrencia)
- determinar los recursos a los que debe accederse
a la vez durante la transacción (unidades de
transacción)
- diseñar el control de la concurrencia para las
transacciones
--------------------------------------------------------------------------------
-
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 80
Diseño 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.
--------------------------------------------------------------------------------
-
- Transformación de la estructura lógica del modelo de análisis
en una organización física de un programa
- Papel central del modelo de objetos en el diseño
- 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 dinámico y los
procesos del modelo funcional se convierten en
operaciones asociadas a las clase del modelo de objetos
- Si asociamos una operación con los sucesos que un objeto
recibe, el algoritmo que implementa la operación depende
del estado del objeto
- el código que implementa el algoritmo debe contener una
sentencia CASE que especifique el estado
- Si tenemos un par de sucesos que representan una acción
sobre otro objeto y la devolución del resultado de la
acción, podemos representarlos como una operación
- una acción o actividad puede expandirse en un DFD
completo del modelo funcional
- los procesos en el cuerpo del DFD representan el
cuerpo de una operación
- los flujos son los valores intermedios
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 81
- hay que convertir la estructura del grafo en una
secuencia lineal de pasos de un algoritmo
- los procesos del DFD constituyen suboperaciones.
Algunas pueden ser operaciones sobre el objeto
original o sobre otros. Para saber a qué objeto se
dirige una operación:
- si el proceso extrae un valor de un flujo de
entrada, entonces el objetivo es el flujo de
entrada
- si tiene flujos de entrad y salida del mismo
tipo, y el de salida es una versión actualizada
del de entrada, entonces el objetivo es el flujo
de entrada/salida
- si el proceso construye un valor de salida a
partir de varios de entrada, entonces tenemos
una operación de clase (constructor) sobre la
clase de salida
- si el proceso tiene una entrada de o una salida
a un almacén o un actor, entonces éstos son los
objetivos
- Diseñar algoritmos para implementar las operaciones
- Elegir algoritmos que minimicen el coste de
implementación de las operaciones
- en muchos casos, la especificación del modelo
funcional ya constituye un algoritmo suficiente
- Se necesitan algoritmos:
- para implementar funciones para las que no se ha
dado una especificación procedural (sólo
restricciones declarativas)
- para optimizar funciones definidas mediante un
algoritmo sencillo pero poco eficiente
- Criterios de elección:
- Complejidad computacional: ¿cómo crece la
demanda de tiempo o de espacio de memoria
respecto al número de valores de entrada?
- Facilidad de implementación y de
comprensibilidad
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 82
- Flexibilidad
- Ajuste al modelo de objetos
- Seleccionar estructuras de datos apropiadas a los
algoritmos
- instancias de clases contenedoras
- estructuras de datos genéricas dadas como librerías:
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 operación es el objeto cambiado, no
el meramente preguntado
- el objetivo de la operación es el objeto alrededor del
cual se agrupan en estrella las clases y asociaciones
que intervienen en la operación
- por defecto, si es sólo un objeto el que interviene,
decidir qué objeto realiza la operación en el mundo
real
- Optimizar los caminos de acceso a los datos
- Añadir asociaciones redundantes para minimizar los
costes de acceso y maximizar la conveniencia
- reordenar más eficientemente la computación
- Almacenamiento de atributos derivados para evitar la
recomputación de expresiones complicadas. Su valor se
puede actualizar de tres formas:
- actualización explícita
- recomputación periódica
- valores activos
- Implementar el control de las interacciones externas
- Para implementar el modelo dinámico de acuerdo con la
estrategia básica decidida durante el diseño del sistema se
puede:
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 83
- Definir implícitamente el estado del programa mediante
la asignación de control dentro de él (Sistema guiado por
procedimientos: enfoque tradicional): Transferencia de
control a una sentencia o rutina en función de la entrada
recibida: Técnica de conversión:
- identificar el camino de control principal o normal.
Construir una secuencia lineal de sentencias que
corresponden a los estados de ese camino
- Identificar los caminos alternativos y convertirlos en
sentencias condicionales
- Identificar caminos hacia atrás que salgan del
camino principal y que se junten después con él. Se
convertirán en bucles en el programa. Si hay varios
caminos hacia atrás que no se cruzan, se convierten
en bucles anidados en el programa. Los que se
cruzan no se anidan, pueden implementarse
excepcionalmente con gotos.
- los estados y transiciones que queden corresponden
a condiciones de excepción. Se convertirán en
subrutinas de error, manejo de excepciones
soportado por el lenguaje, o definiciones o
comprobaciones de los flags de estado
- Implementar directamente un mecanismo de máquina de
estados (sistema guiado por sucesos)
- Motor de transiciones que permite ejecutar una
máquina de estados representada por una tabla de
transiciones y acciones
- YACC o LEX (parsers) proporcionan máquinas de
estado explícitas
- Implementar los objetos como tareas concurrentes
- Ajustar la estructura de clases para aumentar la herencia
- Reordenar las clases y operaciones
- ligeras modificaciones de las operaciones y de las
clases pueden permitirnos aumentar la herencia
mediante una sola operación heredada
- número de argumentos de las operaciones
- nombres de los atributos
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 84
- Abstraer la conducta común de grupos de clases
- crear superclases con los rasgos compartidos
- Utilizar la delegación para compartir la conducta cuando
la herencia es semánticamente inválida
- un objeto puede invocar selectivamente funciones
de otra clase
- Diseñar las asociaciones
- estrategia para implementar las asociaciones
- global o para cada asociación
- si algunas asociaciones se atraviesan en una sola
dirección, su implementación se puede simplificar, como
puntero (atributo que contiene la referencia de un objeto)
o conjunto de punteros (dependiendo de su
multiplicidad). Si la asociación apunta a “muchos”
ordenados, podemos utilizar una lista en vez de un
conjunto. Una asociación cualificada con multiplidad
“uno” puede implementarse como un objeto diccionario
(conjunto de pares de valores que hacen corresponder
valores de selección con valores objetivo). Los
diccionarios se pueden implementar mediante hashing.
Con multiplicidad “muchos”, diccionarios de conjuntos
de objetos
- las asociaciones bidireccionales: como atributos en una
dirección, en ambas, o como un objeto asociación
distinto de las dos clases (conjunto de pares de objetos
asociados, o triplas para las asociaciones cualificadas, que
se implementan mediante dos objetos diccionario, uno
para cada dirección), dependiendo de la frecuencia de uso
de las asociaciones, de si los accesos superan a las
actualizaciones
- Si una asociación tiene enlaces, se implementa como una
clase distinta, en la que cada instancia representa un
enlace y sus atributos
- Determinar la representación de objetos: fácil. Tipos primitivos
o combinaciones de grupos relacionados.
- Empaquetar las clases y asociaciones en Módulos
- Ocultar la información interna
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 85
- definición del interfase público de cada clase al
mayor nivel de abstracción posible
- decidir qué atributos de la clase serán accesibles
desde fuera o no (private)
- limitar el alcance de los métodos y operaciones
- evitar el acceso mediante asociaciones no
conectadas a la clase actual
- evitar aplicar un método al resultado de otro método
- asegurar la coherencia de las entidades
- una entidad, operación o módulo es coherente si
está organizado sobre un plan consistente y todas
sus partes se ordenan a un fin común. Separar los
métodos estratégicos (policy) de los métodos que
implementan algoritmos (implementation meth.)
- construir los módulos físicos
- Documentar las decisiones de diseño: documento de diseño
--------------------------------------------------------------------------------
-
Implementación
- Dijkstra, E. W. (1976): A Discipline of Programming, Prentice
Hall
- Kernighan, B. W., Plauger, P. J. (1978), The Elements of
Programming Style, McGraw-Hill
--------------------------------------------------------------------------------
-
- Reusabilidad
- métodos coherentes: una sola función o un solo grupo de
funciones relacionadas
- métodos pequeños
- métodos consistentes: los métodos semejantes deben utilizar
los mismos nombres, condiciones, orden de los argumentos,
tipos de datos, valores devueltos y condiciones de error.
Deben tener una estructura paralela
Rodolfo Fernández González Metodología de Modelización
Unidad Docente de Lógica y Filosofía de la Ciencia 86
- separar la estrategia de la computación básica
- uniformidad: escribir métodos para todas las combinaciones
de entrada, y no sólo para las previstas
- generalizar el método lo más posible
- evitar las dependencias contextuales
- subrutinas
- factorización de las diferencias
- delegación
- encapsulamiento de código externo dentro de una operación
o clase
- extensibilidad
- encapsular las clases
- ocultar las estructuras de datos
- evitar el acceso remoto a enlaces o métodos
- evitar sentencias case sobre el tipo de objeto, sino
métodos. Las case se utilizan para comprobar atributos
internos de un objeto
- distinguir las operaciones públicas de las privadas
- robustez
- optimizar el programa sólo después de que funcione
- validar los argumentos
- evitar límites predefinidos
- incluir en el programa instrumentos de depuración y
monitorización del rendimiento
- programación en equipo
- no comenzar prematuramente la programación
- mantener los métodos inteligibles
- hacer los métodos legibles
- utilizar exactamente los mismos nombres que en el
modelo de objetos
- escoger cuidadosamente los nombres, siguiendo una
pauta uniforme
- usar metodologías de programación, o crearlas
- documentar las clases y métodos
- empaquetar en módulos.

Más contenido relacionado

La actualidad más candente

etapas del análisis,diseño y programacion orientada a objetos
etapas del análisis,diseño y programacion orientada a objetosetapas del análisis,diseño y programacion orientada a objetos
etapas del análisis,diseño y programacion orientada a objetos222415
 
Analisis y diseño orientado a objetos exposicion
Analisis y diseño orientado a objetos exposicionAnalisis y diseño orientado a objetos exposicion
Analisis y diseño orientado a objetos exposicionalumnosguacara
 
Analisis y Diseños de Sistemas 2-Metodologia OOSE
Analisis y Diseños de Sistemas 2-Metodologia OOSEAnalisis y Diseños de Sistemas 2-Metodologia OOSE
Analisis y Diseños de Sistemas 2-Metodologia OOSEMari Cruz
 
Análisis y diseño orientado a objetos
Análisis y diseño orientado a objetosAnálisis y diseño orientado a objetos
Análisis y diseño orientado a objetosChristian Leon
 
Analisis y diseño de sistemas
Analisis y diseño de sistemasAnalisis y diseño de sistemas
Analisis y diseño de sistemasjoalmerca6
 
Metodologã­a orientada-a-objetos-omt.-rumbaugh
Metodologã­a orientada-a-objetos-omt.-rumbaughMetodologã­a orientada-a-objetos-omt.-rumbaugh
Metodologã­a orientada-a-objetos-omt.-rumbaughviisistemas
 
Analisis y diseño orientado a odjetos
Analisis y diseño orientado a odjetosAnalisis y diseño orientado a odjetos
Analisis y diseño orientado a odjetosLex Marin
 
DiseñO Orientado A Objetos
DiseñO Orientado A ObjetosDiseñO Orientado A Objetos
DiseñO Orientado A ObjetosFrancisco Godoy
 
Analisis y Diseño de Sistemas 2-Metodologia OMT
Analisis y Diseño de Sistemas 2-Metodologia OMTAnalisis y Diseño de Sistemas 2-Metodologia OMT
Analisis y Diseño de Sistemas 2-Metodologia OMTMari Cruz
 

La actualidad más candente (19)

etapas del análisis,diseño y programacion orientada a objetos
etapas del análisis,diseño y programacion orientada a objetosetapas del análisis,diseño y programacion orientada a objetos
etapas del análisis,diseño y programacion orientada a objetos
 
Analisis y diseño orientado a objetos exposicion
Analisis y diseño orientado a objetos exposicionAnalisis y diseño orientado a objetos exposicion
Analisis y diseño orientado a objetos exposicion
 
Omt
OmtOmt
Omt
 
Dominio
DominioDominio
Dominio
 
Analisis y Diseños de Sistemas 2-Metodologia OOSE
Analisis y Diseños de Sistemas 2-Metodologia OOSEAnalisis y Diseños de Sistemas 2-Metodologia OOSE
Analisis y Diseños de Sistemas 2-Metodologia OOSE
 
Análisis y diseño orientado a objetos
Análisis y diseño orientado a objetosAnálisis y diseño orientado a objetos
Análisis y diseño orientado a objetos
 
Analisis y diseño de sistemas
Analisis y diseño de sistemasAnalisis y diseño de sistemas
Analisis y diseño de sistemas
 
OOSE
OOSEOOSE
OOSE
 
Metodologã­a orientada-a-objetos-omt.-rumbaugh
Metodologã­a orientada-a-objetos-omt.-rumbaughMetodologã­a orientada-a-objetos-omt.-rumbaugh
Metodologã­a orientada-a-objetos-omt.-rumbaugh
 
Analisis y diseño orientado a odjetos
Analisis y diseño orientado a odjetosAnalisis y diseño orientado a odjetos
Analisis y diseño orientado a odjetos
 
DiseñO Orientado A Objetos
DiseñO Orientado A ObjetosDiseñO Orientado A Objetos
DiseñO Orientado A Objetos
 
3_Orientación a objeto
3_Orientación a objeto3_Orientación a objeto
3_Orientación a objeto
 
Metodologia
MetodologiaMetodologia
Metodologia
 
Tc2 301403 21
Tc2 301403 21Tc2 301403 21
Tc2 301403 21
 
Adoo martha hidalgo
Adoo   martha hidalgoAdoo   martha hidalgo
Adoo martha hidalgo
 
Análisis y diseño orientado a objetos
Análisis y diseño orientado a objetosAnálisis y diseño orientado a objetos
Análisis y diseño orientado a objetos
 
Modelos dinamicos Orientado a Objetos
Modelos dinamicos Orientado a ObjetosModelos dinamicos Orientado a Objetos
Modelos dinamicos Orientado a Objetos
 
Analisis y Diseño de Sistemas 2-Metodologia OMT
Analisis y Diseño de Sistemas 2-Metodologia OMTAnalisis y Diseño de Sistemas 2-Metodologia OMT
Analisis y Diseño de Sistemas 2-Metodologia OMT
 
Metodologia OMT
Metodologia OMTMetodologia OMT
Metodologia OMT
 

Destacado

Destacado (9)

Formulación y evaluación de proyectos de inversión e. pimentel
Formulación y evaluación de proyectos de inversión   e. pimentelFormulación y evaluación de proyectos de inversión   e. pimentel
Formulación y evaluación de proyectos de inversión e. pimentel
 
Formulación y Evaluación de Proyectos, Resumen
Formulación y Evaluación de Proyectos, ResumenFormulación y Evaluación de Proyectos, Resumen
Formulación y Evaluación de Proyectos, Resumen
 
Formulación y Evaluación de Proyecto
Formulación y Evaluación de ProyectoFormulación y Evaluación de Proyecto
Formulación y Evaluación de Proyecto
 
Formulación y Evaluación de Proyectos
Formulación y Evaluación de ProyectosFormulación y Evaluación de Proyectos
Formulación y Evaluación de Proyectos
 
Diseño estrategias de marketing
Diseño estrategias de marketingDiseño estrategias de marketing
Diseño estrategias de marketing
 
Employee Onboarding : Statistics you need to know
Employee Onboarding : Statistics you need to knowEmployee Onboarding : Statistics you need to know
Employee Onboarding : Statistics you need to know
 
Plan de marketing de Coca Cola
Plan de marketing de Coca ColaPlan de marketing de Coca Cola
Plan de marketing de Coca Cola
 
10 Revealing Statistics About Compensation & Benefits You should Know
10 Revealing Statistics About Compensation & Benefits You should Know10 Revealing Statistics About Compensation & Benefits You should Know
10 Revealing Statistics About Compensation & Benefits You should Know
 
Ejemplo De Una Estrategia De Mercadotecnia
Ejemplo De Una Estrategia De MercadotecniaEjemplo De Una Estrategia De Mercadotecnia
Ejemplo De Una Estrategia De Mercadotecnia
 

Similar a Metodologias de modelización r. fernandez

Analisis y diseño de sistemas
Analisis y diseño de sistemasAnalisis y diseño de sistemas
Analisis y diseño de sistemasjoalmerca6
 
Analisis Y Diseño De Sistemas Orientado A Objetos
Analisis Y Diseño De Sistemas Orientado A ObjetosAnalisis Y Diseño De Sistemas Orientado A Objetos
Analisis Y Diseño De Sistemas Orientado A Objetosjoalmerca6
 
Unidad II - Diagrama de Objetos - tema 1.pptx
Unidad II - Diagrama de Objetos - tema 1.pptxUnidad II - Diagrama de Objetos - tema 1.pptx
Unidad II - Diagrama de Objetos - tema 1.pptxUPTValencia
 
Unidad II - Diagrama de Objetos - tema 1.pptx
Unidad II - Diagrama de Objetos - tema 1.pptxUnidad II - Diagrama de Objetos - tema 1.pptx
Unidad II - Diagrama de Objetos - tema 1.pptxUPTValencia
 
Poo 1 concepto_basico
Poo 1 concepto_basicoPoo 1 concepto_basico
Poo 1 concepto_basicojlmanmons
 
Diapositiva de Estudio: EXPOSICION UML.pptx
Diapositiva de Estudio: EXPOSICION UML.pptxDiapositiva de Estudio: EXPOSICION UML.pptx
Diapositiva de Estudio: EXPOSICION UML.pptxjorgejvc777
 
FUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOS
FUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOSFUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOS
FUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOSRichard J. Nuñez
 
Diapositiva de Estudio: FUNDAMENTOS UML.ppt
Diapositiva de Estudio: FUNDAMENTOS UML.pptDiapositiva de Estudio: FUNDAMENTOS UML.ppt
Diapositiva de Estudio: FUNDAMENTOS UML.pptjorgejvc777
 
Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetosyoiner santiago
 
Introduccion Programación Orientada a Objetos.ppt
Introduccion Programación Orientada a Objetos.pptIntroduccion Programación Orientada a Objetos.ppt
Introduccion Programación Orientada a Objetos.pptdocmarcoantoniosotov
 
Programación Orientada a Objetos.ppt
Programación Orientada a Objetos.pptProgramación Orientada a Objetos.ppt
Programación Orientada a Objetos.pptNachoTValverde
 
Programación Orientada a Objetos.ppt
Programación Orientada a Objetos.pptProgramación Orientada a Objetos.ppt
Programación Orientada a Objetos.pptjhonJD1
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetosAngel Laverde ID
 
Programación Orientada a Objetos.ppt
Programación Orientada a Objetos.pptProgramación Orientada a Objetos.ppt
Programación Orientada a Objetos.pptssuser0b0b0e1
 
diapositivas_basicas_sobre_la_notacion_uml.pptx
diapositivas_basicas_sobre_la_notacion_uml.pptxdiapositivas_basicas_sobre_la_notacion_uml.pptx
diapositivas_basicas_sobre_la_notacion_uml.pptxJamesHerberthBacaTel
 

Similar a Metodologias de modelización r. fernandez (20)

Analisis y diseño de sistemas
Analisis y diseño de sistemasAnalisis y diseño de sistemas
Analisis y diseño de sistemas
 
Analisis Y Diseño De Sistemas Orientado A Objetos
Analisis Y Diseño De Sistemas Orientado A ObjetosAnalisis Y Diseño De Sistemas Orientado A Objetos
Analisis Y Diseño De Sistemas Orientado A Objetos
 
Unidad II - Diagrama de Objetos - tema 1.pptx
Unidad II - Diagrama de Objetos - tema 1.pptxUnidad II - Diagrama de Objetos - tema 1.pptx
Unidad II - Diagrama de Objetos - tema 1.pptx
 
Unidad II - Diagrama de Objetos - tema 1.pptx
Unidad II - Diagrama de Objetos - tema 1.pptxUnidad II - Diagrama de Objetos - tema 1.pptx
Unidad II - Diagrama de Objetos - tema 1.pptx
 
Poo 1 concepto_basico
Poo 1 concepto_basicoPoo 1 concepto_basico
Poo 1 concepto_basico
 
Exponer yony y estefany
Exponer  yony y estefanyExponer  yony y estefany
Exponer yony y estefany
 
Diapositiva de Estudio: EXPOSICION UML.pptx
Diapositiva de Estudio: EXPOSICION UML.pptxDiapositiva de Estudio: EXPOSICION UML.pptx
Diapositiva de Estudio: EXPOSICION UML.pptx
 
FUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOS
FUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOSFUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOS
FUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOS
 
Diapositiva de Estudio: FUNDAMENTOS UML.ppt
Diapositiva de Estudio: FUNDAMENTOS UML.pptDiapositiva de Estudio: FUNDAMENTOS UML.ppt
Diapositiva de Estudio: FUNDAMENTOS UML.ppt
 
Analisis y diseno_oo
Analisis y diseno_ooAnalisis y diseno_oo
Analisis y diseno_oo
 
Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetos
 
Introduccion Programación Orientada a Objetos.ppt
Introduccion Programación Orientada a Objetos.pptIntroduccion Programación Orientada a Objetos.ppt
Introduccion Programación Orientada a Objetos.ppt
 
Programación Orientada a Objetos.ppt
Programación Orientada a Objetos.pptProgramación Orientada a Objetos.ppt
Programación Orientada a Objetos.ppt
 
Programación Orientada a Objetos.ppt
Programación Orientada a Objetos.pptProgramación Orientada a Objetos.ppt
Programación Orientada a Objetos.ppt
 
Programación Orientada a Objetos.ppt
Programación Orientada a Objetos.pptProgramación Orientada a Objetos.ppt
Programación Orientada a Objetos.ppt
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 
Semana 6
Semana 6Semana 6
Semana 6
 
Tarea 3
Tarea 3Tarea 3
Tarea 3
 
Programación Orientada a Objetos.ppt
Programación Orientada a Objetos.pptProgramación Orientada a Objetos.ppt
Programación Orientada a Objetos.ppt
 
diapositivas_basicas_sobre_la_notacion_uml.pptx
diapositivas_basicas_sobre_la_notacion_uml.pptxdiapositivas_basicas_sobre_la_notacion_uml.pptx
diapositivas_basicas_sobre_la_notacion_uml.pptx
 

Más de Wilfredy Inciarte

Anatomia del icono wilfredy inciarte
Anatomia del icono   wilfredy inciarteAnatomia del icono   wilfredy inciarte
Anatomia del icono wilfredy inciarteWilfredy Inciarte
 
Teoria general de sistemas e. bustos
Teoria general de sistemas   e. bustosTeoria general de sistemas   e. bustos
Teoria general de sistemas e. bustosWilfredy Inciarte
 
Sistemas conceptos y caracteristicas
Sistemas conceptos y caracteristicasSistemas conceptos y caracteristicas
Sistemas conceptos y caracteristicasWilfredy Inciarte
 
Principios y aplicaciones del análisis costo beneficio - e. morin
Principios y aplicaciones del análisis costo beneficio - e. morinPrincipios y aplicaciones del análisis costo beneficio - e. morin
Principios y aplicaciones del análisis costo beneficio - e. morinWilfredy Inciarte
 
Modelo para el analisis de los costos y beneficios
Modelo para el analisis de los costos y beneficiosModelo para el analisis de los costos y beneficios
Modelo para el analisis de los costos y beneficiosWilfredy Inciarte
 
Guia del analisis costo beneficio - proyectos de inversion
Guia del analisis costo   beneficio - proyectos de inversionGuia del analisis costo   beneficio - proyectos de inversion
Guia del analisis costo beneficio - proyectos de inversionWilfredy Inciarte
 
Guia para la formulacion de royectos metodologia bpun
Guia para la formulacion de royectos   metodologia bpunGuia para la formulacion de royectos   metodologia bpun
Guia para la formulacion de royectos metodologia bpunWilfredy Inciarte
 
Manual de proyectos agencia andaluza del voluntariado
Manual de proyectos   agencia andaluza del voluntariadoManual de proyectos   agencia andaluza del voluntariado
Manual de proyectos agencia andaluza del voluntariadoWilfredy Inciarte
 
Evaluación de proyectos j. sarmiento
Evaluación de proyectos   j. sarmientoEvaluación de proyectos   j. sarmiento
Evaluación de proyectos j. sarmientoWilfredy Inciarte
 
Aspestos generales de la gestion de proyectos
Aspestos generales de la gestion de proyectosAspestos generales de la gestion de proyectos
Aspestos generales de la gestion de proyectosWilfredy Inciarte
 
Introducción a los microprocesadores j. sainz
Introducción a los microprocesadores   j. sainzIntroducción a los microprocesadores   j. sainz
Introducción a los microprocesadores j. sainzWilfredy Inciarte
 
Evolucion de los microprocesadores
Evolucion de los microprocesadoresEvolucion de los microprocesadores
Evolucion de los microprocesadoresWilfredy Inciarte
 
Transformada de laplace y sus aplicaciones a las ecuaciones diferenciales j...
Transformada de laplace y sus aplicaciones a las ecuaciones diferenciales   j...Transformada de laplace y sus aplicaciones a las ecuaciones diferenciales   j...
Transformada de laplace y sus aplicaciones a las ecuaciones diferenciales j...Wilfredy Inciarte
 
Transformada de laplace juan sacerdoti
Transformada de laplace   juan sacerdotiTransformada de laplace   juan sacerdoti
Transformada de laplace juan sacerdotiWilfredy Inciarte
 
La evolución de la robótica
La evolución de la robóticaLa evolución de la robótica
La evolución de la robóticaWilfredy Inciarte
 

Más de Wilfredy Inciarte (20)

Anatomia del icono wilfredy inciarte
Anatomia del icono   wilfredy inciarteAnatomia del icono   wilfredy inciarte
Anatomia del icono wilfredy inciarte
 
Teoria general de sistemas e. bustos
Teoria general de sistemas   e. bustosTeoria general de sistemas   e. bustos
Teoria general de sistemas e. bustos
 
Teoria de sistemas
Teoria de sistemasTeoria de sistemas
Teoria de sistemas
 
Sistemas conceptos y caracteristicas
Sistemas conceptos y caracteristicasSistemas conceptos y caracteristicas
Sistemas conceptos y caracteristicas
 
Int. ing sistemas
Int. ing sistemasInt. ing sistemas
Int. ing sistemas
 
Etapas de un proyecto
Etapas de un proyectoEtapas de un proyecto
Etapas de un proyecto
 
Estudio de factibilidad
Estudio de factibilidadEstudio de factibilidad
Estudio de factibilidad
 
Principios y aplicaciones del análisis costo beneficio - e. morin
Principios y aplicaciones del análisis costo beneficio - e. morinPrincipios y aplicaciones del análisis costo beneficio - e. morin
Principios y aplicaciones del análisis costo beneficio - e. morin
 
Modelo para el analisis de los costos y beneficios
Modelo para el analisis de los costos y beneficiosModelo para el analisis de los costos y beneficios
Modelo para el analisis de los costos y beneficios
 
Guia del analisis costo beneficio - proyectos de inversion
Guia del analisis costo   beneficio - proyectos de inversionGuia del analisis costo   beneficio - proyectos de inversion
Guia del analisis costo beneficio - proyectos de inversion
 
Guia para la formulacion de royectos metodologia bpun
Guia para la formulacion de royectos   metodologia bpunGuia para la formulacion de royectos   metodologia bpun
Guia para la formulacion de royectos metodologia bpun
 
Manual de proyectos agencia andaluza del voluntariado
Manual de proyectos   agencia andaluza del voluntariadoManual de proyectos   agencia andaluza del voluntariado
Manual de proyectos agencia andaluza del voluntariado
 
Evaluación de proyectos j. sarmiento
Evaluación de proyectos   j. sarmientoEvaluación de proyectos   j. sarmiento
Evaluación de proyectos j. sarmiento
 
Aspestos generales de la gestion de proyectos
Aspestos generales de la gestion de proyectosAspestos generales de la gestion de proyectos
Aspestos generales de la gestion de proyectos
 
Introducción a los microprocesadores j. sainz
Introducción a los microprocesadores   j. sainzIntroducción a los microprocesadores   j. sainz
Introducción a los microprocesadores j. sainz
 
Evolucion de los microprocesadores
Evolucion de los microprocesadoresEvolucion de los microprocesadores
Evolucion de los microprocesadores
 
Transformada de laplace
Transformada de laplaceTransformada de laplace
Transformada de laplace
 
Transformada de laplace y sus aplicaciones a las ecuaciones diferenciales j...
Transformada de laplace y sus aplicaciones a las ecuaciones diferenciales   j...Transformada de laplace y sus aplicaciones a las ecuaciones diferenciales   j...
Transformada de laplace y sus aplicaciones a las ecuaciones diferenciales j...
 
Transformada de laplace juan sacerdoti
Transformada de laplace   juan sacerdotiTransformada de laplace   juan sacerdoti
Transformada de laplace juan sacerdoti
 
La evolución de la robótica
La evolución de la robóticaLa evolución de la robótica
La evolución de la robótica
 

Último

DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxinformacionasapespu
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdfgimenanahuel
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxPryhaSalam
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.DaluiMonasterio
 
Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfMARIAPAULAMAHECHAMOR
 

Último (20)

DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdf
 

Metodologias de modelización r. fernandez

  • 1. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 1 METODOLOGIAS DE MODELIZACION Rodolfo Fernández González
  • 2. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 2 MODELIZACIÓN - La construcción de hipótesis teóricas o modelos computa- cionales es un “arte” sometido a reglas - Modelizar: formalizar un fenómeno natural, organizacional o técnico para disponer de: - una descripción rigurosa - un punto de partida preciso para la contrastación de hipótesis - un núcleo para el desarrollo de una aplicación informática - Hay diversos estilos de formalización: - explícitamente matemático: - cuantitativo: Análisis matemático, Cálculo de Probabilidades - cualitativo: Algebra, Lógica - computacional: - es implícitamente matemático - puede suponer o no una previa formalización matemática - diversas estrategias: - OMT (Object Modelling Tool) Rumbaugh, J. et al. (1991) Object-oriented modeling and design. Prentice-Hall - KADS
  • 3. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 3 MODELOS - Un modelo es una abstracción o esquematización de algo para facilitar su comprensión. - Abstracción o esquematización: - omisión de detalles no esenciales del sistema real que reduce su complejidad y facilita su comprensión. - 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 adecuación, no corrección.
  • 4. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 4 FASES DE LA MODELIZACION - Análisis - Diseño - Implementación
  • 5. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 5 FASE DE ANÁLISIS - Construcción de modelos de la situación real que identifique las propiedades relevantes - Lo que interesa es comprender el problema - Modelos de análisis: abstracciones concisas y precisas de lo que debe hacer el sistema, no de cómo lo hará - Los objetos de los modelos son conceptos del dominio del problema, independientes de la implementación.
  • 6. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 6 FASE DE DISEÑO 2.1. Diseño del sistema - Decisiones de alto nivel sobre la arquitectura global - Identificación de subsistemas - Decisiones de optimización del rendimiento - Estrategias de resolución - Asignación inicial de recursos 2.2. Diseño de los objetos - Construcción de los modelos de diseño a partir de los modelos de análisis - Detalles de implementación impuestos por las estrategias de resolución - Identificación de las estructuras de datos y de los algoritmos necesarios para: - implementar cada clase - optimizar el rendimiento
  • 7. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 7 FASE DE IMPLEMENTACIÓN - Codificación de los modelos de diseño en un lenguaje de programación - Ingeniería del software: - ajuste al diseño - flexibilidad - extensibilidad
  • 8. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 8 TIPOLOGÍA DE MODELOS - En cada fase, la modelización implica la construcción o refinamiento de tres modelos distintos: - Modelo de objetos - Modelo dinámico - Modelo funcional
  • 9. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 9 MODELO DE OBJETOS -Describe la estructura estática 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 jerárquicamente. Esa ordenación hace que puedan compartir estructuras y comportamientos. - Es el modelo fundamental, porque describe qué es lo que cambia o se transforma, antes de describir cuándo o cómo lo hace. - Proporciona la estructura básica en la que se integran los demás modelos - Descripción de los datos - Es importante para cualquier problema que manipule estructuras de datos no triviales
  • 10. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 10 MODELO DINÁMICO - Describe los aspectos del sistema que cambian en el tiempo, las interacciones entre los objetos del sistema - Secuenciación de operaciones: - sucesos que inician o terminan cambios, - secuencias de sucesos, - estados que definen el contexto de los sucesos, - organización 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 - Descripción de los aspectos de “control”
  • 11. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 11 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 computación de los valores de salida a partir de los valores de entrada - Descripción de la “función” del sistema
  • 12. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 12 RELACIONES ENTRE LOS MODELOS - Los tres tipos de modelos son ortogonales entre sí: describen tres aspectos distintos del sistema, pero estrechamente relacionados entre sí: - El modelo de objetos describe las estructuras de datos sobre las que operan los modelos dinámico y funcional. - Distintas modalidades descriptivas de los componentes dinámicos del sistema: M. de objetos M. dinámico M. funcional operaciones sucesos funciones acciones - Los tres modelos evolucionan juntos durante las distintas fases del proceso de modelización - A veces, los límites no están claros entre los tres modelos - A veces, los modelos no pueden captar todo lo que es relevante. En esos casos se puede recurrir: - al lenguaje natural - a notaciones específicas, adecuadas al dominio del problema
  • 13. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 13 Modelización 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 identificación de los objetos depende del problema: puede haber más de una representación 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 económicos, pero ...) - cada objeto “conoce” su clase. Esta es una propiedad implícita del objeto - la agrupación de objetos en clase es una abstracción que nos permite: - generalizar el conocimiento de lo individual - simplificar la complejidad - utilizar menos recursos (descriptivos, de almacenamiento de información)
  • 14. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 14 Diagramas para objetos: - Clases - Objetos o instancias Rumbaugh Coad/Yourdon
  • 15. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 15 Atributos - Características poseídas 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 relación entre objetos - Se representan en las clases bajo una línea horizontal - Cada atributo puede tener asociado - su tipo (precedido por :) - su valor por defecto (precedido por =) Persona nombre :cadena edad :entero En el caso de las clases, sólo se representan los valores: (Persona) (Persona) Juan Pérez Juan Pérez 27 años 27 años Rumbaugh Coad/Yourdon
  • 16. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 16 OPERACIONES - Operación: Función o transformación que puede aplicarse a - o que puede ser aplicada por- objetos de una clase - Cada operación tiene como argumento implícito un objeto. - La conducta de la operación depende de la clase de su objeto - el objeto “sabe” la especificación adecuada de su operación - polimorfismo: la misma operación: - puede aplicarse a muchas clases distintas - adopta en cada clase una forma distinta
  • 17. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 17 MÉTODOS Un Método es la especificación (implementación) de una operación para una clase dada - Si una operación tiene métodos para varias clases, es importante que todos ellos tengan la misma signatura: - lista de argumentos (entre paréntesis) - tipo de cada argumento (precedido de :) - tipo del valor resultante (precedido de :) - Representación: Persona nombre :cadena edad :entero comprar - Resulta útil durante la modelización 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 más argumentos que los de su objeto pueden considerarse como atributos derivados - Esto lleva a distinguir entre: - atributos básicos o primitivos, y - atributos derivados - Al conjunto de las operaciones y de los métodos se les denomina “servicios”
  • 18. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 18 ENLACES Y ASOCIACIONES - Un enlace es una conexión física o conceptual entre dos instancias de objetos - Formalmente es una relación, es decir, una lista ordenada de objetos - Un enlace es una instancia de una asociación - Una asociación es un grupo de enlaces que comparten: - la misma estructura - la misma semántica - Todos los enlaces de una asociación conectan objetos de las mismas clases - Suelen identificarse con los verbos del enunciado del problema - Las asociaciones suelen ser bidireccionales: - el nombre de la asociación binaria suele identificar una dirección dada, la dirección “hacia delante” - a esa asociación le corresponde otra asociación “inversa” - las dos direcciones tienen el mismo significado, hacen referencia a la misma asociación subyacente - la implementación no tiene por qué ser bidireccional - No deben representarse como “punteros” (atributos de un objeto que tienen como valor otro objeto): la asociación no es parte de ningún 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 información en clases
  • 19. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 19 REPRESENTACION DE ASOCIACIONES - Diagrama de una clase de asociaciones País capital Ciudad nombre nombre Diagrama de instancias: (País) capital (Ciudad) España Madrid (País) capital (Ciudad) Francia París - cada enlace puede etiquetarse con el nombre de la asociación - Normalmente, las clases se ordenan para su lectura de izquierda a derecha
  • 20. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 20 N-ARIEDAD DE LAS ASOCIACIONES - Las asociaciones pueden ser binarias, ternarias o de orden superior - La mayoría son binarias - Las ternarias también pueden diagramarse: Proyecto Lenguaje Persona - El nombre de la asociación puede escribirse como etiqueta junto a la correspondiente salida del rombo de conexión
  • 21. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 21 MULTIPLICIDAD DE LAS RELACIONES - Sólo la consideraremos para las asociaciones binarias - Podemos especificar cuántas instancias de una clase pueden relacionarse con cada instancia de otra clase: - Relaciones uno-a-uno (país-capital) - Relaciones uno-a-muchos - Relaciones muchos-a-muchos - ... - Es un aspecto de la modelización cuyo estudio puede dejarse para las últimas fases - Su consideración suele ayudar a elicitar supuestos ocultos
  • 22. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 22 REPRESENTACIÓN 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 más): Ejemplo: una persona puede tener 0 o más coches: Persona Coche posee - opcionalidad (cero o uno): Ejemplo: una persona puede tener o no un marcapasos: Persona Marcap.. posee
  • 23. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 23 REPRESENTACIÓN DE LA CARDINALIDAD DE LAS RELACIONES (2) - Cuando es necesario, se utilizan etiquetas numéricas: - “1+” : uno o más - “3-5” : de 3 a 5 - “2, 4, 18” : 2, 4 o 18 - Si los objetos del extremo con multiplicidad “muchos” de una asociación deben tener un orden explícito, se indicará añadiendo la etiqueta “{ordenado}” - Cualificador: atributo especial que reduce la multiplicidad efectiva de una asociación - es una forma de asociación ternaria - se expresa como una etiqueta dentro de un pequeño recuadro adosado al extremo del multiplicidad “muchos”
  • 24. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 24 ATRIBUTOS DE LOS ENLACES - Son propiedades de los enlaces de una asociación - Cada atributo de enlace tiene un valor para cada enlace accesible-por Fichero Usuario tipo de permiso (leer/escribir/ejecutar) Persona trabaja para Empresa nombre nombre DNI CIF dirección dirección puesto salario - Los atributos “puesto” y “salario” podrían asociarse a la clase “Persona” (la clase con multiplicidad “muchos”), lo que no sería posible en relaciones “muchos-a-muchos”
  • 25. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 25 ATRIBUTOS DE LOS ENLACES (2) - Si se incluyen estos atributos en una clase de objetos, la flexibilidad se reduce si, posteriormente, la multiplicidad de la asociación cambia equipo portero año tiros parados goles encajados
  • 26. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 26 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, además, nombre y operaciones - Resulta útil modelizar una asociación como una clase si los enlaces: - pueden participar en asociaciones con otros objetos y/o - están sujetos a operaciones equipo usuario máquina autorización prioridad privilegios abrir sesión
  • 27. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 27 ROLES - Cada extremo de una asociación 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 compañía persona contratante trabaja-para - Su uso es opcional, y puede utilizarse además de, o en vez de, el nombre de la asociación - Es obligatorio utilizarlos si la asociación se da entre dos objetos de la misma clase - Es aconsejable para distinguir dos asociaciones entre el mismo par de clases
  • 28. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 28 AGREGACIÓN - forma especial de asociación - relación “parte-todo” o “es-parte-de” - los objetos que representan los componentes se asocian con un objeto que representa todo el compuesto - propiedades: - transitividad - antisimetría - propagación a algunas partes de algunas propiedades del compuesto - Representación: documento <> •párrafo<> •oración
  • 29. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 29 GENERALIZACIÓN Y HERENCIA - Recursos para compartir semejanzas entre clases, manteniendo las diferencias - Generalización: Relación entre una clase y una versión menos refinada de ella - Es una relación “is-a” - la relación inversa es la de especialización - la clase más 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 características de su superclase - Generalización, especialización 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 añaden sus propios atributos y operaciones a los heredados de sus antecesoras - Los nodos terminales del arbol jerárquico son las instancias (objetos) de las subclases más 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 operación, aunque le vengan suministrados por sus superclases: - los valores por defecto de los atributos - los métodos de las operaciones - Normalmente, nunca se modifican las signaturas.
  • 30. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 30 REPRESENTACIÓN DE LA GENERALIZACIÓN - triángulo que conecta una superclase con sus subclases: Motor tipo de energía Eléctrico Combustión Vapor tipo de combustible Gasolina Gasoil - la etiqueta junto a cada triángulo es un discriminador que indica qué propiedad de un objeto está siendo abstraída por la relación de generalización
  • 31. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 31 MÓDULOS - Un módulo es un agrupamiento de clases, asociaciones y generalizaciones - Se especifican o definen en función del problema a modelizar - Cada modelo de objetos puede dividirse en módulos para facilitar su manipulación y comprensión - Los nombres de clases y de asociaciones deben ser únicos dentro de cada módulo y, en la medida de lo posible, también dentro del modelo de objetos completo - Los módulos se interconectan haciendo referencias a la misma clase - Es conveniente que haya menos enlaces intermódulo que intramódulo - Cada módulo tiene un nombre asignado
  • 32. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 32 HOJAS - Cada módulo se representa en una hoja separada - Si el módulo es complejo, puede dividirse en una serie de hojas, cada una de las cuales se numera, indicando el módulo al que pertenece. - Cada asociación o generalización 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 código encerrado en un círculo, y situado junto al símbolo de una clase: A A Hoja 1 Módulo 3 Hoja 2 Módulo 3
  • 33. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 33 Modelización Dinámica 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, 514- 530 Hopcroft, J. E., Ullman, J. D. (1979): Introduction to Automata Theory, Languages and Computation, Addison-Wesley Reisig, W. (1985), Petri Nets: An Introduction, Springer
  • 34. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 34 MODELIZACIÓN DINÁMICA - 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 estímulos externos, sin tener en cuenta qué hacen las operaciones, sobre qué operan, y cómo están implementadas - Conceptos dinámicos fundamentales: - sucesos (events): estímulos externos - estados (conjunto de valores de objetos) - Los programas no interactivos tienen un modelo dinámico trivial, ya que su objetivo consiste en computar una función - Diagrama de estados: - red de estados y eventos que representa transiciones de estados a lo largo del tiempo - representación gráfica de las máquinas de estado finito - Hay un diagrama de estados por cada clase que tenga un comportamiento dinámico relevante. No todas las clases lo necesitan - Cada máquina 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
  • 35. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 35 SUCESOS - Algo que tiene lugar en un instante temporal determinado - Cada suceso es único y no tiene duración - Pueden estar causalmente relacionados entre sí, o no (sucesos concurrentes) - Si no están causalmente relacionados entre sí, su ordenación es irrelevante - Constituyen una transmisión de información unidireccional de un objeto a otro - El envío de un suceso desde un objeto a otro no incluye necesariamente una réplica - La réplica sería 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 común - Esta estructura es jerárquica, igual que la de las clases de objetos - Casi todas las clases de sucesos tienen atributos que indican la información que transportan (se representan entre paréntesis a continuación de la etiqueta del suceso) - Pueden representarse como operaciones sobre el modelo de objetos
  • 36. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 36 ESCENARIOS - Un escenario es una secuencia de sucesos que tiene lugar durante una ejecución dada - Su alcance puede variar: - Todos los sucesos del sistema - Sólo los sucesos generados por determinados objetos del sistema - Puede ser un registro de una ejecución o un experimento mental sobre un modelo propuesto - Después de describir un escenario, hay que identificar al emisor y receptor de cada suceso - La construcción de diagramas de estado comienza por la identificación de escenarios
  • 37. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 37 EJEMPLO DE ESCENARIO Ej. de diagrama de seguimiento (traza) de eventos: Llamada telefónica Persona que llama Línea telefónica Persona llamada levanta el receptor comienza el tono de marcar marca el 1er número termina el tono de marcar marca el 2º número ... marca el último número 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 teléf con ... ... cuelga cuelga el teléfono fin de la conexión fin - El tiempo avanza de arriba abajo - Sólo se representa la secuencia, no los intervalos reales - Se pueden enviar sucesos concurrentes - Se pueden enviar más de un suceso seguido
  • 38. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 38 ESTADOS - Un estado es una abstracción 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, sólo los relevantes - La granularidad de los estados depende del problema - El estado especifica cuál será la respuesta del objeto a los sucesos de entrada - La respuesta de un objeto a un suceso puede variar cuantitativamente en función 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 acción 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 están escondidos por los sucesivos - El estado tiene una duración, y a veces se asocia con una actividad continua
  • 39. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 39 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 condición determinada - En el caso más 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 - Especificación del estado: - nombre - descripción - secuencia de sucesos que produce el estado - condiciones que caracterizan el estado - sucesos aceptados por el estado: - suceso - acción - estado siguiente - En la medida en que un enlace puede ser considerado como un objeto, puede tener un estado.
  • 40. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 40 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 - Transición: cambio de estado causado por un suceso - Grafo dirigido cuyos nodos son estados y los arcos están etiquetados con los sucesos que causan la transición, 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 función de cuáles sean los valores de sus atributos - Cada objeto es independiente de los demás, y procede a su propio ritmo - El modelo dinámico es un conjunto de diagramas de estado que interactúan entre sí mediante sucesos compartidos
  • 41. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 41 DIAGRAMAS DE ESTADO (2) - los diagramas pueden representar: - ciclos de vida abiertos: - puede ser considerado como una diagrama de estado “subrutina”, que puede ser referenciado en varios lugares de un diagrama de de nivel superior - tiene estado inicial (•) y estado final ( ), que pueden estar etiquetados - el estado inicial se establece cuando el objeto se crea - cuando se entra en el estado final, el objeto se destruye - bucles cerrados - Forma general: suceso1(atributos)[condición]/acción Estado1 Estado 2 hacer: Actividad1 hacer:Actividad2 - Ejemplo simple: Ajedrez Init • Juegan blancas jaque-mate Blancas ganan mueven mueven ahogo negras blancas ahogo Tablas Juegan negras jaque-mate Negras ganan
  • 42. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 42 CONDICIONES - Son funciones booleanas de valores de objetos - Una condición es válida durante un intervalo - Un estado es definible en términos de una condición - Las condiciones pueden utilizarse como “guardas” sobre transiciones - Una transición guardada dispara si su suceso ocurre - Una condición guardada sobre una transición se expresa como una expresión booleana encerrada entre corchetes detrás del nombre del suceso - Ejemplo: tiempo [coches en izq N/S] abrir recto N/S abrir giro izq. N/S tiempo[no hay coches izq. E/W] tiempo tiempo tiempo[no hay coches izq. E/W] abrir giro izq. E/W abrir recto E/W tiempo [coches en E/W]
  • 43. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 43 OPERACIONES - No basta con describir patrones de sucesos - Una descripción 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 duración - 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 - Representación: “hacer:” - Acciones: - operaciones instantáneas - asociadas con un suceso - su estructura interna no es relevante a efectos de la modelización del control - también pueden representar operaciones internas de control: - establecer atributos - generar otros sucesos (p.ej., incrementar un contador) - diagramación: - precedido de / - a continuación de la condición de guarda
  • 44. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 44 DIAGRAMAS DE ESTADO ANIDADOS - Las máquinas de estados se estructuran igual que los objetos: - Generalización: - expansión de las actividades anidadas - se añaden detalles a las actividades que antes se describieron a alto nivel - los estados y los sucesos se colocan en jerarquías de generalización, con herencia de estructura y comportamiento (igual que la herencia de atributos y operaciones en clases) - Agregación: - un estado se puede partir en componentes ortogonales, con interacción limitada entre ellos - equivale a la concurrencia de estados - Con problemas complejos, la única forma práctica de trabajar consiste en anidar diagramas - Las actividades anidadas son diagramas de estado con transiciones de entrada y salida, igual que las subrutinas - Se usan estados anidados si la misma transacción se aplica a muchos estados
  • 45. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 45 EJEMPLO DE DIAGRAMA DE ESTADO - Máquina expendedora: introd. monedas/contar Inactivo Recoger monedas introd. monedas/sumar a contador cancelar/devolver monedas [agotado] seleccionar prod. [cambio < 0] hacer: comprobar exist. y calcular cambio [cambio=0] [cambio > 0] hacer: dispensar producto hacer: dar cambio
  • 46. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 46 EJEMPLO DE DIAGRAMA DE ESTADO (2) - La actividad “dispensar producto” puede expandirse en el siguiente subdiagrama: liberada liberado hacer: liberar columna hacer: liberar paquete - Los sucesos, como “seleccionar producto” también pueden expandirse: introd. dígito selecc. producto hacer: borrar hacer: añadir producto dígito confirmar borrar
  • 47. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 47 GENERALIZACIÓN DE ESTADOS - Los estados pueden tener subestados que heredan las transiciones de sus superestados - Cualquier transición o acción que se aplica a un estado, se aplica a todos sus subestados, a menos que éstos tengan una transición específica - 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 GENERALIZACIÓN DE SUCESOS - Los sucesos pueden estar organizados en una jerarquía de generalización, con herencia de los atributos de los sucesos
  • 48. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 48 ACCIONES DE ENTRADA Y SALIDA - En vez de mostrar acciones sobre las transiciones, podemos asociar las acciones con la entrada o la salida de un estado - Si todas las transiciones en un estado realizan la misma acción, no se utiliza - Siempre que se entra en un estado, mediante una transición de entrada, se ejecuta antes la acción de entrada - Siempre que se sale de un estado, mediante una transición de salida, se ejecuta antes la acción de salida - Si hay varias operaciones sobre un estado, se ejecutan en el siguiente orden: - acciones sobre la transición de entrada - acciones de entrada - actividades “hacer” (pueden ser interrumpidas por sucesos que causen transiciones a otro estado) - acciones de salida (también se ejecuta si se interrumpe una actividad “hacer”) - acciones sobre la transición de salida - Se utilizan si un estado tiene varias transiciones de entrada/salida , y todas causan la misma acción
  • 49. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 49 ACCIONES INTERNAS - Un suceso puede hacer que se ejecute una acción sin que cambie el estado - Si se produce el suceso, su acción 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 TRANSICIÓN AUTOMÁTICA - Transiciones lambda: transiciones que se disparan cuando se completa una actividad secuencial - Se representan mediante una flecha sin etiqueta de suceso - Cada transición está condicionada ENVÍO DE SUCESOS - Un objeto puede realizar la acción de enviar un suceso (con sus atributos) a otro objeto - Se representa mediante una línea de puntos desde una flecha de transición a otro objeto o clase de objetos (o a una transición del diagrama de estados de ese objeto) - Si un estado puede aceptar sucesos de más de un objeto, el orden en que se reciben puede afectar al estado resultante (la “condición de carrera”)
  • 50. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 50 CONCURRENCIA - Cada objeto tiene su propio estado, y su propio diagrama de estados - La concurrencia por agregación de estados es la combinación de los estados de todos los diagramas componentes - Una transición 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 combinación de los estados de cada subdiagrama SINCRONIZACIÓN 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 - Representación: se subdivide el estado con líneas de puntos, en cada una de las cuales se coloca una actividad “hacer” concurrentes. Las flechas se bifurcan para mostrar la concurrencia
  • 51. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 51 Modelización Funcional Rumbaugh, 91; Yourdon, E. (1989), Modern Structured Analysis, Yourdon Press De Marco (1979), Structured Analysis and Systems Specification, Prentice Hall - Descripción de la computación: Qué hace el sistema (Mod. dinámica: cuándo hace el sistema lo que hace) (Mod. de objetos: a quién hace el sistema lo que hace) - Describe cómo se derivan los valores de salida de los de entrada, sin tener el cuenta el orden de la computación - 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 dinámico - 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
  • 52. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 52 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 información 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 - almacenes de datos: guardan datos pasivamente - Cada elemento lleva una etiqueta descriptiva
  • 53. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 53 DFDS ANIDADOS - Visión de la descomposición funcional del sistema en unidades funcionales - La estructura de anidamiento forma un árbol - El nivel más bajo es el de las funciones primitivas
  • 54. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 54 PROCESOS - Los procesos de nivel más 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 sólo indica los posibles caminos funcionales, no los que tienen lugar realmente en función de la dinámica del sistema (esto aparece en el modelo dinámico) - Tienen una o más entradas y una o más salidas - sus entradas y salidas están etiquetadas con su papel en la computación o el tipo de dato - Sólo muestra el patrón de entradas y salidas. La computación hay que especificarla - Un proceso de alto nivel puede expandirse en todo un DFD de nivel más bajo - Los procesos se implementan como métodos de operaciones sobre clases de objetos
  • 55. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 55 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
  • 56. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 56 ACTORES - Objeto activo que produce o consume valores - Están 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 dinámico ALMACENES DE DATOS - Objeto pasivo que almacena datos - Responde a peticiones de almacenamiento y recuperación de datos - Incluye añadir, modificar o borrar elementos FLUJOS DE CONTROL - A veces se incluyen en el modelo funcional - Se representa como una línea de puntos desde un proceso que controla a otro controlado - Puede etiquetarse con el valor de control
  • 57. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 57 ESPECIFICACIÓN DE OPERACIONES - Los procesos se implementarán como operaciones sobre objetos - Cada operación puede especificarse de distintas formas: - función matemática - tabla de valores de entrada/salida para conjuntos finitos pequeños (enumeración) - ecuaciones que especifican el output en términos del input - precondiciones y postcondiciones (definición axiomática) - tablas de decisión - cálculo de predicados - pseudocódigo - lenguaje natural - La especificación incluye: - nombre de la función - una signatura: la interfase a la operación - los argumentos que exige, su número, orden y tipos (entrada) - los valores que devuelve (número, orden y tipos) (salida) La signatura de todos los métodos que implementan una operación debe coincidir - una transformación que define el efecto de una operación: - valores de salida como funciones de los valores de entrada - efectos colaterales en los objetos sobre los que opera - restricciones
  • 58. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 58 ESPECIFICACIÓN DE OPERACIONES (2) Tipos de transformaciones: - Operaciones de acceso (triviales): - leen o escriben atributos o enlaces de un objeto - se derivan de los atributos y asociaciones de una clase del modelo de objetos - no se especifican en la fase de análisis - en el diseño se distinguen las públicas de las privadas - Operaciones no triviales: - queries: - no tiene efectos colaterales sobre el estado externa- mente visible de un objeto - instantáneas - son atributos derivados - acciones: - tienen efectos colaterales en los objetos - no tienen duración - actualizan los atributos básicos y de los enlaces - definibles en términos de estados anterior y posterior - se derivan de los procesos en el modelo funcional - actividades - operaciones con duración - sólo tienen sentido para los actores - suelen corresponder a un diagrama de estado en el modelo dinámico
  • 59. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 59 ESPECIFICACIÓN DE OPERACIONES (3) - Puede haber valores internos no visibles desde fuera, que son privados de la operación y quizás de la clase de objetos - El estado del objeto puede dividirse entre información externamente visible e información interna privada
  • 60. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 60 RESTRICCIONES - Una restricción expresa la relación entre: - dos objetos al mismo tiempo - diferentes valores del mismo objeto en tiempos distintos - Puede expresarse como: - una función total (un valor viene definido completamente por otro) - una función 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
  • 61. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 61 Modelo funcional Modelo de objetos Modelo dinámico - lo que el sistema -quién hace: los objetos tiene que hacer - procesos - operaciones - secuencia de ejecución - actores - objetos - almacenes - objetos - flujos de datos - valores
  • 62. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 62 Análisis -------------------------------------------------------------------------------- - Bibliografía Shlaer, S. (1988), Object-Oriented Systems Analysis, Yourdon Press -------------------------------------------------------------------------------- - - Primer paso: Formulación del problema - Requerimientos obligatorios - Requerimientos opcionales - Alcance del problema - Contexto - Supuestos - Requerimientos de eficiencia - Previsión de extensiones futuras - Protocolos de interacción con sistemas externos - Modelización de objetos: - identificar objetos y clases - entidades físicas - conceptos - denotados por nombres - depurar los objetos y clases - eliminar las clases redundantes, manteniendo la descripción más rica - eliminar las clases irrelevantes - precisar o eliminar las clases vagas, confusas o demasiado amplias - la modelización de un elemento como clase o atributo depende de cada caso
  • 63. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 63 - la modelización de un elemento como clase o como operación depende de cada caso - el nombre de una clase debe reflejar su naturaleza, y no su papel - preparar diccionario de datos - cada entrada corresponde a la definición de una clase u objeto - alcance dentro del problema - supuestos o restricciones de su uso - descripción de asociaciones, atributos y operaciones - identificar asociaciones entre objetos (incluyendo agregaciones) - en vez de referir atributos a clases, utilizar asociaciones - asociaciones se expresan como verbos de posicionamiento físico, comunicación, acciones dirigidas, propiedad, satisfacción de condiciones, ... - la distinción entre asociaciones y agregaciones no es muy importante ahora - depurar las asociaciones incorrectas: - normalmente las asociaciones son binarias - - redundancias: algunas asociaciones pueden ser definidas a partir de otras (asociaciones dependientes) - - pueden mantenerse para mayor facilidad del diseño, pero se marcan con líneas de puntos - - en la medida de lo posible, clases, atributos y asociaciones deberían representar información independiente - nombres claros y descriptivos (qué, y no cómo o por qué) - papel que una clase en una asociación desempeña desde el punto de vista de la otra clase - cualificador: nombre más contexto de uso - multiplicidad: menos importante durante el análisis
  • 64. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 64 - identificar atributos y enlaces - propiedades de objetos individuales - no son objetos - nombres seguidos de frases posesivas (“el color de mi coche”) - adjetivos - no llevar demasiado lejos la búsqueda de atributos - omitir o identificar los atributos derivados (edad, de fecha de nacimiento y fecha actual) - depurar los atributos - si la existencia independiente de una entidad es más importante que su valor, entonces es un objeto - si el valor de un atributo depende de un contexto determinado, entonces el atributo es un cualificador - a veces los nombres se modelizan mejor como cualificadores que como atributos de los objetos. - Si no dependen del contexto, y pueden no ser únicos, son atributos - si una propiedad depende de la presencia de un enlace, entonces la propiedad es un atributo del enlace, y no del objeto relacionado - si un atributo describe el estado interno de un objeto que es invisible desde fuera de ese objeto, entonces eliminarlo - eliminar los atributos menos importantes - organizar y simplificar clases de objetos utilizando la herencia - bottom up: generalizar aspectos comunes de las clases, formando superclases - si aparece repetidamente el mismo nombre de asociación con el mismo significado, intentar generalizar las clases asociadas - top-down: refinar las clases formando subclases especializadas: adjetivos del nombre de la clase
  • 65. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 65 - verificar la existencia de caminos de acceso para las queries - iterar y refinar el modelo - objetos que faltan - clases innecesarias - asociaciones que faltan - asociaciones innecesarias - asociaciones incorrectas - atributos incorrectos - agrupar las clases en módulos - dividir los diagramas en hojas - módulo: conjunto de clases (una o más hojas) que contiene un subconjunto lógico del modelo total - organización de módulos: - organización en estrella - módulo central que contiene la estructura global de las clases de alto nivel - otros módulos expanden cada clase de alto nivel en una jerarquía de generalización, y añaden asoociaciones a clases adicionales de bajo nivel - Modelización dinámica - Preparación de escenarios - escenario: secuencia de sucesos - cada suceso tiene un actor (sistema, experimentador) y unos parámetros - parámetros del suceso: la información intercambiada (puede ser simplemente el hecho de que el suceso ha ocurrido) - diálogos típicos entre: - experimentador y modelo - usuario y sistema - primero diálogos “normales”, y después los “especiales” (entradas sin valor, con máximos o mínimos, incompletas, etc.) y las condiciones de error (valores no válidos, etc.) - abortar operaciones o retornar a puntos anteriores - Frecuente distinción entre:
  • 66. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 66 - lógica de la aplicación (lo que interesa en el modelo dinámico) - interfase de usuario - Identificar los sucesos entre objetos - agrupar bajo el mismo nombre los sucesos que tengan el mismo efecto en el flujo de control. - asignar cada tipo de suceso a las clases de objetos que lo envían y lo reciben (como suceso de entrada y de salida) - Preparar una traza de sucesos para cada escenario - cada columna (objeto) de la traza identifica los sucesos que afectan a un objeto determinado - un diagrama de flujo de sucesos muestra los sucesos entre clases, sin tener en cuenta su secuencia: - Construir un diagrama de estados - para cada clase de objetos con comportamiento dinámico no trivial - cada escenario o traza de sucesos corresponde a un camino en el diagrama de estados - Operativa de construcción: - Tomamos los diagramas de traza de sucesos que afectan a la clase que estamos modelizando. - Tomamos una traza que corresponde a una interacción típica, y sólo tenemos en cuenta los sucesos que afectan a un solo objeto. - Colocamos los sucesos en un camino cuyos arcos están etiquetados con los sucesos de entrada y salida que encontramos en una columna de la traza. - El intervalo entre dos sucesos es un estado. - Dar un nombre (significativo, si es posible) a cada estado. - El diagrama inicial será una secuencia de sucesos y estados. - Si el escenario puede repetirse indefinidamente, cerrar el camino en el diagrama de estados
  • 67. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 67 - Revisar los bucles. Favorecerlos, y revisar sus salidas - insertar otros escenarios en el diagrama de estados - Después de los sucesos normales, los límites o especiales, y los de error - Si hay interacciones complejas con entradas independientes, podemos construir el modelo dinámico utilizando diagramas de estado anidados. - Comprobar los sucesos entre objetos para verificar la consistencia - Modelización funcional - Identificar los valores de entrada y salida - son los parámetros de los sucesos entre el sistema y el mundo externo - Construir DFDs que muestren las dependencias funcionales - normalmente se construye por capas o niveles - recoger valores - computar valores - generar salida - proceder de atrás hacia delante: normalmente es más difícil identificar todos los usos de una entrada que identificar todas las fuentes de una salida - expandir los procesos no triviales en DFDs de bajo nivel - Describir las funciones en el lenguaje adecuado - preferible la descripción declarativa: especificación de las relaciones entre entrada y salida y entre los valores de salida: no implica una implementación - si es más fácil que la declarativa, descripción procedural: especificación de un algoritmo - identificar las restricciones - dependencias funcionales entre objetos no relacionados mediante una dependencia de entrada- salida
  • 68. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 68 - restricciones entre dos objetos al mismo tiempo, entre instancias del mismo objeto en tiempos distintos (un invariante) o entre instancias de objetos distintos en tiempos distintos - las precondiciones sobre las funciones son restricciones que deben satisfacer los valores de entrada, y las postcondiciones son restricciones que deben satisfacer los valores de salida - hay que especificar los tiempo o condiciones en los que valen las restricciones - Especificar los criterios de optimización - valores que hay que maximizar, minimizar, u optimizar - si hay criterios de optimización en conflicto, indicar los criterios de decisión. - Especificación de operaciones - del modelo de objetos - lectura y escritura de valores de los atributos y enlaces de asociación - de los sucesos - cada suceso enviado a un objeto corresponde a una operación sobre él - de las acciones de estado y de las actividades - de las funciones - cada función corresponde a una operación sobre uno o más objetos - las funciones (excepto las de acceso) se organizan en operaciones sobre objetos - genéricas - operaciones que no dependen de un sistema concreto ni están sujetas a un orden de ejecución determinado, pero que son significativas por sí mismas - simplificación de operaciones: eliminar redundancias y variaciones. Utilizar la herencia para reducir el número de operaciones distintas. Introducir nuevas superclases. - Iteración del Análisis
  • 69. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 69 -------------------------------------------------------------------------------- -
  • 70. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 70 Diseño del sistema -------------------------------------------------------------------------------- - Bibliografía: Yourdon, E., Constantine, L. (1989): Structured Design, Prentice Hall Page-Jones, M. (1988): The Practical Guide to Structured Systems Design, Prentice Hall -------------------------------------------------------------------------------- - - arquitectura del sistema: - organización global del sistema en componentes llamados subsistemas - Organización del sistema en subsistemas - Cada subsistema contiene aspectos del sistema que comparten alguna propiedad común o funcionalidad semejante - Un subsistema no es un objeto ni una función, sino un empaquetamiento de clases, asociaciones, operaciones, sucesos y restricciones que están interrelacionados y que tienen un interfase bien definido con otros subsistemas - normalmente un subsistema se identifica con los “servicios” que proporciona - un “servicio” es un grupo de funciones relacionadas que comparten algún objetivo común, p. ej., cálculo aritmético, procesamiento de entrada/salida, etc. - las operaciones internas de cada subsistema pueden ser diseñadas independientemente de las de los demás - El diseño del sistema debe ser tal que la mayor parte de las interacciones se produzcan dentro de cada subsistema. - cada subsistema puede descomponerse en subsistemas más pequeños. Los subsistemas de nivel más bajo se llaman “módulos” - La relación entre subsistemas puede ser: - cliente-servidor
  • 71. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 71 - el cliente llama al servidor, que realiza algún servicio y devuelve el resultado. El cliente conoce el interfase del servidor, pero no a la inversa - entre iguales (peer-to-peer) - cada subsistema puede llamar a los demás. A cada comunicación no le sigue necesariamente una respuesta inmediata. Cada subsistema debe conocer el interfase de los demás. Dada la posible existencia de bucles, su dificultad es mayor. - La descomposición de sistemas en subsistemas puede organizarse como una secuencia de capas horizontales o de particiones verticales. También pueden adoptarse enfoques híbridos - Capas - Un sistema de capas (layered system) es un conjunto de niveles tal que cada uno de ellos está construido en términos de los que se encuentran por debajo de él, y constituye la base para la construcción de los que se encuentran por encima de él - El nivel superior es el sistema deseado y viene especificado en la formulación del problema. El nivel inferior son los recursos disponibles. Los niveles intermedios se introducen: - para eliminar el salto conceptual entre los niveles - para aumentar la portabilidad del sistema - filosofía cliente-servidor: cada capa conoce los servicios proporcionados por capas inferiores, pero no a la inversa - dos arquitecturas alternativas: - cerrada: cada nivel está construido exclusivamente en términos del nivel inmediatamente inferior. Reduce las dependencias entre niveles y los cambios son
  • 72. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 72 más fáciles, puesto que el interfase sólo afecta al nivel siguiente. - abierta: cada nivel puede utilizar cualquier otro nivel inferior. Reduce la necesidad de redefinir operaciones en cada nivel, pero no respeta el principio del ocultamiento de información. Los cambios de un subsistema pueden afectar a cualquier otro sistema superior. Menos robustez. - Particiones - Divisiones del sistema en subsistemas independientes y débilmente acoplados, cada uno de los cuales proporciona un servicio específico - el conocimiento de los demás es superficial, y las dependencias son mínimas - Topologías del sistema - tras la identificación de los subsistemas del nivel superior, se construye un DFD que muestra el flujo de información entre los subsistemas - secuencia, estrella, ... - Identificar las concurrencias inherentes - una hebra de control es un camino a través de un conjunto de diagramas de estado sólo está activo un objeto a la vez. - Una hebra permanece en un diagrama de estado hasta que un objeto envía un suceso a otro objeto y queda a la espera de otro suceso. La hebra pasa al receptor del suceso hasta que, en su caso, ésta vuelve al objeto original. La hebra se parte si el objeto envía un evento y continúa la ejecución - En cada hebra de control, sólo está activo un objeto a la vez. Se implementan como tareas. - dos objetos son inherentemente concurrentes si pueden recibir sucesos al mismo tiempo sin interactuar - hay que identificar qué objetos deben estar activos de forma concurrente, y cuáles tienen una actividad que es mutuamente excluyente
  • 73. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 73 - si los sucesos no están sincronizados, no pueden colocarse en la misma hebra (thread) de control (“tarea”). Si su actividad es mutuamente excluyente, pueden colocarse en la misma tarea. - los sistemas operativos multitarea pueden manejar subsistemas inherentemente concurrentes. No es necesario asignarlos a diferentes unidades hardware - aunque todos los objetos son conceptualmente concurrentes, muchos son interdependientes - muchos objetos pueden colocarse en la misma hebra de control, examinando los diagramas de estado de cada objeto y el intercambio de información entre ellos - Asignar subsistemas a los procesadores y las tareas - Para cada subsistema, se evalúan los requerimientos de rendimiento y los recursos necesarios - Se escoge la implementación hard o soft para cada subsistema - Se asignan subsistemas soft a los procesadores para satisfacer los requerimientos y minimizar la comunicación interprocesadores - Se establece la conectividad de las unidades físicas que implementan los subsistemas - Se asignan tareas a los procesadores, teniendo en cuenta localización física, tiempo de respuesta o carga de computación - Se determina la conectividad física: topología de conexión física, topología de las unidades repetidas, teniendo en cuenta las pautas de entrada de datos y el algoritmo paralelo para procesarlos (secuencia lineal, matriz, árbol, estrella) - Se decide la forma y tipo de los canales de conexión (ancho de banda, latencia), y los mecanismos de interacción (síncronos, asíncronos o de bloqueo) y protocolos de conexión - Elegir un enfoque para la gestión de los almacenes de datos
  • 74. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 74 - los almacenes de datos internos y externos constituyen líneas de separación entre subsistemas con interfases bien definidos - el uso de bases de datos tiene ventajas e inconvenientes - Manejar el acceso a los recursos globales - dispositivos, espacio de almacenamiento o visualización, nombres lógicos, bases de datos compartidas, etc. - cada recurso debe ser poseído por un objeto guardíán que controla su uso, total o parcial, mediante el uso de bloqueos (locks) - Escoger la implementación de control en el software - en el análisis, las interacciones aparecen como sucesos entre objetos - dos tipos de control: - externo: flujo de sucesos externamente visibles entre los objetos - tipos de control de sucesos externos: - secuencial - guiado por procedimientos (sist. ...) - el procedimiento pide una entrada y queda a la espera de recibirla - fácil implementación si hay alternancia regular de sucesos de entrada/salida - malo para las entradas asíncronas, sistemas de control, interfases de usuario flexibles - C++ - guiados por sucesos (sist. ...) - el lenguaje dispone de un dispatcher o monitor que proporciona el control - los procedimientos estás asignados a sucesos, y el dispatcher los llama cuando ocurre el suceso (callback) - los procedimientos devuelven control al dispatcher
  • 75. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 75 - más difícil de implementar, pero más flexible - X-Windows - concurrente (sist....) - ejecución concurrente de tareas - sucesos almacenados en una cola - resolución de conflictos de planificación entre tareas - Ada - Control interno - flujo de control dentro de un proceso - sólo existe en la implementación. Tipos: - llamadas a procedimientos - llamadas cuasi-concurrentes entre tareas (corutinas, procesos lighweight ). Tiene varios espacios de direccionamiento y múltiples pilas de llamada, pero sólo puede estar activa una hebra de control a la vez - llamadas concurrentes entre tareas - Otros: - programación basada en reglas, programación lógica... - no control explícito, sino especificación declarativa con reglas de evaluación implícitas, quizás no declarativas - Manejar las condiciones límite - inicialización: constantes, parámetros, variables globales, tareas, objetos guardianes, jerarquía de clases - terminación: liberación de recursos - fallo: errores del programa (bugs), errores de entrada, agotamiento de recursos, fallo externo - Establecer las prioridades - elegir entre objetivos deseables pero incompatibles - prototipaje rápido - Estructuras arquitectónicas habituales - Transformación batch
  • 76. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 76 - la transformación de datos de todo un conjuntode entrada se ejecuta una sola vez - transformación secuencial desde la entrada hasta la salida - ej.: compilación cód. fuente list. tokens árbol gr. An. léxico An. gramatical An. semántico (parsing) arbol gr. ampliado cód. objeto cód. optimiz. código Form. c. obj . Optimización Generac. cód . - su modelo de estados es trivial - lo más importante es el modelo funcional, que especifica cómo los valores de entrada se transforman en los de salida - metodologías de DFD y descomposición funcional - etapas: - partir la transformación 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 débilmente con los de las fases contigüas - expandir cada fase hasta que las operaciones sean fácilmente implementables - optimizar el diagrama final - Transformación continua - la transformación de datos se ejecuta de forma continuada a medida que las entradas van cambiando
  • 77. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 78 - etapas : - diseñar 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 - ergonomía del diálogo con el usuario - etapas: - separar los objetos del interfase de los que definen la semántica de la aplicación - si es posible, utilizar objetos predefinidos para interactuar con agentes externos - utilizar el modelo dinámico como estructura del programa. Mejor, control guiado por sucesos. - separar los sucesos físicos de los lógicos (múltiples sucesos físicos) - especificar completamente las funciones de la aplicación que son invocadas por el interfase - Simulación dinámica - sistema que simula objetos cambiantes del mundo real - muchos objetos distintos que se actualizan continuamente - etapas:
  • 78. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 79 - identificar actores, objetos activos del mundo real, en el modelo de objetos. Los actores tienen atributos que se actualizan periódicamente - identificar sucesos discretos: interacciones discretas con el objeto. Pueden implementarse como operaciones sobre el objeto - identificar dependencias continuas. Los atributos del mundo real pueden depender de otros o variar continuamente respecto al tiempo u otros parámetros. Estos atributos hay que actualizarlos periódicamente utilizando técnicas de aproximación numérica para minimizar los errores de cálculo - normalmente, la simulación se ejecuta sobre un escalamiento temporal dado. Los procesos continuos se aproximan mediante pasos discretos - Sistema de Tiempo real - sistema dominado por restricciones temporales estrictas - determinar el escenario del peor caso - Gestor de Transacciones - sistema que almacena y actualiza datos, incluyendo normalmente acceso concurrente desde distintos lugares - etapas: - establecer las correspondencias entre el modelo de objetos y la base de datos - determinar los recursos que no pueden compartirse (unidades de concurrencia) - determinar los recursos a los que debe accederse a la vez durante la transacción (unidades de transacción) - diseñar el control de la concurrencia para las transacciones -------------------------------------------------------------------------------- -
  • 79. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 80 Diseño 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. -------------------------------------------------------------------------------- - - Transformación de la estructura lógica del modelo de análisis en una organización física de un programa - Papel central del modelo de objetos en el diseño - 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 dinámico y los procesos del modelo funcional se convierten en operaciones asociadas a las clase del modelo de objetos - Si asociamos una operación con los sucesos que un objeto recibe, el algoritmo que implementa la operación depende del estado del objeto - el código que implementa el algoritmo debe contener una sentencia CASE que especifique el estado - Si tenemos un par de sucesos que representan una acción sobre otro objeto y la devolución del resultado de la acción, podemos representarlos como una operación - una acción o actividad puede expandirse en un DFD completo del modelo funcional - los procesos en el cuerpo del DFD representan el cuerpo de una operación - los flujos son los valores intermedios
  • 80. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 81 - hay que convertir la estructura del grafo en una secuencia lineal de pasos de un algoritmo - los procesos del DFD constituyen suboperaciones. Algunas pueden ser operaciones sobre el objeto original o sobre otros. Para saber a qué objeto se dirige una operación: - si el proceso extrae un valor de un flujo de entrada, entonces el objetivo es el flujo de entrada - si tiene flujos de entrad y salida del mismo tipo, y el de salida es una versión actualizada del de entrada, entonces el objetivo es el flujo de entrada/salida - si el proceso construye un valor de salida a partir de varios de entrada, entonces tenemos una operación de clase (constructor) sobre la clase de salida - si el proceso tiene una entrada de o una salida a un almacén o un actor, entonces éstos son los objetivos - Diseñar algoritmos para implementar las operaciones - Elegir algoritmos que minimicen el coste de implementación de las operaciones - en muchos casos, la especificación del modelo funcional ya constituye un algoritmo suficiente - Se necesitan algoritmos: - para implementar funciones para las que no se ha dado una especificación procedural (sólo restricciones declarativas) - para optimizar funciones definidas mediante un algoritmo sencillo pero poco eficiente - Criterios de elección: - Complejidad computacional: ¿cómo crece la demanda de tiempo o de espacio de memoria respecto al número de valores de entrada? - Facilidad de implementación y de comprensibilidad
  • 81. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 82 - Flexibilidad - Ajuste al modelo de objetos - Seleccionar estructuras de datos apropiadas a los algoritmos - instancias de clases contenedoras - estructuras de datos genéricas dadas como librerías: 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 operación es el objeto cambiado, no el meramente preguntado - el objetivo de la operación es el objeto alrededor del cual se agrupan en estrella las clases y asociaciones que intervienen en la operación - por defecto, si es sólo un objeto el que interviene, decidir qué objeto realiza la operación en el mundo real - Optimizar los caminos de acceso a los datos - Añadir asociaciones redundantes para minimizar los costes de acceso y maximizar la conveniencia - reordenar más eficientemente la computación - Almacenamiento de atributos derivados para evitar la recomputación de expresiones complicadas. Su valor se puede actualizar de tres formas: - actualización explícita - recomputación periódica - valores activos - Implementar el control de las interacciones externas - Para implementar el modelo dinámico de acuerdo con la estrategia básica decidida durante el diseño del sistema se puede:
  • 82. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 83 - Definir implícitamente el estado del programa mediante la asignación de control dentro de él (Sistema guiado por procedimientos: enfoque tradicional): Transferencia de control a una sentencia o rutina en función de la entrada recibida: Técnica de conversión: - identificar el camino de control principal o normal. Construir una secuencia lineal de sentencias que corresponden a los estados de ese camino - Identificar los caminos alternativos y convertirlos en sentencias condicionales - Identificar caminos hacia atrás que salgan del camino principal y que se junten después con él. Se convertirán en bucles en el programa. Si hay varios caminos hacia atrás que no se cruzan, se convierten en bucles anidados en el programa. Los que se cruzan no se anidan, pueden implementarse excepcionalmente con gotos. - los estados y transiciones que queden corresponden a condiciones de excepción. Se convertirán en subrutinas de error, manejo de excepciones soportado por el lenguaje, o definiciones o comprobaciones de los flags de estado - Implementar directamente un mecanismo de máquina de estados (sistema guiado por sucesos) - Motor de transiciones que permite ejecutar una máquina de estados representada por una tabla de transiciones y acciones - YACC o LEX (parsers) proporcionan máquinas de estado explícitas - Implementar los objetos como tareas concurrentes - Ajustar la estructura de clases para aumentar la herencia - Reordenar las clases y operaciones - ligeras modificaciones de las operaciones y de las clases pueden permitirnos aumentar la herencia mediante una sola operación heredada - número de argumentos de las operaciones - nombres de los atributos
  • 83. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 84 - Abstraer la conducta común de grupos de clases - crear superclases con los rasgos compartidos - Utilizar la delegación para compartir la conducta cuando la herencia es semánticamente inválida - un objeto puede invocar selectivamente funciones de otra clase - Diseñar las asociaciones - estrategia para implementar las asociaciones - global o para cada asociación - si algunas asociaciones se atraviesan en una sola dirección, su implementación se puede simplificar, como puntero (atributo que contiene la referencia de un objeto) o conjunto de punteros (dependiendo de su multiplicidad). Si la asociación apunta a “muchos” ordenados, podemos utilizar una lista en vez de un conjunto. Una asociación cualificada con multiplidad “uno” puede implementarse como un objeto diccionario (conjunto de pares de valores que hacen corresponder valores de selección con valores objetivo). Los diccionarios se pueden implementar mediante hashing. Con multiplicidad “muchos”, diccionarios de conjuntos de objetos - las asociaciones bidireccionales: como atributos en una dirección, en ambas, o como un objeto asociación distinto de las dos clases (conjunto de pares de objetos asociados, o triplas para las asociaciones cualificadas, que se implementan mediante dos objetos diccionario, uno para cada dirección), dependiendo de la frecuencia de uso de las asociaciones, de si los accesos superan a las actualizaciones - Si una asociación tiene enlaces, se implementa como una clase distinta, en la que cada instancia representa un enlace y sus atributos - Determinar la representación de objetos: fácil. Tipos primitivos o combinaciones de grupos relacionados. - Empaquetar las clases y asociaciones en Módulos - Ocultar la información interna
  • 84. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 85 - definición del interfase público de cada clase al mayor nivel de abstracción posible - decidir qué atributos de la clase serán accesibles desde fuera o no (private) - limitar el alcance de los métodos y operaciones - evitar el acceso mediante asociaciones no conectadas a la clase actual - evitar aplicar un método al resultado de otro método - asegurar la coherencia de las entidades - una entidad, operación o módulo es coherente si está organizado sobre un plan consistente y todas sus partes se ordenan a un fin común. Separar los métodos estratégicos (policy) de los métodos que implementan algoritmos (implementation meth.) - construir los módulos físicos - Documentar las decisiones de diseño: documento de diseño -------------------------------------------------------------------------------- - Implementación - Dijkstra, E. W. (1976): A Discipline of Programming, Prentice Hall - Kernighan, B. W., Plauger, P. J. (1978), The Elements of Programming Style, McGraw-Hill -------------------------------------------------------------------------------- - - Reusabilidad - métodos coherentes: una sola función o un solo grupo de funciones relacionadas - métodos pequeños - métodos consistentes: los métodos semejantes deben utilizar los mismos nombres, condiciones, orden de los argumentos, tipos de datos, valores devueltos y condiciones de error. Deben tener una estructura paralela
  • 85. Rodolfo Fernández González Metodología de Modelización Unidad Docente de Lógica y Filosofía de la Ciencia 86 - separar la estrategia de la computación básica - uniformidad: escribir métodos para todas las combinaciones de entrada, y no sólo para las previstas - generalizar el método lo más posible - evitar las dependencias contextuales - subrutinas - factorización de las diferencias - delegación - encapsulamiento de código externo dentro de una operación o clase - extensibilidad - encapsular las clases - ocultar las estructuras de datos - evitar el acceso remoto a enlaces o métodos - evitar sentencias case sobre el tipo de objeto, sino métodos. Las case se utilizan para comprobar atributos internos de un objeto - distinguir las operaciones públicas de las privadas - robustez - optimizar el programa sólo después de que funcione - validar los argumentos - evitar límites predefinidos - incluir en el programa instrumentos de depuración y monitorización del rendimiento - programación en equipo - no comenzar prematuramente la programación - mantener los métodos inteligibles - hacer los métodos legibles - utilizar exactamente los mismos nombres que en el modelo de objetos - escoger cuidadosamente los nombres, siguiendo una pauta uniforme - usar metodologías de programación, o crearlas - documentar las clases y métodos - empaquetar en módulos.