Modulo N5
Modulo N5
Modulo N5
I. Datos Generales
Nombre de la Asignatura: Herramientas CASE Código: HCG-0620
Unidades valorativas: 4 Duración del Módulo: 10 días
Objetivos Específicos:
Aprender a utilizar diagramas de negocios para analizar los problemas del análisis y
diseño de información.
Comprender cuales son las mejores prácticas para realizar diagramas de negocios.
Diagramar casos de usos y crear diagramas de procesos de negocios.
Modelado de Procesos
Para realizar el análisis y diseño de un sistema es muy importante comprender y manejar los
diagramas de procesos, por lo tanto después de leer el Modulo No.5 de los Materiales del
curso, conteste las siguientes preguntas:
Elija un proceso de negocio específico para la empresa que usted desee. Obviamente debe
especificar el nombre del proceso y de la empresa en la portada del trabajo y luego realice lo
siguiente:
II. Contenido
Desde que UML fue adoptado por el OMG como el lenguaje estándar para el modelado, se ha definido
un buen número de modelos de proceso para el desarrollo de aplicaciones orientadas a objetos (OO),
que utilizan este lenguaje como medio de expresión de los diferentes modelos que se crean durante el
desarrollo. Estas propuestas suelen estar guiadas por los casos de uso, de manera que éstos se
emplean para definir los requisitos funcionales del sistema, y todas las etapas del proceso
(planificación de las iteraciones, análisis, diseño y pruebas) se articulan en torno a los casos de uso
identificados.
Actualmente, en muchas discusiones sobre casos de uso se coincide en señalar que con frecuencia
son mal interpretados, y que no hay guías precisas para resolver los aspectos que tienen que ver con
su organización. En este sentido, se han publicado diferentes propuestas en las que se discuten
cuestiones tales como la granularidad de los casos de uso, el nivel de detalle en que deben
describirse, o la conveniencia de crear una jerarquía de casos de uso.
2 Motivación
2.1 Problemas en la Utilización de los Casos de Uso
Actualmente, la mayor parte de los modelos de proceso propuestos para UML se definen como
guiados por los casos de uso. Un caso de uso puede ser definido como una secuencia de acciones,
incluyendo variaciones, que el sistema puede ejecutar y que produce un resultado observable de valor
para un actor que interactúa con el sistema. Aunque el éxito de los casos de uso se suele justificar con
el hecho de que constituyen una técnica simple e intuitiva, algunos señalan las dificultades que
entraña la obtención y la especificación de casos de uso verdaderamente útiles, y la falta de consenso
sobre cómo organizarlos y manejarlos.
Estas son las razones que nos llevan a pensar que es necesario establecer un conjunto de guías para
la identificación, descripción y organización de los casos de uso.
Algunas discusiones interesantes acerca del manejo de casos de uso son las proporcionadas por T.
Korson y A. Cockburn. Korson, defiende que los requisitos (y por tanto los casos de uso) han de ser
organizados jerárquicamente y establece que i) cada nivel de casos de uso no debe añadir nuevos
requisitos, sino refinar los del nivel superior, y ii) la jerarquía de casos de uso no debe ser el resultado
de una descomposición funcional, y ha de ser desarrollada de manera iterativa e incremental.
Por otro lado, Cockburn utiliza el concepto de objetivo (goal) para organizar jerárquicamente los casos
de uso. Distingue básicamente entre objetivos estratégicos (los procesos del negocio de la
organización) y objetivos de usuario (las funciones del sistema). Los objetivos estratégicos se
corresponden con un conjunto de objetivos de usuario y, de igual modo, un objetivo de usuario puede
ser descompuesto, a su vez, en un conjunto de objetivos de usuario.
Otra cuestión importante es la ubicación del modelado de casos de uso dentro del modelo de proceso.
Normalmente se concibe el modelado de casos de uso como un paso previo al modelado conceptual.
Sin embargo, Korson [6] argumenta que no es posible crear casos de uso adecuados y útiles (ni
implementarlos correctamente) sin comprender el dominio, y por tanto, el modelado de casos de uso
y el modelado conceptual deben ser actividades realizadas en paralelo.
2.2 Nuestra Propuesta
Normalmente, los casos de uso son organizados de forma intuitiva a partir de la especificación del
sistema y, posteriormente, las entidades del modelo conceptual se extraen a partir de las
especificaciones de los casos de uso. En las siguientes secciones presentamos una propuesta para
obtener de forma sistemática tanto el modelo de casos de uso como el modelo conceptual, a partir de
un modelo del negocio, de acuerdo con el esquema mostrado en la Fig.1.
Explicaremos, por tanto, cómo el modelo del negocio puede ser la base para la especificación de los
requisitos más importantes del sistema que dará soporte al negocio, siendo por tanto el propio
negocio lo que determine los requisitos.
Una vez identificados los procesos de negocio de la organización, y descritos sus flujos de trabajo
mediante diagramas de actividades, los casos de uso se estructuran a partir de las actividades de cada
proceso, mientras que las entidades del modelo conceptual se obtienen de los datos que fluyen entre
tales actividades. Además, se identifican las reglas del negocio y se incluyen en un glosario como
parte de la especificación de los datos y las actividades. Un aspecto notable de nuestra propuesta es
que el modelado de casos de uso y el modelado conceptual se realizan al mismo tiempo, facilitando,
por tanto, la identificación y especificación de los casos de uso adecuados.
El aspecto estructural de la colaboración entre los roles para llevar a cabo un caso de uso del negocio,
puede ser representado en un diagrama de roles, en el que cada rol (una clase UML estereotipada)
aparece asociado con los roles con los que puede colaborar (ver Fig. 4). Por tanto, este diagrama
permite expresar el conocimiento que unos roles tienen de otros, así como las características (como la
multiplicidad) de cada relación entre roles. Además, este diagrama permite también mostrar las
características de los roles identificados, tales como sus atributos y responsabilidades
Fig. 4. Diagrama de roles para el caso de uso del negocio Registrar Pedido
Fig. 5. Diagrama de secuencia para el caso de uso del negocio Registrar Pedido
Para mostrar de forma más detallada el flujo de trabajo que realiza cada proceso del negocio,
utilizaremos diagramas de actividades con calles (swimlanes), que llamaremos diagramas de proceso.
La Fig. 6 muestra el diagrama de proceso que incluye el escenario de la Fig. 4. Existe una calle por
cada rol participante en el escenario, que incluye las actividades que realiza dicho rol. El diagrama
también muestra la información que necesita y produce cada actividad, y la sincronización requerida
entre las diferentes actividades.
Los datos aparecen como objetos que fluyen entre las actividades y pueden tener un estado. Por
ejemplo, la actividad Cursar pedido recibe un pedido propuesto e inicia su revisión (ver Fig. 6). Nos
referimos a estos objetos como objetos de información.
Durante la descripción de un proceso del negocio mediante un diagrama de proceso, es posible
encontrar una actividad cuya complejidad sea tal que sea necesario describirla mediante otro
diagrama de proceso adicional. Por tanto, este nuevo diagrama de proceso describirá un subobjetivo
en relación con el objetivo ligado al proceso del negocio original. De este modo los procesos de
negocio se organizan jerárquicamente.
También es posible mostrar en diferentes diagramas de proceso el flujo normal y los flujos
alternativos.
Fig. 6. Diagrama de proceso para el caso de uso del negocio Registrar Pedido
Los casos de uso se pueden organizar en varios niveles (recomendamos dos o tres como máximo) de
acuerdo con la descomposición jerárquica propuesta en el modelado del negocio.
Cada caso de uso se describirá mediante una plantilla que puede rellenarse a partir de la
especificación de la actividad asociada, que se encuentra recogida en el glosario como ya hemos visto.
La plantilla que proponemos está basada en la de Coleman, a la que hemos añadido un campo para
las postcondiciones del caso de uso, tal como se muestra en la Fig. 9.
Fig. 9. Descripción del caso de uso del sistema Ordenar Fabricación
Fig. 10. Modelo conceptual inicial para el caso de uso del negocio Registrar Pedido
En esta etapa del desarrollo, es aconsejable centrarse más en la identificación y especificación de los
conceptos que en las relaciones entre ellos, puesto que éstas serán refinadas en fases posteriores. Por
el momento, podemos concentrarnos en las asociaciones del tipo debe-conocer y en la generalización
para identificar las relaciones entre conceptos más importantes. Por ejemplo, a partir del glosario
podemos establecer que un pedido debe conocer al cliente que lo realiza y los productos que lo
componen (ver Fig. 7).
Por otro lado, alguno de los roles identificados en el modelo del negocio, y por tanto especificado en
el modelo de roles, podría ser incluido como una clase en el modelo conceptual. Es el caso de la clase
Cliente en nuestro ejemplo.
De igual forma que conectamos en el glosario las actividades con los casos de uso del sistema,
vincularemos cada objeto de información con la clase del dominio que lo representa en el sistema.
El modelo del negocio permite además identificar aquellas clases cuyo comportamiento depende de un
conjunto no trivial de estados alcanzables. En estos casos, sería interesante definir una máquina de
estados mediante un diagrama statechart UML.
Estas clases se detectan con facilidad en los diagramas de proceso, puesto que se corresponden con
objetos de información etiquetados con varios estados diferentes.
En nuestro ejemplo, Pedido sería candidato para construir una máquina de estados que mostrase los
estados de un pedido (propuesto, en_evaluación, evaluado, aceptado y rechazado) y los eventos que
producen los cambios entre estados.
Con las guías proporcionadas, el modelador dispone de un modo sistemático de identificar y organizar
casos de uso, y de identificar y definir las clases del modelo conceptual. Los procesos de negocio de la
organización se identifican partiendo de sus propios objetivos, y se describen mediante flujos de
actividades que se representan mediante diagramas de actividades UML. De este modo, los casos de
uso del sistema se obtienen a partir de las actividades de los procesos del negocio, se organizan
jerárquicamente y se facilita su desarrollo iterativo e incremental, de acuerdo con lo indicado por
Korson.
Las clases del modelo conceptual se obtienen a partir de los objetos de información que fluyen entre
las actividades. Nos gustaría subrayar, como una característica importante de nuestro enfoque, que el
modelado de los casos de uso del sistema y el modelado conceptual se realizan en paralelo, de
acuerdo con Korson, quien establece que esto es crucial para obtener casos de uso correctos, puesto
que es necesario entender bien el dominio para poder escribir casos de uso que sean realmente útiles.
A la vez que se realiza el modelado del negocio y de los requisitos, las reglas del negocio de la
organización se recogen en un glosario, en forma de especificación de las actividades y de los casos
de uso asociados, así como de los objetos de información y de las clases que los implementan. Esto
permite mantener las correspondientes relaciones de trazabilidad entre los diferentes artefactos del
modelado.