Towards a Lean Approach to Reduce Code Smells Injection: An Empirical Study

Similar documents
Deploying Agile Practices in Organizations: A Case Study

Experience and Innovation Factory: Adaptation of an Experience Factory Model for a Research and Development Laboratory

Implementing a tool to Support KAOS-Beta Process Model Using EPF

The Role of Architecture in a Scaled Agile Organization - A Case Study in the Insurance Industry

Software Quality Improvement by using an Experience Factory

PRINCE2 Practitioner Certification Exam Training - Brochure

Empirical Software Evolvability Code Smells and Human Evaluations

Greek Teachers Attitudes toward the Inclusion of Students with Special Educational Needs

UCEAS: User-centred Evaluations of Adaptive Systems

Requirements-Gathering Collaborative Networks in Distributed Software Projects

Evaluating Collaboration and Core Competence in a Virtual Enterprise

Sheila M. Smith is Assistant Professor, Department of Business Information Technology, College of Business, Ball State University, Muncie, Indiana.

Multimedia Courseware of Road Safety Education for Secondary School Students

DESIGN, DEVELOPMENT, AND VALIDATION OF LEARNING OBJECTS

Three Strategies for Open Source Deployment: Substitution, Innovation, and Knowledge Reuse

THEORY OF PLANNED BEHAVIOR MODEL IN ELECTRONIC LEARNING: A PILOT STUDY

TU-E2090 Research Assignment in Operations Management and Services

McGraw-Hill Connect and Create Built by Blackboard. Release Notes. Version 2.3 for Blackboard Learn 9.1

TAIWANESE STUDENT ATTITUDES TOWARDS AND BEHAVIORS DURING ONLINE GRAMMAR TESTING WITH MOODLE

The Moodle and joule 2 Teacher Toolkit

CWIS 23,3. Nikolaos Avouris Human Computer Interaction Group, University of Patras, Patras, Greece

A Pipelined Approach for Iterative Software Process Model

Ph.D. in Behavior Analysis Ph.d. i atferdsanalyse

Analyzing the Usage of IT in SMEs

Initial teacher training in vocational subjects

Evaluating the TESTAR tool in an Industrial Case Study

Executive summary (in English)

Chamilo 2.0: A Second Generation Open Source E-learning and Collaboration Platform

CONSISTENCY OF TRAINING AND THE LEARNING EXPERIENCE

A Model to Detect Problems on Scrum-based Software Development Projects

A cognitive perspective on pair programming

Situational Virtual Reference: Get Help When You Need It

What is PDE? Research Report. Paul Nichols

Software Maintenance

IT4305: Rapid Software Development Part 2: Structured Question Paper

1 Use complex features of a word processing application to a given brief. 2 Create a complex document. 3 Collaborate on a complex document.

George Mason University Graduate School of Education Education Leadership Program. Course Syllabus Spring 2006

ScienceDirect. Noorminshah A Iahad a *, Marva Mirabolghasemi a, Noorfa Haszlinna Mustaffa a, Muhammad Shafie Abd. Latif a, Yahya Buntat b

ACCEPTING MOODLE BY ACADEMIC STAFF AT THE UNIVERSITY OF JORDAN: APPLYING AND EXTENDING TAM IN TECHNICAL SUPPORT FACTORS

P. Belsis, C. Sgouropoulou, K. Sfikas, G. Pantziou, C. Skourlas, J. Varnas

Procedia - Social and Behavioral Sciences 191 ( 2015 ) WCES Why Do Students Choose To Study Information And Communications Technology?

Bachelor of Software Engineering: Emerging sustainable partnership with industry in ODL

Procedia - Social and Behavioral Sciences 98 ( 2014 ) International Conference on Current Trends in ELT

Providing Feedback to Learners. A useful aide memoire for mentors

School Inspection in Hesse/Germany

On Human Computer Interaction, HCI. Dr. Saif al Zahir Electrical and Computer Engineering Department UBC

The Coordination Pyramid: A Perspective on the State of the Art in Coordination Technology

Information System Design and Development (Advanced Higher) Unit. level 7 (12 SCQF credit points)

Document number: 2013/ Programs Committee 6/2014 (July) Agenda Item 42.0 Bachelor of Engineering with Honours in Software Engineering

International Conference KNOWLEDGE-BASED ORGANIZATION Vol. XXIII No SIMULATION AND GAMIFICATION IN E-LEARNING TECHNICAL COURSES

PROJECT MANAGEMENT AND COMMUNICATION SKILLS DEVELOPMENT STUDENTS PERCEPTION ON THEIR LEARNING

