Applies engineering principles to phases of software product development, project planning, requirements definition, design, design patterns, validation, and maintenance. Emphasizes practical methods for communicating and verifying definitions and designs---prototyping, inspections, and modeling (primarily UML). Includes relation to embedded systems and object-oriented design. Same as CSCI 5548. Prerequisites: Requires prerequisite courses ECEN 1030, CSCI 1300 and CSCI 2270 (all minimum grade D-). Restricted to graduate students only.