Qualität von Software und Softwaremodellen - uni-marburg
Qualität von Software und Softwaremodellen - uni-marburg
Qualität von Software und Softwaremodellen - uni-marburg
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
<strong>Qualität</strong> <strong>von</strong> <strong>Software</strong> <strong>und</strong> <strong>Software</strong>modellen<br />
Seminar der AG <strong>Software</strong>technik im Sommer-Semester 2013<br />
Gabriele Taentzer, Thorsten Arendt<br />
Marburg, 16. April 2013
ORGANISATION<br />
(TEIL 1)<br />
2<br />
Thorsten Arendt: Seminar <strong>Qualität</strong> <strong>von</strong> <strong>Software</strong><br />
<strong>und</strong> <strong>Software</strong>modellen
Organisation des Seminars<br />
‣ Umfang: 2 SWS, 3 ECTS Punkte<br />
• auch als Proseminar möglich (zusätzliche Leistungen)<br />
‣ Hauptstudium, ab 5. Semester<br />
‣ Veranstalter: Gabriele Taentzer, Thorsten Arendt<br />
‣ Kontakt:<br />
• taentzer@mathematik.<strong>uni</strong>-<strong>marburg</strong>.de ,<br />
Raum 05D13, Tel: 21532<br />
• arendt@mathematik.<strong>uni</strong>-<strong>marburg</strong>.de ,<br />
Raum 05D03, Tel: 21540<br />
‣ Termin: als Block Mitte / Ende J<strong>uni</strong> 2013<br />
3 Thorsten Arendt: Seminar <strong>Qualität</strong> <strong>von</strong> <strong>Software</strong><br />
<strong>und</strong> <strong>Software</strong>modellen
Organisation des Seminars (Forts.)<br />
‣ Voraussetzung:<br />
• Gr<strong>und</strong>vorlesungen in Praktischer Informatik<br />
• Einführung in <strong>Software</strong>technik, SW-Praktikum<br />
• Ideal als Begleitseminar zum Modul "<strong>Software</strong>qualität" geeignet<br />
‣ Scheinkriterien:<br />
• Vortrag zum Thema der Seminararbeit<br />
• Schriftliche Ausarbeitung der Seminararbeit<br />
• Aktive Teilnahme an der Diskussion der Vorträge<br />
‣ Homepage des Seminars:<br />
• http://www.mathematik.<strong>uni</strong>-<strong>marburg</strong>.de/~swt/ss13/quali/<br />
• Vortragsfolien, Literaturhinweise <strong>und</strong> Ausarbeitungen<br />
4 Thorsten Arendt: Seminar <strong>Qualität</strong> <strong>von</strong> <strong>Software</strong><br />
<strong>und</strong> <strong>Software</strong>modellen
EINFÜHRUNG<br />
IN DAS THEMA<br />
5<br />
Thorsten Arendt: Seminar <strong>Qualität</strong> <strong>von</strong> <strong>Software</strong><br />
<strong>und</strong> <strong>Software</strong>modellen
Berühmte <strong>Software</strong>-Fehler<br />
‣ Airbus-Absturz Toulouse, 1994:<br />
– <strong>Software</strong>-Fehlverhalten ist mitverantwortlich für den Absturz<br />
eines A340 bei Toulouse, 7 Tote<br />
‣ Pentium-Bug, Intel, 1994:<br />
– spezielle Division verursachen Fehler <strong>und</strong> Kosten <strong>von</strong> knapp<br />
500 Mio. Dollar<br />
– seitdem: Einsatz <strong>von</strong> formaler Verifikation bei Intel<br />
‣ Deutsche Telekom, 1996:<br />
– durch Spezifikations- <strong>und</strong> <strong>Software</strong>fehler werden in 550<br />
Vermittlungsstellen falsche Gebühren berechnet. Dadurch<br />
Kosten <strong>von</strong> ca. 70 Mio. DM (geschätzt).<br />
6<br />
Thorsten Arendt: Seminar <strong>Qualität</strong> <strong>von</strong> <strong>Software</strong><br />
<strong>und</strong> <strong>Software</strong>modellen
<strong>Qualität</strong>smerkmale für <strong>Software</strong><br />
‣ Funktionalität: Korrektheit,<br />
Angemessenheit, Interoperabilität,<br />
Ordnungsmäßigkeit, Sicherheit<br />
‣ Zuverlässigkeit: Reife, Fehlertoleranz,<br />
Wiederherstellbarkeit<br />
‣ Benutzbarkeit: Verständlichkeit,<br />
Bedienbarkeit, Erlernbarkeit, Robustheit<br />
‣ Effizienz: Wirtschaftlichkeit, Zeitverhalten,<br />
Verbrauchsverhalten<br />
‣ Wartungsfre<strong>und</strong>lichkeit:<br />
Analysierbarkeit, Änderbarkeit, Stabilität,<br />
Testbarkeit<br />
‣ Übertragbarkeit: Anpassbarkeit,<br />
Installierbarkeit, Konformität,<br />
Austauschbarkeit<br />
7<br />
Thorsten Arendt: Seminar <strong>Qualität</strong> <strong>von</strong> <strong>Software</strong><br />
<strong>und</strong> <strong>Software</strong>modellen
<strong>Qualität</strong>smanagement<br />
‣ produktorientiert:<br />
<strong>Software</strong>produkte <strong>und</strong> Zwischenergebnisse werden auf vorher<br />
festgelegte <strong>Qualität</strong>smerkmale überprüft.<br />
‣ prozessorientiert:<br />
Methoden, Werkzeuge, Richtlinien <strong>und</strong> Standards für den<br />
Erstellungsprozess der <strong>Software</strong><br />
8<br />
Thorsten Arendt: Seminar <strong>Qualität</strong> <strong>von</strong> <strong>Software</strong><br />
<strong>und</strong> <strong>Software</strong>modellen
<strong>Qualität</strong>ssicherungsmaßnahmen<br />
‣ Konstruktive Maßnahmen:<br />
Methoden, Sprachen, Werkzeuge, Richtlinien, Standards <strong>und</strong><br />
Checklisten, die eine bestimmte Produkt- oder Prozessqualität<br />
garantieren<br />
‣ Beispiele:<br />
• Gliederungsschema für das Pflichtenheft (exakte Beschreibung<br />
der funktionalen Anforderungen)<br />
• Verwendung einer typisierten Programmiersprache<br />
• Importierte Daten werden auf Richtigkeit überprüft.<br />
• OO-<strong>Software</strong>entwicklung unterstützt die Wiederverwendbarkeit<br />
<strong>von</strong> <strong>Software</strong>.<br />
• Programmierkonventionen (Einhaltung eines guten<br />
Programmierstils) <strong>und</strong> Entwicklungsrichtlinien<br />
9<br />
Thorsten Arendt: Seminar <strong>Qualität</strong> <strong>von</strong> <strong>Software</strong><br />
<strong>und</strong> <strong>Software</strong>modellen
<strong>Qualität</strong>ssicherungsmaßnahmen (Forts.)<br />
‣ Analytische Maßnahmen:<br />
Das existierende <strong>Qualität</strong>sniveau wird gemessen. Ausmaß <strong>und</strong><br />
Ort des Defekts können identifiziert werden.<br />
‣ Verfahren:<br />
• Analysierend: Informationen ohne Ausführung der <strong>Software</strong><br />
mit konkreten Eingaben sammeln.<br />
• Testend: Die <strong>Software</strong> mit konkreten Eingaben ausführen.<br />
‣ Beispiele:<br />
• Erstellung <strong>von</strong> anforderungs-gerechten Testfällen<br />
• <strong>Software</strong>metriken <strong>und</strong> Überprüfung <strong>von</strong> Bad Smells<br />
‣ Eine vorausschauende, konstruktive <strong>Qualität</strong>slenkung<br />
erspart viele analytische Maßnahmen.<br />
10<br />
Thorsten Arendt: Seminar <strong>Qualität</strong> <strong>von</strong> <strong>Software</strong><br />
<strong>und</strong> <strong>Software</strong>modellen
Was sind Bad (Code) Smells?<br />
‣ verdächtige Stellen im Code / im Modell<br />
‣ Hier lohnt es sich, genauer hinzuschauen.<br />
‣ Sollten eventuell verbessert werden.<br />
‣ Kondensierung <strong>von</strong> Erfahrungswissen<br />
‣ syntaktische Prüfung <strong>von</strong> Programmcode / des Modells<br />
hinsichtlich bestimmter Muster oder bestimmter Metrikenwerte<br />
‣ Beispiele für Bad Code Smells:<br />
• doppelter Code<br />
• lange Methoden<br />
• große Klassen<br />
11<br />
Thorsten Arendt: Seminar <strong>Qualität</strong> <strong>von</strong> <strong>Software</strong><br />
<strong>und</strong> <strong>Software</strong>modellen
Was ist Refactoring?<br />
‣ eine Technik im Rahmen der iterativen <strong>Software</strong>entwicklung<br />
‣ Restrukturierung der <strong>Software</strong> nach jedem Iterationsschritt<br />
‣ „Refactoring ist der Prozess, ein <strong>Software</strong>system so zu<br />
verändern, dass das externe Verhalten unverändert bleibt, der<br />
Code aber eine bessere Struktur erhält.“ (Martin Fowler)<br />
‣ Adaption <strong>von</strong> Refactoring ebenso auf Modellebene<br />
12<br />
Thorsten Arendt: Seminar <strong>Qualität</strong> <strong>von</strong> <strong>Software</strong><br />
<strong>und</strong> <strong>Software</strong>modellen
SEMINARTHEMEN<br />
13<br />
Thorsten Arendt: Seminar <strong>Qualität</strong> <strong>von</strong> <strong>Software</strong><br />
<strong>und</strong> <strong>Software</strong>modellen
Thematische Gliederung<br />
<strong>Qualität</strong>,<br />
<strong>Qualität</strong>skriterien <strong>und</strong><br />
<strong>Qualität</strong>ssicherung<br />
Metriken, Smells<br />
<strong>und</strong> Refactorings<br />
Klone in <strong>Software</strong><br />
<strong>und</strong> Modellen<br />
Testen<br />
14 Thorsten Arendt: Seminar <strong>Qualität</strong> <strong>von</strong> <strong>Software</strong><br />
<strong>und</strong> <strong>Software</strong>modellen
<strong>Qualität</strong>, <strong>Qualität</strong>skriterien <strong>und</strong> <strong>Qualität</strong>ssicherung<br />
Thema 1<br />
Problemlösungen bei der Wartbarkeit <strong>von</strong> <strong>Software</strong>systemen<br />
‣ Problem:<br />
• Fehler im <strong>Software</strong>-Design beeinflussen die Wartbarkeit bzw.<br />
Änderbarkeit eines <strong>Software</strong>systems<br />
• Das Auffinden dieser Fehler <strong>und</strong> deren Korrektur ist teilweise<br />
schwierig, zeitaufwändig <strong>und</strong> erfolgt manuell<br />
‣ Ansatz:<br />
• Automatisierte Generierung <strong>von</strong> Regeln zum Auffinden dieser<br />
Fehler <strong>und</strong> Korrektur mit minimalem Aufwand<br />
• Benutzung <strong>von</strong> Genetischen Algorithmen<br />
15 Thorsten Arendt: Seminar <strong>Qualität</strong> <strong>von</strong> <strong>Software</strong><br />
<strong>und</strong> <strong>Software</strong>modellen
<strong>Qualität</strong>, <strong>Qualität</strong>skriterien <strong>und</strong> <strong>Qualität</strong>ssicherung<br />
Thema 2<br />
Einfluss <strong>von</strong> Entwurfsmustern auf die <strong>Qualität</strong> <strong>von</strong> <strong>Software</strong><br />
‣ Problem:<br />
• Entwurfsmuster sind anerkannte Lösungen für wiederkehrende,<br />
allgemeine Probleme im <strong>Software</strong>-Design<br />
• Der Einfluss des Einsatzes <strong>von</strong> Entwurfsmustern auf die <strong>Qualität</strong><br />
der <strong>Software</strong> wird jedoch kontrovers diskutiert<br />
‣ Ansatz:<br />
• Theoretische <strong>und</strong> analytische Methode zum Vergleichen <strong>von</strong><br />
Entwurfsmustern <strong>und</strong> alternativen Designs<br />
16 Thorsten Arendt: Seminar <strong>Qualität</strong> <strong>von</strong> <strong>Software</strong><br />
<strong>und</strong> <strong>Software</strong>modellen
<strong>Qualität</strong>, <strong>Qualität</strong>skriterien <strong>und</strong> <strong>Qualität</strong>ssicherung<br />
Thema 3<br />
Prozessqualität in der modellgetriebenen Entwicklung <strong>von</strong><br />
Webanwendungen<br />
‣ Problem:<br />
• Es existieren viele Prozesse für die modellgetriebene Entwicklung<br />
<strong>von</strong> Webanwendungen, jedoch keine standardisierte Methode für<br />
die Bewertung ihrer <strong>Qualität</strong><br />
• Welcher Entwicklungsprozess ist warum besser als andere?<br />
‣ Ansatz:<br />
• Entwicklung einer Menge <strong>von</strong> <strong>Qualität</strong>skriterien für diese<br />
Entwicklungsprozesse auf Basis offizieller <strong>Qualität</strong>sstandards<br />
17 Thorsten Arendt: Seminar <strong>Qualität</strong> <strong>von</strong> <strong>Software</strong><br />
<strong>und</strong> <strong>Software</strong>modellen
<strong>Qualität</strong>, <strong>Qualität</strong>skriterien <strong>und</strong> <strong>Qualität</strong>ssicherung<br />
Thema 4<br />
Modellieren <strong>von</strong> ansprechenden UML-Klassendiagrammen<br />
‣ Problem:<br />
• Die Einhaltung <strong>von</strong> Formatierungsrichtlinien macht Code<br />
lesbarer <strong>und</strong> somit verständlicher<br />
• <strong>Software</strong>modelle (z.B. UML-Klassendiagramme) sollten<br />
selbstverständlich auch gut lesbar <strong>und</strong> verständlich sein<br />
‣ Ansatz:<br />
• Entwicklung einer umfassenden Taxonomie visueller Richtlinien<br />
hinsichtlich der ‚ästhetischen‘ <strong>Qualität</strong> <strong>von</strong> UML-<br />
Klassenmodellen<br />
18 Thorsten Arendt: Seminar <strong>Qualität</strong> <strong>von</strong> <strong>Software</strong><br />
<strong>und</strong> <strong>Software</strong>modellen
<strong>Qualität</strong>, <strong>Qualität</strong>skriterien <strong>und</strong> <strong>Qualität</strong>ssicherung<br />
Thema 5<br />
<strong>Qualität</strong>ssicherung <strong>von</strong> Modellen des Eclipse Modeling<br />
Framework (EMF)<br />
‣ Problem:<br />
• Die <strong>Qualität</strong>(ssicherung) <strong>von</strong> <strong>Software</strong> lässt sich oft auf die<br />
<strong>Qualität</strong>(ssicherung) der involvierten Modelle zurückführen<br />
• Wie kann die <strong>Qualität</strong> <strong>von</strong> <strong>Software</strong>modellen (z.B. <strong>von</strong> UMLoder<br />
domänenspezifischen Modellen) gesichert werden?<br />
‣ Ansatz:<br />
• Definition eines <strong>Qualität</strong>ssicherungsprozesses für<br />
<strong>Software</strong>modelle<br />
• Umfassende Werkzeugunterstützung in EMF<br />
19 Thorsten Arendt: Seminar <strong>Qualität</strong> <strong>von</strong> <strong>Software</strong><br />
<strong>und</strong> <strong>Software</strong>modellen
Metriken, Smells <strong>und</strong> Refactorings<br />
Thema 6<br />
Verbesserung der <strong>Qualität</strong> <strong>von</strong><br />
UML-Anwendungsfallmodellen<br />
‣ Problem:<br />
• Anforderungen an <strong>Software</strong>systeme werden häufig mit UML-<br />
Anwendungsfallmodellen modelliert<br />
• Die vermeintliche Einfachheit dieser Modellierungssprache führt<br />
jedoch oft zu inkonsistenten oder inkorrekten Modellen<br />
‣ Ansatz:<br />
• Auffinden <strong>und</strong> Korrektur <strong>von</strong> <strong>Qualität</strong>sproblemen in UML-<br />
Anwendungsfallmodellen mit Hilfe <strong>von</strong> ‚Anti-Patterns‘<br />
20 Thorsten Arendt: Seminar <strong>Qualität</strong> <strong>von</strong> <strong>Software</strong><br />
<strong>und</strong> <strong>Software</strong>modellen
Metriken, Smells <strong>und</strong> Refactorings<br />
Thema 7<br />
Refactoring <strong>von</strong> Prozessmodellen<br />
‣ Problem:<br />
• In der Industrie existieren sehr große Repositories mit Modellen<br />
für Geschäftsprozesse<br />
• Diese Repositories enthalten viele red<strong>und</strong>ante Informationen<br />
sowie Modelle mit hoher Komplexität<br />
‣ Ansatz:<br />
• Katalog bestehend aus Smells <strong>und</strong> Refactorings für<br />
Prozessmodelle <strong>und</strong> Repositories mit diesen Modellen<br />
21 Thorsten Arendt: Seminar <strong>Qualität</strong> <strong>von</strong> <strong>Software</strong><br />
<strong>und</strong> <strong>Software</strong>modellen
Metriken, Smells <strong>und</strong> Refactorings<br />
Thema 8<br />
Verschiedene Möglichkeiten der Anwendung <strong>von</strong><br />
Generalisierung<br />
‣ Problem:<br />
• Generalisierung ist ein adäquates Mittel für die Verbesserung<br />
der <strong>Qualität</strong> <strong>von</strong> <strong>Software</strong>code<br />
• In nicht-trivialen <strong>Software</strong>systemen ist das Auffinden <strong>von</strong> Stellen<br />
für die Anwendung <strong>von</strong> Generalisierung anspruchsvoll <strong>und</strong><br />
zeitaufwändig<br />
‣ Ansatz:<br />
• Entwicklung eines Werkzeuges speziell für das Auffinden <strong>von</strong><br />
Stellen für die Anwendung <strong>von</strong> Generalisierung<br />
22 Thorsten Arendt: Seminar <strong>Qualität</strong> <strong>von</strong> <strong>Software</strong><br />
<strong>und</strong> <strong>Software</strong>modellen
Klone in <strong>Software</strong> <strong>und</strong> Modellen<br />
Thema 9<br />
<strong>Software</strong>klone aufspüren <strong>und</strong> eliminieren<br />
‣ Problem:<br />
• Red<strong>und</strong>anter Code kann zu Problemen bei der Wartung <strong>von</strong><br />
<strong>Software</strong>systemen führen<br />
• Was sind <strong>Software</strong>klone, woher kommen sie, wie kann man sie<br />
auffinden <strong>und</strong> wie eliminieren?<br />
‣ Ansatz:<br />
• Überblick über die einschlägige Forschungsliteratur<br />
• Speziell: Benutzung <strong>von</strong> ‚Suffix Trees‘ in ASTs<br />
23 Thorsten Arendt: Seminar <strong>Qualität</strong> <strong>von</strong> <strong>Software</strong><br />
<strong>und</strong> <strong>Software</strong>modellen
Klone in <strong>Software</strong> <strong>und</strong> Modellen<br />
Thema 10<br />
Aufspüren <strong>von</strong> Klonen in UML-Klassenmodellen<br />
‣ Problem:<br />
• Klone kommen auch in <strong>Software</strong>modellen vor<br />
• Techniken <strong>und</strong> Algorithmen für das Auffinden <strong>von</strong> Klonen in<br />
<strong>Software</strong>code können nicht direkt für Modelle übernommen<br />
werden<br />
‣ Ansatz:<br />
• Entwicklung einer formalen Definition <strong>von</strong> Modellklonen<br />
• Entwicklung eines Algorithmus zum Auffinden <strong>von</strong> Modellklonen<br />
in UML-Klassendiagrammen inklusive prototypischer<br />
Implementierung<br />
24 Thorsten Arendt: Seminar <strong>Qualität</strong> <strong>von</strong> <strong>Software</strong><br />
<strong>und</strong> <strong>Software</strong>modellen
Testen<br />
Thema 11<br />
Erstellen <strong>von</strong> Testszenarien mit Hilfe<br />
<strong>von</strong> Aktivitätendiagrammen<br />
‣ Problem:<br />
• Aktivitätendiagramme werden oft für die Beschreibung aller<br />
möglichen Szenarien eines Anwendungsfalls benutzt<br />
• Die Identifikation aller möglichen Pfade (z.B. für die Erstellung<br />
<strong>von</strong> Tests) kann jedoch sehr anspruchsvoll sein<br />
‣ Ansatz:<br />
• Klassifizierung <strong>von</strong> Kontrollstrukturen <strong>und</strong> Transformation in ein<br />
dediziertes Modell (DSL), aus dem anschließend die<br />
Testszenarien generiert werden<br />
25 Thorsten Arendt: Seminar <strong>Qualität</strong> <strong>von</strong> <strong>Software</strong><br />
<strong>und</strong> <strong>Software</strong>modellen
Testen<br />
Thema 12<br />
Testen <strong>von</strong> Modelltransformationen<br />
‣ Problem:<br />
• Modelltransformationen sind wesentliche Artefakte in der<br />
modellgetriebenen <strong>Software</strong>entwicklung<br />
• z.B. <strong>von</strong> Plattform-unabhängigen zu -abhängigen Modellen<br />
• Selbstverständlich müssen diese auch getestet werden<br />
‣ Ansätze:<br />
• Orakel-Funktion für die Validierung der transformierten Testmodelle<br />
(Basis: Bekannte, gute Beispiel-Transformationen)<br />
• Definition einer Menge <strong>von</strong> Regeln für die Bewertung der <strong>Qualität</strong> <strong>von</strong><br />
Testmodellen (‚repräsentative Testfälle‘)<br />
26 Thorsten Arendt: Seminar <strong>Qualität</strong> <strong>von</strong> <strong>Software</strong><br />
<strong>und</strong> <strong>Software</strong>modellen
ORGANISATION<br />
(TEIL 2)<br />
27<br />
Thorsten Arendt: Seminar <strong>Qualität</strong> <strong>von</strong> <strong>Software</strong><br />
<strong>und</strong> <strong>Software</strong>modellen
Zeitplan<br />
‣ Themenvergabe heute<br />
‣ Einarbeitung in das Thema im April + Mai 2013<br />
‣ Erster Vorbesprechungstermin bis Freitag, 24. Mai 2013<br />
• Bis dahin: Literatur gelesen, erster Plan für den Vortrag<br />
• Ggf. weitere Termine<br />
‣ Abgabe<br />
• erste Version der Ausarbeitung <strong>und</strong> der Vortragsfolien bis<br />
Freitag, 07. J<strong>uni</strong> 2013<br />
• Endversion eine Woche vor Seminar<br />
‣ Blockseminar Mitte / Ende J<strong>uni</strong> 2013<br />
28 Thorsten Arendt: Seminar <strong>Qualität</strong> <strong>von</strong> <strong>Software</strong><br />
<strong>und</strong> <strong>Software</strong>modellen
Hinweise für Ausarbeitung <strong>und</strong> Vortrag<br />
‣ Ausarbeitung<br />
• Ziel: Verständnis <strong>und</strong> Aufbereitung <strong>von</strong> neueren Fachpublikationen<br />
• Nach Möglichkeit mit eigenen Beispielen<br />
• Mit LaTex geschrieben<br />
• LNCS (http://www.springer.com/computer/lncs/lncs+authors)<br />
• 12 – 15 Seiten<br />
• Proseminar: 17 – 20 Seiten + Zusatzaufgabe<br />
‣ Vortrag<br />
• 30 Minuten (Vortrag + Diskussion)<br />
• Proseminar: 40 Minuten<br />
29 Thorsten Arendt: Seminar <strong>Qualität</strong> <strong>von</strong> <strong>Software</strong><br />
<strong>und</strong> <strong>Software</strong>modellen
THEMENVERGABE UND<br />
TERMINIERUNG<br />
30<br />
Thorsten Arendt: Seminar <strong>Qualität</strong> <strong>von</strong> <strong>Software</strong><br />
<strong>und</strong> <strong>Software</strong>modellen
Themenvergabe<br />
31<br />
Thorsten Arendt: Seminar <strong>Qualität</strong> <strong>von</strong> <strong>Software</strong><br />
<strong>und</strong> <strong>Software</strong>modellen
Terminierung<br />
32<br />
Thorsten Arendt: Seminar <strong>Qualität</strong> <strong>von</strong> <strong>Software</strong><br />
<strong>und</strong> <strong>Software</strong>modellen