Software-Technologie: Stand der Kunst und Herausforderungen

Ähnliche Dokumente
Software-Technologie: Stand der Kunst und Herausforderungen

Kontext. Wie kann Software ingenieurmäßig. Softwaretechnik Quo vadis? Software-Technologie: Stand der Kunst und. Herausforderungen

Context. Verteilte Programmierung im Überblick. Verteilte Systeme/Distributed Systems. Konzeption der LVA

Installation OMNIKEY 3121 USB

Sicherheit komplexer Informationssysteme

Technische Alternative elektronische Steuerungsgerätegesellschaft mbh. A-3872 Amaliendorf, Langestr. 124 Tel +43 (0)

Refaktorisierung des Eclipse- Plugins Saros für die Portierung auf andere IDEs. Verteidigung der Bachelorarbeit von Arndt Tigges

Es war einmal... "StudyING: Welten bewegen - Welten gestalten"

w3lib - einfach Software entwickeln!

Erfassung von Umgebungskontext und Kontextmanagement

8 Design Patterns. Events

Handbuch. Artologik EZ-Equip. Plug-in für EZbooking version 3.2. Artisan Global Software

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

Lokale Installation von DotNetNuke 4 ohne IIS

testo ZIV Treiber Konfiguration Software Bedienungsanleitung

J.6 Programmierung eingebetteter Systeme

Formular»Fragenkatalog BIM-Server«

Einführung in Generatives Programmieren. Bastian Molkenthin

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

Bedienungsanleitung für den Dokumentenserver

Dominik Stockem Datenschutzbeauftragter Microsoft Deutschland GmbH

Objektorientierter Software-Entwurf Grundlagen 1 1. Analyse Design Implementierung. Frühe Phasen durch Informationssystemanalyse abgedeckt

Fragebogen ISONORM 9241/110-S

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

A1 Desktop Security Installationshilfe. Symantec Endpoint Protection 12.1 für Windows/Mac

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld "Sharing". Auf dem Bildschirm sollte folgendes Fenster erscheinen:

Swisscom TV Medien Assistent

Was versteht man unter Softwaredokumentation?

eclips Handheld Remote Control Software Updater

1. SIDOMO -WARTUNG KONFIGURATION WINDOWS 2003, 2000, XP: ERSTELLEN EINES SIDOMO -WARTUNGS-TASKS... 2

Anleitung zur Installation von Windows XP Professional und dem Multilanguage Interface

Übung 6: Feinentwurf. Prof. Dr. Dr. h.c. Manfred Broy Dr. Herbert Ehler, Martin Feilkas 6. Juli 2006 Bernd Spanfelner, Sebastian Winter

EINSATZ VON DESIGN PATTERNS BEI DER ENTWICKLUNG DES CSM-FRAMEWORKS REMARC

SE2-10-Entwurfsmuster-2 15

Reparaturmodus unter Office und 2013 finden

Einen Wiederherstellungspunktes erstellen & Rechner mit Hilfe eines Wiederherstellungspunktes zu einem früheren Zeitpunkt wieder herstellen

Informatik 1 Tutorial

Bedienungsanleitung. FAST SMS Set mit MacOS betreiben MAC

Anwenden eines Service Packs auf eine Workstation


WIE ERHÖHT MAN DIE EFFIZIENZ DES BESTEHENDEN RECHENZENTRUMS UM 75% AK Data Center - eco e.v. 1. Dezember 2009

Der digitale. Workflow Workflow. [PDF-Erstellung aus CorelDraw für Windows]

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Übung - Konfigurieren einer Windows-XP-Firewall

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

Kurzanleitung zum Einrichten von konten für Outlook Express 6

ISi. ISi Technologie GmbH. MET -Schnittstelle zu Davis WeatherLink Version 5.7

Typisierung des Replikationsplan Wirries, Denis Datenbankspezialist

1. Voraussetzungen S Installation des OpenVPN Clients S OpenVPN Client installieren S Entpacken des Zip Ordners S.

Mikrocontroller Grundlagen. Markus Koch April 2011

Computeria Solothurn

RFID Lösungen Fragebogen über Ihr RFID Projekt

Dokumentation IBIS Monitor

mmone Internet Installation Windows XP

Qualitätssicherung einer digital geführten Buchhaltung

Internet Explorer Version 6

Comparing Software Factories and Software Product Lines

Übung - Datenmigration in Windows 7

Fragebogen zur Anforderungsanalyse

Update / Inbetriebnahme domovea Server. Update/Inbetriebnahme domovea Server Technische Änderungen vorbehalten

Überprüfung der digital signierten E-Rechnung

Erster Bug: eine Motte

Tipps und Tricks zur Installation von Java-basierten Programmen auf Handys

Der Einsatz von Social Media im Stadtmarketing. Alexander Masser, Hans-Jürgen Seimetz, Peter Zeile

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Business Model Canvas

Installationsanleitung xdsl Privat unter Windows XP

teischl.com Software Design & Services e.u. office@teischl.com

