Outsourcing design is common in most industries; from simple sub-components to the full system. In both cases the process by which the handoff between companies happens is critical.
It starts before you start (pre-project work)
Before the first model is exchanged, before the first requirement is written the two companies need to agree on the following items
- What materials are delivered
- Models, protected models?
- Data dictionary?
- Test models, test cases?
- Generated code?
- Interface control document (ICD)?
- How are the materials delivered?
- Using Simulink Projects?
- What level of model customization is enabled?
- Parameter tunning?
- variant tuning?
- How will the requirements be validated?
- Requirements tracking through traceability matrix?
- Requirements based testing?
Regardless of what is specified the information that is required needs to be clearly defined.
Stages of development
An additional factor to consider is the stage of the development. The materials that are handed over during the initial versus final stages of development will be different. Normally during the early stages of development, the level of compliance will be lower. As the development matures the rigor for compliance increases.
Recommendations for delivery
The following are recommendations for three stages of a “Company-to-Company” project. The stages I will look at are “Initial specification”, “functional review” and “final delivery”
In the initial specification phase, the Requesting Company (RC) is providing requirements to the Providing Company (PC). At a minimum, they should provide the following information.
- Functional requirement document: A formal document describing how the software should perform
- Required level of testing for acceptance: A description of the level, or class, of testing to be performed. This may include some existing acceptance tests.
- Interface control document (ICD): Description of the software interface, including I/O, rates and tolerances
- “Real-world data”: Any specification sheets for the unit under design and or any existing performance data from the unit
In most cases, the functional review stage is an iterative process with the Providing Company providing updates to the Requesting Company.
At a minimum, the providing company should provide the following artifacts
- Simulatable model: The model could be delivered in a protected mode, keeping the PC intellectual property protected.
- Requirements traceability report: A report on the current status of requirements implementation. Note: at this stage, the not all of the requirements may have been implemented.
- Verification results: Related to the requirements report the verification results demonstrate the compliance with the requirements. Note: at this stage, not all of the tests may have been implemented or in a passing stage.
- Change requests: During the functional reviews the PC should provide change and clarification requests
Depending on what was decided in the pre-work phase the providing company may provide the test environment and test cases.
In response to these artifacts, the requesting company should provide, at a minimum, the following documents.
- Change request response: The requesting company should respond with approval or clarifying information.
- Change request: The requesting company should also formally provide any requests to the
With the final deliverables, the providing company should provide the same materials as in functional reviews. The difference is that in the final review requirements traceability and verification results should be completed. Any requirements that could not be met should have been addressed in the final functional review change request.
The process of handing off artifacts between companies in the Model-Based Design environment is nearly identical to that of the traditional text-based environment. The primary difference is that MBD enables the simulation of the model enabling the requesting company to easily verify the requirements.
Likewise, the specification of which artifacts, and in what format, will be exchanged in the pre-work phase is critical to the success of work between companies.