- Software quality concepts
- Program specification and correctness
- Software testing
- Software verification and validation
- Software reviewing and audit
- Software metrics and measurement
- Software reliability
Given the learning outcomes of the "Master in Computer Science and Engineering" program, this course contributes to the development, acquisition and evaluation of the following learning outcomes:
Given the learning outcomes of the "Master  in Computer Science" program, this course contributes to the development, acquisition and evaluation of the following learning outcomes:
Students completing this course successfully will be able to:
- Define software quality and describe the role of quality assurance activities in the software process. '
- Describe how a contract can be used to specify the behavior of a program component. '
- Describe and distinguish among the different types and levels of testing (unit, integration, systems, and 'acceptance).
- Apply a variety of strategies to the testing and debugging of simple programs.
- Describe how available static and dynamic verification tools can be integrated into the software development 'environment. '
- Apply formal specification and analysis techniques to software designs and programs with low complexity. '
- Undertake an inspection of a medium-size code segment.
- Compare simple software measurement techniques. '
- Describe approaches for fault estimation. '
- Explain the problems that exist in achieving high levels of software reliability. '
The contribution of this Teaching Unit to the development and command of the skills and learning outcomes of the programme(s) can be accessed at the end of this sheet, in the section entitled “Programmes/courses offering this Teaching Unit”.
The course includes assignments, counting for 40% of the grade, and an exam, counting for 60% of the grade. Assignments cannot be redone for the September session; the grade remains acquired in September.
- LINGI1101 : mathematical logic
- LSINF1121 : master of object-oriented programming, algorithms and data structures
- LSINF1225 : participating in the implementation of a small-size software project
Having prior or simultaneous experience with the development of a medium- to large-scale software system.
The course slides as well as other relevant and practical information related to the course will be accessible on Moodle. The same platform will also be the means of communication between the teacher(s) and the students.
- Software Quality Engineering: Testing, Quality Assurance, and Quantifiable Improvement. Jeff Tian. 2005, Wiley-IEEE Computer Society Press.
M. Pezzè and Michal Young, Software Testing and Analysis: Process, Principles, and Techniques, Wiley, 2008.
J. Laski, W. Stanley. Software Verification and Analysis. Springer 2009.
- N.E. Fenton and S.L. Pfleeger. Software Metrics: A Rigorous and Practical Approach. 2nd edition, Thomson Computer Press, 1996.