SlideShare a Scribd company logo
1 of 17
What are 5G LAMBDAs?
5G is a branding of component-based modeling in
Excel. 5G components are:
• Easy to use
• Reusable
• Fully tested
• Documented
• CBSE-Compliant
2023 Reducing Errors in Excel Models with Component-Based Software Engineering 1
What is CBSE?
CBSE (Component-based software engineering)
• Developed in the late ’90s.
• Relies on pre-built, pre-tested components
• Components:
• Encapsulate specific functionality
• Have well-defined interfaces (arguments)
• And are 100% self-contained
2023 Reducing Errors in Excel Models with Component-Based Software Engineering 2
CBSE’s Value
Proposition
Assembling models from CBSE components:
• Increases productivity
• Reduces errors
• Requires no special technical skills
Quick, Correct, Easy
2023 Reducing Errors in Excel Models with Component-Based Software Engineering 3
What are CBSE-Compliant LAMBDAs?
LAMBDAs that are constructed to be:
• Reusable
• Accessible through interfaces
• 100% Self-contained
• Provide user feedback
• Documented and Tested
• Easily distributed and incorporated
2023 Reducing Errors in Excel Models with Component-Based Software Engineering 4
COMPONENT
EXAMPLE
2023 5
Reducing Errors in Excel Models with Component-Based Software Engineering
Writing CBSE Compliant LAMBDAs
What follows are those things that we must do to make
our LAMBDAs CBSE-compliant.
WARNING: The next section starts at the beginner level
and then quickly progresses to intermediate-level
LAMBDA authors.
2023 Reducing Errors in Excel Models with Component-Based Software Engineering 6
LAMBDA Sections
• Internal Argument Names – How calculations refer to function arguments.
• Calculations – The collection of Excel functions used by the LAMBDA
• Function Arguments – Values passed to the LAMBDA (not in the
LAMBDA)
2023 Reducing Errors in Excel Models with Component-Based Software Engineering 7
=LAMBDA([ArgName1, ArgName2, …], Calculation)([ArgValue1, ArgValue2,…])
Internal Argument Names Calculations Function Arguments
Reusable
2023 Reducing Errors in Excel Models with Component-Based Software Engineering 8
• Created to satisfy a recurring need.
• Designed for reuse in any workbook.
• May be used multiple times within the same workbook.
• From reuse and continuous improvement, components
become ‘battle-tested’
Accessible Through
Interfaces
Interfaces are the component’s arguments, also known as
parameters.
Row 3 is non-compliant because inputs are passed as
references, not arguments
2023 Reducing Errors in Excel Models with Component-Based Software Engineering 9
Arguments
No
Arguments
Self-Contained
Everything needed for the component’s functionality is
inside the component or provided through interfaces.
Row 3 is non-compliant because calculations are
dependent on values in $B$1:$E$1
2023 Reducing Errors in Excel Models with Component-Based Software Engineering 10
Provide User Feedback
When errors are encountered, the component must alert
the user to the error and should suggest corrective
measures.
2023 Reducing Errors in Excel Models with Component-Based Software Engineering 11
The component at right
fails because of an
invalid date and, as a
result, displays its in-
line help.
CODE
EXAMPLE
2023 12
Reducing Errors in Excel Models with Component-Based Software Engineering
User Feedback
Inline help shows when no
parameters are entered, or
the LAMBDA fails. See help
output below source.
Revision log
Component Name
Figure 4 Example CBSE compliant documentation for LAMBDAs
Description of services
Allowable inputs
Example usage
Interface (Arguments)
Help Output
Functional code
Documented and Tested
Components are expected to be error-free
• Documentation describes functionality.
• Common scenarios test functionality conforms to
documentation.
• Edge tests confirm special scenarios conform to
documentation.
• Negative tests confirm inputs that should error, do.
• Revisions incorporate latest improvements
2023 Reducing Errors in Excel Models with Component-Based Software Engineering 13
Easily Distributed and Incorporated
2023 Reducing Errors in Excel Models with Component-Based Software Engineering 14
Store components in GitHub
Gist
Why now?
CBSE requires 3 recent developments:
• Turing complete programming languages - LAMBDA
makes Excel Turing complete
• Integration Facility – Microsoft’s Advanced Formula
Environment (AFE) eases importing LAMBDA
modules.
• Distribution - GitHub Gists provide free LAMBDA
module repositories that AFE can import from readily.
2023 Reducing Errors in Excel Models with Component-Based Software Engineering 15
Summary
2023 Reducing Errors in Excel Models with Component-Based Software Engineering 16
Components are pre-built, pre-tested, LAMBDA functions designed for reuse in any workbook.
CBSE components require:
• Facilities for distribution and access satisfied by GitHub Gist
• Facilities for easily acquiring and incorporating components satisfied by AFE
The CBSE promises are:
• Quicker model development through assembly of pre-existing, non-trivial components
• Improved reliability from pre-tested and, over time, battle-tested components.
• Ease of implementation because components look and feel like familiar Excel functions.
My hope is:
• Component creators will emerge to create quality components addressing recurring needs.
• Excel modelers will embrace component-based modeling because it is quick, correct, and easy.
COMPONENT-
BASED
MODELING
Quick, Correct, Easy

