软件工程课后习题
目录 第1章习 题 2 第 2 章习题 ……………………………………… 4 第 3 章习题 ……………………………………… 5 第 4 章习题 ……………………………………… 8 第 5 章习题 ……………………………………… 13 第 6 章习题 ……………………………………… 18 第 7 章习题 ………………………………………. 25 第 8 章习题 ………………………………………… 25 第 9 章习题 ………………………………………… 33 第 10 章习题 ……………………………………… 35 11 第 1 章 1.对于硬件是有形的而软件是无形的观点,有人提出了不同的看法。他认为软件也是 有形的,例如,软件需要安装才能工作,软件安装之后会占据一定的磁盘空间。对此,你 是什么看法 解答:软件是抽象的、无形的。软件之所以需要安装并占据一定的磁盘空间,正说明 了软件对硬件的依赖,它不能独立存在。 2. 软件按服务对象的不同可分为通用软件和定制软件。 试举例说明这两类软件的区别。 解答:通用软件一般由软件开发机构自主开发并通过市场推广、销售,如 Microsoft Word,它是完全由 Microsoft 自主开发并通过市场推广、销售的文字处理软件。定制软件 则通常受特定客户委托并在合同的约束下开发。例如,某专门设备的控制系统、某特定企 业的业务管理系统、某智能大厦的监控与管理系统、某城市的交通监管系统等。定制类软 件通常由客户进行软件描述,并以此为基本依据确定软件规格。 3.程序系统时代出现的“软件作坊”有什么特点 解答:软件作坊虽然也生产具有工业化特征的软件产品,但软件作坊是一种比较松散 的组织机构,缺少工业化企业应具有的标准、规范和制度,因此不能使软件生产过程工业 化。 4.某软件公司抢时间为某单位开发了一个人事管理软件,但软件交付用户使用一段时 间之后,用户有了抱怨,原因是单位里某个职工改了名字,但人事管理软件却不允许修改 姓名,而只能删除整条记录以后重新输入。试从软件危机角度对这个问题做一些评论。 解答:由于软件开发过程中软件开发人员和用户之间缺乏信息交流,以至用户的需求 没有在软件规格定义中充分体现,从而导致开发出来的软件不能安全满足用户的实际应用 需要。 5.什么是软件工程 22 解答:软件工程是一门关于软件开发与维护的工程学科,其涉及软件生产的各个方面, 包括工程过程、工程原则、技术方法与工具以及工程项目管理等,能够为经济、高效地开 发高质量的软件产品提供有效的支持。 6.什么是软件工程方法简要说明一些主要的软件工程方法。 解答:软件工程方法是指完成软件开发与维护任务时,应该“如何做”的技术方法。 主要的软件工程方法有:结构化方法、JSD 方法和面向对象方法。 结构化方法是传统的基于软件生命周期的软件工程方法,以软件功能为目标来进行软 件构建,包括结构化分析、结构化设计、结构化实现和结构化维护。 JSD 方法主要用于软件设计, 由法国科学家 Jackson 提出。它以软件中的数据结构为基 本依据来进行软件结构与程序算法设计,是对结构化软件设计方法的有效补充。 面向对象方法以软件问题域中的对象为基本依据来构造软件系统模型,包括面向对象 分析、面向对象设计、面向对象实现和面向对象维护。 7.什么是软件工具 Visual C++属于什么类型的软件工具 解答: 软件工具通常也称为 CASE, 它是计算机辅助软件工程 (Computer-Aided Software Engineering)的英文缩写,是为了方便软件工程方法的运用而提供的具有自动化特征的软 件开发支撑环境。 CASE 工具覆盖面很广,包括分析建模、设计建模、源代码编辑生成、软件测试等。其 中,用来支持软件分析、设计的CASE 工具,如数据字典管理器、分析建模图形编辑器、软 件结构设计器, 被称为高端 CASE 工具; 而用来支持软件实现和测试的工具, 如程序编辑器、 程序分析器、调试器等,则被称为低端工具。 Visual C++的用途是程序编辑、程序分析与调试,因此是低端工具。 8.你是如何看待软件工程过程的软件过程中最基本的活动有哪些 解答:软件工程过程是指开发软件时所进行的一系列软件工程活动,这些活动需要通 过制订工作步骤体现,它应该是科学的、合理的,否则将影响软件开发的成本、进度与产 品质量。软件工程过程并不固定,不同的产品开发会有不同的活动,但均包括四项基本活 33 动:软件定义、软件开发、软件验证和软件维护。 9.软件工程管理主要包括哪些方面的内容 解答:软件工程管理的主要内容有:1. 项目规划;2. 项目资源调配;3. 软件产品控 制。 10.B. W. Boehm 提出的软件工程基本原则是什么 解答:B. W. Boehm 总结了以下 7 条基本原则。 (1)采用分阶段的生命周期计划,以严格对项目的管理; (2)坚持阶段评审制度,以确保软件产品质量; (3)实行严格的产品控制,以适应软件规格的变更; (4)采用先进的程序设计技术; (5)软件成果应该能够清楚地审查; (6)开发小组的人员应该少而精; (7)承认不断改进软件工程实践的必要性。 11.什么是软件工程目标如何解决多个目标之间出现的矛盾 解答:软件工程目标是基于软件项目目标的成功实现而提出的, 并主要体现为以下几个 目标:(1)软件开发成本较低; (2)软件功能能够满足用户的需求; (3)软件性能较好; (4)软件可靠性高; (5)软件易于使用、维护与移植;(6)能按时完成开发任务,并 及时交付使用。 在一个具体项目中,以上几个目标之间很可能会出现冲突,例如,若只顾降低开发成 本,则可能由此导致软件的性能与可靠性也随之降低;另一方面,如果太过于追求软件的 性能,则可能使得开发出来的软件对硬件有较大的依赖。因此,在实际的软件项目中,往 往需要在几个目标中进行平衡。此时,软件的质量应该摆到最重要的位置加以考虑。因此, 软件的可用性、有效性、可靠性和可维护性等往往需要特别关注。 12.什么是软件工程文化其中的价值观是什么 44 解答:软件工程文化是指工程人员在软件开发中所应该具备的产品质量观、价值观、 道德准则和团队意识等。其中的价值观是指软件企业上下对软件工程价值有一致的认同。 第 2 章 1.什么是软件生命周期根据国家标准《计算机软件开发规范》,软件生命周期主要包 括哪些阶段 解答:软件生命周期是指软件定义、开发、运行维护,直至被淘汰的全过程。根据我 国国家标准《计算机软件开发规范》(GB 8566—8),软件生命周期包括软件定义、软件 开发、软件运行维护三个阶段,并可以细分为可行性研究、项目计划、需求分析、概要设 计、详细设计、编码实现与单元测试、系统集成测试、系统确认验证、系统运行与维护等 几个阶段。 2.瀑布模型有哪些特点对于里程碑,你有什么认识一般认为,瀑布模型不太适用于用 户需求经常变更的软件项目,其原因是什么 解答:瀑布模型的特点:(1). 线性化模型结构;(2). 各阶段具有里程碑特征; (3). 基于文档的驱动;(4). 严格的阶段评审机制。其中的里程碑是指瀑布模型中的 阶段只能逐级到达、不能跨越;每个阶段都有明确的任务,都