Legacy Code meistern in x einfachen Schritten

Größe: px
Ab Seite anzeigen:

Download "Legacy Code meistern in x einfachen Schritten"

Transkript

1 Legacy Code meistern in x einfachen Schritten Version: 1.0 Orientation in Objects GmbH Weinheimer Str Mannheim info@oio.de Abstract In einer idealen Welt würden wir nur "neuen" Code schreiben, der natürlich perfekt und wunderschön ist. Wir müssten nie wieder unseren Code anschauen, geschweige denn 10 Jahre alte Projekte warten. Ende des Tagtraums... Leider ist unsere Welt nicht so ideal, unser Code von gestern ist heute schon Legacy. Diesen im Nachhinein zu verstehen, zu erweitern oder darin Fehler zu beheben, ist immer eine Herausforderung, insbesondere wenn Tests fehlen. Trotzdem gibt es einfache Möglichkeiten, wie man die Qualität von Legacy-Code verbessern kann. Das Wichtigste ist das Einziehen von Fangnetzen, sodass man trotz fehlender Tests guten Gewissens Änderungen durchführen kann. Wer Golden Master, Subclass to Test und Extract Pure Functions an konkreten Beispielen kennenlernen möchte, ist in dieser Session genau richtig Orientation in Objects GmbH Legacy Code meistern in x einfachen Schritten 2 1

2 Über mich Falk Sippach Trainer, Berater, Entwickler Co-Organisator Schwerpunkte Architektur Agile Softwareentwicklung Codequalität 2017 Orientation in Objects GmbH Legacy Code meistern in x einfachen Schritten 3 Java, XML und Open Source seit 1998 ) Software Factory ) Schlüsselfertige Realisierung von Java Software Individualsoftware Pilot- und Migrationsprojekte Sanierung von Software Software Wartung ) Object Rangers ) Unterstützung laufender Java Projekte Perfect Match Rent-a-team Coaching on the project Inhouse Outsourcing ) Competence Center) Schulungen, Coaching, Weiterbildungsberatung, Train & Solve-Programme Methoden, Standards und Tools für die Entwicklung von offenen, unternehmensweiten Systemen 2017 Orientation in Objects GmbH Legacy Code meistern in x einfachen Schritten 4 2

3 Legacy Code meistern in x einfachen Schritten Nur heute, nicht 1, nicht 2, 2017 Orientation in Objects GmbH Legacy Code meistern in x einfachen Schritten 5 Unser Thema heute: Refactoring Legacy Code Disclaimer: KEIN Projekterfahrungsbericht 6 3

4 Live-Coding Foto von StockSnap: (CC0 Public Domain Lizenz) 7 Vermächtnis Erbe LEGACY Altlast Hinterlassenschaft Foto von smpcas, CC0 Public Domain Lizenz, 8 4

5 Legacy Code Somebody else's code Jeder kennt ihn Keiner mag ihn Was ist mit unserem eigenen Code? 9 Refactoring Legacy Code Warum? Verstehen Erweitern Bugfixing Optimierung Grafik von ClkerFreeVectorImages: (CC0 Public Domain Lizenz) 10 5

6 Refactoring Legacy Code Annahmen Es gibt automatisierte Tests Quellcode ist schon testbar 2017 Orientation in Objects GmbH Legacy Code meistern in x einfachen Schritten 11 Refactoring Legacy Code Code Smells Temporary Field Long Method Feature Envy Code Comments

7 "Gimme Google, Stack Overflow, and this keyboard, and I'll program you anything. " Duplicated Code 13 Refactoring Legacy Code Code without tests 14 7

8 Code without tests is bad code. Michael Feathers 15 Legacy code is valuable code that we feel afraid to change. J. B. Rainsberger Foto von PublicDomainPictures, CC0 Public Domain Lizenz,

9 Es ist egal, wie gut geschrieben der Code ist schön der Code ist objektorientiert der Code ist entkoppelt der Code ist Tests lassen unser Verhalten schnell und verifizierbar ändern Ohne Tests wissen wir nicht, ob der Code besser oder schlechter wird 17 Die gute Nachricht Keine Wissenschaft Gesunder Menschenverstand Foto von Engel62: (CC0 Public Domain Lizenz) 18 9

10 Was macht es dann schwierig? Hello World vs LOC Disziplin (kleine Schritte, ) Aussagekräftige Testabdeckung 19 Legacy zu Clean Code? Clean Code ist NICHT das Ziel Hauptfokus: testbarer Code 20 10

11 Dann schreiben wir halt Tests viel zu teuer Code meist kaum/nicht testbar starke Kopplung, geringe Kohäsion 21 um Tests zu schreiben muß der Code testbar sein, um testbaren Code zu erhalten müßte man refactoren, um zu refactoren könnte man Tests schreiben, um Tests zu schreiben muß der Code testbar sein, um testbaren Code zu erhalten müßte man refactoren, um zu refactoren könnte man Tests schreiben, um Tests zu schreiben muß der Code testbar sein, um testbaren Code zu erhalten müßte man refactoren, um zu refactoren könnte man Tests schreiben, um Tests zu schreiben muß der Code testbar sein, um testbaren Code zu erhalten müßte man refactoren, um zu refactoren könnte man Tests schreiben, um Tests zu schreiben muß der Code testbar sein, um testbaren Code zu erhalten Die Katze müßtebeißt man refactoren, sich um zu refactoren könnte man Tests schreiben, in um den Tests Schwanz! zu schreiben muß der Code testbar sein, um testbaren Code zu erhalten müßte man refactoren, um zu refactoren könnte man Tests schreiben, um Tests zu schreiben muß der Code testbar sein, um testbaren Code zu erhalten müßte man refactoren, um zu refactoren könnte man Tests schreiben, um Tests zu schreiben muß der Code testbar sein, um testbaren Code zu erhalten müßte man refact 22 11

