Desarrollo de Sistemas a Medida

Realizando sistemas a medida orientado a servicios

Realizamos Tiendas Online

Te construimos tu tienda online para que ofrescas tus productos y ganes más

Realizamos reportes online y en excel

Analisis de información para generar reportes

Soporte Informático

No pierdas tiempo tenemos el mejor servicio de soporte garantizado

Auditoria Informática

Te asesoramos para sacar el mayor beneficio de la tecnología

miércoles, 25 de abril de 2018

UML: Diagrama de Componentes y de Despliegue



Un diagrama de componentes es un diagrama tipo del Lenguaje Unificado de Modelado. Un diagrama de componentes representa cómo un sistema de software es dividido en componentes y muestra las dependencias entre estos componentes.

El Diagrama de Despliegue es un tipo de diagrama del Lenguaje Unificado de Modelado que se utiliza para modelar la disposición física de los artefactos software en nodos (usualmente plataforma de hardware

Adjunto la presentación:

lunes, 23 de abril de 2018

UML: Diagrama de Colaboración



Introducción.

Los diagramas de colaboración son otro tipo de diagramas de interacción, que contiene la misma información que los diagramas de secuencia, sólo que se centran en las responsabilidades de cada objeto, en lugar del tiempo en que los mensajes son enviados. Un Diagrama de Colaboración describe en forma de un grafo el comportamiento de sistemas, subsistemas y operaciones, representando los objetos que intervienen, así como los mensajes que intercambian, enumerados en el tiempo.

Definición.


El diagrama de colaboración es un tipo de diagrama de interacción cuyo objetivo es describir el comportamiento dinámico del sistema de información mostrando cómo interactúan los objetos entre sí.

Propósitos.

  • Manejar la comunicación entre los elementos del sistema. 
  • Mostrar cómo será implementada una operación. 
  • Indicar cómo deben colaborar los objetos del sistema para llevar a cabo una operación. 

Características.
  • Muestra cómo las instancias específicas de las clases trabajan juntas para conseguir un objetivo común. 
  • Implementa las asociaciones del diagrama de clases mediante el paso de mensajes de un objeto a otro. Dicha implementación es llamada "enlace". 

Ventajas.

  1. Permite elegir el orden en que pueden hacerse las cosas. 
  2. Puede describir procesos o casos de uso. 
  3. Muestra los aspectos dinámicos de un sistema. 
  4. Establece las reglas de secuencia a seguir. 
  5. Ayuda a un programador a desarrollar código a través de una descripción lógica de un proceso. 
Desventajas

La gran desventaja de los diagramas de colaboración es que no indican de forma explícita que los objetos ejecutan qué actividades ni tampoco la forma en que el servicio de mensajería trabaja entre ellos. Para mostrar tales interacciones de forma clara son necesarios los diagramas de interacción, los cuales son más utilizados en la práctica.

Elementos.

Objetos o Roles
: nodos del grafo.
Enlaces o comunicaciones: arcos del grafo.
Mensajes: llevan número de secuencia y flecha dirigida.
Anidamiento: se utiliza la numeración decimal
Iteración: colocar un * antes del número de secuencia y una cláusula de condición, si es necesario.
Bifurcación: los caminos alternativos tendrán el mismo número de secuencia, seguido del número de subsecuencia, y se deben distinguir por una condición.


Ejercicio Práctico:

Caso de Uso: Generar pedido




UML: Diagrama de secuencia


Diagrama de Secuencia.

Introducción.


El diagrama de Secuencia, muestra gráficamente los eventos que originan los actores dentro de un sistema y cómo se comunican (interactúan) entre sí a lo largo del tiempo. Esta descripción es importante porque puede dar detalle a los casos de uso, aclarándolos al nivel de mensajes.El diagrama de secuencia es más adecuado para observar la perspectiva cronológica de las interacciones, muestra la secuencia explícita de mensajes y son mejores para especificaciones de tiempo real y para escenarios complejos. La creación de los diagramas de secuencia forma parte de la investigación para conocer el sistema, por lo que es parte del análisis del mismo.

Definición.

Los diagramas de secuencia ilustran la interacción entre objetos y el orden secuencial en el que ocurren dichas interacciones, es decir cómo se comunican los objetos entre sí.

Propósitos.

Poner énfasis en el orden y momento en que se envían los mensajes a los objetos.
Proporcionar un camino a partir de los escenarios para describir las operaciones en una forma más detallada.
Mostrar la secuencia de comportamiento de un caso de uso.

Características.

Mostrar la secuencia de mensajes entre objetos durante un escenario concreto.
Cada objeto viene dado por una barra vertical.
El tiempo transcurre de arriba abajo.
Cuando existe demora entre el envío y la atención se puede indicar usando una línea oblicua

Ventajas.

Da la posibilidad de representar los mensajes en función del tiempo.
La separación de los mensajes no indica intervalos o cantidades de tiempo, solo ordenación temporal.
Es posible añadir restricciones temporales.

Desventajas.

Una representación de un diagrama de secuencia demasiado largo, puede ser difícilmente entendido por alguien ajeno al sistema.

Elementos.

OBJETOS:

Se obtienen de los diagramas de casos de uso, y se representan con dos componentes: opcionalmente el nombre del objeto, y la clase a la que pertenece.


MENSAJES:

Es una comunicación entre objetos que transmite información con la expectativa de desatar una acción. La recepción de un mensaje es, normalmente, considerada un evento Se representan mediante una flecha horizontal que va desde la línea de vida del objeto que envió el mensaje hasta la línea de vida del objeto que ha recibido el mensaje.


MÉTODOS Y OPERACIONES:

Son representados con rectángulos que se encuentran sobre la línea del objeto al cual pertenecen. La longitud de estos rectángulos se puede usar para determinar cómo se va estableciendo el control durante la secuencia, ya que un método obtiene el control desde el inicio del rectángulo hasta el final del rectángulo.


RECURSIVIDAD:

En ocasiones un objeto posee una operación que se invoca a sí misma. A esto se le conoce como recursividad y es una característica fundamental de varios lenguajes de programación.


Ejercicio Práctico:

Caso de Uso: Logueo del sistema


viernes, 20 de abril de 2018

UML: Diagrama de Paquetes


Un diagrama de paquetes en el Lenguaje Unificado de Modelado representa las dependencias entre los paquetes que componen un modelo. Es decir, muestra cómo un sistema está dividido en agrupaciones lógicas y las dependencias entre esas agrupaciones.


  • Proyecto MVC Hibernate



  • Proyecto 3 capas con Hibernate  



  • Proyecto 3 capas

jueves, 19 de abril de 2018

UML: Diagramas de Actividad

En diagrama de actividades muestra un proceso de negocio o un proceso de software como un flujo de trabajo a través de una serie de acciones. Las personas, los componentes de software o los equipos pueden realizar estas acciones.


Puede usar un diagrama de actividades para describir procesos de varios tipos, como los ejemplos siguientes:
    Un proceso de negocio o un flujo de trabajo entre los usuarios y el sistema. 
    Los pasos que se realizan en uno o varios casos de uso. 
    Un protocolo de software, es decir, las secuencias de interacciones entre componentes permitidas.
Adjunto va el documento de la presentación:

miércoles, 18 de abril de 2018

UML: Diagrama de Estados

Como ya he mencionado en ediciones anteriores y se lo repetimos a nuestros alumnos constantemente en nuestros cursos para evitarles la burocracia en su trabajo, no todos los proyectos requieren utilizar todos los artefactos de UML. Uno de estos artefactos que no veremos en cualquier proyecto es el diagrama de estados. Aunque, en ciertos proyectos no es opcional, sino indispensable utilizarlos.

Adjunto va el archivo con la presentación del tema en cuestión:


jueves, 12 de abril de 2018

UML: Diagrama de Casos de Uso

El diagrama de casos de uso representa la forma en como un Cliente (Actor) opera con el sistema en desarrollo, además de la forma, tipo y orden en como los elementos interactuan (operaciones o casos de uso).


UML: Diagrama de Clases

En ingeniería de software, un diagrama de clases en Lenguaje Unificado de Modelado (UML) es un tipo de diagrama de estructura estática que describe la estructura de un sistema mostrando las clases del sistema, sus atributos, operaciones (o métodos), y las relaciones entre los objetos.
Presentación:

lunes, 2 de abril de 2018

INTRODUCCIÓN AL UML

1.    INTRODUCCIÓN AL UML



 
1.1.    INTRODUCCIÓN

Como la guerra de métodos de modelado de objetos no hacía progresar la tecnología de objetos, Rumbaugh y Booch decidieron unificar sus trabajos en un método único: el método unificado (The Unified Method). La primera versión de la descripción del método unificado fue presentada en octubre de 1995 en un documento titulado Unified Method 0.8. Un año después se les unió Jacobson y el método unificado se transformó en UML (The Unified Modeling Language). Asimismo durante el año 1996 se crea un consorcio de colaboradores para trabajar en la definición de la versión 1.0 de UML, que agrupa a grandes empresas del sector. De esta colaboración nace la descripción del UML versión 1.0 enviada el 17 de enero de 1997 al OMG (Object Management Group), constituyéndose en un estándar en el mes de julio del mismo año. 

Sus creadores insisten en el hecho de que UML es un lenguaje de modelado de objetos y no un método de objetos. La notación UML ha sido pensada para servir de lenguaje de modelado de objetos, independientemente del método implementado. Así pues, la notación UML puede subsistir a las notaciones de Booch, OMT (Objetc Modeling Technique) o incluso OOSE (Object Oriented Software Engineering también llamada Objectory).

1.2.    MODELO CONCEPTUAL DEL UML

Para entender el UML, necesitamos constituir un modelo conceptual del lenguaje, y esto requiere aprender tres elementos importantes: los bloques de construcción básicos del UML, las reglas que dictan cómo estos bloques se pueden poner juntos, y los mecanismos comunes que se aplican a lo largo del UML. 

1.2.1.    Bloques de construcción del UML

El vocabulario del UML engloba tres tipos de bloques de construcción:

1.    Cosas
2.    Relaciones
3.    Diagramas

Las cosas son abstracciones del mundo real; las relaciones conectan estas cosas; los diagramas agrupan colecciones de cosas.

1.2.1.1.    Cosas 

Hay cuatro tipos de cosas en el UML:

1.    Cosas de estructura

Las cosas estructurales son los nombres de los modelos UML. Éstas son mayormente las partes estáticas de un modelo, representando elementos que son bien conceptuales o bien físicos. 

Los siguientes elementos – clases, interfaces, colaboraciones, casos de uso, componentes y nodos – son las cosas estructurales básicas que nos pueden ayudar en un modelo de UML. Hay algunas variaciones en estos elementos, tales como actores, señales y utilidades (tipos de clases).

2.    Cosas de comportamiento

Las cosas de comportamiento son las partes dinámicas de los modelos del UML. Éstas son los verbos de un modelo, representando el comportamiento en el tiempo y en el espacio. 

Los dos siguientes elementos – interacciones y máquinas de estado – son las cosas de comportamiento básicas que nos pueden ayudar en un modelo de UML. Semánticamente, estos elementos están conectados a varios elementos estructurales, principalmente clases, colaboraciones y objetos.

3.    Cosas de agrupamiento

Las cosas de agrupamiento son las partes de organización de los modelos del UML. Éstas son las cajas en las que se puede descomponer un modelo.

Los paquetes son las cosas de agrupamiento básicas con que podemos organizar un modelo de UML. Hay algunas variaciones, tales como subsistemas (tipos de paquetes). 

4.    Cosas de anotación

Las cosas de anotación son las partes de explicación de los modelos del UML. Éstas son los comentarios que podemos aplicar para describir cualquier elemento en un modelo.

Las notas son las cosas de anotación básicas que podemos incluir en un modelo de UML. Normalmente utilizamos notas para adornar nuestros diagramas con restricciones o comentarios que son expresadas en texto formal o informal.

1.2.1.2.    Relaciones 

Hay tres tipos de relaciones en el UML:

1.    Relaciones de asociación

Una asociación es una relación de estructura que describe un conjunto de enlaces, siendo un enlace una conexión entre objetos. La agregación es un tipo especial de asociación, representando una relación de estructura entre un todo y sus partes.

2.    Relaciones de dependencia

Una dependencia es una relación semántica entre dos cosas en las que un cambio en una cosa (la cosa independiente) puede afectar a las semánticas de la otra cosa (la cosa dependiente). También hay variaciones, tales como «includes» y «extends».

3.    Relaciones de generalización

Una generalización es una relación de especialización/generalización en la que los objetos del elemento especializado (el hijo) son sustituibles por objetos del elemento generalizado (el padre). De esta forma, el hijo comparte la estructura y el comportamiento del padre.

1.2.1.3.    Diagramas 

Un diagrama es la presentación gráfica de un conjunto de elementos, la mayoría de las veces como si se tratara de un grafo conectado de vértices (cosas) y de arcos (relaciones). Nosotros dibujamos diagramas para visualizar un sistema desde diferentes perspectivas. En teoría, un diagrama puede contener cualquier combinación de cosas y relaciones. Sin embargo, en la práctica sólo aparece un número pequeño de combinaciones que sean consistentes con las cinco vistas comprendidas en la arquitectura de un sistema de software. La notación UML incluye nueve tipos de diagramas:

1.    Diagrama de clase

Un diagrama de clase muestra un conjunto de clases, interfaces, colaboraciones y sus relaciones. Este diagrama es el que más se encuentra en los sistemas de modelado orientado a objetos. Los diagramas de clase dirigen la visión de diseño estática de un sistema.

2.    Diagrama de objeto 

Un diagrama de objeto muestra un conjunto de objetos y sus relaciones. Este diagrama representa una fotografía estática de instancias de las cosas que se encuentran en un diagrama de clase. Los diagramas de objeto dirigen la visión de diseño estática o la visión de proceso estática  de un sistema, al igual que los diagramas de clase, pero desde la perspectiva del mundo real.

3.    Diagrama de caso de uso 

Un diagrama de caso de uso muestra un conjunto de casos de uso y actores (un tipo especial de clase) y sus relaciones. Los diagramas de casos de uso dirigen la visión de caso de uso estática de un sistema. Estos diagramas son importantes a la hora de organizar y modelar los comportamientos de un sistema.

4.    Diagrama de secuencia 
5.    Diagrama de colaboración

Estos diagramas son tipos de diagramas de interacción. Un diagrama de interacción muestra una interacción, que consiste de un conjunto de objetos y sus relaciones, incluyendo los mensajes que pueden enviarse entre ellos. Los diagramas de interacción dirigen la visión dinámica de un sistema.

Un diagrama de secuencia es un diagrama de interacción que enfatiza el orden de los mensajes en el tiempo. Un diagrama de colaboración es un diagrama de interacción que enfatiza la organización estructural de los objetos que envían y reciben mensajes. Los diagramas de secuencia y los diagramas de colaboración son isomórficos, es decir, se pueden transformar el uno en el otro.

6.    Diagrama de estado 

Un diagrama de estado muestra una máquina de estado, que consta de estados, transiciones, eventos, acciones y actividades. Los diagramas de estado dirigen la visión dinámica de un sistema. Estos diagramas son importantes a la hora de modelar el comportamiento de una interfaz, clase o colaboración, y enfatizan el comportamiento de un objeto ordenado por los eventos que se suceden, lo cual es especialmente útil en los sistemas de tiempo real.

7.    Diagrama de actividad 

Un diagrama de actividad es un tipo especial de diagrama de estado que muestra el flujo de actividad a actividad dentro de un sistema. Los diagramas de actividad dirigen la visión dinámica de un sistema. Estos diagramas son importantes a la hora de modelar la función de un sistema y enfatizan el flujo de control entre los objetos. 

8.    Diagrama de componente

Un diagrama de componente muestra las organizaciones y dependencias entre un conjunto de componentes. Los diagramas de componente dirigen la visión de implementación estática de un sistema. Estos diagramas se relacionan con los diagramas de clase en el sentido de que un componente, normalmente, engloba a una o varias clases, interfaces o colaboraciones.

9.    Diagrama de despliegue

Un diagrama de despliegue muestra la configuración de los nodos que se procesan en tiempo de ejecución y los componentes que están dentro de ellos. Los diagramas de despliegue dirigen la visión de despliegue estática de una arquitectura. Estos diagramas se relacionan con los diagramas de componente en el sentido de que un nodo encierra, normalmente, uno o más componentes. 

1.2.2.    Reglas del UML

Los bloques de construcción del UML no se pueden mostrar todos ellos juntos de una forma aleatoria. Al igual que cualquier otro lenguaje, el UML tiene una serie de reglas que especifican lo que un modelo bien formado debería contemplar. Un modelo bien formado es un modelo semánticamente consistente consigo mismo y en armonía con el resto de los modelos con los que se relaciona.

El UML posee reglas semánticas para:

•    Nombres: ¿Cómo podemos llamar a las cosas, relaciones y diagramas?
•    Ámbito: ¿Cuál es el contexto que da un significado específico a un nombre?
•    Visibilidad: ¿Cuántos de esos nombres van a ser vistos y usados por otros?
•    Integridad: ¿Cuántas cosas se relacionan unas con otras de manera apropiada y consistente?
•    Ejecución: ¿Qué significa realmente ejecutar o simular un modelo dinámico?

1.2.3.    Mecanismos comunes del UML

La construcción de los bloques del UML resulta más sencilla y más armoniosa, si se realiza de acuerdo a un patrón de características comunes.
 
En UML se aplican de forma consistente estos cuatro mecanismos comunes: 

1.    Especificaciones

Detrás de cada parte de la notación gráfica del UML hay una especificación que proporciona una declaración textual de la sintaxis y semánticas de dicho bloque de construcción. Por ejemplo, detrás de un icono de clase hay una especificación que proporciona el conjunto completo de atributos, de operaciones (incluyendo sus formatos completos) y de comportamientos que engloba dicha clase; visualmente, dicho icono de clase podría mostrar únicamente una pequeña parte de esta especificación. 

2.    Adornos

La mayoría de los elementos en el UML tienen una notación gráfica y directa que proporciona una representación visual de los aspectos más importantes del elemento. Por ejemplo, la notación de clase también expone los aspectos más importantes de una clase, principalmente su nombre, sus atributos y sus operaciones. Pero una especificación de clase puede incluir otros detalles, tales como si es abstracta o la visibilidad de sus atributos y de sus operaciones. Muchos de estos detalles se pueden añadir como adornos textuales o gráficos dentro del rectángulo básico de la clase.

3.    Divisiones comunes

A la hora de modelar sistemas orientados a objetos, el mundo aparece dividido como mínimo en un par de formas. Por ejemplo, está la división de clase y de objeto. Una clase es una abstracción, mientras que un objeto es una manifestación concreta de dicha abstracción en el UML. Podemos modelar tanto las clases como los objetos. Gráficamente, el UML distingue un objeto de una clase, ya que el objeto aparece con un formato algo diferente y además subrayado.

4. Mecanismos de extensión 

El UML proporciona un lenguaje estándar para escribir modelos de software, pero no es posible para un lenguaje cerrado expresar todos los detalles de todos los modelos en todos los dominios a lo largo de todo el tiempo. Por esta razón, el UML es un lenguaje abierto, que se puede extender de forma controlada. Los mecanismos de extensión del UML incluyen:

•    Estereotipos

Un estereotipo extiende el vocabulario del UML, permitiendo que podamos crear nuevos tipos de bloques de construcción que son derivados a partir de los ya existentes y que son específicos a nuestro problema. Se distinguen claramente ya que van encerrados entre los siguientes delimitadores: «  ».

•    Valores añadidos (tagged values) 

Un valor añadido, en el sentido de una “coletilla”, extiende las propiedades de un bloque de construcción del UML, permitiendo que podamos crear nueva información en la especificación de dicho elemento. En la práctica se utilizan muy poco. 

•    Restricciones

Una restricción extiende las semánticas de un bloque de construcción del UML, permitiendo que podamos añadir nuevas reglas o modificar las ya existentes. Se distinguen claramente ya que van encerrados entre los siguientes delimitadores: { }.

1.3.    ARQUITECTURA

La visualización, especificación, construcción y documentación de un sistema de software demanda que dicho sistema pueda ser visto desde diferentes perspectivas. Las diferentes personas implicadas en el desarrollo de una aplicación, tales como usuarios finales, analistas, desarrolladores, directores de gestión del proyecto, etc., ven el sistema de diferentes formas en diferentes momentos a lo largo de la vida del proyecto. La arquitectura de un sistema es quizá la parte más importante que puede utilizarse para gestionar los diferentes puntos de vista y controlar el desarrollo iterativo e incremental de un sistema a lo largo de su ciclo de vida.

                              Representación del modelo de arquitectura de Philippe Krutchen

Esta representación de la arquitectura está basada en el modelo de Philippe Krutchen, denominado modelo de las 4 + 1 vistas, que son:

1. La vista lógica

La vista lógica describe los aspectos estáticos y dinámicos de un sistema en términos de clases y objetos y se concentra en la abstracción, el encapsulamiento y la uniformidad. El sistema se descompone en un juego de abstracciones, surgidas del ámbito del problema. Más allá de la satisfacción de las necesidades funcionales del usuario, la vista lógica permite identificar y generalizar los elementos y los mecanismos que constituyen las diferentes partes del sistema. La vista lógica trata los siguientes elementos de modelado:
•    los objetos,
•    las clases,
•    las colaboraciones, 
•    las interacciones.

2. La vista de realización o implementación

La vista de realización se preocupa de la organización de los módulos en el entorno de desarrollo. Muestra la asignación de las clases en los módulos y la asignación de los módulos en los subsistemas. Los subsistemas se organizan en niveles jerárquicos con las interfaces bien definidas. La vista de realización trata los siguientes elementos de modelado:
•    los módulos,
•    los subprogramas,
•    las tareas, 
•    los subsistemas (paquetes estereotipados).

3. La vista de los procesos

La vista de los procesos representa la descomposición en flujos de ejecución (proceso, threads, tareas, etc.), la sincronización entre flujos y la asignación de los objetos y las clases dentro de los diferentes flujos. La vista de los procesos también se preocupa de la disponibilidad del sistema, de la fiabilidad de las aplicaciones y del rendimiento. La vista de los procesos manipula los siguientes elementos de modelado:
• las tareas, los threads, los procesos;
• las interacciones. 

4. La vista de despliegue

La vista de despliegue describe los diferentes recursos de hardware y la implantación del programa en dichos recursos. La vista de despliegue cobra toda su importancia cuando el sistema es distribuido. La vista de despliegue manipula los siguientes elementos de modelado:
•    los nodos,
•    los módulos,
•    los programas principales. 
 
5. La vista de requerimientos

La vista de los casos de uso forma el adhesivo que unifica las cuatro vistas anteriores. Los casos de uso motivan y justifican las opciones de arquitectura. Permiten identificar las interfaces críticas, fuerzan a los diseñadores a concentrarse sobre los problemas concretos, demuestran y validan las otras vistas de la arquitectura. La vista de los casos de uso se concentra en los siguientes elementos de modelado:
•    los actores,
•    los casos de uso,
•    las clases,
•    las colaboraciones.