SlideShare a Scribd company logo
1
Module 1: Introduction to OOAD
Author:: SARMAD BALOCH
(Object-Oriented Analysis and Design)
SARMAD BALOCH
2
Objectives
 Why OO?
 What is OOAD?
 How to do OOAD?
3
Why Object-Oriented?
Genesis 11:1-9 Acts
2:1-4
The Tower Of
Babel
Let's become famous
by building a city
with a tower that
reaches up to
heaven (verse
four).
Let's go down and
confuse their
speech right
away, and make it
so that they will
not understand
each other's
speech. (verses
five through
seven).
4
Why Object-Oriented?
5What kind of language can alleviate difficulties with
communication & complexity hopefully well?
Why Object-Oriented?
“The "software crises" came about when people realized the major
problems in software development were … caused by communication
difficulties and the management of complexity” [Budd]
The Whorfian Hypothesis:
Human beings … are very much at the mercy of the particular language
which has become the medium of expression for their society … the
'real world' is … built upon the language habits … We cut nature up,
organize it into concepts, and ascribe significances as we do, largely
because we are parties to an agreement to organize it in this way … and
is codified in the patterns of our language.

 
6
Why Object-Oriented?
– Consider Human Growth & Concept Formation
 Communication & complexity about the problem and the solution, all expressed in terms of
concepts in a language!
 But then, What is CONCEPT? [Martin & Odell]
 Consider Human Growth & Concept Formation
stage concepts
infant the world is a buzzing confusion
very young age "blue" "sky“ (individual concepts)
"blue sky“ (more complex concept)
hypothesis: humans possess an innate
capacity for perception
getting older -> increased meaning, precision,
subtlety, ...
the sky is blue only on cloudless days
the sky is not really blue
it only looks blue from our planet Earth
because of atmospheric effects
elaborate conceptual constructs
Concept formation: from chaos to order!
7
Why Object-Oriented?
- concepts and objects
So, concepts are needed to bring order … into
But, What is CONCEPT? [Martin & Odell] [Novak, 1984, Cambridge University Press]
Study of a first grade class
When given a list of concepts (water, salt water, Oceans, Penguins,...),
Harry constructed a concept diagram through which he understands his world and
communicates meaning
Does Harry understand the concepts? Do you understand what Harry understands? Agree or Diagree?
8
Why Object-Oriented?
… for Conceptual … Modeling Reasons
What kind of language can be used to create this concept diagram,
or Harry’s mental image?
Water
Rivers Oceans
Fish
Penguins
Crocodiles
Fresh water
Salt water
have
have
have
live in
have
have
9
Why Object-Oriented ->
What is a model and why?
 A model is a simplification of reality.
E.g., a miniature bridge for a real bridge to be built
 Well...sort of….but not quite
 A model is our simplification of our perception of reality
(that is, if it exists, otherwise it could be a mere illusion).
communication is not about reality but about your/my/his/her
perception of reality => validation and verification hard but needed
 A model is an abstractionof something for the purpose
of understanding, be it the problem or a solution.
 To understand why a software system is needed, what it should do, and how it should do it.
 To communicate our understanding of why, what and how.
 To detect commonalities and differences in your perception, my perception, his perception
and her perception of reality.
 To detect misunderstandings and miscommunications.
10
What is Object-Orientation?
- What is Object?
 An "object" is anything to which a concept applies, in our awareness
 Things drawn from the problem domain or solution space.
 E.g., a living person in the problem domain, a software component in the solution space.
 A structure that has identity and properties and behavior
 It is an instance of a collective concept, i.e., a class.
11
Encapsulation
a.k.a. information hiding
Objects encapsulate:
property
behavior as a collection of methods invoked by
messages
…state as a collection of instance variables
Abstraction
Focus on the essential
Omits tremendous amount of details
…Focus on what an object “is and does”
What is Object-Orientation
- Abstraction and Encapsulation
12
What is Object-Orientation
- Another Example of Abstraction and Encapsulation
Class Car
Attributes
 Model
 Location
 #Wheels = 4
Operations
 Start
 Accelerate
<<instanceOf>>
<<instanceOf>>
<<instanceOf>>
What is generalization?
What is over-generalization??
Forall x [Car(x) -> …]
13
What is Object-Orientation?
- Class
 What is CLASS?
 a collection of objects that share common properties, attributes, behavior and
semantics, in general. What are all these???
 A collection of objects with the same data structure (attributes, state variables)
and behavior (function/code/operations) in the solution space.
 Classification
 Grouping of common objects into a class
 Instantiation.
 The act of creating an instance.
Class Car
Attributes
 Model
 Location
 #Wheels = 4
Operations
 Start
 Accelerate
<<instanceOf>>
<<instanceOf>>
<<instanceOf>>
14
What is Object-Orientation
- Subclass vs. Superclass
• Specialization: The act of defining one class as a refinement of another.
• Subclass: A class defined in terms of a specialization of a superclass
using inheritance.
• Superclass: A class serving as a base for inheritance in a class hierarchy
• Inheritance: Automatic duplication of superclass attribute and behavior
definitions in subclass.
multiple inheritance?
Person
name
SSN
Student
std-id
level
Employee
emp-id
age
15
What is Object-Orientation
- Subclass vs. Superclass
A
B
C
A
B
A
B
C
A
B
c: C
A
B
c: C
<<instanceOf>> <<instanceOf>>
A
B
<<instanceOf>>
A
B
<<instanceOf>>
16
What is Object-Orientation
- Subclass vs. Superclass and …
A
B
C
<<instanceOf>>
A
B
c: C
<<instanceOf>>
<<instanceOf>>
A
B
<<instanceOf>>
C
A
B
C
<<instanceOf>>
d: D
<<instanceOf>>
A
C
D
<<instanceOf>>
B
1
2
3
17
What is Object-Orientation
- Polymorphism
Objects of different classes respond to the same message differently.
payTuition
Person
name
SSN
Student
std-id
level
Employee
emp-id
In-State
Student
state
payTuition payTuition
Out-of-State
Student
payTuition
18
What is Object-Orientation
- Interfaces
• Information hiding - all data should be hidden within a class, at least in principle.
• make all data attributes private
• provide public methods to get and set the data values (cf. Java design patterns)
• e.g. Grade information is usually confidential, hence it should be kept
private to the student. Access to the grade information should be
done through interfaces, such as setGrade and getGrade
payTuition
setGrade()
getGrade()
Student
std-id
level
getGrade
setGrade
grade
19
What is Object-Orientation
- Abstract Class vs. Concrete Class
 Abstract Class.
 An incomplete superclass that defines common parts.
 Not instantiated.
 Concrete class.
 Is a complete class.
 Describes a concept completely.
 Is intended to be instantiated.
Work out an example!
20
What is Object-Orientation?
-State
 What is STATE?
"State" is a collection of association an object has with other objects and object types.
 What is STATE CHANGE?
A "state change" is the transition of an object from one state to another.
 What is EVENT?
An "event" is a noteworthy change in state [Rumbaugh]
Work out an example!
21
What is Object-Orientation?
-State transition impossible?
tom: Actor
name = “Tom Cruise”
katie: Actor
name = “Katie Holmes”
tom: Actor
name = “Tom Holmes”
katie: Actor
name = “Katie Holmes”
married/changeLastName
tom: Actor
name = “Tom Holmes”
katie: Actor
name = “Katie Holmes”
suri: BabyActor
name = “Suri Holmes”
newArrival/getName
22
What is Object-Oriented Application?
• Collection of discrete objects, interacting w. each other
• Objects have property and behavior (causing state transition)
• Interactions through message passing
(A sender object sends a request (message) to another object (receiver)
to invoke a method of the receiver object’s)
Fn
Data
O1
Fn
Data
O2
Fn
Data
O3
m1
m2m3
{m in Fn}
23
What is OOAD?
 Analysis — understanding, finding and describing concepts in
the problem domain.
 Design — understanding and defining software
solution/objects that represent the analysis concepts and will
eventually be implemented in code.
 OOAD — Analysis is object-oriented and design is object-
oriented. A software development approach that emphasizes a
logical solution based on objects.
Traceability!
Involves both a notation and a process
24
Harry again …
What do we see here?
Water
Rivers Oceans
Fish
Penguins
Crocodiles
Fresh water
Salt water
have
have
have
live in
have
have
Things, Relationships, Diagram
25
How to do OOAD
- notation vs. process
 UML is a notation.
 So are English,
Elvish, Ku, …
 But as yet I can’t
26
Systems Engineering
Requirements Analysis
Project Planning
Architectural Design
Detailed Design
Implementation
Release
Maintenance
QualityAssurance
Software Lifecycle
How to Do OOAD
– Where to Use OO? Traceability!
Something missing?
What’s yours like?
27
Traceability!
Artificial problem
Accidental design
28
Specifications are important too
29
How to Do OOAD
– OMT as Object-Oriented Methodology
OMT (Object Modeling Technique) by James Rumbaugh
Object Model: describes the static
structure of the objects in the system and
their relationships -> Object Diagrams.
Dynamic Model: describes the
interactions among objects in the system
-> State Diagrams.
Functional Model: describes the data
transformation of the system
-> DataFlow Diagrams.
Traceability!
30
Analysis:
i) Model the real world showing its important
properties;
ii) Concise model of what the system will do
System Design:
Organize into subsystems based on analysis
structure and propose architecture
Object Design: Based on analysis
model but with implementation details;
Focus on data structures and
algorithms to implement each class;
Computer and domain objects
Implementation: Translate the object
classes and relationships into a
programming language
How to Do OOAD
– OMT as Object-Oriented Methodology
OMT (Object Modeling Technique) by James Rumbaugh
Traceability!
31
A Unified Language + A Good Process
+ A Good Goal, perhaps
32
Introduction to OOAD - Summary
Why
 Once Software Crisis due to Communication and Complexity
 Languages, Concepts, Models
 OO for Conceptual Modeling
What
 Fundamental OO Concepts
 A little taste of UML
How
 OO development processes & (Design) Patterns
33
How to Do OOAD
- Historical Perspective
OO Prog. Languages
(Smalltalk, C++)
just program!
OO Design
(Booch) design then
program
OO Analysis
(Rumbaugh, Jacobson)
Process PerspectiveOO Technology
Analyze (use case) first,
then design,
T then programWhere are we heading?
34
How to Do OOAD
- OO Development Processes
 Fusion
 Hewlett Packard
 Recommended Process and Models
 ObjectSpace best practices
 Larman’s experiences
 …
 The Rational Unified Process (RUP)
 Rational; Booch, Jacobson, and Rumbaugh
Some Popular OOAD Processes (for reference only)
35
How to Do OOAD
– One Good Way: Use (OO) Design Patterns
Reusable solutions to typical problems.
“Each design pattern systematically names, explains, and evaluates an
important and recurring design in object-oriented systems.” [Gamma]
 Name — identifies a particular pattern, creating a vocabulary.
 Problem — identifies context when pattern should be applied.
 Solution — an abstract description of a design problem along with a template
object design that solves the problem.
 Consequences — results and trade-offs of applying the pattern.
36
Knowledge
Representation (in A.I.)
Psychological Validity
Philosophical Validity
Computational Validity
Databases
Emphasis in Persistent Data
(and now ACID properties)
RelationalDB
Network DB
Hierarchical DB
OODB
Programming Languages
Emphasis in Efficiency
Simula, SmallTalk, C++, Protel,
Java
ERD
SDM
CM
ADT
ERD: Entity Relationship Diagram
SDM: Semantic Data Model
ADT: Abstract Data Type
CM: Conceptual Model
Why Object-Oriented
- Who’s Behind Object-Orientation w. Diff. Concerns
System/Software
Engineering
Where does Unified Modeling Language come into this?
37
Why Object-Oriented
– A New Paradigm with Evolving Object Orientation
 OOP: Object-Oriented Programming
 Simula (1967), Smalltalk (70’s), C++ (mid 80’s), Eiffel, Ada95,
Turing, …
 OOD: Object-Oriented Design
 Taxis (1976), Adaplex, …, Grady Booch (1980)
 OOA: Object-Oriented Requirements
 RML (1981), James Rumbaugh (late 80’s)
 OO-Databases (OODBs): 1980-90’s
 OLE/DCOM, VisualBasic, CORBA, Java: mid 90’s
 .Net, C#, (eb/voice…/-)XML, J2EE: into 2000+
 UML: mid 90’s and still evolving
38
Introduction to OOAD - Points to Ponder
1. How do you think your mental image is represented?
2. What kinds of languages are used for what purpose in our daily life?
3. What are the differences among a concept, a model and a language?
4. What are the differences between a language and a methodology?
5. Can we use C# for analysis?
6. If C++ is a language, does it model anything? If so, what?
7. What does a concept in C++ refer to (i.e., semantics)?
8. What does a concept in a (OO) design refer to?
9. What does a concept in an (OO requirements) analysis refer to?
10. Is the current OOAD for Functional Analysis and Design, or Non-
Functional Analysis and Design?
11. What is the relationship between OO (Object-Orientation) and GO
(Goal-Orientation), between OO and AO (Agent-Orientation), and
between GO and AO?
12. Can you prove you and I communicate with each other perfectly?

More Related Content

What's hot

