Übungsblatt 7 - Lehrstuhl Software-Systemtechnik - BTU Cottbus
Übungsblatt 7 - Lehrstuhl Software-Systemtechnik - BTU Cottbus
Übungsblatt 7 - Lehrstuhl Software-Systemtechnik - BTU Cottbus
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
VL <strong>Software</strong>technik 10. Juni 2013 <strong>BTU</strong> <strong>Cottbus</strong><br />
LS <strong>Software</strong>-<strong>Systemtechnik</strong><br />
<strong>Übungsblatt</strong> 7<br />
Aufgabenbeschreibung<br />
Dieses Aufgabenblatt beschäftigt sich mit den Themen Bad Smells in Theorie (Aufgabe 1) und Praxis (Aufgabe<br />
2) sowie Code-Restrukturierung und Refactoring (Aufgabe 3).<br />
Aufgabe 1<br />
In dieser Aufgabe setzen Sie sich theoretisch mit Bad Smells auseinander. Suchen Sie sich hierzu aus den<br />
in der Vorlesung vorgestellten Bad Smells 5 heraus, überlegen und beschreiben Sie in welchem Kontext<br />
derartige Programmierprobleme auftreten können und diskutieren Sie den Aufwand der nötig ist, um diese<br />
im Rahmen eines Refactorings zu beheben.<br />
Aufgabe 2<br />
Viele Entwicklungsumgebungen bieten bereits Techniken, um einfache Refactorings zu automatisieren. Ein<br />
typischer Vertreter einer solchen IDE ist Eclipse. Suchen Sie sich aus den von Eclipse zur Verfügung gestellten<br />
Refactoring-Mechanismen 4 aus und erläutern Sie diese. Testen Sie zusätzlich für die gewählten Techniken,<br />
welche manuelle Nacharbeit nötig ist um das Refactoring vollständig durchführen zu können.Die<br />
Refactoring-Komponenten finden Sie ab Eclipse 4.2 in der Menüleiste unter Refactor.<br />
Zusatz: Welche Refactoring-Aufgaben lassen sich mit Eclipse nicht umsetzen? Warum nicht?<br />
Aufgabe 3<br />
Im Material ist ein Java-Programm zur Verwaltung von Bibliotheksgebühren enthalten. Dieses Programm<br />
soll mit geringem Aufwand an folgende Änderungen der Anforderungen anpassbar sein:<br />
• Einführung neuer Gebührenarten. Diese soll im Wesentlichen durch das Einführen einer oder mehrerer<br />
einfacher neuer Klassen möglich sein und nur minimale Änderungen an bestehenden Klassen<br />
erfordern.<br />
• Änderung der Benutzeroberfläche für die Eingabe und Änderung der Gebühren. Diese soll lediglich<br />
das Ersetzen einer oder mehrerer Klassen erfordern, die nicht zu ersetzenden Klassen sollen unverändert<br />
bleiben. Dabei soll so wenig wie möglich Quelltext ersetzt werden, damit neue Benutzeroberflächen<br />
mit geringem Aufwand erstellt werden können.<br />
1. Überlegen und beschreiben Sie welche Bad Smells im mitgelieferten Quelltext auftreten. Notieren<br />
Sie sich auch die Zeilennummern.<br />
2. Restrukturieren Sie das gegebene Programm so, dass sich die beiden genannten Typen von Anforderungsänderungen<br />
mit geringem Aufwand umsetzen lassen. Das nach außen sichtbare Verhalten des<br />
restrukturierten Programms soll gegenüber dem vorgegebenen Programm unverändert bleiben!<br />
3. Notieren Sie grob die von Ihnen durchgeführten Refactoring-Schritte. Welche dieser Schritte konnten<br />
automatisiert werden, welche nicht?<br />
Weisen Sie die Effektivität der Restrukturierung nach, indem Sie Beispiele für die genannten Anforderungsänderungen<br />
umsetzen und die dafür notwendigen Änderungen des restrukturierten Quelltextes protokollie-<br />
Seite 1 von 2
VL <strong>Software</strong>technik 10. Juni 2013 <strong>BTU</strong> <strong>Cottbus</strong><br />
LS <strong>Software</strong>-<strong>Systemtechnik</strong><br />
ren:<br />
2. Führen Sie die neue Gebührenart Benachrichtigungsgebühr ein. Die Höhe der Gebühr für eine Benachrichtigung<br />
richtet sich nach dem Versandmedium: Sie beträgt 0.50 e per eMail, 1.00 e per Brief,<br />
und 2.00 e per Telefon. Der Benutzer soll das Medium aus einer Auswahlliste (ComboBox) auswählen<br />
können. Listen Sie kurz die zur Einführung der neuen Gebührenart erforderlichen Veränderungen<br />
am Programm aus Teilaufgabe 1 auf.<br />
3. Ersetzen Sie die Eingabe und Änderung der Gebühren mit GUI-Dialogen durch eine textbasierte Eingabe<br />
und Änderung in der Konsole. Listen Sie kurz die erforderlichen Veränderungen am Programm<br />
aus Teilaufgabe 1 auf.<br />
Welche Eigenschaften erfüllen die Änderungen, welche aus den obigen Aufgaben resultieren? Definieren<br />
Sie alle für Sie erkennbaren Eigenschaften, die Restrukturierungsmaßnahmen zugrunde liegen. Finden Sie<br />
darüber hinaus weitere sinnvolle Eigenschaften.<br />
Seite 2 von 2