Was ist Software Engineering ganz allgemein betrachtet?
„Eine Disziplin in der Informatik, die ein ingenieurmäßiges Vorgehen bei der Entwicklung umfangreicher, leistungsstarker Softwaresysteme beschreibt“.
Was beinhaltet Software Engineering über die Programmierung von Software hinaus?
Fragen der Qualitätssicherung und des Projektmanagements von Software
Was sind die Teildisziplinen des Software Engineering?
Software Requirements (z. B. Anforderungsermittlung),
Software Design (z. B. Architektur und UI),
Software Construction (Implementierung und Integration),
Software Testing (z. B. Abnahme),
Software Maintenance (Wartung),
Software Configuration Management (Konfigurationsmanagement, inkl. SW Change Management),
Software Engineering Management (Projektplanung und -durchführung),
Software Engineering Process (z. B. Vorgehensmodelle linear vs. inkrementell),
Software Engineering Models and Methods (z. B. Modellgetriebene Entwicklung, Scrum & Co) und
Software Quality (z. B. Qualitätsmanagement).
Was beinhaltet die Designphase im Entwicklungsprozess von Software?
Komplexität der Software minimiert
Risiko von Fehltentwicklungen minimiert
Welcher Herausforderung stellt sich die Teildisziplin “Testing”
Entwicklungs- & Testumgebung müssen von einander getrennt sein.
mit gleicher Hard- & Software betrieben
(Entwicklungs- & Testumgebung)
Wie kann man Entwicklungs- & Testumgebung für eine Software sicher voneinander trennen?
seperate Server
(sichere physische Trennung)
separate virtuelle Maschinen auf einem physischen Server
(logische Trennung)
Was passiert, wenn sich Entwicklungs- und Testumgebung von einander unterscheiden?
keine verlässliche Aussage über die Funktionsweise der Software
Abnahme der Software unmöglich
Fehler sind vorprogrammiert
Was ist die Herausforderung bei der Entwicklung von Software für verteilte Systeme?
aus vielen autonomen Komponenten zusammensetzen, mit unterschiedliche Funktionalitäten
nach außen hin als zusammengehöriges System erscheinen
Erkläre ein verteiltes System am Beispiel Internet.
vielen geografisch verteilte Server
über ein Netzwerk kommunizieren
Dienste bereitstellen
dem Nutzer präsentieren
Wann spricht man von einem verteilten eingebetteten System?
wenn eine autonome Komponente zentrale Steuerungsfunktionen für umgebende Hardware abbildet
Bsp. KFZ
In wie fern unterscheidet sich die Entwicklung eingebetteter Systeme von der Entwicklung anderer Systeme?
hardwarebezogene Anforderungen müssen berücksichtigt werden
da sie für einen definierten Anwendungszweck entwickelt wird.
Welche besonderen Anforderungen müssen häufig von verteilten eingebetteten Systemen erfüllt werden?
Echtzeitverarbeitung
Zuverlässigkeit
Wo werden verteilte Systeme verwendet?
Flug- bzw. Reisebuchungssysteme
Onlinebanking
Handelsplattformen
Welche Eigenschaften sollten verteilte Systeme erfüllen?
Ausfalltoleranz
Fehlertoleranz
Transparenz
Skalierbarkeit
Offenheit
Wie werden verteilte Systeme hinsichtlich der Architektur unterschieden?
Systemarchitektur
Softwarearchitekturen
Was versteht man unter einer Client-Server-Architektur?
Cient und Server tauschen Anforderungen und Antworten aus
Jeder Rechner ist entweder Server oder Client
Was versteht man unter Cache-Server?
speichert Daten zwischen
vermeidet unnötige Anfragen über das Netzwerk
Was versteht man unter Proxy-Server?
Stellvertreter zwischen Client & Server
tiefgehende Filterung & Kontrolle des Datenstroms
zusätzliche Authentifizierung des Benutzers
Eingabe Passwort
Was versteht man unter einer Peer-to-Peer-Architektur
dezentrales System aus autonomen Rechnern ohne zentrale Server
keine zentrale Koordinierung
keine zentrale Datenbasis
jeder Rechner sowohl Client- als auch Server-Funktionalitäten
Rolle dynamisch verändern kann
-> je Kommunikationsvorgang
mit hohem Aufwand administrierbar
Was ist ein sogenannter Servent?
Ein Servent ist ein Rechner in einer Peer-to-Peer-Architektur.
der seine Rolle dynamisch wechseln
sowohl als Client und auch als Server fungieren kann.
Was ist eine Zwei-Schicht-Architektur?
(Softwarearchitekturen)
klassische Client-Server-Architektur
auf der Client-Seite einen sogenannten Fat Client
einfach zu realisieren
hohen Installations- und Administrationsaufwand auf der Client-Seite
Was ist eine Drei-Schichten-Architektur?
Was ist eine Middleware?
anwendungsneutrale Software
zusätzliche Schicht zwischen Betriebssystem und Anwendung
Kommunikation zwischen Prozessen unterstützt
-> Vorteile von verteilten Betriebssystemen & Netzwerkbetriebssystemen miteinander kombiniert werden
Welche Vorteile bietet der Einsatz von Sensoren & Aktoren dem IoT?
Datenqualität wird erhöht
Datenübertragung in Echtzeit
Personalkosten können gesenkt werden
Welche Rolle erfüllen Sensoren und Aktoren?
Sensoren und Aktoren verknüpfen reale und virtuelle Welt.
Was sind Sensoren?
„Sinnesorgane“ intelligenter Gegenstände
Sensoren erfassen Parameter eines Gegenstandes sowie dessen Umwelt
geben Informationen an eine zentrale Steuereinheit weiter
Datenübertragung erfolgt drahtlos
Was sind Aktoren?
reagieren auf verändernde Parameter
Beispiel:
-> Out of Stock-Meldung bei Entnahme des letzten Artikels
Welche Vorteile bietet der Einsatz von Sensoren & Aktoren im IoT?
Datenübertragung erfolgt in Echtzeit
Personalkosten werden gesenkt
Last changeda month ago