软件工程备考

上传人:无*** 文档编号:123017319 上传时间:2022-07-21 格式:DOC 页数:3 大小:233.50KB
收藏 版权申诉 举报 下载
软件工程备考_第1页
第1页 / 共3页
软件工程备考_第2页
第2页 / 共3页
软件工程备考_第3页
第3页 / 共3页
资源描述:

《软件工程备考》由会员分享,可在线阅读,更多相关《软件工程备考(3页珍藏版)》请在装配图网上搜索。

1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流软件工程备考.精品文档.软件工程备考1. 软件危机:是指在计算机软件开发和维护的过程中所遇到的一系列严重的问题。2. 软件危机的表现:对软件开发成本和进度的估计常常很不准确;用户对“已完成的”软件系统不满意的现象经常发生;软件产品的质量往往靠不住;软件常常是不可维护的;软件通常没有适当的文档资料;软件成本在计算机系统成本中所占的比例逐年上升;软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。3. 产生软件危机的原因:软件的特点;与软件开发和维护有关的许多错误认识和做法:软件专业人员对软件开发、维护存在糊涂观念,实践过程中不能采

2、用正确的方法、技术。只重视程序而忽视软件配置的其余成分。轻视软件维护。4. 消除软件危机的途径:正确认识计算机软件;充分认识到软件开发是一种组织良好、管理严密、各类人员协同工作的工程项目;推广使用在实践中总结出来的开发软件的成功的技术和方法;开发和使用更好的软件工具。5. 软件工程:指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高指令的软件并有效地维护它。6. 软件工程方法学:把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为范型。三要素:方法:完成软

3、件开发的各项任务的技术方法;工具:为运用方法而提供的自动或半自动的软件支撑环境;过程:是为了获得高质量的软件所需完成的一系列任务的框架。7. 传统方法学:采用结构化技术;软件生命周期的全过程依次划分为若干阶段;自顶向下顺序完成; 优点:便于分工协作,每个阶段采用科学的管理技术和良好的技术方法,提高软件开发的成功率;缺点:只能面向行为或者数据。8. 面向对象方法学:是一种以数据为主线,把数据和对数据的操作结合起来的方法。把对象作为融合数据及数据上的操作行为的统一的软件构件;划分类;按照继承关系;通过发送消息互相联系; 优点:降低了软件产品的复杂性,提高了软件的可理解性,简化了软件的开发和维护工作

4、;提高了软件的可重用性。缺点:只能面向对象和行为。9. 软件生命周期:由软件定义、软件开发和运行维护三个时期组成。(其中维护时期是耗时最长的)。软件定义时期划分为三个阶段:问题定义、可行性研究和需求分析。10. 软件过程:为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。11. 瀑布模型:历史悠久、广为人知,它的优势在于它是规范的、文档驱动的方法;这种模型的问题是,最终开发的软件产品可能并不是客户真正需要的。12. 快速原型模型:正是为了克服瀑布模型的缺点而提出来的。他通过快速构建起一个可在计算机上运行的原型系统,让用户使用原型并收集用户反馈意见的办法,获取用户的

5、真实需求。13. 增量模型:具有可在软件开发的早期阶使投资获得明显回报和交易维护的优点,但是,要求软件具有开放的结构是使用这种模型固有的困难。14. 风险驱动的螺旋模型:适用于内开发的大型软件项目,但是只有在开发人员具有风险分析和排除风险的经验及专门知识时,使用这种模型才会成功。15. 喷泉模型:较好的体现了面向对象软件开发过程无缝迭代的特性,是典型的饿面向对象的软件过程之一。16. 可行性研究:目的是确定问题是否值得去解决,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。任务:技术可行性:使用现有的技术能实现这个系统吗?经济可行性:这个系统的经济效益能超过它的开发成本吗?操作可行性:

6、系统的操作方式在这个用户组织内行得通吗?17. 系统流程图是概括地描绘物理系统的传统工具。表达的是系统各部件之间流动的情况。数据流图是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。在流程图中没有任何具体的物理部件,只是描绘早软件中流动和被处理的逻辑过程。18. 数据字典:是关于数据信息的集合,也就是对数据流图中包含的所有元素的定义的集合。数据流图和数据字典共同组成系统的逻辑模型。19. 需求分析的任务:确定对系统的综合要求【功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求、约束、逆向需求、将来可能提出的要求】;分析系统的数据要求【采用数据模型的方法】;导

7、出系统的逻辑模型;修正系统开发计划。20. 建模:为了更好的理解复杂事物,人们常常采用建立事物模型的方法。ER图。描述数据 算法。21. 总体设计:基本目的就是用比较抽象概括的方式确定系统如何完成预定的任务,也就是确定系统的物理配置方案,并且确定组成系统的每个程序的结构。 任务首先需要进行系统设计,从数据流图出发设想完成系统功能的若干种合理的物理方案,分析员应仔细分析比较这些方案并且和用户共同选定一个最佳方案。 设然后是进行软件结构设计,确定软件由哪些模块组成以及这些模块之间的动态调用关系。22. 设计原理:模块化、抽象、逐步求精、信息隐藏和局部化、模块独立。23. 模块化:就是把程序划分成独

