Sei sulla pagina 1di 136

www.jntuworld.

com

Introducing the UML (Unified Modeling Language)


As the world becomes more complex, the computer-based systems that inhabit the world also must increase in complexity. They often involve multiple pieces of hardware and software, networked across great distances, linked to databases that contain mountains of information. If you want to make systems that deal with this, how do you get your hands around the complexity? The key is to organize the design process in a way that clients, analysts, programmers and other involved in system development can understand and agree on. The UML provides the organization. Consider this: Would you tell a building contractor that you want a 4 bedroom, 3 bath home, about 2000 square feet - Start building it! We'll hammer out the details as we go along? We all know this is ludicrous. But sadly, this method of development is all too common in the software industry. Just as you would work with an architect to design a blueprint that would diagram exactly how the house is to be built, you will work with us on an UML diagram that will document exactly how your custom software system will be built.

What is UML?
The Unified Modeling Language (UML) is a standard language for specifying, visualizing, constructing, and documenting the artifacts of software systems, as well as for business modeling and other non-software systems. The UML represents a collection of best engineering practices that have proven successful in the modeling of large and complex systems. The UML is a very important part of developing object oriented software and the software development process. The UML uses mostly graphical notations to express the design of software projects. Using the UML helps project teams communicate, explore potential designs, and validate the architectural design of the software.

The UML was released in 1997 as a method to diagram software design. It was designed by a consortium of the best minds in object oriented analysis and design. It is by far the most exciting thing to happen to the software industry in recent years. Every other engineering discipline has a standard method of documentation. Electronic engineers have schematic

diagrams, architects and mechanical engineers have blueprints and mechanical diagrams. The software industry now has UML.

Goals of UML
The primary goals in the design of the UML were: 1. Provide users with a ready-to-use, expressive visual modeling language so they can develop and exchange meaningful models. 2. Provide extensibility and specialization mechanisms to extend the core concepts. 3. Be independent of particular programming languages and development processes.
CSE Department, VNRVJIET

1 www.jntuworld.com

www.jntuworld.com
4. Provide a formal basis for understanding the modeling language. 5. Encourage the growth of the OO tools market. 6. Support higher-level development concepts such as collaborations, frameworks, patterns and components. 7. Integrate best practices. Before we move on next lesson consider some of the benefits of UML: 1 Your software system is professionally designed and documented before it is coded. You will know exactly what you are getting, in advance. 2 Since system design comes first, reusable code is easily spotted and coded with the highest efficiency. You will have lower development costs. 3 Logic 'holes' can be spotted in the design drawings. Your software will behave as you expect it to. There are fewer surprises. 4 The overall system design will dictate the way the software is developed. The right decisions are made before you are married to poorly written code. Again, your overall costs will be less. 5 UML lets us see the big picture. We can develop more memory and processor efficient systems. 6 When we come back to make modifications to your system, it is much easier to work on a system that has UML documentation. Much less 'relearning' takes place. Your system maintenance costs will be lower. 7 If you should find the need to work with another developer, the UML diagrams will allow them to get up to speed quickly in your custom system. Think of it as a schematic to a radio. How could a tech fix it without it? 8 If we need to communicate with outside contractors or even your own programmers, it is much more efficient. Using the Unified Modeling Language will result in lower overall costs, more reliable and efficient software, and a better relationship with all parties involved. Software documented with UML can be efficiently. Your software will have a future. modified much more

Modeling of systems, old way vs. new way


During this course we will deal with systems, or parts of some larger systems. System is a combination of software and hardware that provides a solution for a business problem. Process of developing that system involves a lot of people. First of all is the client, the person who has the problem to be solved. An analyst documents the client's problem and relays it to developers,
CSE Department, VNRVJIET

2 www.jntuworld.com

www.jntuworld.com
programmers who build the software that solves the problem, test it and deploy it on computer hardware. This is necessary because systems today are so complex, knowledge has become so specialized that one person can't know all the facets of a business, understand the problem, design a solution, translate it into a program, deploy the program onto hardware, and make sure the hardware components all work together correctly.

The waterfall method for modeling of systems

The old way of system modeling, known as the waterfall method, specifies that analysis, design, coding and deployment follow one another. Only when one is complete can the next one begin. If an analyst hands off analysis to a designer, who hands off a design to a developer, chances are that the three team members will rarely work together and share important insights. Usually the adherents of the waterfall method give coding a big amount of project time; it takes a valuable time away from analysis and design. In the new way, contemporary software engineering stress continuing interplay among the stages of development. Analysts and designers, for example, go back and forth to evolve a solid foundation for the programmers. Programmers, in turn, interact with analysts and designers to share their insights, modify designs, and strengthen their code. The advantage is that as understanding grows, the team incorporates new ideas and builds a stronger system.

CSE Department, VNRVJIET

3 www.jntuworld.com

www.jntuworld.com

UML Diagram Set of Symbols


This is the complete set of symbols that UML introduces in its diagrams. Structural Elements

Class:
Classes are composed of three things: a name, attributes, and operations. Below is an example of a class.

Interface:
The symbol of interface is

Use case:
A use case is a set of scenarios that describing an interaction between a user and a system. The following is the symbol for use case.

Node:
The symbol for the node is as shown below.

Component:
The symbol for the component is as shown below.

CSE Department, VNRVJIET

4 www.jntuworld.com

www.jntuworld.com
Behavioral Elements

State:
The basic elements are rounded boxes representing the state of the object and arrows indicting the transition to the next state. The activity section of the state symbol depicts what activities the object will be doing while it is in that state.

Sequence:
The following diagram is a sequence.

Collaboration:
The following notation is collaboration.

Activity:
The following notation is an activity.

CSE Department, VNRVJIET

5 www.jntuworld.com

www.jntuworld.com

Relationships

Grouping

Extension

Annotation & Actors

The graphical elements combined into diagrams, because the UML is a language, which has rules for combining these elements. The purpose of the diagrams is to present multiple views of a system, and this set of multiple views is called a model.

UML model describes what a system is supposed to do. It doesn't tell how to implement the system.

Types of UML Diagrams


Each UML diagram is designed to let developers and customers view a software system from a different perspective and in varying degrees of abstraction. UML diagrams commonly created in visual modeling tools include:

Use Case Diagram:


This displays the relationship among actors and use cases. A use case is a description of a system's behavior from a user's standpoint. For system developers, this is a valuable tool: it's a tried-and-true technique for gathering system requirements from a user's point of view. That's important if the goal is to build a system that real people can use. In graphical representations of use cases a symbol for the actor is used. Use cases are a relatively easy UML diagram to draw, but this is a very simplified example. This example is only meant as an introduction to the UML and use cases.

CSE Department, VNRVJIET

6 www.jntuworld.com

www.jntuworld.com
Start by listing a sequence of steps a user might take in order to complete an action. For example a user placing an order with a sales company might follow these steps. 1. Browse catalog and select items. 2. Call sales representative. 3. Supply shipping information. 4. Supply payment information. 5. Receive conformation number from salesperson.

These steps would generate this simple use case diagram:

This example shows the customer as an actor because the customer is using the ordering system. The diagram takes the simple steps listed above and shows them as actions the customer might perform. The salesperson could also be included in this use case diagram because the salesperson is also interacting with the ordering system. From this simple diagram the requirements of the ordering system can easily be derived. The system will need to be able to perform actions for all of the use cases listed. As the project progresses other use cases might appear. The customer might have a need to add an item to an order that has already been placed. This diagram can easily be expanded until a complete description of the ordering system is derived capturing all of the requirements that the system will need to perform.

The actor is the entity that initiates the use case. It can be a person or another system.

CSE Department, VNRVJIET

7 www.jntuworld.com

www.jntuworld.com
Class Diagram :
Models class structure and contents using design elements such as classes, packages and objects. It also displays relationships such as containment, inheritance, associations and others. Things naturally fall into categories (computers, automobiles, trees...). We refer to these categories as classes.

A class is a category or group of things that have similar attributes and common behaviors.
Class diagrams are widely used to describe the types of objects in a system and their relationships. Class diagrams model class structure and contents using design elements such as classes, packages and objects. Class diagrams describe three different perspectives when designing a system, conceptual, specification, and implementation. These perspectives become evident as the diagram is created and help solidify the design. This example is only meant as an introduction to the UML and class diagrams. Classes are composed of three things: a name, attributes, and operations. Below is an example of a class.

Class diagrams also display relationships such as containment, inheritance, associations and others. Below is an example of an associative relationship:

The association relationship is the most common relationship in a class diagram. The association shows the relationship between instances of classes. For example, the class Order is associated with the class Customer. The multiplicity of the association denotes the number of objects that can participate in then relationship. For example, an Order object can be associated to only one customer, but a customer can be associated to many orders. Another common relationship in class diagrams is a generalization. A generalization is used when two classes are similar, but have some differences. Look at the generalization below:

CSE Department, VNRVJIET

8 www.jntuworld.com

www.jntuworld.com

In this example the classes Corporate Customer and Personal Customer have some similarities such as name and address, but each class has some of its own attributes and operations. The class Customer is a general form of both the Corporate Customer and Personal Customer classes. This allows the designers to just use the Customer class for modules and do not require in-depth representation of each type of customer.

Object Diagram:

An object is an instance of a class - a specific thing that has specific values of the attributes and behavior.

Interaction Diagrams:
Sequence Diagram displays the time sequence of the objects participating in the interaction. This consists of the vertical dimension (time) and horizontal dimension (different objects). Class diagrams and object diagrams represent static information. In a functioning system, however, objects interact with one another, and these interactions occur over time. The UML sequence diagram shows the timebased dynamics of the interaction. Sequence diagrams demonstrate the behavior of objects in a use case by describing the objects and the messages they pass. the diagrams are read left to right and descending. The example below shows an object of class 1 start the behavior by sending a message to an object of class 2. Messages pass between the different objects until the object of class 1 receives the final message.

CSE Department, VNRVJIET

9 www.jntuworld.com

www.jntuworld.com

Below is a slightly more complex example. The light blue vertical rectangles the objects activation while the green vertical dashed lines represent the life of the object. The green vertical rectangles represent when a particular object has control. The represents when the object is destroyed. This diagram also shows conditions for messages to be sent to other object. The condition is listed between brackets next to the message. For example, a [condition] has to be met before the object of class 2 can send a message() to the object of class 3.

The next diagram shows the beginning of a sequence diagram for placing an order. The object an Order Entry Window is created and sends a message to an Order object to prepare the order. Notice the names of the objects are followed by a colon. The names of the classes the objects belong to do not have to be listed. However the colon is required to denote that it is the name of an object following the objectName:className naming system. Next the Order object checks to see if the item is in stock and if the [InStock] condition is met it sends a message to create an new Delivery Item object.

CSE Department, VNRVJIET

10 www.jntuworld.com

www.jntuworld.com

The next diagrams add another conditional message to the Order object. If the item is [OutOfStock] it sends a message back to the Order Entry Window object stating that the object is out of stack.

This simple diagram shows the sequence that messages are passed between objects to complete a use case for ordering an item. Collaboration Diagram displays an interaction organized around the objects and their links to one another. Numbers are used to show the sequence of messages. The elements of a system work together to accomplish the system's objectives, and a modeling language must have a way of representing this. The UML collaboration diagram is designed for this purpose. Collaboration diagrams: Collaboration diagrams are also relatively easy to draw. They show the relationship between objects and the order of messages passed between them. The objects are listed as icons and arrows indicate the messages being passed between them. The numbers next to the messages are called sequence numbers. As the name suggests, they show the sequence of the messages as they are passed between the objects. There are many acceptable sequence numbering schemes in UML. A simple 1, 2, 3... format can be used, as the example below shows, or for more detailed and complex diagrams a 1, 1.1 ,1.2, 1.2.1... scheme can be used.

CSE Department, VNRVJIET

11 www.jntuworld.com

www.jntuworld.com

The example below shows a simple collaboration diagram for the placing an order use case. This time the names of the objects appear after the colon, such as :Order Entry Window following the objectName:className naming convention. This time the class name is shown to demonstrate that all of objects of that class will behave the same way.

State Diagram:
This displays the sequences of states that an object of an interaction goes through during its life in response to received stimuli, together with its responses and actions. At any given time, an object is in particular state. State diagrams represent these states and their changes during time. Every state diagram starts with symbol that represents start state, and ends with symbol for the end state. For example every person can be a newborn, infant, child, adolescent, teenager or adult. State diagrams are used to describe the behavior of a system. State diagrams describe all of the possible states of an object as events occur. Each diagram usually represents objects of a single class and track the different states of its objects through the system. When to Use: State Diagrams Use state diagrams to demonstrate the behavior of an object through many use cases of the system. Only use state diagrams for classes where it is necessary to understand the behavior of the object through the entire system. Not all classes will require a state diagram and state diagrams are not useful for describing the collaboration of all objects in a use case. State diagrams are other combined with other diagrams such as interaction diagrams and activity diagrams. How to Draw: State Diagrams State diagrams have very few elements. The basic elements are rounded boxes representing the state of the object and arrows indicting the transition to the next state. The activity section of the state symbol depicts what activities the object will be doing while it is in that state.

CSE Department, VNRVJIET

12 www.jntuworld.com

www.jntuworld.com

All state diagrams being with an initial state of the object. This is the state of the object when it is created. After the initial state the object begins changing states. Conditions based on the activities can determine what the next state the object transitions to.

Below is an example of a state diagram might look like for an Order object. When the object enters the Checking state it performs the activity "check items." After the activity is completed the object transitions to the next state based on the conditions [all items available] or [an item is not available]. If an item is not available the order is canceled. If all items are available then the order is dispatched. When the object transitions to the Dispatching state the activity "initiate delivery" is performed. After this activity is complete the object transitions again to the Delivered state.

CSE Department, VNRVJIET

13 www.jntuworld.com

www.jntuworld.com

State diagrams can also show a super-state for the object. A super-state is used when many transitions lead to the a certain state. Instead of showing all of the transitions from each state to the redundant state a super-state can be used to show that all of the states inside of the super-state can transition to the redundant state. This helps make the state diagram easier to read. The diagram below shows a super-state. Both the Checking and Dispatching states can transition into the Canceled state, so a transition is shown from a super-state named Active to the state Cancel. By contrast, the state Dispatching can only transition to the Delivered state, so we show an arrow only from the Dispatching state to the Delivered state.

CSE Department, VNRVJIET

14 www.jntuworld.com

www.jntuworld.com
Activity Diagram:
This displays a special state diagram where most of the states are action states and most of the transitions are triggered by completion of the actions in the source states. This diagram focuses on flows driven by internal processing. The activities that occur within a use case or within an object's behavior typically occur in a sequence. This sequence is represented with activity diagrams. State diagrams are used to describe the behavior of a system. State diagrams describe all of the possible states of an object as events occur. Each diagram usually represents objects of a single class and track the different states of its objects through the system.

Activity diagrams describe the workflow behavior of a system. Activity diagrams are similar to state diagrams because activities are the state of doing something. The diagrams describe the state of activities by showing the sequence of activities performed. Activity diagrams can show activities that are conditional or parallel. When to Use: Activity Diagrams Activity diagrams should be used in conjunction with other modeling techniques such as interaction diagrams and state diagrams. The main reason to use activity diagrams is to model the workflow behind the system being designed. Activity Diagrams are also useful for: analyzing a use case by describing what actions need to take place and when they should occur; describing a complicated sequential algorithm; and modeling applications with parallel processes. However, activity diagrams should not take the place of interaction diagrams and state diagrams. Activity diagrams do not give detail about how objects behave or how objects collaborate. How to Draw: Activity Diagrams Activity diagrams show the flow of activities through the system. Diagrams are read from top to bottom and have branches and forks to describe conditions and parallel activities. A fork is used when multiple activities are occurring at the same time. The diagram below shows a fork after activity1. This indicates that both activity2 and activity3 are occurring at the same time. After activity2 there is a branch. The branch describes what activities will take place based on a set of conditions. All branches at some point are followed by a merge to indicate the end of the conditional behavior started by that branch. After the merge all of the parallel activities must be combined by a join before transitioning into the final activity state.

CSE Department, VNRVJIET

15 www.jntuworld.com

www.jntuworld.com

Below is a possible activity diagram for processing an order. The diagram shows the flow of actions in the system's workflow. Once the order is received the activities split into two parallel sets of activities. One side fills and sends the order while the other handles the billing. On the Fill Order side, the method of delivery is decided conditionally. Depending on the condition either the Overnight Delivery activity or the Regular Delivery activity is performed. Finally the parallel activities combine to close the order.

CSE Department, VNRVJIET

16 www.jntuworld.com

www.jntuworld.com

Physical Diagrams:
There are two types of physical diagrams: deployment diagrams and component diagrams. Deployment diagrams show the physical relationship between hardware and software in a system. Component diagrams show the software components of a system and how they are related to each other. These relationships are called dependencies. When to Use: Physical Diagrams Physical diagrams are used when development of the system is complete. Physical diagrams are used to give descriptions of the physical information about a system. How to Draw: Physical Diagrams Many times the deployment and component diagrams are combined into one physical diagram. A combined deployment and component diagram combines the features of both diagrams into one diagram.

Deployment Diagram displays the configuration of run-time processing elements and the software components, processes, and objects that live on them. Software component instances represent run-time manifestations of code units. The UML deployment diagram shows the physical architecture of a computer-based system. It can depict the computers and devices, show their connections with one another, and show the software that sits on each machine.

CSE Department, VNRVJIET

17 www.jntuworld.com

www.jntuworld.com
The deployment diagram contains nodes and connections. A node usually represents a piece of hardware in the system. A connection depicts the communication path used by the hardware to communicate and usually indicates a method such as TCP/IP.

The component diagram contains components and dependencies. Components represent the physical packaging of a module of code. The dependencies between the components show how changes made to one component may affect the other components in the system. Dependencies in a component diagram are represented by a dashed line between two or more components. Component diagrams can also show the interfaces used by the components to communicate to each other. The combined deployment and component diagram below gives a high level physical description of the completed system. The diagram shows two nodes which represent two machines communicating through TCP/IP. Component2 is dependant on component1, so changes to component 2 could affect component1. The diagram also depicts component3 interfacing with component1. This diagram gives the reader a quick overall view of the entire system.

CSE Department, VNRVJIET

18 www.jntuworld.com

www.jntuworld.com

Component Diagram displays the high level packaged structure of the code itself. Dependencies among components are shown, including source code components, binary code components, and executable components. Some components exist at compile time, at link time, at run times well as at more than one time. Today in software engineering we have team-based development efforts, where everyone has to work on different component. That's important to have a component diagram in modeling process of the system.

System development is a human activity. Without an easy-to-understand notation system, the development process has great potential for error. Consisting of a set of diagrams, the UML provides a standard that enables the system analyst to build a multifaceted blueprint that's comprehensible to clients, programmers, and everyone involved in the development process. It's necessary to have all these diagrams because each one speaks to a different stakeholder in the system. The UML model tells what a system is supposed to do. It doesn't tell how.

Class Diagrams
During this several days you'll firm up your knowledge of object-orientation as you learn more about the UML. Next lessons will deal with class diagrams. How to extract classes, their attributes and methods from interviewing a client, and then bind the classes with relationships to form the class diagram. You'll learn more about: 1 Visualising a Class (attributes and operations) 2 Associations
CSE Department, VNRVJIET

19 www.jntuworld.com

www.jntuworld.com
3 Inheritance & Generalization 4 Agregations 5 Interfaces & Realizations 6 Visibility The last part of this group of lessons consits of an example, which give you all the necessary steps for building a class diagram.

Visualising a Class
We mentioned in earlier lessons that things fall into categories - classes. The UML class diagram consists of several classes conected with relationships. But how UML represents a class? The rectangle is the icon for the class. The name of the class is, by convention, a word with an initial uppercase letter. It appears near the top of the rectangle. If your class name has more than one word name, then join the words together and capitalize the first letter of the every word. Class name is written at the top of the rectangle An attribute is a property of a class. It describes a range of values that the property may hold in objects of the class. A class may have zero or more attributes. A one-word attribute name is written in lowercase letter. If the name consists of more than one word, the words are joined and each word other than the first word begins with an uppercase letter. The list of attribute names begins below a line separating them from the class name.

In the class icon, you can specify a type for each attribute's value (string, floating-point, number, integer, boolean or user defined types). Also you can indicate a default value for an attribute. An operation is something that a class can do, or that you (or naother class) can do to a class. Like an attribute name, an operation's name is written in lowercase letter. If the name consists of more than one word, the words are joined and each word except the first word begins with an uppercase letter. The list of operations begins below a line separating operations from the attributes.

Also operations may have some aditional information. In the parentheses that follow an operation name, you can show the parameter that the operation works on, along with the parameter's type. If the operation is function, then we must specify the type of the returned value. Other additional features that can be attached to attributes of the class are constraints and notes. Constraints are free form text enclosed in braces. The backeted text specifies one or more rules the class follows. Notes usually are attached to attributes as well as operations, and they give aditional information to a class. A note can contain a graphic as well as text. How can we derives classes from interviewing the clients? In conversations with clients, be alert to the nouns they use to describe the entities in their business. Those nouns will become the classes in your model. Be alert also to the verbs that you hear, because these will constitute the operations in those classes. The attributes will emerge as nouns related to the class nouns.

CSE Department, VNRVJIET

20 www.jntuworld.com

www.jntuworld.com

Associations
When classes are connected together conceptually, that connection is called an association. You visualize the association as a line connecting the two classes, with the name of the association just above the line. When one class associates with another, each one usually plays a role within that association. You can show those roles on the diagram by writing them near the line next to the class that plays the role. Association may be more complex than just one class connected to another. Several classes can connect to one class. Sometimes an association between two classes has to follow a rule. You indicate that rule by putting a constraint near the association line. Just like a class, an association can have attributes and operations. In this case we have an association class.

