Based on 1) research into mutation testing for general-purpose programming languages and 2) spreadsheet errors that have been reported in the literature, we have developed a suite of mutation operators for spreadsheet...
详细信息
Based on 1) research into mutation testing for general-purpose programming languages and 2) spreadsheet errors that have been reported in the literature, we have developed a suite of mutation operators for spreadsheets. We present an evaluation of the mutation adequacy of definition-use adequate test suites generated by a constraint-based automatic test-case generation system we have developed in previous work. The results of the evaluation suggest additional constraints that can be incorporated into the system to target mutation adequacy. In addition to being useful in mutation testing of spreadsheets, the operators can be used in the evaluation of error-detection tools and also for seeding spreadsheets with errors for empirical studies. We describe two case studies where the suite of mutation operators helped us carry out such empirical evaluations. The main contribution of this paper is a suite of mutation operators for spreadsheets that can be used for performing empirical evaluations of spreadsheet tools to indicate ways in which the tools can be improved.
Natural language interfaces are becoming more and more common, because they are powerful and easy to use. Examples of such interfaces are voice controlled navigation devices, Apple's personal assistant Siri, Googl...
详细信息
Natural language interfaces are becoming more and more common, because they are powerful and easy to use. Examples of such interfaces are voice controlled navigation devices, Apple's personal assistant Siri, Google Voice Search, and translation services. However, such interfaces are extremely difficult to build, to maintain, and to port to new domains. We present an approach for building and porting such interfaces quickly. NLCI is a natural language command interpreter that accepts action commands in English and translates them into executable code. The core component is an ontology that models an API. Once the API is "ontologized", NLCI translates input sentences into sequences of API calls that implement the intended actions. Two radically different APIs were ontologized: openHAB for home automation and Alice for building 3D animations. Construction of the ontology can be automated if the API uses descriptive names for its components. In that case, the language interface can be generated completely automatically. Recall and precision of NLCI on a benchmark of 50 input scripts are 67 and 78 %, resp. Though not yet acceptable for practical use, the results indicate that the approach is feasible. NLCI accepts typed input only. Future work will use a speech front-end to test spoken input.
Commercial applications for the arts tend to enforce a division between the use of learnable direct manipulation interfaces and the use of powerful, well supported programming environments. In contrast, programmable a...
详细信息
Commercial applications for the arts tend to enforce a division between the use of learnable direct manipulation interfaces and the use of powerful, well supported programming environments. In contrast, programmable applications integrate these two software-design paradigms (i.e. direct manipulation and programming languages) and thereby attempt to exploit the strengths of both. A sample graphics application, SchemePaint, is outlined, and some of the issues related to the creation of programmable applications for the arts are discussed.
This article is about applications that can be customized or extended through their own user interface. This is achieved by the interface's ability to interpret users' non-literal expressions, namely metaphori...
详细信息
This article is about applications that can be customized or extended through their own user interface. This is achieved by the interface's ability to interpret users' non-literal expressions, namely metaphorical and metonymic ones. Such increased interpretive intelligence depends on static and dynamic models of the domain and application, from which new figurative meanings are abducted automatically or semiautomatically. The system performs controlled modifications on the underlying models, based on inferences it draws about users' intentions as they produce figurative utterances. (C) 2001 Elsevier Science B.V. All rights reserved.
end-user programming has become ubiquitous;so much so that there are more end-user programmers today than there are professional programmers. end-user programming empowers but to do what? Make bad decisions based on b...
详细信息
end-user programming has become ubiquitous;so much so that there are more end-user programmers today than there are professional programmers. end-user programming empowers but to do what? Make bad decisions based on bad programs? Enter software engineering's focus on quality. Considering software quality is necessary, because there is ample evidence that the programs endusers create are filled with expensive errors. In this paper, we consider what happens when we add considerations of software quality to end-user programming environments, going beyond the "create a program" aspect of end-user programming. We describe a philosophy of software engineering for endusers, and then survey several projects in this area. A basic premise is that end-user software engineering can only succeed to the extent that it respects that the user probably has little expertise or even interest in software engineering.
This paper introduces the Internet-of-Things (IoT) and describes its evolution from a concept proposed by Kevin Ashton in 1999 through its public emergence in 2005 in a United Nations ITU report entitled "The Int...
详细信息
This paper introduces the Internet-of-Things (IoT) and describes its evolution from a concept proposed by Kevin Ashton in 1999 through its public emergence in 2005 in a United Nations ITU report entitled "The Internet of Things", to the present day where IoT devices are available as off-the-shelf products from major manufacturers. Using a systematic study of public literature, the paper presents a five-phase categorisation of the development of the Internet-of-Things from its beginnings to the present day. Four mini case studies are included to illustrate some of the issues involved. Finally, the paper discusses some of the big issues facing future developers and marketers of Internet-of-Things based products ranging from artificial intelligence (AI) through to customer privacy and acceptance finishing with an optimistic assessment of the future of the Internet-of-Things.
Can endusers someday enter their requirements directly into program generation tools? This paper surveys literature that sheds some light upon this question, highlighting devices from HCI research that can be used to...
详细信息
Can endusers someday enter their requirements directly into program generation tools? This paper surveys literature that sheds some light upon this question, highlighting devices from HCI research that can be used to help in accomplishing this goal. (C) 2003 Elsevier B.V. All rights reserved.
Therapeutic digital games aim to support rehabilitation treatments and help patients understand, motivate and persist in therapeutic practices. Although there are several therapeutic digital games available, their dev...
详细信息
Therapeutic digital games aim to support rehabilitation treatments and help patients understand, motivate and persist in therapeutic practices. Although there are several therapeutic digital games available, their development highly depends on the involvement of computer science professionals. This paper's contribution is about how RUFUS was designed as a platform to provide EUP (end-user programming) for healthcare professionals. This platform enables these professionals to author digital games aiming at performing therapeutic activities with their patients and/or caregivers. The platform has a web interface for game authoring, currently composed of three different game mechanics, as well as the possibility of viewing interaction reports. It also encompasses a mobile app that displays the games created for patients. Participatory design techniques were used during the design and evaluation of the three games to engage different stakeholders and also empower healthcare providers. A preliminary evaluation of the RUFUS point to an easy-to-use design solution, but which still needs further testing to ensure intuitiveness for users who have no experience with games or with authoring interfaces.
This paper describes Lua, a language for extending applications. Lua combines procedural features with powerful data description facilities, by using a simple, yet powerful, mechanism of tables. This mechanism impleme...
详细信息
This paper describes Lua, a language for extending applications. Lua combines procedural features with powerful data description facilities, by using a simple, yet powerful, mechanism of tables. This mechanism implements the concepts of records, arrays and recursive data types (pointers), and adds some object-oriented facilities, such as methods with dynamic dispatching. Lua presents a mechanism of fallbacks that allows programmers to extend the semantics of the language in some unconventional ways. As a noteworthy example, fallbacks allow the user to add different kinds of inheritance to the language. Currently, Lua is being extensively used in production for several tasks, including user configuration, general-purpose data-entry, description of user interfaces, storage of structured graphical metafiles, and generic attribute configuration for finite element meshes.
With more and more web scripting languages on offer, programmers have access to increasing language support for web scraping tasks. However, in our experiences collaborating with data scientists, we learned that two i...
详细信息
With more and more web scripting languages on offer, programmers have access to increasing language support for web scraping tasks. However, in our experiences collaborating with data scientists, we learned that two issues still plague long-running scraping scripts: i) When a network or website goes down mid-scrape, recovery sometimes requires restarting from the beginning, which users find frustratingly slow. ii) Websites do not offer atomic snapshots of their databases;they update their content so frequently that output data is cluttered with slight variations of the same information - e.g., a tweet from profile 1 that is retweeted on profile 2 and scraped from both profiles, once with 52 responses then later with 53 responses. We introduce the skip block, a language construct that addresses both of these disparate problems. Programmers write lightweight annotations to indicate when the current object can be considered equivalent to a previously scraped object and direct the program to skip over the scraping actions in the block. The construct is hierarchical, so programs can skip over long or short script segments, allowing adaptive reuse of prior work. After network and server failures, skip blocks accelerate failure recovery by 7.9x on average. Even scripts that do not encounter failures benefit;because sites display redundant objects, skipping over them accelerates scraping by up to 2.1x. For longitudinal scraping tasks that aim to fetch only new objects, the second run exhibits an average speedup of 5.2x. Our small user study reveals that programmers can quickly produce skip block annotations.
暂无评论