SlideShare a Scribd company logo
1 of 19
Domain Driven Design 
Through Onion Architecture
Bowling Score Sheet
What is Domain Driven Design 
• A technique for developing software that 
focuses on collaboration between technical 
experts and domain experts. 
• The ideas and terms of the domain should be 
directly reflected by the code through the 
Ubiquitous Language.
Bowling Domain 
• Who are the Domain Experts? 
• What is the Ubiquitous Language?
Bounded Contexts 
• Subdivide large domains into smaller contexts. 
• Each context can have it’s own ubiquitous 
language and it’s own model. 
• Bounded Contexts may share some domain 
aspects.
Bowling Bounded Contexts 
• Scoring 
• Statistics 
• Lane Reservation 
• Sales 
• Maintenance
Traditional Layered Architecture 
Presentation 
Business/Domain 
Data Access
Onion Architecture 
Infrastructure 
API 
Domain 
Core
The Core 
• Building blocks used to create the 
application. 
• Not specific to any domain or technology. 
• Eg. Lists, Maps, Case Classes, Actors, Lenses
The API 
• Acts as an entry point to the Domain 
• Communicates using Domain terms and 
Domain objects 
• Should be restricted to exposing only 
immutable objects 
• Can access the Core and the Domain but not 
the Infrastructure
Bowling API 
• Could include methods like: 
• Create Game 
• Add/Remove Player 
• Get Players 
• Set Pin State 
• Skip Player 
• Set Lane
The Domain 
• Built out of the building blocks defined in the 
Core 
• Uses Ubiquitous Language 
• BUSINESS LOGIC GOES HERE!
Bowling Domain 
• Domain Terms: Game, Player, Pin, Frame, 
Strike, Spare 
• Out of Context: Pinsetter, Customer, Lane 
Reservation 
• Non Domain Terms: User Interface, Database
Domain Building Blocks 
• Value Objects 
• Entities 
• Aggregate Roots 
• Repositories 
• Factories 
• Services
Bowling Aggregate Root 
• Candidates: Player, Game 
• Which Entities are present in most or all API 
operations? 
• Which Entity if deleted would result in the 
deletion of some or all other Entities?
The Infrastructure 
• Contains adapters for various technology 
concerns including Databases, User 
Interfaces, External Services etc. 
• Has access to all areas of the system (API, 
Domain, Core)
Bowling Infrastructure 
• Pinsetter 
• UI for lane screens 
• UI for alley staff 
• Database
Wrap Up 
• How portable is the Bowling Score Keeper? 
• Can it be adapted to other uses with minimal 
effort? 
• Is it tied to the underlying technology?
Domain Driven Design Through Onion Architecture

More Related Content

What's hot

Appcelerator Alloy Deep Dive - tiTokyo 2013
Appcelerator Alloy Deep Dive - tiTokyo 2013Appcelerator Alloy Deep Dive - tiTokyo 2013
Appcelerator Alloy Deep Dive - tiTokyo 2013
Ricardo Alcocer
 
The New Way of Developing with AEM 6.0 | Sightly | Beautiful Markup
The New Way of Developing with AEM 6.0 | Sightly | Beautiful MarkupThe New Way of Developing with AEM 6.0 | Sightly | Beautiful Markup
The New Way of Developing with AEM 6.0 | Sightly | Beautiful Markup
Senol Tas
 

What's hot (20)

Pain Points In API Development? They’re Everywhere
Pain Points In API Development? They’re EverywherePain Points In API Development? They’re Everywhere
Pain Points In API Development? They’re Everywhere
 
Appcelerator Alloy Deep Dive - tiTokyo 2013
Appcelerator Alloy Deep Dive - tiTokyo 2013Appcelerator Alloy Deep Dive - tiTokyo 2013
Appcelerator Alloy Deep Dive - tiTokyo 2013
 
API Description Languages
API Description LanguagesAPI Description Languages
API Description Languages
 
Scintillating
ScintillatingScintillating
Scintillating
 
Introduction To Domain Driven Design
Introduction To Domain Driven DesignIntroduction To Domain Driven Design
Introduction To Domain Driven Design
 
The New Way of Developing with AEM 6.0 | Sightly | Beautiful Markup
The New Way of Developing with AEM 6.0 | Sightly | Beautiful MarkupThe New Way of Developing with AEM 6.0 | Sightly | Beautiful Markup
The New Way of Developing with AEM 6.0 | Sightly | Beautiful Markup
 
