CoboCards App FAQ & Wünsche Feedback
Sprache: Deutsch Sprache
Kostenlos registrieren  Login

Hol' Dir diese Lernkarten, lerne & bestehe Prüfungen. Kostenlos! Auch auf iPhone/Android!

E-Mail eingeben: und Kartensatz kostenlos importieren.  
Und Los!
Alle Oberthemen / Informatik / Softwaretechnik

Softwaretechnik 1 (103 Karten)

Sag Danke
1
Kartenlink
0
0. Was ist Softwaretechnik womit beschäftigt sie sich?
Die Softwaretechnik befasst sich mit Entwicklung und Anwendung von Prinzipien, Methoden und Werkzeugen zur Erstellung, zum Betrieb und zur Wartung von großen Softwaresystemen.
2
Kartenlink
0
1. Was sind die Prinzipien der Softwaretechnik?
Eselsbrücke: (A - V - N - Ü / Z - A - L - A)
1. Analogieprinzip: Konventionen, ähnliches ähnlich behandeln.
2. Vollständigkeitsprinzip: Robustheit, alles erfassen!
3. Nachweisbarkeitprinzip: Beweis das Ziel erreicht ist.
4. Überaschungsminimierung: Produkt möglicht nach am Ideal
5. Zerlegungsprinzip: Strukturierung, Flexibilität
6. Abkapselungsprinzip: Wartbarkeit, Flexibilität
7. Abstraktionsprinzip: Redundanzarmut, Wartbarkeit.
8. Lokalitätsprinzip: was zusammengehört ist zusammenzufasse.

9. Prinzip der Trennung der Belange:  in Zusammenhang mit Punkt 8 dinge die nicht zusammengehören sind zu trennen.
3
Kartenlink
0
2. Wie sieht der Softwarelebenslauf aus?
1. Problemstellung
    * Analysieren
2. Studie(Problemanalyse)
    * Durchführbarkeitsstudie: [Sommerville]:
    * Definieren
3. Anforderungsdefinitionsphase
    * Entwerfen und Spezifizieren
4. Architektur und Bausteinspezifikation
    * Implementieren und Integrieren
5. (fertiges) System + Dokumentation
    * Installieren
6. System in Zielumgebung
    * Betreiben und Warten
4
Kartenlink
0
2.1. Wie sieht der Softwarelebenslauf aus (Graphisch)? 
5
Kartenlink
0
3. Welche ist die strategisch wichtigste Phase?
Die Anforderungsdefinitionsphase (Pflichtenheft). Hier werden nach meiner Ansicht die Grundlagen geschaffen, daher sollte man hier solange verharren, bis keine Fragen mehr offen sind.
6
Kartenlink
0
4. Wie schätzen Sie das zeitliche Verhältnis zwischen Entwicklung und Wartung/Pflege?
Der Aufwand zwischen Entwicklung und Wartung/Pflege verteilt sich im Verhältnis zu
7
Kartenlink
0
5. Ist der Softwarelebenslauf schon ein Vorgehensmodell?
Nein
    es handelt sich um ein (logisches)konzeptuelles Modell, das die wesentlichen Aktivitäten erfassen soll.
8
Kartenlink
0
6. Wie würden Sie in der Anforderungsanalyse vorgehen?
   1. Stakeholder definieren,
   2. Gespräche führen,
   3. Dokumente analysieren und
   4. Vorgänge erfassen (z.B. mit Anwendungsfalldiagrammen).
          * In der Anforderungsdefinitionsphase werden
                o Strukturierungstechniken (z.B.Mindmaps),
                o Kreativitätstechniken (z.B. Brainstorming,            Metaplantechnik, CNB, 6-3-5 Methode) und
                o weitere Techniken, wie Interviews etc. verwendet.
9
Kartenlink
0
7. Was sind Anforderungen ? Welche unterschiedlichen Arten von Anforderungen existieren?
   1.  Eine Anforderung ist ein kurzer, klarer, vollständiger Satz, der genau eine Aussage macht.
          * Anforderungen werden zur Erstellung des Pflichtenheftes, zur Entscheidung, was realisiert werden soll und als Checkliste, was bereits realisiert ist, herangezogen. Die Beschreibung der Dienste und Einschränkungen sind die Anforderungen an das System. [Sommerville]
          * Anforderungen legen die qualitativen und quantitativen Eigenschaften aus Sicht des Auftraggebers fest. [Balzert]
   2. Man kann verschiedene Arten von Anforderungen unterscheiden, z. B.
          * funktionale Anforderungen  o welche Leistungen liefert das System?,
          * technische Anforderungen  o welche Hardware-/ Softwareplattform, welche Entwicklungsumgebung wird verwendet?
          * Anforderungen an die Benutzerschnittstelle (trivial).
          * Qualitätsanforderungen
                o Bsp.: nach einem Ausfall in 20 h wieder reaktiviert; Bei einer Abfrage nach 20 ms Antworten.
          * Anforderungen an begleitende Dokumente.
          * Anforderungen an den Entwicklungsprozess.
          * rechtliche/vertragliche Anforderungen.
10
Kartenlink
0
8. Was notiert man noch zusätzlich zu den Anforderungen?
Zusätzlich notiert man noch eine Gewichtung (muss, soll, kann) und eine entsprechende Anforderungsnummer (zwecks traceability)
11
Kartenlink
0
9. Welche Dokumente entstehen bei der Analyse/ Anforderungsdefinition??
Die Dokumente sind

    * Glossar(Terminologie des Anwendungsbereiches),
    * Protokolle und
    * Anforderungslisten (Erklärung siehe Frage 1)
12
Kartenlink
0
10. Was ist ein Glossar?
Ein Glossar
    ist ein lexikonartige Beschreibung der wesentlichen Begriffe des Anwendungsbereichs (z.B. Entitäten, Beziehungen...). Es stellt im Allgemeinen die Grundlage für erste Entwurfsdokumente (Klassendiagramm, Anwendungsfalldiagramm, Datenflussdiagramn) dar.
13
Kartenlink
0
11. Welche Rolle spielen Use-Case Diagramme in der Anforderungsanalyse? Was ist ein Anwendungsfall?
   1.  Mit Use-Case-Diagrammen kann eine grobe Erfassung der vorhandenen Abläufe (Vorgänge) durchgeführt werden.
   2. Jeder Anwendungsfall kapselt dabei genau eine Leistung des Systems ab.
          * Alle Anwendungsfälle zusammen decken die gesamte Funktionalität des Systems ab.
14
Kartenlink
0
12. Was passiert in der Entwurfsphase? Was passiert mit UML-Klassendiagrammen im Entwurf?
    * Entwerfen (d.h. das Konkretisieren eines Bausteins durch weitere Bausteine und deren Beziehungen) ist erfahrungsbasiert.
    * Es existiert keine generelle Entwurfsmethode.
          o Je nach Sicht geht man mit Strukturierter Analyse oder Objektorientiertem Entwurf vor.
          o Man kann verschiedene Architekturstile verwenden, bestehend aus der Angabe einer Architektursicht (Paradigma) und einer Architekturstruktur.
