SlideShare a Scribd company logo
1 of 43
Download to read offline
Software Engineering Principles
Ajit K Nayak, Ph.D.
ajitnayak@soauniversity.ac.in
Object oriented Software design
using UML
Acknowledgements
• Slides of Prof. Rajib Mall, IIT, KGP
Introduction
• Object-oriented (OO) design techniques are extremely
popular:
– Inception in early 1980’s and nearing maturity.
– Widespread acceptance in industry and
academics.
– Unified Modelling Language (UML) already an ISO
standard (ISO/IEC 19501).
Object Oriented
• A system is designed as a set of interacting objects:
– Often, real-world entities: e.g. an employee, a book
etc.
– Can be conceptual objects also: e.g. Controller,
manager, etc.
• Objects consists of data (attributes) and functions
(methods) that operate on data.
– Encapsulation
• Hides organization of internal information
– Data abstraction
Model of an Object
Data
Class
m8 m7
m6
m5
m4m3
m2
m1
mi are methods
of the class
Components of Object Model
• Class
• Methods & Messages
• Relations
– Inheritance
– Association
– Aggregation/composition
– Dependency
• Polymorphism
• Genericity
Advantages of Object-Oriented
Development
• Code and design reuse
• Increased productivity
• Ease of testing and maintenance
• Better understandability
• Elegant design:
– Loosely coupled, highly cohesive objects:
– Essential for solving large problems.
• Initially incurs higher costs
– After completion of some projects reduction in cost
become possible
• Using well-established OO methodology and environment:
– Projects can be managed with 20% -- 50% of traditional
cost of development.
Object modelling using UML
• Unified Modeling Language is a modelling language
– Not a system design or development methodology
• Used to document object-oriented analysis and design
• Independent of any specific design methodology
• UML developed in early 1990s
– To standardize the large number of object-oriented
modelling notations that existed.
• Current version is UML2.0
• Adopted by Object Management Group (OMG) in 1997
– OMG an association of industries that promotes
consensus notations and techniques
Object Modelling Techniques
UML
Booch’s
Methodology
[Booch 1991]
OOSE
[Jacobson 1992]
OMT [Rumbaugh 1991]
Flash Back
• Grady Booch was
working as Chief
Scientist of Rational
Software Corporation
• Rational Software
Corporation hired James
Rumbaugh from General
Electric in 1994
• Ivar Jacobson joined
them at Rational in 1995
• And the History is made
Booch
Rumbaugh
Jacobson
When you want to build a house!
What is UML
• UML a graphical modelling tool, easy to understand
and construct
• It provides many diagrams to capture different views
of a system
– Model is required to capture only important aspects
– Helps in managing complexity
UML 1.x Diagrams
• 9 diagrams supporting 5 views
User’s View
-Use Case
Diagram
Structural View
- Class Diagram
- Object Diagram
Implementation View
- Component Diagram
Environmental View
- Deployment Diagram
Behavioural View
- Sequence Diagram
- Collaboration Diagram
- State-chart Diagram
- Activity Diagram
UML 2.0 Diagrams
UML 2.0
Diagram
Behavior
Diagram
Structure
Diagram
Class
Diagram
Composite
Structure Diagram
Object
Diagram
Activity
Diagram
Use Case
Diagram
State Machine
Diagram
Interaction
Diagram
Component
Diagram
Deployment
Diagram
Package
Diagram
Sequence
Diagram
Communication
Diagram
Interaction
Overview
Diagram
Timing
Diagram
Use Case Modelling
Use Case Model
• Consists of a set of “use cases”
• It is the central model:
– Other models must conform to this model
– Not really an object-oriented model
– A functional model of the system
• Use Cases are the main tasks performed by the users of
the system.
• Use Cases describe the behavioral aspects of the system.
• Use Cases are used to identify how the system will be
used.
• Use Cases are a convenient way to document the
functions that the system must support.
• Use Cases are used to identify the components (classes)
of the system.
Use Cases
• Normally, use cases are independent of each other
• Implicit dependencies may exist
• Example: In Library Automation System, renew-book and
reserve-book are independent use cases.
– But in actual implementation of renew-book--- A check is
made to see if any book has been reserved using
reserve-book.
• Other Possible Use Cases in Library information system
– issue-book
– query-book
– return-book
– create-member
– add-book, etc.
Representation of Use Cases
• Represented in a use case diagram
– A Use Case is represented by an ellipse
– System boundary is represented by a rectangle
– Users are represented by stick person icons (actor)‫‏‬
– Communication relationship between actor and
Use Case by a line
• External system by a stereotype
Tic-tac-toe game
Play Move
Ex1: Draw a Use Case Model
• Video Store Information System supports the
following business functions:
– Recording information about videos the store owns
• This database is searchable by staff and all customers
– Information about a customer’s borrowed videos
• Access by staff and also the customer. It involves video database
searching.
– Staff can record video rentals and returns by
customers. It involves video database searching.
– Staff can maintain customer, video and staff
information.
– Managers of the store can generate various reports.
Ex1: Solution
Maintain
Customers
Staff
Rent/Return
Videos
Maintain
Videos
Generate
Reports
Customer
Manager
Search for
Videos
«include»
«include»
Video Store Information System
Development of a Use Case Diagram
• Identify all of the actors who will use the system.
• Interview these actors to identify the functions that
they need to perform. (use cases)
• Identify scenarios (sequence of steps to accomplish a
use case).
• Identify common steps within the different scenarios.
Separate them into different use cases so that they
can easily be included in other scenarios.
• Identify relationships between use cases.
Actors
• Actor - an entity external to the system that in some
way participates in the use case. Actor represents a
role that a user can play.
• An actor typically stimulates the system with input
events or receives outputs from the system or does
both.
• Actors are treated like classes and can be generalized.
• Primary actor: Use the system to achieve a goal.
(found in left side of the use case diagram)
• Secondary actor: plays a supporting role to facilitate
the primary actor to achieve their goal. (right side)
Identification of Use Cases
• Actor-based:
– Identify the actors related to a system or
organization.
– For each actor, identify the processes they initiate or
participate in.
• Event-based
– Identify the external events that the system must
respond to.
– Relate the events to actors and use cases.
Factoring Use Cases
• Two main reasons for factoring:
– Complex use cases need to be factored into simpler
use cases
– To represent common behaviour across different
use cases
• Three ways of factoring:
– Generalization
– Include
– Extend
Generalization
• The child use case inherits the behaviour of the parent
use case.
– The child may add to or override some of the
behavior of its parent.
parent
child
Registration
Graduate
registration
Under-graduate
registration
Include
• When you have a piece of behaviour that is similar
across many use cases
– Break this out as a separate use-case and let the
other ones “include” it
• Examples of use case include
– Validate user interaction
– Sanity check on sensor inputs
– Check for proper authorization
Base use case Common
use case
<<include>>
Issue Book
Check
Reservation
Renew Book
<<include>>
<<include>>
Extends
• Use when a use-case optionally can do a little bit
more:
– Capture the normal behaviour
– Capture the extra behaviour in a separate use-case
– Create extends dependency
• Makes it a lot easier to understand
Order
Item
Show
Catalog
<<extend>>
Example
Place Order
Supply
Customer Data
Order
Product
Arrange
Payment
Request
Catalog
<<include>>
<<include>>
<<include>>
<<extend>> Salesperson asks for catalog
Sales Person
Cash
Payment
Credit
Payment
Ex2: Course Management Software
• At the beginning of each semester,
– Each professor shall register the courses that he is going
to teach.
• A student can select up to four-course offerings.
– During registration a students can request a course
catalogue showing course offerings for the semester.
– Information about each course such as professor,
department and prerequisites would be displayed.
– The registration system sends information to the billing
system so the students can be billed for the semester.
• For each semester, there is a period of time during which
dropping of courses is permitted.
• Professors must be able to access the system to see which
students signed up for each of their course offerings.
Register
offering
Show
registration
Register
course
Drop Course
Student
Calendar
Course Management Software
Ex 2: Solution
See Course
List
Professor
<<Extend>>
<<External>>
Billing System
Use-Case Model using Packaging
UML Class Diagrams
Thank You
Class
• A class represents a set of objects having similar
attributes, operations, relationships and behaviour.
• Instances are objects
• Template for object creation
• Considered as abstract data type (ADT)‫‏‬
– Examples: Employees, Books, etc.
• Sometimes not intended to produce instances:
– Abstract classes
Methods & Messages
• Operations supported by an object:
– Means for manipulating the data of other objects.
– Invoked by sending a message (method call).
– Examples: calculate_salary, issue-book,
member_details, etc.
Inheritance
• Allows to define a new class
(derived class) by extending
or modifying existing class
(base class).
• Represents generalization-
specialization relationship.
• Allows redefinition of the
existing methods (method
overriding).
• Types
– Single/Simple; multilevel
– Multiple
LibraryMember
ResearchPostGradUnderGrad
StaffStudentsFaculty
Base Class
Derived
Classes
Association
• Enables objects to communicate with each other:
– Thus one object must “know” the address of the
corresponding object in the association.
• Usually binary:
– But in general can be n-ary.
Library Member Book
1 *borrowed by
Aggregation
• Represents whole-part relationship
• Represented by a diamond symbol at the composite
end
• Cannot be reflexive(i.e. recursive)‫‏‬
• Not symmetric
• It can be transitive
Document Line
* Paragraph 1 *
Composition
• A stronger form of aggregation
– The whole is the sole owner of its part.
• A component can belong to only one whole
– The life time of the part is dependent upon
the whole.
• The composite must manage the creation and
destruction of its parts.
Order
1 *
Item
Dependency
• Dependency relationship can arise due to a variety of
reasons:
– Stereotypes are used to show the precise nature of
the dependency.
Type of
dependency
Stereotype Description
Abstraction «abstraction» Relates two model elements, that represent
the same concept at different levels of
abstraction
Binding «bind» Connects template arguments to template
parameters to create model elements from
templates.
Realization «realize» Indicates that the client model element is an
implementation of the supplier model element
Substitution «substitute» Indicates that the client model element
takes place of the supplier.
Polymorphism
• Denotes poly (many) morphism (forms).
• Under different situations:
– Same message to the same object can result in
different actions:
• Static binding
• Dynamic binding
Genericity
 Ability to parameterize class definitions.
 Example: class stack of different types of elements:
 Integer stack
 Character stack
 Floating point stack
 Define generic class stack:
 Later instantiate as required
