600 likes | 699 Views
Wrap up. Structures and views Quality attribute scenarios Achieving quality attributes via tactics Architectural pattern and styles. Structures and Views. A view is a representation of a coherent set of architectural elements, consisting of: a set of elements
E N D
Structures and views • Quality attribute scenarios • Achieving quality attributes via tactics • Architectural pattern and styles
Structures and Views • A view is a representation of a coherent set of architectural elements, consisting of: • a set of elements • the relationships among them • A structure is the set of elements itself, as they exist in software or hardware. • Often used interchangeably, text will distinguish.
Groups of Architectural Structures • Module structures • units of implementation with assigned areas of functionality - usually static • Component-and-connector structures • runtime components (principal units of computation) and connectors (communication vehicles) • Allocation structures • show relationships between software elements & external environments (creation or execution)
Three Types of Structures • Correspond to the three broad types of decisions that architectural design involves: • How is the system to be structured as a set of code units (modules?) • How is the system to be structured as a set of elements that have runtime behavior (components) and interactions (connectors)? • How is the system to relate to non-software structures in its environment (i.e., CPUs, file systems, networks, development teams, etc. - allocation)?
Non-functional Properties • Each structure provides a method for reasoning about some of the relevant quality attributes, for example: • the uses structure, must be engineered to build a system that can be easily extended or contracted • the process structure is engineered to eliminate deadlock and reduce bottlenecks • the module decomposition structure is engineered to produce modifiable systems, etc.
Value of Structures • Each structure provides the architect with a different view into the system & a different leverage point for design. • Table 2.1 on page 39-40 should be useful in your class project...
Relating Structures to Each Other • Although the structures give different system perspectives, they are not independent. • Elements of one structure are related to elements in another, and we need to reason about these relationships. • For example, a module in a decomposition structure may map to one, part of one, or several, components in a component-and-connector structure at runtime. • In general, mappings are many-many.
Choosing Structures • Kruchten’s Four + One Views: • Logical - elements are “key abstractions” that are objects or classes in OO. This is a module view. • Process - addresses concurrency & distribution of functionality. This is a C&C view. • Development - shows organization of software modules, libraries, subsystems, and units of development. This is an allocation view. • Physical - maps other elements onto processing & communication nodes, also an allocation view, but usually referred to specifically as the deployment view.