Erster Bug: eine Motte



Ähnliche Dokumente
Informatik I Debugging

1 Vom Problem zum Programm

Übungen zu C++ Kapitel 1

fungen Debugging Boris Tripolskij

Zur drittletzten Zeile scrollen

Projektmanagement. Vorlesung von Thomas Patzelt 9. Vorlesung

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

teischl.com Software Design & Services e.u. office@teischl.com

Handbuch zur Installation der Software für die Bürgerkarte

Java: Vererbung. Teil 3: super()

Version 0.3. Installation von MinGW und Eclipse CDT

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

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

esms - sms senden & empfangen mit Outlook

SCHRITT 1: Öffnen des Bildes und Auswahl der Option»Drucken«im Menü»Datei«...2. SCHRITT 2: Angeben des Papierformat im Dialog»Drucklayout«...

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

Rillsoft Project - Installation der Software

Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions

Erfahrungen mit Hartz IV- Empfängern

Problemdefinition. Cash Flow Reminder. 1 Problembeschreibung: 2 Projektziel: 3 Aufgaben des Benutzers

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen

Programmiersprachen und Übersetzer

Beheben von verlorenen Verknüpfungen

Das Girokonto: In drei Schritten zum Produktabschluss

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet

Computeria Solothurn

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Vgl. Kapitel 4 aus Systematisches Requirements Engineering, Christoph Ebert

Netzlaufwerke mit WebDAV einbinden

Übung - Datenmigration in Windows 7

SWE1 / Übung 2 ( )

Handbuch zur Installation der Software für die Bürgerkarte

BEO-SANKTIONSPRÜFUNG Eine Einführung zum Thema Sanktionsprüfung und eine Übersicht zur BEO-Lösung.

USB-Driver: Download-Link:

Tutorial: Homogenitätstest

Was meinen die Leute eigentlich mit: Grexit?

Kapitalerhöhung - Verbuchung

Informatik Repetitorium SS Volker Jaedicke

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Überblick. Lineares Suchen

SEMINAR Modifikation für die Nutzung des Community Builders

Spamfilter einrichten

4D Server v12 64-bit Version BETA VERSION

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail:

Erwin Grüner

Securebox. > Anwenderleitfaden.

Das Markenrecht Das Markengesetz schützt Marken und geschäftliche Bezeichnungen gegen Benutzung durch Dritte.

Installation OMNIKEY 3121 USB

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Kurzeinführung Excel2App. Version 1.0.0

Grundlagen. Kapitel 1

Anlegen eines DLRG Accounts

Service & Support. Warum erscheinen andere WinCC- Stationen nicht unter der Netzwerkumgebung am Windows 7 oder Windows Server 2008 PC?

Dokumentation zum Spielserver der Software Challenge

FB Informatik. Fehler. Testplan

Kennwort eines anderen Benutzers zurücksetzen

Übung - Datenmigration in Windows XP

Webalizer HOWTO. Stand:

Anleitung für den Zugriff auf Mitgliederdateien der AG-KiM

WINDOWS 7 (32 o 64 bit)

Gründe für fehlende Vorsorgemaßnahmen gegen Krankheit

Quick Guide Mitglieder

kleines keyword brevier Keywords sind das Salz in der Suppe des Online Marketing Gordian Hense

Was versteht man unter Softwaredokumentation?

Operationalisierbare Qualitätskriterien für die Programmierung mit Erfahrungen aus PRÜ1 und PRÜ2

Arbeiten mit UMLed und Delphi

Übung - Freigabe eines Ordners und Zuordnung eines Netzwerlaufwerks in Windows XP

COMPUTERIA VOM SERIENBRIEFE UND ETIKETTENDRUCK

SmartDispatch DMR-Dispatcher. Bestellablauf. SmartDispatch-Bestellablauf V1.0

Die Post hat eine Umfrage gemacht

Programmierkurs Java

Sin-Funktion vgl. Cos-Funktion

PROFIS Software Lösungen

Windows Server 2008 (R2): Anwendungsplattform

Family Safety (Kinderschutz) einrichten unter Windows 7

Inhaltsverzeichnis. Handbuch zur Installation der Software für die Bürgerkarte

IntelliRestore Seedload und Notfallwiederherstellung

Auktion name adresse pseudonym adresse /bewertungszahl. Gebot. höhe zeitpunkt bieter. initiiert

Methodische Grundlagen des Software Engineering - Übung 9

Programmierkurs: Delphi: Einstieg

PCS-Datenbankanbindung in Betrieb nehmen

Übung - Datensicherung und Wiederherstellung in Windows 7

ecaros2 - Accountmanager

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Stand: Adressnummern ändern Modulbeschreibung

Korrekturen von Hand ausgeführt, per Post oder als Scan an Sie übermittelt.

Einführung in. Logische Schaltungen

Firmware-Update, CAPI Update

Bedingungen. Bedingungen. Bedingungen

