1、第17章 软件工程基础讲稿第十七章 软件工程基础大纲要点:1.软件工程基本概念,软件生命周期概念,软件工具与软件开发环境。2.结构化分析方法,数据流图,数据字典,软件需求规格说明书。3.结构化设计方法,总体设计与详细设计。4.软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。5.程序的调试,静态调试与动态调试。重要考点:1.软件工程的一些基本概念以及他们之间的关系2.结构化分析方法中的数据流图,数据树,数据表;软件规格说明书的特点3.结构设计方法中的概要设计和详细设计4.静态测试和动态测试17.1软件工程的基本概念知识点1 软件工程的定义(1)计算
2、机软件是包括程序、数据及相关文档的完整集合;软件分为系统软件和应用软件。(2)软件危机是在计算机软件的开发和维护过程中所遇到的一系列严重问题,主要包括成本、质量以及生产效率三个方面的严重问题。(3)软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。软件工程正是为了应对软件危机而制定的一套科学开发软件的方法。【经典题解】1、下面描述中,不属于软件危机表现的是_A)软件过程不规范B)软件开发生产率低C)软件质量难以控制D)软件成本不断提高【答案】A【解析】此题主要考查软件危机的特点,软件危机主要表现在成本、质量、生产率等问题,软件工程正是为了应对软件危机。2、软
3、件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于系统软件的是_A)编辑软件B)操作系统C)教务管理系统D)浏览器【答案】B【解析】此题主要考查软件的分类,所谓系统软件,指控制和协调计算机及外部设备,支持应用软件开发和运行的系统,是无需用户干预的各种程序的集合。3、软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件),下面属于应用软件的是_A)编译程序 B)操作系统 C)教务管理系统 D)汇编程序【答案】C【解析】此题主要考查软件的分类,所谓应用软件,用于解决某类具体问题而开发的程序的集合,供多用户使用。4、软件是_、数据和文档的集合。【答案】程序【解析】此题主要
4、考查软件的概念。知识点2 软件生命周期的定义(1)软件产品从提出、实现、使用维护到停止使用退役的过程称为软件的生命周期。(2)软件生命周期三个阶段:软件定义、软件开发、运行维护,过程如下表17-1所示:表17-1 软件生命周期的三阶段时期阶段任务文档软件定义问题定义理解用户要求,划清工作范围计划任务书可行性分析可行性方案及代价需求分析软件系统的目标及应完成的工作需求规格说明书软件开发概要设计系统的逻辑设计概要设计说明书详细设计系统的模块设计详细设计说明书软件编码编写程序代码程序、数据、详细注释软件测试单元测试,综合测试测试后的软件、测试大纲、测试方案与结果软件维护软件维护运行和维护维护后的软件
5、【经典题解】1、软件生命周期是指_A)软件产品从提出、实现、使用维护到停止使用退役的过程B)软件从需求分析、设计、实现到测试完成的过程C)软件的开发过程D)软件的运行维护过程【答案】A【解析】此题主要考查软件生命周期的概念,软件产品从提出、实现、使用维护到停止使用退役的过程称为软件的生命周期。2、软件生命周期可分为定义阶段,开发阶段和维护阶段。详细设计属于_A)定义阶段B)开发阶段C)维护阶段D)上述三个阶段【答案】B【解析】此题主要考查软件开发阶段的具体任务,它包括概要设计、详细设计、软件编码和软件测试四个任务。3、软件开发过程主要分为需求分析、设计、编码与测试四个阶段,其中 _ 阶段产生“
6、软件需求规格说明书”。【答案】需求分析【解析】此题主要考查需求分析阶段的具体任务,它包括给出软件系统的目标及应完成的工作,所有的内容以软件需求规格说明书的形式给出。知识点3 软件工程的目标与基本原则(1)目标:在给定成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的产品。(2)基本原则:抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。17.2 结构化的分析方法知识点4 结构化分析方法的实质 结构化分析方法是结构化程序设计理论在软件需求分析阶段的运用。结构化分析方法着眼于数据流,自顶向下,逐层分解
7、,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。知识点5 结构化分析的常用工具(1)常用工具有:数据流图、数据字典、判定树、判定表。(2)数据流图:描述数据处理过程的工具,全称Data Flow Diagram,简称DFD。图17-1为一个具体的数据流图实例飞机票预定系统,其中:矩形表示数据输入的源点和输出的终点;椭圆形表示加工,输入数据在这里进行变换,产生输出;箭头表示数据流。图17-1 飞机票预定系统数据流图(4)数据字典:对所有与系统相关的数据元素的一个有组织的列表,以及精确的、严格的定义,使得用户和系统分析员对于输入、输出、存储成分和中间计算结果有共同的理解。
8、数据字典是结构化分析的核心例如:学生出生年月、生源地、家庭住址、联系电话、父母姓名、父母单位、父母联系方式、系别、学号。(5)判定树:从问题定义的文字描述中分清哪些是判定的条件,哪些是判定的结论,根据描述材料中的连接词找出判定条件之间的从属关系、并列关系、选择关系,根据它们构造判定树。(6)判定表:与判定树相似,当数据流图中的加工要依赖于多个逻辑条件的取值,即完成该加工的一组动作是由于某一组条件取值的组合而引发的,使用判定表描述比较适宜。知识点6 软件需求说明书的特点结构化分析的最终成果即是软件需求说明书,它的特点有:正确性、无岐义性、完整性、可验证性、一致性、可理解性、可追踪性。其中,正确性
9、是最重要的。【经典题解】1、数据流图(DFD图)是_A) 软件概要设计的工具B) 软件详细设计的工具C) 结构化方法的需求分析工具D) 面向对象方法的需求分析工具【答案】C【解析】此题主要考查结构化分析的常用工具。结构化分析的最终成果即是软件需求说明书。17.3结构化设计方法知识点7 结构化设计的特点 软件设计是用比较抽象概括的方式确定目标系统如何完成预定的任务。在软件设计中应遵循的的基本原理: (1)模块:在程序设计中,可完成特定功能的代码段称为模块。(2)模块独立性:每个模块只完成系统要求的独立的子功能,与其他模块的联系尽量少。 内聚性:指一个模块内部各个元素间彼此结合的紧密程度的度量。
10、耦合性:指模块间相互连接的紧密程度的度量。模块设计的基本原则(模块独立性原则):高内聚,低耦合。从工程管理角度来看,结构化设计分为:概要设计和详细设计。概要设计的主要任务:设计软件系统结构;设计数据结构及数据库;编写概要设计文档;概要设计文档评审。详细设计的主要任务是为软件结构图中的每一个模块确定实现算法和局部设计结构,用某种选定的工具表示算法和数据结构的细节。常见的设计工具有:程序流程图(PFD)、盒图、PAD图、过程设计语言(PDL)。知识点8 程序流程图(1)通常由矩形、菱形和箭头组成;其中,菱形表示判断,矩形表示运算或者开始、结束。(2)它以图形的方式详细描述了程序的开发过程。(3)特
11、点简洁、明了。【经典题解】1、软件设计中划分模块的一个准则是_A) 低内聚低耦合B) 高内聚低耦合C) 低内聚高耦合D) 高内聚高耦合【答案】B【解析】此题主要考查模块设计的基本原则(即模块独立性原则):高内聚,低耦合。2、下列选项中不属于结构化程序设计原则的是_A) 可封装B) 自顶向下C) 模块化D) 逐步求精【答案】A3、软件详细设计产生的图如下:该图是_A) N-S图B) PAD图C) 程序流程图D) E-R图【答案】C4、耦合性和内聚性是对模块独立性度量的两个标准,下列叙述中正确的是_A)提高耦合性降低内聚性有利于提高模块的独立性B)降低耦合性提高内聚性有利于提高模块的独立性C)耦合
12、性是指一个模块内部各个元素之间彼此结合的紧密程度D)内聚性是指模块间互相连接的紧密程度【答案】B【解析】此题主要考查模块设计的基本原则(也叫模块独立性原则):高内聚,低耦合。17.4 软件测试知识点9 软件测试的概念(1)软件测试是使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。(2)软件测试工作一般不由开发人员完成。(3)软件测试的目的:发现软件中的错误。(4)软件测试过程一般按4个步骤进行:单元测试、集成测试、验收测试(确认测试)和系统测试。知识点10 软件测试的方法(1)从是否需要执行被测试软件的角度,软件测试的方法分
13、为:静态测试和动态测试。 静态测试包括代码检查、静态结构分析、代码质量度量。不实际运行软件,主要通过人工进行。 动态测试:是基于计算机的测试(2)按照功能划分,软件测试的方法分为:白盒测试方法和黑盒测试方法。 白盒测试:在程序内部进行,主要用于完成软件内部操作的验证。主要方法有逻辑覆盖、基本路径测试。 黑盒测试:主要诊断功能不对或遗漏、界面错误、数据结构或外部数据库访问错误、性能错误、初始化和终止条件错,用于软件确认。主要方法有等价类划分法、边界值分析法、错误推测法、因果图等。【经典题解】1、软件测试的目的是_A)评估软件的可靠性B)发现并改正程序中的错误C)改正程序中的错误D)发现程序中的错
14、误【答案】D【解析】此题主要考查软件测试的目的:发现软件中的错误。17.5软件的调试知识点11 软件调试的概念(1)程序调试的任务是诊断和改正程序中的错误,主要在开发阶段进行。(2)程序调试的基本步骤:错误定位;修改设计和代码,以排除错误;进行回归测试,防止引进新的错误。(3)主要调试方法:强行排错法、回溯法、原因排除法。【经典题解】1、软件(程序)调试的任务是_A) 诊断和改正程序中的错误B) 尽可能多地发现程序中的错误C) 发现并改正程序中的所有错误D) 确定程序中错误的性质【答案】A 【解析】此题主要考查软件调试的目的:诊断和改正程序中的错误。综合自测一、选择题1. 结构化程序设计的基本
15、原则不包括_A)多态性 B)自顶向下 C)模块化 D)逐步求精2. 软件是指_A)程序 B)程序和文档C)算法加数据结构 D)程序、数据和相关文档的集合3. 下列选项中不属于软件生命周期开发阶段任务的是_。A)软件测试B)概要设计 C)软件维护D)详细设计4. 下列描述中正确的是_A)软件工程只是解决软件项目的管理问题B)软件工程主要解决软件产品的生产率问题C)软件工程的主要思想是强调在软件开发过程中需要应用工程化原则D)软件工程只是解决软件开发中的技术问题5. 下列叙述中正确的是_A)软件交付使用后还需要进行维护B)软件一旦交付使用就不需要再进行维护C)软件交付使用后其生命周期就结束D)软件
16、维护是指修复程序中被破坏的指令6. 下列描述中正确的是 _A)程序就是软件B)软件开发不受计算机系统的限制C)软件既是逻辑实体,又是物理实体D)软件是程序、数据与相关文档的集合7. 数据流图中带有箭头的线段表示的是_A)控制流C)模块调用B)事件驱动D)数据流8. 在软件开发中,需求分析阶段可以使用的工具是_A)N-S 图B)DFD 图C)PAD 图D)程序流程图9. 在软件开发中,需求分析阶段产生的主要文档是_A)可行性分析报告 B)软件需求规格说明书 C)概要设计说明书 D)集成测试计划10. 程序流程图中带有箭头的线段表示的是_A)图元关系 B)数据流 C)控制流 D)调用关系11. 软
17、件设计中模块划分应遵循的准则是_A)低内聚低耦合 B)高内聚低耦合 C)低内聚高耦合 D)高内聚高耦合12. 在结构化程序设计中,模块划分的原则是_A)各模块应包括尽量多的功能B)各模块的规模应尽量大C)各模块之间的联系应尽量紧密D)模块内具有高内聚度、模块间具有低耦合度13. 下列选项中不符合良好程序设计风格的是_。A)源程序要文档化B)数据说明的次序要规范化C)避免滥用goto语句D)模块设计要保证高耦合、高内聚14. 从工程管理角度,软件设计一般分为两步完成,它们是_。A)概要设计与详细设计B)数据设计与接口设计C)软件结构设计与数据设计D)过程设计与数据设计15. 两个或两个以上模块之
18、间关联的紧密程度称为_ A)耦合度 B)内聚度 C)复杂度 D)数据传输特性16. 在软件设计中,不属于过程设计工具的是_A)PDL(过程设计语言) B)PAD图 C)N-S图 D)DFD图17. 为了使模块尽可能独立,要求 _A)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强18. 下面叙述中错误的是_A)软件测试的目的是发现并改正错误B)对被调试的程序进行“错误定位”是程序调试的必要步骤C)程序调试通常也称为Debug
19、D)软件测试应严格执行测试计划,排除测试的随意性19. 下列叙述中正确的是_A)软件测试的主要目的是发现程序中的错误B)软件测试的主要目的是确定程序中错误的位置C)为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作D)软件测试是证明软件没有错误 20. 下列叙述中正确的是 _A)软件测试应该由程序开发者来完成 B)程序经调试后一般不需要再测试 C)软件维护只包括对程序代码的维护 D)以上三种说法都不对21. 下列对于软件的描述中正确的是_A)软件测试的目的是证明程序是否正确B)软件测试的目的是使程序运行结果正确C)软件测试的目的是尽可能多地发现程序中的错误D)软件测试的目的是使程
20、序符合结构化原则22. 软件调试的目的是_A)发现错误 B)改正错误C)改善软件的性能 D)验证软件的正确性二、填空题1、软件工程三要素包括方法、工具和过程,其中,_支持软件开发的各个环节。2、软件生命周期可分为多个阶段,一般分为定义阶段、开发阶段和维护阶段。编码和测试属于_阶段。3、软件需求规格说明书应具有完整性、无歧义性、正确性、可验证性、可修改性等特性,其中最重要的是_。4、程序流程图中的菱形框表示的是 _5、软件测试可分为白盒测试和黑盒测试。基本路径测试属于_测试。6、按照软件测试的一般步骤,集成测试应在_测试之后进行。7、测试用例包括输入集和_值集。8、在两种基本测试方法中, _测试的原则之一是保证所测模块中每一个独立路径至少要执行一次。9、程序测试分为静态分析和动态测试,其中_是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。10、_的任务是诊断和改正程序中的错误。综合自测参考答案一、选择题1.A 2.D 3.C 4.C 5.A 6.D 7.D 8.B 9.B 10.C11.B 12.D 13.D 14.A 15.A 16.D 17.B 18.A 19.A 20.D 21.C 22.B 二、填空题1. 过程2. 开发阶段3. 正确性4. 判断或条件5. 白盒6. 单元7. 输出8. 路劲覆盖9. 静态分析10. 程序调试
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1