SlideShare a Scribd company logo
Sustainability Evaluation
of Software Architectures

Heiko Koziolek
Industrial Software Systems
ABB Corporate Research, Germany




1
2   2
• Technology
                    2004            • Technology
                                                       2011
    – GUI: Microsoft Visual Basic      – GUI: Microsoft WPF
    – Middleware: Classic OPC          – Middleware: OPC UA
    – OS: Windows XP                   – OS: Windows 7
• Functionality (select.)           • Functionality (select.)
    – Basic alarm management           – Rich alarm management
    – No system integration            – Multi-system integration
    – No online updates                – Online updates
• Code & Documentation              • Code & Documentation
    – Defined APIs and layers          – Some layer violations
    – Design rationale present         – Some design rationale lost
    – Up-to-date documentation         – Outdated documentation


3
Measuring sustainability?




4
State of practice:
Techniques for architecture evaluation
     Experience                                            83%

     Prototyping                                70%

       Scenarios                   54%

      Checklists            40%

      Simulation      17%

Questionaires         16%

         Metrics    15%

         Others    11%

    Math. models 5%
                              [Source: AliBabar & Gorton 2009, survey with 88 architects]
5
Research Questions
• RQ1:
  Scenario-based methods
  & sustainability evaluation?

• RQ2:
  What kind of architecture-level metrics?

• RQ3:
  Implications for industry & research?
6
Search
• 14 conferences, 12 journals, 10 books
• Included only methods/metrics
  from renowned venues
• Excluded dormant or unvalidated
  methods/metrics




7
Research Questions
• RQ1:
  Scenario-based methods
  & sustainability evaluation?

• RQ2:
  What kind of architecture-level metrics?

• RQ3:
  Implications for industry & research?
8
Scenario-based Methods
•   SAAM (5%)             •   ALMA (1%)
•   ATAM (5%)             •   ESAAMI
                                          Practitioners
•   ARID                  •   SAAF        applying
                                          the method
•   SAAMER                •   ASAAM       [AliBabar &
•   PASA                  •   SALUTA      Gorton2009]

•   SBAR                  •   SACAM
•   SAAMCS      dormant
                          •   DOSAM
•   ISAAMCR               •   SBAR

9
Sustainability Evaluation Criteria



 Change scenario     Ripple effect     Variation point
  specification        analysis           analysis




   Architecture                        Existing tools &
                   Tradeoff analysis
  improvement                              artifacts
Sustainability Evaluation Criteria



 Change scenario     Ripple effect     Variation point
  specification        analysis           analysis




   Architecture                        Existing tools &
                   Tradeoff analysis
  improvement                              artifacts
ATAM   ALMA
Change
      Sustainability evaluation
scenario spec.
Ripple effect
analysis
Variation point
analysis
Architecture
improvement
Tradeoff
analysis
Existing
artifacts/tools
Return on
Investment
12
ATAM                      ALMA
Change
      Sustainability evaluation
          Quality attribute Top-down, bottom-up,
scenario spec.    scenario template         no template
Ripple effect     Manual, based on          Manual, based on
analysis          experience                experience
Variation point n/a                         n/a
analysis
Architecture      Modifiability Tactics,    n/a
improvement       Styles
Tradeoff          Utility tree with       n/a
analysis          stakeholder preferences
Existing          No support                No support
artifacts/tools
Return on         Cost: 30-70 person days   Cost: unknown
Investment        Benefit: not quantified   Benefit: not quantified
13
Findings RQ1: Scenarios
•    ATAM: more features
•    ALMA: more specific for sustainability
•    Manual ripple effect analysis
•    No reverse engineering
•    No tool integration
•    Return on Investment unknown
•    In practice: use best of both methods

14
Research Questions
• RQ1:
  Scenario-based methods
  & sustainability evaluation?

• RQ2:
  What kind of architecture-level metrics?

• RQ3:
  Implications for industry & research?

15
Architectural metrics categories



     Similarity of                                 Independent
                          Encapsulation
       Purpose                                   Compil. & Testing




                   Acyclic                                 [Sarkar2007]
                                          Size
16              Dependencies
Architectural metrics categories



     Similarity of                                 Independent
                          Encapsulation
       Purpose                                   Compil. & Testing




                   Acyclic                                 [Sarkar2007]
                                          Size
17              Dependencies
Architecture Metrics
Similarity of
Purpose

Encapsulation




Independent
Compilation
& Testing

Acyclic
Dependencies
Size
18
Architecture Metrics
Similarity of   Concept Domination Metric, Concept Coherency Metic,
                API Function Usage Index, Concern Diffusion over Arch. Components,
Purpose         Concern Scope, Concern Overlap

Encapsulation   Ratio of Cohesive Interactions, Import Coupling, Export Coupling,
                Modularization Quality, Afferent Couplings, Efferent Couplings,
                Component-level Interlacing Between Concerns,
                Lack of Concern-based Cohesion, Module Interaction Index,
                Non-API Function Closedness Index, Implicit Dependency Index,
                Base class fragility index, Inheritance-based inter-module coupling,
                Not-programming-to-interfaces Index, Association-induced coupling,
                State Access Violation Index, Entropy of an architectural slicing,
                Architecture Slicing Cohesion, Decision Volatility

