Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
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.
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.
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
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:
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)
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:
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.