domingo, 6 de mayo de 2012

ADAPTACIÓN DEL UML EN UN PROCESO DE DESARROLLO


Existen dos tipos de metodologías: antiguas y recientes. Se entiende por metodología a la estructura y naturaleza de los pasos en un esfuerzo de desarrollo. Pero antes de iniciar a programar los desarrolladores deben tener claridad sobre el problema.

Método antiguo

Las etapas deben suceder en lapsos definidos, una después de otra. Obsérvese el método en cascada:

Este método reduce el impacto de la comprensión obtenida en el proyecto. Si el proceso no puede retroceder y volver a ver los primeros estados, es posible que las ideas desarrolladas no sean utilizadas.

Método reciente

Tiende a la colaboración entre las fases de desarrollo esta moderna ingeniería de programas, los analistas y diseñadores hacen revisiones para desarrollar un sólido fundamento para los desarrolladores. Existe interacción entre todo el equipo de trabajo.

La ventaja es que conforme crece la comprensión, el equipo incorpora nuevas ideas y genera un sistema más confiable.

Lo que debe hacer un proceso de desarrollo

El equipo tiene que formarse de analistas para comunicarse con el cliente y comprender el problema, diseñadores para generar una solución, programadores para codificarla e ingenieros de sistemas para distribuirlas.

A su vez debe asegurar que sus fases no sean discontinuas.

GRAPPLE

Significa Guías para la Ingeniería de Aplicaciones Rápidas, tiene dentro de sí una condensación de ideas de varias otras personas.

Consta de cinco segmentos en lugar de fases, cada segmento consta de diversas acciones  cada acción es responsabilidad de un jugador.

Los segmentos son: recopilación, análisis, diseño, desarrollo y distribución. Lo que otorga un acrónimo RADDD.

Recopilación de necesidades

La función es comprender lo que desea el cliente.

Realice un análisis del dominio

El objetivo es comprender de la mejor manera posible el dominio del cliente. El analista debe acomodarse al cliente.

Descubra las necesidades del sistema

El equipo realiza su primera sesión de JAD(Desarrollo de conjunto de aplicaciones).En dónde se reúne a quienes toman las decisiones en la empresa del cliente, a los usuarios potenciales y a los miembros de los equipos de desarrollo.

Presentar los resultados al cliente

Cuando finaliza todas las acciones de Necesidades, el administrador de proyectos presentará los resultados al cliente.

Análisis

En este segmento aumenta la comprensión por parte del equipo.Se necesita trabajar sobre: la comprensión del uso del sistema, hacer realidad de los casos de uso, depurar los diagramas de clases, analizar cambios de estado en los objetos, definir la comunicación entre objetos, analizar la integración con diagramas de colaboraciones.

Diseño

El equipo trabajará con los resultados del segmento de Análisis para diseñar la solución, en este punto se harán revisiones pertinentes hasta que el diseño se haya completado. Contiene las siguientes fases: desarrollo y depuración de diagramas de componentes, desarrollo de diagramas de componentes, planeación para la distribución, diseño y prototipos de la interfaz del usuario, pruebas de diseño, iniciar la documentación.

Desarrollo

De este segmento se encargan los programadores, debe realizarse con rapidez y sin problemas.
Fases: generación del código, verificación del código, generación de interfaces del usuario y conexión con el código, prueba, consumación de la documentación.

Distribución

En este segmento se distribuye en el hardware adecuado y se integra con los sistemas cooperativos.
Fases: planeación para copias de seguridad y recuperación, instalación del sistema terminado en el hardware adecuado, verificación del sistema instalado, celebración.



NOCIONES DE LOS FUNDAMENTOS DEL UML


Los diagramas son necesarios para ver un sistema desde diferentes puntos, debido a que hay varias personas a las que les interesa el sistema por distintas razones, y debe tener la capacidad de expresar una visión consistente del sistema de diversas formas.

El UML cuenta  con una arquitectura de cuatro capas. Tales capas se distinguen por la generalidad de los elementos que en ellos residen.

Capa del metamodelado: cercano y personal

Es la base del panorama. Se divide en la formación de: Fundamentos, Elementos de comportamiento y Administración de modelos. Gráfica:

Elementos

Los elementos del que paquete de Fundamentos: núcleo, elementos auxiliares, tipos de datos, mecanismos de extensión.
El paquete de Elementos de comportamiento contiene: comportamiento común, colaboraciones, casos de uso, máquinas de estado.
El paquete de administración de modelos es, en sí, un modelo.

El paquete de Fundamentos

El núcleo define lo que necesita para crear un modelo UML. Cada uno de los elementos definidos es abstracto o concreto. Entre los elementos abstractos se encuentran ElementosDeModelo, ElementoGeneralizable y Clasificador. Entre los concretos se encuentran Clase, Interfaz, Asociación y Tipo de Datos.

El paquete de los elementos de comportamiento

Se encarga de modelar el procedimiento de un sistema.

Proporciona los conceptos de los elementos dinámicos, y soporta otros paquetes como son: casos de uso, máquinas de estado y colaboraciones. Estos conceptos incluyen: señal, enlace y punto final de asociación.

Administración de modelos

Este paquete define al Modelo, Subsistema y Paquete. La meta de estos elementos es agrupar los ElementosDeModelo de todo tipo

Extensión del UM

Para pulir diagramas son necesarias herramientas como: estereotipos, restricciones y valores etiquetados. Se puede crear una extensión sobre la marcha para agregar al modelo cuestiones e ideas importantes de su dominio.




DIAGRAMAS DE DISTRIBUCIÓN


El elemento primordial del hardware es un nodo, que es un modo genérico para todo tipo de recurso de cómputo. Es posible usar dos tipos de nodos: un procesador, el cual puede ejecuta un componente, y un dispositivo que no lo ejecuta.

En el UML un cubo no representa a un nodo. Se debe asignar un nombre para el nodo, y se podrá utilizar un estereotipo para indicar el tipo de que recurso. Ejemplo:


El nombre es una cadena de texto. Si el nodo es parte de un paquete,  su nombre puede contener el del paquete. El cubo se divide en compartimientos que agrega información.


 La conexión no puede ser simplemente por cable sino que también esta la infrarroja          o satelital.

Aplicación de los diagramas de distribución

Desde un equipo de cómputo. Ejemplo:

Una red token-ring

En una red token-ring, las computadoras equipadas con una NIC(tarjeta de interfaz de red)de conecta a una MSAU(unidad central de acceso a multiestaciones). Se conectan varias veces  MSAU en forma de anillo (por ello el nombre de:” ring”) y se combina para fungir un policía de transito , mediante una señal conocida como token.


ARCnet

Es una Red de Cómputo de Recursos Adjuntos y en ella cada equipo tiene asignado un número.

El orden numérico determina cuál equipo obtendrá al token. Cada equipo se conecta a un contenedor o hub que podrá ser activo (amplificará la información que llega antes de transmitirla) o pasivo (transmitirá la información sin amplificarla). No mueve el token en un anillo, los espacios  se lo pasan entre sí.

Thin Ethernet

La red thin Ethernet es un tipo muy popular. Los equipos se conectan a un cable de red mediante dispositivos conocidos como conectores T. Un segmento de red puede unirse a otro mediante un repetidor, un dispositivo que amplifica una señal antes de transmitirla. También pueden hacerse conexiones de tipo RJ45. Ejemplo de distribución:




Red inalámbrica Ricochet de Metricom
Metricom, Inc, empresa localizada en Los Gatos, CA, cuenta con una solución inalámbrica por módem para obtener acceso móvil a Internet. Su módem inalámbrica se conecta al puerto serial de un equipo de cómputu y se comunica con su red Ricochet. Este modelo consta de transmisores y receptores de radio, cuyo tamaño es de una caja de zapatos. Tales radios de microceldilla se montan en la parte superior de los postes  de luz a distancias de 400 a 800 metros, en un patrón  de tablero de ajedrez.
Los radios de microceldillas difunden señales a puntos de acceso cableados que llevan la información a un NIF( dispositivo de interacción con la red). El NIF consta de un servicio de nombres( una base de datos que valida las conexiones), un enrutador( dispositivo que enlaza las redes entre sí) y una puerta de enlace( un dispositivo que traduce la información de un protocolo de comunicaciones a otro).

            La información se lleva del NIF a internet. Ejemplo:

            Diagrama de panorama UML finalizado:



DIAGRAMAS DE COMPONENTES


Un componente de software es una parte física de un sistema, y se encuentran en la computadora, no en la mente del analista. Un componente es una personificación en software de una clase y la clase representa una abstracción de un conjunto de atributos y operaciones. Por eso es necesaria la implementación de más de una clase.

Componentes e interfaces

El objeto tiene que representar un rostro al mundo exterior, para que los demás objetos puedan pedirle que ejecute operaciones, a este rostro se le conoce como interfaz del objeto.

El componente que proporciona los servicios se dice que provee una interfaz de exportación, al que recibe los servicios se dice que utiliza una interfaz de importación.

Sustitución y reutilización

Se puede sustituir un componente con otro sistema si éste puede acceder al componente para ser reutilizado en proyectos de desarrollo.

Tipos de componentes

1-Componentes de distribución: Conforma el fundamento de los sistemas ejecutables.
2-Componentes para trabajar en el producto: Permiten crear componentes de  distribución.
3-Componentes de ejecución: Creados como resultado de un sistema en ejecución.
Un diagrama de componentes contiene componentes, interfaces y relaciones.

            Representación de un componente


Existen dos formas de representar a un componente y sus interfaces: la primera      muestra la interfaz como un rectángulo que contiene la información que se le relaciona y se conecta el componente con la línea discontinua.







Una página web con controles ActiveX

Es el medio de Microsoft que permite agregar aplicaciones. Una propiedad de un componente es su número de identificación hexadecimal único de 32 bits conocido como CLSID.



DIAGRAMA DE ACTIVIDADES


Es diseñado para mostrar una visión simplificada de lo que ocurre durante una operación o proceso. Es una extensión de un diagrama de estados, resalta básicamente las actividades.

A cada actividad se le representa por un rectángulo con las esquinas redondeadas.

La secuencia de actividades llegará a un punto de decisión. Ejemplo:

Rutas concurrentes

Las actividades en algún momento tendrán la oportunidad de separar una transición en dos rutas que se ejecutan en el mismo tiempo y luego que se vuelvan a reunir.

Durante una secuencia de actividades es posible enviar una indicación, si se recibe se ejecutará inmediatamente, el símbolo es un pentágono convexo y el que recibe es un pentágono cóncavo. Ejemplo:

Ejemplo de un diagrama de actividades para la creación de un documento:

Uno de los aspectos más útiles del diagrama de actividades es la facultad para expandirse y mostrar quién tiene la responsabilidad en un proceso. El diagrama de actividades agrega la dimensión de visualizar responsabilidades.

Diagramas híbridos

Son aquellos en dónde se puede depurar la información antes de adquierir resultados.




DIAGRAMA DE COLABORACIONES

Un diagrama de objetos muestra a los objetos como tales y sus relaciones entre sí. Un diagrama de colaboraciones es una extensión de uno de objetos. Éste muestra los mensajes que se envían los objetos entre sí. Ejemplo:



Ejemplo de cambios de estado en un diagrama de colaboraciones:

Objeto receptores en una clase

Es un objeto que envía diversos objetos de la misma clase. Ejemplo:

REPRESENTACIÓN DE LOS RESULTADOS

Un mensaje podría ser una petición a un objeto para que realice un cálculo y devuelva un valor. El UML da la sintaxis para representar tal situación.

Objetos activos

Un objeto específico controla el flujo, puede enviar mensajes a los objetos pasivos e interactuar con otros objetos activos.





Sincronización

Un objeto sincroniza todos los mensajes en el orden debido. Ejemplo:









DIAGRAMAS DE SECUENCIAS


El diagrama de secuencias consta de objetos que se representan del modo usual: rectángulos con nombre (subrayado), mensajes representados por líneas continuas con una punta de flecha y el tiempo representado como una progresión vertical.

Los objetos se colocan cerca de la parte superior del diagrama de izquierda a derecha y se acomodan de manera que simplifiquen el diagrama.