Independent     Cumulative Component Dependency, Average Cumulative Component
                Dependency, Normalized Cumulative Component Dependency,
Compilation     Coupling of a module, Intra-module coupling of a module, Cohesion of a
& Testing       module, Abstractness, Instability, Distance from the Main Sequence,
                Module Interaction Stability Index, Normalized Testability Dependency
                Metric, Plugin Pollution Index, Change impact, Independence Level

Acyclic         Package Dependency Cycles, Cyclic Dependencies Index, Layer
                Organization Index, Excessive Structural Complexity
Dependencies
Size            Module Size Boundness Index, Module Size Uniformity Index

19
Architecture Metrics
Similarity of   Concept Domination Metric, Concept Coherency Metic,
                API Function Usage Index, Concern Diffusion over Arch. Components,
Purpose         Concern Scope, Concern Overlap

Encapsulation   Ratio of Cohesive Interactions, Import Coupling, Export Coupling,
                Modularization Quality, Afferent Couplings, Efferent Couplings,
                Component-level Interlacing Between Concerns,
                Lack of Concern-based Cohesion, Module Interaction Index,
                Non-API Function Closedness Index, Implicit Dependency Index,
                Base class fragility index, Inheritance-based inter-module coupling,
                Not-programming-to-interfaces Index, Association-induced coupling,
                State Access Violation Index, Entropy of an architectural slicing,
                Architecture Slicing Cohesion, Decision Volatility

Independent     Cumulative Component Dependency, Average Cumulative Component
                Dependency, Normalized Cumulative Component Dependency,
Compilation     Coupling of a module, Intra-module coupling of a module, Cohesion of a
& Testing       module, Abstractness, Instability, Distance from the Main Sequence,
                Module Interaction Stability Index, Normalized Testability Dependency
                Metric, Plugin Pollution Index, Change impact, Independence Level

Acyclic         Package Dependency Cycles, Cyclic Dependencies Index, Layer
                Organization Index, Excessive Structural Complexity
Dependencies
Size            Module Size Boundness Index, Module Size Uniformity Index

20
Example: Module Interact. Idx



       call     call         call                          ������     ������
                                                  ������������ ∈ ������1 … ������������    ������������������������ (������ ������ )
                                    ������������������ ������ =
                                                           ������������������������ (������)
                                               1+1
                                             =     ≈ 0.67
         API           Non-API                  3

               ������

                                                     [Source: Sarkar2007 IEEE TSE]
21
Example: Comparing Systems




                         [Source: Sarkar2007 IEEE TSE]
22
Findings RQ2
• >40 architecture-level
  source code metrics in literature
• Measures for architecture
  and modularization quality
• Success factors for application:
     – Mix of metrics
     – Combination with
       class-level / process metrics
• Limitations:
     – Empirical validation
     – Tool support
23
Research Questions
• RQ1:
  Scenario-based methods
  & sustainability evaluation?

• RQ2:
  What kind of architecture-level metrics?

• RQ3:
  Implications for industry & research?

24
Findings RQ3: Implications
•    More empirical research
•    Method integration
•    Effective formal models
•    Codify experiences
•    Explore other
     approaches (simulation?)



25
Conclusions
• Sustainability Evaluation of Architectures
     – change scenarios:
       basic support for sustainability criteria
     – architectural code metrics:
       measure modularization, lack empirical evidence

• Research opportunities
     – combined methods
     – empirical research




26
27
Existing surveys
• Surveys on scenario-    • Surveys / papers
  based method              on code metrics
     –   Dobrica 2002       –   McCabe 1976
     –   Ali Babar 2004     –   Halstead 1977
     –   Kazman 2005        –   Chidamber 1994
     –   Breivold 2010      –   Riaz 2009
     –   ...                –   ...




28                                    28
ATAM                        ALMA
Goals           Sensitivity & Tradeoff      Change impact analysis,
                Analysis                    maint. effort prediction

Architectural   Process, data-flow, uses,   Any
description     physical & module view

Process         Comprehensive               Limited
support

Tool support    n/a                         n/a


Knowledge       Recommended                 n/a
repository

Validation      > 20 industrial case        7 industrial case studies
                studies documented          (before 2004)
29

More Related Content

What's hot

Testing Object-Oriented Systems: Lessons Learned
Testing Object-Oriented Systems: Lessons LearnedTesting Object-Oriented Systems: Lessons Learned
Testing Object-Oriented Systems: Lessons Learned
Bob Binder
 
PhD-viva_ver0.4
PhD-viva_ver0.4PhD-viva_ver0.4
PhD-viva_ver0.4
SAADBIN ABID, PhD
 
ITS-Fidel
ITS-FidelITS-Fidel
Detection of Seed Methods for Quantification of Feature Confinement
Detection of Seed Methods for Quantification of Feature ConfinementDetection of Seed Methods for Quantification of Feature Confinement
Detection of Seed Methods for Quantification of Feature Confinement
Andrzej Olszak
 
Software engineering
Software engineeringSoftware engineering
Software engineering
nidhi5388
 
