Software Engineering. 5. Architektur

Ähnliche Dokumente
Alternative Architekturkonzepte

Software Engineering Architektur, Architekturstile (update: 11.6.)

I SWT - Die Entwurfsphase - Einführung

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Objektmodellierung. Grundkurs C++

1.4! Einführung. Systemmodellierung. Methoden und Werkzeuge

Objektorientierte Programmierung (OOP)

Software-Engineering Grundlagen des Software-Engineering 7 Implementierungsphase (Programming Phase)

Software-Engineering

Programmiermethodik Vorlesung und Praktikum SS 2001

Verteilte Web-Anwendungen mit Ruby. Ruben Schempp Anwendungen

Softwaretechnik. Fomuso Ekellem

Vorlesung Softwaretechnik - Entwurfsphase: Einführung -

Software Engineering. 3. Analyse und Anforderungsmanagement

Kernprozess zur System- und Softwareentwicklung. Logische Systemarchitektur f 1. f 2 f 3. f 4 Funktion. Technische Systemarchitektur SG 1 SG 2 SG 3

Aufbau eines modernen Betriebssystems (Windows NT 5.0)

Software Engineering

Software Engineering

Praxisbuch Objektorientierung

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Objektmodellierung

Inhaltsverzeichnis. Effektive Softwarearchitekturen (6. Auflage)

Objektorientierte und Funktionale Programmierung SS 2014

Objektorientierte Programmierung

Ein Beispiel-Pflichtenheft

Fach: Softwareentwicklung für technische Systeme (SOFT) Berufsbezogener Lernbereich Schwerpunkt: Informations- und Automatisierungstechnik

Effektive Software-Architekturen Ein praktischer Leitfaden

2. Der Software-Entwicklungszyklus

Informationswirtschaft II Rational Unified Process (RUP)

Informationswirtschaft II

Lehrbuch der Objektmodellierung

allgemeine Übersicht / Struktur

Architekturdokumentation leicht gemacht

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Objektmodellierung

EIDI 1 Einführung in die Informatik 1. PGdP Praktikum Grundlagen der Programmierung. Harald Räcke 2/217

Web Engineering-Seminar Methoden zur Web Modellierung: Object-oriented Hypermedia Method (OO-H)

Objektorientierteund FunktionaleProgrammierung

Wirtschaftsingenieurwesen (Informationstechnik) Modulname. Programmierung I/ Software Engineering I Modulnummer

Software Engineering mit Übungen. Franz-Josef Elmer, Universität Basel, HS 2015

6. Design-Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

Kapitel 5: Das Design

DOORS Schema IBM Rational DOORS Start-Up Training - Teil 3

6. Architekturmuster und -metaphern

Application Engineering Grundlagen für die objektorientierte Softwareentwicklung mit zahlreichen Beispielen, Aufgaben und Lösungen

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Der Rational Unified Process

Erfolg mit Oracle BI?

Java.NET Web-Technologien Mobile

Klausur zur Vorlesung Softwaretechnik

Struktur und Architektur

Grundlagen der Programmentwurfstechnik Fundamentals of Software Engineering 1

Objektorientiertes Programmieren

Software Engineering. 11. Einführung und Wartung

Analyse der logischen Systemarchitektur und Spezifikation der technischen Systemarchitektur. Kernprozess zur System- und Software- Entwicklung

Programmieren I. Überblick. Institut für Angewandte Informatik. KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft

8 Grundsätze der Darstellung von Anforderungen

Inhaltsverzeichnis. Teil I Grundlagen 1

Weblog. Projektdokumentation. Java NDK Fallstudie. Identifikation: ID Status: in Arbeit Version: 00.11

Software- /Systemarchitektur

Design Patterns II. Der Design Muster Katalog. Prof. Dr. Nikolaus Wulff

Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht

Die Softwareentwicklungsphasen!

DFG Schwerpunktprogramm 1103: Berichtskolloquium am 29. und 30. April 2004 an der TU Braunschweig

Software Engineering

2 Softwarearchitektur in der Organisationsstruktur 25

Inhaltsverzeichnis ... Danksagung 11. Einführung 13. Wie Sie Ihr erstes objektorientiertes Programm schreiben 23

Pflichtenheft Inhaltsverzeichnis. 1 Zielbestimmung Musskriterien Wunschkriterien Abgrenzungskriterien...

Programmieren I. Überblick. Institut für Angewandte Informatik. KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft

Grundlagen Software Engineering

Notationen zur Prozessmodellierung

BC400. ABAP Workbench Grundlagen GLIEDERUNG DES KURSES. Version der Schulung: 16 Dauer der Schulung: 5 Tage

[Hier klicken und Text eingeben] [Hier klicken und Text eingeben] Auftragsnummer: [Hier klicken und Text eingeben] Auftragnehmer:

Systemanalyse I Software-Entwicklung. Die Phase Design.? Prof. Dr. Susann Kowalski

Universität Karlsruhe (TH)

