第3章 软件需求分析
1、什么是需求分析?需求分析阶段的基本任务是什么?
需求分析是指,开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式功能规约(需求规格说明过程)的过程。
需求分析的基本任务: (1)问题识别
a、功能需求b、性能需求c、环境需求d、用户界面需求 (2)分析与综合,导出软件的逻辑模型
分析人员对获取的需求,进行一致性的分析检查,在分析、综合中逐步细化软件功能,划分成各个子功能。 (3)编写文档
a、编写“需求规格说明书”,把双方共同的理解与分析结果用规范的方式描述出来,作为今后各项工作的基础。
b、编写初步用户使用手册,着重反映被开发软件的用户功能界面和用户使用的具体要求,用户手册能强制分析人员从用户使用的观点考虑软件。 c、编写确认测试计划,作为今后确认和验收的依据。
d、修改完善软件开发计划。在需求分析阶段对待开发的系统有一定了解,所以能更准确地估计开发成本、进度及资源要求,因此对原计划要进行适当修正。 2、什么结构化分析方法?该方法使用什么描述工具? 结构化分析(Structured Analysis,简称SA),是面向数据流进行需求分析的方法。 SA方法利用图形等半形式化的描述方式表达需求,这些描述工具是: (1)数据流图 (2)数据字典
(3)描述加工逻辑的结构化语言、判定表、判定树 3、结构化分析方法通过哪些步骤来实现?
(1)了解当前系统的工作流程,获得当前系统的物理模型。 (2)抽象出当前系统的逻辑模型。 (3)建立目标系统的逻辑模型。 (4)作进一步补充和优化。
4、什么是数据流图?其作用是什么?其它的基本符号各表示什么含义?
数据流图,简称DFD,是SA方法中用表示系统逻辑模型的一种工具,它以图形方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。
数据流图有四种基本图形符号: →:箭头,表示数据流; ○:圆或椭圆,表示加工; =:双杠,表示数据存储;
□:方框,表示数据的源点或终点。
(1)数据流是数据在系统内传播的路径,因此由一组成分固定的数据项组成。 (2)加工(又称数据处理)。对数据流进行某些操作或变换。 (3)数据存储(又称文件),指暂时保存的数据,它可以是数据库文件或任何形式的数据组
织。
(4)数据源点或终点:是本软件系统外部环境中的实体,统称外部实体。 5、画数据流图应该注意什么事项? (1)命名
(2)画数据流而不是控制流 (3)一般不画物质流 (4)每个加工至少有一个输入数据流和一个输出数据流,反映出此加工数据的来源与加工的结果。 (5)编号
(6)父图与子图的平衡 (7)局部数据存储
(8)提高数据流图的易理解性
6、什么是数据字典?其作用是什么?它有哪些条目? 数据字典(Data Dictionary,简称DD)就是用来定义数据流图中的各个成分的具体含义的,它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。它和数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分。
数据字典是为分析人员查找数据流图中有关名字的详细定义而服务的,因此也像普通字典一样,要把所有条目按一定的次序排列起来,以便查阅。
数据字典有四类条目:数据流、数据项、数据存储、基本加工。 7、描述加工逻辑有哪些工具?
一般用三种工具:结构化语言、判定表、判定树。
结构化语言:是介于自然语言和形式语言之间的一种半形式语言。
判定表:在有些情况下,数据流图中的某个加工的一组动作依赖于多个逻辑条件的取值。这时,用自然语言或结构化语言都不易清楚地描述出来。而用判定表就能够清楚地表示复杂的条件组合与应做的动作之间的对应关系。
判定树:是判定表的变形,一般情形下它比判定表更直观,且易于理解和使用。 8、什么是IDEF方法?IDEF0方法有什么特点?
IDEF方法是美国空军在1981年针对集成化计算机辅助制造工程项目中用于进行复杂系统分析和设计的方法,是在结构化分析与设计技术的基础上提出来的。 IDEF0方法的特点: (1)采用方框和箭头等简单的图形符号描述系统的活动和数据流,描述活动所受到的约束条件及实现机制。通过各个侧面清楚地反映了系统的功能,使读者能全面地、准确地理解系统。因此,IDEF0图宜作为正式文档。
(2)采用严格控制的正顶向下、逐层分解的方式建立系统功能模型。顶层确定系统范围,采用抽象原则,然后有控制地逐步展开有关活动,符合SA方法的分析策略。同时,IDEF0规定每张图至少有3个、最多有6个方框,上界6保证采用层次性描述复杂问题的可理解性,下界3保证分解有意义。 9、简述SA方法的优缺点。 优点:
1)公认的、有成效的、技术成熟、使用广泛的一种方法,比较适合于开发数据处理类型软件的需求分析。
2)该方法利用图形等半形式化工具表达需求,简明、易读,也易于使用,为后一阶段的设
计、测试、 评价提供了有利条件。 缺点:
1)传统的SA方法主要用于数据处理方面的问题,主要工具DFD体现了系统“做什么”的功能,但它仅是一个静态模型,没有反映处理的顺序,即控制流程。因此,不适合描述实时控制系统。
2)SA方法在使用DFD在分析与描述“数据要求”方面是有局限的。 3) DFD不适合描述人机界面系统的要求。
4)为了更精确地描述软件包需求,提高软件系统的可靠性、安全性,也便于实现自动化,SA方法可与形式方法结合起来。