1 Software Egieerig I Musterlösuge zur Hauptklausur vom 05.08.2000 Aufgabe 1 a) Abb. 1.1 zeigt ei ER-Diagramm, das zur Beatwortug der Afrage i der Aufgabestellug ausreicht: Perso E-Mail-Adresse KotoNr Telefoummer Küstler Name Aschrift Hörer 1 erstellt Ahörvorgag Datum Uhrzeit Küstlerfoto Webseite URL Datum Preis CD-Bestellug 1 ethält m Musikaufahme Teil vo m CD m URL Läge Audiodate URL aktueller Preis Abb. 1.1: Das ER-Diagramm des E-Commerce-Uterehmes
2 Aufgabe 2 a) Da die Etitäte Schulagehöriger, Abituriet ud Lehrer aalog zu Abb. 15.20 im Kurstext ur i ei eiziges Teilsystem Schulagehörige trasformiert werde, besteht die durch die Trasformatio etstehede modulare Architektur aus drei Teilsysteme für Etitäte, drei Teilsysteme für assoziative Beziehuge ud vier Fuktiosmodul zur Verwaltug der vier Beziehuge: AufsichtBez FM BelegugsBez FM Räume Aufsichte Schulagehörige Beleguge Kurse Abiturklausur AbiklausurBez FM uterrichtetbez FM Abb. 2.1: Die durch Trasformatio des ER-Modells etstehede Architektur (1. Versio) b) Bei der zweite Variate gibt es statt des Teilsystems Schulagehörige die Teilsysteme Abituriete ud Lehrer: Belegugs- Abiklausur- Aufsicht- Bez FM Bez FM Bez FM Abituriete Beleguge Kurse Abiturklausur Räume Aufsichte Lehrer uterrichtet- Bez FM Abb. 2.2: Die durch Trasformatio des ER-Modells etstehede Architektur (2. Versio)
3 c) Die erste Variate hat de Vorteil der gerigere Redudaz, de we z.b. vo Schulagehörige zusätzlich och die E-Mail-Adresse gespeichert werde soll, so sid die erforderliche Äderuge auf das Teilsystem Schulagehörige beschräkt. Die zweite Variate hat de Vorteil, dass die ihaltlich stark verschiedee Etitäte Abituriet ud Lehrer auch i der Architektur deutlich separiert sid. Dadurch wird auch wesetlich klarer, mit welche Etitäte die verschiedee Beziehuge verbude sid. I diesem Fall ist die zweite Variate vorzuziehe, da die klarere Architektur de Nachteil der höhere Redudaz überwiegt. We die Etitäte Abituriet ud Lehrer jedoch wesetlich mehr gemeisame Eigeschafte z.b. gemeisam verwedete Type oder Beziehuge zu adere Etitäte besitze würde, oder we es Operatioe gäbe, die auf alle Schulagehörige (Lehrer ud Abituriete) arbeite, da köte der Vorteil der Redudazvermeidug überwiege, was für die erste Variate spräche.
4 Aufgabe 3 (7 + 15 Pukte) a) Die Operatioe des ADO-Moduls Berechtigug uterscheide sich vo de Operatioe des ADT-Moduls Berechtigugsschabloe dadurch, dass der Parameter ZB vom Typ TBerechtigug wegfällt. Statt desse wird ei Modulgedächtis i Form der Variable BerechtigugsschabloeDS verwedet. MODULSPEZIFIKATION ADO Berechtigug; SCHNITTELLENSPEZIFIKATION IMPORTE IMPORTIERE TKotoNr, TKudeID; EXPORTE DATENTYPEN TKotoNr, TKudeID; OPERATIONEN Create, IsFull: BOOLEAN, IsEmpty: BOOLEAN, Eifüge (IN KtoNr : TKotoNr; KID : TKudeID), Etfere (IN KtoNr : TKotoNr; KID : TKudeID), IstBerechtigt (KtoNr : TKotoNr; KID : TKudeID): BOOLEAN, ErsterBerechtigter (IN KtoNr : TKotoNr; OUT KID : TKudeID) : BOOLEAN, NächsterBerechtigter (IN KtoNr : TKotoNr; INOUT KID : TKudeID) : BOOLEAN, ErstesVerfügbaresKoto (IN KID : TKudeID; OUT KtoNr : TKotoNr) : BOOLEAN, NächstesVerfügbaresKoto (IN KID : TKudeID; INOUT KtoNr : TKotoNr) : BOOLEAN; SEMANTIK Die Sematik der Operatioe ka vo de etsprechede Operatioe des ADT-Modul Berechtigugsschabloe übertrage werde. (*********************************************************************************) RUMPFSPEZIFIKATION IMPORTE IMPORTIERE Berechtigugsschabloe; VAR BerechtigugsschabloeDS: Berechtigugsschabloe.TBerechtigugsschabloe; Prozessspezifikatio Create BerechtigugsschabloeDS := Berechtigugsschabloe.Create END Create; Prozessspezifikatio NächstesVerfügbaresKoto Parameter:KID : TKudeID; (* -- IN *) KtoNr : TKotoNr; (* -- INOUT *) RETURN Berechtigugsschabloe.NächstesVerfügbaresKoto (BerechtigugsschabloeDS, KID, KtoNr) END NächstesVerfügbaresKoto; SPEZIFIKATIONSENDE MODUL Berechtigug.
5 b) Die Schittstellespezifikatio etspricht der der Objektliste, jedoch muß bei der Delete- Operatio das zu löschede Objekt als IN-Parameter übergebe werde: MODULSPEZIFIKATION FM Berechtigugsverwaltug;... RUMPFSPEZIFIKATION IMPORTE AUS Kude IMPORTIERE TKudeID, ErsterKude, NächsterKude, DisposeKudeID; AUS Kote IMPORTIERE TKotoNr, ErstesVerfügbaresKoto, DisposeKtoNr; Prozessspezifikatio AzahlKudeOheBerechtigug lokale Variable: KID : TKudeID, KtoNr : TKotoNr, weitersuche : BOOLEAN, KotoVorhade : BOOLEAN, Azahl : CARDINAL; Azahl := 0 weitersuche := ErsterKude(KID) WHILE weitersuche DO KotoVorhade := ErstesVerfügbaresKoto(KID, KtoNr) IF NOT KotoVorhade THEN Azahl := Azahl + 1 ELSE DisposeKtoNr(KtoNr) END DisposeKudeID(KID) weitersuche := NächsterKude(KID) END DisposeKudeID(KID); RETURN Azahl END LöscheKudeOheBerechtigug END MODULSPEZIFIKATION Berechtigugsverwaltug.
6 Aufgabe 4 a) Das aheliegede Kriterium zur Defiitio vo Äquivalezklasse ist (vo der Ausgabe her betrachtet) die Azahl der Nullstelle, bzw. (vo der Eigabe her betrachtet) der Wert der Determiate (p/2) 2 -q (positiv, Null, oder egativ). Demetspreched defiiere wir die folgede drei Äquivalezklasse: b) Klasse 1: (ip/2) 2 -iq > 0 bzw. outazahl = 2 Klasse 2: (ip/2) 2 -iq = 0 bzw. outazahl = 1 Klasse 3: (ip/2) 2 -iq < 0 bzw. outazahl = 0 Klasse 1: Klasse 2: Klasse 3: Eigabe: (ip=20, iq=101) Ausgabe: (outazahl=2, outerstenullstelle=-11, outzweitenullstelle=-9) Eigabe: (ip=20, iq=100) Ausgabe: (outazahl=1, outerstenullstelle=-10, outzweitenullstelle=0) Eigabe: (ip=20, iq=99) Ausgabe: (outazahl=0, outerstenullstelle=0, outzweitenullstelle=0) c) Die gewöhliche Implemetierug der Operatio NullstelleBestimme sieht wie folgt aus: PROCEDURE NullstelleBereche(iP: REAL; iq: REAL; outazahl: CARDINAL; outerstenullstelle: REAL; outzweitenullstelle: REAL); (* berechet die Nullstelle der quadratische Gleichug x^2+px+q=0 i Abhägigkeit vo p ud q. outazahl ethält die Azahl der Nullstelle. outerstenullstelle ethält die erste Nullstelle, falls es mid. eie gibt, sost 0. outzweitenullstelle ethält die zweite Nullstelle, falls es zwei gibt, sost 0. *) VAR Determiate: REAL;
7 BEGIN Determiate = -ip*ip/4.0 - iq; IF Determiate > 0 THEN OutAzahl := 2; OutErsteNullstelle := -ip/2.0 + sqrt(determiate); OutZweiteNullstelle := -ip/2.0 - sqrt(determiate); ELSIF Determiate = 0 THEN OutAzahl := 1; OutErsteNullstelle := -ip/2; OutZweiteNullstelle := 0.0; ELSE OutAzahl := 0; OutErsteNullstelle := 0.0; OutZweiteNullstelle := 0.0; END; Als Kotrollflussgraph ergibt sich etspreched de 3 Falluterscheiduge ei 3-Wege- Kotrollflussgraph wie z.b. der i Abb. 4.1: start 1 iit 2 if1 3 5 the1 if2 4 6 the2 7 the3 8 fial Abb. 4.1: Kotrollfluißgraph der Prozedur NullstelleBestimme d) Die uter b) ermittelte Testdate reiche für Aweisugs- ud Zweigüberdeckug aus, da vo jedem Testdatum jeweils eier der drei mögliche Pfade durchlaufe werde: Eigabe: (ip=20, iq=101) Kotefolge: 1, 2, 3, 5, 6, 7, 8 Eigabe: (ip=20, iq=100) Kotefolge: 1, 2, 3, 4, 6, 7, 8
8 Eigabe: (ip=20, iq=101) Kotefolge: 1, 2, 3, 4, 7, 8 Damit sid sämtliche Kote ud Kate durchlaufe. e) Das Testeigabedatum (ip=20000.0, iq=100000001.0) führt zu eiem Fehler durch Recheugeauigkeit. Rechet ma dezimal mit 8 Stelle Geauigkeit, so ergebe sich folgede Werte: ip = 2.0000000 * 10 5 iq = 1.0000000 * 10 8 (Rudugsfehler) Determiate = 1.0000000.0 * 10 8-1.0000000.0 * 10 8 = 0.0000000 (Folgefehler) outazahl = 1 (falsch) Amerkug: Da Computer i Wirklichkeit biär reche, ka es sogar zu uerwartete Rudugsfehler komme: Da z.b. die Zahl 0.2 im Biärsystem uedlich viele Nachkommastelle hat, etstehe Rudugsfehler, die im Dezimalsystem icht passiere würde. Zur Etdeckug solcher Fehler sid fuktioale Tests ud Kotrollflusstests icht ausreiched.