15
Kartenlink
0
13. Erläutern Sie strukturierte und objektorientierte Analyse!
    *  SA erlaubt iterative Topdown-Entwicklung entlang der Funktionalität.
         1. Anforderungen erstellen
         2. Funktionalität in Datenflussdiagramme zergliedern
         3. Prozesse iterativ verfeinern (parallel ER-Diagramme entwickeln)
         4. Nicht verfeinerte Prozesse mit Minispecs spezifieren
    * Bei OOA werden Modelle inkrementell weiterentwickelt.
         1. Anforderungen aufstellen
         2. Erstes Klassendiagramm aufstellen
         3. Anwendungsfälle weiterentwickeln und Verantwortlichkeiten der Klassen herleiten.
         4. Klassendiagramme untersuchen und weiterentwickeln. Dabei Entwurfsmuster berücksichtigen und die Klassenbeschreibung (Attribute, Methoden) konkretisieren.
16
Kartenlink
0
14. Was sind phasenübergreifende / phaseninterne Aktivitäten?
    *  Phasenübergreifende Aktivitäten sind
          o Management (d.h. planen, steuern, überwachen),
          o Qualitätssicherung (d.h. beweisen, testen, inspizieren) und
          o Dokumentation.
    * Phaseninterne Aktivitäten siehe Frage 1.
17
Kartenlink
0
15. Was ist Requirements Engineering?
    *  Requirements Engeneering umfasst das
          o Analysieren
          o d.h. das Verstehen und Erfassen von Problemen und das Abschätzen der Durchführbarkeit und der Erfolgsaussicht eines Projekts,
          o sowie das Definieren
          o d.h. das Feststellen von Anforderungen.

    * Man kann Anforderungen noch weiter strukturieren:
          o Name/Nummer
          o Detaillierungsgrad
          o Text
          o Begründung
          o Abmahnekriterien
          o Historie
18
Kartenlink
0
16. Was sind Stakeholder, welche gibt es, und welche Rollen gibt es?
Stakeholder sind vom Requirements Engineering betroffene Personen, beispielsweise Auftraggeber, Anwender, Benutzer, Hersteller oder Softwareingenieure.

Typische Rollen sind Projektleiter, Systemanalytiker,Anwendungsspezialist,Qualitätsbeauftragter, Softwareergonom, technischer Redakteur.
19
Kartenlink
0
17. Was ist ein Vorgehensmodell?
    *  In einem Vorgehensmodell wird festgelegt, welche Aktivitäten in welcher Reihenfolge von welchen Personen erledigt werden und welche Ergebnisse (Artefakte) dabei entstehen und wie diese in der Qualitätssicherung überprüft werden. Es können anzuwendende Standards, Methoden und Tools festgelegt werden. [Balzert]
    * Vorgehensmodelle sind nützliche Abstraktionen, die benutzt werden können, um verschiedene Ansätze der Softwareentwicklung zu erläutern. [Sommerville]
20
Kartenlink
0
18. Nennen Sie Vorgehensmodelle bei der Softwareentwicklung! Welches Modell bevorzugen Sie?
    *  Phasenmodelle
          o Wasserfallmodell
          o V-Modell
    * Prototypisierungsmodelle
    * Inkrementelle Modelle
          o Spiralmodell
          o Rational Unified Process (RUP)
    * Agile Methoden
          o Extreme Programming (XP)
21
Kartenlink
0
19. Erläutern Sie Extreme Programming (XP)!
Bei XP wird in kleinen Teams (2-10 Personen) und mit ständigem Testen in Paarprogrammierung so entwickelt, dass jederzeit eine lauffähige Konfiguration existiert. XP geht iterativ vor. Die Iterationen werden durch “user stories” vorangetrieben und dauern 3-4Wochen.

Schlagworte sind:
    * Kommunikation (communication) und Einbeziehung von Feedback
    * Einfachheit (simplicity) durch saubere und einfache Softwarestruktur
    * Mut (courage) durch frühe Auslieferung
    * dauerndes Testen und permanente Anpassung
22
Kartenlink
0
20. Welche Phasen hat das V-Modell? Warum malt man es als V? Welche Zusammenhänge bestehen zwischen den Phasen?
Die Abbildung zeigt die Phasen des V-Modells. Die V-Form ergibt sich, wenn man die Grafik so interpretiert, dass der Detaillierungsgrad von oben nach unten zunimmt (Y-Achse) und die Zeit von links nach rechts vergeht (X-Achse). Der rechte Zweig des V-Modells, der auf derselben Ebene liegt wie der linke Teil, validiert diesen.
23
Kartenlink
0
21. Welche Phasen hat das Wasserfallmodell?
24
Kartenlink
0
22. Erläutern Sie Prozessmodelle! (Sind Prozessmodelle auch Vorgehensmodell?)
Vorgehensmodelle beschreiben auf oberster Ebene,welche Aktivitäten wann ausgeführt werden (den Workflow). Code-and-Fix eignet sich lediglich für einfache, klar überschaubare Probleme. Für größere Problemstellungen sind klarere Vorgehensmodelle erforderlich. Ein Prozessmodell beschreibt den organisatorischen Rahmen der Softwareentwicklung (Aktivitäten, Zuständigkeiten, Artefakte). [Balzert]
25
Kartenlink
0
23. Erläutern Sie Phasenmodelle! Wann verwendet man sie? Was ist der Unterschied zu inkrementellen Modellen? Ist der Softwarelebenslauf ein Phasenmodell?
#  Wasserfallmodell und V-Modell sind Phasenmodelle. Phasenmodelle sind Vorgehensmodelle.
# Phasenmodelle eignen sich für überschaubare und gut verstandene Aufgaben.
# Es werden Meilensteine (d.h. definierte Enden von Phasen mit einem überprüfbaren Ergebnis) gesetzt und die vollen Anforderungen erfüllt. Beim inkrementellen Modell liefert man eine einfache Systemversion aus, bewertet diese und passt sie inkrementell den Anforderungen an. Dies bietet die Vorteile der Risikominimierung, Kundeneinbeziehung (Feedback) und Lerneffekt.
# Nein! Es ist ein konzeptuelles (logisches) Modell
26
Kartenlink
0
24. Beschreiben Sie Rational Unified Process (RUP)!
RUP ist ein generisches Vorgehensmodell, das an konkrete Anwendungsumgebungen anpassbar ist, bzgl. Organisation, Anwendungsbereich, Werkzeuge. Schlagworte: * iterativ und inkrementell  * dokumentenorientiert  * anwendungsfallgetrieben  * architekturzentriert
27
Kartenlink
0
25. Welche Dokumente entstehen in welchen Phasen des RUP?
Der RU Prozess verläuft in Zyklen. Jeder Zyklus produziert eine neue Auslieferung (Release). Der Zyklus besteht aus Phasen:
•  Konzeptualisierung (inception): Grundidee und Umfang des Systems, Use Case Diagramme, Anforderungen auf hoher Ebene, erster Projektplan (häufig auch Prototyp)
•  Ausarbeitung (elaboration): Problemanalyse, architektonische Grundlage, verfeinerter Projektplan, Systemanforderungen
•  Konstruktion (construction): Beschreibung aller Anforderungen und Akzeptanzkriterien, implementierte und geteste Software (Beta)
•  Übergang (transition): Entfernung der letzten Bugs, Fertigstellung letzter Funktionen, Produktionssystem Workflows / Disziplinen
28
Kartenlink
0
26. Welche Modellierungsarten / Diagramme / Dialekte / (Teil-)Sprachen gibt es in der UML? 
Insgesamt gibt es in der UML 2.0 13 Diagrammarten. In der Vorlesung (WS 05/06) kennengelernt haben wir die folgenden:

    * Strukturdiagramm
          o Klassendiagramm
          o Objektdiagramm
    * Verhaltensdiagramm
          o Anwendungsfalldiagramm
          o Aktivitätsdiagramm
          o Zustandsdiagramm
          o Interaktionsdiagramm
                + Sequenzdiagramm
