软件工程9-10章小测
  
 一 单项选择题(8分)
 1、软件体系结构定义为()(1分)
  {component, connector, configuration}
  {models, connector}
  {object, collaboration, message, }
 正确答案:{component, connector, configuration}
 2、软件产品的质量是由()阶段的工作决定的。(1分)
  需求分析
  软件设计
  软件构建
  软件测试
 正确答案:软件设计
 3、在分层体系结构中,( )实现与实体对象相关的业务逻辑。(1分)
  表示层
  业务逻辑层
  持久化层
  中间件层
 正确答案:业务逻辑层
 4、网站系统是一个典型的( )。(1分)
  仓库体系结构
  胖客户机/服务器结构
  瘦客户机/服务器结构
  以上选项都不是
 正确答案:瘦客户机/服务器结构
 5、当体系结构中原型各个模块的代码都编写完成并经过单元测试后,需要将所有模块组合起来,形成整个软件原型系统,这个过程称为()。(1分)
  组合
  集成
  交付
  维护
 正确答案:集成
 试题解析:课本P175集成的策略
 6、当底层接口比较稳定,高层接口变化比较频繁时,选择()策略。(1分)
  大爆炸集成
  自顶向下集成
  自底向上集成
  持续集成
 正确答案:自底向上集成
 试题解析:课本P177自底向上集成
 7、()是在软件测试中用来替换某些模块的,一般具有与所替代的模块相同的接口,并模拟实现其行为。(1分)
  桩
  驱动
  测试用例
  组件
 正确答案:桩
 试题解析:课本P177 桩
 8、自底向上集成时,上层模块通常使用与其具有相同接口的伪装模块()来替换。(1分)
  桩
  驱动
  测试用例
  组件
 正确答案:驱动
 试题解析:课本P176自顶向下集成
 二 不定项选择题(2分)
 1、MVC是一种体系结构风格,其中M、V、C分别是关于()的抽象。(1分)
  业务逻辑
  表现
  控制
  数据
  调用
 正确答案:业务逻辑
 表现
 控制
 2、( )是选择合适的解决方案策略,并将系统划分成若干子系统,从而建立整个系统的体系结构;( )细化原有的分析对象,确定一些新的对象、对每一个子系统接口和类进行准确详细的说明。(1分)
  系统设计
  对象设计
  数据设计
  用户界面设计
 正确答案:系统设计
 对象设计
 三 判断题(4分)
 1、良好的分层体系结构有利于系统的扩展与维护。(1分)
 正确答案:正确
 2、软件详细设计是在软件体系结构设计之后,以需求开发的结果和软件体系结构的结构为出发点的。(1分)
 正确答案:正确
 3、软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。对软件体系结构风格的研究和实践促进对设计的重用,一些经过实践证明的解决方案也可以可靠地用于解决新的问题。(1分)
 正确答案:正确
 4、构件、连接件以及配置是体系结构的核心模型最基本的元素。(1分)
 正确答案:正确
软件工程第11章小测
一 单项选择题(4分)
 1、以下有关人机交互设计的说法中,不正确的是_____________________。(2分)
  人机交互设计不仅关注静态界面布局,也重视软件产品的动态过程
  人机交互设计依据精神模型进行隐喻设计
  简洁、一致性、低出错率、易记性设计都是典型的人机交互设计原则
  对于人机交互设计所得的界面无法进行客观评估
 正确答案:对于人机交互设计所得的界面无法进行客观评估
 2、()是用户进行人机交互时头脑中的任务模型,人机交互设计需要依据其进行隐喻设计。(1分)
  精神模型
  差异性
  主观满意度
  可视化设计
 正确答案:精神模型
 试题解析:课本P185精神模型
 3、进行人机交互设计时,首先要设计多次交互之间的逻辑衔接结构,这称为()。(1分)
  导航设计
  界面设计
  界面原型化
  界面评估与修正
 正确答案:导航设计
 试题解析:课本P193第3段
 二 不定项选择题(3分)
 1、好的人机交互设计应该是()。(1分)
  界面美观,且用户使用软件产品愉快而顺利。
  符合用户的习惯特点,适应用户的技能和经验。
  用户只感受到完成工作任务的过程,不需要特意为了使用软件而花费精力。
  设计使用热键、命令行等效率高的交互方式。
 正确答案:界面美观,且用户使用软件产品愉快而顺利。
 符合用户的习惯特点,适应用户的技能和经验。
 用户只感受到完成工作任务的过程,不需要特意为了使用软件而花费精力。
 试题解析:D、设计使用热键、命令行等效率高的交互方式。这些交互方式会使得新手用户学习起来比较困难。
 2、下面哪些设计可以增加设计的交互性()。(1分)
  在界面左侧或上部设计功能菜单栏。
  能够完成用户的保存指令。
  对关联性内容或操作设计相似性引导。
  用户每一步操作均给出操作提示和反馈。
 正确答案:在界面左侧或上部设计功能菜单栏。
 对关联性内容或操作设计相似性引导。
 试题解析:B、能够完成用户的保存指令。这是功能,完成功能后给出恰当提示才能够增加交互性。D、用户每一步操作均给出操作提示和反馈。过多的提示和反馈会打断用户的思维过程,降低用户的工作效率,且增加用户的烦恼和不满。
 3、在进行人机交互设计时,需要遵循()原则。(1分)
  简洁设计
  一致性设计
  低出错率设计
  易记性设计
 正确答案:简洁设计
 一致性设计
 低出错率设计
 易记性设计
 三 判断题(3分)
 1、人机交互的目标是探索在人和机器之间沟通的有效方法,让用户利用机器顺利的完成任务。(1分)
 正确答案:正确
 试题解析:课本P183第2段
 2、好的人机交互常常被忽略,而坏的人机交互令人印象深刻。(1分)
 正确答案:正确
 试题解析:课本P183第4段
 3、软件系统通常同时使用多种界面类型,以适应差异性的用户和任务。(1分)
 正确答案:正确
 试题解析:课本P188 第1行
