SlideShare a Scribd company logo
Object oriented software engineering
 OO Design is a process of invention, where developers create
the abstractions necessary to meet the system’s requirements
 OO Design is independent of the programming language used to
implement the design. However, using OO Language helps
 Objects are independent and encapsulate state and
representation information
 System functionality is expressed in terms of object services
 Shared data areas are eliminated. Objects communicate via
message passing
 OOD does not reduce development time. In fact it may increase
it!
 However, there is empirical evidence that OOD facilitates the
following activities:
 Reuse
 Maintenance
 Verification
 OOD is a set of principles and methods for designing systems based on
combining data and function into entities called objects
 OOD Principles include
 Encapsulation
 Decomposition
 Design Patterns
 Hierarchical Relationships
 Defined decision making
 OO systems are designed using a three phase iterative process
- Analysis
- Design
- Implementation
 Successful software systems evolve over time, leading to
iterative process, by evolving and refining each time through the
process.
 Definition ( Booch ):
OOA is a method of analysis that examines the requirements of
the system from the perspective of classes and objects that are
found in the vocabulary of the problem domain
 Transform programming problem into a precise description of
the tasks to be performed. Prior to analysis problem is usually
vaguely understood.
 OOA focuses on What needs to be done, not How it needs to be
done.
 OOA is the input to Object Oriented Design (OOD)
 Quality of OOD is based on quality of OOA
 When defining OOA need to work with problem domain expert.
 OOA provides a description of the problem
 The description must be complete, consistent, readable,
reviewable by diverse parties, and testable against the reality.
 You should not pursue issues of class design or representation
in the analysis phase
 Identify functional and non-functional points of the system
 Identify classes and objects( their roles and responsibilities)
from the vocabulary of problem domain
 Functional points are observable and testable behaviors of a
system
 End use perspective: function points represent the activity of
the system in response to an event
 Analyst perspective: function points represent a behavior. The
more function points, the greater system’s complexity
 When you have formal requirements analysis document
describing behavioral requirements
 Described non-functional requirements: reliability, security,
portability, and performance
 Capture descriptions of behavior by using scenarios
 Risk assessment: Identify known risks that may impact the
design process. Better to document risks early than discover
them latter.
 Identify objects that are common to a particular system
 Study similar existing systems (REUSE), benefiting from
other projects that had to make similar design decisions.
Do not reinvent the wheels!
 A domain model is a representation of real-world
conceptual classes
 A domain model is a visual representation of conceptual
classes or real-world objects in a domain of interest
 Identify the function points of the system and cluster them
by the related behaviors.
 If an object life cycle is essential to a scenario document
using a finite state machine
 Look for patterns in among developed scenarios
 Goal of OOA is to discover the objects in the system
specification
 We discover objects and classes that form the vocabulary of
system domain.
 Classical Approach
 Behavior Analysis
 Domain Analysis
 Use case Analysis
 CRC cards
 Structural Analysis
 Derive classes from the requirements of problem domain
 Derive candidate classes and objects from the following
sources:
 Tangible things
 Roles
 Events
 Interactions
 Structure
 Devices/Locations
 Organizational Units / Grouping
 Focus on dynamic behavior as the primary
source of classes and objects
 Emphasize responsibilities:
 Actions object can perform
 Group things that have common responsibilities.
 Create hierarchies that embody general responsibilities
and subclasses that specialize their behavior.
 Focuses on single specific application
 Seeks to identify the classes and objects that are
common to all applications within a specific domain
 Examples: Patient record tracking, stock and bond
trading, Compilers and etc.
 Addresses the fact that there are very few unique kinds
of software systems
 Goal: Derive process of analysis in a meaningful way
 Develop series of important scenarios and identify
objects, their responsibilities and how objects collaborate
with other objects
 A model is an abstraction describing a subset of a system
 A view depicts selected aspects of a model
 A notation is a set of graphical or textual rules for depicting
views
 Views and models of a single system may overlap each
other
Object oriented software engineering
 Introduced in 1989 by Kent Beck and Ward
Cunningham
 designed to teach object oriented programming at
Tektronix
 a CRC card is an index card in a group setting used
to represent:
 a class of objects
 their behavior
 their interactions
 Help to analyze scenarios
 CRC cards are 3x5 cards capturing:
 Name of the class
 Class responsibilities
 Collaboration with other classes
 Software team walks through scenarios and and
