Metodologias de modelización r. fernandez

85
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

Transcript of Metodologias de modelización r. fernandez

Page 1: Metodologias de modelización   r. fernandez

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

Page 2: Metodologias de modelización   r. fernandez

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 oté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 deProbabilidades

- 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-orientedmodeling and design. Prentice-Hall

- KADS

Page 3: Metodologias de modelización   r. fernandez

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 parafacilitar su comprensión.

- Abstracción o esquematización:

- omisión de detalles no esenciales del sistema real quereduce su complejidad y facilita su comprensión.

- lo que se considera relevante viene dado por el objetivo delmodelo

- un mismo sistema puede ser objeto de distintasmodelizaciones, cada una en virtud de un objetivo distinto

- todas las abstracciones son incompletas. Se buscaadecuación, no corrección.

Page 4: Metodologias de modelización   r. fernandez

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

Page 5: Metodologias de modelización   r. fernandez

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 laspropiedades relevantes

- Lo que interesa es comprender el problema

- Modelos de análisis: abstracciones concisas y precisas de lo quedebe hacer el sistema, no de cómo lo hará

- Los objetos de los modelos son conceptos del dominio delproblema, independientes de la implementación.

Page 6: Metodologias de modelización   r. fernandez

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 losmodelos de análisis

- Detalles de implementación impuestos por las estrategias de resolución

- Identificación de las estructuras de datos y de losalgoritmos necesarios para:

- implementar cada clase

- optimizar el rendimiento

Page 7: Metodologias de modelización   r. fernandez

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 deprogramación

- Ingeniería del software:

- ajuste al diseño

- flexibilidad

- extensibilidad

Page 8: Metodologias de modelización   r. fernandez

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 orefinamiento de tres modelos distintos:

- Modelo de objetos

- Modelo dinámico

- Modelo funcional

Page 9: Metodologias de modelización   r. fernandez

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, susrelaciones mutuas, sus atributos y sus operaciones

- Se formula utilizando un diagrama de objetos:

- Diagrama de objetos: grafos cuyos nodos son clases deobjetos, y cuyos arcos son relaciones entre clases

- Las clases se ordenan jerárquicamente. Esa ordenación hace quepuedan compartir estructuras y comportamientos.

- Es el modelo fundamental, porque describe qué es lo que cambiao se transforma, antes de describir cuándo o cómo lo hace.

- Proporciona la estructura básica en la que se integran los demásmodelos

- Descripción de los datos

- Es importante para cualquier problema que manipule estructurasde datos no triviales

Page 10: Metodologias de modelización   r. fernandez

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, lasinteracciones 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 sonestados, y cuyos arcos son transiciones entre estadoscausadas por sucesos.

- Describe la secuencia de sucesos y estados admisibles enuna clase de objetos

- Descripción de los aspectos de “control”

Page 11: Metodologias de modelización   r. fernandez

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 elsistema

- Funciones, restricciones, dependencias funcionales

- “Lo que el sistema hace”

- Se formula mediante diagramas de flujo:

- Un diagrama de flujo es un grafo cuyos nodos sonprocesos y cuyos arcos son flujos de datos.

- Representa las dependencias entre valores, y lacomputación de los valores de salida a partir de los valoresde entrada

- Descripción de la “función” del sistema

Page 12: Metodologias de modelización   r. fernandez

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 tresaspectos distintos del sistema, pero estrechamente relacionadosentre sí:

- El modelo de objetos describe las estructuras de datossobre las que operan los modelos dinámico y funcional.

- Distintas modalidades descriptivas de los componentesdinámicos del sistema:

M. de objetos M. dinámico M. funcional

operaciones sucesos funcionesacciones

- Los tres modelos evolucionan juntos durante las distintas fasesdel 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

Page 13: Metodologias de modelización   r. fernandez

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, queconstituye un elemento bien definido del dominio del problema- La identificación de los objetos depende del problema: puedehaber más de una representación en el mismo dominio- Los objetos se distinguen entre sí no por sus atributos, sino porsu 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 serconsiderados como bienes económicos, pero ...)

- cada objeto “conoce” su clase. Esta es una propiedad implícitadel objeto- la agrupación de objetos en clase es una abstracción que nospermite:

- generalizar el conocimiento de lo individual- simplificar la complejidad- utilizar menos recursos (descriptivos, de almacenamiento de información)

Page 14: Metodologias de modelización   r. fernandez

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

Page 15: Metodologias de modelización   r. fernandez

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 sermodelizado como objeto2, se modelizará como tal, y seasociará 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érez27 años 27 años

Rumbaugh Coad/Yourdon

