SAM will be held in conjunction with WICSA 2014
ABB Corporate Research
Metrics for Sustainable Software Architectures: An Industry Perspective
Industry practitioners grapple with poor and degraded architectures that slow the progress of software evolution and reduce profits. Practitioners require architecture metrics that support sustainable software architectures reflecting quality attributes such as maintainability, extensibility, component reliability, and structural integrity. Improving software maintainability through architecture design involves guiding the dependencies of architecture components to their most optimal configuration. Practitioners need to measure architecture extensibility to support feature evolution necessary to sustain a software business model. Metrics related to component reliability include component failure rate and quantified fault-tolerant design features that combine in models of system use. Metrics for structural integrity should support evaluation of the risk of injecting faults when modifying software components in an architecture.
Each of these areas relates to a specific business need that provides value to the product and the organization. Maintainability for software relates to development effort for new features and bug fixes. Extensibility relates to feature velocity, which in turn drives revenue through new software sales. Component reliability drives customer satisfaction and performance in business-critical systems. Structural integrity of an architecture drives customer satisfaction (controlling the bad-fix rate) and employee satisfaction through fewer issues with the product. Supporting architecture metrics in these domains will provide industrial practitioners with tools they need to manage software architecture in a business-case-driven corporate environment. This presentation covers experiences in the development of measurement objectives that support these domains.
Eric Harper is a lead principal scientist at ABB Corporate Research specializing in software architecture and sustainable technologies. Over the past six years he has made significant contributions to process automation, substation automation, and power electronics. Eric graduated from Virginia Tech and then Rensselaer Polytechnic Institute in electric power engineering as part of the General Electric Advanced Course in Engineering (ABC), which provides training across the engineering disciplines for practical use of computer solutions and how to effectively communicate their results. Eric then worked for Westinghouse in the Power Generation division, making substantial technical contributions for a service bureau dedicated to monitoring and diagnosing conditions in electric power plants. Since then Eric has had a variety of assignments over the past two decades as a hands-on project lead, development manager, and software architect in factory automation, business applications, middleware tools, server management, IT security, and health care IT. Eric’s current work is to lead ABB’s architecture for advanced data analytics.
Muhammad Atif Javed
Software Architecture Research Group
University of Vienna, Austria
Empirical Evaluation of the Understandability of Architectural Component Diagrams
The architecture of a software system plays a crucial role during evolution and maintenance, as it provides the means to cope with the inherent system complexity by abstracting from implementation and design details. Architectural component models represent high-level designs and are frequently used as a central view of architectural descriptions of software systems. Hence, understandability of those models is crucial as they play a key role in supporting the architectural understanding of a software system. In this paper, we present the results from a study we carried out to examine to what extent the software architecture could be conveyed through architectural component diagrams. The statistical evaluation of the results shows that metrics such as the number of components, number of connectors, number of elements, and number of symbols used in the diagrams can significantly decrease architectural understandability when they are above and below a certain roughly predicted threshold. Also, our results indicate that architectural understandability is linearly correlated with the perceived precision and general understandability of the diagrams.
Swinburne University of Technology, Melbourne
On the Challenges in Extracting Metrics from Java Bytecode
Extracting metrics from real-world software systems is generally considered to be a nontrivial task due to (a) challenges in processing large amounts of source code and (b) a variety of factors determining what artifacts belong to a system's build. For Java-based systems, the Bytecode generated by compilers is often considered as good as source code for analysis purposes, but without the associated challenges of identifying what precisely is part of a system's build and how the system is to be built. Furthermore, there are a variety of tools available to assist in processing Bytecode . However, unless appropriate care is taken, metrics extracted from Java Bytecode can be imprecise or even wrong, especially when common heuristics are used. In this presentation, I will elaborate on our recent experiences in extracting metrics for Java-based systems, discuss the challenges we faced, and illustrate the approaches taken to use Bytecode as a source for system metrics.
Jean-Guy Schneider is an associate professor of software engineering at Swinburne University of Technology, Melbourne. His main research interests lie in the general area of reliable software systems and are positioned in the intersection of software engineering and computer science. More specifically, his research interests are in object-oriented and concurrent/distributed/service-oriented programming, scripting and composition languages, and the definition of formal approaches for component-based software engineering. Furthermore, he is interested in methodologies and tools in the context of the evolution of object- and component-based software systems, agile software development processes, and mobile computing as well as the influence and applicability of software development processes in tertiary education.
Industrial Software Systems Program
ABB Corporate Research Germany
Towards Quantitative Metrics for Architecture Models
Software architectures and their representations in models are instrumental in achieving sustainability and the fulfillment of requirements. In this context, sustainability encompasses cost-efficient maintainability and evolvability, which are central concerns for long-living software systems. Hence, it is of great importance to support an architect in addressing these concerns when designing and evolving architectures. However, there is no framework available in which a designed architecture can be evaluated against these important quality attributes. In this paper, we address this challenge by proposing seven metrics that characterize the completeness, consistency, correctness and clarity of the documentation. These seven metrics should enable an architect to efficiently identify issues in an architecture model.
Since 2012 Dr. Stephan Sehestedt is a researcher for the
Corporate Research Center of ABB Germany within the Research Area Software,
where he focuses on software architectures. Stephan received his PhD in
Engineering in 2012 from the University of Technology, Sydney (UTS), Australia.
In the ARC Centre of Excellence for Autonomous Systems at UTS, he worked in the
field of mobile robot navigation. He was involved in research projects ranging
from autonomous driving to indoor service robots as well as high-profile
industry-funded projects.His work
centered on algorithm development and software frameworks for complex robotic
systems. Stephan received his Diploma from the University of Applied Sciences
Aachen (FH Aachen), Germany, in 2005.