miércoles, 19 de octubre de 2011

Aprendiendo UML - Hora 9: Diagrama de Secuencias

El diagrama de secuencia UML agrega la dimensión del tiempo a las interactividades de los objetos. En el diagrama, los objetos se colocan en la parte superior y el tiempo avanza de arriba hacia abajo. La línea de vida de un objeto desciende de cada uno de ellos. Un pequeño rectángulo de la línea de vida de un objeto representa una activación (la ejecución de una de las operaciones del objeto). Puede incorporar los estados de un objeto colocándolos junto a su línea de vida.
Los mensajes (simples, sincrónicos y asincrónicos) son flechas que conectan a una línea de vida con otra. La ubicación del mensaje en la dimensión vertical representará el momento en que sucede dentro de la secuencia. Los mensajes que ocurren primero están más cerca de la parte superior del diagrama, y los que ocurren después cerca de la parte inferior.
Un diagrama de secuencias puede mostrar ya sea una instancia (un escenario) de un caso de uso, o puede ser genérico e incorporar todos los escenarios de un caso de uso. Los diagramas de secuencias genéricos con frecuencia dan la oportunidad de representar instrucciones condicionales y ciclos "mientras".
Cuando una secuencia incluya la creación de un objeto, lo representará como un rectángulo de la forma acostumbrada. Su posición en la dimensión vertical representarán el momento en que se creó.
En ciertos sistemas, una operación puede invocarse a sí misma. A esto se le conoce como recursividad. Se representa con una flecha que sale de la activación hacia si misma, y un pequeño rectángulo sobrepuesto a la activación.

Taller
Cuestionario
1. Defina mensaje sincrónico y mensaje asincrónico.
2. En un diagrama de secuencias genérico ¿cómo representaría el control de flujo implícito en una instrucción condicional?
3. ¿Cómo representaría el control de flujo implícito en una instrucción de ciclo "mientras"?
4. En un diagrama de secuencias ¿cómo representaría a un objeto recíen creado?

Ejercicios
1. Cree un diagrama de secuencias de instancias que muestre lo que ocurre cuando envía con éxito un fax. Esto es, modele las interactividades entre objetos en el mejor escenario del caso de uso "enviar fax" de una máquina de fax. Incluya los objetos de la máquina que envía, la que recibe, el fax y un "intercambio" central que encause a los faxes y a las llamadas telefónicas.
2. Cree un diagrama de secuencias genérico que incluya escenarios infructuosos (línea ocupada, error de la máquina que envía), así como del mejor escenario indicado en el ejercicio 1.

Fecha de Entrega  26 de octubre de 2011.
Producto:
Cuestionarios y Formato digital enviado por correo electrónico por grupo a oscar.orrego09@gmail.com con el asunto Metodología - TP9 y en el cuerpo del mensaje los integrantes del grupo

jueves, 6 de octubre de 2011

Aprendiendo UML - Hora 8: Diagramas de Estados

Los objetos en los sistemas modifican sus estados como respuestas a suceso y al tiempo. El diagrama de estados de UML captura estos cambios de estados. Un diagrama de estados se enfoca en los cambios de estado en un solo objeto. Un rectángulo de vértices redondondeados representa a un estado, y una línea continua con una punta de flecha representa una transición de un estado a otro.
El símbolo del estado contiene el nombre del mismo y puede tener variables y actividades del estado. Una transición puede suceder como respuesta a un suceso desencadenado, e implicar una respuesta o acción. Una transición trambién puede ocurrir por la actividad en un estado: una transición que ocurre de esta forma se conoce como transición no desencadenada. Finalmente, una transición puede ocurrir cuando se cumple una condicion particular, o condición de seguridad.
En ocasiones, un estado consta de subestados. Los subestados pueden ser secuenciales (ocurrir uno después del otro) o concurrentes (ocurrir al mismo tiempo). Un estado que consta de subestados se conoce como estado compuesto. Un estado histórico indica que un estado compuesto recordará su subestado cuando el objeto trascienda de este estado compuesto. Un estado histórico puede ser superficial o profundo. Tales términos son propios de los subestados anidados. Un estado histórico superficial recuerda sólo el subestado principal. Un estado histórico profundo recuerda todos los niveles de los subestados.
Cuando un objeto envía un mensaje que desencadena una transición en el diagrama de estados de otros objeto, tal mensaje es una señal. Una señal es, por sí misma, un objeto, y podrá crear una jerarquía de herencia de las señales.
Es necesario contar con los diagramas de estados porque facilitan la comprensión de los objetos de un sistema a los analistas, diseñadores y desarrolladores. Los desarrolladores, en particular, deben saber cómo se supone que se comportarán los objetos, dado que serán quienes tengan que establecer estos comportamientos en el software. No es suficiente implementar un objeto: los desarrolladores tienen que hacer que tal objeto haga algo.

