Descargar

Software orientado a Objetos

Enviado por ijelchuk


    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:

    1. 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.
    2. 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.
    3. 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
    4. 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

    1. Modelo de objeto: Gráfico cuyos nodos son clases de objetos y cuyos arcos son relaciones entre clases.
    2. Modelo dinámico: Gráfico cuyos nodos son estados y cuyos arcos son transiciones entre estados causados por sucesos.
    3. Modelo funcional: Son gráficos cuyos nodos son procesos y cuyos arcos son flujos de datos.

    Que representa cada uno de los modelos

    1. Modelo de objeto: Representa los aspectos estáticos, estructurales de datos del sistema.
    2. Modelo dinámico: Representa los aspectos temporales de comportamiento del sistema.
    3. 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 omisión 1

    Nombre del atributo 2 : tipo de dato 2 = valor por omisión 2

    Nombre de la operación 1 (lista de argumentos 1) : tipo de resultado 1

    Nombre de la operación 2 (lista de argumentos 2) : tipo de resultado 2

    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:

    1. Utilizaría Ud. la frase "parte – de".
    2. Hay algunas operaciones (del todo) que se aplican automáticamente a las partes.
    3. Hay algunos valores de atributos (del todo), que se propagan del todo a todas las partes o a algunas de ellas.
    4. 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:

    1. Solo hay que construir diagramas de estados para las clases que tengan un comportamiento dinámico.
    2. Para comenzar la construcción del diagrama de estado hay que utilizar escenarios como ayuda.
    3. Solo hay que considerar los atributos relevantes
    4. Solo hay que dejar que la aplicación distinga acciones y actividades.
    5. 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).
    6. 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