SAM 2015 Presentations

This file contains sessions and presentations from the Second International Workshop on Software Architecture Metrics (SAM 2015), held at the 37th International Conference on Software Engineering on May 16-24 in Florence, Italy.

Sessions and presentations included:

*A Metric-Based Approach to Managing Architecture-Related Impediments in Product Development Flow: An Industry Case Study from Cisco, Ken Power and Kieran Conboy
*An Analysis of Techniques and Methods for Technical Debt Management: A Reflection from the Architecture, Carlos Fernandez-Sanchez, Juan Garbajosa, Carlos Vidal, and Agustin Yague
*Architecture-Based Quality Attribute Synergies and Conflicts, Barry Boehm
*Comparing the Applicability of Complexity Measurements for Simulink Models During Integration, Jan Schröder, Christian Berger, Thomas Herpel, and Miroslaw Staron
*Evolution of Object-Oriented Coupling Metrics: A Sampling of 25 Years of Research, Ana Nicolaesc, Horst Lichter, and Yi Xu
*Exploring the Stability of Software with Time-Series Cross-Sectional Data, Jukka Ruohonen, Sami Hyrynsalmi, and Ville Leppänen
*Metrics for Architectural Synthesis and Evaluation: Use Cases and Compilation by Viewpoint, Olaf Zimmermann
*Toward Assessing Software Architecture Quality by Exploiting Code Smell Relations, Francesca Arcelli Fontana, Vincenzo Ferme, and Marco Zanoni 
*Using Metric Time Lines for Identifying Architecture Shortcomings in Process Execution Architectures, Daniel Lübke




A Metric-Based Approach to Managing Architecture-Related Impediments in Product Development Flow: An Industry Case Study from Cisco, Ken Power and Kieran Conboy

Contemporary lean thinking, especially in knowledge work areas like software engineering, begins with understanding flow. Architecture plays a vital role in enabling the flow of value in software engineering teams and organizations. To date, there has been little research in understanding impediments to flow in software engineering organizations. A focus on enabling flow through removing impediments is a useful perspective in creating a more agile, lean-thinking software engineering organization, particularly when supported by appropriate metrics.

This presentation describes a case study of how architecture-related impediments impact the flow of work in software engineering teams and organizations. The key contributions of this paper are centered on the concept of flow, impediments in modern software engineering, and its relationship with architecture. We develop an understanding of how a focus on flow and removing impediments, supported by appropriate metrics, is helpful in identifying architecture-related challenges. Drawing on research of one company's practices, the paper presents an example of a scenario where flow analysis using specific metrics reveals architecture-related impediments and shows how addressing these impediments improves effectiveness and productivity in ways that would not otherwise have been revealed.





An Analysis of Techniques and Methods for Technical Debt Management: A Reflection from the Architecture, Carlos Fernandez-Sanchez, Juan Garbajosa, Carlos Vidal, and Agustin Yague

Technical debt is a metaphor referring to the consequences of weak software development. Managing technical debt is necessary in order to keep it under control, and several techniques have been developed with the goal of accomplishing this. However, available techniques have grown disperse and managers lack guidance. This presentation covers this gap by providing a systematic mapping of available techniques and methods for technical debt management, covering architectural debt, and identifying existing gaps that prevent managing technical debt efficiently.





Architecture-Based Quality Attribute Synergies and Conflicts, Barry Boehm

Large or critical software projects often identify particularly critical quality attributes (QAs), often called nonfunctional requirements or -ilities, and organize integrated product teams (IPTs) to address them. Frequently, the resulting IPT solutions include architectural decisions that address the QA of interest but seriously conflict with other QAs that are also important but less well analyzed. These conflicts will often become major sources of significant technical debt and expensive architectural breakage to rectify. As the QA of interest also has synergies with other QAs, the rectification must be careful not to undo the synergies. This presentation summarizes recent research to develop QA synergies and conflicts matrices that can be used by software system engineers to identify potential areas of concern in balancing a system’s QAs.





Comparing the Applicability of Complexity Measurements for Simulink Models During Integration, Jan Schröder, Christian Berger, Thomas Herpel, and Miroslaw Staron

Context: Simulink models are used during software integration testing in the automotive domain on hardware in the loop (HIL) rigs. As the amount of software in cars is increasing continuously, the number of Simulink models for control logic and plant models is growing at the same time. 