You visualize association class the same way you show a regular class, and you use dotted line to connect it to the association line. Multiplicity is a special type of association which shows the number of objects from one class that relate with a number of objects in an associated class. One class can be relate to another in a one-to-one one-to-many one-to-one or more one-to-zero or one one-to-a bounded interval (one-to-two through twenty) one-to-exactly n one-to-a set of choices (one-to-five or eight) The UML uses an asterisk (*) to represent more and to represent many. Sometimes, a class is in association with itself. This can happen when a class has objects that can play a variety of roles. These associations are called reflexive associations. Reflexive association

Without relationships, a class model would be a list of rectangles that represent a vocabulary of system. Relationships show how the terms in the vocabulary connect with one another to provide a picture of the slice of the world you're

CSE Department, VNRVJIET

21 www.jntuworld.com

www.jntuworld.com
modeling. The association is the fundamental conceptual connection between classes. Each class in an association plays a role, and multiplicity specifies how many objects in one class relate to one object in the associated class. Many types of associates are possible.

Inheritance & Generalization


If you know something about a category of things, you automatically know some things you can transfer to other categories. If you know something is an animal, you take for granted that it eats, sleeps, has a way of being born, has a way of getting from one place to another... But imagine that mammals, amphibians and reptiles are all animals. Also cows, dogs, cats... are grouped in category mammals. Object-orientation refers to this as inheritance.

An inheritance hierarchy in the animal kingdom One class (the child class or subclass) can inherit attributes and operations from another (the parent class or superclass). The parent class is more general then the child class. In generalization, a child is substitutable for a parent. That is, anywhere the parent appears, the child may appear. The reverse isn't true, however. In UML inheritance is represented with a line that connects the parent to a child class, and on the parent's side you put an open triangle. If we look from the association's side, the inheritance stands for is a kind of association. What should analysts do to discover inheritance? The analyst has to realize that the attributes and operations of one class are general and apply to perhaps several other classes - which may add attributes and operations of their own. Another possibility is that the analyst notes that two or more classes have a number of common attributes and operations. Classes that provide no objects are said to be abstract classes. You indicate an abstract class by writing its name in italics. A class can inherit attributes and opeartions from another class. The inheriting class is the child of the parent class it inherits from. Abstract classes are intended only as bases for inheritance and provide no objects of their own.

Aggregations
Sometimes a class consists of a number of component classes. This is a special type of relationship called aggregation. The components and the class they constitute are in a part-whole association. Aggregation is represented as a hierarchy with the "whole" class at the top, and the component below. A line joins a whole to a component with an open diamond on the line near the whole. Let's take a look at the parts consisting a TV set. Every TV has a TV box, screen, speaker(s), resistors, capatitors, transistors, ICs... and possibly a remote control. Remote control can have these parts: resistors, capatitors, transistors, ICs, battery, keyboard and remote lights.

CSE Department, VNRVJIET

22 www.jntuworld.com

www.jntuworld.com
An aggregation association in the TV Set system

Sometimes the set of possible components in an aggregation falls into an OR relationship. To model this, you would use a constraint - the word OR within braces on a dotted line that connects the two part-whole lines. A composite is a strong type of aggregation. Each component in a composite can belong to just one whole. The symbol for a composite is the same as the symbol for an aggregation except the diamond is filled. If you examine the human's outside you'll find out that every person has: head, body, arms and legs. This is shown on this picture.

A composite association. In this association each component belongs to exactly one whole. An aggregation specifies a part-whole association. A "whole" class is made up of component classes. A composite is a strong form of aggregation, and a component in a composite can be part of only one whole. Aggregations and composites are represented as lines joining the whole and the component with open and filled diamond, respectively, on the whole side.

Interfaces and Realizations


In previous lessons we learned how to refine classes from the interview with client, and relate them with different relationships between them. But it's possible that some of classes are not related to a particular parent, but their behaviors might include some of the same operations with the same signatures. You can code the operations for one of the classes and reuse them in the others. An interface is a set of operations that specifies some aspect of a class behaviour, and it's a set of operations a class presents to other classes. You model an interface the same way you model a class, with the rectangle icon, but interface has no attributes, only operations. Another way is with a small circle joined with line to a class. The computer's keyboard is a reusable interface. Its keystroke operation has been reused from the typewriter. The placement of keys is the same as on a typewriter, but the main point is that the keystroke operation has been transfered from one system to another. Also on computer's keyboard you'll find a number of operations that you won't find on a typewriter (Ctrl, Alt, PageUp, PageDown...)

An interface is a collection of operations that a class carries out


CSE Department, VNRVJIET

23 www.jntuworld.com

www.jntuworld.com
To distinguish interfaces from classes, in stereotype construct we put <<interface>> or I at the begining of the name of any interface. The relationship between a class and an interface is called realization. This relationship is modeled as a dashed line with a large open triangle adjoining and pointing to the interface.

Visibility
Visibility applies to attributes or operations, and specifies the extent to which other classes can use a given class's attributes or operations. Three levels of visibility are possible (last symbols are used in UML classes to indicate different levels of visibility): public level + usability extends to other classes protected level # usability is open only to classes that inherit from original class private level only the original class can use the attribute or operation

Public and private operations in a HardDisk

Use Case Diagrams


Class diagrams provide a static view of the classes in a system. Next diagrams provide a dynamic view and show how the system and its classes change over time. The static view helps an analyst communicate with a client. The dynamic view, helps an analyst communicate with a team of developers, and helps the developers create programs. Just as the class diagram is a great way to stimulate a client to talk about a system from his or her viewpoint, the use case is an excellent tool for stimulating potential users to talk about a system from their own viewpoints. It's not always easy for users to articulate how they intend to use a system. It's a fact of life that users often know more than they can articulate: The use case helps break the ice. Interviews with users begin in the terminology of the domain, but should then shift into the terminology of the users. The initial results of the interviews should reveal actors and high-level use cases that describe functional requirement in general terms. this information provides the boundaries and scope of the system. Later interviews with users delve into these requirement more closely, resulting in use case models that show the scenarios and sequences in detail. This might result in additional use cases that satisfy inclusion and extension relationships. In this phase it is important to your understanding of the domain, because if you don't understand it well you may create too much use cases and that could impede the analysis process. Use case are collection of scenarios about system use. Each scenario describes a sequence of events. Each sequence is initiated by a person, another system, a piece of hardware, or by the passage of time. Entities that initiate sequences are called actors. The result of the sequence has to be something of use either to the actor who initiated it or to another actor. It's possible to reuse use cases. One way - inclusion, is to use the steps from one use case as part of the sequence of steps in another use case. Another way - extension, is to create a new use case by adding steps to an existing use case.

Next lessons will guide you through representing a use case model and visualizing relationships among use cases. At the
CSE Department, VNRVJIET

24 www.jntuworld.com

www.jntuworld.com

end an use case example will be given to you. Introducing a Use Case Model
An actor initiates a use case, and an actor (possibly the initiator, but not necessarily) receives something of value from the use case.

Use Case model An ellipse represents a use case, a stick figure represents an actor. The initiating actor is on the left of the use case, and the receiving actor is on the right. The actor's name appears just below the actor. The name of the use case appears either inside the ellipse or just below it. An association line connects an actor to the use case, and represents communication between the actor and the use case. The association line is solid, like the line that connects associated classes. Each use case is a list of scenarios, and each scenario is a sequence of steps. Each scenario of each use case will also have its own page, listing in text from the: Actor who initiates the use case Preconditions for the use case Steps in the scenario Postconditions when the scenario is complete Actor who benefits from the use case Use case diagrams add more power to the requirements gathering. They visualize use cases, they facilitate communication between analysts and users and between analysts and clients. In a use case diagram, symbol for the use case is an ellipse, actor has a stick figure as a symbol, and association line joins an actor to a use case. The use cases are usually inside a rectangle that represents the system boundary.

Relationships Among Use Cases


In lesson Use case diagrams, we mentioned that it is possible to reuse use case diagrams. One way was inclusion, another was extension. These are relationships among use cases, and there are two other kinds of relationships: generalization and grouping. Inclusion Inclusion enables you to reuse one use case's steps inside another use case. To represent inclusion, you use the symbol you used for dependency between classes dotted line connecting the classes with an arrowhead pointing to the depended-on class. Jus above the line, you add a stereotype-the word <<include>> enclosed in guillements. Extension Extension allows you to create a new use case by adding steps to an existing use case. Also here a dotted arrowhead line is used to represent extension, along with a stereotype that shows <<extends>> in guillements. Within the base use case, the extension point appears below the name of the use case. Generalization Classes can inherit from one another and so can use cases. In use case inheritance, the child use case inherits behavior and meaning from the parent, and adds its own behavior. You can apply the child wherever you apply the parent. Generalization is modeled the same way you model class generalization - with a solid line that has an open triangle pointing at the parent. The generalization relationship can exist between actors as well as use cases. Grouping In some use case diagrams, you might have a multiple of use cases and you'll want to organize them. This could happen when a system consists of a number of subsystems.

CSE Department, VNRVJIET

25 www.jntuworld.com

www.jntuworld.com
The most straightforward way is to organize group related use cases into a package (a tabbed folder). In next lesson Use Case Diagrams - Example we'll look closely to all of these relationships, to help you understand use cases as a part of use case diagrams.

Use Case Diagram - Example


In this example we're going to model out use case diagrams for a self-service machine. The main functions of self-service machine is to allow a customer to by a product(s) from the machine (candy, chocolate, juice...). Every user that you asked for a set of scenarios happening during usage of machine, can tell you that main use case can be labeled as "Buy a product". Let's examine every possible scenario in this use case. These scenarios would be revealed trough conversations with users. The "Buy a product" use case The actor in this use case is customer. This customer wants to buy some of the products offered by the self-service machine. First of all he/she inserts money into the machine, selects one or more products, and machine presents a selected product(s) to the customer. Use case diagram for this scenario can be represented as:

The Buy a Product use case diagram But if we think a little, others scenarios immediatelly come to mind. It's possible that the self-service machine is out of one or more products, or the machine hasn't the exact amount of money to return to customer. -Are we supposed to handle with these scenarios? If we are, then let's return at the moment when the customer inserts money into machine and enters his or hers selection. After this imagine that machine is out of brand. In this case it's preferable to present a message to the customer that machine is out of brand and allow him or her to make another selection or return money back. If incorrect-ammount-of-money scenario has hapenned, then self-service machine is supposed to return original ammount of money to the customer. The precondition here is hungry or thirsty customer, and postcondition is either product from the machine or the returned money. This is use case scenario from one user's viewpoint (the customer). Buth there are other users too. A supplier has to restock the machine, and a collector has to collect the accumulated money from the machine. This tells us to create at least two more use cases: "Restock" and "Collect money". Let's look closely at both of them, by interviewing both suppliers and collectors. The "Restock" use case Actions that supplier must do every time interval (say, one or two weeks) are: Supplier unsecures the machine, opens the front of the machine, and fills each brand's compartment to capacity. (The supplier may fill each brand according to consuming of article). Then he/ she closes the front of the machine and secures it. The precondition is the passage of the interval, and the postcondition is that the supplier has a new set of potential sales. This use case diagram is presented on the following picture:

The Restock use case diagram The "Collect Money" use case Responsible for this use case is collector. Collector may be the same person as the supplier. The steps that collector must do are same as the steps of supplier, but the collector don't deal with products, he/ she deals with money. When the time interval has passed this person collects the necessary ammount of money from the machine.
CSE Department, VNRVJIET

26 www.jntuworld.com

www.jntuworld.com
The postcondition here is the money in hands of the collector. Collect money use case diagram is following:

The Collect Money use case diagram The steps of unsecuring the machine, front opening, closing and securing the machine are the same that supplier and collector must do. This is a good place to include a use case. Let's combine the "unsecure" and "pull open" steps into use case called "Expose the inside" and the "close machine" and "secure" with use case "Unexpose the inside". By including a use case Restock and Collect use cases may look as this:

The inclusion process in Restock and Collect Money use cases The Restock use case could be basis of another use case: "Restock according to sales". Here supplier may fill up brands with new products according of sale of that products. This is an extension of a use case. After inclusion and extension the Restock use case can be:

The extension process in Restock use case Also and generalization may take place to the actors supplier and collector. If both of them are the same person, let's say Supplier Agent, then the restocker and the supplier are both children of the Supplier Agent. This is showh on next picture: A generalization between supplier and collector

We reached the end of our analysis for the self-service machine. Completed use case diagram (Click for the entirely use case diagram) shows the functional requirements of the system, and we are able to make next move - design and development.

CSE Department, VNRVJIET

27 www.jntuworld.com

www.jntuworld.com

State Diagrams
In next lessons you'll work with elements that you haven't worked before. That would be behavioral elements, that show how parts of a UML model change over time. As the system interacts with users and possibly with other systems, the objects that make up the system go through necessary changes to acommodate the interactions. If you're going to model systems, you must have a mechanism to model change. That mechanism in UML is State diagrams. - When you pull a switch, a light changes its state from off to on. - When you make keystroke or mousemovement in screen saver mode on your computer, your computer leaves screen saver mode and returns to working - active mode. The UML State diagram presents the states an object can be in along with the transitions between the states, and shows the starting point and endpoint of a sequence of state changes. A state diagram shows the states of a single object. States in the state diagram are represented with a rounded rectangle, and the symbol for the transition is a solid arrowhead line. A solid circle stands for starting point of a sequence of states, and bull's eye represents the endpoint.

The UML symbols in a state diagram. The top area stands for the state's name, middle area is for state variables, and the bottom is for activities. Transitions are represented with solid arrowhead lines, and circles are for starting and ending state. Also you can add details to a state icon by dividing it to a three areas. The top area holds the name of the state (this name you must supply whatever the class is divided or not), the middle area hold state variables (timers, counters, dates...), and the bottom area hold activities (entry-what happenes when the system enters the state, exit-what happenes when the system leaves the state, do-what happenes when the system is in the state).

State Details and Transitions


You can indicate an event that causes a transition to occur (a trigger event) and the computation (the action) that executes and makes the state change happen.

CSE Department, VNRVJIET

28 www.jntuworld.com

www.jntuworld.com
To add events and actions you write them near the transition line, using a slash to separate a triggering event from an action. Sometimes an event causes a transition without an associated action, and sometimes a transition occurs because a state completes an activity (rather than because of an event). This type of transition is caled triggerless transition. Also possible is a guard condition. When it's met, the transition takes place. (For example screen saving mode is activated when time interval of n idle minutes has passed). Some of the states may be more complex that is represented with a rounded rectangle. It is possible to have states inside one state. These states are called substates (sequential and concurrent). Sequential substates come in sequences of states which occur one after another. Concurrent substates must consist of two or more sequential substates which occur at the same time. This is represented with dotted line between the concurent states. If you have any problems understanding these concepts please refer to the State Diagram - Example lesson. The UML supplies a symbol that shows that a composite state remembers its active substate when the object transitions out of the composite state. The symbol is connected by a solid line to the remembered substate, with an arrowhead that points to the substate. A message that triggers a transition in the receiving object's state diagram is called a signal. In the object-oriented world, sending a signal is the same as creating a signal object and transmitting it to the receiving object. The signal object has properties that are represented as attributes. Because a signal is an object, it's possible to create inheritance hierarchies of signals.

State Diagram - Example


Suppose you're designing a toaster. You would build a plenty of UML diagrams, but here only state diagrams will be of our interest. - What are the steps of making a toast? First of all we must turn on the toaster, put in the bread and wait for several minutes to bake it. The initial state diagram is shown below:

The initial state diagram for making a toast But this is not the final state diagram. To prevent burning out the bread, heater of the toaster must produce heat in temperature interval (upper and lower temperature limits). For this purpose thermometer measures the temperature of heater, and when the upper limit of temperature is reached then heater must go into idle state. This state resists until heater's temperature decreases to lower limit, and then working state is again aimed. With this new state, extended state diagram will be:

The extended state diagram for making a toast

CSE Department, VNRVJIET

29 www.jntuworld.com

www.jntuworld.com
Transition between working and idle state is not presented in details. To do this substates must be added.

Substates in Working and Idle states Substates in working and idle states are very similar. both had measure and compare states, but differentiates in process of temperature comparison. Working state must compare current temperature with upper temperature limit (if it is reached, working state goes into idle state), and idle state compares current temperature with lower temperature limit (idle state is replaced with working state when temperature falls under lower limit). It's necessary to have state diagrams because they help analysts, designers and developers understand the behavior of the objects in a system. Developers, in particular, have to know how objects are supposed to behave because they have to implement these behaviors in software. It's not enough to implement an object: Developers have to make that object do something.

Sequence Diagrams
In previous lesson we learned state diagrams, which focus on the states of na object. But it's necessary to have communication between objects. The UML sequence diagram goes the next step and shows how objects communicate with one another over time. In this expanded field of view, you'll include an important dimension: time. The key idea here is that interactions among objects take place in a specified sequence, and the sequence takes time to go from beginning to end. The sequence diagram consists of objects represented in the usual way - as named rectangles (with the name underlined), messages represented as solid-line arroes, and time represented as a vertical progression. Let's take a close look at this parts of sequence diagrams. Objects The objects are laid out near the top of the diagram from left to right. They're arranged in any order that simplifies the diagram. Extending downforward from each object is a dashed line called the object's lifeline. Along the lifeline is narrow rectangle called an activation. The activation represents an execution of an operation the object carries out. The length of the rectangle signifies the activation's duration. This is shown on next picture.

Representing an object in a sequence diagram


CSE Department, VNRVJIET

30 www.jntuworld.com

www.jntuworld.com
Messages A message that goes from one object to another goes from one object's lifeline to the other object's lifeline. An object can send a message to itself-that is, from its lifeline back to its own lifeline. This is called recursion. See recursion example. Following table lists all of possible messages existing in the UML sequence diagrams, with their graphical representations: simple synchronous This is a transfer of control from one object to another. If an object sends a synchronous message, it waits for an answer to that message before it proceeds with its business. If an object sends an asynchronous message, it doesn't wait for an asynchronous answer before it proceeds. Time The diagram represents time in the vertical direction. Time starts at the top and progresses toward the bottom. A message that's closer to the top occurs earlier in time than a message that's closer to the bottom.

The essential symbol set of the sequence diagram, with the symbols working together. The actor-symbol initiates the sequence, but the stick figure isn't part of the sequence diagram symbol set. In a sequence diagram, the objects are laid out from left to right across the top. Each object' lifeline is a dashed line extending downward from the object. A solid line with an arrowhead connects one lifeline to another, and represents a message from one object to another. Time starts at the top an proceeds downward. Although an actor typically initiates the sequence, the actor symbol isn't part of the sequence diagram's symbol set.

Activity Diagrams
If you've ever taken an introductory course in programming, you've probably encountered the flowchart. The flowchart shows a sequence of steps, processes, decision points and branches. Novice programmers are encouraged to use flowcharts to conceptualize problems and derive solutions. The UML activity diagram is much like the flowcharts of old. It shows steps (called, appropriately enough, activities) as well as decision points and branches. It's useful for showing what happens in a business process or an operation. You'll wind it an integral part of system analysis. First and foremost, an activity diagram is designed to be a simplified look at what happens during an operation or a process. It's an extension of the state diagram. The state diagram shows the states of an object and represents activities as arrows connecting the states. The activity diagram highlight the activities. Each activity is represented by a rounded rectangle - narrower and more oval-shaped than the state icon. The processing within an activity goes to completion and then an automatic transmission to the next activity occurs. An arrow represents the transition from one activity to the next. Also an activity diagram has a strating point represented by filled-in circle, and endpoint represented by a bull's eye.

CSE Department, VNRVJIET

31 www.jntuworld.com

www.jntuworld.com
Transition from one activity to another in the Activity Diagram

In next lesson will be explained ways of creating an activity diagram, rules between activities, and at the end an example for this diagram will be given to you. The activity diagram is an extension of the state diagram. State diagrams highlight states and represent activities as arrows between states. Activity diagrams put the spotlight on the activities. Each activity is represented as a rounded rectangle, more oval in appearance than the state icon. The activity diagram uses the same symbols as the state diagram for the startpoint and the endpoint.

Building an Activity Diagram


In this lesson will be explained ways of representing decisions, concurrent paths, signals and swimlanes in the activity diagrams. Decisions Decision point can be represented in two ways, it's all to you to make decision what way to use in your activity diagrams. One way is to show the possible paths coming directly out of an activity. the other is to have the activity transition to a small diamond and have the possible paths flow out of the diamond. Either way, you indicate the condition with a bracketed condition statement near the appropriate path. Imagine that you have to go to the work. You get your car, put the key in the ignition, and there are two possible situations: your car will start or it will not start it's engine. These possible cases will produce two other activities: drive a car, or go by a bus, taxi, bike or go walking. This scenario is shown on this picture (make attention of two ways showing a decision):

Activity diagram showing two ways of decision Concurrent paths When you modeling activities, very frequently you'll have a occasion to separate a transition into two separate paths that run at the same time (concurrently), and the come together. Split is represented by a solid bold line perpendicular to the transition and show the paths coming out of the line. To represent the merge, show the paths pointing at another solid bold line.

CSE Department, VNRVJIET

32 www.jntuworld.com

www.jntuworld.com