8、立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。24. 耦合性:模块之间的相对独立性的度量;内聚:模块功能强度的度量。(如图从强到弱) 25. 启发规则:改进软件结构提高模块独立性; 模块规模应该适中; 深度、宽度、扇出和扇入都应当适当;模块的作用域应该在控制域之内; 力争降低模块接口的复杂度; 设计单入口单出口的模块; 模块功能应该可以预测。26. 描绘软件结构的图形工具:层次图(用来描绘软件的层次结构,一个矩形代表一个模块,方框间的连线表示调用关系); HIPO图(层次图 + 输入 / 处理 /输出图,H图中每一方框(模块

9、)均有一张IPO图对应); 结构图(结构图反映程序中模块之间的层次调用关系和联系:它以特定的符号表示模块、模块间的调用关系和模块间信息的传递)。27. 面向数据流的设计方法:目标是给出设计软件结构的一个系统化的途径。系统结构特征可归纳为两种典型形式:变换型结构、事务型结构。数据流图可分为两种类型:变换型数据流、事务型数据流。28. 变换分析设计步骤:复查基本系统模型复查并精化数据流图确定数据流图具有变换特性还是事务特性确定输入流和输出流的边界,划分变换或事务中心完成 “第一级分解”进行“第二级”分解。29. 面向数据流设计方法的设计步骤:精化DFD确定DFD类型把DFD映射到系统模块结构设计出

10、模块结构的上层基于DFD逐步分解高层模块设计出下层模块基于DFD逐步分解高层模块设计出下层模块模块接口描述。30. 详细设计:根本目标是确定应该怎样具体地实现所要求的系统,也就是为软件结构图(SC)中的每一个模块确定采用的算法和模块内数据结构,用某种选定的表达工具给出清晰的描述。 关键任务是确定怎样具体地实现用户需要的软件系统,也就是要设计出程序的蓝图。除了应该保证软件的可靠性之 外,是将来编写出的程序可读性好、易理解、容易测试、容易修改和维护,是详细设计阶段最重要的目标。31. 过程设计工具(优缺点、转换、示例):程序流程图,优点:是对控制流程的描绘很直观,便于初学者掌握。缺点:(1) 程序

11、流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构;(2) 程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制;(3) 程序流程图不易表示数据结构。盒图(N-S图),特点:(1) 功能域(即,一个特定控制结构的作用域)明确,可以从盒图上一眼就看出来。(2) 不可能任意转移控制。(3) 很容易确定局部和全程数据的作用域。(4) 很容易表现嵌套关系,也可以表示模块的层次结构。PAD图,优点:(1) 使用PAD符号所设计出来的程序必然是结构化程序。(2) PAD图所描绘的程序结构十分清晰。(3) 用PAD图

12、表现程序逻辑,易读、易懂、易记。(4) 容易将PAD图转换成高级语言源程序,这种转换可用软件工具自动完成,从而可省去人工编码的工作,有利于提高软件可靠性和软件生产率。(5) 即可用于表示程序逻辑,也可用于描绘数据结构。(6) PAD图的符号支持自顶向下、逐步求精方法的使用。开始时设计者可以定义一个抽象的程序,随着设计工作的深入而使用def符号逐步增加细节,直至完成详细设计。判定表,判定表可以清晰的表示复杂的条件组合与其对应的处理之间的关系。32. 面向数据结构的设计方法:前面介绍了面向数据流的设计方法,也就是根据数据流确定软件结构的方法,而面向数据结构的设计方法,也就是根据数据结构设计程序处理

13、工程的方法。33. McCabe方法:掌握把程序流程图映射成流图,然后计算环形复杂度(流图中的区域数等于环形复杂度),路径。34. 编码风格:源程序代码的逻辑简明清晰、易读易懂是好程序的一个重要标准。程序内部的文档:标识符的名字应能反映它所代表的实体,应有一定实际意义;注解是程序员和程序读者通信的重要手段。分为序言性注解和功能性注解;视觉组织:利用空格、空行和换行。数据说明,数据说明的次序应当规范化;说明语句中变量安排有序化;使用注释说明复杂数据结构。语句构造,不要为了节省空间而把多个语句写在同一行;尽量避免复杂的条件测试;尽量减少对“非”条件的测试;避免大量使用循环嵌套和条件嵌套;利用括号使

14、逻辑表达式或算术表达式的运算此行清晰直观。输入输出,对所有输入数据都进行检验;检查输入项重要组合的合法性;保持输入格式简单;使用数据结束标记,不要要求用户指定数据的数目;明确提示交互式输入的请求,详细说明可用的选择或边界值;设计良好的输出报表;给所有输出数据加标志;效率,写程序之前先简化算术的和逻辑表达式;仔细研究嵌套的循环,以确定是否有语句可以从内层往外移;尽量避免使用多维数组;尽量避免使用指针和复杂的表;使用执行时间短的算术运算;不要混合使用不同的数据类型;尽量使用整数运算和布尔表达式。35. 软件测试:软件测试目标(定义),是为了发现程序中的错误而执行程序的过程;好的测试方案是极可能发现

