首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 31 毫秒
1.
Rodrigo Andrade  Paulo Borba 《Software》2020,50(10):1905-1929
In collaborative software development, developers submit their contributions to repositories that are used to integrate code from various collaborators. To avoid privacy and security issues, code contributions are often reviewed before integration. Although careful manual code review can detect such issues, it might be time-consuming, expensive, and error-prone. Automatic analysis tools can also detect privacy and security issues, but they often demand significant developer effort, or are domain specific, considering fixed framework specific vulnerability sources and sinks. To reduce these problems, in this paper we propose the Salvum policy language to support the specification of constraints that help to protect sensitive information from being inadvertently accessed by specific code contributions. We implement a tool that automatically checks Salvum policies for systems of different technical domains. We also investigate whether Salvum can find policy violations for a number of open-source projects. We find evidence that Salvum helps to detect violations even for well-supported and highly active projects. Moreover, our tool helps to find 80 violations in benchmark projects.  相似文献   

2.
Information system development can be considered a collaboration between users and developers. The inability to leverage the localized knowledge embedded in these two stakeholders hinders software development work to achieve high performance. Exploring the ways to counter this difficulty is then critical. This study applies an intellectual capital perspective to address the issues around spanning the knowledge boundary between developers and users. Our findings highlighted how important effective knowledge boundary spanning is to both product and project quality. Furthermore, three dimensions of intellectual capital increased the degree to which knowledge boundary spanning was effective.  相似文献   

3.
Strong working relations between software developers and testers are critical to the efficient and effective development of high-quality software. Smooth collaboration must occur as testers find problems and developers fix problems in the software. Prior studies based on anecdotal data have suggested that developers and testers have different personalities, approaches to work, etc., and these differences may have negative impacts on software project outcomes such as software quality and job satisfaction. This study examines the results of a nationwide survey undertaken to empirically examine and to improve our understanding of the pertinent areas where developers and testers differ. Results support that significant differences exist in perceptions between developers and testers. We conclude that these differences must be considered in order to improve software development efficiency and effectiveness.  相似文献   

4.
Software development is a complex undertaking that continues to present software project teams with numerous challenges. Software project teams are adopting extreme programming (XP) practices in order to overcome the challenges of software development in an increasingly dynamic environment. The ability to coordinate software developers' efforts is critical in such conditions. Expertise coordination has been identified as an important emergent process through which software project teams manage non-routine challenges in software development. However, the extent to which XP enables software project teams to coordinate expertise is unknown. Drawing on the agile development and expertise coordination literatures, we examine the role of collective ownership and coding standards as processes and practices that govern coordination in software project teams. We examine the relationship between collective ownership, coding standards, expertise coordination, and software project technical quality in a field study of 56 software project teams comprising 509 software developers. We found that collective ownership and coding standards play a role in improving software project technical quality. We also found that collective ownership and coding standards moderated the relationship between expertise coordination and software project technical quality, with collective ownership attenuating the relationship and coding standards strengthening the relationship. Theoretical and practical implications of the findings are discussed.  相似文献   

5.
Open source software provides organizations with new options for component-based development. As with commercial off-the-shelf software, project developers acquire open source components from a vendor (or a community) and use them "as is" or with minor modifications. Although they have access to the component's source code, developers aren't required to do anything with it. If the component's community is large and active, the adopting organization can expect frequent software updates, reasonable quality assurance, responsive hug fixes, and good technical support. Also, having freely available source code addresses two typical concerns with using COTS components: unknown implementation quality and long-term vendor support.  相似文献   

6.
Hipikat: a project memory for software development   总被引:4,自引:0,他引:4  
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.  相似文献   

7.
Abstract

Despite their rising popularity, distributed teams face a number of collaboration challenges that may potentially hinder their ability to productively coordinate their resources, activities, and information, often in dynamic and uncertain task environments. In this paper, we focus principally on the criticality of information alignment for supporting coordinated task performance in complex operational environments. As organizations become more expertise, geographically, and temporally distributed, appropriate alignment and coordination among distributed team members becomes more critical for minimizing the occurrence of information flow failures, poor decision-making, and degraded team performance. We first describe these coordination processes using the metaphor of an ‘information clutch’ that allows for smooth transitions of task priorities and activities in expert teams. We then present two case study examples that illustrate the potentially significant impact of information sharing and information alignment on productivity and coordination in organizations. We conclude with a discussion of future directions in this area.  相似文献   

