Sie sind auf Seite 1von 11

La Orientacin a Objetos

Diseo de Software Avanzado Departamento de Informtica

Mtodos Estructurados y Mtodos Orientados a Objetos


Mtodos estructurados

Origen en la programacin estructurada (secuencia, ramificacin, iteracin, funcin). Pensar en trminos de estructuras de datos que son manipuladas mediante algoritmos. Dificultades para adaptarse a requisitos cambiantes. Origen en la programacin orientada a objetos. Ms cercano al mundo real porque imita (supuestamente) su estructura: objetos que responden a mensajes enviados por otros objetos. Ms estable frente a cambios en los requisitos:
responsabilidades de clases. mayor cohesin entre datos y funciones.

Mtodos orientados a objetos

La Orientacin a Objetos

Diseo de Software Avanzado Departamento de Informtica

Principios de la Orientacin a Objetos


Abstraccin
Simplificacin de la realidad. Retener los aspectos relevantes y prescindir del resto. El proceso de abstraccin es relativo a un punto de vista particular.

Clasificacin
Relacin bsica entre clases, y objetos clasificados en clases. Un objeto es instancia de una clase, la clase es su tipo.

Encapsulamiento
Separacin de interfaz e implementacin en una clase.

Generalizacin
La subclase hereda estructura y comportamiento de la superclase.

Polimorfismo
Capacidad de ejecutar distintas operaciones en respuesta al mismo mensaje.

La Orientacin a Objetos

Diseo de Software Avanzado Departamento de Informtica

Abstraccin: Qu es un Objeto?
Representacin, o signo, de una entidad concreta. Caractersticas de un objeto:

Comportamiento: operaciones o servicios que puede realizar, en respuesta a mensajes recibidos de otros objetos. Estado: valores almacenados en el objeto como atributos, que son resultado de las operaciones pasadas. Identidad: todo objeto tiene una identidad propia que lo distingue de otros objetos aunque tengan el mismo estado (no es un valor identificador).

Entrelazamiento de estado y comportamiento. Abstraccin: simplificacin de la realidad.


Retener los rasgos relevantes y prescindir del resto. Operaciones relevantes, valores relevantes.

La Orientacin a Objetos

Diseo de Software Avanzado Departamento de Informtica

Notacin Bsica de los Objetos


Nombre del objeto y de la clase a la que pertenece Mensajes recibidos que invocan operaciones situar(1, 1)

p1 : Punto posicinX = 3 posicinY = -5


Nombre y valores de los atributos mover(+1, -1)

p2 : Punto posicinX = 0 posicinY = 2

Son distinguibles estos objetos despus de responder a los mensajes recibidos?


La Orientacin a Objetos
Diseo de Software Avanzado Departamento de Informtica

Abstraccin: Qu es una Clase?


Representacin de un conjunto de entidades.

Extensin: los objetos. Intensin: definicin o especificacin. Primer nivel (objetos): representacin de entidades concretas.
Slo con sus rasgos relevantes de comportamiento y estado. Prescindir de rasgos no relevantes de comportamiento y estado. Entidad concreta no significa necesariamente entidad fsica o tangible.

Niveles de abstraccin.

Segundo nivel (clases): representacin de conjuntos de entidades.


Definicin o especificacin de los rasgos relevantes. Prescindir de los objetos y valores concretos.

Una clase es la especificacin de un conjunto de objetos con estructura y comportamiento comunes. En el modelo de anlisis, las clases, atributos y operaciones corresponden a conceptos del vocabulario del dominio.
Diseo de Software Avanzado Departamento de Informtica

La Orientacin a Objetos

Notacin Bsica de las Clases


Nombre de la clase

Nombre de los atributos

Nombre de las operaciones

La Orientacin a Objetos

Diseo de Software Avanzado Departamento de Informtica

Clasificacin
Relacin bsica entre clases, y objetos clasificados en clases.

Un objeto es instancia de una clase, la clase es su tipo. La clase se usa como plantilla para construir (instanciar) objetos.

p1 : Punto posicinX = 3 posicinY = -5

p2 : Punto posicinX = 0 posicinY = 2

La Orientacin a Objetos

Diseo de Software Avanzado Departamento de Informtica

Encapsulamiento
Separacin de interfaz e implementacin en una clase.

Atributos privados

Interfaz: vista externa desde otras clases. Implementacin: realizacin interna de las estructuras de datos y funciones.
Operaciones pblicas

Objetivo: reducir el acoplamiento entre clases:


Punto -posicinX -posicinY +situar( ) +mover( ) -dibujar( )

Esconder la implementacin, dependencia slo de la interfaz. Disear teniendo en cuenta slo la interfaz, no la implementacin.

Operaciones privadas (invocadas internamente)

Visibilidad: tpicamente todos los atributos son privados, y las operaciones son pblicas si pertenecen a la interfaz de una clase, o privadas si son para uso interno: slo se permite la comunicacin por mensajes.
La Orientacin a Objetos
Diseo de Software Avanzado Departamento de Informtica

Generalizacin
Relacin bsica entre una superclase y una subclase

Hereda la estructura y el comportamiento (atributos y operaciones), y Puede aadir atributos y operaciones.

Principio de sustitucin: donde se espera una instancia de la superclase se puede poner una instancia de la subclase.
p1 : Punto posicinX = 3 posicinY = -5 Clasificacin Punto -posicinX -posicinY +situar( ) +mover( ) -dibujar( ) PuntoColor -color +colorear( )
La Orientacin a Objetos

Instancia indirecta

p2 : PuntoColor posicinX = 0 posicinY = 2 color = verde

Generalizacin

Instancia directa
Diseo de Software Avanzado Departamento de Informtica

10

Polimorfismo
Capacidad de ejecutar distintas operaciones en respuesta al mismo mensaje. Una operacin polimrfica es aqulla que tiene muchas implementaciones.

La subclase puede modificar la implementacin de las operaciones heredadas. El mismo nombre de operacin puede designar implementaciones distintas. Objetos de distintas clases en el mismo rbol jerrquico tienen operaciones con el mismo nombre pero con diferente implementacin, por tanto pueden responder al mismo mensaje cada uno a su manera.
p1 : Punto Punto -posicinX -posicinY +situar( ) +mover( ) PuntoColor -color +situar( ) +mover( ) +colorear( )
La Orientacin a Objetos

posicinX = 3 posicinY = -5

p2 : PuntoColor

mover(+1, -1)

posicinX = 0 posicinY = 2 color = verde


mover(+1, -1)

Diseo de Software Avanzado Departamento de Informtica

11

Das könnte Ihnen auch gefallen