UML”?

) What is UML?

The Unified Modeling Language (UML) is a graphical language for visualizing, specifying,

constructing, and documenting the artifacts of a software-intensive system.UML provides

blue prints for business process, System function, programming language statements,

database schemas and reusable components.

(I) How many types of diagrams are there in UML ?

Twist :- Explain in short all types of diagrams in UML ?

There are nine types of diagrams in UML :-

Use case diagram:

They describe “WHAT” of a system rather than “HOW” the system does it.They are

used to identify the primary elements and processes that form the system. The primary

elements are termed as “actors” and the processes are called “use cases”. Use Case diagrams

shows “actors” and there “roles”.

Class diagram:

From the use case diagram we can now go to detail design of system, for which the

primary step is class diagram. The best way to identify classes is to consider all “NOUNS”

in use cases as classes, “VERBS” as methods of classes, relation between actors can then

be used to define relation between classes. The relationship or association between the

classes can be either an “is-a” or “has-a” relationship which can easily be identified from

use cases.

Object diagram:

An object is an instance of a class. Object diagram captures the state of classes in the

system and their relationships or associations at a specific point of time.

State diagram:

A state diagram, as the name suggests, represents the different states that objects in the

system undergo during their life cycle. Object change in response to certain simulation so

 

this simulation effect is captured in state diagram. So basically it has a initial state and

final state and events that happen in between them. Whenever you think that some

simulations are complicated you can go for this diagram.

Sequence diagram:

Sequence diagrams can be used to explore the logic of a complex operation, function, or

procedure. They are called sequence diagrams because sequential nature is shown via

ordering of messages. First message starts at the top and the last message ends at bottom.

The important aspect of a sequence diagram is that it is time-ordered. This means that

the exact sequence of the interactions between the objects is represented step by step.

Different objects in the sequence diagram interact with each other by passing “messages”.

Collaboration diagram:

A collaboration diagram groups together the interactions between different objects to

fulfill a common purpose.

Activity diagram:

Activity diagram is typically used for business process modeling, for modeling the logic

captured by a single use case, or for visualizing the detailed logic of a business

rule.Complicated process flows in the system are captured in the activity diagram. Similar

to a state diagram, an activity diagram also consists of activities, actions, transitions,

initial and final states, and guard conditions. But difference is state diagrams are in context

of simulation while activity gives detail view of business logic.

Deployment diagram:

Deployment diagrams show the hardware for your system, the software that is installed

on that hardware, and the middleware used to connect the disparate machines to one

another. It shows how the hardware and software work together to run a system. In one

line its shows the deployment view of the system.

Component diagram:

The component diagram represents the high-level parts that make up the system. From

.NET angle point of view they form the “NAMESPACES”. This diagram depicts, at a

344

high level, what components form part of the system and how they are interrelated. Its

shows the logical grouping of classes or group of other components.

Note :- The best way to remember all the blocks of UML is “Serve cool SOUP during

church ceremony” that covers State chart, Class diagrams, Sequence diagram, Object

diagram, Use Case diagram, Package diagram, Deployment diagram, Collaboration

diagram, Component diagram.

(B) What are advantages of using UML?

Twist: – What is Modeling and why UML ?

As the name suggest UNIFIED MODELING LANGUAGE. Modelling has been around

for years, not only in software field but also in other trades like civil, mechanical etc.

Example in civil engineering drawing the main architecture built of diagram is a model by

itself. Modelling makes complex and huge system to break up in to simple and discrete

pieces that can be individually understood. Example simple flowchart drawing is modeling.

There are two main advantages of modeling:-

Readability: – Representing your whole architecture in flowchart, class diagrams,

ER diagrams etc makes your project more readable. Especially when

programmer’s change jobs handover becomes easier. More the project is not

readable more the dependencies.

Reusability: – After the system is more readable and broken down to pieces, it

becomes easier to identify redundant and similar modules. Thus increasing

reusability.

So why UML? Well different languages have different ways of coding and syntaxes. In

order to bring all languages in one roof UML is in to picture. As the term comes in

UNIFIED, it unifies all disparate languages in one roof so that can be understood by

people who are working on some other platforms.

(A)What is the sequence of UML diagrams in project?

Twist: – How did you implement UML in your project?

First let me say some fact about this question, you can not implement all the nine diagrams

given by UML in one project; you can but can be very rare scenario. The way UML is

implemented in project varies from project to project and company to company.

345

Second very important point to remember is normally all diagrams are not implemented

in project, but some basic diagrams are important to have in order that project is readable.

When we talk about projects every project have phases example (Requirements phase,

design phase, coding phase etc ). As every phase of the software cycle proceeds these

diagrams come in picture. Some diagrams span across multiple phases.

