Venice, Italy — 5-8 April, 2016

Accepted Tutorials

Designing Software Architectures Using ADD 3.0 (full day)

Rick Kazman, University of Hawaii & SEI/CMU, USA
Humberto Cervantes, Universidad Autónoma Metropolitana - Iztapalapa, Mexico
Serge Haziyev, SoftServe Inc., Ukraine
Olha Hyrtsay, SoftServe Inc., Ukraine

Abstract

Attribute Driven Design (ADD) -a method for designing software architectures- was originally developed by the Software Engineering Institute in 2000. In this tutorial we will introduce ADD 3.0 and explain the key changes that have been made. We will also present a detailed real-world case study, in the domain of big data, and walk the participants through a few iterations of the method showing how the steps are performed in practice. Then the participants will have the opportunity to enact several iterations of the method on their own. We will place particular emphasis on the design decisions that are made in the different design iterations: how different concepts are used in different iterations, and how these decisions are made more confidently through the use of a reusable catalog of design concepts, how these are documented, and how these can be analyzed within the design process.


Speed, Data and Ecosystems: The Future of Software Engineering (half day)

Jan Bosch, Chalmers University of Technology, Sweden

Abstract

In the words of Marc Andreessen, software is eating the world. The growth in the role that software plays in society is mindboggling at times and the rate of innovation enabled by software is impressive. However, all this software needs to be built, which means that the importance of software engineering is increasing. During the last decade, agile software development has become mainstream in the software industry, the focus is shifting to “beyond agile”. Based on our research with dozens of companies, the key factors of software engineering in the software-intensive systems industry, going forward, will be focused on speed, data and ecosystems. The tutorial first discusses the trends that lead to our conclusion that the aforementioned factors are central for future software engineering. Based on this, we then discuss the implications that organizations will experience. These implications are concerned with the business, architecture, process and organization dimensions. For each dimension, we discuss specific methods and techniques. Examples include architecture technical debt management, visualization of continuous integration, techniques for evidence-based development as well as organizational models for combining architecture with agile development practices.


Dependability Analysis in the Context of Component-Based System Architectures (half day)

Kai Höfig, Siemens AG, Corporate Technology, Germany

Abstract

The importance of dependable software systems in many application domains of embedded systems, such as aerospace, railway, health care, automotive and industrial automation is continuously growing. Thus, along with the growing system complexity, also the need for dependability assessment as well as its effort is increasing drastically in order to guarantee the high quality demands in these application domains. This half-day tutorial provides a deep understanding why approaches that work fine for a component-based modeling approach of systems, are not applicable to the models that are currently used to analyze RAMS properties. This tutorial especially addresses attendees that work in the area of dependable systems, particularly from domains where an increased software complexity can be observed in recent years, such as aerospace, railway, health care, automotive and industrial automation.