Software architecture categories and views

Post on 23-Jan-2017

358 views 1 download

Transcript of Software architecture categories and views

Software Architecture Categories and Views

John Chouluckyjoou@gmail.com

Software Architecture Categories and Views

• Architecture is the collection of organization and optimization design decisions

• Different architectural decisions can result in significantly different performance

properties

• Define categories due to the complexity and breadth of a system architecture

1

Software Architecture Categories and Views

• Primary architectural views• Almost all embedded systems must define some optimizations within primary view of

concern• These views have a profound impact on the overall structure, behavior, or performance

of the system• Secondary viewpoints• Might be important, including:

• data management• exception handling and reporting• system maintenance support

2

Subsystem and Component View

• Subsystem and component view• This view identifies the largest scale organizational units of the system and details

their responsibilities and allocation of services and data and characterizes their interfaces, both offered and required.

3

Subsystem and Component View

• Example: FatFs Filesystem

4

Concurrency and Resource View

• Concurrency and resource view• Concurrency refers to the simultaneous execution of concurrency units• Each concurrency unit contains a sequence of action executions with a known

execution sequence• But the order of executions of actions between concurrency units is generally

unknown• True concurrency: concurrency units can actually execute in parallel pseudoconcurrency: share a common computational resource• Task- or context-switching is an important consideration in embedded systems• concurrency units interact:

• directly way: e.g., with asynchronous events or function calls• Indirectly way: e.g., through sharing data or other resources 5

Concurrency and Resource View

• The primary areas of design concern for the concurrency and resource architecture:• scheduling defines when tasks run, both in isolation and with respect to each • “thread-safe” sharing of resources defines the means by which resources may be

used by multiple concurrency units• deadlock avoidance specifies how deadlock is avoided

6

Concurrency and Resource View

• In UML:• concurrency units - «active» classes• running tasks - instances • task diagram - A class diagram that

presents the concurrency architecture

7

Concurrency and Resource View

8

Deployment View

• Why deployment view is important:• it is important to understand the allocation of requirements and functionality to the

elements of the different disciplines• it is crucial to have well-defined interfaces between adjacent disciplines

• UML defines a kind of diagram called a “deployment diagram”——abandoned by author Instead rely on block diagrams

9

Deployment View

10

• In UML

Deployment View

11

Distribution View

• One of the challenges of modern-day embedded systems: • getting the software distributed across different address spaces to communicate and

collaborate effectively and efficiently• Thinking in this way is called distribution view

• how the software in different address spaces communicates:• the sharing of data and control messages• initiation and termination of communications• how quality of service for the communication is managed• network data formats• the use of shared memory, sockets, middleware• communication protocols

12

Distribution View

13

Distribution View

15Source from: here

Dependability View

• Three primary aspects:• Safety - “freedom from harm”• Reliability • Security - “freedom from outside influence, intrusion, or theft”

16

Dependability View

17

Dependability View

18

• Classes:• Thermometer,

FanSpeedSensor• Thermostat• CheckTemperature• ComputeHeatFlow• ComputeReqHeatFlow• HeatFlowLimits

Software Architecture Categories and Views

19

• Reference:• Robert Oshana & Mark Kraeling (2013). Software engineering for embedded systems

methods practical techniques and applications(1st ed.). Newnes.• FatFs - Generic FAT File System Module. <http://elm-chan.org/fsw/ff/00index_e.html>