21
Universität Paderborn Proseminar Software Pioneers – AG Wehrheim SS06 On the Criteria to be Used in Decomposing Systems into Modules Michael Schneider

Universität Paderborn Proseminar Software Pioneers – AG Wehrheim SS06 On the Criteria to be Used in Decomposing Systems into Modules Michael Schneider

Embed Size (px)

Citation preview

Page 1: Universität Paderborn Proseminar Software Pioneers – AG Wehrheim SS06 On the Criteria to be Used in Decomposing Systems into Modules Michael Schneider

Universität PaderbornProseminar Software Pioneers – AG Wehrheim SS06

On the Criteria to be Used in Decomposing Systems into Modules

Michael Schneider

Page 2: Universität Paderborn Proseminar Software Pioneers – AG Wehrheim SS06 On the Criteria to be Used in Decomposing Systems into Modules Michael Schneider

On The Criteria to be Used in Decomposing Systems into Modules Michael Schneider SS 06 Proseminar Software Pioneers 2

Inhalt

1. David L. Parnas als “Software Pioneer”

2. ACM-Artikel von 1972

2.1. Verschiedene Arten von Modularisierungen

2.2. Information Hiding

3. Ein Rückblick nach 30 Jahren

3.1. Verbesserung eines Industriebeispiels durch Information Hiding

3.2. Studie aus einem Programmierseminar

3.3. Heutige Techniken

4. Fazit

5. Quellen

Page 3: Universität Paderborn Proseminar Software Pioneers – AG Wehrheim SS06 On the Criteria to be Used in Decomposing Systems into Modules Michael Schneider

On The Criteria to be Used in Decomposing Systems into Modules Michael Schneider SS 06 Proseminar Software Pioneers 3

1. David L. Parnas als “Software Pioneer”

Am 10. Februar 1941 in Platsburgh, NY

als David Lorge Parnas geboren

Ist Professor of Software Engineering

und Ph.D. in electrical engineering

1972 ACM Artikel zu Dekompositionsverfahren und Information

Hiding

Entwickelte Modulkonzept, das Grundlage für OOP-Sprachen ist

Lehrte unter anderem auch an TH Darmstadt

Ist aktuell an der University of Limerick in Irland

Page 4: Universität Paderborn Proseminar Software Pioneers – AG Wehrheim SS06 On the Criteria to be Used in Decomposing Systems into Modules Michael Schneider

On The Criteria to be Used in Decomposing Systems into Modules Michael Schneider SS 06 Proseminar Software Pioneers 4

2. ACM-Artikel von 1972

Titel: „On the Criteria to be Used in Decomposing Systems into

Modules”

Artikel gilt als Grundidee für OOP-Sprachen

Dekompostionsverfahren helfen, Software zu Modularisieren

und somit übersichtlicher zu gestalten

Softwareentwicklung in separaten Gruppen

Flexible Entwicklung

Verständlichkeit

Es gibt verschiedene Arten von Modularisierung, die

unterschiedliche Ideen verfolgen, 2 Beispiele:

Modularisierung ohne Information Hiding

Modularisierung mit Information Hiding

Page 5: Universität Paderborn Proseminar Software Pioneers – AG Wehrheim SS06 On the Criteria to be Used in Decomposing Systems into Modules Michael Schneider

On The Criteria to be Used in Decomposing Systems into Modules Michael Schneider SS 06 Proseminar Software Pioneers 5

2.1. Verschiedene Arten von Modularisierungen

1. Modularisierung ohne Information Hiding

Hauptziel: Effizienz

5 Module:

Modul 1 Input:

Liest Datenzeilen ein

Erzeugt aus ihnen Kernel-Array

4 Zeichen = 1 Word

Erzeugt Index der Startadressen der Datenzeilen

Modul 2 Circular Shift:

Verwendet direkt Array von Modul 1

erzeugt in Array Index aus erstem Zeichen des Circular Shift und

