Architectural structures and views

Preview:

Citation preview

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

ARCHITECTURAL STRUCTURES

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)

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.

Recommended