jagomart
digital resources
picture1_Design Patterns Pdf 183575 | Bi2018apq


 144x       Filetype PDF       File size 0.31 MB       Source: www.cs.rug.nl


File: Design Patterns Pdf 183575 | Bi2018apq
2018 25th asia pacific software engineering conference apsec architecture patterns quality attributes and design contexts how developers design with them a b a b tingting bi peng liang antony tang ...

icon picture PDF Filetype PDF | Posted on 31 Jan 2023 | 2 years ago
Partial capture of text on file.
                                               2018 25th Asia-Pacific Software Engineering Conference (APSEC)
                      Architecture Patterns, Quality Attributes, and Design 
                              Contexts: How Developers Design with Them? 
                     
                     
                                                                                   a,b            a*                b
                                                                      Tingting Bi   , Peng Liang , Antony Tang  
                                                           a School of Computer Science, Wuhan University, Wuhan, China 
                                   b Faculty of Science, Engineering and Technology, Swinburne University of Technology, Melbourne, Australia 
                                                          bi_tingting@whu.edu.cn, liangp@whu.edu.cn, atang@swin.edu.au 
                                                                                               research on design contexts (e.g., [2][14]), and there is no 
                        Abstract—The use of architecture and design patterns                   standard definition of this concept in the ISO 42010 
                    have impacts on the quality attributes of a system, and the                standard [26]. 
                    application of patterns depend on design contexts. There are 
                    complex interdependent relationships between them. In this                     Software development questions and answers (Q&A) 
                    study, we explore how developers use architecture and design               sites (e.g., Stack Overflow, R community, and GitHub) 
                    patterns with respect to quality attributes concerns and design            gather knowledge that covers a wide range of topics. These 
                    contexts. We extracted pattern related posts from Stack                    sites allow developers to share experience, offer help, and 
                    Overflow and analyzed the architecture discussions. Our                    learn new techniques [5]. Stack Overflow (SO) is one of the 
                    study reveals what contexts and quality attributes developers              most famous and popular online Q&A forums. It contains 
                    consider when using architecture patterns, and we have                     millions of posts by tens of thousands of developers [8]. SO 
                    identified new and previously unknown relationships between                provides functions such as resurrecting and editing posts 
                    these design elements. These findings can enhance developers’              that can be inactive for long periods. It supports up voting 
                    knowledge when they design with architecture patterns,                     competing answers and users can earn reputation points by 
                    quality attributes, and design contexts.                                   posting interesting questions and answers [10]. Recent 
                        Keywords—Architecture Pattern; Design Context; Quality                 studies show that developers and architects use social media 
                    Attribute; Empirical Study                                                 to discuss architecture-relevant information (e.g., features 
                                          I.   INTRODUCTION                                    and domain concepts) [17][25]. In this work, we took 
                                                                                               advantage of the architecture and design discussions 
                        Architecture1patterns contain a set of rules of how to                 available in SO. We conducted an investigation of pattern 
                    structure a system into components and connectors [6].                     posts in SO to gain insights on how developers consider 
                    They also represent common ways in which decisions deal                    architecture patterns with respect to quality attributes and 
                    with certain aspects of an architecture design [21]. One of                design contexts. We are motivated to investigate this topic 
                    the major objectives of using architecture patterns is to                  because there are scarcely any works that provide practical 
                    structure systems with predictable Non-Functional  insights to help developers use design and architecture 
                    Requirements (NFRs) [4]. NFRs are important in large-scale                 patterns with QA considerations in particular contexts. 
                    software systems and they can be specified as quality                      Often problem domains dictate whether a pattern can be 
                    attributes (QAs) [3]. Architects and designers need to ensure              used practically. For instance, financial systems can take 
                    that both functional and non-requirements are met by the                   advantage of modifiability in MVC pattern but such a 
                    design [1]. There are various architecture and design                      system also needs to care about performance which MVC 
                    patterns available for use [7]. When selecting an architecture             would compromise. 
                    pattern, quality attributes and their trade-offs need to be                    There are two main contributions of this work. First, 
                    considered but in practice they are often omitted.                         developers who look for information on how to apply 
                        Design contexts influence a system design in many ways                 architecture patterns in terms of the QAs are also concerned 
                    such as developmental, technological, business, operational,               about specific design contexts. For example, the most 
                    social, and other influences [13]. A system of similar                     frequently asked type of design questions is “should I use 
                    functionalities can work differently in different contexts                 this architecture pattern in this application?”. Second, 
                    [14][19]. Whilst design contexts are important to making                   developers often need to know certain information when 
                    design decisions, the contexts of a system are often ignored               designing with architecture patterns, such as the 
                    and some of the design context may not be explicitly                       relationships between QAs and architecture patterns, 
                    captured in the requirements documents [2]. There is limited               characteristics and potential issues of using a pattern. We 
                                                                                               identified and listed these considerations (in TABLE VIII) 
                    * Corresponding author                                                     through analyzing the SO posts. It helps developers to 
                       This work is partially funded by the NSFC under Grant No. 61472286      recognize some of the QAs and the contexts that need to be 
                    and the China Scholarship Council.                                         considered when using architecture and design patterns. 
                978-1-7281-1970-0/18/$31.00 ©2018 IEEE                                     49
                DOI 10.1109/APSEC.2018.00019
                                                                                                                                                                                                 
                        
                        
                            This paper is organized as follows: Section II discusses                           B.  Quality Attributes 
                       related work. Section III describes the methodology. Section                                 Kim et al. [16] presented a systematic quality-driven 
                       IV presents the results of our study. Section V and Section                             approach for embodying NFRs into architecture through 
                       VI discuss the findings and threats to the validity of this                             using architectural tactics. The authors used feature 
                       study respectively. Finally, Section VII concludes the work                             modeling to represent architectural tactics, and applied 
                       with future directions.                                                                 Role-Based Meta-modeling Language (RBML) to define 
                                               II.    R                                                        natural correspondence between the architectural tactics. 
                                                        ELATED WORK                                            Their approach can help developers on selecting 
                            This section introduces the existing work of three                                 architectural tactics based on a given set of NFRs, and 
                       design elements (i.e., architecture pattern, quality attribute,                         further analyze the relationships between architectural 
                       and design context) and the methodology (i.e., conceptual                               tactics in terms of availability, performance, and security. 
                       model and analysis of developers’ posts) employed in our                                In addition, the authors demonstrated a tool with an 
                       study.                                                                                  example for instantiating a composed tactic to generate an 
                       A.  Architecture Patterns                                                               initial architecture of the stock trading system. Ameller et 
                            Me et al. [11] conducted a systematic literature review                            al. [15] conducted an online survey to explore the role of 
                       on the interaction between architectural patterns and quality                           quality attributes when designing service-based systems. 
                       attributes. They identified four areas by analyzing the                                 The results of their survey indicate that dependability is the 
                       selected studies: architecture decision making, architecture                            most important QA in a service-based system. In addition, 
                       patterns, quality attributes, and the interaction between                               the authors summarized three types of important methods 
                       architecture patterns and quality attributes. Harrison and                              (i.e., architectural decision, architecture pattern, and 
                       Avgeriou [12] organized a body of knowledge in a way that                               technology) that can be used to address quality attributes, 
                       is accessible and informative for architects, in order to                               and found that most of QAs tend to be addressed by ad hoc 
                       support an architectural decision making process. The                                   decisions, rather than architecture or design patterns and 
                       authors explored the limitations on the use of architecture                             technologies.  
                       patterns in large-scale industrial application, and analyzed                                 These works explored the relationships between QAs 
                       several architecture patterns with respect to their impact to                           and various architectural decisions, while in this work we 
                       key quality attributes. Velasco-Elizondo et al. [7] presented                           focus on the interactions between QAs and architecture 
                       an Information Extraction (IE) technique with an ontology                               patterns. 
                       for analyzing architectural pattern descriptions with respect                           C.  Design Contexts 
                       to specific quality attributes. An ontology that contains two                                Bedjeti et al. [2] presented design context viewpoint to 
                       sub-ontologies was predefined. One is an English grammar-                               capture and describe the contextual elements in 
                       based ontology, which is further categorized into promotes                              architecture. In their work, the authors identified four 
                       verb, modal verb etc. The other is a performance ontology                               context categories of the viewpoint (i.e., platform context, 
                       that defines performance-specific concepts (e.g., security                              user context, application context, and organizational 
                       and throughput). Entity extraction and the ontology were                                context), then they evaluated and refined the viewpoint by 
                       used to identify the relationships between architectural                                two case studies. Their work can help architects to identify, 
                       patterns and quality attributes in architectural pattern                                capture, and analyze contextual knowledge in architecture 
                       descriptions. This work aims to help inexperienced                                      design. Harper and Zheng [13] proposed a systematic 
                       architects with determining whether specific quality                                    process for identifying and documenting design context to 
                       attributes are promoted or inhibited, which is useful for                               support architectural decisions making. They also proposed 
                       patterns selection. Ali Babar [28] extracted architectural                              a framework in terms of who, what, when, where, why, and 
                       information from architecture pattern descriptions. He                                  how to explore the design contexts of a system and its 
                       proposed a framework with two templates that can                                        environment. The results of their work show that the 
                       effectively capture the relationships between scenarios and                             proposed process can drive architectural decisions. Petersen 
                       quality attributes. This work can help to improve the                                   and Wohlin [19] provided a checklist for documenting 
                       process of architecture design decision making and                                      design contexts in six aspects (i.e., product, processes, 
                       evaluation by providing architectural information in an                                 practices, techniques, people, organization, and market), 
                       informed format (i.e., templates).                                                      and each context facet comprises a set of context elements. 
                            These works are similar to our work that focuses on the                            The authors then conducted a literature review of industrial 
                       relationships between architecture patterns and QAs, while                              studies to investigate to what degree industrial case studies 
                       we further analyzed the relationships from the perspectives                             covered the context facets identified in the checklist. Their 
                       of design concerns, design problems, and design solutions.                              work can help researchers and practitioners in making 
                       In addition, we considered design contexts as a vital factor                            informed decisions concerning which parts of the context to 
                       that influences the interaction between architecture patterns                           be included and not to include. To the best of our 
                       and quality attributes.                                                                 knowledge, there has been no investigation on how design 
                        
                                                                                                         50
                                                                                                                                                                                                                                    
                            
                            
                           contexts interact with architecture patterns and QAs in                                                 A.  Employed Conceptual Model 
                           terms of design, which is the focus of this work.                                                             We adopted DAT as the conceptual model [14] for 
                           D. Conceptual Model                                                                                     decomposing and framing our research questions, which 
                                 Tang and Lau [14] presented an architecture rationale                                             cover design concern, design problem, and design solution 
                           conceptual model, called Design Association Theory or                                                   aspects of employing architecture patterns to address QAs 
                           DAT, based on the ISO/IEC 42010 to illustrate three main                                                in certain design contexts (see Fig. 1). 
                           design elements (i.e., design concerns, design problems,                                                                                                                  Å causes
                                                                                                                                                         Design        causesÆ       Design          causesÆ      Design 
                           and design solution options) and verified architecture                                                                        Design                        Design                      Design 
                                                                                                                                                        Concern                       Problem                     Solution
                           designs by checking the associations of these design                                                                         Concern                       Problem                     Solution
                                                                                                                                                  consists of                                                           consists of
                                                                                                                                                                                        Æ
                           elements. DAT underpins this study and describes                                                                                                     Instigates    
                           architecture as a set of architecture design decisions. In                                                       Requirement             Design             Design              Chosen        Alternative
                           [22], Jansen and Bosch defined a conceptual model for                                                            Requirement            Context            Decision             Solution        Option
                                                                                                                                        consists of
                           architecture design decisions. Their model comprises                                                                                                 justified by Æ
                           several elements, such as design decision, solution, and                                                    Functional     Quality                          Design 
                                                                                                                                       Functional                                      Design 
                                                                                                                                      Requirement     Attribute                       Rationale
                           architectural modification. The heart of these models is the                                               Requirement                                     Rationale
                                                                                                                                                               Design              Core            consists of     relationship Æ
                           problem element, which describes the architectural design                                                           Legend          Design 
                                                                                                                                               Legend          Element          Consideration
                           problems together with the motivation and cause elements.                                                                           Element
                           The solution element describes the proposed solutions to                                                                Fig. 1.  A conceptual model for design elements. 
                           solve a problem.                                                                                              Design Concern: Design concerns comprise system 
                           E.  Analysis of Developers’ Posts                                                                       considerations (i.e., requirements and design contexts). 
                                 Soliman  et al.  [17] analyzed the posts of Stack                                                 Requirements comprise Functional Requirements (FRs) 
                           Overflow to identify architecture-relevant and technology-                                              and Quality Attributes (QAs). Design contexts comprise 
                           related knowledge. The authors queried the posts using the                                              the knowledge about the environment that a system is 
                           terms related to middleware technologies, manually                                                      expected to operate and execute [2].  
                           classified the posts into architecture-relevant posts (ARPs)                                                  Design Problem: Design problems arise when 
                           and programming posts, and further classified ARPs into                                                 developers address design concerns and identify the 
                           three sub-types (i.e., solution synthesis, solution evaluation,                                         problem space. We explore what common design problems 
                           and multi-purpose). The results show that the identified                                                the developers face when they employ architecture 
                           ARPs types could be used to support typical architecting                                                patterns with respect to QAs and design contexts. The 
                           activities. For example, the ARPs that belong to solution                                               problems are extracted from the questions that developers 
                           evaluation embody important factors for taking architecture                                             ask. The problems can be extracted from the questions that 
                           design decisions. Barua et al.  [18] used Latent Dirichlet                                              developers ask. 
                           Allocation (LDA) to analyze the main topics in developer                                                      Design Solution: Given a design problem, design 
                           discussions, as well as the relationships between them and                                              solutions and alternative options are discussed by 
                           the trends of the topics. Forty topics were discovered from                                             developers. We identify from the SO posts the design 
                           Stack Overflow that range widely from jobs to version                                                   solutions that arise from the use of architecture patterns 
                           control to C# syntax. In addition, the authors found that the                                           to solve problems with respect to QAs and design contexts. 
                           questions in some topics lead to discussions in other topics,                                           B.  Research Questions 
                           and the trends of several topics (e.g., web development,                                                      The goal of this study is to analyze the use of 
                           mobile application, and MySQL) are increasing over time.                                                architecture patterns, and the consideration of quality 
                           This work can help developers to understand what topics                                                 attributes and design contexts in software design. The 
                           are discussed and which topics are popular. These works                                                 perspectives of the analysis are design concerns (e.g., what 
                           motivate us to extract the knowledge related to QAs,                                                    sort of systems make use of a pattern?), design problems 
                           architecture patterns, and design contexts, and further                                                 (e.g., what kind of design problems do developers face 
                           explore the relationships between them using Stack                                                      when they use a pattern?), and design solutions (e.g., how 
                           Overflow.                                                                                               do developers solve the problem?). Such characterization 
                                                       III.     METHODOLOGY                                                        may shed lights on the relationships between architecture 
                                                                                                                                   patterns, quality attributes, and design contexts. We 
                                 We conducted an exploratory study [29] and used a                                                 formulated the RQs in TABLE I from the perspectives 
                           conceptual model (see Section III.A) to define the research                                             provided in the conceptual model (Fig. 1). 
                           questions (in Section III.B) for identifying and extracting                                             C.  Data Collection and Analysis 
                           the empirical evidence of how developers consider QAs,                                                        We analyzed Stack Overflow because it contains 
                           architecture patterns, and design contexts. The detailed                                                realistic design dialogues between developers. An overview 
                           process of data collection and analysis is also elaborated                                              of the data collection (Step 1) from Stack Overflow and 
                           (see Section III.C) in this section
                                                                               .                                                   analysis (Step 2) in this study is shown in Fig. 2. 
                            
                                                                                                                             51
                                                                                                                               TABLE I.  RESEARCH QUESTIONS AND THEIR RETIONALE 
                                                                                         Research Question                                                                                                        Rationale 
                                              Design              RQ1: With respect to using architecture patterns,                                This RQ provides an overview of the role of QAs and design contexts when developers 
                                              Concern             what QAs and design contexts are developers  employ architecture patterns. 
                                              Aspect              concerned with? 
                                                                  RQ1.1: What QAs do developers consider when                                      Different QAs often have different significance in different design situations. A quality 
                                                                  they use architecture patterns in a design?                                      attribute is a measurable or a testable property of a system that is used to indicate how well 
                                                                                                                                                   the system satisfies the needs of its stakeholders. There is a set of QAs, and developers may 
                                                                                                                                                   have more concern about certain QAs than others when they employ architecture patterns. 
                                                                                                                                                   This RQ explores popular QAs considered by developers when they employ  certain 
                                                                                                                                                   architecture patterns. 
                                                                  RQ1.2: What design contexts do developers  Design context is the setting and circumstances of all influences upon a system, including 
                                                                  consider when they employ architecture patterns                                  developmental, technological, business, operational, social, and other influences [26]. 
                                                                  with respect to QAs?                                                             Design contexts are indispensable ingredients that can drive the architecture design of a 
                                                                                                                                                   system. This RQ aims to identify what design contexts are considered when developers use 
                                                                                                                                                   certain architecture patterns with respect to QAs. 
                                              Design              RQ2: What are the common design problems  Problem space exploration is important, the more structured the problem space is, the more 
                                              Problem             developers asked when they employ architecture                                   rationally the approach can be taken by researchers and practitioners [20]. Design problems 
                                              Aspect              patterns with considerations of both QAs and  are raised to address design concerns, which is one of the important design activities. This 
                                                                  design contexts?
                                                                                                                                                   RQ helps to explore what the common design problems developers seek to resolve when 
                                                                                                                                                   they consider architecture patterns, QAs, and design contexts. 
                                              Design              RQ3: What are the typical considerations of  A design must have logical causes between a solution and the problems (concerns). 
                                              Solution            employing architecture patterns to satisfy QAs in                                Developers may provide different design solutions based on their experience in terms of the 
                                              Aspect              certain design contexts?                                                         same design problems. With this RQ, we identify the typical considerations developers have 
                                                                                                                                                   when they face the design problems of applying architecture patterns with respect to QAs 
                                                                                                                                                   and design contexts. 
                                                                                                                                                                       
                                                                                                                                                                            25010 standard that defines eight high-level QAs [9], i.e., 
                                                   Stack Overflow                                                                                                           Maintainability, Functional Suitability, Security, 
                                                   Stack Overflow                                                                                                           Performance, Portability, Usability, Reliability, and 
                                                                                                                                                                            Compatibility. 
                                                 Query for architecture patterns
                                                 Query for architecture patterns                                  Step 2       Analyze the questions                               Step 2: Analyzing the collected posts 
                                                    Architecture 
                                                     Architecture     N posts
                                                      pattern 1       N posts                                                  of the collected posts
                                                      pattern 1                                                                                                                    We employed descriptive statistics and constant 
                                                    Architecture                                  The collected 
                                                    Architecture      M posts                     The collected 
                                                     pattern 2        M posts                          posts
                                                      pattern 2                                        posts                                                                comparison methods to analyze the collected posts. 
                                                    Architecture                      Step 1 
                                                    Architecture      P posts
                                                     pattern 3        P posts                     is concerned in              Analyze the answers 
                                                      pattern 3                                                                of the collected posts                       Specifically, we used descriptive statistics to analyze 
                                                          ...            …
                                                          ...             …                                                                                                 quantitative data (i.e., the frequency of quality attributes, 
                                                                                           QA1 QA2 QA2               …
                                                                                            QA1 QA2 QA2              …                                                      architecture patterns, and design contexts) and used the 
                                                             Fig. 2.  An overview of data collection and analysis.                                                          constant comparison to analyze qualitative data (i.e., design 
                                                                                                                                                                            problems and solutions). Constant comparison is a 
                                           Step 1: Searching and collecting candidate posts                                                                                 continuous process for verifying the generated categories 
                                                                                                                                                                            [20]. Two steps were conducted in the data analysis. 
                                           Step 1.a. We used the keywords related to popular                                                                                       Step 2.a. We analyzed the questions of the collected 
                                   architecture patterns that are defined in relevant literatures                                                                           posts. Through analyzing the questions, we explore what 
                                   [1][27] to search the architecture pattern posts. We queried                                                                             design concerns (i.e., QAs and design contexts) and 
                                   the titles, questions, answers, and tags of the posts. The                                                                               common design problems developers may have. We 
                                   search terms are listed as follows:                                                                                                      extracted QAs based on the classification of QAs described 
                                   Model-View-Controller, MVC, Front Controller, Layered,                                                                                   in Step 1.b. We extracted design contexts based on the 
                                   Blackboard, Pipe & Filer, Repository, Broker, Presentation                                                                               categories from [2] and [19], described in Section II.C. We 
                                   Abstraction Control, PAC, Service-Oriented Architecture,                                                                                 analyzed the discussions, we encoded the design contexts 
                                   SOA, Client Server, Action-Domain-Responder, Naked                                                                                       into three main categories and eight sub-categories (see 
                                   Objects, Peer-to-peer Pattern, Publish Subscribe Pattern,                                                                                Section IV.B). 
                                   Shared Data pattern, Entity-Component System Pattern,                                                                                           Step 2.b. We analyzed the answers of the collected 
                                   Mapreduce Pattern, Multi-tier Patter,  Batch Sequential,                                                                                 posts. Through analyzing the answers of the posts, we can 
                                   Micro-service.                                                                                                                           identify developers’ typical considerations on the design 
                                           Step 1.b. We manually checked candidate architecture                                                                             problems when they employ architecture patterns with 
                                   pattern posts that were retrieved in Step 1.a. We included                                                                               respect to QAs and design contexts. TABLE II shows the 
                                   the architecture pattern posts if they concern one of the                                                                                extracted data items and the data analysis methods 
                                   QAs. About the taxonomy of QAs, we adopted the ISO                                                                                       employed for the RQs. 
                                                                                                                                                                    52
The words contained in this file might help you see if this file matches what you are looking for:

...Th asia pacific software engineering conference apsec architecture patterns quality attributes and design contexts how developers with them a b tingting bi peng liang antony tang school of computer science wuhan university china faculty technology swinburne melbourne australia whu edu cn liangp atang swin au research on e g there is no abstract the use standard definition this concept in iso have impacts system application depend are complex interdependent relationships between development questions answers q study we explore sites stack overflow r community github respect to concerns gather knowledge that covers wide range topics these extracted pattern related posts from allow share experience offer help analyzed discussions our learn new techniques so one reveals what most famous popular online forums it contains consider when using millions by tens thousands identified previously unknown provides functions such as resurrecting editing elements findings can enhance be inactive for l...

no reviews yet
Please Login to review.