Vorlesung Softwarequalität im Sommersemester 2022
Im Sommersemester 2022 gibt es wieder der Vorlesung Softwarequalität im Masterstudiengang Informatik an der Westsächsischen Hochschule Zwickau. Die Vorlesung findet jeden zweiten Montag von 9-15 Uhr statt (genaue Zeiten folgen noch).
Neuigkeiten zur Vorlesung wird es immer hier auf dieser Seite geben.
Wichtig: Prüfungsvorleistung
Die formalen Anforderungen an die Prüfungsvorleistung werden in der ersten Vorlesung bekannt gegeben und dann hier zur Verfügung gestellt. Die Links zu den Büchern sind jeweils im Abschnitt zur Vorlesung angegeben.
Vorlesung 1 (21.03.2022): Was bedeutet Qualität für Software?
Inhalte
- Organisatorisches zur Prüfungsvorleistung
- Einführung zu Software-Qualität
- Perspektiven auf Software
- Was ist Qualität?
- Von der ISO 9126 zur ISO 25010
- Prozess- und Produktqualität
- Einordnung im Software-Engineering
- Qualitätsmanagement
- Softwarequalität in der Praxis
Material und weiterführende Links
- Wallmüller, Ernest (2011): Software Quality Engineering, Carl Hanser Verlag
- Wikipedia-Artikel zur Einführung
Vorlesung 2 (04.04.2022): Die Vermessung von Qualität
In der zweiten Vorlesung dreht sich alles um das Thema Messen und Metriken. Beginnen mit der Frage, was eigentlich eine Messung ist gehen wir über Code-Metriken zur Vermessung ganzer Software-Systeme.
Schlussendlich schauen wir uns natürlich, was das ganze Messen für die Anwender von Software bewirkt und wie wir anhand unserer Messungen sinnvolle Entscheidungen treffen können.
Inhalte
- Messen und Metriken
- Source-Code-Metriken
- McCabes Zyklomatische Komplexität
- Robert C. Martins Metriken zur Objektorientierung
- Architekturmetriken
- Metriken für die Prozessperspektive
- Metriken für die Anwenderperspektive
- Abstraktionsgrade
- Entscheidungen treffen mit Metriken
Material und weiterführende Links
- Bortz, Jürgen & Döring, Nicola (2006): Forschungsmethoden und Evaluation für Human-und Sozialwissenschaftler, Springer Verlag
- Chidamber, Shyam R. & Kemerer, Chris F. (1994): A Metrics Suite for Object Oriented Design, in IEEE Transactions on Software Engineering, vol. 20, no. 6, pp. 476-493, June 1994, doi: 10.1109/32.295895.
- Ebert, Christof & Dumke, Reiner (2007): Software Measurement, Springer Verlag
- Hubbard, Douglas W. (2014): How to Measure Anything, John Wiley & Sons
- Martin, Robert C. (1994): OO Design Quality Metrics
- Artikel zum Download
- McCabe, Thomas J. (1976): A Complexity Measure, in IEEE Transactions on Software Engineering, vol. SE-2, no. 4, pp. 308-320, Dec. 1976, doi: 10.1109/TSE.1976.233837.
- Artikel zum Download
- Sneed, Harry M.; Seidl, Richard ; Baumgartner, Manfred (2010): Software in Zahlen, Carl Hanser Verlag
- Starke, Gernot (2009): Effektive Software-Architekturen, Carl Hanser Verlag
- Wallmüller, Ernest (2011): Software Quality Engineering, Carl Hanser Verlag
Vorlesung 3 (02.05.2022): Die Architektur von Qualität
Inhalte
- Einführung
- Kommunikation & Kollaboration
- Technische Schulden
- Frameworks & Stile
- Conway‘s Law
- AIM42 & Pattern
- ATAM – Architecture Tradeoff Analysis Method
- Vorgehensmuster
Material und weiterführende Links
- Website arc42
- Website Architecture Improvement Method
- Armour, Phil (2000): The Five Orders of Ignorance, in: Communications of the ACM, October 2000/Vol. 43, No. 10
- Artikel zum Download
- Armour, Phil (2003): The Laws of Software Process: A New Model for the Production and Management of Software, Auerbach Publications
- Starke, Gernot (2009): Effektive Software-Architekturen, Carl Hanser Verlag
- Toth, Stefan (2019): Vorgehensmuster für Softwarearchitektur, Carl Hanser Verlag
Vorlesung 4 (16.05.2022): Vorbereitung der Gruppenvorträge
Vorlesung 5 (30.05.2022): Gastbeitrag & Qualität aus Anwenderperspektive
Inhalte
- Einführung
- Dialoggestaltung
- Usability Engineering
- Usability Evaluation
- Guidelines
- Inspektionsmethoden
- Usability Tests
- Vorgehensmuster
Material und weiterführende Links
- Usability and UX Qualification Board
- Geis, Thomas & Tesch, Guido (2019): Basiswissen Usability und User Experience, dpunkt.verlag
- Sarodnick, Florian & Brau, Henning (2015): Methoden der Usability Evalution, Hogrefe Verlag
- Heinsen, Sven & Vogt, Petra (2003): Usability praktisch umsetzen, Carl Hanser Verlag
- Preim, Bernhard (1999): Methoden der Usability Evalution, Springer Verlag
- Oppermann, Reinhard & Reiterer, Harald (1992): Evaluation von Benutzerschnittstellen
Vorlesung 6 (20.06.2022) & 7 (27.06.2022):: Prüfungsvorleistung
Soziale Systeme und die Qualität von Software
Agile Softwareentwicklung ist der de-facto Standard geworden, kaum ein Unternehmen arbeitet noch nach anderen Methoden. Damit agiles Arbeiten funktionieren kann, muss die Organisation gewisse Eigenschaften aufweisen.
In dieser Vorlesung erkunden wir diese Eigenschaften und die Frage, wie Aspekte, Eigenschaften und Verhaltensweisen der Organisation als sozialen Systems auf die Softwareentwicklung wirken.
Dazu habe ich zwei Bücher ausgewählt, die von zwei Gruppen in der Vorlesung vorgestellt werden.
- Simon, Fritz B. (2015): Einführung in Systemtheorie und Konstruktivismus, Carl-Auer Verlag
- Kühl, Stefan (2011): Organisationen - Eine sehr kurze Einführung, VS Verlag für Sozialwissenschaften
Ethik und Verantwortung als Qualität von Software
Wir leben im Zeitalter von Big Data und künstlicher Intelligenz. Deshalb möchte ich mit euch darüber diskutieren, welche Auswirkungen Qualität in Algorithmen auf das Leben von Menschen haben kann.
Dazu habe ich zwei Bücher ausgewählt, die von zwei Gruppen vorgestellt werden. Im Anschluss daran besprechen wir noch einige grundlegende Fragen zu Relevanz von Qualitätsbetrachtungen in diesem Umfeld.
- Criado-Pérez, Caroline (2019): Invisible Women: Exposing Data Bias in a World Designed for Men, Chatto & Windus (Deutsch: Unsichtbare Frauen: Wie eine von Männern gemachte Welt die Hälfte der Bevölkerung ignoriert, BTB)
- O’Neil, Cathy (2017): Weapons of Math Destruction: How Big Data Increases Inequality and Threatens Democracy, Penguin (Deutsch: Angriff der Algorithmen: Wie sie Wahlen manipulieren, Berufschancen zerstören und unsere Gesundheit gefährden, Carl Hanser Verlag)
Software verstehen lernen
Sich Software zu erschließen ist eine spannende Aufgabe. Zu verstehen, wie sich Menschen solche komplexen Systeme wie Sofware erschließen können, bedarf des Verstehens zweier unterschiedlicher Ebenen. Zum einen werden praktische Methoden benötigt, wie existierende Software dekonstruiert und aufgearbeitet werden kann. Zum anderen bedarf eines Verstehens, wie Menschen ein Bild der Welt konstruieren und wie Denken eigentlich funktioniert.
- Feathers, Michael C. (2015): Working Effectively with Legacy Code, Pearson
- Maturana, Humberto R. & Varela, Francisco J. (1984): The Tree of Knowledge: The Biological Roots of Human Understanding, Shambhala (Deutsch: Der Baum Der Erkenntnis. Die Biologischen Wurzeln Des Menschlichen Erkennens, Fischer Verlag)
Prüfung
Die Prüfung findet am 26.07. und 27.07. statt und dauert jeweils 25 Minuten. Seid bitte 10-15 Minuten vor eurem Termin vor Ort.
FAQ zur Prüfung
- Welche Inhalte sind Teil der Prüfung?
A: Wir stellen Fragen zu allen 7 Vorlesungen. Auch zu den Inhalten, die aus den Gruppenarbeiten resultieren. - Welche Fragen werden gestellt? A: Wir stellen ausschließlich Fragen zu den behandelten Inhalten. Die Fragen in der Liste sind Beispiele, in der Prüfung können natürlich auch andere Dinge gefragt werden.
- Wie lange dauert die Prüfung?
A: Insgesamt 30 Minuten. Das Prüfungsgespräch dauert 20-25 Minuten, dann beraten wir uns noch 5 Minuten und geben das Resultat bekannt. - Wo wird die Prüfung stattfinden?
A: Wird rechtzeitig bekanntgegeben. - Wann wird die Prüfung stattfinden?
A: Wird rechtzeitig bekanntgegeben. - Haben die späteren Teilnehmer nicht einen Vorteil?
A: Könnte man denken, passiert aber nicht. ;-)
Beispiele zu den Prüfungsfragen
Hinweis: Qualität bezieht sich in diesem Kontext immer auf Software.
- Nenne und erkläre eine Definition von Qualität für Software.
- Welche Qualitätsmerkmale beschreibt die ISO 25010?
- Welche Bereiche gehören zum Qualitätsmanagement?
- Beschreibe das magische Dreieck der Qualität.
- Was ist Messen?
- Was ist eine Metrik und wie kann sie abgebildet werden?
- Was gehört zur Vorbereitung einer Messung?
- Warum sollte man Qualität messen?
- Welche Dimensionen von Qualität beschreibt Sneed?
- Welche Messobjekte beschreibt Sneed?
- Beschreibe den E4 Measurement Process.
- Welche Herausforderungen gibt es bei der Messung von Qualität?
- Erkläre die zyklomatische Komplexität nach McCabe?
- Erkläre die Martin-Metrik
- Welche Perspektiven auf Software-Architektur müssen hinsichtlich der Qualität betrachtet werden?
- Beschreibe den Prozess einer Architekturbewertung nach ATAM.
- Nenne und erkläre zwei der Metriken von Chidamber und Kemerer.
- Wie kann Prozessqualität gemessen werden?
- Erkläre die Goal-Question-Metrik-Methode mit einem Beispiel.
- Nenne und erkläre eine Definition für Software-Architektur.
- Wo ordnet sich Software-Architektur in den anderen Architekturdisziplinen ein?
- Welche Aufgaben mit Qualitätsbezug haben Software-Architekten?
- Welche Kommunikationswerkzeuge stehen Architekten zur Verfügung?
- Was sind technische Schulden?
- Was besagen Lehman’s Laws?
- Wie klassifiziert Fowler technische Schulden?
- Erkläre die 5 Orders of Ignorance anhand eines Beispiels.
- Erkläre das Technical Debt Balance Sheet.
- Erkläre Conway’s Law.
- Wie ist die häufigste Fehlinterpretation von Conways’s Law in der IT?
- Erkläre Komponenten-Teams und Feature-Teams.
- Wann solche welche Art von Team genutzt werden?
- Aus welchen Elementen besteht ein Pattern?
- Wie können projektspezifische Pattern erkannt werden?
- Beschreibe die vier Kategorien von Vorgehensmustern für Architektur mit jeweils einem Beispiel.
- Wie lautet die Definition von Usability?
- Wie lautet die Definition von User Experience?
- Beschreibe den menschenzentrierten Gestaltungsprozess.
- Beschreibe drei wichtige Teile der ISO 9241.
- Erkläre das ABC-Modell.
- Erkläre den Prozess des Usability Engineering.
- Was sind die 7 Grundsätze der Dialoggestaltung nach ISO 9241-110?
- Erkläre drei Praktiken aus dem Usability Engineering.
- Erkläre drei wichtige Entwurfsprinzipien.
- Erkläre drei Beispiele für wichtige Kapitel einer Usability-Guideline.
- Erkläre GOMS an einem Beispiel.
- Welche zusätzlichen Aspekte beschreiben Sarodnick & Brau im Vergleich zur ISO 9241?
- Was war die herausragende Erkenntnis von Landauer & Neilson zu Usability Tests?
- Was macht eine Organisation aus?
- Wie wirkt sich die informelle Organisationsstruktur auf Softwareprojekte aus?
- Wie funktioniert Rückkopplung?
- Was ist die nicht-triviale Maschine?
- Erkläre den Begriff “Weapon of Math Destruction”
- Erkläre den Gender Data Gap
Sonstiges
Für alle weiteren Fragen zwischendurch bin ich über die links stehende Kanäle erreichbar.
Die Inhalte und Materialien, die ich für die Vorlesung erstellt habe, sind unter CC BY-SA 4.0 verfügbar. Anders formuliert: Ich freue mich, wenn ihr sie benutzt mindestens ebenso sehr, wie über die Quellenangabe.