CompArch 2013

The CompArch logo
17–21 June 2013 : Vancouver, British Columbia, Canada

CompArch 2013 Tutorials

All tutorials will be held Monday, 17 June. Each tutorial lasts a half day (morning or afternoon).

Tutorials are included in the conference fee. However, you may also sign up for 1 or 2 tutorials separately. A half day (1 tutorial) is US$190. A full day (2 tutorials) is US$350. Go to the registration page and select registrant type, Tutorials Only.

T1: Architecting Highly Dependable Cloud Applications

instructor: Len Bass

NICTA
Sydney, Australia

abstract:

Cloud can fail. Outages can cause significant data loss, and loss of business. Architects who are designing systems to run in the cloud should know how to achieve dependable systems that enables business continuity. Some cloud providers provide base services in a local data center to support dependability but the application architect must understand how to take advantage of these services in order to achieve high dependability, particularly in achieving cross region business continuity.

In this tutorial, we firstly provide an overview of cloud computing platforms in terms of the typical technical platform architecture. Then we discuss various aspects of dependability — performance, availability, and security. We discuss what can go wrong: from a failure in the machine hosting a virtual machine to a disaster affecting an entire cloud data center.

With this introduction, we discuss various techniques for enabling applications to continue to be available in spite of the occurrence of these problems. These techniques vary from replication of computation to particular patterns to maintain the integrity and confidentiality of messages.

Lastly, we present a set of techniques used by major companies that host their offerings in the cloud. In particular, Netflix has a collection of techniques they call the “Simian Army” that we will describe. We will include examples from other companies whose business depends on having highly dependable systems, and uninterrupted business continuity.

instructor bio:

Len Bass Len Bass is currently a Senior Principal Researcher at NICTA doing research in various aspects of dependable systems. Prior to joining NICTA he was at the Software Engineering Institute of Carnegie Mellon University for 25 years. He has been at the forefront of software architecture research for many of those years writing and lecturing broadly in architecture evaluation, architecture design, architecture requirements, and architecture documentation. He is the co-author of two highly successful books in software architecture (Software Architecture in Practice and Documenting Software Architectures), has lectured around the world, and has taught a variety of tutorials on various subjects.

website: http://www.nicta.com.au/people/lbass

T2: Model-Driven Engineering for Software Architecture Design

instructor: Bedir Tekinerdogan, PhD

Bilkent University
Ankara, Turkey

A common practice in software architecture design is to model and document different architectural views for describing the architecture according to the stakeholders’ concerns. An architectural view is a representation of a set of system elements and relations associated with them to support a particular concern. Having multiple views helps to separate the concerns and as such support the modeling, understanding, communication and analysis of the software architecture for different stakeholders. Architectural views conform to viewpoints that represent the conventions for constructing and using a view. An architectural framework organizes and structures the proposed architectural viewpoints. Different architectural frameworks have been proposed in the literature. Initially, architectural frameworks were proposed with a fixed set of viewpoints but because of the different concerns that need to be addressed for different systems, the current trend recognizes that the set of views should not be fixed but multiple viewpoints might be introduced instead. So far most architectural viewpoints seem to have been primarily used either to support the communication among stakeholders, or at the best to provide a blueprint for the detailed design. In this tutorial we discuss the benefits of applying model driven development approaches for the software architecture design process. For this we will first provide a discussion on the history of software architecture modeling and the state-of-the-art software architecture framework approaches. A reflection on software architecture modeling from a model-driven development perspective will then be presented to provide the motivation for the need for so-called executable architecture views. In this respect, we will discuss the notion of architecture viewpoint languages and describe an approach for modeling these viewpoint languages as domain specific languages. An evaluation approach will be presented to evaluate newly design architecture viewpoint languages. Finally, we will discuss the application of model-to-model transformations and model-to-text transformation techniques using domain specific languages of architecture viewpoints. The tutorial will be supported by corresponding tools and examples.

instructor bio:

Bedir Tekinerdogan Dr. Bedir Tekinerdogan received his MSc degree in Computer Science in 1994, and a PhD degree in Computer Science in 2000, both from the University of Twente, The Netherlands. From September 2003 until September 2008 he served as an assistant professor at University of Twente. Currently he is an assistant professor at Bilkent University in Turkey. He received the rank of Associate Professor from the Turkish Inter-University Council (UAK) in June 2010.