29
Kartenlink
0
27. Was sind Metamodelle? Sind Metamodelle sinnvoll? Wozu zeichnet man Metamodelle?
Mit Metamodellen wird ein Diagramm durch ein weiteres Diagramm beschrieben. Die Syntax visueller Sprachen lässt sich beispielsweise mit Klassendiagrammen beschreiben.

    * Metamodelle können den folgenden Zwecken dienen:
          o konzeptuelle Beschreibung einer Sprache
          o Festlegung einer abstrakten Syntax
          o Erstellung einer Repository-Struktur

Metamodelle können für die Umsetzung von CASE-Tools eingesetzt werden und um Diagramme automatisch zu validieren.
30
Kartenlink
0
28. Wie heißen Kontrollflußdiagramme in der UML?
Aktivitätsdiagramme, mit denen man Kontrollfluss und Datenfluss darstellen kann.
31
Kartenlink
0
29. Wie beschreibt man Szenarien?
Szenarien werden immer natürlichsprachlich beschrieben. Sie können zusätzlich durch Sequenzdiagramme, durch Aktivitätsdiagramme, oder durch Zustandsdiagramme beschrieben werden. Ein Szenario ist ein konkreter Fall (Instanz) eines Anwendungsfalles.
32
Kartenlink
0
30. Was halten Sie von der Entscheidung Datenflussdiagramme aus der UML zu entfernen?
In der UML kann Datenfluss bereits durch Aktivitätsdiagramme dargestellt werden. Zusätzlich Datenflussdiagramme in der UML beizubehalten wäre redundant.
33
Kartenlink
0
32. Was sind UML-Klassendiagramme? Was sind ihre Bestandteile? Was ist ihre Semantik bzw. Syntax? Was ist der Unterschied zu ER-Diagrammen?
UML-Klassendiagramme sind eine visuelle, formale Sprache, die es erlaubt, statische Beschreibungen von Objekten und deren Beziehungen zu modellieren.
Bestandteile sind Klassen und Beziehungen.
    * Klassen haben
          o Attribute und
          o Operationen.
    * Beziehungen sind
          o Assoziation,
          o Aggregation,
          o Komposition und
          o Generalisierung
Mit Ausnahme der Generalisierung können zu den Beziehungen Assoziationsnamen, Multiplizitäten und Rollennamen angegeben werden. Klassendiagramme haben im Gegensatz zu ER-Diagrammen ein Verhalten (Operationen).
34
Kartenlink
1
32. Zeichnen Sie ein Metamodell zu Klassendiagrammen!
    * Das Metamodell eines UML-Klassendiagramms beschreibt dessen Syntax.
    * Die Semantik wird mit einem abstrakten Automaten beschrieben (Extension).
    * Die Abbildung unten zeigt ein Metamodell zu Klassendiagrammen.
35
Kartenlink
0
33. Was ist die Extension (Ausprägung) von Klassen? =
Die Menge von Instanzen einer Klasse, die zu einem Zeitpunkt existieren.
36
Kartenlink
0
34. Welche Assoziationen gibt es? Wie werden sie dargestellt?
Beziehungen zwischen Klassen 1.allgemeine Assoziation    *Multiplizitäten [0..1] [0..n] [0..*] [n]  *Leserichtung wird durch gefülltes Dreieck vor oder hinter dem Bezeichners visualisiert    2.Komposition und  3. Aggregation      *als Teil-/ GanzesBeziehungen mit physischer Abhängigkeit im Falle der Komposition                        4.Assoziationsklassen                                *wenn die Assoziation selbst wieder als Klasse definiert wird

37
Kartenlink
0
35. Was ist der genaue Unterschied zwischen Aggregation und Komposition?
    *  Aggregation
          o ist eine Teil-Ganzes-Beziehung
          o Besser wäre die Aggregation mittels Person - Professor zu erklären
    * Komposition
          o ist eine Teil-Ganzes-Beziehung erweitert um eine physische Inklusion, d.h.
          o wird das Ganze gelöscht, werden auch alle Teile gelöscht.
38
Kartenlink
0
36. Erklären Sie Assoziation (Achtung Objektbeziehung!) und Spezialisierung! Zeichnen Sie dazu ein Klassendiagramm! Wie implementiert man die Spezialisierung in Java, C++?
    * Assoziationen stehen für Beziehungen zwischen Objekten, die in der Schema-Ebene aus Bezeichner und Leserichtung bestehen.
    * Die Generalisierung/Spezialisierung ist eine Beziehung zwischen Klassen. * Klasse B wird von Klasse A abgeleitet:
    * C++: classB : public classA
    * Java: classB extends classA
39
Kartenlink
0
37. Erklären Sie Spezialisierung und Generalisierung am Beispiel!
Die allgemeinere Klasse in einem Klassendiagramm nennt man
    * Superklasse (Oberklasse), die speziellere entsprechend
    * Subklasse (Unterklasse)
40
Kartenlink
0
38. Was ist Mehrfachvererbung?
Anmerkungen:
    * Mehrfachvererbung gibt es nicht in Java
    * "Diamond Inheritances" sollten vermieden werden, da es insbesondere bei der Implementierung zu Problemen kommt
          o "Wer erbt von wem was und warum nicht anders herum??"
