Small Scale Detection

Size: px
Start display at page:

Download "Small Scale Detection"

Transcription

1 Software Reengineering SRe2LIC Duplication Lab Session February 2008 Code duplication is the top Bad Code Smell according to Kent Beck. In the lecture it has been said that duplication in general has many disadvantages and its occurrence in a software system should ideally be reduced to a minimum, if maintainability is a desired goal. In this lab session you will learn how to employ some duplication detection tools, learn to analyze their output, and try to do something about the detected clones. You will also encounter problems with the application of the tools, and shortcomings that are typical for solutions in a relatively young research domain. We will first look for clones in single file, then in large system, will analyze the reported duplication in different ways, and finally refactor some of the found clones. We will conclude with a discussion. Small Scale Detection We start with the ultimate clone detector: the programmer. Look at the class DuplicationSuspect.java in an editor. Questions: Can you detect duplication with your bare eyes? Which methods seem to be similar? Manual clone detection does not scale very well. We will therefore use some tools to do the tedious comparisons. Use the simpledude.pl script (presented in the lecture) on the DuplicationSuspect.java file. simpledude.pl DuplicationSuspect.java > report.txt Hint: Set the appropriate paths in your shell by sourcing the commands from the pathsforscripts.sh file, e.g. execute this command in the root directory of the exercise material: source pathsforscripts.sh Try to change the parameter $slidingwindowsize at the beginning of the simpledude.pl script from 10 to something higher, e.g. 20, 30,

2 Questions: Did the tool detect more/less duplication than you? What are the problems with this way of reporting duplication? The detector uses exact string matching as a comparison mechanism. What are the consequences of that? The old adage that an image speaks a thousand words does not fail to apply in reengineering. We use the Dotplot visualization (presented in the lecture) to get a better overview of the cloning activity in the file. Start the CCFinderX (the path of the installed directory may not include a space char) by clicking on gemx.bat in the bin directory. Steps: (1) File -> Detect Clones (2) Select preprocess script of target source file -> java (3) Select a root directory of the target source files -> DuplicationLab (4) Specify detection options by this dialog -> Keep the default settings Look at the scatter plot view of CCFinderX. Questions about the Scatter Plot view: What does the middle diagonal mean? How many clone classes can you distinguish? Questions about the Source Text View View: How many clone pairs does the first clone set comprise? Can you determine any refactoring candidates from the source code view? Question Look in the Quick guide of CCFinderX for an explanation of the following parameters: Minimum Clone length Minimum TKS Shaper Level P-match Application

3 Hint Look at the documents section of the page for the quick guide of CCFinderX. Large scale detection Now, with a bit of experience we feel ready to take on a real world system. In the lab directory there are four systems that can be investigated: FreeMercator Java POS Application MegaMek Java Strategy Megamek.sourceforge.net Game PostgreSQL C Relational DB Quake3 C FPS sourceforge.net/projects/freemercator But if you want to investigate a project of your own, it is even better. First we do the duplication analysis of FreeMarcator together. Unpack the archive. Compute the duplication of FreeMercator. Start with the default token length of 50. If you think that too many small clones are found, you can increase this minimum. Questions for the Visual Analysis View: Which groups of files that are obviously interconnected with each other can you see? Use Zooming, selection of specific file pairs, and the source code panel, to investigate the kind of duplication found in these groups. Can you find a file, which is (almost) a complete copy of another? Where in the dotplot do you have to look for such an occurrence? Once you have detected the code clones and you want to look for refactoring candidates, what is the natural thing to look for when looking at the clones?

4 With an overwhelming number of reported clones, we need other means to help us with the analysis. CCFinder has a Metric Analysis View, which lets us filter the clones using a number of metrics. The following metrics are offered to describe S, which is a set of code fragments that are copies of each other (S can also be called a clone class, each member is a clone): RAD(S) is the degree of distribution of clones in a clone set S in the file system. If all fragments are in the same file, RAD(S)=0. If all fragments are in different files the same directory, then RAD(S)=1. LEN(S) is the average length of clones (number of tokens) of clones in S. RNR(S) represents how many clones in S consist of non-repeated code. A low value of RNR means that a large part of the clone is repeated code. NIF(S) is the number of files which include at least one code fragment from S. POP(S) is the number of code fragments ( population )in S. LOOP, COND, McCabe Loop is defined as count of loops in a code fragment, COND is defined as count of conditional branches, and McCabe is defined as the sum of them. In order to focus attention on complex code, select code clones with the higher values of these metrics. Play around with the Metrics view by changing the maximal and minimal values of the different metrics. Try to isolate a few clone classes. Look at its members in the Source Code view of the Metric Analysis View. Questions: Which selection seems to remove false positives best? You are on the lookout for clones, which can be easily refactored. Which selection of metric values seems to lead to these clones? Refactoring To make this a reengineering lab, we will refactor some duplication. Some of the examples that were found in the last exercise should be chosen and removed, i.e. combined into a single function/method.

