Aufgaben zur Softwareentwicklung ◦ ?

1. Aufgabenstellung des Softwarepraktikums

2. Kriterien der Softwarequalität

3. Ursachen von Softwareänderungen

4. Phasenanteile

5. Beispiel Bibliothek

6. Phasensynonyme

7. Projektgeschichte

8. Zielanalyse

9. Projektplanung

10. Stellen in der Softwareentwicklung

11. Projektmanagement

12. Aufbauorganisation

13. Baumdarstellung

14. Stichprobengrösse in der Systemanalyse

15. Datentypen

16. Logisches Datenflussdiagramm

17. Physisches Datenmodell

18. Mehrfachverwendung

19. Moduleigenschaften

20. Entscheidungsbaum

21. Softwarefehler

22. Fehlerarten

23. Entwurf und Implementation

24. Systematisches Testen

25. Syntax-, Laufzeit- und logische Fehler

####
Aufgabenstellung des Softwarepraktikums

Ziel Ihrer Entwicklungsgruppe ist es, ...

- eine Grobspezifikation in eine lauffähige Anwendung zu überführen. Die Grobspezifikation erhalten Sie zu Beginn des Semesters.
- die Bedienung und Entwicklung der Anwendung zu dokumentieren.

Verfolgen Sie dieses Ziel schrittweise:

1. Klicken Sie im Startmenü CdEUS auf Autorenkomponente von TESTS und gewinnen Sie einen Überblick über deren Bedienung und Entwicklung.
2. Wählen Sie im Inhaltsverzeichnis der Hilfe zu TESTS das Thema Entwicklung und bearbeiten Sie das Curriculum Softwareentwicklung. Es führt Sie unter anderem in die Dokumentation eines Softwareprojekts ein. Wenden Sie das erworbene Wissen auf die Anwendung an, die Sie mit Ihrer Gruppe erstellen.
3. Entwickeln Sie aus der Grobspezifikation eine lauffähige Anwendung. Führen Sie eine integrierte Bedienungs- und Entwicklerhilfe nach Art der Hilfe zu TESTS.

Jede Gruppe nennt dem Betreuer bei Projektbeginn für jedes Phasendokument S2 bis I4 einen Verantwortlichen. Die Bedienungs- und Entwicklungshilfe sollte immer den jeweils aktuellen Entwicklungsstand dokumentieren. Lassen Sie deshalb spätestens drei Tage vor jeder Plenumssitzung Ihre nachgeführte Hilfedatei vom Betreuer auf das Netz stellen (siehe Projektplan des Veranstaltungsmerkblatts). Das Thema HTML Help Workshop führt Sie in die Erstellung einer Hilfedatei ein.

#### Kriterien der Softwarequalität

Je nach Einsatzbereich der Software ist die Rangfolge der Qualitätskriterien unterschiedlich. Ordnen Sie den Einsatzbereichen 1 bis 6 jenes Qualitätskriterium a bis f zu, das nach Ihrer Meinung am wichtigsten ist:

1. On line - Flugbuchung

2. Flugbahnberechnung

3. Textverarbeitung

4. Datenbankverwaltung

5. Systemsoftware für einen PC

6. Lohnabrechnung

1. Laufzeiteffizienz

2. Speichereffizienz

3. Zuverlässigkeit

4. Benutzerfreundlichkeit

5. Wartbarkeit

6. Anpassungsfähigkeit

#### Ursachen von Softwareänderungen

Programmsysteme unterliegen nach ihrer Abnahme mehr oder weniger häufigen Änderungen. Empirische Untersuchungen haben folgende Änderungsursachen ergeben:

1. Die benutzenden Fachabteilungen äussern nachträglich Wünsche, die im ersten Anlauf vergessen oder nicht genug berücksichtigt worden sind

2. Entwurfsfehler (Fehler in der Konzeption des Softwaresystems)

3. Programmierfehler (falsche Umsetzung des Entwurfs in den Programmcode)

4. Die Marktlage, insbesondere das Sortiment, ändern

5. Veränderung der Hardware oder Systemsoftware.

Ordnen Sie die Änderungsursachen a bis e nach ihrer Bedeutung.[d a b c e]

#### Phasenanteile

Welche Anteile an der Entwicklung eines Softwaresystems beanspruchen die Phasen Definition, Implementation, Testen?

