Results 1 - 10
of
35
Navigating and querying code without getting lost
- In Proceedings of Aspect Oriented Software Development
, 2003
"... A development task related to a crosscutting concern is chal-lenging because a developer can easily get lost when explor-ing scattered elements of code and the complex tangle of re-lationships between them. In this paper we present a source browsing tool that improves the developer’s ability to work ..."
Abstract
-
Cited by 156 (6 self)
- Add to MetaCart
(Show Context)
A development task related to a crosscutting concern is chal-lenging because a developer can easily get lost when explor-ing scattered elements of code and the complex tangle of re-lationships between them. In this paper we present a source browsing tool that improves the developer’s ability to work with crosscutting concerns by providing better support for exploring code. Our tool helps the developer to remain ori-ented while exploring and navigating across a code base. The cognitive burden placed on a developer is reduced by avoiding disorienting view switches and by providing an ex-plicit representation of the exploration process in terms of exploration paths. 1.
Palantír: Raising Awareness among Configuration Management Workspaces
, 2003
"... Current configuration management systems promote workspaces that isolate developers from each other. This isolation is both good and bad. It is good, because developers make their changes without any interference from changes made concurrently by other developers. It is bad, because not knowing whic ..."
Abstract
-
Cited by 141 (21 self)
- Add to MetaCart
Current configuration management systems promote workspaces that isolate developers from each other. This isolation is both good and bad. It is good, because developers make their changes without any interference from changes made concurrently by other developers. It is bad, because not knowing which artifacts are changing in parallel regularly leads to problems when changes are promoted from workspaces into a central configuration management repository. Overcoming the bad isolation, while retaining the good isolation, is a matter of raising awareness among developers, an issue traditionally ignored by the discipline of configuration management. To fill this void, we have developed Palantr, a novel workspace awareness tool that complements existing configuration management systems by providing developers with insight into other workspaces. In particular, the tool informs a developer of which other developers change which other artifacts, calculates a simple measure of severity of those changes, and graphically displays the information in a configurable and generally non-obtrusive manner. To illustrate the use of Palantr, we demonstrate how it integrates with two representative configuration management systems.
Group Awareness in Distributed Software Development
- In CSCW ’04: Proceedings of the 2004 ACM Conference on Computer Supported Cooperative Work
, 2004
"... carl.gutwin, reagan.penner, kevin.schneider @ usask.ca Open-source software development projects are almost always collaborative and distributed. Despite the difficulties imposed by distance, these projects have managed to produce large, complex, and successful systems. However, there is still littl ..."
Abstract
-
Cited by 103 (0 self)
- Add to MetaCart
(Show Context)
carl.gutwin, reagan.penner, kevin.schneider @ usask.ca Open-source software development projects are almost always collaborative and distributed. Despite the difficulties imposed by distance, these projects have managed to produce large, complex, and successful systems. However, there is still little known about how open-source teams manage their collaboration. In this paper we look at one aspect of this issue: how distributed developers maintain group awareness. We interviewed developers, read project communication, and looked at project artifacts from three successful open source projects. We found that distributed developers do need to maintain awareness of one another, and that they maintain both a general awareness of the entire team and more detailed knowledge of people that they plan to work with. Although there are several sources of information, this awareness is maintained primarily through text-based communication (mailing lists and chat systems). These textual channels have several characteristics that help to support the maintenance of awareness, as long as developers are committed to reading the lists and to making their project communication public.
Representing Concerns in Source Code
, 2003
"... Many program evolution tasks involve source code that is not modularized as a single unit. Furthermore, the source code relevant to a change task often implements different concerns, or high-level concepts that a developer must consider. Finding and understanding concerns scattered in source code is ..."
Abstract
-
Cited by 76 (7 self)
- Add to MetaCart
(Show Context)
Many program evolution tasks involve source code that is not modularized as a single unit. Furthermore, the source code relevant to a change task often implements different concerns, or high-level concepts that a developer must consider. Finding and understanding concerns scattered in source code is a difficult task that accounts for a large proportion of the effort of performing program evolution. One possibility to mitigate this problem is to produce textual documentation that describes scattered concerns. However, this approach is impractical because it is costly, and because, as a program evolves, the documentation becomes inconsistent with the source code. The thesis of this dissertation is that a description of concerns, representing program structures and linked to source code, that can be produced cost-effectively during program investigation activities, can help developers perform software evolution tasks more systematically, and on different versions of a system. To validate the claims of this thesis, we have developed a model for a structure, called concern graph, that describes concerns in source code in terms of relations between program elements. The model also defines precisely the notion of inconsistency between a concern graph and the
The emergent structure of development tasks
- In ECOOP
, 2005
"... Abstract. Integrated development environments have been designed and engineered to display structural information about the source code of large systems. When a development task lines up with the structure of the system, the tools in these environments do a great job of supporting developers in thei ..."
Abstract
-
Cited by 29 (5 self)
- Add to MetaCart
(Show Context)
Abstract. Integrated development environments have been designed and engineered to display structural information about the source code of large systems. When a development task lines up with the structure of the system, the tools in these environments do a great job of supporting developers in their work. Unfortunately, many development tasks do not have this characteristic. Instead, they involve changes that are scattered across the source code and various other kinds of artifacts, including bug reports and documentation. Today’s development environments provide little support for working with scattered pieces of a system, and as a result, are not adequately supporting the ways in which developers work on the system. Fortunately, many development tasks do have a structure. This structure emerges from a developer’s actions when changing the system. In this paper, we describe how the structure of many tasks crosscuts system artifacts, and how by capturing that structure, we can make it as easy for developers to work on changes scattered across the system’s structure as it is to work on changes that line up with the system’s structure. 1
A research agenda for distributed software development
- in ICSE ’06: Proceedings of the 28th International Conference on Software Engineering
"... In recent years, a number of business reasons have caused software development to become increasingly distributed. Remote development of software offers several advantages, but it is also fraught with challenges. In this paper, we report on our study of distributed software development that helped s ..."
Abstract
-
Cited by 28 (1 self)
- Add to MetaCart
(Show Context)
In recent years, a number of business reasons have caused software development to become increasingly distributed. Remote development of software offers several advantages, but it is also fraught with challenges. In this paper, we report on our study of distributed software development that helped shape a research agenda for this field. Our study has identified four areas where important research questions need to be addressed to make distributed development more effective. These areas are: collaborative software tools, knowledge acquisition and management, testing in a distributed set-up and process and metrics issues. We present a brief summary of related research in each of these areas, and also outline open research issues. Categories and Subject Descriptors
Jquery: A generic code browser with a declarative configuration language
- In Practical Aspects of Declarative Languages, 8th International Symposium, PADL 2006
, 2006
"... Abstract. Modern IDEs have an open-ended plugin architecture to allow customizability. However, developing a plugin is costly in terms of effort and expertise required by the customizer. We present a two-pronged approach that allows for open-ended customizations while keeping the customization cost ..."
Abstract
-
Cited by 23 (1 self)
- Add to MetaCart
(Show Context)
Abstract. Modern IDEs have an open-ended plugin architecture to allow customizability. However, developing a plugin is costly in terms of effort and expertise required by the customizer. We present a two-pronged approach that allows for open-ended customizations while keeping the customization cost low. First, we explicitly limit the portion of the design space targeted by the configuration mechanism. This reduces customization cost by simplifying the configuration interface. Second, we use a declarative programming language as our configuration language. This facilitates open-ended specification of behavior without burdening the user with operational details.
Mining a software developer’s local interaction history
- In Proceedings of MSR 2004 (1st International Workshop on Mining Software Repositories
, 2004
"... Although shared software repositories are commonly used during software development, it is typical that a soft-ware developer browses and edits a local snapshot of the software under development. Developers periodically check their changes into the software repository; however, their interaction wit ..."
Abstract
-
Cited by 18 (0 self)
- Add to MetaCart
(Show Context)
Although shared software repositories are commonly used during software development, it is typical that a soft-ware developer browses and edits a local snapshot of the software under development. Developers periodically check their changes into the software repository; however, their interaction with the local copy is not recorded. Local in-teraction histories are a valuable source of information and should be considered when mining software repositories. In this paper we discuss the benefits of analyzing local interaction histories and present a technique and prototype implementation for their capture and analysis. As well, we discuss the implications of local interaction histories and the infrastructure of software repositories. 1.
Visual separation of concerns through multidimensional program storage
- In AOSD ’03: Proceedings of the 2nd international conference on Aspect-oriented software development
, 2003
"... Aspect-oriented software development (AOSD) has primarily fo-cused on linguistic and meta-linguistic mechanisms for separating concerns in program source. However, the kinds of concern separa-tion and complexity management that AOSD endeavors to achieve are not the exclusive province of programming ..."
Abstract
-
Cited by 18 (0 self)
- Add to MetaCart
(Show Context)
Aspect-oriented software development (AOSD) has primarily fo-cused on linguistic and meta-linguistic mechanisms for separating concerns in program source. However, the kinds of concern separa-tion and complexity management that AOSD endeavors to achieve are not the exclusive province of programming language design. In this paper, we propose a new model of concern separation called visual separation of concerns (VSC), which is based on a new model of program storage. By altering the mechanisms used to store and manipulate program artifacts, much of the capability of concern separation can be captured without performing any lin-guistic transformations. We also describe our implementation of VSC, which is based on Stellation, an experimental software con-figuration management system. The VSC approach combined with software configuration management can have advantages over con-ventional approaches by avoiding program transformations, by pro-viding persistent storage of features such as concern maps, and by enabling new techniques for concern identification and manipula-tion. 1.
Supporting Aggregation in Fine Grained Software Configuration Management
- TENTH ACM SIGSOFT SYMPOSIUM ON FOUNDATION OF SOFTWARE ENGINEERING, CHARLESTION, SOUTH
, 2002
"... Fine-grained software configuration management offers substantial benets for large-scale collaborative software development, enabling a variety of interesting and useful features including complexity management, support for aspect-oriented software development, and support for communication and coor ..."
Abstract
-
Cited by 11 (1 self)
- Add to MetaCart
(Show Context)
Fine-grained software configuration management offers substantial benets for large-scale collaborative software development, enabling a variety of interesting and useful features including complexity management, support for aspect-oriented software development, and support for communication and coordination within software engineering teams, as described in [4]. However, fine granularity by itself is not sufficient to achieve these benets. Most of the benefits of ne granularity result from the ability to combine fine-grained artifacts in various ways: supporting multiple overlapping organizations of program source by combining fine-grained artifacts into virtual source files (VSFs); supporting coordination by allowing developers to precisely mark the set of artifacts aected by a change; associating products from different phases of the development process; etc. In this paper, we describe how a general aggregation mechanism can be used to support the various functionality enabled by fine grained SCM. We present a set of requirements that an aggregation facility must provide in order to yield these benefits, and we provide a description of the implementation of such an aggregation system in our experimental SCM system.