Professional Documents
Culture Documents
METODOLOGIAS DE MODELIZACION
MODELIZACIÓN
- explícitamente matemático:
- computacional:
- es implícitamente matemático
- puede suponer o no una previa formalización
matemática
- diversas estrategias:
- KADS
MODELOS
- Abstracción o esquematización:
FASES DE LA MODELIZACION
- Análisis
- Diseño
- Implementación
FASE DE ANÁLISIS
FASE DE DISEÑO
- Identificación de subsistemas
- Estrategias de resolución
- optimizar el rendimiento
FASE DE IMPLEMENTACIÓN
- ajuste al diseño
- flexibilidad
- extensibilidad
TIPOLOGÍA DE MODELOS
- Modelo de objetos
- Modelo dinámico
- Modelo funcional
MODELO DE OBJETOS
MODELO DINÁMICO
- Secuenciación de operaciones:
- secuencias de sucesos,
MODELO FUNCIONAL
- Los tres tipos de modelos son ortogonales entre sí: describen tres
aspectos distintos del sistema, pero estrechamente relacionados
entre sí:
- al lenguaje natural
- a notaciones específicas, adecuadas al dominio del
problema
Modelización de objetos
Objetos
Clases
- propiedades (atributos)
- comportamiento (operaciones)
- relaciones con otros objetos
- significado (p. ej., un cuadro y un caballo pueden ser
considerados como bienes económicos, pero ...)
- Clases
- Objetos o instancias
Rumbaugh Coad/Yourdon
Atributos
Persona
nombre :cadena
edad :entero
(Persona) (Persona)
Rumbaugh Coad/Yourdon
OPERACIONES
MÉTODOS
- Representación:
Persona
nombre :cadena
edad :entero
comprar
ENLACES Y ASOCIACIONES
- la misma estructura
- la misma semántica
REPRESENTACION DE ASOCIACIONES
nombre nombre
Diagrama de instancias:
Francia París
Proyecto Lenguaje
Persona
REPRESENTACIÓN DE LA CARDINALIDAD
DE LAS RELACIONES
Persona Coche
posee
Persona Marcap..
posee
REPRESENTACIÓN DE LA CARDINALIDAD
DE LAS RELACIONES (2)
accesible-por
Fichero Usuario
tipo de permiso
(leer/escribir/ejecutar)
puesto
salario
equipo
portero año
tiros parados
goles encajados
CLASES DE ASOCIACIONES
equipo
usuario máquina
autorización
prioridad
privilegios
abrir sesión
ROLES
empleado compañía
persona contratante
trabaja-para
AGREGACIÓN
- propiedades:
- transitividad
- antisimetría
- propagación a algunas partes de algunas propiedades del
compuesto
- Representación:
GENERALIZACIÓN Y HERENCIA
REPRESENTACIÓN DE LA GENERALIZACIÓN
Motor
tipo de energía
tipo de combustible
Gasolina Gasoil
MÓDULOS
HOJAS
Modelización Dinámica
Referencias:
Rumbaugh, 91
MODELIZACIÓN DINÁMICA
- Diagrama de estados:
SUCESOS
ESCENARIOS
EJEMPLO DE ESCENARIO
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
ESTADOS
ESTADOS (2)
- 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
DIAGRAMAS DE ESTADO
- Forma general:
suceso1(atributos)[condición]/acción
Estado1 Estado 2
Init
• Juegan blancas jaque-mate ~ Blancas ganan
CONDICIONES
- Ejemplo:
tiempo
tiempo tiempo[no hay coches izq. E/W]
OPERACIONES
- Actividades:
- 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
- Generalización:
- Agregación:
- Máquina expendedora:
introd. monedas/contar
liberada liberado
z hacer: liberar columna hacer: liberar paquete ~
GENERALIZACIÓN DE ESTADOS
GENERALIZACIÓN DE SUCESOS
ACCIONES INTERNAS
- Un suceso puede hacer que se ejecute una acción sin que cambie
el estado
TRANSICIÓN AUTOMÁTICA
ENVÍO DE SUCESOS
CONCURRENCIA
Modelización Funcional
Rumbaugh, 91;
Yourdon, E. (1989), Modern Structured Analysis, Yourdon Press
De Marco (1979), Structured Analysis and Systems Specification,
Prentice Hall
-entradas extenas
- operaciones
- almacenes internos
- salidas externas
DFDs
- Contiene:
DFDS ANIDADOS
PROCESOS
- Los procesos de nivel más bajo son funciones puras sin efectos
colaterales
FLUJOS DE DATOS
ACTORES
ALMACENES DE DATOS
FLUJOS DE CONTROL
ESPECIFICACIÓN DE OPERACIONES
- 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
Tipos de transformaciones:
- Operaciones no triviales:
- queries:
- acciones:
- actividades
RESTRICCIONES
Análisis
--------------------------------------------------------------------------------
-
Bibliografía
--------------------------------------------------------------------------------
-
- 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
--------------------------------------------------------------------------------
-
- 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:
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
- 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:
Implementación
- 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