Vous êtes sur la page 1sur 36

Parte 1: Sistemas Orientados a Objetos.

Conceptos de la Orientacin a Objetos.


Introduccin
Los objetos como concepto -fuera de la informtica- existen desde antes de la
programacin (obviamente).
Qu es lo que intenta hacer entonces la Programacin Orientada a los Objetos (POO)?
Lisa y llanamente intentar simplificar la complejidad (simplificar las abstracciones) y
tratar de representar de forma simple lo que vemos y manejamos todos los das los
objetos que nos rodean.
Entonces, la Programacin Orientada a Objetos no es ms que eso, detectar los objetos
existentes en nuestro contexto y construirlos, dndoles un comportamiento y que estos
sepan solos cmo reaccionar ante la interaccin con otros objetos (ms adelante a esa
actividad le llamaremos diseo).
Nada ms y nada menos... y hemos logrado empezar a hablar del tema sin mostrar -hasta
el momento - una sola lnea de cdigo.
La POO es un paradigma que tiene sus orgenes desde antes de 1990 (a partir de este
ao se empieza a popularizar). La programacin orientada a objetos expresa un programa
como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas. Esto
permite hacer los programas y mdulos ms fciles de escribir, mantener y reutilizar.
Una CLASE es un proyecto, o prototipo, que define las variables y los mtodos comunes
a un cierto tipo de objetos. Son las plantillas de las que luego se pueden crear mltiples
objetos del mismo tipo, cada objeto tendr sus propios valores y compartirn las mismas
funciones.
Los objetos son entidades que combinan estado (los datos), comportamiento e identidad
nica que lo diferencia del resto. De esta forma, un objeto contiene toda la informacin

que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases e
incluso frente a objetos de una misma clase
Primero deberemos crear una clase antes de poder crear objetos o ejemplares de esa
clase.

Qu es un Objeto?
De manera intuitiva, la tendencia general es asociar el trmino objeto con todo aquello a
lo que se puede atribuir la propiedad fsica de masa, como una tostadora de pan, aunque
es posible encontrar objetos de ndole no tangible, como por ejemplo una direccin postal.
En el mbito de la informtica, un objeto define una representacin abstracta de las
entidades del mundo, tangibles o no, con la intencin de emularlas. Existe pues, una
relacin directa entre los objetos del mundo y los objetos informticos, de modo que
puede emplearse el trmino objeto de manera indistinta.
Los objetos tienen dos caractersticas, que son su estado y su comportamiento. El estado
es una situacin en la que se encuentra el objeto, tal que cumple con alguna condicin o
condiciones particulares, realiza alguna actividad o espera que suceda un acontecimiento.
Una tostadora puede estar encendida y cargada de pan y, en cuanto a su
comportamiento, lo normal en este estado es tostar pan.
Los objetos mantienen su estado en uno o ms atributos, que son simplemente datos
identificados por un nombre, y exhiben su comportamiento a travs de mtodos, que son
trozos de funcionalidad asociados al objeto. En este sentido, un objeto es realmente un
conjunto de atributos y mtodos. Pero un objeto slo revela su verdadera utilidad cuando
es integrado en un contexto de comunicacin con otros objetos, a travs del envo de
mensajes, para componer un sistema mucho mayor y demostrar un comportamiento ms
complejo. Una tostadora en un armario resulta de poca utilidad, pero cuando interacta
con otro objeto, como un ser humano, se convierte en una herramienta til para tostar
pan.
El humano intercambiara con la tostadora el mensaje tuesta el pan que tienes en la
bandeja a travs de la pulsacin del botn de tostar.
A partir del ejemplo anterior, es fcil deducir que el envo de mensajes es la forma en que
se invocan los mtodos de un objeto y que la invocacin de mtodos es el mecanismo a
travs del cual un objeto puede cambiar su estado o el de otro objeto. Los atributos y los
mtodos de un objeto pueden tener un menor o mayor grado de visibilidad, desde
privado hasta pblico, lo que hace que aparezca un concepto nuevo, la encapsulacin.
La encapsulacin oculta los detalles del funcionamiento interno del objeto, exponiendo
slo aquello que pueda ser de inters.

