软件由哪两部分组成