核对表:需求(代码大全2)

Checklist: Requirement

针对功能需求

 是否详细定义了系统的全部输入,包括其来源、精度、取值范围、出现频率等?

 是否详细定义了系统的全部输出,包括目的地、精度、取值范围、出现频率、格式等?

 是否详细定义了所有输出格式(Web页面、报表、等等)?

是否详细定义了所有硬件及软件的外部接口?

 是否详细定义了全部外部通信接口,包括握手协议、纠错协议、通信协议等?

是否列出了用户想要做的全部事情?

 是否详细定义了每个任务所用的数据,以及每个任务得到的数据?

针对非功能需求(质量需求)

 是否为全部必要的操作,从用户的视角,详细描述了期望响应时间?

 是否详细描述了其他与计时有关的考虑,例如处理时间、数据传输率、系统吞吐?

是否详细定义了安全级别?

 是否详细定义了可靠性,包括软件失灵的后果、发生故障时需要保护的至关重要的数据、错误检测与恢复的策略等?

是否详细定义了机器内存和剩余磁盘空间的最小值?

 是否详细定义了系统的可维护性,包括适应特定功能的变更、操作环境的变更、与其他软件的接口能力的变更能力?

 是否包含对“成功”的定义?“失败”的定义呢?

需求的质量

需求是用用户的语言书写的吗?用户也这么认为吗?

每条需求都不与其他需求冲突吗?

 是否详细定义了相互竞争的特性之间的权衡——例如,健壮性和正确性之间的权衡。

是否避免在需求中规定设计(方案)?

需求是否在详细程度上保持相当一致的水平?有些需求应该更详细地描述吗?有些需求应该更粗略地描述吗?

 需求是否足够清晰,即使交给一个独立的小组去构建,他们也能理解吗?开发者也这么想吗?

每个条款都与待解决的问题及解决方案相关吗?能从每个条款上溯到它在问题领域中对应的根源吗?

 是否每条需求都是可测试的?是否可能进行独立的测试,以及检验不满足各项需求?

 是否详细描述了所有可能的对需求的改动,包括各项改动的可能性?

需求的完备性

 对于开始开发之前无法获得的信息,是否详细描述了信息不完全的区域?

 需求的完备度是否能达到这种程度:如果产品满足所有需求,那么它就是可接受的?

你对全部需求都感到舒服吗?你是否已经去掉了那些不可能实现的需求——那些只是为了安抚客户和老板的东西?

核对表:需求(代码大全2),布布扣,bubuko.com

时间: 2024-10-06 13:22:40

核对表:需求(代码大全2)的相关文章

第3章三思而后行:前期准备下(代码大全8)

第3章 Measure Twice, Cut Once:Upstream Prerequisities 三思而后行:前期准备 3.4 需求的先决条件 3.5 架构的先决条件 3.6 花在前期准备上的时间长度 要点 3.4 Requirements Prerequisite 需求的先决条件 软件架构(software architecture)是软件设计的高层部分,是用于支撑更细节的设计的框架. 为什么要把架构作为前期准备工作呢?因为架构的质量决定了系统的“概念完整性”.后者继而决定了系统的最终质

第四章关键的构建决策(代码大全2)