Thank You

More Related Content

What's hot

11 deployment diagrams
11 deployment diagrams11 deployment diagrams
11 deployment diagramsBaskarkncet
 
Time advance mehcanism
Time advance mehcanismTime advance mehcanism
Time advance mehcanismNikhil Sharma
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process ModelsAtul Karmyal
 
08 state diagram and activity diagram
08 state diagram and activity diagram08 state diagram and activity diagram
08 state diagram and activity diagramBaskarkncet
 
Agile Development | Agile Process Models
Agile Development | Agile Process ModelsAgile Development | Agile Process Models
Agile Development | Agile Process ModelsAhsan Rahim
 
Sequence diagram
Sequence diagramSequence diagram
Sequence diagramRahul Pola
 
UML diagrams and symbols
UML diagrams and symbolsUML diagrams and symbols
UML diagrams and symbolsKumar
 
5.state diagrams
5.state diagrams5.state diagrams
5.state diagramsAPU
 
Decomposition technique In Software Engineering
Decomposition technique In Software Engineering Decomposition technique In Software Engineering
Decomposition technique In Software Engineering Bilal Hassan
 
Software Engineering :UML class diagrams
Software Engineering :UML class diagramsSoftware Engineering :UML class diagrams
Software Engineering :UML class diagramsAjit Nayak
 