Activity diagram representing a transition split into two paths that run concurrently and then come together Signals During a sequence of activities, it's possible to send a signal. When received, the signal causes an activity to take a place. The symbol for sending a symbol is a convex pentagon, and the symbol for receiving a signal is a concave polygon. Sending and receiving a signal Swimlanes The activity diagram adds the dimension of vizualizing roles. To do that, you separate the diagram into parallel segments called swimlanes. Each swimlane shows the name of a role at the top, and represents the activities of each role. Transitions can take place from one swimlane to another. It's possible to combine the activity diagram with the symbols from other diagrams and thus produce a hybrid diagram. Following lesson will give you a written example for an activity diagram.

Activity Diagram - Example


This example will deal with mathematics. Sometimes (when calculating combinations) you'll need to calculate a factoriel of n - n!. The formula for this is n!=n*(n-1)*(n-2)*...*2*1. Let's dive into the problem. From definition of factoriels we have 0!=1 and 1!=1. For the rest of the numbers we must use the given formula. In computer programming this problem is written with recursion. Here also when building an activity diagram recursion will be introduced. You might call the operation computeFact(n). You'll need a counter to keep track of whether or not the operation has reached the nth factoriel, a variable that keep a track of your computations, and two more to store the values of 0! and 1!. The complete activity diagram is shown on next picture:

CSE Department, VNRVJIET

33 www.jntuworld.com

www.jntuworld.com

If you're dealing with computer programming you will conclude that this activity diagram is very similar with a procedure (function) that computes factoriels.

More About Interfaces and Components


