Redesigning the IDE - A second look at the “glorified text-editor”

nutmegactΛογισμικό & κατασκευή λογ/κού

10 Νοε 2012 (πριν από 4 χρόνια και 11 μήνες)

226 εμφανίσεις

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



Visual Studio Class Diagrams

Tinkertoy
-

LISP

MapZone
-

Graphics

A New Approach


Average program


bunch of classes


Organised as trees


Lots of them


A new representation


Options

Minimap

Interface

Demo


Options

Minimap

Interface


Scrolling window

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