软件工程理论与实践习题答案
《软件工程》各章课后习题答案

《软件工程》各章课后习题答案软件工程是计算机科学与技术的一门重要学科,旨在研究和应用工程原则和方法来开发高质量的软件系统。
课程中的习题对于加深学生对软件工程理论和实践的理解至关重要。
下面是对《软件工程》各章课后习题的答案,希望能够帮助你更好地掌握软件工程的知识。
第一章:软件工程导论1. 软件工程的定义:答:软件工程是通过应用系统化、规范化和可量化的方法进行软件开发、运行和维护的学科。
2. 软件工程的目标:答:软件工程的目标是提高软件开发的质量、效率和可靠性,使得软件能够满足用户的需求和期望。
3. 软件生命周期模型:答:常见的软件生命周期模型包括瀑布模型、迭代模型、敏捷模型等。
每个模型都有其独特的特点和适用场景。
4. 软件过程模型:答:软件过程模型描述了软件开发过程中的一系列活动和阶段,常见的软件过程模型包括瀑布模型、迭代模型、敏捷模型等。
5. 软件工程的基本原则:答:常见的软件工程基本原则包括分阶段、逐步求精、持续集成、迭代开发、需求优先等。
第二章:软件项目管理1. 软件项目管理的定义:答:软件项目管理是指对软件开发过程中的资源、进度、质量等进行有效管理,以确保软件项目能够按时、按质地完成。
2. 软件项目管理的内容:答:软件项目管理包括项目计划、需求管理、项目进度管理、资源管理、风险管理等方面。
3. 软件项目管理的方法:答:常见的软件项目管理方法包括敏捷项目管理、水平项目管理、里程碑项目管理等。
4. 软件项目管理的工具:答:常用的软件项目管理工具包括甘特图、PERT/CPM网络图、项目管理软件等。
第三章:软件需求分析与规格说明1. 软件需求的定义:答:软件需求是指用户对软件系统的要求和期望,包括功能需求、性能需求、接口需求等方面。
2. 软件需求分析的方法:答:常用的软件需求分析方法包括面向对象分析法、数据流图法、用例分析法等。
3. 软件需求规格说明的格式:答:常见的软件需求规格说明的格式包括自然语言描述、结构化描述、图形描述等。
软件工程实践题50题及答案

1、完善性维护一个已有的库存清单系统,新增一个能在每天送给采购员一份订货报表的功能。
新增该功能共投资了5000元,系统维护后能及时订货,消除零件短缺问题,每年可节约2500元,若系统生存期为5年,年利率为5%,请计算:①.货币的时间价值;②纯收入。
注:不计复利。
2、假设某软件生命周期为5年。
现在投资20万,年利率为3%。
从每一年年底收入5万元,请计算该项目的①.货币的时间价值;②投资回收期(保留小数点后两位)。
注:不计复利。
3、某计算机系统投入使用后,5年内每年可节省人民币 2O0O元,假设系统的投资额为5000元,年利率为 12%。
试计算投资回收期和纯收入。
(保留小数点后两位)。
注:要求计算复利。
4、某计算机系统共投资了5.5万元,系统投入使用后每年可节约2万元,若系统生存期为4年,年利率为5%,请计算:①.货币的时间价值;②.投资回收期;③.纯收入。
注:要求计算复利。
5、画出下面用PDL写出的程序的PAD图。
WHILE P DOIF A >O THEN A1 ELSE A2 ENDIF;S1;IF B>0 THEN B1;WHILE C DO S2;S3 ENDWHILE;ELSE B2ENDIF;B3ENDWHILE;6、画出下面用PDL写出的程序的PAD图WHILE C DOIF A>0A1;ELSEA2;ENDIFIF B>0B1;IF C>0C1;ELSEC2;ENDIFELSEB2;ENDIFB3;ENDWHILE;7、根据伪码画出PAD图。
STARTSWITCH PCASE 1: A; break;CASE 2: B; break;CASE 3: C; break;Default;STOP8、请画出求1 + 3 + 5 +…+ n的PAD图。
9、请使用PAD图描述在数组A(1)~A(10)中找最大数的算法。
10、某商场在“五一”期间,顾客购物时收费有4种情况:普通顾客一次购物累计少于100元,按A类标准收费(不打折),一次购物累计多于或等于100元,按B类标准收费(打9折);会员顾客一次购物累计少于1000元,按C类标准收费(打8折),一次购物累计等于或多于1000元,按D类标准收费(打7折)。
软件工程—方法与实践(许家珆)

