决策表
DMN决策表

DMN决策表介绍决策表是⼀种⽤来表述DRD中Decision决策逻辑的⽅式。
决策表是⽤表格形式表⽰⼀组相关联的输⼊和输出表达式,组织成规则,说明⼀组特定的输⼊项所适⽤的输出项。
决策表包含所有(仅)⽤于确定输出的输⼊项。
此外,⼀个完整的表包含输⼊值(所有的规则)的所有可能组合。
使⽤决策表和表层次结构在表现决策逻辑时有较好效果。
规范化不同形式和类型决策表是DMN的⽬的之⼀。
⼀个决策表包含:名称⼀组输⼊,每个输⼊(可选)关联⼀个类型与⼀组输⼊值⼀组输出,每个输出(可选)关联⼀个类型与⼀组输出值⼀组在表中的⾏或列的规则(取决于⽅向),其中每个规则组成的表⾏(或列)的特定输⼊项和输出项决策表显⽰规则使⽤⼀种速记符号,通过排列条⽬在表格单元格中:在以上决策表⽚段的三个突出显⽰的单元格表⽰以下规则:IF input expression 1 matches x AND input expression 2 matches y THEN a result (a "hit") is z.如果"输⼊表达式1"匹配了"x",并且"输⼊表达式2"匹配了"y",则结果(⼀次命中)是"z"这样简写在每个规则中都以相同的顺序显⽰所有的输⼊,因此有⼀些可读性和验证的优势。
⼀组规则描述了决策的逻辑。
如果规则允许包含重复输⼊组合,该表的命中策略需要提⽰重复规则如何被解释,以避免不⼀致。
规则列表中可能包含了输⼊值的所有可能性组合,在这种情况下,该表被称为"完整(complete)"。
标记符号本节是建⽴在决策逻辑通⽤符号和boxed表达式基础之上。
决策表表⽰规范:⽅向(⾏式,列式或交叉表),如图所⽰的表放置输⼊、输出和⼀组值(可选)在表格单元格中的标准位置线条样式和可选⾊彩的运⽤特定规则的输⼊和输出项单元格的内容命中策略,提⽰如何解释重复的输⼊组合聚合,说明如何将多个命中聚集表名、命中策略(H)、完整性提⽰器(C)、聚合(A)和规则号的位置线的样式和颜⾊线条样式是标准的。
决策表名词解释

决策表名词解释决策表(Decision Table)是一种用于分析和解释决策过程的工具,通常包含一组相关的因素和结果,以及每个因素的权重和影响。
决策表可以帮助决策者更好地理解决策过程,评估不同决策方案的风险和收益,从而做出更明智的决策。
决策表通常由以下几个部分组成:1. 问题描述:明确决策问题和所需的答案。
2. 因素列表:列出与问题相关的所有因素,包括它们的定义、特征、重要性和权重等。
3. 结果列表:列出每个因素的结果,包括它们的影响和可能的结果。
4. 权重列表:列出每个因素的权重,表示每个因素对结果的影响程度。
5. 影响矩阵:将每个因素的结果与它的权重结合起来,形成影响矩阵。
6. 建议列表:列出可能的决策方案,包括它们的优缺点和可能的结果。
使用决策表可以帮助决策者更好地理解决策过程和结果,评估不同决策方案的风险和收益,从而做出更明智的决策。
决策表可以使用各种编程语言和工具实现,例如Python和R等。
除了用于决策制定外,决策表还可以用于其他领域,例如风险管理、市场营销和科学研究等。
在实际应用中,决策表可以根据不同的需求进行定制和扩展,以满足不同应用场景的需求。
扩展:决策表是一种用于分析和解释决策过程的工具,可以帮助决策者更好地理解决策过程和结果,评估不同决策方案的风险和收益,从而做出更明智的决策。
决策表的使用可以根据不同的场景进行定制和扩展,例如风险管理、市场营销和科学研究等。
决策表的第一部分通常包括问题描述和因素列表。
决策表的第二部分通常包括结果列表和权重列表。
决策表的第三部分通常包括影响矩阵和建议列表。
决策表的第四部分通常包括一个简短的说明,解释决策表的用途和如何查看决策表。
使用决策表可以帮助决策者更好地理解决策过程和结果,评估不同决策方案的风险和收益,从而做出更明智的决策。
决策表可以用于不同的领域,例如风险管理、市场营销和科学研究等。
在实际应用中,决策表可以根据不同的需求进行定制和扩展,以满足不同应用场景的需求。
决策表

