Si­tua­ti­ve Me­tho­den­ent­wick­lung (SME)

Die Technik der situativen Methodenentwicklung (SME) umfasst alle Aspekte der Erstellung einer Methode für eine spezifische Situation. In der Fachgruppe Datenbank- und Informationssysteme wird die Anwendung von Techniken der modellgetriebenen Softwareentwicklung im Kontext der Software-Modernisierung untersucht.

Teilnehmer: Marvin Grieger

Kontaktperson: Marvin Grieger

Beschreibung:

Um die Komplexität umfangreicher Software Engineering Unterfangen beherrschbar zu machen, werden Software Engineering Methoden angewendet. Eine Methode für die Softwareentwicklung beschreibt und koordiniert beispielsweise alle Aktivitäten welche die Planung, Entwicklung, Auslieferung und Wartung einer Software umfassen. Software Engineering Methoden beschreiben im allgemeinem alle relevanten Aspekte eines Software Engineering Unterfangens. Dies umfasst den eigentlichen Prozess und seine Aktivitäten, die involvierten Rollen, die zu produzierten Artefakten, die verwendeten Werkzeuge und Techniken sowie die Beziehungen zwischen diesen Konzepten.

Viele verschiedene Software Engineering Methoden wurden über die Zeit definiert und werden heutzutage eingesetzt. Beispiele für bekannte Softwareentwicklungsmethoden sind der Rational Unified Process (RUP), das V-Modell XT oder Scrum. Die Vielfältigkeit bestehender Methoden ist ein Zeichen dafür, dass keine Methode existiert die für jedes Unterfangen passend ist. Dies liegt darin begründet, dass Standard-Methoden die spezifischen Charakteristiken eines Projekts oder einer Organisation nicht ausreichend berücksichtigen können. Solche Charakteristiken werden oftmals unter dem Begriff einer Situation zusammengefasst. Dadurch, dass eine Methode nicht zu der Situation passt, in der sie eingesetzt wird, entsteht das Risiko zu viel Zeit bzw. zu hohe Kosten für das Unterfangen aufzuwenden oder die Qualität der Software zu gefährden.

Im Forschungsfeld der Situativen Methodenentwicklung (SME) wird untersucht, wie situationsspezifische Methoden bereitgestellt werden können. Dabei werden drei verschiedene Klassen von Ansätzen unterschieden:

  1. Die Anpassung einer bestehenden Software Engineering Methode, entweder durch freies Zuschneiden (bspw. RUP) oder durch vordefinierte Konfigurationspunkte (bspw. V-Modell XT)
  2. Die Erstellung einer Software Engineering Methode durch die Wiederverwendung bestehender Methodenbausteine, welche durch ein Repository bereitgestellt werden (bspw. OPEN oder MFESA)
  3. Die Neuentwicklung einer Software Engineering Methode

Ansätze die zur ersten Klasse gehören stellen in den meisten Fällen keinen ausreichenden Grad an Kontrolle und Flexibilität bereit, um eine situationsspezifische Methode zu entwickeln. In der Fachgruppe Datenbank- und Informationssysteme werden insbesondere die Herausforderungen erforscht, die sich bei Ansätzen der letzten beiden Kategorien ergeben.

Ver­öf­fent­li­chun­gen