学院 系别 姓名 学号
………密………封………线………以………内………答………题………无………效……
电子科技大学二零零 四 至二零零 五 学年第 二 学期期 末
软件工程 课程考试题答案 (A卷) 考试日期 2005年 7 月 4 日
一 二 三 四 五 六 七 八 九 十 总分 评卷教师
满分80分
一、(15分)M公司的软件产品以开发实验型的新软件为主。用瀑布模型进行软件开发已经有近十年了,并取得了一些成功。若你作为一名管理员刚加入M公司,你认为快速原型法对公司的软件开发更加优越,请向公司副总裁写一份报告阐明你的理由,切记:副总裁不喜欢报告长度超过300字。
尊敬的副总裁:
我公司的软件产品以开发实验型的新软件为主,而开发这类产品的最大问题是需求难以确定,能否对需求进行准确说明,直接关系到软件后期的开发质量,甚至决定了软件产品的成败。
虽然我公司用瀑布模型进行软件开发取得了一些成功,但随着软件规模和复杂度的增加,结构化方法自身固有的缺点如线性开发,将充满回朔的软件开发过程硬性地割裂开,以致于无法确定需求等已经完全不能适应软件开发的需要。
我建议采用快速原型(RCP)法,它强调软件开发人员与用户的不断交互,通过原型的演进不断适应用户任务改变的需求。将维护和修改阶段的工作尽早进行,因此, RCP法特别适宜开发实验型的新软件。
以上建议请副总裁考虑!
XXX 2005.7.4
二、简答题(共20分,每小题10分)
1、什么是软件复用?分析说明为什么面向对象的开发方法为软件复用技术提供了良好的环境? 软件复用是将已有的软件成分用于构造新的软件系统,以达到提高软件系统的开发质量与效率,降低开发成本的目的。 复用的软件成分—称为可复用构件(Reusable Component),可以从旧软件中提取,也可以专门为复用而开发。
面向对象方法之所以特别有利于软件复用,是由于它的主要概念及原则与软件复用的要求十分吻合。支持复用的OO概念与原则是:对象与类、抽象、封装、继承与一般——特殊结构、整合与整体——部分结构、粒度控制、多态性。
第 1 页 共4页
学院 系别 姓名 学号
………密………封………线………以………内………答………题………无………效……
对象与类:OO方法用对象描述问题域中的事务,并用类作为同种对象的抽象表示。类是系统的基本构成单位,它符合可复用构件所应具备的那些特性:
完整性、独立性、可标识性、一般性、抽象、封装:尤其是OO方法的对象封装性,为软件复用技术提供了良好的条件。而继承机制本质上就是一种复用机制,因此面向对象方法为软件复用提供了一个良好的环境。
2、问题描述为:储户用存折取款,首先填写取款单,根据“帐卡”中的信息检验取款单与存折,如有问题,将问题反馈给储户,否则,登录“储户存款数据库”,修改相应数据,并更新“帐卡”,同时发出付款通知,出纳向储户付款。
请确定系统的类,并给出你认为最重要的2-3个类的描述模板。
确定系统的类:
储户、存折、取款单、帐卡、储户存款数据库、付款
储 户 用户名: 字串
帐号:字串
密码:字串 6-18位 填写取款单() 查询存款()
帐卡 用户名: 字串 帐号:字串
密码 :字串 6-18位
验证帐号() 验证密码 () 显示存款信息()
返回错误信息()
三、(15分)采用综合测试策略,对以下模块进行测试。要求写出测试方法,列出所有的判定,并给出所选择的用例。模块功能为:使用直接插入法将10个整数按递增次序排列。 main( ) /* 使用直接插入法 { int data[ ]={23,56,234,1,45,34,21,394,3,35}; int i, j, temp; for(i=1;i<10;i++)
{ j=i-1; temp=data[i];
while(data[j]>temp&&j>=0) /*大者后移 { data[j+1]=data[j]; j--; } data[j+1]=temp; /* 插入正确位置 }
for(i=0;i<10;i++)
printf(”%d”,data[i]); printf(”\\n”); }
第 2 页 共4页
学院 系别 姓名 学号
………密………封………线………以………内………答………题………无………效……
1.采用综合测试策略,先进行静态测试:人工查走。未发现错误。 2.使用白盒法进行动态测试 只考虑关键路径,判定情况有:
循环:for(i=1;i<10;i++)
while(data[j]>temp&&j>=0) 3.选择一种覆盖标准,确定用例。
注意:所确定的用例应该包括两部分:输入数据(10个整数),预期的输出结果。 4.将实际输出与预期的输出结果进行比较,得出分析结论。
四、(共30分,每小题15分)现在有一个医院病房监护系统,用户提出的系统功能要求如下:
在医院病房监护系统中,病症监视器安置在每个病房,将病人的病症信号实时传送到中央监视系统进行分析处理。在中心值班室里,值班护士使用中央监视系统对病员的情况进行监控,根据医生的要求随时打印病人的病情报告,系统会定期自动更新病历。
当病症出现异常时,系统会立即自动报警,通知值班医生及时进行处理,同时立即打印病人的病情报告和更新病历。
1. 分别画出采用结构化分析方法和UML建模语言建立的需求分析模型(只画顶层)。
2. 以医院病房监护系统为例,分析比较结构化开发方法与面向对象的开发方法的主要特点,结合
该实例说明:为什么面向对象的开发方法更加优越。
局部监视 病员极限
1.DFD图(上层)
病人 病症信号
Use Case 图
病员数据 报警 中央监视 病症报告 生成报告 日志数据 病员日志 生理信号 护士 格式化 病员数据 更新日志 日志数据 护士 要求报告 第 3 页 共4页