Download Terminal PMS Terminal PMS
Transcript
MasterMaster-Thesis MASMAS-IT 0606-02 Schlussbericht Terminal PMS Projektbezeichnung SWS Diplomarbeit Klasse Diplomanden Experte Betreuer Erstellt am Zuletzt geändert am Bearbeitungszustand Dokument Datenablage Terminal PMS MAS-06.02.16 MAS-06-02 Beat Bösiger Heinrich Neiger Niesenblickstrasse 8b Silberhornstrasse 10 3600 Thun 3600 Thun Tel.: +41 33 222 48 77 Mob.: +41 79 661 46 27 Fax: +41 33 222 48 78 E-Mail: [email protected] Mob.: +41 79 643 19 75 E-Mail: [email protected] Joachim Fulde Lutertalstrasse 27 3065 Bolligen Mob.: +41 79 467 89 76 E-Mail: [email protected] Arjan DJ Paijralbe Tel.: +41 33 439 07 92 E-Mail: [email protected] 18. Februar 2009 19. Februar 2009 In Bearbeitung Vorgelegt X Fertig gestellt 008_Schlussbericht.doc Unter Subversion Repository „pms_terminal“ Verzeichnis 010_Trunk\MasterThesis\010_Dokumentation\090_Berichte Abstract: In einem Produktionsprozess von Si-Wafern wird immer mehr nach Rückverfolgbarkeit verlangt. Die Arbeitsschritte ohne Maschinen werden mit einem Terminal ausgerüstet. Es soll ein Framework zum Erstellen von Terminalanwendungen inkl. einer Referenzanwendung und zwei Hardware-Adaptern erstellt werden. MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Management Summa Summ ary In dieser Arbeit geht es darum ein Frameworks zu entwickeln, welches als Basis für die Erstellung einer Terminalanwendung benutzt werden kann. Um die Funktion des Frameworks zu Testen, soll zusätzlich eine Referenzanwendung des Brick Separieres implementiert werden. Damit Ein- resp. Ausgaben getätigt werden können, sollen zusätzlich zwei Hardware-Adapter entwickelt werden. Der eine Hardware-Adapter ist für einen Barcode-Leser und der Andere für einen Label-Drucker. Das Terminal ist ein Teilprojekt des Gesamtsystems PMS. Während dieser Arbeit ist kein funktionsfähiges PMS, resp. Integration-Service (IS) vorhanden, dies aufgrund einer Verspätung des Gesamtprojekts. Der IS dient als Basis für die Kommunikation mit dem PMS. Wegen dieser Verspätung wurde entschieden, dass in dieser Arbeit selber ein IS entwickelt wird, der als Simulator des PMS dient. Das bedeutet, dass die Hardware-Adapter statt an den IS, direkt ins Framework implementiert wurde. Es konnte ein funktionsfähiges Framework mit integrierten Hardware-Adaptern erstellt werden. Das Framework muss für den effektiven Einsatz in der Industrie an das PMS angepasst werden. Zusätzlich entstanden während der Arbeit zusätzliche Anforderungen, welche aufgrund des zu hohen Arbeitsaufwandes nicht in das Projekt einfliessen konnte. Der Hardware-Adapter für den Barcode-Leser konnte vollständig umgesetzt werden. Der Hardware-Adapter für den Label-Drucker wurde nur simuliert, da der Drucker zu spät evaluiert und beschafft wurde. Die Referenzanwendung Brick Separierer konnte fertig gestellt werden, da der Prozessablauf jedoch nicht endgültig definiert ist, wurde ein provisorischer Prozessablauf erstellt und erstellt. Es wird empfohlen, das Framework anhand der zusätzlichen Anforderungen zu erweitern und einzusetzen. Falls der Prozessablauf nicht stark ändert, kann der Brick Separierer mit dem derzeitigen Stand eingesetzt werden. Die Ziele im Pflichtenheft wurden hoch gesteckt, konnten jedoch vollständig umgesetzt werden. Bis auf die Abnahmen konnten die Termine gehalten werden. Die Abnahmen verzögerten sich, aufgrund des fehlenden Label-Druckers. Es entstanden keine unvorhergesehene Kosten. 008_Schlussbericht.doc 2/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Inhaltsverzeichnis 1 2 3 4 5 6 Einleitung ............................................................................................................................................................. 7 1.1 Übersicht .................................................................................................................................................. 7 1.2 Ausgangslage ........................................................................................................................................... 7 1.3 Zweck und Ziele........................................................................................................................................ 7 1.4 Produktumfang ......................................................................................................................................... 8 1.5 Definitionen, Akronyme, Abkürzungen ....................................................................................................... 8 1.5.1 Projektspezifisches Glossar .................................................................................................................. 8 1.5.2 Anforderungsspezifisches Glossar/Sprachnormalisierung ..................................................................... 9 1.6 Referenzen.............................................................................................................................................. 10 1.7 Konkurrenzprodukte ............................................................................................................................... 10 Aufgabenstellung ............................................................................................................................................... 11 2.1 Hardware-Adapter .................................................................................................................................. 11 2.1.1 Label-Drucker..................................................................................................................................... 11 2.1.2 Barcode-Leser.................................................................................................................................... 11 2.2 Framework.............................................................................................................................................. 11 2.3 Referenz-Anwendung “Brick Separierer” ................................................................................................. 12 Organisation....................................................................................................................................................... 12 3.1 Projektplanung ........................................................................................................................................ 12 3.2 Eingesetzte Werkzeuge ........................................................................................................................... 12 Analyse und Synthese ........................................................................................................................................ 13 4.1 Übersicht Gesamtfunktionalität................................................................................................................ 13 4.2 Komponentenübersicht........................................................................................................................... 14 4.3 Hardware-Adapter .................................................................................................................................. 15 4.3.1 Label-Drucker..................................................................................................................................... 15 4.3.2 Barcode-Leser.................................................................................................................................... 19 4.4 Framework.............................................................................................................................................. 22 4.4.1 Anwendungsfallmodell........................................................................................................................ 22 4.4.2 Beschreibungen der Anwendungsfälle Entwickler ............................................................................... 26 4.4.3 Beschreibungen der Anwendungsfälle System ................................................................................... 26 4.4.4 Beschreibungen der Anwendungsfälle Operator ................................................................................. 26 4.4.5 Synthese ............................................................................................................................................ 26 4.4.6 Fachklassendiagramm........................................................................................................................ 30 4.4.7 Beschreibung Fachklassendiagramm ................................................................................................. 31 4.5 Referenz-Anwendung „Brick Separierer“ ................................................................................................. 32 4.5.1 Anwendungsfallmodell........................................................................................................................ 32 4.5.2 Beschreibungen der Anwendungsfälle ................................................................................................ 32 4.5.3 Ablauf................................................................................................................................................. 33 Prototyping ........................................................................................................................................................ 35 5.1 Hardware-Adapter .................................................................................................................................. 35 5.2 Framework.............................................................................................................................................. 35 5.3 Referenz-Anwendung „Brick Separierer“ ................................................................................................. 35 Design ............................................................................................................................................................... 36 6.1 Hardware-Adapter .................................................................................................................................. 36 6.1.1 Label-Drucker..................................................................................................................................... 36 6.1.2 Barcode-Leser.................................................................................................................................... 36 6.2 Framework.............................................................................................................................................. 37 6.2.1 Paketaufteilung ................................................................................................................................... 37 008_Schlussbericht.doc 3/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 6.2.2 GUI Architektur ................................................................................................................................... 39 6.3 Referenz-Anwendung “Brick Separierer” ................................................................................................. 40 6.4 API.......................................................................................................................................................... 40 7 Test ................................................................................................................................................................... 41 7.1 Hardware-Adapter .................................................................................................................................. 41 7.1.1 Unit-Test ............................................................................................................................................ 41 7.1.2 Test Szenarien.................................................................................................................................... 41 7.1.3 Test-Anwendungen ............................................................................................................................ 41 7.1.4 Abnahme............................................................................................................................................ 41 7.2 Framework.............................................................................................................................................. 42 7.2.1 Unit-Test ............................................................................................................................................ 42 7.2.2 Test Szenarien.................................................................................................................................... 42 7.2.3 Test-Anwendung ................................................................................................................................ 42 7.2.4 Abnahme............................................................................................................................................ 42 7.3 Referenz-Anwendung “Brick Separierer” ................................................................................................. 43 7.3.1 Unit-Test ............................................................................................................................................ 43 7.3.2 Test .................................................................................................................................................... 43 7.3.3 Abnahme............................................................................................................................................ 43 7.4 Integrationstest ....................................................................................................................................... 44 7.4.1 Hardware ........................................................................................................................................... 44 7.4.2 Software............................................................................................................................................. 44 7.4.3 Vorgehen............................................................................................................................................ 45 8 Resultate............................................................................................................................................................ 46 8.1 Hardware-Adapter .................................................................................................................................. 46 8.1.1 Abnahme............................................................................................................................................ 46 8.1.2 Label-Drucker..................................................................................................................................... 46 8.2 Framework.............................................................................................................................................. 47 8.2.1 Software Update ................................................................................................................................ 48 8.2.2 Abnahme............................................................................................................................................ 48 8.3 Referenz-Anwendung “Brick Separierer” ................................................................................................. 49 8.3.1 Abnahme............................................................................................................................................ 51 8.4 Dokumentation........................................................................................................................................ 51 8.4.1 “Entwicklerhandbuch”......................................................................................................................... 51 8.4.2 API ..................................................................................................................................................... 52 8.5 Integration............................................................................................................................................... 52 8.5.1 Integrationstest................................................................................................................................... 52 8.6 Projektplan.............................................................................................................................................. 52 9 Diskussion ......................................................................................................................................................... 53 9.1 Projektablauf ........................................................................................................................................... 53 9.2 Framework.............................................................................................................................................. 54 9.2.1 WPF ................................................................................................................................................... 54 9.2.2 Spezifikation ....................................................................................................................................... 54 9.2.3 Integration Service (IS) ........................................................................................................................ 54 9.2.4 Software-Update ................................................................................................................................ 54 9.3 Referenz-Anwendung “Brick Separierer” ................................................................................................. 54 10 Ausblick ......................................................................................................................................................... 55 10.1 Dokumentation........................................................................................................................................ 55 10.2 Hardware-Adapter .................................................................................................................................. 55 10.2.1 Geräte mit Ein-/Ausgabe .................................................................................................................... 55 008_Schlussbericht.doc 4/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 10.2.2 Label-Drucker..................................................................................................................................... 55 10.2.3 Barcode-Leser.................................................................................................................................... 55 10.3 Framework.............................................................................................................................................. 56 10.4 Referenz-Anwendung “Brick Separierer” ................................................................................................. 56 11 Verzeichnisse ................................................................................................................................................. 57 11.1 Abbildungsverzeichnis............................................................................................................................. 57 11.2 Tabellenverzeichnis ................................................................................................................................. 58 12 Anhang .......................................................................................................................................................... 60 12.1 Projektplan.............................................................................................................................................. 60 12.2 Anwendungsfall-Beschreibungen ............................................................................................................ 62 12.2.1 Hardware-Adapter.............................................................................................................................. 62 12.2.2 Framework ......................................................................................................................................... 66 12.2.3 Referenz-Anwendung „Brick Separierer“............................................................................................. 81 12.3 Test Szenarien ........................................................................................................................................ 84 12.3.1 Hardware-Adapter.............................................................................................................................. 84 12.3.2 Framework ......................................................................................................................................... 88 12.4 Klassendiagramme.................................................................................................................................. 99 12.4.1 Hardware-Adapter.............................................................................................................................. 99 12.4.2 Framework ....................................................................................................................................... 101 12.4.3 Referenz-Anwendung „Brick Separierer“........................................................................................... 109 008_Schlussbericht.doc 5/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Dokumentversionen Tabelle 1: Dokumentversionen Änderung Nr. Datum 1 06.01.2009 2 30.01.2009 3 16.02.2009 4 17.02.2009 Geänderte Kapitel Beschreibung der Änderung Autor Zustand Version 0.0.1 0.0.2 0.0.3 0.0.4 Aufbau gestaltet Inhalt eingefügt Eingefügt Ergänzt Neh Neh Böb Böb In Bearbeitung In Bearbeitung In Bearbeitung In Bearbeitung 0.0.5 0.1.0 Alle Diskussion Test Kapitel Test Kapitel Diskussion Kapitel Alle Alle 5 6 18.02.2009 19.02.2009 Abgefüllt mit Inhalt Abgefüllt mit Inhalt In Bearbeitung In Bearbeitung 1.0.0 Alles Fertiggestellt Böb Böb/ Neh Böb/ Neh 7 19.02.2009 008_Schlussbericht.doc 6/109 Fertiggestellt 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 1 Einleitung 1.1 Übersicht Dieses Dokument ist so aufgebaut, dass jedes Kapitel jeweils in die drei Themen Hardware-Adapter, Framework und die Referenzanwendung „Brick Separierer“ unterteilt ist. 1.2 Ausgangslage Die Produktion von Silizium Wafern für Solarzellen erfolgt über mehrere Prozessstufen. Hier setzt das von Meyer Burger entwickelte Prozess Management System (PMS) an. In der Abbildung 1 ist ersichtlich, wie ein Produktionsprozess aussehen kann. Nach dem Giessen der Ingots finden Messungen statt. Anschliessend wird der Ingot in die gewünschte Form geschnitten. Nach diversen Vorgängen, wie Schleifen und Aufkleben wird der Ingot mit einer Drahtsäge in Wafer geschnitten, welche darauf hin separiert und gereinigt werden. Am Ende werden die Wafer vermessen. Furnaces Puller Measurement Bricking Measurement Squaring Cropping 3D / Lifetime Surface Edge Gluing station Grinding Wire saw Precleaning Separation Cleaning Measurement Abbildung 1: Gesamtprozessablauf Das PMS sammelt alle in der Produktion anfallenden Produkt- und Prozessinformationen, bildet daraus ein abstraktes Produktionsabbild und ermittelt für jede Prozessstufe das Laufzeitverhalten. Jeder Anlageteil, welcher an das Meyer Burger Leitsystem (PMS) angebunden wird, enthält einen Integrations-Service. Der Integrations-Service ist eine Software mit der Aufgabe, den Datenfluss der Anlageteile zu koordinieren. Die Daten werden mittels Netzwerk an das Leitsystem (PMS) gesendet und dort zentralisiert. Für manuelle oder teilautomatisierte Arbeitsstationen wird ein Terminal eingesetzt, über das die notwendigen oder ergänzenden Eingaben möglich sind. Je nach Prozessstufe kann das Terminal über verschiedene Peripheriegeräte (Scanner für die automatische Identifikation / Label-Drucker zur Beschriftung des Materials) verfügen. 1.3 Zweck und Ziele Anhand dieses Dokumentes sind die Resultate und Erkenntnisse für die aus der Master Thesis entstandene „Terminal PMS“-Software ersichtlich. 008_Schlussbericht.doc 7/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 1.4 Produktumfang Das Produkt Terminal PMS beinhaltet drei Teile: • • • Ein Framework zum Erstellen von Terminal-Anwendungen. Zwei Hardware-Adapter für den Label-Drucker und den Barcode Leser Eine Referenzanwendung „Brick Separierer“ 1.5 Definitionen, Definitionen, Akronyme, Abkürzungen 1.5.1 Projektspezifisches Glossar Tabelle 2: Projektspezifisches Glossar Vokabel Bilder Brick Brick-Separierer GUI IS Konfigurationsdatei PMS Produktinformationen Prozessinformationen SEMI E10 Terminal Wafer 008_Schlussbericht.doc Bedeutung/Verwendung Dateien mit grafischem Bildinhalt, wie Fotos Ein Brick ist ein quadrierter Siliziumblock. Dieser Brick wird im Prozessschritt «Wafer Trennen» in dünne Scheiben von 140 --- 200 Mikrometer aufgetrennt. Ein Brick-Separier ist eine Arbeitsstation, wo ein Terminal eingesetzt wird. Das ist die Referenzanwendung in dieser Diplomarbeit. Beim Brick-Separierer werden die einzelnen Bricks grob gereinigt, auf Qualität geprüft und mit einer Etikette versehen, um die Bricks anschliessend an die nächste Arbeitsstation weiterzugeben. Graphical User Interface (Graphische Bediener Schnittstelle) Integrations-Service, das ist eine Software, welche als Schnittstelle zum PMS dient In der Konfigurationsdatei für eine Terminal-Anwendung werden alle variablen Einstellungen der Anwendung abgelegt. Jede Terminal-Anwendung verfügt über eine solche Konfigurationsdatei. Die Hardware-Adapter verfügen zusätzlich über eigene Konfigurationsdateien. Prozess Management System (Meyer Burger Leitsystem) Das sind Eigenschaften, resp. Informationen zu einem Produkt (Ingot/Brick). Das sind Informationen zum Prozess, wie Zeiten oder anderen Prozessparametern SEMI E10 ist ein Standard zur Erfassung der Maschinenbetriebszeiten und Maschinen/Produktionszustände. Bei Arbeitsplätzen, die über keine entsprechende Maschine mit Leitsystem-Anbindung verfügen, ist ein Rechner mit einer speziellen Applikation zur Daten Ein / Ausgabe verfügbar. Kreisrunde oder quadratische Scheibe, die das Substrat (Grundplatte) darstellt, auf dem elektronische Bauelemente (IC, „Chip“) oder photoelektrische Beschichtungen durch verschiedene technische Verfahren hergestellt werden 8/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 1.5.2 Schlussbericht Anforderungsspezifisches Glossar/Sprachnormalisierung Tabelle 3: Anforderungsspezifisches Glossar Vokabel Aktivieren Anzeigen Auswählen Deaktivieren Einfügen Eingeben Einlesen Entwickler Hinzufügen Konfigurieren Öffnen Speichern System 008_Schlussbericht.doc Bedeutung/Verwendung Das entsprechende Element wird so konfiguriert, dass es verfügbar/sichtbar ist. Auf dem Bildschirm ausgeben/anzeigen. Der Benutzer wählt Eine, der möglichen Optionen/Einstellungen mit der Tastatur, Maus oder dem TouchScreen aus. Das entsprechende Element ist nicht verfügbar/sichtbar. Bei einer Anwendung: Das System fügt Daten ein, die gespeichert werden (siehe Speichern). Der Benutzer gibt Daten über die physikalische Tastatur oder über eine virtuelle Tastatur auf dem Touch-Screen Monitor ein. Daten werden über ein Lesegerät eingelesen und gespeichert. Diejenigen Personen, die TerminalAnwendungen erstellen. Beim Entwickeln einer Anwendung: ein Element der Anwendung hinzufügen. Die Daten in der Konfigurationsdatei werden gelesen und beim Zielobjekt gesetzt/gespeichert. Ein Fenster auf dem Bildschirm öffnen. Bei einem Wert: Das System speichert den Wert im Arbeitsspeicher. Bei einer Datei: Das System speichert die Datei auf dem entsprechenden Speichermedium. Das System ist eine TerminalAnwendung, die mittels des Frameworks erstellt worden ist. 9/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 1.6 Referenzen Die folgende Tabelle gibt einen Überblick, woher die Terminal PMS spezifischen Informationen stammen: Tabelle 4: Projektspezifische Referenzen Name des Dokuments Revisio n 3425 Dokumentenablage Kommentar Subversion Repository „pms_design_ea“ Implementierungsrichtlini en_ PMS.doc Vergabe der ID Nummern.doc 359 Subversion Repository „pms“, Verzeichnis: 010_Projekt_Dok\ Implementierungsrichtlinien Subversion Repository „pms“, Verzeichnis: 010_Projekt_Dok\Pflichtenhefte Design-Projektdatei für Enterprise Architect Programmierrichtlin ien e1000.pdf 359 Pflichtenheft PMSTerminal 104 MeyerBurger PMS.eap 359 Subversion Repository „pms“, Verzeichnis: 010_Projekt_Dok\Normen Subversion Repository „pms_terminal“, Verzeichnis 010_Trunk\MasterThesis\010_Dokumentation\040_Pflic htenheft Beschreibung Vergabe von ID Nummern SEMI E10 Standard Pflichtenheft für das PMS Terminal 1.7 Konkurrenzprodukte Beim Gesamtprojekt PMS handelt es sich um eine eigene Neuentwicklung der Meyer Burger AG. Das Terminal PMS ist dabei ein Teilprojekt des PMS, das den Integration-Service als weiteres Teilprojekt beinhaltet. Aus dieser Situation heraus existieren keine direkten Konkurrenzprodukte. 008_Schlussbericht.doc 10/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 2 Aufgabenstellung Diese Master Thesis beinhaltet drei Themen, welche zusammen den Hauptteil des Terminal PMS bildet. Diese drei Themen sind die Hardware-Adapter Barcode-Leser und Label-Drucker, das Framework und die Referenzanwendung „Brick Separierer“. In den folgenden Kapitel wir auf diese Themen genauer eingegangen. 2.1 HardwareHardware - Adapter An das Terminal PMS können diverse Hardware-Adapter, resp. zusätzliche Hardware angeschlossen werden. In dieser Arbeit wurde der Hardware-Adapter für einen Label-Drucker und einen Barcode-Leser implementiert. 2.1.1 LabelLabel -Drucker Der Label-Drucker soll an das Terminal PMS angeschlossen werden. Anhand der Konfiguration im Framework wird der Label-Drucker Adapter dynamisch in der Anwendung eingebunden und die Schnittstelle richtig konfiguriert. Während des Betriebs können auf dem Label-Drucker Barcode-Etiketten anhand einer Vorlage, welche vom PMS vorgegeben ist, ausgedruckt werden. 2.1.2 BarcodeBarcode-Leser Der Barcode-Leser soll an das Terminal PMS angeschlossen werden. Anhand der Konfiguration im Framework wird der Barcode-Leser Adapter dynamisch in der Anwendung eingebunden und die Schnittstelle richtig konfiguriert. Während des Betriebs kann der Barcode-Leser Barcodes einlesen und die Daten ans Framework, bzw. an die Terminal-Anwendung weitergeben. Dies gilt für den folgenden Typ: Powerscan D8330 von Datalogic 2.2 Framework Das Framework ist die Basis jeder Terminal-Anwendung. Es beinhaltet die Grundfunktionalität: • Adapter-Loader und Event-Support für Hardware-Adapter. • Grundaufbau der Visualisierung • Hilfsmittel (Rechner / Kalender / Bild-Assistent / Testbedingungshilfe / Bildschirmreiniger) • Basis für die Konfiguration • Kommunikation mit dem IS (Integration Service) • Sprachabhängige Unterstützung Das Ziel des Frameworks ist, dass weitere Terminalanwendungen mit möglichst wenig Aufwand erstellt werden können. 008_Schlussbericht.doc 11/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 2.3 ReferenzReferenz- Anwendung “Brick Separierer” Um eine Umsetzung einer Terminal Anwendung zu zeigen, wird mit dem erstellten Framework eine ReferenzAnwendung realisiert. Diese Referenz-Anwendung wird Brick Separierer genannt, da das Terminal in einem Prozess eingesetzt wird, wo die Bricks separiert werden. Das bedeutet, dass nach dem Sägen mehrere Bricks beim Terminal ankommen, wo ein Mitarbeiter mit Hilfe des Terminals die Bricks separiert. Der Mitarbeiter kann mit dem BarcodeLeser oder von Hand eine Auftragsnummer eingeben und erhält die dazugehörigen Auftragsdaten angezeigt. Nun führt das Terminal den Mitarbeiter durch den Prozess inkl. dem Ausdruck der dazugehörigen Beschriftungen. Dabei geht es primär um die Nachverfolgbarkeit der einzelnen Bricks. 3 Organisation 3.1 Projektplanung Der erstellte Projektplan befindet sich im Anhang im Kapitel 12.1. 3.2 Eingesetzte Werkzeuge In der Tabelle 5 sind alle eingesetzten Werkzeuge aufgelistet, die zur Erstellung der Diplomarbeit benutzt worden sind. Tabelle 5: Eingesetzte Werkzeuge Bezeichnung Projektmanagement/Zeitplan Dokumentation PDF Mindmap Design/Diagramme Code/Realisierung XML Dokumente Grafik/Bilder Versionierung API-Dokumentation Generator Visual Studio Plugin: ReSharper 008_Schlussbericht.doc Werkzeug GanttProject Office 2003 Office Plugin FreeMind Enterprise Architect Visual Studio 2008 Visual Studio 2008 GIMP TortoiseSVN Doxygen ReSharper Hersteller ganttproject.biz Microsoft Version 2.0.7 2003 SP3 freemind.sourceforge.net Sparx Systems Microsoft Microsoft 0.9.0 7.0.813 2008 (9.0) 2008 (9.0) 2.4.0 1.4.8 1.5.8 4.1 www.gimp.org www.tigris.org www.doxygen.org 12/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 4 Analyse und Synthese Synthese 4.1 Übersicht Gesamtfunktionalität Um einen Gesamtüberblick zu bekommen, ist ein Mindmap erstellt worden und ist in der folgenden Abbildung dargestellt. Es zeigt in groben Zügen alle Elemente, die mit dem Produkt zusammenhängen. Abbildung 2: Mindmap Gesamtfunktionalität 008_Schlussbericht.doc 13/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 4.2 Komponentenübersicht In der folgenden Abbildung 3 sind die zusammenhängenden Komponenten und deren Verknüpfungen ersichtlich. cmp Component Model Konfiguration Konfiguration <<uses>> RS232 Hardw are-Adapter Barcode-Leser Terminal-Anw endung Framew ork RS232 Hardw are-Adapter Label Drucker Updater ISServ ice Konfiguration Konfiguration Abbildung 3: Komponentenübersicht - Hardware-Adapter Label-Drucker: Bibliothek (dll). Der Hardware-Adapter hat eine eigene Konfigurationsdatei zum Konfigurieren der Schnittstelle und zum Konfigurieren des Druckers. Falls in der Konfigurationsdatei der Applikation der Label-Drucker aktiviert wird, wird die Bibliothek dynamisch geladen. - Hardware-Adapter Barcode-Leser: Bibliothek (dll). Der Hardware-Adapter hat eine eigene Konfigurationsdatei zum Konfigurieren der Schnittstelle. Falls in der Konfigurationsdatei der Applikation der Barcode-Leser aktiviert wird, wird die Bibliothek dynamisch geladen. - Framework: Bibliothek (dll). Das Herzstück der Terminal-Anwendung. Es beinhaltet die Basisfunktionalität. Es benutzt die von der Applikation übergebene Konfigurationsdatei für alle konfigurierbaren Elemente. - Terminal-Anwendung: Applikation (exe), sie beinhaltet eigene Fenster und Funktionalitäten. Für die Entwicklung einer Terminal-Anwendung muss die Framework-Bibliothek ins Projekt eingebunden werden. - ISService: Bibliothek (dll). Sie beinhaltet die Definition der Kommunikationsschnittstelle zum Integration Service. - Updater: Konsolenanwendung (exe). Ist zuständig für ein Software Update der Terminalanwendung. Beim Aufruf des Updater’s beendet der Updater die Terminal-Anwendung, installiert die heruntergeladenenen Dateien und startet die Terminal-Anwendung erneut. Der Updater hat eine eigene Konfigurationsdatei. 008_Schlussbericht.doc 14/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 4.3 HardwareHardware - Adapter 4.3.1 LabelLabel -Drucker 4.3.1.1 Anwendungsfallmodell Anwendu ngsfallmodell In der Abbildung 4 ist das Anwendungsfallmodell für den Label-Drucker abgebildet. Es ist ersichtlich, dass vom PMS eine Vorlage heruntergeladen wird. Dies wird abgespeichert und zum Ausdrucken der Etiketten benutzt. Für die Konfiguration sind zwei Konfigurationsdateien vorgesehen. Die Eine für die Schnittstelle und die Andere für die Konfiguration des Druckers selbst. uc LD Use Cases HW-Adapter Label Drucker Sav e Printer template «invokes» «invokes» Printer template Dow nload printer template PMS Printer Configuration File «invokes» Printer interface Configuration File «invokes» «invokes» Configure Printer Interpret Print Values Print Label System Abbildung 4: Anwendungsfallmodell für den Label-Drucker 008_Schlussbericht.doc 15/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 4.3.1.2 Schlussbericht Beschreibungen der Anwendungsfälle Aus den Tabellen im Anhang unter Kapitel 12.2.1.1 sind die Beschreibungen der Anwendungsfälle ersichtlich. 4.3.1.3 Synthese Die folgende Tabelle 6 zeigt das Ergebnis der Zusammentragung von allen Informationen aus Lastenheft, Pflichtenheft, sonstigen Informationsquellen zum Label-Drucker, geordnet in die verschiedenen Elemente, um daraus das Fachklassendiagramm zu erstellen. Tabelle 6: Synthese Label-Drucker 1. Klassen/Objekte Adapter 2. Attribute 3. Operationen Adapter hinzufügen Adapter entfernen Wert_abfragen Konfigurationsstatus weiterleiten Label_drucken Schnittstelle Druckinhalt Schnittstelle öffnen Druckinhalt schreiben Schnittstelle schliessen Druckinhalt erzeugen Konfiguration Dateiname Schnittstelle Baudrate Parität Datenbits Stopbit Status Schnittstelle konfigurieren Konfigurationsdatei öffnen Parameter lesen Konfigurationsdatei schliessen Vorlage URL Dateiname Pfad herunterladen speichern Escape-Sequenzen interpretieren Durch Werte ersetzen 008_Schlussbericht.doc 16/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 4.3.1.4 Schlussbericht Fachklassendiagramm Aus der Synthese ist das Fachklassendiagramm, wie in der Abbildung 5 zu sehen ist, entstanden. Das Fachklassendiagramm zeigt die Klassen, die benötigt werden, um die aus dem Anwendungsfallmodel entstandenen Geschäftsanwendungsfälle abdecken zu können. Es entspricht deshalb nicht dem definitiven Klassendiagramm und wird im Detaildesign weiterentwickelt. class LD Class Diagram Adapter + + ~ + ~ Adapter_entfernen() : void Adapter_hinzufügen() : void Konfigurationsstatus_weiterleiten() : void Label_drucken() : void Wert_abfragen() : string 1 +Adapter 1 +Adapter 1 +Adapter bereitet vor > druckt > 1 +Druckinhalt 1 +Etikett Vorlage - Dateiname: string Pfad: string Url: string ~ ~ - Vorlage_herunterladen() : void Vorlage_interpretieren() : void Vorlage_speichern() : void konfiguriert > 1 +Schnittstelle Schnittstelle - Druckinhalt: string ~ ~ - Druckinhalt_erzeugen() : void Druckinhalt_schreiben() : void Schnittstelle_öffnen() : void Schnittstelle_schliessen() : void Konfiguration - Baudrate: ushort Dateiname: string Datenbits: ushort Parität: ushort Schnittstelle: ushort Status: short Stopbits: ushort ~ Konfigurationsdate_öffnen() : void Konfigurationsdatei_schliessen() : void Parameter_lesen() : void Schnittstelle_konfigurieren() : void Abbildung 5: Fachklassendiagramm Label-Drucker 008_Schlussbericht.doc 17/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 4.3.1.5 Schlussbericht Beschreibung Fachklassendiagramm Mit Hilfe der Synthese ist das Fachklassendiagramm in Abbildung 5 entstanden. Darin enthalten sind die folgenden Klassen: - Adapter: Die Klasse Adapter ist die Hauptklasse des Hardware-Adapter’s. Sie bietet die Methoden, um den Adapter zu registrieren und auch wieder zu entfernen. Zusätzlich beinhaltet sie Event und Handler für den Datenaustausch mit dem Framework. - Konfiguration: Die Klasse Konfiguration bietet das Auslesen der Konfigurationselemente aus der entsprechenden Konfigurationsdatei. - Schnittstelle: Die Klasse Schnittstelle stellt die Verbindung zum Gerät über die entsprechende Schnittstelle zur Verfügung. Sie bietet Methoden zum Öffnen und Schliessen der Schnittstelle sowie eine Methode zum Schreiben von Daten zum Gerät. - Vorlage: Die Klasse Vorlage bietet Funktionen zum Herunterladen und Speichern einer vorgegebenen Vorlage sowie den Parser zum Interpretieren des Vorlageninhaltes. 008_Schlussbericht.doc 18/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 4.3.2 Schlussbericht BarcodeBarcode-Leser 4.3.2.1 Anwendungsfallmodell Anwendungsfallmodell Aus dem Anwendungsfallmodell des Barcode-Lesers, gemäss Abbildung 6, erkennt man, dass das System mittels einer Konfigurations-Datei die Schnittstelle zum Barcode-Leser konfiguriert werden kann. Anschliessend ist der Barcode-Leser funktionsfähig. uc BL Use Cases HW-Adapter Barcode Leser Barcode Reader Interface Configuration File «invokes» Configure Barcode Reader System Read Barcode Barcode Reader Abbildung 6: Anwendungsfallmodell für den Barcode-Leser 008_Schlussbericht.doc 19/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 4.3.2.2 Schlussbericht Beschreibungen der Anwendungsfälle Aus den Tabellen im Anhang unter Kapitel 12.2.1.2 sind die Beschreibungen der Anwendungsfälle ersichtlich. 4.3.2.3 Synthese Die Tabelle 7 zeigt das Ergebnis der Zusammentragung von allen Informationen aus Lastenheft, Pflichtenheft, sonstigen Informationsquellen zum Barcode-Leser, geordnet in die verschiedenen Elemente, um daraus das Fachklassendiagramm zu erstellen. Tabelle 7: Synthese Barcode-Leser 1. Klassen/Objekte Adapter 2. Attribute 3. Operationen Adapter hinzufügen Adapter entfernen Barcode weiterleiten Konfigurationsstatus weiterleiten Schnittstelle Barcode Schnittstelle öffnen Barcode lesen Schnittstelle schliessen Konfiguration Dateiname Schnittstelle Baudrate Parität Datenbits Stopbit Status Schnittstelle konfigurieren Konfigurationsdatei öffnen Parameter lesen Konfigurationsdatei schliessen 4. Multiplizitäten die Schnittstelle 5. Bedingungen/Periodizitäten Beim Start der Anwendung Schnittstelle konfigurieren 6. Assoziationen der Leser die Konfigurationsdatei ein Barcode Mindestens 1 Parameter den Parametern 008_Schlussbericht.doc 20/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 4.3.2.4 Schlussbericht Fachklassendiagramm Aus der Synthese ist das Fachklassendiagramm, wie in der Abbildung 7 zu sehen ist, entstanden. Das Fachklassendiagramm zeigt die Klassen, die benötigt werden, um die aus dem Anwendungsfallmodel entstandenen Geschäftsanwendungsfälle abdecken zu können. Es entspricht deshalb nicht dem definitiven Klassendiagramm und wird im Detaildesign weiterentwickelt. class BL Class Diagram Adapter + + ~ ~ Adapter_entfernen() : void Adapter_hinzufügen() : void Barcode_weiterleiten() : void Konfigurationsstatus_weiterleiten() : void 1 +Adapter 1 +Adapter liest > konfiguriert > 1 +Barcode 1 +Schnittstelle Schnittstelle - Barcode: string ~ - Barcode_lesen() : void Schnittstelle_öffnen() : void Schnittstelle_schliessen() : void Konfiguration - Baudrate: ushort Dateiname: string Datenbits: ushort Parität: ushort Schnittstelle: ushort Status: short Stopbits: ushort ~ Konfigurationsdatei_öffnen() : void Konfigurationsdatei_schliessen() : void Parameter_lesen() : string Schnittstelle_konfigurieren() : void Abbildung 7: Fachklassendiagramm Barcode-Leser 008_Schlussbericht.doc 21/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 4.3.2.5 Schlussbericht Beschreibung Fachklassendiagramm Mit Hilfe der Synthese ist das Fachklassendiagramm in Abbildung 7 entstanden. Darin enthalten sind die folgenden Klassen: - Adapter: Die Klasse Adapter ist die Hauptklasse des Hardware-Adapter’s. Sie bietet die Methoden, um den Adapter zu registrieren und auch wieder zu entfernen. Zusätzlich beinhaltet sie Event und Handler für den Datenaustausch mit dem Framework. - Konfiguration: Die Klasse Konfiguration bietet das Auslesen der Konfigurationselemente aus der entsprechenden Konfigurationsdatei. - Schnittstelle: Die Klasse Schnittstelle stellt die Verbindung zum Gerät über die entsprechende Schnittstelle zur Verfügung. Sie bietet Methoden zum Öffnen und Schliessen der Schnittstelle sowie eine Methode zum Lesen der Daten vom Gerät. 4.4 Framework 4.4.1 Anwendungsfallmodell Das folgende Anwendungsfallmodell in Abbildung 8 zeigt drei Akteure: - Developer: Der Entwickler einer Terminalanwendung. Dem Entwickler müssen die verlangten Grundfunktionalitäten aus dem Pflichtenheft mit dem Framework zur Verfügung stehen. Dazu gehört das Hinzufügen von Hardware-Adaptern, Bildern, Sprachen, das Hinzufügen und Editieren von Fenstern, das Konfigurieren der Anwendung mit dem Aktivieren/Deaktivieren von Identifikationsnummern, Fenstern und Hilfsmittel. - System: Das System, in diesem Fall die Frameworkumgebung. Es behandelt alle Abläufe und Vorgänge, die mit Kommunikation und Daten im Zusammenhang stehen. Dazu gehört das Laden von konfigurierten Hardware-Adaptern, das Setzen des Produktionsstandes (SemiE10), das Einlesen von Barcodes über den Hardware-Adapter des Barcode-Lesers sowie das Zwischenspeichern von URL’s. Zudem muss es in der Lage sein, anhand der entsprechenden URL Dokumente von einem Web-Server herunterzuladen und anzuzeigen. - PMS: Das Leitsystem bekommt Anfragen von der Applikation und gibt entsprechend Antworten zurück, die in der Applikation weiterverarbeitet werden. 008_Schlussbericht.doc 22/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht uc FW Use Cases Framework Add HW-Adapter Edit Menu Edit Window Content Add Window Add Language Dev eloper Add pictures Activ ate/Deactiv ate Window Activ ate/Deactiv ate v alid ID Activ ate/Deactiv ate Utilities Load HW-Adapter Sav e production state Read Barcode from HW-Adapter Split ID-Numbers Sav e URL System Dow nload Text-/XML-/HTML-Documents Show Text-/XML-/HTML-Documents Send Identification Number Sav e ID-Answ er from PMS PMS Abbildung 8: Anwendungsfallmodell der Basisfunktionalität im Framework 008_Schlussbericht.doc 23/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Das folgende Anwendungsfallmodell in Abbildung 9 zeigt den Operator, der verschiedene Vorgänge ausführen können muss. Dazu gehören folgende Vorgänge: - Anmelden mit einer gültigen Benutzer-Identifikationsnummer, und das Abbrechen der Anmeldung - Öffnen und Schliessen von folgenden Fenstern: Arbeitsablauf-Beschreibung, Auftragsbeschreibung, Informationen zum nächsten Auftrag, Wartungsinformationen, Bildschirmreiniger, Bild-Assistent, Testbedingungshilfe, Rechner, Kalender und Software Version. Beim Rechner müssen zudem Berechnungen möglich sein. - Ändern der Sprache - Installieren von Software-Updates - Übersteuern des Produktionsstandes (SemiE10) 008_Schlussbericht.doc 24/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht uc FW Use Cases - Operator Framework - Operator Enter Operator-ID Cancel Operator-ID Open Close Operator T his is valid for: Workflow-Description • T ask-Description • Information for the next task • Service-Informations • Screen-Cleaner • Picture-Wizard • T est-Operation Help • Calculator • Calendar • Software-Version • Change Language Show current picture Only for the calculator Enter calculation Install softw are update Install configuration update Enter production state Abbildung 9: Anwendungsfallmodell der Operatorfunktionalität im Framework 008_Schlussbericht.doc 25/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 4.4.2 Schlussbericht Beschreibungen der Anwendungsfälle Entwickler Aus den Tabellen im Anhang unter Kapitel 12.2.2.1 sind die Beschreibungen der Anwendungsfälle ersichtlich, die dem Akteur „Developer“ zugeordnet sind. 4.4.3 Beschreibungen der Anwendungsfälle System Aus den Tabellen im Anhang unter Kapitel 12.2.2.2 sind die Beschreibungen der Anwendungsfälle ersichtlich, die dem Akteur „System“ zugeordnet sind. 4.4.4 Beschreibungen der Anwendungsfälle Operator Aus den Tabellen im Anhang unter Kapitel 12.2.2.3 sind die Beschreibungen der Anwendungsfälle ersichtlich, die dem Akteur „Operator“ zugeordnet sind. 4.4.5 Synthese Die folgende Tabelle 8 zeigt das Ergebnis der Zusammentragung von allen Informationen aus Lastenheft, Pflichtenheft, sonstigen Informationsquellen zum Framework, geordnet in die verschiedenen Elemente, um daraus das Fachklassendiagramm zu erstellen. Tabelle 8: Synthese Framework 1. Klassen/Objekte Adapter 2. Attribute Konfigurationsdatei (HW-Adapter) Konfigurationsdatei-Pfad HW-Adapter laden Menü Menüpunkte Menüpunkt hinzufügen Fenster Menü Menüpunkt Fenster öffnen Fenster schliessen Fenster aktivieren Fenster deaktivieren Dialog 3. Operationen Dialog öffnen Dialog schliessen Dialog aktivieren Dialog deaktivieren Identifikationsnummer Nummer Überprüfen auf Operatornummer Überprüfen auf Auftragsnummer Überprüfen auf Bricknummer Überprüfen auf Ingotnummer Überprüfen auf Werkstückaufnehmernummer Identifikationsnummer aktivieren Identifikationsnummer deaktivieren Fehlermeldung anzeigen Auftrag Operator-Identifikationsnummer Auftrag-Identifikationsnummer Brick-Identifikationsnummer Ingot-Identifikationsnummer Senden 008_Schlussbericht.doc 26/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht WerkstückaufnehmerIdentifikationsnummer Daten Antwort Daten Url Auftragsinformationen Url Informationen zu nächsten Auftrag Url Wartungsinformationen Dokument Url Typ (XML/HTML/Text) Herunterladen Anzeigen Sprache Aktuelle Sprache Sprache ändern Text anzeigen Anmelden Dialog Id Timeout Dialog öffnen Abbrechen Bestätigen Id setzen Id senden Timer starten Eingabefeld fokussieren Arbeitsbeschreibungshilfe Fenster öffnen Anzeigen Fenster schliessen Auftragsinformationen Url Fenster öffnen Anzeigen Fenster schliessen Herunterladen Infos zum nächsten Auftrag Url Fenster öffnen Anzeigen Fenster schliessen Herunterladen Wartungsinformationen Url Fenster öffnen Anzeigen Fenster schliessen Herunterladen Hilfsmittel Dialog Bildschirmreinigerhilfe 008_Schlussbericht.doc Hilfsmittel aktivieren Hilfsmittel deaktivieren Timeout Fenster öffnen Anzeigen Fenster schliessen Timer starten 27/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Bilder-Assistent Dialog Schlussbericht Pfad Dialog öffnen Anzeigen Dialog schliessen Nächstes Bild anzeigen Vorheriges Bild anzeigen Testbedingungshilfe Rechner Dialog Fenster öffnen Anzeigen Fenster schliessen Nächstes Bild anzeigen Vorheriges Bild anzeigen Operand 1 Operand 2 Resultat Dialog öffnen Anzeigen Dialog schliessen Berechnen Kalender Dialog SEMI E10 Produktionsstand Dialog öffnen Anzeigen Dialog schliessen Status Senden Timeout Ändern Timer starten Software-Version Dialog öffnen Anzeigen Dialog schliessen Software-Update Updates abfragen Update herunterladen Update installieren Meldung Dialog Dialog öffnen Anzeigen Dialog schliessen Bestätigen Fehlermeldung Dialog Dialog öffnen Anzeigen Dialog schliessen Bestätigen Tastatur Dialog Dialog öffnen Anzeigen Dialog schliessen Bestätigen Symbol anzeigen TouchScreen 008_Schlussbericht.doc Status 28/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Barcode-Leser IS Barcode-Leser-Daten einlesen Barcode-Leser-Daten speichern Barcode-Leser-Daten identifizieren Barcode-Leser-Daten aufsplitten Status Sendedaten Antwortdaten Ist Bereit Daten senden Antwort abfragen 4. Multiplizitäten 5. Bedingungen/Periodizitäten beliebig viele Menüpunkte 008_Schlussbericht.doc 29/109 6. Assoziationen 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 4.4.6 Schlussbericht Fachklassendiagramm Aus der Synthese ist das Fachklassendiagramm wie in der Abbildung 10 zu sehen ist, entstanden. Das Fachklassendiagramm zeigt die Klassen, die benötigt werden, um die aus dem Anwendungsfallmodel entstandenen Geschäftsanwendungsfälle abdecken zu können. Es entspricht deshalb nicht dem definitiven Klassendiagramm und wird im Detaildesign weiterentwickelt. class FW Class Diagram Menupunkt TouchScreen + Menupunkt: int Menupunkt_hinzufuegen() : void - Menu: string Menupunkt: string + + + - Anzeigen() : void Oeffnen() : voi d Schl iessen() : voi d + + + + Wartungsinformation + + + + Typ: string Url : string Anzeigen() : void Herunterladen() : void Oeffnen() : void Schliessen() : void + + + + Akti vieren() : voi d Deakti vieren() : void Oeffnen() : void Schli essen() : void - Anzei gen() : void Herunterladen() : void Oeffnen() : void Schliessen() : void + + + + Url: string + + + + - Timeout: int + + + + Anzeigen() : void Oeffnen() : voi d Schl iessen() : void Ti mer_starten() : void Anzei gen() : void Herunterladen() : void Oeffnen() : void Schliessen() : void + + + Auftragsinformationen + + + + Menupunkt: stri ng + + + + Aktivi eren() : void Deaktivieren() : void Oeffnen() : void Schliessen() : voi d FehlermeldungDialog Anzeigen() : void Bestaetigen() : void Oeffnen() : void Schli essen() : void AnmeldeDialog Anzeigen() : void Oeffnen() : void Schli essen() : void Serv ice - - ID: string Timeout: int + + + + + + + Abbrechen() : void Bestaetigen() : void Eingabefeld_fokusieren() : void ID_senden() : void ID_setzen() : voi d Oeffnen() : void Timer_starten() : voi d + + + + MeldungDialog + + + + Anzei gen() : void Bestaetigen() : voi d Oeffnen() : void Schliessen() : void Anzei gen() : void Bestaetigen() : voi d Oeffnen() : void Schliessen() : void HilfsmittelDialog + + Akti vieren() : voi d Daktivieren() : void Konfig Url: string + + + + Anzeigen() : void Herunterl aden() : void Oeffnen() : void Schli essen() : void Softw areUpdate + + + Symbol_anzeigen() : void Dialog BildschirmreinigerHilfe NaechsterAuftragsInfo Url: string + TastaturDialog Softw areVersionDialog Dokument Arbeitsbeschreibungshilfe Status: state <<use>> Fenster Menu - Akti vieren() : voi d Deakti vieren() : voi d Oeffnen() : void Schli essen() : void + + + + Aktivieren() : voi d Deaktivieren() : voi d Oeffnen() : void Schli essen() : void + + + Abfragen() : void Herunterladen() : void Installi eren() : void + + + + Anzeigen() : voi d Berechnen() : void Oeffnen() : voi d Schliessen() : voi d + + + Anzeigen() : void Oeffnen() : void Schliessen() : void - Pfad: stri ng + + + + + Anzei gen() : void NaechstesBildAnzei gen() : void Oeffnen() : void Schliessen() : void VorherigesBi ldAnzeigen() : void + + + + + Anzeigen() : void NaechstesBil dAnzeigen() : voi d Oeffnen() : voi d Schl iessen() : voi d VorherigesBil dAnzeigen() : void Sprache KonfigurationsUpdate Abfragen() : void Herunterladen() : void Installieren() : void Oparand2: fl oat Operand1: fl oat Resultat: float BildAssistentDialog KalenderDialog RechnerDialog - - Aktuell eSprache: string + + Aendern() : void Text_Anzeigen() : void Testbedingungshilfe Adapter - Konfigurationsdatei -Pfad: string + Laden() : bool Identifikationsnummer Auftrag AS BarcodeLeser + Ei nlesen() : void - Antwortdaten: string Sendedaten: string Status: state + + + Antwort_abfragen() : voi d Daten_senden() : void IstBereit() : void SemiE10Produktionsstand - Status: state Timeout: int + + + Aendern() : void Senden() : void Timer_starten() : void - AuftragID: string BrickID: string Daten: string IngotID: string OperatorID: string WerkstueckaufnehmerID: stri ng + Senden() : void - Nummer: stri ng + + + + + + + + Aktivieren() : void AuftragsNummer_pruefen() : void BrickNummer_pruefen() : void Deaktivieren() : void Fehlermeldung_anzeigen() : void IngotNummer_pruefen() : voi d OperatorNummer_pruefen() : voi d WerkstueckNummer_pruefen() : void Antw ort - Daten: string Url_Auftragsi nformati on: stri ng Url_NaechsterAuftraginformation: string Url_Wartungsi nformati on: stri ng Abbildung 10: Fachklassendiagramm Framework 008_Schlussbericht.doc 30/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 4.4.7 Schlussbericht Beschreibung Fachklassendiagramm Mit Hilfe der Synthese ist das Fachklassendiagramm in Abbildung 10 entstanden. Darin enthalten sind die folgenden Klassen: - Fenster/Menu/Menupunkt: Diese drei Klassen sind in dieser Form nicht mehr vorhanden im Detaildesign. Der Hauptgrund dafür ist die Problematik mit der WPF Technologie von Microsoft, wie in Kapitel 9.2.1 beschrieben ist. Es musste ein anderer Ansatz gefunden werden. - Alle Klassen, die von der Klasse Fenster abgeleitet sind, sollen die Inhalte der einzelnen Screens und Dialoge darstellen. - Die Klasse Adapter ist zuständig für das Laden der Adapter. - Die Klasse AS (neu IS) zusammen mit Auftrag und Antwort bilden den Teil für die Kommunikation mit dem Integration Service. - Die Klasse Identifikation ist zuständig für die Gültigkeitsüberprüfung der Identifikationsnummern. 008_Schlussbericht.doc 31/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 4.5 ReferenzReferenz- Anwendung „Brick Separierer“ 4.5.1 Anwendungsfallmodell Anwendungsfallmodell Die Abbildung 11 zeigt das Anwendungsfallmodell des Brick Separierers. uc BS Use Cases - Edit Brick Brick Separater - Edit Brick Barcode Reader Enter Order-ID Show Bricks Enter "PASS" or "FAIL" for the Brick User Measure Brick Finish Brick Finish task «invokes» Print Label Config File System Abbildung 11: Anwendungsfallmodell für den Brick Separierer Es ist zu sehen, dass die Auftrags-ID entweder per Barcode-Leser oder durch den Bediener getätigt werden kann. Anschliessend werden die Bricks angezeigt. Der Bediener kann einen Brick als „Pass“ oder „Fail“ markieren. Weiterere Anwendungsfälle sind das Messen, das Abschliessen eines Bricks und das Abschliessen eines Auftrages. Das System druckt anhand eines Templates die Etikette für den Brick aus. 4.5.2 Beschreibungen der Anwendungsfälle Aus den Tabellen im Anhang unter Kapitel 12.2.3 sind die Beschreibungen der Anwendungsfälle ersichtlich. 008_Schlussbericht.doc 32/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 4.5.3 Schlussbericht Ablauf Ablau f In der folgenden Abbildung 12 ist der Gesamtablauf (Workflow) des Brick Separierers aufgezeigt. dfd User Interface Model Start 4624 login (Operator-ID) 4640 Enter OrderID 4368 Show Brick-Layout Optical inspection (Show testing criteria) Pass Brick Mark Brick for Processing Fail Brick Measure Enter B1/B2/L from Brick Print Label Finish Brick Task 4640 Send BrickID to PMS Finish Task IsOrder finish? Abbildung 12: Ablauf Brick Separierer 008_Schlussbericht.doc 33/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Nach dem Starten der Anwendung wird zuerst der SemiE10 Status auf 4624 gesetzt. Optional kann sich der Bediener anhand seiner ID anmelden. Falls dies getan wird, wird der SemiE10 Status auf 4640 gesetzt. Nachdem die AuftragsID eingelesen und der SemiE10 Status auf 4368 gesetzt wird, werden die Bricks angezeigt und der zu bearbeitenden Brick wird markiert. Nun wird der Brick optisch inspiziert. Falls dieser in Ordnung („Pass“) ist, kann je nach Rezept eine Messung erfolgen oder es wird direkt eine Etikette gedruckt. Wird eine Messung durchgeführt, muss vor dem Ausdrucken der Etiketten die Länge, Breite und Höhe gemessen und ins Terminal eingetragen werden. Wird der Brick als „Fail“ markiert, wird direkt eine Etikette ausgedruckt. Anschliessend wird der Brick abgeschlossen, indem dies dem PMS mitgeteilt wird. Sobald der Brick fertig bearbeitet wurde, wird der nächste Brick verarbeitet. Ist kein weiterer Brick mehr zu bearbeiten, wird der Auftrag abgeschlossen und der SemiE10 Status auf 4640 wird gesetzt. Nun kann die nächsten Auftragsnummer eingegeben werden. Da die Implementierung des Brick Separierers primär die Entwicklung eines GUI’s war, wurde auf ein Detaildesign verzichtet. 008_Schlussbericht.doc 34/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 5 Prototyping 5.1 HardwareHardware - Adapter Für die Hardware-Adapter wurde je ein Prototyp für den Label-Drucker und den Barcode-Leser erstellt, um vor allem die Kommunikation mit den Geräten zu prüfen. Ebenfalls wichtige Prüfkriterien waren die Konfiguration mit .NET Mechanismen, das dynamische Laden der erstellten Adapter-Bibliotheken, sowie das Integrieren in eine Testanwendung. 5.2 Framework Für das Framework wurde nicht direkt ein Prototyp erstellt. Vielmehr wurde vor allem mit der neuen WPF Technologie experimentiert, um herauszufinden, was damit möglich ist. Aus diesen Erkenntnissen haben sich bereits die ersten Probleme herauskristallisiert, die auch im Kapitel 9.2.1 beschrieben sind. 5.3 ReferenzReferenz- Anwendung „Brick Separierer“ Da für das Erstellen der Terminal-Anwendung „Brick Separierer“ bereits auf das Framework zurückgegriffen wird und keine weitere komplexe und unsichere Funktionalität enthält, wurde entschieden, kein Prototyp zu erstellen. 008_Schlussbericht.doc 35/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 6 Design 6.1 HardwareHardware - Adapter Die Grundfunktionalität mit den Basisklassen und Interfaces ist ins Framework integriert. 6.1.1 LabelLabel -Drucker Im Anhang unter Kapitel 12.4.1.1 ist das Klassendiagramm für den Label-Drucker abgebildet. Es unterscheidet sich in der Architektur und Funktionalität nur minimal zum Fachklassendiagramm aus dem Grobdesign/Analyse im Kapitel 4.3.2.4. 6.1.2 BarcodeBarcode-Leser Im Anhang unter Kapitel 12.4.1.2 ist das Klassendiagramm für den Barcode-Leser abgebildet. Es unterscheidet sich in der Architektur und Funktionalität nur minimal zum Fachklassendiagramm aus dem Grobdesign/Analyse im Kapitel 4.3.2.4. 008_Schlussbericht.doc 36/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 6.2 Framework 6.2.1 Paketaufteilung Das Framework ist aufgeteilt in fünf Packages, bzw. Namespaces, die in unten beschrieben werden. cmp Packages Framew ork Adapter Communication Configuration GUI Abbildung 13: Paketaufteilung Framework 6.2.1.1 Hauptpaket Framework Im Hauptpaket sind alle globalen Aufgaben enthalten. Dazu gehören folgende Komponenten: - die Hauptklasse - die Verwaltung des Operators - die Speicherung der aktuellen Auftragsdaten - die Sprachumschaltung - Software Update Handling - SemiE10 Status - Allgemeine Hilfsklassen 6.2.1.2 Paket Adapter Adapt er Das Paket Adapter enthält die Interfaces, Enums und Klassen für das Ansprechen der Hardware-Adapter. Die Hardware-Adapter selbst bedienen sich ebenfalls bei diesem Paket. Einerseits bei der Entwicklung eines Adapters, andererseits zur Laufzeit. 008_Schlussbericht.doc 37/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 6.2.1.3 Schlussbericht Paket Communication Communication Im Paket Communication sind die Clients untergebracht, um mit dem PMS zu kommunizieren. Das sind: - ISClient: Der ISClient kommuniziert lokal mit dem Integration-Service, der als Schnittstelle zum PMS dient. - PMSClient: Dieser Client funktioniert als Web Browser und dient dem Download von Dokumenten und Rezepten ab dem PMS Web Server. 6.2.1.4 Paket Configuration In diesem Paket ist die gesamte Konfigurationsverwaltung enthalten. Sämtliche Konfigurationselemente sind in so genannten Sektionen untergebracht. Alle Sektionen in der Konfiguration sind in Sektionsgruppen eingeteilt. Für jede Sektionsgruppe existiert eine eigene Klasse. Dazu existiert auch für jede Sektion eine eigene Klasse. Der Zugriff auf die Konfigurationselemente erfolgt über den ConfigManager. Für die Speicherung von Benutzereinstellungen in der Registrierungsdatenbank dient der RegistryManager, der ebenfalls in diesem Paket untergebracht ist. 6.2.1.5 Paket GUI Das grösste Paket im Framework ist das Paket GUI. Es ist zusätzlich unterteilt in Untergruppen. Direkt im Paket eingeteilt sind folgende Teile: - Die Basisklassen für die Fenster, die virtuellen Tastatur Klassen und die Inhaltsklassen - Alle im Framework integrierten Inhaltsklassen wie z.B. Config, MessageDialog, Help - Die Styles für die darin enthaltenen Inhaltsklassen Folgende Untergruppen sind vorhanden: - Button: Hier in dieser Untergruppe sind die zwei Arten von Buttons implementiert sowie die dazugehörende Basisklasse. Zusätzlich sind auch Hilfsklassen für die Buttons und die Styles enthalten. - Dialog: Die Untergruppe Dialog enthält den Grundaufbau der Dialoge - InputField: Diese Untergruppe enthält die Basisklasse für ein Eingabefeld und zwei abgeleitete Klassen für die Eingabe eines numerischen Wertes und eines Textes. - Screen: Die Untergruppe Screen enthält den Grundaufbau der Screens - Utilities: Hier sind die geforderten Hilfsmittel implementiert. Das sind: Rechner, Kalender, Bild-Assistent, Testbedingungshilfe und Bildschirmreiniger. Zusätzlich beinhaltet es die Inhaltsklasse für die Utilities. 008_Schlussbericht.doc 38/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 6.2.2 Schlussbericht G UI Architektur Architektur Dem Aufbau des GUI liegt die WPF (Windows Presentation Foundation) zugrunde. 6.2.2.1 Fenster Das Framework bietet zwei Arten von Fenstern: Die Klasse Screen stellt das Vollbild Fenster zur Verfügung, in dem der Grundaufbau enthalten ist. In der Mitte ist der Platz für den Inhalt. Die Belegung der Schaltflächen auf den Seiten und am unteren Rand können beim entsprechenden Screen Eintrag in der Konfigurationsdatei definiert werden. Drei Arten sind möglich: ein weiterer Screen, ein Dialog oder eine Funktion. Die Klasse Dialog stellt das Dialog Fenster mit Rahmen und einer „ButtonBox“ am unteren Rand zur Verfügung. In der Mitte ist der Platz für den Inhalt. Die Art der „ButtonBox“ kann beim entsprechenden Dialog Eintrag in der Konfigurationsdatei definiert werden. Die Auswahl an Typen ist in Enum EDialogButtons definiert. 6.2.2.2 Inhaltsklassen Jeder in der Konfigurationsdatei definierter Screen oder Dialog wird mit einem Namen versehen. Dieser Name ist auch gleich der Name der Inhaltsklasse. Beim Erzeugen eines Screens oder Dialogs wird mit diesem Namen über die Reflection eine Instanz der Inhaltsklasse erzeugt und in das Fenster eingefügt. Dadurch ist es möglich eine Inhaltsklasse einem Screen, sowie einem Dialog zuzuordnen. Dies erfolgt mit der entsprechenden Definition in der Konfigurationsdatei. 008_Schlussbericht.doc 39/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 6.3 Referenz Refere nznz- Anwendung “Brick Separierer” Die Referenzanwendung besteht aus fünf Klassen, welche wie folgt beschrieben werden: - Klasse „Program“: Darin befindet sich die Main-Methode, die zum Starten der Anwendung dient. - Klasse „Top“: Zum Einen befindet sich darin die Logik für das GUI des Top-Bildes definiert und zum Anderen die Logik des Prozessablaufs des Brick Separierers. - Klasse „Measure“: Darin ist die Logik für das GUI des Measure-Bildes definiert. - Klasse „OrderID“: Darin ist die Logik für das GUI des OrderID-Bildes definiert. - Klasse „Brick“: Diese Klasse beinhaltet die Daten der Bricks, die aus dem Rezept ausgelesen werden, plus den CustomButton, der für die Anzeige im GUI gebraucht wird. Im Kapitel 12.4.3 ist das Klassendiagramm ersichtlich. Darin sind die fünf Klassen abgebildet. Die wichtigste Klasse ist die Top-Klasse, darin befindet sich die ChangeStep(ESteps)-Methode, worin die Abläufe des Bricks Separierers implementiert sind. 6.4 API Alle Klassen, Interfaces und Enums sind direkt im Quellcode beschrieben und in einer generierten API Dokumentation zusammengefasst. Für folgende Komponenten sind API Dokumentationen vorhanden: - Label-Drucker - Barcode-Leser - Framework Die API Dokumentation sind im HTML Format vorhanden und befinden sich im Unterverzeichnis doc des entsprechenden Visual Studio Projektes. 008_Schlussbericht.doc 40/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 7 Test Mit der gewählten Entwicklungstechnik XP (eXtreme Programming) wurden während der gesamten Entwicklungszeit in der Art “Vorbeugung” bereits viele “Fehler” behoben oder erst gar nicht gemacht. Trotzdem konnte nicht ganz auf Tests verzichtet werden. 7.1 HardwareHardware - Adapter 7.1.1 UnitUnit-Test Die Adapter beinhalten nur minimale Logik. Mit dem Einverständnis des Auftraggebers wurde deshalb vorerst auf Unit-Tests verzichtet. 7.1.2 Test Szenarien Im Anhang unter dem Kapitel 12.3.1 sind alle Test Szenarien aufgelistet, die zusätzlich als Kontrolle der Anwendungsfälle geprüft wurden. 7.1.3 TestTest-Anwendungen Um die Entwicklung der Adapter auf Lauffähigkeit und Funktionalität hin laufend testen zu können, wurde für die beiden Adapter jeweils eine kleine Test-Anwendung erstellt. Es wurde bei diesen zwei Test-Anwendungen darauf geachtet, dass die Adapter genau so bedient werden, wie sie auch innerhalb des Frameworks zum Einsatz kommen. Das heisst, der entsprechende Adapter wird dynamisch geladen und mittels der vorgesehenen Methode gestartet. 7.1.4 Abnahme Als Abschlusstest für die beiden Hardware-Adapter dienten das Dokument „Abnahme Der Hardwareadapter.doc“, der Design und der Quellcode. Die Abnahme erfolgte durch Arjan DJ Paijralbe. Getestet wurden folgende Punkte zur Grundstruktur der Hardware-Adapter: - Wurde C# verwendet - Programmierrichtlinien eingehalten - Ist das Umschreiben eines Adapters auf ein anderes Modul innerhalb von 1-1.5 Tagen möglich - Hat es Beschreibung und Beispiele zu den Adaptern - Hat der Adapter Init und Exit Methoden - Wie sieht der Fehlermechanismus aus - Kann der Adapter konfiguriert werden Getestet wurden folgende Punkte zum Adapter Barcode-Leser: - Wird die Grundstruktur verwendet 008_Schlussbericht.doc 41/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht - Sind die Programmierrichtlinien eingehalten worden - Wird eine Verbindung zur Schnittstelle automatisch aufgebaut - Erscheint ein Text beim Einlesen eines Barcodes - Ist eine andere COM Schnittstelle benutzbar Getestet wurden folgende Punkte zum Adapter Label-Drucker: - Wird die Grundstruktur verwendet - Sind die Programmierrichtlinien eingehalten worden - Wird eine Verbindung zur Schnittstelle automatisch aufgebaut - Werden die Daten ab Vorlage korrekt ausgegeben - Ist eine andere COM Schnittstelle benutzbar - Test mit drei verschiedenen Vorlagen (Ascii/UTF-8/UFT-16) 7.2 Framework 7.2.1 UnitUnit-Test Das Framework beinhaltet nur minimale Business-Logik und stellt vor allem GUI Komponenten zur Verfügung. Test eines GUI ist in der Regel äusserst aufwendig und nicht unbedingt „messbar“. Mit dem Einverständnis des Auftraggebers wurde deshalb auf Unit-Tests verzichtet. 7.2.2 Test Szenarien Im Anhang unter dem Kapitel 12.3.2 sind alle Test Szenarien aufgelistet, die zusätzlich als Kontrolle der Anwendungsfälle geprüft wurden. 7.2.3 TestTest-Anwendung Um die Entwicklung des Frameworks auf Lauffähigkeit und Funktionalität hin laufend testen zu können, wurde dafür eine Test-Anwendung erstellt. Es wurde darauf geachtet, dass diese Anwendung möglichst alle Anforderungen aus dem Pflichtenheft abdeckt. 7.2.4 Abnahme Die Abnahme erfolgte als Walkthrough und erfolgte durch Arjan DJ Paijralbe. Als Abnahmedokument diente das Pflichtenheft, das Design, der Quellcode und die API Dokumentation. Getestet wurden sämtliche, im Pflichtenheft aufgeführten spezifizierten Anforderungen. Getestet wurden auch Punkte, wie sie bei der Abnahme der Hardware-Adapter durchgeführt wurden. 008_Schlussbericht.doc 42/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 7.3 ReferenzReferenz- Anwendung “Brick Separierer” 7.3.1 UnitUnit-Test Die Referenz-Anwendung beinhaltet nur minimale Business-Logik und stellt vor allem GUI Komponenten zur Verfügung. Mit dem Einverständnis des Auftraggebers wurde deshalb auf Unit-Tests verzichtet. 7.3.2 Test Test eines GUI ist in der Regel äusserst aufwendig und nicht unbedingt „messbar“. Die Anwendung wurde einem Anwender mit Kenntnissen vom Prozess und einem, welcher den Prozess nicht kennt, zum Testen gegeben. Die daraus resultierenden Erkenntnisse wurden im GUI korrigiert. 7.3.3 Abnahme Die Abnahme erfolgte als Walkthrough und durch Arjan DJ Paijralbe erfolgte. Als Abnahmedokument diente das Pflichtenheft, das Design, der Quellcode und die API Dokumentation. Getestet wurden die im Pflichtenheft aufgeführten spezifizierten Anforderungen. 008_Schlussbericht.doc 43/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 7.4 Integrationstest Der Integrationstest bestand darin, die erstellte Software auf der dafür vorgesehenen Hardware auszuführen. Für die Kommunikation mit dem IS (Integration Service) musste zu Testzwecken zusätzlich ein einfacher IS-Simulator implementiert werden, da der dafür vorgesehene IS bis zum Ende der Diplomarbeit nicht zur Verfügung stand. Für die Kommunikation mit dem PMS Web-Server musste zu Testzwecken auf einen anderen Web-Server zurückgegriffen werden, da der dafür vorgesehene Web-Server aus der PMS Testumgebung bis zum Ende der Diplomarbeit nicht zur Verfügung stand. Auf den Web-Server wurden folgende Dokumente hochgeladen: - Druck-Vorlage für den Hardware-Adapter Label-Drucker - HTML Dokumente für: Auftragsinformationen, Informationen zu nächsten Aufträgen, Wartungsinformationen - Rezept für den Brick Separierer 7.4.1 Hardware Folgende Hardware stand für den Integrationstest zur Verfügung: - Siemens Panel PC 477 B, ohne Touchscreen, mit Folientastatur, mit 1 COM Schnittstelle - Winmate T-series Panel PC, mit Touchscreen, mit 3 COM Schnittstellen - Barcode-Leser Powerscan D8330 von Datalogic Der Test mit einem Label-Drucker konnte nicht durchgeführt werden, da ein solches Gerät nicht zur Verfügung stand. Die Ausgabe des Label-Drucker Adapters wurde deshalb zu Testzwecken auf einem der Entwicklungs-Laptops in der Hyper-Terminal Anwendung angezeigt. Das Terminal wurde dazu mittels eines RS232 Kabel mit dem Laptop verbunden. Zusätzlich wurden folgende Komponenten eingesetzt: - USB zu RS232 Konverter (der Siemens Panel PC hat nur 1 COM Schnittstelle) - Normale Tastatur (für den Winmate Panel PC) 7.4.2 Software Auf den beiden verfügbaren Panel PC’s ist das Betriebssystem Windows XP Embedded installiert. Um die Terminal-Anwendung ausführen zu können, musste vorgängig das Microsoft .NET Framework Version 3.5 installiert werden. 008_Schlussbericht.doc 44/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 7.4.3 Schlussbericht Vorgehen Der Integrationstest wurde mit den folgenden Anwendungen durchgeführt: - Testanwendung TestFrameworkApp - Referenz-Anwendung „Brick Separierer“ Dabei wurden sämtliche in den Anwendungen integrierten Bestandteile aufgerufen und auf deren Funktionalität getestet, inklusive der Kommunikation mit der angeschlossenen Hardware, dem IS (Integration Service) und dem Web-Server. 008_Schlussbericht.doc 45/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 8 Resultate 8.1 HardwareHardware - Adapter 8.1.1 Abnahme Die Abnahme der beiden Hardware-Adapter ist gemäss Kapitel 7.1.4 durchgeführt worden und hat zu folgendem Ergebnis geführt: Die Abnahmepunkte haben verschiedene Wertungen. Dabei ist darauf geachtet worden, dass die Punkte mit der Wertung „Zwingend“ unbedingt erfolgreich sein müssen. Die in Kapitel 7.1.4 aufgeführten Punkte sind getestet und der Abnahmetest ist insgesamt als erfolgreich bewertet worden. 8.1.2 LabelLabel -Drucker Der in der Diplomarbeit vorgesehene Drucker konnte nicht rechtzeitig zur Verfügung gestellt werden, deshalb wurde beschlossen, dass der Drucker als solches von der Diplomarbeit gestrichen wird. Die Funktion des HardwareAdapters wurde getestet, indem die Daten an einem anderen Computer am Hyperterminal ausgegeben wurden. 008_Schlussbericht.doc 46/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 8.2 Framework Anhand der folgenden Abbildung wird gezeigt, wie die Umsetzung des GUI’s vom Framework gestaltet wurde: Titelleiste Registerleiste Bildwechsel Bildwechsel Frei wählbarer Inhalt Buttonleiste Abbildung 14: GUI Grundelemente Framework Das Framework besteht aus den folgenden Teilen, welche den frei wählbaren Inhalt einer Anwendung umrahmen und mit der benötigen Funktionalitäten versieht: • Die Titelleiste, welche das Firmenlogo, den Benutzername, die Benutzer-ID, sowie das Datum und die Uhrzeit beinhaltet. • Die Registerleiste beinhaltet Funktionen, wie das Zurückkehren auf das Hauptbild. • Die Leisten für den Bildwechsel sind dazu da, um in einer Applikation Bildwechsel zu gewährleisten. Standardmässig sind im Framework bereits folgende Bildwechsel integriert: o Hilfsmittel, wie ein Rechner, ein Kalender, ein Bilderassistent, eine Anzeige für Testbedingungen und einem Bildschirmreiniger. o Konfiguration, worin ein Software-Update oder eine Sprachumschaltung getätigt werden kann. o Arbeitshilfe, worin anhand eines Dokumentes, das vom PMS zur Verfügung gestellt wird, beschrieben wird, wie die Arbeit erledigt werden soll. 008_Schlussbericht.doc 47/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 • Schlussbericht o Auftrag, worin anhand eines Dokumentes, das vom PMS zur Verfügung gestellt wird, Daten zum aktuellen Auftrag angezeigt werden können. o Nächster Auftrag, worin anhand eines Dokumentes, das vom PMS zur Verfügung gestellt wird, Daten zum nächsten Auftrag angezeigt werden können. o Wartung, wo anhand eines Dokumentes, das vom PMS zur Verfügung gestellt wird, Wartungsdaten angezeigt werden können. o SemiE10, wo der SemiE10 Status übersteuert werden kann. In der Buttonleiste befinden sich die Buttons, die als Funktionstasten frei belegt werden können. Das Framework bietet an, dass in der Konfigurations-Datei eingestellt werden kann, ob ein Touch-Screen oder eine Tastatur mit Maus vorhanden ist. Sobald ein Touch-Screen konfiguriert wird, erscheint neben Eingabefeldern ein Icon mit einer Tastatur darauf. Drückt man auf diese Taste erscheint ein virtuelles Numpad oder eine Tastatur, jenachdem, ob es sich um eine numerische oder alphanumerische Eingabe handelt. Die folgende Abbildung zeigt ein Bespiel für das virtuelle Numpad: Abbildung 15: Virtuelle Tastatur (Numpad) 8.2.1 Software Update Im Einverständnis mit dem Auftraggeber wurde auf die Trennung der Updates von Applikation und Konfiguration verzichtet. Ein Software Update beinhaltet nun beides, die Applikation mit all den benötigten Bibliotheken, Zusatztabellen und die Konfigurationsdatei. Die gesamte Funktionalität für das Software Update der Anwendung wurde in eine externe Konsolenanwendung, den so genannten Updater ausgelagert. 8.2.2 Abnahme Die Abnahme des Frameworks ist gemäss Kapitel 7.2.4 durchgeführt worden und hat zu folgendem Ergebnis geführt: Nicht alle Punkte konnten direkt getestet werden. Diese fehlenden Punkte werden mit dem Abnahmetest der Referenz-Anwendung behandelt. 008_Schlussbericht.doc 48/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Die in Kapitel 7.2.4 aufgeführten Punkte sind getestet worden und der Abnahmetest ist insgesamt als erfolgreich bewertet. 8.3 ReferenzReferenz- Anwendung “Brick Separierer” Für die Referenzanwendung „Brick Separierer“ muss, wie in der folgenden Abbildung gezeigt, eine Auftrags-ID eingegeben werden. Ist diese korrekt, wird vom PMS ein Rezept heruntergeladen, worin die benötigten Informationen abgelegt sind. Abbildung 16: Bild Eingabe Auftrags-ID 008_Schlussbericht.doc 49/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Anhand dieses Rezeptes werden, wie in der nachfolgenden Abbildung gezeigt, die Bricks angezeigt und markiert. Die Beschriftung A1,A2,…,B1,B2,…. wird vom Rezept vorgegeben. Die echten Bricks kommen mit derselben Beschriftung vom vorherigen Arbeitsplatz zu dieser Station. Mittels der Buttons „Pass“ und „Fail“ können die Bricks als gut oder schlecht befunden werden. Die Farben der Bricks zeigen den Zustand des Bricks an und sind wie folgt definiert: • Grau: Der Brick ist nicht bearbeitet • Gelb: Markiert den aktuell zu bearbeitende Brick • Grün: Pass • Rot: Fail Abbildung 17: Bild Übersicht Bricks 008_Schlussbericht.doc 50/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Muss der Brick anhand des Rezeptes vermessen werden, wird automatisch das folgende Bild angezeigt: Abbildung 18: Bild Messung eines Bricks In diesem Bild kann der Bediener die gemessenen Werte eintragen und mit dem „Finish“-Button den aktuellen Brick abschliessen. 8.3.1 Abnahme Die Abnahme erfolgte als Walkthrough und erfolgte durch Arjan DJ Paijralbe. Getestet wurden sämtliche, im Pflichtenheft aufgeführten spezifizierten Anforderungen. Getestet wurden auch Punkte, wie sie bei der Abnahme der Hardware-Adapter durchgeführt wurden. Als Abnahmedokument diente das Pflichtenheft, das Design, der Quellcode und die API Dokumentation. 8.4 Dokumentation 8.4.1 “Entwicklerhandbuch” “Entwicklerhan dbuch” Da das Framework bereits zu einer nicht zu unterschätzenden Grösse herangewachsen ist, ist es unerlässlich, eine Dokumentation für das Erstellen von weiteren Terminal-Anwendungen zu kreieren. 008_Schlussbericht.doc 51/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Mit dem Ende der Diplomarbeit ist noch lange nicht Schluss mit dem Gesamtprojekt PMS und den diversen Teilprojekten wie das TerminalPMS. Von daher macht es keinen Sinn, bereits jetzt eine solche Dokumentation zu erstellen. 8.4.2 API Die API-Dokumentation ist für folgende Quellcode-Projekte vollumfänglich vorhanden: - Hardware-Adapter Barcode-Leser - Hardware-Adapter Label-Drucker - Framework Die Dokumentierung des Quellcodes ist direkt im Quellcode integriert und ist mit dem Standardmechanismus des Visual Studios formatiert. Zur Generierung der API Dokumentation wurde die Software Doxygen verwendet. 8.5 Integration 8.5.1 Integrationstest Die in Kapitel 7.4 aufgeführten Punkte wurden getestet und der Integrationstest als erfolgreich bewertet. 8.6 Projektplan Der Projektplan (siehe Anhang, Kapitel 12.1) konnte mit leichter Verspätung eingehalten werden. Die Verspätungen resultierten daraus, dass zu Beginn und während der Arbeit notwendige Informationen nicht oder nur schwer eingeholt werden konnten. Hinzu kam, dass keine Anbindung an den IS oder ans PMS erstellt werden konnte, da diese bis anhin nicht funktionsfähig waren, was dazu führte, dass selber ein Dummy-IS erstellt wurde. Leider konnte der Label-Drucker nicht rechtzeitig beschafft werden, was die Abnahme verzögerte. 008_Schlussbericht.doc 52/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 9 Diskussion Diskussion Insgesamt verlief das Projekt gut. Wir konnten alle Muss-Anforderungen erfüllen. Aufgrund der sehr guten Programmierkenntnisse von Herrn Beat Bösiger konnten grössere Schwierigkeiten vermieden werden. 9.1 Projektablauf Im gesamten Ablauf des Projektes wurde darauf geachtet, möglichst genau nach Vorgabe aus dem Unterricht des MAS-IT Studiums vorzugehen. Als absolutes Muss zu bewerten, ist das Pflichtenheft mit den genau spezifizierten Anforderungen des Produktes. Das Pflichtenheft war Gold wert und hat uns eine Menge Ärger erspart. Es hat uns als Absicherung bestens gedient. Ebenfalls absolut sinnvoll ist ein zeitlicher Projektplan. Dadurch ist stets ersichtlich, wo man gerade steht. Durch die oben genannten Punkte ist es uns gelungen, ohne grössere Schwierigkeiten den Termin halten zu können und die Arbeit fertig abliefern zu können. Die erlernte und angewendete Vorgehensweise hat uns gezeigt, dass es durchaus sinnvoll ist, sich gut zu organisieren und möglichst nach einem bewährten Schema vorzugehen. 008_Schlussbericht.doc 53/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 9.2 Framework Framework 9.2.1 WPF Mit der gewählten WPF-Technologie von Microsoft traten diverse Schwierigkeiten auf. Da dies eine relativ neue Technologie ist, traten mehrmals Schwierigkeiten auf, resp. Kinderkrankheiten kamen zum Vorschein. Einige Probleme konnten bereinigt werden, indem das Service Pack 1 für’s Visual Studio 2008 installiert wurde. Andere Probleme mussten technisch umgangen werden. Für ein nächstes Projekt würden wir nicht mehr WPF für das GUI einsetzen. Die Möglichkeiten schränken zu sehr ein. Vor allem, was objekt-orientierte Programmierung angeht. Hier zwei Beispiele: - Eine Klasse (XAML) mit WPF Technologie kann nicht von einer abstrakten Klasse abgeleitet werden. Es wurden zwar Basisklassen erstellt, allerdings konnten diese Klassen nicht als abstract definiert werden. - Eine Klasse (XAML) mit WPF Technologie benötigt zwingend einen parameterlosen Konstruktor. Da unsere Klassen zwingend Parameter braucht, wurden die Klassen mit zwei Konstruktoren ausgestattet, wovon wir nur einen benutzen. 9.2.2 Spezifikation Die Diplomarbeit wurde erschwert, da beim Auftraggeber das Projekt nicht in allen Punkten klar definiert war und unterschiedliche Vorstellungen vorhanden waren. Das bewirkte zusätzlichen Aufwand im Projektmanagement. Ausserdem konnte der Auftraggeber in einigen Punkten sehr lange oder sogar bis zum Ende gar keine genauen Informationen liefern. 9.2.3 Integration Service (IS) Da der IS nicht rechtzeitig zur Verfügung gestellt werden konnte, mussten wir einen eigenen, einfachen IS entwickeln, um unsere Anwendung testen zu können. 9.2.4 SoftwareSoftware-Update Zu diskutieren gab es auch bei den Software Update Funktionen. Im Pflichtenheft sind die Updates für Applikation und Konfiguration getrennt aufgeführt. Allerdings ist diese Trennung aufgrund des Lastenhefts entstanden, wobei mit der Konfiguration nicht unbedingt die Konfigurationsdatei der Terminal-Anwendung gemeint ist. Von daher machte es für uns nicht viel Sinn, das Update von Applikation und Konfiguration zu trennen. 9.3 ReferenzReferenz- Anwendung “Brick Separierer” Da der Ablauf des Arbeitsplatzes „Brick Separierer“ nicht fertig definiert ist, wurde ein provisorischer Prozessablauf definiert und umgesetzt. Grösstwahrscheinlich ist dies nicht der letzte Stand. Die Umsetzung der ReferenzAnwendung hat sich jedoch sehr gut als Test für das Framework geeignet, was uns auf Fehler aufmerksam machte. 008_Schlussbericht.doc 54/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 10 Ausblick In diesem Kapitel werden verschiedene Verbesserungsvorschläge beschrieben. Ebenfalls sind die anstehenden Arbeiten aufgeführt, die nach der Diplomarbeit erledigt werden sollten. 10.1 Dokumentation Um dem Entwickler einer Terminal-Anwendung die Arbeit zu erleichtern, ist es notwendig, ein Benutzerhandbuch zu verfassen. Die diversen Beispiele und die API Dokumentation ist zwar in vollem Umfang vorhanden, reicht aber nicht aus. 10.2 HardwareHardware - Adapter Zu Beginn war der Plan, die Hardware-Adapter nicht direkt in die Terminal-Anwendung (Framework) einzubinden, sondern Zusatzmodule für den IS (Integrations-Service) zu erstellen. Die Kommunikation sollte dann stets über den IS laufen. Allerdings hatten wir zu dieser Variante unsere Bedenken ausgesprochen, da überhaupt nicht gewährleistet war, ob der IS zum benötigten Zeitpunkt verfügbar sein wird. Im Einverständnis mit dem Auftraggeber haben wir uns auf die direkte Anbindung der Hardware-Adapter im Framework geeinigt. Sobald der IS in vollem Umfang verfügbar ist, sollten aber von den Hardware-Adaptern neue Module für den IS erstellt werden. Gegebenenfalls muss das Framework an die neue Situation angepasst werden, sofern die angeschlossene Hardware über den IS verfügbar sein soll. 10.2.1 Geräte mit EinEin -/Ausgabe Das Package Adapter im Framework unterstützt nur Eingabe- oder Ausgabegeräte. Geräte mit bidirektionaler Kommunikation werden zurzeit nicht unterstützt. Falls benötigt, muss eine weitere Klasse mit dem Inhalt der beiden Data Klassen (ADataInput, ADataOutput) erstellt werden, um Geräte mit bidirektionaler Kommunikation zu unterstützen. 10.2.2 LabelLabel -Drucker Da der Laber-Drucker nicht rechtzeitig zur Verfügung gestellt werden konnte, muss der Hardware-Adapter für den Drucker angepasst werden. 10.2.3 BarcodeBarcode-Leser Der Hardware-Adapter für den Barcode-Leser konnte ohne offene Punkte realisiert werden. 008_Schlussbericht.doc 55/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 10.3 Framework Aufgrund des fehlenden IS wurden die benötigten Funktionen über einen Dummy-IS realisiert. Diese Schnittstelle ist beim Wechsel zum endgültigen IS anzupassen. 10.4 ReferenzReferenz- Anwendung “Brick Separierer” Da der Ablauf zum jetzigen Zeitpunkt nicht zu endgültig definiert ist, werden grösstwahrscheinlich Änderungen vorgenommen werden müssen. 008_Schlussbericht.doc 56/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 11 Verzeichnisse 11.1 Abbildungsverzeichnis Abbildung 1: Gesamtprozessablauf ............................................................................................................................. 7 Abbildung 2: Mindmap Gesamtfunktionalität ............................................................................................................. 13 Abbildung 3: Komponentenübersicht ........................................................................................................................ 14 Abbildung 4: Anwendungsfallmodell für den Label-Drucker ....................................................................................... 15 Abbildung 5: Fachklassendiagramm Label-Drucker ................................................................................................... 17 Abbildung 6: Anwendungsfallmodell für den Barcode-Leser ...................................................................................... 19 Abbildung 7: Fachklassendiagramm Barcode-Leser.................................................................................................. 21 Abbildung 8: Anwendungsfallmodell der Basisfunktionalität im Framework ................................................................ 23 Abbildung 9: Anwendungsfallmodell der Operatorfunktionalität im Framework........................................................... 25 Abbildung 10: Fachklassendiagramm Framework ..................................................................................................... 30 Abbildung 11: Anwendungsfallmodell für den Brick Separierer .................................................................................. 32 Abbildung 12: Ablauf Brick Separierer ....................................................................................................................... 33 Abbildung 13: Paketaufteilung Framework ................................................................................................................ 37 Abbildung 14: GUI Grundelemente Framework ......................................................................................................... 47 Abbildung 15: Virtuelle Tastatur (Numpad)................................................................................................................. 48 Abbildung 16: Bild Eingabe Auftrags-ID..................................................................................................................... 49 Abbildung 17: Bild Übersicht Bricks .......................................................................................................................... 50 Abbildung 18: Bild Messung eines Bricks .................................................................................................................. 51 Abbildung 19: Klassendiagramm Label Drucker ........................................................................................................ 99 Abbildung 20: Klassendiagramm Barcode-Leser ..................................................................................................... 100 Abbildung 21: Klassendiagramm Framework, Teil 1 ................................................................................................ 101 Abbildung 22: Klassendiagramm Framework, Teil 2 ................................................................................................ 102 Abbildung 23: Klassendiagramm Adapter................................................................................................................ 103 Abbildung 24: Klassendiagramm Communication ................................................................................................... 104 Abbildung 25: Klassendiagramm Configuration, Teil 1 ............................................................................................. 105 Abbildung 26: Klassendiagramm Configuration, Teil 2 ............................................................................................. 106 Abbildung 27: Klassendiagramm Configuration, Teil 3 ............................................................................................. 107 Abbildung 28: Klassendiagramm GUI ...................................................................................................................... 108 Abbildung 29: Klassendiagramm Referenz-Anwendung „Brick Separierer“ .............................................................. 109 008_Schlussbericht.doc 57/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 11.2 Tabellenverzeichnis Tabelle 1: Dokumentversionen .................................................................................................................................... 6 Tabelle 2: Projektspezifisches Glossar ......................................................................................................................... 8 Tabelle 3: Anforderungsspezifisches Glossar............................................................................................................... 9 Tabelle 4: Projektspezifische Referenzen ................................................................................................................... 10 Tabelle 5: Eingesetzte Werkzeuge ............................................................................................................................. 12 Tabelle 6: Synthese Label-Drucker ............................................................................................................................ 16 Tabelle 7: Synthese Barcode-Leser ........................................................................................................................... 20 Tabelle 8: Synthese Framework................................................................................................................................. 26 Tabelle 9: Anwendungsfall-Beschreibung Label-Drucker konfigurieren ...................................................................... 62 Tabelle 10: Anwendungsfall-Beschreibung Vorlage herunterladen ............................................................................. 62 Tabelle 11: Anwendungsfall-Beschreibung Vorlage speichern ................................................................................... 63 Tabelle 12: Anwendungsfall-Beschreibung Vorlageninhalt interpretieren .................................................................... 63 Tabelle 13: Anwendungsfall-Beschreibung Label drucken ......................................................................................... 64 Tabelle 14: Anwendungsfall-Beschreibung Barcode-Leser konfigurieren ................................................................... 65 Tabelle 15: Anwendungsfall-Beschreibung Barcode lesen ......................................................................................... 65 Tabelle 16: Anwendungsfall-Beschreibung HW-Adapter hinzufügen .......................................................................... 66 Tabelle 17: Anwendungsfall-Beschreibung Menü bearbeiten ..................................................................................... 66 Tabelle 18: Anwendungsfall-Beschreibung Fensterinhalt bearbeiten .......................................................................... 67 Tabelle 19: Anwendungsfall-Beschreibung Fenster hinzufügen .................................................................................. 67 Tabelle 20: Anwendungsfall-Beschreibung Sprache hinzufügen ................................................................................ 68 Tabelle 21: Anwendungsfall-Beschreibung Bilder hinzufügen .................................................................................... 68 Tabelle 22: Anwendungsfall-Beschreibung Barcodetyp aktivieren oder deaktivieren .................................................. 69 Tabelle 23: Anwendungsfall-Beschreibung Fenster aktivieren oder deaktivieren......................................................... 69 Tabelle 24: Anwendungsfall-Beschreibung Hilfsmittel aktivieren oder deaktivieren ..................................................... 70 Tabelle 25: Anwendungsfall-Beschreibung URL speichern ........................................................................................ 70 Tabelle 26: Anwendungsfall-Beschreibung Text-/XML-/HTML-Dokumente herunterladen ......................................... 71 Tabelle 27: Anwendungsfall-Beschreibung Text-/XML-/HTML-Dokumente anzeigen ................................................. 71 Tabelle 28: Anwendungsfall-Beschreibung Auftrags-ID senden ................................................................................. 71 Tabelle 29: Anwendungsfall-Beschreibung ID-Antwort speichern .............................................................................. 72 Tabelle 30: Anwendungsfall-Beschreibung Barcode einlesen .................................................................................... 72 Tabelle 31: Anwendungsfall-Beschreibung Barcode aufsplitten ................................................................................. 73 Tabelle 32: Anwendungsfall-Beschreibung Fehler anzeigen ....................................................................................... 73 Tabelle 33: Anwendungsfall-Beschreibung Produktionsstand speichern .................................................................... 74 Tabelle 34: Anwendungsfall-Beschreibung HW-Adapter laden .................................................................................. 74 Tabelle 35: Anwendungsfall-Beschreibung Sprache ändern ...................................................................................... 75 Tabelle 36: Anwendungsfall-Beschreibung Sprachabhängige Bilder anzeigen ........................................................... 75 Tabelle 37: Anwendungsfall-Beschreibung Operator ID eingeben .............................................................................. 76 Tabelle 38: Anwendungsfall-Beschreibung Operator-ID abbrechen ........................................................................... 76 Tabelle 39: Anwendungsfall-Beschreibung Fenster öffnen ......................................................................................... 77 Tabelle 40: Anwendungsfall-Beschreibung Fenster schliessen................................................................................... 78 Tabelle 41: Anwendungsfall-Beschreibung Berechnung eingeben ............................................................................. 79 Tabelle 42: Anwendungsfall-Beschreibung Software Update installieren .................................................................... 79 Tabelle 43: Anwendungsfall-Beschreibung Konfigurations Update installieren ........................................................... 80 Tabelle 44: Anwendungsfall-Beschreibung Produktionsstand ändern ........................................................................ 80 Tabelle 45: Anwendungsfall-Beschreibung Auftrags-ID eingeben .............................................................................. 81 Tabelle 46: Anwendungsfall-Beschreibung Bricks anzeigen ....................................................................................... 81 Tabelle 47: Anwendungsfall-Beschreibung Pass/Fail Eingabe .................................................................................... 82 Tabelle 48: Anwendungsfall-Beschreibung Bricks messen ........................................................................................ 82 008_Schlussbericht.doc 58/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Tabelle 49: Anwendungsfall-Beschreibung Brick abschliessen .................................................................................. 83 Tabelle 50: Anwendungsfall-Beschreibung Auftrag abschliessen ............................................................................... 83 Tabelle 51: Anwendungsfall-Beschreibung Etikette ausdrucken ................................................................................ 83 Tabelle 52: Test Szenarien Label Drucker konfigurieren ............................................................................................. 84 Tabelle 53: Test Szenarien Vorlage herunterladen ..................................................................................................... 85 Tabelle 54: Test Szenarien Vorlage speichern............................................................................................................ 85 Tabelle 55: Test Szenarien Vorlageninhalt interpretieren ............................................................................................ 86 Tabelle 56: Test Szenarien Label drucken ................................................................................................................. 86 Tabelle 57: Test Szenarien Barcode-Leser konfigurieren ........................................................................................... 87 Tabelle 58: Test Szenarien Barcode lesen ................................................................................................................. 87 Tabelle 59: Test Szenarien HW-Adapter hinzufügen .................................................................................................. 88 Tabelle 60: Test Szenarien Menü bearbeiten ............................................................................................................. 88 Tabelle 61: Test Szenarien Fensterinhalt erstellen ...................................................................................................... 89 Tabelle 62: Test Szenarien Fenster hinzufügen .......................................................................................................... 89 Tabelle 63: Test Szenarien Sprache hinzufügen......................................................................................................... 89 Tabelle 64: Test Szenarien Bilder hinzufügen............................................................................................................. 89 Tabelle 65: Test Szenarien Barcode de-aktivieren ..................................................................................................... 90 Tabelle 66: Test Szenarien Fenster de-aktivieren ....................................................................................................... 90 Tabelle 67: Test Szenarien Hilfsmittel de-aktivieren.................................................................................................... 90 Tabelle 68: Test Szenarien Url speichern ................................................................................................................... 90 Tabelle 69: TestSzenarien Dokumente herunterladen ................................................................................................ 90 Tabelle 70: Test Szenarien Dokumente anzeigen....................................................................................................... 91 Tabelle 71: Test Szenarien Auftrags-ID senden ......................................................................................................... 91 Tabelle 72: Test Szenarien ID-Antwort speichern....................................................................................................... 91 Tabelle 73: Test Szenarien Barcode einlesen............................................................................................................. 92 Tabelle 74: Test Szenarien Barcode aufsplitten ......................................................................................................... 92 Tabelle 75: Test Szenarien Status speichern ............................................................................................................. 93 Tabelle 76: Test Szenarien HW-Adapter laden........................................................................................................... 93 Tabelle 77: Test Szenarien Sprache ändern............................................................................................................... 94 Tabelle 78: Test Szenarien Sprachabhängige Bilder anzeigen ................................................................................... 94 Tabelle 79: Test Szenarien Operator-ID eingeben...................................................................................................... 94 Tabelle 80: Test Szenarien Operator-ID abbrechen ................................................................................................... 95 Tabelle 81: Test Szenarien Fenster öffnen ................................................................................................................. 95 Tabelle 82: Test Szenarien Fenster schliessen ........................................................................................................... 97 Tabelle 83: Test Szenarien Berechnung eingeben ..................................................................................................... 97 Tabelle 84: Test Szenarien SW-Update installieren .................................................................................................... 97 Tabelle 85: Test Szenarien Konfig-Update installieren................................................................................................ 98 Tabelle 86: Test Szenarien Produktionsstand ändern ................................................................................................ 98 008_Schlussbericht.doc 59/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 12 Anhang 12.1 Projektplan 008_Schlussbericht.doc 60/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 008_Schlussbericht.doc Schlussbericht 61/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 12.2 Anwendungsfall Anwendungsfallungsfall- Beschreibungen 12.2.1 HardwareHardware-Adapter 12.2.1.1 Label Drucker Tabelle 9: Anwendungsfall-Beschreibung Label-Drucker konfigurieren Eigenschaft Name Beschreibung Label-Drucker konfigurieren Kurzbeschreibung Auslöser Die Hardware-Schnittstelle zum Label-Drucker mit den Parametern aus der entsprechenden Konfigurationsdatei konfigurieren und den Label-Drucker mit den Parametern aus der entsprechenden Konfigurationsdatei konfigurieren Start Anwendung Ergebnis Akteur Hardware-Schnittstelle zum Label-Drucker richtig konfiguriert und LabelDrucker richtig konfiguriert System Vorbedingungen Nachbedingungen Label-Drucker angeschlossen Konfigurationsdateien vorhanden Label-Drucker einsatzbereit Ablauf Variationen Ausnahmen, Fehler 1. Konfigurationsdatei Schnittstelle öffnen 2. Parameter lesen 3. Hardware-Schnittstelle konfigurieren 4. Konfigurationsdatei schliessen 5. Konfigurationsdatei Drucker öffnen 6. Parameter lesen 7. Drucker konfigurieren 8. Konfigurationsdatei schliessen 9. Konfigurationserfolg weiterleiten Schnittstelle besetzt Falsche Parameterwerte in der Konfigurationsdatei Konfigurationsdatei nicht vorhanden Tabelle 10: Anwendungsfall-Beschreibung Vorlage herunterladen Eigenschaft Name Kurzbeschreibung Auslöser Ergebnis Akteur Vorbedingungen Nachbedingungen Ablauf Variationen Ausnahmen, Fehler 008_Schlussbericht.doc Beschreibung Vorlage herunterladen Drucklayout-Vorlage vom PMS herunterladen Neuer Auftrag eröffnet Drucklayout-Vorlage gespeichert System URL vorhanden URL nicht vorhanden URL ungültig PMS Web-Server nicht erreichbar 62/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Tabelle 11: Anwendungsfall-Beschreibung Vorlage speichern Eigenschaft Name Kurzbeschreibung Auslöser Ergebnis Akteur Vorbedingungen Nachbedingungen Ablauf Variationen Ausnahmen, Fehler Beschreibung Vorlage speichern Vom PMS heruntergeladene Drucklayout-Vorlage lokal speichern Drucklayout-Vorlage heruntergeladen Drucklayout-Vorlage lokal gespeichert System Drucklayout-Vorlage heruntergeladen Datei gespeichert Datei am richtigen Ort (Ordner) und mit richtigem Dateinamen versehen Keine Schreibrechte, um Datei lokal zu speichern Datei vorhanden Tabelle 12: Anwendungsfall-Beschreibung Vorlageninhalt interpretieren Eigenschaft Eigenschaft Name Beschreibung Vorlageninhalt interpretieren Kurzbeschreibung Auslöser Ergebnis Akteur Vorbedingungen Nachbedingungen Den Inhalt der Vorlage interpretieren, das heisst, die Escape-Sequenzen mit gültigen Werten ersetzen und einen Druckinhalt erzeugen Label drucken Druckinhalt vorbereitet System Vorlagendatei lokal vorhanden Druckinhalt im Arbeitspeicher vorhanden Ablauf Variationen Ausnahmen, Fehler 008_Schlussbericht.doc 1. Drucklayout-Vorlagendatei öffnen 2. Druckinhalt im Arbeitsspeicher vorbereiten 3. Inhalt der Datei lesen und parsen 4. Escape-Sequenzen interpretieren und durch gültige Werte ersetzen 5. Vorlagendatei schliessen Vorlagendatei nicht vorhanden Keine Leserechte zum Lesen der Vorlagendatei Fehler in Vorlagendatei 63/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Tabelle 13: Anwendungsfall-Beschreibung Label drucken Eigenschaft Name Beschreibung Label drucken Kurzbeschreibung Auslöser Ergebnis Akteur Vorbedingungen Label ausdrucken, indem der erzeugte Druckinhalt an den Drucker gesendet wird Druckinhalt vorbereitet Label ausgedruckt System Druckinhalt vorbereitet Nachbedingungen Keine Fehlermeldung vom Drucker Label vom Drucker entnommen Ablauf Variationen 1. Hardware-Schnittstelle öffnen 2. Druckinhalt an Drucker senden 3. Druckende vom Drucker abwarten 4. Hardware-Schnittstelle schliessen Bei Fehler wird kein Etikett ausgedruckt Ausnahmen, Fehler Hardware-Schnittstelle kann nicht geöffnet werden Drucker nicht bereit Drucker ist im Fehlerzustand (z.B. keine Etiketten, andere Fehler) Fehler während des Druckvorgangs 008_Schlussbericht.doc 64/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 12.2.1.2 BarcodeBarcode -Leser Tabelle 14: Anwendungsfall-Beschreibung Barcode-Leser konfigurieren Eigenschaft Name Beschreibung Barcode-Leser konfigurieren Kurzbeschreibung Auslöser Ergebnis Akteur Die Hardware-Schnittstelle zum Barcode-Leser mit den Parametern aus der entsprechenden Konfigurationsdatei konfigurieren Start Anwendung Hardware-Schnittstelle zum Barcode-Leser richtig konfiguriert System Vorbedingungen Nachbedingungen Barcode-Leser angeschlossen Konfigurationsdatei vorhanden Barcode-Leser einsatzbereit Ablauf Variationen Ausnahmen, Fehler 1. Konfigurationsdatei öffnen 2. Parameter lesen 3. Hardware-Schnittstelle konfigurieren 4. Konfigurationsdatei schliessen 5. Konfigurationserfolg weiterleiten Schnittstelle besetzt Falsche Parameterwerte in der Konfigurationsdatei Konfigurationsdatei nicht vorhanden Tabelle 15: Anwendungsfall-Beschreibung Barcode lesen Eigenschaft Name Kurzbeschreibung Auslöser Ergebnis Akteur Vorbedingungen Nachbedingungen Ablauf Variationen Ausnahmen, Fehler 008_Schlussbericht.doc Beschreibung Barcode lesen Ein Barcode mit dem Barcode-Leser einlesen Barcode muss erfasst werden Barcode eingelesen Benutzer Barcode-Leser einsatzbereit 1. Hardware-Schnittstelle öffnen 2. Meldung lesen 3. Hardware-Schnittstelle schliessen 4. Meldung weiterleiten Hardware-Schnittstelle kann nicht geöffnet werden Leser nicht bereit 65/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 12.2.2 Framework 12.2.2.1 Entwickler Tabelle 16: Anwendungsfall-Beschreibung HW-Adapter hinzufügen Eigenschaft Eigensch aft Name Kurzbeschreibung Auslöser Ergebnis Akteur Vorbedingungen Nachbedingungen Ablauf Variationen Ausnahmen, Fehler Beschreibung HW-Adapter hinzufügen Einen Hardware-Adapter zum Framework hinzufügen Für das Erstellen einer neuer Terminalanwendung wird ein neuer HW-Adapter wird benötigt Der HW-Adapter ist in der Konfigurationsdatei eingetragen Entwickler Der HW-Adapter ist bereit um dynamisch eingefügt zu werden 1. In der Konfigurationsdatei wird der Pfad und Namen der HWKonfigurationsdatei und Bibliothek eintragen 2. Der Entwickler hat dafür zu sorgen, dass die Konfigurationsdatei für den HW-Adapter und die dazugehörige Bibliothek zur Verfügung stehen. Keine Bibliotheke oder Konfigurationsdatei für den HW-Adapter am vorgehsehenen Ort vorhanden Ungültiger oder kein Pfad in der Konfigurationsdatei zum HW-Adapter vorhanden Tabelle 17: Anwendungsfall-Beschreibung Menü bearbeiten Eigenschaft Name Beschreibung Menü bearbeiten Kurzbeschreibung Auslöser Die Struktur des Menüs bearbeiten, anhand der zu erstellenden Terminalanwendung Ein neues Terminal wird erstellt Ergebnis Akteur Vorbedingungen Nachbedingungen Ablauf Die Menüstruktur der Terminalanwendung stimmt mit der zu erstellende Anwendung (pro Screen) überein Entwickler 1. Das Menü editieren Variationen Menüpunkt umplatzieren Menüpunkt löschen Menüpunkt einfügen Ausnahmen, Fehler Das falsche Menü ist für die falschen Seiten Das Menüpunkt verweist auf eine nicht existierende Seite 008_Schlussbericht.doc 66/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Tabelle 18: Anwendungsfall-Beschreibung Fensterinhalt bearbeiten Eigenschaft Name Beschreibung Fensterinhalt bearbeiten Kurzbeschreibung Auslöser Bei einer neuen Terminalanwendung wird der Inhalt einer Seite bearbeitet Ein neues Terminal wird erstellt Ergebnis Akteur Vorbedingungen Nachbedingungen Ablauf Variationen Ausnahmen, Fehler Der Inhalt einer neuen Seite ist erstellt worden oder der Inhalt ist bearbeitet worden Entwickler Die zu bearbeitende Seite besteht bereits Der Inhalt der Seite ist geändert 1. Den Inhalt eines Fensters bearbeiten Anhand des Platzbedarfs des Fensters, wird das Layout nicht richtig angezeigt Tabelle 19: Anwendungsfall-Beschreibung Fenster hinzufügen Eigenschaft Name Kurzbeschreibung Auslöser Ergebnis Akteur Vorbedingungen Nachbedingungen Ablauf Variationen Ausnahmen, Fehler 008_Schlussbericht.doc Beschreibung Fenster hinzufügen Ein neues Fenster wird der Terminalanwendung hinzugefügt Eine weitere Seite muss ergänzt werden Eine neue Seite ist erstellt worden Entwickler Eine neue Seite besteht 1. Neue Seite hinzufügen Bsp. Anzahl Seiten im Register ist voll ausgeschöpft und es kann keine weitere Seite mehr eingefügt werden. 67/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Tabelle 20: Anwendungsfall-Beschreibung Sprache hinzufügen Eigenschaft Name Beschreibung Sprache hinzufügen Kurzbeschreibung Auslöser Bei einer vorhandenen Terminalanwendung kann die Sprachbibliothek erweitert werden. Dies kann auch für nicht lateinische Sprachen vorkommen (Bsp. Chinesisch) Eine weitere Sprache muss ergänzt werden Ergebnis Akteur Vorbedingungen Nachbedingungen Ablauf Variationen Ausnahmen, Fehler Die Sprache für die Terminalanwendung kann anhand der Sprachbibliothek erweitert werden Entwickler Sprachbibliothek ist korrekt vorhanden 1. Die Sprachbibliothek wird in den dafür vorgesehenen Ordner kopiert 2. Das Auswahlelement für die Sprachauswahl muss erstellt werden 3. Die Konfigurationsdatei muss für die Sprache erweitert werden Falsche Texte für die falschen Variablen Zeichensatz wird nicht unterstützt Die SprachBibliotheke kann nicht eingebunden werden Zu lange Textnamen, damit ein Textfeld den Text nicht vollständig anzeigt Das Auswahlelement für die Auswahl der Sprache existiert nicht Sprachbibliothek ist nicht komplett Tabelle 21: Anwendungsfall-Beschreibung Bilder hinzufügen Eigenschaft Name Beschreibung Bilder hinzufügen Kurzbeschreibung Auslöser Ergebnis Akteur Bei einer zu erstellenden oder bestehenden Terminalanwendung können zusätzliche Bilder hinzugefügt werden Weitere Bilder müssen hinzugefügt werden Die Bilder werden korrekt und in der richtigen Reihenfolge angezeigt Entwickler Vorbedingungen Nachbedingungen Ablauf Variationen Ausnahmen, Fehler 008_Schlussbericht.doc Bilder sind richtig beschriftet Bilder haben die richtige Grösse 1. Bilder in den vorgesehenen Ordner einfügen Falsche Bildgrösse Falsche Bildreihenfolge (falsche Bildernummerierung) 68/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Tabelle 22: Anwendungsfall-Beschreibung Barcodetyp aktivieren oder deaktivieren Eigenschaft Name Kurzbeschreibung Auslöser Ergebnis Akteur Vorbedingungen Nachbedingungen Ablauf Variationen Ausnahmen, Fehler Beschreibung Barcodetyp aktivieren oder deaktivieren Jeder Barcodetyp kann mittels einer Konfigurationsdatei aktiviert oder deaktiviert werden Der Entwickler will einen Barcodetyp aktivieren oder deaktivieren Der Barcodetyp ist aktiv oder nicht aktiv Entwickler 1. Konfigurationsdatei öffnen 2. Barcodetyp aktivieren oder deaktivieren 3. Konfigurationsdatei speichern und schliessen Konfigurationsdatei kann nicht geöffnet werden Kein Schreibrecht in der Konfigurationsdatei Barcodetyp ist in der Konfigurationsdatei nicht vorhanden Tabelle 23: Anwendungsfall-Beschreibung Fenster aktivieren oder deaktivieren Eigenschaft Name Kurzbeschreibung Auslöser Ergebnis Akteur Vorbedingungen Nachbedingungen Ablauf Variationen Ausnahmen, Fehler 008_Schlussbericht.doc Beschreibung Fenster aktivieren oder deaktivieren Jedes Fenster kann mittels einer Konfigurationsdatei aktiviert oder deaktiviert werden Der Entwickler will ein Fenster aktivieren oder deaktivieren Das Fenster ist aktiv oder nicht aktiv Entwickler 1. Konfigurationsdatei öffnen 2. Fenster aktivieren oder deaktivieren 3. Konfigurationsdatei speichern und schliessen Konfigurationsdatei kann nicht geöffnet werden Kein Schreibrecht in der Konfigurationsdatei Das Fenster ist in der Konfigurationsdatei nicht vorhanden 69/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Tabelle 24: Anwendungsfall-Beschreibung Hilfsmittel aktivieren oder deaktivieren Eigenschaft Name Kurzbeschreibung Auslöser Ergebnis Akteur Vorbedingungen Nachbedingungen Ablauf Variationen Ausnahmen, Fehler Beschreibung Hilfsmittel aktivieren oder deaktivieren Jedes Hilfsmittel kann mittels einer Konfigurationsdatei aktiviert oder deaktiviert werden Der Entwickler will ein Hilfsmittel aktivieren oder deaktivieren Das Hilfsmittel ist aktiv oder nicht aktiv Entwickler 1. Konfigurationsdatei öffnen 2. Hilfsmittel aktivieren oder deaktivieren 3. Konfigurationsdatei speichern und schliessen Konfigurationsdatei kann nicht geöffnet werden Kein Schreibrecht in der Konfigurationsdatei Hilfsmittel ist in der Konfigurationsdatei nicht vorhanden 12.2.2.2 System Tabelle 25: Anwendungsfall-Beschreibung URL speichern Eigenschaft Name Kurzbeschreibung Auslöser Ergebnis Akteur Vorbedingungen Nachbedingungen Ablauf Variationen Ausnahmen, Fehler 008_Schlussbericht.doc Beschreibung URL speichern Die vom AS erhaltene URL speichern URL von AS erhalten URL gespeichert System 1. Die URL im System abspeichern 70/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Tabelle 26: Anwendungsfall-Beschreibung Text-/XML-/HTML-Dokumente herunterladen Eigenschaft Name Kurzbeschreibung Auslöser Ergebnis Akteur Vorbedingungen Nachbedingungen Ablauf Variationen Ausnahmen, Fehler Beschreibung Text-/XML-/HTML-Dokumente herunterladen Text-/XML-/HTML-Dokumente vom PMS herunterladen Sobald Dokumente vom Ablauf benutzt werden müssen Text-/XML-/HTML-Dokumente gespeichert System URL vorhanden URL nicht vorhanden PMS Web-Server nicht erreichbar Tabelle 27: Anwendungsfall-Beschreibung Text-/XML-/HTML-Dokumente anzeigen Eigenschaft Name Kurzbeschreibung Auslöser Ergebnis Akteur Vorbedingungen Nachbedingungen Ablauf Variationen Ausnahmen, Fehler Beschreibung Text-/XML-/HTML-Dokumente anzeigen Gespeicherte Text-/XML-/HTML-Dokumente anzeigen Sobald Dokumente vom Ablauf benutzt werden müssen Text-/XML-/HTML-Dokumente angezeigt System Text-/XML-/HTML-Dokumente heruntergeladen Text-/XML-/HTML-Dokumente nicht vorhanden Tabelle 28: Anwendungsfall-Beschreibung Auftrags-ID senden Eigenschaft Name Kurzbeschreibung Auslöser Ergebnis Akteur Vorbedingungen Nachbedingungen Ablauf Variationen Ausnahmen, Fehler 008_Schlussbericht.doc Beschreibung Auftrags-ID senden Die Auftrags-ID ans PMS senden Neuer Auftrag eröffnen Die ID ist gesendet System Kein offener Auftrag 1. Auftrags-ID eingeben 2. ID ans PMS senden Falsche oder ungültige ID AS nicht erreichbar 71/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Tabelle 29: Anwendungsfall-Beschreibung ID-Antwort speichern Eigenschaft Name Kurzbeschreibung Auslöser Ergebnis Akteur Vorbedingungen Nachbedingungen Ablauf Variationen Ausnahmen, Fehler Regeln Invarianten Inkludierte AF Beschreibung ID-Antwort speichern Nachdem die Auftragsdaten ans PMS gesendet worden sind, kommt vom PMS eine Antwort mit den nötigen Daten ID senden (neuer Auftrag eröffnen) Alle benötigten Daten zu einem Auftrag sind lokal gespeichert System Auftrag-ID muss ans PMS gesendet werden 1. Die Daten zum Auftrag werden vom PMS als Antwort gespeichert Keine oder nicht alle Auftragsdaten wurden zurückgegeben Auftrags-ID senden Tabelle 30: Anwendungsfall-Beschreibung Barcode einlesen Eigenschaft Name Kurzbeschreibung Auslöser Ergebnis Akteur Vorbedingungen Nachbedingungen Ablauf Variationen Ausnahmen, Fehler 008_Schlussbericht.doc Beschreibung Barcode einlesen Der Barcode wird über den HW-Adapter eingelesen Eine Identifikationsnummer wird benötigt Der Wert eines Barcodes ist gespeichert System Barcode wurde vom HW-Adapter richtig eingelesen 1. System erhält eine Meldung vom HW-Adapter, dass ein Barcode vorhanden ist 2. Das System liest den Barcode ein 3. Der Wert des Barcodes wird im Arbeitsspeicher gespeichert Kein oder ein ungültiger Barcode vorhanden 72/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Tabelle 31: Anwendungsfall-Beschreibung Barcode aufsplitten Eigenschaft Name Beschreibung Barcode aufsplitten Kurzbeschreibung Auslöser Ergebnis Akteur Vorbedingungen Nachbedingungen Der eingelesene Wert des Barcodes wird dem dazugehörigen Typ zugeordnet Barcode wurde eingelesen Der Wert eines Barcodes ist dem richtigen Barcode-Typ zugeordnet System Barcode wurde vom HW-Adapter richtig eingelesen Ablauf Variationen Ausnahmen, Fehler 1. Das System liest den Wert des Barcodes aus dem Speicher 2. Das Framework identifiziert den Barcode mit dem jeweiligen Typ (Brick/Ingot/…) 3. Der Wert des Barcodes wird ins Feld eingetragen, wenn der Typ dazu übereinstimmt 4. Nach dem Drücken der Enter-Taste wird der Barcode übernommen Barcode-Identifikation findet den Typ nicht Falscher Barcode-Typ Tabelle 32: Anwendungsfall-Beschreibung Fehler anzeigen Eigenschaft Name Kurzbeschreibung Auslöser Ergebnis Akteur Vorbedingungen Nachbedingungen Ablauf Variationen Ausnahmen, Fehler Regeln Invarianten Inkludierte AF 008_Schlussbericht.doc Beschreibung Fehler anzeigen Wenn der Barcode ungültig ist, wird ein Fehler angezeigt Keine oder ungültiger Barcode Ein Dialog mit einer Fehlermeldung wird angezeigt System Der Barcode wurde aufgesplittet und es war kein oder ein ungültiger Wert vorhanden 1. Eine Meldung erscheint, dass kein oder ein ungültiger Wert des Barcodes vorhanden ist Dialogfenster wird nicht angezeigt Barcode aufsplitten 73/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Tabelle 33: Anwendungsfall-Beschreibung Produktionsstand speichern Eigenschaft Name Kurzbeschreibung Auslöser Ergebnis Akteur Vorbedingungen Nachbedingungen Ablauf Variationen Ausnahmen, Fehler Beschreibung Produktionsstand speichern Der Status des Produktionsstands wird gespeichert und ans PMS gesendet Der Status wird geändert Der Status ist gespeichert System Der Status des Produktionsstands hat geändert 1. Status ändert 2. Status wird gespeichert 3. Status wird ans PMS gesendet PMS ist nicht ansprechbar Das Speichern ist nicht möglich Tabelle 34: Anwendungsfall-Beschreibung HW-Adapter laden Eigenschaft Name Kurzbeschreibung Auslöser Ergebnis Akteur Vorbedingungen Nachbedingungen Ablauf Variationen Ausnahmen, Fehler 008_Schlussbericht.doc Beschreibung HW-Adapter laden Beim Starten der Terminalanwendung werden die konfigurierten HW-Adapter geladen Alle HW-Adapter sind im System integriert und können die Aufgaben wahrnehmen System Die Bibliothek muss vorhanden sein Die dazugehörige Konfigurationsdatei muss vorhanden sein 1. HW-Adapter (Bibliothek) dynamisch laden 2. Die HW gegebenenfalls konfigurieren HW-nicht angeschlossen 74/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 12.2.2.3 Operator Tabelle 35: Anwendungsfall-Beschreibung Sprache ändern Eigenschaft Name Kurzbeschreibung Auslöser Ergebnis Akteur Vorbedingungen Nachbedingungen Ablauf Variationen Ausnahmen, Fehler Beschreibung Sprache ändern Die Sprache wird anhand der ausgewählten Sprache geändert und angezeigt Der Bediener ändert die Sprache Die Terminalanwendung wird in der gewünschten Sprache angezeigt Operator Die gewünschte Sprache ist als Sprachtabelle vorhanden und installiert Die Sprachumstellung kann umgestellt werden 1. Beim Starten wird die in der Konfigurationsdatei eingestellte Sprache angezeigt 2. Der Benutzer wählt die gewünschte Sprache, indem er auf den jeweiligen Button drückt 3. Die Anwendung erscheint in der gewünschten Sprache 4. Die gewählte Sprache wird in der Konfigurationsdatei gesetzt Die Sprache stellt nicht um Die Bibliothek ist nicht vorhanden Die Bibliothek ist unvollständig Die gewünschte Sprache kann nicht umgestellt werden Tabelle 36: Anwendungsfall-Beschreibung Sprachabhängige Bilder anzeigen Eigenschaft Name Kurzbeschreibung Auslöser Ergebnis Akteur Beschreibung Sprachabhängige Bilder anzeigen Anhand der gewählten Sprache, die sprachabhängigen Bilder anzeigen Sprache ändern (Benutzer) Die sprachabhängigen Bilder werden angezeigt Operator Vorbedingungen Sprache wurde geändert oder beim Starten wird in der Konfigurationsdatei die gewählte Sprache initialisiert Nachbedingungen Wenn ein Fenster mit Bildinhalt geöffnet wird, dann werden anhand der ausgewählten Sprache die sprachabhängigen Bilder angezeigt Ablauf Variationen Ausnahmen, Fehler Regeln Invarianten Inkludierte AF 008_Schlussbericht.doc Wenn ein Fenster mit Bildinhalt geöffnet wird, dann werden anhand der ausgewählten Sprache die sprachabhängigen Bilder angezeigt Bilder in der entsprechenden Sprache ist nicht vorhanden Sprache ändern 75/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Tabelle 37: Anwendungsfall-Beschreibung Operator ID eingeben Eigenschaft Name Kurzbeschreibung Auslöser Ergebnis Akteur Vorbedingungen Nachbedingungen Beschreibung Operator ID eingeben Der Operator gibt seine ID ein Eine Anmeldung wird verlangt Der Operator ist angemeldet Operator Anmeldefenster offen Eingabefeld fokusiert Cursor auf Eingabefeld Möglichkeit zum Öffnen der virtuellen Tastatur vorhanden Optional: Barcode-Leser bereit Ablauf 1. Cursor und Fokus auf entsprechendes Eingabefeld setzen 2. Virtuelle Tastatur öffnen nach Befehl "Öffnen der virtuellen Tastatur" 3. Identifikationsnummer über virtuelle Tastatur eingeben 4. Bestätigen mit Enter 5. Identifikationsnummer wird übernommen 6. Virtuelle Tastatur schliessen Variationen Ausnahmen, Fehler Barcode Leser: 1. Cursor und Fokus auf entsprechendes Eingabefeld setzen 2. Identifikationsnummer über Barcode-Leser einlesen 3. Automatische Bestätigung Keine oder eine ungültige ID vorhanden Tabelle 38: Anwendungsfall-Beschreibung Operator-ID abbrechen Eigenschaft Name Kurzbeschreibung Auslöser Ergebnis Akteur Vorbedingungen Nachbedingungen Ablauf Variationen Ausnahmen, Fehler 008_Schlussbericht.doc Beschreibung Operator-ID abbrechen Die Eingabe der Operator-ID wird abgebrochen Der Operator will die Eingabe der Operator-ID abbrechen Die Operator-ID wird nicht übernommen Operator Der Operator versuchte vorher seine ID einzugeben Abbrechen der Operator-ID 76/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Tabelle 39: Anwendungsfall-Beschreibung Fenster öffnen Eigenschaft Name Beschreibung Fenster öffnen Kurzbeschreibung Auslöser Ergebnis Akteur Das Fenster mit dem Dokument/Hilfsmittel/Beschreibung wird geöffnet und angezeigt Aufruf des Fensters über das Menü Der Fenster wird angezeigt Operator Vorbedingungen Nachbedingungen Ablauf Variationen Ausnahmen, Fehler Regeln Invarianten Inkludierte AF Bemerkungen 008_Schlussbericht.doc Das Fenster mit dem Dokument/Hilfsmittel/Beschreibung ist vorhanden Der Aufruf des Fensters ist in mindestens einem Menüpunkt hinterlegt Das Fenster ist aktiviert 1. Das Fenster mit dem Dokument/Hilfsmittel/Beschreibung wird geöffnet 2. Das Fenster mit dem Dokument/Hilfsmittel/Beschreibung wird angezeigt Die Datei mit dem Dokument/Beschreibung ist nicht vorhanden Die Datei mit dem Dokument/Beschreibung ist lese-geschützt Dieser Anwendungsfall gilt für: Arbeitsbeschreibungshilfe Auftragsinformationen Informationen zu nächsten Aufträgen Wartungsinformationen Bildschirm-Reinigerhilfe Bilder-Assistent Test-Bedingungshilfe Rechner Kalender Software-Version 77/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Tabelle 40: Anwendungsfall-Beschreibung Fenster schliessen Eigenschaft Name Beschreibung Fenster schliessen Kurzbeschreibung Auslöser Ergebnis Akteur Das Fenster mit dem Dokument/Hilfsmittel/Beschreibung etc wird geschlossen Aufruf eines anderen Fensters über das Menü Das Fenster ist geschlossen Operator Vorbedingungen Nachbedingungen Ablauf Variationen Ausnahmen, Fehler Regeln Invarianten Inkludierte AF Bemerkungen 008_Schlussbericht.doc Das Fenster mit dem Dokument/Hilfsmittel/Beschreibung etc wird angezeigt 1. Das Fenster mit dem Dokument/Hilfsmittel/Beschreibung etc wird nicht mehr angezeigt 2. Das Fenster mit dem Dokument/Hilfsmittel/Beschreibung etc wird geschlossen Ein Dialog ist nicht als modal offen Dieser Anwendungsfall gilt für: Arbeitsbeschreibungshilfe Auftragsinformationen Informationen zu nächsten Aufträgen Wartungsinformationen Bildschirm-Reinigerhilfe Bilder-Assistent Test-Bedingungshilfe Rechner Kalender Software-Version 78/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Tabelle 41: Anwendungsfall-Beschreibung Berechnung eingeben Eigenschaft Name Kurzbeschreibung Auslöser Ergebnis Akteur Vorbedingungen Nachbedingungen Ablauf Variationen Ausnahmen, Fehler Beschreibung Berechnung eingeben Es kann eine Rechnung in den Rechner eingegeben werden Der Operator möchte eine Berechnung ausführen Das Ergebnis der Berechnung wird angezeigt Operator Der Rechner ist geöffnet Das Resultat der Berechnung wird angezeigt 1. Die erste Zahl wird eingegeben 2. Die Operation wird eingegeben 3. Die zweite Zahl wird eingegeben 4. Das "Gleichheits"-Zeichen wird gedrückt 5. Das Resultat wird angezeigt 6. Das Resultat kann wieder als erste Zahl benutzt werden Der Ablauf wird nicht eingehalten Falsche Konfiguration des Touch (virtuelle Tastatur wird nicht angezeigt) Tabelle 42: Anwendungsfall-Beschreibung Software Update installieren Eigenschaft Eigenschaft Name Kurzbeschreibung Auslöser Ergebnis Akteur Vorbedingungen Nachbedingungen Ablauf Variationen Ausnahmen, Fehler 008_Schlussbericht.doc Beschreibung Software Update installieren Ein Software Update wird installiert Der Operator möchte die neuste Software-Version Die neuste Software ist installiert Operator Ein Software Update ist vorhanden 1. Überprüfen ob eine neuere Version der Software auf dem PMS vorhanden ist 2. Software vom PMS herunterladen 3. Software installieren 4. Software neu starten Keine neue Software vorhanden Installation konnte nicht ausgeführt werden 79/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Tabelle 43: Anwendungsfall-Beschreibung Konfigurations Update installieren Eigenschaft Name Kurzbeschreibung Auslöser Ergebnis Akteur Vorbedingungen Nachbedingungen Ablauf Variationen Ausnahmen, Fehler Beschreibung Konfigurations Update installieren Ein Konfigurations Update wird installiert Der Operator möchte die neuste Version oder ein Hilfsmittel de- oder aktivieren Die neuste Konfiguration ist installiert Operator Ein Konfigurations Update ist vorhanden 1. Überprüfen ob eine neuere Version der Konfiguration auf dem PMS vorhanden ist 2. Konfiguration herunterladen 3. Konfiguration speichern 4. Konfiguration neu laden Keine neue Konfiguration vorhanden Installation konnte nicht ausgeführt werden Tabelle 44: Anwendungsfall-Beschreibung Produktionsstand ändern Eigenschaft Name Kurzbeschreibung Auslöser Ergebnis Akteur Vorbedingungen Nachbedingungen Ablauf Variationen Ausnahmen, Fehler 008_Schlussbericht.doc Beschreibung Produktionsstand ändern Der Status des Produktionsstands wird geändert Der Produktionsstatus ändert sich oder wird vom Operator übersteuert Der Status ist geändert Operator oder System 1. Status ändert Änderung findet im System nicht statt. 80/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 12.2.3 ReferenzReferenz-Anwendung „Brick Separierer“ Tabelle 45: Anwendungsfall-Beschreibung Auftrags-ID eingeben Eigenschaft Name Beschreibung Auftrags-ID eingeben Kurzbeschreibung Auslöser Ergebnis Akteur Vorbedingungen Der Benutzer gibt die Auftrags-ID von Hand oder mittels Barcode Leser ein. Ein Auftrag soll abgearbeitet werden Ein gültiger Auftrag soll bearbeitet werden können Bediener Die Anwendung ist gestartet Nachbedingungen Ablauf Variationen Ausnahmen, Fehler Der Auftrag kann bearbeitet werden Die im Auftrag enthaltenen Bricks werden angezeigt Eingabe der ID von Hand Eingabe der ID mittels Barcode Leser Falsche Auftrags-ID Tabelle 46: Anwendungsfall-Beschreibung Bricks anzeigen Eigenschaft Name Kurzbeschreibung Beschreibung Bricks anzeigen Alle zu bearbeitenden Bricks werden angezeigt Auslöser Ergebnis Akteur Eine gültige Auftrags-ID wurde eingegeben und ein Rezept vom Server geladen Ein gültiger Auftrag soll bearbeitet werden können System Vorbedingungen Nachbedingungen Ablauf Variationen Ausnahmen, Fehler 008_Schlussbericht.doc Eine gültige Auftrags-ID wurde eingegeben und ein Rezept vom Server geladen Die Bricks werden angezeigt Ungültiges Rezept 81/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Tabelle 47: Anwendungsfall-Beschreibung Pass/Fail Eingabe Eigenschaft Name Beschreibung Pass/Fail Eingabe Kurzbeschreibung Auslöser Der Benutzer gibt anhand einer visuellen Kontrolle ein Pass oder Fail für den angezeigten Brick Ein Brick soll bearbeitet werden Ergebnis Akteur Vorbedingungen Die Anwendung zeigt dem Benutzer ob bei Pass eine Messung durchgeführt werden muss Bediener Ein Auftrag ist aktiv Nachbedingungen Ablauf Bei Pass kann anhand des Rezepts eine Messung verlangt werden Der nexte Brick wird angezeigt Der Brick wird als "done" beim PMS gemeldet 1. Eingabe von Pass oder Fail Variationen Ausnahmen, Fehler Bei Pass kann vom Rezept her eine Messung verlangt werden Bei Fail wird der nächste Brick angezeigt Tabelle 48: Anwendungsfall-Beschreibung Bricks messen Eigenschaft Name Kurzbeschreibung Auslöser Beschreibung Bricks messen Der Benutzer vermisst die Bricks anhand der vorgegebenen Bedingungen Ein Brick soll vermessen werden Ergebnis Akteur Vorbedingungen Die Messdaten werden in der Anwendung eingegeben und ans PMS weitergeleitet Bediener Der zu messende Brick muss vermessen werden Nachbedingungen Die Messdaten werden ans PMS gesendet Anhand der gemessenen Werte müssen nur ein Teil oder alle Bricks vermessen werden Ablauf Variationen Ausnahmen, Fehler Regeln 008_Schlussbericht.doc 1. Die Breite 1 wird gemessen und eingegeben 2. Die Breite 2 wird gemessen und eingegeben 3. Die Länge wird gemessen und eingegeben 4. Die Messung wird abgeschlossen Anhand des Rezeptes gibt es muss und soll Messungen. Ist eine MussMessung nicht inerhalb einer Toleranz müssen allle Bricks vermessen werden 82/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Tabelle 49: Anwendungsfall-Beschreibung Brick abschliessen Eigenschaft Name Kurzbeschreibung Auslöser Ergebnis Akteur Vorbedingungen Nachbedingungen Ablauf Variationen Ausnahmen, Fehler Beschreibung Brick abschliessen Nach dem Bearbeiten der Bricks muss dem PMS mitgeteilt werden, dass der aktuelle Brick fertig bearbeitet wurde. Der zu bearbeitende Brick ist fertig bearbeitet Der aktuelle Brick ist beim PMS als bearbeitet markiert Bediener Der zu bearbeitende Brick ist fertig bearbeitet Für den aktuellen Brick wird eine Etikette ausgedruckt Tabelle 50: Anwendungsfall-Beschreibung Auftrag abschliessen Eigenschaft Name Kurzbeschreibung Auslöser Ergebnis Akteur Vorbedingungen Nachbedingungen Ablauf Variationen Ausnahmen, Fehler Beschreibung Auftrag abschliessen Nach dem Bearbeiten sämtlicher Bricks muss dem PMS mitgeteilt werden, dass der aktuelle Auftrag fertiggestellt wurde. Sämtliche Bricks sind fertig bearbeitet Das PMS hat den Status abgeschlossen für den aktuellen Auftrag Bediener Sämtliche Bricks sind fertig bearbeitet Tabelle 51: Anwendungsfall-Beschreibung Etikette ausdrucken Eigenschaft Name Beschreibung Etikette ausdrucken Kurzbeschreibung Auslöser Ergebnis Akteur Nach dem Bearbeiten des aktuellen Bricks muss eine Etikette ausgedruckt werden Sämtliche Bricks sind fertig bearbeitet Auf den Brick klebt eine Etikette System Vorbedingungen Nachbedingungen Ablauf Variationen Ausnahmen, Fehler 008_Schlussbericht.doc Sämtliche Bricks sind fertig bearbeitet Es ist ein Template zum Drucken der Etikette vorhanden 83/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 12.3 Test Szenarien 12.3.1 Hardware Hardware-Adapter 12.3.1.1 Label Drucker Tabelle 52: Test Szenarien Label Drucker konfigurieren Nr. Szenario LDK1 Normal konfiguriert LDK2 Schnittstelle besetzt LDK3 Falsche Parameterwerte in Konfigurationsdatei LDK4 Konfigurationsdatei fehlt 008_Schlussbericht.doc Beschreibung Ausgangslage Erwartetes Resultat Erfolg Die Anwendung startet und die Hardware-Schnittstelle zum Label-Drucker wird mittels den Parameterwerten aus der Konfigurationsdatei konfiguriert Die Anwendung startet und versucht die HardwareSchnittstelle zum LabelDrucker mittels den Parameterwerten aus der Konfigurationsdatei zu konfigurieren. Die Anwendung startet und versucht die HardwareSchnittstelle zum LabelDrucker mittels den Parameterwerten aus der Konfigurationsdatei zu konfigurieren. Die Anwendung startet und versucht die HardwareSchnittstelle zum LabelDrucker mittels den Parameterwerten aus der Konfigurationsdatei zu konfigurieren. Die Schnittstelle ist bereit Die Konfigurationsdatei ist vorhanden Die Parameterwerte in der Konfigurationsdatei sind korrekt Hardware-Schnittstelle konfiguriert Anwendung initialisiert weiter ok Die Schnittstelle ist nicht bereit Die Konfigurationsdatei ist vorhanden Die Parameterwerte in der Konfigurationsdatei sind korrekt Die Schnittstelle ist bereit Die Konfigurationsdatei ist vorhanden Mindestens 1 Parameterwert in der Konfigurationsdatei ist falsch Die Schnittstelle ist bereit Die Konfigurationsdatei ist nicht vorhanden Fehlermeldung wird angezeigt Anwendung beendet ok Fehlermeldung wird angezeigt Anwendung beendet ok Fehlermeldung wird angezeigt Anwendung beendet ok 84/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Tabelle 53: Test Szenarien Vorlage herunterladen Nr. Szenario Beschreibung Ausgangslage Erwartetes Resultat Erfolg VH1 Normal herunterladen Neuer Auftrag eröffnet URL in Antwort enthalten PMS -Web-Server erreichbar Vorlage heruntergeladen und im Speicher ok VH2 URL nicht vorhanden Nach dem Eröffnen eines neuen Auftrages wird in der Antwort vom PMS die URL für die Vorlage zurückgegeben Mit dieser URL wird die Vorlage vom PMS WebServer heruntergeladen Nach dem Eröffnen eines neuen Auftrages wird in der Antwort vom PMS die URL für die Vorlage nicht zurückgegeben Neuer Auftrag eröffnet URL in Antwort nicht enthalten ok VH3 PMS Web-Server nicht erreichbar Nach dem Eröffnen eines neuen Auftrages wird in der Antwort vom PMS die URL für die Vorlage zurückgegeben Mit dieser URL wird versucht, die Vorlage vom PMS Web-Server herunterzuladen Neuer Auftrag eröffnet URL in Antwort enthalten PMS -Web-Server nicht erreichbar Fehlermeldung wird angezeigt Möglichkeit bieten, mit lokaler Vorlagendatei weiterzufahren Möglichkeit bieten, Auftrag abzubrechen Fehlermeldung wird angezeigt Möglichkeit bieten, erneuter Druckvorgang zu starten Möglichkeit bieten, Auftrag abzubrechen VH4 URL ungültig Nach dem Eröffnen eines neuen Auftrages wird in der Antwort vom PMS eine ungültige URL für die Vorlage zurückgegeben Neuer Auftrag eröffnet Ungültige URL in Antwort enthalten Fehlermeldung wird angezeigt Möglichkeit bieten, mit lokaler Vorlagendatei weiterzufahren Möglichkeit bieten, Auftrag abzubrechen ok Erwartetes Resultat Erfolg ok Tabelle 54: Test Szenarien Vorlage speichern Nr. Szenario Beschreibung Ausgangslage VH1 Normal speichern Die heruntergeladene Vorlage lokal speichern Vorlage im Speicher Vorlage lokal gespeichert Schreibrecht im entsprechenden Verzeichnis ok VH2 Kein Schreibrecht Versuch, die heruntergeladene Vorlage ohne Schreibrecht lokal abzuspeichern Vorlage im Speicher Fehlermeldung wird Kein Schreibrecht im angezeigt entsprechenden Verzeichnis Möglichkeit bieten, erneuter Druckvorgang zu starten Möglichkeit bieten, Auftrag abzubrechen ok 008_Schlussbericht.doc 85/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Tabelle 55: Test Szenarien Vorlageninhalt interpretieren Nr. Szenario Beschreibung Ausgangslage Erwartetes Resultat Erfolg VII1 Normal interpretieren Die gespeicherte Vorlage einlesen, parsen und interpretieren Auftrag offen Teilarbeit beendet Label soll ausgedruckt werden Vorlagendatei ohne inhaltliche Fehler vorhanden Druckinhalt vorbereitet zum ausdrucken ok VII2 Vorlagendatei nicht vorhanden Versuch, fehlende Vorlagendatei zu öffen Auftrag offen Teilarbeit beendet Label soll ausgedruckt werden Vorlagendatei nicht vorhanden Fehlermeldung wird angezeigt Möglichkeit bieten, erneuter Druckvorgang zu starten Möglichkeit bieten, Auftrag abzubrechen ok VII3 Kein Leserecht Versuch, ohne Leserecht die Vorlagendatei zu öffnen Auftrag offen Teilarbeit beendet Label soll ausgedruckt werden Vorlagendatei ohne Leserecht vorhanden Fehlermeldung wird angezeigt Möglichkeit bieten, erneuter Druckvorgang zu starten Möglichkeit bieten, Auftrag abzubrechen ok VII4 Fehler in Vorlage Die gespeicherte Vorlage einlesen, parsen und interpretieren, obschon Fehler in der Vorlage Auftrag offen Teilarbeit beendet Label soll ausgedruckt werden Vorlagendatei mit mindestens 1 inhaltlichen Fehler vorhanden Fehlermeldung wird angezeigt Möglichkeit bieten, erneuter Druckvorgang zu starten Möglichkeit bieten, Auftrag abzubrechen ok Tabelle 56: Test Szenarien Label drucken Nr. Szenario Beschreibung Ausgangslage Erwartetes Resultat Erfolg LD1 Normal drucken Die gespeicherte Vorlage einlesen, parsen und interpretieren Label ausgedruckt fail LD2 Hardware-Schnittstelle kann nicht geöffnet werden Der Druckinhalt ist vorbereitet zum Ausdruck, jedoch kann nicht gedruckt werden, weil die HardwareSchnittstelle nicht geöffnet werden kann Druckinhalt vorhanden Hardware-Schnittstelle bereit Drucker bereit Druckinhalt vorhanden Hardware-Schnittstelle nicht bereit Fehlermeldung wird angezeigt Möglichkeit bieten, erneuter Druckvorgang zu starten Möglichkeit bieten, Auftrag abzubrechen fail LD3 Drucker nicht bereit Der Druckinhalt ist vorbereitet zum Ausdruck, jedoch kann nicht gedruckt werden, weil der Drucker nicht bereit ist Druckinhalt vorhanden Hardware-Schnittstelle bereit Drucker nicht bereit Fehlermeldung wird angezeigt Möglichkeit bieten, erneuter Druckvorgang zu starten Möglichkeit bieten, Auftrag abzubrechen fail LD4 Drucker im Fehlerzustand Der Druckinhalt ist vorbereitet zum Ausdruck, jedoch kann nicht gedruckt werden, weil der Drucker im Fehlerzustand ist Druckinhalt vorhanden Hardware-Schnittstelle bereit Drucker im Fehlerzustand Fehlermeldung wird angezeigt Möglichkeit bieten, erneuter Druckvorgang zu starten Möglichkeit bieten, Auftrag abzubrechen fail 008_Schlussbericht.doc 86/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 12.3.1.2 BarcodeBarcode -Leser Tabelle 57: Test Szenarien Barcode-Leser konfigurieren Nr. Szenario BLK1 Normal konfiguriert BLK2 Schnittstelle besetzt BLK3 Falsche Parameterwerte in Konfigurationsdatei BLK4 Konfigurationsdatei fehlt Beschreibung Ausgangslage Erwartetes Resultat Erfolg Die Anwendung startet und die Hardware-Schnittstelle zum Barcode-Leser wird mittels den Parameterwerten aus der Konfigurationsdatei konfiguriert Die Anwendung startet und versucht die HardwareSchnittstelle zum BarcodeLeser mittels den Parameterwerten aus der Konfigurationsdatei zu konfigurieren. Die Anwendung startet und versucht die HardwareSchnittstelle zum BarcodeLeser mittels den Parameterwerten aus der Konfigurationsdatei zu konfigurieren. Die Anwendung startet und versucht die HardwareSchnittstelle zum BarcodeLeser mittels den Parameterwerten aus der Konfigurationsdatei zu konfigurieren. Die Schnittstelle ist bereit Die Konfigurationsdatei ist vorhanden Die Parameterwerte in der Konfigurationsdatei sind korrekt Hardware-Schnittstelle konfiguriert Anwendung initialisiert weiter ok Die Schnittstelle ist nicht bereit Die Konfigurationsdatei ist vorhanden Die Parameterwerte in der Konfigurationsdatei sind korrekt Die Schnittstelle ist bereit Die Konfigurationsdatei ist vorhanden Mindestens 1 Parameterwert in der Konfigurationsdatei ist falsch Die Schnittstelle ist bereit Die Konfigurationsdatei ist nicht vorhanden Fehlermeldung wird angezeigt Anwendung beendet ok Fehlermeldung wird angezeigt Anwendung beendet ok Fehlermeldung wird angezeigt Anwendung beendet ok Tabelle 58: Test Szenarien Barcode lesen Nr. Szenario Beschreibung Ausgangslage Erwartetes Resultat Erfolg BL1 Brick-Barcode einlesen Der Operator XY liest mit dem Barcode-Leser den Barcode eines Bricks ein Barcode-Leser bereit Barcode ist eingelesen Barcode weitergeleitet ok BL2 Hardware-Schnittstelle kann nicht geöffnet werden Der Operator XY liest mit dem Barcode-Leser den Barcode eines Bricks ein Barcode-Leser bereit Hardware-Schnittstelle ist blockiert Fehlermeldung wird ok angezeigt Möglichkeit bieten, erneuter Lesevorgang zu starten Möglichkeit bieten, Auftrag abzubrechen Möglichkeit bieten, Barcode von Hand eingeben BL3 Leser nicht bereit Der Operator XY liest mit dem Barcode-Leser den Barcode eines Bricks ein Barcode-Leser nicht bereit System wartet auf Barcode vom Leser 008_Schlussbericht.doc 87/109 ok 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 12.3.2 Framework 12.3.2.1 Entwickler Tabelle 59: Test Szenarien HW-Adapter hinzufügen Nr. Szenario HWAH1 HW-Adapter normal hinzufügen. Beschreibung Ausgangslage Erwartetes Resultat Erfolg Der Entwickler trägt in der Konfigurationsdatei der Terminalanwendung den HW-Adapter inkl. dem Pfad für die Konfigurationsdatei des HW-Adapters ein. Die Bibliothek wird in denselben Ordner gespeichert, wie die Anwendung. Die Bibliothek für den HWAdapter und die dazugehörige Konfigurationsdatei ist am richtigen Ort gespeichert. Der Namen der Bibliotheke stimmt. Der Pfad zur dazugehörigen Konfigurationsdatei stimmt. Die Bibliothek und die Konfigurationsdatei ist am richtigen Ort abgespeichert. ok Tabelle 60: Test Szenarien Menü bearbeiten Nr. Szenario MEB1 Menüpunkt erstellen MEB2 Menüpunkt bearbeiten MEB3 Menüpunkt löschen 008_Schlussbericht.doc Beschreibung Ausgangslage Erwartetes Resultat Erfolg Es können beliebig viele neue Menüpunkte erstellt werden. Der Entwickler tauscht zwei Menüpunkt aus. Es besteht eine neue Seite Zwei neue Menüpunkte sind eingefügt. ok Mindestens zwei Menüpunkte bestehen Die Menüpunkte sind vertauscht. ok Der Entwickler löscht einen erstellten Menüpunkt Es besteht mindestens ein Menüpunkt. Der Menüpunkt ist gelöscht. ok 88/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Tabelle 61: Test Szenarien Fensterinhalt erstellen Nr. Szenario Beschreibung Ausgangslage Erwartetes Resultat Erfolg FIE1 Fensterinhalt (Text) erstellen Eine neue Seite ist hinzugefügt worden Fensterinhalt (Bild) erstellen FIE3 Fensterinhalt (Text) bearbeiten FIE4 Fensterinhalt (Bild) bearbeiten Der Entwickler ersetzt ein bestehendes Bild Eine bestehende Seite mit einem Bild ist vorhanden In der neuen Seite ist der eingegebene Text vorhanden In der neuen Seite ist das ausgewählte Bild vorhanden In der gegebenen Seite ist der geänderte Text vorhanden In der gegebenen Seite ist das neue Bild vorhanden ok FIE2 Der Entwickler fügt einen neuen Text in einer neuen Seite ein. Der Entwickler fügt ein neues Bild in der neuen Seite ein Der Entwickler ändert den vorhanden Text Fensterinhalt ist zu gross Der Entwickler erstellt in Es besteht eine Seite einer Seite viel Inhalt mit Bildern und Texten, so dass der Inhalt die Seitengrösse überschreitet. Es wird automatisch eine Scroll-Bar erzeugt ok FIE5 Eine neue Seite ist hinzugefügt worden Eine bestehenden Seite mit Text ist vorhanden ok ok ok Tabelle 62: Test Szenarien Fenster hinzufügen Nr. Szenario Beschreibung Ausgangslage Erwartetes Resultat Erfolg FH1 Fenster hinzufügen Der Entwickler fügt eine neue Seite ein Das Grundgerüst für eine Terminalanwendung ist vorhanden Eine neue Seite ist eingefügt ok Tabelle 63: Test Szenarien Sprache hinzufügen Nr. Szenario Beschreibung Ausgangslage Erwartetes Resultat Erfolg SH1 Sprachen hinzufügen Der Entwickler fügt eine neue Sprache hinzu. Es besteht eine Sprachtabelle für die neue Sprache. Die Sprache ist hinzugefügt ok Tabelle 64: Test Szenarien Bilder hinzufügen Nr. Szenario Beschreibung Ausgangslage Erwartetes Resultat Erfolg BH1 Bilder hinzufügen Der Entwickler fügt neue Bilder ein Es besteht ein Fenster, worin die eingefügten Bilder angezeigt werden können. ok BH2 Grössere Bilder hinzufügen Einzelne oder alle Bilder sind zu gross. BH3 Kleinere Bilder hinzufügen Der Entwickler fügt neue Bilder ein, welche zu gross sind. Der Entwickler fügt neue Bilder ein, welche zu klein sind. Die eingefügten Bilder werden in der vorgegebenen Reihenfolge und richtigen Grösse angezeigt Die eingefügten Bilder werden zu gross angezeigt Einzelne oder alle Bilder sind zu klein. Die eingefügten Bilder werden zu klein angezeigt 008_Schlussbericht.doc 89/109 ok ok 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Tabelle 65: Test Szenarien Barcode de-aktivieren Nr. Szenario BDA1 Barcodetyp aktivieren BDA2 Barcodetyp deaktivieren Beschreibung Ausgangslage Erwartetes Resultat Erfolg Der Entwickler aktiviert einen Barcodetyp in der Konfigurationsdatei. Der Entwickler deaktiviert einen Barcodetyp in der Konfigurationsdatei. Der Barcodetyp ist in der Konfigurationsdatei vorhanden Der Barcodetyp ist in der Konfigurationsdatei vorhanden Der neue Barcodetyp ist aktiviert ok Der neue Barcodetyp ist nicht aktiviert ok Beschreibung Ausgangslage Erwartetes Resultat Erfolg Der Entwickler aktiviert das Fenster in der Konfigurationsdatei Der Entwickler deaktiviert das Fenster in der Konfigurationsdatei Das Fenster ist in der Konfigurationsdatei vorhanden Das Fenster ist in der Konfigurationsdatei vorhanden Das Fenster ist aktiviert ok Das Fenster ist deaktiviert ok Tabelle 66: Test Szenarien Fenster de-aktivieren Nr. Szenario FDA1 Fenster aktivieren FDA2 Fenster deaktivieren Tabelle 67: Test Szenarien Hilfsmittel de-aktivieren Nr. Szenario HMDA1 Hilfsmittel aktivieren HMDA2 Hilfsmittel deaktivieren Beschreibung Ausgangslage Erwartetes Resultat Erfolg Der Entwickler aktiviert das Hilfsmittel in der Konfigurationsdatei Der Entwickler deaktiviert das Hilfsmittel in der Konfigurationsdatei Das Hilfsmittel ist in der Konfigurationsdatei vorhanden Das Hilfsmittel ist in der Konfigurationsdatei vorhanden Das Hilfsmittel ist aktiviert ok Das Hilfsmittel ist deaktiviert ok 12.3.2.2 System Tabelle 68: Test Szenarien Url speichern Nr. Szenario Beschreibung US1 URL speichern Die URL wird abgespeichert Eine URL ist vorhanden Ausgangslage Erwartetes Resultat Erfolg Die URL ist abgespeichert ok Tabelle 69: TestSzenarien Dokumente herunterladen Nr. Szenario Beschreibung Ausgangslage Erwartetes Resultat DH1 Text-/XML-/HTML-Dokument herunterladen Die URL ist vorhanden WebServer vom PMS ist erreichbar Das Text-/XML-/HTML-File ok ist im Arbeitspeicher vorhanden DH2 URL nicht vorhanden Ein Text-/XML-/HTMLDokument via einer gespeicherten URL vom PMS herunterladen Ein Dokument via einer gespeicherten URL vom PMS herunterladen. Es existiert keine URL zum Herunterladen. Die URL ist nicht vorhanden. WebServer vom PMS ist erreichbar Fehlermeldung, dass keine ok URL vorhanden ist. Die URL ist vorhanden. WebServer vom PMS ist nicht erreichbar Fehlermeldung, dass der Web Server nicht erreichbar ist. DH3 PMS Web Server nicht erreichbar 008_Schlussbericht.doc Ein Dokument via einer gespeicherten URL vom PMS herunterladen. Der Web Server ist nicht erreichbar. 90/109 Erfolg ok 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Tabelle 70: Test Szenarien Dokumente anzeigen Nr. Szenario Beschreibung Ausgangslage Erwartetes Resultat Erfolg DA1 Text-/XML-/HTMLDokument anzeigen Das Dokument ist im Arbeitsspeicher gespeichert. Das Dokument wird im gewünschten Fenster angezeigt ok DA2 Text-/XML-/HTMLDokument nicht vorhanden Das im Arbeitsspeicher vorhandene Dokument wird im dafür vorgesehenen Fenster angezeigt. Im Arbeitsspeicher ist kein Dokument vorhanden Das Dokument ist nicht im Arbeitsspeicher gespeichert. Es erscheint eine Fehlermeldung, dass keine Dokumente vorhanden sind ok Tabelle 71: Test Szenarien Auftrags-ID senden Nr. Szenario Beschreibung Ausgangslage Erwartetes Resultat Erfolg AIS1 Auftrags-ID senden Eine gültige Auftrags-ID ans PMS senden. Eine Auftrags-ID ist vorhanden. AS läuft. Die Auftrags-ID ist beim PMS angekommen. Das PMS sendet eine Antwort mit der Bestätigung, dass die Antwort korrekt ist. ok AIS2 Ungültige Auftrags-ID ans PMS senden Eine ungültige Auftrags-ID ans PMS senden. Eine Auftrags-ID ist vorhanden. AS läuft. Die Auftrags-ID ist beim PMS angekommen. Das PMS sendet eine Antwort mit einer Meldung, dass die ID nicht korrekt ist. ok AID3 AS kann nicht erreicht werden Eine gültige Auftrags-ID ans PMS senden. Der AS ist nicht erreichbar. Eine Auftrags-ID ist vorhanden. AS läuft nicht. Es erscheint eine Fehlermeldung, dass der AS nicht erreichbar ist ok Tabelle 72: Test Szenarien ID-Antwort speichern Nr. Szenario Beschreibung Ausgangslage Erwartetes Resultat Erfolg IAS1 ID-Antwort speichern Die Auftrags-ID ist dem PMS zugestellt worden Die benötigten Daten sind im Arbeitsspeicher abgespeichert. ok IAS2 ID-Antwort nicht vorhanden Die Auftrags-ID ist dem PMS zugestellt worden Keine Antwort Es erscheint eine Fehlermeldung, dass keine Auftragsdaten vorhanden sind. Es erscheint eine Fehlermeldung, dass keine Antwort vom PMS zurückkommt ok IAS3 Nach dem Senden der Auftrags-ID, kommen mit der Antwort die benötigten Auftragsdaten zurück. Diese Daten werden gespeichert. Nach dem Senden der Auftrags-ID, kommen mit der Antwort keine Auftragsdaten zurück. Nach dem Senden der Auftrags-ID, kommt keine Antwort. 008_Schlussbericht.doc Die Auftrags-ID ist dem PMS zugestellt worden 91/109 ok 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Tabelle 73: Test Szenarien Barcode einlesen Nr. Szenario BE1 Barcode einlesen BE2 BE3 Beschreibung Beschreibung Das System erhält vom HW-Adapter eine Meldung, dass ein Barcode vorhanden ist. Das System liest den Barcode ein und speichert ihn im Arbeitsspeicher ab. Ungültiger Barcode einlesen Das System erhält vom HW-Adapter eine Meldung, dass ein Barcode vorhanden ist. Das System liest den Barcode ein und merkt, dass der Barcode nicht gültig ist. Kein Barcode vorhanden Das System erhält vom HW-Adapter eine Meldung, dass ein Barcode vorhanden ist. Nach dem Lesen ist kein Barcode vorhanden. Ausgangslage Erwartetes Resultat Erfolg Es kommt eine Meldung vom HW-Adapter, dass ein Barcode vorhanden ist. Der Wert des eingelesenen Barcodes ist im Arbeitspeicher gespeichert. ok Es kommt eine Meldung vom HW-Adapter, dass ein Barcode vorhanden ist. Es erscheint eine Fehlermeldung, dass der Barcode ungültig ist. ok Es kommt eine Meldung vom HW-Adapter, dass ein Barcode vorhanden ist. Es erscheint eine Fehlermeldung, dass kein Barcode vorhanden ist. ok Tabelle 74: Test Szenarien Barcode aufsplitten Nr. Szenario Beschreibung Ausgangslage Erwartetes Resultat Erfolg BA1 Barcode aufsplitten Es ist ein Barcode im Arbeitsspeicher vorhanden. Nach dem Einlesen des Barcodes und dem Bestätigen mit Enter wird der Barcode übernommen. ok BA2 Unbekannter Barcode-Typ Es ist ein Barcode im Arbeitsspeicher vorhanden. Nach dem Einlesen des Barcodes und dem Bestätigen mit Enter erscheint eine Fehlermeldung, dass der Barcode-Typ unbekannt ist. ok BA3 Ungültiger Barcode-Typ Nach dem Einlesen wird der Barcode nach Typ identifiziert und ins fokusierte Feld eingetragen. Nach dem Drücken der Enter-Taste wird der Wert übernommen. Nach dem Einlesen wird der Barcode nach Typ identifiziert und ins fokusierte Feld eingetragen. Nach dem Drücken der Enter-Taste wird der Wert nicht übernommen. Nach dem Einlesen wird der Barcode nach Typ identifiziert und ins fokusierte Feld eingetragen. Nach dem Drücken der Enter-Taste wird der Wert nicht übernommen. Es ist ein Barcode im Arbeitsspeicher vorhanden. Nach dem Einlesen des Barcodes und dem Bestätigen mit Enter erscheint eine Fehlermeldung, dass der Barcode-Typ ungültig ist (bekannt, aber z.B. nicht aktiv). ok 008_Schlussbericht.doc 92/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Tabelle 75: Test Szenarien Status speichern Nr. Szenario Beschreibung Beschreibung Ausgangslage SS1 Status speichern SS2 Status speichern, AS nicht erreichbar Der Status des Der AS ist bereit Produktionsstands wird gespeichert und ans PMS gesendet Der Status des Der AS ist nicht bereit Produktionsstands wird gespeichert und ans PMS gesendet. Der AS ist jedoch nicht erreichbar. Erwartetes Resultat Erfolg Der neue Status ist im PMS und in der Terminalanwendung gespeichert. Der neue Status ist bei der Terminalanwendung gespeichert. Beim PMS jedoch nicht. ok Erwartetes Resultat Erfolg Der HW-Adapter ist eingebunden und konfiguriert. ok Es erscheint eine Fehlermeldung, dass die Konfigurationsdatei fehlt. ok Es erscheint eine Fehlermeldung, dass die Konfigurationsdatei fehlt. ok Es wird kein HW-Adapter eingebunden und es erscheint eine Fehlermeldung. ok Es wird kein HW-Adapter eingebunden und es erscheint eine Fehlermeldung. ok ok Tabelle 76: Test Szenarien HW-Adapter laden Nr. Szenario HAL1 HW-Adapter laden HAL2 HW-Adapter laden, jedoch ohne Konfigurationsdatei. HAL3 HW-Adapter laden, mit falschem Konig-Pfad. HAL4 HW-Adapter laden, Bibiliotheke nicht vorhanden HAL5 HW-Adapter laden, Falscher Bibiliothek-Namen 008_Schlussbericht.doc Beschreibung Ausgangslage Die Bibliothek ist vorhanden. Die dazugehörige Beim Starten der Terminalanwendung Konfigurationsdatei ist werden die aktivierten HW- vorhanden. Der konfigurierte Pfad Adapter geladen und stimmt. konfiguriert. Die Bibliothek ist Beim Starten der vorhanden. Terminalanwendung wird Die dazugehörige ein HW-Adapter geladen. Er Konfigurationsdatei ist nicht kann nicht eingebunden vorhanden. werden, da die Der konfigurierte Pfad Konfigurationsdatei fehlt. stimmt. Die Bibliothek ist Beim Starten der vorhanden. Terminalanwendung wird Die dazugehörige ein HW-Adapter geladen. Konfigurationsdatei ist Der Pfad für die vorhanden. Konfigurationsdatei des Der konfigurierte Pfad ist HW-Adapters ist falsch. falsch. Es ist keine Bibliothek vorhanden. Es ist eine Konfigurationsdatei Beim Starten der Terminalanwendung wird vorhanden. versucht einen HW-Adapter Der konfigurierte Pfad einzubinden. stimmt. Es ist eine Bibliothek vorhanden. Es ist eine Konfigurationsdatei vorhanden. Beim Starten der Der konfigurierte Pfad Terminalanwendung wird stimmt. versucht einen HW-Adapter Der konfigurierte Name des einzubinden. HW-Adapters ist falsch. 93/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 12.3.2.3 Operator Tabelle 77: Test Szenarien Sprache ändern Nr. Beschreibung Ausgangslage Erwartetes Resultat SAE1 Sprache ändern Szenario Der Operator wechselt die Sprache. Die Sprache wurde hinzugefügt SAE2 Nicht vollständige Sprachtabelle Der Operator ändert eine Sprache mit einer unvollständigen Sprachtabelle. SAE3 Nicht lateinische Sprache hinzufügen Der Operator ändert die Sprache auf Chinesisch. Es besteht eine unvollständige Sprachtabelle Die Sprache wurde hinzugefügt Es besteht eine Sprachtabelle für Chinesisch Die Sprache wurde hinzugefügt Die komplette Anwendung ok kann online von Deutsch auf Englisch und unbekehrt umgestellt werden Die fehlenden Texte in der ok Sprachtabelle werden in der Standard-Sprache EN dargestellt Erfolg Der Zeichensatz für China wird richtig dargestellt ok Tabelle 78: Test Szenarien Sprachabhängige Bilder anzeigen Nr. Szenario SABA1 Sprachabhängige Bilder anzeigen SABA2 Sprachabhängige Bilder nicht vorhanden Beschreibung Ausgangslage Erwartetes Resultat Erfolg Die sprachabhängigen Bilder werden anhand der gewählten Sprache anzeigen Die sprachabhängigen Bilder können anhand der gewählten Sprache nicht angezeigt werden Die Bilder für die gewählte Sprache sind vorhanden Die Bilder, welche sprachabhängig sind werden korrekt angezeigt ok Die Bilder für die gewählte Sprache sind vorhanden Die Bilder, welche sprachabhängig sind werden werden in der Standardsprache EN angezeigt. Sind auch da keine Bilder vorhanden, erscheint eine Fehlermeldung. ok Tabelle 79: Test Szenarien Operator-ID eingeben Nr. Szenario Beschreibung Ausgangslage Erwartetes Resultat Erfolg OI1 Operator-ID von Hand eingeben Nach dem Öffnen des Anmeldefensters wird das Eingabefeld fokusiert. Der Operator gibt via Tastatur oder virtueller Tastatur seine ID ein und drückt Enter. Es wird eine Anmeldung vom System verlangt oder der Operator will seine ID eingeben (Bsp. OperatorWechsel). Die Anwendung hat die Identifikationsnummer des Operators übernommen. Die virtuelle Tastatur schliesst. ok OI2 Operator-ID mittels Barcode-Leser eingeben Nach dem Öffnen des Anmeldefensters wird das Eingabefeld fokusiert. Der Operator gibt mittels eines Barcode-Lesers seine ID ein. Die Bestätigung geschieht automatisch und der Identifikationsnummer des Operators ist übernommen worden. ok OI3 Falsche ID Nach dem Öffnen des Anmeldefensters wird das Eingabefeld fokusiert. Der Operator gibt eine falsche ID ein und drückt Enter. Es wird eine Anmeldung vom System verlangt oder der Operator will seine ID eingeben (Bsp. OperatorWechsel). Der Barcode-Leser ist bereit. Es wird eine Anmeldung vom System verlangt oder der Operator will seine ID eingeben (Bsp. OperatorWechsel). Die Identifikationsnummer des Operators wird nicht übernommen. Es erscheint eine Fehlermeldung. ok 008_Schlussbericht.doc 94/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Tabelle 80: Test Szenarien Operator-ID abbrechen Nr. Szenario OIA1 Eingabe der Operator-ID wird abgebrochen Beschreibung Ausgangslage Erwartetes Resultat Erfolg Nach dem Öffnen des Anmeldefensters wird das Eingabefeld fokusiert. Der Operator gibt eine ID ein und drückt Abbrechen. Es wird eine Anmeldung vom System verlangt oder der Operator will seine ID eingeben (Bsp. OperatorWechsel). Die Identifikationsnummer des Operators wird nicht übernommen. ok Tabelle 81: Test Szenarien Fenster öffnen Nr. Szenario Beschreibung Ausgangslage Erwartetes Resultat Erfolg FOE1 Arbeitsbeschreibungshilfe öffnen Der Operator öffnet das Fenster. Das Fenster wird angezeigt und ist modal offen. ok FOE2 Arbeitsbeschreibungshilfe ohne hinterlegte Dokumente öffnen Der Operator öffnet das Fenster. Es erscheint eine Fehlermeldung ok FOE3 Auftragsinformationen öffnen Der Operator öffnet das Fenster. Das Fenster wird angezeigt und ist modal offen. ok FOE4 Auftragsinformationen ohne hinterlegte Dokumente öffnen Der Operator öffnet das Fenster. Es erscheint eine Fehlermeldung ok FOE5 Informationen zum nächsten Auftrag öffnen Der Operator öffnet das Fenster. Das Fenster wird angezeigt und ist modal offen. ok Informationen zum nächsten Auftrag ohne hinterlegte Dokumente öffnen Der Operator öffnet das Fenster. Es erscheint eine Fehlermeldung ok Wartungsinformationen öffnen Der Operator öffnet das Fenster. Wartungsinformationen ohne hinterlegte Dokumente öffnen Der Operator öffnet das Fenster. Das Fenster ist aktiviert und in einem Menüpunkt hinterlegt. Das Dokument/Beschreibung ist hinterlegt. Das Fenster ist aktiviert und in einem Menüpunkt hinterlegt. Das Dokument/Beschreibung ist nicht hinterlegt. Das Fenster ist aktiviert und in einem Menüpunkt hinterlegt. Das Dokument/Beschreibung ist hinterlegt. Das Fenster ist aktiviert und in einem Menüpunkt hinterlegt. Das Dokument/Beschreibung ist nicht hinterlegt. Das Fenster ist aktiviert und in einem Menüpunkt hinterlegt. Das Dokument/Beschreibung ist hinterlegt. Das Fenster ist aktiviert und in einem Menüpunkt hinterlegt. Das Dokument/Beschreibung ist nicht hinterlegt. Das Fenster ist aktiviert und in einem Menüpunkt hinterlegt. Das Dokument/Beschreibung ist hinterlegt. Das Fenster ist aktiviert und in einem Menüpunkt hinterlegt. Das Dokument/Beschreibung ist nicht hinterlegt. FOE6 FOE7 FOE8 008_Schlussbericht.doc 95/109 Das Fenster wird angezeigt und ist modal offen. ok Es erscheint eine Fehlermeldung ok 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Bildschirm-Reinigerhilfe öffnen Der Operator öffnet das Fenster. Bildschirm-Reinigerhilfe ohne hinterlegte Dokumente öffnen Der Operator öffnet das Fenster. Bilder-Assistent öffnen Der Operator öffnet das Fenster. Bilder-Assistent ohne hinterlegte Dokumente öffnen Der Operator öffnet das Fenster. FOE9 FOE10 FOE11 FOE12 Test-Bedingungshilfe öffnen Der Operator öffnet das Fenster. FOE13 Test-Bedingungshilfe ohne hinterlegte Dokumente öffnen Der Operator öffnet das Fenster. Rechner öffnen Der Operator öffnet das Fenster. Kalender öffnen Der Operator öffnet das Fenster. Software-Version öffnen Der Operator öffnet das Fenster. Software-Version ohne hinterlegte Dokumente öffnen Der Operator öffnet das Fenster. FOE14 FOE15 FOE16 FOE17 FOE18 008_Schlussbericht.doc Schlussbericht Das Fenster ist aktiviert und in einem Menüpunkt hinterlegt. Das Dokument/Beschreibung ist hinterlegt. Das Fenster ist aktiviert und in einem Menüpunkt hinterlegt. Das Dokument/Beschreibung ist nicht hinterlegt. Das Fenster ist aktiviert und in einem Menüpunkt hinterlegt. Das Dokument/Beschreibung ist hinterlegt. Das Fenster ist aktiviert und in einem Menüpunkt hinterlegt. Das Dokument/Beschreibung ist nicht hinterlegt. Das Fenster ist aktiviert und in einem Menüpunkt hinterlegt. Das Dokument/Beschreibung ist hinterlegt. Das Fenster ist aktiviert und in einem Menüpunkt hinterlegt. Das Dokument/Beschreibung ist nicht hinterlegt. Das Fenster ist aktiviert und in einem Menüpunkt hinterlegt. Das Dokument/Beschreibung ist hinterlegt. Das Fenster ist aktiviert und in einem Menüpunkt hinterlegt. Das Dokument/Beschreibung ist hinterlegt. Das Fenster ist aktiviert und in einem Menüpunkt hinterlegt. Das Dokument/Beschreibung ist hinterlegt. Das Fenster ist aktiviert und in einem Menüpunkt hinterlegt. Das Dokument/Beschreibung ist nicht hinterlegt. 96/109 Das Fenster wird angezeigt und ist modal offen. Ok Es erscheint eine Fehlermeldung Ok Das Fenster wird angezeigt und ist modal offen. Ok Es erscheint eine Fehlermeldung Ok Das Fenster wird angezeigt und ist modal offen. Ok Es erscheint eine Fehlermeldung Ok Das Fenster wird angezeigt und ist modal offen. Ok Das Fenster wird angezeigt und ist modal offen. Ok Das Fenster wird angezeigt und ist modal offen. Ok Es erscheint eine Fehlermeldung Ok 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Tabelle 82: Test Szenarien Fenster schliessen Nr. Szenario Beschreibung Ausgangslage Erwartetes Resultat FS1 Arbeitsbeschreibungshilfe schliessen Auftragsinformationen schliessen Informationen zum nächsten Auftrag schliessen Der Operator beendet das Fenster. Der Operator beendet das Fenster. Der Operator beendet das Fenster. Das Fenster wird angezeigt Das Fenster ist geschlossen ok Das Fenster wird angezeigt Das Fenster ist geschlossen ok Das Fenster wird angezeigt Das Fenster ist geschlossen ok Das Fenster wird angezeigt Das Fenster ist geschlossen ok Das Fenster wird angezeigt Das Fenster ist geschlossen ok Das Fenster wird angezeigt Das Fenster ist geschlossen Das Fenster wird angezeigt Das Fenster ist geschlossen Das Fenster wird angezeigt Das Fenster ist geschlossen Das Fenster wird angezeigt Das Fenster ist geschlossen Das Fenster wird angezeigt Das Fenster ist geschlossen FS2 FS3 FS4 Wartungsinformationen schliessen Bildschirm-Reinigerhilfe schliessen Bilder-Assistent schliessen Der Operator beendet das Fenster. Der Operator beendet das FS5 Fenster. Der Operator beendet das FS6 Fenster. Test-Bedingungshilfe Der Operator beendet das FS7 schliessen Fenster. Rechner schliessen Der Operator beendet das FS8 Fenster. Kalender schliessen Der Operator beendet das FS9 Fenster. Software-Version schliessen Der Operator beendet das FS10 Fenster. Erfolg ok ok ok ok ok Tabelle 83: Test Szenarien Berechnung eingeben Nr. Szenario Beschreibung Ausgangslage Erwartetes Resultat Re sultat Erfolg BE1 Berechnung eingeben Der Operator gibt eine Zahl ein, anschliessend einen Operanden und wieder eine Zahl. Danach wird das Gleichheitszeichen gedrückt. Der Rechner ist gestartet. Das Fenster ist offen. Das richtige Resultat der ok Berechnung wird angezeigt. Erwartetes Resultat Tabelle 84: Test Szenarien SW-Update installieren Nr. Szenario Beschreibung Ausgangslage SUI1 Software update installieren Es ist ein Update vorhanden Das Update ist installiert ok SUI2 Software update ohne vorhandenes update Es ist kein Update vorhanden ok SUI3 Software update installieren, Installationsabbruch Der Operator führt ein Update der Software aus. Die Software wird heruntergeladen und installiert Der Operator führt ein Update der Software aus. Die Software wird heruntergeladen und installiert Der Operator führt ein Update der Software aus. Die Software wird heruntergeladen und kann nicht installiert werden 008_Schlussbericht.doc Das Update wird abgebrochen und es erscheint eine Meldung, dass kein update zur Verfügung steht Es ist ein Update vorhanden Es erscheint eine Fehlermeldung 97/109 Erfolg ok 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht Tabelle 85: Test Szenarien Konfig-Update installieren Nr. Szenario KUI1 Konfigurationsdatei update installieren KUI2 Konfigurationsdatei update ohne vorhandenes update KUI3 Konfigurationsdatei update installieren Beschreibung Ausgangslage Erwartetes Resultat Der Operator führt ein Update der Konfigurationsdatei aus. Die Konfigurationsdatei wird heruntergeladen und installiert Der Operator führt ein Update der Konfigurationsdatei aus. Die Konfigurationsdatei wird heruntergeladen und installiert Der Operator führt ein Update der Konfigurationsdatei aus. Die Konfigurationsdatei wird heruntergeladen und kann nicht installiert werden Es ist ein Update vorhanden Das Update ist installiert ok Es ist kein Update vorhanden ok Das Update wird abgebrochen und es erscheint eine Meldung, dass kein Update zur Verfügung steht Es ist ein Update vorhanden Es erscheint eine Fehlermeldung Erfolg ok Tabelle 86: Test Szenarien Produktionsstand ändern Nr. Beschreibung Ausgangslage Erwartetes Resultat Erfolg PAE1 Produktionsstand via Operator ändern Szenario Der Operator übersteuert den Produktionsstand. Die Terminalanwendung läuft. Der Produktionsstand ist geändert ok PAE2 Produktionsstand via System ändern Das System ändert den Produktionsstand Die Terminalanwendung läuft. Der Produktionsstand ist geändert ok 008_Schlussbericht.doc 98/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 12.4 Klassendiagramme 12.4.1 HardwareHardware-Adapter 12.4.1.1 Label Drucker class LD Class Diagram Component Adapter «enumeration» EParameter Interface - m_rTemplate: Template {readOnly} + ~ + Adapter() GetData(EParameterType) : Parameter Send(Object) : void -m_rAdapter - INTERFACE_NAME: string = "COM" m_rAdapter: Adapter + + + + ~ + ~ Close() : void Init(string) : void Interface() Open() : void SetParameter(EParameter, string) : void SetParent(IAdapter) : void Write(string) : void PORTNUMBER BAUDRATE DATABITS PARITY ST OPBIT Configuration -m_rTemplate Template - ESCAPE_SEQUENCE_DELIMIT ER: char = ':' m_bWordSequenceSize: bool m_nLength: int m_nPosition: int m_rUri: Uri m_sExpression: string m_sFileName: string m_sId: string SEQUENCE_SIZE_BYTE: short = 3 SEQUENCE_SIZE_WORD: short = 5 ~ ~ ~ Delimiter() : void Download(Uri, string, string) : void EscapeSequence() : string Expression() : string Format(Parameter) : void hasDelimiter() : bool hasEndSequence() : bool hasStartSequence() : bool IsEndEscapeSequence(string) : bool IsStartEscapeSequence(string) : bool NotOnEnd() : bool NotOnEnd(int) : bool OnEnd() : bool Parameter() : Parameter Parse() : string Size(Parameter) : void Template() «property» + FilePath() : string + + + + + + + + + + + + + PROPERY_NAME_INTERFACE_BAUDRATE: string = "baudrate" PROPERY_NAME_INTERFACE_DATABITS: string = "databits" PROPERY_NAME_INTERFACE_PARITY: string = "parity" PROPERY_NAME_INTERFACE_PORT: string = "port" PROPERY_NAME_INTERFACE_STOPBITS: string = "stopbits" PROPERY_NAME_TEMPLAT E_END_SEQUENCE: string = "endSequence" PROPERY_NAME_TEMPLAT E_FILE_NAME: string = "fileName" PROPERY_NAME_TEMPLAT E_FORMAT _PATTERN: string = "formatPattern" PROPERY_NAME_TEMPLAT E_PARAMETER_PATT ERN: string = "parameterPattern" PROPERY_NAME_TEMPLAT E_START_SEQUENCE: string = "startSequence" s_sTemplateEndSequence: string s_sTemplateFileName: string s_sTemplateFormatPattern: string s_sTemplateParameterPattern: string s_sTemplateStartSequence: string SECT ION_NAME_DEVICE: string = "librarySetting... SECT ION_NAME_INTERFACE: string = "librarySetting... SECT ION_NAME_TEMPLAT E: string = "librarySetting... + ~ ~ ~ ~ ~ Configure(string, Interface) : void GetT emplateEndSequence() : string GetT emplateFileName() : string GetT emplateFormatPattern() : string GetT emplateParameterPattern() : string GetT emplateStartSequence() : string «property» + Baudrate() : string + DataBits() : string + Parity() : string + Port() : string + StopBits() : string + TemplateEndSequence() : string + TemplateFileName() : string + TemplateFormatPattern() : string + TemplateParameterPattern() : string + TemplateStartSequence() : string Exception ParseException - m_nPosition: int {readOnly} m_sMethod: String {readOnly} + + + + GetMethod() : String GetPosition() : int ParseException() ParseException(int, String) Abbildung 19: Klassendiagramm Label Drucker 008_Schlussbericht.doc 99/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 12.4.1.2 BarcodeBarcode -Leser class BL Class Diagram Configuration Adapter + ~ ~ ~ Adapter() SetBarcode(string) : void SetStatus(EStatus, string) : void SetStatus(EStatus) : void + + + + + + PROPERY_NAME_INTERFACE_BAUDRATE: string = "baudrate" PROPERY_NAME_INTERFACE_DATABITS: string = "databits" PROPERY_NAME_INTERFACE_PARITY: string = "parity" PROPERY_NAME_INTERFACE_PORT: string = "port" PROPERY_NAME_INTERFACE_STOPBITS: string = "stopbits" SECTION_NAME_INTERFACE: string = "librarySetting... + Configure(string, Interface) : void «property» + Baudrate() : string + DataBits() : string + Parity() : string + Port() : string + StopBits() : string -m_rAdapter Component Interface - INTERFACE_NAME: string = "COM" m_rAdapter: Adapter + + + + ~ + Close() : void Init(string) : void Interface() Open() : void SerialPort_DataReceived(object, System.IO.Ports.SerialDataReceivedEventArgs) : void SetParameter(EParameter, string) : void SetParent(IAdapter) : void «enumeration» EParameter PORTNUMBER BAUDRATE DATABITS PARITY STOPBIT Abbildung 20: Klassendiagramm Barcode-Leser 008_Schlussbericht.doc 100/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 12.4.2 Framework class FW Class Diagram Application Order -s_rTerminalPMSFramework TerminalPMSFramew ork + + + + - CR: string = "\r\n" CRCR: string = "\r\n\r\n" m_rOperator: Operator {readOnly} m_rOrder: Order {readOnly} MB_NAMESPACE: string = "MeyerBurger.PMS2" s_rTerminalPMSFramework: TerminalPMSFramework + + + + + + + GetOperator() : Operator GetOrder() : Order GetTerminalPMSFramework() : TerminalPMSFramework Init(string) : bool InitAdapters() : bool InitConfiguration(string) : bool InitLanguage() : bool InitLogin() : bool InitScreens() : bool LastWindowClosed(object, EventArgs) : void LoadAdapter(string, string, int) : void OnAdapterDataReceived(IAdapter, Object) : void OnAdapterDataReceivedEventHandlerInternal(object, IAdapter, Object) : void OnAdapterRequestParameter(IAdapter, EParameterType) : Parameter OnAdapterStatusChanged(IAdapter, Status) : void PrepareArguments(string[]) : string Start() : void Start(string) : void TerminalPMSFramework() UpdateAll() : void -m_rOrder Order() «property» + ParentId() : string + PartId() : string + Weight() : double Operator -m_rOperator - m_bLoginDialogActive: bool m_rDispatcher: Dispatcher {readOnly} m_rLoginIdleTimer: Timer m_sOperatorId: string + + + + Init() : void LoginIdleTimeout(object) : void LoginIdleTimeoutDelegate(object) : void OnLoginIdleT imerElapsed(object, ElapsedEventArgs) : void Operator(Dispatcher) ResetLoginTimeout() : void SetLoginDialogActive(bool) : void «event» - LoginDialogClosedEvent() : LoginDialogClosedEventHandler «property» + OperatorId() : string «event» + AdapterDataReceivedEvent() : AdapterDataReceivedEventHandler Language «property» ~ AdapterList() : List<IAdapter> + ApplicationAssemply() : Assembly + Company() : string + LibraryAssembly() : Assembly ~ ModalDialog() : Dialog ~ ScreenList() : List<Screen> + Solution() : string «enumeration» EId User Order Brick Ingot WorkpieceFixDev Wafer BrickPart Id + Check(string, EId) : bool GetAltState() : bool GetCtrlState() : bool GetShiftState() : bool LANGUAGE_DEFAULT: ushort = 0 LANGUAGE_DEFAULT_FOLDER_NAME: string = "lang" LANGUAGE_FILE_EXTENSION: string = ".xml" LANGUAGE_FILE_NAME_BEGIN: string = "language_" LANGUAGE_IMAGE_FILE_EXTENSION: string = ".png" m_rDoc: XmlDocument {readOnly} m_rImageFileList: string ([]) {readOnly} m_rTableFileList: string ([]) {readOnly} s_rLanguage: Language + + + + CreateInstance() : void GetImageSource(ushort) : Uri GetPath() : string GetText(string) : string Language() Load(ushort) : void ToString(ushort) : string -s_rLanguage «property» + Current() : ushort KeyboardState + + + + + + + + - KeyCharacter + - Character(Key) : char GetNormalCharacter(Key) : char GetShiftCharacter(Key) : char Softw areUpdate + UPDATER_FILE_NAME: string = "Updater.exe" + Update() : void Control Clock + + - DateTimeChangedEvent: RoutedEvent = EventManager.Re... {readOnly} DateTimeProperty: DependencyProperty = DependencyPrope... timer: DispatcherTimer # # - Clock() OnDateTimeChanged(DateTime, DateTime) : void OnDateT imeInvalidated(DependencyObject, DependencyPropertyChangedEventArgs) : void OnInitialized(EventArgs) : void T imer_Tick(object, EventArgs) : void UpdateDateTime() : void «property» + DateTime() : DateTime Abbildung 21: Klassendiagramm Framework, Teil 1 008_Schlussbericht.doc 101/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht class FW Class Diagram «enumeration» ESemiE10State Productive ProductiveRegular ProductiveRework ProductiveEngineering Standby StandbyOperator StandbyIdle StandbyTools StandbyData -m_eState Engineering EngineeringProcess EngineeringProduct SheduleDownTime SdMaintenanceDelay SdProductionTest SdMaintenance SdChange SdSetup SdFacilities UnsheduleDownTime UsdMaintenanceDelay UsdRepair UsdChange UsdSpec UsdFacilities NssStartup SemiE10Manager - m_eState: ESemiE10State m_rTimer: Timer {readOnly} s_eOverload: ESemiE10Overload = ESemiE10Overloa... s_rSemiE10ManagerList: List<SemiE10Manager> + + + CreateList() : void GetSemiE10Manager(ushort) : SemiE10Manager GetState(ESemiE10State) : short OnTimerElapsed(object, ElapsedEventArgs) : void SemiE10Manager() Send() : void SetGlobalState(ESemiE10State) : void «enumeration» ESemiE10Ov erload -s_eOverload UsdRepair SdMaintenanceDelay SdChange Engineering None «property» + State() : ESemiE10State + StateOverload() : ESemiE10Overload Abbildung 22: Klassendiagramm Framework, Teil 2 008_Schlussbericht.doc 102/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 12.4.2.1 Adapter class FW Adapter Class Diagram «interface» IAdapter + + + + ConfigurationSection AConfiguration Add(string, int) : AdapterType GetId() : int GetType() : EAdapter Remove() : void «event» + StatusChangedEvent() : StatusChangedEventHandler - s_rConfiguration: System.Configuration.Configuration # # ConfigureBase(string) : void GetSection(string) : ConfigurationSection «interface» IDataInput «interface» IDataOutput + «event» + DataReceivedEvent() : DataReceivedEventHandl er Send(Object) : void «event» + RequestParameterEvent() : RequestParameterEventHandler ADataInput # # ADataOutput ADataInput(IInterface, EAdapter) DataReceivedAction(Object) : void # # + «event» + DataReceivedEvent() : DataReceivedEventHandl er ADataOutput(IInterface, EAdapter) RequestParameterAction(EParameterT ype) : Parameter Send(Object) : void «event» + RequestParameterEvent() : RequestParameterEventHandler «interface» IInterface Close() : void Init(string) : void Open() : void SetParent(IAdapter) : void + + + + «enumerati on» EAdapter «enumeration» EFormatType AAdapter #m_rInterface -m_eAdapter None BarcodeReader LabelPrinter # m_eAdapter: EAdapter {readOnly} m_nId: int m_rInterface: IInterface # + + + + + # # AAdapter(IInterface, EAdapter) Add(string, int) : AdapterT ype GetId() : int GetT ype() : EAdapter LibraryDataPath() : string Remove() : void StatusChangedAction(EStatus) : void StatusChangedAction(EStatus, string) : void ASCII BINARY UT F8 UT F16 AdapterType «event» + StatusChangedEvent() : StatusChangedEventHandler Exception AdapterException + + AdapterException() AdapterException(string) - m_bInputAdapter: bool m_bOutputAdapter: bool + + + + AdapterT ype() AdapterT ype(EAdapter) Init(EAdapter) : void IsInputAdapter() : bool IsOutputAdapter() : bool «property» + Adapter() : EAdapter Parameter + + + + + + + + + + FOMRAT _T YLE_UT F16: string = "16" FORMAT _T YPE_ASCII: string = "A" FORMAT _T YPE_BINARY: string = "B" FORMAT _T YPE_UT F8: string = "8" m_rValue: Object m_uSize: ushort PARAMET ER_T YPE_DAT E: string = "Date" PARAMET ER_T YPE_ORDER_PARENT: string = "Order.Parent" PARAMET ER_T YPE_ORDER_PART : string = "Order.Part" PARAMET ER_T YPE_T IME: string = "T ime" PARAMET ER_T YPE_USER: string = "User" PARAMET ER_T YPE_WEIGHT : string = "Weight" + + + + + + + + Parameter(EParameterT ype) Parameter(EParameterT ype, Object) Parameter(IComparable<string>) Parameter(IComparable<string>, Object) setFormat(string) : void setParameter(EParameterType) : void setParameter(IComparable<string>) : void setSize(ushort) : void setValue(Object) : void T oString() : string «property» + FormatT ype() : EFormatT ype + ParameterT ype() : EParameterT ype «enumeration» EStatus UnknownStatus UnknownFailure Confi gurationFil eNotFound Confi gurationInvalidFile Confi gurationInvalidParameter Confi gurationInvalidFormat Confi gurationFailed Confi gurationDone InterfaceReady DeviceBusy DataInvalid T emplateFileNotFound DataSendedToDevi ce Status + + + Status() Status(EStatus) Status(EStatus, string) «property» + Message() : stri ng + Value() : EStatus «enumeration» EParameterType Date OrderPart OrderParent T ime User Weight Abbildung 23: Klassendiagramm Adapter 008_Schlussbericht.doc 103/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 12.4.2.2 Communication class FW CommunicationClass Diagram ISClient -s_rISClient Exception - m_bErrorMessageDisplayed: bool m_rServiceProxy: IASService s_rISClient: ISClient + + + + + + + + CloseConnection() : void CommunicationMessageFailed(EndpointNotFoundException) : void CommunicationMessageOk() : void FinishT ask() : bool GetISClient() : ISClient GetNextBrickId() : string GetUrl(EUrlId) : Uri ISClient() NextTaskData(string) : string OpenConnection() : void SendId(string) : bool SetBrickData(string, string) : bool SetSemiE10State(string) : bool PMSClientException + + PMSClientException() PMSClientException(string) WebClient PMSClient + GetFile(Uri, string) : void Abbildung 24: Klassendiagramm Communication 008_Schlussbericht.doc 104/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 12.4.2.3 Configuration class FW Configuration Class Diagram BaseSectionGroup CommunicationWithASGroup GeneralSectionGroup + SECTION_GROUP_NAME: string = "baseSettings" + + BaseSectionGroup(System.Configuration.Configuration) + CommunicationWithASGroup(System.Configuration.Configuration) + GeneralSectionGroup(System.Configuration.Configuration) «property» + Endpoint() : EndpointSection «property» + Workflow() : WorkflowSection «property» + Version() : VersionSection SECTION_GROUP_NAME: string = "communicationW... + SECTION_GROUP_NAME: string = "generalSettings" UtilitiesSectionGroup GuiSectionGroup + SECTION_GROUP_NAME: string = "guiSettings" + GuiSectionGroup(System.Configuration.Configuration) «property» + Layout() : LayoutSection + Windows() : WindowsSection + SECTION_GROUP_NAME: string = "languageSettings" + LanguageSectionGroup(System.Configuration.Configuration) SECTION_GROUP_NAME: string = "utilitiesSettings" + UtilitiesSectionGroup(System.Configuration.Configuration) «property» + Calculator() : CalculatorSection + Calendar() : CalendarSection + PicturesWizard() : PicturesWizardSection + ScreenCleaner() : ScreenCleanerSection + TestConditionHelp() : TestConditionHelpSection ASectionGroup LanguageSectionGroup + - m_rConfiguration: System.Configuration.Configuration {readOnly} m_sSectionGroupName: string {readOnly} # # ASectionGroup(System.Configuration.Configuration, string) GetConfigurationSection(string) : ConfigurationSection IdentificationSectionGroup + SECTION_GROUP_NAME: string = "identification... + IdentificationSectionGroup(System.Configuration.Configuration) «property» + BrickNumbers() : BrickNumbersSection + IngotNumbers() : IngotNumbersSection + Operator() : OperatorSection + OperatorNumbers() : OperatorNumbersSection + OrderNumbers() : OrderNumbersSection + WorkpieceFixDevNumbers() : WorkpieceFixDevNumbersSection «property» + Language() : LanguageSection SemiE10SectionGroup Hardw areSectionGroup + SECTION_GROUP_NAME: string = "semiE10Settings" + SECTION_GROUP_NAME: string = "hardwareSettings" + SemiE10SectionGroup(System.Configuration.Configuration) + HardwareSectionGroup(System.Configuration.Configuration) «property» + StateCycle() : StateCycleSection «property» + Devices() : DevicesSection + TouchScreen() : TouchScreenSection Abbildung 25: Klassendiagramm Configuration, Teil 1 008_Schlussbericht.doc 105/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht class FW Configuration Class Diagram EndpointSection + PROPERY_NAME_ADDRESS: string = "address" SECTION_NAME: string = "endpoint" «property» + Address() : string Dev icesSection + OperatorNumbersSection ELEMENT_NAME_ADAPTER: string = "adapter" PROPERTY_NAME_ADAPT ERS: string = "adapters" SECTION_NAME: string = "devices" + OrderNumbersSection PROPERY_NAME_VALID: string = "valid" SECTION_NAME: string = "operatorNumbers" «property» + Valid() : bool «property» + Adapters() : AdapterCollection + PROPERY_NAME_VALID: string = "valid" SECTION_NAME: string = "orderNumbers" «property» + Valid() : bool LanguageSection + IngotNumbersSection PROPERY_NAME_PATH: string = "path" SECTION_NAME: string = "language" OperatorSection + «property» + Path() : string PROPERY_NAME_TIMEOUT: string = "timeout" SECT ION_NAME: string = "operator" PROPERY_NAME_VALID: string = "valid" SECTION_NAME: string = "ingotNumbers" «property» + Valid() : bool «property» + Timeout() : int WorkpieceFixDev NumbersSection + + CalendarSection PROPERY_NAME_VALID: string = "valid" SECTION_NAME: string = "workpieceFixDe... + SECTION_NAME: string = "calendar" ConfigurationSection «property» + Valid() : bool CalculatorSection ASection + SECTION_NAME: string = "calculator" LayoutSection + PROPERY_NAME_SMENU_TOP_MARGIN: string = "sMenuTopMargin" SECTION_NAME: string = "layout" BrickNumbersSection «property» + SMenuTopMargin() : short TouchScreenSection + Workflow Section + + PROPERY_NAME_JOB_SPECIFICATION_FILE: string = "jobSpecificati... SECTION_NAME: string = "workflow" PROPERY_NAME_ENABLE: string = "enable" SECTION_NAME: string = "touchScreen" ScreenCleanerSection «property» + JobSpecificationFile() : string + «property» + Valid() : bool «property» + Enable() : bool StateCycleSection TestConditionHelpSection PROPERY_NAME_PATH: string = "path" PROPERY_NAME_PATH_DEFAULT_VALUE: string = "testConditionHelp" SECTION_NAME: string = "testConditionHelp" + PROPERY_NAME_TIMEOUT: string = "timeout" SECTION_NAME: string = "stateCycle" + PROPERY_NAME_TIMEOUT: string = "timeout" SECTION_NAME: string = "screenCleaner" «property» + Timeout() : int «property» + Timeout() : int VersionSection Window sSection «property» + Path() : string + PicturesWizardSection + PROPERY_NAME_VALID: string = "valid" SECTION_NAME: string = "brickNumbers" PROPERY_NAME_PATH: string = "path" PROPERY_NAME_PATH_DEFAULT _VALUE: string = "pictureWizard" SECTION_NAME: string = "picturesWizard" ELEMENT_NAME_DIALOG: string = "dialog" ELEMENT_NAME_SCREEN: string = "screen" PROPERTY_NAME_DIALOGS: string = "dialogs" PROPERTY_NAME_SCREENS: string = "screens" SECT ION_NAME: string = "windows" + PROPERY_NAME_BUILD: string = "build" PROPERY_NAME_MAJOR: string = "major" PROPERY_NAME_MINOR: string = "minor" SECTION_NAME: string = "version" «property» + Build() : short + Major() : short + Minor() : short «property» + Dialogs() : DialogCollection + Screens() : ScreenCollection «property» + Path() : string Abbildung 26: Klassendiagramm Configuration, Teil 2 008_Schlussbericht.doc 106/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht class FW Configuration Class Diagram ConfigManager -s_rConfigManager - m_rConfiguration: System.Configuration.Configuration {readOnly} s_rConfigManager: ConfigManager + + ConfigManager(string) CreateConfigManager(string) : ConfigManager GetConfigManager() : ConfigManager ConfigurationElement Window sSection::ScreenElement «property» + Base() : BaseSectionGroup + CommunicationWithAS() : CommunicationWithASGroup + General() : GeneralSectionGroup + GUI() : GuiSectionGroup + Hardware() : HardwareSectionGroup + Identification() : IdentificationSectionGroup + Language() : LanguageSectionGroup + SemiE10() : SemiE10SectionGroup + Utilities() : UtilitiesSectionGroup RegistryManager -s_rRegistryManager - s_rRegistryManager: RegistryManager s_sApplicationRegistryKey: string + + + + GetRegistryManager() : RegistryManager GetValue(string, Object) : Object RegistryManager() SetValue(string, Object) : void ConfigurationElementCollection Window sSection::ScreenCollection # # ConfigurationElementCollection DialogCollection # # CreateNewElement() : ConfigurationElement GetElementKey(ConfigurationElement) : object «indexer» + this(int) : DialogElement CreateNewElement() : ConfigurationElement GetElementKey(ConfigurationElement) : object ConfigurationElement «indexer» + this(int) : ScreenElement DialogElement ConfigurationElementCollection Dev icesSection::AdapterCollection # # CreateNewElement() : ConfigurationElement GetElementKey(ConfigurationElement) : object «indexer» + this(int) : AdapterElement - PROPERT Y_NAME_BUTT ONS: string = "buttons" PROPERT Y_NAME_DISABLE: string = "disable" PROPERTY_NAME_INT ERNAL: string = "internal" PROPERT Y_NAME_NAME: string = "name" «property» + Buttons() : EDialogButtons + Disable() : bool + Internal() : bool + Name() : string ConfigurationElement Dev icesSection::AdapterElement - PROPERTY_NAME_CONFIG_FILE: string = "confFile" PROPERTY_NAME_NAME: string = "name" «property» + ConfigFile() : string + Name() : string - PROPERT Y_NAME_DISABLE: string = "disable" PROPERT Y_NAME_F1: string = "f1" PROPERT Y_NAME_F10: string = "f10" PROPERT Y_NAME_F11: string = "f11" PROPERT Y_NAME_F12: string = "f12" PROPERT Y_NAME_F13: string = "f13" PROPERT Y_NAME_F14: string = "f14" PROPERT Y_NAME_F15: string = "f15" PROPERT Y_NAME_F16: string = "f16" PROPERT Y_NAME_F17: string = "f17" PROPERT Y_NAME_F18: string = "f18" PROPERT Y_NAME_F19: string = "f19" PROPERT Y_NAME_F2: string = "f2" PROPERT Y_NAME_F20: string = "f20" PROPERT Y_NAME_F3: string = "f3" PROPERT Y_NAME_F4: string = "f4" PROPERT Y_NAME_F5: string = "f5" PROPERT Y_NAME_F6: string = "f6" PROPERT Y_NAME_F7: string = "f7" PROPERT Y_NAME_F8: string = "f8" PROPERT Y_NAME_F9: string = "f9" PROPERT Y_NAME_INT ERNAL: string = "internal" PROPERT Y_NAME_NAME: string = "name" PROPERT Y_NAME_S1: string = "s1" PROPERT Y_NAME_S10: string = "s10" PROPERT Y_NAME_S11: string = "s11" PROPERT Y_NAME_S12: string = "s12" PROPERT Y_NAME_S13: string = "s13" PROPERT Y_NAME_S14: string = "s14" PROPERT Y_NAME_S15: string = "s15" PROPERT Y_NAME_S16: string = "s16" PROPERT Y_NAME_S2: string = "s2" PROPERT Y_NAME_S3: string = "s3" PROPERT Y_NAME_S4: string = "s4" PROPERT Y_NAME_S5: string = "s5" PROPERT Y_NAME_S6: string = "s6" PROPERT Y_NAME_S7: string = "s7" PROPERT Y_NAME_S8: string = "s8" PROPERT Y_NAME_S9: string = "s9" PROPERT Y_NAME_T OP: string = "top" «property» + Disable() : bool + F1() : string + F10() : string + F11() : string + F12() : string + F13() : string + F14() : string + F15() : string + F16() : string + F17() : string + F18() : string + F19() : string + F2() : string + F20() : string + F3() : string + F4() : string + F5() : string + F6() : string + F7() : string + F8() : string + F9() : string + Internal() : bool + Name() : string + S1() : string + S10() : string + S11() : string + S12() : string + S13() : string + S14() : string + S15() : string + S16() : string + S2() : string + S3() : string + S4() : string + S5() : string + S6() : string + S7() : string + S8() : string + S9() : string + Top() : bool Abbildung 27: Klassendiagramm Configuration, Teil 3 008_Schlussbericht.doc 107/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 12.4.2.4 GUI class FW GUI Class Diagram SemiE10 MessageDialog Config - s_rDial ogList: Li st<Di alog> + FUNCT ION_NAME_LANGUAGE_BEGIN: string = "Language_" + + + + + + + + + + Acti ve() : bool CreateDial og(EMessageDi alog, stri ng) : voi d CreateDial ogDel egate(obj ect, EMessageDi alog, stri ng) : voi d Critical(string) : voi d Execute(stri ng) : void GetIconImage(string) : Image Info(stri ng) : voi d KeyPressed(Key) : voi d ListCount() : i nt MessageDial og() MessageDial og(AWindow) OnCreateDial ogDelegate(obj ect, EMessageDi alog, stri ng) : voi d Warning(string) : voi d + + + + + + - ButtonWithCaption(string) : bool Config() Config(AWindow) Execute(stri ng) : voi d GetMenuButtonIconImage(string) : Image Update() : void UpdateLanguageButtons() : voi d + + # + + - btnEngi neeri ng_Cl ick(obj ect, System.Windows.RoutedEventArgs) : voi d btnExpendable_Cli ck(object, System.Wi ndows.RoutedEventArgs) : void btnRepai r_Cli ck(object, System.Wi ndows.RoutedEventArgs) : void btnServi ce_Cli ck(object, System.Wi ndows.RoutedEventArgs) : void ButtonWi thCapti on(stri ng) : bool Execute(string) : void OnLoaded() : voi d Semi E10() Semi E10(AWindow) SetOverl oad(AButton, ESemiE10Overload) : void UpdateButtons() : void «enumerati on» EMessageDialog JobSpecification Critical Warning Info + + + UserControl JobSpeci fi cation() JobSpeci fi cation(AWindow) Update() : void AContentControl MaintenanceInformation + + + + + + + + + + + + + # + Mai ntenanceInformation() Mai ntenanceInformation(AWindow) Update() : void OrderInformation + + + OrderInformation() OrderInformation(AWi ndow) Update() : voi d AContentControl() AContentControl(AWindow) ButtonWi thCapti on(stri ng) : bool Close() : voi d Execute(string) : void GetContentControl(int, bool) : AContentControl GetContentControl(int, bool, AWi ndow) : AContentControl GetContentControl(string, bool , AWindow) : AContentControl GetMenuButtonIconImage(stri ng) : Image KeyPressed(Key) : voi d OnLoaded() : voi d OnLoaded(object, RoutedEventArgs) : voi d OnVisi bleChanged(obj ect, DependencyPropertyChangedEventArgs) : voi d Update() : voi d Help + + Hel p() Hel p(AWi ndow) «property» + Ful lscreen() : bool + MenuButtonCapti onWi thIcon() : bool + Window() : AWi ndow NextOrderInformation + + + NextOrderInformation() NextOrderInformation(AWindow) Update() : voi d - m_rOperator: Operator {readOnly} + + + # AdapterDataReceivedEventHandler(object, IAdapter, Object) : void Execute(string) : voi d Logi n() Logi n(AWi ndow) OnLoaded() : voi d Login Window Id + INIT_WINDOW_ID: i nt = -1 + GetId(string, bool ) : int Window AWindow VirtualKeyboardAll + + + btnA_Cl ick(obj ect, System.Wi ndows.RoutedEventArgs) : void btnB_Cl ick(obj ect, System.Wi ndows.RoutedEventArgs) : void btnBackspace_Cl ick(object, System.Wi ndows.RoutedEventArgs) : void btnC_Cl ick(obj ect, System.Wi ndows.RoutedEventArgs) : void btnD_Cl ick(obj ect, System.Wi ndows.RoutedEventArgs) : void btnE_Cl ick(obj ect, System.Wi ndows.RoutedEventArgs) : void btnEight_Cl ick(object, System.Wi ndows.RoutedEventArgs) : void btnEnter_Cl ick(object, System.Wi ndows.RoutedEventArgs) : void btnF_Cli ck(object, System.Windows.RoutedEventArgs) : voi d btnFi ve_Cli ck(object, System.Windows.RoutedEventArgs) : voi d btnFour_Cl ick(obj ect, System.Wi ndows.RoutedEventArgs) : void btnG_Cli ck(object, System.Windows.RoutedEventArgs) : voi d btnH_Cl ick(obj ect, System.Wi ndows.RoutedEventArgs) : void btnI_Cl ick(obj ect, System.Wi ndows.RoutedEventArgs) : void btnJ_Cl ick(obj ect, System.Wi ndows.RoutedEventArgs) : void btnK_Cl ick(obj ect, System.Wi ndows.RoutedEventArgs) : void btnL_Cli ck(object, System.Windows.RoutedEventArgs) : voi d btnM_Cl ick(obj ect, System.Wi ndows.RoutedEventArgs) : void btnMinus_Cli ck(obj ect, System.Windows.RoutedEventArgs) : voi d btnN_Cl ick(obj ect, System.Wi ndows.RoutedEventArgs) : void btnNine_Cli ck(object, System.Windows.RoutedEventArgs) : voi d btnO_Cli ck(object, System.Windows.RoutedEventArgs) : voi d btnOne_Cli ck(object, System.Windows.RoutedEventArgs) : voi d btnP_Cl ick(obj ect, System.Wi ndows.RoutedEventArgs) : void btnPoint_Cl ick(object, System.Wi ndows.RoutedEventArgs) : void btnQ_Cli ck(object, System.Windows.RoutedEventArgs) : voi d btnR_Cl ick(obj ect, System.Wi ndows.RoutedEventArgs) : void btnS_Cl ick(obj ect, System.Wi ndows.RoutedEventArgs) : void btnSeven_Cli ck(obj ect, System.Windows.RoutedEventArgs) : voi d btnSix_Cl ick(obj ect, System.Wi ndows.RoutedEventArgs) : void btnSpace_Cli ck(obj ect, System.Windows.RoutedEventArgs) : voi d btnT _Cl ick(obj ect, System.Wi ndows.RoutedEventArgs) : void btnT hree_Cli ck(obj ect, System.Windows.RoutedEventArgs) : voi d btnT wo_Cli ck(object, System.Windows.RoutedEventArgs) : voi d btnU_Cl ick(obj ect, System.Wi ndows.RoutedEventArgs) : void btnV_Cl ick(obj ect, System.Wi ndows.RoutedEventArgs) : void btnW_Cl ick(obj ect, System.Wi ndows.RoutedEventArgs) : void btnX_Cl ick(obj ect, System.Wi ndows.RoutedEventArgs) : void btnY_Cl ick(obj ect, System.Wi ndows.RoutedEventArgs) : void btnZ_Cli ck(object, System.Windows.RoutedEventArgs) : voi d btnZero_Cl ick(obj ect, System.Wi ndows.RoutedEventArgs) : void Update() : void Vi rtualKeyboardAll () Vi rtualKeyboardAll (AWi ndow) + # + + + # AWi ndow() KeyPressed(Key) : voi d OnClosi ng(obj ect, CancelEventArgs) : voi d OnDeactivated(object, EventArgs) : voi d OnKeyDown(object, KeyEventArgs) : voi d OnLostFocus(object, EventArgs) : voi d OnMouseMove(obj ect, MouseEventArgs) : voi d OnVisi bleChanged(obj ect, DependencyPropertyChangedEventArgs) : voi d SetButtonEnabl ed(EButton, bool ) : voi d SetButtonState(EButton, EButtonMul ti state) : voi d Update() : voi d WindowCl osing(CancelEventArgs) : voi d «property» + All waysBringT oFront() : bool + IgnoreKeyInputs() : bool AVirtualKeyboard # # # m_bAdapterInput: bool m_rIconCapti onTypeGri d: Grid m_rIconCapti onUni tGrid: Gri d m_rInputValueT extBox: T extBox + + + + # + + + + + AdapterDataRecei vedEventHandler(obj ect, IAdapter, Obj ect) : void AVi rtualKeyboard() AVi rtualKeyboard(AWi ndow) Execute(string) : void HasCl ickedEventHandler() : bool SendKey(Key) : void SetIconCapti onType(ImageSource, string) : void SetIconCapti onUni t(ImageSource, stri ng) : voi d SetIconT ype(ImageSource) : void SetIconUnit(ImageSource) : voi d SetInputValue(string, bool ) : voi d «event» + Cli ckedEvent() : Cli ckedEventHandl er + ValueEvent() : ValueEventHandl er VirtualKeyboardNum + + + btnBackspace_Cl ick(obj ect, RoutedEventArgs) : void btnEight_Cl ick(obj ect, RoutedEventArgs) : void btnEnter_Cl ick(obj ect, RoutedEventArgs) : void btnFi ve_Cli ck(object, RoutedEventArgs) : voi d btnFour_Cl ick(obj ect, RoutedEventArgs) : void btnMinus_Cli ck(object, RoutedEventArgs) : voi d btnNine_Cli ck(object, RoutedEventArgs) : voi d btnOne_Cli ck(object, RoutedEventArgs) : voi d btnPoint_Cl ick(obj ect, RoutedEventArgs) : void btnSeven_Cli ck(object, RoutedEventArgs) : voi d btnSix_Cl ick(obj ect, RoutedEventArgs) : void btnT hree_Cli ck(object, RoutedEventArgs) : voi d btnT wo_Cli ck(object, RoutedEventArgs) : voi d btnZero_Cl ick(obj ect, RoutedEventArgs) : void Update() : void Vi rtualKeyboardNum() Vi rtualKeyboardNum(AWi ndow) Abbildung 28: Klassendiagramm GUI 008_Schlussbericht.doc 108/109 19.02.2009 MasterMaster-Thesis MASMAS- IT 0606-02 Schlussbericht 12.4.3 ReferenzReferenz-Anwendung „Brick Separierer“ class Class Model AContentControl Top Program - Main(string[]) : void Brick + - m_rButton: CustomButton m_rContentControl: AContentControl + Brick(AContentControl, string, string, int, bool, bool) -m_rBrick «property» + m_bIsMeasured() : bool + m_bMustMeasure() : bool + m_dMaxBrickWidth() : double + m_dMinBrickWidth() : double + m_iBrickMeasureOrder() : int + m_sBrickID() : string + m_sBrickName() : string Measure + + + + # ButtonWithCaption(string) : bool Execute(string) : void Measure() Measure(AWindow) OnLoaded() : void OrderID + # + + Execute(string) : void OnLoaded() : void OrderID() OrderID(AWindow) - m_bActualBrickFail: bool m_bFailBrick: bool m_bStarted: bool m_dLength: double m_dMaxWidth: double m_dMinWidth: double m_dWidth1: double m_dWidth2: double m_iColumn: int m_iCountSteps: int m_iProcessCounter: int m_iRow: int m_isMeasured: bool m_rBrick: Brick ([,]) m_rLabelPrinterAdapter: IDataOutput m_rProcessOrder: ProcessOrderIndex ([]) m_rProcessOrderIndex: ProcessOrderIndex m_rXMLDoc: XmlDocument = new XmlDocument() m_sOrderID: string m_sUriLabelPrinterTemplate: string + + + + + + + + ButtonWithCaption(string) : bool ChangeStep(ESteps) : void Download(string) : void Execute(string) : void Init() : void OnLoginDialogClosed(object) : void SetMeasureData(double, double, double) : bool SetOrderID(string) : void Top() Top(AWindow) Abbildung 29: Klassendiagramm Referenz-Anwendung „Brick Separierer“ 008_Schlussbericht.doc 109/109 19.02.2009