软件工程导论-期末题库(完整版)
- 格式:docx
- 大小:193.57 KB
- 文档页数:21
1.软件生存周期一般可分为__问题定义__、可行性研究、_需求分析_____、设计编码、__测试________、运行与维护阶段。
2.按软件的功能进行划分,软件可以划分为系统软件、支撑软件和应用软件。
3.可行性研究主要集中在以下四个方面经济可行性、技术可行性、法律可行性和抉择。
4.用户界面的可使用性是用户界面设计最重要的也是最基本的目标。
5.常见的软件概要设计方法有3大类:以数据流图为基础构造模块结构的___结构化设计方法_________,以数据结构为基础构造模块的__jackson方法__________,以对象、类、继承和通信为基础的__面向对象设计方法__________。
6.__数据流图________和__数据字典___共同构成系统的逻辑模型。
7.软件测试的方法有__分析方法________和___非分析方法_______(即黑盒法)。
8.单元测试一般以___白盒_____________测试为主,___黑盒______测试为辅。
9.成本估计方法主要有__自底向上估计________、_自顶向下估计_________和算法模型估计三种类型.1.下列哪个阶段不属于软件生存周期的三大阶段( C )。
A、计划阶段B、开发阶段C、编码阶段D、维护阶段2.需求分析是(A ).A、软件开发工作的基础B、软件生存周期的开始C、由系统分析员单独完成的D、由用户自己单独完成的3.原型化方法是软件开发中一类常用的方法,它与结构化方法相比较,更需要(B )。
A、明确的需求定义B、完整的生命周期C、较长的开发时间D、熟练的开发人员4.软件维护时,对测试阶段未发现的错误进行测试、诊断、定位、纠错,直至修改的回归测试过程称为( A ).A、改正性维护B、适应性维护C、完善性维护D、预防性维护5.一般说来,投入运行的软件系统中有错误(A ).A、不是不可以理解的B、是不能容忍的C、是要求退货的理由D、是必然的1.在进行总体设计时应加强模块间的联系。
软件工程导论期末考试试题1.选择题1.瀑布模型将软件生命周期划分为八个阶段,包括问题定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。
这八个阶段可以归纳为三个大的阶段,即计划阶段、开发阶段和运行阶段。
选项中正确的是C,即运行阶段。
2.在结构化的瀑布模型中,如果哪个环节出错,对软件的影响最大,选项中正确的是C,即测试和运行阶段。
3.在结构化的瀑布模型中,系统测试阶段的目标是由哪个阶段定义的标准决定的,选项中正确的是A,即需求分析阶段。
4.软件工程的出现主要是由于软件危机的出现,选项中正确的是C。
5.软件工程方法学的目的是使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是软件开发工具和软件开发的环境,选项中正确的是C。
6.软件开发常使用的两种基本方法是结构化和原型化方法,在实际的应用中,它们之间的关系表现为相互补充,选项中正确的是B。
7.UML主要应用于基于对象的面向对象的方法,选项中正确的是C。
8.在下面的软件开发方法中,要求软件设计和开发人员的开发要求最高的是原型化方法,选项中正确的是B。
9.结构化分析方法强调分析对象的数据流,选项中正确的是B。
10.软件开发的结构化生命周期方法将软件生命周期划分成计划阶段、开发阶段和运行阶段,选项中正确的是A。
11.软件开发中常采用的结构化生命周期方法一般称其为瀑布模型,选项中正确的是A。
12.软件开发的瀑布模型中,可能占用人员最多的阶段是编码阶段,选项中正确的是C。
2.改写1.瀑布模型将软件生命周期划分为八个阶段,包括问题定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。
这八个阶段可以归纳为三个大的阶段,即计划阶段、开发阶段和运行阶段。
其中,运行阶段是指软件开发完成后,软件被交付给用户并开始使用的阶段。
2.在结构化的瀑布模型中,如果哪个环节出错,对软件的影响最大。
在这八个阶段中,测试和运行阶段是最后一个阶段,也是软件交付给用户前的最后一个阶段,如果在这个阶段出现问题,将会对软件的使用造成很大的影响。
软工导论期末试题及答案一、选择题(每题2分,共40分)1. 软件工程的定义是()A. 解决计算机软件危机的一门技术科学B. 设计软件系统的过程C. 软件产品开发的过程D. 通过分析、设计、实现以及对软件开发过程和工具的管理来提高软件的质量和生产效率2. 软件工程的基本活动包括()A. 需求分析、设计、编码、测试、维护B. 需求分析、设计、实现、测试C. 需求分析、设计、编码、测试D. 需求分析、设计、实现、维护3. 软件过程模型是()A. 实现软件开发的步骤和活动的抽象描述B. 一种特定的软件开发方法或技术C. 一种具体的软件开发流程图D. 一种软件管理工具4. 下面不属于敏捷开发方法的是()A. ScrumB. XP (Extreme Programming)C. RUP (Rational Unified Process)D. Lean5. 软件测试的目的是()A. 证明软件是正确的B. 证明软件是错误的C. 提高软件质量D. 排除软件缺陷6. 静态测试是指()A. 在运行时进行的测试B. 对程序进行动态分析C. 对程序进行代码检查和审查D. 对软件进行压力测试7. 需求变更的原因包括()A. 用户需求不明确B. 代码出现错误C. 项目进度延迟D. 客户意见变化8. 软件质量模型ISO/IEC 9126共包括___个特性()A. 4B. 5C. 6D. 79. 下面哪个不是软件工程中的“四悖”之一?()A. 时间悖论B. 范围悖论C. 成本悖论D. 计划悖论10. 软件项目管理中,衡量项目进展的主要指标是()A. 代码行数B. 开发人员数量C. 已完成的任务数量D. 完成的工作量二、简答题(每题10分,共30分)1. 请简要说明软件工程的三个基本活动是什么,并说明各个活动的主要任务。
答:软件工程的三个基本活动包括需求分析、设计和编码,以及测试和维护。
- 需求分析活动的主要任务是通过与用户和相关方沟通,理解和明确软件系统的需求,确定软件的功能、性能要求和约束条件。
软件工程导论《软件工程》期末考试题及答案一、选择题(每题2分,共20分)1. 下列哪项不是软件工程的基本目标?A. 提高软件的生产率B. 提高软件的可维护性C. 提高软件的性能D. 降低软件的开发成本答案:C2. 下列哪种方法不属于软件需求分析的方法?A. 数据流图(DFD)B. 实体-关系图(ER图)C. 状态转换图D. Petri网答案:D3. 软件设计中,模块的内聚性越高,表明模块的:A. 功能越单一B. 独立性越强C. 复用性越低D. 可维护性越低答案:A4. 在软件测试阶段,下列哪种测试方法不属于黑盒测试?A. 等价类划分B. 边界值分析C. 代码覆盖率分析D. 逻辑覆盖分析答案:D5. 软件项目管理中,项目经理的主要职责不包括以下哪项?A. 制定项目计划B. 管理项目进度C. 组织项目团队D. 编写代码答案:D二、填空题(每题2分,共20分)6. 软件生命周期可以分为______、需求分析、设计、编码、测试、维护等阶段。
答案:需求调研7. 软件工程的三要素是______、过程、方法。
答案:工具8. 在软件设计中,模块的独立性包括______和耦合性两个方面。
答案:内聚性9. 软件测试的目的不包括______。
答案:发现并修复所有错误10. 软件项目管理的主要目标是实现项目的______、质量和成本控制。
答案:进度三、简答题(每题10分,共30分)11. 简述软件工程的基本原则。
答案:软件工程的基本原则包括:(1)抽象:将复杂问题分解为更简单的子问题;(2)分解:将问题分解为多个部分,分别解决;(3)模块化:将软件划分为独立的模块,提高可维护性和复用性;(4)信息隐藏:隐藏模块内部的信息,只暴露必要的接口;(5)一致性:保持软件各部分的一致性,提高可读性;(6)可维护性:使软件易于修改和维护。
12. 简述软件需求分析的目的和任务。
答案:软件需求分析的目的在于明确用户对软件系统的功能、性能等方面的需求。
2023软件工程导论期末考试题库及参考答案一、选择题(每题2分,共20分)1. 以下哪个不是软件工程的三个基本目标?A. 可维护性B. 可用性C. 可靠性D. 高效性参考答案:D2. 软件生命周期中,以下哪个阶段是软件开发过程的核心阶段?A. 需求分析B. 设计C. 编码D. 测试参考答案:C3. 以下哪种编程范式主要用于降低软件复杂性?A. 面向对象编程B. 过程式编程C. 函数式编程D. 逻辑编程参考答案:A4. 在软件工程中,以下哪个方法用于估算软件项目的成本和进度?A. COCOMOB. WBSC. SDLCD. CASE参考答案:A5. 以下哪个是软件工程中的一个重要原则?A. 分而治之B. 一次性编写C. 重用D. 模块化参考答案:D6. 以下哪个不是软件工程的基本活动?A. 软件规格B. 软件开发C. 软件验证D. 软件测试参考答案:C7. 以下哪个是软件工程中用于提高软件质量的技术?A. 设计模式B. 重构C. 代码审查D. 单元测试参考答案:C8. 以下哪个不是软件工程的五大基本过程?A. 软件规格B. 软件开发C. 软件维护D. 软件项目管理参考答案:D9. 以下哪个是软件工程中的一个重要概念,用于描述软件系统中的各个组件之间的关系?A. 耦合B. 内聚C. 模块化D. 重用参考答案:A10. 以下哪个是软件工程中的一个重要原则,用于指导软件开发过程?A. 迭代B. 增量C.螺旋D. 模型驱动参考答案:A二、填空题(每题2分,共20分)11. 软件工程的三要素是:方法、工具和______。
参考答案:过程12. 软件生命周期包括:需求分析、设计、编码、______和软件维护。
参考答案:测试13. 软件工程中的面向对象方法包括:封装、继承和______。
参考答案:多态14. 软件工程中的 CASE 工具主要用于支持______。
参考答案:软件设计和开发15. 软件工程中的敏捷开发方法强调______、可维护性和可扩展性。
1.填空题1.一般来说,可以从__一致性__、_完整性___、_现实性____和_有效性___四个方面验证软件需求的正确性。
2.IPO图是_输入、处理和输出图_的简称,它是美国IBM公司发展完善起来的一种图形工具。
3.系统流程图是描述__物理模型__的传统工具,用图形符号表达了系统中各种元素之间的_____信息流动_____情况。
4.数据流图中的箭头表示数据流,椭圆或圆形表示数据处理,矩形表示数据的源点/终点。
5.软件测试的步骤按顺序分别是:___单元测试_____、子系统测试、系统测试(子系统和系统测试通常称为集成测试)、__确认测试__和_____系统测试(集成测试)______工具_____过程____过程_支持软件开发的各个环节的控制和管理。
15.类构件的重用方式有_实力重用__、__继承重用______和_多态重用__三种。
16.能力成熟度模型分为5个等级:初始级、____可重复____级、__已定义___级、____已管理__级和__优化____级。
2.判断题1.向滞后的项目中增加人手会使得项目更加滞后。
(T)2.过程描述语言可以用于描述软件的系统结构。
(F)3.按照瀑布模型开发软件的一条指导思想是清楚地区分逻辑设计与物理设计,以便尽早开始程序的物理实现。
(F)5.只有质量差的软件产品才需要维护。
(F)6.层次图用来描述软件的层次结构。
层次图中的一个矩形框代表一个模块,方框间的连线表示模块的组成关系。
在层次图中除最顶层的方框之外,给每个方框都加编号,即成为带有编号的层次图。
(F)7.建立动态模型的第一步,是编写典型交互行为的脚本。
(T)8.软件错误可能出现在开发过程的早期,越早修改越好。
(T)9.软件模块的耦合是越低越好。
(T)10.一个好的测试用例在于能发现至今未发现的错误。
(T)11.面向对象设计的结果只能采用面向对象语言来实现(F)12.一个成功的项目唯一提交的就是运行程序。
(F)13.用例之间的关系有3种。
《软件工程导论》期末考试-试题与答案一、填空题1.软件工程中的结构化分析 SA 是一种面向________的分析方法。
2.软件模块独立性的两个定性度量标准是_________________。
3.软件开发是一个自顶向下逐步细化和求精的过程,而软件测试是一个________的过程。
4. ________和数据字典共同构成了系统的逻辑模型5. ___________是一种黑盒测试技术,这种技术把程序的输入域划分为若干个数据类,据此导出测试用例。
二、单选题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. Jackson 方法是在软件开发过程中常用的方法,使用 Jackson 方法时可以实现______。
A.从数据结构导出程序结构B.从数据流图导出初始结构图C.从模块结构导出数据结构D.从模块结构导出程序结构7.软件测试时为了________而执行程序的过程。
A.纠正错误B.发现错误C.避免错误D.证明错误8.在软件系统中,一个模块应具有什么样的功能,这是由_____决定的。
A.总体设计B.需求分析C.详细设计D.程序设计9.面向对象分析是对系统进行_________的一种方法。
《软件工程》期末总复习题(新版)(含作业及答案、复习重点、考核说明)一、选择题:(软件工程作业1 第1~4章)1.开发软件所需高成本和产品的低质量之间有着锋利的矛盾,这种现象称做(C)。
A.软件工程B.软件周期C.软件危机D.软件产生2.瀑布模型本质上是一种(A)模型。
A.线性顺序B.顺序迭代C.线性迭代D.初期产品3.瀑布模型存在的问题是(B)。
A.用户容易参与开发B.缺少灵活性C.用户与开发者易沟通 D.合用可变需求4.螺旋模型是一种将瀑布模型和(A)结合起来的软件开发模型。
A.增量模型B.专家系统C.喷泉模型D.变换模型5.原型化方法是用户和设计者之间执行的一种交互构成,合用于(A)系统。
A.需求不拟定性高的B.需求拟定的 C.管理信息D.实时6.下列有关软件工程的标准,属于国际标准的是(D )A.GBB.DINC.ISOD.IEEE7.结构化方法是一种基于(D)的方法。
A.数据结构B.程序结构C.算法D.数据流8.软件可行性研究实质上是要进行一次( A)需求分析、设计过程。
A、简化、压缩的B、具体的C、彻底的D、进一步的9.可行性研究的目的是(D)A、分析开发系统的必要性B、拟定系统建设的方案C、分析系统风险D、拟定是否值得开发系统10.设年利率为i,现存入p元,不计复利,n年后可得钱数为(C)。
A、P×(1+i*n)B、P× (i+1)*nC、p×(1+i)nD、p×(i+n)11.可行性研究是在(A)之前A、系统开发B、测试C、试运营D、集成测试12.可行性研究需要的时间长短取决于系统的规模,一般来说,可行性研究的成本只是预期总成本的(C)。
A、1%B、20%C、8%D、50%13.我国正式颁布实行的(B)对计算机病毒的定义具有法律性、权威性。
A.《计算机软件保护条例》 B.《中华人民共和国计算机信息系统安全保护条例》C.《中华人民共和国著作权法》 D.《计算机病毒防治管理办法》14.效率是一个性能规定,因此应当在以下哪个阶段规定?BA、可行性分析B、需求分析C、概要设计D、具体设计15.需求规格说明书的作用不涉及(D)A、软件验收的依据B、用户与开发人员对软件要做什么的共同理解C、软件可行性研究的依据D、软件设计的依据16.数据字典是用来定义(D)中的各个成份的具体含义的。
1.软件生存周期一般可分为__问题定义__、可行性研究、_需求分析_____、设计编码、__测试________、运行与维护阶段。
2.按软件的功能进行划分,软件可以划分为系统软件、支撑软件和应用软件。
3.可行性研究主要集中在以下四个方面经济可行性、技术可行性、法律可行性和抉择。
4.用户界面的可使用性是用户界面设计最重要的也是最基本的目标。
5.常见的软件概要设计方法有3大类:以数据流图为基础构造模块结构的___结构化设计方法_________,以数据结构为基础构造模块的__jackson方法__________,以对象、类、继承和通信为基础的__面向对象设计方法__________。
6.__数据流图________和__数据字典___共同构成系统的逻辑模型。
7.软件测试的方法有__分析方法________和___非分析方法_______(即黑盒法)。
8.单元测试一般以___白盒_____________测试为主,___黑盒______测试为辅。
9.成本估计方法主要有__自底向上估计________、_自顶向下估计_________和算法模型估计三种类型。
1.下列哪个阶段不属于软件生存周期的三大阶段( C )。
A、计划阶段B、开发阶段C、编码阶段D、维护阶段2.需求分析是(A )。
A、软件开发工作的基础B、软件生存周期的开始C、由系统分析员单独完成的D、由用户自己单独完成的3.原型化方法是软件开发中一类常用的方法,它与结构化方法相比较,更需要( B )。
A、明确的需求定义B、完整的生命周期C、较长的开发时间D、熟练的开发人员4.软件维护时,对测试阶段未发现的错误进行测试、诊断、定位、纠错,直至修改的回归测试过程称为( A )。
A、改正性维护 B、适应性维护C、完善性维护D、预防性维护5.一般说来,投入运行的软件系统中有错误(A )。
A、不是不可以理解的B、是不能容忍的C、是要求退货的理由D、是必然的1.在进行总体设计时应加强模块间的联系。
软件工程导论期末复习题及答案正确答案:C.研究软件系统的开发过程和方法软件工程的主要目标是提高软件的质量,包括可靠性、可用性、可维护性和可重用性等。
同时,软件工程也致力于降低软件开发和维护的成本,提高软件的生产率。
因此,以上选项都是正确的。
A.人员B.方法C.工具D.程序正确答案:D.程序软件工程的三个基本要素是人员、方法和工具。
其中,人员是指参与软件开发和维护的人员,包括项目经理、系统分析师、程序员、测试人员等;方法是开发软件所采用的方法,包括面向对象方法、面向过程方法等;工具是指支持软件开发和维护的工具,包括编译器、调试器、测试工具等。
程序是软件开发的结果之一,不属于软件工程的三个基本要素。
D.软件从测试到发布的整个过程正确答案:A.软件从开发到维护的整个过程软件生命周期是指软件从开发到维护的整个过程,包括需求分析、设计、编码、测试、发布、维护和退役等阶段。
因此,选项A是正确的答案。
选项B、C、D都只描述了软件生命周期的部分阶段,不完整。
A.需求分析B.编码C.测试D.维护正确答案:D.维护软件开发过程中的活动包括需求分析、设计、编码、测试等阶段,而维护是软件使用过程中的一个阶段,不属于软件开发过程中的活动。
因此,选项D是正确的答案。
在软件工程中,以下哪个选项最接近于“用户故事”的定义?答案:A.一种用于描述用户需求的文档。
用户故事是软件开发中的一种重要工具,它用于收集、整理和描述用户需求,以便更好地理解和满足用户的需求。
以下哪个选项是面向对象编程(OOP)中的基本概念?答案:B.类。
在面向对象编程中,类是一种抽象数据类型,它定义了一个对象的结构,包括属性(状态)和方法(行为)。
在软件开发中,以下哪个阶段最可能涉及到代码重构?答案:C.编码阶段。
代码重构是在编码阶段进行的一项活动,它通常涉及到修改和优化代码的结构和实现方式,以提高代码的可读性、可维护性和效率。
答案:A. Git。
版本控制是软件开发中的一项重要工具,用于跟踪和管理代码的变更。
软件工程导论期末试题第一篇:软件工程导论期末试题软件工程导论期末考试试题一.选择(20分)1、瀑布模型把软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。
八个阶段又可归纳为三个大的阶段:计划阶段、开发阶段和(C)。
A、详细计划 B、可行性分析C、运行阶段D、测试与排错2、从结构化的瀑布模型看,在它的生命周期中的八个阶段中,下面的几个选项中哪个环节出错,对软件的影响最大(C)。
A、详细设计阶段 B、概要设计阶段C、需求分析阶段D、测试和运行阶段3、在结构化的瀑布模型中,哪一个阶段定义的标准将成为软件测试中的系统测试阶段的目标(A)。
A、需求分析阶段B、详细设计阶段C、概要设计阶段D、可行性研究阶段4、软件工程的出现主要是由于(C)。
A.程序设计方法学的影响B.其它工程科学的影响C.软件危机的出现D.计算机的发展5、软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是(C)A、硬件环境B、软件开发的环境C、软件开发工具和软件开发的环境D、开发人员的素质6、软件开发常使用的两种基本方法是结构化和原型化方法,在实际的应用中,它们之间的关系表现为(B)A、相互排斥 B、相互补充C、独立使用D、交替使用7、UML是软件开发中的一个重要工具,它主要应用于哪种软件开发方法(C)A、基于瀑布模型的结构化方法B、基于需求动态定义的原型化方法C、基于对象的面向对象的方法D、基于数据的数据流开发方法8、在下面的软件开发方法中,哪一个对软件设计和开发人员的开发要求最高(B)A、结构化方法 B、原型化方法 C、面向对象的方法 D、控制流方法9、结构化分析方法是一种预先严格定义需求的方法,它在实施时强调的是分析对象的(B)A、控制流 B、数据流 C、程序流 D、指令流10、软件开发的结构化生命周期方法将软件生命周期划分成(A)A、计划阶段、开发阶段、运行阶段 B、计划阶段、编程阶段、测试阶段 C、总体设计、详细设计、编程调试 D、需求分析、功能定义、系统设计二.填空(20分)21.系统流程图是描述物理模型的传统工具,用图形符号表示系统中各个元素表达了系统中各种元素之间的(信息流动)情况。
1.软件生存周期一般可分为__问题定义__、可行性研究、_需求分析_____、设计编码、__测试________、运行与维护阶段。
2.按软件的功能进行划分,软件可以划分为系统软件、支撑软件和应用软件。
3.可行性研究主要集中在以下四个方面经济可行性、技术可行性、法律可行性和抉择。
4.用户界面的可使用性是用户界面设计最重要的也是最基本的目标。
5.常见的软件概要设计方法有3大类:以数据流图为基础构造模块结构的___结构化设计方法_________,以数据结构为基础构造模块的__jackson方法__________,以对象、类、继承和通信为基础的__面向对象设计方法__________。
6.__数据流图________和__数据字典___共同构成系统的逻辑模型。
7.软件测试的方法有__分析方法________和___非分析方法_______(即黑盒法)。
8.单元测试一般以___白盒_____________测试为主,___黑盒______测试为辅。
9.成本估计方法主要有__自底向上估计________、_自顶向下估计_________和算法模型估计三种类型。
1.下列哪个阶段不属于软件生存周期的三大阶段( C )。
A、计划阶段B、开发阶段C、编码阶段D、维护阶段2.需求分析是(A )。
A、软件开发工作的基础B、软件生存周期的开始C、由系统分析员单独完成的D、由用户自己单独完成的3.原型化方法是软件开发中一类常用的方法,它与结构化方法相比较,更需要(B )。
A、明确的需求定义B、完整的生命周期C、较长的开发时间D、熟练的开发人员4.软件维护时,对测试阶段未发现的错误进行测试、诊断、定位、纠错,直至修改的回归测试过程称为( A )。
A、改正性维护B、适应性维护C、完善性维护D、预防性维护)。
A 一般说来,投入运行的软件系统中有错误(5.A、不是不可以理解的B、是不能容忍的C、是要求退货的理由D、是必然的1.在进行总体设计时应加强模块间的联系。
《软件工程导论》期末考试试题和答案2•相关推荐《软件工程导论》期末考试试题和答案2一、填空题(每空1分,共20分)1. 软件生存周期一般可分为__问题定义__、可行性研究、_需求分析_____、设计编码、__测试________、运行与维护阶段。
2. 按软件的功能进行划分,软件可以划分为和应用软件。
3. 可行性研究主要集中在以下四个方面性、法律可行性和抉择。
4. 用户界面的5. 常见的软件概要设计方法有3大类:以数据流图为基础构造模块结构的___结构化设计方法_________,以数据结构为基础构造模块的__jackson方法__________,以对象、类、继承和通信为基础的__面向对象设计方法__________。
6. __数据流图________和__数据字典___共同构成系统的逻辑模型。
7. 软件测试的方法有__分析方法________和___非分析方法_______(即黑盒法)。
8. 单元测试一般以___白盒_____________测试为主,___黑盒______测试为辅。
9. 成本估计方法主要有__自底向上估计________、_自顶向下估计_________和算法模型估计三种类型。
二、单项选择题(每小题2分,共10分)1. 下列哪个阶段不属于软件生存周期的三大阶段( C )。
A、计划阶段B、开发阶段C、编码阶段D、维护阶段2. 需求分析是( A )。
A、软件开发工作的基础B、软件生存周期的开始C、由系统分析员单独完成的D、由用户自己单独完成的3. 原型化方法是软件开发中一类常用的方法,它与结构化方法相比较,更需要( B )。
A、明确的需求定义B、完整的生命周期C、较长的开发时间D、熟练的.开发人员4. 软件维护时,对测试阶段未发现的错误进行测试、诊断、定位、纠错,直至修改的回归测试过程称为( A )。
A、改正性维护B、适应性维护C、完善性维护D、预防性维护 5. 一般说来,投入运行的软件系统中有错误( A )。
1.填空题1.一般来说,可以从__一致性__、_完整性___、_现实性____和_有效性___四个方面验证软件需求的正确性。
2.IPO图是_输入、处理和输出图_的简称,它是美国IBM公司发展完善起来的一种图形工具。
3.系统流程图是描述__物理模型__的传统工具,用图形符号表达了系统中各种元素之间的_____信息流动_____情况。
4.数据流图中的箭头表示数据流,椭圆或圆形表示数据处理,矩形表示数据的源点/终点。
5.软件测试的步骤按顺序分别是:___单元测试_____、子系统测试、系统测试(子系统和系统测试通常称为集成测试)、__确认测试__和_____系统测试(集成测试)____6.软件生命周期一般可分为_问题定义_、可行性研究、_需求分析_、设计编码、_测试_、运行与维护阶段。
7.可行性研究主要集中在以下四个方面_经济可行性_、__技术可行性____、__法律可行性___和抉择。
8.在结构化设计中,HIPO图应用在总体设计阶段,由IPO图和_层次图_两部分组成。
9.复杂问题的对象模型通常由下述五个层次组成:主题层、___类与对象_层、__结构___层、_属性_层和__服务_层。
10.实施精化设计的目标是基于模块的“高内聚低耦合”的原则,提高模块的_独立性。
11.软件生命周期一般可分为___问题定义_、可行性研究、__需求分析__、概要设计__、详细设计、编码、__软件测试_、运行与维护阶段。
12.面向对象的数据存储管理模式分为__文件__、_关系数据库__和__面向对象数据库___三种。
13.单元测试一般以_白盒_测试为主,__黑盒__测试为辅。
14.软件工程三要素包括_方法_、__工具___和__过程___,其中,_过程_支持软件开发的各个环节的控制和管理。
15.类构件的重用方式有_实力重用__、__继承重用______和_ 多态重用__三种。
16.能力成熟度模型分为5个等级:初始级、____可重复____级、__已定义___级、____已管理__级和__优化____级。
2.判断题1. 向滞后的项目中增加人手会使得项目更加滞后。
(T)2. 过程描述语言可以用于描述软件的系统结构。
(F)3. 按照瀑布模型开发软件的一条指导思想是清楚地区分逻辑设计与物理设计,以便尽早开始程序的物理实现。
(F )5. 只有质量差的软件产品才需要维护。
(F)6.层次图用来描述软件的层次结构。
层次图中的一个矩形框代表一个模块,方框间的连线表示模块的组成关系。
在层次图中除最顶层的方框之外,给每个方框都加编号,即成为带有编号的层次图。
(F)7.建立动态模型的第一步,是编写典型交互行为的脚本。
(T)8.软件错误可能出现在开发过程的早期,越早修改越好。
(T)9.软件模块的耦合是越低越好。
(T)10.一个好的测试用例在于能发现至今未发现的错误。
(T)11.面向对象设计的结果只能采用面向对象语言来实现(F)12. 一个成功的项目唯一提交的就是运行程序。
(F)13.用例之间的关系有3种。
(T)14.面向对象设计准则也要遵循弱耦合的原则,但是继承耦合则应该提高,紧密地继承耦合与高度的一般-特殊内聚是一致的。
(T)15.软件工作的考虑范围主要是程序设计和实现。
(F )16.环形复杂度定量度量程序的逻辑复杂度,可以用这个公式来计算环形复杂度:流图G的环形复杂度V(G) = N–E + 2。
(改成E-N+2)(F)17.等价类划分方法将所有可能的输入数据划分成若干部分,然后从每一部分中选取少数有代表性的数据作为测试用例。
(T)18.在进行总体(改成概要)设计时应加强模块间的联系。
(F)19.系统结构图是精确表达程序结构的图形表示法。
因此,有时也可以将系统结构图当作系统流程图使用。
(T)20.建立动态模型的第一步,是编写典型交互行为的脚本。
(T )21.在程序调试时,找出错误的位置和性质比改正该错误更难。
( F )22.如果通过软件测试没有发现错误,则说明软件是正确的。
( F )23.快速原型模型可以有效地适应用户需求的动态变化。
(T)24.模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。
(T )25.集成测试主要由用户来完成。
( F )26.面向对象= 对象+ 类+ 继承+ 消息传递。
(T)27.面向对象的分析是面向计算机系统建立软件系统的对象模型。
(F)3.选择题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.Booch方法B.Coad方法C.UML语言D.OMT方法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.判定覆盖1.下面哪些测试方法属于白盒测试()。
//BCD是黑盒测试A、基本路径测试B、等价类划分C、边界值分析D、错误推测E、逻辑覆盖测试2.下列哪些选项是属于内容耦合()。
A、一个模块直接访问另一个模块的内部数据B、一个模块有多个入口C、一个模块不通过正常入口转到另一模块内部D、一个模块只有一个入口3.下列属于度量效益方法的是()。
A、货币的时间价值B、投资回收期C、收入D、投资回报率4.数据流图是用于表示软件模型的一种图示方法,在下列可采用的绘制方法中,哪些是常采用的()。
A、自顶向下B、自底向上C、分层绘制D、逐步求精5.软件设计中一般将用到图形工具,下列哪种些可用作设计的图形工具()。
A、结构图B、实体联系图C、IPO图D、层次图4.简答题:1.简述增量模型的优点和缺点。
答:优点:采用增量模型的优点是人员分配灵活,刚开始不用投入大量人力资源。
如果核心产品很受欢迎,则可增加人力实现下一个增量。
当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径。
这样即可先发布部分功能给客户,对客户起到镇静剂的作用。
此外,增量能够有计划地管理技术风险。
缺点:1)由于各个构件是逐渐并入已有的软件体系结构中的,所以加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构。
2)在开发过程中,需求的变化是不可避免的。
增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。
3)如果增量包之间存在相交的情况且未很好处理,则必须做全盘系统分析,这种模型将功能细化后分别开发的方法较适应于需求经常改变的软件开发过程。
2.简述软件设计的过程。
答:软件设计是把许多事物和问题抽象起来,并且抽象它们不同层次和角度,是将需求转变为软件陈述的过程,是迭代的过程。
软件设计,要根据需求规格说明书,对整个设计过程进行计划,然后实施具体的设计过程,即“先整体,再局部”,也是不断迭代和精化的过程。
然后需要对生成的设计规格说明书进行评审,启动质量评价的标准,若未通过评审,需重新修改设计,直至评审通过,确定最后定型的过程本身。
进入后续阶段,完成软件设计过程。
3.原型化方法主要用于解决什么问题?试说明这种方法的主要优缺点。
答:建立原型的主要原因是为了解决在产品开发的早期阶段需求不确定的问题,用户、经理和其他非技术项目风险承担者发现在确定和开发产品时,原型可以使他们的想象更具体化。
原型在软件开发过程中可以起到以下主要作用:(1)明确并完善需求原型作为一种需求工具,它初步实现所理解的系统的一部分。
用户对原型的评价可以指出需求中的许多问题,在你开发真正产品之前,可以最低的费用来解决这些问题。
(2)探索设计选择方案原型作为一种设计工具,用它可以探索不同的用户界面技术,使系统达到最佳的可用性,并且可以评价可能的技术方案。
(3)发展为最终的产品原型作为一种构造工具,是产品最初子集的完整功能实现,通过一系列小规模的开发循环,你可以完成整个产品的开发。
4.请看下列伪代码程序,要求完成下列问题:(1)画出代码的流程图(4分)(2)根据该程序流程图画出该程序的流图;(4分)(3)计算该流图的环形复杂度;(4分)STARTINPUT (A,B,C)IF A>5THEN X=10ELSE X=1END IFIF B>10THEN Y=20ELSE Y=2END IFIF C>15THEN Z=30ELSE Z=3END IFPRINT (X,Y,Z)STOP答:(1)法一:环形复杂度=E-N+2=18-16+2=4法二:环形复杂度=P+1=3+1=45.简述结构化程序设计方法的基本特点。