Thoughts On Teaching Software Quality Engineering
Thoughts On Teaching Software Quality Engineering
Thoughts On Teaching Software Quality Engineering
Engineering
Witold Suryn
Department of Electrical Engineering
École de Technologie Supérieure Montréal, Canada
[email protected]
ABSTRACT
The article presents an overview of the subject of Software Quality
Engineering (SQE) education. Four different perspectives are taken into
account: why to teach SQE, how the subject is being taught today, what
support teachers have to teach SQE and how could the Software Quality
engineer be educated. The latest trends in methods and tools pertinent to the
domain are also presented.
1. Introduction
Quality becomes a critical attribute of a software product since its absence
results in dissatisfied users, loss of money, and – in the most critical
situation – in lost lives. Increasing recognition of the importance of software
quality makes the software engineering “center of gravity” shift from
creating a technology solution toward a quality solution. Development
organizations confronted with such an approach are, in general, not
prepared to deal with it since their engineers too often are not adequately
educated. And if such knowledge exists, it is still more of an empirical
nature than resulting from a formal educational process. This reality makes
the role played by Software Quality Engineering (SQE) education to change
– or sometimes “about to change” - from “Cinderella” to a full member of
Software Engineering Education family. This paper presents a quick look at
today’s situation in Software Quality Engineering education from four
different points of view: why should SQE be taught, how is SQE being
taught, what has an SQE teacher for his disposition and what and how could
the future SQE engineer be educated. This paper has no ambition to cover
the subject to its fullest extent, seeking rather a wide reaction from the
community of academic teachers and researchers.
2. Why should Software Quality Engineering be
taught
RISK= F (1/quality)
or,
The ways in which the risk resulting from missing quality can manifest
itself are numerous, however for a user the mostly recognized or
experienced categories could be:
• Discomfort (ex: famous blue screens)
• Social or professional losses (information/data, time, money,
job etc.)
• Loss of health or life (ex: over-X-rayed patients in one of
Bristol hospitals)
It is rather obvious that our (i.e. users’) dream about a bug-free, highest
level quality solution for a small price will remain a dream for next n years,
but how big this n will be, depends on the level of SQE education and
knowledge that will find its way to software development companies. Most
probably there is a chance to buy one day a software Rolls Royce but let’s
not forget that for car manufacturers it took a hundred years to obtain a
sustainable high quality. Do we have to wait that long?
Missing quality takes its toll also from a developer/supplier even if his
position is still so privileged that better word would be “untouchable”. Until
recently the biggest risk resulting from low or missing quality of software
that a supplier could face was loosing a customer, money or market. An
individual user was entirely helpless against a supplier whose low quality
software created problems. But this situation evolves in the direction where
a user or a group of users can seek compensation of their losses through
legal actions [1]. Such an option adds two other risks to the list of supplier’s
risks:
• A court trial with a full range of consequences, and, when worse
comes to the worst,
• An imprisonment.
It is then understandable why SQE receives a continuously increasing
attention from software development companies. One of very positive
consequences of the recent software-related legal evolution is an observable
intensification of industry-funded joint research projects aimed to develop
science and best practices in SQE [2, 3].
To conclude one could propose the following statement: Software Quality
Engineering should be taught because the time when both customers and
suppliers will be fighting for best quality is knocking to our door.
The proposed structure is well organized and offers a good support for those
responsible for devising education curricula, however from SQE
perspective of year 2003 this solution is hardly acceptable. Putting Software
Quality in Recurring Area (refer to the explanation above) allows “gluing”
this component freely wherever one could please. Moreover, it is practically
infeasible to “glue” such a large component in one piece to another
component, so in order to allow “gluing” the component has to be
partitioned. How and following what logic?
On the level of theory two major projects offer some support to an SQE
teacher: SEEK and SWEBOK.
SEEK, as it was presented in the previous chapter, is an ambitious project
with rather good provisions for success but still relatively far from
completeness and stability.
Software Quality
Additional Uses
of SQA and
V&V data
Figure 1. SWEBOK’s Software Quality Knowledge Area breakdown of
topics
Stakeholders’
Requirements
Operational
Quality in Use Quality
Internal Quality
Stakeholders’
Requirements
Operational
Quality Quality
Requirements Requirements
Quality
in Use
Requirements
External Quality
Requirements
Internal Quality
Requirements
Legend:
Solid arrows ask the question HOW
Boxes ask the question WHAT (choices)
Dashed arrows ask about TRACING
In this model solid arrows indicate the path of questions “how” that have to
be asked when executing requirements decomposition, boxes ask questions
“(into) what” to help define requirements that result from decomposition
process and dashed arrows indicate the path of the subject of traceability of
requirements.
The theoretical and practical knowledge of responses to the above questions
should allow the SQ engineer to professionally manage the process of
quality requirements analysis and definition.
The Quality measurement and evaluation instruments component has as the
objective to educate the SQ engineer in existing quality models and
measures that allow measuring chosen quality attributes of software, and in
processes that support this activity. Again, these two elements are well
documented and can be easily taught, but also are static. The engineering
part of the knowledge, which is mapping of these instruments into software
lifecycle phases (Fig.4), is much less documented and requires further
research. Such a situation may however turn more promising from
educational process point of view, as usually the knowledge acquired
actively stays longer than this acquired through lectures.
Stakeholder
Requirements
Definition
Requirements
Analysis Quality
Instruments
Architectural
Design
Implementation Mapping
Integration
Verification
Evaluation
Process
Transition
Validation
Operation &
Maintenance
Product Development
and Maintenance
SW Product Quality
Requirements
Product
in
Use
6. Conclusion
Software Quality Engineering enters now its very active phase of the
research, creating best practices and industry application. The academic
teachers posses enormous knowledge, experience and will to discover new
areas and pass it all to students who will convey the new science and best
practices to the industry. There are new projects in the domain of Software
Engineering body of knowledge and education together with works of
International Organization for Standards (ISO) that offer a considerable
support to teachers. All that indicates a very promising future for Software
Quality Engineering, but to achieve the maturity of this domain both the
academia and industry have to invest more in research in many incoming
years.
References
1. Abreu E., M., “Consumer groups target software”. Reuters, June 14,
2002
2. Halde M., Martin R., Beauchemin P., “Évaluation de la qualité d'un
logiciel à l'aide de la méthode SQAE de MITRE”. École de technologie
supérieure, 2003
3. Côté M-A., Ktata O., Azzouz R., “Migration et Adaptation du Software
Quality Assessment Exercise de Mitre Corp”. École de technologie
supérieure, 2003
4. Shaw M. “We Can Teach Software Better”. Computing Research News,
4, 4 September 1992 (pp. 2, 3, 4, 12)
5. Bagert D., J., et al. “Guidelines for Software Engineering Education”
Version 1.0. Technical report cmu/sei-99-tr-032 esc-tr-99-002. SEI October
1999
6. Sobel A., E., K., “Computing Curricula - Software Engineering
Volume”. Software Engineering Education Knowledge (SEEK), First Draft.
IEEE Computer Society and ACM. August 28, 2002
7. Sobel A., E., K., “Computing Curricula - Software Engineering
Volume”. Software Engineering Education Knowledge (SEEK), Second
Draft. IEEE Computer Society and ACM. December 6, 2002
8. Vliet H. van, Suryn W. et al. “Thoughts on Software Engineering
Knowledge, and how to organize it”. IEEE Computer Society, 2003.
Prepared for May 2003.
9. Abran, A., Moore, J.W., Bourque, P., Dupuis, R., Tripp, L. “Guide to the
Software Engineering Body of Knowledge – Trial Version”. IEEE
Computer Society, Los Alamos, 2001
10. Frailey D. et al. “Using SWEBOK for Education Programs in Industry
and Academia”. Southern Methodist University and Raytheon Company,
2002
11. Suryn W. et al. “Amélioration de la structure du programme
baccalauréat en Genie Logiciel”. ”. École de technologie supérieure,
September 2002
12. Suryn W.,, Robert F., Abran A., Bourque P., Champagne R., “
Experimental Support Analysis of the Software Construction Knowledge
Area in the SWEBOK Guide (Trial Version 1.0)”. IEEE Computer Society,
2003. Prepared for May 2003.
13. Palza E. “Analyse du contenu du chapitre « Requirements » dans
SWEBOK Version 0,95”. École de technologie supérieure, Decemeber
2001.
14. Vliet H. van., Software Engineering, Principles and Practice , Second
Edition. Wiley & Son,s 2001.
15. ISO/IEC 9126 – Software Engineering – Product Quality - Part 1:
Quality Model. 2001
16. ISO/IEC 9126 – Software Engineering – Product Quality - Part 2:
External Metrics. Planned for 2003.
17. ISO/IEC 9126 – Software Engineering – Product Quality - Part 3:
Internal Metrics. Planned for 2003.
18. ISO/IEC 9126 – Software Engineering – Product Quality - Part 4:
Quality in Use Metrics. Planned for 2003.
19. Suryn W., Abran A., “ISO/IEC SQuaRE. The second generation of
standards for software product quality”. Submitted to QSIC 2003 – Third
International Conference on Quality Software Beijing, China, September
25-26, 2003
20. ISO/IEC 14598 Information Technology - Software Product
Evaluation, Parts 1-6. 1999-2001
21. ISO/IEC 15939 - Software Engineering - Software Measurement
Process. 2002
22. ISO/IEC 19761 Software Engineering – COSMIC FFP: A functional
sizing method, 2003
23. ISO 12207 - Information technology - Software Engineering - Software
Life-Cycle Processes, 1995
24. ISO/IEC 15288 - Information Technology - Life Cycle Management -
System Life Cycle Processes. 2002
25. Martin R., A., Morrison S., A., Shafer L., H., “Providing a Framework
for Effective Software Quality Assessment: First Step in Automating
Assessments”. The MITRE Corporation, April 1996
26. Georgiadou E. et al. “Towards a Multi-layered Customizable Software
Quality Model”. Proceedings of SQM2003
27. Kunz M. “The prototypical web-based implementation of the QEST
model”. Otto-von-Guericke University Magdeburg, Germany. 2003
28. Suryn W. et al. “Software Product Quality Practices Quality
Measurement and Evaluation using TL9000 and ISO/IEC 9126”. IEEE
Computer Society, 2003. Prepared for May 2003.
29. TL9000 Quality Management System Requirements Handbook,
Release 3.0, QuEST Forum 2001
30. TL9000 Quality Management System Measurements Handbook,
Release 3.0, QuEST Forum 2001