Software Architectures for Embedded Systems and Real-Time Systems - Face-to-Face Training
The software architecture training highlights the terminology and the significance of software architects.
It explains the tasks and responsibilities of software architects and their role in the project and presents state-of-the-art methods and techniques for the development of software architectures.
After the software architecture training, you are able to coordinate software architectures with your project team, to document the software architectures and to perform the main software architecture design steps yourself.
The software architecture training addresses software architects, software developers, software development managers and software team managers.
Project experience in software development; knowledge of a high-level language; principles of the UML notation for software modeling of advantage.
Software Architectures: Introduction and Terminology
- Definition of terms
- Benefits and objectives of a software architecture
- Elements of a software architecture
- Relation to the development process
- Role and responsibilities of the software architect
- Practical tips
Software Architecture Development Procedures
- Different software architecture development procedures: hierarchial, iterative, incremental, agile, model-driven, domain-driven
- Dependencies and relations of the different procedures
- Presentation of a typical procedure
The Role of a Software Architect
- Characteristics and responsibilities of the software architect
- Software architect teams
- Collaboration with other roles
Software Architecture Development: Principles and Preconditions
- Typical development scenarios under favorable and unfavorable conditions
- Requirements: functional and non-functional
- Influencing factors for software architectures
- Factor analysis demonstration
- Risk management
Notation and Documentation of Software Architectures with the UML (Unified Modeling Language)
- Static and dynamic views
- Quality features of the software architecture documentation
- Documentation and communication of software architectures for the stakeholders
- Content and focus of documentation
- Description and communication of interfaces
- Definition and use of different architecture views
- Document-based versus model-based procedures
- Demonstration: From requirements to the software architecture model
- Exercise: Development of an embedded software architecture comprising structure and interactive behavior, based on drawn up textual requirements
Design of Software Architectures
- Functional and non-functional requirements as a basis for high-quality software architecture
- Positive and negative impact of quality requirements on the software architecture
- Impact of safety and security, reliability, portability, performance and other quality requirements on the architecture
- Project specific factors of influence on the software architecture
- Continuous refinement of the software architecture through incremental and iterative processes
- Architecture construction kit and reusability
- Basic concepts, elements, element coupling via interfaces
- Design principles
- Architecture design patterns
- Architecture guidelines
- Runtime architecture
- Architectures for multiprocessor and multicore systems
- Verification of software architectures
- Hypervisor and virtualization
- Platform independence
- Exercise: Extending the architecture with a runtime architecture
Quality Assessment and Quality Assurance of Software Architectures
- Quality models
- Relation and interdependency of quality features
- Methods to achieve the specified quality features of software systems
- Assessment of software architectures (quality and implementation)
- ATAM (Architecture Tradeoff Analysis Method)
- Practical tips for quality assessment and quality assurance
- Exercise: Quality assessment for various software architectures
Tools for Software Architects
- Modeling
- Static and dynamic analysis
- Generation
- Requirements management
- Documentation
- Version and configuration management
- Build process and build systems
- We provide you with an unbiased product overview for efficient product selection
Proven Examples of Software Architectures
- Typical software architectures for embedded systems
- Software layers, software layer models
- Practical tips
Practical Exercises in the Software Architecture Training
- From requirements to the verification and assessment of the software architecture using the example of an embedded system (electric motor control) based on real hardware
- Throughout the exercise, you will use the modeling tool 'Enterprise Architect' (Sparx Systems), or paper and pencil as an alternative
MicroConsult Plus:
- All participants have the following options to further use their exercises from this workshop as well as the solutions developed by MicroConsult:
- You e-mail the files to your account, or ...
- You get access to file download on request.
- For the measurement device application, you get the program code and a UML model as well as a UML model for the electric motor application.
- You get a tool and software component overview for the development of embedded software architectures
- You also get an embedded software architecture checklist summarizing all key topics. You can adapt this checklist to your project requirements.
- You get helpful notation overviews for UML (Unified Modeling Language) and SysML (Systems Modeling Language).