II
Inhaltsverzeichnis
Inhaltsverzeichnis II
Abbildungsverzeichnis III
Tabellenverzeichnis IV
Abk ürzungsverzeichnis V
1 Einleitung 1
1.1 Ausgangssituation 3
1.2 Zielsetzung 4
1.3 Vorgehensweise 5
2 Grundlagen 7
2.1 Begriffsdefinitionen 7
2.1.1 Open Source Software. 7
2.1.2 Freie Software. 8
2.1.3 Gemeinsamkeiten und Unterschiede 8
2.1.4 Modelle. 9
2.2 Open Source als Konzept für die Softwareentwicklung. 9
2.2.1 Proprietäre Softwareentwicklung 10
2.2.2 Open Source Softwareentwicklung 11
3 Open Source Modelle 14
3.1 Internet als Kommunikationsplattform 14
3.2 Open Source Communities. 15
3.2.1 Struktur und Organisation 15
3.2.2 Mitglieder und ihre Rollen 16
3.3 Entwicklungsmodelle im Kontext von Open Source 18
3.3.1 Entwicklungsmuster 19
3.3.2 Klassifikationen von Open Source Softwareentwicklungen 24
3.4 Analyse und Vergleich der dargestellten Modelle. 28
3.4.1 Morphologische Methode. 28
3.4.2 Open Source Softwarebeispiel. 31
3.4.3 Vergleich von Open Source Modellen. 34
4 Zusammenfassung und Ausblick 36
Literaturverzeichnis VI
Abbildungsverzeichnis
Abbildung 1: Vorgehensweise..................................................................................................6 Abbildung 2: Allgemeine Struktur einer Open Source Community vgl.
[Koch 2004, Nakakoji 2002]..............................................................................16 Abbildung 3: Klassifizierung der am Open Source Softwareentwicklungsprozess beteiligten Personen und ihren Aufgaben ..........................................................................18 Abbildung 4: Einfacher Entwicklungsstrang vgl. [Nakakoji 2002]...........................................21 Abbildung 5: Einfacher Entwicklungsstrang mit Testversionen vgl. [Nakakoji 2002] .............22 Abbildung 6: Mehrfacher Entwicklungsstrang vgl. [Nakakoji 2002]........................................23 Abbildung 7: Mehrfacher Entwicklungsstrang nach Anforderung vgl. [Nakakoji 2002] ..........24 Abbildung 8: Möglicher evolutionärer Prozess von Open Source Softwareentwicklungen vgl.
[Nakakoji 2002] .................................................................................................28
Tabellenverzeichnis
Tabelle 1: Hochgerechnete Größen von Open Source Communities [Johnson 2007] ............4 Tabelle 2: Verwendete Symbole und ihre Erläuterung...........................................................20 Tabelle 3: Morphologische Matrix ..........................................................................................30 Tabelle 4: Kombination von Ausprägungen für das Apache Webserver
Entwicklungsmodell..............................................................................................33
Abkürzungsverzeichnis
ASF Apache Software Foundation CVS Concurrent Versioning System FSF Free Software Foundation GPL GNU General Public License HTTP HyperText Transfer Protocol HTTPD HyperText Transfer Protocol Daemon IP Internet Protocol NCSA National Center for Supercomputing Applications OSI Open Source Initiative OSD Open Source Definition TCP Transfer Control Protocol UML Unified Modeling Language
1 Einleitung
Als das Computerzeitalter in der Mitte des 20. Jahrhunderts begann, gab es noch keine Softwarefirmen im heutigen Sinne. Die Software war Bestandteil der von den Hardwareherstellern angebotenen Computersysteme. Zu diesem Zeitpunkt wurden zusätzliche Softwareprogramme von Anwendern lediglich für ihre eigenen Bedürfnisse geschrieben. Diese zusätzliche Software wurde häufig öffentlich zur Verfügung gestellt, z.B. für das Betriebssystem Unix 1 . In den siebziger Jahren wurde dem entgegengewirkt und der Weg hin zu kommerziell vertriebener Software geebnet, die besonders durch Bill Gates in seinem öffentlichen Brief „An Open Letter to Hobbyists“ verlangt wurde [Microsoft 1976]. Im Gegensatz dazu entstand mit der Gründung der Free Software Foundation 2 (FSF) eine organisierte Gegenbewegung, die freie Software propagierte. Hier haben das GNU-Projekt 3 und die GNU General Public License (GPL) ihren Ursprung. 1998 wurde mit der Gründung der Open Source Initiative 4 (OSI) die erste Version der Open Source Definition 5 (OSD) veröffentlicht. Begründer dieser Bewegung waren Eric S. Raymond und Bruce Perens. Die auf den Debian Free Software Guidelines 6 beruhende Open Source Definition ist eine zehn Kriterien umfassende Bedingung. Die Lizenz, unter der die entsprechende Software veröffentlicht wird, muss alle in der Open Source Definition beschriebenen Forderungen erfüllen. Erst dann kann Software als Open Source (deutsch: quelloffen) bezeichnet werden. Im Vordergrund stehen hier die freie und unbeschränkte Verfügbarkeit sowie Weitergabe der Software und des mit ihr verbundenen Quellcodes. Des Weiteren sind Veränderungen an Quellcode und die Weitergabe dieser Veränderungen ohne Beschränkung erlaubt [Perens 2007].
Die beiden Bewegungen „Free Software Foundation“ und „Open Source Initiative“ haben unterschiedliche Betrachtungsweisen: Die Open Source Initiative sieht die Tatsache, dass eine Software quelloffen sein sollte als rein praktisch an und stellt sie ethisch nicht in Frage. Im Vordergrund für die Open Source Initiative steht die Verwaltung und das Marketing der Open Source Definition. Im Gegensatz dazu sieht die Free Software Foundation Open
1 Darstellung der Geschichte von Unix unter http://crackmonkey.org/unix.html, online am 18.12.07
2 Der größte Non-Profit-Sponsor des GNU-Projekts (http://www.gnu.org/home.de.html, online am 18.12.07)
3 1984 gegründet, um ein vollständiges, unixartiges Betriebssystem auf Basis von Freier Software zu entwickeln (http://www.gnu.org/home.de.html, online am 18.12.07)
4 Organisation, die sich der Förderung von Open Source Software widmet (http://www.opensource.org/, online am 18.12.07)
5 Die Aktuelle Version der Open Source Definition ist Version 1.9 (http://opensource.org/docs/osd, online am 18.12.07)
6 Vgl. http://www.debian.org/social_contract, online am 18.12.07
Source Software als soziales Problem. Trotz dieser unterschiedlichen Sichtweisen, verfolgen beide Bewegungen grundsätzlich dieselben Ziele.
Aus diesem Grund treiben beide Bewegungen die Open Source Entwicklung voran. Dadurch ist ein Trend hin zum Einsatz von Open Source Lösungen sowohl im privaten als auch im öffentlichen bzw. kommerziellen Bereich zu verspüren. Dieser Trend zu Open Source bezieht sich schon lange nicht mehr nur auf die entstehenden Softwareprodukte, sondern auch die für die Open Source Software typischen Entwicklungsmodelle bzw. -methoden rücken immer mehr in das Interesse von Privatleuten und kommerzieller Herstellern von proprietärer 7 Software.
Im Gegensatz zu proprietärer Software ist das Neue an der Open Source Bewegung die Bereitstellung quelloffener und selbst geschriebener Software. Diese kann beliebig genutzt und verändert werden. Die dabei entstehenden Programme können von ihren Anwendern weiterentwickelt und für eigene, spezielle Aufgaben modifiziert bzw. optimiert werden. So entstehen schnell fehlerfreie und stabile Programmversionen. Oft geschieht diese Art der Softwareentwicklung kollaborativ, d.h., dass mehrere Entwickler mit Hilfe von Vereinbarungen, Probleme koordinieren und lösen, so z.B. Softwareinhalte (Quellcode) gemeinsam verändern und diskutieren. Dieser Ansatz der Softwareentwicklung umfasst die Aspekte Kommunikation, Koordination und Kooperation zwischen den einzelnen Beteiligten. Durch die so genannten Open Source Communities 8 wird dieser Ansatz um die Einbeziehung des organisationsbedingten (technisches, soziales und organisatorisches Umfeld) und persönlichen Kontexts (Motivation, Kompetenz) des einzelnen Beteiligten erweitert.
Der Erfolg von Open Source Software wird durch die folgenden Faktoren bestimmt: leichte Bedienbarkeit, der modulare Aufbau und die Wiederverwendbarkeit von Open Source Softwarekomponenten [Koch 2004].
Durch die leichte Bedienbarkeit können potentielle Anwender in ein Open Source Softwareprojekt als Programmierer einbezogen werden. Dadurch entsteht auf der einen Seite ein anwachsendes Interesse für das Endprodukt am Markt und auf der anderen Seite fließen zusätzlich zu den bestehenden Ideen seitens der Projektinitiatoren weitere Anforderungen bzw. Lösungsvorschläge von der Anwender-/Entwicklerseite mit ein. Der modulare Aufbau von Open Source Software ermöglicht die dezentrale, zeitlich und räumlich verteilte Entwicklung von Komponenten, die dann zu komplexen Systemen zusammengeführt werden können. Zudem können sich die am Projekt Beteiligten, ohne einen Gesamtüberblick über das komplette System zu haben, schneller in die
7 Vgl. http://www.gnu.org/philosophy/categories.de.html#ProprietarySoftware, online am 18.12.07
8 Von community (deutsch: Gemeinde, Gemeinschaft); Es wird in der vorliegenden Arbeit weiterhin der englische Begriff „Community“ genutzt
Programmierung einarbeiten. Durch Parallelisierung der Programmierung und durch Bereitstellung standardisierter Schnittstellendefinitionen wird einerseits der
Softwareentwicklungsprozess erheblich verkürzt und andererseits die reibungslose Zusammenarbeit von Softwaremodulen sichergestellt.
Die Wiederverwendbarkeit wird durch die freie Verfügbarkeit des Quellcodes und durch den modularen Aufbau der Software gewährleistet. Dies kann zur Ersparnis von Entwicklungsaufwand und somit -kosten beitragen.
Um der Open Source Softwareentwicklung Herr zu werden, braucht es gewisse Modelle bzw. Methodiken, nach denen im Entwicklungsprozess verfahren wird. Nur so kann sichergestellt werden, dass die Entwicklung eines Open Source Softwareprodukts erfolgreich durchgeführt werden kann. Die richtigen Open Source Entwicklungsmodelle bzw. -methoden sind der Garant für den Erfolg des daraus resultierenden Softwareprodukts.
1.1 Ausgangssituation
Durch das Internet als weltweites Kommunikationsmedium hat das Konzept der Open Source Softwareentwicklung eine hohe Verbreitung und Allgegenwärtigkeit erreicht. Dies wird auch verdeutlicht durch die auf zahlreicher Open Source Software basierende Internetinfrastruktur. Beispielsweise ist Sendmail 9 das führende Mail-Transfer-System und BIND 10 die am weitesten verbreitete Implementierung eines Internet Domain Name Systems des Internets [Johnson 2007].
Der Erfolg von Open Source ist verbunden mit dem schnellen Wachstum des Internets. Das Internet ermöglicht ein leichteres Zusammenarbeiten zwischen Programmierern in größerem Umfang. So ist es nicht verwunderlich, dass Open Source Projekte, wie Linux oder Apache erfolgreich eingeführt wurden und weiterhin betrieben werden. Dies verdanken Open Source Lösungen der zahlreichen, stetig wachsenden Anzahl an Communities. Zur Verdeutlichung zeigt die Tabelle 1 eine Zusammenstellung der hochgerechneten Community-Größe der an den verschiedenen Open Source Projekten beteiligten Personen.
9 Vgl. http://www.sendmail.org/, online am 18.12.07
10 Vgl. http://www.isc.org/index.pl?/sw/bind/index.php, online am 18.12.07
Die in der Tabelle aufgeführten Zahlen verdeutlichen die Entwicklung und das andauernde Interesse an Open Source. Die Open Source Entwicklung ist eine wettbewerbsfähige Alternative zu konventionellen Softwareentwicklungsmethoden. Die Anzahl an Open Source Entwicklungen steigt stetig. Es werden zahlreiche Open Source Betriebssystemdistributionen (z.B. das Betriebssystem Linux), Programmbibliotheken für Programmiersprachen, Server-und Anwendungssoftware etc. entwickelt und vertrieben. Wie eingangs beschrieben, erfüllt das Internet eine wichtige Rolle für das Open Source Konzept. Nicht nur die Entwicklung, auch die Art der Entwicklungen ist stark durch das Internet geprägt. Aus diesem Grund ist es essentiell wichtig, Modelle bzw. Entwicklungsmodelle bereitzustellen, die es ermöglichen, die Entwicklung von Open Source Software innerhalb eines Projekts zu planen und zu organisieren. Erschwerend ist hierbei, dass es bisher keine einschlägige Literatur zu Open Source Softwareentwicklungen gibt.
1.2 Zielsetzung
Das Ziel der Arbeit ist die Identifikation und der Vergleich von Open Source Modellen. Im engeren Sinne sind hiermit Entwicklungsmodelle gemeint. Hierbei wird der Schwerpunkt auf Open Source Softwareprojekte gelegt, die von Communities, die das Internet als Kommunikationsplattform nutzen, vorangetrieben werden. Durch die Vielzahl an Open Source Softwareprojekten und aufgrund mangelnder Informationen über diese, ist es schwierig, die einzelnen Entwicklungsmodelle herauszufiltern. Es wird daher ein Verfahren entwickelt, anhand dessen spezifische
Arbeit zitieren:
Jan Nicolai Arsenijevic, 2008, Identifikation und Vergleich von Open Source Modellen, München, GRIN Verlag GmbH
Dieser Text kann über folgende URL aufgerufen und zitiert werden:
Einbetten
DOI
Formatvorlage (Microsoft Word) für eine Diplomarbeit, Masterarbeit, Ha...
Für MS Word 2003 - Update 2010
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 25 Seiten
Formatvorlage (OpenOffice) für eine Diplomarbeit, Masterarbeit, Hausar...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 35 Seiten
Formatvorlage / Vorlage zur Erstellung einer Diplomarbeit, Bachelorarb...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 15 Seiten
Formatvorlage / Vorlage für eine Diplomarbeit / Hausarbeit
Für MS Word 2007 - dotx
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 25 Seiten
Anleitung zum Erstellen schriftlicher Arbeiten: Der Aufbau einer wisse...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 20 Seiten
Erstellen einer schriftlichen Hausarbeit
Vorlagen, Muster, Formulare, Infobroschüren
Hausarbeit, 14 Seiten
Grundtechniken wissenschaftlichen Arbeitens
Bibliografieren - Reden - Schr...
Vorlagen, Muster, Formulare, Infobroschüren
Skript, 46 Seiten
Ratgeber zur Erstellung wissenschaftlicher Arbeiten. Diplomarbeiten - ...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 39 Seiten
Jan Nicolai Arsenijevic's Text Identifikation und Vergleich von Open Source Modellen ist nun auf dem Buchmarkt erhältlich
Jan Nicolai Arsenijevic hat den Text Identifikation und Vergleich von Open Source Modellen veröffentlicht
Jan Nicolai Arsenijevic hat einen neuen Text hochgeladen
Interaktive Ambiente mit Open-Source-Software
3D-Walk-Throughs und Augmented...
Wolfgang Höhl
Eine ökonomische und technisch...
Bernd Brügge, Dietmar Harhoff, Oliver Creighton, Marina Fiedler, Joachim Henkel, Arnold Picot
0 Kommentare