Page 16: Metodologias de modelización   r. fernandez

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 - oque 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 suoperación

- polimorfismo: la misma operación:

- puede aplicarse a muchas clases distintas

- adopta en cada clase una forma distinta

Page 17: Metodologias de modelización   r. fernandez

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 unaoperación para una clase dada

- Si una operación tiene métodos para varias clases, es importanteque 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 operacionesque tienen efectos colaterales de aquellas que se limitan a calcularun valor sin modificar otros objetos (queries)- Las queries que no tienen más argumentos que los de su objetopueden 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”

Page 18: Metodologias de modelización   r. fernandez

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 dosinstancias de objetos- Formalmente es una relación, es decir, una lista ordenada deobjetos- 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 lasmismas 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 objetoque tienen como valor otro objeto): la asociación no es parte deningún objeto, sino que depende de los dos- Todas las conexiones entre clases deben modelizarse comoasociaciones- Por su naturaleza, las asociaciones violan el encapsulamiento dela información en clases

Page 19: Metodologias de modelización   r. fernandez

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 izquierdaa derecha

Page 20: Metodologias de modelización   r. fernandez

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 ordensuperior

- La mayoría son binarias

- Las ternarias también pueden diagramarse:

Proyecto Lenguaje

Persona

- El nombre de la asociación puede escribirse como etiqueta juntoa la correspondiente salida del rombo de conexión

Page 21: Metodologias de modelización   r. fernandez

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 puedenrelacionarse 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 dejarsepara las últimas fases

- Su consideración suele ayudar a elicitar supuestos ocultos

Page 22: Metodologias de modelización   r. fernandez

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 CARDINALIDADDE LAS RELACIONES

- Se utilizan terminadores sobre el conector para especificarvalores 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

Page 23: Metodologias de modelización   r. fernandez

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 CARDINALIDADDE 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 unaasociación deben tener un orden explícito, se indicará añadiendola etiqueta “{ordenado}”

- Cualificador: atributo especial que reduce la multiplicidadefectiva 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”

Page 24: Metodologias de modelización   r. fernandez

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íaposible en relaciones “muchos-a-muchos”

Page 25: Metodologias de modelización   r. fernandez

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, laflexibilidad se reduce si, posteriormente, la multiplicidad de laasociación cambia

equipo

portero año

tiros parados goles encajados

Page 26: Metodologias de modelización   r. fernandez

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 clasede 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 losenlaces:

- 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

Page 27: Metodologias de modelización   r. fernandez

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 deobjetos asociado con el objeto o conjunto de objetos del otroextremo

empleado compañía persona contratante trabaja-para

- Su uso es opcional, y puede utilizarse además de, o en vez de, elnombre de la asociación

- Es obligatorio utilizarlos si la asociación se da entre dos objetosde la misma clase

- Es aconsejable para distinguir dos asociaciones entre el mismopar de clases

Page 28: Metodologias de modelización   r. fernandez

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

Page 29: Metodologias de modelización   r. fernandez

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, manteniendolas diferencias

- Generalización: Relación entre una clase y una versión menosrefinada 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 lasubclase

- Asignamos a la superclase los atributos y operaciones comunesal grupo de sus subclases- Decimos que cada subclase hereda las características de susuperclase- Generalización, especialización y herencia son relaciones yprocesos 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 losheredados de sus antecesoras- Los nodos terminales del arbol jerárquico son las instancias(objetos) de las subclases más bajas del árbol. Estas instanciasheredan todos los atributos y operaciones de sus clasesantecesoras.- En ocasiones, una subclase puede especificar un valor de unatributo o una operación, aunque le vengan suministrados por sussuperclases:

- los valores por defecto de los atributos- los métodos de las operaciones

- Normalmente, nunca se modifican las signaturas.

Page 30: Metodologias de modelización   r. fernandez

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 indicaqué propiedad de un objeto está siendo abstraída por la relaciónde generalización

Page 31: Metodologias de modelización   r. fernandez

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 ygeneralizaciones

- Se especifican o definen en función del problema a modelizar

- Cada modelo de objetos puede dividirse en módulos parafacilitar su manipulación y comprensión

- Los nombres de clases y de asociaciones deben ser únicos dentrode cada módulo y, en la medida de lo posible, también dentro delmodelo de objetos completo

- Los módulos se interconectan haciendo referencias a la mismaclase

- Es conveniente que haya menos enlaces intermódulo queintramódulo

- Cada módulo tiene un nombre asignado

Page 32: Metodologias de modelización   r. fernandez

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

- 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 mismasclases. Las hojas hacen referencia a otras mediante un códigoencerrado 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

