3 research outputs found

    Exploring the Synergies between Join Point Interfaces and Feature-Oriented Programming

    Get PDF
    Feature-oriented programming FOP, and aspect-oriented programming AOP have been used to develop modular software product lines SPL. Both approaches focus on modularizing classes behavior and crosscutting concerns CC. Therefore, the symbiosis of FOP and AOP would permit reaching pros and cons of both software development approaches. Concretely, FOP permits a modular refinement of classes collaboration for software product lines SPL -an adequate structural representation of heterogeneous CC, but FOP does not well represent homogeneous CC. On the other hand, traditional AOP structurally well modularizes homogeneous CC, but aspects are not adequate to represent collaboration of classes for software evolution. In addition, AOP solutions present implicit dependencies and strong coupling between classes and aspects. Since Join Point Interface JPI solves mentioned AOP issues, this paper present JPI Feature Modules to represent and modularize the structure of FOP and JPI SPL instances, i.e., classes and join point interfaces for a transparent implementation in a FOP and JPI context. This paper, highlights benefits of a FOP and JPI symbiosis for the modular software conception using a case study to exemplify its use

    A type-and-effect system for asynchronous, typed events

    Get PDF
    Implicit concurrency between handlers is important for event driven systems because it helps simultaneously promote modularity and scalability. Knowing the side-effect of the handlers is critical in these systems to avoid concurrency hazards such as data races. As event systems are dynamic because statically known and unknown handlers can register at almost any time during program execution, static effect analyses must reconcile over competing goals such as precision, soundness and modularity. We recently developed asynchronous, typed events, a system that can analyze the effects of the handlers at runtime. This mechanism utilizes runtime information to enable precise effect computation and greatly improves concurrency between handlers. In this paper, we present the formal underpinnings of asynchronous, typed events, and examine the concurrency safety properties it provides. The technical innovations of our system include a novel effect system to soundly approximate the dynamism introduced by runtime handlers registration, a static analysis to precompute the effects and a dynamic analysis that uses the precomputed effects to improve concurrency. Our design simplifies modular concurrency reasoning and avoids concurrency hazards
    corecore