More Related Content

Similar to CBSE and Excel Lite for LAMBDA Authors

Spring Architecture | Advanced Java
Spring Architecture | Advanced JavaSpring Architecture | Advanced Java
Spring Architecture | Advanced JavaVISHAL DONGA
 
Practical data science
Practical data sciencePractical data science
Practical data scienceDing Li
 
Incquery Suite Models 2020 Conference by István Ráth, CEO of IncQuery Labs
Incquery Suite Models 2020 Conference by István Ráth, CEO of IncQuery LabsIncquery Suite Models 2020 Conference by István Ráth, CEO of IncQuery Labs
Incquery Suite Models 2020 Conference by István Ráth, CEO of IncQuery LabsIncQuery Labs
 
Modeling and Testing Dovetail in MagicDraw
Modeling and Testing Dovetail in MagicDrawModeling and Testing Dovetail in MagicDraw
Modeling and Testing Dovetail in MagicDrawGregory Solovey
 
Getting Started with Serverless Architectures using Azure Functions
Getting Started with Serverless Architectures using Azure FunctionsGetting Started with Serverless Architectures using Azure Functions
Getting Started with Serverless Architectures using Azure FunctionsMarc Duiker
 
Closing the Design Cycle Loop with Executable Requirements and OSLC - IBM Int...
Closing the Design Cycle Loop with Executable Requirements and OSLC - IBM Int...Closing the Design Cycle Loop with Executable Requirements and OSLC - IBM Int...
Closing the Design Cycle Loop with Executable Requirements and OSLC - IBM Int...Modelon
 
414: Build an agile CI/CD Pipeline for application integration
414: Build an agile CI/CD Pipeline for application integration414: Build an agile CI/CD Pipeline for application integration
414: Build an agile CI/CD Pipeline for application integrationTrevor Dolby
 
[DSC Europe 23] Petar Zecevic - ML in Production on Databricks
[DSC Europe 23] Petar Zecevic - ML in Production on Databricks[DSC Europe 23] Petar Zecevic - ML in Production on Databricks
[DSC Europe 23] Petar Zecevic - ML in Production on DatabricksDataScienceConferenc1
 
Is your ABAP Code Ready for the Cloud?
Is your ABAP Code Ready for the Cloud?Is your ABAP Code Ready for the Cloud?
Is your ABAP Code Ready for the Cloud?Tobias Trapp
 
App Connect v12. Unit testing with a Pipeline Example. Trevor Dolby Architect...
App Connect v12. Unit testing with a Pipeline Example. Trevor Dolby Architect...App Connect v12. Unit testing with a Pipeline Example. Trevor Dolby Architect...
App Connect v12. Unit testing with a Pipeline Example. Trevor Dolby Architect...mrle7
 
Introduction to Azure Functions
Introduction to Azure FunctionsIntroduction to Azure Functions
Introduction to Azure FunctionsCallon Campbell
 
Modules as requirement specifications
Modules as requirement specificationsModules as requirement specifications
Modules as requirement specificationsIBM Rational software
 
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014Phil Leggetter
 
Crafting ColdFusion Applications like an Architect
Crafting ColdFusion Applications like an ArchitectCrafting ColdFusion Applications like an Architect
Crafting ColdFusion Applications like an ArchitectColdFusionConference
 
Journey to Forge Mastery: Part 1 - Webinar on building a Forge component usi...
Journey to Forge Mastery: Part 1 -  Webinar on building a Forge component usi...Journey to Forge Mastery: Part 1 -  Webinar on building a Forge component usi...
Journey to Forge Mastery: Part 1 - Webinar on building a Forge component usi...MuhammedIbrahimHM
 