Page 33: Metodologias de modelización   r. fernandez

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

Page 34: Metodologias de modelización   r. fernandez

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 deoperaciones que tiene lugar en respuesta a estímulos externos, sintener en cuenta qué hacen las operaciones, sobre qué operan, ycó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ámicotrivial, ya que su objetivo consiste en computar una función

- Diagrama de estados:

- red de estados y eventos que representa transiciones deestados 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 uncomportamiento dinámico relevante. No todas las clases lonecesitan

- Cada máquina de estados se ejecuta concurrentemente, y puedecambiar de estado de forma independiente

- Los diversos diagramas de estado de cada clase se combinanmediante sucesos compartidos. Hay que comprobar laconsistencia

Page 35: Metodologias de modelización   r. fernandez

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 (sucesosconcurrentes)

- Si no están causalmente relacionados entre sí, su ordenación esirrelevante

- Constituyen una transmisión de información unidireccional deun objeto a otro

- El envío de un suceso desde un objeto a otro no incluyenecesariamente 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 unaconducta 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 lainformación que transportan (se representan entre paréntesis acontinuación de la etiqueta del suceso)

- Pueden representarse como operaciones sobre el modelo deobjetos

Page 36: Metodologias de modelización   r. fernandez

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 lugardurante 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 mentalsobre un modelo propuesto

- Después de describir un escenario, hay que identificar al emisory receptor de cada suceso

- La construcción de diagramas de estado comienza por laidentificación de escenarios

Page 37: Metodologias de modelización   r. fernandez

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: Llamadatelefó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

Page 38: Metodologias de modelización   r. fernandez

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 delos enlaces de un objeto

- En un estado se agrupa un conjunto de valores de acuerdo conpropiedades que afectan al comportamiento de alto nivel delobjeto

- No tienen que especificarse todos los atributos del objeto, sólolos relevantes

- La granularidad de los estados depende del problema

- El estado especifica cuál será la respuesta del objeto a lossucesos de entrada

- La respuesta de un objeto a un suceso puede variarcuantitativamente en función de los valores de sus atributos, peroes cualitativamente la misma para todos los valores dentro delmismo estado, y puede ser cualitativamente diferente para valoresen diferentes estados

- La respuesta de un objeto a un suceso puede incluir una acción oun cambio de estado del objeto

- El estado representa el intervalo entre dos sucesos recibidos porun objeto

- El estado depende de la secuencia de sucesos que ha recibidoanteriormente, aunque en muchos casos los sucesos anterioresestán escondidos por los sucesivos

- El estado tiene una duración, y a veces se asocia con unaactividad continua

Page 39: Metodologias de modelización   r. fernandez

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 dossucesos

- A veces se asocia un estado con el valor de un objeto quesatisface 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 alcomportamiento del objeto, y colocamos en un solo estado todaslas combinaciones de valores de atributos y enlaces queresponden 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 unobjeto, puede tener un estado.

Page 40: Metodologias de modelización   r. fernandez

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 elmismo comportamiento, todas comparten el mismo diagramade 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ánetiquetados 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 losvalores 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 queinteractúan entre sí mediante sucesos compartidos

Page 41: Metodologias de modelización   r. fernandez

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 deun diagrama de de nivel superior

- tiene estado inicial (•) y estado final ( ), quepueden 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ónEstado1 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

Page 42: Metodologias de modelización   r. fernandez

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” sobretransiciones

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

tiempotiempo tiempo[no hay coches izq. E/W]

abrir giro izq. E/W abrir recto E/W

tiempo [coches en E/W]

