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




(CS 385 or CS 590) and (Grad Student or (Junior or Senior))


Computer Science Program

Typically Offered Periods

Fall Semester Spring Semester Summer Session 1 Summer Session 2