Softwarearchitektur

Werbung
Software/Systemarchitektur
Agenda:
•
Definition von Softwarearchitektur
•
Voraussetzungen
•
Was bedeutet Objektorientierung?
•
Wie speichert man Daten persistent?
•
Client-Server-Architektur
•
Schichtenarchitektur
•
Model-View-Controller-Entwurfsmuster
•
Zusammenfassung
Erste Definition von Softwarearchitektur
•
Es gibt keine perfekte Definition.
•
„Softwarearchitektur [beschreibt die](..) „Strukturen eines
Softwaresystems: Softwareteile, die Beziehungen zwischen diesen und die
Eigenschaften der Softwareteile und ihrer Beziehungen.“ (Paul Clements )
•
Eine Software-Architektur beschreibt die Dekomposition eines Systems in
Einheiten, Komponenten und Teilsysteme, sowie deren Verbindungen,
Interaktionen und Beziehungen unter Beachtung von Qualitätsmerkmalen,
Entwurfsrichtlinien und Beschränkungen.(Ingolf Krüger)
Voraussetzungen:
Was bedeutet Objektorientierung?
•
Ebenfalls keine perfekte Definition.
•
„Unter Objektorientierung (kurz OO) versteht man in der Entwicklung von
Software eine Sichtweise auf komplexe Systeme, bei der ein System durch das
Zusammenspiel kooperierender Objekte beschrieben wird.“
•
Ziel ist es große Mengen an Informationen möglichst gut Strukturiert in
Objekten zu Kapseln, sodass diese Struktur eine möglichst geringe
Komplexität innehat.
Beispiel: Java
Voraussetzungen:
Wie speichert man Daten persistent?
•
„Eine Datenbank, auch Datenbanksystem (DBS) genannt, ist ein System zur
elektronischen Datenverwaltung. Die wesentliche Aufgabe eines DBS ist es,
große Datenmengen effizient, widerspruchsfrei und dauerhaft zu speichern
und benötigte Teilmengen in unterschiedlichen, bedarfsgerechten
Darstellungsformen für Benutzer und Anwendungsprogramme
bereitzustellen.“
•
Daten werden im wesentlichen in Tabellen (sog. Relationen) gespeichert. Jede
Tabelle steht für ein Objekt der Realität das Eigenschaften hat die
gespeichert werden müssen.
•
Um Daten aus der Datenbank abzurufen wird die Abfragesprache SQL
verwendet
SQL - Structured Query Language
Client-Server-Architektur
•
Modell der Verteilung von Daten und Verarbeitung über Prozessoren
•
Ein oder mehrere Stand-Alone-Server, die anderen Subsystemen Dienste
anbieten
•
Ein oder mehrere Clients, die dienste der Server abrufen
•
Es kann gleichzeitig mehrere Instanzen von Clients geben
•
Es muss ein Netzwerk geben, über das die Subsysteme kommunizieren
Schichtenarchitektur
•
Geordnete Menge von Schichten
•
Jede Schicht bietet der darüber liegenden Schicht eine Menge von Diensten
an. Sie werden als Maschinensprache einer abstrakten Maschine aufgefasst.
•
Jede Schicht (außer der innersten/untersten) wird in der Maschinensprache
der darunter liegenden Schicht implementiert.
Model-View-Controller-Entwurfsmuster
•
In letzter Zeit zum absoluten Standard in der Softwareenticklung geworden.
•
Entwurfsmuster zur Trennung von Softwareinstanzen in die drei
Komponenten: Datenmodell (engl. model), Präsentation (engl. view) und
Programmsteuerung (engl. Controller
•
Ziel des Musters ist ein flexibler Programmentwurf, der eine spätere
Änderung oder Erweiterung erleichtert und eine Wiederverwendbarkeit der
einzelnen Komponenten ermöglicht.
Model-View-Controller-Entwurfsmuster
Zusammenfassung
•
Objektorientierung ist eine Art der Strukturierung von Programmiercode,
sodass dieser übersichtlicher ist und effizienter verwendet werden kann
•
In Relationalen Datenbanken werden Daten persistent gespeichert.
•
Eine Software-Architektur beschreibt die Struktur eines Systems, wie die
einzelnen Instanzen mit einander interagieren, also was für Schnittstellen es
gibt, und stellt Qualitätsmerkmale sicher.
•
Das Model-View-Controller Entwurfsmuster ist zum Standard geworden
Danke fürs zuhören 
Herunterladen