Dynamic Code Programming
# Dynamic Code Programming

Dynamic Code Programming (DCP) ist eine Dynamisierung von objektorientierter Programmierung (OOP) oder serviceorientierter Architektur (SOA), beide Typen des Softwaredesigns können in DCP integriert werden.

Grundsätzlich wird beim DCP bestehender Code modular von einem Controller geladen. Dieser Controller entscheidet je nach Aufruf beziehungsweise Parametrisierung, welche Module zu laden und eventuell zu instanziieren sind, bestimmt im Zweifel auch die zugehörigen Parameter für die Instanziierung beziehungsweise den Aufruf der Methode oder der Software. Beim DCP gibt es keine statische Struktur, die definiert, wie der Programmablauf auszusehen hat; vielmehr wird hier auf Basis einer Konfiguration und den Rückmeldungen der einzelnen Ablaufschritte dynamisch entschieden, welcher Schritt als nächstes durchgeführt wird. Jeder Schritt ist ein weiterer Zweig, der in den bisherigen Standards (OOP/SOP) fest verankert war. Beim DCP wird der Ablauf jedoch zum Beispiel in einer Konfigurationsdatei oder einer Datenbank festgehalten.

## Beispiele

### Webapplikation

Es existiert eine Seite A, die als Datei auf dem Server liegt. In der Datenbank steht die Anweisung für den Controller, beim Aufruf von /index.html diese Seite zu laden und auszuliefern. Falls jetzt ein User einen Request auf /index.html absetzt, liefert der Controller die Seite aus.

Ändert man den Datenbankeintrag nun ab und setzt im ersten Ablaufschritt eine Benutzerprüfung ein sowie als Failover für die Benutzerprüfung eine Login-Seite, würde ein nicht angemeldeter Benutzer zunächst die definierte Login-Seite sehen und müsste sich anmelden. Schlägt die Anmeldung fehl oder ist der Benutzer nicht berechtigt, die Seite zu sehen, wird eine entsprechende Fehlermeldung ausgegeben und der Benutzer verbleibt auf der Login-Seite. Bei Erfolg sieht der Benutzer die angeforderte Seite.

Um Seiten nur für bestimmte Benutzer zugänglich zu machen, braucht man je nach Datenbankdesign und Codeaufbau nur noch einen Datenbankeintrag machen und muss nichts am eigentlichen Programmcode ändern.

### Formulargenerierung

Bei der Anwendung von DCP für die Formulargenerierung gibt es eine zugrunde liegende Datensatzstruktur und eventuell zusätzliche Parameter, die beeinflussen, wie das Formular später aussieht. Zusätzlich zur Datensatzstruktur gibt es bei Bedarf direkte oder sprachabhängige Übersetzungen, die genutzt werden um die Namen für die Eingabefelder sowie etwaige Zusatztexte zu definieren. Außerdem wird über eine Typenzuordnung des Datentyps zum Formularfeldtyp entschieden, welche Art Formularfeld hier verwendet wird.

Im Falle der Definition der Datensatzstruktur in der Datenbank würde man einfach die Zieldatentabelle als Grundlage nutzen. Auf diese Art und Weise kann man die Tabelle jederzeit anpassen und das Formular würde sich dann automatisch ändern sowie die neuen Daten damit abfragen.