Objective: This study investigates the applicability of three approaches for evaluating model complexity in an industrial setting. Additionally, insights on the understanding of maintainability in industry are gathered. 

Method: Simulink models from two vehicle projects at a German premium car manufacturer are evaluated by applying the following three approaches: Assessing a model’s (a) size, (b) structure, and (c) signal routing. Afterward, an interview study is conducted, followed by an on-site workshop in order to validate the findings. 

Results: The measurements of 65 models resulted in comparable data for the three measurement approaches. Together with the interview studies, conclusions were drawn about how well each approach reflects the experts' opinions. Additionally, it was possible to get insights on maintainability in an industrial setting. 

Conclusion: By analyzing the results, differences between the three measurement approaches were revealed. The interviews showed that the expert opinion tends to favor the results of the simple size measurements over the measurement, including the signal routing.





Evolution of Object-Oriented Coupling Metrics: A Sampling of 25 Years of Research, Ana Nicolaesc, Horst Lichter, and Yi Xu

Coupling is one of the most important properties that affect the quality of the design and implementation of a software system. In the context of object-oriented software development, coupling metrics and their impact on quality attributes have been investigated for a quarter of a century. In this work, we review and critically analyze the developments in this domain by considering 26 of the most influential research papers addressing object-oriented coupling. Our analysis reveals that a very strong theoretical background has been already developed, but unfortunately without a clear impact on the industry practices and software analysis tooling. Further, recent developments fail to address this problem and seem to even contribute to increasing this gap. We argue that the direction of current research should be shifted toward systematizing and evaluating existing results rather than exploring new applicability domains and defining new metric suites.





Exploring the Stability of Software with Time-Series Cross-Sectional Data, Jukka Ruohonen, Sami Hyrynsalmi, and Ville Leppänen

The stability of software is a classical topic in software engineering. This research investigates stability of software architectures in terms of an object-oriented design principle presented by Robert C. Martin. The research approach is statistical: the design principle is evaluated with a time-series cross-sectional (TSCS) regression model. The empirical sample covers a release history from the Java library Vaadin. The empirical results establish that the design principle cannot be used to characterize the library. Besides delivering this negative empirical result, the research provides the necessary methodological background that is required to understand TSCS modeling.





Metrics for Architectural Synthesis and Evaluation: Use Cases and Compilation by Viewpoint, Olaf Zimmermann

During architectural analysis and synthesis, architectural metrics are established tacitly or explicitly. In architectural evaluation, these metrics then can be consulted to assess whether architectures are fit for purpose and in line with recommended practices and published architectural knowledge. This experience report presents a personal retrospective of the author’s use of architectural metrics during 20 years in IT architect roles in professional services as well as research and development. This reflection drives the identification of use cases, critical success factors, and elements of risk for architectural metrics management. An initial catalog of architectural metrics is then compiled, which is organized by viewpoints and domains. The report concludes with a discussion of practical impact of architectural metrics and potential research topics in this area.





Toward Assessing Software Architecture Quality by Exploiting Code Smell Relations, Francesca Arcelli Fontana, Vincenzo Ferme, and Marco Zanoni 

We can evaluate software architecture quality using a plethora of metrics proposed in the literature, but interpreting and exploiting these metrics in the right way are not always simple tasks. This is true for both fixing the right metric threshold values and determining the actions to be taken to improve the quality of a system. Instead of metrics, we can detect code or architectural anomalies that give us useful hints about the possible architecture degradation. In this presentation, we focus our attention on the detection of code smells and in particular on their relations and co-occurrences, with the aim to evaluate technical debt in an architectural context. We start from the assumption that certain patterns of code anomalies tend to be better indicators of architectural degradation than simple metrics evaluation.




Using Metric Time Lines for Identifying Architecture Shortcomings in Process Execution Architectures, Daniel Lübke

Process Execution with Service Orchestrations is an emerging architectural style for developing business software systems. However, few special metrics for guiding software architecture decisions have been proposed, and no existing business process metrics have been evaluated for their suitability. By following static code metrics over time, architects can gain a better understanding of how processes and the whole system evolve and whether the metrics evolve as expected. This allows architects to recognize when to intervene in the development and make architecture adjustments or refactorings. This presentation describes an exploratory study that uses timelines of static process size metrics for constant feedback to software architects that deal with process-oriented architectures.