软件工程习题及参考答案

合集下载

软件工程习题答案参考

软件工程习题答案参考

软件工程习题答案参考软件工程习题一:软件开发过程及其特点软件开发过程是指通过一系列的活动和任务,将软件需求转化为可运行的软件系统的过程。

软件工程师通过在这个过程中使用不同的方法和技术来确保软件系统的质量和可靠性。

下面是对软件开发过程中常见的几种模型及其特点的详细解答:1. 瀑布模型:瀑布模型是最早提出的软件开发过程模型之一。

它将软件开发过程划分为几个连续的阶段,包括需求分析、系统设计、编码、测试和维护。

这种模型的特点是每个阶段必须按序完成,并且每个阶段的输出成果是下一个阶段的输入。

瀑布模型适用于需求比较稳定且项目规模较小的软件开发。

2. 增量模型:增量模型是一种迭代的软件开发过程模型,它将软件开发过程分为多个增量,每个增量都可以独立开发、测试和交付。

每个增量都会增加软件系统的功能或性能。

增量模型适用于需求不明确或需求变化频繁的软件开发。

3. 原型模型:原型模型是通过与用户密切合作,迅速开发出一个初步的软件原型,然后根据用户的反馈和需求修改和改进原型,最终得到满足用户需求的软件系统。

原型模型适用于用户需求不确定或需要快速验证软件功能的情况。

4. 敏捷模型:敏捷模型是一种注重实践和团队合作的软件开发过程模型。

它强调通过频繁的迭代和交付来满足用户需求,并鼓励团队成员之间的沟通和合作。

敏捷开发适用于需求变化频繁或项目时间紧迫的软件开发。

总结来说,不同的软件开发过程模型适用于不同的项目和需求情况。

软件工程师在实际工作中需要根据项目的具体情况选择合适的开发过程模型,并结合各种软件开发方法和技术来确保软件系统的质量和可靠性。

软件工程习题二:软件需求分析与规格说明软件需求分析是软件开发过程中至关重要的一步,它涉及到对用户需求进行详细的调查和分析,以确定软件系统的功能和性能需求,并将其形式化为规格说明。

下面是对软件需求分析及规格说明的常见问题的解答:1. 需求获取:需求获取是指获取用户需求的过程。

常用的需求获取技术包括面谈、问卷调查、原型演示等。

软件工程课后习题参考答案

软件工程课后习题参考答案

软件工程课后习题参考答案软件工程课后习题参考答案1.简答题1.1 什么是软件工程?软件工程是一门研究和应用如何以系统化、规范化、可量化的方式开发和维护软件的学科,涉及到软件的设计、构建、测试、部署和维护等全生命周期的过程。

1.2 软件工程的目标是什么?软件工程的目标是提高软件开发过程的效率和质量,确保软件项目按时、按需求交付,并且能够满足用户的期望。

1.3 软件生命周期有哪些阶段?常见的软件生命周期包括需求分析、系统设计、详细设计、编码、测试、部署和维护等阶段。

1.4 什么是软件需求?软件需求是指对于软件系统所需满足的问题或需求的描述,包括功能需求、性能需求、接口需求等。

1.5 软件开发过程有哪些模型?常见的软件开发过程模型包括瀑布模型、迭代模型、螺旋模型、敏捷开发等。

2.客观题2.1 软件测试的目的是什么?a) 发现软件中的错误和缺陷b) 验证软件是否符合需求和规格c) 提高软件的可靠性和质量d) 以上皆是答案:d) 以上皆是2.2 瀑布模型的特点是什么?a) 瀑布模型是一种线性顺序的软件开发过程模型b) 各个开发阶段是相互独立的c) 开发过程按照需求分析、设计、编码、测试等顺序进行d) 以上皆是答案:d) 以上皆是2.3 敏捷开发的原则是什么?a) 个体和交互胜过流程和工具b) 可工作的软件胜过详尽的文档c) 客户合作胜过合同谈判d) 响应变化胜过遵循计划e) 以上皆是答案:e) 以上皆是3.计算题3.1 请计算以下代码的覆盖率:(假设代码行数为100行,已执行代码行数为80行)覆盖率 = 已执行代码行数 / 代码行数 100% = 80 / 100 100% = 80%3.2 请计算以下缺陷密度的值:(假设代码行数为1000行,代码中的缺陷数为10个)缺陷密度 = 缺陷数 / 代码行数 1000 = 10 / 1000 1000 = 103.3 请计算以下代码的复杂度:(假设代码中包含的判断语句有20个,循环语句有5个)复杂度 = 判断语句数 2 + 循环语句数 3 = 20 2 + 5 3 = 40 + 15 = 554.附件本文档涉及附件:无5.法律名词及注释本文涉及的法律名词及注释:无。

