380 likes | 469 Views
Viele Köche verderben den Brei. Softwaretechnik. Bürgerkolleg 2000 Hochschule Anhalt (FH) Fachbereich Informatik Prof. Dr. Michael Worzyk. Agenda. Programmfehler Komplexität von Software Besonderheit von Software Werkzeuge Methoden. Programmfehler.
E N D
Viele Köche verderbenden Brei Softwaretechnik Bürgerkolleg 2000 Hochschule Anhalt (FH)Fachbereich Informatik Prof. Dr. Michael Worzyk
Agenda • Programmfehler • Komplexität von Software • Besonderheit von Software • Werkzeuge • Methoden 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. 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. 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 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. 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 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/ Softwaretechnik
Komplexität von Software Softwaretechnik
7 6 , 5 6 5 t i e z 4 , 2 s g n 4 u l k 3 , 5 c i w t n 3 E e r 2 , 3 h a J 2 1 1 0 , 8 0 1 9 7 5 1 9 8 0 1 9 9 0 1 9 7 5 1 9 8 0 1 9 9 0 T e c h n i s c h e P r o g r a m m e K o m m e r z i e l l e P r o g r a m m e Entwicklungsdauer 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 Softwaretechnik
Nachfrage 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«. 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 Softwaretechnik
+ + - - + + - - zielorientiert Qualität Quantität Projektdauer Kosten Softwaretechnik
Werkzeuge Projektmanagement Programme CASE-Tools Computer Aided Software Engineering Programmierumgebungen Testumgebungen Softwaretechnik
Projektmanagement Softwaretechnik
CASE-Tools Softwaretechnik
Programmierumgebung Softwaretechnik
Notationen Beschreibung eines Sachverhaltes durch Symbole Beispiel: Selektion innerhalb eines Programms Wenn eine Bedingung zutrifft, mach dieses, wenn sie nicht zutrifft, mach jenes Softwaretechnik
Programmablaufplan Selektion: Softwaretechnik
Else Bedingung x Then Bedingung x 1 2 3 Struktogramm Selektion: Softwaretechnik
Klassenstruktur Softwaretechnik
Konzepte Modellierung eines definierten Sachverhales • Programmablaufplan (DIN 66001) • Struktogramm (Nassi-Shneiderman Diagramm) • Entity Relation Diagramm • Entscheidungstabelle Softwaretechnik
Groschenröhre = 10 50-Pfg-Röhre = 10 Markröhre = 10 immer Groschenröhre < 5 oder 50-Pfg-Röhre < 5 oder Markröhre < 5 ? nein ja Bitte abgezähltes Geld einwerfen Getränkeautomat 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 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. Eingeworfenes Geld in die Röhren sortieren Softwaretechnik
ERDPatientenaufnahme 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 Kostenträger Angehöriger 6 Arzt Informant 9 10 7 Arbeitgeber Hauptversicherter Notfall Softwaretechnik
Methoden Vorgehensmodelle Wasserfallmodell V-Modell Objektorientiertes Vorgehen Prototyping Testmethoden Inspektion Blackbox Pfadüberdeckung Softwaretechnik
Software Entwicklung Projektmanagement EDV Phasen Projektinitierung Vorstudie Fachkonzept Qualitätssicherung Dokumentation DV-Design Realisierung Einführung Gewährleistung Softwaretechnik
Wasserfallmodell Anforderungen Design Realisierung Testen Produktion Softwaretechnik
V - Modell Machbarkeitsstudie Produktion Pflichtenheft Einführung Grobkonzept Integrationstest Feinkonzept Modultest Realisierung Softwaretechnik
Objektorientierte Softwareentwicklung Softwaretechnik
Prototyping • exploratives (provokatives) • experimentelles • evolutionäres Softwaretechnik
Fehlerkosten 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 Softwaretechnik
Blackboxtest Es wird das Ein- Ausgabeverhalten des Programms getestet, nicht die interne Struktur Besipiel: Umwandlung Jahrestag -> Datum z.B.: Tag 100 -> 10.April Softwaretechnik
Testfälle Sinnvoll: 1, 0, -1, 60 (28. oder 29. Februar), 365, 366, 367 weniger sinnvoll: 2, 3, 100, 101, 102 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. Softwaretechnik
Prinzipien Ziel der Softwaretechnik ist es, qualitativ hochwertige Programme in einem vertretbaren Kosten- und Zeitrahmen herzustellen. Softwaretechnik