Powered by
2nd ACM SIGPLAN International Workshop on Comprehension of Complex Systems (CoCoS 2017),
October 23, 2017,
Vancouver, BC, Canada
2nd ACM SIGPLAN International Workshop on Comprehension of Complex Systems (CoCoS 2017)
Frontmatter
Message from the Chairs
The sheer complexity and emergent behaviors of large scale systems make it impossible for people to completely understand them without the aid of specific tools. This is especially the case as systems are increasingly developed using advanced composition technologies such as aspect-orientation and dynamic script languages. Those modularity technologies enable the creation and application of powerful abstractions, which yields significant benefits in terms of reuse and separation of concerns. But those same abstractions, in languages, middleware, and models, also hide important system properties.
This compounds the problem of comprehending run-time behavior in terms of original design concepts that have been abstracted away (for example debugging AO programs, or diagnosing violations of performance service-level agreements). Wider adoption of advanced modularity technologies depends on tools to assist developers in understanding the run-time behavior of complex composed systems. This workshop aims to create a dialog on the problem of program comprehension and its relation to modularity in this wider context.
Generative Approaches
Megamodelling with NGA Multimodels
Vadim Zaytsev
(Raincode Labs, Belgium)
One of the contemporary methods of tackling complexity and obscurity of information systems is megamodelling: creating explicit models that express relations between software artefacts, languages and transformations. Such megamodels are capable of encapsulating architectural knowledge of a system while retaining the ability to ``zoom in'' and provide implementation details whenever needed, up to and including providing links to concrete assets like files and tools. There are many approaches to megamodelling yet none as widely accepted as UML in software modelling or as (E)BNF in the grammarware technological space. In this paper, we propose a methodology to model the zooming feature of megamodels explicitly, without fixing the depth up front, and explain why a behavioural aspect is required in many circumstances. The three aspects we propose are Nodes, Graphs and Automata (NGA for short), representing the abstract view on an architectural entity, a more structurally detailed view and a dynamically behaving executable model, respectively. There were none prior (mega)modelling approaches to cover all three such aspects. The NGA approach to megamodelling allows to add behavioural properties to the specifications of information systems while keeping all the functionality of a usual megamodelling methodology (abstraction, navigation, traceability and resolution). We provide a range of case studies to justify bearing with the added complexity.
@InProceedings{CoCoS17p1,
author = {Vadim Zaytsev},
title = {Megamodelling with NGA Multimodels},
booktitle = {Proc.\ CoCoS},
publisher = {ACM},
pages = {1--6},
doi = {10.1145/3141842.3141843},
year = {2017},
}
Publisher's Version
Jatte: A Tunable Tree Editor for Integrated DSLs
Alfred Åkesson and
Görel Hedin
(Lund University, Sweden)
Complex systems often integrate domain-specific languages to let users customize the behavior. Developing tooling for such languages is typically time-consuming and error-prone. We present Jatte, a tool intended to simplify this development. Jatte works as a generic tree editor for an abstract syntax, but uses aspects and attribute grammars to support powerful modular ways of tuning both the projected view and the editing commands. We present the key features of Jatte, and discuss its application in an orchestration language for internet of things.
@InProceedings{CoCoS17p7,
author = {Alfred Åkesson and Görel Hedin},
title = {Jatte: A Tunable Tree Editor for Integrated DSLs},
booktitle = {Proc.\ CoCoS},
publisher = {ACM},
pages = {7--12},
doi = {10.1145/3141842.3141844},
year = {2017},
}
Publisher's Version
Debugging
How Did the Failure Come to Be?
Mohammadreza Azadmanesh and
Matthias Hauswirth
(University of Lugano, Switzerland)
Upon a program failure, programmers ask how the failure came to be. Modern debugging tools employ sophisticated mechanisms to help answering this question. These mechanisms embody a spectrum of contributions to program comprehension. In this paper, we study this spectrum with the goal of finding an optimal position. We define the optimal position as the set of techniques which tools can employ to efficiently answer this debugging question. Our position demands a big picture of a program execution, which is essential for better program comprehension. We demonstrate our position with two case studies. We envision that emerging debugging tools can benefit from taking this position to facilitate the debugging process.
@InProceedings{CoCoS17p13,
author = {Mohammadreza Azadmanesh and Matthias Hauswirth},
title = {How Did the Failure Come to Be?},
booktitle = {Proc.\ CoCoS},
publisher = {ACM},
pages = {13--18},
doi = {10.1145/3141842.3141845},
year = {2017},
}
Publisher's Version
Survey of Approaches for Assessing Software Energy Consumption
Felix Rieger and Christoph Bockisch
(University of Marburg, Germany)
Though the energy consumption of software-controlled ICT systems ranging from mobile devices to data centers is increasingly gaining attention, energy optimization is still far from an established task in the software development process.
Therefore, we have surveyed the available research on assessing the energy consumption of software systems, which showed a lack of development tools, but several approaches exist for measuring the energy consumption.
We group these approaches according to how measurement data is made available and compare several characteristics of the collected data.
The survey shows that not only development tools for software energy optimization are still missing, but there is also a lack of fine-grained measurement approaches as well as approaches for general-purpose platforms.
@InProceedings{CoCoS17p19,
author = {Felix Rieger and Christoph Bockisch},
title = {Survey of Approaches for Assessing Software Energy Consumption},
booktitle = {Proc.\ CoCoS},
publisher = {ACM},
pages = {19--24},
doi = {10.1145/3141842.3141846},
year = {2017},
}
Publisher's Version
proc time: 1.07