41
Kartenlink
0
39. Was sind Interfaces?
Abstrakte Klassen, die keine Implementation beinhalten (sondern nur Attribut- und Operationsstrukturen festlegen) bezeichnet man als Interface
42
Kartenlink
0
40. Was ist eine Entscheidungstabelle?
Entscheidungstabelle ist eine visuelle Repräsentation von Regelwerken (Regel = Aktion(en) unter bestimmten Bedingung(en) ausführen)

    * Eine Entscheidungstabelle besteht aus vier Teilbereichen:
         1. Einer Auflistung der zu berücksichtigenden Bedingungen
         2. Einer Auflistung der möglichen Aktionen
         3. Einem Bereich, in dem die möglichen Bedingungskombinationen zusammengestellt sind
         4. Einem Bereich, in dem jeder Bedingungskombination die jeweils durchzuführeden Aktivitäten zugeordnet sind.
    * Vollständigkeit:
          o Eine Entscheidungstabelle ist vollständig, wenn sämtliche möglichen Bedingungskombinationen erfasst sind.
          o Bei  n Bedingungen sind dies Kombinationen.
          o Das bedeutet aber nicht zwangsläufig, dass es Regeln geben muss ( Redundanz)
43
Kartenlink
0
41. Zeichnen sie ein Metamodell zu ET!
44
Kartenlink
0
42.  Wie sieht ein Use-Case Diagramm aus?
45
Kartenlink
0
43. Welche Bestandteile hat ein Use-Case-Diagramm? Ist der Akteur immer ein Mensch?
   1. Use-Case-Diagramme bestehen aus
          * Anwendungsfällen innerhalb einer Systemgrenze,
          * Akteuren,
          * Assoziationen zwischen Akteuren und Anwendungsfällen
          * Beziehungen der Art
                o UseCase A <<extend>> UseCaseB : A wird in einem Sonderfall von B verwendet
                o UseCase A <<include>> UseCaseB : A verwendet B
   2. Ein Akteur beschreibt eine Einheit, die mit dem System interagiert — dies muss also nicht zwangsläufig ein Mensch sein.
46
Kartenlink
0
44. Was sind Anwendungsfälle? Wie wählt man die Bezeichner? Was ist die Linie zwischen Akteur und Use-Case?
1. Ein Anwendungsfall (use case) ist eine Klasse von Abläufen, die eine
    * Funktionalität realisieren und zu beobachtbaren Ergebnissen führen.

2. Bezeichner:
    * Use-Cases sollte man mit der Gerundium-Form (verkaufen) oder eine Substantiv-Verb-Kombination (Verkauf abwickeln) bezeichnen.
    * Akteuere durch Substantive bezeichnet werden

3. Linie:
    * Die Linie steht für Kommunikation (d.h. den Austausch von Signalen und Daten) zwischen Akteur und Use-Case.


47
Kartenlink
0
45. Zeichnen Sie ein Metamodell zu Use-Case!
48
Kartenlink
0
46. Was ist ein Stereotyp?
    *  "Ein Stereotyp klassifiziert Elemente eines UML-Modells. [...] Stereotypen werden in französischen Anführungszeichen (guillements) mit Spitzen nach außen angegeben. [...] Ein Stereotyp kann sinnvoll verwendet werden, um die Zugehörigkeit einer Klasse zu einer bestimmten Entwurfskomponente, z.B. zur GUI-Schicht, zu zeigen." [Balzert]
    * "Über Stereotype lässt sich das Vokabular von UML erweitern Sie erlauben es Ihnen, neu Arten von Bausteinen zu erzeugen, die zwar von bestehenden Bausteinen abgeleitet, aber speziell auf Ihre Problemstellung zugeschnitten sind." [Booch et al.]
    * Beispiele für von der UML vordefinierte Stereotypen sind
          o <<include>> <<extend>> <<interface>> <<use>> <<bind>> <<enumeration>>
49
Kartenlink
0
47. Welche unterschiedlichen Automaten gibt es?
50
Kartenlink
0
48. Was ist ein Mealy-Autoimat?
Ein Mealy-Automat ist ein endlicher Automat (hat ein Endzustand), dessen Ausgabe von seinem Zustand und seiner Eingabe abhängt. Anschaulich bedeutet das, dass jeder Kante im Zustandsdiagramm ein Ausgabewert zugeordnet wird.

Bsp.: Pfeil mit Beschriftung 1/0 von Zustand("state") S0 auf S1 bedeutet : Bei Eingabe von "1" geht man von Zustand S0 in Zustand S1 über und gibt "0" aus Dem Automat gibt man also allgemien ein Wort wie z.b "110011". Beim Anfangszustand (doppelt umrandeter Kreis) wird angefangen. Beendet wird in einem Endzustand oder durch ein Ausgabewort welches anzeigt ob das Ende erreicht ist.
51
Kartenlink
0
49. Was ist ein Moore-Automat?
Ein Moore-Automat ist ein endlicher Automat, welcher deterministisch (eindeutug bestimmter Folgenzustand bei Eingabe eines Zeichens aus Eingabealpabet) oder nichtdeterministisch (mehrere Übergänge möglich) sein kann. Im Gegensatz zum Mealy-Automaten hängt seine Ausgabe ausschließlich von seinem Zustand ab (und nicht zusätzlich von der Eingabe). Beim Erreichen eines Zustandes wird eine Ausgabe erzeugt, welche unabhängig vom Übergang in diesen Zustand ist.

Bsp.: Ein Zustand (Kreis) beinhaltet S0/"s" und eine ausgehende Kante an der "z" steht, die auf den Zustand S1/"t" führt. Trifft man in S0 ein wird "s" ausgegeben, per Eingabe von "z" gelangt man in S1 worauf sofort "t" ausgegeben wird.
52
Kartenlink
0
50. Unterschiede zwischen Mealy vs. Moore?
Der Unterschied zwischen Mealy und Moore besteht darin "wovon" eine Ausgabe abhängt :

    * Mealy : Zustand + Eingabe (S0+"Z" = "A")
    * Moore : Zustand (S0 = "A")
53
Kartenlink
0
51. Zeichnen Sie einen Statechart? Erklären Sie State Charts (detailliert)!
Bei State Charts handelt es sich um Zustandsautomaten, die um die Konzepte
    * Hierarchie (XOR-Blob),
    * Orthogonalität (AND-Blob),
    * Bedingungen (Guards),
    * Broadcast und
    * Gedächtnis (History States) erweitert sind.
54
Kartenlink
0
52. Wo/Wofür werden StateCharts verwendet?
    * State Charts werden zur zustandsorientierten Beschreibung der Dynamik verwendet.
    * Sie werden häufig für reaktive Systeme (wie Telefon, Auto oder Haushaltsgeräte) eingesetzt.
55
Kartenlink
0
53. Was ist der Unterschied zwischen Blobs und atomaren Zuständen? Warum heißt es Blob?
   1. Ein atomarer Zustand besitzt im Gegensatz zu einem Blob keine Unterzustände.
   2. Ein Blob (Klecks) besteht wie ein Klecks (Tropfen) aus mehreren "Atomen" (atomare Zustände)
