83
Klasse.Nr / Datum MAS-06-01.08 / 10. September 2008 Student / Autor Christoph Fahrni, Ahornweg 13, 3363 Oberönz P: 062 961 12 55 [email protected] G: 062 956 33 91 [email protected] Betreuer Andreas Weber, Poststr. 9a, 4562 Biberist G: 062 956 36 75 [email protected] Experte Pierre Fierz, Fischerweg 15, 3012 Bern P: 031 351 40 31 [email protected] Schlüsselwörter Datenbank, Webanwendung, Produktionsüberwachung, Qualität, Qualitätskontrolle, Report Berner Fachhochschule Technik und Informatik Software-Schule Schweiz Diplombericht Master Thesis Produktionsüberwachung in der Firma Bystronic Laser AG Abstract Das IT-System Produktionsüberwachung ist ein Werkzeug zur Qualitätssicherung in der Bystronic Laser AG und verwaltet Messresultate, Serialnummern und Prüfpunkte von Produktionsaufträgen. Die Client-/Server-Anwendung erstellt formatierte Reporte, sowie qualitätsbezogene statistische Auswertungen.

Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Embed Size (px)

Citation preview

Page 1: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Klasse.Nr / Datum MAS-06-01.08 / 10. September 2008

Student / Autor Christoph Fahrni, Ahornweg 13, 3363 Oberönz P: 062 961 12 55 [email protected] G: 062 956 33 91 [email protected]

Betreuer Andreas Weber, Poststr. 9a, 4562 Biberist G: 062 956 36 75 [email protected]

Experte Pierre Fierz, Fischerweg 15, 3012 Bern P: 031 351 40 31 [email protected]

Schlüsselwörter

Datenbank, Webanwendung, Produktionsüberwachung, Qualität, Qualitätskontrolle, Report

Berner Fachhochschule

Technik und Informatik

Software-Schule Schweiz

Diplombericht Master Thesis

Produktionsüberwachung in der Firma Bystronic Laser AG

Abstract Das IT-System Produktionsüberwachung ist ein Werkzeug zur Qualitätssicherung in der Bystronic Laser AG und verwaltet Messresultate, Serialnummern und Prüfpunkte von Produktionsaufträgen. Die Client-/Server-Anwendung erstellt formatierte Reporte, sowie qualitätsbezogene statistische Auswertungen.

Page 2: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

2

Änderungskontrolle Revision Datum Autor Änderungen

0.1 2008-06-04 Christoph Fahrni Entwurf

0.2 2008-08-06 Christoph Fahrni Überarbeitung

0.3 2008-08-21 Christoph Fahrni Überarbeitung

0.4 2008-08-22 Christoph Fahrni Überarbeitung

0.5 2008-08-25 Christoph Fahrni Überarbeitung

1.0 2008-09-10 Christoph Fahrni Überarbeitung zur eingereichten Version

Management Summary Diese an der Softwareschule Schweiz und in Zusammenarbeit mit der Firma Bystronic Laser AG durchge-führte Master Thesis beinhaltet die Erstellung des Pflichtenhefts und die Umsetzung der darin beschrie-benen Anwendung Produktionsüberwachung.

Die Anwendung kommt in der Produktion von Laserschneidanlagen zum Einsatz. Der Hauptnutzen liegt darin, die Montageschritte in mehrsprachigen Abnahmeprotokollen zu dokumentieren und die gesammel-ten Qualitätsmerkmale auszuwerten.

Die Produktionsüberwachung kann zum Zeitpunkt der Einreichung (September 08) im Rahmen eines Pi-lotprojektes in der Bystronic eingesetzt werden. Die im Pflichtenheft definierten Muss-Ziele sind vollum-fänglich erreicht worden, so auch einige Kann- und Soll-Anforderungen.

Die einzelnen Bestandteile und Technologien dieser Anwendung sind in diesem Dokument beschrieben. Hürden waren einige zu überwinden, wie beispielsweise PDF-Dokumente unter ASP.NET zu erstellen, etc. Erfahrungen konnten mit einer Vielzahl junger Technologien gesammelt werden, beispielsweise mit dem Visual Studio 2008 und der überarbeiteten Version des ebenfalls neu erschienenen Frameworks für Busi-ness Objects (CSLA 3.5).

Aufgrund modularer Konzepte und einer erweiterbaren Architektur lässt sich diese Anwendung weiter ausbauen. Eine Wunschliste wird dann in das nächste Release einfliessen, so dass weitere Produktionsbe-reiche mit dieser IT-Lösung erschlossen werden können.

Page 3: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

3

Inhaltsverzeichnis 1 ALLGEMEINES ..................................................................................................................................... 5

1.1 Übersicht ................................................................................................................................................................ 5 1.2 Ziele und Motivation .............................................................................................................................................. 5 1.3 Leserkreis................................................................................................................................................................ 5 1.4 Definitionen............................................................................................................................................................ 5

1.4.1 Terminologie .............................................................................................................................................................. 5 1.4.2 Abkürzungen .............................................................................................................................................................. 6

2 EINLEITUNG........................................................................................................................................ 7 2.1 IST-System .............................................................................................................................................................. 7 2.2 SOLL-System ........................................................................................................................................................... 7 2.3 Umgesetzte Idee..................................................................................................................................................... 7

3 ANALYSE ........................................................................................................................................... 8 3.1 Anforderungen ....................................................................................................................................................... 8

3.1.1 Geschäftsprozesse ..................................................................................................................................................... 8 3.2 Anwendungsfälle .................................................................................................................................................. 10

3.2.1 Anwendungsfall Reporte erstellen ........................................................................................................................... 11 3.2.2 Anwendungsfall Statistiken erstellen ....................................................................................................................... 12 3.2.3 Anwendungsfall Produktionsauftrag suchen............................................................................................................ 13 3.2.4 Anwendungsfall Produktionsauftrag eröffnen ......................................................................................................... 15 3.2.5 Anwendungsfall Qualitätsmerkmale bearbeiten...................................................................................................... 16 3.2.6 Anwendungsfall Freigabe zur Abnahme erteilen ..................................................................................................... 20 3.2.7 Anwendungsfall Produktionsaufträge verknüpfen................................................................................................... 21 3.2.8 Anwendungsfall Login .............................................................................................................................................. 22 3.2.9 Anwendungsfall Logout............................................................................................................................................ 22 3.2.10 Anwendungsfall Benutzer verwalten ....................................................................................................................... 23 3.2.11 Anwendungsfall Gerätetypen verwalten.................................................................................................................. 24

3.3 Top-Down-Analyse der 3-Layer-Architektur......................................................................................................... 25 3.4 Presentation Layer ............................................................................................................................................... 25

3.4.1 Prototyp ................................................................................................................................................................... 25 3.4.2 Gliederung der Benutzeroberfläche (GUI)................................................................................................................ 27 3.4.3 Internes Abnahmeprotokoll ..................................................................................................................................... 28 3.4.4 Externes Abnahmeprotokoll (Kunde) ....................................................................................................................... 28

3.5 Business Layer ...................................................................................................................................................... 29 3.5.1 Vorteile .................................................................................................................................................................... 29

3.6 Data Layer............................................................................................................................................................. 29 3.6.1 Mengengerüst.......................................................................................................................................................... 29 3.6.2 Benutzer................................................................................................................................................................... 30 3.6.3 Qualitätsmerkmal .................................................................................................................................................... 30 3.6.4 Gerätetyp ................................................................................................................................................................. 30 3.6.5 Produktionsauftrag .................................................................................................................................................. 30

3.7 Konzepte............................................................................................................................................................... 30 3.7.1 Server-/Client Anwendung....................................................................................................................................... 30 3.7.2 Winforms- / Webanwendung................................................................................................................................... 30

3.8 Prototyping - Erfahrungsbericht ........................................................................................................................... 31 3.8.1 CSLA-Framework für Business Objekte .................................................................................................................... 31 3.8.2 Reporting ................................................................................................................................................................. 32 3.8.3 Fazit.......................................................................................................................................................................... 33

4 ARCHITEKTUR ....................................................................................................................................34 4.1 Data Layer............................................................................................................................................................. 34

4.1.1 LINQtoSQL................................................................................................................................................................ 34 4.2 Business Layer ...................................................................................................................................................... 35

4.2.1 Domänenmodell ...................................................................................................................................................... 35 4.2.2 Business Objekte...................................................................................................................................................... 35 4.2.3 CSLA Framework ...................................................................................................................................................... 35

4.3 Presentation Layer ............................................................................................................................................... 36 4.3.1 Plugin WYSIWYG Editor............................................................................................................................................ 36 4.3.2 Report Generator..................................................................................................................................................... 36

4.4 Zusammenfassung................................................................................................................................................ 37 5 DESIGN ............................................................................................................................................38

5.1 Datenmodell ......................................................................................................................................................... 38

Page 4: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

4

5.1.1 Benutzer................................................................................................................................................................... 39 5.1.2 Qualitätsmerkmale................................................................................................................................................... 39 5.1.3 Device ...................................................................................................................................................................... 40

5.2 Klassendiagramm ................................................................................................................................................. 41 5.2.1 Beschreibungen der Klassen im Package Presentation ............................................................................................ 41 5.2.2 Beschreibungen der Klassen im Package Business ................................................................................................... 43

5.3 Sequenzdiagramme.............................................................................................................................................. 45 5.3.1 Produktionsauftrag bearbeiten................................................................................................................................ 45 5.3.2 Report erstellen ....................................................................................................................................................... 46

6 IMPLEMENTATION ..............................................................................................................................49 6.1 PQCData ............................................................................................................................................................... 49

6.1.1 Tabellen ................................................................................................................................................................... 49 6.1.2 Stored Procedures.................................................................................................................................................... 49

6.2 PQC.DalLinq.......................................................................................................................................................... 51 6.3 ProductionQualityControl.Library ........................................................................................................................ 52

6.3.1 Businessklassen, abgeleitet von BusinessBase......................................................................................................... 52 6.3.2 Listen, abgeleitet von ReadOnlyListBase.................................................................................................................. 54 6.3.3 Weitere Beispiele zu Linq......................................................................................................................................... 56

6.4 PQCWeb ............................................................................................................................................................... 58 6.4.1 Session ..................................................................................................................................................................... 58 6.4.2 Alternative zum Session-Objekt ............................................................................................................................... 59 6.4.3 XSLT / FO .................................................................................................................................................................. 59 6.4.4 Funktionsweise der NFOP ........................................................................................................................................ 62

6.5 PQC.Library.Test ................................................................................................................................................... 63 7 TEST................................................................................................................................................65

7.1 Testumgebung...................................................................................................................................................... 65 7.2 Testfälle ................................................................................................................................................................ 65

7.2.1 Unit-Tests................................................................................................................................................................. 65 7.2.2 Stress- und Zuverlässigkeitstests.............................................................................................................................. 67 7.2.3 GUI Walkthrough Tests ............................................................................................................................................ 67

8 DIVERSES..........................................................................................................................................71 8.1 Externe Testsysteme ............................................................................................................................................ 71

8.1.1 Gerätetyp ................................................................................................................................................................. 71 8.1.2 Konfiguration ........................................................................................................................................................... 71 8.1.3 Protokoll................................................................................................................................................................... 72

8.2 Wunschliste .......................................................................................................................................................... 73 8.3 Abweichungen zum Pflichtenheft ........................................................................................................................ 74 8.4 Diskussionen / Entscheide.................................................................................................................................... 74 8.5 Tools ..................................................................................................................................................................... 75

8.5.1 Winzip & Memorystick............................................................................................................................................. 75 8.5.2 Visual Studio 2008.................................................................................................................................................... 75 8.5.3 Datenbank................................................................................................................................................................ 75 8.5.4 NDoc ........................................................................................................................................................................ 75 8.5.5 Enterprise Architect ................................................................................................................................................. 75 8.5.6 Microsoft Office / Internet Exlorer / Adobe Reader................................................................................................. 75

8.6 Installation............................................................................................................................................................ 76 8.6.1 Konfigurationen ....................................................................................................................................................... 76 8.6.2 Mögliche Probleme .................................................................................................................................................. 76

8.7 Bedienungsanleitung............................................................................................................................................ 77 8.7.1 Anmeldung............................................................................................................................................................... 77 8.7.2 Navigation................................................................................................................................................................ 77 8.7.3 Home ....................................................................................................................................................................... 77 8.7.4 Produktionsauftrag .................................................................................................................................................. 77 8.7.5 Administration der Benutzer.................................................................................................................................... 78 8.7.6 Administration der Gerätetypen .............................................................................................................................. 78 8.7.7 Administration Statistik............................................................................................................................................ 80

9 ANHANG ..........................................................................................................................................81 9.1 Quellenverzeichnis ............................................................................................................................................... 81 9.2 Abbildungsverzeichnis .......................................................................................................................................... 81 9.3 Tabellenverzeichnis .............................................................................................................................................. 82 9.4 Glossar.................................................................................................................................................................. 83

Page 5: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

5

1 Allgemeines

1.1 Übersicht Vorliegender Bericht gibt Auskunft über die Entwurfsphasen des im Pflichtenheft vorgestellten Projekts. Im Analysekapitel werden die Anwendungsfälle nochmals detaillierter dargestellt. Im Architekturkapitel sind Technologien und Konzepte vorgestellt, die der Umsetzung zu Grunde liegen. Weiter folgen die bei-den Kapitel Design und Implementation, welche die umgesetzte Lösung dokumentieren.

Für das Verständnis der Anwendung ist im Kapitel 8.7 eine Bedienungsanleitung vorzufinden.

1.2 Ziele und Motivation Beim Produzieren von industriellen Anlagen fallen viele qualitätsrelevante Arbeitsschritte an, welche zur Nachverfolgbarkeit dokumentiert werden müssen. Dazu gehören das Erfassen von Prüf- und Messpunk-ten, Einstellwerten, sowie Serialnummern verbauter Komponenten. Bei einigen Montageschritten helfen zusätzlich Testsysteme mit, Punkte automatisiert zu erfassen. – Das Resultat ist ein Abnahmeprotokoll, welches sich aus automatisch erstellten Reporten, sowie von Hand ausgefüllten Begleitprotokollen zu-sammensetzt.

Ohne grossen zusätzlichen Administrationsaufwand soll das IT-System helfen, mit den genannten Quali-tätsmerkmalen einen einzigen Report zu erstellen. Dieser wird dem Kunden zusammen mit der Anlage in seiner jeweiligen Sprache ausgehändigt. Um dies zu erreichen, geben Monteure Messwerte etc. direkt in das System ein und verknüpfen Baugruppen miteinander, so dass zum Zeitpunkt der Auslieferung die ganze Anlage im System abgebildet ist.

Sind die Daten erfasst, können diese auch über einen definierten Zeitraum ausgewertet werden. Somit ist es möglich, Trends festzustellen oder beispielsweise die Verwendung bestimmter Serialnummern zurück-zuverfolgen.