Brief introduction to Object Oriented Analysis and Design
Brief introduction to Object Oriented Analysis and DesignBrief introduction to Object Oriented Analysis and Design
Brief introduction to Object Oriented Analysis and Design
Amrullah Zunzunia
 
Object oriented analysis
Object oriented analysisObject oriented analysis
Object oriented analysis
Hoang Nguyen
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and Design
university of education,Lahore
 
Introduction To Ooad
Introduction To OoadIntroduction To Ooad
Introduction To Ooad
Rajesh Kumar
 
Object Oriented Analysis And Design
Object Oriented Analysis And DesignObject Oriented Analysis And Design
Object Oriented Analysis And DesignSahil Mahajan
 
Introduction to Object Oriented Design
Introduction to Object Oriented DesignIntroduction to Object Oriented Design
Introduction to Object Oriented Design
Computing Cage
 
Ooad ch 1_2
Ooad ch 1_2Ooad ch 1_2
Ooad ch 1_2
anujabeatrice2
 
Handout on Object orienetd Analysis and Design
Handout on Object orienetd Analysis and DesignHandout on Object orienetd Analysis and Design
Handout on Object orienetd Analysis and Design
SAFAD ISMAIL
 
UNDERSTANDING OOAD AND DESIGN PATTERNS USING UML AND JAVA-TRAINING WORKSHOP
UNDERSTANDING OOAD AND DESIGN PATTERNS USING UML AND JAVA-TRAINING WORKSHOPUNDERSTANDING OOAD AND DESIGN PATTERNS USING UML AND JAVA-TRAINING WORKSHOP
UNDERSTANDING OOAD AND DESIGN PATTERNS USING UML AND JAVA-TRAINING WORKSHOPAmit Midha
 
OOAD chapter 1
OOAD chapter 1 OOAD chapter 1
OOAD chapter 1
Parkavi Umadoss
 
Ooad (object oriented analysis design)
Ooad (object oriented analysis design)Ooad (object oriented analysis design)
Ooad (object oriented analysis design)
Gagandeep Nanda
 
Object Oriented Concept
Object Oriented ConceptObject Oriented Concept
Object Oriented Conceptsmj
 
Ooad unit 1
Ooad unit 1Ooad unit 1
Ooad unit 1
raj kumar
 
Object Oriented Design
Object Oriented DesignObject Oriented Design
Object Oriented Design
Sudarsun Santhiappan
 
Object Oriented Approach for Software Development
Object Oriented Approach for Software DevelopmentObject Oriented Approach for Software Development
Object Oriented Approach for Software Development
Rishabh Soni
 
Object model
Object modelObject model
Object model
Hoang Nguyen
 
Object analysis and design
Object analysis and designObject analysis and design
Object analysis and designAnand Grewal
 
CS8592-OOAD Lecture Notes Unit-4
CS8592-OOAD Lecture Notes Unit-4CS8592-OOAD Lecture Notes Unit-4
CS8592-OOAD Lecture Notes Unit-4
Gobinath Subramaniam
 

What's hot (20)

Brief introduction to Object Oriented Analysis and Design
Brief introduction to Object Oriented Analysis and DesignBrief introduction to Object Oriented Analysis and Design
Brief introduction to Object Oriented Analysis and Design
 
Object oriented analysis
Object oriented analysisObject oriented analysis
Object oriented analysis
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and Design
 
Introduction To Ooad
Introduction To OoadIntroduction To Ooad
Introduction To Ooad
 
Object Oriented Analysis And Design
Object Oriented Analysis And DesignObject Oriented Analysis And Design
Object Oriented Analysis And Design
 
Introduction to Object Oriented Design
Introduction to Object Oriented DesignIntroduction to Object Oriented Design
Introduction to Object Oriented Design
 
Ooad ch 1_2
Ooad ch 1_2Ooad ch 1_2
Ooad ch 1_2
 
Ph.D. Registeration seminar
Ph.D. Registeration seminarPh.D. Registeration seminar
Ph.D. Registeration seminar
 
Handout on Object orienetd Analysis and Design
Handout on Object orienetd Analysis and DesignHandout on Object orienetd Analysis and Design
Handout on Object orienetd Analysis and Design
 
UNDERSTANDING OOAD AND DESIGN PATTERNS USING UML AND JAVA-TRAINING WORKSHOP
UNDERSTANDING OOAD AND DESIGN PATTERNS USING UML AND JAVA-TRAINING WORKSHOPUNDERSTANDING OOAD AND DESIGN PATTERNS USING UML AND JAVA-TRAINING WORKSHOP
UNDERSTANDING OOAD AND DESIGN PATTERNS USING UML AND JAVA-TRAINING WORKSHOP
 
OOAD chapter 1
OOAD chapter 1 OOAD chapter 1
OOAD chapter 1
 
Ooad (object oriented analysis design)
Ooad (object oriented analysis design)Ooad (object oriented analysis design)
Ooad (object oriented analysis design)
 
Object Oriented Concept
Object Oriented ConceptObject Oriented Concept
Object Oriented Concept
 
Ooad unit 1
Ooad unit 1Ooad unit 1
Ooad unit 1
 
Object Oriented Design
Object Oriented DesignObject Oriented Design
Object Oriented Design
 
Object Oriented Approach for Software Development
Object Oriented Approach for Software DevelopmentObject Oriented Approach for Software Development
Object Oriented Approach for Software Development
 
Object model
Object modelObject model
Object model
 
Object analysis and design
Object analysis and designObject analysis and design
Object analysis and design
 
CS8592-OOAD Lecture Notes Unit-4
CS8592-OOAD Lecture Notes Unit-4CS8592-OOAD Lecture Notes Unit-4
CS8592-OOAD Lecture Notes Unit-4
 
Ooad
OoadOoad
Ooad
 

Similar to Introduction of object oriented analysis &amp; design by sarmad baloch

M01_OO_Intro.ppt
M01_OO_Intro.pptM01_OO_Intro.ppt
M01_OO_Intro.ppt
RAJESH S
 
M01_OO_Intro.ppt
M01_OO_Intro.pptM01_OO_Intro.ppt
M01_OO_Intro.ppt
RojaPogul1
 
Module01_OO_Intro.ppt
Module01_OO_Intro.pptModule01_OO_Intro.ppt
Module01_OO_Intro.ppt
NelsonYanes6
 
Module01_OO_Intro.ppt
Module01_OO_Intro.pptModule01_OO_Intro.ppt
Module01_OO_Intro.ppt
RajKamal95773
 
The Four Principles Of Object Oriented Programming
The Four Principles Of Object Oriented ProgrammingThe Four Principles Of Object Oriented Programming
The Four Principles Of Object Oriented Programming
Diane Allen
 
