Kapitel 3 Software Quality III

Ähnliche Dokumente
Kapitel 1 Applikations-Architektur VIII

Software-Refactoring. 29. Mai 2013

Ich habe eine Nachricht für Sie

Software-Refactoring. 27. Mai 2015

Can I use an older device with a new GSD file? It is always the best to use the latest GSD file since this is downward compatible to older versions.

Dexatek's Alexa Smart Home Skills Instruction Guide

Registration of residence at Citizens Office (Bürgerbüro)

Exercise (Part II) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

Exercise (Part XI) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

Agile Development vs. Security Requirements

DAS ERSTE MAL UND IMMER WIEDER. ERWEITERTE SONDERAUSGABE BY LISA MOOS

Refactoring. Vortrag im Rahmen des Softwareprojekts: Übersetzerbau. Referenten: Vivienne Severa Alpin Mete Sahin Florian Mercks. Datum:

Kapitel 1 Applikations-Architektur VI

DAS ZUFRIEDENE GEHIRN: FREI VON DEPRESSIONEN, TRAUMATA, ADHS, SUCHT UND ANGST. MIT DER BRAIN-STATE-TECHNOLOGIE DAS LEBEN AUSBALANCIEREN (GE

Technische Universität Kaiserslautern Lehrstuhl für Virtuelle Produktentwicklung

Interkulturelle Kompetenzen: A test for tourists

ZUR VORBEREITUNG AUF IHR SEMINAR ITIL EXPERT ALL-IN-1

Mit Legacy-Systemen in die Zukunft. adviion. in die Zukunft. Dr. Roland Schätzle

PONS DIE DREI??? FRAGEZEICHEN, ARCTIC ADVENTURE: ENGLISCH LERNEN MIT JUSTUS, PETER UND BOB

NEWSLETTER. FileDirector Version 2.5 Novelties. Filing system designer. Filing system in WinClient

Magic Figures. We note that in the example magic square the numbers 1 9 are used. All three rows (columns) have equal sum, called the magic number.

EINFACH REINE HAUT: DAS BUCH GEGEN PICKEL, AKNE UND UNREINE HAUT (EINFACH... 1) (GERMAN EDITION) BY MOIN YAMINA

Universität Bielefeld. Softwarepraktikum. Gernot A. Fink SS Rückblick extreme Programming (XP)

Refactorings in großen Softwareprojekten

Software EMEA Performance Tour Juni, Berlin

Collections und Generics

Automatisierte Software-Qualitätsmessung Erfahrungsbericht aus einem agilen Team

The process runs automatically and the user is guided through it. Data acquisition and the evaluation are done automatically.

Die Bedeutung neurowissenschaftlicher Erkenntnisse für die Werbung (German Edition)

Der Adapter Z250I / Z270I lässt sich auf folgenden Betriebssystemen installieren:

Automatisierter Java EE Entwicklungs-Lifecycle mit WebLogic Server 12c. Robin Müller-Bady Systemberater, Oracle Deutschland

The Indicative MOOD. We re starting with the indicative. The vast majority of sentences you use are in this MOOD.

LEBEN OHNE REUE: 52 IMPULSE, DIE UNS DARAN ERINNERN, WAS WIRKLICH WICHTIG IST (GERMAN EDITION) BY BRONNIE WARE

Extracting Business Rules from PL/SQL-Code

Corporate Digital Learning, How to Get It Right. Learning Café

Was hat Ihr Software-Zoo mit dem. modernen Arbeitsplatz zu tun?

Exercise (Part V) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

Lukas Hydraulik GmbH Weinstraße 39 D Erlangen. Mr. Sauerbier. Lukas Hydraulik GmbH Weinstraße 39 D Erlangen

DIGICOMP OPEN TUESDAY AKTUELLE STANDARDS UND TRENDS IN DER AGILEN SOFTWARE ENTWICKLUNG. Michael Palotas 7. April GRIDFUSION

Der Buddhismus im Vergleich mit dem Evangelium der Bibel: Ist das Leben Leiden? Missionstheologischer Exkurs Christentum- Buddhismus (German Edition)

Das ist gut für die Gesundheit

Martin Luther. Click here if your download doesn"t start automatically

Max und Moritz: Eine Bubengeschichte in Sieben Streichen (German Edition)

IT-Basics 2. DI Gerhard Fließ. Vorgehensmodelle

Level 1 German, 2014

Experts in agile software engineering. Software Architektur andrena objects ag

VGM. VGM information. HAMBURG SÜD VGM WEB PORTAL USER GUIDE June 2016

Einführung in das Scrum Framework & welche 10 Praktiken helfen, Scrum wirklich gut zu machen

Code Retreat Softwerkskammer Stuttgart / JUGS 17. Nov. Oliver Böhm JUGS / Daniel Georges Softwerkskammer Stuttgart

Level 2 German, 2013

BDD UND GHERKIN IN DER PRAXIS VON DER ANFORDERUNG ZUR UMSETZUNG

Effektiver Einsatz von Code-Reviews

USB -> Seriell Adapterkabel Benutzerhandbuch

Dienstag, 24. September 13. Willkommen

SELF-STUDY DIARY (or Lerntagebuch) GER102

Fachübersetzen - Ein Lehrbuch für Theorie und Praxis

Kursbuch Naturheilverfahren: Curriculum der Weiterbildung zur Erlangung der Zusatzbezeichnung Naturheilverfahren (German Edition)

JONATHAN JONA WISLER WHD.global

Im Fluss der Zeit: Gedanken beim Älterwerden (HERDER spektrum) (German Edition)

Praktikum Entwicklung Mediensysteme (für Master)

RECHNUNGSWESEN. KOSTENBEWUßTE UND ERGEBNISORIENTIERTE BETRIEBSFüHRUNG. BY MARTIN GERMROTH

Der Topos Mütterlichkeit am Beispiel Bertolt Brechts "Der kaukasische Kreidekreis" und "Mutter Courage und ihre Kinder" (German Edition)

Exercise (Part VIII) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

DIBELS TM. German Translations of Administration Directions

Optionally, an is sent : Erfahrungen mit automatisierter Erkennung schlechter Anforderungen

Der agile Software Architekt

Digitales Controlling die Zukunft ist Heute. Markus Zorn & Miriam Hirs 26. September 2017

Customer-specific software for autonomous driving and driver assistance (ADAS)

Ein Stern in dunkler Nacht Die schoensten Weihnachtsgeschichten. Click here if your download doesn"t start automatically

Installation Guide/ Installationsanleitung. Spring 16 Release

Tuning des Weblogic /Oracle Fusion Middleware 11g. Jan-Peter Timmermann Principal Consultant PITSS

Prozesse als strategischer Treiber einer SOA - Ein Bericht aus der Praxis

JOBS OF TEENAGERS CODE 250

Study guide written by René Koglbauer

Wir sind von Resysta überzeugt

Prozesse Last oder Lust?

Cloud Computing in der öffentlichen Verwaltung

UNIGATE CL Konfiguration mit WINGATE

Die besten Chuck Norris Witze: Alle Fakten über den härtesten Mann der Welt (German Edition)

HUMANGENETIK IN DER WELT VON HEUTE: 12 SALZBURGER VORLESUNGEN (GERMAN EDITION) BY FRIEDRICH VOGEL

SCHNELLES DENKEN, LANGSAMES DENKEN (GERMAN EDITION) BY DANIEL KAHNEMAN

Übungsblatt 24. Alle Aufgaben, die Lösungen zu den Aufgaben und eine Übersicht zu den Grammatiken findest du im Internet:

VGM. VGM information. HAMBURG SÜD VGM WEB PORTAL - USER GUIDE June 2016

GERMAN: BACKGROUND LANGUAGE. ATAR course examination Recording transcript

Softwaremodellierung innerhalb eines SAP ABAP Projekts im agilen Umfeld

Was heißt Denken?: Vorlesung Wintersemester 1951/52. [Was bedeutet das alles?] (Reclams Universal-Bibliothek) (German Edition)

Finite Difference Method (FDM)

ZWISCHEN TRADITION UND REBELLION - FRAUENBILDER IM AKTUELLEN BOLLYWOODFILM (GERMAN EDITION) BY CHRISTINE STöCKEL

Tschernobyl: Auswirkungen des Reaktorunfalls auf die Bundesrepublik Deutschland und die DDR (German Edition)

Pluralisierung von Lebensformen - Veränderung familiärer Strukturen und innergesellschaftlicher Wandel (German Edition)

Stocktaking with GLPI

ZWISCHEN TRADITION UND REBELLION - FRAUENBILDER IM AKTUELLEN BOLLYWOODFILM (GERMAN EDITION) BY CHRISTINE STöCKEL

Kanban in der Softwareentwicklung

Coaching Agile Development Teams

Transkript:

Kapitel 3 Software Quality III Software Architecture, Quality, and Testing FS 2015 Prof. Dr. Jana Köhler jana.koehler@hslu.ch

Agenda Heute Von Bad Smells zu Refactorings Wie wird Refactoring durchgeführt? "Verschiedene Hüte tragen" Zyklus Codevisualisierung Metriken Bad smells Refactorings Testen Grosse Refactorings Zusammenfassung

Verschiedene Software Engineering Aufgaben Metapher der verschiedenen Hüte Für ein Ziel entscheiden, konsequent daran arbeiten Wenn notwendig, ebenso konsequent unterbrechen und am neuen Ziel arbeiten Dann Arbeit am ursprünglichen Ziel wieder aufnehmen Refactoring Funktionserweiterung Performanceoptimierung Technologieportierung Refactoring schafft verbesserte Bedingungen für die anderen Aufgaben

Problem "Wearing Multiple Hats at a Time" http://www.persistenceunlimited.com/2008/05/10-tips-to-stop-multitasking/

Kleine Schritte und häufiges Testen Integraler Bestandteil der Entwicklung Bei kontinuierlicher Anwendung nur in kurzen Intervallen Ist das Design degradiert, intensive Phasen notwendig Kontrolliertes und effizientes Durchführen von strukturellen Änderungen Kleine Schritte Methodische Strukturverbesserungen "To avoid digging your own grave, refactoring must be done systematically." Eng verknüpft mit automatischen Tests

Zyklische Arbeitsweise beim Refactoring effiziente Einstiegspunkte durch Toolingfortschritte Code visualisieren Metriken messen wichtigster Einstiegspunkt Bad Smells identifizieren Refactoring anwenden Testen Hauptzyklus

Risiken und Herausforderungen I Neuschreiben ist die bessere Alternative "Remember, code has to work mostly correctly when you refactor." Zu viele Fehler Design aufgrund zu vieler Abhängigkeiten kaum zu ändern Komplett geänderte Anforderungen, neue Technologien Das Refactoringziel aus den Augen verlieren Einen Plan notieren Rechtzeitig aufhören

Risiken und Herausforderungen II "It requires changes to working code that can introduce subtle bugs." Testqualität und Toolsupport reduzieren Fehlerquote Häufiges Testen grenzt Fehlerbereich ein Der Produktivitätsgewinn setzt zu spät ein Refactoring als Investition in die Zukunft Kein Refactoring kurz bevor der Projektabgabe aber: "Not having enough time usually is a sign that you need to do some refactoring."

Grosse Refactorings Design in grossen Projekten verändern und verbessern Den kumulierten Nutzen vieler kleiner Refactorings explizit machen Grundlegende Unterschiede zu kleinen Refactorings Benötigen viel mehr Zeit Auswirkungen sind nicht direkt vorhersehbar Sichtbarer Fortschritt stellt sich erst nach vielen kleinen Refactorings ein Erfolge oft erst nach intensiver Arbeit / Frustrationsphasen Zustimmung im Entwicklungsteam notwendig

Tease Apart Inheritance

Convert Procedural Designs into Objects

Separate Domain from Presentation

Extract Hierarchy

Tipps für den grossen Umbau Refactoring footprint = number of features affected by a refactoring Sven Gorts, www.refactoring.be Je grösser der Footprint, desto grösser das Risiko Den Footprint klein halten In kleinen Schritten arbeiten (alle Refactorings aus dem Buch) Design stages einführen Grössere Zwischenziele für das Design festlegen Prioritäten setzen Refactoring Plan mit dokumentierten Entscheidungen Richtung festlegen für viele kleine Refactorings

Refactoring Thumbnails http://www.refactoring.be/thumbnails.html

Balance halten zwischen Expansion und Kontraktion "Refactoring is the art of first making duplication explicit and then eliminating it." Sven Gorts, www.refactoring.be

Aufgabe 1: Kurzvorträge Refactorings

Mehr zu Refactoring

Zusammenfassung: Wesentliche Begriffe Software Qualität Code Qualität Metriken Automatische Tests Bad Smells als Anzeichen für mangelnde Codequalität Refactoring als Prozess Refactoring als Strukturmodifikation

Zusammenfassung: Refactoring als Prozess effiziente Einstiegspunkte durch Toolingfortschritte Code visualisieren Metriken messen Wann? Wie? Risiken? wichtigster Einstiegspunkt Bad Smells identifizieren Refactoring anwenden Testen Hauptzyklus

Zusammenfassung: Refactoring als Strukturmodifikation Footprint Refactoring Katalog Grosse Refactorings Besseres Design Tool Support Eclipse Ziel/Plan Expansion/Kontraktion Qualität

Arbeitsfragen 1. Warum sollten Refactoring Phasen im Projekt von anderen Änderungen im Code klar getrennt werden? 2. Diskutieren Sie die Metapher der verschiedenen Hüte. 3. Welchen Risiken begegnen Sie beim Refactoring und wie können Sie sie reduzieren? 4. Was ist der Footprint eines Refactorings? 5. Wozu können thumbnails beim Refactoring helfen? 6. Was versteht man unter grossen Refactorings und worin liegt der wesentliche Unterschied zu den kleinen Refactoring Schritten? 7. Nennen Sie Beispiele für grosse Refactorings. 8. Welche Informationen können Code Visualisierungen im Zusammenhang mit Refactoring liefern? Nennen Sie Beispiele. 9. Ändert sich Refactoring für Web Applikationen oder in der Cloud?

Danke für's Mitmachen!