El desarrollo de sistemas de información empleando el lenguaje de modelado unificado UML
- Resumen
- La Ingeniería de
Software - La complejidad del
Software - Principios de
Modelado - El Lenguaje de Modelado
Unificado UML - El proceso Unificado de
Modelado (RUP) - Diagramas de
UML - Conclusiones
- Bibliografía
El presente artículo describe la evolución de las notaciones que dieron
lugar a UML (Lenguaje de
Modelado Unificado), detalla ampliamente sobre el surgimiento de
la Ingeniería del Software, expone los
principios de
modelado en que se fundamenta la notación de UML, asimismo
muestra y
explica como el UML adopta el RUP(Proceso
Unificado de Desarrollo) para modelar las actividades de un
proyecto.
Finalmente se propone la
organización de los diagramas a
utilizar en las diferentes etapas del desarrollo de los sistemas de
información.
1. Introducción.
A lo largo de los años, el desarrollo de los
proyectos de
software causan bastantes confusiones y malas interpretaciones en
los requerimientos de los clientes y
usuarios, en parte debido a la abundancia de notaciones,
metodologías y conceptos que hace que los desarrolladores
de sistemas no se pongan de acuerdo en que es lo que realmente
están elaborando. En un esfuerzo para estándarizar
las notaciones y procesos a
utilizar, se conformó un consorcio liderado por la empresa
Rational y por las principales empresas del
mundo de la industria de
la informática, entre ellas, Microsoft,
Oracle, Sun
Microsystems, Intellicorp, IBM, AMD y otras, quienes
desarrollaron una notación llamada UML y el proceso de
desarrollo RUP.
La ingeniería del Software nace como una disciplina
para aplicar los principios técnicas y
herramientas
de desarrollo de software, surgió porque todos los
desarrolladores en la década de los 80’s, realizaban
el software de forma artística, es decir utilizando
métodos y
técnicas adhoc donde la experiencia (el
ensayo-error) era el camino a seguir. Este enfoque produjo
grandes y exitosos productos de
programación pero conforme los proyectos se
volvieron más complejos debido al avance del hardware y software y la
penetración cada vez mayor de la informática en
todos los ámbitos de la sociedad,
llevó a que se produjera software sin calidad, se
incumplieran los presupuestos y
se incrementara dramáticamente los costos de
mantenimiento.
La solución propuesta fue aplicar métodos
y principios que han sido utilizados y probados en la experiencia
de desarrollo de software para producir de forma
inequívoca productos que corran eficientemente y se
ejecuten sobre máquinas
reales. En la década de los 70 surgieron una gran variedad
de metologistas y metodologías entre ellos se destacan
Yourdon y Demarco cuyas investigaciones
se basaban en los principios de la programación
estructurada. En los 80’s y 90’s el paradigma
estructurado evolucionó hacia el paradigma orientado a
objetos, en el período de 1989 y 1994 se creó la
llamada guerra de
métodos dentro de la comunidad
orientada a objetos existiendo un incremento de menos de diez a
más de cincuenta metodologías, es así que
los desarrolladores de software quedaron muy confundidos sin
saber cual era la metodología más adecuada para
elaborar sus proyectos.
Ante lo enunciado, el UML oficialmente se
presentó cuando Rumbaugh, Booch y Jacobson unifican sus
estudios con una semántica y notación, para lograr
compatibilidad en el análisis y diseño
orientado a objetos, permitiendo que los proyectos se asentaran
en un lenguaje de modelado maduro, permitiendo a los
constructores de herramientas enfocarse en producir
características más útiles.
3. La complejidad
del Software.
Al observar sistemas complejos sociales como una gran
empresa, los
naturales como el universo y los
sistemas creados por el hombre como
el computador, se
observa que exhiben una jerarquía de clases (conceptos) y
otra de objetos (instancias). En una empresa donde
conjuntos de
personas forman un departamento y un conjunto de departamentos
forman divisiones se describe la forma canónica de un
sistema complejo
que exhibe dos jerarquías: Una jerarquía de clases
y otra jerarquía de objetos, donde cada objeto es una
instancia de la una clase. Este es
el modelo del
cual se apropia el análisis y diseño orientado a
objetos para desarrollar sistemas donde hay gran cantidad de
software.
Figura 1.
Forma Canónica de un Sistema
Complejo
En cualquier proyecto de ingeniería como la
construcción de un gran edificio, un
avión, una represa hidroeléctrica, la
construcción de un procesador de
textos o un software de comunicaciones
para Internet,
requieren de etapas de modelamiento que permitan experimentar y
visualizar el sistema que se construirá. De la experiencia
en ingeniería se extractan los siguientes principios de
modelado:
a) La forma como vemos el problema tiene una profunda
influencia en forma como acometemos el problema y le damos
solución al mismo.
Si pensamos que el mundo esta compuesto de clases
(Abstracciones de la realidad y de la solución del
problema) y objetos (instancias de éstas abstracciones)
que interactúan entre si para realizar una funcionalidad,
así veremos el mundo. Este es precisamente al paradigma a
que le apuesta UML: el modelo orientado a objetos. Si vemos la
realidad como compuesta de procesos donde cada uno a su vez se
puede descomponer en subprocesos entonces estamos concibiendo la
realidad según el modelo estructurado y la arquitectura del
sistema en desarrollo estará conformada de programas y
subprogramas.
b) Para modelar un sistema complejo no es suficiente
un único modelo se requieren múltiples modelos donde
cada uno representa una vista (aspecto) del sistema; estos
modelos se complementan entre si.
Esta es la razón de la existencia de varios
diagramas en UML que modelan diferentes aspectos del sistema,
desde las vistas lógicas y físicas del sistema
hasta los aspectos dinámicos, estáticos y
funcionales del mismo.
c) Cualquier modelo puede ser representado con
diferentes grados de precisión.
La precisión se puede ver desde dos
ópticas: La primera es el grado de detalle con que se
representa un modelo; por ejemplo, si lo que se desea es razonar
acerca de los requerimientos del sistema con un cliente o usuario
final, se puede elaborar un diagrama de
clases que muestra las clases, sus atributos y operaciones
así como varios adornos(multiplicidad) en las relaciones;
por otro lado, si lo que se desea es transmitir el diagrama de
clases para que sea implementado en un DBMS (Data Base Management
System, Sistema Administrador de
Bases de
Datos) por un programador, el diagrama con toda seguridad
contendrá la visibilidad de las características
(atributos y operaciones) de las clases, los tipos de datos de
los atributos y las signaturas de las métodos de las
clases.
La segunda forma de ver la precisión de un modelo
se refiere al nivel de abstracción, ese decir, a los
detalles y la vista (porción del sistema o realidad) que
presenta un modelo al lector; por ejemplo, en un sistema Bancario
que maneja los retiros que hacen los clientes ya sea en un cajero
automático o humano, el diagrama de clases contiene
decenas de éstas; sin embargo las personas encargadas de
desarrollar la interfaz de un cajero electrónico
estarían interesadas en las clases necesarias para
realizar el comportamiento
del cajero y omiten el resto de clases del sistema.
d) Los mejores Modelos están ligados a la
realidad.
El símbolo de un actor en un diagrama de casos de
uso representa, de hecho, un actor en el sistema real; así
como un componente en un diagrama de componentes representa un
componente físico del software. Cada elemento de UML como
una clase, objeto, estado,
componente o nodo tiene su correspondencia con algún
elemento conceptual o físico del mundo real.
5. El Lenguaje de
Modelado Unificado 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.
6. El proceso
Unificado de Modelado (RUP).
A través de la historia se han desarrollado
varios modelos de proceso de software (paradigmas de
desarrollo) cada uno con sus ventajas, desventajas y utilidad en
algunos tipos de proyectos y problemas. Al
igual que cualquier notación, el proceso unificado
actúa como un modelo que puede adaptarse a cualquier tipo
de proyecto y empresa (grandes y pequeñas). Las
características del proceso unificado de modelado
son:
- Centrado en los Modelos: Los diagramas son un
vehículo de comunicación más expresivo que las
descripciones en lenguaje natural. Se trata de minimizar el uso
de descripciones y especificaciones textuales del
sistema. - Guiado por lo casos de uso: Los casos de uso
son el instrumento para validar la arquitectura del software y
extraer los casos de prueba. - Centrado en la arquitectura: Los modelos son
proyecciones del análisis y el diseño constituye
la arquitectura del producto a
desarrollar. - Iterativo e incremental: Durante todo el
proceso de desarrollo se producen versiones incrementales (que
se acercan al producto terminado) del producto en
desarrollo.
Figura 2.
El Proceso de Modelado
Unificado
El gráfico que representa el RUP incluye las
cuatro etapas importantes que son: la iniciación,
elaboración, construcción y transición, las
cuales muestran que para producir una versión del producto
en desarrollo se aplican todas las actividades de
ingeniería pero con diferente énfasis; en las
versiones preliminares, como además indica la
intuición, hay más énfasis en actividades de
modelado del negocio, requisitos, análisis y
diseño; conforme se producen versiones el énfasis
pasa a las actividades de implementación, pruebas y
despliegue.
8. Diagramas
de 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 como muestra la siguiente figura:
Figura 3.
Para ver el gráfico seleccione la
opción "Descargar" del menú
superior
Diagramas recomendados en el
desarrollo de los sistemas de información
El lenguaje Unificado de modelado UML es una
notación que es el resultado de la evolución de las
notaciones previas en ingeniería de software, toma los
aspectos fuertes de tres metodologías anteriores: OMT,
Booch y OOSE.
La notación UML se fundamenta en principios de
modelado, lo cual es importante para toda implementación
de un sistema de información.
El UML debe adoptar el Proceso Unificado de Desarrollo
para modelar las actividades de un proyecto.
Los diagramas a utilizar en las diferentes etapas del
desarrollo de los sistemas de información, pueden variar
dependiendo del tamaño y tipo de sistema, por lo que es
necesario organizarlos según las fases del Proceso
Unificado.
- BARRIENTOS Aleida Proceso Metodológico de
Auditoría
Informática aplicado a la evaluación y seguimiento de Sistemas de
Gestión desarrollados con el
estándar de modelado UML, Tesis de
Maestría en Ingeniería Informática,
Universidad
de Oriente La Habana Cuba –
Universidad Autónoma Tomás Frías,
Potosí-Bolivia,
2002. - BOOCH Grady et al. El lenguaje Unificado de
Modelado, Primera Edición, Editorial Addison Wesley,
1999. - LARMAN Craig UML y Patrones Una
introducción al Análisis y Diseño
Orientado a Objetos y al Proceso Unificado, Segunda
Edición, Editorial Prentice Hall, 2002. - JACOBSON Ivar et al. El Proceso Unificado de
Modelado, Primera Edición, Editorial Addison Wesley,
1999. - RUMBAUGH James Modelado y Diseño Orientado
a Objetos con OMT, Primera Edición, Editorial
Addison Wesley, 1998
Por:
Aleida Mirian Barrientos
Enríquez
Licenciada en Informática
Magíster en Ingeniería
Informática
Magíster en Educación Superior
Potosí-Bolivia