devcontrol Entwicklungsprozess


Der analytische Zugriff auf SQL relevante Bestandteilen einer Oracle® basierenden Applikation ist Voraussetzung für einen strukturierten Entwicklungsprozess.

Ausgangslage

Oracle® Datenbank basierende Applikationen sind häufig Kernbestandteil unternehmensweiter IT Lösungen. Im Gegensatz zu Standardsoftware unterliegen diese Applikationen auf mehreren Ebenen einer stärkeren Veränderung. Auslöser für die Änderungen an den Applikationen sind flexiblere Geschäfts- und  Fertigungsabläufe, die mit einmaligem Customizing nicht oder nur unzureichend abgebildet werden können. Die so angestoßenen Entwicklungsprozesse nutzen im Lauf der Zeit verschiedenste Programmiersprachen und Tools. Um deren Möglichkeiten im Zusammenspiel mit der Datenbank umfassend nutzen zu können, werden auch hier die neuesten Versionen vorausgesetzt.

Die Applikation wächst also nicht nur beim Volumen der Daten und dem programmierten Funktionsumfang, sondern auch in der Komplexität der Lösungen und Möglichkeiten der Realisierungsansätze.  

Die zentrale Frage – wo wird wie auf die Daten der Spalte einer Tabelle zugegriffen – beantwortet jedes Entwicklungswerkzeug aber nur im Rahmen seiner Technologie.

Zielsetzung

Aufbau eines Applikation Repositorys: Die Bestandteile einer Applikation werden im Bezug auf die SQL Relevanz analysiert, um eine durchgängige Abhängigkeitsanalyse durchführen zu können.

Layout- und Strukturierungsdaten verschiedener Programmierwerkzeuge werden ausgeblendet.

Steuerung des Software Entwicklungsprozesses: Damit die Inhalte des Applikation Repositorys immer dem aktuellen Stand der Applikation entsprechen, ist es notwendig, alle Änderungen an der Datenbank und den Source Codes mit SQL Relevanz in geordneter Form aus einer Entwicklungsumgebung in die Produktivumgebung zu überführen. Rahmenwerk für diese Änderungen ist der Entwicklungsauftrag.

Entwicklungsdokumentation: Durch den standardisierten Entwicklungsprozeß werden die Änderungen an der Datenbank und den Source Codes dokumentiert und stehen im Rahmen der Qualitätssicherung zur Verfügung.

Source Code Versionierung: Filesystem basierende Source Codes werden in der Datenbank gespeichert. Damit ist es möglich, alle Änderungen an einer Applikation auch wieder auf den Stand eines expliziten Entwicklungsauftrages zurückzufahren.

Realisierung

devcontrol kennt frei definierbare Objekte, deren Beschreibung durch Eigenschaften und deren Verknüpfung mit Relationen. Aus diesen Strukturelementen wird das Abhängigkeitsgerüst für die SQL relevanten Objekte einer Applikation definiert. Jedem Objekt kann ein Objekt-Parser und ein Objekt-Generator zugeordnet werden. Der Objekt-Parser ist für die Abbildung der SQL Relevanzen eines Schema Objektes oder eines Source Code Objektes zuständig. Beim Abschluß eines Entwicklungsauftrags erstellt der Parser die Abhängigkeiten in Form von Relationen. Die zugehörigen Source Codes werden in das Source Control System eingecheckt.

Der Objekt-Generator vergleicht die Änderung an den Metadaten des Applikation Repositorys mit dem Zustand der Produktivumgebung und erzeugt die für den Rollout eines Entwicklungsauftrags notwendigen Skripts. Objekt-Parser und Objekt-Generator sind über definierte Schnittstellen in C und PL/SQL angebunden.

Durch die freie Definition von Objekten und Relationen und die offenen Schnittstellen kann devcontrol auch als Konfigurierungswerkzeug oder Runtime Repository eingesetzt werden. Objekt-Parser und Objekt-Generator für Oracle® Datenbankobjekte sind fester Bestandteil von devcontrol. Als Objekt-Parser für Oracle® Forms Module ist jform integriert.

Einfaches Praxisbeispiel für eine Oracle® Forms basierende Applikation

Im einfachsten Fall sind 2 Objekte zur Abbildung der Datenbank und 2 Objekte für Oracle® Forms definiert. Für die Datenbank die Tabelle und die Spalte, für Forms die Maske und die Basistabelle. Um diese Metadaten Objekte zu verknüpfen werden noch die Relationen Tabelle hat Spalte, Basistabelle hat Tabelle und Maske hat Basistabelle benötigt. Der Objekt-Parser für die Tabelle erzeugt alle Objekte von Typ Spalte und alle Relationen Tabelle hat Spalte. Der Objekt-Parser für die Maske erzeugt alle Objekte von Typ Basistabelle und die Relationen Maske hat Basistabelle und Basistabelle hat Tabelle.  Im Metadaten Repository kann dann die Abhängigkeit  Spalte - Tabelle - Basistabelle - Maske durchlaufen werden. Der Objekt Generator für das Objekt Tabelle würde beim Rollout  ein Skript mit dem entsprechenden ‚alter table’  Statement erzeugen. In devcontrol ist die Veränderung der Metadaten Objekte durch den Entwicklungsauftrag sichtbar, das Objekt von Typ Form wird im Source Control System gespeichert.

Aktuelle Unterstützung von Datenbankobjekten

Tabelle, View, Sequence, Index, Constraint, Prozedur, Funktion, Package, User, Policy, Grant, Synonym, Trigger

Aktuelle Unterstützung von Oracle® Forms Modulen

Forms, PL/SQL Librarys, Menüs, Object Librarys, Reports

Aktuelle Unterstützung von Ascii Dateien als Quellcodes

*.c, *.pc, *.pas, *.sql, *.cv