(1)功能需求定义了软件开发人员必须实现的软件功能。用户从他们完成任务的角度对软件提出了用户需求,这些需求通常是凌乱的、非系统化的、有冗余的,开发人员不能据此编写程序。软件分析人员要充分理解用户需求,将用户需求整理成软件功能需求。开发人员根据功能需求进行软件设计和编码。<br> (2)非功能需求是对功能需求的补充,可以分两类。一类对用户来说是最重要的属性,包括有效性、高效性、灵活性、完整性、互操作性、可靠性、健壮性、可用性。另一类对开发者来说是很重要的质量属性,包括可维护性、可移植性、可重用性、可测试性。