1.3 Leserkreis Diese technische Dokumentation richtet sich an den Experten und den Betreuer dieser Diplomarbeit, sowie an den Auftraggeber und an interessierte Fachpersonen. Für das Verständnis dieses Berichts sind Kenntnisse vom Pflichtenheft erforderlich. Ausserdem wird vorausgesetzt, dass der Leser mit .NET (C#) [1], ASP.NET [2], XSLT [10] und FOP [11] vertraut ist. Diese Technologien werden nicht explizit erklärt.

1.4 Definitionen Die in diesem Dokument verwendeten Fachausdrücke sind im Glossar / Kapitel 9.4 erklärt.

Referenzen sind mit der Syntax [Zahl] dargestellt und im Kapitel 9.1 aufgelöst.

1.4.1 Terminologie

Folgende Ausdrücke sind Synonyme:

• Device: Produktionsauftrag, Baugruppe

• Actor: Benutzer

• SpecialApproval: Sonderfreigabe

• DeviceTemplate: Gerätetyp, Vorlage

Page 6: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

6

1.4.2 Abkürzungen

• ASP.NET – Active Server Pages .NET (serverseitige Technologie von Microsoft zum Erstellen von Webanwendungen auf Basis des Microsoft-.NET-Frameworks.)

• AJAX - Asynchronous JavaScript and XML • BO – Business Object • CMS – Content Management System • CSLA – CSLA.NET: Entwicklungs-Framework für Businesslogik etc. von Rockford (Rocky) Lhotka [3] • DBMS – DataBase Management System • HTTP – Hyper Text Transfer Protocol • LINQ – Language-INtegrated Query, Sprachintegrierte Abfrage • MQL – Mobile automatisierte Qualitätskontrolle für Laserquellen • PMS – IT-System Production Monitoring System • RUP – Rational Unified Process (SW-Entwicklungsprozess) • SAP – Business Software zur Verwaltung von Firmendaten • UI – User Interface / Benutzer-Oberfläche • URI – Uniform Resource Identifier • VS2008 – Microsoft Visual Studio 2008 • WCF – Windows Communication Foundation • WYSIWYG – What You See Is What You Get (Anwendung: Formulare zum Bearbeiten von forma-

tierten Inhalten.)

Page 7: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

7

2 Einleitung Um den Inhalt des Projekts besser verstehen zu können, wird das Ist-System dem Soll-System gegenüber-gestellt (Gap-Analyse):

2.1 IST-System 2.2 SOLL-System Zu Beginn eines neuen Produktionsauftrags wird dem Monteur ein leeres Begleitprotokoll ausge-händigt.

Parallel zu den Montageschritten führt der Mon-teur das Begleitprotokoll nach. In diesem visiert er jeden durchgeführten Prüfschritt und setzt in den dafür vorgesehenen Lücken die Mess- und Ein-stellwerte von Hand ein. Ebenfalls an die Entwick-lung adressierte Formulare sind mit Werten zu versehen.

Setzt er intelligente Testsysteme ein, druckt er Reporte aus und heftet diese an die vorhandenen Papiere.

Falls die zu produzierende Komponente an einem weiteren Standort weiterbearbeitet wird, wandern sämtliche Papiere mit und werden von einem anderen Monteur weiterbearbeitet.

Einige Leute sind damit beschäftigt, Teile dieser Dokumente in verschiedene Systeme einzugeben. Diverse Serialnummern werden ins SAP übertra-gen und Entwickler stellen aus gesammelten Wer-ten Trendkurven dar.

Ein kopierter Dokumentensatz erhält der Kunde mit der gelieferten Anlage, das Original wird in der Bystronic-Niederlassung des Kunden archiviert.

Am Arbeitsplatz des Monteurs steht ein PC, an wel-chem sich der Monteur in der Browseranwendung anmeldet. Er eröffnet einen neuen Auftrag oder wählt den zuletzt bearbeiteten über einen Shortcut aus.

Das System stellt ein Formular dar, welches mit Checkboxen und Textfeldern versehen ist. Jeder an-gemeldete Monteur kann Änderungen vornehmen und diese speichern. Eine Plausibilitätsprüfung über-prüft die eingegebenen Werte.

Für jedes externe Testsystem ist ein weiterer Produk-tionsauftrag zu eröffnen, welcher dann mit dem übergeordneten Auftrag verknüpft wird.

Personen, die an gesammelten Daten dieses Systems interessiert sind, geben den Zeitbereich und den Namen des Qualitätsmerkmals ein. Die Ausgabe lässt sich mit MS Excel filtern und auswerten.

Die mit dem System erstellten einheitlich formatier-ten PDF-Reporte können ausgedruckt oder elektro-nisch archiviert werden (ev. SAP). Die Sprachen für das interne und externe Abnahmeprotokoll sind wählbar (ext: inkl. Bemerkungen und zusätzlichen Details).

Zusammen mit der gelieferten Anlage erhält der Kunde ein ausgedrucktes, hierarchisch strukturiertes Dokument.

2.3 Umgesetzte Idee Ein Administrator erstellt im System Gerätetyp-Vorlagen, die aus Beschreibungen in verschiedenen Spra-chen bestehen. Teil dieser Beschreibungen sind Platzhalter für die Qualitätsmerkmale.

Gibt der Administrator eine Gerätetyp-Vorlage frei, kann diese ein Monteur mit Eingabe der Serial# in einen Produktionsauftrag umwandeln. Die Beschreibung wird hierzu in ein Formular umgewandelt, in welchem die Platzhalter durch Eingabefelder ersetzt sind. Der Monteur bearbeitet diese Eingabefelder und erstellt Verknüpfungen zwischen verschiedenen Baugruppen.

Ist ein Produktionsauftrag abgeschlossen, können hierarchische Reporte erstellt werden. Hierzu werden die Platzhalter durch die eingegebenen Werte ersetzt.

Zusammengefasst: Die Beschreibung der Gerätetyp-Vorlagen fliesst sowohl in das Eingabeformular, als auch in den Report ein. Im Eingabeformular werden für die Platzhalter der Qualitätsmerkmale Eingabefel-der dargestellt, im Report lediglich Werte.

Page 8: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

8

3 Analyse

3.1 Anforderungen Das Pflichtenheft definiert funktionale, sowie nichtfunktionale Anforderungen. Im Rahmen dieser Arbeit liegt der Fokus auf den Muss-Punkten. Auf die Anforderungen wird in der Analyse explizit referenziert.

Weiter ist die Anwendung von Geschäftsprozessen umgeben, welche implizite Anforderungen stellen.

3.1.1 Geschäftsprozesse

3.1.1.1 Dokumentenanalyse (Ist-Zustand) Die Begleitprotokolle liegen heute in Papierform vor. Sie sind immer ähnlich gegliedert: Deckblatt, Einlei-tung und Prüfbericht. Der Prüfbericht beinhaltet Felder für Qualitätsmerkmale, welche der Monteur von Hand ausfüllen muss. Oft präzisieren Bilder die Anweisungen an den Monteur. Folgende Beispiele stam-men aus dem Abnahmeprotokoll für Laserquellen:

Abbildung 1: Serialnummern im Begleitprotokoll

Abbildung 2: Kontrollpunkte Inbetriebnahme

Page 9: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

9

Abbildung 3: Schraubeneinstellung für Justage

Dieses Dokument wandert mit dem Gerät mit, bis die komplette Anlage das Haus verlässt. Anschliessend wird es für den Kunden kopiert. Das Original wird in der Bystronic-Niederlassung des Kunden archiviert.

3.1.1.2 Rückverfolgbarkeit (Ist-Zustand) Einige Serialnummern werden zur Rückverfolgbarkeit von Begleitprotokollen in das Produktivsystem SAP übertragen. Zu diesen Nummern gehört beispielsweise die Serialnummer des Radialverdichters der Laser-quelle.

Weiter füllen Monteure einige Formulare aus, welche an Personen in der Entwicklung adressiert sind. Die Felder dieser Formulare werden dann durch die Entwickler in Excel eingegeben und ausgewertet.

3.1.1.3 Erstellung ‘eindeutiger Serialnummern’ Jede zu produzierende Baugruppe erhält eine Serialnummer, welche nach einem bestimmten Schlüssel erstellt wird. Somit erhalten sämtliche Baugruppen desselben Typs unterschiedliche, eindeutige Num-mern. Es ist jedoch möglich, dass zwei Baugruppen unterschiedlicher Gerätetypen dieselbe Serialnummer erhalten.

3.1.1.4 Sonderfreigabe Falls bei der Ausführung eines Produktionsauftrags ein Qualitätsmerkmal die Plausibilitätskontrolle ver-letzt, kann ein Supervisor eine Sonderfreigabe für dieses Qualitätsmerkmal erteilen. Somit bestätigt der Supervisor, dass in diesem Fall eine Toleranzüberschreitung akzeptiert werden kann.

Page 10: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

10

3.2 Anwendungsfälle Am Anwendungsfall-Diagramm sind Benutzer in 4 Rollen beteiligt:

• Jedermann: Interne Mitarbeiter ohne Zugangs-Passwort, kein Schreibzugriff

• Monteur: Benutzer mit Passwort, arbeitet mit Produktionsaufträgen

• Supervisor: Wie Monteur, zusätzlich Sonderfreigabeerteilung

• Administrator: Wie Supervisor (Vererbung in Abbildung 4 nicht dargestellt), zusätzlich Verwaltung der Benutzer und Gerätetypen

uc Produktionsüberwachung

Produktionsüberwachung

LogIn

Monteur

LogOut

Produktionsauftrag eröffnen

Qualitätsmerkmale bearbeiten

Superv isor

Freigabe zur Abnahme erteilen

Produktionsauftrag suchen

Administrator

Jedermann

Reporte erstellen

Produktionsaufträge v erknüpfen

Benutzer v erwalten

Gerätetypen v erwalten

Statistiken erstellen

«include»

«include»

«include»

Abbildung 4: Anwendungsfall-Diagramm

Page 11: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

11

3.2.1 Anwendungsfall Reporte erstellen

Anwendungsfall Reporte erstellen

Nummer AF1

Beschreibung Jedermann kann Reporte aus dem System erstellen.

Akteure Jedermann

Eingehende Daten Ausgewählter Produktionsauftrag, Sprache, Angabe ob interner oder externer Report

Ausgehende Daten • Abnahmeprotokoll Kunde (Anforderungen F04.01, F04.03, F04.05, F01.08)

• Internes Abnahmeprotokoll (Anforderungen F04.02, F04.06, F01.08)

Vorbedingung Produktionsauftrag ist ausgewählt (Suchen: AF3)

Ablauf 1. Benutzer: Im Menu des ausgewählten Produktionsauftrags auf «Report» kli-cken.

2. System: Das System stellt ein Menü zur Report- und Sprachauswahl (Anforde-rung F04.03) dar.

3. Benutzer: Stellt Optionen ein und bestätigt Eingabe.

4. System: Das System erstellt einen Report, der sämtliche verknüpften Hierar-chiestufen beinhaltet.

Nachbedingung Report erstellt

Ausnahmen / alter-nativer Ablauf

-

Offene Punkte • Das Einfügen der Unterschriften des Monteurs und Supervisors (Anforderung F04.07) liegt als Soll-Anforderung vor.

Bemerkungen • Statistische Auswertungen (siehe Anwendungsfall Statistiken erstellen)

Page 12: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

12

3.2.2 Anwendungsfall Statistiken erstellen

Anwendungsfall Statistiken erstellen

Nummer AF2

Beschreibung Abgespeicherte Werte des gleichen Typs (gleicher Name des Qualitätsmerkmals) können für statistische Auswertungen verwendet werden.

Akteure Jedermann

Eingehende Daten • Namen des Qualitätsmerkmals (Anforderung F02.05)

• Start-Zeit, End-Zeit

• Im Suchresultat enthaltene Zeichenkette, falls beispielsweise Serialnummern von Einzelkomponenten rückverfolgt werden müssen.

Ausgehende Daten • Kommagetrennt: Wert des Qualitätsmerkmals, Datum, SAP# des Materials, Seri-al# der Komponente (Anforderung F02.05)

Vorbedingung -

Ablauf 1. Benutzer: Im Menu auf «Statistik» klicken

2. System: Das System stellt die Eingabefelder für die Filter und eine Auswahl für das gewünschte Zielformat zur Verfügung

3. Benutzer: Eingabe der Kriterien und Bestätigung

4. System: Ausgabe der Qualitätsmerkmale im gewünschten Zielformat

Nachbedingung Statistische Auswertung erstellt

Ausnahmen / alter-nativer Ablauf

-

Offene Punkte Grafische Auswertung, direkter Excel-Export

Bemerkungen • «Definitionen benutzerspezifischer Statistiken» liegt in den Anforderungen F04.08 und F04.09 definiert und wird im Rahmen der MT nicht umgesetzt.

• Die Bezeichnung der Qualitätsmerkmale ist der Beschreibung der Gerätetypen zu entnehmen.

Page 13: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

13

3.2.3 Anwendungsfall Produktionsauftrag suchen

Anwendungsfall Produktionsauftrag suchen

Nummer AF3

Beschreibung Abgespeicherte Produktionsaufträge müssen vom Benutzer im System wieder gefunden werden können, um anschliessend die Qualitätsmerkmale bearbeiten oder Reporte erstellen zu können. Hierzu sind möglichst präzise Angeben ein-zugeben.

Aus den gefundenen Einträgen kann der Benutzer einen Produktionsauftrag aus-wählen.

Akteure Jedermann

Eingehende Daten Serialnummer und/oder Gerätetyp (Anforderung F03.02)

Ausgehende Daten Auflistung der zutreffenden Produktionsaufträge

Vorbedingung Ein Produktionsauftrag muss in der Datenbank abgespeichert sein, um gefunden werden zu können.

Ablauf 1. Benutzer: Im Menu auf «Produktionsaufträge» klicken

2. System: Darstellen von Eingabefeldern für Serialnummer und Gerätetyp (z.B. Drop-Down)

3. Benutzer: Eingabe der Suchkriterien

4. System: Datenbank abfragen und Liste der zutreffenden Produktionsaufträge erstellen.

5. Benutzer: Produktionsauftrag auswählen (und Folgeaktion auswählen)

Nachbedingung -

Ausnahmen / alter-nativer Ablauf

Falls kein Produktionsauftrag gefunden wurde, wird eine entsprechende Mittei-lung ausgegeben.

Offene Punkte • Kann-Anforderung F03.03: Wildcard-Suche

• Eventuell Zustand des Produktionsauftrags und Gerätetyp angeben.

• Eventuell Suchresultate mit AJAX dynamisch erstellen

Bemerkungen • Falls viele (z.B. mehr als 20) Suchresultate vorhanden sind, ist die Suchliste zu unterteilen (1..20, 21..40, 41..60, …)

• Ist ein Benutzer am System angemeldet, stellt das System einen Link zum zuletzt bearbeiteten Produktionsauftrag zur Verfügung.

Page 14: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

14

3.2.3.1 Aktivitätsdiagramm Produktionsauftrag suchen Abbildung 5

act Search Dev ice

Actor IT-System Produktionsüberwachung

Search Dev ice in DB

Select Dev ice from List

Enter search criteria

Abbildung 5: Produktionsauftrag suchen

• Enter search criteria Der Benutzer gibt die Suchbedingung ein. Diese besteht aus der Serialnummer, der Gerätetyp ist op-tional. Für die Serialnummer kann gemäss Kann-Anforderung F03.03 einen Asterisk (*) für Wildcard-search enthalten.

• Search Device in DB Das System durchsucht die Datenbank und gibt eine Liste aller möglichen Produktionsaufträge aus.

• Select Device from List Der Benutzer wählt den gesuchten Produktionsauftrag aus, sofern dieser aufgelistet ist.

Page 15: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

15

3.2.4 Anwendungsfall Produktionsauftrag eröffnen

Anwendungsfall Produktionsauftrag eröffnen

Nummer AF4

Beschreibung Mittels Auswahl von Gerätetyp und Angabe von Serial# wird ein neuer Produkti-onsauftrag eröffnet, welcher zur Bearbeitung zur Verfügung steht. (Anforderung F03.04)

Akteure Monteur, Supervisor, (Administrator)

Eingehende Daten Gerätetyp, Serial#

Ausgehende Daten Eröffneter Produktionsauftrag in Datenbank

Vorbedingung Angemeldeter Benutzer

Ablauf 1. Benutzer: Im Menu der «Produktionsaufträge» auf «Neu eröffnen» klicken

2. System: Darstellen von Eingabefeldern für Serialnummer und Gerätetyp (z.B. Drop-Down)

3. Benutzer: Eingabe der Kriterien

4. System: Prüfen, ob Serialnummer bereits vorhanden ist

5. System: Neuen Produktionsauftrag in DB angelegen

Nachbedingung DB-Eintrag für neuen Produktionsauftrag erstellt

Ausnahmen / alter-nativer Ablauf

4.1. Sofern keine eindeutige Serialnummer eingegeben wird, kann kein neuer Pro-duktionsauftrag erstellt werden. Mittelung, dass Serialnummer bereits vor-handen ist und zurücknavigieren zu Schritt 2.

Offene Punkte

Bemerkungen

Page 16: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

16

3.2.5 Anwendungsfall Qualitätsmerkmale bearbeiten

Anwendungsfall Qualitätsmerkmale bearbeiten

Nummer AF5

Beschreibung Parallel zum mechanischen oder elektrischen Fertigungsprozess editiert der Benut-zer die Qualitätsmerkmale eines Produktionsauftrags. (Anforderung F03.05)

Akteure Monteur, Supervisor, (Administrator)

Eingehende Daten Qualitätsmerkmale (Zahlen, Flags, Text)

Ausgehende Daten Benachrichtigung, wenn Plausibilitätscheck eine Verletzung feststellt

Vorbedingung Ein Produktionsauftrag muss ausgewählt sein. (Anwendungsfall AF3 oder AF4)

Ablauf 1. System: Darstellen von Eingabefeldern für Qualitätsmerkmale. Falls Eingabe-felder bereits zu einem früheren Zeitpunkt definiert wurden, werden diese be-reits entsprechend vorinitialisiert. Falls der Plausibilitätscheck fehlschlägt, wer-den die Eingabefelder entsprechend gekennzeichnet.

2. Benutzer: Bearbeitung der Eingabefelder

3. Benutzer: «Speichern»

4. System: Zurück zu Schritt 1

Nachbedingung Die bearbeiteten Qualitätsmerkmale sind in der Datenbank gespeichert.

Ausnahmen / alter-nativer Ablauf

1.1 System: Falls ein Supervisor angemeldet ist und falls Eingabefelder nicht plau-sibel ausgefüllt wurden, wird neben jedem entsprechenden Eingabefeld eine Checkbox zur Sonderfreigabe dargestellt. (Sonderfreigabe, Soll-Anforderung F02.10)

3.1 Benutzer: Falls nicht «Speichern» gewählt wird, werden allfällige Änderungen verworfen. Anstelle von «Speichern» kann der Benutzer zum Beispiel auch auf «Report» klicken.

Offene Punkte

Bemerkungen • Der Plausibilitätscheck führt lediglich zu einem visuellen Effekt; die Eingabedaten werden dennoch persistiert. Es ist jedoch die Zustimmung eines Supervisors er-forderlich, um ein ungültiges (rotes) Qualitätsmerkmal ‚auf orange zu schalten’. (Soll-Anforderungen F02.08 und F02.09) – Farben:

• Weiss: Validierung positiv

• Rot: Validierung negativ

• Orange: Bestätigung (Sonderfreigabe) durch Supervisor liegt vor

• Anforderung F03.11 sagt, dass Qualitätsmerkmale jederzeit, auch bei freigege-benen oder zugewiesenen Produktionsaufträgen bearbeitet werden können.

Page 17: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

17

3.2.5.1 Aktivitätsdiagramm Qualitätsmerkmale bearbeiten Die Qualitätsmerkmale werden in den Beschreibungen der Gerätetypen, den sogenannten DeviceTempla-tes definiert. Das Aktivitätsdiagramm (Abbildung 6) beinhaltet die Anwendungsfälle AF3 oder AF4.

act EditQualityItem

Actor IT-System Produktionsüberwachung

Monteur Logged in

Create new or searchexisting Device?

Select DeviceTemplate ANDEnter Serial

Apply Edit

Create Form

Edit QualityItems

Save changes?

Commit QualtiyItem(s) to DB

Check if Serial isunique

Search device

Abort

[create new]

[search existing]

[yes]

[not unique]

[unique]

[discard]

Abbildung 6: Qualitätsmerkmale bearbeiten

Page 18: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

18

• Create new or search existing Device? Der Benutzer wählt aus, ob er einen neuen Produktionsauftrag (Device) erstellen oder einen beste-henden suchen möchte.

• Select DeviceTemplate AND Enter Serial Falls der Benutzer einen neuen Produktionsauftrag eröffnen möchte, wählt er den passenden Geräte-typ (DeviceTemplate) aus und teilt dem System die eindeutige Serialnummer mit.

• Check if Serial is unique Das System überprüft, ob die eingegebene Serialnummer für den Gerätetyp eindeutig ist.

• Search Device Siehe Kapitel 3.2.3.

• Apply Edit Hat der Benutzer einen Produktionsauftrag ausgewählt, kann dieser den Modus Bearbeiten anwäh-len.

• Create Form An dieser Stelle erstellt das System mittels dem DeviceTemplate ein dynamisches Eingabeformular, wobei die Platzhalter der Qualitätsmerkmale durch Formularfelder (Textfield, Checkbox) ersetzt wer-den. Sind einige Qualitätsmerkmale bereits in der Datenbank abgespeichert, gelangen diese Inhalte als Defaultwerte in das erstellte Formular. An dieser Stelle wird die Plausibilitätskontrolle durchge-führt.

• Edit QualityItems Der Benutzer bearbeitet die Formularfelder.

• Save changes? Der Benutzer entscheidet, ob er die Formularfelder speichern möchte.

• Commit QualtiyItem(s) to DB Das System schreibt die modifizierten Formularfelder ungeprüft in die Datenbank. Ungeprüft, weil das System die realen Werte abbilden soll. Es muss verhindert werden, dass ein Benutzer gezwungen wird, einen bestimmten Wertebereich einzuhalten.

3.2.5.2 Qualitätsmerkmale Plausibilitätskontrolle Aus der Syntax der Qualitätsmerkmale (Kapitel 8.7.2) gehen 2 prüfbare Regeln hervor:

• Zeichenkette muss bestimmte Länge haben

• Einige Qualitätsmerkmale sind numerisch und haben einen Minimal- und Maximalwert

Ist das Resultat mindestens einer Prüfung negativ, gilt das Qualitätsmerkmal als nicht plausibel.

Einerseits ist an der Erscheinung der Formularfelder ersichtlich, ob eine Plausibilitätskontrolle positiv oder negativ ist. (Ungültige Formularfelder z.B. rot hinterlegen)

Andererseits, falls ein Supervisor am System angemeldet ist, erscheinen neben den ungültigen Inhalten Checkboxen für Sonderfreigaben. Wird eine dieser Checkboxen aktiviert, ändert der visuelle Effekt auf z.B. orange.

Beispiel: Leistung sollte zwischen 100..220W liegen:

Variante OK Plausibilitätskontrolle schlägt fehl

Sonderfreigabe (SF)

Logged in Monteur Monteur Supervisor

Ansicht

221

Wert[W]

SF 221

Wert[W]

197

Wert[W]

Page 19: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

19

3.2.5.3 Aktivitätsdiagramm Sonderfreigabe erteilen Werden Plausibilitätsregeln gemäss Kapitel 3.2.5.2 verletzt, kann der Benutzer mit der Berechtigung als Supervisor eine Sonderfreigabe erteilen. Das Aktivitätsdiagramm in Abbildung 7 basiert auf 3.2.5.1; wie-derverwendete Elemente werden nicht nochmals beschrieben.

act SpecialApprov al

Actor IT-System Produktionsüberwachung

Apply Edit

Superv isor

Search Dev ice

Logged in

Create Form

Set Checkbox for SpecialApprov al

Sav e changes?

Abort

Commit QualityItem(s) toDB

[discard]

[yes]

Abbildung 7: Sonderfreigabe erteilen

• Set Checkbox for Special Approval Der Supervisor akzeptiert eine fehlgeschlagenen Plausibilitätskontrolle und aktiviert die Checkbox zur Erteilung der Sonderfreigabe.

Page 20: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

20

3.2.6 Anwendungsfall Freigabe zur Abnahme erteilen

Anwendungsfall Freigabe zur Abnahme erteilen (Soll-Anforderung F03.06, F03.10)

Nummer AF6

Beschreibung Nachdem ein Benutzer einen Produktionsauftrag bearbeitet hat, erteilen er und ein Supervisor die Freigabe zur Abnahme.

Akteure Monteur, Supervisor, (Administrator)

Eingehende Daten Angewählte Checkboxen

Ausgehende Daten -

Vorbedingung Ein Produktionsauftrag muss im Editiermodus ausgewählt sein. (Anwendungsfall AF3, AF4 oder AF5)

Ablauf 1. System (Nur wenn ein Monteur angemeldet ist): Es wird 1 Checkbox angezeigt, welche durch den Monteur bestätigt werden kann.

2. System (Nur wenn ein Supervisor angemeldet ist): Es werden 2 Checkboxen (Monteur + Supervisor) angezeigt, welche durch den Supervisor bestätigt wer-den können.

3. Benutzer: Checkbox auf checked setzen

Nachbedingung Eingaben sind mit Datum/Uhrzeit und Benutzerangabe in Datenbank gespeichert.

Ausnahmen / alter-nativer Ablauf

1.1, 2.1 Sofern gemäss AF5 noch rote Punkte vorhanden sind, kann die Freigabe nicht erteilt werden.

Offene Punkte

Bemerkungen Nicht umgesetzt, jedoch vorbereitet.

Page 21: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

21

3.2.7 Anwendungsfall Produktionsaufträge verknüpfen

Anwendungsfall Produktionsaufträge verknüpfen (Anforderungen F03.07, F03.08)

Nummer AF7

Beschreibung Um eine Baugruppen-Baum-Struktur einer Maschine in einem Report abbilden zu können, müssen die einzelnen Produktionsaufträge miteinander in Beziehung ge-bracht werden.

Der Benutzer hat die Möglichkeit, solche Verknüpfungen zu erstellen und wieder zu entfernen.

Akteure Monteur, Supervisor, (Administrator)

Eingehende Daten Zum Erstellen einer Verknüpfung ist eine eindeutige Identifikation beider beteilig-ten Produktionsaufträge erforderlich.

Zum Entfernen einer Verknüpfung ist die eindeutige Identifikation des Child-Produktionsauftrags erforderlich.

Ausgehende Daten Persistierte Verknüpfungen

Vorbedingung Die Produktionsaufträge müssen freigegeben sein, um verknüpft werden zu kön-nen. (Abgeleitet aus Anforderung F03.09)

AF3 muss erfüllt sein – die Verknüpfung ist eine mögliche Folgeaktion

Ablauf 1)

Verknüpfen

1. Benutzer: Im Menu des ausgewählten Child-Produktionsauftrags auf «Unter-geordnete Baugruppen» klicken

2. System: Bereitstellung der Eingabemaske für das Hinzufügen oder Entfernen von Verknüpfungen

3. Benutzer: Produktionsaufträge/Baugruppen hinzufügen: (Symbol ’+’)

Ablauf 2)

Verknüpfung ent-fernen

1. Benutzer: Im Menu des ausgewählten Child-Produktionsauftrags auf «Unter-geordnete Baugruppen» klicken

2. System: Bereitstellung der Eingabemaske für das Hinzufügen oder Entfernen von Verknüpfungen

3. Benutzer: Produktionsaufträge/Baugruppen entfernen. (Symbol ’-’)

Nachbedingung Die Verknüpfung ist in der Datenbank erstellt oder gelöscht.

Ausnahmen / alter-nativer Ablauf

-

Offene Punkte -

Bemerkungen • Das System stellt sicher, dass nur Produktionsaufträge verknüpft werden kön-nen, welche nicht bereits über ein Parent verfügen. Ausserdem wird verhindert, dass zirkularen Zuweisungen erstellt werden.

• Vorbedingung ‚freigegeben’ nicht implementiert

Page 22: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

22

3.2.8 Anwendungsfall Login

Anwendungsfall Login (Anforderung F05.04)

Nummer AF8

Beschreibung Ein in der Datenbank vorhandener Benutzer gibt im System seine Zugangsdaten ein. Sein Login ist mit einem Berechtigungslevel verknüpft.

Akteure Jedermann

Eingehende Daten Zugangsdaten bestehen aus dem Benutzernamen und Passwort.

Ausgehende Daten -

Vorbedingung Um sich erfolgreich anmelden zu können, muss ein Benutzer gültige Zugangsdaten in der Datenbank haben.

Ablauf 1. Benutzer: Klick auf Login / Anmelden

2. System: Bereitstellung der Eingabemaske für das Login

3. Benutzer: Eingabe der Zugangsdaten

4. System: Verschlüsselung des Passworts (zB. Hash)

5. System: Überprüfung, ob Zugangsdaten korrekt sind [korrekt]

6. System: Benachrichtigung, dass Anmeldung erfolgreich erfolgt ist

7. System: Berechtigungsstatus der Session ändern

Nachbedingung Benutzer ist am System angemeldet.

Ausnahmen / alter-nativer Ablauf

5.1 System: Überprüfung, ob Zugangsdaten korrekt sind [nicht korrekt] Benachrichtigung, dass Login nicht durchgeführt wurde Zurück zu Schritt 2

Offene Punkte

Bemerkungen Das Passwort ist aus Sicherheitsgründen verschlüsselt in der Datenbank abzuspei-chern. (z.B. MD5)

3.2.9 Anwendungsfall Logout

Anwendungsfall Logout (Anforderung F05.05)

Nummer AF9

Beschreibung Ein angemeldeter Benutzer kann sich jederzeit mit Logout wieder vom System abmelden.

Akteure Monteur, Supervisor, (Administrator)

Eingehende Daten -

Ausgehende Daten -

Vorbedingung Ein Benutzer ist am System angemeldet.

Ablauf 1. Benutzer: Klick auf Logout / Abmelden

2. System: Berechtigungsstatus der Session zurücksetzen

Nachbedingung Benutzer ist nicht mehr am System angemeldet.

Ausnahmen / alter-nativer Ablauf

Nach Ablauf des Timeouts von z.B. 20 Minuten erfolgt ein implizites Logout.

Offene Punkte

Bemerkungen

Page 23: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

23

3.2.10 Anwendungsfall Benutzer verwalten

Anwendungsfall Benutzer verwalten

Nummer A10

Beschreibung Die am System beteiligten Benutzer können neu erfasst, mutiert und gelöscht werden.

Akteure Administrator (Anforderung F05.02)

Eingehende Daten Bei Benutzer-Erfassung: Benutzernamen, Passwort, Vor- und Nachnamen, Perso-nalnummer, Aktivflag, Berechtigungslevel und Unterschriften-Scan (Anforderung F05.01)

Bei Benutzer-Mutation: Benutzernamen

Ausgehende Daten -

Vorbedingung • Um einen Benutzer mutieren oder löschen zu können, muss dieser bereits in der Datenbank erfasst sein.

Ablauf 1)

Benutzer erfassen

1. Benutzer: Im Administratormenu «Benutzer» «Neuen Benutzer erfassen» anwählen.

2. System: Bereitstellung eines leeren Benutzer-Dialogs

3. Benutzer: Eingabe der Benutzerdaten des zu erstellenden Benutzers Gemäss Anforderung F05.03 gelten folgende Berechtigungslevel: Monteur, Supervisor, Administrator

4. System: Überprüfung auf Eindeutigkeit und ob Felder komplett ausgefüllt wur-den. Bei Fehler zurück zu Schritt 2.

Ablauf 2)

Benutzer mutieren

1. Benutzer: Im Administratormenu «Benutzer» anwählen.

2. System: Dialog zur Benutzerauswahl anzeigen.

3. Benutzer: Mittels Filterfunktion Benutzer auswählen

4. System: Bereitstellung des Benutzer-Dialogs

5. Benutzer: Ändern der Benutzerdaten des zu mutierenden Benutzers

6. System: Überprüfung auf Eindeutigkeit und ob Felder komplett ausgefüllt sind. Bei Fehler: Benachrichtigung und zurück zu Schritt 4. Falls korrekt: Aktualisierung des Benutzerprofils

Ablauf 3)

Benutzer löschen

1. Benutzer: Im Administratormenu «Benutzer» anwählen.

2. System: Dialog zur Benutzerauswahl anzeigen.

3. Benutzer: Mittels Filterfunktion Benutzer auswählen und «Löschen» betätigen

4. System: Entfernen des Benutzers

Nachbedingung Aktualisierte Benutzerdaten liegen in Datenbank vor, oder Benutzer wurde aus der Datenbank entfernt.

Ausnahmen / alter-nativer Ablauf

Offene Punkte

Bemerkungen

Page 24: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

24

3.2.11 Anwendungsfall Gerätetypen verwalten

Anwendungsfall Gerätetypen verwalten

Nummer A11

Beschreibung Gerätetypen können neu erfasst und mutiert werden.

Akteure Administrator (Anforderung F01.02)

Eingehende Daten Bei Gerätetypen-Erfassung: Bezeichnung (Name), SAP-Materialnummer, Zustand, Beschreibung mit darin enthaltenen Qualitätsmerkmalen (Anforderung F01.01)

Bei Gerätetyp-Mutation: Zustand, Bezeichnung / SAP-Materialnummer

Ausgehende Daten -

