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