werkzeuggestützte softwareprüfung - se.uni-hannover.de · * software engineering – prototyping...
Post on 31-Oct-2019
4 Views
Preview:
TRANSCRIPT
Werkzeuggestützte SoftwareprüfungWerkzeuggestützte Softwareprüfung
Simulationen und Prototypen
Markus Spehling
2Markus Spehling - Simulationen und Prototypen
GliederungGliederung
• Prototypen– Motivation– …– Zusammenfassung Prototypen
• Simulation– Motivation– …– Zusammenfassung Simulation
• DEMO – NetBeans 5.0
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
19Markus Spehling - Simulationen und Prototypen
GliederungGliederung
• Prototypen– Motivation– …– Zusammenfassung Prototypen
• Simulation– Motivation– …– Zusammenfassung Simulation
• DEMO – NetBeans 5.0
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
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.
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
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
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
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
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
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 )
28Markus Spehling - Simulationen und Prototypen
GliederungGliederung
• Prototypen– Motivation– …– Zusammenfassung Prototypen
• Simulation– Motivation– …– Zusammenfassung Simulation
• DEMO – NetBeans 5.0
29Markus Spehling - Simulationen und Prototypen
DEMO I DEMO I –– NetBeansNetBeans 5.05.0
1.) Erstellung eines Oberflächenprototyps
30Markus Spehling - Simulationen und Prototypen
DEMO II DEMO II –– NetBeansNetBeans 5.05.0
2.) Emulation einer Mobilfunktelefon ApplikationBeispiel: Taschenrechner
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
top related