《软件工程导论第五版习题部分答案.ppt》由会员分享,可在线阅读,更多相关《软件工程导论第五版习题部分答案.ppt(119页珍藏版)》请在三一办公上搜索。
1、,软件工程作业解答,作业一 基本概念(第1-2章)作业二 需求分析(第3章)作业三 系统设计(第5章)作业四 详细设计(第6章)作业五 系统实现(第7章)作业六 系统维护(第8章)作业七 面向对象方法学引论(第9章)作业八 面向对象分析(第10章)作业九 面向对象设计(第11章)作业十 面向对象实现(第12章)作业十一 软件项目管理(第13章),作业及解答,作业及解答(第1-2章),1-5 根据历史数据可以做出如下的假设:对计算机存储容量的需求大致按下面公式描述的趋势逐年增加:M=4080e0.28(Y-1960)存储器的价格按下面公式描述的趋势逐年下降:P1=0.30.72Y-1974(美分
2、/位)如果计算机字长为16位,则存储器价格下降的趋势为:P2=0.0480.72Y-1974(美元/字)在上列公式中Y代表年份,M是存储容量(字数),P1和P2代表价格。基于上述假设可以比较计算机硬件和软件成本的变化趋势。要求计算:,(1)在1985年对计算机存储容量的需求估计是多少?如果字长为16位,这个存储器的价格是多少?(2)假设在1985年一名程序员每天可开发出10条指令,程序员的平均工资是每月4000美元。如果一条指令为一个字长,计算使存储器装满程序所需用的成本。(3)假设在1995年存储器字长为32位,一名程序员每天可开发出30条指令,程序员的月平均工资为6000美元,重复(1)、
3、(2)题。,作业及解答(第1-2章),(1)在1985年对计算机存储容量的需求,估计是如果字长为16位,则这个存储器的价格是(2)如果一条指令的长度为一个字,则使存储器装满程序共需4474263条指令。在1985年一名程序员每天可开发出10条指令,如果每月有20个工作日,则每人每月可开发出1020条指令。为了开发出4474263条指令以装满存储器,需要的工作量是:,作业及解答(第1-2章),程序员的月平均工资是4000美元,开发出4474263条指令的成本是(3)在1995年对存储容量的需求估计为:如果字长为32位,则这个存储器的价格是:如果一条指令为一个字长,则为使存储器装满程序共需73,5
4、77,679条指令。在1995年一名程序员每天可开发出30条指令,每月可开发出600条指令,为了开发出可装满整个存储器的程序,需要的工作量为,作业及解答(第1-2章),开发上述程序的成本为:1-6 什么是软件过程?它与软件工程方法学有何关系?软件过程是为了开发出高质量的软件产品所需完成的一系列任务的框架,它规定了完成各项任务的工作步骤。软件过程定义了运用技术方法的顺序、应该交付的文档资料、为保证软件质量和协调软件变化必须采取的管理措施,以及标志完成了相应开发活动的里程碑。软件过程是软件工程方法学的3个重要组成部分之一。,作业及解答(第1-2章),作业及解答(第1-2章),1-7 什么是软件生命
5、周期?试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的适用范围。,作业及解答(第1-2章),软件生命周期是指从软件定义、开发、使用、维护到淘汰的全过程。瀑布模型的优点:有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。瀑布模型的缺点:(1)开发过程一般不能逆转,否则代价太大;(2)实际的项目开发很难严格按该模型进行;(3)客户往往很难清楚地给出所有的需求,而该模型却要求如此。(4)软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心。瀑布模型的使用范围:(1)用户的需求非常清楚全面,且在开
6、发过程中没有或很少变化;(2)开发人员对软件的应用领域很熟悉;(3)用户的使用环境非常稳定;(4)开发工作对用户参与的要求很低。,作业及解答(第1-2章),快速原型模型的优点:(1)可以得到比较良好的需求定义,容易适应需求的变化;(2)有利于开发与培训的同步;(3)开发费用低、开发周期短且对用户更友好。快速原型模型的缺点:(1)客户与开发者对原型理解不同;(2)准确的原型设计比较困难;(3)不利于开发人员的创新。快速原型模型的使用范围:(1)对所开发的领域比较熟悉而且有快速的原型开发工具;(2)项目招投标时,可以以原型模型作为软件的开发模型;(3)进行产品移植或升级时,或对已有产品原型进行客户
7、化工作时,原型模型是非常适合的。,作业及解答(第1-2章),增量模型的优点:(1)采用增量模型的优点是人员分配灵活,刚开始不用投入大量人力资源;(2)如果核心产品很受欢迎,则可增加人力实现下一个增量;(3)可先发布部分功能给客户,对客户起到镇静剂的作用。增量模型的缺点:(1)并行开发构件有可能遇到不能集成的风险,软件必须具备开放式的体系结构;(2)增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。增量模型的使用范围:(1)进行已有产品升级或新版本开发,增量模型是非常适合的;(2)对完成期限严格要求的产品,可以
8、使用增量模型;(3)对所开发的领域比较熟悉而且已有原型系统,增量模型也是非常适合的。,作业及解答(第1-2章),螺旋模型的优点:(1)设计上的灵活性,可以在项目的各个阶段进行变更;(2)以小的分段来构建大型系统,使成本计算变得简单容易;(3)客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性;(4)随着项目推进,客户始终掌握项目的最新信息,从而他或她能够和管理层有效地交互。螺旋模型的缺点:(1)采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失;(2)过多的迭代次数会增加开发成本,延迟提交时间。螺旋模型的使用
9、范围:螺旋模型只适合于大规模的软件项目。,作业及解答(第1-2章),2.3 为方便旅客,某航空公司拟开发一个机票预订系统。旅行社把预订机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入进该系统,系统为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统校对无误即印出机票给旅客。写出问题定义并分析系统的可行性。,可行性分析报告,1 引言 11编写目的 可行性研究的目的是为了对问题进行研究,以最小的代价在最短的时间内确定问题是否可解 经过对此项目进行详细调查研究,初拟系统实现报告,对软件开发中将要面临的问题及其解决方案进行初步设计及合理
10、安排。明确开发风险及其所带来的经济效益。本报告经审核后,交软件经理审查。,1.2 项目背景开发软件名称:机票预订系统。项目任务提出者:中国民航及中国国际旅游开发公司。项目开发者:浙江大学IMK开发小组。用户:中国民航及中国国际旅游开发公司。实现软件单位:中国国际旅游开发公司及浙江大学项目与其他软件,系统的关系:本项目采用客户机/服务器原理,客户端的程序是建立在Windows NT 系统上以Microsoft Visual C+为开发软件的应用程序,服务器端采用Linux 为操作系统的工作站,是采用Oracle 8的为开发软件的数据库服务程序。,可行性分析报告,13 定义:专门术语:缩写词:14
11、 参考资料:软件工程导论,张海藩,清华大学出版社。实用软件工程,郑人杰等,清华大学出版社。,可行性分析报告,2 可行性研究的前提2.1 要求主要功能:为游客提供机票预定服务,方便旅游局的售票工作,提高旅游局的服务质量和服务效率性能要求:机场提供的信息必须及时的反映在旅游局的工作平台上。售票系统的定单必须无差错的存储在机场的主服务器上。对服务器上的数据必须进行及时正确的刷新。输出要求:数据完整,详实。输出要求:简捷,快速,实时。安全与保密要求:服务器的管理员享有对机场航班信息库及机票信息库和定票信息库的管理与修改。售票员只享有对订票信息库的部分修改(写入与读出)。完成期限:预计六个月,即截止年月
12、日。,可行性分析报告,2.2目标:系统实现后,大大提高旅游局的机票预定服务效率。降低售票服务中的错误发生率,减少信息交流的烦琐过程及其带来的开销。2.3条件,假定和限制建议软件寿命:5年。经费来源:中国国际旅游开发公司。硬件条件:服务器sun工作站,终端为pc机。运行环境:Linux数据库:Oracle8投入运行最迟时间:2000/04/04,可行性分析报告,2.4可行性研究方法2.5决定可行性的主要因素成本/效益分析结果,效益 成本。技术可行,现有技术可完全承担开发任务。操作可行,软件能被原有工作人员快速接受。,可行性分析报告,技术可行性分析3.1系统简要描述在旅游局中的终端是安装了Wind
13、ows NT的PC机,主要目的是向机场的服务器传递数据。当顾客在旅游局进行咨询时,终端向服务器发出查询请求,服务器根据航班信息库的实时数据,向终端发送数据,显示在终端的屏幕上。当顾客向售票员定票时,终端向服务器发出详尽的一份定单,服务器核对后,存入定票信息库,并修改机票信息库。当顾客再次来取票时,终端向服务器发出查询定票请求,服务器接收后,查询定票信息库,核对后,传送机票确认表单,终端打印出机票。,可行性分析报告,3.2 处理流程和数据流程,系统管理员,事务航班信息的更新,服务器终端显示数据,产生报表,售票员,查询请求,数据库,产生报表,客户机终端显示数据,售票员,表单申请,产生报表,客户机终
14、端显示数据,售票员,机票核对事务,在客户端打印机票和帐单,产生报表及帐单,可行性分析报告,经济可行性分析4.1支出基础投资:终端PC机台:8000*20=16 万网络设备:10 万辅助配置:10 万共计:36万其他一次性投资:Oracle 8.0:20 万Windows NT:10 万操作员培训费:5 万共计:35 万经常性支出:人工费用:6(月)*20(人)*5000(圆)=60万其他不可知额外支出:20万 共计:80万 支出共计:151万,可行性分析报告,4.2效益 一次性收益0元 经常性收益(按银行利率:1%);减少员工20人(1000圆/人)五年收益:1000*(1.1+(1.1)2+
15、(1.1)3+(1.1)4+(1.1)5)*20*12*5=120万工作效率提高收益(工作效率提高30%):30*(1.1+(1.1)2+(1.1)3+(1.1)4+(1.1)5)*(30%)*5=45万经常性收益共计:160万 不可定量收益因服务质量提高增加旅客量10%:1000万*10%*(90%+(90%)2+(90%)3+(90%)4+(90%)5)=360万收益共计:520万,可行性分析报告,4.3 收益/投资比 520万/151万=344%4.4 投资回收周期 2.3年4.5 敏感性分析设计系统周期为五年,估计最长可达10年处理速度:一般查询速度4秒关键数据查询速度:2秒,可行性分
16、析报告,社会因素可行性分析5.1 法律因素 所有软件都选用正版.所有技术资料都由提出方保管。合同制定确定违约责任.5.2 用户使用可行性 使用本软件人员要求有一定计算机基础的人员,系统管理员要求由计算机的专业知识,所有人员都要经过本公司培训.管理人员也需经一般培训.经过培训人员将会熟练使用本软件.两名系统管理员,一名审计员将进行专业培训,他们将熟练管理本系统.,可行性分析报告,社会因素可行性分析5.1法律因素所有软件都选用正版.所有技术资料都由提出方保管。合同制定确定违约责任.5.2用户使用可行性使用本软件人员要求有一定计算机基础的人员,系统管理员要求由计算机的专业知识,所有人员都要经过本公司
17、培训.管理人员也需经一般培训.经过培训人员将会熟练使用本软件.两名系统管理员,一名审计员将进行专业培训,他们将熟练管理本系统.,可行性分析报告,2-4 目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察危重病人的病情变化,还会延误抢救时机。某医院打算开发一个以计算机为中心的患者监护系统,请分层次地画出描述本系统功能的数据流图。医院对患者27监护系统的基本要求是随时接收每个病人的生理信号(脉搏、体温、血压、心电图等),定时记录病人情况以形成患者日志,当某个病人的生理信号超出医生规定的安全范围时向值班护士发出警告信息,此外,护士在需要时还可以要求系统印出某个指定病人的病情报告
18、。,作业及解答(第3章),请对系统需求进行分析!,经过初步的需求分析,得到系统功能要求:1、监视病员的病症(血压、体温、脉搏等)2、定时更新病历3、病员出现异常情况时报警。4、随机地产生某一病员的病情报告。,医院病房监护系统,监视病情,更新病历,情景教学,问题定义与功能分析 系统名称:医院病房监护系统 根据分析系统主要实现以下功能:1、病症监视器可以将采集到的病症信号(组合),格式化后实时的传送到中央监护系统。2、中央监护系统将病人的病症信号开解后与标准的病症信号库里的病症信号的正常值进行比较,当病症出现异常时系统自动报警。3、当病症信号异常时,系统自动更新病历并打印病情报告。4、值班护士可以
19、查看病情报告并进行打印。5、医生可以查看病情报告,要求打印病情报告,也可以查看或要求打印病历。6、系统定期自动更新病历。,需求分析,从问题陈述可知,本系统数据源点是“病人”和“护士”,他们分别提供生理信号和要求病情报告的信息。进一步分析问题陈述,从系统应该“定时记录病人情况以形成患者日志”这项要求可以想到,还应该有一个提供日期和时间信息的“时钟”作为数据源点。从问题陈述容易看出,本系统的数据终点是接收警告信息和病情报告的护士。系统对病人生理信号的处理功能主要是“接收信号”、“分析信号”和“产生警告信息”。此外,系统还应该具有“定时取样生理信号”、“更新日志”和“产生病情报告”的功能。为了分析病
20、人生理信号是否超出了医生规定的安全范围,应该存储“患者安全范围”信息。此外,定时记录病人生理信号所形成的“患者日志”,显然也是一个数据存储。,作业及解答(第3章),作业及解答(第3章),2-5 北京某高校可用的电话号码有以下几类:校内电话号码由4位数字组成,第1位数字不是0;校外电话又分为本市电话和外地电话两类,拨校外电话需先拨0,若是本市电话则再接着拨8位数字(第1位不是0),若是外地电话则拨3位区码再拨8位电话号码(第1位不是0)。请用定义数据字典的方法,定义上述的电话号码。,作业及解答(第3章),数据结构的描述 符 号 含 义 举 例 被定义为 与 x=ab.,.或.|.或 x=a,b,
21、x=a|b.或 m.n 重复 x=a,x=3a8(.)可选 x=(a)“.”基本数据元素 x=“a”.连结符 x=1.9,作业及解答(第3章),电话号码=校内电话号码|校外电话号码校内电话号码=非零数字+3 位数字/后面继续定义校外电话号码=本市号码|外地号码本市号码=数字零+8位数字外地号码=数字零+3位数字+8位数字非零数字=1|2|3|4|5|6|7|8|9数字零03位数字3数字3/3至3个数字8位数字=非零数字+7位数字7位数字=7数字7数字0|1|2|3|4|5|6|7|8|9,作业及解答(第3章),3-3 银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务员键入系
22、统,如果是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。请用数据流图描绘本系统的功能,并用实体-联系图描绘系统中的数据对象。,作业及解答(第3章),作业及解答(第3章),作业及解答(第3章),ER模型本问题中共有两类实体,分别是“储户”和“储蓄所”,在它们之间存在“存取款”关系。因为一位储户可以在多家储蓄所存取款,一家储蓄所拥有多位储户,所以“存取款”是多对多(M:N)关系。储户的属性主要有姓
23、名、住址、电话号码和身份证号码,储蓄所的属性主要是名称、地址和电话号码,而数额、类型、到期日期、利率和密码则是关系类型存取款的属性。,作业及解答(第3章),作业及解答(第3章),3-6 复印机的工作过程大致如下:未接到复印命令时处于闲置状态,一旦接到复印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令;如果执行复印命令时发现没纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接收复印命令;如果复印时发生卡纸故障,则进入卡纸状态,发出警告等待维修人员来排除故障,故障排除后回到闲置状态。请用状态转换图描绘复印机的行为。,作业及解答(第3章),从问题
24、陈述可知,复印机的状态主要有“闲置”、“复印”、“缺纸”和“卡纸”。引起状态转换的事件主要是“复印命令”、“完成复印命令”、“发现缺纸”、“装满纸”、“发生卡纸故障”和“排除了卡纸故障”。,作业及解答(第3章),4-3 一个浮点二进制数的构成是:一个可选的符号(+或-),后跟一个或多个二进制位,再跟上一个字符E,再加上另一个可选符号(+或-)及一个或多个二进制位。例如,下列的字符串都是浮点二进制数:110101E-101-100111E11101+1E0更形式化地,浮点二进制数定义如下:floatingpoint binary=signbitstringEsignbitstringsign=+
25、-bitstring=bitbitstringbit=01,作业及解答(第4章),其中,符号=表示定义为;符号.表示可选项;符号ab表示a或b。假设有这样一个有穷状态机:以一串字符为输入,判断字符串中是否含有合法的浮点二进制数。试对这个有穷状态机进行规格说明。,作业及解答(第4章),该有穷状态机的初态是“等待字符串输人”。在初态若接收到字符十、或字符一、或二进制位,则进人“输人尾数”状态;在初态若接收到其他字符,则进人终态“非浮点二进制数”。在“输人尾数”状态若接收到二进制位,则保持该状态不变;若接收到字符 E,则进人“等待输人指数”状态;若接收到其他字符,则进人终态“非浮点二进制数”。在“等
26、待输人指数”状态若接收到字符、或字符一、或二进制位,则进人“输人指数”状态;若接收到其他字符,则进人终态“非浮点二进制数”。在“输人指数”状态若接收到二进制位,则保持该状态不变;若输人其他字符,则进人终态“非浮点二进制数”;若输人结束,则进人终态“浮点二进制数”。,作业及解答(第4章),仔细研究图示的有穷状态机可以发现,它还有不够严格的地方。有兴趣的同学请进一步改进它,画出更严格的、与浮点二进制数定义完全一致的有穷状态机。,作业及解答(第4章),补充1:请为某仓库的管理设计一个ER模型。该仓库主要管理零件的订购和供应等事项。仓库向工程项目供应零件,并且根据需要向供应商订购零件。,作业及解答(第
27、5章),本问题中共有三类实体,分别是“零件”、“工程项目”和“供应商”。一种零件可供应多个工程项目,一个工程项目需要使用多种零件,因此,零件与工程项目之间的联系“供应”,是多对多(M N)联系;类似地,零件与供应商之间的联系“订购”,也是多对多(M N)联系。实体类型“零件”的主要属性是:零件编号,零件名称,颜色,重量。实体类型“工程项目”的属性主要是:项目编号,项目名称,开工日期。实体类型“供应商”的属性主要有:供应商编号,供应商名称,地址。联系类型“供应”的属性是,向某工程项目供应的某种零件的数量。联系类型“订购”的属性是,向某供应商订购的某种零件的数量。,作业及解答(第5章),作业及解答
28、(第5章),补充2:某火车售票系统的数据流程图如下所示,查询信息,查询信息,班次,日期,线路,查询结果,查询结果,查询结果,查询结果,作业及解答(第5章),接受查询,输入信息,查询信息,列车查询主模块,查询显示,分析查询,按日期查询,按班次查询,按线路查询,查询信息,查询信息,查询结果,查询结果,日期,班次,线路,补充3、已知某定货系统的需求分析DFD图如下,请按SD方法的设计步骤画出结构图。,作业及解答(第5章),补充4、已知某系统的需求分析给出的系统数据流程图如下,画出结构图,作业及解答(第5章),P104:3 用面向数据流的方法设计下列系统的软件结构(1)储蓄系统2-2(2)机票预定系统
29、2-3为了方便旅客,某航空公司拟开发一个机票预定系统。旅行社把预定机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入该系统,系统为旅客安排航班,旅客在飞机起飞前一天凭取票通知和账单交款取票,系统核对无误即印出机票给顾客(2)患者监护系统2-4,作业及解答(第5章),作业及解答(第5章),不能是两个分开的子系统,是相同的前台单个处理,不能是两个分开的子系统,是相同的前台单个处理,作业及解答(第5章),作业及解答(第5章),作业及解答(第5章),作业及解答(第5章),可以是两个子系统,预定和取票是不同的处理方式(后台批量和前台单个),P104:4美国某大学有200名教师
30、,校方与教师工会刚刚签订一项协议。按照协议,所有年工资超过$26000(含$26000)的教师工资将保持不变,年工资少于$26000的教师将增加工资,所增加工资数额按下述方法计算:给每位教师所赡养的人(包括教师本人)每年补助$100,此外,教师有一年工龄每年再多补助¥50,但是,增加后的年工资总额不能多于$26000。教师工资档案存储在行政办公室的磁带上,档案中有目前的年工资、赡养的人数、雇佣日期等信息。需要写一个程序计算并印出每名教师的原工资和调整后的新工资。要求:(1)画出此系统的数据流图;(2)写出需求说明;(3)设计上述的工资调整程序(要求用HIPO图描绘设计结果),设计时分别采用两种
31、算法,并比较两种算法的优缺点:(a)搜索工资档案数据,找出年工资少于$26000的人,计算新工资,校核是否超过$26000,存储新工资,印出新旧工资对照表;(b)把工资档案数据按工资从最低到最高的次序排序,当工资数额超过$26000时即停止排序,计算新工资,校核是否超过限额,存储新工资,印出结果。(4)你所画出的数据流图适应用那种算法?,作业及解答(第5章),作业及解答(第5章),作业及解答(第5章),作业及解答(第5章),补充5:求解杨辉三角形系数,P131:3 画出下列伪码程序的程序流程图和盒图STARTIF p THEN WHILE q DO f END DOELSE BLOCK g n
32、 END BLOCKEND IFSTOP,作业及解答(第6章),作业及解答(第6章),P131:4 下图给出的程序流程图代表一个非结构化的程序,请问:(1)为什么说它是非结构化的?(2)设计一个等价的结构化程序。(3)在(2)题的设计中你使用附加的标志变量flag吗?若没用,请再设计一个使用flag的程序;若用了,再设计一个不用flag的程序,作业及解答(第6章),(1)通常所说的结构化程序,是按照狭义的结构程序的定义衡量,符合定义规定的程序。图示的程序的循环控制结构有两个出口,显然不符合狭义的结构程序的定义,因此是非结构化的程序。,作业及解答(第6章),(2)使用附加的标志变量flag,至少
33、有两种方法可以把该程序改造为等价的结构化程序,图示盒图描绘了等价的结构化程序。,作业及解答(第6章),(3)不使用flag把该程序改造为等价的结构化程序的方法如图所示。,作业及解答(第6章),C EXAMPLELOOP:DO WHILE X0 A=B+1 IF A10 THEN X=A ELSE Y=Z END IFIF Y5 THEN PRINT X,Y ELSE IF Y=2 THEN GOTO LOOP ELSE C=3 END IFEND IF,P131:8 画出下列伪码程序的流图,计算它的环形复杂度。你觉得这个程序的逻辑有什么问题吗?,G=H+REND DOIF F0 THEN PR
34、INT G ELSE PRINT KEND IFSTOP,作业及解答(第6章),V(G)结点E弧数n1=17-11+1=7=判断结点 1=6 17 封闭的区域数,P131:7令P代表交易的总金额,Q代表每股的售价,n代表交易的股数。(1)表示手续费计算方法的判定表如图所示。判定表的每一列是一条计算规则。例如,第1列(规则1)规定,当交易总金额P少于1000元,且每股售价Q低于14元,且交易的股数n是100的倍数时,给经纪人的手续费为(l+0.05)0.084P第16列(规则16)表明,当交易总金额P超过10000元,且每股售价Q在14元到25元之间,且交易的股数n不是100的倍数时,手续费为(
35、1+0.06)(0.04P+134)(2)表示手续费计算方法的判定树如图所示。,作业及解答(第6章),作业及解答(第7章),作业及解答(第7章),补充1、某高校研究生招生系统的初选方法如下:总分300(含)以上进入候选学生库,否则退档;数学分数不低于70分,则进入三级备选库,否则进入四级备选库;在三级备选库的基础上,如果专业课分数高于100分,则进入一级备选库,否则进入二级备选库,请画出对应的判定树。,作业及解答(第6章),作业及解答(第6章),补充2、某校的课酬计算方案如下:(l)基本课酬为每节课10元;(2)如果班级人数超过40人,课酬增加:基本课酬0.1;(3)如果班级人数超过60人,课
36、酬增加:基本课酬0.2;(4)如果教师是副教授,课酬增加:基本课酬0.1;(5)如果教师是教授,课酬增加:基本课酬0.2;(6)讲师,课酬不增加;(7)助教,课酬减少:基本课酬0.1。请用判定表表达上述计算方案。,作业及解答(第6章),补充作业:设计一个软件开发规范,假象一种开发环境(硬件、系统软件、支持软件、数据库、开发语言等)。规范内容尽量考虑多方面问题:如SQL语言规范、交互界面、编码风格、命名、设计文档、单元测试等,作业及解答(第7章),P174:5某图书馆有一个使用CET终端的信息检索系统,该系统有下列4个基本检索命令:.(1)设计测试数据以全面系统的正常操作(2)设计测试数据以测试
37、系统的非正常操作,作业及解答(第7章),STARTINPUT(A,B,C)/判定表达式1IF A5 THEN X=10 ELSE X=1END IF/判定表达式2IF B10 THEN Y=20ELSE Y=2END IF,作业(第7章),/判定表达式3IF C15 THEN Z=30ELSE Z=3END IFPRINT(X,Y,Z)STOP,P174:4(3)、设计下列伪码程序的语句覆盖和路径覆盖测试用例:,作业(第7章),语句覆盖的测试用例,作业(第7章),路径覆盖的测试用例,1某些软件工程师不同意“目前国外许多软件开发组织把60%以上的人力用于维护已有的软件”的说法,他们争论说:“我并
38、没有花费我的60%的时间去改正我所开发的程序中的错误”。请问,你对上述争论有何看法?2为什么大型软件的维护成本高达开发成本的4倍左右?3假设你的任务是对一个已有的软件做重大修改,而且只允许你从下述文档中选取两份:(a)程序的规格说明;(b)程序的详细设计结果(自然语言描述加上某种设计工具表示);(c)源程序清单(其中有适当数量的注解)。你将选取哪两份文档?为什么这样选取?,作业及解答(第8章),4当一个十几年前开发出的程序还在为其用户完成关键的业务工作时,是否有必要对它进行再工程?如果对它进行再工程,经济上是否划算?5代码重构与正向工程有何相同之处?有何不同之处?,作业及解答(第8章),p22
39、1:101用面向对象范型开发软件时与用结构化范型开发软件时相比较,软件的生命周期有何不同?这种差异带来了什么后果?2为什么在开发大型软件时,采用面向对象范型比采用结构化范型较易取得成功?3为什么说夏利牌汽车是小汽车类的特化,而发动机不是小汽车类的特化?4对象和属性之间有何区别?5什么是对象?它与传统的数据有何异同?6什么是模型?开发软件时为什么要建立模型?,作业及解答(第9章),7试用面向对象方法分析设计下述程序:在显示器屏幕上圆心坐标为(100,100)的位置画一个半径为40的圆,在圆心坐标为(200,300)的位置画一个半径为20的圆,在圆心坐标为(400,150)的位置画一条弧,弧的起始
40、角度为30度,结束角度为120度,半径为50。8用面向对象方法解决下述问题时需要哪些对象类?类与类之间有何关系?在显示器屏幕上圆心坐标为(250,100)的位置,画一个半径为25的小圆,圆内显示字符串“you”;在圆心坐标为(250,150)的位置,画一个半径为100的中圆,圆内显示字符串“world”;再在圆心坐标为(250,250)的位置,画一个半径为225的大圆,圆内显示字符串“Universe”。,作业及解答(第9章),9试建立下述订货系统的用例模型。假设一家工厂的采购部每天需要一张订货报表,报表按零件编号排序,表中列出所有需要再次订货的零件。对于每个需要再次订货的零件应该列出下述数据
41、:零件编号,零件名称,订货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务,通过放在仓库中的终端把事务报告给订货系统。当某种零件的库存数量少于库存量临界值时就应该再次订货。10为什么说面向对象方法与人类习惯的思维解题方法比较一致?,作业及解答(第9章),11我们下班回家这件事,人(假如是我)就是一个对象,我们来考察一下几个状态:1.到下班时间了,收拾东西准备回家(不考虑加班)。2.开始等电梯。3.到了楼下。(发现没带家里钥匙,上楼拿)4.上楼。5.去公交等车。6.乘公共汽车去菜场。7.买菜8.回到家那么事件呢?1.下班时间到了(准备下班)。2.电梯到(上电梯)3.电梯到楼下(下电
42、梯)3.发现没有家里钥匙(去拿钥匙)。4.自己要乘公共汽车到了(上车)。5.公共汽车到站(下车)。6.忽然想起家里没菜(去买菜)。,作业及解答(第9章),名称:就是名字,状态的名字。进入/退出动作:对象本身的一个操作,比如在电梯里是一个状态的话,哪我们进电梯和出电梯就是状态-在电梯里-的进入/退出动作。内部转换:如我们在去等电梯的时候发现钥匙没带,此时我们不用在等电梯的以后状态是再有事件触发,在准备下班的状态上我们就去拿钥匙了,对于对象本身,前后两次的根本状态不一样,一个是有钥匙,一个是没有钥匙。(子状态):如果我们描述该对象在电梯里说话,抽烟(一般电梯不许)等状态时,该状态就是该对象状态-在
43、电梯里-状态的子状态。(延迟事件):现在不立即产生的事件,该事件是在一段时间以后才产生的事件。,作业及解答(第9章),1.试用面向对象方法分析设计下述程序:在显示器屏幕上圆心坐标为(100,100)的位置画一个半径为40的圆,在圆心坐标为(200,300)的位置画一个半径为20的圆,在圆心坐标为(400,150)的位置画一条弧,弧的起始角度为30度,结束角度为120度,半径为50。,作业及解答(第10章),2.在显示器屏幕上圆心坐标为(250,100)的位置,画一个半径为25的小圆,圆内显示字符串“you”;在圆心坐标为(250,150)的位置,画一个半径为100的中圆,圆内显示字符串“wor
44、ld”;再在圆心坐标为(250,250)的位置,画一个半径为225的大圆,圆内显示字符串“Universe”。用面向对象方法解决上述问题时需要哪些对象类?类与类之间有何关系?试用C+语言编程实现该类继承结构。设计测试用例以测试该类继承结构中的各个类。,作业及解答(第10章),3.请用面向对象方法分析设计下述的图书馆自动化系统:设计一个软件以支持一座公共图书馆的运行。该系统有一些工作站用于处理读者事务。这些工作站由图书馆馆员操作。当读者借书时,首先读入客户的借书卡。然后,由工作站的条形码阅读器读入该书的代码。当读者归还一本书时,并不需要查看他的借书卡,仅需读入该书的代码。客户可以在图书馆内任一台
45、PC机上检索馆藏图书目录。当检索图书目录时,客户应该首先指明检索方法(按作者姓名或按书名或按关键词)。,作业及解答(第10章),4.设计无人自动售货机系统对象、动态及功能模型售货时,顾客将硬币投入机器投币口,机器检查硬币的大小、重量、厚度及边缘类型。有效币种是1元、五角、一角,其它货币被认为是假币。机器拒收假币,并将其退币口退出。当机器接收了有效硬币之后,就将硬币送入硬币储藏期中。顾客支付的货币根据硬币的面值进行累加。机器装有货物分配器。每个货物分配器中零个或多个价值相同的货物,顾客支付的货币值不小于该货物的价格,货物将被分配货物传送孔送给顾客,并将适当的零钱返回到退币孔。如果分配器是空的,顾
46、客支付的货币值相等的硬币将被送回退币孔。如果顾客支付的货币值小于所选择分配器中货物的价格,机器将等待顾客投进更多的硬币。如果顾客决定不买所选择的货物,顾客放进的货币将从退币孔退出。,作业及解答(第10章),1请比较功能内聚和信息性内聚。2多态重用与继承重用有何关系?3在面向对象设计过程中为什么会调整对目标系统的需求?怎样调整需求?4为了设计人机交互子系统,为什么需要分类用户?5问题空间和解空间有何区别?6从面向对象分析阶段到面向对象设计阶段,对象模型有何变化?,作业及解答(第11章),7请用面向对象方法分析设计下述的图书馆自动化系统。设计一个软件以支持一座公共图书馆的运行。该系统有一些工作站用
47、于处理读者事务。这些工作站由图书馆馆员操作。当读者借书时,首先读入客户的借书卡。然后,由工作站的条形码阅读器读入该书的代码。当读者归还一本书时,并不需要查看他的借书卡,仅需读入该书的代码。客户可以在图书馆内任一台PC机上检索馆藏图书目录。当检索图书目录时,客户应该首先指明检索方法(按作者姓名或按书名或按关键词)。,作业及解答(第11章),8用面向对象方法分析设计下述的电梯系统。在一幢m层楼的大厦里,用电梯内的和每个楼层的按钮来控制n部电梯的运动。当按下电梯按钮请求电梯在指定楼层停下时,按钮指示灯亮;当电梯到达指定楼层时,指示灯熄灭。除了大厦的最低层和最高层之外,每层楼都有两个按钮分别指示电梯上
48、行和下行。当这两个按钮之一被按下时相应的指示灯亮,当电梯到达此楼层时灯熄灭,电梯向要求的方向移动。当电梯无升降动作时,关门并停在当前楼层。,作业及解答(第11章),1为什么应该尽量使用面向对象语言来实现面向对象分析和设计的结果?2什么是强类型语言?这类语言有哪些优点?3用动态联编实现多态性是否会显著降低程序的运行效率?4为什么说参数化类有助于提高可重用性?5把策略方法与实现方法分开后,为什么能提高可重用性?6面向对象软件的哪些特点使得测试和维护变得比较容易?哪些特点使得测试和维护变得比较困难?,作业及解答(第12章),7试用C+语言编程实现下述简单图形程序的类继承结构。在显示器屏幕上圆心坐标为
49、(250,100)的位置,画一个半径为25的小圆,圆内显示字符串“you”;在圆心坐标为(250,150)的位置,画一个半径为100的中圆,圆内显示字符串“world”;再在圆心坐标为(250,250)的位置,画一个半径为225的大圆,圆内显示字符串“Universe”。8设计测试用例以测试第7题类继承结构中的各个类。,作业及解答(第12章),P326:4,121.下面叙述对一个计算机辅助设计(CAD)软件的需求:该CAD软件接受由工程师提供的二维或三维几何图形数据。工程师通过用户界面与CAD系统交互并控制它,该用户界面应该表现出良好的人机界面设计特征。几何图形数据及其他支持信息都保存在一个C
50、AD数据库中。开发必要的分析、设计模块,以产生所需要的设计结果,这些输出将显示在各种不同的图形设备上。应该适当地设计软件,以便与外部设备交互并控制它们。所用的外部设备包括鼠标、数字化扫描仪和激光打印机。要求:,作业及解答(第13章),(1)进一步精化上述要求,把CAD软件的功能分解成若干个子功能(2)用代码行技术估算每个子功能的规模;(3)用功能点技术估算每个子功能的规模;(4)从历史数据得知,开发这类系统的平均生产率是620LOC/PM,如果软件工程师的平均月工资是8000元,请估算开发本系统的工作量和成本;(5)如果从历史数据得知,开发这类系统的平均生产率是6.5FP/PM,请估算开发本系