CS 517 - Software Specification and Design

The course will focus on advanced software modeling and specification techniques. Topics include formal specification techniques, and model-driven software development. Good working knowledge of predicate logic, set theory, and basic knowledge of the UML is assumed.

IMPORTANT: You must have a very good background in (undergraduate level) Discrete Mathematics, in particular, you must be very familiar with predicate logic and basic set theory. In addition, students must satisfy at least one of the following:
• Successful completion of CS414
• Significant industry experience in object-oriented programming and familiarity with the Unified Modeling Language (UML)
• Permission of instructor.

Upon completion of this course, students will be able to
• read and write formal specifications of software systems in Alloy
• be familiar with model checking concepts
• use the UML and OCL to rigorously model software
• form informed opinions about model-driven software development approaches


CS 414 (Object-Oriented Design).