Sie sind auf Seite 1von 14

Análisis y Diseño Orientado a Objetos

ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS 1

Sesión No. 8

Nombre: Diseño orientado a objetos. Parte II.

Contextualización

¿Cuáles son las formas de trabajo que se puede realizar en la


programación orientada a objetos?

Dentro del trabajo que se realiza en la programación orientada a objetos se tiene


la posibilidad de trabajar en conjunto, ya sea por medio de asociación de objetos
y clases o también por medio de códigos conjuntos que se complementan, los
cuales son parte de lenguajes diferentes.

Esta asociación puede darse por resultado de la herencia de otros elementos o


también por el trabajo o funciones que se desean cumplir.

La asociación de objetos es muy frecuente dentro de los sistemas orientados a


objetos, ya que estos aunque son independientes pueden trabajar como uno
mismo y ofrecer un resultado mayor.
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS 2

Introducción al Tema

¿Cuáles son las posibilidades de trabajo que presentan los objetos?

Las posibilidades de trabajo que presentan los objetos dentro de un sistema


orientado a objetos son varias, dentro de estas esta la ejecución de instrucciones
en conjunto por parte de los componentes internos de cada pieza de código.

Estas posibilidades de trabajo se dan para tener una mayor interacción con los
usuarios y que el sistema pueda trabajar de forma más estable sin tener que
presentar correcciones de código o arreglar las fallas por medio de constantes
actualizaciones.

El trabajo en conjunto o por asociación de elementos permite un óptimo uso de


los recursos de una plataforma en la que se ejecutan las aplicaciones, por lo que
siempre debemos considerar que elementos pueden ser más fuertes que otros y
que trabajen a la par de los demás para presentar más estabilidad y mejores
resultados a los usuarios finales.
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS 3

Explicación

¿Qué es la asociación?

Asociación de objetos

Es la forma en como los elementos pueden conectar entre ellos y establecer una
relación de trabajo para ofrecer un resultado en común, esta relación o
asociación se puede dar entre elementos, como en clases.

Una asociación se representa por medio de líneas entre clases, las asociaciones
pueden ser de tipo inherente bidireccional, por lo que cualquiera de las clases
desde las instancias puede tener un recorrido lógico hacia otra.

Para determinar una asociación se pueden seguir la siguiente estructura:

 Es conveniente centrarse en asociaciones para conservar el conocimiento


de relación durante un tiempo.

 Es más importante identificar clases conceptuales que identificar


asociaciones. (IUCM, 2013).

 Demasiadas asociaciones tienden a confundir un modelo del dominio en


lugar de aclararlo. (Ibíd).

 El descubrimiento del uso de estos elementos puede llevar tiempo y


establecer un beneficio marginal.

 Se deben evitar las demostraciones redundantes.


ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS 4

El uso de las asociaciones presenta varios elementos más, dentro de los cuales
se establecen relaciones importantes de uso, algunos de los tipos de
asociaciones que podemos contemplar para el desarrollo de sistemas son:

 Navegación de las asociaciones: permite su uso aunque su


bidireccionalidad establece en ocasiones hacerlas unidireccionales para
tomar sólo una línea de trabajo especificándolo de mejor manera.
 Multiplicidad de las asociaciones: ésta determina cuantos objetos de
cada tipo intervienen en la asociación.
o Cuando la multiplicidad mínima es 0, la relación de los elementos
es opcional.
o Una multiplicidad mínima mayor o igual a 1 establece la relación
obligatoria. (Ibíd).

Agregación de objetos

¿Qué podemos determinar con la agregación de objetos?

La agregación de elementos dentro de los lenguajes de


programación orientados a objetos son importantes, con
estas funciones podemos determinar una relación de
multiplicidad, la cual puede ser comprendida como “uno
a uno” o “uno a muchos”.

Ésta puede realizarse con el uso de clases o elementos


funcionales con características similares a los medios en que se quieren aplicar.
Ésta puede ser representada por medio de diagramas explicando las conexiones
que tienen los elementos e inclusive la dirección que pueden tomar dentro de un
determinado grupo de elementos.

Esta relación se deriva de la asociación de estructuras, las cuales contienen


atributos en cada uno de los casos en que se usa, además debe contar con un
método que agregue elementos a la colección que se tiene hasta el momento, es
decir un Array, Vector, Collections, etc.
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS 5

Dentro del diagrama de agregación se


