The focus of this paper is on identification of typical graphical user interface (gui) programming concerns. As opposed to some other proposals available in the literature that indicate gui programming concerns by sim...
详细信息
The focus of this paper is on identification of typical graphical user interface (gui) programming concerns. As opposed to some other proposals available in the literature that indicate gui programming concerns by simple intuition, we have conducted a systematic empirical analysis to derive our proposal. It included an analysis of an existing application programming interface (API), its use in industrial projects, and an analysis of the requirements and issues reported during software maintenance. In addition, we have evaluated more than 50 gui frameworks and APIs and proved usefulness and generality of our classification of concerns. As an additional proof of applicability of the proposed classification, we have refactored the inheritance hierarchy of the selected gui API using concern-oriented interfaces. We have implemented a supporting tool that complements the developed API and supports its concern-oriented use. The evaluation of the refactored API showed positive effects on API usability. (C) 2014 Elsevier Ltd. All rights reserved.
On the surface, task-completion should be easy in graphical user interface (gui) settings. In practice however, different actions look alike and applications run in operating-system silos. Our aim within gui action re...
详细信息
ISBN:
(纸本)9781450356213
On the surface, task-completion should be easy in graphical user interface (gui) settings. In practice however, different actions look alike and applications run in operating-system silos. Our aim within gui action recognition and prediction is to help the user, at least in completing the tedious tasks that are largely repetitive. We propose a method that learns from a few user-performed demonstrations, and then predicts and finally performs the remaining actions in the task. For example, a user can send customized SMS messages to the first three contacts in a school's spreadsheet of parents;then our system loops the process, iterating through the remaining parents. First, our analysis system segments the demonstration into discrete loops, where each iteration usually included both intentional and accidental variations. Our technical innovation approach is a solution to the standing motif-finding optimization problem, but we also find visual patterns in those intentional variations. The second challenge is to predict subsequent gui actions, extrapolating the patterns to allow our system to predict and perform the rest of a task. We validate our approach on a new database of gui tasks, and show that our system usually (a) gleans what it needs from short user demonstrations, and (b) auto-completes tasks in diverse gui situations.
A common frustration with programming Graphical User Interfaces (guis) is that features for manipulating structures, such as lists and trees, are limited, inconsistent, buggy, or even missing. Implementing complete an...
详细信息
A common frustration with programming Graphical User Interfaces (guis) is that features for manipulating structures, such as lists and trees, are limited, inconsistent, buggy, or even missing. Implementing complete and convenient sets of operations for inserting, removing, and reordering elements in such structures can be tedious and difficult: a structure that appears as one collection to the user can be implemented as several different data structures and a web of dependencies between them. Structural modifications require changes both to the gui's model and view, and possibly extraneous bookkeeping operations, such as adding and removing event *** paper introduces a DSL that helps programmers to implement a complete set of operations to structures displayed in guis. The programmer specifies structures and relations between elements in the structure. Concretely, the latter are definitions of methods for establishing and unestablishing relations. Operations that manipulate structures are specified as rules that control which relations should hold before and after a rule is applied. From these specifications, our tools generate an easy-to-use API for structure manipulation. We target constraint system-based Web guis: the DSL generates JavaScript and relies on dataflow constraint systems for expressing dependencies between elements in gui structures. Our DSL gives tangible representations with well-defined operations for ad-hoc and incidental gui structures.
Mutual dependencies between objects arise frequently in programs, and programmers must typically solve this value recursion by manually filling "initialization holes" to help construct the corresponding obje...
详细信息
Mutual dependencies between objects arise frequently in programs, and programmers must typically solve this value recursion by manually filling "initialization holes" to help construct the corresponding object graphs, i.e. null values and/or explicitly mutable locations. This paper aims to augment ongoing theoretical work on value recursion with a description of a semi-safe mechanism for a generalized form of value recursion in an ML-like language, where initialization corresponds to a graph of lazy computations whose nodes are sequentially forced, requiring runtime checks for soundness during initialization in the style of Russo. Our primary contribution is to use the mechanism to develop compelling examples of how the absence of value recursion leads to real problems in the presence of abstraction boundaries, and give micro-examples that characterize how initialization graphs permit more programs to be expressed in the mutation-free fragment of ML. Finally we argue that in heterogeneous programming environments semi-safe variations on value-recursion may be appropriate for ML-like languages, because initialization effects from external libraries are difficult to characterize, document and control.
暂无评论