SlideShare a Scribd company logo
1 of 22
Chapter 1
Object-Oriented Analysis and Design
Objectives
• Compare and contrast analysis and design
• Define object-oriented analysis and design
(OOA/D)
• Illustration of some brief example
Applying UML and patterns in OOA/D
• Object oriented approach will be used for creation of well-
designed, robust, and maintainable software using object
technologies and languages such as Java,C++, Smalltalk,
and C#.
• Knowing some object-oriented language is not enough,
thinking in objects is critical and necessary.
• Here in this class, we will apply Unified Modeling
Language(UML), patterns and Unified Process for OOA/D.
– Such as how to assign responsibilities to objects,
– Knowing frequently used UML notation,
– and common design patterns
• UML is not a OOA/D method, it is simply a notation in the
service of doing OOA/D.
Applying patterns and assigning
responsibilities
• What we will learn in this course while applying UML
is:
– How should responsibilities be allocated to classes of
objects?
– How should objects interact?
– What classes should do what?
– how to apply patterns, supports quicker learning and
skillful use of these fundamental object design.
• OOA/D (and all software design) is strongly related to
the prerequisite activity of requirements analysis,
which includes writing use cases.
Cont…
• You will be capable of learning:
– Apply principles and patterns to create better
object designs.
– Follow a set of common activities in analysis and
design, based on the Unified Process as an
example.
– Create frequently used diagrams in the UML
notation.
Topics and skills covered
Assigning Responsibilities
• A critical, fundamental ability in OOA/D is to
skillfully assign responsibilities to software
components.
– It influences the robustness, maintainability, and
reusability of software components.
• Nine fundamental principles in object design
and responsibility assignment are presented
and applied using GRASP patterns.
What is Analysis and Design
• Analysis:
– It emphasizes an investigation of the problem and
requirements, rather than a solution.
– Requirements analysis
• An investigation of the requirements
– Object analysis
• An investigation of the domain objects.
• Design:
– It emphasizes a conceptual solution that fulfills the
requirements, rather than its implementation.
• do the right thing (analysis), and do the thing right
(design).
Object-oriented Analysis
• It emphasizes on finding and describing the
objects—or concepts—in the problem
domain.
• Example:
– Considering the example of Library Information
System, some of the concepts are Book, Library
and Patron.
Object-Oriented Design
• OOD emphasizes on defining software objects
and how they collaborate to fulfill the
requirements.
• Example:
– In the library system, a Book software object may
have a title attribute and a getChapter method.
• During implementation or object-oriented
programming, design objects are
implemented, such as a Book class in Java.
Representation of objects
•Object-orientation emphasizes representation of objects
as shown in the above figure.
Example
• A simple example is used to present and discuss
some of the key steps and diagrams.
• Dice game:
– A player rolls two die. If the total is seven, they win;
otherwise, they lose.
• Using this example we will
– Define Use Cases
– Define a Domain Model
– Define Interaction Diagram
– Define Design Class Diagram
Define Use Cases
• Requirements analysis may include a description of
related domain processes; these can be written as use
cases.
• Use cases are not an object-oriented artifact, they are
simply written stories.
• It is a very popular tool of requirement analysis and is
an important part of unified process. That is why we
will first define Use cases.
• Play a Dice Game :
A player picks up and rolls the dice. If the dice face
value total seven, they win; otherwise, they lose.
The above is a brief version of a use case.
Define a Domain Model
• Object-oriented analysis is concerned with creating a
description of the domain from the perspective of
classification by objects.
• Domain Model involves
– identification of the concepts,
– attributes,
– and associations.
• Domain model is illustrated in a set of diagrams that
show domain concepts or objects.
• domain model is not a description of software objects;
it is a visualization of concepts in the real-world
domain
Domain Model for Dice game
• The above figure is showing partial domain model of the
dice game.
Define Interaction Diagrams
• Object-oriented design is concerned with defining
software objects and their collaborations.
• A common notation to illustrate these
collaborations is the interaction diagram.
• It shows the flow of messages between software
objects, and thus the invocation of methods.
• It shows the dynamic view of collaborating
objects.
Interaction diagram illustrating
messages between software objects
• It illustrates the essential step of playing, by sending
messages to instances of the DiceGame and Die classes
Cont…
• In the figure(on the previous slide)a play
message is sent to a DiceGame object.
• The DiceGame class requires a play method,
while class Die requires a roll and
getFaceValue method.
Define Design Class Diagram
• Design Class Diagram is useful for creating static
view of the class definitions.
• This illustrates the attributes and methods of
the classes.
• For example, in the dice game, an inspection of
the interaction diagram leads to the partial
design class diagram shown in Figure below.
Cont…
• In contrast to the domain model, this diagram
does not illustrate real-world concepts; rather,
it shows software classes.
The UML
• The Unified Modeling Language (UML) is a
language for specifying, visualizing,
constructing, and documenting the artifacts of
software systems, as well as for business
modeling and other non-software systems.
• The UML has emerged as the de facto and de
jure standard diagramming notation for
object-oriented modeling.

More Related Content

What's hot

Rational Unified Process
Rational Unified ProcessRational Unified Process
Rational Unified ProcessKumar
 
OO Metrics
OO MetricsOO Metrics
OO Metricsskmetz
 
Object oriented software engineering concepts
Object oriented software engineering conceptsObject oriented software engineering concepts
Object oriented software engineering conceptsKomal Singh
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGSaqib Raza
 
Mc call's software quality model
Mc call's software quality modelMc call's software quality model
Mc call's software quality modelYatharth Aggarwal
 
Overview of UML Diagrams
Overview of UML DiagramsOverview of UML Diagrams
Overview of UML DiagramsManish Kumar
 
SRS(software requirement specification)
SRS(software requirement specification)SRS(software requirement specification)
SRS(software requirement specification)Akash Kumar Dhameja
 
Object oriented modeling and design
Object oriented modeling and designObject oriented modeling and design
Object oriented modeling and designjayashri kolekar
 
Component based development | what, why and how
Component based development | what, why and howComponent based development | what, why and how
Component based development | what, why and howRakesh Kumar Jha
 
Object-Oriented Analysis And Design With Applications Grady Booch
Object-Oriented Analysis And Design With Applications Grady BoochObject-Oriented Analysis And Design With Applications Grady Booch
Object-Oriented Analysis And Design With Applications Grady BoochSorina Chirilă
 
Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering arvind pandey
 
Software engineering model
Software engineering modelSoftware engineering model
Software engineering modelManish Chaurasia
 
10 component diagram
10 component diagram10 component diagram
10 component diagramBaskarkncet
 
Evolutionary models
Evolutionary modelsEvolutionary models
Evolutionary modelsPihu Goel
 
Validation testing
Validation testingValidation testing
Validation testingSlideshare
 

What's hot (20)

Rational Unified Process
Rational Unified ProcessRational Unified Process
Rational Unified Process
 
OO Metrics
OO MetricsOO Metrics
OO Metrics
 
Object oriented software engineering concepts
Object oriented software engineering conceptsObject oriented software engineering concepts
Object oriented software engineering concepts
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERING
 
Mc call's software quality model
Mc call's software quality modelMc call's software quality model
Mc call's software quality model
 
Overview of UML Diagrams
Overview of UML DiagramsOverview of UML Diagrams
Overview of UML Diagrams
 
SRS(software requirement specification)
SRS(software requirement specification)SRS(software requirement specification)
SRS(software requirement specification)
 
Introduction to UML
Introduction to UMLIntroduction to UML
Introduction to UML
 
UML
UMLUML
UML
 
Software design
Software designSoftware design
Software design
 
Object oriented modeling and design
Object oriented modeling and designObject oriented modeling and design
Object oriented modeling and design
 
Component based development | what, why and how
Component based development | what, why and howComponent based development | what, why and how
Component based development | what, why and how
 
Object-Oriented Analysis And Design With Applications Grady Booch
Object-Oriented Analysis And Design With Applications Grady BoochObject-Oriented Analysis And Design With Applications Grady Booch
Object-Oriented Analysis And Design With Applications Grady Booch
 
Software Evolution
Software EvolutionSoftware Evolution
Software Evolution
 
Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering
 
Software engineering model
Software engineering modelSoftware engineering model
Software engineering model
 
Object Oriented Design
Object Oriented DesignObject Oriented Design
Object Oriented Design
 
10 component diagram
10 component diagram10 component diagram
10 component diagram
 
Evolutionary models
Evolutionary modelsEvolutionary models
Evolutionary models
 
Validation testing
Validation testingValidation testing
Validation testing
 

Similar to Object oriented analysis and design

Introduction to object-oriented analysis and design (OOA/D)
Introduction to object-oriented analysis and design (OOA/D)Introduction to object-oriented analysis and design (OOA/D)
Introduction to object-oriented analysis and design (OOA/D)Ahmed Farag
 
Object oriented analysis & Design- Overview
Object oriented analysis & Design- OverviewObject oriented analysis & Design- Overview
Object oriented analysis & Design- Overviewrmk_rrj
 
Object Oriented Analysis and Design - Overview
Object Oriented Analysis and Design - OverviewObject Oriented Analysis and Design - Overview
Object Oriented Analysis and Design - Overviewrmk_rrj
 