encuentran elementos que determinan las
funciones a seguir, éstos representan relaciones
fuertes entre objetos de igual manera que la
agregación que presentan éstos, la cuestión es
que un objeto puede poseer a otro, la
composición considerada dentro de este aspecto
se da cuando ambos objetos son parte de un mismo elemento o grupo de
elementos y funcionan por medio de un agregador.

Composición de objetos

¿Por qué es importante ésta?

Dentro de los lenguajes de programación que se orientan a objetos, la


composición es una parte importante que ayuda a definir las funciones, ya que
establece la relación que tienen varias de las funciones o estructuras dentro de
una aplicación.

Por definición podemos establecer la composición como:

Procedimiento o herramienta con la cual se logra la creación de objetos a partir


de clases existentes, estas nuevas clases se componen de objetos de clases ya
existentes. También se contemplan elementos adicionales como la herencia o el
polimorfismo por mencionar algunas, dentro de las cuales las estructuras
establecen las funciones y los procedimientos que se cumplirán en el uso de la
aplicación, no todos éstos son iguales, por lo que se deben establecer
parámetros de control, dependiendo de la magnitud del proyecto de que se habla.

Un ejemplo de la composición de clase es el siguiente:

//Composicion de clases.
#include <iostream>
using std::cout;
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS 6

using std::endl;
using std::cin;
#include <cstring>
class Punto {
private: int x; int y; public:
Punto(int = 0, int = 0);
void establecerX(int);
void establecerY(int);
int obtenerX();
int obtenerY(); };
class Ciudad { private: char nombre[50];
Punto coordenada;//Tiene un objeto miembro Punto public: Ciudad(char * = "",
const Punto & = Punto(1,1));
//tiene parametros por defecto. void establecerNombre(char *);
void establecerCoord(int,int);
void imprimir(); }; //Funciones miembro de clase Punto Punto::
Punto(int enX, int enY) { establecerX(enX);
establecerY(enY);
} void Punto::establecerX(int enX) { x= enX;
} void Punto::establecerY(int enY) { y= enY;
} int Punto::obtenerX() { return x;
} int Punto::obtenerY() { return y;
} //Funciones miembro de clase Ciudad Ciudad::Ciudad(char *Nombre, const
Punto & CORDE): coordenada(CORDE)//inicializador de miembro.
{ establecerNombre(Nombre);
} void Ciudad::establecerNombre(char *nomciudad) { int cantLetras =
strlen(nomciudad);
if (cantLetras > 49) cantLetras = 49;
strncpy(nombre,nomciudad,cantLetras);
nombre[cantLetras + 1] = '\0';
} void Ciudad::establecerCoord(int enX, int enY) { coordenada.establecerX(enX);
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS 7

coordenada.establecerY(enY);
} void Ciudad::imprimir() { cout << "Ciudad: "<< nombre << endl;
cout << "Coordenadas: (" << coordenada.obtenerX() << "," <<
coordenada.obtenerY() << ")";
cout << endl;
} int main() { Punto A(45,35);
Punto B(1245,456);
Ciudad bsas("BuenosAires",A);
cout << "Primera bsas:" << endl;
bsas.imprimir();
Ciudad stafe("SantaFe",B);
cout << "Segunda stafe:" << endl;
stafe.imprimir(); Ciudad compo;
//con los parametros por defecto.
cout << "Tercera compo con parametros por defecto:" << endl;
compo.imprimir();
compo.establecerCoord(457,789);
compo.establecerNombre("Compostela");
cout << "Cuarta compo, despues de establecerle los parámetros:"
<< endl; compo.imprimir(); return 0; }
Código obtenido de http://codigomaldito.blogspot.mx/2005/12/composicin-objetos-miembro.html
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS 8

Conclusión

La definición de objetos dentro de los lenguajes de programación orientados, son


muy importantes, ya que éstos son la base con la que se trabajará y tendrá
interacción con los usuarios.

Se pueden definir varias funciones dentro de las clases y objetos con lo que se
cumplirá el objetivo principal de su desarrollo. Se tiene la oportunidad de
personalizar varios elementos, esto dependerá de las capacidades y atributos
que ofrezcan los lenguajes de programación con que se desarrollará la pieza de
software. No se tiene un establecido en cuanto a un lenguaje, ya que se cumplen
diferentes funciones y trabajan en distintas plataformas.

Es importante definir bien las características y atributos de los objetos, de esta


manera podremos establecer una mejor relación de trabajo entre los
componentes del sistema en que se desarrollan las cosas y la plataforma de
ejecución en la que se tendrá el soporte.
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS 9

