Werkzeuggestützte Softwareprüfung



Ähnliche Dokumente
Informationssystemanalyse Lebenszyklusmodelle 3 1. Lebenszyklusmodelle sollen hauptsächlich drei Aufgaben erfüllen:

Angepasste Software Standards für DLR- Eigenentwicklungen - Die DLR Software Basisstandards -

Informationswirtschaft II Rational Unified Process (RUP)

Informationswirtschaft II

Grundlagen Software Engineering

Durch die virtuelle Optimierung von Werkzeugen am Computer lässt sich die reale Produktivität von Servopressen erhöhen

Comparing Software Factories and Software Product Lines

Wirtschaftsinformatik I Teil 2. Sommersemester Übung

Generatives Programmieren

17 Architekturentwurf Vorgehen und Dokumentation

Abschnitt 16: Objektorientiertes Design

Skizzieren, Prototypen

Transfer von Prozessen des Software-Produktlinien Engineering in die Elektrik/Elektronik- Architekturentwicklung von Fahrzeugen

Entwicklungsunterstützende Dienstleistung im Bereich des Usability Engineering

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

Das Pflichtenheft. Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth Ains A-Systemhaus GmbH Berlin

Software Engineering

T1 - Fundamentaler Testprozess

Das Wasserfallmodell - Überblick

Informationen zur CPRE-Prüfung zum Certified Professional for Requirements Engineering Foundation Level

Konzentration auf das. Wesentliche.

Lernaufgabe Industriekauffrau/Industriekaufmann Angebot und Auftrag: Arbeitsblatt I Auftragsbeschreibung

Universität Paderborn Die Universität der Informationsgesellschaft. Validierung und Verifikation (inkl. Testen, Model-Checking, Theorem Proving)

Übungen zur Softwaretechnik

Die Softwareentwicklungsphasen!

Ontologiebasierte Entwicklung von Anforderungsspezifikationen im Automotive-Umfeld Mathias Schraps,

Übungsklausur vom 7. Dez. 2007

Requirements Engineering Research Group!

Software Engineering. Bibliographisches Institut & F. A. Brockhaus AG, Mannheim; Spektrum Akademischer Verlag GmbH, Heidelberg, 2003

Software Engineering in der Praxis

Validierung und Verifikation

Empirische Softwaretechnik Kosten und Nutzen von UML in der Wartung Dr. Victor Pankratius Andreas Höfer Wintersemester 2009/2010

Requirements Engineering I. Der Spezifikationsprozess!

Referent: Mathias Notheis Kontakt:

Softwarequalität. TÜV SÜD Product Service GmbH. Damit Ihre Softwareprodukte sicher ins Ziel kommen.

Entwicklungsprozesse und -werkzeuge

QM: Prüfen -1- KN

Was ist speziell an IT- Beschaffungen?

FACHHOCHSCHULE MANNHEIM

Änderungsmanagement bei iterativer SW-Entwicklung

Free your work. Free your work. Wir wollen Ihnen die Freiheit geben, sich auf Ihr Geschäft zu konzentrieren.

Software Engineering. 3. Analyse und Anforderungsmanagement

Vom Konzept direkt ins Cockpit: Optimierte HMI-Entwicklung mittels automatischer Codegenerierung

Eberhard Lehmann: Projekte im Informatik-Unterricht Software Engineering, Ferd. Dümmlers Verlag, Bonn Inhaltsverzeichnis.

Über uns. Was bedeutet der Name traloco?

Architekturplanung und IS-Portfolio-

Qualitätsmanagement. Andreas Bäuml SWT-Projekt WS 07/08

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

Produktvorstellung: CMS System / dynamische Webseiten. 1. Vorwort

Installation OMNIKEY 3121 USB

Informationssystemanalyse Problemstellung 2 1. Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse:

Product Line Engineering (PLE)

Geyer & Weinig: Service Level Management in neuer Qualität.

Software Engineering

Übungsaufgaben zum Software Engineering: Management

Hochschule Wismar. Fakultät für Wirtschaftswissenschaften. Arbeitskonzept zur Projektarbeit Softwarequalität und Softwarealterung

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger

Usability Engineering als Innovationsmethodik

Agile Software-Entwicklung im Kontext der EN50128 Wege zum Erfolg

Grundlagen des Software Engineering

Erfahrungen mit Hartz IV- Empfängern

Prozess-Modelle für die Softwareentwicklung

Validierung und Verifikation!

WSO de. <work-system-organisation im Internet> Allgemeine Information

Auswahl alter Klausuraufgaben aus einer ähnlichen Vorlesung Maßgeblich für die Prüfung sind die Vorlesungsinhalte!

Agile Softwareentwicklung in der Versicherungs-IT Fehlschlag oder Heilsbringer?

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

Risikosimulation zur Optimierung der Finanzierungsplanung von Projekten

INNOVATOR im Entwicklungsprozess

Seminar aus dem Bereich E-Learning

Softwaretechnik. Fomuso Ekellem WS 2011/12

Leseprobe. Thomas Konert, Achim Schmidt. Design for Six Sigma umsetzen ISBN: Weitere Informationen oder Bestellungen unter

Benötigen wir einen Certified Maintainer?

Comparison of Software Products using Software Engineering Metrics

Bedienerhandbuch Toleranztabellen Version 1.2.x. Copyright Hexagon Metrology

