software architecture categories and views
TRANSCRIPT
Software Architecture Categories and Views
John [email protected]
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
14Source from: here
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>