A study of design methods and their use in the correct implementation, maintenance and evolution of software systems. Topics include design, implementation, testing, documentation needs and standards, support tools. Students design and implement components of a software system. Weekly 1.5 hour laboratory (starting 2017). Prerequisites: General prerequisites; including SC/MATH 1090 3.00; LE/EECS 2031 3.00.
Software designers are experts at developing software products that are correct, robust, efficient and maintainable. Correctness is the ability of software products to perform according to specification. Robustness is the ability of a software system to react appropriately to abnormal conditions. Software is maintainable if it is well-designed according to the principles of abstraction, modularity, and information hiding. At the end of the course, students will be able to:
The course outline is a guideline to topics that will be discussed in the course, and when they will be discussed. It is a tentative outline and may be modified during the term.
Chapters 1 - 6
Chapters 7 - 10
Victoria Day, University is closed
Chapter 19
Chapters 11 - 13
Chapters 14 - 17
Assignment 1 Due on midnight
Midterm test
Deadline to drop the course without grade
Civic Holiday, University closed
Study days
Summer term ends
Exams will be scheduled on August 11-19, 2016 Specific information will be provided in the later time.