Indexline

Array enthält Word-Paar => Zeilennummer + Startadresse

Page 6: Universität Paderborn Proseminar Software Pioneers – AG Wehrheim SS06 On the Criteria to be Used in Decomposing Systems into Modules Michael Schneider

On The Criteria to be Used in Decomposing Systems into Modules Michael Schneider SS 06 Proseminar Software Pioneers 6

2.1. Verschiedene Arten von Modularisierungen

1. Modularisierung ohne Information Hiding

5 Module:

Modul 3 Alphabetizing:

Input = Arrays von Modul 1 und 2

Erzeugt Array der Art von Modul 2

Sortiert Circular Shifts alphabetisch

Modul 4 Output:

Verwendet direkt Arrays von Modul 1 und 3

Erzeugt aufbereiteten Output der alphabetischen Circular Shifts

Outputlayout ist von den Shifts abhängig

Modul 5 Master Control:

Kontrolliert direkt über die Module den ordnungsgemäßen Ablauf

Page 7: Universität Paderborn Proseminar Software Pioneers – AG Wehrheim SS06 On the Criteria to be Used in Decomposing Systems into Modules Michael Schneider

On The Criteria to be Used in Decomposing Systems into Modules Michael Schneider SS 06 Proseminar Software Pioneers 7

2.1. Verschiedene Arten von Modularisierungen

1. Modularisierung ohne Information Hiding

Kern

Modul 1

Daten

Modul2

Modul 3

Modul 4

Modul 5

Page 8: Universität Paderborn Proseminar Software Pioneers – AG Wehrheim SS06 On the Criteria to be Used in Decomposing Systems into Modules Michael Schneider

On The Criteria to be Used in Decomposing Systems into Modules Michael Schneider SS 06 Proseminar Software Pioneers 8

2.1. Verschiedene Arten von Modularisierungen

2. Modularisierung mit Information Hiding

Hauptziele: Übersichtlichkeit, Austauschbarkeit, gute Wartbarkeit

6 Module, die ihre Funktionen über Interfaces anderen zur Verfügung stellen: Modul 1 Line Storage:

Speichert die Daten

bietet Funktionsinterface zum Datenverarbeiten an

Funktionen: CHAR(r, w, c) indiziert Zeichen in Words

SETCHAR(r,w,c,d) ersetzt Zeichen in Words

WORDS( r ) zählt Words je Zeile

DELINE bzw. DELWRD bieten Löschfunktionen an

Error Handling bei fehlerhaften Funktionsaufrufen

Page 9: Universität Paderborn Proseminar Software Pioneers – AG Wehrheim SS06 On the Criteria to be Used in Decomposing Systems into Modules Michael Schneider

On The Criteria to be Used in Decomposing Systems into Modules Michael Schneider SS 06 Proseminar Software Pioneers 9

2.1. Verschiedene Arten von Modularisierungen

2. Modularisierung mit Information Hiding 6 Module, die ihre Funktionen über Interfaces anderen zur

Verfügung stellen:

Modul 2 Input: Liest Daten ein und gibt sie an Modul 1 zum Speichern

Modul 3 Circular Shift: Erzeugt Index von Shifts je Datenzeile

Hauptfunktionen sind analog zu Modul 1

2 wichtige Funktionen: CSSETUP bestimmt die Regeln des Shifts

CSCHAR(l,w,c) indiziert Character des Words je Shift

Shifts erfolgen Zeilenabhängig

Je Zeile: 1. Shift Original, 2. One-Word-Rotation

Page 10: Universität Paderborn Proseminar Software Pioneers – AG Wehrheim SS06 On the Criteria to be Used in Decomposing Systems into Modules Michael Schneider

On The Criteria to be Used in Decomposing Systems into Modules Michael Schneider SS 06 Proseminar Software Pioneers 10

2.1. Verschiedene Arten von Modularisierungen

