Program Synthesis for Data Manipulation. Gustavo Soares Federal University of Campina Grande

Size: px
Start display at page:

Download "Program Synthesis for Data Manipulation. Gustavo Soares Federal University of Campina Grande"

Transcription

1 Program Synthesis for Data Manipulation Gustavo Soares Federal University of Campina Grande 1

2 2

3 3

4 4

5 ... Customer Pull Up Method Customer... createbill() Regular Customer... createbill() Preferred Customer... createbill() Regular Customer Preferred Customer 5

6 Manually performing these transformations are error prone and time consuming 6

7 Program Synthesis as a key for developing better data manipulation tools Automated Testing Refactoring Engines FlashProg: UI Framework for PBE 7

8 Automated Testing Refactoring Engines 8

9 Pull Up Method... Customer Refactoring engines Customer... createbill() Regular Customer... createbill() Preferred Customer... createbill() Regular Customer Preferred Customer Condition The createbill method is not declared in class Customer... 9

10 It s difficult to implement refactorings! Implemented conditions Overly weak conditions allow unsafe transformations 10

11 A int k() : 10 [SPLASH 10] JRRT A int k() : 10 int m() : this.k() B int k() : 20 int m() : super.k() int test() : m() Pull up method B int k() : 20 int test() : m()

12 Developers have invested on testing... 12

13 Expected Output Input program Developers have invested on testing... 13

14 2 classes 3 methods 2 fields Identifying bugs due to missing conditions... Failures/bugs Bug Report [Soares et al., IEEE TSE 13] 1 4

15 How do we generate programs? 2 classes 3 methods 2 fields Failures/bugs Bug Report 1 5

16 2 Class, 2 Method, 2 Field One subclass declaring a field pred pullupfield[] { some c1,c2 : Class, f : Field c1 in c2.extends and f in c2.fields } 1 6

17 2 Class, 2 Method, 2 Field One subclass declaring a field Java Meta model Alloy Solutions Type extends 0..1 Alloy Analyzer Class Field Method 1 7

18 2 Class, 2 Method, 2 Field One subclass declaring a field Alloy Solutions Java programs Alloy to Java public public Class0 { public public class intclass Class0 method1(){ Class0 { { public public int return int method1(){ 10; method1(){ return } return 10; 10; } } } } class } class Class1 Class1 extends extends Class0 Class0 { { public class public int Class1 int field; extends Class0 { field; public public int int method0(){ field; method0(){ return public return 20; int method0(){ 20; } return 20; } } } } } 1 8

19 How do we detect behavioral changes? 2 classes 3 methods 2 fields Failures/bugs Bug Report 1 9

20 A int k() : 10 A.k(), B.k(), B.test() A int k() : 10 int m() : this.k() B int k() : 20 int m() : super.k() int test() : m() 0/100 98/100 B int k() : 20 int test() : m() Behavioral change void test() { B var = new B(); int var1 = var.test(); AssertTrue(var1 == 10); } 2 0 [Soares et al., IEEE Software 10]

21 How do we classify failures into distinct faults? 2 classes 3 methods 2 fields Failures/bugs Bug Report 2 1

22 Evaluation 2 2

23 Can our approach identify bugs in real Java refactoring engines? JRRT bugs

24 Can our approach identify bugs in real Java refactoring engines? JRRT JRRT bugs

25 FlashProg 25

26 FlashProg team Generous producers FlashProg UI Mikael Mayer Rico Malvar Ben Zorn Overhead director FlashMeta FlashExtract - FlashFill Sumit Gulwani Alex Polozov Maxim Grechkin Rishabh Singh Vu le 26

27 FlashProg Framework for Data Manipulation 27

28 User Study 28

29 Research questions Do Program Navigation and Conversational Clarification contribute to correctness? Which of Program Navigation and Conversational Clarification is perceived more useful for data extraction? 29

30 Metrics We collected data from user interaction Number of Errors Time Survey Perceived usefulness of each interaction model Confidence about the extraction of each file 30

31 User study design 3 tasks 3 environments Basic interface (BI) BI + Program navigation (BI + PN) BI + Conversational clarification (BI + CC) 3 configurations Video tutorial 31

32 Results 29 users years old from 0 to 20 years of programming 32

33 Do Program Navigation and Conversational Clarification contribute to correctness? Configuration Errors (mean) BI 2.7 BI + PN 1.2 BI + CC 1.1 We performed the Wilcoxon signed-rank test on the instrumentation data. Based on the data collected, we have found significant reduction of number of errors with each of these new interaction modes 33

34 Which of Program Navigation and Conversational Clarification is perceived more useful for data extraction? Model Score (mean) PN 4.2 CC

35 Which of Program Navigation and Conversational Clarification is perceived more useful for data extraction? [I]n the last example, in which I didn t have [Conversational Clarification] as an option, I felt like I miss it so much It always helps me to find the right matching I absolutely loved [regular expression highlighting]. I think that perfectly helps one understand what the computer is thinking at the moment and to identify things that were misunderstood the program [is] quite understandable but it was not clear how to modify the program 35

