Sei sulla pagina 1di 20

Paradigma Orientado a Objetos

Orientacin a Objetos: paradigma de computacin que define y organiza el software


basndose en entidades denominadas objetos. Los objetos combinan datos,
comportamiento e identidad.
mbitos del paradigma:
Programacin
Bases de datos
Procesos de desarrollo
Arquitectura
Comunicaciones
Etc.

Elementos del paradigma


Mecanismos que permiten abstraccin, encapsulacin, modularizacin y jerarquizacin.

Objetos y clases
Mensajes y mtodos
Estado y atributos
Herencia y polimorfismo

Objetos y Clases
Clase: descripcin de los datos (atributos) y de las operaciones que describen el
comportamiento de un cierto conjunto de elementos homogneos.

Resultado del proceso de abstraccin.


Molde de infinitos objetos con ciertas caractersticas para crear en el
dominio de la computadora un reflejo del mundo real.

Principio de encapsulacin: vistas.


Pblica o Interfaz: comportamiento; establece a qu operaciones responden los objetos
de esta clase.
Privada o Implantacin: establece las estructuras de datos de la clase y cmo los
manipulan las operaciones.
Objeto: instancia de una clase que responde al comportamiento definido por las
operaciones de la misma. Proyeccin de parte del dominio del problema en la
computadora.
Caractersticas:
Pueden ser: Tangibles (libros) o Intangibles (deudas).
Se identifican unvocamente.
Tienen unos datos propios (atributos) y un comportamiento determinado.

Mensajes y mtodos

Mensaje: invocacin de una operacin sobre un objeto.


Un objeto es el agente activo que lanza el mensaje y otro objeto es el agente pasivo
que recibe el mensaje. Este ltimo debe contemplar dicha operacin entre las definidas
por la clase a la que pertenece.
Puede verse como la solicitud de un servicio a un objeto, que devuelve siempre un
objeto como respuesta.
Mtodo: definicin de una operacin de una clase.
Descripcin formal del comportamiento asociado a un objeto o servicio que ste
ofrece.

Tipos:
producen un cambio en el estado del objeto sobre el que se ejecuta el mtodo.
calculan cierto valor.
mtodos especficos para la inicializacin y finalizacin de la vida de un objeto
(constructores y destructores).
Permiten la colaboracin entre objetos.

Estado y atributos
Atributo: cada uno de los datos de una clase.
Representan las caractersticas de un objeto y son definidas en su clase.
Estado: conjunto de los valores de los atributos que tiene un objeto, por pertenecer a una
clase, en un instante dado.

Herencia y polimorfismo
Herencia: forma de estructurar tipos/clases segn su comportamiento mediante la
creacin de una jerarqua de clasificacin.

Propiedades:
Intuitivamente fcil de comprender.
Una subclase extiende las propiedades de su superclase.
Una subclase es una forma restringida de la superclase.
Un objeto de una subclase puede acceder a campos y mtodos declarados en su

superclase.

Propsitos:
Especificacin
Especializacin: las subclases pueden redefinir los mtodos.
Extensin: la subclase aade nueva funcionalidad pero no modifica ni altera lo
heredado.
Combinacin mltiple: se hereda de varias clases.

Beneficios:
Reusabilidad del Software
Mayor fiabilidad
Consistencia de interfaces
Prototipado rpido
Ocultacin de informacin

Ejemplos:

Polimorfismo: posibilidad que tienen distintos objetos de actuar de una manera diferente
(desencadenar operaciones distintas) en respuesta a un mismo mensaje (una misma
llamada a funcin).

Tipos:
Ad hoc o esttico:
o Sobrecarga
o Coercin: conversin de objetos de una clase a otra (cast)
Universal

Bases:
Herencia: se aplica a clases que hereden de otras.
Instanciacin dinmica: una referencia a un objeto A puede hacer referencia a distintos
objetos derivados de la clase.

Beneficios:
Abstraccin: no es necesario conocer toda la jerarqua de clases derivadas.
Extensibilidad: aumentar la funcionalidad del programa/sistema sin tener que modificar
el cdigo ya escrito.

Principios bsicos del paradigma


Procesos a tener en cuenta.

Abstraccin
Encapsulacin u Ocultamiento
Modularidad
Jerarqua

