130 likes | 239 Views
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.
E N D
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 run-time 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