Você está na página 1de 11

Unidad 4.

Conceptos generales de anlisis y


diseo orientado a objetos
Conceptos del paradigma orientado a objetos
La idea fundamental de este paradigma es la integracin de dos aspectos de los sistemas de
informacin que se analizan de manera separada: datos y procesos.
n el paradigma de la orientacin al objeto! un sistema se concibe como un conjunto de objetos que
se comunican entre s" mediante mensajes. # ni$el conceptual un objeto es una entidad percibida en
el sistema que se est desarrollando! mientras que a ni$el de implementacin! un objeto se
corresponde con un encapsulamiento de un conjunto de operaciones que pueden ser in$ocadas
e%ternamente y de un estado que recuerda el efecto de los ser$icios.
Un objeto se describe por sus propiedades! tambi&n llamadas atributos 'estructura del objeto( y por
los mtodos 'comportamiento del objeto( que puede proporcionar.
n este paradigma! un tipo de objeto puede implementarse de diferentes maneras) se denomina
clase a la implementacin de un tipo de objeto. *e esta manera los objetos se consideran instancias
de las clases.
La propiedades ms importantes del paradigma orientado a objetos son:
l encapsulamiento que es un principio de abstraccin que agrupa datos y procesos permitiendo
ocultar a los usuarios de un objeto los aspectos de implementacin! ofreci&ndoles una interfaz
e%terna mediante la cual poder interactuar con el objeto.
l principio de ocultacin de la informacin que permite modificar los aspectos pri$ados de un
objeto sin que se $ean afectados los dems objetos que interact+an con &ste.
La herencia que es una manera de re utilizacin del soft,are en la que se crean nue$as clases a
partir de clases ya e%istentes por medio de la absorcin de sus atributos y m&todos-
l polimorfismo que es la capacidad de que un mensaje sea interpretado de maneras distintas seg+n
el objeto que lo recibe.
.epresentacin de objetos
Los objetos se describen grficamente por medio de un diagrama de objetos o diagrama de
instancias. La notacin general para un objeto es una caja rectangular que contiene el nombre del
objeto.
/ombre del objeto
Las clases se describen por medio del diagrama de clases. La notacin para una clase es una caja
rectangular! que contiene el nombre de la clase.
/ombre de la clase
La notacin general para el objeto se e%tiende mediante el nombre de la clase seguido del nombre
del objeto.
/ombre del objeto: /ombre de la clase
l proceso de crear objetos pertenecientes a una clase se conoce como instanciacin! por esta razn
los objetos son las instancias de la clase a las que pertenecen. 0ara representarlo se utiliza una
flec1a punteada para mostrar los objetos como instancias de la clase.
l desarrollo orientado al objeto
*urante el anlisis orientado a objetos! se presta especial atencin a encontrar y describir los
objetos o conceptos en el dominio del problema
*urante el diseo orientado a objetos se presta especial atencin a la definicin de los
objetos soft,are y en cmo colaboran para satisfacer los requisitos
2inalmente durante la implementacin o programacin! los objetos de diseo se
implementan
l proceso de desarrollo se puede generalizar con las siguientes acti$idades:
3e identifican las clases semnticas 'con sus atributos y ser$icios(! esto es! las que reflejan el
espacio del problema
3e establecen las interacciones entre las clases! estudiando con detenimiento la
generalizacin '1erencia( y la colaboracin entre las mismas.
3e aaden las clases de interfaz '$entanas! men+s! etc(! las de aplicacin 'o mecanismos de
control( y las clases base 'utilidades independientes de la aplicacin(
3e implementan las clases
l uso de esta metodolog"a acorta la distancia e%istente entre el espacio de conceptos 'lo que los
e%pertos conocen( y el espacio de diseo e implementacin! y que los objetos del mundo real tienen
una correspondencia bastante clara con los objetos del sistema informtico.
Las metodolog"as describen tres aspectos principales de un sistema:
Los datos! objetos! conceptos y estructura
l comportamiento o proceso funcional
l control o arquitectura
0ara reflejar estos aspectos! se utilizan los diagramas de datos y de entidad! los diagramas de flujo o
diagramas de transicin.
4odelado de atributos
Los atributos definen la estructura de una clase y de sus correspondientes objetos! el atributo define
el $alor de un dato para todos los objetos pertenecientes a una clase.
Los atributos corresponden a sustanti$os y sus $alores pueden ser sustanti$os o adjeti$os. 3e debe
definir un $alor para cada atributo de una clase. Los $alores pueden ser iguales o distintos en los
diferentes objetos. /o se puede dar un $alor en un objeto si no e%iste un atributo correspondiente en
la clase.
Los atributos se listan en el diagrama de clases a continuacin del nombre de la clase! en una
segunda seccin.
/ombre de la clase
Lista de atributos
La notacin para el diagrama de objetos incluye los $alores de los atributos que se ubican en el
centro de la caja! con letra normal! a continuacin del nombre de la clase. 3e tienen dos notaciones
alternas:
/otacin e%tendida
/ombre de la clase
#tributo567alor5
#tributo867alor8
#tributo967alor9
/otacin compacta
/ombre de la clase
7alor del atributo5
7alor del atributo8
7alor del atributo9
0uede darse el caso de que un atributo de una clase sea un objeto instanciado por otra clase! en ese
caso! &ste atributo debe subrayarse.
/ombre de la clase
#tributo567alor5
#tributo867alor8
#tributo9
#tributo467alor4
s posible asociar cada atributo con un tipo de dato para restringir sus posible $alores. l tipo se
aade separado por dos puntos al diagrama de clases inmediatamente despu&s del nombre del
atributo. s posible tambi&n definir un $alor de omisin en cada atributo! es decir el $alor que se
asigna en caso de que no se 1aya especificado ninguno. ste $alor $a separado por un signo de igual
'6( a continuacin de tipo de dato.
/ombre de la clase
#tributo5 : :ipo567alor;<misin5
#tributo8 : :ipo867alor;<misin8
#tributo9 : :ipo967alor;<misin9
#tributos deri$ados
Los atributos bsicos son atributos independientes dentro del objeto. Los atributos deri$ados son
atributos que dependen de otros atributos del objeto los cules pueden ser bsicos o deri$ados. La
notacin es una diagonal como prefijo del atributo.
/ombre de la clase
#tributo bsico5
#tributo bsico8
=#tributo deri$ado
<peraciones
Las operaciones son funciones o transformaciones que se aplican a todos los objetos de una clase
particular. La operacin puede ser una accin ejecutada por el objeto o sobre el objeto. Las
operaciones se incorporan en la tercera seccin de la clase y es recomendable que su nombre o al
menos una parte de &l sea un $erbo.
/ombre de la clase
Lista de atributos
Lista de operaciones
Las operaciones pueden tener argumentos! es decir! una lista de parmetros cada uno con un tipo y
pueden tambi&n de$ol$er resultados! cada uno con un tipo.
/ombre de la clase
#tributo5 : :ipo567alor;<misin5
#tributo8 : :ipo867alor;<misin8
#tributo9 : :ipo967alor;<misin9
<peracin5'Lista-:ipo-#rg5( : :ipo.esult5
<peracion8'Lista-:ipo-#rg8( : :ipo.esult8
7isibilidad
Los atributos y los m&todos de una clase pueden tener distintos grados de $isibilidad! que se
conocen como especificadores de acceso de miembros! &stos especificadores son:
0+blico. Cualquier atributo o funcin declarado como p+blico 'public( es accesible cuando
el programa tiene acceso a un objeto de la clase que lo instanci. 3u representacin se
realiza colocando el s"mbolo '>( antes del nombre del atributo o m&todo.
0ri$ado. Cualquier atributo o funcin declarado como pri$ado 'private( es accesible solo
desde los m&todos de su propia clase. 3u representacin se realiza colocando el s"mbolo '-(
antes del nombre del atributo o m&todo.
0rotegido. Los miembros amigables 'friend( de la clase base y los miembros amigables
'friend( de las clases deri$adas son los +nicos que pueden acceder a los miembros
protegidos 'protected( de una clase base. 3u representacin se realiza colocando el s"mbolo
'?( antes del nombre del atributo o m&todo.
#unque es permitido que sean de tipo pri$ado! se recomienda que todos los m&todos de una clase
sean de tipo p+blico. *e la misma manera se recomienda que los miembros sean de tipo pri$ado!
1aciendo necesario la creacin de m&todos para asignarles un $alor o poder consultar el mismo.
/ombre de la clase
-#tributo5 : :ipo567alor;<misin5
-#tributo8 : :ipo867alor;<misin8
-#tributo9 : :ipo967alor;<misin9
?#tributo9 : :ipo967alor;<misin9
><peracin5'Lista-:ipo-#rg5( : :ipo.esult5
><peracion8'Lista-:ipo-#rg8( : :ipo.esult8
@erencia
Las clases con atributos y operaciones comunes se pueden organizar de forma jerrquica mediante
la herencia. La 1erencia es una abstraccin importante para compartir similitudes entre clases!
donde todos los atributos y operaciones comunes a $arias clases se pueden compartir por medio de
una superclase! es decir la clase ms general. Las clases que 1eredan sus propiedades se conocen
como subclases.
La notacin de la 1erencia se representa de la siguiente manera:
La 1erencia es transitiva a tra$&s de un n+mero arbitrario de ni$eles. Los ancestros de una clase son
las superclases de una clase en cualquier ni$el de la jerarqu"a! y los descendientes de una clase son
las subclases de una clase en cualquier ni$el de la jerarqu"a.
4<*L#*< * 0<LA4<.2A34<
Ligas y asociacin
La relacin entre objetos se conoce como liga. Una asociacin describe la relacin entre clases de
objetos y posibles ligas! donde una liga es una instancia de una asociacin! al igual que un objeto es
una instancia de una clase. %isten dos tipos de asociaciones entre clases:
Una asociacin de conocimiento. s una asociacin esttica entre instancias y significa que
una instancia conoce de la e%istencia de otra instancia. *enota conocimiento entre clases.
Una asociacin de comunicacin. s una asociacin dinmica que modela la comunicacin
entre dos objetos! y sir$e para intercambiar informacin entre objetos! denota la relacin
entre las clases cuando e%iste una comunicacin entre ellos. # tra$&s des estas asociaciones!
un objeto en$"a y recibe e$entos.
La asociacin une a dos clases
La liga une dos objetos instanciados por sus respecti$as clases
La notacin que describe una asociacin es una l"nea! la cul conecta las dos clases y contiene el
nombre de la asociacin en letras cursi$as
La notacin que describe una liga es una l"nea que conecta a los dos objetos! y que tiene el nombre
de la liga en letras cursi$as. l nombre de la liga debe ser igual al nombre correspondiente de la
asociacin.
#sociacin.
Liga
Brado de la asociacin
l grado de una asociacin se determina por el n+mero de clases conectadas por la misma
asociacin. Las asociaciones pueden ser binarias! ternarias o de mayor grado. l grado de las ligas
corresponde al de las asociaciones.
La notacin para una relacin ternaria entre objetos se muestra en la siguiente figura:
#sociaciones refle%i$as.
Las asociaciones son llamadas refle%i$as si relacionan distintos objetos de una misma clase! por
ejemplo en el caso de una clase llamada 0ersona que se utiliza para modelar los miembros de una
familia! una liga entre ellos llamada Cpariente-deD ser"a una asociaciones refle%i$a.
n este caso! se puede representar la clase de la siguiente manera:
4ultiplicidad
La multiplicidad o cardinalidad de una asociacin especifica cuntas instancias de una clase se
pueden relacionar a una sola instancia de otra clase.
s necesario decidir la multipicidad de cada clase en una asociacin! es decir dos multiplicidades en
una relacin binaria! una para cada e%tremo de la relacin.
La multiplicidad depende del conte%to de la aplicacin! e%isten distintos tipos de multiplicidades
para las asociaciones! de los cuales los ms rele$antes son:
Uno-uno: donde dos objetos se relacionan de forma e%clusi$a! uno con el otro.
E40L<: Cada Uni$ersidad tiene un .ector y cada .ector dirige una Uni$ersidad
Uno-muc1os: donde uno de los objetos puede estar ligado a muc1os otros objetos.
E40L<: 4uc1os Estudiantes pueden estudiar en una Universidad! y una sola Universidad da
estudios a muc1os Estudiantes
4uc1os-muc1os: *onde cada objeto de cada clase puede estar ligado con muc1os otros objetos
E40L<: 4uc1os Estudiantes pueden estudiar en $arias Universidades
Una relacin opcional es aquella en donde la multiplicidad es uno o cero. sto significa que dos
objetos pueden o no estar conectados y! si lo estn! corresponden a una multiplicidad de 5. La
notacin para representar una relacin opcional se muestra en la siguiente figura:
La relacin de muc1os se puede restringir con un n+mero o secuencias de n+meros como se muestra
en la siguiente figura
.ol
l rol describe el papel que juega cada e%tremo de una asociacin. Una asociacin binaria tiene dos
roles! uno en cada e%tremo! los cuales pueden tener un nombre diferente cada uno. Una relacin de
n clases tendr"a n roles.
E40L<:
Los nombre de roles son necesarios para asociaciones refle%i$as ya que slo sabiendo el nombre de
la asociacin no es suficiente para distinguir el papel que juegan los diferentes objetos en la
asociacin.
nsamblado: #gregacin y Composicin
Los ensamblados son formas especiales de asociacin entre un todo y sus partes! en donde el
ensamblado est compuesto por sus componentes. Un ensamblado puede componerse de $arias
partes! para esto se tienen dos tipos:
#gregacin. 0artes del ensamblado que pueden aparecer en m+ltiples ensamblados.
Composicin. Las partes del ensamblado no pueden ser compartidas entre ensamblados.
E40L<:
Una red de computadoras se puede considerar un ensamblado! donde las computadoras son sus
componentes. ste tambi&n es un ejemplo de agregacin! ya que las computadoras pueden ser
partes de m+ltiples redes de computadoras a la $ez. #dems! las computadoras pueden e%istir
independientemente de la e%istencia de la red.
Un autom$il se puede tambi&n considerar un ensamblado! donde el motor y la carrocer"a son sus
componentes. ste tambi&n es un ejemplo de composicin! ya que el motor y la carrocer"a son
partes del autom$il! y a diferencia de la agregacin! no pueden ser compartidos entre distintos
autom$iles a la $ez.
0ropiedades del ensamblado
:ransicin: 3i # es parte de F y F es parte de C) entonces # es parte de C.
jemplo: 3i el 4otor es parte del #utom$il! entonces sus propiedades! como posicin y
$elocidad! estn dadas por la posicin y $elocidad del #utom$il.
#ntisim&trico: 3i # es parte de F! entonces F no es parte de #.
jemplo: 3i el 4otor es parte del #utom$il! entonces el #utom$il no es parte del
4otor.
3e considera un ensamblado y no una asociacin regular:
3i se puede usar la frase Gparte-deG o Gconsiste-deG o GtieneG
3i algunas operaciones en el todo se pueden propagarse a sus partes
3i algunos atributos en el todo se pueden propagar a sus partes
.epresentacin
La notacin para un ensamblado! en particular para una agregacin! es un diamante ad1erido al lado
del objeto correspondiente al ensamblado total! conectado por una l"nea a sus componentes.
La notacin para la composicin es similar a una agregacin y al ensamblado en general! aunque a
diferencia de la agregacin el diamante se rellena de color negro.
E40L< * .0.3/:#CAH/.
Una computadora personal '0C( est compuesta por uno o $arios monitores! un sistema! un teclado
y opcionalmente un ratn. l sistema tiene un c1asis! un procesador central 'C0U(! $arias tarjetas
de memoria '.#4(! y opcionalmente un $entilador.
:ipos de ensamblados
2ijos. :ienen una estructura fija donde el n+mero de componentes est predefinido.
E40L<:
7ariables. l n+mero de componentes $ar"a
E40L<:
.ecursi$os. Contienen de forma directa o indirecta una instancia del mismo tipo de agregado!
dnde el n+mero de ni$eles de ensamblado puede ser ilimitado.

Você também pode gostar