miércoles, 8 de julio de 2015

DIAGRAMA DE SECUENCIA Y PAQUETE

Fecha de Clase: 6- 10 julio del 2015
INTRODUCCIÓN
Los diagramas UML, son de gran importancia en el desarrollo de proyecto de software ya que permiten al cliente y  al desarrollador visualizar o construir los requisitos y la funcionalidad de los sistemas. Es por esto que los diagramas de secuencia y de paquete son fundamentales y básicos en el desarrollo de sistemas.
El diagrama de secuencia permite mostrar de forma gráfica  como los objetos actúan entre sí, mientas que el diagrama de paquete es utilizado en sistemas grandes permitiendo agrupar las partes del sistema en paquetes para comprender de manera adecuada el funcionamiento de un software y estos diagramas también sirven para la documentación de un proyecto de software.

OBJETIVO
Recolectar información de los diagramas de paquetes y de secuencia  para conocer mejor su funcionamiento.
MARCO TEÓRICO
DIAGRAMA DE SECUENCIA
Un diagrama de secuencia muestra las interacciones entre objetos ordenadas en secuencia temporal. Muestra los objetos que se encuentran en el escenario y la secuencia de mensajes intercambiados entre los objetos para llevar a cabo la funcionalidad descrita por el escenario. En aplicaciones grandes además de los objetos se muestran también los componentes y casos de uso. El mostrar los componentes tiene sentido ya que se trata de objetos reutilizables, en cuanto a los casos de uso hay que recordar que se implementan como objetos cuyo rol es encapsular lo definido en el caso de uso. Los diagramas de secuencia, formalmente diagramas de traza de eventos o de interacción de objetos, se utilizan con frecuencia para validar los casos de uso. Documentan el diseño desde el punto de vista de los casos de uso, observando qué mensajes se envían a los objetos, componentes o casos de uso y viendo a grosso modo cuánto tiempo consume el método invocado, los diagramas de secuencia nos ayudan a comprender los cuellos de botella potenciales, para así poder eliminarlos. (____, 2009)
  
 ELEMENTOS DE UN DIAGRAMA DE SECUENCIA
Según Parada (2010), los elementos de un estado de secuencia son:

OBJETOS
Los objetos se colocan cerca de la parte superior del diagrama, de izquierda a derecha y se acomodan de manera que simplifiquen el diagrama. La extensión que esta debajo y en forma descendente será una línea discontinua conocida como la línea de vida del objeto. Junto con la línea de vida del objeto se encuentra un pequeño rectángulo conocido como activación, el cual representa la ejecución de una operación que realiza el objeto. La longitud del rectángulo se interpreta como la duración de la activación.

ESTIMULOS
Un estímulo que va de un objeto a otro pasa de la línea de vida de un objeto a la de otro. Un objeto puede enviarse un mensaje a si mismo (es decir desde su línea de vida hacia su propia línea de vida). Un estímulo puede ser simple, síncrono o asíncrono. Un mensaje simple es la transferencia del control de un objeto a otro. Si un mensaje envía un mensaje síncrono, esperara la respuesta a tal mensaje antes de continuar. En el diagrama de secuencias, los símbolos de mensajes varia, por ejemplo, la punta de flecha de flecha de un mensaje simple esta formada por dos líneas, la punta de flecha de un mensaje sincrónico esta rellena y la de un asíncrono tiene una sola línea.
TIEMPO
El diagrama representa el tiempo en dirección vertical. El tiempo se inicia en la parte superior y avanza hacia la parte inferior. Un mensaje que este más cerca de la parte superior ocurrirá antes de uno que esté más cerca de la parte inferior. Con ello el diagrama de secuencias tiene dos dimensiones. La dimensión horizontal es la disposición de los objetos y la dimensión vertical muestra el paso del tiempo.

EJEMPLO DE DIAGRAMA DE SECUENCIA
Proceso de envió de documentos, en un sistema web.

