Refine
Document Type
- Doctoral thesis (5)
Has Fulltext
- yes (5)
Is part of the Bibliography
- no (5)
Keywords
- Softwareentwicklung (5) (remove)
How good is a given graph clustering, graph layout, or graph ordering --specifically, how well does it group densely connected vertices and separate sparsely connected vertices? How good is a given software design -- specifically, how well does it minimize the interdependence of the subsystems? This work introduces and validates simple and uniform measures for these two properties. Together with existing optimization algorithms, the introduced measures enable the automatic computation e.g. of communities in social networks and of design flaws in software systems. The first part derives, validates, and unifies quality measures for graph clusterings, graph layouts, and graph orderings, with the following results: - Identical quality measures can be applied to clusterings, layouts, and orderings; this enables the computation of consistent clusterings, layouts, and orderings. - Diverse existing and new measures can be unified into few general measures; this facilitates their comparison and validation. - Many existing measures are biased towards certain clusterings, layouts, or orderings, even for graphs without particularly dense or sparse subgraphs, and thus do not (only) measure quality in the above sense. - For example graphs, the minimization of new, unbiased (or weakly biased) measures reveals nonobvious groups, e.g. communities in social networks, subject areas in hypertexts, or closely interlocked countries in international trade. The second part derives, validates, and unifies dependency-based indicators of software design quality. It applies two quality measures for graph clusterings as measures for the coupling of software subsystems -- specifically for the coupling indicated by common changes and for the coupling indicated by references -- and shows: - The measures quantify the dependency-caused development costs, under well-defined simplifying assumptions. - The minimization of the measures conforms to existing dependency-related design principles (like locality of change, acyclicity of references, and stability of references), design rules, and design patterns. - For example software systems, the incremental minimization of the measures reveals nonobvious design flaws, like the distribution of coherent responsibilities over several subsystems, or references from low-level to high-level subsystems. In summary, this work shows that - simple measures can suffice to capture important aspects of graph clustering quality, graph layout quality, graph ordering quality, and software design quality, and - the optimization of simple measures can suffice to detect nonobvious and often useful structure in various real-world systems.
Today, developers of human-computer interaction increasingly face high expectations regarding the adaptivity of interaction. The World Wide Web is a fitting example for how diverse and 'fickle' the demands on interaction are which users, service providers and even the available technical infrastructure pose. In this thesis, a general framework for the development of interaction for such heterogeneous and dynamic interaction environments is created. The main focus is the provision of abstract constructs which make it possible to specify interaction abstractly, i.e., independently from concrete properties of an individual interaction environment. We then show how such an abstract specification can be used to automatically create human-computer interfaces which - due to the fact that the automatic generation takes the current interaction environment into account - are tailored to the requirements of the current user, technical infrastructure, etc.
In dieser Arbeit werden Ansätze zur Softwareentwicklung auf Objektorientierter Basis im Bereich der Kosten in Hochbauprojekten beschrieben. Die Konzepte der Objektorientierten Technologie zur Softwareentwicklung werden in dieser Arbeit umfassend eingesetzt. Zur Modellierung des Systems wird die Unified Modeling Language (UML) eingesetzt. Die bedeutenden Gesichtspunkte dieser Modellierung sind die Entwicklung des Objektmodells in der Analysephase und deren Verfeinerung in der Entwurfsphase. Dieses Objektmodell bildet die Basis bei der Softwareentwicklung im bereich der Kosten in Hochbauprojekten. Im Rahmen dieser Modellierung werden auch die Aspekte der Soft- und Hardwareverteilung spezifiziert. Ferner werden Konzepte zur Implementierung der Ergebnisse der Modellierung erläutert. Hier wird das Objektmodell des Systems in die Programmiersprache Java übersetzt.
In dieser Arbeit werden neue Ansätze zur meßwertbasierten Qualitätssicherung von Softwareprodukten für praxisrelevante Systemgrößen beschrieben. Dies umfaßt Hilfen zur spezifischen Definition von Qualität, Prozesse zur Qualitätssicherung, Werkzeugunterstützung sowie die Identifikation von Problemen bei der Anwendung vieler bisheriger Softwaremaße. Die pragmatische Anwendung der Meßtheorie erlaubt eine Erweiterung in Form eines auf Ähnlichkeiten zwischen Softwareelementen basierenden generischen Distanzmaßes. Dessen unterschiedliche Instanziierungen ermöglichen die automatische, anpaßbare Gruppierung von Elementen, sowie die ausdrucksstarke, ausschließlich durch Meßwerte bestimmte Softwarevisualisierung. Die ebenfalls in dieser Arbeit wiedergegebene empirische Arbeit, in der die Effizienz und Effektivität dieses Ansatzes mehrfach belegt wird, demonstriert die mögliche Bedeutung der meßwertbasierten Qualitätssicherung bei der Analyse großer Systeme.
Die Arbeit beschäftigt sich mit der Entwicklung eines neuen Strömungs-Simulators. Dabei werden die instationären Navier-Stokes-Gleichungen im inkompressiblen Fall und ohne Energie-Gleichung betrachtet und numerisch in zwei und drei Dimensionen gelöst. Die Frage der Wahl der numerischen Methoden stellt sich zwischen Finite-Volumen- (FVM) und Finite-Elemente-Methode (FEM), die im zweidimensionalen Fall für Delaunay-Triangulierungen und Raumdiskretisierungen niedriger Ordnung verglichen werden. Der Strömungs-Simulator wird nach Prinzipien der generativen Programmierung entwickelt. Sämtliche Daten werden auf statische (vor der Kompilierung bekannte) und dynamische (erst in der Laufzeit bekannte) Daten verteilt. Demzufolge wird ein Simulator in der Kompilierungszeit aus elementaren, wiederverwendbaren Software-Komponenten zusammengestellt. Darüber hinaus werden einige Teilberechnungen mit statischen Daten in der Kompilierungszeit durchgeführt. Damit erreicht man eine hohe Effizienz bezüglich CPU-Zeit und Speicher-Verbrauch. Diese neue Software wurde in der Programmiersprache C++ mit Template-Metaprogrammierung implementiert und wird als Generative Simulation Solver (GSS) bezeichnet.