SlideShare a Scribd company logo
Software Product Lines


     Paolo Ciancarini
Agenda

•  Design for reuse
•  Software product lines
•  Organizational strategies
Motivation
Complexity, size, and number of software-
intensive systems a major problem for
software companies
•  routine functionality is custom-written repeatedly
   from scratch, over and over
•  a quagmire of data formats and applications
•  ambiguities and interoperability conflicts not only
   across different companies but even among
   groups within the same company
Family of systems
There is a need to
•  reduce the development effort
•  increase productivity
moving from designing single products to producing
engineering families of products
•  identifying generic solutions to common problems
•  building related products by assembling components
•  providing universal platforms
•  synthesizing systems automatically
Product Line Architecture (PLA)
Product Line Architecture:
a common design framework that
•  standardizes & maximizes reuse potential of all
 software artifacts generated during development
 -  these artifacts include requirements, designs and
    patterns, and, of course, actual code components
•  specifies common functionality across systems
•  clearly identifies variation points
Capturing PLA
•  Common core: features common to all products
•  FA: features specific to product A
•  FB: features specific to product B
•  Product A = Common core + FA
•  Product B = Common core + FB



    Common          FA             Common           FB
      core                           core
        Product A                       Product B
Lessons from other industries

•  Any customer can have     Any customer can
   a car painted any         have a car painted
   colour that he wants so   any colour that he
   long as it is black” -    wants so long as it is
   Henry Ford                black”
                                  Henry Ford
Architecture and standard components
Architecture was
 simple and flexible



Built from standard parts
Standards and diversity
What varied?
 Use features to satisfy diversity of needs
Why it worked?
 Standard architecture and common parts
What resulted?
 Product and assembly lines
The role of architecture in sw
Component based development
Software factories exploit component-based
development (CBD)
•  They engineer applications by composing
   prefabricated components in the hope that this
   will increase software reuse
•  Strategy: building software systematically and
   opportunistically exploting reference
   architectures about a domain and competitive
   knowledge for systems in that domain
Domain
What is a domain?
•  Area of expertise with specialized particular tasks
•  Populated by products with reusable structures

Example: software for a car
•  Console
•  Engine
•  Brakes
•  …
Domains vs product lines
 Domains are in the problem space, product
 lines are in the solution space

•  Domain                 •  Product line
•  Consumer electronics   •  Philips Digital TVs
•  Avionics               •  Boeing 747 Family
•  Compilers              •  GNU compiler suite
•  Videogames             •  Games using the
                           same engine
Multimedia Product Line
  VCR Features:"
  •  Play Tape"
                          Answering machine Features:"
  •  Rewind Tape"
                          •  Play Announcement"
  •  Forward Tape"
                          •  Record Announcement"
  •  Button Control"
                          •  Rewind Announcement"
  •  Signal Handling"
                          •  Play Message"
                          •  Record Message"
                          •  Rewind Message"
                          •  Forward Message"
Audio Player Features "   •  Display Messages"
•  Play Tape"             •  Button Control"
•  Record Tape"           •  Signal Handling"
•  Rewind Tape"
•  Forward Tape"
•  Button Control"
•  Signal Handling"
Product lines

•  Product line technology builds families of products
   exploiting some common core assets and
   managing their variability
•  Ex.: Boeing 757 e 767 share 60% of components
•  Ex.: Mercedes Benz class E models share 70%
•  Scale economies and efficiency
•  Integrating rather than creating
Software reuse
Why is software reuse critical?
•  provides predictable behavior (better testing)
•  enables shorter delivery timeframes
•  reduces repeated building from scratch of
 common functionality
History of the concept dated back to 1950 s
•  subroutine libraries
•  standardized class libraries
Old ways to reusing software
Old definitions of sw reuse include:
•  Re-use is considered as a means to support the
  construction of new programs using in a
  systematical way existing designs, design
  fragments, program texts, documentation, or
  other forms of program representation.
•  Reusability is the extent to which a software
  component can be used (with or without
  adaptation) in multiple problem solutions.
Reusable assets

          Reference       Design
          Architecture    Pattern

          Legacy          Architectural
          Application     Mechanism

          Pattern         Packaged
          Language        Application

          Development     Reference
          Method          Model

          Architectural   Programming
          Decision        Pattern

          Pattern         Component
                          Library

          Component       Architectural
                          Pattern

          Architectural   Application
          Style           Framework
Reuse
Reuse aspects
•  It is not an end in itself but a means to increase
   productivity and improve quality
•  Reusable components are not limited to code
•  Software components may need adaptation
 -  Adaptive design            Community & Enterprise Information Portals

 -  Variant design
                           Health                                  ••• other vertical
•  Horizontal and           Care
                                        Financial      Insurance
                                                                            domains

 vertical reuse                      E-Business facilities              ••• other
                           (Appl. dev., Intelligence, Integration, …)   facilities

                                    Metamodel Interoperability                 •••
                                    Distributed Run-time Middleware
Benefits
By planning ahead in support of families of
multiple systems, an organization
•  reduces the development time and cost of new
   products
•  reduces risk and improves quality
•  manages its legacy assets more efficiently
•  evolves a common marketing strategy
•  makes decisions based on the (value of) the
   asset base and the strategic goals
Software product lines (SPL)
Definition by Clemens and Northrop (SEI, 2002):
•  A set of software-intensive systems that share a
   common, managed set of features satisfying the
   specific needs of a particular market segment
•  They are developed from a common set of core
   assets in a prescribed way

•  Example: software for TV sets (Philips)
SPL metamodel




      Product lines
      -  Exploit commonality
      -  Bound variability
