Selected Topics of Software Technology 3€¦ · Selected Topics of Software Technology 3 19...

25
Selected Topics of Software Technology 3 Introduction 1 S C I E N C E P A S S I O N T E C H N O L O G Y u www.tugraz.at Selected Topics of Software Technology 3 Birgit Hofer Institute for Software Technology

Transcript of Selected Topics of Software Technology 3€¦ · Selected Topics of Software Technology 3 19...

Page 1: Selected Topics of Software Technology 3€¦ · Selected Topics of Software Technology 3 19 Introduction Preliminary Schedule 5.10. Introduction 12.10. Static Code Analysis: Code

Selected Topics of Software Technology 3

Introduction1

S C I E N C E P A S S I O N T E C H N O L O G Y

u www.tugraz.at

Selected Topics

of Software Technology 3

Birgit Hofer

Institute for Software Technology

Page 2: Selected Topics of Software Technology 3€¦ · Selected Topics of Software Technology 3 19 Introduction Preliminary Schedule 5.10. Introduction 12.10. Static Code Analysis: Code

Selected Topics of Software Technology 3

Introduction2

Outline

Content of this lecture

Motivation

Organization

Dates + content

Exam

Practical (LV 716.177 UE)

Assignments

Dates

Page 3: Selected Topics of Software Technology 3€¦ · Selected Topics of Software Technology 3 19 Introduction Preliminary Schedule 5.10. Introduction 12.10. Static Code Analysis: Code

Selected Topics of Software Technology 3

Introduction3

Outline

Content of this lecture

Motivation

Organization

Dates + content

Exam

Practical (LV 716.177 UE)

Assignments

Dates

Page 4: Selected Topics of Software Technology 3€¦ · Selected Topics of Software Technology 3 19 Introduction Preliminary Schedule 5.10. Introduction 12.10. Static Code Analysis: Code

Selected Topics of Software Technology 3

Introduction4

SpreadsheetsThe Swiss Army Knife for Data Processing

Daniel Kulesz, University of Stuttgart

Page 5: Selected Topics of Software Technology 3€¦ · Selected Topics of Software Technology 3 19 Introduction Preliminary Schedule 5.10. Introduction 12.10. Static Code Analysis: Code

Selected Topics of Software Technology 3

Introduction5

Number of spreadsheets

Who Estimated Real

Investment Bank 10 000 2.5 million

Birgit Hofer 5 000

• online: 23

• xls: 11 034 (76 regular / 10 958 benchmarks)

• xlsx: 2 116 (119 regular / 1 997 benchmarks)

You ? ?

Page 6: Selected Topics of Software Technology 3€¦ · Selected Topics of Software Technology 3 19 Introduction Preliminary Schedule 5.10. Introduction 12.10. Static Code Analysis: Code

Selected Topics of Software Technology 3

Introduction6

SpreadsheetsThe Ununderstood Dark Matter of IT

Felienne Hermans, Delfth University of Technology

Page 7: Selected Topics of Software Technology 3€¦ · Selected Topics of Software Technology 3 19 Introduction Preliminary Schedule 5.10. Introduction 12.10. Static Code Analysis: Code

Selected Topics of Software Technology 3

Introduction7

To err is humanThe Reinhart-Rogoff spreadsheet

Page 8: Selected Topics of Software Technology 3€¦ · Selected Topics of Software Technology 3 19 Introduction Preliminary Schedule 5.10. Introduction 12.10. Static Code Analysis: Code

Selected Topics of Software Technology 3

Introduction8

Human error rates3 – 5 % per formula

Raymond Panko: “Thinking is bad: Implications of human error

research for spreadsheet research and practice,” CoRR, 2008

Page 9: Selected Topics of Software Technology 3€¦ · Selected Topics of Software Technology 3 19 Introduction Preliminary Schedule 5.10. Introduction 12.10. Static Code Analysis: Code

Selected Topics of Software Technology 3

Introduction9

Human error rates

100 Formulas

1000 Formulas

3 % 95,2 %

5 % 99,4 %

1 % 63,4 %

3 % 99,9 %

5 % 99,9 %