56
Kartenlink
0
54. Zeichnen Sie ein Metamodell zu einem Statechart!
Metamodell eines State Charts mit Spezialisierung von Akteuren, Transitionen, Startzustand, Bedingungen und Eindeutigem Anfangszustand eines XOR-Blob
57
Kartenlink
0
55. Wie kann man den Zustand (=Konfiguration) beschreiben in dem sich ein State Chart befindet?
Der Konfigurationsraum ist das Kreuzprodukt der Räume der Regionen.
58
Kartenlink
0
56. Was bedeuten beim XOR-Blob die Übergänge an den Kanten?
    *  Eingehende Transition auf den Rand des zusammengesetzten Zustands:
          o Unter-Automat beginnt am Startzustand oder
          o im zuletzt aktiven Zustand, wenn sich ein History State im Automaten befindet.
    * Ausgehende Transition vom Rand des Zustands:
          o Endzustand des Unter-Automaten wurde erreicht oder
          o Automat wird unterbrochen.
59
Kartenlink
0
57. Warum braucht man AND-Blobs? Welche Arten von Parallelität gibt es? Zeichnen Sie ein Beispiel!
   1.  AND-Blobs ermöglichen parallel aktive Zustände.
   2. Es gibt
          * Voneinander abhängige und
          * voneinander unabhängige Zustände.
60
Kartenlink
0
58. Warum braucht man XOR-Blobs?
XOR-Blobs ermöglichen eine hierarchische Verfeinerung und dienen der Strukturierung.
61
Kartenlink
0
59. Wo befinden sich Orthogonalität, Bedingungen und Hierarchie in den Diagrammen?
   1. Orthogonalität in AND-Blobs,
   2. Bedingungen in den Transitionen und
   3. Hierarchie in den Unterzuständen (XOR-Blobs).
62
Kartenlink
0
60. Wie sieht ein Sequenzdiagramm aus? Erklären Sie Sequenzdiagramme (detailliert)!
Interaktionsdiagramme (Synonym zu Sequenzdiagramm) bestehen aus
          o Lebenslinien (die für beliebige Interaktionspartner stehen) und
          o Nachrichten (die für einen Informationsfluß stehen).
  * Die zeitliche Abfolge der Nachrichten steht bei Sequenzdiagrammen im Vordergrund.
  * Mit Sequenzen, Alternativen und Iterationen gibt es die Möglichkeit Kontrollstrukturen in Sequenzdiagramme einzubauen.
Ein Sequenzdiagramm ist eine
    "grafische, zeitbasierte Darstellung mit vertikaler Zeitachse von Botschaften zwischen Objekten und Klassen. Botschaften werden durch horizontale Linien, Objekte und Klassen durch gestrichelte, vertikale Linien repräsentiert." [Balzert]
63
Kartenlink
0
61. Zeichnen Sie ein Metamodell zu Sequenzdiagrammen!
64
Kartenlink
0
62. Wo/Wozu setzt man ein Sequenzdiagramm ein?
Mit Sequenzdiagrammen lassen sich Interaktionen modellieren (d.h. der Austausch von Nachrichten zwischen Objekten).

    * Die UML 2.0 bietet neben Sequenzdiagrammen noch
          o Kommunikationsdiagramme,
          o Timing-Diagramme und
          o Interaktionsübersichtsdiagramme zur Beschreibung von Interaktionen
65
Kartenlink
0
63. Was ist der Bezug zu Use-Case Diagrammen?
Use-Case-Diagramme können durch Szenarios verfeinert werden, die beispielsweise in Form von Sequenzdiagrammen dokumentiert werden. In Sequenzdiagrammen finden sich die Akteure aus den entsprechenden Use-Case-Diagrammen wieder
66
Kartenlink
0
64. Was hat es mit den Pfeilspitzen auf sich?
    *  Ist eine Nachricht asynchron (Aufrufer wartet nicht auf Antwort des Aufgerufenen),
          o besitzt die Linie eine Pfeilspitze in Strichdarstellung.
    * Ist die Nachricht synchron (Aufrufer muss auf Antwort des Aufgerufenen warten bevor er weiter machen kann),
          o weist die Nachricht eine ausgefüllte dreieckige Pfeilspitze auf.
          o Die Ergebnisrückgabe auf eine synchrone Nachricht wird durch einen gestrichelten Pfeil mit einer Pfeilspitze in Strichdarstellung dargestellt.
67
Kartenlink
0
66. Was ist eine (Software-)Architektur?
Eine Architektur ist eine Zerlegung in

    * Bausteine und
    * Beziehung.
68
Kartenlink
0
66. Was ist die Architektursicht?
Eine Architektursicht (Architekturparadigma, Viewpoint) ist charakteristisch durch die Arten der Bausteine und Beziehungen, die zur Beschreibung verwendet werden.
Architektursichten werden durch i. Allg. sehr einfach, grobgranulare Metamodelle charakterisiert
69
Kartenlink
0
67. Was ist die Architekturstruktur ?
Die Architekturstruktur wird durch die Gestalt des zugrundeliegenden TGraphen definiert.

TGraph gerichteter Graph, dessen Knoten und Kanten attributiert und typisiert sein können.
70
Kartenlink
0
68. Was ist ein Architekturstil? Welche Architekturstile gibt es? Nennen / Zeichnen Sie Beispiele!
Ein Architekturstil besteht aus der Angabe einer Architektursicht und einer Architekturstruktur.
    * Architekturstile:
          o Repositorystil (Datenfluss + sternförmig)
          o Pipe-Filter-Stil (Datenfluss + linear)
          o Client-Server-Stil (Benutzungssicht + bipartit)
                + bipartit : Graph, in dem zwei Gruppen von Knoten existieren, innerhalb derer keine Knoten miteinander verbunden sind.
          o Schichtenstil (Aufrufsicht + geschichtet)

71
Kartenlink
0
69. Wie wird eine Architektur beschrieben? Was müssen Sie mit den Bausteinen (Modulen) der Architektur machen?
Eine Architektur wird aus einer Sicht beschrieben, je nachdem welche Bausteins- und Beziehungsarten man unterscheidet (z.B. Klassensicht, Struktursicht, Datenflusssicht). Bausteine werden rekursiv zerlegt. Sie sollten abgekapselt sein, so dass die Umgebung nur über Schnittstellen mit dem Baustein in Beziehung treten kann.
72
Kartenlink
0
70. Was haben Sie in Ihrem Projektpraktikum gemacht?
ja dies ist jedem selbst überlasten
73
Kartenlink
0
71. Nennen Sie ein System, das eine Repository-Struktur besitzt!
Versionsverwaltungssysteme wie SVN oder CVS oder eine integrierte Entwicklungsumgebung (IDE), deren verschiedene Werkzeuge auf einen gemeinsamen Datensatz zugreifen.
74
Kartenlink
0
72. Welche Phase folgt, wenn die Software im Einsatz ist? Wie haben wir Wartung klassifiziert?
   1. Es folgt Betreiben und Warten.
   2. Warten ist das Beheben von Fehlern und das Anpassen, Weiterentwickeln und Verbessern von Produkten nach der Auslieferung.
