Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Mastering UML with Rational Rose 2002.pdf
Скачиваний:
137
Добавлен:
02.05.2014
Размер:
9.68 Mб
Скачать

Chapter 19: Web Modeling

A build relationship is used to show that a server page builds a client page. Like a link relationship, a build relationship is modeled as a stereotyped association.

When you create a server page, Rose will automatically create a client page for you and link the client page to the server page with a build relationship, and the client page will be modeled as a nested page within the server page. Each client page can be built by only one server page. However, a single server page may build several client pages. To create additional client pages for a server page, right−click the server page and select New → Nested Class. Give the new client page a name, and assign it a stereotype of "Client Class." Finally, create a build relationship between the server page and the new client page.

A redirect or forward relationship is used when control is passed from one server page to another. A redirect relationship is used in an ASP application, and a forward relationship is used in a JSP application. In this example, ServerPage1 is redirecting control to ServerPage2.

Once you have generated code, a line similar to the following will be inserted. The following line appears in ServerPage1.asp:

<% Response.Redirect("ServerPage2.asp") %>

A redirect or forward relationship has three attributes in its specification window. The Page attribute is used to set the destination page name. The RTE Synchronization property is used to control whether or not the relationship will be generated. Finally, the Resolve Relative Paths attribute controls whether paths will be automatically resolved.

A submit relationship is used when a form submits information to a server page. At that point, the user has finished entering information onto the form, and the information is ready for processing. The web server can then begin to process the information. A submit relationship is also shown as a stereotyped association:

Reverse Engineering a Web Application

In many situations, your team will be undertaking an effort to modify an existing application. In these cases, the best place to start is reverse engineering the existing application. Once that has been done, the team can

668

Chapter 19: Web Modeling

examine the current system architecture, make any needed additions or modifications to the design, and generate the code.

Rose supports the reverse engineering of ASP, JSP, and HTML pages. It assigns the appropriate stereotypes to the classes and creates relationships between them.

Begin the reverse−engineering process by selecting Tools → Web Modeler → Reverse Engineer a New Web Application. After the welcome screen, you will be prompted for the location of your application.

First, select the platform—either ASP or JSP—that is used by your application. In the URL Name field, enter the URL of the application. In the Virtual Directory Name field, enter the name of a package to create in Rose. During the reverse−engineering process, Rose will create a package in the Logical view with this name. All reverse−engineered classes and relationships will be placed inside this package. Finally, in the Physical Location field, enter the path to the application files.

Next, you will see a treeview with all available ASP, JSP, and HTML pages to reverse engineer. By default, all pages will be selected. Select the page(s) you wish to reverse engineer and press Next.

Rose will examine each of the files and reverse engineer them into the model. If any errors occur, Rose will enter them into the log.

An ASP page is reverse engineered as a class with the stereotype <<Server Page>> and an associated class with the stereotype <<Client Page>>. The server page and the client page are linked with a build relationship. The VBScript or Java on the ASP or JSP server page is modeled as an operation on that page.

669

Chapter 19: Web Modeling

The form(s) on the client page are modeled as separate classes in Rose, with a stereotype of <<Form>>. Any controls on the form are reverse engineered as attributes of the form.

Generating Code for a Web Application

After you have reverse engineered and modified a web application or modeled a web application from scratch, Rose will generate code for you. Rose will create the HTML, ASP, and JSP files from the model.

Rose will generate code for the following:

Server pages

Client pages

Forms

Form input fields

Form select fields

Form text area fields

Redirect or forward relationships

Link relationships

When you generate code, Rose will first look for an existing file with the same name as the class you are generating. If a file is found, Rose will update it. Otherwise, a new file is created. The stereotype of the class, coupled with the platform of the virtual directory, controls what type of file will be created. The files created for server pages will be either ASP or JSP files. A client page with no relationship to a server page will generate an HTML file.

To generate code from your model:

1.

670

Chapter 19: Web Modeling

Right−click the virtual directory.

2.

Select Web Modeler → Generate Code.

3.

Rose will generate code, and then log any errors to the log window.

Summary

In this chapter, we examined the modeling of web applications with UML and Rose. To a certain extent, modeling web applications is similar to modeling other applications. We still create use cases and the flow of events. We still create Sequence and Collaboration diagrams that show how the objects interact with each other. And we still create Class diagrams to show what classes are needed and how they relate.

A chief difference is in the kinds of classes and relationships that are used in web modeling. By stereotyping our classes as client pages, server pages, or forms, we can be sure that Rose will generate the appropriate source code. Where client/server applications have standard association relationships, web applications have a few types of associations: build relationships, link relationships, submit relationships, and redirect relationships.

Once you have modeled your web application, Rose can generate code for you. You can use the round−trip engineering capabilities of Rose to update your code, update the model, and keep the model and code consistent.

Like the rest of UML, the web notation will continue to evolve as new web languages and technologies are introduced. Rose will evolve along with the notation, providing support for these new concepts and helping organizations design both client/server and web applications more effectively.

671