Abstraccin
Proceso mental de extraccin de las caractersticas esenciales (requisitos o
funciones) de algo, ignorando los detalles superfluos.
No es posible manejar todos los aspectos de un sistema al mismo tiempo. Es
fundamentalmente subjetiva.
Punto de vista del cliente (usuario)

Implementacin en OO: Clases

Encapsulacin u ocultamiento
Proceso por el que se ocultan los detalles del soporte de las caractersticas
esenciales de una abstraccin (cmo se realizan las funciones).
Punto de vista del desarrollador (sistema)

Ventajas:
Delimita el rea de bsqueda de errores
Reduce la complejidad del sistema
Facilita la modificacin del sistema

Implementacin en OO:
Un objeto slo tiene accesible su interfaz (servicios o mtodos)
Los atributos son siempre privados

Modularidad
Proceso de descomposicin de un sistema en un conjunto de piezas poco
acopladas (independientes) y altamente cohesivas (con significado propio): mdulos

Conceptos asociados:
Acoplamiento: fuerza de la dependencia entre mdulos
Cohesin: grado de conectividad entre los elementos de un mdulo
Descomposicin en OO:
Descomponer para obtener las abstracciones claves del dominio del problema
El mundo es un conjunto de objetos agrupados que colaboran
Cada objeto exhibe un comportamiento definido (no identificable, necesariamente,
con una funcin del sistema)

Jerarqua
Proceso de estructuracin por el que se produce una organizacin de un conjunto
de elementos en grados o niveles de responsabilidad, de incumbencia o de composicin
entre otros

Tipos:
Por grado de composicin o de agregacin: una abstraccin se compone de un
conjunto de elementos.
Por grados de clasificacin, clasificacin de las distintas abstracciones de la ms
general a las ms especficas

Favorece la extensibilidad: facilidad con la que los productos software pueden ser
adaptados a cambios incrementales de especificaciones.
Para aadir una nueva funcionalidad, hay que identificar qu clase la soportar. El
procedimiento ptimo es crear una subclase que define las diferencias entre la clase
existente y la nueva abstraccin. De esta forma la clase existente no resulta afectada y
no hay cdigo repetido.

RESUMEN

Introduccin a AyDOO
UML: Lenguaje de Modelado Unificado.
Es una notacin esquemtica en su mayor parte con la que se construyen sistemas
por medio de conceptos orientados a objetos.
Preguntas importantes para disear un sistema:

Cmo deberan asignarse las responsabilidades a las clases de objetos?

Cmo deberan interactuar stos?

Qu papel debe destinrsele a cada clase?


Patrones: soluciones probadas y eficaces de problemas de diseo
La habilidad ms importante en el anlisis y diseo orientado a objetos es asignar
eficientemente las responsabilidades a los componentes del software.
Lo segundo ms importante es la obtencin de los objetos o las abstracciones
adecuadas.

Qu es anlisis y diseo?
Para crear una aplicacin hay que describir el problema y los requerimientos.
El anlisis se centra en la investigacin del problema, no en la manera de definir
una solucin.
El diseo pone de relieve una solucin lgica: cmo el sistema cumple con los
requisitos. Una descripcin detallada y de alto nivel de cmo satisface a los
requerimientos y las restricciones.

Qu son el anlisis y el diseo orientado a objetos?


Consiste en situar el dominio de un problema y su solucin lgica dentro de la
perspectiva de los objetos.
Durante el anlisis orientado a objetos se procura ante todo identificar y describir
los objetos dentro del dominio del problema.
Durante el diseo orientado a objetos se procura definir los objetos lgicos del
software que se van a implementar en el lenguaje de programacin orientado a objetos.
Los objetos tienen mtodos y atributos.

La divisin entre anlisis y diseo es poco clara, el trabajo de ambos existe en un


continuo. No hay una definicin rgida de qu constituye un paso del anlisis y qu del
diseo. Sin embargo, es importante distinguir entre investigacin (anlisis) y solucin
(diseo) porque es necesario definir la naturaleza del problema antes de buscar la
manera de crear una solucin.

Principales pasos del AyDOO

1. Definicin de Casos de Uso


Caso de uso: descripcin narrativa de los procesos del dominio.
Los diagramas de Caso de Uso no son un especficamente un elemento del anlisis
orientado a objetos, pero constituyen un paso preliminar muy til.