In previous lessons, you learned about diagrams that deal with conceptual entities. In next lessons, you're going to learn about a UML diagram that represent a real-world entity: software component. But what is a software component? A software component is a physical part of a system. It resides in a computer, not in the mind of an analyst. What's the relationship between a component and a class? Think of a component as the software implementation of a class. The class represents an abstraction of a set of attributes and operations. And one component can be implementation of more than one class. You model components and their relationships so that: 1 Clients can see the structure in the finished system 2 Developers have a structure to work toward 3 Technical writers who have to provide documentation and help files can understand what they're writing about 4 You're ready for reuse When you deal with components, you have to deal with their interfaces. Interface is the object's "face" to the outside world, so that other objects can ask the object to execute its operations, which are hiden with encapsulation. An interface is a set of operations that specifies something about a class's behavior. It is a set of operations the a class represent to other classes. For you as a modeler, this means that the way you represent an interface for a class is the same as the way you represent an interface for a component. As is the case with a class and its interface, the relation between a component and its interface is called realization. See, Interfaces & Realizations. You can replace one component with another if the new component conforms to the same interfaces as the old one. You can reuse a component in another system if the new system can access the reused component trough that component's interfaces. As you progress in your modeling career, you'll deal with three kinds of components: 1 Deployment components, wich form the basis of executable systems (DLL's, executables, ActiveX controls, JavaBeans) 2 Work product components, from which deployment components are created (data files and source code files)
CSE Department, VNRVJIET

34 www.jntuworld.com

www.jntuworld.com
3 Execution components, created as result of a running system Instead of representing a conceptual entity such as a class or a state, a component diagram represents a real-world item - a software component. Software components reside in computers, not in the minds of analysts. A component is accessible trough its interface. The relation between a component and its interface is called realization. When one component access the services of another, it uses an import interface. the component that realizes the interface with those services provides an export interface.

Collaboration Diagrams
Collaboration diagrams like the sequence diagrams, shows how objects interact. It shows the objects along with the messages that travel from one to another. But, if sequence diagram does that, why UML need another diagram? Don't they do the same thing? The sequence diagram and the collaboration diagram are similar. They're semantically equivalent, that is, the present the same information, and you can turn a sequence to a collaboration diagram and vice versa. The main distinction between them is that the sequence diagram is arranged according to time, the collaboration diagram according to space. A collaboration diagram is an extension of object diagram. In addition to the associations among objects, collaboration diagram shows the messages the objects send each other. Messages among objects are represented with arrows that points to receiving object, near the association line between two objects. A label near the arrow shows what the message is. The message typically tells the receiving object to execute one of its operations. A pair of parentheses ends the message. Inside the parentheses, you put the parameters the opearation works on. Collaboration diagrams can be turned into sequence diagrams and vice versa. Thus, you have to be able to represent sequence information in a collaboration diagram. To do this you must know that: Add a number to the label of a message, with the number corresponding to the message's order in the sequence. A colon separates the number from the message. This is the basis of collaboration diagrams. In addition next two lessons will describe the process of writing collaboration diagrams.

Writing Collaboration Diagrams


You can show an object's change of state in a collaboration diagram, also you can show conditions the same way you represent them in sequence diagram. In the object rectangle, indicate the state of the object. To the diagram, add another rectangle that stands for the object and indicate the changed state. Connect the two with the dashed line and label the line with a <<become>> stereotype. You put the condition inside a pair of square brackets, and the conditionprecedes the message-label. The important thing is to coordinate the conditions with the numbering. To get closer to this concepts please refer to the Collaboration Diagram - Example. Also you can present object creation. In object's creation process you add a <<create>> stereotype to the message that creates the object. In the collaboration diagram, you can represent multiple objects and returned results. The representation of multiple objects is a stack of rectangles extending "backward". You add a bracketed condition preceded by an asterisk to indicate that the message goes to all objects. Returned results are written as expression that has a name of the returned value on the left, followed by :=, followed by the name of the operation, and a list of possible attributes that operation can accept, to produce the result.The right side of the expression is called a message-signature. A proffesor asks a group of students to hand in an assignment.
CSE Department, VNRVJIET

35 www.jntuworld.com

www.jntuworld.com

A message can be a request for an object to perform a calculation and return a value. In some interactions, a specific object controls the flow. This active object can send messages to passive objects and interact with other active objects. Also you might run into an object sending a message only after several other (possibly nonconsecutive) messages have been sent. That is, the object must sinchronize its message with a set of other messages. The collaboration diagram represents an active object the same way as other, except that its border is thick and bold. Sinchronizing messages, are precede with a list of the messages that have to be completed prior to that message take place. A comma separates one list-item from another, and the list ends with a slash. Now when you have all this concepts, you're ready to go to the next lesson the Collaboration Diagram - Example.

Collaboration Diagram - Example


Self-service machine again will be target for this example. In previos example (See, Sequence Diagram - Example) the sequence diagram for this system was built. This is good time to try the ways of converting sequences into collaboration diagrams. The best-case scenario consists of several steps: 1 The customer inserts money in the machine and makes selection of one or more product(s) present in the machine. 2 When the register gets the money (in this case customer puts the correct amount of money, and there is allways a product in the selected brand), the selected product is delivered to the dispenser. 3 The dispenser delivers the product to the front of the machine, and the customer gets that product.

But when we examined this machine and its work in detail, new scenarios were introduced: incorectamount-of-money and out-of-product scenario. While building the sequence diagrams, conditions were introduced to display the work of the machine. Here conditions will be used too. You put the condition inside a pair of square brackets, and the condition precedes the message-label. The important thing is to coordinate the conditions with the numbering. When you're modeling if statement there are two possible conditions. Messages for these conditions have a same number, and you add a decimal point and another number. This is called nesting. In out-of-product scenario, the machine has to display an out of product message, and prompt the customer for another product or return the money back. If customer makes another selection this

CSE Department, VNRVJIET

36 www.jntuworld.com

www.jntuworld.com
process must be repeated. Also a correct-amount-of-money scenario may be introduced. Collaboration diagram for this case is shown on the picture:

As you can see, from this picture two possible scenarios may happen. Out-of-product and Product-in are that two possibilities. If we assume that this happened after message 1:add(input,selection), the number for this messages will be 2, and we add 1 for the Product-in and 2 for the out-of-product scenarios, after the decimal point. What happens when the machine doesn't have the correct change? The machine has to display an out of change message, return the money, and prompt the customer for the correct change. In effect, the transaction is over. When the machine has the correct change, it returns the change to the customer and delivers selected product. Two branches that are produced from nesting process are numbered with 2.1 and 2.2. And three posibilities in condition-message 3 will be:3.1, 3.2 and 3.3. Collaboration diagram is shown on the following picture:

Thats all for this example, and for this day. All you have to do now is answering the questions given in Questions & Answers and Workshop part from this day. Next day will introduce to you the last three UML diagrams.

Component Diagrams
A component diagram contains components, interfaces and relationships. Also other types of symbols that you've already learned can also appear in a component diagram. The component diagram's main icon is a rectangle that has two rectangles overlaid on its left side. You put the name of the component inside the icon. The name is string. If the component is a member of a package, you can prefix the component's name with the name of the package.

The component icon A component and the interfaces it realizes are representable in two ways. One way is to show the interface as a rectangle that contains interface-related information. It's connected to the component by the dotted line and empty triangle that
CSE Department, VNRVJIET

37 www.jntuworld.com

www.jntuworld.com
vizualize realization.Other way to represent interface is as a small circle connected to the component by a solid line, which represents a realization relationship. Interface can be represented as a rectangle containing information, connected to the component by a realization arrow Interface is a small circle, connected to the component with a solid line, wich stands for realization

Component Diagram - Example


Suppose that we need to build up a software for playing a music from a CD-ROM Drive. A visual programming language might be used (VisualBasic or Delphi for example). If language supports multimedia controls, than we can use its components an reprogramm them if necessary, or we can programm new components. One possible graphical design for our player might be:

As you can see this UML Music Player needs these controls: play stop eject pause fast forward rewind power These controls will be realized by buttons, thus we'll have a button performing these controls. If we look at buttons as separete components, we can draw out a component UML diagram. This is shown on the following picture:

The component diagram for the MusicPlayer. All the components shown on the previous diagram belongs to one global component - Button, but actions they perform are diferent. We must obtain these actions by programming them.

CSE Department, VNRVJIET

38 www.jntuworld.com

www.jntuworld.com

Deployment Diagrams
We reached the end of the UML diagrams. Now it's perfect time to look at the hardware. As you can see, we moved from items that live in analysis, to components that live in computers, to hardware that lives in the real world. Hardware, of course, is a prime topic in a multicomponent system. A solid blueprint for hardware deployment is essential to system design. The UML provides you with symbols for creating a clear picture of how the final hardware setup should look. The main hardware item is a node, a generic name for any kind of computing resource. Two types of nodes are possible. A processor is a node that can execute a component, and a device that can't execute a component. A device typically interfaces in some way with the outside world. In the UML a cube represent a node. Node has its name, and you can use a stereotype to indicate the type of resource it is. If a node is a part of package, then and the name of package preceeds the name of the node. A line joining the two cubes represents a connection between two nodes. You can use a stereotype to provide information about the connection. The cube is representation of a node in the UML

Also every node deployes some of software components in the system. To indicate deployed components, you show them in dependency relationships with a node. Let's build a deployment diagram for a home computer system. Computer consists of these hardware elements: CPU, monitor, printer, mouse, keyboard. And installed software components: Windows98, Office98, InternetExplorer4, FrontPage, DOS, NortonCommander, TurboPascal.

The main node is CPU which consists of all the software components with their relationships. Other hardware elements are devices connected to the main processor unit. You may extend this diagram by adding a modem and connection to the Internet. Try to redraw the diagram with this extension. The UML deployment diagram provides a picture of how the physical system will look when it's all put together. A system consists of nodes (represented by a cube) with line connecting them, called connections. There are two types of nodes: a processor (can execute a component) and a device (interface with the real world). Deployment diagrams are useful for modeling networks.

Deployment Diagram - Example


This example will describe you the thin Ethernet network. If you're familiar with computer networks this one will be easy to you, but if not then try to understand the following explanation:
CSE Department, VNRVJIET

39 www.jntuworld.com

www.jntuworld.com
The thin ethernet is a popular type of network. It is used in local places eg.rooms or buildings, where connecting cable can be placed. There are some mathematics calculations for the length of the cable of all the network, and length of cable from computer to computer. These calculation for the deployment diagram are not important. Computers connect to a network cable via connection devices called Tconnectors, or sometimes vampire-taps are used. T-connector has three connecting points. Its form is similar with T-letter and thats why their name cames from. Network cable goes from one end-point to the other end-point of the connector, and the third end-point has a cable going to the computer. Because length of the network is limited, ending points of the cable must have a devices called terminators, which gave infinite resistance to the end of cable. Also one network segment may join another via a repeater. The repeater is a device which amplifies the signal to reduce losing of signal. The thin Ethernet is represented on the following

picture: When we get familiar with the thin Ethernet network concept let's draw the deployment diagram for it. This diagram wil look like:

CSE Department, VNRVJIET

40 www.jntuworld.com

www.jntuworld.com

Deployment Diagram for Ethernet network With this example all of the UML diagrams are shown to you. In this day, only that you have to do, are the exercises. But before make some exercises, A global picture with all of the UML symbols is given to you. See it.

UML Diagram Set of Symbols


This is the complete set of symbols that UML introduces in its diagrams. Structural Elements

CSE Department, VNRVJIET

41 www.jntuworld.com

www.jntuworld.com
Behavioral Elements

Relationships

Grouping

Extension

Annotation & Actors

The Digital Library - Example


We finished UML diagram's theory. Now is a perfect time to dive into practice. This and next day are concerned with Digital Libraries. If you're not introduced with them, don't worry. Things will be much clearer after these two days. Back in time we remember the clasical library structure in which there is a librarian with a great deal of paperwork, the user must be physically there to get the book and know which book is of his/hers interest. If he/she doesnt know the desired book, than is in the hands of librarian to recommend some book for him/her. The new wave in this direction, based on the software development and Internet is headed into new library entity- the Digital Library. This kind of library is world-wide accessed, with a quick review possibilities, digital books and a lot of multimedia files. They can recommend you a book or a journal, give a statistical aspect of the recent books and a lot of features that are making the life easier all of that with the comfort of lying in the sofa with remote keyboard in your hands. Remote reservation is even making possible of getting a hard copy of a book or journal using a efficient postal system connected with the library. Day 5 and Day 6 will guide you trough the process of analyzing and implementing a digital library. You will find out all the steps introduced in Rapid Application Development process, and their workproducts UML diagrams. First two lessons, during interviews, will describe you the work of one digital library in detail. Let's go to work now.

Discovering Business Processes 1


In this lesson you'll find how to make an interview with a client. This will be a dialog between an analyst and a client. The final product of this conversation will be an activity diagram.
CSE Department, VNRVJIET

42 www.jntuworld.com

www.jntuworld.com

In the following text A will stand for Analyst and C for the client. A Let's start with the work. Tell me what's happening when a customer enters in your library? C He or she goes to the corridor where data search can be done. After selection of which books or journals to lend, the customer goes to the place where he or she can take the sample of that book or journal. A You said data search. What kind of data? C There is main data record for every book, author or journal, sorted alphabetically. Every record consist of different data according to type of the product: (book or journal). These records are printed on paper cards, and they are putted on different folders. Access to these records can be done also by computer terminals which can be found in the corridor. A That means that your library is computerized. Why using a computers and a paper records? C As we live in hi-technological era, we must to follow time steps. Computers were introduced few years ago, but paper records are here since the library was built. Also some impatient customers, can use them if all of the computer terminals are occupied. A Are the same data put in the paper records and in the computer records? C Yes. All of old data from paper records is converted to computer records, and new data that we write in paper cards also is writen in electronic format. A Where is your database located on? C Our database is located on a computer server. This server is a heart of our local area network - all of the terminals located in our library. A Let's backtrack to the data. You said that same data is stored in the electronic format and in the paper format. Next in our conversation we can refer to these with same name, let's say index. C I agree. A When we talk about index, what kind of information is necessary to perform a search? C Data for the books and for the journals is very similar. Both have ISBN-the unique number for every book/journal, title, publishing year, publishing house, but books have author and genre, and journals have volume and area. For the data search are usefull ISBNs, titles, authors, genres, volumes and areas. Retreived results specifies the type of the books or journals. A Just a second. What are the kinds of books and journals? C Except paper books and journals, electronic books and journals are supperted in our library. A Electronic books and journals. How do you manage these types of items (books / journals)? C The server we had is used for storage of these types of items. We produced some of the electronic items, but also in our database we have Internet addresses from electronic books or journals from other libraries we used to cooperate. A You have a lot of ammount of data. Is everyone concerned with data input and data maintenance? C We have employees to do this. A You said employees. I think that they are not parts from this conversation for now. We will talk about them later. The customers are not finished yet. Before going to the process of lending let's assume what we have at this point of interview, things come clearer to me now. Every customer can perform a data search for the books or journals. Electronic formats of books retrived from the search, can be accessed imidiately. Paper formats can be lended if there is a free sample. Now you may go to the process of lending. C At the begining, I've stress out that user who is in the library after data search can perform a lending. Lending can be done if books or journals are in paper format, and it's done in the lending area in the library. Searched books or journals can be given to the user if free samples of them are in the library. A Let's look at the both cases - present and not present sample of the book/journal. What is the flow of events?
CSE Department, VNRVJIET

43 www.jntuworld.com

www.jntuworld.com
C When sample is not present, the user can make a reservation for it. After that library must inform the user for a free sample, when one is set free. User, than should go the the library and make a lending for that sample. I must say that free sample is kept for the user few weeks after informing it. A What if there is a free sample? C In that case emloyee who is concerned with lending (let's say - lender), must check the users data to see if user is a library member or not. If the user is a library member, he or she takes the ISBN of lended books or journals and personal data for the user, and writes them in the lending record. Also a date is writen in this record, which is stored in the lending database. Every user has a limit of books/journals to lend, and also there is a limit for time keeping of books/journals. A Do you allow employees to lend books or journals? C Yes we do. Every employee in our library has the same record as members. That we have lending records for employees too. A You said that lending records are stored in a lending database. Is this a work of "lender" or someone else do this? C Our local network doesn't consists only from searh terminals. A "lender" also has a terminal from which he or she can check for user data and free samples. Also a quick reports can be done to see which users have books to return. A Wait a minute. Our conversation gone in other direction. We started to talk about employee's duties, we didn't finished with the customers. Let's see to made a lending a free sample of the book or journal can be present in the library, and a lending record is produced after it. C That's it. I'll stress again that only paper formats can be lended, because they have a samples. Electonic formats of books and journal doesn't have a samples. In other words they have infinite number of samples, or they are present in the library everytime. A Is it possible to have no present samples of books or journals from searched user's list? Can users ask a lender to recommend them a book or journal? C Certainly lender can take a brief look at the user's history of lended books and journals, and if he or she had read a books or journals from the user's interest areas, then he or she can recommend something to the user. User can accept that or not. A This will be all for now. I think that user's diagram is done, and we can take a look at it:

CSE Department, VNRVJIET

44 www.jntuworld.com

www.jntuworld.com

Member Activity diagram corresponding to the previous interview

Discovering Business Processes 2


This lesson is extension of previous one. Now we'll give you the interview with the client - explanation of work of the employees in the library. Let's see at all given details and analyze the produces activity diagram. A In previous interview we talked about customers, and all the activities related to them, like lending, reservation, recommendation, and search. In lending and recommendation process interaction with the employees was introduced. Let's turn to the employees now, and talk about employees
CSE Department, VNRVJIET

45 www.jntuworld.com

www.jntuworld.com
which interact with clients, books and journals. Allright. The lenders were introduced in previous interview, and we see that their work is to take care of lending and returning of books and journals. They post reports to the members who have books to return, and members who have reserved books and their samples are present in the library. Is it all for the lenders? Yes. When we talk about a customers, we mentioned that for huge amount of data, some of the employees are employed. Can you tell me more about them? After buying a computers, a part of our old employees, involved in process of writing paper cards, were trained to work with computers. These DataEntry clerks now operate with some of terminals for data entering and maintenace. Also for maintenance of our databases DatabaseSpecialists were employed. If I waht to become a member to your library. What I'm supposed to do? First of all every new member must go to the reception place to conclude his or her membership. Employee that enters new memberships, opens a new record with a name and last name of the member, address and place of living and Personal Registration Number added to it. Also telephone e-mail and date of birth are stored in this record. After registration, a member's card is given to the member, and a paper record is printet for the library's documentation. How do you make data input of books and journals? Books and journals have a plenty of attributes in common. That are ISBN, title, year of publishing and publishing house. Also every item has a number of samples. Sometimes a multimedia data are supported with the item. If that is a propaganda material in paper form we convert it into electric form and put it into the database. Do you support multimedia data only for electronic items, or paper items has multimedia too? The form of the book/journal is not important. Both for paper and electronic formats we support multimedia data. Popular books in the world, can be more popular if a multimedia is supported for them. Every user is curious to meet with these types of information. If I perform a data search, can I browse the multimedia data supported for the item? And what kind of multimedia is supported? It's true. During computer's searching in returned results if an item has a multimedia data, user can browse that data. Types of multimedia which are supported are Text, Audio, Video and Picture. How do you enters a data for the book's author? I'm sorry. I forgot to tell you that authors are entered separately. For the authors name and last name, year and place of birth are inputed. During the process of book's input if the book's author is in the entered list of authors, then he or she is chosen from that list. Otherway we used an author creation process. Also for books their genre is inputed. What about a journals? For the journals volume and area are entered. You said that a parallel evidence is made (paper and electronic). How do you represent multimedia data in your paper cards? Multimedia data is entered only in electronic format. I said that paper cards are printed from electonic records, but only necessary information for cards is printed. We examined a work of lenders, employees who enters a data for authors, books, journals and members. But I don't see here a sample input. In lending process you said that free samples can be lended. How do you perform sample input? I notioned when we talk about book entering, that process of book's input also consists of inputing a number of new samples. But it is possible new samples to arrive in library, and a record for the book to exist in database. In that case only sample data is entered. This data consists of sample's signature, which only concerns the lenders (information about stored place of sample in the

A C A C

A C

A C

A C

A C A C

A C A C A

CSE Department, VNRVJIET

46 www.jntuworld.com

www.jntuworld.com
storage room). A Do you think that we have finished the employee's analysis? C Sure. We reached the end. I hope that all my spelling out all the steps in library work, makes clearer view to you about libraries like ours.

The Lender's Activity diagram gained from previous interview

CSE Department, VNRVJIET

47 www.jntuworld.com

www.jntuworld.com

The Data Entry Clerk's Activity diagram extracted from the interview

Domain Analysis
Before haveing additional interviews, the development team first must work within the context of the business-process interview. This is the job of an object modeler. The objective is to produce initial class diagram. The object modeler looks for nouns, verbs and verb phrases. Some of the nouns will become classes in the model, some will become attributes. The verb and verb phrases can become operations or the labels of associations. Let's put ourselves in the role of the modeler and start developing the class diagram. From the client's interview we can filtered out these nouns:

Move your mouse over the word list and you'll see what nouns from the list can be eliminated as an attributes, synonyms with other nouns, and nouns that represent classes out of the domain's scope.

CSE Department, VNRVJIET

48 www.jntuworld.com

www.jntuworld.com
And these verbs: go, search, lend, take, sort, print, put, do, has, have, convert, write, manage, access, read, preview, take a sample, reserve, give, inform, make, set free, check the data, recommend, post, buy, operate, maintain, conclude, browse, input Now we'll try to form some meaningful groups of nouns. One group consists of people: member, author, employee, lender, DatabaseSpecialist, DataEntry clerk. This group could stand some subdivision because everyone except the member and author are employees. Another group consists of library's items like books, journals, samples, reservation, lending. Third group consists of areas within the library: corridor, lending area, reception place. In forth group may be these nouns: member's card, data record, paper card, multimedia data, lending record.

Abstract classes partition the class diagram into meaningful groups This is the initial class diagram, next we'll discover associations between classes and produce more descriptive class diagram tha this one.

Forming Associations
Now we'll create and label associations between some of the classes. The verbs and verb phrases can help us with the labeling, but we won't limit ourselves to the ones from the interview. Labels that are somewhat more descriptive might suggest themselves. Let's start with the member first. Let's label the associations by generating phrases that characterize the associations. Here are some phrases that immidiately come to mind: The member searches the paper cards or data records. The member goes to the lending place. The member lends a sample. The member makes a reservation. The members takes a sample. The member browse the multimedia data. The member goes to the reception area. The member prints the electronic item. When we labeled out the associations, we can put multiplicities into associations lines. After this customer's class will look like this:

CSE Department, VNRVJIET

49 www.jntuworld.com

www.jntuworld.com

The member class with included multiplicities in the associations The associations for the item's (here item is standing for both book and journal) class might be the phrases from the following list: The item can be recommended to the member. The item is reserved by a member. The item (electronic) is printet by a member. The items are sorted alphabeticaly in paper cards and data records. The item has sample(s). The item has multimedia data. After filling out associations names and multiplicities, the item's class will be:

Associations with the items (books and journals) Interesting, also is the process of forming associations and multiplicities for the emplyee's class. Bear in mind that employees are also a members of the library, thus all the member's class associations can be putted into the emplyee's class, but some of the employees perform some actions that members are not allowed: The lender produces a lending record.
CSE Department, VNRVJIET

50 www.jntuworld.com

www.jntuworld.com
The lender lends an item to the member. The DataEntry clerk enters data for the books. The DataEntry clerk enters data for the journals. The DataEntry clerk enters data for the authors. The DataEntry clerk enters data for the members. The DataEntry clerk enters data for the samples. After filling out associations names and multiplicities, the lender's and DataEntry clerk's classes will be:

Associations with the lender

Associations with the DataEntry clerk Try drawing out the associations with the Author's class and Sample's class. This will be also an exercise for you given in the workshop for this day. We've been forming and naming abstract classes and associations, and another organizational dimension awaits. The next step will be finding out classes that are components of other classes. A library for instance consists of a set of parts, but for as interesting will be: corridor, lending area and reception area. Next picture shows this compozition.

Compozition in the Digital Library domain If you have some probles understanding processes of forming associations, multiplicities and compozitions, please see these lessons learned in DAY 2: Associations and Aggregations.

Filling Out the Classes


We can begin the refinement now by adding some attributes and operations. Our most important classes appear to be Member, Author, Employee, Book, Journal, and Sample. The Member In nouns list some of the nouns are appropriate to be used as member's attributes. And from vers list we can chose some of the possible operations for the member. These two lists are given in the following table:

CSE Department, VNRVJIET

51 www.jntuworld.com

www.jntuworld.com
List of attributes name lastname address date of birdth place of living PersonalRegistrationNumber telephone e-mail memberID The member class now will look as: List of operations newMember() search() lend() reserve()

The Member class The Author Lists of attributes and operations for the author will be: List of attributes name lastname date of birdth

List of operations createAuthor() bookReference()

The Author class The Employee Lender and the DataEntry clerk are childern of the abstract class Employee. First we'll assign attributes to the Employee class and the children classes will inherits them. Also we must bear in mind that every employee has a member record. This will guide us that in the Employee class list of member's attributes may appear, plus an attribute to differs employees from members. Also DataEntry clerk class will have new attribute which determines the type of data entry performing that clerk. List of attributes and operations (for Lender and DataEntry clerk) are given in fillowing table: List of attributes for the List of operations for the List of operations for the Employee class Lender class DataEntryClerk class name newMember() lastname makeLending() address newBook() date of birdth place of living returnLending() newJournal() PersonalRegistrationNumber
CSE Department, VNRVJIET

52 www.jntuworld.com

www.jntuworld.com
telephone newSample() e-mail sendReport() memberID newMultimedia() employee The structure of the Employee class with its subclasses is given on the following picture:

The Employee class and its children Try finding out an attributes and operations for the Book class. This class will be very simmilar with next - the Journal class. The Journal List of attributes and operations for the Journal class are following: List of attributes List of operations title freeSamples() volume area newJournal() publishing year publishing house makeLending() ISBN status makeReservation() numberOfSamples The "status" attribute indicates the type of the journal: electronic or paper. The Journal class will be:

The Journal class The Sample The lending process may produce lended book or journal only if a free sample of that book or journal is present in the library. For that purpose a Sample class must be present. The sample class will have
CSE Department, VNRVJIET

53 www.jntuworld.com

www.jntuworld.com
only two attributes (in this moment) - signature and status (lended or free), and one operation newSample(). The Sample class is present on next picture:

The Sample class When you're putting together interview results, business processes, and domain analyses, keep a model dictionary. This is a glosary of all the terminology in the model. It will help you maintain consistency and avoid ambiguity. Also it's not a good idea to have every detail of your class model in one hude diagram. You'll need a master diagram that shows all the connections, associations and generalizations, but it's the best to elide attributes and operations from this picture. You can turn the spotlight on selected classes by putting them in separate diagrams.

Developing the Vision


Now it's time for the team to work on the technical backbone for the Digital Library. They've got business processes and class diagrams. Can they begin with the coding now, or not? They're not even close to writing a program, first, they have to develop a vision of the system. The team will use its business process knowledge and newly acquired domain knowledge to see where infusion of technology enhances the library work. The players in this conversation are an analyst, a modeler, a librarian, a lender, a DataEntry clerk, a member and a system engineer. A facilitator runs the meeting. The facilitator distributes copies of the business process diagrams developed in previous lessons. See Discovering business processes 1, and Discovering business processes 2. This conversation is about information movement. Some of the processes in the library business depends on the movement of the information. If we can speed that movement along - something technology is really good at - we'll meet our goal. From this conversation was concluded that information movement takes place when: The member lends a book's sample The member lends a journal's sample The lender recommends a book to the member The lender recommends a journal to the member The member contracts the membership with the DataEntry clerk Next will be given a part from this conversation. Here modeler has some interesting ideas about adding new attributes in the class diagram. Let's see what is happening: Analyst Let's go to the process of lending. It was mentioned that members has time limit and copies limit for a lending. How the lender knows how many books or journals to give to the member? Lender First of all I take a look at member's lending record, and count how many items he or she has lended. Also I check the lending date to see if there is a books or journals with overloaded time limit. Modeler I've been working on my class diagrams while I've been listening to all of you. And I have some questions to ask. In the Member class, we may add new attributes like timeLimit and copiesLimit which are common for every member. Also an attribute that holds the number of lended samples - samplesLended may be introduced, and a derived attribute numberToLend, which is the difference between copiesLimit and samplesLended. Lender That's a nice idea. Then I'd know the number of allowed samples to lend to the member. Analyst What about timeLimit? Modeler We have an attribute that holds the lending time. If we add timeLimit to it, a result is aimed. Then if the result is greater than current date, we can inform the member that he or she has a time pass over for a lended book or journal.
CSE Department, VNRVJIET

54 www.jntuworld.com

www.jntuworld.com
Analyst What about multimedia data? It was said that for some of the books, journals or authors multimedia data is supported. Modeler It's a perfect time to introduce a new class in our class diagram - Multimedia. For that purpose, Multimedia class will have two attributes type (text, audio, video or picture) and file (physical location of the multimedia file) and one operation - newMultimedia(). Facilitator Analyst are you satisfied? Analyst I agree. Now things comes clearer to me. Every part of the puzzle is putted on its place. Modeler Here's another possibility. Look carefuly at the Book and the Journal classes. Both are haveing common attributes like ISBN, title, publishing year, publishing house, number of samples. They are differing in author and genre data for the book, and volume and area data for the journal. This is perfect situation for a new inheritance. Common attributes can be putted in new parent class, let's say Item. Also in this new class some of the operations can take place like: freeSamples(), makeLending() and makeReservation(). With this we can save memory space in our database. Facilitator I'm glad that we're making some optimization. Before going to the next steps, san I suggest you to look at new classes? (All agree)

Changes in the Member class. New Multimedia class and hierarchy between books and journals, the parent class is the new one - Item class Analyst During reservation process or lending process, current date must be somewhere stored. In our class diagram I don't see place in the classes where this data is stored. Please tell me where do you put information about date of lending and date of reservation? According to many-to-many association between the Sample class and the Member class, we are supposed to add a new class for that association holding the intersection data for that association. Right here we can add two new classes, the Reservation and the Lending. Here date of reservation and date of lending can take place. Also in the Reservation class an attribute for timeLimit of the reservation can be added. This is necessary for calculating the time period of holding a reservation to the member. These new classes are given in the following pictures

Modeler

CSE Department, VNRVJIET

55 www.jntuworld.com

www.jntuworld.com

New classes added in our class diagram are the Reservation class and the Lending class Analyst Allright. For this moment I think that we've resolved all the problems about classes. Now, can we move on to some ideas about what the system should specifically do? Facilitator Sure. Ideas everyone? Member I think that this sytem will be more productive if we, the members, can access to all the data in the library from home. Sometimes, when I go to the library with tought to lend some book that I realy need, I hear the Lender's words: "Sory, but we're out of free samples for that book. Can I recommend you something else?". In that moment I'm saying into me: "My chef will kill me. I spent so much time and I didn't finished my work. I hope that there will be a little bit crowd in traffic." Analyst Yes. Our system has to somehow keep the members from walking to the library so much. Obviously they have to go to the library when they made a reservation from their home and a free sample is holded for them. Also a lending process can be done if a member is present in the library. System I think we're onto something. We can allow members to access to the library's LAN Engineer directly from their homes or work offices, using the global network - Internet. Then the information would move around very quickly. Also I heed to tell you that our system will cooperate with library's LAN, but new software will be implemented everywhere. Analyst The system you're talking about would resolve a number of issues. Like data search from home and makeing a reservation for a book or journal from your home or office. I'll have a feeling that I'm in the library and using their local area network and I don't care for a free terminal. Member That's beautifull. When I have a lot of work to do, I can turn on my computer, make a connection with the library and search the data to find out a free sample of books or journals I need to lend. But from library's network I can't make a reservation for a book of journal. How can I make a reservation from my home or office? System We are going to implement a Web interface that allows you to access data stored in the Engineer library's database, and allows you to make a reservation from your home or office by clicking a button that sends a message from your computer with your personal data and book's data that you want to reserve. This message will open a new reservation record in our database holding the data until you get your reservation, or time limit is oversteped. Member But how can my computer know my personal data? System First of all, Web interface can be used only be library's members. In our class diagram we Engineer have memberID - number printed on your member's card with all the neccesary personal data. When you search the data you make a selection of books/journals to reserve. This list is also sent when you click the button. But if you aren't a member in the library, first that you must do is to make a library's membership. Librarian Is it possible some of our employees to access the system if they aren't present in the library too? System Of course. Data entry clerks can do their job even if they are not present in their work Engineer offices. They can access the database data from every place in the world that has a computer and Internet connection. Librarian How are you going to make this happen? System Let's don't worry about that right now. Very soon you'll find out how this will be realized. Engineer Facilitator So we're all set, then? Our system will incorporate the library's local area network and Internet. Now is time to give a name for our system. System How about Digital Library.
CSE Department, VNRVJIET

56 www.jntuworld.com

www.jntuworld.com
Engineer Facilitator Can we all agree with Digital Library? (All agree) Facilitator Okay. I think our work here is done.

JAD Session
Now that the team has a vision for the system, can the programmers program and the system engineers engineer? Absolutely not. The team must center the Digital Library system around the user's needs, not around nifty technology. Altough they have a few insights from the team meeting, they haven't exposed the Digital Library concept to a group of employees and end users - the members, to get feedback and ideas from the user's point of view. The next GRAPPLE action does just that. In a Joint Application Development session, the team will gather and document system requirements. The JAD session takes place in conference room. Led by a facilitator, it's called a joint because it includes members of the development team along with potencial system users and domain experts. The development team members are analyst, a modeler, two programmers and a system engineer. The potential users are two members, a lender, two data entry clerks and a librarian. This meeting will produce a package diagram that shows the major functionality of the system. This session starts with a facilitator's speech about the Digital Library concept. The structure of a Digital Library system is represented on this picture, which is given to all the participants in the meeting.

The physical structure and connections between components in the Digital Library The group starts their conversation by figuring out what the major pieces of functionality should the system had. It was decided to use following functionality of the system:

CSE Department, VNRVJIET

57 www.jntuworld.com

www.jntuworld.com

The packages of functionality for the Digital Library Next will be given a part of the meeting conversations between some of the participants: Facilitator Now that we have the major pieces, does anyone have a preference as to where to start? Member1 How about the Member part? Facilitator Sounds good. Alright, what kinds of functionality would you waht to see in this package? Remember, group, just because we're doing a piece that happens to not coincide with your particular job, you can still participate. everyoune's insights are welcome. Member1 I like to perform a search from my home and selected books and journals reserve until I go to the library and lend them. Facilitator Okay. What else? Member2 I want to print electronic books and journals directly from my office. Analyst By the way I don't see any information about electronic items in our class diagram. How can we manage these items? Modeler You're right. In the Item class we must add new attributes for an electronic books/journals. A status will be one. With this one we can check the type of the item (electronic or paper). Also we must add an attribute that holds the location of the electronic item (on the local storage device or on Internet). This attribute will be named as link. Facilitator Has anyone had another kind of functionality to add? Member1 I want to take a list of recommended books and journals onto my computer. Facilitator OK. You'll notice that I'm writing these in labeled ellipses. We refer to these as use cases. We'll be asking some of you to come back and help us analyze those use cases, but that's another meeting. When JAD session has finished, participants had a set of requirements that appear as use cases arranged in the packages. The list of uses cases for every package is given to you. The member package use cases: transmit the reservation to the library's enter data for searching database transmit the data to the library's database receive notification from library's database retreive a list of items take a list of recommended books make a reservation for some of them take a list of recommended journals The book package use cases: select an author check for reservations receive an author data receive number of reservations enter data for a new book find out the oldest reservation edit data for an existing book make a reservation enter multimedia data receive notification for reservation receive notification from multimedia adding make a lending check for free samples transmit lending data receive number of free samples receive notification for lending
CSE Department, VNRVJIET

58 www.jntuworld.com

www.jntuworld.com
The sample package use cases: add new sample receive a request for free samples set it free return number of free samples edit data for an existing sample The reservation package use cases: receive a request for reservation transmit a reservation result to the member perform a reservation delete a reservation The lending package use cases: receive a request for new lending receive a request for returning a lending perform a lending return a lending transmit a lending result to the lender and transmit a result to the lender book delete lending check for reservations receive oldest reservation transmit information for reservations The author package use cases: enter new author receive request for author's data edit old author's data transmit data to the book The lender package use cases: enter new lending perform a lending return receive notification from lending receive a result from returning a lending For exercise try adding the use cases in DataEntry clerk package, Multimedia package, and to the Journal package. Click here to see how will look our functionality package diagram filled with use cases!

CSE Department, VNRVJIET

59 www.jntuworld.com

www.jntuworld.com

In a JAD session, the development team meets with potential users and domain experts to gather the requirements for the system. The result is a package diagram in wich each package represent a major piece of functionality. Use cases inside a package elaborate on the functionality.

Analysis of the system


We've finished the requirements gathering process for the Digital Library model. During this day an analysis of the Digital Library model will be done. First we'll meet with use case analysis, after what a use case diagram for every package will be gained. Next we're going to discover and analyze an icteractions among objects in the Digital Library system, and we'll produce collaboration diagrams. And at the end of the day we'll examine the interactions between our Digital Library with existing systems, like Library's local network, and we'll produce detailed deployment diagram, and a few user interfaces will be introduced. Let's start with the work, and learn the material given in this, the last day, of UML course.

Developing the Use Cases


The use cases from the package diagram in JAD Session lesson from DAY 5, give a good picture of what the system will have to do. The team will have to flesh out each one. They've moved gradually from understanding the domain to understanding the system. The use cases have provided the bridge. At no point in the JAD session did the development team discuss how the system would accomplish all the activities specified in the panolopy of use cases. The idea was just enumerate all the possible use cases. As the use cases become fleshed out in this hour, notice how the components of the
CSE Department, VNRVJIET

60 www.jntuworld.com

www.jntuworld.com
Digital Library system start to materialize. At this point in the development effort, the system begins to take center stage. To analyze the use cases, we have to run another JAD session. The discussion in this JAD session is intended to derive analysis for each use case. The use case JAD session is usually the most difficult one, as it calls for the participants - potential users of the finished system - to become analysts. In their own niche, each one is a domain expert, and you have to tap into their expertise. Typically, they're not used to either verbalizing or analyzing what they know. It's also probably true that they haven't been part of a system design effort before, and they may be uncomfortable with trying to specify what a system should do to help them do their work. The system-related steps in the scenario are extremely important. They'll show how the system is supposed to work. When the JAD session participants tell us these steps, they're telling us, in efect, what the system will ultimately look like. After this JAD session, we should have a good idea about the components of the system. In Introducing a Use Case Model lesson in DAY 2, we see that each use case is a sequence of scenarios, and each scenarion is a sequence of steps. For each scenario in each use case, we'll want to show: A brief description of the scenario Assumptions for the scenario The actor who initiates the use case Preconditions for the use case System-related steps in the scenario Postconditions when the scenario is complete The actor who benefits from the use case Use cases that we're going to examine are numerous. That's why when we're performing an use case analysis number of them will be examined in detail, and the rest of them will be given to you as an exercise. Now let's dive into process of analysis the use case.

The Use Case Analysis 1


In this lesson we'll meet with the process of analysis of the use cases. We're going to examine a member's package of use cases and a book's package of use cases. The rest of them are given to you, to try yourself in the use case analysis. The Member package

The Member's package of use cases developed in earlier stages of the system analysis - Enter data for searching
CSE Department, VNRVJIET

61 www.jntuworld.com

www.jntuworld.com
The good-one sentence description for this use case may be: The member enters a data for serching into search form. Here initialing actor will be Member, which is also a benefiting actor. The assumptions are that a member wants to find out books or journals. Another assumption is that the Digital Library's interface has a form dedicated for search data entry. The precondition is that a member has a necessary data to make a search. The postcondition is that a member enters necessary data into Digital Library. The steps in the use case are: From the Library's LAN or from home/office, the member activates the user interface for search entry. The search form appears on the screen. The member enters necessary data patterns into search form. - Transmit data for searching The description for this use case may be: Take a data pattern entered in search form, and send it to the Digital Library's database search engine. The assumptions are that we have communication via the Internet or library's LAN, and we have a search form in the member's interface. We must make repetitions of some of the assumptions, because each use case will eventually appear on a separate page in the design document, which will serve as a reference about the system. The precondition is entered data pattern in search form, the postcondition is that the data pattern has arrived in the Digital Library database search engine. The steps in the use case are: Click on the SUBMIT button on the search form. Activate the transmiting mechanizam for data in network(s). The data pattern arrives in Digital Library database search engine. On the member's screen appears a message that data has been sent, and to wait a moment during receiveing the data. Because this use case is related to the previous one, we must make a change to the Member package. It has to show <<include>> dependency between this one and "Enter data for searching" use case. - Take a list of searched items This one use case is the last part for completion the searching process. Description here is: Receive a list of book or journals, after entering a data in search form and send it to the Digital Library database. The assumptions are that a member uses a search form, and a communication via network(s) is good. The precondition is clicked SUBMIT button on search form, and the postcondition is printed list of items on the member's screen. The actor here again is Member. The steps of this use case are: Wait until search is performed (in paralell a Digital Library search engine performs a search). Digital Library database transmits a list of items to the member's interface via the network(s). The member receives a list of items satisfying entered search-data pattern. Inclusion also appears in this use case. <<include>> joins this use case with the previous one. - Make reservation
CSE Department, VNRVJIET

62 www.jntuworld.com

www.jntuworld.com
Description for this use case will be: The member wants to make a reservation for the item gained from searching process or recommendation process. As you can see this use case depends on two different use cases - search and recommendation. Thus reservation process may take place only when one of these two processes take turn. Thats because an inclusion is presented between these three use cases. The assumptions are a list of items, and a button for reservation. The precondition is clicked RESERVE button, and a postcondition is transmited reservation record to the Digital Library. The steps of this use case are: The member receives a list of items (from searching or from recommendation) The member clicks the RESERVE button for the items that he or she wants to reserve The member fills in the information in the form that appears for the reservation - Transmit reservation This use case wouldn't be explained in detail, because it is almost the same with the "transmit the data for searching" use case. Only we'll say that this use case is related with "make reservation" and "receive notification" use cases. The connection is <<include>>. - Receive notification Description is: After pressing the SUBMIT button in the reservation form, a notification from the Digital Library must arrive that the reservation has been accepted, and infrom the member with the status of reservation. Here status of reservation is for haveing or not a free sample for reserved item. If a free sample is present how many weeks it'll be holded for the member. The assumptions are good communication in the network(s) and clicked SUBMIT button. The precondition is clicked SUBMIT button, and a postcondition is received status of reservation The steps of this use case are: Wait until notification is received Transmit the necessary information via the network to the member's interface Members receives the status of reservation - Take a list of recommended items Description is: The member activates the recommendation part of the system, and gets a list of recommended items The assumptions are clicking the RECOMMEND button, and a working recommendation algorithm. The precondition is clicked RECOMMEND button, and a postcondition is received list of items. The initiating and benefiting actor is Member. The steps of this use case are: Activate the recommendation part from the user's interface. The Digital Library activates a recommendation algorithm which produces a list of items. Print this list of items to the member's screen.

CSE Department, VNRVJIET

63 www.jntuworld.com

www.jntuworld.com

The updated use case diagrams for the Member package

The Use Case Analysis 2


Now let's take look at the Book package use cases, and analyze them separately. The Book package

The Book package of use cases developed in earlier stages of the system analysis - Enter data for a new book Description: Fill in the data in book's entry form. Initialing actor is DataEntry clerk. Assumptions: Activated entry form in the DataEntry clerk's interface, and entered information. Precondition is new book's data. Postcondition is entered data into Digital Library database. The steps are: From the library's LAN or from internet the DataEntry clerk activates an interface for a book's entry. The form appears on the screen.
CSE Department, VNRVJIET

64 www.jntuworld.com

www.jntuworld.com
The clerk enters necessary information. - Select an author Description: Select a book's author from the author list. Initialing actor is DataEntry clerk. Assumptions: There are author records in the database, and user makes a selection from that list. Precondition is book's author data. Postcondition is selected author's data. The steps are: In data entry form for the book, a clerk selects one author from the list of authors. This information is send to the database. Searching is performed into the database for that information. An inclusion may be introduced here. This use case includes steps from "edit data for an existing book" use case and from "enter data for a new book" use case. - Retreive author's data Description: Receive all the necessary information about the selected author in previous use case. Assumptions: User has made a selection from the author's list. Precondition is selected author. Postcondition is retreived author's information. The steps are: After searching, database selects the record for that author and extracts necessary information about the author. Sends that information to the book's data entry form. Prints the information onto the user's screen. This use case includes the "select an author" use case. - Enter multimedia data Description: If the book has a multimedia data, then it is entered into the book's record. Assumptions: Book has a multimedia data, and a multimedia file(s) is(are) saved somewhere in the server. Precondition is book has a multimedia data and a MMEDIA button is clicked. Postcondition is entered multimedia data. The steps are: If book has a multimedia data, a MMEDIA button is clicked, and a entry form appears on the screen. User enters type of multimedia data, and a location on the server where that data is saved. SUBMIT button is clicked and multimedia record is transmited to the database. An inclusion may be introduced here. This use case includes steps from "edit data for an existing book" use case and from "enter data for a new book" use case. - Receive notification from multimedia adding Description: After filling the multimedia entry form, database sends a message how succesfull was performed a process of adding new multimedia data. Assumptions: Filled multimedia data entry form, good communication via network, and existing multimedia file. Precondition is transmited multimedia entry form to the database.
CSE Department, VNRVJIET

65 www.jntuworld.com

www.jntuworld.com
Postcondition is received status of this transaction. The steps are: The multimedia data arrives into the database, and a process of creation of new record is started. This process may finish with a result, or may end with failure. The type of ending of the creation process is returned to the book's data entry form. This use case is inclusion of previous one - "enter multimedia data" use case. - Edit data for an existing book Description: If a wrong information is entered for some book, it is possible to change that information. Assumptions: Existing book's record for changeing, and clicked EDIT button. Precondition is false entered information into book's record. Postcondition is changed book's record. The steps are: User clicks the EDIT button and filled form with the old book's information appears on the screen. False information is selected and changed. If an author's information or multimedia information has to be changed, the same process like entering new data is repeated. - Make a reservation Description: Member wants to reserve a sample for the book, and after that a lending can be performed in the library. Assumptions: Book must be present in the retreived list of books during the search or recommendation process, books must have samples present in the library. Precondition is Member wants to make a reservation for a book. Postcondition is book's necessary data and member's necessary data are transfered to the Digital Library. The steps are: Member clicks the RESERVE button and fills in the necessary information to perform a reservation. The Digital Library database receives request for reservation. The steps of checking the data with database records are made. Digital Library checks for free samples, and performs a new reservation. After that a wait period is introduced, while the notification from the reservation is achieved. - Receive notification from reservation Description: After clicking the RESERVE button, and filling the form, Digital Library receives a request for a reservation, and after performing a reservation process, a status message is received. Assumptions: RESERVE button, and sent request for reservation. Precondition is clicked RESERVE button. Postcondition is reservation status. The steps are: The status of performing a new reservation is achieved. This status is sent trough the network to the user. Meggase about status of reservation is printed on the screen. This use case includes "make a reservation" use case.
CSE Department, VNRVJIET

66 www.jntuworld.com

www.jntuworld.com
- Check for free samples Description: Count how many samples from that book are available, and return that number to the reservation process. Assumptions: request for reservation, sample(s) for the book. Precondition is new reservation. Postcondition is number of free samples The steps are: Receive a request for a number of free samples. Count the available samples (those one with status="available"). Sent that number to the Digital Library. This use case includes "make a reservation" use case. - Return number of free samples Description: Gives a number of free samples. Assumptions: samples of that book, request for number of free samples. Precondition is request for number of samples. Postcondition is transmiting the number of free samples The steps are: Receive the transmited number of free samples. Check the result to determine the reservation status. Transmit the reservation status to the Digital Library. This use case includes "check for free samples" use case. - Make a lending Description: Member wants to lend a book. Assumptions: user must be present in the library, book must be in paper form, a free sample for the book must be available. Initiatin actor is Lender and benefiting actor is Member. Precondition is request for lending. Postcondition is transmited lending request to the Digital Library. The steps are: Lender activates interface for makeing and returning a lending. Lender enters data for the sample and the member in the lending data entry form. After pressing the LEND button a new lending process is activated. - Receive notification for lending Description: After pressing the LEND button in the lending form, a new reservation record is writen to the database, and the result of this transaction is returned to the lender's interface. Assumptions: communication via network, and LEND button present in the interface. Precondition is entered data in lending form. Postcondition is status of performed transaction. The steps are: Wait until lending process ends, and receive a lending result status. Transmit the status via network to the lender's screen. If there are free samples, member gets one. This use case includes "make a lending" use case. Another use cases related to the lending process are:
CSE Department, VNRVJIET

67 www.jntuworld.com

www.jntuworld.com
Receive number This use case take place when new lending record is created. If a book has a of reservations pending reservations (free samples with status="reserved" are available), and no free samples with status="available" are present, then lending process must fail. Check for If a member has a reservation for a book's sample, then if a holded sample is reservation available, the member takes that sample, else a lending process will fail. Find out the This use case is used in the process of updating reservation records. When a oldest member make a request for a reservation and there is no free sample, then reservation when only one sample is set free, this use case take place and finds out the oldest reservation for that book, and sets the sample's status from "available" to "reserved". Sample can be set free when it is returned from a user who lends it. Inclusions that appears here are between: "make a lending" and a "check for reservation" use cases; "make a lending" and a "receive number of reservations" use cases.

The updated use case diagrams for the Book package Analyzing the use cases has helped conceptualize the working parts of the system. Although we know a lot about the use cases, we still have to model how those working parts will interact with one another and how (and when) they change state. Passing this information to the programmers will make their jobs a lot easier. They will have a vision of how to code classes and make them wotk together. See Interactions in the System.

Refine the Class Diagram


Now is the time to complete our class diaram. We will analyze every class gained from previous analysis. It is obvious to have a deleting process invert to the creation process. This is said because in almost every class we have a creatind operation (in Object Oriented programming known as constructor), therefore an operation for deleting an object must be obtained in every class (in Object Oriented programming this is known as destructor). A new attributes must be added for a Member class. They are alias, password and status. Alias and password will serve as an attributes for logging onto the system. It is obvious that Internet interface will allow a lot of people to access the Digital Library, but only those who have contracted membership with the library, can browse the data, make reservations and printing the electronic items. The Status attribute is introduced to distinguish between ordinary member and library employee-member. We said that every employee also can be a member of a library.

CSE Department, VNRVJIET

68 www.jntuworld.com

www.jntuworld.com
New operations for the Item class can be introduced according to the previous use case analysis. This operations are findOutTheOldestReservation(), checkForReservation() and receiveNumberOfReservations(), and they are described in previous lesson. If we take a look at Member class attributes, Employee class attributes and an Author class atributes, we'll see that most of them are comon for these three classes. Therefore an inheritance may be introduced. We will create hew class Person wich will hold name, lastname and date of birdth attributes. Description for classes is not longer necessary, because you are going to see all the classes with their last and final state. They are presented in the following list of classes.

The Lending class

The parent class Person with it's children

The Multimedia class

The Reservation class

CSE Department, VNRVJIET

69 www.jntuworld.com

www.jntuworld.com

The Item class hierarchy

The Employee class and it's children

The Sample class

Click Here to see associations between these classes!

Interactions in the System 1


One way to find out the interactions in the system is to enumerate the system components suggested in each package of use cases. The task to perform is to show how the system components interact in order to complete each use case. Altough we didn't explicitly analyze all the use cases in all the packages in the previous lessons, we can still extract the system components those use cases assume. Let's start to reanalyze the packages that were analyzed in previous lessons. That were the Member package and the Book package. We're going to find interactions between components of these packages, but only for reservation and lending process. Because this course is too short to comprise all the interactions between components, we'll analyze only these two interactions, and a rest of them you'll need to do like an exercise in the workshop part of the day. The Member package The member package use cases: transmit the reservation to the library's enter data for searching database transmit the data to the library's database receive notification from library's database retreive a list of items take a list of recommended books make a reservation for some of them take a list of recommended journals Let's exsamine again the process of reservating the book. Suppose that you have to reserve a book from retreived list of recommended books. Now let's look at the steps necessary to perform these operations.

The part of use case diagram in the Member package - Take a list of recommended books The steps of this use case are:
CSE Department, VNRVJIET

70 www.jntuworld.com

www.jntuworld.com
1 Activate the recommendation part from the member's interface. 2 After clicking the RECOMMEND button on the interface, a signal is sent to the Digital Library, to activate the recommendation algorithm. 3 The Digital Library activates a recommendation algorithm* which produces a list of recommended books. 4 The Digital Library sends this list of books to the member's interface. 5 Print this list of items to the member's screen. * For the purpose of Digital Library a special algorithm for recommendation is developed. If you need some detailed information about this algorithm
please refer to the webmaster of this course.

To activate the reservation process, a RESERVE button must be obtained beyond every item in the list. Pressing this button another use case sequence is activated. This sequence includes "make reservation" use case, "transmit reservation" use case, and "receive notification" use case. The steps for everyone use case are given in following tables: - Make reservation 1 2 3 4 1 2 3 4 The member receives a list of items (from searching or from recommendation) The member clicks the RESERVE button for the items that he or she wants to reserve The form for acknowledging a reservation appears The member fills in the information in the form

- Transmit reservation Click on the SUBMIT button on the reservation form. Digital Library transmits the reservation request to the Reservation database. The request arrives in the Reservation database. On the member's screen appears a message indicating "request sent", and a message " wait to receive acknowledge". Before going to the "receive notification" use case we'll take a look at Reservation package use cases. A "new reservation" and "transmit notification" use cases will take part at this process of interactions. - New reservation 1 A request arrives in the Reservation database, and the process of creation new reservation is activated. 2 Result of this process is status of reservation, which is sent to the Digital Library. 3 Send the status of reservation to the Digital Library. - Transmit notification 1 Digital Library sents the status of reservation to the member's interface. 2 Status arrives in the member's side. - Receive notification 1 Member's interface receives arrived status. 2 Status is decoded. 3 A message is printed on the member's screen according to the decoded status of reservation.

CSE Department, VNRVJIET

71 www.jntuworld.com

www.jntuworld.com

The sequence diagram for reservation process of recommended book As you can see some of use case steps are modified. These modifications are example of the way one phase of a project can influence another. Note also the state changes on the first lifeline. It's intended to clarify how the user interface sets up to handle a particular kind of activity. We could include all the possible state changes as separate state diagrams, but this would be overkill. Putting them on the sequence diagrams appears to be more economical.

Interactions in the System 2


Suppoose that member wants to lend a book. First of all, member must be present in the library, the book for lending must be in paper format, and a free sample must be present in the library's storage. If all of these conditions are realized then a sample of book can be lended to the member. To avoid going to the library and search for free sample, the member can perform a reservation to the Digital Library system, and after receiving a notification that a free sample for the reservation is present in the library, can go to the library and make his or hers lending. Let's look at use cases in the Book package necessary for this operation. The Book package The book package use cases: select an author check for reservations receive an author data receive number of reservations enter data for a new book find out the oldest reservation edit data for an existing book make a reservation enter multimedia data receive notification for reservation receive notification from multimedia adding make a lending check for free samples transmit lending data receive number of free samples receive notification for lending For process of lending we'll need these use cases: "make a lending", "transmit lending data", "receive number of reservations", "check for reservation" and "receive notification from lending". Let's take a look at steps of every use case. - Make a lending 1 Activate the make/return lending part from the lender's interface. 2 A lending form appears on the lender's screen.
CSE Department, VNRVJIET

72 www.jntuworld.com

www.jntuworld.com
3 The lender enters the necessary data. 4 Lending data are transmited to the Digital Library - Transmit lending data 1 The lender clicks the SUBMIT button on the lending form, and lending data is sent to the Digital Library 2 The Digital Library receives this data, and a request for new lending is sent to the Lending database 3 The request is sent to the Lending database, and an acknowledge is waited to receive When data is transmited to the Lending database, a mechanizam for adding a new record in the database is activated. This operation incorporates these use cases located in the Lending package: "receive request for new lending", "perform a lending" and "transmit lending result". When performing a lending, also results from the Book package use cases are obtained. This process needs results for pending reservation made by that member for that book, and this will be done only if a result from "receive number of reservations" use case is not equal to zero. Checking for pending reservations is necessary, because if a reservation is made for a book ( a sample for that book is holded for the member), then when a lending is done, that reservation from Reservation database must be deleted. - Receive request for new lending 1 The Lending database receives a request for performing a process of creating a new record 2 This activates the process of creating and adding a new record to the database - Perform a lending 1 Database has activated its mechanizams for creating a new record 2 The result of creation a new record is aimed 3 This result is sent to the Digital Library - Transmit lending result 1 Result from lending is sent to the Digital Library 2 This result is transmited to the lender's interface Now we can continue with use cases from the Book package: - Receive notification from lending 1 Lender's interface has received result from lending 2 This result is decoded, and a message is printed on a screen 3 A request for current state in the member's lending record is sent to the Lending database 4 A list of records is retreived form the Lending database 5 This list is printed on the lender's screen The sequence diagram for these use cases steps is shown on the next picture:

CSE Department, VNRVJIET

73 www.jntuworld.com

www.jntuworld.com

The sequence diagram for "Make a lending" As you can see some of use cases in the given list were not used for this purpose. They are internaly used in the activation of object in the Lending database. The operation for creation a record incorporates these use cases, and after that returns a result, that is dotted line message going out from the activation in the LendingDB lifeline. For an exercise try drawing out the sequence diagrams for "return a lending" use case from the Book package, and for "enter data for a new journal" use case from the Journal package. After you model interaction among components, the system is much closer to becoming reality. As you model the interactions, you may find that it's appropriate to modify the use cases at the base of these interactions. The results of this analysis should make it easy for programmers to code the system objects and how they communicate with one another.

Analyze Integration with Cooperate Systems


After the GRAPPLE analysis segment has produced the generel concept of the Digital Library system, a system engineer will strat thinking about how the physical structure should look. He or she will start considering alternative network topologies and how to implement them, and will start figuring out which software components belong on which nodes in the network. The development team have made decision that a library local network will take part in the Digital Library system, and that an Internet interface will be implemented on the LAN's server. First let's look at the physical architecture of the library's local area network.

CSE Department, VNRVJIET

74 www.jntuworld.com

www.jntuworld.com

The Deployment diagram for the library LAN As you can see from this deployment diagram, library LAN consists from these hardware components: Component name Amount Server 1 DataEntry PC 2 Lender's PC 1 Search terminal 6 Passive hub 2 Server and DataEntry PCs are located in the same room, also one Passive hub is located in that room. A cable from this passive hub goes out from the room, to the corridor. There another passive hub is located. From this hub cables goes to the Search terminals located in the corridor, and to the Lender's PC located in the Lending area. When we have a physical architecture in front of us, let's look at possibility od implementing an Internet interface on the Server. This interface will be used locally from the Search terminals, from Lender's PC and from DataEntry PCs and trough the Internet from member's homes or offices. Therefore a new hardware must be implemented in the library's LAN. Library's LAN will have the same structure. New hardware will be added only to the Server's side, and that is a Network Interconnection Facility (NIF). The NIF consists of a name server (a database that validates connections), a router (a device for linking networks together), and a gateway (a device for translating information from one communication protocol to another). The gateway allows Internet members to access the Digital Library from home or from their office. On the member's side only a computer with Internet connection, and Internet browser is necessary. Also a member must have an alias and password to make access to the Digital Library's Web page. To ilustrate the deployment, the System Engineer delivers the deployment diagram shown on the following picture:

CSE Department, VNRVJIET

75 www.jntuworld.com

www.jntuworld.com

The Deployment diagram for the Digital Library system

Designing Look (GUI)


You've come trough a lot of use-case driven analysis. Now you're going to look some of aspects of system analysis. They are traceable to use cases, and both are extremly important to the final product. Graphical User Interfaces (GUIs) determine system usability. Let's dive into GUI desing process. Some General Principles of GUI Design User interface design, equals parts art and science, draws upon the vision of the graphic artist, the findings of the human factors researcher, and the intuitions of the potential user. Some general principles in GUI design are: 1. Understand what the user has to do. User interface designers typically perform a task analysis to understand the nature of the user's work. Our use case analysis roughly corresponds to this. 2. Make the user feel in control of the interaction. Always include the capability for the user to cancel an interaction after it's started. 3. Give the user multiple ways to accomplish each interface-related action (like closing a window or a file) and forgive user errors gracefully. 4. Because of cultural influences, our eyes are drawn to the upper-left corner of a screen. Put the highest priority information there. 5. Take advantage of spatial relationships. Screen components that are related should appear near one another, perhaps with a box around them. 6. Emphasize readability and understanding. Use active voice to communicate ideas and concepts. 7. Limit the number of colors you use. Limit that number severely. Too many colors will distract the user from the task at hand. 8. If you're thinking of using color to denote meaning, remember it's not always easy for a user to see an association between a color and a meaning. 9. As is the case with the color, limit your use of fonts. Avoid italics and ornate fonts. 10. Try to keep components (like the buttons and list boxes) the same size as much as possible. If you use different-size components, a multiplicity of colors, and a variety of fonts, you'll create a patchwork that GUI specialists call a clown-pants design. 11. Left-align components and data fields - line them up according to their left-side edges. This minimizes eye movements when the user has to scan the screen. 12. When the user has to read and process information and then click a button, put the buttons in a
CSE Department, VNRVJIET

76 www.jntuworld.com

www.jntuworld.com
column to the right of the information or in a row below and to the right of the information. This is consistent with the natural tendency to read left to right. If one of the buttons is a default button, highlight it and make it the first button in the set. The GUI JAD Session For this session, you recruit potential users of the system. For the Digital Library we'd recruit members, lenders and data entry clerks. The users' participation in the session is a two-part affair. In the first part, they derive the user interface screens. In the second, they approve prototypes generated by the development team. How the users derive the screens? The facilitator suggests a use case to strat from, and the users discuss ways to implement that use case via the system. When they're ready to start talking at the level of a specific screen, the users work with paper mockups. The facilitator provides a large sheet of easel paper in landscape view to represent the screen. Post-is note stickies represent the GUI components. The users' task is to work as a group to position the components appropriately. When they reach agreement on which components should be on a screen and where those components should be located, development team members create prototype screens. As they work, they use appropriate GUI principles. Then, they present those screens on computers, and the users make any necessary modifications. It's your turn to draw out the users' screens. Let your imagination and GUI principles guide you when constructing these screen shots. To make your work easier a set of UML diagrams for the member, lender and data entry clerk screens are given to you. Look at these diagrams and draw out necessary screen shots. DataEntry clerk's diagrams are too large and complex, and if you want you may draw out these screen shots or not.

The UML state diagram for the Member interface

The UML composite diagram for the Member screen hierarchy

CSE Department, VNRVJIET

77 www.jntuworld.com

www.jntuworld.com

The UML state diagram for high-level screen flow in the Employee interface

The UML composite diagram for the Employee-Lender screen hierarchy

Something About Implementation of Digital Library


When all appropriate analysis and design parts of GRAPPLE are complete, the team complies its result into a design document and hads off copies to the client and to the programmers. It then falls to the programmers to start turning the design into code.After writing the code it will be teste, rewriten according to the results of the tests, and retested - a process that will continue back and forth until the code passes all tests. The use case analysis forms the basis of the tests. The one possible implemented Digital Library that you'll wisit after today's workshop, is coded in Jasmine OODBMS. Jasmine is used because it is Object Oriented language, has possibility of adding Multimedia data into your database, and allows you to create stand alone applications, or applications that have Web interfaces. Other agvantages of using Web interface are client software shouldn't be installed to the client's machine (client only should have an Internet browser) and Web software doesn't depend on the hardware platform that runs on. The Server side in the deployment diagram developed for the purpose of Digital Library, now will look like:

CSE Department, VNRVJIET

78 www.jntuworld.com

www.jntuworld.com

The server node with part of its components * The Jasmine OODBMS and WebLink are parts from the Jasmine package. With Jasmine OODBMS we created necessary classes, and with
WebLink we implemented the web interface.

Document specialists begin creating documentation for the system, and they create training materials as well. A godd document creation effort should proceed like a good system development effort, with careful planing, analysis, and testing, and should begin early in the development process. The main idea of modeling one system is to focus intense efforts on analysis and design so that implementation confronts as few challenges as possible and the result of the project is a system that fully meets the client's needs.

A class model is comprised of one or more class diagrams and the supporting specifications that describe model elements including classes, relationships between classes, and interfaces. There are guidelines for: 1. 2. 3. 4. 5. 6. General issues Classes Interfaces Relationships Inheritance Aggregation and Composition

1.

General Guidelines

Because class diagrams are used for a variety of purposes from understanding requirements to describing your detailed design you will need to apply a different style in each circumstance. This section describes style guidelines pertaining to different types of class diagrams.

CSE Department, VNRVJIET

79 www.jntuworld.com

www.jntuworld.com Figure 1. Analysis and design versions of a class.

Figure 2. Modeling association classes.

1. 2. 3. 4. 5. 6.

Identify Responsibilities on Domain Class Diagrams. Indicate Visibility Only On Design Models. Indicate Language-Dependent Visibility With Property Strings. Indicate Types Only On Design Models. Indicate Types On Analysis Models Only When The Type is an Actual Requirement. Design Class Diagrams Should Reflect Language Naming Conventions. In Figure 1 you see that the design version of the Order class uses names that conform to common Java programming conventions such as placementDate and calculateTaxes(). 7. Model Association Classes On Analysis Diagrams. Figure 2 shows that association classes are depicted as class attached via a dashed line to an association the association line, the class, and the dashed line are considered one symbol in the UML. 8. Do Not Name Associations That Have Association Classes. 9. Center The Dashed Line of an Association Class.

CSE Department, VNRVJIET

80 www.jntuworld.com

www.jntuworld.com

2.

Class Style Guidelines

A class is effectively a template from which objects are created (instantiated). Although in the real world Doug, Wayne, John, and Bill are all student objects we would model the class Student instead. Classes define attributes, information that is pertinent to their instances, and operations, functionality that the objects support. Classes will also realize interfaces (more on this later). Note that you may need to soften some of the naming guidelines to reflect your implementation language or software purchased from a third-party vendor. Figure 3. The OrderItem class with and without scaffolding code.

Figure 4. Indicating the exceptions thrown by an operation. + findAllInstances(): Vector {exceptions=NetworkFailure, DatabaseError} 1. 2. 3. 4. 5. Use Common Terminology for Names Prefer Complete Singular Nouns for Class Names Name Operations with a Strong Verb Name Attributes With a Domain-Based Noun Do Not Model Scaffolding Code. Scaffolding code refers to the attributes and operations required to implement basic functionality within your classes, such as the code required to implement relationships with other classes. Figure 3 depicts the difference between the OrderItem class without scaffolding code and with it. 6. Never Show Classes With Just Two Compartments 7. Label Uncommon Class Compartments 8. Include an Ellipsis ( ) At The End of Incomplete Lists 9. List Static Operations/Attributes Before Instance Operations/Attributes 10. List Operations/Attributes in Decreasing Visibility 11. For Parameters That Are Objects, Only List Their Type 12. Develop Consistent Method Signatures
CSE Department, VNRVJIET

81 www.jntuworld.com

www.jntuworld.com 13. Avoid Stereotypes Implied By Language Naming Conventions 14. Indicate Exceptions In An Operations Property String. Exceptions can be indicated with a UML property string, an example of which is shown in Figure 4.

3.

Interfaces

An interface is a collection of operation signature and/or attribute definitions that ideally defines a cohesive set of behaviors. Interfaces are implemented, realized in UML parlance, by classes and components to realize an interface a class or component must implement the operations and attributes defined by the interface. Any given class or component may implement zero or more interfaces and one or more classes or components can implement the same interface. Figure 5. Interfaces on UML class diagrams.

1. Interface Definitions Must Reflect Implementation Language Constraints. In Figure 5 you see that a standard class box has been used to define the interface PersistentObject (note the use of the <<interface>> stereotype). 2. Name Interfaces According To Language Naming Conventions 3. Apply Lollipop Notation To Indicate That A Class Realizes an Interface 4. Define Interfaces Separately From Your Classes 5. Do Not Model the Operations and Attributes of an Interface in Your Classes. In Figure 5 youll notice that the Shipment class does not include the attributes or operations defined by the two interfaces that it realizes. 6. Consider an Interface to Be a Contract

4.

Relationship Guidelines

For ease of discussion the term relationships shall include all UML concepts such as associations, aggregation, composition, dependencies, inheritance, and realizations in other words, if its a line on a UML class diagram well consider it a relationship. Figure 6. Shipping an order.
CSE Department, VNRVJIET

82 www.jntuworld.com

www.jntuworld.com

Figure 7. Modeling an order.

Figure 8. Professors and seminars.

Figure 9. Modeling people at a university.

CSE Department, VNRVJIET

83 www.jntuworld.com

www.jntuworld.com

1. 2. 3. 4.

Model Relationships Horizontally Collaboration Indicates Need for a Relationship Model a Dependency When The Relationship is Transitory Depict Similar Relationships Involving A Common Class As A Tree. In Figure 6 you see that both Delivery and Order have a dependency on OIDGenerator. Note how the two dependencies are drawn in combination in tree configuration, instead of as two separate lines, to reduce clutter in the diagram. 5. Always Indicate the Multiplicity 6. Avoid a Multiplicity of * 7. Replace Relationships By Indicating Attribute Types. In Figure 7 you see that Customer has a shippingAddress attribute of type Address part of the scaffolding code to maintain the association between customer objects and address objects. 8. Do Not Model Implied Relationships 9. Do Not Model Every Single Dependency 10. Center Names on Associations 11. Write Concise Association Names In Active Voice 12. Indicate Directionality To Clarify An Association Name 13. Name Unidirectional Associations In The Same Direction 14. Word Association Names Left-To-Right 15. Indicate Role Names When Multiple Associations Between Two Classes Exist 16. Indicate Role Names on Recursive Associations 17. Make Associations Bi-Directional Only When Collaboration Occurs In Both Directions. The lives at association of Figure 9 is uni-directional. 18. Redraw Inherited Associations Only When Something Changes 19. Question Multiplicities Involving Minimums And Maximums

6.

Inheritance Guidelines

Inheritance models is a and is like relationships, enabling you to easily reuse existing data and code. When A inherits from B we say that A is the subclass of B and that B is the superclass of A. Furthermore, we say that we have pure inheritance when A inherits all of the attributes and methods of B. The UML modeling notation for inheritance is a line with a closed arrowhead pointing from the subclass to the superclass. 1. 2. 3. 4. Apply the Sentence Rule For Inheritance Place Subclasses Below Superclasses Beware of Data-Based Inheritance A Subclass Should Inherit Everything

7.

Aggregation and Composition Guidelines

Sometimes an object is made up of other objects. For example, an airplane is made up of a fuselage, wings, engines, landing gear, flaps, and so on. A delivery shipment contains one or more packages. A
CSE Department, VNRVJIET

84 www.jntuworld.com

www.jntuworld.com team consists of two or more employees. These are all examples of the concept of aggregation, which represents is part of relationships. An engine is part of a plane, a package is part of a shipment, and an employee is part of a team. Aggregation is a specialization of association, specifying a whole-part relationship between two objects. Composition is a stronger form of aggregation where the whole and parts have coincident lifetimes, and it is very common for the whole to manage the lifecycle of its parts. From a stylistic point of view, because aggregation and composition are both specializations of association the guidelines for associations apply. Figure 10. Examples of aggregation and composition.

1. 2. 3. 4. 5. 6.

Apply the Sentence Rule for Aggregation You Should Be Interested In Both The Whole And The Part Depict the Whole to the Left of the Part Apply Composition to Aggregates of Physical Items Apply Composition When the Parts Share The Persistence Lifecycle With the Whole Dont Worry About Getting the Diamonds Right

8. Recommended Resources
Are You Ready For the MDA? Be Realistic About the UML Examining The Model Driven Architecture (MDA) Introduction to the Diagrams of UML 2 Introduction to Object Orientation (OO) and UML Introduction to UML Class Diagrams Modeling Style Guidelines Pavel Hruby's UML 2.0 Stencil for Visio Roadmap for Agile MDA Why Extend the UML Beyond Object and Component Technology? XP and the UML?

CSE Department, VNRVJIET

85 www.jntuworld.com

www.jntuworld.com

The Elements of UML 2.0 Style describes a collection of standards, conventions, and guidelines for creating effective UML diagrams. They are based on sound, proven
software engineering principles that lead to diagrams that are easier to understand and work with. These conventions exist as a collection of simple, concise guidelines that if applied consistently, represent an important first step in increasing your productivity as a modeler. This book is oriented towards intermediate to advanced UML modelers, although there are numerous examples throughout the book it would not be a good way to learn the UML (instead, consider The Object Primer). The book is a brief 188 pages long and is conveniently pocket-sized so it's easy to carry around.

The Object Primer 3rd Edition: Agile Model Driven Development with UML 2 is an important reference book for agile modelers, describing how to develop 35 types of agile models including all 13 UML 2 diagrams. Furthermore, this book describes the techniques of the Full Lifecycle Object Oriented Testing (FLOOT) methodology to
give you the fundamental testing skills which you require to succeed at agile software development. The book also shows how to move from your agile models to source code ( Java examples are provided) as well as how to succeed at implementation techniques such as refactoring and test-driven development (TDD). The Object Primer also includes a chapter overviewing the critical database development techniques (database refactoring, object/relational mapping, legacy analysis, and database access coding) from my award-winning Agile Database Techniques book.

Agile Modeling: Effective Practices for Extreme Programming and the Unified Process is the seminal book describing how agile software developers approach modeling and documentation. It describes principles and practices which you can tailor into your existing software process, such as XP, the Rational Unified Process (RUP) , or the Agile Unified Process (AUP), to streamline your modeling and documentation efforts.
Modeling and documentation are important aspects of any software project, including agile projects, and this book describes in detail how to elicit requirements, architect, and then design your system in an agile manner.

UML is popular for its diagrammatic notations. We all know that UML is for visualizing, specifying, constructing and documenting the components of software and non software systems. Here the Visualization is the most important part which needs to be understood and remembered by heart. UML notations are the most important elements in modeling. Efficient and appropriate use of notations is very important for making a complete and meaningful model. The model is useless unless its purpose is depicted properly. So learning notations should be emphasized from the very beginning. Different notations are available for things and relationships. And the UML diagrams are made using the notations of things and relationships. Extensibility is another important feature which makes UML more powerful and flexible. The chapter describes the UML Basic Notations in more details. This is just an extension to the UML buildling block section I have discussed in previous chapter.

Structural Things:
Graphical notations used in structural things are the most widely used in UML. These are considered as the nouns of UML models. Following are the list of structural things.
CSE Department, VNRVJIET

86 www.jntuworld.com

www.jntuworld.com Classes Interface Collaboration Use case Active classes Components Nodes

Class Notation:
UML class is represented by the diagram shown below. The diagram is divided into four parts.

The top section is used to name the class. The second one is used to show the attributes of the class. The third section is used to describe the operations performed by the class. The fourth section is optional to show any additional components.

Classes are used to represent objects. Objects can be anything having properties and responsibility.

Object Notation:
The object is represented in the same way as the class. The only difference is the name which is underlined as shown below.

CSE Department, VNRVJIET

87 www.jntuworld.com

www.jntuworld.com
As object is the actual implementation of a class which is known as the instance of a class. So it has the same usage as the class.

Interface Notation:
Interface is represented by a circle as shown below. It has a name which is generally written below the circle.

Interface is used to describe functionality without implementation. Interface is the just like a template where you define different functions not the implementation. When a class implements the interface it also implements the functionality as per the requirement.

Collaboration Notation:
Collaboration is represented by a dotted eclipse as shown below. It has a name written inside the eclipse.

Collaboration represents responsibilities. Generally responsibilities are in a group.

Use case Notation:


Use case is represented as an eclipse with a name inside it. It may contain additional responsibilities.

CSE Department, VNRVJIET

88 www.jntuworld.com

www.jntuworld.com

Use case is used to capture high level functionalities of a system.

Actor Notation:
An actor can be defined as some internal or external entity that interacts with the system.

Actor is used in a use case diagram to describe the internal or external entities.

Initial State Notation:


Initial state is defined show the start of a process. This notation is used in almost all diagrams.

The usage of Initial State Notation is to show the starting point of a process.

Final State Notation:


Final state is used to show the end of a process. This notation is also used in almost all diagrams to describe the end.

CSE Department, VNRVJIET

89 www.jntuworld.com

www.jntuworld.com

The usage of Final State Notation is to show the termination point of a process.

Active class Notation:


Active class looks similar to a class with a solid border. Active class is generally used to describe concurrent behaviour of a system.

Active class is used to represent concurrency in a system.

Component Notation:
A component in UML is shown as below with a name inside. Additional elements can be added wherever required.

Component is used to represent any part of a system for which UML diagrams are made.

Node Notation:
A node in UML is represented by a square box as shown below with a name. A node represents a physical component of the system.

CSE Department, VNRVJIET

90 www.jntuworld.com

www.jntuworld.com

Node is used to represent physical part of a system like server, network etc.

Behavioural Things:
Dynamic parts are one of the most important elements in UML. UML has a set of powerful features to represent the dynamic part of software and non software systems. These features include interactions and state machines. Interactions can be of two types:

Sequential (Represented by sequence diagram) Collaborative (Represented by collaboration diagram)

Interaction Notation:
Interaction is basically message exchange between two UML components. The following diagram represents different notations used in an interaction.

CSE Department, VNRVJIET

91 www.jntuworld.com

www.jntuworld.com

Interaction is used to represent communication among the components of a system.

State machine Notation:


State machine describes the different states of a component in its life cycle. The notations are described in the following diagram.

CSE Department, VNRVJIET

92 www.jntuworld.com

www.jntuworld.com

State machine is used to describe different states of a system component. The state can be active, idle or any other depending upon the situation.

Grouping Things:
Organizing the UML models are one of the most important aspects of the design. In UML there is only one element available for grouping and that is package.

Package Notation:
Package notation is shown below and this is used to wrap the components of a system.

Annotational Things:
In any diagram explanation of different elements and their functionalities are very important. So UML has notes notation to support this requirement.

CSE Department, VNRVJIET

93 www.jntuworld.com

www.jntuworld.com

Note Notation:
This notation is shown below and they are used to provide necessary information of a system.

Relationships
A model is not complete unless the relationships between elements are described properly. The Relationship gives a proper meaning to an UML model. Following are the different types of relationships available in UML.

Dependency Association Generalization Extensibility

Dependency Notation:
Dependency is an important aspect in UML elements. It describes the dependent elements and the direction of dependency. Dependency is represented by a dotted arrow as shown below. The arrow head represents the independent element and the other end the dependent element.

Dependency is used to represent dependency between two elements of a system.

Association Notation:
Association describes how the elements in an UML diagram are associated. In simple word it describes how many elements are taking part in an interaction.

CSE Department, VNRVJIET

94 www.jntuworld.com

www.jntuworld.com
Association is represented by a dotted line with (without) arrows on both sides. The two ends represent two associated elements as shown below. The multiplicity is also mentioned at the ends (1, * etc) to show how many objects are associated.

Association is used to represent the relationship between two elements of a system.

Generalization Notation:
Generalization describes the inheritance relationship of the object oriented world. It is parent and child relationship. Generalization is represented by an arrow with hollow arrow head as shown below. One end represents the parent element and the other end child element.

Generalization is used to describe parent-child relationship of two elements of a system.

Extensibility Notation:
All the languages (programming or modeling) have some mechanism to extend its capabilities like syntax, semantics etc. UML is also having the following mechanisms to provide extensibility features.

Stereotypes (Represents new elements) Tagged values (Represents new attributes) Constraints (Represents the boundaries)

CSE Department, VNRVJIET

95 www.jntuworld.com

www.jntuworld.com

Extensibility notations are used to enhance the power of the language. It is basically additional elements used to represent some extra behaviour of the system. These extra behaviours are not covered by the standard available notations. UML is a standard language for specifying, visualizing, constructing, and documenting the artifacts of software systems. UML was created by Object Management Group (OMG) and UML 1.0 specification draft was proposed to the OMG in January 1997. OMG is continuously putting effort to make a truly industry standard. UML stands for Unified Modeling Language. UML is different from the other common programming languages like C++, Java, COBOL etc. UML is a pictorial language used to make software blue prints. So UML can be described as a general purpose visual modeling language to visualize, specify, construct and document software system. Although UML is generally used to model software systems but it is not limited within this boundary. It is also used to model non software systems as well like process flow in a manufacturing unit etc. UML is not a programming language but tools can be used to generate code in various languages using UML diagrams. UML has a direct relation with object oriented analysis and design. After some standardization UML is become an OMG (Object Management Group) standard.

Goals of UML:
A picture is worth a thousand words, this absolutely fits while discussing about UML. Object oriented concepts were introduced much earlier than UML. So at that time there were no standard methodologies to organize and consolidate the object oriented development. At that point of time UML came into picture. There are a number of goals for developing UML but the most important is to define some general purpose modeling language which all modelers can use and also it needs to be made simple to understand and use.

CSE Department, VNRVJIET

96 www.jntuworld.com

www.jntuworld.com
UML diagrams are not only made for developers but also for business users, common people and anybody interested to understand the system. The system can be a software or non software. So it must be clear that UML is not a development method rather it accompanies with processes to make a successful system. At the conclusion the goal of UML can be defined as a simple modeling mechanism to model all possible practical systems in today.s complex environment.

A conceptual model of UML:


To understand conceptual model of UML first we need to clarify What is a conceptual model? and Why a conceptual model is at all required? A conceptual model can be defined as a model which is made of concepts and their relationships. A conceptual model is the first step before drawing a UML diagram. It helps to understand the entities in the real world and how they interact with each other. As UML describes the real time systems it is very important to make a conceptual model and then proceed gradually. Conceptual model of UML can be mastered by learning the following three major elements:

UML building blocks Rules to connect the building blocks Common mechanisms of UML

Object oriented concepts:


UML can be described as the successor of object oriented analysis and design. An object contains both data and methods that control the data. The data represents the state of the object. A class describes an object and they also form hierarchy to model real world system. The hierarchy is represented as inheritance and the classes can also be associated in different manners as per the requirement. The objects are the real world entities that exist around us and the basic concepts like abstraction, encapsulation, inheritance, polymorphism all can be represented using UML. So UML is powerful enough to represent all the concepts exists in object oriented analysis and design. UML diagrams are representation of object oriented concepts only. So before learning UML, it becomes important to understand OO concepts in details. Following are some fundamental concepts of object oriented world: Objects: Objects represent an entity and the basic building block. Class: Class is the blue print of an object. Abstraction: Abstraction represents the behavior of an real world entity. Encapsulation: Encapsulation is the mechanism of binding the data together and hiding them from outside world. Inheritance: Inheritance is the mechanism of making new classes from existing one. Polymorphism: It defines the mechanism to exists in different forms.
CSE Department, VNRVJIET

97 www.jntuworld.com

www.jntuworld.com

OO Analysis and Design


Object Oriented analysis can be defined as investigation and to be more specific it is the investigation of objects. Design means collaboration of identified objects. So it is important to understand the OO analysis and design concepts. Now the most important purpose of OO analysis is to identify objects of a system to be designed. This analysis is also done for an existing system. Now an efficient analysis is only possible when we are able to start thinking in a way where objects can be identified. After identifying the objects their relationships are identified and finally the design is produced. So the purpose of OO analysis and design can described as: Identifying the objects of a system. Identify their relationships. Make a design which can be converted to executables using OO languages. There are three basic steps where the OO concepts are applied and implemented. The steps can be defined as
OO Analysis --> OO Design --> OO implementation using OO languages

Now the above three points can be described in details: During object oriented analysis the most important purpose is to identify objects and describing them in a proper way. If these objects are identified efficiently then the next job of design is easy. The objects should be identified with responsibilities. Responsibilities are the functions performed by the object. Each and every object has some type of responsibilities to be performed. When these responsibilities are collaborated the purpose of the system is fulfilled. The second phase is object oriented design. During this phase emphasis is given upon the requirements and their fulfilment. In this stage the objects are collaborated according to their intended association. After the association is complete the design is also complete. The third phase is object oriented implementation. In this phase the design is implemented using object oriented languages like Java, C++ etc.

Role of UML in OO design:


UML is a modeling language used to model software and non software systems. Although UML is used for non software systems the emphasis is on modeling object oriented software applications. Most of the UML diagrams discussed so far are used to model different aspects like static, dynamic etc. Now what ever be the aspect the artifacts are nothing but objects. If we look into class diagram, object diagram, collaboration diagram, interaction diagrams all would basically be designed based on the objects. So the relation between OO design and UML is very important to understand. The OO design is transformed into UML diagrams according to the requirement. Before understanding the UML in details the OO concepts should be learned properly. Once the OO analysis and design is done the next step is very easy. The input from the OO analysis and design is the input to the UML diagrams.
CSE Department, VNRVJIET

98 www.jntuworld.com

www.jntuworld.com
As UML describes the real time systems it is very important to make a conceptual model and then proceed gradually. Conceptual model of UML can be mastered by learning the following three major elements:

UML building blocks Rules to connect the building blocks Common mechanisms of UML
This chapter describes all the UML building blocks. The building blocks of UML can be defined as:

Things Relationships Diagrams

(1) Things:
Things are the most important building blocks of UML. Things can be:

Structural Behavioral Grouping Annotational

Structural things:
The Structural things define the static part of the model. They represent physical and conceptual elements. Following are the brief descriptions of the structural things.

Class:
Class represents set of objects having similar responsibilities.

Interface:
Interface defines a set of operations which specify the responsibility of a class.

Collaboration:
Collaboration defines interaction between elements.
CSE Department, VNRVJIET

99 www.jntuworld.com

www.jntuworld.com

Use case:
Use case represents a set of actions performed by a system for a specific goal.

Component:
Component describes physical part of a system.

Node:
A node can be defined as a physical element that exists at run time.

Behavioral things:
A behavioral thing consists of the dynamic parts of UML models. Following are the behavioral things:

Interaction:
Interaction is defined as a behavior that consists of a group of messages exchanged among elements to accomplish a specific task.

State machine:
State machine is useful when the state of an object in its life cycle is important. It defines the sequence of states an object goes through in response to events. Events are external factors responsible for state change.

CSE Department, VNRVJIET

100 www.jntuworld.com

www.jntuworld.com

Grouping things:
Grouping things can be defined as a mechanism to group elements of a UML model together. There is only one grouping thing available:

Package:
Package is the only one grouping thing available for gathering structural and behavioral things.

Annotational things:
Annotational things can be defined as a mechanism to capture remarks, descriptions, and comments of UML model elements. Note is the only one Annotational thing available.

Note:
A note is used to render comments, constraints etc of an UML element.

(2) Relationship :
Relationship is another most important building block of UML. It shows how elements are associated with each other and this association describes the functionality of an application. There are four kinds of relationships available.

Dependency:
Dependency is a relationship between two things in which change in one element also affects the other one.

CSE Department, VNRVJIET

101 www.jntuworld.com

www.jntuworld.com

Association:
Association is basically a set of links that connects elements of an UML model. It also describes how many objects are taking part in that relationship.

Generalization:
Generalization can be defined as a relationship which connects a specialized element with a generalized element. It basically describes inheritance relationship in the world of objects.

Realization:
Realization can be defined as a relationship in which two elements are connected. One element describes some responsibility which is not implemented and the other one implements them. This relationship exists in case of interfaces.

(3) UML Diagrams:


UML diagrams are the ultimate output of the entire discussion. All the elements, relationships are used to make a complete UML diagram and the diagram represents a system. The visual effect of the UML diagram is the most important part of the entire process. All the other elements are used to make it a complete one. UML includes the following nine diagrams and the details are described in the following chapters.

1. 2. 3. 4. 5. 6. 7. 8. 9.

Class diagram Object diagram Use case diagram Sequence diagram Collaboration diagram Activity diagram Statechart diagram Deployment diagram Component diagram

Any real world system is used by different users. The users can be developers, testers, business people, analysts and many more. So before designing a system the architecture is made with different
CSE Department, VNRVJIET

102 www.jntuworld.com

www.jntuworld.com perspectives in mind. The most important part is to visualize the system from different viewer.s perspective. The better we understand the better we make the system. UML plays an important role in defining different perspectives of a system. These perspectives are: Design Implementation Process Deployment And the centre is the Use Case view which connects all these four. A Use case represents the functionality of the system. So the other perspectives are connected with use case. Design of a system consists of classes, interfaces and collaboration. UML provides class diagram, object diagram to support this. Implementation defines the components assembled together to make a complete physical system. UML component diagram is used to support implementation perspective. Process defines the flow of the system. So the same elements as used in Design are also used to support this perspective. Deployment represents the physical nodes of the system that forms the hardware. UML deployment diagram is used to support this perspective.
It is very important to distinguish between the UML model. Different diagrams are used for different type of UML modeling. There are three important type of UML modelings:

Structural modeling:
Structural modeling captures the static features of a system. They consist of the followings:

Classes diagrams Objects diagrams Deployment diagrams Package diagrams Composite structure diagram Component diagram
Structural model represents the framework for the system and this framework is the place where all other components exist. So the class diagram, component diagram and deployment diagrams are the part of structural modeling. They all represent the elements and the mechanism to assemble them. But the structural model never describes the dynamic behavior of the system. Class diagram is the most widely used structural diagram.

Behavioral Modeling:
Behavioral model describes the interaction in the system. It represents the interaction among the structural diagrams. Behavioral modeling shows the dynamic nature of the system. They consist of the following:

CSE Department, VNRVJIET

103 www.jntuworld.com

www.jntuworld.com Activity diagrams Interaction diagrams Use case diagrams


All the above show the dynamic sequence of flow in a system.

Architectural Modeling:
Architectural model represents the overall framework of the system. It contains both structural and behavioral elements of the system. Architectural model can be defined as the blue print of the entire system. Package diagram comes under architectural modeling. UML is popular for its diagrammatic notations. We all know that UML is for visualizing, specifying, constructing and documenting the components of software and non software systems. Here the Visualization is the most important part which needs to be understood and remembered by heart. UML notations are the most important elements in modeling. Efficient and appropriate use of notations is very important for making a complete and meaningful model. The model is useless unless its purpose is depicted properly. So learning notations should be emphasized from the very beginning. Different notations are available for things and relationships. And the UML diagrams are made using the notations of things and relationships. Extensibility is another important feature which makes UML more powerful and flexible. The chapter describes the UML Basic Notations in more details. This is just an extension to the UML buildling block section I have discussed in previous chapter.

Structural Things:
Graphical notations used in structural things are the most widely used in UML. These are considered as the nouns of UML models. Following are the list of structural things.

Classes Interface Collaboration Use case Active classes Components Nodes

Class Notation:
UML class is represented by the diagram shown below. The diagram is divided into four parts.

The top section is used to name the class. The second one is used to show the attributes of the class. The third section is used to describe the operations performed by the class. The fourth section is optional to show any additional components.
CSE Department, VNRVJIET

104 www.jntuworld.com

www.jntuworld.com

Classes are used to represent objects. Objects can be anything having properties and responsibility.

Object Notation:
The object is represented in the same way as the class. The only difference is the name which is underlined as shown below.

As object is the actual implementation of a class which is known as the instance of a class. So it has the same usage as the class.

Interface Notation:
Interface is represented by a circle as shown below. It has a name which is generally written below the circle.

CSE Department, VNRVJIET

105 www.jntuworld.com

www.jntuworld.com
Interface is used to describe functionality without implementation. Interface is the just like a template where you define different functions not the implementation. When a class implements the interface it also implements the functionality as per the requirement.

Collaboration Notation:
Collaboration is represented by a dotted eclipse as shown below. It has a name written inside the eclipse.

Collaboration represents responsibilities. Generally responsibilities are in a group.

Use case Notation:


Use case is represented as an eclipse with a name inside it. It may contain additional responsibilities.

Use case is used to capture high level functionalities of a system.

Actor Notation:
An actor can be defined as some internal or external entity that interacts with the system.

CSE Department, VNRVJIET

106 www.jntuworld.com

www.jntuworld.com

Actor is used in a use case diagram to describe the internal or external entities.

Initial State Notation:


Initial state is defined show the start of a process. This notation is used in almost all diagrams.

The usage of Initial State Notation is to show the starting point of a process.

Final State Notation:


Final state is used to show the end of a process. This notation is also used in almost all diagrams to describe the end.

The usage of Final State Notation is to show the termination point of a process.

Active class Notation:


Active class looks similar to a class with a solid border. Active class is generally used to describe concurrent behaviour of a system.

CSE Department, VNRVJIET

107 www.jntuworld.com

www.jntuworld.com
Active class is used to represent concurrency in a system.

Component Notation:
A component in UML is shown as below with a name inside. Additional elements can be added wherever required.

Component is used to represent any part of a system for which UML diagrams are made.

Node Notation:
A node in UML is represented by a square box as shown below with a name. A node represents a physical component of the system.

Node is used to represent physical part of a system like server, network etc.

Behavioural Things:
Dynamic parts are one of the most important elements in UML. UML has a set of powerful features to represent the dynamic part of software and non software systems. These features include interactions and state machines. Interactions can be of two types:

Sequential (Represented by sequence diagram) Collaborative (Represented by collaboration diagram)

Interaction Notation:

CSE Department, VNRVJIET

108 www.jntuworld.com

www.jntuworld.com
Interaction is basically message exchange between two UML components. The following diagram represents different notations used in an interaction.

Interaction is used to represent communication among the components of a system.

State machine Notation:


State machine describes the different states of a component in its life cycle. The notations are described in the following diagram.

CSE Department, VNRVJIET

109 www.jntuworld.com

www.jntuworld.com

State machine is used to describe different states of a system component. The state can be active, idle or any other depending upon the situation.

Grouping Things:
Organizing the UML models are one of the most important aspects of the design. In UML there is only one element available for grouping and that is package.

Package Notation:
Package notation is shown below and this is used to wrap the components of a system.

Annotational Things:
In any diagram explanation of different elements and their functionalities are very important. So UML has notes notation to support this requirement.

CSE Department, VNRVJIET

110 www.jntuworld.com

www.jntuworld.com

Note Notation:
This notation is shown below and they are used to provide necessary information of a system.

Relationships
A model is not complete unless the relationships between elements are described properly. The Relationship gives a proper meaning to an UML model. Following are the different types of relationships available in UML.

Dependency Association Generalization Extensibility

Dependency Notation:
Dependency is an important aspect in UML elements. It describes the dependent elements and the direction of dependency. Dependency is represented by a dotted arrow as shown below. The arrow head represents the independent element and the other end the dependent element.

Dependency is used to represent dependency between two elements of a system.

Association Notation:
Association describes how the elements in an UML diagram are associated. In simple word it describes how many elements are taking part in an interaction.

CSE Department, VNRVJIET

111 www.jntuworld.com

www.jntuworld.com
Association is represented by a dotted line with (without) arrows on both sides. The two ends represent two associated elements as shown below. The multiplicity is also mentioned at the ends (1, * etc) to show how many objects are associated.

Association is used to represent the relationship between two elements of a system.

Generalization Notation:
Generalization describes the inheritance relationship of the object oriented world. It is parent and child relationship. Generalization is represented by an arrow with hollow arrow head as shown below. One end represents the parent element and the other end child element.

Generalization is used to describe parent-child relationship of two elements of a system.

Extensibility Notation:
All the languages (programming or modeling) have some mechanism to extend its capabilities like syntax, semantics etc. UML is also having the following mechanisms to provide extensibility features.

Stereotypes (Represents new elements) Tagged values (Represents new attributes) Constraints (Represents the boundaries)

CSE Department, VNRVJIET

112 www.jntuworld.com

www.jntuworld.com

Extensibility notations are used to enhance the power of the language. It is basically additional elements used to represent some extra behaviour of the system. These extra behaviours are not covered by the standard available notations. In the previous chapters we have discussed about the building blocks and other necessary elements of UML. Now we need to understand where to use those elements. The elements are like components which can be associated in different ways to make a complete UML pictures which is known as diagram. So it is very important to understand the different diagrams to implement the knowledge in real life systems. Any complex system is best understood by making some kind of diagrams or pictures. These diagrams have a better impact on our understanding. So if we look around then we will realize that the diagrams are not a new concept but it is used widely in different form in different industries. We prepare UML diagrams to understand a system in better and simple way. A single diagram is not enough to cover all aspects of the system. So UML defines various kinds of diagrams to cover most of the aspects of a system. You can also create your own set of diagrams to meet your requirements. Diagrams are generally made in an incremental and iterative way. There are two broad caetgories of diagrams and then are again divided into sub-categories: Structural Diagrams Behavioral Diagrams

Structural Diagrams:
The structural diagrams represent the static aspect of the system. These static aspects represent those parts of a diagram which forms the main structure and therefore stable. These static parts are represents by classes, interfaces, objects, components and nodes. The four structural diagrams are:

Class diagram Object diagram


CSE Department, VNRVJIET

113 www.jntuworld.com

www.jntuworld.com Component diagram Deployment diagram

Class Diagram:
Class diagrams are the most common diagrams used in UML. Class diagram consists of classes, interfaces, associations and collaboration. Class diagrams basically represent the object oriented view of a system which is static in nature. Active class is used in a class diagram to represent the concurrency of the system. Class diagram represents the object orientation of a system. So it is generally used for development purpose. This is the most widely used diagram at the time of system construction.

Object Diagram:
Object diagrams can be described as an instance of class diagram. So these diagrams are more close to real life scenarios where we implement a system. Object diagrams are a set of objects and their relationships just like class diagrams and also represent the static view of the system. The usage of object diagrams is similar to class diagrams but they are used to build prototype of a system from practical perspective.

Component Diagram:
Component diagrams represent a set of components and their relationships. These components consist of classes, interfaces or collaborations. So Component diagrams represent the implementation view of a system. During design phase software artifacts (classes, interfaces etc) of a system are arranged in different groups depending upon their relationship. Now these groups are known as components. Finally, component diagrams are used to visualize the implementation.

Deployment Diagram:
Deployment diagrams are a set of nodes and their relationships. These nodes are physical entities where the components are deployed. Deployment diagrams are used for visualizing deployment view of a system. This is generally used by the deployment team. Note: If the above descriptions and usages are observed carefully then it is very clear that all the diagrams are having some relationship with one another. Component diagrams are dependent upon the classes, interfaces etc which are part of class/object diagram. Again the deployment diagram is dependent upon the components which are used to make a component diagrams.
CSE Department, VNRVJIET

114 www.jntuworld.com

www.jntuworld.com

Behavioral Diagrams:
Any system can have two aspects, static and dynamic. So a model is considered as complete when both the aspects are covered fully. Behavioral diagrams basically capture the dynamic aspect of a system. Dynamic aspect can be further described as the changing/moving parts of a system. UML has the following five types of behavioral diagrams:

Use case diagram Sequence diagram Collaboration diagram Statechart diagram Activity diagram

Use case Diagram:


Use case diagrams are a set of use cases, actors and their relationships. They represent the use case view of a system. A use case represents a particular functionality of a system. So use case diagram is used to describe the relationships among the functionalities and their internal/external controllers. These controllers are known as actors.

Sequence Diagram:
A sequence diagram is an interaction diagram. From the name it is clear that the diagram deals with some sequences, which are the sequence of messages flowing from one object to another. Interaction among the components of a system is very important from implementation and execution perspective. So Sequence diagram is used to visualize the sequence of calls in a system to perform a specific functionality.

Collaboration Diagram:
Collaboration diagram is another form of interaction diagram. It represents the structural organization of a system and the messages sent/received. Structural organization consists of objects and links. The purpose of collaboration diagram is similar to sequence diagram. But the specific purpose of collaboration diagram is to visualize the organization of objects and their interaction.

Statechart Diagram:
Any real time system is expected to be reacted by some kind of internal/external events. These events are responsible for state change of the system.
CSE Department, VNRVJIET

115 www.jntuworld.com

www.jntuworld.com
Statechart diagram is used to represent the event driven state change of a system. It basically describes the state change of a class, interface etc. State chart diagram is used to visualize the reaction of a system by internal/external factors.

Activity Diagram:
Activity diagram describes the flow of control in a system. So it consists of activities and links. The flow can be sequential, concurrent or branched. Activities are nothing but the functions of a system. Numbers of activity diagrams are prepared to capture the entire flow in a system. Activity diagrams are used to visualize the flow of controls in a system. This is prepared to have an idea of how the system will work when executed. Note: Dynamic nature of a system is very difficult to capture. So UML has provided features to capture the dynamics of a system from different angles. Sequence diagrams and collaboration diagrams are isomorphic so they can be converted from one another without losing any information. This is also true for statechart and activity diagram.

Overview:
The class diagram is a static diagram. It represents the static view of an application. Class diagram is not only used for visualizing, describing and documenting different aspects of a system but also for constructing executable code of the software application. The class diagram describes the attributes and operations of a class and also the constraints imposed on the system. The class diagrams are widely used in the modelling of object oriented systems because they are the only UML diagrams which can be mapped directly with object oriented languages. The class diagram shows a collection of classes, interfaces, associations, collaborations and constraints. It is also known as a structural diagram.

Purpose:
The purpose of the class diagram is to model the static view of an application. The class diagrams are the only diagrams which can be directly mapped with object oriented languages and thus widely used at the time of construction. The UML diagrams like activity diagram, sequence diagram can only give the sequence flow of the application but class diagram is a bit different. So it is the most popular UML diagram in the coder community. So the purpose of the class diagram can be summarized as: Analysis and design of the static view of an application. Describe responsibilities of a system. Base for component and deployment diagrams. Forward and reverse engineering.
CSE Department, VNRVJIET

116 www.jntuworld.com

www.jntuworld.com

How to draw Class Diagram?


Class diagrams are the most popular UML diagrams used for construction of software applications. So it is very important to learn the drawing procedure of class diagram. Class diagrams have lot of properties to consider while drawing but here the diagram will be considered from a top level view. Class diagram is basically a graphical representation of the static view of the system and represents different aspects of the application. So a collection of class diagrams represent the whole system. The following points should be remembered while drawing a class diagram: The name of the class diagram should be meaningful to describe the aspect of the system. Each element and their relationships should be identified in advance. Responsibility (attributes and methods) of each class should be clearly identified. For each class minimum number of properties should be specified. Because unnecessary properties will make the diagram complicated. Use notes when ever required to describe some aspect of the diagram. Because at the end of the drawing it should be understandable to the developer/coder. Finally, before making the final version, the diagram should be drawn on plain paper and rework as many times as possible to make it correct. Now the following diagram is an example of an Order System of an application. So it describes a particular aspect of the entire application. First of all Order and Customer are identified as the two elements of the system and they have a one to many relationship because a customer can have multiple orders. We would keep Order class is an abstract class and it has two concrete classes (inheritance relationship) SpecialOrder and NormalOrder. The two inherited classes have all the properties as the Order class. In addition they have additional functions like dispatch () and receive (). So the following class diagram has been drawn considering all the points mentioned above:

CSE Department, VNRVJIET

117 www.jntuworld.com

www.jntuworld.com

Where to use Class Diagrams?


Class diagram is a static diagram and it is used to model static view of a system. The static view describes the vocabulary of the system. Class diagram is also considered as the foundation for component and deployment diagrams. Class diagrams are not only used to visualize the static view of the system but they are also used to construct the executable code for forward and reverse engineering of any system. Generally UML diagrams are not directly mapped with any object oriented programming languages but the class diagram is an exception. Class diagram clearly shows the mapping with object oriented languages like Java, C++ etc. So from practical experience class diagram is generally used for construction purpose. So in a brief, class diagrams are used for: Describing the static view of the system. Showing the collaboration among the elements of the static view. Describing the functionalities performed by the system. Construction of software applications using object oriented languages.

Overview:
Object diagrams are derived from class diagrams so object diagrams are dependent upon class diagrams.

CSE Department, VNRVJIET

118 www.jntuworld.com

www.jntuworld.com
Object diagrams represent an instance of a class diagram. The basic concepts are similar for class diagrams and object diagrams. Object diagrams also represent the static view of a system but this static view is a snapshot of the system at a particular moment. Object diagrams are used to render a set of objects and their relationships as an instance.

Purpose:
The purpose of a diagram should be understood clearly to implement it practically. The purposes of object diagrams are similar to class diagrams. The difference is that a class diagram represents an abstract model consists of classes and their relationships. But an object diagram represents an instance at a particular moment which is concrete in nature. It means the object diagram is more close to the actual system behaviour. The purpose is to capture the static view of a system at a particular moment. So the purpose of the object diagram can be summarized as: Forward and reverse engineering. Object relationships of a system Static view of an interaction. Understand object behaviour and their relationship from practical perspective

How to draw Object Diagram?


We have already discussed that an object diagram is an instance of a class diagram. It implies that an object diagram consists of instances of things used in a class diagram. So both diagrams are made of same basic elements but in different form. In class diagram elements are in abstract form to represent the blue print and in object diagram the elements are in concrete form to represent the real world object. To capture a particular system, numbers of class diagrams are limited. But if we consider object diagrams then we can have unlimited number of instances which are unique in nature. So only those instances are considered which are having impact on the system. From the above discussion it is clear that a single object diagram cannot capture all the necessary instances or rather cannot specify all objects of a system. So the solution is: First, analyze the system and decide which instances are having important data and association. Second, consider only those instances which will cover the functionality. Third, make some optimization as the numbers of instances are unlimited. Before drawing an object diagrams the following things should be remembered and understood clearly: Object diagrams are consist of objects. The link in object diagram is used to connect objects.
CSE Department, VNRVJIET

119 www.jntuworld.com

www.jntuworld.com
Objects and links are the two elements used to construct an object diagram. Now after this the following things are to be decided before starting the construction of the diagram: The object diagram should have a meaningful name to indicate its purpose. The most important elements are to be identified. The association among objects should be clarified. Values of different elements need to be captured to include in the object diagram. Add proper notes at points where more clarity is required. The following diagram is an example of an object diagram. It represents the Order management system which we have discussed in Class Diagram. The following diagram is an instance of the system at a particular time of purchase. It has the following objects Customer Order SpecialOrder NormalOrder Now the customer object (C) is associated with three order objects (O1, O2 and O3). These order objects are associated with special order and normal order objects (S1, S2 and N1). The customer is having the following three orders with different numbers (12, 32 and 40) for the particular time considered. Now the customer can increase number of orders in future and in that scenario the object diagram will reflect that. If order, special order and normal order objects are observed then we you will find that they are having some values. For orders the values are 12, 32, and 40 which implies that the objects are having these values for the particular moment (here the particular time when the purchase is made is considered as the moment) when the instance is captured. The same is for special order and normal order objects which are having number of orders as 20, 30 and 60. If a different time of purchase is considered then these values will change accordingly. So the following object diagram has been drawn considering all the points mentioned above:

CSE Department, VNRVJIET

120 www.jntuworld.com

www.jntuworld.com

Where to use Object Diagrams?


Object diagrams can be imagined as the snapshot of a running system at a particular moment. Now to clarify it we can take an example of a running train. Now if you take a snap of the running train then you will find a static picture of it having the following: A particular state which is running A particular number of passengers. which will change if the snap is taken in a different time. So here we can imagine the snap of the running train is an object having the above values. And this is true for any real life simple or complex system. In a brief, object diagrams are used for: Making the prototype of a system. Reverse engineering. Modeling complex data structures. Understanding the system from practical perspective.

Overview:
Component diagrams are different in terms of nature and behaviour. Component diagrams are used to model physical aspects of a system. Now the question is what are these physical aspects? Physical aspects are the elements like executables, libraries, files, documents etc which resides in a node. So component diagrams are used to visualize the organization and relationships among components in a system. These diagrams are also used to make executable systems.

Purpose:
Component diagram is a special kind of diagram in UML. The purpose is also different from all other diagrams discussed so far. It does not describe the functionality of the system but it describes the components used to make those functionalities. So from that point component diagrams are used to visualize the physical components in a system. These components are libraries, packages, files etc. Component diagrams can also be described as a static implementation view of a system. Static implementation represents the organization of the components at a particular moment. A single component diagram cannot represent the entire system but a collection of diagrams are used to represent the whole. So the purpose of the component diagram can be summarized as: Visualize the components of a system. Construct executables by using forward and reverse engineering. Describe the organization and relationships of the components.

CSE Department, VNRVJIET

121 www.jntuworld.com

www.jntuworld.com

How to draw Component Diagram?


Component diagrams are used to describe the physical artifacts of a system. This artifact includes files, executables, libraries etc. So the purpose of this diagram is different, Component diagrams are used during the implementation phase of an application. But it is prepared well in advance to visualize the implementation details. Initially the system is designed using different UML diagrams and then when the artifacts are ready component diagrams are used to get an idea of the implementation. This diagram is very important because without it the application cannot be implemented efficiently. A well prepared component diagram is also important for other aspects like application performance, maintenance etc. So before drawing a component diagram the following artifacts are to be identified clearly: Files used in the system. Libraries and other artifacts relevant to the application. Relationships among the artifacts. Now after identifying the artifacts the following points needs to be followed: Use a meaningful name to identify the component for which the diagram is to be drawn. Prepare a mental layout before producing using tools. Use notes for clarifying important points. The following is a component diagram for order management system. Here the artifacts are files. So the diagram shows the files in the application and their relationships. In actual the component diagram also contains dlls, libraries, folders etc. In the following diagram four files are identified and their relationships are produced. Component diagram cannot be matched directly with other UML diagrams discussed so far. Because it is drawn for completely different purpose. So the following component diagram has been drawn considering all the points mentioned above:

CSE Department, VNRVJIET

122 www.jntuworld.com

www.jntuworld.com

Where to use Component Diagrams?


We have already described that component diagrams are used to visualize the static implementation view of a system. Component diagrams are special type of UML diagrams used for different purposes. These diagrams show the physical components of a system. To clarify it, we can say that component diagrams describe the organization of the components in a system. Organization can be further described as the location of the components in a system. These components are organized in a special way to meet the system requirements. As we have already discussed those components are libraries, files, executables etc. Now before implementing the application these components are to be organized. This component organization is also designed separately as a part of project execution. Component diagrams are very important from implementation perspective. So the implementation team of an application should have a proper knowledge of the component details. Now the usage of component diagrams can be described as: Model the components of a system. Model database schema. Model executables of an application. Model system's source code.

Overview:

CSE Department, VNRVJIET

123 www.jntuworld.com

www.jntuworld.com
Deployment diagrams are used to visualize the topology of the physical components of a system where the software components are deployed. So deployment diagrams are used to describe the static deployment view of a system. Deployment diagrams consist of nodes and their relationships.

Purpose:
The name Deployment itself describes the purpose of the diagram. Deployment diagrams are used for describing the hardware components where software components are deployed. Component diagrams and deployment diagrams are closely related. Component diagrams are used to describe the components and deployment diagrams shows how they are deployed in hardware. UML is mainly designed to focus on software artifacts of a system. But these two diagrams are special diagrams used to focus on software components and hardware components. So most of the UML diagrams are used to handle logical components but deployment diagrams are made to focus on hardware topology of a system. Deployment diagrams are used by the system engineers. The purpose of deployment diagrams can be described as: Visualize hardware topology of a system. Describe the hardware components used to deploy software components. Describe runtime processing nodes.

How to draw Component Diagram?


Deployment diagram represents the deployment view of a system. It is related to the component diagram. Because the components are deployed using the deployment diagrams. A deployment diagram consists of nodes. Nodes are nothing but physical hardwares used to deploy the application. Deployment diagrams are useful for system engineers. An efficient deployment diagram is very important because it controls the following parameters Performance Scalability Maintainability Portability So before drawing a deployment diagram the following artifacts should be identified: Nodes Relationships among nodes The following deployment diagram is a sample to give an idea of the deployment view of order management system. Here we have shown nodes as: Monitor
CSE Department, VNRVJIET

124 www.jntuworld.com

www.jntuworld.com
Modem Caching server Server The application is assumed to be a web based application which is deployed in a clustered environment using server 1, server 2 and server 3. The user is connecting to the application using internet. The control is flowing from the caching server to the clustered environment. So the following deployment diagram has been drawn considering all the points mentioned above:

Where to use Deployment Diagrams?


Deployment diagrams are mainly used by system engineers. These diagrams are used to describe the physical components (hardwares), their distribution and association. To clarify it in details we can visualize deployment diagrams as the hardware components/nodes on which software components reside. Software applications are developed to model complex business processes. Only efficient software applications are not sufficient to meet business requirements. Business requirements can be described as to support increasing number of users, quick response time etc. To meet these types of requirements hardware components should be designed efficiently and in a cost effective way.

CSE Department, VNRVJIET

125 www.jntuworld.com

www.jntuworld.com
Now a day's software applications are very complex in nature. Software applications can be stand alone, web based, distributed, mainframe based and many more. So it is very important to design the hardware components efficiently. So the usage of deployment diagrams can be described as follows: To model the hardware topology of a system. To model embedded system. To model hardware details for a client/server system. To model hardware details of a distributed application. Forward and reverse engineering.

Overview:
To model a system the most important aspect is to capture the dynamic behaviour. To clarify a bit in details, dynamic behaviour means the behaviour of the system when it is running /operating. So only static behaviour is not sufficient to model a system rather dynamic behaviour is more important than static behaviour. In UML there are five diagrams available to model dynamic nature and use case diagram is one of them. Now as we have to discuss that the use case diagram is dynamic in nature there should be some internal or external factors for making the interaction. These internal and external agents are known as actors. So use case diagrams are consists of actors, use cases and their relationships. The diagram is used to model the system/subsystem of an application. A single use case diagram captures a particular functionality of a system. So to model the entire system numbers of use case diagrams are used.

Purpose:
The purpose of use case diagram is to capture the dynamic aspect of a system. But this definition is too generic to describe the purpose. Because other four diagrams (activity, sequence, collaboration and Statechart) are also having the same purpose. So we will look into some specific purpose which will distinguish it from other four diagrams. Use case diagrams are used to gather the requirements of a system including internal and external influences. These requirements are mostly design requirements. So when a system is analyzed to gather its functionalities use cases are prepared and actors are identified. Now when the initial task is complete use case diagrams are modelled to present the outside view. So in brief, the purposes of use case diagrams can be as follows: Used to gather requirements of a system. Used to get an outside view of a system. Identify external and internal factors influencing the system. Show the interacting among the requirements are actors.

CSE Department, VNRVJIET

126 www.jntuworld.com

www.jntuworld.com

How to draw Component Diagram?


Use case diagrams are considered for high level requirement analysis of a system. So when the requirements of a system are analyzed the functionalities are captured in use cases. So we can say that uses cases are nothing but the system functionalities written in an organized manner. Now the second things which are relevant to the use cases are the actors. Actors can be defined as something that interacts with the system. The actors can be human user, some internal applications or may be some external applications. So in a brief when we are planning to draw an use case diagram we should have the following items identified. Functionalities to be represented as an use case Actors Relationships among the use cases and actors. Use case diagrams are drawn to capture the functional requirements of a system. So after identifying the above items we have to follow the following guidelines to draw an efficient use case diagram. The name of a use case is very important. So the name should be chosen in such a way so that it can identify the functionalities performed. Give a suitable name for actors. Show relationships and dependencies clearly in the diagram. Do not try to include all types of relationships. Because the main purpose of the diagram is to identify requirements. Use note when ever required to clarify some important points. The following is a sample use case diagram representing the order management system. So if we look into the diagram then we will find three use cases (Order, SpecialOrder and NormalOrder) and one actor which is customer. The SpecialOrder and NormalOrder use cases are extended from Order use case. So they have extends relationship. Another important point is to identify the system boundary which is shown in the picture. The actor Customer lies outside the system as it is an external user of the system.

CSE Department, VNRVJIET

127 www.jntuworld.com

www.jntuworld.com

Where to use Deployment Diagrams?


As we have already discussed there are five diagrams in UML to model dynamic view of a system. Now each and every model has some specific purpose to use. Actually these specific purposes are different angles of a running system. So to understand the dynamics of a system we need to use different types of diagrams. Use case diagram is one of them and its specific purpose is to gather system requirements and actors. Use case diagrams specify the events of a system and their flows. But use case diagram never describes how they are implemented. Use case diagram can be imagined as a black box where only the input, output and the function of the black box is known. These diagrams are used at a very high level of design. Then this high level design is refined again and again to get a complete and practical picture of the system. A well structured use case also describes the pre condition, post condition, exceptions. And these extra elements are used to make test cases when performing the testing. Although the use cases are not a good candidate for forward and reverse engineering but still they are used in a slight different way to make forward and reverse engineering. And the same is true for reverse engineering. Still use case diagram is used differently to make it a candidate for reverse engineering. In forward engineering use case diagrams are used to make test cases and in reverse engineering use cases are used to prepare the requirement details from the existing application. So the following are the places where use case diagrams are used: Requirement analysis and high level design. Model the context of a system. Reverse engineering. Forward engineering.
CSE Department, VNRVJIET

128 www.jntuworld.com

www.jntuworld.com

Overview:
From the name Interaction it is clear that the diagram is used to describe some type of interactions among the different elements in the model. So this interaction is a part of dynamic behaviour of the system. This interactive behaviour is represented in UML by two diagrams known as Sequence diagram and Collaboration diagram. The basic purposes of both the diagrams are similar. Sequence diagram emphasizes on time sequence of messages and collaboration diagram emphasizes on the structural organization of the objects that send and receive messages.

Purpose:
The purposes of interaction diagrams are to visualize the interactive behaviour of the system. Now visualizing interaction is a difficult task. So the solution is to use different types of models to capture the different aspects of the interaction. That is why sequence and collaboration diagrams are used to capture dynamic nature but from a different angle. So the purposes of interaction diagram can be describes as: To capture dynamic behaviour of a system. To describe the message flow in the system. To describe structural organization of the objects. To describe interaction among objects.

How to draw Component Diagram?


As we have already discussed that the purpose of interaction diagrams are to capture the dynamic aspect of a system. So to capture the dynamic aspect we need to understand what a dynamic aspect is and how it is visualized. Dynamic aspect can be defined as the snap shot of the running system at a particular moment. We have two types of interaction diagrams in UML. One is sequence diagram and the other is a collaboration diagram. The sequence diagram captures the time sequence of message flow from one object to another and the collaboration diagram describes the organization of objects in a system taking part in the message flow. So the following things are to identified clearly before drawing the interaction diagram: Objects taking part in the interaction. Message flows among the objects. The sequence in which the messages are flowing. Object organization. Following are two interaction diagrams modeling order management system. The first diagram is a sequence diagram and the second is a collaboration diagram.

CSE Department, VNRVJIET

129 www.jntuworld.com

www.jntuworld.com

The Sequence Diagram:


The sequence diagram is having four objects (Customer, Order, SpecialOrder and NormalOrder). The following diagram has shown the message sequence for SpecialOrder object and the same can be used in case of NormalOrder object. Now it is important to understand the time sequence of message flows. The message flow is nothing but a method call of an object. The first call is sendOrder () which is a method of Order object. The next call is confirm () which is a method of SpecialOrder object and the last call is Dispatch () which is a method of SpecialOrder object. So here the diagram is mainly describing the method calls from one object to another and this is also the actual scenario when the system is running.

The Collaboration Diagram:


The second interaction diagram is collaboration diagram. It shows the object organization as shown below. Here in collaboration diagram the method call sequence is indicated by some numbering technique as shown below. The number indicates how the methods are called one after another. We have taken the same order management system to describe the collaboration diagram. The method calls are similar to that of a sequence diagram. But the difference is that the sequence diagram does not describe the object organization where as the collaboration diagram shows the object organization. Now to choose between these two diagrams the main emphasis is given on the type of requirement. If the time sequence is important then sequence diagram is used and if organization is required then collaboration diagram is used.

CSE Department, VNRVJIET

130 www.jntuworld.com

www.jntuworld.com

Where to use Interaction Diagrams?


We have already discussed that interaction diagrams are used to describe dynamic nature of a system. Now we will look into the practical scenarios where these diagrams are used. To understand the practical application we need to understand the basic nature of sequence and collaboration diagram. The main purposes of both the diagrams are similar as they are used to capture the dynamic behaviour of a system. But the specific purposes are more important to clarify and understood. Sequence diagrams are used to capture the order of messages flowing from one object to another. And the collaboration diagrams are used to describe the structural organizations of the objects taking part in the interaction. A single diagram is not sufficient to describe the dynamic aspect of an entire system so a set of diagrams are used to capture is as a whole. The interaction diagrams are used when we want to understand the message flow and the structural organization. Now message flow means the sequence of control flow from one object to another and structural organization means the visual organization of the elements in a system. In a brief the following are the usages of interaction diagrams: To model flow of control by time sequence. To model flow of control by structural organizations. For forward engineering. For reverse engineering.

Overview:
The name of the diagram itself clarifies the purpose of the diagram and other details. It describes different states of a component in a system. The states are specific to a component/object of a system.

CSE Department, VNRVJIET

131 www.jntuworld.com

www.jntuworld.com
A Statechart diagram describes a state machine. Now to clarify it state machine can be defined as a machine which defines different states of an object and these states are controlled by external or internal events. Activity diagram explained in next chapter, is a special kind of a Statechart diagram. As Statechart diagram defines states it is used to model lifetime of an object.

Purpose:
Statechart diagram is one of the five UML diagrams used to model dynamic nature of a system. They define different states of an object during its lifetime. And these states are changed by events. So Statechart diagrams are useful to model reactive systems. Reactive systems can be defined as a system that responds to external or internal events. Statechart diagram describes the flow of control from one state to another state. States are defined as a condition in which an object exists and it changes when some event is triggered. So the most important purpose of Statechart diagram is to model life time of an object from creation to termination. Statechart diagrams are also used for forward and reverse engineering of a system. But the main purpose is to model reactive system. Following are the main purposes of using Statechart diagrams: To model dynamic aspect of a system. To model life time of a reactive system. To describe different states of an object during its life time. Define a state machine to model states of an object.

How to draw Component Diagram?


Statechart diagram is used to describe the states of different objects in its life cycle. So the emphasis is given on the state changes upon some internal or external events. These states of objects are important to analyze and implement them accurately. Statechart diagrams are very important for describing the states. States can be identified as the condition of objects when a particular event occurs. Before drawing a Statechart diagram we must have clarified the following points: Identify important objects to be analyzed. Identify the states. Identify the events. The following is an example of a Statechart diagram where the state of Order object is analyzed. The first state is an idle state from where the process starts. The next states are arrived for events like send request, confirm request, and dispatch order. These events are responsible for state changes of order object. During the life cycle of an object (here order object) it goes through the following states and there may be some abnormal exists also. This abnormal exit may occur due to some problem in the
CSE Department, VNRVJIET

132 www.jntuworld.com

www.jntuworld.com
system. When the entire life cycle is complete it is considered as the complete transaction as mentioned below. The initial and final state of an object is also shown below.

Where to use Interaction Diagrams?


From the above discussion we can define the practical applications of a Statechart diagram. Statechart diagrams are used to model dynamic aspect of a system like other four diagrams disused in this tutorial. But it has some distinguishing characteristics for modeling dynamic nature. Statechart diagram defines the states of a component and these state changes are dynamic in nature. So its specific purpose is to define state changes triggered by events. Events are internal or external factors influencing the system. Statechart diagrams are used to model states and also events operating on the system. When implementing a system it is very important to clarify different states of an object during its life time and statechart diagrams are used for this purpose. When these states and events are identified they are used to model it and these models are used during implementation of the system. If we look into the practical implementation of Statechart diagram then it is mainly used to analyze the object states influenced by events. This analysis is helpful to understand the system behaviour during its execution. So the main usages can be described as: To model object states of a system. To model reactive system. Reactive system consists of reactive objects. To identify events responsible for state changes. Forward and reverse engineering.
CSE Department, VNRVJIET

133 www.jntuworld.com

www.jntuworld.com

Overview:
Activity diagram is another important diagram in UML to describe dynamic aspects of the system. Activity diagram is basically a flow chart to represent the flow form one activity to another activity. The activity can be described as an operation of the system. So the control flow is drawn from one operation to another. This flow can be sequential, branched or concurrent. Activity diagrams deals with all type of flow control by using different elements like fork, join etc.

Purpose:
The basic purposes of activity diagrams are similar to other four diagrams. It captures the dynamic behaviour of the system. Other four diagrams are used to show the message flow from one object to another but activity diagram is used to show message flow from one activity to another. Activity is a particular operation of the system. Activity diagrams are not only used for visualizing dynamic nature of a system but they are also used to construct the executable system by using forward and reverse engineering techniques. The only missing thing in activity diagram is the message part. It does not show any message flow from one activity to another. Activity diagram is some time considered as the flow chart. Although the diagrams looks like a flow chart but it is not. It shows different flow like parallel, branched, concurrent and single. So the purposes can be described as: Draw the activity flow of a system. Describe the sequence from one activity to another. Describe the parallel, branched and concurrent flow of the system.

How to draw Component Diagram?


Activity diagrams are mainly used as a flow chart consists of activities performed by the system. But activity diagram are not exactly a flow chart as they have some additional capabilities. These additional capabilities include branching, parallel flow, swimlane etc. Before drawing an activity diagram we must have a clear understanding about the elements used in activity diagram. The main element of an activity diagram is the activity itself. An activity is a function performed by the system. After identifying the activities we need to understand how they are associated with constraints and conditions. So before drawing an activity diagram we should identify the following elements: Activities Association Conditions Constraints

CSE Department, VNRVJIET

134 www.jntuworld.com

www.jntuworld.com
Once the above mentioned parameters are identified we need to make a mental layout of the entire flow. This mental layout is then transformed into an activity diagram. The following is an example of an activity diagram for order management system. In the diagram four activities are identified which are associated with conditions. One important point should be clearly understood that an activity diagram cannot be exactly matched with the code. The activity diagram is made to understand the flow of activities and mainly used by the business users. The following diagram is drawn with the four main activities: Send order by the customer Receipt of the order Confirm order Dispatch order After receiving the order request condition checks are performed to check if it is normal or special order. After the type of order is identified dispatch activity is performed and that is marked as the termination of the process.

Where to use Interaction Diagrams?


The basic usage of activity diagram is similar to other four UML diagrams. The specific usage is to model the control flow from one activity to another. This control flow does not include messages. The activity diagram is suitable for modeling the activity flow of the system. An application can have multiple systems. Activity diagram also captures these systems and describes flow from one system to another. This specific usage is not available in other diagrams. These systems can be database, external queues or any other system.

CSE Department, VNRVJIET

135 www.jntuworld.com

www.jntuworld.com
Now we will look into the practical applications of the activity diagram. From the above discussion it is clear that an activity diagram is drawn from a very high level. So it gives high level view of a system. This high level view is mainly for business users or any other person who is not a technical person. This diagram is used to model the activities which are nothing but business requirements. So the diagram has more impact on business understanding rather implementation details. Following are the main usages of activity diagram: Modeling work flow by using activities. Modeling business requirements. High level understanding of the system's functionalities. Investigate business requirements at a later stage.

CSE Department, VNRVJIET

136 www.jntuworld.com

Potrebbero piacerti anche