SlideShare a Scribd company logo
Dependency Profiles
for Software Architecture Evaluations
Eric Bouwers, Arie van Deursen, and Joost Visser
                                           September 2011   T +31 20 314 0950
                                                            info@sig.eu
                                                            www.sig.eu
Why?
Background, motivation, objectives


                                                                                                  1I6
Architecture
     •  “Organizational structure of a software system, including components, connections,
        constraints, and rationale.” [Kogut and Clements, 1994]


Evaluation
     •  Of implemented architecture
     •  Monitoring during initial development and continued evolution


Metrics
     •  Traditionally: coupling and cohesion at the level of modules (files, classes)
     •  Desired: at the architectural level
     •  Desired: simple, technology-independent, allowing root cause analysis [Heitlager et al 2007]



Dependency Profiles © 2011 Software Improvement Group
Quantifying
encapsulation and independence


                                                                2I6
Dependency Profile
     •  For each top-level component
     •  Percentages of code in 4 categories                 A
     •  Hidden = encapsulated
     •  Inbound = provides interface
     •  Outbound = requires interface
     •  Transit = mixed
                                                        B
A: < 75%, 10%, 15%, 0% >
     •  Good encapsulation,
        limited dependence
B: < 40%, 20%, 35%, 5% >
     •  Highly exposed,
        highly dependent

Dependency Profiles © 2011 Software Improvement Group
Preliminary observations
General


                                                                                                                            3I6




Hidden code
     •  Median is 35%
     •  Ranges from 7% to 100%


Transit                                                 Systems
     •  0% for 18 systems
     •  Over 20% for 10 systems


Inbound and outbound
     •  Outbound is larger than inbound for
        all but 9 systems
Dependency Profiles © 2011 Software Improvement Group             0.0   0.2           0.4           0.6              0.8          1.0
                                                                         hiddenCode   inboundCode   outboundCode   transitCode
Preliminary observations
Statistical


                                                                          4I6




Correlation with size?
     •  Spearman rank correlation
     •  None for hidden and transit code
     •  Weak for inbound (-0.28) and outbound (0.32)


Differences per technology, type of system, development context?
     •  Kolmogorov-Smirnov
     •  No differences between industry and open source
     •  No differences between libraries and applications
     •  Lower percentage of hidden code for Java than for .NET or C/C++

Dependency Profiles © 2011 Software Improvement Group
Evaluation
Study design


                                                                     5I6
Data
     •  Source code, taking top-level packages as components
     •  Change history


Dependent variable
     •  Percentage of cross-component change-sets


Hypotheses
     •  In systems with low percentages of inbound + transit code,
        encapsulation is better and therefore
        changes are less likely to propagate to other components
     •  In systems with low percentage of outbound + transit code,
        components are more independent and therefore
        changes are less likely to propagate to other components

Dependency Profiles © 2011 Software Improvement Group
Open questions
Food for discussion and future work


                                                                                                    6I6
Future work
     •  Empirical validation against internal change ratios
     •  Include into SIG quality model and standard evaluation process
     •  Collect experience of SIG consultants with application to 100+ systems annually


Discussion
     •  Purely graph-based architecture metrics abstract too much to evaluate the degree of
        information hiding / preparedness for change that is achieved.




                                                                             Dr. ir. Joost Visser
                                                                             j.visser@sig.eu
                                                                             http://twitter.com/jstvssr
                                                                             www.sig.eu
                                                                             +31 20 314 0950

Dependency Profiles © 2011 Software Improvement Group

More Related Content

PDF
Metrics - Using Source Code Metrics to Predict Change-Prone Java Interfaces
PDF
Industry - Precise Detection of Un-Initialized Variables in Large, Real-life ...
PDF
ERA Poster - Measuring Disruption from Software Evolution Activities Using Gr...
PDF
Industry - The Evolution of Information Systems. A Case Study on Document Man...
PDF
ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...
PDF
Tutorial 3 - Research methods - Part 2
PDF
Program Comprehension - An Evaluation of the Strategies of Sorting, Filtering...
PDF
Industry - Testing & Quality Assurance in Data Migration Projects
Metrics - Using Source Code Metrics to Predict Change-Prone Java Interfaces
Industry - Precise Detection of Un-Initialized Variables in Large, Real-life ...
ERA Poster - Measuring Disruption from Software Evolution Activities Using Gr...
Industry - The Evolution of Information Systems. A Case Study on Document Man...
ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...
Tutorial 3 - Research methods - Part 2
Program Comprehension - An Evaluation of the Strategies of Sorting, Filtering...
Industry - Testing & Quality Assurance in Data Migration Projects

Similar to ERA - Dependency Profiles for Software Architecture Evaluations (20)

PPTX
Software Architecture Intro
PPTX
Software project management
PPTX
Introduction-to-Software-Development.pptx
PPTX
Introduction-to-Software-Development.pptx
DOC
term paper for cbd models
PDF
What is Software Engineering?
 
