Refine
Document Type
- Master's Thesis (1)
- Study Thesis (1)
Language
- German (2)
Has Fulltext
- yes (2) (remove)
Keywords
- Java (2) (remove)
Department/institution
Das Landeskrebsregister (LKR) Nordrhein-Westfalen (NRW) erfasst Daten zu Krebserkrankungen von Patienten von Ärzten, Krankenhäusern, Pathologien und Meldeämtern aus ganz NRW um diese auszuwerten. Für die Auswertung müssen Daten, die den gleichen Patienten betreffen, zusammen- geführt werden. Zur Verknüpfung gibt es einen automatischen Record-Linkage Algorithmus, der aber bei ca. 5% aller Meldungen eine manuelle Entscheidung erfordert.
Um den Aufwand der manuellen Nachbearbeitung zu reduzieren, soll der Vorgang durch ein künstliches neuronales Netz automatisiert werden. Das künstliches neuronales Netz (KNN) soll mit dem LKR NRW vorliegenden Daten zu manuellen Entscheidungen trainiert werden. Dafür müssen die Daten vor der Verwendung umfangreich aufbereitet werden.
Das Ziel der Arbeit ist die Aufarbeitung und Aktualisierung eines vorliegenden Konzepts und die Implementierung eines Prototypen des Verfahrens. Der Prototyp soll in der Programmiersprache Java umgesetzt werden.
Die folgende Arbeit beginnt mit einer kurzen Einleitung über die Krankheit Krebs, das LKR NRW und KNN. Danach erläutere ich die Methodik, die sich mit und die Implementierung des Themas. In der Methodik erkläre ich was KNN sind und schneide ihre Funktionsweise an. Außerdem erkläre ich wie die Bereitstellung der Daten erfolgt und wie diese für das neuronale Netz verständlich aufbereitet werden. Zur Implementierung werde ich beschreiben was für eine Entwicklungsumgebung verwendet
wurde um das Projekt umzusetzen und wie das Programm umgesetzt wurde. Die Erklärung der Umsetzung besteht aus Unified Modeling Language (UML)-Diagrammen für die Datenaufbereitung und Code-Ausschnitte für die Konfiguration und Schnittstellen des KNN.
Das KNN konnte inklusive Datenaufbereitung erstellt werden und klassifiziert 94,4% der Fälle korrekt. Auf Grundlage dieser Arbeit kann das Projekt nachgebaut werden.
Die Sicherheit von Softwareprojekten ist ein zentraler Faktor für ihren Erfolg, der oft nicht ausreichend gewährleistet wird. Aus diesem Grund werden in der vorliegenden Arbeit neue Ansätze entwickelt, um dem Entwickler bei der Durchsetzung der Softwaresicherheit zu helfen. Dafür wird untersucht, welche neuen Ansätze für die Unterstützung bei der Vermeidung ausgewählter Fehler hilfreich sein können, sowie welche konzeptionellen Vor- und Nachteile sie aufweisen.
Zunächst wird ein Überblick über die nötigen Grundlagen für die Entwicklung der neuen Ansätze geschaffen. Elementar ist dabei das Secure Coding Prinzip, nach dem verschiedenste sicherheitsrelevante Implementierungsfehler bereits früh in dem Lebenszyklus eines Softwareprojekts, während seiner Implementierung zu vermeiden sind. Ein Mittel für diesen Zweck sind die sogenannten Secure Coding Richtlinien, die typische Fehler beschreiben und konkrete Vorgehensweisen für ihre Vermeidung und Behebung definieren, aber oft nicht eingehalten werden. Werkzeuge zur statischen Code-Analyse können hierbei Abhilfe schaffen, da sie verschiedenste Fehler automatisiert erkennen und den Entwickler über sie informieren.
Auf der Basis dieser Grundlagen werden Verbesserungsmöglichkeiten untersucht, um den Entwickler anhand von statischer Code-Analyse besser bei der Einhaltung relevanter Secure Coding Richtlinien zu unterstützen. Der Fokus dieser Arbeit liegt dabei auf der Vermeidung von Fehlern bei der Validierung von Eingaben, da diese Fehlerform besonders weit verbreitet und schwerwiegend ist.
Um eine entsprechende Hilfestellung gewährleisten zu können, werden drei Ansätze zur Unterstützung bei der Anwendung von Richtlinien für die Programmiersprache Java näher betrachtet. Diese Ansätze helfen dem Entwickler komplementär zu der Funktionalität herkömmliche Werkzeuge zur statischen Code-Analyse für das Auffinden von Fehlern auch bei der Vermeidung und Behebung dieser Fehler. Die neuen Ansätze basieren auf der Verwendung von textuellen Annotationen für die Umsetzung des Validierungsprozesses einer Eingabe, dem Einsatz einer API zur Validierung einer Eingabe und der Nutzung eines IDE-Plugins, um den nötigen Quellcode für den Validierungsprozess automatisiert zu generieren. Die nähere Betrachtung und Evaluierung dieser Ansätze zeigt, dass der annotationsbasierte Ansatz sich nicht für diesen Zweck eignet, während sowohl der API-basierte Ansatz, als auch der Ansatz für das Generieren des Quellcodes eine effektive und effiziente Ergänzung herkömmlicher Werkzeuge zur statischen Code-Analyse darstellen und dementsprechend in der weiteren Forschung aufgegriffen werden sollten.