I'm the software architect in an ECU company and wrote 99% of the code. Our product does 4-8 cylinders fully sequential injection and ignition, think high power Mitsubishi EVOs, STIs, BMWs, our product can run them.
I've been in your shoes some years ago and can appreciate there's not a lot of information on the subject and, given the accessibility of reflashing/remap tools for OEM ECUs, you'll find a lot of incomplete or false information out there.
First of, we need to distinguish between two types of data. We have the 'map', which is essentially the set of configuration parameters and tables that model the ECUs behavior and the 'code'. If we talk about the people who reflash OEM ECUs, they normally only modify the 'map'. That is, they read the contents of the memory which contains the manufacturer's map, use specialized software to identify where each table and configuration parameters lies in there (think of a book with no titles or table of contents) and modify certain values. In this case, the code that interprets those settings isn't changed at all. Of course, some of the bigger OEM tuners modify the code slightly as well, mainly to block other tuners from stealing their maps, but what I've described above is the gist of it.
Now, as soon as we move away from the daily driven cars with slight modifications (which are normally supported just with a remap of the OEM ECU) and into the more seriously modified cars, we reach the area of 'standalone ECUs'. This is the field in which my company operates. The whole ethos of standalone ECUs is different to the ones used by OEMs. If OEMs are interested in locking down the product and not allowing modifications (for different reasons: emissions, market segmentation, liability etc), a good standalone ECU is the one that's the easiest to modify. So the standalone ECUs will always have a good intuitive software to use when changing settings, with lots of supporting tools.
In regards to your specific question, it looks like any other C/C++ application. Depending on where you look in the code, it might have some engine-specific function names, but, at its core, it won't be any different to any embedded source code.