1) El documento describe el modelado de requisitos en UWE, incluyendo casos de uso, actividades y transformaciones. 2) Los casos de uso incluyen búsqueda y borrado de contactos, y creación y actualización de contactos. 3) Las actividades describen los casos de uso con más detalle usando estereotipos como acciones de usuario y del sistema.
1) El documento describe el modelado de requisitos en UWE, incluyendo casos de uso, actividades y transformaciones. 2) Los casos de uso incluyen búsqueda y borrado de contactos, y creación y actualización de contactos. 3) Las actividades describen los casos de uso con más detalle usando estereotipos como acciones de usuario y del sistema.
1) El documento describe el modelado de requisitos en UWE, incluyendo casos de uso, actividades y transformaciones. 2) Los casos de uso incluyen búsqueda y borrado de contactos, y creación y actualización de contactos. 3) Las actividades describen los casos de uso con más detalle usando estereotipos como acciones de usuario y del sistema.
In UWE el modelado de requisitos consiste de dos partes:
Casos de uso de la aplicacin y sus relaciones Actividades describiendo los casos de uso en detalle Casos de Uso Nuestro ejemplo es simple, por ello no es absolutamente necesario comenzar modelando los casos de uso, pero sirve para ilustrar las funcionalidades de nuestra aplicacin: el usuario debe poder realizar bsquedas en la libreta de direcciones y borrar contactos. Adicionalmente, contactos pueden ser creados y actualizados, cambios deben ser archivados o pueden ser cancelados. En este ejemplo con fines de claridad, nos limitamos a las funcionalidades descriptas, pero aconsejamos modelar tantas como se deseen. En UWE se distinguen casos de uso estereotipados con browsing y con processing para ilustrar si los datos persistentes de la aplicacin son modificados o no. "SearchContact" por ejemplo, modela la bsqueda de contactos y por ello lleva el esterotipo browsing pues los datos son solamente leidos y presentados al usuario. Los otros casos de uso por el contrario modelan cambios, lo que se especifica con el estereotipo processing. stereotype-names and their icons browsing processing webUseCase
Actividades Como con casos de uso solamente es posible capturar poca informacin, cada caso de uso puede ser descripto ms detalladamente mediante un proceso. Es decir, las acciones que son parte de un caso de uso asi como los datos presentados al usuario y aquellos requeridos como entrada de datospueden ser modelados con precisin como actividades. nombres de estereotipos y los iconos correspondientes userAction systemAction displayAction navigationAction displayPin interactionPin Los dos esterotipos user Action y system Action pueden ser usados anlogamente al flujo de procesos. El estereotipo user Action es usado para indicar interacciones de usuario en la pgina web initiando un proceso o respondiendo to un explcito requisito de informacin. Por lo contrario, system Action describe acciones que son ejecutados por el sistema. Ambos tipos de accionespueden ser insertados usando la toolbar. Detalles de las estructuras de datos usadas pueden ser representadas por objetos de nodos y pins de acciones. El objeto de nodo es usado para modelar clases de contenido y los pines sus atributos. Durante ingeniera de requisitos es usual determinar que datos son representados donde y cuando. Para modelar grupos de presentacin en UWE son usados el estereotipo display Action, mientras que los dos pines de accin estereotipados interaction Pin y display Pin son usados para modelar la entrada y la salida de datos. Finalmente el estereotipo navigationAction, puede ser usado para modelar opciones de navegacin y los elementos asociados de presentacin. Como estos estereotipos se utilizan para indicar elementos de presentacin durante la etapa de ingeniera de requisitos, aspectos que caracterizan a RIAs pueden ser especificadas mediante valores etiquetados para estos mismos elementos./p> Para ejemplificar modelamos dos actividades. Primero, una actividad para el caso de uso "CreateContact". El mismo muestra un formulario que permite al usuario entrar su nombre, unadireccin de correo, dos direcciones y nmeros de telfono y el descargar un archivo del tipo imagen. La direccin de correo debe ser validada durante la entrada de datos y el nombre de la ciudad completado automticamente en funcin del cdigo postal. El formulario completado por el usuario es finalmente salvado en la base de datos de la aplicacin.
Un segundo caso de uso que refinamos es "SearchContacts". Para este caso de uso solamente elementos de presentacin son de inters, nos limitamos en el diagrama a ellos. Inicialmente, la presentacin consiste de un simple formulario usado para entrar palabras claves y un butn para el display de la lista de contactos. La parte principal de la presentacin sin embargo, consite en la lista de contactos, que es modelada con una accin "Contacts". Los elementos de presentacin pueden ser agrupados adicionalmente creando acciones con una accin de jerarqua mayor, como puede observarse para las direcciones y los nmerod de telfono. Las dos acciones del estereotipo navigationAction modelan transiciones a otros casos de uso. Esto es modelado la actividad del caso de uso destino como comportamiento de la accin.
Transformaciones Una vez que los requisitos han sido modelados, hay dos maneras de simplificar los pasos siguientes en el modelado de contenido, navegacin, presentacin y procesos: En vez de crear un modelo y el diagrama correspondiente manualmente, el mismo puede ser generado con una transformacin de los datos del modelo de requisitos. Adicionalmente, un modelo previamente generado puiede ser extendido por nuevas clasestransformando desde el modelo de requisitos o agregando a las clases existentes nuevos datosque son dependientes del modelo. Tutorial - Content Model (Espaol) Crea un nuevo diagrama de contenido. Este es un diagrama UML normal de clases, por ello debemos pensar en las clases que son necesarias para nuestro ejemplo. Primero queremos disponer de una clase agenda ("AddressBook") conteniendo un conjunto de contactos. Cada contacto debe contener un nombre, y puede contener una direccin de correo, dos nmeros de telfono y dos direcciones postales. El nombre y la direccin de correo son Strings, el telfono y la direccin postal son clases que representan ms informacin, como se ilustra en la siguiente figura:
Por qu necesitamos el atributo "introduccin" en la clase AddressBook? - Ello es porque queremos almacenar all el texto introductorio de la pgina principal de la aplicacin web. Tutorial - Navigation Model (Espaol) En un sistema para la web es til saber como estn enlazadas las pginas. Ello significa que necesitamos un diagrama conteniendo nodos (nodes) y enlaces (links). Pero que es un nodo? Nodos son unidades de navegacin y estn conectados por medio de enlaces. Nodos pueden ser presentados en diferentes pginas o en una misma pgina. UWE provee diferentes estereotipos, los que presentaremos mediante nuestro ejemplo. La forma ms simple de obtener un Diagrama de Navegacin bsico es utilzando la Transformacin Content to Navigation. En este caso obtenemos para nuestro ejemplo un diagrama que contiene ms nodos de los necesarios. Para los nodos y enlaces son usados los estereotipos navigationClass and navigationLink:
Queremos realmente modelar el enlace desde el contacto a la direccin o el telfono? - No, porque no son relevantes para la navegacin. Pues borremos ambos del rbol de contenido del modelo.
AddressBook ser nuestra pgina principal del sitio web. Lo cul se indica con el tagged value {isHome}. Es pensable un sitio web para una agenda de direcciones con la informacin de todos los contactos en la misma pgina web? - No es eso lo que queremos. El objetivo es una aplicacin en la cul se puede acceder a las operaciones de nuestro diagrama de casos de uso. Por este motivo necesitamos un sitio que provee conexiones a diferentes nodos:
1. ContactList - cada contacto debe ser alcanzable usando un enlace desde la pgina principal del sitio web 2. (contact)Search - buscar un contacto 3. ContactCreation - crear un nuevo contacto y visualizarlo En UWE, puede usarse un menu, para navegar a diferentes clases. Insertar uno y asignarle el nombre "MainMenu":
1. Podemos insertar la lista de contactos(ContactList) casi del mismo modo. El estereotipo index es usado para listar una cantidad de objetos del mismo tipo. Agrega las otras dos clases usando el panel de MagicUWE: 2. La clase para la bsqueda debe tener un estereotipo query. Una bsqueda implica ejecucin de cdigo, por ello conectamos esta clase con una asociacin processLink . 3. ContactCreation es tambin un proceso, pero no uno predefinido, por ello usamos el estereotipo processClass (modelaremos la accin asociada ms adelante). Si un nuevo contacto es creado, es til visualizarlo luego, y en el caso de una bsqueda, se espera la visualizacin de un lista (ContactList) con los resultados. Usamos un estereotipo processLink para estas asociaciones salientes y dirigidas para prohibir la navegacin hacia atrs como en el caso de ContactCreation. Esto evita la creacin por error de duplicados.
nombres de estereotipos y sus iconos clase de navegacin men ndice pregunta visita guiada clase de proceso nodo externo
(En este tutorial solamente algunos aspectos de los estereotipos de UWE son presentados. Por favor vase User Guide and Reference para el uso general de todos los estereotipos de UWE) Para completar nuestro Mdelo de Navegacin (Navigation Model), tenemos que agregar la funcionalidad faltante de borrar y actualizar contactos (ContactDeletion y ContactUpdate) (nuevamente vase diagrama de casos de uso). Estas dos clases son ambas accedidas desde el contacto concreto, por ello necesitamos nuevamente un men ( y lo nombramos ContactMenu indicando que est ubicado en la pgina de cada contacto):
Tutorial - Presentation Model (Espaol) El Modelo de Navegacin no indica cules son las clases de navegacin y de proceso que pertenecen a una pgina web. Podemos usar un Diagrama de Presentacin con el fin de proveer esta informacin! Agrega una presentationPage class y agrega las propiedades con los estereotipos de UWE en ellos para expresar, que el elemento est ubicado en una pgina web. Las propiedades pueden anidarse, por ejemplo cada contacto (presentationGroup-property) cubre diferentes textos y botones. Ello significa, que para cada contacto la correspondiente direccin de correo y los correspondientes campos de telfonos y direcciones sern visualizados en la pgina. Recordemos el atributo "introduction" en nuestro Diagrama de contenido y agreguemos la pginaprincipal del sitio web AddressBook conteniendo el texto introductorio (estereotipo text). Entonces son necesarios un formulario con un campo para entrada de datos (textInput) para el criterio de bsqueda criterion y un botn para lanzar la bsqueda. Una cantidad arbitraria de contactos pueden ser presentados, lo que es modelado con la multiplicidad "*". nombres de estereotipos y sus iconos grupo de presentacin pgina de presentacin texto entrada de texto ancla fileUpload botn imagen formulario componente de cliente alternativas de presentacin seleccin En los siguientes diagramas, los estereotipos son solamente representados por sus iconos. En MagicDraw se puede configurar la visualizacin de ambos: nombres e iconos de los estereotipos.
Mensaje, confirmacin y error de validacin (Message, Confirmation y ValidationError) son modelados aqu, tan slo para mayor claridad aunque en la visin general de nuestro Diagrama de Navegacin(Navigation Diagram) no son visibles. Ellos son pginas simples visualizando un mensaje o una pregunta.
Creacin de contacto (ContactCreation) y actualizacin de contacto (ContactUpdate) son similares la una con la otra, solamente el nombre de las pginas y el botn de "ok" son rotulados de acuerdo con la funcionalidad correspondiente. Por ello, el estereotipo presentationAlternatives es usado nuevamente para evitar el mltiple modelado de todo el contenido de ambos formularios de ingreso de datos. Parece que una imagen en el caso de ContactCreation, antes de que la imagen es subida, no tenga sentido. Sin embargo, puede ser que en la implementacin se desee incluir una imagen por defecto... Los atributos etiquetados {autoCompletion} y {liveValidation} son usados para especificar que los campos de direcciones proveen funcionalidad de auto complementacin y que el formato de la direccin de correo es chequeada automticamente. Tutorial - Process Model (Espaol) Hasta ahora podemos modelar muchos aspectos de nuestro sitio web. Pero no hemos hablado en ningn momento de que aspecto tienen las acciones de nuestras clases de proceso. El Modelo de Proceso comprende: el Modelo de Estructura del Proceso que describe las relaciones entre las diferentes clases de proceso y el Modelo de Flujo del Proceso que especifica las actividades conectadas con cada processClass. Modelo de Estructura del Proceso Con el fin de describir las relaciones entre las diferentes clases de proceso, creamos un diagrama de clases, usando la transformacin de navegacin a estructura de proceso (Navigation to Process Structure Transformation). Despues de ejecutar la transformacin tenemos un diagrama de clases con tres clases enmarcadas con un borde rojo:
Como puede observarse, hemos agregado otras clases para expresar, que las tres operaciones requieren una confirmacin (recuerda nuestro diagrama de presentacin) con una pregunta. Esto significa que si un usuario quiere borrar un contacto, un mensaje ser mostrado, el cul deber ser confirmado con un ok para que el contacto sea borrado. ContactCreation and ContactUpdate funcionan en forma similar, ambos heredan de la clase abstracta ContactProcessing, asegurando que los campos de texto, que son atributos de ContactDataInput contienen valores vlidos (por ejemplo podemos pensar en prohibir un nombre en blanco para prevenir entradas inservibles en la base de datos). No bien los datos han sido validados y no hay errores de validacin (ValidationError) la pgina de confirmacin es presentada al usuario. Para ms detalles sobre las actividades, vase el prximo prrafo! Modelo de flujo del proceso Un flujo del proceso (flujo de trabajo) es representado como un diagrama de actividades, describiendo el comportamiento de una clase de proceso, por ejemplo que sucede en detalle, cuando el usuario navega a una clase de proceso (por ejemplo ContactCreation en nuestro ejemplo). nombres de estereotipos y sus iconos accin de usuario accin de sistema Podemos seleccionar nuestro diagrama de navegacin y ejecutar la transformacin de navegacin a flujo del proceso (Navigation to Process Flows Transformation). Se han generado tres diagramas de actividades vacios: ContactCreation ContactDeletion ContactUpdate El estereotipo user Action es usado para indicar interaciones de usuario con la pgina webiniciando un proceso o respondiendo a un requerimiento explcito de informacin. Por el contrario, system Action describe acciones, que son ejecutadas por el sistema. Ambos tipos de acciones pueden ser agregadas usando la barra de herramientas (toolbar). Felicitaciones! :-) Este es el fin del tutorial, porque solamente se necesita UML standard para expresar lo to express loque ocurre en estos tres procesos del diagrama de flujo del proceso.
Vase tamben los modelos de la seccin de ejemplos (example section).
Examples - Simple (static) Website The purpose of this system is to express the requirements for Web applications that allow navigation between static hypertext pages. This is a simple example that shows how to express the modularization of the hypertext into pages and the elementary navigation step. Design considerations and requirements The system will offer an initial (home) page with an introductory text, a index to a set of pages, and a link to an "Acknowledgement" page. The index will consist of a set of entries, each one composed of a name and a brief description. The Acknowledgement section will contain just text. Each of the Web pages that can be accessed from the home page will consist of an introductory text, an index to its sections, and a fixed set of sections ("design considerations and requirements", "Solutions", "Discussion and comparison", "Contributors" and "Bibliography and references"). Each of these sections will contain text, and possibly references to external pages. It will be possible to navigate from the home page to the rest of the pages, and from them back to the home page (inter-page navigation). Within a Web page, it will be possible to navigate from the index of its sections to each one of the these sections, and from them back to the top of the page (intra-page navigation). No passage of information from the source to the destination page occurs. UWE models This example was modelled with UWE Profile - v1.9 defined in the Magic Draw 16.8 CASE tool and is available as mdzip and emf. UWE specifies Web applications following the separation of concerns, i.e. modelling content, navigation structure and presentation separately. Content elements are specified using a plain UML class diagram, which contains classes, attributes, associations, inheritance relationships, association classes, and further UML model elements. Figure 1 shows the content model of the running example, with the classes defined for Project, Article, Section and Acknowledgement.
Figure 1. The content model of the running example The hypertext structure is described using a navigation diagram, which consists of a set of nodes and links. UWE distinguishes among different types of nodes, such as navigation class, menu, index and query. Figure 2 shows the navigation model of the running example. It includes several navigation classes as Project, Article, sections such as SectionRequirements, one index (ArticleIndex), one menu (SectionMenu), Navigation class Project is identified as entry point of the Web application with the tagged value {isHome}.
Figure 2. The navigation structure of the Simple Web Site Figure 3 shows the presentation model of the running example. UWE uses a class diagram for the representation of presentation models. The container form is selected in order to provide a more intuitive representation of pages.
Figure 3. The presentation model of the Simple Web Site
Examples - Simple Address Book The purpose of this system is to express the extraction of object content from the domain objects and the selection of the attributes to be published. The user shall access one page, which publishes a list of objects. For each object a set of attributes values are displayed. In this case the example is an address book of contacts. Each contact will contain a name, twophone numbers (main and alternative), two postal addresses (main and alternative), and one e-mail address. Design considerations and requirements The system will offer a page with an introductory text, and the list of contacts in the agenda, which is stored in a database. For each object the set of its non-empty attributes values will be displayed. UWE models This example was modelled with UWE Profile - v1.9 defined in the Magic Draw 16.8 CASE tool and is available as mdzip and emf. UWE specifies Web applications following the separation of concerns, i.e. modelling content, navigation structure and presentation separately. Figure 1 shows the content model of the simple address book example, with the classes defined for AddressBook, Contact, Address and Phone. The content model is represented as a plain UML class diagram.
Figure 1. UWE content model of the running example The hypertext structure is described using a navigation diagram, which consists of a set of nodes and links. UWE distinguishes among different types of nodes, such as navigation class, menu, index and query. Figure 2 shows the navigation model of the running example. It includes two navigation classes AddressBook and Contact. Address and Phone are not included as they are not relevant for the navigation. Address and phone information is included in the Contact list. Navigation class AddressBook is identified as entry point of the Web application with the tagged value {isHome}.
Figure 2. UWE navigation structure of a simple Address Book Figure 3 shows the presentation model of the running example. UWE uses a class diagram for the representation of presentation models. The container form is selected in order to provide a more intuitive representation of pages. The address book page contains an Introduction and a list of Contacts. For each contact the corresponding email, phones and addresses fields are displayed.
Figure 3. UWE presentation model of a simple Address Book
Examples - Secure Address Book This page describes the identification of requirements, the UWE content model, the user and role model, the basic rights models and its alternative representation in SecureUML, the navigation model with state machines and the presentation model for the secure address book example. Design considerations and requirements The web application should allow registered users to create several address books and to add new contacts to one of them. Non-registered visitors can only read an introduction and the terms of service until they register or authenticate themselves, as depicted in Figure 1. Administrators cannot use the address book functionality, but they are allowed to search for users and to delete their accounts including all address books and contacts. For registered visitors the address books are shown in a column on the left of the page. On the right the contact details of the currently selected address book are displayed. Every address book can be deleted and besides it is possible to create additional ones. The contacts can be created/removed and the user may read or update the contact details, e.g. the name, picture, postal addresses, email address or phone numbers. The latter three elements are tagged, i.e. the user can specify an arbitrary named tag for each address to distinguish between them, for example between home address and business address. UWE models This example was modelled with UWE Profile - v2.1 defined in the Magic Draw 16.8 CASE tool and is available as mdzip and emf. UWE specifies Web applications following the separation of concerns, i.e. modelling the following views separately: Use Case Content Role Basic Rights SecureUML Navigation Presentation Use Case Model The use case diagram (Figure 1) depicts the use case diagram that corresponds to the design considerations above. Some UWE stereotypes are used: browsing ( ) and processing ( ). We suggest to use processing in case some direct input is given (like a search string) or in case of a significant database modification (like creating a new address book). Additionally, stereotypes can be omitted, if they are assigned to a parental package, which in this case is used for the UserManagement package. The stereotype webUseCase ( ) with the tagged value {transferType="cif"} is used to annotate that the data transfer of the whole system has to be secure; "cif" stands for confidentiality, integrity and freshness.
Figure 1 shows the use case diagram of the secure address book Content Model The content diagram in Figure 2 not only depicts that a user (from the UWE user model) is the owner of an unlimited number of address books, but also that each address book contains contacts with several contact details. The abstract class TaggedEntry makes sure that the classes Address, EMail and Phone provide a tagName label for every object which is created by a user.
Figure 2 shows the content model of the secure address book Rol e Model In contrast to our HospInfo case study, a User is associated with exactly one role. That Role is modelled as a class, as introduced in the previous section, and not as an enumeration. In this example we want to compare our UWE basic rights model with the SecureUML model. Therefore Figure 3 shows the underlying UWE role model in the upper and the SecureUML version in the lower half of the diagram. The two versions differ in the use of linked instances versus stereotyped classes with inheritance.
Figure 3 shows the role model of the secure address book Basic Rights Model The basic rights model (Figure 4) comprises access rules for contacts, users and address books. In this example we do not model the CRUD access, but instead the execution rights on methods. Some comments stereotyped by authorizationConstraint are added in order to specify that a registered visitor is just allowed to delete his own contacts and address books. Furthermore, an administrator has the permission to delete users, except other administrators. Other constraints, as for Contact.edit() or AddressBook.create() are easily conceivable, but for the sake of clarity they are left out in this example.
Figure 4 shows the basic rights model of the secure address book SecureUML Model Figure 5 shows the same facts and circumstances with a SecureUML diagram. It is noticeable that even this simple diagram looks overfilled, because of the association classes. SecureUML diagrams specify the permissions by repeating the (method) names of the classes in the Permission association classes, while the return type defines the allowed actions. The result is that - at the first glance - it is impossible to see which methods are constrained, whereas in the basic rights diagram dependencies directly point to the restricted methods in the majority of cases. If some methods of a class are executable and some not, all executable ones have to be listed separately in SecureUML. This is the reason for avoiding SecureUML diagrams in the HospInfo case study.
Figure 5 shows the alternative SecureUML representation of the secure address book Navigation States Model Figure 6 depicts the navigation menu diagram of our address book application. The menu items are modelled as methods within navigationMenu ( ) classes. As specified in the requirements, the terms of service and the introduction links in the menu can be accessed by everyone.
Figure 6 shows the navigation menus of the secure address book The session ( ) ExternalArea in the navigation states diagram (Figure 7) is denoted by the following tags: {isHome} indicates that this state is the starting point of our web application. {navigationMenu=ExternalMainMenu} connects the menu class ExternalMainMenu with this state, i.e. the external menus are available in this navigational node. {roles=visitors} defines that only user instances which are linked with the visitors instance in the role model are allowed to access this state. In this case every external visitor automatically takes on the visitor role. After the registration and login - that are both modelled with UWE patterns - two types of internal areas can be reached: One for the administrators and a separated one for the registered users that want to manage their contacts. Therefore guards on transitions targeting the internal areas check the access rights. Nevertheless, the internal sessions are also labeled with {roles} tags in order to prohibit unauthorized direct access via URL. In Figure 8 the internal area for registered visitors is depicted. The challenge is to model our two semi-independent navigation areas (address books and contacts) correctly. For that reason the orthogonal state InternalArea contains three regions: The first is the DependentArea with the navigation for the contact area. The second region comprises only one state for the independent presentation of the list of address books. It is stereotyped by collection ( ) with the tagged value {itemType=AddressBook} that points to the AddressBook class in our content model. The third region is required for the navigation to the CreateAddressBook navigational node, as the creation of address books is self-sufficient. The modal dialog for the TermsOfService is modelled equally (with navigationalNode ( ) {isModal}) as in the external area. Even though it has to be kept in mind that both dialogs are represented by two different states, even if they have the same name. InnerContactArea is a state that is nested in the DependentArea in order to separate the navigation for the presentation of search results and the navigation possibilities that are available after the user has selected an address book. The difference is that after a search was executed no contacts can be created and address books cannot be deleted, because the listed contacts could be located in different address books. Furthermore, the return from the DisplayContact submachine state is different, as in the outer state the search is executed again to update the resulting contact list. The search ( ) stereotype allows the modeller to replace ct:String with an underscore (_), but for the sake of clarity this abbreviation is not used in Figure 8.
Figure 7 shows the main navigation state diagram of the secure address book
Figure 8 shows the navigation state diagram for registered visitors of the secure address book Presentati on Model As described above, the address book homepage is divided into two parts after a registered visitor has logged in: The address books are shown on the left - AddressBooksArea, stereotyped by presentationGroup ( ) - and if an address book is selected, the contacts are presented on the right (ContactsArea), as depicted in Figure 9. Furthermore there is a menu on top of the page, which includes links to the introduction page, to the terms of service pop-up and to a logout functionality, denoted by the stereotype anchor ( ). The button DeleteBook is hidden if contacts from several address books are displayed after the user has executed the search. In order to keep the presentation simple, this is not modelled here, but the related navigation structure is depicted in Figure 8. On the right, a list of contact names (ContactListEntry [*]), or the contact details of exactly one selected contact are shown. This exclusiveness is specified by the stereotype presentationAlternatives ( ). To change between both views, the anchors ContactListEntry and Back are used. Contact details that can be tagged consist of a TagName and a TaggedEntry, in which the actual contact data is shown.
Figure 9 shows an example diagram of the presentation model of the secure address book More information is available in thesis, appendix A and further diagrams can be found in the project file.
Ejemplos - Libreta de direcciones de Secure Esta pgina describe la identificacin de las necesidades, la UWE contenido de modelo, el usuario y el modelo a seguir, los modelos de los derechos bsicos y su representacin alternativa en SecureUML, el modelo de navegacin con mquinas de estado y el modelo de presentacin de lalibreta de direcciones seguras ejemplo. Consideraciones y requisitos de diseo La aplicacin web debe permitir que los usuarios registrados puedan crear varias direcciones delibros y para agregar nuevos contactos a uno de ellos. Los visitantes no registrados slo pueden leer una introduccin y los trminos de servicio hasta que se registren o autenticarse, como se muestra en la Figura 1. Los administradores no pueden utilizar la funcionalidad de libreta de direcciones, pero se les permite buscar usuarios y eliminar sus cuentas incluyendo todos libretas de direcciones y contactos. Para los visitantes registrados las libretas de direcciones se muestran en una columna a la izquierda de la pgina. A la derecha se muestran los datos de contacto de la libreta de direcciones seleccionada. Cada libreta de direcciones puede ser borrado y adems es posible crear otros adicionales. Los contactos se pueden crear / eliminados y el usuario puede leer o actualizar los datos de contacto, como el nombre, la imagen, la direccin postal, direccin de correo electrnico o nmeros de telfono. Los tres ltimos elementos etiquetados, es decir, el usuario puede especificar una etiqueta de nombre arbitrario para cada direccin de distinguir entre ellos, por ejemplo, entre la casa y la direccin de la direccin comercial. Modelos UWE Este ejemplo fue modelado con UWE Perfil - v2.1 definido en el Magic Draw 16,8 CASOherramienta y est disponible como mdzip y fem . UWE especifica aplicaciones Web tras la separacin de intereses, es decir, el modelado de los siguientes puntos de vista por separado: Caso de uso Contenido Papel Derechos Bsicos SecureUML NavegacinPresentacin Use Case Modelo El diagrama de casos de uso (Figura 1) muestra el diagrama de casos de uso que corresponde a las consideraciones de diseo anteriores. Algunos estereotipos de UWE se utilizan: navegacin ( ) y el proceso ( ). Se aconseja la utilizacin de proceso en el caso de alguna entrada directa se da (como una cadena de bsqueda) o en caso de una modificacin importante base de datos (como la creacin de una nueva libreta de direcciones). Adems, los estereotipos pueden ser omitidos, si estn asignados a un paquete de los padres, que en este caso se utiliza para el paquete UserManagemeNT. El estereotipo webUseCase ( ) con el valor etiquetado {TransferType = "cif"} se utiliza para anotar que la transferencia de datos de todo el sistema tiene que estar seguro; "Cif" significa la confidencialidad, la integridad y la frescura.
La figura 1 muestra el diagrama de casos de uso de la libreta de direcciones seguras Modelo de contenido El diagrama contenido en la figura 2 no slo representa que un usuario (a partir del modelo de usuario UWE) es el dueo de un nmero ilimitado de libros de direcciones, sino tambin que cada libro de direcciones contiene los contactos con varios datos de contacto. El TaggedEntry clase abstracta se asegura de que la Direccin de clases, correo electrnico y telfono proporcionan una etiqueta tagName para cada objeto que es creado por un usuario.
La figura 2 muestra el modelo de contenido de la libreta de direcciones seguras Modelo de conducta En contraste con nuestro HospInfo estudio de caso, un usuario est asociado con exactamente unpapel . Ese papel se modela como una clase, como se introdujo en el apartado anterior, y no como una enumeracin. En este ejemplo queremos comparar nuestro modelo de derechos bsicos UWE con el modelo SecureUML. Por lo tanto, la figura 3 muestra el modelo a seguir UWE subyacente en la parte superior y la versin SecureUML en la mitad inferior del diagrama. Las dos versiones difieren en el uso de instancias vinculadas frente a clases estereotipadas con herencia.
La Figura 3 muestra el modelo de papel de la libreta de direcciones seguras Derechos Bsi cos Model o El derechos bsicos del modelo (Figura 4) comprende las reglas de acceso para los contactos, los usuarios y las libretas de direcciones. En este ejemplo no modelamos el acceso CRUD, pero en cambio los derechos de ejecucin sobre los mtodos. Algunos comentarios estereotipados por authorizationConstraint se aaden a fin de especificar que un visitante registrado apenas est permitido suprimir sus propios contactos y libretas de direcciones. Adems, un administrador tiene permiso para eliminar usuarios, excepto otros administradores. Entre otras limitaciones, como por Contact.edit () o AddressBook.create () son fcilmente imaginables, pero en aras de la claridad que se quedan fuera en este ejemplo.
La figura 4 muestra el modelo de los derechos bsicos de la libreta de direcciones seguras SecureUML Modelo La Figura 5 muestra los mismos hechos y circunstancias con un diagrama SecureUML. Llama la atencin que incluso este sencillo diagrama parece demasiado llena, debido a las clases de asociacin. Diagramas SecureUML especifican los permisos mediante la repeticin de los (mtodo) los nombres de las clases en las clases Permiso de la asociacin, mientras que el tipo de retorno define las acciones permitidas. El resultado es que - a primera vista - es imposible ver lo que estn limitados los mtodos, mientras que en el diagrama de dependencias de los derechos bsicos de apuntar directamente a los mtodos restringidas en la mayora de los casos. Si algunos de los mtodos de una clase son ejecutables y no algunos, todos los ejecutables deben ser listados por separado en SecureUML. Esta es la razn para evitar diagramas SecureUML en el HospInfo estudio de caso.
La figura 5 muestra la representacin SecureUML alternativa de la libreta de direcciones seguras Navegacin Unidos Modelo La figura 6 representa la navegacin diagrama del men de nuestra aplicacin de libreta de direcciones. Los elementos del men se modelan como mtodos dentro de navigationMenu ( clases). Como se especifica en los requisitos, las condiciones del servicio y los enlaces de introduccin en el men se puede acceder a todo el mundo.
La figura 6 muestra los mens de navegacin de la libreta de direcciones seguras La sesin ( ) ExternalArea en el diagrama de estados de navegacin (Figura 7) se denota por las siguientes etiquetas: {ISHOME} indica que este estado es el punto de partida de nuestra aplicacin web. {NavigationMenu = ExternalMainMenu} conecta la ExternalMainMenu clase men con este estado, es decir, los mens externos estn disponibles en este nodo de navegacin. {Papeles = visitantes} define que slo las instancias de usuario que estn vinculados con la instancia de visitantes en el modelo a seguir se les permite acceder a este estado. En este caso, cada visitante externo automticamente toma el papel de visitante. Despus del registro e inicio de sesin - que tanto se modela con patrones UWE - dos tipos de reas internas se puede llegar: Una para los administradores y una separada para los usuarios registrados que deseen administrar sus contactos. Por lo tanto los guardias en las transiciones dirigidas a las reas internas de verificacin de derechos de acceso. Sin embargo, las sesiones internas estn catalogadas por {} papeles etiquetas con el fin de prohibir no autorizada el acceso directo a travs de la URL. En la figura 8 se representa el rea interna a las personas registradas. El reto consiste en modelar nuestras dos reas de navegacin semi-independientes (libros de direcciones y contactos) correctamente. Por esa razn el InternalArea estado ortogonal contiene tres regiones: La primera es la DependentArea con la navegacin de la zona de contacto. La segunda regin comprende slo un estado independiente para la presentacin de la lista de libretas de direcciones. Se estereotipado por coleccin ( ) con el valor etiquetado {itemType = AddressBook} que apunta a la clase de la libreta de direcciones en nuestro modelo de contenido. La tercera regin es necesaria para la navegacin hasta el nodo de navegacin CreateAddressBook, como la creacin de las libretas de direcciones es autosuficiente. El cuadro de dilogo modal para el termsofservice se modela por igual (con navigationalNode ( ) {} IsModal) como en el mbito externo. A pesar de que tiene que tener en cuenta que tanto los dilogos estn representados por dos estados diferentes, incluso si tienen el mismo nombre. InnerContactArea es un estado que est anidado en el DependentArea con el fin de separar la navegacin para la presentacin de los resultados de bsqueda y las posibilidades de navegacin que estn disponibles despus de que el usuario ha seleccionado una libreta de direcciones. La diferencia es que despus de que se ejecuta una bsqueda de contactos no se pueden crear y libretas de direcciones no se pueden eliminar, ya que los contactos de la lista podran estar ubicados en diferentes libretas de direcciones. Adems, el retorno del estado ametrallador DisplayContact es diferente, como en el estado exterior se vuelve a ejecutar la bsqueda para actualizar la lista de contactos resultante. La bsqueda ( ) estereotipo permite al modelador para reemplazar ct: String con un guin bajo (_), pero en aras de la claridad, esta abreviatura no se utiliza en la Figura 8.
La figura 7 muestra el diagrama de estado de navegacin principal de la libreta de direcciones seguro
La figura 8 muestra el diagrama de estado de navegacin para los visitantes registrados de la libreta de direcciones seguras Presentaci n Modelo Como se describi anteriormente, la pgina libreta de direcciones se divide en dos partes despus de que un visitante registrado ha iniciado sesin: Las libretas de direcciones se muestran a la izquierda - AddressBooksArea, estereotipado por presentationGroup ( ) - y si se ha seleccionado una libreta de direcciones, los contactos se presentan a la derecha (ContactsArea), como se muestra en la Figura 9. Adems, hay un men en la parte superior de la pgina, que incluye enlaces a la pgina de introduccin, de los trminos de servicio de pop-up y a una funcionalidad de cierre de sesin, denotados por el estereotipo ancla ( ). El DeleteBook botn se oculta, si se muestran los contactos de varias libretas de direcciones despus de que el usuario ha ejecutado la bsqueda. A fin de mantener la presentacin simple, esto no es el modelo aqu, pero la estructura de navegacin relacionado se muestra en la Figura 8. A la derecha, una lista de nombres de contacto (ContactListEntry [*]), o los datos de contacto de exactamente un contacto seleccionado se muestran. Esta exclusividad se especifica por el estereotipo presentationAlternatives ( ). Para cambiar entre ambas vistas, se utilizan los anclajes ContactListEntry y Atrs. Los datos de contacto que pueden ser etiquetados consisten en una TagName y una TaggedEntry, en el que se muestran los datos de contacto real.
La Figura 9 muestra un diagrama de ejemplo del modelo de presentacin de la libreta de direcciones seguras Ms informacin est disponible en la tesis , el apndice A y otros esquemas se pueden encontrar en el archivo de proyecto.