2. Modularisierung mit Information Hiding 6 Module, die ihre Funktionen über Interfaces anderen zur

Verfügung stellen:

Modul 4 Alphabetizer:

Sortiert alphabetisch

2 Hauptfunktionen: ALPH sortiert

ITH(i) indiziert sortierte Circular Shifts

Modul 5 Output:

Erzeugt einen Output der aufbereiteten Daten

Modul 6 Master Control:

Kontrolliert den ordnungsgemäßen Ablauf der Module

Page 11: Universität Paderborn Proseminar Software Pioneers – AG Wehrheim SS06 On the Criteria to be Used in Decomposing Systems into Modules Michael Schneider

On The Criteria to be Used in Decomposing Systems into Modules Michael Schneider SS 06 Proseminar Software Pioneers 11

2.1. Verschiedene Arten von Modularisierungen

2. Modularisierung mit Information Hiding

Modul1 Modul 2

Modul 3 Modul 4

Modul 5 Modul 6

Page 12: Universität Paderborn Proseminar Software Pioneers – AG Wehrheim SS06 On the Criteria to be Used in Decomposing Systems into Modules Michael Schneider

On The Criteria to be Used in Decomposing Systems into Modules Michael Schneider SS 06 Proseminar Software Pioneers 12

2.2. Information Hiding

Vorteile:

Unabhängigkeit der Module

Veränderbarkeit, da kein Modul direkt auf andere zugreift

Ersetzbarkeit, da nur die Schnittstellen konstant bleiben muss

Bessere Wartungsmöglichkeiten

Geringerer Aufwand, da:

Nur Interfacedesign muss abgeklärt werden

• Nachteile:

Schnittstellen müssen zu Beginn eindeutig definiert werden und

später auch zwingend eingehalten werden

Optimierung für einzelne Probleme nur im Rahmen der

Schnittstellendefinition möglich

Page 13: Universität Paderborn Proseminar Software Pioneers – AG Wehrheim SS06 On the Criteria to be Used in Decomposing Systems into Modules Michael Schneider

On The Criteria to be Used in Decomposing Systems into Modules Michael Schneider SS 06 Proseminar Software Pioneers 13

3. Ein Rückblick nach 30 Jahren

Modularisierung als Standard etabliert

Information Hiding leider noch nicht

Altbewährte Vorgehensweisen verhindern Durchbruch

„Never Change A Running System.“

Parnas hat Studien in Industrie und Seminaren durchgeführt

Information Hiding scheitert meist am Aufwand vor der

Umsetzung, nicht an seiner Idee

Page 14: Universität Paderborn Proseminar Software Pioneers – AG Wehrheim SS06 On the Criteria to be Used in Decomposing Systems into Modules Michael Schneider

On The Criteria to be Used in Decomposing Systems into Modules Michael Schneider SS 06 Proseminar Software Pioneers 14

3.1. Verbesserung eines Industriebeispiels

Programmierer sollen Projekt entwickeln und planen

die Umsetzung in Modulen:

Es entsteht eine

Modulstruktur ohne

Information Hiding

Page 15: Universität Paderborn Proseminar Software Pioneers – AG Wehrheim SS06 On the Criteria to be Used in Decomposing Systems into Modules Michael Schneider

On The Criteria to be Used in Decomposing Systems into Modules Michael Schneider SS 06 Proseminar Software Pioneers 15

3.1. Verbesserung eines Industriebeispiels

Probleme hierbei sind:

Module werden als Ganzes betrachtet

Planung des Gesamtproduktes geht in jedes Detail

Änderungen an einzelnen Punkten müssen immer an alle

weitergegeben werden

Änderungen an einzelnen Modulen können unerwartete

Auswirkungen auf andere Module haben

Wartbarkeit wird im Vergleich zur Effizienz vernachlässigt

Übersichtlichkeit geht verloren

Page 16: Universität Paderborn Proseminar Software Pioneers – AG Wehrheim SS06 On the Criteria to be Used in Decomposing Systems into Modules Michael Schneider