SOMA Reverse Engineering

2. Installation unter Windows 8.1 mit Internetexplorer 11.0

Anleitung zum DKM-Computercheck Windows Defender aktivieren

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

SharePoint Demonstration

Installationsanleitung für Visual Studio Express

Hinweise zur Inbetriebnahme der FMH-HPC auf Windows 7. Version 4,

Lexware professional und premium setzen bis einschließlich Version 2012 den Sybase SQL-Datenbankserver

1 Installation QTrans V2.0 unter Windows NT4

Datenübernahme easyjob 3.0 zu easyjob 4.0

auf den E-Book-Reader

Neue Funktionen in Innovator 11 R5

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

YouTube: Video-Untertitel übersetzen

Installationsanleitung für WinTV-PVR (PCI) unter Windows XP

Shellfire L2TP-IPSec Setup Windows XP

Installationsleitfaden zum Fakturierungsprogramm

Step by Step Webserver unter Windows Server von Christian Bartl

Pädagogische Hochschule Thurgau. Lehre Weiterbildung Forschung

, dadurch wird der andere Modus eingestellt, also es sieht dann so aus

STRG + A = STRG + C = STRG + X = STRG + V = STRG + Alt + Entf = STRG + S =

Sich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. ist einer davon.

Einreichung zum Call for Papers

Installationsanleitung. Hardlock Internal PCI Hardlock Server Internal PCI

In den vorliegenden, schrittweise aufgebauten Anweisungen

SILVERBALL MAX. Technische Info V10 Update

Wireless LAN Installation Windows XP

Data Mining-Projekte

Netzwerktechnik. Verkabelungen Netzwerk-Service Aktive Komponenten. Erste Schritte. PolyTrans2PYTHA PYTHA2PolyTrans. EVS electronic GmbH CAD-Vertrieb

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Hilfe zur ekim. Inhalt:

Transkript:

Software-Technologie: Stand der Kunst und Herausforderungen O.Univ.-Prof. Dipl.-Ing. Dr. Wolfgang Pree Software & Systems Research Group Universität Salzburg cs.uni-salzburg.at Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, or to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee.

Kontext Das Phänomen Software Wie kann Software ingenieurmäßig entwickelt werden? Softwaretechnik Quo vadis? 2

Das Phänomen Software 3

Die Universalmaschine Computer macht Software allgegenwärtig Flugzeug-/Raketensteuerungen 4 ca. 70 Prozessoren im Auto

Qualität ist wesentlich schlechter als bei anderen Produkten Softwarefehler/-mängel mit drastischen Auswirkungen: Y2K, -Umstellung fehlerhafte Finanztransaktionen Abstürze (zb Ariane: $ 800 Mio.)... 5

Was ist besonders an Software? 6

Die Probleme bei der Herstellung von Software resultieren aus der Komplexität der zu realisierenden Produkte 7 Spezifikation der Anforderungen Beherrschung der Komplexität Wiederverwendung/PlugIns, Änderbarkeit und Erweiterbarkeit Automatisierung im Herstellungsprozeß Portabilität Psychologie (zb Piaget) Dokumentation Produktergonomie (Mensch-Computer- Schnittstelle) Projektorganisation u. -kontrolle Qualitätssicherung und -bewertung Personenunabhängigkeit Kostenabschätzung Prototyping Programmiermodelle Entwurfsmuster Frameworks

Beispiel: Problem der exakten Spezifikation 8

Eine exakte Spezifikation ist oft unpraktikabel geg.: n 3, L: N n N ges.: Ein Programm P, sodass inj a: N 3 N n, sodass 1 i 3 j ε N n \ U { a k } 1 k j L(a i ) L(a J ) 9

... im Vergleich zur nicht exakten verbalen Spezifikation Gegeben ist eine Liste mit mindestens drei positiven Zahlen. Gesucht ist ein Programm P, das die Indizes der drei größten Elemente der Liste liefert. 10

Meisterung der Komplexität 11

Bei klassischen Ingenieurdisziplinen gilt: Schlechte Qualität läßt sich kaum verbergen Tür zu einem Raum geht nicht gut auf unnötige Schnörksel fallen auf 5. Rad am Wagen Die Ressourcen sind beschränkt ingenieurmäßiges Herangehen bedeutet, unter den gegebenen Rahmenbedingungen zu optimieren 12

Bei Software hingegen ist schlechte Qualität nicht unmittelbar sichtbar schlechte Strukturierung Spaghetti -Programmcode: Radwechsel => Motor funktioniert nicht mehr replizierter Programmcode kaum Wiederverwendung das Rad wird immer neu erfunden 13

Ingenieurmäßiges Vorgehen scheint sich nicht auszuzahlen Hardware-Ressourcen werden nach Moore s Law potenter; der gedankenlose Umgang damit führt zu unnötiger Komplexität nicht mehr verstehbaren Artefakten OberonOS (ETH ZH) 30.000 Zeilen Programmcode 4,1 cm 27,5 m Windows XP: 20,000.000 (!!) Zeilen Programmcode 14