5 Questions to guide the refactoring process: How much of the code belongs to the clone? Only the part that is actually copied? Which parts of the common code need to be abstracted to make the code work in general? How many parameters do we need to pass to the extracted functionality? To which class does the functionality belong? Are the original places related via inheritance relationships that we can exploit (move to superclass)? Do we need to create a new class? How sure are you that your refactoring did not change the behaviour of the system? Final Discussion Discuss in class about the following questions. Detection Quality: How many false positives (clones which you as a programmer would not name as such) has the detector found? Where the filters offered by the detector enough to get to the true positives? Did you feel that the filters also removed some true positives? Reengineering: What were the reasons you could not refactor some clones? Could a tool detect the characteristics that are detrimental to the refactorability of clones? Tool Support: What are shortcomings of the tools you used? What feature do you miss most? Duplication Awareness: If you looked at your own code: have you found any striking examples? Will you pay more attention to duplication in your own programming in the future?

Refactoring Support Based on Code Clone Analysis

Refactoring Support Based on Code Clone Analysis Refactoring Support Based on Code Clone Analysis Yoshiki Higo 1,Toshihiro Kamiya 2, Shinji Kusumoto 1 and Katsuro Inoue 1 1 Graduate School of Information Science and Technology, Osaka University, Toyonaka,

More information

Software Reengineering P1: Intro & Organization. Martin Pinzger Delft University of Technology

Software Reengineering P1: Intro & Organization. Martin Pinzger Delft University of Technology Software Reengineering P1: Intro & Organization Martin Pinzger Delft University of Technology Greenfield software development 2 Non-greenfield software development? 3 How often did you...... encounter

More information

EVALUATION OF TOKEN BASED TOOLS ON THE BASIS OF CLONE METRICS

EVALUATION OF TOKEN BASED TOOLS ON THE BASIS OF CLONE METRICS EVALUATION OF TOKEN BASED TOOLS ON THE BASIS OF CLONE METRICS Rupinder Kaur, Harpreet Kaur, Prabhjot Kaur Abstract The area of clone detection has considerably evolved over the last decade, leading to

More information

On Refactoring for Open Source Java Program

On Refactoring for Open Source Java Program On Refactoring for Open Source Java Program Yoshiki Higo 1,Toshihiro Kamiya 2, Shinji Kusumoto 1, Katsuro Inoue 1 and Yoshio Kataoka 3 1 Graduate School of Information Science and Technology, Osaka University

More information

CSC D84 Assignment 2 Game Trees and Mini-Max

CSC D84 Assignment 2 Game Trees and Mini-Max 0 The Cats Strike Back Due date: Wednesday, Feb. 21, 9am (electronic submission on Mathlab) This assignment can be completed individually, or by a team of 2 students This assignment is worth 10 units toward

More information

An Experience Report on Analyzing Industrial Software Systems Using Code Clone Detection Techniques

An Experience Report on Analyzing Industrial Software Systems Using Code Clone Detection Techniques An Experience Report on Analyzing Industrial Software Systems Using Code Clone Detection Techniques Norihiro Yoshida (NAIST) Yoshiki Higo, Shinji Kusumoto, Katsuro Inoue (Osaka University) Outline 1. What

More information

Code Clone Analysis and Application

Code Clone Analysis and Application Code Clone Analysis and Application Katsuro Inoue Osaka University Talk Structure Clone Detection CCFinder and Associate Tools Applications Summary of Code Clone Analysis and Application Clone Detection

More information

Visualization of Clone Detection Results

