jueves, 31 de marzo de 2016

Diagramas de Estructura Parte 3

8. Diagrama de Despliegue: es un tipo de diagrama UML que muestra las relaciones físicas de los distintos nodos que componen un sistema y el reparto de los componentes sobre dichos nodos. Los diagramas de despliegue son los complementos de los diagramas de componentes que, unidos, proveen la vista de implementación del sistema. Describen la topología del sistema la estructura de los elementos de hardware y el software que ejecuta cada uno de ellos. Los diagramas de despliegue representan a los nodos y sus relaciones. Los  nodos son conectados por asociaciones de comunicación tales como enlaces de red, conexiones TCP/IP. Los diagramas de despliegue muestran la configuración en funcionamiento del sistema incluyendo su software y hardware. Para cada componente de un diagrama es necesario que se deba documentar las característica técnicas requeridas, el tráfico de red, el tiempo de respuesta.

Estructura
  
  • Nodo: Es un objeto físico en tiempo de ejecución que representa un recurso computacional, generalmente con memoria y capacidad de procesammiento. Un nodo es un elemento de hardware o software.
  • Instancia de nodo: Una instancia se puede distinguir desde un nodo por el hecho de que su nombre está subrayado y tiene dos puntos antes del tipo de nodo base. Una instancia puede o no tener un nombre antes de los dos puntos.
  • Estereotipo de nodo: Estereotipos, son cosas u objetos que se repiten sin variación. El  estereotipo de un nodo es la manera de poder verificar que tipo de nodo es el que se esta observando.
  • Artefactos: Un artefacto es un producto del proceso de desarrollo de software, que puede incluir los modelos del proceso (modelos de Caso de uso, modelos de Diseño, etc.), archivo fuente, ejecutables, documentos de diseño, reportes de prueba, prototipos, manuales de usuario etc. Donde un artefacto es un conjunto de componentes.
  • Asociación: Una asociación representa una ruta de comunicación entre los nodos. Donde esta asociación va incluida con la misma dependencia del diagrama de componentes.

Ejemplo

Tenemos un diagrama de despliegue a nivel de especificación.

 
 9. Diagrama de Paquetes: se usan para reflejar la organización de paquetes y sus elementos. Cuando se usan para representaciones, los diagramas de paquete de los elementos de clase se usan para proveer una visualización de los espacios de nombres. Los usos m'as comunes  para los diagramas de paquete son para organizar diagramas de casos de uso y diagramas de clase, a pesar de que el uso de los diagramas de paquete no es limitado a estos elementos UML. El diagrama de paquetes muestra como un sistema está dividido en agrupaciones lógicas mostrando las dependencias entre 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. Los paquetes están normalmente organizados para maximizar la coherencia interna dentro de cada paquete y minimizar el acoplamiento externo entre los paquetes. Con estas líneas maestras sobre la mesa, los paquetes son buenos elementos de gestión. Cada paquete puede asignarse a un individuo o a un equipo, y las dependencias entre ellos pueden indicar el orden de desarrollo requerido.

Estructura
  • Paquetes: Agrupación de elementos que puden ser casos de usos, clases o componentes, es posible anidar paquetes entre si se representa mediante un símbolo en forma de carpeta el nombre se coloca en la pestaña y el contenido dentro de la carpeta visibilidad de los elementos deben  indicarse con los símbolos "+","-","#".
  • Dependencias: 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 de otro.
Se estructura mediante nombre del paquete, contenido del paquete y líneas de dependencia.

Ejemplo

Un cajero automático es una máquina expendedora usada para extraer dinero utilizando  una tarjeta magnética (tarjeta de crédito por ejemplo), sin necesidad de personal de banco. En México se le conoce como ATM por sus iniciales en inglés AutomatedTeller Machine. Suele tener una pequeña impresora matricial o térmica para imprimir los resguardos de la operación y las libretas de ahorros. El uso del cajero automático supone un ahorro para el banco, porque ahorra en personal que no tiene que atender a los clientes para ofrecer servicios básicos. Por este mótivo, mucha gente  ve abusivo que los bancos cobren una couta anual por la tarjeta de créditos.

Descripción: Se desea realizar  un sistema de cajero automático para un banco en donde el cliente  puede realizar diversas transacciones a través de su tarjeta de crédito. Este sistema debe verificar la cuenta y los datos de la tarjeta, dar la opción de realizar diversas transacciones, devolver una respuesta a la opción seleccionada por el cliente, verificar la cuenta del cliente y al terminar la transacción, devolver la tarjeta al cliente.

Objetivo General: Realizar diferentes transacciones utilizando una tarjeta de crédito para identificar al cliente.

Objetivos Específicos: Analizar el funcionamiento del cajero automático como sistema y dar a conocer las interacciones que existen entre el sistema y el usuario.


 
 
 

miércoles, 30 de marzo de 2016

Diagramas de Estructura Parte 2

