This course presents a formal approach to state-of-the-art techniques in software design and development and provides a means for students to apply the techniques. An integral part of the course is the involvement of students working in teams in the organization, management and development of a large software project.
Introduction to Software Design paradigms, Project Management, System and Software Requirements, Computer Aided Software Engineering, and Software Design Fundamentals using existing documentation for a proposed system. In-depth survey of data flow-oriented, object-oriented, dataoriented, and real-time design. Team project involving the implementation of the proposed system using structured programming, information hiding, and strength and coupling measures. Software reviews. Software testing techniques and strategies. Software maintenance. Each student will be required to make an oral presentation as part of the team project.
The student will learn techniques useful in designing and implementing large group projects. These techniques include formalized requirements analysis and design specification, use of project management tools, both traditional and object- oriented design, and efficient coding methods. Computer Aided Software Engineering (CASE) tools will be introduced.
Data Structures and Algorithms Analysis
Organization of Databases