20442 Software Engineering: Abstraction and Object-Oriented Design 1

Credits: 3 intermediate and 3 advanced credits in Computer Science

Prerequisites: none

Required: Data Structures and Introduction to Algorithms (or Data Structures)

The course is based on a translation of Software Engineering with Ada (2nd ed.), by G. Booch (Benjamin/Cummings, 1987); additional material with an emphasis on inheritance; and a collection of articles on selected topics in software engineering.

The course deals with software engineering and the principles of abstraction and object-oriented design. It emphasizes the development from the design stage and on. Through Ada, an object-oriented programming language, the course introduces and teaches basic software engineering principles such as modularity, data abstraction, information hiding, and polymorphism. It also discusses principles of concurrency.

Topics: Software engineering principles; Overview of Ada language; Data structures; Algorithms and control; Packaging concepts and generic program units; Concurrent real-time processing; Systems development with Ada; The software life cycle with Ada.


1There is some overlap in the content of this and other courses. For details, see Overlapping Courses.