Note: – If you want to have a detail about software life cycle look out for chapter “Project

Management”.

Normally following are different basic phases:-

Requirement phase (Use Case Diagrams, Activity diagrams)

Requirement phase is the phase where you normally gather requirement and Use Cases

are the best things to make explanation of the system. In requirement phase you can

further make complicated Use Cases more simple and easy to understand by using activity

diagrams, but I do not see it as must in every project. If the Use cases are really complicated

go for a Activity diagram. Example CRUD (creates, read, update and delete) operation

use cases have no significance for making activity diagrams. So in short the outcome

UML documents from requirement phase will be Use Case and Activity diagram documents

(Activity diagram documents will only be there if there are complicated Use Cases to be

simplified).

Just a small Twist: – Do I need all UML diagrams in a project?

Note: – This question is specially asked to know have you actually used UML. I have seen

many guys trying to give some jack of all answers saying “YES”. Beware it is a trap.

Not all diagrams are needed in project example: – Activity diagrams will only be needed

when you want some simplified look of a complicated use case.

Design phase (Class diagrams, object diagrams, Component diagrams,

Collaboration diagrams, Deployment diagrams, Sequence diagrams)

Design phase is the phase where you design your technical architecture of your project.

Now again in this you do not use all UML documents of a project.

But the next document after the Use Case document will be the Component diagram.

Component diagrams form a high level classification of the system. So after “Use Cases”

just try to come out with a high level classification / grouping of related functionalities.

346

This should be compulsory diagram as outcome of this document will form

“NAMESPACES” structure of .NET project.

Ok now once your high level grouping is done you can go ahead with class diagrams.

Especially from Use Case you get the “NOUNS” and “VERBS” which can form the class

name and the method name respectively. From my point of view class diagrams should

be compulsory in projects.

Object diagrams are not compulsory it depends on how complicated your project. Object

diagrams shows the relation between instances of class at runtime. In short it captures

the state and relation of classes at any given moment of time. Example you have class

which creates objects of different classes, its like a factory. In class diagram you will only

show that it as a simple class with a method called as “CreateObject”. But in object

diagrams actually you will show the types of instances create from that object.

Collaboration diagrams mainly depict interaction between object to depict some purpose.

I find this diagram to be more useful than Object diagrams as they are addressed for some

purpose example “Login Process” which will use “Login object”, “User Object” etc to

fulfill the login purpose. So if you find the process very complicated go for this diagram.

I see as a thumb rule if there is an activity diagram which show some serious complicated

scenarios. I will like to go for this diagram in order to simplify the explanation.

State chart diagram is again created if your project requires it. If your project has some

complicated start and end states to show then this diagram is most useful. Recently I was

making a call center project where the agent phone pickup and hang state has to be

depicted. So my first state was when agent picks up the phone and the final stage was

when agent hangs the phone, in between process was very complicated, which can only

be shown by using state chart diagrams.

Sequence diagrams are needed if some sequence is complicated. Do not confuse sequence

diagrams with Activity diagram, Activity diagrams map to a Use Case while sequence

diagrams show object interaction in sequence.

Deployment diagrams are again not a compulsory requirement. It will show the hardware

and software deployment of your system. If you really have leisure in your project go for

it or if you want to make the client smile seeing some diagrams.

Implementation phase / Coding phase (Class diagrams for reverse

347

engineering, Other diagrams for validity check)

In this phase mostly class diagrams are re-engineered with the source code. But other

diagrams are also present for validity check example state chart diagrams will be used in

case to check that the both activity between those states follow the proper logic. If some

things have to be changed then again there is iteration backward to the Requirement

phase.

Testing phase

This phase mostly goes for the testing department. I am not talking about preparing UTP

plans but SITP plans. Where the testing department will look at all diagrams to prepare a

test plan and execute it. Example it will see the Use Case document to see the business

rules, it will see the activity diagram and sequence diagrams to see the proper flow of

modules. If some things are not proper there is iteration back to the Design phase.

Roll out and close over phases.

All document just to re-check that things are proper, example all modules deployed

according to the deployment diagrams, are all business rules in Use Cases satisfied.

Let us revise the following points:-

Not all diagrams are compulsory.

The minimum diagrams according to software life cycle phases are :-

Requirement phase: – Use Case Diagrams

Design Phase: – Component diagrams, Class diagrams

Implementation phase: – All diagrams derived from pervious phases

specially class diagram for reverse engineering.

Testing phase: – All diagrams derived from requirement and design phases

for verification and preparing test plans.

Roll out and close over phase: – All document derived from Design phase

and requirement phases.

Below is a sample figure which shows all the documents in relevant phases.

348

Figure :-11.1 Phase mapping with UML documents

349