Memorandum. COMPNET memo. Introduction. References.

EFL teachers and students perspectives on the use of electronic dictionaries for learning English

Improving software testing course experience with pair testing pattern. Iyad Alazzam* and Mohammed Akour

Registration Fee: $1490/Member, $1865/Non-member Registration Deadline: August 15, 2014 *Please see Tuition Policies on the following page

HAZOP-based identification of events in use cases

Activities, Exercises, Assignments Copyright 2009 Cem Kaner 1

Collective Code Bookmarks for Program Comprehension

Intel-powered Classmate PC. SMART Response* Training Foils. Version 2.0

Houghton Mifflin Online Assessment System Walkthrough Guide

Introducing New IT Project Management Practices - a Case Study

Implementation Science and the Roll-out of the Head Start Program Performance Standards

COMPARISON OF TEXT-BASED AND VISUAL-BASED PROGRAMMING INPUT METHODS

Introduction. 1. Evidence-informed teaching Prelude

ADDIE: A systematic methodology for instructional design that includes five phases: Analysis, Design, Development, Implementation, and Evaluation.

English for Specific Purposes World ISSN Issue 34, Volume 12, 2012 TITLE:

Different Requirements Gathering Techniques and Issues. Javaria Mushtaq

The open source development model has unique characteristics that make it in some

Science in the Environment: Living Things (National 1)

Instructor: Mario D. Garrett, Ph.D. Phone: Office: Hepner Hall (HH) 100

WMO Global Campus: Frequently Asked Questions and Answers, July 2015 V1. WMO Global Campus: Frequently Asked Questions and Answers

Evaluation of Usage Patterns for Web-based Educational Systems using Web Mining

Evaluation of Usage Patterns for Web-based Educational Systems using Web Mining

GALICIAN TEACHERS PERCEPTIONS ON THE USABILITY AND USEFULNESS OF THE ODS PORTAL

A Study of Metacognitive Awareness of Non-English Majors in L2 Listening

Functional requirements, non-functional requirements, and architecture should not be separated A position paper

Top Ten Persuasive Strategies Used on the Web - Cathy SooHoo, 5/17/01

ADDIE MODEL THROUGH THE TASK LEARNING APPROACH IN TEXTILE KNOWLEDGE COURSE IN DRESS-MAKING EDUCATION STUDY PROGRAM OF STATE UNIVERSITY OF MEDAN

From practice to practice: What novice teachers and teacher educators can learn from one another Abstract

Coordination Challenges in Global Software Development

It's Not Just Standing Up: Patterns for Daily Stand-up Meetings

CARDIFF UNIVERSITY OF WALES UNITED KINGDOM. Christine Daniels 1. CONTEXT: DIFFERENCES BETWEEN WALES AND OTHER SYSTEMS

WELCOME WEBBASED E-LEARNING FOR SME AND CRAFTSMEN OF MODERN EUROPE

Web-based Learning Systems From HTML To MOODLE A Case Study

Resource Package. Community Action Day

Using Virtual Manipulatives to Support Teaching and Learning Mathematics

Evidence-based Practice: A Workshop for Training Adult Basic Education, TANF and One Stop Practitioners and Program Administrators

12- A whirlwind tour of statistics

Case study Norway case 1

Summary results (year 1-3)

QUALITY-AWARE APPROACH FOR ENGINEERING SELF-ADAPTIVE SOFTWARE SYSTEMS

Education the telstra BLuEPRint

Thesis-Proposal Outline/Template

A BOOK IN A SLIDESHOW. The Dragonfly Effect JENNIFER AAKER & ANDY SMITH

Experiences Using Defect Checklists in Software Engineering Education

ROLE OF SELF-ESTEEM IN ENGLISH SPEAKING SKILLS IN ADOLESCENT LEARNERS

DO CLASSROOM EXPERIMENTS INCREASE STUDENT MOTIVATION? A PILOT STUDY

M55205-Mastering Microsoft Project 2016

What Different Kinds of Stratification Can Reveal about the Generalizability of Data-Mined Skill Assessment Models

OPAC and User Perception in Law University Libraries in the Karnataka: A Study

Transcription:

