SMALLTALK-80: the interactive programming environment
SMALLTALK-80: the interactive programming environment
Strategies for documenting delocalized plans
The Institute of Electrical and Electronics Engineers, Inc on Conference on software maintenance--1985
The Trellis programming environment
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Designing documentation to compensate for delocalized plans
Communications of the ACM
The C Information Abstraction System
IEEE Transactions on Software Engineering
Seesoft-A Tool for Visualizing Line Oriented Software Statistics
IEEE Transactions on Software Engineering - Special issue on software measurement principles, techniques, and environments
Relations and graphs: discrete mathematics for computer scientists
Relations and graphs: discrete mathematics for computer scientists
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Simplifying data integration: the design of the desert software development environment
Proceedings of the 18th international conference on Software engineering
Software reconnaissance: mapping program features to code
Journal of Software Maintenance: Research and Practice
Argo: a design environment for evolving software architectures
ICSE '97 Proceedings of the 19th international conference on Software engineering
ICSE '91 Proceedings of the 13th international conference on Software engineering
ICSE '94 Proceedings of the 16th international conference on Software engineering
Visualizing dynamic software system information through high-level models
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Conceptual module querying for software reengineering
Proceedings of the 20th international conference on Software engineering
N degrees of separation: multi-dimensional separation of concerns
Proceedings of the 21st international conference on Software engineering
Analyzing exception flow in Java programs
ESEC/FSE-7 Proceedings of the 7th European software engineering conference held jointly with the 7th ACM SIGSOFT international symposium on Foundations of software engineering
Coven: brewing better collaboration through software configuration management
SIGSOFT '00/FSE-8 Proceedings of the 8th ACM SIGSOFT international symposium on Foundations of software engineering: twenty-first century applications
Does Code Decay? Assessing the Evidence from Change Management Data
IEEE Transactions on Software Engineering
A fast algorithm for computing longest common subsequences
Communications of the ACM
On the criteria to be used in decomposing systems into modules
Communications of the ACM
Exploiting the map metaphor in a tool for software evolution
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Modeling of software concerns in Cosmos
AOSD '02 Proceedings of the 1st international conference on Aspect-oriented software development
Maintaining software through intentional source-code views
SEKE '02 Proceedings of the 14th international conference on Software engineering and knowledge engineering
Browsing and searching source code of applications written using a GUI framework
Proceedings of the 24th International Conference on Software Engineering
Concern graphs: finding and describing concerns using structural program dependencies
Proceedings of the 24th International Conference on Software Engineering
Supporting aggregation in fine grained software configuration management
Proceedings of the 10th ACM SIGSOFT symposium on Foundations of software engineering
Design erosion: problems and causes
Journal of Systems and Software
Reverse Engineering and Design Recovery: A Taxonomy
IEEE Software
Locating Features in Source Code
IEEE Transactions on Software Engineering
Testing with Respect to Concerns
ICSM '03 Proceedings of the International Conference on Software Maintenance
Using Intentional Source-Code Views to Aid Software Maintenance
ICSM '03 Proceedings of the International Conference on Software Maintenance
Refactoring to aspects: an interactive approach
eclipse '03 Proceedings of the 2003 OOPSLA workshop on eclipse technology eXchange
SNIAFL: Towards a Static Non-Interactive Approach to Feature Location
Proceedings of the 26th International Conference on Software Engineering
Representing concerns in source code
Representing concerns in source code
How Effective Developers Investigate Source Code: An Exploratory Study
IEEE Transactions on Software Engineering
Tracking Code Clones in Evolving Software
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Inferring structural patterns for concern traceability in evolving software
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Documenting after the fact: Recovering architectural design decisions
Journal of Systems and Software
Improving modularity by refactoring code clones: a feasibility study on Linux
ACM SIGSOFT Software Engineering Notes
Evolving software product lines with aspects: an empirical study on design stability
Proceedings of the 30th international conference on Software engineering
Developing natural language-based program analyses and tools to expedite software maintenance
Companion of the 30th international conference on Software engineering
A theory of aspects as latent topics
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Automatically locating framework extension examples
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
Engineering of Software-Intensive Systems: State of the Art and Research Challenges
Software-Intensive Systems and New Computing Paradigms
Refactoring of Crosscutting Concerns with Metaphor-Based Heuristics
Electronic Notes in Theoretical Computer Science (ENTCS)
Proceedings of the 2009 ACM symposium on Applied Computing
An integrated crosscutting concern migration strategy and its semi-automated application to JHotDraw
Automated Software Engineering
Cross-artifact traceability using lightweight links
TEFSE '09 Proceedings of the 2009 ICSE Workshop on Traceability in Emerging Forms of Software Engineering
ConcernMorph: metrics-based detection of crosscutting patterns
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
A role-based crosscutting concerns mining approach to evolve Java systems towards AOP
Proceedings of the joint international and annual ERCIM workshops on Principles of software evolution (IWPSE) and software evolution (Evol) workshops
Analysing Object Type Hierarchies to Identify Crosscutting Concerns
FGIT '09 Proceedings of the 1st International Conference on Future Generation Information Technology
Clone region descriptors: Representing and tracking duplication in source code
ACM Transactions on Software Engineering and Methodology (TOSEM)
Proceedings of the 2010 ACM Symposium on Applied Computing
FLAT3: feature location and textual tracing tool
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2
On the impact of crosscutting concern projection on code measurement
Proceedings of the tenth international conference on Aspect-oriented software development
On the proactive identification of mistakes on concern mapping tasks
Proceedings of the tenth international conference on Aspect-oriented software development companion
Concern-based cohesion as change proneness indicator: an initial empirical study
Proceedings of the 2nd International Workshop on Emerging Trends in Software Metrics
Investigating how to effectively combine static concern location techniques
Proceedings of the 3rd International Workshop on Search-Driven Development: Users, Infrastructure, Tools, and Evaluation
Using structural and textual information to capture feature coupling in object-oriented software
Empirical Software Engineering
Applying and evaluating concern-sensitive design heuristics
Journal of Systems and Software
Proceedings of the 34th International Conference on Software Engineering
History-sensitive heuristics for recovery of features in code of evolving program families
Proceedings of the 16th International Software Product Line Conference - Volume 1
Systematizing pragmatic software reuse
ACM Transactions on Software Engineering and Methodology (TOSEM)
Program comprehension in preprocessor-based software
SAFECOMP'12 Proceedings of the 2012 international conference on Computer Safety, Reliability, and Security
Detecting missing method calls as violations of the majority rule
ACM Transactions on Software Engineering and Methodology (TOSEM)
On the impact of trace-based feature location in the performance of software maintainers
Journal of Systems and Software
Journal of Database Management
Combining concern input with program analysis for bloat detection
Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
Portfolio: Searching for relevant functions and their usages in millions of lines of code
ACM Transactions on Software Engineering and Methodology (TOSEM) - Testing, debugging, and error handling, formal methods, lifecycle concerns, evolution and maintenance
Studying software evolution using topic models
Science of Computer Programming
Hi-index | 0.00 |
A software modification task often addresses several concerns. A concern is anything a stakeholder may want to consider as a conceptual unit, including features, nonfunctional requirements, and design idioms. In many cases, the source code implementing a concern is not encapsulated in a single programming language module, and is instead scattered and tangled throughout a system. Inadequate separation of concerns increases the difficulty of evolving software in a correct and cost-effective manner. To make it easier to modify concerns that are not well modularized, we propose an approach in which the implementation of concerns is documented in artifacts, called concern graphs. Concern graphs are abstract models that describe which parts of the source code are relevant to different concerns. We present a formal model for concern graphs and the tool support we developed to enable software developers to create and use concern graphs during software evolution tasks. We report on five empirical studies, providing evidence that concern graphs support views and operations that facilitate the task of modifying the code implementing scattered concerns, are cost-effective to create and use, and robust enough to be used with different versions of a software system.