viernes, 13 de abril de 2012

Tipos de Diagramas UML

- Diagrama de Clases: sirve para mostrar la estructura estática de un sistema, ya sean estas las clases como los paquetes.

- Diagrama de Estructura Compuesta: nuevo en UML2, este diagrama muestra la estructura INTERNA de un elemento o clase.

- Diagrama de Componente: muestra el sistema como una colección de componentes tecnológicos, ejecutables, DLLs, páginas de HTML, etc.

- Diagrama de Despliegue: muestra como el los componentes de un sistema se distribuyen entre los computadores que los ejecutan. Útil en el caso de sistemas distribuidos.

- Diagrama de Objeto: muestra instancias de clases y sus nexos.

- Diagrama de Paquete: muestra paquetes y sus relaciones, suele ser útil para la gestión de un modelo grande en UML.

- Diagrama de actividad: suerte de diagrama de flujo, indican actividades, decisiones y bifurcaciones.

- Diagrama de Secuencia: muestra la interacción entre elementos indicando claramente el eje de tiempo (hay un ejemplo en “Analisis de Casos de Uso”)

- Diagrama de Comunicación: equivale a un diagrama de secuencia, pero colapsa el eje del tiempo.

- Diagrama de Resumen de Interacción: dado que no hay paquetes de actividades se muestran las partes de un diagrama de actividad agrupando estas a la manera de un paquete, pero con un símbolo distinto.

- Diagrama de Tiempo: muestra la evolución de uno o más componente como líneas de vidas que se cruzan en un eje de tiempo. Esto es útil en desarrollo de sistemas en tiempo real.

- Diagrama de Casos de Uso: sirve para ilustrar un modelo de casos de uso. En el blog hay muchos ejemplos de estos.

- Diagrama de Maquina de Estado: muestra el sistema como estados y transiciones entre estos. Las maquinas de estado son un concepto muy bien establecido en ingeniería. En UML2 se usa un formalismo basado en redes de petri, con lo que estos diagramas adquieren mucho mayor poder.

Ahora que no veo la razón por la cual la especificación diferencia entre diagrama de clases y diagrama de paquetes. En la práctica uno puede hacer un diagrama con clases y paquetes, dando a lugar a un diagrama mixto. Muchas herramientas de UML no diferencian entre estos dos tipos de diagramas.
Los diagramas nuevos suelen tener muy poco soporte. Especialmente los diagramas de Tiempo. Aún estoy esperando encontrar una herramienta que le de soporte y los use para algo más que tener el diagrama.

La diferencia entre los diagramas de secuencia y los de comunicación es solo de gusto. Son por completo equivalentes y de hecho las herramientas suelen poder convertir automaticamente entre estos dos. Ya que es de gusto, a mí me gustan más los de secuencia.
Los diagramas de maquina de estado son en extremo útiles, pero solo si uno esta haciendo un sistema con este concepto en mente. Si lo que uno hace es un sistema de información (un CRM, un CMS, un ERP, etc) entonces posiblemente no se le encuentre uso.
Finalmente los diagramas de actividad son un legado de otras metodologías de desarrollo. Son útiles para documentar procesos y otras cosas como esas, pero no lo son tanto para el desarrollo de software.


Introduccion a UML

El Lenguaje Unificado de Modelado (Unified Modeling Languaje, UML) es el lenguaje estándar para realizar el modelado de los sistemas de software y es independiente del lenguaje de programación utilizado.

En este artículo no vamos a entrar en más detalles de lo que es UML y de su historia, nos vamos a centrar en las partes más significativas del lenguaje.

UML tiene tres elementos fundamentales:
*Bloques básicos de construcción
-        Elementos
-        Relaciones
-        Diagramas
*Reglas que dictan como se pueden combinar estos bloques básicos. UML tiene reglas para:
-        Nombres
-        Alcance
-        Visibilidad
-        Integridad
-        Ejecución
*Mecanismos comunes. Que se basen en algún patrón, al igual que en arquitectura se puede hablar del barroco, románico, etc..
-        Especificaciones
-        Adornos
-        Divisiones comunes
-        Mecanismos de extensibilidad

En todo proceso de software donde se utilice una metodología orientada a objetos y la notación UML no pueden faltar los diagramas, para representar las diferentes vistas del producto final.

Los diagramas de UML se pueden dividir en estáticos (aportan una visión estática del sistema) y dinámicos (aportan una visión dinánica del sistema).

Los diagramas estáticos:
-         Diagrama de casos de uso
-         Diagrama de clases
-         Diagrama de objetos
-         Diagrama de componentes
-         Diagrama de despliegue

Los diagramas dinámicos:
-         Diagrama de estados
-         Diagrama de actividad
-         Diagramas de interacción:
.        Diagrama de secuencia
.        Diagrama de colaboración



Ciclo de Vida de un Sistema de Informacion

El ciclo de vida de un sistema de información es un enfoque por fases del análisis y diseño que sostiene que los sistemas son desarrollados de mejor manera mediante el uso de un ciclo especifico de actividades del analista y del usuario.
Según James Senn, existen tres estrategias para el desarrollo de sistemas: el método clásico del ciclo de vida de desarrollo de sistemas, el método de desarrollo por análisis estructurado y el método de construcción de prototipos de sistemas. Cada una de estas estrategias tienen un uso amplio en cada una de los diversos tipos de empresas que existen, y resultan efectivas si son aplicadas de manera adecuada. 



Definicion de Ingenieria de Sistemas

La ingeniería de sistemas es una carrera universitaria que se encarga del diseño, la programación, la implantación y el mantenimiento de sistemas. A diferencia de otras ramas de la ingeniería, esta disciplina no se ocupa de productos tangibles (los ingenieros civiles, por ejemplo, construyen edificios), sino de productos lógicos.
Por lo tanto, la ingeniería de sistemas implica el uso de nociones matemáticas que permitan concretar la aplicación tecnológica de las teorías de los sistemas. Se trata de una ciencia interdisciplinaria, que requiere de diversos conocimientos para plasmar sus diseños en la vida práctica.
La ingeniería de sistemas permite transformar una necesidad operativa en una descripción de los parámetros del rendimiento de un sistema, con su correspondiente configuración. Por otra parte, posibilita la integración de los parámetros técnicos relacionados de modo tal que las interfaces de programa y funcionales sean compatibles y se garantice el funcionamiento del sistema total.
Al realizar su trabajo, el especialista en esta materia debe asegurar que el sistema cumpla con los principios de fiabilidad, mantenibilidad, seguridad y eficiencia, entre otros.
El ingeniero de sistemas se encarga de las diferentes etapas de un proyecto vinculado a los sistemas. De esta forma, analiza el rendimiento económico, la efectividad de los recursos humanos y el uso tecnológico vinculado a sus creaciones.