Detecting design pattern and tracing its design rationale / Loay Aladib - Loay , Aladib (2017)
On the ground that design pattern is intricate by nature, its rationale traceability is prone to be neglected leading to the misconception of the design rationale and forfeiture of its main purpose. Design Rationale (DR) as the main subject of this research is considered as the synthesis of the structure that is consistent with the model of an artifact, the decisions, alternative approaches and the reasoning behind it. Hence, bypassing it will result in poor quality systems engineering. Taking into consideration the facts that: (a) design pattern is structured to offer a solution to a recurring problem; (b) its components, design elements, methods along with other related elements are spread throughout the pattern text; and (c) its rationale goals are ambiguously represented. Thus, the pattern reader finds it problematic to capture the intricacy of its design. In order to decipher these shortcomings, this research introduces an approach named Design Pattern Detection and Design Rationale Decision Tree (DPD-DRDT) to support the structuring, evaluation, and analysis of a design pattern employing a well-structured technique and methodology in analyzing, validating and detecting design pattern existence in the source code. This study proposes a method and implemented an associated tool which is designed to support two of the major phases of the proposed approach, namely Phase 1 - Pattern Detection Process (PDP), and Phase 2 - Tracing of Design Rationale (TDR). In Phase 1, PDP is supported by the following processes: (1) defining the pattern structure; (2) uploading the target program or source code; (3) extracting the basic elements which employs the aid of NRefactory C# library in parsing the code and converting it to a text representation for ease of reference and evaluation; (4) pattern detection process using the properties set in (1) to validate against the data after the code has been parsed. In Phase 2, TDR needs two inputs: (1) pattern detection result; (2) Design Rationale Decision Tree (DRDT) model of the detected design pattern built via the implementation of the Rationale Traceability Framework (RTF). Each phase provides a mechanism that validates the class relationships and properties comprehensively resulting to a reliable pattern detection result. The rationale traceability framework has been implemented and represented in the form of Design Rationale Decision Tree (DRDT), hence the open issues of design rationale misconception and a chance to be neglected is resolved. Furthermore, a simple and straightforward representation of the evaluation and decision result to determine whether a design rationale goal is achieved or design pattern implementation needs to be re-evaluated has been made available. The proposed approach is proved by the usefulness of its output and a straightforward evaluation result resolves the intricacy of design rationale traceability while achieving software quality is permissible.