On the Criteria to Be Used in Decomposing Systems into Modules

Slides:



Advertisements
Ähnliche Präsentationen
Programmieren im Großen von Markus Schmidt und Benno Kröger.
Advertisements

Implementierung eines BPSK (De)Modulators auf einem Spartan 3E FPGA
WML – Wireless Markup Language Vortrag von Eduard Jakel.
B-Bäume.
Sprachlernplattform für alle Lebenslagen
CPCP Institute of Clinical Pharmacology AGAH Annual Meeting, 29. Februar 2004, Berlin, Praktischer Umgang mit den Genehmigungsanträgen gemäß 12. AMG Novelle.
Pflege der Internetdienste
Universität Paderborn Proseminar Software Pioneers – AG Wehrheim SS06 On the Criteria to be Used in Decomposing Systems into Modules Michael Schneider.
Standortfaktoren INTERN - Ausdrucksstark präsentieren.
Objektorientierter Entwurf (OOD) Teil 3: Qualitätsmodell
On a Buzzword: Hierachical Structure David Parnas.
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Der Einstieg in das Programmieren
Klicke Dich mit der linken Maustaste durch das Übungsprogramm! Vereinfachung von Termen Ein Übungsprogramm der IGS - Hamm/Sieg © IGS-Hamm/Sieg 2006 Dietmar.
Java: Objektorientierte Programmierung
ARRAY oder FELD oder VEKTOR
Rechneraufbau & Rechnerstrukturen, Folie 14.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 14.
Grundkurs Theoretische Informatik, Folie 3.1 © 2004 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 3 Gottfried Vossen Kurt-Ulrich Witt.
Vorlesung: 1 Betriebssysteme 2007 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebssysteme Hochverfügbarkeit (Einführung) 3. Quartal.
Vorlesung: 1 Betriebssysteme 2008 Prof. Dr. G. Hellberg Studiengang Mechatronik FHDW Vorlesung: Betriebssysteme Hochverfügbarkeit (Einführung) 2. Quartal.
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil2.
Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung Bäume-
Kursleitung: Hier ist Platz für Ihren Namen
Vorlesung 3: Verschiedenes Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Memoir von Andreas Heinze Eine Klasse für sich Die Memoir- Klasse -- Andreas Heinze 2 Gliederung 1. Geschichtlicher Abriss 2. Eigenschaften.
Präsentation Teil 3 Betreuungsmitteilung
Inhalte und Maßnahmen eingegeben haben,
Immerwährender Geburtstagskalender Comedison Inhalt Präsentation Folie erstellen/einrichten Meister aller Folien 16.
Heute: Scherenzange zeichnen
1 Vorlesung 3 Verschiedenes Peter B. Ladkin
Ralf KüstersDagstuhl 2008/11/30 2 Ralf KüstersDagstuhl 2008/11/30 3.
Bild 1.1 Copyright © Alfred Mertins | Signaltheorie, 2. Auflage Vieweg+Teubner PLUS Zusatzmaterialien Vieweg+Teubner Verlag | Wiesbaden.
Schulentwicklung Volksschule / HS / NMS …. basierend auf dem Zahnradmodell der Bewegten Schule Stand: Sept
Die Geschichte von Rudi
Peter Egger 1. ?? To doodle = Kritzelei 2003 von CH-Informatiker Michael Naef entwickelt Kostenloses Werkzeug zur Erstellung von Terminumfragen.
1 Fachtagung am Seniorenorientiertes Design und Marketing ThyssenKrupp Immobilien Design for all - Anpassungen im Wohnungsbestand 1.Demographie.
Vergleich PPT 2002 / 2003 zu PPT 2007 Zunächst erscheint PPT 2002 / 03 - durch klicken auf kann dann der Vergleich zur Version 2007 aufgerufen werden.
VL 20 VL Laser (Light Amplification by Stimulated Emission of Radiation) Maser = Laser im Mikrowellenbereich, d.h. Microwave Amplification by.
...ich seh´es kommen !.
Generalisierung/Spezialisierung Subtypisierung/Vererbung
Polynome und schnelle Fourier-Transformation
Präsentation läuft auch vollautomatisch ab … wie du möchtest
Auslegung eines Vorschubantriebes
ECHT UNGLAUBLICH. Lies alle Zahlen. langsam und der Reihe nach
HORIZONT 1 XINFO ® Das IT - Informationssystem HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 /
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Betriebsmittelverwaltung:
Wohlgeformtheit und Gültigkeit Grundlagen der Datenmodellierung Anke Jackschina.
Grundpositionen> Schulfachbezogene Entscheidungen (Skript)
Die Kinder kommen mit Fremdsprachen in Berührung.
SAP Seminar 2007 Materialstammsätze anlegen
Schulentwicklung Volksschule / HS / NMS …. basierend auf dem Zahnradmodell der Bewegten Schule Stand: Sept
Analyseprodukte numerischer Modelle
2014 Januar 2014 So Mo Di Mi Do Fr Sa So
International Time For many common situations (timetables, TV guides, store hours), Germans use 24-hour ("military") time. Add 12 to a pm time to get the.
FRÜHLING.
Vortrag von Rechtsanwältin Verena Nedden, Fachanwältin für Steuerrecht zur Veranstaltung Wege zum bedingungslosen Grundeinkommen der Piratenpartei Rhein-Hessen.
WÄHLEN MIT BIER Endergebnis Mo. 2. Okt Uhr
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Systeme II - Probeklausur - Arne Vater Sommersemester.
Schulentwicklung Volksschule / HS / NMS …. basierend auf dem Zahnradmodell der Bewegten Schule Stand: Sept
Der Erotik Kalender 2005.
Weshalb laufen Planeten manchmal rückwärts?
01-1-Anfang. 01a-1-Vortrag-Inhalt 14-4-Gründe-Masterplan.
Familie Beutner, Konrad-Voelckerstrasse, Edenkoben/Pfalz, Tel:
3 2 1 Rot:0; Grün: 128; Blau: 128 Schriftgröße: 32
Tutorial Schritt 1: Über den Link im VP gelangen Sie auf die Seite
Mit Jesus leben: Der Umgang mit Bedrängnis
SAP Seminar 2007 Organisationsobjekte anlegen
 Präsentation transkript:

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)

