Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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