一旦你能确定 “构建”的基础已经打好,那么准备工作就转变为针对特定“构建”的决策了.第3章“三思而后行:前期准备”讨论了设计蓝图和建筑许可证在软件业务里的等价物.你可能对那些准备工作没有多少发言权,所以在第3章关注的焦点是确定“当构建开始后你需要做什么”.本章关注的焦点是程序员和技术带头人个人必须(直接或间接)负责的准备工作.在向工地进发之前,如何选择适用的工作别在你的腰带上,你的手里车里应该装哪些东西?本章讨论的就是这事务在软件中的等价物. 4.1 选择编程语言(Choice of Progr

第8章防范式编程下(代码大全4)

8.4 Exceptions 异常 用异常通知程序的其他部分,发生了不可忽略的错误 只在真正例外的情况下才抛出异常 不能用异常来推卸责任 避免在构造函数和析构函数中抛出异常,除非你在同一地方把它们捕获 在恰当的抽象层次抛出异常 在异常消息中加入关于导致异常发生的全部信息 避免使用空的catch语句 了解所用函数库可能抛出的异常 考虑创建一个集中的异常报告机制 把项目中对异常的使用标准化 对于像C++这类语言,其中允许抛出多种多样的对象.数据及指针的话,那么就应该为到底可以抛出哪些类的异常建立一个

《代码大全》阅读笔记-3-三思而后行:前期准备

问题定义只定义了问题是什么,而不涉及任何可能的解决方案 如果没有好的需求,你可能对问题有总体的把握,但却没有集中问题的特定方面 需求像水.如果冻结了,就容易在上面开展建设 --无名氏 软件架构是软件设计的高层部分,适用于支撑更细节的设计的框架. 离开了良好的软件架构,你可能瞄准了正确的问题,但却使用了错误的解决方案.也许完全不可能有成功的构建 架构的典型组成部分 程序组织 主要的类 2/8原则 数据设计 业务规则 用户界面设计 资源管理 安全性(数据库连接.线程.句柄等) 性能 可伸缩性 互用性

《代码大全》阅读笔记-21-协同构建

->结对编程 -> 正式检查 结对编程 成功运用结对编程的关键: 用编码规范来支持结对编程 不要让结对编程编程旁观 不要强迫在简单的问题上使用结对编程 有规律的对结对人员和分配的工作任务进行轮换 鼓励双方跟上对方的步伐 确认两个人都能够看到显示器 不要强迫程序员与自己关系紧张的人组队 避免新手组合,两人之间至少有一个有结对编程的经历 指定一个组长 结对编程的好处: 能够使人在压力之下保持更好的状态 能够改善代码质量 缩短进度时间表 指导初级程序员,培养集体归属感 核对表(有效的结对编程) 是否

《代码大全2》读后感czz

经老师推荐,买了一本<代码大全2>,花了近3个月的时间看完了,看完后觉得还有很多值得回味的地方,而且每部分之后作者还推荐了不少经典书籍.所以,作个读书心得.全书的主题是软件构建,关于软件构建问题的方方面面均有涉及,共分7个部分,从软件构建前期准备,到语言层的一些问题,再到代码完善,系统考虑以及软件工艺等等.以下分别进行简单说明. 第一部分是打好基础,本部分主要是软件构建前期的工作,以及对一些基本概念的介绍,具体包括如何选择编程语言和构建实践方法,如何理解软件开发的过程.软件开发本质上说就是工程

代码大全阅读笔记02

继续阅读代码大全这本书,感觉是好厚好难啃啊.刚刚开始读不久到了作者说把主要精力集中于构建活动,可以大大提高程序员的生产率.我想就一个项目来说,思路和设计是站着主导的地位的,你如果不能把思路理清,可能随时都有可能卡在那里,而一旦灵感来了,你就会想泉涌一样的来思路,我们也算是做了一个小的项目的了,虽然很low吧,但是好歹也算有点体会.我们总是在设计的时候会走投无路,不知所措,以至于每一次开始时都是没有思路起手都只能积压在那里,实在是不知道该怎么做.我觉得 P28 的那个食物链的例子更有说服力,健康的

初读《代码大全》

对于<代码大全>这本书我还没有仔细的读,更别说是看完了,我就重点看了一下第三.四章,主要讲软件工程的前期准备,其次就是我大致浏览了一下后面的内容.第一感觉就是作者写得相当好,插入了不少段子,比喻形象,生动诙谐.但是没有深入的研读难以给出有意义的问题,想问题快把我想得头都要爆炸了,最终还挤出了几个问题.虽然本书主要讲的是软件构建过程,下面的问题主要集中在软件架构相关的领域.1字符集总是让人捉摸不透,那么常用的编程语言都分别支持哪些字符集,如何用这种语言编写制定字符集的程序?字符串类型和字符集类型

《代码大全》读后有感

原本是为了完成软件工程课的作业任务,才打开了这么一本大部头的著作.虽然这一周只读了几章,但是却觉得第一次这样认真的将软件与代码区别开来,也是第一次以工程的角度考虑软件.虽然上了“软件工程”这样的课程,但一来上课不认真,二来课程内容经常纠结于局部问题,所以没有感觉.想来这门课的老师也知道这样的情况,所以第一堂课就说明要我们找些这方面的著作看.然而...还是没能引起我们的重视. 直到上周这个时候,说道要检查博客,才想起这回事.原本想随便找本薄些的书看看,但又想着,要看还是看些经典,于是找到了<代码大