29,472 research outputs found

    Clafer: Lightweight Modeling of Structure, Behaviour, and Variability

    Get PDF
    Embedded software is growing fast in size and complexity, leading to intimate mixture of complex architectures and complex control. Consequently, software specification requires modeling both structures and behaviour of systems. Unfortunately, existing languages do not integrate these aspects well, usually prioritizing one of them. It is common to develop a separate language for each of these facets. In this paper, we contribute Clafer: a small language that attempts to tackle this challenge. It combines rich structural modeling with state of the art behavioural formalisms. We are not aware of any other modeling language that seamlessly combines these facets common to system and software modeling. We show how Clafer, in a single unified syntax and semantics, allows capturing feature models (variability), component models, discrete control models (automata) and variability encompassing all these aspects. The language is built on top of first order logic with quantifiers over basic entities (for modeling structures) combined with linear temporal logic (for modeling behaviour). On top of this semantic foundation we build a simple but expressive syntax, enriched with carefully selected syntactic expansions that cover hierarchical modeling, associations, automata, scenarios, and Dwyer's property patterns. We evaluate Clafer using a power window case study, and comparing it against other notations that substantially overlap with its scope (SysML, AADL, Temporal OCL and Live Sequence Charts), discussing benefits and perils of using a single notation for the purpose

    Improving the reuse possibilities of the behavioral aspects of object-oriented domain models.

    Get PDF
    Reuse of domain models is often limited to the reuse of the structural aspects of the domain (e.g. by means of generic data models). In object-oriented models, reuse of dynamic aspects is achieved by reusing the methods of domain classes. Because in the object-oriented approach any behavior is attached to a class, it is impossible to reuse behavior without at the same time reusing the class. In addition, because of the message passing paradigm, object interaction must be specified as a method attached to one class which is invoked by another class. In this way object interaction is hidden in the behavioral aspects of classes. This makes object interaction schemas difficult to reuse and customize. The focus of this paper is on improving the reuse of object-oriented domain models. This is achieved by centering the behavioral aspects around the concept of business events.Model; Models;

    A graph-based aspect interference detection approach for UML-based aspect-oriented models

    Get PDF
    Aspect Oriented Modeling (AOM) techniques facilitate separate modeling of concerns and allow for a more flexible composition of these than traditional modeling technique. While this improves the understandability of each submodel, in order to reason about the behavior of the composed system and to detect conflicts among submodels, automated tool support is required. Current techniques for conflict detection among aspects generally have at least one of the following weaknesses. They require to manually model the abstract semantics for each system; or they derive the system semantics from code assuming one specific aspect-oriented language. Defining an extra semantics model for verification bears the risk of inconsistencies between the actual and the verified design; verifying only at implementation level hinders fixng errors in earlier phases. We propose a technique for fully automatic detection of conflicts between aspects at the model level; more specifically, our approach works on UML models with an extension for modeling pointcuts and advice. As back-end we use a graph-based model checker, for which we have defined an operational semantics of UML diagrams, pointcuts and advice. In order to simulate the system, we automatically derive a graph model from the diagrams. The result is another graph, which represents all possible program executions, and which can be verified against a declarative specification of invariants.\ud To demonstrate our approach, we discuss a UML-based AOM model of the "Crisis Management System" and a possible design and evolution scenario. The complexity of the system makes con°icts among composed aspects hard to detect: already in the case of two simulated aspects, the state space contains 623 di®erent states and 9 different execution paths. Nevertheless, in case the right pruning methods are used, the state-space only grows linearly with the number of aspects; therefore, the automatic analysis scales

    Constructing a concept of number

    Get PDF
    Numbers are concepts whose content, structure, and organization are influenced by the material forms used to represent and manipulate them. Indeed, as argued here, it is the inclusion of multiple forms (distributed objects, fingers, single- and two-dimensional forms like pebbles and abaci, and written notations) that is the mechanism of numerical elaboration. Further, variety in employed forms explains at least part of the synchronic and diachronic variability that exists between and within cultural number systems. Material forms also impart characteristics like linearity that may persist in the form of knowledge and behaviors, ultimately yielding numerical concepts that are irreducible to and functionally independent of any particular form. Material devices used to represent and manipulate numbers also interact with language in ways that reinforce or contrast different aspects of numerical cognition. Not only does this interaction potentially explain some of the unique aspects of numerical language, it suggests that the two are complementary but ultimately distinct means of accessing numerical intuitions and insights. The potential inclusion of materiality in contemporary research in numerical cognition is advocated, both for its explanatory power, as well as its influence on psychological, behavioral, and linguistic aspects of numerical cognition

    Resource Oriented Modelling: Describing Restful Web Services Using Collaboration Diagrams

    No full text
    The popularity of Resource Oriented and RESTful Web Services is increasing rapidly. In these, resources are key actors in the interfaces, in contrast to other approaches where services, messages or objects are. This distinctive feature necessitates a new approach for modelling RESTful interfaces providing a more intuitive mapping from model to implementation than could be achieved with non-resource methods. With this objective we propose an approach to describe Resource Oriented and RESTful Web Services based on UML collaboration diagrams. Then use it to model scenarios from several problem domains, arguing that Resource Oriented and RESTful Web Services can be used in systems which go beyond ad-hoc integration. Using the scenarios we demonstrate how the approach is useful for: eliciting domain ontologies; identifying recurring patterns; and capturing static and dynamic aspects of the interface

    Modeling the dialogue aspects of an information system.

    Get PDF
    In this paper we investigate techniques offered by current object-oriented development methods for the specification of the user-system dialogue aspect of a software system. Current development methods do not give very extensive guidelines on how to model this aspect and the available techniques need some refinement and elaboration to fit this particular task in the software specification process. The paper first compares a number of approaches. The common elements of these approaches are summarized and further developed into one comprehensive set of techniques that addresses the needs of functional requirements analysis.

    Refinement of SDBC Business Process Models Using ISDL

    Get PDF
    Aiming at aligning business process modeling and software specification, the SDBC approach considers a multi-viewpoint modeling where static, dynamic, and data business process aspect models have to be mapped adequately to corresponding static, dynamic, and data software specification aspect models. Next to that, the approach considers also a business process modeling viewpoint which concerns real-life communication and coordination issues, such as meanings, intentions, negotiations, commitments, and obligations. Hence, in order to adequately align communication and dynamic aspect models, SDBC should use at least two modeling techniques. However, the transformation between two techniques unnecessarily complicates the modeling process. Next to that, different techniques use different modeling formalisms whose reflection sometimes causes limitations. For this reason, we explore in the current paper the value which the (modeling) language ISDL could bring to SDBC in the alignment of communication and behavioral (dynamic) business process aspect models; ISDL can usefully refine dynamic process models. Thus, it is feasible to expect that ISDL can complement the SDBC approach, allowing refinement of dynamic business process aspect models, by adding communication and coordination actions. Furthermore, SDBC could benefit from ISDL-related methods assessing whether a realized refinement conforms to the original process model. Our studies in the paper are supported by an illustrative example

    UML representation of object-oriented design antipatterns

    Get PDF
    Nowadays the ability to apply, implement and modify patterns of design and architecture has become a one of primary skills for software engineers. Competence of pattern design and implementation involves detecting and correcting inefficient solutions known as antipatterns. However, unlike patterns, very few antipatterns have a graphical representation so that an inefficient solution to a specific problem can be detected visually and refactored. Detecting antipatterns is not simple even with full set of technical documentation. This paper proposes a graphical UML representation of antipatterns to detect them at various stages of the software lifecycle. It proposes a method to refactor described antipatterns to improve software design quality and avoid software development process risks. UML diagrams modeling of 18 antipatterns is presented and refactoring method for all of them was described. Most of antipatterns were diagrammed using information from text descriptions and additional notes about arguable properties of antipatterns were included

    Lightweight and static verification of UML executable models

    Get PDF
    Executable models play a key role in many software development methods by facilitating the (semi)automatic implementation/execution of the software system under development. This is possible because executable models promote a complete and fine-grained specification of the system behaviour. In this context, where models are the basis of the whole development process, the quality of the models has a high impact on the final quality of software systems derived from them. Therefore, the existence of methods to verify the correctness of executable models is crucial. Otherwise, the quality of the executable models (and in turn the quality of the final system generated from them) will be compromised. In this paper a lightweight and static verification method to assess the correctness of executable models is proposed. This method allows us to check whether the operations defined as part of the behavioural model are able to be executed without breaking the integrity of the structural model and returns a meaningful feedback that helps repairing the detected inconsistencies.Peer ReviewedPostprint (author's final draft
    corecore