CptS 583: Software Quality
Meeting time: Tuesday, Thursday, 12:00 pm – 13:15 pm, Jan 13 – May 1
Location: Sloan Hall 7 (Pullman campus)
Course webpage: http://www.eecs.wsu.edu/~hcai/cpts583
Instructor: Haipeng Cai
Office location: EME B47
Phone: (509) 335-4178
Office hours: Tuesday, Thursday, 10:50 am – 11:50 pm, or by appointments
Software engineering concerns a holistic process of software development, with a focus and central goal of quality which underlies the key principles in the process. Quality control is an essential umbrella activity throughout all phases of any software process, rather than only concerning software code in the construction phase. The core of this subject lies in the concepts and principles as well as methodologies and techniques for achieving software quality and realizing software quality assurance (SQA). The state of the art and practice of SQA, including practical SQA tools, will also be covered in this course. Of peculiar importance, learning of the SQA principles from this course will be complemented and enhanced by applying the principles to software engineering practice through diverse course projects and managed team collaborations.
Course Content Overview
The core content of this course addresses the various facets of software quality engineering, including the process of software quality assurance (SQA), quality metrics and models, quality measurement and management, and SQA methodologies and techniques. The focus is on how to perform SQA throughout the entire software process, ranging from analysis and design to construction and deployment, as opposed to software testing which mainly focuses on the quality during software construction and maintenance. The key topics to be covered include the following:
Course Learning Objectives
Students will gain knowledge and expertise on the core content of this course, so embodied through their ability to define appropriate, specific quality goals and develop actionable plans to realize the goals. Students will learn techniques that enable and empower software quality management, defining concrete quality metrics and evaluating software quality using the defined metrics. In addition, students will also sharpen valuable skills necessary for software engineering practices, including the use of modern software engineering tools, collaborating in a software development team, and technical communication and peer evaluation. Students will participate in a semester long group project to gain hands-on experiences applying the principles and techniques learned.
Specifically, this course will help students acquire the ability to:
Students taking this course are expected to have already taken undergraduate courses (e.g., Software Engineering, Software Design, etc.) that cover the general software process models and methodologies, as well as requirements analysis and software design methods and principles. Students should have also gained a solid background in data structures and object-oriented programming (C/C++ or Java) through relevant courses to prepare them for realizing implementation and testing tasks.
Topics Outline and Tentative Lecture Schedule
Course overview and introduction to software quality and SQA;
Software quality concepts (I)
Software quality concepts (II);
Software quality planning (I)
Software quality planning (II);
Value and cost of software quality
Quality factors and tradeoffs;
Quality models (I): general frameworks
Quality models (II): reliability model;
Quality metrics and measurement (I): overview, theory
Quality metrics and measurement (II): measurement fundamentals;
Quality metrics and measurement (III): software metrics, quality metrics and measurement
Software product quality metrics and measurement (I): size metrics;
Midterm exam: Feb 27th, Thursday (12-1:15pm)
Software product quality metrics and measurement (I): size metrics;
Software product quality metrics and measurement (II): customer metrics, quality attribute metrics, time/cost/complexity metrics
Software product quality metrics and measurement (III): analysis and design metrics;
Software process quality metrics and measurement (I)
Software process quality metrics and measurement (II);
SQA: overview, concepts, and process (I)
SQA: overview, concepts, and process (II);
SQA: verification/validation, configuration, documentation (I)
SQA: verification/validation, configuration, documentation (II);
Software analysis: program representations
Software analysis: data/control flow analysis;
Software analysis: symbolic execution
Software testing: random testing, test generation;
Software testing: delta debugging
Final exam: May 6, Wednesday (8-10am)
The final course grade will be calculated using the following breakdown and be converted from numeric numbers to letter grades using the scale mapping as follows.
Breakdown Scale mapping
A key component of the coursework is a semester-long group project. The progress of this group project will be measured by deliverables. The objectives, requirements, and due date of each deliverable will be communicated well prior to the due date such that each group will have reasonably enough time to complete the tasks required for the deliverable. For each deliverable, each group will be required to submit a written report and/or code (along with test cases) to demonstrate the progress of the group. Each member of the group will initially receive the same credit based on the quality and timeliness of group submissions, and will be later adjusted according to in-group peer evaluation by the end of the project period. A list of sample project topics along with the concrete details on the deliverables will be given in a separate document (e.g., project description), typically distributed in the first week. Students are encouraged to choose different topics of their own, but should be approved by the instruction before starting the project.
Unless specified otherwise, each project deliverable shall be created and submitted electronically as a single PDF on Blackboard prior to the deadline which is 11:59 pm of the posted due date. Any late submission will receive a zero if no notice is sent to the instructor about the expected delay prior to the deadline; if a notice is sent to the instructor prior to the deadline, then the penalty of the late submission is a flat 10% point deduction for every day after the original due date until the submission is received or the point left becomes zero. Note that by the end of the semester, missing any project deliverable will lead to an “I” (incomplete) grade except for extenuating cases communicated to the instructor in advance -- the I grade for a student means the student does not complete the course. Students missing an exam by the end of the semester will also receive an 'I' grade for this course.
We will communicate announcements, assignments, lecture materials and other learning resources all on Blackboard. In particular, we will host off-class Q&A through the Discussion Board on Blackboard. Blackboard is also the portal to be used for project deliverables submission and grading. For questions on course materials, lectures, and course project milestones, contact the instructor on the Discussion Board by sending posts instead of by emails, so as to facilitate communication. You have options for sending private (anonymous) posts. Make sure you subscribe each of the forums there so that you won't be missing important information about the course logistics and extended lecture discussions initiated by questions raised by other students.
Class attendance is required at all lectures. Although lecture slides and other supplementary learning materials will be posted online, these materials as well as the recommended textbooks are only used as references by the instructor in developing the lectures. Thus, studying these materials and textbooks serves the purpose of getting better prepared for attending in-class lectures, but would by no means substitute for class attendance. Also, the course project requires each team member to be responsible and collaborative as well as to contribute equally; thus, missing lectures without justifiable reasons and then relying on other team members to catch up missed topics is not acceptable. You are also expected to participate in class discussions, which aids learning and provides valuable feedback on the lecture. If you know you will miss a lecture for a justifiable reason such as a university activity or a medical appointment, notify the instructor by email at least 12 hours before the lecture. While attendance will not be taken in every class, it will be sampled randomly at the discretion of the instructor. The basic participation credit that accounts for 5% of the final grade will be calculated using the sampled attendance records (in addition to active participation in classroom discussion).
In addition, students are expected to maintain a professional and respectful classroom environment, for which students are suggested to:
Academic integrity / Honor code
The fundamental requirement for all student work in this class is: Unless otherwise explicitly permitted by the instructor, all work you turn in must be your own. Any instance of academic dishonesty, as defined in the WSU Student Handbook, in this class will be dealt with severely (typically by failing the class) and reported to the WSU Office of Student Conduct.
Note in particular that it is dishonest not only to copy another student's work, but to permit another student to copy yours. Nevertheless, realizing that students can assist each other in understanding general course material, there are limited ways in which student collaboration is permitted:
It will be up to the discretion of the grader (if applicable) and instructor to determine if any assignment shows evidence of collaboration beyond these limits. Any attempt to circumvent the spirit of these rules will be treated as a violation of the fundamental requirement. If you are in doubt, do not give help to or request it from another student: That's what office hours are set for. Information on WSU Academic Integrity can be found at www.academicintegrity.wsu.edu/ and conduct.wsu.edu/, and the WSU Honor code is on https://provost.wsu.edu/tag/wsu-honor-code/. Please also read the EECS Academic Integrity Policy carefully. Use these resources to ensure that you do not inadvertently violate WSU's standard of conduct.
Reasonable accommodations are available for students who have a documented disability. Classroom accommodation forms are available through the Access Center (Washington Building 217; 509-335-3417). If you have a disability and need accommodations to fully participate in this class, please either visit or call the Access Center (Washington Building 217; 509-335-3417) to schedule an appointment with an Access Advisor. All accommodations MUST be approved through the Access Center. For more information, consult the webpage http://accesscenter.wsu.edu or email at Access.Center@wsu.edu.
The Campus Safety Plan (http://safetyplan.wsu.edu) contains a comprehensive listing of university policies, procedures, statistics, and information relating to campus safety. The University emergency management website (http://oem.wsu.edu/) provides campus safety and emergency information. The emergency alternative site (http://alert.wsu.edu) provides information about emergencies and communication resources WSU will use to provide warning and notification during emergencies.
Classroom safety is also of paramount importance at Washington State University, and is the shared responsibility of the entire campus population. WSU urges students to follow the "Alert, Assess, Act" protocol for all types of emergencies and the "Run, Hide, Fight" response for an active shooter incident. Remain ALERT (through direct observation or emergency notification), ASSESS your specific situation, and act in the most appropriate way to assure your own safety (and the safety of others if you are able). Please sign up for emergency alerts on your account at MyWSU.