1、重庆工学院计算机科学与工程学院李梁65263075、软件工程作业解答作业一基本概念(第1-2章)作业二需求分析(第3章)作业三系统设计(第5章)作业四详细设计(第6章)作业五系统实现(第7章)作业六系统维护(第8章)作业七面向对象方法学引论(第9章)作业八面向对象分析(第10章)作业九面向对象设计(第11章)作业十面向对象实现(第12章)作业十一软件项目管理(第13章)作业及解答作业及解答(第1-2章)1-5根据历史数据可以做出如下的假设:对计算机存储容量的需求大致按下面公式描述的趋势逐年增加:M=4080e0.28(Y-1960)存储器的价格按下面公式描述的
2、趋势逐年下降:P1=0.30.72Y-1974(美分/位)如果计算机字长为16位,则存储器价格下降的趋势为:P2=0.0480.72Y-1974(美元/字)在上列公式中Y代表年份,M是存储容量(字数),P1和P2代表价格。基于上述假设可以比较计算机硬件和软件成本的变化趋势。要求计算:(1)在1985年对计算机存储容量的需求估计是多少如果字长为16位,这个存储器的价格是多少(2)假设在1985年一名程序员每天可开发出10条指令,程序员的平均工资是每月4000美元。如果一条指令为一个字长,计算使存储器装满程序所需用的成本。(3)假设在1995年存储器字长为32位,一名程序员每天可开发出3
3、0条指令,程序员的月平均工资为6000美元,重复(1)、(2)题。作业及解答(第1-2章)(1)在1985年对计算机存储容量的需求,估计是如果字长为16位,则这个存储器的价格是(2)如果一条指令的长度为一个字,则使存储器装满程序共需4474263条指令。在1985年一名程序员每天可开发出10条指令,如果每月有20个工作日,则每人每月可开发出1020条指令。为了开发出4474263条指令以装满存储器,需要的工作量是:作业及解答(第1-2章)程序员的月平均工资是4000美元,开发出4474263条指令的成本是(3)在1995年对存储容量的需求估计为:如果字长为32位,则这个存储器的价格是:如果一
4、条指令为一个字长,则为使存储器装满程序共需73,577,679条指令。在1995年一名程序员每天可开发出30条指令,每月可开发出600条指令,为了开发出可装满整个存储器的程序,需要的工作量为作业及解答(第1-2章)开发上述程序的成本为:1-6什么是软件过程它与软件工程方法学有何关系软件过程是为了开发出高质量的软件产品所需完成的一系列任务的框架,它规定了完成各项任务的工作步骤。软件过程定义了运用技术方法的顺序、应该交付的文档资料、为保证软件质量和协调软件变化必须采取的管理措施,以及标志完成了相应开发活动的里程碑。软件过程是软件工程方法学的3个重要组成部分之一。作业及解答(第1-2章)2-4
5、目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察危重病人的病情变化,还会延误抢救时机。某医院打算开发一个以计算机为中心的患者监护系统,请分层次地画出描述本系统功能的数据流图。医院对患者8监护系统的基本要求是随时接收每个病人的生理信号(脉搏、体温、血压、心电图等),定时记录病人情况以形成患者日志,当某个病人的生理信号超出医生规定的安全范围时向值班护士发出警告信息,此外,护士在需要时还可以要求系统印出某个指定病人的病情报告。作业及解答(第3章)作业及解答(第3章)从问题陈述可知,本系统数据源点是“病人”和“护士”,他们分别提供生理信号和要求病情报告的信息。进一步分析问题
10、令时处于闲置状态,一旦接到复印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令;如果执行复印命令时发现没纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接收复印命令;如果复印时发生卡纸故障,则进入卡纸状态,发出警告等待维修人员来排除故障,故障排除后回到闲置状态。请用状态转换图描绘复印机的行为。作业及解答(第3章)从问题陈述可知,复印机的状态主要有“闲置”、“复印”、“缺纸”和“卡纸”。引起状态转换的事件主要是“复印命令”、“完成复印命令”、“发现缺纸”、“装满纸”、“发生卡纸故障”和“排除了卡纸故障”。作业及解答(第3章)4-3一个浮点
11、二进制数的构成是:一个可选的符号(+或-),后跟一个或多个二进制位,再跟上一个字符E,再加上另一个可选符号(+或-)及一个或多个二进制位。例如,下列的字符串都是浮点二进制数:110101E-101-100111E11101+1E0更形式化地,浮点二进制数定义如下:floatingpointbinary=signbitstringEsignbitstringsign=+-bitstring=bitbitstringbit=01作业及解答(第4章)其中,符号=表示定义为;符号.表示可选项;符号ab表示a或b。假设有这样一个有穷状态机:以一串字符为输入,判断字符串中是否含有合法的浮点二进制数。试
12、对这个有穷状态机进行规格说明。作业及解答(第4章)该有穷状态机的初态是“等待字符串输人”。在初态若接收到字符十、或字符一、或二进制位,则进人“输人尾数”状态;在初态若接收到其他字符,则进人终态“非浮点二进制数”。在“输人尾数”状态若接收到二进制位,则保持该状态不变;若接收到字符E,则进人“等待输人指数”状态;若接收到其他字符,则进人终态“非浮点二进制数”。在“等待输人指数”状态若接收到字符、或字符一、或二进制位,则进人“输人指数”状态;若接收到其他字符,则进人终态“非浮点二进制数”。在“输人指数”状态若接收到二进制位,则保持该状态不变;若输人其他字符,则进人终态“非浮点二进制数”;若输人
13、结束,则进人终态“浮点二进制数”。作业及解答(第4章)仔细研究图示的有穷状态机可以发现,它还有不够严格的地方。有兴趣的同学请进一步改进它,画出更严格的、与浮点二进制数定义完全一致的有穷状态机。作业及解答(第4章)补充1:请为某仓库的管理设计一个ER模型。该仓库主要管理零件的订购和供应等事项。仓库向工程项目供应零件,并且根据需要向供应商订购零件。作业及解答(第5章)本问题中共有三类实体,分别是“零件”、“工程项目”和“供应商”。一种零件可供应多个工程项目,一个工程项目需要使用多种零件,因此,零件与工程项目之间的联系“供应”,是多对多(MN)联系;类似地,零件与供应商之间的联系“订购”,也是
14、多对多(MN)联系。实体类型“零件”的主要属性是:零件编号,零件名称,颜色,重量。实体类型“工程项目”的属性主要是:项目编号,项目名称,开工日期。实体类型“供应商”的属性主要有:供应商编号,供应商名称,地址。联系类型“供应”的属性是,向某工程项目供应的某种零件的数量。联系类型“订购”的属性是,向某供应商订购的某种零件的数量。作业及解答(第5章)作业及解答(第5章)补充2:某火车售票系统的数据流程图如下所示录入员1接受查询查询信息查询信息2分析查询4按班次查询6查询显示3按日期查询5按线路查询旅客班次日期线路查询结果查询结果查询结果查询结果作业及解答(第5章)接受查询输入信息查
15、询信息列车查询主模块查询显示分析查询按日期查询按班次查询按线路查询查询信息查询信息查询结果查询结果日期班次线路补充3、已知某定货系统的需求分析DFD图如下,请按SD方法的设计步骤画出结构图。顾客编辑定货单确定顾客订货产生暂存订货单开发货单并改库存业务员顾客D1配件D2顾客文件D3配件库存D4暂存订货单D4暂存订货单D5销售历史D6应收款明细帐发货单可发货不合格订货单订货单合格订货单不满足订货单作业及解答(第5章)补充4、已知某系统的需求分析给出的系统数据流程图如下,画出结构图AC3C2C1GJKLFEBDabb1b2b3c1c2c3defghjklm作业及解答(第5章)P104:3用面向数据
17、和前台单个)P104:4美国某大学有200名教师,校方与教师工会刚刚签订一项协议。按照协议,所有年工资超过$26000(含$26000)的教师工资将保持不变,年工资少于$26000的教师将增加工资,所增加工资数额按下述方法计算:给每位教师所赡养的人(包括教师本人)每年补助$100,此外,教师有一年工龄每年再多补助¥50,但是,增加后的年工资总额不能多于$26000。教师工资档案存储在行政办公室的磁带上,档案中有目前的年工资、赡养的人数、雇佣日期等信息。需要写一个程序计算并印出每名教师的原工资和调整后的新工资。要求:(1)画出此系统的数据流图;(2)写出需求说明;(3)设计上述的工资调整程序(
18、要求用HIPO图描绘设计结果),设计时分别采用两种算法,并比较两种算法的优缺点:(a)搜索工资档案数据,找出年工资少于$26000的人,计算新工资,校核是否超过$26000,存储新工资,印出新旧工资对照表;(b)把工资档案数据按工资从最低到最高的次序排序,当工资数额超过$26000时即停止排序,计算新工资,校核是否超过限额,存储新工资,印出结果。(4)你所画出的数据流图适应用那种算法?作业及解答(第5章)作业及解答(第5章)作业及解答(第5章)作业及解答(第5章)0杨辉三角形系数求解输入阶数系数表不合理阶数DFD01检验阶数2计算阶数3打印阶数系数表系数不合理阶数合理阶数输入阶数DFD11.1
19、输入阶数1.2检验阶数合理阶数不合理阶数阶数2.1计算1DFD2合理阶数系数3.1打印1阶数系数表13.2打印2阶数系数表22.2计算2合理阶数系数补充5:求解杨辉三角形系数求解杨辉三角形系数取合理阶数打印系数计算系数方法选用输入阶数检验阶数计算1计算2打印1打印2合理阶数合理阶数合理阶数合理阶数合理阶数合理阶数合理阶数合理阶数不合理阶数阶数阶数系数系数系数系数系数表1系数表2表示选用P131:3画出下列伪码程序的程序流程图和盒图STARTIFpTHENWHILEqDOfENDDOELSEBLOCKgnENDBLOCKENDIFSTOP作业及解答(第6章)作业及解
20、答(第6章)P131:4下图给出的程序流程图代表一个非结构化的程序,请问:(1)为什么说它是非结构化的?(2)设计一个等价的结构化程序。(3)在(2)题的设计中你使用附加的标志变量flag吗?若没用,请再设计一个使用flag的程序;若用了,再设计一个不用flag的程序作业及解答(第6章)(1)通常所说的结构化程序,是按照狭义的结构程序的定义衡量,符合定义规定的程序。图示的程序的循环控制结构有两个出口,显然不符合狭义的结构程序的定义,因此是非结构化的程序。作业及解答(第6章)(2)使用附加的标志变量flag,至少有两种方法可以把该程序改造为等价的结构化程序,图示盒图描绘了等价的结构化程序。作业
21、及解答(第6章)(3)不使用flag把该程序改造为等价的结构化程序的方法如图所示。作业及解答(第6章)CEXAMPLELOOP:DOWHILEX0A=B+1IFA10THENX=AELSEY=ZENDIFIFY0THENPRINTGELSEPRINTKENDIFSTOP作业及解答(第6章)V(G)结点E弧数n1=17-11+1=7=判断结点1=617封闭的区域数P131:7令P代表交易的总金额,Q代表每股的售价,n代表交易的股数。(1)表示手续费计算方法的判定表如图所示。判定表的每一列是一条计算规则。例如,第1列(规则1)规定,当交易总金
22、额P少于1000元,且每股售价Q低于14元,且交易的股数n是100的倍数时,给经纪人的手续费为(l+0.05)0.084P第16列(规则16)表明,当交易总金额P超过10000元,且每股售价Q在14元到25元之间,且交易的股数n不是100的倍数时,手续费为(1+0.06)(0.04P+134)(2)表示手续费计算方法的判定树如图所示。作业及解答(第6章)作业及解答(第7章)作业及解答(第7章)补充1、某高校研究生招生系统的初选方法如下:总分300(含)以上进入候选学生库,否则退档;数学分数不低于70分,则进入三级备选库,否则进入四级备选库;在三级备选库的基础上,如果专业课分数高于100分,则
23、进入一级备选库,否则进入二级备选库,请画出对应的判定树。作业及解答(第6章)作业及解答(第6章)补充2、某校的课酬计算方案如下:(l)基本课酬为每节课10元;(2)如果班级人数超过40人,课酬增加:基本课酬0.1;(3)如果班级人数超过60人,课酬增加:基本课酬0.2;(4)如果教师是副教授,课酬增加:基本课酬0.1;(5)如果教师是教授,课酬增加:基本课酬0.2;(6)讲师,课酬不增加;(7)助教,课酬减少:基本课酬0.1。请用判定表表达上述计算方案。作业及解答(第6章)123456789101112人数40TTTT40人数60TTTT人数60TTTT助教TTT讲师TTT副教授TTT教授TT
24、T课酬:9元/节课酬:10元/节课酬:11元/节课酬:12元/节课酬:13元/节课酬:14元/节补充作业:设计一个软件开发规范,假象一种开发环境(硬件、系统软件、支持软件、数据库、开发语言等)。规范内容尽量考虑多方面问题:如SQL语言规范、交互界面、编码风格、命名、设计文档、单元测试等作业及解答(第7章)P174:5某图书馆有一个使用CET终端的信息检索系统,该系统有下列4个基本检索命令:.(1)设计测试数据以全面系统的正常操作(2)设计测试数据以测试系统的非正常操作作业及解答(第7章)STARTINPUT(A,B,C)/判定表达式1IFA5THENX=10ELSEX=1EN
25、DIF/判定表达式2IFB10THENY=20ELSEY=2ENDIF作业(第7章)/判定表达式3IFC15THENZ=30ELSEZ=3ENDIFPRINT(X,Y,Z)STOPP174:4(3)、设计下列伪码程序的语句覆盖和路径覆盖测试用例:作业(第7章)序号判定输入预期的输出123ABCXYZ1FFF1111232TTT204060102030语句覆盖的测试用例作业(第7章)序号判定输入预期的输出123ABCXYZ1FFF1111232FFT116012303FTF140112034FTFF201110236TFT201
27、4当一个十几年前开发出的程序还在为其用户完成关键的业务工作时,是否有必要对它进行再工程?如果对它进行再工程,经济上是否划算?5代码重构与正向工程有何相同之处?有何不同之处?作业及解答(第8章)p221:101用面向对象范型开发软件时与用结构化范型开发软件时相比较,软件的生命周期有何不同?这种差异带来了什么后果?2为什么在开发大型软件时,采用面向对象范型比采用结构化范型较易取得成功?3为什么说夏利牌汽车是小汽车类的特化,而发动机不是小汽车类的特化?4对象和属性之间有何区别?5什么是对象?它与传统的数据有何异同?6什么是模型?开发软件时为什么要建立模型?作业及解答(第9章)7试用面向对象方法分析设
28、计下述程序:在显示器屏幕上圆心坐标为(100,100)的位置画一个半径为40的圆,在圆心坐标为(200,300)的位置画一个半径为20的圆,在圆心坐标为(400,150)的位置画一条弧,弧的起始角度为30度,结束角度为120度,半径为50。8用面向对象方法解决下述问题时需要哪些对象类?类与类之间有何关系?在显示器屏幕上圆心坐标为(250,100)的位置,画一个半径为25的小圆,圆内显示字符串“you”;在圆心坐标为(250,150)的位置,画一个半径为100的中圆,圆内显示字符串“world”;再在圆心坐标为(250,250)的位置,画一个半径为225的大圆,圆内显示字符串“Universe”
32、示器屏幕上圆心坐标为(250,100)的位置,画一个半径为25的小圆,圆内显示字符串“you”;在圆心坐标为(250,150)的位置,画一个半径为100的中圆,圆内显示字符串“world”;再在圆心坐标为(250,250)的位置,画一个半径为225的大圆,圆内显示字符串“Universe”。用面向对象方法解决上述问题时需要哪些对象类?类与类之间有何关系?试用C+语言编程实现该类继承结构。设计测试用例以测试该类继承结构中的各个类。作业及解答(第10章)3.请用面向对象方法分析设计下述的图书馆自动化系统:设计一个软件以支持一座公共图书馆的运行。该系统有一些工作站用于处理读者事务。这些工作站由图书
33、馆馆员操作。当读者借书时,首先读入客户的借书卡。然后,由工作站的条形码阅读器读入该书的代码。当读者归还一本书时,并不需要查看他的借书卡,仅需读入该书的代码。客户可以在图书馆内任一台PC机上检索馆藏图书目录。当检索图书目录时,客户应该首先指明检索方法(按作者姓名或按书名或按关键词)。作业及解答(第10章)4.设计无人自动售货机系统对象、动态及功能模型售货时,顾客将硬币投入机器投币口,机器检查硬币的大小、重量、厚度及边缘类型。有效币种是1元、五角、一角,其它货币被认为是假币。机器拒收假币,并将其退币口退出。当机器接收了有效硬币之后,就将硬币送入硬币储藏期中。顾客支付的货币根据硬币的面值进行累加。机
34、器装有货物分配器。每个货物分配器中零个或多个价值相同的货物,顾客支付的货币值不小于该货物的价格,货物将被分配货物传送孔送给顾客,并将适当的零钱返回到退币孔。如果分配器是空的,顾客支付的货币值相等的硬币将被送回退币孔。如果顾客支付的货币值小于所选择分配器中货物的价格,机器将等待顾客投进更多的硬币。如果顾客决定不买所选择的货物,顾客放进的货币将从退币孔退出。作业及解答(第10章)1请比较功能内聚和信息性内聚。2多态重用与继承重用有何关系?3在面向对象设计过程中为什么会调整对目标系统的需求?怎样调整需求?4为了设计人机交互子系统,为什么需要分类用户?5问题空间和解空间有何区别?6从面向对象分析阶段到
35、面向对象设计阶段,对象模型有何变化?作业及解答(第11章)7请用面向对象方法分析设计下述的图书馆自动化系统。设计一个软件以支持一座公共图书馆的运行。该系统有一些工作站用于处理读者事务。这些工作站由图书馆馆员操作。当读者借书时,首先读入客户的借书卡。然后,由工作站的条形码阅读器读入该书的代码。当读者归还一本书时,并不需要查看他的借书卡,仅需读入该书的代码。客户可以在图书馆内任一台PC机上检索馆藏图书目录。当检索图书目录时,客户应该首先指明检索方法(按作者姓名或按书名或按关键词)。作业及解答(第11章)8用面向对象方法分析设计下述的电梯系统。在一幢m层楼的大厦里,用电梯内的和每个楼层的按钮来控制n
36、部电梯的运动。当按下电梯按钮请求电梯在指定楼层停下时,按钮指示灯亮;当电梯到达指定楼层时,指示灯熄灭。除了大厦的最低层和最高层之外,每层楼都有两个按钮分别指示电梯上行和下行。当这两个按钮之一被按下时相应的指示灯亮,当电梯到达此楼层时灯熄灭,电梯向要求的方向移动。当电梯无升降动作时,关门并停在当前楼层。作业及解答(第11章)1为什么应该尽量使用面向对象语言来实现面向对象分析和设计的结果?2什么是强类型语言?这类语言有哪些优点?3用动态联编实现多态性是否会显著降低程序的运行效率?4为什么说参数化类有助于提高可重用性?5把策略方法与实现方法分开后,为什么能提高可重用性?6面向对象软件的哪些特点使得测试和维护变得比较容易?哪些特点使得测试和维护变得比较困难?作业及解答(第12章)7试用C+语言编程实现下述简单图形程序的类继承结构。在显示器屏幕上圆心坐标为(250,100)的位置,画一个半径为25的小圆,圆内显示字符串“you”;在