TEMA: LENGUAJE DE MODELO UNIFICADO UML

Sub tema: Análisis y Diseño Estructurado Vs. Análisis y Diseño Orientado a Objeto

Forista: Migdalia Gimenez

 

 

 

¿QUÉ ES UML? 

"El Lenguaje de Modelado Unificado UML es un lenguaje estándar para escribir planos de software. UML puede utilizarse para visualizar, especificar, construir y documentar los artefactos de un sistema que involucra gran cantidad de software"

El UML es el Lenguaje de Modelado Unificado Orientado a Objetos, UML no es un método porque no tiene noción de proceso el cual es una parte importante de un método. Ahora bien si UML no es método; entonces ¿Cuáles son las etapas a seguir en el desarrollo de sistemas con UML?, varios especialistas en desarrollo de sistemas de información arguyen de que existe la necesidad de adoptar un Proceso de Desarrollo de sistemas para enmarcar las fases importantes que sigue el UML, por ello los desarrolladores de proyectos de sistemas de información emplean el Procesos Unificado para dar soluciones adecuadas a las necesidades de los clientes.

 

El desarrollo de sistemas con UML siguiendo el proceso unificado incluye actividades específicas, cada una de ellas a su vez contienen otras subactividades las cuales sirven como una guía de cómo deben ser las actividades desarrolladas y secuenciadas con el fin de obtener sistemas exitosos; consecuentemente el desarrollo de los sistemas puede variar de desarrollador en desarrollador, de proyecto en proyecto, de empresa en empresa adoptando siempre un Proceso de Desarrollo.

 

 

DIAGRAMAS UML

Los elementos de UML se muestran mediante diagramas que presentan múltiples vistas del sistema, ese conjunto de vistas son conocidos como modelos .

 

UML presenta varios diagramas donde cada uno representa un aspecto del sistema. De ahí que varios investigadores según sus criterios y puntos de vista mencionan qué diagramas emplear en el desarrollo de los sistemas de información; sin mencionar cuáles son los diagramas más adecuados en las distintas etapas de desarrollo del Proceso Unificado, viendo esta necesidad, la autora del presente artículo propone un conjunto de diagramas necesarios para cada etapa según la complejidad del sistema de información a solucionar.

 

Dado un sistema a desarrollar no es necesario emplear todos los diagramas; para sistemas sencillos un diagrama de clases junto con un par de diagramas de actividades e interacción sería suficiente, asimismo si los sistemas son complejos requieren de la utilización de más diagramas, debido a que requieren de etapas incrementales e iterativas(ciclos de desarrollo) en el análisis, diseño e implementación, por ello es que el conjunto actividades deberá especificar la etapa de desarrollo y los diagramas recomendados.

 

Dado que el UML es un lenguaje orientado a objetos a continuación se presenta un breve análisis que muestra las principales diferencias entre el Análisis y Diseño Estructurado y el  Análisis y Diseño Orientado a Objeto.

I.- Análisis y Diseño Estructurado

Permite al analista conocer un sistema o proceso (actividad) en una forma lógica y manejable al mismo tiempo que proporciona la base para asegurar que no se omite ningún detalle pertinente".

El objetivo que persigue el análisis estructurado es organizar las tareas asociadas con la determinación de requerimientos para obtener la comprensión completa y exacta de una situación dada.

Componentes:
- Símbolos gráficos: sirven para identificar y describir los componentes de un sistema y las relaciones entre estos.

- Diccionarios de datos: Descripciones de todos los datos utilizados en el sistema pueden ser manual o automatizado.

- Descripciones de procesos y procedimientos: emplean técnicas y lenguajes que permiten describir actividades del sistema.

- Reglas: Estándares par describir y documentar el sistema en forma correcta y completa.

Análisis de flujo de datos:

Estudia el empleo de los datos en cada actividad, documenta los hallazgos con diagramas de flujo de datos.

Herramientas:

-          Diagrama de flujo de datos: son la herramienta mas importante y la base en donde se desarrolla otros componentes.

-          Diccionario de datos: contienen las características lógicas de los lugares donde se almacenan los datos del sistema, incluyendo nombre, alias, descripción, contenido y organización.