Similar to CBSE and Excel Lite for LAMBDA Authors (20)

Spring Architecture | Advanced Java
Spring Architecture | Advanced JavaSpring Architecture | Advanced Java
Spring Architecture | Advanced Java
 
Practical data science
Practical data sciencePractical data science
Practical data science
 
Incquery Suite Models 2020 Conference by István Ráth, CEO of IncQuery Labs
Incquery Suite Models 2020 Conference by István Ráth, CEO of IncQuery LabsIncquery Suite Models 2020 Conference by István Ráth, CEO of IncQuery Labs
Incquery Suite Models 2020 Conference by István Ráth, CEO of IncQuery Labs
 
Modeling and Testing Dovetail in MagicDraw
Modeling and Testing Dovetail in MagicDrawModeling and Testing Dovetail in MagicDraw
Modeling and Testing Dovetail in MagicDraw
 
Resume
ResumeResume
Resume
 
Getting Started with Serverless Architectures using Azure Functions
Getting Started with Serverless Architectures using Azure FunctionsGetting Started with Serverless Architectures using Azure Functions
Getting Started with Serverless Architectures using Azure Functions
 
Closing the Design Cycle Loop with Executable Requirements and OSLC - IBM Int...
Closing the Design Cycle Loop with Executable Requirements and OSLC - IBM Int...Closing the Design Cycle Loop with Executable Requirements and OSLC - IBM Int...
Closing the Design Cycle Loop with Executable Requirements and OSLC - IBM Int...
 
414: Build an agile CI/CD Pipeline for application integration
414: Build an agile CI/CD Pipeline for application integration414: Build an agile CI/CD Pipeline for application integration
414: Build an agile CI/CD Pipeline for application integration
 
[DSC Europe 23] Petar Zecevic - ML in Production on Databricks
[DSC Europe 23] Petar Zecevic - ML in Production on Databricks[DSC Europe 23] Petar Zecevic - ML in Production on Databricks
[DSC Europe 23] Petar Zecevic - ML in Production on Databricks
 
Is your ABAP Code Ready for the Cloud?
Is your ABAP Code Ready for the Cloud?Is your ABAP Code Ready for the Cloud?
Is your ABAP Code Ready for the Cloud?
 
Vedic Calculator
Vedic CalculatorVedic Calculator
Vedic Calculator
 
App Connect v12. Unit testing with a Pipeline Example. Trevor Dolby Architect...
App Connect v12. Unit testing with a Pipeline Example. Trevor Dolby Architect...App Connect v12. Unit testing with a Pipeline Example. Trevor Dolby Architect...
App Connect v12. Unit testing with a Pipeline Example. Trevor Dolby Architect...
 
Introduction to Azure Functions
Introduction to Azure FunctionsIntroduction to Azure Functions
Introduction to Azure Functions
 
Modules as requirement specifications
Modules as requirement specificationsModules as requirement specifications
Modules as requirement specifications
 
Angular 2
Angular 2Angular 2
Angular 2
 
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014
 
0. About this course
0. About this course0. About this course
0. About this course
 
Mvc
MvcMvc
Mvc
 
Crafting ColdFusion Applications like an Architect
Crafting ColdFusion Applications like an ArchitectCrafting ColdFusion Applications like an Architect
Crafting ColdFusion Applications like an Architect
 
Journey to Forge Mastery: Part 1 - Webinar on building a Forge component usi...
Journey to Forge Mastery: Part 1 -  Webinar on building a Forge component usi...Journey to Forge Mastery: Part 1 -  Webinar on building a Forge component usi...
Journey to Forge Mastery: Part 1 - Webinar on building a Forge component usi...
 

Recently uploaded

Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 

Recently uploaded (20)

Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 

