软件工程作业2-答案0903 下载本文

软件工程作业2(第5~7章)答案

一、选择题

1. 从本质上说,面向对象是“先”确定(A)后确定执行的动作。

A.动作的主体

B.属性 C.关系 D.方法

2. (B)是对象的静态特征。

A.方法 B.属性 C.关系 D.操作 3. 对象的(D)使对象的动态特征

A.特征 B.属性 C.关系 D.操作

4. 属于某个类的一个具体对象称为该类的(A)。

A.实例 B.虚拟 C.继承 D.多态 5. UML是(A)。

A) 一种可视化的建模语言 B) 是一种可视化的程序设计语言 C) 是一种过程 D) 是一种方法 6. 封装的的作用是(A)。

A.复用 B.对象 C.实例 D.方法 8. 面向对象分析的核心在于建立(B)模型。 A. 建立正确的模型 B. 识别问题域对象 C.识别对象之间的关系 D.上面所有

9. 面向对象分析过程中建立的模型有(D )。

A. 数据模型、功能模型、活动模型 B. 对象模型、功能模型、测试模型 C. 属性模型、功能模型、对象模型

D. 对象模型、功能模型、动态模型

10. 下列的( C)不是分析建模的目的。

A. 定义可验证的软件需求 B. 描述客户需求

C. 开发一个简单的问题解决方案

D. 建立软件设计的基础

11. 下列的( C)不属于面向对象分析模型。

A. 用例图

1

B. 类图 C. 实体关系图 D. 顺序图

12. (A )用于描述系统中概念层次的对象。

A.分析类 B. 界面类 C.实体类 D.控制类

13. 在基于用例的面向对象分析过程中,定义交互行为的关键在于通过描述分析类实例之间的(A)将用例的职责分配到分析类中。

A. 消息传递 B 关联关系 C 继承关系 D 上下文关系

14.用例的实现细节不会在(B)描述。

A. 用例说明 B. 用例图 C.活动图 D.顺序图

15.用例的职责通常分配给(D)的对象。

A. 发送消息 B. 接收消息 C.发送和接收双方 D.分析类

16.组织机构图是(C)。

A. UML的一个最新图 B. 类图的一种

C.用于识别角色的辅助图 D.用例图的一种

17.在图书馆系统中,假如已经构造了一个一般借书者类,后来发现图书馆的学生和教师在借书中有不同要求。请问在面向对象设计中用(B)方法可以方便地设计这两个类?

A.信息隐藏 B.继承 C.动态联编 D.代码复制 18.框架是一组可用于不同应用的(A)集合

A. 类 B.对象 C.模块 D.代码

2

19.下面哪个选项不能描述子系统之间的关系。(D)

A. 请求——服务关系 B.继承关系 C.依赖关系 D.数据关系 20.每个子系统的接口上定义了若干(B),体现了子系统的功能。

A. 说明 B.操作 C.属性 D.关系

21.通常将具有共性的非功能要求设计在(B),以减少重新开发的工作量。

A. 接口层 B.中间层 C.最低层 D.最高层

22.每个用例至少应该有一个(C),它通常没有属性而只有方法,只是起协调和控制作用。

A. 接口类 B.实体类 C.控制类 D.界面类 23.类有三种类型即(A)。

A. 边界类、实体类、控制类 B. 实体类、数据类、界面类 C. 控制类、实体类、数据类 D. 界面类、控制类、公共类

24.下面那个选项不是正确的面向对象设计思想。(C)

A.对接口进行设计 B.发现变化并且封装它 C.先继承后组合 D.先组合后继承

25.定义类的属性类型时尽量使用已有的类型,太多的自定义类型会降低系统的(A)指标。

A.可维护性 B.安全性 C.开发效率 D.可移植性

二、简答题

1. 举例说明类和对象的关系。

答:学生可作为一个类---学生类,每个学生就是这个学生类的一个实例,例如,学生张三就是学生类的一个实例。

2. 面向对象分析的关键步骤有哪些?应建立哪几个模型?

答:关键步骤有识别问题域的对象并分析它们相互之间的关系,建立简洁、精确、可理解的正确模型;应建立的模型有功能模型,对象模型,动态模型。

