Developing large-scale reliable software systems. Theory and methodology for the design and implementation of software systems from requirements analysis through design and implementation, testing, integration, and maintenance. Tools and techniques for all phases of a software system’s life cycle will be discussed. Documentation, testing, and management of large-scale systems. A significant project will be required.