Requirements Engineering Pmi
Requirements Engineering PmiRequirements Engineering Pmi
Requirements Engineering Pmi
Arta Doci
 
Practical Testing Definition for Mobile Devices
Practical Testing Definition for Mobile DevicesPractical Testing Definition for Mobile Devices
Practical Testing Definition for Mobile Devices
Johan Hoberg
 
Software testing
Software testingSoftware testing
Pimpri Chinchwad Software Testing Courses
Pimpri Chinchwad  Software Testing Courses  Pimpri Chinchwad  Software Testing Courses
Pimpri Chinchwad Software Testing Courses
MindScripts SoftwareTestingPune
 
Model-Based Performance Prediction in Software Development: A Survey
Model-Based Performance Prediction in Software Development: A SurveyModel-Based Performance Prediction in Software Development: A Survey
Model-Based Performance Prediction in Software Development: A Survey
Mr. Chanuwan
 

What's hot (10)

Testing Object-Oriented Systems: Lessons Learned
Testing Object-Oriented Systems: Lessons LearnedTesting Object-Oriented Systems: Lessons Learned
Testing Object-Oriented Systems: Lessons Learned
 
PhD-viva_ver0.4
PhD-viva_ver0.4PhD-viva_ver0.4
PhD-viva_ver0.4
 
ITS-Fidel
ITS-FidelITS-Fidel
ITS-Fidel
 
Detection of Seed Methods for Quantification of Feature Confinement
Detection of Seed Methods for Quantification of Feature ConfinementDetection of Seed Methods for Quantification of Feature Confinement
Detection of Seed Methods for Quantification of Feature Confinement
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Requirements Engineering Pmi
Requirements Engineering PmiRequirements Engineering Pmi
Requirements Engineering Pmi
 
Practical Testing Definition for Mobile Devices
Practical Testing Definition for Mobile DevicesPractical Testing Definition for Mobile Devices
Practical Testing Definition for Mobile Devices
 
Software testing
Software testingSoftware testing
Software testing
 
Pimpri Chinchwad Software Testing Courses
Pimpri Chinchwad  Software Testing Courses  Pimpri Chinchwad  Software Testing Courses
Pimpri Chinchwad Software Testing Courses
 
Model-Based Performance Prediction in Software Development: A Survey
Model-Based Performance Prediction in Software Development: A SurveyModel-Based Performance Prediction in Software Development: A Survey
Model-Based Performance Prediction in Software Development: A Survey
 

Viewers also liked

Comparing and Considering: Exhibit vs Palladio
Comparing and Considering: Exhibit vs PalladioComparing and Considering: Exhibit vs Palladio
Comparing and Considering: Exhibit vs Palladio
Shawn Day
 
Q-ImPrESS
Q-ImPrESSQ-ImPrESS
Q-ImPrESS
Heiko Koziolek
 
ICSE 2011: Q-ImPrESS - An Industrial Case Study on Quality Impact Prediction
ICSE 2011: Q-ImPrESS - An Industrial Case Study on Quality Impact Prediction ICSE 2011: Q-ImPrESS - An Industrial Case Study on Quality Impact Prediction
ICSE 2011: Q-ImPrESS - An Industrial Case Study on Quality Impact Prediction
Heiko Koziolek
 
A Model Transformation from the Palladio Component Model to Layered Queueing ...
A Model Transformation from the Palladio Component Model to Layered Queueing ...A Model Transformation from the Palladio Component Model to Layered Queueing ...
A Model Transformation from the Palladio Component Model to Layered Queueing ...
Heiko Koziolek
 
Towards Software Sustainability Guides for Industrial Software Systems
Towards Software Sustainability Guides for Industrial Software SystemsTowards Software Sustainability Guides for Industrial Software Systems
Towards Software Sustainability Guides for Industrial Software Systems
Heiko Koziolek
 
Parameter Dependencies for Component Reliability Specifications
Parameter Dependencies for Component Reliability SpecificationsParameter Dependencies for Component Reliability Specifications
Parameter Dependencies for Component Reliability Specifications
Heiko Koziolek
 
Rapid Performance Modeling by transforming Use Case Maps to Palladio Componen...
Rapid Performance Modeling by transforming Use Case Maps to Palladio Componen...Rapid Performance Modeling by transforming Use Case Maps to Palladio Componen...
Rapid Performance Modeling by transforming Use Case Maps to Palladio Componen...
Heiko Koziolek
 

Viewers also liked (7)

Comparing and Considering: Exhibit vs Palladio
Comparing and Considering: Exhibit vs PalladioComparing and Considering: Exhibit vs Palladio
Comparing and Considering: Exhibit vs Palladio
 
Q-ImPrESS
Q-ImPrESSQ-ImPrESS
Q-ImPrESS
 
ICSE 2011: Q-ImPrESS - An Industrial Case Study on Quality Impact Prediction
ICSE 2011: Q-ImPrESS - An Industrial Case Study on Quality Impact Prediction ICSE 2011: Q-ImPrESS - An Industrial Case Study on Quality Impact Prediction
ICSE 2011: Q-ImPrESS - An Industrial Case Study on Quality Impact Prediction
 
