软件包括哪些部分