SlideShare a Scribd company logo
1 of 52
Download to read offline
software product lines
aka:
product line architecture
product family engineering
...

jason@miles.no

@miles_no
why

jason@miles.no

@miles_no
your problem to solve:
design the solution architecture for standardised case
management for all employment and social security
benefts in Norway (26 → 40 benefts)

Enterprise Architect: “They all follow the same
business process!”
Domain Expert: “They are all diferent!”
Case Handlers: “They all have to look for the same to
us!”
jason@miles.no

@miles_no
“On the design and
development of
Program Families”
- Parnas, 1976

Alternatives:
- Reference Architecture
- One-size-fts-all
- Software Product Line

jason@miles.no

@miles_no
core problem:
must understand the nature of variability in your
problem domain
Structural
(Essential)

Incidental
(Accidental)

jason@miles.no

inherent in the problem domain
- business wants to offer a set of
products
- product differentiation is a competitive
advantage
purely technical
- technical debt
- different development teams
- etc

@miles_no
alternative 1: reference architecture
SU

SP

FP

common logical architecture for all products
separate product instances in production
reuse of knowledge
opportunistic reuse of components
no explicit variation management
jason@miles.no

@miles_no
alternative 2: one-size-fits-all
SU

SP

FP

one physical architecture for all products
single product instance in production
complex variation management
significant reuse of components
difficult to deal with variation in quality
requirements
regression testing for all products for all changes
jason@miles.no

@miles_no
alternative 3: software product lines
FP
SU
Felles

common logical architecture for all products
separate product instances in production
reuse of knowledge
explicit variation management: functional and
quality requirements
explicit reuse of components
requires more architecture investment
jason@miles.no

@miles_no
jason@miles.no

@miles_no
what

jason@miles.no

@miles_no
jason@miles.no

@miles_no
jason@miles.no

@miles_no
jason@miles.no

@miles_no
Domain
Engineering

Application
Engineering

jason@miles.no

@miles_no
jason@miles.no

@miles_no
jason@miles.no

@miles_no
how

jason@miles.no

@miles_no
how

jason@miles.no

@miles_no
how

jason@miles.no

@miles_no
BDUF or agile software product lines?

jason@miles.no

@miles_no
how

jason@miles.no

@miles_no
variation points in the architecture

For our case management
domain:
variation in process
variation in domain model
variation in presentation
variation in legislation
variation in integration with
external actors

jason@miles.no

@miles_no
variation guide
. domain model

. rule templates

. java component integration

. service level integration

jason@miles.no

@miles_no
Jones, Lawrence G., and Linda M. Northrop. 2010.
“Clearing the Way for Software Product Line Success.”
IEEE Software 27 (3) (June).

. selling the business case
. getting product owner(s) / domain experts to think
across products
. project organisation structure for common
components and product development
. how do you defne user stories and other
requirements?
. how much upfront design?
. SPL for enterprisey software rather than
embedded systems
jason@miles.no

@miles_no
summary
. is variation inherent to the business domain?
. are there enough products to justify payof with a
product line approach?
. analyse the variation
. design the architecture wrt commonalities and
variations
. develop a variation guide for combining common
assets and product-specifc variants
. don't forget the non-architecture challenges
jason@miles.no

@miles_no
more info
http://splc.net

http://www.sei.cmu.edu/productlines/tools/framework/

●

slides and images liberally
stolen reused from
http://www.sei.cmu.edu/library/assets/spl-essentials.pdf

jason@miles.no

@miles_no
software product lines
aka:
product line architecture
product family engineering
...

jason@miles.no

@miles_no

* will talk about product lines
* illustrate concepts with the modernisation of case
management at NAV
why

jason@miles.no

@miles_no

* start with the why and compare it to other
techniques
* then look at what is a SPL
* and then how we have been going about it
your problem to solve:
design the solution architecture for standardised case
management for all employment and social security
benefts in Norway (26 → 40 benefts)

Enterprise Architect: “They all follow the same
business process!”
Domain Expert: “They are all diferent!”
Case Handlers: “They all have to look for the same to
us!”
jason@miles.no

@miles_no

* how do you design the architecture for a while set
of solutions?
* all the solutions have many things in common but
there is considerable variability
* nobody is too sure what that variability is, nor
what can be standardised
“On the design and
development of
Program Families”
- Parnas, 1976