36 Future work 36

37 Composition: FlashExtract + FlashFill 37

38 FlashExtract + FlashFill + Nlyze 38

39 Systematic changes by example 39

40 Program Synthesis for Data Manipulation Gustavo Soares Federal University of Campina Grande 40

Automated Behavioral Testing of Refactoring Engines

Automated Behavioral Testing of Refactoring Engines Automated Behavioral Testing of Refactoring Engines Gustavo Soares Federal University of Campina Grande, Campina Grande, PB, Brazil gsoares@dsc.ufcg.edu.br Abstract Refactoring is a transformation that

More information

Programming by Examples: PL meets ML

Programming by Examples: PL meets ML Programming by Examples: PL meets ML Summit on Machine Learning meets Formal Methods Sumit Gulwani Microsoft July 2018 Joint work with many collaborators Example-based help-forum interaction 300_w30_aniSh_c1_b

More information

Programming by Examples: Applications, Algorithms, and Ambiguity Resolution

Programming by Examples: Applications, Algorithms, and Ambiguity Resolution Programming by Examples: Applications, Algorithms, and Ambiguity Resolution Sumit Gulwani Microsoft Corporation, Redmond, WA, USA sumitg@microsoft.com Abstract. 99% of computer end users do not know programming,

More information

Programming by Examples: Logical Reasoning meets Machine Learning

Programming by Examples: Logical Reasoning meets Machine Learning Programming by Examples: Logical Reasoning meets Machine Learning Sumit Gulwani Microsoft NAMPI Workshop July 2018 Joint work with many collaborators Example-based help-forum interaction 300_w30_aniSh_c1_b

More information

Identifying overly strong conditions in refactoring implementations

Identifying overly strong conditions in refactoring implementations Identifying overly strong conditions in refactoring implementations Gustavo Soares, Melina Mongiovi, and Rohit Gheyi Department of Computing Systems Federal University of Campina Grande melina@copin.ufcg.edu.br,

More information

REFACTORING is the process of changing a program

REFACTORING is the process of changing a program 1 Automated Behavioral Testing of Refactoring Engines Gustavo Soares, Member, IEEE, Rohit Gheyi and Tiago Massoni Abstract Refactoring is a transformation that preserves the external behavior of a program

More information

Comparing Approaches to Analyze Refactoring Activity on Software Repositories

Comparing Approaches to Analyze Refactoring Activity on Software Repositories Comparing Approaches to Analyze Refactoring Activity on Software Repositories Gustavo Soares a,, Rohit Gheyi a, Emerson Murphy-Hill b, Brittany Johnson b a Department of Computing and Systems, Federal

More information

Scaling Testing of Refactoring Engines

Scaling Testing of Refactoring Engines 1 Scaling Testing of Refactoring Engines Melina Mongiovi, Rohit Gheyi (advisor) Abstract Defining and implementing refactorings is a nontrivial task since it is difficult to define preconditions to guarantee

More information

The Journal of Systems and Software

The Journal of Systems and Software The Journal of Systems and Software 86 (2013) 1006 1022 Contents lists available at SciVerse ScienceDirect The Journal of Systems and Software j ourna l ho me page: www.elsevier.com/locate/jss Comparing

More information

Making Program Refactoring Safer

Making Program Refactoring Safer Making Program Refactoring Safer Gustavo Soares 1, Rohit Gheyi 1, Dalton Serey 1 1 Department of Computing and Systems UFCG 58429-900 Campina Grande PB Brazil {gsoares,rohit,dalton}@dsc.ufcg.edu.br Abstract.

More information

SAFIRA: A Tool for Evaluating Behavior Preservation

SAFIRA: A Tool for Evaluating Behavior Preservation 1 SAFIRA: A Tool for Evaluating Behavior Preservation Melina Mongiovi Abstract To evaluate whether a program transformation is behavior preserving is required in several tasks, such as refactoring and

More information

Making Program Refactoring Safer

Making Program Refactoring Safer SOFTWARE EVOLUTION: MAINTAINING STAKEHOLDERS SATISFACTION IN A CHANGING WORLD 1 Making Program Refactoring Safer Gustavo Soares, Member, IEEE, Rohit Gheyi, Dalton Serey, and Tiago Massoni Abstract Developers

More information

a. The following method would allow an object of the static type List<String> to be passed to it as an argument.

a. The following method would allow an object of the static type List<String> to be passed to it as an argument. On the final exam you will be provided UML diagrams for design patterns (as in the midterm) and also JavaDoc description of methods in the Reflection API. 1. True/False (if false, explain why) a. The following

More information

Final CSE 131B Winter 2003

Final CSE 131B Winter 2003 Login name Signature Name Student ID Final CSE 131B Winter 2003 Page 1 Page 2 Page 3 Page 4 Page 5 Page 6 Page 7 Page 8 _ (20 points) _ (25 points) _ (21 points) _ (40 points) _ (30 points) _ (25 points)

More information

Program Synthesis. SWE 795, Spring 2017 Software Engineering Environments

