This document introduces the concept of software architecture and discusses its origins and importance. It describes some of the unique difficulties of software engineering, including complexity, conformity, changeability, and intangibility. It argues that software architecture can help address these difficulties by providing intellectual control, conceptual integrity, and a basis for knowledge reuse. The document uses examples like the World Wide Web and product line architectures to illustrate how architectural design influences software properties and facilitates reuse.