Softwarequalität. Gabriele Taentzer Philipps-Universität Marburg. Sommersemester 2016

Ähnliche Dokumente
Softwarequalität: Einführung. 15. April 2015

Modellgetriebene Softwareentwicklung. Gabriele Taentzer WS 2012/2013 Philipps-Universität Marburg

Software Evolution. Prof. Dr. Gabriele Taentzer Dr. Thorsten Arendt Wintersemester 2015/2016

Softwarequalität: Zusammenfassung und Ausblick. 17. Juli 2013

Softwarequalitätsmanagement. 24. April 2013

Modellgetriebene Entwicklung von Webanwendungen: eine erste Analyse

Qualität von Software und Softwaremodellen Seminar der AG Softwaretechnik im Sommer-Semester 2013

Software Engineering 1. Einführung und Begriffe

Software Engineering

Softwarekostenmodell - Was ist das? Welche gibt es?

Womit wir uns beschäftigen

Systematisches Testen der Funktionalität von Softwaresystemen. 17. Juni 2015

Kundenstamm öffnen. Artikelstamm öffnen 50,86 50,86 50,86 50,86 52,00 50, , ,86 52,00 52,00

Seminar Softwareentwicklung in der Wissenschaft

Grundlagen des Datenschutzes und der IT-Sicherheit (9) Vorlesung im Sommersemester 2005 von Bernhard C. Witt

Zustandsdiagrammeditor Pflichtenheft, Version 3.0

Softwarequalität und -test

Handbuch zum Testen von Web-Applikationen

Software Engineering 6) Verifikation und Validation

Software-Refactoring. 29. Mai 2013

Softwareentwicklung in der Wissenschaft. Planet Simulator. Enno Köster. Enno Köster / 24

Department of Computer Science Chair of Software Engineering Faculty of Engineering. Grundlagen der Softwarearchitektur (im Softwarepraktikum)

Softwaremetriken. 15. Mai 2013

Grundlagen der Softwarearchitektur (im Softwarepraktikum)

Kapitel 5: Statische Analyse

Aufgabe 3 Erstellt am: Softwaretechnik Praktikum SS06 Verantwortliche: Irina Justus

Bachelorarbeit SOP-Datenbank mit Webinterface. Pflichtenheft. Version 0.3

Inhalt. TEIL I ABAP - gestern, heute und morgen. Einleitung 15

Qualitätssicherung. Was ist Qualität?

Grundlagen der Softwarearchitektur (im Softwarepraktikum)

Pflichtenheft 1 / 1. Gruppe: Geo05 Verantwortlicher: Martin Wannagat, Aron Schneider

Programmiermethodik Vorlesung und Praktikum SS 2001

Technische Schulden in Architekturen erkennen und beseitigen

Willkommen zur Vorlesung. im Sommersemester 2012 Prof. Dr. Jan Jürjens

Methoden der agilen Softwareentwicklung für eingebettete Systeme

Modulhandbuch Sommersemester 2014

Formale Verifikation von Software. 10. Juli 2013

Quantifizierung nicht-funktionaler Anforderungen JURISTISCHES IT-PROJEKTMANAGEMENT WS1617 DOZENT: DR. FRANK SARRE LMU MÜ NCHEN ZHENHAO LI

2 Marathon unsere Beispielanwendung 9

Gruppe: swp08-6 Veranwortlicher: Johannes Kreidler

Qualität, Fehler un Testvorgehen

Einführung in die Softwaretechnik 1. Einführung und Begriffe

5 ECTS. 4 Modulverantwortlicher Prof. Dr. Francesca Saglietti

Was kennzeichnet qualitativ hochwertige Software Systeme? Wie kann hohe Software Qualität erreicht werden?

Zusicherungen und Laufzeit Überwachungen in der modellbasierten Software Entwicklung

Softwaremetriken. 29. April 2015

Quantität für Qualität

Kontinuierliche Architekturanalyse. in 3D