Clock synchronization in distributed system
Clock synchronization in distributed systemClock synchronization in distributed system
Clock synchronization in distributed systemSunita Sahu
 

What's hot (20)

11 deployment diagrams
11 deployment diagrams11 deployment diagrams
11 deployment diagrams
 
Time advance mehcanism
Time advance mehcanismTime advance mehcanism
Time advance mehcanism
 
Unified process Model
Unified process ModelUnified process Model
Unified process Model
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
08 state diagram and activity diagram
08 state diagram and activity diagram08 state diagram and activity diagram
08 state diagram and activity diagram
 
State chart diagram
State chart diagramState chart diagram
State chart diagram
 
Uml
UmlUml
Uml
 
Agile Development | Agile Process Models
Agile Development | Agile Process ModelsAgile Development | Agile Process Models
Agile Development | Agile Process Models
 
Sequence diagram
Sequence diagramSequence diagram
Sequence diagram
 
UML diagrams and symbols
UML diagrams and symbolsUML diagrams and symbols
UML diagrams and symbols
 
5.state diagrams
5.state diagrams5.state diagrams
5.state diagrams
 
Decomposition technique In Software Engineering
Decomposition technique In Software Engineering Decomposition technique In Software Engineering
Decomposition technique In Software Engineering
 
Software Engineering :UML class diagrams
Software Engineering :UML class diagramsSoftware Engineering :UML class diagrams
Software Engineering :UML class diagrams
 
Activity diagram
Activity diagramActivity diagram
Activity diagram
 
Use Case Modeling
Use Case ModelingUse Case Modeling
Use Case Modeling
 
RMMM Plan
RMMM PlanRMMM Plan
RMMM Plan
 
Introduction to UML
Introduction to UMLIntroduction to UML
Introduction to UML
 
Clock synchronization in distributed system
Clock synchronization in distributed systemClock synchronization in distributed system
Clock synchronization in distributed system
 
Presentation on uml
Presentation on umlPresentation on uml
Presentation on uml
 
Crc cards
Crc cardsCrc cards
Crc cards
 

Viewers also liked

Software Engineering an Introduction
Software Engineering an IntroductionSoftware Engineering an Introduction
Software Engineering an IntroductionAjit Nayak
 
Software Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & SpecificationSoftware Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & SpecificationAjit Nayak
 
Software Engineering :Behavioral Modelling - I Sequence diagram
Software Engineering :Behavioral Modelling - I Sequence diagram Software Engineering :Behavioral Modelling - I Sequence diagram
Software Engineering :Behavioral Modelling - I Sequence diagram Ajit Nayak
 
UML Part1-Introduction Mansouri
UML Part1-Introduction MansouriUML Part1-Introduction Mansouri
UML Part1-Introduction MansouriMansouri Khalifa
 
Lecture04- Use Case Diagrams
Lecture04- Use Case DiagramsLecture04- Use Case Diagrams
Lecture04- Use Case Diagramsartgreen
 
