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 workof 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