Why SPL work?
Product lines amortize the investment in these core assets:
•  requirements (and requirements analysis)
•  domain models
•  software architecture (and design)
•  performance engineering
•  documentation
•  test plans, test cases, and test data
•  people: their knowledge and skills
•  processes, methods, and tools
•  budgets, schedules, and work plans
•  components and services
A few success stories
•  Celsius tech: family of naval command and control systems
•  Ericsson AXE: family of telecommunications switches
•  Lucent Technologies: 5ESS telecom switch
•  US Naval Undersea Warfare Center: A-7°
•  SALION: Acquisition Management Systems
•  Toshiba: Electric Power Generation Plant
•  BOEING: Bold Stroke Avionics SW Family
•  BOSCH: Gasoline Systems
•  CUMMINS Inc.: Diesel SPL
•  LSI: RAID controller firmware SPL
•  GM: General Motors Powertrain (GMPT)
•  PHILIPS: Medical Systems
•  Nokia: mobile phones
SPL issues
•  ROI: when are they convenient?
•  Organization of work
•  Domain engineering and scoping
•  Design for reuse of commonality
•  Control of variability
ROI of SPL



             ROI
ROI of SPL
Convenience of Product Lines




             29
Key concepts
Organization by product lines




                       (from Krueger 2009)
Single system perspective




                    (from Krueger 2009)
Product Line Engineering
PL Engineering uses domain-driven, model-
based methodology for building software
•  Two complementary processes
 -  Modeling (domain engineering)
 -  Development (applications engineering)
Product Line Engineering
              Domain Engineering Experts	

                                                                              "
                                                                          Technology"
                 Domain Experts &	





                                                               1. Modeling (Domain Engineering,
                                                 Domain
            a.k.a Design-for-Reuse)"
                                                knowledge"        Refers to original design, i.e.,

                                                                    the use of first principles"
                                                                                "
                                                                             Solution 

                                                                             models"
Domain Experts &	

 IT technicians	





                                                  New
                                             Domain Expert	

                                              requirements"Development (Application Engineering, 

                                                        2.
                                                                   a.k.a design-with-Reuse)"           Product"
                                                                 refers to routine practice, i.e., 

                                                                   the use of known solutions"
Reusable assets
Reuse in general needs to be planned for
•  create a reusable asset, i.e. one that is fully
   documented, has good code and robust scripts;
   is verified independently with high confidence
•  create a usable asset, i.e. one that is adaptable
   and that is usable in a variety of simulators
Design for reuse/use involves
•  analysis to identify explicitly variations to
   anticipate adaptations, and
•  design for adaptability, engineered a priori to
   create assets for future developments
Problems
Design for commonality
•  standardizing assets by encapsulating common
 features
Analysis of variation
•  must explicitly identify variations that anticipate
 adaptations
Control of variability
•  provide assets flexibility without compromising
 commonality
Levels of reuse
•  Domain-independent components
 -  Designed for reuse to fit any product (e.g., general
    purpose class libraries)
•  Domain-specific components
 -  Designed for reuse to fit several different products in a
    given market (e.g., multi-media, jpeg encoders, data
    communications, digital signal processing, ...)
•  Product-specific components
 -  Designed for reuse within a specific application (to
    generate various instances or products)
SPL: main issues
There are several issues to consider
•  Scoping the SPL (i.e. identify domain and
   assets)
•  Define a reference architecture
•  Define a PLA
•  Identification of reusable components at the
   appropriate level of abstraction
•  Variability management
•  Architectural compliance
•  SPL maintenance
What is SPL scoping?
•  the initial phase of a SPL, aims to identify
   products, features, potential of the market
   domain and reusable assets
•  determines the viability of the SPL
•  maximizes the economical value of the SPL
•  Essential factors in SPL:
-  Investment
-  Management
-  Planning
-  Business strategy
                       } scoping
Traditional Engineering Model
                     Domains!
                                        Individual !
                                       applications!



      Individual !
       domains!

                                               Systems!




                                   Individual

                                implementations!
 Assets!
SPL Model
                  Domains!                                                                           Domain

                                                                                                     models!




                                                                                                                        • Variability analysis!
                                                                      <<includes>>!       Start

                                                              Startup!                 compressor!
                                                                        <<extends>>!
                                                                                   <<extends>>!
                                                                Shutdown!
                                          Operator! <<includes>>!              Alarm
     <<includes>>!
                                                                                                     Plant!
                                                                             detected!
                                                           Remote!                          Operate!
                                                          Shutdown!           <<extends>>!
                                                                 <<includes>>!             <<includes>>!
                                      Local!     Remote!                   <<includes>>!
                                                               Local

                                                             Shutdown!                   Stop

                                                                                      compressor!




                                                                                                                        • Features!
                                                                  2                                        2 CapsuleC
                                       CapsuleB                                CapsuleA


                                                                      Class Diagram (domain model)


                                                                               :CapsuleA




                                          Collaboration Diagram
                                               (role model)
                                                                  :CapsuleB                     CapsuleC




                                                                                  connection
    Reusable 





                                                                                  network
                                                                  :CapsuleB                     CapsuleC



    Component!                                                                                                                            Systems!
                              Cn	

                                                                                        Cn	

                      Cn	

                               •••"                                    Cn	


                                        Cn	





Assets!          Architectural

                 Framework!
Product Lines and UML
    Domain Analysis             Problem Analysis              Solution Analysis
                           Specify basic problem         Describe implementation
Identify the entities
                           overall functionality, and    of the solution in terms of