Software Engineering :Behavioral Modelling - II State diagram
Software Engineering :Behavioral Modelling - II State diagramSoftware Engineering :Behavioral Modelling - II State diagram
Software Engineering :Behavioral Modelling - II State diagramAjit Nayak
 

Viewers also liked (8)

Software Engineering an Introduction
Software Engineering an IntroductionSoftware Engineering an Introduction
Software Engineering an Introduction
 
Uml - An Overview
Uml - An OverviewUml - An Overview
Uml - An Overview
 
Software Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & SpecificationSoftware Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & Specification
 
Software Engineering :Behavioral Modelling - I Sequence diagram
Software Engineering :Behavioral Modelling - I Sequence diagram Software Engineering :Behavioral Modelling - I Sequence diagram
Software Engineering :Behavioral Modelling - I Sequence diagram
 
UML Part1-Introduction Mansouri
UML Part1-Introduction MansouriUML Part1-Introduction Mansouri
UML Part1-Introduction Mansouri
 
Lecture04- Use Case Diagrams
Lecture04- Use Case DiagramsLecture04- Use Case Diagrams
Lecture04- Use Case Diagrams
 
Software Engineering :Behavioral Modelling - II State diagram
Software Engineering :Behavioral Modelling - II State diagramSoftware Engineering :Behavioral Modelling - II State diagram
Software Engineering :Behavioral Modelling - II State diagram
 
Types of UML diagrams
Types of UML diagramsTypes of UML diagrams
Types of UML diagrams
 

Similar to Software Engineering : OOAD using UML

Analysis modeling & scenario based modeling
Analysis modeling &  scenario based modeling Analysis modeling &  scenario based modeling
Analysis modeling & scenario based modeling Benazir Fathima
 
analysis and design with uml
analysis and design with umlanalysis and design with uml
analysis and design with umlsabin kafle
 
OOAD U1.pptx
OOAD U1.pptxOOAD U1.pptx
OOAD U1.pptxanguraju1
 
Designing and documenting software architecture unit 5
Designing and documenting software architecture unit 5Designing and documenting software architecture unit 5
Designing and documenting software architecture unit 5Sudarshan Dhondaley
 
oomd-unit-i-cgpa.ppt
oomd-unit-i-cgpa.pptoomd-unit-i-cgpa.ppt
oomd-unit-i-cgpa.pptPavan992098
 
Ppt ooad ooad3unit
Ppt ooad ooad3unitPpt ooad ooad3unit
Ppt ooad ooad3unitramyalaksha
 
Visual Modelling and the Unified Modeling Language.ppt
Visual Modelling and the Unified Modeling Language.pptVisual Modelling and the Unified Modeling Language.ppt
Visual Modelling and the Unified Modeling Language.pptgirumdethio
 
RTDesignWithUMLUseCase.ppt
RTDesignWithUMLUseCase.pptRTDesignWithUMLUseCase.ppt
RTDesignWithUMLUseCase.pptShashikanth
 
82_PHOTOLAB-----Project PPT.pdfhejeenejsn
82_PHOTOLAB-----Project PPT.pdfhejeenejsn82_PHOTOLAB-----Project PPT.pdfhejeenejsn
82_PHOTOLAB-----Project PPT.pdfhejeenejsnshivam003d
 
Chapter 4.pptx
Chapter 4.pptxChapter 4.pptx
Chapter 4.pptxzaaakditte
 
Requirement analysis and UML modelling in Software engineering
Requirement analysis and UML modelling in Software engineeringRequirement analysis and UML modelling in Software engineering
Requirement analysis and UML modelling in Software engineeringsnehalkulkarni74
 
Structure system analysis and design method -SSADM
Structure system analysis and design method -SSADMStructure system analysis and design method -SSADM
Structure system analysis and design method -SSADMFLYMAN TECHNOLOGY LIMITED
 
Unit 1( modelling concepts & class modeling)
Unit  1( modelling concepts & class modeling)Unit  1( modelling concepts & class modeling)
Unit 1( modelling concepts & class modeling)Manoj Reddy
 
unit-1modellingconceptsclassmodeling-140929182538-phpapp01.pdf
unit-1modellingconceptsclassmodeling-140929182538-phpapp01.pdfunit-1modellingconceptsclassmodeling-140929182538-phpapp01.pdf
unit-1modellingconceptsclassmodeling-140929182538-phpapp01.pdfRojaPogul1
 

Similar to Software Engineering : OOAD using UML (20)

Analysis
AnalysisAnalysis
Analysis
 
Analysis modeling & scenario based modeling
Analysis modeling &  scenario based modeling Analysis modeling &  scenario based modeling
Analysis modeling & scenario based modeling
 
analysis and design with uml
analysis and design with umlanalysis and design with uml
analysis and design with uml
 
OOAD U1.pptx
OOAD U1.pptxOOAD U1.pptx
OOAD U1.pptx
 
Unit 2
Unit 2Unit 2
Unit 2
 
