
Using Rationale to Support Pattern-Based Architectural Design Wei Wang Janet E. Burge Miami University Miami University Benton Hall, Oxford Ohio 45056 USA Department of English +1-513-529-0347 Benton Hall, Oxford Ohio 45056 USA +1-513-529-0347 [email protected] [email protected] ABSTRACT information, a key component in architectural knowledge, can be used to help with justification of design outcomes and Architectural design rationale describes the decisions made, support for software architecture design and maintenance alternatives considered, and reasons for and against each activities [43]. Another benefit from this architectural alternative considered when defining a software architecture. At knowledge is to support the verification of the achievement of least some of these reasons should reference the non-functional quality attributes. Quality attributes, sometimes referred to as requirements (NFRs) for the system. The Non-Functional Requirements (NFRs) [29], are important to the SEURAT_Architecture system uses a pre-defined pattern library success of the system. The fulfillment of NFRs should be and the NFRs for a software system to guide the selection of addressed early in the development cycle and built into the result architectural patterns. Each pattern recommended by the system of architectural design. However, in actual software projects serves as an alternative to the architectural decision made and consideration of NFRs is often delayed to later stages. This is comes with rationale for why this pattern is considered useful. mainly due to the lack of techniques to support incorporating This system serves several purposes—to guide the architect NFRs in the early phases of software architecture [30]. through the decision-making process, to ensure that NFRs are There has been an increasing interest and growing recognition of considered when making these critical early decisions, and to the importance in capturing and managing architectural capture the rationale for the architecture as a byproduct of the knowledge in the software architecture community [1][5]. This tool-supported selection process. type of information is called architectural design rationale. Categories and Subject Descriptors Architecture design rationale captures the background information and reasoning process of a software architecture D.2.11 [Architecture]: Patterns design, including the requirements that motivate the design, the General Terms negotiation process that leads to the final shape of the design, Documentation, Design tradeoffs made, and alternatives that are considered. Architecture design rationale is considered an important part of Keywords software architecture and can help designers and architects with Architectural Design, Design Patterns, Architectural Patterns, their design and maintenance activities. Design Rationale In this paper, we describe an approach where NFRs are used to drive the architectural design process by assisting with the 1. INTRODUCTION selection of architectural patterns. This approach, integrated into A Software Architecture is the structure of the components of a the SEURAT Rationale Management System [8][10], also system, their quality attributes and the relationships among them supports the process of capturing architectural design rationale. [4]. It specifies the big picture of the potential system and lays the foundation for the next steps of the development process. The remainder of this paper is organized as follows. Section 2 Architecture design is also the first step towards addressing how gives background information on the areas of design rationale the design will meet the system’s requirements. and architectural patterns and describes related work. The proposed approach is presented in Section 3. Section 4 Typically, the architecture design artifacts only record the final describes an example that applies the approach to a design form of the software architecture, such as the components and problem. Finally, Section 5 draws conclusions and describes connectors involved. The knowledge and information behind the plans for future work. design decisions is often lost. If available, this background 2. BACKGROUND Design rationale captures the background information and Permission to make digital or hard copies of all or part of this work for reasoning process of software architecture design. Some early personal or classroom use is granted without fee provided that copies are research on the importance of the design rationale has been done not made or distributed for profit or commercial advantage and that [40]. However, design rationale is usually not captured and used copies bear this notice and the full citation on the first page. To copy in practice. Horner and Atwood [26] describe the inherent otherwise, or republish, to post on servers or to redistribute to lists, limitations to developing systems that can effectively capture requires prior specific permission and/or a fee. and use design rationale. Recording the reasoning process of SHARK '10, May 2-8, 2010, Cape Town, South Africa Copyright © 2010 ACM 978-1-60558-967-1/10/05 ... $10.00 design can be very time-consuming and expensive. There have been several approaches or models that have been proposed to architecture [12]. In [6], the authors describe how to use patterns capture design rationale. Some argumentation-based approaches to derive architectures. At the same time, the design decisions include Issue-Based Information Systems (IBIS) [31], which have been made and why they were made this way can be Procedural Hierarchy of Issues (PHI) [37], Questions, Options, recorded [39]. This knowledge will make it easier to make and Criteria (QOC) [35], Decision Representation Language changes to the architecture when needed. Patterns are not (DRL) [32], RATSpeak [8], and the WinWin approach [7]. isolated [23]. There are some relationships between some of the Design rationale can be used in different ways, such as helping patterns. A simple catalog-like list of patterns cannot express the with the verification of the satisfaction of requirements and the relationships, thereby providing the need for a pattern determination of the implication of modifications [10]. Dutoit, et system/pattern language [12]. A pattern system organizes al. [20] discuss how to use design rationale to support individual patterns together with the description of how patters collaboration in design teams and improve quality. Burge and are connected with each other in the system, how these patterns Brown [9] describe how design rationale can support software can be implemented, and how the software development can be maintenance and ensure that reasoning given for modifications supported with patterns. The authors of [12] define the is consistent with the designer’s initial intent. requirements to build a pattern system and build up a pattern The importance of architectural rationale has been recognized in system example. Avgeriou and Zdun [3] also propose a pattern the software architecture community [1][5]. The reason why language, which acts as a super set of existing architectural considerable effort has been spent on architectural knowledge is pattern collections and categorizations to establish the the lack of quality documentation methodologies for the relationships between the patterns and design a categorization reasoning process. The focus of architectural design rationale is based on the concept of “architectural views”. The PAKME on treating software architecting as a process of decision making knowledge management tool [2] captures patterns in their and the software architecture as a set of design decisions architectural knowledge repository and makes them available for [28][27][8][17]. The architects operate as the decision makers reuse. The pattern library used in SEURAT_Architecture is an during the architecting process rather than as only architecture extension of that used in PAKME. modelers. The resulting architecture is the result of a set of Harrison and Avgeriou [25] propose an approach similar to ours design decisions during the reasoning process, such as in their Pattern-Driven Architectural Partitioning approach, structuring decisions and deployment decisions [44]. At the which uses functional and non-functional requirements to drive same time, there has been an attempt to capture, record, and pattern selection and evaluation. This approach proposes represent the architectural knowledge/architectural rationale of combining patterns, which ours does not, but does not go as far the reasoning process so that the information can be used to into the design process or attach rationale. consistently deliver a satisfactory architecture design and support achieving the quality attributes [1][20][42]. Also, 3. INTEGRATING PATTERNS AND models or templates of documenting software architecture and RATIONALE design decisions have been proposed [13][47]. In order to solve the problem of how to help architects make Software systems are designed not only to implement all the design decisions, and record the rationale behind these required functionality, but also to fulfill some non-functional decisions, a new system has been built. First, there is a uniform aspects, such as reliability, modifiability, maintainability, method to describe the architectural patterns. This description security. These non-functional aspects are treated as Non- not only specifies the pattern itself, but also exposes the Functional Requirements (NFRs). NFRs are important to the relationships
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages8 Page
-
File Size-