Logo in neuer Logosystematik einfügen: Bewertung der Softwarequalität eines bestehenden Softwaresystems an Hand von

Software-Refactoring. 27. Mai 2015

Anti-Patterns. Zuverlässige Software SS2009 Friedrich Gensicke

Pflichtenheft. Didier Cherix. Christopher Hermann. Frank Stumpf SWP CHRISTOPHER HERMANN, DIDIER CHERIX, FRANK STUMPF

ARCHITEKTUR KATA als Trainingsform für agile Teams

1. Einführung 1.1. Definitionen

Erfahrungen in Bezug auf Usability bei der Analyse nicht-funktionaler Anforderungen mit MOQARE

Softwarequalität und -test

Anforderungen. Was ist eine Anforderung? Formulierungsschablonen Das Anforderungsdiagramm Glossar. Dr. Beatrice Amrhein

Software- Qualitätsmanagement

Software Architecture Discovery

GELEBTE ENTWICKLUNGSRICHTLINIEN

Modell zur Einflussanalyse Ein Modell zur Einflussanalyse von Methodenänderungen in Entwicklungsprozessen

Qualität definieren und erreichen

Styleguides als Werkzeug für bessere Software-Usability im Gesundheitswesen

Inhaltsverzeichnis. Teil I Grundlagen 1

Werkzeuggestützte Softwareprüfungen Statische Analyse und Metriken

Inhalte des Moduls Programmieren 1

Langlebige Softwarearchitekturen - technische Schulden beherrschen und abbauen

Praxiswissen Softwaretest- Technical Test Analyst. Test Analyst und. dpunkt.verlag. Judy McKay. Advanced Level nach ISTQB-Standard

Schwerpunktfach Wirtschaftsinformatik im Masterstudiengang Wirtschaftspädagogik (M.Sc.) ( )

Softwarequalität: Definitionen, Wünsche, Grenzen

Modellgetriebene Softwareentwicklung von mobilen Anwendungen. Gabriele Taentzer WS 2014/15 Philipps-Universität Marburg

Lastenheft. Entwicklung des Tools EasyFeedback zur Erstellung von Umfragen

Requirements Engineering I. Nicht-funktionale Anforderungen

Programmieren in Java

Zuverlässigkeitstheorie

Reengineering und Refactoring von Softwarearchitekturen

Grundlagen Software Engineering

Software-Engineering für langlebige Systeme

Data Mining und maschinelles Lernen

Grundlagen Internet-Technologien INF3171

Echolot Qualitätssicherung mit Sonar

Softwaretechnikpraktikum SS Qualitätsmanagement I. 1. Überblick. Qualität. Qualitätsmerkmal

Software-Praktikum. Gabriele Taentzer Philipps-Universität Marburg Sommersemester 2013

Formale Verifikation von Software. 8. Juli 2015

Gebrauchstauglichkeit. Christian Johner

ISIS. Das Navigationssystem für angemessene Qualität und hohe Effizienz

Pflichtenheft. Hierarchisches Petrinetz - Komposition

Qualitätssicherung von Software (SWQS)

Übung 6: Feinentwurf. Prof. Dr. Dr. h.c. Manfred Broy Dr. Herbert Ehler, Martin Feilkas 6. Juli 2006 Bernd Spanfelner, Sebastian Winter

PSE Kick-off. Prof. Bernhard Beckert, Dr. Mattias Ulbrich, Alexander Weigl

Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick. 7. Februar 2013

Software Engineering

POCKET POWER. Qualitätssicherung Produktionsprozess

Medizinisch-naturwissenschaftliches Grundverständnis... 21

Der Lehrstuhl für Softwaretechnik und Programmiersprachen Prof. Dr. Wolfgang Reif

Transkript:

Softwarequalität Gabriele Taentzer Philipps-Universität Marburg Sommersemester 2016