软件工程第12章小测
一 单项选择题(6分)
 1、OO中,对象之间的协作是通过()来实现的。(1分)
  关联
  泛化
  依赖
  实现
  消息
 正确答案:消息
 2、针对对象之间的动态联系,以下说法正确的是( )。(1分)
  对象之间只能通过消息进行通信。
  一个对象可以直接使用另一个对象的属性。
  对象相互之间不允许进行联系。
  以上都不对。
 正确答案:对象之间只能通过消息进行通信。
 3、( )是描述类的所有对象的共同特征的一个数据项。(1分)
  实例属性
  类属性
  方法属性
  对象属性
 正确答案:类属性
 4、Jack在Google工作,是公司市场组的一名成员。那么描述Jack的类目Employee和描述Google的类目Company之间是( )关系。(1分)
  关联
  泛化
  实现
  依赖
 正确答案:关联
 5、UML中的类没有体现下列哪一项软件设计原理()。(1分)
  数据抽象
  过程抽象
  功能抽象
  信息隐蔽
 正确答案:功能抽象
 6、在类的属性定义中引入可见性,主要是为了支持( )这一软件设计原则。(1分)
  抽象
  信息隐藏
  模块化
  自底向上
 正确答案:信息隐藏
 二 不定项选择题(2分)
 1、在软件详细设计中,会对()给出设计方案。(1分)
  模块结构及其接口
  类结构、类协作、类接口
  控制结构与函数接口
  重要的数据结构和算法逻辑
  代码
 正确答案:模块结构及其接口
 类结构、类协作、类接口
 控制结构与函数接口
 重要的数据结构和算法逻辑
 2、结构化详细设计过程将需求阶段的(),转换为()模型。(1分)
  DFD
  ERD
  结构图
  数据库逻辑设计
 正确答案:DFD
 结构图
 三 判断题(5分)
 1、软件详细设计是在软件体系结构设计之后,以需求开发的结果和软件体系结构的结构为出发点的。(1分)
 正确答案:正确
 2、所有的类都必须与客观事物相对应,都必须有具体的实例。(1分)
 正确答案:错误
 3、一个类中可以有多个操作,也可以没有操作。(1分)
 正确答案:正确
 4、一个类的属性必须适合这个类和它的全部特殊类的所有对象,同时,一个类中的操作也应适合这个类及其所有特殊类的每一个对象实例。(1分)
 正确答案:正确
 5、依赖关系是一种使用关系,如果被使用的类发生变化,那么另一个类的操作也会受到影响。(1分)
 正确答案:正确
 四 填空题(3分)
 1、结构化详细设计中,为降低复杂程度,使用按算法()的思想。(1分)
 正确答案:分解
 2、面向对象设计思想是按照个体的()来进行分解的。(1分)
 正确答案:单一职责
 3、在面向对象方法中,对于客观事物的描述,其静态特征用对象的( )表示。(1分)
 正确答案:属性
软件工程第13章小测
一 单项选择题(10分)
 1、当一个模块完成一组且只有一组操作并返回结果时,称该模块是()的。(1分)
  过程内聚
  逻辑内聚
  功能内聚
  通信内聚
 正确答案:功能内聚
 2、访问相同数据的所有操作被定义在一个类中,一般这些操作仅关注数据的查询、访问和存储。这样的类符合()。(1分)
  过程内聚
  逻辑内聚
  功能内聚
  通信内聚
 正确答案:通信内聚
 3、当一个构件暗中修改其他构件的内部数据,称为()。(1分)
  偶然内聚
  逻辑内聚
  内容耦合
  控制耦合
 正确答案:内容耦合
 4、当一个构件和某些基本构件(如操作系统、数据库、无线通信功能)进行通信和协作时,发生()。(1分)
  内容耦合
  公共耦合
  控制耦合
  印记耦合
 正确答案:公共耦合
 5、软件必须进行内部或外部的通信,因此()是比如存在的。(1分)
  耦合
  内聚
  分解
  抽象
 正确答案:耦合
 6、下面代码存在的耦合是()。
 public class Product{
     public float unitPrice;
     ......
 }
 public class Order{
     private Product myProduct = new Product();
     public void setItem(){
         myProduct.unitPrice = -100;
     }
 }(1分)
  内容耦合
  公共耦合
  控制耦合
  印记耦合
 正确答案:内容耦合
 7、下面代码存在的耦合是()。
 global variable ==0;
 ....
 while( variable){
     if(argument xyz > 25)
         module3();
     else
         module4();
 }
 ......
 public class A{ variable=100;}
 public class B{ variable=1000;}(1分)
  内容耦合
  公共耦合
  控制耦合
  印记耦合
 正确答案:公共耦合
 8、下面代码存在的耦合是()。
 public class ShowResult{
     int type;
     public float show(){
         Cal calResult = new Cal();
         calResult.getResult(type);
     }
     ......
 }
 public class Cal{
     public float getResult(int t){
         if(t=0)
         // return 平均价格;
         else if(t=1)
         // return 最高价格;
         else
         // return -1;
     }
 }(1分)
  内容耦合
  公共耦合
  控制耦合
  印记耦合
 正确答案:控制耦合
 9、下面代码存在的耦合是()。
 public class Order{
     public float getTotalCost(Customer cus){
         int customerLevel = cus.getLevel();
         int customerBonuspoint = cus.getBonuspoint();
         ......//计算总金额
     }
 }(1分)
  内容耦合
  公共耦合
  控制耦合
  印记耦合
 正确答案:印记耦合
 10、在使用第三方支付工具“支付宝”时,需要遵循其接口规约。其中需要调用AlipayClient构造器,创建AlipayClient对象,并完成初始化。
 试分析AlipayClient构造器方法,并分析从下面代码(测试代码)到AlipayClient类的访问,存在的耦合是()。
 代码如下:
 /**
  * @version 1.0
  * @description 测试支付宝接口
  */
 @RequestMapping("/alipaytest")
     public void doPost(HttpServletRequest httpRequest,
                        HttpServletResponse httpResponse) 
                       throws ServletException, IOException, AlipayApiException {
         //获得初始化的AlipayClient
         AlipayClient alipayClient = 
 new DefaultAlipayClient(AlipayConfig.URL, APP_ID, APP_PRIVATE_KEY, AlipayConfig.FORMAT, AlipayConfig.CHARSET, ALIPAY_PUBLIC_KEY,AlipayConfig.SIGNTYPE);
         //创建API对应的request
         AlipayTradeWapPayRequest alipayRequest = new AlipayTradeWapPayRequest();
         //填充业务参数
         alipayRequest.setBizContent("{" +
                 "    \"out_trade_no\":\"202210100010101002\"," +
                 "    \"total_amount\":0.1," +
                 "    \"subject\":\"Iphone6 16G\"," +
                 "    \"product_code\":\"QUICK_WAP_WAY\"" +
                 "  }");
         //调用SDK生成表单
        ........
     }(1分)
  公共耦合
  控制耦合
  印记耦合
  数据耦合
 正确答案:数据耦合
 二 填空题(2分)
 1、为了实现软件的并行开发,同时也保证其易理解和更好的灵活性,进行软件设计时,会将软件分解为“独立”的模块,称为模块化。其衡量标准是建立()的模块。(1分)
 正确答案:高内聚、低耦合
 2、()则要考虑对外公开什么接口,对内隐藏什么秘密。其目的也是为了做到模块独立,实现软件的可扩展和可收缩。(1分)
 正确答案:信息隐藏