He has around 20 years of professional experience in software engineering research and education. His key research topic is software architecture design and related to this aspect-oriented software development, model-driven software development, software product line engineering, global software development, and service-oriented computing. He has been active in different national and international research and consultancy projects with various software engineering companies such as Philips (The Netherlands), NXP (The Netherlands), Embedded Systems Institute (The Netherlands), Thales BV (The Netherlands), Siemens Nixdorf (The Netherlands), Havelsan (Turkey), Aselsan (Turkey), Meteksan Defence (Turkey) and Cybersoft (Turkey).

He is the founder and leader of the Bilkent Software Engineering Group (Bilsen) which aims to foster research and education on software engineering in Turkey.

website: http://www.cs.bilkent.edu.tr/~bedir/

T3: Round-trip Software Performance Engineering

instructors: Vittorio Cortellessa & Catia Trubiani

University of L’Aquila, Italy

abstract:

Software Performance Engineering (SPE) is the discipline that collects approaches, methodologies, and tools aimed at introducing performance assessment in the software lifecycle. In the last 10 years, SPE has mostly progressed due to the introduction of model-driven techniques. In fact, many approaches have appeared that aim at introducing automated transformations of software architectures into performance models, namely the forward path of a round-trip SPE process. In the last 5 years, several approaches have started to appear in the backward path, that is the interpretation of performance results and the generation of feedback to software architects.

This tutorial is aimed at illustrating the notations, methodologies and tools of SPE, with a particular emphasis to recent approaches to the backward path. We retain that this topic can be of great interest to all researchers and practitioners that, intentionally or not, encounter performance issues in their activity and are not (fully) aware of up to date SPE instruments.

instructor bios:

Vittorio Cortellessa Vittorio Cortellessa has a Master’s Degree in Computer Science from University of Salerno (1991), a Ph.D. in Computer Science from University of Roma “Tor Vergata” (1995). Post-doc fellow at European Space Agency (ESRIN, 1997). Post-doc at Computer Engineering Department, University of Roma “Tor Vergata” (1998–1999). Research Assistant Professor at Computer Science and Electrical Engineering Departiment, West Virginia University (2000–2001). Assistant Professor at Computer Science Department, University of L’Aquila (2002–2005). Associate Professor at the same department (2005-now). His main research interests are: Software Performance Engineering, Software Reliability Engineering, Model-Driven Engineering. He has published more than 70 papers in international conferences and journals of these areas, and he has served in more than 20 Program Committees of international conferences. Recently he has been Program Co-Chair of Euromicro SEAA 2012 and FASE 2013.

website: http://www.di.univaq.it/cortelle

Catia Trubiani Catia Trubiani is a Research Fellow at the University of L’Aquila where she held her Ph.D. in Computer Science in April 2011 with a dissertation on the automated generation of architectural feedback from software performance analysis results. During the Ph.D. program she has collaborated with the Imperial College of London and the Karlsruhe Institute of Technology. Previously she had worked at the Electronic Engineering Department of University of Rome “Tor Vergata” within the framework of the Simple Mobile Services EU FP7 project. Her main research interests include performance analysis and feedback on software architectures, performance antipatterns, and security/performance trade-off in software systems. She serves as referee for conferences and journals in these areas.

website: http://www.di.univaq.it/catia.trubiani

T4: Designing Scalable Software and Data Architectures

instructors: Ian Gorton & John Klein

Software Engineering Institute
Pittsburgh, PA, USA

abstract:

Massive scale software and data systems are becoming ubiquitous. Driven by the needs to handle ever-growing data collections and integrate diverse applications into systems of systems, scalability is becoming the dominant quality attribute for many contemporary software architectures. Designing scalable systems requires us to re-examine long held notions of software and data architecture design, and to fine tune our architectures to address the overriding requirements to scale both predictably and affordably.

In this tutorial we will set the problem context by describing the scalability requirements of a number of example systems, and show how scale exerts new challenges for software architects to address. Examples will be drawn from complex systems of systems integration and ‘big data’ applications that support high volume request loads. We will then present a conceptual framework for characterizing quality attribute requirements for scalable systems, and show how architecture tactics and patterns for scaling are indelibly linked with other quality attributes such as availability, performance and modifiability. Through several worked examples, we will demonstrate how the framework can help architects understand the complex maze of quality attribute trade-offs that are necessary to create solutions that meet specific business needs for highly scalable systems. The examples will describe tactics and patterns that are appropriate for supporting specific quality attribute requirements, with a focus on illustrating how both software and data architectures are of equal importance in achieving high scalability.