assigns new responsibilities, updates existing,
discovers new classes and etc
Object oriented software engineering
 responsibility: knowledge class maintains or service
class provides
 collaborator: a class whose knowledge or services are
needed to fulfill a responsibility
Class Name:
Responsibilities:
(what class does or knows)
Collaborators:
(which classes help it
perform each
responsibility)
 Responsibilities are concerned with:
 the maintenance of knowledge
 the actions the object can perform
 Technique:
 1. Highlight verbs/phrases in requirements
 2. Do walkthroughs
 3. Spread intelligence
 4. Keep behaviour and knowledge close
 A collaboration is where one class (a client) needs another
one (a server) in order to perform its own responsibilities.
 NB this is a one-way relationship
 Each responsibility may have:
 no collaborations
 one collaboration
 many collaborations
Object oriented software engineering
It involves a creative exchange:
 physical simulation of the workings of the system
 participants “become” one or more objects during walk-
throughs of typical scenarios
 classes are discovered and converted into cards
 responsibilities are assigned
 collaborators for each responsibility are identified
 portable: cards can be used anywhere, even away from the
computer or office
 anthropomorphic: no computer program can capture the
essence of the interactions forced by passing the cards
 level of involvement felt by each team member increases
 useful throughout the life cycle
 provides a basis for more formal analysis and design
methodologies.
 ease the transition from process orientation to object
orientation.
 UML is a multi-diagrammatic language
 Each diagram is a view into a model
COM6030 Systems Analysis and Design © University of Sheffield 2005
Systems analysis:
•user-oriented: actors and use cases;
•object-oriented: classes and relationships between them.
Clock
time: Time
reportTime(): Time
resetTimeTO(newTime: Time)
Class name
Attribute
Operations
Type
Value returned
Formal
parameter
(argument)Class identification:
•noun identification;
•responsibility driven approach (CRC cards).
THANK YOU

More Related Content

PDF
MC 7204 OS Question Bank with Answer
PPT
Agile development, software engineering
PPTX
Seven step model of migration into the cloud
PPTX
Coupling , Cohesion and there Types
PPTX
Cohesion and coupling
PPTX
Threads and synchronization in C# visual programming.pptx
PPT
software characteristics
PPT
File replication
MC 7204 OS Question Bank with Answer
Agile development, software engineering
Seven step model of migration into the cloud
Coupling , Cohesion and there Types
Cohesion and coupling
Threads and synchronization in C# visual programming.pptx
software characteristics
File replication

What's hot (20)

PPTX
Free Space Management, Efficiency & Performance, Recovery and NFS
PPT
Software architecture design ppt
PPSX
Introduction to Requirement engineering
PPT
State Diagrams
PPTX
analysis and design of information system
DOC
operating system lecture notes
PPT
Analysis modeling
PPTX
Object oriented modeling and design
PPTX
Cloud Reference Model
PPTX
Software Design and Modularity
PPTX
Cloud applications - Protein Structure Predication and gene expression data...
DOC
SOFTWARE ENGINEERING
PPT
Knowledge-based Systems
PPTX
Models of Distributed System
PPT
File organisation
PPTX
Fragmentation and types of fragmentation in Distributed Database
PPTX
Passes of Compiler.pptx
PPTX
Operating system critical section
PPTX
White box & Black box testing
Free Space Management, Efficiency & Performance, Recovery and NFS
Software architecture design ppt
Introduction to Requirement engineering
State Diagrams
analysis and design of information system
operating system lecture notes
Analysis modeling
Object oriented modeling and design
Cloud Reference Model
Software Design and Modularity
Cloud applications - Protein Structure Predication and gene expression data...
SOFTWARE ENGINEERING
Knowledge-based Systems
Models of Distributed System
File organisation
Fragmentation and types of fragmentation in Distributed Database
Passes of Compiler.pptx
Operating system critical section
White box & Black box testing
Ad

Similar to Object oriented software engineering (20)