Object And Oriented Programing ( Oop ) Languages
Object And Oriented Programing ( Oop ) LanguagesObject And Oriented Programing ( Oop ) Languages
Object And Oriented Programing ( Oop ) Languages
Jessica Deakin
 
香港六合彩 &raquo; SlideShare
香港六合彩 &raquo; SlideShare香港六合彩 &raquo; SlideShare
香港六合彩 &raquo; SlideShare
biyu
 
CSCI-383 Lecture 2: Thinking Object-Oriented (2)
CSCI-383 Lecture 2: Thinking Object-Oriented (2)CSCI-383 Lecture 2: Thinking Object-Oriented (2)
CSCI-383 Lecture 2: Thinking Object-Oriented (2)JI Ruan
 
Intro to Object Oriented Programming with Java
Intro to Object Oriented Programming with Java Intro to Object Oriented Programming with Java
Intro to Object Oriented Programming with Java
Hitesh-Java
 
Chapter 1- Introduction.ppt
Chapter 1- Introduction.pptChapter 1- Introduction.ppt
Chapter 1- Introduction.ppt
TigistTilahun1
 
Object-Oriented Programming in Java (Module 1)
Object-Oriented Programming in Java (Module 1)Object-Oriented Programming in Java (Module 1)
Object-Oriented Programming in Java (Module 1)
muhammadmubinmacadad2
 
Introduction to object oriented programming
Introduction to object oriented programmingIntroduction to object oriented programming
Introduction to object oriented programmingAbzetdin Adamov
 
The Role Of Ontology In Modern Expert Systems Dallas 2008
The Role Of Ontology In Modern Expert Systems   Dallas   2008The Role Of Ontology In Modern Expert Systems   Dallas   2008
The Role Of Ontology In Modern Expert Systems Dallas 2008
Jason Morris
 
To Ask or To Sense? Planning to Integrate Speech and Sensorimotor Acts
To Ask or To Sense? Planning to Integrate Speech and Sensorimotor ActsTo Ask or To Sense? Planning to Integrate Speech and Sensorimotor Acts
To Ask or To Sense? Planning to Integrate Speech and Sensorimotor Actstoukaigi
 
Introduction to Object Oriented Programming
Introduction to Object Oriented ProgrammingIntroduction to Object Oriented Programming
Introduction to Object Oriented Programming
Moutaz Haddara
 
Object oriented software engineering concepts
Object oriented software engineering conceptsObject oriented software engineering concepts
Object oriented software engineering conceptsKomal Singh
 
PHPnw (England) User Group - Concepts, Spaces and Thresholds and why they matter
PHPnw (England) User Group - Concepts, Spaces and Thresholds and why they matterPHPnw (England) User Group - Concepts, Spaces and Thresholds and why they matter
PHPnw (England) User Group - Concepts, Spaces and Thresholds and why they matter
Peter Jones
 
Intro to oop.pptx
Intro to oop.pptxIntro to oop.pptx
Intro to oop.pptx
UmerUmer25
 

Similar to Introduction of object oriented analysis &amp; design by sarmad baloch (20)

M01_OO_Intro.ppt
M01_OO_Intro.pptM01_OO_Intro.ppt
M01_OO_Intro.ppt
 
M01_OO_Intro.ppt
M01_OO_Intro.pptM01_OO_Intro.ppt
M01_OO_Intro.ppt
 
Module01_OO_Intro.ppt
Module01_OO_Intro.pptModule01_OO_Intro.ppt
Module01_OO_Intro.ppt
 
Module01_OO_Intro.ppt
Module01_OO_Intro.pptModule01_OO_Intro.ppt
Module01_OO_Intro.ppt
 
The Four Principles Of Object Oriented Programming
The Four Principles Of Object Oriented ProgrammingThe Four Principles Of Object Oriented Programming
The Four Principles Of Object Oriented Programming
 
Object And Oriented Programing ( Oop ) Languages
Object And Oriented Programing ( Oop ) LanguagesObject And Oriented Programing ( Oop ) Languages
Object And Oriented Programing ( Oop ) Languages
 
Week1
Week1Week1
Week1
 
Oop concept
Oop conceptOop concept
Oop concept
 
香港六合彩 &raquo; SlideShare
香港六合彩 &raquo; SlideShare香港六合彩 &raquo; SlideShare
香港六合彩 &raquo; SlideShare
 
CSCI-383 Lecture 2: Thinking Object-Oriented (2)
CSCI-383 Lecture 2: Thinking Object-Oriented (2)CSCI-383 Lecture 2: Thinking Object-Oriented (2)
CSCI-383 Lecture 2: Thinking Object-Oriented (2)
 
Intro to Object Oriented Programming with Java
Intro to Object Oriented Programming with Java Intro to Object Oriented Programming with Java
Intro to Object Oriented Programming with Java
 
Chapter 1- Introduction.ppt
Chapter 1- Introduction.pptChapter 1- Introduction.ppt
Chapter 1- Introduction.ppt
 
Object-Oriented Programming in Java (Module 1)
Object-Oriented Programming in Java (Module 1)Object-Oriented Programming in Java (Module 1)
Object-Oriented Programming in Java (Module 1)
 
Introduction to object oriented programming
Introduction to object oriented programmingIntroduction to object oriented programming
Introduction to object oriented programming
 
The Role Of Ontology In Modern Expert Systems Dallas 2008
The Role Of Ontology In Modern Expert Systems   Dallas   2008The Role Of Ontology In Modern Expert Systems   Dallas   2008
The Role Of Ontology In Modern Expert Systems Dallas 2008
 
To Ask or To Sense? Planning to Integrate Speech and Sensorimotor Acts
To Ask or To Sense? Planning to Integrate Speech and Sensorimotor ActsTo Ask or To Sense? Planning to Integrate Speech and Sensorimotor Acts
To Ask or To Sense? Planning to Integrate Speech and Sensorimotor Acts
 
Introduction to Object Oriented Programming
Introduction to Object Oriented ProgrammingIntroduction to Object Oriented Programming
Introduction to Object Oriented Programming
 
Object oriented software engineering concepts
Object oriented software engineering conceptsObject oriented software engineering concepts
Object oriented software engineering concepts
 
PHPnw (England) User Group - Concepts, Spaces and Thresholds and why they matter
PHPnw (England) User Group - Concepts, Spaces and Thresholds and why they matterPHPnw (England) User Group - Concepts, Spaces and Thresholds and why they matter
PHPnw (England) User Group - Concepts, Spaces and Thresholds and why they matter
 
Intro to oop.pptx
Intro to oop.pptxIntro to oop.pptx
Intro to oop.pptx
 

More from Sarmad Baloch

Pakistan International cricket stadiums in ADVANCE DATABASE Managment System ...
Pakistan International cricket stadiums in ADVANCE DATABASE Managment System ...Pakistan International cricket stadiums in ADVANCE DATABASE Managment System ...
Pakistan International cricket stadiums in ADVANCE DATABASE Managment System ...
Sarmad Baloch
 