Alternatives:
- Reference Architecture
- One-size-fts-all
- Software Product Line

jason@miles.no

@miles_no

* lots of research and industry experience on
dealing with variability in software architecture
* long history of dealing with Product Families
* variations in functionality
* variations in support for quality requirements
* all that background shows three main alternatives
core problem:
must understand the nature of variability in your
problem domain
Structural
(Essential)

Incidental
(Accidental)

jason@miles.no

inherent in the problem domain
- business wants to offer a set of
products
- product differentiation is a competitive
advantage
purely technical
- technical debt
- different development teams
- etc

@miles_no

* before you can analyse which alternative is
relevant for you, you need to understand the nature
of variation
* Is it Essential or Accidental?
alternative 1: reference architecture
SU

SP

FP

common logical architecture for all products
separate product instances in production
reuse of knowledge
opportunistic reuse of components
no explicit variation management
jason@miles.no

*

@miles_no
alternative 2: one-size-fits-all
SU

SP

FP

one physical architecture for all products
single product instance in production
complex variation management
significant reuse of components
difficult to deal with variation in quality
requirements
regression testing for all products for all changes
jason@miles.no

*

@miles_no
alternative 3: software product lines
FP
SU
Felles

common logical architecture for all products
separate product instances in production
reuse of knowledge
explicit variation management: functional and
quality requirements
explicit reuse of components
requires more architecture investment
jason@miles.no

*

@miles_no
jason@miles.no

* summary.
* notice when and how you explicitly handle
variation (or not at all)

@miles_no
what

jason@miles.no

* all about product lines in general
*

@miles_no
jason@miles.no

@miles_no

* all about product lines in general
* architecture astronaut definition but there are
actually many that use it successfully in practice
** Nokia
** GM car software
** etc
jason@miles.no

@miles_no

* variation in software products directly linked to
business case that can be build a business model
around products.
* easy in the embedded domain but not as common
in the enterprise domain
jason@miles.no

@miles_no

* long term goal is to achieve this
* not necessarily how you start
* can't forget the management and organisation
Domain
Engineering

Application
Engineering

jason@miles.no

@miles_no

* core asset development = domain engineering
* product development based on assets =
application engineering
jason@miles.no

* not just component reuse
* all the artefacts in the dev lifecycle

@miles_no
jason@miles.no

@miles_no

* requires architecture investment and you wont get
the payback on the first system
* There are alternatives. Ex: huge developer base
in india
how

jason@miles.no

@miles_no

* variation analysis
* variation points in the architecture
* variation guide to describe how to deal with the
variations in technology
how

jason@miles.no

@miles_no

* Need to consider the approach from two
dimensions:
** product, process and organisation
** setting the context, getting started, working longterm
how

jason@miles.no

@miles_no

* example activities you can do in all these areas.
** we looked at each of these to understand the
ones that were the most relevant and pressing
BDUF or agile software product lines?

jason@miles.no

* Do you have to do all this upfront?
* we started reactive but are moving to more
incremental.
** focus on analysis on variation rather than
building components

@miles_no
how

jason@miles.no

@miles_no

* variation analysis
* variation points in the architecture
* variation guide to describe how to deal with the
variations in technology
variation points in the architecture

For our case management
domain:
variation in process
variation in domain model
variation in presentation
variation in legislation
variation in integration with
external actors

jason@miles.no

@miles_no

* domain analysis to find the commonalities and
variations
* feature models are a popular technique
* what we have been focussing on in case
management
variation guide
. domain model

. rule templates

. java component integration

. service level integration

jason@miles.no

@miles_no

* how do you solve each of the variation point types
in technology
* some variation will disappear by simply analysing
it with the business team and they realise that its
unnecessary - harmonisation
* separate bounded contexts for the legislation
domain and user facts domains
most facts become value objects that can be
handled with collections
domain model structure is less dependent of
variation
soft-schema document based persistence
* sprint contexts for java component integration
* SOAP service integration handled with WSAddressing because of the cloud infrastructure
Jones, Lawrence G., and Linda M. Northrop. 2010.
“Clearing the Way for Software Product Line Success.”
IEEE Software 27 (3) (June).

. selling the business case
. getting product owner(s) / domain experts to think
across products
. project organisation structure for common
components and product development
. how do you defne user stories and other
requirements?
. how much upfront design?
. SPL for enterprisey software rather than
embedded systems
jason@miles.no

