<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Was braucht es f u¨r die Langlebigkeit von Systemen? Eine Kritik</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Lutz Prechelt</string-name>
          <email>prechelt@inf.fu-berlin.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Institut fu ̈r Informatik, Freie Universita ̈t Berlin</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>Der Aufruf zum 1. Workshop “Langlebige Softwaresysteme” la¨sst in seiner Sicht darauf, was forschungsseitig fu¨r erfolgreiche Langlebigkeit von Softwaresystemen zu tun ist, vernachla¨ssigte Bereiche erkennen. Dieser Artikel zeigt auf, wo diese liegen, warum die Vernachla¨ssigung problematisch ist und mit welcher Maßnahme eine Bescha¨digung des resultierenden Forschungsprogramms vermutlich vermieden werden kann.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>1http://www.fzi.de/index.php/de/forschung/forschungsbereiche/se/6783
ich eine Kritik dieser gefundenen Gewichtung vor und schlage eine Erga¨nzung des
Forschungsprogramms vor (Abschnitt 4).
2</p>
    </sec>
    <sec id="sec-2">
      <title>Problembereiche aus der Vogelschau</title>
      <p>Hier eine mo¨gliche Sicht, was insgesamt an Facetten zu bedenken und zu erforschen ist,
wenn man die Langlebigkeit von Systemen sta¨rken mo¨chte.</p>
      <p>Nicht jedem wird die Einteilung und die Formulierung gefallen – etwa, weil sie vielleicht
eine Gewichtung nahelegt, die er oder sie nicht teilt, oder weil manche Themen als nicht
softwaretechnischer Art empfunden werden. Ich hoffe aber, dass niemand hierin klaffende
Lu¨cken entdeckt oder Eintra¨ge, die er oder sie als komplett falsch einstufen wu¨rde.
1.1 Produktstruktur: Wissenschaftliche Erkenntnis daru¨ber, was
langlebigkeitsgeeignete Software-Architekturen ausmacht.
1.2 Entwicklungsmethoden: Wissenschaftliche Erkenntnis daru¨ber, wie man
solche Architekturen im gegebenen Einzelfall entwickelt und dauerhaft erha¨lt. Das
betrifft alle Teilaufgaben der Softwaretechnik von der Anforderungserhebung u¨ber den
Entwurf und die Realisierung bis hin zu Verifikation/Validierung sowie dem
Projekt, Prozess-, Qualita¨ts-, Anforderungs- und Risikomanagement.
1.3 Produktinfrastruktur: Wiederverwendbare Technologien, um Strukturen nach
1.1 einfach, verla¨sslich und schnell umsetzen zu ko¨nnen. Dies betrifft geeignete
Programmiersprachen, generische Komponenten (wie Betriebssysteme, DBMS,
Frameworks, Middleware und andere, deren Natur zum Teil vielleicht noch gar nicht
entdeckt ist), sowie bereichsspezifische Komponenten.
1.4 Methodeninfrastruktur: Softwarewerkzeuge zur technischen Unterstu¨tzung der
Methoden von 1.2.
2.1 Investitionsentscheidung f u¨r die no¨tigen Einmalkosten, z.B. Beschaffung von
Werkzeugen und deren Einfu¨hrung. Dies geschieht bei der jeweils betroffenen
Softwareorganisation. Der wissenschaftliche Aspekt daran besteht darin, zu verstehen,
wie solche Entscheidungen heute zustande kommen und zu beschreiben, wie sie
idealerweise zustande kommen sollten.
2.2 Investitionsentscheidung fu¨ r die no¨tigen Kosten im Einzelfall. Das betrifft
insbesondere die Bereitschaft, entsprechend qualifiziertes Personal zu bezahlen und
diesem die no¨tige Zeit zum sauberen Verfolgen der Methoden von 1.2 zur Verfu¨gung
zu stellen. Wissenschaftlicher Aspekt analog zu 2.1.
3.1 Individuelle Mo¨glichkeiten: Die no¨tigen Fa¨higkeiten (Talent) und Fertigkeiten
(Ausbildung und praktische Erfahrung) bei den einzelnen handelnden
Softwareingenieur/inn/en, um die Grundlagen nach 1.1 bis 1.4 geeignet einsetzen zu ko¨nnen.
Wissenschaftliche Fragestellungen in diesem Bereich betreffen die Beschreibung,
welches Maß an Fa¨higkeiten und Fertigkeiten in welchen Bereichen von 1.1 bis 1.4
no¨tig wa¨re, welches Maß an Fa¨higkeiten heute typisch ist und mit welchen
Methoden man die Fertigkeiten optimal trainieren kann.
3.2 Individuelle Bereitschaft: Die no¨tige Disziplin bei den einzelnen handelnden
Softwareingenieur/inn/en, um die Grundlagen nach 1.1 bis 1.4 im konkreten
Einzelfall (insbesondere unter Zeitdruck) auch tatsa¨chlich hinreichend vollsta¨ndig und
korrekt einzusetzen. Wissenschaftliche Fragen in diesem Bereich: Wo mangelt es
wie sehr an solcher Disziplin? Warum? Wie kann man das reduzieren?
3</p>
    </sec>
    <sec id="sec-3">
      <title>Vergleich mit dem Workshop-Aufruf</title>
      <p>Hier gebe ich die Themenliste aus dem Workshop-Aufruf wieder und markiere jeweils,
