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.
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).
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.
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 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:
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.
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
Toda Clase posee una doble componente:
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.
Principio
por el cual se deben de modelar al mismo tiempo y de forma inseparable Métodos y
Datos.
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
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.
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.
Tipos
de Herencia:
Propiedad ligada a
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.
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.
Las
Clases
de un Sistema
se relacionan entre sí mediante Asociaciones.
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