@miles_no

* many known pitfalls which are good to keep in
mind
* we've had to deal with the following already
summary
. is variation inherent to the business domain?
. are there enough products to justify payof with a
product line approach?
. analyse the variation
. design the architecture wrt commonalities and
variations
. develop a variation guide for combining common
assets and product-specifc variants
. don't forget the non-architecture challenges
jason@miles.no

* When is it relevant?
* How do you go about it?

@miles_no
more info
http://splc.net

http://www.sei.cmu.edu/productlines/tools/framework/

●

slides and images liberally
stolen reused from
http://www.sei.cmu.edu/library/assets/spl-essentials.pdf

jason@miles.no

@miles_no

* the framework has all the basic info you need to
get started
* Product line conference exist and the website has
a nice set of case studies (HoF)

More Related Content

What's hot

TOGAF Classroom Series - M3 intro-adm
TOGAF Classroom Series - M3 intro-admTOGAF Classroom Series - M3 intro-adm
TOGAF Classroom Series - M3 intro-admCuneyt Kaya
 
Technical non-technical-requirement-of-cots-selection
Technical non-technical-requirement-of-cots-selectionTechnical non-technical-requirement-of-cots-selection
Technical non-technical-requirement-of-cots-selectionSaransh Garg
 
Caught in a COTS Project - Strategies for Requirements Success 2011MAY17
Caught in a COTS Project - Strategies for Requirements Success 2011MAY17Caught in a COTS Project - Strategies for Requirements Success 2011MAY17
Caught in a COTS Project - Strategies for Requirements Success 2011MAY17Michael Roy
 
Architecture support for component
Architecture support for component Architecture support for component
Architecture support for component Saransh Garg
 
Requirements wiederverwenden am Beispiel Jama
Requirements wiederverwenden am Beispiel JamaRequirements wiederverwenden am Beispiel Jama
Requirements wiederverwenden am Beispiel Jamapd7.group
 
Requirements management and IBM Rational Jazz solutions
Requirements management and IBM Rational Jazz solutionsRequirements management and IBM Rational Jazz solutions
Requirements management and IBM Rational Jazz solutionsIBM Rational software
 
IBM Rational Developer for System z Quick Start Sales Presentation
IBM Rational Developer for System z Quick Start Sales PresentationIBM Rational Developer for System z Quick Start Sales Presentation
IBM Rational Developer for System z Quick Start Sales PresentationIBM Rational software
 
Define and Manage Requirements with IBM Rational Requirements Composer
Define and Manage Requirements with IBM Rational Requirements ComposerDefine and Manage Requirements with IBM Rational Requirements Composer
Define and Manage Requirements with IBM Rational Requirements ComposerAlan Kan
 
Factors to consider when starting a brand-new requirements management project...
Factors to consider when starting a brand-new requirements management project...Factors to consider when starting a brand-new requirements management project...
Factors to consider when starting a brand-new requirements management project...IBM Rational software
 
Architecting and Designing Enterprise Applications
Architecting and Designing Enterprise ApplicationsArchitecting and Designing Enterprise Applications
Architecting and Designing Enterprise ApplicationsGem WeBlog
 
Software Engineering unit 5
Software Engineering unit 5Software Engineering unit 5
Software Engineering unit 5Abhimanyu Mishra
 
Unified Process
Unified ProcessUnified Process
Unified Processguy_davis
 
System Architect and Rhapsody
System Architect and RhapsodySystem Architect and Rhapsody
System Architect and RhapsodyMartin Owen
 
Modern Requirements Tools: Advantages & Applications
Modern Requirements Tools: Advantages & ApplicationsModern Requirements Tools: Advantages & Applications
Modern Requirements Tools: Advantages & Applicationspd7.group
 

What's hot (20)

TOGAF Classroom Series - M3 intro-adm
TOGAF Classroom Series - M3 intro-admTOGAF Classroom Series - M3 intro-adm
TOGAF Classroom Series - M3 intro-adm
 
Technical non-technical-requirement-of-cots-selection
Technical non-technical-requirement-of-cots-selectionTechnical non-technical-requirement-of-cots-selection
Technical non-technical-requirement-of-cots-selection
 