Note:- This book will now attempt to describe every element of a UML diagram. But it is

advisable that you should install any decent UML tool and do a small practice of one or

two diagrams which will make you comfortable during interview.

(A)Give a small brief explanation of all Elements in activity diagrams?

Figure :- 11.2 Elements of Activity Diagram

Action State :- It is a type of state that has an internal action and one outgoing event that

would complete the internal action.

State :- It is a condition when following events occur:-

350

Object satisfies a condition.

Or performs a action.

Or wait for a event to happen.

Initial State:- It represents a state before any event occurs.

Final State:- Represents completion of an activity.

Transition Fork::- Denotes beginning of parallel path activities.

Transition Join: – Denotes merging of parallel path activities.

Control Flow: – Represents relationship between two states and actions. In short it indicates

that an object in one state is entering some other state.

Object Flow: – Connects an object flow state to control flow or action state.

Object in State: – Indicate the object’s state after manipulation by multiple activities.

Decisions: – Defines if there are any condition’s in the path.

Swim Lanes: – Assigns responsibility to action states.

Signal receipt Shape: – Used to replace an event label on a transition.

Signal Send Shape: – Used to replace an event label on a transition.

Constraint: – Conditions that must be maintained true in order the system is valid.

351

2-Element Constraint: – It show a constraint on two classes or associations.

OR constraint: – It show an OR constraint on two classes or associations.

(A) Explain Different elements of a collaboration diagram ?

Figure :- 11.3 Elements of Collaboration Diagrams

Classifier Role :- It classifies a role.

Association Role :- It shows the relation between two classifier roles.

Multi-Object :- It used to show operation related to entire set of objects rather than on a

single object.

Constraint :- Conditions which must be maintained as true in order that system is valid.

352

2-Element Constraint: – It shows a constraint on two classes or associations.

OR constraint: – It shows an OR constraint on two classes or associations.

(A) Explain Component diagrams ?

Figure :- 11.4 Elements of component diagrams

Package: – It logically make group of element of a UML model.

Component: – It’s the actual implementation or physical module of a UML system.

353

Node: – A physical system which represents a processing resource, example PC or a host

machine.

InterFace :- It specifies the externally operations of a class, component, package, or other

element without specifying internal structure.

Dependency :- Shows relationship between two elements.

2-Element Constraint: – It shows a constraint on two classes or associations.

OR constraint: – It shows an OR constraint on two classes or associations.

354

(A) Explain all parts of a deployment diagram?

Figure : – 11.5 Elements of Deployment Diagram

Package: – It logically groups element of a UML model.

Node: – A physical system which represents a processing resource, example PC or a host

machine.

Component: – It’s the actual implementation or physical module of a UML system.

Node instance: – It’s a runtime physical instance of a processing resource.

355

Component Instance: – It represents an implementation unit that has identity at run time

and can contain objects. A component could be contained within a node instance.

InterFace :- It specifies the external operations of a class, component, package, or other

element without specifying internal structure.

Object: – Instance of a class.

Composition shape: – It is a form of aggregation that indicates that a part may belong to

only one element or life time of the element.

Communication: – How an actor Dependency: – Shows relationship between two elements.

2-Element Constraint: – It shows a constraint on two classes or associations.

OR constraint: – It shows an OR constraint on two classes or associations.

356

(A) Describe the various components in sequence diagrams?

Figure :-11.6 Elements of Sequence diagrams

Object lifeline: – It represents the lifetime of an object creation and its destruction. If the

object is created or destroyed during the time period the diagram represents, then the

lifeline stops or starts at the appropriate point. An object’s destruction is marked with a

large X.

Activation: – It’s time period during which actor is performing a action.

Lifeline :- This says that there exists some condition on the object lifetime.

357

Message: – It shows communication between objects that conveys information and results

in an action.

Message (call):- It’s same like message but also conveys some information and results in

action.

All messages have same definition as the Message (Call) given above.

2-Element Constraint: – It shows a constraint on two classes or associations.

OR constraint: – It shows an OR constraint on two classes or associations.

358

(A) What are the element in State Chart diagrams ?

Figure :- 11.7 Elements of State Chart Diagrams

State: – It’s a condition when following events occur:-

Object satisfies a condition.

Or performs a action.

Or waits for a event to happen.

359

Composite State :- It has one or more sub states.

Initial State: – It represents a state before any event occurs.

Final State: – Represents completion of an activity.

Transition :- Shows the change of one state to other.

Transition Fork: – Denotes beginning of parallel path activities.

Transition Join: – Denotes merging of parallel path activities.

Decision: – Indicates condition to move to different states.

Shallow History: – Represents the state last visited. When a transition to the indicator

fires, an object resumes the state it last had at the same level as the history indicator.

