6 research outputs found
Engineering Delta Modeling Languages
Delta modeling is a modular, yet flexible approach to capture spatial and
temporal variability by explicitly representing the differences between system
variants or versions. The conceptual idea of delta modeling is
language-independent. But, in order to apply delta modeling for a concrete
language, so far, a delta language had to be manually developed on top of the
base language leading to a large variety of heterogeneous language concepts. In
this paper, we present a process that allows deriving a delta language from the
grammar of a given base language. Our approach relies on an automatically
generated language extension that can be manually adapted to meet
domain-specific needs. We illustrate our approach using delta modeling on a
textual variant of statecharts.Comment: 10 pages, 8 figures. Proceedings of the 17th International Software
Product Line Conference, Tokyo, September 2013, pp.22-31, ACM, 201
Pattern-based Rewriting through Abstraction
Fundamenta Informaticae, vol. 144, no. 2, pp. 109-160, 2016, Copyright 2016, with permission from IOS PressModel-based development relies on models in different phases for different purposes, with modelling patterns being used to document and gather knowledge about good practices in specific domains, to analyse the quality of existing designs, and to guide the construction and refactoring of models. Providing a formal basis for the use of patterns would also support their integration with existing approaches to model transformation. To this end, we turn to the commonly used, in this context, machinery of graph transformations and provide an algebraic-categorical formalization of modelling patterns, which can express variability and required/forbidden application contexts. This allows the definition of transformation rules having patterns in left and right-hand sides, which can be used to express refactorings towards patterns, change the use of one pattern by a different one, or switch between pattern variants. A key element in our proposal is the use of operations to abstract models into patterns, so that they can be manipulated by pattern rules, thus leading to a rewriting mechanism for classes of graphs described by patterns and not just individual graphs. The proposal is illustrated with examples in object-oriented software design patterns and enterprise architecture patterns, but can be applied to any other domain where patterns are used for modelling.This work has been partially supported by the Spanish Ministry of Economy and Competitivity with projects Go-Lite (TIN2011-24139) and Flexor (TIN2014-52129-R), the Madrid Region with project SICOMORO (S2013/ICE-3006), and the EU commission with project MONDO (FP7-ICT-2013-10, #611125)
Guiding Architectural Restructuring through Architectural Styles
International audienc
A pattern language for evolution reuse in component-based software architectures
Context: Modern software systems are prone to a continuous evolution under frequently varying requirements and changes in operational environments. Architecture-Centric Software Evolution (ACSE) enables changes in a system’s structure and behaviour while maintaining a global view of the software to address evolution-centric trade-offs. Lehman’s law of continuing change demands for long-living and continuously evolving architectures to prolong the productive life and economic value of software. Also some industrial research shows that evolution reuse can save approximately 40% effort of change implementation in ACSE process. However, a systematic review of existing research suggests a lack of solution(s) to support a continuous integration of
reuse knowledge in ACSE process to promote evolution-off-the-shelf in software architectures.
Objectives: We aim to unify the concepts of software repository mining and software evolution to discover evolution-reuse knowledge that can be shared and reused to guide ACSE.
Method: We exploit repository mining techniques (also architecture change mining) that investigates architecture change logs to discover change operationalisation and patterns. We apply
software evolution concepts (also architecture change execution) to support pattern-driven reuse in ACSE. Architecture change patterns support composition and application of a pattern language that exploits patterns and their relations to express evolution-reuse knowledge. Pattern language composition is enabled with a continuous discovery of patterns from architecture change logs and
formalising relations among discovered patterns. Pattern language application is supported with an incremental selection and application of patterns to achieve reuse in ACSE. The novelty of the research lies with a framework PatEvol that supports a round-trip approach for a continuous acquisition (mining) and application (execution) of reuse knowledge to enable ACSE. Prototype
support enables customisation and (semi-) automation for the evolution process.
Results: We evaluated the results based on the ISO/IEC 9126 - 1 quality model and a case study based validation of the architecture change mining and change execution processes. We observe consistency and reusability of change support with pattern-driven architecture evolution. Change patterns support efficiency for architecture evolution process but lack a fine-granular
change implementation. A critical challenge lies with the selection of appropriate patterns to form a pattern language during evolution.
Conclusions: The pattern language itself continuously evolves with an incremental discovery of new patterns from change logs over time. A systematic identification and resolution of change anti-patterns define the scope for future research