6. Diagrama de Objetos: Es un diagrama que representan un único ejemplo de una clase  y se utilizan para ilustrar un punto de datos en su aplicación. Los diagramas de objetos UML utilizan una notación similar a los diagramas de clases y se utilizan para ilustrar una instancia de una clase en un momento dado. Los diagramas de objetos pueden ayudar a explicar las clases y su herencia. A veces se dibujan durante el proceso de planificación de clases o para ayudar a partes interesadas para quienes los diagramas de clases sean demasiado abstracto.

Estructura

  • Objeto: Se representa similar a una clase (un rectángulo) con la diferencia que el nombre está subrayado. El nombre del objeto está a la izquierda de los dos puntos (:) y el nombre de la clase a la derecha.
  • Asociaciones: Una asociación implica que dos elementos del modelo tiene una relación - usualmente implementada como una variable de instancia de una clase. Este conector puede incluir roles nombrados en cada extremo, cardinalidad, dirección y restricciones. Una asociación es el tipo de relación general entre elementos. Para más de dos elementos, un elemento de la caja de herramientas de representación diagonal también se puede usar. Cuando se genera código para diagramas de clase, las asociaciones se conviertenen variables de instancia en la clase de destino.
  • Generalizaciones: Una generalización se usa para indicar herencia. Dibujada desde un clasificador específico a un clasificador general, la implicación general es que el origen hereda las característica del destino.
  • Agregaciones: Las agregaciones se usan para describir elementos que están compuestos de componentes más pequeños. Las relaciones de agregación se muestran por una punta de flecha con forma de diamante apuntando hacia el destino o clase padre. Una forma más fuerte de agregación - una agregación compuesta - se muestra por una flecha con forma de diamante negro y se usa donde los componetes se pueden incluir en un máximo de una compocisión a la vez. Si el padre de una agregación compuesta se elimina, usualmente todas sus partes se eliminan con el mismo; sin embargo una parte puede ser individualmente eliminada desde una composición sin tener que eliminar toda la composición. Las compsiciónes son relaciones transitivas, asimétricas y pueden ser recursivas.
  • Atributo: Cada atributo es nombrado y se le asigna un valor.

Ejemplo:

 7. Diagrama de Estructura Compuesta: Es un  diagrama que muestra la estructura interna de un clasificador, incluyendo sus puntos de interacción a otras partes del sistema. Esto muestra la configuración y releación de las partes que juntas realizan el comportamiento de clasificador contenido. Los elementos de clase han sido descritos en gran detalle en la sección en los digramas de clases. Esta sección describe la forma en que las clases se pueden mostrar como elementos compuestos exponiendo interfaces y conteniendo puertos y partes.

Estructura

  • Parte: es un elemento que representa un conjunto de una o más instancias que pertenecen a una instancia  del clasificador contenida. Por ejemplo, si una instancia de diagrama se apropia de un conjunto de elementos gráficos, luego los elementos gráficos se pueden representar como partes, si fuera útil hacer eso para modelar algún tipo de relación entre ellos. Tener en cuenta que una parte se puede quitar de sus padres antes de que el padre se elimine, para que la parte no se elimine al mismo tiempo. Una parte se muestra como rectángulo no adornado dentro del cuerpo de una clase o del elemento correspondiente.
  • Puerto: Es un elemento escrito que representa una parte visible externa de una instancia del clasificador contenido. Los puertos definen la interacción entre un clasificador y su entorno. Un puerto puede aparecer en el límite de la parte contenida, una clase o una estructura compuesta. Un puerto puede especificar los servicios que un clasificador provee así como también los servicios que este requiere de su entorno. Un puerto se muestra como un rectángulo nombrado en el borde del límite de su clasificador apropiado.
  • Interfaces: Es similar a una clase pero con número de restricciones. Todas las operaciones de la interfaz son públicas y abstractas, y no proveen ninguna implementación predeterminada. Todos los atributos de la interfaz deben ser constantes. Sin embargo, mientras que una clase puede solo heredar de una super-clase, puede implementar interfaces múltiples. Una interfaz, cuando está sola en un diagrama, se muestra como un rectángulo del elemento clase con la clave <<interfaz>> y con su nombre en itálica para denotar que es abstracto, o se muestra como un círculo. Tener en cuenta que la notación del círculo no muestra las operaciones de la interfaz. Cuando las interfaces se muestran como si fueran apropiadas por las clases, se refieren a ellas como interfaces expuestas. Una interfaz expuesta se puede definir como provista o requerida. Una interfaz provista es una afirmación que el clasificador contenido provee a las operaciones definidas por el elemento de la interfaz nombrada y se define dibujando un vínculo de realización entre la clase y la interfaz. Una interfaz requerida es un estado que el clasificador puede comunicar con algún otro clasificador que provee operaciones definidas por el elemento de la interfaz nombrada y se define dibujando un vínculo de dependencia entre la clase y la interfaz. Una interfaz provista se muestra como una "pelota en un palo" adjuntaba al borde de un elemento clasificador.
  • Delegar: Un conector delegar se usa para definir los trabajos internos de los puertos e interfaces externas del componente. Un conector delegar se muestra como una flecha con un estereotipo <<delegar>>. Esto conecta un contrato externo de un componente como se muestra por sus puertos a la realización interna del comportamiento de la parte del componente.
  • Colaboración: Una colaboración define un conjunto de roles co-operativos usados colectivamente para ilustrar una funcionalidad específica. Una colaboración debería solo mostrar los roles y los atributos requeridos para lograr sus tareas o funciones definidas. Aislar los roles primarios es un ejercicio de simplificar la estructura y clasificar el comportamiento, y también provee para poder re-usarlo. Un elemento de colaboración a menudo implementa un patrón. Un elemento de colaboración se muestra como un elipse.
  • Enlace de Roles: Un conector de enlace de roles  se dibuja desde una colaboración  a un clasificador que completa el rol. Esto se muestra como una línea de trazos como una punta de flecha y el estereotipo <<enlace de roles>>.
  • Representa: Un conector representa se puede dibujar desde una colaboración a un clasificador para mostrar que una colaboración se usa en el clasificador. Se muestra como una línea de trazos con una punta de flecha y el estereotipo <<representa>>.
  • Ocurrencia: Un conector ocurrencia se puede dibujar desde una colaboración a un clasificador para mostrar que la colaboración representa (sic) el clasificador. Esto se muestra como una línea de trazos y el estereotipo <<ocurrencia>>.

