Architecture¶
The architecture of a software-intensive system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them.
System Structures: - static (design-time organization): might be modules, object-oriented classes or packages, database stored procedures, services, or any other self-contained code unit. - dynamic (runtime organization): might be messages, parallel or sequential execution of internal tasks Externally Visible System Properties: - externally visible behavior: what the system does from the view-point of external observer. It defines the functional interactions between the system and its environment. Examples: API. External behavior may be modeled by treating the system as a black box - quality properties: how the system does form the view-point of external observer. its nonfunctional characteristics. Quality property is an externally visible, nonfunctional property of a system such as performance, security, or scalability.
A good architecture is one that successfully meets the objectives, goals, and needs of its stakeholders.
References¶
- Software System Architecture Nick Rozanski, Edin Woods (software-systems-architecture-rozanski-woods)