12 refactoren bräuchte man Tests, Tests würden helfen, Code zu verstehen, um Code zu verstehen könnte man Code refactoren, um Code zu refactoren bräuchte man Tests, Tests würden helfen, Code zu verstehen, um Code zu verstehen könnte man Code refactoren, um Code zu refactoren bräuchte man Tests, Tests würden helfen, Code zu verstehen, um Code zu verstehen könnte man Code refactoren, um Code zu refactoren bräuchte man Tests, Tests würden helfen, Code zu verstehen, um Code zu Henne-Eiverstehen könnte man Code refactoren, um Code zu refactoren bräuchte Problem man Tests, Tests würden helfen, Code zu verstehen, um Code zu verstehen könnte man Code refactoren, um Code zu refactoren bräuchte man Tests, Tests würden helfen, Code zu verstehen, um Code zu verstehen könnte man Code refactoren, um Code zu refactoren bräuchte man Tests, Tests würden helfen, Code zu verstehen, um Code zu verstehen könnte man Code refactoren, um Code zu refactoren bräuchte man Tests, Tests würden helfen, Code zu verstehen, um Code zu verstehen könnte man Code refactoren, um Code zu refactoren bräuchte man Tests, Tests würden helfen, Code zu 23 Vorgehen 1. Identify what to change 2. Identify what to test 3. Break dependencies 4. Write the tests 5. Modify and refactoring 2017 Orientation in Objects GmbH Legacy Code meistern in x einfachen Schritten 24 12

13 No Silver Bullet Jedes Projekt individuell Vorsicht beim Beheben von offensichtlichen Fehlern Foto von stevepb: (CC0 Public Domain Lizenz) 25 Dann mal her mit den x einfachen Schritten! 26 13

14 A Sicherheitsnetz + Tests Foto von bella67: (CC0 Public Domain Lizenz) 27 B Sanierung Foto von KlausHausmann: (CC0 Public Domain Lizenz) 28 14

15 1 Golden Master gegenwärtiges Verhalten dokumentieren und erhalten Foto von istara: (CC0 Public Domain Lizenz)

16 Konsolenausgaben abprüfen 2017 Orientation in Objects GmbH Legacy Code meistern in x einfachen Schritten 31 Was mache ich bei GUI-Anwendungen? public static void main(string... args) throws Exception { WebDriver driver = new FirefoxDriver(); driver.get(" while (true) { List<WebElement> links = driver.findelements(by.tagname("a")); links.get(random.nextint(links.size())).click(); Thread.sleep(500); List<WebElement> fields = driver.findelements(by.xpath("//input[@type='text']")); WebElement field = fields.get(random.nextint(fields.size())); field.sendkeys(randomstring()); Thread.sleep(500); } } Orientation in Objects GmbH Legacy Code meistern in x einfachen Schritten 32 16

17 Live-Coding Foto von StockSnap: (CC0 Public Domain Lizenz) 33 1 Golden Master Vorsicht bei Zufallsgeneratoren Festlegen von Seeds (Pseudo-Random) 34 17

18 2 Subclass To Test Foto von chrisli8020: (CC0 Public Domain Lizenz) 35 2 Subclass To Test Seam (Nahtstelle) Ein Seam ist eine Stelle, an der man das Verhalten editieren kann, ohne direkt an dieser Stelle zu ändern. Aufbrechen stark gekoppelter Abhängigkeiten aka Extract and Override 36 18

19 3 Extract Pure Functions Foto von PublicDomainPictures: (CC0 Public Domain Lizenz) 37 3 Extract Pure Functions seiteneffektfrei keine Statusänderung "It's a classic, we call it a Klassiker" 38 19

20 3 Extract Pure Functions "pure function".substring(5); UrlEncoder.encode("pure function"); Math.max(x, y); System.out.println("unpure"); list.add(3); Collections.sort(list); 39 3 Extract Pure Functions Codestellen isolieren Ziele Separat testbar Duplikation reduzieren 40 20

21 4 Remove Duplication Don't Repeat Yourself Beachte: Rule of Three Foto von AdinaVoicu: (CC0 Public Domain Lizenz) 41 5 Extract Class Large class SRP verletzt Ziele Unabhängiges Testen einzelner Teile Sauberes OO-Design Foto von blickpixel: (CC0 Public Domain Lizenz) 42 21

22 6 Dependency Inversion 7 Dependency Inversion Test non-public member Dependency Inversion 8 Mocking Framework 43 Zusammenfassung 44 22

23 Golden Master Subclass To Test Extract Pure Functions Remove Duplication Extract Class Dependency Inversion Test non-public member Mocking Framework 45 1 Golden Master 46 23

24 Subclass To Test Extract Pure Functions Extract Class Dependency Inversion Test non-public member Mocking Framework Extract Pure Functions Remove Duplication Extract Class 48 24

25 Tools Code Coverage Approval Tests Infinitest Eclipse Metrics 2017 Orientation in Objects GmbH Legacy Code meistern in x einfachen Schritten 49 Legacy Code Retreat Foto von Jmabel: (CC BY-SA 3.0 Lizenz) 50 25

26 Links Code-Beispiel der Live-Demo anderes Code-Beispiel für Legacy Code Blog: Techniken zu Legacy Code-Retreat Orientation in Objects GmbH Legacy Code meistern in x einfachen Schritten 51 Literaturhinweise Refactoring Sprache: Englisch Gebunden Seiten - Addison Wesely Erscheinungsdatum: 1. Juni 1999 ISBN: Working Effectively with Legacy Code Sprache: Englisch Gebunden 2017 Orientation in Objects GmbH Legacy Code meistern in x einfachen Schritten 52 26

27 ?? Fragen??? Orientation Objects GmbH Weinheimer Str Mannheim Vielen Dank für ihre Aufmerksamkeit! Orientation in Objects GmbH Weinheimer Str Mannheim 27

28 Zusatzmaterial 6 Dependency Inversion 7 Dependency Inversion Test non-public member Dependency Inversion 8 Mocking Framework 2017 Orientation in Objects GmbH Legacy Code meistern in x einfachen Schritten 55 6 Dependency Inversion Entkoppeln durch explizites Setzen der Abhängigkeiten Foto von tatlin: (CC0 Public Domain Lizenz) 56 28

29 7 Test non-public member Wirklich? Gute Alternative bei Legacy Code! Foto von Guian Bolisay: (CC BY-SA 2.0) 57 8 Mocking Subclass To Test on Steorids! Interaktion mit Umgebung testen Erwartete Parameter und Aufrufreihenfolge Foto von tatlin: (CC0 Public Domain Lizenz) 58 29

Legacy Code meistern in x einfachen Schritten

Legacy Code meistern in x einfachen Schritten Legacy Code meistern in x einfachen Schritten Version: 1.0 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de Über mich Falk Sippach (@sippsack) Trainer, Berater, Entwickler

Mehr

Legacy Code meistern in x einfachen Schritten

Legacy Code meistern in x einfachen Schritten Legacy Code meistern in x einfachen Schritten Version: 1.0 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de Über mich Falk Sippach (@sippsack) Trainer, Berater, Entwickler

Mehr

Legacy Code meistern in x einfachen Schritten

Legacy Code meistern in x einfachen Schritten Legacy Code meistern in x einfachen Schritten Version: 1.0 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de Abstract In einer idealen Welt würden wir nur "neuen" Code

Mehr

Ant + Ivy Building with dependencies

Ant + Ivy Building with dependencies Ant + Ivy Building with dependencies Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Björn Feustel Version: 1.0 www.oio.de info@oio.de Java, XML und Open Source seit 1998 ) Software Factory

Mehr

Google Collections. Gliederung. Los geht s... Praktische Helferlein Collections Wie geht s weiter? Version: 1.0. Orientation in Objects GmbH

Google Collections. Gliederung. Los geht s... Praktische Helferlein Collections Wie geht s weiter? Version: 1.0. Orientation in Objects GmbH Google Collections Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: 1.0 www.oio.de info@oio.de Gliederung Los geht s... Praktische Helferlein Collections Wie geht s weiter? 2009 Orientation

Mehr

Struts 2 Das Imperium schlägt zurück?

Struts 2 Das Imperium schlägt zurück? Struts 2 Das Imperium schlägt zurück? Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Tobias Kieninger www.oio.de info@oio.de Java, XML und Open Source seit 1998 ) Software