Program Synthesis. SWE 795, Spring 2017 Software Engineering Environments Program Synthesis SWE 795, Spring 2017 Software Engineering Environments Today HW3 is due next week in class! Part 1 (Lecture)(~50 mins) Break! Part 2 (Discussion)(~60 mins) Discussion of readings Part

More information

The$credit$for$crea-ng$these$slides$belongs$to$ Fall$2014$CS$521/621$students.$$Student$names$ have$been$removed$per$ferpa$regula-ons.

The$credit$for$crea-ng$these$slides$belongs$to$ Fall$2014$CS$521/621$students.$$Student$names$ have$been$removed$per$ferpa$regula-ons. The$credit$for$crea-ng$these$slides$belongs$to$ Fall$2014$CS$521/621$students.$$Student$names$ have$been$removed$per$ferpa$regula-ons.$ SemFix: Program Repair via Semantic Analysis Hoang Duong Thien Nguyen

More information

Tutorial notes on. Object relational structural patterns

Tutorial notes on. Object relational structural patterns Tutorial notes on Object relational structural patterns Dr. C. Constantinides, P.Eng. Computer Science and Software Engineering Concordia University Page 1 of 14 Exercise 1. a) Briefly describe what is

More information

SCALABLE STATISTICAL BUG ISOLATION

SCALABLE STATISTICAL BUG ISOLATION SCALABLE STATISTICAL BUG ISOLATION Paper by Ben Liblit, Mayur Naik, Alice X. Zheng, Alex Aiken, Michael I. Jordan Presented by Ben Mishkanian 2/5/2015 Statistical Debugging Idea: Use dynamic statistical

More information

Cooperative Bug Isolation

Cooperative Bug Isolation Cooperative Bug Isolation Alex Aiken Mayur Naik Stanford University Alice Zheng Michael Jordan UC Berkeley Ben Liblit University of Wisconsin Build and Monitor Alex Aiken, Cooperative Bug Isolation 2 The

More information

Winter School in Software Engineering 2017

Winter School in Software Engineering 2017 Winter School in Software Engineering 2017 Monday December 11, 2017 Day 1 08:00-08:30 Registration 08:30-10:00 Programming by Examples: Applications, Algorithms and Ambiguity Resolution - Session I Sumit

More information

Testing, code coverage and static analysis. COSC345 Software Engineering

Testing, code coverage and static analysis. COSC345 Software Engineering Testing, code coverage and static analysis COSC345 Software Engineering Outline Various testing processes ad hoc / formal / automatic Unit tests and test driven development Code coverage metrics Integration

More information

Automated Documentation Inference to Explain Failed Tests

Automated Documentation Inference to Explain Failed Tests Automated Documentation Inference to Explain Failed Tests Sai Zhang University of Washington Joint work with: Cheng Zhang, Michael D. Ernst A failed test reveals a potential bug Before bug-fixing, programmers

More information

D#007 - Development Process Handbook

D#007 - Development Process Handbook Last Updated: 04/30/2018 Status: Live D#007 - Development Process Handbook Purpose: Clarify how we handle an incoming or internal request for a feature or enhancement all the way through shipping the feature

More information

Memory Safety for Embedded Devices with nescheck

Memory Safety for Embedded Devices with nescheck Memory Safety for Embedded Devices with nescheck Daniele MIDI, Mathias PAYER, Elisa BERTINO Purdue University AsiaCCS 2017 Ubiquitous Computing and Security Sensors and WSNs are pervasive Small + cheap

More information

On the Importance of Common Sense in Program Synthesis

On the Importance of Common Sense in Program Synthesis On the Importance of Common Sense in Program Synthesis Hila Peleg, Technion The research leading to these results has received funding from the European Union's - Seventh Framework Programme (FP7) under

More information

10 - Integrated Development Environments

10 - Integrated Development Environments 10 - Integrated Development Environments Motivation Writing a toy application with a text editor is comparatively easy. Developing a large software system with just a text editor is much more difficult

More information

Systematic Source Code Transformations. Gustavo SANTOS

Systematic Source Code Transformations. Gustavo SANTOS Systematic Source Code Transformations Gustavo SANTOS Presentation Bachelor in Computer Science Master in Computer Science Short visit to RMoD team Funded by CAPES (Brazil) Science Without Borders program

More information

Dynamic Inference of Abstract Types

Dynamic Inference of Abstract Types Dynamic Inference of Abstract Types Philip J. Guo, Jeff H. Perkins, Stephen McCamant, Michael D. Ernst Computer Science and A.I. Lab Massachusetts Institute of Technology Declared types // Order cost =

More information

xtreme Programming (summary of Kent Beck s XP book) Stefan Resmerita, WS2015

xtreme Programming (summary of Kent Beck s XP book) Stefan Resmerita, WS2015 xtreme Programming (summary of Kent Beck s XP book) 1 Contents The software development problem The XP solution The JUnit testing framework 2 The Software Development Problem 3 Risk Examples delivery schedule

More information

Lecture 21. Regression Testing Path Spectra. EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim

Lecture 21. Regression Testing Path Spectra. EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim Lecture 21 Regression Testing Path Spectra Today s Agenda (1) Regression Test Selection Path Spectra Presentation by David (skeptic) Presentation by Sidd (advocate) Presentation by Srinivas (skeptic) Today

More information

Section 10: Design Patterns 2

Section 10: Design Patterns 2 Section 10: Design Patterns 2 Slides by Alex Mariakakis with material from Hal Perkins List of Design Patterns We discussed several patterns during the quarter. For reference, here is a list of some of

More information

public void method() { int a = 1;... int b = a + anotherclass.intvalue(); int c = b + anotherclass.intvalue(); }

public void method() { int a = 1;... int b = a + anotherclass.intvalue(); int c = b + anotherclass.intvalue(); } Extract Variable The Extract Variable refactoring puts the result of the selected expression into a variable. It declares a new variable and uses the expression as an initializer. The original expression

More information

Array Basics: Outline. Creating and Accessing Arrays. Creating and Accessing Arrays. Arrays (Savitch, Chapter 7)

Array Basics: Outline. Creating and Accessing Arrays. Creating and Accessing Arrays. Arrays (Savitch, Chapter 7) Array Basics: Outline Arrays (Savitch, Chapter 7) TOPICS Array Basics Arrays in Classes and Methods Programming with Arrays Searching and Sorting Arrays Multi-Dimensional Arrays Static Variables and Constants

More information

Data Types. Every program uses data, either explicitly or implicitly to arrive at a result.

Data Types. Every program uses data, either explicitly or implicitly to arrive at a result. Every program uses data, either explicitly or implicitly to arrive at a result. Data in a program is collected into data structures, and is manipulated by algorithms. Algorithms + Data Structures = Programs

More information

Basic Keywords Practice Session

Basic Keywords Practice Session Basic Keywords Practice Session Introduction In this article from my free Java 8 course, we will apply what we learned in my Java 8 Course Introduction to our first real Java program. If you haven t yet,

More information

Scenarios, Storyboards, Wireframes, Critique. Jon Kolko Professor, Austin Center for Design

Scenarios, Storyboards, Wireframes, Critique. Jon Kolko Professor, Austin Center for Design Scenarios, Storyboards, Wireframes, Critique Jon Kolko Professor, Austin Center for Design Scenarios Creating a written story that explains how a person will use a product, service, or system to achieve

More information

CS 6371: Advanced Programming Languages

CS 6371: Advanced Programming Languages CS 6371: Advanced Programming Languages Dr. Kevin Hamlen Spring 2017 Fill out, sign, and return prereq forms: Course number: CS 6371 Section: 1 Prerequisites: CS 5343: Algorithm Analysis & Data Structures

More information

Software Design COSC 4353/6353 D R. R A J S I N G H

Software Design COSC 4353/6353 D R. R A J S I N G H Software Design COSC 4353/6353 D R. R A J S I N G H Week 5 Refactoring What is Refactoring? Code Smells Why Refactoring? Techniques IDEs What is Refactoring? Art of improving the design of existing code

More information

Petr Suchomel Architect, NetBeans Mobility

Petr Suchomel Architect, NetBeans Mobility NetBeans 6.0 A Fresh Look into Java Development Petr Suchomel Architect, NetBeans Mobility Sun Microsystems Agenda The NetBeans IDE, Platform, Community What's new in NetBeans 6.0 Quick look over NetBeans

More information

THE TRUTH ABOUT SEARCH 2.0

THE TRUTH ABOUT SEARCH 2.0 THE TRUTH ABOUT SEARCH 2.0 SEO A WORLD OF PERPETUAL CHANGE Twelve months ago we launched the Truth About Search in a bid to simplify exactly what is going on in the world of search. Within the last year

More information

Repair & Refactoring

Repair & Refactoring S C I E N C E P A S S I O N T E C H N O L O G Y Repair & Refactoring Birgit Hofer Institute for Software Technology 1 u www.tugraz.at Outline Model-based Software Debugging o Traffic Light Example Repair

More information

DAT159 Refactoring (Introduction)

DAT159 Refactoring (Introduction) DAT159 Refactoring (Introduction) Volker Stolz 1, with contributions by: Larissa Braz 2, Anna M. Eilertsen 3, Fernando Macías 1, Rohit Gheyi 2 Western Norway University of Applied Sciences, Universidade

More information

Software Paradigms (Lesson 3) Object-Oriented Paradigm (2)

Software Paradigms (Lesson 3) Object-Oriented Paradigm (2) Software Paradigms (Lesson 3) Object-Oriented Paradigm (2) Table of Contents 1 Reusing Classes... 2 1.1 Composition... 2 1.2 Inheritance... 4 1.2.1 Extending Classes... 5 1.2.2 Method Overriding... 7 1.2.3

More information

Andy Clement, SpringSource/VMware SpringSource, A division of VMware. All rights reserved

Andy Clement, SpringSource/VMware SpringSource, A division of VMware. All rights reserved Mixed language project compilation in Eclipse: Java and Groovy Andy Clement, SpringSource/VMware 2010 SpringSource, A division of VMware. All rights reserved Agenda Me Groovy-Eclipse version 2 Quick review