Taller
Cuestionarios
1. ¿De qué forma difiere un diagrama de estados de uno de clases, de objetos o de casos de uso?.
2. Defina los siguientes términos: transición, suceso y acción.
3. ¿Qué es una transición no desencadenada?
4. ¿Cuál es la diferencia entre los subestados secuenciales y los concurrentes?

Ejercicios
1. Suponga que diseñará una tostadora. Cree el diagrama de estados que controle los estados del pan en la tostadora. Incluya los sucesos desencadenados, acciones y condiciones de seguridad necesarios.
2. Cada vez que un objeto envíe una señal, se creará un objeto Señal y será transmitido. En Windows, hay varias señales posibles a partir de la GUI. Suponga que la señal (el tipo de señal que envíe a Windows) sea una clase. (¿Qué tipo de clase es?). Cree un diagrama de clases de las posibles señales y muestre toda la herencia inherente.
3. La figura 8.7 le muestra los subestados concurrentes dentro del estado Operación de la GUI. Dibuje un diagrama del estado del Protector de pantalla que incluya los subestados concurrentes.

Fecha de Entrega  13 de octubre de 2011.
Producto:
Cuestionarios y Formato digital enviado por correo electrónico por grupo a oscar.orrego09@gmail.com con el asunto Metodología - TP8 y en el cuerpo del mensaje los integrantes del grupo

Aprendiendo UML - Hora 7: Diagramas de Caso de Uso

El caso de uso es una poderosa herramienta para obtener los requerimientos funcionales. Los diagramas de casos de uso agregan mayor poder: debido a que facilitan la comunicación entre los analistas y los usuarios, y entre los analistas y los clientes. En un diagrama, el símbolo del caso de uso es una elipse. El símbolo de un actor es una figura. Una línea asociativa conecta a un actor con el caso de uso.
Los casos de uso están, por lo general, dentro de un rectángulo que representan el sistema.
La inclusión se representa por una línea de dependencia con un estereotipo <<incluir>>. La extensión se representa por una línea de dependencia con un estereotipo <<extender>>. Las otras dos relaciones entre casos de uso son generalización, en que un caso de uso hereda el sentido y acciones de otro, y el agrupamiento, mismo que organiza un conjunto de casos de uso. La generalización se representa por la misma línea que muestra la herencia entre clases. El agrupamiento se representa por el icono del paquete.
Los diagramas de casos de uso figuran como parte importante en el proceso de análisis. Se empieza con entrevistas con los clientes para obtener diagramas de clases. Éstos proporcionan una base para entrevistar a los usuarios. Tales entrevistas dan por resultado un diagrama de casos de uso que muestra los requerimientos funcionales del sistema. Los diagramas resultantes de caso de uso darán los fundamentos para el diseño y desarrollo.

Taller
Cuestionario:
1. Mencione dos ventajas de crear un caso de uso.
2. Describa la generalización y el agrupamiento, las relaciones entre los casos de uso que ha visto durante esta hora. Mencione dos situaciones en las que Ud.  agruparia los casos de uso.
3. ¿Cuáles son las similitudes entre las clases y los casos de uso?. ¿Cuáles son las diferencias?.

Ejercicios
1. Bosqueje el diagrama de un modelo de casos de uso para un control remoto de una TV. Asegurese de incluir todas las funciones del control remoto como casos de uso para su modelo.
2. En el segundo ejercicio de la hora anterior indicó a los actores y casos de uso de un negocio de cómputo. Esta vez, dibuje un diagrama de casos de uso de alto nivel con base en el trabajo que realizó en tal ejercicio. Luego, genere un modelo de casos de uso para al menos uno de los casos de uso de alto nivel. En su trabajo, intente incorporar las relaciones <<incluir>> o <<extender>> que sean necesarias.