Vorbedingung • Um einen Gerätetyp mutieren zu können, muss dieser bereits in der Datenbank erfasst sein.

• Administrator ist angemeldet

Ablauf 1)

Gerätetyp erfassen

1. Benutzer: Im Administratormenu unter «Gerätetypen» «Neuen Gerätetyp erfassen» anwählen.

2. System: Bereitstellung eines leeren Gerätetyp-Dialogs

3. Benutzer: Eingabe der Gerätetyp-Daten des zu erstellenden Gerätetyps

4. System: Überprüfung auf Eindeutigkeit und ob Felder komplett ausgefüllt wur-den. Bei Fehler zurück zu Schritt 2.

Ablauf 2)

Gerätetyp mutieren

1. Benutzer: Im Administratormenu «Gerätetyp» anwählen.

2. System: Dialog zur Gerätetyp-Auswahl anzeigen.

3. Benutzer: Anhand Zustand, Bezeichnung und SAP-Materialnummer den Gerä-tetyp auswählen

4. System: Bereitstellung des Gerätetyp-Dialogs. Falls der Gerätetyp den Zustand «draft» hat, kann die Beschreibung angepasst werden. (Anforderung F01.05)

5. Benutzer: Ändern der Gerätetyp-Daten des zu mutierenden Gerätetyps

6. System: Überprüfung auf Eindeutigkeit und ob Felder komplett ausgefüllt wur-den. Bei Fehler zurück zu Schritt 4.

Nachbedingung Gerätetyp-Daten liegen in Datenbank vor.

Ausnahmen / alter-nativer Ablauf

Falls kein Administrator angemeldet ist, können Gerätetyp-Definitionen nur ange-schaut werden. Beschreibungen sind nicht modifizierbar, falls der Status nicht auf «draft» ist.

Offene Punkte Einbindung externer Testsysteme (siehe Kapitel 8.1)

Bemerkungen Ein wichtiges Feld des Gerätetyps ist die Beschreibung. Diese beinhaltet das Gerüst für die zu erstellenden Web-Formulare zur Eingabe der Qualitätsmerkmale und ausserdem für das Erstellen formatierter Reporte.

Qualitätsmerkmale sind ebenfalls Teil dieser Beschreibung und sind als Platzhalter definiert. Weitere Platzhalter werden verwendet, um zwischen dem internen- und Kunden-Abnahmeprotokoll zu unterscheiden. Gemäss Anforderungen F02.11-13(14) gibt es für Qualitätsmerkmale die Typen Checkpoint, Serialnummer, Mess- oder Einstellwert.

Solange der Status auf «draft» ist, lässt sich der Gerätetyp mit den eingebetteten Qualitätsmerkmalen bearbeiten (Anforderungen F02.01, F02.02).

«aktive» Gerätetypen können von Monteuren zum Erstellen von Produktionsauf-

Page 25: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

25

trägen verwendet werden (Anforderung F01.10).

Die Anforderung F01.09 definiert folgende möglichen Statusänderungen: «draft» «active» «inactive»

3.3 Top-Down-Analyse der 3-Layer-Architektur Die Architektur der Anwendung ist in die drei Layer Data, Business und Presentation gegliedert.

Abbildung 8: 3-Layer Architektur

Eine Aufteilung der Technologien in eine 3-Layerarchitektur bietet eine Vielzahl von Vorteilen:

• Wartbarkeit – klare Struktur ersichtlich

• Austauschbarkeit – es ist beispielsweise möglich, die Datenbank auszutauschen, ohne den Pre-sentation Layer anpassen zu müssen.

• Erweiterbarkeit – Die Businesslogik ist nicht überall im Projekt verteilt, sondern in den vorgese-henen Businessklassen. Der Datenzugriff erfolgt lediglich aus den Businessklassen. Diese halten auch die vorgesehenen Berechtigungsrichtlinien ein.

• Aufteilung – es ist möglich, die 3 Layer auf unterschiedlichen Servern laufen zu lassen.

Zu den Nachteilen gehört der damit verbundene Mehraufwand bei der Implementation. Konzepte, wie GUI-Elemente direkt an Datenbanktabellen zu koppeln, sind tabu. Grund: In den GUI-Klassen würde sich der Code für Datenzugriffe, Berechtigungen etc. wiederholen, was die Wartung erschwert.

Die folgenden Unterkapitel erläutern die Einzelheiten zu diesen Schichten.

3.4 Presentation Layer

3.4.1 Prototyp

Im Rahmen eines internen Meetings habe ich (Autor dieses Berichts) einen interaktiven Prototyp für ein Usability Walkthrough erstellt. Die folgenden Screenshots geben den Anforderungen ein erstes Gesicht, so dass sichergestellt wird, dass Auftraggeber und Entwickler von derselben Anwendung sprechen. Die hier gesammelten Feedbacks sind bereits in den Anforderungsteil des Pflichtenhefts eingeflossen. Vorlie-gendes Dokument enthält ein Auszug dieser Screenshots.

3.4.1.1 Eingangsbildschirm • Der Benutzer kann sich mit Benutzernamen und Passwort anmelden.

• Der Benutzer kann ohne Anmeldung einen Produktionsauftrag mittels Serialnummer suchen.

Presentation Layer

Business Layer

Data Layer

Page 26: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

26

Abbildung 9: Login / Suche

3.4.1.2 Neuen Produktionsauftrag erfassen • Der Benutzer muss als Monteur angemeldet sein

• Der Benutzer wählt den Gerätetyp aus (z.B. mit einer Dropdown Liste) und gibt die Serialnummer ein, dann betätigt er den Button Erfassen

• Der Benutzer hat einen Shortcut auf den zuletzt bearbeiteten Produktionsauftrag (Offene Aufträ-ge)

Abbildung 10: Neuen Produktionsauftrag erfassen

3.4.1.3 Qualitätsmerkmale bearbeiten • Der Benutzer muss als Monteur angemeldet sein

• Der Benutzer hat soeben einen Produktionsauftrag erfasst oder einen offenen Produktionsauf-trag über die Suchfunktion ausfindig gemacht.

• Der Benutzer hat jetzt die Möglichkeit, die Qualitätsmerkmale über Eingabefelder zu bearbeiten.

Page 27: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

27

Abbildung 11: Qualitätsmerkmale bearbeiten

3.4.2 Gliederung der Benutzeroberfläche (GUI)

Die Bilder des Prototyps zeigen einige Beispiele von Eingabemasken. Der Aufbau des GUIs ist in einer fla-chen, logisch orientierten Hierarchie zu halten, so dass der Benutzer mit wenigen Klicks zum Ziel kommt.

Ein möglicher Aufbau ist folgender:

Tabelle 1: Gliederung GUI

Menu

Nav. Ebene Oberkategorie Unterkategorie

Aktionen

Produktionsaufträge 1. Produktionsauftrag auswählen

2. Neuen Produktionsauftrag erfassen

3. Produktionsauftrag bearbeiten

4. Untergeordnete Baugruppen +/-

5. Report intern/extern

Benutzer 1. Benutzer auswählen

2. Neuen Benutzer erfassen

3. Benutzer bearbeiten

4. Benutzer löschen

Gerätetypen 1. Gerätetyp auswählen

2. Neuen Gerätetyp erfassen

3. Gerätetyp bearbeiten

Prim

är (u

nd T

erti

är)

Administration

Statistik 1. Abfragen von Qualitätsmerkmalen

Seku

ndär

Anmelden und abmelden

Page 28: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

28

Die Abbildung 12 zeigt eine mögliche Darstellung der Navigationsebenen:

Abbildung 12: Navigation

Die Tertiärnavigation dient dazu, je nach Kontext und Berechtigung weitere Funktionalitäten zur Verfü-gung zu stellen. Eine Einbettung in die Primärnavigation wäre ebenfalls möglich.

3.4.3 Internes Abnahmeprotokoll

Das interne Abnahmeprotokoll besteht aus

• Titelseite

o Bystronic Logo

o Titel: Abnahmeprotokoll

o Sub-Titel: Gerätetyp der obersten Hierarchie

o Ort und Datum

o Hierarchisch aufgebautes Inhaltsverzeichnis

• Einleitung

o Allgemeine Hinweise

• Baugruppen

o Name und Serial#

o Bemerkungen

o Device-Beschreibungen mit Qualitätsmerkmalen

Generell gilt: Auf jeder Doppelseite ist das Bystronic-Logo zu verwenden. In der Fusszeile sind Seitenzah-len vorzusehen.

3.4.4 Externes Abnahmeprotokoll (Kunde)

Wie 3.4.3, jedoch ohne Baugruppen-Bemerkungen. Weiter werden interne Regionen ausgeblendet.

Sekundärnavigation

Primärnavigation

Tertiärnavigation

Page 29: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

29

3.5 Business Layer Der Business Layer abstrahiert die Datenschnittstelle und stellt sicher, dass nur gültige Daten in die Da-tenbank gelangen. Businessobjekte bilden die eigentlichen Ressourcen wie Benutzer, Gerätetyp oder Pro-duktionsauftrag ab.

Der Business Layer gibt nicht vor, ob ein Webfrontend oder eine Winforms-Anwendung die Schnittstelle zum Benutzer bildet.

3.5.1 Vorteile

Vorteile eines Projekts mit ausgelagerter Businesslogik sind:

• Zentralisierung und Vereinheitlichung der Business Logik – jede Businessklasse ist ähnlich aufge-baut.

• Einarbeitungszeit ist wegen vereinheitlichtem Aufbau gering.

• Portabilität – je nach Wunsch kann dieselbe Businesslogik für eine Anwendung mit einem neuen User Interface verwendet werden, auch wenn dieses mit einer komplett anderen Technik reali-siert ist.

• Unabhängigkeit – falls die Datenbanktechnologie ändert, muss ausser den Businessklassen kein Code angefasst werden.

• Unter Verwendung eines Frameworks ist es möglich, auf mehrfach bewährten Grundkonzepten aufzubauen. Dies steigert die Qualität der Implementation und erhöht somit die Akzeptanz des Projekts.

• Erweiterbarkeit und Wiederverwendbarkeit – die Schnittstellen sind klar definiert.

3.6 Data Layer

3.6.1 Mengengerüst

Das Mengengerüst ist eine Schätzung aufgrund von Erfahrungswerten und gibt an, wie viele Daten in der Datenbank gespeichert werden. In Tabelle 2 sind die Mengen aufgeführt:

Tabelle 2: Mengengerüst

Bezeichnung Datensätze pro Jahr In 20 Jahren…

Gerätetypen 30 600

Qualitätsmerkmal Typen 30 Gerätetypen, 100 verschiede-ne Qualitätsmerkmale pro Gerä-tetyp

3’000

Produktionsaufträge 1000 Maschinen, 10 Produkti-onsaufträge pro Maschine

200’000

Bearbeitete Qualitätsmerkmale 1000 Maschinen mit 1000 Merk-malen (100 Merkmale pro Pro-duktionsauftrag)

20'000’000

Reporte Analog Produktionsaufträge 200’000

Benutzer 100 2’000

Als Vergleich: Ein UINT32 umfasst 4’294’967’296 Werte.

Folgerung: Ein UINT32 ist mehr als 200 mal grösser als die Anzahl der persistierten Qualitätsmerkmale. Somit kann UINT32 bedenkenlos als Primärschlüssel verwendet werden.

Page 30: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

30

3.6.2 Benutzer

Ein Benutzer ist eine Person, die mit dem System Produktionsüberwachung arbeitet. Registrierte Benutzer haben Benutzernamen und Passwort und können sich am System anmelden. Verwaltet werden die Be-nutzer durch Administratoren.

3.6.3 Qualitätsmerkmal

Ein Qualitätsmerkmal-Platzhalter in einer Gerätetypvorlage ist definiert durch Namen und Typ.

Wird ein Qualitätsmerkmal durch einen Benutzer ab Berechtigungslevel Monteur bearbeitet, so entsteht ein zu persistierendes Qualitätsmerkmal mit folgenden Eigenschaften: Wert (z.B. Text, Zahl oder Check-box), Zeitpunkt, beteiligter Benutzer, Produktionsauftrag und Sonderfreigabeflag.

3.6.4 Gerätetyp

Ein Gerätetyp ist eine Vorlage zu einer Baugruppe und legt fest, welche Qualitätsmerkmale zu prüfen sind.

Diese Vorlage ist in den Sprachen GE, EN, ES, FR und IT verfügbar und wird dazu verwendet, Eingabefor-mulare und Reporte zu erstellen.

Die Vorlage definiert ausserdem, welche Informationen nur in internen Reporten enthalten sind.

Jeder Gerätetyp verfügt über einen Zustand. Neuerstellung und Modifikationen sind mit Berechtigungsle-vel Administrator möglich.

3.6.5 Produktionsauftrag

Ein Produktionsauftrag bildet eine produzierte Baugruppe ab. Die Vorlage gibt vor, welche Qualitäts-merkmale zu behandeln sind. Die bearbeiteten Qualitätsmerkmale sind mit der produzierten Baugruppe verknüpft.

Jede Baugruppe verfügt innerhalb desselben Gerätetyps über eine eindeutige Serial#. Baugruppen können miteinander verknüpft werden (Parent/Child). Neuerfassungen und Modifikationen sind ab Berechti-gungslevel Monteur möglich.

3.7 Konzepte

3.7.1 Server-/Client Anwendung

Ein Ziel der Anwendung Produktionsüberwachung ist es, Daten in einem Pool zu sammeln, um die Rück-verfolgbarkeit zu gewähren. Beispielsweise kann dieses Ziel mit 100 isolierten Anwendungen nicht er-reicht werden.

Die Daten müssen zentralisiert werden. Das Werkzeug hierzu ist ein Server, welcher Daten der Clients entgegennimmt.

3.7.2 Winforms- / Webanwendung

3.7.2.1 Softwareverteilung Die Firma Bystronic Laser AG verfügt sowohl über ein konfigurierbares Softwareverteilsystem für Win-dows Applikationen, als auch über ein Intranet via Browser.

Für den Unterhalt bedarf das browserbasierende Konzept lediglich einer serverseitigen Anpassung.

Bei einer Winforms-Applikation muss nach einer serverseitigen Anpassung zusätzlich das Softwareverteil-system für die Aktualisierung der Clients eingerichtet werden.

Page 31: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

31

3.7.2.2 Flexibilität HTML, die gängige Technologie eines Browsers, wird mit der Server-Technologie ASP.NET aufgewertet, dadurch dass intelligente Controls wie das GridView, verfügbar sind. Die Möglichkeiten von ASP.NET sind vergleichbar mit denjenigen von Winforms-Anwendungen.

Der Administrationsaufwand einer ASP.NET-Anwendung beschränkt sich auf den Server.

3.7.2.3 Performance Einiges an Rechenpower erfordert die Erstellung der Reporte. Da nicht zu erwarten ist, dass viele Doku-mente gleichzeitig erstellt werden, kann diese Funktionalität auf einem Server vorgesehen werden.

Datenbankzugriffe und die ASP.NET-Seitenaufbereitung bereiten einem zentralen Server kaum Mühe. Clientseitig reichen für beide Varianten Standardcomputer (mit Windows XP) aus.

3.7.2.4 Fazit Die Server-/Client-Anwendung ist sowohl mit Winforms als auch mit Webtechnologie realisierbar. Wegen persönlichen Präferenzen wähle ich für dieses Projekt die Technologie ASP.NET.

Begründung: Die Businesslogik und Datenbank erfordern bereits einen zentralen Host. Wird mit ASP.NET der Presentation Layer darüber gelegt, ist die ganze Anwendung auf einem Server fixfertig installiert und konfiguriert. Der Benutzer benötigt lediglich den Link zum System Produktionsüberwachung.

3.8 Prototyping - Erfahrungsbericht Dieses Unterkapitel schlägt die Brücke zum Kapitel 4. Die Ideen aus der Analyse versuche ich zunehmend in einer geeigneten Architektur einzubringen. Mit der endgültigen Version haben die Prototypen noch nicht viel zu tun. Es geht vor allem darum, mittels einigen kleinen Modulen Erfahrungen zu sammeln und zu beurteilen, auf welche Art die Architektur am besten zu stehen kommt.

Ich starte mit der Visual Studio 2008 Express Version und versuche PDF-Dokumente zu erstellen, werfe einen ersten Blick in das CSLA-Framework und halte Ausschau nach weiteren möglichen Technologien.

Erfahrungen habe ich bis anhin in der .NET-Welt nur beschränkt gesammelt.

3.8.1 CSLA-Framework für Business Objekte

3.8.1.1 Einführung Das CSLA Framework beschreibe ich im Kapitel 4.2.3.

Der ProjectTracker PT ist eine im CSLA-Framework enthaltene Beispielanwendung zur Verwaltung von Projekten. Ich setze mir zum Ziel, den PT zum Laufen zu bringen und durch alle Layer hindurch ein neues Projektattribut – die Priorität – einzufügen.

3.8.1.2 Aufsetzen der Entwicklungsumgebung und Konfiguration In einem ersten Schritt versuche ich, die Version 3.5 zum Laufen zu bringen. Ich setze hierzu den SQL Ser-ver 2005 Express auf, stelle jedoch bald fest, dass ich wegen der Projektstruktur das Visual Studio 2008 Pro anstelle der Express-Version benötige.

Parallel mit dem Buch[3] und dem Internet[5] gelingt es mir, die Winform-Anwendung zum Laufen zu bringen.

Anschliessend nehme ich die PT ASP.NET-Version unter die Lupe. Die Konfiguration dieser Anwendung macht es nicht einfach, den Durchblick zu erhalten. So ist beispielsweise eine Konfiguration vorzufinden, welche den IIS über einen WCFhost kommunizierten lässt. Diesen Service starte ich mit dem VS2008-Debugger und konfiguriere die vom Host allozierte Port# im web.config, worauf die Anwendung funktio-niert.

Page 32: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

32

Aus der vorhandenen Projektvielfalt innerhalb der Solution PT entferne ich alles, was nicht für das ASP.NET-Projekt erforderlich ist, so auch den WCFhost. Das heisst, dass der IIS die BOs direkt anspricht und nicht über eine Portnummer einen Host kontaktiert.

3.8.1.3 Priority-Property An diesem Punkt beginne ich, Erfahrungen mit den Framework-Klassen zu sammeln. Ich durchstöbere das VS2008, um die Projekt-Tabelle mit dem Property Priority zu erweitern und bearbeite die Business- und Presentation- Klassen. Doch da fehlt leider noch etwas, das Property ist auch in dem Data Abstraction Layer (DalLINQ) einzufügen. Nach all diesen Modifikationen bringe ich die modifizierte PT-Anwendung wieder zum Laufen.

3.8.1.4 WYSIWYG-Editor Aus der Administration meiner privaten Webseiten sind mir einige Editoren bekannt, welche HTML-Inhalte mit einem Browser über eine an Winword angelehnte Oberfläche, bearbeiten lassen.

Ich habe mich in Internetforen über freiverfügbare Editoren informiert und einige Produkte wie FCKEditor, FreeTextBox.com und TinyMCE von MoxieCode [6] angeschaut.

Der TinyMCE überzeugt mich; er ist in einer .NET-Variante verfügbar und ist ausserdem flexibel konfigu-rierbar. – Die erforderlichen Files füge ich in die PT-Projektstruktur ein. Anschliessend ersetze ich das Textfeld zur Beschreibung von Projekten mit dem TinyMCE-Control.

Leider macht sich hier die Sicherheits-policy von ASP.NET bemerkbar, denn HTML-Tags werden norma-lerweise nicht von einer Eingabemaske erwartet. Ich schalte diese Überwachung aus (Validate-Request="false") und anschliessend funktioniert der Editor wie erwartet.

3.8.2 Reporting

Der Administrieraufwand der Anwendung ist möglichst gering zu halten. Folglich ist für einen neuen Gerä-tetyp nur eine Beschreibung für Reporte und für Eingabeformulare (von Qualitätsmerkmalen) wün-schenswert.

Das heisst, die Beschreibung muss entweder in ein PDF-Dokument oder in ein Eingabe-Formular trans-formiert werden können.

Abbildung 13: Beschreibungen von Gerätetypen

3.8.2.1 PDF-Generatoren Für C# gibt es sowohl kommerzielle als auch freiverfügbare PDF-Generatoren. Das Angebot ist überblick-bar.

Einige PDF-Generatoren funktionieren ähnlich wie Grafikprogramme, bei denen auf eine leere Seite Text-elemente und grafische Symbole platziert werden (Beispiele: iTextSharp, SharpPDF, Report.NET). Andere PDF-Generatoren erstellen Berichte mit Grafiken oder Tabellen aus Datenbanken (Beispiel: Crystal Re-port).

Bei diesen beiden Arten von PDF-Generatoren müsste relativ viel Code geschrieben werden, um eine Vorlage in einen Report umwandeln zu können. Das heisst, das Template wäre im Source-Code starr ein-gefroren.

Gerätetyp Beschreibung Formatierter PDF-Report

Eingabe-Formular

WYSIWYG-Editor

HTML

Page 33: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

33

Ich ziehe es an dieser Stelle in Betracht, den Report aus HTML-Code abzuleiten.

3.8.2.2 XML-Transformation mit FO-Processor Frau B. Amrhein vemittelte im Unterricht die XML-Transformation [10]. Damit ist es möglich, mittels Transformation ein Dokument zu erstellen, welches in ein PDF umgewandelt werden kann. Das Kapitel 4.3.2 geht darauf ein. Der grosse Vorteil an dieser Technologie: Die Formatierung erfolgt durch ein XML-Stylesheet; ein File welches zu einem späteren Zeitpunkt ohne Programmcodeänderung aktualisiert wer-den kann.

Als Prototyp verwende ich Oxygen 8.2 zum Erstellen eines XHTML-files und eines XSLT Stylesheets. Eine Beispielanwendung in C# erstellt dann aus dem XSL:FO das PDF.

3.8.3 Fazit

Mit den einzelnen Prototypen habe ich Erfahrungen in den Technologien .NET 3.5, CSLA 3.5, SQL-Server, IIS5.1, XSLT und Apache FOP gesammelt. Ich bin überzeugt, dass sich diese Technologien für die zu erstel-lende Anwendung bewähren. Begründungen:

• Die Bystronic führte diverse Projekte mit den Frameworks .NET und CSLA durch. Vorteile: Akzep-tanz, Wartbarkeit, Support

• Die Werkzeuge XSLT und Apache FOP sind flexibel einsetzbar. Änderungen am Layout werden durch Anpassungen am Stylesheet vollzogen (ohne Programmcodeänderungen).

Die Ecksteine der Architektur sind damit gelegt, so dass sich mit diesen Technologien die Anwendung Produktionsüberwachung erstellen lässt.

Page 34: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

34

4 Architektur Dieses Kapitel präzisiert die in der Analyse diskutierte 3-Layerarchitektur. Der Fokus der Analyse war von oben nach unten, das heisst der Presentation Layer wurde zuerst erläutert. Das Kapitel Architektur be-ginnt beim Fundament, dem Data Layer.

4.1 Data Layer Der Data Layer unterliegt dem Business Layer und dient zum Laden und Speichern von Daten. Anders ausgedrückt: Der Zugriff auf die Datenbank erfolgt in den Business Objects.

Die Datenbank beinhaltet folgende Tabellen:

• Actor – Benutzer, welche sich am System anmelden

• DeviceTemplate – Vorlagen, welche Monteure in Produktionsaufträge umwandeln können

• Device – Produktionsaufträge, welche durch den Monteur bearbeitet werden können

• QualityItem – Qualitätsmerkmale, welche durch den Monteur und Supervisor bearbeitet werden

• QualityItemMap – Die Tabelle QualityItem hat einen Fremdschlüssel auf QualityItemMap. Quali-tyItemMap beinhaltet die Namen der Qualitätsmerkmale und ordnet diese dem Schlüssel zu. (Normalform)

Das Datenbankschema wurde beim Erstellen des Designs aktualisiert und befindet sich im Kapitel 5.1.

4.1.1 LINQtoSQL

Im der .NET Framework Version 3.5 ist die Technologie LINQ to SQL enthalten, welche relationale Daten als Objekte bereitstellt. [7]

LINQ to SQL übersetzt das Objektmodell in ein Datenmodell einer relationalen Datenbank. Falls Daten aus der Datenbank gelesen werden, übersetzt LINQ to SQL diese in Objekte. Das Object-Relational-Mapping wird im VS2008 mit dem Object Rational Designer (O/R Designer) erstellt.