1. 10%, 80%, 10%

2. 20%, 40%, 40%

3. 30%, 20%, 50%

#### Beispiel Bibliothek

Phasenschemata unterscheiden sich zum einen durch ihre Granularität (der Anzahl Phasen) und zum andern durch die Phasenbezeichnungen. Die Phasen a bis i unterscheiden sich deshalb von unserem einfachen Phasenschema. Ordnen Sie die Tätigkeiten 1 bis 20 den Projektphasen a bis i zu (Mehrfachzuordnungen möglich):

1. Bildschirmmasken entwerfen

2. Benutzerwünsche ermitteln

3. Testdaten ermitteln

4. Programmiersprache wählen

5. Datenmodell entwickeln

6. Zeitplan erstellen

7. Personal- und Finanzbedarf ermitteln

8. Entscheidungstabellen erstellen

9. Ablaufbäume (Kontrollbäume) zeichnen

10. System an Hardware- und Softwareänderungen anpassen

11. Datenflusspläne zeichnen

12. Debugger einsetzen

13. Abwicklungs- und Pflegeaufwand erfassen

14. Benutzer schulen

15. Moduldefinitionen erstellen

16. Modulbibliotheken anlegen

17. Hardware auswählen

18. Projektauswertung

19. Benutzerdokumentation

20. Prototypen entwickeln

1. Istanalyse

2. Zielanalyse

3. Grobkonzept

4. Durchführbarkeitsstudie

5. Detailkonzept (Was?)

6. Entwurf (Wie?)

7. Programmierung

8. Überprüfung

9. Installation

#### Phasensynonyme

Ordnen Sie den den Phasenbezeichnern 1 bis 9 die passenden Bezeichnungen a bis l zu (Die Bezeichnungen sind nur zum Teil synonym):

1. Istanalyse

2. Zielanalyse

3. Grobkonzept

4. Durchführbarkeitsstudie

5. Detailkonzept (Was?)

6. Entwurf (Wie?)

7. Programmierung

8. Überprüfung

9. Installation

1. globales Sollkonzept

2. feasibility study

3. Implementierung

4. detailliertes Sollkonzept

5. Spezifikation

6. Wartung

7. Modularisierung

8. Testen

9. Problemanalyse

10. Schwachstellenanalyse

11. Anforderungskatalog

12. Modulentwurf

#### Projektgeschichte

Welchen Vorteil bietet die Aufzeichnung einer Projektgeschichte?

1. Information für zukünftige Projekte

2. Entscheidungsgrundlage für den künftigen Einsatz der Projektmitarbeiter

3. Hilfe bei der Fehlersuche beim Einsatz der produzierten Software

#### Zielanalyse

Die Zielanalyse für ein Softwareprojekt besteht aus den Tätigkeiten

- Ziele sammeln

- Ziele hierarchisieren

- Ziele verbinden (Abhängigkeiten identifizieren)

Identifizieren Sie Abhängigkeiten zwischen den folgenden Kriterien der Softwarequalität:

- Brauchbarkeit

- Zuverlässigkeit

- Benutzerfreundlichkeit

- Portabilität

- Effizienz

- Wartbarkeit

- Verständlichkeit

- Testbarkeit

- Änderbarkeit

#### Projektplanung

Komplexe Abläufe können durch Netzplanverfahren so geplant, koordiniert und kontrolliert werden, dass ein Endziel termingerecht und wirtschaftlich erreicht werden kann. Ein verbreitetes Verfahren ist CPM (Critical Path Method). Die folgenden Schritte führen zu einem CPM-Netzplan (Vollziehen Sie die Schritte 2 bis 7 selbst, indem Sie das Beispiel in Schritt 1 weiterentwickeln):

1. Stelle eine Liste der Projekttätigkeiten zusammen. Jede Tätigkeit hat folgende Eigenschaften: Zeitschätzung, vorausgesetzte (vorangehende) Tätigkeiten (Abhängigkeiten), gebundene Kapazitäten.

