Werkzeuggestützte Softwareprüfung - se.uni-hannover.de · * Software Engineering – Prototyping...

31
Werkzeuggestützte Softwareprüfung Werkzeuggestützte Softwareprüfung Simulationen und Prototypen Markus Spehling

Transcript of Werkzeuggestützte Softwareprüfung - se.uni-hannover.de · * Software Engineering – Prototyping...

Page 1: Werkzeuggestützte Softwareprüfung - se.uni-hannover.de · * Software Engineering – Prototyping und objektorientierte Softwareentwicklung – Gustav Pomberger, Günther Blaschek.

Werkzeuggestützte SoftwareprüfungWerkzeuggestützte Softwareprüfung

Simulationen und Prototypen

Markus Spehling

Page 2: Werkzeuggestützte Softwareprüfung - se.uni-hannover.de · * Software Engineering – Prototyping und objektorientierte Softwareentwicklung – Gustav Pomberger, Günther Blaschek.

2Markus Spehling - Simulationen und Prototypen

GliederungGliederung

• Prototypen– Motivation– …– Zusammenfassung Prototypen

• Simulation– Motivation– …– Zusammenfassung Simulation

• DEMO – NetBeans 5.0

Page 3: Werkzeuggestützte Softwareprüfung - se.uni-hannover.de · * Software Engineering – Prototyping und objektorientierte Softwareentwicklung – Gustav Pomberger, Günther Blaschek.

3Markus Spehling - Simulationen und Prototypen

Motivation Motivation -- PrototypPrototyp

Quelle: www.bib.gv.at

• Prototyp [grch. prototypos] – Urbild bzw. Muster• Anwendung von Prototypen zu Testzwecken in:

– Elektrotechnik– Maschinenbau

• Durchführbarkeit/Test einer Unternehmung bzw. Projekts• Beispiel:

Flugzeugbau – Prototyp im Windkanal

Page 4: Werkzeuggestützte Softwareprüfung - se.uni-hannover.de · * Software Engineering – Prototyping und objektorientierte Softwareentwicklung – Gustav Pomberger, Günther Blaschek.

4Markus Spehling - Simulationen und Prototypen

Einführung Einführung -- PrototypPrototyp

Definition: Prototyp

Ein Prototyp ist ein erstes funktionsfähiges Produkt oder

Bauteil, das zu Testzwecken entworfen wird. Anhand des

Prototyps werden u.a. Eigenschaften und Verhalten unter-

sucht. Der Prototyp kann eine Diskrepanz von Design und

Anforderungen zwischen Prototyp und Endprodukt auf-

weisen, jedoch ist eine Verhaltensübereinstimmung ange-

strebt.

Übernahme von Prototypen-Begriff in die Software-Enwicklung

Page 5: Werkzeuggestützte Softwareprüfung - se.uni-hannover.de · * Software Engineering – Prototyping und objektorientierte Softwareentwicklung – Gustav Pomberger, Günther Blaschek.

5Markus Spehling - Simulationen und Prototypen

Einführung Einführung -- PrototypPrototyp

Definition: Software-Prototyp

Ein Software-Prototyp ist ein – mit wesentlich geringerem

Aufwand als das geplante Produkt hergestelltes – einfach

zu änderndes und zu erweiterndes ausführbares Modell

des geplanten Software-Produktes, das nicht notwendi-

gerweise alle Eigenschaften des Zielsystems aufweisen

muss. […] Prototyping umfasst dabei alle Tätigkeiten, die

zur Herstellung von Prototypen notwendig sind.*

* Software Engineering – Prototyping und objektorientierte Softwareentwicklung – Gustav Pomberger, Günther Blaschek

Page 6: Werkzeuggestützte Softwareprüfung - se.uni-hannover.de · * Software Engineering – Prototyping und objektorientierte Softwareentwicklung – Gustav Pomberger, Günther Blaschek.

