CS 574 Object-Oriented Analysis and Design
Theory of object-oriented design, classes, interfaces, inheritance hierarchy, and correctness; abstract data types, encapsulation, formal specification with preconditions, postconditions and invariants, and proofs of correctness; object-oriented software, objects and classes, genericity, inheritance, polymorphism, and overloading; single and multiple inheritance, programming by contract, subclassing as subcontract, specification, and verification; programming language examples include C+ +, Java, Smalltalk, and Eiffel. Pre-req: Undergraduate data structures and algorithms OR CS 590
Prerequisite
(
CS 385 or
CS 590) and (Grad Student or (Junior or Senior))