-          Diagrama de estructuras de datos: este es una descripción de la relación entre entidades (personas, lugares, eventos y objetos ) y el conjunto de información relacionado con la entidad.

-          Gráfica de estructura: es la herramienta del diseño que muestra con símbolos la relación entre los módulos de procesamiento y el software de la comp.

A lo largo de las fases de análisis y diseño, el analista debe proceder paso a paso obteniendo retroalimentación de los usuarios y analizando el diseño, buscando omisiones de errores. El pasar demasiado rápido a la siguiente fase puede requerir que el analista tenga que regresar para volver a trabajar en partes anteriores del diseño.

El análisis estructurado:

·        permite mejorar la operación de la empresa al detectar problemas y oportunidades de mejora.

·        permite estructurar el costoso esfuerzo de implantar SI (Sistemas de Información)

·        brinda una planificación para la instalación del SI.

Ciclo de vida del desarrollo de sistemas

Este puede ser dividido en siete fases secuenciales, aunque las fases están interrelacionadas y frecuentemente se llevan a cabo simultáneamente. Las siete fases son: identificación del problema, oportunidades y objetivos, determinación de los requerimientos de información, análisis de las necesidades del sistema, diseño del sistema recomendado, desarrollo y documentación del software, prueba y mantenimiento del sistema e implementación del mismo.

1.      IDENTIFICACION DE PROBLEMAS, OPORTUNIDADES Y OBJETIVOS

Es el primer paso del análisis del sistema, en este proceso el Analista se reúne con el cliente y/o usuario (un representante institucional, departamental o cliente particular), e identifican las metas globales, se analizan las perspectivas del cliente, sus necesidades y requerimientos, sobre la planificación temporal y presupuestal y otros puntos que puedan ayudar a la identificación y desarrollo del proyecto.

 

2.      DETERMINACION DE LOS REQUERIMIENTOS DE INFORMACION

Para identificar los requerimientos de información de los usuarios involucrados, se utilizan distintas técnicas: muestreo, estudio de datos y formas de la organización, entrevistas, cuestionarios, prototipos.

El analista debe relacionarse directamente con los usuarios para identificar qué información requieren.

 

3.      ANALISIS DE LAS NECESIDADES DEL SISTEMA

Acá también existen técnicas y herramientas para determinar los requerimientos del sistema: diagramas de flujo de datos (técnica  estructurada para representar la entrada de datos, los procesos, y las salidas de información), diccionarios de datos (descripción de todos los elementos que usa el sistema).

 

4.      DISEÑO DEL SISTEMA RECOMENDADO

Con la información recolectada, se diseña lógicamente el SI.  Esto incluye los procedimientos de captura de datos, los procesos, y los accesos al SI, o sea sus salidas.

Especificación Funcional

Describe en forma detallada cada una de las funciones que llevará a cabo el sistema.  Incluye: objetivo, descripción, información de entrada (diseño de pantallas), proceso, información de salida (diseño de listados).

Modelo de Datos

Incluye la descripción detallada de cada tabla de la base de datos, para almacenar la información necesaria.

Debe incluir:  Nombre de cada tabla, campos, tipo de campo y propiedades, clave primaria, tamaño del registro, cantidad de registros estimados, tamaño de la tabla, volumen estimado de la base de datos.

Diseño de la Interfaz

Esta permite conectar al usuario con el sistema, por ej: uso del teclado, de mouse, diseño de menús en pantalla, opciones del menú, etc.

También, cómo se comunica el sistema con otros sistemas existentes.

 

5.      DESARROLLO Y DOCUMENTACION DEL SOFTWARE

En esta etapa, el analista trabaja con los programadores para desarrollar el software necesario en el lenguaje de programación elegido.

El analista le transmite al programador los requerimientos de programación.  Para ello le derivará el modelo de datos y las especificaciones funcionales escritas en pseudocódigo.

La documentación incluye:

-         Manual del sistema: descripción del problema, requerimientos, alternativas evaluadas con sus costos/beneficios, recomendaciones, DFD y DD, especificaciones funcionales, modelo de datos, actas de reunión.