Ejemplo

Este son los ejemplos de diagramas de estrcuctura completa  de un cajero ATM, sus elementos están en inglés.


 

lunes, 28 de marzo de 2016

Diagramas de Estructura Parte 1

4. Diagrama de Clases: Muestra los bloques de construcción de cualquier sistema orientado a objetos. Los diagramas de clases describen la vista estática del modelo o parte del modelo, describiendo sus atributos y comportamientos tienen en lugar de detallas los modelos para realizar operaciones. Los diagramas de Clase son más útiles para ilustrar relaciones entre clases e interfaces. Las generalizaciones, agregaciones y asociaciones son todas valiosas al reflejar herencias, composición o uso y conexiones respectivamente.

Estructura
 
  • Clases: Una clase es un elemento que define los atributos y comportamientos que un objeto puede generar. El comportamiento es el que se describe por posibles mensajes que la clase pueda comprender conjuntamente con las operaciones que son apropiadas para cada mensaje. Las clases pueden también contener definiciones de valores etiquetados de restricciones y estereotipos. Las clases se representan por rectángulos que muestran el nombre de la clase y opcionalmente el nombre de las operaciones y atributos. Los comportamientos se usan para dividir dividir el nombre  de la clase, atributos y operaciones. Adicionalmente las restricciones, valores iniciales y parámetros se pueden asignar a clases.
  • Interfaces: Una interfaz es una especificación que los implementadores han acordado realizar. Es un contrato. Si se realiza una interfaz, se garantiza que las clases soporten un comportamiento requerido, que permite que el sistema trate los elementos no relacionados en la misma manera -es decir a través de la interfaz común. Las interfaces se pueden dibujar en un estilo similar al de una clase, con operaciones especificadas, pero se indica que es interface  en el título. También se pueden dibujar como un círculo con ninguna operación explicita detallada. Cuando se dibujan como un círculo, se dibujan vínculos de realización a la forma de la notación sin flechas de destino.
  • Tablas: Una tabla es auna clase estereotipada. Esto dibuja con un pequeño icono de la tabla en la esquina superior derecha. Los atributos de la tabla son <<columnas>> estereotipadas. La mayoría de las tablas tendrán una clave primaria , siendo uno o más campo los que forman una combinación única usada para acceder la tabla, más una operación de clave primaria que es <<PK>> estereotipada. Algunas tablas tendrán  una o más clave foráneas, siendo uno o más campos que juntos trazan a una clave foránea en una tabla relacionada, más una operación de clave foránea que es <<FK>> estereotipada.
  • Asociaciones: Una asociación implica que dos elementos del modelo tiene una relación - usualmente implementada como una variable de instancia de una clase. Este conector puede incluir roles nombrados en cada extremo, cardinalidad, dirección y restricciones. Una asociación es el tipo de relación general entre elementos. Para más de dos elementos, un elemento de la caja de herramientas de representación diagonal también se puede usar. Cuando se genera código para diagramas de clase, las asociaciones se conviertenen variables de instancia en la clase de destino.
  • Generalizaciones: Una generalización se usa para indicar herencia. Dibujada desde un clasificador específico a un clasificador general, la implicación general es que el origen hereda las característica del destino.
  • Agregaciónes: Las agregaciones se usan para describir elementos que están compuestos de componentes más pequeños. Las relaciones de agregación se muestran por una punta de flecha con forma de diamante apuntando hacia el destino o clase padre. Una forma más fuerte de agregación - una agregación compuesta - se muestra por una flecha con forma de diamante negro y se usa donde los componetes se pueden incluir en un máximo de una compocisión a la vez. Si el padre de una agregación compuesta se elimina, usualmente todas sus partes se eliminan con el mismo; sin embargo una parte puede ser individualmente eliminada desde una composición sin tener que eliminar toda la composición. Las compsiciónes son relaciones transitivas, asimétricas y pueden ser recursivas.
  • Clase Asociación: Una clase asociación es una estructura que permite una conexión de asociación para tener conexiones y atributos.
  • Dependencias: Una dependencia se usa para modelar un alto rango de relaciones dependientes entre elementos del modelo. Esto se usaría normalmente tempranamente en el proceso de diseño donde se conoce que hay algún tipo de vehículo entre dos elementos pero es muy temprano para saber exactamente cual es la relación. Luego en el proceso de diseño, las dependencias serán estereotipadas (los estereotipos disponibles incluyen <<instanciar>>, <<trazar>>, <<importar>> y otros) o reemplazar con un tipo de conector más específico.
  • Trazado: La relación de trazado es una especialización de una dependencia, vinculado elementos del modelo o conjuntos de elementos que representan la misma idea a través de los modelos. Los trazados se usan a menudo para rastrear cambios de requisitos y del modelo. Como los cambios peuden ocurrir en dos direcciones, la orden de esta dependencia usualmente se ignora. Las propiedades de relación pueden especificar la asignación de trazado, pero el trazado es usualmente bi-direccional, informal y raramente computable.
  • Realizaciones: El objeto fuente implementa o realiza el destino. Realizar se usa para expresar trazabilidad e integridad en el modelo - un proceso de negocio o requisitos se realiza por uno o más casos de uso que a su vez se realizan por un componente, etc. Asignando requisitos, clases, etc., a través del diseño de su sistema, hacia arriba a través de los niveles de abstracciones del modelo, asegura las imágenes grandes de su sistema, recuerda y refleja todas las imágenes pequeñas y detalla esa restricción y la define. Una relación se muestra como una línea de trazos con una punta de flecha sólida y el estereotipo <<realizar>>.
  • Anidamiento: Un anidamiento es un conector que muestra que el elemento fuente se anida dentro del elemento destino.
