Q.monixx APP1: Architekturmuster für das test.con Anwendungsdesign

1 Einleitung

Um bei der Anwendungsentwicklung mit test.con ein möglichst transparentes und allgemeinverständliches Anwendungsdesign zu erhalten, wird die Anwendung eines universellen Architekturmusters vorgeschlagen. Bei diesem Architekturmuster werden implizit Ideen und Ansichten der Organisation http://www.arc42.de/ genutzt.

Den grundlegenden Einstieg in das Architekturmuster bieten die zentralen Architektursichten aus arc42. Neben arc42 fließen in die Architektur auch Ideen und Konzepte der serviceorientierten Architekturen (SOA) ein. Dabei wird die Geschäftslogik als Flow-Chart programmiert. Die Services werden vordergründig im CFC programmiert.

2 Architektursichten

Kontextdiagramm

Kontextabgrenzung → In welchem fachlichen und/oder technischen Umfeld arbeitet das System?

Bausteinsicht als Continuous Function Chart (CFC)

Diese Sicht stellt mehrere Aspekte einer Software dar.

  • Alle kontinuierlichen Prozesse der Software im klassischen Signalflussbild
  • Services im Sinne von SOA, welche durch andere Elemente in der Laufzeitsicht gesteuert werden (Aktivieren, Mode-Umschaltung,...).
  • Die statische Struktur des Systems, der Aufbau aus Implementierungsteilen

Laufzeitsicht als Flow Chart

Auch hier werden mehrere Aspekte der Software dargestellt

  • Implementierung der zeitlichen Abfolge der Geschäftslogik (Systemprozesse) der Software → diese Elemente steuern die Services in der CFC.
  • Implementierung von Funktionalitäten, welche deutlich zustandsorientierte und nur wenige kontinuierliche Aspekte beinhalten.
  • Implementierung der Abfolge von Seiten (Seitenfluss) in einer GUI.

Verteilungssicht

Diese Sicht zeigt an, auf welcher Hardware die Bausteine aufgerufen werden. Diese Sicht kommt bei komplexen Systemen zum Einsatz und hier insbesondere beim zentralen Systementwurf auf Basis von Simulationsmodellen.

3 Darstellung der Architektur am Beispiel der Q.monixx-APP1

Allgemeine Funktionsbeschreibung der Q.monixx-APP1

START-APP

Die universelle START-APP ist eine sehr spezielle test.con-Anwendung, da diese Software die Inhalte generisch aufbaut und in diesem Sinne nicht den normalen Konventionen der hier beschrieben Architektur entspricht. Aus diesem Grund wird dieser Teil der Anwendung in diesem Dokument nicht beschrieben.

Über die Kachel: "My Application" gelangt man wieder in die Demo-Anwendung MY_APP

MY_APP

MY_APP ist eine einfache Anwendung zur Anzeige der beiden Eingangskanäle AI1 und AI2, wobei AI1 als Widerstandskanal und AI2 als Temperaturkanal konfiguriert ist. Die Anwendung besitzt 4 Prozesszustände (Im Kontext von SOA- Geschäftsprozesse genannt). Die Anwendung erfüllt keinen realen Zweck. Mit der Anwendung soll lediglich das Prinzip von SOA und die Architekturdokumentation arc42 im Kontext von test.con beschrieben werden.

  1. Geschäftsprozess - SIMULATION In diesem Geschäftsprozess werden die Werte der zwei Eingangskanäle über Sinusfunktionen simuliert
  2. Geschäftsprozess - MEASUREMENT In diesem Geschäftsprozess werden die analogen Eingangswerte real erfasst und ungefiltert an die Anzeigen übergeben.
  3. Geschäftsprozess - FILTER In diesem Geschäftsprozess werden die analogen Eingangswerte real erfasst und gefiltert (Tiefpass) an die Anzeigen übergeben.
  4. Geschäftsprozess - DISCO In diesem Geschäftsprozess werden die Kacheln der Anzeige als Lauflicht gegen den Uhrzeigersinn sichtbar geschaltet.

4 Konfigurationsebene als Einstieg in die Architektursichten

In test.con dienen die Architektursichten nicht nur zur Dokumentation der Architektur, sondern sind integraler Bestandteil der ausführbaren Software. Der Einstieg in die drei wesentlichen Architektursichten: Kontextdiagramm, Bausteinsicht und Laufzeitsicht beginnt auf der obersten Ebene, der Konfigurationsebene. Auf der Konfigurationsebene werden normalerweise Programmbausteine platziert.