Caught in a COTS Project - Strategies for Requirements Success 2011MAY17
Caught in a COTS Project - Strategies for Requirements Success 2011MAY17Caught in a COTS Project - Strategies for Requirements Success 2011MAY17
Caught in a COTS Project - Strategies for Requirements Success 2011MAY17
 
Software models
Software modelsSoftware models
Software models
 
Lecture 4
Lecture 4Lecture 4
Lecture 4
 
Architecture support for component
Architecture support for component Architecture support for component
Architecture support for component
 
Sda 6
Sda   6Sda   6
Sda 6
 
Requirements wiederverwenden am Beispiel Jama
Requirements wiederverwenden am Beispiel JamaRequirements wiederverwenden am Beispiel Jama
Requirements wiederverwenden am Beispiel Jama
 
Requirements management and IBM Rational Jazz solutions
Requirements management and IBM Rational Jazz solutionsRequirements management and IBM Rational Jazz solutions
Requirements management and IBM Rational Jazz solutions
 
IBM Rational Developer for System z Quick Start Sales Presentation
IBM Rational Developer for System z Quick Start Sales PresentationIBM Rational Developer for System z Quick Start Sales Presentation
IBM Rational Developer for System z Quick Start Sales Presentation
 
Define and Manage Requirements with IBM Rational Requirements Composer
Define and Manage Requirements with IBM Rational Requirements ComposerDefine and Manage Requirements with IBM Rational Requirements Composer
Define and Manage Requirements with IBM Rational Requirements Composer
 
Factors to consider when starting a brand-new requirements management project...
Factors to consider when starting a brand-new requirements management project...Factors to consider when starting a brand-new requirements management project...
Factors to consider when starting a brand-new requirements management project...
 
Architecting and Designing Enterprise Applications
Architecting and Designing Enterprise ApplicationsArchitecting and Designing Enterprise Applications
Architecting and Designing Enterprise Applications
 
Software Engineering unit 5
Software Engineering unit 5Software Engineering unit 5
Software Engineering unit 5
 
Unified Process
Unified ProcessUnified Process
Unified Process
 
Vineel presentation
Vineel presentationVineel presentation
Vineel presentation
 
RAD Model
RAD ModelRAD Model
RAD Model
 
Course summary
Course summaryCourse summary
Course summary
 
System Architect and Rhapsody
System Architect and RhapsodySystem Architect and Rhapsody
System Architect and Rhapsody
 
Modern Requirements Tools: Advantages & Applications
Modern Requirements Tools: Advantages & ApplicationsModern Requirements Tools: Advantages & Applications
Modern Requirements Tools: Advantages & Applications
 

Viewers also liked

Software Product Line
Software Product LineSoftware Product Line
Software Product LineHimanshu
 
Product Line Engineering Meets PLM
Product Line Engineering Meets PLMProduct Line Engineering Meets PLM
Product Line Engineering Meets PLMAras
 
Easy introduction to Blockchain
Easy introduction to BlockchainEasy introduction to Blockchain
Easy introduction to BlockchainJason Baragry
 
A Software Product Line for Modular Robots
A Software Product Line for Modular RobotsA Software Product Line for Modular Robots
A Software Product Line for Modular RobotsUlrik Schultz
 
Toolbox of techniques for Architecture Reviews
Toolbox of techniques for Architecture ReviewsToolbox of techniques for Architecture Reviews
Toolbox of techniques for Architecture ReviewsJason Baragry
 
A parallel evolutionary algorithm for prioritized pairwise testing of softwar...
A parallel evolutionary algorithm for prioritized pairwise testing of softwar...A parallel evolutionary algorithm for prioritized pairwise testing of softwar...
A parallel evolutionary algorithm for prioritized pairwise testing of softwar...Javier Ferrer, PhD
 
Reverse Engineering Feature Models from Software Configurations
Reverse Engineering Feature Models from Software ConfigurationsReverse Engineering Feature Models from Software Configurations
Reverse Engineering Feature Models from Software ConfigurationsRa'Fat Al-Msie'deen
 
Software architecture styles families_research_gssi_nov2013
Software architecture styles families_research_gssi_nov2013Software architecture styles families_research_gssi_nov2013
Software architecture styles families_research_gssi_nov2013Henry Muccini
 