A Model Transformation from the Palladio Component Model to Layered Queueing ...
A Model Transformation from the Palladio Component Model to Layered Queueing ...A Model Transformation from the Palladio Component Model to Layered Queueing ...
A Model Transformation from the Palladio Component Model to Layered Queueing ...
 
Towards Software Sustainability Guides for Industrial Software Systems
Towards Software Sustainability Guides for Industrial Software SystemsTowards Software Sustainability Guides for Industrial Software Systems
Towards Software Sustainability Guides for Industrial Software Systems
 
Parameter Dependencies for Component Reliability Specifications
Parameter Dependencies for Component Reliability SpecificationsParameter Dependencies for Component Reliability Specifications
Parameter Dependencies for Component Reliability Specifications
 
Rapid Performance Modeling by transforming Use Case Maps to Palladio Componen...
Rapid Performance Modeling by transforming Use Case Maps to Palladio Componen...Rapid Performance Modeling by transforming Use Case Maps to Palladio Componen...
Rapid Performance Modeling by transforming Use Case Maps to Palladio Componen...
 

Similar to Sustainability Evaluation of Software Architectures: A Systematic Review

Agile for Software as a Medical Device
Agile for Software as a Medical DeviceAgile for Software as a Medical Device
Agile for Software as a Medical Device
Orthogonal
 
comparative study software quality models
comparative study  software quality models comparative study  software quality models
comparative study software quality models
Auwal Amshi
 
Solo Requisitos 2008 - 07 Upc
Solo Requisitos 2008 - 07 UpcSolo Requisitos 2008 - 07 Upc
Solo Requisitos 2008 - 07 Upc
Pepe
 
E3 chap-06
E3 chap-06E3 chap-06
MexADL
MexADLMexADL
MexADL
jccastrejon
 
Product metrics
Product metricsProduct metrics
Product metrics
Amey Phutane
 
Design process and concepts
Design process and conceptsDesign process and concepts
Design process and concepts
Slideshare
 
CodeMR - Software Quality
CodeMR - Software QualityCodeMR - Software Quality
CodeMR - Software Quality
CodeMR
 
Architecture evaluation
Architecture evaluationArchitecture evaluation
Architecture evaluation
RamanamurthyBanda1
 
Making Model-Driven Verification Practical and Scalable: Experiences and Less...
Making Model-Driven Verification Practical and Scalable: Experiences and Less...Making Model-Driven Verification Practical and Scalable: Experiences and Less...
Making Model-Driven Verification Practical and Scalable: Experiences and Less...
Lionel Briand
 
SoftwareQuality.ppt
SoftwareQuality.pptSoftwareQuality.ppt
SoftwareQuality.ppt
AayushGupta864569
 
Ch17SoftwareQuality.ppt
Ch17SoftwareQuality.pptCh17SoftwareQuality.ppt
Ch17SoftwareQuality.ppt
SanaLatif13
 
A Framework for Classifying and Comparing Architecture-Centric Software Evolu...
A Framework for Classifying and Comparing Architecture-Centric Software Evolu...A Framework for Classifying and Comparing Architecture-Centric Software Evolu...
A Framework for Classifying and Comparing Architecture-Centric Software Evolu...
Pooyan Jamshidi
 
Chapter 15 software product metrics
Chapter 15 software product metricsChapter 15 software product metrics
Chapter 15 software product metrics
SHREEHARI WADAWADAGI
 
MexADL - HADAS Presentation
MexADL - HADAS PresentationMexADL - HADAS Presentation
MexADL - HADAS Presentation
jccastrejon
 
From requirements management to requirements authoring - Innovate 2014
From requirements management to requirements authoring - Innovate 2014From requirements management to requirements authoring - Innovate 2014
From requirements management to requirements authoring - Innovate 2014
The REUSE Company
 
Thesis+of+wei+wu.ppt
Thesis+of+wei+wu.pptThesis+of+wei+wu.ppt
Thesis+of+wei+wu.ppt
Ptidej Team
 
Incremental Queries and Transformations for Engineering Critical Systems
Incremental Queries and Transformations for Engineering Critical SystemsIncremental Queries and Transformations for Engineering Critical Systems
Incremental Queries and Transformations for Engineering Critical Systems
Ákos Horváth
 
Software Process Model_Se lect4 btech
Software Process Model_Se lect4 btechSoftware Process Model_Se lect4 btech
Software Process Model_Se lect4 btech
IIITA
 
Featureous: An Integrated Approach To Location, Analysis And Modularization O...
Featureous: An Integrated Approach To Location, Analysis And Modularization O...Featureous: An Integrated Approach To Location, Analysis And Modularization O...
Featureous: An Integrated Approach To Location, Analysis And Modularization O...
Andrzej Olszak
 

Similar to Sustainability Evaluation of Software Architectures: A Systematic Review (20)

Agile for Software as a Medical Device
Agile for Software as a Medical DeviceAgile for Software as a Medical Device
Agile for Software as a Medical Device
 
comparative study software quality models
comparative study  software quality models comparative study  software quality models
comparative study software quality models
 