软件工程(习题与参考答案)

软件工程(习题与参考答案)

第1章概述(习题与参考答案)[判断题]1. 由于今天个人计算机不断发展壮大,人们不再采用软件团队的开发方式。

(×)2. 由于软件是产品,因此可以应用其他工程制品所用的技术进行生产。

(×)3. 购买大多数计算机系统所需的硬件比软件更昂贵。

(×)4. 大多数软件产品在其生命周期中不需要增强功能。

(×)5. 大多数软件系统是不容易变化的,除非它们在设计时考虑了变化。

(√)6. 一般来说,软件只有在其行为与设计者的目标一致的情况下才能成功。

(×)[选择题]1. ()因素促使计算机系统越来越复杂。

(D)A. 计算机内存和存储容量上的巨大增长B. 外部输入/输出选项的更加多样性C. 计算机体系结构方面的深刻变化D. 以上所有选项2. 下面的()不再是现代软件工程师关注的问题。

(A)A. 为什么计算机硬件的成本这么高?B. 为什么软件需要很长时间才能完成?C. 为什么开发一个软件的成本这么高?D. 为什么不能在产品发布前去除软件错误?3. 软件会逐渐退化而不会磨损,其原因在于()。

(C)A. 软件通常暴露在恶劣的环境下B. 软件错误通常发生在使用之后C. 不断的变更使组件接口之间引起错误D. 软件备件很难订购4. 大多数软件仍然是定制开发的,其原因在于()。

(C)A. 软件组件重用是十分普遍的B. 可重用的组件太昂贵而无法使用C. 软件在不使用其他组件的情况下很容易构造出来D. 商业组件在很多应用领域中可以得到5. 下面的()说法是正确的。

(C)A. 软件危机在20世纪70年代末期全面爆发B. 当前先进的软件工程方法已经解决了软件危机的问题C. 软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题D. 软件危机是指在软件产品中存在一系列的质量问题6. 软件工程的基本目标是()。

(B)A. 消除软件固有的复杂性B. 开发高质量的软件C. 努力发挥开发人员的创造性潜能D. 更好地维护正在使用的软件产品7. ()是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。

软件工程习题及参考答案

软件工程习题及参考答案

软件工程习题及参考答案判断题软件也会磨损和老化。

(某)完善性维护是提高或完善软件的性能。

(√)数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。

(某)软件是指用程序设计语言(如PASCAL,C,VISUALBASIC等)编写的程序,软件开发实际上就是编写程序代码。

(某)软件模块之间的耦合性越弱越好。

(√)如果通过软件测试没有发现错误,则说明软件是正确的。

(某)快速原型模型可以有效地适应用户需求的动态变化。

(√)模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。

(√)集成测试主要由用户来完成。

(某)确认测试计划应该在可行性研究阶段制定(某)白盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的功能即可。

(某)软件概要设计包括软件系统结构设计以及数据结构和数据库设计。

(√)软件工程采用的生存周期方法就是从时间角度对软件的开发和维护这个复杂问题进行分解,将软件生存的时期分为若干阶段。

(√)系统流程图表达的是部件的信息流程,还表示对信息进行加工处理的控制过程。

(╳)模块越多,开发成本越小。

(╳)软件测试的目的就是证明软件没有错。

(╳)PAD图在设置了五种基本的控制结构后,还允许递归使用。

(√)在进行了可行性分析后,需求分析就只需要解决目标系统的设计方案。

(某)SA法是面向数据流,建立在数据封闭原则上的需求分析方法。

(√)HIPO法既是需求分析方法,又是软件设计方法。

(√)在面向对象的需求分析方法中,建立动态模型是最主要的任务。

(某)加工小说明是对系统流程图中的加工进行说明。

(某)判定表的优点是容易转换为计算机实现,缺点是不能够描述组合条件。

(某)需求分析的主要方法有SD法、OOA法及HIPO法等。

(某)分层的DFD图可以用于可行性分析阶段,描述系统的物理结构。

(某)信息建模方法是从数据的角度来建立信息模型的,最常用的描述信息模型的方法是E-R图。

软件工程习题及答案

软件工程习题及答案

软件工程习题及答案软件工程是一门研究和应用如何以系统性、规范化、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。

以下是一些软件工程相关的习题及答案,希望能帮助您更好地理解这门学科。

一、选择题1、软件生存周期中,解决软件“做什么”的阶段是()A 需求分析B 软件设计C 软件实现D 软件测试答案:A解释:需求分析阶段的主要任务是确定软件系统的功能和性能要求,解决软件“做什么”的问题。

2、下面不属于软件设计阶段任务的是()A 软件总体结构设计B 算法设计C 制定测试计划D 数据库设计答案:C解释:制定测试计划属于软件测试阶段的任务,软件设计阶段主要包括总体结构设计、详细设计(如算法设计、数据库设计等)。

3、软件工程中,白盒测试法可用于测试程序的内部结构。

此方法将程序看作是()A 循环的集合B 地址的集合C 路径的集合D 目标的集合答案:C解释:白盒测试是把程序看成装在一个透明的白盒子里,也就是清楚了解程序的结构和处理过程,测试用例要覆盖程序中的所有可能路径。

4、软件维护工作中,大部分工作属于()A 改正性维护B 适应性维护C 完善性维护D 预防性维护答案:C解释:在软件维护工作中,完善性维护占了大部分,因为随着用户需求的变化和使用过程中的新发现,需要对软件功能进行扩充和增强。

二、填空题1、软件危机产生的主要原因是软件产品的_________和软件生产的_________之间的矛盾。

答案:复杂性;规模性解释:软件产品的复杂性不断增加,而软件生产的规模性又使得管理和控制变得困难,这两者之间的矛盾导致了软件危机。

2、结构化分析方法使用的主要工具是_________和_________。

答案:数据流图;数据字典解释:数据流图用于描述系统中数据的流动和处理过程,数据字典则对数据流图中的元素进行详细的定义和说明。

3、软件测试的步骤包括单元测试、_________、_________和系统测试。

软件工程第一二三章习题参考答案

软件工程第一二三章习题参考答案

第一章软件工程概述软件是计算机程序及其有关旳数据和文档旳结合。

软件危机是指在计算机软件开发和维护时所碰到旳一系列问题。

软件危机重要包括两方面旳问题: 一是怎样开发软件以满足对软件日益增长旳需求;二是怎样维护数量不停增长旳已经有软件。

软件工程是软件开发、运行、维护和引退旳系统措施。

软件工程是指导计算机软件开发和维护旳工程学科。

软件工程采用工程旳概念、原理、技术和措施来开发与维护软件。

软件工程旳目旳是实现软件旳优质高产。

软件工程学旳重要内容是软件开发技术和软件工程管理。

软件开发措施学是编制软件旳系统措施, 它确定软件开发旳各个阶段, 规定每一阶段旳活动、产品、验收旳环节和完毕准则。

常用旳软件开发措施有构造化措施、面向数据构造措施和面向对象措施等。

习题参照答案:1) 1. 什么是软件危机?为何会出现软件危机?2)答: 软件危机是指在计算机旳开发和维护过程中所碰到旳一系列严重问题。

这些问题决不仅仅是不能正常运行旳软件才具有旳, 实际上, 几乎所有软件都不一样程度地存在这些问题。

3)出现软件危机旳原因:首先与软件自身旳特点有关, 另首先也和软件开发与维护旳措施不对旳有关。

软件不一样于硬件, 它是计算机系统中逻辑件而不是物理部件。

管理和控制软件开发过程相称困难。

软件是规模庞大, 并且程序复杂性将伴随程序规模旳增长而呈指数上升。

目前相称多旳软件专业人员对软件开发和维护尚有不少糊涂观念, 在实践过程中或多或少地采用了错误旳措施和技术, 这是使软件问题发展成软件危机旳重要原因。

总结如下:4)获得对旳旳顾客需求和对旳地描述需求很困难5)开发人员对需求旳对旳理解也有困难6)常常在没有对旳理解之前就仓促开始编程7)软件项目缺乏有效旳组织、管理和内部交流8)缺乏软件开发措施、模型和工具旳支持9)软件维护旳困难性2. 假设你是一家软件企业旳总工程师, 当你把图1.1给手下旳软件工程师们观看, 告诉他们及早发现并改正错误旳重要性时, 有人不一样意你旳观点, 认为规定在错误进入软件之前就清除它们是不现实旳, 并举例说: “假如一种故障是编码错误导致旳, 那么, 一种人怎么能在设计阶段清除它呢?”你怎么反驳他?答: 在软件开发旳不一样阶段进行修改付出旳代价是很不相似旳, 在初期引入变动, 波及旳面较少, 因而代价也比较低;在开发旳中期, 软件配置旳许多成分已经完毕, 引入一种变动要对所有已完毕旳配置成分都做对应旳修改, 不仅工作量大, 并且逻辑上也更复杂, 因此付出旳代价剧增;在软件已经完毕时再引入变动, 当然付出旳代价更高。

软件工程习题附答案

软件工程习题附答案

软件工程习题附答案软件工程是一门研究和应用如何以系统性、规范化、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。

以下是一些软件工程的习题及答案,希望能帮助您更好地理解这门学科。

一、选择题1、软件生命周期中所花费用最多的阶段是()A 详细设计B 软件编码C 软件测试D 软件维护答案:D解析:软件维护阶段需要对软件进行修改、优化和修复,由于软件在使用过程中可能会遇到各种问题和需求变更,所以维护阶段通常会花费大量的时间和资源。

2、下面不属于软件工程的 3 个要素的是()A 工具B 过程C 方法D 环境答案:D解析:软件工程的三要素是方法、工具和过程。

方法为软件开发提供了“如何做”的技术;工具为方法的运用提供了自动的或半自动的软件支撑环境;过程是将方法和工具结合起来,以达到合理、及时地进行软件开发的目的。

3、软件可行性研究实质上是要进行一次()需求分析和设计过程。

A 简化、压缩的B 详细的C 彻底的D 深入的答案:A解析:可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决,其实质是进行一次简化、压缩的需求分析和设计过程。

4、软件测试的目的是()A 证明软件的正确性B 找出软件中的所有错误C 尽可能多地发现软件中的错误D 调试程序答案:C解析:软件测试的目的是尽可能多地发现软件中的错误,而不是证明软件的正确性,也不可能找出软件中的所有错误。

5、下面描述中,不符合结构化程序设计风格的是()A 使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑B 自顶向下C 注重提高程序的执行效率D 限制使用 goto 语句答案:C解析:结构化程序设计强调清晰的结构和良好的可读性,注重程序的可理解性和可维护性,而不是过于追求执行效率。

二、填空题1、软件生存周期一般可分为问题定义、可行性研究、()、设计、()、测试、运行与维护阶段。

软件工程习题与参考答案

软件工程习题与参考答案

软件⼯程习题与参考答案习题(第1章)1、简述下列术语:数据、数据元素、数据结构答:数据——在计算机系统中,把客观事物采⽤计算机进⾏识别、存储和加⼯所进⾏的描述,统称为数据。

数据元素——数据的基本单位成为数据元素,也称结点或记录等。

数据结构——是指相互有关联的数据元素的集合。

因此,⼀个数据结构既要反映数据元素的信息,还要反映数据元素之间的关系。

2、数据结构主要研究哪些内容?答:数据结构主要研究以下三⽅⾯的内容:(1)数据元素之间的逻辑关系是什么?(2)适宜选⽤什么存储结构进⾏存储?(3)采⽤什么样的操作实现算法效率更⾼?3、什么是数据的逻辑结构?逻辑结构主要分哪⼏种?答:逻辑结构——能反映数据元素之间的关系的数据组织。

逻辑结构主要分为两⼤类:线性结构和⾮线性结构4、什么是数据的存储结构?存储结构主要分哪⼏种?答:存储结构——反映数据在计算机中的存储⽅法。

⼜称物理结构。

11、设有编号1,2,3,4的四辆列车,顺序进⼊⼀个栈式结构的站台,具体写出这四辆列车开出站的所有可能的顺序。

答:堆栈具有“先进后出”或“后进先出”的特性,在出⼊过程中,可边进边出。

只要保证列车的进⼊先后顺序是1,2,3,4且出栈的总是栈顶元素就可以了。

因此,这四辆列车可能的出栈顺序有14种。

即1,2,3,4 1,2,4,3 1,3,4,2 1,3,2,4 1,4,3,22,1,3,4 2,1,4,3 2,3,4,1 2,3,1,4 2,4,3,13,2,1,4 3,4,2,1 3,2,4,14,3,2,114、对于下列稀疏矩阵A6*7=写出它的三元组表⽰法。

解:三元组表⽰法表⽰了稀疏矩阵中⾮零元的坐标和值。

