Computer Science Department Complex software-based systems are playing increasingly critical roles in modern societies. Software developers must not only ensure that their software delivers the right functionality in a timely manner, but they also need to ensure that the software is dependable. Developers of dependable software systems must address many concerns in their designs, including concerns pertaining to (1) recovery from faults during operation, (2) ensuring secure operation, (3) safeguarding protected resources, (4) ensuring safe operation, and (5) providing critical services when the system has been compromised. Hand-crafting implementations of these complex systems is difficult, tedious, error-prone, and expensive in terms of time and costs. There is a need for technologies that significantly reduce the accidental complexities associated with manually constructing complex software systems.
The research within our group focuses on tool-supported transformation of abstract models of software systems to concrete operational systems. Two principles guide our work: Separation of concerns, and rigor. Support for separation of concerns has led to the development of programming techniques and languages that support modular development of implementations. These languages and techniques have proven their worth, but the difficulty of developing modern software systems indicates that more needs to be done. Our research seeks to provide greater support for the separation of concerns principle through support for separating and integrating overlapping aspects of software systems. Each aspect describes how a well-defined set of concerns is addressed in a design. For example, an access control aspect describes how access control is realized in a design. Support for the rigor principle paves the way for the development of tools that automate well-understood aspects of the software development process. In this respect, our research focuses on formal analysis of models and on providing tool support for managing and manipulating models.
There are currently five related strands of research:
The AOM research at CSU focuses on developing and evaluating modeling techniques that allow developers to encapsulate pervasive security, fault tolerance and other dependability concerns as aspects that can be composed with requirements and design models. Aspects allow developers to understand, communicate, and analyze pervasive dependability concerns as conceptual units during requirements analysis and design. The AOM techniques developed in this research support (1) early trade-off and risk analysis through analysis of dependability concerns, (2) localization of solutions that address pervasive dependability concerns in aspects, (3) rigorous composition of aspects and models of other system features, (4) analysis of design models to determine degree of dependability.
A Sample of our MDE Publications