ABSTRACT

This chapter presents a straightforward definition of a software system architecture, which can be found in the interesting treatise on agility and discipline as: a software system architecture defines a collection of software system components, connectors and constraints; and a collection of system stakeholders’ need statements. The software system architect has the styles at his or her disposal, and the results of the style selections, in effect, constitute an architecture. Moving explicitly to software, Mark Maier suggests that such an architecture is the embodiment of the earliest set of design decisions about a system, and these early bindings carry weight far out of proportion to their individual gravity with respect to the system’s remaining development, its service in deployment, and its maintenance life. The chapter suggests that systems and software architecting approaches can be “unified,” at the appropriate level of what is meant by an architecture.