75
Kartenlink
0
73. Was ist Spezifizieren? Was wird spezifiziert? Welche Arten der Spezifikation kennen Sie? Welche ist die Beste?
Spezifizieren ist das Präzisieren von Anforderungen, die an einen Baustein für dessen Realisierung und dessen Benutzung gestellt werden.
    * Man kann
          o natürlichsprachlich oder
          o formal spezifizieren.
                + Die algebraische und die konstruktive Spezifikation sind zwei Schulen der formalen Spezifikation.

    * Auf breiter Front durchgesetzt hat sich (unter anderem durch den Zeitdruck Software schnell zur Marktreife zu bringen) einzig die natürlichsprachliche Spezifikation.
    * Formale Methoden wurden jedoch erfolgreich bei kritischen Systemen, etwa zur Überwachung des Luftverkehrs, bei Signalsystemen für den Schienenverkehr, Raumfahrtsystemen oder medizinischen Kontrollsystemen eingesetzt. [Sommerville]
76
Kartenlink
0
74. Wie spezifiert man eine Klasse?
    *  Eine Klasse lässt sich
          o natürlichsprachlich oder
          o formal mit Object Z spezifizieren.
    * Dem Konstruktor der Klasse entspricht in Object Z dem initialem Zustandsschema,
    * die Methoden der Klasse werden durch die Operationsschemata festgelegt.
77
Kartenlink
0
75. Wie würden Sie bei der natürlichsprachlichen Spezifikation vorgehen? Welche Tools würden Sie (in Java/C++) einsetzen?
Die Spezifikation eines Bausteins muss in einer disziplinierten Sprache geschrieben sein, so dass sie zusammen mit der Signatur als Implementationsvorlage ausreicht.
   * Zur Spezifikation sind
         1. Signatur (Syntax),
         2. Vorbedingung,
         3. Nachbedingung und
         4. mögliche Ausnahmen (Semantik) erfoderlich.
    * In Java wird die natürlichsprachliche Spezifikation mit dem Werkzeug javadoc verwaltet,
    * unter C++ kann man beispielsweise doxygen einsetzen.
78
Kartenlink
0
76. Worauf muss man achten beim Spezifizieren? Spezifizieren Sie die Wurzelmethode natürlichsprachlich!
            /* \fn real sqrt(real x)
             * \brief A squareroot function
             * \param x a real number.
             * \exception -1 for negative param x
             * \return a real number .
             *
             * Liefert für x größer oder gleich 0 die Quadratwurzel von x.
             * Für x kleiner 0 wird -1 zurückgegeben.
             */
            real sqrt(real x);

Es ist darauf zu achten, dass in der Spezifikation einer Methode alle Bezeichner der Schnittstelle erwähnt werden. Jeder Parameter, das Ergebnis und die Veränderungen am Objekt müssen im Text vorkommen.
79
Kartenlink
0
77. Was sind Vor- und Nachbedingung und wie hängen sie voneinander ab (Definition!)? Wie kann man die Vorbedingung (am Besten) prüfen?
    * Definition:
          o Die Vorbedingung ist ein Prädikat auf den Eingabedaten und dem Vorzustand, das feststellt, wann die Methode ausführbar ist. Die Vorbedingung beschreibt die Menge möglicher Eingabedaten.
          o Die Nachbedingung ist ein Prädikat auf den Eingabedaten, dem Vorzustand, den Ausgabedaten und dem Nachzustand, das die Semantik einer Methode beschreibt. Die Nachbedingung beschreibt eine Relation zwischen Eingabe und Ausgabe.

Ohne Bezug zur Vorbedingung sagt eine Nachbedingung nichts aus.
Beispiel:
Die Nachbedingung = 9 ist aussagelos, aber nicht die Nachbedingung = Wurzel aus der Vorbedingung 81. [27]

Ein optimistisches Vorgehen ist es, dem Aufrufer die Verantwortung zu überlassen die Vorbedingung sicherzustellen. Besser ist die pessimistische Vorgehensweise, bei der eine Methode ihre Vorbedingung selbst prüft und in dem Fall, dass die Vorbedingung nicht erfüllt ist, beispielsweise nichts zu tun oder eine Ausnahme zu werfen.
80
Kartenlink
0
78. Was ist eine Signatur? Wie sieht eine Signatur aus? Welche Unterschiede gibt es zwischen Oberflächen- und Tiefensignatur? Benötigt man die Tiefensignatur für die natürlichsprachliche Spezifikation?
"Unter Signatur einer Methode versteht man ihren internen Namen. Dieser setzt sich aus dem nach außen sichtbaren Namen plus codierter Information über die Reihenfolge und Typen der formalen Parameter zusammen. Die Signaturen zweier gleichnamiger Methoden sind also immer dann unterscheidbar, wenn sie sich wenigstens in einem Parameter voneinander unterscheiden." [Krüger]

    * Die Oberflächensignatur gibt die Schnittstelle wieder.
            float sqrt( float x );

    * Die Tiefensignatur beschreibt zusätzlich die Vor- und Nachbedingung.
            pre-sqrt:  x >= 0
            post-sqrt: result^2 = x
            float      sqrt( float x );

Für eine natürlichsprachliche Spezifikation braucht man zwingend die Tiefensignatur, da man Vor- und Nachbedingungen beschreiben muss, die ja vom internen Vor- und Nachzustand der Klasse abhängen und umgekehrt.
81
Kartenlink
0
79. Wie sieht die Signatur eines Stacks in EML aus? Was sieht in Java an der Signatur anders aus?
Signatur mit EML:
sorts Stack
opns  isEmpty: Stack -> Bool
       push: Stack x Item -> Stack
       pop: Stack -> Stack
       isIn: Stack x Item -> Bool
       extractTop: Stack -> Item x Stack
       delete: Stack -> Stack


Signatur in Java:
class Stack
{
   boolean isEmpty();
   void push(Object x);
   void pop();
   boolean isIn(Object x);
   Object extractTop();
   void delete();
}

82
Kartenlink
0
80. Schätzen Sie algebraische oder konstruktive Spezifikation als mächtiger ein?
konstruktive Spezifikation
    Z bringt viele mathematische Konstrukte bereits mit, die man sich in der algebraischen Spezifikation zuvor noch selbst spezifieren muss. 
83
Kartenlink
0
81. Wie heißt die Klasse aller Klassen in Java?
"Enthält eine Klasse keine extends-Klausel, so besitzt sie die implizite Vaterklasse Object. Jede Klasse, die keine extends-Klausel besitzt, wird direkt aus Object abgeleitet. Jede explizit abgeleitete Klasse stammt am oberen Ende ihrer Vererbungslinie von einer Klasse ohne explizite Vaterklasse ab und ist damit ebenfalls aus Object abgeleitet. Object ist also die Superklasse aller anderen Klassen." [Krüger]
84
Kartenlink
0
82. Ist das Pflichtenheft formal definiert?
Nein
    Das Pflichtenheft ist ein natürlichsprachliches Dokument, das die Anforderungen an das Produkt möglichst genau (aber nicht formal) festhält.