Die Bausteinsicht und die Laufzeitsichten repräsentieren ein grundlegend anderes Programmierparadigma. Da in test.con die Architektursichten unmittelbar in ausführbare Software münden, muss das System die Sichten auch in einem eigenständigen Kontext aufrufen. Eine solche Eigenständigkeit bieten die Programmbausteine und sind als Einstieg in die unterschiedlichen Architektursichten gut geeignet.

HINWEIS: Von der Applikation/dem Template gibt es eine aktuelle Version: V1.0.0.1. Diese Version kann über den Download-Bereich von testcon.info heruntergeladen werden.

200.CFC

Bausteinsicht CFC - Continuous Function Chart mit Kontextdiagramm auf der ersten Ebene

Kontextdiagramm (Kontextabgrenzung)

Im Demo-Projekt ist die Kontextbeschreibung sehr einfach. Es werden lediglich die beiden Stakeholder der Anwendung und die beiden konfigurierten Sensoren dargestellt. In einem realen Projekt wird hier die Verbindung zum technischen Prozess dokumentiert. (z.B. An welcher konkreten Position im Motor ist der Temperatursensor angeschlossen)

300.PCC

Laufzeitsicht 1 PCC - Prozess Control Chart: Zeitliche Abfolge der Softwareprozesse

Process Control Chart (PCC)

Hier wird der zeitliche Ablauf der Geschäftsprozesse als Flow Chart dokumentiert.

  1. Geschäftsprozess - SIMULATION
  2. Geschäftsprozess - MEASUREMENT
  3. Geschäftsprozess - FILTER
  4. Geschäftsprozess - DISCO

100.PFC

Laufzeitsicht 2 PFC - Page Flow Chart: Zeitliche Abfolge der GUI-Seitenaufrufe

Page Flow Chart (PFC)

Auf der obersten Ebene sehen wir die beiden Hauptseiten der Demo-Anwendung

  1. SERVICE-Seite mit der START-APP
  2. Eigene Anwendung MY_APP

5 Bausteinsicht/Service im CFC

Die Bausteinsicht zeigt die funktionalen Komponenten mit ihren Datenverbindungen. Diese Sicht kann auch als statische Sicht betrachtet werden, da aus der Darstellung zunächst nicht deutlich wird, wann welche Komponente aufgerufen wird. Im Kontext der Programmierung im CFC heißt dies konkret, dass immer alle Funktionen quasikontinuierlich aufgerufen werden. Bei der Programmierung wird die Reihenfolge der Bausteinverarbeitung manuell festgelegt. Dies ist erforderlich, da diese Architektur unmittelbar in ein ausführbares Programm transformiert werden soll.

Ebene 1

Verbindung der wesentlichen funktionalen Komponenten

  1. Werte erfassen
  2. Signalverarbeitung
  3. Aktualisierung der Anzeigen

A202.MATH

Funktionale Komponente: Signalverarbeitung

Im Kontext von SOA ist dies eine Sammlung von Services, welche über Geschäftsprozesse gesteuert werden. (aktivieren, deaktivieren,...)

Einbindung der einzelnen Funktionen (Services) in den Signalverlauf.

A200.GUI

Funktionale Komponente: Aktualisierung der Anzeigewerte in der GUI

Im Kontext von SOA ist auch die Aktualisierung von GUI-Anzeigen ein Service, welcher über Geschäftsprozesse gesteuert wird (aktivieren, deaktivieren,...). Weiterhin kann auch die Steuerung von Anzeigen ein Service sein (siehe DISCO-Service).

Einbindung der einzelnen Anzeigen (Services) in den Signalverlauf.

6 Laufzeitsichten

In vielen Anwendung werden der Seitenfluss der GUI und die zeitliche Abfolge der Geschäftsprozesse in getrennten Flow Charts gezeichnet, da die Zustände der beiden Flow Charts nicht immer identisch sind. Es gibt aber auch Anwendungen bei denen PCC und PFC in einem PFC zusammenfließen und die PCC entfällt.

Process Controll Chart (PCC)

Im Kontext von SOA wird hier der zeitliche Ablauf der Geschäftsprozesse definiert.

A300.SIMUL

Der Geschäftsprozessbaustein ist als Flow Chart Baustein konzipiert. Dieser Baustein enthält im Allgemeinen nicht die eigentlichen Funktionen, sondern steuert die Funktionen über Variablen.

A300.SIMUL-Diagramm

Alle Geschäftsprozesse sind weitgehend identisch aufgebaut.

  1. Eintritt in den Prozess (INIT)  → wird einmalig beim Eintritt aufgerufen
  2. Laufzeit des Prozesses (RUN) → wird in der Zykluszeit des Programmbausteins aufgerufen

