软件工程 习题参考答案

合集下载

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

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

软件工程课后习题参考答案软件工程课后习题参考答案1. 第一章规约与软件工程概述1.1 规约的定义规约是软件开发过程中明确要求的描述,包含了对软件需求、设计、实现、测试、部署和维护等各个阶段的要求和约束。

1.2 软件工程的概述软件工程是一门涉及对软件的开发、运行和维护的学科。

它通过应用工程原则和方法,以系统化、规范化、可靠化、经济化和高质量的方式来开发和维护软件。

2. 第二章软件需求规约2.1 软件需求规约的作用软件需求规约是对软件系统所需功能和性能的具体描述和说明,是软件开发的基础和依据。

它指导着开发团队的工作,确保软件的功能和性能符合用户的需求。

2.2 软件需求规约的要素软件需求规约包括功能需求、非功能需求和约束条件。

功能需求描述了软件系统应该具备的功能,非功能需求描述了软件系统的性能要求和质量特性,约束条件描述了软件系统所受限制的条件。

3. 第三章软件设计规约3.1 软件设计规约的目标软件设计规约是对软件系统进行结构化和模块化设计的过程,其目标是确保软件系统具备可靠性、可维护性、可扩展性和可重用性。

3.2 软件设计规约的方法软件设计规约采用面向对象设计、结构化设计和模块化设计等方法。

面向对象设计强调将问题领域的概念和对象转化为软件系统的类和对象,结构化设计强调将系统分解为模块,模块化设计强调模块间的接口和通信。

4. 第四章软件实现规约4.1 软件实现规约的目的软件实现规约是指将软件设计阶段得到的设计规约转化为计算机可执行的程序代码,其目的是确保软件系统的正确性、可靠性、可维护性和可测试性。

4.2 软件实现规约的技术软件实现规约采用编程语言、软件开发工具和软件开发环境等技术。

编程语言提供了描述算法和数据结构的语法和语义,软件开发工具提供了代码编辑、编译、调试和测试等功能,软件开发环境提供了开发的整体支持。

5. 第五章软件测试规约5.1 软件测试规约的目的软件测试规约是对软件系统进行功能、性能和质量等方面的验证和检测,其目的是找出软件系统的错误和缺陷,并修复和改进。

软件工程学试题及答案

软件工程学试题及答案

软件工程学试题及答案一、单项选择题(每题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、软件工程三要素是:方法、工具、过程。

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.简答题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.4 什么是软件工程?怎样利用软件工程消除软件危机?
答:(1)软件工程是指导计算机软件开发和维护的一门学科 (2)首先应该对计算机软件有一个正确的认识,彻底清除“软件就是程序”
的错误观念;要使用好的开发技术和方法,并且要不断研究探索更好更有效的技 术和方法;要有良好的组织、严密的管理,各类人员要相互配合,共同完成任务, 充分认识软件开发不是某种个体劳动的神秘技巧;应该开发和使用好的软件工 具,从而有效提高软件生产率。采用“工程化”的思想做指导来解决软件研究中 面临的困难和混乱。
2.4 在【例 2.2】中,把投资改为 6000 元,每年节约金额改为 2000 元,年 利率为 6%,试计算投资回收期和纯收入。
解:如下表 年
将来值(元) (1+n*I)
1
2000
1.06
2
2000
1.12
3
2000
1.18
4
2000
1.24
5
2000
1.30
现在值(元) 累计的现在值 (元)
1886.79
答:(1)数据流图是 SA 方法中用于表示系统逻辑模型的一种工具。 (2)它描述系统由哪几部分组成,各部分之间的联系 等, 以直观的图
哪些方面需要改进。 符合主流的发展;快速
反复改进,最终建立 建 立 起 来 的 系 统 结 构
完全符合用户需求 加上连续的修改可能
的新系统。克服瀑布 会导致产品质量低下。
模型的缺点,减少由
于软件需求不明确
带来的开发风险。这
种模型适合预先不
能确切定义需求的
软件系统的开发。
有较大的灵活性。能 够在较短的时间内 向用户提交一些有 用的工作产品。开发 出一部分,向用户展 示一部分,可让用户

软件工程习题及参考答案

软件工程习题及参考答案

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(完整版)软件工程习题+答案(可编辑修改word版)

(完整版)软件工程习题+答案(可编辑修改word版)

一、选择题1.软件开发瀑布模型中的软件定义时期各个阶段依次是:(B)A)可行性研究,问题定义,需求分析。

B)问题定义,可行性研究,需求分析。

C)可行性研究,需求分析,问题定义。

D)以上顺序都不对。

(软件开发时期:概要设计、详细设计、软件实现、软件测试)2.可行性研究主要从以下几个方面进行研究:(A)A)技术可行性,经济可行性,操作可行性。

B)技术可行性,经济可行性,系统可行性。

C)经济可行性,系统可行性,操作可行性。

D)经济可行性,系统可行性,时间可行性。

3.耦合是对软件不同模块之间互连程度的度量。

各种耦合按从强到弱排列如下:(C)A)内容耦合,控制耦合,数据耦合,公共环境耦合。