Mehr

Last- und Stresstest mit the Grinder 3

Last- und Stresstest mit the Grinder 3 Last- und Stresstest mit the Grinder 3 Orientation in Objects GmbH oder auch mein Leben mit the Grinder 3 Weinheimer Str. 68 68309 Mannheim Version: 1.0 www.oio.de info@oio.de Java, XML und Open Source

Mehr

BEHAVIORAL DIFF ALS NEUES TESTPARADIGMA. Dr. Jeremias Rößler

BEHAVIORAL DIFF ALS NEUES TESTPARADIGMA. Dr. Jeremias Rößler BEHAVIORAL DIFF ALS NEUES TESTPARADIGMA Dr. Jeremias Rößler JavaLand 2016 public void testsomething() throws Exception { // here be some test code... UIElement element = driver.getelement( path/to/element

Mehr

Effektiver Einsatz von Code-Reviews

Effektiver Einsatz von Code-Reviews - Schneller, Billiger, Besser - Effektiver Einsatz von Code-Reviews Dev Day in Dresden 27. Mai 2015 Version: 1.3 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de Ihr

Mehr

Michael C. Feathers. Legacy Code. Effektives Arbeiten mit. Refactoring und Testen bestehender Software

Michael C. Feathers. Legacy Code. Effektives Arbeiten mit. Refactoring und Testen bestehender Software Michael C. Feathers Effektives Arbeiten mit Legacy Code Refactoring und Testen bestehender Software Vorwort................................................... 13 Geleitwort.................................................

Mehr

Agile Architektur. Version: 1.1. Orientation in Objects GmbH. Weinheimer Str Mannheim.

Agile Architektur. Version: 1.1. Orientation in Objects GmbH. Weinheimer Str Mannheim. Agile Architektur Version: 1.1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de Ihre Sprecher Thorsten Maier, Falk Sippach Trainer, Berater, Entwickler @ThorstenMaier

Mehr

Agile Architektur. Abstract. Version: 1.1. Orientation in Objects GmbH. Weinheimer Str Mannheim.

Agile Architektur. Abstract. Version: 1.1. Orientation in Objects GmbH. Weinheimer Str Mannheim. Agile Version: 1.1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de Abstract Eine gut geplante Softwarearchitektur stellt das Grundgerüst jeder wartbaren Software dar.

Mehr

Atlassian Git Essentials Nahtlose Entwicklungsworkflows aus einer Hand

Atlassian Git Essentials Nahtlose Entwicklungsworkflows aus einer Hand Nahtlose Entwicklungsworkflows aus einer Hand Version: 1.0 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de Java, XML und Open Source seit 1998 ) Software Factory )

Mehr

Effektives Arbeiten mit Legacy Code

Effektives Arbeiten mit Legacy Code Effektives Arbeiten mit Legacy Code Refactoring und Testen bestehender Software von Michael C. Feathers 1. Auflage Effektives Arbeiten mit Legacy Code Feathers schnell und portofrei erhältlich bei beck-shop.de

Mehr

Effektiver Einsatz von Code-Reviews

Effektiver Einsatz von Code-Reviews Effektiver Einsatz von Code-Reviews Version: 1.4 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de 18. Java Forum Stuttgart 2015 Ihr Sprecher Thorsten Maier Trainer,

Mehr

Refactoring von Legacy Systemen. Jochen Winzen jochen.winzen@andrena.de andrena objects ag

Refactoring von Legacy Systemen. Jochen Winzen jochen.winzen@andrena.de andrena objects ag Refactoring von Legacy Systemen Jochen Winzen jochen.winzen@andrena.de andrena objects ag Was ist ein Legacy System Ein Legacy System hat folgenden Eigenschaften: + Besitzt die geforderte Funktionalität

