软件工程案例教程-软件项目开发实践复习
课后习题判断题和选择题(已换百度云盘)
🖕 上面这个,是一个,超链接
基本原理
- 用分阶段的生命周期计划严格管理
- 坚持进行阶段评审
- 实行严格的产品控制
- 采用现代程序设计技术
- 结果应能清楚的审查
- 开发小组人员应少而精
- 承认不断改进软件工程实践的必要性
软件开发模型
瀑布模型
是一个经典的模型,也被称为传统模型,是一个理想化的软件开发模型,它要求项目所有的活动都严格按照顺序进行,一个阶段的输出是下一个阶段的输入。这个模型没有反馈,一个阶段完成后,一般就不返回了——尽管实际上经常要返回上一个阶段。在一些小的项目中经常用到。

V 模型
V 模型是瀑布模型的一个变种,同样需要一步一步的进行,即前一阶段的任务完成后才可以进行下一阶段的任务。这个模型强调测试的重要性,他将开发活动与测试活动紧密地联系到一起,每一步都将比前一阶段进行更加完善的测试。V 模型说明了测试的重要性,这个模型中测试与开发是并行的,体现了全过程的质量意识。

原型模型
原型模型是在需求阶段快速构建一部分系统的软件开发模型,用户可以通过试用原型提出原型的优缺点,这些反馈意见可以作为进一步修改系统的依据。开发人员对开发的产品的看法有时与客户不一致,因为开发人员更关注设计和编码实施,而客户更关注需求。因此,如果开发人员快速构造一个原型将会很快与客户的需求达成一致。
- 定义
- 问题定义
- 可行性研究
- 需求分析
- 开发
- 概要设计
- 详细设计
- 编码和单元测试
- 综合测试
- 运维
- 软件维护
第一章课后题
一、填空题
- 软件工程是一门综合性的交叉学科,它涉及计算机科学、数学 科学、管理 学科和工程学 学科。
- 软件工程研究的主要内容是 方法、过程、工具 三个方面。
- 由于软件生产的复杂性和高成本,使大型软件生产出现了很多问题,即出现 软件危机 ,软件工程正是为了克服它而提出的一种概念及相关方法和技术。
- SWEBOK V3 中,软件工程知识体细分为 软件工程教育需求 和 软件工程实践 两大类。
- 增量式 模型假设需求可以分段,成为一系列增量产品,每一增量可以分别开发。
- 喷泉模型 比较适用于面向对象的开发方法。
- 软件工程是用工程科学的知识和技术原理来 定义、开发、维护 软件的一门学科。
第二章课后题
一、填空题
- UML 的三个基本构造快是 事务、关系 和 图。
- 在软件开发的结构化方法三中,采用是的主要技术是 SA,即 结构化分析 和 SD,即 结构化编程。
- 数据流图描述数据在软件中的流动和处理过程,是软件模型的一种图示,他一般包括 4 种图形符号:变换 / 加工、外部实体、数据流向和 数据存储。
- 面向对象方法 是将数据和对数据的操作紧密地结合起来的方法,这是其与传统结构化方法的主要区别。
- 软件代理一般具有 自治性、开放性、反应能力 特性。
第三章课后题
一、填空题
- 分析模型在系统级描述和 软件设计 之间建立了桥梁。
- 最常见的实体关系图的表示法是 Peter Chen 表示法和 James Martin 表示法。
- 结构化分析方法是面向 数据流 进行需求分析的方法。结构化分析方法使用 数据流图 DFD、数据字典 DD 等来描述。
- 在需求分析中,可从有关问题的简述中提取组成数据流图的基本成分。通常问题简述中的动词短语将成为数据流图中的 处理 成分。
- 面向对象的需求分析中常用的 UML 图示有 用例图、顺序图、状态图、协作图 和 活动图 等。
C/S 体系结构
C/S 模式应用系统包括客户端的机器及其运行系统,服务器端的机器及其运行系统,所以是二层结构。在这个系统中,客户端机器是一台完整的计算机,可以独立地执行运算操作和磁盘存取,服务器上运行数据库和文件系统操作,客户端运行事务处理和输入 / 输出操作。
C/S 体系结构通过将任务合理分配到客户机端和服务器端,降低了系统的通信开销,需要安装客户端才可进行管理操作。客户端和服务器端的程序不同,用户的程序主要在客户端,服务器端主要提供数据管理、数据共享、数据及系统维护和并发控制等,客户端程序主要完成用户的具体业务。该结构开发比较容易,操作简便,但应用程序的升级和客户端程序的维护较为困难。
C/S 体系结构将复杂网络应用的用户交互界面(GUI)和业务应用处理与数据库访问处理相分离,服务器与客户端之间通过消息传递机制进行对话,由客户端向服务器发出请求,服务器进行相应的处理后经传递机制送回客户端。这使得在处理复杂应用时,客户端应用程序显得“臃肿”,限制了对业务处理逻辑变化的适应和扩展能力,当访问量增大、业务处理复杂时,客户端与后台数据库服务器数据交换频繁,易造成网络瓶颈。为解决这类问题,出现了采用三层式程序结构的趋势。