8.
Despite their rising popularity, distributed teams face a number of collaboration challenges that may potentially hinder their ability to productively coordinate their resources, activities, and information, often in dynamic and uncertain task environments. In this paper, we focus principally on the criticality of information alignment for supporting coordinated task performance in complex operational environments. As organizations become more expertise, geographically, and temporally distributed, appropriate alignment and coordination among distributed team members becomes more critical for minimizing the occurrence of information flow failures, poor decision-making, and degraded team performance. We first describe these coordination processes using the metaphor of an 'information clutch' that allows for smooth transitions of task priorities and activities in expert teams. We then present two case study examples that illustrate the potentially significant impact of information sharing and information alignment on productivity and coordination in organizations. We conclude with a discussion of future directions in this area.  相似文献   

9.
Communication is a key success factor of distributed software projects. Poor communication has been identified as a main obstacle to successful collaboration. Global projects are especially endangered by information gaps between collaborating sites. Different communication styles, technical equipment, and missing awareness of each other can cause severe problems. Knowledge about actual and desired channels, paths, and modes of communication is required for improving communication in a globally distributed project. However, many project participants know little about communication and information flow in their projects. In this contribution, we focus on knowledge about communication and information flow. It is acquired by modelling on‐going and desired flows of information, including documented and non‐documented channels of information flow. We analyzed a distributed software project from the information flow perspective. Based on the findings, we developed specific techniques to improve information flow in distributed software development according to the FLOW Method. In a second distributed project, we evaluated one of the techniques. We found the FLOW mapping technique to be suitable for effectively spreading knowledge about communication and information flow in global software projects.  相似文献   

10.
Case studies can help to validate claims that open source software development produces higher quality software at lower cost than traditional commercial development. One problem inherent in case studies are external validity - we do not know whether or not results from one case study apply to another development project. We gain or lose confidence in case study results when similar case studies are conducted on other projects. This case study of the FreeBSD project, a long-lived open source project, provides further understanding of open source development. The paper details a method for mining repositories and querying project participants to retrieve key process information. The FreeBSD development process is fairly well-defined with proscribed methods for determining developer responsibilities, dealing with enhancements and defects, and managing releases. Compared to the Apache project, FreeBSD uses 1) a smaller set of core developers - developers who control the code base - that implement a smaller percentage of the system, 2) a larger set of top developers to implement 80 percent of the system, and 3) a more well-defined testing process. FreeBSD and Apache have a similar ratio of core developers to people involved in adapting and debugging the system and people who report problems. Both systems have similar defect densities and the developers are also users in both systems.  相似文献   

11.
杨涛  石琳  宋梦蝶  李守斌  王青 《计算机应用》2017,37(7):2019-2026
软件开发流程中越来越依赖各种计算机辅助软件(CAS)。在使用多种工具的情况下,会遇到开发流程不可定制、流程数据不一致和流程管理效率低等问题。针对这些问题提出了一个支持多工具协同工作的软件开发过程管理系统。通过分析软件开发过程,研究支持快速迭代、偏向流程管理的软件工程开发模式,结合工作流思想设计分层架构的软件开发过程管理系统。该系统经过严格的测试用例检测,在设计的576个测试用例下通过率达到85%,能够完成工具协同的大部分需求,包括流程可定义、保持数据一致和开发流程管理。该系统在7个软件开发组,共约200人的规模下推广试用。根据管理组、开发组和测试组的反馈结果,该系统比传统方式节省了每周例会的时间,方便了开发任务的管理,从而提高了开发效率。  相似文献   

12.
Many software production processes advocate rigorous development testing alongside functional code writing, which implies that both test code and production code should co-evolve. To gain insight in the nature of this co-evolution, this paper proposes three views (realized by a tool called TeMo) that combine information from a software project’s versioning system, the size of the various artifacts and the test coverage reports. We validate these views against two open source and one industrial software project and evaluate our results both with the help of log messages, code inspections and the original developers of the software system. With these views we could recognize different co-evolution scenarios (i.e., synchronous and phased) and make relevant observations for both developers as well as test engineers.  相似文献   

13.
企业信息系统在企业的经营管理中发挥着至关重要的作用,然而,在企业信息系统的开发过程中,存在着开发效率低下、系统架构不一致、开发周期长等问题.针对上述问题,设计了一种基于J2EE平台的信息化系统代码生成工具,开发人员只需要进行模型的可视化设计,由代码生成工具完成代码的生成.目前该代码生成工具已应用于实际的开发平台中,实践表明,代码生成工具的使用可以统一企业信息系统的开发架构,大幅度减少开发人员编写重复性代码的工作量,实现设计成果的复用和共享,提高企业信息系统开发的质量和效率.  相似文献   

14.
The more collaborative enterprises are, the better they perform. However, current collaboration technologies do not contribute as much as expected to collaboration quality. Collaboration technology seems to be stuck in just overcoming the limitation of people not being in the same place at the same time. Real time communications are supported through such things as web-conferencing and instant messaging, while email, wikis, and web-based repositories provide the electronic equivalent of the shared file cabinet. Although some technologies support workflow and project management to a degree, there is little support for the joint development lifecycle of planning, creating, evaluating, negotiating, and consolidating group work. Focusing broadly on collaboration challenges highlights limitations of current technology and can help provide direction for the kinds of information technology that will be needed to bridge the IT support gap to meet current and future collaboration challenges.  相似文献   