> Tätigkeit | Woche | Vorangehende Tätigkeiten | Benötigte Analytiker | Kapazität Programmierer | Kapazität Hilfskräfte
> A Grobkonzept | 3 | - | 3 | - | -
> B Hardware abwarten | 10 | A | - | - | -
> C Dateien erzeugen | 5 | A | 1 | - | 2
> D Programmentwurf | 4 | A | 2 | - | -
> E Codieren | 8 | D | - | 3 | -
> F Überprüfung | 2 | B, C, E | 2 | 2 | -
> G Hardware installieren | 1 | B | - | - | -
> H Personal schulen | 6 | A | 2 | - | -
> I Installation/Abnahme | 2 | F, G, H | 1 | 1 | 2

2. Zeichnen Sie einen Netzplan nach folgenden Regeln: Eine Kante (Pfeil) stellt den zeitlichen Ablauf einer Tätigkeit dar. Knoten (Kreise) begrenzen die Kanten und stellen Ereignisse dar. Eine Tätigkeit darf erst beginnen, wenn alle vorausgesetzten Tätigkeiten abgeschlossen sind.

3. Bezeichnen Sie jede Kante mit dem Namen und der Dauer der Tätigkeit.

4. Trage Sie in jeden Knoten den frühestmöglichen und den spätestmöglichen Termin des Ereignisses ein.

5. Bestimmen Sie den (zeit)kritischen Pfad, d.h. den Pfad, dessen Tätigkeiten zusammen am längsten dauern.

6. Berechnen Sie für alle Tätigkeiten den frühester Starttermin, den frühesten Endtermin, den spätesten Endtermin und den spätesten Starttermin.

7. Zeichnen Sie für jede Ressource (z.B. Personal, Geld) ein Histogramm (Balkendiagramm), welches die benötigten Kapazitäten pro Periode anzeigt.[Clifton 282]

#### Stellen in der Softwareentwicklung

Zur Aufbauorganisation einer EDV-Abteilung gehört die Zuweisung von Aufgaben an Stellen. Ordnen Sie den Stellen 1 bis 8 die Aufgaben a bis l zu:[Hansen 196]

1. Systemorganisator

2. Systemanalytiker

3. Anwendungsprogrammierer

4. Systemprogrammierer

5. Operator/Hilfskraft

6. Datentypist

7. Datenverwalter

8. Datenbankverwalter

1. Entwurf von Anwendungssoftware

2. Bedienung der Hardware

3. Beurteilung von Projektplänen

4. Einführung neuer Softwaresysteme

5. langfristige Planung des Informationssystems der Unternehmung

6. Dokumentation neuer Softwaresysteme

7. Entwurf und Pflege des Datenmodells der Unternehmung

8. Beratung bei der Verwendung des Betriebssystems

9. Übertragung der Daten von Originalbelegen auf maschinenlesbare

10. Datenträger

11. Implementierung neuer Standardsoftware auf dem Rechner

12. Einrichten und Pflegen der Datenbank.

#### Projektmanagement

Eine empirische Studie hat die dringlichsten Mangagementprobleme der Softwareentwicklung erhoben. Welche Probleme schätzen Sie als dringlich, welche als weniger dringlich ein?[Balzert 457]

1. Organisationsmodell (Linie/Stab, Matrix, Projekt)

2. Anforderungsdefinition (Produkteigenschaften eindeutig festlegen)

3. Projektplanung

4. Budgetkontrolle

5. Lieferzeit

6. Wahl der Führungstechniken

7. Auswahl des Projektmanagers

8. Wahl der geeigneten Entwurfsmethoden

9. Kontrolle der Produktgüte

#### Aufbauorganisation

Die Makroorganisation (den Arbeitsgruppen übergeordnete Organisationsstruktur) von EDV-Abteilungen und -projekten lässt sich nach den drei aus der Betriebswirtschaftslehre bekannten Organisationsmodellen (Stab/Linienorganisation, Matrixorganisation und Projektorganisation) gestalten. Ordnen Sie die folgenden Aussagen den drei Organisationsmodellen zu:[M S S/M P S P S M]

1. Eignung für die Kombination von Routinearbeit und innovativer Arbeit

2. klarer Weisungs- und Berichtsweg

3. Ein Mitarbeiter kann in verschiedenen Projekten tätig sein.

4. Eignung für innovative Aufgaben

5. Eignung für Softwarehäuser und grössere Unternehmungen

6. Trennung von fachlicher und wirtschaftlicher Überwachung

7. Jeder kennt nur noch Teile des Endprodukts.

8. Gefahr von Kompetenzkonflikten

#### Baumdarstellung

