This course examines and analyzes the methodologies used in design, documentation, verification, implementation, validation, performance, evaluation and maintenance for the development of large software systems. The course covers requirements modeling, design concepts, proof of correctness and automated testing techniques, security engineering, software reuse, component-based software engineering, distributed system software engineering, service-oriented software engineering, systems engineering, systems of systems, realtime software engineering, and software management. The students will design and implement large software systems.
Prerequisites
CS600 or its equivalent