软件工程教材习题答案 联系客服

发布时间 : 星期六 文章软件工程教材习题答案更新完毕开始阅读

《软件工程——理论与实践》(第2版)习题答案

和交换。

(2) 集成化的CASE环境由于采用了统一的用户界面,为软件开发人员提供了更为方便的使用平台,并且改善了开发人员之间的协调能力。

(3) 集成化CASE环境的使用,可以贯穿软件开发的各个阶段,包括分析、设计、编码、测试、维护和配置,这使得软件开发活动和相关的开发信息可以流畅地由一个开发阶段过渡到下一个开发阶段。

(4) 集成化的CASE环境也具有更好的可移植性,使其可以适用于不同的硬件平台和操作系统。 4. 软件开发工具的集成可以分成哪几个层次?

答:一个集成化的CASE开发环境通常需要完成以下三个层次集成:

(1).平台的集成。平台是指CASE工具运行所处的计算机硬件和操作系统环境。 (2) 界面的集成。界面集成是指集成化的CASE环境中的各种软件开发工具都采用统一的用户交互界面和方式,以达到减少用户学习和使用这些工具的难度和复杂度的目的。

(3) 数据的集成。为了实现不同的CASE工具之间的数据交换与共享,数据的集成是集成化的CASE开发环境需要解决的一个核心问题。

5. Rational Rose可以建立哪几种模型图?

答:Rational Rose可以建立的模型图共有9种,它们分别是: (1) 业务用例图(Business Use Case Diagram); (2) 用例图(Use Case Diagram); (3) 类图(Class Diagram);

(4) 协作图(Collaboration Diagram); (5) 顺序图(Sequence Diagram); (6) 活动图(Activity Diagram); (7) 状态图(Statechart Diagram); (8) 构件图(Component Diagram); (9) 部署图(Deployment Diagram)。

6. 简述业务用例图与用例图的区别。

答:业务用例图用于建立机构的业务模型,包括描述整个机构业务执行的流程和所提供的功能等内容。用例图用于对软件系统的需求分析,即用于描述一个软件系统需要完成什么样的功能。 7. 协作图和顺序图都是用于描述模型系统中对象之间的交互行为,请简述它们各自的特点。 答:表示模型系统中对象之间的交互行为的图有两种:协作图和顺序图。其中协作图按照对象本身进行组织,展示了对象之间的连接,以及连接的对象之间如何发送/接收消息。而顺序图则用来描述对象之间动态的交互行为,着重体现对象间消息传递的时间顺序。

8. Rose的类图中的类之间存在4种关系:关联、聚集、泛化、依赖,请简述它们的不同之处。 答:(1)关联关系是类与类之间的一种词法连接,使得一个类可以访问或使用另一个类的公共属性和操作,实现在不同类之间的交互和通信,关联关系又分为单向关联和双向关联。

(2)依赖关系表示一个类需要引用另一个类的定义,其目的也是为了实现不同类之间的信息交换。但依赖关系与关联关系不同之处在于:它们对程序代码有不同的影响;依赖关系只能是单向的,而关联关系可以单向的也可以是双向的。

(3)聚集关系表示的是类之间“整体与部分”的关系。

(4)泛化关系表示类之间“一般与特殊”、“抽象与具体”的关系即不同类之间的继承关系。

9.请使用Rose绘制“图书销售管理系统”中“订单”对象的状态图。 答:参考10.18状态图。

33

《软件工程——理论与实践》(第2版)习题答案

10. 请使用Rose绘制“网上商店购物管理系统”中“购物”流程的活动图。 答:参考10.16活动图。

11. 请使用Rose绘制“自动取款机ATM系统”的用例图。 答:参考10.8用例图。

12. PowerDesigner包含哪几个模块?

答:PowerDesigner是一个功能强大而使用简单的工具集,它包含六个紧密集成的模块。 (1)PowerDesigner ProcessAnalyst数据流程图逻辑设计工具。

(2)PowerDesigner DataArchitect概念数据模型与物理数据模型设计工具。 (3)PowerDesigner AppModeler客户端应用程序生成工具。 (4)PowerDesigner MetaWorks团队开发控制工具。

(5)PowerDesigner WarehouseArchitect是数据仓库设计工具。 (6)PowerDesigner Viewer是模型观察工具。

13.请简述Rose与PowerDesigner两款建模工具的区别。

答:Rose和PowerDesigner都既可以进行数据库建模,也可以进行面向对象建模,但存在支持上的偏重。具体的区别包括:

(1)模型组织。Rose将数据库模型和对象模型放在一起,在进行数据表模型设计时,没有特性化的东西。而PowerDesigner将两者分开, PowerDesinger可以通过模型转换工具进行数据库建模和面向对象模型的相互转换。但Rose不能将对象转换为表,也不能将表转换为对象。

(2)工作空间。PowerDesigner有工作空间的概念,一个工作空间下可以同时打开多个设计模型文件;而Rose同时仅能打开一个设计文件。

(3)设计界面。PowerDesigner的设计界面可以左右上下移动,而Rose只能向右、向下移动;此外,PowerDesigner可以将模型元素放大很多倍,而Rose只能放大到正常倍数。

(4)对模型和语言的支持。对于数据库模型,PowerDesigner支持20余种数据库,对于同一数据库的不同版本还提供单独的支持。对于面向对象模型,PowerDesigner支持11种主流语言。Rose基本上可以说是一个对象模型设计工具,对数据库模型的支持相对粗糙。

(5)输入和输出功能的比较。PowerDesigner仅对需逆向工程的程序代码进行浅度语法检查,而Rose会对需要逆向工程操作的程序代码进行深度语义检查;此外PowerDesigner对文档导出提供了精细的控制。而Rose没有导出模板的概念,更不能对导出项和格式进行设置;在导出设计模型的代码时,PowerDesigner不但可以进行对象分级,还可以进行代码级别的控制,而Rose没有提供代码导出的控制,只能按其系统内部设置的方式导出代码。PowerDesigner可为数据表生成批量的测试数据,还可以制定测试数据的生成规则。Rose中没有提供类似的功能。

习题十一答案

1. 为什么要进行软件项目管理?

答:软件项目管理是对软件项目开发全过程的管理,是对整个软件生存期的所有活动进行管理。任何工程的成败,都与管理的好坏密切相关,软件项目也不例外。尤其是软件产品的特殊性,软件项目的管理对于保证软件产品的质量具有极为重要的作用,是软件项目开发成功的关键。

2. 软件项目管理有哪些特点?

答:软件项目管理的主要特点包括如下几个方面:

34

《软件工程——理论与实践》(第2版)习题答案

⑴ 软件项目管理涉及的范围广,涉及软件开发进度计划、人员配置与组织、项目跟踪与控制等。 ⑵ 应用到多方面的综合知识,特别是要涉及社会的因素、精神的因素、认知的因素,这比技术问题复杂得多。

⑶ 人员配备情况复杂多变,组织管理难度大。

⑷ 管理技术的基础是实践,为取得管理技术成果必须反复实践。

3. 软件项目管理主要对哪些方面进行管理?

答:软件项目管理的对象是软件工程项目,因此软件项目管理涉及的范围覆盖了整个软件工程过程。软件项目管理的主要活动有:

⑴ 软件可行性分析

即从技术上、经济上和社会上等方面对软件开发项目进行估算,避免盲目投资,减少损失。 ⑵ 软件项目的成本估算

从理论到具体的模型在开发前估算软件项目的成本,减少盲目工作。 ⑶ 软件生产率

⑷ 通过对影响软件生产率的5种因素(人、问题、过程、产品和资源)进行分析,以便在软件开发时,更好地进行软件资源配置。

⑸ 软件项目质量管理

软件项目的质量管理也是软件项目开发的重要内容,对于影响软件质量的因素和质量的度量都是质量管理的基本内容。

⑹ 软件计划

开发软件项目的计划涉及实施项目的各个环节,带有全局的性质。计划的合理性和准确性往往关系着项目的成败。

⑺ 软件开发人员管理

软件开发的主体是软件开发人员,对软件开发人员的管理十分重要,它直接关系到如何发挥最大的工作效率和软件项目是否开发成功。

其中,软件项目的成本估算,重要的是项目所需资源的估算。软件项目资源估算指,在软件项目开发前,对软件项目所需的资源的估算。

①人力资源——在考虑各种软件开发资源时,人是最重要的资源。在安排开发活动时必须考虑人员的技术水平、专业、人数,以及在开发过程中各阶段对各种人员的需求,可按照Putnam-Nordan曲线安排。

②硬件资源——硬件是作为软件开发项目的一种工具而投入的。在计划软件项目开发时,考虑三种硬件资源,主要包括宿主机(软件开发时使用的计算机及外围设备)、目标机(运行已开发成功的软件的计算机及外围设备)和其他硬件设备(专用软件开发时需要的特殊硬件资源)。

③软件资源——软件在开发期间使用了许多软件工具来帮助软件的开发。因此软件资源实际就是软件工具集,主要软件工具分为业务系统计划工具集、项目管理工具集、支援工具、分析和设计工具、编程工具、组装和测试工具、原型化和模拟工具、维护工具、框架工具等。

④软件复用性及软件部件库——为了促成软件的复用,以提高软件的生产率和软件产品的质量,应建立可复用的软件部件库。对于软件的复用,人们经常忽略,但这却是相当重要的一环。

⑻软件项目风险管理

4. 项目可行性报告包括哪几部分的内容? 答:包括如下内容: ⑴ 引言

系统名称、目标、功能、开发组织单位,服务对象等。 ⑵ 系统开发的背景,必要性和意义

35

《软件工程——理论与实践》(第2版)习题答案

①现行系统的调查研究:组织机构、业务流程、工作负荷、费用、人员、设备、计算机应用情况、存在问题等。

②需求调查和分析:用户提出的需求及考虑经济改革和发展需要进行预测结果。 ⑶ 新系统的几种方案介绍 ①拟建系统目标

②系统规模及初步方案(粗略的逻辑模型) ③系统的实施方案(计划安排) ④投资方案

⑤人员培训及补充方案 ⑥其他可供选择的方案 ⑷ 可行性研究

1)技术上的可行性(按系统目标衡量) ①对现有技术的估价

②使用现有技术进行系统开发的可行性 ③对技术发展可能产生影响的预测 ④关键技术人员的数量和水平估计 2)经济上的可行性(估算成本/效益比) ①现有的经济条件 ②开发、运行费用 ③对系统效益的估计 ④投资回收期 ⑤成本/效益比

3)系统运行的可行性 ①对组织机构的影响 ②人员适应的可行性 ③环境条件的可行性 ⑸ 几种方案的比较分析 ⑹ 结论

5. 一个公司为它的电子商务网站建设发出标书,你的公司准备投标。作为项目负责人,请你估算这个项目的成本。

答:略。

6. 竞标的对手实力很强,你准备采用压价的方式来争取这个项目吗? 答:略。

7. 考察一个实际的项目,看看项目涉及的人员有哪几类,他们各自负责什么样的工作。 答:略。

8. 如果你是培训经理,负责对项目中的程序员进行程序设计语言C#的培训。那些接受培训的程序员有刚从学校毕业的学生,也有从其他公司跳槽过来的人员。请根据他们的不同特点制定一套合理的培训方案。

答:略。

9. 请设计一份问卷调查表,其内容主要涉及各类人员在项目进行过程中的心理和生理需求,然

36