1.V Modell
1.1 Skizzieren Sie das V-Modell !
Anforderunsdef. Abnahmetest VAL
---
Grobentwurf Systemtest VER
Feinentwurf Integrationstest Modul
Implementierung Moduletest
Milestone t
1.2 Auf welchem Prozess-Modell basiert das V-Modell?
Wasserfallmodell mit Qualitätssicherung
1.3 Mit welchen Begriffen beschreibt das V-Modell die Fragen.
(a) Wird das richtige Produkt entwickelt?
Validation: - Prüfung , ob ein Entwicklungsergebnis die individuellen
Anforderungen bezüglich einer spezeillen beabsichtigten Nutzung erfüllt.
- Wird das Produkt richtige Produkt entwickelt (b) Wird das Produkt korrekt entwickelt?
Verifikation: - Prüfung, ob die Ergebnisse einer Entwicklungsphase die Vorgaben der Phaseneingangsdokumente erfüllen
- Mathematisch formaler Beweis der Korrektheit eines Programm - Wird das Produkt korrekt entwickelt
2. Prozess-Modelle
Welche der folgenden Aspekte werden durch ein Prozess-Modell festgelegt?
(a) Beginn des Projektes
(b) Reihenfolge des Arbeitsablaufes (c) Arbeitszeiten
(d) Jeweils durchzuführende Aktivitäten (Balzert) (e) Definition der Teilprodukte
(f) Fertigstellungszeitpunkt (g) Fertigstellungskriterien
(h) Mitarbeiterqualifikation (Balzert) (i) Mitarbeiterauswahl
(j) Verantwortlichkeiten (k) Verwaltung
(l) Methoden, Werkzeuge (m)Richtlinien, Standards (n) Programmiersprache
3. Meilenstein-Trend-Analyse(MTA)
Was bedeutet ein ansteigender Kurvenverlauf in der MTA ?
Zu optimistische Planung (Terminvorhersagen)
Wie interpretieren Sie einen gleichmäßig fallenden Verlauf in der MTA ?
Es wurde ein zu großer Sicherheitspuffer bei der Planung mit einkalkuliert Einfacher als erwartet
Wodurch unterscheiden sich Planungs- und Beobachtungszeitraum?
Planungszeitraum = Soll und Beobachtungszeitraum = Ist
4. ETXM Notation
Beschreiben Sie den Implementierungs-Prozess mit den Prozessen
- Codierung
- Testfallerstellung anhand von Äquivalenzklassen - Funktionstest
- Testfallerstellung anhand nicht durchlaufender Zweige - Strukturtest
Überlegen sie, welche Prozesse parallelisierbar sind. Geben Sie eine grafische Darstellung mittels ETXM-Notation an:
5. Capability Maturity Model (CMM)
Ihr Unternehmen befindet sich in Reifegradstufe 2 des CMM Charakterisieren Sie Ihren Prozess?
Stufe2 Prozess-Charakteristika Notwendige Aktionen um in
diesen Prozess zu kommen.
Wiederholbarer Prozess
(repeatable)
Intuitiver Prozess
- Kosten & Qualität schwanken - Ganz gute Termin-Kontrolle - Informelle Vorgehensweise Prozess ist von Individuen abhängig
- Planung (Kosten- und Zeit-schätzung,, Terminplanung
- Fortschrittüberwachung - Änderungsmanagement - Qualitätssicherung
Werden Projektpläne aufgestellt?
Ja es werden bereits Projektpläne aufgestellt.
SoftwareTest
6. Strukturorientierter- und Funktionsorientierter Test
(a) Gegeben ist das Fragment der C++ Implementierung einer Klasse Person:
Der Name einer Person muss zwischen 2 und 20 Zeichen lang sein; die Postleitzahl ist eine fünfstellige positive ganze Zahl.
class Person {
protected:
string name;
int PLZ;
pulic:
Person(const string &n, const int p) {
name = n;
plz = p;
}
………
};
Stellen sie gültige und ungültige Äquivalenzklassen für der Konstruktor auf.
Ermitteln Sie typische Testfälle für den Konstruktor.
S 76 Skript / S 50
Person(const string &n, const int p) {
if (stnlen(n)<20) && (strnlen(n) > 2) &&( p<100000) && (p> 9999)) {
name = n;
plz = p;
}
}
Äquvivalenzklassen:
Name < 2 PLZ € ]9999, 100000[
Name > 20 ungültig
2< Name < 20
Name < 2 PLZ € ]9999, 100000[
Name >20 ungültig
2 < Name < 20 PLZ € ]9999, 100000[
gültig Testfälle:
Name = 5 PLZ = 3 Case1
Name = 1 PLZ = 5 Case2
Name = 5 PLZ = 5 Case3
(b) ist der Äquivalenzklassentest ein Strukturorientierter Test oder ein Funktionsorientierter Test ?
Funktionsorientiert
- Funktionale Äquivalenzklassenbildung - Ursache- Wirkungs- Analyse.
- Zusandstest - Syntaxtest (c) Was bedeutet Zweigabdeckung?
Kontrollflußorientiert
Abdeckung einer bestimmten Anzahl von Zweigen im Strukturtest.
Jeder Zweig muss mindestens einmal durchlaufen werden.
(d) Ist die Anweisungsabdeckung ein Funktionsorientierter Test?
Nein – Strukturorientiert – Kontrollflußorientiert.
7. Integrationstest
Beim Integrationstest können Bottom-Up, Top-Down und Outside-In Test unterschieden werden.
(a) Erklären sie kurz den Bottom-Up Test und dessen Nachteile.
3.6 Skript S70
Erst werden die UNTERSTEN Module mit separaten Treibern getestet. Bei Erfolg kann man eine Ebene HÖHER in der Modul Hierarchie gehen, und die nächste Ebene an Modulen mit wieder speziellen Treibern testen. Am Ende kommt man schließlich am oberen Ende an; jetzt ist das Produkt VORZEIGBAR.
Nachteile: - Treiber erforderlich
- ein Vorzeigbares Produkt entsteht zuletzt - abnehmender Personalbedarf
(b) Erlären Sie kurz den Top-Down Test und dessen Nachteile.
Es wird mit der obersten Modulebene begonnen. Anstelle der darunter liegenden
Module greift man auf TEST-STUBs zurückt, die die Anfragen der darüber liegenden Module entgegen nehmen.
Nachteile:
- Stabs erforderlich
- Mit zunehmender Integrationstiefe wird die Erzeugung bestimmte Testsituationen und Tiefer angeordneten Modulen schwieriger.
- zunehmender Personalbedarf
Design Pattern
8. Das Broker Pattern
Erläutern Sie anhand eines Szenario-Diagrammes das Verhalten, wenn ein Client einem lokalen Server eine Anfrage
(Eingangsparameter und Ausgangsparameter) schickt. In diesem Szenario wird ein synchroner Aufruf beschrieben, das heißt der Client wartet auf die Antwort des Servers.
(a) Erläutern Sie zu jedem im Szenariodiagramm verwendeten Methodenaufruf kurz dessen Aufgabe.
Tip: Die Objekte Client, Server, Proxy, Stub und Broker collaborieren im Broker Pattern.
Client Proxy Broker Stab Surfer
methodcall()
FindSurfer( )
Marschalling „Bytewurst“
transfer
unmarschalling
methodecall() return()
marschalling transfer
unmarschalling
return( )
(a)
methodcall(): Die Methode wird aufgerufen und an den Proxy gesendet FindSurfer(): Der Proxy ermittelt über den Broker die Adresse des Surfers Marschalling: Die zu sendenden Daten werden in eine Bytewurst gepackt Transfer: Der Transfer zwischen Proxy und Stab findet statt
Unmarschalling: Die Bytewurst wird wieder endpackt.
Return(): Ein Returnwert wird zurückgegeben.
Erklären sie die Aufgabe von Proxy, Stub und Broker.
ID Prüfung 2002!!!!!!!!!!!!!!!!!!!!
Proxy:
vermittelt zw. Client und Broker
kapselt systemspezifische Funktionen
zusätzliche Transparenz, entfernte Objekte erscheinen wie lokal
Erzeugung und Löschen von Speicherbereichen für Cachingzwecke
Broker:
Übermittlung der Anfragen und Ergebnisse
Muss Empfänger einer Anfrage anhand System-Identifier ausfindig machen können
Bei Anfrage wird geprüft ob Dienst lokal verfügbar ist >> wenn ja >> direkte Zustellung >> wenn nein >> Broker leitet Anfrage über Bridge an entfernten Broker weiter
Stub:
funktionier wie Clientseitiger-Proxy
Empfang von Anfragen
Entpacken der Nachrichten
Unmarshalling
Aufruf des entsprechenden Dienstes beim Server
(b) Welches Pattern würden Sie zur Instanzierung eines Proxy benützen, wenn der Client keine Kenntnis über die Struktur des Proxy haben soll?
Zeigen sie nun die Proxy Instanzierung mit einem Szenario- Diagrammes.
Wrapper
9. Das Singleton Pattern
Das Singleton Pattern ist potentiell für die Erzeugung einer einzigen Instance durch die GetInstance()- Methode der Singleton-Klasse zuständig.
Notieren Sie die Deklaration der Singleton-Klasse (singleton.h)
#include <iostream>
class CSingleton {
public:
static CSingleton* Instance();
virtual void ptr() {cout<<"Zeigerwert Singleton: "<< _instance << endl
<< "Datenwert Singleton: " << _theData << endl
<< endl;
void SetData(int i) {_theData = i;}
private:
CSingleton();
static CSingleton *_instance;
int _theData;
};
OOA/OOD mit UML
10. Zustandsdiagramm (State Chart Diagrams)
Wenn in einer Bibliothek ein Buch beschafft wird, dann werden seine Daten erfasst und ein neues Objekt der Klasse Buch erzeugt.
Der Einfachheit halber gebe es von jedem Buch nur ein einziges Exemplar. Jedes Buch kann ausgeliehen werden. Wird ein
ausgeliehenes Buch von einem anderen Leser gewünscht, dann muss es vorbestellt werden. Nicht vorbestellte Bücher stehen nach der Rückgabe sofort für eine erneute Ausleihe bereit. Vorbestellte Bücher werden nach der Ausleihe für den entsprechenden Leser zur Abholung bereitgelegt und der Leser wird informiert. Wird das Buch nicht fristgemäß abgeholt, dann steht es für eine neue
Ausleihe bereit. Defekte Bücher oder Bücher, die nicht
zurückgegeben wurden, werden aus dem Bestand entfernt. Wenn ein neues Buch im System gespeichert wird, dann befindet es sich zunächst im Zustand präsent. Das Löschen von Büchern im System wird durch den Übergang in den Endzustand (Bullauge) angezeigt.
Er sagt aus, dass das Objekt aufhört, zu existieren.
11. Assoziationen vollständig spezifizieren
In einer Schule soll der Lehrbetrieb Rechner unterstützt verwaltet werden. Jeder Lehrer kann bis zu vier Fächer unterrichten. Eine Klasse wird von verschiedenen Lehrern in unterschiedlichen
Fächern unterrichtet. Jeder Klasse ist ein bestimmter Klassenlehrer zugeordnet. Der Klassenlehrer soll die Schüler seiner Klasse bei Problemen unterstützen. Deshalb darf jeder Lehrer nur für eine Klasse Klassenlehrer sein. Jede Unterrichtsstunde findet in einem bestimmten Raum zu einer bestimmten Zeit statt und wird von einem Lehrer vor einer Klasse abgehalten. Jede Klasse hat zwischen 30 und 35 Unterrichtsstunden.
12. Klassendiagramm
Wir betrachten eine Bank und ihre Kunden.
Eine Person wird Kunde, wenn sie ein Konto eröffnet. Ein Kunde kann beliebig viele weitere Konten eröffnen. Für jeden neuen Kunden werden dessen (nicht notwendigerweise eindeutiger) Name, Adresse und das Datum der ersten Kontoeröffnung erfaßt.
Bei der Kontoeröffnung muß der Kunde gleich eine erste Einzahlung vornehmen. Wir unterscheiden Girokonten und Sparkonten. Girokonten dürfen bis zu einem bestimmten Betrag überzogen werden. Für jedes Konto wird ein individueller
Habenzins, für Girokonten auch ein individueller Sollzins festgelegt; außerdem besitzt jedes Konto eine eindeutige
Kontonummer. Für jedes Sparkonto wird die Art des Sparens – z.B.
Festgeld – gespeichert. Ein Kunde kann Beträge einzahlen und abheben. Desweiteren werden Zinsen gutgeschrieben und bei Girokonten Überziehungszinsen abgebucht. Um die Zinsen zu berechnen, muß für jede Kontobewegung das Datum und der
Betrag notiert werden. Die Gutschrift/Abbuchung der Zinsen erfolgt bei den Sparkonten jährlich und bei den Girokonten quartalsweise.
Ein Kunde kann jedes seiner Konten wieder auflösen. Bei der Auflösung des letzten Kontos hört er auf, Kunde zu sein.
Klassendiagramm: