Human factors and typography for more readable programs
Human factors and typography for more readable programs
Principles of visual programming systems
Principles of visual programming systems
Seesoft-A Tool for Visualizing Line Oriented Software Statistics
IEEE Transactions on Software Engineering - Special issue on software measurement principles, techniques, and environments
StormWatch: a tool for visualizing memory system protocols
Supercomputing '95 Proceedings of the 1995 ACM/IEEE conference on Supercomputing
A Technique for Drawing Directed Graphs
IEEE Transactions on Software Engineering
Tree-Maps: a space-filling approach to the visualization of hierarchical information structures
VIS '91 Proceedings of the 2nd conference on Visualization '91
Conceptual graph matching: a flexible algorithm and experiments
Journal of Experimental & Theoretical Artificial Intelligence - Special issue: conceptual graphs workshop
Providing enhanced visual support for software development and maintenance
ACM-SE 36 Proceedings of the 36th annual Southeast regional conference
Metaphorical representation in collaborative software engineering
WACC '99 Proceedings of the international joint conference on Work activities coordination and collaboration
The reader's helper: a personalized document reading environment
Proceedings of the SIGCHI conference on Human Factors in Computing Systems
A scrollbar-based visualization for document navigation
Proceedings of the fourth ACM conference on Digital libraries
Proceedings of the Conference on The Future of Software Engineering
Finding refactorings via change metrics
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Does Code Decay? Assessing the Evidence from Change Management Data
IEEE Transactions on Software Engineering
Process descriptions as organisational accounting devices: the dual use of workflow technologies
GROUP '01 Proceedings of the 2001 International ACM SIGGROUP Conference on Supporting Group Work
Specifying preferences based on user history
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
IEEE Transactions on Software Engineering
The Effectiveness of Control Structure Diagrams in Source Code Comprehension Activities
IEEE Transactions on Software Engineering
Evolving legacy system features into fine-grained components
Proceedings of the 24th International Conference on Software Engineering
Visualization of test information to assist fault localization
Proceedings of the 24th International Conference on Software Engineering
Combining static and dynamic data in code visualization
Proceedings of the 2002 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Design-code traceability for object-oriented systems
Annals of Software Engineering
Visualization Facilities in Program Reengineering
Programming and Computing Software
A Web laboratory for software data analysis
World Wide Web
Future trends in software evolution metrics
IWPSE '01 Proceedings of the 4th International Workshop on Principles of Software Evolution
Evolving legacy systems features using regression test cases and components
IWPSE '01 Proceedings of the 4th International Workshop on Principles of Software Evolution
Theme Editors' Introduction: Advancing Interactive Visualization and Computational Steering
IEEE Computational Science & Engineering
Guest Editors' Introduction: Scaling to New Heights
IEEE Computer Graphics and Applications
Computer
IEEE Transactions on Software Engineering
The Ragnarok software development environment
Nordic Journal of Computing
Making Movies: Watching Software Evolve through Visualisation
ICCS '01 Proceedings of the International Conference on Computational Science-Part II
3D representations for software visualization
Proceedings of the 2003 ACM symposium on Software visualization
Plugging-in visualization: experiences integrating a visualization tool with Eclipse
Proceedings of the 2003 ACM symposium on Software visualization
Visualization of program-execution data for deployed software
Proceedings of the 2003 ACM symposium on Software visualization
A system for graph-based visualization of the evolution of software
Proceedings of the 2003 ACM symposium on Software visualization
Design recovery of interactive graphical applications
Proceedings of the 25th International Conference on Software Engineering
Source viewer 3D (sv3D): a framework for software visualization
Proceedings of the 25th International Conference on Software Engineering
Case studies: Commercial domain, single mining tasks systems: visual insights
Handbook of data mining and knowledge discovery
Aspects to visualising reusable components
APVis '03 Proceedings of the Asia-Pacific symposium on Information visualisation - Volume 24
Managing Software with New Visual Representations
INFOVIS '97 Proceedings of the 1997 IEEE Symposium on Information Visualization (InfoVis '97)
Technical Note: Visually Encoding Program Test Information to Find Faults in Software
INFOVIS '01 Proceedings of the IEEE Symposium on Information Visualization 2001 (INFOVIS'01)
Fault Localization Using Visualization of Test Information
Proceedings of the 26th International Conference on Software Engineering
OGRE: Three-Dimensional Program Visualization for Novice Programmers
Education and Information Technologies
GAMMATELLA: visualizing program-execution data for deployed software
Information Visualization - Special issue: Software visualization
Static and dynamic distance metrics for feature-based code analysis
Journal of Systems and Software
The war room command console: shared visualizations for inclusive team coordination
SoftVis '05 Proceedings of the 2005 ACM symposium on Software visualization
Visualizing multiple evolution metrics
SoftVis '05 Proceedings of the 2005 ACM symposium on Software visualization
SoftVis '05 Proceedings of the 2005 ACM symposium on Software visualization
Informing the design of pipeline-based software visualisations
APVis '05 proceedings of the 2005 Asia-Pacific symposium on Information visualisation - Volume 45
International Journal of Human-Computer Studies
Modeling history to analyze software evolution: Research Articles
Journal of Software Maintenance and Evolution: Research and Practice
The evolution radar: visualizing integrated logical coupling information
Proceedings of the 2006 international workshop on Mining software repositories
Visual assessment of software evolution
Science of Computer Programming
Task and social visualization in software development: evaluation of a prototype
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Tool Support for Proof Engineering
Electronic Notes in Theoretical Computer Science (ENTCS)
The Future of Programming Environments: Integration, Synergy, and Assistance
FOSE '07 2007 Future of Software Engineering
Visual Data Mining in Software Archives to Detect How Developers Work Together
MSR '07 Proceedings of the Fourth International Workshop on Mining Software Repositories
A small observatory for super-repositories
Ninth international workshop on Principles of software evolution: in conjunction with the 6th ESEC/FSE joint meeting
Stable, flexible, peephole pretty-printing
Science of Computer Programming
On similarity-awareness in testing-based fault localization
Automated Software Engineering
REV '07 Proceedings of the Second International Workshop on Requirements Engineering Visualization
Visualization Techniques for Program ComprehensionA Literature Review
Proceedings of the 2006 conference on New Trends in Software Methodologies, Tools and Techniques: Proceedings of the fifth SoMeT_06
Visualization of Computer Architecture Simulation Data for System-Level Design Space Exploration
SAMOS '09 Proceedings of the 9th International Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation
3D visualization techniques to support slicing-based program comprehension
Computers and Graphics
Using Meta-Model Transformation to Model Software Evolution
Electronic Notes in Theoretical Computer Science (ENTCS)
Proceedings of the 2010 ACM SIGPLAN workshop on Partial evaluation and program manipulation
The Linux kernel as a case study in software evolution
Journal of Systems and Software
ICAI'05/MCBC'05/AMTA'05/MCBE'05 Proceedings of the 6th WSEAS international conference on Automation & information, and 6th WSEAS international conference on mathematics and computers in biology and chemistry, and 6th WSEAS international conference on acoustics and music: theory and applications, and 6th WSEAS international conference on Mathematics and computers in business and economics
Supporting software history exploration
Proceedings of the 8th Working Conference on Mining Software Repositories
Visualizing collaboration and influence in the open-source software community
Proceedings of the 8th Working Conference on Mining Software Repositories
Visualizing inference process of a rule engine
Proceedings of the 2011 Visual Information Communication - International Symposium
Supporting group awareness in distributed software development
EHCI-DSVIS'04 Proceedings of the 2004 international conference on Engineering Human Computer Interaction and Interactive Systems
Change-Link: a digital forensic tool for visualizing changes to directory trees
Proceedings of the Ninth International Symposium on Visualization for Cyber Security
Software visualisation through video games
Proceedings of the South African Institute for Computer Scientists and Information Technologists Conference
Static profiling of the worst-case in real-time programs
Proceedings of the 20th International Conference on Real-Time and Network Systems
Code flows: visualizing structural evolution of source code
EuroVis'08 Proceedings of the 10th Joint Eurographics / IEEE - VGTC conference on Visualization
Exploring collections of tagged text for literary scholarship
EuroVis'11 Proceedings of the 13th Eurographics / IEEE - VGTC conference on Visualization
Fingerprint matrices: uncovering the dynamics of social networks in prose literature
EuroVis '13 Proceedings of the 15th Eurographics Conference on Visualization
Hi-index | 4.10 |
Production-sized systems, particularly legacy software, can contain millions of lines of code. Even a seemingly simple, small-team project, such as a spreadsheet, is quite complicated. Understanding, changing, and repairing code in large systems is especially time-consuming and costly. Knowledge of code decays as the software ages and the original programmers and design team move on to new assignments. The design documents are also usually out of date, leaving the code as the only guide to system behavior. It is tedious to reconstruct complex system behavior by analyzing code. Perhaps the most difficult software engineering projects involve "programming in the large." These large-team projects, often in maintenance mode, require enhancements involving subtle changes to complex legacy code written over many years. Under these circumstances, programmer productivity is low, changes are more likely to introduce errors, and software projects are often late. Software visualization can help software engineers cope with this complexity while increasing programmer productivity. Software is intangible, having no physical shape or size. After it is written, code "disappears" into files kept on disks. Software visualization tools use graphical techniques to make software visible by displaying programs, program artifacts, and program behavior. Pictures of the software can help slow knowledge decay by helping project members remember--and new members discover--how the code works. Three basic properties of software can be visualized: software structure (as in directed graphs); runtime behavior (as in algorithm animation); and the code itself (as in pretty printers). Previous approaches to software visualization, although useful for small projects, do not scale to the production-sized systems currently being manufactured. The graphical techniques found in programming, program-visualization, and algorithm-animation environments target small systems. Algorithm visualizations are usually hand-crafted and require the designer to understand the code before visualizing it, making this technique infeasible for large systems or tasks involving programmer discovery. The general strategy for large projects is to decompose the project into modules, usually hierarchically, and display each module individually. In practice, this decomposition is often the most difficult aspect of the visualization. When software is decomposed, the "big picture" is lost, often defeating the purpose of the visualization. To address these shortcomings, the authors developed scalable techniques for visualizing program text, text properties, and relationships involving program text, as text is the dominant medium for implementing large software systems. They have applied their tools to visualize code version history, differences between releases, static properties of code, code profiling and execution hot spots, and dynamic program slices. The systems presented are used daily within Bell Laboratories' development community, helping software developers work on the 5ESS product, a real-time switching system containing millions of lines of code developed over the past two decades by thousands of software engineers. The initial developer feedback has been very positive.