Starting Mobile Development
Starting Mobile DevelopmentStarting Mobile Development
Starting Mobile Development
 
GraphQL 101
GraphQL 101GraphQL 101
GraphQL 101
 
Adapter Design Pattern
Adapter Design PatternAdapter Design Pattern
Adapter Design Pattern
 
Orion Introduction
Orion IntroductionOrion Introduction
Orion Introduction
 
Funky serverless features at aws
Funky serverless features at awsFunky serverless features at aws
Funky serverless features at aws
 
.NET Fringe 2017 - Challenges of Managing CoreFX repo -- Karel Zikmund
.NET Fringe 2017 - Challenges of Managing CoreFX repo -- Karel Zikmund.NET Fringe 2017 - Challenges of Managing CoreFX repo -- Karel Zikmund
.NET Fringe 2017 - Challenges of Managing CoreFX repo -- Karel Zikmund
 
Orion Introduction
Orion IntroductionOrion Introduction
Orion Introduction
 
Rapid With Spring Roo
Rapid With Spring RooRapid With Spring Roo
Rapid With Spring Roo
 
.NET MeetUp Prague 2017 - Challenges of Managing CoreFX repo -- Karel Zikmund
.NET MeetUp Prague 2017 - Challenges of Managing CoreFX repo -- Karel Zikmund.NET MeetUp Prague 2017 - Challenges of Managing CoreFX repo -- Karel Zikmund
.NET MeetUp Prague 2017 - Challenges of Managing CoreFX repo -- Karel Zikmund
 
apidays LIVE Paris 2021 - Learning the Language of HTTP for a Better Data Exp...
apidays LIVE Paris 2021 - Learning the Language of HTTP for a Better Data Exp...apidays LIVE Paris 2021 - Learning the Language of HTTP for a Better Data Exp...
apidays LIVE Paris 2021 - Learning the Language of HTTP for a Better Data Exp...
 
The Developers World
The Developers WorldThe Developers World
The Developers World
 
WooCommerce & Apple TV
WooCommerce & Apple TVWooCommerce & Apple TV
WooCommerce & Apple TV
 
Create Salesforce online IDE in 30 minutes
Create Salesforce online IDE in 30 minutesCreate Salesforce online IDE in 30 minutes
Create Salesforce online IDE in 30 minutes
 
.NET MeetUp Prague 2017 - .NET Standard -- Karel Zikmund
.NET MeetUp Prague 2017 - .NET Standard -- Karel Zikmund.NET MeetUp Prague 2017 - .NET Standard -- Karel Zikmund
.NET MeetUp Prague 2017 - .NET Standard -- Karel Zikmund
 

Viewers also liked

Viewers also liked (8)

The Architecture of an API Platform
The Architecture of an API PlatformThe Architecture of an API Platform
The Architecture of an API Platform
 
Applying Domain-Driven Design to APIs and Microservices - Austin API Meetup
Applying Domain-Driven Design to APIs and Microservices  - Austin API MeetupApplying Domain-Driven Design to APIs and Microservices  - Austin API Meetup
Applying Domain-Driven Design to APIs and Microservices - Austin API Meetup
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
API Design Methodology - Mike Amundsen, Director of API Architecture, API Aca...
API Design Methodology - Mike Amundsen, Director of API Architecture, API Aca...API Design Methodology - Mike Amundsen, Director of API Architecture, API Aca...
API Design Methodology - Mike Amundsen, Director of API Architecture, API Aca...
 
Api architectures for the modern enterprise
Api architectures for the modern enterpriseApi architectures for the modern enterprise
Api architectures for the modern enterprise
 
Designing APIs and Microservices Using Domain-Driven Design
Designing APIs and Microservices Using Domain-Driven DesignDesigning APIs and Microservices Using Domain-Driven Design
Designing APIs and Microservices Using Domain-Driven Design
 
Domain Driven Design using Laravel
Domain Driven Design using LaravelDomain Driven Design using Laravel
Domain Driven Design using Laravel
 
Software Design Patterns in Laravel by Phill Sparks
Software Design Patterns in Laravel by Phill SparksSoftware Design Patterns in Laravel by Phill Sparks
Software Design Patterns in Laravel by Phill Sparks
 

Similar to Domain Driven Design Through Onion Architecture

