Selecting Software Test Data Using Data Flow Information
IEEE Transactions on Software Engineering
PROUST: Knowledge-Based Program Understanding
IEEE Transactions on Software Engineering
Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
IDL: sharing intermediate representations
ACM Transactions on Programming Languages and Systems (TOPLAS)
The program dependence graph and its use in optimization
ACM Transactions on Programming Languages and Systems (TOPLAS)
Metrics and software structure
Information and Software Technology
The interface description language: definition and use
The interface description language: definition and use
Communications of the ACM
The C Information Abstraction System
IEEE Transactions on Software Engineering
Measures of testability as a basis for quality assurance
Software Engineering Journal
Fundamentals of software engineering
Fundamentals of software engineering
Reverse engineering: algorithms for program graph production
Software—Practice & Experience
GENOA: a customizable language- and front-end independent code analyzer
ICSE '92 Proceedings of the 14th international conference on Software engineering
Efficient construction of program dependence graphs
ISSTA '93 Proceedings of the 1993 ACM SIGSOFT international symposium on Software testing and analysis
Automated program recognition by graph parsing
Automated program recognition by graph parsing
Software salvaging and the call dominance tree
Journal of Systems and Software
An improved algorithm for identifying objects in code
Software—Practice & Experience
A specification driven slicing process for identifying reusable functions
Journal of Software Maintenance: Research and Practice
Assessing modular structure of legacy code based on mathematical concept analysis
ICSE '97 Proceedings of the 19th international conference on Software engineering
Extracting Reusable Functions by Flow Graph-Based Program Slicing
IEEE Transactions on Software Engineering
Understanding natural programs using proper decomposition
ICSE '91 Proceedings of the 13th international conference on Software engineering
Assessing modularization and code scavenging techniques
Journal of Software Maintenance: Research and Practice
Automating the detection of reusable parts in existing software
ICSE '93 Proceedings of the 15th international conference on Software Engineering
An Extensible System for Source Code Analysis
IEEE Transactions on Software Engineering
JSP and JSD: The Jackson Approach to Software Development
JSP and JSD: The Jackson Approach to Software Development
Flow Analysis of Computer Programs
Flow Analysis of Computer Programs
Reverse Engineering and Design Recovery: A Taxonomy
IEEE Software
Extracting and Restructuring the Design of Large Systems
IEEE Software
Knowledge-Based Program Analysis
IEEE Software
A Query Algebra for Program Databases
IEEE Transactions on Software Engineering
A Framework for Partial Data Flow Analysis
ICSM '94 Proceedings of the International Conference on Software Maintenance
Specifying code analysis tools
ICSM '96 Proceedings of the 1996 International Conference on Software Maintenance
Finding Components in a Hierarchy of Modules: a Step towards Architectural Understanding
ICSM '97 Proceedings of the International Conference on Software Maintenance
Identifying modules via concept analysis
ICSM '97 Proceedings of the International Conference on Software Maintenance
Migrating Legacy Systems towards Object-Oriented Platforms
ICSM '97 Proceedings of the International Conference on Software Maintenance
Reuse Reengineering and Validation via Concept Assignment
ICSM '93 Proceedings of the Conference on Software Maintenance
Implementing relational views of programs
SDE 1 Proceedings of the first ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
A System for Generating Reverse Engineering Tools
STEP '97 Proceedings of the 8th International Workshop on Software Technology and Engineering Practice (STEP '97) (including CASE '97)
Recovering abstract data types and object instances from a conventional procedural language
WCRE '95 Proceedings of the Second Working Conference on Reverse Engineering
Design of a generic reverse engineering assistant tool
WCRE '95 Proceedings of the Second Working Conference on Reverse Engineering
Creating a Research Infrastructure for Reengineering
WCRE '96 Proceedings of the 3rd Working Conference on Reverse Engineering (WCRE '96)
Some Experiments Toward Understanding How Program Plan Recognition Algorithms Scale
WCRE '96 Proceedings of the 3rd Working Conference on Reverse Engineering (WCRE '96)
Enriching Program Comprehension for Software Reuse
WPC '97 Proceedings of the 5th International Workshop on Program Comprehension (WPC '97)
Plan analysis of programs
Inter-module code analysis techniques for software maintenance
Inter-module code analysis techniques for software maintenance
Graphs and Hypergraphs
A Visual Framework for the Definition and Execution of Reverse Engineering Processes
VISUAL '08 Proceedings of the 10th international conference on Visual Information Systems: Web-Based Visual Information Search and Management
Hi-index | 0.00 |
The paper presents a case study in the development of software modularisation tools. The tools are produced by using a system for developing code analysers that uses a database to store both a no-loss fine-grained intermediate representation and the analyses‘ results. The analysers are automatically generated from a high-level specification of the desired analyses expressed in a domain-oriented language. We use a program intermediate representation, called F(p), as the user-visible data base conceptual model. Analysers are specified in a declarative language, called F(p) − ℓ, which allows the specification of an analysis in the form of a traversal of an algebraic expression, with accesses to, and stores of, the database information the algebraic expression indexes. A foreign language interface allows the analysers to be embedded into C programs. This is useful, for example, to implement the user interface of an analyser or to facilitate interoperation of the generated analysers with pre-existing tools.