Building Web Applications with UML is a guide to building robust, scalable, and feature-rich web applications using proven object-oriented techniques. Written for the project manager, architect, analyst, designer, and programmer of web applications, this book examines the unique aspects of modeling web applications with the Web Application Extension (WAE) for the Unified Modeling Language (UML). The UML has been widely accepted as the standard modeling language for software systems, and as a result is often the best option for modeling web application designs.
The WAE extends the UML notation with semantics and constraints enabling developers to model web-specific architectural elements using the Rational Unified Process or an alternative methodology. Using UML allows developers to model their web applications as a part of the complete system and the business logic that must be reflected in the application. Readers will gain not only an understanding of the modeling process, but also the ability to map models directly into code.
Key topics include:
Creating code from UML models using ASP and VBScript
Gathering requirements and defining the system's use cases
A basic introduction to web servers, browsers, HTTP, and HTML
Using client/server protocols including DCOM, CORBA/IIOP, and Java's RMI
Securing a web application with SET, SSL, PGP, Certificates, and Certificate Authorities
Client-side scripting using DHTML, Java Script, VBScript, Applets, ActiveX controls, and DOM
Defining the architecture of a web application with an examination of three architectural patterns describing architectures for thin web client, thick web client, and web delivery designs
Modeling, at the appropriate level of abstraction and detail, the appropriate artifacts, including web application pages, page relationships, navigate routes, client-side scripts, and server-side generation
Transforming requirements into a model and then a design that maps directly into components of the system
Review By: Daniel Campanelli 06/23/2003
This book focuses on modeling, processes, and web architecture. In terms of modeling, it discusses the importance of modeling web-centric applications with the Web Application Extension (WAE) of the Unified Modeling Language (UML). The WAE is a special set of stereotypes, tagged values, and constraints that extend the UML for the sole purpose of modeling web applications.
In terms of architecture, chapters 1–5 present an excellent overview of how web applications have evolved from purely document retrieval systems to the sophisticated applications of today that contain complex business logic. The common theme of these chapters is that as web applications have evolved in complexity, so has the need to model them. In chapters 6 through 13, the various aspects of application development are discussed along with the UML models that are applicable at each stage. Most important, the viewpoints and roles of the various development groups are discussed.
The book is written from a development point of view and is aimed at system architects, designers, and project managers. The essence of the book is that it presents the modeling of web applications from the different viewpoints of the various teams involved in web application development (which is the main strength of the UML). These viewpoints include the Requirements Viewpoint, the Design Viewpoint, the Realization Viewpoint, and the Test Viewpoint.
In my opinion, this book is very worthwhile reading for anyone involved in a web application development project. In terms of substance, the book contains an abundance of information about web applications and how they are modeled. The author is an expert in this field. He is also the author of the Web Architecture Extension of the UML and is currently employed as a full-time Systems Engineer at Rational Corporation (the birthplace of the Unified Modeling Language). Prior to that, he was a freelance web application developer in the retail and healthcare industries.
The book is very well organized, however it is not written for the novice. As noted in the preface, "The book is meant to introduce architects and designers of client/server systems to the issues and techniques of developing for the web. It is expected the reader has some familiarity with the UML and at least one web application environment." As such, I found the technical terminology to be a little heavy at times. However, the author uses an abundance of easy-to-understand diagrams and personal anecdotes to illuminate the more difficult concepts.
I therefore recommend this book as a “must read” for any QC professional involved in a web development project. By understanding the concepts presented in this book, they will be in an optimal position for understanding the risks and tradeoffs involved in the design of the application.
I am looking forward to the author’s next version of the book (which will probably be published after the release of UML 2.0 tentatively scheduled for release later in 2003).