6Markus Spehling - Simulationen und Prototypen

EinführungEinführung-- PrototypPrototyp

• Klassischer Software Lebenszyklus• Nachteile:

– Linearer Prozess (ohne Schleifen)– Disjunkte Phasen mit fest definierten

Input und Output – Übergang in eine neue Phase kann

nur durch Verifikation und Validierungder vorhergehenden Phase erfolgen

• Prototypen-orientierter SoftwareLebenszyklus– Erweiterung vom klassischen Zyklus– Nicht linear, sondern iterativ

Page 7: Werkzeuggestützte Softwareprüfung - se.uni-hannover.de · * Software Engineering – Prototyping und objektorientierte Softwareentwicklung – Gustav Pomberger, Günther Blaschek.

7Markus Spehling - Simulationen und Prototypen

Einordnung in den Software Einordnung in den Software –– LebenszyklusLebenszyklus

* Software Engineering – Prototyping und objektorientierte Softwareentwicklung – Gustav Pomberger, Günther Blaschek

Page 8: Werkzeuggestützte Softwareprüfung - se.uni-hannover.de · * Software Engineering – Prototyping und objektorientierte Softwareentwicklung – Gustav Pomberger, Günther Blaschek.

8Markus Spehling - Simulationen und Prototypen

Prototypen PhasePrototypen Phase

• Prototypen in Anforderungsphase (Requirements)

– Festlegung von Benutzeranforderungen

– Testen, ob alle Anforderungen, die den realen Einsatzbedingungengenügen, erfüllt sind

– Stellt eine bessere Ausgangsbasis für die folgenden Aktivitäten dar

• Prototypen in Entwurfsphase (Architecture and Component)

– Nochmalige Analyse der Anforderungsspezifikation

Page 9: Werkzeuggestützte Softwareprüfung - se.uni-hannover.de · * Software Engineering – Prototyping und objektorientierte Softwareentwicklung – Gustav Pomberger, Günther Blaschek.

9Markus Spehling - Simulationen und Prototypen

Nutzen und Charakteristika von PrototypenNutzen und Charakteristika von Prototypen

- Demonstration von Benutzeroberflächen

- Experimentieren der Anwender mit dem Produkt (Trainingsversion)

- besseres Verständnis von Anforderungen für das Produkt

- neue Anforderungen / Fehler in vorhandenen Anforderungen

- schnelle und billige Herstellung eines lauffähigen Systems

- eingeschränkte Funktionalität, schlechte Performance

- wesentliche fachliche Funktionalität ist erkennbar

- dient als Diskussionsbasis für die weitere Entwicklung

Page 10: Werkzeuggestützte Softwareprüfung - se.uni-hannover.de · * Software Engineering – Prototyping und objektorientierte Softwareentwicklung – Gustav Pomberger, Günther Blaschek.

10Markus Spehling - Simulationen und Prototypen

Arten von PrototypenArten von Prototypen

• Demonstrationsprototyp– Auftragsakquisition, wie soll das Produkt später aussehen– Erklärung, Demonstration, Information, Wegwerf-Prototyp

• Pilotsystem– bildet den Kern des Produktes– iterative Weiterentwicklung bis zum Endprodukt

• Prototyp im engeren Sinne– erste Funktionalität des Produktes– Problemklärung, Festlegung von Ressourcen und Ziele– Analyse von Aspekten der GUI und Teile der techn. Funktionalität

• Labormuster – technische Umsetzbarkeit und Optimierung– Beantwortung konstruktionsbezogener Fragen und Alternativen

Page 11: Werkzeuggestützte Softwareprüfung - se.uni-hannover.de · * Software Engineering – Prototyping und objektorientierte Softwareentwicklung – Gustav Pomberger, Günther Blaschek.

11Markus Spehling - Simulationen und Prototypen

Einteilung des Prototyping IEinteilung des Prototyping I

ExplanatoryPrototyping

ExplorativePrototyping