1 % 99,9 %

Page 10: Selected Topics of Software Technology 3€¦ · Selected Topics of Software Technology 3 19 Introduction Preliminary Schedule 5.10. Introduction 12.10. Static Code Analysis: Code

Selected Topics of Software Technology 3

Introduction10

Fault types

Errors in the data

Incorrect data entry (keyboard)

Incorrect specification

Incorrect definition (wrong format)

Incorrect placement

Incorrect access (when loading data via CSV)

Formulaic errors

Macro errors

Template errors (misapplication of template)

Source: Howard: „Managing Spreadsheets“, 2006

Page 11: Selected Topics of Software Technology 3€¦ · Selected Topics of Software Technology 3 19 Introduction Preliminary Schedule 5.10. Introduction 12.10. Static Code Analysis: Code

Selected Topics of Software Technology 3

Introduction11

Spreadsheets are software.

Missing Documentation

Functional language

Errors

Creator vs. user

Code Inspection Proper Education

Are there any problems?

Risk awareness

Lifetime

What are possible solutions?

Page 12: Selected Topics of Software Technology 3€¦ · Selected Topics of Software Technology 3 19 Introduction Preliminary Schedule 5.10. Introduction 12.10. Static Code Analysis: Code

Selected Topics of Software Technology 3

Introduction12

Terminology

Spreadsheet vs. Spreadsheet Environment

Fault vs. Failure: Erroneous output

Input cells vs. Intermediate cells vs. Output cells

Page 13: Selected Topics of Software Technology 3€¦ · Selected Topics of Software Technology 3 19 Introduction Preliminary Schedule 5.10. Introduction 12.10. Static Code Analysis: Code

Selected Topics of Software Technology 3

Introduction13

Diagnosis

Page 14: Selected Topics of Software Technology 3€¦ · Selected Topics of Software Technology 3 19 Introduction Preliminary Schedule 5.10. Introduction 12.10. Static Code Analysis: Code

Selected Topics of Software Technology 3

Introduction14

Three layers of spreadsheet programs

Source: Hodnigg and Mittermeir: „Metrics-Based Spreadsheet Visualization“, EuSpRIG 2008

Page 15: Selected Topics of Software Technology 3€¦ · Selected Topics of Software Technology 3 19 Introduction Preliminary Schedule 5.10. Introduction 12.10. Static Code Analysis: Code

Selected Topics of Software Technology 3

Introduction15

Outline

Content of this lecture

Motivation

Organization

Dates + content

Exam

Practical (LV 716.177 UE)

Assignments

Dates

Page 16: Selected Topics of Software Technology 3€¦ · Selected Topics of Software Technology 3 19 Introduction Preliminary Schedule 5.10. Introduction 12.10. Static Code Analysis: Code

Selected Topics of Software Technology 3

Introduction16

Your Knowledge

Who attended “Selected Topics of Software

Technology 1” (Prof. Wotawa)?

Who knows about

o Model-based Diagnosis (MBD) ?

o Spectrum-based Fault Localization (SFL)?

o Code Smells?

Page 17: Selected Topics of Software Technology 3€¦ · Selected Topics of Software Technology 3 19 Introduction Preliminary Schedule 5.10. Introduction 12.10. Static Code Analysis: Code

Selected Topics of Software Technology 3

Introduction17

Spreadsheet

Quality Assurance

Techniques

Visualization

StaticAnalysis

Fault Localization

Testing

Modeling

Design & Maintenance

Support

Source: Jannach et al. “Avoiding, Finding and Fixing

Spreadsheet Errors – A Survey of Automated Approaches for

Spreadsheet QA”, in Journal of Systems and Software, 2014.

Visualization: Patrick Koch,Diploma Seminar, TU Graz, 2015.

Static Analysis

Debugging

Testing

Page 18: Selected Topics of Software Technology 3€¦ · Selected Topics of Software Technology 3 19 Introduction Preliminary Schedule 5.10. Introduction 12.10. Static Code Analysis: Code

Selected Topics of Software Technology 3

Introduction18

Content (depending on your interests)

Debuggingo Model-based debugging

o Spectrum-based fault localization

