Download presentation
Presentation is loading. Please wait.
Published byMinna Hänninen Modified over 6 years ago
1
An Introduction to Embedded Software Architecture and Design
Class 1: Introduction to Embedded Software Architecture December 1, 2014 Jacob Beningo, CSDP
2
Course Overview Introduction to Embedded Software Architecture
Software Architecture using UML Understanding Embedded Software Architectures From Architecture to Implementation Software Architecture of a UAV and Review
3
Session Overview The Software Development Process
What is a Software Architecture? Why use an Architecture? Architecture Design Steps
4
Software Development Process
Requirements Design Construction Testing Maintenance IEEE Computer Society SWEBOK v3.0
5
Software Development Process
Design Architectural Structures and Viewpoints Architectural Styles Design Patterns Architecture Design Decisions Families of Programs and Frameworks IEEE Computer Society SWEBOK v3.0
6
What is a Software Architecture?
IEEE 1471 Architecture is the fundamental organization of a system embodied in its components, their relationship to each other, and to the environment, and the principles guiding its design and evolution. High Level Structure No implementation details! Language agnostic
7
What is a Software Architecture?
Architecture describes Fundamental organization and interaction of the system and subsystem components Describes features that persist throughout the “life” of the product Should not be easily changed! Does NOT have design details!
8
What is Software Architecture?
Documenting a Software Architecture Creating block diagrams Component interconnects Subsystem Level blocks Identifying models “Design” Patterns
9
What is Software Architecture?
Documenting a Software Architecture is NOT The nitty gritty details Function naming …. Variable definition and naming Task definition Classes, methods, interfaces API’s
10
What is a Software Architecture?
The core pieces of a software architecture Identifying system components Understand how components interact with Other components Their environment Organizing the components into a system that is Understandable Modular Maintainable
11
Why an Architecture? What can a software architecture really do?
It can speed up development It can help to reduce bugs It can ease software maintenance Simplify software testing Improve diagnostics Save company money Provide a long robust life for the software
12
Why an Architecture? Why use a software architecture?
Define the elements in the design Understand relationship of the components Describe the structure and behavior of the system Identify engineering decisions Review and hash out the design before implementation Identify holes in the requirements and implementation
13
Architecture Design Steps
Step 1 – Identify system components Drivers Microcontroller Peripherals External Sensors Application Driving a motor Filtering sensor data Configuration How peripherals and sensors need to be setup
14
Architecture Design Steps
Step 2 – Understand component relationships Which components interact? What layer does the component belong in? Create a component layer architecture Timer Digital I/O PWM ADC Sensor Filtering Motor
15
Architecture Design Steps
Step 3 – Define the Environmental Factors Hard Real-Time Constraints Soft Real-Time Constraints Sensors and hardware interfaces System Timing Human interactions Identify synchronous events Identify asynchronous events
16
Architecture Design Steps
Step 4 – Create a High Level Architecture Primary system states Interrupts System Tasks System State Machines System Events Concurrent States Entry/Exit Points
17
Architecture Design Steps
Step 5 – Implement Flowcharts and Sequences The devil is in the details Expand the state machines behavior Identify communication sequences Simulate the flowchart behavior Identify high risk areas Refactor and simplify Keep it language independent
18
Architecture Design Steps
Step 6 – Review the Architecture Let the architecture sit for a day or two Forget and come back to it with fresh eyes Review with a group of peers Flush out missing components, complications Identify potential areas of risk Verify system requirements Update and refactor Always remember to keep it simple!
19
Software Architecture Tips
Use it as a guide It will change during implementation! Testing will reveal flaws Helps wrap the mind around implementation Always do a group review of the architecture Keep it as general structure Keep it language independent Look for refactoring and simplification
20
Additional Resources Download Course Material for Edraw UML Templates
Updated C Doxygen Templates Misc Papers and Websites for further reading From under - Blog and Articles > Software Techniques > CEC Software Architecture Materials
21
Jacob Beningo Newsletters P.O. Box 400 Embedded Monthly
Linden, Michigan 48451 Newsletters Embedded Monthly Low Power Design Training Bootloaders Embedded Software C/C++ : : : Jacob_Beningo : Beningo Engineering : JacobBeningo : Embedded Basics Jacob Beningo Principal Consultant
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.