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
Selected Topics of Software Technology 3
Introduction2
Outline
Content of this lecture
Motivation
Organization
Dates + content
Exam
Practical (LV 716.177 UE)
Assignments
Dates
Selected Topics of Software Technology 3
Introduction3
Outline
Content of this lecture
Motivation
Organization
Dates + content
Exam
Practical (LV 716.177 UE)
Assignments
Dates
Selected Topics of Software Technology 3
Introduction4
SpreadsheetsThe Swiss Army Knife for Data Processing
Daniel Kulesz, University of Stuttgart
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 ? ?
Selected Topics of Software Technology 3
Introduction6
SpreadsheetsThe Ununderstood Dark Matter of IT
Felienne Hermans, Delfth University of Technology
Selected Topics of Software Technology 3
Introduction7
To err is humanThe Reinhart-Rogoff spreadsheet
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
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 %
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
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?
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
Selected Topics of Software Technology 3
Introduction13
Diagnosis
Selected Topics of Software Technology 3
Introduction14
Three layers of spreadsheet programs
Source: Hodnigg and Mittermeir: „Metrics-Based Spreadsheet Visualization“, EuSpRIG 2008
Selected Topics of Software Technology 3
Introduction15
Outline
Content of this lecture
Motivation
Organization
Dates + content
Exam
Practical (LV 716.177 UE)
Assignments
Dates
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?
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
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
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)
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
Selected Topics of Software Technology 3
Introduction21
Outline
Content of this lecture
Motivation
Organization
Dates + content
Exam
Practical (LV 716.177 UE)
Assignments
Dates
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)
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
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
Selected Topics of Software Technology 3
Introduction25
Outline
Content of this lecture
Motivation
Organization
Dates + content
Exam
Practical (LV 716.177 UE)
Assignments
Dates