Está en la página 1de 16

ANLISIS Y DISEO ORIENTADO A OBJETO. CLASE 13.

Anlisis y diseo Orientado a Objeto Clase 13


Esta semana describirs las caractersticas del Diagrama de Clases, identificars los elementos componentes de un diagrama de clases, identificars los componentes del diagrama para validar las estructuras en un diagrama, reconocers los componentes de un diagrama de clases y reconocers la relacin entre el modelo esttico de clases y las tablas del modelo de base de datos.

UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

Diagrama esttico de clases.


Introduccin al diagrama esttico de clases.
Como se vio en los captulos anteriores, el mundo de los diagramas UML es bastante extenso y cada diagrama tiene un propsito especfico y entre ellos muchas veces se complementan para entregar informacin ms especfica respecto a un proceso en particular, o la forma en que se deben realizar las cosas. Uno de los diagramas que nos va a permitir mostrar la forma en que los diferentes componentes del software interactan entre si, es el diagrama esttico de clases. Piensa en lo siguiente, la mayora de las cosas que conocemos estn formadas por varias partes las cuales se complementan para realizar una tarea especfica, la cual no podra ser realizada por ninguna de las partes por separado. Por ejemplo cuando quieres prender tu televisor y te encuentras a una distancia apreciable, vas a tener la tendencia natural a utilizar el control remoto, si te fijas, para lograr prender el televisor, t como objeto, ests interactuando con el control remoto (otro objeto) el cual enva una seal al televisor (otro objeto) y finalmente el televisor se enciende.

UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

Si analizas el comportamiento que tienen los objetos, podemos definir que el objeto persona enva un mensaje al objeto control remoto que a su vez se comunica con el objeto televisor para realizar una accin. De esta forma t no enciendes el televisor, es el control remoto el que solicita al televisor que se encienda. Una de las funciones del diagrama esttico de clases es el poder mostrar la forma en que los objetos se comunican y relacionan.

Utilidad del diagrama esttico de clases.


El diagrama esttico de clases como lo vimos, permite obtener informacin referente a 2 vistas en particular. La primera dice relacin con la forma en que los objetos se componen, es decir sus caractersticas y la forma en que se comportan, y la segunda es analizar la forma en que las clases se relacionan. El diagrama permite tener una vista esttica del problema el cual no va a cambiar con el tiempo. Este diagrama adicionalmente nos va a permitir avanzar en una concepcin ms acabada de cmo todos los procesos que determinamos en el diagrama de casos de uso se van a convertir en una aplicacin de software o en un proyecto de algn otro tipo (recuerda que una de las ventajas de UML es que no slo sirve para disear software). Cabe sealar que el diagrama esttico de clases no hace slo referencia a como las distintas partes del software interactan sino que tambin puede incluir hardware, y todos los otros componentes que forman un proyecto informtico. En cursos ms avanzados en la lnea de programacin vers el cmo poder interpretar este diagrama esttico de clases y convertirlo en una aplicacin o al menos en una parte de ella. Una de las ventajas de la orientacin a objetos es que las aplicaciones
UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

de software se pueden construir por partes sin que esto afecte el total de la aplicacin y adicionalmente esta parte que construyes la puedes reutilizar en otros proyectos.

Componentes del diagrama esttico de clases.


Para comprender cmo podemos construir un diagrama esttico de clases primero vamos a conocer los distintos componentes de este diagrama y que representan, adems de cmo se relacionan unos con otros y los diferentes significados que estos van a tomar en funcin de como se relacionen. Lo primero que debes entender es que existe una diferencia entre la clase y el objeto, aunque muchas veces tendemos a confundirlos producto de malos entendidos. La clase es la muy parecido al plano de construccin de un edificio o al diseo que hace un ingeniero en electrnica de un circuito impreso, es decir ac se define la forma en que se van a construir los objetos. Por lo tanto podemos decir que un objeto es la construccin fsica basndonos en las especificaciones de una clase. A continuacin se define formalmente el concepto de clases y objetos. descripcin generalizada (por ejemplo, una plantilla, un patrn o un prototipo) que describe una coleccin de objetos similares1 descriptor de un conjunto de objetos que comparten los mismos atributos, operaciones, mtodos, relaciones y comportamiento2