注:i ——⾏下标,从1开始j ——列下标,从1开始v ——⾮零元素的值第⼀⾏数字表⽰整个稀疏矩阵的信息,即“6”⾏“7”列共“7”个⾮零元素15、设有下列三⾓矩阵A 4*4为A 4*4=A 4*4采⽤压缩存储⽅式存储于⼀维数据Sa 中,试求:(1)⼀维数组Sa 的元素个数;(2)矩阵元素a43在⼀维数据Sa 中的下标。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件工程习题及参考答案
一、选择题
1. 软件生命周期中,下列哪个阶段是用于定义软件系统的需求和规划开发工作的?
A. 需求分析阶段
B. 设计阶段
C. 实施阶段
D. 维护阶段
答案:A
2. 在敏捷软件开发方法中,以下哪个原则强调团队成员之间的密切合作和面对面沟通?
A. 满足客户
B. 可工作的软件
C. 另一种需求
D. 相互合作
答案:D
3. 下列哪个是迭代软件开发过程的特征之一?
A. 完全可预测
B. 单次交付
C. 线性顺序
D. 重复迭代
答案:D
4. 在软件工程中,以下哪个测试方法是通过检查软件源代码是否符合预定编码规范和标准来识别潜在问题?
A. 单元测试
B. 集成测试
C. 静态代码分析
D. 动态测试
答案:C
5. 以下哪种软件开发方法更加适合于大型复杂项目,其中需求和规范可能会发生变化的情况?
A. 瀑布模型
B. 增量模型
C. 原型模型
D. 敏捷模型
答案:D
二、填空题
1. 软件需求工程关注软件的_____________。

答案:需求
2. 敏捷开发方法注重_____________与_____________的灵活性。

答案:响应,变化
3. 需求分析阶段的主要目的是准确地定义_____________。

答案:软件系统需求
4. 软件测试是一种_____________过程,用于评估软件系统的质量和响应性。

答案:验证
5. 配置管理的目标是确保软件系统的_____________和
_____________。

答案:完整性,一致性
三、简答题
1. 请简要解释软件生命周期模型,并列举两个具体的软件生命周期模型。

答:软件生命周期模型是一种用于规划、开发和维护软件的框架,它描述了软件开发从需求分析到交付并进入维护阶段的全过程。

两个常见的软件生命周期模型包括:
- 瀑布模型:瀑布模型将软件开发过程分为一系列严格顺序的阶段,包括需求分析、设计、实施、测试和维护。

每个阶段都有明确定义的
输入和输出,阶段之间有严格的依赖关系。

- 敏捷模型:敏捷模型强调团队合作、面对面沟通和快速响应变化。

敏捷开发过程通过迭代和增量的方式进行,每个迭代周期内都会交付
可工作的软件。

2. 请简要解释软件配置管理的作用。

答:软件配置管理是一种对软件开发过程中的配置项进行控制和管
理的方法。

其主要作用包括:
- 确保软件系统的完整性和一致性:通过配置控制、版本管理和变
更管理等手段,确保软件系统的各个组成部分之间的一致性,并防止
意外的、未经授权的更改。

- 支持软件开发过程的协作和追溯:配置管理提供了对软件开发过
程的可视化跟踪和审计功能,有助于团队成员之间的协作与沟通,并
支持项目管理和风险控制。

- 管理和控制发布过程:配置管理确保软件发布的可追溯性和可控性,有助于识别和修复发布过程中的问题,提高软件交付的质量和稳
定性。

四、综合题
请结合自己的软件开发实践经验,谈谈在软件项目中进行需求分析
的重要性,并分享一些高效的需求分析方法。

答:需求分析在软件项目中起着至关重要的作用。

它涉及对用户需
求的深入了解和整理,其准确性和完整性对整个软件开发过程的成功
与否具有决定性影响。

以下是几个高效的需求分析方法:
1. 与用户密切合作:直接与用户进行面对面的沟通和访谈,确保对
用户需求有清晰的理解。

这样可以快速获取准确的需求信息,并在需
求分析的早期阶段发现和纠正潜在问题。

2. 使用用户故事:用户故事是用户对系统所期望的功能的简短描述。

通过用户故事,可以清晰地了解用户需求,并将其转化为实际软件开
发的任务。

3. 建立原型:通过建立可视化的原型,可以帮助用户更好地理解软
件系统的功能和界面,并提供及时的反馈。

原型可以作为需求验证的
一种手段,有助于减少后期修改的工作量。

4. 使用场景分析:通过对系统使用场景的分析,可以从用户使用的
角度来思考软件的功能和交互设计。

场景分析可以帮助识别用户的主
要需求和关键功能,有助于确保软件系统的实用性和用户体验。

综上所述,需求分析作为软件开发过程的关键环节,不仅需要采用
合适的方法和工具,更需要与用户密切合作,确保对用户需求有深入
的理解。

只有通过高效的需求分析,才能设计出满足用户期望的软件
系统。

相关文档
最新文档