9 research outputs found

    State Machine Flattening:Mapping Study and Assessment

    Get PDF

    Interpretation Problems in Code Generation from UML State Machines -a Comparative Study

    Get PDF
    Abstract. A practical utilisation of a model-driven approach to an information system development is hampered by inconsistencies causing interpretation problems. This paper focuses on the state machine that is a common means for modelling behaviour. A transformation of classes with their state machines into a code assists in the efficient development of reliable applications. A set of interpretation problems of state machines was revisited in accordance with the UML specification and examined on model examples transformed to an executable code. The paper compares the implementation of the problems regarding to two tools that support the transformation and takes into account the most comprehensive set of the UML behavioural state machine concepts. The tools are the IBM Rational Rhapsody, which transforms state machines to C, C++, Java, Ada and the Framework for eXecutable UML (FXU) dealing with the C# code. The basic information about the FXU tool is also given

    BSML-mbeddr: Integrating Semantically Congurable State-Machine Models in a C Programming Environment

    Get PDF
    In model-driven engineering, developers express their solutions in domain-specific modelling languages (DSLs) that support domain-specific abstractions. Big-Step Modelling Languages (BSML) is a family of extended state-machine DSLs for creating executable models that have a complex execution semantics. In this paper, we present BSML-mbeddr, which imbeds a large subset of BSML within the mbeddr C programming environment, thereby extending mbeddr with language constructs for extended, semantically configurable state-machines. We also report on three case studies that exercise the expressiveness of BSML-mbeddr, assess the integrability of BSML-mbeddr into mbeddr, and demonstrate the need to provide support for state-machine models with different execution semantics.NSERC Discovery Grant, 155243-12 || Ontario Research Fund, RE05-04

    Integrating Semantically Configurable State-machine Models in a C Programming Environment

    Get PDF
    Model-driven engineering is a popular software-development methodology, which requires suitable domain-specific modelling languages (DSLs) to create models. A DSL requires flexible semantics depending on the domain knowledge. Among DSLs, Big-Step Modelling Languages (BSML) is a family of state-machine modelling languages that vary semantically. In BSML, a model can respond to an environmental input with a big-step which comprises a sequence of small-steps, each of which represents the execution of a set of transitions. The semantics of BSMLs are decomposed into mostly orthogonal semantic aspects with a wide range of semantic options. With configurable semantics, the modeller is able to choose the proper option for each semantic aspect, thus to fulfil their per domain/model semantic requirements. In this thesis we present BSML-mbeddr, a state-machine modelling language with hierarchical states, concurrent regions and configurable semantics, which has implemented a large subset of BSML within the mbeddr C programming language environment. mbeddr is a DSL workbench which provides a tool suite that supports the incremental construction of modular DSLs on top of C, together with a set of predefined DSLs. By implementing on mbeddr, BSML-mbeddr is integrated into mbeddr-C that supports programs made with heterogeneous languages, including a combination of programming language and modelling language

    mel - Model Extraction Language and Interpreter

    Get PDF
    There is a large body of research on extracting models from code-related artifacts to enable model-based analyses of large software systems. However, engineers do not always have access to the entire code base of a system: some components may be procured from third-party suppliers based on a model specification or their code may be generated automatically from models. Additionally, the development of software systems does not produce only source code as its output. Modern large software system have various artifacts relevant to them, such as software models, build scripts, test scripts, version control history data, and more. In order to produce a more complete view of a modern software system heterogeneous fact extraction of various artifacts is necessary - not just of source code. This thesis introduces mel— a model extraction language and interpreter for extracting “facts” from models represented in XMI; these facts can be combined with facts extracted from other system components to form a lightweight model of an entire software system. We provide preliminary evidence that mel is sufficient to specify fact extraction from models that have very different XMI representations. We also show that it can be easier to use mel to create a fact extractor for a particular model representation than to develop a specialized fact extractor for the model from scratch

    A Feature-Oriented Modelling Language and a Feature-Interaction Taxonomy for Product-Line Requirements

    Get PDF
    Many organizations specialize in the development of families of software systems, called software product lines (SPLs), for one or more domains (e.g., automotive, telephony, health care). SPLs are commonly developed as a shared set of assets representing the common and variable aspects of an SPL, and individual products are constructed by assembling the right combinations of assets. The feature-oriented software development (FOSD) paradigm advocates the use of system features as the primary unit of commonality and variability among the products of an SPL. A feature represents a coherent and identifiable bundle of system functionality, such as call waiting in telephony and cruise control in an automobile. Furthermore, FOSD aims at feature-oriented artifacts (FOAs); that is, software-development artifacts that explicate features, so that a clear mapping is established between a feature and its representation in different artifacts. The thesis first identifies the problem of developing a suitable language for expressing feature-oriented models of the functional requirements of an SPL, and then presents the feature-oriented requirements modelling language (FORML) as a solution to this problem. FORML's notation is based on standard software-engineering notations (e.g., UML class and state-machine models, feature models) to ease adoption by practitioners, and has a precise syntax and semantics to enable analysis. The novelty of FORML is in adding feature-orientation to state-of-the-art requirements modelling approaches (e.g., KAOS), and in the systematic treatment of modelling evolutions of an SPL via enhancements to existing features. An existing feature can be enhanced by extending or modifying its requirements. Enhancements that modify a feature's requirements are called intended feature interactions. For example, the call waiting feature in telephony intentionally overrides the basic call service feature's treatment of incoming calls when the subscriber is already involved in a call. FORML prescribes different constructs for specifying different types of enhancements in state-machine models of requirements. Furthermore, unlike some prominent approaches (e.g., AHEAD, DFC), FORML's constructs for modelling intended feature interactions do not depend on the order in which features are composed; this can lead to savings in analysis costs, since only one rather than (possibly) multiple composition orders need to be analyzed. A well-known challenge in FOSD is managing feature interactions, which, informally defined, are ways in which different features can influence one another in defining the overall properties and behaviours of their combination. Some feature interactions are intended, as described above, while other feature interactions are unintended: for example, the cruise control and anti-lock braking system features of an automobile may have incompatible affects on the automobile's acceleration, which would make their combination inconsistent. Unintended feature interactions should be detected and resolved. To detect unintended interactions in models of feature behaviour, we must first define a taxonomy of feature interactions for the modelling language: that is, we must understand the different ways that feature interactions can manifest among features expressed in the language. The thesis presents a taxonomy of feature interactions for FORML that is an adaptation of existing taxonomies for operational models of feature behaviour. The novelty of the proposed taxonomy is that it presents a definition of behaviour modification that generalizes special cases found in the literature; and it enables feature-interaction analyses that report only unintended interactions, by excluding interactions caused by FORML's constructs for modelling intended feature interactions
    corecore