Towards a Lean Approach to Reduce Code Smells Injection: An Empirical Study Davide Taibi ( ), Andrea Janes, and Valentina Lenarduzzi Free University of Bozen-Bolzano, Piazza Domenicani, 3, 39100 Bozen-Bolzano, Italy {davide.taibi,andrea.janes,valentina.lenarduzzi}@unibz.it Abstract. Software Quality Assurance is a complex and time-expensive task. In this study we want to observe how agile developers react to just-in-time metrics about the code smells they introduce, and how the metrics influence the quality of the output. 1 Introduction and Aim of the Research Software Quality Assurance (SQA) is still a complex task that requires effort and expertise. The reasons for this are manifold, e.g., that quality-related information is difficult to collect [2, 4] or that investment into quality is often still put aside in favor of other activities, e.g., adding new functionalities [4]. Thanks to current SQA tools available on the market, developers are able to increase their awareness on SQA. However, those tools often require substantial effort to understand the provided results. In particular code smells, a set of structural characteristics of software that may indicate a code or design problem that can make software hard to evolve and maintain, can be easily identified with SQA tools. Developers are often not aware of the code smells they introduce in their source code; with the result of producing products with a maintainability that constantly decreases over time, due to the growth of code smells. For this reason, the identification of code smells is gaining acceptance in industry [1] but the application to agile processes is still not clear since the effort required to apply SQA tools and techniques is usually considered too high and not compliant with agile processes. The goal of this study is to understand if SQA tools, and in particular SonarQube 1, one of the most common SQA tools, can be effectively applied in agile processes increasing the developers productivity and the number of generated bugs. Therefore, we formulate our research questions as follows: RQ1: Is the continuous application of a SQA tool (SonarQube) applicable to agile development processes? RQ2: Does the continuous application of a SQA tool (SonarQube) help to improve the developers awareness of code smells in agile processes? 1 SonarQube: http://www.sonarqube.org. The Author(s) 2016 H. Sharp and T. Hall (Eds.): XP 2016, LNBIP 251, pp. 300 304, 2016. DOI: 10.1007/978-3-319-33515-5_30

Towards a Lean Approach to Reduce Code Smells Injection 301 The execution of this study at XP2016 gives us the opportunity to understand if SQA tools can be effectively applied in agile processes, considering industry practitioners that would not participate in an industrial context because of effort reasons. This paper is structured as follows: after the introductory section containing the aim of our research, we briefly discuss the background and related work in Sect. 2. Section 3 describes the design of the proposed case study. 2 Background and Related Work Software Engineering, as every other engineering discipline, develops ways to analyze the produced artifacts with the intention to learn how to improve the various engineering methods and to produce outputs of an increasing quality. Approaches like the Experience Factory [7] recommend to have a dedicated team that studies how to improve quality and which packages the collected data into reusable knowledge so that the development teams can reuse it later. In many agile environments, this is not feasible. Developing approaches tailored for Agile and Lean environments requires understanding the specific information needs and the period in which the needed information is valuable. Particularly in Lean, a just-in-time approach to feedback is required: the right information at the right moment. Moreover, the complexity of the QA domain makes results hard to interpret within small companies, since they cannot afford a dedicated team or to pay external consultancy for QA. From this point of view, a tool like SonarQube helps companies to analyze the source code with respect to different quality aspects presenting the results in form of a web page. Unfortunately, SonarQube encourages a one size fits all QA model in which users can analyze their source code with a set of predefined measures. This is an additional impediment for teams to use SonarQube to apply a customized QA model within their context, as it requires time and expertise. To apply QA within agile, a tailored set of metrics has to be used [9, 10]. 3 The Case Study The objective of our case study is to understand if the continuous application of Sonar Qube, tailored to an agile development process (as suggested in [9]), helps to reduce the number of injected code smells without influence the developers productivity and if it helps developers to learn how to avoid code smells in the future. According to our expectation, we formulate the goal of the study as follows: analyze the continuous application SonarQube for the purpose of evaluating and comparing with respect to applicability and the code smells awareness from the point of view of the developers in the context of agile software development.

