> The ATF Team planned to develop approximately 1.5 million source lines of code, across more than 20 software development companies located throughout the U.S., Canada, and Europe.
> The ATF Team planned to develop approximately 1.5 million source lines of code, across more than 20 software development companies located throughout the U.S., Canada, and Europe.
To get to the total 1.5M LOC, it's after decomposing the system into lower level black boxes and doing some modeling/simulation.
How many lines of code has it taken in the past to build our navigation systems, radios, weapon system A, weapon system B, etc. How much integration work is there? If its a CAN bus, the last project had X LOC for the bus architecture. Add em up, and add a big fudging factor.
It takes a lot of discipline and planning, but in the end it's the most accurate method of size and time estimation I've ever seen.
Whether that's true across widely differing parts of such a huge system I'm not convinced, but within a single more typical software project it seems believable to me.
Someone decided that the task was about 1.5 MLOC and used that to drive the total contract value.
It's possible, with highly detailed design documents. You could use something like "cyclomatic complexity" which is an older estimation methodology which is just a laundry list of small granularity features with point values attached. You add those up, while multiplying some weighted numbers together to account for interlinked complexity, then use a figure for the implementation language to come up with an estimated LOC figure. Error bars on that kind of thing are something like +/- 100%/50%. (I'm pulling numbers out of my @ss here, but I'm talking about a highly ritualized and systematized way of doing just that.)
You can get better estimates, usually by asking shops that have written the same sort of product many times before.
(https://en.wikipedia.org/wiki/Cyclomatic_complexity)
Calculating this involves working out the number of branches through the code, nothing to do with estimation. It is also very much in use today to analyse codebases, finding hotspots, etc.
https://priceonomics.com/the-typo-that-destroyed-a-space-shu...