and their relations in the
                           identify and specify system   interactions between
applications domain"
                           features"                     classes and permitted
                                                         (expected) overall system
                                                         behavior"
                               Problem Model
                               (Activity diagram)           Behavioral Model
                                                            (traces + constraints)
 Domain Model
 (class diagram)

                             Requirements Model           Implementation Model
                             (Use Case diagram)           (Collaboration diagram)
Variability in requirements
Optional requirements Cross-cutting aspects
Optional scenarios    Varying flow of events
Eriksson, Börstler,
Borg, Software
product line
modeling made
practical CACM,
Dec. 2006
A reference domain for automotive
          From Bak, Exemplar of Automotive Architecture with Variability, 2010
Software Defined Radios




•  Variation points in radio configuration,
   board configuration, software
   configuration
SDRs PL
•  By applying product line techniques to
   SDRs
•  Can manage different configurations of the radio
 -  Deploying components on alternative hosts
 -  Deployments with
   –     No waveforms
   –     One waveform
   –     Different combinations of waveforms
•  Can show radio in different states as radio starts
 up or transitions from one waveform to another
SPL according to SEI
(5th framework, 2007)
SPL according to SEI
SPL according to SEI
Two approaches to start a SPL
•  Proactive: Develop the core assets first
   •  Develop the scope first and use it as a “mission” statement.
   •  Products come to market quickly with minimum code writing.
   •  Requires upfront investment and predictive knowledge
•  Reactive: Start with one or more products
   •  From them, generate the product line core assets and then the future
      products; the scope evolves more dramatically
   •  Much lower cost of entry
   •  The architecture and other core assets must be robust, extensible, and
      appropriate to future product line needs
Summary
Product Line Architectures, rather than
single-product architectures, support
systematic reuse
•  represent recurrent requirements and
   architectures (i.e., components and interfaces)
   suitable for solving typical problems in a domain
•  depict structures for design related products and
   provide models for integrating optional/
   alternative components
•  allow engineers to come up with the right
   solutions quickly and effectively
Architecture-Centric Development Activities
Architecture-specific activities for SPL include:
•  creating the business case for the system
•  understanding the requirements
•  creating and/or selecting the architecture
•  documenting and communicating the architecture
•  analyzing or evaluating the architecture
•  implementing the system based on the architecture
•  ensuring that the implementation conforms to the
   architecture
From SA to PLA
•  Of all a product line’s core assets, the product
   line architecture is the most important one for
   ensuring technical success.
•  If an organization already uses disciplined
   practices to develop single-product software
   under the aegis of a software architecture, it is
   well poised to
    •  define a product line architecture
    •  Identify the core assets
    •  Build products from those core assets.
Test questions
•  What is a software product line?
•  What is a product line architecture?
•  What is variability management?
References
•  Clemens & Northrop, Software Product Lines, Addison Wesley, 2002
•  Gomaa, Designing SPL with UML, Addison Wesley, 2005
•  Pohl & Böckle, SPL Engineering: foundations, principles, and
   techniques, Springer 2005
•  vanderLinden & Schmid & Rommes, SPL in action, Springer, 2007
•  van Gurp & Bosch & Svahnberg, On the notion of variability in SPL,
   Conf. on Sw Architecture, 2001
•  Eriksson, Bostler, Borg, Software product line modeling made
   practical. An example from the Swedish defense industry, CACM 2006
•  Krueger & Jackson, Requirements engineering for systems and
   software product lines, White paper IBM Rationa,l 2009
Conferences
•  SPLC 2011, Munich, Germany
•  Workshop on Variability in Software Product Line
   Architectures
•  Wokshop on Product LinE Approaches in Software
   Engineering (PLEASE)
Sites
•  www.sei.cmu.edu/productlines
•  www.biglever.com
Questions?

More Related Content

What's hot

architectural design
 architectural design architectural design
architectural design
Preeti Mishra
 
Software Product Lines
Software Product LinesSoftware Product Lines
Software Product Lines
Paulo Gandra de Sousa
 
Maven Introduction
Maven IntroductionMaven Introduction
Maven Introduction
Sandeep Chawla
 
Sonarqube
SonarqubeSonarqube
Sonarqube
Kalkey
 
Pressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelsPressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelssaurabhshertukde
 
Designing and documenting software architecture unit 5
Designing and documenting software architecture unit 5Designing and documenting software architecture unit 5
Designing and documenting software architecture unit 5Sudarshan Dhondaley
 
software engineering
 software engineering software engineering
software engineering
Ahmed Elshahat Mohamed
 
Jenkins with SonarQube
Jenkins with SonarQubeJenkins with SonarQube
Jenkins with SonarQube
Somkiat Puisungnoen
 
Spring Security 5
Spring Security 5Spring Security 5
Spring Security 5
Jesus Perez Franco
 
OPC UA Inside Out, Part 1 - Introduction and Playing Field
OPC UA Inside Out, Part 1 - Introduction and Playing FieldOPC UA Inside Out, Part 1 - Introduction and Playing Field
OPC UA Inside Out, Part 1 - Introduction and Playing Field
Sadatulla Zishan
 
An introduction to the MDA
An introduction to the MDAAn introduction to the MDA
An introduction to the MDALai Ha
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework
ASG
 
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
WSO2
 
PyCon Korea 2019 REST API Document Generation
PyCon Korea 2019 REST API Document GenerationPyCon Korea 2019 REST API Document Generation
PyCon Korea 2019 REST API Document Generation
용선 이
 
Clase 2- RUP.pptx
Clase 2- RUP.pptxClase 2- RUP.pptx
Clase 2- RUP.pptx
ssuser42bf48
 
