software architecture categories and views

20
Software Architecture Categories and Views John Chou [email protected]

Upload: john-chou

Post on 23-Jan-2017

358 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Software architecture categories and views

Software Architecture Categories and Views

John [email protected]

Page 2: Software architecture categories and views

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

Page 3: Software architecture categories and views

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

Page 4: Software architecture categories and views

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

Page 5: Software architecture categories and views

Subsystem and Component View

• Example: FatFs Filesystem

4

Page 6: Software architecture categories and views

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

Page 7: Software architecture categories and views

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

Page 8: Software architecture categories and views

Concurrency and Resource View

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

presents the concurrency architecture

7

Page 9: Software architecture categories and views

Concurrency and Resource View

8

Page 10: Software architecture categories and views

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

Page 11: Software architecture categories and views

Deployment View

10

• In UML

Page 12: Software architecture categories and views

Deployment View

11

Page 13: Software architecture categories and views

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

Page 14: Software architecture categories and views

Distribution View

13

Page 16: Software architecture categories and views

Distribution View

15Source from: here

Page 17: Software architecture categories and views

Dependability View

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

16

Page 18: Software architecture categories and views

Dependability View

17

Page 19: Software architecture categories and views

Dependability View

18

• Classes:• Thermometer,

FanSpeedSensor• Thermostat• CheckTemperature• ComputeHeatFlow• ComputeReqHeatFlow• HeatFlowLimits

Page 20: Software architecture categories and views

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>