Faculty in the department conduct research on many software engineering topics including requirements analysis, software architecture and design, process evaluation, software testing and reliablility, software evolution, program comprehension, object-oriented techniques, and modeling of all aspects of software development. The curriculum includes software engineering instruction at all levels, from undergraduate courses on software devopment methods to graduate-level courses on advanced topics.
Adaptable Run Time Configurations of Distributed Software: Develop methods to specify and validate post deployment, run time configuration management requirements, with a focus on the flexibility of large-scale running distributed embedded systems. Bieman.
Distributed Object Systems: Provide fault tolerance in CORBA using object groups. We are concerned with maintenance of backup objects, object groups, group communication, object migration and load balancing. Ghosh.
Multi-dimensional/Multi-view Software Evolution: Develop model-based methods to represent and evolve alternative perspectives of an evolving software system, making use of well-defined model and code transformations to satisfy objective change goals. France, Bieman, Ghosh, Ray.
The Precise UML Project (pUML): Develop a formal semantics for the Unified Modeling Language (UML) of the Object Management Group (OMG). France.
Dynamic Architecture Extraction and Display for CORBA Applications:Develop techniques for visualization of distributed applications at run-time for monitoring, control and debugging. Ghosh.
Evaluating Object-Oriented Designs: Develop techniques to quantify design attributes of OO software in terms of architectural structures and patterns, and show that these design attributes are related to maintainability, reusability, testability, and reliability.
The Wide World of Software Design: Develop an open repository of software design information, including design models and source code, to support the classification and scientific evaluation of actual software designs and design methods. Bieman, France.
Testing UML Models: France, Ghosh.
Run Time Fault Injection for Testing Objects: Develop mechanisms for injecting faults into objects to evaluate test data completeness and to increase coverage. Bieman, Ghosh.
Testing Heterogeneous Distributed Component Based Systems. Develop a testing methodology for distributed component-based systems. The methodology uses the description of interfaces of components. Ghosh.
Ultra-High Software Reliability: Develop techniques for achieving and evaluating ultra-high reliability in computational systems. This work includes both reliability modeling and software testing techniques. Malaiya.
The Software Assurance Laboratory (SAL) is a Colorado State University research center devoted to the development of technology to support the assessment and development of high-quality software. Research at the center focuses on methods to specify, design, and implement software with desirable qualities. Work involves methods to assure that software has these qualities and methods to improve the design of existing software. SAL researchers aim to improve a broad spectrum of software quality attributes including reliability, adaptability, safety, security, maintainability, correctness, and fault-tolerance.
The Software Engineering curriculum includes the following courses:
Additional courses may be offered on various Software Engineering topics, for example, CS581 Distribued Systems offered in Fall 2001.
Information on the Graduate Program in Computer Science at Colorado State University can be obtained from: gradinfo@cs.colostate.edu.
Request for additional information can be made to Dr. James Bieman. Requests for copies of papers may be sent to any of the participating faculty. E-mail is preferred.