EvolutionaryPrototyping

Experimental Prototyping

Throwaway-Prototyping

Prototyping

Prozess Prototyp

Explanatory/ erläuternd Demonstrationsprototyp

Experimental/ experimentell Labormuster

Explorative/ forschend Prototyp im engeren Sinne

Evolutionary/ evolutionär Pilotsystem

Page 12: Werkzeuggestützte Softwareprüfung - se.uni-hannover.de · * Software Engineering – Prototyping und objektorientierte Softwareentwicklung – Gustav Pomberger, Günther Blaschek.

12Markus Spehling - Simulationen und Prototypen

Einteilung des Prototyping IIEinteilung des Prototyping II

• Vertikales Prototyping– komplette Implementierung von

speziellen Funktionen – kann zu einer frühen Version des

Produkts weiterentwickelt werden

• Horizontales Prototyping– teilweise Implementierung von Funktionen– ganze Funktionalität wird dargestellt

Page 13: Werkzeuggestützte Softwareprüfung - se.uni-hannover.de · * Software Engineering – Prototyping und objektorientierte Softwareentwicklung – Gustav Pomberger, Günther Blaschek.

13Markus Spehling - Simulationen und Prototypen

Evolutionäres PrototypingEvolutionäres Prototyping

Entwicklungs-Spezifikation

Prototyp-entwicklung

Prototypbewerten

Auslieferungdes Produktes

Nein

Okay ?Ja

• Spezifikation, Entwurf und Implementierung eng verbunden• ein Einstiegsprototyp (Inertial-Prototyp) wird entwickelt, der in

mehreren Iterationen verfeinert und weiterentwickelt wird• am Ende dieser Kette steht das Endprodukt • Entwicklung startet meist mit den Anforderungen, die am besten

verstanden sind

Page 14: Werkzeuggestützte Softwareprüfung - se.uni-hannover.de · * Software Engineering – Prototyping und objektorientierte Softwareentwicklung – Gustav Pomberger, Günther Blaschek.

14Markus Spehling - Simulationen und Prototypen

WegwerfWegwerf--PrototypingPrototyping

Entwurfs-anforderungen

Prototyp –entwicklung

Prototypbewerten

Systemspezifizieren

Softwareentwickeln

Systemvalidieren

WiederverwendbareKomponenten

Auslieferungdes Produktes

• Ein Prototyp wird entwickelt, um Probleme bei den Anforderungen zu entdecken und zu beheben

• Entwicklung startet meist mit Anforderungen, die am wenigsten verstanden sind

• Ziel ist die Validierung und Herleitung der Produktanforderungen• Das eigentliche Produkt wird mittels eines anderen Entwicklungs-

prozesses entwickelt

Page 15: Werkzeuggestützte Softwareprüfung - se.uni-hannover.de · * Software Engineering – Prototyping und objektorientierte Softwareentwicklung – Gustav Pomberger, Günther Blaschek.

15Markus Spehling - Simulationen und Prototypen

Prototyping Werkzeuge

• Programmiersprachen– Erstellung von einfachen Prototypen mittels einer geeigneten

Programmiersprache

• Generatoren– CASE (Computer Aided Software Engineering) Werkzeuge

• Bieten in frühen Phasen der Entwicklung den Entwicklern eine einfache und transparente Oberfläche an, die das ganze System darstellt

• Häufig liefern diese Werkzeuge fertig generierten Programm Code– Graphische Systeme

• Erstellung von graphischen Benutzeroberflächen• Generierung vom Programm Code, der die Oberfläche aufbaut

Page 16: Werkzeuggestützte Softwareprüfung - se.uni-hannover.de · * Software Engineering – Prototyping und objektorientierte Softwareentwicklung – Gustav Pomberger, Günther Blaschek.

16Markus Spehling - Simulationen und Prototypen

Aufwandsschätzung Aufwandsschätzung –– Vergleich*Vergleich*

