On Monday, August 25, and Tuesday, August 26, Tutorials will enrich the program of ECSA 2014.
T1: Model-Driven Engineering for Software Architecture Design
|Gernot Starke, Alexander Heusingfeld
T4: Software Improvement – Done Right
|Afternoon||P. Lago, I. Malavolta, H. Muccini, P. Pelliccione, A. Tang
T2: The Road Ahead for Architectural Languages
T3: Introduction to Empirical Research Methodologies
T5: Current architectures for large-scale statistical data processing
T6: Migrating to a Service-Oriented Architecture
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 provided 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.
Dr. Bedir Tekinerdogan received his PhD degree in Computer Science from the University of Twente in The Netherlands. He has more than 20 years of professional experience in software engineering research and education. His primary research concerns the application of model-driven development to support architecture design and analysis.
He has been active in more than 30 national and international research and consultancy projects and has been a reviewer of more than 50 academic and industrial software projects. He is the author of more than 150 scientific publications on different topics in software engineering. He is the steering committee chair of the Turkish Software Architecture Design Conference series, and the founder and leader of the Bilkent Software Engineering Group (Bilsen) which aims to foster research and education on software engineering in Turkey.
Details about his work can be found at http://www.cs.bilkent.edu.tr/~bedir/
“If you think good architecture is expensive, try bad architecture” With this reflection, Brian Foote and Joseph Yode convey the message that developing an architecture is complex and expensive. One of the complex and expensive tasks in software architecture design is the precise specification and communication of an architecture. A badly specified architecture design can create misunderstanding, and causes design and implementation flaws in a system. In this tutorial, we build on empirical studies to help us examine architectural languages (ALs) and model-driven engineering (MDEs) as means to describe architecture design. The empirical study for architectural languages helps better understanding practitioner needs and requirements of the next generation of architectural languages. Then, the tutorial will explore how to make use of Model-Driven Engineering (MDE) to realize new generation architectural languages. We also discuss related limitations of MDE techniques.
Patricia Lago is associate professor at the VU University Amsterdam, the Netherlands, leading the group on software and services. Her research interests are in energy-aware and sustainable software engineering, software architecture and service orientation. She has a PhD in Control and Computer Engineering from Politecnico di Torino, Italy. She is chair of the IEEE/IFIP WICSA Steering Committee, member of the IFIP 2.10 Working group on Software Architecture, the IFIP 2.14 Working group on Services-based Systems, and the Dutch Knowledge Network on Green Software. She published over 120 scientific articles in top journals and venues in her fields of interest. She is member of ACM and IEEE.
Ivano Malavolta is postdoctoral researcher at the Gran Sasso Science Institute, Italy. He has a PhD in Computer Science from the University of L’Aquila, Italy. Currently, his research activity is positioned in three main fields: software architecture, Model-Driven Engineering, and mobile-enabled systems. He is especially interested in investigating on how MDE techniques can be exploited for architecting complex and mobile-enabled software systems at the right level of abstraction. He is program committee member and reviewer of international conferences and journals in his fields of interest. He is a strong advocate of applying academic research results in real scenarios, and he is working on projects that have been awarded as the most innovative solutions in both national and international venues. He is member of the ACM and the IEEE.
Henry Muccini received is PhD degree in Computer Science from the University of Rome La Sapienza – in 2002. He is currently an Assistant Professor at the University of L’Aquila and he has been visiting professor at Information and Computer Science, University of California, Irvine. Henry’s main research interests are related to the role of software architectures for producing quality software. In this direction, Henry has been investigating how software architectures can be used for the verification and validation of complex software systems. More information about his work can be found at – http://www.henrymuccini.com.
Patrizio Pelliccione is associate professor at the Chalmers University of Technology and University of Gothenburg, Sweden, Department of Computer Science and Engineering and he is also Assistant Professor (on leave) at the University of L’Aquila, Italy, Department of Information Engineering, Computer Science and Mathematics. He got is PhD in 2005 at the University of L’Aquila and from February 2014 he is Docent in Software Engineering – University of Gothenburg. His research topics are mainly in software engineering, software architectures modelling and verification. He has coauthored more than 80 publications in journals and international conferences and
workshops in this theme. More information is available at http://www.patriziopelliccione.com.
Antony Tang received the PhD degree in information technology from the Swinburne University of Technology. He is an associate professor in Swinburne University of Technology’s Faculty of Science, Engineering and Technology. Prior to being a researcher, he had spent many years designing and developing software systems. His research interests include software architecture design reasoning, software development processes, software architecture and knowledge engineering. He is a member of the ACM and the IEEE.
Advancing software engineering and facilitating the adoption and acceptance of research findings in practice involves the development and the evaluation of new approaches. Furthermore, empirical studies help us study phenomena, current practices, and identify areas for future research. This tutorial provides an introduction into empirical research and the most common empirical research methods applied in software engineering. The tutorial will enable participants to recognize the need for empirical studies, provide advice for how to conduct empirical studies, and discuss how to communicate the results of studies. Data collection and analysis techniques will be discussed as well as the most common threats to the validity of studies. In detail, participants will a) get an understanding of what empirical research is and what types of studies exist (primary studies, secondary studies), b) learn how to select the most common research methods and understand the relationships between different methodologies, c) learn about success factors for industry collaboration and common pitfalls when publishing empirical studies, and d) learn how to appraise and interpret academic research and its applicability in industry. Throughout the tutorial, examples will be used, including some do’s and don’ts for empirical research. The tutorial draws on experiences and lessons learned from planning and conducting empirical studies, as well as on current literature. The tutorial is intended for new graduate students (MSc, PhD), junior academics (researchers, educators) and industrial practitioners with no experience in conducting empirical research and with no significant knowledge about empirical research in general.
Matthias Galster is a Lecturer (equivalent to Assistant Professor in the US / Canada) in Software Engineering in the Department of Computer Science and Software Engineering at the University of Canterbury, Christchurch, New Zealand. He has been conducting and publishing empirical studies for several years (at conferences such as WICSA, ECSA, QoSA; in journals such as IST, TSE). Matthias has been teaching undergraduate and graduate software engineering courses in the Netherlands as well as in New Zealand for several years. Matthias has been involved in organizing workshops at well-known software engineering conferences (e.g., at ICSE, RE, WICSA).
Greenfield development is a rare luxury in the software world. Usually developers and software architects have to enhance, modify or repair existing systems. The emphasis of changes lies on additional features, instead of architectural, structural or conceptual improvement – often resulting from restricted budgets and severe timing constraints.
This tutorial helps you out of this maintenance dilemma – by showing how to:
- identify important and valuable improvement opportunities within your system,
- convince management that architectural evolution is neccessary – and which benefits and risks to expect,
- find appropriate solution approaches to technical problems and risks,
- maintain conceptual integrity of your system over its complete lifetime – keeping understandability high and maintenance costs an adequate ranges.
We introduce aim42 – the (open source) methodical approach to systematic architecture improvement.
aim42 relies on a few clear domain concepts and works iteratively in three phases (analyze, evaluate, improve) supported by crosscutting activities. For each phase, In the tutorial, you experience many of the proven and established practices and patterns contained in aim42. We explain how to addresses both business and technical stakeholders of your system.
By participating, you enhance your own methodical toolset by various practices to identify problems and issues, evaluate those in economical terms and find technical and structural remedies for improvement.
All our content is backed by intensive experience. We cover detailed examples from various domains and projects, and provide practical tipps on how to improve your own systems.
Alexander Heusingfeld is a senior consultant for architecture and software engineering at InnoQ, Germany. He counsels clients in the sectors of whole sale, logistics and telecommunications. With more than a decade of experience in Java development he designs, evaluates and implements architectures for enterprise application integration. He tweets as @goldstift, blogs at http://goldstift.de and speaks at international conferences, e.g. JavaONE, OOP etc. Alex is active committer to the aim42 method.
Gernot Starke is innoQ fellow, software architect, consultant and trainer. He works in various domains for mid-sized to large clients from logistics, finance, insurance, automotive and industry. He authored numerous books on methodical software architecture, patterns and development, co-founded arc42 (the framework for software architecture documentation and communication), the iSAQB e.V. (an open association for software architecture education) and the aim42.org method for improvement. Find his blog at http://it-and-more.blogspot.com, his tweets at @gernotstarke and further information at http://gernotstarke.de.
This tutorial will cover data management architectures suitable for large-scale analytical workloads occurring in Machine Learning. We will cover extension to Relational Database Management Systems (RDBMS) as well as MapReduce and Spark on top of Hadoop.
Romeo Kienzler works as Data Scientist and Architect in the IBM Innovation Center Zurich, Switzerland where he addresses data analytics challenges of IBM clients, Independent Software Vendors (ISVs), Start-ups and Academic Institutions.
This half-day tutorial deals with the subject of reusing existing code as web services in a service-oriented architecture. It begins with a lecture on service-oriented architectures and how they can be constructed. The challenge lies in collecting the services. They can be bought, rented, borrowed, developed or taken from the existing code base. The enterprise SOA will usually consist of a mixture of these service types. In deciding to what degree existing software can be used the user must make an inventory of the current legacy systems and select components which could be candidates for reuse as services. These have to then be analyzed, adapted and wrapped behind a WSDL or WADL interface. The tutor will present tools for doing that. The tutorial continues with a demonstration of the wrapping tools using both procedural and object-oriented code. After that participants are given the chance to document the architecture using SoaML and to review the quality of the architecture. The service in question is an ordering service written in COBOL and Java.
Harry Sneed is a graduate of the University of Maryland. He has been working in the field of reengineering and migration since 1984 when he reported on a renovation project at the Bertelsmann AG in the IEEE Software Magazine. Since then he has been involved in dozens of reengineering and migration projects, has written five books alone on that subject, has published more than 150 articles on that subject, has been rewarded by the IEEE for his achievements in reengineering in 1996 and received the Stevens Award for his practical contributions to the field in 2009. Sneed has recently published several papers on migrating to web services. Besides working in industrial projects, he also teaches at the Universities of Regensburg, Dresden and Szeged as well as the technical high schools of Vienna and Hagenberg in Austria. He is recognized as an international authority in the field of software maintenance.