Lessons learned from an open-source University project (original) (raw)
Related papers
2007
Abstract Open source projects are an interesting source for software engineering education and research. By participating in open source projects students can improve their programming and design capabilities. By reflecting on own participation by means of an established research method and plan, master's students can in addition contribute to increase knowledge concerning research questions. In this work we report on a concrete study in the context of the Net-beans open source project.
Open Source Software Development
This article examines and reviews what is known so far about free/open source software development (FOSSD). FOSSD is not the same as software engineering as that is portrayed in common textbooks. Instead, it is a complementary approach to address the many challenges that arise in the development of complex software systems that are often built outside of a traditional corporate software development environment. This article highlights some of the basic understandings for how FOSSD works based on empirical studies of FOSSD projects, processes, and work practices in different communities. This includes identification of different types of informal online artifacts that facilitate and constrain FOSSD projects. This article also identifies what different studies examine as well as the approaches used to sample and systematically study FOSSD. Next, opportunities for constructive crossover studies of software engineering and FOSSD help reveal new directions for further research study. Finally, the last section presents limitations and conclusions regarding studies of FOSSD.
Free and Open Source Software Development and Research: Opportunities for Software Engineering
Free/Libre/Open Source Software (FLOSS) communities have produced a large amount of valuable software that is directly or indirectly used daily by any person with access to a computer. The field of Software Engineering studies processes, mechanisms, tools, and frameworks for the development of software artifacts. Historically, however, most of Software Engineering research and education does not benefit from the large and rich source of data and experimental testbeds offered by FLOSS projects and their hundreds of millions of lines of working code. In this paper, we discuss how Software Engineering research and education can greatly benefit from the wealth of information available in the FLOSS ecosystem. We then evaluate how FLOSS has been used, up to now, by papers published in the Brazilian Symposium on Software Engineering. Finally, we present an agenda for the future, proposing concrete ways to exploit the synergies between research and education in Software Engineering and FLOSS projects.
Open Source Software: Lessons from and for Software Engineering
Computer, 2011
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's fundamental tenets and conventional wisdom. Research suggests a more balanced view. On one hand, OSS is not the "silver bullet" championed by its most vocal partisans. On the other hand, it does not radically diverge from traditional software engineering practice as its severest detractors claim, and, as evidenced by some notable successes, OSS offers many tangible benefits. OSS AS A SILVER BULLET Twenty-five years ago, IBM software engineer Fred Brooks famously contended that "there is no single development, in either technology or management technique, which by itself promises even one order of magnitude improvement within a decade in productivity, in reliability, in simplicity." 1 However, many claim that OSS is indeed such a silver bullet. Defenders argue that OSS, beyond its obvious cost advantages, is of very high quality. Contributors to OSS projects are in the top 5 percent of developers worldwide in terms of ability, and are self-selected and thus highly motivated. Furthermore, the testing pool is global, and peer review is truly independent. Another key advantage cited is the rapid development time of projects. The OSS community has taken odds with Brooks' law-namely, that "adding manpower to a late software product makes it later," 2 a conclusion based on his experience managing development of the IBM OS/360-by endorsing Linus's law: "given enough eyeballs, every bug is shallow." 3 There are many examples of OSS products of exceptional quality and reliability across a range of application domains-indeed, "category killers" such as the Linux kernel and Apache webserver perform so well that there is no market for an alternative. NOT SO FAST Critics concede that a staggering mélange of OSS products is readily available for free download, but they claim it is virtually impossible to predict the usability, stability, and reliability of these products. The uneven quality is not helped by a lack of documentation and the reliance on support and upgrades from a voluntary community who must be convinced to accept changes to suit specific circumstances. These flaws are exacerbated by a complex licensing situation in which even the lawyers cannot definitively resolve IP rights issues. 4 Furthermore, OSS arises from a development process that seems to flout traditional best practices. For example, typically there is no real formal design process, no risk assessment or measurable goals, often no direct monetary incentives for developers or organizations, informal coordination and control, and much redundancy as tasks are duplicated in parallel initiatives. All of this is anathema to conventional software engineering. Other analyses of OSS say that 30 years of prior software engineering research cannot be discounted so easily. The claims in relation to the quality of OSS products and of community feedback are particularly questionable when exposed to scrutiny. Quality A study by Ioannis Stamelos and colleagues assessed quality issues in the SuSE Linux 6.0 release. 5 Using the Logiscope code analysis tool, they examined more than 600,000 lines of code across 100 modules and found that only 50 percent were acceptable. Of the remainder, 31 percent required comments, 9 percent required further inspection, 4 percent required further testing, and 6 percent needed to be completely rewritten. These results are quite average in the software industry: only half of all modules meet generally accepted standards. In a similar vein, Srdjan Rusovan, Mark Lawford, and David Parnas studied the implementation of the Address Resolution Protocol in the Linux TCP/IP implementation and identified numerous software quality problems. 6
Open Source Software: A Big Leap in the Computer Education
We examine the appearance of open source software in computer science education. We will undertake with a concise tutorial on open source software introduction, including a depiction of major popular open source licenses. Later we deliberate the use of open source software in education discipline. We Present some advantage of open source software in the field of education Finally, we focus on the use of open source software in computer science education.
Results from software engineering research into open source development projects using public data
2000
This paper presents first results from research into open source projects from a software engineering perspective. The research methodology employed relies on public data retrieved from the CVS-repository of the GNOME project and relevant discussion groups. This methodology is described in detail and some of the results concerning the special characteristics of open source software development are given.(author's abstract)
Engaging Students in Open Source: Establishing FOSS Development at a University
Proceedings of the Annual Hawaii International Conference on System Sciences, 2019
Open source is widely used for educational purposes in higher education around the world. While many educators use open source resources for teaching, there seems to be few contributions to such projects of students as part of their university courses. In this work we present our experience on establishing open source development from student contributors as part of their university curriculum. Since 2010 more than 300 students from Graz University of Technology have been involved in the presented Catrobat project and have gained knowledge about agile software development as well as several related domains, e.g., project management, marketing, or graphical design. In this paper we provide detailed insights into the project's organization and evaluate in a study how students feel in this setting. As we conclude, bringing open source to university courses is an effective practical approach based on social learning and provides benefits for students and researchers.
Abstract. Free/Libre/Open Source Software (FLOSS) presents a strategy for developing software products that is substantially different from what is usually taught in Software Engineering courses. This paper discusses the benefits of using FLOSS in Software Engineering Education, proposes a list of topics that should be covered in FLOSS-based Software Engineering courses and briefly reports our experience at two Brazilian universities.
Open source projects in programming courses
2007
One of the main shortcomings of programming courses is the lack of practice with real-world systems. As a result, students feel unprepared for industry jobs. In parallel, open source software is accepting contributions even from inexperienced programmers and achieves software that competes both in quality and functionality with industrial systems. This article describes: first, a setting in which students were required to contribute to existing open source software; second, the evaluation of this experience using a motivation measuring technique; and third, an analysis of the efficiency and commitment of students over the time. The study shows that students are at first afraid of failing the assignment, but end up having the impression of a greater achievement. It seems also that students are inclined to keep working on the project to which they contributed after the end of the course.