{"id":55000296,"date":"2005-10-01T00:00:00","date_gmt":"2020-05-06T15:18:05","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=296"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"SoftwareArchitektur_mit_Access","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/SoftwareArchitektur_mit_Access\/","title":{"rendered":"Software-Architektur mit Access"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg01.met.vgwort.de\/na\/b2a732f25a7a44788db7d6a925e9f68a\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<h3>Zusammenfassung<\/h3>\n<p>Erfahren Sie, was Software-Architektur ist und wie Sie es f&uuml;r Ihre Zwecke einsetzen k&ouml;nnen.<\/p>\n<h3><\/h3>\n<p><b>Andr&eacute; Minhorst, Duisburg<\/b><\/p>\n<p><b>Wer hin und wieder eine Access-Anwendung f&uuml;r den Eigengebrauch aus dem Handgelenk sch&uuml;ttelt, ohne sich vorher Gedanken um ihre Aufbau zu machen, erleidet dadurch sicher keinen Schiffbruch. Wenn Sie aber gr&ouml;&szlig;ere Projekte angehen und dies vielleicht auch noch im Kundenauftrag, erleichtert eine vern&uuml;nftige Planung Ihnen und dem Kunden das Leben.<\/b><\/p>\n<p>Helmut Balzert definiert Software-Architektur in seinem &#8222;Lehrbuch der Software-Technik&#8220; (ISBN 3-8274-0301-4) folgenderma&szlig;en:<\/p>\n<p>&#8222;Eine Software-Architektur ist eine strukturierte oder hierarchische Anordnung der Systemkomponenten sowie Beschreibung ihrer Komponenten.&#8220;<\/p>\n<p>Diese Definition ist nicht die einzige. Allerdings gibt es nicht &#8222;die&#8220; Definition der Software-Architektur. Sie bietet allerdings einen guten Einstieg: Software-Architektur beschreibt die Komponenten der Software und ihre Anordnung, wozu auch die Beschreibung der Beziehung der einzelnen Komponenten geh&ouml;rt. Daraus ergibt sich zwangsl&auml;ufig die Frage, was man unter einer Komponente versteht &#8211; und ab hier ist Software-Architektur Auslegungssache &#8230; Der Hintergrund ist, dass man mit der Beantwortung der Frage nach dem Aussehen einer Komponente festlegt, wie hoch der Detaillierungsgrad bei der Beschreibung der Architektur einer Software ist. Gel&auml;ufig sind wohl grobe Beschreibungen wie &#8222;Client-Server-Architektur&#8220; oder &#8222;Three-Tier-Architektur&#8220; &#8211; etwas feiner darf es dann aber doch sein.<\/p>\n<p>Bevor Sie im n&auml;chsten Kapitel ein Beispiel f&uuml;r die Entwicklung einer Architektur f&uuml;r eine Software kennen lernen, sollen Sie etwas mehr &uuml;ber den Sinn einer solchen Architektur erfahren.<\/p>\n<h2>Dokumentation\/Kommunikation<\/h2>\n<p>Die Erstellung einer Architektur einer Software ist immer mit dem Verfassen einer schriftlichen oder grafischen Dokumentation verkn&uuml;pft. Das bedeutet, dass die Zusammenh&auml;nge entweder in Form von UML- oder UML-&auml;hnlichen Diagrammen, als Text oder als Kombination von beiden festgehalten werden. Daraus ergeben sich folgende Vorteile:<\/p>\n<li>Neue Mitarbeiter im Projektteam k&ouml;nnen sich schnell einen &uuml;berblick &uuml;ber den Aufbau des Projekts verschaffen; der Aufwand f&uuml;r ihre Einarbeitung und Integration in das Team verringert sich.<\/li>\n<li>Wenn das Projekt nach Fertigstellung erweitert oder ge&auml;ndert werden soll, kann man sich schnell wieder einarbeiten.<\/li>\n<li>Die Dokumentation kann auch zur Kommunikation mit dem Kunden beziehungsweise als Bestandteil von Dokumenten wie dem Pflichtenheft verwendet werden.<\/li>\n<li>Auch Ein-Mann-Entwicklerteams beziehungsweise Selbstst&auml;ndige profitieren sicher von einer umfangreichen Dokumentation der Anwendung &#8211; das ist sp&auml;testens der Fall, wenn nach einer gewissen Zeit &auml;nderungsw&uuml;nsche auftauchen und man sich schnell ins Thema einarbeiten m&ouml;chte. <\/li>\n<p>Um von den Vorteilen profitieren zu k&ouml;nnen, muss die Dokumentation der Architektur nach der Erstellung gepflegt und eventuellen &auml;nderungen angepasst werden.<\/p>\n<p>Au&szlig;erdem sollte die f&uuml;r die Dokumentation gew&auml;hlte &#8222;Sprache&#8220; m&ouml;glichst standardisiert sein &#8211; UML ist derzeit die beste Wahl f&uuml;r diesen Zweck.<\/p>\n<h2>Organisation\/Arbeitsteilung<\/h2>\n<p>Access-Anwendungen entstehen meist durch die Arbeit von Ein-Mann-Entwicklerteams. Dennoch ist als Vorteil der Vorab-Festlegung der Software-Architektur anzuf&uuml;hren, dass durch die feste Definition einzelner Komponenten eines Systems und ihrer Schnittstellen eine wesentlich h&ouml;here Flexibilit&auml;t bei der Entwicklung der Software entsteht.<\/p>\n<p>Vermutlich haben Sie auch schon einmal das Problem gehabt, dass Sie bei der Entwicklung an einer Stelle h&auml;ngen bleiben und ohne die L&ouml;sung des aktuellen Problems auch nicht an einer anderen Stelle weitermachen k&ouml;nnen.<\/p>\n<p>Das ist ein Indiz daf&uuml;r, dass die Software ein wenig modularer aufgebaut werden sollte.<\/p>\n<p>Es ist klar, dass bei einer Access-Anwendung mit wenigen Formularen, die s&auml;mtliche Gesch&auml;ftslogik enthalten und auch noch direkt an die zugrunde liegenden Tabellen &#8211; also die Datenschicht &#8211; gebunden sind, ein einziges Problem zum Stillstand des Entwicklungsprozesses f&uuml;hren kann &#8211; vor allem, wenn die Formulare auch noch stark voneinander abh&auml;ngig sind.<\/p>\n<p>Diese &#8222;Formular-Monolithen&#8220; lassen sich allerdings leicht entwirren &#8211; das muss noch nicht einmal in einem so radikalen Schritt wie der Verwendung einer mehrschichtigen Architektur erfolgen. Wenn man aber wiederverwendbare Funktionalit&auml;t in eigene Module (vielleicht sogar in ein Klassenmodul mit zusammenh&auml;ngenden Methoden und Eigenschaften) auslagert und daf&uuml;r sorgt, dass zwischen Formularen, die einander aufrufen, m&ouml;glichst wenig Abh&auml;ngigkeiten bestehen, erreicht man schon eine ganze Menge mehr Flexibilit&auml;t.<\/p>\n<p>Dies bezieht sich auch auf &#8222;&uuml;berladene&#8220; Formulare &#8211; Sie m&uuml;ssen ja nicht das komplette Datenmodell in einem Formular abbilden. Wenn Sie etwa Kunden und Projekte verwalten m&ouml;chten, m&uuml;ssen nicht die kompletten Kundendaten im Projekte-Formular enthalten sein &#8211; hier tut es durchaus ein Kunden-Detailformular, das sich vom Projekt-Formular aus per Mausklick &ouml;ffnen l&auml;sst. Nebenher erhalten Sie direkt ein separates Kunden-Formular zur Verwaltung der Kunden.<\/p>\n<p>Wenn Sie den Funktionsumfang beziehungsweise bei Formularen die anzuzeigenden Daten auf ein Mindestma&szlig; reduzieren, k&ouml;nnen Sie nur gewinnen &#8211; viele kleine und &uuml;berschaubare Komponenten sind allemal besser zu handhaben als gro&szlig;e Komponenten, die viele Aufgaben gleichzeitig erledigen. Auf diese Weise k&ouml;nnen Sie sich beim Auftreten eines Problems locker einer anderen Komponente zuwenden, die sich leichter abarbeiten l&auml;sst &#8211; und das oben erw&auml;hnte, hartn&auml;ckige Problem am n&auml;chsten Tag in neuer Frische angehen.<\/p>\n<p>Wenn Sie im Team t&auml;tig sind, ist der Aufbau einer Architektur mit mehreren Komponenten und sauberen Schnittstellen quasi Voraussetzung f&uuml;r effektives Arbeiten &#8211; auf diese Weise k&ouml;nnen sich mehrere Mitarbeiter gleichzeitig auf verschiedene Stellen der Software konzentrieren und anschlie&szlig;end die Ergebnisse ihrer Arbeit zusammenf&uuml;gen.<\/p>\n<h2>Wiederverwendbarkeit<\/h2>\n<p>Durch die Unterteilung der Software in Komponenten wandelt man gr&ouml;&szlig;ere Elemente in kleine, leicht verdauliche H&auml;ppchen um. Die Wahrscheinlichkeit, dass Sie ein solches H&auml;ppchen an irgendeiner Stelle wieder verwenden k&ouml;nnen, ist nat&uuml;rlich wesentlich h&ouml;her als f&uuml;r gr&ouml;&szlig;ere Brocken. Unter Umst&auml;nden setzen Sie gar mehrere zusammenh&auml;ngende Komponenten in weiteren Anwendungen ein &#8211; so l&auml;sst sich hier und da sicher einiges an Entwicklungszeit gewinnen.<\/p>\n<p>Noch wichtiger sind die Auswirkungen auf das aktuelle Projekt: Es gibt immer Funktionen, die in mehreren Modulen verwendet werden. Wenn Sie dies fr&uuml;hzeitig erkennen, k&ouml;nnen Sie ganze Funktionsbl&ouml;cke in eigene Komponenten auslagern und parametrisieren und brauchen diese nur einmal zu erstellen.<\/p>\n<h2>Wartung<\/h2>\n<p>Je l&auml;nger die Fertigstellung eines Projekts zur&uuml;ckliegt, desto gr&ouml;&szlig;er ist der Zeitaufwand zum Finden und Beheben von Fehlern oder f&uuml;r die Erweiterung der Funktionalit&auml;t der Software.<\/p>\n<p>Eine ausreichende Kommentierung des Quellcodes mag noch ein wenig Zeit herausschlagen, aber eine Aufteilung der Funktionalit&auml;t in sinnvolle Bl&ouml;cke und eine Dokumentation der Architektur gew&auml;hrleistet eine wesentlich schnellere Identifizierung der fehlerhaften Stelle und deren Beseitigung.<\/p>\n<p>Auch an eine f&uuml;r die meisten Entwickler unbeliebtere Aufgabe, n&auml;mlich das Beheben von Fehlern oder das Weiterentwickeln von Software, die man nicht selbst &#8222;verbrochen&#8220; hat, kann man etwas lockerer herangehen, wenn die Software in sinnvolle Komponenten mit wohl definierten Schnittstellen unterteilt ist. Je kleiner die H&auml;ppchen, desto geringer werden die Auswirkungen des individuellen Stils eines Entwicklers.<\/p>\n<h2>Planung und Kosten<\/h2>\n<p>Viele Softwareprojekte scheitern daran, dass die Zeit- und Kostenplanung nicht stimmt. Durch die Aufteilung der Software in kleinere Elemente bereits bei der Planung l&auml;sst sich leichter ermitteln, wie viel Zeit und damit Geld die Entwicklung einer Anwendung beanspruchen wird. Wenn Sie ein Projekt A abgewickelt haben, werden Sie nur schwer davon ableiten k&ouml;nnen, wie lange Sie f&uuml;r Projekt B ben&ouml;tigen werden. Wenn Sie aber den Aufwand f&uuml;r die in Projekt A verwendeten Komponenten kennen, l&auml;sst sich bei vorhandener Architektur von Projekt B schon eine wesentlich bessere Sch&auml;tzung des Aufwands vornehmen.<\/p>\n<p>Mit den ganzen Vorteilen der Software-Architektur im Kopf werden Sie nun vermutlich wissen wollen, wie eine solche Architektur in der Praxis aussieht.<\/p>\n<p>Die Entstehung der Architektur und das fertige Aussehen werden im Folgenden am Beispiel einer Anwendung beschrieben, die Sie ebenfalls in dieser Ausgabe von Access im Unternehmen als Musterl&ouml;sung finden. Mit der Programmierung und weiteren Details dieser L&ouml;sung besch&auml;ftigt sich der Beitrag namens Projektzeitmanager.<\/p>\n<h2>Projektzeiten managen<\/h2>\n<p>Der Projektzeitmanager dient dem Aufzeichnen von Zeiten, die Mitarbeiter mit Projekten verbringen, und ihrer Auswertung. Im Vordergrund steht jedoch die M&ouml;glichkeit f&uuml;r die Mitarbeiter, dem System m&ouml;glichst einfach mitzuteilen, womit sie gerade besch&auml;ftigt sind.<\/p>\n<p>Dabei lassen sich nat&uuml;rlich nicht alle Zeiten Projekten zuordnen, da zwischendurch noch allgemeine T&auml;tigkeiten wie Besprechungen, Wartungsarbeiten am eigenen Rechner, Pausen und sonstige Nicht-Projektzeiten anfallen.<\/p>\n<p><!--30percent--><\/p>\n<p>Zur Erfassung der Zeiten soll der Mitarbeiter dem System jeweils beim T&auml;tigkeitswechsel mitteilen, welche T&auml;tigkeiten er in Zusammenhang mit dem vorherigen Projekt ausgef&uuml;hrt hat und angeben, welchem Projekt er sich im Anschluss an diese T&auml;tigkeit zuwendet.<\/p>\n<h3>Projektzeiten auswerten<\/h3>\n<p>Der tiefere Sinn dieser Anwendung ist nat&uuml;rlich die Auswertung der einzelnen Zeiten, die die Mitarbeiter insgesamt f&uuml;r die unterschiedlichen Projekte ben&ouml;tigt haben. Die Werkzeuge zur Auswertung sollen nur Mitarbeiter mit den entsprechenden Berechtigungen benutzen k&ouml;nnen.<\/p>\n<h2>Einzel- oder Mehrbenutzeranwendung<\/h2>\n<p>Wenn ein Selbstst&auml;ndiger die Anwendung benutzt, k&ouml;nnen Frontend und Backend auf dem lokalen Rechner liegen, sobald aber mehrere Mitarbeiter Daten eingeben sollen, ist ein gemeinsames Backend zum Speichern der Daten mit je einem Frontend pro Mitarbeiter gefragt.<\/p>\n<p>Zus&auml;tzlich ben&ouml;tigen Sie noch ein weiteres Frontend mit den Funktionen zur Auswertung der Projektzeiten.<\/p>\n<h2>Backend-Datenbank<\/h2>\n<p>Die Backend-Seite des Projektzeitmanagers enth&auml;lt die Tabellen mit den Projekten, den Mitarbeitern, den Projektzeiten und weiteren Informationen (f&uuml;r weitere Informationen siehe Beitrag Projektzeitmanager an anderer Stelle in dieser Ausgabe).<\/p>\n<h2>Administrationsfrontend<\/h2>\n<p>Das zweite Frontend der Anwendung dient dem Verwalten der Projekte, Mitarbeiter und Projektzeiten. Es soll im weiteren Verlauf allerdings nicht weiter beschrieben werden.<\/p>\n<h2>Mitarbeiterfrontend<\/h2>\n<p>Das Mitarbeiterfrontend soll m&ouml;glichst schlank sein und einfache T&auml;tigkeiten f&uuml;r verschiedene Projekte und die entsprechenden Zeiten und Beschreibungen erlauben. Eine genaue Darstellung der Zusammenh&auml;nge folgt weiter unten in Kapitel 6.<\/p>\n<p>Damit sind die Informationen f&uuml;r den ersten Grobentwurf bereits zusammengestellt. Bild 1 zeigt, wie die Anwendung derzeit aufgebaut ist. Die Daten liegen in dem Backend, auf das alle Benutzer mit dem entsprechenden Frontend zugreifen k&ouml;nnen &#8211; die Mitarbeiter mit dem Mitarbeiter-Frontend und der Administrator mit dem Administrationsfrontend.<\/p>\n<p><IMG height=\"0\" src=\"..\/fileadmin\/_temp_\/{7DD77ADF-9961-4A03-82A7-4094AEAF3533}\/pic001.png\" width=\"0\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 1:  Grobarchitektur der Anwendung<\/span><\/b><\/p>\n<p>Die Einzelplatzvariante f&uuml;r den Selbstst&auml;ndigen, der seine Projekte komplett selbst verwaltet, k&ouml;nnte alle Komponenten in einer Datenbank enthalten &#8211; hier sieht die grobe Architektur noch wesentlich einfacher aus.<\/p>\n<p>Nachdem der grobe Aufbau gekl&auml;rt ist, sollten Sie sich Gedanken um die zu verwendenden Programmiersprachen beziehungsweise Anwendungen machen: Welches Datenbankbackend kommt zum Einsatz und welche Software oder Programmiersprache wird bei der Erstellung des\/der Frontends eingesetzt<\/p>\n<p>In allen F&auml;llen kommen sowohl finanzielle als auch technische Aspekte zum Tragen. Im vorliegenden Beispiel gibt es wohl keine gro&szlig;artigen Anforderungen an die Performance &#8211; die Mitarbeiter werden wohl kaum &ouml;fter als alle halbe Stunde das Projekt wechseln. Eine Access-Datenbank sollte als Backend also durchaus ausreichend sein. Wenn nat&uuml;rlich ein SQL Server vorhanden ist, kann man die Datenbank auch dort mit unterbringen. Die Anschaffung lohnt sich f&uuml;r diese Anwendung allerdings nicht.<\/p>\n<p>Bei den Frontends muss man differenzieren: Das Frontend f&uuml;r den Administrator (oder auch zwei oder drei) wird vermutlich wesentlich aufw&auml;ndiger sein als das Benutzerfrontend. Vermutlich werden immer neue Abfragen und Berichte damit erstellt werden, sodass Access eine gute L&ouml;sung zu sein scheint &#8211; Abfragen und Berichte lassen sich auch von Nicht-Entwicklern im gewissen Rahmen leicht erstellen.<\/p>\n<p>Beim Benutzerfrontend kommt es wiederum auf die Anzahl der Benutzer und die vorhandene Software an. Ist Access ohnehin auf jedem Rechner installiert, kann es leicht verwendet werden, falls nicht, kommt eine Access-Runtime in Frage.<\/p>\n<p>Ist beides nicht vorhanden, k&ouml;nnte man dieses Frontend gegebenenfalls auch mit einer .NET-Programmiersprache erstellen &#8211; der Vorteil w&auml;re, dass auf den Zielrechnern lediglich das .NET-Framework installiert sein muss, was kostenlos ist.<\/p>\n<p>Eine andere Alternative ist ein Webfrontend &#8211; dieses k&ouml;nnte je nach verwendetem Server in ASP oder ASP.NET oder auch in PHP oder Java programmiert werden.<\/p>\n<p>Da die Beispielanwendung f&uuml;r den Benutzer immer leicht erreichbar sein sollte, sind alle browserbasierten L&ouml;sungen eher ung&uuml;nstig &#8211; einen Browser schlie&szlig;t man schnell und dann gilt: Aus den Augen, aus dem Sinn.<\/p>\n<p>Optimal w&auml;re eine Variante, die immer per Mausklick verf&uuml;gbar ist &#8211; etwa eine Anwendung, die man schnell im Systray verschwinden lassen kann, wenn man sie gerade nicht ben&ouml;tigt. Von dort l&auml;sst diese sich leicht wieder aufrufen. Auf diese Weise bleibt die Anwendung aktiv und kann beispielsweise alle halbe Stunde das Symbol im Systray aufblinken lassen, um den Benutzer auf sich aufmerksam zu machen.<\/p>\n<p>Ein wichtiger Bestandteil der Architektur ist das Datenmodell. Ist dieses nicht vern&uuml;nftig aufgebaut, droht langfristiges Ungemach: Abfragen, Formulare, Berichte und auch die Routinen in VBA-Modulen greifen auf die Daten zu und m&uuml;ssen bei &auml;nderungen im Datenmodell gegebenenfalls auch angepasst werden.<\/p>\n<p>Das Datenmodell sollte daher unbedingt vor der Erstellung einer Anwendung notiert und auch mit dem Auftraggeber analysiert werden &#8211; in vielen F&auml;llen resultieren falsche Datenmodelle aus Missverst&auml;ndnissen bei der Aufnahme der Anforderungen.<\/p>\n<p>Wenn die grobe Struktur und das Datenmodell einer Anwendung stehen, beginnt man &uuml;blicherweise mit der Erstellung der Benutzeroberfl&auml;che. Diese besteht im Wesentlichen aus den Formularen &#8211; zwar gibt es auch noch Berichte f&uuml;r die Ausgabe von Daten und Men&uuml;s, um die verschiedenen Funktionen aufzurufen, den Gro&szlig;teil der Zeit d&uuml;rfte der Benutzer allerdings mit den Formularen verbringen.<\/p>\n<p>Viele Datenbanken werden so entwickelt, dass Entwickler und Auftraggeber abstimmen, welche Daten in der Datenbank verwaltet werden sollen und wie die Benutzeroberfl&auml;che daf&uuml;r gestaltet sein muss. Die Datenbank wird dann entwickelt und in Betrieb genommen und landet kurze Zeit sp&auml;ter im Papierkorb.<\/p>\n<p>Der Grund ist, dass die sp&auml;teren Benutzer der Anwendung nicht in die Planung eingebunden wurden. Was das mit der Architektur der Anwendung zu tun hat Ganz einfach: Sie sollte neben den Entscheidungen &uuml;ber den Entwurf der Datenbank auch Informationen &uuml;ber die Gr&uuml;nde f&uuml;r die jeweilige Gestaltung enthalten &#8211; und hier kommen die zuk&uuml;nftigen Benutzer ins Spiel.<\/p>\n<p>Meist ist es so, dass der Wunsch nach der Entwicklung einer Anwendung nicht aus heiterem Himmel kommt &#8211; ganz im Gegenteil: <\/p>\n<p>Meist gibt es schon eine Anwendung, die entweder veraltet ist, ein Produkt eines ehemaligen Mitarbeiters, der nicht mehr greifbar ist, oder auch eine provisorische Verarbeitung von Daten, die so nicht mehr funktioniert.<\/p>\n<p>Das bedeutet, dass bereits Erfahrungen im Umgang mit den zu verwaltenden Daten vorliegen, und die sollte man zugunsten einer hohen Akzeptanz der Anwendung stark in die Planung einbeziehen. Die bestehenden Erfahrungen auf der einen und die technischen Kenntnisse des Architekten oder Entwicklers sollten zusammengefasst ein sinnvolles Ergebnis bringen, das sowohl die Anwenderw&uuml;nsche als auch den aktuellen Stand der Technik ber&uuml;cksichtigt.<\/p>\n<h3>&uuml;berblick per Diagramm<\/h3>\n<p>F&uuml;r die Architektur bedeutet dies, dass man auf die Erfahrungen der Mitarbeiter zur&uuml;ckgreift und die bisherigen Abl&auml;ufe erfasst, analysiert, optimiert und die resultierenden Vorg&auml;nge in entsprechender Form aufzeichnet &#8211; etwa unter Verwendung der UML. Die UML bietet einige f&uuml;r solche Anforderungen geeignete Diagrammtypen. In Anwendungsfalldiagrammen (auch Use Case-Diagrammen) fasst man die Anwendungsf&auml;lle und die beteiligten Mitarbeiter zusammen und erh&auml;lt so einen groben &uuml;berblick &uuml;ber die anstehenden Aufgaben.<\/p>\n<p>Was in einzelnen Anwendungsf&auml;llen geschieht, legt man mit einem weiteren Diagrammtyp fest: einem Aktivit&auml;tsdiagramm. Dieser Diagrammtyp dient der Beschreibung von Gesch&auml;ftsprozessen und Workflows. Damit k&ouml;nnen Sie sehr genau festlegen, welche Wege ein Mitarbeiter gehen muss, um unter Zuhilfenahme der geplanten Anwendung ein bestimmtes Ziel zu erreichen.<\/p>\n<p>F&uuml;r die zeitlichen Abl&auml;ufe hingegen verwenden Sie Sequenzdiagramme.<\/p>\n<h3>Kombiniere, kombiniere<\/h3>\n<p>Wenn Sie die Anforderungen der Mitarbeiter aufgenommen haben, m&uuml;ssen Sie diese in einen konkreten Plan umsetzen.<\/p>\n<p>Welche Daten m&uuml;ssen &uuml;berhaupt bearbeitet werden Wie teile ich diese auf Formulare auf, um den aus bestehenden Workflows und Verbesserungsw&uuml;nschen resultierenden Anforderungen gerecht zu werden Wann wird welches Formular ge&ouml;ffnet und wie arbeiten die Formulare zusammen<\/p>\n<p>Die Antworten auf diese Fragen ergeben sich meist aus dem Datenmodell und den Anforderungen der Mitarbeiter an die Anwendung. Letztere liefern dabei allerdings wesentlich mehr Informationen f&uuml;r die Umsetzung. Angenommen die Mitarbeiter haben die T&auml;tigkeiten inklusive Beschreibung und Zeiten in einer Excel-Tabelle gepflegt. Der &uuml;bliche Vorgang d&uuml;rfte dabei folgenderma&szlig;en ausgesehen haben: Wenn ein Mitarbeiter eine T&auml;tigkeit f&uuml;r ein Projekt beginnt, tr&auml;gt er eine neue Zeile in ein Excel-Sheet ein, die Informationen &uuml;ber das zu bearbeitende Projekt, den Mitarbeiternamen sowie die Startzeit mit Datum und Uhrzeit enth&auml;lt. Das ist allerdings auch nur der Fall, wenn er beim Start der neuen T&auml;tigkeit daran denkt, diesen Eintrag vorzunehmen.<\/p>\n<p>Wenn er die T&auml;tigkeit beendet hat, tr&auml;gt er genauere Informationen &uuml;ber die T&auml;tigkeit ein &#8211; etwa die Art der T&auml;tigkeit und eine stichwortartige Beschreibung oder andere wichtige Informationen und nat&uuml;rlich die Uhrzeit. M&ouml;glicherweise wurden auch gar nicht die Start- und die Endzeit eingetragen, sondern nur das Datum und eine ungef&auml;hre Angabe der ben&ouml;tigte Zeit &#8211; etwa &#8222;22.8.2005 0,5h&#8220;. In dem Fall hat der Mitarbeiter zu Beginn der T&auml;tigkeit gar keinen Eintrag vorgenommen, sondern einfach am Ende des Tages in die Excel-Tabelle geschrieben, was ihm an T&auml;tigkeiten noch so eingefallen ist.<\/p>\n<p>Leicht zu erkennen, dass hier eine Menge Optimierungspotenzial steckt: Das reicht von der schnelleren Eingabe &uuml;ber genauere Daten bis hin zur einfacheren Auswertung der erfassten Daten, denn die liegen bei direkter Anbindung an eine Datenbankanwendung nun einmal direkt in einer Tabelle vor und nicht in je einem Excel-Sheet pro Mitarbeiter.<\/p>\n<h3>Eingabe von Projektzeiten<\/h3>\n<p>Die Eingabe von Projektzeiten soll m&ouml;glichst einfach erfolgen. Um dies zu realisieren, werden folgende Punkte ber&uuml;cksichtigt:<\/p>\n<li>Der Mitarbeiter soll nicht mit dem kompletten Access-Fenster mit allem Drum und Dran erschlagen werden, sondern nur das f&uuml;r die Eingabe der Projektzeiten notwendige Fenster sehen.<\/li>\n<li>Das Eingabefenster soll einfach &uuml;ber ein Icon im Systray gestartet werden k&ouml;nnen.<\/li>\n<li>Das Eingabefenster soll f&uuml;r alle aktuellen Projekte eine Schaltfl&auml;che oder ein schaltfl&auml;chen&auml;hnliches Steuerelement enthalten, mit dem der Mitarbeiter das folgende zu bearbeitende Projekt ausw&auml;hlen kann.<\/li>\n<li>Vor dem Aktivieren der neuen Projektzeit soll der Mitarbeiter die vorherige Phase abschlie&szlig;en, indem er in einem Popup-Fenster die durchgef&uuml;hrten T&auml;tigkeiten eintr&auml;gt.<\/li>\n<li>Nach dem Ausw&auml;hlen des neuen Projekts und dem Eintragen der T&auml;tigkeit l&auml;sst sich das Fenster leicht wieder minimieren\/schlie&szlig;en.<\/li>\n<li>Jeder Mitarbeiter kann nur Projektzeiten f&uuml;r die Projekte eintragen, an denen er auch beteiligt ist. Diese Vorauswahl soll im Administrationsfrontend vorgenommen werden.<\/li>\n<li>Die Mitarbeiter k&ouml;nnen die Reihenfolge der Anzeige ihrer Projekte individuell festlegen und gegebenenfalls Projekte ein- und ausblenden.<\/li>\n<h3>Projekt oder nicht Projekt<\/h3>\n<p>F&uuml;r eine konsistente Auswertung sollte der Mitarbeiter sich jederzeit mit irgendeinem Projekt besch&auml;ftigen &#8211; au&szlig;er nat&uuml;rlich, er macht Pause oder hat Feierabend. W&auml;hrend normalerweise eine T&auml;tigkeit beendet wird, wenn eine andere T&auml;tigkeit f&uuml;r ein weiteres Projekt aufgenommen wird, ist also noch eine Alternative f&uuml;r das Beenden von T&auml;tigkeiten ohne direkt darauf folgende T&auml;tigkeiten vorzusehen.<\/p>\n<p>Dies erfolgt am besten in Form einer Schaltfl&auml;che, die eine Beschriftung wie &#8222;Keine aktuelle T&auml;tigkeit&#8220; enth&auml;lt und die T&auml;tigkeit abschlie&szlig;t, ohne eine neue T&auml;tigkeit aufzurufen.<\/p>\n<p>Der f&uuml;r den Mitarbeiter sichtbare Teil der Benutzeroberfl&auml;che k&ouml;nnte beispielsweise wie in Bild 2 aussehen.<\/p>\n<p><IMG height=\"316\" src=\"..\/fileadmin\/_temp_\/{7DD77ADF-9961-4A03-82A7-4094AEAF3533}\/pic002.png\" width=\"330\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 2:  M&ouml;gliches Aussehen des Benutzerfrontends des Projektzeitmanagers<\/span><\/b><\/p>\n<h3>Anzeige der Projekte<\/h3>\n<p>Nicht jeder Mitarbeiter arbeitet an allen vorhandenen Projekten mit. Dementsprechend sollen die Mitarbeiter in ihrem Frontend auch nur die Projekte angezeigt bekommen, an denen sie beteiligt sind. Diese Grobkonfiguration des Frontends der Mitarbeiter wird ebenfalls im Administrationsfrontend vorgenommen.<\/p>\n<p>Da aber jede T&auml;tigkeit eines Mitarbeiters erfasst werden soll, wird jeder Mitarbeiter eine betr&auml;chtliche Anzahl Projekte bearbeiten &#8211; auch wenn nur wenige davon Projekte im eigentlichen Sinne sind. Deshalb soll jeder Mitarbeiter die M&ouml;glichkeit bekommen, selbst die Projekte auszuw&auml;hlen, die im Projektzeitmanager angezeigt werden, und ihre Reihenfolge festzulegen. Die dazu ben&ouml;tigte Funktionalit&auml;t soll nicht im Formular aus Bild 2, sondern in einem neuen Formular untergebracht werden (siehe Bild 3).<\/p>\n<p><IMG height=\"267\" src=\"..\/fileadmin\/_temp_\/{7DD77ADF-9961-4A03-82A7-4094AEAF3533}\/pic003.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 3:  Verwalten der Anzeige der Projekte und ihre Reihenfolge<\/span><\/b><\/p>\n<p>Neben dieser Schaltfl&auml;che darf auch eine M&ouml;glichkeit zum Verbergen dieses Formulars nicht fehlen &#8211; dazu dient die Schaltfl&auml;che Ausblenden, die daf&uuml;r sorgt, dass nur noch das Symbol im Systray &uuml;brig bleibt.<\/p>\n<h3>T&auml;tigkeiten eintragen<\/h3>\n<p>Fehlt noch das Wichtigste: Die M&ouml;glichkeit zum Eintragen der Details einer T&auml;tigkeit. Dies erfolgt typischerweise nach dem Beenden der T&auml;tigkeit &#8211; was entweder durch den Beginn einer neuen T&auml;tigkeit oder durch den Beginn einer tatenlosen Phase markiert wird.<\/p>\n<p>F&uuml;r beides soll lediglich ein Klick und minimaler Aufwand zum Eintragen der ben&ouml;tigten Informationen notwendig sein. Dazu soll beim Klick auf ein neues Projekt oder auf die Schaltfl&auml;che mit dem Text &#8222;Keine aktuelle T&auml;tigkeit&#8220; (siehe Bild 2) ein Formular zur Eingabe der Daten angezeigt werden. Dieses k&ouml;nnte wie in Bild 4 aussehen: Es enth&auml;lt automatisch ermittelte Informationen wie das aktuelle Projekt, den Namen des Mitarbeiters sowie die Startzeit und die Endzeit. Einzutragen ist lediglich die T&auml;tigkeitsbeschreibung. Selbst die Art der T&auml;tigkeit kann leicht per Kombinationsfeld ausgew&auml;hlt werden.<\/p>\n<p>Mit einem Klick auf die OK-Schaltfl&auml;che werden die Informationen anschlie&szlig;end gespeichert.<\/p>\n<p><IMG height=\"278\" src=\"..\/fileadmin\/_temp_\/{7DD77ADF-9961-4A03-82A7-4094AEAF3533}\/pic004.png\" width=\"316\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 4:  Eintragen einer neuen T&auml;tigkeit<\/span><\/b><\/p>\n<p>Je nachdem, ob der Benutzer durch die Auswahl eines anderen Projekts eine neue T&auml;tigkeit eingel&auml;utet hat, muss nat&uuml;rlich noch die Startzeit dieser T&auml;tigkeit festgehalten werden, was ebenfalls ohne Zutun des Mitarbeiters geschehen soll.<\/p>\n<p>Nachdem die Komponenten der Benutzeroberfl&auml;che festgelegt sind, fehlt noch die dahinter stehende Technik. Auch hier gibt es mindestens zwei Abstufungen f&uuml;r den Detailgrad der Beschreibung. Die erste, gr&ouml;bere Stufe legt fest, wie und auf welche Komponenten die Funktionalit&auml;t aufgeteilt wird. Die M&ouml;glichkeiten sind relativ umfangreich. Ein Beispiel ist die Entscheidung, ob Validierungen auf Tabellenebene, in Formularen beziehungsweise den entsprechenden Ereignisprozeduren oder gar in einer separat zu schaffenden Businesslogik-Schicht durchzuf&uuml;hren sind. Au&szlig;erdem k&ouml;nnen Sie festlegen, ob und wie Funktionalit&auml;t in Form von Routinen in separaten Standard- oder Klassenmodulen ausgegliedert werden kann, um die Wiederverwendbarkeit zu erh&ouml;hen.<\/p>\n<p>Die feinere Abstufung bei der Technik liegt in der Beschreibung der Routinen selbst &#8211; ob man dies allerdings vorher im Detail etwa in Form von Diagrammen festhalten muss, ist eine andere Frage.<\/p>\n<p>Software-Architektur sollte auch f&uuml;r Access-Entwickler kein Fremdwort sein. Jedes im Vorhinein durchdachte Detail einer Anwendung macht m&ouml;glicherweise hinterher weniger &auml;rger.<\/p>\n<p>Die Beschreibung der Architektur kann jedoch in Abh&auml;ngigkeit von der Gr&ouml;&szlig;e des Projekts eine Menge Aufwand bedeuten. Das l&auml;sst sich daran ablesen, dass selbst eine oberfl&auml;chliche Architekturbeschreibung des hier als Beispiel verwendeten Projektzeitmanagers schon einige Seiten umfasst &#8211; und das ohne jegliche Erfassung von Abl&auml;ufen in Form der verschiedenen UML-Diagramme.<\/p>\n<p>UML ist sicher ein Thema, das auch Access-Entwickler zumindest vorausschauend einmal unter die Lupe nehmen sollten &#8211; sp&auml;testens wenn .NET auch vor Access keinen Halt mehr macht, sind Objektorientierung und in diesem Zusammenhang von der UML zur Verf&uuml;gung gestellte Diagrammtypen ein Thema.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wer hin und wieder eine Access-Anwendung f&uuml;r den Eigengebrauch aus dem Handgelenk sch&uuml;ttelt, ohne sich vorher Gedanken um ihre Aufbau zu machen, erleidet dadurch sicher keinen Schiffbruch. Wenn Sie aber gr&ouml;&szlig;ere Projekte angehen und dies vielleicht auch noch im Kundenauftrag, erleichtert eine vern&uuml;nftige Planung Ihnen und dem Kunden das Leben.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662005,66052005,44000040],"tags":[],"class_list":["post-55000296","post","type-post","status-publish","format-standard","hentry","category-662005","category-66052005","category-Allgemein"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Software-Architektur mit Access - Access im Unternehmen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-im-unternehmen.de\/SoftwareArchitektur_mit_Access\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Software-Architektur mit Access\" \/>\n<meta property=\"og:description\" content=\"Wer hin und wieder eine Access-Anwendung f&uuml;r den Eigengebrauch aus dem Handgelenk sch&uuml;ttelt, ohne sich vorher Gedanken um ihre Aufbau zu machen, erleidet dadurch sicher keinen Schiffbruch. Wenn Sie aber gr&ouml;&szlig;ere Projekte angehen und dies vielleicht auch noch im Kundenauftrag, erleichtert eine vern&uuml;nftige Planung Ihnen und dem Kunden das Leben.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/SoftwareArchitektur_mit_Access\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-06T15:18:05+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg01.met.vgwort.de\/na\/b2a732f25a7a44788db7d6a925e9f68a\" \/>\n<meta name=\"author\" content=\"Andr\u00e9 Minhorst\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andr\u00e9 Minhorst\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"20\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/SoftwareArchitektur_mit_Access\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/SoftwareArchitektur_mit_Access\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Software-Architektur mit Access\",\"datePublished\":\"2020-05-06T15:18:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/SoftwareArchitektur_mit_Access\\\/\"},\"wordCount\":4073,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/SoftwareArchitektur_mit_Access\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/b2a732f25a7a44788db7d6a925e9f68a\",\"articleSection\":[\"2005\",\"5\\\/2005\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/SoftwareArchitektur_mit_Access\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/SoftwareArchitektur_mit_Access\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/SoftwareArchitektur_mit_Access\\\/\",\"name\":\"Software-Architektur mit Access - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/SoftwareArchitektur_mit_Access\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/SoftwareArchitektur_mit_Access\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/b2a732f25a7a44788db7d6a925e9f68a\",\"datePublished\":\"2020-05-06T15:18:05+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/SoftwareArchitektur_mit_Access\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/SoftwareArchitektur_mit_Access\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/SoftwareArchitektur_mit_Access\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/b2a732f25a7a44788db7d6a925e9f68a\",\"contentUrl\":\"http:\\\/\\\/vg01.met.vgwort.de\\\/na\\\/b2a732f25a7a44788db7d6a925e9f68a\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/SoftwareArchitektur_mit_Access\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Software-Architektur mit Access\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"name\":\"Access im Unternehmen\",\"description\":\"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access\",\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/access-im-unternehmen.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\",\"name\":\"Andr\u00e9 Minhorst Verlag\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"contentUrl\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"width\":370,\"height\":111,\"caption\":\"Andr\u00e9 Minhorst Verlag\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Software-Architektur mit Access - Access im Unternehmen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/access-im-unternehmen.de\/SoftwareArchitektur_mit_Access\/","og_locale":"de_DE","og_type":"article","og_title":"Software-Architektur mit Access","og_description":"Wer hin und wieder eine Access-Anwendung f&uuml;r den Eigengebrauch aus dem Handgelenk sch&uuml;ttelt, ohne sich vorher Gedanken um ihre Aufbau zu machen, erleidet dadurch sicher keinen Schiffbruch. Wenn Sie aber gr&ouml;&szlig;ere Projekte angehen und dies vielleicht auch noch im Kundenauftrag, erleichtert eine vern&uuml;nftige Planung Ihnen und dem Kunden das Leben.","og_url":"https:\/\/access-im-unternehmen.de\/SoftwareArchitektur_mit_Access\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-06T15:18:05+00:00","og_image":[{"url":"http:\/\/vg01.met.vgwort.de\/na\/b2a732f25a7a44788db7d6a925e9f68a","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"20\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/SoftwareArchitektur_mit_Access\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/SoftwareArchitektur_mit_Access\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Software-Architektur mit Access","datePublished":"2020-05-06T15:18:05+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/SoftwareArchitektur_mit_Access\/"},"wordCount":4073,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/SoftwareArchitektur_mit_Access\/#primaryimage"},"thumbnailUrl":"http:\/\/vg01.met.vgwort.de\/na\/b2a732f25a7a44788db7d6a925e9f68a","articleSection":["2005","5\/2005"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/SoftwareArchitektur_mit_Access\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/SoftwareArchitektur_mit_Access\/","url":"https:\/\/access-im-unternehmen.de\/SoftwareArchitektur_mit_Access\/","name":"Software-Architektur mit Access - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/SoftwareArchitektur_mit_Access\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/SoftwareArchitektur_mit_Access\/#primaryimage"},"thumbnailUrl":"http:\/\/vg01.met.vgwort.de\/na\/b2a732f25a7a44788db7d6a925e9f68a","datePublished":"2020-05-06T15:18:05+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/SoftwareArchitektur_mit_Access\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/SoftwareArchitektur_mit_Access\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/SoftwareArchitektur_mit_Access\/#primaryimage","url":"http:\/\/vg01.met.vgwort.de\/na\/b2a732f25a7a44788db7d6a925e9f68a","contentUrl":"http:\/\/vg01.met.vgwort.de\/na\/b2a732f25a7a44788db7d6a925e9f68a"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/SoftwareArchitektur_mit_Access\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Software-Architektur mit Access"}]},{"@type":"WebSite","@id":"https:\/\/access-im-unternehmen.de\/#website","url":"https:\/\/access-im-unternehmen.de\/","name":"Access im Unternehmen","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access","publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/access-im-unternehmen.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/access-im-unternehmen.de\/#organization","name":"Andr\u00e9 Minhorst Verlag","url":"https:\/\/access-im-unternehmen.de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/","url":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","contentUrl":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","width":370,"height":111,"caption":"Andr\u00e9 Minhorst Verlag"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","caption":"Andr\u00e9 Minhorst"}}]}},"_links":{"self":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000296","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/comments?post=55000296"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000296\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000296"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000296"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000296"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}