Object-Oriented Analysis and Design
Object-Oriented Analysis and DesignObject-Oriented Analysis and Design
Object-Oriented Analysis and DesignRiazAhmad786
 
Unit-1 OOAD Introduction.pptx
Unit-1 OOAD Introduction.pptxUnit-1 OOAD Introduction.pptx
Unit-1 OOAD Introduction.pptxRavindranath67
 
CEN6016-Chapter1.ppt
CEN6016-Chapter1.pptCEN6016-Chapter1.ppt
CEN6016-Chapter1.pptNelsonYanes6
 
Unified Modeling Language (UML)
Unified Modeling Language (UML)Unified Modeling Language (UML)
Unified Modeling Language (UML)ppd1961
 
Object-Oriented Systems Analysis and Design Using UML.pptx
Object-Oriented Systems Analysis and Design Using UML.pptxObject-Oriented Systems Analysis and Design Using UML.pptx
Object-Oriented Systems Analysis and Design Using UML.pptxXanGwaps
 
Unit IV Software Engineering
Unit IV Software EngineeringUnit IV Software Engineering
Unit IV Software EngineeringNandhini S
 
1Introduction to OOAD
1Introduction to OOAD1Introduction to OOAD
1Introduction to OOAD Shahid Riaz
 
12266422.ppt
12266422.ppt12266422.ppt
12266422.pptCSEC5
 
the Modeling is a way of thinking about the
the Modeling is a way of thinking about thethe Modeling is a way of thinking about the
the Modeling is a way of thinking about thesaman zaker
 

Similar to Object oriented analysis and design (20)

Introduction to object-oriented analysis and design (OOA/D)
Introduction to object-oriented analysis and design (OOA/D)Introduction to object-oriented analysis and design (OOA/D)
Introduction to object-oriented analysis and design (OOA/D)
 
Object oriented analysis & Design- Overview
Object oriented analysis & Design- OverviewObject oriented analysis & Design- Overview
Object oriented analysis & Design- Overview
 
Object Oriented Analysis and Design - Overview
Object Oriented Analysis and Design - OverviewObject Oriented Analysis and Design - Overview
Object Oriented Analysis and Design - Overview
 
Object-Oriented Analysis and Design
Object-Oriented Analysis and DesignObject-Oriented Analysis and Design
Object-Oriented Analysis and Design
 
Unit-1 OOAD Introduction.pptx
Unit-1 OOAD Introduction.pptxUnit-1 OOAD Introduction.pptx
Unit-1 OOAD Introduction.pptx
 
5-CEN6016-Chapter1.ppt
5-CEN6016-Chapter1.ppt5-CEN6016-Chapter1.ppt
5-CEN6016-Chapter1.ppt
 
CEN6016-Chapter1.ppt
CEN6016-Chapter1.pptCEN6016-Chapter1.ppt
CEN6016-Chapter1.ppt
 
CEN6016-Chapter1.ppt
CEN6016-Chapter1.pptCEN6016-Chapter1.ppt
CEN6016-Chapter1.ppt
 
Unified Modeling Language (UML)
Unified Modeling Language (UML)Unified Modeling Language (UML)
Unified Modeling Language (UML)
 
Object-Oriented Systems Analysis and Design Using UML.pptx
Object-Oriented Systems Analysis and Design Using UML.pptxObject-Oriented Systems Analysis and Design Using UML.pptx
Object-Oriented Systems Analysis and Design Using UML.pptx
 
Unit 4
Unit 4Unit 4
Unit 4
 
Unit 2
Unit 2Unit 2
Unit 2
 
Unit IV Software Engineering
Unit IV Software EngineeringUnit IV Software Engineering
Unit IV Software Engineering
 
Unit 1
Unit 1Unit 1
Unit 1
 
1Introduction to OOAD
1Introduction to OOAD1Introduction to OOAD
1Introduction to OOAD
 
Ooad unit 1
Ooad unit 1Ooad unit 1
Ooad unit 1
 
12266422.ppt
12266422.ppt12266422.ppt
12266422.ppt
 
Analysis
AnalysisAnalysis
Analysis
 
OOM Unit I - III.pdf
OOM Unit I - III.pdfOOM Unit I - III.pdf
OOM Unit I - III.pdf
 
the Modeling is a way of thinking about the
the Modeling is a way of thinking about thethe Modeling is a way of thinking about the
the Modeling is a way of thinking about the
 

Recently uploaded

Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 

Recently uploaded (20)

Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 

