Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Viele Köche verderben den Brei

Ähnliche Präsentationen


Präsentation zum Thema: "Viele Köche verderben den Brei"—  Präsentation transkript:

1 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

2 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

3 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

4 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* *10-38; 0.0; etwa+1.2* *1038 interne Darstellung: halblogarithmisch in vier Byte; Mantisse / Exponent; 6 zählende Dezimalstellen genau Datentyp int Verwendung: ganze Zahlen Wertebereich: (16 bit) (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

5 Programmfehler Pentium Prozessor Divisions-Fehler 1994 Beispiel:
x = y = 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 Jahre einmal auf. IBM sagt, der Fehler tritt all 24 Tage auf. 3/25/2017 7:16 AM Softwaretechnik

6 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

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

8 Programmfehler Teilursache: Zu viele Nachrichten über Ethernet.
Sortier-Anweisungen kamen nicht rechtzeitig wegen Überlastung des Netzwerks (LAN). Gesamtproblem zu komplex. Also, die Software war zu komplex. 3/25/2017 7:16 AM Softwaretechnik

9 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

10 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

11 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

12 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

13 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

14 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

15 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

16 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

17 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

18 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

19 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

20 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

21 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

22 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

23 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

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

25 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

26 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

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

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

29 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

30 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

31 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

32 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

33 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

34 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

35 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

36 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

37 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

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


Herunterladen ppt "Viele Köche verderben den Brei"

Ähnliche Präsentationen


Google-Anzeigen