Software product line
Software product lineSoftware product line
Software product lineHimanshu
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processesMajong DevJfu
 
List of Software Development Model and Methods
List of Software Development Model and MethodsList of Software Development Model and Methods
List of Software Development Model and MethodsRiant Soft
 

Viewers also liked (11)

Software Product Line
Software Product LineSoftware Product Line
Software Product Line
 
Product Line Engineering Meets PLM
Product Line Engineering Meets PLMProduct Line Engineering Meets PLM
Product Line Engineering Meets PLM
 
Easy introduction to Blockchain
Easy introduction to BlockchainEasy introduction to Blockchain
Easy introduction to Blockchain
 
A Software Product Line for Modular Robots
A Software Product Line for Modular RobotsA Software Product Line for Modular Robots
A Software Product Line for Modular Robots
 
Toolbox of techniques for Architecture Reviews
Toolbox of techniques for Architecture ReviewsToolbox of techniques for Architecture Reviews
Toolbox of techniques for Architecture Reviews
 
A parallel evolutionary algorithm for prioritized pairwise testing of softwar...
A parallel evolutionary algorithm for prioritized pairwise testing of softwar...A parallel evolutionary algorithm for prioritized pairwise testing of softwar...
A parallel evolutionary algorithm for prioritized pairwise testing of softwar...
 
Reverse Engineering Feature Models from Software Configurations
Reverse Engineering Feature Models from Software ConfigurationsReverse Engineering Feature Models from Software Configurations
Reverse Engineering Feature Models from Software Configurations
 
Software architecture styles families_research_gssi_nov2013
Software architecture styles families_research_gssi_nov2013Software architecture styles families_research_gssi_nov2013
Software architecture styles families_research_gssi_nov2013
 
Software product line
Software product lineSoftware product line
Software product line
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes
 
List of Software Development Model and Methods
List of Software Development Model and MethodsList of Software Development Model and Methods
List of Software Development Model and Methods
 

Similar to Software Product Lines

Agile Product Owner in Wonderland!
Agile Product Owner in Wonderland!Agile Product Owner in Wonderland!
Agile Product Owner in Wonderland!Tathagat Varma
 
10 Things You Should Know About MDD
10 Things You Should Know About MDD10 Things You Should Know About MDD
10 Things You Should Know About MDDJohan den Haan
 
Modern development paradigms
Modern development paradigmsModern development paradigms
Modern development paradigmsIvano Malavolta
 
[2016/2017] Modern development paradigms
[2016/2017] Modern development paradigms [2016/2017] Modern development paradigms
[2016/2017] Modern development paradigms Ivano Malavolta
 
1. object oriented concepts & principles
1. object oriented concepts & principles 1. object oriented concepts & principles
1. object oriented concepts & principles poonam bora
 
hARDwARE rng
hARDwARE rnghARDwARE rng
hARDwARE rngJeff Ma
 
Future proof event on 13 sept 18 - Innovation & IP - by Bagaar & Gevers
Future proof event on 13 sept 18 - Innovation & IP - by Bagaar & GeversFuture proof event on 13 sept 18 - Innovation & IP - by Bagaar & Gevers
Future proof event on 13 sept 18 - Innovation & IP - by Bagaar & GeversDavid Gillain
 
Canadian Experts Discuss Modern Data Stacks and Cloud Computing for 5 Years o...
Canadian Experts Discuss Modern Data Stacks and Cloud Computing for 5 Years o...Canadian Experts Discuss Modern Data Stacks and Cloud Computing for 5 Years o...
Canadian Experts Discuss Modern Data Stacks and Cloud Computing for 5 Years o...Daniel Zivkovic
 
How to Best Develop a Product by PlateRate Founder
How to Best Develop a Product by PlateRate FounderHow to Best Develop a Product by PlateRate Founder
How to Best Develop a Product by PlateRate FounderProduct School
 
A Case for Outside-In Design
A Case for Outside-In DesignA Case for Outside-In Design
A Case for Outside-In DesignSandro Mancuso
 
Max Poliashenko - Enterprise Product Architecture
Max Poliashenko - Enterprise Product ArchitectureMax Poliashenko - Enterprise Product Architecture
Max Poliashenko - Enterprise Product Architectureiasaglobal
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software EngineeringSaqib Raza
 
