Viele Köche verderben den Brei

Slides:



Advertisements
Ähnliche Präsentationen
Aktuelles: FAZ-Artikel, „Internet-Nutzerschaft wächst rasant"
Advertisements

Integrations- und Funktionstests im Rahmen des V-Modelles
PC-Kauf im IV. Quartal 1998 Dipl.-Ing. Jörg Dannenberg
Vorgehensmodell - Wasserfallmodell
Prof. Dr. Liggesmeyer, 1 Software Engineering: Dependability Prof. Dr.-Ing. Peter Liggesmeyer.
Software Ergonomie von Dennis Gloth SK03.
Modellbasierte Software-Entwicklung eingebetteter Systeme
Modellbasierte Software-Entwicklung eingebetteter Systeme
Vom Steinzeitmonitor bis
Anmerkungen zu XML Im September 2000 Entwicklung/Anspruch von XML
Proseminar “Software Pioneers” (Prof. Dr. Heike Wehrheim)
Systemanalyse In der Systemanalyse wird aus den fachspezifischen Anforderungen das Systemmodell erstellt; im Systemmodell ist spezifiziert, was das System.
Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt.
Dynamische Programmierung (2) Matrixkettenprodukt
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
WS Algorithmentheorie 08 – Dynamische Programmierung (2) Matrixkettenprodukt Prof. Dr. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 2 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Gliederung der Vorlesung Software Engineering WS 2001/2002
Symbolisches Model Checking mit Binary Decision Diagrams
Lokale und globale Netzwerke
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Vortrag 11: Reengineering - Refactoring
Ergänzung zur Bedeutung von SW-Engineering
Software-Engineering
Prof. Dr. Bernhard Wasmayr
Fachbereich Maschinenbau und Produktion
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Betriebliche Informationssysteme Prof. Dr. Michael Löwe
Mehr Qualität und schnellere Marktreife durch effiziente Softwaretests
Algorithmen beschreiben
Visualisierung funktionaler Programme
Software Engineering WS 2009
Das Wasserfallmodell - Überblick
 „Software-Krise“ (Ende der sechziger Jahre)
Einführung in die Lehrveranstaltungen Numerische Mathematik A und Numerische Mathematik B von Univ.-Doz. Dr. Othmar Koch.
Rechnen im Binärsystem
Steuerung externer Komponenten über ein USB-Interface.
Fachhochschule Wels Mechatronik Wirtschaft - MEWI  FH Campus Wels Einführung in die Informatik Fernlehre: Ingenieurtechnische Anwendungen der Tabellenkalkulation.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme LE 3.1 ProzessqualitätLM 1 Fehler und ihre KostenFolie 1 Eigenschaften von Software.
Softwareunterstützung bei der Analyse von Weiterbildungsbedarfen
COMPUTER AIDED MANUFACTURING
Computational Thinking Suchen und Sortieren [Ordnung muss sein…]
Beispiel Getränkeautomat
Telecooperation/RBG Technische Universität Darmstadt Copyrighted material; for TUD student use only Grundlagen der Informatik I Thema 16: Ausnahmebehandlung.
Einführung in die Programmierung
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Definitionen der SWT (1)
Software-Technik „Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden und Werkzeugen für die arbeitsteilige, ingenieurmäßige.
Paradigmenwechsel in der Unternehmensmodellierung Prof. Dr. Wolfgang Voigt Dipl.-Ing. Päd. Alexander Huwaldt UML Extrakt UML Seminar, Chemnitz
Kopfrechnen Geometrie Gleichungen Prozente Vermischtes
Algorithmen und Datenstrukturen Übungsmodul 3
Version X des Programms: Datenaustausch-Probleme % ( ) (WIRBEL-BASISTEIL GR. 52) N1G29X150Y85I150J25 N2G0X150Y25 Version Y des Programms:
Programmieren ... in C++ Prof. Dr.-Ing. Franz-Josef Behr, HfT Stuttgart Programmeiren I.
© &.com Part Average Analysis PAA Rev. 2.0 / Grundlage der Methodik P AA.
Software Engineering Grundlagen
Joachim Röhl Vorschlag für ein alternatives Ausstattungs- konzept für einen DV-Raum.
Kanin-Hop Schiedsrichterweiterbildung Ausfüllen der Wettbewerbsergebnisse in den Startbüchern.
Algebraische Optimierung (1)
Software Engineering Struktogramme
Agenda für heute, 21. April, 2005 Interaktion mit Pascal-ProgrammenInteraktion mit Pascal-Programmen Dateneingabe Programmsteuerung Debugging Datentypen:
Computer Algebra für Brüche --- angepasst an Ausbildungszwecke
WINDOWS 2003 Server. Standart Varianten für 32 Bit: Web Edition: Unterstützt Single(1)- oder Dual(2)-Prozessor-Systeme und bis zu 2 GB RAM 32-Bit Standard.
Katastrophen der Informatik
Roboter programmieren
Software-Entwicklung

