22.08.2013 Aufrufe

Grundlagen der Informatik I “Programmierung”

Grundlagen der Informatik I “Programmierung”

Grundlagen der Informatik I “Programmierung”

MEHR ANZEIGEN
WENIGER ANZEIGEN

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;

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!