Visualization of Clone Detection Results Visualization of Clone Detection Results Robert Tairas and Jeff Gray Department of Computer and Information Sciences University of Alabama at Birmingham Birmingham, AL 5294-1170 1-205-94-221 {tairasr,

More information

Sophos Endpoint Detection and Response

Sophos Endpoint Detection and Response Sophos Endpoint Detection and Response Early Access Program - Testing Guide Prerequisites for performing exercises: 2 Endpoints both enrolled in EDR EAP Download Sophos HIPS Test (exe) * from http://sophostest.com

More information

The goal of this project is to enhance the identification of code duplication which can result in high cost reductions for a minimal price.

The goal of this project is to enhance the identification of code duplication which can result in high cost reductions for a minimal price. Code Duplication New Proposal Dolores Zage, Wayne Zage Ball State University June 1, 2017 July 31, 2018 Long Term Goals The goal of this project is to enhance the identification of code duplication which

More information

SOFTWARE ENGINEERING Prof.N.L.Sarda Computer Science & Engineering IIT Bombay. Lecture #10 Process Modelling DFD, Function Decomp (Part 2)

SOFTWARE ENGINEERING Prof.N.L.Sarda Computer Science & Engineering IIT Bombay. Lecture #10 Process Modelling DFD, Function Decomp (Part 2) SOFTWARE ENGINEERING Prof.N.L.Sarda Computer Science & Engineering IIT Bombay Lecture #10 Process Modelling DFD, Function Decomp (Part 2) Let us continue with the data modeling topic. So far we have seen

More information

How To Test Your Code A CS 1371 Homework Guide

How To Test Your Code A CS 1371 Homework Guide Introduction After you have completed each drill problem, you should make it a habit to test your code. There are good ways of testing your code and there are bad ways of testing your code. This guide

More information

Extracting Code Clones for Refactoring Using Combinations of Clone Metrics

Extracting Code Clones for Refactoring Using Combinations of Clone Metrics Extracting Code Clones for Refactoring Using Combinations of Clone Metrics Eunjong Choi 1, Norihiro Yoshida 2, Takashi Ishio 1, Katsuro Inoue 1, Tateki Sano 3 1 Graduate School of Information Science and

More information

LAB 3: Text processing + Apache OpenNLP

LAB 3: Text processing + Apache OpenNLP LAB 3: Text processing + Apache OpenNLP 1. Motivation: The text that was derived (e.g., crawling + using Apache Tika) must be processed before being used in an information retrieval system. Text processing

More information

Visual Detection of Duplicated Code

Visual Detection of Duplicated Code Visual Detection of Duplicated Code Matthias Rieger, Stéphane Ducasse Software Composition Group, University of Berne ducasse,rieger@iam.unibe.ch http://www.iam.unibe.ch/scg/ Abstract Code duplication

More information

Improving the crab: more sophisticated programming

Improving the crab: more sophisticated programming Chapter 3 Improving the crab: more sophisticated programming topics: concepts: random behavior, keyboard control, sound dot notation, random numbers, defining methods, comments In the previous chapter,

More information

Reengineering II. Transforming the System

Reengineering II. Transforming the System Reengineering II Transforming the System Recap: Reverse Engineering We have a detailed impression of the current state We identified the important parts We identified reengineering opportunities We have

More information

CSE 101 Introduction to Computers Development / Tutorial / Lab Environment Setup

CSE 101 Introduction to Computers Development / Tutorial / Lab Environment Setup CSE 101 Introduction to Computers Development / Tutorial / Lab Environment Setup Purpose: The purpose of this lab is to setup software that you will be using throughout the term for learning about Python

More information

Beyond the Refactoring Browser: Advanced Tool Support for Software Refactoring

Beyond the Refactoring Browser: Advanced Tool Support for Software Refactoring Beyond the Refactoring Browser: Advanced Tool Support for Software Refactoring Tom Mens Tom Tourwé Francisca Muñoz Programming Technology Lab Vrije Universiteit Brussel Pleinlaan 2, 1050 Brussel, Belgium

More information

Preparation of alignments for variant calling with GATK: exercise instructions for BioHPC Lab computers

Preparation of alignments for variant calling with GATK: exercise instructions for BioHPC Lab computers Preparation of alignments for variant calling with GATK: exercise instructions for BioHPC Lab computers Data used in the exercise We will use D. melanogaster WGS paired-end Illumina data with NCBI accessions

More information

CSC 258 lab notes, Fall 2003

CSC 258 lab notes, Fall 2003 CSC 258 lab notes, Fall 2003 Instructor: E. R. C. Hehner Lab demonstrators: Nicolas Kokkalis, Andrés Lagar Cavilla Successful completion of the three graded labs in this course involves a significant amount

More information

Refactoring and Rearchitecturing

Refactoring and Rearchitecturing Refactoring and Rearchitecturing Overview Introduction Refactoring vs reachitecting Exploring the situation Legacy code Code written by others Code already written Not supported code Code without automated

More information

Patterns in Software Engineering

Patterns in Software Engineering Patterns in Software Engineering Lecturer: Raman Ramsin Lecture 10 Refactoring Patterns Part 1 1 Refactoring: Definition Refactoring: A change made to the internal structure of software to make it easier

More information

Introduction to Extreme Programming. Extreme Programming is... Benefits. References: William Wake, Capital One Steve Metsker, Capital One Kent Beck

Introduction to Extreme Programming. Extreme Programming is... Benefits. References: William Wake, Capital One Steve Metsker, Capital One Kent Beck Introduction to Extreme Programming References: William Wake, Capital One Steve Metsker, Capital One Kent Beck Extreme Programming is... Lightweight software development method used for small to medium-sized

More information

Helping the Compiler Help You. Thomas Dy

Helping the Compiler Help You. Thomas Dy Helping the Compiler Help You Thomas Dy Programming do { programmer.write_code(); if(lazy) { sleep(); } compile_code(); } while(compiler.has_errors()); Compiler: Me no speaky English Programmer: Compiler,

More information

Hot springs that erupt intermittently in a column

Hot springs that erupt intermittently in a column L A B 1 MODELING OLD FAITHFUL S ERUPTIONS Modeling Data Hot springs that erupt intermittently in a column of steam and hot water are called geysers. Geysers may erupt in regular or irregular intervals

More information

Detecting Structural Refactoring Conflicts Using Critical Pair Analysis

Detecting Structural Refactoring Conflicts Using Critical Pair Analysis SETra 2004 Preliminary Version Detecting Structural Refactoring Conflicts Using Critical Pair Analysis Tom Mens 1 Software Engineering Lab Université de Mons-Hainaut B-7000 Mons, Belgium Gabriele Taentzer

More information

A Study of Bad Smells in Code

A Study of Bad Smells in Code International Journal for Science and Emerging ISSN No. (Online):2250-3641 Technologies with Latest Trends 7(1): 16-20 (2013) ISSN No. (Print): 2277-8136 A Study of Bad Smells in Code Gurpreet Singh* and

More information

CMPSCI 187 / Spring 2015 Sorting Kata

CMPSCI 187 / Spring 2015 Sorting Kata Due on Thursday, April 30, 8:30 a.m Marc Liberatore and John Ridgway Morrill I N375 Section 01 @ 10:00 Section 02 @ 08:30 1 Contents Overview 3 Learning Goals.................................................

More information

DCC / ICEx / UFMG. Software Code Clone. Eduardo Figueiredo.

DCC / ICEx / UFMG. Software Code Clone. Eduardo Figueiredo. DCC / ICEx / UFMG Software Code Clone Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Code Clone Code Clone, also called Duplicated Code, is a well known code smell in software systems Code clones

More information

Topics. Java arrays. Definition. Data Structures and Information Systems Part 1: Data Structures. Lecture 3: Arrays (1)

Topics. Java arrays. Definition. Data Structures and Information Systems Part 1: Data Structures. Lecture 3: Arrays (1) Topics Data Structures and Information Systems Part 1: Data Structures Michele Zito Lecture 3: Arrays (1) Data structure definition: arrays. Java arrays creation access Primitive types and reference types

More information

RSA Authentication Manager Adapter User Guide

RSA Authentication Manager Adapter User Guide IBM Security Identity Manager Version 6.0 RSA Authentication Manager Adapter User Guide SC27-4409-04 IBM Security Identity Manager Version 6.0 RSA Authentication Manager Adapter User Guide SC27-4409-04

More information

Implementing evolution: Refactoring

Implementing evolution: Refactoring 2IS55 Software Evolution Sources Implementing evolution: Refactoring Alexander Serebrenik / SET / W&I 17-5-2010 PAGE 1 Last week Problem: changing code is difficult Assignment 6 Deadline: Today Assignment

More information

Er. Himanshi Vashisht, Sanjay Bharadwaj, Sushma Sharma

Er. Himanshi Vashisht, Sanjay Bharadwaj, Sushma Sharma International Journal Scientific Research in Computer Science, Engineering and Information Technology 2018 IJSRCSEIT Volume 3 Issue 8 ISSN : 2456-3307 DOI : https://doi.org/10.32628/cseit183833 Impact

More information

6.001 Notes: Section 15.1

6.001 Notes: Section 15.1 6.001 Notes: Section 15.1 Slide 15.1.1 Our goal over the next few lectures is to build an interpreter, which in a very basic sense is the ultimate in programming, since doing so will allow us to define

More information

Module 1: Introduction RStudio

Module 1: Introduction RStudio Module 1: Introduction RStudio Contents Page(s) Installing R and RStudio Software for Social Network Analysis 1-2 Introduction to R Language/ Syntax 3 Welcome to RStudio 4-14 A. The 4 Panes 5 B. Calculator

More information

Devel::Cover - An Introduction

Devel::Cover - An Introduction Devel::Cover - An Introduction Paul Johnson paul@pjcj.net 11.1 Introduction Testing is an important part of the software development process. The more important the software, the more important the testing

More information

Improving the Crab more sophisticated programming

Improving the Crab more sophisticated programming CHAPTER 3 Improving the Crab more sophisticated programming topics: concepts: random behavior, keyboard control, sound dot notation, random numbers, defining methods, comments In the previous chapter,

More information

Refactorings. Refactoring. Refactoring Strategy. Demonstration: Refactoring and Reverse Engineering. Conclusion

Refactorings. Refactoring. Refactoring Strategy. Demonstration: Refactoring and Reverse Engineering. Conclusion Refactorings Refactoring What is it? Why is it necessary? Examples Tool support Refactoring Strategy Code Smells Examples of Cure Demonstration: Refactoring and Reverse Engineering Refactor to Understand

More information

Credit where Credit is Due. Lecture 25: Refactoring. Goals for this lecture. Last Lecture

Credit where Credit is Due. Lecture 25: Refactoring. Goals for this lecture. Last Lecture Credit where Credit is Due Lecture 25: Refactoring Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2002 Some of the material for this lecture and lecture 26 is taken

More information

Descriptive Statistics and Graphing

Descriptive Statistics and Graphing Anatomy and Physiology Page 1 of 9 Measures of Central Tendency Descriptive Statistics and Graphing Measures of central tendency are used to find typical numbers in a data set. There are different ways

More information

Code Clone Detector: A Hybrid Approach on Java Byte Code

Code Clone Detector: A Hybrid Approach on Java Byte Code Code Clone Detector: A Hybrid Approach on Java Byte Code Thesis submitted in partial fulfillment of the requirements for the award of degree of Master of Engineering in Software Engineering Submitted By

More information

introduction to records in touchdevelop

introduction to records in touchdevelop introduction to records in touchdevelop To help you keep your data organized, we are introducing records in release 2.8. A record stores a collection of named values called fields, e.g., a Person record

More information

6 Further... Programming

6 Further... Programming 6 Further... Programming In this chapter we ll get some (more) practice building programs and crafting (often) bite-sized chunks of code that solve a specific, normally computational or numerical (rather

More information

A Tree Kernel Based Approach for Clone Detection

A Tree Kernel Based Approach for Clone Detection A Tree Kernel Based Approach for Clone Detection Anna Corazza 1, Sergio Di Martino 1, Valerio Maggio 1, Giuseppe Scanniello 2 1) University of Naples Federico II 2) University of Basilicata Outline Background

