第3章 需求分析及功能建模方法 3.1 需求分析概述
' W, {; U1 J% i0 E/ Y: n 3.1.1 需求分析概念4 j* l7 m3 k; X# S. u( }! U
1、 所谓需求分折:就是对待开发的系统要做什么,完成什么功能的全面描述。
1 i+ J! k2 e% v' X( d 2、 需求分析的工作:通过对需求的调查、了解、观察和分析,通过对原始数据的收集、分类和抽象,并采用有效的技术、工具,对原始资料进行加工整理,描述开发目标、实现的功能及其相互关系等活动的集合;$ }3 Q' _( u" `. k) h6 w R
3、 需求的定义:客户对一个待开发的系统在实现目标、完成功能、应达到的性能、安全性、可靠性等方面的期望和要求的集合;5 r0 z& P6 {, A
4、 需求获取的困难:* B% h, Q% {0 o4 S C$ P
(1) 软件功能复杂;
3 R0 K, ]8 Y R1 Z% v4 u) \ S) ^. v (2) 需求的可变性;
6 D9 M' h* b8 _0 f 5、 需求分析阶段的主要任务:分析当前的业务流程,包括体系结构,各职能部门完成的主要任务、关系及其交流的信息。2 J3 q$ {4 h, ?! ]8 B6 `. X4 f6 z' h
6、 需求分析的结果通常以模型等建模工具和方法描述系统的信息流、功能结构及完成各功能需要的数据。2 p) d* V" ^. `! l
7、 功能模型和软件需求规格说明书是软件开发的依据,将指导后续的开发工作。
% G0 T' _! h4 S8 F" ?! x 8、 需求分析工作是系统分析员与用户不断交互的过程中完成的。% q9 Q& }! I6 D2 z# {+ s
3.1.2 系统分析员的职能
4 O% f, ~0 T6 j# C. q; ^% \8 j+ L 1、 系统分析员的主要要任务:是确定应用信息系统及软件产品应该达到的各项功能性要求和非功能性要求,即用户要做什么。4 X/ v: o0 P* r# |# d6 H1 H
2、 系统分析员应该具备的素质:
6 ~9 C1 O8 m' i. h% W8 e (1) 获取需求的能力;. f3 h8 [" [" ^) a! G2 y
(2) 管理及沟通能力;
1 K8 ]+ ?% F" l6 h7 [ (3) 技术素养;
; t+ K, {0 e# g. f( H- ]0 ^5 v* x 3.1.3 需求获取的方法% Y4 e$ r5 ]" B& F2 U0 s, I
常用的几种获取需求的方法:(1)面谈;(2)实地观察;(3)问卷调查;(4)查阅资源;
# Z$ J/ x" R* D' f$ F8 {. P 3.1.4 需求分析过程
/ b; Y: W4 f! T$ r. ?" ]5 i 1、 标识问题: N, W1 ]+ d4 F$ m# C4 d. g, F# y
(1) 需求分析的第一步,通过对问题的识别和标识获得所求解问题及其运行环境的理解;
. u F" Y% g% I# w* l (2) 标识问题从现行系统的业务流程做起,理解现行系统的业务流程;" m' b7 k9 }" V# K3 m! ?" g
(3) 在标识理解需求的同时,还要注意确定系统的人机界面;& D! e, T% o7 O9 v( K& U7 |$ E: o( ? m
2、建立需求模型:+ g& m& I+ \0 v3 i
(1) 模型是对现实原形所作的一种抽象,其本质是只关心与研究内容有关的因素,而忽略无关的因素,其目的是把复杂的事物变得简单,便于认识和分析;
8 n' d, _ |9 A- y* D (2) 目前常用的模型方法主要有DFD数据流图和IDEFO,都属于结构化分析方法,其特征是抽象和分解;
- e' w0 C7 p2 `: f; K: G- f7 e4 W (3) 首先对应用领域进行全面的分析,发现并找出同类事物的本质,用抽象方法把这类事物的非主要方面剔除,把握住事物的内部规律或本质,就可以找到解决办法;然后采用自上而下逐步求精的方法对复杂的问题进行分解;
; r; D/ ^; n1 x$ S7 O. z6 p (4) 结构化分析及建模方法的主要优点:
4 J8 [" [: K0 ? A (A) 不过早陷入具体的细节;
( ` K4 u* U5 j( r (B) 从整体或宏观入手分析问题;* o( b6 Q Y9 m; M% U8 x
(C) 通过图形化的模型对象直观地表示系统要做什么,完成什么功能;- K, ^5 e8 N! x% w1 G
(D) 图形化建模方法方便系统分析员理解和描述系统;8 b6 }, @( ~& D5 ?
(E) 模型对象不涉及太多的技术术语,便于用户理解;
1 A x, l/ A/ ] 3、描述需求:
2 s. `7 W, r/ c0 } (1) 需求描述的目标:对软件项目功能性和非功能性的需求全面描述;
' n3 M+ `8 P" n, X. ?7 o) k* g' K (2) 功能性需求:指需要计算机实际解决的问题或实现的具体功能,明确描述系统必须做什么,实现什么功能以及输入输出等;
9 R: [) a) g6 o (3) 非功能性需求:软件项目对实际运行环境的要求;$ I/ N* o% G% P6 d: K
(4) 需求描述主要由需求模型和需求说明书组成,说明书侧重文字说明,内容如下:需求概述;功能需求;信息需求;性能需求;环境需求;其他需求;3 j; D9 P! E* K& O5 @" N
(5) 在对需求进行分析过程中,系统分析员要经常考虑的问题:% V! h0 e! X1 B* C. E
(A) 描述的需求是完全的吗?
( Q2 l4 ~ G! t! l4 ] (B) 需求描述是正确的和一致的吗?
) q5 F1 e9 g. ` (C) 描述的这些需求是可行的、实际可操作的吗?
9 Z* k2 E1 ?1 T* l! d/ e' Z/ x" w (D) 描述中的每一条需求都是客户需要的吗?
2 @ W. ^9 M* g2 d5 @0 M 4、确认需求:
3 X3 |0 [- T1 _6 j& o, s 1、 评审委员会审核下列内容:功能需求;数据需求;性能;数据管理;其他需求。 |