Modeling & Analysis in
Software Engineering

 About     |     Members     |     Research     |     Publications     |     Software     |     Contact Us

 

Research

Currently, our research is grouped around the following projects. For information on the results produced in this project, please see our publications page.

1. Model-Driven Development (MDD) 

The main goal behind MDD is to make models, rather than code, the primary artifact around which most software development activities are centered. Through the emphasis on models, MDD attempts to manage the complexity of software and its development by supporting abstraction and automation. To this end, it combines techniques not only from software modeling (e.g., UML and Domain-Specific Modeling), but also from a range of areas such as generative programming, software product lines, programming languages, and formal methods.

The long-term goal of our work is to help maximize the potential of MDD. To do this, we are currently engaged in the following projects:

  • Execution and Analysis of Models of Real-Time, Embedded Software
    UML-RT is a variant of UML developed specifically to support MDD of the kind of embedded software found in, e.g., telecommunication     systems. UML-RT is used by, e.g., IBM Rational RoseRT and IBM RSA-RTE MDD tools. The goal of our work is to provide a formal semantics of UML-RT and effective testing, analysis and verification techniques. To do this we transform UML-RT models into models of a novel, high-level language called
    kiltera which supports the modeling and simulation of concurrent, distributed, timed, and mobile systems. 

    Research is carried out in collaboration with IBM Canada and Malina Software Corporation and funded by the Natural Sciences and Engineering Research Council of Canada (NSERC), and IBM Canada.

  • Combining Model Evolution and Analysis in Model-Driven Development
    The goal is to provide support for analysis of evolving UML-RT models, that is, models which are being modified during the development process. To this end, we are, e.g., looking into ways of supporting incremental analyses of models. 

    Research is carried out in collaboration with IBM Canada and Malina Software Corporation and funded by the Ontatio
    Centres of Excellence, and IBM Canada.

  • Network on Engineering Complex Software Intensive Systems for Automotive Systems (NECSIS)
    NECSIS was announced October 18, 2010 by Tony Clement, Minister of Industry, and is a $16.6-million national research network created to tackle the technological challenges related to the growing complexity of automotive software systems. For more details see press releases from
     Queen's University, IBM Canada, McMaster University and Scientific Computing. MASE is proud to be part of this network and will research the integration of analysis and transformation of models of automotive software. Research is carried out in collaboration with IBM Canada, General Motors Canada, and Malina Software Corporation and funded by the Natural Sciences and Engineering Research Council of Canada (NSERC), Ontario Research Fund (ORF), Automotive Partnership Canada (APC), IBM Canada, and General Motors Canada.

2. Compositional development and analylsis using behavioural interface specifications

In UML, the interface description of a component can be enriched via so-called Protocol State Machines (PSMs), that is, state machines       that specify the sequences of messages that the environment of a component is allowed to send. We have used PSMs in the context of UML-RT to facilitate the reliable composition of components by developing a tool that checks the conformance of the behaviour of a component with respect to the PSMs on its interfaces. 

This research is joint work with Dr. Alain Beaulieu (ECE RMC) and funded by the Natural Sciences and Engineering Research Council of Canada (NSERC).

3. Applying Discrete Event System Theory for Software Engineering

The goal of this research theme is to leverage the existing work on the supervisory control problem to simplify software development. Discrete Event System control theory (DES) defines the supervisory control problem (SCP) as follows: given an uncontrolled system G and a specification L, find a supervisor S such that S restricts G in such a way that all its executions satisfy L and that S is minimally restrictive. Control theory offers a large body of research on the SCP with surprisingly little application to software development.

We have been investigating the use of automatically generated supervisors for the automatic enforcement of software specifications that restrict the order in which certain kinds of events are allowed to occur. Depending on how these events are defined, different kinds of specifications can be enforced.

For instance, in recent work we considered events based on the access to resources shared by concurrently executing processes. Concurrent source code devoid of any concurrency control is manually instrumented with events. From this, the uncontrolled system G is obtained. The supervisor S generated via DES control theory will contain a minimally restrictive control scheme that causes G to satisfy the specification L and ensures deadlock freedom (if deadlock is unavoidable, S will prevent all of G's executions). The control scheme is then realized in the original source code by injecting appropriate synchronization constructs into the concurrent source code before event occurrences. To the best of our knowledge, this approach represents the first use of DES theory for the generation of concurrency control code. Apart from the initial event instrumentation, the process is completely automatic, programming language independent, and inherits the strong theoretical properties of the standard supervisory control framework developed.

This research is joint work with Dr. Karen Rudie (Queen's ECE) and funded by the Natural Sciences and Engineering Research Council of Canada (NSERC).

 

Software Technology Lab     |     School of Computing    |     Queen's University