Powered by
13th ACM International Workshop on Context-Oriented Programming and Advanced Modularity (COP 2021),
July 12, 2021,
Virtual, Denmark
13th ACM International Workshop on Context-Oriented Programming and Advanced Modularity (COP 2021)
Frontmatter
Message from the Chairs
Welcome to COP 2021, the 13th International Workshop on Context-Oriented Programming and Advanced Modularity, co-located with the 35th European Conference on Object-Oriented Programming (ECOOP 2021) and the 30th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2021).
Context-Oriented Programming (COP) is a programming paradigm that directly supports variability of contexts at the programming level. It enables run-time behavior to be dispatched directly on any varied properties of the execution or user context. COP addresses a crucial need of modern software systems, where continuous adaptation to the ever-changing execution and usage contexts is the norm not the exception of computing.
Papers
Resolving Synchronization Conflicts in Role-Based Multimodel-Synchronization Environments
Sebastian Ebert,
Tim Kluge, and
Sebastian Götz
(TU Dresden, Germany)
The ability to collaboratively edit data in distributed environments is essential in our information-based industry. Typically users or systems concurrently access and modify data from different locations for different purposes. Each purpose might require its own representation and subset of the shared data (i.e., a model), for the editor to be productive. Consequently, a multi-model system results, which requires multi-directional synchronization. Although some approaches exist to realize such systems, none of these supports concurrent modifications. To overcome this limitation, we extend previous work on role-oriented model synchronization with a novel conflict detection and resolution approach. Role-oriented programming has been shown to be an adequate paradigm to realize multi-model systems, as it offers separation of concerns at the level of object collaborations and allows to express context-dependent behavior. We evaluate our approach using an employee data management case study and assess the introduced performance overhead.
@InProceedings{COP21p1,
author = {Sebastian Ebert and Tim Kluge and Sebastian Götz},
title = {Resolving Synchronization Conflicts in Role-Based Multimodel-Synchronization Environments},
booktitle = {Proc.\ COP},
publisher = {ACM},
pages = {1--8},
doi = {10.1145/3464970.3468412},
year = {2021},
}
Publisher's Version
Info
First-Class Concepts: Reifying Architectural Knowledge beyond the Dominant Decomposition
Toni Mattis,
Tom Beckmann,
Patrick Rein, and
Robert Hirschfeld
(HPI, Germany; University of Potsdam, Germany)
In software engineering, programs are ideally partitioned into independently maintainable and understandable modules. As a system grows, its architecture gradually loses the capability to modularly accommodate new concepts. While refactoring is expensive and the language might lack appropriate primary language constructs to express certain cross-cutting concerns, programmers are still able to explain and delineate convoluted concepts through secondary means: code comments, use of whitespace and arrangement of code, documentation, or communicating tacit knowledge.
Secondary constructs are easy to change and provide high flexibility in communicating cross-cutting concerns and other concepts among programmers. However, they have no reified representation that can be explored and maintained through tools.
In this exploratory work, we discuss novel ways to express a wide range of concepts, including cross-cutting concerns, patterns, and lifecycle artifacts independently of the dominant decomposition imposed by an existing architecture. Our concepts are first-class objects inside the programming environment that retain the capability to change as easily as code comments. We explore new tools that allow programmers to view and change programs from conceptual perspectives rather than scattering their attention across existing modules.
Our designs are geared towards facilitating multiple secondary perspectives on a system to co-exist alongside the original architecture, hence making it easier to explore, understand, and explain complex contexts and narratives not expressible in traditional modularity constructs.
@InProceedings{COP21p9,
author = {Toni Mattis and Tom Beckmann and Patrick Rein and Robert Hirschfeld},
title = {First-Class Concepts: Reifying Architectural Knowledge beyond the Dominant Decomposition},
booktitle = {Proc.\ COP},
publisher = {ACM},
pages = {9--15},
doi = {10.1145/3464970.3468413},
year = {2021},
}
Publisher's Version
Towards a Framework for Analyzing Context-Oriented Programming Languages
Achiya Elyasaf and
Arnon Sturm
(Ben-Gurion University of the Negev, Israel)
Context-aware systems keep on emerging in all of our daily activities. To cope with this new situation, programming languages were extended to support the notion of context. Although context-oriented programming languages exist for over 15 years, they were tested for their suitability in developing context-aware systems only to a limited extent. In this paper, we propose a framework for analyzing context-oriented languages from that viewpoint. In this framework, we refer to context definition and activation, reasoning capabilities, process aspects of how to work with the suggested extension, and pragmatic considerations. To demonstrate the use of the framework, we applied it to a relatively new context-oriented programming paradigm, namely context-oriented behavioral programming. The proposed framework can support users of context-oriented programming languages in deciding on the most fitted language for their purpose. Developers of context-oriented programming languages can also use the framework to improve such languages and their supporting tools.
@InProceedings{COP21p16,
author = {Achiya Elyasaf and Arnon Sturm},
title = {Towards a Framework for Analyzing Context-Oriented Programming Languages},
booktitle = {Proc.\ COP},
publisher = {ACM},
pages = {16--23},
doi = {10.1145/3464970.3468414},
year = {2021},
}
Publisher's Version
Info
proc time: 0.56