Page 43: Metodologias de modelización   r. fernandez

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 elobjeto hace para responder a los sucesos (operaciones asociadas alos 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

Page 44: Metodologias de modelización   r. fernandez

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 degeneralización, con herencia de estructura ycomportamiento (igual que la herencia de atributos yoperaciones 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 trabajarconsiste en anidar diagramas

- Las actividades anidadas son diagramas de estado contransiciones de entrada y salida, igual que las subrutinas

- Se usan estados anidados si la misma transacción se aplica amuchos estados

Page 45: Metodologias de modelización   r. fernandez

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/sumara 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

Page 46: Metodologias de modelización   r. fernandez

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 elsiguiente subdiagrama:

liberada liberado hacer: liberar columna hacer: liberar paquete

- Los sucesos, como “seleccionar producto” también puedenexpandirse:

introd. dígito selecc. producto hacer: borrar hacer: añadir

producto dígito confirmar borrar

Page 47: Metodologias de modelización   r. fernandez

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 lastransiciones de sus superestados

- Cualquier transición o acción que se aplica a un estado, se aplicaa todos sus subestados, a menos que éstos tengan una transiciónespecífica

- Los superestados se diagraman mediante una caja redondeadagrande, que contiene todos sus subestados (Harel: contornos)

- Puede haber transiciones de un subestado a otro que esté fueradel contorno

GENERALIZACIÓN DE SUCESOS

- Los sucesos pueden estar organizados en una jerarquía degeneralización, con herencia de los atributos de los sucesos

Page 48: Metodologias de modelización   r. fernandez

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, podemosasociar 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 deentrada, se ejecuta antes la acción de entrada

- Siempre que se sale de un estado, mediante una transición desalida, se ejecuta antes la acción de salida

- Si hay varias operaciones sobre un estado, se ejecutan en elsiguiente 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 deentrada/salida , y todas causan la misma acción

Page 49: Metodologias de modelización   r. fernandez

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 cambieel estado

- Si se produce el suceso, su acción se ejecuta, pero no lasacciones de entrad y salida para el estado

- Diferencia con las autotransiciones: éstas hacen que se ejecutenlas acciones de entrada y salida

TRANSICIÓN AUTOMÁTICA

- Transiciones lambda: transiciones que se disparan cuando secompleta 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 susatributos) a otro objeto

- Se representa mediante una línea de puntos desde una flecha detransición a otro objeto o clase de objetos (o a una transición deldiagrama de estados de ese objeto)

- Si un estado puede aceptar sucesos de más de un objeto, el ordenen que se reciben puede afectar al estado resultante (la “condiciónde carrera”)

Page 50: Metodologias de modelización   r. fernandez

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 deestados

- La concurrencia por agregación de estados es la combinación delos estados de todos los diagramas componentes

- Una transición condicionada de un objeto puede depender deque otro esté en un estado determinado

- Puede darse concurrencia dentro del estado de un objeto si éstepuede dividirse en subconjuntos de atributos o enlaces, cada unocon 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, ytodas ellas deben acabar antes de que el objeto pueda pasar a otroestado

- Representación: se subdivide el estado con líneas de puntos, encada una de las cuales se coloca una actividad “hacer”concurrentes. Las flechas se bifurcan para mostrar la concurrencia

Page 51: Metodologias de modelización   r. fernandez

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 PressDe 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), cuyoselementos 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 programasno interactivos

- Las BDs tienen un modelo funcional trivial

Page 52: Metodologias de modelización   r. fernandez

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 operacionesy restricciones

- El DFD muestra las relaciones funcionales entre los valorescomputados

- muestra el flujo origen-proceso-destino

- ignora la información de control (tiempo, decisiones entrecaminos 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

Page 53: Metodologias de modelización   r. fernandez

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 unidadesfuncionales

- La estructura de anidamiento forma un árbol

- El nivel más bajo es el de las funciones primitivas

Page 54: Metodologias de modelización   r. fernandez

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 efectoscolaterales

- Un DFD entero es un proceso de alto nivel

- Puede tener efectos colaterales si incluye componentes nofuncionales (almacenes de datos u objetos externos)

- El modelo funcional sólo indica los posibles caminosfuncionales, no los que tienen lugar realmente en función de ladiná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 lacomputación o el tipo de dato

- Sólo muestra el patrón de entradas y salidas. La computaciónhay que especificarla

- Un proceso de alto nivel puede expandirse en todo un DFD denivel más bajo

- Los procesos se implementan como métodos de operacionessobre clases de objetos

Page 55: Metodologias de modelización   r. fernandez

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 otroobjeto o proceso

- Representa un valor en un punto del proceso

- Los de entrada/salida pueden estar conectados a objetos o no (siel 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 flechacomponente se etiqueta

Page 56: Metodologias de modelización   r. fernandez

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 enel modelo dinámico

ALMACENES DE DATOS

- Objeto pasivo que almacena datos

- Responde a peticiones de almacenamiento y recuperación dedatos

- 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 quecontrola a otro controlado

- Puede etiquetarse con el valor de control

Page 57: Metodologias de modelización   r. fernandez

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

Page 58: Metodologias de modelización   r. fernandez

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

Page 59: Metodologias de modelización   r. fernandez

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 sonprivados de la operación y quizás de la clase de objetos

- El estado del objeto puede dividirse entre informaciónexternamente visible e información interna privada

Page 60: Metodologias de modelización   r. fernandez

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 objetoindependientes del tiempo

Page 61: Metodologias de modelización   r. fernandez

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 objetostiene que hacer- procesos - operaciones - secuencia de

ejecución- actores - objetos- almacenes - objetos- flujos de datos - valores

Page 62: Metodologias de modelización   r. fernandez

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, YourdonPress

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

Page 63: Metodologias de modelización   r. fernandez

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 comooperación depende de cada caso

- el nombre de una clase debe reflejar su naturaleza, yno 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 (incluyendoagregaciones)

- en vez de referir atributos a clases, utilizarasociaciones

- asociaciones se expresan como verbos deposicionamiento físico, comunicación, accionesdirigidas, 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 (asociacionesdependientes)

- - pueden mantenerse para mayor facilidad deldiseño, pero se marcan con líneas de puntos

- - en la medida de lo posible, clases, atributos yasociaciones deberían representar informaciónindependiente

- nombres claros y descriptivos (qué, y no cómo opor qué)

- papel que una clase en una asociación desempeñadesde el punto de vista de la otra clase

- cualificador: nombre más contexto de uso- multiplicidad: menos importante durante el

análisis

Page 64: Metodologias de modelización   r. fernandez

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 esmás importante que su valor, entonces es unobjeto

- si el valor de un atributo depende de un contextodeterminado, entonces el atributo es uncualificador

- a veces los nombres se modelizan mejor comocualificadores 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 unenlace, entonces la propiedad es un atributo delenlace, y no del objeto relacionado

- si un atributo describe el estado interno de unobjeto 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, intentargeneralizar las clases asociadas

- top-down: refinar las clases formando subclasesespecializadas: adjetivos del nombre de la clase

Page 65: Metodologias de modelización   r. fernandez

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 lasqueries

- 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ñadenasoociaciones 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 deque 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 omínimos, incompletas, etc.) y las condiciones deerror (valores no válidos, etc.)

- abortar operaciones o retornar a puntos anteriores- Frecuente distinción entre:

Page 66: Metodologias de modelización   r. fernandez

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 elmodelo dinámico)