El mensaje 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 sí mismo. Éste es simple, sincrónico o asincrónico.

Tiempo

El diagrama representa el tiempo en dirección vertical. El tiempo se inicia en la parte superior y avanza hacia la parte inferior.

Ejemplo de diagrama de secuencias que muestra la interacción de GUI con objetos

Diagrama de secuencias genérico

Se tienen en cuenta todos los escenarios de un caso de uso al momento de crear un diagrama de secuencias. Se necesita justificar el control de flujo.

Creación de un objeto

Una clase es una plantilla para crear un objeto.

Recursividad

Un objeto  cuenta con una operación que se invoca a sí misma.




DIAGRAMAS DE ESTADO


También se conoce como motor de estados, es una manera para caracterizar un cambio en un sistema es decir que los objetos que lo componen modificaron su estado como respuestas a los sucesos y al tiempo.

El diagrama de estados UML captura este tipo de cambios. Presenta los estados en los que se encuentra un objeto junto con las transiciones entre los estados.

Simbología

Rectángulo de vértices redondeados que representa a un estado, junto con una línea continua y una punta de flecha, que representa una transición. Ejemplo:

Adición de detalles al icono de estado

El UML le da opción de agregar detalles a la simbología. Así como es posible dividir un símbolo de clase en tres áreas(nombre, atributo y operaciones).

Ejemplo de variables con actividades:


Sucesos y acciones

El suceso provoca una transición y la actividad se ejecuta para que se produzca la transición.
Ejemplo:

¿POR QUÉ SON IMPORTANTES LOS DIAGRAMAS DE ESTADOS?

El diagrama de estados proporciona una gran cantidad de símbolos y abarca varias ideas. Los desarrolladores, deben saber la forma en que los objetos se supone se comportarán, ya que son ellos quienes tendrán que establecer tales comportamientos en el software.

Los diagramas de estado se aseguran que no tendrán que adivinar lo que se supone que harán los objetos, con una clara representación de un objeto aumenta la probabilidad de que el equipo de desarrollo produzca un sistema que cumpla con los requerimientos.



DIAGRAMAS DE CASOS DE USO


El caso de uso es un poderoso elemento que le ayudara a entender el comportamiento de un sistema, le ayuda a reunir requerimientos de parte del usuario.

Representación de un modelo de caso de uso

La representación gráfica es directa. Una elipse representa un caso de uso y una figura agregada representa un actor y una línea asociativa representa la comunicación. Ejemplo:

Secuencias de pasos en los escenarios

Se puede realizar a partir de un diagrama de actividades UML, el cual estudia escenarios que en sí es una secuencia de pasos, lo que se debe entender es que esos pasos no son visibles y por la menor confusión es necesario el uso de notas.

Concepción de las relaciones entre casos de uso

Inclusión

Para representar a la inclusión se utiliza el símbolo de dependencia entre clases, en la línea se agrega un estereotipo con la palabra: incluir. Ejemplo:

Extensión

La extensión sólo se realiza en puntos indicados de manera específica dentro de la secuencia del caso de uso base. A estos puntos se les conoce como puntos de extensión.

Generalización

Las clases pueden heredarse entre sí y eso también se aplica a los casos de uso. La relación de generalización puede establecerse entre actores, así como entre casos de uso. Ejemplo:

Agrupamiento

Forma de organización directa en los casos de uso que se relacionan.

Aplicación de los modelos de caso de uso

Ejemplo: Una LAN  es una red de comunicaciones que una organización utiliza en un ámbito limitado. Permite a los usuarios repartir recursos e información.

Diagrama de comprensión de dominio

El siguiente diagrama se analizará desde el vasto mundo de la consultoría. Ejemplo:

Elementos estructurales

Las clases, objetos, actores, interfaces y casos de uso son cinco de los elementos estructurales en el UML. Aunque tienen diferencias son similares en el sentido de que representan partes ya sean conceptuales o físicas de un modelo.

Relaciones

La asociación, generalización, dependencia y realización, son las relaciones en el UML.

Agrupamiento

El paquete es el único elemento de agrupamiento en el UML, éste permite organizar los elementos estructurales de un modelo.

Ejemplo de organización en UML