More information

Usually, target code is semantically equivalent to source code, but not always!

Usually, target code is semantically equivalent to source code, but not always! What is a Compiler? Compiler A program that translates code in one language (source code) to code in another language (target code). Usually, target code is semantically equivalent to source code, but

More information

arxiv: v1 [cs.pl] 10 Mar 2017

arxiv: v1 [cs.pl] 10 Mar 2017 Vu Le Microsoft Corporation levu@microsoft.com Mohammad Raza Microsoft Corporation moraza@microsoft.com Interactive Program Synthesis Daniel Perelman Microsoft Corporation danpere@microsoft.com Abhishek

More information

void printowing(double amount) { printbanner(); printdetails(); void printdetails(double amount) {

void printowing(double amount) { printbanner(); printdetails(); void printdetails(double amount) { Refactoring References: Martin Fowler, Refactoring: Improving the Design of Existing Code; ; Bruce Wampler, The Essence of Object-Oriented Oriented Programming with Java and UML A recent OO technique that

More information

Final Exam. Programming Assignment 3. University of British Columbia CPSC 111, Intro to Computation Alan J. Hu. Readings

Final Exam. Programming Assignment 3. University of British Columbia CPSC 111, Intro to Computation Alan J. Hu. Readings University of British Columbia CPSC 111, Intro to Computation Alan J. Hu Interfaces vs. Inheritance Abstract Classes Inner Classes Readings This Week: No new readings. Consolidate! (Reminder: Readings

More information

5) Attacker causes damage Different to gaining control. For example, the attacker might quit after gaining control.

5) Attacker causes damage Different to gaining control. For example, the attacker might quit after gaining control. Feb 23, 2009 CSE, 409/509 Mitigation of Bugs, Life of an exploit 1) Bug inserted into code 2) Bug passes testing 3) Attacker triggers bug 4) The Attacker gains control of the program 5) Attacker causes

More information

Verification and Validation. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1

Verification and Validation. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and Validation 1 Objectives To introduce software verification and validation and to discuss the distinction between them To describe the program inspection process and its role in V & V To

More information

Automated Testing of Tableau Dashboards

Automated Testing of Tableau Dashboards Kinesis Technical Whitepapers April 2018 Kinesis CI Automated Testing of Tableau Dashboards Abstract Companies make business critical decisions every day, based on data from their business intelligence

More information

Department of Computer Science Faculty of Engineering, Built Environment & IT University of Pretoria. COS122: Operating Systems

Department of Computer Science Faculty of Engineering, Built Environment & IT University of Pretoria. COS122: Operating Systems Department of Computer Science Faculty of Engineering, Built Environment & IT University of Pretoria COS122: Operating Systems Exam Opportunity 1 25 August 2018 Initials and Surname: Student Number: Degree:

More information

Recap: Class Diagrams

Recap: Class Diagrams Com S 362: Object-Oriented Analysis and Design Recap: Class Diagrams Class diagrams represent design structure Three parts: name, attribute, operations Visibility, attribute type, multiplicity Association,

More information

Test-Driven Synthesis

Test-Driven Synthesis Test-Driven Synthesis Daniel Perelman 1 Sumit Gulwani 2 Dan Grossman 1 Peter Provost 3 1 University of Washington 2 Microsoft Research 3 Microsoft Corporation June 11, 2014 TDD example 1 Test cases: Program:

More information

New Programming Paradigms

