View
103
Download
0
Category
Preview:
Citation preview
H. Dreßler Software-Architektur 1
betr. diese Präsentation zur
Damit Sie diese Darstellung tatsächlich Schritt für Schritt – na hoffentlich: – »genießen« können, wird von Ihnen erwartet, daß Sie für den Bildwechsel oder manchmal zwischendurch
die Maus drücken:
So werden die einzelnen Seiten häufig nur portionsweise aufgeblendet.
Einige Texte erscheinen nur zeilenweise, um Ihnen die Konzentration zu erleichtern.
Zum Schluß jeder Seite erscheint automatisch der
Rückkehr-Schalter …
… wenn Sie jetzt mausklicken, auch hier.
Danach können Sie entweder mit ihm (drücken!) zur vorigen Seite zurück (hier gibt´s natürlich keine) oder durch Klick außerhalb der Schaltfläche zur nächsten.
***
(Unten links erscheint außerdem die übliche PowerPoint-Schaltfläche, wenn die Maus bewegt wird.)
Manchmal aberfunktioniert
das Einblendennicht so recht.
[ Zurück … undWiederholen! ]
Das kann nur anPowerPoint
liegen …
Man müßte sich bei
Microsoftbeschweren.
Sie könnensich die
Präsentationauch – mit
zusätzlichenErläuterungen –
als NOTIZBLATT
ausdruckenlassen.
• Vorschlag: einmal durchlaufen lassen und beim zweiten Mal gründlich lesen und bedenken •
HD: Software-ArchitekturStand: Juli 2001
HHelmutelmut D Dresslerressler
H. Dreßler Software-Architektur 3
HHelmutelmut D Dresslerressler<<<<<<<<
* 1941, Dresden
Dipl. Ing (Regelungs-technik • TH Darmstadt 1969)
Viele Jahre bei Software Partner GmbH, Darmstadt(Leiter Kommerzieller Großprojekte)
Seit 1990 Freiberufler: »Systemanalytische Beratung«, seit 1996 in Kooperation mit Uwe Wagner
»Problemlösen mit Entscheidungstabellen«, München, 1975
»Play Net« – das Spiel im Petri-Netz, Darmstadt, 1985
»Kleines Testhandbuch«, für E. Merck, Darmstadt, 1990
»Datenstrukturentwurf«, München, 1995
Einige Stichworte über Projekte oder Schwerpunkte der Vergangenheit:
Didaktische Programmierung (Lehrprogramme) • Entscheidungstabellen-Technik • Schulungsleiter für viele Themen aus dem Bereich EDV • »Normierte Programmierung« • Software-Methodik • Programm-Montage in Assembler (Makrotechnik) • MTRX: Assembler-Verfahren zur Bearbeitung von beliebig großen dünnbesetzten Matrizen …& …Implementierung mit automatisiertem Test • Matrix-Algorithmus zur Kostenverteilung • Modularisierungsverfahren (View Manager) • System-Analyse & -Entwurf (Implementierung mehrerer Großsysteme) • Projektmodell • Projektleitung von großen Projekten • Petri-Netz-Anwendungen • Datenbankentwurf • Qualitätssicherung • Produktivitäts-Kontrolle • Software-Metriken • Verantwortliche Beratung • Analyse & Redesign bestehender Systeme • Konzepte • …
Heutige Beratungsangebote u.a.:+ Produkt »UVMT«: Umfassendes (Re-) Design der Software-Architektur+ Managementberatung: Software-Produktentwicklung+ Analyse & Beratung: Design und Redesign von Großanwendungen+ Schrittweise Einführung nach dem Prinzip »ABC« : Konstruktive und analytische Qualitätssicherung (…
also: »mit den geringsten Maßnahmen den größten Nutzen erzielen«)+ Evolutionäre Software-Entwicklung (langfristige Strategie)+ Beratung: Software-Produktionsmanagement & Einführung eines Projektmodells+ Datenbankentwurf … mit neuem Data Dictionary System »D&W-DaDic«+ P-&-Q-Checkup: dreiteiliges Firmenseminar zur Verbesserung von Produktivität und Qualität (Analyse,
Zielbestimmung, Maßnahmen)
quasi-»OO« (1981)
H. Dreßler Software-Architektur 4
mausklick!
ein SYSTEM: so oder so …
Aufwand
Komplexität
»Nachhaltige«Architektur der
Software
»Konventionelle«Architektur der
Software
Man hat es bei »Y2K« gesehen: Manche Software-Systeme
werden unbeherrschbar.
In der Theorie werden modulare
Schichtensysteme verlangt.
mit 5 Schichten!
H. Dreßler Software-Architektur 5
mausklick!
Problem & Konzept, allgemeinAufwand
Komplexität
NachhaltigesVorgehen
KonventionellesVorgehen
Anlaß fürsRedesign
A) Ziele: Welchen Nutzen wollen wir erreichen?
B) Wege & Maßnahmen: Was müssen wir dafür tun?
C) Welche Mittel & Methoden stehen uns zur Verfügung?
D) Nach welchen Prinzipien wird die Qualität der drei Aspekte gemessen?
Das
Dreieck
A
B CD
ZIELE(Defizite)
WEGE(Maßnahmen)
MITTEL(Methoden)
PrinzipienQualitäten
Fürs Design sind vier Aspekte zu bedenken, wie sie in unserem Konzept-Dreieck bezeichnet werden.
In einem guten Konzept werden auf alle vier Fragen ordentliche Antworten formuliert:
H. Dreßler Software-Architektur 6
betr. D) Prinzipien & Qualitäten
• Zweckmäßig zu unterscheiden sind:
QA = Qualität aus Sicht der Anwender Korrektheit, Funktionsumfang, Robustheit, Zuverlässigkeit, A-Dokumentation,
Benutzerfreundlichkeit, Zeitverhalten, Leistung/Durchsatz, Stabilität der Entwicklung, »Vorzeigbarkeit«, Anpassungsfähigkeit
QE = Qualität aus Sicht der Entwickler E-Dokumentation, Verständlichkeit, Einfachheit, Einheitlichkeit (nach Standards),
Modularität (ADT, oo), Redundanzfreiheit der »Erfindungen«, Wiederverwendbarkeit. (Wieder-) Testbarkeit, Änderbarkeit, Erweiterungsfähigkeit, Portabilität
D
H. Dreßler Software-Architektur 7
konventionell nachhaltig – – so, wie es alle immer gemacht haben so, wie es alle immer gemacht haben (ja auch: mit zweistelligen Jahreszahlen)(ja auch: mit zweistelligen Jahreszahlen)
– – jeder ist Seines Textes Verfasserjeder ist Seines Textes Verfasser
– – Dokumentation: NebensacheDokumentation: Nebensache
– – immer alles wieder neu erfunden: immer alles wieder neu erfunden: (das (das sei »kreativ«, ist aber tatsächlich bloß sei »kreativ«, ist aber tatsächlich bloß redundant) redundant)
– – Modularisierung: frommer WunschModularisierung: frommer Wunsch
– – Steuerlogik, Algorithmen und Steuerlogik, Algorithmen und Datenzugriffe als vermischte Schriften: Datenzugriffe als vermischte Schriften: unauflösbarer Wirrwarrunauflösbarer Wirrwarr
– – nur der Autor kann es ändernnur der Autor kann es ändern
– – Fernwirkung nicht zu kontrollierenFernwirkung nicht zu kontrollieren
– – Wiedertestbarkeit: FehlanzeigeWiedertestbarkeit: Fehlanzeige
– – gewaltige Kostensteigerung erst später gewaltige Kostensteigerung erst später
+ zugegeben:»nachhaltig« (sustainable) ist ein Modewort, aber es weist darauf hin, daß die Effekte von Investitionen langfristig bedacht werden müssen.
+ jedes »Stück Logik« wird im gesamten System nur einmal implementiert; jeder kann es benutzen.
+ Einarbeitungs-Investitionen amortisieren sich in Kürze.
+ im Vergleich: Die Menge des Sourcecodes gegenüber k.k. ist drastisch vermindert.
+ die Teile des Systems sind dokumentiert, durchschaubar, einheitlich, testbar und kontrolliert zu ändern.
+ Kostenersparnis: kurz- mittel- langfristig
+ das Know How bleibt verfügbar.
H. Dreßler Software-Architektur 8
View Manager & »Sicht-Knechte«
VollkommeneAbschottung
der Datenbankdurch Broker
innen=DB-nah außen=Anwender-nahevtl. mehrere
Schichten
H. Dreßler Software-Architektur 9
… nach Software-Architektur-Prinzipien
Stichwörter für Kenner & Experten, auf daß Sie uns nichts als zustimmen:
+ Evolutionäre Software - sie ist beliebig(!) weiterzuentwickeln, weil sie keine unverrückbaren Barrieren schafft
+ (also) 5-Schichten und strenge Modularisierung - damit Programm-Montage stattfinden kann
+ (also) redundanzfreie, aber wiederverwendbare Bausteine - so daß Sourcetexte und Irrtümer minimiert werden
+ (also) Information Hiding - damit niemand die obligatorischen Schnittstellen umgehen/mißbrauchen kann
+ Datenstruktur-Entwurf nach allen Regeln der »Kunst«
+ Strenge Trennung von Präsentation, Anwenderlogik und DB-Zugriffslogik
+ Qualitätsmaßstäbe aus Sicht der Anwender - Korrektheit, Funktionsumfang, Robustheit, Zuverlässigkeit, Anwender-Dokumentation, Benutzerfreundlichkeit, Zeitverhalten, Leistung/Durchsatz, Stabilität der Entwicklung, »Vorzeigbarkeit«, Anpassungsfähigkeit
+ zusätzliche Qualitätsmaßstäbe aus Sicht der Entwickler - Entwickler-Dokumentation, Verständlichkeit, Einfachheit, Einheitlichkeit (nach Standards), Modularität (ADT, oo), (Wieder-) Testbarkeit, Änderbarkeit, Erweiterungsfähigkeit, Portabilität
+ Entwurf & Implementierung der Programmstrukturen aus einem Guß (keine Umstrukturierung!)
+ Testbarkeit optimal: Schrittweise integrierbare Bausteine: topdown & bottomup
natürlich Sprachen- und Betriebssystem-
unabhängig
H. Dreßler Software-Architektur 10
Einschub: oo-Entwurf, UML, UseCases
• Sind alle SW-A-Prinzipien gewährleistet?• Gibt es eine vorher definierte Datenstruktur?• »Persistenz« ist beinahe ein Sonderfall.• Frühere Redeweise: »…Operationen auf die Datenstruktur«• Wie wird ein UML-Entwurf in eine (bitte sehr: nichttriviale)
Programm- und Systemstruktur umgesetzt?• »oo-Dynamik« (Methoden) auf Kosten der DB-Statik (Views)• Vernachlässigung von Schichten oder gar Massendaten-
Verarbeitung• »Gruppenwechsel-Batch« ist sowieso meist unbekannt…
… oder völlig unterschätzt!
H. Dreßler Software-Architektur 11
5 Schichten und strenge Modularisierung…
(2) E/A - »logische Masken« / Client
Anwender-Dialoge
(3) Funktionen: E/A-Steuerung, (Batch?),Dienste, Ablauflogik, Algorithmen Verarbeitungen
(4) Broker • View Manager • »Sicht-Knechte«
Objekt-Funktionen
(1) Individuelle graphische Oberfläche (GUI)
evtl. auch im evtl. auch im I…NetI…Net
(5) DB-Zugriffe / Server / Batch }}
1. Programm ist aktiv
2. GUI-neutrale Aufbereitung der DIALOG-Schnittstelle
3. Präsentation und Eingabe
4. Logische Datenzugriffe
5. Physische Datenzugriffe
…in der Theorie & etwas idealisiert
… die wäre auch wichtig
}}… eigentlich
die wichtigste Trennlinie
DataDataContainerContainer
H. Dreßler Software-Architektur 12
in der PRAXIS aber
Algorithmen
DialogeAblauf-
Steuerung Daten-Aufbereitung
DB-Zugriffe
Batch-Verarbeitung
AlgorithmenInnerhalb der …
findet die … … statt!
egal, ob …
… oo-orientierterEntwurf …
… oder frei (Spaghetti-)
Schnauze
Je größer das System
desto schlimmer.
H. Dreßler Software-Architektur 13
Also: „neues“ SW-Architekturkonzept (1)
für:AM = Algorithmen-Modul
VM = View Manager (Broker)
DM = Dienstmodul (Batch.GW)
VB = Standard-Verbindungs-Bereichfür alle Module (vereinfacht:)
AB = Individueller Anwender-Bereichje Modul (beliebiger Struktur)
Sender-Einträge• Sender• Empfänger• Selektor (»Methode« – unterteilt)• Betrachtungs-Datum• Sprachcode• Autorisierung• zum Dienstmodul A (Anfang)• zum Dienstmodul H (Haupt *)• zum Dienstmodul E (Ende)• TraceLevel• Sendezeitpunkt
Empfänger-Einträge• Empfänger-Zeitpunkt• Returncode (nach Standardtabelle)• Fehler-Information• zum Fehlermodul (hochzureichen)
AM: beliebiger Modul, auch Objekt, der irgendwelche Leistungen vollbringt, als Sammlung beliebiger Methoden zu einem »Thema«, aber ohne Zugriff auf eine persistente Datenstruktur; er kann VMs benutzen.
VM = View Manager, Broker, Maklermodul: verwaltet einen definierten Teil der Datenstruktur, empfängt einzelne Views (von oben) für die Ausgabe und liefert sie einzeln (nach oben) an die aufrufende Instanz … & ruft für die Batch-Verarbeitung (mindestens) einen DM auf, dessen Name und Selektor von der rufenden Instanz zur Objektzeit bestimmt wird – bei Bedarf, also fast immer, mit GW-Analysator.
DM: mit maximal 98 Gruppenstufen (reicht garantiert) hat jeder Dienstmodul dieselbe Gruppenwechsel-Ablauflogik (GW), und der Programmierer hat einzig und allein – welches die Kunst ausmacht – Unterprogramme für Anfangs- und Enderoutinen auf den Hierarchiestufen und die Einzelverarbeitung zu schreiben.
MODUL
H. Dreßler Software-Architektur 14
Beispiel eSQLSELECT …FROM …WHERE …
( immer wieder dieselben oder nur ganz ähnliche Formulierungen überall )
Und nun hier
mitten drin
jeweils
viele Zeilen
individueller,
eingebetteter
Verarbeitung
der gerade
aktivierten
View-Menge (Set)
bis zum
END SELECT
Ja, Himmel, Zwirn &
Wolkenbruch, da kann doch
nicht jedermit seinen
SELECTs (FINDs)in der Datenbank
herum-fuhrwerken !!!
Das ist anti-
objekt-orientiert.
H. Dreßler Software-Architektur 15
View Manager !View Manager !View Manager !
Einschub zur Erläuterung:eine einfache Struktur
Teil derDatenbank
View
Manager
2) View Manager vermittelt
mögliche Dienstmodule
1) Anwenderprogramm will auf Datenbank zugreifen
blau:Datenfluß
akuterDienstmodul
3) Einer der möglichen Dienstmodule wird ausgewählt und verarbeitet eine Datenmenge (batch)
View Manager !Anwender-Programm
Anwender-Logik
Broker-Logik
H. Dreßler Software-Architektur 16
Neues SW-Architekturkonzept (2)
AM.17
AM.91
VM.03
DM.69
DM.68VM.08 DM.68
DM.67
DM.66
DM.65
DM.69
… ist aufgerufen
… ruft auf:
… ruft auf:
… greift aufView zu,z.B. WRITE
… ruft nun auf:
Die warten
auf Beschäftigung
… SELECTund dynamischeBindung (…“greift sich einen“)
Zwischen SELECTund END SELECTViele Zugriffe und Aufrufe …druckt Listen
… mausklick …
Die Die
DienstmoduleDienstmodule
stammenstammen
aus deraus der
Schicht-3,Schicht-3,
aberaber
werdenwerden
(zwangsläufig)(zwangsläufig)
in derin der
Schicht-5Schicht-5
(SERVER!)(SERVER!)
eingesetzt.eingesetzt.
H. Dreßler Software-Architektur 17
Neues SW-Architekturkonzept (3)anderes Beispiel
AM.92
VM.05 DM.67
… ruft nun auf:… SELECT
und dynamischeBindung
Zwischen SELECTund END SELECTViele Zugriffe und Aufrufe
…druckt „View-für-View“ Listen nach dem GRUPPENWECHSEL-Schema
… mausklick …
…und bucht o.ä.
VM.07
… ruft auf:
… greift aufeinzelne Views zu,z.B. WRITE
Diese Technik Diese Technik ist nicht ist nicht
selbstverständlich.selbstverständlich.
H. Dreßler Software-Architektur 18
.Dynamische Bindung …… der Dienstmodule, u.a. für GW-Batchverarbeitung im Server
MODUL
Diese Technik Diese Technik ist nicht ist nicht
selbstverständlich.selbstverständlich.
H. Dreßler Software-Architektur 19
Was ist das?eine neuartigeTechnik derProgramm-Montage …
fürkonventionelleProgrammier-Sprachen, …
…wie etwaCOBOL / C(++) /
JAVA/ Natural /…
…miteingebetter DB-Zugriffssprache
(eSQL / Natural /…)
…&neues
Modularisierungs-Konzept
… aberdennochstreng
objektorientiert
View Manager,Broker,
Makler-Module
ohneoo-Sprache (also:SMALLTAL K o.ä.)
Schichtenprinzip –ohne praktischeKompromisse •(Client-)/Server-
fähig
… allgemeingültigzu implementieren(aktives Interfaceverborgen)
leicht zuimplementieren,
einfach einsetzbar
Auch BATCH-Verarbeitung
durch Broker (!!!)
…wenn sie einfach einzusetzen ist…
H. Dreßler Software-Architektur 20
im Netz: Übergabe der VB + AB
VM.08DM.68
SERVER
Clientsmit Proxies
VM.08-Stub
VM.03
VM.03-Stub
Object Request Broker
CORBA läßt grüßen
H. Dreßler Software-Architektur 21
betr. C) Mittel und Methoden
• Die umfaßt:
Broschüre: UVMT – Theorie und Praxis (Manual) UVMT-Einführungsseminar Definition der Standardschnittstelle mit Erläuterung UVMT-Montage-Prozeduren = simpler Aufruf, starke Leistung Standard- und Muster-Module (Listen und Sourcetextdatei) in einer Host-
Sprache (Natural, Cobol, C, Java, …) Ablauffähiges Musterbau-System in der Host-Sprache Einführungsberatung (Entwurf und Betreuung beim Pilotprojekt) Review und Erfahrungs-Auswertung nach dem Pilotprojekt
Copyright © by H. Dressler C
unsere unsere 88LeistungenLeistungen
H. Dreßler Software-Architektur 22
Lassen Sie sich ein Angebot unterbreiten!
• Angaben zu Ihrer Firma:– Name und Adresse– Ansprechpartner– Branche
– Erfahrungen mit Standards, CASE, Methodologien, Ideologie, Werkzeugunterstützung usw.
–
• Angaben zum System:– Hardware
– Betriebssystem
– Programmiersprachen (Anwendungen)
– Programmiersprachen (DB-Zugriffe)
– Angaben zu
– • TP-Monitor
– • Client/Server
– • …
– Programmierumgebung
– Besonderheiten
– Wünsche
Ein Angebot umfaßt unsere 8 Leistungen:
◊◊ HandbuchHandbuch ◊◊ SeminarSeminar ◊◊ Standard-SchnittstellenStandard-Schnittstellen ◊◊ MontageprozedurenMontageprozeduren ◊◊ Mustermodule (frames)Mustermodule (frames)
◊◊ Musterbau-SystemMusterbau-System ◊◊ EinführungsberatungEinführungsberatung◊◊ ReviewReview ◊◊
… und/oder haben Sie Fragen ?
H. Dreßler Software-Architektur 23
wenden Sie sich an:
Software Engineering Competence
Ihr Beraterteam für die wesentlichen
Aufgaben moderner Software-Entwicklung
Helmut Dressler
Lauteschlägerstr. 19
64289 Darmstadt
Tel. 49.6151.715945
Fax 49.6151.788538
eMail: helmut.dressler@t-online.de
Dressler & Wagner
Uwe Wagner
Alsbacher Str. 45
64342 Seeheim-Jugenheim
Tel. 49.6257.903348
Fax 49. 6257.903347
eMail: uwe.wagner@t-online.de
Recommended