REST API Design & Development
REST API Design & DevelopmentREST API Design & Development
REST API Design & Development
Ashok Pundit
 
Software Architecture Design for Begginers
Software Architecture Design for BegginersSoftware Architecture Design for Begginers
Software Architecture Design for Begginers
Chinh Ngo Nguyen
 

What's hot (20)

architectural design
 architectural design architectural design
architectural design
 
Software Product Lines
Software Product LinesSoftware Product Lines
Software Product Lines
 
Maven Introduction
Maven IntroductionMaven Introduction
Maven Introduction
 
Sonarqube
SonarqubeSonarqube
Sonarqube
 
Pressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelsPressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-models
 
Designing and documenting software architecture unit 5
Designing and documenting software architecture unit 5Designing and documenting software architecture unit 5
Designing and documenting software architecture unit 5
 
software engineering
 software engineering software engineering
software engineering
 
Jenkins with SonarQube
Jenkins with SonarQubeJenkins with SonarQube
Jenkins with SonarQube
 
Spring Security 5
Spring Security 5Spring Security 5
Spring Security 5
 
OPC UA Inside Out, Part 1 - Introduction and Playing Field
OPC UA Inside Out, Part 1 - Introduction and Playing FieldOPC UA Inside Out, Part 1 - Introduction and Playing Field
OPC UA Inside Out, Part 1 - Introduction and Playing Field
 
An introduction to the MDA
An introduction to the MDAAn introduction to the MDA
An introduction to the MDA
 
SDLC
SDLCSDLC
SDLC
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework
 
Maven Overview
Maven OverviewMaven Overview
Maven Overview
 
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
Workflows in WSO2 API Manager - WSO2 API Manager Community Call (12/15/2021)
 
Codeigniter
CodeigniterCodeigniter
Codeigniter
 
PyCon Korea 2019 REST API Document Generation
PyCon Korea 2019 REST API Document GenerationPyCon Korea 2019 REST API Document Generation
PyCon Korea 2019 REST API Document Generation
 
Clase 2- RUP.pptx
Clase 2- RUP.pptxClase 2- RUP.pptx
Clase 2- RUP.pptx
 
REST API Design & Development
REST API Design & DevelopmentREST API Design & Development
REST API Design & Development
 
Software Architecture Design for Begginers
Software Architecture Design for BegginersSoftware Architecture Design for Begginers
Software Architecture Design for Begginers
 

Viewers also liked

Software Product Lines by Dr. Indika Kumara
Software Product Lines by Dr. Indika KumaraSoftware Product Lines by Dr. Indika Kumara
Software Product Lines by Dr. Indika Kumara
Thejan Wijesinghe
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processesMajong DevJfu
 
Software Product Line
Software Product LineSoftware Product Line
Software Product LineHimanshu
 
Software Product Lines
Software Product LinesSoftware Product Lines
Software Product Lines
Jason Baragry
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformationMajong DevJfu
 
9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA CloudMajong DevJfu
 
Using Composite Feature Models to Support Agile Software Product Line Evoluti...
Using Composite Feature Models to Support Agile Software Product Line Evoluti...Using Composite Feature Models to Support Agile Software Product Line Evoluti...
Using Composite Feature Models to Support Agile Software Product Line Evoluti...Simon Urli
 
Promise 2011: "Are Change Metrics Good Predictors for an Evolving Software Pr...
Promise 2011: "Are Change Metrics Good Predictors for an Evolving Software Pr...Promise 2011: "Are Change Metrics Good Predictors for an Evolving Software Pr...
Promise 2011: "Are Change Metrics Good Predictors for an Evolving Software Pr...
CS, NcState
 
Software product line testing in practice
Software product line testing in practiceSoftware product line testing in practice
Software product line testing in practiceJohan Hoberg
 