Mehr

Hibernate Search. Unterstützung laufender Java Projekte. Perfect Match Rent-a-team Coaching on the project Inhouse Outsourcing

Hibernate Search. Unterstützung laufender Java Projekte. Perfect Match Rent-a-team Coaching on the project Inhouse Outsourcing Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: 1.0 www.oio.de info@oio.de Java, XML und Open Source seit 1998 ) Software Factory ) ) Object Rangers ) ) Competence Center) Schlüsselfertige

Mehr

Code Quality in Practice

Code Quality in Practice Code Quality in Practice Version: 1.0 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de Ihr Sprecher Thorsten Maier Trainer, Berater, Entwickler Feedback @ThorstenMaier

Mehr

Kontinuierliche Architekturdokumentation im agilen Umfeld

Kontinuierliche Architekturdokumentation im agilen Umfeld Kontinuierliche Architekturdokumentation im agilen Umfeld Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: 1.0 www.oio.de info@oio.de Ihr Sprecher Falk Sippach (@sippsack) Trainer,

Mehr

Java Tools JDK. IDEs. Downloads. Eclipse. IntelliJ. NetBeans. Java SE 8 Java SE 8 Documentation

Java Tools JDK. IDEs.  Downloads. Eclipse. IntelliJ. NetBeans. Java SE 8 Java SE 8 Documentation Java Tools JDK http://www.oracle.com/technetwork/java/javase/ Downloads IDEs Java SE 8 Java SE 8 Documentation Eclipse http://www.eclipse.org IntelliJ http://www.jetbrains.com/idea/ NetBeans https://netbeans.org/

Mehr

JVM Functional Language Battle

JVM Functional Language Battle JVM Functional Language Battle Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: 1.0 www.oio.de info@oio.de Ihr Sprecher Falk Sippach (@sippsack) Trainer, Berater, Entwickler Co-Organisator

Mehr

Die S.O.L.I.D-Prinzipien für C# Entwickler Thomas Claudius

Die S.O.L.I.D-Prinzipien für C# Entwickler Thomas Claudius Die S.O.L.I.D-Prinzipien für C# Entwickler Thomas Claudius Huber @ThomasClaudiusH BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENEVA HAMBURG COPENHAGEN LAUSANNE MUNICH STUTTGART VIENNA ZURICH

Mehr

Design for Testability in der Praxis David Völkel, codecentric AG

Design for Testability in der Praxis David Völkel, codecentric AG Design for Testability in der Praxis David Völkel, codecentric AG http://commons.wikimedia.org/wiki/file:pit_crew_hudson_valley.jpg http://commons.wikimedia.org/wiki/file:carservice.jpg David Völkel *

Mehr

TDD. mit JUnit & Mockito. Tobias Trelle, codecentric

TDD. mit JUnit & Mockito. Tobias Trelle, codecentric TDD mit JUnit & Mockito Tobias Trelle, codecentric AG @tobiastrelle 1 Tobias Trelle Software Architekt @ codecentric AG Twitter: @tobiastrelle Slideshare: http://de.slideshare.net/tobiastrelle/ GitHub:

Mehr

JVM Functional Language Battle

JVM Functional Language Battle JVM Functional Language Battle Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: 1.0 www.oio.de info@oio.de Ihr Sprecher Falk Sippach (@sippsack) Trainer, Berater, Entwickler Co-Organisator

Mehr

Agile Ressourcenplanung

Agile Ressourcenplanung Agile Ressourcenplanung Version: 1.0 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de Java, XML und Open Source seit 1998 ) Software Factory ) ) Object Rangers ) ) Competence

Mehr

Kontinuierliche Architekturdokumentation im agilen Umfeld

Kontinuierliche Architekturdokumentation im agilen Umfeld Kontinuierliche Architekturdokumentation im agilen Umfeld Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: 1.0 www.oio.de info@oio.de Ihr Sprecher Falk Sippach (@sippsack) Trainer,

Mehr

Issue Tracker & Wiki

Issue Tracker & Wiki Kur für den Projektalltag Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: 0.3 www.oio.de info@oio.de Java, XML und Open Source seit 1998 ) Projekte ) ) Beratung ) ) Akademie ) Schlüsselfertige

Mehr

Struts 2 Das Imperium schlägt zurück?

Struts 2 Das Imperium schlägt zurück? Struts 2 Das Imperium schlägt zurück? Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Tobias Kieninger www.oio.de info@oio.de Java, XML und Open Source seit 1998 ) Projekte

Mehr

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

Refactoring. Vortrag im Rahmen des Softwareprojekts: Übersetzerbau. Referenten: Vivienne Severa Alpin Mete Sahin Florian Mercks. Datum: Refactoring Vortrag im Rahmen des Softwareprojekts: Übersetzerbau Referenten: Vivienne Severa Alpin Mete Sahin Florian Mercks Datum: 20.06.2013 Überblick Einführung Refactoring im Einsatz Werkzeugunterstützung

Mehr

JVM Functional Language Battle

JVM Functional Language Battle JVM Functional Language Battle JUG Hamburg, 12.04.2017 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: 1.0 www.oio.de info@oio.de Ihr Sprecher Falk Sippach (@sippsack) Trainer, Berater,

Mehr

Kapitel 3 Software Quality III

Kapitel 3 Software Quality III 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?

Mehr

Agile Architektur. Abstract. Version: 1.0. Orientation in Objects GmbH. Weinheimer Str Mannheim.

Agile Architektur. Abstract. Version: 1.0. Orientation in Objects GmbH. Weinheimer Str Mannheim. Agile Architektur Version: 1.0 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de Abstract Eine gut geplante Softwarearchitektur stellt das Grundgerüst jeder wartbaren

Mehr

SOLID für.net und JavaScript

SOLID für.net und JavaScript SOLID für.net und JavaScript www.binarygears.de Stefan Dirschnabel Twitter: @StefanDirschnab #dncgn SOFTWARE ENTWICKLUNG BERATUNG SCHULUNG 5 Prinzipien für das Design von Software Wartbarer Code Leicht

