You are here: SE » TeachingHome » SeminarOpenSource2004
  • Set HOME=http://www.inf.fu-berlin.de/inst/ag-se/teaching/S-OpenSource-2004
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

  • Get registered with the mailing-list.
  • Preparation meeting is on the 15.11.2004 at 10.00 o'clock in room 053.
  • Post topic ideas.
  • Block-Seminar early half of the non-lecture part of the semester.
  • Read the topic descriptions so that you don't arrive unprepared.
  • Have a look at the "seminar rules"-page.

Part I - Literature Search + BibTex

  • Next meeting: 13.12.2004 - from 12 to 14 o'clock in room K40.
  • Date for block seminar calender week 9 or 10 (28.02-04.03 or 07.03-11.03) will be determined in the following meetings.
  • Slides for the talk given in the meeting
  • Search at least 10 additional pieces of literature that fit your topic and are of good quality.
  • Find at least 5 additional pieces of literature for the topics of the peers you have been assigned to. Talk to them about how you found the stuff and how you picked the papers as being of good quality. Maybe a little meeting (20 minutes) would be good.
  • Three of those have to be from a library (CS library, library of the Zuse Institute, FU library, TU library).
  • Try each of the techniques mentioned on LiteratureSearchRules.
  • At least 50% papers. Online articles might help you with understanding the problem, but they are usually not scientific enough to permit citation.
  • Papers that are already listed on the webpage directly don't count towards your results but might be good starting points.
  • If you cannot get hold of papers because the journals are not available online or in the library, stop by at my office (please make an appointment via email. Always remember: The best papers and sources are probably not open.
  • Edit your topics in the following way:
    • Get an account with TWiki.
    • Put your name and contact information up on your topic page.
    • Add all literature references you found to the page and create a BibTeX-file containing accordingly.
  • Of course you should read the papers and make notes, try to get a good feel for:
    • The topic (change the introduction section on your subpage).
    • The key-questions (add your questions appropriatly).
    • The people behind the research (it would be great, if you find pictures and/or personal homepages that you want to link from the seminar pages)
  • If you have remarks on how this seminar is taught (for instance you think it is too much work or too little work), then stop by and we can talk about it.
  • If you spot mistakes or ambiguities, it would be great if you help to resolve them.
  • Tutorial-Link for BibTeX

Part II - Paper

  • Next meeting: 17.01.2004 - from 12 to 14 o'clock in room K40.
  • The date for the block seminar has been chosen: 07.03.05 - 11.03.05 (probably we will only need 2 or 3 days)
  • There are no slides since all the content is on the seminar-page.
  • The language issue:
    • I would clearly prefer all written documents to be in English.
    • Here some reasons why:
      • A seminar is a good way to practice one's own English. It is better to find problems in a seminar than discover them later at work.
      • Probably most of the papers you have read are in English. Translating all the terminology and developing a scientific style in German will be difficult and time-consuming.
      • Since the English words and sentences are shorter in average, I will reduce the paper-length requirements for the English papers.
      • Your talk will still be in German of course (even though your slides should be in English again).
  • Your talk will be 1 hour (you will be stopped cold after 5 minutes overtime) and 20 minutes for questions and dicussions.
  • Have a look at the assignment given in the presentation and make appointments with me.
  • Paper-Template.zip has been uploaded.
  • If you feel there is overlap between your topic and the topic of somebody else (for instance Tobias is doing the introduction) then discuss it using the mailing list to make clear assignments (Will you cover this aspect? You don't need to talk about this, because I already did…)
  • Slides for the talk about writing a paper

Part III - Presentation

  • Write the paper and prepare the slides.
  • Use the slide-template from the course webpage and stick to the font- and layout settings in the file.
  • If interested contact me to do a practice presentation.
  • Send your papers and slides to your peers.
  • Expected number of pages is between 10 and 20. A little more is expected when the text is in German.
  • For a 60 minutes talk you should calculate with around 30-40 slides (that's 1 slide every 1.5 - 2 minutes)
  • Deadline: 10 days before the seminar (25.02).
  • Peer-Review Deadline: 5 days before the seminar (02.03).
  • Hand-in: 1 day before the seminar starts (06.03).
  • Final corrections: 1 week after seminar (20.03).
  • Seminar is held at Arnimallee 2-6 (PI-Gebäude) in SR 007/008
  • Slides for the talk about giving a presentation

People who gave up

Comments & Contact

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