welchen Bereichen der obigen Taxonomie ich die Eintra¨ge zuordne. U¨ber diese Zuordnung
mag man hier und da streiten, das ist nicht schlimm: Fu¨r die Zwecke dieses Artikels reicht
eine ungefa¨hre Zustimmung aus.</p>
      <p>Anpassbarkeit und Evolution
– evolutionsfa¨hige Software-Architekturen (1.1)
– Anpassbarkeit von Anwendungen an wechselnde Plattformen, sich vera¨ndernde</p>
      <p>Anforderungen und Randbedingungen (1.1, 1.2)
– Koevolution zw. Anforderungen, Architektur und Implementierung (1.1, 1.2)
– Variabilita¨t auf Anforderungs- und Architekturebene wie z.B. in
Produktlinienansa¨tzen (1.1, 1.2)
Reengineering
– Verfahren zur Erkennung von Legacy-Problemen und ihrer Ursachen (1.2)
– Metamodelle fu¨r die Integration von Wissen u¨ber Software (1.2)
– modellbas. Reengineering und Refactoring bestehender Systeme (1.2, 1.3, 1.4)
– Modellextraktion durch Programmverstehen (1.2, 1.4)
Entwicklungs-, Betriebs- und Wartungsmethoden
– modellbasierte und architekturzentrierte Methoden und Techniken fu¨r (die
Integration von) Entwicklung und Betrieb langlebiger Softwaresysteme (1.2, 1.4)
– Business-IT-Alignment, gescha¨ftsorientierte Evolution der IT (1.2, evtl. 2.2)
– Lebenszyklus-u¨bergreifendes Anforderungsmanagement (1.2)
– Roundtrip-Engineering, integrierte Entwicklung auf Modell- und Codeebene
(1.2, 1.4)
– virtuelle Maschinen zur Erzielung von Plattformunabha¨ngigkeit (1.1, 1.3)
– kooperative Entwicklungsmethoden (1.2, evtl. 3.1/3.2), Kommunikations- und
Kooperationswerkzeuge und Entwicklungsumgebungen, die die enge
Zusammenarbeit von Doma¨nenexperten, Anwendern und Softwareentwicklern
unterstu¨tzen (1.4)
– Qualita¨tsbewertung langlebiger Softwaresysteme (1.2)
– Qualita¨tssicherung beim Betrieb langlebiger Softwaresysteme (1.2)
Wie man sieht, deckt der Workshop nur die Bereiche 1.1 bis 1.4 der Taxonomie ab (reine
Software-Technik), aber beru¨ hrt allenfalls zart die Sektoren 2.1/2.2 (Verha¨ltnisse in
SWOrganisationen) und 3.1/3.2 (individuelle menschliche Faktoren).
4</p>
    </sec>
    <sec id="sec-4">
      <title>Kritik</title>
      <p>Dies ist kein U¨bersichtspapier und deshalb werde ich gar nicht erst versuchen, die
folgenden Aussagen mit wissenschaftlicher Literatur zu untermauern, sondern sie ganz als
perso¨ nliche Ansichten formulieren:</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <article-title>Qualita¨tsmanagement - Qualita¨tsanforderungen an langlebige Softwaresysteme (1</article-title>
          .2)
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          1.
          <string-name>
            <surname>Meiner</surname>
          </string-name>
          <article-title>Ansicht nach sind die weitaus wirksamsten Faktoren fu¨ r die heute zu beobachtenden (und in der Tat heftigen) Langlebigkeitsprobleme in den Bereichen 2.2, 3.1 und 3.2 zu suchen</article-title>
          .2
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          2.
          <article-title>Selbst gewaltige Durchbr u¨che in den Bereichen 1.1 bis 1.4 w u¨rden daran nur graduell etwas a¨ndern, weil selbst mit der bestmo¨ glichen Technologie ein erheblicher Restwiderspruch zwischen “kurzfristig gu¨ nstig” und “langfristig gu¨ nstig” bestehen bleiben wird.3 Diesen gibt es in so gut wie allen Lebensbereichen, auch den industriellen</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          3.
          <article-title>Folglich kann eine Wirksamkeit von Fortschritten in den Bereichen 1.1. bis 1.4 am besten sichergestellt werden, indem man zuvor oder zugleich die “Hygienefaktoren” 2.1 bis 3.2 studiert und sich bei der Bearbeitung von 1.1 bis 1.4 bestmo¨ glich an die dort gefundenen (oder erzielten) Bedingungen anpasst</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          4.
          <article-title>Damit das gelingen kann, muss der Kreis der am Forschungsprogramm beteiligten um Personen erga¨nzt werden, die an der no¨ tigen empirischen Forschung interessiert und in entsprechenden sozialpsychologischen und mikrosoziologischen Methoden versiert sind. Diese gibt es zwar nicht zahlreich, sie sind aber vereinzelt in diversen Fa¨chern zu finden, z</article-title>
          .B. in Informatik, Soziologie, Psychologie, Wirtschaftswissenschaften.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <article-title>2Ich vermute, dass auch die große Mehrheit ganzheitlich denkender Praktiker dem zustimmt. 3Als eindrucksvolles Beispiel bietet sich aktuell die modellbasierte Softwareentwicklung an, die trotz ihrer großen potentiellen Vorteile nur sehr schleppend in der Praxis Fuß fasst, was zum Teil daran liegen du¨rfte, dass (a) der hilfreiche Einsatz nicht einfach ist (3.1) und (b) viele der Vorteile sich erst langfristig materialisieren (2.</article-title>
          <issue>2</issue>
          ,
          <issue>3</issue>
          .2).
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>