Bücher versandkostenfrei*100 Tage RückgaberechtAbholung in der Wunschfiliale
15% Rabatt10 auf die schönsten Kalender sichern mit dem Code DATUM15
Jetzt einlösen
mehr erfahren
product
cover

Agile ABAP-Entwicklung

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

799 Lesepunkte
Buch (gebunden)
Buch (gebunden)
79,90 €inkl. Mwst.
Zustellung: Fr, 24.01. - Mo, 27.01.
Sofort lieferbar
Versandkostenfrei
Empfehlen
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

Inhaltsverzeichnis



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

Produktdetails

Erscheinungsdatum
28. Dezember 2018
Sprache
deutsch
Seitenanzahl
575
Reihe
SAP Press
Autor/Autorin
Winfried Schwarzmann
Verlag/Hersteller
Produktart
gebunden
Gewicht
1188 g
Größe (L/B/H)
246/181/40 mm
ISBN
9783836261869

Portrait

Winfried Schwarzmann

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.

Bewertungen

0 Bewertungen

Es wurden noch keine Bewertungen abgegeben. Schreiben Sie die erste Bewertung zu "Agile ABAP-Entwicklung" und helfen Sie damit anderen bei der Kaufentscheidung.