Difference between revisions of "Architecture Views"

From Suhrid.net Wiki
Jump to navigationJump to search
 
(5 intermediate revisions by the same user not shown)
Line 30: Line 30:
  
 
* Modules are classes. Relations are "inherits-from" or "is-an-instance-of".
 
* Modules are classes. Relations are "inherits-from" or "is-an-instance-of".
* Here, elements are runtime components and connectors.  
+
* Here, elements are runtime components and connectors.
 +
 
 +
 
 +
=== Structural view ===
 +
 
 +
 
 +
* Useful for members of development team, maintainers, project manager, analyst and the architect.
 +
* Define the computational elements of a system and the organization of those elements.
 +
* What software elements comprise the system?
 +
* What are their interfaces?
 +
* How do they interconnect?
 +
* What are the mechanisms for interconnection?
 +
 
 +
 
 +
* Use stereotyped <<module>> in UML to display modules.
 +
* Display interfaces in the UML diagram.
 +
* Show dependencies of modules on each other.
  
 
== Component and connector structures ==
 
== Component and connector structures ==
Line 36: Line 52:
 
* Allows understanding of major executing components and how they interact.
 
* Allows understanding of major executing components and how they interact.
 
* How data flow through system, what parts of system run in parallel.
 
* How data flow through system, what parts of system run in parallel.
 +
* Useful for developers, maintainers.
  
 
=== Communicating Processes ===
 
=== Communicating Processes ===
Line 58: Line 75:
 
* Shows relationship between software elements and elements in the external environments.
 
* Shows relationship between software elements and elements in the external environments.
 
* Allows understanding on which processor does software element execute on. Files in which each element during development during testing.
 
* Allows understanding on which processor does software element execute on. Files in which each element during development during testing.
 +
* Useful for project manager, end users, maintainers, analyst, architect, infrastructure support.
  
 
=== Deployment ===
 
=== Deployment ===

Latest revision as of 11:17, 21 April 2012

Intro

  • A view is a representation of a coherent set of architectural elements as written by and read by system stakeholders.

Architectural Structures

  • A structure is the set of elements itself, as they exist in software or hardware.
  • Arch structures can be divided into three groups.

Module structures

  • Elements are modules which are units of implementation. Assigned areas of functional responsibility.
  • Less emphasis on how software works at runtime.
  • Allows to understand primary responsibility of each module, other modules a module can use, related modules.

Decomposition

  • Units are modules related to by "is a submodule of" relation.
  • Shows how larger modules are decomposed into smaller ones.

Uses

  • Units are related to by the uses relation

Layers

  • When uses relation is controlled - a system of layers emerges.

Class

  • Modules are classes. Relations are "inherits-from" or "is-an-instance-of".
  • Here, elements are runtime components and connectors.


Structural view

  • Useful for members of development team, maintainers, project manager, analyst and the architect.
  • Define the computational elements of a system and the organization of those elements.
  • What software elements comprise the system?
  • What are their interfaces?
  • How do they interconnect?
  • What are the mechanisms for interconnection?


  • Use stereotyped <<module>> in UML to display modules.
  • Display interfaces in the UML diagram.
  • Show dependencies of modules on each other.

Component and connector structures

  • Allows understanding of major executing components and how they interact.
  • How data flow through system, what parts of system run in parallel.
  • Useful for developers, maintainers.

Communicating Processes

  • Units are processes.
  • Relation is attachment, showing how components and connectors are hooked together.

Concurrency

  • Units are components and connectors are threads.

Shared data/Repository

  • Comprises components and connectors that create, store and access persistent data.

Client Server

  • Components are clients and servers. Connectors are protocols and messages.

Allocation structures

  • Shows relationship between software elements and elements in the external environments.
  • Allows understanding on which processor does software element execute on. Files in which each element during development during testing.
  • Useful for project manager, end users, maintainers, analyst, architect, infrastructure support.

Deployment

  • How software is assigned to hardware processing and communication elements.

Implementation

  • S/w to file structure. Essential for build processes.

Work assignment

  • Assign modules to teams.