2022年自己整理软件工程复习提纲借鉴 .pdf

上传人:H****o 文档编号:32978471 上传时间:2022-08-09 格式:PDF 页数:23 大小:181.46KB
返回 下载 相关 举报
2022年自己整理软件工程复习提纲借鉴 .pdf_第1页
第1页 / 共23页
2022年自己整理软件工程复习提纲借鉴 .pdf_第2页
第2页 / 共23页
点击查看更多>>
资源描述

《2022年自己整理软件工程复习提纲借鉴 .pdf》由会员分享,可在线阅读,更多相关《2022年自己整理软件工程复习提纲借鉴 .pdf(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、软件工程复习提纲(年糕整理,不一定全)目录第一章概述第二章可行性研究第三章需求分析第五章总体设计第六章详细设计第七章实现第八章维护第十三章软件项目管理第一章 概述概念软件危机 :在计算机软件的开发和维护过程中遇到的一系列严重的问题。包含如何开发软件,如何维护已有软件。软件: 计算机程序、方法、规则、相关文档资料以及在计算机上运行时必需的数据。软件工程: 把系统的、规范的、可度量的途径应用到软件开发、运行和维护过程;研究中提到的途径。软件工程方法学(范型):软件生命周期全过程中使用的一套技术方法的集合。最广泛的有传统方法学、面向对象方法学。传统方法学(生命周期方法学、结构化范型):采用结构化计数

2、来完成软件开发的各项任务,使用适当的软件工具据或软件工程环境来支持结构化技术运用。软件生命周期: 从提出软件产品(项目)开始,直到该软件被淘汰的全过程。软件过程: 为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 23 页 - - - - - - - - - 软件生命周期模型 :跨越整个生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架。简答软件危机的 7 个典型表现?1. 成本

3、进度估计不足。2. 客户需求经常变更或无法满足。3. 软件质量无法保证或不可靠。4. 软件维护无法进行或不可维护。5. 软件文档缺少或不合要求。6. 软件成本在总成本中占比逐年提升。7. 开发生产率的提高速度比计算机应用普及深入速度慢。软件危机出现的原因?(1) 来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。(2) 软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。(3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。软件工程的 7 个本质特性?1. 关注大型程序。2. 中心课题是控制复杂性。3. 软件经常变化

4、。4. 效率非常重要。5. 和谐合作是关键。6. 有效地支持用户工作。7. 为其他领域和文化背景创造产品。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 23 页 - - - - - - - - - 记忆软件工程的 7 条基本原理?1. 按生命周期计划严格管理。2. 坚持进行阶段评审。3. 实行严格的产品控制。4. 采用现代程序设计技术。5. 结果应能清楚地审查。6. 开发小组成员少而精。7. 不断改进软件工程实践。分析结构化范型和面向对象范型它们的优缺点?传统方法学:也

5、称为生命周期方法学或结构化范型。优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。2. 面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。记忆软件生命周期的3 个时期、 8 个阶段?三个时期:软件定义、设计实现、运行维护。八个阶段:1. 问题定义2. 可行性研究3. 需求分析4. 总体设计5. 详细设计6. 编码和单元测试7.

6、综合测试名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 23 页 - - - - - - - - - 8. 软件维护举例生命周期模型?瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型。比较各个生命周期模型的优缺点瀑布模型优点:提供了一个使得分析、设计、编码、测试和支持的方法有共同指导的模板。缺点: (1)实际的项目大部分情况难以按照该模型给出的顺序进行,而且这种模型的迭代是间接的,这很容易由微小的变化而造成大的混乱。(2)经常情况下客户难以表达真正的需求,而这种模型却

7、要求如此,这种模型是不欢迎具有二义性问题存在的。(3)客户要等到开发周期的晚期才能看到程序运行的测试版本,而在这时发现大的错误时,可能引起客户的惊慌,而后果也可能是灾难性的。快速原型模型优点:使用户能够感受到实际的系统,使开发者能够快速地构造出系统的框架。缺点:产品的先天性不足,因为开发者常常需要做实现上的折中,可能采用不合适的操作系统或程序设计语言,以使原型能够尽快工作。增量模型优点: (1)人员分配灵活,刚开始不用投入大量人力资源,当核心产品很受欢迎时,可增加人力实现下一个增量。(2)当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径,这样就可以先发布部分功能给客户

8、,对客户起到镇静剂的作用。缺点: (1)至始至终开发者和客户纠缠在一起,直到完全版本出来。(2)适合于软件需求不明确、设计方案有一定风险的软件项目。该模型具有一定的市场。螺旋模型优点:对于大型系统及软件的开发,这种模型是一个很好的方法。开发者和客户能够较好地对待和理解每一个演化级别上的风险。缺点:(1)需要相当的风险分析评估的专门技术,且成功依赖于这种技术。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 23 页 - - - - - - - - - (2)很明显一个大的没

9、有被发现的风险问题,将会导致问题的发生,可能导致演化的方法失去控制。 (3)这种模型相对比较新,应用不广泛,其功效需要进一步的验证。该模型适合于大型软件的开发。第二章 可行性研究概念可行性研究的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。系统流程图( SDT ):概括地描绘物理系统的传统工具,表达数据在系统各部件之间流动的情况。数据流图( DTD):描述信息流和数据从输入移动到输出的过程中所经受变换的图形化技术。数据字典( DD):关于数据的信息的集合,对数据流图中包含的所有元素的定义的集合。数据流图的 4 个基本符号:数据的源点/终点,变换数据的处理,数

10、据存储,数据流。简答可行性研究的三个方面?(1)技术可能性(2)经济可行性(3)操作可行性(有时候还有法律、社会效应方面)可行性研究的 8 个过程?1. 复查系统规模与目标2. 研究现有的系统3. 导出逻辑模型4. 进一步定义问题名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 23 页 - - - - - - - - - 5. 导出和评价供选择的解法6. 推荐行动方针7. 草拟开发计划8. 书写文档提交审查数据字典的组成内容?(1) 数据流 (2)数据流分量(3)数据储存

11、(4)处理举例三种成本估计技术?(1)代码行技术(2)任务分解技术(3)自动估计成本技术成本/效益分析的方法有哪些?(1)货币的时间价值(2)投资回收期(3)纯收入(4)投资回收率在软件开发的早期阶段为什么要进行可行性研究? 开发一个软件时,需要判断原定的系统模型和目标是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度,如果做不到这些,那么花费在这些工程上的任何时间、人力、软硬件资源和经费,都是无谓的浪费。可行性研究的实质是要进行一次大大压缩简化了的系统分析和设计过程,就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。可行性研究的目的就是用最小的代价在尽可能短的时间内

12、确定问题是否能够解决。第三章 需求分析概念软件需求规格说明: 需求分析阶段得出的最主要文档。数据对象: 对软件必须理解的符合信息的抽象。属性: 定义了数据对象的性质。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 23 页 - - - - - - - - - 联系: 数据对象彼此之间相互连接的方式。模型:为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。 (通常用图形符号和组织这些符号的规则组成)实体-联系图( ER图):包含实体、关系和属性三种基本成分

13、的数据模型。状态转化图(状态图):描绘系统的状态及引起系统状态转换的事件的模型。规范化: 通过关系模式的分解与合并,可以转换不规范的模式为满足更高一级范式的关系模式Warnier 图:J.D.Warnier提出的表示信息层次结构的图形工具,可以表示信息或元素的重复。IPO图:输入、处理、输出图的简称。该图结合IPO表,可以简略地描述系统的输出 /输出及主要的处理算法。简答为什么要进行需求分析?为了开发出真正满足用户需求的软件产品,准确定义未来系统的目标,确定为了满足用户的需要系统必须做什么,就必须要进行准确的需求分析。需求分析的任务有哪些?1. 综合要求(及需求分类) 。2. 数据要求(常用工

14、具: Warnier 图,层次方框图)。3. 逻辑模型(数据流图,实体联系图,状态转换图,数据字典)。4. 修正计划。需求分析的要求分为功能需求和非功能需求,举例7 个非功能需?1. 性能需求2. 可靠性和可用性需求3. 出错处理需求4. 接口需求5. 约束名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 23 页 - - - - - - - - - 6. 逆向需求7. 将来可能提出的要求与用户沟通获得的方法?1. 访谈2. 面向数据流自顶向下求精3. 简单的应用规格说明技

15、术4. 快速建立软件原型记忆应从哪些方面验证软件需求的正确性?(1)一致性:概念和内容必须一致和无歧义的,不能相互矛盾(2)完整性:必须完整,包含用户的全部功能和性能需求,以及其它的需求(可靠可用、出错容错、接口、约束)(3)现实性:需求在现有硬件和软件技术条件下是可以基本上实现的。(4)有效性:需求必须是正确的、合理的、可以解决用户的问题。如何理解软件项目的需求不确定性? 1. 对项目需求的理解上,用户和开发者可能存在分歧。客户不了解计算系统,从而描述需求不全面,特别是一些隐性需求描述不够。开发者也可能不熟悉用户的业务规则、运作模式等。这样,在某些问题上,用户和开发者经常存在理解上的偏差,或

16、只看到问题的某些方面。2. 软件项目实施过程,也是客户和开发者相互了解的过程。随着项目的进展,用户对所构建应用系统理解的不断深入,对原来模糊的或非明示的需求有了新的认识,随时会提出需求的变更,造成需求的变更具有不可预测性。同样,随着项目的进展,开发者对用户的需求理解也更加深入和全面,从而修正自己原先对需求的认识。3. 用户的业务需求改变,也是软件项目需求不确定性的重要原因。计算机项目实施过程比较长,期间可能碰到用户改变业务规则的情况,并且为适应新的计算辅助管理的运行模式,用户可能主动调整自己的业务规则。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - -

17、 - - - - - 名师精心整理 - - - - - - - 第 8 页,共 23 页 - - - - - - - - - 4. 需求分析方法论和分析工具的缺乏,及其应用范围的局限性,也影响着需求的准确性和需求变更的可控制性。第五章 总体设计概念总体设计过程: 由系统设计阶段(确定系统的具体实现方案)和结构设计阶段(确定软件的结构)组成。概要确定系统如何实现,确定最佳方案和最合理的软件结构,也称概要设计。模块: 一个由标识符代表的、由边界符限定的程序元素序列,是程序的基本构件。常见模块:函数、过程、子程序、宏。模块化: 把程序分解为独立命名且可独立访问的单元,每个模块完成一个(或一组)子功能

18、,整体上满足用户指定的功能需求。逐步求精: 为了能集中精力解决主要问题,而尽量推迟对问题细节的考虑。Miller 法则: 一个人在任何时候都只能把注意力集中在72 个知识块上(人类能力的研究)。信息隐藏: 应该隐藏模块的实现细节,使得一个模块内包含的信息(算法和数据)对于不需要这些信息的模块来说是不能访问的。局部化: 把一些关系密切的软件元素(函数、数据、变量)物理地放得彼此靠近。深度: 软件结构中控制的层数。宽度: 软件结构内同一个层次上的模块总数的最大值。扇入: 表明有多少个上级模块直接调用它。扇出: 表明一个模块直接调用的模块数目。模块控制域: 这个模块本身以及所有直接或间接从属于它的模

19、决的集合。模块作用域: 受该模块内一个判断影响的所有模块的集合。简答名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 23 页 - - - - - - - - - 总体设计的 9 个步骤?1. 设想供选择的方案2. 选取合理的方案3. 推荐最佳方案4. 功能分解5. 设计软件结构6. 设计数据库7. 制定测试计划8. 书写文档(系统说明、用户手册、测试计划、详细的实现计划、数据库设计结果)9. 审查和复查举例软件设计过程中应该遵守的基本原理?模块化、抽象、逐步求精、信息隐藏

20、和局部化、模块独立(低耦合高内聚)举例 Miller 法则的应用?Nokia 功能机的“九宫”设计,菜单栏与菜单项的设计,子函数(功能)的设计记忆说明耦合的分类?(1)数据耦合(2)控制耦合(少用)(3)特征耦合(少用)(4)公共环境耦合(限用)(5)内容耦合(不用)记忆说明内聚的分类?(1)偶然内聚(2)逻辑内聚(3)时间内聚(4)过程内聚(5)通信内聚(6)顺序内聚(7)功能内聚举例一些启发式规则?1. 改进软件结构提高模块独立性名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1

21、0 页,共 23 页 - - - - - - - - - 2. 模块规模应该适中3. 深度、宽度、扇出和扇入都应适当4. 模块作用域应在控制域之中5. 力争降低模块接口的复杂程度6. 设计单入口单出口的模块7. 模块功能应该可以预测为每种类型的模块内聚举一个具体例子?偶然内聚:一些没有任何联系的语句可能在许多模块中重复多次,程序员为了节省存储,把它们抽出来组成一个新的模块,这个模块就是偶然内聚模块。逻辑内聚:根据输入的控制信息,或从文件中读入一个记录,或向文件写出一个记录。时间内聚:初始化模块和终止模块。操作系统的开机初始化模块,包含的动作没什么大的关系,但必须在开机后的一段时间内都完成。整个

22、开机初始化模块具有时间内聚。过程内聚:一个模块内的处理是相关的,而且必须以特定次序执行,则这个模块称为过程内聚模块。如我们把流程图中的循环部分、判定部分、计算部分分成三个模块。通信内聚:一个模块,接收一个远程传来的信息文件,保存,同时马上打印该文件。该模块针对同一个文件操作,打印和存盘操作没有前后顺序关系,整个模块具有通信内聚。顺序内聚:通常一个处理元素的输出数据据作为下一处理元素的输入数据,如在对员工加工资的数据库操作中,读取数据和更新数据即具有顺序内聚的关系。功能内聚:即模块内部所有处理元素属于一个整体,完成一个单一的功能。如:计算数组的总和。名师资料总结 - - -精品资料欢迎下载 -

23、- - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 23 页 - - - - - - - - - 第六章 详细设计概念详细设计: 确定应该如何具体地实现所要求的系统,不仅在逻辑上正确地实现每个模块的功能,设计出的处理过程应该简明易懂、便于实现和维护。详细设计的结果基本上决定了最终的程序代码的质量。E.W.Dijkstra 结构化程序概念 :可以从高级语言中取消GOTO语句;程序质量与GOTO语句的数量成反比;用3 种结构可以实现单入口单出口程序。Bohm & Jacopini 证明:任何单入口单出口的、没有死循环的程序

24、都能由顺序结构、循环结构、选择结构构造出来。结构程序设计(经典):如果一个程序的代码块仅仅通过顺序、选择和循环这三种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。结构程序设计 2:尽可能少用 GOTO语句的程序设计方法。最好仅在检测出错误时才使用 GOTO语句,而且应该总是使用前向GOTO语句。过程设计的工具: 描述程序处理过程的工具,对设计提供没有歧义的描述。分为图形、表格和语言三类。面向数据结构的设计方法:根据数据结构设计程序处理过程的方法。如Jackson图。PAD图:用二维树型结构表示程序的控制流,其特点是容易转换为程序代码。PDL :PDL(Pr

25、ocedure Design Language,也称为伪码( pseud code),它使用一种语言(通常是某种自然语言)以及某种结构化的设计语言的语法来描述算法McCabe方法: 根据程序控制流的复杂程度,定量度量程序的复杂程度,也称为圈复杂度。仅仅描绘程序的控制流程。Halstead 方法: 根据程序中运算符和操作数的总数来度量程序的复杂度。简答人机界面设计可能会遇到的四个问题?1. 系统响应时间名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 23 页 - - -

26、- - - - - - 2. 用户帮助测试3. 出错信息处理4. 命令交互5. 迭代过程)老师加的人机界面设计的三个指南?1. 一般交互指南保持一致性(风格与布局等) ,提供有意义的反馈,执行有破坏动作前要求用户确认,允许取消操作:Undo、Cancel、Resume ,减少在两次操作之间必须记忆的信息量,提高对话、移动和思考的效率,允许操作者犯错误,按功能将动作分类、并以此设计布局,提供用户对工作内容敏感的帮助设施,简单动词或动词短语作为命令名。2. 信息显示指南只显示与当前工作内容有关的信息,不要用数据淹没用户,使用一致标记、标准的缩写和可预知的颜色,允许用户保持可视化的语境,产生有意义的

27、出错信息,使用大小写、缩进和文本分组帮助理解,使用窗口分割不同类型的信息(资源管理器),使用模拟显示方式表示信息(如打印预览),高效率地使用显示屏幕(如校园网)。3. 数据输入指南尽量减少用户的输入动作(如QQ) ,保持信息显示和数据输入之间的一致性,允许用户自定义输入(如QQ) ,交互应该是灵活的、可调整的,让用户控制交互流(淘宝提交订单) ,对所有输入动作提供帮助,消除冗余与错误的输入,对所有错误输入有提示或警告信息记忆举例过程设计的工具?程序流程图、盒图、 PAD图(问题分析图)、判定表、判定树、过程设计语言(PDL ,伪码)举例模块复杂度的确定方法?名师资料总结 - - -精品资料欢迎

28、下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 23 页 - - - - - - - - - LOC (LINE OF CODE,代码行计算法)、McCabe方法、 Halstead方法第七章 实现概念软件编码阶段要善于积累编程的经验,使得编出的程序清晰易懂,易于维护和测试。实现: 编码和测试的统称为实现。编码: 把软件设计结果翻译成用某种程序设计语言书写的程序FORTRAN 语言适合于工程和科学计算,COBOL 语言适合与商业领域应用,C语言和 ADA语言适用于系统和实时应用领域。LISP语言适用于组合

29、问题领域,PROLOG 语言适用于表达知识和推理。测试: 为了发现程序中的错误而执行的过程黑盒测试(功能测试):在程序接口进行测试,只检查程序功能是否按照规格说明书的规定正常使用。白盒测试(结构测试):测试者知道程序的结构和处理算法,按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否能按预定要求工作。验证: 保证软件正确的实现了某个特定要求的一系列活动。确认: 为了保证软件满足了用户需求的一系列活动。调试(纠错): 在测试发现错误之后排除错误的过程。软件的可靠性: 程序在给定的时间间隔内,按照规格说明书的规定成功地运行的概率。 (0t 时间段内系统运行成功)软件的可用性: 程序在给定的时

30、间点,按照规格说明书的规定,成功运行的概率。 (0t 时间内一直可靠或者0t 时间内失败过,但又修复了) 。简答选择编程语言有什么标准?1. 系统用户要求名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 23 页 - - - - - - - - - 2. 可以使用的编译程序3. 可以得到的软件工具4. 工程规模5. 程序员的知识6. 软件的可移植性要求7. 软件的应用领域为了让源程序代码的逻辑清晰、易读易懂,应该遵循什么规则?1. 程序内部文档(恰当的标识符、适当的注释、

31、程序的视觉组织)2. 数据说明3. 语句构造(每个语句都应该简单而直接)4. 输入输出5. 效率(程序运行时间、存储器效率、输入输出的效率)软件测试的准则有哪些?1. 所有测试应该追溯到用户需求(需求功能错误是最大的、最严重的错误)2. 应该远在测试开始之前就制定出测试计划(需求分析、总体设计阶段就可以做测试计划)3. 把 Pareto 原理应用到软件测试中(20%的模块产生 80%的错误)4. 应该从小规模测试开始,逐步进行大规模测试5. 穷举测试是不可能(把程序所有的执行路径检查一遍几乎不可能)6. 应该由独立的第三方从事测试工作举例软件测试的方法?黑盒测试、白盒测试白盒测试中常用的有哪些

32、技术?逻辑覆盖:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖、基于 McCabe流图的测试(点覆盖、边覆盖)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 23 页 - - - - - - - - - 控制结构测试:基本路径测试、条件测试、循环测试(简单循环测试:至少三次测试,嵌套循环测试,串接循环测试) 。黑盒测试中常用的有哪些技术?等价划分:把程序的输入域划分成若干个数据等价类,每个类选取一组代表性的测试用例,然后设计与导出测试用例。边界值分

33、析:边界情况程序最容易发生错误错误推测:靠测试人员的知觉、经验推测程序中可能的错误。列出程序中可能有的错误和容易发生错误的情况,有选择地制作测试方案。请说出软件测试的步骤?1. 模块测试(单元测试,主要使用白盒测试,发现的往往是详细设计错误)2. 子系统测试(集成测试,目的是测试模块间的接口)3. 系统测试(集成测试,发现的往往是软件设计错误)4. 验收测试(确认测试,验证软件有效性,主要使用黑盒测试,用户积极参与,发现的往往是需求说明书中的错误)5. 回归测试(重新执行已经做过的测试的某个子集,以保证一些增加修改没有带来预期的副作用)6. 平行测试(同时运行新开发出来的系统和将被它取代的旧系

34、统,以便比较新旧两个系统的处理结果)测试阶段需要哪些软件配置和测试配置(输入信息流)?软件配置:需求分析说明书(需求规格说明书)、总体设计说明书、详细设计说明书、源程序清单。测试配置:测试计划、测试方案。在单元测试期间应着重从哪5 个方面进行模块测试?1. 模块接口2. 局部数据结构名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 23 页 - - - - - - - - - 3. 重要的执行通路4. 出错处理通路5. 边界条件(单元测试的最重要任务)记忆集成测试分为哪两

35、种测试方法?非渐增式测试 (一步到位 ):分别进行单元测试,再把所有模块按设计要求放在一起的测试渐增式测试 (主流方法 ):把下个要测试的模块同已经测试好的哪些模块结合起来进行测试,测试完后再把下个应该测试的模块结合进来。记忆集成测试中的渐增式测试又可以分为哪两种测试方法?它们的优缺点比较?自顶向下集成:从主控制模块开始,沿着程序的控制层次向下移动,逐渐把各个模块结合起来。先测试主控制模块:可能需要编写存根程序,用实际模块代替存根模块 (广先/宽先),结合进一个模块就测试一个,必须进行回归测试。自底向上集成:从最底层模块开始组装和测试。把底层模块组合成实现某个特定子功能族,编写驱动程序对由模块

36、组成的子功能族进行测试。再去掉驱动程序,按前面几步把子功能族组合起来形成更大的子功能族。自顶向下测试优点(相应可以得到自底向上测试缺点):不需要测试驱动程序,早期就能实现程序主要功能,早期就能发现上层模块的接口错误。自顶向下测试缺点(相应可以得到自底向上测试优点):需要存根程序,底层模块错误发现较晚,早期不能充分展开人力。举例确认测试的几种方法?alpha 测试:软件用户在开发者的场所进行的、且在开发者指导下进行的测试开发者记录发现的错误和问题beta 测试:软件用户在一个或多个客户场所进行的测试,开发者通常不在beta测试现场,用户记录并反馈发现的错误和问题。名师资料总结 - - -精品资料

37、欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 23 页 - - - - - - - - - 请说出一些调试的途径?1. 蛮干法:主要思想是通过计算机找错。例如:将输出全部内存内容。2. 回溯法:从错误地方开始,人工沿控制流往回追踪分析源程序代码,直到找到原因为止。3. 原因排除法:对分查找法、归纳法、演绎法。第八章 维护概念软件维护: 软件在已经交付使用之后,为了改正错误或满足新的需求修改软件的过程。文档:有关计算机程序功能、设计、编制、使用的文字或图形资料。分为用户文档和系统文档。是影响软件可维护

38、性的决定因素。用户文档: 描述系统功能和使用方法。 (安装手册、操作指南、参考手册、使用手册)系统文档: 描述系统设计、实现和测试等方面的内容。(问题定义、可行性研究报告(工可报告)、需求规格说明书、总体设计说明书、详细设计说明书、测试验收计划)可维护性复审: 开发阶段保证软件具有可维护性的5 个因素。软件再工程: 为了以新形式重构已存在软件系统(当前使用中的系统,或者一些缺乏良好设计结构和编码风格,缺少文档的遗留系统)而实施的检测、分析、更替,以及随后构建新系统的工程活动。管理:简答说出四类维护活动?1. 改正性维护:诊断和改正错误2. 适应性维护:适应软件硬件运行与开发环境名师资料总结 -

39、 - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 23 页 - - - - - - - - - 3. 完善性维护:修改已有功能、增加新功能(占工作比例最大)4. 预防性维护:为未来的需求说明软件维护的特点?1. 结构化维护与非结构化维护差别巨大:非结构化维护的软件配置的唯一成分是程序代码,无程序内部文档。这种维护代价大,质量无法保证。结构化维护存在完整的软件配置(代码、内部文档、测试用例等),维护工作可以从设计文档开始。维护代价低、质量有保证。2. 维护的代价高昂:维护费用占总预算逐年提

40、高,无形费用的产生、生产率的下降、软件开发没有使用软件工程学且原来的成员不参与维护等。3. 维护的问题很多:起因是软件定义和软件开发方法的缺陷。理解别人的代码困难程度与软件配置成强反比,需要维护的软件没有合格的文档或资料不足,维护人员往往不是开发者,早期软件在设计时没有考虑将来的修改问题。维护工作不是一项吸引人的工作。说明软件维护的过程?1. 维护组织2. 维护报告(要求维护的用户填写软件问题报告)3. 维护的事件流4. 保存维护记录5. 评价维护活动决定软件可维护性的因素有哪些?1. 可理解性2. 可测试性3. 可修改行4. 可移植性5. 可重用性名师资料总结 - - -精品资料欢迎下载 -

41、 - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 23 页 - - - - - - - - - 阐述文档的基本要求?1. 必须描述如何使用系统2. 必须说明怎样安装和管理系统3. 必须描述系统的需求和设计方案4. 系统的实现和测试请说明软件再工程过程模型的六类活动?1. 库存目录分析2. 文档重构3. 逆向工程4. 代码重构5. 数据重构6. 正项工程第十三章软件项目管理概念管理: 通过计划、组织和控制等一系列活动,合理地配置和使用各种资源,以达到既定目标的过程。软件项目管理: 先于任何技术活动之前,并且贯穿于软件

42、的整个生命周期之中。代码行技术( LOC ):根据以往开发过的类似产品或模块的经验,以及相关的历史数据,估计一个功能所需要的源程序行数。功能点技术( FP):依据对软件信息域特性和软件复杂性评估结果估算软件的规模,度量结果是功能点(FP ) 。估算开发时间: 认为人月工作量是线性的是错误的。T = a*Eb, E是工作量、a、b 是常数。软件质量: 软件与明确地和隐含地定义的需求相一致的程度。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 23 页 - - - - -

43、- - - - 软件配置管理: 整个软件生命期内的管理变化的一组活动(标识变化,控制变化,确保变化实现,报告变化) 。软件配置: 软件过程中产生的全部信息(计算机程序,描述计算机程序的文档,数据与文件)。基线: 已经通过了正式复审的规格说明或中间产品,它可以作为进一步开发的基础,并且只有通过正式的变化控制过程才能改变它。简答说明软件项目管理的主要工作?1. 估算软件规模和工作量2. 制定进度计划3. 人员与配置管理4. 质量保证记忆举例估算软件规模的技术?代码行技术、功能点技术。阐述代码行技术的优缺点?优点:是软件项目的生成品;容易计算,且有一些计算模型。缺点:源程序仅是软件配置的一个部分,用

44、它代表整个软件项目的规模不合理;同一个软件不同语言的LOC差异较大;不适用于非过程语言(如SQL ) 。功能点计数的五个信息域特征?1. 输入项数2. 输出项数3. 查询数4. 主文件数(数据的一个逻辑组件,可能是大型数据库的一部分,如:数据库表、 xml 文件, ini 文件)5. 外部接口数(如:磁盘或磁带上的数据文件,银行转帐,一卡通转帐)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 23 页 - - - - - - - - - 举例工作量估算的三种模型静态单变

45、量模型、动态多变量模式、COCOMO2 模型举例两种进度计划的工具方法Gantt 图、工程网络图说明 3 种典型的人员组织方式?民主制程序员组:小组成员完全平等通过协商作出技术决策规模一般较小( 2-8 人)通常采用非正式的组织方式优点:组员态度积极、凝聚力高、利于攻克难关缺点:协调成本高、任务分工可能不均匀主程序员组(外科手术队伍, Brooks ):主程序员、程序员、后备程序员、秘书现代程序员组:技术负责、行政负责、程序员软件质量保证的三个要点?1. 需求是度量基础2. 遵循指定的开发标准3. 满足软件行业隐含的标准或需求软件质量保证( SQA )的措施有哪些?1. 基于非执行的测试:技术

46、复审;团队走查:参与者驱动、文档驱动;审查:综述、准备、审查、返工、跟踪。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 23 页 - - - - - - - - - 2. 基于执行的测试:软件测试。3. 程序正确性证明:在严格的数学说明基础上,根据程序代码证明程序确实能实现它的功能说明。简述软件配置管理的过程1. 标识软件配置项:名字、描述、资源表、版本。2. 版本控制:用户可以选择适当的版本来指定软件的配置。3. 变化控制:访问控制(配置项的访问权限)、同步控制(并行修改时不会相互覆盖) 。4. 配置审计:正式的技术复审、软件配置审计。5. 状态报告:报告软件配置的变化、状态及影响等。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 23 页,共 23 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