4 research outputs found

    Aspect-oriented modelling

    Get PDF
    Aspect-oriented programming is a software engineering paradigm used to modularise parts of a program which are difficult to separate using other means. It does this using aspects: combinations of program modifications and places to apply them. While it has received some academic interest, aspect orientation has seen lukewarm adoption from industry and its practical benefits are not well demonstrated. The paradigm lacks a use-case for which aspects are particularly well-suited. One such use-case may be in producing and maintaining codebases for research purposes. In many fields, research is conducted with the aid of software models. Changes to these models are delicate: they may invalidate results, add complexity to a codebase, or absorb researchers’ time. These changes could be represented as aspects, but the paradigm is yet to be applied to codebases for scientific models. We propose that aspects are particularly well-suited to describe these changes and that aspect-oriented modelling may ease model maintenance. This thesis investigates the viability of aspect-oriented modelling for simulation purposes. An aspect-oriented programming framework is implemented which addresses criticisms of the paradigm, and contributes new kinds of aspects which are useful for describing changes to models. With this tool, a case study of aspect-oriented modelling is constructed using a model of a real-world mobile game and its players’ activity. This forms the foundation of three experiments. They demonstrate that aspects can be used to successfully augment models, can add new behaviours and parameters to models, and can be reused across different models in some cases. As these contributions invite new research in many fields, the thesis also enumerates the possibilities enabled for others researching aspect orientation, simulation & modelling, and research software engineering, as well as the methodological implications for researchers whose hypotheses are encoded within software models

    Information content of chess positions

    No full text
    corecore