Fachinformatiker Anwendungsentwicklung (Fach) / DIALokDataViewer (Lektion)

In dieser Lektion befinden sich 14 Karteikarten

Abschlusspräsentation

Diese Lektion wurde von bHoernchen erstellt.

Lektion lernen

Diese Lektion ist leider nicht zum lernen freigegeben.

  • Integration und Tests Die Integration an einer Produktionsanlage zog sich über 2 Tagen, da Daten für den Datenvergleich benötigt wurden. Zu den Testfällen: Es wurden während der Entwicklungszeit Funktionstests durchgeführt. Ebenso wurden unterschiedliche Tests für die Darstellungsformen definiert. Das Testprotokoll wurde auf die Testfälle aufgebaut und für die BlackBox- und WhiteBox -Tests verwendet. Der WhiteBox-Test wurde von mir durchgeführt und der BlackBox-Test von einem Mitarbeiter nachdem er sich das Benutzerhandbuch durchgelesen hat. Die Tests verliefen erfolgreich und es sind keine Fehler aufgetreten.
  • Resultat Aufgrund der fehlenden Erfahrungen mit den DevExpress Steuerelementen dauerte die Realisierung der Oberfläche länger als geplant. Hierbei wurden 2 Stunden mehr gebraucht. Die verlorene Zeit wurde dafür in den folgenden zwei Phasen wieder eingeholt. Weiterentwicklung: Die Zeitraums-auswahl soll optisch verändert werden und in Form eines Kalenders umgesetzt werden. Außerdem ist eine Stundenweise Auswertung und Darstellung der Daten wünschenswert.
  • Fazit Die Umsetzung des Projekts war sehr lehrreich und ich konnte gute Fortschritte im Bereich der WPF erzielen. Die Realisierung hat mir viel Freude bereitet und ich konnte sehr kreativ sein, da freie Hand gelassen wurde. Das schwierigste an der Realisierung war die Durchsetzung des MVVM-Entwurfsmusters, das ich in diesem Sinne das erste Mal angewendet habe und von daher viel umgedacht werden musste. Ich bin der Meinung, dass das Projekt gut erweiterbar ist und der Firma und den Kunden sehr nützlich sein wird.
  • Projektplanung Oberflächenentwürfe Mit dem Programm Microsoft Visio 2010 habe ich Oberflächenentwürfe oder auch kurz „Mockups“ erstellt. Für jede Ansicht ein eigenes Mockup. Hier zu sehen ist eine Ansicht, die das Grundgerüst oder auch die Shell darstellt. Die in vier Regionen aufgeteilt ist. Die Kopfregion (a) beinhaltet keine „wichtigen“ Daten, sondern nur die aktuelle Uhrzeit, einen Titel und ein Logo. Die Navigationsregion (b) beinhaltet Buttons zur Navigation durch die Anwendung. Punkte wie Echtzeit oder Inventardaten haben nochmal extra Unterpunkte. Dann ist unten (c) noch die Nachrichtenregion, die bei  Echtzeitdaten die aktuellen Benachrichtigungen anzeigt. So, dass diese immer im Blick sind. In der Mitte befindet sich die Datenregion (d), die die aktuell gewünschten Daten anzeigt. Z.B. ein Balkendiagramm zu den verarbeiteten Produkten.
  • Willkommen Herzlich Willkommen zu meiner Präsentation über meine betriiebliche Projektarbeit. Um genau zu sein über die Aufbereitung und Darstellung von maschinenbezogenen Produktionsdaten.
  • Inhalt Zuerst gibt es einen kleinen Einstieg, in dem ich über das Unternehmen rede und kurz das Projekt anschneide. Danach folgt die Zeit und Ressourcenplanung, in der unter anderem auch die Projektphasen aufgelistet sind. Dann kommen wir zur Anforderungsspezifikation in der während der Umsetzung das Lastenheft entstand. in der Analyse gehe ich auf den Ist Zustand und das Soll- Konzept ein, dann folgt die Projektplanung in der ich auf die Oberflächenentwürfe eingehe. Danach die Realisierung des Projekts, dann die Integration in ein bestehendes System und die Qualitätssicherung durch verschiedene Tests. Danach kommt ein Resultat oder auch Rückblick, in dem zum Beispiel die Soll und Ist Zeitplanung verglichen wird. Und dann folgt noch ein kurzes Fazit.
  • Das Unternehmen Die Otto Künnecke GmbH ist seit den 90er Jahren auf den Maschinenbau ausgelegt und war vorher ein "einfacher Schlossereibetrieb". Sie beschäftigt heute ca. 130 Mitarbeiter und ist mit einem Exportanteil von 80% weltweit aktiv. Wir produzieren Maschinen für das Verarbeiten und für den Versand von Hochsicherheitsdokumenten. Die Dokumente werden von unseren Anlagen kontrolliert, sortiert, gruppiert, verpackt und versandfertig gemacht. Wichtig zu beachten ist, dass wir diese Dokumente nicht herstellen, sondern nur verarbeiten.
  • Das Projekt Das Projekt ist der DIALokDataViewer. Er ist eine Anwendung zur Aufbereitung und Darstellung von Produktionsdaten einer Anlage. Der DDV läuft auf den Anlagen auf einem IPC und benötigt einen Datenbereitstellungsservice: den DataCollector.
  • Zeit- und Ressourcenplanung Anfangs wurden erst einmal die Projektphasen festgelegt. Das wäre die Anforderungsspezifikation, Analyse, Projektplanung, Realisierung, Integration und Tests und am Ende noch die Dokumentation. Demnach sind der Projektstart der 13.03.2017 und das Ende der 03.04.2017 gewesen.Für die Durchführung des Projekts wurde ein Arbeitsplatz, ein Arbeitsnotebook mit allen möglichen Tools, wie Microsoft Visual Studio, sämtliche Office Programme, Subversion und ProjectLibre benötigt.Lizenzkosten sind nicht entstanden, da Lizenzen für die benötigten Anwendungen vorhanden waren und für die externen Steuerelemente eine 30-Tage-Testversion verwendet wurden.
  • Anforderungsspezifikation Was muss der DDV können? Der DDV soll unterschiedliche Daten aufbereiten und für den Anwender anschaulich machen. Darunter fällt eine Echtzeitdaten-Betrachtung, in der Daten angezeigt werden, die gerade aktuell von der Maschine produziert werden. Eine Inventardaten-Betrachtung und eine Möglichkeit Daten aus zwei Zeiträumen miteinander zu vergleichen. Mit Inventardaten sind Daten gemeint, die bereits in einer Datenbank hinterlegt sind und aus einem vergangenen Zeitraum stammen. Dies soll mit einer geeigneten Präsentationsform umgesetzt werden. Das Programm soll einfach erweiterbar sein.
  • Analyse Ist-AnalyseBisherige Produktionsdaten werden in Protokolldateien geschrieben. Jedoch nicht zur Auswertung, sondern zur Fehleranalyse.Dazu gibt es noch auftragsspezifische Reportdateien, die die Gut und Schlechtanzahlen von Produkten und auch Jobstart- und Endzeit beinhalten.Kunde sieht effektiv also nicht, was seine Maschine leistet. Er müsste die Reportdateien und Protokolldateien aufwändig selbst analysieren oder sie in Auftrag geben um sie analysieren zu lassen.SOLL-KonzeptEs wird eine Oberfläche geben, in der Produktionsdaten dem Kunden anschaulich und übersichtlich dargestellt werden. Auch mehrere Wochen oder Monate alte Daten können angezeigt werden.Es wird eine Echtzeitdaten-Darstellung geben, worunter aktuelle Meldungen, Geschwindigkeit, zuletzt gemessene Temperaturen und sonstiges angezeigt werden.Ebenso werden Inventardaten aus einem ausgewählten Zeitraum angezeigt: Gesamtlaufzeiten, Zustände, Geschwindigkeiten, etc. Und zuletzt wird es eine Ansicht geben, in der mehrere Arten von Daten aus zwei Zeiträumen dargestellt werden.Als geeignete Präsentationsform wird die WPF verwendet. Es wird ein Model View ViewModel-Framework benötigt. Dafür verwendet wird Prism aus der Microsoft „Patterns & Practices“ Reihe. Ebenso aus der „Patterns & Practices“ Reihe stammt der Inversion of Control Container namens Unity. Ein IoC Container verringert die Komplexität der Anwendung, indem er Abhängigkeiten untereinander vorhält und zur Laufzeit auflöst. Es werden externe Steuerelemente benötigt, da die Visual Studio internen nicht das bieten, was für die Darstellung der Daten geeignet wäre und die Entwicklung eigenständiger Steuerelemente wäre zu aufwändig gewesen. Diese Steuerelemente werden aus einer Bibliothek von DevExpress genommen.
  • Realisierung 1 Allgemein MainWindowDas MainWindow beinhaltet mehrere DockPanels, die insgesamt vier ContentControls beinhalten. Diese ContentControls stellen die Regionen dar. Sie werden über einen RegionManager mit Views befüllt.RegionManagerDer RegionManager stammt ebenso aus der Prism Library und registriert erstmalig eine View mit einer Region. Ebenso befüllt der RegionManager die Regionen dynamisch mit Views.BootstrapperIch habe einen extra Bootstrapper, der aus der bei Programmstart instanziiert wird. Der Bootstrapper erbt vom UnityBootstrapper und überschreibt Methoden zur Deklarierung und Initialisierung der Shell und zur Registrierung der Views und ViewModels im Container.DataCollector-KlasseDie DataCollector Klasse implementiert die Service Referenzen des DataCollector-Service. Die Klasse ist die WCF-Schnittstelle zum Service. Sie ist in gewisser Maße das Herzstück der Datenkommunikation der Anwendung.
  • Realisierung 2 WPF-Oberfläche Jede Art von darzustellenden Daten hat eine eigen View und ein eigenes ViewModel ViewModels Die ViewModels beinhalten eine ViewModel-Klasse, eine DesignViewModel –Klasse und ein Interface. Die beiden Klassen erben vom Interface. Ebenso erbt die ViewModel-Klasse von der BindableBase Klasse, die auch aus der Prism Library stammt. Mit ihr werden Standardfunktionen zum MVVM-Handling mitgegeben. Views Die Views sind UserControls. Sie beinhalten eine Ignorable Eigenschaft, über die als DataContext das DesignViewModel eingebunden wird. Das DesignViewModel wird also schon während der Entwicklungszeit instanziiert und stellt Fakedaten zur Verfügung. Im Code Behind der View steht nur, welches ViewModel zur Laufzeit als DataContext definiert wird. Navigation Die Navigation ist eine eigene View. Sie beinhaltet ein ItemsControl an das eine Liste von Buttons gebunden wird. Diese Buttons lösen ein Command, die die Navigation über den RegionManager auslöst.
  • Realisierung 3 Darstellungsarten Echtzeitdaten-Darstellung Für die Echtzeitdaten-Darstellung wurden Callbacks im Service erstellt, über die abonnierte Programme bei eintreffenden Daten benachrichtigt werden. Dafür ist in der DataCollector Klasse eine weitere Klasse: DataCollector-Callback. Sie implementiert das Callback Interface des Service. Bei einem Callback werden im DDV verschiedene Events ausgelöst, wodurch die vorhandenen Daten aktualisiert werden. Inventardaten-Darstellung Die ViewModels beinhalten unter anderem Datenpunkte für das ausgewählte Datum. Das wird bei Instanziierung dem Datum der DataCollector-Klasse angepasst. Hier wird das Datum zentral gehalten. Wenn also ein neues Datum in einer View ausgewählt wird, werden in der DataCollector-Klasse Events ausgelöst, die das Datum in den weiteren Views aktualisiert. Des Weiteren gibt es in jedem Inventardaten-ViewModel einen BackgroundWorker, der bei Instanziierung oder bei Betätigung des Load-Buttons gestartet wird. Dieser stellt eine Anfrage nach den Daten des ausgewählten Zeitraums an den Service. Die Daten kommen dann in Form eines Arrays zurück und werden in die Steuerelemente geladen. Datenvergleich Bei dem Datenvergleich handelt es sich um eine einzelne View mit 2 Steuerelementen zur Datumsauswahl. Wenn beide Zeiträume ausgewählt wurden kann eine Anfrage an den DataCollector-Service gestellt werden. Die Anfrage verläuft wie bei der Inventardaten-Darstellung. Die Daten werden dann nur noch aufbereitet und in den entsprechenden Steuerelementen gegenüber gestellt.