15、迄今为止尚未发现的错误的测试方案;成功的测试是发现了至今为止尚未发现的错误的测试。测试的目的,想以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷;测试的附带收获是他能够证明软件功能和性能与需求说明相符合;测试不能表明软件中不存在错误,只能说明软件中存在错误。36. 软件测试准则,所有的测试都应追溯到用户需求;应该远在测试开始之前就制定出测试计划;把Pareto原理应用到软件测试中;应该从“小规模”测试开始,并逐步进行“大规模”测试;穷举测试是不可能的;为了达到最佳的测试效果应该由独立的第三方从事测试工作;37. 测试方法,是否执行程序:静态测试和动态测试。测试内容:黑盒测试:如果已经知

16、道了产品应该具有的功能,可以通过测试来检验是否每个功能正常使用。白盒测试:如果知道产品的内部工作过程,可以通过测试来检验产品内部动作是否按照规格说明书的规定正常进行。测试步骤,模块测试、子系统测试、系统测试、验收测试、平行运行。38. 单元测试:测试重点:模块接口、局部数据结构、重要的执行通路、出错处理通路、边界条件。39. 集成测试:当使用渐增方式把模块结合到程序中去时,有自顶向下和自底向上两种集成策略。自顶向下,优点是可在设计早期实现并验证系统主要功能不需要驱动模块,缺点是需存根模块。自底向上,优点是设计测试用例容易,缺点是只有到最后程序才能作为一个整体。40. 确认测试:测试是由一个用户

17、在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。测试是由软件的多个用户在实际使用环境下进行的测试。这些用户返回有关错误信息给开发者。测试时,开发者通常不在测试现场。因而,测试是在开发者无法控制的环境下进行的软件现场应用。在测试中,由用户记下遇到的所有问题,包括真实的以及主观认定的,定期向开发者报告。41. 白盒测试:例:PROCEDURE SAMPAL (A,B:REAL; VAR X:REAL); BEGIN IF (A1) AND (B=0) THEN X:=X/A IF (A=2) OR (X1) THEN X:=X+1 END; 42. 黑盒测试:等价划分

18、、边界值分析、错误推测。43. 划分等价类等价类的原则:如果输入条件规定了取值范围,则可以确立一个有效等价类和两个无效等价类。如果输入数据的个数,则可以确立一个有效等价类和两个无效等价类。如果规定了输入数据的一组值,而且程序要对每个输入值分别进行处理。这时可为 每一个输入值确立一个有效等价类,此外针对这组值确立一个无效等价类,它是所有不允许的输入值的集合。如果规定了输入数据必须遵守的规则,则可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。如果规定了输入数据为整型,则可以划分出整数、零和负整数等3个有效类;如果程序的处理对象是表格,则应该使用空表,以及含一项或多项的表

19、。44. 调试:软件调试是在进行了成功的测试之后才开始的工作。它与软件测试不同,调试的任务是进一步诊断和改正程序中潜在的错误。45. 软件可靠性定义:程序在给定的时间间隔内,按照规格说明书的规定成功运行的概率。46. 软件的可用性:软件可用性是程序在给定时间点,按照规格说明书的规定,成功运行的概率。47. 软件维护:定义:就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。48. 软件维护的4类活动:改正性维护(17%21%)、适应性维护(18%25%)、扩充和完善性维护(50%66%)、预防性维护。(其他占4%)。为了纠正正在使用过程中暴露出来的错误进而进行的改正性维护;

20、为了适应外部环境的变化而进行的适应维护;为了改进原有的软件而进行的完善性维护;以及为了改进将来的可维护性和可靠性而进行的预防性维护。49. 软件维护的特点:结构化维护与非结构化维护差别巨大;维护的代价高昂;维护的问题很多。50. 决定软件可维护性的因素:可理解性、可测试性、可修改性、可移植性、可重用性。51. 文档是影像软件可维护性的决定因素。52. 面向对象方法学要点:认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以有比较简单的对象以某种方式组合而成;所以对象都划分成各种对象类,每个对象类都定义了一组数据和一组方法;按照子类与父类的关系,把若干个对象类组成一个层次结构的系统;对象彼此之间仅能通过传递消息互相联系。53. 面向对象方法学的优点:与人类习惯的思维方法一致稳定性好可重用性好较易开发大型软件产品可维护性好。54. 面向对象建模:对象模型表示静态的、结构化的“数据”性质。他是对模拟客观时间实体的对象以及对象彼此间的关系的映射,描述了系统的静态结构。 动态模型表示瞬时的、行为化的系统的控制性质,它规定了对象模型中的对象的合法化序列; 功能模型表示变化的系统的功能性质,它指明了系统应该做什么,因此更直接地反应了用户对目标系统的需求。

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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