- interfase de usuario- Identificar los sucesos entre objetos

- agrupar bajo el mismo nombre los sucesos quetengan el mismo efecto en el flujo de control.

- asignar cada tipo de suceso a las clases de objetosque lo envían y lo reciben (como suceso de entraday 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 comportamientodinámico no trivial

- cada escenario o traza de sucesos corresponde a uncamino 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 lossucesos que afectan a un solo objeto.

- Colocamos los sucesos en un camino cuyos arcosestán etiquetados con los sucesos de entrada ysalida que encontramos en una columna de latraza.

- 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

Page 67: Metodologias de modelización   r. fernandez

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 sussalidas

- insertar otros escenarios en el diagrama deestados

- Después de los sucesos normales, los límites oespeciales, y los de error

- Si hay interacciones complejas con entradasindependientes, podemos construir el modelodinámico utilizando diagramas de estado anidados.

- Comprobar los sucesos entre objetos para verificar laconsistencia

- Modelización funcional- Identificar los valores de entrada y salida

- son los parámetros de los sucesos entre el sistema yel mundo externo

- Construir DFDs que muestren las dependenciasfuncionales

- normalmente se construye por capas o niveles- recoger valores- computar valores- generar salida

- proceder de atrás hacia delante: normalmente es másdifícil identificar todos los usos de una entrada queidentificar todas las fuentes de una salida

- expandir los procesos no triviales en DFDs de bajonivel

- Describir las funciones en el lenguaje adecuado- preferible la descripción declarativa: especificación

de las relaciones entre entrada y salida y entre losvalores de salida: no implica una implementación

- si es más fácil que la declarativa, descripciónprocedural: especificación de un algoritmo

- identificar las restricciones- dependencias funcionales entre objetos no

relacionados mediante una dependencia de entrada-salida

Page 68: Metodologias de modelización   r. fernandez

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 tiemposdistintos (un invariante) o entre instancias deobjetos distintos en tiempos distintos

- las precondiciones sobre las funciones sonrestricciones que deben satisfacer los valores deentrada, y las postcondiciones son restricciones quedeben satisfacer los valores de salida

- hay que especificar los tiempo o condiciones en losque 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 unaoperación sobre él

- de las acciones de estado y de las actividades- de las funciones

- cada función corresponde a una operación sobre unoo más objetos

- las funciones (excepto las de acceso) se organizanen operaciones sobre objetos

- genéricas- operaciones que no dependen de un sistema

concreto ni están sujetas a un orden de ejecucióndeterminado, pero que son significativas por símismas

- simplificación de operaciones: eliminar redundancias yvariaciones. Utilizar la herencia para reducir el número deoperaciones distintas. Introducir nuevas superclases.

- Iteración del Análisis

Page 69: Metodologias de modelización   r. fernandez

Rodolfo Fernández González Metodología de Modelización

Unidad Docente de Lógica y Filosofía de la Ciencia 69

---------------------------------------------------------------------------------

Page 70: Metodologias de modelización   r. fernandez

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, PrenticeHallPage-Jones, M. (1988): The Practical Guide to Structured SystemsDesign, Prentice Hall---------------------------------------------------------------------------------- arquitectura del sistema:

- organización global del sistema en componentes llamadossubsistemas

- Organización del sistema en subsistemas- Cada subsistema contiene aspectos del sistema que

comparten alguna propiedad común o funcionalidadsemejante

- Un subsistema no es un objeto ni una función, sino unempaquetamiento de clases, asociaciones, operaciones,sucesos y restricciones que están interrelacionados y quetienen 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 quecomparten algún objetivo común, p. ej., cálculoaritmético, procesamiento de entrada/salida, etc.

- las operaciones internas de cada subsistema pueden serdiseñadas independientemente de las de los demás

- El diseño del sistema debe ser tal que la mayor parte delas interacciones se produzcan dentro de cada subsistema.

- cada subsistema puede descomponerse en subsistemasmás pequeños. Los subsistemas de nivel más bajo sellaman “módulos”

- La relación entre subsistemas puede ser:- cliente-servidor

Page 71: Metodologias de modelización   r. fernandez

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únservicio y devuelve el resultado. El clienteconoce el interfase del servidor, pero no a lainversa

- entre iguales (peer-to-peer)- cada subsistema puede llamar a los demás. A

cada comunicación no le sigue necesariamenteuna respuesta inmediata. Cada subsistemadebe conocer el interfase de los demás. Dadala posible existencia de bucles, su dificultad esmayor.

- La descomposición de sistemas en subsistemas puedeorganizarse como una secuencia de capas horizontales ode particiones verticales. También pueden adoptarseenfoques híbridos

- Capas- Un sistema de capas (layered system) es un conjunto

de niveles tal que cada uno de ellos está construidoen términos de los que se encuentran por debajo deél, y constituye la base para la construcción de losque se encuentran por encima de él

- El nivel superior es el sistema deseado y vieneespecificado en la formulación del problema. Elnivel inferior son los recursos disponibles. Losniveles intermedios se introducen:

- para eliminar el salto conceptual entre losniveles

- para aumentar la portabilidad del sistema- filosofía cliente-servidor: cada capa conoce los

servicios proporcionados por capas inferiores, perono a la inversa

- dos arquitecturas alternativas:- cerrada: cada nivel está construido

exclusivamente en términos del nivelinmediatamente inferior. Reduce lasdependencias entre niveles y los cambios son

Page 72: Metodologias de modelización   r. fernandez

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

- abierta: cada nivel puede utilizar cualquier otronivel inferior. Reduce la necesidad de redefiniroperaciones en cada nivel, pero no respeta elprincipio del ocultamiento de información. Loscambios de un subsistema pueden afectar acualquier otro sistema superior. Menos robustez.

- Particiones- Divisiones del sistema en subsistemas

independientes y débilmente acoplados, cada uno delos cuales proporciona un servicio específico

- el conocimiento de los demás es superficial, y lasdependencias son mínimas

- Topologías del sistema- tras la identificación de los subsistemas del nivel

superior, se construye un DFD que muestra el flujode 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 laespera de otro suceso. La hebra pasa al receptor delsuceso hasta que, en su caso, ésta vuelve al objetooriginal. La hebra se parte si el objeto envía un evento ycontinúa la ejecución

- En cada hebra de control, sólo está activo un objeto a lavez. Se implementan como tareas.

- dos objetos son inherentemente concurrentes si puedenrecibir sucesos al mismo tiempo sin interactuar

- hay que identificar qué objetos deben estar activos deforma concurrente, y cuáles tienen una actividad que esmutuamente excluyente

Page 73: Metodologias de modelización   r. fernandez

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 puedencolocarse en la misma hebra (thread) de control (“tarea”).Si su actividad es mutuamente excluyente, puedencolocarse en la misma tarea.

- los sistemas operativos multitarea pueden manejarsubsistemas inherentemente concurrentes. No esnecesario asignarlos a diferentes unidades hardware

- aunque todos los objetos son conceptualmenteconcurrentes, muchos son interdependientes

- muchos objetos pueden colocarse en la misma hebra decontrol, examinando los diagramas de estado de cadaobjeto 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 lacomunicación interprocesadores

- Se establece la conectividad de las unidades físicas queimplementan los subsistemas

- Se asignan tareas a los procesadores, teniendo en cuentalocalización física, tiempo de respuesta o carga decomputación

- Se determina la conectividad física: topología deconexión física, topología de las unidades repetidas,teniendo en cuenta las pautas de entrada de datos y elalgoritmo 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 deinteracción (síncronos, asíncronos o de bloqueo) yprotocolos de conexión

- Elegir un enfoque para la gestión de los almacenes dedatos

Page 74: Metodologias de modelización   r. fernandez

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 constituyenlíneas de separación entre subsistemas con interfases biendefinidos

- 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 debloqueos (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 visiblesentre 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 deentrada/salida

- malo para las entradas asíncronas,sistemas de control, interfases deusuario flexibles

- C++- guiados por sucesos (sist. ...)

- el lenguaje dispone de un dispatcher omonitor que proporciona el control

- los procedimientos estás asignados asucesos, y el dispatcher los llamacuando ocurre el suceso (callback)

- los procedimientos devuelven controlal dispatcher

Page 75: Metodologias de modelización   r. fernandez

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ásflexible

- 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 ). Tienevarios espacios de direccionamiento ymúltiples pilas de llamada, pero sólo puedeestar activa una hebra de control a la vez

- llamadas concurrentes entre tareas- Otros:

- programación basada en reglas, programaciónlógica...

- no control explícito, sino especificacióndeclarativa con reglas de evaluaciónimplí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

Page 76: Metodologias de modelización   r. fernandez

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 conjuntodeentrada se ejecuta una sola vez

- transformación secuencial desde la entrada hasta lasalida

- ej.: compilación

cód. fuente list. tokens árbol gr. An. léxico An. gramaticalAn. semántico

(parsing) arbolgr. ampliado

cód. objeto cód. optimiz. código Form. c. obj . OptimizaciónGenerac. cód .

- su modelo de estados es trivial- lo más importante es el modelo funcional, que

especifica cómo los valores de entrada setransforman 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 declases forma un modelo de objetos, acopladodébilmente con los de las fases contigüas

- expandir cada fase hasta que las operaciones seanfácilmente implementables

- optimizar el diagrama final- Transformación continua

- la transformación de datos se ejecuta de formacontinuada a medida que las entradas vancambiando

Page 77: Metodologias de modelización   r. fernandez

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 detoda 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 quedefinen la semántica de la aplicación

- si es posible, utilizar objetos predefinidos parainteractuar con agentes externos

- utilizar el modelo dinámico como estructura delprograma. Mejor, control guiado por sucesos.

- separar los sucesos físicos de los lógicos(múltiples sucesos físicos)

- especificar completamente las funciones de laaplicació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:

Page 78: Metodologias de modelización   r. fernandez

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 mundoreal, en el modelo de objetos. Los actores tienenatributos que se actualizan periódicamente

- identificar sucesos discretos: interaccionesdiscretas con el objeto. Pueden implementarsecomo operaciones sobre el objeto

- identificar dependencias continuas. Los atributosdel mundo real pueden depender de otros o variarcontinuamente respecto al tiempo u otrosparámetros. Estos atributos hay que actualizarlosperiódicamente utilizando técnicas deaproximación numérica para minimizar loserrores de cálculo

- normalmente, la simulación se ejecuta sobre unescalamiento temporal dado. Los procesoscontinuos 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 distintoslugares

- 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 detransacción)

