31 research outputs found
A Pure Embedding of Roles: Exploring 4-dimensional Dispatch for Roles in Structured Contexts
Present-day software systems have to fulfill an increasing number of requirements, which makes them more and more complex. Many systems need to anticipate changing contexts or need to adapt to changing business rules or requirements. The challenge of 21th-century software development will be to cope with these aspects. We believe that the role concept offers a simple way to adapt an object-oriented program to its changing context. In a role-based application, an object plays multiple roles during its lifetime. If the contexts are represented as first-class entities, they provide dynamic views to the object-oriented program, and if a context changes, the dynamic views can be switched easily, and the software system adapts automatically. However, the concepts of roles and dynamic contexts have been discussed for a long time in many areas of computer science. So far, their employment in an existing object-oriented language requires a specific runtime environment. Also, classical object-oriented languages and their runtime systems are not able to cope with essential role-specific features, such as true delegation or dynamic binding of roles. In addition to that, contexts and views seem to be important in software development. The traditional code-oriented approach to software engineering becomes less and less satisfactory. The support for multiple views of a software system scales much better to the needs of todays systems. However, it relies on programming languages to provide roles for the construction of views.
As a solution, this thesis presents an implementation pattern for role-playing objects that does not require a specific runtime system, the SCala ROles Language (SCROLL). Via this library approach, roles are embedded in a statically typed base language as dynamically evolving objects. The approach is pure in the sense that there is no need for an additional compiler or tooling. The implementation pattern is demonstrated on the basis of the Scala language. As technical support from Scala, the pattern requires dynamic mixins, compiler-translated function calls, and implicit conversions. The details how roles are implemented are hidden in a Scala library and therefore transparent to SCROLL programmers. The SCROLL library supports roles embedded in structured contexts. Additionally, a four-dimensional, context-aware dispatch at runtime is presented. It overcomes the subtle ambiguities introduced with the rich semantics of role-playing objects. SCROLL is written in Scala, which blends a modern object-oriented with a functional programming language. The size of the library is below 1400 lines of code so that it can be considered to have minimalistic design and to be easy to maintain. Our approach solves several practical problems arising in the area of dynamical extensibility and adaptation
Position paper: Runtime Model for Role-based Software Systems
In the increasingly dynamic realities of today's software systems, it is no longer feasible to always expect human developers to react to changing environments and changing conditions immediately. Instead, software systems need to be self-aware and autonomously adapt their behavior according to their experiences gathered from their environment. Current research provides role-based modeling as a promising approach to handle the adaptivity and self-awareness within a software system. There are established role-based systems e.g., for application development, persistence, and so on. However, these are isolated approaches using the role-based model on their specific layer and mapping to existing non-role-based layers. We present a global runtime model covering the whole stack of a software system to maintain a global view of the current system state and model the interdependencies between the layers. This facilitates building holistic role-based software systems using the role concept on every single layer to exploit its full potential, particularly adaptivity and self-awareness
Efficient Dispatch of Multi-object Polymorphic Call Sites in Contextual Role-Oriented Programming Languages
Adaptive software becomes more and more important as computing is increasingly context-dependent. Runtime adaptability can be achieved by dynamically selecting and applying context-specific code. Role-oriented programming has been proposed as a paradigm to enable runtime adaptive software by design. Roles change the objects’ behavior at runtime, thus adapting the software to a given context. The cost of adaptivity is however a high runtime overhead stemming from executing compositions of behavior-modifying code. It has been shown that the overhead can be reduced by optimizing dispatch plans at runtime when contexts do not change, but no method exists to reduce the overhead in cases with high context variability. This paper presents a novel approach to implement polymorphic role dispatch, taking advantage of run-time information to effectively guard abstractions and enable reuse even in the presence of variable contexts. The concept of polymorphic inline caches is extended to role invocations. We evaluate the implementation with a benchmark for role-oriented programming languages achieving a geometric mean speedup of 4.0× (3.8× up to 4.5×) with static contexts, and close to no overhead in the case of varying contexts over the current implementation of contextual roles in Object Team
Pure Embedding of Evolving Objects
Scripting languages are extraordinarily popular due to their very flexible object model. Dynamic extensions (i.e., adding, removing and manipulating behavior and state) allow for the evolution and adaption of objects to context changes at runtime. Introducing this flexibility into a statically typed, object-oriented language would improve programmability and separation of concerns beyond the level of what one could usually gain with inheritance, mixins, traits or manually adapted designpatterns. They often lead to object-schizophrenia or the need for hand-crafted, additional management code. Although there were already attempts bringing flexible objects into statically typed languages with the benefits of an explicitly crafted core calculus or type system, they need their own compiler and tooling which limits the usability, e.g., when dealing with existing legacy code. This work presents an embedding of dynamically evolving objects via a lightweight library approach, which is pure in the sense, that there is no need for a specific compiler or tooling. It is written in Scala, which is both a modern object-oriented and functional programming language. Our approach is promising to solve practical problems arising in the area of dynamical extensibility and adaption like role-based programming
Beruf und Einsatz der Absolventen des Instituts fĂĽr EMK
Zusammenfassung:
Das Berufsbild von Ingenieueren läßt sich durch drei Aspekte beschreiben: den Wirtschaftszweig (Branche), das Arbeitsgebiet (technische Sparte) und das Tätigkeitsfeld. Diese Arbeit untersucht das Berufsbild der Absolventen des Instituts für EMK und grenzt für EMK-Ingenieure typische Einsatzbereiche von denen anderer ET-Ingenieure ab. In einer repräsentativen schriftlichen Umfrage äußerten sich 93 Absolventen der Diplomjahrgänge 1982 bis 1992 zu ihrer Berufssituation und beurteilten rückblickend die Ausbildung am Institut für EMK hinsichtlich der Verwendbarkeit in der beruflichen Praxis. Die Umfrage brachte unter anderem folgende Ergebnisse:
a)
Wirtschaftszweige: Etwa 3/4 der befragten Absolventen arbeiten in den Branchen Elektroindustrie, Maschinenbau, KFZ/ Luft- und Raumfahrt sowie Feinmechanik/Optik (nach Häufigkeit angeordnet). In der Besetzung dieser vier Branchen zeigen sich signifikante Unterschiede zu den ET-Ingenieuren im allgemeinen.
b)
Arbeitsgebiete: Die am häufigsten vertretenen Sparten sind Software, Sensorik und Meßgerätetechnik(nach Häufigkeit angeordnet). Hier findet sich ein EMK-typischer Schwerpunkt, der sich mit Meßwertaufnahme und -verarbeitung beschreiben läßt.
c)
Tätigkeitsfelder: Über die Hälfte der befragten EMK-Absolventen sind in den Feldern "Forschung und Entwicklung" tätig.
d)
weitere Fragestellungen: Unter anderem untersucht die Studie noch die Anwendung von Fremdsprachenkenntnissen und die Erfordernis der am Institut vermittelten Tätigkeiten wie Dokumentieren oder Konstruieren in der beruflichen Praxis. Außerdem beurteilen die Absolventen die Ausbildung in den Bereichen Fachkompetenz, Interdisziplinarität und Überfachliches
A Pure Embedding of Roles: Exploring 4-dimensional Dispatch for Roles in Structured Contexts
Present-day software systems have to fulfill an increasing number of requirements, which makes them more and more complex. Many systems need to anticipate changing contexts or need to adapt to changing business rules or requirements. The challenge of 21th-century software development will be to cope with these aspects. We believe that the role concept offers a simple way to adapt an object-oriented program to its changing context. In a role-based application, an object plays multiple roles during its lifetime. If the contexts are represented as first-class entities, they provide dynamic views to the object-oriented program, and if a context changes, the dynamic views can be switched easily, and the software system adapts automatically. However, the concepts of roles and dynamic contexts have been discussed for a long time in many areas of computer science. So far, their employment in an existing object-oriented language requires a specific runtime environment. Also, classical object-oriented languages and their runtime systems are not able to cope with essential role-specific features, such as true delegation or dynamic binding of roles. In addition to that, contexts and views seem to be important in software development. The traditional code-oriented approach to software engineering becomes less and less satisfactory. The support for multiple views of a software system scales much better to the needs of todays systems. However, it relies on programming languages to provide roles for the construction of views.
As a solution, this thesis presents an implementation pattern for role-playing objects that does not require a specific runtime system, the SCala ROles Language (SCROLL). Via this library approach, roles are embedded in a statically typed base language as dynamically evolving objects. The approach is pure in the sense that there is no need for an additional compiler or tooling. The implementation pattern is demonstrated on the basis of the Scala language. As technical support from Scala, the pattern requires dynamic mixins, compiler-translated function calls, and implicit conversions. The details how roles are implemented are hidden in a Scala library and therefore transparent to SCROLL programmers. The SCROLL library supports roles embedded in structured contexts. Additionally, a four-dimensional, context-aware dispatch at runtime is presented. It overcomes the subtle ambiguities introduced with the rich semantics of role-playing objects. SCROLL is written in Scala, which blends a modern object-oriented with a functional programming language. The size of the library is below 1400 lines of code so that it can be considered to have minimalistic design and to be easy to maintain. Our approach solves several practical problems arising in the area of dynamical extensibility and adaptation
Bunkerbrechende Waffen (Earth Penetrators): Einfache Methoden und Modelle zur Berechnung des Eindringvorgangs
Der Bericht befasst sich u.a. mit einfachen auf dem Energiesatz beruhenden Modellen für den Penetrationsvorgang, mit Lösungen der Bewegungsgleichung starrer und plastisch deformierbarer Penetratoren, sowie mit auf U.S. Tests basierenden Ingenieursgleichungen. Für den Eindringprozeß einer Reihe idealisierter Penetratordesigns in unterschiedliche Medien (Erdreich, Fels, Beton) werden die Ergebnisse numerischer Rechnungen dargestellt. Abhängig von Penetratorlänge, -dichte und -impaktgeschwindigkeit sowie von der Targetbeschaffenheit ergeben sich Eindringtiefen von wenigen Metern bis zu über 100 m
A Pure Embedding of Roles: Exploring 4-dimensional Dispatch for Roles in Structured Contexts
Present-day software systems have to fulfill an increasing number of requirements, which makes them more and more complex. Many systems need to anticipate changing contexts or need to adapt to changing business rules or requirements. The challenge of 21th-century software development will be to cope with these aspects. We believe that the role concept offers a simple way to adapt an object-oriented program to its changing context. In a role-based application, an object plays multiple roles during its lifetime. If the contexts are represented as first-class entities, they provide dynamic views to the object-oriented program, and if a context changes, the dynamic views can be switched easily, and the software system adapts automatically. However, the concepts of roles and dynamic contexts have been discussed for a long time in many areas of computer science. So far, their employment in an existing object-oriented language requires a specific runtime environment. Also, classical object-oriented languages and their runtime systems are not able to cope with essential role-specific features, such as true delegation or dynamic binding of roles. In addition to that, contexts and views seem to be important in software development. The traditional code-oriented approach to software engineering becomes less and less satisfactory. The support for multiple views of a software system scales much better to the needs of todays systems. However, it relies on programming languages to provide roles for the construction of views.
As a solution, this thesis presents an implementation pattern for role-playing objects that does not require a specific runtime system, the SCala ROles Language (SCROLL). Via this library approach, roles are embedded in a statically typed base language as dynamically evolving objects. The approach is pure in the sense that there is no need for an additional compiler or tooling. The implementation pattern is demonstrated on the basis of the Scala language. As technical support from Scala, the pattern requires dynamic mixins, compiler-translated function calls, and implicit conversions. The details how roles are implemented are hidden in a Scala library and therefore transparent to SCROLL programmers. The SCROLL library supports roles embedded in structured contexts. Additionally, a four-dimensional, context-aware dispatch at runtime is presented. It overcomes the subtle ambiguities introduced with the rich semantics of role-playing objects. SCROLL is written in Scala, which blends a modern object-oriented with a functional programming language. The size of the library is below 1400 lines of code so that it can be considered to have minimalistic design and to be easy to maintain. Our approach solves several practical problems arising in the area of dynamical extensibility and adaptation
Enabling View-based Programming with SCROLL: Using roles and dynamic dispatch for etablishing view-based programming
Present-day software systems have to fulfill an increasing number of requirements rendering them more and more complex. Many systems need to anticipate changing contexts (self-adaptive systems) or need to adapt to changing business rules or requirements (self-optimizing systems). The challenge of 21th century software development will be to cope with these aspects. We believe that the role concept offers a simple way to adapt object-oriented programs to their changing contexts. In a role-based language, an object plays multiple roles during its lifetime. If the contexts are represented as first-class entities, they provide dynamic views to the object-oriented program, and if the context changes, the dynamic views can be switched easily, and the software system adapts automatically.
However, the concepts of roles and dynamic contexts have been discussed for a long time in many areas of computer science. So far, their implementation in an existing object-oriented language requires a specific runtime environment. Also, classical object-oriented languages and their runtime systems are not able to cope with essential role-specific features, such as true delegation or dynamic binding of roles. As a solution, this work presents a simple implementation pattern for role-based objects that does not require a specific runtime system, SCROLL (SCala ROles Language). The implementation pattern is demonstrated on the basis of the Scala language. As technical support from Scala, the pattern requires dynamic mixins, compiler-translated function calls, and implicit conversions. The implementation details of the pattern are hidden in a Scala library and therefore transparent to Scala programmers. The SCROLL library supports roles embedded in structured contexts, so-called compartments. We show that they are specific, hierarchic runtime views, which enables hierarchic view-based programming for free in Scala.
We also discuss how to apply the implementation pattern of SCROLL for other languages, in particular for behavioral modeling languages in MDSD. This discussion shows that the SCROLL pattern can be embedded into the generated code, so that it still is hidden to the developer, but does not require a specific runtime system. Using the pattern in model-driven code generation enables dynamic views for all kinds of modeling languages. And therefore, this paper shows a way how to realize dynamic views for all modeling languages in MDSD
Representations of reflection and transmission functions of canonical electromagnetic waveforms at a conducting half-space
This paper presents analytical expressions for reflected and transmitted electromagnetic fields if a Delta function pulse impinges on a conductive half-space. These impulse response functions were obtained by analytic continuation of the Fresnel coefficients into the whole complex omega-plane and their Fourier transform back to time domain. From a mathematical point of view, the Fresnel coefficients are double-valued with a branch cut, and it is important for all further considerations to remain on the "physical" Riemann surface. Besides the branch cut no further singularities (e. g. poles) appear on this Riemann surface. All response functions for reflection R(tau) and transmission T(tau) can be represented by sums of two terms. The first term stems from the path integral encircling the branch cut. The second term corresponds to the original wave function reduced by a factor identical with the asymptotic value of the Fresnel coefficient. Other representations of the response function are also given (e. g. in terms of modified Bessel functions, and series expansions), and some examples for the convolution with specific canonical waveforms (unit step function, exponential decay, reciprocal sum of exponentials) in the time domain are presented