软件工程(自编教材)-习题答案

合集下载

《软件工程》各章课后习题答案

《软件工程》各章课后习题答案

《软件工程》各章课后习题答案软件工程是计算机科学与技术的一门重要学科,旨在研究和应用工程原则和方法来开发高质量的软件系统。

课程中的习题对于加深学生对软件工程理论和实践的理解至关重要。

下面是对《软件工程》各章课后习题的答案,希望能够帮助你更好地掌握软件工程的知识。

第一章:软件工程导论1. 软件工程的定义:答:软件工程是通过应用系统化、规范化和可量化的方法进行软件开发、运行和维护的学科。

2. 软件工程的目标:答:软件工程的目标是提高软件开发的质量、效率和可靠性,使得软件能够满足用户的需求和期望。

3. 软件生命周期模型:答:常见的软件生命周期模型包括瀑布模型、迭代模型、敏捷模型等。

每个模型都有其独特的特点和适用场景。

4. 软件过程模型:答:软件过程模型描述了软件开发过程中的一系列活动和阶段,常见的软件过程模型包括瀑布模型、迭代模型、敏捷模型等。

5. 软件工程的基本原则:答:常见的软件工程基本原则包括分阶段、逐步求精、持续集成、迭代开发、需求优先等。

第二章:软件项目管理1. 软件项目管理的定义:答:软件项目管理是指对软件开发过程中的资源、进度、质量等进行有效管理,以确保软件项目能够按时、按质地完成。

2. 软件项目管理的内容:答:软件项目管理包括项目计划、需求管理、项目进度管理、资源管理、风险管理等方面。

3. 软件项目管理的方法:答:常见的软件项目管理方法包括敏捷项目管理、水平项目管理、里程碑项目管理等。

4. 软件项目管理的工具:答:常用的软件项目管理工具包括甘特图、PERT/CPM网络图、项目管理软件等。

第三章:软件需求分析与规格说明1. 软件需求的定义:答:软件需求是指用户对软件系统的要求和期望,包括功能需求、性能需求、接口需求等方面。

2. 软件需求分析的方法:答:常用的软件需求分析方法包括面向对象分析法、数据流图法、用例分析法等。

3. 软件需求规格说明的格式:答:常见的软件需求规格说明的格式包括自然语言描述、结构化描述、图形描述等。

软件工程教材习题答案

软件工程教材习题答案

习题一答案一、选择题1. 软件的主要特性是(A B C)。

A) 无形B) 高成本C) 包括程序和文档D) 可独立构成计算机系统2. 软件工程三要素是(B)。

A) 技术、方法和工具B) 方法、工具和过程C) 方法、对象和类D) 过程、模型、方法3. 包含风险分析的软件工程模型是(A)。

A) 螺旋模型B) 瀑布模型C) 增量模型D) 喷泉模型4. 软件工程的主要目标是(C)。

A) 软件需求B) 软件设计C) 风险分析D) 软件实现5. 下列属于面向对象开发方法的是(A B C D)。

A) Booch B) UML C) Coad D) OMT6. 软件危机的主要表现是(B D)。

A) 软件成本太高B) 软件产品的质量低劣C) 软件开发人员明显不足D) 软件生产率低下7. 软件开发方法的主要工作模型有(A B C)A) 螺旋模型B) 循环模型C) 瀑布模型D) 专家模型8. 软件工程的目标有(A B C)。

A) 易于维护B) 低的开发成本C) 高性能D) 短的开发期9. 软件工程学的目的和意义是(A D)。

A) 应用科学的方法和工程化的规范管理来指导软件开发B) 克服软件危机C) 作好软件开发的培训工作D) 以较低的成本开发出高质量的软件二、判断题1. 软件就是程序,编写软件就是编写程序。

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

(×)3. 结构化方法的工作模型是使用螺旋模型进行开发。

(×)4. 结构化方法和OO方法都是一种面向过程的软件开发方法。

(×)5. 原型化开发方法包括生成原型和实现原型两个步骤。

(×)6. 面向对象的开发方法包括面向对象的分析、面向对象的设计和面向对象的程序设计。

( √)7. 软件危机的主要表现是软件的需求量迅速增加,软件价格上升。

(×)8. 软件工具的作用是为了延长软件产品的寿命。

(×)9. 软件工程过程应该以软件设计为中心,关键是编写程序。

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

软件工程(第五版)--习题及答案
型4获得并比较可行的方案5撰写可行性研究报告。 3、某航空公司为了方便旅客拟开发一个机票预订系统。将旅客的信息姓名、性别、工作单位、身份证号、旅行时间、旅行目的地等输入该系统后系统自动为旅客安排航班。
打印出取票通知和票务账单。旅客可在航班的前一天凭取票通知和票务账单交款取票。系统
13、在软件生产的程序系统时代由于软件规模扩大和和软件复杂性提高等原因导
致了A。
A、软件危机 B、软件工程
C、程序设计革命 D、结构化程序设计
14、集成化开发环境中的环境集成机制不包括D。
A、数据集成 B、控制集成
没有尽早停止没有可行解决方案的开发项目就会造成时间、资金、人力、物力的浪费。为
了降低软件开发失败的可能性需要进行软件可行性研究。可行性研究要从经济可行性、技
术可行性、运行可行性和法律可行性四方面进行。 2、简述可行性研究的步骤。
答1审核系统的规模和目标2分析研究现行系统3设计新系统的高层逻辑模
5、×文字处理软件Word属于系统软件。 应用软件 6、√原型是软件的一个早期可运行的版本它反映最终系统的部分重要特性。
7、√软件开发过程中一个错误发现得越晚为改正它所付出的代价就越大。
8、×快速原型模型对软件开发人员的水平要求不高。
9、√喷泉模型适合于面向对象的软件开发。
10、×面向对象开发方法的主要缺点是在适应需求变化方面不够灵活。
二、选择题
1、软件是一种C。
A、程序 B、数据 C、逻辑产品 D、物理产品
2、软件开发方法是A。
A、指导软件开发的一系列规则和约定 B、软件开发的步骤
C、软件开发的技术 D、软件开发的思想
2、软件可行性研究的目的是C。

软件工程(自编教材)习题答案

软件工程(自编教材)习题答案

《软件工程》习题参考答案周兵1.1教材:《软件工程》方木云主编,清华大学出版社,2016 1.2参考书目:1.《Software engineering》8th Edition Ian Sommervile,PearsonEducation, 机械工业出版社,20062. 《软件工程》,王忠群主编,中国科学技术大学出版社,20093. 《软件工程导论》(第4版), 张海藩编著, 清华大学出版社, 20074、《Software engineering : a practitioner's approach》 RogerS. Pressman. 6th ed. Pressman, Roger S. China MachinePress, 20081.3说明:斜体部分是可选讲授内容, 带星号的习题为可选。

第1章软件工程学概述1.1习题A.1什么是软件?软件可以分为哪些类?p11答:软件是程序、数据及相关文档的完整集合。

软件可分为通用软件和定制软件。

A.2 *什么是软件危机及其表现?p11答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。

具体地说,软件危机主要有以下一些典型表现。

(1) 对软件开发成本和进度的估计常常很不准确。

(2) 用户对“已完成的”软件系统不满意的现象经常发生。

(3) 软件产品的质量往往靠不住。

(4) 软件常常是不可维护的。

(5) 软件通常没有适当的文档资料。

(6) 软件成本在计算机系统总成本中所占的比例逐年上升。

(7) 软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。

A.3什么是软件工程?p11答:软件工程是指导计算机软件开发和维护的一门工程学科。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

软件工程习题及参考答案

软件工程习题及参考答案

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

第一章练习题一、填空题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﹑软件产品的特性是什么?答:软件产品特性:⑴是一种逻辑产品,与物质产品有很大的区别。

⑵软件产品的生产主要是研制,生产成本主要在开发和研制,开发研制完成后,通过复制就产生了大量软件产品。

⑶软件产品不会用坏,不存在磨损,消耗。

⑷生产主要是脑力劳动,还末完全摆脱手工开发方式,大部分产品是"定做"的⑸开发软件的费用不断增加,致使生产成本相当昂贵。

2﹑软件生产有几个阶段?各有何特征?答:⑴程序设计时代:这个阶段生产方式是个体劳动,使用的生产工具是机器语言,汇编语言。

⑵程序系统时代:这个阶段生产方式是小集团合作生产,使用的生产工具是高级语言,开发方法仍依靠个人技巧,但开始提出结构化方法。

⑶软件工程时代:这个阶段生产方式是工程化的生产,使用数据库﹑开发工具﹑开发环境﹑网络﹑分布式﹑面向对象技术来开发软件。

3﹑什么是软件危机?产生原因是什么?答:软件开发技术的进步未能满足发展的要求。

在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。

产生原因:⑴软件规模越来越大,结构越来越复杂。

⑵软件开发管理困难而复杂。

⑶软件包开发费用不断增加。

⑷软件开发技术落后。

⑸生产方式落后,仍采用手工方式。

⑹开发工具落后,生产率提高缓慢。

4﹑什么是软件工程?它目标和内容是什么?答:软件工程就是用科学的知识程和技术原理来定义,开发,维护软件的一门学科。

软件工程目标:付出较低开发成本;达到要求的功能;取得较好的性能;开发的软件易于移植;只需较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。

软件工程内容:研究内容包括开发技术和开发管理两个方面。

开发技术主要研究:软件开发方法,开发过程,开发工具和环境。

开发管理主要研究:软件管理学,软件经济学,软件心理学。

5﹑软件工程面临的问题是什么?答:软件工程需要解决的问题:软件的费用,可靠性,可维护性,软件生产率和软件的重用。

软件工程习题及答案.doc

软件工程习题及答案.doc

软件工程习题及答案:一、选择题:D1. 为了提升测试的效率,应当。

A、随机地选用测试数据B、取全部可能的输入数据作为测试数据C、在达成编码后拟订软件的测试计划D、选择发现错误可能性大的数据作为测试数据D2. 与设计测试数据没关的文档是。

A、需求说明书B、设计说明书C、源程序D、项目开发设计B3. 结构设计是一种应用最宽泛的系统设计方法,是以为基础、自顶向下、逐渐求精和模块化的过程。

A、数据流B、数据流图C、数据库D、数据结构A4. 纲要设计的结果是供给一份。

A、模块说明书B、框图C、程序D、数据结构B5. 需求剖析是由剖析员经认识用户的要求,仔细仔细地调研、剖析,最后应成立目标系统的逻辑模型并写出。

A、模块说明书B、软件规格说明书C、项目开发计划D、合同文档D6. 说明是提升程序可读性的有效手段,好的程序说明占到程序总量的。

A、 1/6B、 1/5C、1/4 D 、 1/3A7. 变换型和事务型是程序结构的标准形式。

从某处获取数据,再对这些数据作办理,而后将结果送出是属于。

A、变换型B、事务型B8. PAD( Problem Analysis Diagram )图是一种工具。

A、系统描述B、详尽设计C、测试D、编程协助A9. 排错一般是在测试发现错误后进行,此中找到错误地点占排错总工作量的。

A、 95%B、 5%C、 50%D、 20%A10. 分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描述了系统的。

A、总貌B、细节C、抽象D、软件的作者B11. 数据流图中,当数据流向或流自文件时,。

A、数据流要命名,文件不用命名B、数据流不用命名,有文件名就足够了C、数据流和文件均要命名,因为流出和流进数据流是不一样的D、数据流和文件均不要命名,经过加工可自然反应出B12. 剖析员是。

A、用户中系统的直接使用者B、用户和软件人员的中间人C、软件的编程人员D、用户和软件人员的领导A13. 在软件开发中,有益于发挥集体智慧的一种做法是。

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

软件工程课本习题答案

软件工程课本习题答案
2.3形式化方法的特点是什么?
形式化方法的主要特点是:
(1)软件需求规格说明被细化为用数学记号表达的详细的形式化规格说明;
(2)设计、实现和单元测试等开辟过程由一个变换开辟过程代替。通过一系列变换将形式的规格说明细化成为程序。
2.5安装RationalRose2000/2002/2003,并练习基本操作。
缺点:RUP只是一个开辟过程,并没有涵盖软件过程的全部内容,例如它缺少关于软件运行和支持等方面的内容;此外,它没有支持多项目的开辟结构,这在一定程度上降低了在开辟组织内大范围实现重用的可能性。
合用范围:合用于基于构件的软件开辟。
2软件工程方法与工具
2.1软件工程的三种基本要素是什么,各自的作用是什么?
术问题,更重要的是必须有科学严格的管理。
(5)缺少有效的软件评测手段,提交给用户的软件的质量不能彻底保证。
1.5什么是软件工程?
第1章 作业参考答案
软件工程是指导计算机软件开辟和维护的工程学科。采用工程的概念、原理、技术和方法来开辟和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开辟出高质量的软件并有效地维护它,这就是软件工程。
产生软件危机的原因:除了软件本身的特点,其原因主要有以下几个方面:
(1)缺乏软件开辟的经验和有关软件开辟数据的积累,使得开辟工作计划很难制定。
(2)软件人员与用户的交流存在障碍,使得获取的需求不充分或者存在错误。
(3)软件开辟过程不规范。如,没有真正了解用户的需求就开始编程序。
(4)随着软件规模的增大,其复杂性往往会呈指数级升高。需要不少人分工协作,不仅涉及技
必须做什么”这个问题。
(3)软件设计:本阶段要回答的关键问题是“目标系统如何做?”为此,必须在设计阶段中制

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

软件工程习题及答案解析

软件工程习题及答案解析

一、选择题: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-2章课后习题参考答案

软件工程第1-2章课后习题参考答案

软件⼯程第1-2章课后习题参考答案第⼀章课后参考答案1.什么是软件危机?它们有哪些典型表现?为什么会出现软件危机?“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的⼀系列“严重问题”。

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

“软件危机”包含两⽅⾯的问题:(1)如何开发软件,以满⾜对软件⽇益增长的需求;(2)如何维护数量不断膨胀的已有软件。

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

出现软件危机的原因(1)开发⼈员与客户认识之间的⽭盾(2)开发⼈员能⼒与开发⽬标之间的⽭盾(3)预估与实际⼯作量之间的⽭盾(4)客户认识的提⾼与软件维护之间的⽭盾(5)遗产系统与实施软件之间的⽭盾2.假设⾃⼰是⼀家软件公司的总⼯程师,当把图1.1给⼿下的软件⼯程师们观看,告诉他们及时发现并改正错误的重要性时,有⼈不同意这个观点,认为要求在错误进⼊软件之前就清楚它们是不现实的,并举例说:“如果⼀个故障是编码错误造成的,那么,⼀个⼈怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进⾏修改付出的代价是很不相同的,在早期引⼊变动,涉及的⾯较少,因⽽代价也⽐较低;在开发的中期,软件配置的许多成分已经完成,引⼊⼀个变动要对所有已完成的配置成分都做相应的修改,不仅⼯作量⼤,⽽且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引⼊变动,当然付出的代价更⾼。

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

3.什么是软件⼯程?它有哪些本质特征?怎么⽤软件⼯程消除软件危机?软件⼯程是知道计算机软件开发和维护的⼀门⼯程学科。

(完整版)软件工程课后习题答案

(完整版)软件工程课后习题答案

第一章1.1什么是计算机软件?软件的特点是什么?计算机软件是指计算机系统中的程序及其文档软件的特点:●软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算。

●软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大。

●软件的使用没有硬件那样的机械磨损和老化问题。

1.2简述软件的分类,并举例说明1.系统软件系统软件居于计算机系统中最接近硬件的一层,其他软件一般都通过系统软件发挥作用。

例如:编译软件、操作系统。

2.支撑软件支撑软件是支撑软件的开发和维护的软件。

例如:数据库管理系统、网络软件、软件工具、软件开发环境。

3.应用软件应用软件是特定应用领域专用的软件。

例如:工程/科学计算机软件、嵌入式软件、产品线软件、Web应用软件、人工智能软件。

1.3简述软件语言的分类,并举例说明。

1.需求定义语言是用于书写软件需求定义的语言。

例如:PSL/PSA。

2.功能性语言是用于书写软件功能规约的语言,通常又称为功能规约语言。

例如:广谱语言、Z 语言。

3.设计性语言是用于书写软件设计规约的语言。

例如:PDL。

4.实现性语言也称为程序设计语言,是用于书写计算机程序的语言。

例如:C、java、PROLOG、FORTRAN、COBOL、Modula。

5.文档语言是用于书写软件文档的语言。

通常用自然语言或半形式化语言书写。

1.4什么是软件工程?软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。

软件工程借鉴传统工程的原则、方法,以提高质量、降低成本为目的。

1.5简述软件工程的基本原则。

软件工程原则包括围绕工程设计、工程支持和工程管理所提出的以下4条基本原则。

1.选取适宜的开发模型必须认识需求定义的易变性,采用适宜的开发模型,保证软件产品满足用户的要求。

2.采用合适的设计方法合适的设计方法有助于这些特征的实现,以达到软件工程的目标。

3.提供高质量的工程支撑软件工程项目的质量与开销直接取决于对软件工程所提供的支撑质量和效用。

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

软件工程(自编教材)-习题答案《软件工程》习题参考答案周兵1.1教材:《软件工程》方木云主编,清华大学出版社,2016 1.2参考书目:1.《Software engineering》8th Edition Ian Sommervile,PearsonEducation, 机械工业出版社,20062. 《软件工程》,王忠群主编,中国科学技术大学出版社,20093. 《软件工程导论》(第4版), 张海藩编著, 清华大学出版社, 20074、《Software engineering : a practitioner's approach》 RogerS. Pressman. 6th ed. Pressman, Roger S. China MachinePress, 20081.3说明:斜体部分是可选讲授内容, 带星号的习题为可选。

第1章软件工程学概述1.1习题A.1什么是软件?软件可以分为哪些类?p11答:软件是程序、数据及相关文档的完整集合。

软件可分为通用软件和定制软件。

A.2*什么是软件危机及其表现?p11答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。

具体地说,软件危机主要有以下一些典型表现。

(1) 对软件开发成本和进度的估计常常很不准确。

(2) 用户对“已完成的”软件系统不满意的现象经常发生。

(3) 软件产品的质量往往靠不住。

(4) 软件常常是不可维护的。

(5) 软件通常没有适当的文档资料。

(6) 软件成本在计算机系统总成本中所占的比例逐年上升。

(7) 软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。

A.3什么是软件工程?p11答:软件工程是指导计算机软件开发和维护的一门工程学科。

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

A.4什么是软件过程?p20答:软件过程由软件定义、软件开发和运行维护(也称为软件维护)3个时期组成,每个时期又进一步划分成若干个阶段。

第2章软件过程模型2.1习题A.1什么是瀑布型方法?p20答:按照时间顺序依次进行可行性分析、项目计划、需求分析、概要设计、详细设计、编码与单元测试、集成测试、确认验证、运行与维护等几个阶段进行软件开发。

A.2什么是快速原型方法?p28答:所谓快速原型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。

强调过程的多次反复,对文档的要求不高。

A.3什么是增量方法?说说它产生的原因和适用的范围。

P43 答:增量模型也称为渐增模型,是快速原型法的一种;使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试。

使用增量模型可以:在较短时间内向用户提交可完成部分工作的产品;客户可以将早期的增量作为原型,从中获得对后面系统增量的需求经验;项目总体性失败的风险比较低。

A.4什么是面向复用方法?说说它产生的原因和适用的范围。

P43 答:面向复用的方法使用可复用软件组件以及能集成这些组件的框架来构建和开发新的软件;有时,这些组件本身就是一个独立的能满足某种需要的系统。

使用这种方法可以节省大量的重复劳动,加快开发速度。

存在大量可以重用的构件的时候,可以使用这种方法。

A.5什么是形式化方法?说说它产生的原因和适用的范围。

P43 答:形式化系统开发是一个类似瀑布模型的软件开发方法,但其开发过程基于的是用形式化数学转换来将系统描述转换成一个可执行程序。

因为使用这种方法可以大大提高软件的可靠性,以及节省测试成本;这种方法主要用于可靠性要求很高的软件。

第3章可行性研究第4章需求分析4.1习题A.1为什么要进行软件需求分析?请叙述软件需求分析的主要过程。

P66答:软件需求分析在软件开发过程中具有举足轻重的地位,它是开发出正确的、高质量的软件系统的重要保证。

有数据表明,更正需求分析阶段的一个错误所花费的工作量是更正测试阶段的一个错误的一百倍。

软件需求分析的主要过程: 获取用户需求、分析用户需求、编写需求文档、进行需求评审A.2软件需求规格说明书由哪些部分组成?p66答:软件需求规格说明书由引言、任务概述、需求规定、运行环境规定四个部分组成。

第5章概要设计(总体)5.1习题A.1什么是模块?什么是模块化?。

P75答:模块是由边界元素限定的相邻程序元素(例如,数据说明,可执行的语句)的序列,而且有一个总体标识符代表它。

过程、函数、子程序和宏等,都可作为模块。

面向对象方法学中的对象是模块,对象内的方法(或称为服务)也是模块。

模块是构成程序的基本构件。

模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。

模块化是为了使一个复杂的大型程序能被人的智力所管理。

A.2衡量模块独立性的两个标准是什么?它们各表示什么含义?P75答:模块的独立程度可以由两个定性标准度量,这两个标准分别称为内聚和耦合。

耦合是对一个软件结构内不同模块之间互连程度的度量。

内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展。

第6章界面设计6.1习题A.1界面设计的原则是什么?P88答:原则描述用户熟悉界面所使用的术语和概念应该是来自于用户的经验,这些用户是使用系统最多的人一致性界面应该是一致的,即尽可能地让相似的操作有同样的触发方式意外最小化永远不要让用户对系统的行为感到吃惊可恢复性界面应该有一种机制来允许用户从错误中恢复用户指南在错误发生时界面应该提供有意义的反馈,并有上下文感知能力的用户帮助功能用户差异性界面应该为不同类型用户提供合适的交互功能第7章详细设计7.1习题A.1*画出下列伪码程序的程序流程图:STARTI F p THENWHILE q DOfEND DOELSEBLOCKgnEND BLOCKE ND IFS TOP答:A.2 *下图给出的程序流程图代表一个非结构化的程序,请问:(1) 为什么说它是非结构化的?(2) 设计一个等价的结构化程序。

(3) 在(2)题的设计中你使用附加的标志变量flag了吗?若没用,请再设计一个使用flag 的程序;若用了,再设计一个不用flag 的程序。

T n F F开gp fq T 结图一个非结构化程序答:(1)因为它不是单出口的程序。

(2)(3)第8章实现8.1习题A.1p101A.2什么是软件测试,软件测试的基本准则是什么?答:测试是为了发现程序中的错误而执行程序的过程,测试是保证软件质量的重要手段之一。

软件测试准则(经验)(1)所有测试都应该能追溯到用户需求。

(2)应该远在测试开始之前就制定出测试计划。

(3)把Pareto原理应用到软件测试中。

Pareto 原理说明,测试发现的错误中的80%很可能是由程序中20%的模块造成的。

(4)应该从“小规模”测试开始,并逐步进行“大规模”测试。

(5)穷举测试是不可能的。

(6)为了达到最佳的测试效果,应该由独立的第三方从事测试工作。

A.3软件测试的目的是什么,为什么把软件测试的目的定义为只是发现错误?答:测试的目的是找出整个软件开发周期中各个阶段的错误,如果测试是为了发现程序中的错误,就会力求设计出最能暴露错误的测试方案,从而提高测试效率。

A.4黑盒测试方法有哪些?答:黑盒测试方法有等价划分、边界值分析、错误推测法。

A.5白盒测试方法有哪些?答:白盒测试方法有逻辑覆盖,逻辑覆盖又可分为:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。

第9章演化(维护)9.1习题A.1P105维护分为哪几类?答:维护分为: 改正性维护、适应性维护、完善性维护、预防性维护。

第10章面向对象方法学10.1习题A.1P115什么是UML?答:UML(Unified Modeling Language)是一种定义良好、易于表达、功能强大且普遍适用的建模语言。

它融入了软件工程领域的新思想、新方法和新技术。

它的作用域不仅仅限于支持面向对象的分析与设计,而是全面支持从需求分析开始的软件开发的全过程。

A.2P115一般从哪几种常用的视角来描述一个系统?答:用面向对象方法开发软件,通常需要建立3种形式的模型,它们分别是描述系统静态结构的对象模型,描述系统动态行为的动态模型和描述系统功能的功能模型。

第11章基于其它粒度的构造方法11.1习题A.1P131什么是软件体系结构?答:Hayes Roth认为软件体系结构是一个抽象的系统规范,主要包括用其行为来描述的功能构件和构件之间的相互连接、接口和关系。

A.2P131软件体系结构的组成要素是什么?答:软件体系结构包含构件、连接件和约束3个最基本的组成元素。

A.3P149Agent概念的几个主要特征是什么?答:与Agent概念相关的几个主要特性:自治性、异构性、动态性、通信、协议、承诺。

A.4P149Agent的组织类型有哪些?答:Agent的组织类型有:层次、组合、团队、市场。

A.5P171如何理解SOA架构?请画图给出面向服务体系结构中的协作是怎样进行的过程。

答:SOA的定义为“客户端/服务器的软件设计方法,一项应用由软件服务和软件服务使用者组成。

SOA架构的实质就是将系统模型与系统实现分离。

第12章面向云计算方法12.1习题A.1P207从研究现状上看,云计算具有什么特点?答:云计算具有以下特点: 超大规模、虚拟化、高可靠性、通用性、高可扩展性、按需服务、极其廉价。

A.2P207Google云计算技术具体包括哪些?答:Google云计算技术具体包括:Google文件系统GFS、分布式计算编程模型MapReduce、分布式锁服务Chubby和分布式结构化数据存储系统Bigtable等。

其中,GFS提供了海量数据的存储和访问的能力,MapReduce使得海量信息的并行处理变得简单易行,Chubby保证了分布式环境下并发操作的同步问题,Bigtable使得海量数据的管理和组织十分方便。

第13章CASE工具13.1习题P207CASE的定义是什么?答:CASE即Computer Aided Software Engineering,中文意思是计算机辅助软件工程。

CASE是一套方法和工具。

CASE的一个基本思想就是提供一组能够自动覆盖软件开发生命周期各个阶段的集成的、减少劳动力的工具。

第14章软件项目14.1习题A.1P233什么是项目,软件项目有哪些特点?答:项目是为完成一个独特的产品、服务或者任务而进行的一次性努力。

相关文档
最新文档