软件系统由哪两部分组成