• Modell: Klassischer sequentieller Software-Lebenszyklus

– Problemanalyse und Systemspezifikation: 25%

– Entwurf 25%– Implementierung 15%

– Test 35%

• Modell: Prototypen-orientierter Software-Lebenszyklus

– Problemanalyse und Systemspezifikation: 40%

– Entwurf 25%– Implementierung 10%– Test 25%

* Software Engineering – Prototyping und objektorientierte Softwareentwicklung – Gustav Pomberger, Günther Blaschek

Page 17: Werkzeuggestützte Softwareprüfung - se.uni-hannover.de · * Software Engineering – Prototyping und objektorientierte Softwareentwicklung – Gustav Pomberger, Günther Blaschek.

17Markus Spehling - Simulationen und Prototypen

Pro und Kontra von PrototypenPro und Kontra von Prototypen

• Vorteile– frühe Validierung durch den Kunden– Reduzierung des Entwicklungsrisikos– die Anforderungen der Anwender können laufend präzisiert und

verifiziert werden – die Qualitätssicherung kann frühzeitig eingebunden werden – unbeabsichtigte Wechselwirkungen zwischen einzelnen Komponenten

des Produkts können früher erkannt werden. – Förderung der Kreativität– schnelle Entwicklung durch entsprechende Werkzeuge möglich

• Nachteile– höherer Entwicklungsaufwand – Gefahr der Wiederverwendung von Wegwerf-Prototypen– kontinuierliche Erweiterungen korrumpieren das System und machen

Wartungen teuer

Page 18: Werkzeuggestützte Softwareprüfung - se.uni-hannover.de · * Software Engineering – Prototyping und objektorientierte Softwareentwicklung – Gustav Pomberger, Günther Blaschek.

18Markus Spehling - Simulationen und Prototypen

Zusammenfassung Zusammenfassung -- PrototypenPrototypen• Adäquates Mittel für die Software-Entwicklung• schnelle Entwicklung eines System

– Evolutionäre Prototypen• startet mit am besten verstandenen Anforderungen• iterative Entwicklung des Prototypen bis zum Endprodukt

– Wegwerf Prototypen• startet mit am wenigsten verstandenen Anforderungen• wird am Ende verworfen und lediglich die Erkenntnisse weitergenutzt

• Prototypen sind essentiell für Teile im System, die nur schlechtvorher spezifiziert werden können (z.B. GUI)

• Prototypen dienen nicht der Validierung oder Verifikation– Ziele:

• Beseitigung von Missverständnissen• Erkenntnisse über Techniken gewinnen, Produktivität steigern• Qualitätssicherung und Reduzierung des Entwicklungsrisikos

Page 19: Werkzeuggestützte Softwareprüfung - se.uni-hannover.de · * Software Engineering – Prototyping und objektorientierte Softwareentwicklung – Gustav Pomberger, Günther Blaschek.

19Markus Spehling - Simulationen und Prototypen

GliederungGliederung

• Prototypen– Motivation– …– Zusammenfassung Prototypen

• Simulation– Motivation– …– Zusammenfassung Simulation

• DEMO – NetBeans 5.0

Page 20: Werkzeuggestützte Softwareprüfung - se.uni-hannover.de · * Software Engineering – Prototyping und objektorientierte Softwareentwicklung – Gustav Pomberger, Günther Blaschek.

20Markus Spehling - Simulationen und Prototypen

Motivation Motivation -- SimulationSimulation

• Simulation [lat. simulatus] – scheinbar bzw. erheuchelt• Abwendung von Simulationen:

– Fahrzeugbau, Flugzeugbau, …

• Problem:– System ist häufig nicht bereit für Integrationstests– schlechtes Kosten/ Nutzen-Verhältnis

• Test der Funktionsweise von Komponenten bzw. Systemen• Beispiel: Airbag-Steuerung im Fahrzeug

