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

Post on 21-Jan-2016

18 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

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

top related