• Keine Ergebnisse gefunden

2. Grundlagen

2.5 Programmierwerkzeuge

2.5.1 Microsoft Foundation Classes (MFC) Bibliothek

Basierend auf der Beschreibung der Firma Microsoft [13], stellt die MFC-Bibliothek eine Sammlung der objektorientierten Klassen für die vereinfachte Entwicklung der grafischen Benutzeroberfläche unter Windows Betriebssystem dar. Besonders hilfreich ist sie für die Er-stellung der komplexen Benutzeroberflächen mit mehreren Steuerelementen. Für die Dar-stellung der Anwendungen wird der Stil von Office verwendet, der unter Windows sehr ver-breitet ist.

Unter der Benutzung der MFC-Bibliothek wird ein Programmgerüst erstellt, das die Routine-funktionen, wie den Datenaustausch zwischen den Elementen usw., übernimmt.

Die MFC Bibliothek besitzt eine View/Doc Architektur, die auf der Model-Präsentation-Steu-erung-Architektur oder auch engl. MVC-Architektur aufgebaut wird. Dabei wird jede Ansicht oder View an ein Dokument gebunden. Die Kommunikation zwischen den Architekturgrup-pen wird vereinfacht in der Abbildung 2.24 dargestellt.

Abbildung 2.24: Die MFC-Architektur basierend auf dem MVC-Architekturmodel13

View: Eine View beinhaltet nur die Daten für die Darstellung und die Benutzerkommunika-tion. Die vom Benutzer eingegebenen Daten werden von der View an das Dokument ge-reicht. Die Ansicht wird durch die empfangenen Daten vom Dokument aktualisiert.

Frame: Verwaltet die verschiedenen Views und die dazugehörigen Dokumente.

Dokument: Ein Dokument empfängt die Daten von der View und verarbeitet sie, d.h. alle Be-rechnungen, die durch einen Benutzer in der View-Ansicht initialisiert werden, werden hier durchgeführt.

13„MVC结构模式与MFC Doc/View结构“: https://blog.csdn.net/yh_wang_tiger/article/details/1818120 (10.04.2018)

2 Anforderungen

Mit der Anforderungsliste wurden die zu erfüllenden Erwartungen an die Software speziali-siert und die Relevanz der Programmfunktionalitäten festgelegt. Die Anforderungen wurden durchnummeriert und mit der Priorität versehen. Die Priorität bzw. die Relevanz der Anfor-derungen werden durch Muss-, Soll- und Kann-AnforAnfor-derungen umgesetzt. Die Anforderun-gen wurden durchnummeriert und mit den Identifikationsnummern versehen.

Muss - Anforderungen bestimmen die Mindestanforderungen an das Programm, die zwin-gend erfühlt werden müssen. Sie besitzen die Priorität „1“.

Soll - Anforderungen bestimmen die Eigenschaften des Programms, die nicht zwingend er-fühlt werden müssen. Sie besitzen die Priorität „2“.

Kann - Anforderungen bestimmen die optionalen Anforderungen, die wünschenswert, aber eher eine unwesentlichere Bedeutung haben. Sie besitzen die Priorität „3“.

Die nichtfunktionalen Anforderungen wie Effizienzanforderungen und Leistungsanforderun-gen wurden nicht expliziert formuliert.

Die funktionalen Anforderungen legen fest, welche funktionellen Eigenschaften die Soft-ware, im Weiteren auch Programm genannt, als Endprodukt aufweisen soll. Die funktionalen Anforderungen werden in zwei Gruppen unterteilt. Die erste Gruppe definiert die Wechsel-wirkungen an der Schnittstelle Benutzer-Software und die zweite Gruppe beschreibt die au-tomatischen Abläufe im Programm.

Benutzerinteraktion:

[A1.1] Das Programm muss über ein graphisches Interface mit dem Benutzer kommunizie-ren.

[A1.2] Das Programm muss dem Benutzer die Möglichkeit bieten, ein Grauwertbild aus ei-nem der Computerverzeichnisse im RAW-Datenformat, im Ansichtsfenster des graphischen Interfaces zu öffnen.

[A1.3] Das Programm muss dem Benutzer die Möglichkeit bieten, ein Grauwertbild im An-sichtsfenster des graphischen Interfaces invertiert darzustellen.

[A1.4] Das Programm soll dem Benutzer die Möglichkeit bieten, ein Grauwertbild im An-sichtsfenster des graphischen Interfaces zu zoomen.

[A1.5] Das Programm soll dem Benutzer die Möglichkeit bieten, die Koordinaten der aktuel-len Position des Mauszeigers im Ansichtsfenster des graphischen Interfaces bei geöffnetem Grauwertbild sowie den dazugehörigen Pixelwert anzuzeigen.

[A1.6] Das Programm soll dem Benutzer die Möglichkeit bieten, den Kontrast des Grauwert-bildes im Ansichtsfenster des graphischen Interfaces zu verändern.

[A1.7] Das Programm muss dem Benutzer die Möglichkeit bieten, den Berechnungsvorgang zur Bestimmung der PSF zu starten.

[A1.8] Das Programm kann dem Benutzer die Möglichkeit bieten, die Art der Fensterfunktion zur Berechnung der PSF zu wählen.

[A1.9] Das Programm kann dem Benutzer die Möglichkeit bieten, den Speicherort für das Ergebnis der PSF zu wählen.

[A1.10] Das Programm kann fähig sein, dem Benutzer das Ende der Berechnung zu signalisie-ren.

Selbsttätige Systemaktivitäten:

[A2.1] Beim Öffnen des Grauwertbildes aus einem der Computerverzeichnisse muss das Pro-gramm fähig sein, die Bilddaten des Grauwertbildes aus dem RAW-Datenformat ohne Hea-der zur späteren Datenverarbeitung in den Speicher einzulesen.

[A2.2] Bei der Initialisierung des Rechenvorgangs muss das Programm fähig sein, eine zum geöffnetem Grauwertbild passende PSF zu berechnen.

[A2.3] Während des Rechenvorgangs muss das Programm fähig sein, die Information für die Berechnung der PSF aus dem geöffneten Grauwertbild zu extrahieren.

[A2.4] Während des Rechenvorgangs muss das Programm fähig sein, die Koeffizienten für die gewählte Fensterfunktion selbständig zu bestimmen.

[A2.5] Am Ende des Rechenvorgangs muss das Programm das Ergebnis der PSF-Berechnung als Bild im PNG-Datenformat zu speichern.

3 Design

Zu Beginn wird die Frage gestellt gestellt, wie ein Benutzer mit dem Programm agieren wird.

Angelegt an den modernen medizinischen Röntgengeräten mit der digitalen Bildausgabe-stelle wurde die Anforderung [A1.1] formuliert. So wurde entschieden, auf der Basis vom Windows Betriebssystem zu arbeiten. Als Entwicklungsumgebung wurde das Microsoft Vi-sual Studio 2015 gewählt, weil es die Möglichkeit bietet, mit der MFC-Bibliothek zu arbeiten.

Das erleichtert den Entwicklungsprozess, da seit Windows 2000 die MFC-Bibliothek auf je-dem Betriebssystem mitinstalliert wurde. Wie in Kapitel 2.5.1 erklärt wurde, bietet die MFC eine bequeme Struktur für die Entwicklung einer graphischen Benutzeroberfläche. Als Pro-grammiersprache wurde die objektorientierte Sprache C++ gewählt.