Kontrollstrukturen von Algorithmen
Durchschnitt (verbal)
 Präsentation transkript:

Viele Köche verderben den Brei Softwaretechnik Bürgerkolleg 2000 Hochschule Anhalt (FH) Fachbereich Informatik Prof. Dr. Michael Worzyk Synonyme für Softwaretechnik: Softwareentwicklung, Softwareengineering

Agenda Programmfehler Komplexität von Software Besonderheit von Software Werkzeuge Methoden Ist Software ein normales Technikprodukt wie z.B.: ein Auto, eine Brücke, eine Fabrik? Bei der Erstellung von Software ist die Serienfertigung kein Problem. 3/25/2017 7:16 AM Softwaretechnik

Programmfehler Am 4. Juni 1996 startete die ESA eine unbemannte Rakete mit vier Satelliten an Bord von Französisch Guyana aus. 40 Sekunden nach dem Start explodierte die Ariane 5. Verlust ca. 500 Millionen Dollar für Rakete und Satelliten. Entwicklungskosten ca. 7 Milliarden Dollar. European Space Agency Europäische Weltraum Agentur 3/25/2017 7:16 AM Softwaretechnik

Programmfehler Ursache für den Absturz: Der Bordcomputer stürzte 36.7 Sek. nach dem Start ab als er versuchte, den Wert der horizont. Geschwindigkeit von 64 Bit Gleitkommadarstellung in 16 Bit signed Integer umzuwandeln: Die entsprechende Zahl war grösser als 215=32768 und erzeugte einen Overflow. Das Lenksystem brach zusammen und gab die Kontrolle an eine zweite, identische Einheit ab. Selbstzerstörung wurde ausgelöst, da die Triebwerke abzubrechen drohten. Datentyp float Verwendung: reelle Zahlen Wertebereich: etwa -3.4*1038 ... -1.2*10-38; 0.0; etwa+1.2*10-38 ... +3.4*1038 interne Darstellung: halblogarithmisch in vier Byte; Mantisse / Exponent; 6 zählende Dezimalstellen genau Datentyp int Verwendung: ganze Zahlen Wertebereich: -32 768 ... +32 767 (16 bit) -2 147 483 648 ... 2 147 483 647 (32 bit) interne Darstellung: dual; genau Bemerkungen: (1) Die Software stammte von der Ariane 4, aber die Ariane 5 flog schneller! (2) Die Software war für den eigentlichen Flug überflüssig und diente nur den Startvorbereitungen. Um einen möglichen Restart im Falle einer kurzen Unterbrechung des Countdowns zu ermöglichen, blieb das Programm 40 Sek. lang während des Flugs aktiv. (3) Der Backup-Rechner verwendete exakt das gleiche Programm. (4) Die Umwandlung war nicht abgesichert, da man glaubte, dass die Zahl nie so gross sein könnte. 3/25/2017 7:16 AM Softwaretechnik

Programmfehler Pentium Prozessor Divisions-Fehler 1994 Beispiel: x = 4195835.0 y = 3145727.0 z = x - (x/y) * y Bei exakter Rechnung und fehlerfreiem Prozessor: 0 Pentium liefert als Ergebnis: 256 Rückrufaktion: 475 Millionen Dollar Reaktion von INTEL: Der Fehler tritt für einen normalen Benutzer alle 27000 Jahre einmal auf. IBM sagt, der Fehler tritt all 24 Tage auf. 3/25/2017 7:16 AM Softwaretechnik

Programmfehler Ursache: INTEL verwendet einen speziellen und schnellen Divisions-Algorithmus, den Radix-4 SRT Algorithmus: Zwischenergebnisse werden aus einer Tabelle abgelesen. In dieser Tabelle fehlten 4 von 1066 Einträgen. Die Reproduktion von Software ist, wie schon bemerkt, kein Problem. Es werden identische Kopien erzeugt und damit wird auch der Fehler identisch reproduziert. 3/25/2017 7:16 AM Softwaretechnik

