john hurley: overview sina sheikholeslami: decomposition xuan yang: uses (relationship type),
DESCRIPTION
John Hurley: Overview Sina Sheikholeslami: 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 and the relationships between them. - PowerPoint PPT PresentationTRANSCRIPT
John Hurley: Overview
Sina Sheikholeslami: 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 and the relationships between them.
Depicts selected aspects of a model
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”)
Part II
Top level decomposition view forATIA system
Refinement ofATIA-M server-side Java modules showing how it is further decomposed into submodules
Decomposition of A7-E software architecture
Summary of the decomposition style
Part III
Uses Style
Focusing on depends-on relations
Enabling incremental development and
deployment
Elements, Relationships, Properties
UML Notations
UML package diagram
DSM for the UML Diagram
What the Uses Style is for
Planning incremental development and subsets
Debugging and testing
Gauging the effect of changes
What the Uses Style is for (cont)
Generalization Style
Focusing on is-a relation
Supports extension and evolution
Implies inheritance of implementation and interface
Elements, Relationships, Properties
UML Diagrams
What the Generalization Style is For
Object-Oriented designs
Extension
Local change or variation
Reuse
Part IV
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 PortabilityInformation hidingGrouping 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
Part V
Cont…
• Layers are not modules
• A layer may be module
• But modules can be decomposed to other modules; layers are not decomposed to other smaller layers
• segmenting a layer gives rise to modules; modules can span layers
• Tiers are not layers
• Tiers are hybrid view combining cnc and allocation view types
Linux subsystems
• Process Scheduler (PS) – responsible for supporting multitasking by deciding which user process executes.
• Memory Manager (MM) – provides a separate memory space for each user process.
• File System (FS)– provides access to hardware devices
• Network Interface (NI)– encapsulates access to network devicesInter Process Communication (IPC)– allows user processes to communicate with other processes on the same computer
• Initialization (Init)– responsible for initializing the rest of the linux kernel with appropriate usr configured settings
• Library (Lib)– the kernel core which stores the routines that are used by other subsystems for their running.
Examples using Layered StyleUNIX System V
1/28/11
Examples using Layered StyleJAVA EE Application
• Part of the layered view of a set of Java EE applications. The top layer has servlets and action classes responsible for the user interface. DTOs and POJOs that are used by the other layers to hold and transfer data.
1/28/11