System Structure Analysis: Clustering with Data Bindings
IEEE Transactions on Software Engineering - Annals of discrete mathematics, 24
Design Stability Measures for Software Maintenance
IEEE Transactions on Software Engineering - Special issue on COMPSAC 1982 and 1983
Integrating noninterfering versions of programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
The relationship between slices and module cohesion
ICSE '89 Proceedings of the 11th international conference on Software engineering
Interprocedural slicing using dependence graphs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Automated Software Test Data Generation
IEEE Transactions on Software Engineering
Using Program Slicing in Software Maintenance
IEEE Transactions on Software Engineering
Incremental program testing using program dependence graphs
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Automated support for legacy code understanding
Communications of the ACM
Design for testability in object-oriented systems
Communications of the ACM
A new model of program dependences for reverse engineering
SIGSOFT '94 Proceedings of the 2nd ACM SIGSOFT symposium on Foundations of software engineering
Program integration for languages with procedure calls
ACM Transactions on Software Engineering and Methodology (TOSEM)
The chaining approach for software test data generation
ACM Transactions on Software Engineering and Methodology (TOSEM)
A specification driven slicing process for identifying reusable functions
Journal of Software Maintenance: Research and Practice
Rule-based approach to computing module cohesion
ICSE '93 Proceedings of the 15th international conference on Software Engineering
Program and interface slicing for reverse engineering
ICSE '93 Proceedings of the 15th international conference on Software Engineering
Semantics Guided Regression Test Cost Reduction
IEEE Transactions on Software Engineering
Partial online cycle elimination in inclusion constraint graphs
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
An integrated environment for reuse reengineering C code
Journal of Systems and Software - Special issue on software engineering and knowledge engineering
Semantics-preserving procedure extraction
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Automated test-data generation for exception conditions
Software—Practice & Experience
Programmers use slices when debugging
Communications of the ACM
Computing ripple effect for software maintenance
Journal of Software Maintenance: Research and Practice
Automatic Re-engineering of Software Using Genetic Programming
Automatic Re-engineering of Software Using Genetic Programming
Experimental Evaluation of Program Slicing for Fault Localization
Empirical Software Engineering
Software Testability: The New Verification
IEEE Software
Software's Future: Managing Evolution
IEEE Software
IEEE Transactions on Software Engineering
CCFinder: a multilinguistic token-based code clone detection system for large scale source code
IEEE Transactions on Software Engineering
Locating Features in Source Code
IEEE Transactions on Software Engineering
Software Salvaging Based on Conditions
ICSM '94 Proceedings of the International Conference on Software Maintenance
ICSM '96 Proceedings of the 1996 International Conference on Software Maintenance
Fitness Function Design To Improve Evolutionary Structural Testing
GECCO '02 Proceedings of the Genetic and Evolutionary Computation Conference
Using Heuristic Search Techniques To Extract Design Abstractions From Source Code
GECCO '02 Proceedings of the Genetic and Evolutionary Computation Conference
Dynamic Slicing Method for Maintenance of Large C Programs
CSMR '01 Proceedings of the Fifth European Conference on Software Maintenance and Reengineering
Using Dependence Graphs as a Support to Document Programs
SCAM '02 Proceedings of the Second IEEE International Workshop on Source Code Analysis and Manipulation
Understanding Function Behaviors through Program Slicing
WPC '96 Proceedings of the 4th International Workshop on Program Comprehension (WPC '96)
Dynamic Program Slicing in Understanding of Program Execution
WPC '97 Proceedings of the 5th International Workshop on Program Comprehension (WPC '97)
Identifying reusable functions using specification driven program slicing: a case study
ICSM '95 Proceedings of the International Conference on Software Maintenance
Improving Visual Impact Analysis
ICSM '98 Proceedings of the International Conference on Software Maintenance
Bunch: A Clustering Tool for the Recovery and Maintenance of Software System Structures
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
An Empirical Study of Amorphous Slicing as a Program Comprehension Support Tool
IWPC '00 Proceedings of the 8th International Workshop on Program Comprehension
Slicing Aspect-Oriented Software
IWPC '02 Proceedings of the 10th International Workshop on Program Comprehension
Effective, Automatic Procedure Extraction
IWPC '03 Proceedings of the 11th IEEE International Workshop on Program Comprehension
Are Decomposition Slices Clones?
IWPC '03 Proceedings of the 11th IEEE International Workshop on Program Comprehension
Program Slicing in Understanding of Large Programs
IWPC '98 Proceedings of the 6th International Workshop on Program Comprehension
Using a Concept Lattice of Decomposition Slices for Program Understanding and Impact Analysis
IEEE Transactions on Software Engineering
Unions of Slices Are Not Slices
CSMR '03 Proceedings of the Seventh European Conference on Software Maintenance and Reengineering
IWPC '01 Proceedings of the 9th International Workshop on Program Comprehension
On the Use of Metaballs to Visually Map Source Code Structures and Analysis Results onto 3D Space
WCRE '02 Proceedings of the Ninth Working Conference on Reverse Engineering (WCRE'02)
A Multiple Hill Climbing Approach to Software Module Clustering
ICSM '03 Proceedings of the International Conference on Software Maintenance
An Empirical Study of Computation Equivalence as Determined by Decomposition Slice Equivalence
WCRE '03 Proceedings of the 10th Working Conference on Reverse Engineering
Journal of Systems and Software
IEEE Transactions on Software Engineering
Guaranteed inconsistency avoidance during software evolution
Journal of Software Maintenance: Research and Practice
Effective Software Test Automation: Developing an Automated Software Testing Tool
Effective Software Test Automation: Developing an Automated Software Testing Tool
Amorphous Procedure Extraction
SCAM '04 Proceedings of the Source Code Analysis and Manipulation, Fourth IEEE International Workshop
Analysis and Visualization of Predicate Dependence on Formal Parameters and Global Variables
IEEE Transactions on Software Engineering
Slice-Based Cohesion Metrics and Software Intervention
WCRE '04 Proceedings of the 11th Working Conference on Reverse Engineering
Chianti: a change impact analysis tool for java programs
Proceedings of the 27th international conference on Software engineering
An empirical study of the robustness of two module clustering fitness functions
GECCO '05 Proceedings of the 7th annual conference on Genetic and evolutionary computation
Software Testing, Verification & Reliability - SoftTest II: The Second UK Workshop on Software Testing Research
Locating Dependence Clusters and Dependence Pollution
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
Using Software Development Progress Data to Understand Threats to Project Outcomes
METRICS '05 Proceedings of the 11th IEEE International Software Metrics Symposium
Impact Analysis by Mining Software and Change Request Repositories
METRICS '05 Proceedings of the 11th IEEE International Software Metrics Symposium
Forward slices are smaller than backward slices
SCAM '05 Proceedings of the Fifth IEEE International Workshop on Source Code Analysis and Manipulation
On the Automatic Modularization of Software Systems Using the Bunch Tool
IEEE Transactions on Software Engineering
SCAM '06 Proceedings of the Sixth IEEE International Workshop on Source Code Analysis and Manipulation
Identifying Failure Causes in Java Programs: An Application of Change Impact Analysis
IEEE Transactions on Software Engineering
The impact of input domain reduction on search-based test data generation
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Empirical study of optimization techniques for massive slicing
ACM Transactions on Programming Languages and Systems (TOPLAS)
Empirical Software Change Impact Analysis using Singular Value Decomposition
ICST '08 Proceedings of the 2008 International Conference on Software Testing, Verification, and Validation
Proceedings of the 9th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Dependence cluster visualization
Proceedings of the 5th international symposium on Software visualization
Using Formal Concept Analysis to support change analysis
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Parallel replication-based points-to analysis
CC'12 Proceedings of the 21st international conference on Compiler Construction
Efficient Identification of Linchpin Vertices in Dependence Clusters
ACM Transactions on Programming Languages and Systems (TOPLAS)
Coherent clusters in source code
Journal of Systems and Software
Hi-index | 0.00 |
A dependence cluster is a set of program statements, all of which are mutually inter-dependent. This article reports a large scale empirical study of dependence clusters in C program source code. The study reveals that large dependence clusters are surprisingly commonplace. Most of the 45 programs studied have clusters of dependence that consume more than 10% of the whole program. Some even have clusters consuming 80% or more. The widespread existence of clusters has implications for source code analyses such as program comprehension, software maintenance, software testing, reverse engineering, reuse, and parallelization.