软件工程–图表与有穷状态机
1. 银行计算机存储系统
1.1 作业题目
银行计算机存储系统的工作过程大致如下:储户填写的存款单或取款单由业务员输入系统,如果是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存储类型、存款日期、到期日期、利率及密码(可选)等信息,并打印出存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。
用数据流图描绘本系统的功能,并用实体-联系图描绘系统中的数据对象。
1.2 作业分析
上述问题是一个银行计算机系统的简单实例,考察的知识点是数据流图以及E-R图。
1.3 数据流图
1.4 实体-联系图
2. 机票预订系统
2.1 作业题目
为方便旅客,某航空公司拟开发一个机票预订系统。旅行社把预订机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入该系统,系统为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统校对无误即印出机票给旅客。
试用实体-联系图描绘本系统中数据对象并用数据流图描绘本系统的功能。
2.2 作业分析
上述题目是一个机票预订系统的简化实例,考察的知识点仍然是数据流图以及E-R图。
2.3 数据流图
2.4 实体-联系图
3. 复印机
3.1 作业题目
复印机的工作流程大致如下:未接到复印命令时出于闲置状态,一旦接到复印命令则进入复印状态,完成一个复印指令规定的工作后又回到闲置状态,等待下一个复印命令;如果执行复印命令时发现没纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接收复印命令;如果复印时发生卡纸故障,则进入卡纸状态,发出警告,等待维修人员来排除故障,故障排除后回到闲置状态。
试用状态转换图描绘复印机的行为。
3.2 作业分析
此题是以复印机的工作流程为背景来考察的程序流程图的使用。
3.3 流程图
4. 浮点数–有穷状态机
4.1 作业题目
一个浮点二进制数的构成是:一个可选的符号 (+or−) , 后跟一个或多个二进制位,再跟上另一个可选符号 (+or−) 及一个或多个二进制位。例如,下列的字符串都是浮点二进制数:
110101E−101
−100111E11101
+1E0
更形式化地,浮点二进制数定义如下:
<floating−pointbinary>::[<sign>]<bitstring>E[<sign>]<bitstring> <script type="math/tex" id="MathJax-Element-6"> ::[ ] E[ ] </script>
<sign>::=+|− <script type="math/tex" id="MathJax-Element-7"> ::=+|-</script>
<bitstring>::=<bit>[bitstring] <script type="math/tex" id="MathJax-Element-8"> ::= [bitstring]</script>
<bit>::=0|1 <script type="math/tex" id="MathJax-Element-9"> ::=0|1</script>
其中:
符号 ::= 表示定义为;
符号 [...] 表示可选项;
符号 a|b 表示 a 或者 b 。
假设这样一个有穷状态机:以一串字符为输入,判断字符串中是否含有合法的浮点二进制数。试对这个有穷状态机进行规格说明。
4.2 作业分析
此题是以浮点数的合法性判定为切入点,考察的有穷状态机的规格说明的书写方法。
4.3 规格说明
input data=symbol1number+symbol2+symbol1+number⇒statue one
statue one.number∈{0,1}⇒statue two
statue two.symbol1∈{+,−,⊘}⇒statue three
statue three.symbol2∈{+,−}⇒statue four
statue four⇒Return True
else Return False