Ejemplo: 

Crear un proyecto UML llamado Asociación en el que se diseñe un diagrama de clases que modele el proceso de dar de alta a cada una de las personas que se apuntan a una asociación.
De cada persona interesa saber sus datos básicos: NIF, nombre completo y fecha de nacimiento. Cuando cada nuevo socio se da de alta, se le asigna un código asociado alfanumérico y se anota la fecha de alta. La clase Fecha se modela con tres campos(día, mes y año) de tipo entero. La clase Nif se modela con un campo de tipo entero llamado dni y un campo de tipo carácter llamado letra.


5. Diagrama de Componentes: Se muestra los elementos de diseño de un sistema de software. Un diagrama de componentes permite visualizar con más facilidad la estructura del sistema y el comportamiento del servicio que estos componentes proporcionan y utilizan a través de la interfaces.
Puede usar un diagrama de componentes para describir un diseño que se implemente en cualquier lenguaje o estilo. Solo es necesario identificar los elementos del diseño que interactúan con otros elementos del diseño a través de un conjunto restringido de entradas y salidas. Los componentes pueden tener cualquier escala y pueden estar interconectados de cualquier manera. Los diagramas de componentes muestran los componentes de software (ya sea las tecnologías que lo forman como Kparts, componentes CORBA, Java Beans o simplemente secciones del sistema claramente distintas) y los artilugios de que está compuesto como los archivos código fuente, las librerías o las tablas de una base de datos. Los diagramas  de componentes describen los elementos físicos del sistema y sus relaciones, muestran las opciones de realización incluyendo código fuente, binario y ejecutable, los componentes representan todos los tipos de elementos software que entran en la fabricación de aplicaciones infromáticas, pueden ser simples archivos, paquetes, bibliotecas cargadas dinámicamente, etc.

Estructura

  • Subsistemas: Los distintos componentes pueden agruparse según un criterio lógico y con vistas a simplificar la implementacion. Son paquetes estereotipados en <<subsistema>>, los subsistemas organizan la vista de la realización de un sistema, cada susbsitema puede contener componentes y otros subsistemas, la descompocisión en subsistemas no es necesariamente una descomposición funcional, la relación entre paquetes y clases en el nivel lógico es el que existe entre subsistemas y componentes en el nivel físico.
  • Componentes: Es una parte física de un sistema(modulo, base de datos, programa ejecutable, etc). se puede decir que un componente es la materialización de una o mas clases, por que una abstracción con atributos y métodos pueden ser implementados en los componentes. Los componenentes se pueden agrupar en paquetes así como los objetos en clases, además pueden haber entre ellos relaciones de dependencia como: generalización, asociación, agregación y realización.
  • Interfaces: Es el lazo de unión entre varios componentes.
  • Relaciones: Hay relaciones de generalización, asociación, agregación y realización.
Ejemplo

 






 

domingo, 27 de marzo de 2016

Diagramas de Comportamientos Parte 2

3. Diagrama de Estado: Es un diagrama utilizado para identificar cada una de las rutas o caminos que puede tomar un flujo de información luego de ejecutarse cada proceso.
Permite identificar bajo qué argumentos se ejecuta cada uno de los procesos y en qué momento podrían tener una variación.

