Platform-Independent Model-Driven Development is a software development method where software systems are documented and produced as models. The Platform-Independent MDD method is specifically designed to meet the unique challenges of building complex, high performance embedded systems.
This helpful infographic outlines the basics of the Model-Driven Development method of software development, specifically focusing on Platform-Independent Model-Driven Development.
Model-Driven Development (MDD) is an integrated approach to architecting, developing, testing and deploying complex, high performance systems. When using a model-driven approach, software systems are documented and produced as models. MDD was built upon Model-Driven Architecture (MDA). MDA, as outlined by the Object Model Group (OMG), utilizes OMG’s modeling language, the Unified Modeling Language (UML), to provide a high-level framework for which to document software architectures. By raising the level of abstraction away from the implementation details of a system, modelers are able to easily capture and document the architectural patterns of the modeled systems in regards to providing a solution the defined problem space. MDD transforms the Platform Independent UML models using a set of mappings into the corresponding system implementation (source code).
To produce these executable systems, MDD extends MDA and augments the architecture models with abstract behavioral representations or action languages, such as the UML Action Language (UAL) and the Platform-Independent Action Language (PAL). Benefiting from a high level of software abstraction, MDD models, when combined with efficient code generation tools, promise to reduce software complexity by allowing the architectural and behavioral aspects of an application to be directly mapped to the implementation. The advantage is that, unlike with MDA models which require manual effort to synchronize the models and implementation, MDD automates the process.
Additionally by utilizing this abstract representation, software testers can define their testing parameters and test cases, to reflect the expected behavior and documented interfaces of the system instead of the current or expected implementation. This reduces the influence of a number of implementation specific details, such as storage structures on test development.
Software development groups building complex and high performance shared components for multiple product lines face substantial difficulties, including varying programming languages across products and time. While it is possible to share common architectures and design patterns across development groups, the parallel development, debugging and testing of mirrored components for separate platforms should be reduced to a single development activity.
Platform-Independent MDD incorporates key modeling and automation techniques specifically designed to meet the unique challenges of building complex and high performance embedded systems. To eliminate redundant development efforts, Platform-Independent models can be developed to deliver multiple products for various platforms, such as having both C and Java variations, from a single modeled source. For further productivity improvements, the test base can be incorporated into these PI models, allowing the generation of the base for the target platform.
In Model-Driven Development the central focus of system development is models rather than code. With a history of thousands of successfully fielded systems in service, the PI-MDD approach has proven to be effective in critical industries including medical devices, aerospace, defense, and automotive.
Adopting Platform-Independent Model-Driven Development
Real world project metrics have shown that PI-MDD (at its current level of refinement yields) can double overall productivity and improve quality by ten times within fourteen months of adoption. It has also been proven that PI-MDD can:
- » Speed time to market
- » Improve communication
- » Manage complexity
- » Improve system quality
- » Raise developer productivity
- » Successfully deliver quality systems that are competitively priced and on time
PI-MDD with Pathfinder Solutions
Pathfinder Solutions offers the highest level of expertise specialized for the adoption of Model-Driven Development. We help software developers successfully learn, deploy and master highly effective model-based development techniques for complex, embedded systems. MDD establishes a proven process foundation for software development, and Pathfinder Solutions’ model-driven approach is an accumulation of decades of industry best practice.
Our many MDD training options can help establish effective platform-independent modeling techniques and adapt PI-MDD to the unique needs of your organization, and our expert mentoring services will help you leverage and roll forward your newly earned expertise and architectural foundations via shared components and product line architecture.
As a leading provider of model-driven technology, training and expertise for complex, embedded, and real-time systems development, Pathfinder Solutions is your key to achieving the most advanced systems performance. Contact us to discuss how your team can benefit from Pathfinder Solutions’ expert training and mentoring services.
For more information on Platform-Independent Model-Driven Development please download our PI-MDD Executive Summary whitepaper.