Page 21: Werkzeuggestützte Softwareprüfung - se.uni-hannover.de · * Software Engineering – Prototyping und objektorientierte Softwareentwicklung – Gustav Pomberger, Günther Blaschek.

21Markus Spehling - Simulationen und Prototypen

Einführung Einführung -- SimulationSimulation

Definition: Simulation (VDI 3633):– Simulation ist die Nachbildung eines dynamischen Prozesses in

einem Modell, um auf Erkenntnisse zu gelangen, die auf die Wirklichkeit übertragbar sind.

– Im weiteren Sinne wird unter Simulation das Vorbereiten, Durchführen und Auswerten gezielter Experimente mit einem Simulationsmodell verstanden.

Definition: Simulator (VDI 3633):– Ein Simulator ist das Werkzeug zur Simulation, das ein Modell zur

Nachbildung des dynamischen Verhaltens eines Systems und seiner Prozesse lauf- und nutzungsfähig macht.

Page 22: Werkzeuggestützte Softwareprüfung - se.uni-hannover.de · * Software Engineering – Prototyping und objektorientierte Softwareentwicklung – Gustav Pomberger, Günther Blaschek.

22Markus Spehling - Simulationen und Prototypen

Arbeitsschritte zur SimulationArbeitsschritte zur Simulation

1. Systemanalyse (Originalsystem)

2. Mathematisches Modell Ziel: niedriges Abstraktionsniveau

3. Implementierung des Simulators

Durchführung von Simulationen

Page 23: Werkzeuggestützte Softwareprüfung - se.uni-hannover.de · * Software Engineering – Prototyping und objektorientierte Softwareentwicklung – Gustav Pomberger, Günther Blaschek.

23Markus Spehling - Simulationen und Prototypen

Vergleich Vergleich –– Simulation, Emulation, Reales System Simulation, Emulation, Reales System

Simulation Emulation Reales Simulation Emulation Reales SytemSytem∩∩ ∩∩

Kriterien Simulation Emulation Realumgebung

Reproduzierbarkeit + gut möglich + gut möglich - schwer möglich

Vereinfachungsgrad - hohe Abstraktion - niedrige Abstraktion + keine Abstraktion

Szenarioerstellung + einfach + einfach - aufwendig

Skalierbarkeit + hoch ~ verschieden ~ verschieden

Preis + nicht teuer ~ verschieden - evtl. sehr teuer

Page 24: Werkzeuggestützte Softwareprüfung - se.uni-hannover.de · * Software Engineering – Prototyping und objektorientierte Softwareentwicklung – Gustav Pomberger, Günther Blaschek.

24Markus Spehling - Simulationen und Prototypen

Simulation Simulation -- FunktionsweiseFunktionsweise

Quelle: Vorlesung: Softwarequalität SoSe05Quelle: Vorlesung: Softwarequalität SoSe05

– Korrektheit von Software bzw. ~modulen– Interaktion von Modulen miteinander

• Software-Entwicklung

Page 25: Werkzeuggestützte Softwareprüfung - se.uni-hannover.de · * Software Engineering – Prototyping und objektorientierte Softwareentwicklung – Gustav Pomberger, Günther Blaschek.

25Markus Spehling - Simulationen und Prototypen

Warum Simulationen? Warum Simulationen? –– Nutzen?Nutzen?

• Analyse des realen Systems zu aufwendig oder zu teuer

• reales System lässt sich nicht oder nur schwer beobachten

• bietet Einblick in komplexe Prozessverhalten

• Korrektheit von Software bzw. Softwaremodulen

• Schwachstellen in der Software können entdeckt werden

• bietet eine Möglichkeit der Verifikation von Software

• Entgegenwirkung der Probleme bei der Software-Entwicklung– Steigende Fehlerraten im Programm-Code– Steigenden Komplexität, steigende Kosten

