Results 1 - 10
of
12
How Effective Developers Investigate Source Code: An Exploratory Study
- IEEE Transactions on Software Engineering
, 2004
"... ©2004 IEEE. Personal use of this material is permitted. However, permission to reprint/republish this material for advertising or promotional purposes or for creating new collective works for resale or redistribution to servers or lists, or to reuse any copyrighted component of this work in other wo ..."
Abstract
-
Cited by 60 (11 self)
- Add to MetaCart
©2004 IEEE. Personal use of this material is permitted. However, permission to reprint/republish this material for advertising or promotional purposes or for creating new collective works for resale or redistribution to servers or lists, or to reuse any copyrighted component of this work in other works must be obtained from the IEEE.
Hipikat: A Project Memory for Software Development
- IEEE Transactions on Software Engineering
, 2005
"... Abstract—Sociological and technical difficulties, such as a lack of informal encounters, can make it difficult for new members of noncollocated software development teams to learn from their more experienced colleagues. To address this situation, we have developed a tool, named Hipikat, that provide ..."
Abstract
-
Cited by 55 (2 self)
- Add to MetaCart
Abstract—Sociological and technical difficulties, such as a lack of informal encounters, can make it difficult for new members of noncollocated software development teams to learn from their more experienced colleagues. To address this situation, we have developed a tool, named Hipikat, that provides developers with efficient and effective access to the group memory for a software development project that is implicitly formed by all of the artifacts produced during the development. This project memory is built automatically with little or no change to existing work practices. After describing the Hipikat tool, we present two studies investigating Hipikat’s usefulness in software modification tasks. One study evaluated the usefulness of Hipikat’s recommendations on a sample of 20 modification tasks performed on the Eclipse Java IDE during the development of release 2.1 of the Eclipse software. We describe the study, present quantitative measures of Hipikat’s performance, and describe in detail three cases that illustrate a range of issues that we have identified in the results. In the other study, we evaluated whether software developers who are new to a project can benefit from the artifacts that Hipikat recommends from the project memory. We describe the study, present qualitative observations, and suggest implications of using project memory as a learning aid for project newcomers. Index Terms—Software development teams, project memory, software artifacts, recommender system, user studies.
Extending design environments to software architecture design
- Automated Software Engineering
, 1996
"... Domain-oriented design environments are cooperative problem-solving systems that support designers in complex design tasks. In this paper we present the facilities and architecture of Argo, a domain-oriented design environment for software architecture. Argo’s architecture is motivated by the desire ..."
Abstract
-
Cited by 44 (10 self)
- Add to MetaCart
Domain-oriented design environments are cooperative problem-solving systems that support designers in complex design tasks. In this paper we present the facilities and architecture of Argo, a domain-oriented design environment for software architecture. Argo’s architecture is motivated by the desire to achieve reuse and extensibility of the design environment. It separates domain-neutral code from domain-oriented code, which is distributed among intelligent design materials as opposed to being centralized in the design environment. Argo’s facilities are motivated by the observed cognitive needs of designers. These facilities extend previous work in design environments to support reflection-in-action, opportunistic design, and comprehension and problem-solving. Keywords: Domain-oriented design environments, critics, software architectures, architectural styles, humancomputer interaction, human cognitive skills.
The Reuse of Uses in Smalltalk Programming
- ACM Transactions on Computer-Human Interaction
, 1996
"... this article was given at ECOOP '93. ..."
Tracking Code Clones in Evolving Software
"... Code clones are generally considered harmful in software development, and the predominant approach is to try to eliminate them through refactoring. However, recent research has provided evidence that it may not always be practical, feasible, or cost-effective to eliminate certain clone groups. We pr ..."
Abstract
-
Cited by 22 (1 self)
- Add to MetaCart
Code clones are generally considered harmful in software development, and the predominant approach is to try to eliminate them through refactoring. However, recent research has provided evidence that it may not always be practical, feasible, or cost-effective to eliminate certain clone groups. We propose a technique for tracking clones in evolving software. Our technique relies on the concept of abstract clone region descriptors (CRD), which describe clone regions within methods in a robust way that is independent from the exact text of the clone region or its location in a file. We present our definition of CRDs, and describe a complete clone tracking system capable of producing CRDs from the output of a clone detection tool, notify developers of modifications to clone regions, and support the simultaneous editing of clone regions. We report on two experiments and a case study conducted to assess the performance and usefulness of our approach.
Software architecture design from the perspective of human cognitive needs
- In Proceedings of the California Software Symposium (CSS’96
, 1996
"... Software architectures are useful, in part, because they use the appropriate level of abstraction to support the design of complex systems. Software architecture research has quickly evolved to the degree that design environments have been implemented to support software architects in creating new d ..."
Abstract
-
Cited by 9 (1 self)
- Add to MetaCart
Software architectures are useful, in part, because they use the appropriate level of abstraction to support the design of complex systems. Software architecture research has quickly evolved to the degree that design environments have been implemented to support software architects in creating new designs. We report on a software architecture design environment named Argo that differs from other approaches by paying attention to the human, cognitive needs of software architects, as much as to the representation and manipulation of the architecture itself. We emphasize the primary considerations by contrasting the human cognitive design process to the systems-oriented software design process. Human-centered features in Argo focus on the application of critics for providing design feedback, design processes for supporting critics, and multiple architectural perspectives for aiding human designers.
Project History as a Group Memory: Learning From the Past
, 2004
"... New members of software development teams must come up-to-speed on a large amount of information before becoming productive, even if they have previous software development experience. Often, this knowledge is gained through mentoring: an experienced colleague monitors the newcomer’s progress on his ..."
Abstract
-
Cited by 8 (1 self)
- Add to MetaCart
New members of software development teams must come up-to-speed on a large amount of information before becoming productive, even if they have previous software development experience. Often, this knowledge is gained through mentoring: an experienced colleague monitors the newcomer’s progress on his or her first assigned tasks, and provides feedback and advice. The mentor is the person the newcomer turns to for help when stuck; these interactions are typically informal and lightweight, such as quick questions asked over the cubicle divider or at the water cooler. However, these light-weight channels are not always available in virtual teams, where the members of the team are not collocated. Moreover, workers are less likely to help their non-collocated colleagues, making it even harder for a newcomer to come up to speed on a project. The thesis of this dissertation is based on the idea that the collection of all artifacts created in the course of development of a software system implicitly forms a group memory—a repository of information that a work group can use to benefit from its past experience to respond more effectively to the present needs. I call this implicitly-formed group memory a project memory and make three claims: (1) that newcomer software developers can use information from the project memory about past modifications completed on the project to help them effectively perform modification tasks
Empirical Evidence of the Benefits of Workspace Awareness in Software Configuration Management
"... In this paper, we present results from our empirical evaluations of a workspace awareness tool that we designed and implemented to augment the functionality of software configuration management systems. Particularly, we performed two user experiments directed at understanding the effectiveness of a ..."
Abstract
-
Cited by 6 (1 self)
- Add to MetaCart
In this paper, we present results from our empirical evaluations of a workspace awareness tool that we designed and implemented to augment the functionality of software configuration management systems. Particularly, we performed two user experiments directed at understanding the effectiveness of a workspace awareness tool in improving coordination and reducing conflicts. In the first experiment, we evaluated the tool through text-based assignments to avoid interference from the well-documented impact of individual differences among participants, as these differences are known to lessen the observable effect of proposed tools or to lead to them having no observable effect at all. This strategy of evaluating an application in a domain that is known to have less individual differences is novel and in our case particularly helpful in providing baseline quantifiable results. Upon this baseline, we performed a second experiment, with code-based assignments, to validate that the tool’s beneficial effects also occur in the case of programming. Together, our results provide quantitative evidence of the benefits of workspace awareness in software configuration management, as we demonstrate that it improves coordination and conflict resolution without inducing significant overhead in monitoring awareness cues.
Clone Region Descriptors: Representing and Tracking Duplication in Source Code
"... Source code duplication, commonly known as code cloning, is considered an obstacle to software maintenance because changes to a cloned region often require consistent changes to other regions of the source code. Research has provided evidence that the elimination of clones may not always be practica ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
Source code duplication, commonly known as code cloning, is considered an obstacle to software maintenance because changes to a cloned region often require consistent changes to other regions of the source code. Research has provided evidence that the elimination of clones may not always be practical, feasible, or cost-effective. We present a clone management approach that describes clone regions in a robust way that is independent from the exact text of clone regions or their location in a file, and that provides support for tracking clones in evolving software. Our technique relies on the concept of abstract clone region descriptors (CRDs), which describe clone regions using a combination of their syntactic, structural, and lexical information. We present our definition of CRDs, and describe a clone tracking system capable of producing CRDs from the output of different clone detection tools, notifying developers of modifications to clone regions, and supporting updates to the documented clone relationships. We evaluated the performance and usefulness of our approach across three clone detection tools and five subject systems, and the results indicate that CRDs are a practical and robust representation for tracking code clones in evolving software. 3
Observations On Using Empirical Studies in Developing a Knowledge-Based Software Engineering Tool
"... There exist a wide variety of techniques for performing empirical studies which researchers in human-computer interaction have adapted from fields of cognitive psychology, sociology, and anthropology. An analysis of several of these techniques is presented through an approach that balances empirical ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
There exist a wide variety of techniques for performing empirical studies which researchers in human-computer interaction have adapted from fields of cognitive psychology, sociology, and anthropology. An analysis of several of these techniques is presented through an approach that balances empirical study with tool development. The analysis is based on, and illustrated with, a several year experience consulting in a scientific software environment and in building and evaluating a prototype, knowledgebased tool to capture aspects of that experience. Guidelines for applying specific techniques and cautions about potential pitfalls are discussed. Many additional examples of using the techniques are cited from the literature. 1. Introduction There exist a wide variety of techniques for performing empirical studies which researchers in human-computer interaction have adapted from fields of cognitive psychology, sociology, and anthropology. These techniques have been applied to the study of...