A300_INIT

Eintritt in den Geschäftsprozess

  1. Die Variable SC-A202.SIMULATION wird auf 1 gesetzt = Service SIMULATION soll aktiviert werden.
  2. Die Variable SC-A202.SCALE RESET wird getoggelt = Die Services für die Aktualisierung der Chartdarstellung sollen für die automatische Y-Skalenberechnung ein Reset durchführen
  3. Die Textanzeige für die Aktivierung des Prozesses SIMULATION soll auf orange geschaltet werden.

A300_RUN

Eine RUN Funktion mit einfacher Navigation zu anderen Zuständen. Als Beispiel für komplexerer RUN Funktionen siehe 101_RUN.

A300_RUN_F

In RUN_F wird lediglich die Variable für den Button "Next Mode" abgefragt und auf die Ausgänge esc = Prozess verlassen und next = nächster Prozess gelegt.

In komplexeren Prozessen werden an dieser Stelle alle Bedingungen zum Verlassen des Prozesses programmiert. Der Ausgang esc muss bei jeder Bedingung zum Verlassen auf HIGH gelegt werden. Über die Ausgänge für die jeweilige Bedingung kann dann der nächste Prozessschritt festgelegt werden.

A300_DEINIT

In DEINIT wird beim Verlassen des Prozesses aufgerufen. Hier wird lediglich der Service "SIMULATION" über die Variable ausgeschaltet und die Anzeige für den aktiven Prozesszustand wieder auf grau gesetzt.

Alle anderen Geschäftsprozesse sind identisch aufgebaut.

Page Flow Chart (PFC)

Der Page Flow Chart ist eine spezielle Laufzeitsicht, in der eigentlich nur die zeitliche Abfolge der Seitenaufrufe dargestellt ist. In einigen Anwendungen ist der Zusammenhang zwischen Page Flow und Geschäftsprozessen aber so eng, dass die Geschäftsprozesse über den Seitenfluss abgebildet werden.

100.PFC

Seitenfluss zwischen den beiden APPs

A100.MY_1_PAGE

Hauptseite von MY_APP

A100.MY_1_PAGE - Diagramm

Da MY_APP nur eine Seite hat, beginnt bereits auf der 1. Ebene der Page Control Chart
mit INIT und RUN-Bausteinen (siehe auf PCC)

  1. Eintritt in den Prozess (INIT)  → wird einmalig beim Eintritt aufgerufen
  2. Laufzeit des Prozesses (RUN) → wird in der Zykluszeit des Programmbausteins aufgerufen

A100_INIT

In diesem Baustein werden folgende Funktion realisiert.

  1. Maske (Page) sichtbar schalten.
  2. Infotext in der Navigationsleiste setzen
  3. Return-Button in der Navigation sichtbar schalten

A100_RUN

RUN Funktion mit einfacher Navigation zu anderen Seiten (Zur START_APP).
Als Beispiel für komplexere RUN Funktionen siehe 101_RUN.

100.START_APP

Hauptseite der START_APP

100.START_APP Diagramm

Die START_APP hat mehrere Seiten, sodass hier auf der ersten Ebene ein weiterer Page Flow Chart erscheint.

101.P.SYS_OVV

Hauptseite mit System-Overview und Navigation zu den Unterseiten durch Klick auf die Kachel.

101.P.SYS_OVV-Diagramm

Page Control Chart mit INIT und RUN

101_RUN

Hier ist eine komplexe Navigation zu anderen Seiten zu sehen.

7 Service orientierte Architektur SOA

Bei der SOA, im Kontext von test.con, werden die Geschäftsprozesse in Flow Chart programmiert und die Services werden im CFC programmiert. Die Geschäftsprozesse steuern über Variablen den Status der Services.

Hintergrund für dieses Vorgehen

Services

In der Messtechnik ist die Funktion (Service) meist im Kontext des Signalflusses zu sehen. Zudem sollte in der Architektur bzw. im Design die prinzipiellen Fähigkeiten des Systems nicht an zeitlichen Abläufen gekoppelt sein.

Geschäftsprozesse

Der Geschäftsprozess wiederum ist eng an zeitliche Abläufe und Sequenzen von Prozessen gekoppelt. Hier spielen die konkreten Signalverläufe kaum eine Rolle. Es ist in diesem Kontext nur wichtig, welche Prozessübergänge es gibt und in welchem Prozessschritt sich das System gerade befindet. Details über die eigentliche Funktionalität sind bei dieser Betrachtung untergeordnet.