Reliable Development of Reliable Software Systems
Software quality is a vital issue for researchers and software producers. One element that helps ensure excellence in software engineering is the ability to specify accurately just what is to be built and thus affect the building of the artefact in a systematic way, guaranteeing conformance with the specifications.
Software systems are the most complex and "large" systems ever built; they involve millions of lines of code and tens of thousands of pages of associated design descriptions. Because of their size and complexity, the systems are difficult to describe, analyse, and manipulate for the purposes of implementation.
Over the past 10 years or so, architecture description languages (ADLs) have been developed in order to describe software system structure and properties at an abstract enough level to reduce complexity and detail and to be intelligible to designers, but still enable analysis of the design and provide choice of implementation.
Unfortunately, existing ADLs continue to lack the appropriate support for specifying important characteristics such as dynamic reconfiguration, hierarchical construction, and tractable and fully formal semantics. That's why Canada Research Chair Tom Maibaum is developing a new ADL.
Maibaum is an international authority in software engineering. His work focuses in particular on the abstract specification and design of software systems. In the past, he has developed languages and methods that support the so-called component-based development approaches that are currently in favour with software developers. Maibaum's work on a new ADL will improve the state of the art since the environment that he is creating incorporates appropriate specifications, analysis, and testing/verification tools, as well as corresponding engineering methods for specific problem domains.