Baumhierarchien können graphisch oder durch Ein- und Ausrücken von Text dargestellt werden. Führen Sie die folgende graphische Darstellung in eine äquivalente Textdarstellung über:

#### Stichprobengrösse in der Systemanalyse

Ein Systemanalytiker benötigt für den Entwurf eines Auftragsabwicklungs-Systems die durchschnittliche Anzahl der Aufträge pro Tag. Aus Aufwandsgründen verzichtet er auf eine Vollerhebung. Trotzdem möchte er mit einer Wahrscheinlichkeit von 95% sicher sein, dass das arithmetische Mittel der Stichprobe um höchstens 5 vom Durchschnitt der Grundgesamtheit abweicht.
Die folgenden zufällig gezogenen Auftragsdaten liegen bereits vor. Wieviele zusätzliche Daten muss der Systemanalytiker sammeln, damit er sein Ziel erfüllt?

153, 132, 180, 173, 150, 125, 132, 140, 161, 152, 170, 144

Lösungshinweis
Wenn man annimmt, dass sich die Stichprobenmittel bei einer sehr grossen Anzahl von Stichproben normal verteilen, so ist die Aufgabenlösung ein Beispiel für die Bestimmung des Stichprobenumfangs bei gegebenem Konfidenzintervall. siehe z.B. Kreyszig 3. Aufl. S.184ff

#### Datentypen

Die folgende Liste enthält eine Liste von Attributen. Ordnen Sie die Attribute den im Hilfethema Zusammengesetzte Datentypen unterschiedenen Attributstypen zu.

1. Tag, Monat, Jahr

2. Datum

3. Umsatz

4. Fremdsprachenkenntnisse

5. Körpergrösse

6. Zivilstand

7. Vorname

#### Logisches Datenflussdiagramm

Die folgenden Zeilen beschreiben verbal ein Distributionssystem eines Bücherhändlers, der Bestellungen von Privatkunden und Firmen entgegennimmt. Die Beschreibung ist unsystematisch, enthält Information von unterschiedlicher Abstraktionsstufe und vermischt Struktur- und Ablaufinformation. Die Beschreibung könnte zum Beispiel eine Zusammenfassung von Interviews eines Systemanalytikers in der Unternehmung sein.

Lesen Sie die Beschreibung und erstellen Sie ein zusammenfassendes logisches Datenflussdiagramm, das Grundlage einer weiteren Verfeinerung sein kann. Die im folgenden beschriebene Art von Datenflussdiagrammen (auch Datenflussmodelldiagramme) heisst nach ihren Begründern Gane-Sarson-Diagramme. Am einfachsten erstellen Sie die Diagramme mit Softwareunterstützung. Ein Werkzeug, das die Erstellung verschiedenster Arten von Diagrammen unterstützt, ist MS Visio.

