SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Downloaden Sie, um offline zu lesen
 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
 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
 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
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

Weitere ähnliche Inhalte

Was ist angesagt?

Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineeringDarshit Metaliya
 
Lecture 19 design concepts
Lecture 19   design conceptsLecture 19   design concepts
Lecture 19 design conceptsIIUI
 
Architectural Design Report G4
Architectural Design Report G4Architectural Design Report G4
Architectural Design Report G4Prizzl
 
Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patternsHimanshu
 
Software engg. pressman_ch-9
Software engg. pressman_ch-9Software engg. pressman_ch-9
Software engg. pressman_ch-9Dhairya Joshi
 
Implementation issues software engineering
Implementation issues software engineeringImplementation issues software engineering
Implementation issues software engineeringrishi ram khanal
 
Se ii unit2-software_design_principles
Se ii unit2-software_design_principlesSe ii unit2-software_design_principles
Se ii unit2-software_design_principlesAhmad sohail Kakar
 
software engineering
software engineeringsoftware engineering
software engineeringAbinaya B
 
Modules and modularization criteria
Modules and modularization criteriaModules and modularization criteria
Modules and modularization criteriaUmaselvi_R
 

Was ist angesagt? (20)

Chapter 08
Chapter 08Chapter 08
Chapter 08
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineering
 
Lecture 19 design concepts
Lecture 19   design conceptsLecture 19   design concepts
Lecture 19 design concepts
 
Sda 7
Sda   7Sda   7
Sda 7
 
Architectural Design Report G4
Architectural Design Report G4Architectural Design Report G4
Architectural Design Report G4
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
software design
software designsoftware design
software design
 
Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patterns
 
Software design
Software designSoftware design
Software design
 
06 fse design
06 fse design06 fse design
06 fse design
 
Software engg. pressman_ch-9
Software engg. pressman_ch-9Software engg. pressman_ch-9
Software engg. pressman_ch-9
 
Implementation issues software engineering
Implementation issues software engineeringImplementation issues software engineering
Implementation issues software engineering
 
Software design i (2) (1)
Software design   i (2) (1)Software design   i (2) (1)
Software design i (2) (1)
 
Ch06
Ch06Ch06
Ch06
 
Se ii unit2-software_design_principles
Se ii unit2-software_design_principlesSe ii unit2-software_design_principles
Se ii unit2-software_design_principles
 
Software design
Software designSoftware design
Software design
 
Ch 6
Ch 6Ch 6
Ch 6
 
software engineering
software engineeringsoftware engineering
software engineering
 
Object oriented analysis and design unit- v
Object oriented analysis and design unit- vObject oriented analysis and design unit- v
Object oriented analysis and design unit- v
 
Modules and modularization criteria
Modules and modularization criteriaModules and modularization criteria
Modules and modularization criteria
 

Ähnlich wie Object oriented software engineering

OOAD unit1 introduction to object orientation
 OOAD unit1 introduction to object orientation OOAD unit1 introduction to object orientation
OOAD unit1 introduction to object orientationDr Chetan Shelke
 
Object Oriented Design
Object Oriented DesignObject Oriented Design
Object Oriented DesignAravinth NSP
 
Bt8901 objective oriented systems1
Bt8901 objective oriented systems1Bt8901 objective oriented systems1
Bt8901 objective oriented systems1Techglyphs
 
Introduction to UML
Introduction to UMLIntroduction to UML
Introduction to UMLyndaravind
 
Object oriented analysis
Object oriented analysisObject oriented analysis
Object oriented analysisMahesh Bhalerao
 
06 styles and_greenfield_design
06 styles and_greenfield_design06 styles and_greenfield_design
06 styles and_greenfield_designMajong DevJfu
 
Software_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptxSoftware_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptxArifaMehreen1
 
Assignment 1 SYD601 2012 rick_danby completed with audio
Assignment 1 SYD601 2012 rick_danby completed with audioAssignment 1 SYD601 2012 rick_danby completed with audio
Assignment 1 SYD601 2012 rick_danby completed with audioRickNZ
 
Unit 1( modelling concepts & class modeling)
Unit  1( modelling concepts & class modeling)Unit  1( modelling concepts & class modeling)
Unit 1( modelling concepts & class modeling)Manoj Reddy
 
Requirements modeling
Requirements modelingRequirements modeling
Requirements modelingAnanthiP8
 
Object Oriented Approach for Software Development
Object Oriented Approach for Software DevelopmentObject Oriented Approach for Software Development
Object Oriented Approach for Software DevelopmentRishabh Soni
 
Object-oriented modeling and design.pdf
Object-oriented modeling and  design.pdfObject-oriented modeling and  design.pdf
Object-oriented modeling and design.pdfSHIVAM691605
 
SE18_Lec 06_Object Oriented Analysis and Design
SE18_Lec 06_Object Oriented Analysis and DesignSE18_Lec 06_Object Oriented Analysis and Design
SE18_Lec 06_Object Oriented Analysis and DesignAmr E. Mohamed
 

Ähnlich wie Object oriented software engineering (20)

OOAD unit1 introduction to object orientation
 OOAD unit1 introduction to object orientation OOAD unit1 introduction to object orientation
OOAD unit1 introduction to object orientation
 
Object Oriented Design
Object Oriented DesignObject Oriented Design
Object Oriented Design
 
Object Oriented Design
Object Oriented DesignObject Oriented Design
Object Oriented Design
 
