开发前期的需求分析的心得

来源:互联网 发布:淘宝网冬季新款女鞋 编辑:程序博客网 时间:2024/05/18 01:14
 
1确保每个人都知道需求变更的代价。客户只要想到一个新的功能便会兴奋不已,忘记了所有的需求分析和需求文档。对付这种头脑发热,中毒已深度的人都方法是说:“这听起来是一个很不错的主意,不过由于它不是需求文档的内容,我会整理一份修改过的进度表和成本估计表,这样你就可以决定是现在实施还是过一阵子再说。”成本和进度这两个字眼比咖啡和洗冷水澡更提神。另外,就是可以建立变更控制程序来控制客户过于频繁的需求变化。
 
2在提到实施这个项目的商业理由的时候,许多需求分析就会从眼前消失。有些需求分析作为功能特色是不错的想法,但是当你评估增加的商业价值的时候,就会觉得它是个糟透了的主意。那些记得“考虑自己的决定所带来的商业价值”的程序员身价堪比黄金。
 
3需求分析核对表:下面的核对表包含了一系列的问题:问问自己的项目需求工作做得如何。
针对功能需求
1是否详细定义了系统的全部输入,包括其来源,精度,取值范围,出现频率等
2是否详细定义了系统的全部输出,包括目的地,精度,取值范围,出现频率,格式等
3是否详细定义了所有输出格式(WEB页面,报表,等等)
4是否详细定义了所有硬件及软件的外部接口
5是否详细定义了全部外部通信接口,包括手握手协议,纠错协议,通信协议等
6是否列出了用户想要做的全部事情
是否详细定义了每个任务所用的数据,以及每个任务得到的数据
正对非功能需求(质量需求)
1是否为全部必要的操作,从用户的视角,详细描述了期望响应的时间
2是否详细描述了其他与计时有关的考虑,例如处理时间,数据传输率,系统吞吐量
3是否详细定义了安全级别
4是否详细定义了可靠性,包括软件失灵的后果,发生故障时需要保护的至关重要的信息,错误检测与恢复策略等
 
5是否详细定义了系统的可维护性,包括适应特定功能的变更,操作环境的变更,与其他软件的接口的变更的能力
6是否包含对“成功”的定义,对“失败”的定义
需求的质量
 
1需求是用用户的语言书写的吗?用户也这样认为吗?
2每条需求不与其他需求冲突吗?
3是否详细定义了相互竞争的特性之间的权衡---例如:健壮性与正确性之间的权衡
4是否避免在需求中规定设计
5需求是否在详细程度上保持相当一致的水平,、?有些需求应该更详细描述吗?开发者也这么想吗?
6每个条款都与待解决的问题及其解决方案有关吗?能从每个条款上溯到他在问题域中对对应的根源吗?
7是否每条需求都是可测试的?是否可能独立进行测试,以及检验满不满足各项需求?
8是否详细描述了所有可能的对需求的改动,包括各项改动的可能性
需求的完备性
1对于在开始开发之前无法获得的信息,是否详细描述了信息不完全的区域
2需求的完备度是否能达到这种程度:如果产品满足所有需求,那么它就是可接受的
你对全部需求都感到很舒服吗?你是否已经去掉了那些不可能实现的需求—那些只是为了安抚客户和老板的东西?
 
 
 
 
4构架应该记录曾经考虑过的其他设计方案,并给出选用当前的组织结构的理由
 
5构架应该模块化,以便在为新客户替换界面时不影响业务的规则和程序的输出
 
6构架应该清楚的说明“一致地处理错误“的策略


7构架核对表:
正对各构架主题
1程序的整体组织结构是否清晰?是否包含一个良好的构架全局观(及其理由)?
2是否明确定义了主要的构造块(包括每个构造块的职责范围及与其他构造块的接口)?
3是否明显覆盖了需求中列出的所有功能(每个功能对应的构造块不太大也不太少)?
4是否描述并论证了那些最关键的类?
5是否描述并论证了数据设计
6是否详细定义了数据库的组织结构和内容
7是否指出了所用关键的业务规则,并描述其对系统的影响
8是否描述了用户界面设计的策略
9是否将用户界面模块化,使界面的变更不影响其他部分
10是否描述并论真了处理I/0的策略
11是否估算了稀缺资源(如线程,数据库连接,句柄,网络带宽等)的使用量,是否描述并论证了资源管理的策略
12是否描述了构架的安全需求
13构架是否为每个类,每个子系统,或每个功能域提出空间和时间预算
14构架是否描述了如何达到了可伸缩性
15构架是否关注互操作性
16是否描述了国际化/本地化的策略
17是否描述了一套内聚的错误处理策略
18是否描述了容错的方法
19是否正式了系统各个部分的技术可行性
20是否详细描述了过度工程的方法
21是否包含了并要“买VS造“的策略
22构架是否描述了如何加国被复用的代码,使之符合其他构架目标
23是否将构架设计得能够适应很可能出现的变更
构架的总体质量
1构架是否解决了全部的需求
2有没有哪个部分是“过度构架“或者”欠构架“?是否明确宣布了这方的预期指标
3整个构架是否在概念上协调一致
4顶层设计是否独立于用作实现它的机器和语言
5是否说明了所有主要的决策的动机
6你作为一名实现该系统的程序员,是否感觉良好
 
原创粉丝点击