B)内容耦合,控制耦合,公共环境耦合,数据耦合。

C)内容耦合,公共环境耦合,控制耦合,数据耦合。

(内容耦合、公共耦合、外部耦合、控制耦合、特征耦合、数据耦合)D)控制耦合,内容耦合,数据耦合,公共环境耦合。

4.在详细设计阶段所使用到的设计工具是:(C )A)程序流程图,PAD 图,N-S 图,HIPO 图,判定表,判定树.B)数据流程图,Yourdon 图,程序流程图,PAD 图,N-S 图,HIPO 图。

C)判定表,判定树,PDL,程序流程图,PAD 图,N-S 图。

D)判定表,判定树,数据流程图,系统流程图,程序流程图,层次图。

详细设计阶段工具:判定表、判定树、数据流程图、系统流程图、程序流程图、PAD 图、N-S 图、PDL在软件详细设计阶段,常用的图形描述工具有程序流程图,盒图(NS 图)和问题分析图(PAD) .常用的语言描述工具为 PDL(程序设计语言) ,常用的表格描述工具有判定表和判定树.DFD 数据流图:总体设计阶段5.按照软件工程的原则,模块的作用域和模块的控制域之间的关系是:(A)A)模块的作用域应在模块的控制域之内。

B)模块的控制域应在模块的作用域之内。

C)模块的控制域与模块的作用域互相独立。

D)以上说法都不对。

软件工程习题(附答案)

软件工程习题(附答案)

软件工程习题(附答案)软件工程习题(附答案)1.概述1.1 介绍本文档是一份软件工程习题文档,包含了一系列关于软件工程的习题及其对应的答案。

这些习题涵盖了软件工程的各个方面,旨在帮助读者巩固和扩展自己的软件工程知识。

1.2 目的本文档的目的是提供一份全面而详细的习题文档,供软件工程学习者参考和学习。

每个习题都配有答案,以便读者可以自行对比答案和解答过程,提高自己的理解和运用能力。

2.软件需求工程2.1 需求获取2.1.1 什么是需求获取?为什么它在软件工程中非常重要?答案:需求获取是指在软件开发过程中,获取并理解用户对软件系统所需功能和约束的过程。

它在软件工程中非常重要,因为一个完整、清晰、准确的需求基础是成功软件开发的关键,它直接影响着软件系统的功能、性能和质量。

2.1.2 几种常见的需求获取方法。

答案:常见的需求获取方法包括面谈、问卷调查、观察、原型展示等。

2.2 需求分析与规格2.2.1 什么是需求分析?它的目标是什么?答案:需求分析是指对需求进行深入的分析和理解,以确定需求的准确性、完整性和一致性。

它的目标是明确系统需求,并将其规格化,为软件开发提供指导和依据。

2.2.2 需求分析的主要步骤有哪些?答案:需求分析的主要步骤包括需求获取与识别、需求验证与确认、需求排序与组织、需求规格化等。

3.软件设计3.1 结构化设计3.1.1 什么是结构化设计?答案:结构化设计是指将系统进行层次化和模块化分解,定义各个模块之间的接口和关系,从而使系统具有更好的可维护性、可扩展性和可重用性。

3.1.2 结构化设计的原则有哪些?答案:结构化设计的原则包括模块化原则、信息隐藏原则、高内聚低耦合原则等。

3.2 面向对象设计3.2.1 什么是面向对象设计?答案:面向对象设计是一种基于对象的思维方式,将系统分解为各个独立的对象,通过对象之间的交互和协作来实现系统的功能。

