This course introduces students to a methodology and specific design techniques for team-based development of a software system. Against the backdrop of the software engineering life-cycle, this course focuses on the object-oriented paradigm and its supporting processes and tools. Students will be exposed to industrial-accepted standards and tools, such as requirements elicitation, specification, modeling notations, design patterns, software architecture, integrated development environments and testing frameworks. Students will be expected to work together in teams in the complete specification, implementation and testing of a software application.
Prerequisites
knowledge of a recursive high-level language and data structures. An undergraduate course in software engineering is desirable.