Ingeniera del Software: Un enfoque prctico, Roger S. Pressman, McGraw-Hill/Interamericana de Espaa, S.A.U. 2002, ISBN 84-481-3214-9 UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

Si te fijas en las definiciones anteriores, stas siempre hacen referencia a un descriptor o plantilla o prototipo, es decir en una clase es necesario hacer la definicin de las caractersticas y las acciones que realizarn los objetos. Para lograr este cometido primero debes tener en claro el modelo que quieres representar. Recuerda que una de las partes ms complejas del desarrollo de proyectos de tecnologas de informacin es tratar de definir de forma correcta los requerimientos que tenga la contraparte. Recuerda el ejemplo del bunker para el apocalipsis zombi. Si bien un bunker para un apocalipsis nuclear te podra servir, el bunker para el apocalipsis zombi tiene otras caractersticas que son necesarias, por ejemplo muchas motosierras, y por lo tanto suficiente combustible, y un sin nmero de armas corto punzantes (machetes, espadas, katanas, etc.) que sern de mucha utilidad cuando salgas a explorar los alrededores. Una vez que tengas muy claro las necesidades de la contraparte puedes comenzar a pensar en la funcionalidad que debe tener el sistema y como cada una de estas funciones est pensada para un tipo de usuario. Por ejemplo el sistema de transporte pblico tiene funciones pensadas para diferentes usuarios (pasajeros, pasajeros con capacidades de desplazamiento limitadas y choferes). Cada uno de ellos utiliza funcionalidades distintas del sistema, por ejemplo slo el chofer puede manejar. Cuando logras definir las funciones y quien las utiliza en el sistema, entonces puedes construir un diagrama de casos de uso (visto en el captulo anterior). y que paso con las clases? Cuando logras establecer el comportamiento del sistema y los usuarios que interactan con el sistema analizado, entonces ests en condiciones de pasar a la
2

El Lenguaje Unificado de Modelado. Manual de Referencia, Pearson Educacin, S.A. 2000, ISBN 84-7829-037-0 UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

siguiente etapa del proceso de anlisis, que corresponde a tratar de hacer una agrupacin de funcionalidades que implementa el sistema y agrupar estas funciones, si bien esto suena complejo, no te preocupes esto lo has hecho de forma natural durante toda tu vida, la diferencia es que no te habas dado cuenta. Para muestra un ejemplo. Supongamos que te encuentras leyendo este manual en la sala de clases, si te fijas, la sala esta llena de objetos que interactan entre si y que en conjunto logran un objetivo, que en este caso es el traspaso de conocimiento desde el docente al alumno. Ahora debes tener en cuenta que los objetos que viven en esta sala de clases, lo hacen con un propsito, este propsito est asociado a su entorno, es decir, las actividades que realiza el alumno en la sala de clases son diferentes a las acciones que realiza la misma persona cuando va a comprar al supermercado, aunque se trate de la misma persona. Lo anterior nos demuestra que existe un mbito para los objetos en el cual el objeto se comporta de una forma especfica y posee ciertas caractersticas que estn asociadas a los procesos que este realiza. Por ejemplo, para estudiar, el alumno necesita materia que le entrega el profesor, adicionalmente el profesor califica el desempeo del alumno con una nota, si te fijas en el ejemplo anterior, cada uno de los objetos realiza un proceso y ese proceso lo realiza con un conjunto de datos que les es propio o que algn otro objeto les entrega. Este proceso de abstraccin mental en el anlisis de los procesos que se ve tan complejo en realidad t lo llevas haciendo desde pequeo seguramente sin darte cuenta.

UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

Volvamos ahora hacia las clases y su representacin en el modelo. Como vimos anteriormente, en el mundo real los objetos interactan entre s y poseen datos que les permiten realizar sus procesos, esos datos a su vez definen el comportamiento posible de los objetos. Volvamos a ver un ejemplo, si tuviramos que definir un lpiz en orientacin a objetos, tendramos que definir sus caractersticas o atributos y su funcionalidad. Definicin del lpiz