DIAGRAMA DE PAQUETE
Un paquete es un mecanismo utilizado para agrupar elementos de UML,  es una parte de un modelo. Contiene elementos del modelo al más alto nivel, tales como clases y sus relaciones, máquinas de estado, diagramas de casos de uso, interacciones y colaboraciones: cualquier elemento que no esté contenido en otro. Los paquetes pueden contener otros paquetes.
Muestra cómo un sistema está dividido en agrupaciones lógicas mostrando las dependencias entre esas agrupaciones. Dado que normalmente un paquete está pensado como un directorio, los diagramas de paquetes suministran una descomposición de la jerarquía lógica de un sistema. Cada paquete puede asignarse a un individuo o a un equipo, y las dependencias entre ellos pueden indicar el orden de desarrollo requerido. (Franco, 2011)
DEPENDENCIA
Las dependencias entre paquetes resumen dependencias entre los elementos internos a ellos, es decir, las dependencias del paquete se derivan a partir de las dependencias entre los elementos individuales.
Indica que un elemento de un paquete requiere a otro de un paquete distinto. Se representa mediante una flecha discontinua con inicio en el paquete que depende del otro.

Según Sparx Systems (2007), las propiedas o los elementos que se deben tener en cuenta al momento de realizar los diagramas de paquetes son los siguientes:
Combinación de paquetes
Cuando un conector «merge» se usa en un paquete, la fuente de la combinación importa los contenidos importados y anidados del destino. Si existe un elemento dentro del origen y el destino, las definiciones del elemento origen se expandirán para incluir las definiciones del elemento contenidas en el destino. Todos los elementos agregados o actualizados por una combinación se notan por una relación de generalización desde el origen hasta el destino.
Importación de Paquetes
El conector «import» indica que los elementos dentro del paquete destino, que en este ejemplo es una sola clase, se importarán al paquete origen. El espacio de nombre del paquete origen ganará acceso a la Clase/s de Destino; el espacio de nombre del destino no está afectado.
Conectores Anidados
El conector anidado entre el paquete destino y los paquetes de origen reflejan lo que muestran los contenidos del paquete.

EJEMPLO DE DIAGRAMA DE PAQUETE
Diagram de Paquete del sistema FILESYST

CONCLUSIÓN
Puedo concluir que estos dos diagramas de UML, que se describieron en este documento, son indispensable en el desarrollo de un proyecto de software. Puesto  que cada uno de los diagramas tienen característica que los hace únicos e importantes. El diagrama de secuencia permite dar a conocer la interacción entre  los objetos pudiendo determinar el tiempo que se va a llevar a cabo una acción o una tarea. Mientras que los diagramas de paquetes son utilizados en sistemas grandes, ya que este diagrama permitirá subdividir el sistema en paquetes para  tener sistemas organizados. Estos diagramas son importantes para la realización de sistemas de alta calidad, ya que permite determinar con exactitud los requerimientos y las funcionalidades del software.
BIBLIOGRAFÍA

_______. 2009. ESTÁNDAR DIAGRAMA DE SECUENCIA. Formato. PDF

Booch, G; Rumbaugh, J; Jacobson, I. 2004. El lenguaje unificado de modelado UML. Formato PDF.

Ferre, X y Sanchez, M. 2010?. Desarrollo orientado a objetos con UML. UPM.

Franco, A. 2011. Diagrama paquetes, colaboracion y componetes.

Parada, R. 2010. Diagrama de Secuencia. El Salvador. Formato PDF.

Rosales, A y Cruz, J. 2013. Diagrama de Paquetes. Formato PDF.


Sparx Systems. 2007?. Diagrama de Paquete. Formato HTML.

miércoles, 1 de julio de 2015

RELACIONES ENTRE CLASES

Fecha de Clase: 29 de Junio - 3 de Julio del 2015

INTRODUCCIÓN
Existen varios diagramas UML, los cuales son de mucha importancia para el desarrollo de un proyecto de software. Pero estos diagramas tienen que seguir reglas para su correcto funcionamiento.
Es por esto que los diagramas de clases, están formados por clases pero estas clases no funcionan de manera independiente, estas clases están relacionadas una de otra es por esto que en este documento se hablara de los diferentes tipos de relación de clases. Existen diversas relaciones entre clases y estas son utilizadas dependiendo del problema o de la necesidad, en este documento se detallaran las más utilizadas.

OBJETIVO
Identificar los diferentes tipos de relación que existen entre las clases, para crear diagramas UML eficientes y  funcionales.

MARCO TEÓRICO
RELACIONES ENTRE CLASES
Según Velasco (2009), las relaciones entre clases juegan un papel muy importante en el modelo de objetos. Las clases, al igual que los objetos, no existen de modo aislado. Por esta razón existirán relaciones entre clases y entre objetos. Las relaciones entre clases, se deben a dos razones:
Una relación de clases puede indicar algún tipo de compartición
Una relación entre clases puede indicar algún tipo de conexión semántica.