2. Definicin de un Modelo Conceptual


Para descomponer el dominio del problema hay que identificar los conceptos, los
atributos y las asociaciones del dominio que se juzgan importantes, esto puede ser
expresado en un Modelo Conceptual, que muestra grficamente en un grupo de
diagramas que describen los conceptos (objetos).
El modelo conceptual no es una descripcin de los componentes del software,
representa los conceptos del dominio del problema en el mundo real.

3. Definicin de Diagramas de Colaboracin


Un paso esencial de la fase de diseo es la asignacin de responsabilidades entre los
objetos y mostrar cmo interactan a travs de mensajes, expresados a travs del
Diagrama de Colaboracin, que presentan el flujo de mensajes entre las instancias y la
invocacin de mtodos.

4. Definicin del Diseo de Clases


Para definir una clase hay que analizar:

Cmo se conectan unos objetos a otros?


Cules son los mtodos de una clase?

Diagrama de Diseo de Clases: muestra las definiciones de clases que han de


implementarse en el software.
Este diagrama no muestra conceptos del mundo real, sino que describe nicamente
los componentes del software.

Comparacin con los diseos orientados a funciones


En el anlisis y diseo estructurado los problemas se descomponen
fundamentalmente por funciones o procesos (no por objetos). Esto da lugar a una
divisin jerrquica de procesos constituidos por subprocesos.

Diagramas del UML


El UML est compuesto por diversos elementos grficos que se combinan para
conformar diagramas. Su finalidad es presentar diversas perspectivas de un sistema, a
las cuales se les conoce como modelo (representacin simplificada de la realidad). El
modelo UML describe lo que har un sistema, no cmo implementarlo.

Diagrama de Clases
Describen la estructura esttica de un sistema.
Clase: categora o grupo de cosas que tienen atributos (propiedades) y acciones
similares. Se representa con un rectngulo dividido en tres reas: la superior contiene el
nombre de la clase, la central contiene los atributos y la inferior las acciones.

Diagrama de clases: formado por varios rectngulos (clases) conectados por lneas
que representan las asociaciones.
Asociaciones: representan las relaciones estticas entre las clases. El nombre de la
asociacin va sobre la lnea que la representa. Una flecha rellena indica la direccin de
la relacin. Los roles (representan la manera en que dos clases se ven entre ellas) se
ubican cerca del final de una asociacin. Si es calificada, el smbolo correspondiente se
coloca al final de la asociacin.

Multiplicidad: se coloca cerca del final de una asociacin. Indica el nmero de


instancias de una clase vinculadas a una de las instancias de la otra clase.

Asociacin Tripartita

Composicin y Agregacin
Agregacin: relacin de Todo y Parte, donde el Todo juega un rol ms
importante que la Parte, pero las dos clases son dependientes una de otra. Se grafica
con un rombo diamante vaco contra la Clase Todo.
Composicin: denota una fuerte posesin del Todo, a la Parte. Se grafica con
un rombo diamante relleno contra la clase que representa el todo.

Generalizacin: herencia. Relacin entre dos clases donde una Clase Especfica
es una especializacin de la Clase General.

Diagrama de Objetos
Pueden ser vistos como una instancia de un diagrama de clases. Describen la
estructura esttica de un sistema en un momento particular y son usados para probar la
precisin de los diagramas de clases.
Cada objeto es representado como un rectngulo, que contiene el nombre del objeto
y su clase subrayadas y separadas por dos puntos. Los atributos se listan en el rea
inferior y deben tener un valor asignado.

Diagrama de Casos de Uso


Caso de uso: descripcin de las acciones de un sistema desde el punto de vista del
usuario. Se representa con un valo y una etiqueta que indica la funcin.
Diagramas de caso de uso: modelan la funcionalidad del sistema usando actores
(usuarios) y casos de uso.

Sistema: sus lmites se representan con un rectngulo que contiene los casos de uso.
Los actores se ubican fuera de los lmites.
Relaciones entre un actor y un caso de uso: se dibujan con una lnea simple.
Relaciones entre casos de uso: flechas etiquetadas incluir (un caso de uso es
necesitado por otro para poder cumplir una tarea) o extender (indica opciones
alternativas para un cierto caso de uso).

