4. Otros Modelos de Requisitos
4.4. Modelo de CU unificado y Tablas de composici´on
4.4.2. Modelo de CU Unificado
El Modelo de CU Unificado se compone simplemente por un listado de CU, un segundo listado de CU Crosscutting (obtenidas a partir de un SIG como operacionalizaciones de un conjunto de RNFs), y relaciones croscutting entre CU y CUC. El metamodelo se detalla en la Figura 4.5
En el contexto de la implementaci´on, en cambio, utilizar este metamodelo de forma directa no resulta lo m´as adecuado: dado que es preciso considerar en todo momento la dualidad ATL- XML que se ha mencionado, es deseable que todo modelo de este metamodelo, entendido como documento XML, sea sencillo de interpretar y consultar; esto no ocurre con esta implementaci´on del Modelo de CU Unificado, debido al problema de las referencias: los documentos XML generados por Eclipse/ATL, con el (razonable, y hasta esperado) objetivo de no duplicar informaci´on, declaran cada elemento del modelo una sola vez, y luego hacen referencia a ´el mediante ´ındices del tipo @< clase elemento > . < indice >. Este formato resulta extremadamente complejo de trabajar con consultas XQuery, dando como resultado modelos dif´ıcil de crear y de comprender, lo cual llama a buscar alternativas.
En este caso, la soluci´on adoptada es un metamodelo simplificado, que facilita simult´aneamente su creaci´on, comprensi´on y consulta. Este metamodelo se detalla en la Figura 4.6:
4. Otros Modelos de Requisitos 47
Figura 4.5: Metamodelo de Casos de Uso Unificado
Figura 4.6: Metamodelo de Casos de Uso Unificado - versi´on simplificada para XML DTD
El DTD que define la representaci´on en XML del modelo simplificado se detalla en la Figura 4.7:
<!ELEMENT dcuc_simple:dcuc (cu*)> <!ELEMENT cu (afectado_por+)>
<!ATTLIST cu titulo CDATA #REQUIRED> <!ELEMENT afectado_por EMPTY>
<!ATTLIST afectado_por titulo CDATA #REQUIRED>
Figura 4.7: Metamodelo de Casos de Uso Unificado - DTD de la versi´on simplificada Como se puede apreciar, este DTD es extremadamente sencillo e intuitivo: por cada Caso de Uso (representado por el elementocu), se puede saber cu´ales son los Casos de Uso Crosscutting que lo afectan consultando sus elementosafectado_porhijo. De todos modos, es importante recordar que esta definici´on es pr´actica para la etapa de implementaci´on, pero resulta inadecuada para el proceso de Ingenier´ıa de Requisitos.
Clase caso uso
Descripci´on Esta clase representa una Unidad de Requisitos Funcionales correspondiente con un CU del MCU
Atributos
titulo:string
T´ıtulo del CU representado Asociaciones
48 4.4. Modelo de CU unificado y Tablas de composici´on afectado por:caso_uso_cc[*]
Relaci´on que indica cu´ales operacionalizaciones operaci´on afectan al CU representado inc cu:sistema [1]
Relaci´on con el elemento padre del modelo includes:caso_uso [1..*]
Relaci´on que representa, a su vez, la relaci´oninclude entre dos CU extends:caso_uso [*]
Relaci´on que representa, a su vez, la relaci´onextends entre dos CU Restricciones
Sin restricciones adicionales
Sem´antica Una instancia de la clase caso_uso se interpretar´a como la representaci´on en este modelo de un CU Funcional, presente en un Modelo de Caso de Uso externo.
Notaci´on
Por estar basado en el MCU, la notaci´on para esta clase ser´a la misma que se utiliza en
Figura 4.8: Representaci´on de una instancia de la clase caso uso
dicho modelo, es decir, un ´ovalo con el nombre del elemento, como puede apreciarse en la Figura 4.8. Su nombre puede encontrarse tanto debajo del elemento como dentro del mismo. Clase caso uso cc
Descripci´on Esta clase representa un Caso de Uso Crosscutting, obtenido de una operacional- izaci´on operaci´on de un softgoal
Atributos
titulo:string
T´ıtulo de la operacionalizaci´on representada Asociaciones
afecta a: caso_uso [1..*]
Relaci´on que indica cu´ales Casos de Uso funcionales se ver´an afectados por el Caso de Uso Crosscutting representado
inc cuc:sistema [1]
Relaci´on con el elemento padre del modelo Restricciones
Sin restricciones adicionales
Sem´antica Una instancia de la clase funcionalidad se corresponde con una operacionalizaci´on presente en la descomposici´on de un softgoal a trav´es de los mecanismos previstos por el Framework NFR.
Notaci´on
Similar a la notaci´on de una instancia de la clasecaso_uso, esta clase se representar´a me- diante un ´ovalo relleno con un patr´on lineal, como se detalla en la Figura 4.9.
4. Otros Modelos de Requisitos 49
Figura 4.9: Representaci´on de una instancia de la clase caso uso cc Clase actor
Descripci´on Esta clase representa a un Actor, correspondiente con un actor de un Diagrama de Casos de Uso
Atributos
titulo:string
Nombre del actor representado Asociaciones
extends:actor [0..1]
Relaci´on que representa, a su vez, la relaci´on extends entre dos actores representado realiza:caso_uso [1]
Casos de Uso que son realizados por el actor inv actores:sistema [1]
Relaci´on con el elemento padre del modelo Restricciones
Sin restricciones adicionales
Sem´antica Una instancia de la clase actor se corresponde con un actor presente en un Diagrama de Casos de Uso.
Notaci´on
Para esta clase se mantiene la notaci´on definida por UML para los DCU: un dibujo simpli-
Figura 4.10: Representaci´on de una instancia de la clase actor
ficado de una persona, con el nombre del actor escrito en un costado, como se aprecia en la figura 4.10
Clase sistema
Descripci´on Clase contenedora de todos los dem´as elementos del modelo Atributos
No posee atributos Asociaciones
actores:actor [*]
Actores del modelo cu:caso_uso [*]
50 4.4. Modelo de CU unificado y Tablas de composici´on cuc:caso_uso_cc [*]
Casos de Uso Crosscutting del modelo Restricciones
S´olo puede haber una instancia de esta clase por modelo
Sem´antica Una instancia de esta clase se utilizar´a como punto central del cual derivar los dem´as elementos del modelo. As´ı, esta clase no cumple otro rol que el de contener a las dem´as instancias de cada clase. Si bien en modelos puramente te´oricos esta clase es redundante, tiene utilidad en el marco de la herramienta ATL, donde es requerida.
Notaci´on No posee notaci´on, puesto que no se representa en el modelo