More information

CSCI 201 Lab #11 Prof. Jeffrey Miller 1/23. Lab #11 CSCI 201. Title MySQL Installation. Lecture Topics Emphasized Databases

CSCI 201 Lab #11 Prof. Jeffrey Miller 1/23. Lab #11 CSCI 201. Title MySQL Installation. Lecture Topics Emphasized Databases Lab #11 CSCI 201 Title MySQL Installation Lecture Topics Emphasized Databases Introduction This lab will introduce you to MySQL. Before being able to run the DBMS, we will need to install it. There is

More information

An Automatic Framework for Extracting and Classifying Near-Miss Clone Genealogies

An Automatic Framework for Extracting and Classifying Near-Miss Clone Genealogies An Automatic Framework for Extracting and Classifying Near-Miss Clone Genealogies Ripon K. Saha Chanchal K. Roy Kevin A. Schneider Department of Computer Science, University of Saskatchewan, Canada {ripon.saha,

More information

HOUR 4 Understanding Events

HOUR 4 Understanding Events HOUR 4 Understanding Events It s fairly easy to produce an attractive interface for an application using Visual Basic.NET s integrated design tools. You can create beautiful forms that have buttons to

More information

Software Clone Detection and Refactoring

Software Clone Detection and Refactoring Software Clone Detection and Refactoring Francesca Arcelli Fontana *, Marco Zanoni *, Andrea Ranchetti * and Davide Ranchetti * * University of Milano-Bicocca, Viale Sarca, 336, 20126 Milano, Italy, {arcelli,marco.zanoni}@disco.unimib.it,

More information

INFO Wednesday, September 14, 2016

INFO Wednesday, September 14, 2016 INFO 1301 Wednesday, September 14, 2016 Topics to be covered Last class we spoke about the middle (central tendency) of a data set. Today we talk about variability in a data set. Variability of Data Variance

More information

MEASURE YOUR CODE USING CODE METRICS. CS 599 Software Metrics and Models Hana Alarifi

MEASURE YOUR CODE USING CODE METRICS. CS 599 Software Metrics and Models Hana Alarifi MEASURE YOUR CODE USING CODE METRICS CS 599 Software Metrics and Models Hana Alarifi Overview Quality code is the top priority for a good developer. The code must be not only bug free code but also understandable,

More information

MATLAB TUTORIAL WORKSHEET

MATLAB TUTORIAL WORKSHEET MATLAB TUTORIAL WORKSHEET What is MATLAB? Software package used for computation High-level programming language with easy to use interactive environment Access MATLAB at Tufts here: https://it.tufts.edu/sw-matlabstudent

More information

Lab copy. Do not remove! Mathematics 152 Spring 1999 Notes on the course calculator. 1. The calculator VC. The web page

Lab copy. Do not remove! Mathematics 152 Spring 1999 Notes on the course calculator. 1. The calculator VC. The web page Mathematics 152 Spring 1999 Notes on the course calculator 1. The calculator VC The web page http://gamba.math.ubc.ca/coursedoc/math152/docs/ca.html contains a generic version of the calculator VC and

More information

Analytics: Server Architect (Siebel 7.7)

Analytics: Server Architect (Siebel 7.7) Analytics: Server Architect (Siebel 7.7) Student Guide June 2005 Part # 10PO2-ASAS-07710 D44608GC10 Edition 1.0 D44917 Copyright 2005, 2006, Oracle. All rights reserved. Disclaimer This document contains

More information

Lab #8: Introduction to UNIX and GMT

Lab #8: Introduction to UNIX and GMT Geol 335.3 1 Lab #8: Introduction to UNIX and GMT In this lab, you ll familiarize yourself with some of the leading components of scientific computing: UNIX operating system, and a free, open-source, GIS/plotting

More information

15-110: Principles of Computing, Spring 2018

15-110: Principles of Computing, Spring 2018 15-110: Principles of Computing, Spring 2018 Programming Assignment 11 (PA11) Due: Tuesday, May 1 by 9PM IMPORTANT ANNOUNCEMENT You cant drop this assignment even if it is your lowest PA score. Failure

More information

Identification of Structural Clones Using Association Rule and Clustering

Identification of Structural Clones Using Association Rule and Clustering Identification of Structural Clones Using Association Rule and Clustering Dr.A.Muthu Kumaravel Dept. of MCA, Bharath University, Chennai-600073, India ABSTRACT: Code clones are similar program structures

More information

Bases de Dades: introduction to SQL (part 1)

Bases de Dades: introduction to SQL (part 1) Bases de Dades: introduction to SQL (part 1) Andrew D. Bagdanov bagdanov@cvc.uab.es Departamento de Ciencias de la Computación Universidad Autónoma de Barcelona Fall, 2010 Outline Last week on bases de

More information

Vectorization Lab Parallel Computing at TACC: Ranger to Stampede Transition

Vectorization Lab Parallel Computing at TACC: Ranger to Stampede Transition Vectorization Lab Parallel Computing at TACC: Ranger to Stampede Transition Aaron Birkland Consultant Cornell Center for Advanced Computing December 11, 2012 1 Simple Vectorization This lab serves as an

More information

Life, the Universe, and CSS Tests XML Prague 2018

Life, the Universe, and CSS Tests XML Prague 2018 It turns out that the answer to the ultimate question of life, the Universe, and CSS Tests isn t a number. It is, in fact, multiple numbers. It is the answers to: How many test results are correct? How

More information

McCa!"s Triangle of Quality

McCa!s Triangle of Quality McCa!"s Triangle of Quality Maintainability Portability Flexibility Reusability Testability Interoperability PRODUCT REVISION PRODUCT TRANSITION PRODUCT OPERATION Correctness Usability Reliability Efficiency

More information

Lesson 17 Transcript: Troubleshooting

Lesson 17 Transcript: Troubleshooting Lesson 17 Transcript: Troubleshooting Slide 1 - Cover Welcome to Lesson 17 of the DB2 on Campus lecture series. Today we're going to talk about troubleshooting. My name is Raul Chong, and I'm the DB2 on

More information

SourcererCC -- Scaling Code Clone Detection to Big-Code

SourcererCC -- Scaling Code Clone Detection to Big-Code SourcererCC -- Scaling Code Clone Detection to Big-Code What did this paper do? SourcererCC a token-based clone detector, that can detect both exact and near-miss clones from large inter project repositories

More information

Enemy Territory Traffic Analysis

Enemy Territory Traffic Analysis Enemy Territory Traffic Analysis Julie-Anne Bussiere *, Sebastian Zander Centre for Advanced Internet Architectures. Technical Report 00203A Swinburne University of Technology Melbourne, Australia julie-anne.bussiere@laposte.net,

More information

Slide 1 CS 170 Java Programming 1 The Switch Duration: 00:00:46 Advance mode: Auto

Slide 1 CS 170 Java Programming 1 The Switch Duration: 00:00:46 Advance mode: Auto CS 170 Java Programming 1 The Switch Slide 1 CS 170 Java Programming 1 The Switch Duration: 00:00:46 Menu-Style Code With ladder-style if-else else-if, you might sometimes find yourself writing menu-style

More information

Contents. Index iii

Contents. Index iii Known Issues Contents Known issues............ 1 Blank administrative settings in IBM SmartCloud Analytics - Log Analysis.......... 1 Logs are not available for an incomplete or failed installation...............

More information

Lecture Notes on Memory Layout

Lecture Notes on Memory Layout Lecture Notes on Memory Layout 15-122: Principles of Imperative Computation Frank Pfenning André Platzer Lecture 11 1 Introduction In order to understand how programs work, we can consider the functions,

More information

for Q-CHECKER Text version 15-Feb-16 4:49 PM

for Q-CHECKER Text version 15-Feb-16 4:49 PM Q-MONITOR 5.4.X FOR V5 for Q-CHECKER USERS GUIDE Text version 15-Feb-16 4:49 PM Orientation Symbols used in the manual For better orientation in the manual the following symbols are used: Warning symbol

More information

CS 1110, LAB 10: ASSERTIONS AND WHILE-LOOPS 1. Preliminaries

CS 1110, LAB 10: ASSERTIONS AND WHILE-LOOPS  1. Preliminaries CS 0, LAB 0: ASSERTIONS AND WHILE-LOOPS http://www.cs.cornell.edu/courses/cs0/20sp/labs/lab0.pdf. Preliminaries This lab gives you practice with writing loops using invariant-based reasoning. Invariants

More information

6.001 Notes: Section 8.1

6.001 Notes: Section 8.1 6.001 Notes: Section 8.1 Slide 8.1.1 In this lecture we are going to introduce a new data type, specifically to deal with symbols. This may sound a bit odd, but if you step back, you may realize that everything

More information

Project #1: Tracing, System Calls, and Processes

Project #1: Tracing, System Calls, and Processes Project #1: Tracing, System Calls, and Processes Objectives In this project, you will learn about system calls, process control and several different techniques for tracing and instrumenting process behaviors.

More information

Part 6b: The effect of scale on raster calculations mean local relief and slope

Part 6b: The effect of scale on raster calculations mean local relief and slope Part 6b: The effect of scale on raster calculations mean local relief and slope Due: Be done with this section by class on Monday 10 Oct. Tasks: Calculate slope for three rasters and produce a decent looking

More information

Using Code Coverage to Improve the Reliability of Embedded Software. Whitepaper V

Using Code Coverage to Improve the Reliability of Embedded Software. Whitepaper V Using Code Coverage to Improve the Reliability of Embedded Software Whitepaper V2.0 2017-12 Table of Contents 1 Introduction... 3 2 Levels of Code Coverage... 3 2.1 Statement Coverage... 3 2.2 Statement

More information

Test First Software Development

Test First Software Development Test First Software Development Jacob Kristhammar Roger Schildmeijer D04, Lund Institute of Technology, Sweden {d04jk d04rp}@student.lth.se 2008-02-06 Abstract In this in-depth study we will try to explain

More information

Deconvolution and Imaging ASTR 240: In-class activity, April 1, 2013

Deconvolution and Imaging ASTR 240: In-class activity, April 1, 2013 Deconvolution and Imaging ASTR 240: In-class activity, April 1, 2013 In this activity, we will use calibrated visibilities from the Submillimeter Array to create an image of a disk around a nearby young

More information

Computer Vision, Assignment 4 Model Fitting

Computer Vision, Assignment 4 Model Fitting Centre for Mathematical Sciences, February 2013 Due 2013-02-26 Computer Vision, Assignment 4 Model Fitting 1 Instructions In this assignment you will study model fitting. In particular you will use random

More information

TDDC88 Lab 4 Software Configuration Management

TDDC88 Lab 4 Software Configuration Management TDDC88 Lab 4 Software Configuration Management Introduction "Version control is to programmers what the safety net is to a trapeze artist. Knowing the net is there to catch them if they fall, aerialists

More information

Getting started with Hugs on Linux

Getting started with Hugs on Linux Getting started with Hugs on Linux CS190 Functional Programming Techniques Dr Hans Georg Schaathun University of Surrey Autumn 2008 Week 1 Dr Hans Georg Schaathun Getting started with Hugs on Linux Autumn

More information

Software Design and Analysis CSCI 2040

Software Design and Analysis CSCI 2040 Software Design and Analysis CSCI 2040 Introduce two important development practices in the context of the case studies: Test-Driven Development Refactoring 2 Logic is the art of going wrong with confidence

More information

A Brief Haskell and GHC Refresher

A Brief Haskell and GHC Refresher A Brief Haskell and GHC Refresher Henrik Nilsson and Neil Sculthorpe School of Computer Science University of Nottingham 24th September 2013 1 Introduction The purpose of this document is to give you quick

More information

Process Scheduling with Job Scheduler

Process Scheduling with Job Scheduler Process Scheduling with Job Scheduler On occasion it may be required to start an IBPM process at configurable times of the day or week. To automate this task, a scheduler must be employed. Scheduling is

More information

On Refactoring Support Based on Code Clone Dependency Relation

On Refactoring Support Based on Code Clone Dependency Relation On Refactoring Support Based on Code Dependency Relation Norihiro Yoshida 1, Yoshiki Higo 1, Toshihiro Kamiya 2, Shinji Kusumoto 1, Katsuro Inoue 1 1 Graduate School of Information Science and Technology,

More information

Weka VotedPerceptron & Attribute Transformation (1)

Weka VotedPerceptron & Attribute Transformation (1) Weka VotedPerceptron & Attribute Transformation (1) Lab6 (in- class): 5 DIC 2016-13:15-15:00 (CHOMSKY) ACKNOWLEDGEMENTS: INFORMATION, EXAMPLES AND TASKS IN THIS LAB COME FROM SEVERAL WEB SOURCES. Learning

More information

Hustle Documentation. Release 0.1. Tim Spurway

Hustle Documentation. Release 0.1. Tim Spurway Hustle Documentation Release 0.1 Tim Spurway February 26, 2014 Contents 1 Features 3 2 Getting started 5 2.1 Installing Hustle............................................. 5 2.2 Hustle Tutorial..............................................

More information

Case studies: Outline Case Study: Noughts and Crosses

Case studies: Outline Case Study: Noughts and Crosses I. Automated Banking System Case studies: Outline Case Study: Noughts and Crosses II. III. Library Noughts and Crosses Definition of the problem Game played on a 3x3 square board between two players. The

More information

Project Compiler. CS031 TA Help Session November 28, 2011

Project Compiler. CS031 TA Help Session November 28, 2011 Project Compiler CS031 TA Help Session November 28, 2011 Motivation Generally, it s easier to program in higher-level languages than in assembly. Our goal is to automate the conversion from a higher-level

More information

7 For Seniors For Dummies

7 For Seniors For Dummies Windows 7 For Seniors For Dummies Chapter 16: Making Windows 7 Easier to Use ISBN: 978-0-470-50946-3 Copyright of Wiley Publishing, Inc. Indianapolis, Indiana Posted with Permission Making Windows 7 Easier

More information

The Goal of this Document. Where to Start?

The Goal of this Document. Where to Start? A QUICK INTRODUCTION TO THE SEMILAR APPLICATION Mihai Lintean, Rajendra Banjade, and Vasile Rus vrus@memphis.edu linteam@gmail.com rbanjade@memphis.edu The Goal of this Document This document introduce

More information

Text version 15-Aug-12. for Q-CHECKER V4, V5 and V6

Text version 15-Aug-12. for Q-CHECKER V4, V5 and V6 Text version 15-Aug-12 Q-MONITOR V4 for Q-CHECKER V4, V5 and V6 USERS GUIDE Orientation Symbols used in the manual For better orientation in the manual the following symbols are used: Warning symbol Tip

More information

Bindings & Substitution

Bindings & Substitution Bindings & Substitution Even in our simple language, we encounter repeated expressions. 1 {* {+ 4 2} {+ 4 2}} There are several reasons to eliminate duplicated code. It introduces a redundant computation.

More information

The Thomas Hardye School Summer Preparation Task Computer Science AS

The Thomas Hardye School Summer Preparation Task Computer Science AS The Thomas Hardye School Summer Preparation Task Computer Science AS Purpose of task: You should download and install the Python IDLE on your home computer to enable you to practice writing code using

More information

Data Management, Spring 2015: Project #1

Data Management, Spring 2015: Project #1 Advice The assignment description is long, and it is important that you follow the instructions carefully. Be sure to read the entire description before you start implementing. Note that we will be testing

More information

Matlab for FMRI Module 1: the basics Instructor: Luis Hernandez-Garcia

Matlab for FMRI Module 1: the basics Instructor: Luis Hernandez-Garcia Matlab for FMRI Module 1: the basics Instructor: Luis Hernandez-Garcia The goal for this tutorial is to make sure that you understand a few key concepts related to programming, and that you know the basics

More information

T-Server and CSTA Connector General Deployment

T-Server and CSTA Connector General Deployment T-Server and CSTA Connector General Deployment This chapter contains general information for the deployment, configuration, and installation of your T-Server. You may have to complete additional configuration

More information

The Thomas Hardye School Summer Preparation Task Computer Science A Level

The Thomas Hardye School Summer Preparation Task Computer Science A Level The Thomas Hardye School Summer Preparation Task Computer Science A Level Purpose of task: You should download and install the Python IDLE on your home computer to enable you to practice writing code using

More information

Association Rule Mining. Introduction 46. Study core 46

Association Rule Mining. Introduction 46. Study core 46 Learning Unit 7 Association Rule Mining Introduction 46 Study core 46 1 Association Rule Mining: Motivation and Main Concepts 46 2 Apriori Algorithm 47 3 FP-Growth Algorithm 47 4 Assignment Bundle: Frequent

More information

from scratch A primer for scientists working with Next-Generation- Sequencing data Chapter 1 Text output and manipulation

from scratch A primer for scientists working with Next-Generation- Sequencing data Chapter 1 Text output and manipulation from scratch A primer for scientists working with Next-Generation- Sequencing data Chapter 1 Text output and manipulation Chapter 1: text output and manipulation In this unit you will learn how to write

More information

Statistics with a Hemacytometer

Statistics with a Hemacytometer Statistics with a Hemacytometer Overview This exercise incorporates several different statistical analyses. Data gathered from cell counts with a hemacytometer is used to explore frequency distributions

More information

Trouble Shooting. Access Rights. Application Crashed. CSV File Will Not Open. file://c:\users\antonym\appdata\local\temp\~hh6280.

Trouble Shooting. Access Rights. Application Crashed. CSV File Will Not Open. file://c:\users\antonym\appdata\local\temp\~hh6280. Page 1 of 11 This section contains helpful hints when something goes wrong. Access Rights Application Crashed CSV File Will Not Open Issues with Opening Application (Data Link Properties Help) Incorrect

More information

CS 3410 Ch 7 Recursion

CS 3410 Ch 7 Recursion CS 3410 Ch 7 Recursion Sections Pages 7.1-7.4, 7.7 93-319, 333-336 7.1 Introduction 1. A recursive method is a method that either directly or indirectly makes a call to itself. [Weiss]. It does this by

More information