< Back to previous page
Antwerp Systems and software Modelling (AnSyMo)
Main organisation:Department of Computer Science
Lifecycle:1 Oct 2003 → Today
Organisation profile:Our world and society are shaped and governed by systems and software. Almost all devices, machines and artifacts surrounding us incorporate software to some extent. Additionally, the numerous organizations, businesses and enterprises we encounter on a daily basis could not function without software. Examples of software systems are numerous: worldwide web applications and desktop software but also embedded systems like pacemakers, cell phones, train control systems, and automotive components. AnSyMo is a research group investigating foundations, techniques, methods and tools for the design, analysis and maintenance of such software-intensive systems. The nature of these systems, however, has changed considerably in the last few years. Firstly, the availability of more computational resources, including parallel computation and interactive behavior has enabled one to tackle ever more complex applications. Secondly, the need to consider interactions of software with physical components has led to the study of hybrid systems, adding even more complexity. Finally, the view that a software system is a static entity has given way to the view that software needs evolve, i.e., that changes in requirements or platforms can be accommodated easily. RESEARCH THEMES MODELS One way to tackle the increased complexity of systems is to represent all knowledge about their structure and behaviour explicitly in the form of models. This allows for rigorous reasoning and enables automated manipulation. Models should be constructed at the most appropriate level(s) of abstration and using the most appropriate language(s). Consequently, we design new techniques and build tools for comparing these models, checking their consistency, transforming them into one another, simulating them efficiently, etc. Domain-specific modelling languages are of particular interest as they help bridge the gap between domain and solution. LANGUAGES While some models only contain static, structural information, an important class of models describes systems (or system components), which are dynamic. Dynamic should be understood in the sense that they exhibit behavior. This is the realm of programming languages in the traditional sense, but also of formalisms such as Petri nets or Statecharts. We contribute to recent work concerning modularity concepts (such as aspects), their semantics and implementation. Ideally these concepts can serve as a tool to turn a model-based system description into a functioning program. EVOLUTION The model centric view for tackling complexity, may suggest that software systems should be constructed like engineering products: e.g., like cars and bridges. Software systems however should be seen as living and evolving artifacts, designed, developed and maintained by people. Consequently, it is crucial to have high-level, easy-to-modify models in all stages of the lifetime of a software system. We investigate how the availability of models (especially featuring new modularity concepts) may be used to improve the maintainability and evolvability of software systems. RESOURCES The availability of more but smaller computational devices and the interaction with (physically) external system components has led to the study of hybrid systems. These systems typically consist of distributed components with limited resources; hence computation should be scheduled carefully. We study how models (and simulations thereof) can be used for the efficient management of resources such as memory, time and energy. These four research themes (models, languages, evolution and resources) are not investigated in isolation. Rather we envision them as mutually reinforcing themes so that the whole becomes more than the sum of the parts.
Keywords:MODEL DRIVEN ENGINEERING, FORMAL METHODS, REVERSE ENGINEERING, SOFTWARE EVOLUTION, REFACTORING, REENGINEERING, TESTING, FORMAL SEMANTICS, MODEL TRANSFORMATION
Disciplines:Applied mathematics in specific fields, Programming languages, Theoretical computer science