This document provides definitions and information about software architecture and specifications. It defines architectural models as the top-level structure and organizing principles of a system. Specifications are described at different levels: A-level from the customer perspective, B-level from the developer perspective describing logical components. Requirements are decomposed into processes and data flows during analysis and composed into modules and classes during design. Specifications should be unambiguous and testable.