Sie sind auf Seite 1von 26

– bitte hier Aufkleber aufkleben oder Felder ausfüllen –

Matr.- Nr.:
Name:
Vorname:
Hörsaal:
Unterschrift:

Bachelorprüfung Maschinenbau
Bachelorprüfung Wirtschaftsingenieurwesen Fachrichtungen Bauingenieurwesen und Maschinenbau
Bachelorprüfung Technik-Kommunikation 2. Hauptfach Grundlagen des Maschinenbaus

Informatik im Maschinenbau
12. März 2019

Wichtige Hinweise
Mit Ihrer Unterschrift bestätigen Sie, dass Sie sich gesundheitlich in der Lage fühlen, die Klausur anzutreten.

Nicht zugelassen sind:


 Schriftliche und technische Hilfsmittel jeglicher Art (z.B. Smartphones oder Smart Watches).
 Taschenrechner

Bei Verstoß gegen eine dieser Regeln wird die Klausur mit „nicht bestanden“ gewertet.

Bearbeitungszeit und Punkteverteilung:


 Sie haben 120 Minuten Zeit zur Bearbeitung.
 Maximal sind 80 Punkte zu erreichen. Zum Bestehen der Klausur sind mindestens 40 Punkte erforderlich.
 Streichen Sie nicht zu wertende Lösungsversuche durch. Andernfalls wird bei mehreren angebotenen
Lösungen diejenige Lösung mit der geringsten Punktzahl gewertet. Verwenden Sie keine Klammern, um
Lösungen zu entwerten. Durchgestrichene Lösungsteile werden nicht gewertet.

Sonstiges:
 Programmiersprache ist Java.
 Antworten müssen begründet werden und eindeutig nachvollziehbar sein.
 Benutzen Sie zur Lösung jeweils den verfügbaren Platz hinter der Aufgabenstellung.
 Umlaute in Java und UML sind erlaubt.

Bleistift darf nur für Zeichnungen verwendet werden. Verwenden Sie keinen Rot- oder Grünstift und keine Tintenkiller.

A1 A2 A3 A4 A5
Pkt.: 6 Pkt.: 3 Pkt.: 7 Pkt.: 9 Pkt.: 11

A6 A7 A8 A9
Pkt.: 13 Pkt.: 12 Pkt.: 13 Pkt.: 6


Pkt.: 80

©IMA der RWTH Aachen 12.03.2019


2

1. Aufgabe: Use-Case Diagramm (6 Punkte)


Stellen Sie die Anwendungsfälle für den im Folgenden beschriebenen Sachverhalt mit
einem Use-Case Diagramm dar. Orientieren Sie sich für die Benennung der
Anwendungsfälle im Diagramm an den unterstrichenen Begriffen in der folgenden
Beschreibung. Zeichnen Sie die entsprechenden Anwendungsfälle in die Vorlage auf der
folgenden Seite.

Das automatische Türöffnungssystem eines Gebäudes wird von einem Nutzer bedient, von
einem Sicherheitsdienst betreut und von einer Türsteuerung gesteuert.

 Der Nutzer kann einen Antrag auf eine Karte stellen, mit deren Hilfe er die Tür öffnen
lassen kann. Dabei wird der Sicherheitsdienst immer einen neuen Nutzer anlegen.
 Um die Türe zu entriegeln, kann der Nutzer seine Karte vorhalten. Ist der Nutzer
autorisiert, so wird die Türsteuerung die Tür öffnen.
 Darüber hinaus kann der Sicherheitsdienst eine Notschließung auslösen. Dabei wird
die Türsteuerung die Tür schließen.

©IMA der RWTH Aachen 12.03.2019


Matr.-Nr.: ________________________ Name: _________________________________________ 3

A1
Pkt.: 6

©IMA der RWTH Aachen 12.03.2019


4

2. Aufgabe: Komponentendiagramm (3 Punkte)

