Download CPSC 533 Project Status

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Document related concepts

Digital history wikipedia, lookup

Transcript
CPSC 533 Project Status
Reid Holmes
Andrew Chan
March 17, 2003
The Problem
• Software systems are huge and
complex
– Difficult for a developer to understand the
structure
– Difficult to estimate how a change to a
system will affect its behavior
The costs
• Developers may introduce unintended
side-effects because they do not
understand the system
• Adding features or fixing bugs may
take longer than expected
Solutions
• Language features to promote
abstraction
– For large systems, still too much detail
• Design documents that document the
structure of the system
– Does the implementation conform to
them?
Solutions
• Software tools to capture what has
been implemented
Current Research
• Hausi Müller, University of Victoria
– Rigi Project
• Margaret-Anne Storey, University of
Victoria
– SHriMP Project
• Rigi and SHriMP are available for free
download
Evaluation
• Issues with scalability
– No structure is inferred by these tools
• Issues with navigation
– Easy to get lost when navigating
• Focus, but not much context
• Results after 10 years of work?
Introducing Prawn
• Leverage new software analysis and
information visualization tools
• Enable a developer to:
– discover key components in a system
– learn how they are interconnected
– determine how a change to the system
could affect it
Introducing Prawn
• Focus on visualizing Java systems
• Scalability goal: lay-out and interact
with a program the size of JEdit:
–
–
–
–
20 packages
644 classes
5014 methods
about 23 270 method calls
Infrastructure
• Programming in Java
• Source analysis based on FEAT (Feature
Exploration and Analysis Tool)
– Developed by Martin Robillard in SPL
• Visualization using ZVTM (Zoomable
Visual Transformation Machine)
– Downloadable from SourceForge
Current Status
• Successfully analyzed the Java runtime library:
– 314 packages
– 8216 classes
– 73 845 methods
• API for querying analysis database
• Scalable framework for displaying
system
Questions?
Image borrowed from www.prawnography.net