Abstract

Techniques, methods, and tools for designing, building, analyzing, and evaluating the structural, architectural, and behavioral properties of software systems.  It includes the study of the fundamental concepts and principles of software architectural design, structured design, object-oriented design, component-level design and design for reuse.