Solo Requisitos 2008 - 07 Upc
Solo Requisitos 2008 - 07 UpcSolo Requisitos 2008 - 07 Upc
Solo Requisitos 2008 - 07 Upc
 
E3 chap-06
E3 chap-06E3 chap-06
E3 chap-06
 
MexADL
MexADLMexADL
MexADL
 
Product metrics
Product metricsProduct metrics
Product metrics
 
Design process and concepts
Design process and conceptsDesign process and concepts
Design process and concepts
 
CodeMR - Software Quality
CodeMR - Software QualityCodeMR - Software Quality
CodeMR - Software Quality
 
Architecture evaluation
Architecture evaluationArchitecture evaluation
Architecture evaluation
 
Making Model-Driven Verification Practical and Scalable: Experiences and Less...
Making Model-Driven Verification Practical and Scalable: Experiences and Less...Making Model-Driven Verification Practical and Scalable: Experiences and Less...
Making Model-Driven Verification Practical and Scalable: Experiences and Less...
 
SoftwareQuality.ppt
SoftwareQuality.pptSoftwareQuality.ppt
SoftwareQuality.ppt
 
Ch17SoftwareQuality.ppt
Ch17SoftwareQuality.pptCh17SoftwareQuality.ppt
Ch17SoftwareQuality.ppt
 
A Framework for Classifying and Comparing Architecture-Centric Software Evolu...
A Framework for Classifying and Comparing Architecture-Centric Software Evolu...A Framework for Classifying and Comparing Architecture-Centric Software Evolu...
A Framework for Classifying and Comparing Architecture-Centric Software Evolu...
 
Chapter 15 software product metrics
Chapter 15 software product metricsChapter 15 software product metrics
Chapter 15 software product metrics
 
MexADL - HADAS Presentation
MexADL - HADAS PresentationMexADL - HADAS Presentation
MexADL - HADAS Presentation
 
From requirements management to requirements authoring - Innovate 2014
From requirements management to requirements authoring - Innovate 2014From requirements management to requirements authoring - Innovate 2014
From requirements management to requirements authoring - Innovate 2014
 
Thesis+of+wei+wu.ppt
Thesis+of+wei+wu.pptThesis+of+wei+wu.ppt
Thesis+of+wei+wu.ppt
 
Incremental Queries and Transformations for Engineering Critical Systems
Incremental Queries and Transformations for Engineering Critical SystemsIncremental Queries and Transformations for Engineering Critical Systems
Incremental Queries and Transformations for Engineering Critical Systems
 
Software Process Model_Se lect4 btech
Software Process Model_Se lect4 btechSoftware Process Model_Se lect4 btech
Software Process Model_Se lect4 btech
 
Featureous: An Integrated Approach To Location, Analysis And Modularization O...
Featureous: An Integrated Approach To Location, Analysis And Modularization O...Featureous: An Integrated Approach To Location, Analysis And Modularization O...
Featureous: An Integrated Approach To Location, Analysis And Modularization O...
 

More from Heiko Koziolek

Bottleneck Identification and Performance Modeling of OPC UA Communication Mo...
Bottleneck Identification and Performance Modeling of OPC UA Communication Mo...Bottleneck Identification and Performance Modeling of OPC UA Communication Mo...
Bottleneck Identification and Performance Modeling of OPC UA Communication Mo...
Heiko Koziolek
 
Architectural Decision Forces at Work: Experiences in an Industrial Consultan...
Architectural Decision Forces at Work: Experiences in an Industrial Consultan...Architectural Decision Forces at Work: Experiences in an Industrial Consultan...
Architectural Decision Forces at Work: Experiences in an Industrial Consultan...
Heiko Koziolek
 
OpenPnP: a Plug-and-Produce Architecture for the Industrial Internet of Things
OpenPnP: a Plug-and-Produce Architecture for the Industrial Internet of ThingsOpenPnP: a Plug-and-Produce Architecture for the Industrial Internet of Things
OpenPnP: a Plug-and-Produce Architecture for the Industrial Internet of Things
Heiko Koziolek
 
Tool-Driven Technology Transfer in Software Engineering
Tool-Driven Technology Transfer in Software EngineeringTool-Driven Technology Transfer in Software Engineering
Tool-Driven Technology Transfer in Software Engineering
Heiko Koziolek
 
Self-commissioning Industrial IoT Systems
Self-commissioning Industrial IoT SystemsSelf-commissioning Industrial IoT Systems
Self-commissioning Industrial IoT Systems
Heiko Koziolek
 
IoT challenges for Smart Manufacturing
IoT challenges for Smart ManufacturingIoT challenges for Smart Manufacturing
IoT challenges for Smart Manufacturing
Heiko Koziolek
 
Software Architecture in Process Automation: UML & the "Smart Factory"
Software Architecture in Process Automation: UML & the "Smart Factory"Software Architecture in Process Automation: UML & the "Smart Factory"
Software Architecture in Process Automation: UML & the "Smart Factory"
Heiko Koziolek
 
Plug-and-Produce based on Standardized Industrie 4.0 Asset Admin Shells
Plug-and-Produce based on Standardized Industrie 4.0 Asset Admin ShellsPlug-and-Produce based on Standardized Industrie 4.0 Asset Admin Shells
Plug-and-Produce based on Standardized Industrie 4.0 Asset Admin Shells
Heiko Koziolek
 