Managing Complexity and Change with Scalable Software Design
Managing Complexity and Change with Scalable Software DesignManaging Complexity and Change with Scalable Software Design
Managing Complexity and Change with Scalable Software Designlbergmans
 
Domain Driven Design Introduction
Domain Driven Design IntroductionDomain Driven Design Introduction
Domain Driven Design Introductionwojtek_s
 
Notes on software engineering
Notes on software engineeringNotes on software engineering
Notes on software engineeringErtan Deniz
 
Does the Cloud Change Anything? What can be learned from the Changing Enterpr...
Does the Cloud Change Anything? What can be learned from the Changing Enterpr...Does the Cloud Change Anything? What can be learned from the Changing Enterpr...
Does the Cloud Change Anything? What can be learned from the Changing Enterpr...Flexera
 
PLA and the SC 2002-04-15
PLA and the SC 2002-04-15PLA and the SC 2002-04-15
PLA and the SC 2002-04-15Jay van Zyl
 

Similar to Software Product Lines (20)

Agile Product Owner in Wonderland!
Agile Product Owner in Wonderland!Agile Product Owner in Wonderland!
Agile Product Owner in Wonderland!
 
branch_architecture
branch_architecturebranch_architecture
branch_architecture
 
10 Things You Should Know About MDD
10 Things You Should Know About MDD10 Things You Should Know About MDD
10 Things You Should Know About MDD
 
Modern development paradigms
Modern development paradigmsModern development paradigms
Modern development paradigms
 
[2016/2017] Modern development paradigms
[2016/2017] Modern development paradigms [2016/2017] Modern development paradigms
[2016/2017] Modern development paradigms
 
1. object oriented concepts & principles
1. object oriented concepts & principles 1. object oriented concepts & principles
1. object oriented concepts & principles
 
hARDwARE rng
hARDwARE rnghARDwARE rng
hARDwARE rng
 
Future proof event on 13 sept 18 - Innovation & IP - by Bagaar & Gevers
Future proof event on 13 sept 18 - Innovation & IP - by Bagaar & GeversFuture proof event on 13 sept 18 - Innovation & IP - by Bagaar & Gevers
Future proof event on 13 sept 18 - Innovation & IP - by Bagaar & Gevers
 
Canadian Experts Discuss Modern Data Stacks and Cloud Computing for 5 Years o...
Canadian Experts Discuss Modern Data Stacks and Cloud Computing for 5 Years o...Canadian Experts Discuss Modern Data Stacks and Cloud Computing for 5 Years o...
Canadian Experts Discuss Modern Data Stacks and Cloud Computing for 5 Years o...
 
How to Best Develop a Product by PlateRate Founder
How to Best Develop a Product by PlateRate FounderHow to Best Develop a Product by PlateRate Founder
How to Best Develop a Product by PlateRate Founder
 
CV_Vadivu
CV_VadivuCV_Vadivu
CV_Vadivu
 
A Case for Outside-In Design
A Case for Outside-In DesignA Case for Outside-In Design
A Case for Outside-In Design
 
Max Poliashenko - Enterprise Product Architecture
Max Poliashenko - Enterprise Product ArchitectureMax Poliashenko - Enterprise Product Architecture
Max Poliashenko - Enterprise Product Architecture
 
SAP_ABAP_5+_YEARS_EXPERIENCE
SAP_ABAP_5+_YEARS_EXPERIENCESAP_ABAP_5+_YEARS_EXPERIENCE
SAP_ABAP_5+_YEARS_EXPERIENCE
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Managing Complexity and Change with Scalable Software Design
Managing Complexity and Change with Scalable Software DesignManaging Complexity and Change with Scalable Software Design
Managing Complexity and Change with Scalable Software Design
 
Domain Driven Design Introduction
Domain Driven Design IntroductionDomain Driven Design Introduction
Domain Driven Design Introduction
 
Notes on software engineering
Notes on software engineeringNotes on software engineering
Notes on software engineering
 
Does the Cloud Change Anything? What can be learned from the Changing Enterpr...
Does the Cloud Change Anything? What can be learned from the Changing Enterpr...Does the Cloud Change Anything? What can be learned from the Changing Enterpr...
Does the Cloud Change Anything? What can be learned from the Changing Enterpr...
 
PLA and the SC 2002-04-15
PLA and the SC 2002-04-15PLA and the SC 2002-04-15
PLA and the SC 2002-04-15
 