3.2.2 面向对象设计的主要特点是什么?答案:面向对象设计的主要特点包括封装、继承、多态等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.3 什么是软件危机?它有哪些主要表现?为什么会产生软件危机?
答:(1)软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重 问题。 (2)主要表现:对软件开发成本和研制进度的估计常常很不精确,导致经费 预算经常突破,进度超时完成;由于开发人员常常对用户需求只有模糊的了 解以及开发人员和用户又未能及时交换意见,导致已完成的软件不能满足用 户的需要;软件产品质量差,可靠性得不到保证;软件产品可维护性差;软 件成本在计算机系统总成本中所占的比例逐年上升,软件的发展跟不上硬件 的发展;软件开发生产率提高的速度远远跟不上计算机应用速度普及深入趋 势,软件发展跟不上用户的要求。 (3)产生软件危机的原因:造成软件危机的原因与软件自身的特点有关,也 与软件开发人员在开发和维护时采用的生产方式、方法、技术有关。软件是 计算机系统中的逻辑部件,软件产品往往规模庞大,结构复杂。给软件的开 发和维护带来客观的困难;软件开发的管理困难。由于软件规模大、结构复 杂、又具有无形性,导致管理困难,进度控制困难,可靠性无法保证;软件 开发费用不断增加,维护费用急剧上升,直接威胁计算机应用的扩大;软件 开发技术落后;生产方式落后;开发工具落后,生产效率提高缓慢。另外软 件开发人员忽视需求分析的重要性,轻视软件维护也是造成软件危机的原 因。
哪些方面需要改进。 符合主流的发展;快速
反复改进,最终建立 建 立 起 来 的 系 统 结 构
完全符合用户需求 加上连续的修改可能
的新系统。克服瀑布 会导致产品质量低下。
模型的缺点,减少由
于软件需求不明确
带来的开发风险。这
种模型适合预先不
能确切定义需求的
软件系统的开发。
有较大的灵活性。能 够在较短的时间内 向用户提交一些有 用的工作产品。开发 出一部分,向用户展 示一部分,可让用户
各个构件是逐渐并入 已有的软件体系结构 中的,所以加入构件必 须不破坏已构造好的 系统部分,冒所有构件 集成不到一起的风险。
及早看到部分软件,
及早发现问题。整个
系统是由一个个构
件集成在一起的,当
需求变更时只变更
部分部件,而不必影
响整个系统。
加入了瀑布模型与 增量模型都忽略了 的风险分析,使用原 型及其他方法来尽 量降低风险
只有当分析员能够做 出准确的需求分析时, 才能得到预期的正确 结果。它是一种理想的 线性开发模式,缺乏灵 活性,特别是无法解决 软件需求不明确或不 准确的问题。
通过实践让用户了 在实际中开发原型系
解未来目标系统的 统使用的语言效率有
概貌,以便判断哪些 时会很低,所选用的开
功能是符合需要的, 发 技 术 和 工 具 不 一 定
1.5 何谓面向对象软件工程?简述它和传统软件工程的区别与联系?
答:(1)以面向对象程序设计为基础的软件工程。 (2)传统软件工程是以结构化程序设计为基础,而面向对象软件工程是以面
向对象程序设计为基础。与面向过程的软件工程的开发思想相比,面向对象开发 方法不再是以功能划分为导向,而是以对象作为整个问题分析的中心,围绕对象 展开系统的分析与设计工作。在开发过程方面,面向对象软件工程和传统软件工 程一样也是把软件开发划分为分析、设计、编码和测试等几个阶段,但各个阶段 的具体工作不同,除了在编码阶段使用的语言不同外,面向对象软件工程为待开 发软件确定“类与对象”一般在需求分析阶段进行,设计阶段则主要完成对象内 部的详细设计;而在传统软件工程中,将软件设计划分为“总体设计”和“详细 设计”,分别完成软件的总体结构图的设计和各个模块内部算法的详细设计。即: 传统软件工程开发过程包括需求分析、总体设计、详细设计、面向过程的编码和 测试;面向对象软件工程开发过程包括需求分析与对象抽取、对象详细设计、面 向对象的编码和测试。
1.4 什么是软件工程?怎样利用软件工程消除软件危机?
答:(1)软件工程是指导计算机软件开发和维护的一门学科 (2)首先应该对计算机软件有一个正确的认识,彻底清除“软件就是程序”
的错误观念;要使用好的开发技术和方法,并且要不断研究探索更好更有效的技 术和方法;要有良好的组织、严密的管理,各类人员要相互配合,共同完成任务, 充分认识软件开发不是某种个体劳动的神秘技巧;应该开发和使用好的软件工 具,从而有效提高软件生产率。采用“工程化”的思想做指导来解决软件研究中 面临的困难和混乱。
该模型需要有相当丰 富的风险评估经验和 这方面的专门技术,这 使该模型的应用受到 一定限制。
适用范围 适合于需求很明 确的软件项目开 发的模型,对 于 经常变化的项 目而言,瀑布模 型毫无价值。
适合于一些需求 可变、模糊不定 的软件系统的开 发
适合于软件要求 不明确,设计方 案有一定风险的 软件项目。
第一章
1.1 什么是软件?软件和程序的区别是什么?
答:⑴软件是程序、数据以及开发、使用和维护程序需要的所有文档的完整集合。 软件的定义是:计算机程序、方法、规则、相关的文档资料以及在计算机上运 行程序时所必须的数据。 ⑵软件不是程序,程序是软件的一部分。程序是为了解决某个特定问题而用程 序设计语言描述的适合计算机处理的语句序列。它是由软件开发人员设计和编 码的。程序执行时一般要输入一定的数据,也会输出运行的结果。没有相关文 档,仅有程序是不能称之为软件产品的。
1.6 什么是软件生存周期模型?试比较本章介绍的四种模型的优缺点,说明每种
模型的使用范围
答:(1) 软件生存周期模型即为软件开发模型,是描述软件开发过程中各种活 动如何执行的模型,是软件过程、活动、任务的结构框架。
瀑布模型 快速原型 模型
增量模型
螺旋模型Biblioteka 优点缺点能清晰直观地表达 软件开发全过程,明 确规定要完成的主 要活动和任务,用来 作为软件项目工作 的基础。
1.2 什么是软件生存周期?划分生存周期的主要原则是什么?
答:(1)软件的生存周期是指某一软件项目被提出并着手实现开始,直到该软 件报废或停止使用为止所经历的时间。 (2)主要原则:各阶段的任务彼此间尽可能相对独立,同一个阶段各项任务 的性质尽可能相同,从而降低每个阶段任务的复杂性,简化不同阶段之间的 联系,有利于软件开发过程的组织管理。
相关文档
最新文档