31 research outputs found
A knowledge based reengineering approach via ontology and description logic.
Traditional software reengineering often involves a great deal of manual effort by software maintainers. This is time consuming and error prone. Due to the knowledge intensive properties of software reengineering, a knowledge-based solution is proposed in this thesis to semi-automate some of this manual effort. This thesis aims to explore the principle research question: “How can software systems be described by knowledge representation techniques in order to semi-automate the manual effort in software reengineering?”
The underlying research procedure of this thesis is scientific method, which consists of: observation, proposition, test and conclusion. Ontology and description logic are employed to model and represent the knowledge in different software systems, which is integrated with domain knowledge. Model transformation is used to support ontology development. Description logic is used to implement ontology mapping algorithms, in which the problem of detecting semantic relationships is converted into the problem of deducing the satisfiability of logical formulae. Operating system ontology has been built with a top-down approach, and it was deployed to support platform specific software migration [132] and portable software development [18]. Data-dominant software ontology has been built via a bottom-up approach, and it was deployed to support program comprehension [131] and modularisation [130].
This thesis suggests that software systems can be represented by ontology and description logic. Consequently, it will help in semi-automating some of the manual tasks in software reengineering. However, there are also limitations: bottom-up ontology development may sacrifice some complexity of systems; top-down ontology development may become time consuming and complicated. In terms of future work, a greater number of diverse software system categories could be involved and different software system knowledge could be explored
Automatic Extraction and Assessment of Entities from the Web
The search for information about entities, such as people or movies, plays an increasingly important role on the Web. This information is still scattered across many Web pages, making it more time consuming for a user to find all relevant information about an entity. This thesis describes techniques to extract entities and information about these entities from the Web, such as facts, opinions, questions and answers, interactive multimedia objects, and events. The findings of this thesis are that it is possible to create a large knowledge base automatically using a manually-crafted ontology. The precision of the extracted information was found to be between 75–90 % (facts and entities respectively) after using assessment algorithms. The algorithms from this thesis can be used to create such a knowledge base, which can be used in various research fields, such as question answering, named entity recognition, and information retrieval
EG-ICE 2021 Workshop on Intelligent Computing in Engineering
The 28th EG-ICE International Workshop 2021 brings together international experts working at the interface between advanced computing and modern engineering challenges. Many engineering tasks require open-world resolutions to support multi-actor collaboration, coping with approximate models, providing effective engineer-computer interaction, search in multi-dimensional solution spaces, accommodating uncertainty, including specialist domain knowledge, performing sensor-data interpretation and dealing with incomplete knowledge. While results from computer science provide much initial support for resolution, adaptation is unavoidable and most importantly, feedback from addressing engineering challenges drives fundamental computer-science research. Competence and knowledge transfer goes both ways
Automated Coevolution of Source Code and Software Architecture Models
This work introduces a novel approach to keep high-level component-based architecture models consistent with source code during software development and software evolution. The approach helps to avoid architecture drift and architecture erosion, which are two well-known problems that can arise during development and maintenance of a software system. In particular, the presented approach can be used to keep instances of the Palladio Component Model (PCM) consistent with Java source code
Automated Coevolution of Source Code and Software Architecture Models
Zur Entwicklung komplexer Softwaresysteme, werden neben dem Quelltext zusätzliche Artefakte, wie beispielsweise Architekturmodelle, verwendet. Wenn die verwendeten Architekturmodelle während der Entwicklung und Evolution eines Softwaresystems konsistent mit dem Quelltext sind, können Softwarearchitekten und Softwareentwickler bei der Entwicklung der Systeme besser unterstützt werden. Architekturmodelle, die auf dem aktuellem Stand sind, vereinfachen Entwicklungs- und Evolutionssaufgaben, da einfacher beantwortet werden kann wie und wo neue Funktionen implementiert werden sollen. Außerdem ist es möglich, modellbasierte Analysen mit Hilfe der Softwarearchitekturmodelle vorzunehmen. Beispielsweise können mit dem Palladio Komponentenmodell (PCM) Performanzvorhersagen durchgeführt werden, wenn ein Architekturmodell des Softwaresystems vorhanden ist und dieses Verhaltensspezifikationen beinhaltet.
Wenn Architekturmodelle bei der Softwareentwicklung und Softwareevolution verwendet werden, können die beiden bekannten Probleme Architekturdrift und Architekturverletzung auftreten. Diese Probleme treten für gewöhnlich auf, wenn bei voranschreitender Entwicklung des Quelltextes die Architektur nicht konsistent zu diesem gehalten wird. Dies führt zu veralteten und schlussendlich nutzlosen Architekturmodellen. Viele existierende Ansätze, zur Vermeidung dieser Probleme, zielen darauf ab, Quelltext und UML-Klassendiagramme konsistent zu halten, oder sie zielen darauf ab, Architekturinformationen in den Quelltext einzubetten. In letzterem Fall wird die Notwendigkeit, die Architektur konsistent mit dem Quelltext zu halten, umgangen, da die Architektur integraler Bestandteil des Quelltextes ist. In der vorliegenden Dissertation beschreiben wir einen neuen Ansatz, um komponentenbasierte Architekturmodelle, welche sich auf einer hohen Abstraktionsebene befinden, konsistent mit dem Quelltext zu halten. Wir beschreiben, wie Instanzen des PCMs konsistent mit Java-Quelltext gehalten werden können. Um Konsistenz zu erreichen, werden Architekturelemente erzeugt, gelöscht oder geändert, sobald ihre entsprechende Quelltextelemente geändert wurden, und umgekehrt. Für die Umsetzung der Konsistenzerhaltung stellen wir einen änderungsgetriebenen Ansatz vor. Dieser verwendet benutzerdefinierte, änderungsgetriebene Abbildungsregeln, um die Konsistenz zwischen den beteiligten Modellen sicherzustellen.
In dieser Dissertation stellen wir vier konkrete Mengen von Abbildungsregeln zwischen Architekturmodellen und Quelltext vor. Diese haben wir in einer prototypischen Implementierung des Ansatzes umgesetzt. Wir stellen außerdem einen Mechanismus vor, der mit den Benutzern des Konsistenzerhaltungsansatzes interagiert, wenn die Konsistenz nicht automatisch erhalten werden kann, sondern die Benutzer zuerst ihre Intention, die sie mit einer bestimmten Änderung verfolgen, dem Ansatz mitteilen müssen. In diesem Fall müssen die Benutzer das genaue Vorgehen für die Konsistenzerhaltung spezifizieren. Da der vorgestellte Ansatz änderungsgetrieben funktioniert, ist es notwendig, dass wir alle Änderungen in den beteiligten Architektur- und Quelltexteditoren aufzeichnen können. Um es Benutzern zu erlauben, vorhandene Editoren, mit denen sie sich auskennen, wiederverwenden zu können, haben wir Beobachter für diese Editoren implementiert. Diese Beobachter zeichnen alle Änderungen an einem Modell auf und informieren unseren Ansatz über jede durchgeführte Änderung. Der in dieser Dissertation vorgestellte Ansatz erlaubt es auch, verhaltensbeschreibende Architekturmodelle konsistent mit dem Quelltext zu halten. Um dies zu erreichen, haben wir einen Ansatz implementiert, der es ermöglicht, Service Effect Specifications des PCMs inkrementell aus Methoden zu erstellen, nachdem diese geändert wurden. Die Service Effect Specifications werden innerhalb des PCMs genutzt, um das Verhalten einer Komponente zu spezifizieren. Um bereits bestehende Architekturmodelle und bestehenden Quelltext innerhalb unseres Ansatzes verwenden zu können, stellen wir je eine Integrationsstrategie für die Architektur und den Quelltext vor. Um bestehende Architekturmodelle zu integrieren, simulieren wir deren Erstellung. Während dieses Erstellvorgangs zeichnen wir die Änderungen auf, die nötig sind, um das Architekturmodell zu erstellen. Diese Änderungen werden als Eingabe für den Konsistenzerhaltungsprozess verwendet, um daraus den entsprechenden Quelltext zu erzeugen. Um vorhandenen Quelltext einzubinden, stellen wir einen Ansatz vor, der auf Architekturrekonstruktionsverfahren basiert, d.h., zuerst wird die Architektur eines bestehenden Softwaresystems rekonstruiert. Die erstellte Architektur wird anschließend zusammen mit dem bestehenden Quelltext in unseren Coevolutionsansatz integriert. Oftmals ist bestehender Quelltext jedoch nicht so aufgebaut, wie es die Abbildungsregeln vorschreiben. Innerhalb der Integrationsstrategie für Quelltext stellen wir deshalb einen Ansatz vor, der in der Lage ist, solche Quelltexte dennoch zu integrieren. Dieser Ansatz ermöglicht es, nicht nur diese Art von Quelltext zu integrieren, sondern diesen auch mit speziell definierten Abbildungsregeln automatisch konsistent zu halten.
Wir haben unseren Ansatz in verschiedenen Fallstudien evaluiert. Dabei haben wir zunächst gezeigt, dass es möglich ist vorhandene Architekturmodelle zu integrieren, indem ihr Aufbau simuliert wird. In der durchgeführten Fallstudie ist es mit unserem Ansatz und den vorgestellten Abbildungsregeln möglich, zwischen 98% und 100% der unterstützten Elemente zu integrieren. Als nächstes haben wir gezeigt, dass unser Ansatz in der Lage ist, existierenden Quelltext zu integrieren und Änderungen am integrierten Quelltext konsistent mit der Architektur zu halten. Für diese Fallstudie haben wir zunächst den Quelltext von vier quelloffenen Projekten in den Ansatz integriert. Als nächstes haben wir gezeigt, dass es möglich ist, Änderungen am Quelltext konsistent mit der Architektur zu halten. Dazu haben wir eine alte Version des Quelltextes integriert und Änderungen die zwischen einer alten und neueren Version durchgeführt wurden, aus einem Versionskontrollsystem extrahiert und erneut auf den Quelltext angewendet. Im Rahmen dieser Evaluation haben wir auch gezeigt, dass es möglich ist Änderungen, die innerhalb von Methoden durchgeführt werden, mit einem Verhaltensmodell konsistent zu halten. Wir haben außerdem eine Evaluation der Leistungsfähigkeit unseres Ansatzes durchgeführt und gezeigt, dass unser Ansatz in den meisten Fällen in der Lage ist, die Architektur in einer Zeit zwischen einer und fünf Sekunden konsistent zu halten, nachdem eine Änderung am Quelltext durchgeführt wurde. Als letztes haben wir gezeigt, dass es möglich ist, coevolvierte Modelle für die Performanzvorhersage zu verwenden. Dazu haben wir zuerst die Modelle in einem Parametrisierungsschritt mit den nötigen Ressourcenverbräuchen angereichert. Als nächstes konnten wir die Performanzvorhersage durchführen. In unserer Fallstudie zeigte sich, dass der Vorhersagefehler für die Antwortzeit eines Systems bei ca. 10% liegt, und damit die coevolvierten Modelle für die Abschätzung der Performanz eines realen Systems verwendet werden können
EG-ICE 2021 Workshop on Intelligent Computing in Engineering
The 28th EG-ICE International Workshop 2021 brings together international experts working at the interface between advanced computing and modern engineering challenges. Many engineering tasks require open-world resolutions to support multi-actor collaboration, coping with approximate models, providing effective engineer-computer interaction, search in multi-dimensional solution spaces, accommodating uncertainty, including specialist domain knowledge, performing sensor-data interpretation and dealing with incomplete knowledge. While results from computer science provide much initial support for resolution, adaptation is unavoidable and most importantly, feedback from addressing engineering challenges drives fundamental computer-science research. Competence and knowledge transfer goes both ways
Quality Goal Oriented Architectural Design and Traceability for Evolvable Software Systems
Softwaresysteme werden heute z.B. aufgrund sich ändernder Geschäftsprozesse
oder Technologien mit häufigen Veränderungen konfrontiert. Die Software und
speziell ihre Architektur muss diese Änderungen zur dauerhaften Nutzbarkeit
ermöglichen.Während der Software-Evolution können Änderungen zu einer
Verschlechterung der Architektur führen, der Architekturerosion. Dies
erschwert oder verhindert weitere Änderungen wegen Inkonsistenz oder
fehlendem Programmverstehen. Zur Erosionsvermeidung müssen Qualitätsziele
wie Weiterentwickelbarkeit, Performanz oder Usability sowie die
Nachvollziehbarkeit von Architekturentwurfsentscheidungen berücksichtigt
werden. Dies wird jedoch oft vernachlässigt.Existierende Entwurfsmethoden
unterstützen den Übergang von Qualitätzielen zu geeigneten
Architekturlösungen nur unzureichend aufgrund einer Lücke zwischen Methoden
des Requirements Engineering und des Architekturentwurfs. Insbesondere gilt
dies für Weiterentwickelbarkeit und die Nachvollziehbarkeit von
Entwurfsentscheidungen durch explizite Modellabhängigkeiten.Diese Arbeit
präsentiert ein neues Konzept, genannt Goal Solution Scheme, das
Qualitätsziele über Architekturprinzipien auf Lösungsinstrumente durch
explizite Abhängigkeiten abbildet. Es hilft somit, Architekturlösungen
entsprechend ihrem Einfluss auf Qualitätsziele auszuwählen. Das Schema wird
speziell hinsichtlich Weiterentwickelbarkeit diskutiert und ist in ein
zielorientiertes Vorgehen eingebettet, das etablierte Methoden und Konzepte
des Requirements Engineering und Architekturentwurfs verbessert und
integriert. Dies wird ergänzt durch ein Traceability-Konzept, welches einen
regelbasierten Ansatz mit Techniken des Information Retrieval verbindet.
Dies ermöglicht eine (halb-) automatische Erstellung von Traceability Links
mit spezifischen Linktypen und Attributen für eine reichhaltige Semantik
sowie mit hoher Genauigkeit und Trefferquote.Die Realisierbarkeit des
Ansatzes wird an einer Fallstudie einer Software für mobile Serviceroboter
gezeigt. Das Werkzeug EMFTrace wurde als eine erweiterbare Plattform
basierend auf Eclipse-Technologie implementiert, um die Anwendbarkeit der
Konzepte zu zeigen. Es integriert Entwurfsmodelle von externen CASE-Tools
mittels XML-Technologie in einem gemeinsamen Modell-Repository, wendet
Regeln zur Linkerstellung an und bietet Validierungsfunktionen für Regeln
und Links.Today software systems are frequently faced with demands for changes, for
example, due to changing business processes or technologies. The software
and especially its architecture has to cope with those frequent changes to
permanently remain usable.During software evolution changes can lead to a
deterioration of the structure of software architectures called
architectural erosion, which hampers or even inhibits further changes
because of inconsistencies or lacking program comprehension. To support
changes and avoid erosion, especially quality goals, such as evolvability,
performance, or usability, and the traceability of design decisions have to
be considered during architectural design. This however often is
neglected.Existing design methods do not sufficiently support the
transition from the quality goals to appropriate architectural solutions
because there is still a gap between requirements engineering and
architectural design methods. Particularly support is lacking for the goal
evolvability and for the traceability of design decisions by explicit model
dependencies.This thesis presents a new concept called Goal Solution
Scheme, which provides a mapping from goals via architectural principles to
solution instruments by explicit dependencies. Thus it helps to select
appropriate architectural solutions according to their influence on quality
goals. The scheme is discussed especially regarding evolvability, and it is
embedded in a goal-oriented architectural design method, which enhances and
integrates established methods and concepts from requirements engineering
as well as architectural design. This is supplemented by a traceability
concept, which combines a rule-based approach with information retrieval
techniques for a (semi-) automated establishment of links with specific
link types and attributes for rich semantics and a high precision and
recall.The feasibility of the design approach has been evaluated in a case
study of a software platform for mobile robots. A prototype tool suite
called EMFTrace was implemented as an extensible platform based on Eclipse
technology to show the practicability of the thesis' concept. It integrates
design models from external CASE tools in a joint model repository by means
of XML technology, applies rules for link establishment, and provides
validation capabilities for rules and links
From legal contracts to smart contracts and back again: Towards an automated approach
Blockchain smart contracts, programs with the potential to automate transactions and beyond, have gained tremendous popularity over the past years. Central to the original of smart contracts is that every computable clause of a contract or agreement is encoded into arbitrary computer logic with the aim of coding this logic into computer programs, and let the program decide and execute what happens during the contract's life span. The term smart legal contract has been coined to describe smart contracts that aim to capture legally binding agreements between parties. This dissertation presents a method to facilitate the creation of smart legal contracts that constitute a legally binding contract and that can (partially) self-enforce their terms and conditions within that contract, regardless of the blockchain platform. Understanding how blockchain technology works is pivotal to grapple the ramifications of this choice for smart contracts. Chapter 2 presents an overview of the literature on blockchain to delineate architectural perspectives on the technology, and to define its properties. Finally, the chapter points out the current challenges for the technology and gaps in literature. In Chapter 3, a background on smart contracts will be provided using a motivational example. Chapter 4 expounds the research methodology, the research paradigm adopted for the research, and the philosophy underpinning the method called Model Driven Architecture. Following, in Chapter 5 a domain model for smart legal contracts is presented. The chapter demonstrates how the contents of a legal contract could be captured in a model using a motivational example. Chapter 6 is devoted to describing the models that can be employed to write smart contracts. The chapter presents a platform specific model for the Ethereum and Hyperledger Fabric blockchain platforms. A platform agnostic model for blockchain technology is thereafter presented that captures the commonalities between these platforms. Chapter 7 discusses how the main research question is addressed. Derived from the insights of the discussion some opportunities for future research are discussed. Finally, Chapter 8 concludes the dissertation
Combining SOA and BPM Technologies for Cross-System Process Automation
This paper summarizes the results of an industry case study that introduced a cross-system business process automation solution based on a combination of SOA and BPM standard technologies (i.e., BPMN, BPEL, WSDL). Besides discussing major weaknesses of the existing, custom-built, solution and comparing them against experiences with the developed prototype, the paper presents a course of action for transforming the current solution into the proposed solution. This includes a general approach, consisting of four distinct steps, as well as specific action items that are to be performed for every step. The discussion also covers language and tool support and challenges arising from the transformation