====== System Architecture ====== Below is based on [[http://www.iso-architecture.org/ieee-1471/docs/all-about-ieee-1471.pdf|D. Emery, M. Maier, R. Hilliard, "All about IEE Std 1471" (2008)]] ===== Definition ===== ==== What it is ==== * **Architecture** - fundamental organization of a system emobodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution. * **Architecture Description (AD)** - Artifacts that document an architecture. It is addressed to system's stakeholders to answer their concerns with the system. It is organized into one or more views of the system. * Identification of stakeholders and concerns * Selectrion and declaration of viewpoints used * Architectural views, each conforming to a viewpoint * Any known inconsistencies * Architectural rationale * **Concern** - Stakeholder's interest which pertains to a key characteristic of the system * **Stakeholder** - An individual or team with interest in, or concerns relative to, a system * **View** - A representation of a whole system from the perspective of a related set of concerns. Views are modular allowing a view to utilize multiple notations and a model may be shared between multiple views. View is * What you see * System/model specific * E.g. Front view of chair, front view of table * Includes the following attributes * Viewpoint name * Stakeholders addressed by the viewpoint * Architectural concerns framed by the viewpoint * Viewpoint language or analytical methods used to create the view * Source of the viewpoint * **Viewpoints** - Each view corresponds to only one viewpoint. Viewpoints define resources and rules for constructing views. * Where you look from * System/model generic. Therefore it is proposed that there is a //library// of viewpoints * E.g. The concept of 'front view' ==== What it is not ==== ===== Rationale ===== The model of a system is often rich in information and addresses concerns from a wide range of stakeholders. To reduce perceived complexity, separate the concerns into different views. Views and Viewpoints provide a 'window' into the model that allows the viewer to obtain the information that they need. Each view addresses one or more concerns of the stakeholders. If a view does not answer some stakeholder concerns then do not create view. ===== Pre-condition ===== ===== Post-condition ===== ===== Performance Qualities ===== ===== Problem ===== ===== Methodology ===== ==== Method ==== Each architectural viewpoint is determined by: - Create a Viewpoint - Viewpoint name - Stakeholders addressed by the viewpoint - Architectural concerns "framed" by the viewpoint - Method used to construct, illustrate and analyze resulting view - Source (if any) of the viewpoint - (optional) Consistency or completeness checks associated with underlying method to be applied - (optional) Evaluation or analysis techniques to be applied - (optional) Heuristics, patters or guidelines which aid the synthesis of an associated view - Create a View - Apply a Conform edge from View to Viewpoint (edge is now replaced with a solid line with an empty arrow, similar to the Generalization edge) - Apply a Expose edge from View to element that the View exposes (e.g. "Requirements" package) === Heuristics === ==== Process ==== ===== Parts ===== * Architectural Description (AD): Collection of products to document an architecture. AD addresses all identified stakeholders' concerns. Includes at least, * Identification of stakeholders and concerns * Selection and declaration of the viewpoints used * Views, each conforming to a viewpoint * Any known inconsistencies * Architectural rationale * Stakeholder: Individual, team or organization with interests in, or concerns relative to, a system * Concerns: Those stakeholders' interests which pertain to the development, operation, or other key characteristics of the system ===== Use Cases ===== ==== Scenarios ====