A C++ data model supporting reachability analysis and dead code detection
ESEC '97/FSE-5 Proceedings of the 6th European SOFTWARE ENGINEERING conference held jointly with the 5th ACM SIGSOFT international symposium on Foundations of software engineering
A C++ Data Model Supporting Reachability Analysis and Dead Code Detection
IEEE Transactions on Software Engineering
An Extensible System for Source Code Analysis
IEEE Transactions on Software Engineering
CHIME: customizable hyperlink insertion and maintenance engine for software engineering environments
Proceedings of the 21st international conference on Software engineering
Elucidative programming in Java
IPCC/SIGDOC '00 Proceedings of IEEE professional communication society international professional communication conference and Proceedings of the 18th annual ACM international conference on Computer documentation: technology & teamwork
An Approach for Recovering Distributed System Architectures
Automated Software Engineering
Visualizing and Analyzing Software Infrastructures
IEEE Software
Detecting and Representing Relevant Web Deltas in WHOWEDA
IEEE Transactions on Knowledge and Data Engineering
Navigating and querying code without getting lost
Proceedings of the 2nd international conference on Aspect-oriented software development
Form: A Framework for Creating Views of Program Executions
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Representing and Accessing Extracted Information
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Hypertext support for the information needs of software maintainers
Journal of Software Maintenance and Evolution: Research and Practice
GXL: a graph-based standard exchange format for reengineering
Science of Computer Programming - Software analysis, evolution and re-engineering
Migrating an MVS mainframe application to a PC
ATEC '04 Proceedings of the annual conference on USENIX Annual Technical Conference
The SEXTANT Software Exploration Tool
IEEE Transactions on Software Engineering
Science of Computer Programming
Comprehension and dependency analysis of aspect-oriented programs through declarative reasoning
PADL'08 Proceedings of the 10th international conference on Practical aspects of declarative languages
JQuery: a generic code browser with a declarative configuration language
PADL'06 Proceedings of the 8th international conference on Practical Aspects of Declarative Languages
Systematizing pragmatic software reuse
ACM Transactions on Software Engineering and Methodology (TOSEM)
Hi-index | 0.00 |
Programmers frequently have to retrieve and link information from various software documents to accomplish a maintenance task. Ciao is a graph-based navigator that helps programmers query and browse structural connections embedded in different software and document repositories. A repository consists of a collection of source documents with an associated database that describes their structure. Ciao supports repositories organized in an architecture style called Aero, which exploits the duality between a class of entity-relationship (ER) databases and directed attributed graphs (DAG). Database queries and graph analysis operators in Aero are plug-compatible because they all take an ER database and produce yet another ER database by default. Various presentation filters generate graph views, source views, and relational views from any compatible ER database. The architecture promotes the construction of successively more complex operators using a notion of virtual database pipelines. Ciao has been instantiated for C and C++ program databases, and program difference databases. The latter allows programmers to explore program structure changes by browsing and expanding graphs that highlight changed, deleted, and added entities and relationships. The unifying ER model under ciao also allows users to navigate different software repositories and make necessary connections. We have linked program difference databases and modification request (MR) databases so that users can investigate the connections between MRs and affected entities. Ciao has been applied to several large communications software projects and we report experiences and lessons learned from these applications.