01 Bestellungen erreichen uns per Telefon oder Post. Telefonische Bestellungen
02 notieren wir auf ein Formular oder tippen sie direkt am Terminal ein. Bei
03 jeder Bestellung wird geprüft, ob Autor und Titel lesbar und das Buch
04 verfügbar ist. Wenn die Bestellung mangelhaft ist, versucht ein Sachbearbeiter
05 den wirklichen Inhalt der Bestellung zu eruieren. Liegt der Bestellung ein
06 Check bei, so wird der Betrag geprüft. Übersteigt der Unterschied zwischen
07 Soll- und Istbetrag eine bestimmte Toleranz, so wird eine Aufforderung zur
08 Vorauszahlung des Restbetrages verschickt oder ein Kredit eingeräumt. Wenn
09 kein Check beiliegt, überprüfen wir in unserer Kundendatei die Kreditwürdigkeit
10 Ist der Kunde nicht kreditwürdig, senden wir ihm eine Bestätigung
11 der Bestellung und fordern ihn zu einer Vorauszahlung auf. Bestellungen
12 neuer Kunden führen zu einer Fortschreibung der Kundendatei. Wenn sich
13 Bestellungen mit Check oder von kreditwürdigen Kunden ab Lager ausführen
14 lassen, so fügen wir den Büchern einen Lieferschein und eine Rechnung bei.
15 Rechnungen für vorausbezahlte Bücher erhalten den Vermerk "Bezahlt". Falls
16 wir die Bestellung nur teilweise ausführen können, vermerken wir dies
17 sowohl auf dem Lieferschein als auch auf der Rechnung. Zudem merken wir uns
18 den noch nicht ausgeführten Teil der Bestellung in einer Vormerkdatei.
19 Solche Bestellungen werden ausgeführt, sobald wir vom Verleger die
20 entsprechenden Bücher erhalten. Bestellungen an Verlagshäuser werden gesammelt,
21 um Mengenrabatte auszunützen. Retouren überprüfen wir auf Beschädigungen,
22 stornieren den Kredit oder erstatten die Vorauszahlung zurück. Bücher, die
23 wir nicht im Lager führen, senden wir wenn möglich an den Verleger zurück.
24 Lieferungen von Verlegern werden mit den Bestellungen verglichen. Eventuellen
25 Unterschieden wird sofort nachgegangen. Die gelieferten Titel vergleichen
26 wir mit den Titeln der Vormerkdatei, damit die hängigen Bestellungen
27 unserer Kunden sofort ausgeführt werden können.
28 Den Sicherheitsbestand für ein Buch, das wir ins Lager aufgenommen haben,
29 ermitteln wir anhand der folgenden Formel: ((Anzahl Bestellungen während
30 der letzten 4 Wch.) / 4) * (Lieferzeit des Verlegers) * 1.5. 1.5 ist der
31 Sicherheitskoeffizient; er kann an dem jeweiligen Titel angepasst werden.
32 Die Bestellmenge ist gleich dem Sicherheitsbestand, multipliziert mit dem
33 Bestellfaktor und aufgerundet auf die Menge des nächsthöheren Rabattsatzes.
34 Der Bestellfaktor ist i.a. 3, kann aber der Situation angepasst werden.
35 Wenn die eingegangene Zahlung eines Kunden nicht genau einem der offenen
36 Posten entspricht, wird die Zahlung zuerst mit den ältesten offenen Posten
37 verrechnet. Wenn ein offener Posten seit mehr als 30 Tagen besteht, erhält
38 der Kunde einen Rechnungsauszug mit allen offenen Posten. Wird eine
39 Rechnung nicht innert 60 Tagen bezahlt, senden wir dem Kunden eine 2 Mahnung,
40 und zwar mit der Unterschrift des Vizedirektors.
41 Kreditorenrechnungen vergleichen wir mit den erhaltenen Lieferungen und
42 tragen die geprüften Zahlen ins Kreditorenkonto ein. Wenn der Skonto die
43 einen vom Management vorgegebenen Zinssatz übersteigt, so wird ein Check
44 auf den letzten Tag der Skontofrist ausgegeben.
45 Unser System soll täglich, wöchentlich und monatlich folgende Berichte
46 erzeugen: ausgegangene Kundenrechnungen, erhaltene Kundenzahlungen, offene
47 Posten nach Verfalldauer, offene Aufträge, Bestellungen bei Lieferanten.
48 Die folgenden Abfragen sollten sofort beantwortet werden können: Verkäufe
49 pro Gebiet, Titel und Verlag, Lieferzeiten eines Verlags, Bücher an Lager,
50 bestellte Bücher mit den erwarteten Lieferterminen, Bearbeitungsstand von
51 Kundenbestellungen.

Beim Entwurf eines logischen Datenflussdiagramms für ein System dieser Komplexität lässt man sich am besten vom folgenden Phasenschema leiten (Begleiten Sie Ihre Antwort mit einem Verweis auf die entsprechende Zeile des Falltexts):

1. Identifizieren Sie die externen Datenlieferanten und -empfänger, d.h. die Schnittstellen an den Grenzen des zu entwerfenden Systems (zum Beispiel die Lieferanten). Am besten verweisen Sie ausserdem auf die entsprechende Textteile.

2. Identifizieren Sie zu jedem Input ins System den externen Lieferanten und zu jedem Output aus dem System den externen Empfänger.

> Nachdem wir die Inputs und ihre Lieferanten sowie die Outputs und ihre Empfänger identifiziert haben, konzentrieren wir uns auf jene Inputs und Outputs, deren Transformation für unser System vorerst wichtig ist. Der dritte Schritt ist deshalb:

1. Eliminiere jene Datenflüsse, welche Ausnahmen oder Fehler behandeln, und fasse logisch zusammengehörende Datenflüsse zusammen.