Software Entwicklung 2. Bindung und Kopplung

OOSE 13 Objektorientierter Entwurf (OOD) (Hörsaalübung)

SAPX01. SAP User Experience Grundlagen und Best Practices GLIEDERUNG DES KURSES. Version der Schulung: 15 Dauer der Schulung: 3 Tage

Enterprise JavaBeans Überblick

Übung 4. Werkzeuge zur ER-Modellierung. Prof. Dr. Andreas Schmietendorf 1. Übung 4

Komponentenbasierte Client-Architektur. Bernd Olleck, IT Beratung Olleck Dr. Martin Haft, sd&m AG München,

Einführung in die objektorientierte Programmierung

Systemtheorie 1. Formale Systeme 1 # WS 2006/2007 Johannes Kepler Universität Linz, Österreich

Kapitel 2 - Die Definitionsphase

BC402. Advanced ABAP GLIEDERUNG DES KURSES. Version der Schulung: 16 Dauer der Schulung: 5 Tage

Abschnitt 16: Objektorientiertes Design

Inhaltsverzeichnis 1. Objektorientierung: Ein Einstieg 2. Objekte, Klassen, Kapselung

Entwicklung von Automatik-Funktionen in einer Fahrsimulation. Realisierung der Automatiken: Entwurf, Implementation, Test

Praktikum Datenbanken und verteilte Systeme SS Einführung August 2008

Objektorientierte Modellierung (1)

Inhalt. 1 Einführungsveranstaltung. 2 Pflichtenheft ANFORDERUNGSSPEZIFIKATION - GROBPLANUNG ANFORDERUNGSSPEZIFIKATION - SOLLKONZEPT

Objektorientierte Systementwicklung

Bsp CRM: Der Nutzer muss am System alle Kunden erkennen können, die besonderes wahrscheinlich ein Produkt kaufen werden.

Software Engineering II (IB) Serviceorientierte Architektur

Einführung in die Programmierung

Softwaretechnik (Allgemeine Informatik) Überblick

OOSE 01 JAVA MIT BLUEJ UND UML-BY-EXAMPLE

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich

Datenbanken Grundlagen und Design

2 Einführung in das Konfigurationsmanagement 11

Software-Engineering

Inhaltsverzeichnis.

Inhaltsverzeichnis. Einleitung Zielsetzung und Inhalt Didaktisches Konzept Voraussetzungen Literaturquellen...

Transkript:

Software Engineering 5. Architektur

Gliederung Vorlesung Einführung V-Modell XT Analyse und Anforderungsmanagement Benutzungsoberflächen Architektur Entwurf Entwurfsmuster Persistenz Implementierung Konfigurationsmanagement Testen Abnahme, Einführung, Wartung und Pflege

Ziele der Entwurfs-Phase Entwurf (engl. Design) oder Programmieren im Großen Entwicklung einer software-technischen Lösung im Sinne einer Software-Architektur Umsetzung der Anforderungen aus der Analyse-Phase Jetzt steht nicht mehr das Problem, sondern die Lösung im Vordergrund

Aufgaben der Entwurfsphase Ermitteln und Festlegen der Umgebungs- und Randbedingungen Treffen grundlegender Entwurfsentscheidungen Entwerfen einer Software-Architektur Zerlegung des definierten Systems in Systemkomponenten Strukturierung des Systems durch geeignete Anordnung der Systemkomponenten Beschreibung der Beziehungen zwischen Systemkomponenten Spezifikation des Funktions- und Leistungsumfangs sowie des Verhaltens der Systemkomponenten in informaler, semiformaler oder formaler Weise Festlegung der Schnittstellen, über die die Systemkomponenten miteinander kommunizieren

Wichtige Design-Entscheidungen Design-Entscheidungen Programmierumgebung Architektur Dienste Dritt-Systeme Programmiersprache Komponenten GUI-System Ziel-Plattform Klassenbibliotheken Schnittstellen Datenhaltung Middleware Entwicklungsumgebung Verteilung Benutzer- und Rechteverwaltung Transaktions-Monitoring Einzubindende Fremdsoftware Kommunikation Online-Hilfe

Ergebnis: Produkt-Entwurf Software-Architektur Strukturierte oder hierarchische Anordnung der Systemkomponenten und ihrer Beziehungen untereinander, incl. Netzwerkverteilung Anbindung an Benutzungsoberfläche Anbindung an Datenbank Spezifikation der einzelnen System-Komponente Schnittstellen Funktions- und Leistungsumfang

System-Komponenten Abgegrenzter Teil eines Software-Systems Baustein für die physikalische Struktur einer Anwendung Beispiele: Funktionen / Prozeduren Klassen Abstrakte Datenobjekte, abstrakte Datentypen Beziehungen zwischen System-Komponenten Beschreiben alle möglichen Verbindungen Beziehungen können dynamisch oder statisch sein

