一、 简答题
1. 简述需求分析的任务 (1) 确定对系统的综合要求(功能需求、性能需求、环境需求、可靠性和可用性需求、接口需求、出错系统需求、安全性需求、逆向需求和未来可能提出的需求) (2) 分析系统的数据需求 (3) 建立系统的逻辑模型 (4) 修订系统开发计划 (5) 编写软件需求规格说明书 (6) 需求分析评审 2. 简述测试用例设计应遵循的原则。 (1) 基于测试需求的原则 (2) 用成熟测试用例设计方法来指导设计 (3) 兼顾测试充分性和效率的原则 (4) 测试执行的可再现性原则 (5) 足够详细、准确和清晰的步骤 3.简述软件危机产生的原因。 (1)忽视软件开发前期的需求分析 (2)开发过程缺乏统一的、规范化的方法指导 (3)文档资料不齐全或不准确 (4)忽视用户之间、开发组成员之间的交流 (5)忽视测试的重要性 (6)不重视维护或上述原因造成维护工作的困难 (7)从事软件开发的专业人员对这个行业认识不充分、缺乏经验 (8)没有完善的质量保证体系 4. 简述软件维护的特点。 (1) 可理解性 (2) 可测试性 (3) 可修改性 (4) 可移植性 (5) 可重用性 5. 简述软件测试的原则。 (1) 所有测试都应该追溯到用户需求 (2) 应尽早的和不断的进行软件测试 (3) 在有限的时间和资源下进行完全调试并找出软件所有的错误和缺陷是不可能的,软件测试不能无限进行下去,应适时终止 (4) 测试只能证明软件存在错误,而不能证明软件没有错误 (5) 充分关注测试中的集群现象 (6) 程序员应避免检查自己的程序 (7) 尽量避免测试的随意性 6.简述软件维护的类型。 (1)改正性维护 (2)适应性维护 (3)完善性维护 (4)预防性维护
二、 应用题
1.某软件公司统计发现该公司研发部门每一万行C语言源代码形成的源文件(.c和.h文件)约为250K。某项目的源文件大小为3.75M。(第二章课后习题) 1)该项目的规模是多少KLOC(源代码行数)?该公司研发部门的生产率是0.625KLOC/人月,人工价是10000元/人月。 2)工作量和总成本是多少? 3)每行代码的价值是多少 (1)3.75M/250K=15万行=150KLOC (2)工作量=规模/生产率=150KLOC/0.625KLOC/人月=240人月 总成本=工作量X人工价=240X10000=240万元 (3)240万元/15万行=16元/行 2.下面是一段伪码程序,请根据这段伪码程序,画出相应的程序流程图、PAD图与盒图。(上课课件中讲过的题) execute process a REPEAT UNTIL condition X6 execute process b IF condition X1 THEN BEGIN execute process f IF condition X4 THEN REPEAT UNTIL condition X5 execute process i ENDREP ELSE BEGIN execute process h execute process g END ENDIF ELSE CASE OF X2 WHEN condition 2 SELECT DO WHILE condition X3 execute process c ENDDO WHEN condition 3 SELECT process d WHEN condition 4 SELECT process e ENDCASE ENDIF ENDREP execute process j END
3.开发某工程中使用的CAD系统需要投资20万元,经估算在工程中用该CAD系统后将取代大部分人工设计工作,每年可节省9.6万元。若该软件的生存期为5年,年利率按5%计算,试求该项目的净收入。(第二章课后习题)
4.根据下面程序段,导出程序控制流图,计算环路复杂度,根据环路复杂度列出它的独立测试路径,并采用基本路径测试方法设计测试用例。(上课课件中讲过的题) 1 main () 2 { 3 int num1=0, num2=0, score=60; 4 int i; 5 char str; 6 scanf (“%d, %c\n”, &i, &str); 7 while (i<5) 8 { 9 if (str=’T’) 10 num1++; 11 else if (str=’F’) 12 { 13 score=score-6; 14 num2 ++; 15 } 16 i++; 17 } 18 printf (“num1=%d, num2=%d, score=%d\n”, num1, num2, score); 19 }
5.银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单有业务员输入系统,如果是存款则系统记录存款人姓名、住址、电话、身份证号、存款类别、存款日期、到期日期、利率及密码,并打印存款单给储户;如果是取款业务且存款时留有密码,则系统首先和对密码,若密码正确,则系统计算利息并打印利息清单给储户。(第三章课后习题) 根据以上业务描述,要求: 1)用数据流图建立系统的功能模型(要求画出顶层数据流图与一层数据流图); 2)用E-R图描述系统中的数据对象; 3)给出系统的模块结构图。
6.根据下面给出的伪码描述,画出它对应的N-S图和PAD图。 void root ( float root1, float root2 ) { i = 12; j = 0; while ( i>= 10 ) { 输入一元二次方程的系数a, b, c; p = bb – 4a*c; if ( p < 0 ) 输出“方程i无实数根”; else if ( p > 0 ) 求出根并输出; if ( p == 0 ) { 求出重根并输出; j = j + 1; } i = i +1; } 输出重根的方程的个数j; } 7.在医院的病房里,将病症监视器安置在每个病床,对病人进行监护。监视器将病人的病症信号(组合)实时地传送到中央监护系统进行分析处理。在中心值班室里,值班护士使用中央监护系统对病员的情况进行监控,监护系统实时地将病人的病症信号与标准的病诊信号进行比较分析,当病症出现异常时,系统会立即自动报警,并打印病情报告和更新病历。系统根据医生的要求随时打印病人的病情报告,系统还定期自动更新病历。(参考教材中第九章例 9.1,P142-248页) 请根据上述描述,要求: 1) 建立系统用例图; 2) 识别类并建立类关系图; 3) 根据系统对病人病情异常时的情况描述,给出异常情况时的时序图及协作图。
8.对某银行储蓄管理系统功能描述如下: 一个客户可以在多个银行中开设账户,一个客户也可在同一银行中开设多个不同的账户;客户可以进行开户、存款、取款、转账、注销账户、还款等账户管理活动,还款时,若超期,还要收取滞纳金;其中转账指客户将自己的某个账户上的钱款转入同一银行的不同账户(称为银行内转账)或转入不同银行的账户(称为银行间转账)。系统管理员负责系统的账户管理及业务报表的生成。根据上述描述,分析并绘制系统用例图。(上课课件中讲过的原题)
9.某厂对部分职工重新分配工作的政策是:年龄在20岁以下者,初中文化程度脱产学习,高中文化程度当电工;年龄在20岁至40岁之间者,中学文化程度男性当钳工,女性当车工,大学文化程度都当技术员;年龄在40岁以上者,中学文化程度当材料员,大学文化程度当技术员。请用判定树描述上述问题。
10.请根据银行ATM系统的正常情况脚本,画出事件跟踪图(即UML顺序图)?。 银行ATM系统的正常情况脚本描述如下:? ??(上课课件中讲过的题) 1)ATM请储户插卡;储户插入一张现金兑换卡;??? 2)ATM接受该卡并读它上面的分行代码和卡号;? 3)ATM要求储户输入密码;??? 4)ATM请求总行验卡;?总行要求分行验卡;?? 5)ATM要求储户选择事务类型(取款、转账、查询等);?? 6)ATM要求储户输入取款额;? 7)ATM确认取款额在预先规定的限额内,然后要求总行处理这个事务; 8)总行把请求转给分行,该分行成功地处理完这项事务并返回该账户的新金额; 9)ATM吐出现金并请储户拿走这些现金;??? 10)ATM问储户是否继续这项事务。 欢迎大家加我微信交流讨论
|