- diseñar el control de la concurrencia para lastransacciones

---------------------------------------------------------------------------------

Page 79: Metodologias de modelización   r. fernandez

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 Analysisof Computer Algorithms, Addison-WesleySedgewick, R. (1983), Algorithms, Addison-WesleyGonnet, G. H. (1984), Handbook of Algorithms and DataStructures, Addison-WesleyUllman, J. (1988) Principles of Database and Knowledge-BasedSystems, Comp. Sc. PressMeyer, 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 enoperaciones asociadas a las clase del modelo de objetos

- Si asociamos una operación con los sucesos que un objetorecibe, el algoritmo que implementa la operación dependedel estado del objeto

- el código que implementa el algoritmo debe contener unasentencia CASE que especifique el estado

- Si tenemos un par de sucesos que representan una acciónsobre otro objeto y la devolución del resultado de laacción, podemos representarlos como una operación

- una acción o actividad puede expandirse en un DFDcompleto del modelo funcional

- los procesos en el cuerpo del DFD representan elcuerpo de una operación

- los flujos son los valores intermedios

Page 80: Metodologias de modelización   r. fernandez

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 unasecuencia lineal de pasos de un algoritmo

- los procesos del DFD constituyen suboperaciones.Algunas pueden ser operaciones sobre el objetooriginal o sobre otros. Para saber a qué objeto sedirige una operación:

- si el proceso extrae un valor de un flujo deentrada, entonces el objetivo es el flujo deentrada

- si tiene flujos de entrad y salida del mismotipo, y el de salida es una versión actualizadadel de entrada, entonces el objetivo es el flujode entrada/salida

- si el proceso construye un valor de salida apartir de varios de entrada, entonces tenemosuna operación de clase (constructor) sobre laclase de salida

- si el proceso tiene una entrada de o una salidaa un almacén o un actor, entonces éstos son losobjetivos

- 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 hadado una especificación procedural (sólorestricciones declarativas)

- para optimizar funciones definidas mediante unalgoritmo sencillo pero poco eficiente

- Criterios de elección:- Complejidad computacional: ¿cómo crece la

demanda de tiempo o de espacio de memoriarespecto al número de valores de entrada?

- Facilidad de implementación y decomprensibilidad

Page 81: Metodologias de modelización   r. fernandez

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 losalgoritmos

- instancias de clases contenedoras- estructuras de datos genéricas dadas como librerías:

matrices, listas, colas, pilas, conjuntos, bags,diccionarios, asociaciones, árboles, colas deprioridad, árboles, binarios, ...

- Si es necesario, definir nuevas clases y operacionesinternas

- Asignar la responsabilidad de las operaciones a las clasesadecuadas