OOSD_UNIT1 (1).pptx
OOSD_UNIT1 (1).pptxOOSD_UNIT1 (1).pptx
OOSD_UNIT1 (1).pptx
 
Designing and documenting software architecture unit 5
Designing and documenting software architecture unit 5Designing and documenting software architecture unit 5
Designing and documenting software architecture unit 5
 
oomd-unit-i-cgpa.ppt
oomd-unit-i-cgpa.pptoomd-unit-i-cgpa.ppt
oomd-unit-i-cgpa.ppt
 
Uml intro
Uml introUml intro
Uml intro
 
Ppt ooad ooad3unit
Ppt ooad ooad3unitPpt ooad ooad3unit
Ppt ooad ooad3unit
 
sdlc.pptx
sdlc.pptxsdlc.pptx
sdlc.pptx
 
Visual Modelling and the Unified Modeling Language.ppt
Visual Modelling and the Unified Modeling Language.pptVisual Modelling and the Unified Modeling Language.ppt
Visual Modelling and the Unified Modeling Language.ppt
 
RTDesignWithUMLUseCase.ppt
RTDesignWithUMLUseCase.pptRTDesignWithUMLUseCase.ppt
RTDesignWithUMLUseCase.ppt
 
82_PHOTOLAB-----Project PPT.pdfhejeenejsn
82_PHOTOLAB-----Project PPT.pdfhejeenejsn82_PHOTOLAB-----Project PPT.pdfhejeenejsn
82_PHOTOLAB-----Project PPT.pdfhejeenejsn
 
Chapter 4.pptx
Chapter 4.pptxChapter 4.pptx
Chapter 4.pptx
 
Requirement analysis and UML modelling in Software engineering
Requirement analysis and UML modelling in Software engineeringRequirement analysis and UML modelling in Software engineering
Requirement analysis and UML modelling in Software engineering
 
CS8592-OOAD Lecture Notes Unit-5
CS8592-OOAD Lecture Notes Unit-5 CS8592-OOAD Lecture Notes Unit-5
CS8592-OOAD Lecture Notes Unit-5
 
Structure system analysis and design method -SSADM
Structure system analysis and design method -SSADMStructure system analysis and design method -SSADM
Structure system analysis and design method -SSADM
 
Unit 1( modelling concepts & class modeling)
Unit  1( modelling concepts & class modeling)Unit  1( modelling concepts & class modeling)
Unit 1( modelling concepts & class modeling)
 
unit-1modellingconceptsclassmodeling-140929182538-phpapp01.pdf
unit-1modellingconceptsclassmodeling-140929182538-phpapp01.pdfunit-1modellingconceptsclassmodeling-140929182538-phpapp01.pdf
unit-1modellingconceptsclassmodeling-140929182538-phpapp01.pdf
 

More from Ajit Nayak

Software Engineering : Software testing
Software Engineering : Software testingSoftware Engineering : Software testing
Software Engineering : Software testingAjit Nayak
 
Software Engineering : Process Models
Software Engineering : Process ModelsSoftware Engineering : Process Models
Software Engineering : Process ModelsAjit Nayak
 
Database Programming using SQL
Database Programming using SQLDatabase Programming using SQL
Database Programming using SQLAjit Nayak
 
Ns2: Introduction - Part I
Ns2: Introduction - Part INs2: Introduction - Part I
Ns2: Introduction - Part IAjit Nayak
 
Ns2: OTCL - PArt II
Ns2: OTCL - PArt IINs2: OTCL - PArt II
Ns2: OTCL - PArt IIAjit Nayak
 
NS2: AWK and GNUplot - PArt III
NS2: AWK and GNUplot - PArt IIINS2: AWK and GNUplot - PArt III
NS2: AWK and GNUplot - PArt IIIAjit Nayak
 
Socket programming using C
Socket programming using CSocket programming using C
Socket programming using CAjit Nayak
 
Object Oriented Analysis Design using UML
Object Oriented Analysis Design using UMLObject Oriented Analysis Design using UML
Object Oriented Analysis Design using UMLAjit Nayak
 
Parallel programming using MPI
Parallel programming using MPIParallel programming using MPI
Parallel programming using MPIAjit Nayak
 
Operating Systems Part III-Memory Management
Operating Systems Part III-Memory ManagementOperating Systems Part III-Memory Management
Operating Systems Part III-Memory ManagementAjit Nayak
 
Operating Systems Part I-Basics
Operating Systems Part I-BasicsOperating Systems Part I-Basics
Operating Systems Part I-BasicsAjit Nayak
 
Operating Systems Part II-Process Scheduling, Synchronisation & Deadlock
Operating Systems Part II-Process Scheduling, Synchronisation & DeadlockOperating Systems Part II-Process Scheduling, Synchronisation & Deadlock
Operating Systems Part II-Process Scheduling, Synchronisation & DeadlockAjit Nayak
 
