Objectives and metrics
Based on the information collected from the process adoption team the objectives for the initial adoption phase should be set. While the specifics for any given organization will be different the following outline is a standard view.
- Complete 1 or 2 “trial” models
- Identify the initial model architecture
- Identify the initial data architecture
- Establish baseline analysis methods
- Establish baseline testing methods
- Understand how artifacts from models integrate with existing artifacts
- Implement version control for new modeling artifacts
- Complete 1 or 2 “trial” models
- Review methods for measuring model key performance indicators (KPIs)
- Review resources required during initial adoption phase
The technical metrics
Completion of the trial models
In a future post we will examine how to select your trial model, but for now let’s answer the question “what does it mean to complete a trial model? ” This decomposes into the four tasks as outlined above. The model and data architecture are covered in some depth in previous posts so let us talk about analysis and testing.
Within the Simulink domain, a fundamental aspect of a model is the ability to simulate the behavior of the plant or the control algorithm. The simulation is used during the early stage of development to analyze the model to determine if the functional behavior of the model. The developer performs elaborates the model until the behavior functionality matches the requirements. This is verified through simulation. Once the model meets the requirements the functionality can be “locked down” through the use of formal tests; again using simulation.
It is worth noting that some requirements will be met before others, they should be formally locked down under test as they are achieved.
Integration with existing artifacts
For most companies, unless they are starting from
a clean sheet there will be existing software components that need to be integrated with those created by the Model-Based Design process. There are three types of integration
- bringing existing software into the Model-Based Design framework
- Bringing Model-Based Design artifacts into the existing architecture.
- A combination of 1 and 2.
The topic of integration will be covered in greater detail in an upcoming post. However, the fundamental guidelines for integration (in either direction) are the following.
- Create software objects with well-defined interfaces (encapsulation)
- Limit dependencies of the software objects on external objects
- Minimize the use of “glue code”(1).
Version control of objects
Version control processes use tools to enable team-based development while maintaining multiple “release” or “branches”. During the initial phase of the project which software objects will be placed under control and how a “release” will be defined should defined. This initial definition will be refined as the Model-Based Design process is elaborated. This blog will go into detail on this in a future post. The basic questions are
- Do you include derived objects in the version control software: .c, .h, test reports…
- How do you arbitrate check in conflicts: How do engineers resolve conflicts in their model interfaces?
- How do you share data / models across projects: What methodology will facilitate reuse of objects across multiple projects with minimal configuration impact?
The initial adoption phase by its nature will be slower than later phases as people are still learning new capabilities and processes. The primary objectives during this phase are
- Learn what bottlenecks with the new process.
- Understand existing issues uncovered by the transition
- Determine level of resources for the next stage
The discovery of “Objective 2’s”, existing issues, often surprises people. The act of transitioning to a new process forces the evaluation of existing processes and, more often than not, illuminates existing shortcomings. Extra care should be taken to ensure that the new process addresses those shortcomings.
In the next stage, the validation project, the team should expand beyond the initial “core” team. Ideally, a people from outside the initial project scope should be brought in to identify developmental pain points that did not exist in the “core group” processes.
(1): “Glue code” is a software object created solely for the connection of two other software objects.