> Nachdem die Systemgrenzen und die Beziehungen zur Umwelt des Systems festgelegt sind, überlegen wir uns die Transformationen der Inputs in die Outputs im zu entwerfenden System. Die Systemelemente und -beziehungen werden mit Vorteil graphisch dargestellt. Dabei wollen wir keine Implementationsentscheidungen wie physische Speicher- und Verarbeitungsformen vorwegnehmen, sondern nur logische Elemente und Beziehungen darstellen. Die Wahl der graphischen Symbole ist unerheblich, und das Erstellen des Diagramms iterativ (d.h. erfordert bis zum Gelingen mehrere Durchläufe).

1. Erstelle ein Datenflussdiagramm mit folgenden Symbolen:

- Externer Datenverarbeiter: Als Symbol eignet sich zum Beispiel ein Quadrat, in welches der Name des Verarbeiters geschrieben wird.

- Prozess (Aktivität, Funktion): Als Symbol eignet sich zum Beispiel ein Rechteck mit abgerundeten Ecken, in welches eine kurze Beschreibung des Prozesses geschrieben wird.

- Datenfluss zwischen Prozessen bzw. zwischen Prozessen und externen Datenverarbeitern: Als Symbol eignet sich zum Beispiel eine Pfeil, der mit dem Namen des Datenflusses bezeichnet wird.

- Logische Datenspeicher, der - ohne Entscheidung über die Form der Speicherung - angibt, wo die Information aus den Prozessen gespeichert wird: Als Symbol eignet sich zum Beispiel ein offener Behälter.

Im ersten Durchlauf wählt man sich am besten ein Subsystem, das sich leichter darstellen lässt, für unser System zum Beispiel die Bearbeitung der Bestellungen und Vorauszahlungen, und fügt schrittweise weitere Subsysteme hinzu. Das erste Datenflussdiagramm enthält oft Datenflüsse, die sich überschneiden. Die Zahl der Überschneidungen verringert sich, wenn man den gleichen externen Datenverarbeiter und den gleichen logischen Datenspeicher mehrfach zeichnet. Mehrfach gezeichnete Elemente sollten aber entsprechend gekennzeichnet werden (z.B. durch einen Schrägstrich in der unteren Ecke des Kästchens).

#### Physisches Datenmodell

Die Software-Entwicklungsabteilung eines Unternehmens besteht aus mehreren Mitarbeitern, die an verschiedenen Projekten beteiligt sind. Der Abteilungsleiter wird durch zwei Programmpakete unterstützt: PERSONALVERWALTUNG und TERMINKONTROLLE. Die MITARBEITERdatei ist nach Mitarbeiternummern und die PROJEKTDATEI nach Projektnummern aufsteigend sortiert. Zur besseren Kontrolle der Abteilung wird nachträglich eine PROJEKTBESCHREIBUNGsdatei eingerichtet. Ein Satz dieser Datei enthält für jedes Projekt die folgenden Felder: Termine, Projektbeschreibung, Name des Projektleiters, Namen der Projektmitarbeiter. Nach einiger Zeit entsteht zudem das Bedürfnis nach einem Programm, das die Erstellung von Tätigkeitsberichten unterstützt. Dazu wird die Datei TÄTIGKEITSBERICHT erstellt.

1. Welche Probleme entstehen in so gewachsenen Datei"systemen"?

2. Stellen Sie die beschriebenen Daten und Prozesse logisch dar (ohne Berücksichtigung der bestehenden Programme und Dateien, vgl. Logisches Datenflussdiagramm).

3. Stellen Sie die beschriebenen Daten und Prozesse physisch dar.

#### Mehrfachverwendung

Suchen Sie nach Beispielen mehrfach verwendbarer Moduln (Denken Sie an Bereiche wie Textverarbeitung, Rechnungswesen, Statistische Analyse).

#### Moduleigenschaften

Untersuchen Sie, welche der folgenden Moduleigenschaften die Ihnen bekannten programmiersprachlichen Konzepte zur Tätigkeitsabstraktion (Prozeduren, Funktionen, VBA-Module) erfüllen:

1. Abstraktion

2. Mehrfachverwendung

3. Information hiding

4. Eingabe-/Ausgabe-Schnittstelle

#### Entscheidungsbaum