B/S 体系结构
基于 Web 的 B/S 方式其实也是一种 C/S 方式,只不过他的客户端是浏览器,对 C/S 体系结构的一种变化或者改进。
在 B/S 体系结构下,用户界面完全通过 WWW 浏览器实现,一部分事务逻辑在前段实现,但是主要事务逻辑在服务器端实现。B/S 体系结构主要体用不断成熟的 WWW 浏览器技术,结合浏览器的多种脚本语言,用通用浏览器实现了原来需要复杂的专用软件才能实现的强大功能,并节约了开发成本。基于 B/S 体系结构的软件,系统安装、修改和维护全在服务器端解决。用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了“零客户端”,容易在运行时自动升级。B/S 体系结构还提供了异种机、异种网、异种应用服务的联机、联网、统一服务的开放性基础。
软件采用该结构的优势在于:无需开发客户端软件,维护和升级方便;可跨平台操作,任何一台机器只要装有 WWW 浏览器软件,均可作为客户机来访问系统;具有良好的开放性和可扩充性;可采用防火墙技术来保证系统的安全性,有效地适应了当前用户对管理信息系统的新需求。
第四章课后题
一、填空题
- C/S、B/S、SOA、BMP 等都是不同的 软件体系结构。
- 数据字典包括 数据项、数据流、数据存储和基本加工。
- 高内聚、松耦合是 模块层次图 的基本原则。
- 软件设计 把已确定的软件需求转换成特定形式的设计表示,使其得以实现。
- 设计模型是从分析模型转化而来的,主要包括四类模型:体系结构设计模型、数据设计模型、接口设计模型、构件设计模型。
- 面向对象设计的主要特点是建立了四个非常重要的软件设计概念:抽象性、信息隐藏性、功能独立性和模块化。
- 模块层次图和模块结构图是 模块划分 的重要方法。
- UML 设计中主要采用的图示有 类图、对象图、包图 等。
- 软件模块设计,包括模块划分、模块之间的接口、模块的调用关系、每个模块的功能等。
- 数据库的设计一般要进行三个方面的设计:概念结构设计、逻辑结构设计和物理结构设计。
- 结构化程序设计方法的主要原则可以概括为 自上而下,逐步求精。
决策表
决策表提供了将条件极其相关的任务组合成表格的一种表达方式。决策表左上区域列出了所有的条件,左下区域列出了基于这些条件组合对应的任务,右边区域是根据条件组合而对应的任务矩阵表,矩阵的每一列可以对应于应用系统中的一个处理规则。
编制一个决策表的步骤如下:
- 列出与一个特定的模块相关的所有任务
- 列出这个模块执行过程的所有条件(或者决策)
- 将特定的条件组合与相应的任务组合在一起,删除不必要的条件组合,或者编制可行的条件组合。
- 定义规则,即一组条件组合对象完成什么任务。

第五章课后题
一、填空题
- PDL 又称 过程设计语言,它是一种非形式化的比较灵活的语言。
- 软件的详细设计可采用图形、表格 和过程设计语言等形式的描述工具表示模块的处理过程。
- 软件详细设计需要设计人员对每个设计模块进行描述,确定所使用的 算法、接口细节和输入、输出数据等。
- 结构化设计方法与结构化分析方法一样,采用 数据结构 技术。结构化设计方法与结构化分析方法相结合,依数据流图设计程序的结构。
- 软件中详细设计一般在 概要设计 基础上才能实施,他们一起构成了软件设计的全部内容。
- 在 Warnier 方法中,采用 Warnier 表示数据结构和程序结构。
- 面向数据结构的设计方法主要包括 JSD 算法 和 Warnier 方法 。
- 在详细设计阶段,出了对模块内的算法进行设计,还应对模块内的 数据结构 进行设计。
编码是软件设计的自然结果,因此,程序的质量主要取决于软件设计质量。但是所选用的程序设计语言的特点、编程风格、编程方法等,也会对程序的可靠性、可读性、可测试性和可维护性产生深远影响。
第六章课后题
一、填空题
- 在软件编码过程中,可以采用自顶向下、自底向上、自顶向下和自底向上相结合以及 线程模式 等几种编码策略。
- 可以将程序设计语言分为第一代语言、第二代语言、第三代语言、第四代语言和 第五代语言 五类。
- 任何程序都可由 顺序、选择 和 循环 三种基本控制结构构造。这三种基本控制结构的共同点是 和 。
第六章选择题非常重要
白盒测试方法
又称结构测试、基于程序的测试、玻璃盒测试等,它是一种逻辑测试。
测试用例需要满足:
- 保证模块中的独立路径至少被执行一次。
- 保证所有的逻辑值(True、False)均被测试。
- 在上、下边界和可操作范围内运行所有的循环。
- 检查内部数据结构的有效性。
白盒测试方法需全面了解程序内部逻辑结构,对所有逻辑路径进行测试。测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据,不过即使每条路径都测试了仍然可能有错误。
- 穷举路径测试决不能查出程序违反了设计规范,程序本身是一个错误的程序
- 穷举路径测试不可能查出程序中因遗漏路径而出错
- 穷举路径测试可能发现不了一些与数据相关的错误。
白盒测试作为结构测试方法,按照程序内部的结构测试程序,检查程序中的每条通路是否能够按照预定要求工作,因此其最主要的技术是逻辑覆盖技术。逻辑覆盖包括
- 语句覆盖
- 判定覆盖
- 条件覆盖
- 判定 / 条件覆盖
- 条件组合覆盖
- 路径覆盖
第七章课后题
一、填空题
- 从是否需要执行被测软件的角度,软件测试方法一般可分为两大类,即 静态测试 方法和 动态测试 方法。
- 在白盒测试方法中,对程序的语句逻辑有 6 中覆盖技术,其中发现错误能力最强的技术是 路径覆盖 。
- 若有一个计算类程序,它的输入量只有一个 X ,其范围是[-1.0,1.0]。现在设计一组测试用例,X 输入为 -1.001、-1.0、1.0、1.001,则设计这组测试用例的方法是 边界值分析。
- 单元测试主要测试模块的 5 个基本特征是: 模块接口、局部数据结构、重要的执行路径、错误处理和边界条件。
- 黑盒测试主要针对功能进行的测试,等价类划分、规范导出、错误猜测和因果图法等都是采用黑盒技术设计测试用例的方法。
- 边界值分析是将测试边界情况作为重要目标,选取正好等于、刚刚大于或刚刚小于边界值的测试数据。如果输入 / 输出域是一个有序集合,则集合的第一个元素和 最后一个 元素应该作为测试用例的数据元素。
- 集成测试的策略主要有 大爆炸集成测试、自顶向下集成测试、自底向上集成测试、三明治集成测试 和 冒烟集成测试。
- 逻辑覆盖包括 语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖等。
当项目通过验收后,项目团队将项目成果的所有权交给项目接收方,这个过程就是项目的交付。
产品交付需要完成的任务
- 安装部署
- 验收测试
- 交付产品
- 培训
交付产品的同时需要交付相应的手册
- 用户手册
- 系统管理员手册
第八章课后题
一、填空题
- 产品交付需要完成的主要任务是 验收测试 和 安装部署。
- 项目验收 是项目移交的前提,移交时,项目移交方和项目接收方将在项目移交报告上签字,形成项目移交报告。
- 验收测试 是交付使用前的最后一次检查,也是软件投入运行之前保证可维护性的最后机会。
- 第三方验收测试 是由独立于软件开发者和用户的第三方所进行的测试,旨在对被测软件进行质量认证。
- 一个产品的使用者有两种类型:一种是用户,另一种是 系统管理员。
- 系统管理员手册 是为系统管理员准备的文档资料。
第九章课后题
一、填空题
- 当一个系统已经在实际环境中投入使用了,可以进行正常的操作,我们就说系统开发完成了,而以后对系统变更所做的任何工作,被称为 软件维护。
- 软件的可维护性是指纠正软件系统出现的 错误或缺陷 以满足新的要求而进行修改、扩充或压缩的容易程度。
- 一个可移植的程序应该具有结构良好、灵活、不依赖于某一具体计算机或操作系统 的性能。
- 软件维护的类型主要包括 纠错性维护、适应性维护、完善性维护和预防性维护等。
- 预防性维护也被称为 软件再工程。
- 软件的逆向工程是一个恢复 设计结果 的过程。
- 如果软件是可测试的、可理解的、可修改的、可移植的、可靠的、有效的、可用的,则软件一定是可 使用 的。