1、1第一章第一章u1-6 1-6 什么是软件过程什么是软件过程?它与软件工程方法学有何关系它与软件工程方法学有何关系?软件过程是为了开发出高质量软件产品所需完成一系列任软件过程是为了开发出高质量软件产品所需完成一系列任务框架,它要求了完成各项任务工作步骤。务框架,它要求了完成各项任务工作步骤。软件过程定义了利用技术方法次序、应该交付文档资料、软件过程定义了利用技术方法次序、应该交付文档资料、为确保软件质量和协调软件改变必须采取管理办法,为确保软件质量和协调软件改变必须采取管理办法,以及以及标志完成了对应开发活动里程碑标志完成了对应开发活动里程碑。软件过程是软件工程方法学软件过程是软件工程方法学3
2、个主要组成部分之一。个主要组成部分之一。作业及解答第1页22-22-2 银行计算机储蓄系统工作过程大致以下:银行计算机储蓄系统工作过程大致以下:储户储户填写填写存款存款单单或或取款单取款单由由业务员业务员键入系统,假如是存款则系统键入系统,假如是存款则系统统计统计存存款人款人姓名、住址姓名、住址(或电话号码或电话号码)、身份证号码、身份证号码、存款类型存款类型、存款日期、到期日期、利率及密码存款日期、到期日期、利率及密码(可选可选)等信息,并印出等信息,并印出存单存单给储户;假如是给储户;假如是取款取款而且而且存款时留有密码存款时留有密码,则系统首,则系统首先先查对储户密码查对储户密码,若密码
3、,若密码正确正确或存款时或存款时未留未留密码,则系统密码,则系统计算计算利息利息并并印出印出利息清单利息清单给储户。给储户。请用数据流图描绘本系统功效,并用实体请用数据流图描绘本系统功效,并用实体-联络图描绘系联络图描绘系统中数据对象。统中数据对象。作业及解答(第2章)第2页3作业及解答(第2章)储户银行储蓄系统储户存款单取款单存单利息清单第3页4第4页5作业及解答(第2章)l2-3为方便旅客,某航空企业拟开发一个机票预定系统。旅为方便旅客,某航空企业拟开发一个机票预定系统。旅行社把预订机票旅客信息(姓名、性别行社把预订机票旅客信息(姓名、性别等)输入进该系等)输入进该系统,系统为旅客安排航班
4、,印出取票通知和账单,旅客在统,系统为旅客安排航班,印出取票通知和账单,旅客在飞机起飞前一天凭取票通知和账单交款取票,系统查对无飞机起飞前一天凭取票通知和账单交款取票,系统查对无误即印出机票给旅客。误即印出机票给旅客。旅客旅客旅行社旅行社机票预订机票预订系统系统预订信息预订信息取票通知取票通知账单账单取票通知取票通知账单账单/票款票款机票机票第5页6作业及解答(第2章)第6页7作业及解答(第2章)第7页8作业及解答(第2章)第8页92-5 2-5 北京某高校可用电话号码有以下几类:校内电话号码由北京某高校可用电话号码有以下几类:校内电话号码由4 4位数字组成,第位数字组成,第1 1位数字不是位
5、数字不是0 0;校外电话又分为本市电;校外电话又分为本市电话和外地电话两类,拨校外电话需先拨话和外地电话两类,拨校外电话需先拨0 0,若是本市电话,若是本市电话则再接着拨则再接着拨8 8位数字位数字(第第1 1位不是位不是0)0),若是外地电话则拨,若是外地电话则拨3 3位位区码再拨区码再拨8 8位电话号码位电话号码(第第1 1位不是位不是0)0)。请用定义数据字典方法,定义上述电话号码。请用定义数据字典方法,定义上述电话号码。作业及解答(第2章)第9页10l电话号码电话号码=校内电话号码校内电话号码|校外电话号码校外电话号码l校内电话号码校内电话号码=非零数字非零数字+3 位数字位数字 /后
6、面继续定义后面继续定义l校外电话号码校外电话号码=本市号码本市号码|外地号码外地号码l本市号码本市号码=数字零数字零+8位数字位数字l外地号码外地号码=数字零数字零+区码区码+8位数字位数字l非零数字非零数字=1|2|3|4|5|6|7|8|9l数字零数字零0l区码区码3数字数字3 /3至至3个数字个数字l8位数字位数字=非零数字非零数字+7位数字位数字l7位数字位数字=7数字数字7作业及解答(第2章)第10页11l3-3ER模型模型本问题中共有两类实体,分别是本问题中共有两类实体,分别是“储户储户”和和“储蓄所储蓄所”,在它们之间存在在它们之间存在“存取款存取款”关系。因为一位储户能够在多关
7、系。因为一位储户能够在多家储蓄所存取款,一家储蓄所拥有多位储户,所以家储蓄所存取款,一家储蓄所拥有多位储户,所以“存取存取款款”是多对多(是多对多(M:N)关系。)关系。储户属性主要有储户属性主要有姓名、住址、电话号码和身份证号码姓名、住址、电话号码和身份证号码,储,储蓄所属性主要是蓄所属性主要是名称、地址和电话号码名称、地址和电话号码,而,而数额、类型、数额、类型、到期日期、利率和密码到期日期、利率和密码则是则是关系类型存取款关系类型存取款属性。属性。作业及解答(第3章)第11页12作业及解答(第3章)第12页13l3-4第13页14l3-6 复印机工作过程大致以下:未接到复印命令时处于复印
8、机工作过程大致以下:未接到复印命令时处于闲闲置置状态,一旦接到状态,一旦接到复印命令复印命令则进入则进入复印复印状态,状态,完成一个复完成一个复印命令印命令要求工作后又回到闲置状态,等候下一个复印命令;要求工作后又回到闲置状态,等候下一个复印命令;假如执行复印命令时假如执行复印命令时发觉没纸发觉没纸,则进入,则进入缺纸缺纸状态,发出警状态,发出警告,等候装纸,告,等候装纸,装满纸装满纸后进入闲置状态,准备接收复印命后进入闲置状态,准备接收复印命令;假如复印时发生令;假如复印时发生卡纸故障卡纸故障,则进入,则进入卡纸卡纸状态,发出警状态,发出警告等候维修人员来排除故障,告等候维修人员来排除故障,
9、故障排除故障排除后回到闲置状态。后回到闲置状态。l请用状态转换图描绘复印机行为。请用状态转换图描绘复印机行为。作业及解答(第3章)第14页15l从问题陈说可知,复印机状态主要有从问题陈说可知,复印机状态主要有“闲置闲置”、“复印复印”、“缺纸缺纸”和和“卡纸卡纸”。引发状态转换事件主要是。引发状态转换事件主要是“复印复印命令命令”、“完成复印命令完成复印命令”、“发觉缺纸发觉缺纸”、“装满纸装满纸”、“发生卡纸故障发生卡纸故障”和和“排除了卡纸故障排除了卡纸故障”。作业及解答(第3章)第15页163 用面向数据流方法设计以下系统软件结构用面向数据流方法设计以下系统软件结构(1)储蓄系统)储蓄系
10、统2-2作业及解答(第5章)第16页17第17页18作业及解答(第5章)第18页19不能是两个分开子系统,是相同前台单个处理不能是两个分开子系统,是相同前台单个处理第19页20不能是两个分开子系统,是相同前台单个处理不能是两个分开子系统,是相同前台单个处理第20页21(2)机票预定系统)机票预定系统2-3l为了方便为了方便旅客旅客,某航空企业拟开发一个,某航空企业拟开发一个机票预定系机票预定系统统。旅行社旅行社把预定机票旅客信息(把预定机票旅客信息(姓名、性别、工姓名、性别、工作单位、身份证号码、旅行时间、旅行目标地作单位、身份证号码、旅行时间、旅行目标地等)等)输入输入该系统,系统为旅客该系
11、统,系统为旅客安排安排航班航班,旅客在飞机,旅客在飞机起起飞前一天飞前一天凭凭取票通知取票通知和和账单账单交款取票交款取票,系统,系统查对无查对无误误即即印出机票印出机票给给用户用户第21页22作业及解答(第5章)第22页23作业及解答(第5章)第23页24作业及解答(第5章)第24页25能够是两个子系统,能够是两个子系统,预定和取票是不一样预定和取票是不一样处理方式(后台批量处理方式(后台批量和前台单个)和前台单个)第25页26第26页273 画出以下伪码程序程序流程图和盒图画出以下伪码程序程序流程图和盒图STARTIF p THEN WHILE q DO f END DOELSE BLOC
12、K g n END BLOCKEND IFSTOP作业及解答(第6章)第27页28作业及解答(第6章)qfTF第28页294 下列图给出程序流程图代表一个非结构下列图给出程序流程图代表一个非结构化程序,请问:化程序,请问:(1)为何说它是非结构化?)为何说它是非结构化?(2)设计一个等价结构化程序。)设计一个等价结构化程序。(3)在()在(2)题设计中你使用附加标志变)题设计中你使用附加标志变量量flag吗?若没用,请再设计一个使用吗?若没用,请再设计一个使用flag程序;若用了,再设计一个不用程序;若用了,再设计一个不用flag程序程序作业及解答(第6章)第29页30(1)通通常常所所说说结
13、结构构化化程程序序,是是按按照照狭狭义义结结构构程程序序定定义义衡衡量量,符符合合定定义义要要求求程程序序。图图示示程程序序循循环环控控制制结结构构有有两两个个出出口口,显显然然不不符符合合狭狭义义结结构构程程序序定定义义,所所以以是非结构化程序。是非结构化程序。作业及解答(第6章)第30页31(2)使使用用附附加加标标志志变变量量flag,最最少少有有两两种种方方法法能能够够把把该该程程序序改改造造为为等等价价结结构构化化程程序序,图图示示盒盒图图描描绘绘了了等等价价结结构构化化程序。程序。作业及解答(第6章)第31页32(3)不不使使用用flag把把该该程程序序改改造造为为等等价价结结构构
14、化化程程序序方方法法如如图图所表示。所表示。作业及解答(第6章)第32页33l7l令令P代表交易总金额,代表交易总金额,Q代表每股售价,代表每股售价,n代表交易股数。代表交易股数。l(1)表示手续费计算方法判定表如图所表示。表示手续费计算方法判定表如图所表示。l判定表每一列是一条计算规则。比如,第判定表每一列是一条计算规则。比如,第1列列(规则规则1)要求,要求,当交易总金额当交易总金额P少于少于1000元,且每股售价元,且每股售价Q低于低于14元,且元,且交易股数交易股数n是是100倍数时,给经纪人手续费为倍数时,给经纪人手续费为l(l+0.05)0.084Pl第第16列列(规则规则16)表
15、明,当交易总金额表明,当交易总金额P超出超出10000元,且元,且每股售价每股售价Q在在14元到元到25元之间,且交易股数元之间,且交易股数n不是不是100倍倍数时,手续费为数时,手续费为l(1+0.06)(0.04P+134)l(2)表示手续费计算方法判定树如图所表示。表示手续费计算方法判定树如图所表示。作业及解答(第6章)第33页34作业及解答(第7章)第34页35作业及解答(第7章)第35页36C EXAMPLELOOP:DO WHILE Z0 A=B+1 IF A10 THEN X=A ELSE Y=Z END IFIF Y0 THEN PRINT G ELSE PRINT KEND
16、IFSTOP作业及解答(第6章)第36页37V(G)边数边数E结点结点n1 =19-14+1=6 =判断判断结点结点 1 =5 16 封闭区域数封闭区域数第37页38STARTINPUT(A,B,C)/判定表示式判定表示式1IF A5 THEN X=10 ELSE X=1END IF/判定表示式判定表示式2IF B10 THEN Y=20ELSE Y=2END IF习题解答(第习题解答(第7 7章)章)/判定表示式判定表示式3IF C15 THEN Z=30ELSE Z=3END IFPRINT(X,Y,Z)STOP7-4(3)设计以下伪码程序语句覆盖和路径覆盖测试用例:设计以下伪码程序语句覆
17、盖和路径覆盖测试用例:第38页39序序号号判定判定输入输入l预期输预期输出出123A B C X Y Z1FF F1111232TTT204060102030语句覆盖测试用例语句覆盖测试用例 习题解答(第习题解答(第7 7章)章)第39页40序号序号判定判定输入输入l预期输出预期输出123ABCXYZ1FF F1111232FF T116012303FTF140112034FTT14060120305TF F201110236TFT20160102307TTF20401102038TTT204060102030路径覆盖测试用例路径覆盖测试用例 习题解答(第习题解答(第7 7章)章)第40页41
18、习题解答(第习题解答(第9章)章)l9-9假设一家工厂采购部天天需要一张订货报表,报表按零件编假设一家工厂采购部天天需要一张订货报表,报表按零件编号排序,表中列出全部需要再次订货零件。对于每个需要号排序,表中列出全部需要再次订货零件。对于每个需要再次订货零件应该列出下述数据:零件编号,零件名称,再次订货零件应该列出下述数据:零件编号,零件名称,订货数量,当前价格,主要供给者,次要供给者。零件入订货数量,当前价格,主要供给者,次要供给者。零件入库或出库称为事务,经过放在仓库中终端把事务汇报给订库或出库称为事务,经过放在仓库中终端把事务汇报给订货系统。当某种零件库存数量少于库存量临界值时就应该货系
19、统。当某种零件库存数量少于库存量临界值时就应该再次订货。再次订货。第41页42l题中类有:零件、事务、仓库管理员、定货报表、供给商、题中类有:零件、事务、仓库管理员、定货报表、供给商、供给类。供给类。仓库管仓库管理员理员编号编号姓名姓名密码密码事务事务事务号事务号事务类型事务类型数量数量零件零件零件编号零件编号零件名称零件名称库存数量库存数量零件价格零件价格库存临界值库存临界值定货报表定货报表零件编号零件编号零件名称零件名称定货数量定货数量当前价格当前价格输入输入关于关于供给供给供给零件编号供给零件编号供给零件名称供给零件名称供给价格供给价格供给数量供给数量供给供给供给零件编号供给零件编号供给
20、零件名称供给零件名称供给价格供给价格供给数量供给数量供给商供给商供给商编号供给商编号供给商名称供给商名称供给商地址供给商地址MN第42页43l4.4.设计无人自动售货机系统对象、动态及功效模型设计无人自动售货机系统对象、动态及功效模型l售货时,用户将硬币投入机器投币口,机器检验硬币大小、售货时,用户将硬币投入机器投币口,机器检验硬币大小、重量、厚度及边缘类型。有效币种是重量、厚度及边缘类型。有效币种是1 1元、五角、一角,其元、五角、一角,其它货币被认为是假币。机器拒收假币,并将其退币口退出。它货币被认为是假币。机器拒收假币,并将其退币口退出。当机器接收了有效硬币之后,就将硬币送入硬币储备期中
21、。当机器接收了有效硬币之后,就将硬币送入硬币储备期中。用户支付货币依据硬币面值进行累加。用户支付货币依据硬币面值进行累加。l机器装有货物分配器。每个货物分配器中零个或多个价值相机器装有货物分配器。每个货物分配器中零个或多个价值相同货物,用户支付货币值大于该货物价格,货物将被分配货同货物,用户支付货币值大于该货物价格,货物将被分配货物传送孔送给用户,并将适当零钱返回到退币孔。假如分配物传送孔送给用户,并将适当零钱返回到退币孔。假如分配器是空,用户支付货币值相等硬币将被送回退币孔。假如用器是空,用户支付货币值相等硬币将被送回退币孔。假如用户支付货币值小于所选择分配器中货物价格,机器将等候用户支付货
22、币值小于所选择分配器中货物价格,机器将等候用户投进更多硬币。假如用户决定不买所选择货物,用户放进户投进更多硬币。假如用户决定不买所选择货物,用户放进货币将从退币孔退出。货币将从退币孔退出。作业及解答(第10章)第43页44l建立对象模型以下:建立对象模型以下:用户用户用户编号用户编号总金额总金额所选货物所选货物硬币硬币大小大小重量重量厚度厚度边缘类型边缘类型硬币面值硬币面值硬币储备器硬币储备器自动售货机自动售货机投入投入送入送入货物货物货物编号货物编号货物名称货物名称货物价格货物价格货物数量货物数量货物分配器货物分配器分配器编号分配器编号售出货物名称售出货物名称售出货物数量售出货物数量MN包含于包含于第44页45l动态模型以下:动态模型以下:自动售货机类状态图自动售货机类状态图待机待机检验检验硬币硬币累计投累计投币额币额选择货物选择货物退出退出硬币硬币检验付款检验付款检验存货检验存货分配货物分配货物投币投币提醒金额提醒金额不足不足提醒重新提醒重新选择选择真币真币伪币伪币输入货号输入货号不足不足足额足额有货有货无货无货等候超时等候超时不买不买不买不买投币投币第45页