Industrializing Software Product Line Development for Small Companies (short ...
Industrializing Software Product Line Development for Small Companies (short ...Industrializing Software Product Line Development for Small Companies (short ...
Industrializing Software Product Line Development for Small Companies (short ...
Anton Khritankov
 
Evolving Industrial Software Architectures into a Software Product Line: A Ca...
Evolving Industrial Software Architectures into a Software Product Line: A Ca...Evolving Industrial Software Architectures into a Software Product Line: A Ca...
Evolving Industrial Software Architectures into a Software Product Line: A Ca...Heiko Koziolek
 
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
 
The Profound Value of Product Line Roadmapping
The Profound Value of Product Line RoadmappingThe Profound Value of Product Line Roadmapping
The Profound Value of Product Line Roadmapping
TheAdeptGroup
 
Product Line Engineering Meets PLM
Product Line Engineering Meets PLMProduct Line Engineering Meets PLM
Product Line Engineering Meets PLM
Aras
 
Sistemi Operativi: Meccanismi - Lezione 03
Sistemi Operativi: Meccanismi - Lezione 03Sistemi Operativi: Meccanismi - Lezione 03
Sistemi Operativi: Meccanismi - Lezione 03Majong DevJfu
 
4 Livello Ip Parte1 Color
4 Livello Ip Parte1 Color4 Livello Ip Parte1 Color
4 Livello Ip Parte1 ColorMajong DevJfu
 
esercizio sigda n 11
esercizio sigda n 11esercizio sigda n 11
esercizio sigda n 11Majong DevJfu
 
Architettura dei Calcolatori Subroutines80x86
Architettura dei Calcolatori Subroutines80x86Architettura dei Calcolatori Subroutines80x86
Architettura dei Calcolatori Subroutines80x86Majong DevJfu
 

Viewers also liked (20)

Software Product Lines by Dr. Indika Kumara
Software Product Lines by Dr. Indika KumaraSoftware Product Lines by Dr. Indika Kumara
Software Product Lines by Dr. Indika Kumara
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes
 
Software Product Line
Software Product LineSoftware Product Line
Software Product Line
 
Software Product Lines
Software Product LinesSoftware Product Lines
Software Product Lines
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation
 
9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud
 
Using Composite Feature Models to Support Agile Software Product Line Evoluti...
Using Composite Feature Models to Support Agile Software Product Line Evoluti...Using Composite Feature Models to Support Agile Software Product Line Evoluti...
Using Composite Feature Models to Support Agile Software Product Line Evoluti...
 
Promise 2011: "Are Change Metrics Good Predictors for an Evolving Software Pr...
Promise 2011: "Are Change Metrics Good Predictors for an Evolving Software Pr...Promise 2011: "Are Change Metrics Good Predictors for an Evolving Software Pr...
Promise 2011: "Are Change Metrics Good Predictors for an Evolving Software Pr...
 
Software product line testing in practice
Software product line testing in practiceSoftware product line testing in practice
Software product line testing in practice
 
Industrializing Software Product Line Development for Small Companies (short ...
Industrializing Software Product Line Development for Small Companies (short ...Industrializing Software Product Line Development for Small Companies (short ...
Industrializing Software Product Line Development for Small Companies (short ...
 
Evolving Industrial Software Architectures into a Software Product Line: A Ca...
Evolving Industrial Software Architectures into a Software Product Line: A Ca...Evolving Industrial Software Architectures into a Software Product Line: A Ca...
Evolving Industrial Software Architectures into a Software Product Line: A Ca...
 
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...
 
The Profound Value of Product Line Roadmapping
The Profound Value of Product Line RoadmappingThe Profound Value of Product Line Roadmapping
The Profound Value of Product Line Roadmapping
 
Product Line Engineering Meets PLM
Product Line Engineering Meets PLMProduct Line Engineering Meets PLM
Product Line Engineering Meets PLM
 
บทนำ วิศวกรรมซอฟต์แวร์
บทนำ วิศวกรรมซอฟต์แวร์ บทนำ วิศวกรรมซอฟต์แวร์
บทนำ วิศวกรรมซอฟต์แวร์
 
Sistemi Operativi: Meccanismi - Lezione 03
Sistemi Operativi: Meccanismi - Lezione 03Sistemi Operativi: Meccanismi - Lezione 03
Sistemi Operativi: Meccanismi - Lezione 03
 
4 Livello Ip Parte1 Color
4 Livello Ip Parte1 Color4 Livello Ip Parte1 Color
4 Livello Ip Parte1 Color
 
esercizio sigda n 11
esercizio sigda n 11esercizio sigda n 11
esercizio sigda n 11
 
3 H2 N Parte3
3 H2 N Parte33 H2 N Parte3
3 H2 N Parte3
 
Architettura dei Calcolatori Subroutines80x86
Architettura dei Calcolatori Subroutines80x86Architettura dei Calcolatori Subroutines80x86
Architettura dei Calcolatori Subroutines80x86
 

Similar to 7 - Architetture Software - Software product line

Minicourse - RiPLE : The RiSE Process for Product Line Engineering
Minicourse -  RiPLE : The RiSE Process for Product Line EngineeringMinicourse -  RiPLE : The RiSE Process for Product Line Engineering
Minicourse - RiPLE : The RiSE Process for Product Line Engineering
Vanilson Buregio
 
IBM Rational 8/16 Webinar Presentation
IBM Rational 8/16 Webinar PresentationIBM Rational 8/16 Webinar Presentation
IBM Rational 8/16 Webinar Presentation
Scott Althouse
 
Software project management
Software project managementSoftware project management
Software project management
Narendra Mishra
 
Agile MDD
Agile MDDAgile MDD
Agile MDD
fntnhd
 
Domain specific modelling (DSM)
Domain specific modelling (DSM)Domain specific modelling (DSM)
Domain specific modelling (DSM)
PG Scholar
 
Topcased
TopcasedTopcased
Topcased
Inria
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
[2016/2017] Modern development paradigms
[2016/2017] Modern development paradigms [2016/2017] Modern development paradigms
[2016/2017] Modern development paradigms
Ivano Malavolta
 
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfuppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
tubashaikh26
 
ppt_se.pdf
ppt_se.pdfppt_se.pdf
ppt_se.pdf
arpitlamba32599
 
Rhapsody reverseengineering
Rhapsody reverseengineeringRhapsody reverseengineering
Rhapsody reverseengineering
Scott Althouse
 
A Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere ToolsA Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere Tools
ghodgkinson
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES
Ivano Malavolta
 
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
ghodgkinson
 
Papyrus for System Engineering - Papyrus for Real Time v1.0
Papyrus for System Engineering - Papyrus for Real Time v1.0Papyrus for System Engineering - Papyrus for Real Time v1.0
Papyrus for System Engineering - Papyrus for Real Time v1.0
Charles Rivet
 
Vineel presentation
Vineel presentationVineel presentation
Vineel presentation
Vineel Krishnamsetty
 
Unit V.pptx
Unit V.pptxUnit V.pptx
Unit V.pptx
ODINARARCH
 

Similar to 7 - Architetture Software - Software product line (20)

Minicourse - RiPLE : The RiSE Process for Product Line Engineering
Minicourse -  RiPLE : The RiSE Process for Product Line EngineeringMinicourse -  RiPLE : The RiSE Process for Product Line Engineering
Minicourse - RiPLE : The RiSE Process for Product Line Engineering
 
IBM Rational 8/16 Webinar Presentation
IBM Rational 8/16 Webinar PresentationIBM Rational 8/16 Webinar Presentation
IBM Rational 8/16 Webinar Presentation
 
Software project management
Software project managementSoftware project management
Software project management
 
Agile MDD
Agile MDDAgile MDD
Agile MDD
 
Domain specific modelling (DSM)
Domain specific modelling (DSM)Domain specific modelling (DSM)
Domain specific modelling (DSM)
 
Topcased
TopcasedTopcased
Topcased
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
[2016/2017] Modern development paradigms
[2016/2017] Modern development paradigms [2016/2017] Modern development paradigms
[2016/2017] Modern development paradigms
 
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfuppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
ppt_se.bdfhrfykjyftiktgdukhydiyiuoyu8otrfu
 
ppt_se.pdf
ppt_se.pdfppt_se.pdf
ppt_se.pdf
 
Testing banking apps
Testing banking appsTesting banking apps
Testing banking apps
 
Rhapsody reverseengineering
Rhapsody reverseengineeringRhapsody reverseengineering
Rhapsody reverseengineering
 
A Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere ToolsA Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere Tools
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES
 
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
 
Papyrus for System Engineering - Papyrus for Real Time v1.0
Papyrus for System Engineering - Papyrus for Real Time v1.0Papyrus for System Engineering - Papyrus for Real Time v1.0
Papyrus for System Engineering - Papyrus for Real Time v1.0
 
Vineel presentation
Vineel presentationVineel presentation
Vineel presentation
 
Unit V.pptx
Unit V.pptxUnit V.pptx
Unit V.pptx
 
E3 chap-06
E3 chap-06E3 chap-06
E3 chap-06
 
Scope of software engineering
Scope of software engineeringScope of software engineering
Scope of software engineering
 

More from Majong DevJfu

5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven ArchitectureMajong DevJfu
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture PortfolioMajong DevJfu
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural stylesMajong DevJfu
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architectureMajong DevJfu
 
1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a productMajong DevJfu
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural stylesMajong DevJfu
 
25 architectural adaptation
25 architectural adaptation25 architectural adaptation
25 architectural adaptationMajong DevJfu
 
24 dssa and_product_lines
24 dssa and_product_lines24 dssa and_product_lines
24 dssa and_product_linesMajong DevJfu
 
22 deployment and_mobility
22 deployment and_mobility22 deployment and_mobility
22 deployment and_mobilityMajong DevJfu
 

More from Majong DevJfu (20)

5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture
 
1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
 
Uml3
Uml3Uml3
Uml3
 
Uml2
Uml2Uml2
Uml2
 
6
66
6
 
5
55
5
 
4 (uml basic)
4 (uml basic)4 (uml basic)
4 (uml basic)
 
3
33
3
 
2
22
2
 
1
11
1
 
Tmd template-sand
Tmd template-sandTmd template-sand
Tmd template-sand
 
26 standards
26 standards26 standards
26 standards
 
25 architectural adaptation
25 architectural adaptation25 architectural adaptation
25 architectural adaptation
 
24 dssa and_product_lines
24 dssa and_product_lines24 dssa and_product_lines
24 dssa and_product_lines
 
23 intro to_dsse
23 intro to_dsse23 intro to_dsse
23 intro to_dsse
 
22 deployment and_mobility
22 deployment and_mobility22 deployment and_mobility
22 deployment and_mobility
 

Recently uploaded

Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
Fwdays
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Abida Shariff
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 

Recently uploaded (20)

Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 

7 - Architetture Software - Software product line

  • 1. Software Product Lines Paolo Ciancarini
  • 2. Agenda •  Design for reuse •  Software product lines •  Organizational strategies
  • 3. Motivation Complexity, size, and number of software- intensive systems a major problem for software companies •  routine functionality is custom-written repeatedly from scratch, over and over •  a quagmire of data formats and applications •  ambiguities and interoperability conflicts not only across different companies but even among groups within the same company
  • 4. Family of systems There is a need to •  reduce the development effort •  increase productivity moving from designing single products to producing engineering families of products •  identifying generic solutions to common problems •  building related products by assembling components •  providing universal platforms •  synthesizing systems automatically
  • 5. Product Line Architecture (PLA) Product Line Architecture: a common design framework that •  standardizes & maximizes reuse potential of all software artifacts generated during development -  these artifacts include requirements, designs and patterns, and, of course, actual code components •  specifies common functionality across systems •  clearly identifies variation points
  • 6. Capturing PLA •  Common core: features common to all products •  FA: features specific to product A •  FB: features specific to product B •  Product A = Common core + FA •  Product B = Common core + FB Common FA Common FB core core Product A Product B
  • 7. Lessons from other industries •  Any customer can have Any customer can a car painted any have a car painted colour that he wants so any colour that he long as it is black” - wants so long as it is Henry Ford black” Henry Ford
  • 8. Architecture and standard components Architecture was simple and flexible Built from standard parts
  • 9. Standards and diversity What varied? Use features to satisfy diversity of needs Why it worked? Standard architecture and common parts What resulted? Product and assembly lines
  • 10. The role of architecture in sw
  • 11. Component based development Software factories exploit component-based development (CBD) •  They engineer applications by composing prefabricated components in the hope that this will increase software reuse •  Strategy: building software systematically and opportunistically exploting reference architectures about a domain and competitive knowledge for systems in that domain
  • 12. Domain What is a domain? •  Area of expertise with specialized particular tasks •  Populated by products with reusable structures Example: software for a car •  Console •  Engine •  Brakes •  …
  • 13. Domains vs product lines Domains are in the problem space, product lines are in the solution space •  Domain •  Product line •  Consumer electronics •  Philips Digital TVs •  Avionics •  Boeing 747 Family •  Compilers •  GNU compiler suite •  Videogames •  Games using the same engine
  • 14. Multimedia Product Line VCR Features:" •  Play Tape" Answering machine Features:" •  Rewind Tape" •  Play Announcement" •  Forward Tape" •  Record Announcement" •  Button Control" •  Rewind Announcement" •  Signal Handling" •  Play Message" •  Record Message" •  Rewind Message" •  Forward Message" Audio Player Features " •  Display Messages" •  Play Tape" •  Button Control" •  Record Tape" •  Signal Handling" •  Rewind Tape" •  Forward Tape" •  Button Control" •  Signal Handling"
  • 15. Product lines •  Product line technology builds families of products exploiting some common core assets and managing their variability •  Ex.: Boeing 757 e 767 share 60% of components •  Ex.: Mercedes Benz class E models share 70% •  Scale economies and efficiency •  Integrating rather than creating
  • 16. Software reuse Why is software reuse critical? •  provides predictable behavior (better testing) •  enables shorter delivery timeframes •  reduces repeated building from scratch of common functionality History of the concept dated back to 1950 s •  subroutine libraries •  standardized class libraries
  • 17. Old ways to reusing software Old definitions of sw reuse include: •  Re-use is considered as a means to support the construction of new programs using in a systematical way existing designs, design fragments, program texts, documentation, or other forms of program representation. •  Reusability is the extent to which a software component can be used (with or without adaptation) in multiple problem solutions.
  • 18. Reusable assets Reference Design Architecture Pattern Legacy Architectural Application Mechanism Pattern Packaged Language Application Development Reference Method Model Architectural Programming Decision Pattern Pattern Component Library Component Architectural Pattern Architectural Application Style Framework
  • 19. Reuse Reuse aspects •  It is not an end in itself but a means to increase productivity and improve quality •  Reusable components are not limited to code •  Software components may need adaptation -  Adaptive design Community & Enterprise Information Portals -  Variant design Health ••• other vertical •  Horizontal and Care Financial Insurance domains vertical reuse E-Business facilities ••• other (Appl. dev., Intelligence, Integration, …) facilities Metamodel Interoperability ••• Distributed Run-time Middleware
  • 20. Benefits By planning ahead in support of families of multiple systems, an organization •  reduces the development time and cost of new products •  reduces risk and improves quality •  manages its legacy assets more efficiently •  evolves a common marketing strategy •  makes decisions based on the (value of) the asset base and the strategic goals
  • 21. Software product lines (SPL) Definition by Clemens and Northrop (SEI, 2002): •  A set of software-intensive systems that share a common, managed set of features satisfying the specific needs of a particular market segment •  They are developed from a common set of core assets in a prescribed way •  Example: software for TV sets (Philips)
  • 22. SPL metamodel Product lines -  Exploit commonality -  Bound variability
  • 23. Why SPL work? Product lines amortize the investment in these core assets: •  requirements (and requirements analysis) •  domain models •  software architecture (and design) •  performance engineering •  documentation •  test plans, test cases, and test data •  people: their knowledge and skills •  processes, methods, and tools •  budgets, schedules, and work plans •  components and services
  • 24. A few success stories •  Celsius tech: family of naval command and control systems •  Ericsson AXE: family of telecommunications switches •  Lucent Technologies: 5ESS telecom switch •  US Naval Undersea Warfare Center: A-7° •  SALION: Acquisition Management Systems •  Toshiba: Electric Power Generation Plant •  BOEING: Bold Stroke Avionics SW Family •  BOSCH: Gasoline Systems •  CUMMINS Inc.: Diesel SPL •  LSI: RAID controller firmware SPL •  GM: General Motors Powertrain (GMPT) •  PHILIPS: Medical Systems •  Nokia: mobile phones
  • 25. SPL issues •  ROI: when are they convenient? •  Organization of work •  Domain engineering and scoping •  Design for reuse of commonality •  Control of variability
  • 26. ROI of SPL ROI
  • 28.
  • 31. Organization by product lines (from Krueger 2009)
  • 32.
  • 33. Single system perspective (from Krueger 2009)
  • 34.
  • 35.
  • 36.
  • 37. Product Line Engineering PL Engineering uses domain-driven, model- based methodology for building software •  Two complementary processes -  Modeling (domain engineering) -  Development (applications engineering)
  • 38. Product Line Engineering Domain Engineering Experts " Technology" Domain Experts & 1. Modeling (Domain Engineering, Domain
 a.k.a Design-for-Reuse)" knowledge" Refers to original design, i.e.,
 the use of first principles" " Solution 
 models" Domain Experts & IT technicians New
 Domain Expert requirements"Development (Application Engineering, 
 2. a.k.a design-with-Reuse)" Product" refers to routine practice, i.e., 
 the use of known solutions"
  • 39.
  • 40. Reusable assets Reuse in general needs to be planned for •  create a reusable asset, i.e. one that is fully documented, has good code and robust scripts; is verified independently with high confidence •  create a usable asset, i.e. one that is adaptable and that is usable in a variety of simulators Design for reuse/use involves •  analysis to identify explicitly variations to anticipate adaptations, and •  design for adaptability, engineered a priori to create assets for future developments
  • 41. Problems Design for commonality •  standardizing assets by encapsulating common features Analysis of variation •  must explicitly identify variations that anticipate adaptations Control of variability •  provide assets flexibility without compromising commonality
  • 42. Levels of reuse •  Domain-independent components -  Designed for reuse to fit any product (e.g., general purpose class libraries) •  Domain-specific components -  Designed for reuse to fit several different products in a given market (e.g., multi-media, jpeg encoders, data communications, digital signal processing, ...) •  Product-specific components -  Designed for reuse within a specific application (to generate various instances or products)
  • 43. SPL: main issues There are several issues to consider •  Scoping the SPL (i.e. identify domain and assets) •  Define a reference architecture •  Define a PLA •  Identification of reusable components at the appropriate level of abstraction •  Variability management •  Architectural compliance •  SPL maintenance
  • 44. What is SPL scoping? •  the initial phase of a SPL, aims to identify products, features, potential of the market domain and reusable assets •  determines the viability of the SPL •  maximizes the economical value of the SPL •  Essential factors in SPL: -  Investment -  Management -  Planning -  Business strategy } scoping
  • 45. Traditional Engineering Model Domains! Individual ! applications! Individual ! domains! Systems! Individual
 implementations! Assets!
  • 46. SPL Model Domains! Domain
 models! • Variability analysis! <<includes>>! Start
 Startup! compressor! <<extends>>! <<extends>>! Shutdown! Operator! <<includes>>! Alarm
 <<includes>>! Plant! detected! Remote! Operate! Shutdown! <<extends>>! <<includes>>! <<includes>>! Local! Remote! <<includes>>! Local
 Shutdown! Stop
 compressor! • Features! 2 2 CapsuleC CapsuleB CapsuleA Class Diagram (domain model) :CapsuleA Collaboration Diagram (role model) :CapsuleB CapsuleC connection Reusable 
 network :CapsuleB CapsuleC Component! Systems! Cn Cn Cn •••" Cn Cn Assets! Architectural
 Framework!
  • 47. Product Lines and UML Domain Analysis Problem Analysis Solution Analysis Specify basic problem Describe implementation Identify the entities overall functionality, and of the solution in terms of and their relations in the identify and specify system interactions between applications domain" features" classes and permitted (expected) overall system behavior" Problem Model (Activity diagram) Behavioral Model (traces + constraints) Domain Model (class diagram) Requirements Model Implementation Model (Use Case diagram) (Collaboration diagram)
  • 48.
  • 49.
  • 50. Variability in requirements Optional requirements Cross-cutting aspects Optional scenarios Varying flow of events
  • 51. Eriksson, Börstler, Borg, Software product line modeling made practical CACM, Dec. 2006
  • 52. A reference domain for automotive From Bak, Exemplar of Automotive Architecture with Variability, 2010
  • 53. Software Defined Radios •  Variation points in radio configuration, board configuration, software configuration
  • 54. SDRs PL •  By applying product line techniques to SDRs •  Can manage different configurations of the radio -  Deploying components on alternative hosts -  Deployments with –  No waveforms –  One waveform –  Different combinations of waveforms •  Can show radio in different states as radio starts up or transitions from one waveform to another
  • 55. SPL according to SEI (5th framework, 2007)
  • 58. Two approaches to start a SPL •  Proactive: Develop the core assets first •  Develop the scope first and use it as a “mission” statement. •  Products come to market quickly with minimum code writing. •  Requires upfront investment and predictive knowledge •  Reactive: Start with one or more products •  From them, generate the product line core assets and then the future products; the scope evolves more dramatically •  Much lower cost of entry •  The architecture and other core assets must be robust, extensible, and appropriate to future product line needs
  • 59. Summary Product Line Architectures, rather than single-product architectures, support systematic reuse •  represent recurrent requirements and architectures (i.e., components and interfaces) suitable for solving typical problems in a domain •  depict structures for design related products and provide models for integrating optional/ alternative components •  allow engineers to come up with the right solutions quickly and effectively
  • 60. Architecture-Centric Development Activities Architecture-specific activities for SPL include: •  creating the business case for the system •  understanding the requirements •  creating and/or selecting the architecture •  documenting and communicating the architecture •  analyzing or evaluating the architecture •  implementing the system based on the architecture •  ensuring that the implementation conforms to the architecture
  • 61. From SA to PLA •  Of all a product line’s core assets, the product line architecture is the most important one for ensuring technical success. •  If an organization already uses disciplined practices to develop single-product software under the aegis of a software architecture, it is well poised to •  define a product line architecture •  Identify the core assets •  Build products from those core assets.
  • 62. Test questions •  What is a software product line? •  What is a product line architecture? •  What is variability management?
  • 63. References •  Clemens & Northrop, Software Product Lines, Addison Wesley, 2002 •  Gomaa, Designing SPL with UML, Addison Wesley, 2005 •  Pohl & Böckle, SPL Engineering: foundations, principles, and techniques, Springer 2005 •  vanderLinden & Schmid & Rommes, SPL in action, Springer, 2007 •  van Gurp & Bosch & Svahnberg, On the notion of variability in SPL, Conf. on Sw Architecture, 2001 •  Eriksson, Bostler, Borg, Software product line modeling made practical. An example from the Swedish defense industry, CACM 2006 •  Krueger & Jackson, Requirements engineering for systems and software product lines, White paper IBM Rationa,l 2009
  • 64. Conferences •  SPLC 2011, Munich, Germany •  Workshop on Variability in Software Product Line Architectures •  Wokshop on Product LinE Approaches in Software Engineering (PLEASE)