Programmfehler Bei der Neueröffnung des Flughafens in Denver sollte ein voll automatisches Gepäcksystem verwendet werden. 300 Computer, Laserscanner,Photozellen, Ethernet-Netzwerk Eröffnung des Flughafens wegen Fehler im Gepäcksystem um 16 Monate verspätet. Zerquetschte, verlorene Koffer usw. Verlust: ca. 3.2 Milliarden Dollar Eisenbahn-Stellwerk Altona 1995 soll altes Stellwerk Altona mit 50 Angestellten ersetzt werden durch INTEL-486 Echt-Zeit-System. Vorteil: Nur noch 10 Personen nötig zum Betrieb. Nach Inbetriebnahme am 13.3.95 Absturz des Rechners. Schliessen des Stellwerks erzeugte Verkehrschaos mit Auswirkungen im gesamten Bundesbahnverkehr. Ursache: Bei starkem Zugverkehr versucht das System einen Kellerspeicher (Stack) mit 4 kBytes im RAM-Speicher anzulegen. Benötigt und vorhanden waren eigentlich nur 3.5 kByte aber nicht 4 kByte. 500 Byte mehr aus 'Sicherheitsgründen'! Auswirkungen: Keine manuelle Ersatzsteuerung möglich! Reparatur durch Hersteller Siemens nach einigen Tagen durch Hinzufügen von 0.5 Mega-Byte. Auch danach noch Behinderungen bis die Angestellten das System beherrschten. 3/25/2017 7:16 AM Softwaretechnik

Programmfehler Teilursache: Zu viele Nachrichten über Ethernet. Sortier-Anweisungen kamen nicht rechtzeitig wegen Überlastung des Netzwerks (LAN). Gesamtproblem zu komplex. http://www.forwiss.tu-muenchen.de/~baumann/bugs.html http://catless.ncl.ac.uk/Risks/ Also, die Software war zu komplex. 3/25/2017 7:16 AM Softwaretechnik

Komplexität von Software Diese Graphik ist von der Firma Siemens, deswegen wird die Komplexität der Telefonvermittlungsanlagen beschrieben. 3/25/2017 7:16 AM Softwaretechnik

Entwicklungsdauer 3/25/2017 7:16 AM Softwaretechnik T e c h n i s P r z l J E t w k u , 8 1 3 5 2 4 6 7 9 Die Einsatzzeit von individuellen Programmen beträgt ca. 10 bis 15 Jahre (Wie das Jahr 2000 Problem gezeigt hat, auch zum Teil erheblich länger). Die Einsatzzeit von Systemsoftware ca. 5 Jahre (Windows hat eine kürzere Einsatzzeit). Die Einsatzzeit von Hardware beträgt ca. 3 Jahre 3/25/2017 7:16 AM Softwaretechnik Q u e l l e n : T R W D o D G E I , e n t n o m m e n a u s S c h a r f 8 8 , S . 6 2

Teamgröße Softwareentwicklung geschieht in Teams Teamgröße 3 bis 50 Personen Projektgröße 36 bis 1500 Personenmonate Umfrage unter deutschen Firmen, die Software für sich oder andere entwickeln (Individualsoftware). 3/25/2017 7:16 AM Softwaretechnik

Nachfrage 3/25/2017 7:16 AM Softwaretechnik Diese Lücke wird versucht, durch zwei Strategien zu füllen: 1.) Einsatz von ungelernten Kräften (= Kräfte ohne formale Qualifikation) 2.) Aufteilen der Arbeit so, dass ungelernte Kräfte die Aufgabe bewältigen können. -> man glaubt, es gehe auch ohne Informatiker. 3/25/2017 7:16 AM Softwaretechnik

