Small Scale Detection
|
|
- Christian Blankenship
- 6 years ago
- Views:
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 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 informationSoftware 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 informationEVALUATION 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 informationOn 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 informationCSC 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 informationAn 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 informationCode 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 informationVisualization 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 informationSophos 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 informationThe 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 informationSOFTWARE 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 informationHow 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 informationExtracting 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 informationLAB 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 informationVisual 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 informationImproving 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 informationReengineering 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 informationCSE 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 informationBeyond 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 informationPreparation 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 informationCSC 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 informationRefactoring 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 informationPatterns 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 informationIntroduction 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 informationHelping 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 informationHot 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 informationDetecting 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 informationA 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 informationCMPSCI 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 informationDCC / 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 informationTopics. 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 informationRSA 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 informationImplementing 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 informationEr. 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 information6.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 informationModule 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 informationDevel::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 informationImproving 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 informationRefactorings. 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 informationCredit 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 informationDescriptive 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 informationCode 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 informationintroduction 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 information6 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 informationA 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 informationCSCI 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 informationAn 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 informationHOUR 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 informationSoftware 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 informationINFO 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 informationMEASURE 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 informationMATLAB 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 informationLab 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 informationAnalytics: 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 informationLab #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 information15-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 informationIdentification 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 informationBases 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 informationVectorization 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 informationLife, 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 informationMcCa!"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 informationLesson 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 informationSourcererCC -- 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 informationEnemy 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 informationSlide 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 informationContents. 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 informationLecture 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 informationfor 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 informationCS 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 information6.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 informationProject #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 informationPart 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 informationUsing 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 informationTest 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 informationDeconvolution 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 informationComputer 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 informationTDDC88 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 informationGetting 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 informationSoftware 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 informationA 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 informationProcess 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 informationOn 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 informationWeka 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 informationHustle 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 informationCase 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 informationProject 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 information7 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 informationThe 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 informationText 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 informationBindings & 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 informationThe 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 informationData 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 informationMatlab 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 informationT-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 informationThe 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 informationAssociation 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 informationfrom 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 informationStatistics 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 informationTrouble 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 informationCS 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