ABSTRACT

In a broad context, soƒware architecture refers to both the process and design products required to systematically build soƒware systems that meet their intended functions and quality. Of course, such broad de¥nition of soƒware architecture leaves out many of the details that make architecture essential in designing today’s complex soƒware systems. To understand the meaning and importance of soƒware architecture, it helps to examine how other engineering disciplines employ architectural designs to build complex systems with demanding functional and quality requirements. Consider the role of architecture in civil engineering, where designing and building structures such as houses, bridges, and high-rises is a nontrivial task. In these cases, architectural designs are used to specify the overall appearance of physical structures. When examined closer, it becomes evident that this broad de¥nition is insušcient to describe to actual role of architecture in the process of building these systems, which involve far more than structural appearance. Architectural designs must also specify a variety of quality properties that make structures functional, safe, and economical.  is requires architects to incorporate design alternatives that consider a wide variety of factors (e.g., social, aesthetic, and cost) supporting the needs of stakeholders, including the people who use these physical structures.