manual_uml

Upload: oscar-gallardo

Post on 07-Oct-2015

5 views

Category:

Documents


0 download

DESCRIPTION

manual de uml

TRANSCRIPT

  • 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 .

    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.