3. 什么是实体类、边界类和控制类?为什么将分析类划分成这三种类型?

答:(1)实体类保存要存入永久存储体的信息。实体类通常在事件流或交互图中,是对用户最有意义的类。

边界类位于系统与外界的交界处,包括所有的窗体、报表、系统硬件接口、与其他系统的接口。

3

控制类负责协调其他类的工作。每个用例中至少应该有一个控制类,它控制用况中的事件顺序。

(2)分为三种类型是因为它们各自的功能不同。界面类——描述系统与角色之间的接口。

控制类——在分析模型内表示协调、顺序、事务处理以及控制其他对象的类。 实体类——为需要长久保存的信息进行建模的类。

4. UML中有哪几类个视图,它们的作用分别是什么?

答:(1)用例视图(Use-Case view)

用例视图用于描述系统的功能集。它是从系统外部以用户角度,对系统做的抽象表示。用例视图所描述的系统功能依靠于外部用户或另一个系统触发激活,为用户或另一个系统提供服务,实现与用户或另一个系统之间的交互。

用例视图中可以包含若干个用例,用例表示系统能够提供的功能,用例视图是其他视图的核心和基础。其他视图的构造依赖于用例视图中所描述的内容,因为系统的最终目标是实现用例视图中描述的功能,同时附带一些非功能性的特性,因此用例视图影响着所有其他的视图。

(2)逻辑视图(Logical view)

如果说用例视图描述系统“做什么”,那么逻辑视图就是描述“怎么做”。系统的静态结构描述类、对象和它们之间的关系,反映的是系统静态特征或结构组成。

(3)组件视图(Component view)

组件视图用来描述系统实现的结构和行为特征,反映系统各组成元素之间的关系。组件视图由组件图实现,主要供开发者和管理者使用。

(4)并发视图(Concurrency View)

并发视图用来描述系统的动态和行为特征。并发视图将任务划分为进程或线程形式,通过任务划分引入并发机制,可以高效地使用资源、并行执行和处理异步事件。除了划分系统为并发执行的进程或线程外,并发视图还必须处理通信和同步问题。

(5)配置视图(Deployment View)

配置视图体现了系统的实现环境,反映系统的物理架构。配置视图还包括一个映射,该映射显示在物理架构中组件是怎样分配的。

5. 顺序图在分析阶段的作用?

答:顺序图描述了一组交互对象间的交互方式,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序

6. 活动图在分析阶段的作用?

答:活动图反映系统中从一个活动到另一个活动的流程,强调对象间的控制流程。活动

4

图特别适合描述工作流和并行处理过程。具体地说活动图可以描述一个操作过程中需要完成的活动;描述一个对象内部的工作;描述如何执行一组相关的动作,以及这些动作如何影响它们周围的对象;说明一个业务活动中角色、工作流、组织和对象是如何工作的。 7.比较结构化设计和面向对象设计区别?

答:结构化设计:系统被划分成多个模块,这些模块被组织成一个树型结构。根就是主模块,叶子是最低级的功能模块。这棵树也表示调用结构:每个模块都调用自己的直接下级模块,并被自己的直接上级模块调用。顶层模块负责收集应用程序最重要的那些执行策略,底层模块实现处理细节。在这个体系结构中越靠上层位置,概念的抽象层次就越高。但是,由于上层模块需要调用下层模块,所以这些上层模块就依赖于下层模块的处理细节。也就是说,当实现细节发生变化时,抽象也会受到影响;如果想复用某一个抽象的话,就必须把它依赖的细节都一起拖过去。

面向对象设计:上层创建的抽象不依赖于任何细节,而细节则高度依赖于上层的抽

象。这种依赖关系的变化正是结构化设计与面向对象设计的根本区别。 8.什么是框架,它与“设计”有什么关系?

答:框架是一组可用于不同应用的类的集合。框架中的类通常是一些抽象类并且相互有联系,可以通过继承的方式使用这些类,当面向对象设计进行底层设计时,对每个类进行详细设计,设计类的属性和操作,优化类之间的关系,就可以设计成框架来对类的设计进行构架和优化。 9.系统的物理构架中应该包括哪些信息?

答:用UML的配置图描述系统的物理构架,然后将需求分析阶段捕获的系统功能分配到这些物理节点上。包括的信息为节点的拓扑结构、硬件设备配置、通信路径、各个节点上运行的系统软件配置、应用软件配置。

三、应用题

1. 一个多媒体商店系统包含一个由媒体文件构成的数据库,有两类媒体文件:图像文

件和声音文件。每个媒体文件都有名称和唯一的编码,而且文件包含作者信息和格式信息,声音文件还包含声音文件的时长(以秒为单位)和作者的信息。假设每个媒体文件可以由唯一的编码所识别,系统要提供以下功能: 1) 媒体库中可以添加新的特别媒体文件。 2) 通过给定的文件编码查找需要的媒体文件。 3) 从媒体库中删除指定的媒体文件。 4) 给出媒体库中媒体文件的数量。

考虑类imageFile和audioFile应该具有哪些恰当的属性和方法

答:imageFile类的属性有:Name(文件名称),Code(编码),AuthorInfo(作者信息),Format(格式信息);audioFile类除了拥有以上属性外还有属性Time(文件时长);

5

imageFile类的方法:Add(imageFile)(添加图像文件),Delete(Code)(删除文件),GetFile(Code)(查找文件),GetNumber()(返回媒体文件的数量);

audioFile类的方法:Add(audioFile)(添加声音文件),Delete(Code)(删除文件),GetFile(Code)(查找文件),GetNumber()(返回媒体文件的数量)。

2. 若把学生看成一个实体,它可以分成多个子实体,如小学生、中学生和大学生等。

在面向对象的设计中,可以创建如下4个类:类Student、类Elementary Student、Middle Student;类University Student。试给出这4个类的属性以及它们之间的关系。

答:Student类为基类,其他三个类都是Student的子类。

Student类的属性有:Name(姓名),Sex(性别),Age(年龄),Class(班级)。 Elementary Student类的属性有:IsTeamMember(是否是少先队员),IsGoodStudent(是否是三好学生)。

Middle Student类的属性为:IsMember(是否是团员),Subject(文科理科)。 University Student类的属性为:IsPartyMember(是否党员),Department(学院),Specialty(专业)。

三、应用题

1. 某学校领书的工作流程为:学生班长填写领书单,班主任审查后签名,然后班长拿

领书单到书库领书。 书库保管员审查领书单是否有班主任签名,填写是否正确等,不正确的领书单退回给班长;如果填写正确则给予领书并修改库存清单;当某书的库存量低于临界值时,登记需订书的信息。每天下班前为采购部门提供一张订书单。 用活动图来描述领书的过程。 解:

6

班长书库管理员填写领书单是否有班主任签名班主任签名领书单填写是否正确不正确返回给班长正确修改领书检查库存库存清单库存不库存充足提交采购部足登记图书信息订书单

2. 使用顺序图描述下面的情景,当用户在自己的计算机上向网络打印机发出一个打印

任务时,他的计算机便向打印机服务器发送一条打印命令print(file),打印机服务器如果发现网络打印机处于空闲状态,则向打印机发送打印命令print(file),否则向打印队列发送一条保存命令store(file)。

7

计算机打印服务器打印机队列Print()(空闲)打印(忙)存储队列打印打印结束打印结束 解:

3. 某报社采用面向对象技术实现报刊征订的计算机管理系统,该系统基本需求如下: (1)报社发行多种刊物,每种刊物通过订单来征订,订单中有代码,名称,订期,单价,份数等项目,订户通过填写订单来订阅报刊。

(2)报社下属多个发行站,每个站负责收集登陆订单、打印收款凭证等事务。 (3)报社负责分类并统计各个发行站送来的报刊订阅信息。 请就此需求建立对象模型。

::书刊信息-书号-书名-定价::订单信息-书刊代码-订期-名称-单价-份数nnn1::发行站1n1::出版社11::客户信息-客户名称-客户地址-客户电话n1+接受订单()+打印收款凭据()+分类统计订单信息()解:

8