TU BRAUNSCHWEIG

Seminar

Entwicklung von Software-Produktlinien - Aktueller Stand und künftige Herausforderungen

Immer mehr verdrängen Software-Produktlinien (SPL) bei der Entwicklung von Softwaresystemen die herkömmlichen, oft monolithischen Ansätze. Denn eine Produktlinie ermöglicht die gleichzeitige Entwicklung vieler ähnlicher, aber auf Anforderungen von Kunden maßgeschneiderter Programme. Dafür werden die Gemeinsamkeiten und Unterschiede aller Varianten einer Produktlinie innerhalb der Produktlinie verwaltet um somit eine Hohe Wiederverwendbarkeit und geringen Wartungsaufwand zu erreichen.

Aber was bedeutet das für den bisher verwendeteten und allgemein anerkannten Entwicklungsprozess? In diesem Seminar geht es darum, diese Fragestellung für die einzelnen Phasen der Softwareentwicklung näher zu betrachten. Wie einheitlich ist der Entwicklungsprozess von SPLs? Wie sehr unterscheidet er sich von herkömmlichen Ansaetzen? Welchen Herausforderungen sieht man sich bei den einzelnen Entwicklungsphasen gegenüber? Diese und weitere Fragen, aber auch sich daraus ergebende Herausforderungen werden in diesem Seminar addressiert.

Aktuelles

  • Bei den Themen ist jetzt vermerkt, welche schon vergeben und welche noch frei sind. Falls bereits vergebene Themen wieder frei werden (z.B. durch Abmeldung des Studenten), so wird das Vermerk akutalisiert

Organisatorisches

Dozent/Betreuer: Sandro Schulze, Email: [vorname.nachname](at)tu-bs.de
Credits: je nach Studiengang und Abschluss; ein CP/LP = 30 h (aufzuwendende Zeit)
Zielgruppe: Studierende (Bachelor/Master) der Studiengänge Informatik, Wirtschaftsinformatik und Informations-Systemtechnik (IST) mit Interesse an wissenschaftlichem Arbeiten
Anmeldung: Email an den Betreuer mit eurem Namen, Matrikelnummer, Studiengang und unter Angabe eures Wunschthemas. Die Veranstaltung ist auf maximal 10 Teilnehmer begrenzt!! 
Bewertung:

Fuer die erfolgreiche Teilnahme an der Veranstaltung sind folgende Kriterien vollständig zu erfüllen:

  • Schriftliche Ausarbeitung zum Thema (7-10 Seiten)
  • 20-minütiger Vortrag + Diskussion zum Thema
  • Gegutachtung von zwei anderen Ausarbeitungen
  • Teilnahme an allen Veranstaltungen
  • Einhaltung aller Abgabefristen

Zeitplan

Neben der Einführungsvorlesung wird es weitere Vorlesungen geben, die den Teilnehmern hilfreiche Informationen zum Verfassen wissenschaflticher Arbeiten vermittelt. Weiterhin wird es für jeden Teilnehmer die Möglichkeit geben, seinen eigenen Vortrag zu proben (obligatorisch). Die finalen Vorträge werden an zwei noch festzulegenden Terminen als Blockseminar abgehalten.

Termine

Vorlesungen:

  • Einführungsvorlesung: Dienstag, 23.10.2012, 9 Uhr c.t., IZ 349 !!NEU!!
  • Einführung zu Academic Writing I/II: 30.10. & 06.11.2012 !!NEU!!
  • Kurzvorstellung der Themen und Literatur: 13.11.2012
  • Vorlesung "Präsentationen richtig halten": 08.01.2013
Deadlines:
  • Abgabe der Gliederung der Ausarbeitung: 16.11.2012
  • Einreichung erste Version der Ausarbeitung: 30.11.2012
  • Einreichung der Gutachten: 14.12.2012
  • Einreichung finale Version: 18.01.2013
Präsentationen: Termine für die Testpräsentationen werden in der Vorlesung abgestimmt.
Blockseminar: Termin wird innerhalb des Seminars mit den Teilnehmern vereinbart und dann hier bekannt gegeben!!!

Themen & Zentrale Fragestellungen

