Slide 19 of 31
Notes:
“Nonexecution requirements for a system revolve mainly about building the system to accommodate change of various forms. Choosing a software architecture that accommodates change requires having a strong idea at architecture-creation time of the kinds of changes that will bombard the system during its lifetime. The architecture must handle modifications that may include new computing environments, new platforms deployments, new operator interfaces, incorporation of new or modified physical environment models, addition of new sensing devices, and (most likely of all) changes that nobody considered.”
An architecture is a plan for constructing a system (description of its structure, relationships among its parts, resulting behavior, etc.), the methods and rules for constructing systems according to that structure, the rationale for constructing systems according to that plan (in terms of match to problem-space requirements, technology, etc.) and the rules for evolving the architecture (as problem, technology, etc, change over time)
A product line architecture is the product of domain engineering and is common to all product line applications.