En los objetos la funcin y las caractersticas siempre estn unidos y nunca se separan, de esta forma, la funcin afecta a la caracterstica y viceversa, por ejemplo cuando el lpiz raya, esta accin hace que la cantidad de tinta disminuya, cuando la cantidad de tinta llega a 0, Puede seguir rayando el lpiz? . Si analizas los comportamientos de muchos objetos que te rodean te dars cuenta de que esta unin entre las caractersticas y la funcin siempre se encuentra y es fcil de descubrir, por ejemplo, si enciendo la ampolleta con el interruptor, que otra cosa puede hacer el interruptor? , Puede volver a encender la luz?, o primero debe apagarla?. Fjate que al encender o apagar la ampolleta, estas cambiando el estado de la ampolleta (una caracterstica que posee) y al apagarla, esto tambin ocurre, pero

UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

al estar encendida, esta slo se puede apagar, te das cuenta de la relacin?, si an no queda claro, ac va otro ejemplo. Supongamos que puedes viajar al pasado y logras traer de vuelta a un tiranosaurio rex como mascota, si te fijas bien en su comportamiento, te dars cuenta de que tu nueva mascota, entre todas las cosas que hace, come bastante y adems camina y ruge, fjate adems que para cada una de esas acciones que realiza, la nueva mascota utiliza energa, slo puede realizar las acciones antes descrita si la cantidad de energa es mayor a 0. Ahora bien cada vez que realiza una accin, la cantidad de energa se disminuye una cierta cantidad de unidades, pero cuando come, la cantidad de energa acumulada aumenta. Con esto vemos que los atributos o caractersticas de una clase se ven modificados por las acciones o mtodos, de la misma forma, si el dinosaurio mascota no se alimenta, su cantidad de energa ser 0 y por lo tanto no podr realizar ninguna de las acciones antes descritas.

Muy bien, ahora te debes estar preguntando Y que paso con los grficos del diagrama?, ahora vamos a eso, en UML, la representacin de las clases, sus atributos y sus mtodos se realiza mediante una representacin grfica que muestra un rectngulo dividido en 3 partes, la superior contiene el nombre de la clase, la parte central la definicin de los atributos de las clases y la parte inferior los mtodos o comportamiento de la clase. Para muestra un ejemplo:

UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

Fjate que cada una de las secciones posee ciertas caractersticas con respecto a la forma en que stas se definen.

Nombre de la clase: Esta se debe escribir centrada en la pgina y con formato de texto ennegrecido, adicionalmente existe una nomenclatura para la escritura de los nombres que si bien no es estndar es la que se recomienda. Consiste en escribir el nombre con un formato conocido como PascalCasing, este formato nos solicita que escribamos el nombre con la primera letra en maysculas y el resto en minsculas, por ejemplo Alumno, ahora si el nombre es un nombre compuesto, sugiere que las primeras letras de cada una de las palabras tengan este formato, por ejemplo MascotaSaurio. Atributos: Los atributos se definen dentro de la clase utilizando un formato llamado camelCasing, este formato define que la primera letra se escriba en minsculas al igual que todas las otras, a menos que tengas que crear un atributo compuesto que en este caso solicita que la primera palabra la escribas en minsculas pero la primera letra de la segunda palabra la escribas con maysculas, esta misma lgica se da si tienes ms de dos palabras, por ejemplo edad, fechaNacimiento, tamaoPueraTrasera.
UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

Adems cada atributo debe definir su tipo, en UML existen algunos tipos de datos primitivos por ejemplo Integer, String, Boolean, etc, pero tambin se pueden agregar otros tipos que permitan aumentar la capacidad de tu modelo, esto se hace en funcin generalmente del lenguaje de programacin con el que se vaya a generar el software al final. Otra cosa que debes tener presente es que los atributos y los mtodos poseen niveles de visibilidad que determinan si un atributo o mtodo es visible desde fuera de la clase, esto es lo que se denomina como la interfaz de una clase, es decir el conjunto de atributos y de mtodos con los cuales el objeto se comunica con su ambiente, el siguiente ejemplo lo puede clarificar. Lo ms probable es que alguna vez hayas utilizado un reproductor de DVD, el uso general indica que el reproductor se enciende, se abre la bandeja, se pone el DVD en el interior y si todo esta correctamente conectado, se comenzar a reproducir el contenido del DVD. Ahora fjate que t interactuaste con el reproductor de varias formas, pero algunas otras quedaron ocultas, t encendiste el lser del DVD, realizaste la demultiplexin de la seal ptica para ser transformada en audio y video?, lo ms probable es que no, t slo interactuaste con los botones del equipo y con el disco en cuestin, pero el resto del proceso se realiz sin tu intervencin. En este caso la interfaz del DVD es el conjunto de botones con los cuales t puedes hacer que este funcione. Todos los objetos con los cuales interactuamos presentan una interfaz y poseen un conjunto de mtodos y propiedades con las que no podemos interactuar pues estn ocultas para nosotros. Esta caracterstica de ocultar comportamiento y acceso a las propiedades de una clase se realiza por un tema de seguridad,
UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