PPTX
OOAD unit1 introduction to object orientation
PPT
Object Oriented Design
PPT
Object Oriented Design
PDF
Bt8901 objective oriented systems1
PDF
Introduction to UML
PPT
OBJECT ORIENTED ANALYSIS FOR EASY UNDERSTANDING .ppt
PPT
Ooad
PPT
Object oriented analysis
PPTX
Object Oriented Analysis and Design - OOAD
PPTX
Jeet ooad unit-2
PPT
Oomd unit1
PPT
06 styles and_greenfield_design
PPTX
Software_Engineering_Presentation (1).pptx
PPTX
Assignment 1 SYD601 2012 rick_danby completed with audio
PPT
Unit 1( modelling concepts & class modeling)
PPTX
Requirements modeling
PPT
6. Requirement Modelinbbdhdhbdhhdbbdg.ppt
PDF
Building an Information System
PPTX
uml.pptx
PPTX
Object Oriented Approach for Software Development
OOAD unit1 introduction to object orientation
Object Oriented Design
Object Oriented Design
Bt8901 objective oriented systems1
Introduction to UML
OBJECT ORIENTED ANALYSIS FOR EASY UNDERSTANDING .ppt
Ooad
Object oriented analysis
Object Oriented Analysis and Design - OOAD
Jeet ooad unit-2
Oomd unit1
06 styles and_greenfield_design
Software_Engineering_Presentation (1).pptx
Assignment 1 SYD601 2012 rick_danby completed with audio
Unit 1( modelling concepts & class modeling)
Requirements modeling
6. Requirement Modelinbbdhdhbdhhdbbdg.ppt
Building an Information System
uml.pptx
Object Oriented Approach for Software Development
Ad

Recently uploaded (20)

PDF
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
PPTX
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
DOCX
573137875-Attendance-Management-System-original
PPT
CRASH COURSE IN ALTERNATIVE PLUMBING CLASS
PDF
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
PPTX
UNIT 4 Total Quality Management .pptx
PDF
R24 SURVEYING LAB MANUAL for civil enggi
PPTX
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
PDF
TFEC-4-2020-Design-Guide-for-Timber-Roof-Trusses.pdf
DOCX
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
PPTX
bas. eng. economics group 4 presentation 1.pptx
PPTX
additive manufacturing of ss316l using mig welding
PDF
Well-logging-methods_new................
PPTX
CYBER-CRIMES AND SECURITY A guide to understanding
PPTX
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
PDF
Automation-in-Manufacturing-Chapter-Introduction.pdf
PPTX
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
PDF
PPT on Performance Review to get promotions
PPTX
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
PDF
Operating System & Kernel Study Guide-1 - converted.pdf
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
573137875-Attendance-Management-System-original
CRASH COURSE IN ALTERNATIVE PLUMBING CLASS
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
UNIT 4 Total Quality Management .pptx
R24 SURVEYING LAB MANUAL for civil enggi
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
TFEC-4-2020-Design-Guide-for-Timber-Roof-Trusses.pdf
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
bas. eng. economics group 4 presentation 1.pptx
additive manufacturing of ss316l using mig welding
Well-logging-methods_new................
CYBER-CRIMES AND SECURITY A guide to understanding
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
Automation-in-Manufacturing-Chapter-Introduction.pdf
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
PPT on Performance Review to get promotions
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
Operating System & Kernel Study Guide-1 - converted.pdf