6 Years of Performance Modeling at ABB
6 Years of Performance Modeling at ABB6 Years of Performance Modeling at ABB
6 Years of Performance Modeling at ABB
Heiko Koziolek
 
Towards the Automation Cloud: Architectural Challenges for a Novel Smart Ecos...
Towards the Automation Cloud: Architectural Challenges for a Novel Smart Ecos...Towards the Automation Cloud: Architectural Challenges for a Novel Smart Ecos...
Towards the Automation Cloud: Architectural Challenges for a Novel Smart Ecos...
Heiko Koziolek
 
MORPHOSIS: A Case Study on Lightweight Architecture Sustainability Analysis
MORPHOSIS: A Case Study on Lightweight Architecture Sustainability AnalysisMORPHOSIS: A Case Study on Lightweight Architecture Sustainability Analysis
MORPHOSIS: A Case Study on Lightweight Architecture Sustainability Analysis
Heiko Koziolek
 
The SPOSAD Architectural Style for Multi-tenant Software Applications
The SPOSAD Architectural Style for Multi-tenant Software ApplicationsThe SPOSAD Architectural Style for Multi-tenant Software Applications
The SPOSAD Architectural Style for Multi-tenant Software Applications
Heiko Koziolek
 
2011 05-27-icse
2011 05-27-icse2011 05-27-icse
2011 05-27-icse
Heiko Koziolek
 
A Large-Scale Industrial Case Study on Architecture-based Software Reliabilit...
A Large-Scale Industrial Case Study on Architecture-based Software Reliabilit...A Large-Scale Industrial Case Study on Architecture-based Software Reliabilit...
A Large-Scale Industrial Case Study on Architecture-based Software Reliabilit...
Heiko Koziolek
 
Towards an Architectural Style for Multi-tenant Software Applications
Towards an Architectural Style for Multi-tenant Software ApplicationsTowards an Architectural Style for Multi-tenant Software Applications
Towards an Architectural Style for Multi-tenant Software Applications
Heiko Koziolek
 
PerOpteryx
PerOpteryxPerOpteryx
PerOpteryx
Heiko Koziolek
 
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
 

More from Heiko Koziolek (17)

Bottleneck Identification and Performance Modeling of OPC UA Communication Mo...
Bottleneck Identification and Performance Modeling of OPC UA Communication Mo...Bottleneck Identification and Performance Modeling of OPC UA Communication Mo...
Bottleneck Identification and Performance Modeling of OPC UA Communication Mo...
 
Architectural Decision Forces at Work: Experiences in an Industrial Consultan...
Architectural Decision Forces at Work: Experiences in an Industrial Consultan...Architectural Decision Forces at Work: Experiences in an Industrial Consultan...
Architectural Decision Forces at Work: Experiences in an Industrial Consultan...
 
OpenPnP: a Plug-and-Produce Architecture for the Industrial Internet of Things
OpenPnP: a Plug-and-Produce Architecture for the Industrial Internet of ThingsOpenPnP: a Plug-and-Produce Architecture for the Industrial Internet of Things
OpenPnP: a Plug-and-Produce Architecture for the Industrial Internet of Things
 
Tool-Driven Technology Transfer in Software Engineering
Tool-Driven Technology Transfer in Software EngineeringTool-Driven Technology Transfer in Software Engineering
Tool-Driven Technology Transfer in Software Engineering
 
Self-commissioning Industrial IoT Systems
Self-commissioning Industrial IoT SystemsSelf-commissioning Industrial IoT Systems
Self-commissioning Industrial IoT Systems
 
IoT challenges for Smart Manufacturing
IoT challenges for Smart ManufacturingIoT challenges for Smart Manufacturing
IoT challenges for Smart Manufacturing
 
Software Architecture in Process Automation: UML & the "Smart Factory"
Software Architecture in Process Automation: UML & the "Smart Factory"Software Architecture in Process Automation: UML & the "Smart Factory"
Software Architecture in Process Automation: UML & the "Smart Factory"
 
Plug-and-Produce based on Standardized Industrie 4.0 Asset Admin Shells
Plug-and-Produce based on Standardized Industrie 4.0 Asset Admin ShellsPlug-and-Produce based on Standardized Industrie 4.0 Asset Admin Shells
Plug-and-Produce based on Standardized Industrie 4.0 Asset Admin Shells
 
6 Years of Performance Modeling at ABB
6 Years of Performance Modeling at ABB6 Years of Performance Modeling at ABB
6 Years of Performance Modeling at ABB
 
Towards the Automation Cloud: Architectural Challenges for a Novel Smart Ecos...
Towards the Automation Cloud: Architectural Challenges for a Novel Smart Ecos...Towards the Automation Cloud: Architectural Challenges for a Novel Smart Ecos...
Towards the Automation Cloud: Architectural Challenges for a Novel Smart Ecos...
 
