stop This is the home page of a past seminar. The most current one is at SeminarOpenSource stop

Seminar "Open Source Software Engineering"

This is the homepage of the Seminar "Open Source Software Engineering" that is currently being taught during winter term 2004/2005 at Free University Berlin.

Overview

Traditionally software is build by companies and their professional software-engineers using a given process-structures for paying customers. During the last twenty years the open source movement has successfully embarked on a process based on a completely different paradigm. Projects like Linux, Apache, Mozilla or GCC are prime examples of industry-sized projects that have been developed by a style of collaboration, where volunteers work distributed, without direct monetary incentives and the resulting work is available free of charge and open for inspection down to the source-code level.

To discover and inspect the associated movement especially in regard to developing software the following topics have been selected:

Part I: As an Introduction for this seminar, we want to look back at the origin of the Open Source Movement and trace its evolution until the present day. The main focus is to be laid on ideas, philosophies and people that founded this new kind of doing software engineering as well as the places, documents, manifestos, promoters and political fights that shaped what has become known as Open Source.

Part II: I discovered this paper by chance and maybe it holds enough interesting contents for a second topic of historical quality. Nuvolari (2003) tries a historical look onto the development of steam engines in England to find parallels with the collective invention that is part of the open source movement. Another interesting paper by Leveson (1992) then talks about parallels between steam engines and software engineering with a more specific focus on safety. Comparing these two papers in the way they use historical analogies to promote their agenda and finding strong and weak points in their arguments (the analogies are a little forced at some points) and building a coherent historical comparison between the three kinds of engineering will be the main focus of this seminar topic.

The motivation of the individual to take on work in the Open Source community proves to be an interesting question. Why do individuals commit their valuable free time to write free software? We will look up the results of research on intrinsic and extrinsic motivation, the possiblity of "Flow" while programming and the sense of community that is said to be involved. This topic is to sum up all those findings and give a broad picture of the different reasons why people participate in OSS development projects.

The aspect of cooperation gets its own topic because it is still amazing that a global cooperation of individuals can produce the wide range of products as seen in the Open Source movement. But cooperation is not easy, as anybody can tell who has ever worked on a project with somebody else. This topic shall therefore investigate how global cooperation can work, how it does work, what the problems are that have been overcome by technology and which ones are still open, how do virtual developement teams achieve information exchange and are successfull in setting goals? What happens if cooperation fails and conflicts arise?

To construct software one in general needs a set of tools (at least an editor, a compiler). With this topic we want to have an explicit look at the development tools used to construct Free and Open Source software. We are interested in getting to know about a tool's history and acceptance within the developer community. Furthermore we take a glance at newer tools complementing or replacing older ones. We will have a look at the characteristics and innovative features of these newer tools that may soon be the de-facto standard within the community.

With the introduction of the open software development paradigm a technique for harvesting information has gained increased popularity that relies on automatized extraction from revision control systems (RCS). Especially in the beginning of the scientific research on Open Source we have seen a large amount of studies conducted with little more but statistical analysis from the cvs-logs. This seminar topic aims to talk about the methodological issues at hand and provide examples of how much information with what reliability can be gathered.

Gender (= Sexual identity, especially in relation to society or culture.) is a difficult topic when studying social systems and there is no way to deny that the Open Source movement seems to have a clear gender problem. Naming a single female community leader of an open source project is already an almost impossible endevaour, yet academic discussion of this problem seems to be a rare thing. With this topic we want to look into social sciences and research on technology and gender to inspect which reasons prevent women from having a larger influence in "open" communities.

The way software is constructed in teams of developers from the first steps of requirements analysis, specification and design to the stages of implementation, test and deployment is all captured by the term "process". Choosing, introducing and improving processes are some of the most important topics in Software Engineering since the management can act upon them. For Open Source we are faced with a number of problems that impede traditional processes from working: There is no centralized management that makes decisions, there are no meetings, no dead-lines, no assigned tasks, etc. How do the Open Source Software projects manage to develop quality software even when the process that seems to be evitable is chaos?

Developing software primarily is about getting problems solved and making money. The introduction of the open source development paradigm seems to threaten the secured foundation of commercial software development and has therefore drawn harsh critiscm by its proponents. This seminar topic shall position open source inside the business world and put facts and figures up to justify the hype.

Open Source is very tightly couple to the existence of certain licensing terms. This special relationship therefore requires some attention in this seminar. Different licensing models, their origins, proponents, legal battles and success stories shall be illustrated and presented. We also want to constrast popular Open Source Licenses with commerical licenses like Microsoft's End-User Agreements and investigate the possibility of dual licensing of Open Source projects.