Mehr

Live Hacking. Durch Refactoring zu sauberem Code

Live Hacking. Durch Refactoring zu sauberem Code Live Hacking Durch Refactoring zu sauberem Code Roland Mast Sybit GmbH Software-Entwickler roland.mast@sybit.de Roland Mast Sybit GmbH Software-Entwickler roland.mast@sybit.de 40 35 30 25 20 15 10 5 0

Mehr

Softwaremetriken verstehen und nutzen

Softwaremetriken verstehen und nutzen Softwaremetriken verstehen und nutzen Kore Nordmann , Manuel Pichler 17. November 2009 Über uns Kore Nordmann Langzeit PHP Entwickler Speaker auf diversen

Mehr

Resilient Software Design Patterns

Resilient Software Design Patterns Resilient Software Design Patterns Version: 17.1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de Ihr Sprecher Thorsten Maier Trainer, Berater, Entwickler Orientation

Mehr

ResilientSoftware Design Patterns

ResilientSoftware Design Patterns Resilient Software Design Patterns Version: 17.1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de Ihr Sprecher Thorsten Maier Trainer, Berater, Entwickler Orientation

Mehr

Brauche ich ein DVCS?

Brauche ich ein DVCS? Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Kristian Köhler Steffen Schluff Version:.0 www.oio.de info@oio.de Gliederung Einleitung Grundbegriffe Workflows Demo Fazit 2 Gliederung Einleitung

Mehr

Pre-tested commit 2.0 mit Gerrit und Jenkins

Pre-tested commit 2.0 mit Gerrit und Jenkins Pre-tested commit.0 mit und Orientation in Objects GmbH Weinheimer Str. 68 6809 Mannheim Steffen Schäfer Steffen Schluff Version:.0 www.oio.de info@oio.de Gliederung Pre-tested commit und Pre-tested commit

Mehr

Java-Einführungskurs Informatik II (D-ITET) Vincent Becker,

Java-Einführungskurs Informatik II (D-ITET) Vincent Becker, Java-Einführungskurs Informatik II (D-ITET) Vincent Becker, vincent.becker@inf.ethz.ch Was haben wir heute vor? Vorbereitung auf die Übungen zu Informatik II Vorstellung des Teams Organisatorisches Theorie

Mehr

Programmierstil in Java Coding-Standards und Dokumentation

Programmierstil in Java Coding-Standards und Dokumentation Coding-Standards und Dokumentation SEP Felix Zenz 23.10.2017 Wissenschaftliche Betreuer: Prof. Dr. Peer Kröger, Janina Sontheim, Daniel Kaltenthaler, Johannes Lohrer Verantwortlicher Professor: Prof. Dr.

Mehr

Agile Ressourcenplanung

Agile Ressourcenplanung Agile Ressourcenplanung Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: 1.0 www.oio.de info@oio.de Evolution Ressourcenplanung - Ansatz 1: Papiergestütztes Planning Board je Team

Mehr

Programmentwicklung ohne BlueJ

Programmentwicklung ohne BlueJ Objektorientierte Programmierung in - Eine praxisnahe Einführung mit Bluej Programmentwicklung BlueJ 1.0 Ein BlueJ-Projekt Ein BlueJ-Projekt ist der Inhalt eines Verzeichnisses. das Projektname heißt wie

Mehr

Agile Ressourcenplanung

Agile Ressourcenplanung Agile Ressourcenplanung Version: 1.0 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de Java, XML und Open Source seit 1998 ) Software Factory ) Schlüsselfertige Realisierung

Mehr

Ein Design Tool für objektorientierte portable Programmierschnittstellen

Ein Design Tool für objektorientierte portable Programmierschnittstellen Diplomarbeit Ein Design Tool für objektorientierte portable Programmierschnittstellen Vortragender: Elias Volanakis Inhalt 1. Entwurfsmuster 2. Wrapper Facade (WF) Aufgaben & Struktur Implementierung Nutzen

Mehr

Einbindung dynamischer Sprachen in Java

Einbindung dynamischer Sprachen in Java Einbindung dynamischer Sprachen in Java Orientation in Objects GmbH Steffen Schluff Weinheimer Str. 68 68309 Mannheim Version: 1.0 www.oio.de info@oio.de Gliederung Einleitung Einsatzszenarien Java Scripting

Mehr

Web-Anwendungen mit Arquillian testen

Web-Anwendungen mit Arquillian testen Michael Kotten open knowledge @michaelkotten @_openknowledge Wozu denn testen? Ich mach doch keine Fehler! Wozu denn testen? > Notwendig bei komplexen Systemen > Sicherung von > Qualität > Funktionalität

Mehr

Test Driven Development

Test Driven Development Test Driven Development Definition & Motivation [~15min] Demo [~10min] Stubs & Mocks [~15min] Übliche Fehler [~5min] Folie 1 TDD [Kent Beck] Schreibe keine Zeile Code ohne einen fehlschlagenden (roten)

Mehr

Software-Refactoring. 29. Mai 2013

Software-Refactoring. 29. Mai 2013 Software-Refactoring 29. Mai 2013 Überblick Was ist Refactoring und wozu dient es? Welche Refactorings gibt es? Refactoring-Katalog: www.refactoring.com Wann, wo und wie führt man Refactorings durch? Wie

Mehr

D-BAUG Informatik I. Exercise session: week 1 HS 2018

D-BAUG Informatik I. Exercise session: week 1 HS 2018 1 D-BAUG Informatik I Exercise session: week 1 HS 2018 Java Tutorials 2 Questions? expert.ethz.ch 3 Common questions and issues. expert.ethz.ch 4 Need help with expert? Mixed expressions Type Conversions

Mehr

JUnit. Software-Tests

JUnit. Software-Tests JUnit Software-Tests Übersicht Einleitung JUnit Jia Li Grundlegendes Diana Howey Hendrik Kohrs Praktische Einbindung Benjamin Koch Zili Ye Einleitung in allgemeines Testen Automatische Tests Testen ist

