软件系统由什么组成