CS8592 – OBJECT ORIENTED
ANALYSIS AND DESIGN
(III YEAR/V SEM)
(ANNA UNIVERSITY – R2017)
Department of CSE, K.Ramakrishnan College
1 of Engineering, Trichy 8/8/2019
Vision and Mission
Vision:
“ To achieve a prominent position among the top technical
institutions ”
Mission:
To bestow standard technical education par excellence
through state of the art infrastructure, competent faculty and
high ethical standards.
To nurture research and entrepreneurial skills among
students in cutting edge technologies.
To provide education for developing high-quality
professionals to transform the society
Department of CSE, K.Ramakrishnan College
2 of Engineering, Trichy 8/8/2019
Program Outcome (PO’s)
Engineering Knowledge
Problem Analysis
Design or Development of solutions
Conduct investigation of complex problems
Modern Tools Usage
The engineer and society
Environment and Sustainability
Ethics
Individual and Team work
Communication
Project management and finance
Life long learning
Department of CSE, K.Ramakrishnan College
3 of Engineering, Trichy 8/8/2019
Program Specific Outcome (PSO’s)
To analyze, design and develop computing solutions by
applying foundation concepts of computer science and
engineering
To apply software engineering principles and practices for
developing quality software for scientific and business
applications
To adapt to emerging information and communication
technologies (ICT) to innovate ideas and solutions for
existing / novel problems.
Department of CSE, K.Ramakrishnan College
4 of Engineering, Trichy 8/8/2019
Course Outcomes (Cos)
Express software design with UML diagrams (PO1,PO3,
PO6)
Design software applications using OO Concepts
(PO1,PO2,PO3, PO6)
Identify various scenarios based on software requirements
(PO1,PO2)
Transform UML based software design to pattern based
design using design patterns(PO1,PO3)
Understand the various testing methodologies for OO
Software (PO1,PO6)
Department of CSE, K.Ramakrishnan College
5 of Engineering, Trichy 8/8/2019
Blooms taxonomy levels
K1 – Remembering
K2-Understanding
K3-Apply
K4-Analyze
K5-Evaluate
K6-Create
Department of CSE, K.Ramakrishnan College
6 of Engineering, Trichy 8/8/2019
UNIT I
UNIFIED PROCESS AND USE CASE
DIAGRAMS
Department of CSE, K.Ramakrishnan College of
7 Engineering, Trichy 8/8/2019
Introduction to OOAD
Object Orientated System Development:
Object oriented method of building software
Software is a collection of discrete objects that
encapsulates their data and the functionality that
manipulates the data
Department of CSE, K.Ramakrishnan College
8 of Engineering, Trichy 8/8/2019
In OO System,
Everything is an object(Any real world entity).
Example: Customer, Car, Book, Hotel, Pilot, etc…
Each object is responsible for itself.
Each object has an attributes(data) and methods (functions).
Example: Car has an attributes such as model no, color, speed,
cost. It has methods start(), accelerate(), turnright(), turnleft(),
gearup(), geardown(), stop().
Objects are grouped into classes
Interactions through message passing (A sender object sends a
request (message) to another object (receiver) to invoke a
method of the receiver object’s)
Department of CSE, K.Ramakrishnan College
9 of Engineering, Trichy 8/8/2019
Example
Class Car
<<instanceOf>>
Attributes
Model
Location
#Wheels = 4
<<instanceOf>>
Operations
Start
Accelerate
<<instanceOf>>
Department of CSE, K.Ramakrishnan College of
Engineering, Trichy 8/8/2019
Why Object Orientation? (Benefit of object orientation)
Higher levels of abstraction
Objects encapsulates data (attributes) and functions(methods). So
internal details are hidden from outside.
Support abstraction at object level.
Seamless transition among different phases of software development
Reduce the level of complexity and redundancy makes for clearer
and robust system development.
Encouragement of good programming techniques
Easy to produce more modular and reusable code through classes
and inheritance using OO language (C++,java…)
Promotion of reusability
Classes are designed generically with reuse as a constant
background goal in OO system using inheritance.
Department of CSE, K.Ramakrishnan College
11 of Engineering, Trichy 8/8/2019
Object-Oriented Analysis
An investigation of the problem (rather than
how a solution is defined)
During OO analysis, there is an emphasis on
finding and describing the objects (or concepts)
in the problem domain.
For example, concepts in a Library Information
System include Book, and Library.
Also called domain objects, entities.
Department of CSE, K.Ramakrishnan College of
12 Engineering, Trichy 8/8/2019
Object-Oriented Design
Emphasizes a conceptual solution that fulfills the
requirements.
Need to define software objects and how they
collaborate to meet the requirements.
For example, in the Library Information System, a Book
software object may have a title attribute and a
getBookDetails() method.
• What are the methods needed to process the
attributes?
Designs are implemented in a programming language.
In the example, we will have a Book class in Java.
Department of CSE, K.Ramakrishnan College of
Engineering, Trichy 13 8/8/2019
Analysis
Design Construction
investigation
logical solution code
of the problem
Book public class Book {
Book private String title;
(concept) Title : string public void getBookDetails()
{...}
getBookDetails(
) }
Domain concept Visual Representation of Representation in an
Domain concepts object-oriented
programming language.
Department of CSE, K.Ramakrishnan College
of Engineering, Trichy 14 8/8/2019
Analysis: - investigate the problem and the requirements.
What is needed? Required functions? Investigate domain objects.
Problem Domain
The Whats of a system.
Do the right thing (analysis)
Design:
Conceptual solution that meets requirements.
Not an implementation
E.g. Describe a database schema and software objects.
The Solution Domain
The ‘Hows’ of the system
Do the thing right (design)
Department of CSE, K.Ramakrishnan College
15 of Engineering, Trichy 8/8/2019
OOA: we find and describe business objects or
concepts in the problem domain
OOD: we define how these software objects
collaborate to meet the requirements.
Attributes and methods.
OOP: Implementation: we implement the design
objects in, say, Java, C++, C#, etc.
Department of CSE, K.Ramakrishnan College
16 of Engineering, Trichy 8/8/2019
Unified Process (UP)
• The Unified Process is a popular iterative software
development process for building object oriented system.
• Iterative and evolutionary development involves
relatively early programming and testing of a partial
system, in repeated cycles.
• It typically also means that development starts before the
exact software requirements have been specified in detail;
• Feedback (based on measurement) is used to clarify,
correct and improve the evolving specification
• Rational Unified Process (RUP) – Detailed Refinement
of unified process
Department of CSE, K.Ramakrishnan College
of Engineering, Trichy 8/8/2019
17
Iterative and Incremental
Architecture Centric
Risk focussed
Department of CSE, K.Ramakrishnan College
18 of Engineering, Trichy 8/8/2019
Phases of Unified process
Department of CSE, K.Ramakrishnan College
19 of Engineering, Trichy 8/8/2019
Inception
Communication and Planning
Feasibility study
Establish the business case for the project
Establish the project scope and boundary condition
Outline the usecases and key requirements
Outline the rough architecture
Identify risks
Prepare rough project schedule and cost estimation.
Department of CSE, K.Ramakrishnan College
20 of Engineering, Trichy 8/8/2019
Elaboration
Planning and Modelling
Refines and expands the preliminary use cases that were
developed as part of the inception phase.
Expands the architectural representation to include five
different views of the software such as Use case model,
Requirements model, Design model, Implementation
model and Deployment model.
Establish and validate system architecture through
implementation of executable architecture base line (Partial
implementation of the system contains only core functionality) .
Its built in series of small time boxed iterations.
Final elaboration phase deliverable is plan for construction
phase (include cost and schedule)
Department of CSE, K.Ramakrishnan College
21 of Engineering, Trichy 8/8/2019
Construction
Remainder of the system is built on foundation laid
in elaboration phase
System features are implemented in series of short
time boxed iterations.
Each iteration results in executable release of
software
As components are being implemented, unit tests
are designed and executed for each and Integration
activities are conducted.
.
Department of CSE, K.Ramakrishnan College
22 of Engineering, Trichy 8/8/2019
Transition
System is deployed to target users
Feedback received from initial release may result in further
refinement.
The software team creates the necessary support information
(e.g., User manuals, Troubleshooting guides, installation
procedures) that is required for the release.
At the conclusion of the transition phase, the software increment
becomes a usable software release
Production
The ongoing use of the software is monitored, support for the
operating environment (infrastructure) is provided, and defect
reports and requests for changes are submitted and evaluated.
Department of CSE, K.Ramakrishnan College
23 of Engineering, Trichy 8/8/2019
Department of CSE, K.Ramakrishnan College
24 of Engineering, Trichy 8/8/2019
UML Diagrams
(Unified Modeling Language )
A language for visualizing, specifying, constructing, and
documenting the artifacts of a software-intensive system
The UML is a very important part of developing object
oriented software and the software development
process.
UML is a modeling language to express and design
documents, software.
Particularly useful for OO design
Independent of implementation language
Department of CSE, K.Ramakrishnan College
8/8/2019
of Engineering, Trichy 25
Goals in design of UML
Provide users a ready – to use expressive visual modeling
language so they can develop and exchange meaningful models.
Provide extensibility and specialization mechanism to extend the
core concepts.
Be independent of particular programming language and
development process.
Provide a formal basis for understanding the m7. odeling
language.
Encourage the growth of the OO tools market.
Support higher – level development concepts.
Integrate best practices and methodologies.
Department of CSE, K.Ramakrishnan College
26 of Engineering, Trichy 8/8/2019
Three ways to apply UML
UML as a sketch – informal and incomplete diagram to explore difficult parts
of problem
UML as blueprint – Detailed design diagrams used either for reverse
engineering(Code to diagram) and forward engineering(diagram to code).
UML as programming language – complete executatble specification of
software system in UML. Executable code will be automatically generated.
Three perspectives to apply UML
Conceptual Perspectives
Describing things in the domain of interest
Specification Perspectives
Describing software abstractions, but no commitment to a particular
implementation
Implementation Perspectives
Describing implementations in a particular technology
Department of CSE, K.Ramakrishnan College
27 of Engineering, Trichy 8/8/2019
Department of CSE, K.Ramakrishnan College
28 of Engineering, Trichy 8/8/2019
UML Diagrams
Static diagrams (Structural Diagram)
Class Diagram
Object Diagram
Component Diagram
Deployment Diagram
Package Diagram
Behaviour diagrams
Use case Diagram
Activity Diagram
Interaction Diagram
Sequence Diagram
Collaboration Diagram
State Chart Diagram
Department of CSE, K.Ramakrishnan College
29 of Engineering, Trichy 8/8/2019
Usecase Diagram:
Use case diagram shows an interaction between users (Actors) and system
Usecase - Scenarios in which your system or application interacts with people,
organizations, or external systems
Department of CSE, K.Ramakrishnan College of
30 Engineering, Trichy 8/8/2019
Example use case diagram for passport automation system
login
submit details
passport
applicant administrator
check status
get details
regional
administrator
police verify
store verification
issue passport
Department of CSE, K.Ramakrishnan College
31 of Engineering, Trichy 8/8/2019
Class Diagram:
Class Diagram gives the static view of an application.
A class can refer to another class. A class can have its objects or may inherit from
other classes.
UML Class Diagram gives an overview of a software system by displaying classes,
attributes, operations, and their relationships.
This Diagram includes the class name, attributes, and operation in separate designated
compartments.
Department of CSE, K.Ramakrishnan College
32 of Engineering, Trichy 8/8/2019
Example Class Diagram for passport automation system
Department of CSE, K.Ramakrishnan College
33 of Engineering, Trichy 8/8/2019
Object Diagram
Object diagrams are derived from class diagrams so object diagrams are
dependent upon class diagrams.
Object diagrams represent an instance of a class diagram.
Object diagrams also represent the static view of a system but this static view is a
snapshot of the system at a particular moment
Department of CSE, K.Ramakrishnan College
34 of Engineering, Trichy 8/8/2019
Activity Diagram:
Activity diagram describe the dynamic aspects of the system. Activity diagram is
basically a flowchart to represent the flow from one activity to another activity.
Department of CSE, K.Ramakrishnan College
35 of Engineering, Trichy 8/8/2019
Example activity diagram for passport automation system
login
submit
details
get details
verification
penalty as
issue
per law
passport
Department of CSE, K.Ramakrishnan College
36 of Engineering, Trichy 8/8/2019
Sequence Diagram: (Interaction Diagram)
Sequence Diagrams depicts interaction between objects in a sequential order i.e. the
order in which these interactions take place
It shows timeline which show the order of the interaction visually by using the vertical
axis of the diagram to represent time what messages are sent and when.
Department of CSE, K.Ramakrishnan College of
38 Engineering, Trichy 8/8/2019
Example sequence diagram for passport automation system
applicant passport regional police database
administrator administrator
1: login
2: give details
3: store the details
4: verify the details
5: update the details
6: send details
7: verify details
8: send verification
9: update the details
10: send details
11: verify the details
12: send verification
13: update the details
14: issue passport
Department of CSE, K.Ramakrishnan College
39 of Engineering, Trichy 8/8/2019
Collaboration Diagram (Interaction Diagram)
A collaboration diagram is a type of interaction diagram that shows how various
software objects interact with each other within an overall IT architecture and how
users can benefit from this collaboration. It shows clear view of interaction between
objects. Messages are sequentially numbered. Its generated from sequence diagram
Department of CSE, K.Ramakrishnan College of
40 Engineering, Trichy 8/8/2019
Example collboration diagram for passport automation system
4: verify the details
7: verify details
1: login passport
2: give details administrator
6: send details
applican
14: issue passport 8: send verification
regional
t 3: store the details
administrator
5: update the details
9: update the details
13: update the details
12: send verification
10: send details
11: verify the details
databas
e
police
Department of CSE, K.Ramakrishnan College
41 of Engineering, Trichy 8/8/2019
State Chart Diagram
State chart Diagram describes different states of a component in a system. The
states are specific to a component/object of a system. It describes state machine.
It models dynamic behaviour of class.
Department of CSE, K.Ramakrishnan College of
42 Engineering, Trichy 8/8/2019
Example state chart diagram for passport automation system
login give get verificati issue
details details on
Department of CSE, K.Ramakrishnan College
43 of Engineering, Trichy 8/8/2019
Component Diagram
Component diagram is to show the relationship between different components in a
system.
It model the physical aspects of a system. Physical aspects are the elements such as
executables, libraries, files, documents, etc. which reside in a node.
Department of CSE, K.Ramakrishnan College of
44 Engineering, Trichy 8/8/2019
Example component diagram for passport automation system
PASSPORT
AUTOMATION
POLICE
APPLICANT
REGIONAL
PASSPORT ADMINISTRATOR
ADMINISTRATOR
Department of CSE, K.Ramakrishnan College
45 of Engineering, Trichy 8/8/2019
Deployment Diagram
Deployment diagrams are used to visualize the topology of the physical components of a
system, where the software components are deployed.
Deployment diagrams are used to describe the static deployment view of a system.
Deployment diagrams consist of nodes and their relationships
Department of CSE, K.Ramakrishnan College of
46 Engineering, Trichy 8/8/2019
Example deployment diagram for passport automation system
passport automation
system
police
passport regional
applicant
administrator administrator
Department of CSE, K.Ramakrishnan College
47 of Engineering, Trichy 8/8/2019
Package Diagram
Package diagrams are used to structure high level system elements.
Packages are used for organizing large system which contains
diagrams, documents and other key deliverables.
Package Diagram can be used to simplify complex class diagrams, it
can group classes into packages.
Department of CSE, K.Ramakrishnan College of
48 Engineering, Trichy 8/8/2019
Example package diagram for passport automation system
applicant passport
administrator
web
regional police
administrator
DOMAIN
verification
give and get
details issue
technical details
login database1
Department of CSE, K.Ramakrishnan College
49 of Engineering, Trichy 8/8/2019
Case study: Hospital management system
A system to manage the activities in a hospital:
Patients request for appointment for any doctor. The details of the
existing patients are retrieved by the system. New patients update
their details in the system before they request for appointment with
the help of assistant. The assistant confirms the appointment based
on the availability of free slots for the respective doctors and the
patient is informed. Assistant may cancel the appointment at any
time.
Construct Actors, Use cases, class diagram, Sequence
Diagram and state chart diagram.
Department of CSE, K.Ramakrishnan College
50 of Engineering, Trichy 8/8/2019
Case Study: The NextGen POS System
• A POS system is a computerized application used
to record sales and handle payments;
• it is typically used in a retail store.
• It includes hardware components such as a
computer and bar code scanner, and software to run
the system.
• It interfaces to various service applications, such as
a third-party tax calculator and inventory control.
Department of CSE, K.Ramakrishnan College of
51 Engineering, Trichy 8/8/2019
• These systems must be relatively fault-tolerant. That is, even if remote
services are temporarily unavailable (such as the inventory system), they
must still be capable of capturing sales and handling at least cash
payments.
• A POS system must support multiple and varied client-side terminals and
interfaces. These include a thin-client Web browser terminal, a regular
personal computer with something like a Java Swing graphical user
interface, touch screen input, wireless PDAs, and so forth.
• we are creating a commercial POS system that we will sell to different
clients with disparate needs in terms of business rule processing.
Therefore, we will need a mechanism to provide this flexibility and
customization.
• Using an iterative development strategy, we are going to proceed through
Department of CSE,
requirements, K.Ramakrishnananalysis,
object-oriented College design, and implementation.
52 of Engineering, Trichy 8/8/2019
minor focus
Item ID Explore how to
User connect to
interface Quantity other layers
Application Primary focus of
Logic and case study
Domain object Sale Payment Explore how to
layer design objects
Secondary focus
Technical
Services layer Logging Database Access Explore how to
design objects
Department of CSE, K.Ramakrishnan College
53 of Engineering, Trichy 8/8/2019
Use Case Modelling
Use Case Model describes the proposed functionality of the new system. It is a
pictorial representation of interaction between user and system.(Usecase
Diagram)
Use Case represents a discrete unit of interaction between a user (human or
machine) and the system. Example :login to system, register with system and
create order are all Use Cases. It is also called scenarios.
Each Use Case has a description which describes the functionality that will be
built in the proposed system.
A Use Case may 'include' another Use Case's functionality or 'extend' another
Use Case with its own behavior.
Use Cases are typically related to 'actors'. An actor is a human or machine entity
that interacts with the system to perform meaningful work.
Actors An Actor is a user of the system. This includes both human users and
other computer systems. An Actor uses a Use Case to perform some piece of
work which is of value to the business.
Department of CSE, K.Ramakrishnan College
54 of Engineering, Trichy 8/8/2019
Components of Use case Diagrams
Use cases: A use case describes a sequence of actions
that provide something of measurable value to an
actor and is drawn as a horizontal ellipse.
Actors: An actor is a person, organization, or external
system that plays a role in one or more interactions
with your system. Actors are drawn as stick figures.
Associations: Associations between actors and use
cases are indicated by solid lines. An association
exists whenever an actor is involved with an
interaction described by a use case.
Department of CSE, K.Ramakrishnan College of
Engineering, Trichy 8/8/2019
55
Notations
Department of CSE, K.Ramakrishnan College
of Engineering, Trichy 8/8/2019
56
Actors
• An actor models an external entity which communicates
with the system:
– User
– External system
– Physical environment Passenger
• An actor has a unique name and an optional description.
• Examples:
– Passenger: A person in the train
– GPS satellite: Provides the system with GPS coordinates
Department of CSE, K.Ramakrishnan College
8/8/2019
of Engineering, Trichy 57
Use Case
• A use case represents a class of functionality provided by
the system as an event flow.
A use case consists of:
• Unique name
PurchaseTicket
• Participating actors
• Entry conditions
• Flow of events
• Exit conditions
• Special requirements
Department of CSE, K.Ramakrishnan College
8/8/2019
of Engineering, Trichy 58
Example :Use case Modelling – NextGenPOS System
Department of CSE, K.Ramakrishnan College
59 of Engineering, Trichy 8/8/2019
Department of CSE, K.Ramakrishnan College
60 of Engineering, Trichy 8/8/2019
Use Case: Process Sales
Customer arrives at POS checkout with goods to purchase.
Cashier starts a new sale.
Cashier enters item identifier.
System records sale line item and presents item description, price, and
running total. Price calculated from a set of price rules.
Cashier repeats step 3-4 until done with all items.
System presents total with taxes calculated.
Cashier tells Customer the total, and asks for payment.
Customer pays and System handles payment.
System logs completed sale and sends sale and payment information to
the external Accounting system (for accounting and commissions) and
Inventory system (to update inventory).
System presents receipt.
Customer leaves with receipt and goods.
Department of CSE, K.Ramakrishnan College
61 of Engineering, Trichy 8/8/2019
Relating Use Cases
There are three other types of relationship
between usecases.
Extends
Includes
Generalization
Department of CSE, K.Ramakrishnan College
62 of Engineering, Trichy 8/8/2019
<<extends>> Association (Relationship)
• <<extends>> relationship
represent exceptional or
seldom invoked cases.
• The exceptional event
flows are factored out of
the main event flow for
clarity.
• Use cases representing
exceptional flows can
extend more than one use
case.
• The direction of a
<<extends>> relationship is
toDepartment
the extended use case College
of CSE, K.Ramakrishnan
8/8/2019
of Engineering, Trichy 63
<<includes>>Association(Relationship) or
<<uses>> relationship
• <<includes>> relationship
represents behavior that
is factored out of the use
case.
• <<includes>> behavior is
factored out for reuse,
not because it is an
exception.
• The direction of a
<<includes>> relationship
is to the using use case
(unlike <<extends>>
relationships).
Department of CSE, K.Ramakrishnan College
8/8/2019
of Engineering, Trichy 64
Generalization relationship
Use case generalization can be used when one use case that is similar to
another, but does something slightly differently or something more.
Generalization works the same way with use cases as it does with
classes.
The child use case inherits the behavior and meaning of the parent use
case.
Base and the derived use cases are separate use cases and should have
separate text descriptions
Represented by a line and a hollow arrow from child to parent
Child use case Parent use case
Department of CSE, K.Ramakrishnan College
65 of Engineering, Trichy 8/8/2019
Example of Relationships
Department of CSE, K.Ramakrishnan College
66 of Engineering, Trichy 8/8/2019
Applications`
Software development
Solving any real world problems
Understanding the essential requirements of the customer to
ss.atisfy their business need
Department of CSE, K.Ramakrishnan College
67 of Engineering, Trichy 8/8/2019
NPTEL Videos and References
https://nptel.ac.in/courses/nptel_download.php?subjectid=106105153
Department of CSE, K.Ramakrishnan College
68 of Engineering, Trichy 8/8/2019
Department of CSE, K.Ramakrishnan College
69 of Engineering, Trichy 8/8/2019