第 1 页 共 6 页一、 单项选择题( 30%, 每小题 2 分):DDAAC DADCD DDAAD 二、 简答题( 25%, 每小题 5 分):1.请简要说明需求分析的三个层次包括那些主要内容
1个2分,2个4分, 3个5分软件需求包括三个不同的层次—业务需求、用户需求和功能需求—也包括非功能需求
业务需求反映了组织机构或客户对系统、产品高层次的目标要求
用户需求文档描述了用户使用产品必须要完成的任务
功能需求定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求
2.为什么要设计独立性强的模块以及如何判断模块的独立性
第一 3分,耦合 1分,内聚 1分模块独立性强,则:(1)系统容易开发( 2)系统可靠性高( 3)系统容易维护判断模块独立性的基本原则:“耦合小,内聚大”3.若现有类已经进行了彻底的测试,为什么必须对从现有类中实例化的子类进行重新测试
使用的场景: 3分. 2 分因为父类和子类的运行环境是不同的
另外,如果是多重继承会显著地增加派生类的复杂程度,导致一些难以厦门大学《软件工程》课程试卷软件学院____系2006 年级 软件工程专业主考教师: 林坤辉试卷类型:(A 卷)第 2 页 共 6 页发现的隐含错误
4.要开发质量“非常好”的软件,请从软件工程的角度分析其利与弊
利:3分;弊: 2分利:容易维护,用户比较满意弊:成本高,周期长5、采用面向对象方法设计软件系统时,子系统的划分常采用水平划分或垂直划分的方式,请说明这两种划分所得子系统的特点
c/s:3分,p2p :2分水平划分系统的 p2p: 每个字系统可以调用任意其他子系统,比c/s 复杂,可能死锁
垂直划分 c/s :客户端调用服务器端,服务器提供服务,并返回结果
客户端需要知道服务器的接口,而服务器不必知道客户端接口
三、 应用题( 45%,1-3 每小题 10 分,4