Architectural structures and views

5,929 views 20 slides Feb 17, 2016
Slide 1
Slide 1 of 20
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20

About This Presentation

Different architectural styles


Slide Content

Architectural Structures and Views An architecture is a very complicated construct -- too complicated to be seen all at once . Dr. Reeja S R Associate professor CSE Dept. SJEC, Vamanjoor

Architectural Structures

Software structures The 3 structures correspond to 3 broad types of decisions that an architectural design involves: How is the system to be structured as a set of code units? How is the system to be structured as a set of runtime components and interactions between them? How is the system to relate to non-software elements in its environment? (CPU, file systems, networks, development teams, etc)

Module Structure

Module Structure Decomposition Units: Modules Relation: “Is a sub-module of” Useful for: project structuring and planning, to produce modifiable systems

Module Structure Uses Units: Modules Relation: “Uses” Uses: To engineer systems that can be easily extended or contracted

Module Structure Layered – special case of USES structure Units: Modules Relation: “Uses the services of layer n-1” Uses: Allows incremental development, abstraction to lower layers

Module Structure Class or Generalization Units: Modules Relation: “Inherits from”, “is an instance of” Uses: Allows reuse and incremental addition of functionality

Component and Connector Structures

Component and Connector Structure Process Structure Components: Processes / threads Connectors: communication, synchronization Relation: “runs concurrently with”, “precedes”, “follows”, “synchronizes with” Uses: Helps to engineer system’s execution performance & availability

Component and Connector Structure Concurrency Structure Components: Modules Connectors: logical threads Relation: “runs on the same logical thread” Uses: helps to eliminate deadlock and reduce bottlenecks

Component and Connector Structure Shared Data / Repository Structure Components: modules that create, share, access persistent data Connectors: data flow Relation: “produces data”, “consumes data” Uses: To ensure good performance and data integrity

Component and Connector Structure Client Server Structure Components: Clients and servers Connectors: protocols and messages Relation: “communicates with” Uses: separation of concerns, physical distribution, load balancing

Allocation Structures

Allocation Structure Deployment Structure Components: hardware Relation: “allocated to”, “migrates to” Uses: Allows to reason about performance, data integrity, availability, security

Allocation Structure Implementation Structure Components: software units, file structures (during development, integration & configuration) Relation: “stored in” Uses: Configuration control, integration, testing activities

Allocation Structure Work Assignment Structure Components: modules, development teams Relation: “assigned to” Uses: project management, best use of expertize

Choosing Structures Kruchten’s Four Views: Logical - elements are “key abstractions” that are objects or classes in OO. This is a module view. Process - addresses concurrency & distribution of functionality. This is a C&C view. Development - shows organization of software modules, libraries, subsystems, and units of development. This is an allocation view. Physical - maps other elements onto processing & communication nodes, also an allocation view, but usually referred to specifically as the deployment view.
Tags