Android application development
Android application developmentAndroid application development
Android application development
Linh Vi Tường
 

Similar to Domain Driven Design Through Onion Architecture (20)

2019-Nov: Domain Driven Design (DDD) and when not to use it
2019-Nov: Domain Driven Design (DDD) and when not to use it2019-Nov: Domain Driven Design (DDD) and when not to use it
2019-Nov: Domain Driven Design (DDD) and when not to use it
 
iPhone OS: The Next Killer Platform
iPhone OS: The Next Killer PlatformiPhone OS: The Next Killer Platform
iPhone OS: The Next Killer Platform
 
Lecture3
Lecture3Lecture3
Lecture3
 
Domaine Driven Design - Bordeaux IO
Domaine Driven Design - Bordeaux IODomaine Driven Design - Bordeaux IO
Domaine Driven Design - Bordeaux IO
 
Multimedia Development Lifecycle
Multimedia Development LifecycleMultimedia Development Lifecycle
Multimedia Development Lifecycle
 
Is it possible to write cross-native apps in 2020 ?
Is it possible to write cross-native apps in 2020 ?Is it possible to write cross-native apps in 2020 ?
Is it possible to write cross-native apps in 2020 ?
 
Forge - DevCon 2016: Implementing Rich Applications in the Browser
Forge - DevCon 2016: Implementing Rich Applications in the BrowserForge - DevCon 2016: Implementing Rich Applications in the Browser
Forge - DevCon 2016: Implementing Rich Applications in the Browser
 
Domain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic PatternsDomain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic Patterns
 
.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design
.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design
.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design
 
C#: Past, Present and Future
C#: Past, Present and FutureC#: Past, Present and Future
C#: Past, Present and Future
 
Android application development
Android application developmentAndroid application development
Android application development
 
Decode2018 report
Decode2018 reportDecode2018 report
Decode2018 report
 
Azure thursday HoloLens and cognitive services a powerful combination
Azure thursday HoloLens and cognitive services a powerful combinationAzure thursday HoloLens and cognitive services a powerful combination
Azure thursday HoloLens and cognitive services a powerful combination
 
AMIS OOW 2012 Review - Deel 4 ADF - Paco van der Linden
AMIS OOW 2012 Review - Deel 4 ADF - Paco van der LindenAMIS OOW 2012 Review - Deel 4 ADF - Paco van der Linden
AMIS OOW 2012 Review - Deel 4 ADF - Paco van der Linden
 
Android
Android Android
Android
 
iOS platform
iOS platformiOS platform
iOS platform
 
How to become a Rational Developer for IBM i Power User
How to become a Rational Developer for IBM i Power UserHow to become a Rational Developer for IBM i Power User
How to become a Rational Developer for IBM i Power User
 
Adminstering biztalkusingchatbot
Adminstering biztalkusingchatbotAdminstering biztalkusingchatbot
Adminstering biztalkusingchatbot
 
WIPJam Cross Platform Tools - Dec 2013
WIPJam   Cross Platform Tools - Dec 2013WIPJam   Cross Platform Tools - Dec 2013
WIPJam Cross Platform Tools - Dec 2013
 
DotNetNuke
DotNetNukeDotNetNuke
DotNetNuke
 

More from BoldRadius Solutions

More from BoldRadius Solutions (19)

Introduction to the Typesafe Reactive Platform
Introduction to the Typesafe Reactive PlatformIntroduction to the Typesafe Reactive Platform
Introduction to the Typesafe Reactive Platform
 
Partial Functions in Scala
Partial Functions in ScalaPartial Functions in Scala
Partial Functions in Scala
 
Towards Reliable Lookups - Scala By The Bay
Towards Reliable Lookups - Scala By The BayTowards Reliable Lookups - Scala By The Bay
Towards Reliable Lookups - Scala By The Bay
 
How You Convince Your Manager To Adopt Scala.js in Production
How You Convince Your Manager To Adopt Scala.js in ProductionHow You Convince Your Manager To Adopt Scala.js in Production
How You Convince Your Manager To Adopt Scala.js in Production
 
Introduction to the Actor Model
Introduction to the Actor ModelIntroduction to the Actor Model
Introduction to the Actor Model
 
Why Not Make the Transition from Java to Scala?
Why Not Make the Transition from Java to Scala?Why Not Make the Transition from Java to Scala?
Why Not Make the Transition from Java to Scala?
 
