Object Oriented Software
Engineering
Ms. Fizza Azhar
Introduction to Object Orientation Topics
• Basic Principles of Object Orientation
• Basic Concepts of Object Orientation
• Strengths of Object Orientation
• General UML Modeling Mechanisms
Object Oriented Software Engineering
• Is a S/W design technique that is used in S/W
design in Object oriented Programming.
• OOSE is developed by IVAR JACABSON in 1992
the use of use case in designing is started by
OOSE technique.
Topics and Skills
OOA/D
Patterns UML notation
Topics and Skills
Principles and Requirements
guidelines analysis
Iterative
development with
an agile Unified
Process
What is Analysis and Design?
• Analysis
– Emphasizes an investigation of the problem and requirements, rather
than a solution
– Requirements Analysis: An investigation of the requirements
– Object-Oriented Analysis: An investigation of the domain objects
• Design
– Emphasizes a conceptual solution that fulfills the requirements, rather
than its implementation
• Analysis and Design have been summarized in the phrase do the
right thing (analysis), and do the thing right (design)
What is Object-Oriented Analysis and
Design?
• Object-Oriented Analysis
– There is an emphasis on finding and describing the
objects or concepts in the problem domain.
• Object-Oriented Design
– There is an emphasis on defining software objects
and how they collaborate to fulfill the
requirements.
What is Object-Oriented Analysis and
Design?
Plane
visualization of
domain concept tailNumber domain concept
public class Plane
{
representation in an private String tailNumber;
object-oriented
programming language public List getFlightHistory() {...}
}
Object Oriented Analysis and
Specification
Basic Concepts of Object Orientation
• Object
• Class
• Attribute
• Operation
• Interface (Polymorphism)
• Component
• Package
• Subsystem
• Relationships
Basic Concepts of Object Orientation
• Object
• Class
• Attribute
• Operation
• Interface (Polymorphism)
• Component
• Package
• Subsystem
• Relationships
What is an Object?
• An object is a concept, abstraction, or thing
with sharp boundaries and meaning for an
application
• An object is something that has:
– State
– Behavior
– Identity
Representing Objects
• An object is represented as rectangles with underlined names
: Professor
a + b = 10
ProfessorClark
Class Name Only
Professor Clark
ProfessorClark :
Professor Object Name Only
Class and Object Name
(stay tuned for classes)
Basic Concepts of Object Orientation
• Object
• Class
• Attribute
• Operation
• Interface (Polymorphism)
• Component
• Package
• Subsystem
• Relationships
What is a Class?
• A class is a description of a group of objects
with common properties (attributes), behavior
(operations), relationships, and semantics
– An object is an instance of a class
• A class is an abstraction in that it:
– Emphasizes relevant characteristics
OO Principle: Abstraction
Sample Class
Class
Course
Properties Behavior
Name Add a student
Location Delete a student
a + b = 10
Days offered Get course roster
Credit hours Determine if it is full
Start time
End time
Representing Classes
• A class is represented using a compartmented
rectangle
a + b = 10
Professor
Professor Clark
Class Compartments
• A class is comprised of three sections
– The first section contains the class name
– The second section shows the structure
(attributes)
– The third section shows the behavior (operations)
Class Name Professor
name
Attributes empID
Operations create( )
save( )
delete( )
change( )
The Relationship Between Classes and Objects
• A class is an abstract definition of an object
– It defines the structure and behavior of each
object in the class
– It serves as a template for creating objects
• Objects are grouped into classes
Objects Class
Professor
Professor Smith Professor Mellon
Professor Jones
Basic Concepts of Object Orientation
• Object
• Class
• Attribute
• Operation
• Interface (Polymorphism)
• Component
• Package
• Subsystem
• Relationships
What is an Attribute?
Object
Class
Attribute Attribute Value
:CourseOffering
number = 101
startTime = 900
CourseOffering endTime = 1100
number
startTime
endTime :CourseOffering
number = 104
startTime = 1300
endTime = 1500
Basic Concepts of Object Orientation
• Object
• Class
• Attribute
• Operation
• Interface (Polymorphism)
• Component
• Package
• Subsystem
• Relationships
What is an Operation?
CourseOffering
Class
addStudent
deleteStudent
getStartTime
Operation getEndTime