软件工程课堂练习与参考答案

合集下载

软件工程课堂练习与参考答案

软件工程课堂练习与参考答案

软件工程课堂练习与参考答案课堂练习一、填空题1、软件的生存期包括:问题的定义、()、需要分析三个阶段。

2、可行性分析的内容包括:()、经济可行性、操作可行性和法律可行性。

3、模块独立性设计的标准是:模块化、抽象、()、和信息隐藏。

4、主程序员组由主程序员、()、后备程序员、编程秘书组成。

5、成本/效益分析目的是从()评价开发一个新的软件项目是否可行。

6、模块是由边界元素限定的()(例如,数据说明、可执行的语句等)的序列。

7、模块化就是把程序划分成()且可独立访问的模块。

8、人类在认识复杂现象的过程中使用的最强有力的思维工具是()。

9、人机界面的设计质量,直接影响用户对软件产品的评价,从而影响软件产品的竞争力和寿命,因此,必须对人机界面设计给以()。

10、质量保证是为保证产品和服务充分满足消费者要求的质量而进行的有计划、()的活动。

二、问答题1.简述需求分析的基本步骤。

2.有哪些常用的需求收集方法和技术?试选择某一系统并根据方法进行需求收集。

3.数据流图与数据词典之间有什么关系?4.试考察某一学生档案管理系统,用实体联系图描述该系统的主要数据。

5.试考察某一学生成绩管理系统,对其进行尽可能详细的功能建模和数据建模。

6.举例说明“做什么”与“怎么做”之间的差别。

7.某学校计算机教材购销系统有以下功能:学生买书,首先填写购书单,计算机根据各班学生用书表及售书登记表审查有效性。

若有效,计算机根据教材库存表进一步判断书库是否有书;若有书,计算机把领书单返回给学生,学生凭领书单到书库领书。

对脱销的教材,系统用缺书单的形式通知书库,新书购进库后,也由书库将进书通知返回给系统。

请就以上系统功能画出分层的DFD图(第三层只需画出销售子系统的DFD 图)。

参考答案一、填空题1、可行性分析2、技术可行性3、逐步求精4、程序员5、经济角度6、程序元素7、独立命名8、抽象9、足够重视 10、有组织二、问答题1.需求分析的基本步骤:1)获取用户需求2)分析用户需求3)编写需求文档4)评审需求文档5)管理需求2.需求收集方法和技术:1)跟班作业通过亲身参加业务工作来了解业务活动的情况。

软件工程习题附答案

软件工程习题附答案

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

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

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

2、下面不属于软件设计原则的是()A 抽象B 模块化C 自底向上D 信息隐藏答案:C解析:软件设计的原则通常包括抽象、模块化、信息隐藏等,自底向上一般不是软件设计的原则,常见的是自顶向下的设计方法。

3、软件测试的目的是()A 证明软件没有错误B 发现软件中的错误C 改正软件中的错误D 优化软件的性能答案:B解析:软件测试的目的是为了发现软件中存在的错误,而不是证明软件没有错误或直接改正错误、优化性能。

4、下列模型中,不属于软件生命周期模型的是()A 瀑布模型B 快速原型模型C 增量模型D 螺旋模型E 喷泉模型答案:E解析:瀑布模型、快速原型模型、增量模型和螺旋模型都属于常见的软件生命周期模型,喷泉模型则主要强调软件对象之间的无缝迭代。

5、软件维护中,因修改软件而导致出现新错误的维护属于()A 改正性维护B 适应性维护C 完善性维护D 预防性维护答案:A解析:改正性维护是指改正在系统开发阶段已发生而系统测试阶段尚未发现的错误。

在这种维护中,可能会因为修改软件而引入新的错误。

二、填空题1、软件工程包括()、()和()三个要素。

答案:方法、工具、过程2、软件需求分析阶段的工作,可以分为四个方面:()、()、()和()。

答案:需求获取、需求分析、编写需求规格说明书、需求评审3、软件测试的步骤主要包括()、()、()和()。

答案:单元测试、集成测试、系统测试、验收测试4、面向对象的三大特性是()、()和()。

软件工程习题及参考答案

软件工程习题及参考答案

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

软件工程练习题目及答案

软件工程练习题目及答案

软件工程练习题目及答案[正文]软件工程练习题目及答案一、软件需求工程1、题目:解释什么是软件需求工程?列出软件需求工程的主要活动。

答案:软件需求工程是一门软件工程学科,旨在定义和管理软件系统的需求。

它包括以下主要活动:1.1 需求获取:确定和收集用户和其他相关利益相关者的需求。

1.2 需求分析:对需求进行分析、组织和分类,以确保其完整性和一致性。

1.3 需求规格说明:将需求转化为规范化的文档,包括功能需求、非功能需求等。

1.4 需求验证:与用户和其他利益相关者确认需求的准确性和完整性。

1.5 需求管理:跟踪和控制需求的变化,确保其能够适应项目的变化。

2、题目:什么是需求?请将需求分类并解释每类需求。

答案:需求是指对软件系统的功能、性能、约束和限制等方面的描述。

需求可以分为如下几类:2.1 功能需求:描述系统应该具备的功能和行为,例如用户登录、数据查询等。

2.2 非功能需求:描述系统的性能要求、可靠性、安全性等方面的要求,例如响应时间、可用性等。

2.3 设计约束:描述对系统设计的限制,如使用特定的编程语言或框架。

2.4 约束条件:描述系统操作的限制和前提条件,如系统的运行环境和操作系统等。

二、软件设计和建模1、题目:什么是软件设计?软件设计的目标是什么?答案:软件设计是指定义软件系统的结构、组件和交互的过程。

软件设计的目标是实现软件需求,并确保软件的可靠性、可扩展性和可维护性。

2、题目:简述面向对象分析和设计方法。

答案:面向对象分析和设计是一种用来分析和设计软件系统的方法。

其核心思想是将系统分解为对象,通过对象之间的交互来实现系统功能。

2.1 面向对象分析(OOA):分析系统需求并识别出系统中的对象、对象的行为和它们之间的关系。

2.2 面向对象设计(OOD):基于面向对象分析的结果,设计系统的具体实现方式,定义对象的属性、方法和接口等。

三、软件测试1、题目:什么是软件测试?常见的软件测试方法。

答案:软件测试是指通过运行软件系统来评估其质量和功能的过程。

软件工程课后习题(含答案)

软件工程课后习题(含答案)

第一章练习题一、填空题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 测试与验证编写测试用例,包括正常情况和异常情况的输入,测试系统是否正确执行学生信息的增删改查操作,并验证结果是否正确。

2、软件设计2.1 模块划分将学生管理系统划分为以下模块:用户界面模块、数据存储模块、查询模块、修改模块、删除模块。

2.2 模块接口设计用户界面模块接收用户输入的学生信息,数据存储模块负责将学生信息存储到数据库中,查询、修改和删除模块通过调用数据库接口实现相应功能。

2.3 系统架构采用三层架构,将用户界面、业务逻辑和数据存储分离,提高代码的可维护性和可扩展性。

3、软件实现3.1 开发工具选择选择合适的开发工具,如Java编程语言、Eclipse开发环境和MySQL数据库。

3.2 编码规范遵循公司制定的编码规范,保证代码的可读性和一致性。

3.3 数据库设计设计学生信息表,包括学生ID、姓名、性别、年龄等字段,并建立适当的索引以提高查询性能。

4、软件测试4.1 单元测试针对每个模块编写相应的单元测试,确保模块的各个功能都能正常工作。

4.2 集成测试将各个模块按照设计要求进行集成测试,验证系统的功能完整性和正确性。

4.3 系统测试对整个学生管理系统进行全面的系统测试,包括正常场景和异常场景的测试,确保系统能够满足需求并稳定可靠。

5、软件部署5.1 环境准备部署系统所需的软件和硬件环境,包括操作系统、数据库等。

5.2 安装部署将开发完成的系统安装到目标机器上,配置必要的参数,确保系统能够正常运行。

5.3 系统发布将系统发布到生产环境,对外提供服务。

6、软件维护6.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.法律名词及注释本文涉及的法律名词及注释:无。

软件工程课后习题及其答案

软件工程课后习题及其答案

软件工程习题软件工程习题CH1一、填空题1、软件工程需要解决的问题包括:、软件工程需要解决的问题包括: 费用费用 、 可靠性可靠性 、 可维护性可维护性 、 生产率生产率 和 重用重用。

2、到目前为止,软件生产的发展经历了三个阶段,即 程序设计程序设计程序设计 、 程序系统程序系统和 软件工程件工程。

3、计算机科学中的研究曾国均可用于软件工程,计算机科学中的研究曾国均可用于软件工程,但计算机科学侧重于但计算机科学侧重于但计算机科学侧重于 原理和理论原理和理论,而软件工程侧重于软件工程侧重于 软件系统构造软件系统构造。

4、软件工程有用管理科学的方法和原理进行、软件工程有用管理科学的方法和原理进行 软件生产的管理软件生产的管理。

5、软件工程是用科学知识和技术原理来、软件工程是用科学知识和技术原理来 定义定义 、 开发开发 、 维护维护 软件的一门科学。

软件的一门科学。

软件的一门科学。

6、软件工程研究的主要内容包括软件开发技术和软件开发管理技术两个方面。

在软件开发技术方面,技术方面,主要研究主要研究主要研究 开发方法、开发方法、开发方法、 开发过程、开发过程、 开发工具开发工具。

在软件开发管理技术方面主要研究研究 管理学管理学管理学 、 经济学经济学经济学 、 心理学心理学心理学 。

7、作为一门交叉学科,软件工程具有很强的综合性,它涉及 计算机科学计算机科学计算机科学 、 工程科工程科学 、 管理科学管理科学管理科学 、 数学数学 等领域。

等领域。

8、软件生产周期是指一个软件从提出开发要求开始直到该软件报废为止的整个时期。

通常包括包括 问题定义、可行性研究问题定义、可行性研究 、需求分析、需求分析 、 总体设计总体设计总体设计 、 详细设计详细设计详细设计 、 编码编码 、测试测试 、 维护维护维护 等活动,可以将这些活动以适当方式分配到不同阶段去完成。

等活动,可以将这些活动以适当方式分配到不同阶段去完成。

软件工程课后参考答案完整版

软件工程课后参考答案完整版

软件工程课后参考答案 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】第一章课后参考答案1.什么是软件危机它们有哪些典型表现为什么会出现软件危机“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”。

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

它们有以下表现:(1)对软件开发成本和进度的估计常常很不准确;(2)用户对“已完成的”软件系统不满意的现象经常发生;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的文档资料;(6)软件成本在计算机系统总成本中所占的比例逐年上升;(7)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。

出现软件危机的主要原因(1)与软件本身的特点有关(2)与软件开发和维护过程中使用的方法不正确有关2.假设自己是一家软件公司的总工程师,当把图给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”时在引入变动,当然付出的代价更高。

一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。

3.什么是软件工程它有哪些本质特征怎么用软件工程消除软件危机软件工程是指导知道计算机软件开发和维护的一门工程学科。

采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。

(完整版)软件工程习题+答案(可编辑修改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)以上说法都不对。

软件工程习题及课后答案

软件工程习题及课后答案

第8章面向对象设计(习题与参考答案)[选择题]1. ()面向对象设计是在分析模型的基础上,运用面向对象技术生成软件实现环境下的设计模型。

A. 真B. 假2. ()系统设计的主要任务是细化分析模型,最终形成系统的设计模型。

A. 真B. 假3. ()关系数据库可以完全支持面向对象的概念,面向对象设计中的类可以直接对应到关系数据库中的表。

A. 真B. 假4. ()用户界面设计对于一个系统的成功是至关重要的,一个设计得很差的用户界面可能导致用户拒绝使用该系统。

A. 真B. 假5. 内聚表示一个模块()的程度,耦合表示一个模块()的程度。

A. 可以被更加细化B. 仅关注在一件事情上C. 能够适时地完成其功能D. 联接其他模块和外部世界6. 良好设计的特征是()。

A. 模块之间呈现高耦合B. 实现分析模型中的所有需求C. 包括所有组件的测试用例D. 提供软件的完整描述E. 选项B和DF. 选项B、C和D7. ()是选择合适的解决方案策略,并将系统划分成若干子系统,从而建立整个系统的体系结构;( )细化原有的分析对象,确定一些新的对象、对每一个子系统接口和类进行准确详细的说明。

A. 系统设计B. 对象设计C. 数据库设计D.用户界面设计8.下面的( )界面设计原则不允许用户保持对计算机交互的控制。

A. 允许交互中断B. 允许交互操作取消C. 对临时用户隐藏技术内部信息D.只提供一种规定的方法完成任务[练习题]1. 面向对象设计与面向对象分析的区别是什么?设计包括哪些活动? 答案要点:面向对象分析是重点考虑系统“做什么”的问题,即运用面向对象方法对问题域进行分析和理解,建立系统的分析模型;面向对象设计重点考虑系统“怎样做”的问题,即在分析模型的基础上形成实现环境下的设计模型。

面向对象设计主要涉及系统设计、对象设计(或详细设计)、数据库设计和用户界面设计等活动。

2. 3. 课程在类设计中,为什么建议使用set 方法和get 方法进行属性设置和读取? 答案要点:目的在于降低类之间的耦合度。

软件工程习题及答案

软件工程习题及答案

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

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

一、选择题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、软件测试的步骤包括单元测试、_________、_________和系统测试。

(完整word版)软件工程习题集+答案

(完整word版)软件工程习题集+答案

《软件工程》习题集目录一软件与软件工程 (1)二软件项目管理 (4)三需求分析 (7)四面向对象的需求分析 (10)五软件设计 (15)六程序设计语言和编码 (18)七软件测试 (20)八软件维护 (23)综合试卷一 (25)综合试卷二 (28)综合试卷三 (31)附参考答案: (34)一软件与软件工程参考答案 (34)二软件工程管理参考答案 (37)三需求分析参考答案 (39)四面向对象的需求分析参考答案 (43)五软件设计参考答案 (52)六程序设计语言和编码参考答案 (55)七软件测试参考答案 (59)八软件维护参考答案 (62)综合试卷一参考答案及评分标准 (65)综合试卷二参考答案及评分标准 (68)综合试卷三参考答案及评分标准 (71)一软件与软件工程一、选择题1.软件的主要特性是()A、无形性B、高成本C、包括程序和文档D、可独立构成计算机系统2.软件工程三要素是()A、技术、方法和工具B、方法、工具和过程C、方法、对象和类D、过程、模型、方法3.包含风险分析的软件工程模型是()A、螺旋模型B、瀑布模型C、增量模型D、喷泉模型4.软件工程的主要目标是()A、软件需求B、软件设计C、风险分析D、软件实现5.下列属于面向对象开发方法的是()A、BoochB、UMLC、CoadD、OMT6.软件危机的主要表现是()A、软件成本太高B、软件产品的质量低劣C、软件开发人员明显不足D、软件生产率低下7.软件开发方法的主要工作模型有()A、螺旋模型B、循环模型C、瀑布模型D、专家模型8.软件工程的目标有()A、易于维护B、低的开发成本C、高性能D、短的开发期9.软件工程学的目的和意义是()A、应用科学的方法和工程化的规范管理来指导软件开发。

B、克服软件危机。

C、作好软件开发的培训工作。

D、以较低的成本开发出高质量的软件。

二、判断题1.软件就是程序,编写软件就是编写程序。

2.瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。

《软件工程》题库及参考答案

《软件工程》题库及参考答案

《软件工程》练习测试题库一、单项选择题1.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做()A.软件工程B.软件周期C.软件危机D.软件产生2.研究开发所需要的成本和资源是属于可行性研究中的()研究的一方面。

A.技术可行性B.经济可行性C.社会可行性D.法律可行性3.IDEF0图不反映出系统()A.系统做什么B.系统功能如何实现C.系统由谁来做D.系统实现的约束条件4.模块的内聚性最高的是()A.逻辑内聚B.时间内聚C.偶然内聚D.功能内聚5.在SD方法中全面指导模块划分的最重要的原则是()A.程序模块化B.模块高内聚C.模块低耦合D.模块独立性6.软件详细设计主要采用的方法是()A.模块设计B.结构化设计C.PDL语言D.结构化程序设计7.下列关于JSP方法不正确的说法是()A.JSP方法主要用于规模不大的数据处理系统B.JSP方法不明确的划分软件概要设计和详细设计的两个阶段C.JSP方法适用于输入数据和输出数据之间有对应关系的问题求解D.JSP方法根据输入、输出的数据结构,按一定的规则映射成软件的体系结构。

因此它只适用于详细设计阶段8.不适合作为科学工程计算的语言是()A. PascalB. CC. FortranD. Prolog9.黑盒测试在设计测试用例时,主要需要研究()A.需求规格说明与概要设计说明B.详细设计说明C.项目开发计划D.概要设计说明与详细设计说明10.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。

设计这组测试用例的方法是()A.条件覆盖法B.等价分类法C.边界值分析法D.错误推测法11.下列属于维护阶段的文档是()A.软件规格说明B.用户操作手册C.软件问题报告D.软件测试分析报告12.快速原型模型的主要特点之一是()A.开发完毕才见到产品B.及早提供全部完整的软件产品C.开发完毕后才见到工作软件D.及早提供工作软件13.因计算机硬件和软件环境的变化而做出的修改软件的过程称为()A.较正性维护B.适应性维护C.完善性维护D.预防性维护14.类库这种机制是()级别的信息共享。

软件工程课后参考答案

软件工程课后参考答案

第一章课后参考答案1.什么是软件危机它们有哪些典型表现为什么会出现软件危机“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”;这些问题决不仅仅是不能正常运行的软件才具有的,实际上,几乎“所有软件”都不同程度地存在这些问题;它们有以下表现:1对软件开发成本和进度的估计常常很不准确;2用户对“已完成的”软件系统不满意的现象经常发生;3软件产品的质量往往靠不住;4软件常常是不可维护的;5软件通常没有适当的文档资料;6软件成本在计算机系统总成本中所占的比例逐年上升;7软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势;出现软件危机的主要原因1与软件本身的特点有关2与软件开发和维护过程中使用的方法不正确有关2.假设自己是一家软件公司的总工程师,当把图给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢”应该怎么反驳他答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”时在引入变动,当然付出的代价更高;一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误;3.什么是软件工程它有哪些本质特征怎么用软件工程消除软件危机软件工程是指导知道计算机软件开发和维护的一门工程学科;采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程;本质特征:(1)软件工程关注于大型软件的构造(2)软件工程的中心课题是控制复杂性(3)软件经常变化(4)开发软件的效率非常重要(5)和谐地合作是开发软件的关键(6)软件必须有效支持它的用户(7)在软件工程领域通常由一种文化背景的人替代具有另一种文化背景的人创造产品消除软件危机的原理:(1)用分阶段的生命周期计划严格管理(2)坚持进行阶段评审(3)实行严格的产品控制(4)采用现代程序设计技术(5)结果应能清楚地审查(6)开发小组的人员应该少而精(7)承认不断改进软件工程实践的必要性5.根据历史数据可以做出如下的假设:对计算机存储容量的需求大致按下面公式描述的趋势逐年增加:M=Y-1960,存储器的价格按下面公式描述的趋势逐年下降:P1=×美分/位,如果计算机字长为16位,则存储器价格下降的趋势为:P2=×美元/字,在上列公式中Y代表年份,M是存储容量字数,P1和P2代表价格;基于上述假设可以比较计算机硬件和软件成本的变化趋势;要求计算:1 在1985年对计算机存储容量的需求估计是多少如果字长为16位,这个存储器的价格是多少2 假设在1985年一名程序员每天可开发出10条指令,程序员的平均工资是每月4000美元;如果一条指令为一个字长,计算使存储器装满程序所需用的成本;3 假设在1995年存储器字长为32位,一名程序员每天可开发出30条指令,程序员的月平均工资为6000美元,重复1、2题;6什么是软件过程它与软件工程方法学有何关系软件过程是为了开发出高质量的软件产品所需完成的一系列任务的框架,它规定了完成各项任务的工作步骤;软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型;软件过程是软件工程方法学的3个重要组成部分之一;7.什么是软件生命周期模型试比较瀑布模型、快速模型、增量模型和螺旋模型的优缺点,说明每种模型的适用范围;通俗的说,简洁地描述软件过程的模型叫做软件生命周期模型,生命周期模型规定了把生命周期花费成哪些阶段及各个阶段执行的顺序;瀑布模型的优点:有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率;瀑布模型的缺点:1开发过程一般不能逆转,否则代价太大;2实际的项目开发很难严格按该模型进行;3客户往往很难清楚地给出所有的需求,而该模型却要求如此;4软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心;瀑布模型的使用范围:1用户的需求非常清楚全面,且在开发过程中没有或很少变化;2开发人员对软件的应用领域很熟悉;3用户的使用环境非常稳定;4开发工作对用户参与的要求很低;快速原型模型的优点:1可以得到比较良好的需求定义,容易适应需求的变化;2有利于开发与培训的同步;3开发费用低、开发周期短且对用户更友好;快速原型模型的缺点:1客户与开发者对原型理解不同;2 准确的比较困难;3 不利于开发人员的创新;快速原型模型的使用范围:1对所开发的领域比较熟悉而且有快速的原型开发工具;2项目招投标时,可以以原型模型作为软件的开发模型;3进行产品移植或升级时,或对已有产品原型进行客户化工作时,原型模型是非常适合的;增量模型的优点:1采用增量模型的优点是人员分配灵活,刚开始不用投入大量人力资源;2如果核心产品很受欢迎,则可增加人力实现下一个增量;3可先发布部分功能给客户,对客户起到镇静剂的作用;增量模型的缺点:1并行开发构件有可能遇到不能集成的风险,软件必须具备开放式的体系结构;2增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是的控制失去整体性;增量模型的使用范围:1进行已有产品升级或新版本开发,增量模型是非常适合的;2对完成期限严格要求的产品,可以使用增量模型;3对所开发的领域比较熟悉而且已有,增量模型也是非常适合的;螺旋模型的优点:1设计上的灵活性,可以在项目的各个阶段进行变更;2以小的分段来构建大型系统,使成本计算变得简单容易;3客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性;4 随着项目推进,客户始终掌握项目的最新信息 , 从而他或她能够和管理层有效地交互;螺旋模型的缺点:1采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失;2过多的迭代次数会增加开发成本,延迟提交时间;螺旋模型的使用范围:螺旋模型只适合于大规模的软件项目;8.为什么说喷泉模型较好地体现了面向对象软件开发过程无缝和迭代的特性由于在整个开发过程中都使用统一的软件概念“对象”,所有其他概念例如功能、关系、事件等都是围绕对象组成的,目的是保证分析工作中得到的信息不会丢失或改变,因此,对生命周期各个阶段的区分自然也就不重要了,不明显了;分析阶段的得到的对象模型也适用于设计阶段和实现阶段;由于各阶段都使用统一的概念和表示符号,因此,整个开发过程都是吻合一致的,或者说是“无缝”连接的,这自然也就很容易实现各个开发步骤的多次反复迭代,达到认识的逐步深化;所以说喷泉模型较好的体现了面向对象软件开发过程无缝和迭代的特性;第二章课后习题参考答案1、在软件开发的早期阶段为什么要进行可行性研究应从哪些方面研究目标系统的可行性1开发一个软件时,需要判断原定的系统模型和目标是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度,如果做不到这些,那么花费在这些工程上的任何时间、人力、软硬件资源和经费,都是无谓的浪费;可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决;2一般说来,至少应该从以下三个方面研究每种解法的可行性:a.技术可行性b.经济可行性c.操作可行性;2、为方便储户,某银行拟开发计算机储蓄系统;储户填写的存款单或取款单由业务员键入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算利息并打印出利息清单给储户;写出问题定义病画出此系统的数据流图;问题定义如下:如果是存款,储户填写存款单,然后交给业务员键入系统,同时系统还要记录存款人姓名、住址或号码、身份证号码、存款类型、存款日期、利率等信息,完成后由系统打印存款单给储户;如果是取款,储户填写取款单,然后交给业务员,业务员把取款金额输入系统并要求储户输入密码以确认身份,核对密码正确无误后系统计算利息并印出利息清单给储户;为了满足储户的需求,该系统需要迅速的对用户的要求做出反馈,要对用户输入的信息作出最快的处理,所以就需要很大的主存容量,以及强大的数据库支持;由于是所面向的用户是广泛的储蓄用户群,所以需要系统强大的安全性能支持;系统的分层数据流图如下:1、顶层数据流图2、中层数据流图3、底层数据流图3、某航空公司拟开发一个机票预定系统;旅行社把预订机票的旅客信息姓名、性别…等输入进该系统,系统为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统核对无误即印出机票给旅客;写出问题定义病画出此系统的数据流图;问题定义:某航空公司,售票工作人员每天手工处理旅客预订票、安排航班、取票和收款业务,工作量较大,需要工作人员多等,总之人工不易管理,手续繁琐;数据流图如下:1、顶层数据流图2、中间层数据流图3、底层数据流图4、住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察危重病人的病情变化,还会延误抢救时机;某医院打算开发一个以计算机为中心的患者监护系统,请分层次地画出描述本系统功能的数据流图;问题定义:本题要开发一个病人监护系统,实现对病人症状的自动监护,形成病人日志记录,减少人力的浪费; 在监控过程中,随时接受病人的生理信息脉搏、体温、血压、心电图,对病人的不正常生理信息超出医生规定的安全范围的信息发出警告,并向护士发出警告信息;护士还可以根据需要打印病人的病情报告;符号说明如下:F1-要求报告 F2-生理信号 F3-日期、时间F4-警告信息 F5-安全范围 F6-日志P1-接收信号 P2-分析信号 P3-产生警告P4-定时取样生理信号 P5-更新日志 P6-产生病情报告D1-患者日志 D2-患者安全范围 D3-生理信息E1-护士 E2-病人 E3-时钟方法一:方法二5、北京某高校可用的号码有以下几类:校内号码由4位数字组成,第1位数字不是0;校外又分为本市和外地两类,拨校外需先拨0,若是本市则再接着拨8位数字第1位不是0,若是外地则拨3位区码再拨8位号码第1位不是0;请用定义数据字典的方法,定义上述的号码;号码=校内号码|校外号码校内号码=非零数字+ 3 位数字 //后面继续定义校外号码=本市号码|外地号码本市号码=数字零+8位数字外地号码=数字零+3位数字+8位数字非零数字=1|2|3|4|5|6|7|8|9数字零=03位数字=3{数字}3 //3至3个数字8位数字=非零数字+7位数字7位数字=7{数字}7数字=0|1|2|3|4|5|6|7|8|9第三章课后参考答案1、为什么要进行需求分析通常对软件系统有哪些需求答:为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求,不论软件工程师把设计和编码工作做得如何出色,不能真正满足用户需求的程序只会令用户失望;需求分析的任务不是确定系统怎样完成它的工作,而是确定系统必须完成哪些工作,对目标系统提出完整、清晰、准确、具体的要求;只有这样深入理解了用户的需求,我们的工作才会有意义;对软件通常有以下需求:功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求、逆向需求、将来可能提出的要求;2、怎样与用户有效地沟通以获取用户的真实需求答:1访谈,访谈有两种基本形式,分别是正式的和非正式的访谈;2面向数据流自顶向下求精3简易的应用规格说明技术4快速建立软件原型3、银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、住址或号码、身份证号码、存款类型、存款日期、到期日期、利率及密码可选等信息,并印出存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户;用实体-联系图描绘系统中的数据对象;实体-联系图如下:本问题中共有三类实体,分别是“储户”和“储蓄所”及业务员,在它们之间存在“存取款”关系;因为一位储户可以在多家储蓄所存取款,一家储蓄所拥有多位储户,所以“存取款”是多对多M:N关系;储户的属性主要有姓名、住址、号码和身份证号码,储蓄所的属性主要是名称、地址和号码,存取款是联系,但它也有属性主要有数额、类型、到期日期、利率和密码;业务员的属性主要有编号,姓名,性别和号码;4、分析习题2第3题所述的机票预订系统,试用实体-联系图描述本系统中的数据对象;实体-联系图如下:–本问题中主要有三类实体,分别是“顾客”、“旅行社”、“飞机航班”–在它们之间存在的关系有:“顾客”和、“旅行社”有“代理”关系;因为一位顾客可以让多家旅行社代理,一家旅行社拥有多位顾客,所以“代理”是多对多M:N关系;“顾客”和“飞机航班”有“预定机票”关系,是一对一1:1关系;–顾客的属性主要有身份证号码、姓名、性别、工作单位、旅行时间、旅行目的地、联系;–旅行社的属性主要有编号,名称,地址,负责人,联系;–飞机航班的属性主要是航班号、起飞时间、目的地、到达时间;–“预定机票”关系的属性有票额即票价5、分析习题2第4题所述的患者监护系统,试用实体-联系图描述本系统中的数据对象,画出本系统的顶层IPO图;实体-联系图如下:本系统的顶层IPO图如下:6、复印机的工作过程大致如下:未接到复印命令时处于闲置状态,一旦接到复印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令;如果执行复印命令时发现没纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接收复印命令;如果复印时发生卡纸故障,则进入卡纸状态,发出警告等待维修人员来排除故障,故障排除后回到闲置状态;请用状态转换图描绘复印机的行为;从问题陈述可知,复印机的状态主要有“闲置”、“复印”、“缺纸”和“卡纸”;引起状态转换的事件主要是“复印命令”、“完成复印命令”、“发现缺纸”、“装满纸”、“发生卡纸故障”和“排除了卡纸故障”;第五章课后参考答案3、设计下列系统的软件结构1储蓄系统2-22机票预定系统2-33患者监护系统2-4参考答案:使用结构图表示1、1、储蓄系统2、机票预定系统3、患者监护系统4、美国某大学有200名教师,校方与教师工会刚刚签订一项协议;按照协议,所有年工资超过$26000含$26000 的教师工资将保持不变,年工资少于$26000的教师将增加工资,所增加工资数额按下述方法计算:给每位教师所赡养的人包括教师本人每年补助$100,此外,教师有一年工龄每年再多补助¥50,但是,增加后的年工资总额不能多于$26000;教师工资档案存储在行政办公室的磁带上,档案中有目前的年工资、赡养的人数、雇佣日期等信息;需要写一个程序计算并印出每名教师的原工资和调整后的新工资;要求:1画出此系统的数据流图;2写出需求说明;3设计上述的工资调整程序要求用HIPO图描绘设计结果,设计时分别采用两种算法,并比较两种算法的优缺点:a搜索工资档案数据,找出年工资少于$26000的人,计算新工资,校核是否超过$26000,存储新工资,印出新旧工资对照表;b把工资档案数据按工资从最低到最高的次序排序,当工资数额超过$26000时即停止排序,计算新工资,校核是否超过限额,存储新工资,印出结果;4你所画出的数据流图适应用那种算法1系统的数据流图2需求说明;经分析可知:本系统必须包括如下7个功能:导入原工资档案、输入调资标准、检索需调资工资数据、计算新工资、校核新工资、更新新工资数据、输出工资对照表包含数据:教师工资档案、工资标准3a第六章参考答案6-3 答:6-4答:6-5 答:136-7 答:6-8 答:17 -13 + 2 = 6。

软件工程第五版习题及答案

软件工程第五版习题及答案

软件工程第五版习题及答案《软件工程》(第五版)习题参考答案第1章一、判断题1、(×)软件的维护与硬件维护本质上是相同的。

2、(√)软件在运行和使用中也存在退化问题。

3、(×)软件危机的产生主要是因为程序设计人员使用了不适当的程序设计语言。

4、(√)软件同其他事物一样,有孕育、诞生、成长、成熟和衰亡的生存过程。

5、(×)文字处理软件Word属于系统软件。

应用软件6、(√)原型是软件的一个早期可运行的版本,它反映最终系统的部分重要特性。

7、(√)软件开发过程中,一个错误发现得越晚,为改正它所付出的代价就越大。

8、(×)快速原型模型对软件开发人员的水平要求不高。

9、(√)喷泉模型适合于面向对象的软件开发。

10、(×)面向对象开发方法的主要缺点是在适应需求变化方面不够灵活。

二、选择题1、软件是一种(C)。

A、程序B、数据C、逻辑产品D、物理产品2、软件开发方法是(A)。

A、指导软件开发的一系列规则和约定B、软件开发的步骤C、软件开发的技术D、软件开发的思想3、软件生存周期中花费最多的阶段是(D)。

A、详细设计B、软件编码(最少)C、软件测试D、软件维护4、软件工程的三要素不包括(D)。

A、工具B、过程C、方法D、环境5、在软件生存周期中,能准确地确定“软件系统必须做什么”的阶段是(D)。

A、总体设计B、详细设计(怎么做)C、可行性研究(能不能做)D、需求分析6、瀑布模型本质上是一种(A)模型。

A、线性顺序B、顺序迭代C、线性迭代D、能及早见到产品的7、瀑布模型突出的缺点是不适应(D)的变动。

A、算法B、程序语言C、平台D、用户需求8、在软件开发模型中,提出最早、应用最广泛的模型是(A)。

A、瀑布模型B、喷泉模型C、快速原型模型D、螺旋模型9、瀑布模型不适合用于(A)的软件开发。

A、需求模糊不清B、用户不能参与开发C、用户对计算机不了解D、开发人员对业务知识不熟悉10、快速原型的主要优点不包括(D)。

软件工程习题与参考答案

软件工程习题与参考答案

软件⼯程习题与参考答案习题(第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. 为了提高测试的效率,应该.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、1/6B、1/5C、1/4D、1/37. 变换型和事务型是程序结构的标准形式.从某处获得数据,再对这些数据作处理,然后将结果送出是属于.A、变换型B、事务型8. PAD〔Problem Analysis Diagram〕图是一种工具.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、概要B、抽象C、逻辑D、规划18. 结构化分析 SA 是软件开辟需求分析阶段所使用的方法,不是 SA 所使用的工具.A、DFD 图B、PAD 图C、结构化英语D、判定表19. 结构化分析方法以数据流图、和加工说明等描述工具,即用直观的图和简洁的语言来描述软件系统模型.A、DFD 图B、PAD 图C、IPO 图D、数据字典20. 模块本身的内聚是模块独立性的重要度量因素之一,在七类内聚中,具有最强内聚的一类是.A、顺序性内聚B、过程性内聚C、逻辑性内聚D、功能性内聚21. Jackson 设计方法是由英国的 M.Jackson 提出的,它是一种面向的设计方法.A、对象B、数据流C、数据结构D、控制结构22. 结构化程序设计思想的核心是要求程序只由顺序、循环和三种结构组成.A、分支B、单入口C、单出口D、有规则 GOTO23. 源程序的版面文档要求应有变量说明、适当注释和.A、框图B、统一书写格式C、修改记录D、编程日期24. 在软件工程中,软件测试的目的是.A、试验性运行软件B、发现软件错误C、证明软件是正确的D、找出软件中全部错误25. 在软件工程中,当前用于保证软件质量的主要技术手段还是.A、正确性证明B、测试C、自动程序设计D、符号证明26. 在软件工程中,高质量的文档标准是完整性、一致性和.A、统一性B、安全性C、无二义性D、组合性27. 在软件研究过程中,CASE 是.A、指计算机辅助系统工程B、CAD 和CAM 技术的发展动力C、正在实验室用的工具D、指计算机辅助软件工程28. 软件〔结构〕设计阶段文档是.A、系统模型说明书B、程序流程图C、系统功能说明书D、模块结构图和模块说明书29. 软件的维护指的是.A、对软件的改进、适应和完善B、维护正常运行C、配置新软件D、软件开辟期的一个阶段30. 逆向工程在软件工程中主要用于阶段.A、分析B、设计C、编码D、维护31. 软件工程中,只根据程序的功能说明而不关心程序内部逻辑的测试方法,称为测试.A、白盒法B、灰盒法C、黑盒法D、综合法32.阶段是软件生命期中花费最多,持续时间最长的阶段.A、需求分析B、维护C、设计D、测试33. 在可行性研究阶段,对系统所要求的功能、性能以与限制条件进行分析,确定是否能够构成一个满足要求的系统,这称为可行性.A、经济B、技术C、法律D、操作34. 结构化系统分析所得到的系统需求说明书中包含一组小说明.小说明是指对作进一步说明.A、数据流B、数据存储〔文件〕C、处理〔加工〕D、外部项〔源点终点〕35. 分层的数据流图中,父图与子图的平衡是指的平衡.A、处理B、数据存储C、外部项D、数据流36. 数据流图中,当数据流向或者流自数据存储时,. A、数据流要命名,数据存储不必命名B、数据流不必命名,数据存储要命名C、数据流和数据存储均应命名,因流进和流出的数据流可能不同D、数据流和数据存储都不必命名,因为从处理上可自然反映出来37. 结构化系统设计阶段的目的是.A、获得良好的软件结构B、获得可读性好的程序C、获得满足用户需求的数据流图D、获得高效的算法38. 要减少两模块之间的联系,则.A、两模块之间的调用次数要尽量少B、两模块之间直接传递的信息要尽量少C、两模块应使用尽可能相同的全局变量D、两模块应尽量共享相同的数据结构39. 在集成〔联合〕测试中,测试的主要目的是发现阶段的错误.A、软件计划B、需求分析C、设计D、编码40. 在验收测试时,测试所依据的文档是.A、可行性报告B、系统〔需求〕说明书C、模块说明书D、用户手册41. 在软件生存期的维护阶段,继续诊断和修正错误的过程称为.A、完善性维护B、适应性维护C、预防性维护D、改正性维护42. 软件的可移植性是衡量软件质量的重要标准之一.它指的是.A、一个软件版本升级的容易程度B、一个软件与其他软件交换信息的容易程度C、一个软件对软硬件环境要求得到满足的容易程度D、一个软件从一个计算机系统或者环境转移到另一个计算机系统或者环境的容易程度43. 软件生存周期是指阶段.A、软件开始使用到用户要求修改为止B、软件开始使用到被淘汰为止C、从开始编写程序到不能再使用为止D、从立项制定计划,进行需求分析到不能再使用为止44. 可行性研究的目的是用最小的代价,在最短的时间内确定问题是否可能解决和值得去解决,主要从三个方面进行.A、技术可行性、费用可行性、效益可行性B、经济可行性、技术可行性、机器可行性C、技术可行性、操作可行性、经济可行性D、费用可行性、机器可行性、操作可行性45. 数据流图是一种描述数据与其变换的图形表示,在数据流图上不允许浮现.A、数据流B、控制流C、文件D、加工46. 数据字典是软件需求分析阶段的重要工具之一,它的基本功能是.A、数据定义B、数据维护C、数据通讯D、数据库设计47. 事务型结构数据流图的特点是,将某一个加工的输入分解成并行的数据流,通过执行后面的加工.A、变换B、选择C、合并D、联接48. 如果一个模块要调用另一个模块,在下列几种方式中,采用方式的块间联系小.A、过程调用,传递控制参数B、过程调用,传递数据参数C、直接引用,共用控制信息D、直接引用,共用数据信息49. 软件的结构化设计方法是以为依据的模块结构设计方法.A、系统数据要求B、数据结构C、数据流图D、数据流50. 结构化设计〔SD〕是软件开辟中常用的方法,使用 SD 方法可以得到.A、程序流程图B、编程语言的源程序C、分层数据流图和数据字典D、模块结构图51. 在测试层次结构的大型软件时,有一种方法是从上层模块开始, 自顶向下进行测试,此时有必要用替代尚未测试过的下层模块.A、主模块B、桩模块C、驱动模块D、输出模块52. 联合〔集成〕测试可以由两种方式进行.A、模块测试、系统测试B、条件测试、非条件测试C、渐增式测试、非渐增式测试D、分析测试、验收测试53. 由于更新了操作系统而对软件进行的修改工作属于.A、修正性维护B、适应性维护C、完善性维护D、预防性维护54. 为保证软件质量,在软件生存周期的每一个阶段结束之前,都需要进行工作. A、制定计划 B、测试 C、审查 D、交接55. 模块内部联系最大的是.A、顺序内聚B、功能内聚C、通信内聚D、时间内聚56. 将以下 3 种耦合性由弱到强的顺序罗列,正确的是.A、控制耦合数据耦合公共耦合B、数据耦合公共耦合控制耦合C、公共耦合数据耦合控制耦合D、数据耦合控制耦合公共耦合57. 对某程序进行测试时,选择足够多的测试用例,使程序的每一个判定中条件的各种可能组合都至少浮现一次,这称为覆盖法.A、判定B、判定/条件C、条件D、条件组合58. 数据字典是对数据流图中浮现的组成元素定义的集合,它不包括条目.A、文件B、数据流C、加工D、I/O 参数59. 软件需求分析的内容是.A、确定开辟的软件应有哪些功能,应达到什么性能B、确定软件的开辟成本C、制定软件开辟的进度表D、确定软件的总体结构60. 在软件的设计阶段应提供的文档是.A、软件需求规格说明书B、概要设计规格说明书和详细设计规格说明书C、数据字典与数据流图D、源程序以与源程序的说明书61. 软件测试时,正确的测试次序是.A、模块测试,组装测试,确认测试B、模块测试,确认测试,组装测试C、组装测试,模块测试,确认测试D、确认测试,模块测试,组装测试62. 在软件维护阶段,若用户要求在程序中增加一个原来没有的联机匡助功能是属于.A、改正维护B、适应性维护C、完善性维护D、改正并适应性维护63. 程序流程图、 N-S 图和 PAD 图是使用的算法表达工具.A、设计阶段的概要设计B、设计阶段的详细设计C、编码阶段D、测试阶段64.软件的可维护性是指.A、软件的可理解程度,修改的难易程度B、软件文档修改的难易程度C、程序修改的难易程度D、使用维护工具进行维护的难易程度65.月收入≤800 元者免税,现用输入数 800 元和 801 元测试程序,则采用的是方法.A、边缘值分析B、条件覆盖C、错误猜测D、等价类66.采用黑盒法测试程序是根据.A、程序的逻辑B、程序的功能说明C、程序中的语句D、程序中的数据67.数据流图的小说明中描述的最基本部份是.A、激发条件B、加工逻辑C、优先级D、执行频率68.系统的茁壮性是指.A、系统能够正确地完成预期的功能B、系统能有效地使用计算机资源C、在有干扰或者输入数据不合理等意外情况下,系统仍能进行适当的工作 D、在任何情况下,系统均具有错误自修复功能69.软件工程学是应用科学理论和工程上的技术指导软件开辟的学科,其目的是.A、引入新技术提高空间利用率B、用较少的投资获得高质量的软件C、缩短研制周期扩大软件功能D、硬软件结合使系统面向应用70.不适于作为数据流图处理〔加工〕框名称的是.A、人工校核工资数据B、工资支票数据C、打印工资支票D、计算职工工资71.如果模块中所有成份引用共同的数据,该模块内的联系类型是.A、顺序内聚B、功能内聚C、通信内聚D、过程内聚72.某模块的功能是打印录取通知书或者不录取通知书,调用模块可通过向此模块传递布尔标志信息决定本次调用执行哪种通知书的打印.这种模块间的耦合称为.A、数据耦合B、混合耦合C、公共耦合D、控制耦合73.适应性维护的含义是所进行的维护.A、为使软件在改变了的环境下仍能使用B、为改正在开辟期产生、测试阶段没有发现、运行时浮现的错误C、为改善系统性能、扩充功能D、为软件的正常执行74.采用白盒法测试模块〔程序〕 ,应根据.A、内部逻辑结构B、算法复杂度C、外部功能特性D、支撑环境75.下列关于软件工程方面的叙述中,正确的说法是.A、软件的质量标准中,某些因素是不可兼得的B、数据词典包括数据流、文件、模块调用关系等三种条目C、测试过程即调试D、白盒法测试用例中,满足条件覆盖的一定满足判定覆盖76.程序编写〔实现〕阶段完成的文档有.A、详细设计说明书、模块开辟宗卷B、详细设计说明书、用户手册C、模块开辟宗卷、操作手册D、用户手册、操作手册77.软件总体结构的内容应在文档中阐明.A、软件需求规格说明书B、概要设计规格说明书C、详细设计规格说明书D、数据要求规格说明书78.使用结构化分析方法时,采用的基本手段是.A、分解和抽象B、分解和综合C、归纳与推导D、试探与回溯79.系统需求分析阶段的任务是分析系统的.A、数据要求B、功能要求C、性能要求D、A,B,C 三方面80.决定软件可维护性的主要因素可概括为.A、可测试性、可理解性、可修改性B、一致性、结构性、自我描述性C、可计测性、可访内性、可通讯性D、可扩充性、简洁性、结构性81.要减少两个模块之间的耦合,则必须.A、两个模块间的调用次数要少B、模块间传递的参数要少C、模块间传递的参数要少且不传递开关型参数D、模块间传递的参数要少且不传递开关型参数以与两模块不引用同样的全局变量82.软件开辟中系统分析阶段产生的文档是.A、数据流图B、系统说明书C、模块结构图和模块说明书D、数据字典83.初始化模块和结束模块从块内联系看,被称为模块.A、过程内聚B、功能内聚C、时间内聚D、逻辑内聚84.系统分析阶段的主要任务是分析系统的综合要求,其中对系统需要的存储量、茁壮性、完全性和联机系统的响应时间等方面的要求属于.A、环境要求B、功能要求C、性能要求D、运行要求85.结构化设计方法采用变换分析和事务分析技术实现.A、从数据结构导出程序结构B、从模块结构导出程序结构C、从模块结构导出数据结构D、从数据流图导出初始结构图86.在软件测试中,确认〔验收〕测试主要用于发现阶段的错误.A、软件计划B、需求分析C、软件设计D、编码87.软件维护阶段是软件生存周期中持续时间最长的阶段,它从时算起.A、产生可执行程序B、组装测试通过C、软件交付使用D、用户提出第一份维护报告88.结构化系统分析主要是通过进行分析的.A、算法分解B、控制结构分解C、数据结构分解D、处理功能分解89.结构化设计方法是面向的设计方法.A、过程B、对象C、数据流D、数据结构90.在结构化系统分析中,判定表和判定树常用于表达数据流图中的.A、加工B、数据流C、数据存储D、外部项91.下列耦合度表示中,最弱的耦合形式是.A、特征耦合B、公共耦合C、数据耦合D、控制耦合92.为软件系统今后的改进和发展打好基础而进行的维护工作称为.A、改正性维护B、适应性维护C、完善性维护D、预防性维护93.系统开辟的需求分析阶段的重要工作之一是.A、数据定义B、数据库设计C、数据维护D、数据结构实现94.一个模块直接控制〔调用〕的下层模块的数目称为模块的.A、扇人数B、扇出数C、宽度D、作用域95.下列所述的测试原则中,错误的是.A、应设计非法输入的测试用例B、测试用例要给出测试的预期结果C、因维护修改程序后需回归测试D、开辟小组应与测试小组合并96.某应用系统为今后的发展将单用户系统改为多用户系统,并形成新的应用软件,由此进行的维护工作称为.A、改正性维护和预防性维护B、适应性维护和完善性维护C、完善性维护和改正性维护D、预防性维护和适应性维护97.需求分析说明书不能作为.A、可行性研究的依据B、用户和开辟人员之间的合同C、系统概要设计的依据D、软件验收测试的依据98.如果,则称该模块具有功能内聚.A、模块包括单一功能B、模块包括若干功能,但所有功能相互密切相关C、每一个模块有单入口、单出口D、模块中每一个处理成份对应一个功能,它们密切结合99.如果一个排序程序所设定的测试用例为〔1〕表空〔2〕表中惟独一个元素〔3〕元素均有相同的关键字值〔4〕元素已排序则此测试方法称为.A、等价分类法B、边缘值分析法C、因果图法D、错误猜测法100.维护机构接受维护申请后,接下来的工作是.A、回归测试B、评价申请C、执行维护D、组织复审101.软件重用概念是指一个程序.A、被多次使用B、被循环使用C、被多个其他软件调用D、在不同环境下的多次重复使用102.面向对象分析时,所标识的对象为是错误的.A、与目标系统有关的物理实体B、与目标系统发生作用的人或者组织的角色 C、目标系统运行中需记忆的事件 D、目标系统中环境场所的状态103.在维护请求后进行的维护过程中,应先,然后对维护要求进行评估并分别处理.A、确定维护类型B、安排维护优先次序C、组织人员维护D、分析软件错误的严重程序104.划分软件生存周期的阶段时所应遵循的基本原则是.A、各阶段的任务尽可能相关B、各阶段的任务尽可能相对独立C、各阶段的任务在时间上连续D、各阶段的任务在时间上相对独立105.OOA模型规定了一组对象如何协同才干完成软件系统所指定的工作.这种协同在模型中是以表明对象通信方式的一组连接来表示的.A、消息B、记录C、数据D、属性106.用黑盒法设计测试用例时采用的方法包括.A、判定覆盖法B、条件覆盖法C、因果图法D、路径分析法107.软件维护过程中,将会引起维护副作用.A、修改代码或者数据后未作测试B、进行改正性维护时错误未全部改正C、进行完善性、适应性或者预防性维护时考虑因素不全面D、维护过程中发生系统运行错误108.Jackson 程序设计方法是一种面向的设计方法.A、数据结构B、数据流图C、IPO 图D、系统流程图109.下面所列的性质中,不属于面向对象程序设计的特性.A、继承性B、重用性C、封装性D、可视化110.普通来说,在管理软件中,软件生存周期各个阶段的工作量以所占的比例最大.A、需求分析与设计阶段B、编码实现阶段C、测试阶段D、维护阶段111.结构化系统分析中,处理逻辑可用描述.A、数据字典B、数据流图C、结构图D、结构化语言112.系统开辟人员使用系统流程图或者其他工具描述系统,估计每种方案的成本和效益的工作是在阶段进行的.A、需求分析B、总体设计C、详细设计D、编码阶段113.结构化设计方法采用变换分析和事务分析技术实现.A、从数据结构导出程序结构B、从数据流图导出初始结构图C、从模块结构导出数据结构D、从模块结构导程序结构114.设一模块内部的处理动作为:成份 A 的输出是成份 B 的输入,则该模块的聚合性称为.A、顺序聚合B、功能聚合C、过程聚合D、通信聚合115.某个模块的作用域是指.A、被该模块调用的所有模块B、调用该模块的所有模块C、与该模块相关联的所有模块D、受该模块内的判定所影响的所有模块116.在软件测试中,确认〔验收〕测试主要用于发现阶段的错误.A、软件计划B、需求分析C、软件设计D、编码117.如果按用户要求增加新功能或者修改已有的功能而进行的维护工作,称为. A、完善性维护 B、适应性维护 C、预防性维护 D、改正性维护118.软件维护阶段是软件生存周期中持续时间最长的阶段,它从时算起.A、产生可执行程序B、组装测试通过C、软件交付使用D、用户提出第一份维护报告119.软件质量因素中,是指软件产品能准确执行需求规格说明中所规定的任务.A、茁壮性B、正确性C、可扩充性D、精确性120.下列是面向对象设计方法中有关对象的叙述,其中是正确的.A、对象在内存中没有它的存储区B、对象的属性集合是它的特征表示C、对象的定义与程序中类型概念相当D、对象之间不能相互通信121.软件生成周期中,开辟期间包括阶段.A、软件计划、结构设计、测试和运行维护B、需求分析、概要设计、详细设计和编码C、结构设计、编码、测试和运行维护D、需求分析、结构设计、编码和测试122.结构化系统分析主要是通过进行分析的.A、算法分解B、控制结构分解C、数据结构分解D、处理功能分解123.下列不是模块化设计的目的.A、可采用结构化设计方法B、降低复杂度C、有利于信息隐蔽D、描述系统的功能与性能124.下面不属于结构化设计需解决的问题 X 围.A、确定系统应由哪些系统和模块组成B、模块以什么方式联结,接口如何C、如何编写结构程序D、如何以恰当方式表达系统的软件结构125.结构化设计方法是面向的设计方法.A、过程B、对象C、数据流D、数据结构126.下列耦合度表示中,最弱的耦合形式是.A、特征耦合B、公共耦合C、数据耦合D、控制耦合127.在结构化系统分析中,判定表和判定树常用于表达数据流图中的.A、加工B、数据流C、数据存储D、外部项128.全局数据结构的错误通常在中检查.A、单元测试B、有效性测试C、集成〔系统〕测试D、确认测试129.为软件系统今后改进和发展打好基础而进行的维护工作称为.A、改正性维护B、适应性维护C、完善性维护D、预防性维护130.下列系统设计工具中,不属于详细设计工具.A、N-S 图B、数据流图C、程序流程图D、PAD131.软件生存周期中,运行期的主要任务是.A、软件开辟B、软件维护C、版本更换D、功能扩充132.系统开辟的需求分析阶段的重要工作之一是.A、数据定义B、数据库设计C、数据维护D、数据结构实现133.下列叙述中,不属于数据字典的作用.A、作为编码阶段的描述工具B、为用户与开辟人员之间统一认识C、作为概要设计的依据D、为需求分析阶段定义各类条目134.一个模块直接控制〔调用〕的下层模块的数目称为模块的.A、扇入数B、扇出数C、宽度D、作用域135.模块内部的算法设计在结构化方法的阶段进行.A、系统分析B、概要设计C、详细设计D、编码〔实现〕136.在面向对象软件方法中,"类〞是.A、具有同类数据的对象的集合B、具有相同操作的对象的集合C、具有同类数据的对象的定义D、具有同类数据和相同操作的对象的定义137.编码〔实现〕阶段得到的程序段应该是.A、编辑完成的源程序B、编译〔或者汇编〕通过的可装配程序C、可交付使用的程序D、可运行程序138.下列所述的测试原则中,错误的是.A、应设计非法输入的测试用例B、测试用例要给出测试的预期结果C、因维护修改程序后需回归测试D、开辟小组与测试小组合并139.某应用系统为今后的发展将单用户系统改为用户系统,并形成新的应用软件,由此进行的维护工作称为.A、改正性维护和预防性维护B、适应性维护和完善性维护C、完善性维护和改正性维护D、预防性维护和适应性维护140.可维护性是软件的重要质量标准.下列措施与提高可维护性无关.A、提高程序效率B、强调程序设计风格化C、采用模块化程序设计方法D、采用结构化程序设计方法或者面向对象方法141.产生软件危机的原因有如下几点,除了.A、软件开辟过程未经审查B、软件开辟不分阶段,开辟人员没有明确的分工C、所开辟的软件,除了程序清单外,没有其他文档D、采用工程设计的方法开辟软件,不符合软件本身的特点142.需求分析说明书不能作为.A、可行性研究的依据B、用户和开辟人员之间的合同C、系统概要设计的依据D、软件验收测试的依据。

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

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

软件工程课后习题参考答案1.简述软件开发的本质答: 软件开发的本质就是实现问题空间的概念和处理逻辑到解空间的概念和处理逻辑之间的映射。

P192.简述实施软件开发的基本途径。

答: 实施软件开发的基本途径是系统建模。

所谓系统建模,是指运用所掌握的知识,通过抽象,给出该系统的一个结构——系统模型。

P193.简述何谓模型以及软件开发中所涉及的模型。

答: 模型是一个抽象。

该抽象是在意图所确定的角度和抽象层次对物理系统的一个描述,描述其中的成分和成分之间所具有的特定语义的关系,还包括对该系统边界的描述。

软件开发中所涉及的模型可分为两大类,一类称为概念模型,描述了系统是什么;另一类统称为软件模型,描述了实现概念模型的软件解决方案。

4.简述软件开发所涉及的两大类技术。

答: 软件开发所涉及的两大类技术为: 一是求解软件的开发逻辑,二是求解软件的开发手段。

5、简述需求与需求规约的基本性质。

答:需求的基本性质:1) 必要的,该需求是用户所要求的。

2) 无歧义的,该需求只能用一种方式解释。

3) 可测的,该需求是可进行测试的。

4) 可跟踪的,该需求可从一个开发阶段跟踪到另一个阶段。

5) 可测量的,该需求是可测量的。

需求规约的基本性质:1) 重要性和稳定性程度: 按需求的重要性和稳定性,对需求进行分级。

2) 可修改的: 在不过多地影响其他需求的前提下,可以容易地修改一个单一需求。

3)完整的:没有被遗漏的需求。

4)一致的:不存在互斥的需求。

6、简述软件需求的分类答:软件需求可以分为两大类:一类是功能需求,一类是非公能需求,而非公能需求可分为性能需求,外部接口需求、功能需求7、举例说明功能需求和非功能需求之间的基本关系。

答:非功能需求可作用于一个或多个功能需求,例如非功能需求可作用于一个或多个功能需求其中,非功能需求1作用于功能需求1和功能需求3等;非功能需求2作用于功能需求2等。

P248、有哪几种常用的初始需求发现技术?答:有5种常用的需求发现技术:自悟、交谈、观察、小组会和提炼。

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

一、填空题
1、软件的生存期包括:问题的定义、()、需要分析三个阶段。

2、可行性分析的内容包括:()、经济可行性、操作可行性和法律可行性。

3、模块独立性设计的标准是:模块化、抽象、()、和信息隐藏。

4、主程序员组由主程序员、()、后备程序员、编程秘书组成。

5、成本/效益分析目的是从()评价开发一个新的软件项目是否可行。

6、模块是由边界元素限定的()(例如,数据说明、可执行的语句等)的
序列。

7、模块化就是把程序划分成()且可独立访问的模块。

8、人类在认识复杂现象的过程中使用的最强有力的思维工具是()。

9、人机界面的设计质量,直接影响用户对软件产品的评价,从而影响软件产品的竞争力和寿命,因此,必须对人机界面设计给以()。

10、质量保证是为保证产品和服务充分满足消费者要求的质量而进行的有
计划、()的活动。

二、问答题
1. 简述需求分析的基本步骤。

2.有哪些常用的需求收集方法和技术?试选择某一系统并根据方法进行需求收集。

3.数据流图与数据词典之间有什么关系?
4.试考察某一学生档案管理系统,用实体联系图描述该系统的主要数据。

5.试考察某一学生成绩管理系统,对其进行尽可能详细的功能建模和数据建模。

6.举例说明“做什么”与“怎么做”之间的差别。

7.某学校计算机教材购销系统有以下功能:
学生买书,首先填写购书单,计算机根据各班学生用书表及售书登记表审查有效性。

若有效,计算机根据教材库存表进一步判断书库是否有书;若有书,计算机把领书单返回给学生,学生凭领书单到书库领书。

对脱销的教材,系统用缺书单的形式通知书库,新书购进库后,也由书库将进书通知返回给系统。

请就以上系统功能画出分层的DFD图(第三层只需画出销售子系统的DFD 图)。

参考答案
一、填空题
1、可行性分析
2、技术可行性
3、逐步求精
4、程序员
5、经济角度
6、程序元素
7、独立命名
8、抽象
9、足够重视 10、有组织
二、问答题
1.需求分析的基本步骤:
1)获取用户需求
2)分析用户需求
3)编写需求文档
4)评审需求文档
5)管理需求
2.需求收集方法和技术:
1)跟班作业
通过亲身参加业务工作来了解业务活动的情况。

这种方法可以比较准确地理解用户的需求,但比较耗费时间。

2)开调查会
通过与用户座谈来了解业务活动情况及用户需求。

座谈时,参加者之间可以相互启发。

3)请专人介绍
4)询问
对某些调查中的问题,可以找专人询问。

5)设计调查表,请用户填写
如果调查表设计得合理,这种方法是很有效的,也很易于为用户所接受。

6)查阅记录
即查阅与原系统有关的数据记录,包括原始单据、账簿、报表等。

比如:学生档案系统。

(1)跟班作业:需求分析人员和档案管理人员在一起工作,了解业务流程,咨询和记录业务活动。

(2)开调查会:约定时间和有关部门进行沟通,理解需求。

(3)请专业人员进行培训,讲解档案系统工作内容的方方面面。

(4)不清楚的时候,询问相关负责人或办理相关档案手续的人。

(5)根据前面的分析,设计合理的调查表,请用户填写。

(6)查询以前管理模式下的文档,数据记录。

比如学生档案表所涉及的内容。

相关需要打印的表等。

3.数据词典(Data Dictionary,简称DD)和数据流图密切配合,能清楚地表达数据处理的要求。

数据词典用于对数据流图中出现的所有成分给出定义,它使数据
流图上的数据流名字、加工名字和数据存贮名字具有确切的解释。

每一条解释就是一条词条,按一定的顺序将所有词条排列起来,就构成了数据词典,就像日常使用的英汉词典、新华词典一样。

数据流图(Data Flow Diagram,简称DFD) 是一种最常用的结构化分析工具,它从数据传递和加工角度,以图形的方式刻画系统内的数据运动情况。

实体联系图
5.略。

6.“做什么”是指一个系统必须完成的是什么功能,“如何做”是指系统为完成指定功能而应如何建立。

就是说,在一个模型中应能明确地区别出功能与实现间的差别。

比如:档案管理系统确定什么样的功能,再确定如何实现这样的功能。

比如有的系统需要网络查询功能,提供客户端浏览器访问,则使用B/S架构,有的系统仅供内部使用,可以提供客户端程序。

或者两者兼有的需求,则需同时提供2种系统设计。

还有根据做什么使用什么样的工具等等。

7. 教材购书系统的顶层数据流图(DFD)如下图所示:
教材购书系统的第二层数据流图如下图所示:
F2缺书登记录
销售子系统的第三层数据流图如下图所示:
F2缺书登记录。

相关文档
最新文档