Organisation der LV Umfang: 6 SWS, 9 ECTS Punkte Veranstalter: Gabriele Taentzer, Stefan John Kontakt: taentzer@mathematik.uni-marburg.de, Raum 05 D 13, Tel: 21532 sjohn@mathematik.uni-marburg.de, Raum: 05 D 12, Tel: 21511 Termine: VL: Mi 10.15 11.45 h, Seminarraum XV VL: Mi 12.15 13.45 h, Seminarraum XV UE: Mi 14.15 15.45 h, Seminarraum XV Taentzer Softwarequalität 2016 2

Organisation der LV Aufbaumodul in Bachelor-Informatik Voraussetzung: Praktische Informatik 1 und 2 Einführung in die Softwaretechnik und SW-Praktikum Scheinkriterien: Übungsaufgaben 1 Kurzvortrag (ca. 20 min) Abschlussklausur / mündliche Prüfung Homepage der LV: www.uni-marburg.de/fb12/swt Lehre Softwarequalität Kopien der Folien, Literaturhinweise, Übungen, ILIAS-Plattform Taentzer Softwarequalität 2016 3

Lehrveranstaltungsstil Konzeptvermittlung in der Vorlesung anhand von Folien und weiteren Beispielen Folienkopien sind in ILIAS verfügbar Beispiele häufig an der Tafel Viel Diskussion und Übung Literatur häufig in Englisch Online verfügbar Zwischenfragen und Kommentare während der Vorlesung sind grundsätzlich erwünscht. Taentzer Softwarequalität 2016 4

Lernziele Verständnis von Softwarequalität und -qualitätsmanagement Verständnis für die Möglichkeiten und Grenzen einzelner Methoden und Techniken zur Messung und zur Verbesserung von Softwarequalität Einarbeitung in spezifische Aspekte der Softwarequalität und Vorstellung dieser Grundverständnis für die in der LV vorgestellten Werkzeuge durch Übungen und Kurzvorträge vertieft Taentzer Softwarequalität 2016 5

Inhalt Einführung in das Thema Softwarequalität Softwarequalitätsmanagement Syntaktische Verfahren Softwaremetriken Entwicklungsrichtlinien Bad Code Smell und Refactoring Design Patterns und Antipatterns Semantische Verfahren Testverfahren und Profiling Validations- und Verifikationstechniken Zusammenfassung und Ausblick Taentzer Softwarequalität 2016 6

Softwarequalität: Einführung 13. April 2016

Überblick Warum ist Softwarequalität wichtig? Was ist Softwarequalität? Wie erreicht man Softwarequalität? Taentzer Softwarequalität 2016 8

Taentzer Softwarequalität 2016 9

Taentzer Softwarequalität 2016 10

Taentzer Softwarequalität 2016 11

Taentzer Softwarequalität 2016 12

Taentzer Softwarequalität 2016 13

Taentzer Softwarequalität 2016 14

Was ist Softwarequalität? Ergonomie Erlernbarkeit Korrektheit Zuverlässigkeit Sicherheit Installierbarkeit Performanz Wiederverwendbarkeit anforderungsgerecht Testbarkeit Taentzer Softwarequalität 2016 15

Qualitätsmerkmale für Software Funktionalität: Korrektheit, Angemessenheit, Interoperabilität, Ordnungsmäßigkeit, Sicherheit Zuverlässigkeit: Reife, Fehlertoleranz, Wiederherstellbarkeit Benutzbarkeit: Verständlichkeit, Bedienbarkeit, Erlernbarkeit, Robustheit Effizienz: Wirtschaftlichkeit, Zeitverhalten, Verbrauchsverhalten Wartungsfreundlichkeit: Analysierbarkeit, Änderbarkeit, Stabilität, Testbarkeit Übertragbarkeit: Anpassbarkeit, Installierbarkeit, Konformität, Austauschbarkeit Taentzer Softwarequalität 2016 16

Der Nachfolger: ISO 25010 Taentzer Softwarequalität 2016 17

