软件工程概论的练习题及答案
- 格式:doc
- 大小:809.50 KB
- 文档页数:72
西交《软件工程概论》在线作业一、单选题(共 19 道试题,共 38 分。
)1. 对象模型的描述工具是()A. 状态图B. 数据流图C. 对象图D. 结构图正确答案:C2. 软件测试的目的是()A. 证明软件的正确性B. 找出软件系统中存在的所有错误C. 证明软件系统中存在错误D. 尽可能多的发现软件系统中的错误正确答案:B3. 传统的测试策略是从()开始A. 单元测试B. 集成测试C. 系统测试D. 人员测试正确答案:A4. 软件维护工作的最主要部分是()A. 校正性维护B. 适应性维护C. 完善性维护D. 预防性维护正确答案:C5. 以下不属于软件维护的困难表现的是()A. 读懂别人的程序是困难的B. 文档的不一致性C. 源程序及相关文档的错误或丢失D. 软件开发和软件维护在人员和时间上的差异正确答案:C6. 在软件生存周期中,工作量所占比例最大的阶段是()阶段A. 需求分析B. 设计C. 测试D. 维护正确答案:D7. 同一类中有相同的数据结构,这是()级别的共享A. 不同应用B. 同一应用C. 不同类D. 同一类正确答案:D8. 内容耦合指()A. 两个模块之间传递的是数据结构B. 一个模块调用另一个模块时,传递的是控制变量C. 通过一个公共数据环境相互作用的哪些模块间的耦合D. 一个模块直接使用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部正确答案:D9. 以下说法错误的是()A. 面向对象分析与面向对象设计的定义没有明显的区别B. 在实际的软件开发过程中面向对象分析与面向对象设计的界限是模糊的C. 面向对象分析和面向对象设计活动是一个多次反复迭代的过程D. 从面向对象分析到面向对象设计,是一个逐渐扩充模型的过程正确答案:A10. 以下说法错误的是()A. 面向对象方法不仅支持过程抽象,而且支持数据抽象B. 某些面向对象的程序设计语言还支持参数化抽象C. 信息隐蔽通过对象的封装来实现D. 在面向对象方法中,类是最基本的模块正确答案:D11. 以下说法错误的是()A. 面向对象方法不仅支持过程抽象,而且支持数据抽象B. 某些面向对象的程序设计语言还支持参数化抽象C. 信息隐藏通过对象的封装性来实现D. 在面向对象方法中,类是最基本的模块正确答案:D12. 指出PDL是下列()语言A. 高级程序设计语言B. 伪码C. 中级程序设计语言D. 低级程序设计语言正确答案:B13. 下面错误的说法是()A. 每个数据流必须用名词或名词短语命名B. 每个加工必须有名字,通常是动词短语C. 每个数据存储必须用名词或名词短语D. 每个数据源点或终点必须有名字正确答案:A14. 需求分析是()A. 软件开发工作的基础B. 软件生存周期的开始C. 由系统分析员单独完成的D. 由用户自己单独完成的正确答案:A15. 软件工程方法得以实施的主要保证是()A. 硬件环境B. 开发人员的素质C. 软件开发工具和软件开发的环境D. 软件开发的环境正确答案:C16. 软件测试方法中,黑盒测试方法和白盒测试方法是常用的方法,其中黑盒测试方法主要用于测试()A. 结构合理性B. 软件外部功能C. 程序正确性D. 程序内部逻辑正确答案:B17. 瀑布模型的问题是()A. 用户容易参与开发B. 缺乏灵活性C. 用户与开发者易沟通D. 适用可变需求正确答案:B18. 对于集成测试,下列说法错误的是()A. 应对每一个测试用例都执行测试规程B. 应将测试结果与预期结果比较,研究两者的偏离原因C. 将缺陷报告给相关构件工程师,不需要他们修改D. 将缺陷报告给测试设计人员,由它们评估整个测试工作的结果正确答案:C19. 分层DFD是一种比较严格又易于理解的描述方式,它的顶层图描述了系统的()A. 细节B. 输入与输出C. 软件的作者D. 绘制的时间正确答案:B西交《软件工程概论》在线作业二、多选题(共 1 道试题,共 2 分。
一、单选题1、软件产品与物质产品有很大的区别,软件产品是一种()产品。
A.有形B.消耗C.逻辑D.文档正确答案:C2、在()年的NATO会议上,软件工程的术语被首次提出。
A.1966B.1968C.1970D.1972正确答案:B3、软件开发中实现映射的基本手段是()A.抽象B.分层C.隔离D.建模正确答案:D4、下列哪项不属于软件工程框架的三元组。
()A.目标B.范围C.原则D.活动正确答案:B5、下列哪个不是软件维护的类型。
()A.完善性维护B.纠错性维护C.适应性维护D.更新性维护正确答案:D6、只有高水平的(),才能生产出高质量的软件产品。
A.软件开发技术B.软件开发工具C.软件工程管理D.项目开发经验正确答案:C二、多选题1、下列关于软件的说法正确的是()A.软件是通过定制进而生产制造出来的B.软件没有磨损老化问题。
C.软件开发的成本很高D.软件开发和运行必须依赖计算机环境正确答案:B、C、D2、下列软件属于系统软件的是()A.操作系统B.编译器C.中间件D.浏览器正确答案:A、B3、下述软件属于支撑软件的是()A.财务管理软件B.编译器C.中间件D.数据库正确答案:C、D4、下述软件属于应用软件的是()A.财务管理软件B.数据库C.编译器D.浏览器正确答案:A、D5、软件工程是一门交叉性学科,下列哪些学科是软件工程涉及的?A.数学B.计算机科学C.管理科学D.工程科学正确答案:A、B、C、D6、下列属于软件模型的是()A.概念模型B.设计模型C.实现模型D.部署模型正确答案:B、C、D7、软件需求阶段所要完成的任务包括()A.需求获取B.需求完善C.需求定义D.需求规约正确答案:A、C、D三、填空题1、软件工程概念的提出是为了解决()。
正确答案:软件危机2、软件设计阶段包括()和()两个阶段。
正确答案:总体设计、详细设计3、软件开发是实现()的概念和处理逻辑到()的概念和处理逻辑的映射。
软件工程概论(高起专)学习指南一、填空题1、软件是一种(B)产品。
A、有形B、逻辑C、物质D、消耗2、软件工程学的目的应该是最终解决软件生产的(B)问题。
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、有关计算机程序功能、设计、编制、使用的文字或图形资料称为(B)。
A、软件B、文档C、程序D、数据8、(A)是计算机程序及其说明程序的各种文档。
A、软件B、文档C、数据D、程序9、软件开发环境支持一定的(C)或按照一定的软件开发模型组织而成。
A、软件生存周期B、软件过程C、软件开发方法D、软件开发模型10、软件开发环境中最主要的组成部分是(C)。
A、软件工具B、项目管理工具C、软件工具D、需求分析工具11、在软件的开发与维护过程中,用来存储、更新、恢复和管理一个软件的多版本,它是(D)工具。
A、文档分析B、项目管理C、成本估算D、版本控制12、数据集成指不同软件工程能相互(B)。
A、合作B、交换数据C、交流D、通信13、一个CASE工作台是一组(B),支持设计、实现或测试等特定的软件开发阶段。
A、工具集B、软件包C、平台集D、程序包14、控制集成是指工具激活后能控制其他(A)的操作。
A、工具B、系统C、软件D、应用15、(D)是指CASE系统嵌入了关于过程活动、阶段、约束和支持这些活动所需的工具的知识。
软件工程概论考试试卷科目: 软件工程概论专业: 软件工程一、 单项选择题:在每小题列出的四个备选答案中只有一个答案是符合题目要求。
请将正确答案填入“单项选择题答题表”对应的格中。
(每小题1分, 本题共计20分)1. 瀑布模型的关键不足在于( )。
A. 过于简单B. 不能适应需求的动态变更C. 过于灵活D. 各个阶段需要进行评审 C .过于灵活 D .各个阶段需要进行评审2. 软件危机的表现不包括( )。
A. 软件质量不可靠B. 软件几乎是不可维护的C. 测试过程中发现的错误较多D. 缺少文档 C .测试过程中发现的错误较多 D .缺少文档3. 软件可行性研究一般不考虑( )。
A. 是否有足够的人员和相关的技术来支持系统开发B. 是否有足够的工具和相关的资源来支持系统开发C. 待开发软件是否有市场、经济上是否合算D. 待开发的软件是否会有质量问题D.待开发的软件是否会有质量问题4. 需求分析的任务不包括()。
A. 确定对系统的综合要求B. 分析系统的数据要求C. 设计模块内部算法的处理过程D. 导出逻辑模型并修正开发计划D.导出逻辑模型并修正开发计划5. ()和数据流图共同构成系统的逻辑模型, 没有它, 数据流图就不完整。
A. 系统流程图B. E-R图C. 数据字典D. 层次方框图C.数据字典 D.层次方框图6. 使用实体-联系图(ER图)建立的概念性数据模型中包含3种互相关联的信息: ()。
A.数据对象, 属性, 方法 B.数据对象, 属性, 联系C.数据表, 属性, 联系 D.数据表, 实体, 联系C. 数据表,属性,联系D. 数据表,实体,联系C.数据表,属性,联系 D.数据表,实体,联系7. 为了提高模块的独立性, 模块之间最好使用()。
A.控制耦...B.公共耦...C.内容耦...D.数据耦合A. 控制耦合B. 公共耦合C. 内容耦合D. 数据耦合8. 在总体设计阶段, 可用来描绘软件结构的图形工具不包括()。
软件工程概论一、单项选择题(本大题共137小题,每小题2分,共274分)1.软件是一种( B )产品A.有形B.逻辑C.物质D.消耗2.一个CASE工作台是一组( A ),支持设计、实现或测试等特定的软件开发阶段。
A.工具集B.软件包C.平台集D.程序包3.研究软硬件资源的有效性是进行( A )研究的一方面。
A.技术可行性B.经济可行性C.社会可行性D.操作可行性4.SA方法是一种( A )A.自顶向下逐层分解的分析方法B.自底向上逐层分解的分析方法C.面向对象的分析方法D.以上都不是5.需求分析最终结果是产生( C )A.项目开发计划B.可行性分析报告C.需求规格说明书D.设计说明书6.软件工程方法学的研究内容包含软件开发技术和软件工程管理两个方面,其期望达到的最终目标是(A )A.软件开发工程化B.消除软件危机C.实现软件可重用D.程序设计自动化7.增量模型是一种( B )模型A.整体开发B.非整体开发C.灵活性差D.较晚产生工作软件8.技术可行性要解决( D )。
A.存在侵权否B.成本-效益问题C.运行方式可行D.技术风险问题9.在数据流图中,有名字及方向的成分是( C )A.控制流B.信息流C.数据流D.信号流10.结构化分析方法(SA)最为常见的图形工具是( C )A.程序流程图B.实体联系图C.数据流图D.结构图11.软件工程方法得以实施的主要保证是( C )A.硬件环境B.开发人员的素质C.软件开发工具和软件开发的环境D.软件开发的环境12.瀑布模型的问题是(B )A.用户容易参与开发B.缺乏灵活性。
概述一、填空题1、软件由计算机程序、数据和文档组成;2、软件是一种逻辑产品,它与物质产品有很大的区别;3、计算机系统由硬件、软件、使用计算机的人、数据库、文档和执行过程组成;4、软件的发展,到现在为止,经历了三个阶段:程序设计、程序系统和软件工程;5、程序设计时代的生产方式是个体手工艺者,程序系统时代的生产方式是手工作坊,软件工程时代的生产方式是工程化;6、软件工程是一门综合性的交叉学科,它涉及计算机学科工程学科、管理学科和数学学科;7、计算机科学的成果都可用于软件工程,但计算机科学着重于理论和原理,软件工程着重于建造软件系统;8、软件工程研究的主要内容是方法、过程和工具等三个方面;9、软件开发各阶段任务的划分应尽可能相对独立,同一阶段任务的性质应尽可能相同;10、瀑布模型是将软件生存期各个活动规定为依线性顺序连接的若干阶段的模型;它规定了各阶段的活动由前至后,相互衔接的固定次序,如同瀑布流水,逐级下落;11、演化模型是一种非整体开发模型;先开发一个原型软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的产品;12、螺旋模型将开发过程分为几个螺旋周期;在每个螺旋周期内分为四个工作步骤:制定计划、风险分析、开发实施、用户评估;13、喷泉模型是一种以用户要求为动力,以对象为驱动的模型;它使开发过程具有迭代性和无间隙性,适用于面向对象开发方法;二、单项选择题1、软件产品的生产主要是C;A.制造B.复制C.开发D.研制2、个体手工劳动是B时代的软件生产方式;A.程序系统B.程序设计C.软件工程D.程序编码3、软件工程是一门C学科;A.理论性B.原理性C.工程性D.心理性4、软件开发费用只占软件生存期全部费用的B;35、在软件开发过程中大约要花费C%的工作量进行测试和调试;、准确地解决“软件系统必须做什么”是B阶段的任务;A.可行性研究B.需求分析C.软件设计D.程序编码7、软件生存期中时间最长的是D阶段;A.需求分析B.软件设计C.软件测试D.软件运行/维护8、在软件生存期的模型中,D适合于大型软件的开发它吸收了软件工程中“演化”的概念;A.喷泉模型B.基于知识的模型C.瀑布模型D.螺旋模型9、在软件生存期中,用户的参与主要在A;A.软件定义阶段B.软件开发阶段C.软件维护阶段D.整个软件生存期过程中10、在软件开发过程中的每个阶段都要进行严格的D,以尽早发现在软件开发过程中产生的错误;A.检验B.验证C.度量D.评审11、在软件开发和维护过程中需要变更需求时,为了保持软件各个配置成分的一致性,必须实施严格的BA.产品检验B.产品控制C.产品标准化D.开发规范12、实践表明,采用先进的开发技术可提高软件开发的生产率,还可提高软件的D;A.可靠性B.可使用性C.安全性D.可维护性13、为了提高软件开发过程的A,有效地进行管理,应当根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准;A.可见性B.生产率C.安全性D.有效性14、随着开发小组人数的A,因交流开发进展情况和讨论遇到的问题而造成的通信开销也急剧增加;A.增加B.降低C.稳定D.不稳定15、为保证软件开发的过程能够跟上技术的进步,必须不断地灵活地改进软件工程C;A.原则B.工具C.过程D.方法三、选择填空题1、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括内;软件是计算机系统中与硬件相互依存的另一部分,它是包括②、⑦及⑤的完整集合;其中,②是按事先设计的功能和性能要求执行的指令序列;⑦是使程序能够正确操纵信息的数据结构;⑤是与程序开发、维护和使用有关的图文材料;供选择的答案:A~C.①软件②程序③代码④硬件⑤文档⑥外设⑦数据⑧图表2、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括内;开发软件时对提高软件开发人员工作效率至关重要的是①;软件工程中描述生存周期的瀑布模型一般包括计划、①、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成③和⑥两步;供选择的答案:A.①程序开发环境②操作系统的资源管理功能③程序人员数量④计算机的并行处理能力B.①需求分析②需求调查③可行性分析④问题定义C、D.①方案设计②代码设计③概要设计④数据设计⑤运行设计⑥详细设计⑦故障处理设计⑧软件体系结构设计3、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括内;有人将软件的发展过程划分为4个阶段:第一阶段1950~1950年代末称为“程序设计的原始时期”,这时既没有A ,也没有B ,程序员只能用机器指令编写程序;第二阶段1950年代末~1960年代末称为“基本软件期”;出现了①,并逐渐普及;随着④的发展,编译技术也有较大的发展;第三阶段1960年代末~1970年代中期称为“程序设计方法时代”;这一时期,与硬件费用下降相反,软件开发费急剧上升;人们提出了⑤和⑧等程序设计方法,设法降低软件的开发费用;第四阶段1970年代中期~现在称“软件工程时期”;软件开发技术不再仅仅是程序设计技术,而是包括了与软件开发的各个阶段,如⑤、④、编码、单元测试、综合测试、①及其整体有关的各种管理技术;供选择的答案:A~D:①汇编语言②操作系统③虚拟存储器概念④高级语言⑤结构式程序设计⑥数据库概念⑦固件⑧模块化程序设计E~G:①使用和维护②兼容性的确认③完整性的确认④设计⑤需求定义⑥图象处理4、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括内;软件工程的最终目的是以较少的投资获得可维护的、可靠的、高效率的和可理解的软件产品;软件工程技术应遵循⑦、④、⑥、③、一致性、确定性、完备性、可验证性、抽象和信息隐蔽;原型法适用于开发较复杂的系统,原型可分为三种:②、⑤和④;供选择的答案:A~D①有效性②合理性③局部化④协同性⑤实用性⑥模块化⑦抽象⑧信息隐蔽E~G:①复用型②实验型③废弃型④演化型⑤探索型项目管理一、填空题1、要成功地完成软件开发工作的一个主要的决定性因素是项目管理;2、软件过程是软件生存期中的一系列相关工程活动集合;3、所有的软件开发都可以看成是一个问题循环解决过程,其中包括4个截然不同的阶段:状态捕捉、问题定义、技术开发和方案综合;4、在制定软件项目计划之前,必须先明确项目的目标和范围;项目的目标标明了软件项目的目的但不涉及如何去达到这些目的;5、对软件进行度量,是为了表明软件产品的质量,弄清软件开发人员的生产率,建立项目估算的基线,帮助调整对新的工具和附加培训的要求;6、软件质量的事后度量包括正确性、可维护性、完整性和可使用性;其中完整性包括危险性和安全性;7、软件范围包括功能、性能、限制、接口和可靠性;8、软件项目计划的第二个任务是对完成该软件项目所需的资源进行估算;资源包括人与工具;9、对于一个大型的软件项目,要进行一系列的估算处理;主要靠分解和类推的手段进行;10、基本COCOMO模型是一个静态单变量模型,它用一个已估算出的源代码行数LOC为自变量的经验函数来计算软件开发工作量;11、成本-效益分析的目的,是从经济角度评价开发一个新的软件项目是否可行;12、风险估计从两个方面估价风险;一是估计一个风险发生的可能性;一是估价与风险相关的问题出现后将会产生的结果;13、一个软件任务由一个人单独开发,生产率最高;14、在与软件成本相关的影响因素中,人员的能力是最大影响因素;15、软件开发所需的人力随开发的进展逐渐增加,在编码与单元测试阶段达到高峰,以后又逐渐减少;16、在建立项目组织时应注意的原则有三:①尽早落实责任,指定专人负责;②减少接口,要有合理的人员分工、好的组织结构、有效的通信,减少不必要的生产率的损失;③责权均衡;17、风险出现概率可以使用从过去项目、直觉或其它信息收集来的度量数据进行统计分析估算出来;18、用各种不同的方法对风险进行分类是可能的;从宏观上来看,可将风险分为项目风险、技术风险和商业风险;二、选择题1、所有的软件开发都可以看成是一个问题B过程;A.顺序解决B.循环解决C.分类解决D.分组解决2、软件项目管理所涉及的范围覆盖了整个软件D;A.开发过程B.运行与维护过程C.定义过程D.生存期3、为使软件开发获得成功,一个关键问题是必须对软件范围、风险、资源、任务、里程碑、成本,进度等做到心中有数,而C可以提供这些信息;A.计算机辅助工程B.软件开发工具C.软件项目管理D.软件估算4、软件范围标明了软件要实现的基本功能,并尽量以A的方式界定这些功能;A.定量B.规范C.统一D.定性5、只要事先建立特定的度量规程,很容易做到B开发软件所需要的成本和工作量、产生的代码行数等;A.间接度量B.直接度量C.间接估算D.直接估算6、为了计算特征点,可以像计算功能点那样,对信息域值进行计数和加权;此外,需要对一个新的软件特征A进行计数;A.算法B.计算误差C.程序复杂性D.效率7、对于软件的D,有一种简单的面向时间的度量,叫做平均变更等待时间MTTCMeanTimeToChange;这个时间包括开始分析变更要求、设计合适的修改、实现变更并测试它、以及把这种变更发送给所有的用户;A.可靠性B.可修改性C.可测试性D.可维护性8、软件的完整性是度量一个系统抗拒对它的C攻击事故的和人为的的能力;A.可靠性B.正确性C.安全性D.容错性9、对每一种软件资源,应说明4个特性:资源的描述,资源的有效性说明,资源在何时开始需要,使用资源的持续时间;最后两个特性统称为A;A.时间窗口B.时间安排C.日程安排D.资源定义10、业务系统计划工具借助特定的C建立一个组织的战略信息需求的模型,导出特定的信息系统;A.过程性语言B.形式化语言C.元语言D.伪码11、软件开发成本主要是指软件开发过程中所花费的B及相应的代价;A.劳动力B.工作量C.资源D.持续时间12、自顶向下估算软件成本的方法主要是从项目的整体出发进行B,即根据已完成项目的总成本或总工作量,来推算待开发软件的总成本或总工作量,然后按比例将它分配到各开发任务单元中去;A.分解B.类推C.推导D.评估13、自底向上估算软件成本的方法主要是把待开发软件A,直到每一个子任务都已经明确所需要的开发工作量,然后把它们加起来,得到软件开发的总工作量;A.分解B.类推C.推导D.评估16、系统的经济效益B因使用新系统而增加的收入加上使用新系统可以节省的运行费用;A.大于B.等于C.小于D.不等于17、项目复杂性、规模和结构的不确定性构成C估算风险因素;A.技术B.经济C.项目D.商业18、识别风险的一种最好的方法就是利用一组A来帮助人们了解在项目和技术方面有哪些风险;因此,Boehm建议使用一个“风险项目检查表”;A.提问B.项目C.脚本D.场景19、在做风险评价时常采用的一个非常有效的方法就是定义D;A.风险评价标准B.风险影响因子C.风险调整因素D.风险参照水准21、当几个人共同承担软件开发项目中的某一任务时,人与人之间必须通过交流来解决各自承担任务之间的A 问题,即所谓通信问题;A.接口B.衔接C.调用D.控制22、假设一个人单独开发软件,生产率是5000行/人年;若4个人组成一个小组共同开发这个软件,在每条通信路径上耗费的工作量是250行/人年;则组中每人的生产率降低为C、PERT技术叫做B技术,它是采用网络图来描述一个项目的任务网络,安排开发进度,制定软件开发计划的最常用的方法;A.日程安排B.计划评审C.关键路径D.因果图24、在进度压力下赶任务,其成果往往是以B产品的质量为代价的;A.浪费B.牺牲C.抵押D.维持三、选择填空题1、从供选择的答案中选出与下列有关软件过程叙述相对应的正确答案,将其编号填入到相应的括弧内;软件过程是软件4中的一系列相关软件工程3的集合;每一个软件过程又是由一组6、项目8、软件工程产品和交付物以及质量保证SQA点等组成;一个软件过程可以用右图的形式来表示;首先建立一个2过程框架,其中定义了少量可适用于所有软件项目的框架3,再给出各个框架3的任务集合,最后是保护伞活动,如软件质量保证、软件配置管理以及测量等;软件过程模型的选择基于项目和应用的特点、采用的5和工具、要求的控制和需交付的产品;A.④B.③C.⑥D.⑧E.②F.⑤供选择的答案:A~F.①工程②公共③活动④生存期⑤方法⑥工作任务⑦功能⑧里程碑2、从供选择的答案中选出与下列有关软件项目管理叙述相对应的正确答案,将其编号填入到相应的括弧内; 由于软件工程有如下的特点,使软件管理比其它工程的管理更为困难;软件产品2;6标准的过程;大型软件项目往往是3项目;2的作用是为有效地定量地进行管理,把握软件工程过程的实际情况和它所产生的产品质量;在制定计划时,应当对人力、项目持续时间、成本作出4;5实际上就是贯穿于软件工程过程中一系列风险管理步骤;最后,每一个软件项目都要制定一个1,一旦6制定出来,就可以开始着手5;供选择的答案:A.②B.⑥C.③D.②E.④F.①G.⑥H.⑤A~C.①可见的②不可见的③“一次性”④“多次”⑤存在⑥不存在D~H.①进度安排②度量③风险分析④估算⑤追踪和控制⑥开发计划3、从供选择的答案中选出与下列有关软件度量叙述相对应的正确答案,将其编号填入到相应的括弧内;软件的度量包括A1和B4;软件产品的A1包括产生的代码行数、执行速度等;软件产品的B则包括若干质量特性;我们还可进一步将软件度量如右图所示那样分类;软件C度量主要关注软件工程过程的结果;D度量则指明了软件适应明确和不明确的用户要求到什么程度;E度量主要关注软件的一些特性而不是软件开发的全过程;从图中还可看到另一种分类方法:面向F的度量用于收集与直接度量有关软件工程输出的信息和质量信息;面向G的度量提供直接度量的尺度;面向H的度量则收集有关人们开发软件所用方式的信息和人们理解有关工具和方法的效率的信息;A.①B.④C.④D.①E.②F.⑤G.⑦H.③供选择的答案:A~B.①直接度量②尺度度量③二元度量④间接度量C~E.①质量②技术③成本④生产率F~H.①过程②对象③人④存取⑤规模⑥进程⑦功能⑧数据4、从供选择的答案中选出与下列有关软件估算叙述相对应的正确答案,将其编号填入到相应的括弧内;估算资源、成本和进度时需要经验、有用的历史信息、足够的定量数据和作定量度量的勇气;通常估算本身带有A;项目的复杂性越高,规模越大,开发工作量B,估算的A就C;项目的结构化程度提高,进行精确估算的能力就能D,而风险将E;有用的历史信息F,总的风险会减少;供选择的答案:A.③B.②C.⑦D.①E.③F.②A.①风范范型②风格③风险④度量B~F.①增加②越多③降低④不变⑤越少⑥越高⑦越大5、从供选择的答案中选出与下列有关软件估算叙述相对应的正确答案,将其编号填入到相应的括弧内;在软件项目估算时,将代码行LOC和功能点FP数据在两个方面使用:一是作为一个估算变量,度量软件每一个A的大小;一是联合使用从过去的项目中收集到的B和其它估算变量,进行成本和C估算;LOC和FP是两种不同的估算技术,但两者有许多共同的特征,只是LOC和FP技术对于分解所需要的D不同;当用E作为估算变量时,功能分解是绝对必要且应达到很详细的程度,而用F作为估算变量时,分解程度可以不很详细;E是直接估算,F 是间接估算;若计划人员对每个功能分别按最佳的、可能的、悲观的三种情况给出LOC或FP估计值,记作a,m,b,则LOC或FP的期望值E的公式为G,m是加权的最可能的估计值,遵循H;供选择的答案:A.③,B.⑦,C.⑤,D.①,E.②,F.①,G.②,H.③;A~C.①模块②软件项目③分量④持续时间⑤工作量⑥进度⑦基线数据⑧改进数据D.①详细程度②分解要求③改进过程④使用方法E,F.①FP②LOCG.①E=a+m+b/3②E=a+4m+b/6③E=2a+3m+4b/3④H.①χ概率②γ概率③β概率④泊松6、从供选择的答案中选出与下列有关软件估算叙述相对应的正确答案,将其编号填入到相应的括弧内;在考虑各种软件开发资源时,A是最重要的资源;如果把软件开发所需的资源画成一个金字塔形:在塔的上层是最基本的资源A,在底部为B;B包括硬件资源和软件资源;C、D和其它硬件设备属于硬件资源;IPSE工具属于软件资源中的E;为了提高软件的生产率和软件产品的质量,可建立F;供选择的答案:A.②B.③C.②D.④E.⑥F.⑤A,B.①方法②人力③工具④上下文环境C,D.①虚拟机②目标机③自动机④宿主机E,F.①维护工具②分析设计工具③支持工具④编程工具⑤可复用构件库⑥框架工具⑦原型化模拟工具7、从供选择的答案中选出与下列有关软件成本估算叙述相对应的正确答案,将其编号填入到相应的括弧内;定义一个人参加劳动时间的长短为A,其度量单位为PM人月或PY人年;而定义完成一个软件项目或软件任务所需的A为B,其度量单位是人月/项目任务,记作PM人月;进一步地,定义单位A所能完成的软件C的数量为软件D,其度量单位为LOC/PM;它表明一般指E的一个平均值;例如,一个软件的开发工作量如下表所示;该软件共有源代码2900行,其中,500行用于测试,2400行是执行F的源代码;则劳动生产率是GLOC/PM;供选择的答案:A.④B.②C.④D.①E.①F.②G.④A,B,D.①生产率②工作量③成本④劳动量E.①开发全过程②某开发阶段③软件生存期④某开发任务F,C.①软件②程序③进程④产品G.①520②120③320④2408、从供选择的答案中选出与下列有关软件成本估算叙述相对应的正确答案,将其编号填入到相应的括弧内;对于一个大型的软件项目,由于项目的复杂性,需要进行一系列的估算处理;主要按A和B手段进行;估算的方法分为三类:从项目的整体出发,进行B的方法称为C估算法;把待开发的软件细分,直到每一个子任务都已经明确所需要的开发工作量,然后把它们加起来,得到软件开发总工作量的方法称为D估算法;而把待开发的软件项目与过去已完成的软件项目做类比,区分出类似部分和不同部分分别处理的方法称为E估算法;F是由多位专家进行成本估算的方法;供选择的答案:A.③,B.①,C.②,D.③,E.①,F.④A,B.①类推②类比③分解④综合C~F.①差别②自顶向下③自底向上④专家判定技术⑤循序渐进⑥比较10、从供选择的答案中选出与下列有关软件成本估算叙述相对应的正确答案,将其编号填入到相应的括弧内; 一个规模为10KDSI的商用微机远程通信的嵌入型软件,使用中间COCOMO模型进行软件成本估算;程序的名义工作量MM=A;程序实际工作量MM=B;开发所用的时间TDEV=C;如果软件开发人员的工资都按每月6000美元计算,则该软件项目的开发人员的工资总额=D;表1中间COCOMO模型的名义工作量与进度公式表2影响工作量的因素fi的取值A.③,B.②,C.①,D.④供选择的答案:A,B.①②③④.①月②月③月④月D.①万美元②36万美元③万美元④万美元11、从供选择的答案中选出与下列有关软件成本-效益分析叙述相对应的答案,将其编号填入到相应的括弧内; 假设开发某个计算机应用系统的投资额为3000元,该计算机应用系统投入使用后,每年可以节约1000元,5年内可能节约5000元;3000元是现在投资的钱,5000元是5年内节省的钱,两者不能简单地比较;假定年利率为12%,利用计算货币现在价值的公式,可以算出该计算机应用系统投入使用后每年预计节省的金额的现在价值;A.④,B.②,C.③则该系统的纯收入是A,投资回收期是B,投资回收率为C;供选择的答案:A.①元②元③元④元B.①年②年③年④元C.①25%②30%③20%④15%12从供选择的答案中选出与下列有关软件风险分析叙述相对应的正确答案,将其编号填入到相应的括弧内; 在特定情况下,是否必须进行风险分析,是对项目开发的形势进行A后确定的;A可以按如下步骤进行:明确项目的目标、总策略、具体策略和为完成所标识的目标而使用的方法和资源;保证该目标是B,项目成功的标准也是B;考虑采用某些条目作为项目成功的C;根据估计的结果来确定是否要进行风险分析;一般来说,风险分析的方法要依赖于特定问题的需求和有关部门所关心的方面;具体分3步进行;第一步识别潜在的风险项,首先进行D过程;第二步估计每个风险的大小及其出现的可能性,选择一种E,它可以估计各种风险项的值;第三步进行风险评估;风险评估也有三个步骤:确定F,确定G,把风险与“参照风险”做比较;供选择的答案:A.②B.①C.②D.②E.③F.④G.③A.①风险管理②风险估计③风险评价④风险测试B.①可度量的②不可度量的③准确的④不确定的C.①规范②标准③过程模型④设计要求D,E.①信息分类②信息收集③度量尺度④标准⑤度量工具⑥信息获取F,G.①风险的范围②风险的特性③风险的级别④风险的评价标准⑤风险的排除策略13、从供选择的答案中选出与下列有关软件风险分析叙述相对应的正确答案,将其编号填入到相应的括弧内; 风险分析实际上是4个不同的活动,按顺序依次为A、B、风险评价和C;在风险评价时,应当建立一个三元组:ri,li,xi,ri是风险描述,li是D,而xi是风险的影响;一个对风险评价很有用的技术是定义E;F、G、H是三种典型的E;在做风险分析的上下文环境中一个E就存在一个单独的点,叫做参照点或I;在这个点上要公正底给出判断;实际上,参照点能在图上表示成一条平滑的曲线的情况很少,多数情况它是一个J;供选择的答案:A.②,B.③,C.①,D.②,E.①,F.③,G.④,H.⑥,I.②,J.④A~C.①风险驾驭和监控②风险识别③风险估计④风险消除D.①风险的大小②风险的概率③风险的时间④风险的范围E.①风险参照水准②风险度量③风险监控④风险工具F~H.①生产率②功能③成本④进度⑤范围⑥性能I,J.①凹点②崩溃点③终点④区域⑤拐点⑥原点14、从供选择的答案中选出与下列有关软件进度管理叙述相对应的正确答案,将其编号填入到相应的括弧内; 任何软件项目都必须做好项目管理工作,最常使用的进度管理工具是A,当某一开发项目的进度有可能拖延时,应该B;对于一个典型的软件开发项目,各开发阶段需投入的工作量的百分比大致是C;各阶段所需不同层次的技术人员大致是D,而管理人员在各阶段所需数量也不同,相对而言大致是E;供选择的答案:A.①数据流图②程序结构图③因果图④PERT图B.①增加新的开发人员②分析拖期原因加以补救③从别的小组抽调人员临时帮忙④推迟预定完成时间。
软件学院考试试卷及标准答案20XX— 20XX学年第一学期课程名称:软件工程概论┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄一、单项选择题:在每小题列出的四个备选答案中只有一个....答案..是符合题目要求。
请将正确答案填入“单项选择题答题表”对应的格中。
未填入答题表、错选或多选均不得分。
(每小题1分,本题共计35分)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.HIPO图7. ()和数据流图共同构成系统的逻辑模型,没有它,数据流图就不完整。
A.系统流程图 B.E-R图C.数据字典 D.层次方框图8. 需求分析的任务不包括...()。
A.确定对系统的综合要求 B.分析系统的数据要求C.从技术角度分析系统是否可行 D.导出逻辑模型并修正开发计划9. 要将一个复杂的系统分析清楚,传统软件工程常用方法是结构化分析方法,结构化分析方法就是()。
《软件工程概论》期末测试试卷(A卷)一.单项选择题(每题1分,共22分)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.Pascal B.CC.Fortran D.Prolog12.只有单重继承旳类层次构造是()层次构造。
A.网状型B.星型C.树型D.环型13.面向对象旳开发措施中,()将是面向对象技术领域内占主导地位旳原则建模语言。
A.Booch措施B.Coad措施C.UML语言D.OMT措施14.瀑布模型本质上是一种()。
A.线性次序模型B.次序迭代模型C.线性迭代模型D.和早见产品模型15.软件维护产生旳副作用,是指()。
A.开发时旳错误B.隐含旳错误C.因修改软件而导致旳错误D.运行时误操作16.软件详细设计旳重要任务是确定每个模块旳()。
可编辑修改精选全文完整版软件工程概论答案第1章软件与软件工程的概念1.1 举出你所知道的应用软件的例子。
办公软件、游戏软件、财务软件、银行软件、人事管理软件、工资管理软件、学籍管理软件等。
1.2 认为“软件就是程序,软件开发就是编程序。
”这种观点是否正确?为什么?认为“软件就是程序,软件开发就是编程序。
”这种观点是错误的。
首先,软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合,程序只是软件的组成部分之一;其次,在软件开发中,编程只是软件开发过程的一个阶段。
1.3 如果将软件开发比作高楼大厦的建造,可以将软件的设计比作什么?可以将软件的设计比作建筑设计,软件设计的成果相当于建筑设计的设计图纸。
1.4 什么是软件危机?它有哪些典型表现?为什么会出现软件危机?软件危机:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
典型表现:(1)对软件开发成本和进度的估计常常很不准确。
(2)用户对“已完成的”软件系统不满意的现象经常发生。
(3)软件产品的质量往往靠不住。
(4)软件常常是不可维护的。
(5)软件通常没有适当的文档资料。
(6)软件成本在计算机系统总成本中所占的比例逐年上升。
(7)软件开发生产率提高的速度,既跟不上硬件的发展速度,也远远跟不上计算机应用迅速普及深入的趋势。
产生软件危机的原因:除了软件本身的特点,其原因主要有以下几个方面:(1) 缺乏软件开发的经验和有关软件开发数据的积累,使得开发工作计划很难制定。
(2) 软件人员与用户的交流存在障碍,使得获取的需求不充分或存在错误。
(3) 软件开发过程不规范。
如,没有真正了解用户的需求就开始编程序。
(4) 随着软件规模的增大,其复杂性往往会呈指数级升高。
需要很多人分工协作,不仅涉及技术问题,更重要的是必须有科学严格的管理。
(5) 缺少有效的软件评测手段,提交给用户的软件的质量不能完全保证。
1.5 什么是软件工程?软件工程是指导计算机软件开发和维护的工程学科。
西交《软件工程概论》在线作业15秋满分答案
一、单选题(共19道试题,共38分。
)1.一个case工作台是一组(),支持设计、实现或测试等特定的软件开发阶段、a.工具集b.软件包c.平台集d.程序包――选择:a
2.白盒测试方法重视()的度量、a.测试覆盖率
软件工程劳动力前景分析b.测试数据多少c.测试费用d.测试周期――挑选:a
3.面向对象设计语言不同于其他语言的最主要特点是()、a.模块性b.抽象性c.继
承性d.共享性――选择:c
4.尽管存有不合法的输出,软件仍能够稳步正常工作的能力就是指()、a.兼容性b.可靠性c.容错性d.稳定性――挑选:c
5.软件是一种()产品、a.有形b.逻辑c.物质d.消耗――选择:d
6.sa方法就是一种()、
a.自顶向下逐层分解的分析方法
b.自底向上逐层分解的分析方法
c.面向对象的分析
方法d.以上都不是――选择:a
7.软件工程对保护工作的主要目标就是提升(),减少保护的代价、a.软件的生产率
b.软件的可靠性
c.软件的可维护性。
概述一、填空题1、软件由计算机程序、数据和文档组成。
2、软件是一种逻辑产品,它与物质产品有很大的区别。
3、计算机系统由硬件、软件、使用计算机的人、数据库、文档和执行过程组成。
4、软件的发展,到现在为止,经历了三个阶段:程序设计、程序系统和软件工程。
5、程序设计时代的生产方式是个体手工艺者,程序系统时代的生产方式是手工作坊,软件工程时代的生产方式是工程化。
6、软件工程是一门综合性的交叉学科,它涉及计算机学科工程学科、管理学科和数学学科。
7、计算机科学的成果都可用于软件工程,但计算机科学着重于理论和原理,软件工程着重于建造软件系统。
8、软件工程研究的主要内容是方法、过程和工具等三个方面。
9、软件开发各阶段任务的划分应尽可能相对独立,同一阶段任务的性质应尽可能相同。
10、瀑布模型是将软件生存期各个活动规定为依线性顺序连接的若干阶段的模型。
它规定了各阶段的活动由前至后,相互衔接的固定次序,如同瀑布流水,逐级下落。
11、演化模型是一种非整体开发模型。
先开发一个原型软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的产品。
12、螺旋模型将开发过程分为几个螺旋周期。
在每个螺旋周期内分为四个工作步骤:制定计划、风险分析、开发实施、用户评估。
13、喷泉模型是一种以用户要求为动力,以对象为驱动的模型。
它使开发过程具有迭代性和无间隙性,适用于面向对象开发方法。
二、单项选择题1、软件产品的生产主要是C。
A. 制造B. 复制C. 开发D. 研制2、个体手工劳动是B时代的软件生产方式。
A. 程序系统B. 程序设计C. 软件工程D. 程序编码3、软件工程是一门C学科。
A. 理论性B. 原理性C. 工程性D. 心理性4、软件开发费用只占软件生存期全部费用的B。
A. 1/2B. 1/3C. 1/4D. 2/35、在软件开发过程中大约要花费C%的工作量进行测试和调试。
A. 20B. 30C. 40D. 506、准确地解决“软件系统必须做什么”是B阶段的任务。
A. 可行性研究B. 需求分析C. 软件设计D. 程序编码7、软件生存期中时间最长的是D阶段。
A. 需求分析B. 软件设计C. 软件测试D. 软件运行/维护8、在软件生存期的模型中,D适合于大型软件的开发它吸收了软件工程中“演化”的概念。
A .喷泉模型B. 基于知识的模型C. 瀑布模型D. 螺旋模型9、在软件生存期中,用户的参与主要在A。
A. 软件定义阶段B. 软件开发阶段C. 软件维护阶段D. 整个软件生存期过程中10、在软件开发过程中的每个阶段都要进行严格的D,以尽早发现在软件开发过程中产生的错误。
A. 检验B. 验证C. 度量D. 评审11、在软件开发和维护过程中需要变更需求时,为了保持软件各个配置成分的一致性,必须实施严格的BA. 产品检验B. 产品控制C. 产品标准化D. 开发规范12、实践表明,采用先进的开发技术可提高软件开发的生产率,还可提高软件的D。
A. 可靠性B. 可使用性C. 安全性D. 可维护性13、为了提高软件开发过程的A,有效地进行管理,应当根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准。
A. 可见性B. 生产率C. 安全性D. 有效性14、随着开发小组人数的A,因交流开发进展情况和讨论遇到的问题而造成的通信开销也急剧增加。
A. 增加B. 降低C. 稳定D. 不稳定15、为保证软件开发的过程能够跟上技术的进步,必须不断地灵活地改进软件工程C。
A. 原则B. 工具C. 过程D. 方法三、选择填空题1、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括内。
软件是计算机系统中与硬件相互依存的另一部分,它是包括(②)、(⑦)及(⑤)的完整集合。
其中,(②)是按事先设计的功能和性能要求执行的指令序列。
(⑦)是使程序能够正确操纵信息的数据结构。
(⑤)是与程序开发、维护和使用有关的图文材料。
供选择的答案:A~C. ① 软件② 程序③ 代码④ 硬件⑤ 文档⑥ 外设⑦ 数据⑧ 图表2、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括内。
开发软件时对提高软件开发人员工作效率至关重要的是(①)。
软件工程中描述生存周期的瀑布模型一般包括计划、(①)、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成(③)和(⑥)两步。
供选择的答案:A.① 程序开发环境②操作系统的资源管理功能③程序人员数量④计算机的并行处理能力B.① 需求分析②需求调查③可行性分析④问题定义 C、D.①方案设计②代码设计③概要设计④数据设计⑤运行设计⑥详细设计⑦故障处理设计⑧ 软件体系结构设计3、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括内。
有人将软件的发展过程划分为4个阶段:第一阶段(1950~1950年代末)称为“程序设计的原始时期”,这时既没有( A ),也没有( B ),程序员只能用机器指令编写程序。
第二阶段(1950年代末~1960年代末)称为“基本软件期”。
出现了(①),并逐渐普及。
随着(④)的发展,编译技术也有较大的发展。
第三阶段(1960年代末~1970年代中期)称为“程序设计方法时代”。
这一时期,与硬件费用下降相反,软件开发费急剧上升。
人们提出了(⑤)和(⑧)等程序设计方法,设法降低软件的开发费用。
第四阶段(1970年代中期~现在)称“软件工程时期”。
软件开发技术不再仅仅是程序设计技术,而是包括了与软件开发的各个阶段,如(⑤)、(④)、编码、单元测试、综合测试、(①)及其整体有关的各种管理技术。
供选择的答案:A~D:①汇编语言②操作系统③虚拟存储器概念④高级语言⑤结构式程序设计⑥数据库概念⑦固件⑧模块化程序设计E~G:① 使用和维护② 兼容性的确认③ 完整性的确认④ 设计⑤ 需求定义⑥ 图象处理4、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括内。
软件工程的最终目的是以较少的投资获得可维护的、可靠的、高效率的和可理解的软件产品。
软件工程技术应遵循(⑦)、(④)、(⑥)、(③)、一致性、确定性、完备性、可验证性、抽象和信息隐蔽。
原型法适用于开发较复杂的系统,原型可分为三种:(②)、(⑤)和(④)。
供选择的答案:A~D①有效性②合理性③局部化④协同性⑤实用性⑥模块化⑦抽象⑧信息隐蔽E~G:① 复用型② 实验型③ 废弃型④ 演化型⑤ 探索型四、问答题1、什么是软件?它的特性是什么?答:软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。
其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发,维护和使用有关的图文材料。
软件的特点是:(1) 软件是一种逻辑实体,而不是具体的物理实体。
它具有抽象性。
(2) 软件的生产与硬件不同,它没有明显的制造过程。
(3) 在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题。
然而它存在退化问题。
(4) 软件的开发和运行常常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。
(5) 软件的开发至今尚未完全摆脱手工艺的开发方式。
(6) 软件本身是复杂的。
软件的复杂性可能来自它所反映的实际问题的复杂性,也可能来自程序逻辑结构的复杂性。
(7) 软件成本相当昂贵。
2、试比较软件发展的三个时期的特点,从软件所指、软件工作范围、软件开发组织、决定质量的因素、开发技术和手段等几个方面说明它们的差别。
答:3、软件工程是开发、运行、维护和修复软件的系统化方法,它包含哪些要素?试说明之。
答:软件工程包括三个要素:方法、工具和过程。
软件工程方法为软件开发提供了“如何做”的技术。
它包括了多方面的任务,如项目计划与估算、软件系统需求分析、数据结构、系统总体结构的设计、算法过程的设计、编码、测试以及维护等。
软件工具为软件工程方法提供了自动的或半自动的软件支撑环境。
软件工程的过程则将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。
过程定义了方法使用的顺序、要求交付的文档资料、为保证质量和协调变化所需要的管理、及软件开发各个阶段完成的里程碑。
4、软件工程过程有哪几个基本过程活动?试说明之。
答:软件工程过程的基本过程活动有4步:· P (Plan) : 软件规格说明。
规定软件的功能及其运行的限制;· D (Do) : 软件开发。
产生满足规格说明的软件;· C (Check) : 软件确认。
确认软件能够完成客户提出的要求;· A (Action) : 软件演进。
为满足客户的变更要求,软件必须在使用的过程中演进。
5、试说明“软件生存期”的概念。
答:软件与任何一个事物一样,有它的孕育、诞生、成长、成熟、衰亡的生存过程。
这就是软件的生存期。
它分为6个阶段:(1) 软件项目计划:在这一步要确定软件工作范围,进行软件风险分析,预计软件开发所需要的资源,建立成本与进度的估算。
根据有关成本与进度的限制分析项目的可行性。
(2) 软件需求分析和定义:在这一步详细定义分配给软件的系统元素。
可以用以下两种方式中的一种对需求进行分析和定义。
一种是正式的信息域分析,可用于建立信息流和信息结构的模型,然后逐渐扩充这些模型成为软件的规格说明。
另一种是软件原型化方法,即建立软件原型,并由用户进行评价,从而确定软件需求。
(3) 软件设计:软件的设计过程分两步走。
第一步进行概要设计,以结构设计和数据设计开始,建立程序的模块结构,定义接口并建立数据结构。
第二步做详细设计,考虑设计每一个模块部件的过程描述。
经过评审后,把每一个加细的过程性描述加到设计规格说明中去。
(4) 程序编码:在设计完成之后,用一种适当的程序设计语言或CASE工具生成源程序。
应当就风格及清晰性对代码进行评审,而且反过来应能直接追溯到详细设计描述。
(5) 软件测试:单元测试检查每一单独的模块部件的功能和性能。
组装测试提供了构造软件模块结构的手段,同时测试其功能和接口。
确认测试检查所有的需求是否都得到满足。
在每一个测试步骤之后,要进行调试,以诊断和纠正软件的故障。
(6) 软件维护:为改正错误,适应环境变化及功能增强而进行的一系列修改活动。
与软件维护相关联的那些任务依赖于所要实施的维护的类型。
6、试论述瀑布模型软件开发方法的基本过程,比较它的优点和缺点。
答:瀑布模型规定了各项软件工程活动,包括:制定软件项目计划,进行需求分析和定义,软件设计,程序编码,测试及运行维护。
并且规定了它们自上而下,相互衔接的固定次序,如同瀑布流水,逐级下落。
瀑布模型为软件开发和软件维护提供了一种有效的管理图式。