El diagrama de estados permite visualizar de una forma secuencial la ejecución de cada uno de los procesos. Describen gráficamente los eventos y los estados de los objetos. Los diagramas de estados son útiles para indicar los eventos del sistema en los casos de uso.

Un evento es un acontecimiento importante a tomar en cuenta para el sistema. Un estado es la condición de un objeto en un momento determinado: el tiempo que transcurre entre eventos. Una transición es una relación entre dos estados, e indica que, cuando ocurre un evento, el objeto pasa del estado anterior al siguiente.

Estructura 

  • Estado: Determina un lapso de tiempo del objeto, en el cual el objeto está esperando alguna ejecución, tiene cierta característica o pude obtener cierto tipo de estímulos. Se representa a través de un rectángulo con los bordes redondeados, que puede tener tres compartimientos: uno para el nombre, otro para el valor característico de los atributos del objeto en ese estado y otro para las acciones que se realizan al entrar, salir o estar en un estado.
  • Eventos: Es una ocurrencia que puede causar el cambion de un estado a otro de un objeto. Esta ocurrencia puede ser cuando la condición que obtiene el valor  de verdadero o falso, recepción de una señal de otro objeto en el modelo, recepción de un mensaje y paso de cierto periodo de tiempo, después de entrar al estado o de cierta hora y fecha particular. El nombre de un evento tiene alcance dentro del paquete en el cual está definido, no se local a la clase que lo nombre.
  • Envío de mensajes: Aparte de mostrar la transición de estado por medio de eventos, peuede representarse el momento en el cual se envían mensajes a otros objetos. Esto se ejecuta a través de una linea punteada dirigida al diagrama de estados del objeto receptor del mensaje.
  • Transición simple: Es un vínculo entre dos estados que señala que un objeto en el primer estado puede entrar al segundo estado y ejecutar ciertas operaciones, cuando un evento ocurre y  si ciertas condiciones son satisfechas. Se protagoniza como una línea sólida entre dos estados, que puede estar acompañada por el siguiente formato event-signature,"[" guard condition]", "action-expression ","send clause".  Donde el Event-signature es la explicación del evento que da lugar a la transición, el Guard-condition son las condiciones adicionales al evento, necesarias para que la trancisión ocurra, el Action-expression es un mensaje al objeto que se ejecuta como resultado de la transición y el cambio del estado y  Send-clause son operaciones adicionales que se realizan con el cambio de estado, por ejemplo, el envío de eventos a otros paquetes o clases.
  • Transición interna:  Es una transición que sigue en el mismo estado, en vez de implicar dos estados distintos. Representa un evento que no causa cambio de estado. Se denota como una cadena adicional en el comportamiento de acciones del estado.
  • Acciones: Podemos especificar la solicitud de un servicio a otro objeto como consecuencia de entrar , salir, estar en un estado, o por la ocurrencia de un evento.
  •  Subestados: Un estado puede separarse en varios subestados, con transiciones entre ellos y conexiones al nivel superior. Las conexiones se ven al nivel inferior como estados de inicio o fin, los cuales se suponen conectados a las entradas y salidas del nivel inmediatamente superior.
  • Transición compleja: Una transición compleja  relaciona tres o más estados en una transición de múltiples fuentes y/o múltiples destinos. Representa la subdivisión en discuciones del control del objeto o una sincronización . Se representa como una línea vertical de la cual salen o entran varias líneas de transición de estado.
  • Transición a estados anidados: Una transición de hacia un estado complejo (descrito mediante estados guardados) significa la entrada al estado inicial del subdiagrama. Las transiciones que salen del estado complejo se definen como transiciones  desde cada uno de los subestados hacia afuera (a cualquier nivel de profundidad).
  • Transiciones temporizadas: Las esperas son actividades que tienen asociada cierta duración. La actividad de espera se interrumpe cuando el evento esperado tiene lugar. Este evento desencadena una transición que permite salir  del estado que alberga la actividad de espera. El flujo de control se transmite entonces a otro estado.

Ejemplo 1.

Diagrama de estados de UML para un pedido del sistema de procesos de pedidos. El diagrama indica diversos estados de un pedido.


Ejemplo 2.



 

viernes, 25 de marzo de 2016

Diagramas de Comportamientos Parte 1



1. Diagrama de Actividad: Demuestra la serie de actividades que deben ser realizadas en un uso-caso, así como las distintas rutas que pueden irse desencadenando en el uso-caso.
Un diagrama de actividad es utilizado en conjunción de un diagrama de caso de uso para auxiliar a los miembros del equipo de desarrollo a entender como es utilzado el sistema y  como reacciona en determinados eventos.

