John Hurley: OverviewSina Sheikholeslami: DecompositionXuan Yang: Uses (relationship type),
GeneralizationAnna Deghdzunyan: Layers part 1Urvish Mehta: Layers Part 2
View: a representation of a coherent set of architectural elements, as written by and read by system stakeholders
Additional Source on Views:
Clements et al, Documenting Software Architectures: Views and Beyond, 2nd Ed, Addison-Wesley SEI Series in Software Engineering, 2011 p. 55- 122
A Module View shows the principal implementation units, or modules, of a system, together with the relations among these units.
Modules vs. Components Module is a unit of implementation,
Component is a runtime entity We are used to making a distinction between
policy and implementation and thinking of implementation as the lower layer. Here components are where the rubber hits the road; implementation is the middle layer
Consider a server which serves a piece of info to ten identical clients. There are 11 components but only two modules.
Module structure contains the following relationship types: Decomposition (‘is a submodule of”) Uses (“requires the correct presence of”)
Layered (“uses the services of”) Class / Generalization (“is an instance of;
shares access methods of”)
The Layered Style The division of the software into
units (layers)
Each partition (layer) provides through a public interface - a cohesive set of services.
Why isn’t this a layered style?
• The layers are created to interact according to a strict ordering relation.
“allowed to use” relations Using facilities of the immediate
lower layer Using facilities of any lower layer . bridging layers . if many exists - poorly
structured
Bad Example
•Upward usage
Observations Cannot be constructed by examining
source code The way of defining layers can be . layers will work independently in different
time scales . different people with different sets of skills
will work on different layers
Elements, Relationships, Properties
What the Layered Style Is For Modifiability and Portability Information hiding Grouping into layers same
technology helps to assign to more specialized
teams.
Notations for the Layered Style Stacks
Rings
Notations for the Layered Style (cont.)
Segmented Layers
Layers with sidecar