8/18/2019 Resumen Patrones de Diseño
1/20
Paradigma Orientado a Objetos
Orientación a Objetos: paradigma de computación que define y organiza el softwarebasándose en entidades denominadas objetos. Los objetos combinan datos,comportamiento e identidad.
Ámbitos del paradigma:• Programación• ases de datos• Procesos de desarrollo• !rquitectura• "omunicaciones• #tc.
Elementos del paradigma
$ecanismos que permiten abstracción, encapsulación, modularización y jerarquización.
• %bjetos y clases• $ensajes y m&todos• #stado y atributos• 'erencia y polimorfismo
Objetos y Clases
"lase: descripción de los datos (atributos) y de las operaciones que describen elcomportamiento de un cierto conjunto de elementos *omog&neos.
• +esultado del proceso de abstracción.• $olde- de infinitos objetos con ciertas caractersticas para crear en el
dominio de la computadora un reflejo del mundo real.
Principio de encapsulación: /istas.• Pública o 0nterfaz: comportamiento1 establece a qu& operaciones responden los objetos
de esta clase.• Privada o 0mplantación: establece las estructuras de datos de la clase y cómo los
manipulan las operaciones.
%bjeto: instancia de una clase que responde al comportamiento definido por lasoperaciones de la misma. Proyección de parte del dominio del problema en lacomputadora.
"aractersticas:• Pueden ser: 2angibles (libros) o 0ntangibles (deudas).• 3e identifican un/ocamente.• 2ienen unos datos propios (atributos) y un comportamiento determinado.
Mensajes y métodos
8/18/2019 Resumen Patrones de Diseño
2/20
$ensaje: in/ocación de una operación sobre un objeto.
4n objeto es el agente acti/o que lanza el mensaje y otro objeto es el agente pasi/oque recibe el mensaje. #ste 5ltimo debe contemplar dic*a operación entre las definidaspor la clase a la que pertenece.
Puede /erse como la solicitud de un ser/icio a un objeto, que de/uel/e siempre unobjeto como respuesta.
$&todo: definición de una operación de una clase.
6escripción formal del comportamiento asociado a un objeto o ser/icio que &steofrece.
2ipos:• producen un cambio en el estado del objeto sobre el que se ejecuta el m&todo.•
calculan cierto valor.• m&todos especficos para la inicialización y finalización de la vida de un objeto
(constructores y destructores).
Permiten la colaboración entre objetos.
Estado y atributos
!tributo: cada uno de los datos de una clase.
+epresentan las caractersticas de un objeto y son definidas en su clase.
#stado: conjunto de los /alores de los atributos que tiene un objeto, por pertenecer a unaclase, en un instante dado.
Herencia y polimorfismo
'erencia: forma de estructurar tipos7clases seg5n su comportamiento mediante lacreación de una jerarqua de clasificación.
Propiedades:• 0ntuiti/amente fácil de comprender.• 4na subclase e8tiende- las propiedades de su superclase.• 4na subclase es una forma restringida de la superclase.• 4n objeto de una subclase puede acceder a campos y m&todos declarados en su
8/18/2019 Resumen Patrones de Diseño
3/20
superclase.
Propósitos:• Especificación
• Especialización: las subclases pueden redefinir los m&todos.
• Extensión: la subclase a9ade nue/a funcionalidad pero no modifica ni altera lo*eredado.
• Combinación múltiple: se *ereda de /arias clases.
eneficios:• +eusabilidad del 3oftware• $ayor fiabilidad• "onsistencia de interfaces• Prototipado rápido• %cultación de información
#jemplos:
Polimorfismo: posibilidad que tienen distintos objetos de actuar de una manera diferente
(desencadenar operaciones distintas) en respuesta a un mismo mensaje (una mismallamada a función).
8/18/2019 Resumen Patrones de Diseño
4/20
2ipos:• !d *oc- o estático:
o 3obrecargao "oerción: con/ersión de objetos de una clase a otra (cast)
• 4ni/ersal
ases:• Herencia: se aplica a clases que *ereden de otras.• Instanciación dinámica: una referencia a un objeto ! puede *acer referencia a distintos
objetos deri/ados de la clase.
eneficios:• Abstracción: no es necesario conocer toda la jerarqua de clases deri/adas.
• Extensibilidad: aumentar la funcionalidad del programa7sistema sin tener que modificarel código ya escrito.
Principios básicos del paradigma
Procesos a tener en cuenta.
• !bstracción• #ncapsulación u %cultamiento• $odularidad• erarqua
Abstracción
Proceso mental de e8tracción de las caractersticas esenciales (requisitos ofunciones) de algo, ignorando los detalles superfluos-.
;o es posible manejar todos los aspectos de un sistema al mismo tiempo. #sfundamentalmente subjeti/a.
Punto de /ista del cliente- (usuario)
8/18/2019 Resumen Patrones de Diseño
5/20
0mplementación en %%: "lases
Encapsulación u ocultamiento
Proceso por el que se ocultan los detalles del soporte de las caractersticas
esenciales de una abstracción (cómo se realizan las funciones)-.Punto de /ista del desarrollador- (sistema)
8/18/2019 Resumen Patrones de Diseño
6/20
=a/orece la extensibilidad: facilidad con la que los productos software pueden seradaptados a cambios incrementales de especificaciones.
Para a9adir una nue/a funcionalidad, *ay que identificar qu& clase la soportará. #lprocedimiento óptimo es crear una subclase que define las diferencias entre la clasee8istente y la nue/a abstracción. 6e esta forma la clase e8istente no resulta afectada yno *ay código repetido.
"E#$ME%
8/18/2019 Resumen Patrones de Diseño
7/20
&ntroducción a Ay'OO
$M() Lenguaje de $odelado 4nificado.#s una notación esquemática en su mayor parte con la que se construyen sistemas
por medio de conceptos orientados a objetos.
Preguntas importantes para dise9ar un sistema:• >"ómo deberan asignarse las responsabilidades a las clases de objetos?• >"ómo deberan interactuar &stos?• >@u& papel debe destinársele a cada clase?
Patrones: soluciones probadas y eficaces de problemas de dise9o
La *abilidad más importante en el análisis y dise9o orientado a objetos es asignareficientemente las responsabilidades a los componentes del software.
Lo segundo más importante es la obtención de los objetos o las abstraccionesadecuadas.
*+ué es análisis y dise,o-
Para crear una aplicación *ay que describir el problema y los requerimientos.
#l análisis se centra en la in/estigación del problema, no en la manera de definiruna solución.
#l dise9o pone de relie/e una solución lógica: cómo el sistema cumple con losrequisitos. 4na descripción detallada y de alto ni/el de cómo satisface a losrequerimientos y las restricciones.
*+ué son el análisis y el dise,o orientado a objetos-
"onsiste en situar el dominio de un problema y su solución lógica dentro de laperspecti/a de los objetos.
6urante el análisis orientado a objetos se procura ante todo identificar y describirlos objetos dentro del dominio del problema.
6urante el dise9o orientado a objetos se procura definir los objetos lógicos del
software que se /an a implementar en el lenguaje de programación orientado a objetos.Los objetos tienen m&todos y atributos.
8/18/2019 Resumen Patrones de Diseño
8/20
La di/isión entre análisis y dise9o es poco clara, el trabajo de ambos e8iste en uncontinuo. ;o *ay una definición rgida de qu& constituye un paso del análisis y qu& deldise9o. 3in embargo, es importante distinguir entre in/estigación (análisis) y solución(dise9o) porque es necesario definir la naturaleza del problema antes de buscar lamanera de crear una solución.
Principales pasos del Ay'OO
./ 'efinición de Casos de $so
"aso de uso: descripción narrati/a de los procesos del dominio.
Los diagramas de "aso de 4so no son un especficamente un elemento del análisisorientado a objetos, pero constituyen un paso preliminar muy 5til.
8/18/2019 Resumen Patrones de Diseño
9/20
0/ 'efinición de un Modelo Conceptual
Para descomponer el dominio del problema *ay que identificar los conceptos, losatributos y las asociaciones del dominio que se juzgan importantes, esto puede sere8presado en un $odelo "onceptual, que muestra gráficamente en un grupo dediagramas que describen los conceptos (objetos).
#l modelo conceptual no es una descripción de los componentes del software,representa los conceptos del dominio del problema en el mundo real.
1/ 'efinición de 'iagramas de Colaboración
4n paso esencial de la fase de dise9o es la asignación de responsabilidades entre losobjetos y mostrar cómo interact5an a tra/&s de mensajes, e8presados a tra/&s del6iagrama de "olaboración, que presentan el flujo de mensajes entre las instancias y lain/ocación de m&todos.
2/ 'efinición del 'ise,o de Clases
Para definir una clase *ay que analizar:
8/18/2019 Resumen Patrones de Diseño
10/20
• >"ómo se conectan unos objetos a otros?• >"uáles son los m&todos de una clase?
6iagrama de 6ise9o de "lases: muestra las definiciones de clases que *an deimplementarse en el software.
#ste diagrama no muestra conceptos del mundo real, sino que describe 5nicamentelos componentes del software.
Comparación con los dise,os orientados a funciones
#n el análisis y dise9o estructurado los problemas se descomponen
fundamentalmente por funciones o procesos (no por objetos). #sto da lugar a unadi/isión jerárquica de procesos constituidos por subprocesos.
8/18/2019 Resumen Patrones de Diseño
11/20
'iagramas del $M(
#l 4$L está compuesto por di/ersos elementos gráficos que se combinan paraconformar diagramas. 3u finalidad es presentar di/ersas perspecti/as de un sistema, alas cuales se les conoce como modelo (representación simplificada de la realidad). #l
modelo 4$L describe lo que *ará un sistema, no cómo implementarlo.
'iagrama de Clases
6escriben la estructura estática de un sistema.
"lase: categora o grupo de cosas que tienen atributos (propiedades) y accionessimilares. 3e representa con un rectángulo di/idido en tres áreas: la superior contiene elnombre de la clase, la central contiene los atributos y la inferior las acciones.
6iagrama de clases: formado por /arios rectángulos (clases) conectados por lneasque representan las asociaciones.
!sociaciones: representan las relaciones estáticas entre las clases. #l nombre de laasociación /a sobre la lnea que la representa. 4na flec*a rellena indica la dirección de
la relación. Los roles (representan la manera en que dos clases se /en entre ellas) seubican cerca del final de una asociación. 3i es calificada, el s"mbolo correspondiente secoloca al final de la asociación.
$ultiplicidad: se coloca cerca del final de una asociación. 0ndica el n5mero deinstancias de una clase /inculadas a una de las instancias de la otra clase.
8/18/2019 Resumen Patrones de Diseño
12/20
!sociación 2ripartita
"omposición y !gregación
!gregación: relación de 2odo- y Parte-, donde el 2odo- juega un rol másimportante que la Parte-, pero las dos clases son dependientes una de otra. 3e graficacon un rombo diamante /aco contra la "lase 2odo-.
"omposición: denota una fuerte posesión del 2odo-, a la Parte-. 3e grafica conun rombo diamante relleno contra la clase que representa el todo.
Aeneralización: *erencia. +elación entre dos clases donde una "lase #specfica-es una especialización de la "lase Aeneral-.
8/18/2019 Resumen Patrones de Diseño
13/20
'iagrama de Objetos
Pueden ser /istos como una instancia de un diagrama de clases. 6escriben laestructura estática de un sistema en un momento particular y son usados para probar laprecisión de los diagramas de clases.
"ada objeto es representado como un rectángulo, que contiene el nombre del objetoy su clase subrayadas y separadas por dos puntos. Los atributos se listan en el áreainferior y deben tener un /alor asignado.
'iagrama de Casos de $so
"aso de uso: descripción de las acciones de un sistema desde el punto de /ista delusuario. 3e representa con un ó/alo y una etiqueta que indica la función.
6iagramas de caso de uso: modelan la funcionalidad del sistema usando actores
(usuarios) y casos de uso.
3istema: sus lmites se representan con un rectángulo que contiene los casos de uso.Los actores se ubican fuera de los lmites.
+elaciones entre un actor y un caso de uso: se dibujan con una lnea simple.
+elaciones entre casos de uso: flec*as etiquetadas incluir- (un caso de uso esnecesitado por otro para poder cumplir una tarea) o e8tender- (indica opcionesalternati/as para un cierto caso de uso).
8/18/2019 Resumen Patrones de Diseño
14/20
'iagrama de Estados
#n cualquier momento, un objeto se encuentra en un estado particular. #l diagramade estados captura esa realidad.
#stado: representa situaciones durante la /ida de un objeto. 3e representa con unrectángulo con puntas redondeadas.
2ransición: pasaje entre diferentes estados de un objeto. 3e representa con una
flec*a etiquetada con el e/ento que lo pro/oca y la acción resultante.
#stado 0nicial
#stado =inal
'iagrama de #ecuencias
$uestra la mecánica de la interacción los objetos entre s, con base en tiempos.
+ol de la "lase: describe la manera en que un objeto se /a a comportar en elconte8to.
8/18/2019 Resumen Patrones de Diseño
15/20
"uadro de !cti/ación: representan el tiempo que un objeto necesita para completaruna tarea.
$ensajes: flec*as que representan comunicaciones entre objetos.
Lneas de
8/18/2019 Resumen Patrones de Diseño
16/20
6estrucción de %bjetos: los objetos pueden ser eliminados tempranamente usandouna flec*a etiquetada BBdestruirCC- que apunta a una D.
Loops: es representado como un rectángulo. La condición de salida se coloca en laparte inferior entre corc*etes E F.
'iagrama de Acti3idades
0lustra la naturaleza dinámica de un sistema mediante el modelado del flujoocurrente de acti/idad en acti/idad. 3on utilizados para modelar el flujo de trabajo
interno de una operación.
!cti/idad: operación en alguna clase del sistema que resulta en un cambio en elestado del sistema.
#stados de !cción: representan las acciones no interrumpidas de los objetos.
=lujo de la !cción: representados con flec*as, ilustran las relaciones entre losestados de acción.
8/18/2019 Resumen Patrones de Diseño
17/20
=lujo de %bjetos: creación y modificación de objetos por parte de acti/idades.• 4na flec*a de flujo de objeto, desde una acción a un objeto, significa que la acción está
creando o influyendo sobre dic*o objeto.• 4na flec*a de flujo de objeto, desde un objeto a una acción, indica que el estado de
acción utiliza dic*o objeto.
#stado 0nicial
#stado =inal
+amificación: un rombo representa una decisión con caminos alternati/os. Lassalidas alternati/as deben estar etiquetadas con una condición.
3incronización: una barra de sincronización ilustra la ocurrencia de transicionesparalelas, representada acciones concurrentes.
8/18/2019 Resumen Patrones de Diseño
18/20
$arcos de +esponsabilidad: agrupan acti/idades relacionadas en una mismacolumna.
'iagrama de Colaboraciones
6escribe interacciones entre objetos en t&rminos de mensajes secuenciados.+epresentan una combinación de información tomada de los diagramas de clases, desecuencias y de casos de uso, describiendo el comportamiento, tanto de la estructuraestática, como de la estructura dinámica de un sistema.
+ol de la "lase: describe cómo se comporta un objeto.
+ol de las !sociaciones: describe cómo se /a a comportar una asociación en unasituación particular. 3e usan lneas simples etiquetadas con un estereotipoG. (/er al finaldel documento)
$ensajes: se numeran en orden de ejecución, y la numeración puede anidarse. Lacondición se suele colocar entre corc*etes. Para indicar un loop se usa G despu&s de lanumeración.
'iagrama de Componentes
8/18/2019 Resumen Patrones de Diseño
19/20
6escribe la organización de los componentes fsicos de un sistema.
"omponente: bloque de construcción fsica del sistema.
0nterface: describe un grupo de operaciones usada o creada por componentes.
6ependencias: se grafican usando flec*as de puntos.
'iagrama de 'istribución
$uestra la arquitectura fsica de un sistema informático. Puede representar a losequipos y a los dispositi/os, y tambi&n mostrar sus intercone8iones y el software que seencontrará en cada máquina.
;odo: recurso fsico capaz de ejecutar componentes de código.
!sociación: cone8ión fsica entre los nodos.
8/18/2019 Resumen Patrones de Diseño
20/20
"omponentes y ;odos
Otras caracter!sticas
Pauetes
Permiten organizar los elementos de un diagrama en un grupo. 3e representa poruna carpeta tabular.
%otas
Permite realizar aclaraciones de por qu& un elemento del diagrama está all o lamanera en que trabaja. 2iene una esquina doblada y se adjunta al elemento del diagramaconectándolo mediante una lnea punteada.
Estereotipos
!lgunos sistemas requieren de elementos *ec*os a medida que no se encuentran enel 4$L. Los estereotipos permiten tomar elementos propios del 4$L y con/ertirlos enotros que se ajusten a las necesidades. 3e representan como un nombre entre dos pares
de par&ntesis angulares.
Top Related