On The Criteria to be Used in Decomposing Systems into Modules Michael Schneider SS 06 Proseminar Software Pioneers 16

3.1. Verbesserung eines Industriebeispiels

Besser wäre eine Lösung mittels Information Hiding

gewesen:

Feste, vordefinierte

Schnittstellen erzeugen

unabhängige, leicht

wartbare Module.

INTERFACE

Page 17: Universität Paderborn Proseminar Software Pioneers – AG Wehrheim SS06 On the Criteria to be Used in Decomposing Systems into Modules Michael Schneider

On The Criteria to be Used in Decomposing Systems into Modules Michael Schneider SS 06 Proseminar Software Pioneers 17

3.1. Verbesserung eines Industriebeispiels

Verbesserungen durch Information Hiding wären:

Übersichtlichkeit

Leichtere Wartung

Unabhängigkeit der Module

Nutzbarkeit einzelner Module für spätere Projekte

Page 18: Universität Paderborn Proseminar Software Pioneers – AG Wehrheim SS06 On the Criteria to be Used in Decomposing Systems into Modules Michael Schneider

On The Criteria to be Used in Decomposing Systems into Modules Michael Schneider SS 06 Proseminar Software Pioneers 18

3.2. Studie aus einem Programmierseminar

Aufgabenstellung:

5 Module müssen umgesetzt werden

Je Modul gibt es 5 Möglichkeiten, dies zu tun

Alle Kombinationen sollen funktionieren

Modularisierung soll mittels Information Hiding umgesetzt werden

Hintergrund:

Industriestudien bezüglich Information Hiding

Testen, wie Forschung Etablierung vorantreiben kann

Schnittstellenumsetzung, ohne direkten Austausch versuchen

Erkennen, wo Umsetzungsprobleme sind

Page 19: Universität Paderborn Proseminar Software Pioneers – AG Wehrheim SS06 On the Criteria to be Used in Decomposing Systems into Modules Michael Schneider

On The Criteria to be Used in Decomposing Systems into Modules Michael Schneider SS 06 Proseminar Software Pioneers 19

3.3. Heutige Techniken

Abstrakte Datentypen Verwirklichung von Information Hiding

Leider noch zu selten verwendet

• Objektorientierte Sprachen Größtenteils mit Information Hiding

Unterschiedliche Designs der Sprachen erzwingen Kompormisse

Irrglaube: Programmieren in objektorientierter Sprache = objektorientiertes Programmieren

Overhead durch geladene Module, die nicht verwendet werden

• Komponentenorientiertes Design Noch nicht ausreichend verwirklicht

Page 20: Universität Paderborn Proseminar Software Pioneers – AG Wehrheim SS06 On the Criteria to be Used in Decomposing Systems into Modules Michael Schneider

On The Criteria to be Used in Decomposing Systems into Modules Michael Schneider SS 06 Proseminar Software Pioneers 20

4. Fazit

Modularisierung ist wichtiger Bestandteil heutiger Softwareentwicklung

Information Hiding ist eine sinnvolle Entwicklung

Leider noch nicht etabliert, weil: Schnittstellen werden unterschätzt

Klassische Strukturen bestimmen Entwicklerdenken

Vorhandene Schnittstellen sind oft nicht ausgereift

Effizienz wird höher als Wartbarkeit eingeschätzt

„Never Change A Running System“ ist noch immer ein Leitspruch der Industrie

Neues Designen von Programmen erfordert Anpassungsfähigkeit und Zeit

Page 21: Universität Paderborn Proseminar Software Pioneers – AG Wehrheim SS06 On the Criteria to be Used in Decomposing Systems into Modules Michael Schneider

On The Criteria to be Used in Decomposing Systems into Modules Michael Schneider SS 06 Proseminar Software Pioneers 21

∞ Ende

Vielen Dank für Ihre Aufmerksamkeit