《软件工程——理论与实践》(第2 版)习题答案习题答案习题一答案一、选择题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. 软件工具的作用是为了延长软件产品的寿命。
软件工程理论与实践考核试卷

A.甘特图
B.思维导图
C.PERT图
D. Gantt图
10.以下哪种编程范式强调程序组件的复用?()
A.面向对象编程
B.过程式编程
C.函数式编程
D.逻辑式编程
11.在软件架构中,以下哪个概念用于描述不同模块之间的依赖关系?()
A.接口
9.可靠性
10.版本控制
四、判断题
1. ×
2. √
3. ×
4. √
5. √
6. ×
7. ×
8. ×
9. √
10. ×
五、主观题(参考)
1.软件工程的基本目标是开发出具有高效性、可靠性和可维护性的软件产品。这些目标在软件开发过程中至关重要,因为它们确保了软件的质量,减少了开发成本和时间,并提高了用户满意度。
7.软件开发生命周期中的“V”模型主要强调的是测试阶段与开发阶段的____关系。
8.在软件设计中,____原则指导我们不应该对扩展开放的对象进行修改。
9.软件可维护性的衡量标准包括可理解性、可适应性、可扩展性和____。
10.软件配置管理(SCM)的主要职责是管理软件变更和____。
四、判断题(本题共10小题,每题1分,共10分,正确的请在答题括号中画√,错误的画×)
A.可理解性
B.可适应性
C.可扩展性
D.可靠性
12.在面向对象设计模式中,以下哪些属于结构型模式?()
A.装饰器模式
B.适配器模式
C.桥接模式
D.策略模式
13.以下哪些方法可以用来评估软件项目的成本?()
A.功能点分析
B.行业标准
C.专家判断
软件工程习题附答案

软件工程习题附答案软件工程是一门研究和应用如何以系统性、规范化、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。
以下是一些与软件工程相关的习题及答案,希望能帮助您更好地理解这门学科。
一、选择题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 图可以用于可行性分析阶段,描述系统的物理结构。
《软件工程实践》期末考试试卷附答案

《软件工程实践》期末考试试卷附答案《软件工程实践》期末考试试卷及答案一、选择题(每题2分,共20分)1. 软件工程的主要目标是()。
A. 提高软件开发的效率B. 提高软件的可靠性C. 提高软件的开发质量D. 以上都是答案:D2. 在软件开发过程中,需求分析是在()。
A. 概要设计阶段B. 详细设计阶段C. 编码阶段D. 测试阶段答案:A3. 下列哪一项不是软件工程的基本活动?()A. 软件规格B. 软件设计和实现C. 软件验证D. 软件评估答案:D4. 下列哪个工具通常用于软件项目的进度监控?()A. Gantt图B. flowchart图C. UML图D. 风险矩阵答案:A5. 下列哪个方法不是软件质量保证的主要方法?()A. 代码审查B. 单元测试C. 静态测试D. 需求评审答案:D二、填空题(每题2分,共20分)1. 软件工程包括三个主要过程,分别是________、________和________。
答案:软件规格、软件设计和实现、软件验证2. 在软件开发过程中,需求规格说明书的主要目的是________。
答案:描述软件的功能和性能要求3. 结构化分析方法的核心是________。
答案:数据流图(DFD)4. 软件验证的主要目的是________。
答案:确保软件满足需求规格说明书的各项要求5. 软件风险管理的主要任务是________。
答案:识别、评估和制定应对软件项目风险的策略三、简答题(每题5分,共30分)1. 请简述软件生命周期的主要阶段及其任务。
答案:软件生命周期包括以下主要阶段:(1)需求分析:收集和分析用户需求,形成需求规格说明书;(2)概要设计:根据需求规格说明书,设计软件的整体架构和模块划分;(3)详细设计:为每个模块设计详细的接口、数据结构和算法;(4)编码:根据详细设计文档,编写代码;(5)测试:验证代码的正确性和性能;(6)运行和维护:软件上线后进行运行维护和持续优化。
软件工程习题附答案