Page 26: Werkzeuggestützte Softwareprüfung - se.uni-hannover.de · * Software Engineering – Prototyping und objektorientierte Softwareentwicklung – Gustav Pomberger, Günther Blaschek.

26Markus Spehling - Simulationen und Prototypen

Pro und Kontra von SimulationPro und Kontra von Simulation

• Vorteile:– Einblick in komplexe System/Software-Abläufe– Verifikation von Programm bzw. Programmteilen– bildet einen abgeschlossenen Rahmen– nachbildende System erhält und liefert die gleichen Daten, wie das

originale System

• Nachteile:– Aufgrund von Grenzen muss das Modell einfach gehalten werden

(Zeit, Energie, Rechenkapazität, …)– nicht einfach: Schnittstelle des Simulators– Modell liefert häufig nur in einem bestimmten Kontext Ergebnisse

Page 27: Werkzeuggestützte Softwareprüfung - se.uni-hannover.de · * Software Engineering – Prototyping und objektorientierte Softwareentwicklung – Gustav Pomberger, Günther Blaschek.

27Markus Spehling - Simulationen und Prototypen

Zusammenfassung Zusammenfassung -- SimulationSimulation

• Adäquates Mittel zur Validierung und Verifikation von Software, speziell von Modulen– Vergleich der Ausgabedaten mit Sollwerten– Integrationstests werden mit Software- oder Hardware-in-the-Loop

Tests durchgeführt (Embedded-Systems)

• Visualisierung von Softwareabläufen /~prozessen• keine vollständige Abdeckung alle Fälle bei der Simulation

im Vergleich zu Model-Checking– Unvollständige Methode– Zusammenschaltung von Simulation und Model-Checking

• Software-Engineering ohne Verwendung des reales Systems möglich ( z.B. Mobiltelefon )

Page 28: Werkzeuggestützte Softwareprüfung - se.uni-hannover.de · * Software Engineering – Prototyping und objektorientierte Softwareentwicklung – Gustav Pomberger, Günther Blaschek.

28Markus Spehling - Simulationen und Prototypen

GliederungGliederung

• Prototypen– Motivation– …– Zusammenfassung Prototypen

• Simulation– Motivation– …– Zusammenfassung Simulation

• DEMO – NetBeans 5.0

Page 29: Werkzeuggestützte Softwareprüfung - se.uni-hannover.de · * Software Engineering – Prototyping und objektorientierte Softwareentwicklung – Gustav Pomberger, Günther Blaschek.

29Markus Spehling - Simulationen und Prototypen

DEMO I DEMO I –– NetBeansNetBeans 5.05.0

1.) Erstellung eines Oberflächenprototyps

Page 30: Werkzeuggestützte Softwareprüfung - se.uni-hannover.de · * Software Engineering – Prototyping und objektorientierte Softwareentwicklung – Gustav Pomberger, Günther Blaschek.

30Markus Spehling - Simulationen und Prototypen

DEMO II DEMO II –– NetBeansNetBeans 5.05.0

2.) Emulation einer Mobilfunktelefon ApplikationBeispiel: Taschenrechner

Page 31: Werkzeuggestützte Softwareprüfung - se.uni-hannover.de · * Software Engineering – Prototyping und objektorientierte Softwareentwicklung – Gustav Pomberger, Günther Blaschek.

31Markus Spehling - Simulationen und Prototypen

LiteraturLiteratur

• G. Pomberger, R. Weinreich The Role of Prototyping in Software Development

• Begriffe zu Simulationen und Prototypenwww.software-kompetenz.de

• Ian Sommerville- Software-Engineering, 5th Edition, Chapter 8, 2000- Software-Engineering, 6th Edition, Chapter 8, 2000- Software-Engineering, Camerino, A.A. 2001-2002

• G. Pomberger, G. BlaschekSoftware Engineering – Prototyping und objektorientierte Softwareentwicklung

• Prof. Dr. K. Schneider, Softwarequalität, Universität Hannover, SoSe 2005