-         Manual del usuario:  cómo operar el software, funciones soportadas, qué hacer ante un problema.

 

6.      PRUEBA Y MANTENIMIENTO DEL SISTEMA

El costo es menor si se detectan los problemas antes de la entrega.  En realidad, cuanto antes se detecten, menor será el impacto de una corrección.  El primer nivel de prueba lo realiza el programador, luego la prueba final la hace el analista.

 

7.      IMPLEMENTACION Y EVALUACION DEL SISTEMA

La implantación es la última fase del desarrollo de sistemas. Es el proceso de  instalar equipos o software nuevo.   En esta etapa trabajará el programador para llevar a cabo la parte técnica, con supervisión del analista a cargo.

En la preparación de la Implantación, aunque el sistema esté bien diseñado y desarrollado, su éxito dependerá de la correcta utilización por lo que es importante capacitar al usuario con respecto a su uso y mantenimiento.

La capacitación consiste en enseñar a los usuarios cómo operar el nuevo sistema, y qué acciones tomar ante problemas que se presenten.

El objetivo de la capacitación es lograr que los usuarios tengan el dominio necesario de las cosas básicas acerca de los equipos y procesos que se emplean para su operación de manera eficiente y segura.

 

 

II.- Análisis y Diseño Orientado a Objeto

 

La metodología orientada a objetos establece cómo abordar de un modo sistemático la construcción de software, y está centrada en el análisis y diseño, que son las fases del proceso de producción de software donde se acomete el modelado del sistema. Además, en estas fases describimos el problema y la solución mediante una serie de modelos.

Esta metodología se puede concebir desde dos perspectivas dimensionales de distinta naturaleza:

-          Tecnológica: conceptos, notación y herramientas usadas para el modelado

-          Proceso: conjunto de pasos a realizar y resultados obtenidos en cada paso

 

En los métodos orientados a objetos la descomposición del sistema se basa en los objetos o clases de objetos que se descubren en el dominio del problema.

 

Los objetivos del análisis son los siguientes:

 

 

 

En cuanto al diseño del sistema, distinguimos tres etapas, que son el diseño del sistema, el diseño de objetos y el diseño de la persistencia.

En el diseño del sistema se produce una descomposición del modelo de objetos en subsistemas, y una elección de la arquitectura para conectar dichos subsistemas.

En el diseño de objetos, modelizamos el dominio de la solución, lo cual incluye las clases del modelo de análisis con, posiblemente, algunas modificaciones más, tales como:

 

En definitiva, las clases propias del diseño son aquellas que no tienen una correspondencia directa con las clases de análisis, y entre ellas se encuentran el acceso a las bases de datos o las estructuras de datos, clases de la interface de usuario, etc.

 

Los Sistemas de Información Orientados a Objetos, se caracterizan por lo siguiente:

Objetos y Clases de Objetos

1.      Clasificar

Clasificar es un proceso que permite distribuir Objetos en colecciones, según un determinado criterio.

La entrada al proceso de clasificación está compuesta por todos los Objetos desde el punto de vista del clasificador.

La salida del proceso es una serie de Clases o colecciones de Objetos ordenados, dispuestos o distribuidos según el criterio establecido por el clasificador.

Clasificar Objetos es un proceso tan antiguo como la propia existencia de la humanidad y que ha permitido entre otras cosas desarrollar el lenguaje y la comunicación.

Clasificar es un acto subjetivo y como tal depende de los criterios de clasificación del clasificador.

Una adecuada clasificación conduce a una abstracción de la realidad, permitiendo el desarrollo de un modelo simple con capacidad de generalización y representatividad de esa misma realidad.

2.      El Objeto

Un Objeto es un ente o concepto, real o abstracto que pertenece a una colección o Clase.

El Objeto se instancia con un evento de creación. Pasando a pertenecer a una Clase determinada desde ese mismo instante.

El Objeto, por el hecho de pasar a pertenecer a una Clase, posee la misma estructura y comportamiento que el resto de los Objetos de la Clase.

3.      La Clase