Introduction to database-Transaction Concurrency and Recovery
Introduction to database-Transaction Concurrency and RecoveryIntroduction to database-Transaction Concurrency and Recovery
Introduction to database-Transaction Concurrency and RecoveryAjit Nayak
 
Introduction to database-Formal Query language and Relational calculus
Introduction to database-Formal Query language and Relational calculusIntroduction to database-Formal Query language and Relational calculus
Introduction to database-Formal Query language and Relational calculusAjit Nayak
 
Introduction to database-Normalisation
Introduction to database-NormalisationIntroduction to database-Normalisation
Introduction to database-NormalisationAjit Nayak
 
Introduction to database-ER Model
Introduction to database-ER ModelIntroduction to database-ER Model
Introduction to database-ER ModelAjit Nayak
 
Computer Networks Module III
Computer Networks Module IIIComputer Networks Module III
Computer Networks Module IIIAjit Nayak
 
Computer Networks Module II
Computer Networks Module IIComputer Networks Module II
Computer Networks Module IIAjit Nayak
 
Computer Networks Module I
Computer Networks Module IComputer Networks Module I
Computer Networks Module IAjit Nayak
 
Object Oriented Programming using C++ Part III
Object Oriented Programming using C++ Part IIIObject Oriented Programming using C++ Part III
Object Oriented Programming using C++ Part IIIAjit Nayak
 

More from Ajit Nayak (20)

Software Engineering : Software testing
Software Engineering : Software testingSoftware Engineering : Software testing
Software Engineering : Software testing
 
Software Engineering : Process Models
Software Engineering : Process ModelsSoftware Engineering : Process Models
Software Engineering : Process Models
 
Database Programming using SQL
Database Programming using SQLDatabase Programming using SQL
Database Programming using SQL
 
Ns2: Introduction - Part I
Ns2: Introduction - Part INs2: Introduction - Part I
Ns2: Introduction - Part I
 
Ns2: OTCL - PArt II
Ns2: OTCL - PArt IINs2: OTCL - PArt II
Ns2: OTCL - PArt II
 
NS2: AWK and GNUplot - PArt III
NS2: AWK and GNUplot - PArt IIINS2: AWK and GNUplot - PArt III
NS2: AWK and GNUplot - PArt III
 
Socket programming using C
Socket programming using CSocket programming using C
Socket programming using C
 
Object Oriented Analysis Design using UML
Object Oriented Analysis Design using UMLObject Oriented Analysis Design using UML
Object Oriented Analysis Design using UML
 
Parallel programming using MPI
Parallel programming using MPIParallel programming using MPI
Parallel programming using MPI
 
Operating Systems Part III-Memory Management
Operating Systems Part III-Memory ManagementOperating Systems Part III-Memory Management
Operating Systems Part III-Memory Management
 
Operating Systems Part I-Basics
Operating Systems Part I-BasicsOperating Systems Part I-Basics
Operating Systems Part I-Basics
 
Operating Systems Part II-Process Scheduling, Synchronisation & Deadlock
Operating Systems Part II-Process Scheduling, Synchronisation & DeadlockOperating Systems Part II-Process Scheduling, Synchronisation & Deadlock
Operating Systems Part II-Process Scheduling, Synchronisation & Deadlock
 
Introduction to database-Transaction Concurrency and Recovery
Introduction to database-Transaction Concurrency and RecoveryIntroduction to database-Transaction Concurrency and Recovery
Introduction to database-Transaction Concurrency and Recovery
 
Introduction to database-Formal Query language and Relational calculus
Introduction to database-Formal Query language and Relational calculusIntroduction to database-Formal Query language and Relational calculus
Introduction to database-Formal Query language and Relational calculus
 
Introduction to database-Normalisation
Introduction to database-NormalisationIntroduction to database-Normalisation
Introduction to database-Normalisation
 
Introduction to database-ER Model
Introduction to database-ER ModelIntroduction to database-ER Model
Introduction to database-ER Model
 
Computer Networks Module III
Computer Networks Module IIIComputer Networks Module III
Computer Networks Module III
 
Computer Networks Module II
Computer Networks Module IIComputer Networks Module II
Computer Networks Module II
 
Computer Networks Module I
Computer Networks Module IComputer Networks Module I
Computer Networks Module I
 
Object Oriented Programming using C++ Part III
Object Oriented Programming using C++ Part IIIObject Oriented Programming using C++ Part III
Object Oriented Programming using C++ Part III
 

Recently uploaded

APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSKurinjimalarL3
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Analog to Digital and Digital to Analog Converter
Analog to Digital and Digital to Analog ConverterAnalog to Digital and Digital to Analog Converter
Analog to Digital and Digital to Analog ConverterAbhinavSharma374939
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingrakeshbaidya232001
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxupamatechverse
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...ranjana rawat
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVRajaP95
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...srsj9000
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile servicerehmti665
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )Tsuyoshi Horigome
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxpranjaldaimarysona
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidNikhilNagaraju
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escortsranjana rawat
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxupamatechverse
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 

