资源预览内容
第1页 / 共46页
第2页 / 共46页
第3页 / 共46页
第4页 / 共46页
第5页 / 共46页
第6页 / 共46页
第7页 / 共46页
第8页 / 共46页
第9页 / 共46页
第10页 / 共46页
亲,该文档总共46页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
软件导论复习资料知识点汇总1. 在软件开发模型中,提出最早、应用最广泛的模型是( )。A瀑布 B螺旋 C演化 D智能2. 软件工程方法是在实践中不断发展着的方法,而早期的软件工程方法一般是指( )。A原型化方法 B结构化方法C面向对象方法 D功能分解法3. 下列关于瀑布模型的描述正确的是()。A利用瀑布模型,如果发现问题修改的代价很低B瀑布模型的核心是按照软件开发的时间顺序将问题简化C瀑布模型具有良好的灵活性D瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开4. 原型化方法是用户和设计者之间执行的一种交互构成,适用于( )系统。A需求不确定性高的 B需求确定的C管理信息 D实时5. 软件开发瀑布模型中的软件定义时期各个阶段依次是( ) 。A问题定义,可行性研究,需求分析。 B可行性研究,问题定义,需求分析。C可行性研究,需求分析,问题定义。D以上顺序都不对。6. 开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象是 ( )的一种表现 。A. 软件工程 B. 软件周期 C. 软件危机 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缺少文档12.瀑布模型的主要特点之一是 ( )。A. 推迟实现 B. 成功率极高 C. 容易失败 D. 过程迭代13.在软件生产的程序系统时代由于软件规模扩大和软件复杂性提高等原因导致了( ) 。A软件危机 B软件工程C程序设计革命 D结构化程序设计14.软件工程是( ) 。A是结构化程序设计的指导方法。B是软件开发技术和软件工程管理学为内容的学科。C是指导计算机软件开发和维护的工程学科。D是指导软件开发的工程方法。15.在各种不同的软件需求中,功能需求描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明, ( )是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。A业务需求 B系统要求 C非功能需求 D用户需求16.软件可行性研究一般不考虑( ) 。A是否有足够的人员和相关的技术来支持系统开发B是否有足够的工具和相关的技术来支持系统开发C待开发软件是否有市场、经济上是否合算D待开发的软件是否会有质量问题17.经济可行性研究的范围包括( ) 。A资源有效性 B管理制度 C效益分析 D开发风险18.研究开发所需要的成本和资源是属于可行性研究中的( ) 。A. 技术可行性 B. 经济可行性 C. 社会可行性 D. 法律可行性19.研究开发的软件是否符合相关法律规定是属于可行性研究中的( ) 。A.技术可行性 B. 经济可行性 C. 社会可行性 D. 法律可行性20.可行性研究实质上是进行了一次( ) 。A. 简化了的系统分析和设计过程B. 详尽的系统分析和设计过程C. 彻底的系统设计过程 D. 深入的需求分析21.可行性研究阶段的主要任务包括( ) 。A分析和澄清问题定义 B导出系统的逻辑模型C制定粗略的进度建议和计划 D以上全是22.需求分析的任务包括( ) 。A确定对系统的综合要求 B分析系统的数据要求C导出逻辑模型并修正开发计划 D以上全是23.需求分析的任务不包括( ) 。A确定对系统的综合要求 B分析系统的数据要求C从技术角度分析系统是否可行 D导出逻辑模型并修正开发计划24.要将一个复杂的系统分析清楚,传统软件工程常用方法是结构化分析方法,结构化分析方法就是A面向数据流自顶向下逐步求精的方法 B由内向外进行分析的方法C先局部后整体的分析方法D使用 IPO 图形工具分析的方法25.需求分析是要完整准确清晰具体地确定系统所要完成的工作,其主要依据是前一阶段的文档A用户手册和参考手册 B软件需求规格说明书C开发计划 D可行性研究报告26.需求分析阶段的主要任务是确定( ) 。A软件开发方法 B软件开发工具C软件开发费 D软件系统的功能27.数据字典是用来定义()中的各个成份的具体含义的。A流程图 B功能结构图C系统结构图 D数据流图28.数据流图是一种用来描述( )的图形化工具。A系统物理组成 B系统信息流和数据流C所有功能 D系统控制流和数据流29.( )和数据流图共同构成系统的逻辑模型,没有它,数据流图就不完整。A系统流程图 BE-R 图C数据字典 D层次方框图30.数据流图 DFD 中的每个加工至少需要( )。A. 一个输入流 B. 一个输出流和一个输入流C. 一个输入或输出流 D .一个输出流31.数据流图(DFD)是 ()方法中用于表示系统的逻辑模型的一种图形工具。ASA BSD CSP DSC32.使用实体-联系图(ER 图)建立的概念性数据模型中包含 3 种互相关联的信息:( ) 。A数据对象,属性,方法 B数据对象,属性,联系C数据表,属性,联系 D数据表,实体,联系33.模块的内聚性最高的是( )A. 逻辑内聚 B. 时间内聚C. 偶然内聚 D. 功能内聚34.总体设计的目的是确定整个系统的()。A规模 B功能及模块结构C费用 D测试方案35.一个模块内部各程序都在同一数据结构上操作,这个模块的内聚性称为( )。A时间内聚 B功能内聚C通信内聚 C过程内聚36.软件总体设计是指软件总体结构设计和数据设计,该阶段的主要任务不包括( ) 。A. 设计软件的模块结构 B. 定义接口并建立数据结构C. 模块设计 D. 生成概要设计规格说明37.如果某种内聚要求一个模块中包含的任务必须在同一段时间内执行,则这种内聚为( )。A时间内聚 B逻辑内聚 C通信内聚 D信息内聚38.为了提高模块的独立性,模块之间最好使用( )。A. 控制耦合 B. 公共耦合 C. 内容耦合 D. 数据耦合39.结构化程序设计的一种基本方法是( ) 。A筛选法 B递归法 C归纳法 D逐步求精法40.对软件进行分解,是为了( )。A降低模块间接口的复杂程度B降低模块的复杂程度C降低模块的复杂程度,并降低模块间接口的复杂程度D降低模块的复杂程度,并提高模块间接口的复杂程度41.在软件工程中,描绘软件结构的图形工具不包括( ) 。A. 层次图 B. HIPO 图 C. PAD 图 D. H 图42.在详细设计阶段经常采用的图形工具包括( ) 。APAD 图 B程序流程图 CN-S 图 D以上都是43.提高程序可读性的手段包括( )。A使用三种标准控制结构 B采用有实际意义的变量名C. 给程序加注释 D以上都是44.结构化程序设计的三种基本控制结构不包括( ) 。A顺序 B选择 C转移 D循环45.详细设计中,过程设计的常用图形工具不包括( ) 。A程序流程图 B数据流图 CN-S 盒图 DPAD 图46.下列关于详细设计中的说法中正确的是( )等。A详细设计任务相当于设计程序的“蓝图”B详细设计的根本目标是应该怎样具体地实现系统C详细设计编写代码D以上都正确47.结构化程序之所以具有易于阅读,并且有可能验证其正确性,这是由于( )A它强调编程风格 B选择良好的数据结构和算法C. 有限制地使用 GOTO 语句 D只有三种基本结构48.程序设计语言主要分三大类:机器语言,汇编语言和( ) 。A逻辑语言 B高级语言 C自然语言 D智能语言49.结构化程序设计中的三种基本控制结构是( ) 。A过程、子程序和分程序 B顺序、选择和循环C递归、堆栈和队列 D调用、返回和转移50.软件详细设计的主要任务是确定每个模块的 ( )。A算法和使用的数据结构 B外部接口C功能 D编程51.在详细设计阶段,经常采用的工具包括( ) 。A程序流程图 BSA CSC DDFD52.详细设计的结果基本决定了最终程序的( ) 。A代码的规模 B运行速度 C质量 D可维护性53.两个模块彼此传递的信息中有控制信息,这种耦合称为( ) 。A数据耦合 B公共环境耦合 C内容耦合 D控制耦合54.结构化设计又称为( )。A. 概要设计B. 面向数据流设计C. 面向对象设计D. 详细设计55.按照总体设计中的启发式规则,模块的作用域和模块的控制域之间的关系应为( ) 。A. 模块的作用域应在模块的控制域之内。B. 模块的控制域应在模块的作用域之内。C. 模块的控制域与模块的作用域互相独立。D. 以上说法都不对。56.在 SD 方法中全面指导模块划分的最重要的原则是 ( )。A. 程序模块化 B. 模块高内聚 C. 模块低耦合 D. 模块独立性57.软件总体设计是指软件总体结构设计和数据设计,该阶段的主要任务不包括( ) 。A. 设计软件的模块结构 B. 定义接口并建立数据结构C. 模块内部算法设计 D. 生成概要设计规格说明58.软件详细设计主要采用的方法是( )。A. 模块设计 B. 结构化设计 C. PDL 语言 D. 结构化程序设计59.详细设计中,过程设计的常用工具有( )等。A程序流程图,N-S 盒图,PAD 图 B程序流程图,数据流图C程序流程图,系统流程图 D程序流程图,E-R 图60.结构化程序设计主要强调的是( ) 。A程序易读性 B程序的效率C程序设计语言的先进性 D程序的规模61.提高程序可读性的最有力手段是( )。A使用三种标准控制结构 B采用有实际意义的变量名C. 显式说明一切变量 D给程序加注释62.一般来说,在软件生命周期中成本最高的阶段是( )。A. 详细设计 B. 软件编码C. 软件测试 D. 软件维护63.软件测试中根据测试用例设计的方法的不同可分为黑盒测试和白盒测试两种,它们( ) 。A前者属于静态测试,后者属于动态测试 B前者属于动态测试,后者属于静态测试C都属于静态测试D. 都属于动态测试64.若有一个计算类型的程序,它的输入量只有一个 X,其范围是-1.0,1.0 ,现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是( )。A. 条件覆盖法 B. 等价分类法 C. 边界值分析法 D. 错误推测法65.单元测试的测试用例主要根据( )的结果来设计。A. 需求分析 B. 详细设计 C. 概要设计 D. 源程序66.软件测试是为了( )而执行程序的过程。A. 纠正错误 B. 发现错误 C. 避免错误 D. 证明正确67.常用的黑盒测试方法不包括( ) 。A等价划分 B边界值分析 C逻辑覆盖 D错误推测68.软件测试中,白盒法是通过分析程序的( )来设计测试用例的。A应用范围 B内部逻辑 C功能 D输入数据69.使用黑盒测试时,测试用例的设计应根据( ) 。A程序的内部逻辑 B程序的复杂程度C使用说明书 D程序的功能70.与确认测试阶段有关的文档是( )。A需求规格说明书 B概要设计说明书C详细设计说明书 D源程序71.( )是指程序在给定的时间点,按照规格说明书的规定成功运行的概率。A可移植性 B可用性 C可靠性 D可扩展性72.为软件的运行增加监控设施以应对将来可能出现的问题,这种维护的维护类型是( )。A改正性维护 B适应性维护 C完善性维护 D预防性维护73.在整个软件维护阶段所花费的全部工作中,哪种维护所占比例最大?( )A改正性维护 B适应性维护 C完善性维护 D预防性维护74.产生软件维护的副作用,是指 ( )A开发时的错误 B隐含的错误C因修改软件而造成了新的错误 D运行时误操作75.下列属于维护阶段的文档是 ( )。A. 软件规格说明 B. 用户操作手册C. 软件问题报告 D. 软件测试分析报告76.维护活动必须应用于( )A软件文档 B整个软件配置C可执行代码 D数据77.为了提高软件的可维护性,在编码阶段应注意( )。A. 保存测试用例和数据 B. 提高模块的独立性C. 文档的副作用 D. 养成好的程序设计风格78.以下哪些问题是维护人员经常面对的问题?( ) 。A理解别人的程序非常困难 B文档不合格C设计时没考虑未来的修改维护 D以上都是79.决定软件可维护性的因素包括( ) 。A可理解性,可测试性,可修改性,可移植性,可用性B可理解性,可测试性,可修改性,可移植性,可重用性C可理解性,可靠性,可测试性,可修改性,可移植性D可理解性,可扩展性,可测试性,可修改性,可升级性80.软件生存周期的( )工作与软件可维护性有着密切的关系。A编码阶段 B设计阶段 C测试阶段 D每个阶段81.软件维护困难的主要原因是( )。A. 费用低 B. 人员少C. 开发设计中的缺陷 D. 得不到用户支持82.因计算机硬件和软件环境的变化而作出的修改软件的过程称为 ( )。A. 改正性维护 B. 适应性维护 C. 完善性维护 D. 预防性维护83.在软件维护的实施过程中,为了正确和有效地修改,需要经历以下三个步骤:分析和理解程序,修改程序,重新验证程序。( )是决定维护成败和质量好坏的关键。A分析和理解程序 B重新验证程序 C修改程序 D验收程序84.( )是指程序在给定的时间间隔内,按照规格说明书的规定成功运行的概率。A可移植性 B可用性 C可靠性 D可扩展性85.软件可移植性是用来衡量软件的( )的重要尺度之一。A人机关系 B效率 C质量 D通用性86.软件质量必须在()加以保证。A开发之前 B开发之后C可行性研究过程中 D设计与实现过程中87.面向对象技术中,对象是类的实例。对象有三种成份:( )、属性和方法。A. 标识 B. 规则 C. 封装 D. 消息88.( )是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐蔽的,外界只能通过有限的接口与对象发生联系。A. 多态性 B. 继承 C. 封装 D. 消息89.消息是对象间交互的一种机制,消息刺激接收对象产生某种行为。消息的构成有三部分:( ) ,消息名,若干变元。A发出消息的对象 B接收消息的对象 C消息编号 D时间90.面向对象设计准则包括:模块化,抽象, ( ) ,弱耦合,强内聚和可重用。A信息隐藏 B可继承 C封装性 D实例化91.( )意味着一个操作在不同的类中可以有不同的实现方式。A多态性 B多继承 C类的复用 D封装92.软件开发过程中,抽取和整理用户需求并建立问题域精确模型的过程叫( )。A生存期 B面向对象分析C面向对象程序设计 D面向对象设计93.把一组具有相似特性的对象的描述,称之为( )。A. 多态性 B. 继承性 C. 类 D. 消息94.面向对象分析的独到之处在于( ) 。A将数据和操作结合在一起而不是分离 B仅考虑数据结构C数据和操作分别独立考虑 D仅考虑操作过程95.下面关于面向对象方法中消息的叙述,不正确的是( )。A. 键盘、鼠标、通信端口、网络等设备一有变化,就会产生消息B操作系统不断向应用程序发送消息,但应用程序不能向操作系统发送消息C. 应用程序之间可以相互发送消息D发送与接收消息的通信机制与传统的子程序调用机制不同96.面向对象分析是对系统进行()的一种方法。A需求建模 B程序设计 C设计评审 D测试验收97.汽车有一个发动机。汽车和发动机之间的关系是( )。A继承关系 B聚合关系C分类关系D主从关系98.消息是对象间交互的手段,消息刺激接收对象产生某种行为。消息的构成有三部分:接收消息的对象, ( ) ,若干变元。A发出消息的对象 B消息名 C消息编号 D发送时间99.( )是指用户只能见到对象界面上的信息,对象内部对用户是隐蔽的。A类 B实例 C封装 D对象100.对象是 OO 方法的核心,对象的类型有多种,但通常把如飞行、事故、演出、开会等称为( )A有形实体 B作用 C事件 D性能说明101.汽车有一种叫货车。汽车和货车之间的关系是( )。A继承关系 B聚合关系C分类关系D主从关系102.( )是对具有相同属性和行为的一个或多个对象的描述。A属性 B实例 C类 D对象1-5 ABDAA6-10 CDABD11-15 CAACC16-20 DCBDA21-25 DDCAD26-30DDBCB31-35ABDBC36-40CADDB41-45 CDDCB46-50DDBBA51-55ACDBA56-60DCDAA61-65 ADDCB66-70BCBDA71-75BDCCC76-80BDDBD81-85 CBACD86-90DACBA91-95ABCAB96-102 ABBCCAC填空题1. 基于计算机系统的软件要素中的软部件由_、_和_组成。2. 软件工程方法学分两类:_方法学和_方法学。3. 软件工程的目标是在给定成本、_的前提下开发出高质量的、_的软件产品。4. _是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。5. 软件工程采用层次化的方法,每个层次都包括_、方法、_三要素。6. 使用_这一软件过程模型可以让用户更多、更早地参与需求分析过程。7. 需求分析方法包括:_的分析方法、面向过程流的分析方法、_的分析方法。8. 描绘物理系统的传统工具是_。9. 需求分析阶段产生的文档是_,它的主要组成部分是_。10. 数据流图用图形符号表示_、_、数据源及数据存储。11. 实体关系图是_的基础,它描述_、属性及其关系。12. 软件设计的主要任务是根据_导出系统的实现方案。13. 一个模块拥有的直属下级模块的个数称为_,一个模块的直接上级模块的个数称为_。14. 将数据流图映射为软件结构时,所用映射方法涉及信息流的类型。其信息流分为_和_两种类型。15. 耦合的强弱取决于_的复杂性、进入或调用模块的位置以及通过界面传送数据的多少等。16. 总体设计确定模块的_,而详细设计确定模块的_。17. 软件结构是以_为基础而组成的一种控制层次结构。18. 详细设计的工具分为_、_和_三大类。19. 软件过程设计中最常用的技术和工具主要为程序流程图、_、_、盒图、_和 PDL 语言。20. 详细设计通常以_技术为逻辑基础,因为从软件工程观点看,_是软件最重要的质量标准之一。21. 对于复杂数据中的数据元素的组成方式有_、_、_和可选等四种基本类型。22. 影响编码质量的因素包括_、编程准则和_。23. 软件维护的副作用大致可分为三类:代码副作用、_副作用、_的副作用。24. 软件测试的目的是_,通常把测试方法分为_和_两大类。因为通常不可能做到_,所以精心设计_是保证达到测试目的所必需的。25. 进行软件测试的关键是设计出_的测试用例,测试用例应由_和_两部分组成。26. 单元测试过程应为测试模块开发一个_和(或)若干个_。27. 进行单元测试的依据是_描述,单元测试应对模块内所有重要的_设计测试用例,以便发现模块内部的错误。28. 确认测试应检查软件能否按合同要求进行工作,即是否满足_的确认标准。29. UML 的类包含三个部分:类的名称、_、_。30. 类之间的继承关系式现实世界中遗传关系的模拟,它表示类之间的内在联系以及对_的共享。31. UML 类之间的关系主要有_、聚集、_和依赖。32. 类 A 的一个操作调用类 B 的一个操作,且这两个类之间不存在其他关系,那么类 A 和类 B 之间是_关系。33. 在面向对象的软件中,_是对具有相同数据和相同操作的一组相似对象的定义;_是由某个特定的类所描述的一个具体对象。34. 面向对象方法用_分解取代了传统方法的_分解。判断题1. 计算机软件由文档和数据组成。 ( )2. 软件开发采用了软件工程之后,就不会发生软件危机了。( )3. 软件工程使用的软件工具能够自动或半自动地支持软件的开发、管理和文档的生成。 ( )4. 一个好的开发人员应具备的素质和能力包括善于与周围人员团结协作,建立良好的人际关系,善于听取别人的意见。( )5. 缺乏处理大型软件项目的经验,是产生软件危机的唯一原因。( )6. 软件开发小组人数越多越好。( )7. 难以控制开发进度和工作量估计困难时软件危机的主要表现之一。( )8. 面对日益增长的软件需求,人们显得力不从心。往往是产生软件危机的原因之一。( )9. 软件需求是指用户对目标软件系统在功能、性能、行为、设计约束等方面的期望。( )10.系统规格说明书是系统分析和定义阶段生成的一种文档。( )11.需求分析阶段所生成的文档主要是进度计划和可行性研究报告。( )12.软件就是完成特定功能的程序的集合。( )13.瀑布模型在实际的项目中严格顺序执行就基本可以成功。( )14.快速原型技术的适用于软件产品要求大量的用户交互、或产生大量的可视输出、或设计一些复杂的算法等场合。( )15.只要实行严格的产品控制就不用担心用户随意改需求。( )16.在可行性研究中最难决断和最关键的问题是技术可行性。( )17.流程图用三个基本的控制构件“分支” , “循环” , “重复”来表示。( )18.数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。19.系统分析阶段和系统设计阶段一般不考虑测试。( )20.改造程序结构,要降低耦合度,提高内聚度。( )21.一个软件系统中可能会出现所有模块之间没有任何联系的情况。( )22.采用信息隐藏原理指导模块设计可以支持模块的并行开发,减少软件测试盒软件维护的工作量。23.数据流图的分解速度应保持较高。通常一个加工每次可分解为 1020 个子加工。( )24.概要设计也成总体设计,其过程由确定设计方案和结构设计两个阶段组成。( )25.只有了解用户、了解任务,才能设计出好的用户界面。( )26.一般单元测试不可以并行进行。( )27.测试最终是为了证明程序无错误。( )28.通常用数据流图、数据字典和简明算法描述表示系统的逻辑模型。 ( )29.数据流图就是用来刻画数据流和转换的信息系统建模技术。( )30.软件过程设计不用遵行“自上而下,逐步求精”的原则和单入口单出口的结构化设计思想。 ( )31.判定表不适合做通用的设计工具,不能表示顺序结构、循环结构。( )32.面向数据结构设计方法一般都包括下列任务:确定数据结构特征;用顺序、选择和重复三种基本形式表示数据等步骤。( )33.结构化程序设计 SP 强调模块采用自上而下逐步求精设计方法,单入口、单出口标准结构。34.盒图的主要优点之一是强制设计人员采用结构化设计方法。( )35.通常紧致性好的语言一致性就好。( )36.编程风格是在提高性能的前提下,有效地编排和组织程序以提高可读性和可维护性。( )37.数据输入的一般准则中包括保证信息显示方式与数据输入方式的协调一致;允许用户定做输入格式等内容。( )38.编码时应尽可能使用全局变量。( )39.用户本身的技能,个性上的差异,行为方式的不同,不会对人机界面使用造成影响。( )40.为提高可交互性一般应提高用户对话、移动和思考的效率,即最大可能地减少击键次数,缩短鼠标移动的距离,避免使用户产生无所适从的感觉。( )41.过程式程序设计语言的基本机制包括:消息传送、数据类型的定义、多态、子程序、控制结构。 ( )42.只要完成了软件的测试工作,讲软件产品交给用户,软件生命周期就结束了。( )43.模块的扇入是指该模块被其他模块调用的个数,扇入应尽可能地小。 ( )44.系统测试是把软件、硬件和环境连在一起的全面测试。( )45.软件测试是对软件规格说明、软件设计和编码的最全面、最后的审查。( )46.软件生命周期中,测试的工作量最大。( )47.软件测试的目的是为了证明一个软件的设计没有错误,只有没有任何错误的软件才能使用。 ( )48.测试计划、测试用例、出错统计和有关的分析报告一般不用长期保存。( )49.软件测试中,应该尽量穷尽所有的数据,以便保证测试的质量。( )50.黑盒测试法可有效的检查模块的内部逻辑结构的正确性。( )51.测试一般情况下是以白盒法为主黑盒法作为补充。( )52.文档记录软件开发活动和阶段成功,具有永久性,可供人或机器阅读。( )53.结构化维护用于待维护的软件的配置和完整的维护。( )54.非结构化维护用于软件的配置中只有源代码维护。( )55.完善性维护时提高或完善软件的性能。( )56.定软件项目进度表的途径之一是软件开发小组根据提供软件产品的最后期限从后往前安排时间。57.重构工程也称修复和改造工程,它是在逆向工程所获信息的基础上修改或重构已有的系统,产生系统的一个新版本。( )58.对象是属性和相关操作的封装。( )59.面向对象中的继承是指子类能够直接获得父类已有的性质和特征,而无需重新定义。 ( )60.面向对象设计是将面向对象分析所创建的分析模型进一步细化形成软件设计模型的过程。 ( )1. 完成测试工作后,为了缩短源程序的长度应删去源程序中的注释。( )2. 难以控制开发进度和工作量估计困难时软件危机的主要表现之一。( )3. 系统响应时间是指当用户执行了某个控制动作后(例如,按回车键,点鼠标等) ,系统做出反应的时间。 ( )4. 在模块化原理中,模块的控制域应该在作用域之内。( )5. 需求分析主要内容包括你:问题分析、需求描述、需求评审。( )6. 原型是目标软件系统的一个可操作模型,它实现了目标软件系统的某些重要方面。 ( )7. 即使测试过程没有发现任何错误,也不能说明软件没有错误。( )8. 编程风格是在提高性能的前提下,有效地编排和组织程序以提高可读性和可维护性。 ( )9. 采用信息隐藏原理指导模块设计可以支持模块的并行开发,减少软件测试盒软件维护的工作量。 ( )10.程序的可靠性、可维护性和效率通常只由程序设计语言、源代码的质量和语言的实现机制决定的。1. 模块接口设计要简单,以便降低复杂程度和冗余度。( )2. 过程式程序设计语言的基本机制包括:消息传送、数据类型的定义、多态、子程序、控制结构。3. 软件=“完成特定功能的程序+数据结构+文档” 。( )4. 制定软件项目进度表的途径之一是软件开发小组根据提供软件产品的最后期限从后往前安排时间。5. 在模块化原理中,模块的作用域应该在控制域内。( )6. 瀑布模型在实际的项目中严格顺序执行就基本可以成功。( )7. 只要实行严格的产品控制就不用担心用户随意改需求。( )8. 确认测试任务是根据软件需求规格说明书,测试软件系统是否满足用户的需求。( )9. 面向对象中的继承是指子类能够直接获得父类已有的性质和特征,但需要重新定义。 ( )10.需求分析阶段所生成的文档是进度计划和可行性研究报告。( )1. 确认测试任务是根据软件需求规格说明书,测试软件系统是否满足用户的需求。( )2. 软件就是完成特定功能的程序的集合。( )3. 制定软件项目进度表的途径之一是软件项目开发组织根据项目和资源情况制定软件项目开发的初步计划和交付软件产品的日期。( )4. 在模块化原理中,模块的作用域应该在控制域内。( )5. 过程式程序设计语言的基本机制包括:消息传递、数据类型定义、多态、子程序、控制结构。6. 即使测试过程没有发现任何错误,也不能说明软件没有错误。( )7. 只要实行严格的产品控制就不用担心用户随意改需求。( )8. 只要完成了软件测试工作,将软件产品交给用户,软件生命周期就结束了。 ( )9. 对象之间的通信仅通过消息传递机制。( )10.一个优秀的开发人员不必非要具有哦良好的书面和口头表达能力,只要程序写的好久没问题了。 ( )1. 重构工程也称修复和改造工程,它是在逆向工程所获信息的基础上修改或重构已有的系统,产生系统的一个新版本。( )2. 一个优秀的开发人员应具备素质和能力不包括具有良好的书面和口头表达能力。( )3. 软件维护的副作用是指由于维护或维护过程中其他一些不期望的行为引入的错误。 ( )4. 耦合是影响软件复杂度的重要因素。设计时应尽量使用内容耦合,少用控制耦合和特征耦合,限制公共环境耦合,完全不用数据耦合。( )5. 需求分析主要内容包括:问题分析、需求描述、需求评审。( )6. 面向对象方法中的对象就相当于结构化方法中的模块。( )7. 如果大量测试没有发现任何错误,可以说明软件没有错误。( )8. 编程风格是在提高性能的前提下,有效地编排和组织程序以提高可读性和可维护性。 ( )9. 数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。 ( )10.程序的可靠性、可维护性和效率通常只由程序设计语言、源代码的质量和语言的实现机制决定的。 ( )名词解释传统方法学部分1.软件工程 14.作用域 27.Beta 测试2.软件过程15.控制欲 28.回归测试3.软件生命周期16.扇出29.软件维护4.软件危机17.扇入30.改正性维护5.结构化分析18 模块独立性31.完善性维护6.实体-联系图19.结构化程序设计32.适应性维护7.数据字典20.编码风格33.预防性维护8.结构化设计21.白盒测试34.软件可维护性9.模块化22.黑盒测试35.软件维护副作用10 逐步求精23.单元测试36.可重用性11.信息隐蔽24.集成测试37.可靠性12.耦合25.系统测试38.可用性13.内聚26.Alpha 测试名词解释面向对象方法学部分1.对象3.继承5.消息2.类4.多态性填空题:1、程序 数据 文档 2、传统方法学 面向对象方法学3、给定开发进度 满足用户需求4、软件过程5、工具 过程6、原形模型7、面向数据流 面向对象8、系统流程图9、软件需求规格说明书 数据流图和数据字典 10、数据流 加工11、数据模型 数据对象12、软件需求规格说明书13、扇出 扇入14、变换型 事务型15、模块接口16、外部结构 内部结构17、模块18、图形类 语言类 表格类19、判定表 判定树 PAD 图20、结构化程序设计 可读性21、顺序 选择 重复22、编程语言 编程风格23、文档 数据24、发现并改正错误 白盒法 黑盒法 穷举测试 测试用例25、高产的(或:高效的) 输入数据 预期输出结果26、驱动模块 桩模块27、详细设计 执行通路28、软件要求规格说明书29、类的属性 类的操作30、属性和操作31、关联 泛化32、依赖33、类 实例34 对象 功能判断题:1-5 FFTTF 6-10 FTTTT 11-15 FFFTF 16-20 TFFFT21-25 FTFTT 26-30 FFTTF 31-35 TTTTF 36-40 FTFFT41-45 FFFTT 46-50 FFFFF 51-55 FTTTT 56-60 TTTTT1-5 FTTFT 6-10 TTFTF1-5 TFTTT6-10 FFTFF1-5 TFTTF 6-10 TFFTF1-5 TFTFT 6-10 FFFFF名词解释传统方法学部分软件:能完成预定功能、性能,并对相应数据进行加工的程序和描述数据及其操作的文档。软件工程:是采用工程的概念、原理、技术和方法,并结合正确的管理技术和当前能够得到的最先进的技术方法,经济高效地开发和维护软件的一门工程学科。软件过程:软件过程是指软件开发人员为了开发出高质量的软件产品所需完成的一系列任务的框架,它规定了完成各项任务的工作步骤。软件生命周期:一个软件从定义、开发、使用和维护直至最后被废弃要经历的漫长时期。软件危机:是指计算机软件的开发和维护过程中所遇到的一系列严重的问题。结构化分析:是面向数据流自顶向下逐步求精获取的方法,适合于数据处理系统的需求分析。实体联系图:描述系统所有数据对象的组成和属性及数据对象关系的图形语言。数据字典:由数据条目组成,数据字典描述、组织和管理数据流图中的数据流、加工、数据存储等数据元素。结构化设计:基于数据流的设计方法,将数据流图转换为软件结构。模块化:是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。逐步求精:是一种自顶向下的设计策略,是人类解决复杂问题时常用的一种技术。是为了能集中精力解决主要问题而尽量推迟考虑问题的细节。信息隐蔽:在设计中确定模块时,使得一个模块的所包含的信息,对于不需要这些信息的模块来说,是不能访问的。耦合:也称模块之间的联系。指软件系统结构中,各模块间相互联系紧密程度的度量。模块之间的联系越紧密,其耦合程度就越强,模块的独立性就越差。内聚:也称块内联系,指模块的功能强度的度量,是一个模块内部个元素之间彼此结合紧密程度的度量。作用域:是指受该模块内的一个判断影响的所有模块的集合。控制域:指模块本身以及其所有直接或间接从属于它的模块集合。扇出:指一个模块直接调用模块的数目。扇入:指有多少个上级模块直接调用它。模块独立性:每个模块独立完成一个相对独立的特定子功能,并且和其他模块之间的关系很简单。结构化程序设计:如果一个程序代码块仅仅通过顺序、选择、循环这三个基本控制结构进行连接,并且每个代码块只有一个入口和出口,则称这个程序是结构化程序设计。白盒测试:又称结构测试、逻辑驱动测试或基于程序的测试,它依赖于对程序内部结构的严密检验,针对特定条件设计测试用例,对软件的逻辑路径进行测试。黑盒测试:又称功能测试、数据驱动测试或基于规格说明的测试,它是一种从用户观点出发的测试。用这种方法进行测试时,把被测程序当做一个黑盒,不考虑内部结构和特性,测试者只考虑程序输入输出和程序功能,根据需求规格说明书来设计测试用例,推断测试结果的正确性。通常被用来验证软件功能的正确性和可操作性。单元测试:将每个模块作为一个独立的实体来测试,用详细设计描述做指南,对重要的执行通路进行测试,以便发现模块内部的错误,发现编码和详细设计的错误。集成测试:按照概要设计的要求组装独立模块成为子系统或系统,同时经过测试来发现接口错误的一种系统化的技术。系统测试:是指将经过集成测试的软件作为整个基于计算机系统的一个元素,与计算机硬件、外设、支持软件、数据和人员等元素结合在一起,对计算机系统进行一系列组装测试和确认测试。 测试/Alpha 测试:由用户在开发者场所进行,并且在开发者对用户的“指导”下进行的测试,开发者负责记录发现的软件错误和软件在使用中遇到的问题。Beta 测试/ 测试:由软件的最终用户们在一个或多个客户场所进行。开发者通常不在 测试的现场。 测试是软件在开发者不能控制的环境中的“真实”应用。用户记录在 测试过程中遇到的一切问题,并把这些问题报告给开发者。回归测试:是指重新执行已经做过的测试,以保证对软件的新变化没有带来非预期的副作用。软件维护:软件已经交付使用之后,为了改正软件运行错误或满足新需要而修改软件的过程改正性维护:对在测试阶段未能发现的、在软件投入使用后才逐渐暴露出来的错误的测试、诊断、定位、纠错,以及验证、修改的回归测试过程,称为改正性维护。完善性维护:为了满足用户在使用过程中对软件提出的新的功能和性能的要求,需要对原来的软件的功能进行修改或扩充。适应性维护:是软件适应外部新的软硬件环境,或者数据环境发生的新变化,而进行修改软件的过程。预防性维护:为了提高软件未来的可维护性、可靠性,或为了给未来的改进奠定更好的基础而修改软件的过程。软件可维护性:是指维护人员理解、改正、改动或改进这个软件的难易程度上,它是软件质量的主要特征之一。软件维护的副作用:是指由于修改程序而导致新的错误或者新增加一些不必要的活动。可重用性:指同一软件或部分软件不经修改或稍加改动就可以多次重复使用的性质。可重用性是软件工程追求的目标之一。可靠性:是指程序在给定的时间间隔内,按照规格说明书的规定成功运行的概率。可用性:是指程序在给定的时间点,按照规格说明书的规定成功运行的概率。名词解释面向对象方法学部分对象:是客观事物或概念的抽象表述,对象不仅能表示具体的实体,也能表示抽象的规划、计划或事件。继承:子类能够直接获得父类已有的性质和特征,不需要重新定义。类:是指一组具有相同属性和运算操作对象的抽象,即一组具有相同数据结构和相同操作对象的集合。多态性:是指相同的操作或函数、过程作用于不同的对象上并获得不同的结果。消息:是指对象之间在交互中所传送的通信信息。属性:实体或联系所具有的性质,一般一个实体具有多个属性。原型模型:是一个快速开发的过程,首先和用户沟通进行主要功能的需求分析和快速设计,然后建立一个原型,再请用户进行评价和反馈。开发人员根据用户的反馈进一步细化需求,改进原型系统的设计,如此反复直至用户满意。方法:是对象所能执行的操作,也就是类中所定义的服务。实例:有某个特定的类所描述的一个具体对象简答题汇总1. 简述软件危机发生的原因。客观原因:软件与硬件产品不同,软件是“开发的”而非“制造的” 。其开发过程难以管理和控制,产品质量也不好把握。软件没有“磨损” ,但是它会不断“退化” 。软件系统无法适应不断变化的环境和功能需求。软件都规模庞大,而程序的复杂性是随其规模的扩大呈指数增加。主观原因:对用户要求没有完整和准确的认识就匆忙编写程序。对软件的开发过程的认识不准确。生命周期的每个阶段都有特定的工作和特点,都是不可逾越的。只有上一阶段工作完成,才能开始下一阶段的工作。对软件质量的重视不够是造成软件开发成本激增的主要原因。注意软件开发过程中错误的“放大效应” 。轻视软件维护将是一个重大的错误。软件开发时期各阶段的关键目标都是提高软件的可维护性。2. 简述软件工程的基本原理。(1)用分阶段的生命周期计划严格管理应该将软件开发和维护的漫长生命周期划分成若干个阶段,并针对每个阶段制定切实可行的计划,然后严格按照计划对软件的开发和维护工作进行管理。(2)坚持进行阶段评审错误发现的越早,改正错误所付出的代价就越小。因此,开发人员应该坚持在每个阶段都进行严格的评审,以便更早地发现和改正错误。(3)实行严格的产品控制在软件开发的过程中不应随意修改需求,当改变需求时,必须实行严格的产品控制以保持软件各个配置成分的一致性。(4)采用现代程序设计技术采用先进的技术不仅可以提高软件开发和维护的效率,而且还能有效地提高软件产品的质量。(5) 结果可以清楚地审查应规定每个开发阶段的产品标准和文档要求,使得到的结果可以清楚地审查。(6)开发小组成员少而精软件开发小组人员要求素质高,而人数不宜过多。随着人数的增加,通信路径也急剧增加。(7)承认不断改进软件工程实践的必要性软件开发和维护的过程也需要随之改进。要主动采用最新的软件技术,而且还要不断总结经验和教训、收集历史数据帮助开发人员改进软件工程实践。3. 简述软件危机的几种常见表现形式。(1)对软件开发成本和进度的估计常常很不准确。实际成本往往大大超过估计成本,或开发进度比计划推迟几个月或一年以上。这种现象极大地影响了软件开发组织的信誉,也会引起用户的强烈不满。(2)软件产品质量较差,可靠性低。软件开发过程中不能坚持严格的审查、复审和测试,使得软件可靠性差、质量问题多。(3)用户对开发出来的软件产品不满意。开发人员与用户之间的交流不充分,仅对用户需求有了一个模糊的认识就匆忙开始写程序。这样的结果就是用户对于所谓已经完成的软件很不满意。(4)软件常常是不可维护的。在实际项目中,很多程序的错误往往难以修改,而且不能适应软硬件环境的变化,也无法添加用户需要的一些新功能。(5)软件产品缺少应有的文档资料。软件=程序+数据+文档。开发人员对文档认识不足,不能保证在开发过程中文档的完整性和准确性。缺少文档资料会造成软件开发、管理、审查、用户交流、软件维护等方面的诸多问题。(6)软件产品的供不应求。软件开发的生产率远远低于计算机硬件发展速度和用户的需求,造成了软件产品的供不应求。4. 可将软件生存周期划分为哪 3 个过程和哪 8 个阶段。3 个过程: 软件定义时期:确定软件开发的总目标和工程的可行性;导出实现策略和系统必须完成的功能;进行成本效益的估算;制定开发计划等 。 软件开发时期:具体设计和实现前一个时期定义的软件。 维护时期:使软件持久地满足用户的需要。8 个阶段:1. 问题定义2. 可行性研究3. 需求分析4. 总体设计5. 详细设计6. 编码和单元测试7. 综合测试:通过各类测试和调试来完善软件。8. 维护5. 试述瀑布模型的优点和缺点?/简述瀑布模型及其特点瀑布模型的特点:(1)各阶段之间有依赖性和严格的顺序性。(2)推迟实现。(3)严格的阶段质保。(4)文档驱动。瀑布模型的问题:(1)实际的项目很少顺序严格(2)用户往往难以给出具体、正确、完整的要求(3)开发人员“阻塞状态”严重(4)产品出现晚-6. 研究软件工程项目可行性应从哪几个方面分析?/简述可行性研究的步骤。答:1.技术可行性对要开发项目的功能、性能和限制条件进行分析,确定在现有的资源条件下,技术风险有多大,项目能否实现。2.经济可行性经济可行性研究的内容是进行开发成本的估算以及进行效益的评估确定要开发的项目是否值得投资开发。3.操作可行性在这个应用范围内,系统的操作方式是否行得通4.社会可行性社会可行性主要研究开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目的运行方式在用户组织内是否行得通,现有管理制度、人员素质和操作方式是否可行。7. 需求分析中对系统的综合要求包括哪些方面?/简述软件工程中需求分析的基本任务。(1)确定对系统的综合要求a.功能性需求 b.非功能性需求 c.出错处理需求,说明出错时对系统对环境时如何响应。d.逆向需求系统不应该做什么。e.将来可能提出的需求(2)分析系统的数据要求:是软件需求分析的一个重要任务,复杂数据由许多基本数据元素组成,数据结构表示数据元素之间的逻辑关系。(3)建立软件的逻辑模型,修正系统开发计划。对系统的综合要求+对数据的要求=系统逻辑模型描述方法:数据流图、数据字典、实体-联系图、和主要的处理算法。(4)编写软件需求规格说明书(5)需求分析评审:验证一致性、完整性、现实性、有效性8. 简述总体设计过程应该遵循的基本原理。应遵循的基本原理有:1)模块化,为解决一个复杂问题时,自顶向下逐层把软件系统规划分成若干模块的过程;2)抽象,抽出事物质特征而不考虑其他细节;3)逐步求精,为了能集中精力解决主要问题而尽力推迟对问题细节的考虑;4)信息隐蔽,在设计中确定模块时,使得一个模块内部包含的信息,对于不需要这些信息的其他模块来说,是不能访问的;5)局部化,把一些关系密切的软件元素,物理的改得彼此靠近;6)模块独立性,指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少且接口简单。9. 什么是模块化?模块化的根据是什么?采用模块化原理的优点是什么?模块化:是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。每个模块完成一个特定的子功能,所有模块按某种方法组装起来,成为一个整体,完成整个系统要求的功能。依据:不但可以降低复杂性,还可以减少开发工作量,从而降低开发成本,提高软件效率。优点:采用模块化原理可以使软件结构清晰,不仅容易设计也容易阅读和理解。模块化也有助于提高软件的可靠性。10.简述采用信息隐藏原理指导模块设计优点。a.通过信息隐蔽,可以定义和实施对模块的过程细节和局部数据结构的存取限制。b.信息隐蔽为软件系统的修改、测试及以后的维护都带来好处。c.防止错误的扩大传播。11.用 SD 方法将数据流图转换为软件结构,简述其过程。1. 复查并精化数据流图2. 确定数据流图类型3. 确定数据流的边界4. 完成“第一级分解”5. 完成“第二级分解”6. 优化12.简述软件结构设计启发式规则。1. 模块独立性准则:通过模块分解或合并,力求做到降低耦合提高内聚,保持模块相对独立性。2. 模块的作用域应该在控制域内3. 软件结构的形态特征准则软件结构从形态上看,应是顶层扇出数较高一些,中间层扇出数较低一些,底层扇入数较高一些。4模块大小准则在考虑模块的独立性时,为了增加可理解性,模块的大小最好在 50-150 条语句左右,可以用 1-2 页纸打印,便于人们阅读与研究。5模块的接口准则(1)模块接口设计要简单,以降低复杂程度和冗余度。(2)设计功能可预测并能得到验证的模块。(3)适当划分模块规模,以保持其独立性。13.试用程序流程图举例描述结构化程序设计中的三种基本控制结构。答案:P5414.简述软件维护的困难主要体现在哪几个方面? 理解别人的程序非常困难 开发文档不合格、缺少或与程序不一致 等待开发人员对软件说明 设计时没考虑未来的修改维护 维护经常受挫15.已知某学校教务管理系统中规定:每个教师(教工号,姓名,性别,职称,职务)可以教多门不同的课程(课程号,课名,学时,学分) ,每门课程只能由一个老师来教,每个学生(学号,姓名,性别,系,年级)可以学习多门课程并取得成绩。每门课程可以有多个学生学习,试根据已知条件,画出对应的实体联系图(E-R 图)16.试述软件测试过程。单元测试保证模块正确工作,多采用白盒测试;综合测试保证模块集成到一起后正常工作,多为黑盒测试,并铺以白盒技术;系统测试保证软件与其他系统元素合成后达到系统各项性能要求;确认测试保证软件需求的满足,采用黑盒测试。17.黑盒测试完全不考虑程序内部结构和处理过程,测试仅在程序界面上进行。因此黑盒测试设计测试用例旨在说明什么?黑盒测试设计测试用例旨在说明: 软件的功能是否可操作 程序能否适应当地接收输入数据并产生正确的输出结果; 能否保持外部信息(如数据文件)的完整性。18.简述在测试中采用自顶向下继承和自底向上集成的优缺点。1. 自顶向下集成:优点在于能尽早地对程序的主要控制和决策机制进行检验,因此较早地发现错误。缺点是在测试较高层模块时,低层处理采用桩模块替代,不能反映真行情况,重要数据不能及时回到上层模块,因此测试并不充分。2. 自底向上集成方法不用桩模块,测试用例的设计亦相对简单,但缺点是程序最后一个模块加入时才具有整体形象。它与自顶向下综合测试方法的优缺点正好相反。19.单元测试的测试重点主要有哪些?1.模块间的接口:调用本模块的输入参数是否正确;本模块调用子模块时输入给子模块的参数是否正确;全局/局部变量的定义和用法是否一致;2.局部数据结构不正确或不一致的数据类型说明使用尚未赋值或尚未初始化的变量错误的初始值或错误的缺省值变量名拼写错误或书写错误不一致的数据类型3.重要的执行通路(选择、循环等)程序中是否存在死代码;误解或错误的计算优先级;精度错误;表达式符号表示错误;循环变量的使用错误;4.出错处理通路出错的描述是否难以理解出错的描述是否能够对错误定位显示的错误与实际的错误是否相符对错误条件的处理正确与否在对错误进行处理之前,错误条件是否已经引起系统的干预等5.边界条件普通合法数据是否正确处理;普通非法数据是否正确处理;边界内最接近边界的(合法)数据是否正确处理;边界外最接近边界的(非法)数据是否正确处理等。20.试比较黑盒测试法与白盒测试法。(1) 白盒测试又称结构测试、逻辑驱动测试或基于程序的测试。黑盒测试又称功能测试、数据驱动测试或基于规格说明的测试。(2) 测试规划白盒测试是根据程序的内部结构,如语句的控制结构、模块间控制结构,以及内部数据结构等进行测试;黑盒测试时根据用户规格说明,以及体现它们的输入与输出之间的对应关系,特别是针对功能进行测试。(3) 特点白盒测试的优点是对程序内部逻辑进行覆盖测试,而黑盒测试的优点是能站在用户立场,针对软件功能进行测试;白盒测试的缺点是无法检验程序的外部功能特性,无法对程序内部欠缺部分进行测试,而黑盒测试的缺点是无法测试程序内部逻辑。(4) 常用方法白盒测试的常用方法有:语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖、基本路径覆盖等;黑盒测试的常用方法有:等价类划分、边界值分析、错误推测、因果图法等。21.一般而言,衡量某种程序语言是否适合于特定的项目,应考虑哪些因素? 待开发软件的应用领域 用户的要求 软件的运行环境 软件开发人员的知识 软件的可移植要求附录:2013 年天津市大学软件学院高职升本专业课试题-理工类第二部分 软件工程概论部分 100 分一、单项选择题(共 18 小题,每题 2 分,共 36 分)以下每小题列出的四个备选答案中只有一个符合题目要求,请将正确答案填入“单项选择题答题表”对应的格中,未填入答题表,错选或多选均不得分。1. 软件开发瀑布模型的各个阶段依次是 AA. 分析设计编码测试维护B. 设计定义开发测试维护C. 分析定义设计编码测试D. 设计分析编码测试维护2. 软件可行性研究一般不考虑 DA. 是否有足够的人员和相关的技术的来支持系统开发B. 是否有足够的工具和相关的技术的来支持系统开发C. 待开发软件是否有市场、经济上是否合算D. 待开发软件是由会有质量问题3. 需求分析阶段的主要任务是确定 DA. 软件开发方法B. 软件的总体结构C. 软件开发的费用D. 软件系统的功能4. 结构化分析方法(SA)的主要特点是 AA. 面向数据流自顶向下,逐步求精的方法B. 由内向外进行分析的方法C. 先局部后整体的分析方法D. 使用 IPO 图形工具分析的方法5. 软件总体设计阶段的任务不包括 CA. 设计软件的模块结构B. 定义接口并建立数据结构C. 模块设计D. 生成模块设计规格说明6. 数据流图中的每个加工至少需要 BA. 一个输入流 B. 一个输出流和一个输入流C. 一个输入或输出流D. 一个输出流7. 以下叙述中模块内聚性最高的是 DA. 逻辑内聚B. 时间内聚C. 通信内聚D. 功能内聚8. ( C )和数据流图共同构成系统的逻辑模型,没有它数据流图就不完整。A. 系统流程图B. E-R 图C. 数据字典D. 层次方框图9. 在详细设计阶段经常采用的图形工具包括 DA. PAD 图B. 程序流程图C. N-S 图D. 以上都是10.Jackson 设计方法是一种面向( C )的软件设计方法。A. 对象B. 数据流C. 数据结构D. 控制结构11.按照总体设计中启发式规则,模块的作用域和控制域之间的关系应满足 AA. 模块的作用域应在模块的控制域之间B. 模块的控制域应在模块的控制域之间C. 模块的控制域与模块的作用域相互独立D. 以上说法都不对12.一般来说,在软件生命周期中成本最高的阶段是 DA. 详细设计B. 软件编码C. 软件测试D. 软件维护13.模块间耦合程度由低到高的顺序是 BA. 控制耦合特征耦合公共耦合内容耦合数据耦合B. 数据耦合控制耦合特征耦合公共耦合内容耦合C. 数据耦合特征耦合控制耦合公共耦合内容耦合D. 内容耦合数据耦合控制耦合特征耦合公共耦合14.常用的黑盒测试方法不包括 CA. 等价类划分B. 边界值分析C. 逻辑覆盖D. 错误推测15.软件维护阶段的四类维护活动是 AA. 改正性维护,适应性维护,完善性维护和预防性维护B. 适应性维护,完善性维护,抢救性维护和辅助性维护C. 改正性维护,适应性维护,完善性维护和辅助性维护D. 适应性维护,完善性维护,抢救性维护和预防性维护16.因计算机软硬件环境的变化而作出的修改软件的过程属于 BA. 改正性维护B. 适应性维护C. 完整性维护D. 预防性维护17.逻辑覆盖方法中,覆盖程度最强的是 AA. 路径覆盖B. 条件覆盖C. 判定条件覆盖D. 语句覆盖18.以下( B )语句不属于面向对象的语言A. JavaB. CC. C+D. C#二、填空题(共 9 题,每空 1 分,共 10 分)1. 软件工程方法学主要包括 3 个要素:方法、 工具 和过程。2. UML 中定义 9 种图用于从不同角度描述系统,其中描述系统物理实现和配置的图有:构件图和 部署 图。3. 面向对象程序设计以 对象 为基本的逻辑构件,通过 继承 机制实现重用性。4. 数据流图可分为变换型数据流图和 事务型 数据流图两大类。5. 一个模块直接调用下级模块的个数称为 扇出 。6. 从工程管理的角度看,软件设计可分为 总体设计 和详细设计两大步骤。7. “OOD”的含义是 面向对象设计 。8. 相同的操作用于不同的对象上可获得不同的结果,这种现象称为 多态性 。9. 结构化程序设计中程序的三种基本结构是:顺序、选择、 循环 。三、判断题(共 15 题,每题 1 分,共 15 分)判断下列各题是否正确,正确的划,错误的划1. HIPO 图是面向对象设计工具之一。 ( )2. 测试过程没有发现任何错误,也不能说明软件没有错误。 ( )3. 数据库设计属于软件概要设计阶段。 ( )4. 软件就是完成特定功能的程序的集合。 ( )5. 对象之间的通信仅通过消息传递机制。 ( )6. 软件可行新分析研究的目的是最小的代价在尽可能的时间内确定该软件项目是否能够开发,是否值得去开发。 ( )7. 集成测试多用于“灰盒”测试技术,即它即应用黑盒测试技术也是用白盒测试技术。 ( )8. 瀑布模型可以有效地用户需求的变化,因此适合大型的系统。 ( )9. 结构化程序设计要求每个模块具有单入口,单出口。 ( )10.将软件系统划分为模块时,应尽量做到高内聚低耦合。 ( )11.详细设计的结构基本决定了最终程序的质量。 ( )12.验收测试是由用户依据软件需求规格说明书单独进行的。 ( )13.运用面向对象方法开发的软件一般是由很多较小的对象组成,从而降低了软件产品的复杂性,使得开发和维护更为简单有效。 ( )14.瀑布模型在实际的项目中严格顺序执行就可以成功。 ( )15.从模块独立性的角度,应尽量使用内容耦合。 ( )四、名词解释题(共 4 小题,共 9 分)1. 软件生命周期(3 分)一个软件从定义,开发,使用和维护直至最后被废弃要经历的漫长时期。2. 模块独立性(2 分)模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少,且接口简单。3. 白盒测试(2 分)又称结构测试、逻辑驱动测试或基于程序的测试,它依赖于对程序内部结构的严密检验,针对特定条件设计测试用例,对软件的逻辑路径进行测试。4. 对象(2 分)对象是指客观事物或概念的抽象描述,对象不仅能表示具体的实体,也能表示抽象的规则、计划、事件。五、简单题(共 3 小题,每题 5 分,共 15 分)1. 简述面向对象开发方法的优点 与人类习惯的思维方式一致 软件稳定性好 可重用性好 适合开发大型软件产品 可维护性好2. 决定软件可维护性的因素有哪些? 可理解性 可测试性 可修改性 可移植性 可重用性3. 简述快速原型模型及其特点原型模型是一个快速开发的过程。首先和用户沟通进行主要功能的需求分析和快速设计,然后建立一个原型模型,再请用户进行评价和反馈。开发人员根据用户的反馈进一步细化需求,改进原型系统的设计,如此反复直至用户满意。特点:优点:(1) 出品速度快。(2) 逐步求精。(3) 开发阶段迭代。缺点:(1) 实现过程中不应有的折衷方案。(2) 开发者急于完成原型而忽略了整体设计和可维护性;(3) 用户的参与过多也造成了软件开发管理的混乱。六、应用题(共 15 分)某教学管理信息系统中要求用户输入成绩,成绩限制为 0 到 100 之间的整数,小数或其他字符无效。如果输入成绩不在此范围内,则显示“输入错误” ,输入的成绩小于 60,则显示“不及格” ,大于等于 60 显示“及格” 。要求:分别用(1)等价类划分。(2)边界值分析法设计测试用例,以测试程序的“输入成绩”功能。(1)依据题目,划分的等价类为:输入等价类合理等价类不合理等价类输入类型1整数数字2含有非数字字符3有小数点成绩范围40 至 59 之间560 至 100之间6小于 07大于 100采用等价划分法设计的测试用例如下:测试数据期望结果覆盖范围88输入有效(及格)1、535输入有效(不及格)1、4A输入无效20.1输入无效3-10输入无效6101输入无效7(2)边界值法设计测试用例的情况如下表所示:边界值测试数据期望结果-1输入无效0输入有效(不及格)01输入有效(不及格)59输入有效(不及格)60输入有效(及格)6061输入有效(及格)99输入有效(及格)100输入有效(及格)100101输入无效
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号