Mehr

Jan Schumann, G+J Manuel Pichler, Trainer & Consultant - Qafoo. Statische Codeanalyse wirklich effektiv nutzen

Jan Schumann, G+J Manuel Pichler, Trainer & Consultant - Qafoo. Statische Codeanalyse wirklich effektiv nutzen Jan Schumann, G+J Manuel Pichler, Trainer & Consultant - Qafoo Statische Codeanalyse wirklich effektiv nutzen Über uns Jan Schumann Jahrgang 1976 System- / Softwarearchitekt Entwickler von: PHP_Depend,

Mehr

How To: Wie entwickle ich mit SharpDevelop Anwendungen für die PocketPC-Platform

How To: Wie entwickle ich mit SharpDevelop Anwendungen für die PocketPC-Platform How To: Wie entwickle ich mit SharpDevelop Anwendungen für die PocketPC-Platform 0. Benötigt werden folgende Softwarepakete:.NET Framework Software Development Kit (http://www.microsoft.com/downloads/details.aspx?familyid=4fe5bdb5-c7a7-4505-9927-2213868a325b&displaylang=en)

Mehr

Vorlesung Software-Reengineering

Vorlesung Software-Reengineering Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2007/08 Überblick I 1 Refactoring Refactorings

Mehr

Automatisierte Software-Qualitätsmessung Erfahrungsbericht aus einem agilen Team

Automatisierte Software-Qualitätsmessung Erfahrungsbericht aus einem agilen Team Automatisierte Software-Qualitätsmessung Erfahrungsbericht aus einem agilen Team 16. Februar 2017 Anne-Christine Karpf 2015 andrena objects ag Automatisierte Software-Qualitätsmessung Warum? Zwischen all

Mehr

Refactoring C# Legacy Code

Refactoring C# Legacy Code Refactoring C# Legacy Code Stefan Lieser @StefanLieser http://refactoring-legacy-code.net http://er.jsc.nasa.gov/seh/13index.jpg Houston, we ve had a problem. Wandelbarkeit https://pixabay.com/de/chamäleon-hautnah-exotische-grün-1414084/

Mehr

Thomas Schissler MVP Visual Studio ALM, artiso AG

Thomas Schissler MVP Visual Studio ALM, artiso AG Thomas Schissler MVP Visual Studio ALM, artiso AG Kurs-Übersicht Moderne Softwareentwicklung 01 Überblick Was macht moderne Software-Entwicklung aus? 02 Projektmanagement Wie funktioniert modernes Projektmanagement

Mehr

Objektorientierung II & die Java Klassenbibliothek. Kristian Bergmann und Arthur Lochstampfer

Objektorientierung II & die Java Klassenbibliothek. Kristian Bergmann und Arthur Lochstampfer Java Kurs Objektorientierung II & die Java Klassenbibliothek Kristian Bergmann und Arthur Lochstampfer Vergleich class Apfel { String farbe; int gewicht; String geerntetin; class Erdbeere { String farbe;

Mehr

Informatik II (D-ITET)

Informatik II (D-ITET) Informatik II (D-ITET) Übungsstunde 1 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Ueberblick + Administratives Besprechung der Vorlesung Einfuehrungsthemen: Eclipse, JUnit, Serienabgabe

Mehr

Model-Driven Development in der Praxis. mit objectif. Herzlich willkommen

Model-Driven Development in der Praxis. mit objectif. Herzlich willkommen Model-Driven Development in der Praxis mit objectif Herzlich willkommen Die Themen: microtool stellt sich vor live Model-Driven Development die Grundlagen Model-Driven Development von Web-Anwendungen in

Mehr

CODE REVIEWS DONE RIGHT. Heiko Gramlich

CODE REVIEWS DONE RIGHT. Heiko Gramlich CODE REVIEWS DONE RIGHT Heiko Gramlich Agenda Über mich Code Review Code Review bei De-Mail Development Tooling Demo Erfahrungen im Team 2 Über mich Software Entwickler Werdegang: Dipl. Informatiker der

Mehr

Grundlagen zur nebenläufigen Programmierung in Java

Grundlagen zur nebenläufigen Programmierung in Java Grundlagen zur nebenläufigen Programmierung in Java Karlsruher Entwicklertag 2013 5. Juni 2013 Referent: Christian Kumpe Inhalt des Vortrags Was zeigt dieser Vortrag? Ein einfaches Beispiel mit allerlei

Mehr

Webentwicklung mit Vaadin 7. Theoretische und praktische Einführung in Vaadin 7. Christian Dresen, Michael Gerdes, Sergej Schumilo

Webentwicklung mit Vaadin 7. Theoretische und praktische Einführung in Vaadin 7. Christian Dresen, Michael Gerdes, Sergej Schumilo Webentwicklung mit Vaadin 7 Theoretische und praktische Einführung in Vaadin 7 Christian Dresen, Michael Gerdes, Sergej Schumilo Agenda Allgemeines Architektur Client-Side Server-Side Vaadin UI Components

Mehr

Glücksspiel Softwareentwicklung. Christian Wende - DevBoost GmbH JUG Saxony Day 2016

Glücksspiel Softwareentwicklung. Christian Wende - DevBoost GmbH JUG Saxony Day 2016 Glücksspiel Softwareentwicklung Christian Wende - DevBoost GmbH JUG Saxony Day 2016 Eine einfache Aufgabe Implementiere einen Algorithmus, der eine gesuchte Zahl zwischen 1 und 1000 in maximal 10 Versuchen

Mehr

Putting TDD to the Test. Edwin Günthner, IBM Germany Development Lab

Putting TDD to the Test. Edwin Günthner, IBM Germany Development Lab Putting TDD to the Test Edwin Günthner, IBM Germany Development Lab Zum Titel www.dict.cc: to put sb./sth. to the test jdn./etw. auf den Prüfstand stellen Java Forum Stuttgart 2017 2 Agenda Teil 1: Grundsätzliches,

Mehr

Tool-Chain. Übung. Eclipse, SVN, Ant, Cobertura, Metrics Labor "Software Engineering Experiment" Sebastian Meyer und Kai Stapel

Tool-Chain. Übung. Eclipse, SVN, Ant, Cobertura, Metrics Labor Software Engineering Experiment Sebastian Meyer und Kai Stapel Tool-Chain Übung Eclipse, SVN, Ant, Cobertura, Metrics Labor "Software Engineering Experiment" 2009 Sebastian Meyer und Kai Stapel 05.05.2009 Überblick SVN Grundlagen SVN in Eclipse Ant in Eclipse Cobertura

Mehr

Frontend Migration from JSP to Eclipse Scout

Frontend Migration from JSP to Eclipse Scout Frontend Migration from JSP to Eclipse Scout Peter Nüdling Raiffeisen Schweiz Jérémie Bresson, Peter Barthazy BSI Business Systems Integration AG Eclipse Finance Day, Zürich, 31. Oktober 2014 Seite 1 WebKat:

Mehr

Vorlesung Software-Reengineering

Vorlesung Software-Reengineering Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke 1 1 Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2005/06 Überblick I 1 Refactoring 1 Refactoring

Mehr

Q-Event «Spice up your Test!»

Q-Event «Spice up your Test!» Testautomatisierung in der agilen Software Entwicklung Q-Event «Spice up your Test!» Einsatz und Nutzen von Testautomatisierung in agilen Software Projekten Urs Müller Senior Testautomation Engineer Agenda

Mehr

Rene Schneider GEBIT Solutions GmbH. Integrity - ein innovatives Tool zur Acceptance-Test-Automatisierung

Rene Schneider GEBIT Solutions GmbH. Integrity - ein innovatives Tool zur Acceptance-Test-Automatisierung Rene Schneider GEBIT Solutions GmbH Integrity - ein innovatives Tool zur Acceptance-Test-Automatisierung Über mich Über mich Software Consultant bei GEBIT Solutions Über mich Software Consultant bei GEBIT

Mehr

Die Syntax von Java. Ursprünge. Konsequenzen. Das Wichtigste in Kürze. Weiteres Vorgehen. Rund um Java. Sun Microsystems. Borland Software Corp

Die Syntax von Java. Ursprünge. Konsequenzen. Das Wichtigste in Kürze. Weiteres Vorgehen. Rund um Java. Sun Microsystems. Borland Software Corp Ursprünge Die Syntax von Java Borland Software Corp 1995 Syntax: Pascal Objektorientierte Prorammierung optional Plattformen: Windows (Linux, Mac OS X) Sun Microsystems 1995 Syntax: C/C++ Objektorientiert

Mehr

IntelliJ IDEA. Gliederung. Was ist IntelliJ IDEA? Lizenzmodell Warum IntelliJ einsetzen? IntelliJ und Eclipse Demo. Blick über den Eclipse-Tellerrand

IntelliJ IDEA. Gliederung. Was ist IntelliJ IDEA? Lizenzmodell Warum IntelliJ einsetzen? IntelliJ und Eclipse Demo. Blick über den Eclipse-Tellerrand IntelliJ IDEA Blick über den Eclipse-Tellerrand Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: 1.0 www.oio.de info@oio.de Gliederung 2007 Orientation in Objects GmbH IntelliJ IDEA:

Mehr

Iterativ. Inkrementell

Iterativ. Inkrementell Iterativ Inkrementell Build Release Test Qualität Architektur & Documentation Distributed Version Control Continuous Integration TDD Design Agile Architektur Dependency Feature Branches Mocks

Mehr

Große Versuchung, von Listenplanung abzuweichen

Große Versuchung, von Listenplanung abzuweichen Agile Ressourcenplanung Version: 1.0 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de Evolution Ressourcenplanung - Ansatz 1: Papiergestütztes Planning Board je Team

Mehr

EINFÜHRUNG IN DIE PROGRAMMIERUNG

EINFÜHRUNG IN DIE PROGRAMMIERUNG EINFÜHRUNG IN DIE PROGRAMMIERUNG OBJEKTORIENTIERTES PROGRAMMIEREN Tobias Witt 25.03.2014 10:30-12:00 Täglich Übungen zur Vertiefung Laptop hier nicht erforderlich Aber in den Übungen! Linux, OS X http://hhu-fscs.de/linux-install-party/

Mehr

Programmieren I. Dokumentation mit javadoc Heusch 10.4 Ratz Institut für Angewandte Informatik

Programmieren I. Dokumentation mit javadoc Heusch 10.4 Ratz Institut für Angewandte Informatik Programmieren I Dokumentation mit javadoc Heusch 10.4 Ratz 4.1.1 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Automatische Dokumentation Java bietet standardmäßig das Dokumentationssystem

Mehr

SAP Software Engineering live Agile! Agiles Projektmanagement und Clean Code im SAP-Umfeld

SAP Software Engineering live Agile! Agiles Projektmanagement und Clean Code im SAP-Umfeld SAP Software Engineering live Agile! Agiles Projektmanagement und Clean Code im SAP-Umfeld SAP Software Engineering live Agile! SAP Ali Kaveh Software Engineering live Agile! Certified Scrum Master Solution

Mehr

Testen mit JUnit. Motivation

Testen mit JUnit. Motivation Test First Design for Test in Eclipse (eigentlich: ) zu einer Klasse Beispiel zur Demonstration Ergänzungen Test First "Immer dann, wenn Du in Versuchung kommst, etwas wie eine print- Anweisung oder einen

Mehr

Testen von grafischen Benutzeroberflächen

Testen von grafischen Benutzeroberflächen Seminarvortrag 10: Testen von grafischen Benutzeroberflächen 2004 / 06 / 28 Clemens Sommer, Gerald Peter Übersicht Motivation GUI Allgemein Fehlerquellen und deren Auswirkungen GUI Testwerkzeuge JUnit

Mehr

EINFÜHRUNG IN DIE PROGRAMMIERUNG

EINFÜHRUNG IN DIE PROGRAMMIERUNG EINFÜHRUNG IN DIE PROGRAMMIERUNG FORTGESCHRITTENE KONZEPTE Tobias Witt 26.03.2014 tobias.witt@hhu.de 25.12.01.30 Bürozeiten: 09 Uhr - 12 Uhr FEHLERBEHANDLUNG KLASSISCHER ANSATZ Fehlercode als Rückgabewert

Mehr

OO Programmiersprache vs relationales Model. DBIS/Dr. Karsten Tolle

OO Programmiersprache vs relationales Model. DBIS/Dr. Karsten Tolle OO Programmiersprache vs relationales Model Vorgehen bisher Erstellen eines ER-Diagramms Übersetzen in das relationale Datenmodell Zugriff auf das relationale Datenmodell aus z.b. Java ER rel. Modell OO

Mehr

Programmierparadigmen und Sprachen

Programmierparadigmen und Sprachen Fakultät Informatik Institut für Software- und Multimediatechnik Professur Softwaretechnologie Programmierparadigmen und Sprachen Scala Paul Henke Dresden, 07.05.2009 Gliederung Hello World Scala? Features

Mehr

BIRT in Enterprise Architekturen

BIRT in Enterprise Architekturen BIRT in Enterprise Architekturen Orientation in Objects GmbH Tobias Kieninger Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de Java, XML und Open Source seit 1998 ) Software Factory ) ) Object