Estructura

  • Inicio: El inicio de un diagrama de acctividad es representado por un círculo de color negro sólido.
  • Actividad: Una actividad representa la acción que será realizada por el sistema la cual es representada dentro de una óvalo.
  • Transición: Una transición ocurre cuando se lleva acabo el cambio de una actividada otra, la trancisión es representada simplemente por una línea con una flecha en su terminación para indicar dirección.
  • Ramificación(Branch): Una ramificación ocurre cuando existe la posibilidad que ocurra más de una trancisión(resultado) al terminar determinada actividad. Este elemento es representado a través de un rombo.
  • Unión(Merge): Una unión ocurre al fusionar dos a más transiciones en una sola transición o actividad. Este elemento también es representado a través de un rombo.
  • Expresiones Resguardadas (Guard Expressions): Una expresión resguardada es utilizada para indicar una descripción explícita acerca de una transición. Este tipo de expresión es representada mediante corchetes ([...] y es colocada sobre la linea de transación.
  • Fork: Un fork representa una necesidad de ramificar una transición en más de una posibilidad. Aunque similar a una ramificación(Branch) la diferencia radica en que un fork representa  más de una ramificación obligada, esto es, la actividad debe proceder por ambos o más caminos, mientras que una ramificación(Branch) representa una transición u otra para la actividad (como una condicional). Un fork es representado por una linea negra solida, perpendicular a las lineas de transición.
  • Join: Un join ocurre al fusionar dos o más transiciones provenientes de un fork, y es empleado para dichas transiciones en una sola, tal y como ocurría antes de un fork. Un fork es representado por una línea negra solida, prependicular a las líneas de transición.
  • Fin: El fin de un diagrama de actividad es representado por un círculo, con otro círculo concéntrico de color negro sólido.
  • Canales (Swimlanes): En determinadas ocasiones ocurre que un diagrama de actividad se expanda a lo largo de más de una entidad o actor, cuando esto ocurre el diagarama de actividad es patrocinada de canales (swimlines), donde canal representa la entidad o actor que esta llevado acabo la actividad.
Ejemplo

Lo mejor de todo es que estos diagramas no requieren mayor ciencia para ser entendidos. Al menos así ocurre con los procesos que no requieran demasiados tipos de elementos de este artefacto. Después de haber asesorado todos esos proyectos durante estos años en las tareas de modelado, puedo asegurar que a los clientes les fascina este diagrama, pues de una forma simple definen su trabajo y muchas veces lo ven por primera vez de una forma ordenada.



 2. Diagramas de Casos de Uso: Describe lo que hace un sistema desde el punto de vista de un observador externo, debido a esto, un diagrama de este tipo generalmente es de los más sencillos de interpretar en UML, ya que su razón de ser se concentra en un Que hace el sistema, a diferencias de otros diagramas UML que intentan dar respuesta a un Como logra su comportamiento el sistema.

Un caso de uso es empleado con más frecuencia para:

  1. Determinación de Requerimientos: Por lo general nuevos requerimientos de sistema generan nuevos usos-casos, conforme es analizado y  diseñado el sistema.
  2. Comunicación con el cliente: Debido a la sencillez de este tipo de diagramas, son fáciles de emplear para comunicarse con el cliente final del proyecto.
  3. Generación de pruebas de Sistemas: A través de los diagramas uso-caso se pueden generar una serie de pruebas de sistema.
Estructura 

  • Actor: Un actor representa quien o  que inicia una acción dentro del sistema, en otras palabras, es simplemente un rol que es llevado acabo por una persona o cosa. Un Actor en un diagrama Uso-Caso es representado por una figura en forma de persona.
  • Uso-Caso: El uso-caso en sí representado por un óvalo que describe la funcionalidad a grosso modo que se requiere por el sistema.
  • Comunicación: Este elemento representa la relación que existe entre un Uso-Caso y un Actor, dicho elemento es representado simplemente por una línea recta que se extiende de la figura del actor hacia el óvalo de uso-caso.
  • Límite del Sistema (System Boundry): Empleado para delimitar los límites del sistema, y representado por un rectángulo con color de fondo distintivo.
  • Generalización: Una generalización indica que un uso-caso(óvalo) es un caso especial de otro caso, en otros términos, representa una relación padre-hijo, donde el hijo puede ser suplido directamente por el padre en cualquier momento. Este elemento es representado por una línea con flecha que se extiende del uso-caso hijo hacia el uso caso padre (general).
  • Inclusión: Una inclusión  es utilizada para indicar  que un uso-caso(ovalo) depende de otro caso, dicho de otra manera, significa que la funcionalidad  de determinado caso se requiere para realizar las tareas de otro. Este elemento es representado por una línea punteada con flecha y comentario <<include>> que se extiende del uso-caso base hacia el uso caso de inclusión.
  • Extensión: Una extensión representa una variación de un uso-caso a otro, aunque similar a una generalización  no implica que los usos-casos dependen uno del otro. Este elemento es representado por una línea punteada con flecha y comentario <<extend>> que origina del uso-caso base hacia el uso caso de extensión.
 Ejemplo:


Sistema de Control de un Centro Medico

 

Un cliente (paciente) acude a un consultorio médico para ser atendido, en el centro médico existen varios tipos de servicios como:
1. Consulta Ginecológica
2. Consulta General
3. Planificación Familiar
4. Colocación/retiro de implantes.
5. Papanicolaou
Este centro médico maneja una red que funciona en los diversos consultorios, y departamentos así como en secretaria y en farmacia. Al llegar, el paciente es atendido por la secretaria que le toma los datos y lo registra asignándole un número de historia clínica en el sistema, en caso de no tenerlo, y dependiendo del servicio que requiere, el paciente cancela y se le asigna un turno de acuerdo al servicio y a los médicos disponibles. En caso de existir médicos de una especialidad específica se le otorga una cita para una próxima fecha. Si el paciente requiere Planificación Familiar, antes de acudir con el médico, es atendido en el departamento de Orientación Familiar donde se le explica todas las opciones que tiene para su planificación, y la orientadora ingresa en su historia clínica, la cual fue creada por la secretaria al momento del ingreso, las mejores opciones para su planificación, datos que luego serán observados por el médico para una mejor evaluación y Explicación al paciente. Una vez que el paciente llega al consultorio del médico, este le toma los signos vitales y le hace las preguntas rutinarias para completar la historia clínica y tener una mejor visión del caso. Si no es la primera vez que el paciente acude a este centro médico, el médico busca su número de historia clínica en el sistema y hace las evaluaciones de progreso en el paciente, fecha de último chequeo y describe en la historia clínica los procedimientos o problemas diagnosticas en dicha cita. De la misma manera el médico receta la medicación necesaria, la cual podrían encontrarse en el stock de la farmacia del centro médico, la cual es proporcionada gratuitamente. Todos los médicos tienes acceso a la base de datos de los medicamentos disponibles en la farmacia, y le indica al paciente cual podría retirar en farmacia y cual tendría que adquirir fuera del centro médico. Una vez finalizada la consulta el médico le indica si requiere o no una próxima cita para una próxima evaluación o para la revisión de exámenes, la cual tendría que ser coordinada con la secretaría del centro.. Los médicos de este centro deben llevar un control de los instrumentos utilizados en las consultas como agujas, bisturíes, algodón, alcohol, y todas las herramientas necesarias, para en caso de agotarse hacer el pedido respectivo.


                                  











 

miércoles, 23 de marzo de 2016

Conceptos de UML



UML: El Lenguje de Modelado Unificado es un lenguaje gráfico para visualizar, especificar y documentar cada una de las partes que comprende el desarrollo de software. UML entrega una forma de modelar cosas conceptuales como lo son procesos de negocios y funciones de sistema, además de cosas concretas como lo son escribir clases en un lenguaje determinado, esquemas de base de datos y componentes de software reutilizables. 

Clasificación y Tipos de Diagramas UML 

Diagramas de Comportamiento: Los diagramas de comportamiento se emplean para visualizar, especificar, construir y documentar los aspectos dinámicos de un sistema.
Los aspectos dinámicos de un sistema de software involucran cosas tales como el flujo de mensajesa lo largo del tiempo y el movimiento físico de componente en una red.

Los diagramas que componen esta clasificación son:

1. Diagrama de Actividades.
2. Diagrama de Casos de Uso.
3. Diagrama de Estados.

Diagramas de Estructura: Muestra la estructura estática del sistema y sus partes en la abstracción diferentes y niveles de aplicación.
Los diagramas que componen esta clasificación son:

4. Diagrama de Clases.
5. Diagrama de Componentes.
6. Diagrama de Objetos.
7. Diagrama de Estructura Compuesta.
8. Diagrama de Despliegue.
9. Diagrama de Paquetes. 

Diagramas de Interacción: Son modelos que describen la manera en que colaboran grupos de objetos para cierto comportamiento.

Los diagramas que componen  esta clasificación son:

10. Diagrama de Secuencia.
11. Diagrama de Comunicación.
12. Diagrama de Tiempos
13. Diagrama Global de Interacciones. 

En otro artículo se explicará los detalles de cada uno de los diagramas de UML












martes, 22 de marzo de 2016

Conceptos de Programación Orientada a Objetos



Programación Orientada a Objetos:  Es un paradigma de la programación que usa objetos en sus interacciones, para diseñar aplicaciones y programas informáticos. Está basada en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento.

Herencia: Es una propiedad que permite que los objetos sean creados a partir de otros ya existentes, obteniendo características (métodos y atributos) similares a los ya existente. Es la relación entre una clase general y otra clase más específica. Es un mecanismo que nos permite crear clases derivadas a partir de clase base, nos permite compartir automáticamente métodos y datos entre clases, subclases y objetos. Por ejemplo: Si  declaramos una clase párrafo derivada de una clase texto todos los métodos y variables asociadas con la clase texto son automáticamente heredados por la subclase.

Cohesión: Es el grado en que una clase tiene un solo objetivo, y el mismo está bien definido, este valor de cohesión se podría decir que es un concepto subjetivo. Mientras más enfocada está la clase, mayor es su cohesión y  esto es bueno para el desarrollo. La clave del beneficio de contar con un alto grado de cohesión consiste en las clases son muchos más fáciles de mantener, por lo claro de su objetivo tienen poca probabilidad de cambio o modificación, y permite la reutlización de su código por  poseer definiciones puras enfocadas a tratar un tema específico.

Acoplamiento: Mide el grado de relacionamiento de un módulo con los demás. A menor acoplamiento, mejor: el módulo en custión será más sencillo de diseñar, programar, probar y mantener. 

Abstracción: Son las características específicas de un objeto, aquellas que lo distinguen de los demás tipos de objetos y que logran definir límites conceptuales respecto a quien está haciendo dicha abstracción del objeto y se enfoca en la visión externa de un objeto, separa el comportamiento específico de un objeto.

Polimorfismo: Es la capacidad que tienen los objetos de una clase de responder al mismo mensaje o evento en función de los parámetros utilizados durante su invocación. Un objeto polimórfico es una entidad que puede contener valores de diferentes tipos durante la ejecución del programa.

Encapsulación: Es un mecanismo que consiste en organizar datos y métodos de una estructura, conciliando el modo en que el objeto se implementa. es decir, evitando el acceso a datos por cualquier otro medio distinto a los especificados. Por lo tanto, la encapsulación garantiza la integridad de los datos que contiene un objeto.
 
 
 











domingo, 20 de marzo de 2016

¿Qué es ser estudiante en linea?

Introducción.

El proceso de aprendizaje en la modalidad de estudios en línea se lleva cabo en un Ambiente Virtual de Aprendizaje, el cual es un espacio pensado y diseñado más allá de los alcances de la formación y la información, engloba una visión conjunta del como se enseña pero sobre todo del como se aprende y se elabora a partir del establecimiento de objetivos de aprendizaje, incorporando actividades y experiencias de aprendizaje estimulantes. 

El rol del estudiante en línea.

  • De ser pasivo a proactivo:  El estudiante en línea se distingue porque tiene una actitud de ir al frente, ya no esperar a que sucedan las cosas o que el profesor le indique lo que tiene que hacer.
  • De la exigencia en la participación: En la modalidad en línea existen recursos tecnológicos que generan registros para que el docente o la figura académica correspondiente identifique si el estudiante participa o no.
  • De la estática entre tiempo y espacio a la dinámica autogestiva: El estudiante en línea no se encuentra sujeto a los horarios y a los espacios físicos para dar paso a la autogestión; esto implica que el mismo es quien determina donde, como, cuando, y cuanto estudia, lo que le da al estudiante el papel protagónico dentro de su proceso de aprendizaje.
  • Del seguimiento académico: El alumno deberá ser paciente y esperar la respuesta del Docente entre las próximas 24 y 48 horas y visitar la sección de preguntas frecuentes –si el curso la tuviera, o bien buscar interactuar con los compañeros para intercambiar dudas y recibir realimentación.
  •  De la interacción grupal y con el docente: A diferencia de recibir explicaciones e indicaciones verbales de parte del docente, el estudiante en línea interactúa principalmente con los contenidos (multimedia, interactivos, entre otros) del ambiente virtual de aprendizaje y el estudiante en línea interactúa de manera asincrónica con el docente en línea (al cual también puede denominarse Asesor, Tutor, Guía, entre otros) y con los compañeros de curso.
  • De los aportes de la internet y la riqueza del conocimiento: El estudiante en línea contará con una serie de materiales recomendados por los desarrolladores del curso, el docente también podrá sugerirle materiales extra para reforzar el conocimiento.

Recomendaciones Interpersonales para el estudiante en línea.

  • Identificar e interpretar nuestras emociones y reconocer el efecto que tienen en nosotros mismos y en los demás. 
  • Controlar y manejar nuestras emociones y el como reaccionamos para así poder adaptarnos a las circunstancias que todo el tiempo están cambiando a nuestro alrededor.
  • Identificar, comprender y responder ante las circunstancias, para atender y entender a los demás.
  • Saber tratar con los demás, influir positivamente, motivar e inspirar, trabajar en equipo y mejorar la manera en la que nos comunicamos.
 
 Retos para el estudiante en línea.

  • Adoptar una actitud crítica y creativa de las Tecnologías de la Información y la Comunicación y participar activamente durante su formación académica.  
  • Cuestionar, replantear, investigar e idear nuevas formas de descubrir, con el impulso de seguir explorando y generar la oportunidad para obtener más conocimientos.
  • Adaptarse al trabajo en un entorno cambiante, valiéndose de la creatividad, la comunicación, la colaboración y la resolución de problemas.
  • Optimizar la comunicación escrita, prácticamente es el recurso más sólido para expresarse en la modalidad en línea, por lo que se deberá optimizar el uso de la gramática, sintaxis y semántica. 
 


Bienvenido al blog de Miguel Hurtado


Bienvenido al blog de Miguel Hurtado y que la información encontrada en este espacio les sea útil para el desarrollo de proyectos y en la programación web, ante la necesidad de nuevas tecnologías y nuevos conocimientos este es un espacio nuevo para la información y el conocimiento de nuevas técnicas en el área del desarrollo web, espero que cumpla ese objetivo y ustedes obtener una buena retroalimentación.
!Comenzamos!