3.2 结构化分析方法
【考点1】需求分析与需求分析方法
(1)需求分析
软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。
任务是发现需求、求精、建模和定义需求的过程。
①需求的定义
a.用户解决问题或达到目标所需的条件或权能;
b.系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件或权能;
c.一种反映a或b所描述的条件或权能的文档说明。
该定义从两方面阐述了需求的含义:
一是从用户角度所要求的系统应具有的功能,是系统的外部行为。
二是从系统开发者角度所要求的系统应具有的功能,是系统的内部特性。
②需求分析阶段的工作
a.需求获取
需求获取的目的是确定对目标系统的各方面需求。涉及的主要任务是建立获取用户需求的方法框架,并支持和监控需求获取的过程。
b.需求分析
对获取的需求进行分析和综合,最终给出系统的解决方案和目标系统的逻辑模型。
c.编写需求规格说明书
作为需求分析的阶段成果,可以为用户、分析人员和设计人员之间的交流提供方便,可以直接支持目标软件系统的确认,又可以作为控制软件开发进程的依据。
d.需求评审
对需求分析阶段的工作进行复审,验证需求文档的一致性、可行性、完整性和有效性。
(2)需求分析方法
①结构化分析方法
a.面向数据流的结构化分析方法;
b.面向数据结构的Jackson方法;
c.面向数据结构的结构化数据系统开发方法。
②面向对象的分析方法
从需求分析建立的模型的特性来分,需求分析方法又分为静态分析方法和动态分析方法。
【真题演练】
1下面描述中不属于软件需求分析阶段任务的是( )。[2014年9月真题]
A.撰写软件需求规格说明书
B.软件的总体结构设计
C.软件的需求分析
D.软件的需求评审
【答案】B
【解析】需求分析阶段的工作包括:①需求获取;②需求分析;③编写需求规格说明书;④需求评审。软件的总体结构设计属于概念设计阶段的工作。答案选择B选项。
2在软件开发中,需求分析阶段产生的主要文档是( )。[2013年3月真题]
A.可行性分析报告
B.软件需求规格说明书
C.概要设计说明书
D.集成测试计划
【答案】B
【解析】B项,软件需求规格说明书是后续工作如设计、编码等需要的重要参考文档,是需求分析阶段产生的主要文档。其作用是:①便于开发人员进行理解和交流;②反映用户问题的结构,可作为软件开发工作的基础和依据;③可作为确认测试和验收的依据。A项,可行性分析报告产生于可行性分析阶段;C项,概要设计说明书产生于总体设计阶段;D项,集成测试计划产生于概要设计阶段。答案选择B选项。
【考点2】结构化分析方法
(1)关于结构化分析方法
①定义
结构化分析方法是结构化程序设计理论在软件需求分析阶段的运用。
②实质
着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。
③结构化分析的步骤:
a.通过对用户的调查,以软件的需求为线索,获得当前系统的具体模型;
b.去掉具体模型中非本质因素,抽象出当前系统的逻辑模型;
c.根据计算机的特点分析当前系统与目标系统的差别,建立目标系统的逻辑模型;
d.完善目标系统并补充细节,写出目标系统的软件需求规格说明;
e.评审直到确认完全符合用户对软件的需求。
(2)结构化分析的常用工具
①数据流图
a.定义:数据流图是描述数据处理过程的工具,是需求理解的逻辑模型的图形表示,它直接支持系统的功能建模。
b.数据流图中的主要图形元素与说明
加工(转换)。输入数据经加工变换产生输出。
数据流。沿箭头方向传送数据的通道,一般在旁边标注数据流名。
存储文件(数据源)。表示处理过程中存放各种数据的文件。
数据的源点和终点。表示系统和环境的接口,属系统之外的实体。
c.建立数据流图的步骤:
第一,由外向里:先画系统的输入输出,然后画系统的内部;
第二,自顶向下:顺序完成顶层、中间层、底层数据流图;
第三,逐层分解。
d.数据流图的构造规则和注意事项
第一,对加工处理建立唯一、层次性的编号,且每个加工处理通常要求既有输入又有输出;
第二,数据存储之间不应该有数据流;
第三,数据流图的一致性;
第四,父图、子图关系与平衡规则。
相邻两层DFD之间具有父、子关系,子图代表了父图中某个加工的详细描述,父图表示了子图间的接口。
②数据字典
a.数据字典的作用
数据字典是结构化分析方法的核心,对所有与系统相关的数据元素的一个有组织的列表,以及精确的、严格的定义,使得用户和系统分析员对于输入、输出、存储成分和中间计算结果有共同的理解。
b.数据字典包含的内容
数据字典包含的信息有:名称、别名、何处使用/如何使用、内容描述、补充信息等。
③判定树
分清判定条件和判定结论,根据描述材料中的连接词找出判定条件之间的从属关系、并列关系、选择关系,根据它们构造判定树。
④判定表
判定表由以下四部分组成:
a.基本条件项:列出了各种可能的条件;
b.条件项:列出了各种可能的条件组合;
c.基本动作项:列出了所有的操作;
d.动作项:列出在对应的条件组合下所选的操作。
【真题演练】
1数据流图中,带有箭头的线段表示的是( )。[2013年3月真题]
A.控制流
B.事件驱动
C.模块调用
D.数据流
【答案】D
【解析】数据流图基本符号的含义:①矩形表示数据的外部实体;②圆角的矩形表示变换数据的处理逻辑;③缺少右半边的矩形表示数据的存储;④箭头表示数据流。答案选择D选项。
2软件开发中,需求分析阶段可以使用的工具是( )。[2013年3月真题]
A.N-S图
B.DFD图
C.PAD图
D.程序流程图
【答案】B
【解析】结构化解析方法是结构化程序设计理论在软件需求解析阶段的运用,DFD(数据流图)是结构化解析常用的工具之一,数据字典、判定树和判定表也是常用的结构化分析工具。程序流程图、N-S图、PAD图等图形工具用于详细设计的过程中。答案选择B选项。
【考点3】软件需求规格说明书
软件需求规格说明(SRS)是描述需求中的重要文档,是软件需求分析的主要成果。
(1)软件需求规格说明书的作用
①便于用户、开发人员进行理解和交流;
②反映出用户问题的结构,可以作为软件开发工作的基础和依据;
③作为确认测试和验收的依据;
④为成本估算和编制计划进度提供基础;
⑤软件不断改进的基础。
(2)软件需求规格说明书的内容
①功能需求是软件需求规格说明,给出软件要执行什么功能的详尽描述;
②性能需求是指定量地描述软件系统应满足的具体性能需求,即各种软件功能的速度、响应时间、恢复时间;
③外部接口指软件如何与人、系统的硬件及其他硬件和其他软件进行交互;
④属性是指与软件有关的质量属性,如正确性、可用性、可靠性、安全性、可维护性等;
⑤约束条件包括影响软件实现的各种设计约束,如使用的标准、编程语言、数据库完整性方针、资源限制、运行环境等方面的要求。
(3)软件需求规格说明的特点
①正确性。体现待开发系统的真实要求。
②无歧义性。对每一个需求只有一种解释,其陈述具有唯一性。
③完整性。包括全部有意义的需求,功能的、性能的、设计的、约束的,属性或外部接口等方面的需求。
④可验证性。描述的每一个需求都是可以验证的,即存在有限代价的有效过程验证确认。
⑤一致性。各个需求的描述不矛盾。
⑥可理解性。需求说明必须简明易懂,尽量少包含计算机的概念和术语,以便用户和软件人员都能接受它。
⑦可修改性。SRS的结构风格在需求有必要改变时是易于实现的。
⑧可追踪性。每一个需求的来源、流向是清晰的,当产生和改变文件编制时,可以方便地引证每一个需求。