Windows 10. Vortrag am Fleckenherbst Bürgertreff Neuhausen.

Übung - Datensicherung und Wiederherstellung in Windows Vista

Funktions-Postfach (Shared Mailbox) in Outlook 2010/2013 einrichten

Nicht über uns ohne uns

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

BEDIENUNGSANLEITUNG. Keybox 9000 Basic Keybox 9000 System Keybox 9000 Expansion KeyWin PC Software Light

Kurzanleitung BKB-E-Banking-Stick

Transkript:

SOFTWAREFEHLER

Der erste Bug Erster Bug: eine Motte Der Begriff Bug (deutsch: Motte) stammt aus dem Jahre 1945, als Ingenieure in einem Schaltrelais eines Computers (Harvard Mark II-System) eine Motte entdeckten. Nach Entfernung des Insekts wurde in das Computer-Logbuch notiert: Erster Fall einer gefundenen Motte.

Absturz der Ariane 5 Ursache: Ein Softwarefehler wurde durch eine Konvertierung einer 64-bit Fließkommazahl in einen 16-bit integer Wert verursacht. Schaden: 1,7 Milliarden DM

8 Tote durch überhöhte Strahlendosis

Arten von Softwarefehlern Syntaxfehler Laufzeitfehler Logische Fehler Designfehler

Syntaxfehler Sind Verstöße gegen die grammatischen Regeln der benutzten Programmiersprache. Ein Syntaxfehler verhindert die Kompilierung des fehlerhaften Programms. Bei Programmiersprachen, die sequentiell interpretiert werden, bricht das Programm an der syntaktisch fehlerhaften Stelle undefiniert ab. Beispiel in Delphi: vor i=1 to 1OO do a=a+1,

Laufzeitfehler alle Arten von Fehlern, die auftreten, während das Programm abgearbeitet wird. Beispiele: Variablen werden Werte zugewiesen, die den Definitionsbereich überschreiten. Treten häufig bei Eingaben, die nicht überprüft werden auf (Unverträglichkeit von Datentypen: String statt Zahl). Wenn Programme unter Betriebssystemen eingesetzt werden, für die sie nicht vorgesehen sind.

Logische Fehler Treten bei einem falschen Ansatz oder falschem Algorithmus auf. Beispiel: Die Inhalte der Variablen a und b sollen getauscht werden: a:=b; b:=a; Was ist daran falsch? Die Summe der ersten 100 Zahlen ist zu bilden: for i:=1 to 100 do; summe:=summe + i;

Designfehler sind Fehler im Grundkonzept, entweder bei der Definition der Anforderungen an die Software, oder bei der Entwicklung des Softwaredesigns, auf dessen Grundlage das Programm entwickelt wird. Beispiel: Ein Programm wird ständig weiterentwickelt. Irgendwann stellt man fest, dass auf Grund einer fehlerhafter Konzeption, Änderungen am Programm sehr aufwändig sind.

Wie können Fehler aufgedeckt werden? Testen, testen, testen Grenzwerte eingeben Dritten testen lassen Schrittweises Durchlaufen

Vermeidung logischer Fehler Vor dem Programmieren Trockentest Struktur des Programms festlegen (Struktogramm etc.) Endlosschleifen vermeiden

Vermeidung von Designfehlern Anforderungen an die Software genau analysieren Mögliche Weiterentwicklungen erahnen

Vermeidung von Laufzeitfehlern Eingabewerte immer überpüfen Lieber größere Definitionsbereiche als zu kleine Abfangen von Fehlern: Überall wo Daten einoder ausgegeben werden muss mit Problemen gerechnet werden.

Fehlerhandling in Delphi 1 Try Anweisung1 Finally Anweisung2 End; Egal was mit Anweisung1 passiert, Anweisung2 wird immer ausgeführt. Wird benutzt, wenn Aufräumarbeiten (z.b. Schließen von Dateien) zwingend erforderlich sind.

Fehlerhandling in Delphi 2 Try Anweisung1 Except Anweisung2 End; Anweisung2 wird nur aufgerufen wenn in Anweisung1 ein Fehler aufgetreten ist.

Beispiel 1 var number, zero : Integer; begin // Division durch Null exception number := -1; Try zero := 0; number := 1 div zero; ShowMessage('number / zero = '+IntToStr(number)); finally if number = -1 then begin ShowMessage('Es wurde kein Wert eingegeben'); number := 0; end; end; end;

Beispiel 2 var number, zero : Integer; begin // Division durch Null Try zero := 0; number := 1 div zero; ShowMessage('number / zero ='+IntToStr(number)); except ShowMessage('Unbekannter Fehler aufgetreten'); end; end;

Fehlervermeidung durch Wiederverwendung geprüften Codes Durch gute Strukturierung und Modularisierung können Objekte/Prozeduren/Funktionen /units wiederverwendet werden Vorsicht: Verwendung fremder Komponenten kann Fehlergefahren erhöhen! Abhängigkeiten werden erzeugt!