Without leadership also Open Source projects cannot exist, much like any traditional software development. But the style of leadership can be very different, due to the different origin of the projects and the open possibilities for the future development. Examples for leadership styles are the "Benevolent Dictators" Torvalds and van Rossum or the democratic process of the Apache project. This seminar is aimed to shed some light onto the possiblities and realities of leadership in OSS.

As a second seperate topic we want to look at failed leadership, namely with leadership problems in X11 as a prime example and leadership changes as with the GIMP community.

When talking about software architecture, one refers to the structure of software as defined through system components and their relation among each other (Balzert, 2000). Within this topic it shall be evaluated how suitable traditional architectures are and which new models arise due to the more open processes of open source software projects.

For software to be truly open it must be released into the world for others to use and look at. The problem of doing so is well known to traditional Software Engineering: When and how should a release be done? How can we manage the process? Publish soon and often or rather sporadically? What are benefits and drawbacks of each approach and what are the arguments promoting them? How do we deal with the challenges of different plattforms?

This topic is also to discuss terminology (for instance: maintainer, feature-freeze, alpha and beta-versions, milestones, branches), processes and used tools.

Open Source software is often claimed to achieve high levels of safety and security when compared to traditionally developed software. On the other hand the common argument warns about the high risks that are due to the open access to the internal source documents. This seminar topic shall investigate current research into reliability, safety and security studies about Open Source projects. We want to find flaws in arguments from both sides, concerning the ability to find bugs and security related concerns.

Quality Assurance is the establishment of a framwork of organisational procedures and standards that lead to high-quality software (Sommerville, 2004). In contrast to traditional software engineering, open source projects lack a lot of the required structure to perform these procedures and to adhere to and enforce these standards. In many cases there is even resistance to yield to and implement such an framework as the ISO 9000 set. This seminar topic is to inspect and present the existing contrasts concerning QA.

After having discussed mostly topics that cast a positive light on the benefits and advantages of Open Source, we want look at the critiques that have been stirred up by the rise of the movement. This is necessary because some parts of the Open Source movement have reached a cult-like status where views become more and more subjective and are often mixed with political agenda.

Additionally famous stories, myths, people and texts of and about the OSS-movement shall be introduced.

References

The most important source of information of this seminar is the workshop-series "Workshops on Open Source Software Engineering" which was held four times so far as part of the International Conference on Software Engineering:

Then there is the new Europeen conference The First International Conference on Open Source Systems, which will be held in Genova from July 11th to 15th.

Additionally the workshop "Open Source Software Movements and Communities" as part of the International Conference on Communities and Technologies 2003 might be interesting.

As a link-collection and pool of additional references have a look at opensource.ucc.ie: Resources for Researchers.

Seminars covering the topic Open Source:

Maybe a little remark on style: Citing articles that have only been published on web-pages and not within journals, conferences and workshops is not always good practice. For instance one should not cite the homepage of a project, but rather add an appropriate footnote.

Organisation

In a seminar each participant has to examine a given question using already published scientific results. While it is not necessary to conduct scientific work oneself, it is still necessary to search, categorize, judge, compile, summarize and present the findings of others in an understandable way. Further details also about the details of the work can be found on the page SeminarRules (in German).

All published documents of this seminar are to be written in English since the aim is to procuce a concise source of information about Open Source.

If possible you as a participant should try to investigate the current research until you reach the border where unsolved and open research questions can be found. A seminar therefore provides an excellent way of getting to know the research literature needed to get started on a bachelor-, master or diploma-thesis.

The topics listed above will be distributed among all interested participants in the beginning of November. If there are multiple people interested in a single topic, then the order of subscription on the mailing-list will be used to assign topics. An exemption will be made for participants who engage in the seminar due to thesis-work.

If you have an additional topic that you would provide, please contact Christopher Oezbek. Topics like these are highly welcome.

The seminar is aimed at students in computer science (bachelor, master, diploma) who have successfully completed their first two years of study. Pre-existing knowledge in the domain of software engineering is certainly useful but not strictly required. The seminar will be introduced and topic assigned on the 15th of November 2004 at 10.00 o'clock in room 053.

Seminar results will be presented during a continuous session between winter term and summer term. The exact date for this will be determined by popular vote during the first meeting. In addition we will meet three times before the presentation of the results to talk about how to write a seminar paper and a presentation and to exercise giving talks.

Please get registered with the mailing-list at https://lists.spline.inf.fu-berlin.de/mailman/listinfo/se_s_opensource, since important information will be communicated only via it.

To sum it all up

Part I - Literature Search + BibTex

Part II - Paper

Part III - Presentation

People who gave up

Comments & Contact

If you have questions or suggestions don't hesitate to contact Christopher Oezbek.