302 D. Taibi et al. 3.1 Data Collection Methods The case study targets developers with at least three years of development experience. We aim at collecting data from developers alongside existing programming exercises in existing workshops, during the XP2016 conference. The data will be collected in two steps: (1) during the development process (2) at the end of the development process. Before the beginning of a coding session, we will provide the access to our tailored SonarQube platform. Our researchers will configure the platform for the projects to be developed, to avoid adding any extra task to the participants. Moreover, for those who accept to track their development activities, we will also install a tool we developed [8] that simply logs the current application on focus. Using this tool, we track the time spent by the developer per application and the time spent reading our reports. We will ask to manually track the time needed to check the report to those who prefer to not install our tool. During the development, we will ask participants to commit the source code related to the development of a specific user story, reporting the user-story-id number. After the commit, the platform will present a short report with the list of code smells introduced in the current commit and the list of all previously introduced code smells. For usability reasons, we will also provide a printed version of the report to the developers who prefer to not switch to SonarQube to see the reports. Developers will be free to decide if the code smells should be removed or not. To understand what participants think about our approach, we will distribute a questionnaire at the end of the development process. To answer this question, we will collect the time overhead needed to read and understand the results provided by the tools and the opinions of the participants by means of the Technology Acceptance Model [5], collecting the metrics listed below. All statements will be evaluated based on a 5-point ordinal Likert scale with the following options: 1 (strongly disagree), 2 (disagree), 3 (neither agree nor disagree), 4 (agree), 5 (strongly agree). Perceived usefulness: measures the degree to which the participant considers the approach useful. I learned which kind of code smells I usually introduce in the source code. The report pointed out code smells I was not aware of. The identified code smells do not make sense. The effort required to analyze the report is too high compared to the provided benefits. Perceived understandability: measures the effort needed by the subject to understand the approach built or whether the participants will need to exert little effort to understand the relationship with the system concepts. It was easy for me to understand how the approach works. Perceived easiness: measures the degree to which the subject believes that he or she was able to make project decisions easier than without the approach.

Towards a Lean Approach to Reduce Code Smells Injection 303 It was easy for me to decide to remove the code smell or not, based on the information provided by the tool. It was easy for me to identify the code smell. After using the tool I was able to remember previous code smells and how to not introduce them anymore. Self-efficacy by applying the technique. The approach helped me to increase my productivity reducing refactoring time. 3.2 Data Analysis For our fist research question (RQ1), we will analyze separately the results for the participants who will install our window tracking tool to calculate the time spent on each window with those who will report the time by manually. Then after statistical tests to check data normality, we will analyze the code smells trend in each commit, to understand the percentage of time spent on the report and on developing. Q2 will be analyzed first performing a descriptive analysis of the collected data and then with a One-Sample Wilcoxon Signed-Rank test for comparing the obtained medians to the hypothesized median (α = 3). Moreover, to make sure that the statements on the given scale will measure the same underlying assumption, we will perform a reliability test by calculating the Cronbach s α reliability measure. Open Access. This chapter is distributed under the terms of the Creative Commons Attribution- NonCommercial 4.0 International License (http://creativecommons.org/licenses/by-nc/4.0/), which permits any noncommercial use, duplication, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, a link is provided to the Creative Commons license and any changes made are indicated. The images or other third party material in this chapter are included in the work s Creative Commons license, unless indicated otherwise in the credit line; if such material is not included in the work s Creative Commons license and the respective action is not permitted by statutory regulation, users will need to obtain permission from the license holder to duplicate, adapt or reproduce the material. References 1. Fontana, F.A., Braione, P., Zanoni, M.: Automatic detection of bad smells in code: an experimental assessment. J. Object Technol. 11(2), 5:1 38 (2012) 2. Hampp, T.: A cost-benefit model for software quality assurance activities. In: Proceedings of the 8th International Conference on Predictive Models in Software Engineering (PROMISE 2012), pp. 99 108. ACM, New York (2012) 3. Kamp, P.: Quality software costs money heartbleed was free. Commun. ACM 57(8), 49 51 (2014) 4. Diaz-Ley, M., Garcia, F., Piattini, M.: Implementing a software measurement program in small and medium enterprises: a suitable framework. IET Softw. 2(5), 417 436 (2008) 5. Caldera, G., Rombach, H.D., Basili, V.: Goal question metric approach. In: Encyclopedia of Software Engineering, pp. 528 532. Wiley, New York (1994)

304 D. Taibi et al. 6. Venkatesh, V., Davis, F.: A theoretical extension of the technology acceptance model: four longitudinal field studies. Manage. Sci. 46(2), 186 204 (2000) 7. Basili, V.R., Caldiera, G., Rombach, D.H.: The experience factory. In: Encyclopedia of Software Engineering 2, Volume Set, pp. 469 476. Wiley (1994) 8. Janes, A.: Squirrel: an architecture for the systematic collection of software development data in microenterprises to support lean software development. In: International Conference on Software and System Process (ICSSP 2015), New York, USA, pp. 171 172 (2015) 9. Davis, C.W.H.: Agile Metrics in Action: Measuring and Enhancing the Performance of Agile Teams, 1st edn. Manning Publications Co., Greenwich (2015) 10. Lavazza, L., Morasca, S., Taibi, D., Tosi, D.: Predicting OSS trustworthiness on the basis of elementary code assessment. In: 2010 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM 2010) (2010)