Bruno Cardoso UFMG, May 2014

Similar documents
Legendre et al Appendices and Supplements, p. 1

Lossless Comparison of Nested Software Decompositions

Nadiya Afzal 1, Mohd. Sadim 2

A Case Study of Leadership in Women s Intercollegiate Softball. By: DIANE L. GILL and JEAN L. PERRY

Analysis of recent swim performances at the 2013 FINA World Championship: Counsilman Center, Dept. Kinesiology, Indiana University

RUGBY is a dynamic, evasive, and highly possessionoriented

C. Mokkapati 1 A PRACTICAL RISK AND SAFETY ASSESSMENT METHODOLOGY FOR SAFETY- CRITICAL SYSTEMS

Cricket Visualization Tool

EXPLORING MOTIVATION AND TOURIST TYPOLOGY: THE CASE OF KOREAN GOLF TOURISTS TRAVELLING IN THE ASIA PACIFIC. Jae Hak Kim

Analysis of hazard to operator during design process of safe ship power plant

Hydraulic and Economic Analysis of Real Time Control

TOPIC: Criteria and Design Guidelines for Three-lane Roads: Literature Search IdeaScale 96

Operating Committee Strategic Plan

2018 FIFA World Cup Stakeholder Engagement First Phase: Verifying the sustainability strategy

Urban Environmental Climate Maps for Urban Planning Considering Urban Heat Island Mitigation in Hiroshima

Analysis of the Article Entitled: Improved Cube Handling in Races: Insights with Isight

INSPECTION OF RECOVERY BOILERS

Basketball data science

Decompression Method For Massive Compressed Files In Mobile Rich Media Applications

Cricket umpire assistance and ball tracking system using a single smartphone camera

Walking up Scenic Hills: Towards a GIS Based Typology of Crowd Sourced Walking Routes

Hazard Operability Analysis

THE REFEREEING IN BASKETBALL- TRENDS AND OPTIMIZATION STRATEGIES OF THE TRAINING AND PERFORMANCE OF REFEREES IN A DIVISION

Assignment for Next Class. Information Systems ISM Put In Nonsense, Get Out Chaos. System and Modeling Concepts. Components of a System.

Which Aspects are able to Influence the Decision in Case of the Bids for the Olympic Games 2024?

General Rules 2015 Season

Road Data Input System using Digital Map in Roadtraffic

Citation for published version (APA): Canudas Romo, V. (2003). Decomposition Methods in Demography Groningen: s.n.

Opleiding Informatica

GLOBE Data Explorations

Science&Motion. SAM BalanceLab. Sports. control the invisible. Most advanced pressure plate for coaching

DESIGN AND ANALYSIS OF ALGORITHMS (DAA 2017)

The Incidence of Daytime Road Hunting During the Dog and No-Dog Deer Seasons in Mississippi: Comparing Recent Data to Historical Data

The Walkability Indicator. The Walkability Indicator: A Case Study of the City of Boulder, CO. College of Architecture and Planning

Application of Dijkstra s Algorithm in the Evacuation System Utilizing Exit Signs

Standard 3.1 The student will plan and conduct investigations in which

Case Interview End-to-end Secrets Program

The Safety Case. The safety case

Flyweight Pattern. Flyweight: Intent. Use sharing to support large numbers of fine-grained objects efficiently. CSIE Department, NTUT Chien-Hung Liu

ELITE PLAYERS PERCEPTION OF FOOTBALL PLAYING SURFACES

Chapter 5: Methods and Philosophy of Statistical Process Control

LINEAR TRANSFORMATION APPLIED TO THE CALIBRATION OF ANALYTES IN VARIOUS MATRICES USING A TOTAL HYDROCARBON (THC) ANALYZER

A SPEED-FLOW MODEL FOR AUSTRIAN -MOTORWAYS

March 6, 2013 Tony Giarrusso, Rama Sivakumar Center for GIS, Georgia Institute of Technology

5.1 Introduction. Learning Objectives

Analysis of performance at the 2007 Cricket World Cup

Virtual Breadboarding. John Vangelov Ford Motor Company

DIGITAL SOLUTIONS TRAINING CATALOGUE. QRA and CFD simulation. Phast, Safeti and KFX SAFER, SMARTER, GREENER

Evaluating and Classifying NBA Free Agents

CS 7641 A (Machine Learning) Sethuraman K, Parameswaran Raman, Vijay Ramakrishnan

Average Runs per inning,

arxiv: v1 [cs.ma] 22 Nov 2017

Mechanical Design Patterns

Author s Name Name of the Paper Session. Positioning Committee. Marine Technology Society. DYNAMIC POSITIONING CONFERENCE September 18-19, 2001

Supplementary Figures

Student Population Projections By Residence. School Year 2016/2017 Report Projections 2017/ /27. Prepared by:

Open Research Online The Open University s repository of research publications and other research outputs

Pedestrian Project List and Prioritization

D-Case Modeling Guide for Target System

CRICKET ONTOLOGY. Project Description :- Instructor :- Prof: Navjyothi Singh

A quantitative software testing method for hardware and software integrated systems in safety critical applications

Vessel Traffic Service(VTS); Situation Awareness(SA); Situation Assessment (SASS); Safety of Navigation

I2V applications for cooperative automated driving and traffic management

EUROPASS SUPPLEMENT TO THE DIPLOMA OF

5.1. Data Displays Batter Up. My Notes ACTIVITY

Software Design of the Stiquito Micro Robot

Advanced Test Equipment Rentals ATEC (2832) OMS 600

Safety When Using Liquid Coatings

CS 221 PROJECT FINAL

Spatio-temporal analysis of team sports Joachim Gudmundsson

Sick of Scrum On the promise of Scrum to elevate distributed development and why it is so hard in practice

VALVE CRITICALITY MODELING

A Network-Assisted Approach to Predicting Passing Distributions

The Safety Case. Structure of Safety Cases Safety Argument Notation

- 2 - Companion Web Site. Back Cover. Synopsis

The latest from the World Health Organization meeting in October 2011 ICF updates

Three New Methods to Find Initial Basic Feasible. Solution of Transportation Problems

Adaptability and Fault Tolerance

TABLE OF CONTENTS. References... 3 Introduction... 4 Standards... 5 Step 1: Understand About Essays Step 2: Prepare for Writing...

CT433 - Machine Safety

National Robotics Competition 2018 NRC WRO Challenge Manual

Safety Critical Systems

PLEASE SCROLL DOWN FOR ARTICLE. Full terms and conditions of use:

Case Study. PayPal s Sparkline Case Study. About Sparkline

Use of On-Body Sensors to Support Elite Sprint Coaching

FASTER, HIGHER, STRONGER LEVEL 4 - Year 5/6 WHAT DOES IT MEAN TO BE AN OLYMPIAN?

Advanced PMA Capabilities for MCM

A Novel Approach to Predicting the Results of NBA Matches

Weather and Cycling in Dublin : Perceptions and Reality

Chapter 5 DATA COLLECTION FOR TRANSPORTATION SAFETY STUDIES

ADA Transition Plan. City of Gainesville FY19-FY28. Date: November 5, Prepared by: City Of Gainesville Department of Mobility

Correlation Between the Fluid Structure Interaction Method and Experimental Analysis of Bending Stress of a Variable Capacity Compressor Suction Valve

Introduction (2 of 2) Systematic approach should be followed

Introducing STAMP in Road Tunnel Safety

An Architecture for Combined Test Data Compression and Abort-on-Fail Test

Reporting an Unanticipated Problem Involving Risks to Subjects or Others (UPIRTSO) to the IRB

A study on the relation between safety analysis process and system engineering process of train control system

An Indian Journal FULL PAPER ABSTRACT KEYWORDS. Trade Science Inc.

DISSOLVED GAS ANALYSIS OF NATURAL ESTER FLUIDS UNDER ELECTRICAL AND THERMAL STRESS

Pedestrian Dynamics: Models of Pedestrian Behaviour

Transcription:

Bruno Cardoso UFMG, May 2014

Bad smells and design patterns have apparently very different structures There are few studies regarding this theme

Design patterns Bad smells Detection tools

Design Patterns: Elements of Reusable Object-Oriented Software is a software engineering book describing recurring solutions to common problems in software design.

If a designer uses the GoF patterns on his design, we hypothesize that he is ensured to select the best known solution to solve his problems.

Pattern Name and Classification Intent Applicability Structure Known Uses Related Patterns

Kent Beck and Martin Fowler have introduced the term bad smells Also called code smells, design smells, among others.

Kerievsky extended the bad smell set introduced by Fowler and Kent. Lanza and Marinescu propose a set of 11 bad smells called deharmonies. Trifu and Reupke describe a catalog of 10 bad smells, called desing flaws.

A bad smell is a surface indication that usually corresponds to a deeper problem in the system. Bad smell is by definition something that's quick to spot. Bad smells don't always indicate a problem. Some long methods are just fine.

A class doing too much Symptoms are too many attributes and too much code

Design Pattern Detection using Similarity Scoring JDeodorant

Makes use of the Similarity Scoring algorithm, which is a strategy that is between the exact and inexact matching Performs the modeling using direct graphs, which maps the pattern information into square matrices

The most used technique for automatic detection tools is the application of software metrics The disadvantage is that metrics understanding varies among analysts

It s an eclipse plugin, able to detect four bad smells: Long Method Large/God Class Feature Envy Switch Statements

