understanding software - centrum wiskunde & informatica · repl metrics libraries math,...
TRANSCRIPT
Understanding SoftwarePaul Klint
#UnderstandingSoftwareWednesday, June 20, 2012
Where we are coming from(circa 1800)
Wednesday, June 20, 2012
http://youtu.be/NSjmFD6Q7hw
Jacquard Looms atFamily HeirloomWeavers in Red
Lion, PA.
Wednesday, June 20, 2012
Using this development environment
Wednesday, June 20, 2012
Applications
Preparing input for Jacquard’s loom
Wednesday, June 20, 2012
For the rest of this story ...
Wednesday, June 20, 2012
For the rest of this story ...
... visit the Turing’s Legacy
exhibition during the breaks or reception
Wednesday, June 20, 2012
Where you can also see the Lego Turing Machine
Credits:Construction: Jeroen van den Bos, Davy Landman
Film: Andre Theelen
http://www.legoturingmachine.org/
Wednesday, June 20, 2012
Fast forward to today ...
Wednesday, June 20, 2012
Integrated Development Environments for All
IDE lovers IDE haters
Emacshaters
Vimhaters
Wednesday, June 20, 2012
We have created a lot of software
Wednesday, June 20, 2012
~900.000.000.000 LOC
Source:Booch, 2005
Also: Capers Jones
Wednesday, June 20, 2012
~900.000.000.000 LOC
Source:Booch, 2005
Also: Capers Jones
Cumulative lines of code
Wednesday, June 20, 2012
~900.000.000.000 LOC
Source:Booch, 2005
Also: Capers Jones
Nearly One (European) Billion Lines!
Cumulative lines of code
Wednesday, June 20, 2012
Howmuch
isthat?
Wednesday, June 20, 2012
Source: US Geological Survey
Howmuch
isthat?
Wednesday, June 20, 2012
Source: US Geological Survey
All water
Howmuch
isthat?
Wednesday, June 20, 2012
Source: US Geological Survey
All water
All drinkable water
Howmuch
isthat?
Wednesday, June 20, 2012
Source: US Geological Survey
All water
All drinkable water
All drinkable and accessible water
Howmuch
isthat?
Wednesday, June 20, 2012
Source: US Geological Survey
All water
All drinkable water
All drinkable and accessible water
Requires 100L per LOC to fill the smallest
sphere
Howmuch
isthat?
Wednesday, June 20, 2012
Source: US Geological Survey
All water
All drinkable water
All drinkable and accessible water
Requires 100L per LOC to fill the smallest
sphere
Howmuch
isthat?
Nice picture, but ...
Wednesday, June 20, 2012
How much is that?
Wednesday, June 20, 2012
How much is that?Print 1 billion lines in point size 10
Wednesday, June 20, 2012
How much is that?Print 1 billion lines in point size 10
Wednesday, June 20, 2012
How much is that?
0.8 times distance to the moon
Print 1 billion lines in point size 10
Wednesday, June 20, 2012
How much is that?
0.8 times distance to the moon
Wrap Planet Earth 8 times
Print 1 billion lines in point size 10
Wednesday, June 20, 2012
How can we understand and manage all that
software?
Wednesday, June 20, 2012
How can we understand and manage all that
software?
Software Engineering
Wednesday, June 20, 2012
Credit: Adrian Kuhn
Word cloud of allpapers at International
Conference on Software Engineering
(ICSE) 2012
Wednesday, June 20, 2012
Software EngineeringDifferent Perspectives
Foundation
Application
Wednesday, June 20, 2012
Software EngineeringTraditional Academic View
Foundation
Application
How can we build new software?
Wednesday, June 20, 2012
Foundation
Application
Software EngineeringRealistic View
Construction EvolutionWednesday, June 20, 2012
Foundation
Application
Software EngineeringRealistic View
Construction Evolution
Construction costs are just 1-10% of costs of total lifecycle
Wednesday, June 20, 2012
Foundation
Application
Software EngineeringRealistic View
Construction Evolution
Construction costs are just 1-10% of costs of total lifecycle
How can we understand and improveexisting software?
Wednesday, June 20, 2012
Software EngineeringEvolution of Research at CWI/SWAT
Foundation
Application
Construction EvolutionWednesday, June 20, 2012
Foundation
Application
Construction Evolution
Software EngineeringEvolution of Research at CWI/SWAT
ASF+SDF
Wednesday, June 20, 2012
Foundation
Application
Construction Evolution
Software EngineeringEvolution of Research at CWI/SWAT
ASF+SDF
DSL
Wednesday, June 20, 2012
Foundation
Application
Construction Evolution
Software EngineeringEvolution of Research at CWI/SWAT
ASF+SDF
DSL COBOL
Wednesday, June 20, 2012
Foundation
Application
Construction Evolution
Software EngineeringEvolution of Research at CWI/SWAT
ASF+SDF
DSL COBOL
Algebraic SpecificationTerm RewritingGeneralized ParsingASF+SDF Meta-Environment
Wednesday, June 20, 2012
Foundation
Application
Construction Evolution
Software EngineeringEvolution of Research at CWI/SWAT
ASF+SDF
DSL COBOL
Algebraic SpecificationTerm RewritingGeneralized ParsingASF+SDF Meta-Environment
Principles of DSL designRISLA: Interest-based products
Wednesday, June 20, 2012
Foundation
Application
Construction Evolution
Software EngineeringEvolution of Research at CWI/SWAT
ASF+SDF
DSL COBOL
Algebraic SpecificationTerm RewritingGeneralized ParsingASF+SDF Meta-Environment
Principles of DSL designRISLA: Interest-based products
DocGenCluster analysisCOBOL transformationSoftware Improvement Group
Wednesday, June 20, 2012
Triggers for ChangeTechnology Usability Application
domains
New ideas did not fit in old approach
Students without formal background
Analysis & transformation of
real languagesEnable many
experiments and easy extension
Usable for real programmers Repository mining
Connect to external libraries
IDE features for DSls
New DSLs
Efficient built-in datatypes
Error reporting & recovery
Software Visualization
Wednesday, June 20, 2012
Current Goals
• “One-stop-shop” for
• Meta-programming
• Meta-data analysis
• Visualization
• Lab infrastructure
• Transfer medium http://www.rascal-mpl.org
Wednesday, June 20, 2012
Foundation
Application
Construction Evolution
Software EngineeringEvolution of Research at CWI/SWAT
Rascal
Wednesday, June 20, 2012
Foundation
Application
Construction Evolution
Software EngineeringEvolution of Research at CWI/SWAT
Rascal
DSL
Wednesday, June 20, 2012
Foundation
Application
Construction Evolution
Software EngineeringEvolution of Research at CWI/SWAT
Rascal
DSLJava,PHP,Lua, ...
Wednesday, June 20, 2012
Foundation
Application
Construction Evolution
Software EngineeringEvolution of Research at CWI/SWAT
Rascal
DSLJava,PHP,Lua, ...
Generalized ParsingPattern MatchingTree traversalRelational CalculusJava BridgeEclipse Plugin
Wednesday, June 20, 2012
Foundation
Application
Construction Evolution
Software EngineeringEvolution of Research at CWI/SWAT
Rascal
DSLJava,PHP,Lua, ...
Generalized ParsingPattern MatchingTree traversalRelational CalculusJava BridgeEclipse Plugin
Forensics (NFI)Financial Auditing (PwC)Gaming (IC3D)GPUs (VU)HPC (Bergen)
Wednesday, June 20, 2012
Foundation
Application
Construction Evolution
Software EngineeringEvolution of Research at CWI/SWAT
Rascal
AnalysisRefactoringRepository Mining
DSLJava,PHP,Lua, ...
Generalized ParsingPattern MatchingTree traversalRelational CalculusJava BridgeEclipse Plugin
Forensics (NFI)Financial Auditing (PwC)Gaming (IC3D)GPUs (VU)HPC (Bergen)
Wednesday, June 20, 2012
Rascal Results so far
Technology Usability Application domains
Types, locations, resources, visit, pattern-directed invocation, ...
Layered design: learn on demand
Java, PHP, Lua analysis & refactoring
New GLL parsing Eclipse IDE features
Repository mining
Native support for visualization REPL Metrics
Libraries Math, Statistics, JDBC, SVN, ...
Interactive Tutor
Various DSLs
Wednesday, June 20, 2012
These considerations motivate today’s topic:
Understanding Software
Wednesday, June 20, 2012
Foundation
Application
Construction Evolution
Understanding Software
Wednesday, June 20, 2012
Foundation
Application
Construction Evolution
Understanding Software
Evolution
Wednesday, June 20, 2012
Foundation
Application
Construction Evolution
Understanding Software
Ecosystems Evolution
Wednesday, June 20, 2012
Foundation
Application
Construction Evolution
Understanding Software
Ecosystems Evolution
Business
Wednesday, June 20, 2012
Foundation
Application
Construction Evolution
Understanding Software
Ecosystems
Mark v.d. Brand: Meta-ModelingArie van Deursen: TestingMike Godfrey: Artifact ProvenanceJurgen Vinju: Meta-Programming Stéphane Ducasse: Visualization
Evolution
Business
Wednesday, June 20, 2012
Foundation
Application
Construction Evolution
Understanding Software
Krzysztof Czarnecki: VariabilityRalf Lämmel: Technological Spaces
Ecosystems
Mark v.d. Brand: Meta-ModelingArie van Deursen: TestingMike Godfrey: Artifact ProvenanceJurgen Vinju: Meta-Programming Stéphane Ducasse: Visualization
Evolution
Business
Wednesday, June 20, 2012
Foundation
Application
Construction Evolution
Understanding Software
Krzysztof Czarnecki: VariabilityRalf Lämmel: Technological Spaces
Ecosystems
Mark v.d. Brand: Meta-ModelingArie van Deursen: TestingMike Godfrey: Artifact ProvenanceJurgen Vinju: Meta-Programming Stéphane Ducasse: Visualization
Evolution
BusinessOege de Moor: Business IntelligenceJoost Visser: Benchmarking Quality
Wednesday, June 20, 2012
Word cloud of today’s topicsWednesday, June 20, 2012
Incomplete list of former SWAT and UvA colleagues
Wednesday, June 20, 2012
The Team
Wednesday, June 20, 2012
EnjoyUnderstanding Software
Wednesday, June 20, 2012