Vortrag auf der OOP 2018 in München
Moderne Methoden im Requirements Engineering, kreatives Prototyping, Domänenmodellierung, Architektur, Cloud, all das spielt heute so Hand in Hand, dass es richtig Spaß macht, gemeinsam mit den Usern eine Anwendung zu bauen.
Ich möchte mit dem Publikum gemeinsam einen Parforceritt durch die Disziplinen des Software Engineering machen. Ich möchte zeigen, dass unsere Kunst inzwischen so hoch entwickelt ist, dass Brüche zwischen den Requirements-, Design- und Programmierungsschritten fast verschwunden sind.
Die Teilnehmer werden das zu lösende Problem diskutieren, Handy-Oberflächen dazu zeichnen, diese fotografieren und die UI-Fotos hochladen.
Ich verknüpfe die Fotos zu einem klickbaren Prototyp und produziere dann mit dem Publikum zusammen einen Use Case, ein Domain Model, eine 6-Eck-Architektur und ein wenig Code.
Am Schluss wird völlig klar sein, wie die Anwendung aussieht, aus welchen Komponenten sie besteht und wie ein Team praktisch sofort loslegen könnte, sie fertig zu entwickeln.
1. Matthias Bohlen
Coach und Trainer für effektive Produktentwicklung
Tel: +49 170 772 8545
E-Mail: mbohlen@mbohlen.de
Web: http://mbohlen.de
Einmal durch
in 90 Minuten
App-Entwicklung gegen die Uhr
auf der OOP 2018
2. Die Herausforderung
•Werden wir es mit modernen Methoden gemeinsam
schaffen, in 90 Minuten von der ersten Idee eines
Anwenderproblems über Oberflächendesign,
Use Case, Architektur, Domain Driven Design
bis zur Grundstruktur einer Cloud-Anwendung zu
kommen, die das Anwenderproblem löst?
3. Apple App Store Google Play
Diese Anwendung ("POP") brauchen Sie heute.
Bitte laden Sie sie schon mal
aus dem Store auf Ihr Handy!
4. In 90 Minuten einmal durch
Uhrzeit Aufgabe
09:00 - 09:10 Die Zielgruppe und ihr Problem
09:10 - 09:25 Prototyping auf Papier
09:25 - 09:40 Klickbarer Prototyp auf dem Handy
09:40 - 09:55 Use Case und Domänenmodell
09:55 - 10:05 Ports und Adapter in der Architektur
10:05 - 10:20 Code-Grundgerüst
10:20 Ziel erreicht, Übergabe an die Entwickler
5. Zielgruppe, Problem, Produkt
• Für (Ziel-Kunden)
• Die mit (aktuelle Alternativen) unzufrieden sind
• Bildet unser Produkt ein/e (neue Produktkategorie)
• Die (Problemlöse-Fähigkeit) zur Verfügung stellt.
• Anders als (Produktalternative)
• Hat unser Produkt (Key Features).
Ziel-Kunden
aktuelle Alternative
neue Produktkategorie
Problemlöse-Fähigkeit
Produktalternative
Key Features
"Elevator Pitch Template"
Crossing the Chasm,
Geoffrey Moore
6.
7. Anleitung für POP (= Prototyping on Paper)
1. Aus dem Store aufs Handy laden
2. Neues Projekt anlegen
3. Eine UI-Skizze fotografieren
4. Foto zurechtschneiden
5. Mehrere Fotos in die richtige Reihenfolge bringen
6. Links hinzufügen
7. Teilen und von jemandem testen lassen
10 pixel
40 pixel
Status Bar
Navigation Bar
Tab Bar
Notes Notes Notes
iPhone 6
Apple App Store Google Play
"In 90 Minuten einmal durch"
Schnelles App-Design mit Matthias Bohlen
Kontakt:
+49 170 772 8545
mbohlen@mbohlen.de
9. Use Case
UC1.16: Lieferadresse erfassen
Akteur: Käufer
Vorbedingung: Besitzer der Adresse (Person) ist bereits ausgewählt
User-Absicht Systemverantwortung
Eingabeformular darstellen
Straße, Hausnummer, Postleitzahl, Ort,
Land erfassen
Felder validieren
Beenden Adresse speichern
Erfolgsbestätigung anzeigen
Nachbedingung: Adresse ist validiert und gespeichert.
15. Spezialisierungen von DDD-Bausteinen
Read Model
(Value Object)
Daten, die der
User lesen will,
damit er sich
entscheiden
kann, dem
System ein
Command zu
geben
Command
(Value Object)
Daten, die der
User an das
System
schickt, damit
das System
etwas für ihn
tun kann
Application
Service
Sammlung von
Methoden, die
Commands
entgegen-
nehmen, aus-
führen und
Read Models
zurückgeben
16. Read Model Beispiel
public class AuszuwaehlenderArtikel {
public Long id;
public String artikelName;
public String artikelBildURL;
public BigDecimal preis;
}
List<AuszuwaehlenderArtikel> artikelAuswahlReadModel;