String Interpolation in Scala | BoldRadius
String Interpolation in Scala | BoldRadiusString Interpolation in Scala | BoldRadius
String Interpolation in Scala | BoldRadius
 
Value Classes in Scala | BoldRadius
Value Classes in Scala | BoldRadiusValue Classes in Scala | BoldRadius
Value Classes in Scala | BoldRadius
 
Scala Days Highlights | BoldRadius
Scala Days Highlights | BoldRadiusScala Days Highlights | BoldRadius
Scala Days Highlights | BoldRadius
 
What Are For Expressions in Scala?
What Are For Expressions in Scala?What Are For Expressions in Scala?
What Are For Expressions in Scala?
 
Pattern Matching in Scala
Pattern Matching in ScalaPattern Matching in Scala
Pattern Matching in Scala
 
What are Sealed Classes in Scala?
What are Sealed Classes in Scala?What are Sealed Classes in Scala?
What are Sealed Classes in Scala?
 
Scala: Collections API
Scala: Collections APIScala: Collections API
Scala: Collections API
 
How To Use Higher Order Functions in Scala
How To Use Higher Order Functions in ScalaHow To Use Higher Order Functions in Scala
How To Use Higher Order Functions in Scala
 
Immutability in Scala
Immutability in ScalaImmutability in Scala
Immutability in Scala
 
Scala Days 2014: Pitching Typesafe
Scala Days 2014: Pitching TypesafeScala Days 2014: Pitching Typesafe
Scala Days 2014: Pitching Typesafe
 
Code Brevity in Scala
Code Brevity in ScalaCode Brevity in Scala
Code Brevity in Scala
 
Demonstrating Case Classes in Scala
Demonstrating Case Classes in ScalaDemonstrating Case Classes in Scala
Demonstrating Case Classes in Scala
 
Functional Programming - Worth the Effort
Functional Programming - Worth the EffortFunctional Programming - Worth the Effort
Functional Programming - Worth the Effort
 

Recently uploaded

AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 

Recently uploaded (20)

AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban
 
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 

Domain Driven Design Through Onion Architecture

  • 1. Domain Driven Design Through Onion Architecture
  • 3. What is Domain Driven Design • A technique for developing software that focuses on collaboration between technical experts and domain experts. • The ideas and terms of the domain should be directly reflected by the code through the Ubiquitous Language.
  • 4. Bowling Domain • Who are the Domain Experts? • What is the Ubiquitous Language?
  • 5. Bounded Contexts • Subdivide large domains into smaller contexts. • Each context can have it’s own ubiquitous language and it’s own model. • Bounded Contexts may share some domain aspects.
  • 6. Bowling Bounded Contexts • Scoring • Statistics • Lane Reservation • Sales • Maintenance
  • 7. Traditional Layered Architecture Presentation Business/Domain Data Access
  • 9. The Core • Building blocks used to create the application. • Not specific to any domain or technology. • Eg. Lists, Maps, Case Classes, Actors, Lenses
  • 10. The API • Acts as an entry point to the Domain • Communicates using Domain terms and Domain objects • Should be restricted to exposing only immutable objects • Can access the Core and the Domain but not the Infrastructure
  • 11. Bowling API • Could include methods like: • Create Game • Add/Remove Player • Get Players • Set Pin State • Skip Player • Set Lane
  • 12. The Domain • Built out of the building blocks defined in the Core • Uses Ubiquitous Language • BUSINESS LOGIC GOES HERE!
  • 13. Bowling Domain • Domain Terms: Game, Player, Pin, Frame, Strike, Spare • Out of Context: Pinsetter, Customer, Lane Reservation • Non Domain Terms: User Interface, Database
  • 14. Domain Building Blocks • Value Objects • Entities • Aggregate Roots • Repositories • Factories • Services
  • 15. Bowling Aggregate Root • Candidates: Player, Game • Which Entities are present in most or all API operations? • Which Entity if deleted would result in the deletion of some or all other Entities?
  • 16. The Infrastructure • Contains adapters for various technology concerns including Databases, User Interfaces, External Services etc. • Has access to all areas of the system (API, Domain, Core)
  • 17. Bowling Infrastructure • Pinsetter • UI for lane screens • UI for alley staff • Database
  • 18. Wrap Up • How portable is the Bowling Score Keeper? • Can it be adapted to other uses with minimal effort? • Is it tied to the underlying technology?