Mehr

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

Mit Legacy-Systemen in die Zukunft. adviion. in die Zukunft. Dr. Roland Schätzle Mit Legacy-Systemen in die Zukunft Dr. Roland Schätzle Der Weg zur Entscheidung 2 Situation Geschäftliche und softwaretechnische Qualität der aktuellen Lösung? Lohnen sich weitere Investitionen? Migration??

Mehr

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java Objektorientierte Programmierung mit Java Eine praxisnahe Einführung mit BlueJ Klassenentwurf Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? 1.0 Zentrale Konzepte

Mehr

Informatik II. Giuseppe Accaputo, Felix Friedrich, Patrick Gruntz, Tobias Klenze, Max Rossmannek, David Sidler, Thilo Weghorn FS 2017

Informatik II. Giuseppe Accaputo, Felix Friedrich, Patrick Gruntz, Tobias Klenze, Max Rossmannek, David Sidler, Thilo Weghorn FS 2017 1 Informatik II Übung 6 Giuseppe Accaputo, Felix Friedrich, Patrick Gruntz, Tobias Klenze, Max Rossmannek, David Sidler, Thilo Weghorn FS 2017 Heutiges Programm 2 1 Klassen - Technisch 2 Prediscussion

Mehr

Vorkurs Informatik WiSe 17/18

