welcome to my blog!我每天都会纪录我学习的点点滴滴,也希望各位前辈多指教.

编写好的需求分析书

上一篇 / 下一篇  2007-04-12 16:32:10 / 个人分类:study

软件程序,从最终的抽象意义而言,是计算机系统对自然语言的翻译.而需求分析充当了翻译任务的急先锋.很难想象,如果没有一份好的需求说明书,针对客户含糊不清的自然语言描述,开发者能做出一个符合要求的优秀软件.然而,什么是好的需求说明书?应具备什么样的特点?我认为好的需求说明书应有由如下三个阶段,经多次循环反馈而逐渐形成:     
;ajcLsZ[d x0 1
调研阶段:
j~RA:SpZ0 
客户和需求分析师讨论系统该具有的功能.客户希望系统能做什么,达到什么样的效果.需求分析师的责任是认真听取客户的原始言语,通过讨论,语言的提炼和客户达成共识,最终得到确切的需求--客户希望系统能做什么.这一过程运用的是自然语言,需求分析师必须具备良好的沟通能力,文字表达能力,并且必须具备客户领域内的相关业务知识,不使用用户不懂的计算机专业词汇.51Testing软件测试网/TU\@@%p(S
   
参与人员:需求分析师,客户,系统设计师.51Testing软件测试网!l h!l}a
   
运用工具:自然语言.
{0qXh[%E)PP'_0   
阶段成果:调研记录书.

_'grAW&D"Y0

 2确定功能结构和设计系统原型:
a&d)V:{1U[&^ Jx0 
需求分析师和系统设计师讨论客户的需求.需求分析师针对调研阶段的记录,逐点提出客户需求,并用uml的用例概念,和系统设计师进行讨论.系统设计师根据这些需求,运用他的技术,知识和经验,将之分解总结为系统的功能结构.(此处仅针对应用系统而言,对于其他系统,可能还要总结进程结构或部署结构)得到功能结构之后,系统设计师还要构建系统原型,该原型用于和客户进行更好的交流.
0Y3ZF T+^.X9t@s0 
在这一阶段之后,由于得到了功能分解表和系统原型,需求分析师和系统设计师已明白系统的雏形,该成果将作为开发者和客户继续进行讨论的基础.
)jTr CI ^0 
参与人员:需求分析师,系统设计师(或该设计师领导的相关团队).51Testing软件测试网*D7V7Y3k K:Dw;Q-d;f1d*Y
 
运用工具:uml,构建原型的相关工具技术.51Testing软件测试网[(J6uUq!tu
 
阶段成果:功能分解表,系统原型.(大致的业务流程图)51Testing软件测试网 ^9jx Qm+u+j"l'J
  3
编写需求分析说明书51Testing软件测试网KZ7L|]
 
在参照功能分解表和系统原型的基础上,需求分析师和系统设计师编写系统的需求分析说明书.该需求分析说明书作为客户和系统开发者的桥梁,既表达了客户想要系统做什么的愿望,又反映了系统开发者针对此需求得到的努力成果(功能分解表和系统原型).通过该说明书,对系统具有的功能和最终可能的形态,客户和开发者达成共识.51Testing软件测试网w }Y K Ox$b:h*UP+a$d
 
有可能经过多次的1,2阶段的反复,最终才得到需求分析说明书.各阶段的成果应妥善保存.51Testing软件测试网,w#p/o0Y9J;B;u7]
 
参与人员:需求分析师,系统设计师,客户.51Testing软件测试网 hA:W6~c/r/N
 
运用工具:自然语言,功能分解表,系统原型.51Testing软件测试网%X/U8k)c!A
 
阶段成果:改进的功能分解表,系统原型,(业务流程图),需求分析说明书.51Testing软件测试网N.t7WA2m$h
 
1阶段,是开发者得到自然语言需求的阶段.该阶段的重要性不言而喻.51Testing软件测试网 i{(_[(c
 
2阶段,是需求分析编写的核心阶段.很多公司会有意无意忽略该阶段.确实,该阶段耗费的人力和时间挺多,但这个阶段决不能马虎的进行,甚至忽略.只有详尽的将自然语言翻译成功能需求表,并为此构建原型,开发者对系统究竟能做什么和未来该怎么做的认识才会逐渐加深.并且,对应的功能界面,能够让客户大致认识到最终的系统会是什么样子.他能够据此提出自己的满意度,修改或者增加需求.51Testing软件测试网:a$brW2Zh#?"c
 
我主张在构建功能分解表的时候,将界面的相关控件,字段,标签都一一列出,并且和原型的界面相对应.这样在功能分解表/需求分析说明书确定之后,开发者就有可能根据这些控件/字段/标签确立业务层的接口和数据库系统的表结构,减少了概要设计阶段所作的工作.
VsD-u8[+a?0 
以下是一个分解功能的例子:51Testing软件测试网&W3HeK0D\2@
 
功能:修改我的资料51Testing软件测试网_(O+PD?G]
     
功能简述:用户可以更新个人资料51Testing软件测试网%I;A4_1r/{J8At
     
界面控件:姓名文本框(输入姓名),邮箱文本框(输入邮箱),密码文本框(输入文本),确认密码文本框(输入确认密码),所属组别选择框 (输入所属组别),地址文本域(输入地址),备注文本域(输入备注).提交按钮.51Testing软件测试网$n8@6P+@HA5jY
     
界面标签(Label):根据界面控件描述进行配对.如姓名文本框的标签是"姓名".不再赘述.51Testing软件测试网 niN,}*~fj
     
界面:见图(修改我的资料)51Testing软件测试网 l0v/I7|$iz2Pp V

s7\wf R"x0

l!a6m&c7NI,t+~0

  只有经过详尽完备的1,2阶段后,我们才可能进行第3阶段,1,2阶段的成果综合起来,和客户进一步讨论需求.客户可能会对功能分解不满意,对原型有异议.这样我们必须返回到1,2阶段,再次分解功能,修改原型.直到客户满意为止.
jG0U%Hfg-a:P,ri0  
在这个基础上,我们才可能编写最终的需求说明分析书.我认为,严格按照上述流程进行编写的需求说明书,就是好的.它的特点总结如下:51Testing软件测试网2Z8s m*T*R;Fae$b
   1)
经历过反复功能分解和原型构建.客户因原型而清楚认识到自己想要系统的形态,开发者经多次反馈明确了系统所具备的功能.51Testing软件测试网 z C-D+[+F]X8f:}
   2)
编写良好的功能分解表,能够帮助开发者进一步设计业务接口.
]X@S|0   3)
构建成型的原型,有助于开发者设计数据库系统.51Testing软件测试网\{A+Pa ^7?pc%S(w
   4)*
明确的业务流程图,能够协助开发者构建系统的业务流.
Q+OJ}1_.rc,B,S0  51Testing软件测试网@ e1Jb2J0^nvk$y
  
用户的需求永远在变化,没错.但如果我们按照上述步骤努力在分析阶段弄清楚客户的需求,以后的开发维护阶段就能将需求变更的代价降到最低.只有对事物认识越深刻,才越有可能认识到事物可能存在的变化.这条哲学法则在需求分析阶段同样适用.51Testing软件测试网T!ch s3D

 51Testing软件测试网)ObE5[qmC

51Testing软件测试网"F3MJXY9W0C$?/O.C

 

\4_ Jnaj`Z-F0

TAG: study

 

评分:0

我来说两句

我的栏目

日历

« 2024-04-30  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 61511
  • 日志数: 76
  • 图片数: 1
  • 建立时间: 2007-03-07
  • 更新时间: 2008-05-31

RSS订阅

Open Toolbar