如何确定需求是否完善?
需求内容
· 系统的所有输入都定义了吗?包括它们的来源、精度、取值范围和频率?
· 系统所有的输出都定义了吗?包括它们的目标、精度、取值范围、频率和格式?
· 所有的报告格式都定义了吗?
· 所有的硬件与软件接口都定义了吗?
· 所有的通信界面都定义了吗?包括握手、错误检查以及通信约定?
· 是否从用户的观点出发,定义了所有必要操作的反应时间?
· 是否定义了时间问题,如处理时间、数据传输率以及系统吞吐能力?
· 是否对用户所要求完成的任务都作出了规定?
· 每项任务所需用到和产生的数据都规定了吗?
· 规定保密级别了吗?
· 规定可靠性了吗?包括软件出错的后果、在出错时要保护的至关重要的信息、以及错误
测试和恢复策略。
· 规定所需最大内存了吗?
· 所需最大存储容量规定了吗?
· 对系统的维护性是否作出了规定?包括系统对运行环境、精度、性能以其与其它软件的
接口等方面变化的适应能力规定了吗?
· 是否规定了相互冲突的设计之间的折衷原则,例如,在坚固性与准确性之间如何进行折
衷?
· 是否制定了系统成败的标准?
关于需求的完善性
· 在开发开始前暂时得不到的信息是什么?是否规定了不够完善的区域?
· 需求定义是否已经完善到了可以成为软件标准的地步?
· 需求中是否有哪一部分令你感到不安?有没有根本不可能实现,而仅仅为了取悦老板和
用户才加进来的内容?
关于需求的质量
· 需求是否是用用户的语言制定的?用户也这样认为吗?
· 需求中是否每一条之间都尽量避免冲突?
· 需求中是否注意了避免规定设计工作?
· 需求在详细程度方面是否保持了一致性;有没有应该更详细些的需求?有没有应该更
简略些的?
· 需求是否明确得可以分为一些独立的可执行部分,而每一部分又都很明了?
· 是否每一条都与问题和答案相关?是否每一条都可以追溯到产生它的环境中?
· 是否每一条需求都可以作为测试依据?是否可以针对每一条进行独立测试以确定是否满
足需求?
· 是否对可能的改动作出了规定?包括每一改动的可能性?
· 系统的所有输入都定义了吗?包括它们的来源、精度、取值范围和频率?
· 系统所有的输出都定义了吗?包括它们的目标、精度、取值范围、频率和格式?
· 所有的报告格式都定义了吗?
· 所有的硬件与软件接口都定义了吗?
· 所有的通信界面都定义了吗?包括握手、错误检查以及通信约定?
· 是否从用户的观点出发,定义了所有必要操作的反应时间?
· 是否定义了时间问题,如处理时间、数据传输率以及系统吞吐能力?
· 是否对用户所要求完成的任务都作出了规定?
· 每项任务所需用到和产生的数据都规定了吗?
· 规定保密级别了吗?
· 规定可靠性了吗?包括软件出错的后果、在出错时要保护的至关重要的信息、以及错误
测试和恢复策略。
· 规定所需最大内存了吗?
· 所需最大存储容量规定了吗?
· 对系统的维护性是否作出了规定?包括系统对运行环境、精度、性能以其与其它软件的
接口等方面变化的适应能力规定了吗?
· 是否规定了相互冲突的设计之间的折衷原则,例如,在坚固性与准确性之间如何进行折
衷?
· 是否制定了系统成败的标准?
关于需求的完善性
· 在开发开始前暂时得不到的信息是什么?是否规定了不够完善的区域?
· 需求定义是否已经完善到了可以成为软件标准的地步?
· 需求中是否有哪一部分令你感到不安?有没有根本不可能实现,而仅仅为了取悦老板和
用户才加进来的内容?
关于需求的质量
· 需求是否是用用户的语言制定的?用户也这样认为吗?
· 需求中是否每一条之间都尽量避免冲突?
· 需求中是否注意了避免规定设计工作?
· 需求在详细程度方面是否保持了一致性;有没有应该更详细些的需求?有没有应该更
简略些的?
· 需求是否明确得可以分为一些独立的可执行部分,而每一部分又都很明了?
· 是否每一条都与问题和答案相关?是否每一条都可以追溯到产生它的环境中?
· 是否每一条需求都可以作为测试依据?是否可以针对每一条进行独立测试以确定是否满
足需求?
· 是否对可能的改动作出了规定?包括每一改动的可能性?