Beim Entwurf von komplexen Softwaresystemen ist es wichtig modellzentriert vorzugehen. In den Modellen kann früh und damit kosteneffizient die Struktur und Dynamik des zu erstellenden Systems definiert und analysiert werden.

Eingeschlichene Fehlentwicklungen können weit vor der Umsetzung erkannt und abgewendet werden. Für die Erarbeitung der Anforderungen mit den Fachabteilungen setzen wir auf eine genaue Analyse der statischen Strukturen (Analyse- und Domain-Modell) und der dynamischen Abläufe (Aktivitäts- und Geschäftsprozessmodell).
Im Aktivitätsmodell werden die Interaktionen der Benutzer mit dem Softwaresystem sowie die Aktionen innerhalb der Software festgehalten. Ein strukturierter Aufbau der Modellelemente hilft hierbei die Aktivitäten abstrakt zu formulieren, sie aber zu geeignetem Zeitpunkt tiefer auszudetaillieren. Hierbei ist eine ausgewogene Detaillierung sehr wichtig und von Fall zu Fall verschieden. Zu detaillierte Modelle sind zu unübersichtlich um von allen am Projekt beteiligten verstanden zu werden und eine zu geringe Detailierung verschiebt das Modell in die nutzlose Trivialität.
Im Analysemodell der Daten werden die identifizierten Entitäten, ihre Eigenschaften und Beziegungen untereinander auf abstraktem Niveau festgehalten. Entscheidend ist hierbei wieder eine ausgewogene Detailierung. Mit dieser Voraussetzung können genaue Anforderungen dokumentiert werden, die zu einer abgestimmten Umsetzung führen. Weitere Modelle werden nach Bedarf erarbeitet (Use-Case, State-Machines ...).
Aus diesen Modellen können viele zeitraubende und fehleranfällige Komponenten der Applikationen mittels geeigneter Transformationen generiert werden. Hierzu zählen die logische Struktur der Datenbank und die dazugehörigen O/R Mapper, welche die Tabellenstrukturen in Arbeitsobjekte übersetzen; Datentransfer-, Service- und Client-Domain-Objekte sowie Entity-Translatoren für Service-Layer und Client-Domains. Dieser Ansatz ist fehlersicher, schnell und flexibel gegenüber Änderungen. Im Zusammenspiel mit generischen Lösungen unserer Bibliotheken erreichen wir darüber eine optimale Flexibilität und Skalierbarkeit um notwendige Anpassungen schnell kostengünstig und robust umsetzen zu können