Class-based Visibility from an MDA Perspective: From Access Graphs to Eiffel Code.
Gilles Ardourel, Marianne Huchard · The Journal of Object Technology · 2004
Encapsulation is one of the main principles in object-oriented software construction.Reducing software component coupling and enforcing interface definition facilitates maintenance, reusability and incremental development, thus increasing software quality.Encapsulation is usually supported by specific access control (visibility) mechanisms as private or protected in Java and C++ or Eiffel's exporting mechanism.These mechanisms are often static and class-based, sometimes method-based, giving classes the status of both the client and service provider.They help in hiding implementation as well as capturing part of the domain rules on access rights.We explore solutions for introducing design and implementation of class-based access control from a Model-Driven Architecture (MDA) perspective.As UML proposes only language-dependent solutions for access control representation, we consider extending UML with access graphs, a formalism previously introduced for comparing and reasoning about static access rights.In this paper, we describe the integration of AGATE, a suite of access graph based tools dedicated to access control, in the MDA process.We focus on two access control design tools operating at the Platform-Independent Model (PIM) level: the Rule Adapter makes access graphs compliant with specific design rules while the Client Discovery Module adds new relevant classes expressing client organization.Mapping to a Platform-Specific Model (PSM) is illustrated with the Eiffel Access Graph Adapter and rules for generating code from this PSM are presented.