Technlogie
Grundsätze
Der Name ADASYS (ADAptive SYSteme) sagt es bereits: Seit der Gründung haben wir uns dem Prinzip der Anpassbarkeit unserer Lösungen verschrieben. Anpassbarkeit an neue Anforderungen der Anwendungen und an neuen Hardware- und Softwarekomponenten soll aber nicht zum ständigen Umbruch der Software führen. Zuverlässige Software kann nicht auf Hektik basieren, sondern wird mit Nachhaltigkeit erreicht.
Die Hauptsubstanz unserer Software-Lösungen liegt darum in einer soliden Software-Basis. Darauf bauen die applikatorischen Elemente auf.
Diese Grundhaltung entspricht derjenigen der objektorientierten Programmierung. Die zu Frameworks vernetzten Basisklassen erbringen die wesentlichen Leistungen. Die konkreten Anliegen der Anwendungen oder der Anschluss an ein bestimmtes Gerät, Betriebssystem oder Datenbanksystem erfolgt in den Erweiterungen. Vielfach enthalten diese gar keinen eigentlichen Programmcode mehr, sondern liefern den Basisklassen nur noch die Parameter, die das konkrete Verhalten steuern. Solche Klassen können gar zur Laufzeit entstehen und eröffnen damit eine dynamische Anpassbarkeit der Programme.
Zentral ist dabei die Trennung von Daten und ihrer Bearbeitung, Auswertung und Darstellung. Nur wenn diese Aspekte durch orthogonale Konzepte abgedeckt werden, können sie unabhängig voneinander weiterentwickelt werden.
Vorgehensmodell
Unser Vorgehensmodell orientiert sich an diesen Grundsätzen. Bei allen Projekten ist es wichtig, dass die für die Problemstellung entscheidenden Grundstrukturen erkannt und dafür geeignete Abstraktionen gefunden werden. Dazu werden primär entsprechende Basisklassen und -Frameworks entwickelt. Daraus ergeben sich wesentliche Vorteile:
- Entwicklung der nötigen Konkretisierungen in modularen Schritten
- Kapselung der konkreten Funktionalität in Subklassen eröffnet Perspektiven für zukünftige Zusätze.
- Möglichkeit der Trennung von Implementation und Anwendung dank Basisklassen, deren Unterklassen sich aus beschreibenden Daten (Modelle, Konfigurationen, Metadaten) ergeben.
Eingesetzte Techniken
Für die Umsetzung dieser Grundsätze braucht es Techniken. Nach Möglichkeit setzen wir dabei Techniken ein, die dank ihrer Konzeption bereits einen wesentlichen Beitrag zur Erfüllung unserer Grundsätze leisten. In konkreten Situationen sind oft zwangsläufig andere Techniken gesetzt oder mit ebenfalls guten Gründen gewünscht, Die folgenden Bemerkungen sind darum nicht als Ausschluss der nicht erwähnten Techniken, sondern als Begründung, warum wir die erwähnten Techniken gut finden, aufzufassen.
Konzepterarbeitung
Im Bereich der Konzepterarbeitung orientieren wir uns an der Unified Modelling Language (UML). Sie dient primär der Verständigung unter den Informatikern. Vor allem im Bereich der Datenmodellierung ist sie aber einfach genug, damit sie auch im Dialog mit den Anwendungs-Fachleuten erfolgreich eingesetzt werden kann.
Programmierung
Zentrale Anliegen bei der Programmierung sind Konzeptnähe, Robustheit und Effizienz. Eigentlich überraschend: Es ist auch heute noch nicht einfach Programmiersprachen zu finden, die diese Anliegen gut unterstützen und eine genügende Verbreitung haben.
ADASYS hat sich darum für zwei Sprachen entschieden:
- JAVA
Diese objektorientierte Sprache erlaubt eine weitgehend konzeptnahe Implementierung und wird vor allem dort eingesetzt, wo die Software auch dezentral weiterentwickelt und gewartet werden soll und wo die Laufzeit-Effizienz keine zu hohen Anforderungen stellt. - MODULA2
Diese schöne, schlanke Sprache wird durch ADASYS seit langer Zeit eingesetzt. Insbesondere wurden das Produkt ADALIN und Fachanwendungsbasis Adabrix damit entwickelt. Der Mangel, dass die Sprache direkt keine objektorientierten Elemente enthält, wurde durch die Realisierung eines in MODULA2 geschriebenen Basispaketes kompensiert, das die Prinzipien der objektorientierten Programmierung in einem Mass unterstützt, das noch wesentlich über die Möglichkeiten von JAVA hinausgeht (z.B. dynamische Klassen, Übersteuerung von Klasseneigenschaften und nicht nur von Objekteigenschaften). Die Portierung des Codes auf eine konkrete Maschine erfolgt durch ein automatisiertes Verfahren über die Sprache C.
Graphische Darstellung
Ein zentrales Anliegen der ADASYS ist die klare Trennung von Daten und ihrer Darstellung. Ähnlich der Idee der Stile Sheets in HTML oder XML kann mittels Grafikabbildungen beschrieben werden, wie die Daten in Grafik umgesetzt werden. ADASYS hat dafür ein eigenes Grafikpaket erstellt, dass den Umsetzungsprozess auf X11 und HPGL und in Zukunft auch SVG effizient durchführt.
Datentransfer
ADASYS hat vor allem im Zusammenhang mit dem Produkt ADALIN Erfahrung im Umgang mit verschiedensten Datenformaten. Angesichts der laufenden Entwicklungen wurde in der letzten Zeit ein klares Schwergewicht auf XML gelegt. Mit diesem strukturierbaren Transfermechanismus können Daten verschiedenster Art kontrolliert zwischen Softwarepaketen ausgetauscht werden.
Konfigurierung
Bei anpassungfähiger Software ist die Konfigurierung ein zentrales Element. Bisher erfolgte diese weitgehend mittels Textdateien, die gemäss spezialisierten, selbstentwickelten Beschreibungssprachen aufgebaut sind. In Zukunft werden dafür eher Metamodelle (z.B. für die Datenmodelle und die Grafikbeschreibung) aufgebaut, die durch Standard (XML)- oder spezialisierte Editoren bearbeitet werden und deren Resultate dann mittels XML an die Anwendungskomponenten übergeben werden.
Datenbanken
Im Zusammenhang mit verschiedenen Projekten kamen vor allem die Produkte ORACLE, PostGIS und Access zum Einsatz.
Webtechnologie
Unsere eigenen Webseiten und unser Intranet basieren auf HTML4, PHP, cgi-Scripts. Ein wesentliches Zukunftselement bilden Serverlösungen im applikatorischen Bereich.