A systematic literature review is a means of identifying, evaluating and interpreting all available research relevant to a particular research question, or topic area, or phenomenon of interest. [Kitchenham and Charters 2007, Almeida Biolchini et al. 2007]

This literature review aims to verify the relation between design patterns and bad smells.

Systematic review conduction process.

[Biolchini et al. 2007] came up with a model to support sistematic reviews: Question Formularization Sources selection Studies selection Information Extraction Results Summarization

To summarise the existing evidence concerning a treatment or technology To identify any gaps in current research in order to suggest areas for further investigation To provide a framework/background in order to appropriately position new research activities

What is the relation between design patterns and bad smells? Can design patters bad smells occur in the same class?

Studies should be in English

code smell (code smells, bad smell, bad smells, design smell, design smells) design patterns (design pattern) antipattern (antipatterns, anti-pattern, anti-patterns)

("code smell" OR "code smells" OR "bad smell" OR "bad smells" OR "design smell" OR "design smells") AND ("design patterns" OR "design pattern") AND ("antipattern" OR "antipatterns" OR "antipattern" OR "anti-patterns")

Inclusion/Exclusion Criteria Selection execution

Cause consequence Structural Refactoring Bad Smell Design Pattern

Studies whose focus were the analysis/comparison of detection tools were not considered in this literature review

Phase Source Number of studies Search String Ieee Xplore 71 ACM Digital Library 31 Analysing Abstract Ieee Xplore 23 ACM Digital Library 12 Scanning Ieee Xplore 6 ACM Digital Library 5

Given the inclusion/exclusion criteria, the studies were extracted directed from the sources Only studies whose abstracts were considered to fit the inclusion criteria were extracted

Title Author Year An Ontological Identification of Relationships between Anti-Patterns and Code Smells Luo, Hoss and Carver 2010 On Extended Similarity Scoring and Bit-vector Algorithms for Design Smell Detection Polášek et al 2012 SQUAD: Software Quality Understanding through the Analysis of Design Foutse Khomh 2009 A Logic Based Approach to Locate Composite Refactoring Opportunities in Jebelean, Chiril and Object-Oriented Code Cretu 2010 Towards Automated Restructuring of Object Oriented Systems Trifu and Reupke 2007 Software Change in the Solo Iterative Process: An Experience Report Dorman and Rajlich 2012 Sharing Bad Practices in Design to Improve the Use of Patterns Bouhours et al 2010 SearchBased Determination of Refactorings for Improving the Class Seng, Stammel and Structure of ObjectOriented Systems Burkhart 2006 Impact of Refactoring on Quality Code Evaluation Fontana and Spinelli 2011 Combining Clustering and Pattern Detection for the Reengineering of Component-based Software Systems Detten and Becker 2011 Perspectives on Automated Correction of Bad Smells Pérez, Crespo 2009

Title An Ontological Identification of Relationships between Anti-Patterns and Code Smells On Extended Similarity Scoring and Bit-vector Algorithms for Design Smell Detection SQUAD: Software Quality Understanding through the Analysis of Design A Logic Based Approach to Locate Composite Refactoring Opportunities in Object-Oriented Code Towards Automated Restructuring of Object Oriented Systems Software Change in the Solo Iterative Process: An Experience Report Sharing Bad Practices in Design to Improve the Use of Patterns SearchBased Determination of Refactorings for Improving the Class Structure of ObjectOriented Systems Impact of Refactoring on Quality Code Evaluation Combining Clustering and Pattern Detection for the Reengineering of Component-based Software Systems Perspectives on Automated Correction of Bad Smells Why? Cause-consequence (Smells -> Antipatttern) Structure (Design Pattern - Antipattern) Structure (AP-DP ; Smells-DP) Refactoring (Smells -> DP) Refactoring (AP, Smells -> DP) Refactoring (AP, Smells -> DP) Structure (AP-DP ; Smells-DP) Refactoring (Smells -> DP) Refactoring (Smells -> DP) Structure (Smells-DP) Refactoring (Smells -> DP)

6 studies concerned on refactoring 4 studies stated a paralell between Design Patttern/Antipattern structures or and Design Patttern/Smell structures 1 study worked on cause-consequence relation between smells and antipatterns

None of the studies proposed to deeply analyze the coocurrence of design patterns and bad smells 2 studies cited that design pattern and bad smells my occur in the same class

Analyse the cooccurrence of bad smells and design patterns by using detection tools in software systems Understand in which situations bad smells are indeed an indication of deeper or future flaws

Visitor - Feature Envy Mediator - God Class

Visitor may have portions that should or could be part of another class Feature Envy occurs when a method seems more interested in a different class than the one in which it is inserted

Mediator intends to define an object that encapsulates how a set of objects interact God/Large Class is a class that does too much. The symptoms are too many attributes and too much code