Lean Modeling - Software Systeme einfach und präzise mit ... · USP, bla, ROI, bla, bla! JVM, bla,...

17
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

Transcript of Lean Modeling - Software Systeme einfach und präzise mit ... · USP, bla, ROI, bla, bla! JVM, bla,...

�����

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

�����

•  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

�����

Unit Tests

Klassisches Vorgehen

Software Manuelle Abnahmetests

Unerfüllte Anforderungen, Unerwartetes Verhalten

Funktionale Bugs

Anforderungen

3

Kundenwunsch

Lean Modeling | DevBoost GmbH

�����

•  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

�����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

�����

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

�����

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

�����

•  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

�����

DEMO

9 Lean Modeling | DevBoost GmbH

�����

•  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

�����Beispiel – Testentwicklung

TDD | DevBoost GmbH 11

�����Beispiel – Testentwicklung

TDD | DevBoost GmbH 12

Warum damit nur testen?!!

�����

•  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

�����

DEMO

14 Lean Modeling | DevBoost GmbH

�����

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

�����

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

�����

Danke!

Fragen?

http://www.nat-spec.com

[email protected]

[email protected]

Lean Modeling | DevBoost GmbH 17