软件工程试题及答案(较详细)
软件工程考试试题(含答案)
一、填空题(每空1分,共25分)1.软件生存周期一般可以划分为,问题定义、____________、____________、设计、编码、测试和____________.2.基于软件的功能划分,软件可以划分成__________、__________、__________三种.3.可行性研究,应从、技术可行性、运行可行性、和开放方案可行性等方面研究。
4.系统流程图是描绘的传统工具。
它的基本思想是用图形符号以描绘系统里面的每个部件。
5.数据流图的基本四种成分:数据输入的源点和数据输出汇点、、和。
6.结构化分析方法是面向________________进行需求分析的方法。
结构化分析方法使用________________与________________来描述。
7.是自动地共享类、子类和对象中的方法和数据的机制.8.软件详细设计工具可分为3类,即________________、________________和________________。
9.为了在软件开发过程中保证软件的质量,主要采取下述措施:________________、复查和管理复审、________________。
10.大型软件测试包括、、确认测试和四个步骤.1、可行性研究需求分析运行与维护2、系统软件支撑软件应用软件3、经济可行性法律可行性4、物理系统黑盒子形式5、加工数据流数据存储文件6、数据流数据流图DFD 数据字典DD7、继承性8、图示工具、设计语言表格工具9、审查测试10、单元测试集成测试系统测试1.软件设计中划分模块的一个准则是()。
A、低内聚低耦合B、低内聚高耦合C、高内聚低耦合D、高内聚高耦合2.Jackson设计方法是由英国的M。
Jackson提出的,它是一种面向()的软件设计方法.A、对象B、数据流C、数据结构D、控制结构3.试判断下列叙述中,哪个(些)是正确的( ).a、软件系统中所有的信息流都可以认为是事务流b、软件系统中所有的信息流都可以认为是变换流c、事务分析和变换分析的设计步骤是基本相似的A、aB、bC、cD、b和c4.()是用户和设计交换最频繁的方法.A、原型化方法B、瀑布模型方法C、螺旋模型方法D、构件组装模型5.软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是()。
软件工程考试题及答案
软件工程考试题及答案一、选择题1. 下列哪个不是软件工程的基本原则?A. 持续集成B. 形式化表示C. 高内聚低耦合D. 可重用性答案:B. 形式化表示2. 软件的可靠性是指什么?A. 软件的正确性B. 软件的可维护性C. 软件的效率D. 软件的稳定性答案:D. 软件的稳定性3. 下列哪个不是软件测试的目标?A. 发现软件中的错误和缺陷B. 验证软件是否满足用户需求C. 评估软件的质量D. 在短时间内完成软件开发答案:D. 在短时间内完成软件开发二、判断题1. 软件工程是一门工程学科,其目标是通过系统化的、规范化的方法对软件进行开发、运行和维护。
答案:正确2. “高内聚低耦合”是软件工程中的重要原则,指的是模块之间的独立性和模块之间的依赖程度。
答案:正确3. 软件需求分析是软件开发过程中的最后一步,最终确定软件系统的功能和性能。
答案:错误三、简答题1. 什么是软件工程?答:软件工程是一门工程学科,通过系统化的、规范化的方法对软件进行开发、运行和维护。
它涉及软件开发的各个阶段,包括需求分析、设计、编码、测试和维护等,并注重管理和团队合作,以提高软件质量、降低开发成本和加快开发进度。
2. 软件测试的目的是什么?答:软件测试的目的是发现软件中的错误和缺陷,验证软件是否满足用户需求,并评估软件的质量。
通过测试,可以提高软件的可靠性和稳定性,减少软件在使用过程中的风险。
3. 请简述软件开发生命周期中的各个阶段。
答:软件开发生命周期包括需求分析、设计、编码、测试和维护等阶段。
- 需求分析阶段:确定软件系统的功能、性能和约束条件,明确用户需求。
- 设计阶段:根据需求分析结果设计软件系统的结构和模块,确定软件的整体框架。
- 编码阶段:根据设计阶段的文档编写程序代码,实现软件系统的各个功能。
- 测试阶段:对软件进行各种测试,包括单元测试、集成测试和系统测试,以发现错误和缺陷。
- 维护阶段:根据用户反馈和需求变化,对软件进行修复和更新,确保其持续稳定运行。
软件工程试题及答案(较详细)
一.判断题:1.如果决定将软件全部包给第三方公司开发。
(×)2.有了对系统的目标有了大致的了解,就可以开始开发项目,以后的在开发中继续了解。
(×)3.对于一个成功的软件项目,可执行程序是唯一交付的东西。
(×)4.直到程序运行,才评估软件系统的质量。
(×)5.如果未能按时完成任务,我们可以通过增加程序员来加快完成任务.(×)6.虽然软件需求不断变更,但因软件比硬件有弹性,所以我们经常可以变更它.(×)7.软件工程将导致我们产生大量的无用文档,降低工作效率。
(×)8.在面向对象建模中,主题划分提供了在更高一层上描述。
(主题划分是指UML中将一组关联比较强的类的集合。
则上百个类可划分为几个主题)(√)9.面向对象的开发,对象分解取代功能分解. (√)10.软件中80%的错误存在20%的模块中。
(√)11.结构化分析方法在建立系统模型时,使用一般――特殊结构(实际上没有这种关系)来处理信息。
(×)12.开发软件就是编程。
(×)13.需求规格说明书说明了(√)14.结构化方法,建立系统模型时使用一般连接组织信息. (×)15.敏捷过程模型选用小而高激励的团队使用而不适用于大团队。
(√)二.简答题1.软件工程是层次化的,其四个层次是?答:方法,工具,过程,质量保证软件工程是一种层次化的技术(如图2-1所示)。
任何工程方法(包括软件工程)必须以有组织的质量保证为基础。
全面的质量管理和类似的理念刺激了不断的过程改进,正是这种改进导致了更加成熟的软件工程方法的不断出现。
支持软件工程的根基就在于对质量的关注。
软件工程的基层是过程层。
软件工程过程是将技术层结合在一起的凝聚力,使得计算机软件能够被合理地和及时地开发出来.过程定义了一组关键过程区域的框架(KPAs)[PAY93],这对于软件工程技术的有效应用是必须的。
关键过程区域构成了软件项目的管理控制的基础,并且确立了上下各区域之间的关系,其中规定了技术方法的采用、工程产品(模型、文档、数据、报告、表格等)的产生、里程碑的建立、质量的保证及变化的适当管理。
软件工程学试题及答案
软件工程学试题及答案一、单项选择题(每题2分,共10分)1. 软件工程的目的是()。
A. 提高软件的生产率B. 提高软件的运行效率C. 降低软件的生产成本D. 提高软件的可维护性答案:A2. 下列哪项不是软件需求分析的任务?()。
A. 确定软件的功能需求B. 确定软件的性能需求C. 确定软件的界面需求D. 确定软件的测试需求答案:D3. 软件生命周期中,()阶段是确定软件需求的阶段。
A. 需求分析B. 系统设计C. 编码D. 测试答案:A4. 软件测试的目的是()。
A. 证明软件是正确的B. 证明软件存在错误C. 发现软件中的错误D. 证明软件不存在错误答案:C5. 软件危机主要表现在()。
A. 软件成本B. 软件质量C. 软件进度D. 所有选项答案:D二、多项选择题(每题3分,共15分)1. 软件工程的基本原理包括()。
A. 用分阶段的生命周期计划严格管理B. 强调开发过程的迭代性质C. 采用合适的编程规范D. 强调软件工具的使用答案:ABD2. 软件需求分析的常用方法包括()。
A. 数据流图B. 用例图C. 状态转换图D. 流程图答案:ABC3. 软件测试的类型包括()。
A. 单元测试B. 集成测试C. 系统测试D. 验收测试答案:ABCD4. 软件维护的类型包括()。
A. 校正性维护B. 适应性维护C. 完善性维护D. 预防性维护答案:ABCD5. 软件工程中常用的设计模式包括()。
A. 单例模式B. 工厂模式C. 观察者模式D. 策略模式答案:ABCD三、简答题(每题5分,共20分)1. 简述软件工程中的模块化设计原则。
答案:模块化设计原则要求将系统分解成若干个模块,每个模块具有高内聚、低耦合的特点,以便于系统的开发、测试、维护和理解。
2. 描述软件需求分析的重要性。
答案:软件需求分析是软件开发过程中的关键步骤,它确保了开发团队对用户需求有清晰的理解,有助于避免开发出不符合用户需求的软件,减少返工和成本。
软件工程试题及答案
软件工程一、选择题1、软件需求规格说明的内容不包括(B)A、主要功能B、算法的详细描述C、用户界面及运行环境D、软件的性能2、面向对象的分析方法主要是建立三类模型,即(D)A、系统模型、ER模型、应用模型B、对象模型、动态模型、应用模型C、ER模型、对象模型、功能模型D、对象模型、动态模型、功能模型3、在ER模型中,包括以下基本成分(C)A、数据、对象、实体B、控制、联系、对象C、实体、联系、属性D、实体、属性、操作4、各种软件维护的类型中最重要的是(A)A、完善性维护B、纠错性维护C、适应性维护D、预防性维护5、若有一个计算类型的程序,它的输入量只有一个X,其范围是[—2.0,2.0],现从输入的角度考虑一组测试用列—2.001,-2,20,2.001,设计这组测试用列的方法是(C)A、条件覆盖法B、等价分类法C、边界值分析法D、错误推测法6、下列白盒测试法,哪种是最强的覆盖准则(D)A、语句覆盖B、条件覆盖C、判定覆盖D、条件组合覆盖7、确定测试计划是在(A)阶段制定的。
A、总体设计B、详细设计C、编码D、测试8、数据字典是软件需求分析阶段最重要的工具之一,其最基本的功能是(C)A、数据库设计B、数据通信C、数据定义D、数据维护9、软件开发当中,抽取和整理用户需求并建立问题域精确模型的过程(D)A、生成期B、软件意向C、结构化程序设计D、面向对象分析10、以下不属于IT企业当中过程管理和过程改进模型的是(D)A、ISO9001B、CMMIC、软件企业文化D、UML11、适合互联网上编程并可供不同平台运行的面向对象程序设计的语言是(java)12、软件结构图中,模块之间用直线连接,则表示他们之间存在(A )。
A、调用关系B、组成关系C、链接关系D、顺序执行关系13、生命周期方法设计软件的过程中,画用例图属于(A)阶段的工作.A、需求分析B、概要设计C、详细设计D、软件维护14、PDL属于(B)语言。
软件工程试题及答案
软件工程一、选择题1、软件需求规格说明的内容不包括(B)A、主要功能B、算法的详细描述C、用户界面及运行环境D、软件的性能2、面向对象的分析方法主要是建立三类模型,即(D)A、系统模型、ER模型、应用模型B、对象模型、动态模型、应用模型C、ER模型、对象模型、功能模型D、对象模型、动态模型、功能模型3、在ER模型中,包括以下基本成分(C)A、数据、对象、实体B、控制、联系、对象C、实体、联系、属性D、实体、属性、操作4、各种软件维护的类型中最重要的是(A)A、完善性维护B、纠错性维护C、适应性维护D、预防性维护5、若有一个计算类型的程序,它的输入量只有一个X,其范围是[,],现从输入的角度考虑一组测试用列,-2,20,,设计这组测试用列的方法是(C)A、条件覆盖法B、等价分类法C、边界值分析法D、错误推测法6、下列白盒测试法,哪种是最强的覆盖准则(D)A、语句覆盖B、条件覆盖C、判定覆盖D、条件组合覆盖7、确定测试计划是在(A)阶段制定的。
A、总体设计B、详细设计C、编码D、测试8、数据字典是软件需求分析阶段最重要的工具之一,其最基本的功能是(C)A、数据库设计B、数据通信C、数据定义D、数据维护9、软件开发当中,抽取和整理用户需求并建立问题域精确模型的过程(D)A、生成期B、软件意向C、结构化程序设计D、面向对象分析10、以下不属于IT企业当中过程管理和过程改进模型的是(D)A、ISO9001B、CMMIC、软件企业文化D、UML11、适合互联网上编程并可供不同平台运行的面向对象程序设计的语言是(java)12、软件结构图中,模块之间用直线连接,则表示他们之间存在(A )。
A、调用关系B、组成关系C、链接关系D、顺序执行关系13、生命周期方法设计软件的过程中,画用例图属于(A)阶段的工作。
A、需求分析B、概要设计C、详细设计D、软件维护14、PDL属于(B)语言。
A、高级程序设计语言B、伪码C、中级程序设计语言D、低级程序设计语言15、成功的测试是(发现至今尚未发现的错误)16、软件开发的瀑布模型典型的刻画了软件生成周期的阶段划分,与其想适应的软件开发方法是(即瀑布模型采用什么样的软件开发方法)(B)。
软件工程期末试卷(十套含答案)
软件工程期末试卷(十套含答案)-CAL-FENGHAI.-(YICAI)-Company One1软件工程期末试题(一)单项选择题1.瀑布模型的存在问题是( B )A.用户容易参与开发 B.缺乏灵活性C.用户与开发者易沟通 D.适用可变需求2.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( C )A.软件工程B.软件周期C.软件危机D.软件产生3.数据耦合、公共耦合、标记耦合、控制耦合的耦合性从低到高的顺序是( B )A.数据、公共、标记、控制B.数据、标记、控制、公共C.控制、数据、标记、公共D.控制、数据、公共、标记4.在SD方法中全面指导模块划分的最重要的原则是( D )A.程序模块化B.模块高内聚C.模块低耦合D.模块独立性5.软件测试的目的是( B )。
A.评价软件的质量 B. 发现软件的错误C.找出软件的所有错误 D. 证明软件是正确的6.在设计测试用例时,( A )是用得最多的一种黑盒测试方法。
A.等价类划分 B. 边界值分析 C. 因果图 D. 判定表7. 需求分析最终结果是产生( B )。
A. 项目开发计划B. 需求规格说明书C. 设计说明书D. 可行性分析报告8. Jackson图中,模块框之间若有直线连接,表示它们之间存在(B )。
A. 调用关系B. 组成关系C. 链接关系D. 顺序执行关系9. 软件详细设计的主要任务是确定每个模块的( C )。
A. 功能B. 外部接口C. 算法和使用的数据结构D. 编程10.为了提高软件的可维护性,在编码阶段应注意( D )A.保存测试用例和数据B.提高模块的独立性C.文档的副作用D.养成好的程序设计风格11.设年利率为i,现存入p元,若计复利,n年后可得钱数为(B)A.p﹡(1+i﹡n) B.p﹡(i+1)nC.p﹡(1+i)﹡n D.p﹡(i+n)12.在考察系统的一些涉及时序和改变的状态时,要用动态模型来表示。
动态模型着重于系统的控制逻辑,它包括两个图:一个是事件追踪图,另一个是( A )。
计算机软件工程试题及答案
计算机软件工程试题及答案一、选择题(每题5分,共30分)1. 下列哪项不是软件工程的目标之一?A. 提高软件质量B. 缩短软件开发周期C. 降低软件成本D. 增加软件功能答案:D2. 面向对象分析的重要产品是什么?A. 类图B. 时序图C. 用例图D. 类的详细设计答案:C3. 在敏捷软件开发中,团队重视的价值是?A. 测试通过的软件B. 设计文档C. 客户满意D. 项目进度答案:C4. 下列哪个是软件验证的过程?A. 编码B. 测试C. 需求分析D. 部署答案:B5. 软件过程模型中,下列哪项是瀑布模型的主要特点?A. 适合迭代式开发B. 强调反馈和调整C. 开发流程线性且有序D. 所有阶段同时进行答案:C6. 下列哪项不是软件需求的特性?A. 可理解性B. 可靠性C. 可维护性D. 可修改性答案:B二、简答题(每题10分,共30分)1. 请简述软件生命周期的主要阶段及其特点。
答案:软件生命周期主要包括需求分析、设计、编码、测试、部署和维护阶段。
需求分析阶段:明确用户需求和系统要求。
设计阶段:制定软件结构和模块设计方案。
编码阶段:将设计方案转化为可执行代码。
测试阶段:验证软件是否符合需求,包括单元测试、集成测试和系统测试。
部署阶段:将软件交付给用户并安装部署。
维护阶段:修复漏洞、改进功能、提供技术支持。
2. 解释迭代开发和增量开发的区别。
答案:迭代开发是指将整个开发过程分成多个迭代周期,每个迭代周期都包含需求分析、设计、编码、测试等阶段,每个迭代周期都会不断改进和完善软件,最终得到用户满意的产品。
增量开发是指在软件开发过程中,将系统功能模块化,按模块分阶段开发。
每个阶段都增加新的功能,并将之前开发的功能进行整合和测试。
最终形成完整的软件系统。
3. 简要介绍敏捷开发方法。
答案:敏捷开发是一种迭代和增量的开发方法,强调团队合作和灵活性,专注于快速交付可工作的软件。
敏捷开发方法包括Scrum、XP (极限编程)等。
(完整版)软件工程试卷及答案(多套精品试卷)
软件工程试题及答案第一部分选择题一、单项选择题每小题1分,共20分。
(在每小题的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内)1.在下列工具与环境中()属于较早期的CASE。
A.基于信息工程CASE B.人工智能CASEC.结构的基于图形CASE D.集成的CASE环境2.Putnam成本估算模型是一个()模型。
A.静态单变量 B.动态单变量 C.静态多变量 D.动态多变量3.在McCall软件质量度量模型中,()属于面向软件产品修改。
A.可靠性 B.可重用性C.适应性 D.可移植性4.ISO的软件质量评价模型由3层组成,其中用于评价设计质量的准则是()A.SQIC B.SQMC C.SQRC D.SQDC5.软件复杂性度量的参数包括()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.FORTRAN语言B.Pascal语言 C.C语言D.PL/1语言12.程序的三种基本控制结构是()A.过程、子程序和分程序B.顺序、选择和重复 C.递归、堆栈和队列 D.调用、返回和转移13.在详细设计阶段,经常采用的工具有()A.PAD B.SA C.SC D.DFD14.详细设计的结果基本决定了最终程序的()A.代码的规模 B.运行速度 C.质量 D.可维护性15.需求分析中开发人员要从用户那里了解()A.软件做什么 B.用户使用界面 C.输入的信息 D.软件的规模16.结构化程序设计主要强调的是()A.程序的规模 B.程序的效率C.程序设计语言的先进性D.程序易读性17.IDEF。
《软件工程》试题及参考答案(第10套)
《软件工程》试题(第10套)第一部分选择题一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
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、软件生命周期中所花费用最多的阶段是(D)A、详细设计B、软件编码C、软件测试D、软件维护8、因计算机硬件和软件环境的变化而作出的修改软件的过程称为 ( )A.校正性维护B.适应性维护C.完善性维护D.预防性维护9、一个模块内部各程序都在同一数据结构上操作,这个模块的内聚性称为( ) 。
A、时间内聚B、功能内聚C、信息内聚D、过程内聚10、结构化设计又称为( )A、概要设计B、面向数据流设计C、面向对象设计C、详细设计11. 协作图反映收发消息的对象的结构组织,它与()是同构的。
A 用例图B 类图C 活动图D 时序图12.黑盒测试在设计测试用例时,主要需要研究( )A.需求规格说明与概要设计说明B.详细设计说明C.项目开发计划D.概要设计说明与详细设计说明13.CMM提供了一个框架,将软件过程改进的进化步骤组织成5个成熟度等级。
软件工程考试试题(含答案)
一、选择题:(每题1分,共20分)(将答案写在题号前的()中)( C )1. 软件是()。
A. 处理对象和处理规则的描述B. 程序C. 程序及其文档D. 计算机系统( B )2. 软件需求规格说明的内容不应包括()。
A. 主要功能B. 算法的详细描述C. 用户界面及运行环境D. 软件的性能( B )3. 程序的三种基本控制结构是()。
A. 过程、子程序和分程序B. 顺序、选择和重复C. 递归、迭代和回溯D. 调用、返回和转移( D) 4. 面向对象的分析方法主要是建立三类模型,即( )。
A) 系统模型、ER模型、应用模型B) 对象模型、动态模型、应用模型C) E-R模型、对象模型、功能模型D) 对象模型、动态模型、功能模型( C ) 5. 在E-R模型中,包含以下基本成分( )。
A) 数据、对象、实体B) 控制、了解、对象C) 实体、了解、属性D) 实体、属性、操作( A ) 6. 各种软件维护的类型中最重要的是( )。
A) 完善性维护B) 纠错性维护C) 适应性维护D) 预防性维护( B ) 7.软件测试的目标是()。
A. 证明软件是正确的B. 发现错误、降低错误带来的风险C. 排除软件中所有的错误D. 与软件调试相同( D )8.软件生命周期中所花费用最多的阶段是()A.详细设计 B.软件编码 C.软件测试 D.软件维护( C )9.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0, 1.0],现从输入的角度考虑一组测试用例:-1.001, -1.0, 1.0, 1.001.设计这组测试用例的方法是()A.条件覆盖法 B.等价分类法 C.边界值分析法 D.错误推测法( D )10、详细设计的基本任务是确定每个模块的( )设计A.功能 B.调用关系 C.输入输出数据 D.算法( A )11.设函数C(X)定义问题X的复杂程序,函数E(X)确定解决问题X需要的工作量(时间)。
对于两个问题P1和P2,如果C(P1)>C(P2)显然E(P1)>E(P2),则得出结论E(P1+P2)>E(P1)+E(P2)就是:()A.模块化的根据B.逐步求精的根据C.抽象的根据D.信息隐藏和局部化的根据( D )12.下面几种白箱测试技术,哪种是最强的覆盖准则()A.语句覆盖B.条件覆盖C.判定覆盖D.条件组合覆盖( A )13.面向数据流的设计方法把()映射成软件结构。
软件工程试卷及答案
一、单项选择题(本大题共 20 小题,每小题 1 分,共 20 分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1. “软件工程的概念是为解决软件危机而提出的”这句话的意思是 ( )A.强调软件工程成功解决了软件危机的问题B.说明软件危机的存在总是使软件开发不像传统工程项目那样容易管理C.说明软件工程这门学科的形成是软件发展的需要D.说明软件工程的概念,即:工程的原则、思想、方法可解决当时软件开发和维护存在的问题2.瀑布模型的主要特点是 ( )A.将开发过程严格地划分为一系列有序的活动B.将开发过程分解为阶段C.提供了有效的管理模式D.缺乏灵活性3.在软件工程的需求分析阶段,不属于问题识别内容的是 ( )A.功能需求B.性能需求C.环境需求D.输入/输出需求4.画某系统的数据流图时,顶层图有 ( )A.0 张B.1 张C.2 张D.3 张及其以上5.软件模块内聚性最强的是 ( )A.功能内聚B.通信内聚C.偶然内聚D.逻辑内聚6.最早提出软件系统维护问题的阶段是 ( )A.可行性分析B.需求分析C.概要设计D.详细设计7.SD(结构化设计)方法设计的结果是( )A.模块B.模块结构图C.模块的算法D.数据流图8.在进行软件测试时,首先应当进行以下哪项测试,然后再进行组装测试,最后再进行有效性测试( )A.单元测试B.系统测试C.集成测试D.确认测试9.软件详细设计阶段的任务是 ( )A.算法与数据结构设计B.功能设计C.调用关系设计D.输入/输出设计10.下列属于静态测试方法的是 ( )A.黑盒法B.路径覆盖C.白盒法D.人工检测11.Fortran 语言主要作为以下哪个方面的语言 ( )A.科学工程计算B.系统软件C.事务处理D.人工智能12.用结构化语言来描述加工逻辑的外层结构时,以下不属于基本结构的是 ( )A.顺序结构B.选择结构C.嵌套结构D.重复结构l3.可维护软件的主要特性包括 ( )A.可理解性、可修改性、可移植性B.可使用性C.可维护性、可使用性、可靠性D.可测试性14.程序设计语言不具有的特性是 ( )A.心理特性B.工程特性C.应用特性D.技术特性15.下列不属于项目进度安排主要方法的是 ( )A.工程网络图B.Gantt 图C.进度结构图D.任务资源表16.下列不属于通常冗余技术的是 ( )A.结构冗余B.信息冗余C.时间冗余D.代码冗余17.下列工具中,属于需求追踪工具的是 ( )A.在 DBMS 上的应用运行工具B.追踪和状态报告C.访问和版本控制机构D.文件和修改管理18.关于软件测试的目的,下面观点错误的是 ( )A.为了发现错误而执行程序的过程B.一个好的测试用例能够发现至今尚未发现的错误C.证明程序是正确、没有错误的D.一个成功的测试用例是发现了至今尚未发现的错误的测试19.在制定项目开发计划文档时,不包含的内容是 ( )A.项目概述B.实施计划C.测试计划D.交付期限20.面向对象的开发方法中,以下哪种方法原是面向 Ada 语言的,并处于面向对象开发方法的奠基性地位( )A.Booch 方法B.Coad 方法C.UML 语言D.OMT 方法二、填空题(本大题共 10 小题,每小题 2 分,共 20 分)请在每小题的空格中填上正确答案。
软件工程精彩试题含问题详解
标准实用文档大全软件工程期末试题(软件工程期末试题(11)一, , 判断题判断题判断题((正确的在括号内打上正确的在括号内打上""√",",错误的打上错误的打上错误的打上""×".".每题每题1.5分,共15分)Warnier 方法也是一种面向数据结构的设计方法方法也是一种面向数据结构的设计方法,,其逻辑更严格.(.(××) PAD 图在设置了五种基本控制结构后图在设置了五种基本控制结构后,,还允许递归调用还允许递归调用. (. (. (××) 你为了加快软件维护作业的进度为了加快软件维护作业的进度,,应尽可能增加维护人员的数目应尽可能增加维护人员的数目.(.(.(××) 当验收测试通过当验收测试通过,,软件开发就完成了软件开发就完成了.(.(.(××)完成测试作业后完成测试作业后,,为了缩短源程序的长度应删除程序中的注解为了缩短源程序的长度应删除程序中的注解.(.(.(××) 系统结构图是精确表达程序结构的图形表示法系统结构图是精确表达程序结构的图形表示法..因此因此,,有时也可以将系统结构图当作系统流程图使用统结构图当作系统流程图使用.(.(.(××)在程序调试时在程序调试时,,找出错误的位置和性质比改正该错误更难找出错误的位置和性质比改正该错误更难.(.(.(√√) ) 以以对象对象,,类,继承和通信为基础的面向对象设计方法继承和通信为基础的面向对象设计方法(OOD)(OOD)(OOD)也是常见的软件也是常见的软件概要设计方法之一概要设计方法之一.(.(.(√√)二,单项选择题单项选择题((每小题2分,共10分)试判断下列叙述中试判断下列叙述中,,哪个(些)是正确的是正确的(D) (D)a,a,软件系统中所有的信息流都可以认为是事务流软件系统中所有的信息流都可以认为是事务流b,软件系统中所有的信息流都可以认为是变换流c,事务分析和变换分析的设计步骤是基本相似的A,a B,b C,c D,b 和c进行需求分析可使用多种工具进行需求分析可使用多种工具,,但(B)(B)是不适用的是不适用的是不适用的. .A,A,数据流图数据流图数据流图 B,PAD B,PAD 图 C, C,判定表判定表判定表 D, D, D,数据词典数据词典在详细设计阶段在详细设计阶段,,经常采用的工具有经常采用的工具有(A). (A).A,PAD B,SA C,SC D,DFD详细设计的结果基本决定了最终程序的详细设计的结果基本决定了最终程序的(C) (C)A,A,代码的规模代码的规模代码的规模 B, B, B,运行速度运行速度运行速度 C, C,质量 D, D,可维护性可维护性使用白盒测试方法时使用白盒测试方法时,,确定测试数据应根据确定测试数据应根据(A)(A)(A)和指定的覆盖标准和指定的覆盖标准和指定的覆盖标准. . A,程序的内部逻辑 B, B,程序的复杂程度程序的复杂程度C,C,该软件的编辑人员该软件的编辑人员该软件的编辑人员 D, D, D,程序的功能程序的功能三,多项选择题多项选择题((每题2分,共10分.注:正确得2分,漏选得1分,多选,错选不得分错选不得分.) .)(ABCD)(ABCD)可以作为模块可以作为模块可以作为模块. .A,子程序 B,函数 C,过程 D,编译文件下面哪些测试属于黑盒测试下面哪些测试属于黑盒测试(BCD). (BCD).A,A,路径测试路径测试路径测试 B, B,等价类划分 C,边界值分析 D,错误推测 E, E,循环测循环测试 下列属于度量效益方法的是下列属于度量效益方法的是(ABCD). (ABCD).A ,货币的时间价值 B,投资回收期 C,收入 D,投资回报率软件维护的策略包括软件维护的策略包括(BCD). (BCD).A,A,定期检测维护定期检测维护定期检测维护 B, B,改正性维护 C,适应性维护 D,完善性维护下列属于软件测试过程的是下列属于软件测试过程的是(ABE). (ABE).A,单元测试 B,组装测试 C, C,内核测试内核测试内核测试 D, D, D,法律验证法律验证法律验证 E, E,确认测试四,简答题简答题((每题6分,共24分)1、耦合性和内聚性有几种类型 其耦合度其耦合度,,内聚强度的顺序如何 答案:低:非直接耦合,数据耦合,标记耦合,控制耦合,外部耦合,公共耦合,内容耦合:高强:功能内聚,信息内聚,通信内聚,过程内聚,时间内聚,逻辑内聚,偶然内聚:弱2、请举例说明什么是多态、请举例说明什么是多态,,什么是重载答案答案::多态性是指子类对象可以像父类对象那样使用多态性是指子类对象可以像父类对象那样使用,,同样的消息既可以发送给父类对象也可以发送给子类对象既可以发送给父类对象也可以发送给子类对象..也就是说也就是说,,在类等级的不同层次中可以共享不同层次中可以共享((公用公用))一个行为一个行为((方法方法))的名字的名字,,然而不同层次中的每个类却各自按自己的需要来实现这个行为每个类却各自按自己的需要来实现这个行为..当对象接收到发送给它的消息时消息时,,根据该对象所属于的类动态选用在该类中定义的实现算法根据该对象所属于的类动态选用在该类中定义的实现算法. .3、重载是指一个类中有多个同名的方法、重载是指一个类中有多个同名的方法,,但在操作数个数或类型上有区别有区别. .例: public class A{int age;String name;public void setValue(int i) {age=i; }public void setValue(String s) {name=s; }4、什么是数据字典 简述数据字典与数据流图的关系简述数据字典与数据流图的关系. .答案答案::数据字典是关于数据的信息的集合数据字典是关于数据的信息的集合,,对数据流程图中的各个元素做完整的定义与说明元素做完整的定义与说明,,是数据流程图的补充工具是数据流程图的补充工具.(2.(2分)数据流图和数据字典共同构成系统的逻辑模型数据字典共同构成系统的逻辑模型,,没有数据字典数据流图就不严格没有数据字典数据流图就不严格, ,然而没有数据流图数据字典也难于发挥作用然而没有数据流图数据字典也难于发挥作用. . . 数据流图和对数据数据流图和对数据流图中每个元素的精确定义放在一起流图中每个元素的精确定义放在一起,,才能共同构成系统的规格说明.(3分)5、简述编码风格的重要性、简述编码风格的重要性. .答案答案::阅读程序是软件开发和维护过程中的一个重要组成部分阅读程序是软件开发和维护过程中的一个重要组成部分,,程序实际上也是一种供人阅读的文章应当在编写程序时讲求程序的风格应当在编写程序时讲求程序的风格,,这将大量地减少人们读程序的时间这将大量地减少人们读程序的时间..良好的编码风格有助于编写出可靠而又容易维护的程序而又容易维护的程序,,编码的风格在很大程度上决定着程序的质量编码的风格在很大程度上决定着程序的质量. .面向对象的测试和传统开发方法的测试有什么不同答案答案:(1):(1):(1)二者都可以分成四个阶段进行二者都可以分成四个阶段进行二者都可以分成四个阶段进行..但传统测试最小单元是模块,而在面向对象环境下而在面向对象环境下,,最小的可测试的单元是封装了的类或对象最小的可测试的单元是封装了的类或对象,,而不是程序模块不是程序模块.(2).(2).(2)因为面向对象软件没有一个层次的控制结构因为面向对象软件没有一个层次的控制结构因为面向对象软件没有一个层次的控制结构,,所以传统的自顶向下和自底向上的组装策略意义不大统的自顶向下和自底向上的组装策略意义不大. . . 每次将一个操作组装每次将一个操作组装到类中到类中((像传统的增殖式组装那样像传统的增殖式组装那样))常常行不通常常行不通,,因为在构成类的各个部件之间存在各种直接的和非直接的交互件之间存在各种直接的和非直接的交互..对于面向对象系统的组装测试对于面向对象系统的组装测试,,存在两种不同的测试策略存在两种不同的测试策略. .软件工程期末试卷(软件工程期末试卷(22)(开放教育本科)计算机科学与技术专业《软件工程》试题B一、填空题(每空1分,共20分)1. 软件生存周期一般可分为软件生存周期一般可分为____问题定义____、可行性研究、、可行性研究、、可行性研究、____需求分析_、设计编码、、设计编码、__测试_、运行与维护阶段。
软件工程(期末试题及答案)
软件工程霄末试题及答案)软件工程佴末试题及答案)一、选择题(共20题,每题2分,共40分)1. 在软件工程中,以下哪一项不是七大工程()。
A.软件需求B.软件设计C.软件开发D.软件维护答案:D2.软件需求分析的目的是()。
A.理解用户需求B.设计软件架构C.编写用户手册D.测试软件功能答案:A3软件开发过程中的迭代模型,不存在的是()。
A.瀑布模型B.敏捷开发模型C.螺旋模型D.喷泉模型答案:D4.以下哪个不是软件测试的目的()。
A.发现错误和缺陷B.验证软件是否满足需求C.评估软件的可靠性和质量D.优化软件的性能答案:D5.软件项目管理中,以下哪种方法适用于大型复杂项目()。
A.瀑布模型B.敏捷开发C.增量模型D螺旋模型答案:D6软件开发生命周期中,以下哪个过程不属于()。
A. 需求分析过程B. 设计过程C. 编码过程D. 运维过程答案:D7. 在软件工程中,什么是软件测试()。
A. 软件开发的最后阶段B. 发现软件缺陷的过程C. 确保软件质量的控制过程D. 软件最终验收的流程答案:C8. 以下哪种测试方法旨在评估软件在不同负载下的性能和稳定性()。
A. 单元测试B. 集成测试C系统测试D. 性能测试答案:D9.软件开发中,以下哪个活动不属于软件配置管理()。
A.版本控制B.配置变更控制C.缺陷管理D.代码评审答案:D10.以下哪个是敏捷开发的基本原则()。
A.面对面交流胜过文档B.完全按照计划进行C.精确的需求分析是关键D.严格的变更控制是必要的答案:A11.下列哪个不属于软件配置管理的内容()。
A.变更控制B.版本控制C.缺陷管理D.运维管理12. 软件的可靠性是指()。
A. 软件是否能正常运行B. 软件是否符合用户需求C. 软件运行期间不出现故障的能力D. 软件功能的完善程度答案:C13. 下列哪个不属于软件开发的7大原则()。
A. 开放封闭原则B. 依赖倒置原则C. 单一职责原则D. 模块化编程原则答案:D14. 软件过程改进的指导框架是()。
软件工程题库(含答案)
软件工程题库(含答案)一、单选题(共60题,每题1分,共60分)1、软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为( )A、可用性B、正确性C、完整性D、可靠性正确答案:D2、软件特性中,软件从一个计算机系统或环境移植到另一个上去的难易程度指的是( ).A、可移植性B、可理解性C、可重用性D、可修改性正确答案:A3、在软件质量要素的评价准则中,操作该软件的难易程度指的是( )。
A、容错性B、检测性C、可操作性D、安全性正确答案:C4、下列属于维护阶段的文档是( )A、软件问题报告B、用户操作手册C、软件测试分析报告D、软件规格说明正确答案:B5、快速原型模型的主要特点之一是( )A、及早提供工作软件B、开发完毕才见到产品C、及早提供全部完整的软件产品D、开发完毕后才见到工作软件正确答案:C6、可维护性通常包括( )。
A、可用性和可理解性B、可修改性、数据独立性和数据一致性C、可理解性、可修改性和可测试性D、可测试性和稳定性正确答案:C7、软件的可修改性支持软件的( )。
A、可互操作性B、可维护性C、可追踪性D、有效性正确答案:B8、数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( )A、数据通信B、数据定义C、数据维护D、数据库设计正确答案:B9、软件特性中,多个软件元素相互通讯并协同完成任务的能力指的是( )。
A、可追踪性B、可理解性C、可互操作性D、可维护性正确答案:C10、可维护性的特性中相互促进的是( )A、效率和可移植性B、可理解性和可测试性C、效率和结构好D、效率和可修改性正确答案:B11、在软件质量特性中,( )是指在规定的一段时间和条件下,与软件维持其性能水平的能力有关的一组属性。
A、可靠性B、易使用性C、正确性D、准确性正确答案:A12、设函数C(X)定义问题X的复杂程序,函数E(X)确定解决问题X 需要的工作量(时间)。
对于两个问题P1和P2,如果C(P1)>C(P2)显然E(P1)>E(P2),则得出结论E(P1+P2)>E(P1)+E(P2)就是:( )A、信息隐藏和局部化的根据B、逐步求精的根据C、抽象的根据D、模块化的根据正确答案:D13、下列说法中,不正确的是( )。
软件工程考试试题及答案
软件工程考试试题及答案一、单选题1. 软件需求分析是软件工程的哪个阶段?a. 需求分析与定义b. 软件设计c. 软件测试d. 软件维护答案:a. 需求分析与定义2. 下列哪项不是软件工程的基本原则?a. 可复用性b. 高效性c. 可维护性d. 可理解性答案:b. 高效性3. 下列哪项不是软件质量保证的措施?a. 程序员的自我质量保证b. 审计c. 代码复用d. 测试答案:c. 代码复用4. 下列哪个是软件生命周期模型?a. 瀑布模型b. 程序开发模型c. 螺旋模型d. 增量模型答案:a. 瀑布模型5. 在软件工程中,什么是软件配置管理?a. 设计和开发软件的过程b. 管理软件的版本和更改c. 测试软件的过程d. 分配和调度任务的过程答案:b. 管理软件的版本和更改二、多选题1. 下列哪些是软件需求规格说明的内容?(多选)a. 需求的功能描述b. 系统性能要求c. 用户界面设计d. 软件的安装要求答案:a. 需求的功能描述、b. 系统性能要求、d. 软件的安装要求2. 软件测试的目的是什么?(多选)a. 发现软件中的错误b. 确保软件满足需求c. 评估软件的质量d. 提高软件的可维护性答案:a. 发现软件中的错误、b. 确保软件满足需求、c. 评估软件的质量3. 下列哪些是软件维护的类型?(多选)a. 纠错性维护b. 适应性维护c. 完善性维护d. 增量性维护答案:a. 纠错性维护、b. 适应性维护、c. 完善性维护、d. 增量性维护三、判断题1. 软件工程是一门工程学科,它包括对软件进行开发、测试、维护和管理等方面的知识。
(正确/错误)答案:正确2. 软件需求分析是软件开发的最后一步。
(正确/错误)答案:错误3. 软件测试的目的是为了证明软件是没有错误的。
(正确/错误)答案:错误四、简答题1. 简述软件生命周期模型中的瀑布模型。
答案:瀑布模型是软件生命周期模型中最早的模型之一。
它将软件开发过程分为需求分析、系统设计、详细设计、编码、测试和维护等阶段,并按照顺序执行。
软件工程测试题+参考答案
软件工程测试题+参考答案一、单选题(共40题,每题1分,共40分)1、窃听是一种()攻击,攻击者()将自己的系统插入到发送站和接收站之间。
截获是一种()攻击,攻击者()将自己的系统插入到发送站和接受站之间。
A、被动,无须,主动,必须B、被动,必须,主动,无须C、主动,无须,被动,必须D、主动,必须,被动,无须正确答案:A2、如果一名攻击者截获了一个公钥,然后他将这个公钥替换为自己的公钥并发送给接收者,这种情况属于哪一种攻击?A、重放攻击B、Smurf 攻击C、中间人攻击D、字典攻击正确答案:C3、黑客攻击服务器以后,习惯建立隐藏用户,下列哪一个用户在DOS命令net user下是不会显示的。
A、fg#B、fg%C、fg_D、fg$正确答案:D4、下列哪一种方法在支持向量机中有应用A、拉格朗日乘子法B、二分法C、最小二乘法D、极大似然估计正确答案:A5、设顺序线性表的长度为30,分成5块,每块6个元素,如果采用分块查找,则其平均查找长度为A、6B、6.5C、11D、5正确答案:B6、对N个元素的表做顺序查找时,若查找每个元素的概率相同,则平均查找长度为A、NB、N/2C、(N+1)/2D、[(1+N)*N ]/2正确答案:C7、信息安全中PDR模型的关键因素是()。
A、人B、客体C、技术D、模型正确答案:A8、某业务系统具有上传功能,页面上传的文件只能上传到UPLOAD目录,由于上传页面没有过滤特殊文件后缀,存在上传漏洞,而短时间厂家无法修改上传页面源码,现采取如下措施,哪种措施可以暂时防止上传漏洞危害又不影响业务系统正常功能。
A、禁止UPLOAD目录访问权限B、删除上传页面C、禁止UPLOAD目录执行脚本文件D、以上措施都不正确正确答案:C9、在各种作业调度算法中 , 若所有作业同时到达 , 则平均周转时间最短的算法是()。
A、多级反馈队列调度算法B、先来先服务调度算法C、高优先级优先调度算法D、短作业优先调度算法正确答案:D10、下面()不是数据字典的内容。
考研软件工程试题及答案
考研软件工程试题及答案一、单项选择题(每题2分,共20分)1. 软件工程的主要目标是()。
A. 提高软件的可靠性B. 提高软件的生产率C. 降低软件的成本D. 以上都是答案:D2. 软件需求分析阶段的主要任务是()。
A. 确定软件的功能需求B. 确定软件的非功能需求C. 确定软件的界面需求D. 确定软件的性能需求答案:A3. 在软件测试中,黑盒测试的主要依据是()。
A. 程序内部逻辑B. 程序外部功能C. 程序设计文档D. 用户操作手册答案:B4. 软件开发过程中,需求变更可能导致()。
A. 项目延期B. 成本增加C. 质量下降D. 以上都是答案:D5. 面向对象分析与设计的主要概念不包括()。
A. 对象B. 类C. 模块D. 继承答案:C二、多项选择题(每题3分,共15分)1. 以下哪些是软件工程的基本原则?()A. 系统性原则B. 可维护性原则C. 可测试性原则D. 可扩展性原则答案:ABCD2. 软件项目管理包括以下哪些方面?()A. 时间管理B. 成本管理C. 风险管理D. 质量管理答案:ABCD3. 软件测试的目的是()。
A. 发现软件中的缺陷B. 验证软件是否满足需求C. 确保软件的可靠性D. 提高软件的性能答案:ABC三、简答题(每题5分,共20分)1. 简述软件生命周期的各个阶段。
答案:软件生命周期包括需求分析、设计、编码、测试、维护等阶段。
2. 什么是软件危机?它主要表现在哪些方面?答案:软件危机是指在软件开发过程中出现的一系列问题,如成本超支、进度延误、质量低下等。
3. 请解释什么是软件重构。
答案:软件重构是指在不改变软件外部行为的前提下,对软件内部结构进行调整,以提高其可理解性和可维护性。
4. 什么是敏捷开发?答案:敏捷开发是一种以人为核心、迭代、循序渐进的软件开发方法,强调团队合作、客户反馈和对变化的响应。
四、计算题(每题10分,共20分)1. 假设一个软件项目的开发周期为18个月,预计成本为1000万元。
软件工程试卷(附答案)
软件工程试卷(附答案)一、单项选择题(每题2分,共40分)1.软件生存周期模型有多钟,下列选项中,(C)不是软件生存周期模型。
A.螺旋模型B.增量模型C.功能模型D.瀑布模型2.以下说法错误的是(C)。
A.增量模型是在瀑布模型的基础上加以修改而形成的B.增量模型推迟某些阶段或所有阶段中的细节,从而较早地产生工作软件C.瀑布模型和增量模型都属于整体开发模型D.瀑布模型规定在开始下一个阶段的工作之前,必须完成前一阶段的所有细节 3.可行性分析中,系统流程图用于描述(A)。
A.当前运行系统C.目标系统B.当前逻辑模型D.新系统4.研究软硬件资源的有效性是进行(A)研究的一方面。
A.技术可行性B.经济可行性C.社会可行性D.操作可行性5、数据字典中,一般不包括下列选项中的(D)条目。
A.数据流B.数据储备C.加工D.源点与终点6、SA方法的分析步骤是首先调查了解当前系统的工作流程,然后(A)。
A.获得当前系统的物理模型,抽象出当前系统的逻辑模型,建立目标系统的逻辑模型B.获得当前系统的物理模型,抽象出目标系统的逻辑模型,建立目标系统的物理模型C.获得当前系统的逻辑模型,抽象出目标系统的物理模型,建立目标系统的逻辑模型D.获得当前系统的逻辑模型,抽象出目标系统的物理模型,建立目标系统的物理模型7、经由过程(B)可以完成数据流图的细化。
A.结构分析B.功能分解C.数据分析D.系统分解8、对软件进行分解,是为了(C)。
A.降低模块的复杂程度B.降低模块间接口的复杂程度C.降低模块的复杂程度,并降低模块间接口的复杂程度D.降低模块的复杂程度,并提高模块间接口的复杂程度9、为了提高模块的独立性,模块内部最好是(C)。
A.逻辑内聚B.时间内聚C.功能内聚D.通信内聚10、在软件结构设计完成后,对于下列说法,正确的是(C)。
A.非单一功能模块的扇入数大比较好,申明本模块重用率高B.单一功能的模块扇入高时应重新分解,以消除掌握耦合的情况C.一个模块的扇出太多,说明该模块过分复杂,缺少中间层D.一个模块的扇入太多,申明该模块过分复杂,缺少中央层11、在软件开发过程中,以下说法正确的是(B)。
软件工程试题及答案
一、填空1.结构化分析方法的分析策略是自顶向下逐步求精。
2.衡量模块独立性的两个定性标准是_耦合性与内聚性。
3.软件集成测试的方法主要有两种,它们是渐增式与非渐增式测试。
4.可行性研究的目的是用最小的代价在尽可能短的时间内确定该软件项目_是否值得开发_。
5.需求分析阶段,分析人员要确定对问题的综合需求,其中最主要的是功能需求_。
6.软件生存周期中时间最长、花费的精力和费用最多的一个阶段是维护阶段。
7.计算机辅助软件工程这一术语的英文缩写为_CASE 。
8.McCall 提出的软件质量模型包括11 个软件质量特性。
9.软件结构是以模块10.软件概要设计的主要任务就是为基础而组成的一种控制层次结构。
软件结构的设计。
11.结构化程序设计方法是使用三种基本控制结构 (条件\控制\循环) 构造程序。
12.在建立对象的功能模型时,使用的数据流图中包含有处理、数据流、动作对象和数据存储对象_二、选择1.UML是软件开发中的一个重要工具,它主要应用于哪种软件开发方法( C )A、基于瀑布模型的结构化方法B、基于需求动态定义的原型化方法C、基于对象的面向对象的方法D、基于数据的数据流开发方法2、面向对象的开发方法中,(B)将是面向对象技术领域内占主导地位的标准建模语言。
A、Booch 方法B、UML 语言C、OMT 方法D、Coad 方法3、功能模型中所有的( A)往往形成一个层次结构。
在这个层次结构中一个数据流图的过程可以由下一层的数据流图作进一步的说明。
A、数据流图B、概念模型图C、状态迁移图D、事件追踪图4、(A)应当在应用分析之前进行,因为我们在了解问题之前应当对问题敞开思想考虑,不应加以限制。
A、问题域分析 B 、高层分析C、实例的建立D、类的开发5、通过执行对象的操作改变对象的属性,但它必须通过(B)的传递。
A、接口 B 、消息C、信息D、操作6、所有的对象可以成为各种对象类,每个对象类都定义了一组(B)A、说明 B 、方法C、过程D、类型9、面向对象的主要特征除对象唯一性、封装、继承外,还有(A)A、多态性 B 、完整性C、可移植性D、兼容10、在面向对象的设计中,我们应遵循的设计准则除了模块化、抽象、低耦合、高内聚以外,还有(B)A、隐藏复杂性 B 、信息隐藏C、即存类的重用 D 、类的开发13、在考察系统的一些涉及时序和改变的状况时,要用动态模型来表示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一.二.三.判断题:1.如果决定将软件全部包给第三方公司开发。
(×)2.有了对系统的目标有了大致的了解,就可以开始开发项目,以后的在开发中继续了解。
(×)3.对于一个成功的软件项目,可执行程序是唯一交付的东西。
(×)4.直到程序运行,才评估软件系统的质量。
(×)5.如果未能按时完成任务,我们可以通过增加程序员来加快完成任务。
(×)6.虽然软件需求不断变更,但因软件比硬件有弹性,所以我们经常可以变更它。
(×)7.软件工程将导致我们产生大量的无用文档,降低工作效率。
(×)8.在面向对象建模中,主题划分提供了在更高一层上描述。
(主题划分是指UML中将一组关联比较强的类的集合。
则上百个类可划分为几个主题)(√)9.面向对象的开发,对象分解取代功能分解。
(√)10.软件中80%的错误存在20%的模块中。
(√)11.结构化分析方法在建立系统模型时,使用一般――特殊结构(实际上没有这种关系)来处理信息。
(×)12.开发软件就是编程。
(×)13.需求规格说明书说明了(√)14.结构化方法,建立系统模型时使用一般连接组织信息。
(×)15.敏捷过程模型选用小而高激励的团队使用而不适用于大团队。
(√)四.简答题1.软件工程是层次化的,其四个层次是?答:方法,工具,过程,质量保证软件工程是一种层次化的技术(如图2-1所示)。
任何工程方法(包括软件工程)必须以有组织的质量保证为基础。
全面的质量管理和类似的理念刺激了不断的过程改进,正是这种改进导致了更加成熟的软件工程方法的不断出现。
支持软件工程的根基就在于对质量的关注。
软件工程的基层是过程层。
软件工程过程是将技术层结合在一起的凝聚力,使得计算机软件能够被合理地和及时地开发出来。
过程定义了一组关键过程区域的框架(KPAs)[PAY93],这对于软件工程技术的有效应用是必须的。
关键过程区域构成了软件项目的管理控制的基础,并且确立了上下各区域之间的关系,其中规定了技术方法的采用、工程产品(模型、文档、数据、报告、表格等)的产生、里程碑的建立、质量的保证及变化的适当管理。
软件工程的方法层提供了建造软件在技术上需要“如何做”。
方法涵盖了一系列的任务:需求分析、设计、编程、测试和维护。
软件工程方法依赖于一组基本原则,这些原则控制了每一个技术区域,且包含建模活动和其他描述技术。
软件工程的工具层对过程和方法提供了自动的或半自动的支持。
当这些工具被集成起来使得一个工具产生的信息可被另外一个工具使用时,一个支持软件开发的系统就建立了,称为计算机辅助软件工程(CASE)。
CASE 集成了软件、硬件和一个软件工程数据库(一个仓库,其中包含了关于分析、设计、编程和测试的重要信息),从而形成了一个软件工程环境,它类似于硬件的CAD/CAE(计算机辅助设计/工程)。
软件工程必须以有组织的质量保证为基础软件质量保证就是向用户及社会提供满意的高质量的产品,确保软件产品从诞生到消亡为止的所有阶段的质量的活动,即确定、达到和维护需要的软件质量而进行的所有有计划、有系统的管理活动。
2.软件工程的框架是?答:沟通,策划,建模,构建,部署通用过程框架通用过程框架可适用于绝大多数的软件项目,该框架由沟通、策划、建模、构造和部署5个通用框架活动组成。
(1) 沟通。
这项框架活动包含系统分析员与客户之间大量的交流和协作,还包括需求获取以及其他相关活动。
(2) 策划。
策划活动协助软件开发团队定义全局目标,并为后续的软件工程工作制定计划。
策划活动包括一系列管理和技术实践,如描述需要执行的技术任务、可能的风险、资源需求、工作产品和工作进度计划。
(3) 建模。
建模的目的是为了更好地理解需要构建的实体。
在软件工程中,要创建两类模型:分析模型和设计模型。
分析模型通过描述软件的信息域、功能域及行为域来表达客户的需求;设计模型描述软件架构、用户界面及构件细节,从而帮助开发者高效地开发软件。
(4) 构造。
构造活动包括一系列构件组装、编码和测试任务,从而为向客户和最终用户交付可运行软件做好准备。
(5) 部署。
部署活动是将软件(全部或者完成的部分)交付给用户,用户对其进行评测并给出反馈意见。
部署活动包括三个动作:交付、支持和反馈。
3.一个模块的三个基本要素有哪些?答:功能,状态,逻辑(程序流程图描述逻辑的一个方法)功能:指模块实现什么功能(包括所调用的子模块的功能),做什么事情逻辑:描述模块内部怎么做状态:指该模块使用时的环境和条件4.不同的对象收到同一个消息,产生不同的结果这种现象叫多态。
多态性含义把相同的操作施加于不同类型的对象,获得不同的行为效果和结果。
在C++中,多态性是通过虚函数(Virtual)实现的。
动态联编(Dynamic binding),滞后联编。
5.模块的基本要素:功能,状态,逻辑6.面向对象建模需要识别五个层次:a.类与对象层b.属性层c.结构层(类与类之间的关系)d.方法层e.主题层(为多个类划分主题)主题层:它相当于高层的模块或子系统类与对象层:它们是对问题域概念的抽象,可以从用户需求或其它规格说明书中找到。
结构层:描述类之间的整体与部分、一般与特殊的关系。
属性层:它们是类所保存的信息,同时要给出各个类之间的实例连接。
服务层:它们是类可提供的操作,同时要根据需要的功能给出各个操作之间的消息连接。
软件测试的四个阶段:a.单元测试b.集成测试c.确认测试d.系统测试单元测试(模块测试):目的是保证每个模块作为一个单元能正确运行。
主要测试编码和详细设计阶段的错误。
子系统测试:把经过单元测试的模块放在一起形成子系统。
注重模块接口。
系统测试(集成测试):测试由子系统组成的整个系统,不仅测试模块间的协调和通信能力。
还要测试设计错误、需求说明中的功能错误。
验收测试:确认系统能够满足用户的需求,方法同系统测试,主要强调用户的参与(alpha测试),测试需求说明中的功能错误。
平行运行、beta测试测试过程按4个步骤进行,即单元测试、组装测试、确认测试和系统测试。
开始是单元测试,集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。
•组装测试把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。
•确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。
•系统测试把已经经过确认的软件纳入实际运行环境中,与其它系统成份组合在一起进行测试。
•单元测试又称模块测试,是针对软件设计的最小单位─程序模块,进行正确性检验的测试工作。
其目的在于发现各模块内部可能存在的各种差错。
•单元测试需要从程序的内部结构出发设计测试用例。
多个模块可以平行地独立进行单元测试。
•组装测试(集成测试、联合测试)•通常,在单元测试的基础上,需要将所有模块按照设计要求组装成为系统。
这时需要考虑的问题是:•在把各个模块连接起来的时侯,穿越模块接口的数据是否会丢失;•一个模块的功能是否会对另一个模块的功能产生不利的影响;•确认测试又称有效性测试。
任务是验证软件的功能和性能及其它特性是否与用户的要求一致。
•对软件的功能和性能要求在软件需求规格说明书中已经明确规定。
它包含的信息就是软件确认测试的基础。
•确认测试一般采用黑盒测试,其测试范围与系统测试略有不同,如弱化一些技术性的测试,强化用户所关心的功能和性能测试等。
确认测试一般包括•有效性测试(强调由专家进行)•软件配置复查•α测试和β测试•验收测试(强调由用户进行)–功能测试–性能测试(响应时间、处理速度、容量开销等)–强度测试(对强负荷的承受能力)–对文档配置的复审•系统测试,是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。
•系统测试的目的在于通过与系统的需求定义作比较, 发现软件与系统的定义不符合或与之矛盾的地方。
将软件周期化为8个阶段(瀑布模型):a.可行性研究b.需求分析c.概要测试d.详细测试e.编码f.测试g.维护h.问题定义正确的顺序为:h a b c d e f gP 12-14页书上。
7.对于一个流图(程序流程图退化为流图),它的基本路径的独立之路的上限是V(G)。
(V(G):强连通图中线性无关的环的个数)P157页书上8.自上往下集成测试:不需要编写驱动程序;自下往上集成测试:不需要编写桩程序P147-148书上。
9.单元测试针对模块哪些方面?接口信息,主要功能,边界,错误处理,主要路径。
P143页10.题目:比较经典的软件工程开发过程模型(是对这三个模型化比较分析)——瀑布模型、原型模型、螺旋模型。
瀑布模型从可行性研究开始,逐步进行阶段性变换,直至通过确认测试并得到用户确认的软件产品为止。
瀑布模型上一阶段的变换结果是下一阶段变换的输入,相邻两个阶段具有因果关系,紧密联系。
一个阶段的失误将蔓延到以后的各个阶段。
为了保障软件开发的正确性,每一阶段任务完成后,都必须对它的阶段性产品进行评审,确认之后再转入下一阶段的工作。
评审过程发现错误和疏漏后,应该及时反馈到前面的有关阶段修正错误或弥补疏漏,然后再重复前面的工作,直至某一阶段通过评审后再进入下一阶段。
瀑布模型的优点:有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。
瀑布模型的缺点:(1)开发过程一般不能逆转,否则代价太大;(2)实际的项目开发很难严格按该模型进行;(3)客户往往很难清楚地给出所有的需求,而该模型却要求如此。
(4)软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心。
瀑布模型的使用范围:(1)用户的需求非常清楚全面,且在开发过程中没有或很少变化;(2)开发人员对软件的应用领域很熟悉;(3)用户的使用环境非常稳定;(4)开发工作对用户参与的要求很低。
原型模型又称演化模型,主要是针对事先不能完整定义需求的软件项目开发而言的。
许多软件开发项目由于人们对软件需求的认识模糊,很难一次开发成功,返工再开发难以避免。
因此,人们对需开发的软件给出基本需求,作第一次试验开发,其目标仅在于探索可行性和弄清需求,取得有效的反馈信息,以支持软件的最终设计和实现。
通常我们把第一次实验性开发出的软件称为原型(prototype)。
这种开发模型可以减少由于需求不明给开发工作带来的风险,有较好的效果。
相对瀑布模型来说,原型模型更符合人类认识真理的过程和思维,是目前较流行的一种实用的软件开发方法。
原型模型的优点:(1)开发人员和用户在“原型”上达成一致。