We will also demonstrate how the framework can help architects map general tactics and patterns to specific data management technologies. Based on concrete platforms such as MongoDB, Cassandra and Neo4J, we will illustrate how general architecture solution approaches map into code templates for different databases, each of which supports subtly different runtime mechanisms for achieving scalability, performance and availability.

instructor bios:

Ian Gorton Ian Gorton is a Senior Member of Technical Staff at the Carnegie Mellon Software Engineering Institute (SEI), where he does research and consulting in scalable software system architectures. Previously he was a Laboratory Fellow in Computational Sciences and Math at Pacific Northwest National Laboratory (PNNL), where he managed the Data Intensive Scientific Computing Group and was the Chief Architect for PNNL’s Data Intensive Computing Initiative. In this role he was the lead architect for large scale integration and knowledge management platforms for scientific applications. Gorton is a Senior Member of the IEEE Computer Society and a Fellow of the Australian Computer Society.

He can be reached at igorton at sei.cmu.edu.

John Klein John Klein is a Senior Member of Technical Staff at the Carnegie Mellon Software Engineering Institute (SEI) where he does research and consulting in enterprise and system of systems architectures. He works with commercial and government customers in domains that include healthcare, analytics, financial trading, and command and control. Before joining the SEI, John was a chief architect at Avaya, Inc., where he focused on communication analytics, multimodal agents, and the creation and enhancement of the Customer Interaction Product Line architecture. Prior to that, he was an architect at Quintus, where he designed the first integrated multi-channel contact center product and led the technology integration for several acquisitions. John holds a BE degree from Stevens Institute of Technology, and a ME degree from Northeastern University. He is a Senior Member of the ACM, a member of the IEEE Computer Society, and secretary of IFIP WG 2.10 on Software Architecture.

website: http://www.sei.cmu.edu/about/people/profile.cfm?id=klein_14435

T5: Strategic Management of Technical Debt

instructors: Rod Nord & Ipek Ozkaya

Software Engineering Institute
Pittsburgh, PA, USA

abstract:

The technical debt metaphor acknowledges that development teams sometimes accept compromises in a system in one dimension (for example, modularity) to meet an urgent demand in some other dimension (for example, a deadline), and that such compromises incur a “debt”. If not properly managed the interest on this debt may continue to accrue, severely hampering system stability and quality and impacting the team’s ability to deliver enhancements at a pace that satisfies business needs.

Although unmanaged debt can have disastrous results, strategically managed debt can help businesses and organizations take advantage of time-sensitive opportunities, fulfill market needs and acquire stakeholder feedback. Because architecture has such leverage within the overall development life cycle, strategic management of architectural debt is of primary importance.

During this session, we will discuss the technical debt metaphor and learn about techniques for measuring and communicating technical debt. We will also play the Hard Choices game, an engaging technique for communicating the trade-offs of technical debt management to fellow colleagues and managers. In your quest to release a quality product, you must decide in the face of uncertainty whether to take shortcuts and incur penalties, or to traverse more of the board to potentially earn more value. At the end of the game, we’ll compare strategies and share practices to help make these choices. We will conclude by raising awareness of efforts in the research community to move beyond the metaphor to provide software engineers a foundation for managing trade-offs based on models of their economic impacts.

instructor bios:

Ipek Ozkaya Ipek Ozkaya is a senior member of the technical staff in the Research, Technology, and System Solutions Program at the Software Engineering Institute. Her primary work is on developing techniques and methods for improving software architecture practices by focusing on software economics and requirements management. Most recently, Dr. Ozkaya has chaired the annual SEI Architecture Technology User Network Conferences, 2006–2010. In addition, she has delivered tutorials at WICSA 2008, OOPSLA 2008, and ICSE 2009.

website: http://www.sei.cmu.edu/about/people/profile.cfm?id=ozkaya_13614

Rod Nord Robert L. Nord is a senior member of the technical staff in the Research, Technology, and System Solutions Program at the Software Engineering Institute (SEI). He is engaged in activities focusing on agile architecting and works to develop and communicate effective methods and practices for software architecture. He is co-author of the practitioner oriented books, Applied Software Architecture and Documenting Software Architectures: Views and Beyond, published by Addison-Wesley and lectures on architecture-centric approaches. Dr. Nord is the chair of the steering committee of WICSA conference series, in addition to organizing different events (tutorials, workshops, and sessions) at software engineering and architecture venues (e.g., ICSE, ECSA, SATURN WICSA, and SPLC).

website: http://www.sei.cmu.edu/about/people/profile.cfm?id=nord_13615