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