Title: Prinzipien des Software Engineering
1Prinzipien des Software Engineering
- Strukturierung
- Hierarchisierung
- Abstraktion
- Modularisierung
- Lokalität
- Mehrfachverwendbarkeit
- Standardisierung
- integrierte Dokumentation
2Prinzip der Abstraktion
Abstraktion bedeutet die Verringerung der
Komplexität durch Vernachlässigung von
Nebenaspekten und Details
synonym Modellbildung
Ziel der Abstraktion Herleitung eines Modells
des
betrachteten Systems aus einer
spezifischen Sicht
Beispiele
- modellhafte Darstellung der Informations-
beziehungen eines Systems - modellhafte
Darstellung der Aufbauorganisation eines
Systems (Unternehmens) - modellhafte Darstellung
der Geschäftsprozesse eines Systems
(Unternehmens)
3Prinzip der Strukturierung
Strukturieren bedeutet, für ein komplexes System
eine reduzierte Darstellung zu finden, die den
Charakter des Ganzen mit seinen spezifischen
Merkmalen wiedergibt
Strukturierung von Systemen erfolgt durch
- Hierarchisierung und
- Modularisierung
Strukturierung von Programmen erfolgt durch die
ausschließliche Verwendung der Grundstrukturen
- Sequenz, - Selektion
und - Iteration
4Prinzip der Hierarchisierung
Ein System besitzt eine Hierarchie, wenn seinen
Elementen eine Rangordnung zugeordnet ist.
Elemente gleicher Rang- ordnung bilden eine
Hierarchieebene.
Kriterien für die Bildung von Rangordnungen
- organisatorische Zusammenhänge - vergleichbare
Eigenschaften der Elemente - zeitliche
Zusammenhänge
Hierarchisierung bildet die Grundlage für die
Strukturierung von Systemen
5Prinzip der Modularisierung
Modularisieren bedeutet, ein (Software-) Produkt
aus einzelnen Bausteinen (Modulen)
zusammen- zusetzen, die die folgenden
Eigenschaften besitzen
- eine feste Bindung, d.h. in einem Modul werden
Dinge realisiert, die einen unmittelbaren
Zusammenhang besitzen - Kontextunabhängigkeit,
d.h. ein Modul ist unab- hängig von seiner
Umgebung entwickelbar, übersetzbar, prüfbar,
wartbar und verständlich - es existiert eine
Schnittstellenbeschreibung in Form einer
Spezifikation diese Beschreibung muss die
Parameter bzw. alle importierten und
exportierten Größen enthalten
- alle Internas des Moduls sind dem Anwender
verborgen, d.h. es weiß nicht, wie ein Modul
seine Aufgabe erledigt, er weiß nur, welche
Aufgabe durch ein Modul gelöst wird - alle für
die Anwendung eines Moduls relevanten
Informationen befinden sich an einer Stelle
(Lokalitätsprinzip) - eine geringe Datenkopplung,
d.h. die Menge und die Vielfalt der Daten,
die zwischen den Modulen eines Systems
ausgetauscht werden, ist auf ein Minimum zu
reduzieren
6Modulbildung 1
Ein Modul ist eine softwaretechnische Einheit,
die eine funktionale und/oder eine
Datenabstraktion realisiert
- Ein Modul besitzt einen eigenen Namen.
- Von einem Modul ist (nach 'außen') bekannt, was
es ausführt (nicht wie es ausgeführt wird). - Ein Modul ist unter seinem Namen aufrufbar, d.h.
die im Modul enthaltenen Anweisungen werden zur
Ausführung gebracht. - Ein Modul besitzt eine Eingabeschnittstelle, d.h.
dem Modul werden vom rufenden Programm Daten
(Inputs) übergeben. - Ein Modul besitzt eine Ausgabeschnittstelle, d.h.
es werden i.d.R. Daten (Outputs) an das rufende
Programm zurückgegeben.
7Modulbildung 2
- Abgeschlossenheit
- Jeder Modul verkörpert eine Entwurfsentscheidung,
d.h. eine in sich geschlossene Aufgabe - Wohldefinierte Schnittstellen
- Vollständige und eindeutige Spezifikation der
Schnittstellen - Geheimnisprinzip
- Jeder Modul kennt eine saubere Trennung von
Spezifikation und Konstruktion, d.h. eine
Trennung von 'was' und 'wie' - Gegenseitige Nicht-Beeinflussung
- Änderungen in der Konstruktion eines Moduls
ziehen keine Änderungen in den anderen Modulen
nach sich - Handhabbarkeit
- Jeder Modul ist gut überschaubar, also nicht zu
groß und kann von einer Person bearbeitet und
verstanden werden
- Prüfbarkeit
- Jeder Modul ist so beschaffen, dass sein
korrektes Funktionieren unter Beachtung der
Schnittstellenspezifikation geprüft werden kann - Integrierbarkeit
- Module müssen zu einem Ganzen - ohne Schaffung
neuer Probleme - integrierbar sein - Planbarkeit
- Ein Modul muss planbar und kontrollierbar sein.
Bei der Konstruktion müssen sich Meilensteine
festlegen lassen
8Modulare Struktur
Bindung
Kopplung
Kopplung
Kopplung
Bindung Bindung
Bindung
Kopplung
Kopplung
Kopplung
Kopplung
Bindung
Bindung
Bindung intramodulare BeziehungKopplung
intermodulare Beziehung
9Überblick über die internen Bindungsarten
a) zufällig b) logisch c) zeitlich d)
prozedural e) kommunikativ f) sequentiell g)
funktional
schwache Bindung starke Bindung
Modul führt genau eine problem- bezogene
Funktion aus
ja
nein
Wodurch hängen die Aktivitäten des Moduls
zusammen ?
Daten Kontrollfluß weder
noch
Reihenfolge Reihenfolge
alle Aktivitäten wesentlich
wesentlich derselben
Kategorie
ja nein ja
nein ja nein
funk- tional
sequen- kommuni- tiell kativ
prozdural zeitlich logisch zufällig
10Kopplung
Die Kopplung von Modulen ist der Grad der
Abhängigkeit zwischen den Modulen eines Systems
Kopplungsmechanismus
Auf welche Art und Weise werden die Module
aufgerufen ?
Schnittstellenbreite
In welchem Umfang werden Daten zwischen den
Modulen übergeben und wie sind sie strukturiert ?
Kommunikationsart
In welcher Art und Weise beeinflussen
die übergebenen Daten den Ablauf eines Moduls ?
11Prinzip der Lokalität
Optimale Lokalität liegt vor, wenn alle zur
Lösung eines Problems oder zur Einarbeitung in
einen Bereich benötigten Informationen an einer
Stelle zu finden sind
Nicht benötigte Informationen sind an dieser
Stelle nicht vorhanden !
Für den Bereich der Implementierung gilt der
Grundsatz, dass rund 30 Anweisungen (Befehle)
die obere Grenze dessen darstellen, was beim
Lesen eines Listings, einer Modulbeschreibung,
etc. ohne größere Probleme bewältigt werden kann
12Prinzip der Mehrfachverwendbarkeit
Um Zeit und Kosten bei der Systementwicklung zu
sparen, ist es sinnvoll und wirtschaftlich, erstel
lte Softwarekomponenten nicht nur in einem
Produkt zu verwenden, sondern mehrfach einzusetzen
!
Gründe, die für die Wiederverwendbarkeit sprechen
- Zeiterparnis - Kostenersparnis -
Fehlerreduktion - Erhöhung der Stabilität
13Prinzip der Standardisierung
Standardisierung erfolgt durch die Anwendung
von Richtlinien, Normen, Regeln etc. und betrifft
die unterschiedlichsten Bereiche
- Namensvergabe - Pflichtenheftgestaltung -
Verwendung von Standardgliederungen bei der
Dokumenterstellung - Einhaltung von
Programmierstandards - Oberflächenstandards
(Masken, Listen, etc.) - einheitliches
Fehlermanagement - einheitliche Help -
Gestaltung - einheitliche Verwendung von
Funktionstasten etc.
14Prinzip der integrierten Dokumentation
Ein Softwareprodukt besteht aus
Programmcode Dokumentation
These
Ein Softwareprodukt ist höchstens so gut wie
seine Dokumentation
Dokumentation
Produktdokumentation Projektdokumentation
Zielgruppen Entwickler und Benutzer
15Zusammenfassung
Abstraktion
Strukturierung
Hierarchisierung Modularisierung
Lokalität
Mehrfachverwendbarkeit
Standardisierung integr. Dokumentation
a b a entsteht aus b b
ergibt a a b a steht in
Wechselwirkung mit b a b
a setzt b voraus