215 research outputs found
Adopting Architectural Event Modules for Modular Coordination of Multiple Applications
Nowadays, large-scale software systems consist of multiple applications, which interact with each other to fulfill desired system-level requirements. It is usually required to coordinate the interactions of the
constituent applications to ensure that the system-level requirements are
fulfilled. In this paper, we outline a set of requirements that must be
fulfilled to facilitate the modular composition of multiple applications.
We introduce the concept of architectural event modules, which are
abstractions to represent constituent applications and their coordination
logic in a modular and uniform way. We explain the implementation of
this concept in the EventReactor language, and define their formal semantics in processing events using the UPPAAL toolset. We illustrate
the suitability of architectural event modules in achieving modularity and
loose coupling in the composition of multiple applications by means of a
case study in the domain of energy-efficient computing
Recommended from our members
Whitepaper: The Value of Improving the Separation of Concerns
Microsoft's enterprise customers are demanding better ways to modularize their software systems. They look to the Java community, where these needs are being met with language enhancements, improved developer tools and middleware, and better runtime support. We present a business case for why Microsoft should give priority to supporting better modularization techniques, also known as advanced separation of concerns (ASOC), for the .NET platform, and we provide a roadmap for how to do so
An Overview of Event-based Facades for Modular Composition and Coordination of Multiple Applications
Complex software systems are usually developed as systems of systems (SoS’s) in which multiple constituent applications are composed and coordinated to fulfill desired system-level requirements. The constituent applications must be augmented with suitable coordination-specific interfaces, through which they can participate in coordinated interactions. Such interfaces as well as coordination rules have a crosscutting nature. Therefore, to increase the reusability of the applications and to increase the comprehensibility of SoS’s, suitable mechanisms are required to modularize the coordination rules and interfaces from the constituent applications. We introduce a new abstraction named as architectural event modules (AEMs), which facilitate defining constituent applications and desired coordination rules as modules of SoS’s. AEMs augment the constituent applications with event-based facades to let them participate in coordinated interactions. We introduce the EventArch language in which the concept of AEMs is implemented, and illustrate its suitability using a case study
Experiences In Migrating An Industrial Application To Aspects
Aspect-Oriented Software Development (AOSD) is a paradigm aiming to solve
problems of object-oriented programming (OOP). With normal OOP it’s often
unlikely to accomplish fine system modularity due to crosscutting concerns being
scattered and tangled throughout the system. AOSD resolves this problem by its
capability to crosscut the regular code and as a consequence transfer the crosscutting
concerns to a single model called aspect. This thesis describes an experiment on
industrial application wherein the effectiveness of aspect-oriented techniques is
explained in migration the OOP application into aspects. The experiment goals at
first to identify the crosscutting concerns in source code of the industrial application
and transform these concerns to a functionally equivalent aspect-oriented version. In
addition to presenting experiences gained through the experiment, the thesis aims to
provide practical guidance of aspect solutions in a real application
An overview of Mirjam and WeaveC
In this chapter, we elaborate on the design of an industrial-strength aspectoriented programming language and weaver for large-scale software development. First, we present an analysis on the requirements of a general purpose aspect-oriented language that can handle crosscutting concerns in ASML software. We also outline a strategy on working with aspects in large-scale software development processes. In our design, we both re-use existing aspect-oriented language abstractions and propose new ones to address the issues that we identified in our analysis. The quality of the code ensured by the realized language and weaver has a positive impact both on maintenance effort and lead-time in the first line software development process. As evidence, we present a short evaluation of the language and weaver as applied today in the software development process of ASML
Aspect-Oriented Modularization of Assertion Crosscutting Objects
Software Engineering Conference, 2005. APSEC '05. 12th Asia-PacificDate of Conference:15-17 Dec. 200
Crosscutting, what is and what is not? A Formal definition based on a Crosscutting Pattern
Crosscutting is usually described in terms of scattering and tangling. However, the distinction between these concepts is vague, which could lead to ambiguous statements. Sometimes, precise definitions are required, e.g. for the formal identification of crosscutting concerns. We propose a conceptual framework for formalizing these concepts based on a crosscutting pattern that shows the mapping between elements at two levels, e.g. concerns and representations of concerns. The definitions of the concepts are formalized in terms of linear algebra, and visualized with matrices and matrix operations. In this way, crosscutting can be clearly distinguished from scattering and tangling. Using linear algebra, we demonstrate that our definition generalizes other definitions of crosscutting as described by Masuhara & Kiczales [21] and Tonella and Ceccato [28]. The framework can be applied across several refinement levels assuring traceability of crosscutting concerns. Usability of the framework is illustrated by means of applying it to several areas such as change impact analysis, identification of crosscutting at early phases of software development and in the area of model driven software development
- …