-
Modellierung
- UML
-
Prozesse/eGPM
-
Arbeitsplatztypen
- Erste Abstraktion über die konkreten
Arbeitsplätze
- Flexible erledigung vielfältiger Aufgaben
- Sachbearbeitungsplatz
- Funktionsarbeitsplatz
-
Kooperative Arbeit
- Verschiedene Personen arbeiten geplant
und koordiniert zusammen, um ein
gemeinsames Ergebnis zu erreichen.
- Herstellung eines Produkte
- Verständigung was von wem wie gemacht wird
- Begrenzte Ressourcen
- Arbeitshandlungen müssen abgestimmt werden
-
eGPM
- Exemplarische Geschäftsprozessmodellierung
- objektorientiert
- szenariobasiert
- ADONIS
- grafisch
-
Prozesse
- Wer sind die Akteure?
- Was tun sie typischerweise in welcher Reihenfolge?
- Mit wem arbieten sie zusammen?
- Wann geben sie die Gegenstände an wen weiter?
- Bei welchen Tätigkeiten werden Sie von der EDV unterstüzt? Wie?
-
Basiert auf:
- Aktueren
- Gegenständen
- Aktionen
-
Metamodell
- Wer bearbeite was womit wazu
- 3+1 Modellierung
- Kooperationsszenarios
- mehrere Akteure , ein Geschäftsprozess
- Arbeitsplatzszenarios
- Arbeitsablauf
- IT - Interaktionsszenarios
- Akteur und IT Tätigkeit
-
Kooperation durch
- wer gibt Gegenstand weiter -an
-
Koordination durch
- wer informaiert mit Gegenstnad/Medium - wen?
- Unterscheidung
- IMpliziete Kooperation
- Zugriff auf gemeinsames Arbeitsmaterial
- Expliziete Kooperation
- Koordination ist Beschrieben und modelliert
- z.b. durch Laufzettel
-
Modellierungsansätze
-
Verhaltensorientierte Modellierung
- Einsatzkontext wird in der Dynamik betrachtet
- Frage: Was sind die Aufgaben des Systems?
Welche Gegenstände werden bei den Aufgabe wie verwendet und bearbeitet?
- Herangehensweise: Szenarios erstellen und daraus Ober- und
Unterbegriffe identifizieren und das Begriffsmodell daraus ableiten.
- Begriffmodell ist unmittelbar aus den Szenarios abgeleitet
- Daten werden in Klassen gekapselt und die Konsistenz dort sichergestellt
-
Datenorientierte Moedellierung
- Einsatzkontext wird strukurell betrachtet
- Frage: welche Daten müssen im System verwaltet werden?
Welche Daten charakterisieren die Gegenstände des Systems?
-
Herangehensweise: Gegenstände modellieren, mit Vererbungshierachien
- nicht sehr Änderungsfreundlich
- fachlich schwer zu verstehen
- Begriffshierachien entsprechen nicht den des Anwendungsgebiets
-
Konsistenzmodelle
- mehrfache überprüfung
- einmalige in Unteren Schichten
und Exceptions für höhere
- Unabhängig von der Programmiersprache
und der Vorgehensweise
- Objektorientiert
-
Modell
- Projektion
- Reduktion
- pragmatisch
-
Qualität
- Software Qualität
- Kundenzufriedenheit
- Kano-Modell der Kundenzufriedenheit
-
Qualitätsbegriffe
- transzendente Ansatz
- produktbezogene Ansatz
- benutzerbezogene Ansatz
- prozessbezogene Ansatz
- Der KostenNutzenbezogene Ansatz
-
Unterscheidungen
- Externe und interne Qualität
-
zuverlässigkeit
- korrektheit
- Robustheit
-
wartbarkeit
-
Bedingt durch
- Verständlichkeit
- Zuverlässigkeit
-
Architekturstile
-
SOA
- Service
-
Quasar
- T/A
-
Besteht aus
- Prinzipien
- Architektur
- Komponenten
-
Trennen von Zuständigkeiten
-
Blutgruppen
- 0
- Unabhängig
- A
- fachlich
- T
- technisch
- R
- Transformation
- AT
- C
- Konfiguration
-
Komponente
- Klare Definition der angebotenen Dienste (Export-Schnittstellen) Semantik der Schnittstellen
- • Klare Definition der Abhängigkeiten von Diensten anderer Komponenten (Import-Schnittstellen).
- • Jede Komponente versteckt die Implementierung: Austauschbar
- • Die Komponente macht nur minimale Annahmen über die Umgebung, in der sie läuft: Wiederverwendung
- • Man kann neue Komponenten aus vorhandenen Komponenten zusammensetzen
- • Die Komponente ist neben der Schnittstelle die wesentliche Einheit des Entwurfs, der Implementierung und damit der Planung
-
Datenhoheit
- exklusives Recht Daten anlegen, ändern oder löschen
- Vorlagen
-
Definition
- eine prinzipielle Lösungsstruktur , die für ein Softwaresystem
durchgänig und unter weitgehendem Verzicht auf Ausnahmen
angewandt wird
-
Merkmale
- Verständlich
- Realisierbar
- Erweiterbar
- Skalierbar
-
WAM
-
Kundenoritierung
- Unternehmensstruktur
-
Unternehmenskultur
- Gelebte Kundenorientierung
- Geschäftsprozesse
-
Ziele
- Kundenzufiriedenheit verbessern
- langfristige Kundenbindung
- Unternehmenserfolg sicherstellen
-
Komponenten
-
Materialien
- fachliche Funktionalität
- Konzeptionelle Einheit
- Materialzustand
-
Automaten
- Formalisierbaren anteile einer Routine
- feste Abfolge
- festgeleges Ergebniss
- ohne Unterbrechungen
-
fachlicher Service
- Fachliches Wissen wird zusammengefasst
und allen Benutzungsschnittstellen unter
einer Schnittstelle angeboten
- Topic
- oder Dienstleister
- bietet einer Zielgruppe ein Dienstleistungsbündel an
- synchron oder asynchron
- hierachiche Beziehungen zwischen fachlichen Services
- Schnittstelle
- ist individuell, weil fachlich motiviert
- Methoden werden als atomar angesehen
sind zustandslos
-
Werkzeuge
- Funktionalität
- Werkzeugzustand
- verkörpern das fachliche Prinzip, nach dem Aufgaben erledigt werden.
- Kriterien
- Automatisierung
- Kapselung technischer Schnittstellen
- Steuerung von Arbeitsprozessen
- Abbildung von technischen Prozessen
-
Fachwerte
- Immutable
- Garantie der Wertesemantik
- benutzerdefinierte Werte, die Werte im Anwendungsbereich modellieren
- Definierter Wertebereich
- festgelegte Operationen
- Zyklisches Vorgehen mit Prototyping
-
Architekturelemente
- Aus WAM Metaphern werden Entwurseinheiten
-
Architekturen
-
Definition
- Die Struktur eines Software-Produkts.
Diese umfasst Komponenten, die externe wahrnembaren
Eigenschaften der Elemente und die Beziehung
zwischen den Elementen.
-
Sichten auf Software (Architekturen)
-
Analogie Haus
- Jeder Handwerker benötigt einen
eigenen Plan
-
Arten von Sichten
-
Verteilungs
- Rechner
- Prozesse
-
Statische
- Schichten
- Subsysteme
- Verantworlichkeiten
- Dynamisch
-
Fachliche
- Einsatzkontext
-
Laufzeitschicht
- Interaktion
- Performanz
-
Eigenschaften
- Abstraktion
- Komplexität wird handhabbar
- Verschiedene Sichten sind
nicht völlig unabhängig
-
Konsistenz
- Widerspruchsfrei
- Sichten und UML
- Sprachen
-
Warum ist Architektur wichtig?
- Verstehen und Kommunikation
- Wiederverwendung
-
Konstruktion
- Grober Bauplan für Entwickler
-
Evolution
- Verstehen unterstützen (Wartung)
- Analyse
-
Management
- Architektur ist Grundlage
für Projektorganisation
- beschreibt nur Außensicht der Komponenten
- =Komponenten
+ihre externen Eigenschaften
+ihre Beziehungen
-
Prinzipien
-
Architekturprinzipien
-
Hierachische Schichten
- Vertikale und horizontale
-
Dienstleister / Vertragsmodell (Design by contract)
-
Im Objektorientierten Modell fehlt
die Spezifikation der Semantik
- der Kunde einer Klasse
sieht nur die Schnittstelle
- erlaubt Operationen halbformal zu spezifizieren
- hilft Schnittstellen klar zu definieren
-
hilft Entwurf und Konstruktionsfehler zu reduzieren
- damit wird die Korrektheit verbessert
- hilft die Verständlichkeit zu erhöhen
-
Hoare Kalkül
- Verfahren um korrektes
Verhalten einer Prozedur zuzusichern
- Vorbedingungen
- Nachbedingungen
- Invarianten die immer gelten
-
Die Benutzbeziehung zwischen Klassen wird als Vertrag angesehen
- Eine Klasse bietet eine Dienstleistung an
-
Der Vertrag definiert
- welche Vorbedingung erfüllt sein muss
- Dienstleistung wird garantiert
- wird in der Lieferantenklasse festgelegt
- Geheimnissprinziep
-
Zyklenfreiheit
-
Aus Zyklen folgt...
- Komponenten können nicht ausgetauscht werden
- Komponenten können nicht einzeln getestet werden
- HIgh Level
-
Entwurfsprinzipien
-
Entwurf nach Zuständigkeit
- Jedes Objekt sollte für eine klar
definierte Ausgabe zuständig sein
- Separation of Concerns
-
Geheimnisprinzip
-
Verwand mit
- Lokalität
- Kapselung
- Nur relevante Merkmale
sollten für Klienten sichtbar sein
- Details sollten verborgen bleiben
-
Kohäsion / Zusammenhalt
- Anzahl und Verschiedenheit der Aufgaben ,
die eine Softwareeinheit zu erfüllen hat.
- Wenn eine Einheit für genau eine logische Aufgabe
zuständig ist, dann sprechen wir von hoher Kohäsion
- Eine Klasse sollte genau eine klar umrissene Einheit repräsentieren
- Gott Klassen sind Zeichnen niedriger Kohäsion
-
Lose Kopplung
- erleichtert die Wartung
-
Unterscheiung
- impliziete
- schlimmer weil
nicht nachweisbar.
Entwickler implementiert Interna
eines Dienstleisters in Klientenklasse
- expliziete
- formal Nachweisbar
- bezeichnet den Grad der Abhängigkeit
zwischen den Einheiten
- Trennung Impl./Schnittstelle
-
Modellierung anwendungsfachlicher Klassen
- Abstraktion der Domäne
- Nah am Anwendungsbereich
-
Modellierung technischer Klassen
-
Modellierung von
- Oberflächen
- Persistenz in Datenbanken
- Verteilung
-
Kapselung
- Entscheidungen die sich mit hoher Wahrscheinlichkeit
ändern können, sollten gekapselt werden um leicher austauschbar zu sein
-
Law of Demeter
-
Methode m eines Objektes o sollte nur Methoden von... aufrufen
- von o selbst
- von Parametern von m
- von Objekten, die m erzeigt
- von Exemplarvariablen von o
- Getter imd Setter als Verstoss
- SRP (Prinzip der einen Verantwortlichkeit)
-
OCP(Offen-Geschlossen)
- Offen für Erweiterungen
- Geschlossen für Modifikationen
- Erweiterung sollen ohne Änderung
des bestehenden Quellcodes möglich sein
-
Liskov's Prinzip der Ersetzung
- Klassen sollen in jedem Fall durch alle Unterklassen ersetzbar sein
-
Unterklassen haben keine...
- stärkeren Vorbedingungen
- schwächeren Nachbedingungen
-
Dependency Inversion Principle
- Program to an Interface not an implementation
-
Inversion of Control
- Don't call us, we'll call you
- Kontrollfluss geht vom Framework aus
-
Dependency Injection
- Abhängigkeiten werden von außen gesteuert
-
Typen
- Interface injection
- setter injection
- constructor injection
- Testgetriebene Entwicklung wird gefördert
- Abhänigkeiten reduziert
- Low Level
- Entwurfsmuster
-
Vorgehensmodelle
-
Wasserfallmodell
- Grundproblem der Kundenzufriedenheit
- Wie soll die Lücke zwischen Anforderungen
und dem lauffähigen System überwunden werden?
-
Architekturanalysen
- Architureller Zerfall
- Kosten durch Architektur-Erosion
-
Maßnahmen gegen Degeneration
- Refactoring
- Portierung auf neue Technologien
- Weiterbildung der Entwickler
- Regelmäßige Analysen
-
Werkzeuge
- Sotograph
- SonarJ
- Zyklenanalye
- Analyse auf Unterschiedlichen Abstraktionsniveau
-
Metriken
- Bildet Softwareeinheiten in einen Zahlenwert ab
-
Architekturvermessung
- Konkrete Refaktorisierungsmassnahmen
- Schrittweise Näherung an die Zielarchitektur
-
Integration
- Funktionalität, die über mehrere
Applikationen verteilt ist zusammenführen.
-
Ansätze
-
File Transfer
-
Vorteile
- Einfach zu realisieren
- Auf allen Plattformen und in allen Sprachen verfügbar
- Asynchron,
- Lose Kopplung
- Kaum Eingriff in die Applikation, um den Export zu realisieren
- Internas der Applikation bleiben verborgen
-
Nachteile
- Inkonsistenz zwischen Applikationen wegen großer
Zeitintervalle zwischen den Updates
- Semantik der Daten wird in jeder Applikation festgelegt
- Absprachen zwischen den Entwicklern
-
Shared Database
-
Vorteile
- Zeitgleiche Updates
- Transaktionsmanagement
- Hohe Verbreitung von sql
- Datenbestand ist konsistent und synchron
- weniger semantische Dissonanz
- Zwang zu guter Datenmodellierung über Applikationsgrenzen hinaus
-
Nachteile
- Deisgn eines universellen DatenbankSchemas ist schwierig
- Bei verteilten Applikationen wird die Datenbank zum PerformanzProblem
- Daten werden ungekapselt ausgetauscht
- Hohe Kopplung
-
Remote Procedure Invocation
-
Vorteile
- Funktionalität wird wiederverwendet
- Daten sind lokal gekapselt
- Potentiell weniger Codeverdopplung
-
Nachteile
- Enge Kopplung
- Performanz und Ausfallsicherheit muss beachtet werden
- Sich gegenseitig aufrufende Applikationen
knnen Verwirrung stiften
-
Messaging
- synchron vs asynchron
-
Enterprise Integration
- Anforderungs Landschaften
- Patterns
-
Problem: Alt und Fremdsysteme haben softwaretechnisch
nicht zueinander passende Schnittstellen
- oder Unterschiedliche Abstraktionsgrade in Alt- und Fremdsystemen
- Lösung: Enterprise Integration Patterns als gemeinsame Konvention
-
IT - Landschaften
- Die Anwendungslandschaft eines Unternehmens ist die
Gesamtheit seiner betrieblichen INformationssysteme.
-
Unternehmensarchitektur
- Gesamtes UNternehmen mit Architektur beschreiben
-
Software Kartographie
- Konzeote aus Kartographie und Praxis großer Unternehmen
-
Software Architekt
-
Gestalter
- Entwurf
- Berater
-
Konstrukteur
- Planung und Organisation
-
Manager
- Bauüberwachung
- Ausbildung
-
Aufgaben
- Vorstellungen des Bauherren mit Bauvorschriften
in Einklang bringen
- füllen der Lück zwischen fachlichen Anforderungen und technischer Realisierung
- Hohe Abstraktion
-
Architekturzentrierte Softwareentwicklung
-
Evolution (Änderungen)
- Anforderungen des Anwenders
- Voraussetzung der Systemtechnik
-
Konsequenz
- System und Architektur werden während des gesamten
Entwicklungsprozesses weiterentwickelt
-
Mechanik von Refactorings
- knappe präzise schrittweise Beschreibung,
wie das Refactoring ausgeführt werden soll
- nach jedem Schritt
soll ein konsistenter Zustand herrschen
- möglichste kleine Schritte
- danach: automatisierte Tests
-
Anforderungen
- Kenntnisse über Architekturstile,
entwurfsmuster und Entwurskriterien
- Wissen über Entwicklungstechniken wie Testen
Refoctoring und dem Umgang mit ungetestetem Code
- muss vom Anfang des Wntwicklungsprozesses an durch Strategien unterstützt werden