Business objects in corporate information systems
ACM Computing Surveys (CSUR)
Navigating and querying code without getting lost
Proceedings of the 2nd international conference on Aspect-oriented software development
FEAT: a tool for locating, describing, and analyzing concerns in source code
Proceedings of the 25th International Conference on Software Engineering
Mylar: a degree-of-interest model for IDEs
Proceedings of the 4th international conference on Aspect-oriented software development
NavTracks: Supporting Navigation in Software Maintenance
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
Easing Program Comprehension by Sharing Navigation Data
VLHCC '05 Proceedings of the 2005 IEEE Symposium on Visual Languages and Human-Centric Computing
Mica: A Web-Search Tool for Finding API Components and Examples
VLHCC '06 Proceedings of the Visual Languages and Human-Centric Computing
Improving API documentation usability with knowledge pushing
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
How Software Developers Use Tagging to Support Reminding and Refinding
IEEE Transactions on Software Engineering
Learning from examples to improve code completion systems
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
SmartGroups: Focusing on Task-Relevant Source Artifacts in IDEs
ICPC '11 Proceedings of the 2011 IEEE 19th International Conference on Program Comprehension
Collective Code Bookmarks for Program Comprehension
ICPC '11 Proceedings of the 2011 IEEE 19th International Conference on Program Comprehension
Hi-index | 0.00 |
Modern software applications typically consist of several logical layers (for example user interface, databases, business process, code, etc.). Software is usually delivered by a software provider to support a certain application domain through a set of predefined functionalities. A user acquiring the software can obtain extra functionalities through extensions. Extensions can be developed by the software provider, by the customer, or a third-party and then integrated with the core software. In order to enable core software for accommodating extensions, software providers must give the right means for enabling developers to build extensions. Based on the new functionalities required, developers building extensions usually consider different layers of the core software when developing extensions. For example, a simple user interface extension in a business application would need a developer to consider extensible artifacts from underlying user interfaces, business processes, databases, and code. Usually a developer relies on code based artifacts, documentation, examples, and/or training in order to be able to understand the extensibility model of a core application. Various program comprehension tools have helped developers in carrying out general development tasks. However, most of the tools focus on the code level, lack the support for multilayered applications, and do not support extensibility. In this paper we discuss the challenges and problems of the developers when building extensions for multilayered applications. We also assess the feasibility of several program comprehension tools in addressing these challenges.