85
Kartenlink
0
83. Was sind in einer Java-Methode int foo (bar: Schlurps, baz: Schnuerpel) Ein und was Ausgaben? Wie kann man in Java sehen, welche Attribute verändert und welche nur gelesen werden?
Objekte werden in Java immer per call-by-reference übergeben. Daher können bar und baz ebenfalls Ausgaben sein. In Java gibt es demnach keine Möglichkeit zu sehen, welche Attribute verändert und welche nur gelesen werden.
86
Kartenlink
0
84. Was ist Object-Z?
    *  Z ist eine Notation für konstruktive Mengenlehre und Prädikatenlogik.
    * Mit Object-Z lässt sich Software formal spezifizieren.
          o Ein Z-Dokument besteht primär aus erklärendem Text
          o und sekundär aus einem formalen Anteil.
87
Kartenlink
0
85. Welche fünf Sprachelemente hat Object-Z? Einige häufig verwendete Symbole (zum Nachschlagen)
Z hat folgende Sprachelemente:
   1. Grundmengendefinitionen (given set definitions)
   2. Freie Typdefinitionen (free type definitions)
   3. Abkürzungsdefinitionen (abbreviation definitions)
   4. Axiomatische Definitionen (axiomatic definitions)
   5. Schemadefinitionen (schema definitions)
88
Kartenlink
0
86. Wann verwendet man eine Z-Spezifikation und was ist die Alternative?
    *  Man verwendet Object-Z zur formalen Spezifikation
          o eine Alternative wär eine natürlichsprachliche Spezifikation

89
Kartenlink
0
87. Wie würden Sie eine Funktion in Z als Operationsschema spezifizieren? Wie würde die Bedingung lauten, wenn die Methode die Wurzel aus x berechnet? Spezifizieren Sie die Wurzelfunktion in Z (auch so, dass das Wurzelzeichen nicht bekannt sein muss)!
  1. Spezifikation
          * Die Oberflächensignatur der Funktion muss im Deklarationsteil des Schemas stehen und
          * die Semantik der Funktion im Bedingungsteil.
   2. Bedingung für eine Wurzel-Funktion
          * Die Bedingung für die Wurzel von x würde lauten, dass x größer oder gleich Null sein muss.
   3. Spezifiaktion der Wurzelfunktion in Z:


|—sqrt ————————
| x? : R
| z! : R
|——————————————
| x? >= 0
| z! ^ 2 = x
|——————————————

90
Kartenlink
0
88. Was ist ein Stack und wie kann man ihn spezifizieren? Spezifizieren Sie den Stack algebraisch / konstruktiv / formal / in Java/C++! Wie kann man die Länge des Stacks begrenzen? Wo findet sich das INIT in der Klassenspezifikation in der programmiersprachlichen Notation der Klasse Stack wieder? Spezifizieren Sie eine Methode, die die Anzahl der Items im Stack ausgibt!
1. Definition Stack
    "Ein Stack ist eine Datenstruktur, die nach dem LIFO-Prinzip (last-in-first-out) arbeitet. Die Elemente werden am vorderen Ende der Liste eingefügt und von dort auch wieder entnommen. Das heißt, die zuletzt eingefügten Elemente werden zuerst entnommen und die zuerst eingefügten zuletzt." [Krüger]
2 Spezifikation algebraisch:
    * die algebraischen Grundlagen stecken in Z
3. Spezifikation konstruktiv/formal
siehe beispiel!
4.  Spezifikation natürlichsprachliche mit Doxygen in C++:
5.  Wo findet sich das INIT wieder
    * In der programmiersprachlichen Notation findet sich das INIT im Konstruktor der Klasse wieder.
6.  Wie kann die Anzahl der Items ausgegeben werden
    * unsigned int size()
      |——————————————
      | i? : N
      | i! = #s
      |——————————————

91
Kartenlink
0
89. Spezifizieren Sie ein Dictionary in Z!
92
Kartenlink
0
90. Spezifieren Sie einen Vektor in Z!
93
Kartenlink
0
91. Wie lassen sich Vor- und Nachbedingungen einer Methode aus einem Z-Schema einer Operation ablesen?
Vor- und Nachbedingung lassen sich aus dem Bedingungsteil des Schemas ablesen.

|—sqrt ————————
| x? : R
| z! : R
|——————————————
| x? >= 0        < Vorbedingung
| z! * z! = x?   <
Nachbedingung
|——————————————
94
Kartenlink
0
92. Wie sehen Oberflächensignatur und Tiefensignatur in einer Z-Spezifikation aus?
    *  Die Oberflächensignatur steht im
          o Deklarationsteil des Operationsschemas.
    * Die Tiefensignatur (Semantik) umfasst zusätzlich den
          o Bedingungsteil des Schemas.
95
Kartenlink
0
93. Was ist Testen? Welche Methoden zur Validierung / zum Testen kennen Sie? Wie ist ein Testfall aufgebaut?
Testen ist das experimentelle Überprüfen eines konkreten Codes in Bezug auf seine funktionale Korrektheit.

   1. Grundsätzliches
          * Dem Testen sollte eine Strategie zugrundeliegen.
          * Zur Durchführung von Test muss man Testfälle
               1. finden,
               2. ausführen und
               3. auswerten.
          * Tests werden für spätere Regressionstests aufbewahrt.
   2. Testmethoden
          * Man kann Testdaten aufgrund der Spezifikation bestimmen (Blackbox-Test) oder
          * aufgrund der Programmstruktur (Glassbox-/Whitebox-Testen).
   3. Testaufbau
          * Eingabedaten (Vorzustände),
          * Ausgabedaten (Nachzustände) und
          * einem Namen.

96
Kartenlink
0
94. Erklären Sie Blackbox-Testen! Welche Testdaten sollen verwendet werden? Wie funktioniert das in der Praxis?
Beim Blackbox-Testen ist die Programmstruktur nicht bekannt, man geht lediglich von der Spezifikation aus.
    * Da man selten über alle Testfälle testen kann, wählt man für das Blackbox-Testen möglichst repräsentative Fälle aus, die
          o Eingabedaten,
          o Funktionalität und
          o Ausgabedaten abdecken.
    * Diese Bereiche werden in Äquivalenzklassen aufgeteilt aus denen man jeweils mehrere Repräsentanten wählt.
    * Neben den repräsentativen Fällen sind zusätzlich viele Randfälle und alle repräsentativen Fehlerfälle zu betrachten.
"Das System ist eine Black Box, deren Verhalten nur durch die Untersuchung ihrer Eingaben und der dazugehörigen Ausgaben festgestellt werden kann. Eine andere Bezeichnung dafür ist funktionales Testen, weil der Tester sich nur mit der Funktionalität und nicht mit der Implementierung einer Software beschäftigt. [...] Die Äquivalenzklassen können mit Hilfe der Programmspezifikation oder der Benutzerdokumentation und unter Verwendung der Erfahrungen des Testers, welche Eingabeklassen wahrscheinlich Fehler aufzeigen, festgelegt werden." [Sommerville]
97
Kartenlink
0
95. Erklären Sie Whitebox-Testen! Wie könnte man für das Testen automatisch Daten generieren?
1. Whitebox-Tests sind ein
    * dynamisches Testverfahren über die Programmstruktur;
    * sie dienen der analytischen Qualitätssicherung von Software.
    * Neben dem kontrollflussorientieren Testen können Whiteboxtest auch den Datenfluss testen.

    "Strukturelle Tests sind ein Testansatz, bei dem die Tests aus der Kenntnis der Softwarestruktur und der Implementierung abgeleitet werden. Dieser Ansatz wird manchmal White-Box-Test, Glass-Box-Test oder auch Clear-Box-Test genannt, um den Gegensatz zum Black-Box-Test zu verdeutlichen." [Sommerville]

2. Wie kann man Daten automatisch analysieren
    * Mit Hilfe der symbolischen Ausführung lassen sich Programme automatisch analysieren.
98
Kartenlink
0
96. Was ist c0, c1, c_unendlich beim Testen? Was kommt normalerweise zum Einsatz?
    * c0 ist die Anweisungsüberdeckung,
    * c1 die Kantenüberdeckung und
    * c_unendlich ist die Pfadüberdeckung. [18]

Normalerweise kommen Kantenüberdeckungstests (c1) zum Einsatz, da sich alleine mit Anweisungsüberdeckung viele Fehler nicht finden lassen und die Pfadüberdeckung nur praktikabel ist, wenn man bestimmte Einschränkungen in Kauf nimmt (wie beim Strukturierten Pfadtest oder dem Boundary-Interior-Pfadtest).

Pfadüberdeckungstests sind eine Strategie des strukturellen Testens, deren Ziel in der Erprobung jedes einzelnen unabhängigen Ausführungspfades eines Programms oder einer Komponente besteht. Wenn jeder unabhängige Pfad ausgeführt worden ist, müssen alle Anweisungen mindestens einmal abgearbeitet sein.
99
Kartenlink
0
97. Wie funktioniert die Kantenüberdeckung?
    *  Da ein Pfadüberdeckungstest nicht praktikabel ist,
          o ist die Kantenüberdeckung meistens das minimale Testkriterium.
    * Der Kantenüberdeckungstest (C1-Test) fordert die Ausführung aller Kanten im Kontrollflussgraphen.
          o Dadurch wird die Semantik von Auswahlkonstrukten geprüft.
    * Voraussetzung ist eine Instrumentierung des Quellcodes
          o d.h. das Setzen von Zählern an bestimmten Stellen um Code, die für jeden Durchlauf inkrementiert werden.
100
Kartenlink
0
98. [Prof. Ebert zeigt ein Aktivitätsdiagramm, das x einliest, und wenn x>0 ist, dies um 1 dekrementiert]. Was macht dieses Programm? Was ist die Überdeckung, die man eigentlich immer haben will? Wie würden Sie dies an diesem Beispiel machen? Wie trifft man die Auswahl für Testparameter automatisch?
Es zählt x bis Null herunter. Man möchte in der Regel die Überdeckung aller Kanten, dies erreicht man mit zwei Testfällen (x > 0 und x = 0). Zur automatischen Auswahl der Testparameter verwendet man die symbolische Ausführung.
while (x > 0) do
   x- -;
* Bei diesem Programmbeispiel geht man mit der Symbolischen Ausführung folgendermaßen vor.
   o Für eine Kantenüberdeckung soll die Bedingung x>0 zunächst erfüllt sein, so dass auch die Anweisung x- - ausgeführt wird.
        + Bei der zweiten Iteration soll die Bedingung x>0 jedoch nicht mehr erfüllt sein, so dass die Schleife nicht mehr durchlaufen wird.
        + Die Variable x wird dazu zunächstmit dem Symbol a gleichgesetzt.
        + Da x>0 bei der ersten Iteration erfüllt sein soll, gilt folglich auch a > 0.
        + Nun wird in der Schleife die Anweisung x- - ausgeführt, so dass nun x = a-1 ist.
    o Die Anweisung ist beendet und es wird die Bedingung der Schleife erneut geprüft.
    o Nun soll die Schleife nicht mehr durchlaufen werden, also wollen wir, dass x <= 0 gilt.
    o Damit gilt aber auch a - 1 = 0 (wir erinnern uns, dass x = a - 1).
* Für eine Kantenüberdeckung muss also gelten a > 0 ? (a - 1) = 0, also a = 1.
    o Mit x=1 als Eingabe haben wir also einen Testfall mit Kantenüberdeckung.

101
Kartenlink
0
99. Wie funktioniert Mutationstesten?
    *  Der Mutationen-Test zählt zur Gruppe der Diversifizierenden Testmethoden.

"Der Mutationen-Test ist keine Testtechnik im engeren Sinne, sondern ein Test der Leistungsfähigkeit anderer Testmethoden, sowie der verwendeten Testfälle. Die verschiedenen Versionen entstehen durch künstliches Einfügen von typischen Fehlern. Es wird dann geprüft, ob die benutzte Testmethode mit den vorhandenen Testdaten diese künstlichen Fehler findet. Wird ein Fehler nicht gefunden, so werden die Testdaten um entsprechende Testfälle erweitert. Diese Technik beruht auf der Annahme, dass ein erfahrener Programmierer meist nur noch “typische” Fehler macht." [Wikipedia, 17.09.2007]
102
Kartenlink
0
100. Zeigen Sie an einem einfachen Beispiel, wie die symbolische Ausführung funktioniert!
    *  Im Beispiel ist eine Funkltion swap(a,b)=> a==b; b==a gezeigt
    * In dem Beispiel (rechts) zur symbolischen Ausführung zu nachstehendem Algorithmus werden
         x := x - y;                         (1)
         y := x + y;                        (2)
         x := y - x;                         (3)         
          o lateinische Bezeichner (x, y) für die Programmwelt, während
          o griechische Bezeichner () für die Symbolwelt stehen.
* Es werden Substitutionen von Variablen durch symbolische Ausdrücke verwaltet.         * Es ist zu zeigen, dass ausgehend von der Vorbedingung die Nachbedingung immer erfüllt ist.

 


103
Kartenlink
0
101. Welche Regeln gibt es in der Zusicherungsmethode nach Hoare?
    *  Es gibt 4 Regeln
         1. Anpassungsregel
         2. Sequenzbildungs-Regel
         3. Fallunterscheidungs-Regel
         4. Schleifen-Regel
    * Beipiel:
          o Werte vertauschen nach Zusicherungsmethode
                + Der folgende Algorithmus vertauscht die Werte von x und y. Beim Beweis geht man von unten nach oben vor.
Kartensatzinfo:
Autor: noobMan
Oberthema: Informatik
Thema: Softwaretechnik
Veröffentlicht: 02.02.2010
Tags: Softwarelebenslauf
 
Schlagwörter Karten:
Alle Karten (103)
keine Schlagwörter
Missbrauch melden

Abbrechen
E-Mail

Passwort

Login    

Passwort vergessen?
Deutsch  English