Wir müssen eine Webanwendung erstellen, die als Antragsformular für mehrere Versicherungsprodukte verwendet wird (insgesamt 15). Dieses Antragsformular ähnelt einem Formularassistenten und erstreckt sich über mehrere Seiten, je nachdem, welches Produkt zwischen 4 und 10 liegt.
Die Gesamtsumme aller verschiedenen Elemente (Eingaben, Auswahlfelder), die das Formular rendern wird, beträgt ungefähr 250, aber selbst das komplexeste Produkt wird nicht mehr als 170 davon verwenden. Die am wenigsten komplexe benötigt noch rund 80 Elemente.
Wir möchten nicht 15 verschiedene Antragsformulare erstellen, eines pro Produkt, sondern ein einziges Antragsformular, das von allen Produkten verwendet wird.
Wie Sie sich vorstellen können, bestehen zwischen den Elementen viele Abhängigkeiten. Ein in ein Feld eingegebener Wert kann dazu führen, dass ein anderes Feld oder eine Reihe von Feldern angezeigt oder ausgeblendet wird (auf der aktuellen Seite oder einer oder mehreren folgenden Seiten). Einige andere Abhängigkeiten basierend auf eingegebenen Werten:
- Wert eines Elements ist erforderlich oder nicht
- Mögliche Werte für Auswahlfelder werden geändert
- Die Validierungsbeschränkungen werden geändert
Wie Sie sich vorstellen können, ist die Modellierung sehr komplex. Die Frage ist, welches Tool würden Sie empfehlen, um all diese Elemente, die Abhängigkeiten zwischen ihnen und die Validierungsbeschränkungen zu modellieren (und zu dokumentieren)? Wie würden Sie die Modellierung durchführen? In diesem Fall wird überhaupt nicht über das Datenmodell gesprochen. Dieses Modell wird Teil der Spezifikationen dessen sein, was getan werden muss, und als Referenz nach Abschluss des Projekts. Durch Ändern des Modells werden die Antragsformulare nicht automatisch geändert.
Einige der Dinge, die wir gerne einfach machen möchten:
- Sehen Sie, von welchen Elementen ein bestimmtes Element abhängt
- Alle im Formular enthaltenen Elemente für ein bestimmtes Produkt anzeigen
- Siehe erforderliche Elemente für ein bestimmtes Produkt
- Definieren Sie Validierungsregeln für jedes Element
- Definieren Sie verschiedene Attribute für jedes Element
Einschränkung: Unsere Produktmanager und Produktbesitzer sind diejenigen, die die Modellierung durchführen.
quelle
Antworten:
Für ein ähnlich komplexes Projekt haben wir im Business-Layer einen Interpreter mit Formeln für "isValid" und "isVisible" für jedes Formularelement implementiert
Für den Interpreter haben wir die Object Constraint Language von UML verwendet, die einst für diesen Zweck entwickelt wurde.
Leider spricht fast niemand "uml-ocl", so dass es schwierig ist, jemanden zu finden, der die Regeln einhält.
Wenn wir das noch einmal machen müssten, würden wir eine allgemeinere Sprache wie js / vb-script für den Interpreter wählen
quelle
Eine Kombination von Tools kann bei der Verwaltung der Komplexität hilfreich sein. Ich beginne gerne mit einem strukturierten, aber beschreibenden Ansatz (im Gegensatz zu einem stark formalisierten Ansatz), mit dem Menschen leicht interagieren können. PMs sollten mit Tabellenkalkulationen vertraut sein, und es kann hilfreich sein, Abhängigkeiten in Tabellenform zu gestalten.
In einem ersten Durchgang kann dies Probleme mit der Logik aufdecken und / oder Möglichkeiten zur Vereinfachung der Logik identifizieren.
Und während PMs möglicherweise direkt vor Webprogrammierung zurückschrecken, verwenden Sie eine moderne, ausdrucksstarke clientseitige Technologie, um die "Sprache" Ihrer Anwendung aufzubauen. Tools wie angle.js fördern die Konzentration auf die Funktionen der Komponenten und minimieren den Rauschcode. Die richtige Web-Technologie sollte auch eine gute Testunterstützung bieten.
quelle
Wir hatten ein ähnliches Projekt. Sehr komplexe Formen und viele davon.
Enterprise Architect (EA)
Hier ist ein Link.
Qualifier: Es ist ein paar Jahre her, seit ich es das letzte Mal benutzt habe. Ein komplexes Werkzeug. Große Lernkurve. Sehr gute UML-Kenntnisse für präzise Ergebnisse erforderlich; Hinter allem stehen Metadaten . Daher ist die EA-Funktionalität breit, tief, rätselhaft und manchmal eigenartig.
EA integriert seine Artefakte sehr gut. Das kollektive Wissen unserer Teams über UML- und EA-Tools reichte jedoch nicht aus, um ein zufriedenstellendes End-to-End-Tool zu erstellen. Beachten Sie, dass unser Ziel nicht darin bestand, es so zu verwenden. Trotzdem ist es besser, das Tool (einige Aspekte) nicht zu verwenden, als es schlecht zu verwenden.
Jeder Entwickler hat damit Klassen für sein zugewiesenes Formular (oder einen Abschnitt davon) entworfen. Der Business Analyst hat damit Anwendungsfalldiagramme erstellt. Ich habe es nicht für die Anforderungsanalyse verwendet, da die Papierformulare, Formulardaten und Prozesse gut etabliert waren - und dies vor der Einführung von EA.
Wir konnten dieses umfassende Tool, das die Integration von der Anforderungsanalyse in den tatsächlichen Code versprach, nie nutzen. Die Entwickler haben nur genug gelernt, um die rudimentären Klassen- und Sequenzdiagramme zu erstellen, die für die Genehmigung des Management-Go-Codes erforderlich sind. Und mir war klar, dass selbst wenn ich aus den Klassendiagrammen eine Code-Shell generierte, diese zu schwierig (dh ohne detaillierte UML-Kenntnisse), zu unpraktisch und zu langwierig war , um EA mit der Codeentwicklung synchron zu halten. Sobald wir mit dem Codieren begannen, wurden die UML-Diagramme sehr schnell veraltet und ignoriert.
Gute Sequenzdiagramme sind von unschätzbarem Wert für das Verständnis der Klasseninteraktion und der Objektinstanziierung. Eine schöne Karte auf hoher Ebene beim Codieren.
Warnung
Kompetentes und (angemessen) vollständiges Design von Geschäftsdomänen ist weitaus wichtiger als jedes andere Tool. Ich bekomme PTS nur darüber nachzudenken, wie universell & * $ & # unser Code war, außer in der sehr seltenen Zeit, in der wir ein gutes Geschäftsmodell gemacht haben. Ich könnte Seiten und Seiten schreiben.
quelle