结构化分析方法
功能说明:
- 精确描述DFD中的每一个基本加工的加工逻辑(不能再分解的加工称之为基本加工,最后一层均为基本加工)
- 与DFD共同构成系统的功能模型(DFD+DD = 逻辑模型 ; DFD + 功能说明 = 功能模型)
结构化语言
介于自然语言(中文)与形式化语言(类似于代码语言)之间的一种半形式化的语言:
- 外层使用形式化语言来描述控制结构(顺序,选择,循环)
- 内层采用祈使句的自然语言短语
特点:
- 没有严格的语法
- 外层精确但不易被理解
- 内层易理解但不精确
- 允许使用嵌套结构
- 所有名字必须是数据字典中有定义的名字
- 不适用形容词,副词等修饰词
- 可以使用常用的算数和关系运算符(>,<,||,&&,~)
例子(伪代码):
IF(学号!=NULL){
在成绩表中查找符合条件的成绩记录
由这些成绩记录生成个人成绩单
}
例题,确定保险类别:
某数据流图中有一个“确定保险类别”的加工,其加工逻辑描述为:
- 如果申请者的年龄在21岁以下,需要额外收费
- 如果申请者是21岁以上26岁以下的女性,适合于A类保险
- 如果是26岁以下的已婚男性,或26岁以上的男性,适用于B类保险
- 如果是21岁以下的女性和26岁以下的单身男性,适合于C类保险
思路:找条件,本题中按照年龄进行分类,同时还有性别和婚姻状况(针对男性的婚姻状况),再进行描述。
IF(申请者.年龄 <= 21){
适用 “额外收费”
}
IF(申请者.性别 == “女性”){
IF(申请者.年龄 <= 21){
适用 “C类保险”
}ELSE{
适用 “A类保险”
}
}ELSE{
IF(申请者.年龄 <= 26 && 申请者.婚姻状态 == "已婚" || 申请者.年龄 > 26){
适用“B类保险”
}ELSE{
适用“C类保险”
}
}
判定表
描述复杂的条件组合与应作的动作之间的对应关系,个人人类类似于数字电路那样的“真值表”那样的描述方法。
条件 | 列出所有条件取值组合 |
动作 | 列出操作是否执行(与条件组合相对应的动作) |
如上题(例题):
条件:
- 年龄:<=21,21~26,>26
- 性别:男,女
- 婚姻状态:已婚,单身
动作
- A类保险
- B类保险
- C类保险
- 额外收费
判定树
本质上与判定表是相同的,只是表示形式不同。个人认为类似于思维导图(树状结构)
图:(被我吃了)
0 条评论