软件项目的特点有哪些?