It sounds almost as if you are in charge of maintaining a library of finished S/W rather than S/W development files.
In any event, here's a suggestion that sort of goes along with what Mr. Townsend said. It is sort of like looking at the Table of Contents in a large technical document where you see a heading listed as "126.96.36.199 Coil Lead," where Section 4 is all about the Vehicle Engine, 4.2 addresses the Ignition System, 4.2.1 deals with the Distributor, 188.8.131.52 is specific to the Rotor, 184.108.40.206 to the Cap, 220.127.116.11 to Coil Lead.
In those terms, the "S/W application" has a title ("Car Maintenance").
It has a Table of Contents (TOC-somewhat analogous to a main or trunk program).
The application runs down the TOC to the first trigger (general subject category or module)
It runs in that section to find the right sub-module, and so forth.
Each section has sub-Sections. (smaller modules)
And so forth.
So, your S/W has an identity, as does each section and subsection.
So, if you use an ID system such as the one Mr. Townsend suggests, you can identify each piece and it's relationship within the overall application.
To take this a step further, you now have the problem of identifying the most current SET of pieces. This is where the real confusion can start and where your effort gets really unwieldy.
You application Version 1.0 consists of three modules, each of which is also Version 1.0, and module C has three sub-modules, all 1.0. Somewhere you need to record that App 1.0 consists of the other pieces. Further, you need to record that module C consists of Submodule-(1) Version 1.0, Submodule-(2) Version 1.0, and Submodule-(3) Version 1.0. Here's why.
Submodule-(3) Version 1.0 is modified. It becomes Version 1.1 and installed with the SET. But, by virtue of that change, Module-C is now Version 1.1, and the appliation is now Version 1.1. In other words, the new SET, App 1.1 consists of Module-A v1.0, Module-B v1.0, and Module-C v1.1 (with its submodule-(1) v1.0, submodule-(2) v1.0, and submodule-(3) v1.0).
Hopefully that helps explain some of the reasoning behind the madness. Someone mentioned Mil-hdbk-61A. I don't have it handy, but I seem to recall that creating and applying identifiers is in Section 5. Mil-HDBK-61A is, I believe, still available online.