3,204 research outputs found
Microservices and Machine Learning Algorithms for Adaptive Green Buildings
In recent years, the use of services for Open Systems development has consolidated and strengthened. Advances in the Service Science and Engineering (SSE) community, promoted by the reinforcement of Web Services and Semantic Web technologies and the presence of new Cloud computing techniques, such as the proliferation of microservices solutions, have allowed software architects to experiment and develop new ways of building open and adaptable computer systems at runtime. Home automation, intelligent buildings, robotics, graphical user interfaces are some of the social atmosphere environments suitable in which to apply certain innovative trends. This paper presents a schema for the adaptation of Dynamic Computer Systems (DCS) using interdisciplinary techniques on model-driven engineering, service engineering and soft computing. The proposal manages an orchestrated microservices schema for adapting component-based software architectural systems at runtime. This schema has been developed as a three-layer adaptive transformation process that is supported on a rule-based decision-making service implemented by means of Machine Learning (ML) algorithms. The experimental development was implemented in the Solar Energy Research Center (CIESOL) applying the proposed microservices schema for adapting home architectural atmosphere systems on Green Buildings
Algorithm Diversity for Resilient Systems
Diversity can significantly increase the resilience of systems, by reducing
the prevalence of shared vulnerabilities and making vulnerabilities harder to
exploit. Work on software diversity for security typically creates variants of
a program using low-level code transformations. This paper is the first to
study algorithm diversity for resilience. We first describe how a method based
on high-level invariants and systematic incrementalization can be used to
create algorithm variants. Executing multiple variants in parallel and
comparing their outputs provides greater resilience than executing one variant.
To prevent different parallel schedules from causing variants' behaviors to
diverge, we present a synchronized execution algorithm for DistAlgo, an
extension of Python for high-level, precise, executable specifications of
distributed algorithms. We propose static and dynamic metrics for measuring
diversity. An experimental evaluation of algorithm diversity combined with
implementation-level diversity for several sequential algorithms and
distributed algorithms shows the benefits of algorithm diversity
A unified view of data-intensive flows in business intelligence systems : a survey
Data-intensive flows are central processes in todayâs business intelligence (BI) systems, deploying different technologies to deliver data, from a multitude of data sources, in user-preferred and analysis-ready formats. To meet complex requirements of next generation BI systems, we often need an effective combination of the traditionally batched extract-transform-load (ETL) processes that populate a data warehouse (DW) from integrated data sources, and more real-time and operational data flows that integrate source data at runtime. Both academia and industry thus must have a clear understanding of the foundations of data-intensive flows and the challenges of moving towards next generation BI environments. In this paper we present a survey of todayâs research on data-intensive flows and the related fundamental fields of database theory. The study is based on a proposed set of dimensions describing the important challenges of data-intensive flows in the next generation BI setting. As a result of this survey, we envision an architecture of a system for managing the lifecycle of data-intensive flows. The results further provide a comprehensive understanding of data-intensive flows, recognizing challenges that still are to be addressed, and how the current solutions can be applied for addressing these challenges.Peer ReviewedPostprint (author's final draft
Dynamic reconfiguration of cloud application architectures
[EN] Service-based cloud applications are software systems that continuously evolve to satisfy new user requirements and technological changes. This kind of applications also require elasticity, scalability, and high availability, which means that deployment of new functionalities or architectural adaptations to fulfill service level agreements (SLAs) should be performed while the application is in execution. Dynamic architectural reconfiguration is essential to minimize system disruptions while new or modified services are being integrated into existing cloud applications. Thus, cloud applications should be developed following principles that support dynamic reconfiguration of services, and also tools to automate these reconfigurations at runtime are needed. This paper presents an extension of a model-driven method for dynamic and incremental architecture reconfiguration of cloud services that allows developers to specify new services as software increments, and the tool to generate the implementation code for the services integration logic and the deployment and architectural reconfiguration scripts specific to the cloud environment in which the service will be deployed (e.g., Microsoft Azure). We also report the results of a quasi-experiment that empirically validate our method. It was conducted to evaluate their perceived ease of use, perceived usefulness, and perceived intention to use. The results show that the participants perceive the method to be useful, and they also expressed their intention to use the method in the future. Although further experiments must be carried out to corroborate these results, the method has proven to be a promising architectural reconfiguration process for cloud applications in the context of agile and incremental development processes.This research is supported by the Value@Cloud project (MINECO TIN2013-46300-R), DIUC_XIV_2016_038 project, and the Microsoft Azure Research AwardZĂșñiga-Prieto, MĂ.; Gonzalez-Huerta, J.; Insfran, E.; Abrahao Gonzales, SM. (2018). Dynamic reconfiguration of cloud application architectures. Software Practice and Experience. 48(2):327-344. https://doi.org/10.1002/spe.2457S32734448
Support for collaborative component-based software engineering
Collaborative system composition during design has been poorly supported by traditional CASE tools (which have usually concentrated on supporting individual projects) and almost exclusively focused on static composition. Little support for maintaining large distributed collections of heterogeneous software components across a number of projects has been developed. The CoDEEDS project addresses the collaborative determination, elaboration, and evolution of design spaces that describe both static and dynamic compositions of software components from sources such as component libraries, software service directories, and reuse repositories. The GENESIS project has focussed, in the development of OSCAR, on the creation and maintenance of large software artefact repositories. The most recent extensions are explicitly addressing the provision of cross-project global views of large software collections and historical views of individual artefacts within a collection. The long-term benefits of such support can only be realised if OSCAR and CoDEEDS are widely adopted and steps to facilitate this are described.
This book continues to provide a forum, which a recent book, Software Evolution with UML and XML, started, where expert insights are presented on the subject.
In that book, initial efforts were made to link together three current phenomena: software evolution, UML, and XML. In this book, focus will be on the practical side of linking them, that is, how UML and XML and their related methods/tools can assist software evolution in practice.
Considering that nowadays software starts evolving before it is delivered, an apparent feature for software evolution is that it happens over all stages and over all aspects.
Therefore, all possible techniques should be explored. This book explores techniques based on UML/XML and a combination of them with other techniques (i.e., over all techniques from theory to tools).
Software evolution happens at all stages. Chapters in this book describe that software evolution issues present at stages of software architecturing, modeling/specifying,
assessing, coding, validating, design recovering, program understanding, and reusing.
Software evolution happens in all aspects. Chapters in this book illustrate that software evolution issues are involved in Web application, embedded system, software repository, component-based development, object model, development environment, software metrics, UML use case diagram, system model, Legacy system, safety critical system, user interface, software reuse, evolution management, and variability modeling. Software evolution needs to be facilitated with all possible techniques. Chapters in this book demonstrate techniques, such as formal methods, program transformation,
empirical study, tool development, standardisation, visualisation, to control system changes to meet organisational and business objectives in a cost-effective way. On the journey of the grand challenge posed by software evolution, the journey that we have to make, the contributory authors of this book have already made further
advances
Towards Highly Scalable Runtime Models with History
Advanced systems such as IoT comprise many heterogeneous, interconnected, and
autonomous entities operating in often highly dynamic environments. Due to
their large scale and complexity, large volumes of monitoring data are
generated and need to be stored, retrieved, and mined in a time- and
resource-efficient manner. Architectural self-adaptation automates the control,
orchestration, and operation of such systems. This can only be achieved via
sophisticated decision-making schemes supported by monitoring data that fully
captures the system behavior and its history.
Employing model-driven engineering techniques we propose a highly scalable,
history-aware approach to store and retrieve monitoring data in form of
enriched runtime models. We take advantage of rule-based adaptation where
change events in the system trigger adaptation rules. We first present a scheme
to incrementally check model queries in the form of temporal logic formulas
which represent the conditions of adaptation rules against a runtime model with
history. Then we enhance the model to retain only information that is
temporally relevant to the queries, therefore reducing the accumulation of
information to a required minimum. Finally, we demonstrate the feasibility and
scalability of our approach via experiments on a simulated smart healthcare
system employing a real-world medical guideline.Comment: 8 pages, 4 figures, 15th International Symposium on Software
Engineering for Adaptive and Self-Managing Systems (SEAMS2020
Quantitative Modeling and Verification of Evolving Software
Mit der steigenden Nachfrage nach Innovationen spielt Software in verschiedenenWirtschaftsbereichen
eine wichtige Rolle, wie z.B. in der Automobilindustrie, bei intelligenten Systemen als auch bei Kommunikationssystemen. Daher ist die
QualitĂ€t fĂŒr die Softwareentwicklung von groĂer Bedeutung.
Allerdings Àndern sich die probabilistische Modelle (die QualitÀtsbewertungsmodelle)
angesichts der dynamischen Natur moderner Softwaresysteme. Dies fĂŒhrt dazu,
dass ihre Ăbergangswahrscheinlichkeiten im Laufe der Zeit schwanken, welches zu
erheblichen Problemen fĂŒhrt.
Dahingehend werden probabilistische
Modelle im Hinblick auf ihre Laufzeit kontinuierlich aktualisiert. Eine fortdauernde
Neubewertung komplexer Wahrscheinlichkeitsmodelle ist jedoch teuer. In
letzter Zeit haben sich inkrementelle AnsĂ€tze als vielversprechend fĂŒr die Verifikation
von adaptiven Systemen erwiesen. Trotzdem wurden bei der Bewertung struktureller
Ănderungen im Modell noch keine wesentlichen Verbesserungen erzielt. Wahrscheinlichkeitssysteme
werden als Automaten modelliert, wie
bei Markov-Modellen. Solche Modelle können in
Matrixform dargestellt werden, um die Gleichungen basierend auf ZustÀnden und
Ăbergangswahrscheinlichkeiten zu lösen.
Laufzeitmodelle wie Matrizen sind nicht signifikant,
um die Auswirkungen von ModellverÀnderungen erkennen zu können.
In dieser Arbeit wird ein Framework unter Verwendung stochastischer BĂ€ume mit
regulĂ€ren AusdrĂŒcken entwickelt, welches modular aufgebaut ist und eine aktionshaltige
sowie probabilistische Logik im Kontext der ModellprĂŒfung aufweist. Ein solches
modulares Framework ermöglicht dem Menschen die Entwicklung der Ănderungsoperationen
fĂŒr die inkrementelle Berechnung lokaler Ănderungen, die im Modell auftreten
können. DarĂŒber hinaus werden probabilistische Ănderungsmuster beschrieben,
um eine effiziente inkrementelle Verifizierung, unter Verwendung von BÀumen mit regulÀren
AusdrĂŒcken, anwenden zu können. Durch die Bewertung der Ergebnisse wird
der Vorgang abgeschlossen.Software plays an innovative role in many different domains, such as car industry, autonomous
and smart systems, and communication. Hence, the quality of the software
is of utmost importance and needs to be properly addressed during software evolution.
Several approaches have been developed to evaluate systemsâ quality attributes, such
as reliability, safety, and performance of software. Due to the dynamic nature of modern software systems, probabilistic models representing the quality of the software and their transition probabilities change over time and fluctuate, leading to a significant problem that needs to be solved to obtain correct evaluation results of quantitative
properties. Probabilistic models need to be continually updated at run-time to
solve this issue. However, continuous re-evaluation of complex probabilistic models is
expensive. Recently, incremental approaches have been found to be promising for the
verification of evolving and self-adaptive systems. Nevertheless, substantial improvements
have not yet been achieved for evaluating structural changes in the model.
Probabilistic systems are usually
represented in a matrix form to solve the equations
based on states and transition probabilities. On the other side, evolutionary changes can create
various effects on theese models and force them to re-verify the whole system. Run-time
models, such as matrices or graph representations, lack the expressiveness to identify
the change effect on the model.
In this thesis, we develop a framework using stochastic regular expression trees,
which are modular, with action-based probabilistic logic in the model checking context.
Such a modular framework enables us to develop change operations for the incremental
computation of local changes that can occur in the model. Furthermore, we describe
probabilistic change patterns to apply efficient incremental quantitative verification using
stochastic regular expression trees and evaluate our results
Towards Consistency Management for a Business-Driven Development of SOA
The usage of the Service Oriented Architecture
(SOA) along with the Business Process Management has emerged
as a valuable solution for the complex (business process driven)
system engineering. With a Model Driven Engineering where the
business process models drive the supporting service component
architectures, less effort is gone into the Business/IT alignment
during the initial development activities, and the IT developers
can rapidly proceed with the SOA implementation. However, the
difference between the design principles of the emerging domainspecific
languages imposes serious challenges in the following
re-design phases. Moreover, enabling evolutions on the business
process models while keeping them synchronized with the underlying
software architecture models is of high relevance to the key
elements of any Business Driven Development (BDD). Given a
business process update, this paper introduces an incremental
model transformation approach that propagates this update
to the related service component configurations. It, therefore,
supports the change propagation among heterogenous domainspecific
languages, e.g., the BPMN and the SCA. As a major
contribution, our approach makes model transformation more
tractable to reconfigure system architecture without disrupting its
structural consistency. We propose a synchronizer that provides
the BPMN-to-SCA model synchronization with the help of the
conditional graph rewriting
Adaptive development and maintenance of user-centric software systems
A software system cannot be developed without considering the various facets of its environment. Stakeholders â including the users that play a central role â have their needs, expectations, and perceptions of a system. Organisational and technical aspects of the environment are constantly changing. The ability to adapt a software system and its requirements to its environment throughout its
full lifecycle is of paramount importance in a constantly changing environment. The continuous involvement of users is as important as the constant evaluation of the system and the observation of evolving environments. We present a methodology for adaptive software systems development and
maintenance. We draw upon a diverse range of accepted methods including participatory design, software architecture, and evolutionary design. Our focus is on user-centred software systems
- âŠ