The latest issue of the magazine “IEEE Software” features our article on architecture sustainability: “At ABB, we’re measuring and tracking the architecture sustainability of a large-scale, distributed industrial control system currently under development that’s based on Microsoft technologies and includes a layered architecture. A former version of the system grew to several million LOC and suffered from architecture erosion and high maintenance costs. We adopted a multiperspective approach called Morphosis to avoid such a situation from occurring again. Morphosis focuses on requirements, architecture design, and source code. It includes evolution scenario analysis, scoring of technology choices, architecture compliance checks, and tracking of architecture-level code metrics. This article reports our experiences with tracking selected sustainability measurements over the course of two years.”
Our summary report from the 2012 GI-Dagstuhl Seminar “Multicore SW Performance Engineering” has appeared in ACM SIGMETRICS Performance Evaluation Review: “In the era of multicore and manycore processors, a systematic more and more crucial to the success of modern software systems. This article argues for more software performance engineering research specically for multicore and manycore systems, which will have a profound impact on software engineering practices.”
Research Directions for Multicore Software Performance Engineering
I gave this talk at the GI-Fachgruppentreffen Architekturen 2013 at Fraunhofer IESE, Kaiserslautern on Monday: “Future industrial automation systems will execute a number of control and monitoring functions in central data centers. The cloud computing paradigm will reduce IT costs and enable small companies to flexibly automate production processes. Centralized control and monitoring across companies and domains will facilitate a novel smart ecosystem for industrial automation connecting both embedded devices and information systems. To realize this vision, a number of technical, economical, and social challenges need to be solved. This talk focuses on software architecture challenges for cloud-connected automation systems. It points out the architectural impact of critical non-functional properties, such as latency, security, and multi-tenancy.”
A couple of recent studies assessed the state of model-driven engineering (MDE) and the UML in practice. Hutchinson et al. (ICSE2011) noticed for example that a lot of MDE success is actually hidden and that MDE adoption is often rather driven by evangelists than hard business considerations. Petre (ICSE2013) focused on the UML and found for 50 software professionals that 70 percent do not use the UML. Unfortunately, most of the studies known to me have some methodical flaws, such as improper selection of the sample population. Maybe it is time for a systematic review and comparison of all the available empirical studies and approaches in industry?
ABB uses model-driven approaches in various areas, e.g., architecture documentation, code generation for PLC software, simulation, and even testing. Also, ABB Corporate Research has quite some history of experimenting with model-driven techniques:
- platform-independent model and code generation with ArcStyler, based on the MDA initiative (Interactive Objects success story, 2002)
- UML models to describe higher-level design for safety critical embedded systems (Empirical Software Engineering Journal, 2006)
- work on the OPC UA information model (Springer Book, 2009)
- model-based testing of embedded systems (EU-Project D-MINT, 2010)
- program transformation with srcML (ICSM, 2011)
- reliability prediction based on Markov Models (ISSRE, 2010)
- performance prediction for an industrial control system, based on the Eclipse modeling framework (ICSE, EU-Project Q-ImPrESS, 2011)
- DSL for constructing OPC UA Queries and Event Filters (ECMFA, 2012)
- model transformations for analytical purposes (MASCOTS 2012, ICPE 2013)
- model-based design space exploration for distributed systems (ICPE, 2012)
Current research in this area concerns for example architecture decision modeling (collaboration project with University of Groningen) or using IEC 61499 for modeling control logic.
ABB is currently investigating cloud computing and big data technologies in the context of power and automation. Cloud computing is already common for customer relationship management systems or human resource management systems, but industrial automation is still in the process of moving to the cloud. As an early example, ABB’s SCADA system for oil&gas applications, SCADAvantage, can now be purchased as hosted version in a GlobaLogix data center.
Big data processing amongst other things involves crossing structured and unstructured data to create new insights for customers. Unstructured data can for example be video streams or social media output. ABB’s Asset Health Center is one of the first solutions for processing big data for smart grids. ABB is executing several research projects on cloud computing and big data, providing great opportunities for scientific and industrial research beyond the buzzwords. We are hiring PhD-level professionals!
Here are the slides from my recent talk at ICPE 2013 in Prague on “Rapid Performance Modeling by transforming Use Case Maps to Palladio Component Models”. Please also see the full paper PDF. Photos from the conference are now online. Many thanks to Chris Vogel for his work on this tool!
We got a paper accepted at the Industry Track of the 17th International Software Product Line Conference (SPLC2013) to be held August 26th-30th in Tokyo, Japan: In the paper, we describe how we applied existing domain analysis approaches for software product line engineering and tailored them to include a feature analysis as well as architecture evaluation. We report our experiences from applying the approach in two subdomains of industrial automation.
Architecture maps reconstructed from several industrial software systems during a domain analysis.
The Software Engineering Institute (SEI) Architecture Technology User Network (SATURN) Conference will take place at the Marriott City Center in Minneapolis from April 29 to May 3, 2013. Olaf Zimmermann and me served as program co-chairs this year. The conference features an exciting program with keynotes from Stephan Murer (Credit Suisse), Scott Berkun, and Mary Poppendieck as well as more than 30 talks from renowned industrial speakers. Early registration runs until April 1st!
Yesterday, I gave the industrial keynote at the Workshop on Managed Software Evolution of the DFG Priority Programme 1593. It was held in conjunction with SE 2013, the german multi-conference on software engineering. Slides will be posted soon.
Abstract: Long-living software systems are a necessity in the industrial automation domain, where automation devices are typically operated for decades. Thus, it is a major challenge to design, implement, and maintain such software-intensive systems. This talk presents the case of an industrial control system called MicroSCADA, which has an evolution history of already more than 30 years. We analyze several technical and organizational factors that contributed to the successful evolution of the system since the 1980s. By this, the talk argues for more empirical research in the area of long-living software systems. The talk concludes with an overview of some recent approaches for sustainable software architectures at ABB Corporate Research.
Together with Ian, Jenny, Anne, and Mazeiar, I am organizing SE4SG’13, the 2nd International Workshop on “Software Engineering Challenges for the Smart Grid” at the International Conference on Software Engineering (ICSE) 2013 in San Francisco, US. This 2nd workshop will focus on understanding and identifying the unique challenges and opportunities for SE to contribute to and enhance the design and development of the smart grid. Thanks to all members of the program committee for providing great reviews to the paper submissions. The workshop will be held on May 18th and will feature five paper presentations and a working session.