从软件开发的角度进行划分,软件需求可分为功能需求、非功能需求、设计约束三种类型。功能需求规定软件系统和产品中需求实现的功能,用户利用这些功能来完成任务,解决实际的业务问题;非功能需求对软件系统和产品作了相应的补充,它从不同方面描述了软件系统的各种特性和要求,如,易用性、可扩展性、可移植性、安全性、性能和稳定性等,这些要求不同于功能需求是直接看不到的。设计约束限制了开发人员设计和构建系统时的选择范围