New Programming Paradigms New Programming Paradigms Lecturer: Pánovics János (google the name for further details) Requirements: For signature: classroom work and a 15-minute presentation Exam: written exam (mainly concepts and

More information

ISTOCKPHOTO. 18 BETTER SOFTWARE OCTOBER 2007

ISTOCKPHOTO. 18 BETTER SOFTWARE OCTOBER 2007 ISTOCKPHOTO 18 BETTER SOFTWARE OCTOBER 2007 www.stickyminds.com www.stickyminds.com OCTOBER OCTOBER 2007 BETTER SOFTWARE 19 I remember the first time I heard the phrase orthogonal arrays it was in 2000

More information

Survey #2. Variable Scope. University of British Columbia CPSC 111, Intro to Computation Alan J. Hu. Readings. Scope Static.

Survey #2. Variable Scope. University of British Columbia CPSC 111, Intro to Computation Alan J. Hu. Readings. Scope Static. University of British Columbia CPSC 111, Intro to Computation Alan J. Hu Scope Static Readings This Week: Ch 8.3-8.8 and into Ch 9.1-9.3 (Ch 9.3-9.8 and Ch 11.1-11.3 in old 2 nd ed) (Reminder: Readings

More information

Personal SE. Computer Memory Addresses C Pointers

Personal SE. Computer Memory Addresses C Pointers Personal SE Computer Memory Addresses C Pointers Computer Memory Organization Memory is a bucket of bytes. Computer Memory Organization Memory is a bucket of bytes. Each byte is 8 bits wide. Computer Memory

More information

Sampling with Routers: Comparing Survey Results of «Reallocated» and Traditionally Sampled Respondents

Sampling with Routers: Comparing Survey Results of «Reallocated» and Traditionally Sampled Respondents Sampling with s: Comparing Survey Results of «Reallocated» and Traditionally Sampled Respondents Presented by: Nancy Brigham, Ph.D., Vice President, Ipsos Global Operations & IIS Lee Markowitz, Ph.D.,

More information

EECS 481 Software Engineering Exam #1. You have 1 hour and 20 minutes to work on the exam.

EECS 481 Software Engineering Exam #1. You have 1 hour and 20 minutes to work on the exam. EECS 481 Software Engineering Exam #1 Write your name and UM uniqname on the exam. There are ten (10) pages in this exam (including this one) and seven (7) questions, each with multiple parts. Some questions

More information

An Exercise. Modify our Solitaire game to implement Thumb and Pouch.

An Exercise. Modify our Solitaire game to implement Thumb and Pouch. An Exercise Strictly played, Klondike is hard to win. One way to make the game more winnable is to loosen the rule for playing cards on the tableau. The game Thumb and Pouch does just that. Thumb and Pouch

More information

Introduction to EZ430 RF2500

Introduction to EZ430 RF2500 Michigan State University Introduction to EZ430 RF2500 ECE480 Design Team 8 Daniel Sun 3/17/2015 Introduction The EZ430 RF2500 is an TI product that allows the user to practice real time control programming

More information

Design Engineering. Dr. Marouane Kessentini Department of Computer Science

Design Engineering. Dr. Marouane Kessentini Department of Computer Science Design Engineering Dr. Marouane Kessentini Department of Computer Science 1 Design Starts mostly from/with requirements (evolving mostly from functionalities and other non functional characteristics) How

More information

Test Driven Development and Refactoring. CSC 440/540: Software Engineering Slide #1

Test Driven Development and Refactoring. CSC 440/540: Software Engineering Slide #1 Test Driven Development and Refactoring CSC 440/540: Software Engineering Slide #1 Topics 1. Bugs 2. Software Testing 3. Test Driven Development 4. Refactoring 5. Automating Acceptance Tests CSC 440/540:

More information

Chapter 6 Parallel Loops

Chapter 6 Parallel Loops Chapter 6 Parallel Loops Part I. Preliminaries Part II. Tightly Coupled Multicore Chapter 6. Parallel Loops Chapter 7. Parallel Loop Schedules Chapter 8. Parallel Reduction Chapter 9. Reduction Variables

More information

A Framework for Mass-Market Inductive Program Synthesis

A Framework for Mass-Market Inductive Program Synthesis A Framework for Mass-Market Inductive Program Synthesis Oleksandr Polozov A dissertation submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy University of Washington

More information

Applications of. Program Synthesis (aka, domain-specific search) to End-user Programming & Intelligent Tutoring Systems

Applications of. Program Synthesis (aka, domain-specific search) to End-user Programming & Intelligent Tutoring Systems Applications of Program Synthesis (aka, domain-specific search) to End-user Programming & Intelligent Tutoring Systems Invited Talk @ GECCO (GP Track) 2014 Sumit Gulwani Microsoft Research, Redmond Program

More information

AUTOMATED TEST SYSTEM DEVELOPMENT FROM SCRATCH: THE MAIN PROBLEMS AND THEIR SOLUTIONS. Lilia Sapurina

AUTOMATED TEST SYSTEM DEVELOPMENT FROM SCRATCH: THE MAIN PROBLEMS AND THEIR SOLUTIONS. Lilia Sapurina AUTOMATED TEST SYSTEM DEVELOPMENT FROM SCRATCH: THE MAIN PROBLEMS AND THEIR SOLUTIONS Lilia Sapurina ABOUT ME 2 years in huge company with delivered QA processes: automated UI testing, CI 4 month in small

More information

Object-Oriented Software Engineering Practical Software Development using UML and Java

Object-Oriented Software Engineering Practical Software Development using UML and Java Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 5: Modelling with Classes Lecture 5 5.1 What is UML? The Unified Modelling Language is a standard graphical

More information

Survey #2. Programming Assignment 3. University of British Columbia CPSC 111, Intro to Computation Alan J. Hu. Readings

Survey #2. Programming Assignment 3. University of British Columbia CPSC 111, Intro to Computation Alan J. Hu. Readings University of British Columbia CPSC 111, Intro to Computation Alan J. Hu Defining Interfaces Intro to Inheritance Readings This Week: Ch 9.4-9.5 and into Ch 10.1-10.8 (Ch 11.4-11.5 and into Ch 13 in old

More information

Containers, Serverless and Functions in a nutshell. Eugene Fedorenko

Containers, Serverless and Functions in a nutshell. Eugene Fedorenko Containers, Serverless and Functions in a nutshell Eugene Fedorenko About me Eugene Fedorenko Senior Architect Flexagon adfpractice-fedor.blogspot.com @fisbudo Agenda Containers Microservices Docker Kubernetes

More information

Everything is an object. Almost, but all objects are of type Object!

Everything is an object. Almost, but all objects are of type Object! Everything is an object Almost, but all objects are of type Object! In Java, every class is actually a subclass of Object...or has a superclass which has Object as superclass... There is a class called

More information

Statistical Debugging for Real-World Performance Problems. Linhai Song Advisor: Prof. Shan Lu

Statistical Debugging for Real-World Performance Problems. Linhai Song Advisor: Prof. Shan Lu Statistical Debugging for Real-World Performance Problems Linhai Song Advisor: Prof. Shan Lu 1 Software Efficiency is Critical No one wants slow and inefficient software Frustrate end users Cause economic

More information

Static Conformance Checking of Runtime Architectures Tool Demonstration

Static Conformance Checking of Runtime Architectures Tool Demonstration Static Conformance Checking of Runtime Architectures Tool Demonstration Marwan Abi-Antoun Jonathan Aldrich School of Computer Science Carnegie Mellon University The problem: architectural conformance Architects

More information

ITEC 120 4/14/11. Review. Need. Objectives. GUI basics JFrame JPanel JLabel, JButton, JTextField Layout managers. Lecture 38 GUI Interactivity

ITEC 120 4/14/11. Review. Need. Objectives. GUI basics JFrame JPanel JLabel, JButton, JTextField Layout managers. Lecture 38 GUI Interactivity Review ITEC 120 Lecture 38 GUI GUI basics JFrame JPanel JLabel, JButton, JTextField Layout managers Flow / Box Border / Grid Objectives Need Add interactivity When you click on a button How does your code

More information

Assuring Certainty through Effective Regression Testing. Vishvesh Arumugam

Assuring Certainty through Effective Regression Testing. Vishvesh Arumugam Assuring Certainty through Effective Regression Testing Vishvesh Arumugam Agenda Introduction The Problem Magnitude Management Regression Test Efficiency Solution and Approach Test Suite Maintenance Determining

More information

Extending the JavaScript Development Toolkit

Extending the JavaScript Development Toolkit Extending the JavaScript Development Toolkit Bradley Childs IBM Software Group childsb@us.ibm.com 3/19/2008 Agenda Overview JSDT Feature Highlights Benefit of Extending JSDT JSDT Platform What can you

More information

Painless Persistence. Some guidelines for creating persistent Java applications that work

Painless Persistence. Some guidelines for creating persistent Java applications that work Painless Persistence Some guidelines for creating persistent Java applications that work The Authors Anthony Patricio Senior JBoss Certification Developer Highest volume poster on early Hibernate forums

More information

Final CSE 131B Spring 2004

Final CSE 131B Spring 2004 Login name Signature Name Student ID Final CSE 131B Spring 2004 Page 1 Page 2 Page 3 Page 4 Page 5 Page 6 Page 7 Page 8 (25 points) (24 points) (32 points) (24 points) (28 points) (26 points) (22 points)

More information

Synthesis for Automated Grading and Feedback EXCAPE NSF SITE VISIT AUGUST 2013

Synthesis for Automated Grading and Feedback EXCAPE NSF SITE VISIT AUGUST 2013 Synthesis for Automated Grading and Feedback EXCAPE NSF SITE VISIT AUGUST 2013 Sumit Gulwani Solar-Lezama Alur Seshia Hartmann Leverage Synthesis in Education Technology Computer aided approach to introduce

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

CONCEPTUAL DESIGN FOR SOFTWARE PRODUCTS: SERVICE REQUEST PORTAL. Tyler Munger Subhas Desa

CONCEPTUAL DESIGN FOR SOFTWARE PRODUCTS: SERVICE REQUEST PORTAL. Tyler Munger Subhas Desa CONCEPTUAL DESIGN FOR SOFTWARE PRODUCTS: SERVICE REQUEST PORTAL Tyler Munger Subhas Desa Real World Problem at Cisco Systems Smart Call Home (SCH) is a component of Cisco Smart Services that offers proactive

More information

Statistical Debugging for Real-World Performance Problems

Statistical Debugging for Real-World Performance Problems Statistical Debugging for Real-World Performance Problems Linhai Song 1 and Shan Lu 2 1 University of Wisconsin-Madison 2 University of Chicago What are Performance Problems? Definition of Performance

More information

Master the Mobile Moment with Mobile Apps that Build Loyalty through a Great User Experience

Master the Mobile Moment with Mobile Apps that Build Loyalty through a Great User Experience White Paper Application Development, Test & Delivery Master the Mobile Moment with Mobile Apps that Build Loyalty through a Great User Experience Table of Contents page Introduction... 1 What Do Users

More information

Algorithms & Data Structures

Algorithms & Data Structures GATE- 2016-17 Postal Correspondence 1 Algorithms & Data Structures Computer Science & Information Technology (CS) 20 Rank under AIR 100 Postal Correspondence Examination Oriented Theory, Practice Set Key

More information

CS107 Handout 37 Spring 2007 May 25, 2007 Introduction to Inheritance

CS107 Handout 37 Spring 2007 May 25, 2007 Introduction to Inheritance CS107 Handout 37 Spring 2007 May 25, 2007 Introduction to Inheritance Handout written by Julie Zelenski, updated by Jerry. Inheritance is a language property most gracefully supported by the object-oriented

More information

TopicViewer: Evaluating Remodularizations Using Semantic Clustering

TopicViewer: Evaluating Remodularizations Using Semantic Clustering TopicViewer: Evaluating Remodularizations Using Semantic Clustering Gustavo Jansen de S. Santos 1, Katyusco de F. Santos 2, Marco Tulio Valente 1, Dalton D. S. Guerrero 3, Nicolas Anquetil 4 1 Federal

More information

Chapter01.fm Page 1 Monday, August 23, :52 PM. Part I of Change. The Mechanics. of Change

Chapter01.fm Page 1 Monday, August 23, :52 PM. Part I of Change. The Mechanics. of Change Chapter01.fm Page 1 Monday, August 23, 2004 1:52 PM Part I The Mechanics of Change The Mechanics of Change Chapter01.fm Page 2 Monday, August 23, 2004 1:52 PM Chapter01.fm Page 3 Monday, August 23, 2004

More information

Welcome to this IBM Rational podcast, enhanced. development and delivery efficiency by improving initial

Welcome to this IBM Rational podcast, enhanced. development and delivery efficiency by improving initial IBM Podcast [ MUSIC ] GIST: Welcome to this IBM Rational podcast, enhanced development and delivery efficiency by improving initial core quality. I'm Kimberly Gist with IBM. Catching defects earlier in

More information

A Visual Guide to Automated MVC Reengineering

A Visual Guide to Automated MVC Reengineering D a t a b o r o u g h A Visual Guide to Automated MVC Reengineering Steve Kilner This guide has the following sections: 1. Three Steps To New and Improved Systems 2. Why Reengineer? 3. Bad Practices of

More information

Purpose: Use this document to Update a Letter Template and Add Merge Fields to a letter template.

Purpose: Use this document to Update a Letter Template and Add Merge Fields to a letter template. Updating a Letter Template and Using Merge Fields Purpose: Use this document to Update a Letter Template and Add Merge Fields to a letter template. Audience: PeopleSoft Communication Builders 1. Create

More information

University of Utah School of Computing

University of Utah School of Computing University of Utah School of Computing CS 1410 / CS 2000 Study Notes December 10, 2011 This study guide is designed to help you prepare and study the appropriate material for the final exam. For the multiple

More information

MuClipse Requirements Specification

MuClipse Requirements Specification MuClipse Requirements Specification v0.4 Project Team: 12/6/2006 Document Author(s): Project Sponsor: Dr. Laurie Williams 1. Introduction There are already several open source Java mutation (JMutation)

More information

System-Level Design Languages: Orthogonalizing the Issues

System-Level Design Languages: Orthogonalizing the Issues System-Level Design Languages: Orthogonalizing the Issues The GSRC Semantics Project Tom Henzinger Luciano Lavagno Edward Lee Alberto Sangiovanni-Vincentelli Kees Vissers Edward A. Lee UC Berkeley What

More information

Automated Whitebox Fuzz Testing. by - Patrice Godefroid, - Michael Y. Levin and - David Molnar

Automated Whitebox Fuzz Testing. by - Patrice Godefroid, - Michael Y. Levin and - David Molnar Automated Whitebox Fuzz Testing by - Patrice Godefroid, - Michael Y. Levin and - David Molnar OUTLINE Introduction Methods Experiments Results Conclusion Introduction Fuzz testing is an effective Software

More information

Text Topics. Human reading process Using Text in Interaction Design

Text Topics. Human reading process Using Text in Interaction Design Text SWEN-444 Text Topics Human reading process Using Text in Interaction Design Humans and Text the Reading Process Saccades quick, jerky eye movements forward 8-10 letters at a time plus CR/LF to the

More information

GA-driven Automatic Refactoring based on Design Patterns

GA-driven Automatic Refactoring based on Design Patterns Software Engineering 2012, 2(2): 29-35 DOI: 10.5923/j.se.20120202.03 GA-driven Automatic Refactoring based on Design Patterns Takao Shimomura Dept. of Information Science and Intelligent Systems, University

More information

Outline. Logistics. Logistics. Principles of Software (CSCI 2600) Spring Logistics csci2600/

Outline. Logistics. Logistics. Principles of Software (CSCI 2600) Spring Logistics  csci2600/ Outline Principles of Software (CSCI 600) Spring 018 http://www.cs.rpi.edu/academics/courses/spring18/csci600/ Konstantin Kuzmin, kuzmik@cs.rpi.edu Office hours: Monday and Thursday 4:00 pm - 5:30 pm Mailing

More information

Master the Mobile Moment with Mobile Apps that Build Loyalty through a Great User Experience

Master the Mobile Moment with Mobile Apps that Build Loyalty through a Great User Experience White Paper AppPulse Mobile Master the Mobile Moment with Mobile Apps that Build Loyalty through a Great User Experience Table of Contents Introduction... 1 What Do Users Want? Everything, Now!... 1 Mobile

More information