Grundlegende Architekturstile Repository Pipe & Filter Objektorientiert Implicit Invocation Layered Interpreter Process Control Client/Server http://www.cs.cmu.edu/afs/cs/project/vit/ftp/pdf/intro_softarch.pdf

Repository Kennzeichen: zentrale Daten

Pipes & Filters Kennzeichen: Lineare sequenzielle Verarbeitung ("Daten wandern durch das System")

Objektorientiert Kennzeichen: Information Hiding (Objektgraph)

Implicit Invocation Kennzeichen: Hollywood-Prinzip Don t call us, we call you

Layered Kennzeichen: Schichten bilden Abstraktionsebenen

Interpreter Kennzeichen: Simulation einer speziellen Hardware

Process Control Kennzeichen: Überwachung durch Rückkopplung

Client/Server Kennzeichen: Verteilung (Daten und Prozesse)

Einflussfaktoren des Entwurfs Einsatzbedingungen aus Produktanforderungen Umgebungsbedingungen Aus Zielplattform(en) Randbedingungen Aus nicht-funktionalen Produktanforderungen und Qualitätsanforderungen

Einsatzbedingungen Sequenzielles / nicht-sequenzielles Produkt Nicht-sequenziell: nebenläufig verteilt in Echtzeit parallel Single User / Multi User Bei der Benutzeroberfläche zu berücksichtigen Multi User erfordert Benutzer- und Zugriffsrechteverwaltung Mandantenfähigkeit ja / nein Bei kaufmännischen Anwendung Für unterschiedliche Firmen können logisch vollständig getrennte Datenbereiche eingerichtet werden.

Umgebungs- und Randbedingungen Zu berücksichtigende Zielplattform(en) ergeben sich aus Einsatzbedingungen Häufig vom Auftraggeber bereits vorgeschrieben Nutzung der im Unternehmen vorhandenen Plattformen Bei Standardprodukten: Typische Plattformen der Zielgruppe Genaue Ausgestaltung (z. B. zu verwendende Versionen) überprüfen Vorhandenen Entscheidungsspielraum ausloten Plattform-Architektur des Zielsystems Grundlage für die zu entwickelnde Software-Architektur (muss passen) Plattform-Architektur beschreibt Schnittstellen, Dienste, Produkte

Nichtfunktionale Produkt- u. Qualitätsanforderungen Nichtfunktionale Anforderungen haben Konsequenzen für die Architektur, z. B.: Internationaler Einsatz Erfordert internationale Zeichensätze, Währungen,... Einsatz auf mehreren Plattformen Nutzung von plattformübergreifenden Werkzeugen (z. B. Virtual Machines oder automatische Erzeugung von Code für verschiedene Zielsysteme) Wiederverwendung mit Hilfe von Klassenbibliotheken Architektur muss Nutzung der entsprechenden Klassen erlauben Qualitäts- und Sicherheitsanforderungen, z. B.: Auswahl eines sicheren Übertragungsprotokolls Sicherungs- und Recovery-Mechanismen Verteilung auf mehrere Server zur Gewährleistung hoher Performance und Verfügbarkeit Mirror-Systeme zur Aufrechterhaltung des Betriebs bei Total-Ausfall

Grundsatz-Entscheidungen Es genügt nicht, die Klassen des Fachkonzepts zu implementieren, um ein komplettes Software-System zu erstellen Es wird eine Reihe von Hilfssystemen benötigt, z. B. Datenhaltung Netzwerkverteilung Benutzerverwaltung Benutzungsoberfläche Hilfesystem Kommunikation mit diesen Hilfssystemen soll über klar definierte Schnittstellen erfolgen Aufgaben: Identifikation der benötigten Hilfesysteme Prüfen, ob vorhandene oder zukaufbare Hilfssysteme genutzt werden können Ggf. Entwurf der selbst zu realisierenden Hilfssysteme Berücksichtigung der Schnittstellen in der Software-Architektur

Drei-Schichten-Architektur Abhängigkeiten Wichtig: Keine zyklischen Abhängigkeiten! Quelle: Kleuker, Grundkurs Software Engineering mit UML. 2. Aufl., Vieweg+Teubner 2011

Beispiel: Projektverwaltungssystem Quelle: Kleuker, Grundkurs Software Engineering mit UML. 2. Aufl., Vieweg+Teubner 2011

Beispiel: Verfeinerung der Paketierung Quelle: Kleuker, Grundkurs Software Engineering mit UML. 2. Aufl., Vieweg+Teubner 2011

Beispiel: Alternative Struktur Weniger Abhängigkeiten Quelle: Kleuker, Grundkurs Software Engineering mit UML. 2. Aufl., Vieweg+Teubner 2011

4+1 Sichten eines Systems Quelle: Kleuker, Grundkurs Software Engineering mit UML. 2. Aufl., Vieweg+Teubner 2011

UML-Sprachelemente der Sichten Quelle: Kleuker, Grundkurs Software Engineering mit UML. 2. Aufl., Vieweg+Teubner 2011