Computer Science

Software Design and Testing

Software Design and Testing
Principles of software design, design patterns, design representation, refactoring. Principles of software quality assurance and testing. Development and testing tools.
 Hours3.0 Credit, 3.0 Lecture, 0.0 Lab
 PrerequisitesC S 240
 NoteStudents are allowed only 1 retake of C S 340. This includes students who have failed or withdrawn (received a "W" grade). If after 1 retake, a student needs to retake the course again, the student must wait 1 semester/term before being allowed to take any C S course and must follow the petition process at This policy does not apply to classes dropped before the add/drop deadline. Petitions for exceptions to the policy can be completed at
 TaughtFall, Winter, Spring, Summer
 ProgramsContaining C S 340
Course Outcomes: 

Software Design Principles

Articulate the principles of effective software design.

Design Judgement

Know when and how to apply various design patterns.

Document and Communicate Designs

Demonstrate how to effectively document and communicate software designs.

Quality Assurance

Understand what quality assurance is, know how to build quality into software using review techniques, and demonstrate quality evaluation through testing.

Software Development Tools

Use a variety of software development tools, including IDEs, automation tools, static analysis tools, source code control systems, unit testing tools, and documentation tools.

Group Work

Work effectively in a group to produce quality software using 1-5 above.