Recently uploaded (20)

APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
 
Analog to Digital and Digital to Analog Converter
Analog to Digital and Digital to Analog ConverterAnalog to Digital and Digital to Analog Converter
Analog to Digital and Digital to Analog Converter
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writing
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptx
 
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile service
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptx
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfid
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptx
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 

Software Engineering : OOAD using UML

  • 1. Software Engineering Principles Ajit K Nayak, Ph.D. ajitnayak@soauniversity.ac.in Object oriented Software design using UML
  • 2. Acknowledgements • Slides of Prof. Rajib Mall, IIT, KGP
  • 3. Introduction • Object-oriented (OO) design techniques are extremely popular: – Inception in early 1980’s and nearing maturity. – Widespread acceptance in industry and academics. – Unified Modelling Language (UML) already an ISO standard (ISO/IEC 19501).
  • 4. Object Oriented • A system is designed as a set of interacting objects: – Often, real-world entities: e.g. an employee, a book etc. – Can be conceptual objects also: e.g. Controller, manager, etc. • Objects consists of data (attributes) and functions (methods) that operate on data. – Encapsulation • Hides organization of internal information – Data abstraction
  • 5. Model of an Object Data Class m8 m7 m6 m5 m4m3 m2 m1 mi are methods of the class
  • 6. Components of Object Model • Class • Methods & Messages • Relations – Inheritance – Association – Aggregation/composition – Dependency • Polymorphism • Genericity
  • 7. Advantages of Object-Oriented Development • Code and design reuse • Increased productivity • Ease of testing and maintenance • Better understandability • Elegant design: – Loosely coupled, highly cohesive objects: – Essential for solving large problems. • Initially incurs higher costs – After completion of some projects reduction in cost become possible • Using well-established OO methodology and environment: – Projects can be managed with 20% -- 50% of traditional cost of development.
  • 8. Object modelling using UML • Unified Modeling Language is a modelling language – Not a system design or development methodology • Used to document object-oriented analysis and design • Independent of any specific design methodology • UML developed in early 1990s – To standardize the large number of object-oriented modelling notations that existed. • Current version is UML2.0 • Adopted by Object Management Group (OMG) in 1997 – OMG an association of industries that promotes consensus notations and techniques
  • 9. Object Modelling Techniques UML Booch’s Methodology [Booch 1991] OOSE [Jacobson 1992] OMT [Rumbaugh 1991]
  • 10. Flash Back • Grady Booch was working as Chief Scientist of Rational Software Corporation • Rational Software Corporation hired James Rumbaugh from General Electric in 1994 • Ivar Jacobson joined them at Rational in 1995 • And the History is made Booch Rumbaugh Jacobson
  • 11. When you want to build a house!
  • 12. What is UML • UML a graphical modelling tool, easy to understand and construct • It provides many diagrams to capture different views of a system – Model is required to capture only important aspects – Helps in managing complexity
  • 13. UML 1.x Diagrams • 9 diagrams supporting 5 views User’s View -Use Case Diagram Structural View - Class Diagram - Object Diagram Implementation View - Component Diagram Environmental View - Deployment Diagram Behavioural View - Sequence Diagram - Collaboration Diagram - State-chart Diagram - Activity Diagram
  • 14. UML 2.0 Diagrams UML 2.0 Diagram Behavior Diagram Structure Diagram Class Diagram Composite Structure Diagram Object Diagram Activity Diagram Use Case Diagram State Machine Diagram Interaction Diagram Component Diagram Deployment Diagram Package Diagram Sequence Diagram Communication Diagram Interaction Overview Diagram Timing Diagram
  • 16. Use Case Model • Consists of a set of “use cases” • It is the central model: – Other models must conform to this model – Not really an object-oriented model – A functional model of the system • Use Cases are the main tasks performed by the users of the system. • Use Cases describe the behavioral aspects of the system. • Use Cases are used to identify how the system will be used. • Use Cases are a convenient way to document the functions that the system must support. • Use Cases are used to identify the components (classes) of the system.
  • 17. Use Cases • Normally, use cases are independent of each other • Implicit dependencies may exist • Example: In Library Automation System, renew-book and reserve-book are independent use cases. – But in actual implementation of renew-book--- A check is made to see if any book has been reserved using reserve-book. • Other Possible Use Cases in Library information system – issue-book – query-book – return-book – create-member – add-book, etc.
  • 18. Representation of Use Cases • Represented in a use case diagram – A Use Case is represented by an ellipse – System boundary is represented by a rectangle – Users are represented by stick person icons (actor)‫‏‬ – Communication relationship between actor and Use Case by a line • External system by a stereotype Tic-tac-toe game Play Move
  • 19. Ex1: Draw a Use Case Model • Video Store Information System supports the following business functions: – Recording information about videos the store owns • This database is searchable by staff and all customers – Information about a customer’s borrowed videos • Access by staff and also the customer. It involves video database searching. – Staff can record video rentals and returns by customers. It involves video database searching. – Staff can maintain customer, video and staff information. – Managers of the store can generate various reports.
  • 21. Development of a Use Case Diagram • Identify all of the actors who will use the system. • Interview these actors to identify the functions that they need to perform. (use cases) • Identify scenarios (sequence of steps to accomplish a use case). • Identify common steps within the different scenarios. Separate them into different use cases so that they can easily be included in other scenarios. • Identify relationships between use cases.
  • 22. Actors • Actor - an entity external to the system that in some way participates in the use case. Actor represents a role that a user can play. • An actor typically stimulates the system with input events or receives outputs from the system or does both. • Actors are treated like classes and can be generalized. • Primary actor: Use the system to achieve a goal. (found in left side of the use case diagram) • Secondary actor: plays a supporting role to facilitate the primary actor to achieve their goal. (right side)
  • 23. Identification of Use Cases • Actor-based: – Identify the actors related to a system or organization. – For each actor, identify the processes they initiate or participate in. • Event-based – Identify the external events that the system must respond to. – Relate the events to actors and use cases.
  • 24. Factoring Use Cases • Two main reasons for factoring: – Complex use cases need to be factored into simpler use cases – To represent common behaviour across different use cases • Three ways of factoring: – Generalization – Include – Extend
  • 25. Generalization • The child use case inherits the behaviour of the parent use case. – The child may add to or override some of the behavior of its parent. parent child Registration Graduate registration Under-graduate registration
  • 26. Include • When you have a piece of behaviour that is similar across many use cases – Break this out as a separate use-case and let the other ones “include” it • Examples of use case include – Validate user interaction – Sanity check on sensor inputs – Check for proper authorization Base use case Common use case <<include>> Issue Book Check Reservation Renew Book <<include>> <<include>>
  • 27. Extends • Use when a use-case optionally can do a little bit more: – Capture the normal behaviour – Capture the extra behaviour in a separate use-case – Create extends dependency • Makes it a lot easier to understand Order Item Show Catalog <<extend>>
  • 29. Ex2: Course Management Software • At the beginning of each semester, – Each professor shall register the courses that he is going to teach. • A student can select up to four-course offerings. – During registration a students can request a course catalogue showing course offerings for the semester. – Information about each course such as professor, department and prerequisites would be displayed. – The registration system sends information to the billing system so the students can be billed for the semester. • For each semester, there is a period of time during which dropping of courses is permitted. • Professors must be able to access the system to see which students signed up for each of their course offerings.
  • 30. Register offering Show registration Register course Drop Course Student Calendar Course Management Software Ex 2: Solution See Course List Professor <<Extend>> <<External>> Billing System
  • 31. Use-Case Model using Packaging
  • 34. Class • A class represents a set of objects having similar attributes, operations, relationships and behaviour. • Instances are objects • Template for object creation • Considered as abstract data type (ADT)‫‏‬ – Examples: Employees, Books, etc. • Sometimes not intended to produce instances: – Abstract classes
  • 35. Methods & Messages • Operations supported by an object: – Means for manipulating the data of other objects. – Invoked by sending a message (method call). – Examples: calculate_salary, issue-book, member_details, etc.
  • 36. Inheritance • Allows to define a new class (derived class) by extending or modifying existing class (base class). • Represents generalization- specialization relationship. • Allows redefinition of the existing methods (method overriding). • Types – Single/Simple; multilevel – Multiple LibraryMember ResearchPostGradUnderGrad StaffStudentsFaculty Base Class Derived Classes
  • 37. Association • Enables objects to communicate with each other: – Thus one object must “know” the address of the corresponding object in the association. • Usually binary: – But in general can be n-ary. Library Member Book 1 *borrowed by
  • 38. Aggregation • Represents whole-part relationship • Represented by a diamond symbol at the composite end • Cannot be reflexive(i.e. recursive)‫‏‬ • Not symmetric • It can be transitive Document Line * Paragraph 1 *
  • 39. Composition • A stronger form of aggregation – The whole is the sole owner of its part. • A component can belong to only one whole – The life time of the part is dependent upon the whole. • The composite must manage the creation and destruction of its parts. Order 1 * Item
  • 40. Dependency • Dependency relationship can arise due to a variety of reasons: – Stereotypes are used to show the precise nature of the dependency. Type of dependency Stereotype Description Abstraction «abstraction» Relates two model elements, that represent the same concept at different levels of abstraction Binding «bind» Connects template arguments to template parameters to create model elements from templates. Realization «realize» Indicates that the client model element is an implementation of the supplier model element Substitution «substitute» Indicates that the client model element takes place of the supplier.
  • 41. Polymorphism • Denotes poly (many) morphism (forms). • Under different situations: – Same message to the same object can result in different actions: • Static binding • Dynamic binding
  • 42. Genericity  Ability to parameterize class definitions.  Example: class stack of different types of elements:  Integer stack  Character stack  Floating point stack  Define generic class stack:  Later instantiate as required