PPTX
The-Evolution-of-Software-From-Mainframes-to-the-Cloud .pptx
PPTX
UNIT 1 - MPP.pptxdfvvnfuvbrrujfvbvndvnbn
PDF
Software systems engineering PRINCIPLES
PPTX
Software Engineering Introduction -UNIT 1.pptx
DOCX
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMI
PPTX
unit 1.pptx regasts sthatbabs shshsbsvsbsh
PPSX
Software Development
PPTX
Software Engineering 101
PDF
Week 01-intro se
PPSX
Software engineering
DOC
PDF
2011/2012 CAST report on Application Software Quality (CRASH)
PPT
Softwareengineeringfundamentalssvetlinnakov 1233295163644547-1
Software Architecture Intro
Software project management
Introduction-to-Software-Development.pptx
Introduction-to-Software-Development.pptx
term paper for cbd models
What is Software Engineering?
 
The-Evolution-of-Software-From-Mainframes-to-the-Cloud .pptx
UNIT 1 - MPP.pptxdfvvnfuvbrrujfvbvndvnbn
Software systems engineering PRINCIPLES
Software Engineering Introduction -UNIT 1.pptx
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMI
unit 1.pptx regasts sthatbabs shshsbsvsbsh
Software Development
Software Engineering 101
Week 01-intro se
Software engineering
2011/2012 CAST report on Application Software Quality (CRASH)
Softwareengineeringfundamentalssvetlinnakov 1233295163644547-1
Ad

Recently uploaded (20)

PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Encapsulation theory and applications.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Big Data Technologies - Introduction.pptx
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Machine learning based COVID-19 study performance prediction
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Approach and Philosophy of On baking technology
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
MIND Revenue Release Quarter 2 2025 Press Release
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Encapsulation theory and applications.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
The AUB Centre for AI in Media Proposal.docx
Network Security Unit 5.pdf for BCA BBA.
Big Data Technologies - Introduction.pptx
Per capita expenditure prediction using model stacking based on satellite ima...
Machine learning based COVID-19 study performance prediction
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Approach and Philosophy of On baking technology
Mobile App Security Testing_ A Comprehensive Guide.pdf
Encapsulation_ Review paper, used for researhc scholars
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Programs and apps: productivity, graphics, security and other tools
MIND Revenue Release Quarter 2 2025 Press Release
Ad

ERA - Dependency Profiles for Software Architecture Evaluations

  • 1. Dependency Profiles for Software Architecture Evaluations Eric Bouwers, Arie van Deursen, and Joost Visser September 2011 T +31 20 314 0950 info@sig.eu www.sig.eu
  • 2. Why? Background, motivation, objectives 1I6 Architecture •  “Organizational structure of a software system, including components, connections, constraints, and rationale.” [Kogut and Clements, 1994] Evaluation •  Of implemented architecture •  Monitoring during initial development and continued evolution Metrics •  Traditionally: coupling and cohesion at the level of modules (files, classes) •  Desired: at the architectural level •  Desired: simple, technology-independent, allowing root cause analysis [Heitlager et al 2007] Dependency Profiles © 2011 Software Improvement Group
  • 3. Quantifying encapsulation and independence 2I6 Dependency Profile •  For each top-level component •  Percentages of code in 4 categories A •  Hidden = encapsulated •  Inbound = provides interface •  Outbound = requires interface •  Transit = mixed B A: < 75%, 10%, 15%, 0% > •  Good encapsulation, limited dependence B: < 40%, 20%, 35%, 5% > •  Highly exposed, highly dependent Dependency Profiles © 2011 Software Improvement Group
  • 4. Preliminary observations General 3I6 Hidden code •  Median is 35% •  Ranges from 7% to 100% Transit Systems •  0% for 18 systems •  Over 20% for 10 systems Inbound and outbound •  Outbound is larger than inbound for all but 9 systems Dependency Profiles © 2011 Software Improvement Group 0.0 0.2 0.4 0.6 0.8 1.0 hiddenCode inboundCode outboundCode transitCode
  • 5. Preliminary observations Statistical 4I6 Correlation with size? •  Spearman rank correlation •  None for hidden and transit code •  Weak for inbound (-0.28) and outbound (0.32) Differences per technology, type of system, development context? •  Kolmogorov-Smirnov •  No differences between industry and open source •  No differences between libraries and applications •  Lower percentage of hidden code for Java than for .NET or C/C++ Dependency Profiles © 2011 Software Improvement Group
  • 6. Evaluation Study design 5I6 Data •  Source code, taking top-level packages as components •  Change history Dependent variable •  Percentage of cross-component change-sets Hypotheses •  In systems with low percentages of inbound + transit code, encapsulation is better and therefore changes are less likely to propagate to other components •  In systems with low percentage of outbound + transit code, components are more independent and therefore changes are less likely to propagate to other components Dependency Profiles © 2011 Software Improvement Group
  • 7. Open questions Food for discussion and future work 6I6 Future work •  Empirical validation against internal change ratios •  Include into SIG quality model and standard evaluation process •  Collect experience of SIG consultants with application to 100+ systems annually Discussion •  Purely graph-based architecture metrics abstract too much to evaluate the degree of information hiding / preparedness for change that is achieved. Dr. ir. Joost Visser j.visser@sig.eu http://twitter.com/jstvssr www.sig.eu +31 20 314 0950 Dependency Profiles © 2011 Software Improvement Group