How to identify software configuration items in a BOM

M

mbt7FFF

With embedded software providing more than half of features in many products, I'm looking for info about practices and technology for managing software binaries as part of a BOM and how that relates to upstream use of Software Configuration Management -- for both engineering and production BOM.

For example, consider a consumer electronics product with several microcontrollers, DSPs, and flash chips. The BOM lists every physical part that ends up in the retail box, including PC boards. The boards have microcontrollers that typically use an OS binary (probably supplied by a third party), binaries compiled from the manufacturer's application codebase (easily millions of lines of code these days), and probably more than a few binaries generated from third party and open source software. Similarly, there will be non-executable data to be loaded onto the DSPs and flash. The software may need to vary according to model, market, options, etc.

Tracking versions of each separate binary file loaded to each processor or storage device in each unit is important for the same reasons as tracking the supplier and rev of an electronic component.

I've looked but haven't found any publications about this. CM systems engineering standards (e.g., ISO 10007 and 12207) call for system-scope CM, but no details are provided.

Would appreciate hearing about how this is done and pointers for publications and best practices.

Thanks in advance.
 
P

PaulJSmith

Re: How to identify software configuration items in a BOM?

I guess it kind of depends on the reason you want to track that information as to what might work best for you. Here are a couple of ideas:

If it's for the benefit of Production loading the correct software/firmware in the products, then you could simply assign each one a part number that would be reflected on the specific BOM. This can be maintenance-intensive, though, if you have a lot of software revision (ask me how I know this ...).

If you only need it for warranty or customer service issues, a date code on your product could reference a table of what was in use on that date. This is how we currently track our software/firmware in our products, with a date coded serial numbering system. It's much more efficient for us than going back through BOM histories, as everything is available at a glance.
 

yodon

Leader
Super Moderator
Re: How to identify software configuration items in a BOM?

Typically, each software release has a version number (quite frequently, developers like the "major.minor.patch" format). That's typically what we include. That's always traceable back to a configuration snapshot in the code repository. Most repository tools will support some sort of tagging (identifying each unit version in the final build configuration) to facilitate associating the external number with the complete configuration.
 

Shonver

Starting to get Involved
Re: How to identify software configuration items in a BOM?

You can identify your configuration items via the Product Breakdown Structure (PBS). A BOM is essentially a shopping list, and consists of physical items, so firmware/software will not typically feature here, but on the PBS.
 
Top Bottom