On the Design of Empirical Studies to Evaluate Software Patterns: a Survey

On the Design of Empirical Studies to Evaluate Software Patterns: a Survey

On the Design of Empirical Studies to Evaluate Software Patterns: A Survey Maria Riaz Laurie Williams Travis Breaux North Carolina State University North Carolina State University Carnegie Mellon University Dept. of Computer Science Dept. of Computer Science Institute for Software Research Raleigh, NC, USA Raleigh, NC, USA Pittsburgh, Pennsylvania, USA [email protected] [email protected] [email protected] Jianwei Niu University of Texas – San Antonio Department of Computer Science San Antonio, Texas, USA [email protected] ABSTRACT 1. INTRODUCTION Software patterns are created with the goal of capturing expert Software has become increasingly pervasive in modern knowledge so it can be efficiently and effectively shared with the information systems, from control systems in transportation and software development community. However, patterns in practice energy to mobile apps that pull data into a user’s personal context. may or may not achieve these goals. Empirical studies of the use While the availability of frameworks and tools enable developers of software patterns can help in providing deeper insight into to build more complex systems by reusing software components, whether these goals have been met. The objective of this paper is designing reliable software continues to depend on the availability to aid researchers in designing empirical studies of software of expert knowledge [1]. Software design patterns [13] are one patterns by summarizing the study designs of software patterns approach for capturing and sharing expert knowledge. Design available in the literature. The important components of these patterns are generic, reusable structures that a software developer study designs include the evaluation criteria and how the patterns can “instantiate” into their system design to solve a problem. The are presented to study participants. We select and analyze 19 Visitor Pattern, for example, allows developers to elegantly distinct empirical studies and identify 17 independent variables in compartmentalize “processing code” for a collection of objects three different categories (participants demographics; pattern from different classes to improve maintainability [13]. presentation; problem presentation). We also extract 10 evaluation Architectural patterns in building design [2] inspired design criteria with 23 associated observable measures. Additionally, by patterns in software engineering. The success of design patterns synthesizing the reported observations, we identify challenges then inspired many other software patterns, such as enterprise faced during study execution. Provision of multiple domain- application architectural patterns [10] and software product line specific examples of pattern application and tool support to assist patterns [8]. But, how can we know the software patterns meet in pattern selection are helpful for the study participants in their goal of efficiently and effectively sharing expert knowledge understanding and completing the study task. Capturing data to the software development community such that the community regarding the cognitive processes of participants can provide is aided by the patterns? insights into the findings of the study. Despite the intuitive appeal of pattern-based design, software Categories and Subject Descriptors engineering researchers have sought to empirically evaluate Architecture and design, Empirical studies of software design pattern use in experimental settings in addition to engineering, Patterns and frameworks. qualitative appraisal [26]. Empirical evidence of the benefits of the use of a type of software patterns may increase the use of the General Terms patterns in the community. Documentation, Design, Experimentation, Human Factors. Pattern discovery is primarily an expert’s affair: repetitive solutions to slightly dissimilar problems leads to the expert’s Keywords creative insight of a common, generalizable pattern. This skillset Software patterns, experiment design, empirical evaluation, relies on the Revised Bloom Taxonomy’s highest level of learning knowledge transfer (analyze and create) [31]. An advantage of design patterns is that a less experienced designer can reuse the pattern, thus appealing to lower, more pervasive learning levels (remember and understand) [31]. The objective of this paper to aid researchers in designing empirical studies of software patterns by providing: (1) Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are evaluation criteria and observation measures used to empirically not made or distributed for profit or commercial advantage and that assess the efficiency and effectiveness of software design patterns copies bear this notice and the full citation on the first page. To copy in imparting expert knowledge; and (2) pattern presentation otherwise, or republish, to post on servers or to redistribute to lists, attributes that affect (increase or decrease) this effectiveness. To requires prior specific permission and/or a fee. this end, we report our results from a software engineering ACM SIGSOFT’12, FSE-20, November 10–17, 2012, Research Triangle Park, North Carolina, USA. Copyright 2012 ACM 1-58113-000-0/00/0010…$10.00. literature survey on the topic of the empirical assessment of 3.2 Inclusion and exclusion criteria software design patterns. The inclusion criteria determines which papers are studied to The software patterns community has identified several assertions answer our research questions; included papers must be: to promote the value of patterns to designers, such as: facilitation 1) A peer reviewed publication, in the field of software and ease of reuse; identification and capture of abstract concepts; engineering, evaluating one or more criteria of design pattern aide in defining interfaces and interactions; means of shared application based on: documentation; construction of software with defined properties; a) Experimental studies involving human participants and provision of common vocabulary [4]. Experimental b) Case studies involving human participants evaluation can provide a scientific basis for verifying or refuting these assertions. However, multiple parameters effect the 2) A peer reviewed publication, in the field of software experiment design including factors such as: level of participants' engineering, evaluating one or more criteria of software expertise in applying software patterns; the manner of pattern pattern application based on: documentation and presentation to participants in an empirical a) Experimental studies involving human participants setting; the evaluation criteria used to assess quality of the b) Case studies involving human participants outcome (a software artifact) after applying the patterns; and the We excluded the following papers: method used for empirical evaluation. Our literature survey reported herein to identify these parameters can be used by 1) Publications not related to computer science and software software design patterns researchers and developers as an engineering experimental design roadmap when evaluating patterns for 2) A peer reviewed publication, in the field of software efficiency and effectiveness. engineering discussing: a) Design patterns in general without empirical evaluation The remainder of our paper is organized as follows: In Section 2, b) Design pattern quality assessment in isolation, without we provide a brief background of different areas in which empirical evaluation involving human participants software patterns are used. We document our methodology for c) Questionnaire-based assessment of design patterns conducting the survey in Section 3. In Section 4, we present the d) Design pattern mining results of the survey to answer our research questions. In Section e) Design pattern recovery / discovery 5, we discuss and analyze the results and present our observations. c) Reverse engineering using patterns 2. BACKGROUND 3) Books and non-peer reviewed publications on design patterns Schmidt et al. [26] defines software pattern as a means of 4) Design pattern catalogs providing successful solutions to common software problems. Software patterns are created with the goal of capturing expert 3.3 Data Collection knowledge so it can be efficiently and effectively shared with the We only include papers that report the following data items to software development community. Design patterns [13] provide describe their empirical methodology; we did not use these data successful solutions to recurring problems in the context of a items to evaluate study quality. software design. In addition to design, concept of software patterns is used in the requirements [26], analysis [11], • Complete reference of the source publication architecture [12] and configuration managements [12] among • Empirical method (case study, controlled experiment) others. We focus on the empirical evaluation of software design • Pattern presentation technique to the participants (tool, library, patterns in different domains for the purpose of this literature tutorial, introduction, instantiated patterns) survey. • Problem presentation technique (type of problem, size of problem, number of tasks, duration to complete, deliverable) 3. METHODOLOGY • Problem domain and specific development environment, if any We conducted a literature survey following the principles of • Participants (number, expertise level, grouping) evidence-based software engineering, as discussed in [4]. In this • Type

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    11 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us