• 540.73 KB
  • 2022-04-22 11:24:04 发布

软件工程(第五版)--习题及答案.docx

  • 43页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'《软件工程》(第五版)习题参考答案第1章一、判断题1、(×)软件的维护与硬件维护本质上是相同的。2、(√)软件在运行和使用中也存在退化问题。3、(×)软件危机的产生主要是因为程序设计人员使用了不适当的程序设计语言。4、(√)软件同其他事物一样,有孕育、诞生、成长、成熟和衰亡的生存过程。5、(×)文字处理软件Word属于系统软件。应用软件6、(√)原型是软件的一个早期可运行的版本,它反映最终系统的部分重要特性。7、(√)软件开发过程中,一个错误发现得越晚,为改正它所付出的代价就越大。8、(×)快速原型模型对软件开发人员的水平要求不高。9、(√)喷泉模型适合于面向对象的软件开发。10、(×)面向对象开发方法的主要缺点是在适应需求变化方面不够灵活。二、选择题1、软件是一种(C)。A、程序B、数据C、逻辑产品D、物理产品2、软件开发方法是(A)。A、指导软件开发的一系列规则和约定B、软件开发的步骤C、软件开发的技术D、软件开发的思想3、软件生存周期中花费最多的阶段是(D)。A、详细设计B、软件编码(最少)C、软件测试D、软件维护4、软件工程的三要素不包括(D)。A、工具B、过程C、方法D、环境5、在软件生存周期中,能准确地确定“软件系统必须做什么”的阶段是(D)。A、总体设计B、详细设计(怎么做)C、可行性研究(能不能做)D、需求分析6、瀑布模型本质上是一种(A)模型。A、线性顺序B、顺序迭代C、线性迭代D、能及早见到产品的7、瀑布模型突出的缺点是不适应(D)的变动。A、算法B、程序语言C、平台D、用户需求8、在软件开发模型中,提出最早、应用最广泛的模型是(A)。A、瀑布模型B、喷泉模型C、快速原型模型D、螺旋模型9、瀑布模型不适合用于(A)的软件开发。A、需求模糊不清B、用户不能参与开发C、用户对计算机不了解D、开发人员对业务知识不熟悉10、快速原型的主要优点不包括(D)。A、能让用户参与开发、给出反馈B、尽早把需求分析清楚,以降低风险43 C、尽早地发现问题、纠正错误D、对软件分析设计人员的素质要求不高11、快速原型的主要问题在于(A)。A、缺乏支持原型开发的工具B、要严格控制原型构造的迭代C、终端用户对原型不能理解D、软件的测试和文档更新困难12、螺旋模型是一种将瀑布模型和(A)结合起来的软件开发模型。A、增量模型B、专家系统C、喷泉模型D、变换模型13、在软件生产的程序系统时代由于软件规模扩大和和软件复杂性提高等原因导致了(A)。A、软件危机B、软件工程C、程序设计革命D、结构化程序设计14、集成化开发环境中的环境集成机制不包括(D)。A、数据集成B、控制集成C、界面集成D、服务集成15、软件工程的出现是由于(A)。A、软件危机的出现B、计算机硬件技术的发展C、软件社会化的需要D、计算机软件技术的发展三、简答题1、软件通过你自己使用计算机的经历和对计算机的认识分辨软件和程序的差别,指出区别的关键点。答:软件包括程序、数据及其相关文档的完整集合。其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能够正确地处理信息的数据结构;文档是与程序开发、维护和使用有关的图文资料。软件包括程序,程序只是软件的一部分。2、简述软件危机产生的原因以及避免的方法。答:软件危机的产生有两方面因素,一方面与软件本身的抽象性和复杂性有关;另一方面则与软件开发和维护过程中使用的技术和方法有关,这是主观原因。为了解决软件危机,既要有技术措施(好的方法和工具),也要有组织管理措施。(1)使用好的软件开发技术和方法。(2)使用好的软件开发工具,提高软件生产率。(3)有良好的组织、严密的管理,各方面人员相互配合共同完成任务。3、简述软件工程在软件开发中的作用和意义。答:软件工程的主要思想是强调软件开发过程中应用工程化原则的重要性。软件工程的目标是实现软件的优质高产。软件工程的目的是在经费的预算范围内,按期交付出用户满意的、质量合格的软件产品。4、软件生命周期概念对软件的开发有哪些指导作用。43 答:软件生命周期是软件工程的一个重要的概念。把整个软件生命周期划分为若干个较小的阶段,每个阶段都有相对独立的任务和完成任务的步骤和方法,然后逐步完成各个阶段的任务,这有利于软件开发过程的组织和管理,从而降低了整个软件开发过程的困难程度,从而使规模庞大、结构复杂和管理复杂的软件开发变得容易控制和管理。5、分析瀑布模型和螺旋模型的异同,比较它们的适用场合。答:瀑布模型是线性模型,是整体开发模型,文档驱动的模型,每一阶段必须完成指定的文档,需求明确的中、小型软件开发,不适宜需求模糊或多变的应用软件开发;螺旋模型是典型迭代模型,是风险驱动模型,可用于面向对象开发,适宜风险较大的大型软件开发。第2章一、选择题1、系统流程图是一种传统工具,用于描绘(D)。A、逻辑模型B、程序结构C、体系结构D、物理系统2、软件可行性研究的目的是(C)。A、证明软件开发项目可行B、证明软件开发项目不可行C、阐述软件开发项目值得或不值得做D、为了确定软件开发项目要不要做3、技术可行性研究要解决的问题是(A)。A、从技术方面说明项目是否可行B、从技术上定义项目要解决的问题C、给出项目开发可行的技术路线D、给出精简的项目需求设计报告4、可行性研究的步骤首先是(A)。A、确定项目目标,即对要解决的问题进行定义B、研究项目要求C、对项目目标进行可行性分析D、给出可行的解决方案5、可行性研究的任务不包括(D)。A、技术可行性B、经济可行性C、法律可行性D、政治可行性6、系统流程图是描述(A)的工具。A、物理系统B、逻辑系统C、体系系统D、程序系统7、可行性研究实质上是要进行一次(A)需求分析,设计过程。A、简化、压缩的B、详细的C、彻底的D、深入的8、系统流程图的符号不包括(D)。43 A、B、C、D、二、简答题1、软件开发的早期,为什么要进行可行性研究?目标的可行性研究有几个方面?答:许多软件开发问题都不能在预期的时间范围内或资源限制下得到解决。如果开发人员没有尽早停止没有可行解决方案的开发项目,就会造成时间、资金、人力、物力的浪费。为了降低软件开发失败的可能性,需要进行软件可行性研究。可行性研究要从经济可行性、技术可行性、运行可行性和法律可行性四方面进行。2、简述可行性研究的步骤。答:(1)审核系统的规模和目标;(2)分析研究现行系统;(3)设计新系统的高层逻辑模型;(4)获得并比较可行的方案;(5)撰写可行性研究报告。3、某航空公司为了方便旅客,拟开发一个机票预订系统。将旅客的信息(姓名、性别、工作单位、身份证号、旅行时间、旅行目的地等)输入该系统后,系统自动为旅客安排航班。打印出取票通知和票务账单。旅客可在航班的前一天凭取票通知和票务账单交款取票。系统校对无误后即打印出机票给旅客。要求:(1)提出问题定义;(2)分析此系统的可行性;(3)画出系统流程图。答:(1)问题定义:航运公司机票预订系统问题定义-------------------------------------------------------------------系统目标和范围说明书1.项目名称:X航运公司机票预订系统。2.背景:目前,由旅客人工到航运公司排队购票,费时、费力、管理工作量大、手续繁琐效率低,制约了公司业务的发展。3.项目目标:建立一个网络化的机票预订系统。4.项目范围:软件开发费用不超过X万元。5.初步设想:建议在系统中完成安排航班、打印取票通知、打印票务账单、打印机票等主要功能。6.可行性研究:建议进行大约X周的可行性研究,研究费用不超过X元。-------------------------------------------------------------------(2)可行性分析技术可行性:使用现有的技术能够实现此系统,在现有资源(包括硬件资源、软件资源、技术人员的技术水平和已有的工作基础)条件下,技术风险不大,项目可以实现。经济可行性:此系统能够方便旅客订票,具有一定的经济效益和社会效益。法律可行性:此项目开发要符合航运系统相关要求。操作可行性:现有制度、人员素质、操作方式可行。(3)系统流程图43 第3章一、判断题1、(√)软件需求分析阶段要确定软件系统要“做什么”。2、(×)软件需求规格说明书可作为可行性研究的依据。3、(√)需求分析员可以参加最后的需求评审工作。4、(×)画数据流图时可以加少量的控制流,使加工之间有时序的关系。5、(√)结构化分析模型的核心是数据词典。6、(×)在数据流图中,带有箭头的线段表示的是控制流。数据流7、(×)在软件生产过程中,需求信息的来源是项目经理。用户8、(√)需求分析阶段的任务是确定软件的功能。做什么二、选择题1、需求分析最终结果是产生(B)。43 A、项目开发计划B、需求规格说明书C、设计说明书D、可行性分析报告2、数据流图(DFD)是(A)方法中用于表示系统的逻辑模型的一种图形工具。A、SAB、SDC、SPD、SC3、需求规格说明书的作用不包括(C)。A、软件验收的依据B、用户与开发人员对软件要做什么的共同理解C、软件可行性研究的依据D、软件设计的依据4、数据词典是用来定义(D)中的各个成分的具体含义。A、流程图B、功能结构图C、结构图D、数据流图5、结构化分析方法(SA)是一种面向(B)的分析方法。A、数据结构B、数据流C、结构化数据系统D、对象6、在数据词典中,以下哪一项表示允许重复0至任意次(A)。A、{}B、0{}C、0{}nD、{}n7、以下数据流图符号中哪一个表示加工(B)。A、B、C、D、8、软件开发的需求活动,其主要任务是(D)。A、给出软件解决方案B、给出系统模块结构43 C、定义模块算法D、定义需求并建立系统模型9、结构化分析的核心是(A)。A、自顶向下的分解B、用DFD建模C、用DD描述数据需求D、自底向上的抽象10、需求分析的任务是(A)。A、正确说明让软件“做什么”B、用DFD建模C、用DD建立数学模型D、给出需求规格说明书11、对于分层的DFD,父图与子图的平衡是指(B)。A、父图与子图的输入输出数据流必须相同B、子图必须继承父图的输入与输出流C、父图与子图相应的输入输出数据流名字保持一致D、子图可以自己的输入输出数据流12、DFD的每个加工都必须有(A)。A、一个输入和输出数据流B、一个输入数据流C、一个输出数据流D、一个输入或输出数据流13、需求分析是分析员经了解用户的要求,认真细致地调研、分析,最终建立目标系统的逻辑模型并写出(B)的过程。A、模块说明书B、软件规格说明书C、项目开发计划D、合同文档14、结构化分析方法是以数据流图、(D)和加工说明等描述工具,即用直观的图和简洁的语言来描述软件系统模型。A、DFD图B、PAD图C、IPO图D、DD43 15、软件需求分析阶段的工作,可以分为四个方面:需求获取、需求分析、编写需求规格说明书以及(B)。A、阶段性报告B、需求评估C、总结D、都不正确16、数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下面图符名称标识的图符不属于数据流图合法图符的是(A)。A、控制流B、加工C、数据存储D、源点和终点17、DFD用于描述系统的(D)。A、数据结构B、控制流程C、基本加工D、软件功能18、数据词典不包括的条目是(C)。A、数据项B、数据流C、数据类型D、数据加工19、软件需求分析一般应确定的是用户对软件的(D)。A、功能需求B、非功能需求C、性能需求D、功能需求和非功能需求20、在数据流图中,有名字和方向的成分是(B)。A、信息流B、数据流C、控制流D、信号流三、简答题1、需求分析的任务是什么?怎样理解“做什么”和“怎么做”?答:需求分析的基本任务是要准确地理解旧系统、定义新系统的目标,为了满足用户需要,回答“系统必须做什么”的问题,即确定系统必须完成哪些工作,对新系统提出完整、准确、清晰、具体的要求。43 具体任务是:明确问题定义、导出软件的逻辑模型、编写软件需求规格说明书。“做什么”,即深入描述软件的功能和性能,确定软件设计的限制和软件与其他系统元素的接口细节,定义软件的其他有效性需求。“怎么做”,即着手软件需求的实现:用比较抽象概括的方式确定目标系统如何完成预定的任务,确定系统的物理模型。2、怎样建立目标系统的逻辑模型?答:建立目标系统逻辑模型的一般过程:(1)由当前物理系统导出当前系统物理模型;(2)由当前系统物理模型,导出当前系统逻辑模型;(3)参考当前系统逻辑模型,设想出新系统逻辑模型。3、数据流图的作用是什么?它有哪些基本成分?答:数据流图是用于表示系统逻辑模型的一种工具。它从数据传递和加工的角度,以图形的方式描述数据在系统中流动和处理过程。它表示了系统内部信息的流向以及系统的逻辑处理功能。数据流图的主要成分有四种:数据流、数据存储、加工、数据流的源点和终点。4、数据词典的作用是什么?它包括哪些内容?答:数据词典是数据的集合,它对数据流图中的各个元素作完整的定义和说明,是数据流图的补充工具。数据流图和数据词典共同构成系统的逻辑模型,两者缺一不可。其内容包括:数据流、数据项、数据结构、数据存储、加工逻辑、外部实体6类元素。四、应用题1、用SA方法对“学生档案管理系统”进行分析,画出DFD图,并建立相应的数据词典。解:“学生管理系统”的顶层图和0层图。顶层图:学生管理系统学生老师学生信息成绩表课程表考试成绩课程表0层图1学籍管理:学生信息成绩表课程表考试成绩3成绩登统成绩库学生档案成绩库课程库2排课管理43 部分数据词典:学生档案={学号+姓名+性别+年龄+专业+班级}成绩库=学号+课程号+分数课程库=课程号+课程名+学分学生信息=学号+姓名+性别+年龄+专业+班级考试成绩=学号+课程号+分数学号=”00001”...”99999”姓名=2{汉字}4专业=”01”...”99”注:专业代号2位数字班级=”01”...”99”注:班级代号2位数字学分=0..992、某录取统分子系统有如下功能:(1)计算标准分:根据考生原始分计算出标准分,并将其存入考生分数文件。(2)计算录取线分:根据标准分、招生计划文件中的招生人数,计算录取线分数,并存入录取线文件。试根据要求画出该子系统的数据流程图。解:数据流图如下:计算标准分计算录取线分考生原始分标准分标准分考生分数招生计划文件录取线文件招生人数3、某考务中心准备开发一个考务管理系统,其需求如下:(1)考生填写考试报名表,经检查合格后在系统中登记注册,并发给学生准考证。(2)学生按照准考证要求进入考场考试。考试完后将试卷交给阅卷站。(3)阅卷站阅卷后把成绩表(包括每个考试科目、每个考生的分项分数)交给本系统并输入计算机。(4)考试中心负责管理成绩评定标准,并将其交给阅卷站。(5)系统把考试成绩通知考生,把考试成绩的统计结果交给考试中心。(6)系统向考生提供按准考证号、考生姓名的考生成绩查询,将按科目的历年考试成绩统计分析和评分标准提供给考试中心。(7)考生对考试成绩质疑时,系统根据准考证号、姓名可以查询考生某科目的各分项成绩,必要时可查阅阅卷站的试卷。43 (8)系统保存并可查询历年每门科目的评分标准。(9)根据考试成绩统计系统可以向考试中心提供试题难度分析。请画出系统的数据流程图(顶层图和0层图)。解:顶层图:成绩清单统计分析表不合格报名表考生名单报名表准考证考务管理系统考生考试中心合格标准阅卷站考试通知单错误成绩单顶层图0层图:单错误成绩单成绩清统计分析表考生通知单2统计成绩合格标准考生名册报名表1登记报名单不合格报名表准考证考生名单0层图43 4、某单位人事部门拟对职工工作进行调整,细则如下:年龄满40岁以上人员,初中或高中文化,若是男性当修理工,若是女性当清洁工;大专文化当技术员。年龄25岁至40岁,初中或高中文化,若是男性钳工,若是女性当车工;大专文化当技术员。年龄不满25岁,初中文化脱产学习,高中文化当电工;大专文化当技术员。请根据以上叙述运用三种加工逻辑说明写出它们的逻辑组合的关系。解:判定表如下:设:性别:男:M女:F学历:初中:A高中B大专:C年龄:小于25:C25至40:Y40以上:L123456789101112131415161718性别MMMMMMMMMFFFFFFFFF学历AAABBBCCCAAABBBCCC年龄CYLCYLCYLCYLCYLCYL脱产学习XX电工XX技术员XXXXXX修理工XX钳工XX车工XX清洁工XX化简后的判定表:1234567-910111213141516-18性别MMMMMMMFFFFFFF学历AAABBBCAAABBBC年龄CYLCYL--CYLCYL--脱产学习XX电工XX技术员XX修理工XX钳工XX车工XX清洁工XX最简化:1,10234,13567-9,16-1811121415性别--MM--MM--FFFF学历AAABBBCAABB年龄CYLCYL--YLYL脱产学习X电工X43 技术员X修理工XX钳工XX车工XX清洁工XX>4025-40年龄学历性别男------修理工女-----清洁工初中高中大专------------------------技术员男---修理工女–--清洁工25-40男------钳工女-----车工初中高中大专------------------------技术员男---钳工女–--车工大专------------------------技术员初中-----------------脱产学习高中-------------------电工大专------------------技术员判定树:结构化语言:IF年龄>40THENSWITCH(学历){CASE:“初中”IF性别为“男”THEN做修理工ELSE做清洁工CASE:“高中”IF性别为“男”THEN做修理工ELSE做清洁工CASE:“大专”做技术员ELSEIF年龄>=25且年龄<40THENSWITCH(学历)43 {CASE:“初中”IF性别为“男”THEN做钳工ELSE做车工CASE:“高中”IF性别为“男”THEN做钳工ELSE做车工CASE:“大专”做技术员}ELSESWITCH(学历){CASE:“初中”脱产学习CASE:“高中”做电工CASE:“大专”做技术员}5、下面是一项货运收费政策:“航空运费”,重量小于或等于20kg的货物,每千克6元,若重量大于20kg,超重部分每千克6.5元,航空运费的最低起价是12元。这项标准适用于国内航线,如果是国际航线,运费加倍。请用判定树、判定表表达。解:判定表国内YYYNNN重量LMHLMH运费(元)126W6.5(W-20)+1202412W13(W-20)+240注:设重量为W(单位为Kg)重量<=2Kg,重量>2Kg且重量<=20Kg,重量>20Kg,分别用L、M、H表示判定树:重量<=2Kg——12元国内重量>2Kg且<=20Kg——6W元重量>20Kg——6.5(W-20)+120重量<=2Kg——24元国际重量>2Kg且<=20Kg——12W元重量>20Kg——13(W-20)+2406、下面是中国邮政电子汇兑系统中汇兑资费计算加工中资费计算的方法:无论是本埠(县)还是外埠资费计算方法相同。每汇款1元(以元为单位计算)收费0.01元,每笔汇款最低汇费为2元,最高汇费为50元。请用判定树、判定表表达。解:设汇款金额为W元。判定树如下:43 汇额本埠/外埠汇费<=200-----------------------2元>200且<=5000元-----------W*0.01元>5000---------------------50元判定表如下:三种汇额分别用符号L、M、H表示,汇款额用W表示。汇额(元)LLMMHH本埠YNYNYN汇费(元)22W*0.01W*0.015050可简化为:汇额(元)LMH本埠------汇费(元)2W*0.0150第4章一、判断题1、(√)如果在需求分析阶段采用了结构化分析方法,则软件设计阶段就应采用结构化设计方法。2、(√)概要设计与详细设计之间的关系是全局和局部的关系。3、(×)一个模块的作用范围应该大于该模块的控制范围。4、(√)模块间的耦合性越强,则模块的独立性越弱。5、(×)在设计模块时,应使一个模块尽量包括多个功能。6、(√)软件结构图可以利用数据流图映射出来。7、(×)结构化设计是一种面向数据结构的设计方法。8、(√)在结构化设计过程中首先要确认DFD。二、选择题1、软件结构图的形态特征能反映程序重用率的是(C)。A、深度B、宽度C、扇入D、扇出2、概要设计的目的是确定整个系统的(B)。A、规模B、功能及模块结构C、费用D、测试方案43 3、耦合是对软件不同模块之间互连程度的度量。各种耦合从强到弱的排列为(C)。A、内容耦合,控制耦合,数据耦合,公共环境耦合B、内容耦合,控制耦合,公共环境耦合,数据耦合C、内容耦合,公共环境耦合,控制耦合,数据耦合D、控制耦合,内容耦合,数据耦合,公共环境耦合4、当一个模块直接使用另一个模块的内部数据时,这种模块之间的耦合为(D)。A、数据耦合B、公共耦合C、标记耦合D、内容耦合5、数据耦合和控制耦合相比,则(B)成立。A、数据耦合的耦合性强B、控制耦合的耦合性强C、两者的耦合性相当D、两者的耦合性需要根据具体情况分析6、衡量模块独立性的标准是(D)。A、耦合的类型B、内聚的类型C、模块信息的隐藏性D、耦合性和内聚性7、如果某种内聚要求一个模块中包含的任务必须在同一段时间内执行,则这种内聚为(A)。A、时间内聚B、逻辑内聚C、通信内聚D、信息内聚8、为了提高模块的独立性,模块内部最好是(C)。43 A、逻辑内聚B、时间内聚C、功能内聚D、通信内聚9、在结构化设计方法中,下面哪种内聚的内聚性最弱(C)。A、逻辑内聚B、时间内聚C、偶然内聚D、过程内聚10、软件设计是把(A)转换为软件表示的过程。A、软件需要B、系统分析C、数据库D、软件代码11、概要设计的主要成果是(C)。A、用户的界面需求B、用户的分析方案C、概要设计说明书D、系统总体方案12、数据结构设计也是概要设计的重要内容,主要是进行数据的(A)设计。A、逻辑B、存取C、用户视图D、索引13、概要设计与详细设计衔接的图形工具是(B)。A、DFD图B、SC图C、程序流程图PFDD、PAD图14、在软件开发中,下面任务不属于设计阶段的是(D)。A、数据结构设计B、给出系统模块结构C、定义模块算法D、定义需求并建立系统模型15、下面不属于软件设计原则的是(C)。A、抽象B、模块化C、自底向下D、信息隐藏43 三、简答题1、软件设计应遵循的原则是什么?答:软件设计中一般应遵循以下原则:模块化、抽象、信息隐蔽与局部化、一致性、完整性和可验证性。2、什么是软件的概要设计?概要设计阶段完成的主要任务是什么?答:总体设计又称概要设计,是将软件需求转化为软件体系结构、确定系统级接口、全局数据结构和数据库模式。3、启发设计规则有哪些?答:(1)模块功能的完善化;(2)消除重复功能,改善软件结构;(3)模块规模应该适中;(4)模块的深度、宽度、扇出和扇入都应适当;(5)模块的作用范围应该在控制范围之内;(6)力争降低模块接口的复杂程度;(7)设计单入口、单出口的模块;(8)模块功能应该可以预测。四、应用题根据以下的C语言程序段判断模块A和B之间属于哪一种耦合,模块B是哪一种内聚。1、模块A“开发票”:……water_fee=calc_waterfee(12.5,3.0);模块B“计算水费”:floatcalc_waterfee(floatmount,floatprice);{floatfee;……feturnfee;}答:模块A和B是数据耦合,模块B是功能内聚。2、模块A:……flag=1;max=max_avg(flag);……模块B:intmax_avg(intflag){……if(flag==1)……elseif(flag==0)……}答:模块A和B是控制耦合,模块B是逻辑内聚。43 第5章一、判断题1、(√)详细设计也称模块设计。2、(×)在数据代码设计时,应尽量让一条代码代表多个信息。3、(×)在数据代码设计时,应可能设计字母和数字混合代码。4、(×)在输出界面设计时,要尽可能使用代码或缩写,以求简洁。5、(×)详细设计评审应尽可能和概要设计评审一同进行。二、选择题1、软件详细设计的主要任务是确定每个模块的(A)。A、算法和使用的数据结构B、外部接口C、功能D、程序2、借助于软件工具,可将(C)容易地转换为高级语言源程序。A、程序流程图B、N-S图C、PAD图D、判定表3、不属于详细设计工具的是(A)。A、DFD图B、PAD图C、PDlD、N-S图4、程序的三种基本结构是(C)。A、过程、子过程和子程序B、递归、堆栈和队列C、顺序、选择和重复D、调用、返回和转移5、下面描述中,符合结构化程序设计风格的是(A)。A、使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑B、模块只有一个入口,可以有多个出口C、注重提高程序的执行效率D、不使用goto语句三、简答题1、软件的详细设计阶段完成的主要任务是什么?答:(1)算法设计;(2)数据结构设计;(3)模块接口细节设计;(4)测试用例设计;(5)数据库物理设计;(6)数据代码设计;(7)其他设计;(8)编写详细设计说明书并进行评审。2、数据输入界面设计的主要原则有哪些?答:在设计数据输入界面时应做到:尽量简化用户的工作、减少输入的出错率;减轻用户的记忆负担、尽可能减少输入量并实现自动输入;对共同的输入设置默认值;使用代码或缩写;自动填入已输入过的内容;列表式输入;数据分组输入。3、代码设计的原则有哪些?答:代码设计的原则是标准化、唯一性、可扩充性、简单性、规范性和适应性。四、应用题1、请分别使用程序流程图、PAD图和N-S图描述下列程序的算法。答:(1)求整数1-n的累加和SUM,其中n的值由键盘输入。程序流程图如下43 n>=iYNSum=Sum+i输出数Sum输入数ni=i+1Sum=0,i=1PAD图如下当I<=NSum=Sum+II=I+1I=1打印SumSum=0输入NN-S图如下43 Sum=0,i=1DO─WHILEn>=i输入数nSum=Sum+ii++输出数Sum(2)求整型数组K[50]中的最大值和次大值。答:N-S图如下:定义数组k[50]fst=k[0],sed=k[1]I=3当i<=50时FTk[i]>fstscd=fstfst=k[i]k[i]>scdTFScd=k[i]I=i+143 输出fst,scd(3)求s=1-1/2!+1/3!-1/4!+….+1/n!,其中n的值由键盘输入。答:PAD图如下:当K<=IP=P*KJC(i)DEFP=1K=1K=k+1返回P当I<=NS=s-jc(i)打印SI%2=0TFI=1S=0输入NS=s+jc(i)I=I+12.根据以下伪码,画出PAD图if(xvoidmain(){intcount,j=1,sum=0,x;printf(“请输入整数个数n”);scanf("%d",&count);while(j<=count)//求count个整数之和{printf(“请输入第%d个整数:n”,j);scanf("%d",&x);sum=sum+x;//累加整数j++;//整数个数计数}printf("%d个整数的和为%dn",j,sum);}}4、请对以下代码的布局进行改进,使其符合良好的编码风格。答:for(i=0;i1且B=0A=2或X>1A>1B=0A=2X>1语句覆盖3032①②④TT判定覆盖3000①②⑤TF3134①③④FT条件覆盖0030①④FFFTFT2212①③④FTTFTF判定/条件覆盖2034①②④TTTTTT1201①③⑤FFFFFF条件组合覆盖2032①④TTTTTT2201①④FTTFTF1023①④FTFTFT1111①⑤FFFFFF路径覆盖2023①②③④⑤TT3123①③④FT0111①③⑤FF43 4010①②⑤TF第10章一、判断题1、(√)在需求分析阶段,就应该考虑软件可维护性问题。2、(×)在完成软件测试工作后,可删除源程序中的注释,以缩短程序的长度。3、(√)尽可能在软件生产过程中保证各阶段文档的正确性。4、(×)编码时要尽可能使用全局变量。5、(×)应选择时间效率和空间效率尽可能高的算法。6、(×)应尽可能利用计算机硬件的特点。7、(×)应使用软件维护工具或支撑环境。8、(×)在概要设计时应加强模块间的联系。9、(×)应尽可能使用低级语言编写程序。10、(×)为加快维护作业的进程,应尽可能增加维护人员。二、选择题1、(A)。由于在开发过程中测试的不彻底、不完全而造成的维护是(A)。A、改正性维护B、完善性维护C、适应性维护D、预防性维护2、为适应软硬件环境变化而修改软件的过程是(C)。A、改正性维护B、完善性维护C、适应性维护D、预防性维护3、为增加软件功能和性能而进行的软件维护过程是(B)。A、改正性维护B、完善性维护C、适应性维护D、预防性维护4、软件维护的困难主要原因是(D)。A、人员少B、费用低C、开发方法的缺陷D、维护难5、维护阶段需由用户填写的维护文档是(C)。A、软件需求说明B、软件修改报告C、软件问题报告D、测试分析报告6、软件的可维护性是指(A)。A、软件能被修改的难易程度B、软件可理解的难易程度C、软件可移植性和可使用性D、软件维护文档的完整性7、软件维护工作中最主要部分是(A)。A、完善性维护B、改正性维护C、适应性维护D、预防性维护8、维护中,因误删除一个标识符而引起的错误是(C)副作用。A、文档B、数据C、编码D、设计9、维护中,因修改全局变量或公用数据而引起的错误是(B)副作用。43 A、文档B、数据C、编码D、设计10、软件维护工作过程中,第一步是先确定(B)。A、环境维护B、维护类型C、维护要求D、维护者11、在软件生存周期中,工作量所占比例最大的阶段是(D)阶段。A、需求分析B、设计C、测试D、维护12、软件工程对维护工作的主要目标是提高(C),降低维护的代价。A、软件的生产率B、软件的可靠性C、软件的可维护性D、维护的效率13、软件维护的副作用是指(C)。A、开发时的错误B、隐含的错误C、因修改软件而造成的错误D、运行时的误操作14、一般来说,在软件维护过程中,大部分工作是由(C)引起的。A、适应新的软件环境B、适应新的硬件环境C、用户的需求改变D、程序的可靠性三、简答题1.为什么要进行软件维护?软件维护通常有几种类型?对软件进行维护的根本目的是为了延长软件的生存期。软件维护的原因除了软件在开发过程中的错误需要修改外,根本的原因是变化,使用软件的机构的工作流程、组织机构、软件工作的软硬件环境等都在变化,要求使用的软件也跟着变化,所以必须对软件进行维护。维护的类型有四种(1)改正性维护(2)适应性维护(3)完善性维护(4)预防性维护2.请说明软件维护组织中各种人员及其职责。答:维护组织机构内一般设修改负责人、维护管理员、系统监督员、配置管理员、维护人员等。各自的职责是:修改负责人是维护的行政领导,管理维护的人事工作。维护管理员负责接受维护申请,他把申请转交给系统监督员(或称系统管理员)去评价。并负责向上级报告维护工作。系统监督员对维护任务做出评价。配置管理员严格把关程序修改过程,控制修改的范围,对软件配置进行审计。维护人员负责分析程序的维护要求并进行程序的修改工作。3.请说明软件维护的流程。答:(1)确定维护的类型及维护要求(2)根据不同维护类型确定维护的时机和策略(3)实施维护任务。(4)维护复审。4.什么是软件的可维护性。答:软件可维护性是指维护人员理解、改正和改进这个软件的难易程度。5.简述决定软件可维护性的因素。答:1)可理解性2)可测试性3)可修改性4)可靠性5)可移植性6)可使用性7)效率6.简述提高软件可维护性的方法。答:1)建立明确的软件质量目标2)使用先进的软件开发技术和工具3)进行明确的质量保证审查4)选择可维护的程序设计语言5)改进程序文档。7.软件维护的副作用有哪些?答:代码的副作用,数据的副作用,文档的副作用。43 第11章一、判断题1、(×)CMM可用于评估软件开发机构的软件开发能力,软件开发机构的CMM级别越低越好。2、(√)在软件开发过程中,盲目增加人员可能会造成事半功倍的效果。3、(×)甘特图是项目成本估算的工具之一。4、(√)IEEE是一个国际标准化组织。5、(√)用户手册应从软件工程的需求分析阶段开始编写。二、选择题1、软件项目管理是(D)一切活动的管理。A、需求分析B、软件设计过程C、,模块设计D、软件生存周期2、在软件工程项目中,不随参与人数增加而使生产率增加的主要问题是(D)。A、工作阶段的等待B、产生原型的复杂性C、参与人员所需的计算机数目D、参与人员之间的通信困难3、COCOCO估算模型是(B)模型。A、模块性成本B、结构性成本C、动态单变量D、动态多变量4、自底向上估算方法的缺点是估算往往缺少系统级工作量,所以估算(A)。A、往往偏低B、往往偏高C、不太准确D、较为准确5、软件管理比其他工程管理更为(B)。A、容易B、困难C、迅速D、迟缓6、CMM模型中属于可管理级的特征(D)。A、工作无序,项目进行过程中经常放弃当初的计划B、建立了项目级的管理制度C、建立了企业级的管理制度D、软件过程中活动的生产率与质量是可度量的7、由(B)组织制定的标准是国际标准。A、GJBB、IEEEC、ANSID、ISO8、GB/T8567-2006《计算机软件文档编制规范》是(D)标准。A、强制性国家B、推荐性国家C、强制性行业D、推荐性行业9、以下说法错误的是(B)。A、IEEE是指美国电气与电子工程师协会B、GB是指中华人民共和国军用标准GJBC、DOD-STD是指美国国防部标准D、MIL-S是指美国军用标准10、测试计划文档应从软件工程的(B)阶段开始编写。A、可行性研究B、需求分析43 C、软件设计D、编码三、简答题1、为什么要进行软件项目管理?答:软件项目管理的根本目的是为了让软件项目尤其是大型项目的整个软件生存周期都能在管理者的控制下,以预定的成本按时、保质地完成软件并交付用户使用。2、软件项目管理的职能包括哪些?答:软件项目管理的职能包括:(1)制定计划:规定要完成的任务和要求,安排资源、人员和进度等。(2)建立组织:建立分工明确的为实施计划的责任制机构,以保证任务的完成。(3)配备人员:根据任务要求,任用各种层次的技术人员和管理人员。(4)协调或追踪与指导:跟踪项目的进展情况,协调、指导、鼓励和动员各种人员完成所分配的任务。(5)控制或检验:对照计划和标准,监督和检验项目实施的情况。3、程序设计小组的组织形式有哪几种?答:(1)主程序员制小组。该小组的核心有3个人。主程序员、辅助程序员和程序管理员。如果大多数开发人员比较缺乏经验,而程序设计过程中又有许多事务性工作,则采取该种组织方法。(2)民主制程序员小组。在民主制小组中,组内成员之间可以平等地交换意见。适合于研制时间长、开发难度大的项目。(3)层次式小组这种组织中,组内人员分为3级。组长负责全组工作,直接领导2~3名高级程序员,每位高级程序员管理若干名程序员。这种组织比较适合于层次结构的课题。4、软件开发成本估算方法主要有哪几种?答:常用的成本估算策略有以下4种:(1)参考已经完成的类似项目,估计待开发项目的工作量和成本。(2)将大的项目分解成若干个小项目,分别对每个子项目的工作量和成本进行估算,再估算整个项目的工作量和成本。(3)根据软件生存周期,分别估算出软件开发各阶段的工作量和成本,然后再把这些工作量和成本汇总,估算出整个项目的工作量和成本。(4)根据实验或历史数据给出软件项目工作量或成本的经验估算公式。成本估算方法有自顶向下估算法、自底向上估算法和差别估算方法。5、软件质量的六个要素是什么?答:软件质量的6个要素是:(1)功能性:软件所实现的功能满足用户需求的程度。(2)可靠性:在规定的时间或条件下,软件所维持其性能水平的程度。(3)易使用性:对于一个软件,用户学习、操作、准备输入和理解输出时所做努力的程度。(4)效率:在指定的条件下,用软件实现某种功能所需的计算机资源(包括时间)的有效程度。(5)可维护性:在一个可运行的软件中,为了满足用户需求、环境改变或软件错误发生时进行相应修改所做的努力的程度。(6)可移植性:把程序从一个计算机系统或环境转移到另一个计算机系统或环境的容易程度。6、CMM的五个级别各有哪些特征?43 答:CMM的5个级别及其特征如下:(1)初始级:软件过程未加定义,工作无序,无步骤可循。(2)可重复级:已建立了基本的项目管理过程,可以重复以前类似项目所取得的成功案例。(3)已定义级:用于管理和工程的两个方面的过程均已文档化、标准化,并形成了整个软件组织的标准软件过程。(4)已管理级:制定了软件过程和产品质量的详细的度量标准,收集了软件过程和产品质量的详细度量数据,使用这些度量数据,能够定量地理解和控制软件过程和产品。(5)优化级:通过定量的反馈能够实现持续的过程改进,这些反馈是从过程以及对新想法和新技术的测试中获得的。7、什么是软件配置管理?它有什么作用?答:软件配置管理(SoftwareConfigureManagement,SCM)用于整个软件工程过程,其任务是标识和确定系统中的配置项,在系统整个生命期内控制这些配置项的发布和变更,记录并报告配置的状态和变更要求,验证配置项的完整性和正确性。SCM活动的目标是为了:①标识变更;②控制变更;③确保变更正确地实现;④向其他有关人员报告变更。8、软件工程标准化的意义有哪些?答:软件工程标准化会给软件开发工作带来以下好处:(1)提高软件的可靠性、可维护性和可移植性,从而提高软件产品的质量。(2)提高软件的生产率,提高软件人员的技术水平。(3)改善软件开发人员之间的通信效率、减少差错。(4)有利于软件工程的管理。(5)有利于降低软件成本、缩短软件开发周期,降低运行与维护成本。9、软件文档的作用有哪些?答:软件文档也是软件产品的一部分,没有文档的软件不能称其为软件。软件文档在软件开发人员、软件管理人员、软件维护人员、用户以及计算机之间起着重要的桥梁作用。开发人员通过软件文档交流设计思想和设计软件;管理人员通过文档了解软件开发项目安排、进度、资源使用和成果等;维护人员通过文档对项目进行维护;用户通过文档掌握软件的使用和操作。规范、齐全、有效的软件文档会使软件开发活动更科学、规范,更有成效。缺乏必要的文档资料或者文档资料不合格,必然给软件开发和维护带来许多严重的困难。43'