Program understanding: challenge for the 1990's
IBM Systems Journal
Object-oriented software engineering
Object-oriented software engineering
Software reconnaissance: mapping program features to code
Journal of Software Maintenance: Research and Practice
The concept of dynamic analysis
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
Generative programming: methods, tools, and applications
Generative programming: methods, tools, and applications
A conceptual basis for feature engineering
Journal of Systems and Software
Quantifying the closeness between program components and features
Journal of Systems and Software - Special issue on software maintenance
A scenario-driven approach to traceability
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Recovering Traceability Links between Code and Documentation
IEEE Transactions on Software Engineering
Locating Features in Source Code
IEEE Transactions on Software Engineering
Recovering documentation-to-source-code traceability links using latent semantic indexing
Proceedings of the 25th International Conference on Software Engineering
Proceedings of the 25th International Conference on Software Engineering
A Use-Case Driven Method of Architecture Recovery for Program Understanding and Reuse Reengineering
CSMR '00 Proceedings of the Conference on Software Maintenance and Reengineering
Addendum to "Locating Features in Source Code'
IEEE Transactions on Software Engineering
Correlating Features and Code Using a Compact Two-Sided Trace Analysis Approach
CSMR '05 Proceedings of the Ninth European Conference on Software Maintenance and Reengineering
Why Programs Fail: A Guide to Systematic Debugging
Why Programs Fail: A Guide to Systematic Debugging
Dynamic Feature Traces: Finding Features in Unfamiliar Code
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
Feature Identification: A Novel Approach and a Case Study
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
Enriching Reverse Engineering with Semantic Clustering
WCRE '05 Proceedings of the 12th Working Conference on Reverse Engineering
SNIAFL: Towards a static noninteractive approach to feature location
ACM Transactions on Software Engineering and Methodology (TOSEM)
Maintaining mental models: a study of developer work habits
Proceedings of the 28th international conference on Software engineering
On Computing the Canonical Features of Software Systems
WCRE '06 Proceedings of the 13th Working Conference on Reverse Engineering
Recovering and using use-case-diagram-to-source-code traceability links
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
MODELS'10 Proceedings of the 13th international conference on Model driven engineering languages and systems: Part II
Hi-index | 0.00 |
Use-cases are considered an integral part of most contemporary development processes since they describe a software system's expected behavior from the perspective of its prospective users. However, the presence of and traceability to use-cases is increasingly lost in later more code-centric development activities. Use-cases, being well-encapsulated at the level of requirements descriptions, eventually lead to crosscutting concerns in system design and source code. Tracing which parts of the system contribute to which use-cases is therefore hard and so limits understandability. In this paper, we propose an approach to making use-cases first-class entities in both the programming language and the runtime environment. Having use-cases present in the code and the running system will allow developers, maintainers, and operators to easily associate their units of work with what matters to the users. We suggest the combination of use-cases, acceptance tests, and dynamic analysis to automatically associate source code with use-cases. We present UseCasePy, an implementation of our approach to use-case-centered development in Python, and its application to the Django Web framework.