CS 846
Topics in Software Engineering: Software Quality
Course Meeting Time
Mondays, 1 to 3:50 pm, DC 3313
Instructor
Anne Banks Pidduck
DC 3331, Ext. 34662
apidduck@uwaterloo.ca
Office Hours: Thursdays 11 am to 12 noon
Course Objectives
This course has three major objectives. The first is to introduce the student to the breadth of approaches, views and techniques used to create software quality. The second is to provide an opportunity for the student to explore at least one aspect of software quality in depth. The third is to advance the student's research, writing and presentation skills.
After completing this course, students will:
- be able to describe what software quality is and what it is not;
- be familiar with the terminology used to describe software quality approaches;
- understand the major software quality approaches and technologies in broad terms;
- use, analyze and review at least one software quality tool;
- research and document at least one software quality approach or technology in depth;
- be able to propose future work and improvements in software quality research;
- extend the software quality discipline through a journal-quality academic paper.
Course Outline
Software quality is one of the ultimate goals of developers, managers and users. The definitions, understanding, demonstrations and measurement of software quality may differ, however, among these three groups. Developers focus on standards, methodologies, processes and techniques for improving and measuring software. Managers and users have a customer view with concerns about product rather than process. These stakeholders are also concerned about time and budget and may be willing to give up some software quality to meet other demands.
We will explore software quality from a number of viewpoints and contexts through the following issues:
What is software quality?
Perceptions of software quality: different views, such as developer, manager, user
Quality at various stages of the SDLC: requirements, design, testing and so on
Process quality
Product quality
Software quality standards
Cost of quality: cost/benefit analysis and 'good enough' software
Software quality measurement and metrics
Demonstrations of quality
Methodologies
Techniques for improving software quality
Technologies
Workload and Evaluation
Students will read and discuss a number of current research papers throughout the term. Each student will prepare two short research papers, a software assignment, at least one research seminar and a large-scale research paper about topics approved by the instructor, reflecting material covered. The first paper will be general and address the broad topic of software quality approaches, terminology, and applications in mainstream areas. The second paper will address a specific area of software quality in depth. The software assignment will use or develop an accessible software quality tool and result in a concise technical report. The seminars will reflect learning from one or more of the other activities in the course. The final research paper will be about 6000 words (20 pages) and suitable for submission to a software engineering conference or journal.
- In-class critiques, discussion, questions, visitors {10 marks}
- Week 2: Short research paper {5 marks}
- Week 4: Short research paper {15 marks}
- Week 6: Software assignment {10 marks}
- In-class Seminars {10 marks}
- Week 12: Large-scale research paper {50 marks}
Assignments
- Assignment 1
- A1 Article
- Efficient Reading
- Critique Tips
Academic Integrity
Policy 71, Student Academic Discipline