Fecha de Entrega  13 de octubre de 2011.
Producto:
Cuestionarios y Formato digital enviado por correo electrónico por grupo a oscar.orrego09@gmail.com con el asunto Metodología - TP7y en el cuerpo del mensaje los integrantes del grupo

miércoles, 28 de septiembre de 2011

Aprendiendo UML - Hora 6: Introducción a los Casos de Uso

El caso de uso es una estructura para describir la forma en que un sistema lucirá para los usuarios potenciales. Es una colección de escenarios iniciados por una entidad llamada actor (una persona, un componente de hardware u otro sistema). Un caso de uso debería dar por resultado algo de valor ya sea pra el actor que lo inició o para otro.
Es posible volver a utilizar casos de uso. Una forma ("inclusión") es utilizar los pasos de un caso de uso como parte de la secuencia de pasos de otro caso de uso. Otra forma ("extensión") es crear un nuevo caso de uso mediante la adición de pasos a un caso de uso existente.
La entrevista directa con los usuarios es la mejor técnica para generar casos de uso. Cuando se crea un caso de uso, es importante destacar las condiciones para inciar el caso de uso, y los resultados obtenidos como consecuencia del mismo.
Hará las entrevistas a los usuarios después de entrevistar a los clientes y generar una lista de prospectos de clases. Esto le dará un fundamento en la terminología que utilizará para hablar con los usuarios. Es una buena idea entrevistar a un grupo de usuarios. El objetivo es generar un conjunto de casos de usos y todos los actores posibles.

Taller
Esta hora se basó en teoría más que en el UML. En este taller, el objetivo será comprender los conceptos teóricos y aplicarlos en diversos contextos.
Cuestionario
1. ¿Cómo se llama a la entidad que inicia un caso de uso?
2. ¿Qué entiende con "incluir un caso de uso"?
3. ¿Qué se entiende con "extender un caso de uso"?
4. ¿Un caso de uso es lo mismo que un escenario?
Ejercicios
1. En el caso del ejemplo de la maquina de gaseosas, cree otro caso de uso que incluya a los casos de uso "exhibir el interior" y "cubrir el interior".
2. Los casos de uso pueden ayudarle a analizar un negocio y un sistema. Imagine un gran comercio de equipos de cómputos que venda hardware, periféricos y software. ¿Quiénes serian los actores?. ¿Cuáles serían algunos de los principales casos de uso?. ¿Cuáles serían algunos de los escenarios dentro de cada caso de uso?.

Fecha de Entrega  06 de octubre de 2011.
Producto:
Cuestionarios y Formato digital enviado por correo electrónico por grupo a oscar.orrego09@gmail.com con el asunto Metodología - TP6 y en el cuerpo del mensaje los integrantes del grupo

jueves, 15 de septiembre de 2011

Aprendiendo UML - Hora 5: Agregación, composición, interfaces y realización

Para completar sus nociones de clases y la forma en que se conectan, es necesario comprender algunas relaciones adicionales. Una agregación establece una asociación para conformar un todo: una clase "todo" se genera de clases que la componen. Un componente en una agregación puede ser parte de más de un todo. Una composición es una conformación  muy íntimamente ligada con la agregación en el sentido de que un componente de una composición puede ser parte solamente de un todo. La representación del UML de las agregaciones es similar a la representación de las composiciones. La línea de asociación que uno la parte con un todo tiene un rombo. en una agregación, el rombo no está lleno, en tanto que en una composición sí lo está.

Un diagrama de contexto enfoca la a tención en una clase especifica dentro de un sistema. un diagrama de contexto de composición es como un mapa detallado de un mapa mayor. Muestra un diagrama de clases anidado dentro de un gran símbolo rectangular de clase. Un diagrama de contexto de sistema muestra la forma en que el diagrama de clases compuestas se relacionan con otros objetos del sistema.

Una realización es una asociación entre una clase  y una interfaz, una colección de operaciones que cierta cantidad de clases podrá utilizar. Una interfaz se representa como una clase sin atributos. Para distinguirla de una clase cuyos atributos hayan sido omitidos del diagrama, el estereotipo <<interfaz>> aparecerá por encima del nombre de la interfaz. Otra posibilidad es la de anteceder el nombre de la interfaz con una "I" mayúscula. La realización se representa en el UML mediante una línea discontinua con una punta de flecha en forma de triángulo sin rellenar que conecta a la clase con la interfaz. Otra forma para representar una realización es con una línea continua que conecte a una clase con un pequeño circulo, para que el círculo se interprete como la interfaz.