Positive matrix by sarmad baloch
Positive matrix by sarmad balochPositive matrix by sarmad baloch
Positive matrix by sarmad baloch
Sarmad Baloch
 
Conversion of in fix pre fix,infix by sarmad baloch
Conversion of in fix pre fix,infix by sarmad balochConversion of in fix pre fix,infix by sarmad baloch
Conversion of in fix pre fix,infix by sarmad baloch
Sarmad Baloch
 
Bnak reconciliation statement by sarmad baloch
Bnak reconciliation statement by sarmad balochBnak reconciliation statement by sarmad baloch
Bnak reconciliation statement by sarmad baloch
Sarmad Baloch
 
Security_saftety_privacy of computer by sarmad baloch
Security_saftety_privacy of computer by sarmad balochSecurity_saftety_privacy of computer by sarmad baloch
Security_saftety_privacy of computer by sarmad baloch
Sarmad Baloch
 
E commerce (introduction to computer) by sarmad baloch
E commerce (introduction to computer) by sarmad balochE commerce (introduction to computer) by sarmad baloch
E commerce (introduction to computer) by sarmad baloch
Sarmad Baloch
 
Programming languages and programme development of computer by sarmad baloch
Programming languages and programme development of computer by sarmad balochProgramming languages and programme development of computer by sarmad baloch
Programming languages and programme development of computer by sarmad baloch
Sarmad Baloch
 
Introduction to computer &amp; its applications by sarmad baloch
Introduction to computer &amp; its applications by sarmad balochIntroduction to computer &amp; its applications by sarmad baloch
Introduction to computer &amp; its applications by sarmad baloch
Sarmad Baloch
 
Accounting principle & concept by sarmad baloch
Accounting principle & concept by sarmad balochAccounting principle & concept by sarmad baloch
Accounting principle & concept by sarmad baloch
Sarmad Baloch
 
Implement of c &amp; its coding programming by sarmad baloch
Implement of c &amp; its coding  programming by sarmad balochImplement of c &amp; its coding  programming by sarmad baloch
Implement of c &amp; its coding programming by sarmad baloch
Sarmad Baloch
 
The functions of modal auxiliary verbs by sarmad baloch
The functions of modal auxiliary verbs by sarmad balochThe functions of modal auxiliary verbs by sarmad baloch
The functions of modal auxiliary verbs by sarmad baloch
Sarmad Baloch
 
Integrator &amp; diferentiator amplifier presentation by sarmad baloch
Integrator &amp; diferentiator amplifier presentation by sarmad balochIntegrator &amp; diferentiator amplifier presentation by sarmad baloch
Integrator &amp; diferentiator amplifier presentation by sarmad baloch
Sarmad Baloch
 
Ms powerpoint 2007 presentation by sarmad baloch
Ms powerpoint 2007 presentation by sarmad balochMs powerpoint 2007 presentation by sarmad baloch
Ms powerpoint 2007 presentation by sarmad baloch
Sarmad Baloch
 
Semiconductor materials and pn junction by sarmad baloch
Semiconductor materials and pn junction by sarmad balochSemiconductor materials and pn junction by sarmad baloch
Semiconductor materials and pn junction by sarmad baloch
Sarmad Baloch
 
Introduction of BJT,types of Diodes by sarmad baloch
Introduction of BJT,types of Diodes by sarmad balochIntroduction of BJT,types of Diodes by sarmad baloch
Introduction of BJT,types of Diodes by sarmad baloch
Sarmad Baloch
 
Pn junction diode by sarmad baloch
Pn junction diode by sarmad balochPn junction diode by sarmad baloch
Pn junction diode by sarmad baloch
Sarmad Baloch
 
Difference b/w BRITISH vs AMERICAN Language by sarmad khosa
Difference b/w BRITISH vs AMERICAN Language by sarmad khosaDifference b/w BRITISH vs AMERICAN Language by sarmad khosa
Difference b/w BRITISH vs AMERICAN Language by sarmad khosa
Sarmad Baloch
 
ACTIVE & PASSIVE ELECTRONICS by sarmad khosa
ACTIVE & PASSIVE ELECTRONICS by sarmad khosaACTIVE & PASSIVE ELECTRONICS by sarmad khosa
ACTIVE & PASSIVE ELECTRONICS by sarmad khosa
Sarmad Baloch
 
MICROSOFT WORD 2007 FULL PRESENTATION BY sarmad khosa
MICROSOFT WORD 2007 FULL PRESENTATION BY sarmad khosaMICROSOFT WORD 2007 FULL PRESENTATION BY sarmad khosa
MICROSOFT WORD 2007 FULL PRESENTATION BY sarmad khosa
Sarmad Baloch
 
Types of DIODES Basic electronics by sarmad khosa
Types of DIODES Basic electronics by sarmad khosaTypes of DIODES Basic electronics by sarmad khosa
Types of DIODES Basic electronics by sarmad khosa
Sarmad Baloch
 

More from Sarmad Baloch (20)

Pakistan International cricket stadiums in ADVANCE DATABASE Managment System ...
Pakistan International cricket stadiums in ADVANCE DATABASE Managment System ...Pakistan International cricket stadiums in ADVANCE DATABASE Managment System ...
Pakistan International cricket stadiums in ADVANCE DATABASE Managment System ...
 
Positive matrix by sarmad baloch
Positive matrix by sarmad balochPositive matrix by sarmad baloch
Positive matrix by sarmad baloch
 
Conversion of in fix pre fix,infix by sarmad baloch
Conversion of in fix pre fix,infix by sarmad balochConversion of in fix pre fix,infix by sarmad baloch
Conversion of in fix pre fix,infix by sarmad baloch
 
Bnak reconciliation statement by sarmad baloch
Bnak reconciliation statement by sarmad balochBnak reconciliation statement by sarmad baloch
Bnak reconciliation statement by sarmad baloch
 
Security_saftety_privacy of computer by sarmad baloch
Security_saftety_privacy of computer by sarmad balochSecurity_saftety_privacy of computer by sarmad baloch
Security_saftety_privacy of computer by sarmad baloch
 
E commerce (introduction to computer) by sarmad baloch
E commerce (introduction to computer) by sarmad balochE commerce (introduction to computer) by sarmad baloch
E commerce (introduction to computer) by sarmad baloch
 
Programming languages and programme development of computer by sarmad baloch
Programming languages and programme development of computer by sarmad balochProgramming languages and programme development of computer by sarmad baloch
Programming languages and programme development of computer by sarmad baloch
 
