ABSTRACT
It is now a common approach pursued by programmers to develop new software systems using Object-Oriented Application Frameworks such as Spring, Struts and, Eclipse. This improves the quality and the maintainability of the code. Furthermore, it reduces development cost and time. However, the main problem is that these frameworks usually have a complicated Application Programming Interface (API), and typically suffer from the lack of enough documentation and appropriate user manuals. To solve these problems, programmers often refer to existing sample applications of those frameworks to learn how to implement the desired functionality in their own code. This is called the Monkey See, Monkey Do rule in software engineering literature. The aim of this paper is to investigate and analyze the activities programmers perform to achieve a successful use of this rule. The results of this analysis will help us to build automated tools which are helpful for programmers while perusing the aforementioned Monkey See, Monkey Do rule.
- J. Brandt, P. J. Guo, J. Lewenstein, M. Dontcheva, and S. R. Klemmer. Two studies of opportunistic programming: Interleaving web foraging, learning, and writing code. In Proceedings of the SIGHCI Conference on Human Factors in Computing Systems. ACM, 2009. Google ScholarDigital Library
- G. Butler. Object-oriented frameworks. In Proceedings of the 15th European Conference on Object-Oriented Programming, 2001.Google Scholar
- B. Dagenais and M. P. Robillard. Recovering traceability links between an API and its learning resources. In Proceedings of the 34th International Conference on Software Engineering. IEEE, 2012. Google ScholarDigital Library
- L. P. Deutsch. Reusability in the smalltalk-80 programming system. IEEE Tutorial on Software Reusability, 1987.Google Scholar
- E. Duala-Ekoko and M. P. Robillard. Asking and answering questions about unfamiliar APIs: An exploratory study. In Proceedings of the 2012 International Conference on Software Engineering. IEEE, 2012. Google ScholarDigital Library
- E. Gamma and K. Beck. Contributing to Eclipse: Principles, Patterns, and Plugins. Addison-Wesley Professional, 2004. Google ScholarDigital Library
- B. Hartmann, M. Dhillon, and M. K. Chan. HyperSource: Bridging the gap between source and code-related web sites. In Proceedings of the SIGHCI Conference on Human Factors in Computing Systems. ACM, 2011. Google ScholarDigital Library
- A. Heydarnoori, K. Czarnecki, W. Binder, and T. T. Bartolomei. Two studies of framework-usage templates extracted from dynamic traces. IEEE Transactions on Software Engineering, 38(6): 1464--1487, 2012. Google ScholarDigital Library
- D. Hou, J. Hoover, and C. Yin. The framework use problem: A preliminary study with GUI frameworks. In Proceedings of the 1st Midwest Software Engineering Conference, 2003.Google Scholar
- M. P. Robillard. What makes APIs hard to learn? answers from developers. IEEE Software, 26(6): 27--34, 2009. Google ScholarDigital Library
- J. Sillito, G. C. Murphy, and K. D. Volder. Asking and answering questions during a programming change task. IEEE Transactions on Software Engineering, 34(4): 434--451, 2008. Google ScholarDigital Library
- J. Viljamaa. Reverse engineering framework reuse interfaces. ACM SIGSOFT Software Engineering Notes, 28(5): 217--226, 2003. Google ScholarDigital Library
- A. T. Ying and M. P. Robillard. The influence of the task on programmer behaviour. In Proceedings of the 19th International Conference on Program Comprehension. IEEE, 2011. Google ScholarDigital Library
Index Terms
- Activities performed by programmers while using framework examples as a guide
Recommendations
What Is Object-Oriented Programming?
The meaning of the term 'object oriented' is examined in the context of the general-purpose programming language C++. This choice is made partly to introduce C++ and partly because C++ is one of the few languages that supports data abstraction, object-...
Use of problem-solving approach to teach scratch programming for adult novice programmers (abstract only)
SIGCSE '14: Proceedings of the 45th ACM technical symposium on Computer science educationNovice programmers usually fail to combine abstract concepts and knowledge into program design, even though they know the syntax and semantics of individual statement. Adult novice programmers with little computer background knowledge might face more ...
Comments