La Clase es una Colección de Objetos con características comunes. Las Clases son entidades conceptuales que sirven para abstraer y modelizar un Sistema.

Toda Clase posee una doble componente:

    • Una estática, los Datos. Caracterizan los posibles estados que pueden adoptar los Objeto de la Clase en un instante determinado.
    • Otra dinámica, los Métodos. Caracterizan los posibles comportamientos de los Objetos de la Clase a lo largo de su existencia.

Los criterios de clasificación de una Clase son:

1.      Atributos. Variables que tomarán ciertos valores (Datos) en un estado del Objeto. Definen la estructura o componente estática de los Objetos.

2.      Eventos. Estímulos ante los que reaccionan los Objetos cambiando de Estado.

3.      Funciones. Ante un evento, actúan sobre los datos haciendo que el Objeto cambie de estado. Determinan la componente dinámica de los Objetos.

Encapsulación de Objetos

Principio por el cual se deben de modelar al mismo tiempo y de forma inseparable Métodos y Datos.

La Interfaz representa la frontera y el lugar de paso en la comunicación (Input/Output) del Objeto con el mundo exterior.

Debido a la activación de ciertos Eventos tan solo se podrán consultar y modificar los Datos almacenados en los Atributos exclusivamente a través de las Funciones que determinen los Métodos correspondientes al Objeto en cuestión.

 

La Comunicación entre Objetos


La comunicación entre Objetos se produce mediante el envío de Mensajes.

Un Objeto se comunica con otro produciendo un Evento e invocando a través de un mensaje uno de los Métodos del Objeto destino.

La Interface del Objeto que recibe el mensaje si reconoce el Método, permitirá consultar o modificar los Datos almacenados en los Atributos exclusivamente a través de las Funciones que determinen el Método invocado.

 

Herencia


Es una relación transitiva entre Clases, que permite a un Objeto de una Clase utilizar como propios los Datos y Métodos definidos en un Objeto de otra Clase.

La Clase Padre se suele denominar Superclase.

La Clase Hija se suele denominar Subclase, descendiente, derivada, especialización o heredada.

La Subclase consta de dos tipos de características:

La Subclase se especializa de dos formas:

Tipos de Herencia:

Polimorfismo


Propiedad ligada a la Herencia por la que los Eventos que pueden disparar la ejecución de Métodos definidos en un Objeto ascendiente también pueden disparar la ejecución de Métodos definidos en un Objeto descendiente.

En un Objeto descendiente, el Evento puede disparar la ejecución del mismo Método definido en el Objeto ascendiente o uno que haya sido modificado.

Asociaciones y Enlaces

  Enlaces entre Objetos

Los Objetos de un Sistema se relacionan interactuando e intercambiando gran cantidad de información entre sí.

A las relaciones entre los Objetos de un Sistema se les denominan Enlaces. Los Enlaces se pueden realizar entre Objetos de la misma o de diferente Clase.

  Asociaciones entre Clases

La Asociación es una colección de Enlaces entre Objetos con características comunes.

Las Clases de un Sistema se relacionan entre sí mediante Asociaciones. La Asociación se puede realizar entre una Clase y ella misma o entre diferentes Clases.

Las Asociaciones como las Clases son conceptos que sirven para abstraer y modelizar un Sistema.

III.- Diferencias entre ambas metodologías.

 

 

Análisis y Diseño Estructurado

 

 

Análisis y Diseño Orientado a Objeto

Define el sistema como un conjunto de componentes que interactúan  si para alcanzar un objetivo o meta.

Define el Sistema como un conjunto de Objetos ordenadamente relacionados entre sí, con arreglo a unas reglas que cooperan para aportar los procesos necesarios para el cumplimento de una función o finalidad determinada.

 

La entrada al sistema la constituye toda aquella información verbal o escrita que será sometida a la computadora para su procesamiento, esta ocurre cuando la gente teclea los datos directamente al sistema.

 

La entrada al proceso de clasificación está compuesta por todos los Objetos desde el punto de vista del clasificador

El termino “salida” se aplica a cualquier información producida por un sistema, ya sea impresa, desplegada o verbal.

 

 

