We are offering a wide range of standard and customer specific on-site training.
Model Driven Software Development for Embedded Systems
Model-driven Software-Development (MDSD) finds its way in to the embedded world. But how do you structure the necessary meta-models to be successful and which parts of a software system may be generated with reasonable effort?
In this course, we show you how to develop Embedded-Systems using MDSD.
Empirical data suggests that manual programming work can be reduced in the range of 40 to 60% by almost completely automated creation of a system's structure and necessary glue-code to bind the system's components together.
The focus isn't restricted on how to efficiently implementing new features but also on the necessary characteristics of a complex system's architecture in order to accommodate and foster change due to changing market needs - even after years. We also take a closer look at how GUI and real-time system can interact while residing on different machines.
Working with several practical examples participants learn how to model complex systems by developing an appropriate model step by step. This model serves as the foundation for successfully using MDSD in the embedded field.
The course starts by giving definitions for the many terms that exist in the realm of MDSD. We also take a closer look at the many fold meanings of the meta term: What are meta-models, and meta-meta-models? In addition participants will receive a check-list that contains viable points to consider when evaluating MDSD-tools.
In order to achieve the best possible results using MDSD, one should use models on the architectural level already. That is why this course takes a detailed look at architecture and components: We draw a clear distinction between subject matter abstractions and technical design.
Using this distinction, we can develop an architecture that can be changed with ease at anytime to accommodate necessary change.
In this course, we show you how to develop Embedded-Systems using MDSD.
Empirical data suggests that manual programming work can be reduced in the range of 40 to 60% by almost completely automated creation of a system's structure and necessary glue-code to bind the system's components together.
The focus isn't restricted on how to efficiently implementing new features but also on the necessary characteristics of a complex system's architecture in order to accommodate and foster change due to changing market needs - even after years. We also take a closer look at how GUI and real-time system can interact while residing on different machines.
Working with several practical examples participants learn how to model complex systems by developing an appropriate model step by step. This model serves as the foundation for successfully using MDSD in the embedded field.
The course starts by giving definitions for the many terms that exist in the realm of MDSD. We also take a closer look at the many fold meanings of the meta term: What are meta-models, and meta-meta-models? In addition participants will receive a check-list that contains viable points to consider when evaluating MDSD-tools.
In order to achieve the best possible results using MDSD, one should use models on the architectural level already. That is why this course takes a detailed look at architecture and components: We draw a clear distinction between subject matter abstractions and technical design.
Using this distinction, we can develop an architecture that can be changed with ease at anytime to accommodate necessary change.
Day 1
- Terminology: MDSD, MDD, MDA, DDD, DSL
- Terminology: Model, Meta-Model and Meta-Meta-Model
- Checklist for choosing a MDSD tool
- Software and market demands: Design for Change
- What is software architecture
- Exercise: Definition of software architecture
- Components in detail
- Domain specific design vs. technical design
- Tiers and functionality
- Feature De-Localization
- Domain specific components: embedded component structures vs. business component structures
- Exercise: Abstraction and components for your own domain
- Advantages of a domain specific type system (ontology, semantic, ubiquitous language)
- Association and composition: components as emergent attribute of the meta-model
- Functional vs. structural associations
Day 2
- Exercise: Modeling simple component structures
- Code templates and technical architecture
- Generated code and version control: best practices
- Advanced concepts: range restriction and decoration
- Exercise: modeling a state machine
- Working out a concept for embedded components
- Exercise: modeling embedded components