Presentation is loading. Please wait.

Presentation is loading. Please wait.

What is an Architecture?. An Example? Invoice OrderDelivery Customer.

Similar presentations


Presentation on theme: "What is an Architecture?. An Example? Invoice OrderDelivery Customer."— Presentation transcript:

1 What is an Architecture?

2 An Example? Invoice OrderDelivery Customer

3 Author’s Definition The software architecture of a system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationship among them. If you remember ONE thing, This is the most important letter tonight

4 Structures and Views For BCK, a structure is a set of elements AND one or more relationship among the elements AND defined semantics for the relationship(s) a view is a presentation of a structure One structure can have many views …

5 Example – two views of the “uses” structure (uses Client Server) (uses Client Naming) (uses Client Message) (uses Server Message) (uses ServerImpl Naming) (uses ServerImpl Server) (uses ServerImpl Message)

6 Three main types of views Module Static structure of code elements at build time Component and Connector Dynamics (interactions) of processes and threads at runtime Allocation Relationships of software elements to other resources (file systems, development teams, etc) Bookmark Figure 2-3 on page 37 Read pages 36-40 every Monday this month

7 Some commonly-viewed structures The next 11 viewgraphs present the leaf nodes of Figure 2-3 (see Table 2.1, pp 39-40) These are commonly-viewed structures When documenting an architecture, you are free to define New views of well-known structures, and/or New structures Just be sure to explain the elements and the semantics of the relationship(s) involved

8 Module Views Decomposition Submodule-of Shares-secret-with Used for: Resource Allocation / Project Structure Planning Information Hiding Encapsulation Configuration Control

9 Module Views (cont.) Uses Requires-the-presence-of Used for: Subsets Extensions

10 Module Views (cont.) Layered Requires-the-correct-presence-of Uses-the-services-of Provides-abstraction-to Used for: Incremental Development Portability

11 Module Views (cont.) Class Instance-of Shares-access-methods-of Used for: OO design

12 Component and Connector Client-Server Communicates-with Depends-upon Used for: Distributed Operation Separation of Concerns Performance Analysis Load Balancing

13 Component and Connector (cont.) Process Runs-concurrently-with May-run-concurrently-with Excludes Precedes Used for: Scheduling Analysis Performance Analysis

14 Component and Connector (cont.) Concurrency Runs-on-same-logical-thread Used for: Analyzing Resource Contention Where threads may fork, join, be created or killed

15 Component and Connector (cont.) Shared Data Produces-data Consumes-data Used for: Performance Analysis Data Integrity Modifiability

16 Allocation Deployment Allocated-to Migrates-to Used for: Performance Analysis Availability Analysis Security Analysis

17 Allocation (cont.) Implementation Stored-in Used for: Configuration Control Integration Testing

18 Allocation (cont.) Work assignment Assigned-to Used for: Project Management Best use of expertise Management of commonality

19 How to describe an architecture? Many of the views can be drawn in UML Appropriate text accompanies the diagrams Or else you get architecture “cartoons” An “ideal” architecture document: 5-10 pages, half pictures Much more about UML next week (also in the book, Chapter 9.6, pp 218-228


Download ppt "What is an Architecture?. An Example? Invoice OrderDelivery Customer."

Similar presentations


Ads by Google