Erstellen Sie für das folgende Kreditgewährungsproblem einen Entscheidungsbaum (vgl. Baumdarstellung) oder eine andere grafische Darstellung zur Visualisierung von Entscheidungen.
Die Kunden einer Firma unterscheiden sich in folgenden Eigenschaften:

- inländisch/ausländisch

- bekannt/unbekannt

- Unternehmung/Privatperson

- mit Referenz/ohne Referenz.

Kredite werden wie folgt gewährt:

Für inländische und bekannte Unternehmen ist die Kreditlimite 2000.-, für unbekannte Unternehmen im Inland 800.-. Ausländische Unternehmen mit Referenz (ohne Referenz) erhalten einen Kredit von 1400.- (600.-). Inländische Privatkunden erhalten nur einen Kredit (200.-), wenn sie eine Referenz vorweisen. Die Kreditgrenze für ausländische Privatkunden mit Referenz ist 100.-. Ausländische Privatkunden ohne Referenz erhalten keinen Kredit.Clifton 222

#### Softwarefehler

1. Suchen Sie für jeden der in den drei Zeitungsmeldungen beschriebenen Fälle mögliche Ursachen der beschriebenen "Computerpannen".

2. Welches (naive) Verständnis von Computeranwendungen schimmert in Meldungen dieser Art durch?

#### Fehlerarten

Suchen Sie zu den folgenden Fehlerarten Beispiele:

1. Entwurfsfehler

2. Fehler in der Detaillogik

3. blosse Codierfehler

4. Übersetzungsfehler

5. Datenerfassungsfehler

6. Ausführungsfehler

7. Datenbankfehler

#### Entwurf und Implementation

Welchen Aussagen stimmen Sie zu?

1. Auf die Entwurfsphase lassen sich mehr Fehler zurückführen als auf die Implementierungsphase.

2. Das Auffinden von Fehlern der Implementierungsphase beansprucht mehr Zeit als deren Beseitigung.

3. Die Wahl der Programmiersprache ist für den Erfolg eines Projekts von geringer Bedeutung.

#### Systematisches Testen

Suchen Sie nach einer möglichst vollständigen Liste von Testfällen, die ein Programm DREIECK auf Fehler untersucht. Sie verfügen lediglich über den ausführbaren Code des Programms (Der Programmtext liegt also nicht vor).
Das Programm DREIECK verlangt 3 ganze Zahlen als Eingabe, interpretiert sie als Seiten eines Dreiecks und gibt aus, ob das Dreieck ungleichseitig, gleichschenklig oder gleichseitig ist. Beispiel:

>     Geben Sie drei ganze Zahlen ein:

>     1. Dreiecksseite a: 5
>     2. Dreiecksseite b: 5
>     3. Dreiecksseite c: 5

>     Das Dreieck ist g l e i c h s e i t i g .

Achten Sie darauf, dass Sie wirklich a l l e relevanten Testfälle berücksichtigen und dass Sie für jeden Testfall die erwartete Ausgabe angeben. ?[1. Zulässig: ungleichseitig, gleichschenklig für alle Permutationen. (z.B. 5,5,7 7,5,5 5,7,5), gleichseitig, 2. Unzulässig: alle Permutationen (Wenn Summe zweier Eingaben kleiner oder gleich der dritten Eingabe, so lässt sich kein Dreieck aus den Eingaben bilden; Bsp.: 1,2,3 / 2,1,3 / 3,2,1), 3. a oder b oder c sind Null, 6. a oder b oder c sind negativ, a oder b oder c sind nicht ganzzahlig]

#### Syntax-, Laufzeit- und logische Fehler

Der folgende VBA-Code soll das Maximum der eingegebenen Gleitkomma-Zahlen bestimmen. Der Benutzer gebe die folgenden Werte ein: 2, 3.5, 3 und 5,5. Suchen Sie die ...

> 1. Sytaxfehler

> 2. Laufzeitfehler

> 3. logischen Fehler.

>     Dim Eingabe As Integer
>     Dim Maximum As Integer

>     Maximum = 0
>     Do While Eingabe > 0
>       If Eingabe > Maximum Then
>         Maximum = Eingabe
>       End If
>       Eingabe = InputBox("Positive Ganzzahl: ")
>     End While
>     MsgBox("Das Maximum ist " & Maximum)