0
0
━
1
0
━
━
0
P
P
P
练习
根据输入3条边(a,b,c)边长的值来判 断是否构成一个构成一个三角形,如果 是三角形,继续判断是一般三角形、等 腰三角形还是等边三角形。假定a、b、c 只能输入大于零的数,不考虑a、b、c为 负数和取零的情况。
试构造其决策表
NextDate函数的决策表测试用例设计
根据所执行的操作,可列出NextDate函数的动 作桩:
a1: 不可能; a2: day加1; a3: day复位; a4: month加1; a5: month复位; a6: year加1
考虑到决策表的规模,条件使用month、day、 year变量的等价类,在以下等价类集合上建立决策 表: 对于month变量的取值:
解法如下:
确定规则的个数。对于本题有2个条件(销售、库存),每 个条件可以有两个取值,故有22=4种规则。
列出所有的条件桩和动作桩。
填入条件项。
填入动作项,得到初始决策表
规则
选项
1
2
3
4
条件:
C1:销售好?
T
T
F
F
C2:库存低?
T
F
T
F
动作:
a1:增加生产
√
a2:继续生产
√
√
a3:停止生产
适用于使用决策表设计测试用例的条件
规格说明以决策表形式给出,或较容易转换为决 策表。
条件的排列顺序不会也不应影响执行的操作。 规则的排列顺序不会也不应影响执行的操作。
当某一规则的条件已经满足,并确定要执行的操 作后,不必检验别的规则。
假设不确定型快策问题的决策表

假设不确定型快策问题的决策表一、引言在日常生活和工作中,我们常常面临各种决策问题。
有些决策问题是确定型的,即已知各种因素和结果,我们可以根据已有的信息做出明确的决策。
然而,还有一类问题是不确定型的,即我们无法准确地预测各种因素和结果,这就给决策带来了一定的困难。
在面对不确定型快策问题时,决策表可以帮助我们做出更明智的决策。
二、决策表的概念和作用决策表是一种用于解决决策问题的工具,它将各种可能的条件和决策结果列在表格中,通过对条件的判断和比较,确定最佳的决策结果。
决策表的作用在于帮助我们在不确定的情况下做出决策,减少决策过程中的主观偏见,提高决策的准确性和效率。
三、决策表的构成和要素决策表由条件、决策结果和规则三个要素构成。
条件是指影响决策结果的各种因素,决策结果是根据条件做出的最佳决策,规则是条件与决策结果之间的逻辑关系。
决策表通常以表格的形式呈现,每个条件和决策结果都对应一列,规则则对应一行。
1. 条件条件是决策表中的输入,它们是影响决策结果的各种因素。
条件可以是定性的,如性别、年龄等;也可以是定量的,如收入、销售额等。
在构建决策表时,我们需要考虑哪些条件是关键的,哪些条件是可以忽略的,以及它们之间的相互关系。
2. 决策结果决策结果是决策表中的输出,它是根据条件做出的最佳决策。
决策结果可以是单一的,也可以是多个的。
在确定决策结果时,我们需要考虑各种条件下的最优解,并确定最终的决策结果。
3. 规则规则是条件与决策结果之间的逻辑关系,它描述了在不同条件下应该采取的决策结果。
规则可以是简单的,也可以是复杂的。
在构建决策表时,我们需要根据实际情况确定规则,以确保决策的准确性和可行性。
四、决策表的优缺点决策表作为一种决策工具,具有一定的优点和缺点。
•决策表清晰明了,易于理解和使用。
•决策表能够帮助我们在不确定的情况下做出明智的决策。
•决策表可以减少主观偏见,提高决策的准确性和效率。
2. 缺点•决策表的构建需要大量的时间和精力。
决策与理论复习