La salida del proceso es una serie de Clases o colecciones de Objetos ordenados, dispuestos o distribuidos según el criterio establecido por el clasificador.

Compuesto por las siguientes fases :  Investigación preliminar, Determinación de requerimientos, desarrollo del sistema prototipo, diseño del sistema, Desarrollo del software, Prueba de los sistemas, y Puesta en marcha.

En cuanto al diseño del sistema lo constituyen 3 fases  que son:  el diseño del sistema, el diseño de objetos y el diseño de la persistencia.

 

 

 

 

Permite al analista conocer un sistema o proceso (actividad) en una forma lógica y manejable al mismo tiempo que proporciona la base para asegurar que no se omite ningún detalle pertinente.

 

 

 

La metodología orientada a objetos establece cómo abordar de un modo sistemático la construcción de software, y está centrada en el análisis y diseño, que son las fases del proceso de producción de software donde se acomete el modelado del sistema.

 

 

 

IV.- Caso Práctico

 

A continuación se muestra un ejemplo, en el cual se definen los diagramas de UML y el  diagrama de colaboración de un proceso dado.

 

En el departamento de Sistemas existe el proceso de recepción de requerimientos de usuarios, quienes a su vez constituyen para el departamento sus clientes internos, la recepción de estos requerimientos conlleva a dos actividades o subprocesos, a saber: modificar un sistema existente o crear uno nuevo que cumpla con las expectativas del usuario solicitante.

 

1.- DEFINICION DE CASO DE USO.

 

            Caso de Uso: Recibir requerimientos

             Partctipantes: Lider de proyectos

                                    Analista programadores

                                       Usuarios

 

            Descripción: Este caso de uso comienza cuando el líder  de proyectos recibe el requerimiento o solicitud para modificar un sistema existente o diseñar uno nuevo. No existe en el departamento un mecanismo ya sea manual o automatizado que permita controlar de forma eficiente estas solicitudes, lo que conlleva a que continuamente se pierda el “rastro” a estos requerimientos, generando con ello múltiples quejas por parte de los usuarios solicitantes.

 

          El diagrama UML correspondiente seria similar a este:

 

                                                                                                                                                                                                                                                      

                                                                                                                                                                                           

                            

                                                                                             Líder de

                                                                                            Proyecto                                   

 

 

2.- Definición de los Diagramas de Colaboración.

 

 

 

                                     

 

 

Una vez realizado los diferentes diagramas, para lo cual puede usarse el Lenguaje de Modelamiento Unificado (UML), el cual tiene como fin modelar cualquier tipo de sistemas usando los conceptos de la orientación a objetos, el cual nos lleva a la detección de los objetos y clases, usando así mismo el análisis mediante escenarios, la determinación de objetos, el análisis de datos o el análisis de las reglas del negocio, para luego concluir esta fase con el  diseño de aplicaciones, lo cual constituye la implementación del análisis, teniendo en cuenta el lenguaje con el que se va a programar.

 

INFOGRAFIA

 

http://www.dsic.upv.es/asignaturas/facultad/lsi/trabajos/012000.doc

En este documento abarcamos la aplicación de la metodología orientada a objetos en el diseño y en la implementación del caso de posicionamiento 2D, ampliamente resuelto mediante técnicas de análisis y diseño estructurado.

 

http://www.inf.udec.cl/~mvaras/estprog/cap3.html

El análisis estructurado, como todos los demás métodos de análisis de requisitos, es una actividad de construcción de modelos. Mediante una notación que es única de este método, se crean modelos que reflejan el flujo y el contenido de la información (datos y control); se parte el sistema funcionalmente y, según los distintos comportamientos, se establece la esencia de lo que se debe construir.

 

http://www.capraro.com.ar/superior/textos/Unidad2_Ana_y_Dis_Sistemas.doc

 

El análisis y diseño de sistemas es un enfoque sistemático para la identificación de problemas, oportunidades y objetivos analizando los flujos de información en las organizaciones y diseñando sistemas de información computarizados para resolver un problema

 

http://www.ctv.es/USERS/belmont/indexoo.htm

La Información es una colección de Datos que entra, fluye, se procesa y sale de un Sistema.