En términos de visibilidad, todas las operaciones en una interfaz son públicas, de modo que cualquier clase podrá utilizarlas. Los otros dos niveles de visibilidad son protegido (la funcionalidad se extiende a las clases secundarias de aquella que contiene los atributos y operaciones) y privado (atributos y operaciones que se pueden utilizar sólo dentro de la clase que los contiene). Un signo de suma (+) denota a la visibilidad pública, el símbolo de número (#) la protegida y el guión (-) la privada.

El ámbito es otro aspecto de los atributos y operaciones. En un àmbito de instancia, cada objeto de una clase cuenta con su propio valor en un atributo u operación, en un ámbito de archivador, sólo hay un valor para un atributo u operacción en particular a través de un conjunto de objetos de una clase. Los objetos que no estén en este conjunto no podrán acceder al valor contenido en el ámbito de archivador.

Taller
El cuestionario y los ejercicios verificarán y fortalecerán su conocimiento respecto al tema de las agregaciones, composiciones, contextos e interfaces.

Cuestionario
1. ¿Cuál es la diferencia entre una agregación y una composición?
2. ¿Qué es la realización?
3. Mencione los tres niveles de visibilidad y describa lo que significa cada uno de ellos.

Ejercicios
1. Cree un diagrama de contexto de composición de una revista. Tome en cuenta la tabla de contenido, la editorial, los artículos y las columnas. Luego, cree un diagrama de contexto del sistema que muestre a la revista junto con el suscriptor y el comprador en el puesto de revistas.
2. En la actualidad, el tipo más popular de GUI es la interfaz WIMP (ventanas, iconos, menús y puntero, por sus siglas en ingles). Dibuje un diagrama de clases de la interfaz WIMP, y haga uso de todo el conocimiento adecuado del UML que ha adquirido hasta ahora. Además de las clases indicadas en las siglas, incluya los elementos relacionados como las barras de desplazamiento y el cursos, así como cualquiera de las otras clases necesarias.

Fecha de Entrega  22 de septiembre de 2011.
Producto:
Cuestionarios y Formato digital enviado por correo electrónico por grupo a oscar.orrego09@gmail.com con el asunto Metodología - TP5 y en el cuerpo del mensaje los integrantes del grupo

jueves, 8 de septiembre de 2011

Aprendiendo UML - Hora 4: Uso de las relaciones


Sin las relaciones, un modelo de clases sería poco menos que una lista de cosas que representarían  un vocabulario. Las relaciones le muestran cómo se conectan los términos del vocabulario entre sí para dar una idea de la sección del mundo que se modela. La asociación es la conexión conceptual fundamental entre clases. Cada clase en una asociación juega un papel, y la multiplicidad especifica cuántos objetos de una clase se relacionan con un objeto de la clase asociada. Hay muchos tipos de multiplicidad. Una asociación se representa como una línea entre los rectángulos de clases con los papeles y multiplicidades en cada extremo. Al igual que una clase, una asociación puede contener atributos y operaciones.

Una clase puede heredar atributos y operaciones de otra clase. La clase heredada es secundaria de la clase principal que es de la que se hereda. Descubrirá la herencia cuando encuentre clases en un modelo inicial que tenga atributos y operaciones en común. Las clases abstractas sólo se proyectan como bases de herencia y no proporcionan objetos por sí mismas. La herencia se representa como una línea entre la clase principal y la secundaria, con un triángulo sin rellenar que se adjunto (y apunta a) la clase principal.

En una dependencia, una clase utiliza a otra. El uso más común de una dependencia es mostrar que una firma en la operación de una clase utiliza a otra clase. Una dependencia se proyecta como una línea discontinua que reúne a las dos clases en la dependencia, con una punta de flecha en forma de triángulo sin relleno que adjunta (y apunta a) ala clase de la que se depende.

Taller
El cuestionario y los ejercicios se han diseñado para reafirmar sus conocimientos del UML en el área de las relaciones. Cada pregunta y ejercicio requiere que Ud. piense en la simbología del modelado que ha aprendido y la aplique a una situación.

Cuestionarios
1. ¿Cómo representaría la multiplicidad?
2. ¿Cómo descubrirá la herencia?
3. ¿Què es una clase abstracta?
4. ¿Cuál es el efecto de un calificador?

Ejercicios
1. Tome como base el modelo del Basquet de la Hora 3, y agregue vínculos que expresen las relaciones que ha visto en esta hora. Si conoce el juego de basquet, siéntase con libertad para agregar los vínculos que representen su conocimiento.
2. De acuerdo con un viejo refran "Un abogado que se defiende a sí mismo, tiene por cliente a un tonto". Cree un modelo que refleje esta pieza de sabiduría.

Fecha de Entrega  15 de septiembre de 2011.
Producto:
Cuestionarios y Formato digital enviado por correo electrónico por grupo a oscar.orrego09@gmail.com con el asunto Metodología - TP4 y en el cuerpo del mensaje los integrantes del grupo.

jueves, 1 de septiembre de 2011

Aprendiendo UML - Hora 3: Uso de la Orientación a Objetos


Un rectángulo es, en el UML, la representación simbólica de una clase. El nombre, atributos, operaciones y responsabilidades de la clase se colocan en áreas delimitadas dentro del rectángulo. Puede utilizar un estereotipo para organizar las listas de atributos y operaciones y además abreviar una clase al mostrar sólo un subconjunto de sus atributos y operaciones. Esto hace un diagrama de clases menos complejo.

Podrá mostrar el tipo de un atributo, su valor inicial y enseñar los valores con que funciona una operación, así como sus tipos. En una operación, esta información se conoce como firma.

Para reducir la ambigüedad en la descripción de una clase agregue restricciones. El UML también le permite indicar mayor información respecto a una clase mediante notas adjuntas al rectángulo que la representa.

Las clases representan el vocabulario de un área del conocimiento. Las conversaciones con el cliente o un experto en el área dejarán entrever los sustantivos que se convertirán en clases en un modelo, y los verbos se transformarán en operaciones. Podrá utilizar un diagrama de clases como una forma de estimular al cliente a que diga más respecto a sus áreas y que ponga en evidencia cierta información adicional.

Taller
Para repasar lo que ha aprendido respecto a la orientación a objetos, intente responder a las siguientes preguntas.

1. ¿Cómo representa una clase en el UML?
2. ¿Qué información puede mostrar un símbolo de clase?
3. ¿Qué es una restricción?
4. ¿Para qué adjuntaría una nota a un símbolo de clase?

Ejercicios
1. He aquí una breve (e incompleta) descripción del futbol:
Un equipo de futbol consiste en 11 jugadores de cancha (1 arquero y el resto jugadores de cancha que, en ocasiones, se organizan en cuatro defensas, tres centrales y tres delanteros). Los jugadores pueden usar cualquier parte del cuerpo (excepto las manos) para introducir la pelota en el arco del equipo contrario. La única excepcion a esta regla la tiene el arquero, quien puede utilizar también las manos para jugar con la pelota, pero sólo dentro del área de meta. El campo de juego es un rectángulo de una longitud máxima de 120 m y mínima de 90 m; y con un ancho no mayor de 90m, ni menor de 45. Para partidos internacionales, la longitud será de 110 m como máximo y 100 como mínimo; y un ancho no superior a 75 m ni inferior a 64. En cualquier caso, deberá ser mayor la longitud que el ancho. El campo de juego se dividirá en dos mitades transversales de igual tamaño. El centro de la cancha será marcado con un punto visible, alrededor del cual se trazará una circunferencia de 9.15 m de radio. El objetivo del juego es pasar la pelota a los delanteros, quienes están mejor preparados para meter la pelota en el arco. El arquero es la última línea de defensa que intentará bloquear, con cualquier parte de su cuerpo, los tiros de sus opositores. Cada vez que evita un gol, es decir, que la pelota no entra en el arco, habrá salvado su equipo. Cada gol equivale a un punto. El juego dura 90 minutos, divididos en dos períodos de 45 minutos cada uno.

Use la información anterior para crear un diagrama como el de la figura 3.15. Si ud. conoce más de futbol de lo que he descrito, agregue tal información a su diagrama.

2. Si ud. conoce más del basquet de lo que hay en la figura 3.15, agregue la información a tal diagrama.

Fecha de Entrega8 de septiembre de 2011.

Producto:
Cuestionarios y Formato digital enviado por correo electrónico por grupo a oscar.orrego09@gmail.com con el asunto Metodología - TP3 y en el cuerpo del mensaje los integrantes del grupo.