Documente Academic
Documente Profesional
Documente Cultură
Tecnologa de Objetos
El Modelo Basado en Objetos se ha convertido en uno de los impulsores de la Industria del
Software durante la dcada de los noventa.
A pesar de la reciente profusin de aplicaciones, herramientas y lenguajes que soportan,
emplean o se han construido tomando como base el Modelo de Objetos, los conceptos bsicos
del mismo se originaron en la dcada del 60.
Por ejemplo, el lenguaje SIMULA, uno de los precursores en el concepto de objetos fue
desarrollado en 1967.
El Modelo de Objetos
Los conceptos bsicos del Modelo de Objetos se originaron con la definicin de lenguajes que
incorporan conceptos tales como:
Encapsulamiento
Modularidad
Abstraccin
Polimorfismo
1 AS Silvio Moschen
Metodologa de Sistemas 3 Ao Carrera Analista en Sistemas de Computacin
Paradigmas de Programacin
Un paradigma es una forma de representar y manipular el conocimiento. En nuestro contexto,
representa un enfoque particular o filosofa para la construccin del software.
Algunos ejemplos de paradigmas de programacin:
El paradigma estructurado es considerado el ms comn y est representado, por
ejemplo, por el C o por BASIC.
El paradigma funcional est representado por la familia de lenguajes LISP, en
particular Scheme.
El paradigma lgico, un ejemplo es PROLOG.
El paradigma orientado a objetos. Un lenguaje completamente
orientado a objetos es Smalltalk.
El Progreso de la Abstraccin
Todo paradigma de programacin implica cierta abstraccin
Evolucin de los paradigmas mayor nivel de abstraccin
Paradigma estructurado:
Abstraccin principal exige una asociacin entre modelo de mquina y modelo del
problema.
Modelo mental basado en el comportamiento (verbos)
Paradigma orientado a objetos:
Abstraccin consiste en modelar el mundo real (dominio del problema) ajustndose a
la perspectiva del pensamiento del ser humano.
Modelo basado en entidades, objetos (sustantivos)
Programacin Estructurada
La programacin estructurada tradicional, propia del paradigma imperativo, se basa
fundamentalmente en la ecuacin de Wirth:
Programas = Algoritmos + Estructuras de Datos
Enfoque sobre el diseo de los procedimientos, es decir, sobre el CMO.
Problemas:
Dificultad para escribir programas complejos
Dificultad para modificar y extender los programas
Alto costo de mantenimiento
Dificultad para reutilizar programas
Encapsulamiento
Es la propiedad que asegura que la informacin de un mdulo esta oculta al mundo
exterior.
2 AS Silvio Moschen
Metodologa de Sistemas 3 Ao Carrera Analista en Sistemas de Computacin
Abstraccin de Datos
La abstraccin de datos es la tcnica de programacin que permite definir nuevos tipos de
datos, adecuados para la aplicacin
Tecnologa de Objetos
Disear programas empleando el concepto de TDA consiste en:
Decidir qu TIPOS SE REQUIEREN; y proveer un para cada uno de los mismos
Lenguajes que permiten definir tipos de datos abstractos:
Mecanismo
Simula 67 - clase
Modula2 - mdulo
Ada - paquete (package)
Smalltalk - clase
C++ - clase
Object Pascal - clase
Java - clase
3 AS Silvio Moschen
Metodologa de Sistemas 3 Ao Carrera Analista en Sistemas de Computacin
Un Objeto posee:
ESTADO
Nombre, Edad, Peso, Altura, Domicilio
COMPORTAMIENTO
Escala, Corre, Trabaja,
INDENTIDAD
perezanalia
4 AS Silvio Moschen
Metodologa de Sistemas 3 Ao Carrera Analista en Sistemas de Computacin
(3+4) imprimir
(numero1+numero2) imprimir
CLASIFICACIN
Naturalmente, muchos objetos tendrn caractersticas semejantes.
6 AS Silvio Moschen
Metodologa de Sistemas 3 Ao Carrera Analista en Sistemas de Computacin
Qu es una Clase?
Una clase contiene la descripcin de las caractersticas comunes de todos los objetos que
pertenecen a ella:
la especificacin del comportamiento
la definicin de la estructura interna
la implementacin de los mtodos
{Estado =
finalizado
ifTrue: [self
Archivar];
.
.
7 AS Silvio Moschen
Metodologa de Sistemas 3 Ao Carrera Analista en Sistemas de Computacin
Caractersticas de un Objeto
ATRIBUTOS (dato privado): son variables para las cuales el almacenamiento local est
disponible en las instancias. Todos los objetos que son instancias de la clase
comparten la misma descripcin de la variable.
ATRIBUTOS DE CLASE (dato compartido): son variables almacenadas en la clase, cuyo
valor es compartido por todas las instancias de esa clase.
CONJUNTO DE MTODOS todos los objetos que son instancias de una clase dada
tienen los mismos mtodos, por lo tanto, respondern al mismo conjunto de
mensajes.
Protocolo de Mensaje
Es el conjunto de mensajes a los cuales un objeto puede responder.
Las formas en las cuales un objeto puede actuar y reaccionar, constituyen la vista
exterior del mismo.
8 AS Silvio Moschen
Metodologa de Sistemas 3 Ao Carrera Analista en Sistemas de Computacin
Generalizacin / Especializacin
Un conjunto de clases que poseen caractersticas generales (que pertenecen a ms de una
clase), y caractersticas particulares (que pertenecen a algunas)
Herencia de Clases
Herencia
Es el concepto en Lenguajes Orientados a Objetos (LOO) que es usado para definir
objetos que son "casi como" otros ya existentes, con unos pocos cambios.
Una clase C definida como heredera de una clase A, tiene todas las caractersticas de
A, a las que puede agregar las propias.
Herencia es la capacidad de una clase C de acceder a los componentes de otra ms
general A (nivel superior en la jerarqua) considerndolos como propios e inclusive
pudiendo redefinirlos.
Un caso de Herencia
9 AS Silvio Moschen
Metodologa de Sistemas 3 Ao Carrera Analista en Sistemas de Computacin
Tipos de Herencia
HERENCIA SIMPLE
En una jerarqua, una clase es definida en trminos de una sola superclase inmediatamente
superior
HERENCIA MULTIPLE
Es el caso en que una clase hereda de dos o ms clases, que no estn relacionadas como una
superclase y una subclase una de otra.
Problemas de la herencia mltiple
* Las superclases definen operaciones para el mismo mensaje
* Las superclases heredan de una superclase comn
10 AS Silvio Moschen
Metodologa de Sistemas 3 Ao Carrera Analista en Sistemas de Computacin
Polimorfismo
Es la capacidad de las diferentes clases de objetos para responder al mismo protocolo.
Habilita al programador para tratar uniformemente objetos que provienen de clases
diferentes.
Permite enviar el mismo mensaje a objetos diferentes y que cada uno responda en la
forma apropiada segn el tipo de objeto que sea, ejecutando su mtodo.
El polimorfismo est asociado a la ligadura dinmica. La asociacin de un mtodo con su
nombre no se determina hasta el momento de su ejecucin.
Objetos Compuestos
Estn especificados por una clase que contiene la descripcin que indica las clases de
las partes y las interconexiones.
El proceso de instanciacin crea las instancias correspondientes a todas las partes de la
descripcin.
El proceso de instanciacin es recursivo, por lo tanto, un objeto compuesto puede ser
usado a su vez como componente.
Es posible especializar una descripcin por la adicin de nuevas partes o substitucin
de partes existentes.
Asociaciones
Esta Relacin se da cuando dos Clases se conectan entre si en forma conceptual.
Indica relaciones de mandatos bidireccionales. No establece una direccin de dependencia.
Tiene Cardinalidad.
Una asociacin entre Empleado y Departamento, podr caracterizar la asociacin con la frase:
un empleado trabaja en un departamento
Asociaciones Inversas
En un Diagrama de Clases se puede mostrar direcciones en ambos sentidos, podramos
representar al relacin anterior como:
Una asociacin entre Empleado y Departamento, podr mostrar ambas asociaciones con un
tringulo relleno que indique la direccin de cada asociacin.
12 AS Silvio Moschen
Metodologa de Sistemas 3 Ao Carrera Analista en Sistemas de Computacin
Asociaciones Complejas
Las Asociaciones pueden ser ms complejas que tan solo una clase conectada a otra.
La Restriccin {Or}
Se utiliza para aquellos casos que una Clase tenga una relacin con una u otra. Por ejemplo: un
estudiante de nivel medio puede elegir por un curso acadmico u otro.
Clases de Asociacin
Una Asociacin, al igual que una Clase, puede contener Atributos y Operaciones. De hecho,
cuando esto se da usted tiene una clase de asociacin.
Puede concebir a una clase de asociacin de la misma forma en que lo hara con una clase
estndar, y utilizar una lnea discontinua para conectarla en la lnea de asociacin.
13 AS Silvio Moschen
Metodologa de Sistemas 3 Ao Carrera Analista en Sistemas de Computacin
Vnculos
Un vnculo es la instancia de la asociacin. Conecta a los objetos en lugar de las clases. Deber
subrayar el nombre del vnculo, como se hace con el nombre de un objeto.
Multiplicidad
La multiplicidad seala la cantidad de objetos de una clase que pueden relacionarse con un
objeto de una clase asociada
Agregaciones
La Agregacin es una relacin que indica que una Clase se compone de otras Clases. Los
componentes y las Clases que constituyen son una asociacin que conforma un todo.
Composiciones
En una Composicin es un tipo muy representativo de asociacin. Cada componente dentro de
una composicin puede pertenecer tan solo a un todo.
Interfaces y Realizaciones
Una vez que haya creado varias clases, tal vez se d cuenta que no pertenecen a una clase
principal, pero su comportamiento debe incluir algunas de las mismas firmas de la primera
clase. Podra codificar las operaciones en una clase y reutilizarlas en otras.
15 AS Silvio Moschen
Metodologa de Sistemas 3 Ao Carrera Analista en Sistemas de Computacin
16 AS Silvio Moschen