McMaster's Software Quality Research Laboratory (SQRL) is a group of researchers working together to improve the quality of software products. We perform fundamental research, applied research, technology transfer, and contractual software quality assessments. We represent a broad variety of approaches but cooperate in a single unit that applies combinations of sound new ideas to practical problems.

SQRL researchers consider cooperation with industrial partners essential to achieving our goals. We are not satisfied with purely theoretical advances; we want theoretically sound practical advances. To achieve this, we work with companies for whom software quality is important. To meet our goals, we must understand their problems, have the opportunity to try our methods on their products, and help them to meet their goals.

Whereas many academic research units pursue a single approach to a problem, (e.g. software testing, or software verification, SQRL combines the four major approaches to software quality:

We recognize that while each of these can be studied on its own, they are complementary and mutually supportive. Every software quality improvement effort can benefit from some combination of these approaches.

Because SQRL researchers appreciate and understand each other's work, SQRL can bring the right combination of expertise to every software quality problem. All SQRL researchers share a desire to integrate their approaches.


Software has become a critical technology. It is essential for telephones, aircraft, elevators, medical devices, banking machines, manufacturing, chemical plants, satellites, power plants and many other systems that affect our health, safety, and well-being. Software is also used in the design of many products that do not contain software. Furthermore, software is also critical for today's business operations. There is almost no part of our economy where the quality of the product or service does not depend on the quality of some software.

Unfortunately, even after more than 30 years of research and development, software remains an unmastered technology. In spite of many advances in our understanding, we still find that most software is delivered to customers with serious faults. Where most products carry a guarantee, packaged software has a disclaimer.

SQRL was founded because this situation is no longer acceptable. The time has come to focus on the software quality problem and find ways to make fundamental improvements in our software development processes.


SQRL serves as:

SQRL researchers believe that these activities are mutually reinforcing; our basic research can be advanced by trying new ideas on real problems and developers with software quality problems will benefit from working with us.


SQRL offers three types of seminars. All seminars are available to partners and industrial supporters via standard teleconferencing facilities so that our associates will be able to participate fully in SQRL seminars without the expense and inconvenience of travel to McMaster. All participants can view the speaker and the presentation visuals and participate in the post-seminar discussion using audio lines or e-mail. The seminars are described below.

Distinguished speaker series:

SQRL offers a monthly seminar series presenting distinguished researchers and well-known consultants explaining how their latest work can be applied. This will allow all SQRL associates to keep up with the latest ideas in software development and assessment without the time and effort needed to bring the visitor to their site. Opportunities for two-way conversations can be arranged.

Experience exchange series:

SQRL provides its industrial associates with the opportunity to learn from each other when one company describes its experience using a tool, process, or notation whether it was a success, a failure, or a mixture of each. Through these seminars, SQRL associates share experience and SQRL's researchers and students gain a better understanding of developer's problems. Through these seminars our researchers will learn what is important to software developers.

Technology transfer series:

SQRL researchers and advanced graduate students make frequent presentations of the results of their own work as well as other ideas that they believe can help software developers. Through these seminars industrial associates will get to know SQRL staff and students and then have the opportunity to work directly with those who could help them the most.

SQRL Short Courses

Several times a year SQRL will organise short courses on topics of interest to software developers. These will be held at McMaster but may also be available at a few sites by teleconferencing. The courses will be offered by experienced lecturers and will provide an opportunity for industrial software developers to upgrade their knowledge and capabilities.

SQRL as a Software Quality Assessor (SQA)

Many companies do not have their own software quality assessment (SQA) group. Others have a SQA group but value an independent assessment by outsiders. In other cases, a company wants to see an assessment technique demonstrated on a product that they are familiar with. SQRL will enter into contracts to provide such services. Generally, the work will be done by a student under the supervision of a researcher and SQRL staff. A formal report will be provided. Confidentiality agreements will be standard. Small tasks can be done as projects by B.Eng. and M.Eng. students. Larger projects may be the basis for a thesis by a M.A.Sc. student.


Testing: Testing is part of the practice of every software developer. Over the years, there has been a great deal of research on testing but the results are rarely applied in industrial practice. Very often testing is done in an ad hoc manner and doesn't yield the information that could be obtained by scientific/systematic testing. Several SQRL researchers have pioneered the idea of documentation based testing. Using precise tabular documentation, it is possible to generate test cases, evaluate test results, and estimate reliability. SQRL will make their expertise available to the SQA projects and also carry out research on new testing methods and tools.

Systematic inspection: SQRL researchers have done pioneering work in inspecting safety critical software. We have demonstrated the practicality of a "divide and conquer", "document based" technique for conducting inspections and are continuing to improve this technique and develop prototype tools.

Automated validation: Long the dream of Computer Scientists, automated validation remains outside our grasp for most programs, however SQRL researchers are developing advanced tools in this area and will experiment with them as part of SQRL projects.

Numerical computing: A program may be logically sound but fail because of inadequate attention to numerical accuracy. SQRL researchers develop tools and methods for estimating and improving numerical accuracy in programs.

Scientific computing: A program may be logically and numerically sound but fail because of an inappropriate choice of physical models or an incorrect combination of good models. SQRL researchers are developing systematic ways of documenting and inspecting scientific programs to make the model more explicit. These inspection and documentation techniques are extensions of techniques used successfully on control programs.

Symbolic computing: Symbolic computation technology lies at the heart of all approaches to automatic analysis or verification of programs and specifications. SQRL's Symbolic Computation group brings together researchers in automated reasoning and computer algebra systems to study new and innovative approaches in this area.

Documentation/specification techniques: Documentation that is precise and concise is one of the keys to high-quality software. Documentation can be used as a design media, for review before coding, to guide programmers during coding, to plan the testing, to evaluate test results, and as a basis for program analysis. SQRL researchers include several who have made important contributions to documentation in theory and practice.

Document analysis: SQRL offers expertise in analysing programs and documents. Using advanced symbolic computing tools, SQRL researchers are studying ways to detect missing and inconsistent information in precise documentation.

Rigorous program design: Because a badly structured program can defeat the most advanced analysis tools and techniques, SQRL researchers continue to study program design techniques including those that yield correctness arguments along with the code. Industrial application of these ideas has been found to be more cost-effective than analysis of programs that were developed in a less disciplined manner.

Analysis of algorithms: High quality software must be based on algorithms that are sound and efficient. SQRL includes experts on algorithm design and analysis who will work with the other groups both in their research efforts and in performing SQA on specific products.

Performance analysis: Even logically correct, properly documented software will be rejected if it is too slow or requires excessive memory resources. Moreover, performance must be predictable. SQRL includes experts in performance modelling who will be available to build models that accurately predict the performance of a product in practice.

Concurrent and real-time programs: The most difficult problems in software design arise when software must manage concurrent activities and meet real-time deadlines. SQRL includes researchers who study concurrency and scheduling and develop techniques for assuring quality in concurrent programs and multi-processor systems.


Dr. Tom Maibaum

The theory of specification and its application in various contexts.

Dr. Douglas Down

Performance analysis; Communications systems

Dr. William Farmer

Automated validation; Symbolic computing; Document analysis; Applied logic; Interactive theorem proving; Mathematical knowledge management

Dr. Wolfram Kahl

Symbolic computing; Documentation/ specification techniques; Rigorous program design; Automated validation; Systematic inspection; Relational methods

Dr. Ridha Khedri

Testing, Systematic inspection; Automated validation; Documentation/specification techniques; Concurrent & real-time programs

Dr. Konstantin Kreyman

Scientific computation; Documentation/ specification techniques; Systematic inspection; Mathematical modelling; Environmental physics, Water resources

Dr. Mark Lawford

Automated validation; Systematic inspection; Concurrent & real-time programs; Theorem proving; Synthesis; Safety critical systems; Embedded systems; Supervisory control; Document analysis; Documentation/ specification techniques

Dr. Ryan Leduc

Automated validation; Concurrent & real-time programs; Rigorous program design

Dr. Martin von Mohrenschildt

Symbolic computing; Testing; Automated validation; Documentation/specification techniques; Document analysis; Hybrid systems: Modelling, Simulation verification & control; Differential equations with piecewise continuous coefficients

Dr. Ned Nedialkov

Numerical Computation; Systematic inspection; Automated validation; Validated numerical methods for differential equations; Interval analysis; Symbolic computing; Program design; Analysis of algorithms

Dr. Alan Wassyng

Scientific Inspection; Numerical Computing; Scientific Computing; Documentation/ specification techniques; Document analysis; Rigorous program design; Concurrent & real-time programs

Dr. Sanzheng Qiao

Numerical computation; Scientific computation; Systematic inspection; Parallel computing; numerical linear algebra; Numerical methods for signal processing; Algorithms for structured matrices; Testing

Dr. Emil Sekerinski

Rigorous program design; Documentation/ specification techniques; Concurrent & real-time programs; Object Orientation; Reactive & embedded systems, Programming languages & Programming tools

Dr. Spencer Smith

Scientific Computation; Documentation/ specification techniques; Computational mechanics; Finite element analysis


Dr. Alan Wassyng
Acting Director
(905) 525-9140, ext. 26072

Software Quality Research Laboratory
McMaster University
Information Technology Building
1280 Main Street West
Hamilton ON L8S 4K1

Back to SQRL's Homepage