CptS 322: Software Engineering Principles I

Spring 2024

Course credits: 3

Meeting time: Tuesday, Thursday, 14:55 – 16:10, Jan 8 – April 26

Location: Carpenter 102 (in-person)

Course webpage: http://www.eecs.wsu.edu/~hcai/cpts322


Instructor: Haipeng Cai

                Office location: EME B47; and Zoom (id: 427 060 7346 or


                Email: haipeng.cai@wsu.edu  Phone: 509-335-7114

                Office hours: Tuesday, Thursday, 16:15 – 17:15, or by appointments

Teaching Assistants:

Asif Zaman:

                Office location: Sloan 316; and Zoom (id: 660 849 7408; Passcode: 909274) https://wsu.zoom.us/j/6608497408?pwd=Z1UyaDFiRG1xaTlqMDJwVEZmUEJpdz09

                Email: asif.zaman@wsu.edu Phone: 509-592-1841

                Office hours: Monday, Wednesday, 2:30 – 3:30 pm, or by appointments

Roy Zabetski:

           Office location: Dana 136; Zoom id: 992 508 4660  

           Email: roy.zabetski@wsu.edu 

           Office hours: Monday, Wednesday 3:00 – 4:00pm, or by appointments

Course Description

Software engineering is a subject that concerns the holistic process of software development, distilling the common principles for constructing and maintaining quality software products independent of particular programming languages used. The core of this subject is characteristics of a lifecycle model that covers different phases of the software development process, including requirement analysis, software design, implementation, testing and validation, evolution and maintenance. Beyond an introduction to the holistic software process at first, this course will mainly focus on the first two phases, requirement analysis and design, covering object-oriented and functional paradigms.


Course Content Overview

The core content is the generic software process and concrete software process models, requirement engineering and various analysis model elements, design engineering and various design model elements, and introduction to quality assurance, software testing and software project management. Students will also learn valuable skills necessary for software engineering practices, including using a version control system, creating project plans, soliciting requirements, creating design models, and practicing validation and verification activities. Students will participate in a semester-long group project to gain hands-on experience applying software engineering principles and techniques.

Course Learning Objectives

This course will help students achieve the following objectives:

By the end of the course, students will be able to



Students taking this course are expected to have already taken CptS 222 or CptS 223 with a grade C or better (NO concurrent enrollment). Through these prerequisite courses, students should have gained a solid background in data structures and object-oriented programming (C/C++ or Java).



[SEPA] R. Pressman, Software Engineering: A Practitioner's Approach, 7th edition, McGraw-Hill. 2009. ISBN-10: 0073375977. (newer editions are good too.)

Supplemental Texts

[MMM] Frederick P. Brooks, The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition. Addison-Wesley Professional. ISBN-10: 0201835959.

[ISSE] Ian Sommerville, Software Engineering, 9th edition, Addison-Wesley. ISBN-10: 0137035152.


Content Outline and Lecture Schedule (Tentative, weekly)

Week / dates





Syllabus, introduction to SE, course project, software process framework

pp. 3-24

Project documents

Project milestone 0

Homework 1


Introduction to software version control and process framework

Git basics

pp. 30-42


Software process models, agile process

pp. 43-90

Project milestone 1


Requirements engineering

pp. 119-145

pp.  841-859

Homework 2


Requirements modeling: scenario-based elements

pp. 148-164

pp.  847-848

Project milestone 2


Requirements modeling: class-based elements

pp. 164-173

pp.  842-857

pp.  863-870

Project milestone 3

Homework 3


Midterm review

Midterm exam (Feb 20, Tuesday: 2:55-4:10 pm)


Requirements modeling: flow-oriented elements

pp. 173-194


Requirements modeling: behavioral elements

pp. 195-205

pp. 848-853

Project milestone 6 (early stage)


Spring vacation


Design engineering, design modeling

pp. 215-264

Project milestone 4

Homework 4


Design modeling

pp. 265-273


Design modeling

pp. 276-335

Project milestone 5

Homework 5


Quality management

pp. 398-446

Project milestone 6

Project milestone 7


Software testing

pp. 449-662

Project milestone 8


Final exam review

Project presentation


Final exam (April 29, Monday: 4:30-6:30pm)


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. In addition to these basic components of grade, extra/bonus points may be earned through quizzes and extended class participation. Ways of extended class participation include in-class discussion and office-hour attendance. It is at the instructor’s discretion to calculate the extra/bonus points by the end of the semester.

Breakdown                          Scale mapping

























Midterm exam








Final exam










We will communicate announcements, assignments, lecture materials and other learning resources all on Canvas. In particular, we will host off-class Q&A through the Discussion Board on Canvas. Canvas is also the portal to be used for project deliverables and homework assignments submission and grading. For questions on course materials, lectures, and course project milestones, contact the instructor/TA on the Discussion Board by sending posts instead of by emails, so as to facilitate communication management. You have options for sending private (anonymous) posts. Make sure you subscribe to 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 supplementary slides and assigned readings 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. Lectures will be delivered mainly through whiteboard. It is the students' responsibility to take their own notes during lectures.

If you know you will miss a lecture for a justifiable reason such as a university activity, religious holiday, military service, or a medical appointment, notify the instructor by email or phone call at least 12 hours before the lecture. If you are participating in a university activity the supervisor of the activity should provide you with documentation. Others should provide a written explanation in their own words by email -- documentation from medical personnel is NOT required but you must document the absence. If you are unexpectedly sick or otherwise unable to attend due to an emergency, contact the instructor as soon as possible. If you miss a class for these justifiable reasons, arrange with a fellow student to get and digest the corresponding notes, and go to the instructor’s office hours for further help if needed.

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. If you attend 80% of the sampled lectures, you will receive the basic participation credit in full. Bonus points will be given to students attending more than 80% of sampled lectures.

In addition, students are expected to maintain a professional and respectful classroom environment, for which students are suggested to:

Homework and Project

Homework assignments usually require 1-2 weeks to complete. These assignments with respective due dates will be announced in class and posted on Canvas. You are encouraged to take advantage of office hours offered by both the instructor and TA if you have questions for homework/project assignments.


The progress of a semester-long group project will be measured by milestones. The objectives, requirements, and due date of each milestone will be communicated the same way the homework assignments are managed. For each milestone, your group will be required to submit a written report, code, and/or test cases to demonstrate project progress. 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.

Unless specified otherwise, each homework or project milestone shall be created and submitted electronically as a single PDF on Canvas prior to the deadline which is 11:59 pm of the posted due date.

Late submission policy

NO late homework or project milestone submissions will be accepted unless the instructor grants an extension upon request by individual students/groups via email at least 24 hours before the deadline.

If an extension is granted, the penalty of a late submission is 2% point deduction for every day after the original deadline. The instructor may allow for late submissions without penalty if extenuating cases are explained in the notice email sent to the instructor.

Note that by the end of the semester, it is the university’s policy that missing any homework or project milestone submission without prior notice and extension approval will lead to an “I” (incomplete) grade for the responsible students---that means an I grade for this course, NOT just for the associated assignment. So if you submit an assignment late without notice/approval, you may just receive a zero grade for that assignment alone, but if you miss an assignment in the end you will get an ‘I’ grade for the course as a whole (that is what the grade means: the student does not complete the coursework!). Students missing an exam by the end of the semester will also receive an 'I' grade for this course.


Expected Effort

Beyond the time for lecture attendance, students in this class are expected to invest a minimum of 2-3 hours outside class for each lecture equivalent (or 4-6 hours per week), including the time for working on homework assignments and the course project.

COVID-19 Policy

During the Covid-19 pandemic, necessary accommodations will be offered as well on a case-by-case basis according to the specific personal requests from students and the world/nation/state-wide pandemic development and orders.

Students are expected to abide by all current COVID-19 related university policies and public health directives, which could include wearing a cloth face covering, physically distancing, self-attestations, and sanitizing common use spaces.  All current COVID-19 related university policies and public health directives are located at https://wsu.edu/covid-19/.  Students who do not comply with these directives may be required to leave the classroom; in egregious or repetitive cases, students may be referred to the Center for Community Standards for university disciplinary action.

Academic Integrity / Honor Code

Academic integrity is the cornerstone of higher education. As such, all members of the university community share responsibility for maintaining and promoting the principles of integrity in all activities, including academic integrity and honest scholarship. Academic integrity will be strongly enforced in this course. Students who violate WSU’s Academic Integrity Policy (identified in Washington Administrative Code (WAC) 504-26-010(4) will receive a fail grade for the course, will not have the option to withdraw from the course pending an appeal, and will be reported to the Center for Community Standards.

Cheating includes, but is not limited to, plagiarism and unauthorized collaboration as defined in the Standards of Conduct for Students, WAC 504-26-010(3). You need to read and understand all of the definitions of cheating.  If you have any questions about what is and is not allowed in this course, you should ask course instructors before proceeding. If you wish to appeal a faculty member’s decision relating to academic integrity, please use the form available at communitystandards.wsu.edu. Make sure you submit your appeal within 21 calendar days of the faculty member’s decision.

In particular, 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. 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:

  1. You may communicate verbally with another student, as long as you do not communicate the answer or the content of what you are going to turn in, whether it be code or text. A good way to work in this regard is for the student providing help to ask guiding questions of the student needing help, letting them arrive at the answer themselves.
  2. You may draw diagrams and such on a whiteboard, chalkboard, or piece of blank paper to illustrate the verbal points made in 1), as long as you do not write what you are going to turn in.

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.

Students with Disabilities

Reasonable accommodations are available for students with documented disabilities or chronic medical or psychological conditions. If you have a disability and need accommodations to fully participate in this class, please visit your campus’ Access Center/Services website to follow published procedures to request accommodations. Students may also contact their campus offices to schedule an appointment with a Disability Specialist. All disability related accommodations are to be approved through the Access Center/Services on your campus. It is a university expectation that students visit with instructors (via email, Zoom, or in person) to discuss logistics within two weeks after they have officially requested their accommodations.

For more information contact a Disability Specialist on your home campus:

Accommodation for Religious Observances or Activities

Washington State University reasonably accommodates absences allowing for students to take holidays for reasons of faith or conscience or organized activities conducted under the auspices of a religious denomination, church, or religious organization. Reasonable accommodation requires the student to coordinate with the instructor on scheduling examinations or other activities necessary for course completion. Students requesting accommodation must provide written notification within the first two weeks of the beginning of the course and include specific dates for absences. Approved accommodations for absences will not adversely impact student grades. Absence from classes or examinations for religious reasons does not relieve students from responsibility for any part of the course work required during the period of absence. Students who feel they have been treated unfairly in terms of this accommodation may refer to Academic Regulation 104 – Academic Complaint Procedures.

Safety and Emergency Information

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 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.