软件工程习题附答案软件工程是一门研究如何以系统性的、规范化的、可定量的方法开发和维护软件的学科。
在软件工程的学习和实践中,习题是一种重要的学习方法,通过解答习题可以加深对知识的理解和应用。
本文将为您提供一些关于软件工程的习题,并附带答案。
请注意,下文中的答案仅供参考,具体情况还需根据实际情况进行判断和调整。
1. 什么是软件工程?答案:软件工程是一门研究如何以系统性的、规范化的、可定量的方法开发和维护软件的学科。
2. 软件工程的核心原则是什么?答案:软件工程的核心原则是系统分析、设计、编程、测试和维护各个阶段严格按照规范进行,并强调团队协作和项目管理的重要性。
3. 软件生命周期包括哪些阶段?答案:软件生命周期包括问题定义、需求分析、系统设计、编码、测试和维护等阶段。
4. 请简要描述软件工程的开发流程。
答案:软件工程的开发流程一般包括需求分析、系统设计、编码、测试和维护等阶段。
具体而言,首先需要明确需求,然后进行系统设计,确定软件的整体结构和功能。
接着进行编码,将设计好的软件实现为代码。
随后进行测试,检查软件是否符合需求并修复潜在的问题。
最后是维护阶段,对软件进行更新和修复,以保证其长期有效运行。
5. 请列举几种常用的软件开发方法。
答案:常用的软件开发方法包括瀑布模型、迭代模型、敏捷开发等。
6. 什么是瀑布模型?答案:瀑布模型是一种线性顺序型的软件开发方法,各个阶段严格按照顺序进行,上一个阶段的输出作为下一个阶段的输入。
7. 什么是迭代模型?答案:迭代模型是一种反复迭代、循环演化的软件开发方法,每次迭代都会增加新的功能或修复问题。
8. 请简要介绍敏捷开发方法。
答案:敏捷开发方法是一种轻量级的软件开发方法,强调迭代、灵活和快速响应变化。
它鼓励团队协作、自我组织和持续改进。
9. 请列举几种常用的软件测试方法。
答案:常用的软件测试方法包括单元测试、集成测试、系统测试和验收测试等。
10. 什么是单元测试?答案:单元测试是针对软件开发的最小单位——单元(如函数、方法等)进行的测试,用于检查该单元是否符合预期的功能和设计要求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A) 螺旋模型
B) 瀑布模型
C) 增量模型 D) 喷泉模型
4. 软件工程的主要目标是 (C) 。
A) 软件需求
B) 软件设计
C) 风险分析 D) 软件实 现
5. 下列属于面向对象开发方法的是 (A B C D) 。
A) Booch
B) UML
C) Coad
D) OMT
6. 软件危机的主要表现是 (B D) 。
● 软件不存在磨损和老化问题,但存在退化问题; ● 软件产品的生产主要是脑力劳动; ● 软件产品的成本非常昂贵,其开发方式目前尚未完全摆脱手工生产方式;
● 软件具有 “复杂性 ”,其开发和运行常受到计算机系统的限制。 2. 软件发展有几个阶段?各有何特征? 答: ① 程序设计阶段。 硬件特征:价格贵、存储容量小、运行可靠性差。
D) 数据流封闭的原则 6. 在 E-R 模型中,包含以下基本成分
A) 数据、对象、实体
(C)。
B) 控制、联系、对象 C) 实体、联系、属性
D) 实体、属性、联系 7. 画 DFD 图的主要目的是 (A D) 。
A) 作为需求分析阶段用户与开发者之间交流信息的工具 B) 对系统的数据结构进行描述 C) 对目标系统的层次结构进行描述
软件特征:只有程序、程序设计概念,不重视程序设计方法。 ② 程序系统阶段。
硬件特征: 速度、容量及工作可靠性有明显提高, 价格降低, 销售有爆炸性增长 。
软件特征:程序员数量猛增,开发人员素质低。 ③ 软件工程阶段。
硬件特征:向超高速、大容量、微型化及网络化方向发展。 软件特征:开发技术有很大进步, 但未获得突破性进展,软件价格不断上升,未 完全摆脱软件危机。
2. 需求分析的主要方法有 (C D )。 A) 形式化分析方法 C) 结构化分析 (SA) 方法
3. 面向对象的分析方法主要是建立三类模型,即 A) 系统模型、 ER 模型、应用模型
B) PAD 图描述 D) OOA 法
(D)。
B) 对象模型、动态模型、应用模型 C) E -R模型、对象模型、功能模型
9. 软件工程学的目的和意义是 ( ) 。
A) 应用科学的方法和工程化的规范管理来指导软件开发
B) 克服软件危机
C) 作好软件开发的培训工作
D) 以较低的成本开发出高质量的软件
二、 判断题 1. 软件就是程序,编写软件就是编写程序。 ( ×)
2. 瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。
D) 对象模型、动态模型、功能模型 4. SA法的主要描述手段有 (B )。
A) 系统流程图和模块图
B) DFD图、数据词典、加工说明 C) 软件结构图、加工说明
D) 功能结构图、加工说明 5. 画分层DFD图的基本原则有
A) 数据守恒原则
(A C D )。
B) 分解的可靠性原则 C) 子、父图平衡的原则
● 测试 (发现并改正错误,分为模块测试、集成测试和系统联调三级
);
● 运行维护 (扩充功能、纠错等 )。
2
《软件工程——理论与实践》习题答案
习题二答案
一、 选择题
1. 需求分析的主要目的是 (B C )。 A) 系统开发的具体方案
B) 进一步确定用户的需求 C) 解决系统是 “做什么的问题 ” D) 解决系统是 “如何做的问题 ”
《软件工程——理论与实践》习题答案
习题答案
习题一答案
一、选择题
1. 软件的主要特性是 (A B C) 。
A) 无形
B) 高成本
C) 包括程序和文档
D) 可独立构成计算机系统
2. 软件工程三要素是 (C D) 。
A) 技术、方法和工具
B) 方法、工具和过程
C) 方法、对象和类
D) 过程、模型、方法
3. 包含风险分析的软件工程模型是 (A) 。
( ×)
3. 结构化方法的工作模型是使用螺旋模型进行开发。
( ×)
4. 结构化方法和 JSP方法都不适合于大型软件的开发。 ( √)
5. 原型化开发方法包括生成原型和实现原型两个步骤。
( ×)
6. 面向对象的开发方法包括面向对象的分析、面向对象的设计和面向对象的程序 设计。 ( √)
7. 软件危机的主要表现是软件的需求量迅速增加,软件价格上升。
(1) 软件产品质量低劣,甚至开发过程就夭折。 (2) 软件生产率低,不能满足需要。 4. 什么是软件生存周期模型?它有哪些主要模型? 答:软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。 包括:瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型。
主要模型
5. 有哪些主要的软件开发方法?
( ×)
8. 软件工具的作用是为了延长软件产品的寿命。
( ×)
9. 软件工程过程应该以软件设计为中心,关键是编写程序。
( ×)
1
《软件工程——理论与实践》习题答案
10. RCP 法与 RSP 法的主要区别是前者采用循环渐进的开发方式,原型将成为最 终的产品,而后者将被废弃。 ( √)
三、简答题
1. 软件产品的特性是什么? 答: ● 软件是一种逻辑产品,具有无形性; ● 软件产品的生产主要是研制;
答:主要的软件开发方法有:结构化开发方法、
Jackson(JSபைடு நூலகம்、 JSD)方法、原型化开
发方 法、维也纳开发方法 (VDM) 和面向对象的开发方法。
6. 软件生命期各阶段的任务是什么? 答:软件生命期瀑布模型分为六个阶段: ● 可行性研究与计划 (确定系统的目标和规模,分析项目的可行性 ); ● 需求分析与规格说明 (明确系统的规格和要求 ); ● 设计 (包括概要设计和详细设计,将系统分解为模块 ); ● 编程 (用程序语言实现每个模块,简单容易 );
3. 什么是软件危机?其产生的原因是什么? 答: “软件危机 ” (SoftwareCrisis) 的出现是由于软件的规模越来越大,复杂度不断增 加,软件需求量增大。 而软件开发过程是一种高密集度的脑力劳动, 软件开发的模式及 技术 不能适应软件发展的需要。致使大量质量低劣的软件涌向市场,有的花费大量人 力、财力, 而在开发过程中就夭折。软件危机主要表现在两个方面:
A) 软件成本太高
B) 软件产品的质量低劣
C) 软件开发人员明显不足
D) 软件生产率低下
7. 软件开发方法的主要工作模型有 (A B C)
A) 螺旋模型
B) 循环模型
C) 瀑布模型
D) 专家模型
8. 软件工程的目标有 (A B C) 。
A) 易于维护 C) 高性能
B) 低的开发成本 D) 短的开发期