Modularisierung SW-System wird in (idealerweise) unabhängige Module aufgeteilt. Modularisierung  Dekompostition Modularisierung erfolgt, bevor einzelne Module bearbeitet werden.

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.

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)

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.

KWIC Index KWIC = KeyWord In Context „Normaler“ Index (wie in den meisten Büchern) ohne Kontext KWIC Index wie normaler Index alphabetisch geordnet

KWIC Index Bsp. normaler Index Back Empire Jedi Return Star Strikes The Wars of the zusätzlich zu den Wörtern üblicherweise noch Verweise auf Seiten (Interessiert uns hier nicht.) .

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.)

KWIC Index Bsp. KWIC Index „schön“ ausgegeben: The Empire Strikes Back The Return of the Jedi Star Wars The Return of the Jedi The Return of the Jedi

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

KWIC Index Für elektronische Dokumente eher überflüssig  Volltextsuche

KWIC Index Wie entsteht der KWIC Index? Eingabe: unsortierte Zeilen Bsp.: The Empire Strikes Back Star Wars The Return of the Jedi

KWIC Index Dann: Erzeugung der „Circular Shifts“ Bsp.: The Empire Strikes Back Empire Strikes Back The Strikes Back The Empire usw.

KWIC Index Dabei ist die ursprüngliche Zeile selbst ein Circular Shift. Dann: Alphabetische Sortierung der Circular Shifts aller Zeilen. Dann: Ausgabe

Beispielarchitekturen MainSubroutine-Architektur (Modul  Unterprogramm)  um 1972 übliche Modularisierung Objektorientierte Architektur (Modul  Klasse)  um 1972 unübliche Modularisierung Details sind im Folgenden nicht so wichtig.

1. MainSubroutine-Architektur Abb.: TU Graz (siehe Literatur/ Links auf Folie 30)

1. MainSubroutine-Architektur Abb.: TU Graz (siehe Literatur/ Links auf Folie 30)

1. MainSubroutine-Architektur Abb.: TU Graz (siehe Literatur/ Links auf Folie 30)

2. Objektorientierte Architektur Abb.: TU Graz (siehe Literatur/ Links auf Folie 30)

Vergleich der Beispielarchitekturen Beide Architekturen funktionieren natürlich. Aber: Wie robust sind sie gegenüber Änderungen?

Vergleich der Beispielarchitekturen Änderung: Eingabe-Format MainSubroutine-Architektur: Änderung eines Moduls Änderung des Eingabe-Formats Abb.: TU Graz (siehe Literatur/ Links auf Folie 30)

Vergleich der Beispielarchitekturen Änderung: Eingabe-Format OO Architektur: ebenfalls Änderung eines Moduls Änderung des Eingabe-Formats Abb.: TU Graz (siehe Literatur/ Links auf Folie 30)

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)

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)

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)

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)

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.

Schlussfolgerungen MainSubroutine-Architektur nur für sehr kleine Systeme! Vorgehen „Flussdiagramm  Modularisierung“ also meist ungeeignet OO Architektur meist besser Vorgehen: „Entwurfsentscheidungen zusammentragen  diese versteckende Module festlegen“

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/

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!