2023年软件工程本科复习重点难点.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 软件工程 本科 复习 重点难点
- 资源描述:
-
软件工程(本科)复习重点难点 重点规定是以软件工程课程的教学大纲为依据,目的在于使学生理清思绪,分清主次。为本课程的期末复习提供参考。 一、 各章重点、难点和复习规定说明 第一章软件工程概述 1. 重点掌握的内容: 软件和软件工程的基本概念 软件:软件定义由以下三部分组成: (1) 在运营中能提供所希望的功能和性能的指令集(即程序); (2) 使程序可以对的运营的数据结构; (3) 描述程序研制过程、方法所用的文挡。 软件是一种产品,同时又是开发和运营产品的载体。作为一种产品,它表达了由计算机硬件体现的计算潜能。作为开发运营产品的载体,软件是计算机工作的基础、信息通信的基础,也是创建和控制其他程序的基础。 软件的特点: ①软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。② 软件是通过人们的智力活动,把知识与技术转化成信息的一种产品,是在研制、开发中被发明出来的。③在软件的运营和使用期间,没有硬件那样的机械磨损、老化问题。④软件的开发和运营经常受到计算机系统的限制,对计算机系统有着不同限度的依赖性。⑤软件的开发至今尚未完全摆脱手工的开发方式。⑥软件的开发费用越来越高,成本相称昂贵。 软件工程:是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把通过时间考验而证明对的的管理技术和当前可以得到的最佳的技术方法结合起来。 软件工程准则可以概括为七条基本原理: (1)用分阶段的生存周期计划严格管理; (2)坚持进行阶段评审; (3)实行严格的产品控制; (4)采用现代程序设计技术; (5)结果应能清楚地审查结果; (6)开发小组的人员应当少而精 (7)认可不断改善软件工程实践的必要性。具体阐述见书中1.2.2节。 软件危机:指的是软件开发和维护过程中碰到的一系列严重问题。 软件工程的基本内容:软件工程学的内容可涉及理论、结构、方法、工具、环境、管理、规范等。 第二章 软件过程 1. 重点掌握的内容:软件生存周期及软件开发的各种模型; 软件生存周期:一个软件从定义到开发、使用和维护,直到最终被弃用,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存周期。软件生存周期一般可分为以下阶段: ·问题定义 ·需求分析与可行性研究 ·设计 ·编码 ·测试 ·运营与维护 软件开发模型:软件开发模型是跨越整个软件生存周期的系统开发、运作、维护所实行的所有工作和任务的结构框架。瀑布模型即生存周期模型,由B.M.Boehm提出,是软件工程的基础模型。其核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作。采用结构化的分析与设计方法,将逻辑实现与物理实现分开。此外,尚有螺旋模型、第四代技术模型、原型模型、构件组装模型、混合模型等软件开发模型。 第三章 需求分析 1. 重点掌握的内容:需求分析的方法和面向数据流的分析方法;。 需求分析的方法:需求分析方法由对软件的数据域和功能域的系统分析过程及其表达方法组成,它定义了表达系统逻辑视图和物理视图的方式,大多数的需求分析方法是由数据驱动的,也就是说,这些方法提供了一种表达数据域的机制,分析员根据这种表达,拟定软件功能及其他特性,最终建立一个待开发软件的抽象模型,即目的系统的逻辑模型。 面向数据流的需求分析方法:结构化分析方法是面向数据流进行需求分析的方法。结构化分析方法使用数据流图DFD与数据字典DD来描述,面向数据流问题的需求分析适合于数据解决类型软件的需求描述。其核心思想是分解化简问题,将物理与逻辑表达分开,对系统进行数据与逻辑的抽象。具体来说,结构化分析方法就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能规定的所有可实现的软件为止。重点掌握结合实例画数据流图和定义数据字典。 系统流程图:系统流程图是描绘物理系统的传统工具。它的基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件(程序,文献,数据库,表格,人工过程等等)。系统流程图表达的是部件的信息流程,而不表达对信息进行加工解决的控制过程。详见2.3节。 系统流程图的功能:1.制作系统流程图的过程是系统分析员全面了解系统业务解决概况的过程,它是系统分析员作进一步分析的依据。2.系统流程图是系统分析员、管理人员、业务操作人员互相交流的工具。3.系统分析员可直接运用系统流程图画出可以实现计算机解决的部分。4.可运用系统流程图来分析业务流程的合理性。 2.一般掌握的内容: 需求分析的任务和原则。. 需求分析的任务:它的基本任务是准确地回答“系统必须做什么?”这个问题。需求分析所要做的工作是进一步描述软件的功能和性能,拟定软件设计的限制和软件同其它系统元素的接口细节,定义软件的其它有效性需求。需求分析的任务不是拟定系统如何完毕它的工作,而是拟定系统必须完毕哪些工作,也就是对目的系统提出完整、准确、清楚、具体的规定。其实现环节如下图所示: 当前系统 物理模型 逻辑模型当前系统 逻辑模型当前系统 物理模型 目的系统 模型化 抽象化 理解需求 怎么做 做什么 具体化 实例化 表达需求 一般说来,需求分析阶段的任务涉及下述几方面: ①拟定对系统的综合需求 对系统的综合需求重要有:系统功能需求、系统性能需求、运营需求、将来也许提出的需求。 ②分析系统的数据需求 ③导出系统的逻辑模型 就是在理解当前系统“如何做”的基础上,抽取其“做什么”的本质,明确目的系统要“做什么”,可以导出系统的具体的逻辑模型。具体做法是:一方面拟定目的系统与当前系统的逻辑差别;然后将变化部分看作是新的解决环节,对功能图(一般为数据流图)及对象图进行调整;最后由外及里对变化的部分进行分析,推断其结构,获得目的系统的逻辑模型。通常用数据流图、数据字典和重要的解决算法描述这个逻辑模型。 ④修正系统开发计划 在通过需求分析阶段的工作,分析员对目的系统有了更进一步更具体的结识,因此可以对系统的成本和进度做出更准确的估计,在此基础上应当对开发计划进行修正。 ⑤开发原型系统 使用原型系统的重要目的是,使用户通过实践获得关于未来的系统将如何为他们工作的更直接更具体的概念,从而可以更准确地提出和拟定他们的规定。 需求分析的环节:1.调查研究;2.分析与综合;3.书写文档;4.需求分析评审 需求分析的原则:其基本原则可概括为: (1)必须可以表达和理解问题的数据域和功能域;(2)按自顶向下、逐层分解问题;(3)要给出系统的逻辑视图和物理视图; 2. 可行性研究的任务和环节,成本效益分析 可行性研究的任务:是用最小的代价在尽也许短的时间内拟定问题是否可以解决。一般说来,应从经济可行性、技术可行性、运营可行性、法律可行性和开发方案等方面研究可行性。 可行性研究的环节:可行性研究的环节分为九个环节。 成本效益分析:成本/效益分析的目的是要从经济角度分析开发一个特定的新系统是否可行,从而帮助使用部门负责人对的地做出是否投资于这项开发工程的决定。几种度量效益的方法:1.货币的时间价值;2.投资回收期;3.纯收入。 第四章 结构化设计 1. 重点掌握的内容: 结构化设计的过程和方法 概要设计任务: ①系统分析员审查软件计划、软件需求分析提供的文档,提出最佳推荐方案,用系统流程图,组成系统物理元素清单,成本效益分析,系统的进度计划,供专家审定,审定后进入设计。 ②拟定模块结构,划分功能模块,将软件功能需求分派给所划分的最小单元模块。拟定模块间的联系,拟定数据结构、文献结构、数据库模式,拟定测试方法与策略。 ③ 编写概要设计说明书,用户手册,测试计划,选用相关的软件工具来描述软件结构,结构图是经常使用的软件描述工具。选择分解功能与划分模块的设计原则,例如模块划分独立性原则,信息隐蔽原则等。 概要设计过程:概要设计要先进行系统设计,复审系记录划与需求分析,拟定系统具体的实行方案;然后进行结构设计,拟定软件结构。 软件设计的概念与原则: ①将软件划提成若干独立成分的依据。 ②如何表达不同的成分内的功能细节和数据结构。 ③如何统一衡量软件设计的技术质量。 其中有几个概念:1.模块化:就是把程序划提成若干个模块,每个模块具有一个子功能,把这些模块集总起来组成一个整体,可以完毕指定的功能,实现问题的规定。2. 抽象:就是抽出事物的本质特性而暂时不考虑它们的细节。3. 信息隐蔽: 模块中所涉及的信息不允许其它不需要这些信息的模块调用。4. 信息局部化:是指把一些关系密切的软件元素物理地放得彼此靠近。5. 模块独立性:是软件系统中每个模块只涉及软件规定的具体子功能,而和软件系统中其他的模块接口是简朴的。模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。6. 耦合:是对一个软件结构内各个模块之间互连限度的度量。耦合强弱取决于模块间接口的复杂限度,调用模块的方式,以及通过接口的信息。7. 内聚:标志一个模块内各个元素彼此结合的紧密限度,它是信息隐蔽和局部化概念的自然扩展。 概要设计的方法:面向数据流的设计方法把信息流映射成软件结构,信息流的类型决定了映射的方法。面向数据流的设计要解决的任务,就是上述需求分析的基础上,将DFD图映射为软件系统的结构。换句话说,这类设计方法允许把用DFD图表达的系统逻辑模型方便地转换成对于软件结构的初始设计描述。理解基本概念:信息流(涉及变换流和事务流)、抽象与逐步求精;模块化与信息隐藏;软件总体结构、数据结构与软件过程。 面向数据结构的分析设计方法: ①Jackson系统开发方法(JSD): Jackson系统开发方法(JSD,Jackson System Development)是一种典型的面向数据结构的分析设计方法,它是以信息驱动的,是将信息转换成软件的程序结构。 ② Warnier方法 :Warnier程序设计方法是由法国人J.D.Warnier提出的另一种面向数据结构的设计方法,又称为逻辑构造程序的方法,简称LCP(Logical Construction of Programs)方法。Warnier方法的原理和Jackson方法类似,也是从数据结构出发设计程序,但是这种方法的逻辑更严格。 2. 一般掌握的内容: 概要设计的文档与评审 学会撰写概要设计的文档并能评审出概要设计文档是否符合规定。概要设计说明书的重要内容及结构详见4.5节。 具体设计 1. 重点掌握的内容:具体设计的任务和方法 具体设计的任务:具体设计就是要在概要设计的结果的基础上,考虑“如何实现”这个软件系统,直到对系统中的每个模块给出足够具体的过程性描述。重要任务如下:①为每个模块拟定采用的算法,选择某种适当的工具表达算法的过程,写出模块的具体过程性描述;②拟定每一模块使用的数据结构;③拟定模块接口的细节,涉及对系统外部的接口和用户界面,对系统内部其它模块的接口,以及模块输入数据、输出数据及局部数据的所有细节。④要为每一个模块设计出一组测试用例,以便在编码阶段对模块代码(即程序)进行预定的测试,模块的测试用例是软件测试计划的重要组成部分,通常应涉及输入数据,盼望输出等内容。 具体设计的方法:程序流程图、N-S图、PAD图、HIPO图 程序流程图:程序流程图又称之为程序框图,它是软件开发者最熟悉的一种算法表达工具。它独立于任何一种程序设计语言,比较直观和清楚地描述过程的控制流程,易于学习掌握。在流程图中只能使用下述的五种基本控制结构。①顺序型;②选择型;③ while型循环;④ until型循环;⑤ 多情况型选择。详见5.2.1节。 N-S图:Nassi和Shneiderman提出了一种符合结构化程序设计原则的图形描述工具,称为盒图,又称为N-S图。在N-S图中,为了表达五种基本控制结构,规定了五种图形构件。①顺序型;② 选择型;③ WHILE反复型;④ UNTIL反复型; ⑤ 多分支选择型。 PAD图:它是用结构化程序设计思想表现程序逻辑结构的图形工具。PAD也设立了五种基本控制结构的图示,并允许递归使用。详见5.2.3节。 HIPO图:HIPO图是由一组IPO图加一张HC图组成。它是美国IBM公司在软件设计中使用的重要表达工具。 HC图是层次图(Hierarchy chart)的英文缩写,用于表达软件的分层结构。HC图中的每一个模块,均可用一张IPO图来描述。IPO 图由输入、解决和输出三个框组成,需要时还可以增长一个数据文献框,这种图形的优点,是可以直观地显示输入—解决—输出三者之间的联系。 2. 一般掌握的内容: 具体设计的原则及具体设计规格与评审 具体设计的原则:原则是过程描述是否易于理解、复审和维护,进而过程描述可以自然地转换成代码,并保证具体设计与代码完全一致。 具体设计规格与评审:具体设计说明书的框架及评审 第5章 结构化实现 1. 重点掌握的内容: 程序设计语言的特点、编程风格、程序效率和编程安全;结构化的软件测试 程序设计语言的特点: 程序设计语言是人与计算机交流的媒介。软件工程师应当了解程序设计语言各方面的特点,以及这些特点对软件质量的影响,以便在需要为一个特定的开发项目选择语言时,能作出合理的技术抉择。其特点表现为九个方面:①名字说明;②类型说明;③初始化;④程序对象的局部性;⑤程序模块;⑥循环控制结构;⑦分支控制结构;⑧ 异常解决;⑨独立编译。 编程风格:编码风格又称程序设计风格或编程风格,事实上指编程的原则。表现为四个方面:源程序文档化,数据说明的方法,语句结构和输入/输出方法。 源程序文档化:源程序文档化又可从四个方面来阐述,①符号名的命名;②程序的注释;③标准的书写格式; 数据说明:数据说明的顺序应当规范化。使数据属性容易查找,也有助于测试,排错和维护。 语句结构:语句构造力求简朴、直接,不能为了片面追求效率而使语句复杂化。可从以下几方面注意:1.使用标准的控制结构;2.尽也许使用库函数;3.程序编写一方面应当考虑清楚性;4.注意使用GOTO语句; 输入/输出方法:输入/输出的方式和格式应当尽量作到对用户友善(User Friendly),尽也许方便用户的使用。 程序效率:程序效率是指程序的执行速度及程序占用的存储空间。影响程序效率的因素是多方面的, 编程安全:提高软件质量和可靠性的技术大体可分为两类,一类是避开错误技术,即在开发的过程中不让差错潜入软件的技术;另一类是容错技术,即对某些无法避开的差错,使其影响减至最小的技术;避开错误技术是进行质量管理,实现产品应有质量所必不可少的技术,也就是软件工程中所讨论的先进的软件分析和开发技术和管理技术。但是,无论使用多么高明的避开错误技术,也无法做到完美无缺和绝无错误,这就需要采用容错技术。实现容错的重要手段是冗余和防错程序设计。 结构化的软件测试:软件测试在程序员对每一个模块的编码之后先做程序测试,再做单元测试,然后再进行集成(综合或组装)测试,系统测试,验收(确认)测试,平行测试,人工测试,其中单元测试的一部分己在编码阶段就开始了。 测试:就是用已知的输入在已知环境中动态地执行系统(或系统的“部件”)。假如测试结果和预期结果不一致,则很也许是发现了系统中的错误。 软件测试:软件测试是对软件计划、软件设计、软件编码进行查错和纠错的活动(涉及代码执行活动与人工活动)。 程序测试:是对编码阶段的语法错、语义错、运营错进行查找的代码执行活动。找出编码中错误的代码执行活动称程序测试。纠正编码中的错误的执行活动称程序调试。程序测试的目的是查找编码错与纠正编码错,保证算法的正的确现。 测试的原则: (1)测试前要认定被测试软件有错,不要认为软件没有错。 (2)要预先拟定被测试软件的测试结果。 (3)要尽量避免测试自己编写的程序。 (4)测试要兼顾合理输入与不合理输入数据。 (5)测试要以软件需求规格说明书为标准。 (6)要明确找到的新错与已找到的旧错成正比。 (7)测试是相对的,不能穷尽所有的测试,要据人力物力安排测试,并选择好测试用例与测试方法。 (8)测试用例留作测试报告与以后的反复测试用,重新验证纠错的程序是否有错。 测试方法:按照测试过程是否在实际应用环境中来分,有静态分析与动态测试。测试方法有分析方法(涉及静态分析法与白盒法)与非分析方法(称黑盒法)。 静态分析技术:不执行被测软件,可对需求分析说明书、软件设计说明书、源程序做结构检查、流程分析、符号执行来找出软件错误。 动态测试技术:当把程序作为一个函数,输入的全体称为函数的定义域,输出的全体称为函数的值域,函数则描述了输入的定义域与输出值域的关系。这样动态测试的算法可归纳为: ①选取定义域中的有效值,或定义域外无效值。 ②对已选取值决定预期的结果。 ③用选取值执行程序。 ④观测程序行为,记录执行结果。 ⑤将④的结果与②的结果相比较,不吻合则程序有错。 动态测试既可以采用白盒法对模块进行逻辑结构的测试,又可以用黑盒法做功能结枸的测试、接口的测试,都是以执行程序并分析执行结果来查错的。 白盒法:是通过度析程序内部的逻辑与执行路线来设计测试用例,进行测试的方法,白盒法也称逻辑驱动方法。白盒法的具体设计程序测试用例的方法有:语句覆盖、分支(鉴定)覆盖、条件覆盖、途径覆盖(或条件组合覆盖),重要目的是提高测试的覆盖率。 黑盒法:是功能驱动方法,仅根据I/O数据条件来设计测试用例,而不管程序的内部结构与途径如何。黑盒法的具体设计程序测试用例的方法有:等价类划分法,边界值分析法,错误推测法,重要目的是设法以最少测试数据子集来尽也许多的测试软件程序的错误。 设计测试方案: 测试方案涉及预定要测试的功能,应当输入的测试数据和预期的结果,其中最困难的问题是设计测试用的输入数据(即测试用例)。通常的做法是,用黑盒法设计基本的测试方案,再用白盒法补充一些方案。详见8.7.2节中的例子。 软件测试的环节:软件测试的环节详见8.7.3节中的图8-8测试环节。 单元测试:单元测试也称模块测试、逻辑测试、结构测试,测试的方法一般采用白盒法,以途径覆盖为最佳测试准则。 集成测试:单元测试之后便进入组装测试。尽管模拟了驱动模块和存根模块进行单元测试,由于测试不能穷尽,单元测试又会引入新错误,单元测试后肯定会有隐藏错误,组装不也许一次成功,必须经测试后才干成功。集成测试分为增式组装测试和非增式组装测试,所谓非增式组装,按照结构图一次性将各单元模块组装起来。所谓增式组装是指按照结构图自顶向下或自底向上逐渐安装。 确认测试:确认测试也称合格测试或称验收测试。组装后己成为完整的软件包,消除了接口的错误。确认测试重要由使用用户参与测试,检查软件规格说明的技术标准的符合限度,是保证软件质量的最后关键环节。 系统测试:一般的系统除了确认测试外还要做如下几个方面的系统测试 ①恢复测试 通过系统的修复能力,检测重新初始化,数据恢复,重新启动,检查点设立机构是否对的,以及人工干预的平均恢复时间是否在允许范围内。 ②安全测试 设计测试用例,突破软件安全保护的机构安全保密措施,检查系统是否安全保密的漏洞。 ③强度测试 设计测试用例,检查系统的能力最高能达成什么实际的限度,让系统处在资源的异常数量、异常频率、异常批量的条件下运营测试系统的承受能力。一般取比平常限度高5一10倍的限度做测试用例。 ④性能测试 设计测试用例测试并记录软件运营性能,与性能规定比较,看是否达成性能规定规格。这项测试经常与强度测试相结合进行。 1. 一般掌握内容:软件维护过程 软件维护:软件运营/维护阶段对软件产品所进行的修改就是维护。 维护的问题:软件维护存在的绝大多数问题,都是由于软件定义和软件开发的方法有问题。在软件生命周期的头两个时期没有严格而又科学的管理和规划,几乎必然会导致在最后阶段出现问题。 软件维护环节及组织:为了对的、有效地修改,需要经历以下三个环节:1.分析和理解程序;2.修改程序;3.重新验证程序;4.维护组织。 第六章 面向对象的分析和设计方法 1.重点掌握的内容: 面向对象的基本概念和特性 面向对象的基本概念: 面向对象不仅是一些具体的软件开发技术与策略,并且是一整套关于如何看待软件系统与现实世界的关系,以什么观点来研究问题并进行求解,以及如何进行系统构造的软件方法学。而面向对象方法是一种运用对象、类、继承、封装、聚合、消息传送、多态性等概念来构造系统的软件开发方法。面向对象方法的基本思想是,从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在系统构造中尽也许运用人类的自然思维方式。面向对象的几个重要概念:对象、消息、方法性、继承性、封装性等。详见6.1.3节。 面向对象方法的基本特性: ①从问题域中客观存在的事物出发来构造软件系统,用对象作为对这些事物的抽象表达,并以此作为系统的基本构成单位。 ②事物的静态特性(即可以用一些数据来表达的特性)用对象的属性表达,事物的动态特性(即事物的行为)用对象的服务(或操作)表达。 ③对象的属性与服务结合为一体,成为一个独立的实体,对外屏蔽其内部细节(称作封装)。 ④对事物进行分类。把具有相同属性和相同服务的对象归为一类,类是这些对象的抽象描述,每个对象是它的类的一个实例。 ⑤通过在不同限度上运用抽象的原则(较多或较少地忽略事物之间的差异),可以得到较一般的类和较特殊的类。特殊类继承一般类的属性与服务,面向对象方法支持对这种继承关系的描述与实现,从而简化系统的构造过程及其文档。 ⑥复杂的对象可以用简朴的对象作为其构成部分,称作聚合。 ⑦对象之间通过消息进行通信,以实现对象之间的动态联系。 ⑧通过关联表达对象之间的静态关系。 3. 一般掌握的内容: 面向对象分析与设计方法面向对象程序设计环节 面向对象分析方法:目前出现有OOA与OOD方法。 面向对象设计方法:OOA与OOD的职责划分是:OOA针对问题域运用OO方法,建立一个反映问题域的OOA模型,不考虑与系统的具体实现有关的因素(例如采用什么编程语言、图形用户界面、数据库等等),从而使OOA模型独立于具体的实现。OOD则是针对系统的一个具体的实现运用OO方法。其中涉及两方面的工作,一是把OOA模型直接搬到OOD(不通过转换,仅作某些必要的修改和调整),作为OOD的一个部分;二是针对具体实现中的人机界面、数据存储、任务管理等因素补充一些与实现有关的部分。这些部分与OOA采用相同的表达法和模型结构。 第11章 项目计划与管理 1. 重点掌握的内容:软件项目特点及软件管理功能 软件项目特点: 软件产品与其他任何产品不同,它是无形的,完全没有物理属性。其特点表现为:①智力密集,可见性差;②单件生产:在特定机型上,运用特定硬件配置,由特定的系统软件或支撑软件的支持,形成了特定的开发环境;③劳动密集,自动化限度低:④使用方法繁琐,维护困难;⑤软件工作渗透了人的因素。 软件管理的功能:软件管理的重要功能涉及:①制定计划:规定待完毕的任务、规定、资源、人力和进度等;②建立组织项目:为实行计划,保证任务的完毕,需要建立分工明确的责任机构;③配备人员:任用各种层次的技术人员和管理人员;④指导:鼓励和动员软件人员完毕所分派的情况。 2. 一般掌握的内容:软件配置管理的过程 软件配置管理的过程:软件配置管理SCM除了承担控制变化之外,它还要担负标记单个的SCI和软件各种版本、审查软件配置以保证开发得以正常进行,以及报告所有加在配置上的变化等任务。 关于SCM需要考虑这样一些问题: (1)采用什么方式标记和管理许多已存在的程序的各种版本?使得变化可以有效地实现。 (2)在软件交付用户之前和之后,如何控制变化? (3)谁有权批准和对变化安排优先级? (4)如何保证变化得以对的地实行? (5)运用什么办法估计变化也许引起的其它问题? 这些问题归结到SCM的五个任务,即标记、版本控制、修改控制、配置审计和配置报告 ①标记配置对象 为了控制和管理的方便,所有SCI都应按面向对象的方式命名并组织起来。此时,对象分为基本对象和组合对象,基本对象指在分析、设计、编码或测试阶段由开发人员创建的某个“单位正文描述”,复合对象指由若干基本对象和复合对象组合而成的对象,它由“数据模型”和“模块N”等基本对象组合而成。 每个配置对象都拥有名字、描述、资源列表和实际存在体四个部分。对象名一般为字符串;对象描述涉及若干数据项,它们指明对象的类型(例如,文档、程序还是数据)、所属工程项目的标志及变动和版本的有关信息;资源列表给出该对象规定、引用、解决和提供的所有实体,如数据类型、特殊函数等,有时变量也被看作资源;只有基本对象才有实际存在体,它是指向该对象“单元正文描述”的一个指针,复合对象此项取null值。 除了标记配置对象外,还必须指明对象之间的关系,一个对象可标记为另一复合对象的一部分,即此两对象之间存在一个<part-of>关系。若干<part-of>关系可定义出对象之间的分层结构。例如: “E-R图1.4” <part-of> “数据模型”。 ②版本控制 配置管理的版本控制重要解决下列问题: (1)根据不同用户的需要配置不同的系统; (2)保存系统老版本,为以后调查问题使用; (3)建立一个系统新版本,使它涉及某些决策; (4)支持两为位以上工程师同时在一个项目工作; (5)高效存储项目的多个版本。 ③修改控制 所谓修改控制,即把人的努力与自动工具结合起来,建立一套机制,故意识地控制软件修改。 ④配置审计 确认修改是否已正的确施有两种措施,一种是正式的技术复审,另一种是软件配置审计。 正式的技术复审着重考虑所修改对象在技术上的对的性,复审人员应对该对象是否与其他SCI协调以及在修改中也许产生的疏忽和副作用进行全面的评估。软件配置审计作为一种补救措施,重要考虑下列在正式技术复审中未被考虑的因素: (1)控制变动命令指出的修改是否都已完毕?还另加了哪些修改? (2)是否做过正式技术复审? (3)是否严格遵守软件工程标准? (4)修改过的SCI是否做了特别标记?修改的日期和执行修改的人员是否已经注册?该SCI的属性是否可以反映本次修改的结果? (5)是否完毕与本次修改有关的注释、记录和报告等事宜? (6)所有相关的SCI是否已一并修改? 二、 考试题型 笔试题型和解题基本规定 考试题型可以有选择、填空、判断、简答题、建模题等。 选择、填空题、判断、简答题重要考核学生对基本概念的理解和掌握限度。 建模题重要考核学生对所学知识的应用能力。 例如: 选择: 1. 一个成功的测试可以( )。 A、 表白程序没有错误 B、发现所有错误 C、提高软件可靠性 D、发现尚未发现的错误 2. 黑盒技术设计测试用例的方法之一为( )。 A、因果图 B、逻辑覆盖 C、等价值划分 D、基本途径测试 3. 在软件维护的内容中,占维护活动工作量比例最高的是( )。 A、校正性维护 B、适应性维护 C、完善性维护 D、防止性维护 4. 软件维护的副作用,是指( )。 A、开发时的错误 B、隐含的错误 C、因修改软件而导致的错误 D、运营时误操作 5. 增量模型本质上是一种( )。 A、线性顺序模型 B、整体开发模型 C、非整体开发模型 D、快速原型模型 6. 在快速原型的开发过程中,用于及早向用户提交原型系统的原形模型是( )。 A、探索型原型 B、实验型原型 C、演化型原型 D、增量构造原型 7. 采用Gantt图表达软件项目进度安排,下列说法中对的的是( ) A、可以反映多个任务之间的复杂关系 B、可以直观表达任务之间互相依赖制约关系 C、可以表达哪些任务是关键任务 D、可以表达子任务之间的并行和串行关系 8. 对象模型由一个或若干( )组成。 A、对象 B、模板 C、属性 D、数据流图 填空: 1. 软件工程研究的重要内容是软件开发技术和_______________两个方面。 2. 经济可行性研究范围涉及________________、公司经营长期策略、开发所需的成本和资源、潜在的市场前景。 3. 数据流图和数据字典共同构成了系统的__________模型,是需求规格说明书的重要组成部分。 4. 结构化设计方法中,要把数据流图转换成软件结构,若某个加工将它的输入流分离成许多发散的数据流,形成许多加工途径,并根据输入的值选择其中一个途径来执行,这种特性的DFD称为____________的数据流图。 5. 软件生存期的六个环节,即制定计划、_________、设计、_________、测试及_________。 6. 调试的目的是拟定错误的因素和位置并改正错误,因此调试应当由_________进行。 7. 在建立对象的功能模型时,使用的数据流图中包具有解决、数据流、动作对象和_______。 判断: 1. 在软件生命周期中,需求的变动引入得越早,付出的代价越高,引入得越晚,付出的代价越低。 2. 快速原型方法就是快速建立一个能反映用户重要需求的原型系统,让用户试用,提出修改意见,逐渐修改,最终使原型修改成用户满意的产品。 3. 实践表白内聚更重要,应当把更多的注意力集中到提高模块的内聚限度上。 4. 软件开发活动不是个体劳动的神秘技巧。 5. VSS是一种编程语言。 6. 软件开发组织中,民主制程序员组方法因其民主性易调动程序员的个人发明力,从而适合于各种应用开发环境。 7. 在对数据流图分层细化时,当把一个解决分解成为一系列解决时,分解前和分解后的输入输出数据流应当相同。 8. 软件是程序。 9. 算法就是计算方法。 简答题: 重要考核学生通过学习本课程获得的综合分析问题的能力。 1. 简述文档在软件工程中的作用。 2. 简述软件工程目的和面临的重要问题。 3. 说明对象模型的特性,举现实世界的例子,给出它的一般关系、聚集关系的描述。 4. 请使用流程图、PAD图描述下列程序的算法。 输入三个正整数作为边长,判断该三条边构成的三角形是等边、等腰还是一般三角形。 五、建模题 数据流程图 软件结构图展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




2023年软件工程本科复习重点难点.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/4554374.html