Institut für Informatik und Computational Science
Refine
Has Fulltext
- yes (4) (remove)
Year of publication
- 2004 (4) (remove)
Document Type
- Doctoral Thesis (4) (remove)
Is part of the Bibliography
- yes (4)
Keywords
- FMC (2)
- Systemstruktur (2)
- Ausreissererkennung (1)
- Benutzeroberfläche (1)
- Betrachtungsebenen (1)
- Conceptual (1)
- ICA (1)
- Interactive system (1)
- Interaktives System (1)
- Kern-PCA (1)
- Kernmethoden (1)
- Konzeptionell (1)
- Metamodell (1)
- Modellierung (1)
- Open Source (1)
- Patterns (1)
- Prozess Verbesserung (1)
- Prozessmodell (1)
- Prozessmodellierung (1)
- Software Engineering (1)
- Softwareentwicklung (1)
- System structure (1)
- Systementwurf (1)
- Zuverlässigkeitsanalyse (1)
- kernel PCA (1)
- kernel methods (1)
- meta model (1)
- model-driven architecture (1)
- nichtlineare ICA (1)
- nonlinear ICA (1)
- open source (1)
- outlier detection (1)
- overcomplete ICA (1)
- process improvement (1)
- process model (1)
- process modelling (1)
- reliability assessment (1)
- robust ICA (1)
- robuste ICA (1)
- software development (1)
- software engineering (1)
- überbestimmte ICA (1)
Institute
Independent component analysis (ICA) is a tool for statistical data analysis and signal processing that is able to decompose multivariate signals into their underlying source components. Although the classical ICA model is highly useful, there are many real-world applications that require powerful extensions of ICA. This thesis presents new methods that extend the functionality of ICA: (1) reliability and grouping of independent components with noise injection, (2) robust and overcomplete ICA with inlier detection, and (3) nonlinear ICA with kernel methods.
Interaktive System sind dynamische Systeme mit einem zumeist informationellen Kern, die über eine Benutzungsschnittstelle von einem oder mehreren Benutzern bedient werden können. Grundlage für die Benutzung interaktiver Systeme ist das Verständnis von Zweck und Funktionsweise. Allein aus Form und Gestalt der Benutzungsschnittstelle ergibt sich ein solches Verständnis nur in einfachen Fällen. Mit steigender Komplexität ist daher eine verständliche Beschreibung solcher Systeme für deren Entwicklung und Benutzung unverzichtbar. Abhängig von ihrem Zweck variieren die Formen vorgefundener Beschreibungen in der Literatur sehr stark. Ausschlaggebend für die Verständlichkeit einer Beschreibung ist jedoch primär die ihr zugrundeliegende Begriffswelt. Zur Beschreibung allgemeiner komplexer diskreter Systeme - aufbauend auf einer getrennten Betrachtung von Aufbau-, Ablauf- und Wertestrukturen - existiert eine bewährte Begriffswelt. Eine Spezialisierung dieser Begriffs- und Vorstellungswelt, die den unterschiedlichen Betrachtungsebenen interaktiver Systeme gerecht wird und die als Grundlage beliebiger Beschreibungsansätze interaktiver Systeme dienen kann, gibt es bisher nicht. Ziel dieser Arbeit ist die Bereitstellung einer solchen Begriffswelt zur effizienten Kommunikation der Strukturen interaktiver Systeme. Dadurch soll die Grundlage für eine sinnvolle Ergänzung bestehender Beschreibungs- und Entwicklungsansätze geschaffen werden. Prinzipien der Gestaltung von Benutzungsschnittstellen, Usability- oder Ergonomiebetrachtungen stehen nicht im Mittelpunkt der Arbeit. Ausgehend von der informationellen Komponente einer Benutzungsschnittstelle werden drei Modellebenen abgegrenzt, die bei der Betrachtung eines interaktiven Systems zu unterscheiden sind. Jede Modellebene ist durch eine typische Begriffswelt gekennzeichnet, die ihren Ursprung in einer aufbauverwurzelten Vorstellung hat. Der durchgängige Bezug auf eine Systemvorstellung unterscheidet diesen Ansatz von dem bereits bekannten Konzept der Abgrenzung unterschiedlicher Ebenen verschiedenartiger Entwurfsentscheidungen. Die Fundamental Modeling Concepts (FMC) bilden dabei die Grundlage für die Findung und die Darstellung von Systemstrukturen. Anhand bestehender Systembeschreibungen wird gezeigt, wie die vorgestellte Begriffswelt zur Modellfindung genutzt werden kann. Dazu wird eine repräsentative Auswahl vorgefundener Systembeschreibungen aus der einschlägigen Literatur daraufhin untersucht, in welchem Umfang durch sie die Vorstellungswelt dynamischer Systeme zum Ausdruck kommt. Defizite in der ursprünglichen Darstellung werden identifiziert. Anhand von Alternativmodellen zu den betrachteten Systemen wird der Nutzen der vorgestellten Begriffswelt und Darstellungsweise demonstriert.
Zur Beherrschung großer Systeme, insbesondere zur Weitergabe und Nutzung von Erfahrungswissen in der frühen Entwurfs- und Planungsphase, benötigt man Abstraktionen für deren Strukturen. Trennt man Software- von Systemstrukturen, kann man mit letzteren Systeme auf ausreichend hohem Abstraktionsgrad beschreiben.Software-Patterns dienen dazu, Erfahrungswissen bezüglich programmierter Systeme strukturiert weiterzugeben. Dabei wird unterschieden zwischen Idiomen, die sich auf Lösungen mit einer bestimmten Programmiersprache beziehen, Design-Patterns, die nur einen kleinen Teil des Programms betreffen und Architektur-Patterns, deren Einfluss über einen größeren Teil oder gar das komplette Programm reicht. Eine Untersuchung von existierenden Patterns zeigt, dass deren Konzepte nützlich zum Finden von Systemstrukturen sind. Die grafische Darstellung dieser Patterns ist dagegen oft auf Software-Strukturen eingeschränkt und ist für die Vermittlung von Erfahrungen zum Finden von Systemstrukturen meist nicht geeignet. Daher wird die Kategorie der konzeptionellen Patterns mit einer darauf abgestimmten grafischen Darstellungsform vorgeschlagen, bei denen Problem und Lösungsvorschlag im Bereich der Systemstrukturen liegen. Sie betreffen informationelle Systeme, sind aber nicht auf Lösungen mit Software beschränkt. Die Systemstrukturen werden grafisch dargestellt, wobei dafür die Fundamental Modeling Concepts (FMC) verwendet werden, die zur Darstellung von Systemstrukturen entwickelt wurden.
Gerade in den letzten Jahren erfuhr Open Source Software (OSS) eine zunehmende Verbreitung und Popularität und hat sich in verschiedenen Anwendungsdomänen etabliert. Die Prozesse, welche sich im Kontext der OSS-Entwicklung (auch: OSSD – Open Source Software-Development) evolutionär herausgebildet haben, weisen in den verschiedenen OSS-Entwicklungsprojekten z.T. ähnliche Eigenschaften und Strukturen auf und auch die involvierten Entitäten, wie z.B. Artefakte, Rollen oder Software-Werkzeuge sind weitgehend miteinander vergleichbar. Dies motiviert den Gedanken, ein verallgemeinerbares Modell zu entwickeln, welches die generalisierbaren Entwicklungsprozesse im Kontext von OSS zu einem übertragbaren Modell abstrahiert. Auch in der Wissenschaftsdisziplin des Software Engineering (SE) wurde bereits erkannt, dass sich der OSSD-Ansatz in verschiedenen Aspekten erheblich von klassischen (proprietären) Modellen des SE unterscheidet und daher diese Methoden einer eigenen wissenschaftlichen Betrachtung bedürfen. In verschiedenen Publikationen wurden zwar bereits einzelne Aspekte der OSS-Entwicklung analysiert und Theorien über die zugrundeliegenden Entwicklungsmethoden formuliert, aber es existiert noch keine umfassende Beschreibung der typischen Prozesse der OSSD-Methodik, die auf einer empirischen Untersuchung existierender OSS-Entwicklungsprojekte basiert. Da dies eine Voraussetzung für die weitere wissenschaftliche Auseinandersetzung mit OSSD-Prozessen darstellt, wird im Rahmen dieser Arbeit auf der Basis vergleichender Fallstudien ein deskriptives Modell der OSSD-Prozesse hergeleitet und mit Modellierungselementen der UML formalisiert beschrieben. Das Modell generalisiert die identifizierten Prozesse, Prozessentitäten und Software-Infrastrukturen der untersuchten OSSD-Projekte. Es basiert auf einem eigens entwickelten Metamodell, welches die zu analysierenden Entitäten identifiziert und die Modellierungssichten und -elemente beschreibt, die zur UML-basierten Beschreibung der Entwicklungsprozesse verwendet werden. In einem weiteren Arbeitsschritt wird eine weiterführende Analyse des identifizierten Modells durchgeführt, um Implikationen, und Optimierungspotentiale aufzuzeigen. Diese umfassen beispielsweise die ungenügende Plan- und Terminierbarkeit von Prozessen oder die beobachtete Tendenz von OSSD-Akteuren, verschiedene Aktivitäten mit unterschiedlicher Intensität entsprechend der subjektiv wahrgenommenen Anreize auszuüben, was zur Vernachlässigung einiger Prozesse führt. Anschließend werden Optimierungszielstellungen dargestellt, die diese Unzulänglichkeiten adressieren, und ein Optimierungsansatz zur Verbesserung des OSSD-Modells wird beschrieben. Dieser Ansatz umfasst die Erweiterung der identifizierten Rollen, die Einführung neuer oder die Erweiterung bereits identifizierter Prozesse und die Modifikation oder Erweiterung der Artefakte des generalisierten OSS-Entwicklungsmodells. Die vorgestellten Modellerweiterungen dienen vor allem einer gesteigerten Qualitätssicherung und der Kompensation von vernachlässigten Prozessen, um sowohl die entwickelte Software- als auch die Prozessqualität im OSSD-Kontext zu verbessern. Desweiteren werden Softwarefunktionalitäten beschrieben, welche die identifizierte bestehende Software-Infrastruktur erweitern und eine gesamtheitlichere, softwaretechnische Unterstützung der OSSD-Prozesse ermöglichen sollen. Abschließend werden verschiedene Anwendungsszenarien der Methoden des OSS-Entwicklungsmodells, u.a. auch im kommerziellen SE, identifiziert und ein Implementierungsansatz basierend auf der OSS GENESIS vorgestellt, der zur Implementierung und Unterstützung des OSSD-Modells verwendet werden kann.