• Keine Ergebnisse gefunden

Software-Engineering für langlebige Systeme

N/A
N/A
Protected

Academic year: 2022

Aktie "Software-Engineering für langlebige Systeme"

Copied!
15
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Software-Engineering für langlebige Systeme

(2)

2

 HA 3

 Prüfungssimulation II

PA

(3)

HA 4: Aufgab 1 - Apfelsemantik

 Eine Semantik für eine Sprache L ist ein Tupel (D, [[.]]) aus einer semantische Domäne und einer Abbildung [[.]]: L → D, der semantischen Abbildungsfunktion.

 Die semantische Domäne kann ein formaler

Formalismus sein (formale Semantik) oder eine

informale Beschreibung (z.B.

natürliche Sprache)

Sprache L

Semantische Domäne D

(4)

4

HA 3: Aufgabe 1 - Apfelsemantik

 Aufgabe lässt offen, welche Zahlen betrachtet werden.

 Natürliche Zahlen

 Ganze Zahlen

 Bruchzahlen

 Liste wird von unten nach oben immer schwieriger :-)

 Wichtig sind:

 Klarmachen auf welcher Sprache und auf welcher Domäne man arbeitet

 Die Abbildung für die Zahlen und die Operatoren

definieren

(5)

HA 3: Aufgabe 1 – Apfelsemantik – natürliche Zahlen

 Semantische Domäne:

 Mengen von Äpfeln: M, M1, M2, M3

 semantischen Abbildungsfunktion

 Zahlen:

Jeder Zahl I wird eine Menge M von Äpfeln der entsprechenden Mächtigkeit zugeordnet:

i = | M |, je zwei Mengen sind disjunkt

 Operationen:

 [[i1 + i2 ]] = [[i1]] \cup [[i2]]

 [[i1 - i2 ]] = [[i1]] \cap [[i2]]

 [[i1 * i2 ]] = [[(i1 – 1)]] \cup [[i2]] (i1 \neg 10,1)

 [[1 * i2 ]] = [[i2]]

 [[0 * i2 ]] = \emptyset

 [[i1 / i2 ]] = [[1 + (i1 – i2)/i2]]

 [[i1 = i2 ]] = |[[i1]]| = |[[i2]]|

(6)

6

Aufgabe 2:

<project>

<target name="clean">

<delete dir="build" />

</target>

<target name="compile">

<mkdir dir="build/classes" />

<javac srcdir="src" destdir="build/classes" includeantruntime="fasle" />

</target>

<target name="compiletest">

<mkdir dir="build/classes" />

<javac srcdir="test" destdir="build/classes" classpath="/usr/share/java/junit4.jar" includeantruntime="fasle" />

</target>

<target name="jar" depends="compile">

<mkdir dir="build/jar" />

<jar destfile="build/jar/SieveOfEratosthenes.jar" basedir="build/classes">

<manifest>

<attribute name="Main­Class" value="de.tudo.secse.lsys.SieveOfEratosthenes" />

</manifest>

</jar>

</target>

<target name="run" depends="jar">

<java jar="build/jar/SieveOfEratosthenes.jar" fork="true">

<arg value="100" />

</java>

</target>

<target name="test" depends="compile,compiletest">

<junit showoutput="yes">

<sysproperty key="basedir" value="build/classes" />

<test name="de.tudo.secse.lsys.Tester" methods="testPrimesBelow10" />

</junit>

</target>

</project>

(7)

Aufgabe 3:

Vergleich Erfüllt?

Sprachäquivalenz

(= Trace- Refinementäquivalenz) ja

Bisimulation nein

Failure- Refinementäquivalenz nein

(8)

8

Aufgabe 3:

Vergleich Erfüllt?

Sprachäquivalenz

(= Trace- Refinementäquivalenz) ja

Bisimulation ja

Failure- Refinementäquivalenz ja

(9)

Aufgabe 3:

Vergleich Erfüllt?

Sprachäquivalenz

(= Trace- Refinementäquivalenz) ja

Bisimulation ja

(10)

10

Aufgabe 3:

Vergleich Erfüllt?

Sprachäquivalenz

(= Trace- Refinementäquivalenz) ja

Bisimulation nein

Failure- Refinementäquivalenz ja

(11)

Aufgabe 3:

Vergleich Erfüllt?

Sprachäquivalenz

(= Trace- Refinementäquivalenz) nein

Bisimulation nein

Failure- Refinementäquivalenz Nein

(12)

12

Prüfungssimulation

 A – Prüfling

 Fragen beantworten

 B – Prüfer

 Fragen

 Wichtig: Fragen sind Einstiegsfragen.

Immer mindestens eine Nachfrage!

 Nachfragen, evtl. Tips geben

 C – Protokollant

 Fragen (insbesondere Nachfragen) kurz notieren

 Kurz Antwort festhalten und „bewerten“ (Richtig/Falsch)

(13)

Prüfungssimulation

 Was ist ein Transitionssystem?

 Was können Sie über das Hinzufügen von Mitarbeitern in ein Projekt aussagen?

 Erklären sie Evolution formal.

 Was ist eine Graphtransformation? Aus welchen Teilen besteht

Sie?

(14)

14

Prüfungssimulation

 Was ist die Menge der Traces eines Transitionssystem?

 Welche Planungsfehler haben wir in der Vorlesung behandelt?

 Was ist eine Co-Evolution?

 Gibt es Regeln bei der Auswahl von Alternativen in einem

Entscheidungsprozess?

(15)

Prüfungssimulation

 Was ist sind Failures?

 Erklären Sie kurz JNI.

 Was ist der templatebasierte Ansatz bei Transformationen?

 Gibt es Regeln für die Entscheidungsqualität in einem

Entscheidungsprozess?

Referenzen

ÄHNLICHE DOKUMENTE

 Termine werden im Juni bekannt gegeben (mind. drei Termine über die vorlesungsfreie

 &lt;&lt; Bitten Sie ihren Partner eines der genannten Prinzipien genauer zu erklären&gt;&gt;..  Was sind

 Erstellen Sie eine Operation zum Hinzufügen eines Elementes am Anfang der Liste.  Erstellen Sie eine Operation zum Entfernen des

 Native zeigt an, dass die Operation in einem geladenen Shared Object File gesucht werden soll (oder DLL)..  Die Namen werden für das Shared Object

 Bitte melden Sie sich durch Abgabe des leeren Protokolls spätestens zwei Wochen vor der Prüfung bei Frau Joschko an.

 Ein altes Programm muss angepasst werden..

 Patch kann nach Veränderungen der Dateien angewandt werden, solange die Patchstellen unverändert sind.  Whitspaces und Contexte können durch Parameter angepasst

 Wenn eine Stelle geändert wird, müssen viele (weit entfernte) Code-Stellen mit angepasst werden.  Wenn der Code geändert wird, ergeben sich