Top Banner
Lean Modeling - Software Systeme einfach und präzise mit natürlicher Sprache spezizieren Dr. Christian Wende und Dr. Tobias Nestler, DevBoost GmbH 21. Mai 2014, Karlsruher Entwicklertag 2014, Dresden
17

Lean Modeling - Software Systeme einfach und präzise mit ... · USP, bla, ROI, bla, bla! JVM, bla, XML, bla, bla! Lean Modeling | DevBoost GmbH Unit Tests Klassisches Vorgehen Software

Jun 04, 2018

Download

Documents

dophuc
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Lean Modeling - Software Systeme einfach und präzise mit ... · USP, bla, ROI, bla, bla! JVM, bla, XML, bla, bla! Lean Modeling | DevBoost GmbH Unit Tests Klassisches Vorgehen Software

�����

Lean Modeling - Software Systeme einfach und präzise mit natürlicher Sprache spezifizieren

Dr. Christian Wende und Dr. Tobias Nestler, DevBoost GmbH

21. Mai 2014, Karlsruher Entwicklertag 2014, Dresden

Page 2: Lean Modeling - Software Systeme einfach und präzise mit ... · USP, bla, ROI, bla, bla! JVM, bla, XML, bla, bla! Lean Modeling | DevBoost GmbH Unit Tests Klassisches Vorgehen Software

�����

•  Softwareentwickler erstellen Software, um die Anforderungen ihrer Kunden zu erfüllen („Job to be done“)

•  Kommunikationsproblem in der Anforderungsanalyse

•  Anforderung als wichtiges Abnahmekriterium bei der Auslieferung

Ausgangssituation: Softwareentwicklung

2

USP, bla, ROI, bla,

bla!JVM, bla, XML, bla,

bla!

Lean Modeling | DevBoost GmbH

Page 3: Lean Modeling - Software Systeme einfach und präzise mit ... · USP, bla, ROI, bla, bla! JVM, bla, XML, bla, bla! Lean Modeling | DevBoost GmbH Unit Tests Klassisches Vorgehen Software

�����

Unit Tests

Klassisches Vorgehen

Software Manuelle Abnahmetests

Unerfüllte Anforderungen, Unerwartetes Verhalten

Funktionale Bugs

Anforderungen

3

Kundenwunsch

Lean Modeling | DevBoost GmbH

Page 4: Lean Modeling - Software Systeme einfach und präzise mit ... · USP, bla, ROI, bla, bla! JVM, bla, XML, bla, bla! Lean Modeling | DevBoost GmbH Unit Tests Klassisches Vorgehen Software

�����

•  Verständnisprobleme werden zu spät erkannt

•  Anforderungsspezifikation ist “totes” Artefakt

•  Communication Gap zwischen –  Anforderung und Test –  Anforderung und Implementierung

•  Automatisierte Unit Tests validieren aus Sicht des Entwicklers, nicht aus Sicht des Kunden

•  Manuelle Abnahmetests sind aufwendig und fehleranfällig

Probleme

4 Lean Modeling | DevBoost GmbH

Page 5: Lean Modeling - Software Systeme einfach und präzise mit ... · USP, bla, ROI, bla, bla! JVM, bla, XML, bla, bla! Lean Modeling | DevBoost GmbH Unit Tests Klassisches Vorgehen Software

�����Acceptance Test Driven Development (ATDD)

Software

Unerfüllte Anforderungen, Unerwartetes Verhalten,

Funktionale Bugs

5

*.docx!

*.java!

?!

Automatisierte Abnahmetests

Anforderungen in Szenarien

Kundenwunsch

Lean Modeling | DevBoost GmbH

Anforderungen gemeinsam spezifizieren

Ausführbare Tests automatisiert erzeugen

Page 6: Lean Modeling - Software Systeme einfach und präzise mit ... · USP, bla, ROI, bla, bla! JVM, bla, XML, bla, bla! Lean Modeling | DevBoost GmbH Unit Tests Klassisches Vorgehen Software

�����

Beispiel Flugbuchungssystem

•  Klassische Anforderung [Lastenheft nach Balzert]

/FB 1030/ A Passenger receives a ticket after booking a flight

•  Agile User Story [nach Jeffries]

Anforderungen gemeinsam spezifizieren

6 Lean Modeling | DevBoost GmbH

As a passenger I want to book a flight and receive a valid ticket.

Confirmations: •  Ticket is only issued if

if enough seats available

Page 7: Lean Modeling - Software Systeme einfach und präzise mit ... · USP, bla, ROI, bla, bla! JVM, bla, XML, bla, bla! Lean Modeling | DevBoost GmbH Unit Tests Klassisches Vorgehen Software

�����

Beispiel Flugbuchungssystem (Airplanes, Flights, Passengers)

ATDD Story: Booking a Flight A flight LH-1234 is scheduled It will be executed with a Boeing-787 There are 200 free seats There is a passenger John Doe Book seat for John Doe at LH-1234 Assume a valid ticket is issued

Anforderungen gemeinsam spezifizieren

Eingabe

Systemfunktion

Ergebniserwartung

7 Lean Modeling | DevBoost GmbH

Page 8: Lean Modeling - Software Systeme einfach und präzise mit ... · USP, bla, ROI, bla, bla! JVM, bla, XML, bla, bla! Lean Modeling | DevBoost GmbH Unit Tests Klassisches Vorgehen Software

�����

•  Nur testbare (ausführbare) Anforderungen bleiben lebendig und sind wertvoll

•  Testerzeugung muss direkt aus Anforderung erfolgen und darf diese nicht verändern

