Open-Source Software

Mi, 14:00 bis 15:30, 15:40 bis 17:10, W3.02

Vergangene Semester: OSS24 | OSS23 | OSS22 | OSS21 |

OSS20 | OSS19 | OSS18 | OSS17 | OSS16 | OSS15 | OSS14 | OSS07

Grobe Gliederung

Es geht mir bei der Veranstaltung darum, dass Sie ein paar Grundlagen in folgenden Themengebieten im Laufe der Zeit gewinnen. Stellen Sie sich vor, sie müssen in einem zukünftigen Job zum ersten Mal ein freies Softwareprojekt managen, dann sollte der Kurs ihnen die passenden Grundlagen vermittelt haben. Gerne bin ich offen für Anregungen, was Sie für wichtig halten!

  1. Definition der Begriffe „freie Software“ und „offene Software“

  2. Warum gibt man den Quelltext überhaupt freiwillig her, wo doch die klassische kommerzielle Verhaltensweise immer genau das Gegenteil ist (weggesperrte Software im Safe sind fuer manche wie „Goldbarren“).

  3. Vor- und Nachteile von offener und geschlossener Software

  4. Ein paar Einblicke in die geschichtliche Entwicklung (auch die Voraussetzungen zur Entstehung von OSS)

  5. GNU Software und die Free Software Foundation (FSF)

  6. Die Open-Source Bewegung

  7. Wo wird freie und offene Software verwendet? (typische Anwendungsbereiche)

  8. Wie macht man freie und offene Software? Regeln, Werkzeuge, kollaboratives Arbeiten mit git

  9. Aufbauen von Gemeinschaften („community building“)

  10. Beispiele von erfolgreichen OSS-Projekten

  11. Ein wenig Urheberrecht und die wichtigsten Lizenzen

  12. Zusammenstellungen von freien Programmen

  13. Anwendungsbereiche der offenen Denkweise, die ausserhalb der Softwareentwicklung liegen, z.B. Open-Innovation

  14. Geschäftsmodelle mit freier Software (wie kann ich damit Geld verdienen?)

Eine genauere Gliederung ist in OssGliederung.

Geschichtliches

  • Im Buch von Grassmuck finden Sie einen gut lesbaren Abschnitt zur Geschichte der Softwareentwicklung, siehe die Lesetipps unter

    https://hhoegl.informatik.hs-augsburg.de/oss/grassmuck.html.

  • In der erweiterten Gliederung ist auch ein Abschnitt über die historische Entwicklung:

    OssGliederung#geschichte

  • Sehr lesenswert: Brian W. Kernighan, UNIX - A History and a Memoir, 2020. Gibt es auch in Deutsch als „Die UNIX-Story“ im dpunkt Verlag. (siehe Cloud)

Code Reading

FOSS Programme analysieren („Code Reading“)

  • Was steht in der README.md?

  • Projekt aktiv oder verwaist?

  • Wer hat es sich ursprünglich ausgedacht?

  • Gibt es einen BDFL?

  • Wer ist der aktuelle Maintainer?

  • Wo wird das Projekt gehostet? (z.B. Github, Gitlab, Savannah https://savannah.gnu.org)

  • Gibt es eine Homepage?

  • Für welche Betriebssysteme ist es geeignet?

  • Unter welcher Lizenz steht das Programm?

  • Ist es ein Kommandozeilen- oder Grafikprogramm?

  • Wie lange existiert es?

  • Wie viele haben in etwa daran gearbeitet?

  • Welche Programmiersprache(n) wird/werden verwendet? (Tipp: https://github.com/XAMPPRocky/tokei)

  • Welches Konfigurations- bzw. Build-System wird verwendet?

  • Wird eine IDE zum Entwickeln verwendet?

  • Gibt es eine Dokumentation, wenn ja, in welchem Textverarbeitungssystem wurde sie geschrieben?

  • Wie viele Anwender verwenden das Programm ungefähr? (schwer herauszubekommen)

  • Gibt es Abspaltungen („forks“)?

  • Wie kann man mitmachen bzw. Änderungen einreichen?

  • Wie aktiv war es in letzter Zeit?

  • Wie werden Branches in Git verwendet? (git Workflow bei der Entwicklung)

  • Wie kann man das Programm installieren? (selber kompilieren, binary, snap, appimage, container, …)

  • In welcher Sprache sind die Meldungen des Programms verfasst, z.B. Englisch, Deutsch, Chinesisch? Gibt es eine Internationalisierung in verschiedenen Sprachen (z.B. GNU gettext)?

  • und so weiter…

Vorschläge für Programme sind unter https://hhoegl.informatik.hs-augsburg.de/oss/codereading.txt