Fertigen Sie ein Komponentendiagramm für die im Folgenden beschriebene


Softwarearchitektur an. Verwenden Sie für die Bezeichnung der Komponenten die
unterstrichenen Namen, für die Bezeichnung der Schnittstellen die fett gehaltenen
Begriffe.

Eine Steuerungsanlage eines Gebäudes besteht aus einem Touchpad und einer
Gebäudeelektronik.

Das Touchpad kann bei der Gebäudeelektronik die Gebäudedaten abrufen oder einen
Befehl übergeben, welchen der Benutzer über das Touchpad eingegeben hat.

Weiterhin benutzt das Touchpad eine Cloud, mit der es die hinterlegten Benutzerdaten
synchronisieren kann.

Darüber hinaus kann das Touchpad von der Cloud eine Unwetterwarnung empfangen. Die
entsprechende Schnittstelle wird vom Touchpad bereitgestellt.

©IMA der RWTH Aachen 12.03.2019


Matr.-Nr.: ________________________ Name: _________________________________________ 5

A2
Pkt.: 3

©IMA der RWTH Aachen 12.03.2019


6

3. Aufgabe: Aktivitätsdiagramm (7 Punkte)


Erstellen Sie ein Aktivitätsdiagramm, das die nachfolgende Prozessbeschreibung unter
Verwendung der vorgegebenen Aktivitäten beschreibt. Ordnen Sie dabei die einzelnen
Aktivitäten den vorgegebenen Swimlanes zu.

Die Steuerung einer Klimaanlage reguliert die Temperatur in einem Gebäude auf Basis
von gemessenen Sensorwerten. Der Gesamtprozess lässt sich folgendermaßen
beschreiben:

• Der Sensor wird zunächst von der Steuerung geprüft. Falls der Sensor nicht in Ordnung
ist, führt die Steuerung eine Wartung durch. Ist diese Wartung nicht erfolgreich, so
wird eine Notabschaltung durch die Steuerung eingeleitet und der Gesamtprozess
beendet.
• Ist der Sensor in Ordnung beziehungsweise die Wartung erfolgreich, so starten zwei
gleichzeitige Prozesse:
o Der Sensor nimmt einerseits den Messwert auf und speichert diesen
anschließend.
o Andererseits regelt die Steuerung parallel die Heizeinheit. Ist die Temperatur
zu hoch wird die Heizeinheit abgeschaltet, ist sie zu niedrig wird die
Heizeinheit eingeschaltet. Andernfalls wird die Steuerung nicht aktiv.
• Nachdem die parallelen Teilprozesse beendet sind, startet der Gesamtprozess erneut
und die Steuerung beginnt mit der Überprüfung des Sensors.

©IMA der RWTH Aachen 12.03.2019


Matr.-Nr.: ________________________ Name: _________________________________________ 7

1 1

 Punkt bei genau einem Start- und Endknoten und einer


durchgehenden Verbindung!
1 A3
Pkt.: 7
 Punkte nur bei Zuordnung zu richtiger Swimlane!

©IMA der RWTH Aachen 12.03.2019


8

4. Aufgabe: Klassendiagramm (9 Punkte)

a) Erstellen Sie ein vereinfachtes Klassendiagramm für die nachfolgende Beschreibung.

Verwenden Sie nur die in der Beschreibung genannten und unterstrichenen Klassen
bzw. Interfaces. Stellen Sie die Beziehungen untereinander mit Attributnamen,
Sichtbarkeiten und Kardinalitäten dar. Achten Sie hierbei auf die Verwendung
aussagekräftiger Attributnamen. Sämtliche Attribute einer Klasse sind privat.

 Ein Stromkreis ist eine spezielle Form eines Energiekreislaufs. Ein Energiekreislauf
