Zum Hauptinhalt springen
Dekorationsartikel gehören nicht zum Leistungsumfang.
Agile ABAP-Entwicklung
Testgetriebene Entwicklung, Scrum, Lean Development, Walking Skeleton u.v.m.
Buch von Winfried Schwarzmann
Sprache: Deutsch

79,90 €*

inkl. MwSt.

Versandkostenfrei per Post / DHL

auf Lager, Lieferzeit 2-4 Werktage

Kategorien:
Beschreibung

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

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
Über den Autor
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.
Zusammenfassung
Regeln und Tipps für effizientes objektorientiertes Design
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
Details
Erscheinungsjahr: 2018
Fachbereich: Programmiersprachen
Genre: Informatik, Mathematik, Medizin, Naturwissenschaften, Technik
Rubrik: Naturwissenschaften & Technik
Medium: Buch
Reihe: SAP Press
Inhalt: 575 S.
ISBN-13: 9783836261869
ISBN-10: 3836261863
Sprache: Deutsch
Herstellernummer: 459/06186
Einband: Gebunden
Autor: Schwarzmann, Winfried
Hersteller: Rheinwerk
Rheinwerk Verlag GmbH
Verantwortliche Person für die EU: Rheinwerk Verlag GmbH, Rheinwerkallee 4, D-53227 Bonn, service@rheinwerk-verlag.de
Maße: 246 x 181 x 40 mm
Von/Mit: Winfried Schwarzmann
Erscheinungsdatum: 28.12.2018
Gewicht: 1,188 kg
Artikel-ID: 114130979
Über den Autor
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.
Zusammenfassung
Regeln und Tipps für effizientes objektorientiertes Design
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
Details
Erscheinungsjahr: 2018
Fachbereich: Programmiersprachen
Genre: Informatik, Mathematik, Medizin, Naturwissenschaften, Technik
Rubrik: Naturwissenschaften & Technik
Medium: Buch
Reihe: SAP Press
Inhalt: 575 S.
ISBN-13: 9783836261869
ISBN-10: 3836261863
Sprache: Deutsch
Herstellernummer: 459/06186
Einband: Gebunden
Autor: Schwarzmann, Winfried
Hersteller: Rheinwerk
Rheinwerk Verlag GmbH
Verantwortliche Person für die EU: Rheinwerk Verlag GmbH, Rheinwerkallee 4, D-53227 Bonn, service@rheinwerk-verlag.de
Maße: 246 x 181 x 40 mm
Von/Mit: Winfried Schwarzmann
Erscheinungsdatum: 28.12.2018
Gewicht: 1,188 kg
Artikel-ID: 114130979
Sicherheitshinweis