Oh my, I can't see why anyone would want to create a BMS from scratch (unless they have 20 years to do it).
Assuming you plan to use a commercially-available system (post #2), the brains for most of them are server-class computers using PCs as the management terminals. They often have proprietary hardware to connect to the field devices but may use commodity data networking gear to connect the parts.
Just spitballing some of the parts-
HMI design & graphics
Determining what field hardware gets connected for control or monitoring and how.
If any automation is needed, what is it? That's a very deep rathole and depends on whether the BMS is talking to other controllers or doing everything.
What needs to be logged? to throw an Alert? are there actions based on those alerts?
If all you want to do is check/set the home thermostat, see the outside temperature, and know that the sump in the basement is getting high, that's fairly easy. If you want time-of-day control of multiple HVAC zones, water pumps*, cooling towers, and maybe a boiler, that's a trifle harder
. IME (which is quite old now) most of the large system vendors know what questions to ask and how to produce a working system. It may not do exactly what you want, but it'll be a starting point.
* on/off/speed control, is it actually running?, pressure in & out, maybe flow monitoring, might even have a vibration sensor. And that's just one pump.