ist abstrakt.
 Ein Stromkreis benutzt eine Windkraftanlage und eine Photovoltaikanlage.
 Eine Photovoltaikanlage besteht aus 1 bis 30 PvModulen.
 Eine Windkraftanlage besteht aus genau einem Generator.
 Generator und PvModul implementieren jeweils das Interface Spannungsprüfung.

1 1

1 1

©IMA der RWTH Aachen 12.03.2019


Matr.-Nr.: ________________________ Name: _________________________________________ 9

b) Vervollständigen Sie anhand der folgenden Informationen das Klassendiagramm der


Klasse PvModul mit den dazugehörigen Methoden und Attributen.

 Bei der Erstellung einer Instanz der Klasse PvModul wird eine fläche vom Typ
double übergeben und im gleichnamigen privaten Attribut, welches ebenfalls
vom gleichen Typ ist, gespeichert.
 Ein PvModul speichert seine orientierung in einem privaten int-Array.
 Die orientierung kann über eine öffentliche get-Methode ausgelesen und
über eine öffentliche set-Methode gesetzt werden.

1
1 1

A4
Pkt.: 9

©IMA der RWTH Aachen 12.03.2019


10

5. Aufgabe: Java-Wissen und Codekorrektur (11 Punkte)

a) Java-Wissen

Nennen Sie drei Wrapperklassen für primitive Datentypen.

1 Integer, Double, Float, Byte, Short, Long, Boolean, Character

Ist der folgende Ausdruck eine Deklaration, Definition oder Initialisierung?

variable = 13.37;

1 Initialisierung

Deklarieren Sie die öffentliche, abstrakte Methode öffnen für eine abstrakte Klasse.
Diese Methode bekommt keine Parameter übergeben und liefert keine Rückgabe.

public abstract void öffnen();


1

Welche Bildschirmausgabe liefert die folgende Methode bei Übergabe der Ganzzahl 2?

public static void method1(int k){


int m;
k = 8 / 4;
m = 15 - 13 + 5;
k = 5 - 2 + 8;
System.out.println("k ergibt " + k % m + "!");
}

1 k ergibt 4!

Welche Bildschirmausgabe liefert die folgende Methode bei Übergabe eines Arrays a,
welches die Werte [7,5,-2,9,3,4,12,16] enthält?

public static void method2(int[] a){


System.out.println(a[a.length-3] + "a[a.length-6]");
}

1 4a[a.length-6]

©IMA der RWTH Aachen 12.03.2019


Matr.-Nr.: ________________________ Name: _________________________________________ 11

b) Codekorrektur

Korrigieren Sie im folgenden Abschnitt den gegebenen Quellcode. Nutzen Sie zur
Korrektur von fehlerhaften Codezeilen die darunterliegenden Korrekturzeilen (siehe
Beispiel zur ersten Codezeile, in welcher die Korrekturen fett hervorgehoben sind). Pro
Codezeile können kein, ein oder mehrere Fehler auftreten.

Die Methode kreuz berechnet das Kreuzprodukt aus zwei Vektoren im ℝ³ und gibt
anschließend den resultierenden Vektor zurück.
𝑎1 𝑏1 𝑎2 𝑏3 − 𝑎3 𝑏2
𝑎×𝑏 = 𝑎2 × 𝑏2 = 𝑎3 𝑏1 − 𝑎1 𝑏3
𝑎3 𝑏3 𝑎1 𝑏2 − 𝑎2 𝑏1
Hinweis: Berechnung des Kreuzprodukts