MORPHOSIS: A Case Study on Lightweight Architecture Sustainability Analysis
MORPHOSIS: A Case Study on Lightweight Architecture Sustainability AnalysisMORPHOSIS: A Case Study on Lightweight Architecture Sustainability Analysis
MORPHOSIS: A Case Study on Lightweight Architecture Sustainability Analysis
 
The SPOSAD Architectural Style for Multi-tenant Software Applications
The SPOSAD Architectural Style for Multi-tenant Software ApplicationsThe SPOSAD Architectural Style for Multi-tenant Software Applications
The SPOSAD Architectural Style for Multi-tenant Software Applications
 
2011 05-27-icse
2011 05-27-icse2011 05-27-icse
2011 05-27-icse
 
A Large-Scale Industrial Case Study on Architecture-based Software Reliabilit...
A Large-Scale Industrial Case Study on Architecture-based Software Reliabilit...A Large-Scale Industrial Case Study on Architecture-based Software Reliabilit...
A Large-Scale Industrial Case Study on Architecture-based Software Reliabilit...
 
Towards an Architectural Style for Multi-tenant Software Applications
Towards an Architectural Style for Multi-tenant Software ApplicationsTowards an Architectural Style for Multi-tenant Software Applications
Towards an Architectural Style for Multi-tenant Software Applications
 
PerOpteryx
PerOpteryxPerOpteryx
PerOpteryx
 
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...
 

Recently uploaded

Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
CAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on BlockchainCAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on Blockchain
Claudio Di Ciccio
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Things to Consider When Choosing a Website Developer for your Website | FODUU
Things to Consider When Choosing a Website Developer for your Website | FODUUThings to Consider When Choosing a Website Developer for your Website | FODUU
Things to Consider When Choosing a Website Developer for your Website | FODUU
FODUU
 

Recently uploaded (20)

Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
CAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on BlockchainCAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on Blockchain
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Things to Consider When Choosing a Website Developer for your Website | FODUU
Things to Consider When Choosing a Website Developer for your Website | FODUUThings to Consider When Choosing a Website Developer for your Website | FODUU
Things to Consider When Choosing a Website Developer for your Website | FODUU
 

