From woru at informatik.uni-osnabrueck.de Wed Nov 10 12:06:03 2010 From: woru at informatik.uni-osnabrueck.de (Wolfgang Runte) Date: Wed Nov 10 12:06:06 2010 Subject: [Sq10] Syntaxdiagramme Message-ID: <4CDA7C9B.4080704@informatik.uni-osnabrueck.de> Hallo zusammen, wer für die Bearbeitung der Aufgabe 3.3 zur Wiederholung noch weitere Informationen zu Syntaxdiagrammen benötigt, kann diese auf der Webseite zu Informatik B finden: Ein Beispiel und eine Übersicht sind im Vorlesungsskript, Teil 2 (Kapitel 2 - Grundlagen der Software-Entwicklung), Abschnitt 2.4.4 (Seite 63/64) enthalten: Der Abruf ist nach demselben Schema wie für SQ zugangsgeschützt: User: Student Pass: StudBINF10 Viele Grüße Wolfgang -- Dipl.-Inf. Wolfgang Runte woru@informatik.uni-osnabrueck.de Institut für Informatik +49-541-969-2487 (Fon) Universität Osnabrück +49-541-969-2799 (Fax) Albrechtstraße 28, Raum 31/317 http://www.inf.uos.de/woru D-49069 Osnabrück From dakuenne at uni-osnabrueck.de Sun Nov 14 16:14:11 2010 From: dakuenne at uni-osnabrueck.de (=?utf-8?B?RGFuaWVsIEvDvG5uZQ==?=) Date: Sun Nov 14 16:14:13 2010 Subject: [Sq10] Aufgabe 3 - Syntaxtext Message-ID: <2040.85.8.106.125.1289747651.squirrel@webmail.rz.uni-osnabrueck.de> Hallo Wie ist die Grammatik bei Aufgabe 3 zu verstehen: Ist beispielsweise 'CXXX' ein Terminalsymbol, oder soll das eine Zusammensetzung aus den Terminalen 'C' und 'X' sein? Gruß Daniel From woru at informatik.uni-osnabrueck.de Sun Nov 14 21:09:06 2010 From: woru at informatik.uni-osnabrueck.de (Wolfgang Runte) Date: Sun Nov 14 21:09:12 2010 Subject: [Sq10] Aufgabe 3 - Syntaxtext In-Reply-To: <7898_1289747655_oAEFEDFW011376_2040.85.8.106.125.1289747651.squirrel@webmail.rz.uni-osnabrueck.de> References: <7898_1289747655_oAEFEDFW011376_2040.85.8.106.125.1289747651.squirrel@webmail.rz.uni-osnabrueck.de> Message-ID: <4CE041E2.3090606@informatik.uni-osnabrueck.de> Hallo Daniel, Daniel Künne schrieb: > Wie ist die Grammatik bei Aufgabe 3 zu verstehen: Ist beispielsweise > 'CXXX' ein Terminalsymbol, oder soll das eine Zusammensetzung aus den > Terminalen 'C' und 'X' sein? In der Grammatik kommt "CXXX" als Terminalsymbol nicht vor. Die Zahl 130 würde in römischer Schreibweise durch die beiden Terminalsymbole "C" und "XXX" repräsentiert werden (Hunderter und Zehner Stellen immer separat, jeweils nur ein Terminalsymbol pro Gruppe T, H, Z, E). Die römische Folge "LXXX" (50+3*10=80) aber bspw. soll _ein_ Terminalsymbol sein (keine Zusammensetzung, wie in der Grammatik angegeben; weil ausschließlich aus einem Vielfachem von 10 bestehend), wobei aber natürlich "L" und "XXX" trotzdem auch einzeln als Terminalsymbole existieren (um auch die Zahlen 50 und 30 darstellen zu können). Viele Grüße Wolfgang -- Dipl.-Inf. Wolfgang Runte woru@informatik.uni-osnabrueck.de Institut für Informatik +49-541-969-2487 (Fon) Universität Osnabrück +49-541-969-2799 (Fax) Albrechtstraße 28, Raum 31/317 http://www.inf.uos.de/woru D-49069 Osnabrück From woru at informatik.uni-osnabrueck.de Tue Nov 16 16:35:30 2010 From: woru at informatik.uni-osnabrueck.de (Wolfgang Runte) Date: Tue Nov 16 16:35:33 2010 Subject: [Sq10] Aufgabe 4.1b: =?iso-8859-15?q?Anweisungs=FCberdeckung?= Message-ID: <4CE2A4C2.9000809@informatik.uni-osnabrueck.de> Hallo SQler, hier nochmal einige Hinweise zur Berechnung der Anweisungsüberdeckung in Aufgabe 4.1, wie ich es bereits in den Übungen gesagt habe: * Es müssen die einzelnen Anweisungen gezählt werden, _nicht_ die Knoten im Kontrollflussgraphen. * Vereinfachend dürfen die Anweisungen pro Zeile gezählt werden. Bedingungen z.B. müssen so nicht weiter zerlegt werden. Anweisungen über mehrere Zeilen (z.B. "System.out...") zählen trotzdem nur als eine Anweisung. * Ihr solltet angeben, welche Zeilen bei den Eingaben laut Aufgabenstellung nicht ausgeführt werden, so dass sich im Testat ggf. nachvollziehen lässt, wie Eure Zahlen zustande kommen. * Einheitliche Anweisungszählung konkret (vereinfachend): -> Zählt jeweils als _eine_ Anweisung: - if (...) { - for (...) { - catch (...) { -> Zählt jeweils _nicht_ als Anweisung: - Methodenkopf - Kommentar - else - try - } Auf diese Weise sollten wir alle hoffentlich ähnliche Zahlen herausbekommen. :-) Viele Grüße Wolfgang -- Dipl.-Inf. Wolfgang Runte woru@informatik.uni-osnabrueck.de Institut für Informatik +49-541-969-2487 (Fon) Universität Osnabrück +49-541-969-2799 (Fax) Albrechtstraße 28, Raum 31/317 http://www.inf.uos.de/woru D-49069 Osnabrück From woru at informatik.uni-osnabrueck.de Tue Nov 30 22:59:04 2010 From: woru at informatik.uni-osnabrueck.de (Wolfgang Runte) Date: Tue Nov 30 22:58:49 2010 Subject: [Sq10] Beispiele zum LCSAJ-Test Message-ID: <61629.84.160.106.4.1291154344.squirrel@www.informatik.uni-osnabrueck.de> Hallo SQler, die heute in der Übung gezeigten LCSAJ-Beispiele (aus Liggesmeyer 2002/2009) findet Ihr in dem folgenden Verzeichnis (auch auf der Übungsseite verlinkt): Viele Grüße Wolfgang -- Dipl.-Inf. Wolfgang Runte woru@informatik.uni-osnabrueck.de Institut für Informatik +49-541-969-2487 (Fon) Universität Osnabrück +49-541-969-2799 (Fax) Albrechtstraße 28, Raum 31/317 http://www.inf.uos.de/woru D-49069 Osnabrück From woru at informatik.uni-osnabrueck.de Tue Nov 30 22:59:59 2010 From: woru at informatik.uni-osnabrueck.de (Wolfgang Runte) Date: Tue Nov 30 22:59:42 2010 Subject: [Sq10] =?iso-8859-1?q?McCabe-=DCberdeckung=2C_Elementarpfade?= Message-ID: <61630.84.160.106.4.1291154399.squirrel@www.informatik.uni-osnabrueck.de> Hallo SQler, damit die Vektoren für die McCabe-Überdeckung nicht unnötig lang werden, solltet Ihr den Kontrollflussgraphen möglichst kompakt halten: - sequentielle Anweisungen jeweils zu einem Knoten zusammenfassen - Verzweigungsbedingungen können mit vorhergehenden sequentiellen Anweisungen zusammengefasst werden - Schleifenbedingungen von abweisenden Schleifen müssen allerdings als separater Knoten dargestellt werden ... auf den Start- und den Final-Knoten ("n_start" und "n_final") kann diesmal ebenfalls verzichtet werden. Es macht bei der Berechnung der "zyklomatischen Komplexität" keinen Unterschied, verringert aber den Umfang der Elementarpfade. Ich komme somit auf 10-stellige Vektoren. Zur Erzeugung und Nutzung der Elementarpfade: (1) Zuerst unter Ausklammerung der Schleife vier unabhängige Pfade bilden, die jeweils eine der vier möglichen Kombinationen (zwei "if"-Bedingungen) durchlaufen. (2) Von diesen vier Pfaden muss einer um einen Schleifendurchlauf ergänzt werden (müssten zwei zusätzliche Kanten im Graph sein). (3) Werden für eine Linearkombination mehrere Schleifendurchläufe benötigt, bekommt der entsprechende Elementarpfad, der die Schleife enthält, einen entsprechenden Multiplikator/Koeffizienten verpasst. (4) Wenn insgesamt ein anderer Pfad um die Schleife umzu benötigt wird, muss in der Linearkombination ein passender Elementarpfad (der den jeweils "unerwünschten" (Teil-)Pfad um die Schleife umzu beschreibt) mit einem entsprechenden Koeffizienten abgezogen und im Gegenzug ein anderer Elementarpfad mit positivem Koeffizienten hinzugenommen werden (um den "fehlenden" (Teil-)Pfad ausserhalb der Schleife zu erhalten). (5) Gleiches Vorgehen ("Abziehen" und "Ergänzen" der äußeren Teilpfade), wenn genau der Pfad durchlaufen werden soll, der im Elementarpfad mit der Schleife um die Schleife umzu besteht. In diesem Fall allerdings müssen die Koeffizienten der Elementarpfade mit den "abzuziehenden" (Teil-)Pfaden je nach Anzahl der benötigten Durchläufe entsprechend kleinere Multiplikatoren sein, damit die in diesem Fall "erwünschten" äußeren (Teil-)Pfade bestehen bleiben. Viele Grüße Wolfgang -- Dipl.-Inf. Wolfgang Runte woru@informatik.uni-osnabrueck.de Institut für Informatik +49-541-969-2487 (Fon) Universität Osnabrück +49-541-969-2799 (Fax) Albrechtstraße 28, Raum 31/317 http://www.inf.uos.de/woru D-49069 Osnabrück