•  Testerzeugung muss für Entwickler einfach und flexibel umsetzbar sein

•  Testerzeugung muss auf bestehende Test-Frameworks aufsetzen (Junit, TestNG, HtmlUnit, jMock, EasyMock, Arquillian, etc)

8

Ausführbare Tests automatisiert erzeugen

Lean Modeling | DevBoost GmbH

Page 9: Lean Modeling - Software Systeme einfach und präzise mit ... · USP, bla, ROI, bla, bla! JVM, bla, XML, bla, bla! Lean Modeling | DevBoost GmbH Unit Tests Klassisches Vorgehen Software

�����

DEMO

9 Lean Modeling | DevBoost GmbH

Page 10: Lean Modeling - Software Systeme einfach und präzise mit ... · USP, bla, ROI, bla, bla! JVM, bla, XML, bla, bla! Lean Modeling | DevBoost GmbH Unit Tests Klassisches Vorgehen Software

�����

•  Verbesserte Kommunikation und Zusammenarbeit im Team und mit Kunden

•  Fokussierung auf die wesentlichen und kundenrelevanten Softwarefunktionen

•  Direkte Messung des aktuellen Projektfortschrittes

•  Höhere Entwicklungseffizienz durch klare, kontinuierliche Verständigung, weniger Missverständnisse, weniger Iterationen und weniger “tote” Spezifikationen

•  Höhere Produktqualität durch frühestmögliche, kontinuierliche Überprüfung des Implementierungszustandes bzgl. der Akzeptanzkriterien

10 Lean Modeling | DevBoost GmbH

Vorteile von ATDD

Page 11: Lean Modeling - Software Systeme einfach und präzise mit ... · USP, bla, ROI, bla, bla! JVM, bla, XML, bla, bla! Lean Modeling | DevBoost GmbH Unit Tests Klassisches Vorgehen Software

�����Beispiel – Testentwicklung

TDD | DevBoost GmbH 11

Page 12: Lean Modeling - Software Systeme einfach und präzise mit ... · USP, bla, ROI, bla, bla! JVM, bla, XML, bla, bla! Lean Modeling | DevBoost GmbH Unit Tests Klassisches Vorgehen Software

�����Beispiel – Testentwicklung

TDD | DevBoost GmbH 12

Warum damit nur testen?!!

Page 13: Lean Modeling - Software Systeme einfach und präzise mit ... · USP, bla, ROI, bla, bla! JVM, bla, XML, bla, bla! Lean Modeling | DevBoost GmbH Unit Tests Klassisches Vorgehen Software

�����

•  Konzeptuell analog zu ATDD, aber: –  keine Beschränkung auf Testcode –  keine syntaktischen Beschränkungen bzgl. der verwendeten Sätze

•  Beispiele: –  Businessregeln –  Datenstrukturen –  Oberflächen –  Technische Dokumentationen

–  Schnittstellen –  Workflows

13 Lean Modeling | DevBoost GmbH

Von ATDD zu Lean Modeling

Page 14: Lean Modeling - Software Systeme einfach und präzise mit ... · USP, bla, ROI, bla, bla! JVM, bla, XML, bla, bla! Lean Modeling | DevBoost GmbH Unit Tests Klassisches Vorgehen Software

�����

DEMO

14 Lean Modeling | DevBoost GmbH

Page 15: Lean Modeling - Software Systeme einfach und präzise mit ... · USP, bla, ROI, bla, bla! JVM, bla, XML, bla, bla! Lean Modeling | DevBoost GmbH Unit Tests Klassisches Vorgehen Software

�����

15 Lean Modeling | DevBoost GmbH

Vorteile von Lean Modeling

Klassisches “Fat” Modeling Lean Modeling Viele verschiedene Sprachen für spezielle Aufgaben

Eine universelle Sprache mit einfacher Möglichkeit zur Spezialisierung

Formale Sprachen sind für Menschen schwerer zugänglich

Natürliche Sprache ist für Menschen gemacht

Tracing zwischen Modell und Code ist aufwendig und technologisch schwierig

Tracing zwischen Spezifikation und Code ist im Vorgehen “eingebaut”

Konzepte und Werkzeuge sind komplex und erfordern Expertenwissen

Konzepte sind einfach und Ansatz integriert vertraute Werkzeuge

Page 16: Lean Modeling - Software Systeme einfach und präzise mit ... · USP, bla, ROI, bla, bla! JVM, bla, XML, bla, bla! Lean Modeling | DevBoost GmbH Unit Tests Klassisches Vorgehen Software

�����

Werkzeug ausprobieren

•  NatSpec www.nat-spec.com - Kostenlose Trial Version

Literatur

•  Specification by Example: How Successful Teams Deliver the Right Software (Gojko Adzic - Manning)

•  The Cucumber Book: Behaviour-Driven Development for Testers and Developers (Matt Wynne, Aslak Hellesoy - Pragmatic Programmers)

•  ATDD in der Praxis: Eine praktische Einführung in die akzeptanztestgetriebene Softwareentwicklung (Markus Gärtner - dpunkt.verlag)

•  ATDD by Example (Markus Gärtner - Pearson Education)

16 Lean Modeling | DevBoost GmbH

Nächste Schritte

Page 17: Lean Modeling - Software Systeme einfach und präzise mit ... · USP, bla, ROI, bla, bla! JVM, bla, XML, bla, bla! Lean Modeling | DevBoost GmbH Unit Tests Klassisches Vorgehen Software

�����

Danke!

Fragen?

http://www.nat-spec.com

[email protected]

[email protected]

Lean Modeling | DevBoost GmbH 17