Ein grosser Vorteil von LINQ to SQL ist, dass die jeweils datenbankspezifische SQL-Syntax nicht erlernt und angewendet werden muss. Das heisst, die SQL-Syntax für Datenbankzugriffe wird zur Laufzeit erstellt. Zum heutigen Zeitpunkt werden jedoch nur Microsoft SQL-Server Datenbanken unterstützt.

Das Kapitel 6 enthält einige Beispiele zu LINQ.

Page 35: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

35

4.2 Business Layer

4.2.1 Domänenmodell

Das Domänenmodell stellt die im Projekt vorhandenen Entities und deren Beziehungen untereinander dar. Das Domänenmodell ist eine vereinfachte Darstellung des Klassendiagramms in Abbildung 18 und dient zum Verständnis der Anwendung. (Namensgebung stimmt nicht mit Klassendiagramm überein.)

class Domain Model

QItemBase

QItemNumber QItemText

Device

Actor

DeviceList

Statistic

DeviceTemplate

QItemCheckPoint

Prio: Kann

*

*

1

*1

*

*

1

*

Abbildung 14: Domänenmodell

Der Produktionsauftrag Device nimmt eine zentrale Rolle ein. Einem Device ist ein DeviceTempla-te zugewiesen; dieses Template enthält die Beschreibungen in verschiedenen Sprachen. Um einem De-vice eine Stückliste mit untergeordneten Baugruppen anzufügen, wird die Liste DeviceList verwen-det.

QItemBase ist abstrakt und wird als Checkpunkt, numerischer Wert, oder Zeichenkette verwendet. Sämtliche Qualitätsmerkmale gehören zu einem Device. Als Actor versteht sich der Benutzer der An-wendung. Qualitätsmerkmale werden durch einen Actor bearbeitet.

Die statistischen Auswertungen Statistic sind Voreinstellungen, um Auswertungen zu erstellen (wird voraussichtlich nicht umgesetzt).

Die Umsetzung von Abbildung 14 spielt sich innerhalb der Business-Objekten ab.

4.2.2 Business Objekte

Die im Data Layer genannten Datenobjekte werden durch sogenannte Business Objects verwaltet. Ein Business Object überprüft, ob ein Benutzer über Schreib- oder Leserecht verfügt; weiter ist es möglich, die vom Benutzer eingegangenen Werte zu überprüfen und bei Fehleingaben eine Meldung zu erstellen.

4.2.3 CSLA Framework

In der Bystronic verwenden einige bereits abgeschlossene und noch im Entwicklungsstadium befindende Projekte das CSLA Framework von Rocky Lhotka [5]. Dieses open source Framework zum Erstellen von Windows oder Webservice orientierter Anwendungen beschleunigt den Entwicklungsprozess und verein-facht infolge Standardisierung der Geschäftslogikschicht die Wartung eines Projekts.

Page 36: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

36

CSLA .NET ist vollkommen objektorientiert und kapselt in abstrahierter Form die Business Logik, sowie die Daten. Die aktuelle Version des CSLA-Frameworks ist 3.5. Die Dokumentation erscheint per 31.12.08 im Buch [16].

Übersicht über die Key-Features von CSLA:

• Data binding für Windows Forms, WPF and Web Forms (Unter Data Binding versteht man das Koppeln von Business-Objekteigenschaften an ein Eingabe-Control)

• Unterstützung von Überprüfungen mittels Business Rules

• Berechtigungssystem für Businessobjekte und deren Property-Ebene

• Möglichkeit zum N-Level Undo

• Status tracking für Objekte: new, deleted, has changed, validity

• Möglichkeit zur Erstellung typisierter collections (Bsp.: Liste von Produktionsaufträgen)

• Aufteilung der Anwendung (location transparency between client and app server) Die Idee der «Location Transparency» ist, dass Dienste im Netz irgendwo angeboten werden kön-nen, ohne zu wissen, wo genau die Ressource vorhanden ist. So kann beispielsweise in dieser Zwischenschicht ein WCF-Host eingerichtet werden, welcher die Handhabung der Business Ob-jects übernimmt. (Erfordert WCF-Host plus Anpassung in web.config-Konfigurations-File)

• Mehrere Authentifizierungsmöglichkeiten

• Etc.

Als Prototyp habe ich im Mai 2008 eine kleine ASP.NET-Anwendung mit dem CSLA-Framwork erstellt (sie-he 3.8.1).

4.3 Presentation Layer Als Interaktionsschicht für den Benutzer dient der Presentation Layer. Da eine Vielzahl von Benutzern über Clients mit der Anwendung Produktionsüberwachung tätig ist, muss die Installationszeit auf einem Client minimal sein. Die Webtechnologie bietet sich hierzu an; diese erfordert für den Client nur gerade einen Browser – im Fall eines Updates muss lediglich der Server aktualisiert werden.

Die von MS Visual Studio mitgelieferte Webtechnologie heisst ASP.NET. Sie ist die Nachfolgetechnologie von ASP (Active Server Pages) und kommt mit bis zu 70% weniger Code aus. Die Version 3.5 unterstützt neu AJAX (Asynchronous Javascript And XML).

Eine ASP.NET-Seite besteht aus einer aspx-Datei, welche die Formulare, Labels etc. definiert. Das Erschei-nungsbild der Webseite legt die Master Page fest.

Ein Konzept, um Funktionalität von Darstellung zu trennen, ist die Implementation der Logik in einem zusätzlichen Code-Behind-File, welches mit der Erweiterung aspx.cs endet.

Die beiden Files mit den Erweiterungen .aspx und .aspx.cs sind je partielle Klassen und werden zur Lauf-zeit just in Time kompiliert, was die Ausführung beschleunigt.

4.3.1 Plugin WYSIWYG Editor

Als Prototyp habe ich mit dem Moxiecode TinyMCE WYSWYG Editor erste Erfahrungen gesammelt (siehe 3.8.1.4). Dieser Editor bietet ein komfortables Benutzerinterface und lässt sich problemlos in eine ASP-Anwendung integrieren.

4.3.2 Report Generator

Der vorgezogene Ansatz zum Erstellen von PDFs ist die Transformation von XML-Daten mittels XSL-Stylesheet in ein PDF-Dokument. Das Layout ist dann nicht in einer Softwarelibrary enthalten, sondern

Page 37: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

37

liegt ausgelagert in einem XSL-File vor. Apache bietet hierzu den Formation Objects Processor (FOP) in Java an. Für .NET ist NFOP verfügbar.

Begründungen zur Auswahl dieser Technologie

• Es spielt keine Rolle, ob ein PDF, HTML, PostScript, RTF, WordML oder MIF (Maker Interchange Format), etc. erstellt werden soll

• Die Transformation von XML-Daten ist ein direkter Weg von den Sourcedaten zum Zieldokument

• Durch W3C veröffentlichte Seitenbeschreibungssprache

• Für die Transformation von XHTML nach PDF existieren bereits XSLT-Templates

• Ein XSLT kann je nach Bedürfnissen modifiziert werden, beispielsweise durch Erweiterung des Fir-menlogos etc.

• Diese Technologie wird an der SWS im Modul XML[10] unterrichtet und ist mir somit bekannt.

analysis Report Generation

«XSL»Stylesheet

«XML»Dev ice.QualityItems

PDF

Formatting ObjectsProcessor

XSLT-Transformation

«XHTML»Dev ice.Dev iceTemplate.Description

«XML»Dokument

Devices_1 .. Device_n

XSL-FO

Abbildung 15: Report Generation

Abbildung 15 stellt den Ablauf der Transformation dar. Die Description und die QualityItems ergeben das für die Transformation erforderliche XML-Dokument. Dieses kann Daten mehrerer Devices enthalten. Das Formatting Object XSL:FO definiert das Layout des XML-Dokuments und wird mit NFOP in ein PDF trans-formiert.

4.4 Zusammenfassung Die Abbildung 16 stellt die genannten Technologien zusammen:

ASP.NETIIS

MS SQL Server

.NET Framework Linq to SQLCSLA-Framework «Business Objects»

Apache FOPXSLT

Abbildung 16: Übersicht Architektur

Page 38: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

38

5 Design Dieses Kapitel setzt auf der Analyse und der Architektur auf und legt die Grundsteine zur Implementation der Anwendung.

5.1 Datenmodell Das Datenmodell bildet die Struktur der Datenbank ab. Die Pfeile in Abbildung 17 sind Assoziationen, bei denen jeweils ein Fremdschlüssel auf einen Primärschlüssel gerichtet ist.

Die aufgeführten Tabellen dienen zur Datenerfassung und -mutation. In den Tabellen Actor (und Sta-tistics) können Einträge auch gelöscht werden.

class DBS

Actor

«column»*PK Id: int AccessAdmin: bit AccessSupervisor: bit* AccessMonteur: bit* LastName: varchar(50)* FirstName: varchar(50) FK LastModifiedDevice: int* UserName: varchar(12)* UserPasswordHash: int

«FK»+ FK_Actor_Device(int)

«PK»+ PK_Actors(int)

«unique»+ UQ_Actor_UserName(varchar)

QualityItemMap

«column»*PK Id: int MappingName: varchar(150)

«PK»+ PK_QualitItemMap(int)

«unique»+ UQ_QualitItemMap_MappingName(uniqueidentifier)

Device

«column»*PK Id: int FK ParentId: int* Serial: varchar(20) State: smallint FK ApprovedByActor1: varchar(12) ApprovedByActor1At: datetime FK ApprovedByActor2: varchar(12) ApprovedByActor2At: datetime FK DeviceTemplateId: int Remarks: text

«FK»+ FK_Device_Device(int)+ FK_Device_DeviceTemplate(int)

«PK»+ PK_Devices(int)

QualityItem

«column»*pfK Id: int CommitetAt: smalldatetime* Data: varchar(50) SpeciaApproval: bit FK UserName: char(12) FK DeviceId: int FK QMapId: int

«FK»+ FK_QualityItem_Device(int)+ FK_QualityItem_QualitItemMap(int)

«PK»+ PK_QualityItem(int)

Statistic

«column» FilterBegin: datetime FilterEnd: datetime FilterDeviceSapMaterialNr: varchar(20) FilterQItemName: varchar(100) Name: varchar(30) FK ActorId: int

«FK»+ FK_Statistic_Actor(int)

DeviceTemplate

«column»*PK Id: int Name: varchar(50) SapMaterial: varchar(20) State: smallint DescriptionGE: text DescriptionFR: text DescriptionIT: text DescriptionEN: text DescriptionES: text ExtTestSystem: varchar(200)

«PK»+ PK_DeviceTemplates(int)

«unique»+ UQ_DeviceTemplate_Name(varchar)

Prio: Kann

(DeviceId = Id)

«FK» 1

(DeviceTemplateId = Id)

«FK»1

«FK» (ParentId = Id)

+PK_Devices0..1

(QMapId = Id)«FK»

1

(ActorId = Id)

«FK»

1

(LastModifiedDevice = Id)

«FK»

0..1

Abbildung 17: Datenbank Schema

Page 39: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

39

5.1.1 Benutzer

Die Tabelle 3 ermöglicht, Benutzer (Actors) abzuspeichern.

Tabelle 3: DBS-Tabelle Actor

Spaltennamen Datentyp Betrifft / Beschreibung

Id int Primärschlüssel

AccessAdmin bit Berechtigung

AccessSupervisor bit Berechtigung

AccessMonteur bit Berechtigung

LastName varchar(50) Nachnamen

FirstName varchar(50) Vornamen

UserName varchar(12) Benutzernamen

LastModifiedDevice int, nullable Fremdschlüssel zu Device.Id

UserPasswordHash int Passwort-Hash

Der Eintrag LastModifiedDevice dient dazu, dass nach dem Anmelden eines Benutzers der zuletzt bearbei-tete Produktionsauftrag nicht über die Suchfunktion gefunden werden muss. Der Benutzer hat die Mög-lichkeit, den Produktionsauftrag direkt anzuwählen.

5.1.2 Qualitätsmerkmale

Die Namen der Qualitätsmerkmale werden in der Tabelle QualityItemMap abgespeichert. Die Tabelle QualityItem kennt über den Fremdschlüssel QmapId den Namen.

Tabelle 4: DBS-Tabelle QualityItem

Spaltennamen Datentyp Betrifft / Beschreibung

Id int Primärschlüssel

CommitetAt smalldatetime Zeitpunkt der letzten Änderung eines Qualitäts-merkmals

Data varchar(50), (nullable)

Angabe des Wertes als Zeichenkette (auch Zahlen werden als Zeichenkette abgelegt)

SpecialApproval bit Sonderfreigabe-Flag zur (Akzeptierung-Flag, falls Eingabe nicht plausibel ist)

UserName char(12) Kürzel des Benutzers

DeviceId int Fremdschlüssel zu Device.Id

QmapId int Fremdschlüssel zu QualityItemMap.Id

Der UserName ist kein Fremdschlüssel. Benutzer können gelöscht werden. Aus diesem Grund wird hier das Kürzel und nicht eine Referenz auf einen Benutzer gespeichert.

Tabelle 5: DBS-Tabelle QualityItemMap

Spaltennamen Datentyp Betrifft / Beschreibung

Id int Primärschlüssel

MappingName varchar(150) Bezeichner des Qualitätsmerkmals (z.B.: La-ser.Wasser.Shutter.Korrekuturfaktor)

Page 40: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

40

5.1.3 Device Tabelle 6: DBS-Tabelle Device

Spaltennamen Datentyp Betrifft / Beschreibung

Id int Primärschlüssel

ParentId int, nullable Fremdschlüssel zu Device.Id, damit ein Parent-Device zugeordnet werden kann (Stammbaum)

Serial varchar(20) Serialnummer eines Produktionsauftrags (Pro Ge-rätetyp darf eine Serialnummer nur einmal ver-wendet werden.)

State smallint Angabe des Zustands eines Produktionsauftrags (Eröffnet, Bearbeitung, Freigegeben, Zugewiesen)

ApprovedByActor1 varchar(12), nullable

Kürzel des Benutzers 1 (Monteur)

ApprovedByActor1At datetime, nul-lable

Zeitpunkt der Freigabeerteilung 1

ApprovedByActor1 varchar(12), nullable

Kürzel des Benutzers 2 (Supervisor)

ApprovedByActor1At datetime, nul-lable

Zeitpunkt der Freigabeerteilung 2

DeviceTemplateId int Fremdschlüssel zu DeviceTemplate.Id

Remarks text, nullable Bemerkungsfeld zum Notieren von spezifischem Verhalten der Baugruppe oder speziell ausgeführ-ten Aktionen

Die Datensätze ApprovedByActor1/2 sind keine Fremdschlüssel. Benutzer können gelöscht werden. Aus diesem Grund wird hier das Kürzel und nicht eine Referenz auf einen Benutzer gespeichert.

Tabelle 7: DBS-Tabelle DeviceTemplate

Spaltennamen Datentyp Betrifft / Beschreibung

Id int Primärschlüssel

Name varchar(50) Eindeutiger Name des Templates (eventuell mit Revisionsnummer)

SapMaterial varchar(20) Fremdsystem-Schlüssel zu SAP-Materialnummer (in der Regel Zehnmillionennummern)

State smallint Angabe des Zustandes eines Templates

DescritpionXX (5x) text, nullable HTML-Beschreibung mit Formatierungen und Qua-litätsmerkmal-Platzhalter

XX steht für Sprachcode GE, ES, EN, FR und IT

ExtTestSystemURI varchar(200), nullable

Einheitliche und unverwechselbare Adressierung des externen Testsystems zur Abfrage von Quali-tätsmerkmalen. Ist null, sofern lokale DB verwen-det wird.

Page 41: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

41

5.2 Klassendiagramm Das Klassendiagramm der Anwendung Produktionsüberwachung in Abbildung 18 zeigt die beiden Haupt-projekte Presentation: PQCWeb und Business: ProductionQualityControl.Library.

Die Businessklassen sind jeweils von Klassen des CSLA-Frameworks abgeleitet.

class Class Diagram

Business

Csla

Presentation

Dev ice

Actor

Dev iceList

Dev iceTemplate

QualityItem

Dev iceEdit

PDFHandler

Statistics

Dev iceTemplateEdit

ActorEdit

QualityItemList

BusinessBase

ReadOnlyListBase

ActorList

Dev iceTemplateList

ReadOnlyBase

Dev iceInfo

Dev iceTemplateInfo

QualityItemInfo

ActorInfo

Dev iceTree

ActorList

BusinessPrincipalBasePQCPrincipalLogin

Dev iceList

Dev iceTemplateList

*1

«use»

«use»

«use»

«use»

1..*

«use»

«use»«use»

«use»

«use»

«use»

«use»

Abbildung 18: Klassendiagramm

5.2.1 Beschreibungen der Klassen im Package Presentation

Sämtliche hier aufgeführten Klassen bestehen aus einem .aspx-File in XML und einer Code-Behind-Klasse mit de Erweiterung .aspx.cs. (Ausnahme: PDFhandler hat Erweiterung .ashx)

Tabelle 8: Design: Klassen im Package Presentation

Klasse Beschreibung

ActorList

Das Webformular ActorList dient zur Ausgabe der ActorInfo-Liste. Ein beste-hender Benutzer kann angewählt werden (Weiterleitung nach ActorEdit). Mit Administrator-Berechtigung ist es möglich, Benutzer zu löschen oder neu zu erfassen.

Page 42: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

42

Klasse Beschreibung

ActorEdit

Webformular zur Ansicht von Benutzerdaten. Mit Administrator-Berechtigung ist es möglich, Benutzerdaten zu aktualisieren. (Vorname, Nachname und Benutzername sind nach dem Eröffnen eines Benutzers nicht mehr modifizierbar.)

DeviceList

Das Webformular DeviceList dient zur gefilterten Ausgabe der DeviceInfo-Liste. Ein bestehender Produktionsauftrag kann angewählt werden (Weiter-leitung nach DeviceEdit). Mit Monteur-Berechtigung ist es möglich, Produk-tionsaufträge neu zu erfassen.

Für einen angemeldeten Benutzer ist ein Link auf den zuletzt bearbeiteten Produktionsauftrag vorzusehen.

DeviceEdit

Webformular zur Ansicht von Produktionsaufträgen. Mit Monteur-Berechtigung ist es möglich, Produktionsaufträge zu erfassen und Baugrup-pendaten zu aktualisieren.

Der Modus Übersicht gibt Auskunft über allgemeine Eigenschaften des BOs Device. Ausserdem ist es möglich, Bemerkungen zu verfassen.

Der Modus Bearbeiten stellt ein Formular zur Bearbeitung von Qualitäts-merkmalen zur Verfügung. Dieses Formular wird dynamisch erstellt, indem die Qualitätsmerkmal-Platzhalter innerhalb der DeviceTemplate-Beschrei-bungen durch ASP.NET-Controlls ersetzt werden. Dies ist durch eine XSL-Transformation (XSLT) zu realisieren. Diese Transformation führt ausserdem die Plausibilitätskontrolle durch (Ergebnis rein visuell).

Im Modus Untergeordnete Baugruppen können untergeordnete Baugruppen zugewiesen oder entfernt werden. Hierzu sind 2 Tabellen mit Daten vom Typ DeviceList (BO) zu erstellen, eine mit dem Button ’+’ um hinzuzufügen, die andere mit ’-’ um zu entfernen. Die Tabelle ’+’ ist mit einer Filterfunktion auszustatten und stellt zuweisbare Baugruppen dar. Die Tabelle ’-’ ist eine Tabelle mit zugewiesenen untergeordneten Baugruppen – ohne Filterfunkti-on. Mit DeviceList ist hier die Businessklasse gemeint. Das heisst, die Selekti-on von ’+’ und ’-’ Daten erfolgt in der Businessklasse.

Im Modus Report kann die Sprache vorgegeben werden und ob ein internes oder externes Abnahmeprotokolle erstellt werden soll. Weiterleitung nach PDFhandler.

DeviceTemplateList

Das Webformular DeviceTemplateList dient zur Ausgabe der DeviceTempla-teInfo-Liste desselben Zustands. Der Benutzer wählt aus, welcher Zustand anzuzeigen ist. Ein bestehender Gerätetyp kann angewählt werden (Weiter-leitung nach DeviceTemplateEdit). Mit Administrator-Berechtigung ist es möglich, Gerätetypen neu zu erfassen.

DeviceTemplateEdit

Webformular zur Ansicht von DeviceTemplate-Daten. Mit Administrator-Berechtigung ist es möglich, Gerätetypen in jeder Sprache zu aktualisieren. Beschreibungen können nur im Zustand Entwurf modifiziert werden. Name und SAP# sind nach dem Eröffnen eines neuen Gerätetyps nicht mehr modifi-zierbar.

Für die Modifikation der Beschreibung ist ein WYSIWYG-Editor (zB.: TinyMCE) wünschenswert.

Page 43: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

43

Klasse Beschreibung

Statistics

Das Webformular Statistics dient einerseits zum Definieren von Auswertun-gen und andererseits zur Anzeige der Ergebnisse. Zuerst gibt der Benutzer den Namen des Qualitätsmerkmals, Start- und Endtermin, sowie einen opti-onalen Contains-Filter ein. Anschliessend erfolgt die Ausgabe in kommage-trennter Form. Die Ausgabe besteht aus Wert, Datum, SAP# und Serial#.

Hierzu wird eine QualityItemList mit Elementen des Typs QualityItemInfo zusammengestellt.

Login

Das Webformular Login dient zum Anmelden eines neuen Benutzers. Die Klasse besteht nur aus dem Tag <ASP:Login runat="server" />.

Alles Weitere geschieht im PQCMembershipProvider.

PDFHandler

Klasse zum Erstellen von PDF-Dokumenten mittels XSLT und Apache NFOP.

Zum Zeitpunkt des Designs ist klar, dass die Businessklasse DeviceTree eine Liste von Produktionsaufträgen zur Verfügung stellt. Aus dieser Liste wird eine XML-Struktur erstellt, welche mehrere Devices mit Beschreibungen und Qualitätsmerkmalen enthält. Anschliessend wird mittels XSLT ein FO-Dokument erstellt. Dieses Dokument wird dann in ein PDF konvertiert. Siehe hierzu Abbildung 15 auf Seite 37.

App_Code-Verzeichnis Die folgenden 4 Hilfsklassen sind im Klassendiagramm nicht aufgeführt.

EmptyGridView Sofern eine DataSource keine Daten für das GridView einer Device Liste lie-fert, wird für die Darstellung eines leeren GridViews lediglich eine textuelle Informationszeile dargestellt.

Im Header des GridViews sind jedoch Eingabefelder zur Filterung von Inhal-ten vorgesehen. Damit diese Eingabefelder sichtbar sind, sofern keine Daten-sätze gefunden werden, müssen Teile der Klasse GridView überschrieben werden. Die Klasse EmptyGridView stammt aus dem Internet [12].

PQCMembershipProvider Bestandteil des CSLA-Frameworks. Die Methoden Login/Logout werden hier aufgerufen.

ReportDefinition ReportDefinition dient zur Übergabe von Parametern zur Spezifikation eines Reports

XsltExtension Die von Microsoft unterstützte XSL-Transformation (XSLT1.0) unterstützt keine regulären Ausdrücke.

Es ist jedoch möglich, mit C# den Funktionsumfang von XSLT zu vergrösssern. Hierzu wird ein Objekt von XsltExtension erstellt, welches folgende Aufgaben übernimmt: Überprüfen, ob ein Ausdruck einem Regulären Ausdruck ent-spricht, Filterung mittels Regulärem Ausdruck und Suchen/Ersetzen von Zei-chenketten.

5.2.2 Beschreibungen der Klassen im Package Business Tabelle 9: Design: Klassen im Package Business

Klasse Beschreibung

BusinessBase

Die CSLA-Klasse BusinessBase ist die Basis von allen veränderbaren (les- und schreibbaren) Business Objekten, welche im Projekt erstellt werden.

Die von BusinessBase abgeleiteten Klassen überschreiben die Defaultmetho-den zum Lesen und Schreiben der Datenbank.

Page 44: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

44

Klasse Beschreibung

Dev iceTemplate

Die Klasse DeviceTemplate dient dazu, Gerätetyp-Vorlagen zu laden, zu er-fassen und zu aktualisieren. Bei allen Aktionen wird jeweils die Sprache vor-gegeben.

Dev ice

Die Klasse Device dient dazu, Baugruppen zu laden, zu erfassen und zu aktua-lisieren.

QualityItem

Die Klasse QualityItem dient dazu, Qualitätsmerkmale zu laden, zu erfassen und zu aktualisieren. Die Qualitätsmerkmale werden in eine XML-Struktur verpackt. Weiter ist eine XML-Schnittstelle zu externen Testsystemen vor-handen, um dortige Qualitätsmerkmale abzufragen.

Actor

Die Klasse Actor dient dazu, Benutzerdaten zu laden, zu erfassen, zu mutie-ren und zu löschen.

ReadOnlyListBase

Die CSLA-Klasse ReadOnlyListBase ist die Basis von Listen mit Business Objek-ten. Die Liste und die darin enthaltene Objekte sind nicht modifizierbar.

Dev iceTree

Die Klasse DeviceTree liefert eine Liste mit Elementen vom Typ Device (in Preorder-Reihenfolge), welche einem vorgegebenen Produktionsauftrag hierarchisch untergeordnet sind. Siehe Kapitel 5.3.2.1 und 6.3.2.2.

Dev iceList

Die Klasse DeviceList liefert verschiedene Listen mit Elementen vom Typ De-viceInfo:

Variante 1: Erstelle Liste mit gefilterten Produktionsaufträgen

Variante 2: Erstelle Liste mit gefilterten möglichen Child-Produktionsaufträgen (zirkulare Referenzen vermeiden)

Variante 3: Erstelle Liste mit vorhandenen Child-Produktionsaufträgen

Die Variante 1 setzt zusätzlich das Property LastModifiedDevice

Dev iceTemplateList

Die Klasse DeviceTemplateList liefert eine Liste mit Elementen vom Typ Devi-ceTemplateInfo (Parameter: Status)

QualityItemList

Die Klasse QualityItemList liefert eine Liste mit Elementen vom Typ QualityI-temInfo (Parameter: Name des Qualitätsmerkmals, Start- und End-Datum, sowie Contains-Filter für ausgegebenen Wert.)

ActorList

Die Klasse ActorList liefert eine Liste mit Elementen vom Typ ActorInfo (Pa-rameter: Filter für FirstName, LastName oder UserName)

ReadOnlyBase

Die CSLA-Klasse ReadOnlyBase ist die Basis von lesbaren Business Objekten, welche im Projekt erstellt werden.

Dev iceTemplateInfo

Die Klasse DeviceTemplateInfo definiert die Attribute für eine Kurzinformati-on von DeviceTemplates.

Dev iceInfo

Die Klasse DeviceInfo definiert die Attribute für eine Kurzinformation von Devices.

QualityItemInfo

Die Klasse QualityItemInfo definiert die Attribute für eine Kurzinformation von QualityItems.

ActorInfo

Die Klasse ActorInfo definiert die Attribute für eine Kurzinformation von Ac-tors.

Page 45: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

45

Klasse Beschreibung

BusinessPrincipalBase

Die CSLA-Klasse BusinessPrincipalBase ist die Basis der Berechtigungsklasse, welche die Identität und die Sicherheits-Berechtigung (Login/Lgout) steuert.

PQCPrincipal

Benutzer an- und abmelden, Berechtigung überprüfen

5.3 Sequenzdiagramme Der Benutzer bedient die Business Objects «BO»-Klassen indirekt über Presentation «UI»-Klassen. Die Datenbankzugriffe erfolgen in den «BO»-Klassen.

Zwei Abläufe innerhalb der Anwendung Produktionsüberwachung sind etwas komplexer als andere Abläu-fe und werden deshalb mittels Sequenzdiagrammen analysiert. (Die Methodennamen sind für die Imple-mentation nicht bindend.)

5.3.1 Produktionsauftrag bearbeiten

Im Sequenzdiagram in Abbildung 19 agiert ein als Monteur angemeldeter Benutzer am System.

Das Sequenzdiagramm in Abbildung 19 stellt folgendes dar:

1. Der Monteur klickt auf Produktionsaufträge, worauf

• das System die Einträge des Business-Objekts «BO» DeviceList mit dem User Interface«UI» Devi-ceList präsentiert.

2. Er wählt den gewünschten Produktionsauftrag aus,

• worauf mit den Daten des angewählten Produktionsauftrags ein DeviceEdit-Formular erstellt wird. Die Daten werden über die Business-Objekte Device, DeviceTemplate und QualityItem zu-sammengestellt.

• TransformForm erstellt mittels XSL-Transformation ein ASP-Formular zur Eingabe von Qualitäts-merkmalen. In diesem Schritt wird ebenfalls die Plausibilitätskontrolle durchgeführt, welche ge-mäss Kapitel 3.2.5 nur einen visuellen Effekt zur Folge hat.

3. Der Benutzer bearbeitet Qualitätsmerkmale und speichert die Änderungen.

• Das System führt die SaveDevice-Methode aus, welche in UpdateQualityItems die geänderten Qualitätsmerkmale in ein XML-Dokument schreibt. Diese gelangen via Device in die QualityItem-Businessklasse.

• TransformForm wird erneut aufgerufen

4. Wiederholung ab Punkt 3

TransformForm, das ‚Herzstück’ dieser Sequenz, wird im Kapitel 6.4.3 beschreiben.

Page 46: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

46

sd DeviceEdit

Actor

«UI»

:DeviceList

«BO»

:DeviceTemplate

«BO»

:Device

«BO»

QualityItem

«BO»

:DeviceList

«UI»

:DeviceEdit

loop

Logged in as Monteur

create

GetDeviceList :deviceList

SelectDevice

create

GetDevice(Id)GetDeviceTemplate

GetQualityItem

TransformForm

EditQualityItems

Save

SaveDevice

UpdateQualityItems

SaveUpdateChild(XML)

TransformForm

Abbildung 19: Sequenzdiagramm Produktionsauftrag bearbeiten

5.3.2 Report erstellen

Als Vorbedingung gilt, dass ein Device gemäss Abbildung 19 (vorige Sequenz) ausgewählt wurde. Im Se-quenzdiagram in Abbildung 20 agiert ein Benutzer mit oder ohne Berechtigung am System:

1. Der Benutzer hat einen Produktionsauftrag ausgewählt und klickt auf «Report». Anschliessend wählt er die Sprache aus und gibt an, ob er einen internen oder externen Report erstellen möchte. Nach Be-tätigung von GenerateReport, ruft

• das System den PDFHandler auf. Diese Klasse wiederum ruft das BO DeviceTree auf, um eine Liste von verwandten Produktionsaufträgen (Nachkommen) abzufragen.

• DeviceTree erstellt diese Liste nach Preorder mittels rekursiven Aufrufen von Fetch (siehe 5.3.2.1).

• Jedes eingefügtes Device beinhaltet eine Beschreibung aus dem BO DeviceTemplate und den Qualitätsmerkmalen aus dem BO QualityItem.

Page 47: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

47

• MergeDevices wandelt die Liste in eine XML-Struktur um.

• Zur Gliederung des Inhaltsverzeichnisses des zu erstellenden Reports wird für jeden Produktions-auftrag die Hierarchieebene ermittelt und als Attribut eingefügt.

• Das nun zusammengestellte XML-Dokument wird mittels XSL-Stylesheets in ein XSL:FO-Dokument transformiert.

• Das XSL:FO-Dokument wird via FO-Processor in ein PDF umgewandelt (siehe Abbildung 15, Seite 37).

• Die Plausibilitätskontrolle führt auch hier zu visuellen Effekten, sofern Qualitätsmerkmale nicht plausibel eingegeben wurden.

• Das PDF ist anschliessend im Browser geöffnet.

sd ReportCreate

Actor

«Presentation»

:DeviceEdit

«BO»

:DeviceTemplate

«BO»

:Device

«BO»

:QualityItem

«UI»

:PDFHandler

loop

[foreach Child]

«BO»

:DeviceTree

Generate List in Preorder

Recursive call...

ParentId==this.Id

<Devices> <Device> <Description>...</Description> <QualityItems>...</QualityItems> </Device> <Device> ... </Device></Devices>

GenerateReport

GenerateReport

New

generateTree

GetDeviceTree

Fetch

GetDevice

GetDeviceTemplate

GetQualityItem

AddToList

GetChilds

Fetch

MergeDevices :XML

XSL-Transform

FO-Processor

PDF

Abbildung 20: Sequenzdiagramm Report erstellen

Page 48: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

48

5.3.2.1 Hierarchie mit dem Verfahren Preorder Jeder Produktionsauftrag kann höchstens einem übergeordneten Produktionsauftrag zugewiesen werden. Das heisst, dass jeder Produktionsauftrag seinen Parent-Produktionsauftrag kennt.

Folgendes Beispiel stellt dar, in welcher Reihenfolge einzelne Produktionsaufträge in den Report einflies-sen.

Tabelle 10: Beispiel einer hierarchischen Stückliste

This.Id Parent_Id Resultierende Ebene

36 Null 1 (Wurzel, root)

11 36 2

13 36 2

22 36 2

16 11 3

Die Parent-Child-Beziehungen der Tabelle 10 können in einer Baumstruktur abgebildet werden. Da eine Baumstruktur nicht in einem PDF-Dokument abgebildet werden kann, muss dieser Baum in eine Array-Struktur traversiert werden. Einen Baum zu traversieren bedeutet, alle beteiligten Knoten (Blätter) in einer definierten Reihenfolge zu durchlaufen. (Gängige Reihenfolgen: Preorder, Postorder, Inorder, Level-order)

In diesem Fall wird die Reihenfolge nach Vorordnung (Preorder) verwendet.

Ablauf:

• Wurzel

• Teilbaum 1..n (jeweils in Vorordnung)

Abbildung 21: Baumstruktur

Nach dem Traversieren des Baumes in Abbildung 21 mit der Reihenfolge Preorder resultiert die Reihen-folge {36, 11, 16, 13, 22}. Die Reihenfolge der Ids innerhalb einer Ebene ist aufsteigend.

36

11 13

16

22

Ebene 1

Ebene 2

Ebene 3

Page 49: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

49

6 Implementation Die Implementation basiert auf der im Kapitel 4 vorgestellten Architektur und des im Kapitel 5 ausgearbei-teten Designs. Die Solution im VS2008 besteht aus den Projekten «PQCData», «PQC.DalLinq», «Producti-onQualityControl.Library» und der Webseite «PQCWeb».

Zum Unit-Test ist das Projekt «PQC.Library.Test» vorhanden.

6.1 PQCData Dieses Projekt besteht aus der Datenbank «PQCData.mdf». Diese setzt sich aus Tabellen (mit Daten) und Stored Procedures zusammen.

6.1.1 Tabellen

Das Datenmodell befindet sich im Kapitel 5.1.

Das Werkzeug Enterprise Architect erstellt aus dem Datenbankschema SQL-Scripts, mit welchen die Tabel-len weitgehend automatisch erstellt werden können.

Nachträgliche Modifikation: Sämtliche Spaltennamen mit dem Namen «Id» werden der Datenbank auto-matisch erstellt (Inkrement = 1). Das heisst, ein SQL-Insert beinhaltet keinen Id-Parameter, dieser muss nach der Transaktion zurückgelesen werden.

Anmerkung: Die ProjectTracker-Beispielanwendung im CSLA-Framework erstellt für die Identifikation GUIDs. Ich ziehe es vor, mit Int32-Ids zu arbeiten, weil diese weniger Speicher benötigen und somit von der DB effizienter gehandhabt werden können.

6.1.2 Stored Procedures

Um Datenzugriffe über einen Funktionsaufruf zu realisieren, unterstützt der SQL-Server Stored Procedu-res (SP). Diese sind über den O/R-Mapper für Linq to SQL ebenfalls zugänglich. Im Projekt bestehen nur drei SPs, welche ich am Anfang der Entwicklungszeit erstellt habe. – Später habe ich herausgefunden, dass Linq to SQL direkt mit der Datenbank kommuniziert, indem dynamisch SQL-Scripts erstellt werden. Alle weiteren DB-Zugriffe habe ich auf diese ‚elegante’ Art erstellt.

6.1.2.1 Stored Procedure addDevice Die SP addDevice fügt ein neues Device hinzu. Falls die Serial# bereits vorhanden ist, erfolgt eine Fehler-ausgabe:

RAISERROR('Not unique value "%s" passed for @serial.', 16, -1, @serial) RETURN 50000

6.1.2.2 Stored Procedure updateDevice Die SP updateDevice aktualisiert ein Device. Die Serial# wird mit dieser SP nicht modifiziert.

6.1.2.3 Stored Procedure saveQualityItem Der Name Save bedeutet hier, dass die SP zum Hinzufügen und Aktualisieren (insert / update) verwendet wird. Siehe Activity Diagram in Abbildung 22.

Page 50: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

50

act sav eQualityItem

«select»Ist Name in QualityItemMap

enthalten?

«insert»Name in QualityItemMap

eröffnen

«select»Ist Qualitätsmerkmal

bereits enthalten?

«update»Qualitätsmerkmal

aktualisieren

«insert»Neues Qualitätsmerkmal

eröffnen

[N]

[J]

[J]

[N]

Abbildung 22: Stored Procedure saveQualityItem

Speichere Qualitätsmerkmal

Existiert in der Tabelle QualityItemMap der Name des zu speichernden Quali-tätsmerkmals bereits?

N: Name in QualityItemMap einfügen und Id merken.

Prüfe, ob Qualitätsmerkmal in Tabelle QualityItem enthalten ist.

J: Eintrag überschreiben

N: Mit Mapping-Id neuen Eintrag für Qualitätsmerkmal anlegen

Speichern vollzogen

Page 51: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

51

6.2 PQC.DalLinq Dieses Projekt besteht aus dem Datenbank-Abstraktions-Layer Linq (Language INtegrated Query). Linq übernimmt das Object-Relational Mapping (O/R Mapping).

Mit dem O/R-Designer (siehe Abbildung 23) wird im Wesentlichen ein Abbild der Tabellen erstellt. Daraus erstellt das VS2008 die Klasse PQCDataContext.

Abbildung 23: Schema gemäss O/R Designer

Die Assoziationen (Pfeile) zeigen die Richtungen von Fremdschlüsseln an und definieren somit die Bezie-hungen von Tabellen.

Bsp: Device.DeviceTemplateId hat einen Pfeil auf DeviceTemplate.Id. Somit ist ein direkter Zugriff auf assoziierte Tabellen möglich, wie folgendes Beispiel zeigt:

using (var ctx = ContextManager<PQC.DalLinq.PQCDataContext>. GetManager(PQC.DalLinq.Database.PQCData)) { var device = (from p in ctx.DataContext.Devices where p.Id == criteria.Id select p).Single();

string sapMAterial = device.DeviceTemplates.Single().SapMaterial

}

In diesem Beispiel wird zuerst der Datensatz device aus der Tabelle Device ausgewählt. Anschliessend ist es möglich, auf die assoziierte Tabelle DeviceTemplates zuzugreifen. SapMaterial ist ein Eintrag der Tabelle DeviceTemplate.

Weitere Beispiele zu Linq siehe Kapitel 6.3.3, Seite 56.

Page 52: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

52

6.3 ProductionQualityControl.Library Die Grundlage der Businesslogik in diesem Projekt ist das CSLA-Framework, welches zurzeit undokumen-tiert in der Version 3.5 verfügbar ist. Die Solution Produktionsüberwachung basiert zu einem grossen Teil auf der CSLA-Beispielapplikation ProjectTracker, welche Projekte und Rollen verwaltet.

Wegen der noch fehlenden Dokumentation dieses Frameworks war die Lernkurve nicht sehr steil. Die knapp 700-seitige Dokumentation der Verison 2 [3] stimmt nur noch in den Grundzügen überein. Das Konzept ist immer noch dasselbe, jedoch gibt es Änderungen in der Syntax in den Businessklassen. Diese ist um einiges kompakter (und komplexer) geworden.

Die Dokumentation der Business-Logik beschränkt sich auf folgende Schwerpunkte:

- Businessklassen, abgeleitet von BusinessBase

- Listen, abgeleitet von ReadOnlyListBase

- Listen, abgeleitet von BusinessListBase

6.3.1 Businessklassen, abgeleitet von BusinessBase

Zu diesen Klassen gehören Device, DeviceTemplate, QualityItem und Actor. Die Dokumentation der Busi-ness-Logik hat das Schwergewicht auf den Standardabläufen innerhalb der Klasse Device.cs. Methoden innerhalb des CSLA-Frameworks werden nicht beschrieben.

6.3.1.1 Business Methoden Die Business Methoden deklarieren die Eigenschaften der Business-Klassen mit Methoden des CSLA-Frameworks. Die sogenannten Properties werden über die CSLA-Methoden GetProperty<T> und SetProperty<T> geschrieben und gelesen.

Folgendes Beispiel zeigt das Serial-Property innerhalb der Klasse Devices.cs.

private static PropertyInfo<string> SerialProperty = RegisterProperty<string>(typeof(Device), new PropertyInfo<string>("Serial")); public string Serial { get { return GetProperty<string>(SerialProperty); } set { SetProperty<string>(SerialProperty, value); } }

6.3.1.2 Validation Rules Die Validation Rules geben vor, welche Properties wie überprüft werden. Folgendes Beispiel stellt sicher, dass das Serial-Property nicht ein leerer String ist und ausserdem die Gesamtlänge von 20 Zeichen nicht überschreitet.

protected override void AddBusinessRules() { ValidationRules.AddRule(CSLA.Validation.CommonRules.StringRequired, new CSLA.Validation.RuleArgs(SerialProperty)); ValidationRules.AddRule(CSLA.Validation.CommonRules.StringMaxLength, new CSLA.Validation.CommonRules.MaxLengthRuleArgs(SerialProperty, 20)); }

Page 53: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

53

6.3.1.3 Authorisation Rules Die Authorisation Rules definieren den Berechtigungslevel einzelner Properties. Dieses Beispiel setzt die Schreib-Berechtigung für den Monteur, Supervisor und den Administrator.

protected override void AddAuthorizationRules() { string[] allRoles = new string[] { AccessRole.montuer,

AccessRole.superVisor, AccessRole.admin }; AuthorizationRules.AllowWrite(SerialProperty, allRoles); }

6.3.1.4 Datenzugriff lesend In einem ersten Schritt spricht das User Interface eine Factory-Methode an. Diese Factory-Mothode sorgt dafür, dass auf dem konfigurierten Host die Daten bereitgestellt oder geschrieben werden. Der Return-Wert entspricht dem Business-Objekt.

Im Beispiel zum Abfragen eines Devices wird die Klassse DeviceIdentification verwendet:

public static Device GetDevice(int id, string languageCode, bool loadQualityItems) { return DataPortal.Fetch<Device>(new Device.DeviceIdentification(id, languageCode, loadQualityItems)); } Beim Aufruf der Klasse T Fetch<T>(object criteria) wird ein Objekt des Typs DeviceIdentification als Parameter übergeben. Dieses Objekt wird anschiessend in der Methode private void DataPortal_Fetch(DeviceIdentification criteria) weiterverwendet: private void DataPortal_Fetch(DeviceIdentification criteria) { using (var ctx = ContextManager<PQC.DalLinq.PQCDataContext>.GetManager( PQC.DalLinq.Database.PQCData)) { // get Device data var data = (from p in ctx.DataContext.Devices where p.Id == criteria.Id select p).Single(); LoadProperty<int>(IdProperty, data.Id); LoadProperty<int?>(ParentIdProperty, data.ParentId); LoadProperty<string>(SerialProperty, data.Serial); LoadProperty<short, short?>(StateProperty, data.State); LoadProperty<int>(DeviceTemplateIdProperty, data.DeviceTemplateId); LoadProperty<string>(RemarksProperty, data.Remarks); // get child data if (criteria.LoadQualityItems) { LoadProperty<QualityItem>(QualityItemsProperty, QualityItem.GetQualityItem(data.Id, data.DeviceTemplates.Single().ExtTestSystemURI, data.Serial)); } LoadProperty<DeviceTemplate>(DeviceTemplateProperty, DeviceTemplate.GetDeviceTemplate(data.DeviceTemplateId, criteria.TemplateLanguage)); } }

Dieses Beispiel zeigt wie die Daten den Properties zugewiesen werden.

Page 54: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

54

Obiges Beispiel ruft bei Bedarf (Bedingung: criteria.LoadQualityItems) die Qualitätsmerkmale ab. Dabei wird die Methode GetQualityItem der Klasse QualityItem ausgeführt. Konkret heisst dies, dass die Business-Klassen miteinander kommunizieren können.

6.3.1.5 Datenzugriff schreibend Wird die Methode save() angewählt, wird bei ausreichender Berechtigung in der Klasse Device die Me-thode DataPortal_Update() zum Speichern der Daten ausgeführt:

[Transactional(TransactionalTypes.TransactionScope)] protected override void DataPortal_Update() { using (var ctx = ContextManager<PQC.DalLinq.PQCDataContext>. GetManager(PQC.DalLinq.Database.PQCData)) { // insert Device data ctx.DataContext.updateDevice( ReadProperty<int>(IdProperty), ReadProperty<int?>(ParentIdProperty), ReadProperty<short>(StateProperty), ReadProperty<int>(DeviceTemplateIdProperty), ReadProperty<string>(RemarksProperty)); var data = (from p in ctx.DataContext.Actors where p.UserName.Equals(CSLA.ApplicationContext.User.Identity.Name) select p).Single(); data.LastModifiedDevice = ReadProperty<int>(IdProperty); ctx.DataContext.SubmitChanges(); // update child objects DataPortal.UpdateChild( ReadProperty<QualityItem>(QualityItemsProperty), this); } }

Diese Methode liest die Properties aus dem Business-Objekt. Persisitert werden die Daten mittels der Stored Procedure updateDevice.

Linq to SQL (ohne Stored Procedure) aktualisiert in der Tabelle Actor beim aktiven Benutzer den Eintrag data.LastModifiedDevice.

Zuletzt werden die Qualitätsmerkmale mit UpdateChild gespeichert. Dies geschieht über das CSLA-DataPortal, welches in der Klasse QualityItem die Methode Child_Update(Device device) aufruft.

Die Direktive [Transactional(TransactionalTypes.TransactionScope)] wird verwendet, da diese Methode Teil eines Transaktionszyklus ist. Schlägt eine von mehreren beteiligten Transaktionen fehl, wird automatisch ein Rollback veranlasst.

6.3.2 Listen, abgeleitet von ReadOnlyListBase

Zu diesen Klassen gehören DeviceList, DeviceTree, DeviceTemplateList und ActorList. Die Dokumentation der Business-Logik legt das Schwergewicht auf die Standardabläufe innerhalb der Klasse DeviceList.cs. Methoden innerhalb des CSLA-Frameworks werden nicht beschrieben.

Bemerkung: Klassen, welche von ReadOnlyListBase abgeleitet sind, können auf dem Presentation-Layer über eine DataSource mit einem Control verbunden werden.

6.3.2.1 Liste erstellen Die Abfrage der Liste erfolgt auch hier mittels einer Factory-Methode. Das CSLA-DataPortal erstellt die Liste mit der Methode DataPortal_Fetch(). Auszug aus der Klasse DeviceTemplateList:

Page 55: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

55

private void DataPortal_Fetch(CSLA.SingleCriteria<DeviceTemplateList, short> criteria) { RaiseListChangedEvents = false; using (var ctx = ContextManager<PQC.DalLinq.PQCDataContext>.GetManager( PQC.DalLinq.Database.PQCData)) { var data = from p in ctx.DataContext.DeviceTemplates where p.State.Equals(criteria.Value) select new DeviceTemplateInfo(p.Id, p.SapMaterial, DeviceTemplate.TemplateState.GetName(p.State), p.Name); if (data.Count() > 0) { IsReadOnly = false; this.AddRange(data); IsReadOnly = true; } } RaiseListChangedEvents = true; }

Diese Methode erstellt aus der Tabelle DeviceTemplates mittels Linq to SQL die Liste data. Die zugewie-senen Objekte sind vom Typ DeviceTemplateInfo. Enthält die Liste mindestens 1 Element, werden diese Objekte anschliessend mittels AddRange(data) hinzugefügt.

6.3.2.2 Liste in Preorder mittels Rekursion erstellen Um einen hierarchischen Report zu erstellen, ist eine hierarchische Struktur von Devices erforderlich. Die Klasse DeviceTree ist jedoch kein Baum, wie es der Name vermuten liesse, sondern eine Liste. Der Baum kann jedoch mit dem Attribut ParentId rekonstruiert werden.

Die Liste wird nach der Reihenfolge Vorordnung (Preorder) aufgebaut. Siehe Kapitel 5.3.2.1.

Vorordnung bedeutet hier, dass zuerst die Wurzel, dann die Teilbäume (Äste) hinzugefügt werden. Das heisst, zuerst wird das Device mit der vorgegebenen criteria.Id eingefügt, anschliessend wird DataPortal_Fetch für jedes Child rekursiv aufgerufen.

private void DataPortal_Fetch(Device.DeviceIdentification criteria) { using (var ctx = ContextManager<PQC.DalLinq.PQCDataContext>.GetManager( PQC.DalLinq.Database.PQCData)) { // add self this.Add(Device.GetDevice(criteria.Id, criteria.TemplateLanguage, true)); // get Child Devices var data = (from p in ctx.DataContext.Devices where p.ParentId == criteria.Id select p); foreach (var d in data) // iterate Childs { if (d.Id > 0) { DataPortal_Fetch(new Device.DeviceIdentification(d.Id, criteria.TemplateLanguage, true)); } } } }

Childs sind daran zu erkennen, dass deren ParentId gleich der Id des Parents ist.

Page 56: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

56

6.3.3 Weitere Beispiele zu Linq

6.3.3.1 Syntaxbeispiel Actor einfügen using (var ctx = ContextManager<PQC.DalLinq.PQCDataContext>.GetManager(PQC.DalLinq.Database.PQCData)) { var datas = from u in ctx.DataContext.Actors where u.UserName == ReadProperty<string>(UserNameProperty) select u; if (datas.Count() > 0) { throw new Exception("Benutzername '" + ReadProperty<string>(UserNameProperty) + "' bereits vorhanden."); } var actor = new PQC.DalLinq.Actor(); actor.AccessAdmin = ReadProperty<bool>(AccessAdminProperty); actor.AccessMonteur = ReadProperty<bool>(AccessMonteurProperty); actor.AccessSupervisor = ReadProperty<bool>(AccessSupervisorProperty); actor.UserName = ReadProperty<string>(UserNameProperty); actor.FirstName = ReadProperty<string>(FirstNameProperty); actor.LastName = ReadProperty<string>(LastNameProperty); actor.UserPasswordHash =

ReadProperty<string>(PasswordProperty).GetHashCode(); ctx.DataContext.Actors.InsertOnSubmit(actor); ctx.DataContext.SubmitChanges(); SetProperty<int>(IdProperty, actor.Id); } Dieses Beispiel fügt einen neuen Benutzer in die Tabelle Actors ein. Die if-Bedingung prüft, ob bereits ein Benutzer mit dem zu verwendenden UserName erfasst ist. Ist dies der Fall, wird die Methode mit dem Werfen einer Exception beendet.

Im anderen Fall wird ein actor-Objekt erstellt und initialisiert. Das PasswordProperty wird an dieser Stelle in einen int-HashCode umgewandelt.

Mit InsertOnSubmit(actor) veranlasst Linq to SQL, dass beim Aufruf von SubmitChanges()das erstellte actor-Objekt in die Datenbank eingefügt wird.

Da actor.Id von der Datenbank erstellt wird, wird die actor.Id nach erfolgter Transaktion zurück-gelesen und dem IdProperty zugewiesen. Die actor.Id wird während dem Ausführen von SubmitChanges() gesetzt.

6.3.3.2 Syntaxbeispiel 2: Abfrage über mehrere Tabellen Dieses Beispiel zeigt, wie die gefilterten Daten in die Device-Liste von der Datenbank gelesen werden.

Abbildung 24: ASP.NET Device-Liste

data = (from p in ctx.DataContext.Devices join pa in ctx.DataContext.DeviceTemplates on p.DeviceTemplateId equals pa.Id where pa.SapMaterial.Contains(criteria.Filter[0]) && pa.Name.Contains(criteria.Filter[1]) && p.Serial.Contains(criteria.Filter[2]) orderby pa.SapMaterial ascending, p.Serial descending

Page 57: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

57

select new DeviceInfo(p.Id, p.ParentId, p.Serial, pa.SapMaterial, pa.State, pa.Name)).Take(50);

if (data.Count() > 0) { IsReadOnly = false; this.AddRange(data); IsReadOnly = true; }

Die Klasse DeviceList beinhaltet DeviceInfo-Objekte, welche sich aus Daten unterschiedlicher Ta-bellen zusammensetzen.

Als Platzhalter für Devices dient p, derjenige für DeviceTemplates ist pa. Die Assoziation geschieht mittels join.

In der where-Clausel werden die 3 Filter auf p und pa angewendet.

Take(50)führt dazu, dass maximal 50 Datensätze gelesen werden.

Der Code mit der if-Bedingung stammt aus dem CSLA-Framework und fügt die Datensätze in die Liste DeviceList ein. Die Klasse DeviceList ist von CSLA.ReadOnlyListBase abgeleitet.

Interessante an dieser Technologie ist, dass im Debugbetrieb der auszuführende SQL-Code zu sehen ist:

SELECT TOP (50) t0.Id AS id, t0.ParentId AS parentId, t0.Serial AS serial, t1.SapMaterial AS sapMaterial, t1.State AS state, t1.Name AS name FROM Device AS t0 INNER JOIN DeviceTemplate AS t1 ON t0.DeviceTemplateId = t1.Id WHERE (t1.SapMaterial LIKE @p0) AND (t1.Name LIKE @p1) AND (t0.Serial LIKE @p2) ORDER BY sapMaterial, serial DESC

6.3.3.3 Syntaxbeispiel 3: Zirkulare Referenzen Der Benutzer hat die Möglichkeit, einer Baugruppe (Device) eine untergeordnete Baugruppe zuzuordnen.

Wird beispielsweise DeviceB dem DeviceA angehängt und DeviceA dem DeviceB, so spricht man von einer zirkularen Referenz. Ein allfälliges Erstellen eines hierarchischen Reports würde in diesem Fall unendlich viel Zeit und Speicherressourcen benötigen.

Um solche Verknüpfungen zu verhindern, darf in der Liste «Untergeordnete Baugruppe hinzufügen» nur eine Baugruppe gewählt werden können, welche noch nicht im Stammbaum enthalten ist.

Abbildung 25: ASP.NET Device-Liste (hinzufügen/entfernen)

Folgender Codeabschnitt erkennt präventiv bestehende zirkulare Referenzen (Exception) und stellt die ‚schwarze Liste’ precedentListDeviceId zusammen, welche verbotene Baugruppen-Ids enthält.

Page 58: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

58

List<int> precedentListDeviceId = new List<int>(); while(id != null) { if (precedentListDeviceId.Contains((int)id)) { throw new Exception("Zirkulare Referenz (Parent/Child) bei der "+ "Device-Id '" + id + "' entdeckt."); } precedentListDeviceId.Add((int)id); id = (from p in ctx.DataContext.Devices where p.Id.Equals(id) select p.ParentId).Single(); }

Die id identifiziert die aktive Baugruppe.

Im Loop wird die jeweils aktive id in die Liste precedentListDeviceId geschrieben. Mittels Linq to SQL wird am Ende des Loops die id mit der ParentId überschrieben. Somit wächst die Liste mit jeder ‚Generation’ um 1 Eintrag. Sofern die id nicht mehr gesetzt ist (kein Parent), bricht der while-Loop ab.

Als nächster Schritt werden analog der Abfrage im Kapitel 6.3.3.2 in der where-Klausel folgende zwei Bedingungen gesetzt:

from p in ctx.DataContext.Devices ... where p.ParentId == null && !precedentListDeviceId.Last().Equals(p.Id) ... Wird davon ausgegangen, dass eine Baugruppe maximal 1 Parent haben kann, darf die Ausgabe nur Bau-gruppen beinhalten, für welche die Bedingung p.ParentId == null erfüllt ist. Alle Baugruppen bis auf den letzten Eintrag der Liste precedentListDeviceId sind hier enthalten.

Der letzte Eintrag der Liste precedentListDeviceId.Last() hat kein Parent (while-Abbruch) und muss deshalb ebenfalls in die where-Klausel eingefügt werden.

Zusammenfassung: Diese Logik verhindert, dass beim Verknüpfen von Produktionsaufträgen zirkulare Referenzen entstehen können, in dem sämtliche ‚Vorfahren’ nicht zur Auswahl vorgeschlagen werden.

6.4 PQCWeb Die WebSeite PQC-Web wird im VS2008 nicht als kompilierfähiges Projekt behandelt, sondern lediglich als Verzeichnisstruktur mit einzelnen Files. Klassen innerhalb dieses Projekts werden just in time kompiliert, das heisst zum Zeitpunkt, in dem der Client eine Anforderung an den Server stellt.

Der IIS-Webserver konfiguriert sich über das File web.config.

Für die Darstellung der Webseiten dient der Ordner App_Themes, welcher Stylesheets und Bilder enthält.

6.4.1 Session

Der Webserver erstellt für jeden aktiven Benutzer eine Session.

Browser 1

Browser 2

Browser 3

IIS Session 1 Session 2 Session 3 …

BO/DB Business-Logik mit Datenbank

Abbildung 26: Sessions

Page 59: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

59

Zu jeder Session gehört ein isoliertes Session-Objekt, welches auf dem Server Informationen über die aktive Session speichert. Zu diesen Informationen gehören Daten, welche auf eine folgende Webseite übernommen werden müssen. Das Session-Objekt hält Daten im Fall eines Postbacks (Neuladen dersel-ben Seite) oder einer Seiten-Weiterleitung aufrecht.

Ein Beispiel dazu ist der CSLA-Anmeldebilschirm, welcher die Berechtigung auf sämtlichen Eingabefeldern der Anwendung steuert. Ein weiteres Beispiel ist das Erstellen eines Reports. Die Klasse DeviceEdit spei-chert die reportDefinition in das Objekt Session["ReportDefinition"].

ReportDefinition reportDefinition = new ReportDefinition(id, ddlLanguage.SelectedValue, cbInternalReport.Checked); Session["ReportDefinition"] = reportDefinition;

Der PdfHandler liest anschliessend Session["ReportDefinition"] wieder aus. Die Session-Daten bleiben solange erhalten, wie am Browser Aktionen durchgeführt werden. Das verwendete Standard-Timeout bertägt 20min.

6.4.2 Alternative zum Session-Objekt

Würden gleichzeitig mehrere Benutzer viele Daten im Session-Objekt zwischenspeichern, würde dies die Speicherressourcen des Servers stark beanspruchen.

Speicherschonender ist die Verwendung des Objekts ViewState. Dieses kann analog zu Session verwendet werden; der Lebenszyklus hört jedoch beim Verlassen der aktiven ASP-Seite auf.

Die Businessobjekte, welche für ASP-Seiten erforderlich sind, werden mit ViewState zwischengespeichert.

6.4.3 XSLT / FO

Im Projekt werden an zwei Stellen XSL-Transformationen XSLT durchgeführt und an einer Stelle wird der FO-Processor aufgerufen.

• Die erste XSLT wird dazu verwendet, das Formular für die Qualitätsmerkmal-Eingabe bereitzustel-len.

• Die zweite XSLT dient als Vorreiter der Reporterstellung. Bei dieser XSLT wird XSL:FO erzeugt, woraus der FO-Processor FOP beispielsweise ein PDF erstellen kann.

Beispiele dazu sind im Internet [17] vorhanden. Die folgenden Beschreibungen fokussieren sich auf die Erstellung des Reports.

Tabelle 11: Vorhandene XSL-Stylesheets

Stylesheet (.xsl)

Beschreibung Includes (.xsl)

form

(Root)

Erstellen eines ASP-Formulars zur Bearbeitung von Qualitätsmerkmalen

Das HTML-Dokument unter /Devices/Device/Desctiption/HTML/body/* enthält Tags und Texte. Die Tags werden unverändert übernommen, die Texte werden dem eingebetteten Stylesheet qualityItem übergeben. (Tem-plate «processQItems»)

qualityItem

devicesReport

(Root)

Erstellen der FO-Syntax für den Report

Bildet die Gliederung des Reports inkl. Inhaltsverzeichnis und Einleitung.

In einer for-each Schleife werden die einzelnen Devices eingebetten. Diese Formatierung übernimmt das eingebettete Stylesheet deviceReport.

HTML-Tags werden im ebenfalls eingebetteten Stylesheet xHTML2fo in XSL:FO-Tags übersetzt.

deviceReport

xHTML2fo

qualityItem

deviceReport Bildet die Gliederung einer einzelnen Baugruppe in der Reihenfolge Über-schrift, Serial#, Bemerkungen. Anschliessend folgt die Beschreibung mit den

Page 60: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

60

Stylesheet (.xsl)

Beschreibung Includes (.xsl)

eingebetteten Qualitätsmerkmalen.

xHTML2fo Ersetzt HTML-Tags durch XSL:FO-Tags. Das Template stammt aus [8], ist jedoch modifiziert worden.

qualityItem Das Stylesheet qualityITem prüft, ob ein Text ein Platzhalter eines Quali-tätsmerkmals ist. Folgender Regulärer Ausdruck wird dazu verwendet:

^*##\s*([A-Za-z.\d]*)\s*:\s*(\s*[A-Za-z][A-Za-z]*)\s*(\((.*),\s*(.*)\))?' Rote Klammer 1: Namen Rote Klammer 2: Typ Rote Klammer 3: Parameter 1 (optional) Rote Klammer 4: Parameter 2 (Optional)

Wird ein gültiger Platzhalter erkannt, wird der XML-Pfad Devi-ces/Device/QualityItems verwendet, um an den Wert des Merkmals zu gelangen. Für jedes Qualitätsmerkmal wird ein Plausibilitätscheck durchge-führt.

Für ASP-Ausgabe: Der Name des Qualitätsmerkmals wird sogleich als Id für ein Control verwendet. Da der Punkt innerhalb einer ASP-Control-Id nicht zugelassen ist, wird dieser mit _DOT_ ersetzt. Aus Qualitätsmerkmalen werden entsprechende vorinitialisierte ASP-Controls erstellt. Diese passen sich der aktuellen Rahmenbedingungen wie Plausibilitätscheck und Login-Level an.

Für XSL:FO-Ausgabe: An dieser Stelle wird der Wert des Qualitätsmerkmals ausgegeben. Eine Hintergrundfarbe repräsentiert das Resultat des Plausibi-litätschecks.

6.4.3.1 XSLT2.0 oder XSLT1.0 mit Erweiterung Das Framework .NET 3.5 unterstützt den im Januar 2007 festgelegten W3C-Standard XSLT2.0 noch nicht. Dieser Standard wäre erforderlich, um Funktionen wie Suchen/Ersetzen oder Reguläre Ausdrückte an-wenden zu können. Aus der Java-Welt bietet sich hierzu der Saxon-XSLT2.0-Transformator an. Ein .NET-Port erfordert die Java Runtimelibraries IKVM.OpenJDK.ClassLibrary.dll und IKVM.Run-time.dll. Mit dem Saxon-Workaround scheint es zu klappen. – Ein Prototyp extrahiert aus der Geräte-typenbeschreibung sämtliche Platzhalter der Qualitätsmerkmale.

Im Zusammenhang mit NFOP, welches die Runtimelibrary vjslib [13] von Microsoft benötigt, gibt es jedoch Probleme wegen überschneidendem Namespace. Vermutlich wäre es irgendwie möglich, Saxon und NFOP parallel zu betreiben, doch aus zeitlichen Gründen wählte ich einen anderen Weg: Der verfüg-bare Funktionsumfang von XSLT1.0 ist glücklicherweise erweiterbar. Der XSL-Transformator kann mit einem Objekt mit der gewünschten Funktionalität erweitert werden. Die Klasse dieses Objekts heisst XsltExtension. Sie enthält die Funktionalität Suchen/Ersetzen und unterstützt Regulärer Ausdrücke.

Um die erweiterten Funktionen anwenden zu können, wird das Stylesheet qualityItem.xsl mit dem Na-mespace xmlns:myXsltExtension="urn:xsltExtension" erweitert.

Folgendes Beispiel zeigt, wie ein Namen aus dem Platzhalter extrahiert wird: <xsl:when test="myXsltExtension:IsQualityItem (., '^*##\s*([A-Za-z.\d]*)\s*:\s*(\s*[A-Za-z][A-Za-z]*)\s*(\((.*),\s*(.*)\))?') ='True'"> <xsl:variable name="vIdentifier" select="myXsltExtension:RegexGroup(1)"/> </xsl:when>

Page 61: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

61

6.4.3.2 Vorbereitung der XSLT • Bevor eine XSLT durchgeführt werden kann, muss der XML-Stream gebildet werden. Zuerst wird

das Grundgerüst erstellt, wobei Devices das root-Element bildet. Für jedes Device, welches in der Liste DeviceTree enthalten ist, wird dann je ein Device-Elemente eingefügt. Als Unterelemente von Device befinden sich die Elemente

• Remarks: Bemerkungsfeld (nur bei internen Report erstellt)

• Desctiption: HTML-Beschreibung der Vorlage in gewählter Sprache

• QualityItems: In Unterelementen befinden sich die Qualitätsmerkmale

Bilder aus dem WYSIWYG-Editor verfügen über relative Pfadangaben, sofern diese vom selben Server kommen. Damit auch das Stylesheet xHTML2fo die Bilder findet, ist im Element base im Attribut href der Pfad zu setzen.

Das Ziel ist, dass ein XML-Dokument nach folgendem Schema erstellt wird: <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs=http://www.w3.org/2001/XMLSchema elementFormDefault="qualified" xmlns:xHTML="http://www.w3.org/1999/xHTML"> <xs:import namespace=http://www.w3.org/1999/xHTML schemaLocation="xHTML.xsd"/> <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/> <xs:element name="Devices"> <xs:complexType> <xs:sequence> <xs:element ref="base"/> <xs:element maxOccurs="unbounded" ref="Device"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="base"> <xs:complexType> <xs:attribute name="href" use="required"/> </xs:complexType> </xs:element> <xs:element name="Device"> <xs:complexType> <xs:sequence> <xs:element ref="Remarks"/> <xs:element ref="Desctiption"/> <xs:element ref="QualityItems"/> </xs:sequence> <xs:attribute name="hierarchicalLevel" use="required" type="xs:integer"/> <xs:attribute name="id" use="required" type="xs:integer"/> <xs:attribute name="name" use="required"/> <xs:attribute name="serial" use="required" type="xs:NCName"/> </xs:complexType> </xs:element>

<xs:element name="Remarks" type="xs:string"/> <xs:element name="Desctiption"> <xs:complexType> <xs:sequence> <xs:element ref="xHTML:HTML"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="QualityItems"> <xs:complexType> <xs:sequence> <xs:element ref="TestResults"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="TestResults"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" ref="Test"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Test"> <xs:complexType> <xs:attribute name="actor" use="required" type="xs:NCName"/> <xs:attribute name="date" use="required"/> <xs:attribute name="name" use="required" type="xs:NCName"/> <xs:attribute name="specialApproval" use="required" type="xs:NCName"/> <xs:attribute name="value" use="required" type="xs:NMTOKEN"/> </xs:complexType> </xs:element> </xs:schema>

Page 62: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

62

6.4.3.3 Funktionsweise der XSLT-Transformation Nachdem die Beschreibung und die Qualitätsmerkmale in demselben XML-Dokument vorhanden sind, wird mittels XSLT ein FO-Dokument erstellt.

Folgendes Beispiel stellt Ausschnitte des XML-Dokuments und Ausschnitte des daraus erstellten FO-Dokuments dar.

XML-Dokument <Devices> <base href="C:\Visual Studio Projects\ DA\ProductionQualityControl\PQCWeb\"/> <Desctiption> <HTML xmlns="http://www.w3.org/1999/xHTML" xml:lang="ja"> <head></head> <body> <h2>Prüfpunkte vor Einschalten</h2> <table border="0" width="100%"> <tbody> <tr> <td>Wasserkreis dicht</td> <td style="TEXT-ALIGN: right"> ##Laser.Wasserkreis.Dichtigkeit:Checkbox</td> </tr> <tr> <td>Wasseruhr Korrekturfaktor</td> <td style="TEXT-ALIGN: right"> ##Laser.Shutter.Wasseruhr.Korrekturfaktor:Number(0.8, 1.2)</td> </tr> </tbody> </table> </body> </HTML> </Desctiption> <QualityItems> <TestResults> <Test name="Laser.Wasserkreis.Dichtigkeit" value="True" actor="lcfa " date="08.16.2008 18:10:00" specialApproval="False"/> <Test name="Laser.Shutter.Wasseruhr.Korrekturfaktor" value="1.023" actor="lcfa " date="08.16.2008 18:10:00" specialApproval="False"/> </TestResults> </QualityItems> </Device> </Devices>

XSL:FO-Dokument

<fo:block font-size="160%" font-weight="bold" space-before=".4em" space-after=".2em">Prüfpunkte vor Einschalten</fo:block> <fo:table border-collapse="collapse" border-style="outset" width="100%"> <fo:table-column column-width="proportional-column-width(1)" /> <fo:table-column column-width="proportional-column-width(1)" /> <fo:table-body> <fo:table-row> <fo:table-cell padding=".1em" border="1pt solid #C0C0C0"> <fo:block>Wasserkreis dicht</fo:block> </fo:table-cell> <fo:table-cell padding=".1em" border="1pt solid #C0C0C0"> <fo:block> <fo:block></fo:block> <fo:block>True</fo:block> </fo:block> </fo:table-cell> </fo:table-row> <fo:table-row> <fo:table-cell padding=".1em" border="1pt solid #C0C0C0"> <fo:block>Wasseruhr Korrekturfaktor</fo:block> </fo:table-cell> <fo:table-cell padding=".1em" border="1pt solid #C0C0C0"> <fo:block> <fo:block></fo:block> <fo:block>1.023</fo:block> </fo:block> </fo:table-cell> </fo:table-row> </fo:table-body> </fo:table>

6.4.4 Funktionsweise der NFOP

Das Umwandeln in ein PDF-Dokument geschieht mit dem PDF-Renderer. Dieser erhält als source über einen StringReader das XSL:FO-Dokument. Wegen dem http-Header «Content-Type: application/pdf» wählt der Browser für die Ausgabe den Adobe Reader, welcher den binären output als PDF darstellt.

Driver driver = new Driver(source, output); driver.setRenderer(Driver.RENDER_PDF); driver.run(); sbyte[] Pdf = output.toByteArray(); context.Response.ContentType = "application/pdf";

Im erstellten PDF-Dokument erscheint die Ausgabe gemäss dem Stylesheet xHTML2fo.xsl; Die Abbildung 27 stellt denselben Ausschnitt wie im vorangehenden XSL:FO-Beispiel dar.

Abbildung 27: Erstelltes PDF

Page 63: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

63

6.4.4.1 Dokument für ASP.NET-Formular Die XSLT zur Erstellung des Eingabeformulars für den Monteur liefert dem Just-In-Time- (JIT-) Compiler folgenden Code: <h2>Prüfpunkte vor Einschalten</h2> <table border="0" width="100%"> <tbody> <tr> <td>Wasserkreis dicht</td> <td style="TEXT-ALIGN: right"> <ASP:Checkbox ID="Laser_DOT_Wasserkreis_DOT_Dichtigkeit" checked="True" Enabled="False" runat="server" /> <ASP:Label Text="lcfa" ToolTip="08.16.2008 18:09:43" runat="server" /> </td> </tr> <tr> <td>Wasseruhr Korrekturfaktor</td> <td style="TEXT-ALIGN: right"> <ASP:TextBox ID="Laser_DOT_Shutter_DOT_Wasseruhr_DOT_Korrekturfaktor" runat="server" MaxLength="20" Text="1.023" Enabled="False" /> <ASP:Label Text="lcfa" ToolTip="08.16.2008 18:09:43" runat="server" xmlns:ASP="remove" /> </td> </tr> </tbody> </table>

Die ASP-Engine generiert daraus HTML-Code; dieser wird hier nicht dargestellt. Die Abbildung 28 zeigt, wie obiger Code-Ausschnitt im Browser als Formular dargestellt wird.

Abbildung 28: Erstelltes HTML-Dokument

6.5 PQC.Library.Test Dieses Projekt beinhaltet einige automatisierte Tests für das Projekt ProductionQualityControl.Library. Die Testfälle befinden sich im Kapitel 7.2.1.

Automatisierte Tests helfen während der Entwicklungsphase, Fehler in der Implementation aufzuspüren. Das verwendete Entwicklungswerkzeug VS2008 unterstützt Unit-Tests. Das Testen entspricht NUnit oder JUnit.

Der Code-Abdeckungsgrad dieser Tests ist klein. Es ist beispielsweise mit vernünftigem Aufwand nicht möglich, die Vollständigkeit einer Device-Liste oder einen bestimmten Wert in einem PDF-Report zu tes-ten. Hierzu eignen sich GUI-Walkthrough-Tests (Kapitel 7.2.3).

Es ist jedoch möglich, von BusinessBase abgeleitete BusinessObjekte zu erstellen und auf richtiges Verhal-ten zu prüfen.

Das Klassendiagramm der Testklassen zeigt die Testklassen zu den Businessklassen. Die Testklassen sind von TestBase abgeleitet.

Page 64: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

64

class PQC.Library.Test

Dev iceTest

TestBase

Dev iceTemplateTestActorTest PQCPrincipalTest

Abbildung 29: Klassendiagramm Unit Test

TestBase («singleton») wird dazu verwendet, die vordefinierte Testdatenbank bereitzustellen, so dass jeder Testdurchlauf gleiche Voraussetzungen hat.

Page 65: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

65

7 Test Eine Anforderung an das Projekt Produktionsüberwachung ist, möglichst eine breite Abdeckung der Funk-tionalität zu testen. Sind die Testergebnisse positiv, ist die Qualität des Produktes Produktionsüberwa-chung hoch, so auch die Zufriedenheit und Akzeptanz des Kunden, welcher dieses Produkt dann produktiv einsetzt.

Getestet wird in folgenden Kategorien: Unit-Tests, Stress- und Zuverlässigkeitstests, GUI-Walkthrough

Jede (Muss-) Anforderung ist in mindestens einem Testfall enthalten.

7.1 Testumgebung Als Testumgebung dient das Entwicklungssystem, bestehend aus einer Windows XP Plattform, IIS 5.1, SQL-Server 2005 Express.

7.2 Testfälle

7.2.1 Unit-Tests Tabelle 12: Testfälle für Unit Test

Modul Testablauf Pos/ Neg

ActorTest. CreateRemoveUser

- Anmelden als Administrator

- Benutzer erstellen

- Benutzer einfügen

- Benutzer abrufen

- Benutzer wieder entfernen

- Abmelden

Pos

ActorTest. CreateUserNeg

- Benutzer erstellen (ohne als Administrator angemeldet zu sein)

- Benutzer einfügen

Neg

ActorTest. CreateUserNeg2

- Anmelden als Monteur

- Benutzer erstellen

- Benutzer einfügen

- Abmelden

Neg

ActorTest. CreateUserNeg3

- Anmelden als Administrator

- Benutzer erstellen, jedoch ohne Angabe des Passworts

- Benutzer einfügen

- Abmelden

Neg

ActorTest. CreateUserNeg4

- Anmelden als Administrator

- Benutzer erstellen, UserName ist jedoch bereits vorhanden

- Benutzer einfügen

- Abmelden

Neg

DeviceTemplate. CreateDeviceTemplate

- Anmelden als Administrator

- DeviceTemplate erstellen

- DeviceTemplate einfügen

- Abmelden

Pos

Page 66: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

66

Modul Testablauf Pos/ Neg

DeviceTemplate. CreateDeviceTemplateNeg

- DeviceTemplate erstellen (ohne als Administrator angemeldet zu sein)

- DeviceTemplate einfügen

Neg

DeviceTemplate. CreateDeviceTemplateNeg2

- Anmelden als Monteur

- DeviceTemplate erstellen

- DeviceTemplate einfügen

- Abmelden

Neg

DeviceTest. CreateDevice

- Anmelden als Monteur

- Device erstellen

- Device einfügen

- Abmelden

Pos

DeviceTest. CreateDeviceNeg

- Device erstellen (ohne als Administrator angemeldet zu sein)

- Device einfügen

Neg

DeviceTest. CreateDeviceNeg2

- Anmelden als Monteur

- Device erstellen, jedoch ohne Angabe der Serial#

- Device einfügen

Neg

DeviceTest. CreateDeviceNeg3

- Anmelden als Monteur

- Device erstellen

- Device einfügen

- Device erstellen mit derselben Serial#

- Device einfügen

- Abmelden

Neg

PQCPrincipalTest. LoginTest

- Anmelden als Administrator

- Abmelden

Pos

PQCPrincipalTest. LoginTestNeg

- Anmelden als Administrator, falsches /kein Passwort

- Abmelden

Neg

Das Resultat der erfolgreichen Tests sieht wie folgt aus:

Page 67: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

67

Abbildung 30: Unit Tests

7.2.2 Stress- und Zuverlässigkeitstests

Im Rahmen der Diplomarbeit war es nicht möglich, Tests dieser Art repräsentativ durchzuführen.

Die Reportfunktion habe ich mit XML-Daten versorgt, so dass ein Dokument mit rund 1000 Seiten erstellt wurde. Was die Zuverlässigkeit anbelangt, liefert das System bei bis zu 3 Benutzern gültige Seiten. Ab 3 gleichzeitigen Sessions riegelt der IIS ab und gibt eine Fehlermeldung aus. (Serverlizenz erforderlich)

7.2.3 GUI Walkthrough Tests

ID Zusammenfassung Vorbedingungen Eingaben / Handlungen erwarteten Ausgaben / Nachbedingungen

TC01 Eigenschaften eines Gerätetyps eingeben (F01.01, F01.02, F02.11, F02.12, F02.13)

- Als Administrator angemeldet

- Entsprechender Gerätetyp existiert noch nicht

- Bezeichnung: ByLaser 4400

- SAP#: 123456

- Beschreibung: Einige Tabellen, Überschrif-ten und Qualitäts-merkmal-Platzhalter

- Zustand: Entwurf

- In der Liste der Gerä-tetypen ist der erfass-te Gerätetyp enthal-ten und sämtliche Ein-gaben wurden gespei-chert.

TC01a TC01 mit unzurei-chender Berechti-gung (F01.02)

- Als Monteur an-gemeldet

- Gemäss TC01 - System verweigert Erfassung des Geräte-typs.

TC02 Gerätetyp-Mutation (F01.05, F02.01, F02.02)

Hinzufügen einer internen Region (F01.08)

Statusänderung

(F01.09)

- TC01 durchgeführt - Der Gerätetyp wird aus einer Liste ausge-wählt

- Modifikation der Be-schreibung

- Hinzufügen einer in-ternen Region

- Zustand: Aktiv

- In der Liste der Gerä-tetypen ist der erfass-te Gerätetyp enthal-ten und sämtliche Ein-gaben wurden gespei-chert.

Page 68: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

68

ID Zusammenfassung Vorbedingungen Eingaben / Handlungen erwarteten Ausgaben / Nachbedingungen

TC02a TC02 mit Gerätetyp mit Zustand aktiv

- TC02 durchgeführt - Der Gerätetyp wird aus einer Liste ausge-wählt

- Versuch: Modifikation der Beschreibung

- System verweigert die Modifikation des Ge-rätetyps weil der Zu-stand aktiv ist.

TC02b Zustandsänderung eines Gerätetyps Aktiv Entwurf (F01.09)

- TC02 durchgeführt - Versuch: Statusände-rung von Aktiv Entwurf

- System verweigert die Modifikation des Sta-tus.

TC02c Zustandsänderung eines Gerätetyps Aktiv Inaktiv (F01.09)

- TC02 durchgeführt - Statusänderung von Aktiv Inaktiv

- System führt die Mo-difikation des Status durch.

TC02d Zustandsänderung eines Gerätetyps Inaktiv Aktiv (F01.09)

- TC02c durchge-führt

- Versuch: Statusände-rung von Inaktiv Aktiv

- System führt die Mo-difikation des Status durch.

TC03 Erstellen eines Pro-duktionsauftrags

(F01.10, F03.01, F03.04)

- TC02 oder TC02d durchgeführt (Ge-rätetyp ByLaser 4400 ist aktiv)

- Als Monteur an-gemeldet

- Serial# Rxy existiert noch nicht

- Produktionsauftrag: Neu eröffnen

- Vorlage ByLaser 4400 wählen (vergewissern, dass nur aktive Vorla-gen dargestellt wer-den)

- Serial# Rxy eingeben

- Der Produktionsauf-trag wurde erfasst.

- Der Produktionsauf-trag erscheint in der Liste der Produktions-aufträge.

TC04 Eigenschaften eines Qualitätsmerkmals: Wert

(F02.04, F03.05)

- TC03 durchgeführt - Produktionsauftrag aus Liste auswählen

- Ansicht «Bearbeiten» wählen

- Qualitätsmerkmale bearbeiten (Beachte RegEx: "^[ a-zA-Z_0-9.-]*$")

- Speichern

- Der eingegebene Wert wurde übernommen.

- In der Nähe des Ein-gabefeldes ist eine In-formation zum Benut-zer und Zeitpunkt (Tooltip) ersichtlich.

TC05 Sonderfreigabe

(F02.04, F02.10)

- TC03 durchgeführt

- Als Supervisor angemeldet

- Bearbeitungsmodus des Produktionsauf-trags wählen

- Eingabe von nicht-plausiblen Werten in (Beachte RegEx: "^[ a-zA-Z_0-9.-

]*$")

- Speichern

- Setzen des Checkbox: Sonderfreigabe

- Speichern

- Der eingegebene Wert wurde übernommen.

- Visuell ist ersichtlich, dass diesem Eingabe-feld eine Sonderfrei-gabe erteilt wurde.

Page 69: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

69

ID Zusammenfassung Vorbedingungen Eingaben / Handlungen erwarteten Ausgaben / Nachbedingungen

TC06 Statistische Auswer-tungen

(F02.05)

- - Eingabe eines Quali-tätsmerkmal-Namens

- Eingabe Start- und Endtermin

- Kommagetrennte Liste sämtlicher der erfass-ten Qualitätsmerkma-le (Wert, Datum, SAP#, Serial#)

TC07 Untergeordnete Baugruppen eines Produktionsauftrags hinzufügen

(F03.01, F03.07)

- Angemeldet als Monteur

- Es befinden sich mehrere Produkti-onsaufträge in der Liste

- Bestimmten Produkti-onsauftrag auswählen (zB. Rxy aus TC03)

- Ansicht «Untergeord-nete Baugruppen» wählen und hinzufü-gen (+)

- Der hinzugefügte Produktionsauftrag verschwindet und wird in der Liste «Unterge-ordnete Baugruppe entfernen» eingefügt.

TC08 Untergeordnete Baugruppen eines Produktionsauftrags entfernen

(F03.08)

- Angemeldet als Monteur

- Bestimmten Produkti-onsauftrag auswählen (zB. Rxy aus TC03)

- Ansicht «Untergeord-nete Baugruppen» wählen und entfernen (-)

- Der entfernte Produk-tionsauftrag ver-schwindet und wird in der Liste «Unterge-ordnete Baugruppe hinzufügen» einge-fügt.

TC09 Produktionsauftrag suchen

(F03.02)

- - Bestimmten Produkti-onsauftrag auswählen unter Angabe von Name, SAP# und/oder Serial#

- Die Liste der Produkti-onsaufträge beinhaltet nur die gefilterten Er-gebnisse. Aus diesen Ergebnissen kann der gewünschte Produkti-onsauftrag ausgewählt werden.

TC10 Verknüpften Produk-tionsauftrag modifi-zierten

(F03.11)

- TC7 durchgeführt - Bestimmten Produkti-onsauftrag auswählen (zB. Rxy aus TC03)

- Qualitätsmerkmale bearbeiten (Beachte RegEx: "^[ a-zA-Z_0-9.-]*$")

- Speichern

- Der eingegebene Wert wurde übernommen.

- In der Nähe des Ein-gabefeldes ist eine In-formation zum Benut-zer und Zeitpunkt (Tooltip) ersichtlich.

TC11 Internes Abnahme-protokoll erstellen

(F04.02, F04.06)

- - Bestimmten Produkti-onsauftrag auswählen (zB. Rxy aus TC03)

- Ansicht «Report» wählen

- Interner Report aktiv

- Darstellung des inter-nen Reports

TC12 Externes Kunden-Abnahmeprotokoll erstellen

(F04.01, F04.05)

- - Bestimmten Produkti-onsauftrag auswählen (zB. Rxy aus TC03)

- Ansicht «Report» wählen

- Interner Report nicht

- Darstellung des Kun-denabnahmeproto-kolls

Page 70: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

70

ID Zusammenfassung Vorbedingungen Eingaben / Handlungen erwarteten Ausgaben / Nachbedingungen

aktiv

TC13 Abnahmeprotokoll in einer Fremdsprache erstellen

(F04.03)

- Die Beschreibung des Produktions-auftrags muss in der jeweiligen Ziel-sprache verfügbar sein.

- Bestimmten Produkti-onsauftrag auswählen (zB. Rxy aus TC03)

- Ansicht «Report» wählen

- Zielsprache wählen

- Darstellung des Kun-denabnahmeproto-kolls in der Zielsprache

TC14 Monteur erfassen

(F05.01, F05.02, F05.03)

(Supervisor, Adminis-trator: dito)

- Angemeldet als Administrator

- Im Administrations-menu «Benutzer» wählen

- Neuen Benutzer erfas-sen

- Berechtigung Monteur setzen

- Vorname, Nachname, Benutzername und Passwort eingeben

- Der Benutzer ist in der Benutzer-Liste einge-tragen.

TC15 Monteur Login

(F05.04, F05.05)

- TC14 durchgeführt

- Ausloggen

- Der neuerfasste Be-nutzer kann sich mit dem Benutzernamen und Passwort anmel-den

- Der Benutzer ist an-gemeldet.

TC16 Benutzer mutieren

(F05.02)

- TC14 durchgeführt - Im Administrations-menu «Benutzer» wählen

- Entsprechenden Be-nutzer aus Liste aus-wählen (mittels Filter)

- Mutieren der Benutzer (Berechtigung und Passwort)

- Die Benutzerdaten wurden mutiert.

TC17 Externe Testsysteme

(F02.07)

- Angemeldet als Administrator

- Ext. Testsystem ist online

- Gerätetyp erstellt, bei welchem «URI ext. Testsytem» definiert ist. (Be-schreibung enthält entsprechende Qualitätsmerkma-le)

- Neuen Produktions-auftrag mit im ext. Testsystem vorhande-nen Serial# eröffnen

- Ansicht «Report» wählen

- Report erstellen

- Ein Report mit den Qualitätsmerkmalen des externen Testsys-tems wurde erstellt.

Page 71: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

71

8 Diverses

8.1 Externe Testsysteme Die Produktionsüberwachung ist nicht eine isolierte Server-/Client-Anwendung, sondern verfügt über eine Schnittstelle zu benachbarten Testsystemen (Abbildung 31). Ein Testsystem ist eine Einrichtung zur Er-mittlung von Testresultaten eines Gerätetyps. In der Regel verfügt ein Testsystem für die Durchführung automatisierter Testschritte über eine Schnittstelle zu einem Device Under Test (DUT).

Abbildung 31: Topologie

Ein Testsystem beinhaltet eine interne Datenbank mit den Testresultaten. Diese Testresultate können vom System Produktionsüberwachung zum Erstellen von Reporten abgefragt werden.

Daten externer Testsysteme werden nicht in die Datenbank der Produktionsüberwachung eingefügt; sie werden immer bei Bedarf aus dem externen Testsystem abgefragt.

8.1.1 Gerätetyp

Um einen Report erstellen zu können, muss analog einem normalen Gerätetyp eine Vorlage in mehreren Sprachen entworfen werden. Das Vorgehen ist vollkommen identisch, auch was die Platzhalter der Quali-tätsmerkmale anbelangt.

Wird zu einem späteren Zeitpunkt ein Report mit einer solchen Vorlage erstellt, so fordert die Produkti-onsüberwachung ein XML-File an, welches Qualitätsmerkmale einer konkreten Baugruppe enthält.

Stimmen die Namen der empfangenen Qualitätsmerkmale mit den Namen der Platzhalter überein, so werden die Qualitätsmerkmale an den jeweiligen Stellen in den Report geschrieben.

8.1.2 Konfiguration

Die Produktionsüberwachung fragt die Testergebnisse eines Testsystems ab. Um dies zu ermöglichen, ist die Adresse des Testsystems zu einem Gerätetyp anzugeben. Dies geschieht über das Feld «URI ext. Test-system» im Formular des Gerätetyps. Jedem Gerätetyp kann ein URI auf ein externes Testsystem angege-ben werden; dieser kann auch bei aktiven Gerätetypen modifiziert werden.

Zu Beachten: Falls die interne Datenbank der Produktionsüberwachung verwendet werden soll, ist dieser URI-Parameter leer zu lassen (auch keine Leerschläge). Falls dieser URI-Parameter gesetzt ist, können die Qualitätsmerkmale nicht bearbeitet werden (read only).

Intranet

Testsystem 1..n

DB Server

Produktionsüberwa-chung (Reporting)

DB Server

DUT

(Gerätetyp)

Page 72: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

72

8.1.3 Protokoll

Als Kommunikationsprotokoll wird das http-Protokoll verwendet.

8.1.3.1 Request Der URI kann frei definiert werden. Die Produktionsüberwachung ersetzt den Platzhalter {0} mit der zu verwendenden Serial#, wie folgendes Beispiel verdeutlicht: Definierter URI: http://172.20.56.37/pms/maintest.php? type=ByVention30152200&sap=12345678&serial={0}

Zu verwendende Serial#: Rxxxyyyz Request-String: http://172.20.56.37/pms/maintest.php? type=ByVention30152200&sap=12345678&serial=Rxxxyyyz

8.1.3.2 Response Das Testsystem erstellt mit den Qualitätsmerkmalen der angeforderten Baugruppe ein XML-Dokument, welches folgendem Schema entspricht:

<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:element name="Device"> <xs:complexType> <xs:sequence> <xs:element ref="TestResults"/> </xs:sequence> <xs:attribute name="sap" use="required" type="xs: NCName "/> <xs:attribute name="serial" use="required" type="xs:NCName"/> <xs:attribute name="type" use="required" type="xs:NCName"/> </xs:complexType> </xs:element> <xs:element name="TestResults"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" ref="Test"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Test"> <xs:complexType> <xs:attribute name="actor" use="required" type="xs:NCName"/> <xs:attribute name="date" use="required"/> <xs:attribute name="name" use="required"/> <xs:attribute name="valid" use="required" type="xs:boolean"/> <xs:attribute name="value" use="required" type="xs:NMTOKEN"/> </xs:complexType> </xs:element> </xs:schema>

Folgendes Beispiel ist ein Ausschnitt aus der Antwort der ByVention-Testumgebung.

<?xml version="1.0" encoding="UTF-8" ?> <Device type="ByVention30152200" sap="12345678" serial="K11111111"> <TestResults> <Test name="Machine.Electriccabinet.F2.PowerOff" value="0" valid="true" date="2008-08-04 08:59:49" actor="lwea" /> <Test name="Machine.Electriccabinet.F1.OvervoltageOn" value="timeout" valid="false" date="2008-08-04 08:59:45" actor="lwea" /> <Test name="Machine.Electriccabinet.ZServo.Version" value="true" valid="true" date="2008-08-04 08:58:24" actor="lwea" /> <Test name="Machine.Electriccabinet.YServo.Version" value="true" valid="true" date="2008-08-04 08:58:23" actor="lwea" /> <Test … </TestResults> </Device>

Page 73: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

73

8.2 Wunschliste Das Projekt durfte ich intern bereits dreimal präsentieren. Die Feedbacks sind sehr positiv, insbesondere die Struktur und der somit einfach gehaltene Workflow werden gut bewertet. Die folgende Wunschliste besteht aus konstruktiven Verfeinerungsvorschlägen:

• 13. August 08, O. Bühler, Vorgesetzter Laserelektronik

o Administration von Gerätetypen erfordert Fachkenntnisse, da eine spezifische Syntax an-gewendet werden muss. Wunsch: Mit Word eine Gerätevorlage erstellen. Stellungnahme: Der eingebettete WYSIWYG-Editor ist zur Redaktion von Webseiten sehr verbreitet. Word erstellt nicht sehr schönes HTML (zu viele Formatierungen) und dadurch ist ein Word-Import ungeeignet. Fazit: An den WYSIWYG-Editor kann man sich gewöhnen, HTML-Kenntnisse sind von Vorteil. Die Syntax könnte als PDF-Link dem technischen Re-dakteur verfügbar gemacht werden.

o Qualitätsmerkmale: Wizard erstellen, der die Syntax erstellt. Stellungnahme: Nach ca. 20-30 Eingaben von Qualitätsmerkmalen würde der eher auf-wendige Wizard nicht mehr benutzt werden. Jedoch liessen sich hiermit Syntaxfehler vermeiden.

• 18. August 08, R. Schneeberger, Vorgesetzter Lasermontage und H. Bütikofer, Leiter Laser Maschinen

o Gute Dokumentation zur Administration erwünscht Stellungnahme: Für die KeyUser müsste ausserdem ein Training organisiert werden.

o Statistische Auswertungen: Filter auf Ausgabewert setzen, so dass beispielsweise Serial-nummern rückverfolgt werden können. Stellungnahme: Dieser optionale Filter wurde gleich implementiert.

o Freigabe von Baugruppen durch Supervisor. Stellungnahme: Prozess muss zuerst genau definiert werden.

o Hierarchische Darstellung von verknüpften Produktionsaufträgen zur Visualisierung, ob Plausibilitätschecks der Qualitätsmerkmale positiv sind (z.B.: Steuererfassungssoftware TaxMe Kanton Bern) Stellungnahme: Eher eine aufwändige Erweiterung. Mögliche Lösung: Inhaltsverzeichnis im internen Abnahmeprotokoll entsprechend gestalten (rot, orange, weiss)

• 21. August 08, M. Plüss, Vorgesetzter Produktion (GL)

o Administration von Gerätetypen: Duplizieren von vorhandenen Gerätetypen Stellungnahme: Feature bereits in F01.03 angedacht.

o Statistische Auswertungen gleich im Excel öffnen. Die Filtermöglichkeiten und grafischen Auswertungen sind ‚jedermanns Sache’. Stellungnahme: Gute Idee!

o Reporte: Darstellung einer dritten Tabellen-Spalte mit Einheiten Stellungnahme: Tabellenspaltenbreiten sind noch nicht dynamisch, das heisst, eine dritte Spalte mit Einheiten würde genau gleich breit werden wie die erste und zweite Spalte. Dynamische Breite: Technisch aufwändig, jedoch realisierbar.

o Online Anleitung zur Ausführung der Montageschritte Stellungnahme: Machbar mit externen Hyperlinks zu den entsprechenden Kapiteln.

o Neben TextBox und Checkbox noch das DropDown-Element einfügen. Manchmal muss ein Monteur beispielsweise 1 von 3 Optionen auswählen. Stellungnahme: Die Syntax der Qualitätsmerkmale ist erweiterbar. Änderung ohne C#-Anpassung möglich (nur qualityitem.xsl anpassen).

Page 74: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

74

8.3 Abweichungen zum Pflichtenheft Tabelle 13: Abweichungen zum Pflichtenheft

Anf-Id Abweichung

F02.12 Serialnummer Textfeld

F02.13 Messwert Numerischer Wert

F03.01 F03.07 F03.09

Der Zustand eines Produktionsauftrags ist zurzeit nicht implementiert. Ein Auftrag ist eröff-net, bearbeitet und/oder mit einer anderen Baugruppe verknüpft; die Freigabe ist jedoch noch nicht umgesetzt. Der Prozess dazu muss zuerst definiert werden.

F05.01 Benutzer haben keine Personalnummer, kein Aktivflag (ausser inaktive Berechtigungen), keinen Unterschriften-Scan

F05.02 NF01.04

Benutzer können gelöscht werden

F02.05 Statistische Auswertungen sind bei externen Testsystemen nicht möglich.

Grund: Die zur Erstellung von Reporten abgerufenen Daten von externen Testsystemen werden in der internen Datenbank nicht persistiert.

8.4 Diskussionen / Entscheide • Sprachunterstützung: Nicht auf Term-Ebene übersetzen, sondern auf Ebene Description (HTML)

Entscheid 10.6.08 / cfa

• Qualitätsmerkmaltyp File: Als Link oder als File-Uplaod? Entscheid 20.5.08 / wea cfa: Link (Textfeld)

• 3-Layer-Architektur: Services auf mehrere Server aufteilen? Entscheid 20.5.08 / wea cfa: Nein, WCF-Host ist eine höchstens eine Option

• Session Timeout Entscheid 20.5.08 / wea cfa: 20min (Default)

• Inaktive Benutzer löschen? Entscheid 2.7.08 / wea cfa: Inaktive Benutzer werden aus der DB gelöscht: Konsequenz: Anstelle der Referenz wird der UserName bei Qualitätsmerkmalen hinterlegt.

• Statistische Auswertungen mit Daten aus externen Testsystemen erstellen? Entscheid 2. 7.08 / wea cfa: Vorerst nicht. Die ext. Qualitätsmerkmale werden nicht zwischenge-speichert.

• Statistische Auswertungen mit optionalem Ausgabefilter erweitern? Entscheid 18.8.08 / cfa: Ja

Page 75: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

75

8.5 Tools

8.5.1 Winzip & Memorystick

Aufgrund der beiden Entwicklungsplätze Bystronic und Zuhause, verzichtete ich auf ein Sourceverwa-lungstool wie SubVersion. Der Memorystick diente gleichzeitig zum Erstellen des Backups und zum Daten-transfer des ‚gezippten’ Projektes.

8.5.2 Visual Studio 2008

Die zum Zeitpunkt des Projektstarts neu erschienene Version der Microsoft Entwicklungsumgebung un-terstützt Entwicklungen von .NET-Anwendungen. Die aktuelle Version des .NET-Framework ist 3.5.

Als SWS-Student hatte ich die Möglichkeit, das VS2008 auf legale Weise gebührenfrei herunterzuladen – und damit das erste Projekt – die Master Arbeit – zu realisieren.

Folgende Features waren für die Entwicklung dieses Projektes hilfreich:

• Handhabung von mehreren verwandten Projekten innerhalb einer Solution

• Code-Editor (Intellisense & Syntax highlight)

• Debugging für die Fehlersuche

• Testunterstützung für Unit-Tests

• O/R-Mapper für Data abstraction Layer (DalLinq)

• Server Explorer für die Pflege der Datenbank

• Toolbox zum Designen von ASPX-Seiten

8.5.3 Datenbank

Als Datenbank verwendete ich den Microsoft SQL Server 2005 Express. Mittels der Management Console lässt sich der Datenbankservice starten und beenden.

Das SQL Server Management Studio Express installierte ich ebenfalls, machte damit jedoch keine guten Erfahrungen. Nach dem ich auf der Datenbank (.mdf-file) ein Detach (Verbindung abtrennen) gemacht hatte, war das File korrupt. In Internetforen sah ich, dass andere Leute ähnliche Erfahrungen gemacht hatten. Ab diesem Zeitpunkt verwendete ich für die Pflege der Datenbank den Server Explorer, welcher im VS2008 enthalten ist.

8.5.4 NDoc

NDoc ist ein Tool zum Erstellen der automatisch generierten Dokumentationen aus dem Source-Code.

8.5.5 Enterprise Architect

Die von der Firma zur Verfügung gestellte Version 6.5 war eine grosse Hilfe zum Erstellen von Diagram-men rund um die Architektur der Software.

Beim Erstellen des Datenbankschemas wählte ich für Tabellen den Typ Table aus. Daraus konnte ich SQL-Scripts erstellen, welche dann die Tabellen in der Datenbank erstellten.

8.5.6 Microsoft Office / Internet Exlorer / Adobe Reader

Die Office-Tools 2000/2003 dienten zur Dokumentation dieses Berichts.

Der Internet Exlorer V.6/7 wurde als Frontend die Anwendung gebraucht.

Der Adobe Reader V.7 visualisierte erstellte PDF-Abnahmeprotokolle innerhalb des Browsers.

Page 76: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

76

8.6 Installation Folgende Installationen müssen ausgeführt werden:

• .NET-Framework 3.5. [14]

• SQL-Server 2005 (Express) [15]

• Visual J# Redistributable Packages – Die verwendete Technologie, PDF-Dokumente zu erstellen, stammt aus dem Hause Apache und läuft unter Java. NFOP, die für .NET portierte Version benö-tigt serverseitig eine Installation der Microsoft Visual J# Redistributable Packages [13].

• Microsoft Integrated Information Service ab Veriosn 5.1 (Kann in der Systemsteuerung ab Win-dows XP aktiviert werden.)

8.6.1 Konfigurationen

8.6.1.1 Microsoft Integrated Information Service IIS Auf dem Entwicklungssystem ist die Version 5.1 (Windows XP SP2) installiert. Der IIS5.1, welcher im Win-dows XP Pro enthalten ist, limitiert die Anzahl gleichzeitiger Sessions auf 3. Ein Windows für Server kennt diese Einschränkung nicht.

Die Web-Anwendung muss im IIS eingefügt werden. Dies geschieht in folgenden Schritten:

• IIS-Starten (Systemsteuerung Verwaltung)

• Unter Internet-Informationsdienste lokaler Computer Websites Standardwebsites ein neues virtuelles Verzeichnis hinzufügen. Dort wird der Pfad der Webseite PQCWeb mit einem Ali-as (Bsp.: pqc) verknüpft. Im Browser wird die Seite über die URL http://server/pqc aufgerufen.

8.6.1.2 Website PQCWeb Die Website PQCWeb gibt die Konfiguration mittels web.config vor. Bei einer Installation ist der Pfad (connectionString) der Datenbank unter

<configuration> <connectionStrings> <add name="PQCData" connectionString=" ... </connectionStrings> </ configuration> zu aktualisieren.

8.6.2 Mögliche Probleme

• Beim Einrichten der Anwendung auf meinem Firmen-Notebook hatte ich Berechtigungsprobleme mit Zugriffsrechten auf Pfade. Die Windows-Grundkonfiguration auf Arbeitsstationen innerhalb der Bystronic Laser AG verfügen nicht über die Möglichkeit, Berechtigungen von Verzeichnissen zu verwalten. Aus diesem Grund wurde dem IIS der Schreibzugriff auf Unterverzeichnisse von C:\Visual Studio Projects\ verweigert. Der Schreibzugriff ist für Datenbankzugriffe zwingend er-forderlich. Die Abteilung IT fügte dann den ASPNET user account in die permission list des Ver-zeichnisses C:\Visual Studio Projects\ ein (inkl. Unterverzeichnisse). [9]

• Falls nicht mehr über localhost gearbeitet wird, macht sich die Windows Firewall bemerkbar, so dass die Webseite auf einem anderen PC nicht dargestellt wird. Gemäss [4] ist in der Systemsteu-erung unter Windows-Firewall die Ausnahme %SystemRoot%\system32\inetsrv\inetinfo.exe hin-zuzufügen.

• Die Datenbank darf gleichzeitig nur von einer Anwendung verwendet werden. So ist es beispiels-weise nicht möglich, mit dem IIS eine Session zu starten und anschliessend das Projekt im Debug-Modus laufen zu lassen. Mein Workaround war jeweils, den Prozess aspnet_wp.exe mit dem Windows Task Manager zu beenden.

Page 77: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

77

8.7 Bedienungsanleitung Um mit der Produktionsüberwachung arbeiten zu können, ist ein Browser (ab IE6) erforderlich. Nach Ein-gabe der URL folgt ein Willkommensbildschirm. Dieser enthält einen Link zum Anmelden und eine Naviga-tionsmenu.

Abbildung 32: Willkommensbildschirm

8.7.1 Anmeldung

Nach der Betätigung von «Anmelden» hat der Benutzer die Möglichkeit, den Benutzernamen und das Kennwort einzugeben.

8.7.2 Navigation

Die Navigation hat folgende Struktur:

• Home

• Produktionsauftrag

• Administration

o Benutzer

o Gerätetypen

o Statistik

8.7.3 Home

Der Willkommensbildschirm stellt aktuelle Informationen über das Produkt Produktionsüberwachung dar.

8.7.4 Produktionsauftrag

Der Produktionsauftrag ist eine Baugruppe mit eindeutiger Serial#.

In einem ersten Schritt wählt der angemeldete Benutzer einen Produktionsauftrag aus, indem er entwe-der einen neuen Produktionsauftrag eröffnet oder einen bestehenden aus der gefilterten Liste auswählt.

Anschliessend folgt eine Art Karteisystem-Menu zur Bearbeitung des Produktionsauftrags.

Unter «Übersicht» sieht der Benutzer, ob sein Produktionsauftrag bereits einer anderen Baugruppe zu-gewiesen wurde. Ausserdem ist es möglich, Bemerkungen zu einem Produktionsauftrag zu verfassen, welche lediglich in den internen Report gelangen.

Unter «Bearbeiten» hat der Benutzer die Möglichkeit, die Qualitätsmerkmale einzugeben. Wichtig ist, dass bearbeitete Felder innerhalb von 20min gespeichert werden, weil die Daten sonst verfallen.

Die eingebaute Plausibilitätsprüfung hebt Eingabefelder, in welchen eine Fehleingabe oder eine Abwei-chung der Toleranzen vorhanden ist, rot hervor. Wählt ein Benutzer mit der Berechtigung Supervisor einen Produktionsauftrag mit rot markierten Feldern aus, erscheint neben jedem dieser Felder eine Checkbox (siehe Abbildung 33). Durch Aktivieren einer solchen Checkbox, erteilt der Supervisor eine Son-derfreigabe. Das Eingabefeld erscheint nach dem Aktivieren der Sonderfreigabe in gelb anstelle von rot.

Page 78: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

78

Abbildung 33: Sonderfreigabe erteilen

Unter «Untergeordnete Baugruppen» hat der Benutzer die Möglichkeit, untergeordnete Baugruppen hinzuzufügen (+) oder zu entfernen (-). Damit bildet das System die Struktur der produzierten Baugruppen ab.

Unter «Report» kann der Benutzer angeben, ob er ein Kundenabnahmeprotokoll oder einen internen Report erstellen möchte. Ein erstellter Report enthält sämtliche zugeordneten Unterbaugruppen.

8.7.5 Administration der Benutzer

Ein Administrator hat die Möglichkeit, einen neuen Benutzer zu erfassen, einen bestehenden zu mutieren oder zu löschen.

Folgende Berechtigungen sind einzeln wählbar: Monteur, Supervisor und Administrator.

8.7.6 Administration der Gerätetypen

Ein Administrator hat die Möglichkeit, einen neuen Gerätetyp zu erfassen oder einen bestehenden zu mutieren. Damit auch in Zukunft Reporte von gespeicherten Daten erstellt werden können, ist es nicht möglich, Gerätetypen zu löschen.

Die Vorlage wird mit einem eingebetteten Editor bearbeitet. Die zu bearbeitende Sprache ist wählbar.

Damit später ein Monteur einen Gerätetyp bearbeiten kann, sind Platzhalter für Qualitätsmerkmale einzu-fügen. Diese einfach zu erlernende Schreibweise dieser Platzhalter ist im Kapitel 8.7.6.3 beschrieben.

Falls eine Vorlage für ein externes Testsystem erstellt wird, ist die Beschreibung im Diplombericht, Kapitel 8.1 zu beachten.

Beachte: Alle 15-20 min sind die Daten zu speichern. Die Änderungen verfallen sonst.

8.7.6.1 Zustand des Gerätetyps Ein Gerätetyp hat einen der 3 Zustände:

• Entwurf (wird noch nicht produziert)

• Aktiv (wird produziert)

• Ruhestand (wird nicht mehr produziert)

Monteure können nur Produktionsaufträge mit Vorlagen mit Status «Aktiv» erstellen. Eine Vorlage, die in einem der Zustände «Aktiv» oder «Ruhestand» ist, kann nicht mehr verändert werden.

Tabelle 14: Lebenszyklus Gerätetyp-Vorlage

Status der Vorlage Entwurf Aktiv Ruhestand

Mögliche Zustandsänderungen

Vorlage kann bearbeitet werden X

Vorlage kann als Produktionsauftrag eröffnet werden

X

Abnahmeprotokolle können erstellt werden X X

Page 79: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

79

8.7.6.2 Editor Die Bearbeitung der Vorlage erfolgt mit einem eingebetteten Editor. Dieser erlaubt es, mit Hilfe von Sym-bolleisten eine formatierte Vorlage zu erstellen. Einige Steuerelemente werden genauer beschrieben:

Abbildung 34: Editor

Falls Inhalte aus Word eingefügt werden, empfiehlt es sich, Inhalte nur als Text einzufügen (1). Sämtliche Formatierungen können dann von Grund auf neu erstellt werden. Als Schnittstelle zum Übersetzungsbüro dient HTML. Der Code kann bei (2) angeschaut, verändert, kopiert oder eingefügt werden. Der Button (3) schaltet den Vollbildmodus ein- und aus. Tabellen werden mit (4) erstellt. Vorteilhaft ist es, folgende Ein-stellungen für Width und Border vorzunehmen:

Abbildung 35: Tabelle einfügen

Mit Rows wird die Anzahl der Zeilen definiert. Rows lassen sich jedoch nachträglich hinzufügen und ent-fernen.

Zur Formatierung von Überschriften können im Auswahlmenu (Abbildung 36) Heading 2 bis 6 verwendet werden. Heading 1 ist ausgeblendet, weil dieser Überschriftengrad für den Titel der Baugruppe verwendet wird. Für normalen Text, ist die Formatierung Paragraph zu verwenden.

Abbildung 36: WYSIWYG-Editor – Heading 2

1

4 2 3

Page 80: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

80

8.7.6.3 Syntax Beschreibung der Qualitätsmerkmale Für die Definition neuer Qualitätsmerkmale wird eine einfach zu erlernende Notation verwendet. Die allgemeine Schreibweise lautet:

##Name:Type

Name Bezeichnung des Qualitätsmerkmals

Type Datentyp des Qualitätsmerkmals, mit Doppelpunkt abgetrennt

Name

Um Namenskonflikte zu vermeiden, sollte «Name» noch etwas präzisiert werden. Es gilt die Regel, dass jedes Qualitätsmerkmal innerhalb einer Vorlage eindeutig sein muss.

Die Notation lautet so:

##System.Subsystem1.Subsystem2.Part.Designator:Type

System Allgemeiner Name des Fabrikats (bleibt üblicherweise in derselben Vorlage unverändert). Zusammengesetzt aus Buchstaben und Zahlen

Subsystem1..n Bezeichnung der Untergruppe

Part Bezeichnung des betroffenen Bauteils

Designator Benennung der physikalischen Messgrösse

Type

Für «Type» stehen folgende Möglichkeiten zur Verfügung:

Checkbox Kontrollkästchen (muss aktiviert werden)

Number Fliesskomma- oder Ganzzahlwert

Number(min, max) Fliesskomma- oder Ganzzahlwert, der grösser oder gleich «min» UND kleiner oder gleich «max» sein muss.

Text Textinformation, maximal 20 Zeichen

Text(minL, maxL) Textinformation, wobei die Länge grösser oder gleich «min» UND kleiner oder gleich «max» sein muss (maximal 20 Zeichen).

File File-Referenz auf abgelegtes Dokument (Pfad+Filename, maximal 20 Zeichen).

Konkretes Beispiel

Das folgende Qualitätsmerkmal definiert den Bereich des Korrekturfaktors der Wasseruhr, welche im Wasserkreis des Lasers montiert ist:

##Laser.Wasserkreis.Wasseruhr.Korrekturfaktor:Number(0.8, 1.2)

8.7.7 Administration Statistik

Dieser Menupunkt erstellt eine Ausgabe von Werten und bedarf keiner Anmeldung am System. Eingege-ben werden muss der Name des Qualitätsmerkmals, sowie Start- und Enddatum.

Falls nur Qualitätsmerkmale eines bestimmten Wertes gesucht werden, ist dazu ein Filter implementiert. Als Beispiel könnte eine Liste von Laser-Qualitätsmerkmalen erstellt werden, bei welchen die Spiegel-Serial# mit Mirror2008-09 beginnt.

Die Suchresultate werden kommagetrennt dargestellt und können in ein .CSV-File kopiert werden. Dieses File kann dann mit Excel weiterbearbeitet werden.

Page 81: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

81

9 Anhang

9.1 Quellenverzeichnis [1] Microsoft Press, Handbuch der .NET-Programmierung, Rolf Wenger, ISBN-13: 978-3866454194

[2] Apress, ASP.NET 3.5 in C#2008 (Pro), thew MacDonald und Mario Szpuszta, ISBN-13: 978-1590598931

[3] Apress, C# 2005 Business Objects (Expert), Rocky Lhotka, ISBN-13: 978-1590596326

[4] http://msdn.microsoft.com/de-de/library/ms182001.aspx

[5] www.lhotka.net

[6] tinymce.moxiecode.com

[7] http://msdn.microsoft.com/de-de/library/bb386976.aspx

[8] http://webcoder.info/downloads/xHTML2fo.xsl

[9] http://techsynapse.blogspot.com/2007/04/what-to-do-when-error-like.HTML

[10] http://www.sws.bfh.ch/~amrhein/Skripten/XML/XSLT.pdf

[11] http://xmlgraphics.apache.org/fop/

[12] http://mattberseth.com/blog/2007/07/how_to_show_header_and_footer.HTML

[13] http://msdn.microsoft.com/en-us/vjsharp/bb188598.aspx

[14] http://download.microsoft.com/download/6/0/f/60fc5854-3cb8-4892-b6db-bd4f42510f28/dotnetfx35.exe

[15] http://www.microsoft.com/downloads/details.aspx?displaylang=de&FamilyID=d07219b2-1e23-49c8-8f0c-63fa18f26d3a

[16] Apress, Expert C# 2008 Business Objects (Expert), Rocky Lhotka, ISBN-13: 978-1430210191

[17] http://www.dpawson.co.uk/xsl/examples.HTML

9.2 Abbildungsverzeichnis Abbildung 1: Serialnummern im Begleitprotokoll...........................................................................................8 Abbildung 2: Kontrollpunkte Inbetriebnahme ................................................................................................8 Abbildung 3: Schraubeneinstellung für Justage ..............................................................................................9 Abbildung 4: Anwendungsfall-Diagramm .....................................................................................................10 Abbildung 5: Produktionsauftrag suchen......................................................................................................14 Abbildung 6: Qualitätsmerkmale bearbeiten................................................................................................17 Abbildung 7: Sonderfreigabe erteilen ...........................................................................................................19 Abbildung 8: 3-Layer Architektur ..................................................................................................................25 Abbildung 9: Login / Suche............................................................................................................................26 Abbildung 10: Neuen Produktionsauftrag erfassen......................................................................................26 Abbildung 11: Qualitätsmerkmale bearbeiten..............................................................................................27 Abbildung 12: Navigation..............................................................................................................................28 Abbildung 13: Beschreibungen von Gerätetypen .........................................................................................32 Abbildung 14: Domänenmodell ....................................................................................................................35 Abbildung 15: Report Generation .................................................................................................................37 Abbildung 16: Übersicht Architektur.............................................................................................................37

Page 82: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Diplombericht Master Thesis MAS-06-01.08

82

Abbildung 17: Datenbank Schema ................................................................................................................38 Abbildung 18: Klassendiagramm...................................................................................................................41 Abbildung 19: Sequenzdiagramm Produktionsauftrag bearbeiten............................................................... 46 Abbildung 20: Sequenzdiagramm Report erstellen ......................................................................................47 Abbildung 21: Baumstruktur .........................................................................................................................48 Abbildung 22: Stored Procedure saveQualityItem........................................................................................50 Abbildung 23: Schema gemäss O/R Designer ...............................................................................................51 Abbildung 24: ASP.NET Device-Liste .............................................................................................................56 Abbildung 25: ASP.NET Device-Liste (hinzufügen/entfernen) ...................................................................... 57 Abbildung 26: Sessions.................................................................................................................................. 58 Abbildung 27: Erstelltes PDF .........................................................................................................................62 Abbildung 28: Erstelltes HTML-Dokument....................................................................................................63 Abbildung 29: Klassendiagramm Unit Test ...................................................................................................64 Abbildung 30: Unit Tests ...............................................................................................................................67 Abbildung 31: Topologie ...............................................................................................................................71 Abbildung 32: Willkommensbildschirm ........................................................................................................77 Abbildung 33: Sonderfreigabe erteilen .........................................................................................................78 Abbildung 34: Editor...................................................................................................................................... 79 Abbildung 35: Tabelle einfügen ....................................................................................................................79 Abbildung 36: WYSIWYG-Editor – Heading 2 ................................................................................................79

9.3 Tabellenverzeichnis Tabelle 1: Gliederung GUI .............................................................................................................................27 Tabelle 2: Mengengerüst ..............................................................................................................................29 Tabelle 3: DBS-Tabelle Actor .........................................................................................................................39 Tabelle 4: DBS-Tabelle QualityItem...............................................................................................................39 Tabelle 5: DBS-Tabelle QualityItemMap .......................................................................................................39 Tabelle 6: DBS-Tabelle Device .......................................................................................................................40 Tabelle 7: DBS-Tabelle DeviceTemplate........................................................................................................40 Tabelle 8: Design: Klassen im Package Presentation ....................................................................................41 Tabelle 9: Design: Klassen im Package Business ...........................................................................................43 Tabelle 10: Beispiel einer hierarchischen Stückliste .....................................................................................48 Tabelle 11: Vorhandene XSL-Stylesheets ......................................................................................................59 Tabelle 12: Testfälle für Unit Test .................................................................................................................65 Tabelle 13: Abweichungen zum Pflichtenheft...............................................................................................74 Tabelle 14: Lebenszyklus Gerätetyp-Vorlage ................................................................................................78

Page 83: Diplombericht Master Thesis Produktionsüberwachungstatic.sws.bfh.ch/download/MAS-06-01-08-doc.pdf · Bystronic-Niederlassung des Kunden archiviert. Am Arbeitsplatz des Monteurs steht

Pflichtenheft Master Thesis MAS-06-01.08

83

9.4 Glossar Begriff Erklärung

Bystronic Laser AG Die Firma Bystronic Laser AG mit Sitz in Niederönz stellt Werkzeugmaschinen zur Bearbeitung von Blechen her. Neben Laser- und Wasserstrahlschneidanla-gen umfasst die Produktpalette auch Biegemaschinen. Von den weltweit 1524 Angestellten arbeiten 575 in der Schweiz (Stand 2007).

ByVention Kompakte Laser-Schneidanlage

Equipment SAP Material-Stückliste

Gerätetyp Gerätetyp besteht aus Bezeichnung, SAP-Nummer, Zustand, Liste von Quali-tätsmerkmalen

Ein Gerätetyp kann aus anderen Gerätetypen bestehen. Eine Laserschneidanla-ge (zB. ByVention) ist ebenfalls ein Gerätetyp.

Gerätetyp = Anlage oder Teilfabrikat

Kommission SAP Kundenauftrag mit konfigurierter Stückliste (Equipment)

Produktionsauftrag Ein Produktionsauftrag ist ein produzierter Gerätetyp mit Serialnummer (oder Kommission), bearbeiteten Qualitätsmerkmalen, Zustand, übergeordnete Bau-gruppe, Bemerkungstext.

Qualitätsmerkmale Zur Rückverfolgbarkeit zusammengestellte Qualitäts-Punkte:

• Checkpunkte • Messresultate oder Einstellwerte • Serialnummern

Beispiele 1: Checkpunkte

Beispiele 2: Serienummern

Beispiele 3: Automatisierte Messergebnisse

Serialnummer Eindeutige Nummer zur Identifizierung eines Fabrikats.

Die Kommission ist eine Serialnummer auf höchster Ebene.