Wie kann Software ingenieurmäßig entwickelt werden? 15

von Einzelteilen zu Komponenten 50er Jahre Maschinen-/Assembler-Programme: auf bestimmten Prozessor zugeschnitten 60er/70er Jahre höhere Programmiersprachen (wie Pascal, C) Anweisungen können zu Funktionen/Prozeduren zusammengefasst werden Einzelteile, Schrauben, etc. 80er/90er Jahre Funktionen/Prozeduren werden zu Modulen zusammengefasst (Modula, Oberon, C++, Java, C#) Software-Komponenten 16

Beispiel: Komponente File-Handler einfache Schnittstelle File lesen File schreiben... 17 versteckte Implementierungsdetails: Zugriff auf Festplatte Aufsplitten des Inhalts eines Files etc.

Architektur-Patterns Software-Patterns 18

The Timeless Way of Building Christopher Alexander, Professor of Architecture, Univ. of California, Berkeley: 1979 erschienene Bücher: The Timeless Way of Building A Patttern Language (253 Patterns) Quality without a name 1991 von der Software-Community entdeckt 19

Beispiel: Windows Overlooking Life 20

Beispiele für Software Patterns 21

Wie können SW-PlugIn-Architekturen geschaffen werden? Beschrieben in Architektur-Handbüchern (1995): E. Gamma, R. Helm, R. Johnson, J. Vlissides: Design Patterns: Elements of Reusable Software W. Pree: Design Patterns for Object-Oriented Software Development 22

Was sind PlugIn-Architekturen? Küchenmaschine: durch Einstecken einer Komponente wird das vorhandene PlugIn-System zum fertigen Mixer oder Fleischwolf neue Automodelle gleichen meist im Kern (Chassis, Getriebe, Motorpalette) den Vorgängermodellen 23

SW-Beispiele Einwegsoftware: Hotelreservierungssystem Autovermietungssystem Schiverleihsystem Motorradverleihsystem etc. PlugIn-Architektur: Reservierungssystem (Mietgegenstand) 24

Einwegsoftware Abhängigkeit zwischen den Komponenten ist im Programmquelltext: Hotelzimmer Kopplung mit einer anderen Komponente erfordert Änderungen: Auto 25

Pattern: PlugIn-Architekturen erfordern die Definition von Steckern Stecker Mietgegenstand Stecker-kompatible Komponenten 26

sogenannte dynamische Bindung von Aufrufen macht Änderungen im Source-Code obsolet m1() m1() m1() call m1 27

Stecker Mietgegenstand Definiert allgemeine, abstrakte Eigenschaften: istfrei(zeitraum) reserviere(zeitraum) berechnepreis(zeitraum) etc. 28

29

PlugIn-Architektur für Satellitensteuerungen in Kooperation mit der European Space Agency (ESA): 1998 2002 30

Automatische Generierung von Software aus Bauplänen (Modellen) 31

Compiler: DIE Erfolgsgeschichte der Softwaretechnik Programmtext (Pascal, C#, xuml) ausführbares (Maschinen-)Programm a+b als Maschinenprogramm: 010 100 "hole die Zahl vom Speicherplatz 100(a) in einen Puffer" 015 101 "addiere dazu den Inhalt von Speicherplatz 101(b)" 011 102 "speichere das Ergebnis in Zelle 102(a+b) für das Zeitverhalten von Embedded Systems noch ausständig für andere Anwendungsbereiche denkbar? 32

Beispiel: Helicopter Control System (I) Henzinger, Kirsch, Pree, Sanvido (UC Berkeley) Schaufelberger, Wirth (ETH Zürich) 33

Beispiel: Helicopter Control System (II) 34

Giotto als höhere Programmiersprache = Bauplan = Modell für Zeitaspekte Mode 1 Task S 400 Hz Task C 200 Hz Task A 1 khz Condition 1.2 Condition 2.1 Mode 2 Task S 400 Hz Task C 200 Hz Task A 1 khz Task A 1 khz Mode 3 Task S 400 Hz Task C 200 Hz Task A 2 khz Mode 4 Task C 100 Hz Task A 1 khz => spezif. HW-Plattform wird irrelevant 35

Generierung der Software + deren Verteilung auf Prozessoren erfolgt automatisch Sensor Driver Task d Actuator Task on CPU. Input ports loaded. Output ports read. Time t Time t Time t +d Time t +d 36

Softwaretechnik Quo vadis? 37

kostenintensive Wartung von Software, die 20-30 Jahre alt ist ingenieurmäßige Herangehensweise wird sich zumindest in Teilbereichen etablieren, zb bei sicherheitskritischen Systemen 38

simple, mechanische Weltsicht schwer skalierbar Vorbild biologische Systeme Internet wuchs um den Faktor 100 Mio. 39

Softwaretechnik Quo vadis? 40

The End Vielen Dank für Ihre Aufmerksamkeit! 41