architectural structures and views

20
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

Upload: dr-reeja-s-r

Post on 18-Feb-2017

442 views

Category:

Engineering


2 download

TRANSCRIPT

Page 1: Architectural structures and views

ARCHITECTURAL STRUCTURES AND VIEWS

An architecture is a very complicated construct -- too complicated to be seen all at once.

Dr. Reeja S RAssociate professor CSE Dept.SJEC, Vamanjoor

Page 2: Architectural structures and views

ARCHITECTURAL STRUCTURES

Page 3: Architectural structures and views

SOFTWARE STRUCTURESThe 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)

Page 4: Architectural structures and views

MODULE STRUCTURE

Page 5: Architectural structures and views

MODULE STRUCTURE Decomposition

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

Page 6: Architectural structures and views

MODULE STRUCTURE Uses

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

Page 7: Architectural structures and views

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

Page 8: Architectural structures and views

MODULE STRUCTURE Class or Generalization

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

Page 9: Architectural structures and views

COMPONENT AND CONNECTOR STRUCTURES

Page 10: Architectural structures and views

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

Page 11: Architectural structures and views

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

Page 12: Architectural structures and views

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

Page 13: Architectural structures and views

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

Page 14: Architectural structures and views

ALLOCATION STRUCTURES

Page 15: Architectural structures and views

ALLOCATION STRUCTURE Deployment Structure

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

security

Page 16: Architectural structures and views

ALLOCATION STRUCTURE Implementation Structure

Components: software units, file structures (during development, integration & configuration)

Relation: “stored in” Uses: Configuration control, integration, testing activities

Page 17: Architectural structures and views

ALLOCATION STRUCTURE Work Assignment Structure

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

Page 18: Architectural structures and views
Page 19: Architectural structures and views
Page 20: Architectural structures and views

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.