Significa que el soft se organiza como una
colección de objetos discretos que contiene tanto estructura de
datos como también un comportamiento, sus características son:
- Identidad: Los datos
están cuantificados en entidades discretas y
distinguibles denominadas objetos, por ejemplo una persona, los
objetos pueden ser tangibles (como un archivo) o
intangibles. - Clasificación: Los objetos con la misma
estructura
de datos
(atributos) y comportamiento (operaciones) se
agrupan para formar una misma clase, se dice que cada objeto es
una instancia de su propia clase, y una clase es una
abstracción que describe propiedades importantes para
una aplicación y se olvida del resto. - Polimorfismo: Significa que una misma
operación puede comportarse de modos distintos en
distintas clases, una operación es una acción o
transformación que se aplica a un objeto - Herencia: Comparte atributos y operaciones
entre clases tomando como base una relación
jerárquica, es decir que puedo definir una clase que
después producirá subclases, sabiendo que todas
las subclases adquirirán todas y cada una de las
propiedades de su super-clase y le agrega además sus
propiedades exclusivas
Clases de modelos para
describir el sistema
- Modelo de objeto: Gráfico cuyos nodos
son clases de objetos y cuyos arcos son relaciones entre
clases. - Modelo dinámico: Gráfico cuyos
nodos son estados y cuyos arcos son transiciones entre estados
causados por sucesos. - Modelo funcional: Son gráficos cuyos
nodos son procesos y
cuyos arcos son flujos de datos.
Que representa cada uno de los
modelos
- Modelo de objeto: Representa los aspectos
estáticos, estructurales de datos del sistema. - Modelo dinámico: Representa los
aspectos temporales de comportamiento del sistema. - Modelo funcional: Representa los aspectos
transformacionales de función del sistema.
Relaciones entre
modelos
El modelo de
objeto describe las estructuras de
datos sobre las cuales operan los modelos dinámicos
y funcional, las operaciones del modelo de
objeto se corresponden con sucesos en el modelo
dinámico y con funciones en el
modelo funcional.
Modelado de objeto
El propósito del modelado de objeto es describir
los objetos, un objeto es una abstracción con
límites bien definidos y con significado a efectos del
problema que se tenga entre manos.
Clase: Una clase de objeto describe un grupo de
objetos con atributos similares, con relaciones comunes con otros
objetos y con una semántica común.
Diagrama de objetos: Proporciona una
notación gráfica formal para el modelado de
objetos, de clases y sus relaciones entre si.
Diagrama de clases: Describen las clases de
objetos, es un esquema para describir muchas instancias de
datos.
Diagrama de instancias: Describen la forma en que
un cierto conjunto de objeto se relaciona entre si
clase | objeto |
Persona | García, Juan Daniel |
Atributos
Es un valor de un
dato que está almacenado en los objetos de una clase, los
atributos deberán ser valores puros
de datos y no objetos, se enumeran en la segunda parte del cuadro
de clases, el nombre de cada atributo puede ir seguido por
detalles como el tipo y el valor por
omisión, los cuales son precedidos por dos puntos
(:) y por el sigo igual (=), en algunos casos se
pueden omitir los atributos en los modelos de
objetos (depende del grado de detalles)
Ejemplo:
Persona |
| (persona) |
| (persona) |
Nombre: Cadena Edad: Entero |
| Juan García 24 |
| José Pérez 22 |
Operaciones y métodos: Una operación es una
función o transformación que puede ser aplicada por
los objetos de una clase, todos los objetos de una clase
comparten las mismas operaciones y una misma operación
puede aplicarse a clases distintas, cada operación es
polimórfica, es decir que una misma operación
adopta distintas formas en distintas clases.
Un Método es
la implementación de una operación para una clase,
por ejemplo la clase archivo puede
tener la operación imprimir y se puede implementar
de distintos métodos
para hacerlo (ASCII, binario,
etc.), todos los métodos realizan la misma tarea lógica.
Operaciones en las clases: Las operaciones que
únicamente calculan un valor funcionas sin modificar
ningún objeto se denomina consulta.
Resumen de la notación del
modelo de objeto para clases:
Nombre de la clase |
Nombre del atributo 1 : tipo de dato 1 = valor por Nombre del atributo 2 : tipo de dato 2 = valor por |
Nombre de la operación 1 (lista de Nombre de la operación 2 (lista de |
Enlaces y asociaciones
Son los medios para
establecer relaciones entre objetos y clases, un enlace es una
conexión física o conceptual
entre instancias de objetos, matemáticamente se define
como un ente ordenado de instancias de objetos, un enlace es una
instancia de una asociación, esta describe un grupo de
enlaces con estructura y
semántica comunes, las asociaciones describen un conjunto
de enlaces potenciales, del mismo modo que las clases describen
un conjunto de objetos potenciales, y suelen implementarse en los
lenguajes de
programación como punteros que van de un objeto a
otro. La notación para las asociaciones es una
línea entre clases, y los enlaces es una línea
entre objetos, el nombre de la asociación se pone en
cursiva.
Ejemplo (asociación uno a uno):
Definición de clases
país | Capital | ciudad |
nombre |
| nombre |
Definición de instancias
(país) | Capital | (ciudad) |
Francia |
| París |
Multiplicidad
Limita el número de objetos relacionados, los
diagramas de
objetos lo indican mediante símbolos al final de la
línea de asociación, subestimar la multiplicidad
puede evitar la flexibilidad de una aplicación, una
subestimación de la misma impone gastos
adicionales extraordinarios.
Conceptos avanzados de enlaces y
asociaciones
Un atributo de un enlace es una propiedad de
los enlaces de una asociación. Todo atributo de enlace
tiene un valor para cada enlace.
Rol
Es un nombre que identifica en forma única un
extremo de la asociación, el uso de nombres de rol
proporciona una forma de recorrer las asociaciones desde un
objeto de un extremo sin mencionar explícitamente la
asociación, los roles pueden aparecer como sustantivos en
la descripción del problema.
Clasificación
Normalmente los objetos del lado muchos en una
asociación no tienen un orden explícito y se pueden
considerar como un conjunto, la clasificación es una parte
inherente de la asociación, si es un conjunto ordenado de
objetos se escribe ordenado o clasificado al lado
del símbolo de multiplicidad.
Cualificación
Una asociación cualificada relaciona dos clases
de objetos y una cualificada, este es un atributo especial que
reduce la multiplicidad efectiva de una asociación, las
asociaciones 1 a N o N a M pueden ser
cualificadas, las cuales también se pueden considerar como
una forma de asociación ternaria.
Agrupación
Es una forma fuerte de asociación, los
componentes de algo se asocian a un objeto que representa el
ensamblaje completo. La agrupación es una forma especial
de asociación, no un concepto
independiente, si dos objetos están acoplados mediante una
relación todo – parte se trata de una
agrupación, si los dos objetos suelen considerarse
independientes entonces se trata de una asociación; entre
las pruebas
distintivas se incluye:
- Utilizaría Ud. la frase "parte –
de". - Hay algunas operaciones (del todo) que se aplican
automáticamente a las partes. - Hay algunos valores de
atributos (del todo), que se propagan del todo a todas
las partes o a algunas de ellas. - Existe una asimetría intrínseca de la
asociación de tal modo que una clase de objeto sea
subclase de otra.
Arbol de
agrupación
Es una notación taquigráfica que resulta
mucho más sencilla de dibujar que muchas líneas que
contienen los componentes para formar un ensamblado.
Agregados recursivos
Una agregación puede ser fija, variable o
recursiva, los agregados fijos tienen una estructura fija que
será el número y tipo de las partes componentes que
están predeterminadas, los agregados variables
tienen un número finito de niveles, pero el número
de partes puede variar, los agregados recursivos contienen
directa o indirectamente una instancia de esa misma clase de
agregado, el número de niveles es ilimitado, la forma
habitual de un agregado recursivo es una superclase y dos
subclases en las cuales una es un nodo intermedio del agregado y
otra es un nodo terminal del agregado
Generalización y
herencia
Son potentes abstracciones para compartir similitudes
entre clases al mismo tiempo que se
mantienen sus diferencias, la generalización es la
relación entre una clase y una o más reuniones de
esa misma clase que conecta a la superclase con sus subclases, la
leyenda a la par del triángulo son discriminadores que
indica que propiedad del
objeto está siendo abstraído por una
relación de generalización en
particular.
la herencia ha
llegado a ser un sinónimo de reutilización del
código dentro de la programación orientada a objeto,
frecuentemente hay un código que está disponible de
trabajos anteriores (biblioteca), la
aplicación más importante es la
simplificación conceptual que proviene de reducir el
número de características independientes dentro del
sistema.
La generalización y especialización son
dos puntos de vistas distintos, la primera proviene del hecho de
que la superclase generaliza a la subclase y la segunda hace
alusión al hecho de que la subclase especializa a la
superclase, una subclase puede anular una característica
de una superclase definiendo una característica del mismo
nombre, se hace para obtener un mejor rendimiento.
Herencia
múltiple
Permite que una clase tenga más de una superclase
y que herede características de todas ellas, esto permite
mezclar información procedente de dos o mas
fuentes, una
clase con más de una superclase se denomina clase
unión.
Módulo
Es una construcción lógica
para agrupar clases, asociaciones y generalizaciones, sus
límites son ligeramente arbitrarios y son materia
opinable, el nombre del módulo debe especificarse en la
parte superior de la hoja, los módulos nos permiten
descomponer al modelo en segmentos manejables.
Hojas
Una hoja es el mecanismo para descomponer un modelo de
objetos grande, en un conjunto de páginas; por lo general
no pondremos más de un módulo por folio, una hoja
es una notación cómoda, no una
estructura lógica.
Clases abstractas
Es una clase que no tiene instancias directas, en
cambio una
clase concreta puede unir instancias discretas, una clase
concreta puede formar subclases abstractas.
Metadatos
Son datos que describen datos, por ejemplo: La
definición de clases, los módulos, los planos,
etc.
Claves candidatas
Es un conjunto mínimo de atributos que definen de
manera unívoca un objeto. Una clase puede tener más
de una clave candidata, cada una de las cuales tendrá
distintas combinaciones y número de atributos.
La etiqueta de un objeto es siempre una clave candidata
de una clase, para las asociaciones son claves candidatas una o
más combinaciones de objetos relacionados.
Modelo Dinámico
Los aspectos del sistema que están relacionados
con los tiempos y con los cambios constituyen lo modelos
dinámicos, los conceptos más importantes del
modelado dinámico son: Los recursos
(estímulos externos) y los estados (valores de los
objetos).
Sucesos y enlaces
Estados: Son los valores de
los atributos y de los enlaces mantenidos por un objeto, un
diagrama de
estado es una
red de estados y
recursos, el
modelo dinámico consta de múltiples diagramas de
estado, cada
uno de ellos para cada clase que contenga un comportamiento
dinámico importante y muestre la actividad del
sistema.
Suceso: Es algo que transcurre durante un
período de tiempo (ej. "el
vuelo 341 sale a Córdoba"); dos sucesos que no tienen
relación causal son concurrentes, no tienen efecto entre
sí, un suceso es una transmisión de información de dirección única entre un objeto y
otro.
Todo suceso se agrupa en clases a los que se les da un
nombre para una comodidad de estructura (jerárquica) y de
comportamiento, todo suceso aporta información de un
objeto a otro, los valores de
los datos aportados son sus atributos.
Escenario: Es una secuencia de sucesos que se
producen durante una ejecución completa de un sistema, el
ambiente puede
incluir a todos los sucesos o solo a aquellos que afecten a
algunos objetos del sistema, el paso siguiente a la escritura de
un escenario consiste en identificar a los objetos emisores y
receptores de cada suceso. Los objetos que intercambian sucesos
se pueden mostrar en un ambiente
mejorado llamado diagrama de segmentos de trazos de
sucesos.
Actividad: Es una operación cuya
realización requiere un cierto tiempo, toda actividad esta
asociada a un estado; entre las actividades se encuentran las
operaciones continuas, un estado puede controlar una actividad
continua, la cual persiste hasta que se produce un suceso que le
da fin, produciendo una transición que sale de ese
estado
Acción: Es una operación
instantánea que va asociada a un suceso, las acciones
también pueden representar operaciones internas de
control, tales
como dar un valor a un atributo o generar otros sucesos, estas
acciones son
mecanismos para estructurar el control dentro de
una implementación.
Relación entre los modelos de
objetos y dinámicos
Los sucesos se pueden representar como operaciones en el
modelo de objeto. Un solo objeto puede tener distintos estados a
lo largo del tiempo, pero no puede tener distintas clases. Las
diferencias inherentes entre objetos son modelados correctamente
como clases distintas, mientras que las diferencias temporales
son modelados correctamente como distintos estados entre los
miembros de una misma clase.
Algunos consejos:
- Solo hay que construir diagramas de estados para las
clases que tengan un comportamiento
dinámico. - Para comenzar la construcción del diagrama de
estado hay que utilizar escenarios como ayuda. - Solo hay que considerar los atributos
relevantes - Solo hay que dejar que la aplicación distinga
acciones y actividades. - Cuando un estado tiene múltiples transiciones
entrantes y todas hacen que se produzca una misma
acción, hay que poner las acciones dentro de cuadros de
estados, anteponiendo el suceso de entrada en lugar de
enumararlas en arcos de transición (lo mismo para los
sucesos de salida). - Intente hacer que los diagramas de estado de las
subclases sean independientes de los diagramas de estados de
sus superclases, estas deberían concentrarse en los
atributos exclusivos de esas subclases.
Modelo funcional
Muestra la forma
en la que se derivan los valores producidos en un cálculo a
partir de los valores introducidos, sin tener en cuenta el orden
en que se calculan, consta de múltiples DFD que muestran
el flujo de valores desde las entradas externas a través
de las operaciones y almacenes hasta
las salidas externas, las DB suelen tener un modelo funcional no
importante.
DFD: Muestra las
relaciones funcionales entre los valores calculados por un
sistema incluyendo los valores introducidos, los obtenidos y los
almacenes
internos de datos. Un DFD contiene procesos que
transforman datos, flujos de datos, objetos actores que producen
y consumen datos y almacenes de datos que los almacenan en forma
pasiva.
Procesos: Transforma valores de datos, los de
bajo nivel son funciones puras
sin efectos laterales, un gráfico completo e un flujo de
datos es un proceso de
alto nivel y pueden tener efectos laterales como almacenes de
datos de objetos externos.
Flujo de datos: Conecta la salida de un objeto o
proceso con la
entrada de otro objeto o proceso, se dibuja como flechas entre el
productor y el consumidor (de
valores de datos). La flecha esta rotulada con una
descripción de los datos.
Actores: Es un objeto activo que controla el
gráfico de flujo de datos produciendo o consumiendo
valores, están asociados a las entradas y a las salidas
del gráfico de flujo de datos, se denominan también
terminador.
Almacén de datos: Es un objeto pasivo
dentro de un DFD, a diferencia de los actores no genera ninguna
operación por si mismo, sino que almacena y accede a
datos.
Gráficamente: dos líneas paralelas
y un nombre nombre
Flujo de control: Un diagrama de flujo
de control muestra todas las posibles vías de computación para los valores, no muestra
cuales son las vías que se ejecutan ni en que orden, se
muestran con una línea discontinua que va de un proceso
que produce un valor hasta el que se está
controlando.
Este es un resumen de la materia
homónima dictada en el año 1997 en la Universidad
Tecnológica Nacional – Facultad Regional Tucumán,
ciudad de San Miguel de Tucumán – Argentina
Autor:
Carlos A. Ijelchuk