Software Software ist ein immaterielles Produkt Software unterliegt keinem Verschleiß Software wird nicht durch physikalische Gesetze begrenzt Software ist i. allg. leichter und schneller änderbar als ein technisches Produkt Software ist schwer zu »vermessen«. Software ist ein immaterielles Produkt: Es gibt nichts zu sehen! Der Fertigstellungsgrad kann nicht oder nur schwer intersubjektiv gemessen werden. Software unterliegt keinem Verschleiß: Wartung besteht nicht aus dem Austauschen von Verschleißteilen, sondern in der Anpassung an die veränderte Umwelt. (z.B.: Anpassen der Abrechnungsprogramme für Krankenhäuser an das Gesundheitsstrukturgesetz. Software wird nicht durch physikalische Gesetze begrenzt: Es können auch keine physikalische Gesetze geprüft werden. Software muß sich nicht stetig verhalten, kleine Änderungen der Eingangsgrößen ziehen nicht immer nur kleine Änderungen der Ausgangsgrößen nach sich. Software ist i. allg. leichter und schneller änderbar als ein technisches Produkt Software ist schwer zu »vermessen«.: Qualität, Umfang, Fehlerrate, Zuverlässigkeit sind schwer zu messen. 3/25/2017 7:16 AM Softwaretechnik

Softwaretechnik Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden, Konzepten, Notationen und Werkzeugen für die arbeitsteilige, ingenieurmäßige Entwicklung und Anwendung von umfangreichen Software-Systemem H. Balzert 3/25/2017 7:16 AM Softwaretechnik

zielorientiert Qualität Quantität + - Projektdauer Kosten Quantität: Menge der Funktionen, die das Programm abdeckt. Qualität: Die Qualität sollte vor Beginn der Entwicklungsarbeiten definiert werden und es sollten messbare Kriterien angegeben werden. Kriterien können sein: Antwortzeit, Ergonomie, Wartbarkeit, Termintreue Projektdauer Kosten 3/25/2017 7:16 AM Softwaretechnik

Werkzeuge Projektmanagement Programme CASE-Tools Computer Aided Software Engineering Programmierumgebungen Testumgebungen CASE-Tools nehmen dem Entwickler Papier und Bleistift ab und unterstützen planvolles und aufeinander aufbauendes Handeln. 3/25/2017 7:16 AM Softwaretechnik

Projektmanagement 3/25/2017 7:16 AM Softwaretechnik Dies ist ein Beispiel für die Aufgaben, die während der Entwicklung eines Programms anfallen. Dabei sind nur die Punkte 9 bis 12 Programmiertätigkeiten. Alles Ander sind Planungsaufgaben. 3/25/2017 7:16 AM Softwaretechnik

CASE-Tools 3/25/2017 7:16 AM Softwaretechnik Software-Entwicklungsprozeß für professionelle Projekte unter Einsatz der Objekttechnologie (SEPP/OT) Objekt Technologie Werkbank (OTW) der Firma OWIS ist ein CASE-Tool. 3/25/2017 7:16 AM Softwaretechnik

Programmierumgebung 3/25/2017 7:16 AM Softwaretechnik Die Programmiersprache C ist unter Qualitätsgesichtspunkten und unter dem Gesichtspunkt der Ergonomie für den Entwickler fragwürdig. Das Schreiben von unübersichtlichem Code ist leicht möglich. Typenkonvertierung ist in der Regel ohne Warnung möglich. Werteprüfungen sind in der Regel ausgeschaltet. 3/25/2017 7:16 AM Softwaretechnik

Notationen Beschreibung eines Sachverhaltes durch Symbole Beispiel: Selektion innerhalb eines Programms Wenn eine Bedingung zutrifft, mach dieses, wenn sie nicht zutrifft, mach jenes 3/25/2017 7:16 AM Softwaretechnik

Programmablaufplan Selektion: 3/25/2017 7:16 AM Softwaretechnik Die obere Grafik: Auswahl zwischen zwei Alternativen, Unten: Auswahl zwischen mehreren Alternativen 3/25/2017 7:16 AM Softwaretechnik

Struktogramm Selektion: Else Bedingung x Then Bedingung x 1 2 3 Konstruktion von außen nach innen. Dadurch können keine beliebig komplexen Programme beschrieben werden.Wenn der Platz zu klein wird, muß auf einem weiteren Blatt eine Beschreibung des Details erfolgen. 3/25/2017 7:16 AM Softwaretechnik

Klassenstruktur 3/25/2017 7:16 AM Softwaretechnik Einsatz dieser Notation in der objektorientierten Programmierung zur Beschreibung von Klassen und dem Zusammenhang zwischen den Klassen. 3/25/2017 7:16 AM Softwaretechnik

Konzepte Modellierung eines definierten Sachverhales Programmablaufplan (DIN 66001) Struktogramm (Nassi-Shneiderman Diagramm) Entity Relation Diagramm Entscheidungstabelle 3/25/2017 7:16 AM Softwaretechnik

Getränkeautomat Groschenröhre = 10 50-Pfg-Röhre = 10 Markröhre = 10 immer Getränkeautomat Groschenröhre < 5 oder 50-Pfg-Röhre < 5 oder Markröhre < 5 ? nein ja Bitte abgezähltes Geld einwerfen Eingeworfenes Geld zählen Kosten = Kosten des ausgewählten Produkts solange bis Eingeworfenes Geld >= Kosten Eingeworfenes Geld zählen Ware auswerfen solange bis Eingeworfenes Geld-Kosten<100 oder Markröhre = 0 1 DM auswerfen Eingeworfenes Geld = eingeworfenes Geld-100 Markröhre = Markröhre - 1 solange bis Eingeworfenes Geld-Kosten<50 oder 50-Pfg-Röhre = 0 Der Kasten „Eingeworfenes Geld zählen“ wird in dieser Darstellung nicht genauer beschrieben. Die genauere Beschreibung erfolgt in einer Detailstudie. 50 Pfg auswerfen Eingeworfenes Geld = eingeworfenes Geld-100 50-Pfg-Röhre = 50-Pfg-Röhre - 1 solange bis Eingeworfenes Geld-Kosten=0 oder Groschenröhre = 0 Groschen auswerfen usw. 3/25/2017 7:16 AM Eingeworfenes Geld in die Röhren sortieren Softwaretechnik

ERD Patientenaufnahme 1 B.Rassmann, G.Tusch 16 Patient Station 4 15 3 2 14 Leistung Aufenthalt 13 Pflegesatz 5 Adresse Sonder rechnungs empfänger 11 8 12 Angehöriger Kostenträger 6 Arzt Informant 9 10 7 Hauptversicherter Arbeitgeber Notfall 3/25/2017 7:16 AM Softwaretechnik

Methoden Vorgehensmodelle Testmethoden Wasserfallmodell V-Modell Objektorientiertes Vorgehen Prototyping Testmethoden Inspektion Blackbox Pfadüberdeckung 3/25/2017 7:16 AM Softwaretechnik

Software Entwicklung Projektmanagement EDV Phasen Projektinitierung Vorstudie Fachkonzept Qualitätssicherung Dokumentation DV-Design Realisierung Aufwände: Vorstudie 10% Fachkonzept 15 - 20% DV-Design 15% Realisierung 25 - 45% Einführung 5 - 15% Gewährleistung 5 - 15% Einführung Gewährleistung 3/25/2017 7:16 AM Softwaretechnik

Wasserfallmodell Anforderungen Design Realisierung Testen Produktion Die Ergebnisse einer Phase werden an die nachfolgende Phase übergeben. Sollten die Ergebnisse fehlerhaft gewesen sein und zu Problemen in der aktuellen Phase führen, werden sie an die darüberliegende Phase zur Überarbeitung zurückgegeben und dort überarbeitet. Je nach der Schwere des Fehlers ist es möglich, dass der Fehler eine weiter Stufe hochgereicht wird und sogar einen Einfluß auf die Anforderderungsphase haben kann. Häufig wird die Übergabe an die vorhergehende Phase unterlassen und es findet dort keine Überarbeitung statt. Das kann zur Folge haben, dass das angeforderte Produkt nicht dem am Ende entwickelten Produkt entspricht. Produktion 3/25/2017 7:16 AM Softwaretechnik

V - Modell Machbarkeitsstudie Produktion Pflichtenheft Einführung Grobkonzept Integrationstest Feinkonzept Modultest Das V-Modell ist das am meisten verbreitete Vorgehensmodell. Es wird unter Anderem auch vom Innenministerium und vom Verteidigungsministerium eingesetzt und Softwarelieferanten müssen sich bei der Entwicklung von Individualsoftware an dieses Modell halten. Die zu realisierende Software wird schrittweise feiner definiert. Das Ergebnis einer jeden Definitionsphase wird an die darunterliegende Phase weitergegeben. Bei der Realisierung wird jede Realisierungsphase gegen die entsprechende Definitionsphase geprüft. Fehler und Änderungen müssen in der jeweiligen Definitionsphase beschrieben werden, damit die durch sie hervorgerufenen Änderungen beim Abgleich von Definition und Realisierung dokumentiert sind. Dieses Vorgehensmodell garantiert eine hohe Übereinstimmung zwischen Anforderung und erstelltem Produkt, setzt aber eine präzise Definition der Anforderungen voraus. Die Frage nach der Vertragserfüllung der Realisierungspartei wird an Hand der Anforderungen entschieden, nicht nach der Funktionsfähigkeit des Programmes. Für die Anwendung diese Vorgehensmodells ist eine genaue Versionsverwaltung notwendig. Es muss jederzeit festgestellt werden können, welche Version einer Anforderung zu welcher Version eines realisierten Programmteils gehört. Realisierung 3/25/2017 7:16 AM Softwaretechnik

Objektorientierte Softwareentwicklung Die objektorientierte Softwareentwicklung folgt einen evolutionären, iterativen Vorgehensmodell. Die Entwicklungsaktivitäten werden in kleine Einheiten gegliedert und die Aktivitäten werden auf unterschiedlichen Detailierungsebenen miteinander verzahnt. Die Entwicklung vom Groben zum Detail erfolgt nicht synchron sondern situativ je nach Priorität und Problemstellung. 3/25/2017 7:16 AM Softwaretechnik

Prototyping exploratives (provokatives) experimentelles evolutionäres Der Einsatz von Prototypen in unterschiedlichen Phasen und mit unterschiedlichen Zielsetzungen innerhalb einer Softwareentwicklung erfolgen. Das explorative Prototyping wird in der Regel in der Anforderungsanalyse eingesetzt. Es wird eine Schicht des zukünftigen Programmes, in der Regel die Bedienoberfläche, nachgebildet. Mit Hilfe dieser Nachbildung können Anwender und Entwickler die Anforderungen an das zukünftige Programm beschreiben. Häufig kann sich der Anwender kein konkretes Bild von dem zukünftigen Programm machen, er kann aber mit Hilfe eines Protoypen beschreiben, was er nicht haben will (provokatives Prototyping). Wenn die Definition der Anforderungen abgeschlossen ist, wied der Prototyp nicht weiter ausgebaut. Das experimentelle Protoyping wird eingesetzt, um die prinzipielle Realisierungsmöglichkeit mit einer neuen Technik zu erproben. Es werden die Anforderungen, die das zukünftige Programm an die neue Technik stellt, simuliert und mit der neuen Technik getestet. Das evolutionäre Prototyping erstellt einen funktionsfähigen Ausschnitt aus dem zukünftigen Programm. Dieser Ausschnitt wird unter Umständen in mehreren Zyklen um weitere Komponenten erweitert. In jedem Zyklus werden die Erfahrungen der vorhergehenden Zyklen verarbeitet. Es ist auch möglich, bereits realisierte Teile zu überarbeiten. Dieses Vorgehen birgt die Gefahr eines offenen Endes. 3/25/2017 7:16 AM Softwaretechnik

Fehlerkosten 3/25/2017 7:16 AM Softwaretechnik Die Korrektur eines Fehlers, der erst im laufenden Betrieb entdeckt wird, kann 100 mal mehr kosten als die Korrektur des Fehlers während der Programmierung. Die Entdeckung eines Fehlers in der Anforderungsphase ist um den Faktor 10 billiger als die Aufdeckung während der Programmierung. 3/25/2017 7:16 AM Softwaretechnik

Inspektion (Review) Formaler Bewertungsprozess Die Teilnehmer müssen vorbereitet sein Es wird das Produkt geprüft, nicht der Produzent Es wird ein Protokoll erstellt Es gibt eine Erledigungsliste der Korrekturen -> Frühe und umfassende Mängelaufdeckung 3/25/2017 7:16 AM Softwaretechnik

Blackboxtest Es wird das Ein- Ausgabeverhalten des Programms getestet, nicht die interne Struktur Besipiel: Umwandlung Jahrestag -> Datum z.B.: Tag 100 -> 10.April 3/25/2017 7:16 AM Softwaretechnik

Testfälle Sinnvoll: 1, 0, -1, 60 (28. oder 29. Februar), 365, 366, 367 weniger sinnvoll: 2, 3, 100, 101, 102 3/25/2017 7:16 AM Softwaretechnik

Pfadüberdeckung Alle möglichen Verzweigungen des Programms werden betrachtet. Es werden die Testfälle so konstruiert, dass jeder mögliche Pfad durch das Programm durchlaufen wird. Bei umfangreichen Programmen ist es unmöglich, in einer angemessenen Zeit alle möglichen Pfade zu durchlaufen. In diesem Fall wird eine prozentuale Pfadüberdeckung gefordert. An Hand der Anzahl der gefundenen Fehler wird dann abgeschätzt, wie viele Fehler das gesamte Programm enthält. 3/25/2017 7:16 AM Softwaretechnik

Prinzipien Ziel der Softwaretechnik ist es, qualitativ hochwertige Programme in einem vertretbaren Kosten- und Zeitrahmen herzustellen. 3/25/2017 7:16 AM Softwaretechnik