Deep history: A deep history allows you to return from whatever sub-state,

whereas a shallow one only remembers the initial state of a composite state.

2-Element Constraint: – It shows a constraint on two classes or associations.

OR constraint: – It shows an OR constraint on two classes or associations.

360

(A)Describe different elements in Static Chart diagrams ?

Figure :- 11.8 Elements of Static diagrams

Package: – It logically groups element of a UML model.

Class: – They describe set of objects with similar structure, behavior, and relationships.

Data Type :- A data type is an instance of the DataType metaclass defined in the UML

metamodel. A data type declares a type of class attribute. This type is available as a

string, you can include it when you define attributes for other elements in a model.

361

Interface :- It specifies the externally operations of a class, component, package, or other

element without specifying internal structure.

Generalization: – It is a relationship between a specific element and a general element,

such that the specific element is fully consistent with the general element and includes

additional information (such as attributes and associations). For example, the classes Car,

Bike, Cycle can all be specific elements of a more general abstract class element named

vehicle.

Binary Association: – It’s a relationship between two classes.

Composition: – A composition is a form of aggregation that indicates that a part may

belong to only one whole and that the lifetime of the whole determines the lifetime of

the part.

Dependency: – Shows relationship between two elements.

Utility : – Whatever Attributes and operations you define for a utility become global

variables and procedures.

Subsystem: – It is a package that contains the contents of the entire system or an entire

model within the system.

Parameterized class: – It is a template that describes a class with one or more unbound

formal parameters.

Binding: – It is a kind of dependency that indicates a binding of parameterized class or

template, parameters to actual values to create a bound, or no parameterized, element.

Bound element : – Parameters of the parameterized class are bound to actual values.

Object: – Represents instance of a class.

Link: – Represents Links between objects.

N-ary Link: – Represents link between an objects.

Meta-Class: – Whose instances are classes.

Signal: – Specifies stimulus between classes for which there is no reply. It is an element

which can be generalized and is defined independently of the classes handling the signal.

Exception: – Signal raised because of bad execution.

Trace: – Indicates historical relationship between two elements.

362

Refinement: – Refinement is a kind of dependency that indicates a historical or derivation

relationship between two elements with a mapping between them.

Usage : – Usage is a kind of dependency that indicates that one element requires the

presence of another element for its correct implementation or functioning.

2-Element Constraint: – It shows a constraint on two classes or associations.

OR constraint: – It shows an OR constraint on two classes or associations.

(A)Explain the different elements of a Use Case ?

363

Figure :-11.9 Different Elements of Use Case

Package: – It logically groups element of a UML model.

Use Case :- It represents a set of events.

Actor : – Role played by an outside object.

Interface :- It specifies the externally operations of a class, component, package, or other

element without specifying internal structure.

Communication: – How an actor Dependency shows relationship between two elements.

364

Extends: – Indicates that the elements come in parent child relationship where one element

inherits other elements behavior.

Uses: – Here one element uses the other elements behavior. The main difference between

Extends and Uses is a “Is a” and “Has a” relationship. “Is a” relationship defines a child

parent relationship. Example “XYZ” is a child of “PQR”. “Has a” relationship defines an

aggregation relationship that “XYZ” has a “BLUE SHIRT”.

System boundary: – Indicates the system boundary of a Use case.

2-Element Constraint: – It shows a constraint on two classes or associations.

OR constraint: – It shows an OR constraint on two classes or associations.

Twist: – What is the difference between Activity and sequence diagrams?(I leave this to the

readers)

365

Note:- This topic is meant specially for .NET programmers who are looking for better

position rather than simple programmer jobs. Project management is not everybody’s cup of

tea. I have seen 10 year good decent technical guys do not get this position easily. But street

smart programmers with average technical guys do really well. How much ever I try to cover

this topic in this book…..it has so many variations that it’s really difficult to predict every

scenario of project management interview. But definitely I will try to cover the basics by

which you can at least get a feel of what is asked.

(B) What is project management?

Applying knowledge, skills, tools, techniques in project and deliver project deliverables is

a short definition of project management.It’s basically managing project time, cost and

scope.

(A) Is spending in IT projects constant through out the

project?

Note:- It’s a tricky question, to know how much depth you have regarding costing of projects.

Normally in initial stage of projects (requirement and design phase) the cost is very less

(as you need maximum business analyst and architecture), but as the project proceeds

cost factor starts increasing. The cost is maximum in coding phase (this is where you

require programmers, project leads and project manager). Later when the project is in

testing and acceptance phase cost is less as we will need only one or two programmers for

removing bugs, than the whole team.

Advertisements

One Response to “UML”?”

  1. deboprasad Says:

    very nice and practical answer.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: