Schwarzmann | Agile ABAP-Entwicklung | Buch | 978-3-8362-6186-9 | sack.de

Buch, Deutsch, 575 Seiten, Format (B × H): 181 mm x 246 mm, Gewicht: 1188 g

Reihe: SAP press

Schwarzmann

Agile ABAP-Entwicklung

Testgetriebene Entwicklung, Scrum, Lean Development, Walking Skeleton u.v.m.
1. Auflage 2019
ISBN: 978-3-8362-6186-9
Verlag: Rheinwerk Verlag GmbH

Testgetriebene Entwicklung, Scrum, Lean Development, Walking Skeleton u.v.m.

Buch, Deutsch, 575 Seiten, Format (B × H): 181 mm x 246 mm, Gewicht: 1188 g

Reihe: SAP press

ISBN: 978-3-8362-6186-9
Verlag: Rheinwerk Verlag GmbH


Let's go agile! Geht das überhaupt mit ABAP? Dieses Buch führt Sie passgenau in die agile Entwicklung ein und setzt dabei genau da an, wo Sie sich auskennen: bei Ihrem Legacy Code. Sie lesen, wie Sie Ihre Programme Schritt für Schritt verbessern und erlernen dabei die wichtigsten Methoden der testgetriebenen Entwicklung. Anschließend erfahren Sie, wie Sie diese und viele weitere Techniken auch in neuen Entwicklungsprojekten einsetzen können. Clean Code, Walking Skeleton, Shared Code Ownership, Executable Documentation und Co. sind schon bald keine Fremdwörter mehr für Sie!

Aus dem Inhalt:

- Testgetriebene Entwicklung

- Objektorientiertes Design

- Test-Doubles

- ABAP Unit

- Redesign und Neuentwicklung

- Kontinuierliche Verbesserung

- Der perfekte Sprint

- ABAP Test Isolation Tools

- ABAP Development Tools (ABAP in Eclipse)

- Ausbildungsstrategie und Skalierbarkeit

Schwarzmann Agile ABAP-Entwicklung jetzt bestellen!

Autoren/Hrsg.


Weitere Infos & Material




  Vorwort ... 21


  Einleitung ... 23


  1.  Einführung ... 31


       1.1 ... Nachhaltigkeit: Entwicklung und Wartung mit einer Testinfrastruktur ... 32

       1.2 ... Agilität: Praktiken des Agile Software Engineerings ... 37

       1.3 ... Effizienz: Einhaltung von Designprinzipien ... 38

       1.4 ... Kommunikation: Diagramme als Gesprächsgrundlage ... 42




TEIL I  Aufbau einer Testinfrastruktur ... 45



  2.  Beispielanwendung für diesen Buchteil ... 47


       2.1 ... Stammdatenmanagement ... 48

       2.2 ... Benutzeroberfläche ... 50

       2.3 ... Backend ... 51



  3.  Codebasierte Verbesserung eines Tests ... 55


       3.1 ... Einführung in den Testcode ... 55

       3.2 ... Allgemeine Clean-Code-Prinzipien ... 67

       3.3 ... Testorientierte Clean-Code-Prinzipien ... 76



  4.  Designbasierte Verbesserung des Tests ... 85


       4.1 ... Basisklasse von Testklassen ... 85

       4.2 ... Verwendung von Hilfsklassen durch Testklassen ... 91



  5.  Robuster Integrationstest ... 99


       5.1 ... Verbesserungsprozess ... 99

       5.2 ... Unabhängigkeit von Testmethoden ... 100

       5.3 ... Wiederholbarkeit von Testmethoden ... 105



  6.  Minimierung von Abhängigkeiten ... 113


       6.1 ... Vereinfachung einer Verwendung ... 114

       6.2 ... Abgrenzung einer Verwendung ... 121

       6.3 ... Unabhängigkeit von einer Erzeugung ... 125

       6.4 ... Unabhängigkeit von einer Erweiterung ... 131



  7.  Isolierter Komponententest ... 137


       7.1 ... Transformation des Integrationstests ... 138

       7.2 ... Skalierung mit einer Testsprache ... 150

       7.3 ... Testgetriebene Entwicklung ... 157

       7.4 ... Liskov-Substitution-Prinzip ... 161



  8.  Redesign mit Unit-Tests ... 165


       8.1 ... Objektorientierte API für Entitäten ... 167

       8.2 ... Hervorheben von Änderungen als eigenständige Einheit ... 170

       8.3 ... Tests für die Highlight-Changes-Klasse ... 177

       8.4 ... Zusammenfassung des ersten Teils ... 182




TEIL II  Testorientiertes ABAP-Design ... 185



  9.  Design von Methoden ... 187


       9.1 ... Regeln zur Implementierung einer Methode ... 188

       9.2 ... Regeln für die Signatur einer Methode ... 196



10.  Design von Klassen ... 209


       10.1 ... Erzeugung eines Objekts durch seine Klasse ... 210

       10.2 ... Erzeugung eines Objekts durch eine Factory-Klasse ... 213

       10.3 ... Abhängigkeitsarten zwischen Klassen ... 217

       10.4 ... Interfaces einer Klasse ... 220

       10.5 ... Abstraktionsebenen innerhalb einer Klasse ... 222

       10.6 ... Katalog-Entwurfsmuster ... 229

       10.7 ... Innerer Zusammenhalt ... 231



11.  Design von Paketen ... 237


       11.1 ... Paketkonzept ... 237

       11.2 ... Produktpakete ... 244

       11.3 ... Testpakete ... 246



12.  Testfälle ... 249


       12.1 ... Testdesign ... 250

       12.2 ... Testpyramide ... 253

       12.3 ... Testabdeckung ... 256



13.  Testdoubles ... 259


       13.1 ... Vorteile von Testdoubles ... 259

       13.2 ... Spezifikation von Testdoubles ... 263

       13.3 ... Design von Testdoubles ... 269

       13.4 ... Injektion von Testdoubles ... 275



14.  Globale Testdoubles ... 289


       14.1 ... Testdouble für eine DOM-Methode ... 290

       14.2 ... Testdouble für zwei DOM-Methoden ... 295

       14.3 ... Kombination zweier Methodendoubles ... 301

       14.4 ... Globalisierung von Testdoubles ... 307

       14.5 ... Design globaler Testdoubles ... 310

       14.6 ... Anpassung globaler Testdoubles ... 313



15.  Testklassen ... 319


       15.1 ... Lokale Testklassen ... 321

       15.2 ... Entwurfsmuster ... 324

       15.3 ... Testklassenhierarchien ... 327

       15.4 ... Globale Testklassen ... 331

       15.5 ... Namenskonventionen für Testcode ... 333



16.  Testdaten ... 335


       16.1 ... Testdatencontainer ... 335

       16.2 ... Testdatenobjekte ... 343



17.  Testinfrastruktur ... 355


       17.1 ... Anwendungsszenarien für eine globale Testinfrastruktur ... 357

       17.2 ... Entwicklungsprozesse mithilfe einer Testinfrastruktur ... 362

       17.3 ... Zusammenfassung des zweiten Teils ... 365




TEIL III  Agile Neuentwicklung ... 367



18.  Planung und Vorarbeit ... 369


       18.1 ... Spezifikation der Beispielanwendung ... 370

       18.2 ... Architektur und Design der Beispielanwendung ... 372

       18.3 ... Teststrategie für die Beispielanwendung ... 377

       18.4 ... Vorbereitung der testgetriebenen Entwicklung ... 380



19.  Testgetriebene Entwicklung ... 393


       19.1 ... Akzeptanztestgetriebene Entwicklung ... 393

       19.2 ... Komponententestgetriebene Entwicklung ... 396

       19.3 ... Unit-Test-getriebene Entwicklung ... 401

       19.4 ... Objektbasierte Überprüfung ... 403

       19.5 ... Testen des Änderns und Sicherns eines Vertrags ... 407

       19.6 ... Zusammenfassung des dritten Teils ... 413




TEIL IV  Agile Methoden ... 415



20.  Scrum ... 417


       20.1 ... Artefakte ... 417

       20.2 ... Rollen ... 423

       20.3 ... Meetings ... 424

       20.4 ... Eigenschaften ... 429



21.  Agile Software Engineering ... 433


       21.1 ... Refactoring ... 434

       21.2 ... Testgetriebene Entwicklung ... 437

       21.3 ... Paarweise Programmierung ... 441

       21.4 ... Walking Skeleton ... 447

       21.5 ... Gemeinsame Codeverantwortung ... 453

       21.6 ... Kontinuierliche Integration ... 459



22.  Lean-Entwicklungsmodell ... 463


       22.1 ... Grundlagen ... 463

       22.2 ... Umsetzung der Lean-Prinzipien mit Agile Software Engineering ... 465

       22.3 ... Testinfrastruktur ... 467

       22.4 ... Agile Coaching ... 468



23.  Entwicklung der Teams ... 469


       23.1 ... Nachhaltige Ausbildung ... 469

       23.2 ... Lücken in der Ausbildung ... 473

       23.3 ... Agile Coaching ... 476

       23.4 ... Netzwerk für Agile Coaching ... 483



24.  Entwicklung des Backlogs ... 485


       24.1 ... Design Thinking ... 486

       24.2 ... User Story Mapping ... 492



25.  Entwicklung des Produkts ... 497


       25.1 ... Nachhaltige Entwicklung ... 498

       25.2 ... Entwicklungsstrategien für Legacy Code ... 501

       25.3 ... Entwicklungsstrategien für neuen Code ... 502

       25.4 ... Zusammenfassung des vierten Teils ... 504




TEIL V  Testorientierte ABAP-Werkzeuge ... 505



26.  ABAP Unit ... 507


       26.1 ... Klasse CL_ABAP_UNIT_ASSERT ... 507

       26.2 ... Ausführung von Tests ... 512

       26.3 ... Entwicklungsobjekte ... 518



27.  ABAP Development Tools ... 521


       27.1 ... Einführung ... 521

       27.2 ... Testgetriebene Entwicklung mit den ABAP Development Tools ... 525



28.  ABAP-Werkzeuge zur Testisolierung ... 545


       28.1 ... Beispielklasse ... 545

       28.2 ... Open SQL Test Double Framework ... 548

       28.3 ... Test Seams ... 551

       28.4 ... ABAP Test Double Framework ... 553

       28.5 ... Zusammenfassung des fünften Teils und des gesamten Buches ... 557




  Anhang ... 559



  A.  Namenskonventionen ... 561


  B.  Literaturverzeichnis ... 563


  C.  Der Autor ... 564


  Index ... 565


Schwarzmann, Winfried
Winfried Schwarzmann ist bei der SAP SE als Entwicklungsarchitekt im Bereich Financial Operations tätig. Parallel dazu ist er seit 2011 als Trainer und Coach für das Thema Agile Software Engineering im Einsatz. Über die Jahre hat er einen Programmierstil für gut lesbare und wartungsarme ABAP-Unit-Tests entwickelt, der objektorientierte Designprinzipien konsequent umsetzt. Zur besseren Verbreitung in der ABAP-Community hat er dazu einen Workshop für das Development-Expert-Curriculum und die Schulung „ABAP OO in der Praxis“ konzipiert. In seinem Buch fasst er seine objektorientierten Entwurfsmuster und die agile Methodik vollständig zusammen. Winfried Schwarzmann studierte Mathematik mit dem Nebenfach Informatik an der Universität Ulm. Während seines Auslandsaufenthalts in Milwaukee, USA, unterrichtete er am College of Letters and Science und machte an der University of Wisconsin den Abschluss Master of Science in Mathematics. 1998 stieg er bei SAP als C++-Entwickler im Bereich Supply Chain Management (SCM) ein. Nach vier Jahren wechselte er in die ABAP-Anwendungsentwicklung.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.