Está en la página 1de 4

DISEO ORIENTADO A LOS OBJETOS

1. CONCEPTOS DEL DISEO ORIENTADO A OBJETOS


Diseo orientado a objetos es una fase de la metodologa orientada a objetos para
el desarrollo de Software. Su uso induce a los programadores a pensar en trminos
de objetos, en vez de procedimientos, cuando planifican su cdigo. Un objeto
agrupa datos encapsulados y procedimientos para representar una entidad. La
'interfaz del objeto', esto es, las formas de interactuar con el objeto, tambin es
definida en esta etapa. Un programa orientado a objetos es descrito por la
interaccin de esos objetos. El diseo orientado a objetos es la disciplina que
define los objetos y sus interacciones para resolver un problema de negocio que
fue identificado y documentado durante el anlisis orientado a objetos.

Todos los mtodos de diseo intentan desarrollar software basndose en:


Abstraccin
Ocultamiento de informacin
Modularidad

1.1. OBJETOS, OPERACIONES Y MENSAJES


El funcionamiento del software se consigue al actuar uno o ms procesos sobre
una estructura de datos de acuerdo con un procedimiento de invocacin.
Para conseguir un DOO, tenemos que establecer un mecanismo para:
Representar la estructura de datos
Especificar el proceso
Realizar el procedimiento de invocacin
Objeto: un objeto se define como la unidad que en tiempo de ejecucin realiza las
tareas de un programa. Tambin a un nivel ms bsico se define como la instancia
de una clase. Estos objetos interactan unos con otros, en contraposicin a la
visin tradicional en la cual un programa es una coleccin de subrutinas
(funciones o procedimientos), o simplemente una lista de instrucciones para el
computador. Cada objeto es capaz de recibir mensajes, procesar datos y enviar
mensajes a otros objetos de manera similar a un servicio.
Mensajes: Los mensajes se muestran como flechas etiquetadas unidas a los
enlaces. Cada mensaje tiene un nmero de secuencia, una lista opcional de
mensajes precedentes, una condicin opcional de guarda, un nombre y una lista de
argumentos y un nombre de valor de retorno opcional. El nombre de serie incluye
el nombre (opcional) de un hilo. Todos los mensajes del mismo hilo se ordenan
secuencialmente. Los mensajes de diversos hilos son concurrentes a menos que
haya una dependencia secuencial explcita.

1.2. ASPECTOS DE DISEO


Debemos de considerar cinco criterios:
Descomponibilidad: Facilidad con la que un mtodo de diseo ayuda al
diseador a descomponer un problema en subproblemas ms sencillos.
Componibilidad: Grado en el que un mtodo de diseo permite la
reutilizabilidad de mdulos.
Compresibilidad: Facilidad para comprender un componente del
programa sin tener que hacer referencia a otros mdulos.
Continuidad: Capacidad de realizar cambios en un programa y que esos
cambios afecten a un nmero mnimo de mdulos.
Proteccin: Caracterstica arquitectnica que reduce la propagacin de
errores.
Adems se debe de considerar cinco principios:
Unidades modulares
Pocas interfaces
Interfaces pequeas
Interfaces explicitas
Ocultamiento de informacin

1.3. CLASES, INSTANCIAS Y HERENCIA

La idea es construir computadoras (ordenador) con piezas de fcil


sustitucin que utilizan interfaces estandarizadas. Esto le permite
actualizar ciertos aspectos de la computadora con facilidad sin tener que
comprar otro equipo por completo. Una computadora es realmente uno de
los mejores ejemplos de diseo modular - mdulos tpicos son la Fuente de
alimentacin (computadora), procesadores, placas base, tarjetas grficas,
discos duros, unidades pticas, etc. Todas estas partes deben ser
fcilmente intercambiables, siempre que se utilicen partes que apoyen la
misma interfaz estndar como la parte que ha reemplazado. El uso de
clases, subclases y herencia tiene mucha importancia en la Ingeniera del
Software moderna. La reutilizacin de componentes del software (que nos
permite conseguir la componibilidad) se lleva a cabo creando objetos
(instancias) que se forman sobre los atributos y las operaciones de una
clase o una subclase. Slo hay que especificar cules son las diferencias
entre el objeto nuevo y la clase, en vez de tener que volver a definir todas
las caractersticas del objeto.

Las implementaciones en software de objetos del mundo real se hacen de


forma muy similar. Todos los objetos son miembros de una clase mayor y
heredan la estructura de datos privada y las operaciones que se hayan
definido para esa clase.
Es decir una clase es un conjunto de objetos que tienen las mismas
caractersticas. As, un objeto es una instancia de una clase mayor.

1.4. DESCRIPCIN DE LOS OBJETOS