Qu es una clase?
Los objetos no son entidades que existan de modo nico. Hay muchos tipos de tostadoras
e, igualmente, muchas tostadoras del mismo tipo. Se puede entender fcilmente el
concepto de clase si nos permitimos emplear el trmino tipo como equivalente. As, todos
los objetos que son del mismo tipo, comparten el mismo juego de atributos y mtodos
(aunque cada objeto pueda tener un valor distinto asociado a cada atributo) y por tanto
pertenecen a una misma clase. Las clases son como patrones que definen qu atributos y
qu mtodos son comunes a todos los objetos de un mismo tipo.
Cada objeto tiene sus atributos y su comportamiento, creados empleando una clase a
modo de patrn. Una vez creado el objeto, pasa a ser una instancia particular de la clase
a la que pertenece y sus atributos tienen unos valores concretos, que podrn variar de un
objeto a otro (dos objetos distintos pertenecientes a la misma clase, pueden tener
exactamente los mismos valores en todos sus atributos). A estos atributos, que pueden
variar de un objeto a otro, se les conoce tambin como variables de instancia.
Hay atributos que, sin embargo, no varan de un objeto a otro, es decir todas las
instancias de la clase a la que pertenecen, tienen el mismo valor para ese atributo. Todas
las tostadoras del mismo tipo consumen la misma cantidad en Watts y sus resistencias
son de los mismos Ohm. A estos atributos se les conoce como variables de clase y son
compartidos por todas y cada una de las instancias de la clase. De manera anloga al
caso de los atributos, encontramos mtodos de instancia y mtodos de clase.

Mtodo
Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecucin se
desencadena tras la recepcin de un "mensaje". Desde el punto de vista del
comportamiento, es lo que el objeto puede hacer. Un mtodo puede producir un cambio
en las propiedades del objeto, o la generacin de un "evento" con un nuevo mensaje para
otro objeto del sistema.

