Informatik
Refine
Year of publication
- 2009 (5) (remove)
Document Type
- Bachelor Thesis (5) (remove)
Has Fulltext
- yes (5)
Is part of the Bibliography
- no (5)
Keywords
- Haskell 98 (1)
- Lambda-Kalkül (1)
- Nebenläufigkeit (1)
- concurrency (1)
- futures (1)
- haskell (1)
- lambda calculus (1)
- programming languages design (1)
Institute
- Informatik (5)
Trotz eines umfangreichen Angebots an Literatur und Ratgebern im Bereich des Projektmanagements scheitern auch heute noch viele IT-Projekte. Ursache sind oft Probleme im Projektteam oder Fehleinschätzungen in der Planung des Projektes und Überwachung des Projektstatus. Insbesondere durch neue Technologien und Globalisierung entstandene Arbeitsweisen wie das virtuelle Team sind davon betroffen. In dieser Arbeit wird auf die Frage eingegangen, was virtuelle Teams sind und welche Probleme die Arbeit von virtuellen Teams belastet. Dafür werden aktuell existierende Tools aus dem Bereich des Web 2.0 analysiert und aus dem Stand der angebotenen Tools vermeidbare Schwächen der Helfer herausgearbeitet. Anschließend wird ein mittels einer Anforderungsanalyse und eines Konzepts, welches neue Methoden zur Darstellung von Projektstatus und Verknüpfung mit Dokumentation und Kommunikation nutzt, das Tool „TeamVision“ erstellt, welches versucht, virtuelle Teams möglichst effizient zu managenen, Probleme schnell zu erkennen und somit die Arbeit innerhalb des Teams zu beschleunigen. Hierbei wird insbesondere das Ergebnis der Analyse benutzt, dass viele Tools einzelne Verwaltungsaufgaben getrennt durchführen. Informationen müssen vom Nutzer selbst aus den verschiedenen Grafiken, Listen oder anderen Darstellungen gesammelt und selbst assoziiert werden. Die prototypische Implementierung von TeamVision versucht den Informationsfluss beherrschbar zu machen, indem Übersichten in einem Projektbaum zusammengefasst werden, der mittels Zoomfunktionen und visueller Hilfsmitel wie Farbgebung versucht, die Informationsbeschaffung zu erleichtern.
Jede erfolgreiche Software muss in einer geeigneten Art und Weise mit der Person, die sie benutzt, in Verbindung treten. Diese Schnittstelle zwischen Mensch und Maschine ist ein zentraler Baustein in der Softwareentwicklung. Eine noch so mächtige und ausgereifte Software kann ihr Potential nicht ausschöpfen, wenn Probleme und Missverständnisse bei der Kommunikation mit dem Anwender auftreten.
Bei graphischen Benutzeroberflächen erfolgt die Interaktion zwischen Benutzer und technischem System mittels graphischer Symbole, die am Bildschirm dargestellt werden. Die Oberfläche setzt sich aus verschiedenen Menüs und Steuerelementen mit dem Ziel zusammen, die zugrunde liegende Software für den Anwender bedienbar zu machen. Als Eingabegeräte dienen vor allem Maus und Tastatur. Für die Human Computer Interaction oder abgekürzt HCI (Mensch-Computer Interaktion) sind spezielle Normierungen und Anforderungen erstellt worden, die den Entwicklungsprozess unterstützten.
In dieser Arbeit wird eine graphische Benutzeroberfläche für einen Shader Viewer entworfen und implementiert. Beginnend bei ersten Skizzen und Prototypen wird der Entwicklungsprozess bis zur fertigen graphischen Oberfläche dargestellt. Probleme bei der Erstellung werden aufgezeigt und Lösungsstrategien entwickelt. Vor allem spielen Design und Usablity eine entscheidende Rolle. Verschiedene Aspekte und Alternativen, die im Entwicklungsprozess zu beachten sind, werden näher beleuchtet.
Diese Arbeit beschäftigt sich mit der konkreten Erzeugung von 2-3D Visualisierung. Im Fokus steht der notwendige Prozess zur Erzeugung von Computergrafik.
Da die Computergrafik heut zu Tage wichtiger Bestandteil vieler Aufgabengebiete ist, sollte deren Nutzung auch allen Menschen zugänglich sein. In den vergangen Jahren blieb dies meist nur Leuten aus den Fachgebieten vorbehalten, aufgrund der Komplexität und des notwendigen „Know-how“ über die Thematik. Mittlerweile gilt diese Tatsache als überholt. Viele Erneuerung im Bereich von Hardware und Software haben es ermöglicht, dass selbst ungeübte Anwender in der Lage sind, ansehnliche 3D Grafiken an ihren PCs bei der Arbeit oder zu Hause zu erzeugen. Dies soll ebenfalls das Ziel dieser Arbeit sein. Dazu wird in eine Applikation erstellt die die Visualisierung von graphischen Primitiven unter der Verwendug von Microsofts DirectX leicht und schnell ermöglichen soll. Als Basis dient ein Rendering-Framework, welches auf einheitliches Schnittstellenkonzept setzt, um die strikte Trennung zwischen Anwender- und Fachwissen zu vollziehen.
Weitere Schwerpunkte dieser Arbeit liegen im Bereich der Modellierung von graphischen Primtiven und der Nutzung von Shadern. Dazu wird in der Modellierung der Import von archivierten Modellen umgesetzt. Die Nutzung von Shadern soll soweit vereinfacht werden, dass Anwender auf Shader beleibig zugreifen können. Dies soll durch eine Verknüpfung zwischen Shadern und Modellen erfolgen, die ebenfalls im Bereich der Modellierung erfolgt.
Shader zur Bildbearbeitung
(2009)
In den letzten Jahren haben Grafikkarten eine starke Veränderung erfahren. Anfangs war lediglich die Darstellung vorberechneter Primitive möglich, mittlerweile lassen sich Vertex- und Pixelshader komplett frei programmieren. Die Spezialisierung auf den Rendervorgang hat die GPUs (Graphics Processing Units) zu massiv-parallelen Prozessoren wachsen lassen, die unter optimaler Ausnutzung ein Vielfaches der Rechenleistung aktueller CPUs erreichen. Die programmierbaren Shader haben Grafikkarten in der letzten Zeit vermehrt als weiteren Prozessor für General Purpose-Programmierung werden lassen.
Aktuelle Bildbearbeitungsprogramme zeigen, dass sich die Tendenz Richtung GPU bewegt, so wird sich auch in dieser Arbeit die enorme Rechenleistung der GPU für die Bildbearbeitung zu nutzen gemacht. Bildfilter lassen sich als Pixelshader realisieren und ermöglichen so die Ausführung direkt auf der GPU. Das vorgestellte Framework SForge wurde mit dem Ziel entwickelt, zu einem bestehenden Framework kompatibel zu sein. Als bestehendes Framework wurde auf AForge zurückgegriffen. Mit SForge können bestehende und eigene Bildfilter direkt auf der GPU ausgeführt werden, aber auch die Konvertierung von Farbräumen und Farbsystemen wurden realisiert. Das Framework arbeitet floatbasierend. Somit können auch HDR-Daten verarbeitet werden, um beispielsweise Tonemapping anzuwenden. Filter mit Parametern lassen sich über einen optionalen Dialog interaktiv ändern und modifizieren das Resultat in Echtzeit.
Various concurrency primitives had been added to functional programming languages in different ways. In Haskell such a primitive is a MVar, joins are described in JoCaml and AliceML uses futures to provide a concurrent behaviour. Despite these concurrency libraries seem to behave well, their equivalence between each other has not been proven yet. An expressive formal system is needed. In their paper "On proving the equivalence of concurrency primitives", Jan Schwinghammer, David Sabel, Joachim Niehren, and Manfred Schmidt-Schauß define a universal calculus for concurrency primitives known as the typed lambda calculus with futures. There, equivalence of processes had been proved. An encoding of simple one-place buffers had been worked out. This bachelor’s thesis is about encoding more complex concurrency abstractions in the lambda calculus with futures and proving correctness of its operational semantics. Given the new abstractions, we will discuss program equivalence between them. Finally, we present a library written in Haskell that exposes futures and our concurrency abstractions as a proof of concept.