Recently uploaded

Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 

Recently uploaded (20)

Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 

Software Product Lines

  • 1. software product lines aka: product line architecture product family engineering ... jason@miles.no @miles_no
  • 3. your problem to solve: design the solution architecture for standardised case management for all employment and social security benefts in Norway (26 → 40 benefts) Enterprise Architect: “They all follow the same business process!” Domain Expert: “They are all diferent!” Case Handlers: “They all have to look for the same to us!” jason@miles.no @miles_no
  • 4. “On the design and development of Program Families” - Parnas, 1976 Alternatives: - Reference Architecture - One-size-fts-all - Software Product Line jason@miles.no @miles_no
  • 5. core problem: must understand the nature of variability in your problem domain Structural (Essential) Incidental (Accidental) jason@miles.no inherent in the problem domain - business wants to offer a set of products - product differentiation is a competitive advantage purely technical - technical debt - different development teams - etc @miles_no
  • 6. alternative 1: reference architecture SU SP FP common logical architecture for all products separate product instances in production reuse of knowledge opportunistic reuse of components no explicit variation management jason@miles.no @miles_no
  • 7. alternative 2: one-size-fits-all SU SP FP one physical architecture for all products single product instance in production complex variation management significant reuse of components difficult to deal with variation in quality requirements regression testing for all products for all changes jason@miles.no @miles_no
  • 8. alternative 3: software product lines FP SU Felles common logical architecture for all products separate product instances in production reuse of knowledge explicit variation management: functional and quality requirements explicit reuse of components requires more architecture investment jason@miles.no @miles_no
  • 20. BDUF or agile software product lines? jason@miles.no @miles_no
  • 22. variation points in the architecture For our case management domain: variation in process variation in domain model variation in presentation variation in legislation variation in integration with external actors jason@miles.no @miles_no
  • 23. variation guide . domain model . rule templates . java component integration . service level integration jason@miles.no @miles_no
  • 24. Jones, Lawrence G., and Linda M. Northrop. 2010. “Clearing the Way for Software Product Line Success.” IEEE Software 27 (3) (June). . selling the business case . getting product owner(s) / domain experts to think across products . project organisation structure for common components and product development . how do you defne user stories and other requirements? . how much upfront design? . SPL for enterprisey software rather than embedded systems jason@miles.no @miles_no
  • 25. summary . is variation inherent to the business domain? . are there enough products to justify payof with a product line approach? . analyse the variation . design the architecture wrt commonalities and variations . develop a variation guide for combining common assets and product-specifc variants . don't forget the non-architecture challenges jason@miles.no @miles_no
  • 26. more info http://splc.net http://www.sei.cmu.edu/productlines/tools/framework/ ● slides and images liberally stolen reused from http://www.sei.cmu.edu/library/assets/spl-essentials.pdf jason@miles.no @miles_no
  • 27. software product lines aka: product line architecture product family engineering ... jason@miles.no @miles_no * will talk about product lines * illustrate concepts with the modernisation of case management at NAV
  • 28. why jason@miles.no @miles_no * start with the why and compare it to other techniques * then look at what is a SPL * and then how we have been going about it
  • 29. your problem to solve: design the solution architecture for standardised case management for all employment and social security benefts in Norway (26 → 40 benefts) Enterprise Architect: “They all follow the same business process!” Domain Expert: “They are all diferent!” Case Handlers: “They all have to look for the same to us!” jason@miles.no @miles_no * how do you design the architecture for a while set of solutions? * all the solutions have many things in common but there is considerable variability * nobody is too sure what that variability is, nor what can be standardised
  • 30. “On the design and development of Program Families” - Parnas, 1976 Alternatives: - Reference Architecture - One-size-fts-all - Software Product Line jason@miles.no @miles_no * lots of research and industry experience on dealing with variability in software architecture * long history of dealing with Product Families * variations in functionality * variations in support for quality requirements * all that background shows three main alternatives
  • 31. core problem: must understand the nature of variability in your problem domain Structural (Essential) Incidental (Accidental) jason@miles.no inherent in the problem domain - business wants to offer a set of products - product differentiation is a competitive advantage purely technical - technical debt - different development teams - etc @miles_no * before you can analyse which alternative is relevant for you, you need to understand the nature of variation * Is it Essential or Accidental?
  • 32. alternative 1: reference architecture SU SP FP common logical architecture for all products separate product instances in production reuse of knowledge opportunistic reuse of components no explicit variation management jason@miles.no * @miles_no
  • 33. alternative 2: one-size-fits-all SU SP FP one physical architecture for all products single product instance in production complex variation management significant reuse of components difficult to deal with variation in quality requirements regression testing for all products for all changes jason@miles.no * @miles_no
  • 34. alternative 3: software product lines FP SU Felles common logical architecture for all products separate product instances in production reuse of knowledge explicit variation management: functional and quality requirements explicit reuse of components requires more architecture investment jason@miles.no * @miles_no
  • 35. jason@miles.no * summary. * notice when and how you explicitly handle variation (or not at all) @miles_no
  • 36. what jason@miles.no * all about product lines in general * @miles_no
  • 37. jason@miles.no @miles_no * all about product lines in general * architecture astronaut definition but there are actually many that use it successfully in practice ** Nokia ** GM car software ** etc
  • 38. jason@miles.no @miles_no * variation in software products directly linked to business case that can be build a business model around products. * easy in the embedded domain but not as common in the enterprise domain
  • 39. jason@miles.no @miles_no * long term goal is to achieve this * not necessarily how you start * can't forget the management and organisation
  • 40. Domain Engineering Application Engineering jason@miles.no @miles_no * core asset development = domain engineering * product development based on assets = application engineering
  • 41. jason@miles.no * not just component reuse * all the artefacts in the dev lifecycle @miles_no
  • 42. jason@miles.no @miles_no * requires architecture investment and you wont get the payback on the first system * There are alternatives. Ex: huge developer base in india
  • 43. how jason@miles.no @miles_no * variation analysis * variation points in the architecture * variation guide to describe how to deal with the variations in technology
  • 44. how jason@miles.no @miles_no * Need to consider the approach from two dimensions: ** product, process and organisation ** setting the context, getting started, working longterm
  • 45. how jason@miles.no @miles_no * example activities you can do in all these areas. ** we looked at each of these to understand the ones that were the most relevant and pressing
  • 46. BDUF or agile software product lines? jason@miles.no * Do you have to do all this upfront? * we started reactive but are moving to more incremental. ** focus on analysis on variation rather than building components @miles_no
  • 47. how jason@miles.no @miles_no * variation analysis * variation points in the architecture * variation guide to describe how to deal with the variations in technology
  • 48. variation points in the architecture For our case management domain: variation in process variation in domain model variation in presentation variation in legislation variation in integration with external actors jason@miles.no @miles_no * domain analysis to find the commonalities and variations * feature models are a popular technique * what we have been focussing on in case management
  • 49. variation guide . domain model . rule templates . java component integration . service level integration jason@miles.no @miles_no * how do you solve each of the variation point types in technology * some variation will disappear by simply analysing it with the business team and they realise that its unnecessary - harmonisation * separate bounded contexts for the legislation domain and user facts domains most facts become value objects that can be handled with collections domain model structure is less dependent of variation soft-schema document based persistence * sprint contexts for java component integration * SOAP service integration handled with WSAddressing because of the cloud infrastructure
  • 50. Jones, Lawrence G., and Linda M. Northrop. 2010. “Clearing the Way for Software Product Line Success.” IEEE Software 27 (3) (June). . selling the business case . getting product owner(s) / domain experts to think across products . project organisation structure for common components and product development . how do you defne user stories and other requirements? . how much upfront design? . SPL for enterprisey software rather than embedded systems jason@miles.no @miles_no * many known pitfalls which are good to keep in mind * we've had to deal with the following already
  • 51. summary . is variation inherent to the business domain? . are there enough products to justify payof with a product line approach? . analyse the variation . design the architecture wrt commonalities and variations . develop a variation guide for combining common assets and product-specifc variants . don't forget the non-architecture challenges jason@miles.no * When is it relevant? * How do you go about it? @miles_no
  • 52. more info http://splc.net http://www.sei.cmu.edu/productlines/tools/framework/ ● slides and images liberally stolen reused from http://www.sei.cmu.edu/library/assets/spl-essentials.pdf jason@miles.no @miles_no * the framework has all the basic info you need to get started * Product line conference exist and the website has a nice set of case studies (HoF)