- 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 asociacionesque 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 mundoreal

- 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 sepuede 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 sepuede:

Page 82: Metodologias de modelización   r. fernandez

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 mediantela asignación de control dentro de él (Sistema guiado porprocedimientos: enfoque tradicional): Transferencia decontrol a una sentencia o rutina en función de la entradarecibida: Técnica de conversión:

- identificar el camino de control principal o normal.Construir una secuencia lineal de sentencias quecorresponden a los estados de ese camino

- Identificar los caminos alternativos y convertirlos ensentencias condicionales

- Identificar caminos hacia atrás que salgan delcamino principal y que se junten después con él. Seconvertirán en bucles en el programa. Si hay varioscaminos hacia atrás que no se cruzan, se conviertenen bucles anidados en el programa. Los que secruzan no se anidan, pueden implementarseexcepcionalmente con gotos.

- los estados y transiciones que queden correspondena condiciones de excepción. Se convertirán ensubrutinas de error, manejo de excepcionessoportado por el lenguaje, o definiciones ocomprobaciones de los flags de estado

- Implementar directamente un mecanismo de máquina deestados (sistema guiado por sucesos)

- Motor de transiciones que permite ejecutar unamáquina de estados representada por una tabla detransiciones y acciones

- YACC o LEX (parsers) proporcionan máquinas deestado 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 herenciamediante una sola operación heredada

- número de argumentos de las operaciones- nombres de los atributos

Page 83: Metodologias de modelización   r. fernandez

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 cuandola herencia es semánticamente inválida

- un objeto puede invocar selectivamente funcionesde 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, comopuntero (atributo que contiene la referencia de un objeto)o conjunto de punteros (dependiendo de sumultiplicidad). Si la asociación apunta a “muchos”ordenados, podemos utilizar una lista en vez de unconjunto. Una asociación cualificada con multiplidad“uno” puede implementarse como un objeto diccionario(conjunto de pares de valores que hacen correspondervalores de selección con valores objetivo). Losdiccionarios se pueden implementar mediante hashing.Con multiplicidad “muchos”, diccionarios de conjuntosde objetos

- las asociaciones bidireccionales: como atributos en unadirección, en ambas, o como un objeto asociacióndistinto de las dos clases (conjunto de pares de objetosasociados, o triplas para las asociaciones cualificadas, quese implementan mediante dos objetos diccionario, unopara cada dirección), dependiendo de la frecuencia de usode las asociaciones, de si los accesos superan a lasactualizaciones

- Si una asociación tiene enlaces, se implementa como unaclase distinta, en la que cada instancia representa unenlace y sus atributos

- Determinar la representación de objetos: fácil. Tipos primitivoso combinaciones de grupos relacionados.- Empaquetar las clases y asociaciones en Módulos

- Ocultar la información interna

Page 84: Metodologias de modelización   r. fernandez

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 almayor nivel de abstracción posible

- decidir qué atributos de la clase serán accesiblesdesde 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 todassus partes se ordenan a un fin común. Separar losmétodos estratégicos (policy) de los métodos queimplementan 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, PrenticeHall

- Kernighan, B. W., Plauger, P. J. (1978), The Elements ofProgramming 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

Page 85: Metodologias de modelización   r. fernandez

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