软件工程复习资料.doc_第1页
软件工程复习资料.doc_第2页
软件工程复习资料.doc_第3页
软件工程复习资料.doc_第4页
软件工程复习资料.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程复习资料一、 熟悉和理解(一) 软件工程概述1 螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动,关键不足在于不能适应需求的动态变更。2 软件不只是用程序设计语言(如PASCAL ,C,VISUAL BASIC 等)编写的程序,编写程序代码只是软件开发的一个部分。 3 快速原型模型可以有效地适应用户需求的动态变化。 4 生产高质量的软件产品是软件工程的首要目标。5 软件开发人员对用户需求的理解有偏差,这将导致软件产品与用户的需求不一致,是产生软件危机的一个原因。6 开发一个软件项目总存在某些不确定性,即存在风险.有些风险如果控制得不好,可能导致灾难性的后果。7 缺乏处理大型软件项目的经验.是产生软件危机的一个原因。8 瀑布模型本质上是一种线性顺序模型,增量模型本质上是一种快速原型模型。9 可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据,因必须给出可行或不可行的回答。10 软件生存周期模型包括瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型等。11 软件是一种逻辑产品。12 “软件危机”是指软件开发和维护中出现的一系列问题,成本高、生产率低、质量得不到保证、需求不能充分理解都是是软件危机的表现形式。 13 原型化方法是用户和设计者之间执行的一种交互过程,适用于需求不确定性高的系统。14 软件工程中的各种方法是完成软件工程项目的技术手段,它们支持软件工程的各个阶段.15 研究开发所需要的成本和资源是属于可行性研究中的经济可行性研究的一方面。16 快速原型模型的主要特点之一是及早提供工作软件。 17 软件工程由方法,工具和过程三部分组成,称软件工程的三要素.18 基于计算机系统的软件要素中的软部件由程序,数据和文档组成.19 瀑布模型是以文档为驱动、适合于软件需求明确的软件项目的模型。20 螺旋模型是风险驱动的,而瀑布模型是文档驱动的。21 从事物的组成部件及每个部件的属性,功能来认识事物.这种方法被称为面向对象的方法。22 从事物的属性侧面来描述事物的方法就是面向数据的方法。23 面向对象(Object Oriented)方法是将现实世界的事物以对象的方式映射到计算机世界的方法。(二) 软件项目管理24 一个好的开发人员应具备的素质和能力包括善于与周围人员团结协作,建立良好的人际关系,善于听取别人的意见,具有良好的书面和口头表达能力。25 为了充分发挥开发人员的潜力,缩短工期,软件工程项目的任务分解与安排应尽力挖掘可并行开发的部分。26 任务是管理有关项目工作的最小的单元。27 任务是一项已经定义得很好的工作,该工作可分配给一个项目参与者或分配给一个团队。(三) 需求分析28 软件需求是指用户对目标软件系统在功能,性能,行为,设计约束等方面的期望.29 数据流图就是用来刻画数据流和转换的信息系统建模技术。30 用户对软件需求的描述不精确,往往是产生软件危机的原因之一。31 需求分析阶段的成果主要是需求规格说明,该成果与软件设计,编码,测试直至维护都有较大关系。32 需求规格说明书是需求分析阶段最重要的技术文档之一33 需求分析最终结果是产生需求规格说明书34 DFD中的每个加工至少需要一个输入流和一个输出流。 35 需求分析阶段的任务是确定软件系统的功能36 需求分析的任务不包括系统设计。37 需求规格说明书的作用包括:作为软件验收的依据、用户与开发人员对软件要做什么的共同理解、作为软件设计的依据等 38 在结构化分析方法中,用以表达系统内数据的运动情况的工具有数据流图。39 结构化分析方法()是一种面向数据流的需求分析方法40 验证软件需求正确性的四个方面包括一致性、完整性、现实性、有效性。41 在面向对象软件开发方法中,类与类之间主要有继承和聚集的关系。42 面向对象的特征主要包括多态性、继承性、封装性。43 软件开发过程中,抽取和整理用户需求并建立问题域精确模型的过程叫面向对象的分析。(四) 概要设计44 软件概要设计的主要任务就是软件结构的设计,面向数据流的设计方法是将数据流映射成软件结构。45 软件模块之间的耦合性越弱越好。46 模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。47 内聚度标志一个模块内部各成分彼此结合的紧密程度,按其高低程度可分为七级,内聚度越高越好。48 在模块耦合性类型中,模块之间独立性最差的类型是内容耦合,在实际编程时一定要避免出现,为了提高模块的独立性,模块之间最好是数据耦合。模块耦合越弱,则说明模块的独立性强。49 在软件结构图中,扇入数大说明该模块的重用率高。50 为了提高模块的独立性,模块内部最好是功能内聚,模块的内聚性最高的是功能内聚。 51 软件结构图中,模块框之间若有直线连接,表示它们之间存在调用关系一个软件的宽度是指其控制的跨度,一个软件的深度是指其控制的层数,一个模块的扇入数是指能直接控制该模块的模块数,一个模块的扇出数是指该模块直接控制的其他模块数。52 当一个模块直接使用另一个模块的内部数据,这种模块之间的耦合为内容耦合。 53 在进行软件结构设计时应该遵循的最主要的原理是模块独立原理。54 变换型数据处理问题的工作过程大致分为三步,即取得数据,变换数据和给出数据。55 按数据流的类型,结构化设计方法有两种设计策略,它们是变换分析设计和事务分析设计。56 衡量模块的独立性的两个定性的度量标准是内聚度和耦合度。(五) 详细设计57 软件详细设计的主要任务是对算法和数据结构进行的详细设计,软件详细设计主要采用的方法是结构化程序设计。 58 过程描述语言可以用于算法和数据结构的描述。 59 结构化程序设计方法是使用三种基本控制结构构造程序,程序的三种基本控制结构是顺序,选择和循环。60 在详细设计阶段,经常采用的工具有盒图、PAD图、PDL语言、判定表和判定树等工具,其中PAD图为自动分析数据提供了有力的工具.61 盒图也称为N-S图,种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决问题.62 当模块中包含复杂的条件组合,只有判定表和判定树能够清晰地表达出各种动作之间的对应关系. 63 模块的内部过程描述就是模块内部的算法设计,它的表达形式就是详细设计语言64 程序的三种基本控制结构的共同特点是只有一个入口和一个出口。65 调试的目的是确定错误的位置和引起错误的原因,并加以改正。66 汇编语言是面向机器的,可以完成高级语言无法完成的特殊功能,如与外部设备之间的一些接口工作。(六) 编码、测试、维护67 以详细设计说明书为输入,将该输入用某种程序设计语言翻译成计算机可以理解并最终可运行的代码的过程叫编码过程。68 面向对象的开发方法中,UML是面向对象技术领域内占主导地位的标准建模语言。69 软件测试是执行程序发现并排除程序中潜伏的错误的过程。70 是对软件规格说明,软件设计和编码的最全面也是最后的审查。71 软件测试并不能发现软件中所有潜伏的错误,通过软件测试没有发现错误,不能说明软件是正确的。 72 动态测试方法中根据测试用例的设计方法不同,分为黑盒和白盒两类.73 黑盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的功能即可。74 自顶向下的渐增式测试初期一般不可以并行进行。75 在现实项目中,路径测试和穷举测试是经常难以实现。76 单元测试的测试对象是程序模块。77 计算机辅助静态分析是软件测试方法中的静态测试方法之一。78 基本路径测试、循环覆盖测试、逻辑覆盖测试属于白盒测试技术。 79 等价类划分、边界值分析测试等属于黑盒测试技术。80 逻辑覆盖一般包括语句覆盖、判定覆盖、 条件覆盖、条件/判定覆盖、边覆盖、路径覆盖等。81 将软件组装成系统的一种测试技术叫集成测试。82 软件测试中根据测试用例设计的方法的不同可分为黑盒测试和白盒测试两种,它们都属于动态测试。 83 在设计测试用例时,边界值分析是用的最多的一种黑盒测试方法。84 在进行软件测试时,首先应当进行单元测试,然后再进行集成测试,最后再进行有效性测试。85 质量保证是为了保证产品和服务充分满足消费者要求的质量而进行的有计划有组织的活动,质量保证是为了使用产品实现用户要求的功能。86 在结构测试用例设计中,有语句覆盖,条件覆盖,判定覆盖(即分支覆盖),路径覆盖,其中路径覆盖是最强的覆盖准则87 自顶向下结合的渐增式测试法,在组合模块时有两种组合策略:深度优先策略和宽度优先策略。88 为了提高测试的效率,应该选择发现错误可能性大的数据作为测试数据。 89 使用白盒测试方法时,确定测试数据应根据程序的内部逻辑和指定的覆盖标准。90 黑盒测试在设计测试用例时,主要需要研究需求规格说明与概要设计说明。91 软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为可靠性。92 软件维护是软件生命周期的最后一个阶段,软件生命周期中所花费用最多的阶段是软件维护。93 在软件维护的内容中,有四种维护:校正性维护,完善性维护,适应性维护,预防性维护,其中占维护活动工作量比例最高的是完善性维护,最少的一般是预防性维护。94 为改正软件系统中潜藏的错误而进行的维护活动称为纠错性维护。95 根据用户在软件使用过程中提出的建设性意见而进行的维护活动称为完善性维护,完善性维护可以提高或完善软件的性能。96 为适应软件运行环境的变化而修改软件的活动称为适应性维护。97 为了进一步改善软件系统的可维护性和可靠性,并为以后的改进奠定基础的软件维护称为预防性维护。98 软件中因修改软件而造成的错误称为维护的副作用。99 非结构化维护用于软件的配置中只有源代码维护。100 维护中,因误删除一个标识符而引起的错误是编码副作用。 101 软件可维护性,是指软件产品交付使用后,在实现改正潜伏的错误,改进性能等属性,适应环境变化等方面工作的难易程度。102 软件可靠性是指在给定的时间间隔内,程序成功运行的概率。103 由于维护或在维护过程中其他一些不期望的行为引入的错误称为维护的 副作用。104 软件可修改性,是指允许对软件系统进行修改而不增加其复杂性,105 所有软件维护申请报告要按规定方式提出,该报告也称软件问题报告。二、 掌握和记忆(一) 概念1 耦合性:也称块间联系,指软件系统结构中各模块间相互联系紧密程度的一种度量。2 软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型.3 数据字典(DD):是用来定义数据流图中的各个成分的具体含义的.它以一种准确的,无二义性的说明方式为系统的分析,设计及维护提供了有关元素的一致的定义和详细的描述.4 内聚性:是模块独立性的衡量标准之一,它是模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量.5 白盒测试:又称结构测试,是已经知道产品内部工作过程,检验产品内部动作是否按规定正常使用的测试方法。6 软件生存周期:就是从提出软件产品开始,直到该软件产品被淘汰的全过程,具体包括问题定义、可行性研究、需求分析、概要设计、详细设计、编码与测试、运行和维护。7 模块化:就是将程序划分为若干个独立模块的这样一个过程,其中每个模块完成一个特定子功能,每个模块既是相对独立的,又是相互联系的,它们共同完成系统指定的各项功能。8 桩模块:用于代替所测模块调用的子模块,桩模块可以做少量的数据操作。9 驱动模块:用于模拟被测模块的上级模块。它接收测试数据,把这些数据传送给所测模块,最后再输出实际测试结果。10 模块:模块是一个拥有明确定义的输入、输出和特性的程序实体。11 模块独立性:概括了把软件划分为模块时要遵守的准则,也是判断模块构造是否合理的标准,同时也是模块化、抽象及信息隐藏概念的直接产物。12 软件工程:即运用工程学的基本原理和方法来组织和管理软件生产。13 程序的可移植性:指把一个软件(或程序)从一台计算机环境移植到另一台计算机环境的容易程度。14 模块的作用范围:一个模块的作用范围是指受该模块内一个判定影响的所有模块的集合。15 信息隐藏:信息隐蔽是指在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说是不能访问的。16 集成测试也称组装测试或联合测试。是指在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统进行的测试。组装模块的方式有两种:渐增式测试和非渐增式测试。17 类:某些对象共同特征(属性和操作)的表示。18 对象:是现实世界中个体或事物的抽象表示,是其属性和相关操作的封装。19 继承:是现实世界中遗传关系的直接模型,它表示类间的内在联系以及对属性和操作的共享。20 聚集:现实世界中部分-整体关系的模拟。21 消息:对象与外部世界相互关联的唯一途径。(二) 原理1、螺旋模型的适应场合:支持需求不明确,特别是大型软件系统的开发,并支持面向规格说明,面向过程,面向对象等多种软件开发方法,是一种具有广阔前景的模型。2、 软件开发风险分析实际上就是贯穿于软件工程过程中的一系列风险管理步骤,它包括以下内容:1)风险标识;2)风险估算;3)风险评价;4)风险驾驭和监控。3、 需求分析的任务是确定待开发的软件系统做什么.具体任务包括确定软件系统的功能需求,性能需求和运行环境约束,编制软件需求规格说明书,软件系统的验收测试准则和初步的用户手册。4、 快速原型技术的基本思想是:在软件开发的早期,快速开发一个目标软件系统的原型,让用户对其进行评价并提出修改意见,然后开发人员根据用户的意见对原型进行改进。5、 原型法模型一般适应的场合:它适合于那些不能预先确切定义需求的软件系统的开发,更适合于那些项目组成员(包括分析员,设计员,程序员和用户)不能很好交流或通信有困难的情况。6、 软件复杂性度量的主要参数极其含义:1)规模:总共的指令数或源程序行数;2)难度:通常由程序中出现的操作数的数目所决定的量来表示;3)结构:通常用与程序结构有关的度量来表示;4)智能度:即算法的难易程序。7、 非渐增式测试与渐增式测试的区别:非渐增式测试:分别测试每个模块,再放在一起结合成所要的程序; 渐增式测试:将下一个要测试的模块同已测试好的模块放在一起测试,类推结合成所要的程序;优缺点:l 渐增式测试可以较早发现模块间的接口错误l 非渐增式测试最后才组装,因此错误发现得晚。l 非渐增式测试中发现错误后难以诊断定位l 渐增式测试中,出现的错误往往跟最新加入的模块有关。l 渐增式测试在不断集成的过程中使模块不断在新的条件下受到新的检测,测试更彻底。l 渐增式测试较非渐增式测试费时。 l 非渐增式测试可以同时并行测试所有模块,能充分利用人力。8、 软件工程目标:是研制、开发与生产出具有良好软件质量和费用合算的产品。软件工程的内容是:1)采用工程化方法和途径来开发与维护软件;2)应该开发和使用更好的软件工具;3)采取必要的管理措施。9、 模块的内聚性包括的一般类型:(1)偶然内聚(2)逻辑内聚(3)时间内聚(4)通信内聚(5)顺序内聚(6)功能内聚10、 软件测试的几个主要步骤:1)模块测试2)子系统测试3)系统测试4)验收

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论