Freitag, 14. Juni 2013

Mai 2013 / IPA: indico Service Management System

Jeder Informatiklehrling muss am Ende seiner Lehre eine individuelle praktische Arbeit, kurz IPA durchführen. Dabei muss er ein Projekt planen und realisieren. In meinem Fall habe ich das indico Service Management System, kurz iSMS entwickelt.

Ausgangslage

Die Kunden unserer Firma betreiben verschiedene Industrie-Anlagen, bei denen wir verschiedene Hardware-Komponenten sowie Software-Lösungen, hier „Service-Objekte“ genannt, installiert haben.
Damit die Wartung dieser Service-Objekte geregelt ist und nicht vergessen wird, wünscht mein Vorgesetzter ein Programm, mit welchem er und andere Projektleiter ihre Kunden, Anlagen und Service-Objekte verwalten können.
Wichtig ist die Hierarchie dieser Objekte:
  • Man kann beliebig viele Kunden erstellen
  • Einem Kunden kann man beliebig viele Anlagen anfügen
  • Einer Anlage kann man beliebig viele Service-Objekte anfügen
  • Einem Service-Objekt kann man beliebig viele Service -Objekte anfügen
Hier ist das Ganze noch bildlich dargestellt:

Jedes Service-Objekt soll direkt einer Anlage zugewiesen werden können, es soll jedoch nicht jedes Service-Objekt jedem anderen Service-Objekt angefügt werden können.
Es macht ja keinen Sinn, einen PC einer Festplatte anzuhängen. Eine Festplatte einem PC hingegen schon.
Um dies zu ermöglichen, gibt es Service-Objekt-Typen. Ein Service-Objekt hat immer einen bestimmten Typen. Die Service-Objekt-Typen können so konfiguriert werden, dass sie nur bestimmten anderen Service-Objekt-Typen angehängt werden können.
Man kann z.B. die folgenden Objekttypen erstellen: PC, Festplatte und Virenschutz. Anschliessend kann man dann die möglichen Zuweisungen definieren. Z.B:
  • Festplatte an PC
  • Festplatte an Panel
  • Virenschutz an PC
Hier eine bildliche Erläuterung:

Ausserdem sollen die Projektleiter den Service-Objekten ein Wartungsintervall zuweisen können. Ist dieses Wartungsintervall erreicht, soll das die Applikation nach dem Start anzeigen.
Zusätzlich soll es möglich sein, für die erfassten Service-Objekte Offerten zu generieren, in denen dem Kunden die durchzuführenden Wartungsarbeiten aufgelistet werden.
Die Offerten sind als Microsoft Word-Dokument auszugeben und sollen auf einer Word-Vorlage mit Textmarken basieren, damit die Darstellung ohne Anpassung des Programms geändert werden kann.
 

Konzept

Das Projekt wurde mit der Projektmethode HERMES und als Einzelarbeit von mir durchgeführt.
In der Voranalyse habe ich entsprechend HERMES einen Variantenentscheid durchgeführt, ein Pflichtenheft erstellt, eine Risikoanalyse gemacht usw. Wie es natürlich zu einem Konzept gehört, habe ich die Anwendungsfälle analysiert und erfasst und ein umfangreiches Testkonzept definiert
Das Programm wurde als „Windows Forms Applikation“ und mit einer 3-Schichten-Architektur umgesetzt, obwohl ich mit dieser Architektur vor der IPA noch keine Erfahrungen gesammelt habe. Diese Architektur ist jedoch besonders im Hinblick auf die spätere Realisierung eines Server-Dienstes zur automatischen Überwachung der Service-Objekte sinnvoll. Als Datenbankserver habe ich einen SQL-Server 2008 R2 verwendet, auf den ich mit der LINQtoSQL-Komponente zugreife.
 

Realisierung

Das Programm hat 2 bzw. 3 Ansichten.

Service Ansicht

In der Service Ansicht sieht man auf der linken Seite die erfassten Service-Objekte in einer Liste, welche mit Hilfe der darübergelegenen Felder gefiltert werden können. Sortiert ist die Liste nach dem Fälligkeitsdatum, also dem Tag, an dem die nächste Wartung durchgeführt werden sollte. Hat ein Service-Objekt das Fälligkeitsdatum erreicht, so wird es wie im folgenden Bild orange markiert.
Auf der rechten Seite sind die Abhängigkeit und darunter die Service-History des selektierten Service-Objekts zu sehen. Mithilfe des Buttons Offerte kann die oben erwähnte Offerte generiert werden.
 

Administrationsansicht

Die Administrationsansicht dient zum Verwalten der in der Datenbank gespeicherten Elemente. Sie ist wiederum in 2 weitere Ansichten unterteilt.
 
Baum Ansicht
In der Baum-Ansicht kann man die Kunden, Anlagen und Service-Objekte verwalten. Die vorhandenen Objekte werden hierarchisch angezeigt. Daher können die anderen Objekte hier auch nicht verwaltet werden.
 
 
Objekt-Ansicht
In der Objekt-Ansicht kann man alle Objekte also Kunden, Anlagen, Service-Objekte, Service-Objekt-Typen, Projektleiter und Kostenstellen verwalten. Hier werden sie jedoch einfach immer nur aufgelistet und nicht hierarchisch dargestellt.