CBSE and Excel Lite for LAMBDA Authors

  • 1. What are 5G LAMBDAs? 5G is a branding of component-based modeling in Excel. 5G components are: • Easy to use • Reusable • Fully tested • Documented • CBSE-Compliant 2023 Reducing Errors in Excel Models with Component-Based Software Engineering 1
  • 2. What is CBSE? CBSE (Component-based software engineering) • Developed in the late ’90s. • Relies on pre-built, pre-tested components • Components: • Encapsulate specific functionality • Have well-defined interfaces (arguments) • And are 100% self-contained 2023 Reducing Errors in Excel Models with Component-Based Software Engineering 2
  • 3. CBSE’s Value Proposition Assembling models from CBSE components: • Increases productivity • Reduces errors • Requires no special technical skills Quick, Correct, Easy 2023 Reducing Errors in Excel Models with Component-Based Software Engineering 3
  • 4. What are CBSE-Compliant LAMBDAs? LAMBDAs that are constructed to be: • Reusable • Accessible through interfaces • 100% Self-contained • Provide user feedback • Documented and Tested • Easily distributed and incorporated 2023 Reducing Errors in Excel Models with Component-Based Software Engineering 4
  • 5. COMPONENT EXAMPLE 2023 5 Reducing Errors in Excel Models with Component-Based Software Engineering
  • 6. Writing CBSE Compliant LAMBDAs What follows are those things that we must do to make our LAMBDAs CBSE-compliant. WARNING: The next section starts at the beginner level and then quickly progresses to intermediate-level LAMBDA authors. 2023 Reducing Errors in Excel Models with Component-Based Software Engineering 6
  • 7. LAMBDA Sections • Internal Argument Names – How calculations refer to function arguments. • Calculations – The collection of Excel functions used by the LAMBDA • Function Arguments – Values passed to the LAMBDA (not in the LAMBDA) 2023 Reducing Errors in Excel Models with Component-Based Software Engineering 7 =LAMBDA([ArgName1, ArgName2, …], Calculation)([ArgValue1, ArgValue2,…]) Internal Argument Names Calculations Function Arguments
  • 8. Reusable 2023 Reducing Errors in Excel Models with Component-Based Software Engineering 8 • Created to satisfy a recurring need. • Designed for reuse in any workbook. • May be used multiple times within the same workbook. • From reuse and continuous improvement, components become ‘battle-tested’
  • 9. Accessible Through Interfaces Interfaces are the component’s arguments, also known as parameters. Row 3 is non-compliant because inputs are passed as references, not arguments 2023 Reducing Errors in Excel Models with Component-Based Software Engineering 9 Arguments No Arguments
  • 10. Self-Contained Everything needed for the component’s functionality is inside the component or provided through interfaces. Row 3 is non-compliant because calculations are dependent on values in $B$1:$E$1 2023 Reducing Errors in Excel Models with Component-Based Software Engineering 10
  • 11. Provide User Feedback When errors are encountered, the component must alert the user to the error and should suggest corrective measures. 2023 Reducing Errors in Excel Models with Component-Based Software Engineering 11 The component at right fails because of an invalid date and, as a result, displays its in- line help.
  • 12. CODE EXAMPLE 2023 12 Reducing Errors in Excel Models with Component-Based Software Engineering User Feedback Inline help shows when no parameters are entered, or the LAMBDA fails. See help output below source. Revision log Component Name Figure 4 Example CBSE compliant documentation for LAMBDAs Description of services Allowable inputs Example usage Interface (Arguments) Help Output Functional code
  • 13. Documented and Tested Components are expected to be error-free • Documentation describes functionality. • Common scenarios test functionality conforms to documentation. • Edge tests confirm special scenarios conform to documentation. • Negative tests confirm inputs that should error, do. • Revisions incorporate latest improvements 2023 Reducing Errors in Excel Models with Component-Based Software Engineering 13
  • 14. Easily Distributed and Incorporated 2023 Reducing Errors in Excel Models with Component-Based Software Engineering 14 Store components in GitHub Gist
  • 15. Why now? CBSE requires 3 recent developments: • Turing complete programming languages - LAMBDA makes Excel Turing complete • Integration Facility – Microsoft’s Advanced Formula Environment (AFE) eases importing LAMBDA modules. • Distribution - GitHub Gists provide free LAMBDA module repositories that AFE can import from readily. 2023 Reducing Errors in Excel Models with Component-Based Software Engineering 15
  • 16. Summary 2023 Reducing Errors in Excel Models with Component-Based Software Engineering 16 Components are pre-built, pre-tested, LAMBDA functions designed for reuse in any workbook. CBSE components require: • Facilities for distribution and access satisfied by GitHub Gist • Facilities for easily acquiring and incorporating components satisfied by AFE The CBSE promises are: • Quicker model development through assembly of pre-existing, non-trivial components • Improved reliability from pre-tested and, over time, battle-tested components. • Ease of implementation because components look and feel like familiar Excel functions. My hope is: • Component creators will emerge to create quality components addressing recurring needs. • Excel modelers will embrace component-based modeling because it is quick, correct, and easy.