Sustainability Evaluation of Software Architectures: A Systematic Review

  • 1. Sustainability Evaluation of Software Architectures Heiko Koziolek Industrial Software Systems ABB Corporate Research, Germany 1
  • 2. 2 2
  • 3. • Technology 2004 • Technology 2011 – GUI: Microsoft Visual Basic – GUI: Microsoft WPF – Middleware: Classic OPC – Middleware: OPC UA – OS: Windows XP – OS: Windows 7 • Functionality (select.) • Functionality (select.) – Basic alarm management – Rich alarm management – No system integration – Multi-system integration – No online updates – Online updates • Code & Documentation • Code & Documentation – Defined APIs and layers – Some layer violations – Design rationale present – Some design rationale lost – Up-to-date documentation – Outdated documentation 3
  • 5. State of practice: Techniques for architecture evaluation Experience 83% Prototyping 70% Scenarios 54% Checklists 40% Simulation 17% Questionaires 16% Metrics 15% Others 11% Math. models 5% [Source: AliBabar & Gorton 2009, survey with 88 architects] 5
  • 6. Research Questions • RQ1: Scenario-based methods & sustainability evaluation? • RQ2: What kind of architecture-level metrics? • RQ3: Implications for industry & research? 6
  • 7. Search • 14 conferences, 12 journals, 10 books • Included only methods/metrics from renowned venues • Excluded dormant or unvalidated methods/metrics 7
  • 8. Research Questions • RQ1: Scenario-based methods & sustainability evaluation? • RQ2: What kind of architecture-level metrics? • RQ3: Implications for industry & research? 8
  • 9. Scenario-based Methods • SAAM (5%) • ALMA (1%) • ATAM (5%) • ESAAMI Practitioners • ARID • SAAF applying the method • SAAMER • ASAAM [AliBabar & • PASA • SALUTA Gorton2009] • SBAR • SACAM • SAAMCS dormant • DOSAM • ISAAMCR • SBAR 9
  • 10. Sustainability Evaluation Criteria Change scenario Ripple effect Variation point specification analysis analysis Architecture Existing tools & Tradeoff analysis improvement artifacts
  • 11. Sustainability Evaluation Criteria Change scenario Ripple effect Variation point specification analysis analysis Architecture Existing tools & Tradeoff analysis improvement artifacts
  • 12. ATAM ALMA Change Sustainability evaluation scenario spec. Ripple effect analysis Variation point analysis Architecture improvement Tradeoff analysis Existing artifacts/tools Return on Investment 12
  • 13. ATAM ALMA Change Sustainability evaluation Quality attribute Top-down, bottom-up, scenario spec. scenario template no template Ripple effect Manual, based on Manual, based on analysis experience experience Variation point n/a n/a analysis Architecture Modifiability Tactics, n/a improvement Styles Tradeoff Utility tree with n/a analysis stakeholder preferences Existing No support No support artifacts/tools Return on Cost: 30-70 person days Cost: unknown Investment Benefit: not quantified Benefit: not quantified 13
  • 14. Findings RQ1: Scenarios • ATAM: more features • ALMA: more specific for sustainability • Manual ripple effect analysis • No reverse engineering • No tool integration • Return on Investment unknown • In practice: use best of both methods 14
  • 15. Research Questions • RQ1: Scenario-based methods & sustainability evaluation? • RQ2: What kind of architecture-level metrics? • RQ3: Implications for industry & research? 15
  • 16. Architectural metrics categories Similarity of Independent Encapsulation Purpose Compil. & Testing Acyclic [Sarkar2007] Size 16 Dependencies
  • 17. Architectural metrics categories Similarity of Independent Encapsulation Purpose Compil. & Testing Acyclic [Sarkar2007] Size 17 Dependencies
  • 19. Architecture Metrics Similarity of Concept Domination Metric, Concept Coherency Metic, API Function Usage Index, Concern Diffusion over Arch. Components, Purpose Concern Scope, Concern Overlap Encapsulation Ratio of Cohesive Interactions, Import Coupling, Export Coupling, Modularization Quality, Afferent Couplings, Efferent Couplings, Component-level Interlacing Between Concerns, Lack of Concern-based Cohesion, Module Interaction Index, Non-API Function Closedness Index, Implicit Dependency Index, Base class fragility index, Inheritance-based inter-module coupling, Not-programming-to-interfaces Index, Association-induced coupling, State Access Violation Index, Entropy of an architectural slicing, Architecture Slicing Cohesion, Decision Volatility Independent Cumulative Component Dependency, Average Cumulative Component Dependency, Normalized Cumulative Component Dependency, Compilation Coupling of a module, Intra-module coupling of a module, Cohesion of a & Testing module, Abstractness, Instability, Distance from the Main Sequence, Module Interaction Stability Index, Normalized Testability Dependency Metric, Plugin Pollution Index, Change impact, Independence Level Acyclic Package Dependency Cycles, Cyclic Dependencies Index, Layer Organization Index, Excessive Structural Complexity Dependencies Size Module Size Boundness Index, Module Size Uniformity Index 19
  • 20. Architecture Metrics Similarity of Concept Domination Metric, Concept Coherency Metic, API Function Usage Index, Concern Diffusion over Arch. Components, Purpose Concern Scope, Concern Overlap Encapsulation Ratio of Cohesive Interactions, Import Coupling, Export Coupling, Modularization Quality, Afferent Couplings, Efferent Couplings, Component-level Interlacing Between Concerns, Lack of Concern-based Cohesion, Module Interaction Index, Non-API Function Closedness Index, Implicit Dependency Index, Base class fragility index, Inheritance-based inter-module coupling, Not-programming-to-interfaces Index, Association-induced coupling, State Access Violation Index, Entropy of an architectural slicing, Architecture Slicing Cohesion, Decision Volatility Independent Cumulative Component Dependency, Average Cumulative Component Dependency, Normalized Cumulative Component Dependency, Compilation Coupling of a module, Intra-module coupling of a module, Cohesion of a & Testing module, Abstractness, Instability, Distance from the Main Sequence, Module Interaction Stability Index, Normalized Testability Dependency Metric, Plugin Pollution Index, Change impact, Independence Level Acyclic Package Dependency Cycles, Cyclic Dependencies Index, Layer Organization Index, Excessive Structural Complexity Dependencies Size Module Size Boundness Index, Module Size Uniformity Index 20
  • 21. Example: Module Interact. Idx call call call ������ ������ ������������ ∈ ������1 … ������������ ������������������������ (������ ������ ) ������������������ ������ = ������������������������ (������) 1+1 = ≈ 0.67 API Non-API 3 ������ [Source: Sarkar2007 IEEE TSE] 21
  • 22. Example: Comparing Systems [Source: Sarkar2007 IEEE TSE] 22
  • 23. Findings RQ2 • >40 architecture-level source code metrics in literature • Measures for architecture and modularization quality • Success factors for application: – Mix of metrics – Combination with class-level / process metrics • Limitations: – Empirical validation – Tool support 23
  • 24. Research Questions • RQ1: Scenario-based methods & sustainability evaluation? • RQ2: What kind of architecture-level metrics? • RQ3: Implications for industry & research? 24
  • 25. Findings RQ3: Implications • More empirical research • Method integration • Effective formal models • Codify experiences • Explore other approaches (simulation?) 25
  • 26. Conclusions • Sustainability Evaluation of Architectures – change scenarios: basic support for sustainability criteria – architectural code metrics: measure modularization, lack empirical evidence • Research opportunities – combined methods – empirical research 26
  • 27. 27
  • 28. Existing surveys • Surveys on scenario- • Surveys / papers based method on code metrics – Dobrica 2002 – McCabe 1976 – Ali Babar 2004 – Halstead 1977 – Kazman 2005 – Chidamber 1994 – Breivold 2010 – Riaz 2009 – ... – ... 28 28
  • 29. ATAM ALMA Goals Sensitivity & Tradeoff Change impact analysis, Analysis maint. effort prediction Architectural Process, data-flow, uses, Any description physical & module view Process Comprehensive Limited support Tool support n/a n/a Knowledge Recommended n/a repository Validation > 20 industrial case 7 industrial case studies studies documented (before 2004) 29