klas Mathehelfer{
Korrektur 1 class Mathehelfer{
2 public static void kreuz(int[] a, int[] b)
throws IllegalArgumentException{
Korrektur 2 public static int[] kreuz(int[] a, int[] b)
1
throws IllegalArgumentException{
3 if(a.length == 3 || b.length == 3){
1
Korrektur 3 if(a.length != 3 || b.length != 3){
4 System.println.out("Dimensionen prüfen.");
1
Korrektur 4 System.out.println("Dimensionen prüfen.");
5 throw new IllegalArgumentException;}
Korrektur 5 throw new IllegalArgumentException();} 1
6 int[3] vector = new int[];
Korrektur 6 int[] vector = new int[3]; 1
7 vector[0] = a[1]*b[2] - a[2]*b[1];
Korrektur 7
8 vector[1] = a[2]*b[0] - a[0]*b[2];
Korrektur 8
9 vector[2] = a[0]*b[1] - a[1]*b[0];
Korrektur 9
10 return vector
1
Korrektur 10 return vector;
11 } A5
12 } Pkt.: 11

©IMA der RWTH Aachen 12.03.2019


12

6. Aufgabe: Interaktion zwischen Objekten (13 Punkte)

Implementieren Sie gemäß den Aufgabenstellungen der Teilaufgaben und des in


Abbildung 1 dargestellten Klassendiagramms die geforderten Methoden der Klasse
Steuerung und Steuerpanel.

Abbildung 1: Auszug des Klassendiagramms einer sensorbasierten Gebäudesteuerung.

©IMA der RWTH Aachen 12.03.2019


Matr.-Nr.: ________________________ Name: _________________________________________ 13

a) Implementieren Sie die Methode prüfeSensoren der Klasse Steuerung.

Die Methode überprüft alle Sensoren, die an die Steuerung angeschlossen sind, mit
Hilfe der Methode prüfeSensor. Diese gibt false zurück, sollte der geprüfte
Sensor defekt sein. Übersteigt die Anzahl der defekten Sensoren die Anzahl der
intakten Sensoren, wird eine SensorException geworfen. Andernfalls gibt die
Methode eine Liste aller defekten Sensoren zurück.

public ArrayList<Sensor> prüfeSensoren() throws


SensorException {

ArrayList<Sensor> defekt = new ArrayList<Sensor>(); 1

ArrayList<Sensor> intakt = new ArrayList<Sensor>();

for (Sensor sensor : sensoren) {

if( ! prüfeSensor(sensor) ){

1 defekt.add(sensor); 1
1 } else {

intakt.add(sensor); 1

}
}

if(defekt.size() > intakt.size()){


1
throw new SensorException();
}

return defekt;

©IMA der RWTH Aachen 12.03.2019


14

b) Implementieren Sie die Methode wunschTemperatur der Klasse Steuerpanel


gemäß dem Klassendiagramm in Abbildung 1 und der folgenden Beschreibung.

Die Methode prüft zuerst, ob eine Steuerung vorhanden ist. Sollte die entsprechende
Referenzvariable null referenzieren, also aktuell keine Steuerung gesetzt sein, so
wird der Wert -1000 zurückgegeben.

Andernfalls sucht die Methode unter allen Sensoren der Steuerung nach Sensoren,
deren SensorTyp der Familie „Temperatur“ zugeordnet ist. Wenn der Wert eines
solchen Sensors die Wunschtemperatur übersteigt, muss die Steuerung den
Standort des entsprechenden Sensors runterregeln. Ist der Wert zu niedrig, muss sie
ihn hochregeln. Die Rückgabe der Methode ist der Durchschnitt aller gefundenen
Werte.

Hinweis: Es ist immer mindestens ein Temperatursensor vorhanden.

public double wunschTemperatur(double temp){

if(steuerung == null) return -1000; 1

int anzahl = 0;
double summe = 0;

for (Sensor sensor : steuerung.getSensoren()) {

if(sensor.getTyp().getFamilie().equals("Temperatur")) {

summe += sensor.getWert();
1
anzahl += 1;
1

1 if (sensor.getWert() > temp) {

steuerung.runterRegeln(sensor.getStandort());
1
} else if (sensor.getWert() < temp){ 1

steuerung.hochRegeln(sensor.getStandort());
}

return summe / anzahl; 1

©IMA der RWTH Aachen 12.03.2019


Matr.-Nr.: ________________________ Name: _________________________________________ 15

A6
Pkt.: 13
}

©IMA der RWTH Aachen 12.03.2019


16

7. Aufgabe: Implementierung nach Klassen- und Aktivitätsdiagramm (12


Punkte)

Abbildung 2: Auszug des Klassendiagramms eines intelligenten Gebäudes.

a) Implementieren Sie die abstrakte Klasse Helligkeitssensor gemäß dem in


Abbildung 2 gegebenen Klassendiagramm. Die zugehörige get-Methode gibt
ausschließlich den derzeitigen Wert der entsprechenden Variable zurück.

public abstract class Helligkeitssensor {

protected double korrektur; 1

1
public double getKorrektur() {

return korrektur; 1

public abstract double messeHelligkeit(); 1

©IMA der RWTH Aachen 12.03.2019


Matr.-Nr.: ________________________ Name: _________________________________________ 17

b) Implementieren Sie Teile der Klasse GebäudeSteuerung gemäß dem gegebenen


Klassendiagramm, der nachfolgend in den Kommentaren gegebenen textuellen
Beschreibung und dem folgenden Aktivitätsdiagramm. Beschränken Sie sich bitte auf
die in den Kommentaren beschriebenen Attribute und Methoden.

Abbildung 3: Aktivitätsdiagramm für die Methode helligkeitsManagement.

©IMA der RWTH Aachen 12.03.2019


18

public class GebäudeSteuerung {

/* Deklarieren Sie die Attribute der Klasse. */

private ArrayList<Raum> räume;


1
private Außensensor außensensor;

/* Implementieren Sie die Methode "helligkeitsManagement" gemäß


dem in Abbildung 3 gegebenen Aktivitätsdiagramm. Die Methode
überprüft für alle Räume, ob die Jalousien geöffnet oder
geschlossen werden sollen und ob das Licht an- oder ausgeschaltet
werden soll. */

public void helligkeitsManagement () throws


LampeKaputtException {

boolean raumStatus;

for(Raum raum : räume) {

if (außensensor.messeHelligkeit() >=
raum.getInnensensor().messeHelligkeit()) {

raum.getJalousieSteuerung().öffneJalousien(); 1
1
raumStatus = false; 1

1 } else {

raum.getJalousieSteuerung().schließeJalousien();

raumStatus = true;

for(Lampe lampe : raum.getLampen()) { 1

lampe.setStatus(raumStatus); 1

if (lampe.getStatus() != raumStatus) {
throw new LampeKaputtException(); 1
}

©IMA der RWTH Aachen 12.03.2019


Matr.-Nr.: ________________________ Name: _________________________________________ 19

A7
} Pkt.: 12
}

©IMA der RWTH Aachen 12.03.2019


20

8. Aufgabe: Implementierung in Java (13 Punkte)

Implementieren Sie die beschriebenen Funktionalitäten anhand der


Aufgabenbeschreibung.

Eine zentrale Brandmeldeanlage überwacht eine große Anzahl an alten Gebäuden.


Aufgrund veralteter Technik senden die Gebäude ihre Daten als seriellen String an die
Brandmeldeanlage. Diese übersetzt die Strings in Objekte der Klasse Gebäude und
überprüft, ob bei einem Gebäude ein Brand vorliegt.

Ein Gebäude stellt dabei die im folgenden Klassendiagramm ausgewiesenen Attribute


und Methoden zur Verfügung.

a) Implementieren Sie die öffentliche Methode stringToGebäude. Die Methode


bekommt einen String übergeben, übersetzt diesen in ein Objekt der Klasse
Gebäude und gibt dieses Objekt am Ende zurück. Ein String, welcher von einem
Gebäude gesendet wird, hat folgendes Format:

"12345 12 123 123123"


5-stellige Gebäude- 2-stellige 3-stellige Anzahl Beliebige Anzahl an 3-stelligen
Nummer Etagenanzahl der Brandmelder Brandmelder-IDs, bei welchen ein
Brand vorliegt

Der String ist somit immer mindestens 10-stellig, enthält keine Leerzeichen und alles
wird mit vorangestellten Nullen auf die entsprechende Stellenanzahl aufgefüllt.

Beispiele:
1) Gebäudenummer 30, 12 Etagen. Das Gebäude besitzt 50 Brandmelder von denen
keiner einen Brand erkennt. Folgender String wird übermittelt:
"0003012050"
2) Gebäudenummer 10523, 3 Etagen. Das Gebäude besitzt 120 Brandmelder von
denen die Brandmelder 25, 110 und 112 einen Brand erkennen. Folgender String
wird übermittelt:
"1052303120025110112"
©IMA der RWTH Aachen 12.03.2019
Matr.-Nr.: ________________________ Name: _________________________________________ 21

Hinweis: Benutzen Sie die Methode

substringToInt(start : int, end : int, str : String) : int

um aus einem übergebenen String str, in dem mit start und end angegebenen
Intervall, einen Integer auszulesen. Beachten Sie, dass Strings mit dem Index 0
anfangen und die gegebene Methode bei der Übergabe eines nicht vorhandenen
Index Integer.MIN_VALUE zurückgibt. Eine Anwendung der Methode könnte
beispielsweise folgendermaßen aussehen:

String str = "102530";


int out1 = substringToInt(0, 3, str); // out1 = 1025
int out2 = substringToInt(2, 4, str); // out2 = 253

public Gebäude stringToGebäude(String str) {

Gebäude geb = new Gebäude(); 1

geb.setGebäudeNummer(substringToInt(0, 4, str)); 1

geb.setEtagenAnzahl(substringToInt(5, 6, str)); 1

ArrayList<Integer> liste = new ArrayList<>();

for (int i = 10; i < str.length(); i += 3) { 1


1

1 liste.add(substringToInt(i, i+2, str)); 1


1

} 1

geb.setAusgelösteBrandmelder(liste);

return geb;

©IMA der RWTH Aachen 12.03.2019


22

b) Implementieren Sie die öffentliche Methode überprüfeGebäude, welche eine


ArrayList mit einer beliebigen Anzahl an Gebäuden übergeben bekommt. Es soll
für jedes Gebäude überprüft werden, ob die Brandmelder in dem Gebäude einen
Brand erkannt haben. Falls dies der Fall ist, so soll auf der Konsole ausgegeben
werden, dass ein Einsatzwagen zu dem Gebäude mit der entsprechenden
Gebäudenummer geschickt werden soll.

Hat ein Gebäude mehr als 4 Etagen, so soll ein großer Einsatzwagen geschickt
werden. Andernfalls ist ein kleiner Einsatzwagen ausreichend.

Eine Konsolenausgabe kann beispielsweise folgendermaßen aussehen:


"10523: Kleiner Einsatzwagen!"

Stellen Sie sicher, dass eine möglicherweise beim Zugriff auf ein spezifisches
Gebäude auftretende Exception nicht die Methode beendet. Jegliche
Exception sollte gefangen und, beispielsweise unter Verwendung ihrer
toString-Methode, auf der Konsole ausgegeben werden, ohne dass die
Überprüfung weiterer Gebäude gestört wird.

©IMA der RWTH Aachen 12.03.2019


Matr.-Nr.: ________________________ Name: _________________________________________ 23

public void überprüfeGebäude(ArrayList<Gebäude> gebäude) {

for(Gebäude geb: gebäude) {

try {

if (geb.getAusgelösteBrandmelder().size() > 0) { 1
if (geb.getEtagenAnzahl() > 4 ) {

System.out.println(geb.getGebäudeNummer() +
": Großer Einsatzwagen!");

1 1 1 } else { 1

1 1 System.out.println(geb.getGebäudeNummer() +
": Kleiner Einsatzwagen!");

} catch(Exception e) {

System.out.prinln(e.toString()); 1

A8
Pkt.: 13

©IMA der RWTH Aachen 12.03.2019


24

9. Aufgabe: Testen mit JUnit (6 Punkte)


Vervollständigen Sie gemäß der Aufgabenstellung die auf der nächsten Seite angegebene
JUnit Testklasse.

Die Klasse AufzugTest implementiert die Modultests für ausgewählte Funktionen der
Java-Klasse Aufzug. Die entsprechenden Methoden wurden anhand der
Beschreibungen in Tabelle 1 implementiert. Bearbeiten Sie die folgenden Aufgaben und
schreiben Sie die Antwort dabei jeweils auf die durchgezogene Linie.

a) Annotieren Sie die Methode setUp() so, dass diese vor jedem einzelnen Test
ausgeführt wird.
b) Annotieren Sie folgende Methoden als JUnit Testmethoden:
testTürStatus(), testEtage() und testÜberladung().
c) Vervollständigen Sie die folgenden Testmethoden anhand der Angaben in den
jeweiligen Java-Kommentaren:
testTürStatus(), testEtage() und testÜberladung().

Methode und Beschreibung


public Aufzug()
Erstellt ein Objekt der Klasse Aufzug. Der Aufzug steht nach Erzeugung mit geöffneten Türen in der
0. Etage. Die maximal erlaubte Zuladung ist nicht begrenzt und das aktuelle Gewicht beträgt 0 kg.
public void fahreZuEtage(int etage)
Bewegt den Aufzug in die übergebene Etage.
public int getEtage()
Gibt die Etage zurück in der sich der Aufzug befindet.
public void öffneTür()
Öffnet die Tür des Aufzugs und setzt den Status der Tür auf true.
public void schließeTür()
Schließt die Tür des Aufzugs und setzt den Status der Tür auf false.
public boolean getTürStatus()
Gibt den aktuellen Status der Tür zurück. Ist die Tür geschlossen, so ist der Wert false, ist sie
geöffnet, so ist der Wert true.
public void setGewichtslimit(int maximalGewicht)
Setzt das maximal erlaubte Gewicht des Aufzugs in kg auf den übergebenen Wert.
public void setBeladung(int gewicht)
Setzt die Beladung des Aufzugs auf das übergebene Gewicht in kg.
public boolean istÜberladen()
Überschreitet das aktuell zugeladene Gewicht das Gewichtslimit, so wird true zurückgegeben,
andernfalls false.
Tabelle 1: Methoden der Klasse Aufzug.

©IMA der RWTH Aachen 12.03.2019


Matr.-Nr.: ________________________ Name: _________________________________________ 25

public class AufzugTest{


Aufzug aufzug;

1 @Before
public void setUp(){
1 aufzug = new Aufzug();
}

@Test
public void testTürStatus(){
// Schließe die Tür des Aufzugs.

aufzug.schließeTür(); 1

1
// Prüft, dass die Tür geschlossen ist.

assertFalse(aufzug.getTürStatus()); 1
}
1
1 @Test
public void testEtage(){
1 // Bewege den Aufzug zur Zieletage.
int zielEtage = 42;
aufzug.fahreZuEtage(zielEtage);

// Prüft, dass der Aufzug in die richtige


// Etage gefahren ist.
1
assertEquals(zielEtage, aufzug.getEtage());
} 1
@Test
public void testÜberladung(){
// Setze das Gewichtslimit und die Beladung.
aufzug.setGewichtslimit(700);
aufzug.setBeladung(1200);

// Prüft, ob der Aufzug überladen ist.

assertTrue(aufzug.istÜberladen()); 1
}
} 1

A9
Pkt.: 6
8

©IMA der RWTH Aachen 12.03.2019


26

©IMA der RWTH Aachen 12.03.2019

Das könnte Ihnen auch gefallen