软件水平 > 中级资格 > 软件设计师 > 文章内容

软考软件设计师:软件需求分析

2017-9-16编辑:daibenhua

  软件需求分析

  需求分析:开发人员准确地理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的需求规格说明的过程。

  它有以下几难点:

  ⑴ 问题的复杂性。由用用户需求涉及的因素繁多引起,如运行环境和系统功能

  ⑵ 交流障碍。需求分析涉及人员较多,这些人具备不同的背景知识,处于不同角度,扮演不同角色,造成相互之间交流困难。

  ⑶ 不完备性和不一致性。用户对问题的陈述往往是不完备的,各方面的需求可能还存在矛盾,需求分析要消除矛盾,形成完备及一致的定义。

  ⑷ 需求易变性。

  近几年来已提出多种分析和说明方法,但都必须适用以下原则:

  ⒈ 必须能够表达和理解问题的数据域和功能域。数据域包括数据流(数据通过一个系统时的变化方式)数据内容和数据结构,功能域反映上述三方面的控制信息。

  ⒉ 可以把一个复杂问题按功能进行分解并可逐层细化。

  ⒊ 建模。可更好地理解软件系统的信息,功能,行为。也是软件设计的基础。

  需求分析的任务:

  ⒈ 问题识别:双方确定对问题的综合需求,这些需求包括功能需求,性能需求,环境需求,用户界面需求。

  ⒉ 分析与综合,导出软件的逻辑模型

  ⒊ 编写文档:包括编写"需求规格说明书""初步用户使用手册""确认测试计划""修改完善软件开发计划"

  结构化分析:简称SA,面向数据流进行数据分析的方法。采用自顶向下逐层分解的分析策略。顶层抽象地描述整个系统,底层具体地画出系统工程的每个细节。中间层则是从抽象到具体的过渡。使用数据流图,数据字典,作为描述工具,使用结构化语言,判定表,判定树描述加工逻辑。

  结构化(SA)分析步骤:

  ⑴了解当前系统的工作流程,获得当前系统的物理模型。

  ⑵抽象出当前系统的逻辑模型。

  ⑶建立目标系统的逻辑模型。

  ⑷作进一步补充和优化。

  数据流图(DFD)

  以图形的方式描述数据在系统中流动和处理的过程。只反映系统必须完成的逻辑功能,是一种功能模型。

  画数据流图的步骤:

  ⑴首先画系统的输入输出,即先画顶层数据流图。顶层图只包含一个加工,用以表示被开发的系统。

  ⑵画系统内部,即画下层数据流图。将层号从0号开始编号,采用自顶向下,由外向内的原则。画更下层数据流图时,则分解上层图中的加工,一般沿着输出入流的方向,凡数据流的组成或值发生变化的地方则设置一个加工,一直进行到输出数据流。如果加工的内部还有数据流,则继续分解,直到每个加工足够简单,不能再分解为止。不能分解的加工称为基本加工。

  ⑶注意事项:

  ⒈命名。不能使用缺乏具体含义的名字,加工名应能反映出处理的功能。

  ⒉画数据流而不是控制流。数据流名称只能是名词或名词短语,整个图中不反映加工的执行顺序。

  ⒊一般不画物质流。

  ⒋每个加工至少有一个输入数据流和一个输出数据流,反映出此加工数据的来源与加工的结果 。

  ⒌编号。某个加工分解成加一张数据流图时,上层图为父图,下层图为子图。子图应编号,子图上的所有加工也应编号,子图的编号应与父图的编号相对应。

  ⒍父图与子图的平衡。子图的输入输出数据流同父图相应加工的输入输出数据流必须一致

  ⒎局部数据存储。当某数据流图书馆中的数据存储不是父图中相外部接口,而只是本图中某些加工之间的数据接口,则称这些数据存储为局部数据存储。

  ⒏提高数据流图的易理解性。

  为使数据流图便于在计算机上输入和输出,给出了描述数据流图的另一套图形符号表示数据流,只能水平或垂直画

  数据字典(DD)用来定义数据库流图中的各个成分的具体含义。有以下四类条目:数据流,数据项,数据存储,基本加工。

  ⒈数据流条目,内容及举例如下:

  数据流名称:订单

  别名:无

  简述:顾客订货时填写的项目

  来源:顾客

  去向:加工1"检验订单"

  数据流量:1000份/每周(单位时间内的传输次数)

  组成:编号+订货日期+顾客编号+地址+电话+银行帐号+货物名称+规格+数量

  ⒉数据存储条目,内空及举例

  数据存储名称:库存记录

  别名:无

  简述:存放库存所有可供货物的信息

  组成:货物名称+编号+生产厂家+单价+库存量

  组织方式:索引文件,以货物编号为关键字

  查询要求:要求能立即查询

  ⒊数据条目,内容及举例

  数据项名称:货物编号

  别名:G-No,G-num,Goods-No

  简述:本公司所有货物的编号

  类型:字符串

  长度:10

  取值范围及含义:

  第一位:进口/国产

  第2-4位:类别

  第5-7位:规格

  第8-10位:品名编号

  ⒋加工条目,内容及举例

  加工名:查阅库存

  编号:1﹒2

  激发条件:接收到合格订单时

  优先级:普通

  输入:合格合格订单

  输出:可供货订单,缺货订单

  加工逻辑:根据库存记录

  IF 订单项目数量<该项目库存量临界值

  THEN 可供货处理

  ELSE 此订单缺货,登录,待进货后再处理

  ENDIF

  数据字典的实现:

  ⑴手工建立:数据字典的内容用卡片形式存放

  ⑵利用计算机辅助建立并维护

  加工逻辑的描述:一般用结构化语言,判定表,判定树

  结构化语言是介于自然语言和形式语言之间的一种半形式化语言。它的结构可分里层和内层

  ⑴外层:用来描述控制结构,采用顺序,选择,重复三种基本结构。

  ①顺序结构:是一组祈使语句,选择语句,重复语句的顺序排列

  ②选择结构:一般用IF-THEN-ELASE-ENDIF,CASE-OF-ENDCASE等关键词。

  ③重复结构:一般用DO-WHILE-ENDDO,REPEAT-UNTIL等关键词。

  ⑵内层:一般采用祈使语句的自然语言短语,使用数据字典中的名词和有限的自定义词,其

  动词含义要具体,尽量不使用形容词和副词来修饰。

  判定表由四个部分组成:条件定义 条件取值的组合

  动作定义 在各种取值的组合下应执行的动作

  例:加工逻辑描述为,如果申请者的年龄在21岁以下,要额外收费;如果申请者是21岁以上并是26岁以下的女性,适用于A类保险;如果申请者是26岁以下的已婚男性,或者是26岁以上的男性,适用于B类保险;如果申请者是21岁以下的女性或是26岁以下的单身C类保险。附此之外的其他申请者都适用于A类保险。

  条件取值表

  判定表能在什么条件下系统应做什么动作准确无误地表示出来,但不能描述循环的处理特性,循环处理还需结构化语言。

  判定树,是判定表的变形,比判定表更直观,更易于理解和使用。

  下面的判定树与所举例的判定表等价

软考软件设计师:什么是智能客户端?

热点推荐

登录注册
触屏版电脑版网站地图