Abstract
Researchers have developed ways to describe a concern, to store a concern, and even to keep a concern's code quickly available while updating it. Work on identifying concerns (semi-)automatically, however, has yet to gain attention and practical use, even though it is a desirable prerequisite to all of the above activities, particularly for legacy applications. This paper describes a concern identification technique that leverages the natural language processing (NLP) information in source code. Developers often use NLP clues to help understand software, because NLP helps them identify concepts that are semantically related. However, few analyses use NLP to understand programs, or to complement other program analyses. We have observed that an NLP technique called lexical chains offers the NLP equivalent of a concern. In this paper, we investigate the use of lexical chaining to identify crosscutting concerns, present the design and implementation of an algorithm that uses lexical chaining to expose concerns, and provide examples of concerns that our tool is able to discover automatically.
- S. Breu and J. Krinke. Aspect mining using event traces. In Auto. Soft. Eng. Conf., 2004. Google ScholarDigital Library
- A. Budanitsky. Semantic distance in wordnet: An experimental, application-oriented evaluation of five measures, 2001.Google Scholar
- Eclipse Homepage. http://www.eclipse.org. 2005. (Febuary 1, 2005).Google Scholar
- E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns. Addison-Wesley, 1995.Google ScholarDigital Library
- W. G. Griswold. Coping with crosscutting software changes using information transparency. In REFLECTION '01: Proceedings of the Third International Conference on Metalevel Architectures and Separation of Crosscutting Concerns, pages 250--265, London, UK, 2001. Springer-Verlag. Google ScholarDigital Library
- W. G. Griswold, Y. Kato, and J. J. Yuan. Aspect browser: Tool support for managing dispersed aspects. In Workshop on MDSOC, 2000.Google Scholar
- M. Halliday and R. Hasan. Cohesion in English. Longman, London, 1976.Google Scholar
- J. Hannemann and G. Kiczales. Overcoming the prevalent decomposition of legacy code. In Wkshp on Advances Separation of Concerns, 2001.Google Scholar
- M. Marin, A. van Deursen, and L. Moonen. Identifying aspects using fan-in analysis. In Working Conf. on Reverse Eng., 2004. Google ScholarDigital Library
- J. Morris and G. Hirst. Lexical cohesion computed by thesaural relations as an indicator of the structure of text. Comput. Linguist., 17(1):21--48, 1991. Google ScholarDigital Library
- I. Nancy and V. Jean. Word sense disambiguation: The state of the art, 1998.Google Scholar
- M. P. Robillard and G. C. Murphy. Concern graphs: Finding and describing concerns using structural program dependencies. In Int. Conf. on Soft. Eng., 2002. Google ScholarDigital Library
- H. Rubenstein and J. B. Goodenough. Contextual correlates of synonymy. Commun. ACM, 8(10):627--633, 1965. Google ScholarDigital Library
- D. Shepherd, J. Palm, L. Pollock, and M. Chu-Carroll. Timna: A framework for the combination of aspect mining analyses. In Technical Report, University of Delaware, November 2004.Google Scholar
- D. Shepherd and L. Pollock. Aspects, views, and interfaces. In Wkshp on Linking Aspect Technology and Evolution at AOSD, March 2005.Google Scholar
- I. Sun Microsystems. Pet Store Demo homepage, http://developer.java.sun.com/developer/releases/petstore/. (Febuary 1, 2005).Google Scholar
- P. Tarr, H. Ossher, W. Harrison, and J. Stanley M. Sutton. N degrees of separation: Multi-dimensional separation of concerns. In ICSE, 1999. Google ScholarDigital Library
- P. Tonella and M. Ceccato. Aspect mining through the formal concept analysis of execution traces. In Working Conf. on Reverse Eng., 2004. Google ScholarDigital Library
- T. Tourwé and K. Mens. Mining Aspectual Views using Formal Concept Analysis. In Int. Wkshp. on Source Code Analysis and Manipulation, pages 97 -- 106. IEEE Computer Society, 2004. Google ScholarDigital Library
- D. Tufis and O. Mason. Tagging romanian texts: a case study for qtag, a language independent probabilistic tagger.Google Scholar
- K. D. Volder and D. Janzen. Navigating and querying code without getting lost. In Aspect Oriented Software Development, 2003. Google ScholarDigital Library
- W. Zhao, L. Zhang, Y. Liu, J. Sun, and F. Yang. Sniafl: Towards a static non-interactive approach to feature location. In ICSE '04: Proceedings of the 26th International Conference on Software Engineering, pages 293--303, Washington, DC, USA, 2004. IEEE Computer Society. Google ScholarDigital Library
Index Terms
- Using language clues to discover crosscutting concerns
Recommendations
Using language clues to discover crosscutting concerns
MACS '05: Proceedings of the 2005 workshop on Modeling and analysis of concerns in softwareResearchers have developed ways to describe a concern, to store a concern, and even to keep a concern's code quickly available while updating it. Work on identifying concerns (semi-)automatically, however, has yet to gain attention and practical use, ...
Sort-based refactoring of crosscutting concerns to aspects
LATE '08: Proceedings of the 2008 AOSD workshop on Linking aspect technology and evolutionCrosscutting concerns in object-oriented programming hinder evolution because of their symptoms: tangling and scattering. To benefit from the modularisation capabilities for crosscutting concerns provided by aspect-oriented programming (which prevent ...
Comments