Transcript ppt
Matthew van Cittert
Supervisor: Prof. Shaun Bangay
A second look at the “glorified text-editor”
The Problem
New features but old, unchanging design
Large projects become difficult to manage
Netbeans
Delphi
Visual Studio
CodeBlocks
Other approaches
Focus on method implementation
Tinkertoy - LISP
Visual Studio Class Diagrams
MapZone - Graphics
A New Approach
Average program – bunch of classes
Organised as trees
Lots of them
A new representation
Interface
Options
Minimap
Demo
Interface – Scrolling window
Options
Minimap
Solving the Problem
Zoom
Overview
Minimap, scrollmap
Get around quickly
Spatial awareness
Solving the Problem 2
Text windows
Separate code and comments
Edit methods side by side
Single workspace
Avoid digging through files
Code tour
Interactive animated documentation
Making it go - Parser
Five Tools
Base: Match a string
Base: Match from a set of characters
Repeat: Match scanner a given number of times
List: Match all scanners in a serial list
Option: Match one scanner from a list of
scanners
Callbacks
pre- and post-processing
what to do when a match is found
Intermediate format
Classes to describe code
Filled out by parser callbacks
Converters can render these back as
text
Other unimplemented ideas
Use a database or ontology
Query code (SQL or a reasoner)
Interface
Series of components
Plug into one another
Zooming
Scrolling
Moving
Resizing
Layout manager to arrange classes
Trees with GUI frontends.
Evaluation
Comparison
Project interface
Traditional IDEs
Methods of comparison
User study
Cognitive walkthrough
Predictive evaluation
Heuristic evaluation
Predictive Evaluation
Can tasks be completed faster?
Decompose tasks
Open files
Scroll to point of interest
Type keywords
Select class from classview
Move, cut, paste
Preliminary results
Heuristic Evaluation
Is it easier to use?
Gerhardt-Powals (1996)
Automate unwanted workload
Fuse data (high level summaries)
Use aids to interpretation (metaphors)
Group data meaningfully
Include only relevant information
Conclusions & Questions
Room for improvement of traditional
IDEs
Most existing solutions focus on method
implementation
Interfaces used in strategy games pose
a potential solution
easier to use
more efficient navigation
more effective documentation