Para aprender más

Para aprender más acerca de los temas de programación orientada a objetos,


herencia, agregación, almacenamiento, dependencia y asociación, te invito a
consultar los siguientes recursos.

 Arenas L. (s/f). Programación Orientada a Objetos en Java. Documento


consultado en:
http://fcasua.contad.unam.mx/apuntes/interiores/docs/98/opt/java.pdf
 Cachero C. Ponce de León P. (2010). Herencia. Documento consultado
en: http://rua.ua.es/dspace/bitstream/10045/15995/1/POO-3-Herencia-10-
11.pdf
 Camila. (2013). Dependencia y asociación. Documento consultado en:
http://programacioncolmayor3.blogspot.mx/2013/02/dependencia-y-
asociacion.html
 Di Serio. (s/f). Programación orientada a objetos. Documento consultado
en:
http://ldc.usb.ve/~adiserio/Telematica/HerramientasProgr/ProgramacionO
OSlides.pdf
 Microsoft. (s/f). Herencia, agregación y almacenamiento. Documento
consultado en
http://msdn.microsoft.com/es-es/library/k3k086s0(v=vs.110).aspx
 S/a. (s/f). Herencia y composición en POO. Documento consultado en:
http://webdelprofesor.ula.ve/ingenieria/gilberto/pr2/practica7-OxO-
herencia-composicion.pdf
 S/a. (s/f). Herencia y composición. Documento consultado en:
http://arco.esi.uclm.es/~david.villa/pensar_en_C++/vol1/C14.html
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS 10

 Universidad Nebrija. (s/f). Fundamentos de la informática. Documento


consultado en:
http://www.nebrija.es/~oruano/java/04%20Programacion%20orientada%2
0a%20objetos%20con%20Java.pdf
 Universidad Nebrija. (s/f). Programación Orientada a Objetos. Documento
consultado en:
http://www.capacinet.gob.mx/Cursos/Tecnologia%20amiga/desarrolladord
esoftware/POO_SE.pdf
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS 11

Actividad de Aprendizaje

Instrucciones

Con la finalidad de reforzar los conocimientos adquiridos a lo largo de esta


sesión, ahora tendrás que realizar un diagrama de agregación o de composición
de objetos, cualquiera que sea de tu preferencia.

Puedes realizarlo en cualquier programa, al final tendrás que guardarlo como


imagen en formato JPG, con la finalidad de subirlo a la plataforma de la
asignatura.

En esta actividad se tomará en cuenta para tu calificación lo siguiente:

 Datos generales.
 Referencias bibliográficas y/o cibergráficas.
 Ortografía y redacción.
 Título.
 Diagrama.
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS 12

Cibergrafía

Arenas L. (s/f). Programación Orientada a Objetos en Java. Documento


consultado en:

http://fcasua.contad.unam.mx/apuntes/interiores/docs/98/opt/java.pdf

Camila. (2013). Dependencia y asociación. Documento consultado en:


http://programacioncolmayor3.blogspot.mx/2013/02/dependencia-y-
asociacion.html

Crovetto I. (2010). Agregación vs Composición. Documento consultado en:


http://icrovett.wordpress.com/2010/02/08/uml-diseno-de-agregacion-vs-
composicion/

DataPrix. (s/f). Agregación: jerarquía de objetos. Documento consultado en:


http://www.dataprix.com/26-agregacion-jerarquia-objetos

Di Serio. (s/f). Programación orientada a objetos. Documento consultado en:


http://ldc.usb.ve/~adiserio/Telematica/HerramientasProgr/ProgramacionOOSlide
s.pdf

Díaz A. (2008). UML relaciones, composición, agregación, asociación,


dependencia, generalización, realización. Documento consultado en:
http://arodm.blogspot.mx/2008/09/uml-relaciones-compocicion-agregacion.html

IUCMC (2013). Programación orientada a objetos II. Documento consultado en:


http://programacioncolmayor3.blogspot.mx/

Pérez D. (2012). Diagrama de Clases UML: Agregación y Composición.


Documento consultado en: http://www.didierperez.com/2012/02/diagrama-de-
clases-uml-agregacion-y-composicion/
ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS 13

Santi. (2005). Composición, objetos miembro en C++. Documento consultado en:


http://codigomaldito.blogspot.mx/2005/12/composicin-objetos-miembro.html

Das könnte Ihnen auch gefallen