Introduction to computer &amp; its applications by sarmad baloch
Introduction to computer &amp; its applications by sarmad balochIntroduction to computer &amp; its applications by sarmad baloch
Introduction to computer &amp; its applications by sarmad baloch
 
Accounting principle & concept by sarmad baloch
Accounting principle & concept by sarmad balochAccounting principle & concept by sarmad baloch
Accounting principle & concept by sarmad baloch
 
Implement of c &amp; its coding programming by sarmad baloch
Implement of c &amp; its coding  programming by sarmad balochImplement of c &amp; its coding  programming by sarmad baloch
Implement of c &amp; its coding programming by sarmad baloch
 
The functions of modal auxiliary verbs by sarmad baloch
The functions of modal auxiliary verbs by sarmad balochThe functions of modal auxiliary verbs by sarmad baloch
The functions of modal auxiliary verbs by sarmad baloch
 
Integrator &amp; diferentiator amplifier presentation by sarmad baloch
Integrator &amp; diferentiator amplifier presentation by sarmad balochIntegrator &amp; diferentiator amplifier presentation by sarmad baloch
Integrator &amp; diferentiator amplifier presentation by sarmad baloch
 
Ms powerpoint 2007 presentation by sarmad baloch
Ms powerpoint 2007 presentation by sarmad balochMs powerpoint 2007 presentation by sarmad baloch
Ms powerpoint 2007 presentation by sarmad baloch
 
Semiconductor materials and pn junction by sarmad baloch
Semiconductor materials and pn junction by sarmad balochSemiconductor materials and pn junction by sarmad baloch
Semiconductor materials and pn junction by sarmad baloch
 
Introduction of BJT,types of Diodes by sarmad baloch
Introduction of BJT,types of Diodes by sarmad balochIntroduction of BJT,types of Diodes by sarmad baloch
Introduction of BJT,types of Diodes by sarmad baloch
 
Pn junction diode by sarmad baloch
Pn junction diode by sarmad balochPn junction diode by sarmad baloch
Pn junction diode by sarmad baloch
 
Difference b/w BRITISH vs AMERICAN Language by sarmad khosa
Difference b/w BRITISH vs AMERICAN Language by sarmad khosaDifference b/w BRITISH vs AMERICAN Language by sarmad khosa
Difference b/w BRITISH vs AMERICAN Language by sarmad khosa
 
ACTIVE & PASSIVE ELECTRONICS by sarmad khosa
ACTIVE & PASSIVE ELECTRONICS by sarmad khosaACTIVE & PASSIVE ELECTRONICS by sarmad khosa
ACTIVE & PASSIVE ELECTRONICS by sarmad khosa
 
MICROSOFT WORD 2007 FULL PRESENTATION BY sarmad khosa
MICROSOFT WORD 2007 FULL PRESENTATION BY sarmad khosaMICROSOFT WORD 2007 FULL PRESENTATION BY sarmad khosa
MICROSOFT WORD 2007 FULL PRESENTATION BY sarmad khosa
 
Types of DIODES Basic electronics by sarmad khosa
Types of DIODES Basic electronics by sarmad khosaTypes of DIODES Basic electronics by sarmad khosa
Types of DIODES Basic electronics by sarmad khosa
 

Recently uploaded

How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17
Celine George
 
Multithreading_in_C++ - std::thread, race condition
Multithreading_in_C++ - std::thread, race conditionMultithreading_in_C++ - std::thread, race condition
Multithreading_in_C++ - std::thread, race condition
Mohammed Sikander
 
Digital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments UnitDigital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments Unit
chanes7
 
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
EugeneSaldivar
 
Normal Labour/ Stages of Labour/ Mechanism of Labour
Normal Labour/ Stages of Labour/ Mechanism of LabourNormal Labour/ Stages of Labour/ Mechanism of Labour
Normal Labour/ Stages of Labour/ Mechanism of Labour
Wasim Ak
 
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
Nguyen Thanh Tu Collection
 
Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
Balvir Singh
 
Advantages and Disadvantages of CMS from an SEO Perspective
Advantages and Disadvantages of CMS from an SEO PerspectiveAdvantages and Disadvantages of CMS from an SEO Perspective
Advantages and Disadvantages of CMS from an SEO Perspective
Krisztián Száraz
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
Sandy Millin
 
The Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptxThe Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptx
DhatriParmar
 
Acetabularia Information For Class 9 .docx
Acetabularia Information For Class 9  .docxAcetabularia Information For Class 9  .docx
Acetabularia Information For Class 9 .docx
vaibhavrinwa19
 
MASS MEDIA STUDIES-835-CLASS XI Resource Material.pdf
MASS MEDIA STUDIES-835-CLASS XI Resource Material.pdfMASS MEDIA STUDIES-835-CLASS XI Resource Material.pdf
MASS MEDIA STUDIES-835-CLASS XI Resource Material.pdf
goswamiyash170123
 
A Survey of Techniques for Maximizing LLM Performance.pptx
A Survey of Techniques for Maximizing LLM Performance.pptxA Survey of Techniques for Maximizing LLM Performance.pptx
A Survey of Techniques for Maximizing LLM Performance.pptx
thanhdowork
 
Supporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptxSupporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptx
Jisc
 
Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.
Ashokrao Mane college of Pharmacy Peth-Vadgaon
 
South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)
Academy of Science of South Africa
 
Chapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptxChapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptx
Mohd Adib Abd Muin, Senior Lecturer at Universiti Utara Malaysia
 
Pride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School DistrictPride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School District
David Douglas School District
 
Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
Celine George
 
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat  Leveraging AI for Diversity, Equity, and InclusionExecutive Directors Chat  Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
TechSoup
 

Recently uploaded (20)

How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17
 
Multithreading_in_C++ - std::thread, race condition
Multithreading_in_C++ - std::thread, race conditionMultithreading_in_C++ - std::thread, race condition
Multithreading_in_C++ - std::thread, race condition
 
Digital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments UnitDigital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments Unit
 
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
 
Normal Labour/ Stages of Labour/ Mechanism of Labour
Normal Labour/ Stages of Labour/ Mechanism of LabourNormal Labour/ Stages of Labour/ Mechanism of Labour
Normal Labour/ Stages of Labour/ Mechanism of Labour
 
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
 
Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
 
Advantages and Disadvantages of CMS from an SEO Perspective
Advantages and Disadvantages of CMS from an SEO PerspectiveAdvantages and Disadvantages of CMS from an SEO Perspective
Advantages and Disadvantages of CMS from an SEO Perspective
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
 
The Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptxThe Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptx
 
Acetabularia Information For Class 9 .docx
Acetabularia Information For Class 9  .docxAcetabularia Information For Class 9  .docx
Acetabularia Information For Class 9 .docx
 
