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

Overview of UML Diagrams
Overview of UML DiagramsOverview of UML Diagrams
Overview of UML DiagramsManish Kumar
 
08 state diagram and activity diagram
08 state diagram and activity diagram08 state diagram and activity diagram
08 state diagram and activity diagramBaskarkncet
 
Use case Diagram
Use case Diagram Use case Diagram
Use case Diagram Rahul Pola
 
Prototype model
Prototype modelPrototype model
Prototype modelsadhana8
 
Uml Presentation
Uml PresentationUml Presentation
Uml Presentationmewaseem
 
Ooad (object oriented analysis design)
Ooad (object oriented analysis design)Ooad (object oriented analysis design)
Ooad (object oriented analysis design)Gagandeep Nanda
 
Object Oriented Analysis Design using UML
Object Oriented Analysis Design using UMLObject Oriented Analysis Design using UML
Object Oriented Analysis Design using UMLAjit Nayak
 
Introduction to object-oriented analysis and design (OOA/D)
Introduction to object-oriented analysis and design (OOA/D)Introduction to object-oriented analysis and design (OOA/D)
Introduction to object-oriented analysis and design (OOA/D)Ahmed Farag
 
Collaboration diagram- UML diagram
Collaboration diagram- UML diagram Collaboration diagram- UML diagram
Collaboration diagram- UML diagram Ramakant Soni
 
Object Oriented Design in Software Engineering SE12
Object Oriented Design in Software Engineering SE12Object Oriented Design in Software Engineering SE12
Object Oriented Design in Software Engineering SE12koolkampus
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notesSiva Ayyakutti
 
Software development life cycle (SDLC)
Software development life cycle (SDLC)Software development life cycle (SDLC)
Software development life cycle (SDLC)Simran Kaur
 
Slide 4 Interaction Diagram
Slide 4 Interaction DiagramSlide 4 Interaction Diagram
Slide 4 Interaction DiagramNiloy Rocker
 
Uml class diagram and packages ppt for dot net
Uml class diagram and packages ppt for dot netUml class diagram and packages ppt for dot net
Uml class diagram and packages ppt for dot netmekhap
 
Requirements modeling
Requirements modelingRequirements modeling
Requirements modelingAnanthiP8
 
Flow oriented modeling
Flow oriented modelingFlow oriented modeling
Flow oriented modelingramyaaswin
 

What's hot (20)

Overview of UML Diagrams
Overview of UML DiagramsOverview of UML Diagrams
Overview of UML Diagrams
 
08 state diagram and activity diagram
08 state diagram and activity diagram08 state diagram and activity diagram
08 state diagram and activity diagram
 
Use case diagram
Use case diagramUse case diagram
Use case diagram
 
Use case Diagram
Use case Diagram Use case Diagram
Use case Diagram
 
Prototype model
Prototype modelPrototype model
Prototype model
 
State chart diagram
State chart diagramState chart diagram
State chart diagram
 
Uml Presentation
Uml PresentationUml Presentation
Uml Presentation
 
Ooad (object oriented analysis design)
Ooad (object oriented analysis design)Ooad (object oriented analysis design)
Ooad (object oriented analysis design)
 
Object Oriented Analysis Design using UML
Object Oriented Analysis Design using UMLObject Oriented Analysis Design using UML
Object Oriented Analysis Design using UML
 
Introduction to object-oriented analysis and design (OOA/D)
Introduction to object-oriented analysis and design (OOA/D)Introduction to object-oriented analysis and design (OOA/D)
Introduction to object-oriented analysis and design (OOA/D)
 
Collaboration diagram- UML diagram
Collaboration diagram- UML diagram Collaboration diagram- UML diagram
Collaboration diagram- UML diagram
 
Object Oriented Design in Software Engineering SE12
Object Oriented Design in Software Engineering SE12Object Oriented Design in Software Engineering SE12
Object Oriented Design in Software Engineering SE12
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notes
 
Software development life cycle (SDLC)
Software development life cycle (SDLC)Software development life cycle (SDLC)
Software development life cycle (SDLC)
 
Slide 4 Interaction Diagram
Slide 4 Interaction DiagramSlide 4 Interaction Diagram
Slide 4 Interaction Diagram
 
Uml class diagram and packages ppt for dot net
Uml class diagram and packages ppt for dot netUml class diagram and packages ppt for dot net
Uml class diagram and packages ppt for dot net
 
Software design
Software designSoftware design
Software design
 
Requirements modeling
Requirements modelingRequirements modeling
Requirements modeling
 
Uml - An Overview
Uml - An OverviewUml - An Overview
Uml - An Overview
 
Flow oriented modeling
Flow oriented modelingFlow oriented modeling
Flow oriented modeling
 

Viewers also liked

Software Engineering an Introduction
Software Engineering an IntroductionSoftware Engineering an Introduction
Software Engineering an IntroductionAjit Nayak
 
Software Engineering :UML class diagrams
Software Engineering :UML class diagramsSoftware Engineering :UML class diagrams
Software Engineering :UML class diagramsAjit 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
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case DiagramAshesh R
 

Viewers also liked (9)

Software Engineering an Introduction
Software Engineering an IntroductionSoftware Engineering an Introduction
Software Engineering an Introduction
 
Software Engineering :UML class diagrams
Software Engineering :UML class diagramsSoftware Engineering :UML class diagrams
Software Engineering :UML class diagrams
 
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
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case Diagram
 

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
 
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
 
Object Oriented Programming using C++ Part I
Object Oriented Programming using C++ Part IObject Oriented Programming using C++ Part I
Object Oriented Programming using C++ Part IAjit 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
 
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
 
Object Oriented Programming using C++ Part I
Object Oriented Programming using C++ Part IObject Oriented Programming using C++ Part I
Object Oriented Programming using C++ Part I
 

Recently uploaded

FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756dollysharma2066
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Bookingdharasingh5698
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfJiananWang21
 
Unit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdfUnit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdfRagavanV2
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordAsst.prof M.Gokilavani
 
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Bookingroncy bisnoi
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...Call Girls in Nagpur High Profile
 
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...tanu pandey
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptMsecMca
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)simmis5
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...Call Girls in Nagpur High Profile
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTbhaskargani46
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performancesivaprakash250
 
Vivazz, Mieres Social Housing Design Spain
Vivazz, Mieres Social Housing Design SpainVivazz, Mieres Social Housing Design Spain
Vivazz, Mieres Social Housing Design Spaintimesproduction05
 
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank  Design by Working Stress - IS Method.pdfIntze Overhead Water Tank  Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank Design by Working Stress - IS Method.pdfSuman Jyoti
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdfKamal Acharya
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdfKamal Acharya
 

Recently uploaded (20)

FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
Unit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdfUnit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdf
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
 
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPT
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
 
Vivazz, Mieres Social Housing Design Spain
Vivazz, Mieres Social Housing Design SpainVivazz, Mieres Social Housing Design Spain
Vivazz, Mieres Social Housing Design Spain
 
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank  Design by Working Stress - IS Method.pdfIntze Overhead Water Tank  Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 

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