Associations are a key concept in modeling languages as a way to formalize the relationships between domain concepts. Unfortunately, the support of semantically rich associations able to represent complex relationship...
详细信息
ISBN:
(纸本)9798350324983
Associations are a key concept in modeling languages as a way to formalize the relationships between domain concepts. Unfortunately, the support of semantically rich associations able to represent complex relationships is often missing, and this is both at the model and code level. At the model level, complex constraints on associations are often represented by using external, textual constraint languages which are difficult to understand and to maintain. At the code level, the situation is even worse, as mainstream object-oriented languages lack direct support for associations. In order to alleviate this problem, in this paper we propose a reification of complex association constraints so that they can be easily specified at development time and monitored at runtime. We do this by leveraging PAMELA, an annotation-based Java modeling framework, which promotes blending classical programming with modeling through the use of annotations and runtime code instrumentalization and monitoring. PAMELA is in the scope of model-orientedprogramming approaches. We provide a classification of association constraints and discuss different implementation strategies. Finally, we demonstrate the feasibility of our approach with a prototype implementation and an initial catalog of association patterns.
Despite the emergence of UML as the defacto modeling and design tool for software engineering, its adoption remains dismal. Software development, particularly in the open source community, remains code-centric. Adopti...
详细信息
ISBN:
(纸本)9781450342056
Despite the emergence of UML as the defacto modeling and design tool for software engineering, its adoption remains dismal. Software development, particularly in the open source community, remains code-centric. Adoption of UML in open source projects represents a significant lost opportunity. In this paper, we present an approach to encourage upfront design practices and the adoption of UML modeling in open source projects. In particular, we demonstrate the approach for small contributions and bug fixes. The approach relies on integrating UML-level abstractions into the code. This integration means that open source developers can continue to use their familiar text-based tools to manage the source code and contributions, while at the same time benefit from UML added value of abstractions and comprehension. Other benefits of this approach include broadening the boundaries of bug fix contribution by including modelers and end-users, and incrementally add UML model diagrams into open source project's documentation.
UML modelling tools provide poor support for composite state machine code generation. Generated code is typically complex and large, especially for composite state machines. Existing approaches either do not handle th...
详细信息
ISBN:
(纸本)9789897580659
UML modelling tools provide poor support for composite state machine code generation. Generated code is typically complex and large, especially for composite state machines. Existing approaches either do not handle this case at all or handle it by flattening the composite state machine into a simple one with a combinatorial explosion of states, and excessive generated code. This paper presents a new approach that transforms a composite state machine into an equivalent set of simple state machines before code generation. This avoids the combinatorial explosion and leads to more concise and scalable generated code. We implement our approach in Umple. We report on a case study, comparing our approach to others in terms of code size and scalability.
暂无评论