UML: Which Diagrams to Use?

In the middle of requirements definition for a large web application. Will also design and develop the same. The following are key information:-
1. Constraint: Must use UML
2. Constraint: Must use Java, Oracle and Linux at the back end. Shall be  3-tier.
3. More information: Will entail integration with external business partners - exchange of xml-based data most likely via web services. There will be different documents exchanges, some real-time, others at agreed frequencies.
4. Additional Information: Once documents are received from external party, they shall go through a number of internal processes like reconciliation with and validation against other documents, amendments etc.
5. Additional Information: There shall be many internal (in the organization) and external users (outside the organization)

There are numerous diagrams in UML. Clearly, it is not feasible to use all of then. I want to use the best selection given the nature of my application (web-based java application, exchanging time-relevant xml documents with external systems).

Kindly advice what to use for the following (include rational)
a) Requirements gathering
b) Analysis
c) Design
d) Any Other
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

It's impossible to be prescriptive for this, as b and c depend on a. You won't be using *any* UML in a, and probably none in d. The kind of diagrams you use will depend on a
UML stands for Unified Modeling Language. This object-oriented system of notation has evolved from the work of Grady Booch, James Rumbaugh, Ivar Jacobson, and the Rational Software Corporation. These renowned computer scientists fused their respective technologies into a single, standardized model. Today, UML is accepted by the Object Management Group (OMG) as the standard for modeling object oriented programs.

Types of UML Diagrams
UML defines nine types of diagrams: class (package), object, use case, sequence, collaboration, state chart, activity, component, and deployment.

The diagram which you choose is mainly depends on the type of the project and the work what you do.
Package diagrams organize the elements of a system into related groups to minimize dependencies among them. So, may be for your project this would be enough.
sgithehuAuthor Commented:

So are you saying there are no certain types of diagrams most suitable for web applications; that i can use any?
Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

Basically we don't use any UML diagram during requirement phase. We can have the Use case diagrams during the analysis phase to get the over view of which components we are going to update. In design phase we can use the class diagrams, sequence diagrams to explain the flow of the application.
Yes, There are many systematic UML diagrams for the web applications.
But, that again its depends on what type of the project you have.
Either it is simple plain HTTP site say Administartor-web server, Static web page.
web application is a web site where user input (navigation through the site and data entry) effects the state of the business. In essence a web application uses a web site as the front end to a more typical application.

The architecture for a web site is rather straight forward. It contains three principal components; a web server, a network connection and one or more client browsers.

Now, What I am saying is :
Web applications can get complex rather quickly. A given system can be represented by many different, yet consistent models. Each model has a specific purpose and audience. This paper focuses on design models for web applications, and the audience is primarily the web architect and designer. It is important when modeling to capture the appropriate level of abstraction and to model the artifacts.

Page Stereotypes

A better way to model a page is with two separately stereotyped classes; server page and client page. Any given web page in a web application that has functionality on the server as well as client can be represented in the model as two separate classes, even though their implementation is in the same file (or component). In this situation a web page’s server methods and page scoped variables are all contained in a class in the model stereotyped «server page». This class’s methods represent the page’s server side script’s; sub routines and functions. Variables declared in the scripts that have page scope represents the class’s attributes. Client side scripts or user interface formatting are not part of a server page’s scope. A server page can have relationship’s to components that exist on the server. These might include the business objects in three tiered system’s or data access components. Components relative to the application’s design and operation on the server are represented side by side with the server page’s that use them.

Client pages are similarly represented on the diagram with classes stereotyped: «client page». Client page’s attributes are page scoped variables and functions that execute in the client browser. Client pages are associated with components that execute on the client, including Java Applets, ActiveX controls, and elements of the Document Object Model itself.

There is a fundamental relationship between the server and client stereotypes of a web page. A server page ultimately builds the resulting client page. This is a unidirectional relationship, since a completed HTML page has little access to the object interface of the building server page. The stereotype «builds» is applied to associations and is always drawn in the model as a unidirectional association from a server page to a client page.

You can define as follows:
Client Page (Either Static/dynamic)
Server Page

By using the above components you can draw a Class Stereotype diagram and it would suits your web application.

Bengaluru, India.
David L. HansenProgrammer AnalystCommented:
Figure out the business objects first.  Understanding the data is critical at the beginning of any project.  Once you have figured that out (ie. for Ford Motor Company you'd have business objects of Vehicle, Car, Truck, Employees, and many many more).  Once those objects are established (use-case and class diagrams are useful at this time) then you can think about HOW you are going to present the objects' data to the users (ie. Web pages, Windows forms, etc.).

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
this is the approach i've used many times successfully:

(1) Requirements - write use cases (, organizing them by actor (person, system, time event, ....)

(2) Analysis - create UML diagrams.  The key ones are class diagrams (for static relationships), sequence diagrams (for dynamic messaging), and state diagrams (used occasionally for classes with complex state transitions).
      Free UML tool:  ArgoUML (
      Commercial UML tool: EA (

When changes come in, the UCs will help you manage effects of the updates - each one is quite small (1-3 pages) and localize a "topic" (use of the system).
sgithehuAuthor Commented:

Thanks for your insight. This is pointing me to the right direction. What do you use for Design? And are the package diagrams in any way related to the packages in languages such as java?
Yes the package diagrams correspond to Java packages or whatever organization your language of choice uses.

I kind of lumped analysis and design together - in my experience, the initial diagrams have less details (analysis) and later they have more as needed (design).

I wouldn't get too hung up on what "phase" you are in - some people believe in a logical model (analysis) and a physical model (design), but I don't find that terribly useful myself.

I'd recommend that you move flexibly, dare i say agilely, through the efforts. I often quickly start capturing a static model as I am in use case writing e.g.
David L. HansenProgrammer AnalystCommented:
If you are not familiar with making UML diagrams I'd suggest starting out with paper and pencil first.  You want to just get a good feel for the diagrams and their purposes without getting distracted by learning new that till later.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Modeling Languages

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.