NAVEGACION DE LAS ASOCIACIONES
Bidireccional: se pueden recorrer de los dos sentidos, se representa con una línea.
 
Unidireccional: restringe su navegación hacia un único sentido, cuando es unidireccional la línea termina en una punta de flecha que indica el sentido de la asociación.

MULTIPLICIDAD
En esta se determina cuantos objetos de cada tipo intervienen en la relación, cabe recalcar que  cada asociación tiene dos multiciplidades.

Tipos de multiciplidad entre clases

RELACIONES INVOLUTIVAS
Cuando la misma clase está asociada en los dos extremos: 

AGREGACIÓN
La agregación es un tipo de asociación que indica que una clase es parte de otra clase (composición débil). Los componentes pueden ser compartidos por varios compuestos (de la misma asociación de agregación o de varias asociaciones de agregación distintas). La destrucción del compuesto no conlleva la destrucción de los componentes. Habitualmente se da con mayor frecuencia que la composición.
La agregación se representa en UML mediante un diamante de color blanco colocado en el extremo en el que está la clase que representa el “todo”. (Megino, 2013)

COMPOSICIÓN
Composición es una forma fuerte de composición donde la vida de la clase contenida debe coincidir con la vida de la clase contenedor. Los componentes constituyen una parte del objeto compuesto. De esta forma, los componentes no pueden ser compartidos por varios objetos compuestos. La supresión del objeto compuesto conlleva la supresión de los componentes.
El símbolo de composición es un diamante de color negro colocado en el extremo en el que está la clase que representa el “todo”. (
Megino,  2013)

DEPENDENCIA
Es una relación de uso, es decir que una clase utiliza a otra. Y si esta última se altera, la anterior se puede ver afectada.

RELACIÓN DE GENERALIZACIÓN/ ESPECIALIZACIÓN
Uno de los motivos por los cuales las clases se relacionan entre ellas es el hecho de poseer propiedades comunes. Las clases con propiedades comunes se organizan en superclases. Una superclase representa una generalización de las subclases. De igual modo, una subclase de una clase dada representa una especialización  de la clase superior. La clase derivada es un tipo de clase de la clase base o súper clase. Una superclase representa una generalización de las subclases. Una subclase de la clase representa una especialización de la clase ascendente.

HERENCIA MULTIPLE
El concepto básico de la herencia múltiple suena bastante simple: puede crear un nuevo tipo heredando de más una una clase base. La sintaxis es exactamente la que espera, y en la medida en que los diagramas de herencia sean simples, la herencia múltiple  puede ser simple también.
Sin embargo, la herencia múltiple puede presentar un buen número de situaciones ambiguas y extrañas, que se cubren en este capítulo. Pero primero, es útil tener algo de perspectiva sobre el asunto.

EJEMPLO DE RELACIONES ENTRE CLASES
Ejercicio de diagrama de clases de un medio de transporte, utilizando las diferentes relaciones que se describieron en este documento.


CONCLUSIÓN
Puedo concluir que para que exista un correcto funcionamiento en los diagramas UML, es necesario conocer todos estos tipos de relaciones ya que con ellas se van a realizar la relación entre los objetos.
Los diagramas de clases, no podrían funcionar sin estas relaciones ya que las clases no sirven de nada de manera independiente,  es por esto que son necesarias las relaciones de clases, para ser capaces de crear diagramas funcionales y eficientes, que sean útiles para la documentación de proyectos de software.
Las relaciones entre clases dan a conocer las diferentes características que existen al momento de realizar una relaciones entre las clases, para así determinar que tipo de relación se está utilizando y si es la más idónea para la situación.

BIBLIOGRAFÍA
Berzal, F. 2004?. Relaciones entre clases: Diagramas de clases UML. Formato PDF. (En Línea).

Booch, G; Rumbaugh, J; Jacobson, I. 2004. El lenguaje unificado de modelado UML. Formato PDF.

Ferre, X y Sanchez, M. 2010?. Desarrollo orientado a objetos con UML. UPM.

Díaz, A. 2008. UML Relaciones, Composición, Agregación, Asociación, Dependencia, Generalización, Realización. Formato HTML. (En línea).

Velasco, J. 2009. MODELACIÓN DE RELACIONES ENTRE CLASES. Formato PDF. (En Linea).