MASS MEDIA STUDIES-835-CLASS XI Resource Material.pdf
MASS MEDIA STUDIES-835-CLASS XI Resource Material.pdfMASS MEDIA STUDIES-835-CLASS XI Resource Material.pdf
MASS MEDIA STUDIES-835-CLASS XI Resource Material.pdf
 
A Survey of Techniques for Maximizing LLM Performance.pptx
A Survey of Techniques for Maximizing LLM Performance.pptxA Survey of Techniques for Maximizing LLM Performance.pptx
A Survey of Techniques for Maximizing LLM Performance.pptx
 
Supporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptxSupporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptx
 
Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.
 
South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)
 
Chapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptxChapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptx
 
Pride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School DistrictPride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School District
 
Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
 
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat  Leveraging AI for Diversity, Equity, and InclusionExecutive Directors Chat  Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
 

Introduction of object oriented analysis &amp; design by sarmad baloch

  • 1. 1 Module 1: Introduction to OOAD Author:: SARMAD BALOCH (Object-Oriented Analysis and Design) SARMAD BALOCH
  • 2. 2 Objectives  Why OO?  What is OOAD?  How to do OOAD?
  • 3. 3 Why Object-Oriented? Genesis 11:1-9 Acts 2:1-4 The Tower Of Babel Let's become famous by building a city with a tower that reaches up to heaven (verse four). Let's go down and confuse their speech right away, and make it so that they will not understand each other's speech. (verses five through seven).
  • 5. 5What kind of language can alleviate difficulties with communication & complexity hopefully well? Why Object-Oriented? “The "software crises" came about when people realized the major problems in software development were … caused by communication difficulties and the management of complexity” [Budd] The Whorfian Hypothesis: Human beings … are very much at the mercy of the particular language which has become the medium of expression for their society … the 'real world' is … built upon the language habits … We cut nature up, organize it into concepts, and ascribe significances as we do, largely because we are parties to an agreement to organize it in this way … and is codified in the patterns of our language.   
  • 6. 6 Why Object-Oriented? – Consider Human Growth & Concept Formation  Communication & complexity about the problem and the solution, all expressed in terms of concepts in a language!  But then, What is CONCEPT? [Martin & Odell]  Consider Human Growth & Concept Formation stage concepts infant the world is a buzzing confusion very young age "blue" "sky“ (individual concepts) "blue sky“ (more complex concept) hypothesis: humans possess an innate capacity for perception getting older -> increased meaning, precision, subtlety, ... the sky is blue only on cloudless days the sky is not really blue it only looks blue from our planet Earth because of atmospheric effects elaborate conceptual constructs Concept formation: from chaos to order!
  • 7. 7 Why Object-Oriented? - concepts and objects So, concepts are needed to bring order … into But, What is CONCEPT? [Martin & Odell] [Novak, 1984, Cambridge University Press] Study of a first grade class When given a list of concepts (water, salt water, Oceans, Penguins,...), Harry constructed a concept diagram through which he understands his world and communicates meaning Does Harry understand the concepts? Do you understand what Harry understands? Agree or Diagree?
  • 8. 8 Why Object-Oriented? … for Conceptual … Modeling Reasons What kind of language can be used to create this concept diagram, or Harry’s mental image? Water Rivers Oceans Fish Penguins Crocodiles Fresh water Salt water have have have live in have have
  • 9. 9 Why Object-Oriented -> What is a model and why?  A model is a simplification of reality. E.g., a miniature bridge for a real bridge to be built  Well...sort of….but not quite  A model is our simplification of our perception of reality (that is, if it exists, otherwise it could be a mere illusion). communication is not about reality but about your/my/his/her perception of reality => validation and verification hard but needed  A model is an abstractionof something for the purpose of understanding, be it the problem or a solution.  To understand why a software system is needed, what it should do, and how it should do it.  To communicate our understanding of why, what and how.  To detect commonalities and differences in your perception, my perception, his perception and her perception of reality.  To detect misunderstandings and miscommunications.
  • 10. 10 What is Object-Orientation? - What is Object?  An "object" is anything to which a concept applies, in our awareness  Things drawn from the problem domain or solution space.  E.g., a living person in the problem domain, a software component in the solution space.  A structure that has identity and properties and behavior  It is an instance of a collective concept, i.e., a class.
  • 11. 11 Encapsulation a.k.a. information hiding Objects encapsulate: property behavior as a collection of methods invoked by messages …state as a collection of instance variables Abstraction Focus on the essential Omits tremendous amount of details …Focus on what an object “is and does” What is Object-Orientation - Abstraction and Encapsulation
  • 12. 12 What is Object-Orientation - Another Example of Abstraction and Encapsulation Class Car Attributes  Model  Location  #Wheels = 4 Operations  Start  Accelerate <<instanceOf>> <<instanceOf>> <<instanceOf>> What is generalization? What is over-generalization?? Forall x [Car(x) -> …]
  • 13. 13 What is Object-Orientation? - Class  What is CLASS?  a collection of objects that share common properties, attributes, behavior and semantics, in general. What are all these???  A collection of objects with the same data structure (attributes, state variables) and behavior (function/code/operations) in the solution space.  Classification  Grouping of common objects into a class  Instantiation.  The act of creating an instance. Class Car Attributes  Model  Location  #Wheels = 4 Operations  Start  Accelerate <<instanceOf>> <<instanceOf>> <<instanceOf>>
  • 14. 14 What is Object-Orientation - Subclass vs. Superclass • Specialization: The act of defining one class as a refinement of another. • Subclass: A class defined in terms of a specialization of a superclass using inheritance. • Superclass: A class serving as a base for inheritance in a class hierarchy • Inheritance: Automatic duplication of superclass attribute and behavior definitions in subclass. multiple inheritance? Person name SSN Student std-id level Employee emp-id age
  • 15. 15 What is Object-Orientation - Subclass vs. Superclass A B C A B A B C A B c: C A B c: C <<instanceOf>> <<instanceOf>> A B <<instanceOf>> A B <<instanceOf>>
  • 16. 16 What is Object-Orientation - Subclass vs. Superclass and … A B C <<instanceOf>> A B c: C <<instanceOf>> <<instanceOf>> A B <<instanceOf>> C A B C <<instanceOf>> d: D <<instanceOf>> A C D <<instanceOf>> B 1 2 3
  • 17. 17 What is Object-Orientation - Polymorphism Objects of different classes respond to the same message differently. payTuition Person name SSN Student std-id level Employee emp-id In-State Student state payTuition payTuition Out-of-State Student payTuition
  • 18. 18 What is Object-Orientation - Interfaces • Information hiding - all data should be hidden within a class, at least in principle. • make all data attributes private • provide public methods to get and set the data values (cf. Java design patterns) • e.g. Grade information is usually confidential, hence it should be kept private to the student. Access to the grade information should be done through interfaces, such as setGrade and getGrade payTuition setGrade() getGrade() Student std-id level getGrade setGrade grade
  • 19. 19 What is Object-Orientation - Abstract Class vs. Concrete Class  Abstract Class.  An incomplete superclass that defines common parts.  Not instantiated.  Concrete class.  Is a complete class.  Describes a concept completely.  Is intended to be instantiated. Work out an example!
  • 20. 20 What is Object-Orientation? -State  What is STATE? "State" is a collection of association an object has with other objects and object types.  What is STATE CHANGE? A "state change" is the transition of an object from one state to another.  What is EVENT? An "event" is a noteworthy change in state [Rumbaugh] Work out an example!
  • 21. 21 What is Object-Orientation? -State transition impossible? tom: Actor name = “Tom Cruise” katie: Actor name = “Katie Holmes” tom: Actor name = “Tom Holmes” katie: Actor name = “Katie Holmes” married/changeLastName tom: Actor name = “Tom Holmes” katie: Actor name = “Katie Holmes” suri: BabyActor name = “Suri Holmes” newArrival/getName
  • 22. 22 What is Object-Oriented Application? • Collection of discrete objects, interacting w. each other • Objects have property and behavior (causing state transition) • Interactions through message passing (A sender object sends a request (message) to another object (receiver) to invoke a method of the receiver object’s) Fn Data O1 Fn Data O2 Fn Data O3 m1 m2m3 {m in Fn}
  • 23. 23 What is OOAD?  Analysis — understanding, finding and describing concepts in the problem domain.  Design — understanding and defining software solution/objects that represent the analysis concepts and will eventually be implemented in code.  OOAD — Analysis is object-oriented and design is object- oriented. A software development approach that emphasizes a logical solution based on objects. Traceability! Involves both a notation and a process
  • 24. 24 Harry again … What do we see here? Water Rivers Oceans Fish Penguins Crocodiles Fresh water Salt water have have have live in have have Things, Relationships, Diagram
  • 25. 25 How to do OOAD - notation vs. process  UML is a notation.  So are English, Elvish, Ku, …  But as yet I can’t
  • 26. 26 Systems Engineering Requirements Analysis Project Planning Architectural Design Detailed Design Implementation Release Maintenance QualityAssurance Software Lifecycle How to Do OOAD – Where to Use OO? Traceability! Something missing? What’s yours like?
  • 29. 29 How to Do OOAD – OMT as Object-Oriented Methodology OMT (Object Modeling Technique) by James Rumbaugh Object Model: describes the static structure of the objects in the system and their relationships -> Object Diagrams. Dynamic Model: describes the interactions among objects in the system -> State Diagrams. Functional Model: describes the data transformation of the system -> DataFlow Diagrams. Traceability!
  • 30. 30 Analysis: i) Model the real world showing its important properties; ii) Concise model of what the system will do System Design: Organize into subsystems based on analysis structure and propose architecture Object Design: Based on analysis model but with implementation details; Focus on data structures and algorithms to implement each class; Computer and domain objects Implementation: Translate the object classes and relationships into a programming language How to Do OOAD – OMT as Object-Oriented Methodology OMT (Object Modeling Technique) by James Rumbaugh Traceability!
  • 31. 31 A Unified Language + A Good Process + A Good Goal, perhaps
  • 32. 32 Introduction to OOAD - Summary Why  Once Software Crisis due to Communication and Complexity  Languages, Concepts, Models  OO for Conceptual Modeling What  Fundamental OO Concepts  A little taste of UML How  OO development processes & (Design) Patterns
  • 33. 33 How to Do OOAD - Historical Perspective OO Prog. Languages (Smalltalk, C++) just program! OO Design (Booch) design then program OO Analysis (Rumbaugh, Jacobson) Process PerspectiveOO Technology Analyze (use case) first, then design, T then programWhere are we heading?
  • 34. 34 How to Do OOAD - OO Development Processes  Fusion  Hewlett Packard  Recommended Process and Models  ObjectSpace best practices  Larman’s experiences  …  The Rational Unified Process (RUP)  Rational; Booch, Jacobson, and Rumbaugh Some Popular OOAD Processes (for reference only)
  • 35. 35 How to Do OOAD – One Good Way: Use (OO) Design Patterns Reusable solutions to typical problems. “Each design pattern systematically names, explains, and evaluates an important and recurring design in object-oriented systems.” [Gamma]  Name — identifies a particular pattern, creating a vocabulary.  Problem — identifies context when pattern should be applied.  Solution — an abstract description of a design problem along with a template object design that solves the problem.  Consequences — results and trade-offs of applying the pattern.
  • 36. 36 Knowledge Representation (in A.I.) Psychological Validity Philosophical Validity Computational Validity Databases Emphasis in Persistent Data (and now ACID properties) RelationalDB Network DB Hierarchical DB OODB Programming Languages Emphasis in Efficiency Simula, SmallTalk, C++, Protel, Java ERD SDM CM ADT ERD: Entity Relationship Diagram SDM: Semantic Data Model ADT: Abstract Data Type CM: Conceptual Model Why Object-Oriented - Who’s Behind Object-Orientation w. Diff. Concerns System/Software Engineering Where does Unified Modeling Language come into this?
  • 37. 37 Why Object-Oriented – A New Paradigm with Evolving Object Orientation  OOP: Object-Oriented Programming  Simula (1967), Smalltalk (70’s), C++ (mid 80’s), Eiffel, Ada95, Turing, …  OOD: Object-Oriented Design  Taxis (1976), Adaplex, …, Grady Booch (1980)  OOA: Object-Oriented Requirements  RML (1981), James Rumbaugh (late 80’s)  OO-Databases (OODBs): 1980-90’s  OLE/DCOM, VisualBasic, CORBA, Java: mid 90’s  .Net, C#, (eb/voice…/-)XML, J2EE: into 2000+  UML: mid 90’s and still evolving
  • 38. 38 Introduction to OOAD - Points to Ponder 1. How do you think your mental image is represented? 2. What kinds of languages are used for what purpose in our daily life? 3. What are the differences among a concept, a model and a language? 4. What are the differences between a language and a methodology? 5. Can we use C# for analysis? 6. If C++ is a language, does it model anything? If so, what? 7. What does a concept in C++ refer to (i.e., semantics)? 8. What does a concept in a (OO) design refer to? 9. What does a concept in an (OO requirements) analysis refer to? 10. Is the current OOAD for Functional Analysis and Design, or Non- Functional Analysis and Design? 11. What is the relationship between OO (Object-Orientation) and GO (Goal-Orientation), between OO and AO (Agent-Orientation), and between GO and AO? 12. Can you prove you and I communicate with each other perfectly?