Article

Supporting distributed and decentralized projects: Drawing lessons from the open source community

Authors:
To read the full-text of this research, you can request a copy directly from the authors.

Abstract

Open source projects are typically organized in a distributed and decentralized manner. These factors strongly determine the pro-cesses followed and constrain the types of tools that can be utilized. This paper explores how distribution and decentralization have affected processes and tools in existing open source projects with the goals of summarizing the lessons learned and identifying oppor-tunities for improving both. Issues considered include decision-making, accountability, communication, awareness, rationale, man-aging source code, testing, and release management.

No full-text available

Request Full-text Paper PDF

To read the full-text of this research,
you can request a copy directly from the authors.

... As comunidades são amplamente estudadas em diversas áreas do conhecimento (ERENKRANTZ;TAYLOR, 2003), (LANGLOIS; GARZARELLI, 2008) e (KAUR; CHAHAL; SAINI, 2022). O engajamento dos membros da comunidade de software livre determina a continuidade da atuação da própria comunidade. ...
... As comunidades são amplamente estudadas em diversas áreas do conhecimento (ERENKRANTZ;TAYLOR, 2003), (LANGLOIS; GARZARELLI, 2008) e (KAUR; CHAHAL; SAINI, 2022). O engajamento dos membros da comunidade de software livre determina a continuidade da atuação da própria comunidade. ...
Article
Full-text available
No cenário contemporâneo da tecnologia, as comunidades de software livre têm desempenhado um papel crucial em destacar plataformas que buscam oferecer soluções educacionais de código aberto para instituições de ensino-aprendizagem. No entanto, o sucesso e a sustentabilidade das comunidades dependem em grande parte do engajamento dos membros, bem como das estratégias adotadas para promover a colaboração e a participação contínua. Diante disto, o objetivo deste estudo é descrever a experiência vivenciada no contexto da comunidade Openredu.org como ambiente para condução de pesquisas, inovação e colaboração no desenvolvimento de projetos educacionais. Para isto, se fez necessário participar ativamente das estratégias utilizadas no engajamento de membros voluntários na comunidade. Além disto, desenvolver abordagens de tecnologias, investigar as atividades, mapear as estratégias, características de governança e experiências que aproximam os membros da missão, visão e valores do projeto. Os resultados ressaltam a experiência de engajamento dos membros, motivada pela colaboração, aprendizado e reconhecimento do papel da liderança para organização e facilitação do processo de tomada de decisão. Conclui-se que os desafios financeiros e humanos precisam ser constantemente enfrentados para melhoria do projeto.
... Open source projects are typically organized in a distributed and decentralized manner, where certain factors determine the long-run sustainability of the operations and the community involved [46]. The process of decentralizing SCaS initiatives, if done right, could contribute further to building overall confidence in the system. ...
Preprint
Full-text available
The potential for blockchain technology to eliminate the middleman and replace the top down hierarchical model of governance with a system of distributed cooperation has opened up many new opportunities, as well as dilemmas. Surpassing the level of acceptance by early tech adopters, the market of smart contracts is now moving towards wider acceptance from regular (non tech) users. For this to happen however, smart contract development will have to overcome certain technical and legal obstacles to bring the code and the user closer. Guided by notions from contract law and consumer protection we highlight the information gap that exists between users, legal bodies and the source code. We present a spectrum of low-code to no-code initiatives that aim at bridging this gap, promising the potential of higher regulatory acceptance. Nevertheless, this highlights the so called "Pitfall of the Trustless Dream", because arguably solutions to the information gap tend to make the system more centralized. In this article, we aim to make a practical contribution of relevance to the wide-spread adoption of smart contracts and their legal acceptance by analyzing the evolving practices that bring the user and the code closer.
... Open source projects are typically organized in a distributed and decentralized manner, where certain factors determine the long-run sustainability of the operations and the community involved [46]. The process of decentralizing SCaS initiatives, if done right, could contribute further to building overall confidence in the system. ...
Conference Paper
Full-text available
The potential for blockchain technology to eliminate the middleman and replace the top-down hierarchical model of governance with a system of distributed cooperation has opened up many new opportunities, as well as dilemmas. Surpassing the level of acceptance by early tech adopters, the market of smart contracts is now moving towards wider acceptance from regular (non-tech) users. For this to happen however, smart contract development will have to overcome certain technical and legal obstacles to bring the code and the user closer. Guided by notions from contract law and consumer protection we highlight the 'information gap' that exists between users (including judges/legal bodies) and the source code. We present a spectrum of low-code to no-code initiatives that aim at bridging this gap, promising the potential of higher regulatory acceptance. Nevertheless, this highlights the 'The Pitfall of the Trustless Dream', because arguably solutions to the information gap tend to make the system more centralized. In this article, we aim to make a practical contribution of relevance to the widespread adoption of smart contracts and their legal acceptance by analyzing the evolving practices that bring the user and the code closer.
... As a first step, I focus on studying the effects of developers' personality in open source software (OSS) projects, intended as an extreme form of distributed projects in which no single organization controls the project [56]. OSS project teams consist, in fact, of different types of contributors [102,103]. ...
Thesis
Full-text available
With the growing amount of time spent online, people seek social connections in virtual environments. Thus, numerous platforms are built around certain passions dedicating space to the users who share the same interests and want to create something to develop their abilities, gain some visibility or rewards, and have fun in the process. This is how online creative communities take form and host large numbers of enthusiasts. For example, the OSS world was able to create projects with a huge impact and great value e.g. Firefox, Linux, Apache. However, there is also a growing number of other communities of members interested in creative topics other than software development, such as photography, image creation, music composition, the design of short films, animations and small independent video games. Previous research has largely investigated the motivations for the success of online creative communities i.e., their popularity. However, we still do not fully understand the factors that lead to successful collaborations among the members of such communities, i.e., why some collaborations succeed in achieving their goal whereas others fail. Also, the main focus of prior research has been on OSS communities. As such, there is a gap in the literature between the studies on the success of collaborations in OSS as compared to artistic communities. In this research work, I bridge this gap by analyzing the structure and the collaborations in some communities for music co-creation and comparing my findings to previous researches in both OSS and other artistic fields (e.g., animations). The more successful collaborations in a community, the more ’healthy’ it is, in the sense that it is capable of maintaining its members engaged and attracting new ones. Recent initiatives such as CHAOS, SecoHealth, and SECO-Assist are interested in addressing the health of individual software projects as well as larger ecosystems. Thus, in this research work, I approach the problem of assessing community health by analyzing the developer-related factors that may influence the onboarding of newcomers in a community and prevent the abandonment of core members. Throughout my work, I adopted different kinds of statistical analyses. First I applied some social network analysis practices to understand the structure of online communities and the relationships between the main activities. Second, I applied different regression models to identify the social and technical factors associated with the success of the collaborations. I also involved users in online communities to validate my findings and get insights from their direct experience through surveys. Finally, I developed a novel model representing the developers’ disengagement stages from OSS projects and I proposed and developed a developer-centered algorithm to identify such states within the GitHub organizations. I also involved OSS developers through online surveys and interviews to validate my approach. The results of this thesis are the following: (i) A list of the success factors of online collaborations in creative communities, both artistic and OSS; (ii) A set of guidelines for maintainers, to support successful collaboration in their communities and fostering users’ participation, and recommendations for online platform designers, to build attractive and engaging environments for communities; finally, (iii) a detailed model of the disengagement process aimed at keeping the maintainers’ aware of their community health.
... One reason for these conflicts lies in the complex and multi-faceted nature of personality. Considering that widespread agreement on the effectiveness of large-scale distributed projects in which no single organization controls the project [14] and, as such, the products developed are typically the results of collective efforts performed by multiple members, each having their different personality [15] . Hence, the study of personalities of OSS developers has the potential of explaining software engineers' behavior in distributed software development in general [16] . ...
... As a first step, we focus on studying the effects of developers' personality in open source software (OSS) projects, intended as an extreme form of distributed projects in which no single organization controls the project [14]. OSS project teams consist, in fact, of different types of contributors [18] [19]. ...
Conference Paper
Full-text available
Large-scale distributed projects are typically the results of collective efforts performed by multiple developers, each one having a different personality. The study of developers' personalities has the potential of explaining their' behavior in various contexts. For example, the propensity to trust others, a critical factor to the success of global software engineering - has been found to influence positively the result of code reviews in distributed projects. In this paper, we perform a quantitative analysis of developers' personality in open source software projects, intended as an extreme form of distributed projects in which no single organization controls the project. We mine ecosystem-level data from the code commits and email messages contributed by the developers working on the Apache Software Foundation (ASF) projects, as representative of large scale-distributed projects. We find that developers become over time more conscientious, agreeable, and neurotic. Moreover, personality traits do not vary with their role, membership, and extent of contribution to the projects. We also find evidence that more open and more agreeable developers are more likely to become project contributors.
... These different roles are chosen by self-selecting individuals, and they are authorized with power according to their sustained contributions over time (Erenkrantz and Taylor, 2003). Such hierarchical governance with different roles in Apache has proved to have a direct influence on code production (Mockus et al., 2002). ...
Article
Full-text available
The Internet based cyber-physical world has profoundly changed the information environment for the development of artificial intelligence (AI), bringing a new wave of AI research and promoting it into the new era of AI 2.0. As one of the most prominent characteristics of research in AI 2.0 era, crowd intelligence has attracted much attention from both industry and research communities. Specifically, crowd intelligence provides a novel problem-solving paradigm through gathering the intelligence of crowds to address challenges. In particular, due to the rapid development of the sharing economy, crowd intelligence not only becomes a new approach to solving scientific challenges, but has also been integrated into all kinds of application scenarios in daily life, e.g., online-to-offline (O2O) application, real-time traffic monitoring, and logistics management. In this paper, we survey existing studies of crowd intelligence. First, we describe the concept of crowd intelligence, and explain its relationship to the existing related concepts, e.g., crowdsourcing and human computation. Then, we introduce four categories of representative crowd intelligence platforms. We summarize three core research problems and the state-of-the-art techniques of crowd intelligence. Finally, we discuss promising future research directions of crowd intelligence.
... Furthermore, while distributed development has proven extremely problematic and challenging for organizations [Herbsleb and Grinter 1999], open-source software development represents a successful exemplar of distributed development. Several authors have argued for drawing lessons from open-source communities and transferring those best practices to commercial software development [O'Reilly 1999;Asundi 2001;Augustin et al. 2002;Erenkrantz and Taylor 2003;Fitzgerald 2011;Rigby et al. 2012]. The open-source phenomenon has attracted significant attention from the research community seeking to understand how open-source communities can achieve such success. ...
... Revealing differences in interests between the involved parties should be done as early as possible. (Erenkrantz & Taylor, 2003) Moreover, the overall performance in the project may suffer when the involved parties are not aligned to the same objective (Bhat et al. , 2006). ...
... Furthermore, while distributed development has proven extremely problematic and challenging for organizations [Herbsleb and Grinter 1999], open-source software development represents a successful exemplar of distributed development. Several authors have argued for drawing lessons from open-source communities and transferring those best practices to commercial software development [O'Reilly 1999;Asundi 2001;Augustin et al. 2002;Erenkrantz and Taylor 2003;Fitzgerald 2011;Rigby et al. 2012]. The open-source phenomenon has attracted significant attention from the research community seeking to understand how open-source communities can achieve such success. ...
Article
Full-text available
A number of organizations have adopted Open Source Software (OSS) development practices to support or augment their software development processes, a phenomenon frequently referred to as Inner Source. How- ever the adoption of Inner Source is not a straightforward issue. Many organizations are struggling with the question of whether Inner Source is an appropriate approach to software development for them in the first place. This paper presents a framework derived from the literature on Inner Source, which identifies nine important factors that need to be considered when implementing Inner Source. The framework can be used as a ‘probing’ instrument to assess an organization on these nine factors so as to gain an understanding of whether or not Inner Source is suitable. We applied the framework in three case studies at Philips Health- care, Neopost Technologies, and Rolls-Royce, which are all large organizations that have either adopted Inner Source or were planning to do so. Based on the results presented in this paper, we outline directions for future research.
... An overview of how F/oss projects are organised is presented in [6]. The paper explains key terminology and overviews the main processes. ...
Article
Full-text available
The goal of Edos is to improve F/oss production and code distribution processes. A prerequisite to this is to formally distinguish the dierent concepts in the processes, the roles undertaken by users, the data types used, and their inter-relationships. This allows one to determine the data that must always be distributed together from those that need not be; from a security and management viewpoint, it formalises the privileges and information that a particular user requires at any given time. This note proposes elements of a model for F/oss that makes roles and data types explicit. We hope that it can serve as a basis for future discussion.
... For each aspect, dedicated tools and techniques exist. In addition to these tools and techniques, it may also be beneficial to borrow some of the tools and techniques used in software engineering (Ramanath andGilbert 2004, Gilbert 2004), open source software development (Erenkrantz and Taylor 2003) and the social sciences (Seale 1999). ...
... Somente a partir da metade da década de 1990, como por exemplo, os trabalhos de [Ben-Shaul 1998] e [Grundy 1998], começou a haver uma vinculação entre a oportunidade no uso e evolução da tecnologia dos PSEEs para fornecer apoio automatizado ao desenvolvimento não co-localizado de software. Segundo Taylor (2003), descentralização é um termo diretamente relacionado com a dispersão do controle sobre as atividades no desenvolvimento de software. Podese afirmar assim que no desenvolvimento descentralizado não existe a obrigatoriedade de uma entidade centralizada para controle das atividades, e a coordenação entre as entidades envolvidas é resultado de decisões e acordos multilaterais. ...
Article
In decentralized software development the coordination and collaboration problems are hardened by the geographical and cultural distances among clients and suppliers. This paper describes a tool that provides a technological support to the problems of monitoring and coordination of decentralized software process development. This work analyses and illustrates how the Acquisition Model of the MPS.BR and some real problems extracted from the literature are supported by the proposed tool model. Resumo. Em organizações que desenvolvem software de maneira descentralizada os problemas de coordenação e colaboração são agravados pelas distâncias geográfica e cultural dos envolvidos no processo. Este artigo descreve uma ferramenta que provê uma infra-estrutura tecnológica de apoio a monitoração e coordenação de processos descentralizados de desenvolvimento de software. Neste trabalho, as práticas de monitoração de processos do Modelo de Aquisição do MPS.BR e problemas reais coletados na literatura são analisados e relacionados às funcionalidades da ferramenta.
... Companies promote team building via company sponsored picnics, retreats etc. Unfortunately these activities are most effective when the team members are collocated. An example of the feeling of belonging to a team when the members are distributed is the strong allegiance that open source developers have for their projects [4]. ...
Article
Full-text available
Maslow created a hierarchy of needs for the individual. He placed the needs in a hierarchy such that only after the needs of a layer are satisfied would an individual care about the needs in the next layer. Using Maslow's insight we create a hierarchy of needs for the team. In this paper we map the needs of a software development team to the need layers that Maslow prescribed for the individual. In creating this mapping we come across an interesting observation that most collaborative tools focus on enhancing the efficiency of the team and de-pend on collocation to create team cohesiveness.
... Converting a product's users into its co-developers may improve quality and gain specialized new features that may turn out to be important to a wider audience [7]. Mockus and Herbsleb also suggest that commercial software development can benefit from certain OSS practices [8], while other researchers have suggested that lessons can be learned from OSS communities [9,10]. Several success stories and lessons learned have been reported based on case studies in a number of large organizations that have adopted Inner Source, such as Alcatel-Lucent [5], HP 0950-5849/$ -see front matter Ó 2011 Elsevier B.V. All rights reserved. ...
... delines/process.html Erenkrantz 2003] 5 . ...
Article
Full-text available
An established Open Source Software community (Apache Cocoon) was explored using an online questionnaire about demographic data and individual and group-related factors. Individual factors encompassed forms of contributions, motivation, expertise and knowledge. Role structures, expectations towards other members, trust and collaboration issues were analysed at group level. More than 60% of the developer community completed this questionnaire. Results provide a valuable basis for deeper understanding of knowledge sharing, collaboration and innovation processes in distributed work groups
Preprint
Full-text available
Context: Large-scale distributed projects are typically the results of collective efforts performed by multiple developers with heterogeneous personalities. Objective: We aim to find evidence that personalities can explain developers' behavior in large scale-distributed projects. For example, the propensity to trust others - a critical factor for the success of global software engineering - has been found to influence positively the result of code reviews in distributed projects. Method: In this paper, we perform a quantitative analysis of ecosystem-level data from the code commits and email messages contributed by the developers working on the Apache Software Foundation (ASF) projects, as representative of large scale-distributed projects. Results: We find that there are three common types of personality profiles among Apache developers, characterized in particular by their level of Agreeableness and Neuroticism. We also confirm that developers' personality is stable over time. Moreover, personality traits do not vary with their role, membership, and extent of contribution to the projects. We also find evidence that more open developers are more likely to make contributors to Apache projects. Conclusion: Overall, our findings reinforce the need for future studies on human factors in software engineering to use psychometric tools to control for differences in developers' personalities.
Chapter
Outsourcing of the software development activity has been on the increase in recent years according to both US and European reports. However, in many cases outsourcing of software development, often referred to as global software engineering, has not delivered on its promise (e.g. Nakatsu and Iacovou 2009; Tiwana and Keil 2009; Ó Conchúir et al. 2009). The success of the open source software movement (Feller et al. 2005), which seems to overcome many of the challenges associated with global software engineering, has been an inspiration for a number of specific forms of software sourcing, including opensourcing (Ågerfalk and Fitzgerald 2008), innersourcing (Stol and Fitzgerald 2015) and crowdsourcing (Stol and Fitzgerald 2014a). By integrating the findings from these earlier studies, this book explores and compares these forms of open source-inspired sourcing. These novel approaches to software sourcing differ from traditional outsourcing in significant ways and little is known about how they can work in practice. Therefore, our goal is to provide research-based advice to managers and developers facing software sourcing decisions.
Article
Full-text available
Despite initial suggestions to the contrary, open source software projects exhibit many of the fundamental tenets of software engineering. Likewise, the existence of category-killer apps suggests that conventional software engineering can draw some lessons from OSS. Open source software can elicit strongly contrasting reactions. Advocates claim that OSS is high-quality software produced on a rapid time scale and for free or at very low cost by extremely talented developers. At the same time, critics characterize OSS as variable-quality software that has little or no documentation, is unpredictable as to stability or reliability, and rests on an uncertain legal foundation-the result of a chaotic development process that is completely alien to software engineering fundamental tenets and conventional wisdom.
Article
Free and open source software development is an alternative to traditional software engineering as an approach to the development of complex software systems. It is a way of developing software based on geographically distributed teams of volunteers without apparent central plan or traditional mechanisms of coordination. The purpose of this thesis is to summarize the current knowledge about free and open source software development and explore the ways on which further understanding on it could be gained. The results of research on the field as well as the research methods are introduced and discussed. Also adapting software process metrics to the context of free and open source software development is illustrated and the possibilities to utilize them as tools to validate other research are discussed.
Conference Paper
Full-text available
This paper addresses the development of mechanisms for the creation of OSSD exchanges that could be used by developers across any geographical range, as long as all the developers can interact via some open network infrastructure such as the Internet. The structure of these exchanges can range from public repositories such as Sourceforge.net to intra-organizational forums for software development within an enterprise. We examine in particular the structure of an exchange model based on protocols for a robust online marketplace. Full Text at Springer, may require registration or fee
Article
Full-text available
Configuration management tools are at the heart of every software project. Thus, it should not be surprising that they play a central role in Open Source projects as well. Most prominent in use is CVS, which is—indeed—an Open Source system in its own right. In this position paper we examine why CVS plays such a major role in the management of Open Source projects. Furthermore, we raise some areas in which we believe CVS should be improved, both in the short and long term. Concurrent Versions Systems As one of the essential tools needed during the development of a software product, configuration management tools were among the first faced with the reality of having to operate in a distributed setting. In response, many distributed CM systems have been developed in the past few years (e.g., ClearCase MultiSite [1], Gradient [3], ScmEngine [5], DISC [12], WWCM [13], DSCS [16], Perforce [17]). Despite this broad availability, it is clear that a single system has emerged as the de-facto
Article
Full-text available
The World-Wide Web connects islands of information, along with the people seeking that information, from within corporate intranets and across the global Internet, easily and effectively. Sharing information without regard to physical location has prompted new forms of virtual business and social endeavors. A virtual enterprise is an organization unconstrained by geographic location, and a membership intersecting multiple traditional organizations. Virtual enterprises can be formed within large corporations (consisting of groups at distributed sites), as parts of business alliances or task forces [4], and even among individuals working independently of any corporate connection. Indeed, all that is needed to form a virtual enterprise is at least one common goal, a shared information space, a means of coordinating users’ efforts, and people willing to share the work.
Conference Paper
Full-text available
Technical, cognitive and social factors inhibit the widespread success of systematic software reuse. Our research is primarily concerned with the cognitive and social challenges faced by software developers: how to motivate them to reuse software, and how to reduce the difficulty of locating components from a large reuse repository. Our research has explored a new interaction style between software developers and reuse repository systems enabled by information delivery mechanisms. Instead of passively waiting for software developers to explore the reuse repository with explicit queries, information delivery autonomously locates and presents components by using the developers' partially written programs as implicit queries. We have designed, implemented, and evaluated a system called CodeBroker, which illustrates different techniques to address the essential challenges in information delivery: to make the delivered information relevant to the task at hand and personalized to the background knowledge of an individual developer. Empirical evaluations of CodeBroker show that information delivery is effective in promoting reuse.
Conference Paper
Full-text available
Global software development is rapidly becoming the norm for technology companies. Previous qualitative research suggests that multi-site development may increase the development cycle time. We use both survey data and data from the source code change management system to model the extent of delay in a multi-site software development organization, and explore several possible mechanisms for this delay. We also measure differences in same-site and cross-site communication patterns, and analyze the relationship of these variables to delay. Our results show that, compared to same-site work, cross-site work takes much longer and requires more people for work of equal size and complexity. We also report a strong relationship between delay in cross-site work and the degree to which remote colleagues are perceived to help out when workloads are heavy. We discuss the implications of our findings for collaboration technology for distributed software development.
Article
Full-text available
Most reports of Internet collaboration refer to small scale operations among a few authors or designers. However, several projects have shown that the Internet can also be the locus for large scale collaboration. In these projects, contributors from around the world combine their individual forces and develop a product that rivals those of multibillion dollar corporations. The Apache HTTP Server Project is a case in point. This collaborative software development effort has created a robust, feature-rich HTTP server software package that currently dominates the public Internet market (46 percent compared with 16 percent for Microsoft and 12 percent for Netscape, according to a June 1997 survey published by Netcraft). The software and its source code are free, but Apache's popularity is more often attributed to performance than price. The project is managed by the Apache Group, a geographically distributed group of volunteers who use the Internet and Web to communicate, develop, and distribute the server and its related documentation. In addition, hundreds of users have contributed ideas, code, and documentation to the project
Article
The Apache Project is a collaborative software development effort aimed at creating and maintaining a robust, secure, efficient, extensible and open-source implementation of an HTTP Web server. The project is managed by the U.S.-based Apache Group, a geographically distributed set of volunteers who use the Internet and Web to communicate, develop and distribute the server and its related documentation. Apache has always been a multinational project, with core developers located in the U.S., Great Britain, Canada, Germany and Italy. Although the Apache Group makes decisions as a whole, all of the actual work of the project is done by individuals. The group does not write code, design solutions, document products, or provide support to the customers, individual people do that. The group provides an environment for collaboration and an excellent trial-by-fire for ideas and code, but the creative energy needed to solve a particular problem, redesign a piece of the system, or fix a given bug is almost always contributed by individual volunteers working on their own.
Conference Paper
The success of several Open SourceTM software systems, e.g., Apache, Bind, Emacs, and Linux, has recently sparked interest in studying and emulating the software engineering principles underlying this innovative development and use model. Certain aspects of the Open Source development method are having fundamental and far reaching consequences on general software engineering practices. To leverage such Open Source methods and tools, we have defined an innovative software engineering paradigm for large corporations: progressive open source (POS). POS leverages the power of Open Source methods and tools for large corporations in a progressive manner: starting from completely within the corporation, to include partner businesses, and eventually complete Open Source. In this paper we present the design goals and principles for POS. We illustrate POS with two programs in HP: Corporate Source and the collaborative development program. We present early results from both these programs suggesting the power and necessity of POS for all modern large corporations.
Conference Paper
Focuses on investigating the combined use of semantic and structural information of programs to support the comprehension tasks involved in the maintenance and reengineering of software systems. "Semantic information" refers to the domain-specific issues (both the problem and the development domains) of a software system. The other dimension, structural information, refers to issues such as the actual syntactic structure of the program, along with the control and data flow that it represents. An advanced information retrieval method, latent semantic indexing, is used to define a semantic similarity measure between software components. Components within a software system are then clustered together using this similarity measure. Simple structural information (i.e. the file organization) of the software system is then used to assess the semantic cohesion of the clusters and files with respect to each other. The measures are formally defined for general application. A set of experiments is presented which demonstrates how these measures can assist in the understanding of a nontrivial software system, namely a version of NCSA Mosaic.
Article
Regression testing is applied to modified software to provide confidence that the changed parts behave as intended and that the unchanged parts have not been adversely affected by the modifications. To reduce the cost of regression testing, test cases are selected from the test suite that was used to test the original version of the software---this process is called regression test selection. A safe regressiontest -selection algorithm selects every test case in the test suite that may reveal a fault in the modified software. Safe regression-test-selection techniques can help to reduce the time required to perform regression testing because they select only a portion of the test suite for use in the testing but guarantee that the faults revealed by this subset will be the same as those revealed by running the entire test suite. This paper presents the first safe regression-test-selection technique that, based on the use of a suitable representation, handles the features of the Java language. Unlike other safe regression test selection techniques, the presented technique also handles incomplete programs. The technique can thus be safely applied in the (very common) case of Java software that uses external libraries or components
Apache HTTP Server Project Guidelines and Voting Rules
  • The Apache
  • Http Server
  • Project
The Apache HTTP Server Project. Apache HTTP Server Project Guidelines and Voting Rules. <http:// httpd.apache.org/dev/guidelines.html>, HTML, 2003.
<http://subversion.tigris
  • Collabnet
  • Subversion
CollabNet. Subversion. <http://subversion.tigris.org/>, HTML, 2003.
Netcraft Web Server Survey
  • Netcraft
Netcraft. Netcraft Web Server Survey. <http://www.netcraft.com/survey/>, HTML, 2003.
PHP: Documentation . <http://www.php.net/ docs
  • Php The
  • Group
The PHP Group. PHP: Documentation. <http://www.php.net/ docs.php>, HTML, 2003.
The BSD Family Tree . Daemon News
  • J Howard
Howard, J. The BSD Family Tree. Daemon News. April, 2001. <http://www.daemonnews.org/200104/ bsd_family.html>.