软工重点的答案
- 格式:doc
- 大小:361.54 KB
- 文档页数:6
软件工程问答题答案(仅供参考)(精品)软件工程问答题答案(仅供参考)(精品)软件工程是指通过计算机科学与工程学的原理、方法和工具来开发和维护软件的一门学科。
在软件工程领域,存在着许多关键问题和常见的问答题。
本文将为你提供一些常见软件工程问答题的答案,希望能够帮助你更好地理解和应用软件工程的知识。
1. 什么是软件需求工程?软件需求工程是软件工程中的一个重要领域,它关注的是对用户需求进行分析、规范和管理,以便于软件系统的开发和交付。
软件需求工程包括可行性研究、需求获取、需求分析、需求规格说明和需求验证等过程。
2. 请解释软件配置管理是什么?软件配置管理是指通过管理软件系统中的各种配置项和配置变更,以确保软件系统的正确、完整和可追踪。
它包括配置项识别、变更控制、版本控制、配置库管理等活动,旨在提高软件开发和维护过程的可控性和可靠性。
3. 请介绍软件测试的目的和重要性。
软件测试的目的是发现软件系统中的错误、缺陷和潜在问题,以便在软件交付之前进行修复和改进。
软件测试的重要性在于可以提高软件系统的质量和可靠性,降低软件使用过程中的风险和损失。
4. 什么是软件架构?软件架构是指软件系统的基本结构和组织方式。
它描述了软件系统中各个组件之间的关系和交互,以及软件系统的总体设计原则和理念。
软件架构可以帮助团队成员理解和沟通软件系统的设计和实现。
5. 请解释敏捷开发方法。
敏捷开发方法是一种以迭代、循环和适应性为核心的软件开发方法。
它强调团队合作、快速反馈和不断改进,在不断变化的需求环境下能够更加灵活地开发和交付高质量的软件系统。
6. 请介绍软件项目管理的过程和技术。
软件项目管理包括项目计划、项目组织、项目监控和项目交付等过程。
它涉及到时间管理、成本管理、风险管理、质量管理等技术和工具,以确保软件项目能够按时、按量和按质完成。
7. 请解释软件工程中的代码重构。
代码重构是指在不改变软件系统外部行为的前提下,通过对代码的重新组织和调整来改进软件系统的内部质量和可理解性。
软件工程考试题及答案一、单项选择题(每题2分,共20分)1. 软件工程的三要素不包括以下哪一项?A. 工具B. 方法C. 过程D. 环境答案:D2. 软件需求分析阶段的主要任务是确定软件的()。
A. 功能需求B. 性能需求C. 界面需求D. 所有选项答案:D3. 软件测试的目的是()。
A. 发现软件中的错误B. 证明软件是正确的C. 验证软件是否满足需求D. 所有选项答案:D4. 以下哪一项不是软件维护的类型?A. 纠错性维护B. 适应性维护C. 完善性维护D. 开发性维护答案:D5. 软件项目管理的主要目标是()。
A. 提高软件质量B. 控制成本C. 缩短开发周期D. 所有选项答案:D6. 瀑布模型的主要缺点是()。
A. 缺乏灵活性B. 难以适应需求变化C. 无法并行开发D. 所有选项答案:D7. 敏捷开发方法的核心理念是()。
A. 以文档为中心B. 以人为中心C. 以过程为中心D. 以工具为中心答案:B8. 软件配置管理的主要目的是()。
A. 确保软件的一致性B. 跟踪软件的变更C. 控制软件的版本D. 所有选项答案:D9. 以下哪一项不是软件工程的原则?A. 抽象B. 模块化C. 复用D. 随机性答案:D10. 软件工程的目标是()。
A. 开发高质量的软件B. 提高软件生产率C. 降低软件成本D. 所有选项答案:D二、多项选择题(每题3分,共15分)1. 软件需求分析阶段可能包括以下哪些活动?A. 需求收集B. 需求分析C. 需求规格说明D. 需求验证答案:ABCD2. 软件测试的类型包括以下哪些?A. 单元测试B. 集成测试C. 系统测试D. 验收测试答案:ABCD3. 软件维护的常见原因包括以下哪些?A. 适应环境变化B. 修正软件缺陷C. 提高软件性能D. 增加新功能答案:ABCD4. 软件项目管理的关键活动包括以下哪些?A. 项目规划B. 项目监控C. 项目沟通D. 风险管理答案:ABCD5. 软件工程中的常见开发模型包括以下哪些?A. 瀑布模型B. 螺旋模型C. 敏捷模型D. 增量模型答案:ABCD三、判断题(每题2分,共10分)1. 软件工程的目标是开发出零缺陷的软件。
软件工程复习重点一、选择题1、软件工程三要素是指( B )P8A、技术、方法和工具B、方法、工具和过程C、方法、对象和类D、过程、模型、方法2、瀑布模型本质上是一种( A )。
P23A、线性顺序模型B、顺序迭代模型C、线性迭代模型D、及早见产品模型3、结构化设计是一种应用最广泛的系统设计方法,是以( B )为基础,自顶向下,求精和模块化的过程。
P79A、数据流B、数据流图C、数据库D、数据结构4、概要设计的任务是设计系统的( B物理模型)P70A、逻辑模型B、物理模型C、概念模型D、程序流程图5、描述软件结构的工具有( A模块结构图)A、模块结构图B、PAD图C、数据流程图D、程序6、进行需求分析可以使用多种工具,但( C )是不适用的。
A、数据流程图B、判定表C、PAD图(详细设计)D、数据字典7、可行性研究要进行的需求分析和设计应该是(C )。
A、详细的B、全面的C、简化的、压缩的D、彻底的8、软件生命周期由( C )三个时期组成。
A、概要设计、详细设计和系统实现B、可行性分析、系统设计和编码C、定义、开发和运行维护D、分析、设计和测试9、以下( D )不是模块。
对象是一个实体A、过程B、程序C、函数D、对象10、程序流程图、N-S图和PAD图是( B )使用的算法表达工具。
A、设计阶段的概要设计B、设计阶段的详细设计C、编码阶段D、测试阶段11、一个模块直接控制(调用)的下层模块的数目称为模块的( B扇出)P78A、扇入数B、扇出数C、宽度D、作用域12、下列工具哪一个是需求分析阶段常用工具?( D )A、PADB、PFDC、N-SD、DFD数据流程图需求分析常用的是数据流程图和数据字典13、为了提高测试的效率,应该( D)A、随机地选取测试数据B、取一切可能的输入数据作为测试数据库C、在完成编码后制定软件的测试计划D、选择发现错误可能性大的数据作为测试数据14、成功的测试是指( B发现程序的错误)A、运行测试实例后未发现错误项B、发现程序的错误C、证明程序正确D、改正程序的错误15、软件工程中只根据程序的功能说明而不关心程序内部的逻辑结构的测试方法,称为( C黑盒测试)测试。
⒈计算机软件开展的3个时期及其特点2.软件工程的定义软件工程的定义:采用工程的概念、原理、技术和法来方案、开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术法结合起来,以较经济的手段获得能在实际机器上运行的可靠软件的一系列法。
软件工程=工程技术+管理技术+技术法3.软件开发法的模型4.软件危机定义:是计算机软件在它的开发和维护过程中所遇到的一系列重问题5.软件危机主要包含问题:⑴如开发软件,怎样满足对软件日益增长的需求;⑵如维护数量不断膨胀的已有软件。
6.软件危机的原因:⑴客观:软件本身特点〔软件的规模庞大、复杂性高〕⑵主观:不正确的开发法,软件开发和维护有多错误的认识和作法。
〔无视需求分析;软件开发=程序编写;轻视软件维护〕7.软件危机的特征:软件价格在整个工程投入中的比例不断升高软件开发本钱重超标软件开发期大大超过规定日期软件质量难于保证软件修改,维护困难失败的根本原因在于:开发人员写出的东西达不到用户要求〔人的问题技术问题〕8.软件工程的原理:⒈用分阶段的生命期方案格管理不成功的软件工程中有一半左右是由于方案不造成的。
⒉坚持进展阶段评审软件的质量保证工作不能等到编码阶段完毕之后再进展。
⒊实行格的产品控制在软件开发过程中不应随意改变需求,因为改变一项需求往往需要付出较高的代价。
⒋采用现代程序设计技术采用先进的技术既可提高软件开发的效率,又可提高软件维护的效率。
⒌结果应能清楚地审查根据软件开发工程的总目标及完成期限,规定开发组织的责任和产品标准,从而使得所得到的结果能够清楚地审查。
⒍开发小组的人员应该少而精⒎成认不断改进软件工程实践的必要性不仅要积极主动地采纳新的软件技术,而且要注意不断总结经历。
9.软件生命期:软件定义,软件开发和运行维护10.常用的软件生存期模型有瀑布模型,演化模型,螺旋模型,增量模型,喷泉模型,快速应用开发〔RAD 〕模型。
11.软件过程分类及各类容:根本过程:生命期原动力支持过程:辅助根本过程执行组织过程:建立控制和改进生命期过程12. 软件过程的构造:建立一个公共过程框架,其中定义了少量可用于所有软件工程的框架活动给出各个活动的任务集合,使得框架活动能够活动能够适合于工程的特点和工程组的需求保护伞活动,如软件质量保证等,它们独立于任一个框架活动并将贯穿于整个过程13.软件工程包括三要素:法、工具和过程。
软件工程复习题(带答案)软件工程复习题一、单选题1、软件开发的结构化设计(SD)方法,全面指导模块划分的最重要原则应该是( c )A模块高内聚 B模块低耦合 C模块独立性 D程序模块化2、软件工程方法的提出起源于软件危机,而其目的应该是最终解决软件的什么问题?( D )A产生危机 B质量保证 C开发效率 D生产工程化3、软件工程开发的可行性研究是决定软件项目是否继续开发的关键,而可行性研究的结论主要相关于( A )A软件系统目标 B软件的性能C软件的功能 D软件的质量4、软件需求分析一般应确定的是用户对软件的( D )A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求5、软件测试是满足软件的功能和性能要求,保证软件正确性的措施,一般软件测试计划的制订应始于软件开发的哪个阶段? ( D )A.需求分析B.软件设计C.程序编码D.软件计划6、软件工程方法是在实践中不断发展的方法,而早期的软件工程方法主要是指( B )A.原型化方法B.结构化方法C.面向对象方法.D.功能分解法7、数据流图描述数据在软件中流动和被处理变换的过程,它是以图示的方法来表示,即.( A )A.软件模型B.软件功能C.软件结构D.软件加工8、软件工程学涉及到软件开发技术和工程管理两方面的内容,下述内容中哪一个不属于开发技术的范畴?(D)A.软件开发方法B.软件开发工具C.软件工程环境D.软件工程经济9、软件文档是软件工程实施中的重要成份,它不仅是软件开发的各阶段的重要依据,而且也影响软件的()A.可理解性B.可维护性C.可扩展性D.可靠性10、从( )语言开始,软件摆脱了对硬件的依赖。
A.第一代B.第二代C.第三代D.第四代11、在下面列出的基本成分中,哪个不是实体关系图的基本成分? ( )A.实体B.数据存储C.关系 D属性13、结构化程序设计主要强调程序的(C)A.效率B.速度C.可读性D.大小14、在软件工程中根据程序的功能说明,而不关心程序内部逻辑的测试方法为( A )A.黑盒法B.白盒法C.灰盒法D.综合法15、软件开发的结构化分析方法,常用的描述软件功能需求的工具有( C )A业务流程图,数据字典 B.软件流程图,模块说明C.数据流图,数据字典D.系统流程图,程序编码16、结构化程序设计思想的核心是要求程序只由顺序、循环和( A )三种结构组成。
一、选择1、文档是软件产品的一部分,没有文档的软件就不称其为软件。
对2、在需求分析过程中,分析员要从用户那里解决的最重要的问题是给该软件提供哪些信息。
错3、需求规格说明书在软件开发中具有重要的作用,它也可以作为软件可行性分析的依据。
错4、建立用例模型的步骤包括确定角色、确定用例和绘制用例图。
错5、数据流图建立系统的功能模型,它由数据流、加工和数据存贮组成。
错6、软件配置管理是一组标识、组织和控制修改源程序的活动。
错7、UML是一种直观化、明确化、构建和文档化软件产物的通用语言。
错8、好的测试是用少量的测试用例运行程序,发现被测程序尽可能多的错误。
对9、边界值分析方法是取输入/输出等价类的边界值作为测试用例。
对10、面向对象的分析是面向计算机系统建立软件系统的对象模型。
错11、(D)是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。
A 软件过程B 软件测试C 软件生存周期D 软件工程12、ISO9000是由ISO/TC176制定的关于(B)和质量保证的国际标准。
A 质量控制B 质量管理C 质量策划D 质量改进13、CMM提供了一个框架,将软件过程改进的进化步骤组织成5个成熟度等级。
除第1级外,每个等级都包含了实现该成熟度等级目标的若干(B)。
A 关键实践 B 关键过程域 C 软件过程能力 D 软件过程14、在软件开发的各种资源中,(D)是最重要的资源。
A 开发工具B 方法C 硬件环境D 人员15、软件的复杂性是(A),它引起人员通信困难、开发费用超支、开发时间超时等问题。
A 固有的B 人为的C 可消除的D 不可降低的16、在各种不同的软件需求中,(D)描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明。
A 业务需求B 功能需求C 非功能需求D 用户需求17、原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于(A)系统。
第一章练习题一、填空题1、软件工程三要素是:方法、工具、过程。
2、软件开发方法是指软件开发过程中所应遵循的方法和步骤。
二、名词(术语)解释:1、可靠性---是指在给定的时间间隔内,程序成功运行的概率。
可靠性是衡量软件质量的一个重要目标。
2、可理解性---指系统具有清晰的结构,能直接反映问题的需求。
可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植和重用。
三、问答题1、面向对象方法的优点是什么?答:(1)将现实世界问题向面向对象解空间直接映射,实现对现实世界的直接模拟。
(2)以数据为中心,而不是基于对功能的分解,使得软件结构相对稳定,软件的重用性、可靠性、可维护等特性都较好。
2、可视化开发方法的优点有哪些?答:(1)简化了图形用户界面的设计和编码工作,将开发的注意力主要集中在程序的执行逻辑和工作流程上。
(2)软件开发简单,易学、易上手。
(3)专业或非专业人员都能参与软件开发活动。
第二章练习题一、填空题:1、软件工程过程是:为获得软件产品,在软件工具支持下由软件人员完成的一系列软件工程活动。
2、一个软件从定义、开发、使用和维护,直到最终被废弃,所经历的生存过程经历的生存过程称为软件生存期或叫生命期。
3、软件生命周期的阶段划分为3个时期是:定义时期、开发时期、维护时期。
4、软件工程标准的5个层次是:国际标准、国家标准、行业标准、企业规范、项目规范。
二、简答题:1、瀑布模型的优点有哪些?答:1、强迫开发人员采用规范的技术方法;2、严格地规定了每个阶段必须提交的文档;3、每个阶段结束前必须正式进行严格的技术审查和管理复审。
2、瀑布模型的缺点是什么?答:1、在软件开发的初期阶段就要求做出正确、全面、完整的需求分析对许多应用软件来说是极其困难的。
2、在需求分析阶段,当需求确定后,无法及时验证需求是否正确、完整。
3、作为整体开发的瀑布模型,由于不支持产品的演化,缺乏灵活性,对开发过程中很难发现的错误,只有在最终产品运行时才能暴露出来,从而使软件产品难以维护。
1.某旅馆的电话服务如下:可以拨分机号和外线号码。
分机号是从7201至7299。
外线号码先拨9,然后是市话号码或长话号码。
长话号码是以区号和市话号码组成。
区号是从100到300中任意的数字串。
市话号码是以局号和分局号组成。
局号可以是455,466,888,552中任意一个号码。
分局号是任意长度为4的数字串。
要求:写出在数据字典中,电话号码的数据流条目的定义即组成。
电话号码=[分机号|外线号码]分机号=7201 (7299)外线号码=9+[市话号码|长话号码]长话号码=区号+市话号码区号=100 (300)市话号码=局号+分局号局号=[455|466|888|552]分局号=4{数字}4数字=[0|1|2|3|4|5|6|7|8|9]2.为以下程序流程图分别设计语句覆盖和判定覆盖测试用例,并标明程序执行路径。
(1)语句覆盖测试用例令x=2,y=0,z=4作为测试数据,程序执行路径为abcde。
(2)判定覆盖可以设计如下两组数据以满足判定覆盖:x=3,y=0,z=1(1分)(通过路径abce);x=2,y=1,z=2(1分)(通过路径acde)。
或者x=2,y=1,z=1;覆盖路径acdex=1,y=1,z=1;覆盖路径acex=3,y=0,z=1;覆盖路径abce(注意:本题也还可以有其他答案)3.请用判定表画出以下问题的行为逻辑。
人们往往根据天气情况决定出门时的行装。
天气可能下雨,也可能不下雨;下雨或不下雨天气可能变冷,也可能不变冷。
如果天气要下雨,出门时带上雨伞;如果天气变冷,4.对下列子程序进行调试:procedure example(y,z: real; var x: real)beginif (y>1) and (z=0) then x:=x/y;if (y=2) or (x>l) then x:=x+l;end.该子程序接受x, y, z的值,并将计算结果x的值返回给调用程序。
1.1
什么是软件工程?构成软件工程的主要要素是什么?影响软件工程技术进步的动力是什么?
①将系统的、规范的、可量化的方法应用于软件开发、运行、维护的过程
②包括①中的方法的研究
五要素:人、过程、项目、方法和工具、软件制品(红色字为方法学)
硬件能力、软件技术、社会需求和科学技术水平
1.2
阐述软件的正确性、可用性、可靠性、有效性、安全性、可维护性、可移植性和可复用性的概念,并指明这些概念的重要性。
正确性,软件满足需求规约和用户目标的程度
可用性,学习和使用软件的难易程度,包括操作软件、为软件输入数据、解释软件
输出结果等。
可靠性软件完成预期功能,成功运行的概率
有效性软件系统利用计算机的时间资源和空间资源完成系统功能的能力
1.10
阐述通用软件开发过程的五项活动,分析通用软件开发过程的优点。
通用软件过程模型用“沟通、策划、建模、构建、部署” 5项活动构建软件过程模型。
在软件项目管理等普适性活动的支持下进行软件开发,增强了软件的开发能力、突出了软件工程特色,具有较大的灵活性和适应性。
2.4
研究图2.1(课本60,61页)所示的面对对象的迭代式软件开发过程,描述在立项,初始,细化,构造和移交阶段分别可能使用哪些UML图形机制,为什么?
初始阶段
用例图描述软件需求
活动图表示业务处理过程
交互图表示用例内部实现过程
细化阶段
包图、构件图和部署图表示软件体系结构
构造阶段
类图交互图活动图状态图构件图
表示软件详细设计模型
移交阶段
部署图
3.1
以下陈述哪些是有效的用户需求?请说明理由。
答案:
⑴目标软件应该用java语言实现。
⑵软件系统必须在5秒内响应并处理外部事件
⑶目标软件应该由一些特定的模块构成。
⑷当目标软件与用户交互时,必须使用某些特定的菜单和对话框。
其中⑵,⑶,⑷项是用户的有效需求。
⑵是用户对系统性能的需求;⑶是用户对系统功能的需求;
⑷是用户对系统使用界面的需求。
而⑴是程序设计对计算机语言的需求,应该由系统设计人员提出,所以不是用户的有效需求。
3.2
下述语句哪些属于不精确的用户需求?对不精确的需求描述,给出相应的需求分析对策。
答案:
⑴系统应表现出良好的响应速度。
⑵系统必须用菜单驱动。
⑶在数据录入画面,应该有25个按钮。
⑷系统运行时占用的内存不得超过128KB。
⑸电梯应平稳运行
⑹即使系统崩溃,也不能损坏用户数据。
其中⑴,⑸,⑹是不精确的用户需求。
⑴应该指出:哪个功能要有速度响应要求,具体的数据是什么?⑸平稳运行的具体定义是什么?例如上升时具体要求抖动的参数不大于多少等等;⑹没有说明应该采取什么具体措施保护数据。
P74 3.1
构成需求工程过程的工作流
需求工程策划--需求获取--需求分析--需求规范化--需求验证--总结
用例驱动的需求获取过程(主要步骤)
1.定义软件问题
2.创建框架用例
3.精化用例
4.评审用例模型
需求分析的任务
需求分析的任务是在需求获取阶段的输出制品的基础上,获得对软件需求更深入、更完整的理解,并且将软件需求表示为面向软件设计人员、易于修改和维护的分析模型
用例驱动的需求分析过程的主要活动(P134)
(1)需求优先级分析
(2)用例分析
(3)分析模型评审
(4)为辅助需求分析而构建快速原型
P134
6.9软件设计应遵循哪些原则
抽象与逐步求精
强内聚及松耦合
信息隐藏及关注点分离
P172 6.4
构成软件设计过程的工作流
设计策划--体系结构设计--人机交互设计--详细设计--设计整合与验证--总结
P190 193
用户界面设计过程的主要活动P227
1.用户分析,任务分析及建模
2.概念设计
3.界面流设计
4.界面精化
详细设计过程的主要活动P239
1.用例设计
2.子系统设计
3.构件设计
4.类设计
5.数据模型设计
6.设计整合与验证
9.3 在面向对象的设计模型中,如何检查类图与顺序图之间的一致性?
首先把类图和顺序图形式化为本体,然后将规则法中定义的一致性规则转换为本体操作,通过在转换得到的本体上实施这些操作实现一致性检查。
12.3简述软件测试的任务和原则
任务
检查软件是否满足需求规约,并在软件制品交付前尽可能发现软件中潜伏的缺陷,减轻交付后软件改正性维护的开销。
原则
1.测试是一个持续进行的过程,而不是一个阶段。
2.测试一定有计划,受控制,并提供足够的时间和资源
3.测试应当分优先级
4.测试应当有重点
5.测试不是为了证明程序的正确性,而是为了证明不能工作
6.测试是不可能穷尽的,当测试充分性满足时就可以停止测试
7.测试是开发的朋友,不是开发的敌人
8.测试人员应公正地测试,如实地记录和报告缺陷
9.测试自动化能解决一部分问题,但不是全部。
10.测试不能仅仅包括功能性验证,还应包括性能、可靠性、可维护性和安全性等方面的验证
12.5何谓测试用例?一般包括哪些内容?
为测试设计的输入数据称为测试用例。
生成输入数据、程序执行条件、测试步骤和预期的输出
12.22“确认测试”应由谁完成,软件开发人员还是软件用户?说明理由。
答案:“确认测试”应由软件用户来完成,“确认测试”的目的是测试系统是否达到用户对功能的需求,性能的需求以及使用的需求,所以,“确认测试”应该主要由用户来完成。
12.24α测试与β测试有何差别?
答案:α测试是系统开发者进行的测试,用户不参与,主要是进行系统各项技术性能的测试;β测试是用户的测试,通常开发人员不在场,主要是对系统使用功能的测试。
α测试是指软件开发公司组织内部人员模拟各类用户行为对即将面市的软件制品进行测试,试图发现缺陷并改正。
β测试是指软件开发公司组织各方面的典型用户在日常工作中实际使用β版本,并要求用户报告异常情况,提出批评意见。
软件维护的分类
纠错性维护、完善性维护、适应性维护、预防性维护
13.7为何要进行软件逆向工程
在软件开发过程中使用逆向工程,因有全部开发文档和开发环境的支持,速度快、效率高,软件制品的质量能得到很好的保障。
13.8软件重构可能包括哪几个层次的工作
文档重构、重组、逆向工程、再工程。
试述用户界面设计应考虑的因素。
答:(1)可实用性。
要求使用简单,用户界面中所用术语的标准化和一致性,具有help功能。
快速的系统响应和低的系统成本,具有容错能力。
(2)灵活性。
考虑用户的特点,能力,知识水平;提供不同的系统响应时间,提供根据用户需求制定和修改界面,
(3)界面的复杂性与可靠性
14.画图题
类图,状态图,用例图,顺序图。
15.基本路径测试
步骤:标号--合并--画图--计算基本路径条数--分析
建立程序流图--确定基本路径集合--为基本路径设计测试用例。