Results 11 - 20
of
67
Recommending Source Code for Use in Rapid Software Prototypes
"... Abstract—Rapid prototypes are often developed early in the software development process in order to help project stakeholders explore ideas for possible features, and to discover, analyze, and specify requirements for the project. As prototypes are typically thrown-away following the initial analysi ..."
Abstract
-
Cited by 5 (1 self)
- Add to MetaCart
(Show Context)
Abstract—Rapid prototypes are often developed early in the software development process in order to help project stakeholders explore ideas for possible features, and to discover, analyze, and specify requirements for the project. As prototypes are typically thrown-away following the initial analysis phase, it is imperative for them to be created quickly with little cost and effort. Tool support for finding and reusing components from open-source repositories offers a major opportunity to reduce this manual effort. In this paper, we present a system for rapid prototyping that facilitates software reuse by mining feature descriptions and source code from open-source repositories. Our system identifies and recommends features and associated source code modules that are relevant to the software product under development. The modules are selected such that they implement as many of the desired features as possible while exhibiting the lowest possible levels of external coupling. We conducted a user study to evaluate our approach and the results indicated that our proposed system returned packages that implemented more features and were considered more relevant than the state-of-the-art approach. Keywords-software prototyping; domain analysis; recommender systems I.
Foundations and Tools for End-User Architecting
"... Abstract. Within an increasing number of domains an important emerging need is the ability for technically naïve users to compose computational elements into novel configurations. Examples include astronomers who create new analysis pipelines to process telescopic data, intelligence analysts who mus ..."
Abstract
-
Cited by 5 (4 self)
- Add to MetaCart
(Show Context)
Abstract. Within an increasing number of domains an important emerging need is the ability for technically naïve users to compose computational elements into novel configurations. Examples include astronomers who create new analysis pipelines to process telescopic data, intelligence analysts who must process diverse sources of unstructured text to discover socio-technical trends, and medical researchers who have to process brain image data in new ways to understand disease pathways. Creating such compositions today typically requires low-level technical expertise, limiting the use of computational methods and increasing the cost of using them. In this paper we describe an approach — which we term end-user architecting — that exploits the similarity between such compositional activities and those of software architects. Drawing on the rich heritage of software architecture languages, methods, and tools, we show how those techniques can be adapted to support end users in composing rich computational systems through domain-specific compositional paradigms and component repositories, without requiring that they have knowledge of the low-level implementation details of the components or the compositional infrastructure. Further, we outline a set of open research challenges that the area of end-user architecting raises.
Usability requirements for interaction-oriented development tools
"... Abstract. Building interactive software is a notoriously complex task, for which many programming tools have been proposed over the years. Although the research community has sporadically identified usability requirements for such tools, tool proponents rarely document their design processes and the ..."
Abstract
-
Cited by 4 (1 self)
- Add to MetaCart
(Show Context)
Abstract. Building interactive software is a notoriously complex task, for which many programming tools have been proposed over the years. Although the research community has sporadically identified usability requirements for such tools, tool proponents rarely document their design processes and there is no established reference for comparing tools with requirements. Furthermore, the design of most tools is strongly influenced by the design of their underlying general purpose programming languages. These in turn were designed from their own set of little-documented requirements, which adds to the confusion. In this paper, we provide a review and classification of the requirements and properties expected of interactive development tools. We review how designers of APIs and toolkits for interaction-oriented systems set the usability requirements for the programming interface of their systems. We relate our analysis to other studies in related domains such as end-user programming, natural programming, and teaching. 1
Using Association Metrics to Help Users Navigate API Documentation
- IEEE SYMPOSIUM ON VISUAL LANGUAGES AND HUMAN-CENTRIC COMPUTING
, 2010
"... In the past decade there has been spectacular growth in the number and size of third-party libraries, frameworks, toolkits and other Application Programming Interfaces (APIs) available to modern software developers. However, the time-saving advantages of code re-use are commonly hampered by the dif ..."
Abstract
-
Cited by 4 (2 self)
- Add to MetaCart
In the past decade there has been spectacular growth in the number and size of third-party libraries, frameworks, toolkits and other Application Programming Interfaces (APIs) available to modern software developers. However, the time-saving advantages of code re-use are commonly hampered by the difficulty in finding the correct methods for a given task among the thousands of irrelevant ones. We have developed a tool called Apatite that helps address this issue by letting programmers browse APIs by viewing associations between their components. Apatite indicates which items of an API are popular in different contexts and allows browsing by initially selecting verbs (methods and actions) in addition to classes and packages. The associations are calculated by leveraging existing search engine data and source code, and verbs are identified by parsing the documentation descriptions. Apatite is available on the web and is being used by developers worldwide on a regular basis.
Dinah: An interface to assist non-programmers with selecting
- 1195 CHI 2012, May 5–10, 2012
, 2011
"... The web holds an abundance of source code examples with the potential to become learning resources for any end-user. However, for some end-users these examples may be unusable. An example is unusable if a user cannot select the code in the example that corresponds to their interests. Research sugges ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
(Show Context)
The web holds an abundance of source code examples with the potential to become learning resources for any end-user. However, for some end-users these examples may be unusable. An example is unusable if a user cannot select the code in the example that corresponds to their interests. Research suggests that non-programmers struggle to correctly select the code responsible for interesting output functionality. In this paper we present Dinah: an interface to support non-programmers with selecting code causing graphical output. Dinah assists non-programmers by providing concurrency support and in-context affordances for statement replay and temporally based navigation.
Toward transforming freely available source code into usable learning materials for end-users
- In Proc. PLATEAU, ACM (2010), In
"... The availability of example source code on the web presents an array of potential learning resources for any code consumer. However not all code consumers may find these resources usable. With end-user programmers increasingly relying on example code on the web, any difficulty can prevent these code ..."
Abstract
-
Cited by 3 (2 self)
- Add to MetaCart
(Show Context)
The availability of example source code on the web presents an array of potential learning resources for any code consumer. However not all code consumers may find these resources usable. With end-user programmers increasingly relying on example code on the web, any difficulty can prevent these code resources from reaching their potential as learning materials for users who may see the greatest benefits: inexperienced end-users. In this paper, we discuss freely available source code’s usability for end-users. We focus on one problem area: supporting inexperienced end-users in selecting relevant code sections from examples they find interesting. We discuss a user study to evaluate the adequacy of two tools that can support non-programmers in this code selection task, and highlight design guidelines for future tools. Finally, we identify further challenges in transforming example code into usable learning materials for all end-users.
Using intelligent tutors to enhance student learning of application programming interfaces
- J. Comput. Sci. Coll
, 2011
"... An essential part of software engineering training is for students to learn how to effectively use application programming interfaces (APIs), but traditional instruction only provides direct support for helping students to learn the most commonly used APIs. This paper introduces a new approach where ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
(Show Context)
An essential part of software engineering training is for students to learn how to effectively use application programming interfaces (APIs), but traditional instruction only provides direct support for helping students to learn the most commonly used APIs. This paper introduces a new approach whereby professors could delegate some of these training responsibilities to intelligent tutors, which are interactive instructional materials that tailor themselves to each student’s progress. A prototype system has been developed that semi-automatically generates API tutors from open source code freely available on the web. As API tutors are published to a new website, students have an increasingly large menu of training materials available for them to choose from. A preliminary study indicates that the approach increases student learning on sample tasks. © CCSC, (2011). This is the author's version of the work. It is posted here by permission of CCSC for your personal use. Not for redistribution. The definitive version was published in The
An architectural approach to end user orchestrations
- In The European Conference on Software Architecture (ECSA
"... Abstract. Computations are pervasive across many domains, where end users have to compose various heterogeneous computational entities to perform professional activities. Service-Oriented Architecture (SOA) is a widely used mechanism that can support such forms of compositions as it allows heterogen ..."
Abstract
-
Cited by 3 (3 self)
- Add to MetaCart
(Show Context)
Abstract. Computations are pervasive across many domains, where end users have to compose various heterogeneous computational entities to perform professional activities. Service-Oriented Architecture (SOA) is a widely used mechanism that can support such forms of compositions as it allows heterogeneous systems to be wrapped as services that can then be combined with each other. However, current SOA orchestration languages require writing scripts that are typically too low-level for end users to write, being targeted at professional programmers and business analysts. To address this problem, this paper proposes a composition approach based on an end user specification style called SCORE. SCORE is an architectural style that uses high-level constructs that can be tailored for different domains and automatically translated into executable constructs by tool support. We demonstrate the use of SCORE in two domains-dynamic network analysis and neuroscience, where users are intelligence analysts and neuroscientists respectively, who use the architectural style based vocabulary in SCORE as a basis of their domain-specific compositions that can be formally analyzed. 1
The Information Gathering Strategies of API Learners
"... API users experience significant difficulties when learning how to use APIs, but little is known about the strategies used to overcome these difficulties, the motivation for each strategy, or the trade-offs between the strategies. To better understand the information seeking strategies of API users, ..."
Abstract
-
Cited by 3 (3 self)
- Add to MetaCart
(Show Context)
API users experience significant difficulties when learning how to use APIs, but little is known about the strategies used to overcome these difficulties, the motivation for each strategy, or the trade-offs between the strategies. To better understand the information seeking strategies of API users, we conducted a study in which 20 participants were asked to complete programming tasks using unfamiliar APIs, with the documentation of the APIs and the Web as learning resources. We observed that participants used one of three different strategies when seeking for information on how to use APIs: some were more inclined to using the Web, others preferred the documentation of the APIs, and others combined both the Web and the documentation. We present the characteristics, motivation, and trade-offs between these strategies, and suggests new ideas for documentation and tools to facilitate the information-seeking process of API learners.
Reverb: Recommending code-related web pages
- In Proc. ICSE
, 2013
"... Abstract—The web is an important source of development-related resources, such as code examples, tutorials, and API doc-umentation. Yet existing development environments are largely disconnected from these resources. In this work, we explore how to provide useful web page recommendations to develope ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
(Show Context)
Abstract—The web is an important source of development-related resources, such as code examples, tutorials, and API doc-umentation. Yet existing development environments are largely disconnected from these resources. In this work, we explore how to provide useful web page recommendations to developers by focusing on the problem of refinding web pages that a developer has previously used. We present the results of a study about developer browsing activity in which we found that 13.7 % of developers visits to code-related pages are revisits and that only a small fraction (7.4%) of these were initiated through a low-cost mechanism, such as a bookmark. To assist with code-related revisits, we introduce Reverb, a tool which recommends previously visited web pages that pertain to the code visible in the developer’s editor. Through a field study, we found that, on average, Reverb can recommend a useful web page in 51 % of revisitation cases. I.