Sourcing Source Code - A Review
|
|
|
- Ronald Moody
- 5 years ago
- Views:
Transcription
1 Archetypal Source Code Searches: A Survey of Software Developers and Maintainers Susan Elliott Sim Charles L.A. Clarke Richard C. Holt Dept. of Computer Science Dept. of Elec. and Comp. Engineering Dept. of Computer Science University of Toronto University of Toronto University of Waterloo Toronto, Ontario, Toronto, Ontario Waterloo, Ontario, Canada M5S 3G4 Canada M5S 3G4 Canada N2L 3G1 [email protected] [email protected] [email protected] Abstract In this study, we conducted a survey to generate archetypes of source code searching by programmers across maintenance tasks. Using a questionnaire on a web page, we obtained 69 responses from readers of 7 newsgroups. Respondents were asked about their source code searching habits: what tools they used, why they searched, and what they searched for. The four most common search targets were function definitions, all uses of a function, variable definitions, and all uses of a variable. The most common search motivations were defect repair, code reuse, program understanding, feature addition, and impact analysis. Eleven archetypes were generated from the anecdotes and results. The implications and practical applications of these findings and method are discussed. 1. Introduction Searching source code is an essential part of many software maintenance tasks. The structure of source code is not conducive to being read in a linear fashion. Furthermore, it is often infeasible to read the entire source code of many large pieces of software. Consequently, programmers must read selectively, which means identifying the parts of the source relevant to the task at hand. When repairing a defect, the location of the error must be found. When reusing a function, its declaration must be found, so that it can be invoked with the right parameters. When learning about a program the flow of control needs to be followed, which means jumping from one function definition to another. In the past, research in program comprehension has focussed on a specific development or maintenance task. These studies looked at the construction of mental models in program understanding [3, 10, 14], program maintenance [9], and defect repair strategies and behaviour [5, 8]. Searching is an integral part of models of these activities. Over several studies and different measures, Singer et al. found that searching was the most common activity for software engineers [12]. Aside from this work, there has been little research solely on searching. In contrast, one field of computing that has looked at searching behaviour extensively is information retrieval. Researchers in this area have developed detailed theories and models of search strategies [1, 2]. With the accumulation of this body of research, it has become apparent that a study specifically on searching would yield results applicable in many areas of program comprehension. Singer et al. have used their results to inform their design and implementation of a source code searching tool [12]. This study followed a similar line of inquiry, but used a different approach which is reflected in the method and level of analysis. In this study, we conducted a questionnaire-based survey of software developers and maintainers contacted using availability sampling over the Internet. The form of this study was based on one by Eisenstadt in which the author posted to various online fora requesting anecdotes of particularly thorny bugs in LARGE pieces of software, so he could characterize why some bugs were more difficult to repair than others [5]. Respondents from a number of electronic conferences and USENET newsgroups provided anecdotes of defects and the author was able to find systematic trends in their responses. In our study, we asked readers of various newsgroups to tell us about their source code searching activities. An implication of our approach was a shift in emphasis from a particular maintenance task to a constituent activity. Previous work tended to study a small number of subjects intensively while doing a task. This study surveyed a large number of respondents about their searching behaviour, without delving into the cognitive aspects of the activity. We investigated source code searching specifically, as it occurred across maintenance activities.
2 1.1. Objectives There were two objectives in this study. The primary objective was to understand how and why programmers searched source code. We asked about the tools they used and situations in which they searched source code. Qualitative and quantitative data from participants were used to construct a model of searching behaviours. Anecdotes of the situations were used to develop a series of archetypes of source code searching. An archetype is a concept from literary theory. It serves to unify recurring images across literary works with a similar structure [7]. In the context of source code searching, an archetype is a theory to unify and integrate typical or recurring searches. As with literature, a set of them will be necessary to characterize the range of searching anecdotes. The secondary objective was to determine the efficacy of using a web-based questionnaire to survey programmers. Surveying is a method often used in the social sciences to collect data in a structured or systematic manner [4]. The methods in this study were similar to those used in Eisenstadt [7]. The method is further described in Section 2, and the results are presented in Section 3. In Section 4, archetypal and uncommon search situations are presented. The paper concludes with summary of the results and an exploration of future work in Section Method Fields such as sociology, political science, and market research use surveys to study a particular phenomenon. Normally, a survey is used to collect primarily quantitative data from a large number of respondents. Data gathering techniques include face-to-face interviews, telephone interviews, self-administered questionnaires, or archival research [6]. Regardless of how data is gathered, there are five steps in performing a survey, each corresponding to subsections 2.1 to Formulate Research Questions In this study, we wanted to understand how and why programmers searched source code. The three questions that we wanted to answer in this study were: What tools do programmers use to search code? What do they look for when searching source? Which tasks require them to perform a search? The tools currently used for searching provide role models for future tool development, and their shortcomings suggest areas for improvement. The targets and motivations for searches indicate some of the functionality required in such a tool Answers to the last two questions were given in anecdotes, so analysis of this data resulted in a set of archetypes to further inform tool design Create a Data Gathering Instrument A questionnaire was selected to be the data gathering instrument because we wanted to collect information from a large number of respondents, many of whom we would not be able to contact personally. The questionnaire consisted of two World Wide Web pages. The first was an introductory page with an explanation of the purpose of the survey and the rights of the participants. A link at the bottom of the page led to the actual survey. This two page format was used to encourage respondents to read this preamble before beginning the survey. The introduction had two parts, each fulfilling a distinct aim: a purpose statement motivated participants to give thoughtful responses to all the questions; and the statement of participant rights informed respondents of their rights according to standard ethics procedures [4, 6]. The questions and their wordings were tested in a pilot study of six respondents. These respondents were contacted by personal and they were later debriefed, again by . Our experiences from the pilot study are reflected in the final text of the survey. Data from the pilot study was not included in the analysis of the main survey. The text of the survey is found in Appendix A. In the final version, there were six multiple choice and two open-ended questions. The remaining materials are available at: Define the Population and Sampling Method The population of interest for the survey was loosely defined, so a random sampling method could not be used. The population was any programmer who had worked with relatively large pieces of existing source code. Due to a lack of demographic information it was difficult to operationalize this definition. It was not possible to enumerate the population and randomly select participants. Consequently, availability sampling, also known as convenience sampling, was chosen. Normally, this method is used only in exploratory studies. Availability sampling operates by publicly soliciting volunteers to participate in the study. The main drawback of this technique is that the sample does not represent the population of interest, in this case developers of large systems. However, had another sampling method been used, it still would be difficult to generalize from the results. Since the study was exploratory in nature and its goal was to build a model of source code searching,
3 availability sampling was adequate for the task Administer the Survey The pages were published on a web site and participants were solicited from eight USENET newsgroups. Messages were posted to: comp.lang.c.moderated, comp.lang.c++.moderated, comp.lang.java.programmer, comp.lang.smalltalk, comp.lang.lisp, comp.lang.fortran, comp.softwareeng and comp.lang.cobol. The same message was reposted one week later with an additional paragraph at the beginning. There were no participants from comp.lang.c++.moderated because requests for participation were filtered out by the moderator. All of the data were collected within a four week period Analyze the Data Coding is the process of assigning values to variables to represent each respondent. In the analysis of the six multiple choice questions, the variables were scalar, such as counts and ratings. For the two free-form responses, the variables were qualitative, meaning their values were text descriptions or lists. These variables were analyzed by grouping similar responses together. The anecdotes were coded using qualitative data analysis techniques in several iterations [11]. Coding of situations is described in greater detail in Section During this process, we used grounded analysis; categorization of search situations was driven by the data, rather than a theory of how a task is performed [13]. 3. Results Sixty-nine respondents provided description of 111 search scenarios and 207 suggestions for features. Overall, the quality of the results was good; only a small number of respondents did not answer every question on the questionnaire. Most of the responses were in point form, but their thoroughness often compensated for the lack of formality, while others were long, spanning more than a page. Some responses were humorous, for instance, Show me the location of the next error I should fix :-). The origin of the participants are discussed in Section 3.1 and the tools they used are in Section 3.2. The anecdotes that they provided about their source code searches are described in Section 3.3. Where results are presented the data given in brackets are counts, except where noted Participants The sixty-nine participants who submitted questionnaires came from a variety of newsgroups and domains. Their origins by newsgroup are in Table 1. Table 1: Origin of Participants By Newsgroup Newsgroup Number of Respondents comp.lang.c.moderated 28 comp.lang.lisp 12 comp.software-eng 7 comp.lang.fortran 7 comp.lang.cobol 5 comp.lang.java.programmer 4 comp.lang.smalltalk 3 unknown 3 Total 69 Forty-five respondents were willing to participate in future studies and consequently gave their addresses. Their address domains indicated more than two-thirds of them were from commercial and government domains. The distribution of participants by domain name is in Table 2. Table 2: Origin of Participants by Domain Domain Number com, gov, co.uk 26 net, org 5 edu, ac.uk 6 other 8 Total Tools Used There was a multiple choice question on the tools that respondents used to search source code. The available choices are shown in Table 3. In addition, a fill-in box was provided for tools that fell into the other category. Participants generally relied on standard tools. The utility grep performs regular expression matching over files and the category included its variants. The find tool, in basic form, searches for file names. All but one respondent (68) used either an editor or IDE (integrated development environment) to search source code, yet a large number of them used other tools as well. Table 3: Tools Used Tools Used Number editor 57 grep 47 find or File Find 38 other 38 IDE 26 In the fill-in box for the other category, a total of nineteen different tools were mentioned. The tools mentioned are in Table 4. Some participants entered more than one tool. If a tool was mentioned in the anecdotes that was not on the list of other tools, then it was also added.
4 Table 4: "Other" tools used Tool Number tagging utilities 11 scripts 7 proprietary source browsers 6 language environments 5 xref 4 miscellaneous 10 Included in the category of tagging utilities, were etags, ctags, and ftags. Scripts denotes any shell scripts, Perl or awk programs, and batch files. Proprietary source browsers included tools that were sold for the purpose of source browsing, such as Cygnus Source Navigator, SoftBench, and tools that were bundled with third party libraries. Smalltalk and Lisp programming environments were included in language environments. These tools were included in this category rather than IDE because they incorporate a number of elements that are tightly integrated with the language and run-time environment. The UNIX tool, xref, builds a crossreferencing index of functions and variables. The last category included Norton Text Search, javadoc, the compiler, and my brain Situations We received 111 anecdotes of search situations. All but four(65) respondents provided an anecdote. They ranged in length from a single line to more than a page. Figure 1 is a typical anecdote of a situation that required source code to be searched. In this section, the results of analyzing the anecdotes are presented. First, the search targets and the motivations for searching are discussed. In Section 4, the relationships between these two dimensions are examined to formulate searching archetypes. I needed to understand old spaghetti code which used global variables for everything. Say there was a variable 'foo' which stored a critical value. I'd grep for reads and writes to this variable, to see which functions were involved in creating and using this value. I'd also search for it(in emacs) in a cross-reference listing to make sure I didn't miss some place. Figure 1: Example of Scenario Anecdote Coding. Anecdotes were categorized along two orthogonal dimensions: the specific search target and the motivation for the search. Search targets tended to be quite easy to categorize, whereas motivations required stricter rules. Some responses had multiple search targets and motivations. In Figure 1, the search targets were coded as function definition and all uses of a variable, and the motivation was coded as program understanding. The program understanding and maintenance categories were used as little as possible because it could be argued that all searches were performed for that purpose. In the example, a program understanding motivation was selected because the respondent gave no other explanation for why she was performing the search. The maintenance category was also used in a similar manner. The most specific motivation that was appropriate for the search was selected, based on the statements by the participant Search Targets. Within the 111 scenarios, 154 search targets and 94 motivations were identified. The four most common search targets were function definitions (26), all uses of a function (23), all uses of a variable (23), and variable definitions (19). Definitions are the portion of the source code that implements a function body or determines the type of a variable. Searches on functions, variables, and classes are summarized in Table 5. Further analysis of the searches on variables indicated that respondents were more interested in locations where a variable was written or assigned to (6) as opposed to simply read or referenced (1). Clearly, a piece of code that changes a variable has more potential problems than one that only reads it. Table 5: Summary of Common Searches: Numbers shown on table are counts of occurrences. Top four values are in bold. There were 154 total search targets in the data. Function Variable Class row total declaration definition use all uses column total Other common targets of searches were strings, either those output by the program or those in comments (10); and files where code was located (5). All searches for output strings coincided with a defect repair Motivations for Searching. The motivations for source code searching could be grouped into eleven categories. The categories and names are straightforward, with the exception of clean-up, and naming conflicts. These two categories will be discussed in greater detail and examples for each are provided. Clean-up occurs before a program is frozen for release. A programmer may hard-code some strings during development, or leave notes to herself in the code. These items are removed before the code is shipped. A naming conflict occurs if a new function, variable, or class uses an existing identifier. A developer searches the code to ensure a proposed identifier is safe.
5 Percentage NR Design New code Testing PU Repair Feature Perf. Development Task Imp. Inspect Write doc Maint. doc Figure 2: Usefulness of Searching Source Code by Task: This histogram shows the distribution of ratings for each development task. A bar shows the percentage of respondents giving that rating for a task. The tasks are low-level design, writing new code, testing, program understanding, repairing a defect, adding a new feature, improving performance, code inspection, writing documentation and maintaining documentation. Table 6: Summary of Motivations for Searching Motivation Number defect repair 19 code reuse 14 program understanding 13 impact analysis 12 maintenance 7 feature addition 7 clean-up 5 naming conflicts 4 porting 3 dead code elimination 3 other 7 Total 94 The four most common motives for searching source code were defect repair (19), code reuse (14), program understanding (13), and impact analysis (12). The results of this analysis should be compared with those from question three of the survey. It asked, How useful is it to search source code when along with a list of ten activities from the software development cycle, and asked respondents to give a rating on a scale of one (low) to five (high). It was found that the tasks in which searching was most useful (median rating 5) were repairing bugs or defects, understanding old code, and adding a new feature to old software. The distribution of the ratings is presented in Figure 2. Further analysis yields some relationships between the motives for searching and the search targets. 4.Searching Archetypes Archetypes were generated by examining the search targets and motivations presented in the previous section for patterns. Common or frequently-occurring relationships between targets and motivations were identified as a pattern. Eleven archetypes are presented in this section, beginning with the strongest ones. Also presented in this section are uncommon searches because they complement the archetypes by capturing the additional variability. 4.1.Common Searches The pattern that emerged in the impact analysis category is the most definite. 1. During impact analysis, developers often looked for all uses of a variable or function. Of the twelve searches with this motivation, nine were for all uses of a function or variable. Impact analysis is usually done to evaluate a change to the software. The developer wants to make sure that she has not broken anything inadvertently, therefore checks all uses of the modified component. This relationship is credible not only because the underlying explanation is plausible, but also because the numbers in this category are consequential. In the program understanding category there were two main patterns of searching. 2. Searches motivated by program understanding sometimes sought function and variable definitions. 3. At other times, the search targets were a use of a function, variable or object. Of the thirteen searches performed for this purpose, five were looking for definitions of functions or variables, and five were looking for function or variable or object use. In the case of definitions, the maintainer was trying to determine the effect of a particular function call or the data type of a variable. In the case of the latter, she understood
6 the object, variable, or function, but wanted to know how it fit with the rest of the program. The code reuse category revealed two patterns of searches. 4. To reuse code, a programmer searched for function signatures to call it correctly. 5. Alternatively, a programmer searched for functionality that was known to exist, but the name may not have been known. Of the fourteen searches undertaken for the purpose of reusing code, seven were for function definitions and three for function declarations. When reusing code, one of two scenarios may occur: the developer knew the name of the function but needed to check the parameters in the declaration or definition; or the developer knew that code to perform a certain procedure existed, but was unsure of its name, so she performed a search. In the bug repair category, there were a large number of examples (19) with a variety of search targets. 6. Maintainers tackled bugs by identifying the function that was misbehaving. 7. Another approach was to track usage of a variable. 8. An output string served as the starting point for a bughunt. The three most common targets were function definitions (4), all uses of a variable (3), and output strings (3). The first pattern corresponds to a situation where a programmer knew that something was going wrong and was looking for the function responsible. Consequently, she looked at a lot of function implementations or definitions. The second archetype corresponds to a scenario where a maintainer knew a variable was set incorrectly during execution. In such a case, she looked at all uses of that variable to find the error. In the case of the third pattern, the programmer has received a bug report containing an error message. The search for the faulty code began by tracing how the message came to be printed. This pattern was particularly strong because all instances of searches for output strings were motivated by bug repairs. In the porting, feature addition, and dead code elimination categories, relationships were found, but due to the small number of anecdotes it is difficult to know how significant they are. 9. To eliminate dead code, a maintainer needed to find all uses of the entity being removed. In all of the dead code elimination searches(3), the targets were all uses of either a function (1) or a variable (2). In order to eliminate a variable or function, the maintainer has to make sure that it is either not used at all or used only in functions that will never be called. Therefore, she needs to be able to account for every use of that function or variable. This relationship is more credible than the others that have a small number of examples because its underlying explanation was present in the anecdotes and is highly plausible. 10. When porting code, developers often examined variables. In all of the porting examples (3), the respondent was looking for information about variables. In two cases, it was all uses of a variable, and in the third it was the variable definition. 11. When adding features, developers sometimes examine functions. In four of seven feature addition searches, the respondents were looking for information about functions. There were no clear patterns found among the searches in the clean-up, naming conflicts, and maintenance categories Uncommon Searches In this section, we present some of the unique situations described in the survey. These anecdotes are noteworthy because they illustrate issues that software maintainers deal with, but are not captured by the archetypes. We look at searches performed for preventative maintenance, code reuse, and testing. Although preventative maintenance is generally agreed to be a good idea, many software shops don t have time to do it. In the study, we received two anecdotes that described searches that were performed for that purpose on a small scale. Respondent 17 recalls an occasion when she discovered a variable had been used unsafely, she went through the source to verify that other uses of a variable were correct. Upon noting an unchecked strcpy() into a global char *, needing to locate the declaration for the variable to discover it's size and locate references to that variable to see if bounds checking was performed explicitly. Another application of preventative maintenance searching was described by respondent 66. She would look through the code for: mundane spell correction: how many ways did i spell one variable name by accident If an identifier is used only once, then it is likely an error. An unused variable can be caught by a compiler or interpreter if warning levels are set appropriately, but these
7 discrepancies can be a problem in languages that do not require variables to be declared before they are used. Respondent 23 adds the following example of searching in order to reuse code: It has also helped in the design phase to be able to find another program that was used for the same purpose and this helps others to develop their applications quicker. Rather than reusing code only during the implementation phase, her team builds this into the design. Here, the code is searched to make further development easier. It s not clear how the respondent performs these searches, but the possibilities are intriguing. The usefulness of searching during testing had a low ranking (fifth out of ten maintenance tasks), but a high rating (median of 4). An anecdote also from respondent 66 illustrates this finding: how many ifdef? where are they? used to figure out relevant test cases for ported code Hence, searching is probably not used during the actual testing of code itself, but in generating test cases. 5. Conclusion The primary purpose of this study was to characterize the source code searching behaviour for the purpose of constructing a tool to assist programmers. An understanding of the situations in which searching was performed can be used to determine the functionality of a search tool. The archetypes can be used to improve usability during design and tool validation. During the design phase, the tool can be applied to the situations described by the archetypes. During validation, the archetypes can be used to guide selection of tasks for usability testing. A set of uncommon searches was also identified to complement the archetypes in the model. Searching is an important part of many software maintenance tasks. We found that the tasks in which searching was most important were defect repair, code reuse, program understanding, feature addition, and impact analysis. The most common search targets were function definitions, all uses of a function, all uses of a variable, and variable definitions. The archetypes presented in this paper are preliminary in nature. They are the fruits of an exploratory study and still need to be validated. More needs to be known about the population of software developers and maintainers and the products they support in order to develop robust models. Much work remains to be done in the collection of demographic information about software engineering. The secondary purpose of this study was to determine the efficacy of our research method. We were able to obtain responses from respondents in different organizations from around the world, without the drawbacks of travelling. In many ways, web-based questionnaires are superior to their paper-based counterparts: the logistics of dealing with paper are eliminated; the researcher has greater control over the format and administration of the questionnaires; and the respondent submits the data in electronic form, which removes the need for transcription. We used availability sampling to obtain participants, a method that proved to be adequate for our goals. We plan to use the results of this study in two ways. In the development of a lightweight source code searching tool, we will use them to guide our design decisions. In future empirical studies, this study will serve as an example of how survey methods can be applied to software engineering. By expanding this knowledge, we can construct a body of knowledge about the population of software developers and maintainers, and thus increase the validity of our work. 6. Acknowledgments This research was generously supported by CSER (Consortium for Software Engineering Research) and CITO (Communication and Information Technology Ontario). 7. References [1] M.J. Bates. The Berry-picking Search: User Interface Design. in Interfaces for Information Retrieval and Online Search: The State of the Art edited by M. Dillon, Chapter 4, pages 55-61, Greenwood Press, (1991). [2] N.J. Belkin, C. Cool, A. Stein, and U. Thiel. Cases, Scripts, and Information-Seeking Strategies: On the Design of Interactive Information Retrieval Systems. Expert Systems With Applications, 9(3): , (1995). [3] R. Brooks. Towards a Theory of the Comprehension of Computer Programs. International Journal of Man-Machine Studies, 18: , (1993). [4] D.A. devaus. Surveys in Social Research, Fourth Edition. UCL Press, London, [5] M. Eisenstadt. My Hairiest Bug War Stories. Communications of the ACM, 40(4): 30-37, (1997). [6] W. Foddy Constructing Questions for Interviews and Questionnaires: Theory and Practice in Social
8 Research. Cambridge University Press, Cambridge, [7] N. Frye. Anatomy of Criticism: Four Essays. Princeton University Press, Princeton, [8] I.R. Katz and J.R. Anderson. Debugging: An Analysis of Bug-Location Strategies. Human-Computer Interaction, 3: , ( ). [9] A. Lakhotia. Understanding Someone Else s Code: Analysis of Experiences. Journal of Systems Software, 23: , (1993). [10] D.C Littman, J. Pinto, S. Letovsky, and E. Soloway. Mental Models and Software Maintenance. Empirical Studies of Programmers, First Workshop, pages 80-98, Washington DC, USA,1986. [11] M.B. Miles and A.M. Huberman. Qualitative Data Analysis: An Expanded Sourcebook, Second Edition. Sage Publications, Thousand Oaks, [12] J. Singer, T. Lethbridge, N. Vinson, and N. Anquetil. An Examination of Software Engineering Work Practices. In Proceedings of CASCON 97, pages , Toronto, Canada, [13] A. Strauss and J. Corbin. Basics of Qualitative Research: Grounded Theory Procedures and Techniques, Sage Publications, Thousand Oaks, [14] A. von Mayrhauser and A.M. Vans. From Code Understanding Needs to Reverse Engineering Tool Capabilities. Proceedings of the 6 th International Workshop on Computer Aided Software Engineering, pages , Piscataway, USA, APPENDIX A: Text of the Survey Question 1: Tools Used What tools do you use to search source code? Check all that apply. grep, fgrep, etc. [ ] find or "File Find" [ ] editor [ ] e.g. vi, emacs, edit integrated development environment [ ] e.g. MSDS other [ ] Please specify: Question 2: Program Analysis Tools Do you use an integrated software analysis and exploration tool? Two examples are SNiFF+ and CIA. Yes [ ] No [ ] Question 3: Development Activities Requiring Searching How useful is it to search source code when: Not at all useful Very useful doing low-level design? writing new code? testing? understanding old code? repairing bugs/defects? adding a new feature to old software? improving performance? inspecting and reviewing code? writing documentation? maintaining documentation? Question 4: Typical Usage Situations Describe one or more situations when you needed to search source code. What did you use to find it? What were you trying to find? Why did you need to find it? Question 5: Wish List What types of searches would you like to be able to perform? Question 6: Primary Responsibilities What are your primary job responsibilities? Check all that apply. Research [ ] Consulting [ ] Developing software for a customer [ ] Maintaining software for a customer [ ] Developing a software product [ ] Maintaining a software product [ ] Developing in-house software [ ] Maintaining in-house software [ ] Question 7: Time With Source Code Written By Others Of your total time spent working with source code, what percentage of that time is spent working on source code written by other people? 0-20% [ ] 21-40% [ ] 41-60% [ ] 61-80% [ ] % [ ] Question 8: Participation Where did you hear about this survey? (Please give the name of the newsgroup or sender.) Question 9: Future Studies Would you be willing to participate in future user studies of source code searching? No [ ] Yes [ ] If yes, please provide your address.
Archetypal Internet-Scale Source Code Searching
Archetypal Internet-Scale Source Code Searching Medha Umarji 1, Susan Elliott Sim 2, and Crista Lopes 2 1 University of Maryland Baltimore County, Department of Information Systems Baltimore, Maryland,
Errors in Operational Spreadsheets: A Review of the State of the Art
Errors in Operational Spreadsheets: A Review of the State of the Art Stephen G. Powell Tuck School of Business Dartmouth College [email protected] Kenneth R. Baker Tuck School of Business Dartmouth College
Studies in Software Companies
: Performing Field Studies in Software Companies Timothy C. Lethbridge University of Ottawa Susan Elliott Sim University of Toronto Janice Singer 1 National Research Council Canada 1 The authors appear
CHAPTER III METHODOLOGY. The purpose of this study was to describe which aspects of course design
CHAPTER III METHODOLOGY The purpose of this study was to describe which aspects of course design and/or instruction are more effective and successful in the online environment than in the face-to-face
Design and Testing of Effective Truth in Lending Disclosures
Design and Testing of Effective Truth in Lending Disclosures Findings from Experimental Study December 15, 2008 Submitted to: Board of Governors of the Federal Reserve System [Seal of the Board of Governors
ASSESSMENT CENTER FOR IDENTIFYING POTENTIAL PROJECT MANAGERS: A CHANCE FOR SYSTEMATIC HUMAN RESOURCE DEVELOPMENT
ASSESSMENT CENTER FOR IDENTIFYING POTENTIAL PROJECT MANAGERS: A CHANCE FOR SYSTEMATIC HUMAN RESOURCE DEVELOPMENT Dipl. Psych. Ingo Heyn, ALLIANZ LEBENSVERSICHERUNGS-AG, Germany, 1999 Paper for the 6th
Student Experiences in Credit Transfer at Ontario Colleges
Student Experiences in Credit Transfer at Ontario Colleges Summary Report Alex Usher Paul Jarvey Introduction Student pathways increasingly rely on transfer between postsecondary institutions as greater
Evaluating Survey Questions
Evaluating Survey What Respondents Do to Answer a Question Chase H. Harrison Ph.D. Program on Survey Research Harvard University Comprehend Question Retrieve Information from Memory Summarize Information
Study into the Sales of Add-on General Insurance Products
Study into the Sales of Add-on General Insurance Quantitative Consumer Research Report Prepared For: Financial Conduct Authority (FCA) March, 2014 Authorised Contact Persons Frances Green Research Director
(Refer Slide Time: 01:52)
Software Engineering Prof. N. L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture - 2 Introduction to Software Engineering Challenges, Process Models etc (Part 2) This
Open Source Announcement
Open Source Announcement A software component of this product incorporates source code covered under the GNU Lesser General Public License (LGPL). Acknowledgement: The software included in this product
UNIVERSITY OF WATERLOO Software Engineering. Analysis of Different High-Level Interface Options for the Automation Messaging Tool
UNIVERSITY OF WATERLOO Software Engineering Analysis of Different High-Level Interface Options for the Automation Messaging Tool Deloitte Inc. Toronto, ON M5K 1B9 Prepared By Matthew Stephan Student ID:
Exploiting Dynamic Information in IDEs Eases Software Maintenance
Exploiting Dynamic Information in IDEs Eases Software Maintenance David Röthlisberger Software Composition Group, University of Bern, Switzerland [email protected] Abstract The integrated development
MBA Dissertation Guidelines
Faculty of Economics, Management And Accountancy University of Malta MBA Dissertation Guidelines As part of the degree formation you are expected to present a dissertation project. This booklet contains
GNU LIBRARY GENERAL PUBLIC LICENSE. Preamble
GNU LIBRARY GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1991 Free Software Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA Everyone is permitted to copy and distribute
Verifying Business Processes Extracted from E-Commerce Systems Using Dynamic Analysis
Verifying Business Processes Extracted from E-Commerce Systems Using Dynamic Analysis Derek Foo 1, Jin Guo 2 and Ying Zou 1 Department of Electrical and Computer Engineering 1 School of Computing 2 Queen
Market Research: Friend or Foe to Christian Charities?
Market Research: Friend or Foe to Christian Charities? by Redina Kolaneci Senior Fundraising & Stewardship Consultant McConkey Johnston international UK If you are ignorant of yourself, in addition to
Comparing Recommendations Made by Online Systems and Friends
Comparing Recommendations Made by Online Systems and Friends Rashmi Sinha and Kirsten Swearingen SIMS, University of California Berkeley, CA 94720 {sinha, kirstens}@sims.berkeley.edu Abstract: The quality
Exploratory Testing Dynamics
Exploratory Testing Dynamics Created by James Bach, Jonathan Bach, and Michael Bolton 1 v2.2 Copyright 2005-2009, Satisfice, Inc. Exploratory testing is the opposite of scripted testing. Both scripted
HMRC Tax Credits Error and Fraud Additional Capacity Trial. Customer Experience Survey Report on Findings. HM Revenue and Customs Research Report 306
HMRC Tax Credits Error and Fraud Additional Capacity Trial Customer Experience Survey Report on Findings HM Revenue and Customs Research Report 306 TNS BMRB February2014 Crown Copyright 2014 JN119315 Disclaimer
Exploratory Testing Dynamics
Exploratory Testing Dynamics Created by James and Jonathan Bach 1 v1.6 Copyright 2005-2006, Satisfice, Inc. Exploratory testing is the opposite of scripted testing. Both scripted and exploratory testing
School Library Standards. for California Public Schools, Grades Nine through Twelve
School Library Standards for California Public Schools, Grades Nine through Twelve STANDARD 1 Students Access Information The student will access information by applying knowledge of the organization of
Assuming the Role of Systems Analyst & Analysis Alternatives
Assuming the Role of Systems Analyst & Analysis Alternatives Nature of Analysis Systems analysis and design is a systematic approach to identifying problems, opportunities, and objectives; analyzing the
In this Lecture you will Learn: Implementation. Software Implementation Tools. Software Implementation Tools
In this Lecture you will Learn: Implementation Chapter 19 About tools used in software implementation How to draw component diagrams How to draw deployment diagrams The tasks involved in testing a system
Change Management for Rational DOORS User s Guide
Change Management for Rational DOORS User s Guide Before using this information, read the general information under Appendix: Notices on page 58. This edition applies to Change Management for Rational
REPORT OF FINDINGS AUDIO ENHANCEMENT RESEARCH PROJECT DELPHI RESEARCH OF NEVADA, INC. For. The Research and Evaluation Department
AUDIO ENHANCEMENT RESEARCH PROJECT For The Research and Evaluation Department Clark County School District April 2005 EXECUTIVE SUMMARY The Clark County School District (CCSD, District) is currently using
A Brief Look at Online Tutorial Experiences of Older Students in Remedial College Mathematics
A Brief Look at Online Tutorial Experiences of Older Students in Remedial College Mathematics Greg A. Baugher Instructor and Doctoral Student Mercer University, Georgia USA [email protected] Abstract
REGULATIONS AND CURRICULUM FOR THE MASTER S PROGRAMME IN INFORMATION ARCHITECTURE FACULTY OF HUMANITIES AALBORG UNIVERSITY
REGULATIONS AND CURRICULUM FOR THE MASTER S PROGRAMME IN INFORMATION ARCHITECTURE FACULTY OF HUMANITIES AALBORG UNIVERSITY SEPTEMBER 2015 Indhold PART 1... 4 PRELIMINARY REGULATIONS... 4 Section 1 Legal
An activity-based analysis of hands-on practice methods
Journal of Computer Assisted Learning (2000) 16, 358-365 An activity-based analysis of hands-on practice methods S. Wiedenbeck, J.A. Zavala & J. Nawyn University of Nebraska Abstract The success of exploration-based
Developing for the App Store. (Legacy)
Developing for the App Store (Legacy) Contents About the Application Development Process 5 At a Glance 5 Developing for Apple s Platforms Is a Mix of Administrative and Coding Tasks 5 Apps Published on
DCOM 131-01. Group Project 2: Usability Testing. Usability Test Report. Tim Harris, Zach Beidler, Sara Urner, Kacey Musselman
0 DCOM 131-01 Group Project 2: Usability Testing Usability Test Report Tim Harris, Zach Beidler, Sara Urner, Kacey Musselman 1 Table of Contents Introduction... 2 Purpose... 2 Heuristic... 3 Participants...
REQUIREMENTS FOR THE MASTER THESIS IN INNOVATION AND TECHNOLOGY MANAGEMENT PROGRAM
APPROVED BY Protocol No. 18-02-2016 Of 18 February 2016 of the Studies Commission meeting REQUIREMENTS FOR THE MASTER THESIS IN INNOVATION AND TECHNOLOGY MANAGEMENT PROGRAM Vilnius 2016-2017 1 P a g e
How Programmers Use Internet Resources to Aid Programming
How Programmers Use Internet Resources to Aid Programming Jeffrey Stylos Brad A. Myers Computer Science Department and Human-Computer Interaction Institute Carnegie Mellon University 5000 Forbes Ave Pittsburgh,
Browsing and Searching Software Architectures
Proceedings of the International Conference on Software Maintenance, Oxford, England, pp. 381-390, 30 August- 3 September, 1999. Browsing and Searching Software Architectures Susan Elliott Sim Charles
NRC Publications Archive Archives des publications du CNRC
NRC Publications Archive Archives des publications du CNRC An Examination of Software Engineering Work Practices Singer, Janice; Lethbridge, T.; Vinson, Norman; Anquetil, N. NRC Publications Record / Notice
Qualitative methods for effectiveness evaluation: When numbers are not enough
Chapter 7 Qualitative methods for effectiveness evaluation: When numbers are not enough 7.1 Introduction 7.2 Methods of collecting qualitative information 7.2.1 Interviews and focus groups 7.2.2 Questionnaires
Introduction. RGF Research Guide Page 2/7
RGF Research Guide Introduction The Responsible Gaming Principles state that WLA members will develop their practices concerning responsible gaming-related issues on the fullest possible understanding
Evaluating a new programming language
In G. Kadoda (Ed). Proc. PPIG 13 Pages 275-289 Evaluating a new programming language Steven Clarke Microsoft Corporation 1 Microsoft Way Redmond, WA 98052 USA +1 425 705 5978 [email protected] Keywords:
BENCHMARKING IN HUMAN RESOURCES
Introduction BENCHMARKING IN HUMAN RESOURCES By Jeannette Swist, CMC, SPHR November 2002 Benchmarking is an organizational change process directed toward continuous improvement. It is a search for best
www.doncaster.gov.uk
Market Research It is essential that market research is undertaken to establish there is a need for childcare within a specified area and have knowledge of the local community that a business wishes to
QUALITATIVE RESEARCH. [Adapted from a presentation by Jan Anderson, University of Teesside, UK]
QUALITATIVE RESEARCH [Adapted from a presentation by Jan Anderson, University of Teesside, UK] QUALITATIVE RESEARCH There have been many debates around what actually constitutes qualitative research whether
17% of cell phone owners do most of their online browsing on their phone, rather than a computer or other device
JUNE 26, 2012 17% of cell phone owners do most of their online browsing on their phone, rather than a computer or other device Most do so for convenience, but for some their phone is their only option
Review Protocol Agile Software Development
Review Protocol Agile Software Development Tore Dybå 1. Background The concept of Agile Software Development has sparked a lot of interest in both industry and academia. Advocates of agile methods consider
Chapter 3 ADDRESS BOOK, CONTACTS, AND DISTRIBUTION LISTS
Chapter 3 ADDRESS BOOK, CONTACTS, AND DISTRIBUTION LISTS 03Archer.indd 71 8/4/05 9:13:59 AM Address Book 3.1 What Is the Address Book The Address Book in Outlook is actually a collection of address books
(Refer Slide Time 00:56)
Software Engineering Prof.N. L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture-12 Data Modelling- ER diagrams, Mapping to relational model (Part -II) We will continue
Testing. Chapter. A Fresh Graduate s Guide to Software Development Tools and Technologies. CHAPTER AUTHORS Michael Atmadja Zhang Shuai Richard
A Fresh Graduate s Guide to Software Development Tools and Technologies Chapter 3 Testing CHAPTER AUTHORS Michael Atmadja Zhang Shuai Richard PREVIOUS CONTRIBUTORS : Ang Jin Juan Gabriel; Chen Shenglong
A QUICK OVERVIEW OF THE OMNeT++ IDE
Introduction A QUICK OVERVIEW OF THE OMNeT++ IDE The OMNeT++ 4.x Integrated Development Environment is based on the Eclipse platform, and extends it with new editors, views, wizards, and additional functionality.
Development of a Tablet-PC-based System to Increase Instructor-Student Classroom Interactions and Student Learning
Development of a Tablet-PC-based System to Increase Instructor-Student Classroom Interactions and Student Learning Kimberle Koile David Singer MIT CS and AI Lab MIT Dept of Brain and Cognitive Science
How do I: Conduct Market Research?
How do I: Conduct Market Research? Think the business needs some market research and not sure how to go about it? This guide will help you quickly answer these, understand the task ahead, its key elements
Sona Systems, Ltd. EXPERIMENT MANAGEMENT SYSTEM Master Documentation Set
Sona Systems, Ltd. EXPERIMENT MANAGEMENT SYSTEM Master Documentation Set Version 2.74 Copyright 2010 Sona Systems, Ltd., All Rights Reserved About This Manual This manual covers usage of the system from
The Effects of ALA Accreditation Standards on Library Education Programs Accredited by the American Library Association
The Effects of ALA Accreditation Standards on Library Education Programs Accredited by the American Library Association Michael E. Mounce Assistant Professor Delta State University Contact Information:
Key Factors for Developing a Successful E-commerce Website
IBIMA Publishing Communications of the IBIMA http://www.ibimapublishing.com/journals/cibima/cibima.html Vol. 2010 (2010), Article ID 763461, 9 pages Key Factors for Developing a Successful E-commerce Website
Intercoder reliability for qualitative research
Intercoder reliability for qualitative research You win some, but do you lose some as well? TRAIL Research School, October 2012 Authors Niek Mouter, MSc and Diana Vonk Noordegraaf, MSc Faculty of Technology,
Industry Services Quality Management System
Industry Services Quality Management System Canadian Grain Commission Audit & Evaluation Services Final report March, 2012 Table of contents 1.0 Executive summary...2 Authority for audit... 2 Background...
Outlook 2007 - Exchange
Information Technology MS Office Outlook 2007 Users Guide Outlook 2007 - Exchange Mail, Calendar, Contacts, Notes & Tasks Folders IT Training & Development 677-1700 [email protected] TABLE OF CONTENTS
Analyzing Research Articles: A Guide for Readers and Writers 1. Sam Mathews, Ph.D. Department of Psychology The University of West Florida
Analyzing Research Articles: A Guide for Readers and Writers 1 Sam Mathews, Ph.D. Department of Psychology The University of West Florida The critical reader of a research report expects the writer to
ONLINE LEARNING AND COPING STRATEGIES. Marcela Jonas, University of the Fraser Valley, Canada
ONLINE LEARNING AND COPING STRATEGIES Marcela Jonas, University of the Fraser Valley, Canada Summary The goal of this case study is to contrast two types of students: native and non-native speakers of
Online Collection of Midterm Student Feedback
9 Evaluation Online offers a variety of options to faculty who want to solicit formative feedback electronically. Researchers interviewed faculty who have used this system for midterm student evaluation.
KNOWLEDGE AND EDUCATION NURSING PRACTICE EXECUTIVE SUMMARY AT ENTRY TO IN ALBERTA
KNOWLEDGE AND EDUCATION AT ENTRY TO NURSING PRACTICE IN ALBERTA EXECUTIVE SUMMARY DECEMBER 2009 Knowledge and Education Project Steering Committee The Steering Committee directing this project was made
Organizing Your Approach to a Data Analysis
Biost/Stat 578 B: Data Analysis Emerson, September 29, 2003 Handout #1 Organizing Your Approach to a Data Analysis The general theme should be to maximize thinking about the data analysis and to minimize
ChangeIt Privacy Policy - Canada
ChangeIt Privacy Policy - Canada 1. Policy on Privacy of Personal Information Formulating Change Inc. ( FCI, we, us or our ) is committed to protecting the privacy and security of your Personal Information
User experience prototype requirements PROJECT MANAGEMENT PLAN
Tallinn University Institute of Informatics User experience prototype requirements PROJECT MANAGEMENT PLAN Authors Roger Puks Erkki Saarnit Ekaterina Shafeeva Maria Angelica Medina Angarita Lecturer Peeter
Tracking Survey of Graduates from Self-financed Associate Degree & Higher Diploma Programmes of 2005 and 2006 Cohorts SURVEY REPORT
JOINT QUALITY REVIEW COMMITTEE Tracking Survey of Graduates from Self-financed Associate Degree & Higher Diploma Programmes of 2005 and 2006 Cohorts SURVEY REPORT June 2009 Content 1. EXECUTIVE SUMMARY....
Fan Fu. Usability Testing of Cloud File Storage Systems. A Master s Paper for the M.S. in I.S. degree. April, 2013. 70 pages. Advisor: Robert Capra
Fan Fu. Usability Testing of Cloud File Storage Systems. A Master s Paper for the M.S. in I.S. degree. April, 2013. 70 pages. Advisor: Robert Capra This paper presents the results of a usability test involving
Secondary Data Analysis: A Method of which the Time Has Come
Qualitative and Quantitative Methods in Libraries (QQML) 3:619 626, 2014 Secondary Data Analysis: A Method of which the Time Has Come Melissa P. Johnston, PhD School of Library and Information Studies,
MITRE Baseline Configuration System Implementation Plan
MITRE Baseline Configuration System Implementation Plan FINAL REVISION, October 8, 2008 Purdue University, CS 307, Fall 2008 Team MITRE: Catherine Brown Michael Dunn Mark Nowicki David Tittle TABLE OF
Fixed Odds Betting Terminals and the Code of Practice. A report for the Association of British Bookmakers Limited SUMMARY ONLY
Fixed Odds Betting Terminals and the Code of Practice A report for the Association of British Bookmakers Limited SUMMARY ONLY Europe Economics Chancery House 53-64 Chancery Lane London WC2A 1QU Tel: (+44)
Configuration Manager
After you have installed Unified Intelligent Contact Management (Unified ICM) and have it running, use the to view and update the configuration information in the Unified ICM database. The configuration
i-spy: an information skills framework for the University of Hertfordshire
i-spy: an information skills framework for the University of Hertfordshire Jane Bilson Tel: 01707 285747 E-mail: [email protected] Monica Rivers-Latham Tel: 01707 284725 E-mail: m.j.rivers-latham@ herts.ac.uk
Considering the Cultural Issues of Web Design in Implementing Web-Based E-Commerce for International Customers
Considering the Cultural Issues of Web Design in Implementing Web-Based E-Commerce for International Customers Kyeong. S. Kang The First International Conference on Electronic Business, Faculty of Information
Characteristics of Effective and Sustainable Teaching Development Programs for Quality Teaching in Higher Education
Characteristics of Effective and Sustainable Teaching Development Programs for Quality Teaching in Higher Education This presentation will address the following conference aim/question: What are the contextual
Data Coding and Entry Lessons Learned
Chapter 7 Data Coding and Entry Lessons Learned Pércsich Richárd Introduction In this chapter we give an overview of the process of coding and entry of the 1999 pilot test data for the English examination
Complementary perspectives in the value chain on ERP system implementation
Complementary perspectives in the value chain on ERP system implementation Philip Holst, [email protected], Center for Applied ICT (CAICT), CBS Janni Nielsen, [email protected], Center for Applied ICT (CAICT),
Running head: RESEARCH PROPOSAL GUIDELINES: APA STYLE. APA Style: An Example Outline of a Research Proposal. Your Name
Research Proposal Guidelines: APA Style - 1 Running head: RESEARCH PROPOSAL GUIDELINES: APA STYLE APA Style: An Example Outline of a Research Proposal Your Name School of Health & Applied Human Sciences
Comparing Methods to Identify Defect Reports in a Change Management Database
Comparing Methods to Identify Defect Reports in a Change Management Database Elaine J. Weyuker, Thomas J. Ostrand AT&T Labs - Research 180 Park Avenue Florham Park, NJ 07932 (weyuker,ostrand)@research.att.com
DATA COLLECTION TECHNIQUES
DATA COLLECTION TECHNIQUES Kongmany Chaleunvong GFMER - WHO - UNFPA - LAO PDR Training Course in Reproductive Health Research Vientiane, 25 September 2009 1 OBJECTIVES At the end of this session you should
Market Validation. 10% of the expected cost of developing the product. Two day triage of your idea to determine if more time and effort is required.
Market Validation 1. Definition Market Validation is a process applied to the unstructured, serendipitous task of doing a complete evaluation of the market for a product before the product is built. Rob
>> My name is Danielle Anguiano and I am a tutor of the Writing Center which is just outside these doors within the Student Learning Center.
>> My name is Danielle Anguiano and I am a tutor of the Writing Center which is just outside these doors within the Student Learning Center. Have any of you been to the Writing Center before? A couple
Qualitative data acquisition methods (e.g. Interviews and observations) -.
Qualitative data acquisition methods (e.g. Interviews and observations) -. Qualitative data acquisition methods (e.g. Interviews and observations) ( version 0.9, 1/4/05 ) Code: data-quali Daniel K. Schneider,
Unleash the Power of e-learning
Unleash the Power of e-learning Version 1.5 November 2011 Edition 2002-2011 Page2 Table of Contents ADMINISTRATOR MENU... 3 USER ACCOUNTS... 4 CREATING USER ACCOUNTS... 4 MODIFYING USER ACCOUNTS... 7 DELETING
Audit of Contract Management Practices in the Common Administrative Services Directorate (CASD)
Audit of Contract Management Practices in the Common Administrative Services Directorate (CASD) AUDIT REPORT Prepared for NSERC (Natural Sciences and Engineering Research Council) and SSHRC (Social Science
Module 3. Ways of Finding Answers to Research Questions
Module 3 Ways of Finding Answers to Research Questions Module 3: Ways of Finding Answers to Research Questions 3: 1 Module 3: Ways of Finding Answers to Research Questions (How are you going to answer
HOUR 3 Creating Our First ASP.NET Web Page
HOUR 3 Creating Our First ASP.NET Web Page In the last two hours, we ve spent quite a bit of time talking in very highlevel terms about ASP.NET Web pages and the ASP.NET programming model. We ve looked