o Repair approaches – Genetic programming

Static Code Analysiso Code Smells

o Header-inference rules

Testing

Possible Additional Contento Refactoring

o Spreadsheets for developers

o Limits of Spreadsheet Environments

Page 19: Selected Topics of Software Technology 3€¦ · Selected Topics of Software Technology 3 19 Introduction Preliminary Schedule 5.10. Introduction 12.10. Static Code Analysis: Code

Selected Topics of Software Technology 3

Introduction19

Preliminary Schedule

5.10. Introduction

12.10. Static Code Analysis: Code Smells

29.10. Static Code Analysis: Header-Inference rules

2.11.-16.11 -

23.11. Testing Techniques - Your Presentations (Practical)

30.11. Spectrum-based Fault Localization

7.12. Model-Based Fault Localization

14.12. Model-Based Fault Localization

11.01. Repair Approaches

18.01. Refactoring

25.01. Static Code Analysis - Your Presentations (Practical)

Page 20: Selected Topics of Software Technology 3€¦ · Selected Topics of Software Technology 3 19 Introduction Preliminary Schedule 5.10. Introduction 12.10. Static Code Analysis: Code

Selected Topics of Software Technology 3

Introduction20

How to pass this course (VO) / get a grade?

• Written exam (date TBA)

• Knowing QA techniques for spreadsheets

• Explain how certain techniques work

• Solve simple examples

Page 21: Selected Topics of Software Technology 3€¦ · Selected Topics of Software Technology 3 19 Introduction Preliminary Schedule 5.10. Introduction 12.10. Static Code Analysis: Code

Selected Topics of Software Technology 3

Introduction21

Outline

Content of this lecture

Motivation

Organization

Dates + content

Exam

Practical (LV 716.177 UE)

Assignments

Dates

Page 22: Selected Topics of Software Technology 3€¦ · Selected Topics of Software Technology 3 19 Introduction Preliminary Schedule 5.10. Introduction 12.10. Static Code Analysis: Code

Selected Topics of Software Technology 3

Introduction22

Practical (LV 716.177 UE)

PART 1 - Testing (individual)

Read a scientific paper and present its content

in class (30 minutes/person, November 23rd)

PART 2 – Static Code Analysis (teamwork)Implement code inspection techniques either as

stand-alone application (should recognize .xls or .xlsx) or

plug-in for your favorite Spreadsheet Environment

and present your solution (including a summary

of the functionality and the design and a tool demo)

in class (15 minutes/person, January 25th)

Page 23: Selected Topics of Software Technology 3€¦ · Selected Topics of Software Technology 3 19 Introduction Preliminary Schedule 5.10. Introduction 12.10. Static Code Analysis: Code

Selected Topics of Software Technology 3

Introduction23

Practical – PART 1 (Testing)

No Paper Title Student

1 Improving Spreadsheet Test Practices

2 What You See Is What You Test

3 Automated Test Case Generation for Spreadsheets

4 AutoTest: A Tool for Automatic Test Case Generation in

Spreadsheets

5 End-User Software Engineering with Assertions in the

Spreadsheet Paradigm

6 Test-Driven Development: Can it Work for Spreadsheets?

+ Using Calculation Fragments for Spreadsheets

Page 24: Selected Topics of Software Technology 3€¦ · Selected Topics of Software Technology 3 19 Introduction Preliminary Schedule 5.10. Introduction 12.10. Static Code Analysis: Code

Selected Topics of Software Technology 3

Introduction24

Pratical – PART 2 (Static Code Analysis)

Code-Smells

o Referencing empty cells

o Broken patterns

o Incomplete ranges

o Data outliers in input values

o …

Header-inference Rules more challenging

Everything else that you assume to be useful

Page 25: Selected Topics of Software Technology 3€¦ · Selected Topics of Software Technology 3 19 Introduction Preliminary Schedule 5.10. Introduction 12.10. Static Code Analysis: Code

Selected Topics of Software Technology 3

Introduction25

Outline

Content of this lecture

Motivation

Organization

Dates + content

Exam

Practical (LV 716.177 UE)

Assignments

Dates