不确定型决策P35不确定型决策的基本特征是每个方案都对应着一些不同的状态,但无法确切知道哪种状 态将出现,也不知道各状态出现的概率。
这种情况下的决策主要取决于决策者的素质与要求。
决策矩阵(决策表)如下:一、悲观准则(max-min 准则)这种方法的基本思想是假定决策者心态比较保守,总是从每个方案可能出现的最差结果出 发,且其最佳选择是从这些最不利的结果中选择最有利的结果(差中选优)max采用悲观准则,最优方案为A1二、乐观准则(max-max 准则)这种准则的出发点是假定决策者对未来的结果持乐观的态度,总是假设出现对自己最有利的 状态,在从中选择最好的结果(优中选优)。
max决策状态—益损值采用乐观准则,最优方案为A2 折中准则折中准则是介于悲观准则和乐观准则之间的一个准则,其特点是对客观状态的估计既不是完 全乐观,也不是完全悲观,而是采用一个乐观系数a 来反映决策者对状态估计的乐观程度。
具体做法是:取ea[0,1],u (A )= a max a + (1 -a )min a i = 1,2, , n1< j < n ij采用折中准则(乐观系数a =0.8 ),其中乐观系数取a =0.8。
最优方案为A2三、等可能准则(Laplace 准则) 也称为合理性准则,这种准则的思想在于,既然没有充分理由相信哪一种自然状态会有较大 的概率出现,那就认为各种可能的状态出现的可能性是相等的,即每种状态出现的概率都是 1/n (取平均数)。
计算出每个方案Ai 的期望收益E (Ai ),然后选择期望收益最大的方案为最 优方案。
方案A1与方案A4的数学期望都达到了最大,但明显方案A4的收益波动较大。
所以A1最 优。
四、遗憾准则(min-max 准则)决策中,当某一状态出现时,如果恰好选择了该状态下的最大收益对应的方案,是最理想的。
但如果不是选择的这个理想方案,则会感到后悔或遗憾。
遗憾准则的基本思想是尽量减少决 策后的遗憾,使决策者不后悔或少后悔。
drools Decision Table(决策表)