Vorkurs Informatik WiSe 17/18 Java Einführung Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 04.10.2017 Technische Universität Braunschweig, IPS Überblick Organisatorisches Arbeitsablauf Hello World 04.10.2017 Dr. Werner Struckmann

Mehr

Angewandte IT-Sicherheit

Angewandte IT-Sicherheit Angewandte IT-Sicherheit Johannes Stüttgen Lehrstuhl für praktische Informatik I 30.11.2010 Lehrstuhl für praktische Informatik I Angewandte IT-Sicherheit 1 / 28 Aufgabe 1 Betrachten sie folgendes Programm:

Mehr

Ursprünge. Die Syntax von Java. Das Wichtigste in Kürze. Konsequenzen. Weiteres Vorgehen. Rund um Java

Ursprünge. Die Syntax von Java. Das Wichtigste in Kürze. Konsequenzen. Weiteres Vorgehen. Rund um Java Ursprünge Die Syntax von Java Borland Software Corp 1995 Syntax: Pascal Objektorientierte Prorammierung optional Plattformen: Windows (Linux, Mac OS X) Sun Microsystems 1995 Syntax: C/C++ Objektorientiert

Mehr

JVM Functional Language Battle

JVM Functional Language Battle JVM Functional Language Battle Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: 1.0 www.oio.de info@oio.de Ihr Sprecher Falk Sippach (@sippsack) Trainer, Berater, Entwickler Co-Organisator

Mehr

Überraschungen und Grundlagen bei der nebenläufigen Programmierung in Java

Überraschungen und Grundlagen bei der nebenläufigen Programmierung in Java Überraschungen und Grundlagen bei der nebenläufigen Programmierung in Java JUG Karlsruhe 16. Oktober 2013 Referent: Christian Kumpe Inhalt des Vortrags Was zeigt dieser Vortrag? Ein einfaches Beispiel

Mehr

Scriptbasierte Testautomatisierung. für Web-Anwendungen

Scriptbasierte Testautomatisierung. für Web-Anwendungen Scriptbasierte Testautomatisierung für Web-Anwendungen Scriptbasierte Testautomatisierung + Web-Anwendung: Erstes Einsatzgebiet, Ergebnisse aber allgemein übertragbar + Test aus Benutzersicht - Nicht Unit-Test,

Mehr

Langlebige Softwarearchitekturen

Langlebige Softwarearchitekturen Langlebige Softwarearchitekturen Dr. Carola Lilienthal Carola.Lilienthal@wps.de www.wps.de //// Hans-Henny-Jahnn-Weg 29 //// 22085 HAMBURG Die zwei Architekturziele für diesen Vortrag Architekturziel 1:

Mehr

Informatik - Übungsstunde

Informatik - Übungsstunde Informatik - Übungsstunde Jonas Lauener (jlauener@student.ethz.ch) ETH Zürich Woche 08-25.04.2018 Lernziele const: Reference const: Pointer vector: iterator using Jonas Lauener (ETH Zürich) Informatik

Mehr

Softwarequalität sicherstellen mit Sonar

Softwarequalität sicherstellen mit Sonar Softwarequalität sicherstellen mit Sonar Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen Hochschule München Michaela Lutz München, den 07. Juni 2013 1 Gliederung Was ist Sonar? Komponenten

Mehr