第二章习题一、选择题1、可行性分析研究的目的是()A.争取项目B.项目值得开发否C.开发项目D.规划项2.可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据,因必须给出()的回答。A.确定B.行或不行C.正确D.无二义3、DFD中的每个加工至少需要()A.一个输入流B.一个输出流C.一个输入或输出流D.一个输入流和一个输出流4.数据流图(DFD)是_________方法中用于表示系统的逻辑模型的一种图形工具。()A.SAB.SDC.SPD.SC5.在软件开发中,()是指对将要开发的系统的开发成本进行估算,然后与可能取得的效益进行比较和权衡。A.成本—效益分析B.可行性分析C.结构化分析D.软件需求分析6.软件可行性研究一般不考虑()A.是否有足够的人员和相关的技术来支持系统开发B.是否有足够的工具和相关的技术来支持系统开发C.待开发软件是否有市场、经济上是否合算D.待开发的软件是否会有质量问题7、下列模型属于成本估算方法的有()A、COCOMO模型B、McCall模型C、McCabe度量法D、时间估算法8、从心理学角度看,对数据流程图的数据处理泡进行分解,一次分解为多少个泡为宜。()A、3±1B、7±2C、15±1D、18±29、研究开发所需要的成本和资源是属于可行性研究中的()研究的一方面。A.技术可行性B.经济可行性C.社会可行性D.法律可行性10.软件可行性研究实质上是要进行一次()需求分析、设计过程。A.简化、压缩的B.详细的C.彻底的D.深入的11.一个项目是否开发,从经济上来说是否可行,归根结底是取决于()。A.成本估算B.项目计划C.工程管理D.工程网络图二.简答题1.情景与描述了所有可能的动作序列的状态图之间有什么关系?2.在程序流程图中的每个结点都必须有一条从开始结点到该结点本身的路径,以及一条从该结点到结束结点的路径。为什么数据流图没有关于结点之间可达性的类似规则?3.请为某仓库的管理设计一个ER模型。该仓库主要管理零件的订购和供应等事项。仓库向工程项目供应零件,并且根据需要向供应商订购零件。4.银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存款存单给储户;,如果是取款而且取款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。请用数据流图描述本系统的功能,并用实体-联系图描述系统中的数据对象。5.目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察危重病人的病情变化,还会延误抢救时机。某医院打算开发一个以计算机为中心的患者监护系统,请分层次地画出描述本系统功能的数据流图。医院对患者监护系统的基本要求是随时接收每个病人的生理信号(脉搏、体温、血压、心电图等),定时记录病人情况以形成患者日志,当某个病人的生理信号超出医生规定的安全范围时向值班护士发出警告信号,此外,护士在需要时还可以要求系统输出某个指定病人的病情报告。6.考虑一个修改磁带上主文件的系统。文件管理员把修改信息穿孔在卡片上,系统读入穿孔卡片上的信息并按照记录号把修改信息顺序排列好。然后系统逐个读入主文件上的记录,根据记录上的校验码校核每个读入的记录,丢掉出错的记录,按照修改信息修改余下的记录,产生的新文件存储在磁盘上。最后,系统输出一份修改报告供文件管理员参阅。请分层次地画出上述主文件修改系统的数据流图。7.某高校可用的电话号码有以下几类:校内电话号码由4位数字组成,第1位数字不是0;校外电话又分为本市电话和外地电话两类,拨校外电话需先拨0,如果是本地电话再接着拨8位电话号码(第1位不是0),如果是外地电话则先拨3位区码,再拨8位电话号码(第1位不是0)。请用2.8节讲述的符号,定义上述的电话号码。8.办公室复印机的工作过程大致如下:未接收到复印命令时处于闲置状态,一旦接到复印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令;如果执行复印命令时发现缺纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接收复印命令;如果复印时发生卡纸故障,则进入卡纸状态,发出警告等待维修人员来排除故障,故障排除后回到闲置状态。请用状态转换图描绘复印机的行为。9.二维整数表是由整数对构成的数组,可以认为表中左列的整数被映射成右列的整数,因此,可以把二维整数表看作是把整数映射成整数的函数。该函数的定义域是表中左列整数的集合,例如,若表g={(3,5),(7,6),(8,2)},则g的定义域dom(g)={3,7,8}。查表(Lookup)操作在一张二维整数表中查找一个给定的表项(即,整数)。如果在表的定义域中有这个给定的整数,则查找结果为该整数所映射成的整数,否则查找结果为零。例如,若在上述的表g中查找整数7,则得到的结果为6;若查找整数5,则得到的结果为0.试用Z语言写出查表操作的规格说明。10.一个浮点二进制数的构成是:一个可选的符号(+或-),后跟一个或多个二进制位,再跟上一个字符E,再加上另一个可选符号(+或-)及一个或多个二进制位。例如,下列的字符串都是浮点二进制数:110101E-101-100111E11101+1E0更形式化地,浮点二进制数定义如下:::=[]E[]::=+︱-::=[]::=0︱1其中,符号::=表示定义为;符号[…]表示可选项;符号a︱b表示a或b。假设有这样一个有穷状态机:以一串字符为输入,判定字符串是否是合法的浮点二进制数。试对这个有穷状态机进行规格说明。11.假设你在一所职业高中工作,负责该校信息系统的建设与维护。财务科长请你研究用学校拥有的微型计算机生成工资明细表和各种财务报表的可能性。请详细描述你用结构化分析方法分析上述问题的过程。第二章习题解答一、选择题答案:1、B2、B3、D4、A5、A6、D7、A8、B9、B10、A11、A二、简答题1.答:情景仅仅是通过部分或全部状态图的一条路径。也就是说,情景仅仅描述了系统的某个典型行为,而状态图则描述了系统所有行为。2.答:数据流图不描述控制,因此,在一个数据流图中有两个“处理”之间可能没有通路。如果每个处理都使用不同的输入数据,并生成不同的输出数据,而且一个处理的输出不用做另一个处理的输入,那么,在它们之间就没有弧。3.答:建立ER图的大致过程如下所述:(1)确定实体类型本问题中共有三类实体,分别为“零件”、“工程项目”和“供应商”。(2)确定联系类型一种零件可供应多个工程项目,一个工程项目需要使用多种零件,因此,零件与工程项目之间的联系“供应”,是多对多(M:N)联系;类似地,零件与供应商之间的联系“订购”,也是多对多(M:N)联系。(3)确定实体类型和联系类型的属性实体类型“零件”的主要属性是:零件编号,零件名称,颜色,重量。实体类型“工程项目”的主要属性是:项目编号,项目名称,开工日期。实体类型“供应商”的属性主要有:供应商编号,供应商名称,地址。联系类型“供应”的属性是,向某工程项目供应的某种零件的数量。联系类型“订购”的属性是,向某供应商订购的某种零件的数量。(4)把实体类型、联系类型及属性组合成ER图。仓库管理的ER图如图2.1所示。图2.1仓库管理的ER图4.答:(1)描绘本系统功能的数据流图如图2.2所示。图2.2计算机储蓄系统数据流图(2)本问题中共有两类实体,分别是“储户”和“储蓄所”,在它们之间存在“存取款”关系。因为一位储户可以在多家储蓄所存取款,一家储蓄所拥有多位储户,所以“存取款”是多对多(M:N)关系。储户的属性主要有姓名、住址、电话号码和身份证号码,储蓄所的属性主要是名称、住址和电话号码,而数额、类型、到期日期、利率和密码则是联系类型存取款的属性。图2.3是描述计算机储蓄系统中数据对象的实体-联系图。图2.3计算机储蓄系统的实体-联系图5.答:从问题陈述可知,本系统的数据源点是“病人”和“护士”,他们分别提供生理信号和要求病情报告的信息。进一步分析问题陈述,从系统应该“定时记录病人情况以形成患者日志”这项要求可以想到,还应该有一个提供日期和时间信息的“时钟”作为数据源点。从问题陈述容易看出,本系统的数据终点是接收警告信息和病情报告的护士。系统对病人生理信号的处理功能主要是“接收信号”、“分析信号”和“产生警告信息”。此外,系统还应该具有“定期取样生理信号”、“更新日志”和“产生病情报告”的功能。为了分析病人生理信号是否超出了医生规定的安全范围,应该存储“患者安全范围”信息。此外,定时记录病人生理信号所形成的“患者日志”,显然也是一个数据存储。本系统的基本系统模型如图2.4所示,图2.5是本系统的功能级数据流图。图2.4患者监护系统的基本系统模型图2.5患者监护系统的功能级数据流图6.答:本系统的数据源点和终点都是文件管理员,他既向系统提供修改信息,又接收系统生成的修改报告。系统功能主要有:接收修改信息,读主文件,校核记录,修改原始记录和产生报告。注意,问题陈述中所描述的“系统安装记录号把修改信息顺序排列好”,是具体的实现方法。在数据流图中无须描述具体实现方法,因此,在本系统的数据流图中不需要包含“排序”功能。类似地,“文件管理员把修改信息穿孔在卡片上,系统读入穿孔卡片上的信息”,是系统接收修改信息的具体方法。在数据流图中无须描绘这个具体的实现方案,因此,在本系统的数据流图中不需要包含“穿卡片”和“读卡片”的功能。本系统包含的数据存储是:修改信息,主文件和修改后的主文件。图2.6是本系统的基本系统模型,图2.7是功能级数据流图。图2.6主文件修改系统的基本系统模型图2.7主文件修改系统的功能级数据流图7.答:电话号码=[校内电话号码│校外电话号码]校内电话号码=非零数字+3位数字校外电话号码=[本市号码│外地号码]本市号码=数字零+8位数字外地号码=数字零+3位数字+8位数字非零数字=[1│2│3│4│5│6│7│8│9]数字零=03位数字=3{数字}38位数字=非零数字+7位数字7位数字=7{数字}7数字=[0│1│2│3│4│5│6│7│8│9]8.答:从问题陈述可知,复印件的状态主要有“闲置”、“复印”、“缺纸”和“卡纸”。引起状态转换的事件主要是“复印命令”、“完成复印命令”、“发现缺纸”、“装满纸”、“发生卡纸故障”和“排除了卡纸故障”。图2.8所示状态转换图描绘了复印机的行为。图2.8复印机的状态图9.答:Lookup操作的Z规格说明如图2.9所示。图2.9Lookup操作的Z规格说明上面给出的Z规格说明指出:t是二维整数表,t'是执行查表操作后的二维整数表;l?是输入(即要查找的整数),r!是查表操作得到的结果,它也是整数。图2.9所示Z格的下半部分准确地说明了查表操作应该得到的结果:●若输入l?不在表t的定义域中,则输出r!是0,而且表t保持不变;●若输入l?在表t的定义域中,则输出r!是表t中l?所映射成的那个整数,而且表t保持不变;为什么需要在Z规格说明中指出,查表结果保持表t不变呢?试想,如果在Z规格说明中没有提出这项要求,则在查找过程中修改了表t的实现方案(可能这样做编程更方便些),也是符合规格说明的。但是,这样的实现方案是用户不能接受的。10.答:该有穷状态机的初态是“等待字符串输入”。在初态若接收到字符+、或字符-、或二进制位,则进入“输入尾数”状态;在初态若接收到其他字符,则进入终态“非浮点二进制数”。在“输入尾数”状态若接收到二进制位,则保持该状态不变;若接收到字符E,则进入“等待输入指数”状态;若接收到其他字符,则进入终态“非浮点二进制数”。在“等待输入指数”状态若接收到字符+、或字符-、或二进制位,则进入“输入指数”状态;若接收到其他字符,则进入终态“非浮点二进制数”。在“输入指数”状态若接收到二进制位,则保持该状态不变,若输入其他字符,则进入终态“非浮点二进制数”;若输入结束,则进入终