Modern cloud computing environments support a relatively high degree of automation in service provisioning, which allows cloud service customers (CSCs) to dynamically acquire services required for deploying cloud applications. Cloud modeling languages (CMLs) have been proposed to address the diversity of features provided by cloud computing environments and support different application scenarios, such as migrating existing applications to the cloud, developing new cloud applications, or optimizing them. There is, however, still much debate in the research community on what a CML is, and what aspects of a cloud application and its target cloud computing environment should be modeled by a CML. Furthermore, the distinction between CMLs on a fine-grain level exposing their modeling concepts is rarely made. In this article, we investigate the diverse features currently provided by existing CMLs. We classify and compare them according to a common framework with the goal to support CSCs in selecting the CML that fits the needs of their application scenario and setting. As a result, not only features of existing CMLs are pointed out for which extensive support is already provided but also in which existing CMLs are deficient, thereby suggesting a research agenda.
As cloud computing allows improving the quality of software and aims at reducing costs of operating software, more and more software is delivered as a service. However, moving from a software as a product strategy to delivering software as a service hosted in cloud environments is very ambitious. This is due to the fact that managing software modernization is still a major challenge; especially when paradigm shifts, such as moving to cloud environments, are targeted that imply fundamental changes to how software is modernized, delivered, and sold. Thus, in addition to technical aspects, business aspects need also to be considered. ARTIST proposes a comprehensive software modernization approach covering business and technical aspects. In particular, ARTIST employs Model-Driven Engineering (MDE) techniques to automate the reverse engineering of legacy software and forward engineering of cloud-based software in a way that modernized software truly benefits from targeted cloud environments. Therewith, ARTIST aims at reducing the risks, time, and costs of software modernization and lowers the barriers to exploit cloud computing capabilities and new business models.
Model transformation is a key technique to automate software engineering tasks, such as generating implementations of software systems from higher-level models. To enable this automation, transformation engines are used to synthesize various types of software artifacts from models, where the rules according to which these artifacts are generated are implemented by means of dedicated model transformation languages. Hence, the quality of the generated software artifacts depends on the quality of the transformation rules applied to generate them. Thus, there is the need for approaches to certify their behavior for a selected set of test models. As mutation analysis has proven useful as a practical testing approach, we propose a set of mutation operators for the ATLAS Transformation Language (ATL) derived by a comprehensive language-centric synthesis approach. We describe the rationale behind each of the mutation operators and propose an automated process to generate mutants for ATL transformations based on a combination of generic mutation operators and higher-order transformations. Finally, we describe a cost-effective solution for executing the obtained mutants.
Abstract. The capability of UML profiles to serve as annotation mechanism has been recognized in both industry and research. Today's modeling tools offer profiles specific to platforms, such as Java, as they facilitate model-based engineering approaches. However, the set of available profiles is considerably smaller compared to the number of existing Java libraries using annotations. This is because an effective mapping between Java and UML to generate profiles from annotation-based libraries is missing. In this paper, we present JUMP to overcome this limitation, thereby continuing existing mapping efforts by emphasizing on annotations and profiles. We demonstrate the practical value of JUMP by contributing profiles that facilitate reverse-engineering and forward-engineering scenarios for the Java platform. The evaluation of JUMP shows that profiles can be automatically generated from Java libraries exhibiting equal or even improved quality compared to profiles currently used in practice.
Model transformation is a key technique to automate software engineering tasks. Like any other software, transformations are not resilient to change. As changes to transformations can invalidate previously produced models, these changes need to be reflected on existing models. Currently, revised out-place transformations are re-executed entirely to achieve this co-evolution task. However, this induces an unnecessary overhead, particularly when computation-intensive transformations are marginally revised, and if existing models have undergone updates prior the re-execution, these updates get discarded in the newly produced models.To overcome this co-evolution challenge, our idea is to infer from evolved out-place transformations patch transformations that propagate changes to existing models by re-executing solely the affected parts based on an in-place execution strategy. Thereby, existing models are only updated by a patch instead of newly produced. In this paper, we present the conceptual foundation of our approach and report on its evaluation in a real-world case study.
Abstract-Rece ntly, several proposals towards a cloud model· ing language have erneq;;cd. As they ad dress the diversity of cloud envimnments, il is not surprising that these modeling languages support different S(. 'Cfllll·ios. Using a by-example approach based on the sce nario of softw:uc migration, we demonstrate their represe ntational Cllpabilitics :md review them according to d!aracteristics common lo all modeling languages as weiJ as specific to the cloud computing donmin. We repor t on our findings an d present research guidelines for future efforts towards a better alignment of the different cloud modeling languages. I. I NTRODUCTIONCloud computing bas recently emerged as a new possibility how software can be made available to clients as a service. Hereby, software is hosted on a cloud environment [5] and consumable over the network by different clients. For software vendors, th. is is appealing because of low upfroot costs compared to a traditional on-premise solution as well as operational costs that scale with the provisioning and releasing of cloud resources, which are in turn offered as a service by cloud providers. Cloud service offerings range from low-level infrastructure elements, such as raw computing nodes, over higher level platforms, such as a Java execution environment on top of a cloud infrastructure, to ready-to-use software deployed on a cloud platform. Furthermore, software vendors are no longer forced to plan far ahead for resource provisioning [3] because the large-scale datacenters of today's cloud providers ensure that requested resources are available through their cloud environments. The risk of under-and over-provisioning of such resources is reduced by cloud environments due to their capabilities for elastic scalability on demand. Therefore, resources are not only provisioned as their demand increases but also released once their demand decreases (e.g. , number of user requests exceeds or falls below a defined threshold).Since cloud environments offer novel optimization opportunities (e.g., advanced scalable data persistence solutions), taking full advantage of the cloud requires that the software is prepared for such an environment However, in order to leverage the possibilities of a cloud environment, the software often needs to comply with certain restrictions that might hinder its functioning (e.g., statefuJ components in a highly scalable cloud environment). Several previous and ongoing European projects, notably REMICS [41] For each selected approach, we provide a brief description and then categorize it according to both modeling language characteristics and cloud computing characteristics. We do not claim that this set of cloud modeling language is complete and leave a systematic li terature review for future work. Rather, we foc us on the ex tensional perspective of the modeling languages by demonstrating the approaches in the setting of a cloud migration scenario. We have selected this scenario since it covers the wide spectrum of the software lifecycle. Finally, we c...
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.