Bt8901 objective oriented systems1
Bt8901 objective oriented systems1Bt8901 objective oriented systems1
Bt8901 objective oriented systems1
 
Introduction to UML
Introduction to UMLIntroduction to UML
Introduction to UML
 
Ooad
OoadOoad
Ooad
 
Object oriented analysis
Object oriented analysisObject oriented analysis
Object oriented analysis
 
Jeet ooad unit-2
Jeet ooad unit-2Jeet ooad unit-2
Jeet ooad unit-2
 
Oomd unit1
Oomd unit1Oomd unit1
Oomd unit1
 
06 styles and_greenfield_design
06 styles and_greenfield_design06 styles and_greenfield_design
06 styles and_greenfield_design
 
Software_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptxSoftware_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptx
 
Assignment 1 SYD601 2012 rick_danby completed with audio
Assignment 1 SYD601 2012 rick_danby completed with audioAssignment 1 SYD601 2012 rick_danby completed with audio
Assignment 1 SYD601 2012 rick_danby completed with audio
 
Unit 1( modelling concepts & class modeling)
Unit  1( modelling concepts & class modeling)Unit  1( modelling concepts & class modeling)
Unit 1( modelling concepts & class modeling)
 
Requirements modeling
Requirements modelingRequirements modeling
Requirements modeling
 
Building an Information System
Building an Information SystemBuilding an Information System
Building an Information System
 
uml.pptx
uml.pptxuml.pptx
uml.pptx
 
Object Oriented Approach for Software Development
Object Oriented Approach for Software DevelopmentObject Oriented Approach for Software Development
Object Oriented Approach for Software Development
 
4b use-case analysis
4b use-case analysis4b use-case analysis
4b use-case analysis
 
Object-oriented modeling and design.pdf
Object-oriented modeling and  design.pdfObject-oriented modeling and  design.pdf
Object-oriented modeling and design.pdf
 
SE18_Lec 06_Object Oriented Analysis and Design
SE18_Lec 06_Object Oriented Analysis and DesignSE18_Lec 06_Object Oriented Analysis and Design
SE18_Lec 06_Object Oriented Analysis and Design
 

Kürzlich hochgeladen

Verification of thevenin's theorem for BEEE Lab (1).pptx
Verification of thevenin's theorem for BEEE Lab (1).pptxVerification of thevenin's theorem for BEEE Lab (1).pptx
Verification of thevenin's theorem for BEEE Lab (1).pptxchumtiyababu
 
DeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesDeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesMayuraD1
 
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdfAldoGarca30
 
Engineering Drawing focus on projection of planes
Engineering Drawing focus on projection of planesEngineering Drawing focus on projection of planes
Engineering Drawing focus on projection of planesRAJNEESHKUMAR341697
 
GEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLE
GEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLEGEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLE
GEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLEselvakumar948
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueBhangaleSonal
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsvanyagupta248
 
Block diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.pptBlock diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.pptNANDHAKUMARA10
 
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best ServiceTamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Servicemeghakumariji156
 
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptxA CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptxmaisarahman1
 
Wadi Rum luxhotel lodge Analysis case study.pptx
Wadi Rum luxhotel lodge Analysis case study.pptxWadi Rum luxhotel lodge Analysis case study.pptx
Wadi Rum luxhotel lodge Analysis case study.pptxNadaHaitham1
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTbhaskargani46
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Arindam Chakraborty, Ph.D., P.E. (CA, TX)
 
Online food ordering system project report.pdf
Online food ordering system project report.pdfOnline food ordering system project report.pdf
Online food ordering system project report.pdfKamal Acharya
 
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...Call Girls Mumbai
 
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills KuwaitKuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwaitjaanualu31
 
Computer Networks Basics of Network Devices
Computer Networks  Basics of Network DevicesComputer Networks  Basics of Network Devices
Computer Networks Basics of Network DevicesChandrakantDivate1
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startQuintin Balsdon
 

Kürzlich hochgeladen (20)

Verification of thevenin's theorem for BEEE Lab (1).pptx
Verification of thevenin's theorem for BEEE Lab (1).pptxVerification of thevenin's theorem for BEEE Lab (1).pptx
Verification of thevenin's theorem for BEEE Lab (1).pptx
 
DeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesDeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakes
 
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
 
Engineering Drawing focus on projection of planes
Engineering Drawing focus on projection of planesEngineering Drawing focus on projection of planes
Engineering Drawing focus on projection of planes
 
GEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLE
GEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLEGEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLE
GEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLE
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torque
 
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced LoadsFEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech students
 
Block diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.pptBlock diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.ppt
 
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best ServiceTamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
 
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptxA CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
 
Wadi Rum luxhotel lodge Analysis case study.pptx
Wadi Rum luxhotel lodge Analysis case study.pptxWadi Rum luxhotel lodge Analysis case study.pptx
Wadi Rum luxhotel lodge Analysis case study.pptx
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPT
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
 
Online food ordering system project report.pdf
Online food ordering system project report.pdfOnline food ordering system project report.pdf
Online food ordering system project report.pdf
 
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
 
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills KuwaitKuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
 
Computer Networks Basics of Network Devices
Computer Networks  Basics of Network DevicesComputer Networks  Basics of Network Devices
Computer Networks Basics of Network Devices
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the start
 

Object oriented software engineering

  • 1.
  • 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
  • 18.
  • 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
  • 21.
  • 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
  • 25.
  • 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).