El Modelo Del Negocio Como Base Del Modelo de Requisitos
El Modelo Del Negocio Como Base Del Modelo de Requisitos
El Modelo Del Negocio Como Base Del Modelo de Requisitos
Resumen. En este trabajo se presenta una estrategia para obtener de modo sistemtico el modelo de casos de uso y el modelo conceptual, a partir del modelado del negocio basado en diagramas de actividades UML. Despus de determinar los procesos del negocio de la organizacin bajo estudio, y de describir
sus flujos de trabajo mediante diagramas de actividades, los casos de uso son
identificados y estructurados a partir de las actividades de cada proceso, mientras que los conceptos del modelo conceptual se obtienen a partir de los datos
que fluyen entre las actividades. Adems, las reglas del negocio son identificadas e incluidas en un glosario, como parte de la especificacin de datos y actividades. Un aspecto destacable de nuestra propuesta es el hecho de que el modelado conceptual y el de casos de uso son realizados en paralelo, haciendo ms
fcil la identificacin y especificacin de casos de uso adecuados. Tanto el modelado de casos de uso como el modelado conceptual forman parte de la fase de
anlisis de requisitos de un modelo de proceso completo en cuya definicin estamos trabajando y cuya primera etapa es el modelado del negocio. Este proceso est siendo completado y adaptado a la tecnologa web dentro de un proyecto
PROFIT en cooperacin con una empresa de desarrollo de software.
1 Introduccin
Desde que UML [1] fue adoptado por el OMG como el lenguaje estndar para el
modelado, se ha definido un buen nmero de modelos de proceso para el desarrollo de
aplicaciones orientadas a objetos (OO), que utilizan este lenguaje como medio de
expresin 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 (planificacin de las iteraciones, anlisis, diseo y pruebas) se articulan en torno a los
casos de uso identificados.
Actualmente, en muchas discusiones sobre casos de uso se coincide en sealar que
con frecuencia son mal interpretados, y que no hay guas precisas para resolver los
Esta ponencia es una revisin del trabajo De los procesos de negocio a los casos de uso,
presentado en las V Jornadas de Ingeniera del Software y Bases de Datos celebradas en Valladolid en noviembre de 2000.
La revisin ha sido subvencionada por el Proyecto PROFIT FIT-070000-2000-411 y por la
Red Temtica de Investigacin en Ingeniera del Software TIC 2000-2052-E.
aspectos que tienen que ver con su organizacin. En este sentido, se han publicado
diferentes propuestas (por ejemplo [2, 5, 6]) 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 jerarqua de casos de uso.
En la actualidad trabajamos en la definicin de un proceso basado en UML orientado a sistemas de informacin de gestin y en su adaptacin al desarrollo de aplicaciones web, dentro de un proyecto PROFIT2 en cooperacin con la empresa de consultora y desarrollo de software Sinergia Tecnolgica. Este proceso incluye una fase
inicial de modelado del negocio, que describe los procesos del negocio de la organizacin bajo estudio de manera que se puedan construir, de forma sencilla y directa,
versiones iniciales de los modelos conceptual y de casos de uso, propios de la etapa
de modelado de requisitos. En este trabajo describimos cmo realizar el modelado del
negocio y su conexin con el modelo de requisitos.
La estructura del trabajo es la siguiente: en el apartado 2 comentamos brevemente
la problemtica asociada a la utilizacin del concepto de caso de uso, y ofrecemos una
visin general de nuestra propuesta; en el apartado 3 presentamos la manera de abordar el modelado del negocio; en el apartado 4 mostramos cmo realizar la transicin
desde el modelo del negocio a los modelos de casos de uso y conceptual; finalmente,
en la seccin 5 exponemos nuestras conclusiones.
2 Motivacin
2.1 Problemas en la Utilizacin 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 interacta con el
sistema [1]. Aunque el xito de los casos de uso se suele justificar con el hecho de que
constituyen una tcnica simple e intuitiva, algunos autores (ver por ejemplo [2, 5, 6])
sealan las dificultades que entraa la obtencin y la especificacin de casos de uso
verdaderamente tiles, y la falta de consenso sobre cmo organizarlos y manejarlos.
Estas son las razones que nos llevan a pensar que es necesario establecer un conjunto
de guas para la identificacin, descripcin y organizacin 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 [5] defiende que los requisitos (y por
tanto los casos de uso) han de ser organizados jerrquicamente y establece que i) cada
nivel de casos de uso no debe aadir nuevos requisitos, sino refinar los del nivel superior, y ii) la jerarqua de casos de uso no debe ser el resultado de una descomposicin
funcional, y ha de ser desarrollada de manera iterativa e incremental.
Por otro lado, Cockburn [2] utiliza el concepto de objetivo (goal) para organizar jerrquicamente los casos de uso. Distingue bsicamente entre objetivos estratgicos
(los procesos del negocio de la organizacin) y objetivos de usuario (las funciones del
sistema). Los objetivos estratgicos se corresponden con un conjunto de objetivos de
Diagrama de Roles
Diagrama de Secuencia
Diagrama de Proceso
Diagrama de Casos
de Uso del Sistema
Glosario
Modelo Conceptual
Explicaremos, por tanto, cmo el modelo del negocio puede ser la base para la especificacin de los requisitos ms 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 organizacin, y descritos sus
flujos de trabajo mediante diagramas de actividades, los casos de uso se elicitan y
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. Adems, se identifican las reglas del negocio y se incluyen en un glosario como parte de
la especificacin 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 identificacin y especificacin de los casos de
uso adecuados.
Fabricar producto
Gestionar almacen
Proveedor
Fig. 2. Diagrama de casos de uso del negocio para el sistema de produccin just in time
fallos que pueden ocurrir al ejecutar este proceso), posibilidades (cambios o mejoras
futuras del proceso), y por ltimo, tiempo y coste aproximados de ejecucin. Esta
descripcin puede ser validada fcilmente por los usuarios.
A continuacin, hemos de determinar los agentes internos que juegan un rol en el
caso de uso del negocio. Hasta el momento hemos identificado los roles que pertenecen al entorno de la organizacin. Ahora es necesario estudiar la Descripcin (ver Fig.
3) de cada caso de uso del negocio, y observar el conjunto completo de roles involucrados, tanto externos como internos a la organizacin. Los roles del caso del uso del
negocio Registrar pedido son Cliente, Comercial, JefeTecnico, y JefeProduccion
(siendo los tres ltimos internos al sistema).
Proceso de Negocio Registrar Pedido
Registrar Pedido de Cliente
Objetivo
1. El cliente enva una orden de pedido, que debe incluir la fecha de solicitud, datos
Descripcin
del cliente y productos solicitados. Es posible que sea un empleado del departamento comercial quien introduzca el pedido, a peticin de un cliente que realiz su pedido por telfono o lo envi por fax o correo ordinario al dpto. comercial
de la empresa.
2. El empleado revisa el pedido (completndolo, si es necesario), y comienza su
procesamiento envindolo al jefe tcnico, encargado de su anlisis.
3. El jefe tcnico analiza la viabilidad de cada producto pedido por separado:
Si el producto pedido est en el catlogo, su fabricacin es aceptada.
En caso contrario, es considerado un producto especial, y el jefe tcnico estudia su produccin:
- Si es viable, la fabricacin del producto especial es aceptada;
- Si no es viable, el producto especial no ser fabricado.
4. Una vez estudiado el pedido completo, el jefe tcnico...
Informa al departamento comercial de la aceptacin o rechazo de cada producto pedido;
Si todos los productos de un pedido han sido aceptados, se crea una orden
de trabajo para cada producto, a partir de una plantilla de fabricacin (la
estndar si el producto estaba catalogado, o una nueva, especficamente
diseada para el producto, si ste no estaba en el catlogo). Cada orden de
trabajo es enviada al jefe de produccin, y queda pendiente de su lanzamiento.
5. El comercial comunica al cliente el resultado final del anlisis de su pedido.
Prioridad
Riesgos
Posibilidades
Tiempo Ejecucin
Coste de Ejecucin
Bsico
...
...
...
...
Fig. 3. Descripcin parcial del caso de uso del negocio Registrar pedido
El aspecto estructural de la colaboracin 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 caractersticas (como la multiplicidad) de cada
relacin entre roles. Adems, este diagrama permite tambin mostrar las caractersticas de los roles identificados, tales como sus atributos y responsabilidades. Ortn y
Garca Molina discuten con ms detalle el modelado de roles con UML en [8].
Role
Cliente
Role
Comercial
*
*
Role
JefeProduccion
Role
JefeTecnico
Fig. 4. Diagrama de roles para el caso de uso del negocio Registrar Pedido
: Comercial
darCursoPedido()
: JefeTecnico
estudiarPedido()
: JefeProduccion
* analizarFabricacProducto()
planificarFabricacion()
informarAnalisisPedido()
aceptarPedido()
Fig. 5. Diagrama de secuencia para el caso de uso del negocio Registrar Pedido
Para mostrar de forma ms 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 tambin muestra la informacin que necesita y
produce cada actividad, y la sincronizacin 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
revisin (ver Fig. 6). Nos referimos a estos objetos como objetos de informacin.
Durante la descripcin 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 relacin con el objetivo ligado al proceso del negocio original. De este modo los procesos de negocio se organizan jerrquicamente. Tambin es posible mostrar en diferentes diagramas de proceso el flujo
normal y los flujos alternativos.
: Cliente
: Comercial
: JefeTecnico
: JefeProduccion
:Catalogo
Rellenar Pedido
p:Pedido
[propuesto]
:Plantilla de
Produccion
p:Pedido
[en_evaluacion]
Cursar pedido
Analizar viabilidad
p:Pedido
[evaluado]
Notificar rechazo
de pedido
[ NO ]
:Producto
Especial
Viable ?
[ SI ]
Fin KO
p:Pedido
[rechazado]
Notificar aceptacion
de pedido
:Plantilla de
Produccion
Ordenar fabricacion
:Orden de
Trabajo
[pendiente]
Planificar produccion
p:Pedido
[aceptado]
Fin OK
Fig. 6. Diagrama de proceso para el caso de uso del negocio Registrar Pedido
...
...
Rellenar Pedido
Analizar Viabilidad
Cursar Pedido
Ordenar Fabricacion
Cliente
JefeTecnico
JefeProduccion
Comercial
Notificar Rechazo Pedido
Los casos de uso se pueden organizar en varios niveles (recomendamos dos o tres
como mximo) de acuerdo con la descomposicin jerrquica propuesta en el modelado del negocio.
Cada caso de uso se describir mediante una plantilla que puede rellenarse a partir
de la especificacin 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 [3],
a la que hemos aadido un campo para las postcondiciones del caso de uso, tal como
se muestra en la Fig. 9.
Caso de Uso
Descripcin
Actores
Asunciones
Postcondiciones
Pasos
Variaciones
Req. No Funcionales
Cuestiones
Ordenar Fabricacin
Crear rdenes de trabajo para cada producto solicitado en el pedido, y enviarlas al jefe de produccin para dar comienzo a la planificacin de su fabricacin.
Jefe tcnico
- El estado del pedido es evaluado.
- Es viable la fabricacin de cada producto solicitado en el pedido.
- Existe una plantilla de fabricacin para cada producto solicitado.
- Ha sido creada una orden de trabajo para cada producto solicitado.
- El estado de cada orden de trabajo es pendiente.
- Cada orden de trabajo ha sido enviada al jefe de produccin
1 REPETIR
1.1 Obtener un producto del pedido.
1.2 Buscar la plantilla de fabricacin asociada al producto.
1.3 Crear la orden de trabajo.
1.4 Almacenar la orden de trabajo con el estado pendiente.
1.5 Enviar la orden de trabajo al jefe de produccin
----
tiene
1..*
es la base de
0..*
1..*
Plantilla de Fabricacion
Pedido
genera
0..*
0..*
Orden de Trabajo
1..*
1
Catalogo
Cliente
Fig. 10. Modelo conceptual inicial para el caso de uso del negocio Registrar Pedido
En esta etapa del desarrollo, es aconsejable centrarse ms en la identificacin y especificacin de los conceptos que en las relaciones entre ellos, puesto que stas sern
refinadas en fases posteriores. Por el momento, podemos concentrarnos en las asociaciones del tipo debe-conocer y en la generalizacin para identificar las relaciones
entre conceptos ms 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, podra 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 informacin con la clase del dominio que lo
representa en el sistema.
El modelo del negocio permite adems identificar aquellas clases cuyo comportamiento depende de un conjunto no trivial de estados alcanzables. En estos casos, sera
interesante definir una mquina 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 informacin etiquetados con varios estados diferentes.
En nuestro ejemplo, Pedido sera candidato para construir una mquina de estados
que mostrase los estados de un pedido (propuesto, en_evaluacin, evaluado, aceptado
y rechazado) y los eventos que producen los cambios entre estados.
4.3 Representacin de las Reglas del Negocio
En este apartado comentaremos con ms detalle cmo son llevadas al modelo de
requisitos las diferentes reglas del negocio que han sido recogidas en el glosario durante el modelado del negocio.
Las reglas de negocio estructurales, de derivacin y de existencia quedan plenamente expresadas en el modelo conceptual. La propia sintaxis del diagrama de clases
de UML permite representar los atributos de los conceptos y sus relaciones, mediante
los atributos de las clases correspondientes y asociaciones entre stas. Las reglas de
derivacin pueden ser especificadas mediante expresiones OCL dentro de constraints
de UML colocadas en el diagrama cerca del elemento derivado, o bien dentro de notas
conectadas a dicho elemento. La multiplicidad de las asociaciones permite por ejemplo representar las reglas del tipo de un pedido ser solicitado por uno y slo un
cliente. Otras restricciones pueden expresarse en OCL utilizando constraints cercanas
a los elementos a los que restringen, como {fechaMaxEntrega>fechaCreacion} para
la clase Pedido. Tambin es posible utilizar OCL o lenguaje natural para expresar una
restriccin dentro de una nota conectada a los elementos afectados por dicha restriccin. Las reglas de existencia estn implcitas en el modelo conceptual, por ejemplo
en el caso de un objeto agregado, como Catlogo, cuya existencia no es posible a
menos que existan los objetos que lo componen.
Por otro lado, las reglas de negocio de operacin quedan expresadas en la plantilla
de descripcin de los casos de uso, puesto que las precondiciones y postcondiciones
de las operaciones especificadas en el glosario se recogen respectivamente en los
campo Asunciones y Postcondiciones.
Por ltimo, las reglas de estmulo/respuesta, expresadas mediante los campos origen y precondiciones de la especificacin de las actividades, quedarn recogidas en el
campo Asunciones de las plantillas de casos de uso.
4.4 Identificacin de Requisitos No Funcionales
Para completar esta fase debemos establecer los requisitos no funcionales, relacionados por ejemplo con el rendimiento, la disponibilidad o la seguridad. Cuando estn
asociados a un caso de uso, podrn especificarse en la plantilla de caso de uso propuesta. Los requisitos no funcionales que afecten a varios casos de uso o sean globa-
les a toda la organizacin, sern recogidos en el apartado correspondiente de la plantilla de ERS elegida.
El modelo del negocio puede ayudar a encontrar requisitos no funcionales, tal y
como se indica en [4], pues por ejemplo los campos tiempo de ejecucin y coste de
ejecucin de la plantilla de descripcin de casos de uso del negocio expresan necesidades no funcionales que deben ser trasladadas a la plantilla de ERS y asociadas a los
correspondientes casos de uso del sistema. Por otro lado, el que los procesos del negocio sean el resultado del anlisis de los objetivos de la organizacin, permite que
los requisitos (funcionales y no funcionales) del sistema puedan ser validados y verificados contra los objetivos.
5 Conclusiones
Este trabajo presenta una estrategia para abordar el modelado del negocio y el anlisis
de requisitos, en la que una primera versin del modelo de casos de uso y del modelo
conceptual se obtienen de forma sencilla, a partir del modelo del negocio basado en el
uso de diagramas de actividades UML.
Con las guas proporcionadas, el modelador dispone de un modo sistemtico de
identificar y organizar casos de uso, y de identificar y definir las clases del modelo
conceptual. Los procesos de negocio de la organizacin 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 jerrquicamente y se facilita su desarrollo iterativo e incremental, de acuerdo con
lo indicado por Korson [5].
Las clases del modelo conceptual se obtienen a partir de los objetos de informacin
que fluyen entre las actividades. Nos gustara subrayar, como una caracterstica 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 [6], 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 organizacin se recogen en un glosario, en forma de especificacin de
las actividades y de los casos de uso asociados, as como de los objetos de informacin y de las clases que los implementan. Esto permite mantener las correspondientes
relaciones de trazabilidad entre los diferentes artefactos del modelado.
En este trabajo hemos expuesto cmo el modelado del negocio puede facilitar la
identificacin de los requisitos tanto funcionales como no funcionales del sistema.
Adems, el hecho de que tales requisitos surjan de la descripcin de los procesos del
negocio, y que stos sean el resultado del anlisis de los objetivos de la organizacin,
posibilita que los requisitos del sistema sean validados y verificados contra los objetivos del negocio
Referencias
1. Booch, G., Rumbaugh, J., Jacobson, I.: The Unified Modeling Language User Guide. Addison-Wesley (1999)
2. Cockburn, A.: Using Goal-Based Use Cases. JOOP, Vol. 10, No. 7 (Nov/Dec 1997) 56-62
3. Coleman, D.: A Use Case Template: Draft for discussion.
http://www.bredemeyer.com/use_case.pdf. (1998)
4. Eriksson, H.E., Penker, M.: Business Modeling with UML. Business Patterns at Work. John
Wiley & Sons, Inc. (2000)
5. Korson, T.: Misuse of Use Cases.
http://software-architects.com/publications/korson/korson9803om.htm. (1998)
6. Korson, T.: Constructing Useful Use Cases.
http://software-architects.com/publications/korson/usecase3. (1999)
7. Martin, J. Odell, J.J.: Object-Oriented Methods: A Foundation. Prentice Hall. (1997)
8. Ortn, M.J., Garca-Molina, J.: Modelado con Roles en UML. IV Jornadas de Ingeniera del
Software y Bases de Datos. Cceres, Spain (1999)
9. Whitenack, B.: RAPPeL: A Requirements Analysis Process Pattern Language for ObjectOriented Development. In: Coplien, J.O., Schmidt, D.C. (eds.): Pattern Languages of Program Design. Addison-Wesley (1995) 259-291