Paul Klint Building Academic Software Tools 1
Building Academic Software Tools
Do's and Don'ts
Paul Klint
Building Academic Software Tools Do's and Don'ts Paul Klint Paul - - PowerPoint PPT Presentation
Building Academic Software Tools Do's and Don'ts Paul Klint Paul Klint Building Academic Software Tools 1 The Scientific Method Identify problem Identify problem Form hypothesis Form hypothesis Test hypothesis/ Test hypothesis/ Make
Paul Klint Building Academic Software Tools 1
Paul Klint
Paul Klint Building Academic Software Tools 2
Identify problem Identify problem Form hypothesis Form hypothesis Make observations Make observations Test hypothesis/ Perform experiments Test hypothesis/ Perform experiments Organize and Analyze data Organize and Analyze data Hypothesis confirmed Hypothesis confirmed Faulty experiments? Faulty experiments? New experiments New experiments
Paul Klint Building Academic Software Tools 3
Paul Klint Building Academic Software Tools 4
Paul Klint Building Academic Software Tools 5
code or create techniques for building better source code
APIs, ...)
analysis, metrics, statistical analysis, ...
Paul Klint Building Academic Software Tools 6
Paul Klint Building Academic Software Tools 7
development process
trackers, test logs, ...
productivity data, etc.
Paul Klint Building Academic Software Tools 8
Paul Klint Building Academic Software Tools 9
effective a technology is
experiments, ...
statistical analysis, ...
Paul Klint Building Academic Software Tools 10
Paul Klint Building Academic Software Tools 11
project with a new software process
statistically relevant experiments
psychology
Paul Klint Building Academic Software Tools 12
Paul Klint Building Academic Software Tools 13
Paul Klint Building Academic Software Tools 14
Paul Klint Building Academic Software Tools 15
Write a throw-away tool Write reusable tool Reuse existing tool
Paul Klint Building Academic Software Tools 16
Low investment, but ...
Documentation and usability of many (research) tools is poor Many existing tools are broken and you end up fixing them Combining different tools can be a challenge
Limited to what is available Your results are reproducible Easy transfer of results
Paul Klint Building Academic Software Tools 17
Low investment
But may be larger than anticipated Quick method to get results
Results not reproducible
Limited to the examples in your paper Hard for others to build on your work
Paul Klint Building Academic Software Tools 18
High investment
Amortize investment over more research projects Explore new technical approaches Management in a research setting Maintenance
Get real software engineering experience! Results are reproducible When successful: more visible impact on research community and industry
Paul Klint Building Academic Software Tools 19
www.meta-environment.org
Paul Klint Building Academic Software Tools 20
specifications
years by many different people
Paul Klint Building Academic Software Tools 21
Paul Klint Building Academic Software Tools 22
Paul Klint Building Academic Software Tools 23
Paul Klint Building Academic Software Tools 24
Paul Klint Building Academic Software Tools 25
Paul Klint Building Academic Software Tools 26
general solutions, but not in completing a specific software project
maintainable software
(LeLisp)
Paul Klint Building Academic Software Tools 27
many small units
right
creates lot of overhead
Paul Klint Building Academic Software Tools 28
distributed, components
algebra) controls the execution of programs written in different languages runnng on different machines
Paul Klint Building Academic Software Tools 29
Paul Klint Building Academic Software Tools 30
well-cited publications
development into a research problem
what we needed at the time
problem on its own
Paul Klint Building Academic Software Tools 31
languages
Paul Klint Building Academic Software Tools 32
Paul Klint Building Academic Software Tools 33
Paul Klint Building Academic Software Tools 34
RascalTutor
Paul Klint Building Academic Software Tools 35
and performance
Paul Klint Building Academic Software Tools 36
your code (of course)
Paul Klint Building Academic Software Tools 37
Paul Klint Building Academic Software Tools 38
Paul Klint Building Academic Software Tools 39
Paul Klint Building Academic Software Tools 40
Paul Klint Building Academic Software Tools 41
architect, programmers, testers, documentation writers, ...
these roles.
Paul Klint Building Academic Software Tools 42
you can (instead of reinventing them)
Paul Klint Building Academic Software Tools 43
the project.
publish
Paul Klint Building Academic Software Tools 44
Distracts from writing research papers Lack of continuity Increases value on the job market
Distracts from writing research papers Good continuity Increases awareness of real problems
Paul Klint Building Academic Software Tools 45
Paul Klint Building Academic Software Tools 46
knowledge that you miss; time for re-education
researchers and are co-author of papers, or
Paul Klint Building Academic Software Tools 47
Paul Klint Building Academic Software Tools 48
extra implementation effort
– Structure (packages, module, classes, methods, ...) – Versioning, bug reports
Paul Klint Building Academic Software Tools 49
for online documentation:
arbitrary order
Paul Klint Building Academic Software Tools 50
Paul Klint Building Academic Software Tools 51
courses as case study for
Paul Klint Building Academic Software Tools 52
Don'ts have already been suggested in the presentation
Paul Klint Building Academic Software Tools 53