john hurley: overview sina sheikholeslami: decomposition xuan yang: uses (relationship type),

63

Upload: mali

Post on 21-Jan-2016

18 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),
Page 2: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

John Hurley: Overview

Sina Sheikholeslami: Decomposition

Xuan Yang: Uses (relationship type), Generalization

Anna Deghdzunyan: Layers part 1

Urvish Mehta: Layers Part 2

Page 3: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

View: a representation of a coherent set of architectural elements and the relationships between them.

Depicts selected aspects of a model

Page 4: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

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

Page 5: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),
Page 6: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

A Module View shows the principal implementation units, or modules, of a system, together with the relations among these units.

Page 7: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

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.

Page 8: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

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”)

Page 9: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),
Page 10: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),
Page 11: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),
Page 12: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),
Page 13: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),
Page 14: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),
Page 15: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),
Page 16: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),
Page 17: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),
Page 18: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),
Page 19: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),
Page 20: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

Part II

Page 21: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),
Page 22: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),
Page 23: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),
Page 24: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),
Page 25: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),
Page 26: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),
Page 27: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

Top level decomposition view forATIA system

Page 28: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

Refinement ofATIA-M server-side Java modules showing how it is further decomposed into submodules

Page 29: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

Decomposition of A7-E software architecture

Page 30: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

Summary of the decomposition style

Page 31: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

Part III

Page 32: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

Uses Style

Focusing on depends-on relations

Enabling incremental development and

deployment

Page 33: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

Elements, Relationships, Properties

Page 34: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

UML Notations

Page 35: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

UML package diagram

Page 36: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

DSM for the UML Diagram

Page 37: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

What the Uses Style is for

Planning incremental development and subsets

Debugging and testing

Gauging the effect of changes

Page 38: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

What the Uses Style is for (cont)

Page 39: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

Generalization Style

Focusing on is-a relation

Supports extension and evolution

Implies inheritance of implementation and interface

Page 40: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

Elements, Relationships, Properties

Page 41: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

UML Diagrams

Page 42: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

What the Generalization Style is For

Object-Oriented designs

Extension

Local change or variation

Reuse

Page 43: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

Part IV

Page 44: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

The Layered Style

The division of the software into units (layers)

Each partition (layer) provides through a public interface - a cohesive set of services.

Page 45: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

Why isn’t this a layered style?

The layers are created to interact according to a strict ordering relation.

Page 46: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

“allowed to use” relations

Using facilities of the immediate lower layer

Using facilities of any lower layer . bridging layers . if many exists - poorly

structured

Page 47: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

Bad Example

Upward usage

Page 48: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

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

Page 49: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

Elements, Relationships, Properties

Page 50: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

What the Layered Style Is For

Modifiability and PortabilityInformation hidingGrouping into layers same

technology helps to assign to more specialized

teams.

Page 51: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

Notations for the Layered Style

Stacks

Rings

Page 52: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

Notations for the Layered Style (cont.)

Segmented Layers

Layers with sidecar

Page 53: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

Part V

Page 54: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),
Page 55: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),
Page 56: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),
Page 57: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

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

Page 58: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),
Page 59: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),
Page 60: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),
Page 61: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

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.

Page 62: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

Examples using Layered StyleUNIX System V

1/28/11

Page 63: John Hurley: Overview Sina Sheikholeslami: Decomposition Xuan Yang: Uses (relationship type),

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