15.
Reuse-Conducive Development Environments   总被引:1,自引:0,他引:1  
Despite its well-recognized benefits, software reuse has not met its expected success due to technical, cognitive, and social difficulties. We have systematically analyzed the reuse problem (especially the cognitive and social difficulties faced by software developers who reuse) from a multidimensional perspective, drawing on our long-term research on information retrieval, human-computer interaction, and knowledge-based systems. Based on this analysis, we propose the concept of reuse-conducive development environments, which encourage and enable software developers to reuse through the smooth integration of reuse repository systems and development environments. We have designed, implemented, and evaluated CodeBroker—a reuse-conducive development environment—that autonomously locates and delivers task-relevant and personalized components into the current software development environment. Empirical evaluations of CodeBroker have shown that the system is effective in promoting reuse by enabling software developers to reuse components unknown to them, reducing the difficulties in locating components, and augmenting the programming capability of software developers.  相似文献   

16.
Open Source Software (OSS) development challenges traditional software engineering practices. In particular, OSS projects are managed by a large number of volunteers, working freely on the tasks they choose to undertake. OSS projects also rarely rely on explicit system-level design, or on project plans or schedules. Moreover, OSS developers work in arbitrary locations and collaborate almost exclusively over the Internet, using simple tools such as email and software code tracking databases (e.g. CVS).All the characteristics above make OSS development akin to weaving a tapestry of heterogeneous components. The OSS design process relies on various types of actors: people with prescribed roles, but also elements coming from a variety of information spaces (such as email and software code). The objective of our research is to understand the specific hybrid weaving accomplished by the actors of this distributed, collective design process. This, in turn, challenges traditional methodologies used to understand distributed software engineering: OSS development is simply too “fibrous” to lend itself well to analysis under a single methodological lens.In this paper, we describe the methodological framework we articulated to analyze collaborative design in the Open Source world. Our framework focuses on the links between the heterogeneous components of a project’s hybrid network. We combine ethnography, text mining, and socio-technical network analysis and visualization to understand OSS development in its totality. This way, we are able to simultaneously consider the social, technical, and cognitive aspects of OSS development. We describe our methodology in detail, and discuss its implications for future research on distributed collective practices.The order of the co-authors names is not significant.  相似文献   

17.
多年来的软件开发积累了大量的源代码,同时不少代码搜索工具也被开发出来,但是,现有的工具都不够精确,因而很少有人使用。本文提出一种高效的源代码搜索算法,通过识别查询语句与API的关系,以提高代码搜索的准确性。基于该算法,本文实现一个针对C#源代码的搜索工具,并通过客观实验与用户调研对算法进行评估。实验结果表明本文提出的搜索算法是十分有效的。   相似文献   

18.
With the increasing popularity of Internet, more and more developers are collaborating together for software development. During the collaboration, a lot of information related to software development, including communication and coordination information of developers, can be recorded in software repositories. The information can be employed to construct Developer Social Networks (DSNs) for facilitating tasks in software engineering. In this paper, we survey recent advances of DSNs and examine three fundamental steps of DSNs, namely construction, analysis, and applications. We summarize the state-of-the-art methods in the three steps and investigate the relationships among them. Furthermore, we discuss the main issues and point out the future opportunities in the study of DSNs.  相似文献   

19.
为优化软件项目管理,解决软件版本管理混乱、人工代码走查过程负责和结果难于控制的问题,研究了软件版本管理工具和代码走查工具,介绍了版本管理工具和代码走查工具在软件项目管理中应用。根据实践中软件项目管理的需求,提供了一种版本管理工具Subversion与代码走查工具Reviewboard相结合的系统的实现方法,介绍了版本管理工具和代码走查工具的安装部署,给出了一种基于该系统的软件开发应用流程。  相似文献   

20.
The design of distributed systems to support collaboration among groups of scientists raises new networking challenges that grid middleware developers are addressing. This field of development work, ‘e-Science’, is increasingly recognising the critical need of understanding the ordinary day-to-day work of doing research to inform design. We have investigated one particular area of collaborative social scientific work – the analysis of video data. Based on interviews and observational studies, we discuss current practices of social scientific work with digital video in three areas: Preparation for collaboration; Control of data and application; and Annotation configurations and techniques. For each, we describe how these requirements feature in our design of a distributed video analysis system as part of the MiMeG project: our security policy and distribution; the design of the control system; and providing freeform annotation over data. Finally, we review our design in light of initial use of the software between project partners; and discuss how we might transform the spatial configuration of the system to support annotation behaviour.  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号