pues

te

imaginas

cuantos

ojos

quemados

existiran

si

te

permitieran manipular el lser o encender la chispa para prender un motor, De esta forma el atributo se define con el siguiente formato: Nombre_atributo: tipo_dato=valor_inicial Si te acuerdas del tema de la visibilidad, los atributos de las clases se clasifican en privados (-) o pblicos (+), para entender de que se trata esto, piensa en lo siguiente, cuando enciendes el DVD, la velocidad del motor que mueve el DVD es imposible que la podamos acelerar o disminuir desde afuera, en este caso la velocidad del motor es una atributo privado para la clase es decir slo se puede modificar desde dentro de la propia clase y se le anota un signo - delante. Sin embargo, cuando por ejemplo apagamos el interruptor de la ampolleta, la estamos apagando y por lo tanto estamos modificando desde afuera una caracterstica de esta clase, en este caso la propiedad se define como pblica y se le anota un signo + delante del atributo. De esta forma los atributos de la clase se anotan de la siguiente forma: -energiaZombi: Integer=100; -escudoProtector: Integer=20; Los mtodos de la clase tambin tienen una nomenclatura especfica, en este caso los mtodos se anotan de la siguiente forma: NombreMetodo(atributo:tipoDato)

UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

En este caso tambin debemos explicar algunas cosas respecto al formato, el nombre del mtodo representa el nombre del comportamiento de la clase, este nombre debe ser significativo o sea que te permita saber fcilmente que es lo que el mtodo hace, slo con leer su nombre, por ejemplo, que es ms fcil de determinar, el comportamiento de un mtodo que se llama liquidarZombi(), o un mtodo llamado x25rst45(), si te fijas, el primer mtodo se explica por si slo, mientras que el segundo no. Adicionalmente al nombre si te fijas entre parntesis aparecen variables, es decir valores que se identifican con un nombre y que son de un tipo de dato especfico, estas variables el mtodo las ocupa para poder tener informacin adicional que es parte del mensaje que el objeto recibe para poder ejecutar el mtodo. Los objetos no hacen nada a menos que otro objeto se los pida, por ejemplo el control remoto no enciende el televisor a menos que nosotros se lo solicitemos, o por ejemplo el vehculo no se mueve a menos que nosotros presionemos el pedal del acelerador, en este caso la cantidad de presin que apliquemos al pedal ser la velocidad de salida del automvil, si te fijas en este caso lo podemos representar de la siguiente forma: +acelerar(fuerza:Integer) Por lo tanto ahora podemos representar clases como corresponde, es decir:

UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

Relacin entre las clases y las tablas de un modelo entidad relacin.


Como podemos observar, al crear y definir las clases, estas se pueden analizar como un conjunto de datos sobre los cuales se aplican un conjunto de mtodos. Este anlisis de los procesos agrupando primero los datos, se parece mucho al anlisis que se realiza en la disciplina de base de datos para crear las entidades de datos que nos van a permitir agrupar los datos en registros que a su vez construyen lo que se conoce como bases de datos. Las bases de datos no son ms que un conjunto de datos agrupados alrededor de un concepto, o una idea (igual que las clases). Si bien las estructuras se parecen, estas no son iguales y a veces esto lleva a los programadores a cometer algunos errores. Por ejemplo, si te enfrentas a un problema que implique el modelar el comportamiento de un alumno en un sistema de matrcula, entonces, el modelo de la clase se podra graficar de la siguiente forma:

UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

Ahora fjate en el modelo de la entidad que se puede crear para la misma estructura.

Si te fijas, los dos elementos se parecen mucho en su definicin, la diferencia est en que la clase posee los mtodos de la clase y adicionalmente, la forma en que se relacionan los elementos son distintos.

UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

También podría gustarte