1 on the criteria to be used in decomposing systems into modules vortrag zum seminar...
TRANSCRIPT
![Page 1: 1 On the Criteria to Be Used in Decomposing Systems into Modules Vortrag zum Seminar Software-Architektur 19.05.2004 von Marco Eckstein (E-Mail: eckstein@informatik.hu-berlin.de)eckstein@informatik.hu-berlin.de](https://reader036.vdocuments.mx/reader036/viewer/2022062512/55204d6249795902118b687c/html5/thumbnails/1.jpg)
1
On the Criteria to Be Used in Decomposing Systems into Modules
Vortrag zum Seminar „Software-Architektur“19.05.2004
von Marco Eckstein (E-Mail: [email protected])
![Page 2: 1 On the Criteria to Be Used in Decomposing Systems into Modules Vortrag zum Seminar Software-Architektur 19.05.2004 von Marco Eckstein (E-Mail: eckstein@informatik.hu-berlin.de)eckstein@informatik.hu-berlin.de](https://reader036.vdocuments.mx/reader036/viewer/2022062512/55204d6249795902118b687c/html5/thumbnails/2.jpg)
2
Modularisierung• SW-System wird in (idealerweise)
unabhängige Module aufgeteilt.
• Modularisierung Dekompostition
• Modularisierung erfolgt, bevor einzelne Module bearbeitet werden.
![Page 3: 1 On the Criteria to Be Used in Decomposing Systems into Modules Vortrag zum Seminar Software-Architektur 19.05.2004 von Marco Eckstein (E-Mail: eckstein@informatik.hu-berlin.de)eckstein@informatik.hu-berlin.de](https://reader036.vdocuments.mx/reader036/viewer/2022062512/55204d6249795902118b687c/html5/thumbnails/3.jpg)
3
Modularisierung• Vorteile:
– Organisatorische: Mehrere Teams können unabhängig voneinander arbeiten. kürzere Entwicklungszeit
– Flexibilität: Ein Modul kann geändert werden, ohne dass andere Module betroffen sind.
– Verständlichkeit: Einzelne Module können besser verstanden werden als große, monolithische SW.
![Page 4: 1 On the Criteria to Be Used in Decomposing Systems into Modules Vortrag zum Seminar Software-Architektur 19.05.2004 von Marco Eckstein (E-Mail: eckstein@informatik.hu-berlin.de)eckstein@informatik.hu-berlin.de](https://reader036.vdocuments.mx/reader036/viewer/2022062512/55204d6249795902118b687c/html5/thumbnails/4.jpg)
4
Modularisierung• Zentrale Frage: Was ist ein Modul?
• Allgemein: Arbeitseinheit o.ä.
• Hier behandelte konkrete Möglichkeiten:– Modul Unterprogramm– Modul Klasse (1972 bei Parnas aber noch
nicht Klasse genannt)
![Page 5: 1 On the Criteria to Be Used in Decomposing Systems into Modules Vortrag zum Seminar Software-Architektur 19.05.2004 von Marco Eckstein (E-Mail: eckstein@informatik.hu-berlin.de)eckstein@informatik.hu-berlin.de](https://reader036.vdocuments.mx/reader036/viewer/2022062512/55204d6249795902118b687c/html5/thumbnails/5.jpg)
5
Modularisierung• Was ist eine „gute“ Modularisierung?
– Hier werden zwei sehr unterschiedliche Modularisierungen für ein SW-System vorgestellt.
– Vergleich von Vor- und Nachteilen– Beispielsystem:
System erstellt einen KWIC Index.
![Page 6: 1 On the Criteria to Be Used in Decomposing Systems into Modules Vortrag zum Seminar Software-Architektur 19.05.2004 von Marco Eckstein (E-Mail: eckstein@informatik.hu-berlin.de)eckstein@informatik.hu-berlin.de](https://reader036.vdocuments.mx/reader036/viewer/2022062512/55204d6249795902118b687c/html5/thumbnails/6.jpg)
6
KWIC Index
• KWIC = KeyWord In Context
• „Normaler“ Index (wie in den meisten Büchern) ohne Kontext
• KWIC Index wie normaler Index alphabetisch geordnet
![Page 7: 1 On the Criteria to Be Used in Decomposing Systems into Modules Vortrag zum Seminar Software-Architektur 19.05.2004 von Marco Eckstein (E-Mail: eckstein@informatik.hu-berlin.de)eckstein@informatik.hu-berlin.de](https://reader036.vdocuments.mx/reader036/viewer/2022062512/55204d6249795902118b687c/html5/thumbnails/7.jpg)
7
KWIC Index• Bsp. normaler Index
BackEmpireJediReturnStarStrikesTheWarsofthe
zusätzlich zu den Wörtern üblicherweise noch Verweise auf Seiten (Interessiert uns hier nicht.)
.
.
.
![Page 8: 1 On the Criteria to Be Used in Decomposing Systems into Modules Vortrag zum Seminar Software-Architektur 19.05.2004 von Marco Eckstein (E-Mail: eckstein@informatik.hu-berlin.de)eckstein@informatik.hu-berlin.de](https://reader036.vdocuments.mx/reader036/viewer/2022062512/55204d6249795902118b687c/html5/thumbnails/8.jpg)
8
KWIC Index• Bsp. KWIC Index• „roh“ ausgegeben:
Back The Empire Strikes Empire Strikes Back The Jedi The Return of the Return of the Jedi The Star Wars Strikes Back The Empire The Empire Strikes Back The Return of the Jedi Wars Star
of the Jedi The Return the Jedi The Return of
Auch hier sind Verweise möglich. (Interessiert uns hier nicht.)
![Page 9: 1 On the Criteria to Be Used in Decomposing Systems into Modules Vortrag zum Seminar Software-Architektur 19.05.2004 von Marco Eckstein (E-Mail: eckstein@informatik.hu-berlin.de)eckstein@informatik.hu-berlin.de](https://reader036.vdocuments.mx/reader036/viewer/2022062512/55204d6249795902118b687c/html5/thumbnails/9.jpg)
9
KWIC Index• Bsp. KWIC Index• „schön“ ausgegeben:
The Empire Strikes Back The Empire Strikes Back The Return of the Jedi The Return of the Jedi Star Wars The Empire Strikes Back The Empire Strikes Back The Return of the Jedi Star Wars The Return of the Jedi The Return of the Jedi
![Page 10: 1 On the Criteria to Be Used in Decomposing Systems into Modules Vortrag zum Seminar Software-Architektur 19.05.2004 von Marco Eckstein (E-Mail: eckstein@informatik.hu-berlin.de)eckstein@informatik.hu-berlin.de](https://reader036.vdocuments.mx/reader036/viewer/2022062512/55204d6249795902118b687c/html5/thumbnails/10.jpg)
10
KWIC Index• Vorteile der Kontextinformation
• Bsp.:– normaler Index:
The Seite 21, Seite 54– KWIC Index:
The Empire Strikes Back Seite 21 The Return of the Jedi Seite 54
![Page 11: 1 On the Criteria to Be Used in Decomposing Systems into Modules Vortrag zum Seminar Software-Architektur 19.05.2004 von Marco Eckstein (E-Mail: eckstein@informatik.hu-berlin.de)eckstein@informatik.hu-berlin.de](https://reader036.vdocuments.mx/reader036/viewer/2022062512/55204d6249795902118b687c/html5/thumbnails/11.jpg)
11
KWIC Index• Für elektronische Dokumente eher überflüssig
Volltextsuche
![Page 12: 1 On the Criteria to Be Used in Decomposing Systems into Modules Vortrag zum Seminar Software-Architektur 19.05.2004 von Marco Eckstein (E-Mail: eckstein@informatik.hu-berlin.de)eckstein@informatik.hu-berlin.de](https://reader036.vdocuments.mx/reader036/viewer/2022062512/55204d6249795902118b687c/html5/thumbnails/12.jpg)
12
KWIC Index• Wie entsteht der KWIC Index?
• Eingabe: unsortierte Zeilen– Bsp.: The Empire Strikes Back
Star Wars The Return of the Jedi
![Page 13: 1 On the Criteria to Be Used in Decomposing Systems into Modules Vortrag zum Seminar Software-Architektur 19.05.2004 von Marco Eckstein (E-Mail: eckstein@informatik.hu-berlin.de)eckstein@informatik.hu-berlin.de](https://reader036.vdocuments.mx/reader036/viewer/2022062512/55204d6249795902118b687c/html5/thumbnails/13.jpg)
13
KWIC Index• Dann: Erzeugung der „Circular Shifts“
– Bsp.:The Empire Strikes Back
Empire Strikes Back The
Strikes Back The Empire
usw.
![Page 14: 1 On the Criteria to Be Used in Decomposing Systems into Modules Vortrag zum Seminar Software-Architektur 19.05.2004 von Marco Eckstein (E-Mail: eckstein@informatik.hu-berlin.de)eckstein@informatik.hu-berlin.de](https://reader036.vdocuments.mx/reader036/viewer/2022062512/55204d6249795902118b687c/html5/thumbnails/14.jpg)
14
KWIC Index• Dabei ist die ursprüngliche Zeile selbst ein
Circular Shift.
• Dann: Alphabetische Sortierung der Circular Shifts aller Zeilen.
• Dann: Ausgabe
![Page 15: 1 On the Criteria to Be Used in Decomposing Systems into Modules Vortrag zum Seminar Software-Architektur 19.05.2004 von Marco Eckstein (E-Mail: eckstein@informatik.hu-berlin.de)eckstein@informatik.hu-berlin.de](https://reader036.vdocuments.mx/reader036/viewer/2022062512/55204d6249795902118b687c/html5/thumbnails/15.jpg)
15
Beispielarchitekturen
1. MainSubroutine-Architektur(Modul Unterprogramm) um 1972 übliche Modularisierung
2. Objektorientierte Architektur(Modul Klasse) um 1972 unübliche Modularisierung
• Details sind im Folgenden nicht so wichtig.
![Page 16: 1 On the Criteria to Be Used in Decomposing Systems into Modules Vortrag zum Seminar Software-Architektur 19.05.2004 von Marco Eckstein (E-Mail: eckstein@informatik.hu-berlin.de)eckstein@informatik.hu-berlin.de](https://reader036.vdocuments.mx/reader036/viewer/2022062512/55204d6249795902118b687c/html5/thumbnails/16.jpg)
16
1. MainSubroutine-Architektur
Abb.: TU Graz (siehe Literatur/ Links auf Folie 30)
![Page 17: 1 On the Criteria to Be Used in Decomposing Systems into Modules Vortrag zum Seminar Software-Architektur 19.05.2004 von Marco Eckstein (E-Mail: eckstein@informatik.hu-berlin.de)eckstein@informatik.hu-berlin.de](https://reader036.vdocuments.mx/reader036/viewer/2022062512/55204d6249795902118b687c/html5/thumbnails/17.jpg)
17
1. MainSubroutine-Architektur
Abb.: TU Graz (siehe Literatur/ Links auf Folie 30)
![Page 18: 1 On the Criteria to Be Used in Decomposing Systems into Modules Vortrag zum Seminar Software-Architektur 19.05.2004 von Marco Eckstein (E-Mail: eckstein@informatik.hu-berlin.de)eckstein@informatik.hu-berlin.de](https://reader036.vdocuments.mx/reader036/viewer/2022062512/55204d6249795902118b687c/html5/thumbnails/18.jpg)
18
1. MainSubroutine-Architektur
Abb.: TU Graz (siehe Literatur/ Links auf Folie 30)
![Page 19: 1 On the Criteria to Be Used in Decomposing Systems into Modules Vortrag zum Seminar Software-Architektur 19.05.2004 von Marco Eckstein (E-Mail: eckstein@informatik.hu-berlin.de)eckstein@informatik.hu-berlin.de](https://reader036.vdocuments.mx/reader036/viewer/2022062512/55204d6249795902118b687c/html5/thumbnails/19.jpg)
19
2. Objektorientierte Architektur
Abb.: TU Graz (siehe Literatur/ Links auf Folie 30)
![Page 20: 1 On the Criteria to Be Used in Decomposing Systems into Modules Vortrag zum Seminar Software-Architektur 19.05.2004 von Marco Eckstein (E-Mail: eckstein@informatik.hu-berlin.de)eckstein@informatik.hu-berlin.de](https://reader036.vdocuments.mx/reader036/viewer/2022062512/55204d6249795902118b687c/html5/thumbnails/20.jpg)
20
Vergleich der Beispielarchitekturen
• Beide Architekturen funktionieren natürlich.
• Aber: Wie robust sind sie gegenüber Änderungen?
![Page 21: 1 On the Criteria to Be Used in Decomposing Systems into Modules Vortrag zum Seminar Software-Architektur 19.05.2004 von Marco Eckstein (E-Mail: eckstein@informatik.hu-berlin.de)eckstein@informatik.hu-berlin.de](https://reader036.vdocuments.mx/reader036/viewer/2022062512/55204d6249795902118b687c/html5/thumbnails/21.jpg)
21
Vergleich der Beispielarchitekturen Änderung: Eingabe-Format
• MainSubroutine-Architektur:
Änderung des Eingabe-Formats
Änderung eines Moduls
Abb.: TU Graz (siehe Literatur/ Links auf Folie 30)
![Page 22: 1 On the Criteria to Be Used in Decomposing Systems into Modules Vortrag zum Seminar Software-Architektur 19.05.2004 von Marco Eckstein (E-Mail: eckstein@informatik.hu-berlin.de)eckstein@informatik.hu-berlin.de](https://reader036.vdocuments.mx/reader036/viewer/2022062512/55204d6249795902118b687c/html5/thumbnails/22.jpg)
22
Vergleich der Beispielarchitekturen Änderung: Eingabe-Format
• OO Architektur:
Änderung des Eingabe-Formats
ebenfalls Änderung eines Moduls
Abb.: TU Graz (siehe Literatur/ Links auf Folie 30)
![Page 23: 1 On the Criteria to Be Used in Decomposing Systems into Modules Vortrag zum Seminar Software-Architektur 19.05.2004 von Marco Eckstein (E-Mail: eckstein@informatik.hu-berlin.de)eckstein@informatik.hu-berlin.de](https://reader036.vdocuments.mx/reader036/viewer/2022062512/55204d6249795902118b687c/html5/thumbnails/23.jpg)
23
Vergleich der Beispielarchitekturen Änderung: Speicherung der Zeilen
nicht mehr im Hauptspeicher• MainSubroutine-Architektur:
Änderung von vier Modulen!
Abb.: TU Graz (siehe Literatur/ Links auf Folie 30)
![Page 24: 1 On the Criteria to Be Used in Decomposing Systems into Modules Vortrag zum Seminar Software-Architektur 19.05.2004 von Marco Eckstein (E-Mail: eckstein@informatik.hu-berlin.de)eckstein@informatik.hu-berlin.de](https://reader036.vdocuments.mx/reader036/viewer/2022062512/55204d6249795902118b687c/html5/thumbnails/24.jpg)
24
Vergleich der Beispielarchitekturen Änderung: Speicherung der Zeilen
nicht mehr im Hauptspeicher• OO Architektur:
Änderung eines Moduls!
Die Informationen darüber, wie und wo die Zeilen gespeichert sind, werden versteckt. Information Hiding
Abb.: TU Graz (siehe Literatur/ Links auf Folie 30)
![Page 25: 1 On the Criteria to Be Used in Decomposing Systems into Modules Vortrag zum Seminar Software-Architektur 19.05.2004 von Marco Eckstein (E-Mail: eckstein@informatik.hu-berlin.de)eckstein@informatik.hu-berlin.de](https://reader036.vdocuments.mx/reader036/viewer/2022062512/55204d6249795902118b687c/html5/thumbnails/25.jpg)
25
Vergleich der Beispielarchitekturen Änderung: Speicherung der
Circular Shifts als Characters, statt nur einen Index dafür zu kreieren• MainSubroutine-Architektur :
Änderung von drei Modulen
Abb.: TU Graz (siehe Literatur/ Links auf Folie 30)
![Page 26: 1 On the Criteria to Be Used in Decomposing Systems into Modules Vortrag zum Seminar Software-Architektur 19.05.2004 von Marco Eckstein (E-Mail: eckstein@informatik.hu-berlin.de)eckstein@informatik.hu-berlin.de](https://reader036.vdocuments.mx/reader036/viewer/2022062512/55204d6249795902118b687c/html5/thumbnails/26.jpg)
26
Vergleich der Beispielarchitekturen Änderung: Speicherung der
Circular Shifts als Characters, statt nur einen Index dafür zu kreieren• OO Architektur :
Änderung eines Moduls
Abb.: TU Graz (siehe Literatur/ Links auf Folie 30)
![Page 27: 1 On the Criteria to Be Used in Decomposing Systems into Modules Vortrag zum Seminar Software-Architektur 19.05.2004 von Marco Eckstein (E-Mail: eckstein@informatik.hu-berlin.de)eckstein@informatik.hu-berlin.de](https://reader036.vdocuments.mx/reader036/viewer/2022062512/55204d6249795902118b687c/html5/thumbnails/27.jpg)
27
Vergleich der Beispielarchitekturen
• MainSubroutine-Architektur:Jedes Modul entspricht einem Schritt in der Abarbeitungsfolge.
• OO Architektur:Jedes Modul versteckt eine Entwurfsentscheidung vor den anderen. Die Schnittstelle ist möglichst abstrakt und gibt so wenig wie möglich über das Innenleben preis.
![Page 28: 1 On the Criteria to Be Used in Decomposing Systems into Modules Vortrag zum Seminar Software-Architektur 19.05.2004 von Marco Eckstein (E-Mail: eckstein@informatik.hu-berlin.de)eckstein@informatik.hu-berlin.de](https://reader036.vdocuments.mx/reader036/viewer/2022062512/55204d6249795902118b687c/html5/thumbnails/28.jpg)
28
Schlussfolgerungen
• MainSubroutine-Architektur nur für sehr kleine Systeme! Vorgehen „Flussdiagramm Modularisierung“ also meist ungeeignet
• OO Architektur meist besserVorgehen: „Entwurfsentscheidungen zusammentragen diese versteckende Module festlegen“
![Page 29: 1 On the Criteria to Be Used in Decomposing Systems into Modules Vortrag zum Seminar Software-Architektur 19.05.2004 von Marco Eckstein (E-Mail: eckstein@informatik.hu-berlin.de)eckstein@informatik.hu-berlin.de](https://reader036.vdocuments.mx/reader036/viewer/2022062512/55204d6249795902118b687c/html5/thumbnails/29.jpg)
29
Literatur/ Links• D.L. Parnas: On the Criteria to Be Used in
Decomposing Systems into Modules (1972)Online unter: http://www.acm.org/classics/may96/
![Page 30: 1 On the Criteria to Be Used in Decomposing Systems into Modules Vortrag zum Seminar Software-Architektur 19.05.2004 von Marco Eckstein (E-Mail: eckstein@informatik.hu-berlin.de)eckstein@informatik.hu-berlin.de](https://reader036.vdocuments.mx/reader036/viewer/2022062512/55204d6249795902118b687c/html5/thumbnails/30.jpg)
30
Literatur/ Links• Unterlagen zu einer Software-Architektur-
Vorlesung (TU Graz, Österreich):– Home: http://coronet.iicm.edu/sa/– KWIC Implemented with...
• ... MainSubroutine Architectural Style: http://coronet.iicm.edu/sa/assign/1/
• ... Object-Oriented Architectural Style: http://coronet.iicm.edu/sa/assign/2/
• weitere Architectural Styles: .../assign/3/ usw.– Von dort stammen viele Abbildungen in dieser
Präsentation!