3 research outputs found

    UML Reflections

    Get PDF
    The UML shares with reflective architectures the idea that self-definition of languages and systems is a key principle for building and maintaining complex systems. The UML is now defined by a four-layer metalevel structure, enabling a flexible and extensible definition of models by metamodels, and even a self-description of the meta-metamodel (the MOF). This metalevel dimension of UML is currently restricted to structural reflection. But recently a new extension to the UML, called the Action Semantics (AS), has been proposed for standardization to the OMG. This paper explores how this proposed extension brings a behavioural reflection dimension to the UML. Indeed, we show that it is not only possible but quite e#ective to use the AS for manipulating UML models (including the AS metamodel). Besides elegant conceptual achievements, such as a metacircular definition of the AS, reflective modeling with the AS leverages on the UML metalevel architecture to provide the benefits of a reflective approach, in terms of separation of concerns, within a mainstream industrial context. A complete model can now be built as an ideal model representing the core concepts in the application, to which non-functional requirements are integrated as fully traceable transformations over this ideal model. For example, this approach paves the way for powerful UML-defined semantics-based model transformations such as refactoring, aspect weaving, application of design patterns or round-trip engineering

    Supporting Evolution and Maintenance By Using a Flexible Automatic Code Generator

    No full text
    Generating code automatically from the design level increases product quality and productivity but also facilitates maintenance and evolution by limiting changes to the design level. Flexibility is a basic requirement that should be fulfilled by automatic code generators: the translation strategies should be easily adapted to different platforms or company standards and also to the evolution of the system which they produce. We present our approach to flexible code generation, in the frame of our SDL methodology, and the code generator tool ProgGen. The methodology focuses on the design phase and distinguishes between functional design (i.e. describing behavior) and implementation design (i.e. describing the concrete system). The implementation design description plays a central role in the code generation process. ProgGen is a generic tool which can be used to produce SDL translators; the output is controlled by a set of code skeletons. The skeletons can easily be tailored to support ..
    corecore