La descripcin del diseo de un objeto (una instancia de una clase o de una
subclase) est compuesta de dos partes:
Descripcin de la interfaz: Establece la interfaz del objeto, definiendo
los mensajes que puede recibir el objeto y las operaciones que puede
realizar cuando el objeto recibe el mensaje.
Descripcin de la implementacin: Muestra los detalles de cada una
de las operaciones implicadas como consecuencia de la recepcin de un
mensaje.
Los detalles de implementacin incluyen informacin sobre la parte
privada del objeto, es decir, los detalles de las estructuras de datos y los
detalles procedimentales que describen las operaciones.
La descripcin de la interfaz son un conjunto de mensajes con sus
comentarios correspondientes.
La descripcin de la implementacin debe contener la informacin
suficiente para que se puedan manejar de forma adecuada todos los
mensajes recibidos en la descripcin de la interfaz.
A la diferencia entre la forma de especificar qu es lo que se desea y cmo
se proporciona ese servicio es lo que se conoce como encapsulacin.

2. METODOS DE DISEO ORIENTADOS A OBJETOS


Pasos del Diseo Orientado a Objetos
1. Definicin del problema
2. Desarrollo informal de la forma de procesamiento para la realizacin del
software.
3. Formalizacin de la forma de procesamiento
Identificar los objetos y sus atributos
Identificar las operaciones de los objetos
Establecer las interfaces que muestren las relaciones entre los objetos y las
operaciones
Crear un diseo detallado que proporcione una descripcin de la
implementacin de los objetos.

3. DEFINICIN DE CLASES Y DE OBJETOS

CLASE; una clase es una construccin que se utiliza como un modelo (o plantilla)
para crear objetos de ese tipo. El modelo describe el estado y el comportamiento
que todos los objetos de la clase comparten. Un objeto de una determinada clase se
denomina una instancia de la clase. La clase que contiene (y se utiliz para crear)
esa instancia se puede considerar como del tipo de ese objeto, por ejemplo, una
instancia del objeto de la clase "Persona" sera del tipo "Persona".

Una clase por lo general representa un sustantivo, como una persona, lugar o
(posiblemente bastante abstracta) cosa - es el modelo de un concepto dentro de un
programa de computadora. Fundamentalmente, encapsula el estado y el
comportamiento del concepto que representa. Encapsula el estado a travs de
marcadores de datos llamados atributos (o variables miembro o variables de
instancia), encapsula el comportamiento a travs de secciones de cdigo
reutilizables llamados mtodos.

Por ejemplo:

class Nombre {
// Variables miembro (habitualmente privadas)
miembro_1; //lista de miembros
miembro_2;
miembro_3;

// Funciones o mtodos (habitualmente pblicas)


funcion_miembro_1( ); // funciones miembro conocidas
funcion_miembro_2 ( ); // funciones como mtodos

// Propiedades (habitualmente pblicas)


propiedad_1;
propiedad_2;
propiedad_3;
propiedad_4;
OBJETO; un objeto se define como la unidad que en tiempo de ejecucin realiza las tareas
de un programa. Tambin a un nivel ms bsico se define como la instancia de una clase.
Estos objetos interactan unos con otros, en contraposicin a la visin tradicional en la
cual un programa es una coleccin de subrutinas (funciones o procedimientos), o
simplemente una lista de instrucciones para el computador. Cada objeto es capaz de
recibir mensajes, procesar datos y enviar mensajes a otros objetos de manera similar a un
servicio.
Por ejemplo:

int a,b;

( 'int' es un tipo de dato y 'a' y 'b' son variables de tipo entero con las que podemos
operar)
class Aritmetica:

def sumar(self, a, b):


return a + b

def restar(self, a, b):


return a b

def multiplicar(self, a, b):


return a * b

def dividir(self, a, b):


return a / b

4. PROCESO DEL ANALISIS Y DISEO ORIENTADO A LOS OBJETOS

El resultado del diseo orientado a objetos es una jerarqua de clases. Los


elementos iniciales de un DOO son los propios objetos, y posteriormente, a medida
que se van identificando aspectos comunes, los objetos se van agrupando en clases,
que a su vez sern subclases de clases ms abstractas.

4.1. PASOS DEL DOO

Identificacin y definicin de objetos y clases


Organizacin de relaciones entre clases
Extraccin de estructuras en una jerarqua de clases
Construccin de bibliotecas de clases reutilizables

4.2. IDENTIFICACIN Y DEFINICIN DE OBJETOS


El principal problema del desarrollo de un sistema orientado a objetos es
encontrar los objetos en la fase de AOO y DOO.
Definicin del problema
Descripcin de la solucin
Identificacin de los posibles objetos
Asociacin de atributos a los objetos
Asociacin de atributos a los objetos
Identificacin de los posibles mtodos
Asociacin de los mtodos a los objetos
Definicin de las interfaces entre objetos
Conclusiones sobre el mtodo de Booch
Directrices para la identificacin y definicin de clases y mtodos

También podría gustarte