Object Oriented Analysis & Design
Description: Large-scale software development has been described as one of the most difficult of human undertakings. This course examines the reasons for the inherent complexity of software construction, and presents structured methods to deal effectively with it. The course will focus on the object-oriented approach for analysis and design. Students will gain an appreciation of the difference between writing programs and doing analysis and design. Problem formulation and decomposition (analysis) and solution building (design) will be covered. Students will work in small groups, each group having the responsibility for analysis, design and implementation of a software system. Case tools will be used in several stages of the development process. Knowledge of an Object-Oriented language such as Java or C++ is a pre-requisite for this course.
Learning Outcomes: 1. Develop a working understanding of formal object-oriented analysis and design processes 2. Develop an appreciation for and understanding of the risks inherent to large-scale software development 3. Learn (through experience!) techniques, processes, and artifacts that can mitigate these risks 4. Develop the skills to determine which processes and OOAD techniques should be applied to a given project, and 5. Develop an understanding of the application of OOAD practices from a software project management perspective