Ist Softwarequalität gleich Softwarequalität? Was ist das Werteverständnis der beteiligten Personen? Qualitätsanforderungen können sich gegenseitig widersprechen. Qualitätsanforderungen sind abhängig von der Art der Software abhängig von den Kundenwerten abhängig von den Qualitätsvorstellungen der Entwickler abhängig vom Entwicklungsprozess Taentzer Softwarequalität 2016 18

Korrektheit Beispiel: Qualität von eingebetteten Systemen Korrektheit, Korrektheit, Zuverlässigkeit Fehlertoleranz Keine Eingabe darf das System zum Absturz bringen. Effizienz Kleine Speicher Übertragbarkeit Viele Varianten Wartungsfreundlichkeit Kompromiss mit Effizienz www4.cs.fau.de mindstorms.lego.com Taentzer Softwarequalität 2016 19

Beispiel: Mobile Anwendungen Funktionalität Korrektheit Angemessenheit Sicherheit Zuverlässigkeit Fehlertoleranz Benutzbarkeit kleine Bildschirme viele Gerätetypen Effizienz bzgl. Energie und Netz Wartungsfreundlichkeit apple.com samsung.com Taentzer Softwarequalität 2016 20

Beispiel: Textverarbeitungssoftware Funktionalität Korrektheit Angemessenheit Zuverlässigkeit Reife Fehlertoleranz Benutzbarkeit Leichte Erlernbarkeit verschiedene Benutzertypen viel Funktionalität Wartungsfreundlichkeit Langlebige Software openoffice.org Taentzer Softwarequalität 2016 21

Wegweiser zur Qualitätssicherung Höchste Priorität: Korrektheit /Fehlertoleranz Wie prüft man die Korrektheit/Fehlertoleranz einer Software? Auch häufig genannt: Wartbarkeit und Übertragbarkeit Wann ist Software gut wartbar? Wann lässt sie sich gut auf andere Umgebungen übertragen? Angemessenheit (bzgl. der Anforderungen): Wann sind Anforderungen gut spezifiziert? Wie prüft man, ob die Software ihren Anforderungen entspricht? Benutzbarkeit: Wann ist eine Software gut benutzbar? Wie kann man Benutzbarkeit systematisch prüfen? Taentzer Softwarequalität 2016 22

Wie sieht es mit der Codequalität aus? Taentzer Softwarequalität 2016 23

Verfahren zur Qualitätsmessung Definition von Qualitätsmanagementprozessen quantitative Messungen: Softwaremetriken Überprüfung syntaktischer Muster: Entwicklungsrichtlinien Entwurfsmuster und Softwarearchitekturen Beispiele und Gegenbeispiele: Testverfahren und Profiling Überprüfung semantischer Eigenschaften: Validation, Verifikation Taentzer Softwarequalität 2016 24

Kurzvorträge Eclipse-Plugin Checkstyle (Metriken und Smells) Eclipse-Plugin PMD (Metriken und Smells) Eclipse User Interface Guidelines Eclipse-Refactoring-Tool Sonargraph-Explorer (Statische Code-Analysen) Eclipse-Plugin: EclEmma (Java Code Coverage) Mockito: Mock-Objekte für Unit-Tests von Java-Programmen Guidelines für testbaren Code (http://misko.hevery.com/code-reviewers-guide) Eclipse-Plugin Selenium (Testen von graphischen Oberflächen) Java Mission Control (Oracle) (Performanzanalyse) Java Pathfinder (Verifikation von Java-Code) Taentzer Softwarequalität 2016 25

Zusammenfassung Software ist häufig fehlerhaft, manchmal mit fatalen Folgen. Der Begriff Softwarequalität umfasst viele verschiedene Aspekte. Je nach Art des Softwaresystems variiert die Priorität einzelner Qualitätsaspekte. Es gibt viele Ansätze, die Softwarequalität zu verbessern. Wir konzentrieren uns auf die Verbesserung des Softwaresystems und nicht des Entwicklungsprozesses. Wir betrachten Standardtechniken, um Softwarequalität zu messen und zu verbessern. Nächste Woche: Softwarequalitätsmanagement Taentzer Softwarequalität 2016 26