Object oriented analysis and design

  • 1.
  • 3. Objectives • Compare and contrast analysis and design • Define object-oriented analysis and design (OOA/D) • Illustration of some brief example
  • 4. Applying UML and patterns in OOA/D • Object oriented approach will be used for creation of well- designed, robust, and maintainable software using object technologies and languages such as Java,C++, Smalltalk, and C#. • Knowing some object-oriented language is not enough, thinking in objects is critical and necessary. • Here in this class, we will apply Unified Modeling Language(UML), patterns and Unified Process for OOA/D. – Such as how to assign responsibilities to objects, – Knowing frequently used UML notation, – and common design patterns • UML is not a OOA/D method, it is simply a notation in the service of doing OOA/D.
  • 5. Applying patterns and assigning responsibilities • What we will learn in this course while applying UML is: – How should responsibilities be allocated to classes of objects? – How should objects interact? – What classes should do what? – how to apply patterns, supports quicker learning and skillful use of these fundamental object design. • OOA/D (and all software design) is strongly related to the prerequisite activity of requirements analysis, which includes writing use cases.
  • 6. Cont… • You will be capable of learning: – Apply principles and patterns to create better object designs. – Follow a set of common activities in analysis and design, based on the Unified Process as an example. – Create frequently used diagrams in the UML notation.
  • 8. Assigning Responsibilities • A critical, fundamental ability in OOA/D is to skillfully assign responsibilities to software components. – It influences the robustness, maintainability, and reusability of software components. • Nine fundamental principles in object design and responsibility assignment are presented and applied using GRASP patterns.
  • 9. What is Analysis and Design • Analysis: – It emphasizes an investigation of the problem and requirements, rather than a solution. – Requirements analysis • An investigation of the requirements – Object analysis • An investigation of the domain objects. • Design: – It emphasizes a conceptual solution that fulfills the requirements, rather than its implementation. • do the right thing (analysis), and do the thing right (design).
  • 10. Object-oriented Analysis • It emphasizes on finding and describing the objects—or concepts—in the problem domain. • Example: – Considering the example of Library Information System, some of the concepts are Book, Library and Patron.
  • 11. Object-Oriented Design • OOD emphasizes on defining software objects and how they collaborate to fulfill the requirements. • Example: – In the library system, a Book software object may have a title attribute and a getChapter method. • During implementation or object-oriented programming, design objects are implemented, such as a Book class in Java.
  • 12. Representation of objects •Object-orientation emphasizes representation of objects as shown in the above figure.
  • 13. Example • A simple example is used to present and discuss some of the key steps and diagrams. • Dice game: – A player rolls two die. If the total is seven, they win; otherwise, they lose. • Using this example we will – Define Use Cases – Define a Domain Model – Define Interaction Diagram – Define Design Class Diagram
  • 14. Define Use Cases • Requirements analysis may include a description of related domain processes; these can be written as use cases. • Use cases are not an object-oriented artifact, they are simply written stories. • It is a very popular tool of requirement analysis and is an important part of unified process. That is why we will first define Use cases. • Play a Dice Game : A player picks up and rolls the dice. If the dice face value total seven, they win; otherwise, they lose. The above is a brief version of a use case.
  • 15. Define a Domain Model • Object-oriented analysis is concerned with creating a description of the domain from the perspective of classification by objects. • Domain Model involves – identification of the concepts, – attributes, – and associations. • Domain model is illustrated in a set of diagrams that show domain concepts or objects. • domain model is not a description of software objects; it is a visualization of concepts in the real-world domain
  • 16. Domain Model for Dice game • The above figure is showing partial domain model of the dice game.
  • 17. Define Interaction Diagrams • Object-oriented design is concerned with defining software objects and their collaborations. • A common notation to illustrate these collaborations is the interaction diagram. • It shows the flow of messages between software objects, and thus the invocation of methods. • It shows the dynamic view of collaborating objects.
  • 18. Interaction diagram illustrating messages between software objects • It illustrates the essential step of playing, by sending messages to instances of the DiceGame and Die classes
  • 19. Cont… • In the figure(on the previous slide)a play message is sent to a DiceGame object. • The DiceGame class requires a play method, while class Die requires a roll and getFaceValue method.
  • 20. Define Design Class Diagram • Design Class Diagram is useful for creating static view of the class definitions. • This illustrates the attributes and methods of the classes. • For example, in the dice game, an inspection of the interaction diagram leads to the partial design class diagram shown in Figure below.
  • 21. Cont… • In contrast to the domain model, this diagram does not illustrate real-world concepts; rather, it shows software classes.
  • 22. The UML • The Unified Modeling Language (UML) is a language for specifying, visualizing, constructing, and documenting the artifacts of software systems, as well as for business modeling and other non-software systems. • The UML has emerged as the de facto and de jure standard diagramming notation for object-oriented modeling.