新版软件工程复习_第1页
新版软件工程复习_第2页
新版软件工程复习_第3页
新版软件工程复习_第4页
新版软件工程复习_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

一、单选题(本大题共10小题,每小题2分,共20分)1.软件是一种()A.物质产品B.物理产品C.逻辑产品D.文档产品2.下列4个选项中,不属于软件危机表现的是(D)A.开发的软件可靠性差B.经费预算不断突破,完毕时间一再迟延C.开发的软件可维护性差D.开发的软件规模庞大,结构复杂3.下列4个选项中,不属于软件危机因素的是:软件(D)A.规模越来越大B.结构越来越复杂C.开发技术落后D.用户素质不高4.软件产品的生产重要是(C)A.生产B.再生产C.开发D.研制5.软件工程是一门(C)A.理论性学科B.原理性学科C.工程性学科D.心理性学科6.软件重用的单位是(A)A.软件模块B.性能C.系统D.功能7.软件工程着重于(C)A.理论研究B.原理探讨C.建造软件系统D.原理的理论8.软件工程中的“软件”是指(D)A.程序B.数据C.文档D.程序、数据及文档9.软件开发费用只占整个软件系统费用的(B)A.1/2B.1/3C.1/4D.2/310.下列4种模型中,属于文档驱动的是(C)A.喷泉模型B.增量模型C.瀑布模型D.螺旋模型11.下列4种模型中,较为适合用于面向对象的开发方法的是(A)A.喷泉模型B.增量模型品C.瀑布模型D.螺旋模型12.下列4中方法中,属于面向数据结构的设计方法的是(C)A.Booch方法B.Coad方法C.Jackson方法D.SA方法13.下列4中方法中,属于面向数据流的分析方法的是(D)A.Booch方法B.Coad方法C.Jackson方法D.SA方法14.软件生存周期中时间最长的阶段是(D)A.需求分析B.概要设计C.测试D.维护15.一般而言,软件开发各阶段中,时间长、费用高、困难大的阶段是(D)A.需求分析B.具体设计C.编码D.测试16.解决“软件必须做什么”问题的阶段是(B)A.可行性研究B.需求分析C.具体设计D.编码17.下列工作中,不在需求分析阶段进行的是(B)A.编写需求规格说明书B.编写集成测试计划C.编写用户手册初稿D.修改完善软件开发计划18.下列工作中,不在需求分析阶段进行的是(B)A.拟定软件的功能需求B.建立软件物理模型C.导出软件逻辑模型D.编写需求规格说明书19.需求分析的重要结果是(C)A.项目开发计划B.可行性分析报告C.需求规格说明书D.设计说明书20.需求分析要解决的最重要的问题是(A)A.要让软件做什么B.要给软件提供哪些信息C.规定软件工作效率如何D.要让该软件具有何种结构21.需求规格说明书的内容不应涉及软件的(B)A.重要功能与性能B.算法具体过程C.用户界面D.运营环境22.系统流程图用于描述待开发软件的(B)A.结构系统B.物理系统C.程序系统D.逻辑系统23.数据流图用于描述待开发软件的(B)A.物理模型B.逻辑模型C.控制结构D.数据结构24.DFD中的每个加工至少有(A)A.一个输入流和一个输出流B.一个输入流或一个输出流C.一个输入流D.一个输出流25.分层DFD的顶层图描述了系统的(B)A.细节B.输入与输出C.作者D.绘制时间26.在DFD中,下列数据流中可以不命名的是(D)A.解决与解决之间的数据流B.解决与局部数据存储之间的数据流C.解决与数据源点之间的数据流D.解决与数据终点之间的数据流27.DFD中一般不画(A)A.控制流B.数据流C.局部数据存储D.外部实体28.在DFD中,箭头表达(A)A.数据流B.数据存储C.数据解决D.数据源点29.在DFD中,双杠表达(D)A.数据解决B.数据源点C.数据流D.数据存储30.父图与子图平衡指子图的输入、输出流同父图相应加工的输入、输出流(A)A.必须一致B.数目必须相等C.名字必须相同D.数目必须不等31.数据字典中一般不涉及(D)A.数据流条目B.数据存储条目C.加工条目D.源点与终点条目32.关于DD的4类条目,不可再分解的最小元素是(B)A.数据流条目B.数据项条目C.数据存储条目D.加工条目33.表达“X由a或b组成”的DD定义式是(B)A.X=a+bB.X=[a|b]C.X=a…bD.X=|ab|34.软件结构图上,一层中最大模块数称为该图的(C)A.扇出B.扇入C.宽度D.深度35.当一幅DFD中既有变换流又有事务流时,这就是一个(C)A.变换型DFDB.事务型DFDC.综合型DFDD.分层DFD35.软件结构图上,一层中最大模块数称为该图的(C)A.扇出B.扇入C.宽度D.深度36.软件开发中结构化设计方法用于(B)A.测试用例设计B.概要设计C.程序设计D.具体设计37.软件结构使用的图形工具,一般采用()A.DFD图B.PAD图C.SC图D.ER图38.软件结构图中,模块框之间若有直线接,表达它们之间存在着(A)A.调用关系B.组成关系C.连接关系D.顺序执行关系39.下列工作中,不在概要设计进行的是(D)A.划分模块B.拟定模块功能C.拟定模块的接口D.拟定模块的算法40.为提高模块独立性,模块之间最佳是(D)A.公共耦合B.控制耦合C.内容耦合D.数据耦合41.为提高模块独立性,模块内部最佳是(C)A.逻辑内聚B.时间内聚C.功能内聚D.通信内聚42.在软件概要设计中,不使用的图形工具是(D)A.SC图B.IPO图C.IDEF图D.PAD图43.概要设计与具体设计衔接的图形工具是(B)A.数据流图B.结构图C.程序流程图D.PAD图44.软件概要设计结束后得到(B)A.数据流图B.结构图C.程序流程图D.PAD图45.划分模块时,一个模块的(A)A.作用范围应在其控制范围内B.控制范围应在其作用范围内C.作用范围与控制范围互不包含D.作用范围与控制范围不受任何限制46.结构化程序设计重要强调程序的(C)A.效率B.执行速度C.易读性D.规模47.具体设计的任务是拟定每个模块的(B)A.外部特性B.内部特性C.功能D.输入输出数据48.程序的三种基本控制结构是(B)A.过程、子程序和分程序B.顺序、选择和反复C.递归、堆栈和队列D.调用、返回和转移49.程序的三种基本控制结构的共同特点是(D)A.不能嵌套使用B.只能用来写简朴程序C.已经用硬件实现D.单入口和单出口50.下列工作中不属于具体设计基本任务的是(D)A.为模块内的数据结构进行设计B.对数据库进行物理设计C.为每个模块进行具体的算法设计D.为模块进行功能设计51.不属于具体描述解决过程常用的工具是(D)A.图形B.表格C.语言D.程序52.下列4图中不属于具体设计中描述解决过程的重要工具的是(D)A.PAD图B.IPO图C.程序流程图D.程序图53.结构化程序设计重要强调的是(A)A.程序易读性B.程序效率C.程序规模D.程序代码54.下列4图中支持结构化程序设计原理并可自动生成程序的是(D)A.程序流程图B.工程网络图C.程序图D.PAD图55.下列结构中不属于Jackson结构图描述的基本结构的是(D)A.顺序结构B.选择结构C.反复结构D.组装结构56.结构化程序思想提出前程序设计中曾强调程序的效率,现在更重视程序的(D)A.效率B.安全性C.一致性D.可理解性57.源程序文档化规定在每个模块之前加序言性注释。该注释内容不应有(B)A.模块的功能B.语句的功能C.模块的接口D.开发历史58.程序设计语言的心理特性在语言中表现不应涉及(C)A.歧义性B.简洁性C.保密性D.传统性59.程序设计语言的工程特性其中之一表现在(A)A.软件的可重用性B.数据结构的描述性C.抽象类型的描述性D.数据库的易操作性60.程序设计语言的技术特性不应涉及(D)A.数据结构的描述性B.抽象类型的描述性C.数据库的易操作性D.软件的可移植性61.下列语言中,存取管理数据库最方便的是(C)A.汇编语言B.C语言C.SQLD.Prolog62.下列语言中,重要用于实时、并发和嵌入系统,属于面向对象的语言是(C)A.Pascal语言B.C语言C.Ada语言D.SQL语言63.对于开发专家系统等人工智能领域的系统,下列语言中最合适的是(D)A.汇编语言B.C语言C.SQL语言D.Prolog语言64.下列语言中,第一个体现结构化编程思想的语言是(B)A.FORTRAN语言B.Pascal语言C.C语言D.4GL语言65.下列语言中,产生的目的代码运营效率最高的是(A)A.汇编语言B.Cobol语言C.SQL语言D.Prolog语言66.软件测试的目的是(B)A.实验性运营软件B.发现软件错误C.证明软件对的D.找出软件所有错误67.软件测试用例重要涉及输入数据和(C)A.测试计划B.测试规则C.预期输出结果D.测试报告68.为了提高测试效率,应当(D)A.随机地选取测试数据B.取一切也许的输入数据作测试数据C.完毕编码以后制定测试计划D.选择发现错误也许性大的数据作测试用例69.成功的测试是指运营测试用例后(B)A.未发现程序错误B.发现了程序错误C.证明程序对的D.改正了程序错误70.与设计测试用例无关的文档是(A)A.项目开发计划B.需求规格说明C.设计说明D.源程序71.白盒法设计测试用例的根据是程序的(B)A.应用范围B.内部逻辑C.功能D.输入数据72.黑盒法设计测试用例的根据是程序的(C)A.应用范围B.内部逻辑C.功能D.输入数据73.黑盒测试中,着重检查输入条件的组合是(D)A.等价类划分法B.边界值分析法C.错误推测法D.因果图法74.集成测试重要是为了发现(B)A.需求分析的错误B.概要设计的错误C.具体设计的错误D.编码的错误75.下列技术中不属于白盒测试的技术是(D)A.语句覆盖B.鉴定覆盖C.条件覆盖D.边界值分析76.集成测试时,能较早发现高层模块接口错误的测试方法为(A)A.自顶向下渐增测试B.自底向上渐增测试C.非渐增式测试D.系统测试77.确认测试的依据是(A)A.需求规格说明书B.设计说明书C.源程序D.开发计划78.关于白盒技术的逻辑覆盖,下列描述中错误的是(B)A.鉴定覆盖也许使一些条件得不到测试B.语句覆盖查错能力最强C.条件组合覆盖查错能力较强D.途径覆盖查错能力强79.下列覆盖中发现错误能力最强的是(B)A.条件覆盖B.途径覆盖C.鉴定覆盖D.条件组合覆盖80.白盒技术中,未归属于逻辑覆盖的是(B)A.鉴定覆盖B.循环覆盖C.途径覆盖D.条件覆盖81.黑盒技术中不涉及(A)A.基本途径测试B.边界值分析C.错误推测D.等价类划分82.下列描述中,不属于基本途径测试环节的是(A)A.进行边界值分析B.据具体设计或源程序导出程序图C.计算程序图的环路复杂性D.拟定只含独立途径的基本途径集83.下列描述中,不属于单元测试内容的是(A)A.软件的性能B.模块接口C.重要执行途径D.局部数据结构84.下列测试中,最早进行的是确(A)A.单元测试B.集成测试C.确认测试D.系统测试85.关于集成测试,下列描述中错误的是(A)A.可采用演绎法B.可采用自顶向下结合法C.可采用自底向上结合法D.可采用非渐增式方法86.软件维护困难的重要因素是(C)A.费用低B.人员少C.开发方法的缺陷D.维护难度大87.软件维护费用高的重要因素是(B)A.生产率高B.生产率低C.人员多D.人员少88.下列文档中,产生于维护阶段的是(C)A.软件需求说明B.操作手册C.软件问题报告D.测试分析报告89.为辨认和纠正错误,填补软件性能缺陷而修改软件的过程称为(A)A.校正性维护B.适应性维护C.完善性维护D.防止性维护90.为使软件适应其运营环境变化而修改软件的过程称为(B)A.校正性维护B.适应性维护C.完善性维护D.防止性维护91.为使软件增长功能、增强性能、提高效率而修改软件的过程称为(C)A.校正性维护B.适应性维护C.完善性维护D.防止性维护92.为提高软件的可维护性和可靠性而对软件进行修改称为(D)A.校正性维护B.适应性维护C.完善性维护D.防止性维护93.维护活动数量较大,约占整个维护活动的50%的维护类型是(C)A.校正性维护B.适应性维护C.完善性维护D.防止性维护94.软件维护的副作用是指(C)A.开发时的错误B.隐含的错误C.修改软件导致的错误D.运营时误操作95.下列软件特性中互相促进的是(A)A.可理解性和可测试性B.效率和可移植性C.效率和可修改性D.效率和结构好96.下列软件特性中互相矛盾的是(C)A.可修改性和可理解性B.可测试性和可理解性C.效率和可修改性D.可理解性和可读性97.下列措施中,不利于提高软件可维护性的是(B)A.建立明确的软件质量目的B.使用瀑布模型C.使用面向对象的开发方法D.使用历史文档98.采用快速原型模型开发时,一方面应(C)A.构造原型B.运营原型C.快速分析D.评价原型99.演化提交模型是在瀑布模型基础上,于开发过程的(C)A.需求分析阶段进行增量开发B.设计阶段进行增量开发C.所有阶段都进行增量开发D.编码阶段进行增量开发100.面向对象程序设计语言不同于其他语言的最重要的特点是(A)A.继承性B.多态性C.封装性D.内聚性101.面向对象方法的基本特性不涉及(D)A.继承性B.多态性C.封装性D.对的性102.面向对象方法中建立动态模型的图形工具是(D)A.程序图B.数据流图C.对象图D.状态图103.面向对象的方法中组成功能模型的图形工具是(D)A.程序图B.对象图C.状态图D.DFD104.面向对象的方法中组成对象模型的图形工具是(B)A.程序图B.对象图C.状态图D.DFD105.汽车装有一个发动机,汽车和发动机之间的关系是(B)A.一般──具体B.整体──部分C.分类关系D.归纳关系106.火车是一种陆上交通工具,火车和陆上交通工具之间的关系是(D)A.组装关系B.整体──部分C.聚集关系D.一般化关系107.面向对象程序设计不同于其他设计的最重要特点是(C)A.模块B.抽象C.继承D.共享108.软件部件的内部实现与外部可访问性分离,这是指软件的(C)A.继承性B.共享性C.封装性D.抽象性109.实现共享和提高重用的重要途径是(A)A.使用继承B.提高内聚C.减少耦合D.使用封装110.同一类中有相同的数据结构,这种共享的级别是(B)A.不同类级共享B.同一类级共享C.不同应用级共享D.同一应用级共享111.类库机制的共享级别是(C)A.不同类级共享B.同一类级共享C.不同应用级共享D.同一应用级共享112.面向对象分析阶段建立的三个模型中,核心模型(C)A.功能模型B.动态模型C.对象模型D.分析模型113.对象模型的描述工具是(C)A.状态图B.数据流图C.对象图D.结构图114.动态模型的描述工具是(A)A.状态图B.数据流图C.对象图D.结构图115.在只有单重继承的类层次结构中,类层次的结构是(A)A.树型结构B.网状结构C.星型结构D.环型结构116.在具有多重继承的类层次结构中,类层次的结构是(B)A.树型结构B.网状结构C.星型结构D.环型结构117.表达对象的互相行为的模型是(B)A.对象模型B.动态模型C.功能模型D.分析模型118.描述类中某个对象的行为,反映了状态与事件关系的是(B)A.对象图B.状态图C.流程图D.结构图119.有时间间隔的操作是(B)A.动作B.活动C.加工D.解决120.与事件联系在一起的瞬时操作是(B)A.解决B.动作C.活动D.加工121.常用动词或动词词组来表达(C)A.对象B.类C.关联D.属性122.在拟定类时,候选的类涉及所有的(A)A.名词B.形容词C.动词D.代词123.在拟定属性时,候选的属性涉及所有的(C)A.动词B.名词C.修饰性名词词组D.词组124.面向对象方法中实现信息隐蔽是通过对象的(C)A.分类性B.继承性C.封装性D.共享性125.作为软件开发工作的第一步和软件项目管理过程中一个关键的活动是(D)A.编写设计说明B.制定测试计划C.编写需求说明D.制定项目计划126.下列模型中,不属于质量度量模型的是(C)A.Boehm模型B.McCall模型C.喷泉模型D.ISO软件质量评价模型127.ISO软件质量评价模型分为(C)A.1层B.2层C.3层D.4层128.为了定量评价软件质量,必须对软件特性进行(A)A.评审B.测试C.分析D.维护129.制定软件开发进度的重要方法不涉及(B)A.工程网络图B.软件结构图C.Cantt图D.任务资源表130.一个项目是否开发,从经济上来说是否可行,归根结底取决于(A)A.成本的估算B.项目计算C.工程管理D.工程管理131.成本估算方法不涉及(B)A.差别估算方法B.Jackson方法C.自顶向下估算方法D.自底向上估算方法132.自顶向下估算方法的重要特点是重视(B)A.成本估算B.系统级工作C.低档别工作D.工程管理133.自顶向下估算方法的缺陷是往往不清楚(C)A.成本估算上的技术性困难B.系统级上的技术性困难C.低档别上的技术性困难D.工程管理上的技术性困难134.自底向上估算的优点是对各部分的估算交给负责该部分的人做,估算(D)A.往往偏低B.不太准确C.往往偏高D.相对较准确135.自底向上估算的缺陷是往往缺少系统级工作量估算,所以估算(A)A.往往偏低B.不太准确C.往往偏高D.较为准确136.版本管理是对系统不同的版本进行(A)A.标记与跟踪B.项目计划C.工程管理D.工程网络图137.基线可作为检查点,采用的基线发生错误时,可返回到最近的最恰当(C)A.配置项B.程序C.基线D.过程138.属于软件产品的重要组成部分,在软件开发过程起重要的作用的是(C)A.需求规格说明B.概要设计说明C.软件文档D.测试大纲139.开发过程中作为开发人员前阶段成果体现和后阶段工作依据的是(C)A.开发文档B.管理文档C.用户文档D.维护文档140.开发过程中由开发人员制定、提交管理人员的工作计划或报告属于(A)A.开发文档B.管理文档C.用户文档D.维护文档141.开发人员为用户准备的有关该软件使用、操作、维护的资料属于(C)A.开发文档B.管理文档C.用户文档D.维护文档142.软件开发环境是支持软件产品开发的(A)A.工具B.工具箱C.工作台D.软件系统143.软件开发环境由软件开发工具和环境集成机制构成,前者用于支持(D)A.需求分析的相关过程、活动和任务B.软件设计的相关过程、活动和任务C.软件编码的相关过程、活动和任务D.软件开发的相关过程、活动和任务144.初期的软件工具只完毕一个特定任务,后来出现了工作台,它是一组(B)A.工具B.工具的集合C.软件D.软件的集合145.分析和设计工作台支持软件过程的分析和设计阶段,有时称为(A)A.上游CASE工具B.中游CASE工具C.下游CASE工具D.全程CASE工具146.以语言为中心的程序设计环境支持软件生存期(D)A.前期活动B.初期活动C.中期活动D.后期活动147.以语言为中心的程序设计环境特别强调(B)A.对可行性研究活动的支持B.对编程、调试和测试活动的支持C.对需求分析活动的支持D.对设计活动的支持148.软件开发环境中最重要的组成部分是(C)A.软件工程B.项目管理工具C.软件工具D.需求分析工具149.软件工具是一个(C)A.软件工程B.项目管理工具C.程序系统D.需求分析工具150.CASE(Computer-AidedSoftwareEngineering)的含义是计算机辅助(D)A.设计B.教育C.分析D.软件工程151.CASE是一组(D)A.工具的集合B.方法的集合C.程序的集合D.工具和方法的集合152.CASE涉及的技术有两类:一类支持软件开发过程自身,另一类支持(D)A.开发技术B.开发方法C.开发方法管理D.开发过程管理153.平台集成是指工具运营在相同的(D)A.硬件平台上B.软件平台上C.硬件/软件平台上D.硬件/操作系统平台上154.表达集成是指工具提供相同的(B)A.语言B.用户界面C.命令D.操作系统155.控制集成指工具激活后能控制其他(A)A.工具的操作B.系统的操作C.软件的操作D.应用操作156.数据集成指不同软件工程能互相(B)A.合作B.互换数据C.交流D.通讯157.CASE工作台支持设计、实现或测试等特定的软件开发阶段,是一组(A)A.工具集B.平台集C.软件包D.程序包158.由支持程序设计的一组工具组成的工作台是(A)A.程序设计工作台B.分析和设计工作台C.测试工作台D.文档工作台159.支持工作台中一个工具对系统其他工具的访问的CASE集成属于(A)A.控制集成B.平台集成C.数据集成D.表达集成160.三种不同级别的表达集成不涉及(A)A.数据集成B.窗口集成C.命令集成D.交互集成二、填空题(本大题共10空,每空2分,共20分)1.文档是有关计算机程序功能、设计、编制、使用的文字或图形资料。2.划分软件生存周期阶段时,应遵循一条基本原则:各阶段的任务尽也许相对独立,同一阶段各项任务的性质尽也许相同。3.软件工程包含软件软件开发技术和软件工程管理两大部分内容。4.瀑布模型是将生存周期各活动规定为依线性顺序联接的若干阶段的模型。5.喷泉模型是一种以用户需求为动力,以对象为驱动的模型。6.面向对象开发方法一般用喷泉模型,也可选用瀑布模型、增量模型。7.结构化方法可选用瀑布模型、增量模型、螺旋模型。8.可行性研究的重要内容有技术可行性、经济可行性和社会可行性研究。9.效益分析有有形效益和无形效益两种。10.需求分析的基本任务是准拟定义新系统的目的,回答系统必须“做什么”。11.结构化设计是面向数据流的,Jackson方法是面向数据结构的设计方法。12.结构化方法由结构化分析、结构化设计、结构化程序设计构成。13.SA方法运用图形等半形式化的描述方式表达需求,简明易懂,用它们形成需求说明书中的重要部分。14.一个DFD中,既有变换流,又有事务流时,这就是一个综合的数据流图。15.DD中有四类条目:数据流条目、数据项条目、数据存储条目、加工条目。16.需求分析阶段要拟定对问题的综合需求,其中最重要的是功能需求,该阶段产生的最重要的文档之一是需求规格说明书。18.解决一个复杂问题,往往采用的策略是分解。19.SA方法中重要描述工具是DFD(数据流图)与DD(数据字典)。20.数据流图中的箭头表达数据流,椭圆表达加工(解决),双杠表达数据存储,矩型框表达外部实体(数据源点或终点)。21.DFD中,每个加工至少有1个输入流和1个输出流。22.当DFD中某加工的一组动作存在多个复杂组合判断时,宜用鉴定表或鉴定树。23.软件设计的基本原理有模块化、抽象、信息隐蔽、模块独立性。24.模块具有的基本属性有:接口、功能、逻辑和状态。25.通过信息隐蔽,可定义和实行对模块的过程细节和局部数据结构的存取限制。26.模块之间的联系越紧密,其耦合性就越强,模块的独立性就越差。27.模块内各元素的联系越紧密,其内聚性就越高,模块的独立性就越好。28.划分模块时,应尽量做到低耦合、高内聚。29.耦合性最低的是无直接耦合。内聚性最高的是功能内聚。30.概要设计阶段产生的重要的文档之一是概要设计说明书。31.软件结构是以模块为基础而组成的一种控制层次结构。32.反映软件结构的基本形态特性是深度、宽度、扇入、扇出。33.一个模块把数值作为参数送给另一个模块,这种耦合方式属于数据耦合。34.两个模块内部都使用同一张表,这种耦合属于公共耦合。35.一个模块内部各程序段都在同一张表上操作,该模块的内聚性属于通信内聚。36.结构化设计对数据有两种分析方法,它们是变换分析设计和事务分析设计。37.概要设计阶段应为每个模块写一份解决说明和接口说明。38.SP的设计要点是使用三种基本控制结构,自顶向下逐步求精构造算法。39.PAD图清楚地反映了程序的层次结构,图中的竖线为程序的层次线。40.程序的三种基本控制结构是顺序结构、选择结构、反复结构。41.具体描述解决过程常用三种工具是过程设计语言、鉴定表、鉴定树。42.描述加工逻辑一般用以下三种工具:结构化语言(伪码)、鉴定表、鉴定树。43.PAD图是一种算法描述工具,它是一种由左往右展开的二维树型结构。44.数据库的概念设计、逻辑设计、物理设计分别相应于系统开发中的需求分析、概要设计、具体设计。45.程序设计语言的特性重要有心理特性、工程特性和技术特性。46.通常考虑选用语言的因素有:项目的应用领域、软件开发的方法、软件执行的环境、算法和数据结构的复杂性、软件开发人员的知识,其中选择语言的关键因素是项目的应用领域。47.项目的应用领域一般有科学工程计算、数据解决与数据库应用、实时解决、系统软件和人工智能几种类型。48.与编码风格有关的因素有:源程序文档化、数据说明、语句构造、输入和输出、程序效率。49.软件测试是为了发现错误而执行程序的过程。50.软件测试方法一般分两大类:静态测试法和动态测试法,动态测试涉及黑盒法和白盒法。51.被测试程序不在机器上运营而采用人工分析检测或计算机辅助分析检测称为静态测试,使被测试程序在机器上运营的测试方法称为动态测试。52.动态测试涉及白盒法和黑盒法,检查程序是否满足功能规定应采用黑盒法。53.动态测试中,重要测试软件功能的方法称为黑盒法,测试软件内部结构及解决过程的方法称为白盒法。54.要覆盖具有循环结构的所有途径是不也许的,一般通过限制循环次数来测试。55.白盒技术中的逻辑覆盖涉及语句覆盖、鉴定覆盖、条件覆盖、鉴定/条件覆盖、条件组合覆盖和途径覆盖。其中查错能力最弱的是语句覆盖。56.黑盒技术设计方法重要有等价类划分、边界值分析、错误推测、因果图等。57.用等价类划分法设计一个测试用例时,应使其覆盖尽也许多的尚未被覆盖的合理等价类或1个不合理等价类。58.假如规格说明书中具有输入条件的组合情况,则使用因果图。59.集成测试方法有渐增式和非渐增式,渐增式测试组合模块的方法有自顶向下结合和自底向上结合,自顶向下结合可采用深度优先或宽度优先策略。60.单元测试时,需要设计驱动模块和桩模块。61.单元测试大量使用白盒技术;集成测试最常用的是黑盒技术,为保证覆盖重要控制途径,也也许使用一定数量的白盒技术;确认测试仅使用黑盒技术。62.软件维护分为校正性维护、适应性维护、完善性维护、防止性维护。其中维护活动数量较大(约占整个维护活动的50%)的是完善性维护。63.度量一个可维护性软件的7种特性时采用的方法有质量检查表、质量测试、质量标准。其中质量测试和质量标准用于定量分析和评价程序的质量。64.维护阶段是软件生存周期中时间最长的阶段,花费精力和费用最多的阶段。65.软件交付使用后,由于软件开发过程中产生的错误没有完全彻底在测试阶段发现,必然有一部分隐含错误带到维护阶段。66.未按软件工程方法开发的软件,只有程序而无文档,其维护很困难,属于非结构化维护。67.维护费用增长的重要因素是维护的生产率非常低。68.所有软件维护申请报告要按规定方式提出,该报告也称软件问题报告。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.CASE集成重要有平台集成、数据集成、表达集成、控制集成、过程集成。94.软件开发环境是与软件生存期、软件开发方法和软件解决模型紧密相关的。95.软件工具通常由工具、工具接口和工具用户接口三部分构成。96.软件开发环境是相关的一组软件工具的集合,它支持一定的软件开发方法或按照一定的软件开发模型组织而成。97.产品管理涉及版本管理和配置管理。开发过程管理涉及项目计划与控制和任务管理等。98.软件开发环境的重要目的是提高软件开发的生产力、提高软件质量和减少软件成本。99.计算机辅助软件工程这一术语的英文为:CASE。100.CASE是数年来在软件开发管理、软件开发方法、软件开发环境和软件工程等方面研究和发展的产物。三、名词解释(本大题共4小题,每小题5分,共20分)1.软件:软件是计算机程序及其说明程序的各种文档的集合。程序是计算任务的解决对象和解决规则的描述;文档是有关计算机程序功能、设计、编制、使用的文字或图形资料。软件与硬件一起构成完整的计算机系统。2.软件生存周期模型:描述软件开发过程中各种活动如何执行的模型。3.增量模型:一种非整体开发的模型。软件在该模型中是“逐渐”开发出来的,开发出一部分,向用户展示一部分,可让用户及早看到部分软件,及早发现问题。或者先开发一个“原型”软件,完毕部分重要功能,展示给用户并征求意见,然后逐步完善。该模型适合于软件需求不明确、设计方案有一定风险的软件项目。4.需求分析:开发人员准确理解用户规定,进行调查分析,将用户非形式的需求陈述转化为完整的需求定义,再转换到相应的形式功能规约(需求规格说明)的过程。5.SA:结构化分析,是以“自顶向下逐层分解”(把一个复杂问题提成若干小问题,然后再分别解决)为基本思想的面向数据流的需求分析方法。6.DFD:数据流图。以图形方式描绘数据在系统中流动和解决过程,用于表达系统逻辑模型(功能模型)的一种工具。7.HIPO图:表达软件系统结构的工具。它既可描述软件总的模块层次结构──H图(层次图),又可描述每个模块输入/输出数据、解决功能及模块调用的具体情况──IPO图。8.软件结构图:描述软件的模块层次结构(即程序的控制层次体系)的图形工具。9.事务型数据流图:加工将它的输人流提成许多发散的数据流,形成许多加工途径并据输入值选择其中一个途径执行。这种特性的DFD称为事务型数据流图。10.模块化:自顶向下逐层把软件系统划提成若干模块的过程。11.抽象:只考虑事物共有的本质特性而暂不考虑其细节的思维方式。12.信息隐蔽:使模块内的信息(过程或数据)不被不需要这些信息的其他模块访问。13.模块独立性:每个模块只完毕规定的独立的子功能,且与其他模块联系最少且接口简朴。14.耦合性:软件系统结构中各模块间互相联系的紧密限度。15.内聚性:模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密限度。16.模块的控制范围:受该模块内一个鉴定影响的所有模块的集合。17.模块的作用范围:模块自身及其所有下属模块(直接或间接下属模块)的集合。18.程序设计风格:指一个人编制程序时所表现出来的特点、习惯、逻辑思绪等。19.序言性注释:位于模块起始部分,用以说明模块的用途、功能、接口,描述数据、开发历史等。20.功能性注释:嵌在源程序内部,用以描述语句或程序段是做什么或执行后的结果。21.软件测试:为了发现错误而执行程序的过程。22.单元测试:对源程序中每一个程序单元进行测试,检查各个模块是否正的确现规定的功能,从而发现模块在编码中或算法中的错误。(测试①模块接口、②局部数据结构、③重要的执行途径、④错误解决、⑤边界条件)。22.集成测试:在单元测试基础上,将所有模块按设计规定组装成一个完整的系统进行的测试,也称组装测试或联合测试。用于发现模块组装中也许出现的问题。23.确认测试(有效性测试):按照需求规格说明书的规定检测软件,验证软件的功能和性能及其他特性是否与用户的规定一致。24.系统测试:将通过了确认测试的应用软件作为整个计算机系统中的一个元素,和其他系统元素(如硬件,人员,数据库等)结合进行测试,以验证所有系统元素都能否正常配合,从而完毕整个系统的功能,达成预期性能。25.回归测试:在软件修改或调试或增殖了新模块后,使用先前的测试用例对软件反复曾进行过的测试,以验证软件的修改/调试/增殖后有无引出新的错误,是否仍然满足需求规格说明。26.渐增式测试:一方面对一个模块进行模块测试,然后将这些模块逐步组装成较大的系统,在组装过程中边连接边测试,以发现连接过程中产生的问题。27.非渐增式测试(整体拼装):一方面对每个模块分别进行模块测试,然后把所有模块组装在一起,再进行测试。28.黑盒法:把被测试对象当作一个黑盒子,不考虑程序内部结构和解决过程,只在软件的接口处进行测试,依据需求规格说明书,检查程序是否满足功能规定。因此,黑盒测试又称为功能测试或数据驱动测试。29.白盒法:把测试对象看作一个打开的盒子,测试人员必须了解程序的内部结构和解决过程,对程序中尽也许多的逻辑途径进行测试,检查内部控制结构和数据结构是否有错,实际的运营状态与预期的状态是否一致。30.合理等价类:对的的输入数据。31.不合理等价类:错误的输入数据。32.驱动模块:软件测试时,用于代替所测模块的上层模块的一种辅助模块,它接受测试数据,把这些数据传送给所测模块,最后输出测试结果。33.桩模块(存根模块):软件测试时,用于代替所测模块调用的下层子模块的一种辅助模块。它接受所测模块传送给它的数据并向所测模块返回必要的返回数据。34.调试:根据测试结果,拟定错误的因素和位置并改正错误的过程,也称为纠错。35.校正性维护:为辨认和纠正错误,填补软件性能缺陷而修改软件的过程。21%36.适应性维护:为使软件适应其运营环境变化而修改软件的过程。25%37.完善性维护:为使软件增长功能、增强性能、提高效率而修改软件的过程。50%38.防止性维护:为提高软件的可维护性和可靠性而修改软件的过程。4%39.软件可维护性:软件可以被理解、校正、适应及增强功能的容易限度。40.维护副作用:因修改软件而导致的错误或其他不希望出现的情况。41.对象:封装了数据结构及可施加在这些数据结构上的操作的封装体,这个封装体有可唯一地标记它的名字,并且向外界提供一组服务。42.类:具有相同属性和相同操作的一组相似对象的抽象43.状态:对象的静态性质和特性,用数据值(属性值)描述。44.属性:类的静态性质和特性(状态的抽象),用数据结构描述。不同对象的同一属性可有相同或不同的属性值。45.行为:对象的动态性质,用操作描述。46.操作:类的动态性质(类中对象所使用的一种功能或变换),用操作名和方法描述。类中各对象可共享操作,每个操作都有一个目的对象作为其隐含参数。47.方法:类控制操作的实现环节。48.消息:对象之间进行通信的构造,是对象要执行的操作的一个说明。49.消息传递:一个对象发送消息给另一个对象,接受消息的对象通过解释后给予响应,这种通信机制称为消息传递。50.链:对象之间的物理或逻辑联系,即关联的实例。51.关联:类之间的联系,即链的抽象52.角色:类在关联中的作用,位于关联的端点。53.关系:类之间的静态结构关系。①聚集关系(组装关系,整体─部分关系):聚集有传递性和逆对称性,把部分类聚集起来可得一棵聚集树(多级聚集);②一般化关系(分类关系,归纳关系,一般─具体关系):一般化关系和继承同时存在。54.继承:子类自动共享父类数据结构和方法(属性和操作)的机制。55.单重继承:子类只继承一个父类的数据结构和方法。56.多重继承:子类继承了多个父类的数据结构和方法。57.多态性:相同的操作可作用于多种类型的对象上并获得不同结果。即不同的对象,收到同一消息可以产生不同的姑果,这种现象称为多态性。如MOVE操作,可以是窗口对象的移动操作,也可以是国际象棋棋子移动的操作。58.封装性:指所有软件部件内部都有明确的范围以及清楚的外部边界,软件部件的内部实现与外部可访问性分离。59.事件:指定期刻发生的某件事情。是某事情发生的信号,没有连续时间。60.重用性:同一事物不经修改或稍加修改就可多次反复使用的性质。61.对象模型(数据模型):描述系统的静态结构(静态的、结构化的系统数据性质),从客观实体的对象关系角度表现对象的互相关系。重要关心系统中对象的结构、属性和操作,使用对象图作描述工具,是分析阶段三个模型的核心,其他两个模型的框架。62.动态模型(操作模型,业务模型):描述系统的控制结构(与时间和变化有关的系统性质),关心系统的控制,操作的执行顺序,从对象的事件和状态角度表现对象的互相行为。使用状态图作描述工具。63.功能模型:描述系统的所有计算,表白一个计算如何从输入值得到输出值,不考虑计算顺序。使用数据流图作描述工具。功能模型也涉及对象模型中值的结束条件,说明对象模型中操作的含义、动态模型中动作的意义及对象模型中约束的意义。64.时间冗余:以反复执行指令(指令复执)或程序(程序复算)来消除瞬时错误的影响。复执不成功时,通常发出中断,转入错误解决程序,或对程序进行复算,或重新组合系统,或放弃解决。65.人力资源:工作规定的人员的数量、级别及其工作时段。66.硬件资源:工作所需的硬件支持和测试设备。67.软件资源:工作所需的支持软件和应用软件。68.专家估算:依靠专家对项目做出估算。69.类推估算:自顶向下法中,它是将估算项目的总体参数与类似项目直接比较得到结果。自底向上方法中,类推是在两个具有相似条件的工作单元之间进行。70.工程网络图:常用来描述项目进度的一种图形工具,是有向图,用圆表达事件(标志一项子任务的开始与结束),箭头表达子任务的进行;箭头上的数字表达此子任务的连续时间;箭头下面括号中的数字表达任务的机动时间;圆左边部分的数字表达事件号,右上部的数字表达前一子任务结束或后一子任务开始的最早时刻,右下部的数字表达前一子任务结束或后一子任务开始的最迟时刻。71.软件配置管理:一组管理整个软件生存期各阶段中变更的活动。其重要目的是:标记变更;控制变更;保证变更对的地实现;报告有关变更。72.基线:软件生存期中各开发阶段的一些特定点,作用是把开发各阶段工作的划分更加明确化,使本来连续的工作在这些点上断开,以便于检查与肯定阶段成果。73.软件开发环境:①软件开发环境是一组相关工具的集合;②这些相关工具是按一定的开发方法或一定开发解决模型组织起来的;③这些相关工具支持整个软件生存期的各阶段或部分阶段。74.软件工具:为支持计算机软件的开发、维护、模拟、移植或管理而研制的程序系统。75.程序设计环境:解决如何将规范说明转换成可工作的程序问题,涉及方法与工具。76.系统合成环境:重要考虑把很多子系统集成为一个大系统的问题。用于辅助控制子系统及其向大系统的集成。77.项目管理环境:是解决由于软件产品的规模大、生存期长、人们的交往多而导致的问题。78.CASE:用于辅助软件开发各阶段进行软件开发的一组工具和方法的集合。79.平台集成:工具运营在相同的硬件/操作系统平台上。80.数据集成:工具使用共享数据模型来操作。81.表达集成:工具提供相同的用户界面。82.控制集成:工具激活后能控制其他工具的操作。83.过程集成:工具在一个过程模型和“过程机”的指导下使用。84.CASE工作台:CASE工作台是一组工具集,支持像设计、实现或测试等特定的软件开发阶段。85.CASE生存期:CASE系统循从初始需求到完全废弃这一生存期。CASE生存期6阶段:CASE需求;CASE剪裁;CASE引入;CASE操作;CASE演化;CASE废弃。四、简答题(本大题共4小题,每小题5分,共20分)1.软件产品的特点有哪些?答:①逻辑产品;②使用无磨损;③生产重要是研制;④生产重要靠脑力劳动;⑤生产成本高。2.软件危机的重要表现有哪些?答:⑴经费预算一再突破。软件开发的经验和数据积累的缺少使开发计划很难制定。主观盲目制定计划,执行起来与实际情况有很大差距,使开发经费一再突破。⑵完毕时间一再迟延。工作量与开发难度估计的局限性使进度计划无法准时完毕。⑶开发的软件不能满足用户规定。开发初期对用户规定了解不够明确,开发工作开始后,软件人员和用户又未及时互换意见,一些问题不能及时解决,导致开发的软件不能满足用户规定。⑷开发的软件可维护性差。开发过程没有统一、公认的规范,开发人员按各自风格工作,各行其是。开发过程无完整、规范的文档,发现问题后进行杂乱无章的修改。程序结构不好,运营时发现错误也很难修改,导致维护性差。⑸开发的软件可靠性差。开发过程中没有保证软件质量的体系和措施,软件测试时又没有严格、充足、完全的测试,提交的软件质量差,在运营中暴露出大量问题。不可靠的软件,轻者影响系统正常工作,重者发生事故,导致生命财产损失。3.软件危机重要因素有哪些?答:2方面:软件因素,人员因素;①软件规模越来越大,结构越来越复杂;②开发技术落后;③生产方式落后;④开发工具落后,生产率低;⑤开发管理复杂且困难;⑥开发费用不断增长。4.消除软件危机的重要途径有哪些?答:①技术措施:研究和使用更好的开发方法和工具;②管理措施:良好组织,严密管理,加强协作。5.软件工程过程包含的七个过程是什么?答:软件工程过程规定了获取、供应、开发、操作和维护软件时要实行的过程、活动和任务。⑴获取过程:定义需方按协议获取一个系统、软件产品或服务的活动。⑵供应过程:定义供方向需方提供协议中的系统、软件产品或服务所需的活动。⑶开发过程:定义开发者和机构为定义和开发软件或提供服务所需的活动(涉及需求分析、设计、编码、集成、测试、软件安装和验收等)。⑷操作过程:定义操作者和机构为在规定的运营环境中为其用户运营一个计算机系统所需的活动。⑸维护过程:定义维护者和机构为修改和管理软件,使它处在良好运营状态所需要的活动。⑹管理过程:定义软件工程过程中各项管理活动,涉及项目开始和范围定义,项目管理计划,实行和控制,评审和评价,项目完毕。⑺支持过程:对项目生存周期过程给予支持。6.什么是瀑布模型?它将软件生存周期分为哪几个阶段?适合于哪些项目开发?答:瀑布模型是将软件生存周期各个活动规定为依线性顺序连接的若干阶段的模型。它将软件生存周期分为可行性研究与项目开发计划、需求分析、概要设计、具体设计、编码、测试、维护7个阶段。它规定了由前至后、互相衔接的固定顺序,如瀑布流水,逐级下落。为软件开发提供了一种有效管理模式。以文档为驱动,适合于软件需求明确且基本固定的软件项目开发。7.请简要说明原型的优点。答:⑴及早为用户提供有用的产品。⑵及早发现问题,随时纠正错误。⑶减少技术、应用风险,缩短开发时间,减少费用,提高生产率。⑷通过实际运营原型,提供直接评价系统的方法,促使用户积极参与开发活动,加强信息反馈,促进协调,减少误解,适应需求变化,提高系统质量。8.项目解决方法可行性研究的三大内容有哪些?答:⑴技术可行性分析(技术水平,人员素质,软硬资源,约束条件);⑵经济可行性分析(成本估算、效益评估;成本─效益分析、公司经营长期策略、开发所需成本和资源、潜在市场前景);⑶社会可行性分析(协议、责任、侵权、用户组织的管理模式及规范等)9.结构化方法的三大构成是什么?各合用于软件开发何阶段?答:⑴结构化分析SA:用于需求分析阶段(面向数据流进行需求分析的方法。使用简朴符号,根据软件内部数据传递、变换关系,自顶向下逐层分解,描绘出满足功能规定的软件模型);⑵结构化设计SD:用于概要设计阶段(面向数据流的设计方法。以DFD为基础映射成软件结构);⑶结构化程序设计SP:用于具体设计阶段(采用自顶向下、逐步求精的程序设计方法;使用三种基本控制结构构造程序;单入口、单出口)。10.面向对象方法的三大内容是什么?各相称于结构化软件开发方法何阶段?答:⑴面向对象分析[①问题陈述与需求分析;②建模(对象模型,动态模型;功能模型)];相称于需求分析阶段。⑵面向对象的设计(OOD)[把分析阶段得到的需求转变成符合成本和质量规定的、抽象的系统实现方案的过程:①系统设计:拟定实现系统的策略和目的系统的高层结构;②对象设计:拟定解空间中的类、关联、接口形式及实现操作的算法];相称于概要设计和具体设计阶段。⑶面向对象的实现[①类和系统的实现:把OOD结果翻译成用某种程序设计语言书写的面向对象程序;②测试并调试面向对象程序];相称于编码和测试阶段。11.什么是需求分析?该阶段的基本任务是什么?其重要任务有哪些?答:需求分析是将用户需求陈述转化为完整的需求定义,继而形成规范化的需求规格说明的过程。其基本任务是准拟定义新系统的功能,重要任务有:⑴拟定系统需求(问题辨认):功能需求,性能需求,环境需求,用户界面需求,其它需求(可靠性,安全性,保密性,可维护性等);⑵导出系统逻辑模型;⑶编修文档:需求规格说明书,用户手册,确认测试计划,项目开发计划;⑷评审。12.DFD的作用是什么?画DFD应注意什么?答:DFD的作用:以图形的方式描绘数据在系统中流动和解决,形成系统的逻辑模型(功能模型)。画DFD时的注意事项:⑴命名。数据流、数据存储和加工均应合理命名。⑵编号。子图及子图上的所有加工应编号,且与父图中相应加工的编号呼应。⑶加工必须有输入数据流和输出数据流。⑷不画控制流、物质流。⑹父图与子图必须平衡。⑺局部数据存储与信息隐蔽。局部数据存储只有当它作为加工的数据接口或特定的输入或输出时才画出来。⑻提高DFD的易理解性。分解时注意均匀性和子加工独立性。13.DD的作用是什么?答:定义数据流图中的各个成分的具体含义,和DFD共同构成系统的逻辑模型,是需求规格说明书的重要组成部分。14.软件概要设计阶段的基本任务是什么?答:⑴软件结构设计(划分模块;拟定模块的功能;拟定模块之间的调用关系与接口;评价模块结构的质量);⑵总体数据结构及数据库逻辑设计;⑶编修文档(概要设计说明书;数据库设计说明书;用户手册;集成测试计划);⑷评审15.软件设计的基本原理有那些?答:⑴模块化(自顶向下逐层把软件系统划提成若干模块);⑵抽象(抽出事物本质特性而暂不考虑其细节);⑶信息隐蔽[设计模块时使模块内的信息(过程或数据)不能被不需要这些信息的其他模块访问];⑷模块独立性(低耦合、高内聚:每个模块只完毕系统规定的独立的子功能,并且与其他模块的联系最少且接口简朴)。16.模块的耦合性涉及哪些种类?答:⑴无直接耦合(两模块间无直接关系);⑵数据耦合(模块调用时传递简朴的数据值);⑶标记耦合(模块调用时传递数据结构);⑷控制耦合(模块调用时传递控制变量,被调模块通过该控制变量的值选择执行块内某一功能);⑸公共耦合(模块之间通过公共数据环境互相作用);⑹内容耦合(一个模块直接使用另一模块的内部数据或通过非正常入口转入另一模块内部)。17.如何减少模块间的耦合度?答:⑴尽量采用简朴的接口方式、接口信息结构和数量(减少模块接口的复杂性):接口方式采用调用(如过程语句调用)而不直接引用(内容耦合);接口信息通过参数值传递且结构尽量简朴(不用复杂参数结构如指针等);参数个数不宜太多。⑵尽量使用数据耦合,避免控制耦合,慎用或有控制地使用公共耦合。18.模块的内聚性涉及哪些种类?答:⑴偶尔内聚(模块内各解决元素之间没有联系);⑵逻辑内聚(模块内执行几个逻辑相似的功能,通过参数拟定完毕哪个功能);⑶时间内聚(把需要同时执行的动作组合在一起形成的模块);⑷通信内聚(模块内所有解决元素都在同一数据结构上操作或各解决使用相同输入或产生相同输出);⑸顺序内聚(模块中各解决元素都密切相关于同一功能且顺序执行,前一功能元素的输出就是下一功能元素的输入);⑹功能内聚(模块内所有元素共同完毕一个功能,缺一不可)。19.简述软件结构设计优化准则。答:⑴力求高内聚,低耦合,保持模块相对独立性(①合并高耦合的简朴模块;②消去相关模块内的反复功能);⑵模块的作用范围应在其控制范围内,且鉴定所在模块应与受其影响的模块在层次上尽量靠近(①上移判断点;②下移受判断影响的模块);⑶软件结构的深度、宽度、扇入、扇出应适当(顶层扇出数较高,中间层扇出数较低,底层扇入数较高):⑷模块大小适中;⑸模块接口简朴、清楚、含义明确;⑺设计单入口单出口的模块;⑻模块功能应可预测20.概要设计阶段要编制或修订的文档有哪些?答:⑴概要设计说明书。⑵数据库设计说明书,重要给出所使用的DBMS简介、数据库的概念模型、逻辑设计、结果。⑶用户手册,对需求分析阶段编写的用户手册进行补充。⑷修订测试计划,对测试策略、方法、环节提出明确规定。21.具体设计的基本任务是什么?答:⑴模块的算法设计(用某种图形、表格、语言等工具描述每个模块解决过程的具体算法)。⑵模块内数据结构设计(对需求分析、概要设计拟定的概念性的数据类型进行确切定义。⑶数据库物理设计(拟定数据库物理结构)。⑷其他设计(代码设计;输入/输出格式设计;人机对话设计等。⑸编修文档(具体设计说明书,数据库设计说明书,用户手册,单元测试计划等)。⑹评审。22.请简要说明PAD图的优点。答:⑴清楚反映程序层次结构:图中竖线为程序层次线,最左竖线是程序主线,向右一层层展开,层次关系一目了然;⑵支持逐步求精:左边层次的内容可抽象,然后由左到右逐步细化;⑶易读易写易用;⑷支持结构化程序设计;⑸可自动生成程序。23.具体设计重要使用哪些描述工具?各有什么特点?答:具体设计可使用三种描述工具:图形、表格和语言。其中重要有程序流程图、盒图、问题分析图、IPO图、鉴定表、鉴定树、伪码等。⑴程序流程图(程序框图):历史最悠久、使用最广泛;直观清楚,易于使用;但易导致非结构化的程序结构;不易反映逐步求精的过程;不易表达数据结构。⑵盒图(N_S图):功能域明确,支持结构化程序设计原理,易拟定局部和全程数据作用,可表达模块层次结构。⑶PAD图(问题分析图):清楚反映程序层次结构,支持逐步求精,易写易懂易记,使用方便,支持结构化的程序设计原理,可自动生成程序代码,既可表达程序逻辑,也可描绘数据结构。⑷鉴定表:能清楚、简洁而无歧义地描述复杂条件组合与应做动作之间的相应关系,逻辑验证严格,能把所有也许所有都考虑到;但不能表达顺序和反复结构。⑸鉴定树:形式简朴,直观易读,易掌握和使用。但简洁性不如鉴定表。24.简述构造鉴定表的环节。答:⑴提取问题中的条件;⑵标出条件的取值;⑶计算所有条件的组合数;⑷提取可采用的操作;⑸制作鉴定表;⑹完善鉴定表(补漏掉,删冗余)。25.简述用Jackson方法进行程序设计的环节。答:⑴分析并用Jackson图描绘输入数据和输出数据的逻辑结构。⑵找出输入数据结构和输出数据结构中的相应数据单元。⑶从Jackson数据结构图导出程序结构图(①为每对有相应关系的数据单元,在程序结构图相应层次画一个解决框;②输入数据结构图、输出数据结构图中剩余的每个数据单元,在程序结构图相应层次分别为其画上相应解决框)。⑷列出所有操作和条件,并把它们分到程序结构图的适当位置。⑸用伪码表达程序。26.项目开发时选择语言通常考虑那些因素?答:项目的应用领域、软件开发的方法、软件执行的环境、算法和数据结构的复杂性、软件开发人员的知识。27.什么是程序设计风格?应在哪些方面注意培养良好的设计风格?答:程序设计风格指一个人编制程序时所表现出来的特点、习惯、逻辑思绪等。⑴源程序文档化:①恰当命名标记符:力求见名知意;②及时书写、修正注释:保持文档一致性;③适当进行视觉组织:恰当运用空格、空行和缩进,帮助提高程序的可阅读性、可理解性。⑵数据说明规范:①数据说明顺序应规范;③说明多个变量时,各变量名按字典序排列;③对复杂的数据结构加注释。⑶语句构造简朴、清楚、直接:①不为追求效率而使代码复杂化;②不为追求技巧性而使程序过于紧凑;③避免复杂鉴定、多重循环嵌套和不必要的转移;④恰当使用空格、缩进和括号,提高语句和运算顺序的清楚度。⑷精心设计输入、输出:①输入格式和操作环节尽量简朴;②检查输入数据合法性、有效性,报告必要的输入状态信息及错误信息;③批量输入数据时使用输入结束标志而不用计数控制;④交互式输入时提供可用选择和边界值;⑤保持输入格式一致性;⑥输出数据表格化、图形化。⑸对的追求程序效率:①效率达成需求规格说明的规定即可;②在保证程序可靠性和可阅读性基础上再追求效率建立;③提高效率的主线途径在于选择良好的设计方法、良好的数据结构与算法,而不是靠编程时对程序语句做调整。28.软件测试的目的是什么?软件调试的目的是什么?答:软件测试的目的是选用最少的、高效的测试数据以发现尽也许多的错误:软件调试的目的是拟定错误的因素和位置并改正错误。29.白盒法有哪些逻辑覆盖标准?答:①语句覆盖(每条语句至少执行一次);②鉴定覆盖(每个鉴定的每个分支至少执行一次);③条件覆盖(每个鉴定的每个条件应取到各种也许的值);④鉴定/条件覆盖(同时满足鉴定覆盖和条件覆盖);⑤条件组合覆盖(每个鉴定中各条件的每一种组合至少出现一次);⑥途径覆盖(程序中每一条也许的途径至少执行一次)。30.试比较各种逻辑覆盖标准的查错能力。答:语句覆盖查错能力最弱;鉴定覆盖包含语句覆盖,但也许会漏测一些条件;条件覆盖查错能力一般情况较鉴定覆盖强,但有时达不到鉴定覆盖规定;鉴定/条件覆盖包含鉴定覆盖和条件覆盖,但事实上不一定达成条件覆盖标准;条件组合覆盖发现错误能力较强,满足其标准的测试用例必满足前四种覆盖标准。前五种覆盖标准也许会漏测某些途径。途径覆盖查错能力强,但也许达不到条件组合覆盖规定。31.属于黑盒法的测试用例设计方法有哪几种?试对这些方法做比较。答:重要有等价类划分、边界值分析、错误推测、因果图等。其比较如下:⑴等价类划分将输入数据域按合理的或不合理提成若干等价类,测试每个等价类的代表值就等于对该类其他值的测试。该法比随机选择测试用例要好得多,缺陷是没有注意选择某些高效的、能发现更多错误的测试用例。⑵程序往往在解决边界情况时犯错。边界值分析法选择边界附近的值作为测试用例,检查边界情况,查错效率较高,可查出更多的错误,能发现被疏忽的问题。⑶错误推测法根据经验或直觉推测程序中也许存在的各种错误,从而有针对性地编写检查这些错误的测试用例。该法没有拟定的环节,凭经验进行。⑷等价类划分和边界值分析方法没有考虑多个输入数据的组合引起的错误。因果图把用自然语言描述的功能说明转换为鉴定表,最后为鉴定表的每一列设计一个测试用例。因果图能有效地检测输入条件的各种组合也许会引起的错误。⑸上述测试方法各有所长,每种方法都能设计一组相应测试例子,用这组例子易发现某种类型错误,但也许不易发现另一种类型错误。因此实际测试中应综合使用各种测试方法,形成综合策略,通常先用黑盒法设计基本的测试用例,再用白盒法补充一些必要的测试用例。具体做法是:①任何情况下都应使用边界值分析法。设计用例时,应既涉及输入数据的边界情况又尽量涉及输出数据的边界情况。②必要时用等价类划分方法补充一些测试用例。③再用错误推测法补充测试用例。④检查上述测试用例的逻辑覆盖限度,如未满足所规定的覆盖标准,再增长例子。⑤假如规格说明中具有输入条件的组合情况,则一开始就可使用因果图法。32.软件测试要通过哪几个阶段?各个阶段与什么文档有关?答:⑴单元测试:具体设计说明书,源程序清单,单元测试计划,单元测试报告⑵集成测试:概要设计说明书,具体设计说明书,集成测试计划,集成测试报告⑶确认测试:需求规格说明,用户手册,操作手册,测试计划,测试报告,项目开发总结⑷系统测试:需求规格说明书,系统测试计划,系统测试报告33.如何进行基本途径测试?答:⑴以具体设计或源程序为基础,导出程序图;⑵计算程序图的环路覆杂性;⑶拟定只包含独立途径的基本途径集;⑷设计测试用例,保证基本途径集中每条途径(独立途径)的执行。34.如何运用边界值分析方法设计测试用例?答:以测试边界情况为重点,选取正好等于、刚刚大于或刚刚小于边界值的数据构建测试用例。①假如输入条件规定了值的范围,可选择正好等于边界值的数据作为合理的测试用例,同时选择刚好越过边界值的数据作为不合理的测试用例。②假如输入条件指出了输入数据的个数,则按最大个数、最小个数、比最小个数少1、比最大个数多1等情况分别设计测试用例。③对每个输出条件分别按照以上原则①或②拟定输出值的边界情况。④假如程序的规格说明给出的输入或输出域是个有序集合(如顺序文献、线性表、链表等),则应选取集合的第一个元素和最后一个元素作为测试用例。35.请简要说明归纳法调试及其具体环节。答:归纳法是一种从特殊到一般的思维过程。归纳法调试从测试结果发现的线索(错误迹象、征兆)入手,分析它们之间的联系,导犯错误因素的假设;然后再证明或否认这个假设。归纳法调试的具体环节如下:⑴收集有关数据:列出程序做对了什么、做错了什么的所有信息。⑵组织数据:整理数据以便发现规律,使用分类法构造一张线索表。⑶提出假设:分析线索之间的关系,导出一个或多个错误因素的假设。若不能推测一个假设,再选用测试用例测试,以得到更多的数据。若有多个假设,先选也许性最大的一个。⑷证明假设:需证明假设是否合理。不经证明就根据假设改错,只能纠正错误的一种表现或只纠正一部分错误。假如不能证明这个假设成立,则需提出下一个假设。36.软件维护的流程是什么?答:制定维护申请报告→审查申请报告并批准→进行维护并具体记录→复审。29.如何才干得到可维护性高的程序(提高可维护性有那些方法)?答:⑴建立明确的软件质量目的。⑵采用先进的软件开发方法、技术和工具。⑶建立明确的质量保证体系。⑷选择可维护的程序设计语言。⑸改善程序文档。37.软件维护也许产生的哪些副作用?答:编码副作用、数据副作用、文档副作用。38.面向对象分析中建立的三大模型是什么?有何作用?各使用什么工具描述?答:⑴对象模型描述系统的静态结构(对象的结构、属性和操作),表现对象的互相关系。使用对象图描述;⑵动态模型描述系统的控制结构(触发事件、事件序列、状态、事件与状态的组织),表现对象的互相行为。使用状态图描述;⑶功能模型描述系统的所有计算,表白如何从输入值得到输出值,不考虑计算顺序;功能模型也涉及对象模型中值的结束条件,说明对象模型中操作及约束的意义、动态模型中动作的意义,使用DFD描述(解决相应于状态图的活动和动作,数据流相应于对象图中的对象或属性)。39.说明构造对象模型的各个元素及图形表达。答:①类:用矩型框表达,框内标注类名、属性、操作。②关联:用类与类之间的连线表达;可以是二元关联、多元关联、受限关联等;应标注关联的含义、重数(一对一,一对多等);可附注角色。③关系:组装关系用菱形符号表达,分类关系用三角符号表达。(参见应用题)40.说明构造动态模型的各个元素及图形表达。答:①状态:用椭圆结点表达,椭圆内有状态名和该状态下进行的活动;可有初始状态(用圆点表达,可标注起始条件)或/和终末状态(用圆圈中加圆点表达,可标注终止条件)。②事件:用箭头表达,上面标记事件名,箭头方向表达转换的方向。(参见右图)一般需求管理者用户知识领域知一般需求管理者用户知识领域知识现实世界经验问题陈述对象模型动态模型功能模型系统设计用户开发者建模答:构造功能模型的元素有:①数据流:用箭头表达,上面标记数据流名称,箭头方向表达数据流动的方向。②加工:用椭圆表达,椭圆内有加工的名称和编号。③数据存储:用双杠表达,可标记存储的文献名称。④外部实体:用矩型框表达,框内标注名称。(参见右图)42.说明分析阶段建立的三个模型的关系。答:⑴功能模型指出发生了什么,动态模型拟定什么时候发生,对象模型拟定发生的客体(功能模型说明做什么,动态模型说明如何做,对象模型说明由谁做和对谁做)。三者分工协作,构成一套完整的分析模型(对象模型描述系统的静态结构,表现对象的互相关系,重要关心系统中对象的结构、属性和操作;动态模型描述系统的控制结构,表现对象的互相行为,关心系统的控制、操作的执行顺序;功能模型描述系统的所有计算,表白如何从输入得到输出,不考虑计算顺序;功能模型也涉及对象模型中值的结束条件,说明

温馨提示

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

评论

0/150

提交评论