software architecture categories and views
TRANSCRIPT
![Page 2: Software architecture categories and views](https://reader036.vdocuments.site/reader036/viewer/2022062522/5885d26c1a28ab42028b6c6f/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062522/5885d26c1a28ab42028b6c6f/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062522/5885d26c1a28ab42028b6c6f/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062522/5885d26c1a28ab42028b6c6f/html5/thumbnails/5.jpg)
Subsystem and Component View
• Example: FatFs Filesystem
4
![Page 6: Software architecture categories and views](https://reader036.vdocuments.site/reader036/viewer/2022062522/5885d26c1a28ab42028b6c6f/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062522/5885d26c1a28ab42028b6c6f/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062522/5885d26c1a28ab42028b6c6f/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062522/5885d26c1a28ab42028b6c6f/html5/thumbnails/9.jpg)
Concurrency and Resource View
8
![Page 10: Software architecture categories and views](https://reader036.vdocuments.site/reader036/viewer/2022062522/5885d26c1a28ab42028b6c6f/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062522/5885d26c1a28ab42028b6c6f/html5/thumbnails/11.jpg)
Deployment View
10
• In UML
![Page 12: Software architecture categories and views](https://reader036.vdocuments.site/reader036/viewer/2022062522/5885d26c1a28ab42028b6c6f/html5/thumbnails/12.jpg)
Deployment View
11
![Page 13: Software architecture categories and views](https://reader036.vdocuments.site/reader036/viewer/2022062522/5885d26c1a28ab42028b6c6f/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062522/5885d26c1a28ab42028b6c6f/html5/thumbnails/14.jpg)
Distribution View
13
![Page 15: Software architecture categories and views](https://reader036.vdocuments.site/reader036/viewer/2022062522/5885d26c1a28ab42028b6c6f/html5/thumbnails/15.jpg)
Distribution View
14Source from: here
![Page 16: Software architecture categories and views](https://reader036.vdocuments.site/reader036/viewer/2022062522/5885d26c1a28ab42028b6c6f/html5/thumbnails/16.jpg)
Distribution View
15Source from: here
![Page 17: Software architecture categories and views](https://reader036.vdocuments.site/reader036/viewer/2022062522/5885d26c1a28ab42028b6c6f/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062522/5885d26c1a28ab42028b6c6f/html5/thumbnails/18.jpg)
Dependability View
17
![Page 19: Software architecture categories and views](https://reader036.vdocuments.site/reader036/viewer/2022062522/5885d26c1a28ab42028b6c6f/html5/thumbnails/19.jpg)
Dependability View
18
• Classes:• Thermometer,
FanSpeedSensor• Thermostat• CheckTemperature• ComputeHeatFlow• ComputeReqHeatFlow• HeatFlowLimits
![Page 20: Software architecture categories and views](https://reader036.vdocuments.site/reader036/viewer/2022062522/5885d26c1a28ab42028b6c6f/html5/thumbnails/20.jpg)
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>