Grundlagen der Informatik I “Programmierung”
Grundlagen der Informatik I “Programmierung”
Grundlagen der Informatik I “Programmierung”
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
und “örtlich” durch Zerlegung des Systems in Komponenten, die dann weitgehend unabhängig voneinan<strong>der</strong><br />
entwickelt und geprüft werden können.<br />
1. Phasenkonzept <strong>der</strong> Systementwicklung<br />
Komplexere Softwaresysteme können nur in Versionen entwickelt werden. Erstens ist es unwahrscheinlich,<br />
daß vor dem Einsatz bereits alle Anfor<strong>der</strong>ungen dem Auftraggeber bewußt sind, und zweitens<br />
verän<strong>der</strong>t <strong>der</strong> Einsatz des Systems die alten Abläufe in einem Betrieb <strong>der</strong>art, daß neue Wünsche und<br />
damit neue Anfor<strong>der</strong>ung an das ausgelieferte System entstehen. An eine Softwarefirma, die für eine<br />
Bibliothek ein Verwaltungsprogramm geschrieben hat, kann zum Beispiel <strong>der</strong> Wunsch herangetragen<br />
werden, dieses auf die Verwaltung von CD’s zu erweitern. Sie wird versuchen, unter Wie<strong>der</strong>verwendung<br />
bereits entwickelter Programmteile ein Programm zu entwickeln, was beides gleichzeitig verwalten kann<br />
und Vorsorge für den weiteren Ausbau treffen. Dabei wird sie dann feststellen, daß sich das System<br />
grundsätzlich auch für an<strong>der</strong>e hierarchischen Verwaltungen eignet, und es zu einem allgemein verwendbaren<br />
Modul generalisieren, um einen größeren Kundenkreis für ihr Produkt zu gewinnen. Diese Art <strong>der</strong><br />
Software Entwickling nennt man evolutionär. Evolutionäre Entwicklung hat es stets gegeben, aber erst<br />
durch die objektorientierte Konstruktion von Systemen kann sie mit minimalen Än<strong>der</strong>ungen <strong>der</strong> alten<br />
Version durchgeführt werden.<br />
Der Ausgangspunkt je<strong>der</strong> Entwicklung einer Version ist eine eher vage Beschreibung eines neuen Systems<br />
o<strong>der</strong> neuer Wünsche an ein bestehendes System. Es folgt eine Analyse <strong>der</strong> Marktsituation, ob es ähnliche<br />
Angebote bereits gibt. Ist diese negativ, so erfolgt eine Präzisierung <strong>der</strong> Wünsche, um ein konkretes und<br />
präzis definiertes Entwicklungsziel zu haben. Diese Phase wird Systemanalyse genannt. Das Ergebnis ist<br />
ein Pflichtenheft, das das äußere Verhalten des geplanten Systems in Form <strong>der</strong> Anfor<strong>der</strong>ungsdefintion<br />
als Kontrakt genau beschreibt.<br />
Damit kann die anspruchvollste Phase beginnen: Der Entwurf . Hier wird die Grobstruktur des Systems<br />
festgelegt, die eine Zerlegung in getrennt zu entwickelnden Komponenten erlaubt. Die Realisierung<br />
<strong>der</strong> einzelnen Komponenten in einer Programmiersprache nennt man Implementierung. Sind die Komponenten<br />
fertig und im Komponententest geprüft, so werden sie zum vollständigen System integriert<br />
und in einem Abnahmeverfahren an den Benutzer übergeben. Gleichzeitig beginnt schon das Sammeln<br />
<strong>der</strong> zunächst noch vagen Vorschläge für die nächste Version. Diese Abfolge von Entwicklungsphasen<br />
nennt man Life Cycle. Wir werden in unseren Beispielen diese Phasen nur andeuten. Vertiefung dieser<br />
Thematik bietet die Lehrveranstaltung Software Engineering im Hauptstudium.<br />
2. Zerlegungskonzepte für Systeme<br />
Bei den Zerlegungskonzepten geht es stets um “Separation of Concerns”: Wie reduziert man ein komplexes<br />
Problem in eine Menge von Problemen geringere Komplexität? Diese Frage wollen wir in den<br />
folgenden Abschnitten genauer besprechen.<br />
1.3.3 Schrittweise Verfeinerung<br />
Die einfachste und häufigste Form <strong>der</strong> Strukturierung ist die Zerlegung eines Verfahrens in seine Teilschritte,<br />
die eventuell wie<strong>der</strong> in weitere Teilschritte zerlegt werden, wenn sie noch immer zu komplex sind. Ein Beispiel<br />
ist die “Burger”-Herstellung, die einem sehr genau festgelegten Verfahren folgt:<br />
Erste Verfeinerung <strong>der</strong> Herstellung:<br />
Burger-Herstellung: Brötchen vorbereiten;<br />
Brötchen füllen;<br />
Brötchen verpacken<br />
Zweite Verfeinerung <strong>der</strong> Herstellung:<br />
Brötchen vorbereiten: Brötchen nehmen;<br />
Brötchen halbieren;