Folgende Themen stehen zur Auswahl (Literaturhinweise zum Einsteig werden noch ergaenzt):

  1. Variabilität in Anforderungsspezifikationen (vergeben)
  • Formale Ansätze zur Variabilitätsmodellierung (vergeben)
  • Vergleich von konkreten Ansätzen zur Variabilitätsmodellierung (vergeben)
  • Entwicklungsprozess von SPLs -- vom Produkt zur Produktlinie (vergeben)
  • Kompositionale Ansätze zur Implementierung von Produktlinien (vergeben)
  • Annotative Ansätze zur Implementierung von Produktlinien (vergeben)
  • Testen von Produktlinien bzw. Variablen Softwaresystemen (vergeben)
  • Refactoring von Softwareproduktlinien (vergeben)
  • Anwendung und Realisierung von SPLs in der Praxis (vergeben)
  • Der Linux Kernel als Software-Produktlinie (vergeben)
  • Im Rahmen der Ausarbeitung soll zu jedem Thema der State-of-the-Art aufgezeigt und mögliche zukünftige Beschränkungen bzw. Herausforderungen diskutiert werden. Dafür sollen folgende Frage- bzw. Aufgabestellungen adressiert werden:

    • Welche spezifischen Ansätze gibt es für Software-Produktlinien bzw. variable Systeme ?
    • Vergleichen Sie die Ansätze nach geeigneten Kriterien (Hinweis: Diese Kriterien können aus der verwendeten Literatur extrahiert werden) !
    • Welche Unterschiede gibt es zu Ansätzen der "herkömmlichen" (monolithischen) Softwareentwicklung ?
    • Welchen Beschränkungen unterliegen die neuen Ansätze ?
    • Was könnten zukünftige Herausforderungen oder Einschränkungen dieser Ansätze sein ? 
    Hinweis: Ein Großteil der Veranstaltung besteht aus selbstständiger Arbeit, ergänzt durch vereinzelte Vorlesungen. Alle Teilnehmer sollten deshalb ca. 1 Tag pro Woche (ca. 7-10 Stunden, je nach Studiengang) für die Bearbeitung der jeweiligen Aufgabe einkalkulieren und dies auch in ihrer Zeitplanung für das Semester berücksichtigen.

    Lernziele & erworbene Kompetenzen

    Als übergeordnete Lernziele werden in dieser Veranstaltung folgende Kompetenzen erworben:

    • Strukturiertes Vorgehen beim Suchen, Lesen und Verstehen von (zumeist englischsprachiger) Fachliteratur
    • Strukturierte Aufbereitung der erworbenen Erkenntnisse
    • Weitergabe der Erkenntnisse im Rahmen einer Präsentation
    • Persönliches Zeitmanagement

    Obwohl das ganze Seminar primär auf wissenschaftliches Arbeiten ausgelegt ist, sind die erworbenen Kenntnisse auch im Praxis/Industrieumfeld von großer Wichtigkeit. Beispielhaft sei hier die Situation genannt, dass man in einer Firma den Auftrag erhält sich einen Überblick über neueste Erkenntnisse und Ansätze auf einem bestimmten Gebiet zu verschaffe. Diese Erkenntnisse sollen dann in einem Dossier zusammengefasst werden und darüber hinaus muss eine Präsentation zu diesem Thema vor Entscheidungsträgern der Firma (die zumeist nur über rudimentäres Fachwissen verfügen) gehalten werden.

    Material

    Hier werden zu jeder Veranstaltung die entsprechenden Folien bereitgestellt und ggf. andere Materialien sofern notwendig.

    Formatvorlage für die schriftliche Ausarbeitung:

    Unter folgendem Link könnt ihr euch das entsprechende LaTex Template runterladen: IEEE CS two column

    Nutzt das LaTeX Template bitte mit folgenden Einstellungen:

    \documentclass[10pt, conference, compsocconf]{IEEEtran}

    Vorlesungsfolien:

    • Einführung: PDF
    • Academic Writing I: PDF
    • Academic Writing II: PDF
    • Presentation: PDF

    Tipps zum Review

    Tipps zur Literaturrecherche

    Um nicht vollkommen "lost in space" zu sein, hier ein paar Tipps, die euch (hoffentlich) bei der Suche nach weiteren Publikationen zum jeweiligen Thema  weiterhelfen:

    Wo soll ich bloß anfangen?

    • Google Scholar -- sehr umfangreich, findet fast alles
    • dblp -- umfangreiche Datenbank mit sehr guter Suche, z.B. auch nach bestimmten Autoren, Konferenzen etc. Meistens auch mit bibtex-Eintrag ;)
    • IEEE, ACM -- die beiden größten Organisationen für Informatik (häufig auch Verweis von google scholar auf entsprechende Seiten)

    Suchet, so werdet ihr finden...?

    Nicht nur wo sondern auch wie ihr sucht wird sich entscheidend auf das Ergebnis auswirken. Hier ein paar Tipps:

    • Überlange wortgruppen oder gar Sätze bei der Suche vermeiden. Denn je mehr Wörter (search terms) ihr eingebt, desto ungenauer wird die Suche. Als Obergrenze empfehle ich 3 keywords/search terms auf einmal.
    • Eingabe der Suchwörter auf ENGLISCH!!! Denn so gut wie alle Publikationen und auch Bücher sind auf Englisch verfasst.
    • Suchwörter die themenübergreifend hilfreich sind (und mit eher themenspezifischen Wörtern kombiniert werden können): software product lines, product lines, variable software systems, variability
    • Konferenzen mit speziellem Bezug zu Software-Produktlinien: Software Product Line Conference (SPLC), Workshop on Feature-Oriented Software Development (FOSD), Workshop on Variability Modelling of Software-intensive Systems (VaMoS), Aspect-Oriented Software Development (AOSD)
    Ansonsten gilt: "Don't be shy...be creative!!" :)

      aktualisiert am 25.10.2012
    TU_Icon_E_Mail_1_17x17_RGB Zum Seitenanfang