因果图:用于描述系统的输入和输出之间的因果关系、输入和输入之间的约束关系
输入与输出的关系
恒等:若输入条件发生,一定会产生相应的结果。比如
非:与恒等相反
与:多个输入条件同时发生,才会产生相应的结果
或:多个输入条件只要有一个发生,则产生相应的结果
输入与输入间的约束关系
异:多个输入条件中最多有一个发生,也可能都不发生。比如有一件商品,有3个顾客,最多有1个顾客可以买到,也可能都买不到
或:多个输入条件中至少有一个发生,也可能有多个发生。兄弟姐妹约定每周至少有一人回去照顾父母(意味着可以有多个人同时回去看望父母,但至少有一个)
唯一:多个输入条件中有且仅有一个发生。闰年和平年。
要求:多个输入条件中,其中一个条件发生,则另一个条件一定发生。输入有效手机号和收取验证码,如果正常收到验证码则说明输入的手机号一定是有效的。
例1:某系统对修改文件有如下需求:第一个字符必须是A或者B,第二个字符必须是一个数字,满足这两个条件则文件修改成功,如果第一个字符不正确,给出信息L,如果第二个字符不正确,给出信息M。请给出该需求的判定表。请画出因果图并建立判定表。
中间关系:归并逻辑,使逻辑关系更加清晰
画出因果图:
根据因果图得出判定表:M=or(A1,A2)、B1=and(A3,M)、B2=not(M)、B3=not(A3)
例2:根据以下关于中国象棋软件中关于走马的规则的描述,画出因果图,并得出判定表: 1). 如果落点在棋盘外,则不移动棋子; 2). 如果落点与起点不构成日字型,则不移动棋子; 3). 如果落点处有自己方棋子,则不移动棋子; 4). 如果在落点方向的邻近交叉点有棋子(绊马腿),则不移动棋子; 5). 如果不属于1-4条,且落点处无棋子,则移动棋子; 6). 如果不属于1-4条,且落点处为对方棋子(非老将),则移动棋子并除去对方棋子; 7). 如果不属于1-4条,且落点处为对方老将,则移动棋子,并提示战胜对方,游戏结束。
例3:某金融平台账户认证规则分为两部分:个人身份认证和银行卡认证,两者都通过后则账户认证成功。个人身份认证需要提交个人基本信息和身份证正反面照片,提交后认证成功。银行卡认证分为提现认证和充值认证: 提现认证流程:提交正确银行卡号--平台给银行卡中随机打款--用户确认金额,认证成功 充值认证流程:提交正确银行卡号--充值--网银反馈,认证成功 画出因果图,并得出判定表
因果图
判定表