Drools决策表的使用1简单了解这几天在研究drools,drools到底是怎么与决策表交互的呢,报这个疑问开始了寻找之路。
●何时使用决策表——如果规则能够被表达为模板+数据的格式,那你应该考虑使用决策表。
决策表中的每一行就是对应模板的一行数据,将产生一个规则。
●运行决策表——Drools引擎所部署的系统中执行决策表。
首先,决策表转换成的Drools规则语言(DRL),然后执行规则引擎需求。
这意味着它是可能的业务规则的变更,无需停止和启动,或重新部署任何软件。
2创建java类●公共java类:Caluculation.java●执行java类及规则文件(drl文件):CalculationDrl.java和calculation.drl●执行java类及决策表(xml文件):CalculationXls.java和calculation.xls(运行决策表方法一)●执行java类及决策表(xml文件)生成规则,将得到的规则放入规则文件中(drl文件中):GenerationRules.java、calculation.xls、calculations.drl、CalculationDrlXls (运行决策表方法二)2.1.1Caluculation.javapackage com.flagleader.bean;public class Calculation {private double wage;//当月工资private double actualwage;//当月税后工资private double wagemore;//全月应纳税所得额private double cess;//税率private double preminus;//速算扣除数private double wageminus;//当月工资扣减数/*** 当月工资* @return*/public double getWage() {return wage;}public void setWage(double wage) {this.wage = wage;}/*** 当月税后工资* @return*/public double getActualwage() {return actualwage;}public void setActualwage(double actualwage) { this.actualwage = actualwage;}/*** 全月应纳税所得额* @return*/public double getWagemore() {return wagemore;}public void setWagemore(double wagemore) { this.wagemore = wagemore;}/*** 税率* @return*/public double getCess() {return cess;}public void setCess(double cess) {this.cess = cess;}/*** 速算扣除数* @return*/public double getPreminus() {return preminus;}public void setPreminus(double preminus) {this.preminus = preminus;}/*** 当月工资扣减数* @return*/public double getWageminus() {return wageminus;}public void setWageminus(double wageminus) {this.wageminus = wageminus;}public Calculation() {}public Calculation(double wage) {super();this.wage = wage;}public Calculation(double wage,double wagemore) {super();this.wage = wage;this.wagemore=wagemore;}@Overridepublic String toString() {return"当月工资="+wage+"\n当月税后工资="+actualwage+"\n全月应纳税所得额="+wagemore+"\n税率="+cess+"\n速算扣除数="+preminus+"\n当月工资扣减数="+wageminus;}}2.1.2calculation.drlpackage com.flagleader.beanglobal Calculation cal;no-loop truerule"全月应纳税额"salience 3when$cal : Calculation(wage>0)then#System.out.println("-----全月应纳税额------");c al.setWagemore(cal.getWage()-3500);update(cal);endrule"设置税率"salience 2whene val(true)then#System.out.println("-----设置税率------");i f ( cal.getWagemore()<=1500 ) {cal.setCess(0.03);cal.setPreminus(0);}else if ( cal.getWagemore()>1500 && cal.getWagemore()<=4500 ) {cal.setCess(0.1);cal.setPreminus(105);}else if (cal.getWagemore()>4500 && cal.getWagemore()<=9000 ) { cal.setCess(0.2);cal.setPreminus(555);}else if(cal.getWagemore()>9000 && cal.getWagemore()<=35000 ) { cal.setCess(0.25);cal.setPreminus(1005);}else if(cal.getWagemore()>35000 && cal.getWagemore()<=55000) { cal.setCess(0.3);cal.setPreminus(2755);}else if ( ( cal.getWagemore()>55000 &&cal.getWagemore()<=80000 ) ) {cal.setCess(0.35);cal.setPreminus(5505);}else if ( cal.getWagemore()>80000 ) {cal.setCess(0.45);cal.setPreminus(13505);}insert(cal);endrule"税后工资"salience 1whene val(true)then#System.out.println("-----税后工资------");cal.setWageminus(cal.getWagemore()*cal.getCess()-cal.getPreminus( ));c al.setActualwage(cal.getWage()-cal.getWageminus());insert(cal);end2.1.3CalculationDrl.javapackage com.flagleader.bean;import org.apache.log4j.Logger;import org.drools.KnowledgeBase;import org.drools.builder.KnowledgeBuilder;import org.drools.builder.KnowledgeBuilderFactory;import org.drools.builder.ResourceType;import org.drools.io.ResourceFactory;import org.drools.runtime.StatefulKnowledgeSession;@SuppressWarnings("restriction")public class CalculationDrl {static Logger logger = Logger.getLogger(CalculationDrl.class);public static void main(String[] args) {("开始");KnowledgeBuilderkBuilder=KnowledgeBuilderFactory.newKnowledgeBuilder();//规则生成器:将编写好的规则进行编译kBuilder.add(ResourceFactory.newClassPathResource("calculation.dr l", CalculationDrl.class), ResourceType.DRL);//添加规则到规则生成其中进行编译KnowledgeBase kBase=kBuilder.newKnowledgeBase();//收集应用当中的知识定义知识库对象kBase.addKnowledgePackages(kBuilder.getKnowledgePackages());//添加规则包StatefulKnowledgeSessionsession=kBase.newStatefulKnowledgeSession();//与规则的交互通道Calculation cal=new Calculation(10000);//输入当月工资session.setGlobal("cal", cal);session.insert(cal);//将对象添加到交互通道中session.fireAllRules();//执行规则session.dispose();//释放资源System.out.println(cal.toString());("结束");}}2.1.4calculation.xls2.1.5CalculationXls.javapackage com.flagleader.bean;import org.apache.log4j.Logger;import org.drools.KnowledgeBase;import org.drools.builder.DecisionTableConfiguration; import org.drools.builder.DecisionTableInputType;import org.drools.builder.KnowledgeBuilder;import org.drools.builder.KnowledgeBuilderFactory;import org.drools.builder.ResourceType;import org.drools.io.ResourceFactory;import org.drools.runtime.StatefulKnowledgeSession;@SuppressWarnings("restriction")public class CalculationXls {static Logger logger = Logger.getLogger(CalculationDrl.class);public static void main(String[] args) {("开始");DecisionTableConfigurationdtc=KnowledgeBuilderFactory.newDecisionTableConfiguration();dtc.setInputType(DecisionTableInputType.XLS);KnowledgeBuilderbuilder=KnowledgeBuilderFactory.newKnowledgeBuilder();builder.add(ResourceFactory.newClassPathResource("com/flagleader/ bean/calculation.xls",CalculationXls.class),ResourceType.DTABLE,dtc);KnowledgeBase base=builder.newKnowledgeBase();base.addKnowledgePackages(base.getKnowledgePackages());StatefulKnowledgeSessionsession=base.newStatefulKnowledgeSession();Calculation cal=new Calculation(10000,6500.0);session.insert(cal);session.fireAllRules();session.dispose();//释放资源("结束");}}2.1.6GenerationRules.javapackage com.flagleader.bean;import java.io.*;import org.drools.decisiontable.InputType;import org.drools.decisiontable.SpreadsheetCompiler;import org.junit.Test;public class GenerationRules {@Testpublic void compile() throws FileNotFoundException {File file = new File("E:\\qzxx_workspace\\calculation\\src\\main\\java\\com\\flagleade r\\bean\\calculation.xls");InputStream is = new FileInputStream(file);SpreadsheetCompiler converter = new SpreadsheetCompiler();String drl = pile(is, InputType.XLS);System.out.println("\n\n" + drl);}2.1.7calculations.drlpackage com.flagleader.bean//generated from Decision Tableimport com.flagleader.bean.Calculation;import ng.Object;function double getCes(double cess){//System.out.println("cess="+cess);return cess;}function double getPre(double preminus){//System.out.println("preminus="+preminus);return preminus;}global Calculation cal;rule"全月应纳税额"no-loop truesalience 65526when$cal : Calculation(wage>0)thenSystem.out.println("-----全月应纳税额------");c al.setWagemore(cal.getWage()-3500);update(cal);end// rule values at D11, header at D6rule"test_11"salience 65525whenCalculation(wagemore>0,wagemore<=1500) thencal.setCess(getCes(0.03));c al.setPreminus(getPre(0.00));insert(cal);end// rule values at D12, header at D6rule"test_12"salience 65524whenCalculation(wagemore>1500,wagemore<=4500) thencal.setCess(getCes(0.1));c al.setPreminus(getPre(105.00));i nsert(cal);end// rule values at D13, header at D6rule"test_13"salience 65523whenCalculation(wagemore>4500,wagemore<=9000) thencal.setCess(getCes(0.2));c al.setPreminus(getPre(555.00));i nsert(cal);end// rule values at D14, header at D6rule"test_14"salience 65522whenCalculation(wagemore>9000,wagemore<=35000) thencal.setCess(getCes(0.25));c al.setPreminus(getPre(1005.00));i nsert(cal);end// rule values at D15, header at D6rule"test_15"salience 65521whenCalculation(wagemore>35000,wagemore<=55000) thencal.setCess(getCes(0.3));c al.setPreminus(getPre(2755.00));i nsert(cal);end// rule values at D16, header at D6rule"test_16"salience 65520whenCalculation(wagemore>55000,wagemore<=80000)thencal.setCess(getCes(0.35));c al.setPreminus(getPre(5505.00));i nsert(cal);end// rule values at D17, header at D6rule"test_17"salience 65519whenCalculation(wagemore>80000,wagemore<=100000)thencal.setCess(getCes(0.45));c al.setPreminus(getPre(13505.00));i nsert(cal);endrule"税后工资"salience 65518whene val(true)thenS ystem.out.println("-----税后工资------"+cal.getCess());cal.setWageminus(cal.getWagemore()*cal.getCess()-cal.getPreminus( ));c al.setActualwage(cal.getWage()-cal.getWageminus());insert(cal);end2.1.8CalculationDrlXls.javapackage com.flagleader.bean;import org.apache.log4j.Logger;import org.drools.KnowledgeBase;import org.drools.builder.KnowledgeBuilder;import org.drools.builder.KnowledgeBuilderFactory;import org.drools.builder.ResourceType;import org.drools.io.ResourceFactory;import org.drools.runtime.StatefulKnowledgeSession;@SuppressWarnings("restriction")public class CalculationDrlXls {static Logger logger = Logger.getLogger(CalculationDrlXls.class);public static void main(String[] args) {("开始");KnowledgeBuilderkBuilder=KnowledgeBuilderFactory.newKnowledgeBuilder();//规则生成器:将编写好的规则进行编译kBuilder.add(ResourceFactory.newClassPathResource("calculations.d rl", CalculationDrlXls.class), ResourceType.DRL);//添加规则到规则生成其中进行编译KnowledgeBase kBase=kBuilder.newKnowledgeBase();//收集应用当中的知识定义知识库对象kBase.addKnowledgePackages(kBuilder.getKnowledgePackages());//添加规则包StatefulKnowledgeSessionsession=kBase.newStatefulKnowledgeSession();//与规则的交互通道Calculation cal=new Calculation(10000);//输入当月工资session.setGlobal("cal", cal);session.insert(cal);//将对象添加到交互通道中session.fireAllRules();//执行规则session.dispose();//释放资源System.out.println(cal.toString());("结束");}}3决策表资料决策表\Drools的- 决策表.htm原网址:/Decision+Tables决策表\Drools的- 决策表中的业务规则解释.htm原网址:/Business+rules+in+decision+tables+explained。
决策表法设计测试用例

决策表法设计测试用例
决策表法是一种测试用例设计方法,它用于解决多个因素组合的决策问题。
以下是决策表法的测试用例设计步骤:
1. 确定问题的决策表:
- 需要进行决策的因素
- 各个因素之间的条件关系
2. 列出全部可能的因素组合:
- 根据问题的决策表,列出所有可能的因素组合
3. 标记有效和无效的因素组合:
- 找出无效的因素组合,即不行的情况,可以标记为无效
4. 编写测试用例:
- 根据有效的因素组合,编写测试用例
- 每个有效的因素组合都对应一个测试用例
5. 执行测试用例:
- 执行编写的测试用例
6. 整理和分析测试结果:
- 根据测试结果,整理和分析结果
通过决策表法设计的测试用例可以涵盖不同的情况,简化测试流程,提高测试效率。
但是在实际使用中,需要考虑因素的复杂性和决策表的大小,以及测试资源的限制。
决策树与决策表

历年真题
外 内
历年真题
本章结束,谢谢,
历年真题
学分>0
不成立 成立 学分≤4
成立 不成立
学分>20
异常处理
补选课处理
成立 不成立
调选课处理 选课结束
历年真题
2. 某金融部门的贷款发放最高限额问题描述如下: 对于固定资产超过500万元 含500万元 的企业: 如果无不良还款记录,低于3年期 含3年 的贷款最高限额为 100万元; 如果有不良还款记录,低于3年期 含3年 的贷款最高限额为 50万元, 对于固定资产低于500万元的企业: 如果无不良还款记录,低于3年期 含3年 的贷款最高限额为 60万元; 如果有不良还款记录,且贷款期限高于3年的不予贷款, 利用决策表描述该问题,
4 网客户是不限时档,不参加促__ __. 168
历年真题
4. 学校奖学金的决策表如下,根据决策表画出决策树,
历年真题
历年真题
案例一:邮寄包收费标准如下:若收件地点在1000公 里以内,普通件每公斤2元,挂号件每公斤3元,若收件地点 在1000公里以外,普通件每公斤2.5元,挂号件每公斤 3.5元;若重量大于30公斤,超重部分每分斤加收0.5 元, 绘制收费的原始决策表,并对其进行优化,得到优化后的 决策表,再绘制出决策树 重量用W表示 ,
◆ 自学考试辅导 ◆
管理系统中计算机应用
应用题讲解 决策树与决策表
历年真题
1. 某学生选课系统根据学生本学期选课学分的不同,采 取不同的处理:
1 学分总数小于等于0分,则进行异常处理: 2 学分总数大于0分,小于或等于4分,则直接进行补选 课处理; 3 学分总数大于20分,则进行调选课处理; 4 其他情况为正常,选课结束, 用决策树表示该决策过程,
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
黑盒测试:决策表
用决策表测试法测试以下程序:该程序有三个输入变量month、day、year(month 、day和year均为整数值,并且满足:1≤month≤12和1≤day≤31),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天的日期。
例如,输入为2004 年11月29日,则该程序的输出为2004年12月1日。
(1) 分析各种输入情况,列出为输入变量month 、day 、year 划分的有效等价类。
(2) 分析程序的规格说明,并结合以上等价类划分的情况,给出问题规定的可能采取的操作(即列出所有的动作桩)。
(3) 根据(1) 和(2) ,画出简化后的决策表。
(1)分析各种输入情况,列出为输入变量month、day、year划分的有效等价类。
①month变量的有效等价类:
M1: {month=4,6,9,11} M2: {month=1,3,5,7,8,10}
M3: {month=12} M4: {month=2}
②day变量的有效等价类:
D1: {1≤day≤26} D2: {day=27} D3: {day=28} D4: {day=29} D5: {day=30} D6: {day=31} ③year变量的有效等价类:
Y1: {year是闰年} Y2: {year不是闰年}
(2)分析程序规格说明,结合以上等价类划分的情况给出问题规定的可能采取的操作(即列出所有的动作桩)。
动作桩:A1: day+1 A2: day=1 A3: month+1 A4: month=1 A5: year+1 A6:不可能
(3)根据条件桩和动作桩,画出决策表。