Object oriented software engineering

  • 2.  OO Design is a process of invention, where developers create the abstractions necessary to meet the system’s requirements  OO Design is independent of the programming language used to implement the design. However, using OO Language helps  Objects are independent and encapsulate state and representation information  System functionality is expressed in terms of object services  Shared data areas are eliminated. Objects communicate via message passing
  • 3.  OOD does not reduce development time. In fact it may increase it!  However, there is empirical evidence that OOD facilitates the following activities:  Reuse  Maintenance  Verification
  • 4.  OOD is a set of principles and methods for designing systems based on combining data and function into entities called objects  OOD Principles include  Encapsulation  Decomposition  Design Patterns  Hierarchical Relationships  Defined decision making
  • 5.  OO systems are designed using a three phase iterative process - Analysis - Design - Implementation  Successful software systems evolve over time, leading to iterative process, by evolving and refining each time through the process.
  • 6.  Definition ( Booch ): OOA is a method of analysis that examines the requirements of the system from the perspective of classes and objects that are found in the vocabulary of the problem domain  Transform programming problem into a precise description of the tasks to be performed. Prior to analysis problem is usually vaguely understood.  OOA focuses on What needs to be done, not How it needs to be done.
  • 7.  OOA is the input to Object Oriented Design (OOD)  Quality of OOD is based on quality of OOA  When defining OOA need to work with problem domain expert.  OOA provides a description of the problem  The description must be complete, consistent, readable, reviewable by diverse parties, and testable against the reality.  You should not pursue issues of class design or representation in the analysis phase
  • 8.  Identify functional and non-functional points of the system  Identify classes and objects( their roles and responsibilities) from the vocabulary of problem domain  Functional points are observable and testable behaviors of a system  End use perspective: function points represent the activity of the system in response to an event  Analyst perspective: function points represent a behavior. The more function points, the greater system’s complexity
  • 9.  When you have formal requirements analysis document describing behavioral requirements  Described non-functional requirements: reliability, security, portability, and performance  Capture descriptions of behavior by using scenarios  Risk assessment: Identify known risks that may impact the design process. Better to document risks early than discover them latter.
  • 10.  Identify objects that are common to a particular system  Study similar existing systems (REUSE), benefiting from other projects that had to make similar design decisions. Do not reinvent the wheels!  A domain model is a representation of real-world conceptual classes  A domain model is a visual representation of conceptual classes or real-world objects in a domain of interest
  • 11.  Identify the function points of the system and cluster them by the related behaviors.  If an object life cycle is essential to a scenario document using a finite state machine  Look for patterns in among developed scenarios
  • 12.  Goal of OOA is to discover the objects in the system specification  We discover objects and classes that form the vocabulary of system domain.  Classical Approach  Behavior Analysis  Domain Analysis  Use case Analysis  CRC cards  Structural Analysis
  • 13.  Derive classes from the requirements of problem domain  Derive candidate classes and objects from the following sources:  Tangible things  Roles  Events  Interactions  Structure  Devices/Locations  Organizational Units / Grouping
  • 14.  Focus on dynamic behavior as the primary source of classes and objects  Emphasize responsibilities:  Actions object can perform  Group things that have common responsibilities.  Create hierarchies that embody general responsibilities and subclasses that specialize their behavior.
  • 15.  Focuses on single specific application  Seeks to identify the classes and objects that are common to all applications within a specific domain  Examples: Patient record tracking, stock and bond trading, Compilers and etc.  Addresses the fact that there are very few unique kinds of software systems
  • 16.  Goal: Derive process of analysis in a meaningful way  Develop series of important scenarios and identify objects, their responsibilities and how objects collaborate with other objects
  • 17.  A model is an abstraction describing a subset of a system  A view depicts selected aspects of a model  A notation is a set of graphical or textual rules for depicting views  Views and models of a single system may overlap each other
  • 19.  Introduced in 1989 by Kent Beck and Ward Cunningham  designed to teach object oriented programming at Tektronix  a CRC card is an index card in a group setting used to represent:  a class of objects  their behavior  their interactions
  • 20.  Help to analyze scenarios  CRC cards are 3x5 cards capturing:  Name of the class  Class responsibilities  Collaboration with other classes  Software team walks through scenarios and and assigns new responsibilities, updates existing, discovers new classes and etc
  • 22.  responsibility: knowledge class maintains or service class provides  collaborator: a class whose knowledge or services are needed to fulfill a responsibility Class Name: Responsibilities: (what class does or knows) Collaborators: (which classes help it perform each responsibility)
  • 23.  Responsibilities are concerned with:  the maintenance of knowledge  the actions the object can perform  Technique:  1. Highlight verbs/phrases in requirements  2. Do walkthroughs  3. Spread intelligence  4. Keep behaviour and knowledge close
  • 24.  A collaboration is where one class (a client) needs another one (a server) in order to perform its own responsibilities.  NB this is a one-way relationship  Each responsibility may have:  no collaborations  one collaboration  many collaborations
  • 26. It involves a creative exchange:  physical simulation of the workings of the system  participants “become” one or more objects during walk- throughs of typical scenarios  classes are discovered and converted into cards  responsibilities are assigned  collaborators for each responsibility are identified
  • 27.  portable: cards can be used anywhere, even away from the computer or office  anthropomorphic: no computer program can capture the essence of the interactions forced by passing the cards  level of involvement felt by each team member increases  useful throughout the life cycle  provides a basis for more formal analysis and design methodologies.  ease the transition from process orientation to object orientation.
  • 28.  UML is a multi-diagrammatic language  Each diagram is a view into a model
  • 29. COM6030 Systems Analysis and Design © University of Sheffield 2005 Systems analysis: •user-oriented: actors and use cases; •object-oriented: classes and relationships between them. Clock time: Time reportTime(): Time resetTimeTO(newTime: Time) Class name Attribute Operations Type Value returned Formal parameter (argument)Class identification: •noun identification; •responsibility driven approach (CRC cards).