9 research outputs found

    Context-Adaptive Coordination of Pervasive Services by Interpreting Models during Runtime

    Full text link
    [EN] One of the most important goals of pervasive systems is to help users in their daily life by automating their behaviour patterns. To achieve this, pervasive services must be dynamically coordinated, executed and adapted to context according to user behaviour patterns. In this work, we propose a model-driven solution to meet this challenge. We propose a task model and a context ontology to design context-adaptive coordination of services at a high level of abstraction. This design facilitates the coordination analysis at design time and is also reused at runtime. We propose a software architecture that interprets the models at runtime in order to coordinate the service execution that is required to support user behaviour patterns. This coordination is done in a context-adaptive way and decoupled from service implementation. This approach makes the models the only representation of service coordination, which facilitates the maintenance and evolution of the executed service coordination after deployment.This work has been developed with the support of (a) MICINN under the project EVERYWARE TIN2010-18011 and (b) MITYC under the project LIFEWEAR TSI-020400-2010-100 co-funded with ERDF.Serral Asensio, E.; Valderas Aranda, PJ.; Pelechano Ferragud, V. (2013). Context-Adaptive Coordination of Pervasive Services by Interpreting Models during Runtime. Computer Journal. 56(1):87-114. https://doi.org/10.1093/comjnl/bxs019S8711456

    Improving Object-Oriented Programming by Integrating Language Features to Support Immutability

    Get PDF
    Nowadays developers consider Object-Oriented Programming (OOP) the de-facto general programming paradigm. While successful, OOP is not without problems. In 1994, Gamma et al. published a book with a set of 23 design patterns addressing recurring problems found in OOP software. These patterns are well-known in the industry and are taught in universities as part of software engineering curricula. Despite their usefulness in solving recurring problems, these design patterns bring a certain complexity in their implementation. That complexity is influenced by the features available in the implementation language. In this thesis, we want to decrease this complexity by focusing on the problems that design patterns attempt to solve and the language features that can be used to solve them. Thus, we aim to investigate the impact of specific language features on OOP and contribute guidelines to improve OOP language design. We first perform a mapping study to catalogue the language features that have been proposed in the literature to improve design pattern implementations. From those features, we focus on investigating the impact of immutability-related features on OOP. We then perform an exploratory study measuring the impact of introducing immutability in OOP software with the objective of establishing the advantages and drawbacks of using immutability in the context of OOP. Results indicate that immutability may produce more granular and easier-to-understand programs. We also perform an experiment to measure the impact of new language features added into the C\# language for better immutability support. Results show that these specific language features facilitate developers' tasks when aiming to implement immutability in OOP. We finally present a new design pattern aimed at solving a problem with method overriding in the context of immutable hierarchies of objects. We discuss the impact of language features on the implementations of this pattern by comparing these implementations in different programming languages, including Clojure, Java, and Kotlin. Finally, we implement these language features as a language extension to Common Lisp and discuss their usage

    Assessing and improving the quality of model transformations

    Get PDF
    Software is pervading our society more and more and is becoming increasingly complex. At the same time, software quality demands remain at the same, high level. Model-driven engineering (MDE) is a software engineering paradigm that aims at dealing with this increasing software complexity and improving productivity and quality. Models play a pivotal role in MDE. The purpose of using models is to raise the level of abstraction at which software is developed to a level where concepts of the domain in which the software has to be applied, i.e., the target domain, can be expressed e??ectively. For that purpose, domain-speci??c languages (DSLs) are employed. A DSL is a language with a narrow focus, i.e., it is aimed at providing abstractions speci??c to the target domain. This makes that the application of models developed using DSLs is typically restricted to describing concepts existing in that target domain. Reuse of models such that they can be applied for di??erent purposes, e.g., analysis and code generation, is one of the challenges that should be solved by applying MDE. Therefore, model transformations are typically applied to transform domain-speci??c models to other (equivalent) models suitable for di??erent purposes. A model transformation is a mapping from a set of source models to a set of target models de??ned as a set of transformation rules. MDE is gradually being adopted by industry. Since MDE is becoming more and more important, model transformations are becoming more prominent as well. Model transformations are in many ways similar to traditional software artifacts. Therefore, they need to adhere to similar quality standards as well. The central research question discoursed in this thesis is therefore as follows. How can the quality of model transformations be assessed and improved, in particular with respect to development and maintenance? Recall that model transformations facilitate reuse of models in a software development process. We have developed a model transformation that enables reuse of analysis models for code generation. The semantic domains of the source and target language of this model transformation are so far apart that straightforward transformation is impossible, i.e., a semantic gap has to be bridged. To deal with model transformations that have to bridge a semantic gap, the semantics of the source and target language as well as possible additional requirements should be well understood. When bridging a semantic gap is not straightforward, we recommend to address a simpli??ed version of the source metamodel ??rst. Finally, the requirements on the transformation may, if possible, be relaxed to enable automated model transformation. Model transformations that need to transform between models in di??erent semantic domains are expected to be more complex than those that merely transform syntax. The complexity of a model transformation has consequences for its quality. Quality, in general, is a subjective concept. Therefore, quality can be de??ned in di??erent ways. We de??ned it in the context of model transformation. A model transformation can either be considered as a transformation de??nition or as the process of transforming a source model to a target model. Accordingly, model transformation quality can be de??ned in two di??erent ways. The quality of the de??nition is referred to as its internal quality. The quality of the process of transforming a source model to a target model is referred to as its external quality. There are also two ways to assess the quality of a model transformation (both internal and external). It can be assessed directly, i.e., by performing measurements on the transformation de??nition, or indirectly, i.e., by performing measurements in the environment of the model transformation. We mainly focused on direct assessment of internal quality. However, we also addressed external quality and indirect assessment. Given this de??nition of quality in the context of model transformations, techniques can be developed to assess it. Software metrics have been proposed for measuring various kinds of software artifacts. However, hardly any research has been performed on applying metrics for assessing the quality of model transformations. For four model transformation formalisms with di??fferent characteristics, viz., for ASF+SDF, ATL, Xtend, and QVTO, we de??ned sets of metrics for measuring model transformations developed with these formalisms. While these metric sets can be used to indicate bad smells in the code of model transformations, they cannot be used for assessing quality yet. A relation has to be established between the metric sets and attributes of model transformation quality. For two of the aforementioned metric sets, viz., the ones for ASF+SDF and for ATL, we conducted an empirical study aiming at establishing such a relation. From these empirical studies we learned what metrics serve as predictors for di??erent quality attributes of model transformations. Metrics can be used to quickly acquire insights into the characteristics of a model transformation. These insights enable increasing the overall quality of model transformations and thereby also their maintainability. To support maintenance, and also development in a traditional software engineering process, visualization techniques are often employed. For model transformations this appears as a feasible approach as well. Currently, however, there are few visualization techniques available tailored towards analyzing model transformations. One of the most time-consuming processes during software maintenance is acquiring understanding of the software. We expect that this holds for model transformations as well. Therefore, we presented two complementary visualization techniques for facilitating model transformation comprehension. The ??rst-technique is aimed at visualizing the dependencies between the components of a model transformation. The second technique is aimed at analyzing the coverage of the source and target metamodels by a model transformation. The development of the metric sets, and in particular the empirical studies, have led to insights considering the development of model transformations. Also, the proposed visualization techniques are aimed at facilitating the development of model transformations. We applied the insights acquired from the development of the metric sets as well as the visualization techniques in the development of a chain of model transformations that bridges a number of semantic gaps. We chose to solve this transformational problem not with one model transformation, but with a number of smaller model transformations. This should lead to smaller transformations, which are more understandable. The language on which the model transformations are de??ned, was subject to evolution. In particular the coverage visualization proved to be bene??cial for the co-evolution of the model transformations. Summarizing, we de??ned quality in the context of model transformations and addressed the necessity for a methodology to assess it. Therefore, we de??ned metric sets and performed empirical studies to validate whether they serve as predictors for model transformation quality. We also proposed a number of visualizations to increase model transformation comprehension. The acquired insights from developing the metric sets and the empirical studies, as well as the visualization tools, proved to be bene??cial for developing model transformations

    Exploring and categorizing maintainability assurance research for service and microservice-based systems

    Get PDF
    Im Laufe des Softwarelebenszyklus eines Programms innerhalb einer sich stĂ€ndig wechselnden Softwareumgebung ist es wahrscheinlich, dass dieses Programm regelmĂ€ĂŸig gewartet werden muss. Wartungen kosten Geld und somit ist es wichtig, dass ebensolche Wartungen effizient und effektiv durchgefĂŒhrt werden können. Im Laufe der Geschichte der Softwareentwicklung traten unter anderem zwei Architekturmuster hervor: Serviceorientierte Architektur und Microservices. Da diese Architekturmuster ein hohes Maß an Wartbarkeit versprechen, wurden viele Altsysteme hin zu diesen modernen Architekturen migriert. Es kann fatale Folgen fĂŒr Unternehmen haben, wenn Änderungen an einem System nicht schnell, risikofrei und fehlerfrei umgesetzt werden können. Es wurden bereits viele Forschungsarbeiten bezogen auf die Wartbarkeit von serviceorientierter Architektur publiziert. Systeme basierend auf Microservices fanden jedoch, bezogen auf Wartbarkeitssicherung, nicht viel Beachtung. SĂ€mtliche Forschungsarbeiten befinden sich verteilt auf viele Literaturdatenbanken, wodurch ein umfassender Überblick erschwert wird. Um einen solchen Überblick bereitzustellen, fĂŒhrten wir im Rahmen dieser Bachelorarbeit eine systematische Literaturstudie durch, die sich mit der Wartbarkeitssicherung von serviceorienter Architektur und Systemen basierend auf Microservices beschĂ€ftigt. Zur DurchfĂŒhrung dieser systematischen Literaturstudie entwickelten wir eine Reihe von relevanten Forschungsfragen sowie ein striktes Forschungsprotokoll. Aufbauend auf diesem Protokoll sammelten wir insgesamt 223 Forschungsarbeiten von verschiedenen Herausgebern. Diese Arbeiten wurden bezĂŒglich ihres Inhalts zuerst in drei Gruppen von Kategorien unterteilt (architektonisch, thematisch und methodisch). Danach wurden die jeweils relevantesten Forschungsrichtungen aus jeder thematischen Kategorie herausgearbeitet und vorgestellt. Zum Abschluss wurden deutliche Unterschiede der in den Forschungsarbeiten prĂ€sentierten Inhalte in Bezug auf serviceorientierte Architektur und Microservice-basierte Systeme herausgearbeitet und dargestellt. Unsere Ergebnisse zeigten eine deutliche UnterreprĂ€sentation von Forschungsarbeiten zur Wartbarkeitssicherung fĂŒr Microservice-basierte Systeme. WĂ€hrend der Untersuchung der Kategorien konnten wir diverse Forschungsrichtungen innerhalb dieser feststellen. Ein Beispiel hierfĂŒr ist die Forschungsrichtung "change impact in business processes" in der Kategorie "Change Impact and Scenarios". Abschließend konnten wir einige Unterschiede bezogen auf die gesammelten Forschungsarbeiten zwischen Systemen basierend auf einer serviceorientierten Architektur und Systemen basierend auf Microservices feststellen. Ein solcher Unterschied kann zum Beispiel in der Kategorie "Antipatterns and Bad Smells" gefunden werden. Im Vergleich zu Forschungsarbeiten, welche sich auf serviceorientierte Architektur beziehen, beinhalten Forschungsarbeiten im Zusammenhang mit Systemen auf Basis von Microservices nur grundlegende Informationen zu Antipatterns, jedoch keine Herangehensweisen, um diese zu erkennen. Aufgrund unserer Ergebnisse schlagen wir einen stĂ€rkeren Fokus auf Forschung zur Wartbarkeitssicherung in Microservice-basierten Systemen vor. Mögliche zukĂŒnftige Forschungsarbeiten könnten ĂŒberprĂŒfen, ob Herangehensweisen zur Wartbarkeitssicherung von serviceorientierter Architektur auch bei Microservices anwendbar sind. DarĂŒber hinaus schlagen wir die DurchfĂŒhrung von systematischen Literaturstudien vor, welche Themen wie "runtime adaptation", "testing" und "legacy migration" untersuchen, da diese Themen in unserer Literaturstudie ausgeschlossen wurden.It is very likely that software running in an everchanging environment needs to evolve at multiple points during its lifecycle. Because maintenance costs money, it is important for such tasks to be as effective and efficient as possible. During the history of software development service- and microservice-based architectures have emerged among other architectures. Since these architectures promise to provide a high maintainability, many legacy systems are or were migrated towards a service- or microservice-based architecture. In order to keep such systems running, maintenance is inevitable. While a lot of research has been published regarding maintainability assurance for service-based systems, microservice-based systems have not gotten a lot of attention. All published research is spread across several scientific databases which makes it difficult to get an extensive overview of existing work. In order to provide such overview of maintainability assurance regarding service- and microservice-based systems, we conducted a systematic literature review. To support our literature review, we developed a set of meaningful research questions and a rigid research protocol. Based on our protocol we collected a set of 223 different papers. These papers were first categorized into a threefold set of categories (architectural, thematical and methodical). After that, the most relevant research directions from each thematical category were extracted and presented. Lastly, we extracted and presented notable differences between approaches relating to service-oriented architecture or microservice-based systems. Our findings show a clear underrepresentation of maintainability assurance approaches suitable for microservice-based systems. We further discovered that regarding our formed categories, we could find several research directions such as change impact in business processes in "Change Impact and Scenarios". In the end, we could identify some differences between service- and microservice-based systems concerning approaches we retrieved in this thesis. A difference, for example was that in comparison with papers related to service-oriented architecture in "Antipatterns and Bad Smells", microservices related papers only contained basic information on antipatterns, but no approaches to detect them. Due to our findings we suggest a higher participation in research regarding maintainability assurance for microservice-based systems. Possible future work in this area could include further research on the applicability of service-oriented maintainability assurance approaches or techniques in microservice-based systems. Furthermore, future researchers could conduct follow-up literature reviews and investigate topics such as runtime adaptation, testing and legacy migration, since we excluded such topics from this thesis

    Investigations into the model driven design of distribution patterns for web service compositions

    Get PDF
    Increasingly, distributed systems are being used to provide enterprise level solutions with high scalability and fault tolerance These solutins are often built using Web servces that are composed to perform useful business functions Acceptance of these composed systems is often constrained by a number of non-functional properties of the system such as availability, scalability and performance There are a number of drstribution patterns that each exhibit different non-functional charactmstics These patterns are re-occuring distribution schemes that express how a system is to be assembled and subsequently deployed. Traditional approaches to development of Web service compositions exhibit a number of Issues Firstly, Web service composition development is often ad-hoc and requires considerable low level coding effort for realisatlon Such systems often exhibit fixed architectures, making maintenance difficult and error prone Additionally, a number of the non-funchonal reqwements cannot be easily assessed by exammng low level code. In this thesis we explicitly model the compositional aspects of Web service compositions usmg UML Activity diagrams Ths approach uses a modehng and transformation framework, based on Model Dnven Software Development (MDSD), going from high level models to an executable system The framework is guided by a methodological framework whose primary artifact is a distribution pattern model, chosen from the supplied catalog. Our modelling and transfomation framework improves the development process of Web service compositions, with respect to a number of criteria, when compared to the traditional handcrafted approach Specifically, we negate the coding effort traditionally associated with Web service composition development Maintenance overheads of the solution are also slgnificantly reduced, while improved mutability 1s achieved through a flexible architecture when compared with existing tools We also improve the product output from the development process by exposing the non-functional runtime properties of Web service compositlons using distribution patterns

    Location data privacy : principles to practice

    Get PDF
    A thesis submitted in partial fulfillment of the requirements for the degree of Doctor in Information Management, specialization in Geographic Information SystemsLocation data is essential to the provision of relevant and tailored information in location-based services (LBS) but has the potential to reveal sensitive information about users. Unwanted disclosure of location data is associated with various threats known as dataveillance which can lead to risks like loss of control, (continuous) monitoring, identification, and social profiling. Striking a balance between providing a service based on the user’s location while protecting their (location) privacy is thus a key challenge in this area. Although many solutions have been developed to mitigate the data privacy-related threats, the aspects involving users (i.e. User Interfaces (UI)) and the way in which location data management can affects (location) data privacy have not received much attention in the literature. This thesis develops and evaluates approaches to facilitate the design and development of privacy-aware LBS. This work has explicitly focused on three areas: location data management in LBS, the design of UI for LBS, and compliance with (location) data privacy regulation. To address location data management, this thesis proposes modifications to LBS architectures and introduces the concept of temporal and spatial ephemerality as an alternative way to manage location privacy. The modifications include adding two components to the LBS architecture: one component dedicated to the management of decisions regarding collected location data such as applying restriction on the time that the service provider stores the data; and one component for adjusting location data privacy settings for the users of LBS. This thesis then develops a set of UI controls for fine-grained management of location privacy settings based on privacy theory (Westin), privacy by design principles and general UI design principles. Finally, this thesis brings forth a set of guidelines for the design and development of privacy-aware LBS through the analysis of the General Data Protection Regulation (GDPR) and expert recommendations. Service providers, designers, and developers of LBS can benefit from the contributions of this work as the proposed architecture and UI model can help them to recognise and address privacy issues during the LBS development process. The developed guidelines, on the other hand, can be helpful when developers and designers face difficulties understanding (location) data privacy-related regulations. The guidelines include both a list of legal requirements derived from GDPR’s text and expert suggestions for developers and designers of LBS in the process of complying with data privacy regulation

    Formalisierung gestischer Eingabe fĂŒr Multitouch-Systeme

    Get PDF
    Die Mensch-Computer-Interaktion wird dank neuer Eingabemöglichkeiten jenseits von Tastatur und Maus reicher, vielseitiger und intuitiver. Durch den Verzicht auf zusĂ€tzliche GerĂ€te beim Umgang mit Computern geht seitens der Eingabeverarbeitung jedoch eine erhöhte KomplexitĂ€t einher: Die Programmierung gestischer Eingabe fĂŒr Multitouch-Systeme ist in derzeitigen Frameworks abgesehen von den verfĂŒgbaren Standard-Gesten mit hohem Aufwand verbunden. Die entwickelte Gestenformalisierung fĂŒr Multitouch (GeForMT) definiert eine domĂ€nenspezifische Sprache zur Beschreibung von Multitouch-Gesten. Statt wie verwandte FormalisierungsansĂ€tze detaillierte Filter fĂŒr die Rohdaten zu definieren, bedient sich GeForMT eines bildhaften Ansatzes, um Gesten zu beschreiben. Die Konzeption von Gesten wird unterstĂŒtzt, indem beispielsweise in einem frĂŒhen Stadium der Entwicklung Konflikte zwischen Ă€hnlichen Gesten aufgedeckt werden. Die formalisierten Gesten lassen sich direkt in den Code einbetten und vereinfachen damit die Programmierung. Das zugrundeliegende Framework sorgt fĂŒr die Verbindung zu den Algorithmen der Gestenerkennung. Die Übertragung des semiotischen Ansatzes zur Formalisierung auf andere Formen gestischer Eingabe wird abschließend diskutiert.:1 Einleitung 1.1 Motivation 1.2 Zielstellung und Abgrenzung 1.3 Aufbau der Arbeit 2 InterdisziplinĂ€re Grundlagenbetrachtung 2.1 Semiotik 2.1.1 Begriffe und Zeichenklassen 2.1.2 Linguistik 2.1.3 Graphische Semiologie 2.1.4 Formgestaltung und Produktsprache 2.1.5 Interfacegestaltung 2.2 Gestenforschung 2.2.1 Kendons Kontinuum fĂŒr Gesten 2.2.2 Taxonomien 2.2.3 Einordnung 2.3 Gestische Eingabe in der Mensch-Computer-Interaktion 2.3.1 Historische Entwicklung von Ein- und Ausgabetechnologien 2.3.2 Begreifbare Interaktion 2.3.3 DomĂ€nenspezifische Modellierung 2.4 Zusammenfassung 3 Verwandte FormalisierungsansĂ€tze 3.1 RĂ€umliche Gesten 3.1.1 XML-Beschreibung mit der Behaviour Markup Language 3.1.2 Detektornetze in multimodalen Umgebungen 3.1.3 Gestenvektoren zur Annotation von Videos 3.1.4 Vergleich 3.2 Gesten im Sketching 3.2.1 Gestenfunktionen fĂŒr Korrekturzeichen 3.2.2 Sketch Language zur Beschreibung von Skizzen 3.2.3 DomĂ€nenspezifische Skizzen mit LADDER 3.2.4 Vergleich 3.3 FlĂ€chige Gesten 3.3.1 Regelbasierte Definition mit Midas 3.3.2 Gesture Definition Language als Beschreibungssprache 3.3.3 RegulĂ€re AusdrĂŒcke von Proton 3.3.4 Gesture Interface Specification Language 3.3.5 Logische Formeln mit Framous 3.3.6 Gesture Definition Markup Language 3.3.7 Vergleich 3.4 Zusammenfassung 4 Semiotisches Modell zur Formalisierung 4.1 Phasen gestischer Eingabe 4.2 Syntax gestischer Eingabe 4.3 Semantik gestischer Eingabe 4.4 Pragmatik gestischer Eingabe 4.5 Zusammenfassung 5 Gestenformalisierung fĂŒr Multitouch 5.1 Ausgangslage fĂŒr die Konzeption 5.1.1 Ikonographische Einordnung flĂ€chiger Gesten 5.1.2 Voruntersuchung zur Programmierung flĂ€chiger Gesten 5.1.3 Anforderungskatalog fĂŒr die Formalisierung 5.2 Semiotische Analyse flĂ€chiger Gesten 5.2.1 Syntax flĂ€chiger Gesten 5.2.2 Semantik flĂ€chiger Gesten 5.2.3 Pragmatik flĂ€chiger Gesten 5.3 PrĂ€zedenzfĂ€lle fĂŒr die Formalisierung 5.3.1 Geschicklichkeit bei der Multitouch-Interaktion 5.3.2 PrĂ€zision bei flĂ€chigen Gesten 5.3.3 Kooperation in Multitouch-Anwendungen 5.4 Evaluation und Diskussion 5.4.1 Vergleich der Zeichenanzahl 5.4.2 Evaluation der BeschreibungsfĂ€higkeit 5.4.3 Limitierungen und Erweiterungen 6 Referenzarchitektur 6.1 Analyse existierender Multitouch-Frameworks 6.2 Grundlegende Architekturkomponenten 6.2.1 Parser 6.2.2 Datenmodell 6.2.3 Gestenerkennung und Matching 6.2.4 Programmierschnittstelle 6.3 Referenzimplementierung fĂŒr JavaScript 6.3.1 Komponenten der Bibliothek 6.3.2 Praktischer Einsatz 6.3.3 Gesteneditor zur bildhaften Programmierung 7 Praxisbeispiele 7.1 Analyse prototypischer Anwendungen 7.1.1 Workshop zur schöpferischen Zerstörung 7.1.2 Workshop zu semantischen Dimensionen 7.1.3 Vergleich 7.2 Abbildung von Maus-Interaktion auf flĂ€chige Gesten in DelViz 7.2.1 Datengrundlage und Suchkonzept 7.2.2 Silverlight-Implementierung von GeForMT 7.3 FlĂ€chige Gesten im 3D-Framework Bildsprache LiveLab 7.3.1 Komponentenarchitektur 7.3.2 Implementierung von GeForMT mit C++ 7.4 Statistik und Zusammenfassung 8 Weiterentwicklung der Formalisierung 8.1 RĂ€umliche Gesten 8.1.1 Verwandte Arbeiten 8.1.2 Prototypischer Aufbau 8.1.3 Formalisierungsansatz 8.2 Substanzen des Alltags 8.2.1 Verwandte Arbeiten 8.2.2 Experimente mit dem Explore Table 8.2.3 Formalisierungsansatz 8.3 Elastische OberflĂ€chen 8.3.1 Verwandte Arbeiten 8.3.2 Der Prototyp DepthTouch 8.3.3 Formalisierungsansatz 9 Zusammenfassung 9.1 Kapitelzusammenfassungen und BeitrĂ€ge der Arbeit 9.2 Diskussion und Bewertung 9.3 Ausblick und zukĂŒnftige Arbeiten Anhang Vergleichsmaterial FormalisierungsansĂ€tze Fragebogen Nachbefragung Ablaufplan studentischer Workshops Grammatikdefinitionen Statistische Auswertung Gestensets Literatur Webreferenzen Eigene Veröffentlichungen Betreute studentische Arbeiten Abbildungsverzeichnis Tabellen Verzeichnis der Code-Beispiel
    corecore