933 resultados para Java.
Resumo:
Object-oriented meta-languages such as MOF or EMOF are often used to specify domain specific languages. However, these meta-languages lack the ability to describe behavior or operational semantics. Several approaches used a subset of Java mixed with OCL as executable meta-languages. In this paper, we report our experience of using Smalltalk as an executable and integrated meta-language. We validated this approach in incrementally building over the last decade, Moose, a meta-described reengineering environment. The reflective capabilities of Smalltalk support a uniform way of letting the base developer focus on his tasks while at the same time allowing him to meta-describe his domain model. The advantage of our this approach is that the developer uses the same tools and environment
Resumo:
Traits are fine-grained components that can be used to compose classes, while avoiding many of the problems of multiple inheritance and mixin-based approaches. Since most implementations of traits have focused on dynamically-typed languages, the question naturally arises, how can one best introduce traits to statically-typed languages, like Java and C#?
Resumo:
Chapter 1 introduces the tools and mechanics necessary for this report. Basic definitions and topics of graph theory which pertain to the report and discussion of automorphic decompositions will be covered in brief detail. An automorphic decomposition D of a graph H by a graph G is a G-decomposition of H such that the intersection of graph (D) @H. H is called the automorhpic host, and G is the automorphic divisor. We seek to find classes of graphs that are automorphic divisors, specifically ones generated cyclically. Chapter 2 discusses the previous work done mainly by Beeler. It also discusses and gives in more detail examples of automorphic decompositions of graphs. Chapter 2 also discusses labelings and their direct relation to cyclic automorphic decompositions. We show basic classes of graphs, such as cycles, that are known to have certain labelings, and show that they also are automorphic divisors. In Chapter 3, we are concerned with 2-regular graphs, in particular rCm, r copies of the m-cycle. We seek to show that rCm has a ρ-labeling, and thus is an automorphic divisor for all r and m. we discuss methods including Skolem type difference sets to create cycle systems and their correlation to automorphic decompositions. In the Appendix, we give classes of graphs known to be graceful and our java code to generate ρ-labelings on rCm.
Resumo:
Many reverse engineering approaches have been developed to analyze software systems written in different languages like C/C++ or Java. These approaches typically rely on a meta-model, that is either specific for the language at hand or language independent (e.g. UML). However, one language that was hardly addressed is Lisp. While at first sight it can be accommodated by current language independent meta-models, Lisp has some unique features (e.g. macros, CLOS entities) that are crucial for reverse engineering Lisp systems. In this paper we propose a suite of new visualizations that reveal the special traits of the Lisp language and thus help in understanding complex Lisp systems. To validate our approach we apply them on several large Lisp case studies, and summarize our experience in terms of a series of recurring visual patterns that we have detected.
Resumo:
Object-oriented modelling languages such as EMOF are often used to specify domain specific meta-models. However, these modelling languages lack the ability to describe behavior or operational semantics. Several approaches have used a subset of Java mixed with OCL as executable meta-languages. In this experience report we show how we use Smalltalk as an executable meta-language in the context of the Moose reengineering environment. We present how we implemented EMOF and its behavioral aspects. Over the last decade we validated this approach through incrementally building a meta-described reengineering environment. Such an approach bridges the gap between a code-oriented view and a meta-model driven one. It avoids the creation of yet another language and reuses the infrastructure and run-time of the underlying implementation language. It offers an uniform way of letting developers focus on their tasks while at the same time allowing them to meta-describe their domain model. The advantage of our approach is that developers use the same tools and environment they use for their regular tasks. Still the approach is not Smalltalk specific but can be applied to language offering an introspective API such as Ruby, Python, CLOS, Java and C#.
Resumo:
Enterprise Applications are complex software systems that manipulate much persistent data and interact with the user through a vast and complex user interface. In particular applications written for the Java 2 Platform, Enterprise Edition (J2EE) are composed using various technologies such as Enterprise Java Beans (EJB) or Java Server Pages (JSP) that in turn rely on languages other than Java, such as XML or SQL. In this heterogeneous context applying existing reverse engineering and quality assurance techniques developed for object-oriented systems is not enough. Because those techniques have been created to measure quality or provide information about one aspect of J2EE applications, they cannot properly measure the quality of the entire system. We intend to devise techniques and metrics to measure quality in J2EE applications considering all their aspects and to aid their evolution. Using software visualization we also intend to inspect to structure of J2EE applications and all other aspects that can be investigate through this technique. In order to do that we also need to create a unified meta-model including all elements composing a J2EE application.
Resumo:
Mainstream IDEs such as Eclipse support developers in managing software projects mainly by offering static views of the source code. Such a static perspective neglects any information about runtime behavior. However, object-oriented programs heavily rely on polymorphism and late-binding, which makes them difficult to understand just based on their static structure. Developers thus resort to debuggers or profilers to study the system's dynamics. However, the information provided by these tools is volatile and hence cannot be exploited to ease the navigation of the source space. In this paper we present an approach to augment the static source perspective with dynamic metrics such as precise runtime type information, or memory and object allocation statistics. Dynamic metrics can leverage the understanding for the behavior and structure of a system. We rely on dynamic data gathering based on aspects to analyze running Java systems. By solving concrete use cases we illustrate how dynamic metrics directly available in the IDE are useful. We also comprehensively report on the efficiency of our approach to gather dynamic metrics.
Resumo:
The IDE used in most Smalltalk dialects such as Pharo, Squeak or Cincom Smalltalk did not evolve significantly over the last years, if not to say decades. For other languages, for instance Java, the available IDEs made tremendous progress as Eclipse or NetBeans illustrate. While the Smalltalk IDE served as an exemplar for many years, other IDEs caught up or even overtook the erstwhile leader in terms of feature-richness, usability, or code navigation facilities. In this paper we first analyze the difficulty of software navigation in the Smalltalk IDE and second illustrate with concrete examples the features we added to the Smalltalk IDE to fill the gap to modern IDEs and to provide novel, improved means to navigate source space. We show that thanks to the agility and dynamics of Smalltalk, we are able to extend and enhance with reasonable effort the Smalltalk IDE to better support software navigation, program comprehension, and software maintenance in general. One such support is the integration of dynamic information into the static source views we are familiar with. Other means include easing the access to static information (for instance by better arranging important packages) or helping developers re-locating artifacts of interest (for example with a categorization system such as smart groups).
Resumo:
Virtual machines (VMs) emulating hardware devices are generally implemented in low-level languages for performance reasons. This results in unmaintainable systems that are difficult to understand. In this paper we report on our experience using the PyPy toolchain to improve the portability and reduce the complexity of whole-system VM implementations. As a case study we implement a VM prototype for a Nintendo Game Boy, called PyGirl, in which the high-level model is separated from low-level VM implementation issues. We shed light on the process of refactoring from a low-level VM implementation in Java to a high-level model in RPython. We show that our whole-system VM written with PyPy is significantly less complex than standard implementations, without substantial loss in performance.
Resumo:
Die optimale Gestaltung logistischer Systeme und Prozesse bekommt eine immer größere Bedeutung für die Wirtschaftlichkeit und Wettbewerbsfähigkeit von Unternehmen. Für Einzelkomponenten von Materi-alflusssystemen sind neben exakten analytischen Verfahren auch Näherungslösungen und Ersatzmodelle in Form von Polynomen, neuronalen Netzen oder zeitdiskreten Verfahren vorhanden, mit denen eine gute Nachbildung des Verhaltens dieser Komponenten möglich ist. Ziel des Baukastensystems ist es, für diese Vielzahl von Methoden mit ihren spezifischen Ein- und Aus-gangsgrößen eine übergeordnete, einheitliche Kommunikations- und Datenschnittstelle zu definieren. In einem grafischen Editor kann ein Modell eines Materialflusssystems aus solchen Bausteinen gebildet und parametriert werden. Durch Verbindungen zwischen den Bausteinen werden Informationen ausge-tauscht. Die Berechnungen der Bausteine liefern Aussagen zu Auslastungen, Warteschlangen bzw. Warte-zeiten vor den Bausteinen sowie Flussgrößen zur Beschreibung der Abgangströme. The optimal arrangement of logistical systems and operations gets an increased importance for the economicalness and competitiveness of enterprises. For individual components of material flow systems there are also existing approximate solutions and substitute models besides exact analytical calculations in the form of polynomials, neural nets or time-discrete analysis which allows a good analytical description of the behaviour of these components. It is aim of the module system to define a superordinate and unified communication and data interface for all of these variety of methods with her specific input and output quantities. By using a graphic editor, the material flow system can be modelled of such components with specified functions and parameters. Connections between the components allows exchange of information. The calculations of the components provide statements concerning utilization, queue size or waiting time ahead of the components as well as parameters for the description of the departure process. Materialflusssysteme sind Träger innerbetrieblicher Transportprozesse und elementarer Bestandteil logistischer Systeme. Die optimale Gestaltung logistischer Systeme und Prozesse bekommt eine immer größere Bedeutung für die Wirtschaftlichkeit und Wettbewerbsfähigkeit von Unternehmen. Die effiziente Dimensionierung von Materialflusssystemen ist für Planer, Hersteller und Betreiber solcher Anlagen von grundsätzlicher Bedeutung. Für viele bei der Planung materialflusstechnischer Anlagen auftretende Fragestellungen steht noch immer kein Berechnungsverfahren oder -werkzeug zur Verfügung, welches allen drei folgenden Anforderungen gleicherma-ßen gerecht wird: Die Handhabung soll einfach, unkompliziert und schnell sein. Die Berechnungsergebnisse sollen eine hohe Genauigkeit haben. Die Berechnung soll allgemein gültige Ergebnisse liefern. Dabei handelt es sich um Fragestellungen, die durchaus grundlegender Natur sind. Beispielsweise nach den (statistisch) zu erwartenden minimalen und maximalen Auftragsdurchlaufzeiten, nach dem Einfluss von Belas-tungsschwankungen auf die Anlagenleistung, nach vorzusehenden Puffern (Stauplätze) und Leistungsreserven (Auslastung). Für die oben genannten Aufgaben der Materialflussplanung stehen heute hauptsächlich drei Verfahren zur Verfügung (Abb. 1): Faustformeln (gekennzeichnet mit f) sind einfach aber ungenau. Das Systemverhalten von Materialfluss-komponenten beschreiben sie selten über den gesamten Bereich möglicher Betriebsbedingungen und Konfi-gurationen. Das Verhalten von gesamten Materialflusssystemen ist zu komplex, als dass es mit Faustformeln adäquat beschreibbar wäre. Bedienungstheoretische Ansätze erlauben die Beschreibung von Materialflusskomponenten (kleines b) sehr genau und sehr umfassend, soweit Standardmethoden und -modelle der Bedienungstheorie anwendbar sind. Ist diese Voraussetzung nicht gegeben, kann der Aufwand zur Modellbildung schnell erheblich werden. Die Beschreibung von Materialflusssystemen (großes B) als Bedienungsnetzwerke ist nur unter (zum Teil stark) vereinfachenden Annahmen möglich. Solche Vereinfachungen gehen zu Lasten von Genauigkeit und All-gemeingültigkeit der Aussagen. Die Methoden sind häufig sehr komplex, ihre Anwendung erfordert vertief-te Kenntnisse in der Statistik und Stochastik. Simulationsuntersuchungen liefern für Materialflusskomponenten (kleines s) und für Materialflusssysteme (großes S) gleichermaßen genaue Aussagen. Der für die Untersuchungen erforderliche Aufwand hängt dabei weit weniger von den Eigenschaften und der Größe des Systems ab, als es bei bedienungstheoretischen An-sätzen der Fall ist. Die Aussagen der Simulation sind nie universell. Sie betreffen immer nur ein System in einer bestimmten Konfiguration. Die Anwendung der Simulation erfordert Spezialsoftware und vertiefte Kenntnisse in der Modellierung und Programmierung. Verfahren, die genaue und allgemein gültige Aussagen über das Verhalten komplexer Materialflusssysteme liefern können, sind insbesondere in der Phase der Angebotserstellung bzw. in der Phase der Grobplanung von besonderer Wichtigkeit. Andererseits sind heute verfügbare Verfahren aber zu kompliziert und damit unwirt-schaftlich. Gerade in der Phase der Systemgrobplanung werden häufig Änderungen in der Struktur des Systems notwendig, welche z.B. beim Einsatz der Simulation zu erheblichem Änderungsaufwand am Modell führt. Oftmals können solche Änderungen nicht schnell genug ausgeführt werden. Damit bleiben in der Praxis oft erhebliche Planungsunsicherheiten bestehen. Der Grundgedanke des Baukastensystems besteht in der Modularisierung von Materialflusssystemen in einzelne Bausteine und Berechnungen zum Verhalten dieser Komponenten. Die betrachteten Module sind Materialfluss-komponenten, die eine bestimmte logistische Funktion in einer konstruktiv bzw. steuerungstechnisch bedingten, definierten Weise ausführen. Das Verhalten einer Komponente wird durch Belastungen (Durchsatz) und techni-sche Parameter (Geschwindigkeit, Schaltzeit o.ä.) beeinflusst und kann durch ein adäquates mathematisches Modell quantifiziert werden. Das offene Baukastensystem soll dabei vor allem einen konzeptionellen Rahmen für die Integration derartiger Modellbausteine bilden. Es umfasst neben der Bausteinmodularisierung die Problematik der Kommunikation zwischen den Bausteinen (Schnittstellen) sowie Möglichkeiten zur Visualisierung von Ergebnissen. Das daraus abgeleitete softwaretechnische Konzept berücksichtigt neben der einheitlichen Integration der zum Teil stark unterschiedlichen Berechnungsverfahren für einzelne Materialflusskomponenten auch einheitliche Definitionen zur Beschreibung von benötigten Eingangsparametern einschließlich der Randbedingungen (Defini-tionsbereich) und Plausibilitätskontrollen sowie zur Ergebnisbereitstellung. Äußerst wichtig war die Zielstellung, das System offen und erweiterbar zu gestalten: Prototypisch wurden zwar einzelne vorliegende Bausteine integ-riert, es ist aber jederzeit möglich, weitere Verfahren in Form eines Bausteines zu implementieren und in das Baukastensystem einzubringen. Die Ergebnisse der Berechnungen für ein einzelnes Element (Output) fließen zugleich als Input in das nachfol-gende Element ein: Genau wie im realen Materialflusssystem durch Aneinanderreihung einzelner fördertechni-scher Elemente der Materialfluss realisiert wird, kommt es im Baukasten durch Verknüpfung der Bausteine zur Übertragung der relevanten Informationen, mit denen der Fluss beschrieben werden kann. Durch die Weitergabe der Ergebnisse kann trotz Modularisierung in einzelne Bausteine das Verhalten eines gesamten Materialflusssys-tems bestimmt werden. Daher sind auch hier einheitliche Festlegungen zu Art und Umfang der Übergabeparame-ter zwischen den Bausteinen erforderlich. Unter einem Baustein soll ein Modell einer Materialflusskomponente verstanden werden, welches das Verhalten dieser Komponente beim Vorliegen bestimmter Belastungen beschreibt. Dieses Verhalten ist insbesondere gekennzeichnet durch Warteschlangen und Wartezeiten, die vor der Komponente entstehen, durch Auslastung (Besetztanteil) der Komponente selbst und durch die Verteilung des zeitlichen Abstand (Variabilität) des die Komponente verlassenden Stroms an Transporteinheiten. Maßgeblich bestimmt wird dieses Verhalten durch Intensität und Variabilität des ankommenden Stroms an Transporteinheiten, durch die Arbeitsweise (z.B. stetig / unstetig, stochastisch / deterministisch) und zeitliche Inanspruchnahme der Komponente sowie durch Steuerungsregeln, mit denen die Reihenfolge (Priorisierung / Vorfahrt) und/oder Dauer der Abarbeitung (z.B. Regalbediengerät mit Strategie „Minimierung des Leerfahrtan-teils“) verändert werden. Im Grunde genommen beinhaltet ein Baustein damit ein mathematisches Modell, das einen oder mehrere an-kommende Ströme von Transporteinheiten in einen oder mehrere abgehende Ströme transformiert (Abb. 2). Derartige Modelle gibt es beispielsweise in Form von Bedienmodellen ([Gnedenko1984], [Fischer1990 u.a.]), zeitdiskreten Modellen ([Arnold2005], [Furmans1992]), künstlichen neuronalen Netzen ([Schulze2000], [Markwardt2003]), Polynomen ([Schulze1998]). Die zu Grunde liegenden Verfahren (analytisch, simulativ, numerisch) unterscheiden sich zwar erheblich, genü-gen aber prinzipiell den genannten Anforderungen. Die Fixierung auf ein mathematisches Modell ist aber nicht hinreichend, vielmehr bedarf es für einen Baustein auch definierter Schnittstellen, mit denen der Informationsaustausch erfolgen kann (Abb. 3). Dazu zählen neben der einheitlichen Bereitstellung von Informationen über die ankommenden und abgehenden Materialströme auch die Berücksichtigung einer individuellen Parametrierung der Bausteine sowie die Möglichkeit zur Interaktion mit dem Bediener (Anordnung, Parametrierung und Visualisierung). Das offene Konzept erlaubt das eigenständige Entwickeln und Aufnehmen neuer Bausteine in den Baukasten. Dazu ergibt sich als weitere Anforderung die einfache Konfigurierbarkeit eines Bausteins hinsichtlich Identifika-tion, Aussehen und Leistungsbeschreibung. An einen Baustein innerhalb des Baukastensystems werden weiter-hin die folgenden Anforderungen gestellt: Jeder Baustein ist eine in sich abgeschlossene Einheit und kann nur über die Ein- und Ausgänge mit seiner Umgebung kommunizieren. Damit ist ausgeschlossen, dass ein Baustein den Zustand eines ande-ren Bausteins beeinflussen kann. Das führt zu den beiden Lokalitätsbedingungen: Es gibt keine �����bergeordnete Steuerung, die in Abhängigkeit vom aktuellen Systemzustand dispositive Entscheidungen (z.B. zur Routenplanung) trifft. Blockierungen in Folge von Warteschlangen haben keine Auswirkungen auf die Funktion an-derer Bausteine. Bausteine beinhalten in sich abgeschlossene Verfahren zur Dimensionierung einer Komponente (Klas-se) des Materialflusssystems (z.B. Einschleusung auf einen Sorter, Drehtisch als Verzweigungselement oder als Eckumsetzer). Dabei werden auf Grund von technischen Parametern, Steuerungsstrategien und Belastungsannahmen (Durchsatz, Zeitverteilungen) Ergebnisse ermittelt. Ergebnisse im Sinne dieses Bausteinkonzepts sind Auslastungen, Warteschlangen bzw. Wartezeiten vor dem Baustein sowie Flussgrößen zur Beschreibung des Abgangstroms. Als Beschreibung eignen sich sowohl einzelne Kennwerte (Mittelwert, Varianz, Quantile) als auch statische Verteilungsfunktionen. Die Lokalitätsbedingungen stellen Einschränkungen in der Anwendbarkeit des Baukastensystems dar: Systeme mit übergeordneten Steuerungsebenen wie Routenplanung oder Leerfahrzeugsteuerung, die Entscheidungen auf Grund der vorhandenen Transportaufträge und des aktuellen Systemzustands treffen (Fahrerlose Transportsys-teme, Elektrohängebahn), können mit dem Baukasten nicht bearbeitet werden. Diese auf Unstetigförderern basierenden Systeme unterscheiden sich aber auch in ihren Einsatzmerkmalen grundlegend von den hier betrach-teten Stetigförderersystemen. Das Problem der Blockierungen vorgelagerter Bereiche durch zu große Warteschlangen kann dagegen bereits mit dem Baukasten betrachtet und zumindest visualisiert werden. Dazu ist den Verbindungen zwischen den Bausteinen eine Kapazität zugeordnet, so dass durch Vergleich mit den berechneten Warteschlangenlängen eine generelle Einschätzung zur Blockierungsgefahr möglich wird: Ist die Streckenkapazität kleiner als die mittlere Warteschlange, muss von einer permanenten Blockierung ausgegangen werden. In diesem Fall kann der vorhergehende Baustein seine gerade in Bearbeitung befindli-che Transporteinheit nach dem Ende der „Bedienung“ nicht sofort abgeben und behindert damit auch seine weiteren ankommenden Transporteinheiten. Für die Transporteinheiten bedeutet das eine Verlustzeit, die auch nicht wieder aufgeholt werden kann, für das gesamte Transportsystem ist von einer Leistungsminde-rung (geringerer Durchsatz, größere Transport- / Durchlaufzeit) auszugehen. Da bei der Berechnung der Bausteine von einer Blockierfreiheit ausgegangen wird, sind die Berechnungser-gebnisse in aller Regel falsch. Ist die Streckenkapazität zwar größer als die mittlere Warteschlange, aber kleiner als beispielsweise das 90%-Quantil der Warteschlange, ist mit teilweisen Blockierungen (in dem Fall mit mehr als 10% Wahr-scheinlichkeit) zu rechnen. Dann tritt der o.g. Effekt nur zeitweise auf. Die Ergebnisse der Berechungen sind dann zumindest für einzelne Bausteine ungenau. In beiden Fällen wird das Problem erkannt und dem Anwender signalisiert. Es wird davon ausgegangen, dass die geplante Funktionalität und Leistungsfähigkeit des Materialflusssystems nur dann gewährleistet ist, wenn keine Blockierungen auftreten. Durch Änderung der Parameter des kritischen Bausteins, aber auch durch Änderung der Materialströme muss daher eine Anpassung vorgenommen werden. Erst bei Vorliegen der Blockierfreiheit ist die Voraussetzung der Lokalität der Berechnungen erfüllt. Die Berechnungsverfahren in den Bausteinen selbst können wegen der Modularisierung (Lokalität) sehr unter-schiedlicher Art sein. Dabei ist es prinzipiell möglich, die einzelnen Ergebnisse eines Bausteins mit verschiede-nen Verfahren zu ermitteln, insbesondere dann, wenn auf Grund eines eingeschränkten Definitionsbereichs der Eingangsparameter die Anwendung eines bestimmten Verfahrens nicht zulässig ist. Bausteine, die einen Materialfluss auf Grund äußerer, nicht aus dem Verhalten des Bausteins resultierende Einflüsse generieren (Quelle) oder verändern (Service-Station), sind durch eine Flussgröße parametriert. Die Flussgröße ist eine statistische Verteilungsfunktion zur Beschreibung der Ankunfts- und Abgangsströme (Zwi-schenankunftszeiten). In der Praxis, insbesondere in der Planungsphase, ist aber eine solche Verteilungsfunktion meist nicht bekannt. Zudem erweist sich das Rechnen mit Verteilungsfunktionen als numerisch aufwändig. Untersuchungen in [Markwardt2003] haben gezeigt, dass eine Parametrisierung als Abstraktion über statistische Verteilungsfunktionen mit gleichen Erwartungswerten, Minima und Streuungen ausreichend genaue Ergebnisse liefert. Daher wird die Flussgröße beschrieben durch die Parameter Ankunftsrate (=Durchsatz), Mindestzeitabstand tmind und Variationskoeffizient c (als Maß für die Variabilität des Stroms). Zur Visualisierung der Ergebnisse kann die dreiparametrige Gammaverteilung zu Grunde gelegt werden, die eine gute Anpassung an reale Prozessverläufe bietet und durch die genannten Parameter eindeutig beschrieben ist: Weitere leistungsbestimmende Größen wie technische Parameter, Zeitbedarfe u.ä. werden als Parametertupel (k) der jeweiligen Klasse zugeordnet. So ist z.B. bei einer Einschleusung auf einen Sorter zu garantieren, dass der Strom auf der Hauptstrecke nicht angehalten wird. Das erfordert bei einer Einschleusung von der Nebenstrecke eine Lücke im Gutstrom auf der Hauptstrecke mit der Länge Mindestabstand und Fördergeschwindigkeit sind Parameter der ankommenden Förderstrecken, demnach ist lediglich die Größe ttr als Transferzeit ein leistungsbestimmender Parameter der Einschleusung. Förderstrecken stellen die Verbindungen zwischen den Bausteinen her und realisieren den eigentlichen Material-fluss durch das System. Die technische Realisierung kann dabei prinzipiell durch verschiedenartige Bauformen von Stetig- und Unstetigförderern erfolgen. Systeme, die aber vollständig auf der Basis von Unstetigförderern arbeiten wie fahrerlose Transportsysteme (FTS) oder Elektrohängebahn (EHB), werden im Rahmen des Baukas-tens nicht betrachtet, weil die Lokalitätsbedingungen nicht gelten und beispielsweise eine übergeordnete Sys-temsteuerung (Fahrzeugdisposition, Leerfahrtoptimierung) einen erheblichen Einfluss auf die Leistungsfähigkeit des Gesamtsystems hat. Förderstrecken im hier verwendeten Sinne sind Rollen-, Ketten-, Bandförderer oder ähnliches, deren maximaler Durchsatz im Wesentlichen durch zwei Parameter bestimmt wird: Fördergeschwindigkeit (vF) und Mindestab-stand zwischen den Transporteinheiten (smind). Der Mindestabstand ergibt sich aus der Länge der Transportein-heit in Transportrichtung (sx) und einem Sicherheitsabstand (s0), der für ein sicheres und gefahrloses Transportie-ren erforderlich ist. Die Mindestzeit tmind,S zwischen zwei Fördereinheiten auf einer Förderstrecke bestimmt sich demnach zu Ist das verbindende Förderelement nicht staufähig (nicht akkumulierend, z.B. Gurtbandförderer), so kann sich der Abstand zwischen den Fördergütern während des Förder- oder Transportvorgangs nicht verändern: Muss das Band angehalten werden, weil eine Abgabe an das nachfolgende Förderelement nicht möglich ist, bleiben alle Einheiten stehen. In diesem Fall ist es also nicht möglich, die Lücken im Transportstrom zu schließen, die bereits bei der Aufgabe auf das Förderelement entstehen. Für die Berechnung der Mindestzeit tmind,S bedeutet das, dass dann auch die Mindestzeit tmind,B des vorhergehenden Bausteins berücksichtigt werden muss. Die Mindestzeit des Streckenelements nach (6) bzw. (7) wird als einer der Parameter der Flussgröße zur Be-schreibung des am nachfolgenden Baustein ankommenden Stroms verwendet. Als Parameter der Förderstrecke werden neben der Fördergeschwindigkeit daher auch Angaben zum Transportgut (Abmessungen, Sicherheitsab-stand, Transportrichtung) benötigt. Es bot sich ferner an, eine Typisierung der Förderstrecken hinsichtlich ihrer technischen Realisierung (Rollenförderer, Kettenförderer, Bandförderer usw. mit zugeordneten Parametern) vorzunehmen, um den Aufwand für die Beschreibung der Förderstrecken gering zu halten. Weitere Parameter der Förderstrecken dienen der Aufnahme der Berechnungsergebnisse von vor- bzw. nachge-lagerten Bausteinen und beinhalten: die Länge der Warteschlange (einzelne Kenngrößen wie Mittelwert, 90%-, 95% bzw. 99%-Quantil oder - falls ermittelbar - als statistische Verteilung) die Wartezeit (ebenfalls Kenngrößen oder statistische Verteilung) die (Strecken-)Auslastung Variationskoeffizient für den Güterstrom Für die Darstellung des Materialflusses in einem System werden jeweils einzelne Materialfluss-Relationen betrachtet. Dabei wird angenommen, dass jede Relation an einer Quelle beginnt, an einer Senke endet, dabei mehrere Materialfluss-Komponenten (Bausteine) durchläuft und über den gesamten Verlauf in seiner Größe (Transportmenge) konstant bleibt. Einziger leistungsbestimmender Parameter einer Materialfluss-Relation ist die Transportmenge. Sie wird als zeitabhängige Größe angegeben und entspricht damit dem Durchsatz. Mindestabstand und Variationskoeffizient werden vom erzeugenden Baustein (Quelle) bestimmt, von den weiteren durchlaufenen Bausteinen verändert und über die Förderstrecken jeweils an den nachfolgenden Baustein übertragen. Die verbindenden Förderstrecken werden mit dem jeweiligen Durchsatz „belastet“. Bei Verbindungen, die von mehreren Relationen benutzt werden, summieren sich die Durchsätze, so dass sich unterschiedliche Strecken- und Bausteinbelastungen ergeben. Im Kontext des Baukastensystems werden Metadaten1 verwendet, um die in einem Baustein enthaltenen Infor-mationen über Anwendung, Verfahren und Restriktionen transparent zu machen. Ziel des Baukastensystems ist es je gerade, einfache und leicht handhabbare Berechnungsmodule für einen breiteren Anwenderkreis zur Verfü-gung zu stellen. Dazu sind Beschreibungen erforderlich, mit denen das Leistungsspektrum, mögliche Ergebnisse und Anwendungs- bzw. Einsatzkriterien dokumentiert werden. Aufgabe der Baustein-Bibliothek ist die Sammlung, Verwaltung und Bereitstellung von Informationen über die vorhandenen Bausteine. Damit soll dem Nutzer die Möglichkeit gegeben werden, für seine konkret benötigte Materialflusskomponente einen geeigneten Baustein zur Abbildung zu finden. Mit der Entwicklung weiterer Bausteine für ähnliche Funktionen, aber unterschiedliche Realisierungen (z. B. Regalbediengerät: einfach- oder doppeltiefe Lagerung, mit oder ohne Schnellläuferzone usw.) wächst die Notwendigkeit, die Einsatz- und Leis-tungsmerkmale des Bausteins in geeigneter Weise zu präsentieren. Die Baustein-Bibliothek enthält demnach eine formalisierte Beschreibung der vorhandenen und verfügbaren Bausteine. Die Informationen sind im Wesentlichen unter dem Aspekt einer einheitlichen Identifikation, Infor-mation, Visualisierung und Implementierung der unterschiedlichen Bausteine zusammengestellt worden. Einige der in der Baustein-Bibliothek enthaltenen Metadaten lassen sich durchaus mehreren Rubriken zuordnen. Identifikation und Information Ein Baustein wird durch eine eindeutige Ident-Nummer fixiert. Daneben geben Informationen zum Autor (Ent-wicklung und/oder Implementierung des Verfahrens) und eine Funktionsbeschreibung eine verbale Auskunft über den Baustein. Zusätzlich ist jeder Baustein einem bestimmten Typ zugeordnet entsprechend der Baustein-Klassifizierung (Bearbeiten, Verzweigen, Zusammenführen usw.), über den die Baustein-Auswahl eingegrenzt werden kann. Visualisierung Die Parameter für die Visualisierung beschreiben die Darstellung des Bausteins innerhalb des Baukastensystems (Form, Farbe, Lage der Ein- und Ausgänge des Bausteins, Icons). Implementierung Der Klassenname verweist auf die Implementierung des Bausteins. Zusätzlich benötigte Programm-Ressourcen (externe Bibliotheken wie *.dll , *.tcl o.ä.) können angegeben werden. Weiterhin sind Bezeichnungen und Erläuterungen der erforderlichen technischen Parameter für den Eingabedialog enthalten. Für die Förderstrecken wird ebenfalls eine formalisierte Beschreibung verwendet. Sie verweist jedoch nicht wie die Baustein-Bibliothek auf Software-Ressourcen, sondern enthält nur eine Reihe technischer Parameter, die für das Übertragungsverhalten der Förderstrecke eine Rolle spielen (Fördergeschwindigkeit, Arbeitsweise akkumu-lierend, Ausrichtung des Transportguts). Die Einträge lassen sich als Musterdatensätze (Template) für die Bau-stein-Verbindungen auffassen, um bestimmte, häufig vorkommende fördertechnische Lösungen diesen Verbin-dungen in einfacher Weise zuordnen zu können. Die Angaben sind aber im konkreten Anwendungsfall änderbar. Angaben zum Transportgut beschränken sich auf die Abmessungen der Transporteinheiten (Länge, Breite) und den erforderlichen Sicherheitsabstand (s0). Als Grundform wird von einer Standard-Euro-Palette (1200x800 mm) ausgegangen, es lassen sich aber auch Güter mit anderen Maßen hinzufügen. Die Angaben zum Transportgut werden in Verbindung mit den Parametern der Förderstrecken (Ausrichtung des Gutes längs oder quer) ausgewertet, so dass sich die jeweiligen Mindestabstände (Gleichung 6 bzw. 7) sowie der maximale Durchsatz Qmax als Grundlage für die Berechnung der Streckenauslastung bestimmen lassen. Das Gesamtkonzept des Baukastensystems ist in Abbildung 4 dargestellt. Es besteht im Wesentlichen aus drei Bereichen: Bausteinerstellung Bausteinverwaltung (Bibliotheken) Baukasten (Benutzeroberfläche) Dabei ist der Bereich der Bausteinerstellung nicht unmittelbarer Bestandteil der realisierten Lösung. Sie ist vielmehr die Quelle für die Bausteine, die über die jeweiligen Metadaten in einer Baustein-Bibliothek verwaltet und bereitgestellt werden. Die Verwaltung von Bausteinen und Förderstrecken ist die Umsetzung der Baustein-Bibliothek und (im erwei-terten Sinne) der Definitionen für die Förderstrecken. Der Modellbaukasten selbst stellt die Grafische Nutzeroberfläche dar (Abb. 11) und enthält den interaktiven, grafischen Modelleditor, die Auswahlelemente (Werkzeugkoffer bzw. -filter) für Bausteine und Förderstrecken, tabellarische Übersichten für alle Bausteine, Förderstrecken und Materialflussrelationen sowie Eingabedialoge für Bausteine, Förderstrecken und Materialflussrelationen. Die Entwicklung eines Modells mit dem Baukastensystem erfolgt prinzipiell in drei Schritten: Schritt eins umfasst die Anordnung und Definition der Bausteine. Der Modellbaukasten bietet die Möglich-keit, einen bestimmten Baustein direkt (z.B. Ausschleusung) oder unter Nutzung eines Bausteinfilters (z.B. alle Verzweigungselemente) auszuwählen und im grafischen Editor mittels Mausklick zu platzieren . An-schließend erfolgt im Dialog die notwendige Parametrierung des Bausteins. Dies beinhaltet sowohl die An-gaben zur Visualisierung (Drehung, Spiegelung) als auch die für die Dimensionierung erforderlichen techni-schen Parameter. Die für jeden Baustein benötigten Leistungsanforderungen (Durchsatz, lokale Transport-matrix) werden allerdings nicht direkt angegeben, sondern aus den Beziehungen zu den vor- und nachgela-gerten Bausteinen automatisch ermittelt (Übertragungsfunktion der Förderstrecken). Danach erfolgt in einem zweiten Schritt die Definition von Verbindung zwischen den Bausteinen (Förder-strecken): Das Erzeugen der Bausteinverbindungen ist ebenfalls ganz einfach zu realisieren. Nach Auswahl der zu Grunde liegenden Fördertechnik (z.B. Rollenförderer) wird durch Ziehen des Mauszeigers von einem nicht belegten Ausgang zu einem nicht belegten Eingang eines Bausteins die entsprechende Förderstrecke erzeugt. In einem abschließenden Dialog können die gewählten Voreinstellungen zum Transportgut, zum Förderertyp usw. bestätigt oder gegebenenfalls korrigiert werden. Außerdem kann die Kapazität der Förder-strecke definiert werden. Dabei geht es weniger um die Länge des Förderers als viel mehr um die Anzahl der vorgesehenen Puffer- oder Stauplätze im Zusammenhang mit den zu berechnenden Warteschlangenlän-gen. Abschließend wird im dritten Schritt der Materialfluss definiert: Ein Materialstrom ist jeweils eine Relation, die an einer Quelle beginnt, an einer Senke endet und dabei mehrere Bausteine durchläuft. Da die Förder-strecken zu diesem Zeitpunkt bereits definiert sein müssen, kann automatisch ein möglicher Weg zwischen Quelle und Senke gefunden werden. Ähnlich wie bei Routenplanungssystemen kann dabei durch zusätzliche Angabe von Zwischenpunkten (via) der automatisch vorgeschlagene Transportweg verändert und angepasst werden (Abb. 5). Nach Bestätigung des Transportweges und damit der unterwegs zu passierenden Bausteine erfolgt in einem Dialog die Parametrierung (Transportmenge pro Stunde) für diese Relation. Die Elemente des Transportweges (die benutzten Förderstrecken) werden mit dem entsprechenden Durchsatz „belastet“. Nach Abschluss der Modellierung kann die Berechnung ausgeführt werden. Im Ergebnis werden Kennzahlen bestimmt und im Baukasten in verschiedener Form visualisiert, um eine Bewertung der Ergebnisse vornehmen zu können. Eine Übersicht Fehlermeldungen listet die Problemelemente auf. Dabei wird die Schwere eines Problems farb-lich hervorgehoben: fataler Fehler (rot): entsteht z.B. bei Überlastung eines Bausteins – die geforderte Leistung für einen Bau-stein (und damit die des Gesamtsystems) kann nicht erbracht werden. lokaler Fehler (orange): entsteht z.B. bei permanenter Blockierung – die mittlere Warteschlange vor einem Baustein ist größer als dessen vorgesehene Kapazität. Warnung (hellgelb): bei teilweiser Blockierung – das 90%-Quantil der Warteschlange ist größer als die Ka-pazität der Förderstrecke, es ist daher zeitweise mit Blockierungen (und damit Behinderungen des vorherge-henden Bausteins) zu rechnen. Information (weiß): wird immer dann erzeugt, wenn Erwartungswerte für die Wartezeit oder Warteschlange mit einem G/G/1-Bedienmodell berechnet werden. Die Lösungen dieser Näherungsgleichungen sind im All-gemeinen nicht sehr genau, dienen aber als Abschätzung für die sonst fehlenden Kennwerte. Entsprechend der berechneten Auslastung werden die Bausteine im Modelleditor mit einer Farbabstufung von Grün nach Rot markiert, Bausteine und Förderstrecken leuchten rot bei Überlastung. Die dargestellten Ergebnisse im Modelleditor zu Bausteinen und Förderstrecken sind umschaltbar durch den Nutzer (Abb. 6). Je nach den in den Bausteinen hinterlegten Berechnungen sind jedoch nicht immer alle Kenn-größen verfügbar. Die Implementierung des Baukastensystems wurde mit Java (Release 1.5) vorgenommen. Für das Kernsystem wird dabei das in Abbildung 7 dargestellte Klassen-Konzept umgesetzt. Ausgehend von einer allgemeinen Klasse (Object3D) für Visualisierung von und Interaktionen mit grafischen Objekten wurden für Bausteine (AbstractNode) und Förderstrecken (Connection) die jeweiligen Klassen abgelei-tet. Für die Förderstecken ergibt sich dabei eine weitgehend einheitliche Beschreibungsform, die lediglich durch die Parametrierung (Vorlagen in der Förderstrecken-Bibliothek als XML-Datei) auf den konkreten Einsatz im Modell des Materialflusssystems angepasst werden muss. Anders verhält es sich mit den Bausteinen: Durch die mögliche Vielfalt von Bausteinen und den ihnen zu Grunde liegenden Berechnungsverfahren muss es auch eine Vielzahl von Klassen geben. Um jedoch für jeden belie-bigen Baustein den Zugriff (Bereitstellung von Eingangsdaten, Berechnung und Bereitstellung der Ergebnisse) in einer identischen Weise zu gewährleisten, muss es dafür eine nach außen einheitliche Schnittstelle geben. Die Java zu Grunde liegende objektorientierte Programmierung bietet mit dem Konzept der „abstrakten Klasse“ eine Möglichkeit, dies in einfacher Weise zu realisieren. Dazu wird mit AbstractNode quasi eine Vorlage entwi-ckelt, von der alle implementierten Baustein-Klassen abgeleitet sind. AbstractNode selbst enthält alle Methoden, mit denen Baustein-Daten übernommen oder übergeben, die jeweiligen Visualisierungen vorgenommen, die baustein-internen Verbindungen (lokale Transportmatrix) verwaltet und Ein- und Ausgänge mit den zugehörigen Förderstrecken verbunden werden. Die für den Aufruf der eigentlichen Berechnungen in den Bausteinen ver-wendeten Methoden sind deklariert, aber nicht implementiert (sogenannte abstrakte Methoden). Ein Baustein wird von AbstractNode abgeleitet und erbt damit die implementierten Methoden, lediglich die abstrakten Methoden, die die Spezifik des Bausteins ausmachen, sind noch zu implementieren. Um neue Bausteine zu erzeugen, wird Unterstützung in Form eines Bildschirmdialogs angeboten (Abb. 8). Danach sind die entsprechenden Angaben zu den Metadaten, zur Struktur und zur Visualisierung des Bausteins, die Eingangsparameter (Name und Erläuterung) sowie die berechenbaren Ergebnisse (z.B. Auslastung, Quantile der Warteschlangenlänge, aber keine Aussage zu Wartezeiten usw.) anzugeben. Nach Bestätigung der Daten und diversen Syntax- bzw. Semantik-Kontrollen wird der Baustein in der Bibliothek registriert, ein Sourcecode für den neuen Baustein generiert und kompiliert. Der Baustein selbst ist damit formal korrekt und kann sofort verwendet werden, liefert aber noch keine verwertbaren Ergebnisse, weil natürlich die Implementierung des Berechnungsverfahrens selbst noch aussteht. Das muss in einem zweiten Schritt im Rah-men der üblichen Software-Entwicklung nachgeholt werden. Dazu sind die Berechnungsverfahren zu implemen-tieren und die Bausteinschnittstellen zu bedienen. Der generierte Java-Code enthält in den Kommentaren eine Reihe von Hinweisen für den Programmierer, so dass sich problemlos die Schnittstellen des Bausteins program-mieren lassen (Abb. 9). In einem Beispiel werden ein Hochregallager (3 Regalbediengeräte) und zwei Kommissionierplätze durch ein Transportsystem verbunden. Mit der Einlastung von Kommissionieraufträgen werden im Simulationsmodell die entsprechenden Transportaufträge generiert und abgearbeitet (Abb. 10). Dabei können Systemzustände (z.B. Warteschlangen) protokolliert und statistisch ausgewertet werden. Ein entsprechendes Modell für den Baukasten ist in Abbildung 11 dargestellt. Der Vorteil des Baukastensystems liegt selbst bei diesem recht einfachen Beispiel im Zeitvorteil: Für Erstellung und Test des Simulationsmodells und anschließende Simulationsläufe und Auswertungen wird ein Zeitaufwand von ca. 4-5 Stunden benötigt, das Baukastenmodell braucht für Erstellung und korrekte Parametrierung weniger als 0,5 Stunden, die Rechenzeit selbst ist vernachlässigbar gering. Sollte im Ergebnis der Untersuchungen eine Änderung des Materialflusssystems notwendig werden, so führt das im Simulationsmodell teilweise zu erheblichen Änderungen (Abläufe, Steuerungsstrategien, Auswertungen) mit entsprechendem Zeitaufwand. Im Baukasten können dagegen in einfacher Weise zusätzliche Bausteine eingefügt oder vorhandene ersetzt werden durch Bausteine mit geänderter Funktion oder Steuerung. Strukturelle Änderungen am Materialflusssys-tem sind also mit deutlich geringerem Aufwand realisierbar. In [Markwardt2003] werden für mehrere Strukturen von Materialflusskomponenten Fehlerbetrachtungen über die Genauigkeit der mittels neuronaler Netze untersuchten Systeme gegenüber den Simulationsergebnissen vorge-nommen. Danach ergibt sich beispielsweise für das 90%-Quantil der Warteschlange eine Abweichung, die mit 90% Sicherheit kleiner als 0,3 Warteplätze ist. Bei den Variationskoeffizienten des Abgangsstroms betragen die absoluten Abweichungen mit 90% Sicherheit nicht mehr als 0,02 bis 0,05 (in Abhängigkeit vom betrachteten Baustein). Daraus wird die Schlussfolgerung abgeleitet, dass die durch Verknüpfung neuronaler Netze gewonne-nen Aussagen sehr gut mit statistischen Ergebnissen diskreter Simulation übereinstimmen und eine Planungssi-cherheit ermöglichen, die für einen Grobentwurf von Materialflusssystemen weit über die heute gebräuchlichen statischen Berechnungsverfahren hinausgehen. Im konkreten Beispiel wurde die Zahl der Pufferplätze vor den Kommissionierern (Work1 bzw. Work2) zu-nächst auf 3 begrenzt. Die Berechnung im Baukasten ergab dabei in beiden Fällen Fehlermeldungen mit dem Hinweis auf Blockierungen (Abb. 12, links). Diese bestätigten sich auch im Simulationsmodell (Abb. 12, rechts). Nach Vergr��ßerung der Pufferstrecken auf 7 Plätze ist die Blockierungsgefahr auf ein vertretbares Minimum reduziert, und die mit dem Baukasten berechneten Kenngrößen können durch die Simulation prinzipiell bestätigt werden. it dem offenen Baukastensystem ist eine schnelle, einfache, sichere und damit wirtschaftlichere Dimensionie-rung von Materialflusssystemen möglich. Für den Anwender sind sofort statistisch abgesicherte und ausreichend genaue Ergebnisse ohne aufwändige Berechnungen verfügbar, womit sich die Planungsqualität erhöht. Besonde-re Anforderungen an Hard- und Software sind dabei nicht erforderlich. Für die Dimensionierung der einzelnen Bausteine stehen Informationen aus der Bedienungstheorie, Simulati-onswissen und numerische Verfahren direkt und anwendungsbereit zur Verfügung. Es erlaubt eine deutlich vereinfachte Berechnung von statistischen Kenngrößen wie Quantile (statistische Obergrenzen) der Pufferbelegung, Auslastung von Einzelelementen und mittlere Auftragsdurchlaufzeit bei gleichzeitig erhöhter Genauigkeit. Ferner ist das Baukastensystem offen für eine Erweiterung um neue Bausteine, die neue oder spezielle fördertechnische Elemente abbilden oder zusätzliche Informationen liefern können. Da auch komplexe Materialflusssysteme immer wieder aus einer begrenzten Anzahl unterschiedlicher Kompo-nenten bestehen, können durch die Verknüpfung der Einzelbausteine auch Gesamtsysteme abgebildet werden. Die Verknüpfung der Bausteine über eine einheitliche Schnittstelle erlaubt Aussagen über das Verhalten der Gesamtanlage. Bei Einsatz des Baukastensystems sind in einer solchen Verknüpfung jederzeit Parameterände-rungen möglich, deren Folgen sofort sichtbar werden. Die Zeit bis zum Vorliegen gesicherter, ausreichend genauer Ergebnisse wird dadurch drastisch verkürzt. Damit erwächst Variantenuntersuchungen bereits in frühen Planungsphasen neues Potential und kann zum entscheidenden Wettbewerbsvorteil werden.
Resumo:
This paper presents our research works in the domain of Collaborative Environments centred on Problem Based Learning (PBL) and taking advantage of existing Electronic Documents. We first present the modelling and engineering problems that we want to address; then we discuss technological issues of such a research particularly the use of OpenUSS and of the Enterprise Java Open Source Architecture (EJOSA) to implement such collaborative PBL environments.
Resumo:
The new goblin spider genus Prethopalpus is restricted to the Australasian tropics, from the lower Himalayan Mountains in Nepal and India to the Malaysian Peninsula, Indonesia, Papua New Guinea, and Australia. Prethopalpus contains those species with a swollen palpal patella, which is one to two times the size of the femur, together with a cymbium and bulb that is usually separated, although it is largely fused in four species. The type species Opopaea fosuma Burger et al. from Sumatra, and Camptoscaphiella infernalis Harvey and Edward from Western Australia are newly transferred to Prethopalpus. The genus consists of 41 species of which 39 are newly described: P. ilam Baehr (♂, ♀) from Nepal; P. khasi Baehr (♂), P. madurai Baehr (♂), P. mahanadi Baehr (♂, ♀), and P. meghalaya Baehr (♂, ♀) from India; P. bali Baehr (♂), P. bellicosus Baehr and Thoma (♂, ♀), P. brunei Baehr (♂, ♀), P. deelemanae Baehr and Thoma (♂), P. java Baehr (♂, ♀), P. kranzae Baehr (♂), P. kropfi Baehr (♂, ♀), P. leuser Baehr (♂, ♀), P. magnocularis Baehr and Thoma (♂), P. pahang Baehr (♂), P. perak Baehr (♂, ♀), P. sabah Baehr (♂, ♀), P. sarawak Baehr (♂), P. schwendingeri Baehr (♂, ♀), and P. utara Baehr (♂, ♀) from Indonesia and Malaysia; and P. alexanderi Baehr and Harvey (♂), P. attenboroughi Baehr and Harvey (♂), P. blosfeldsorum Baehr and Harvey (♂), P. boltoni Baehr and Harvey (♂, ♀), P. callani Baehr and Harvey (♂, ♀), P. cooperi Baehr and Harvey (♂), P. eberhardi Baehr and Harvey (♂, ♀), P. framenaui Baehr and Harvey (♂, ♀), P. humphreysi Baehr and Harvey (♂, ♀), P. kintyre Baehr and Harvey (♂), P. scanloni Baehr and Harvey (♂), P. pearsoni Baehr and Harvey (♂), P. julianneae Baehr and Harvey (♂), P. maini Baehr and Harvey (♂, ♀), P. marionae Baehr and Harvey (♂, ♀), P. platnicki Baehr and Harvey (♂, ♀), P. oneillae Baehr and Harvey (♂), P. rawlinsoni Baehr and Harvey (♂), and P. tropicus Baehr and Harvey (♂, ♀) from Australia and Papua New Guinea. Three separate keys to species from different geographical regions are provided. Most species are recorded from single locations and only three species are more widely distributed. A significant radiation of blind troglobites comprising 14 species living in subterranean ecosystems in Western Australia is discussed. These include several species that lack abdominal scuta, a feature previously used to define subfamilies of Oonopidae.
Resumo:
The MQN-mapplet is a Java application giving access to the structure of small molecules in large databases via color-coded maps of their chemical space. These maps are projections from a 42-dimensional property space defined by 42 integer value descriptors called molecular quantum numbers (MQN), which count different categories of atoms, bonds, polar groups, and topological features and categorize molecules by size, rigidity, and polarity. Despite its simplicity, MQN-space is relevant to biological activities. The MQN-mapplet allows localization of any molecule on the color-coded images, visualization of the molecules, and identification of analogs as neighbors on the MQN-map or in the original 42-dimensional MQN-space. No query molecule is necessary to start the exploration, which may be particularly attractive for nonchemists. To our knowledge, this type of interactive exploration tool is unprecedented for very large databases such as PubChem and GDB-13 (almost one billion molecules). The application is freely available for download at www.gdb.unibe.ch.
Resumo:
Software developers are often unsure of the exact name of the method they need to use to invoke the desired behavior in a given context. This results in a process of searching for the correct method name in documentation, which can be lengthy and distracting to the developer. We can decrease the method search time by enhancing the documentation of a class with the most frequently used methods. Usage frequency data for methods is gathered by analyzing other projects from the same ecosystem - written in the same language and sharing dependencies. We implemented a proof of concept of the approach for Pharo Smalltalk and Java. In Pharo Smalltalk, methods are commonly searched for using a code browser tool called "Nautilus", and in Java using a web browser displaying HTML based documentation - Javadoc. We developed plugins for both browsers and gathered method usage data from open source projects, in order to increase developer productivity by reducing method search time. A small initial evaluation has been conducted showing promising results in improving developer productivity.
Resumo:
Software developers are often unsure of the exact name of the API method they need to use to invoke the desired behavior. Most state-of-the-art documentation browsers present API artefacts in alphabetical order. Albeit easy to implement, alphabetical order does not help much: if the developer knew the name of the required method, he could have just searched for it in the first place. In a context where multiple projects use the same API, and their source code is available, we can improve the API presentation by organizing the elements in the order in which they are more likely to be used by the developer. Usage frequency data for methods is gathered by analyzing other projects from the same ecosystem and this data is used then to improve tools. We present a preliminary study on the potential of this approach to improve the API presentation by reducing the time it takes to find the method that implements a given feature. We also briefly present our experience with two proof-of-concept tools implemented for Smalltalk and Java.