《国家开放大学《软件工程》章节自测参考答案.docx》由会员分享,可在线阅读,更多相关《国家开放大学《软件工程》章节自测参考答案.docx(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、国家开放大学软件工程章节自测参考答案模块一 软件工程概述一、选择题1软件与程序的区别是()。A. 程序价格便宜、软件价格昂贵。B. 程序是用户自己编写的,而软件是由厂家提供的。C. 程序是用高级语言编写的,而软件是由机器语言编写的。D. 软件是程序以及开发、使用和维护所需要的所有文档的总称,而程序是软件的一部分。2开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做()。A. 软件产生B. 软件周期C. 软件工程D. 软件危机3瀑布模型本质上是一种( )模型。A. 线性顺序B. 早期产品C. 顺序迭代D. 线性迭代4瀑布模型存在的问题是( )。A. 缺乏灵活性B. 用户容易参与开发
2、C. 适用可变需求D. 用户与开发者易沟通5用户要看到软件产品的模样,最早也要到()以后。A. 验收B. 在单元测试之后C. 程序代码编写完成之后D. 用户需求基本确定6螺旋模型是一种将瀑布模型和()结合起来的软件开发模型。A. 增量模型B. 专家系统C. 喷泉模型D. 变换模型7原型化方法是用户和设计者之间执行的一种交互构成,适用于()系统。A. 需求不确定性高的B. 需求确定的C. 管理信息D. 实时8原型化方法是一种()型的设计过程。A. 自底向上B. 自顶向下C. 自外向内D. 自内向外9下列有关软件工程的标准,属于国际标准的是( )A. IEEEB. GBC. ISOD. DIN10
3、结构化方法是一种基于()的方法。A. 程序结构B. 数据结构C. 算法D. 数据流二、简答题1什么是软件危机?软件危机表现在哪几个方面?参考答案:由于软件具有上述这些特点,长期以来一直没有发明一种高效的开发方法,从而导致软件生产效率非常低,交付期一拖再拖,最终交付的软件产品在质量上很难保障。这种现象早在20世纪60年代被定义为“软件危机”。它的具体表现如下:(1)“已完成”的软件不满足用户的需求。(2)开发进度不能保障,交付时间一再拖延。(3)软件开发成本难以准确估算,开发过程控制困难造成开发成本超出预算。(4)软件产品的质量没有保证,运算结果出错、操作死机等现象屡屡出现。(5)软件通常没有适
4、当的文档资料,或文档与最终交付的软件产品不符,软件的可维护程度非常低。2试述产生软件危机的主要原因?参考答案:软件的特点是导致软件危机的客观因素,而软件开发和软件维护过程中使用的不正确方法是主观因素,主要表现为:忽视软件开发前期的调研和分析工作,没有统一的、规范的方法论指导,文档资料不齐全,忽视人员之间的交流,忽视测试工作,轻视软件的维护。3什么是软件工程?软件工程的目标是什么?参考答案:软件工程是: 将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,也就是说将工程化应用于软件开发和管理之中; 对中所选方法的研究”。软件工程旨在开发满足用户需要、及时交付、不超过预算和无故障的软
5、件,其主要目标如下:(1)实现预期的软件功能,达到较好的软件性能,满足用户的需求。(2)增强软件过程的可见性和可控性,保证软件的质量。(3)提高所开发软件的可维护性,降低维护费用。(4)提高软件开发生产率,及时交付使用。(5)合理预算开发成本,付出较低的开发费用。4软件工程为什么要强调规范化和文档化?参考答案:软件工程强调规范化和文档化。规范化的目的是使众多的开发者遵守相同的规范,使软件生产摆脱个人生产方式,进入标准化、工程化的生产方式。文档化是将软件的设计思想、设计过程和实现过程完整地记录下来,以便于后人的使用和维护,在开发过程中各类相关人员借助于文档进行交流和沟通。另外,在开发过程中产生的
6、各类文档使得软件的生产过程由不可见变为可见,便于管理者对软件生产进度和开发过程进行管理。在用户最终验收时可以通过对提交的文档进行技术审查和管理审查,保证软件的质量。5软件工程层次是如何划分的?参考答案:软件工程的研究内容具有层次化结构,它的最底层是质量保证层,中间是过程层和方法层,最上层是工具层。 全面的质量管理和质量需求是推动软件工程过程不断改进的动力,正是这种改进的动力导致了更加成熟的软件工程方法不断涌现。过程层定义了一组关键过程域,目的是保证软件开发过程的规范性和可控性。方法层提供了软件开发的各种方法,包括如何进行软件需求分析和设计,如何实现设计,如何测试和维护等方法。工具层为软件工程方
7、法和过程提供了自动或半自动的支撑环境。目前市场上已经有许多不错的软件工程工具,应用效果良好。6什么是软件生存周期模型?参考答案:软件生命周期模型反映的是软件开发过程、活动和任务的结构框架。它能够清晰、直观地表达软件开发全过程,明确规定要完成的主要活动和任务。对于不同的软件系统,可能采用不同的开发方法,使用不同的程序设计语言、不同的管理方法和手段、以及各种具有不同技能的人员参与工作,但是对于软件生命周期模型来说都应该是稳定有效和普遍适用的。到目前为止,已经提出了多种模型,主要有瀑布模型、演化模型、喷泉模型、螺旋模型、智能模型。模型的选择是基于软件的特点和应用领域。7软件工程的发展至今为止经历了哪
8、几个阶段?各阶段的特征是什么?参考答案:在20世纪70年代基本形成了软件工程的概念、框架、方法和手段,被称之为第一代软件工程,即传统软件工程。结构化分析、结构化设计和结构化编程方法是这个时期的代表。80年代出现的Smalltalk 80程序设计语言标志着面向对象程序设计进入了实用阶段,从80年代中到90年代中,研究的重点转移到面向对象分析和设计上来,从而演化成软件工程的第二代,称之为对象工程。90年代后期,软件工程的一个重要进展就是基于组件的开发方法。为了提高软件生产力,避免草率地开发应用程序,尽可能地利用可复用组件来组装成新的应用软件系统。到目前为止,组件技术的研究和发展形成了新一代软件工程
9、,即第三代软件工程,也有不少人称之为组件工程。软件工程至今还在不断发展,无论是组件工程还是对象工程都在不断发展,即使是传统软件工程的一些基本概念、框架,也随着技术的进步在发生变化。总之,软件工程代与代之间并没有鸿沟,它们不仅交叉重叠,也携手并进。8指出瀑布模型中下列任务的顺序:验收测试,项目计划,单元测试,需求评审,成本估计,概要设计,详细设计,系统测试,设计评审,编码,需求规格说明书。参考答案:项目计划-成本估计-需求规格说明书-需求评审-概要设计-详细设计-设计评审-编码-单元测试-系统测试-验收测试9请比较软件生命周期瀑布模型和螺旋模型的特点。参考答案:瀑布模型最重要的特点:只有当一个阶
10、段的任务完成、交付相应的文档、通过审查小组的审查合格后,才能开始下一个阶段的工作。瀑布模型的优点:有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。瀑布模型的缺点:(1)开发过程一般不能逆转,否则代价太大;(2)实际的项目开发很难严格按该模型进行;(3)客户往往很难清楚地给出所有的需求,而该模型却要求如此。(4)软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心。螺旋模型的主要优势在于它是风险驱动的,每个方案在实施前都要经过风险分析。如果风险过大,则项目应该停止,或改变方案。螺旋模型的优点:(1)设计上的灵活性
11、,可以在项目的各个阶段进行变更;(2)以小的分段来构建大型系统,使成本计算变得简单容易;(3)客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性;(4) 随着项目推进,客户始终掌握项目的最新信息 , 从而他或她能够和管理层有效地交互。 螺旋模型的缺点:(1)采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失;(2)过多的迭代次数会增加开发成本,延迟提交时间。10什么叫职业化?职业化软件工程师的必备条件是什么?参考答案:所谓职业化,简单说就是能胜任工作,让人放心。“能胜任工作”,就需要具备相应的专业技能、知识和
12、经验;“让人放心”意味着很多,包括遵守行业成文的或未成文的规则和规范,积极有效地和同事沟通,确保自己的工作产品是大家所期望的,尽可能地向客户提供最专业的服务和产品。自律、沟通和技能是成为职业化软件工程师的必要条件。自律:软件区别于其它传统产品,软件只有安装运行后,人们才看见它的界面;开发进度也是肉眼看不见的,很难准确判断开发任务完成了80%还是30%;质量更是不可见的,只有通过非常认真、全面的测试和度量,才能了解代码的质量。一个程序员认真思考问题时的模样和他发呆时的表现一样,外人很难判断。因此说,“自律”对软件工程师来说更为重要。沟通:软件的规模越来越大,而且处在不断的变化过程中。因此需要软件
13、工程师进行大量书面的、口头的、或面对面的沟通。大到产品的整体功能和性能要求,小到程序的结构,甚至一个函数、一个变量的含义都需要沟通。沟通有标准化的、可视化的工具语言,如UML。软件工程强调文档的重要性就是以文档作为沟通的工具,与客户沟通明确用户需求;工程师之间沟通明确设计方案,市场人员和工程师沟通确定产品特征。软件工程的实践表明,缺乏主动沟通,往往导致整个团队的技术方案出现偏差,使整个项目的进度受到影响。技能:软件工程师常常强调自己掌握的编码技术,往往忽视用户需求和软件开发的规范。作为职业化软件工程师,需求分析、软件设计、软件构造、软件测试、软件维护、配置管理、软件项目管理、软件过程改进、软件
14、工具和方法以及软件质量保证等是更为重要的技能。11职业化软件工程师十大忌讳是哪些?参考答案:行为一:对外交付半成品。行为二:不遵守标准和规范。行为三:不积极帮助他人。行为四:版权意识不敏感。行为五:对待计划不严肃。行为六:公事私事相混淆。行为七:不注意知识更新。行为八:不主动与人沟通。行为九:不遵守职业规则。行为十:不够诚实和正直。12根据相关的法律,对于侵犯软件著作权的行为,根据情节应当给予什么处罚?参考答案:对于侵犯软件著作权的行为,要根据情况承担停止侵害、消除影响、赔礼道歉、赔偿损失等民事责任;损害社会公共利益的,由著作权行政管理部门责令停止侵权行为,没收违法所得,没收、销毁侵权复制品,
15、并处罚款;情节严重的,著作权行政管理部门可以没收用于制作侵权复制品的材料、工具、设备等;触犯刑律的,依法追究刑事责任。13职业化软件工程师要注意的问题是什么?参考答案:职业化软件工程师要注意的十大问题:高质量地完成任务遵守行业标准,不能肆意按照自己的想象来发挥积极帮助他人版权意识敏感严格遵守计划公私分明注意知识更新善于沟通遵守职业规则诚实和正直。模块二 可行性研究一、选择题1可行性研究的主要任务是()。A. 确定性能B. 确定功能C. 进行一次简要的需求分析D. 确定系统做什么2可行性分析研究的费用大约是项目总经费的()。A. 20%B. 5C. 2%D. 6%3可行性研究包括(1)研究目前正
16、在使用的系统(2)复查系统地规模和目标 (3)进一步定义问题(4)导出新系统地高层逻辑模型,具体步骤顺序是()A. (3)(2)(1)(4)B. (2)(1)(4)(3)C. (3)(1)(2)(4)D. (1)(2)(3)(4)4可行性研究的各个步骤的工作结果写成清晰的文档,下列哪个人员不必参加审查。A. 分析人员B. 客户组织的负责人C. 用户D. 评审组专家5可行性研究的四大要素是()。A. 经济、技术、计算机硬件环境和网络带宽B. 经济、技术、开发组织能力和领导者水平C. 经济、技术、软件开发工具和人员的稳定性D. 经济、技术、法律和社会环境6经济可行分析中()是分析投入的成本和产出的
17、效益。A. 投入成本分析B. 产出效益分析C. 成本-收益分析D. 短期-长远利益分析7()容易把握,风险较低。A. 短期利益B. 投入成本C. 长期利益D. 产出利益8技术可行性考虑的方面( )A. 提高软件生产率的技术B. 以上全部C. 完成需求说明中功能需要的技术D. 保障软件治疗的技术9计算机病毒是指()。A. 一组自我复制和自动执行的具有破坏能力的代码B. 计算机系统的漏洞C. 程序中的BUGD. 一种细菌10我国正式颁布实施的()对计算机病毒的定义具有法律性,权威性。A. 中华人民共和国计算机信息系统安全保护条例B. 计算机软件保护条例C. 计算机病毒防治办法D. 中华人民共和国著
18、作权法11社会环境的可行性至少包括()A. 政策B. 市场C. 市场和政策D. 社会安定性12假定银行的存款年利率是2%,请问现在存5000元,两年后的价值应为()元。A. 5100B. 5202C. 4712D. 450013无形的效益是()A. 投资回收期B. 社会影响力C. 货币的时间价值D. 纯收入模块三 需求分析1.面向对象分析任务的核心在于建立( )模型。a. 建立正确的模型b. 识别问题域对象c. 识别对象之间的关系d. 上面所有2.( )不是分析建模的目的。a. 定义可验证的软件需求b. 开发一个简单的问题解决方案c. 描述客户需求d. 建立软件设计的基础3.面向对象开发方法主
19、要分为分析、设计和实现三个阶段,下面属于分析阶段主要工作的是( )。a. 建立用例模型b. 改进系统的性能c. 定义子系统接口参数d. 编写代码4.面向对象分析过程中建立的模型有( )。a. 属性模型、功能模型、对象模型b. 对象模型、功能模型、测试模型c. 数据模型、功能模型、活动模型d. 对象模型、功能模型、动态模型5.功能模型用于表达系统的需求,为软件的进一步分析和设计打下基础。在面向对象方法中,由( )实现。a. 用例图和场景描述b. 交互图和场景描述c. 活动图和场景描述d. 场景描述6.用( )模型分析和定义用户的需求。a. 用例b. 静态c. 动态d. 数据7.用( )模型描述和
20、分析业务流程。a. 数据b. 交互c. 业务d. 动态8.下面建立功能模型的步骤哪个顺序是正确的( )。a. 确定用例模型/确定角色/确定用例b. 确定角色/确定用例/确定用例模型c. 确定角色/确定用例模型/确定用例d. 确定用例/确定用例模型/确定角色9.建立用例(功能)模型中第一步是( )。a. 创建机构组织结构及角色职能图b. 确定用例c. 确定用例模型d. 确定角色10.确定角色是( )的任务。a. 对象模型b. 动态模型c. 用例模型d. 交互模型11.( )用于描述系统中概念层次的对象。a. 界面类b. 控制类c. 实体类d. 分析类12.分析模型的类有三种即( )。a. 界面类
21、、控制类、公共类b. 实体类、数据类、界面类c. 边界类、实体类、控制类d. 控制类、实体类、数据类13.建立对象模型的步骤为( )。a. 构建类图/识别分析类b. 识别分析类/构建类图c. 确定用例/确定角色d. 确定角色/确定用例模型14.在基于用例的面向对象分析过程中,定义交互行为的关键在于通过描述分析类实例之间的( )将用例的职责分配到分析类中。a. 上下文关系b. 消息传递c. 关联关系d. 继承关系15.动态模型描述系统的动态结构和对象之间的交互,表示瞬时的、行为化的系统“控制”特性。面向对象方法中,常用( )实现。a. 状态图b. 交互图c. 活动图d. 以上全部16.需求评审问
22、题清单应该包括( )。a. 检查正确性的问题列表b. 检查完整性的问题列表c. 检查一致性的问题列表d. 以上全部17.是否描述了系统功能的管理属于( )问题列表中的内容。a. 检查完整性b. 检查一致性c. 检查正确性d. 检查可靠性18.面向对象的需求分析规格说明书的分析模型中可以省略的有( )。a. 性能需求b. 数据要求c.对象模型d. 运行环境19.软件需求分析规格说明书中的分析模型应该包括( )a. 对象模型b. 动态模型c. 用例模型d. 以上全部模块四 软件设计一、选择题1.随着模块规模减小,模块开发成本(),模块集成成本()。A. 增加/减小B. 增加/增加C. 减小/减小D
23、. 减小/增加2.反映模块独立性的指标是()。A. 模块的大小B. 模块的参数C. 内聚和耦合D. 模块的复杂性3.非直接耦合的模块独立性最强,()的模块独立性最弱。A. 数据耦合B. 控制耦合C. 外部耦合D. 内容耦合4.内容耦合是模块间最紧密的耦合,()是模块间最松散的耦合。A. 控制耦合B. 外部耦合C. 数据耦合D. 非直接耦合5.在对软件系统进行模块设计的时候,可以有不同的抽象层次,可以用(),配合面向问题的专业术语,概括地描述问题的解法。A. 流程图B. 自然语言C. 直接实现的方式D. 过程化的描述方法6.人们在认识复杂问题的过程中,使用最强有力的思维工具就是()A. 抽象B.
24、 信息隐蔽C. 模块化D. 内聚和耦合7.信息隐藏的核心内容是()。A. 数据不能被其他模块访问B. 一个模块的内部信息不允许其他模块直接访问C. 把数据都放在公共的区域D. 把信息加密,只能让有密钥的模块访问8.每个子系统的接口定义了若干(),体现了子系统的功能,而功能的具体实现方法应该是隐藏的。 A. 参数B. 操作C. 控制D. 算法9.为高质量地开发软件项目,在软件结构设计时,必须遵循()原则。A. 数据共享B. 质量控制C. 信息隐蔽D. 程序优化10.软件结构图中没有()元素。A. 模块B. 调用参数C. 返回结果D. 判断11.在实际的软件设计中,通常采用树状结构,限制使用()。
25、A. 层次结构B. 模块结构C. 线性结构D. 网状结构12.软件结构使用的图形工具,一般采用()图。A. ERB. DFDC. SCD. PAD13.软件设计的目标是()。A. 为软件编码设计模块结构。B. 确定软件的实现算法。C. 确定软件要做什么。D. 在最短的时间内,生产出可靠性、可维护性俱佳的软件方案。14.软件设计时中一个基本原则()。A. 低耦合,高内聚 和信息隐蔽的设计原则B. 模块扇出小于5C. 模块深度小于7D. 模块扇入小于515.为高质量地开发软件项目,在软件结构设计时,必须遵循()原则。A. 质量控制B. 数据共享C. 信息隐蔽D. 程序优化16.影响软件设计的因素有
26、()。A. 软件使用者的文化背景B. 以上所有C. 设计人员的理解力D. 设计人员的个人经验17.结构化设计方法具体流程中首先要()。A. 定义软件的层次结构B. 分析数据流类型C. 以上所有D. 绘制软件结构图18.变换分析方法中应在数据流程图上区分系统的逻辑输入,()和中心变换部分。A. 格式转换B. 逻辑输出C. 物理输入D. 物理输出19.在任何情况下的都可以使用变换分析方法设计软件结构,但在数据流程图中明显的()时,还是采用事务分析方法更好。A. 中心变换B. 发射路径C. 接收路径D. 事务中心20.在优化软件结构时要注意保持简单,在满足模块化要求的前提下尽量()。A. 增加模块耦
27、合度B. 增加复杂数据结构C. 减少模块数量D. 增加模块数量21.概要设计复查不需要()人员参加。A. 系统维护人员B. 系统设计员C. 用户D. 系统分析员22.在概要设计复查过程中,设计人员详细讲述()。A. 需求规格说明书B. 程序编码C. 总体设计方案D. 程序流程图23.关键设计复查的参与者不需要()。A. 系统测试人员B. 系统分析员C. 用户D. 系统设计员24.下列哪些属于复审的问题设计?A. 设计算法合适否B. 设计文档是否完备C. 设计容易实现否D. 以上所有25.数据结构设计中在确定数据结构时应先考虑()。A. 动态结构B. 静态结构C. 简单结构D. 特殊结构26.为
28、了加强数据设计的的(),应该针对常用的数据结构和复杂的数据结构设计抽象类型,并且将数据结构和操纵数据结构的操作封装在一起。A. 可靠性B. 可移植性C. 可复用性D. 可维护性27.文件设计过程包括文件的逻辑设计和物理设计阶段。其中文件的逻辑设计在()阶段进行。A. 详细设计B. 程序编码C. 需求分析D. 概要设计28.下面哪项属于文件逻辑设计的任务?A. 理解文件的特性B. 估算文件的存取时间C. 分析数据间的关系D. 确定文件的记录格式29.()的目的是确定物理数据库结构。A. 完整性设计B. 安全性设计C. 子模式设计D. 模式设计30.程序流程图是使用最为广泛的详细设计方法,其中方框
29、代表:A. 结束B. 控制C. 注释D. 处理步骤31.程序流程图属于( )阶段的工具A. 编码B. 总体设计C. 详细设计D. 分析32.判定表由4个部分组成,其中()列出了所有的条件。A. 右半部B. 左上部C. 左下部D. 右下部33.PDL是一种()语言。A. 高级程序设计语言B. 建模语言C. 低级程序设计语言D. 过程设计语言34.PDL属于( )阶段的工具A. 编码B. 总体设计C. 详细设计D. 分析35.面向对象设计强调定义(),并且使它们相互协作来满足用户需求。A. E-R模型B. 软件对象C. 物理模型D. 接口36.面向对象设计的步骤中,正确的顺序是()。A. 用例设计
30、、构架设计、类设计B. 系统构架设计、用例设计、类设计C. 系统构架设计、数据库设计和用户界面设计D. 类设计、用例设计、构架设计37.通常将具有共性的非功能要求设计在(),以减少重新开发的工作量。A. 最低层B. 最高层C. 接口层D. 中间层38.下面那个选项不是正确的面向对象设计思想。A. 发现变化并且封装它B. 先组合后继承C. 先继承后组合D. 对接口进行设计39.一个设计得好的OO系统具有()A. 弱内聚、强耦合的特征B. 弱内聚、弱耦合的特征C. 强内聚、弱耦合的特征D. 强内聚、强耦合的特征40.在面向对象的设计中,我们应遵循的设计准则除了模块化、抽象、低耦合、强内聚以外,还有
31、( ) A. 类的开发B. 信息隐蔽C. 经常类的复用D. 隐藏复杂性41.( )是设计稿质量软件的一个重要原则,因为它有助于隔离变化对系统其他元素的影响。A. 服务内聚B. 可重用C. 弱耦合D. 框架42.耦合主要是指不同对象之间相互关联的程度,如果关联程度高,则会()A. 增加测试修改难度B. 降低类的可移植性C. 以上全部D. 降低类的可重用性43.如果对象之间的耦合是通过()来实现的,则这种耦合就是交互耦合。A. 方法B. 参数C. 公共数据区D. 消息机制44.在面向对象设计中应尽量()A. 减少对象之间发送的消息数B. 以上全部C. 增加消息中的参数个数D. 提高消息的连接程度4
32、5.继承耦合是()之间的一种关联形式,设计时应该适当使用这种耦合。A. 虚类与实体类B. 数据类与处理类C. 一般化类与特殊化类D. 控制类与界面类46.在设计时要特别分析一般化类与特殊化类之间的继承关系,如果抽象层次不合理,会降低系统的()A. 安全性B. 可重用性C. 稳定性D. 可移植性47.软件重用在面向对象软件开发方法中是从()开始的A. 维护阶段B. 需求分析C. 设计阶段D. 绘制模型48.为了提高工作效率,减少错误,降低成本,就要充分考虑软件元素的()A. 可重用性B. 可读性C. 可移植性D. 稳定性49.框架是一组可用于不同应用的()的集合。A. 类B. 过程C. 函数D.
33、 数据结构50.当面向对象设计进行底层设计时,对每个类进行详细设计,设计类的属性和操作,优化类之间的关系,就可以设计成( )来对类的设计进行构架和优化。A. 过程B. 属性C. 框架D. 方法51.面向对象设计首先要进行高层设计:确定系统的总体结构和风格,构造系统的(),将系统划分成不同的子系统。A. 物理模型B. 逻辑模型C. 数据模型D. 用例模型52.构架设计的主要目的是(),这项工作由经验丰富的构架设计师主持完成。A. 处理流程B. 确定系统总体结构C. 类图D. 确定系统数据结构53.每个子系统的接口上定义了若干(),其他子系统只能通过接口享受这个子系统提供的服务。A. 命令B. 属
34、性C. 数据D. 操作54.在分析模型内表示协调、顺序、事务处理以及控制其他对象的类是()。A. 主函数B. 控制类C. 事务类D. 组件类55.用( )描述系统与角色之间的接口。A. 窗体B. 表单C. 界面类D. 对话框56.通常将具有共性的非功能需求设计在( ),以减少重新开发的工作量。A. 引用B. 调用C. 接口D. 复用57.非功能需求设计需要考虑的因素有()A. 故障恢复B. 以上全部C. 错误检测D. 系统的安全性58.对用例进行设计,发现实现用例功能的(),确定类之间的关系。A. 算法B. 数据结构C. 关键类D. 业务流程59.每个用例至少应该有一个(),它通常没有属性而只
35、有方法,只是起协调和控制作用。A. 接口类B. 控制类C. 界面类D. 实体类60.定义类的属性类型时尽量使用已有类型,太多自定义类型会降低系统的()指标。A. 安全性B. 有效性C. 开发效率D. 可维护性61.定义类的属性结构,尽量不要使用复杂的()A. 数据结构B. 对象C. 类D. 方法62.设计类的操作就是为每个类的方法设计必须实现的操作,并用自然语言或伪代码描述操作的()A. 对象B. 服务C. 算法D. 方法63.设计类的操作中不需要定义的内容()A. 操作返回的类型B. 定义操作的参数C. 对象的属性D. 操作描述64.对类进行详细设计,主要是设计类的(),优化类之间的关系。A
36、. 属性和方法、关系B. 处理流程C. 数据结构D. 算法65.在概要设计阶段定义了类的关系,在()要细化这些关系A. 数据库设计B. 测试C. 分析D. 详细设计66.在图书馆系统中,假如已经构造了一个一般借书者类,后来发现图书馆的学生和教师在借书中有不同要求。请问在面向对象设计中用()方法可以方便地设计这两个类? A. 动态联编B. 继承C. 信息隐藏D. 代码复制67.系统设计规格说明书中不可缺少的内容有()A. 项目的背景B. 设计的目的C. 设计约束和专业词汇D. 以上全部模块五 编码1.所有程序设计语言的基本成分都可归纳为:数据成分、()、控制成分和传输成分。A. 运算成分B. 输
37、入成分C. 说明成分D. 循环成分2.()程序设计语言能接受的数据,如各种类型的变量、数组等,作为程序操作的对象,具有名称、类型和作用域等特征。A. 说明成分B. 数据成分C. 控制成分D. 传输成分3.按照(),有通用语言和专用语言之分。A. 语言级别B. 用户要求C. 应用范围D. 使用方式4.结构化语言是介于自然语言和形式语言之间的一种()。A. 高级语言B. 计算机语言C. 半形式语言D. 低级语言5.下列叙述中错误的是( )。A. 给定算法的时间复杂性与实现该算法所采用的程序设计语言无关B. 面向对象程序设计语言不支持对一个对象的成员变量进行直接访问C. 面向对象程序设计语言可支持过
38、程化的程序设计D. 与汇编语言相比,采用脚本语言编程可获得更高的运行效率6.程序设计语言的技术特性不应包括()。A. 数据结构的描述性B. 数据库的易操作性C. 抽象类型的描述性D. 软件的可移植性7.科学计算领域一般选择()语言。A. 汇编语言B. HTMLC. XMLD. C8.程序结构清晰且简单易懂,一个函数的规模一般( )行。A. 不超过30B. 等于300C. 100左右D. 大于5009.最好使用( )避免二义性。A. 回车符号B. “”C. ;D. 括号10.如果程序代码的( )好,则调试的成本就可以大幅度降低。A. 可读性B. 性能比C. 可扩充性D. 可移植性11.对于嵌套的
39、循环和分支程序,层次不要超过( )层。A. 2B. 3C. 1D. 512.程序设计风格首先要考虑()。A. 效率B. 节省存储空间C. 代码书写优美D. 正确13.下面()属于容错处理。A. 变量使用前初始化B. 不要单独进行浮点数比较C. 异常捕捉处理D. 用户输入进行有效行检查14.以下()不符合可移植性要求。A. 对于JAVA程序可以使用第三方提供的接口B. 对于JAVA程序来说尽量使用标准的JDK提供的类C. 对数据库的操作,使用符合JAVA怨言规范的标准的接口类D. 尽量使用标准的SQL数据类型和SQL语句15.为获得较高的(),在设计过程中常采用通用的程序设计语言和运行支撑环境。
40、尽量不用与系统的底层相关性强的语言。A. 可维护性B. 可读性C. 可靠性D. 可移植性16.在设计程序编码的输入输出时,下面()不符合设计原则。A. 按照用户的要求设计输出报表形式B. 对所有的输入数据进行检验C. 输入一批数据时由用户指定输入数据数目D. 有些输入信息应提供缺省值17.输入输出风格受到()因素影响。A. 工作环境B. 以上全部C. 用户操作的的熟练程度D. 输入输出设备18.可重复使用的、功能相对独立的算法或接口应该考虑封装成公共的控件或类,下面()不属于这部分。A. 数据库连接B. 文件读写C. 日期处理D. 程序模版19.相对固定和独立的程序实现方式和过程,应考虑做成程
41、序模版,如()。A. 符合一定规范的XML数据的解析过程B. 时间处理C. 字符串格式处理D. 文件读写20.代码检查是由()组成一个走查小组,通过阅读代码,并进行提问和讨论,从而发现可能存在的缺陷、遗漏和矛盾的地方。A. 设计人员B. 分析人员C. 测试人员D. 编程人员21.java语言代码审查表中检查类的命名是否和设计相符属于代码检查的()的检查。A. 构造函数B. 类C. 属性D. 方法22.下列关于功能性注释不正确的说法是( )。A. 可使用空行或缩进,以便很容易区分注释和程序B. 修改程序也应修改注释C. 注释用来说明程序段,需要在每一行都要加注释D. 功能性注释嵌在源程序中,用于
42、说明程序段或语句的功能以及数据的状态23.下面( )不符合编程规范。A. 尽量减小代码量B. 尽量使用全局变量C. 避免功能冗余的模块D. 不使用不必要的变量和函数模块六 软件测试1、从狭义上讲,软件测试是()的过程。A. 区分程序员水平B. 用不同的数据验证程序正确性C. 为发现错误而执行程序D. 为了验证程序正确2、经验表明,在程序设计中,某模块与其他模块相比,若该模块已发现并改正的错误数目较多,则该模块中残留的错误与其他模块相比,通常应该()。A. 不确定B. 较少C. 较多D. 相似3、下面有关测试原则的说法正确的是( )。A. 程序最好由编写该程序的程序员自己来测试B. 使用测试用例
43、进行测试是为了检查程序员是否做错了他该做的事C. 测试用例应由测试的输入数据和预期的输出结果两部分组成D. 测试用例自诩选取合理的输入数据4、软件测试的目标是设计优秀的测试用例,()。A. 保障程序的正确性B. 以最小的代价、在最短的时间内尽可能多地发现软件中的错误C. 区分出程序员的编程水平D. 最快速地找出程序中的问题5、()不符合软件测试原则。A. 程序员应该仔细测试自己编写的程序代码B. 对每个测试结果进行检查,不漏掉已经出现的错误迹象C. 测试工作越早开始越好D. 程序员要避免测试自己编写的程序代码6、测试最早的开始时间是()。A. 从详细设计阶段开始B. 以上都对C. 从编码阶段开
44、始D. 从需求分析阶段开始7、从测试对象的粒度上划分测试为()。A. 单元测试、集成测试、系统测试和验收测试B. 压力测试、功能测试、性能测试和系统测试C. 单元测试、集成测试D. 黑盒测试、白盒测试、功能测试和性能测试8、()时,测试人员必须接触到程序源代码。A. 压力测试B. 外观测试C. 黑盒测试D. 白盒测试9、在设计黑盒测试用例时,主要研究()。A. 项目开发计划B. 详细设计说明C. 概要设计说明书D. 需求规格说明10、在设计测试用例时,应该包括()测试用例。A. 可能产生无效输出的输入情况B. 无效的和不期望的输入情况C. 上面所有情况D. 有效的和期望的输入情况11、测试用例是一组()。A. 测试数据B. 测试驱动程序C. 测试用的输入数据以及对应的预期结果D. 测试程序及数据