0% found this document useful (0 votes)
97 views24 pages

C 6 CB 0 Lecture 1

This document provides an introduction to object-oriented software development (OOSD). It discusses why the OO paradigm was developed due to problems with communication and managing complexity. Some key OO concepts are covered such as abstraction, encapsulation, classes, objects, inheritance and polymorphism. The document also discusses object modeling techniques (OMT) and the unified modeling language (UML). It provides an overview of how to perform OO analysis, design and implementation using a methodology like OMT.

Uploaded by

Pallavi Dasgupta
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
97 views24 pages

C 6 CB 0 Lecture 1

This document provides an introduction to object-oriented software development (OOSD). It discusses why the OO paradigm was developed due to problems with communication and managing complexity. Some key OO concepts are covered such as abstraction, encapsulation, classes, objects, inheritance and polymorphism. The document also discusses object modeling techniques (OMT) and the unified modeling language (UML). It provides an overview of how to perform OO analysis, design and implementation using a methodology like OMT.

Uploaded by

Pallavi Dasgupta
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 24

Introduction to OOSD

Prof. Hari Mohan Pandey


Assistant Professor, CSE Department
Amity School of Engineering & Technology
hmpandey@amity.edu
Lecture-1
Outline
Introduction to OOSD
What is OO?
What is OOSD?
How to do OOSD?
What is the benefits?


Prepared By|Prof. Hari Mohan Pandey,
Assistant Professor, CSE Department
4
What 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.

Cp
+

=E
5
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?
6
Why Object-Oriented?
for Conceptual Modeling Reasons
What kind of language can be used to create this concept diagram, or
Harrys mental image?

Water
Rivers Oceans
Fish
Penguins
Crocodiles
Fresh water
Salt water
have
have
have
live in
have
have
7
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 abstraction of 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.

8
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.
9
Encapsulation
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
10
What is Object-Orientation
- Another Example of Abstraction and Encapsulation
Class Car


Attributes
O Model
O Location
O #Wheels = 4


Operations
O Start
O Accelerate
<<instanceOf>>
<<instanceOf>>
<<instanceOf>>
What is generalization?
What is over-generalization??
Forall x [Car(x) -> ]
11
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
O Model
O Location
O #Wheels = 4
Operations
O Start
O Accelerate
<<instanceOf>>
<<instanceOf>>
<<instanceOf>>
12
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
cont_no
Student
std-id
level
Employee
emp-id
age
13
What is Object-Orientation
- Polymorphism
Objects of different classes respond to the same message differently.
Person
+name
+contact_no
Student
+stud_id
+level
+pay_fee()
Employee
+emp_id
In_State_Student
+state_name
+pay_fee()
Out_State_Student
+State
+pay_fee()
Polymorphism: same
method used
14

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 objects)



O1
+Data
+Fn()
O2
+Data
+Fn()
O3
+Data
+Fn()
M1
M2
M3
M in Fn
15
What is OOSD?

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
16
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
17
Systems Engineering
Requirements Analysis
Project Planning
Architectural Design
Detailed Design
Implementation
Release
Maintenance
Q
u
a
l
i
t
y

A
s
s
u
r
a
n
c
e

Software Lifecycle
How to Do OOAD
Where to Use OO?

Traceability!
Something missing?
Whats yours like?
18
Traceability!
Artificial problem
Accidental design
19
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!
20
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 J ames Rumbaugh

Traceability!
21
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
22
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
- Whos Behind Object-Orientation w. Diff. Concerns
System/Software
Engineering
Where does Unified Modeling Language come into this?
23
Why Object-Oriented
A New Paradigm with Evolving Object Orientation
OOP: Object-Oriented Programming
Simula (1967), Smalltalk (70s), C++ (mid 80s), Eiffel, Ada95, Turing,
OOD: Object-Oriented Design
Taxis (1976), Adaplex, , Grady Booch (1980)
OOA: Object-Oriented Requirements
RML (1981), James Rumbaugh (late 80s)
OO-Databases (OODBs): 1980-90s
OLE/DCOM, VisualBasic, CORBA, Java: mid 90s
.Net, C#, (eb/voice/-)XML, J2EE: into 2000+
UML: mid 90s and still evolving

24
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?

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy