Современные системы не сложны, а очень сложны. Именно поэтому они реализуются обычно как наборы связанных через (желательно стандартные) API программных или аппаратных (или программно-аппаратных, что всё чаще) модулей из относительно независимых платформ, каждая из которых реализует свой кусочек предметной сложности.