{'fraction_non_alphanumeric': 0.027391487568478718, 'fraction_numerical': 0.00337126000842815, 'mean_word_length': 5.901162790697675, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Improving the Reuse of Pattern-Based Knowledge in Software Architecting

Software architecture (SA) of a product family constrains the achievement of various quality attributes (such as reusability, performance, security, maintainability and usability) [1]. A number of methods, such as Architecture Tradeoff Analysis Method (ATAM) [2], Quality Attribute-oriented Software Architecture design method (QASAR) [3] and Quality-driven Architecture Design and Analysis (QADA) [4], have been developed to pay significant attention to quality related issues at the software architecture level. These approaches heavily depend on architectural styles and patterns to design candidate architectures and on scenarios and associated reasoning frameworks to evaluate software architecture for desired quality attributes. A quality attribute is a non-functional requirement of a system, e.g., reliability, modifiability and so forth. Scenarios are widely used in product line software engineering: abstract scenarios to capture behavioural requirements and quality-sensitive scenarios to specify architecturally significant quality attributes. Patterns 1 embody proven solutions to recurring problems by capturing concentrated wisdom of many experienced practitioners. Patterns are a vital means of designing software architecture of large complex systems. One of the major objectives of using patterns is to develop a software system with predictable nonfunctional properties [1]. Each pattern helps achieve one or more quality attribute and may hinder others. In product line development, an architect designs a desirable software architecture by composing a number of architectural styles and patterns. Scenarios are used to characterize quality goals and patterns are used to achieve those goals. Moreover, scenarios are used to reason about the design decisions during software architecture design stage and to evaluate that software architecture with respect to target quality requirements. Recently, there have been attempts to codify the links that exist among scenarios, quality attributes, and patterns [5, 6]. However, there has been little research on systematically studying, identifying, and documenting the synergistic relationships that informally exist in each pattern’s description. There are different formats of describing patterns. However, each type of format uses