Evento
Un suceso en el sistema (tal como una interaccin del usuario con la mquina, o un
mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje
adecuado al objeto pertinente. Tambin se puede definir como evento, a la reaccin que
puede desencadenar un objeto, es decir la accin que genera.

Mensaje
Una comunicacin dirigida a un objeto, que le ordena que ejecute uno de sus mtodos
con ciertos parmetros asociados al evento que lo gener.

Propiedad o atributo
Contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que
hace los datos visibles desde fuera del objeto y esto se define como sus caractersticas
predeterminadas, y cuyo valor puede ser alterado por la ejecucin de algn mtodo.

Estado interno
Es una variable que se declara privada, que puede ser nicamente accedida y alterada
por un mtodo del objeto, y que se utiliza para indicar distintas situaciones posibles para
el objeto (o clase de objetos). No es visible al programador que maneja una instancia de
la clase.

Representacin de un objeto: un objeto se representa por medio de una tabla o


entidad que est compuesta por sus atributos y funciones correspondientes.

La Herencia.
Los objetos se definen en funcin de clases, es decir, tomando una clase como patrn. Se
puede saber mucho acerca de un objeto sabiendo la clase a la que pertenece. Por
ejemplo, con decir que la Black & Decker T1500 es un tipo de tostadora, inmediatamente
se sabe que se trata de una mquina para tostar pan, probablemente elctrica y con por
lo menos una ranura en la que insertar una rebanada de pan y un botn para activar su
funcionamiento.
Las clases llegan un paso ms lejos, permitiendo su definicin en funcin de otras clases,
de modo que es posible establecer una jerarqua de especializacin. Una clase que se
define en funcin de otra, hereda todos los atributos y mtodos de aquella y permite el
aadido de nuevos o la sobre escritura de los heredados. La clase patrn se conoce con
el nombre de superclase o clase padre, mientas que la que hereda se conoce como clase
hija. La herencia no est limitada simplemente a padre-hija(s), la jerarqua puede ser todo
lo profunda que sea necesario, hablando en trminos de nietas, biznietas, etc. De la
misma manera, una clase puede heredar de varias clases a la vez.
En la siguiente figura se puede ver una jerarqua de especializacin de dos niveles. La
clase Animal es la raz, la clase padre en la jerarqua. Especifica que los animales
comen, como caracterstica ms significativa de stos. En el primer nivel de
especializacin encontramos las clases Carnvoro y Herbvoro, ambas son sendos
tipos de animal y por tanto comen, slo que en el caso de los carnvoros se ha
especializado el tipo de comida que comen para indicar que se trata de carne. Aparece
una nueva caracterstica de este tipo de animal, que es el hecho de que los carnvoros
cazan.

En el caso de los herbvoros, encontramos que comen plantas y pacen. En el segundo


nivel de especializacin, encontramos un animal que es a la vez Herbvoro y Carnvoro
y, como cabe esperar, este nuevo tipo de animal puede hacer todo lo que pueden hacer
sus ancestros, comer carne, comer plantas, cazar y pacer, no encontrando ninguna
caracterstica adicional en los Omnvoros.

Clase Abstracta
Algunas veces, una clase que se ha definido representa un concepto abstracto y como tal,
no debe ser ejemplarizado.
Es decir cuando se desarrolla un jerarqua de clases en que algn comportamiento est
presente en todas ellas peo se materializa de distintas formas para cada una.
Por ejemplo, la comida en la vida real. Has visto algn ejemplar de comida? No. Lo que
has visto son ejemplares de manzanas, pan, y chocolate. Comida representa un concepto
abstracto de cosas que son comestibles. No tiene sentido que exista un ejemplar de
comida.
Por ejemplo, la clase Number del paquete java.lang representa el concepto abstracto de
nmero. Otros ejemplos Clase ElementForm, Figuras Geomtricas, Personas, Mamferos,
Automvil etc.

La Interfaz.
Una interfaz es un mecanismo que emplean dos objetos para interactuar. En nuestro
ejemplo de la tostadora, el humano emplea el botn de tostar a modo de interfaz para
pasar el mensaje tuesta el pan que tienes en la bandeja. Las interfaces definen un
conjunto de mtodos para establecer el protocolo en base al cual interactan dos objetos.
En este sentido, existe una analoga entre interfaces y protocolos. Para que el humano
pueda tostar, debe seguir el protocolo establecido por la interfaz botn de tostar,
consistente en pulsar dicho botn.
Las interfaces capturan las similitudes entre clases no relacionaras, sin necesidad de
forzar una interrelacin y son a su vez clases.

Caractersticas de la POO
Abstraccin
Denota las caractersticas esenciales de un objeto, donde se capturan sus
comportamientos.
Cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar
trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin
revelar cmo se implementan estas caractersticas. Se refiere al nfasis en el "qu
hace?" ms que en el "cmo lo hace?"

Encapsulamiento
Significa reunir a todos los elementos que pueden considerarse pertenecientes a una
misma entidad, al mismo nivel de abstraccin. Cada objeto es nico y diferenciable de los
dems.
Esto permite aumentar la cohesin de los componentes del sistema. Algunos autores
confunden este concepto con el principio de ocultacin, principalmente porque se suelen
emplear conjuntamente.

Principio de ocultacin
Cada objeto est aislado del exterior. Cada tipo de objeto expone una interfaz a otros
objetos que especfica cmo pueden interactuar con los objetos de la clase.
El aislamiento protege a las propiedades de un objeto contra su modificacin por quien no
tenga derecho a acceder a ellas, solamente los propios mtodos internos del objeto
pueden acceder a su estado. Esto asegura que otros objetos no pueden cambiar el
estado interno de un objeto de maneras inesperadas, eliminando efectos secundarios e
interacciones inesperadas.

Polimorfismo
Comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo
nombre, al llamarlos por ese nombre se utilizar el comportamiento correspondiente al
objeto que se est usando. O dicho de otro modo, las referencias y las colecciones de
objetos pueden contener objetos de diferentes tipos, y la invocacin de un
comportamiento en una referencia producir el comportamiento correcto para el tipo real
del objeto referenciado.

Lo vemos en la herencia e interfaces y en sobre escritura de mtodos entre otras


tcnicas.

Herencia
Las clases no estn aisladas, sino que se relacionan entre s, formando una jerarqua de
clasificacin. Los objetos heredan las propiedades y el comportamiento de todas las
clases a las que pertenecen.
La herencia facilita el polimorfismo y el encapsulamiento permitiendo a los objetos ser
definidos y creados como tipos especializados de otros objetos. Estos pueden compartir
(y extender) su comportamiento sin tener que volver a implementarlo.
Cuando un objeto hereda de ms de una clase se dice que hay herencia mltiple.

Anlisis y Modelado de Sistemas Orientados a Objetos.


Hay muchas formas de enfocar un problema utilizando una solucin basada en el
software. Un enfoque muy utilizado es la visin orientada a objetos. El dominio del
problema se caracteriza mediante un conjunto de objetos con atributos y comportamientos
especficos. Los objetos son manipulados mediante una coleccin de funciones (llamadas
mtodos, operaciones o servicios) y se comunican entre ellos mediante un protocolo de
mensajes. Los objetos se clasifican mediante clases y subclases.
A continuacin se presentan una serie de directrices informales que servirn de apoyo en
la identificacin de los elementos de un modelo de objetos.

Identificacin de clases y objetos


Si se observa alrededor en una habitacin, existen un conjunto de objetos fsicos que
pueden ser fcilmente identificados, clasificados y definidos (en trminos de atributos y
operaciones). Pero cuando se observa el espacio de un problema en una aplicacin de
software, los objetos pueden ser ms difciles de identificar.
Se puede empezar a identificar objetos examinando el planteamiento del problema o
realizando un anlisis sintctico gramatical en la narrativa del sistema que se va a
construir. Los objetos se determinan subrayando cada nombre o clusula nominal e
introducindola en una tabla simple.
Los sinnimos deben destacarse. Si se requiere del objeto que implemente una solucin,
entonces ste formar parte del espacio de solucin; en caso de que el objeto se necesite
solamente para describir una solucin, ste forma parte del espacio del problema. Los
objetos se manifiestan de alguna de las formas siguientes:
Entidades Externas que producen o consumen informacin a usar por un sistema
computacional. Por ejemplo: otros sistemas, dispositivos, personas.
Cosas que son parte del dominio de informacin del problema. Por ejemplo:
informes, presentaciones, cartas, seales.
Ocurrencias o Sucesos que ocurren dentro del contexto de una operacin del
sistema. Por ejemplo: una transferencia de propiedad o la terminacin de una serie
de movimientos en un robot.
Papeles o Roles desempeados por personas que interactan con el sistema. Por
ejemplo: director, ingeniero, vendedor.

Unidades Organizacionales que son relevantes en una aplicacin. Por ejemplo:


divisin, grupo, equipo.
Lugares que establecen el contexto del problema y la funcin general del sistema.
Por ejemplo: planta de produccin o muelle de carga.
Estructuras que definen una clase de objetos o, en casos extremos, clases
relacionadas de objetos. Por ejemplo: sensores, vehculos de cuatro ruedas o
computadoras.
La clasificacin mostrada es una de las muchas que se han propuesto en la literatura.
Tambin es importante destacar qu no son los objetos. En general, un objeto nunca
debe tener un nombre procedimental imperativo. Por ejemplo, si los desarrolladores de un
software para un sistema grfico mdico definieron un objeto con el nombre inversin de
imagen, estaran cometiendo un sutil error. La imagen obtenida por el software pudiera
ser, en efecto, un objeto (es un elemento que forma parte del dominio de informacin),
pero la inversin de la imagen es una operacin que se aplica a dicho objeto. Inversin
debe definirse como una operacin del objeto imagen, pero no como un objeto separado
que signifique inversin de imagen. Como establecen algunos autores:
El objetivo de la orientacin a objetos es encapsular, pero manteniendo separados
los datos y las operaciones sobre estos datos
Para ilustrar cmo pueden definirse los objetos se presenta la narrativa de procesamiento
para el sistema Hogar Seguro:
El software Hogar Seguro le permite al propietario de la casa configurar el sistema de
seguridad una vez que este se instala, controlan todos los sensores conectados al
sistema de seguridad, e interacta con el propietario a travs de un teclado numrico y
teclas de funcin contenidas en el panel de control de Hogar Seguro.
Durante la instalacin, el panel de control de Hogar Seguro se usa para programar y
configurar el sistema. A cada sensor se le asigna un nmero y tipo, se programa una
contrasea maestra para activar y desactivar el sistema, y se introducen nmeros de
telfono a marcar cuando un sensor detecte un suceso.
Cuando se reconoce un suceso de sensor, el software invoca una alarma audible
asociada al sistema. Despus de un tiempo de espera especificado por el propietario

durante las actividades de configuracin del sistema, el software marca un nmero de


telfono de un servicio de control, proporciona informacin acerca de la localizacin, e
informa de la naturaleza del suceso detectado. El nmero ser remarcado cada 20
segundos hasta obtener una conexin telefnica.
Toda la interaccin con Hogar Seguro est gestionada por un subsistema de interaccin
con el usuario que toma la entrada a partir del teclado numrico y teclas de funcin, y
muestra mensajes y el estado del sistema en la pantalla LCD.
La interaccin con el teclado toma la siguiente forma. Extrayendo los nombres pueden
proponerse varios objetos potenciales:

La lista anterior debe ser continuada hasta que se hayan considerado todos los nombres
de la descripcin del proceso. Observe que se ha llamado a cada entrada en la lista un
objeto potencial. Se debe considerar cada uno de ellos antes de tomar una decisin final.
Coud y Yourdon sugieren seis caractersticas de seleccin a usar cada vez que un
analista considera si incluye o no un objeto potencial en el modelo de anlisis:
Informacin retenida el objeto potencial ser de utilidad durante el anlisis
solamente si la informacin acerca de l debe recordarse para que el sistema
funciones.
Servicios necesarios el objeto potencial debe poseer un conjunto de operaciones
identificables que pueden cambiar de alguna manera el valor de sus atributos.
Atributos mltiples durante el anlisis de requisitos, se debe centrar la atencin en
la informacin principal (un objeto con un solo atributo puede, en efecto, ser til

durante el diseo, pero seguramente ser mejor presentado como un atributo de


otro objeto durante la actividad de anlisis).
Atributos comunes puede definirse un conjunto de atributos para el objeto
potencial, los cuales son aplicables a todas las ocurrencias del objeto.
Operaciones comunes puede definirse un conjunto de operaciones para el objeto
potencial, las cuales son aplicables a todas las ocurrencias del objeto.
Requisitos esenciales entidades externas que aparecen en el espacio del
problema y producen o consumen informacin esencial para la produccin de
cualquier solucin para el sistema, sern casi siempre definidas como objetos en
el modelo de requisitos.
Para ser considerado un objeto vlido a incluir en el modelo de requisitos, un objeto
potencial debe satisfacer todas (o casi todas) las caractersticas anteriores. La decisin de
incluir objetos potenciales en el modelo de anlisis es algo subjetivo, y una evaluacin
posterior puede llegar a descartar un objeto o reincluirlo. Sin embargo, el primer paso del
Anlisis Orientado a Objetos debe ser la definicin de objetos, y la consiguiente toma de
decisiones (incluso subjetivas).
Teniendo esto en cuenta, se aplicarn las caractersticas selectivas a la lista de objetos
potenciales de Hogar Seguro:

Debe tenerse en cuenta que:


1. La lista anterior no incluye todo, hay que aadir objetos adicionales para completar
el modelo
2. Algunos de los objetos potenciales rechazados sern atributos de los objetos
aceptados (por ejemplo, nmero y tipo son atributos de sensor, y contrasea
maestra y nmero de telfono pueden convertirse en atributos de sistema)
3. Diferentes descripciones del problema pueden provocar la toma de diferentes
decisiones de aceptacin o rechazo (por ejemplo, si cada propietario tiene su
propia contrasea o fue identificado por impresiones de voz, el objeto Propietario
cumplira las caractersticas a y b y habra sido aceptado).

Especificacin de atributos.
Los atributos describen un objeto que ha sido seleccionado para ser incluido en el modelo
de anlisis. En esencia, son los atributos los que definen al objeto, los que clarifican lo
que representa el objeto en el contexto del espacio del problema. Por ejemplo, si se
tratara de construir un sistema de estadsticas para jugadores profesionales de bisbol,
los atributos del objeto Jugador seran muy diferentes de los atributos del mismo objeto
cuando se use dentro del contexto de un sistema de pensiones para jugadores
profesionales. En el primero, atributos tales como nombre, posicin, promedio de bateo,
porcentaje de estancia en el campo de juego, aos jugados y partidos jugados pueden ser
relevantes. En el segundo caso, algunos de estos atributos seran relevantes pero otros
seran reemplazados (o potenciados) por atributos como salario medio, crdito total,
opciones elegidas para el plan de pensin, direccin postal, etc.
Para desarrollar un conjunto significativo de atributos para un objeto, el analista puede
estudiar de nuevo la narrativa del proceso (o descripcin del mbito del alcance) para el
problema y seleccionar aquellos elementos que razonablemente pertenecen al objeto.
Adems, para cada objeto debe responderse el siguiente interrogante: Qu elementos
(compuestos y/o simples) definen completamente al objeto en el contexto del problema
actual?

Para ilustrar esto, se considerar el objeto Sistema definido para Hogar Seguro.
Anteriormente se indic que el propietario puede configurar el sistema de seguridad para
reflejar la informacin acerca de los sensores, sobre la respuesta de la alarma, sobre la
activacin / desactivacin, sobre identificacin, etc. Usando la notacin de la descripcin
del contenido se podra representar estos elementos de datos compuestos de la siguiente
manera:
Informacin del sensor: tipo de sensor + nmero de sensor + umbral de alarma.
Informacin de respuesta de la alarma = tiempo de retardo + nmero de telfono +
tipo de alarma.
Informacin de activacin / desactivacin: contrasea maestra + cantidad de
intentos permitidos + contrasea temporal.
Informacin de identificacin: ID del sistema + verificacin de nmero de telfono
+ estado del sistema.

Definicin de operaciones.
Las operaciones definen el comportamiento de un objeto y cambian, de alguna manera,
los atributos de dicho objeto. Ms concretamente, una operacin cambia valores de uno o
ms atributos contenidos en el objeto. Por lo tanto, una operacin debe tener
conocimiento de la naturaleza de los atributos de los objetos y deben ser implementadas
de manera tal que le permita manipular las estructuras de datos derivadas de dichos
atributos.
Aunque existen muchos tipos diferentes de operaciones, stas pueden clasificarse en tres
grandes categoras:
1. Operaciones que manipulan, de alguna manera, datos (por ejemplo: aadiendo,
eliminando, reformateando, seleccionando)
2. Operaciones que realizan algn clculo
3. Operaciones que monitorizan un objeto frente a la ocurrencia de un suceso de
control.
En una primera iteracin para obtener un conjunto de operaciones para los objetos del
modelo de anlisis, el analista puede estudiar de nuevo la narrativa del proceso (o
descripcin del mbito) del problema y seleccionar aquellas operaciones que
razonablemente pertenecen al objeto.
Para realizar esto, se estudia de nuevo el anlisis gramatical y se aslan los verbos.
Algunos de estos verbos sern operaciones legtimas y pueden conectarse fcilmente a
un objeto especfico. Por ejemplo, de la narrativa de proceso de Hogar Seguro, puede
verse que al sensor se le asigna un nmero y un tipo o que se programa una
contrasea maestra para activar y desactivar el sistema. Estas dos frases indican varias
cosas:
Que una operacin de asignacin es relevante para el objeto Sensor.
Que una operacin de programar se le aplicar al objeto Sistema.
Que activar y desactivar son operaciones aplicables al Sistema como: Estado del
sistema = [activado | desactivado]

Tras una investigacin ms detallada, es probable que haya que dividir la operacin
programar en varias sub-operaciones ms especficas requeridas para configurar el
sistema. Por ejemplo, programar implica especificar nmeros de telfonos, configurar
caractersticas del sistema (por ejemplo, crear la tabla de sensores, introducir las
caractersticas de las alarmas) e introducir la(s) contrasea(s), aunque por ahora se
especificar programar como una operacin simple.

Fin de la definicin del objeto.


La definicin de operaciones es el ltimo paso para completar la especificacin del objeto.
Las operaciones se eligieron a partir de un examen gramatical de la narrativa del proceso
del sistema. Las operaciones adicionales pueden determinarse considerando la historia
de la vida de un objeto y los mensajes que se pasan entre objetos definidos por el
sistema.
La historia de la vida genrica de un objeto puede definirse reconociendo que dicho objeto
deber ser creado, modificado, manipulado o ledo de manera diferente, y posiblemente
borrado. Para el objeto Sistema, eso puede expandirse para reflejar actividades conocidas
que ocurren durante su vida (en este caso, durante el tiempo que Hogar Seguro se
mantiene operativo).
Algunas de las operaciones pueden determinarse a partir de comunicaciones semejantes
entre objetos. Por ejemplo, el Suceso sensor enviar un mensaje a Sistema para mostrar
en pantalla la localizacin y nmero del suceso; el Panel de control enviar un mensaje de
re-inicializacin para actualizar el estado del Sistema (un atributo); la Alarma audible
enviar un mensaje de consulta, el Panel de control enviar una mensaje de modificacin
para cambiar uno o ms atributos sin reconfigurar el objeto Sistema por completo; el
Suceso sensor enviar un mensaje para llamar al nmero(s) de telfono(s) contenido(s)
en el objeto. Podrn considerarse otros mensajes para derivar operaciones
correspondientes.

La definicin del objeto resultante se muestra en la figura siguiente:

Parte 2: El Lenguaje Unificado de Modelado


(UML).
Introduccin
El UML es un lenguaje de modelado cuyo vocabulario y sintaxis estn ideados para la
representacin conceptual y fsica de un sistema. Sus modelos son precisos, no
ambiguos, completos y pueden ser trasladados directamente a una gran variedad de
lenguajes de programacin, como Java, PHP5, C#, C++ o Visual Basic, pero tambin a
tablas de bases de datos relacionales y orientadas a objetos. Es posible generar cdigo a
partir de un modelo UML (ingeniera directa) y tambinpuede construirse un modelo a
partir de la implementacin (ingeniera inversa), aunque en las dos situaciones debe
intervenir un mayor o menor grado de supervisin por parte del programador, en funcin
de lo buenas que sean las herramientas empleadas.

Bloques bsicos de construccin de UML.


Los bloques bsicos de construccin de UML son tres, los elementos, las relaciones y los
diagramas.
Los elementos son abstracciones que actan como unidades bsicas de
construccin. Hay cuatro tipos, los estructurales, los de comportamiento, los de
agrupacin y los de notacin. En cuanto a los elementos estructurales son las
partes estticas de los modelos y representan aspectos conceptuales o materiales.
Los elementos de comportamiento son las partes dinmicas de los modelos y
representan comportamientos en el tiempo y en el espacio. Los elementos de
agrupacin son las partes organizativas de UML, establecen las divisiones en que
se puede fraccionar un modelo. Slo hay un elemento de agrupacin, el paquete,
que se emplea para organizar otros elementos en grupos. Los elementos de
notacin son las partes explicativas de UML, comentarios que pueden describir
textualmente cualquier aspecto de un modelo. Slo hay un elemento de notacin
principal, la nota.

Las relaciones son abstracciones que actan como unin entre los distintos
elementos. Hay cuatro tipos, la dependencia, la asociacin, la generalizacin y la
realizacin.
Los diagramas son la disposicin de un conjunto de elementos, que representan el
sistema modelado desde diferentes perspectivas. UML tiene nueve diagramas
fundamentales, agrupados en dos grandes grupos, uno para modelar la estructura
esttica del sistema y otro para modelar el comportamiento dinmico. Los
diagramas estticos son: el de clases, de objetos, de componentes y de
despliegue. Los diagramas de comportamiento son: el de Casos de Uso, de
secuencia, de colaboracin, de estados y de actividades.

Elementos.
Elementos Estructurales.

Agrupacin de mtodos u operaciones que especifican un servicio de una clase o


componente, describiendo su comportamiento, completo o parcial, externamente visible.
UML permite emplear un crculo para representar las interfaces, aunque lo ms normal es
emplear la clase con el nombre en cursiva.

Define una interaccin entre elementos que cooperan para proporcionar un


comportamiento mayor que la suma de los comportamientos de sus elementos.

Describe un conjunto de secuencias de acciones que un sistema ejecuta, para producir un


resultado observable de inters. Se emplea para estructurar los aspectos de
comportamiento de un modelo.
Parte fsica y por tanto reemplazable de un modelo, que agrupa un conjunto de interfaces,
archivos de cdigo fuente, clases, colaboraciones y proporciona la implementacin de
dichos elementos.

Elemento fsico que existe en tiempo de ejecucin y representa un recurso computacional


con capacidad de procesar.

Elementos de Comportamiento.

Comprende un conjunto de mensajes que se intercambian entre un conjunto de objetos,


para cumplir un objetivo especifico.

Especifica la secuencia de estados por los que pasa un objeto o una interaccin, en
respuesta a eventos.

Elementos de Agrupacin.

Se emplea para organizar otros elementos en grupos.

Elementos de Notacin.

Partes explicativa de UML, que puede describir textualmente cualquier aspecto del
modelo.

Es una relacin entre dos elementos, tal que un cambio en uno puede afectar al otro.

Es una relacin estructural que resume un conjunto de enlaces que son conexiones entre
objetos.

Es una relacin en la que el elemento generalizado puede ser substituido por cualquiera
de los elementos hijos, ya que comparten su estructura y comportamiento.

Es una relacin que implica que la parte realizante cumple con una serie de
especificaciones propuestas por la clase realizada (interfaces).

Diagramas.
Diagrama de Clases.
Muestran un resumen del sistema en trminos de sus clases y las relaciones entre ellas.
Las clases abstractas tienen su nombre en itlica. Son interfaces.
Las flechas navegables son asociaciones navegables que expresan el sentido en que se
consultan los datos. El resto son asociaciones bidireccionales.

Las relaciones pueden traer asociada una multiplicidad, expresada en el lado opuesto de
la relacin. Resume el nmero de posibles instancias de una clase asociadas a una nica
instancia de la clase en el otro extremo.

Los compartimentos de la clase estan divididos en:


Nombre de la Clase.
Atributos.
Mtodos.

Los atributos y mtodos tienen el siguiente diagrama de acceso:


+ Pblico
- Privado (slo los mtodos)
# Protegido (solo las clases hija)

En las relaciones de dependencia, un cambio en la clase dependida afectar la clase


dependiente. En el siguiente ejemplo, un cambio realizado sobre Fecha afectar
directamente a Pedido.

Los atributos y mtodos estticos (de clase) se representan mediante un subrayado. Los
mtodos pueden emplear el estereotipo <<static>>.
Para denotar una relacin de auto agregacin, se emplea el siguiente diagrama:

Un departamento puede estar compuesto por varios sub departamentos, o ninguno, con la
restriccin de que el mnimo nmero de personas en los sub departamentos debe ser dos.
En UML las restricciones se expresan mediante llaves "{condicin a cumplir siempre}"

Diagrama de Objetos.
Los diagramas de objetos son anlogos a los de clases, con la particularidad de que en
lugar de encontrar clases, encontramos instancias de stas. Son tiles para explicar
partes pequeas del modelo en las que hay relaciones complejas.

Diagrama de Componentes.
Un componente es un mdulo de cdigo, de modo que los diagramas de componentes
son los anlogos fsicos a los diagramas de clases.
Muestran la organizacin y dependencias de un conjunto de componentes. Cubren la
vista de implementacin esttica de un sistema.

Diagrama de Despliegue.
Los diagramas de despliegue sirven para modelar la configuracin de hardware del
sistema, mostrando qu nodos lo componen.

Diagrama de Casos de Uso.


Describen lo que hace el sistema desde el punto de vista de un observador externo.
Estos diagramas enfatizan el que en lugar del cmo.
Para especificar esto, plantean escenarios de lo que pasa cuando alguien interacta con
el sistema. Proporcionan un resumen para cada objetivo.
Los actores son papeles que determinadas personas u objetos desempean.
Las lneas que unen a los actores con los casos de uso representan una asociacin de
comunicacin.

Estos diagramas pueden detallarse an ms para describir la idea en mayor profundidad.

El diagrama puede entenderse como "Carlos tuesta el pan en la tostadora, despus lo


unta con mantequilla y mermelada, para luego comerse el pan posiblemente acompaado
de un caf".

Este otro diagrama se puede entender como "Carlos calienta la leche, aade caf y
azcar al gusto y se lo bebe".
Los Casos de Uso pueden acompaarse de texto que enriquezca el lenguaje grfico.

Diagrama de Secuencia.
Estos diagramas describen cmo los objetos del sistema colaboran entre s.
Detallan como las operaciones se llevan a cabo en trminos de que mensajes son
enviados y cuando (en torno al tiempo).

Los corchetes [ ] expresan condicin, si son precedidos por un asterisco expresan


"iteracin mientras".
Los rectangulos verticales son barras de activacin. Representan la duracin de la
ejecucin del mensaje.

Los mensajes pueden dividirse en dos tipos, dependiendo de sus tipos de activacin:
Mensajes Asncronos: El emisor puede enviar otros mientras ste est siendo procesado.
Es independiente a otros mensajes.

Mensajes Sncronos: El emisor debe esperar que termine el tiempo de proceso de ste
para enviar nuevos mensajes.

Diagrama de Colaboracin.
Son otro tipo de diagramas de interaccin. Contienen la misma informacin que los
diagramas de secuencia, pero se centran en la responsabilidad de cada objeto en lugar
de en el tiempo en que los mensajes son enviados.

Cada mensaje tiene un nmero de secuencia. El primer nivel comienza en 1, los


mensajes que son enviados durante la misma llamada a un mtodo se numeran 1.1, 1.2
... 1.i, tantos niveles como sea necesario.

Diagrama de Estados.
Muestran los posibles estados en que puede encontrarse un objeto y las transiciones que
pueden causar un cambio de estado. El estado de un objeto depende de la actividad que
est llevando a cabo o de alguna condicin.

Comprador.

Comprador.

Los estados pueden anidarse, agrupando estados relacionados en un estado compuesto.


Puede ser necesario cuando una actividad involucra actividades concurrentes o
asncronas.

Diagrama de Actividades.
Son diagramas de flujo adornados, con mucha similitud a los diagramas de estados.
Mientras los diagramas de estados centran su atencin en el proceso que lleva a cabo un
objeto, los diagramas de actividades muestran como las actividades fluyen y las
dependencias entre ellas.

Vous aimerez peut-être aussi