510 likes | 659 Views
John Hurley: Overview Sina Sheikholeslami : Decomposition Xuan Yang: Uses (relationship type), Generalization Anna Deghdzunyan : Layers part 1 Urvish Mehta: Layers Part 2.
E N D
John Hurley: Overview SinaSheikholeslami: Decomposition Xuan Yang: Uses (relationship type), Generalization Anna Deghdzunyan: Layers part 1 Urvish 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
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