Automotive Software Engineering

Elektrische Automation. Engineering. Datenaustausch Mechanik Elektrik Software. Aktivitäten des VDMA

Absicherung der Zuverlässigkeit im Produktlebenslauf. Projekt Coaching

Maschinenrichtlinie 2006/42/EG 150 Fragen und Antworten zum Selbststudium

Einführungsstrategien komplexer IT-Lösungen

Projektstart für Auftraggeber und Entscheider. Bern, 27. August 2013

Testen Prinzipien und Methoden

Software-Engineering

Rundum-G. Die Anforderungen durch ständig steigende

Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun. Java Projekt. Schiffe Versenken mit GUI

Regulatorische Anforderungen an die Entwicklung von Medizinprodukten

Zusammenhang zwischen FMEA und QFD

Die Zertifizierungsstelle der TÜV Informationstechnik GmbH bescheinigt hiermit dem Unternehmen

Coaching-Projekt: Organisationsoptimierung und Burn-out-Prävention

16 Architekturentwurf Einführung und Überblick

Grundlagen für den erfolgreichen Einstieg in das Business Process Management SHD Professional Service

Präsentation Von Laura Baake und Janina Schwemer

SO WERDEN LÖSUNGEN HÖCHSTEN ANSPRÜCHEN

Anforderungen an die HIS

Medina-DynCmd-Schnittstelle

Transkript:

Werkzeuggestützte Softwareprüfung Simulationen und Prototypen Markus Spehling

Gliederung Prototypen Motivation Zusammenfassung Prototypen Simulation Motivation Zusammenfassung Simulation DEMO NetBeans 5.0 2

Motivation - Prototyp 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 Quelle: www.bib.gv.at 3

Einführung - Prototyp 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 untersucht. Der Prototyp kann eine Diskrepanz von Design und Anforderungen zwischen Prototyp und Endprodukt aufweisen, jedoch ist eine Verhaltensübereinstimmung angestrebt. Übernahme von Prototypen-Begriff in die Software-Enwicklung 4

Einführung - Prototyp 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 notwendigerweise 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 5

Einführung- Prototyp 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 Validierung der vorhergehenden Phase erfolgen Prototypen-orientierter Software Lebenszyklus Erweiterung vom klassischen Zyklus Nicht linear, sondern iterativ 6

Einordnung in den Software Lebenszyklus * Software Engineering Prototyping und objektorientierte Softwareentwicklung Gustav Pomberger, Günther Blaschek 7

Prototypen Phase Prototypen in Anforderungsphase (Requirements) Festlegung von Benutzeranforderungen Testen, ob alle Anforderungen, die den realen Einsatzbedingungen genü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 8

Nutzen 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 9

Arten 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 10

Einteilung des Prototyping I Prototyping Throwaway- Prototyping Explanatory Prototyping Experimental Prototyping Explorative Prototyping Evolutionary Prototyping Prozess Explanatory/ erläuternd Experimental/ experimentell Explorative/ forschend Evolutionary/ evolutionär Prototyp Demonstrationsprototyp Labormuster Prototyp im engeren Sinne Pilotsystem 11

Einteilung 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 12

Evolutionäres Prototyping Entwicklungs- Spezifikation Prototypentwicklung Prototyp bewerten Nein Auslieferung des Produktes Ja Okay? 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 13

Wegwerf-Prototyping Entwurfsanforderungen Prototyp entwicklung Prototyp bewerten System spezifizieren Wiederverwendbare Komponenten Software entwickeln System validieren Auslieferung des 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 Entwicklungsprozesses entwickelt 14

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 15

Aufwandsschätzung 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 16

Pro 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 17

Zusammenfassung - Prototypen 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 schlecht vorher 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 18

Gliederung Prototypen Motivation Zusammenfassung Prototypen Simulation Motivation Zusammenfassung Simulation DEMO NetBeans 5.0 19

Motivation - Simulation 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 20

Einführung - Simulation 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. 21

Arbeitsschritte zur Simulation 1. Systemanalyse (Originalsystem) 2. Mathematisches Modell Ziel: niedriges Abstraktionsniveau 3. Implementierung des Simulators Durchführung von Simulationen 22

Vergleich Simulation, Emulation, Reales System Simulation Emulation Reales Sytem 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 23

Simulation - Funktionsweise Software-Entwicklung Quelle: Vorlesung: Softwarequalität SoSe05 Korrektheit von Software bzw. ~modulen Interaktion von Modulen miteinander 24

Warum Simulationen? 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 25

Pro 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 26

Zusammenfassung - Simulation 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 ) 27

Gliederung Prototypen Motivation Zusammenfassung Prototypen Simulation Motivation Zusammenfassung Simulation DEMO NetBeans 5.0 28

DEMO I NetBeans 5.0 1.) Erstellung eines Oberflächenprototyps 29

DEMO II NetBeans 5.0 2.) Emulation einer Mobilfunktelefon Applikation Beispiel: Taschenrechner 30

Literatur G. Pomberger, R. Weinreich The Role of Prototyping in Software Development Begriffe zu Simulationen und Prototypen www.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. Blaschek Software Engineering Prototyping und objektorientierte Softwareentwicklung Prof. Dr. K. Schneider, Softwarequalität, Universität Hannover, SoSe 2005 31