Diagrama de Estados
En cualquier momento, un objeto se encuentra en un estado particular. El diagrama
de estados captura esa realidad.
Estado: representa situaciones durante la vida de un objeto. Se representa con un
rectngulo con puntas redondeadas.

Transicin: pasaje entre diferentes estados de un objeto. Se representa con una


flecha etiquetada con el evento que lo provoca y la accin resultante.

Estado Inicial

Estado Final

Diagrama de Secuencias
Muestra la mecnica de la interaccin los objetos entre s, con base en tiempos.
Rol de la Clase: describe la manera en que un objeto se va a comportar en el
contexto.

Cuadro de Activacin: representan el tiempo que un objeto necesita para completar


una tarea.

Mensajes: flechas que representan comunicaciones entre objetos.

Lneas de Vida: verticales y en lnea de puntos, indican la presencia del objeto


durante el tiempo.

Destruccin de Objetos: los objetos pueden ser eliminados tempranamente usando


una flecha etiquetada <<destruir>> que apunta a una X.

Loops: es representado como un rectngulo. La condicin de salida se coloca en la


parte inferior entre corchetes [ ].

Diagrama de Actividades
Ilustra la naturaleza dinmica de un sistema mediante el modelado del flujo
ocurrente de actividad en actividad. Son utilizados para modelar el flujo de trabajo
interno de una operacin.
Actividad: operacin en alguna clase del sistema que resulta en un cambio en el
estado del sistema.
Estados de Accin: representan las acciones no interrumpidas de los objetos.
Flujo de la Accin: representados con flechas, ilustran las relaciones entre los
estados de accin.

Flujo de Objetos: creacin y modificacin de objetos por parte de actividades.


Una flecha de flujo de objeto, desde una accin a un objeto, significa que la accin est
creando o influyendo sobre dicho objeto.
Una flecha de flujo de objeto, desde un objeto a una accin, indica que el estado de
accin utiliza dicho objeto.

Estado Inicial

Estado Final

Ramificacin: un rombo representa una decisin con caminos alternativos. Las


salidas alternativas deben estar etiquetadas con una condicin.

Sincronizacin: una barra de sincronizacin ilustra la ocurrencia de transiciones


paralelas, representada acciones concurrentes.

Marcos de Responsabilidad: agrupan actividades relacionadas en una misma


columna.

Diagrama de Colaboraciones
Describe interacciones entre objetos en trminos de mensajes secuenciados.
Representan una combinacin de informacin tomada de los diagramas de clases, de
secuencias y de casos de uso, describiendo el comportamiento, tanto de la estructura
esttica, como de la estructura dinmica de un sistema.
Rol de la Clase: describe cmo se comporta un objeto.

Rol de las Asociaciones: describe cmo se va a comportar una asociacin en una


situacin particular. Se usan lneas simples etiquetadas con un estereotipo*. (ver al final
del documento)

Mensajes: se numeran en orden de ejecucin, y la numeracin puede anidarse. La


condicin se suele colocar entre corchetes. Para indicar un loop se usa * despus de la
numeracin.

Diagrama de Componentes

Describe la organizacin de los componentes fsicos de un sistema.


Componente: bloque de construccin fsica del sistema.

Interface: describe un grupo de operaciones usada o creada por componentes.

Dependencias: se grafican usando flechas de puntos.

Diagrama de Distribucin
Muestra la arquitectura fsica de un sistema informtico. Puede representar a los
equipos y a los dispositivos, y tambin mostrar sus interconexiones y el software que se
encontrar en cada mquina.
Nodo: recurso fsico capaz de ejecutar componentes de cdigo.

Asociacin: conexin fsica entre los nodos.

Componentes y Nodos

Otras caractersticas
Paquetes
Permiten organizar los elementos de un diagrama en un grupo. Se representa por
una carpeta tabular.

Notas
Permite realizar aclaraciones de por qu un elemento del diagrama est all o la
manera en que trabaja. Tiene una esquina doblada y se adjunta al elemento del diagrama
conectndolo mediante una lnea punteada.

Estereotipos
Algunos sistemas requieren de elementos hechos a medida que no se encuentran en
el UML. Los estereotipos permiten tomar elementos propios del UML y convertirlos en
otros que se ajusten a las necesidades. Se representan como un nombre entre dos pares
de parntesis angulares.

Potrebbero piacerti anche