CARD - Controlling Architectural Degradation in Real life Applications
CArD: Controlling ArchitecturalDegradation in Real life Applications
Overview Software Architecture defines the structure of the system in terms of its components, connectors and interactions. It is a key tool widely used in the industry because: Improves communication with stakeholders; Facilitates early design decisions; Promotes transferable abstractions of a system; Considered as the basis for implementation
Overview(2) Original design that is created prior the system’s implementation is known as the prescriptive architecture The architecture reflecting the current implementation is called the descriptive architecture. The inconsistency between both architectures results in architectural degradation.
Proposed System Mapping of an entity in the model to its corresponding entity in the implementation, and vice-versa. Compare and conform involves the detection of any architectural property violation between the two descriptions. Master and Slave. The master can alternate between model and implementation. The respective slave has to conform to the master.
What is conformance? Ensures that the model conforms to the implementation or vice-versa. A set of rules have been designed and implemented, such as Inheritance Relationship Rule:Definition: DA conforms to PAif and only if every entity thatinherits from another entity in PAis required to inherit an identicalentity type in its corresponding DA.
More Structural Rules…Definition: Communication Integrity – Absent Link Rule.DA conforms to PA if and only if every entity that communicateswith another entityin PA is required tohave the sameassociation relationshipin its corresponding DA.+ 19 more rules.
Extension - Interaction RulesDefinition: Temporal Rule. PA conforms to DA if and only ifthe same sequence of method calls is maintained between PA andDA.
FlaggingWhen a violation is detected, a flagging notification isdisplayed to the user, as follows:
ConclusionCArD is:- An Eclipse plug-in;- Checks Conformance;- Between Model in UML 2.0 Class Diagrams/Sequence Diagrams and Implementation;