第2章 软件工程 答案
- 格式:doc
- 大小:40.50 KB
- 文档页数:7
第一章根本概念1.软件的特点是什么?软件的定义:软件=程序+数据+文档软件的特点:1)软件是逻辑实体;具有抽象性;软件的形态不可见;--必须通过观察、分析、思考、判断来了解其功能、性能和其它特性。
2〕软件是人脑思维的产物,其生产过程与硬件不同。
--开发过程的质量控制及软件产品保护问题。
3〕软件的开发和运行受计算机系统限制。
--软件移植问题。
4〕软件的开发技术落后,手工开发方式仍占统治地位。
--开发效率低。
2.2006年发布的国家分类标准是什么?1〕按功能:系统软件、支撑软件、应用软件2〕按规模:微型软件、小型软件、大型软件、甚大型软件、极大型软件3〕按工作方式:实时处理软件、分时软件、交互式软件、批处理软件4〕按效劳对象:工程软件、产品软件5〕按使用频度:使用频度低、使用频度高6〕按失效影响:不良影响、严重影响3.软件危机的表现有哪些?1)软件开发进度难以预测2)软件开发本钱难以控制3)用户对产品功能难以满足4)软件产品质量无法保证5)软件产品难以维护4.产生软件危机的原因?1)用户需求不明确2)缺乏正确的理论指导3)软件开发规模越来越大4)软件开发复杂度越来越高5.什么是软件工程三要素?软件工程的三要素:方法、工具和过程。
6.软件工程的根本目标是什么?①付出较低的开发本钱②到达要求的软件功能③取得较好的软件性能④开发的软件易于移植⑤需要较低的维护费用⑥能按时完成开发工作,及时交付使用7软件工程的根本原那么是什么?①抽象:采用分层次抽象,自顶向下、逐层细化的方法控制软件开发过程的复杂性。
②信息隐蔽:将模块设计成“黑箱〞,实现的细节隐藏在模块内部,不让模块的使用者直接。
这就是信息封装,使用与实现别离的原那么。
③模块化:如C语言程序中的函数过程,C++ 语言程序中的类。
模块化有助于信息隐蔽和抽象,有助于表示复杂的系统。
④局部化:要求在一个物理模块内集中逻辑上相互关联的计算机资源,保证模块之间具有松散的耦合,模块内部具有较强的内聚。
2.1 可行性研究的目标与任务1.可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据,因此必须给出( B )的回答。
A.确定B.行或不行C.正确D.无二义2.技术可行性是可行性研究的关键,其主要内容一般不包括( C )。
A.风险分析B.资源分析C.人员分析D.技术分析3.可行性研究的任务是从技术、经济、操作、社会等4个方面研究。
4.可行性研究完成后最终生成的文档是《可行性研究报告》。
(√ )5.软件可行性研究的目的是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。
(√ )2.2 可行性研究过程1.简述可行性研究的过程。
答:(1)复查并确定系统规模和目标(2)研究目前正在使用的系统(3)建立新系统的高层逻辑模型(4)导出和评价各种方案(5)推荐可行性方案(6)草拟初步开发计划(7)编写可行性研究报告提交复查2.3 可行性研究工具1.描绘物理系统的传统工具是系统流程图。
2.画出数据流图目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察危重病人的病情变化,还会延误抢救时机。
某医院打算开发一个以计算机为中心的患者监护系统,请分层次的画出描述本系统功能的数据流图。
医院对患者监护系统的基本要求是随时接收每个病人的生理信号(脉搏、体温、血压、心电图等),定时记录病人情况以形成患者日志。
当某个病人的生理信号超出医生规定的安全范围时向值班护士发出警告信息。
此外,护士在需要时还可以要求系统输出某个指定病人的病情报告。
答:从问题陈述容易看出,本系统的数据源点是“病人”和“护士”,他们分别提供生理信号和要求病情报告的信息。
进一步分析问题陈述,从系统应该“定时记录病人情况以形成患者日志”这项要求可以想到,还应该有一个提供日期和时间信息的“时钟”作为数据源点。
从问题陈述容易看出,系统的数据终点是接收警告信息和病情报告的护士。
系统对病人生理信号的处理功能主要是“接收信号”、“分析信号”和“产生警告信息”。
第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. ()是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。
软件工程方法与实践知到章节测试答案智慧树2023年最新昆明理工大学第一章测试1.软件产品与物质产品有很大区别,软件产品是一种()产品。
参考答案:逻辑2.软件会逐渐退化而不会磨损,其原因在于()。
参考答案:不断的变更使组件接口之间引起错误3.软件工程要解决的问题是()。
参考答案:以上都是4.软件工程的基本要素包括方法、工具和()。
参考答案:过程5.软件一般包括以下()部分。
参考答案:文档;数据;程序;规程第二章测试1.基于计算机系统的元素包括软件、硬件、人员、数据库、文档和()。
参考答案:规程2.基于计算机的系统本身可以成为一个更大的基于计算机系统中的一个()。
参考答案:元素3.经济可行性分析中的效益包括经济效益和()效益。
参考答案:社会4.在基于计算机系统的元素中,硬件包括()。
参考答案:提供外部世界功能的电子机械设备(如传感器、马达等);提供计算能力的电子设备;支持数据流的互连设备(如网络交换器、电信设备)5.系统工程的任务包括()。
参考答案:可行性分析;识别用户的要求;系统建模和模拟;成本估算及进度安排第三章测试1.在软件生存周期中,()阶段主要任务是“弄清楚要做什么?”。
参考答案:需求分析2.通常将软件生命周期划分为系统工程、需求分析、软件设计、编码实现、软件测试、运行维护等阶段,每个阶段都有各自侧重的任务和目标,以下不属于需求分析阶段的任务是()。
参考答案:弄清楚怎么做,规划系统体系结构3.需求规格说明描述了()。
参考答案:计算机系统的功能、性能及其约束4.常用的需求分析方法包括()。
参考答案:面向对象的分析方法;面向数据结构的分析方法;面向数据流的结构化分析方法5.软件需求规格说明SRS的作用包括()。
参考答案:用于规划和控制系统的开发过程;成为用户、分析人员和设计人员之间进行理解和交流的手段;支持系统测试活动第四章测试1.软件设计是将软件分析模型中通过数据、功能和行为模型所展示的软件需求的信息,传送给设计阶段,产生数据/类设计、体系结构设计、()、部件级设计。
第一章课后参考答案1.什么是软件危机?它们有哪些典型表现?为什么会出现软件危机?“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”。
这些问题决不仅仅是不能正常运行的软件才具有的,实际上,几乎“所有软件”都不同程度地存在这些问题。
“软件危机”包含两方面的问题:(1)如何开发软件,以满足对软件日益增长的需求;(2)如何维护数量不断膨胀的已有软件。
它们有以下表现:(1)对软件开发成本和进度的估计常常很不准确;(2)用户对“已完成的”软件系统不满意的现象经常发生;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的文档资料;(6)软件成本在计算机系统总成本中所占的比例逐年上升;(7)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。
出现软件危机的原因(1)开发人员与客户认识之间的矛盾(2)开发人员能力与开发目标之间的矛盾(3)预估与实际工作量之间的矛盾(4)客户认识的提高与软件维护之间的矛盾(5)遗产系统与实施软件之间的矛盾2.假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。
一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。
3.什么是软件工程?它有哪些本质特征?怎么用软件工程消除软件危机?软件工程是知道计算机软件开发和维护的一门工程学科。
《软件工程实用教程》习题与参考答案第2章软件生存周期及开发模型1.简述什么是软件生存周期?根据国家标准《计算机软件开发规范》,软件生存周期主要包括哪几个阶段?答案要点:软件生存周期是指软件产品从功能确定、设计、开发成功、投入使用,并在使用中不断修改、完善,直至被新的软件所替代,而停止该软件使用的全过程。
国家标准GB8566-1988《计算机软件开发规范》将软件生命周期划分为几个阶段:可行性研究、项目计划、需求分析、总体设计、详细设计、编码实现(包括单元测试)、集成测试、确认测试、系统运行和维护。
这几个阶段又可以归纳为3个大的阶段,即软件定义阶段,软件开发阶段和软件运行维护阶段。
2.瀑布模型有哪些特点?对于里程碑,你有哪些认识?答案要点:瀑布模型是一种基于里程碑的阶段过程模型,它所提供的里程碑式的工作流程,为软件项目按规程管理提供了便利。
例如,按阶段制定项目计划,分阶段进行成本核算,进行阶段性的评审等。
这为提高软件产品质量提供了有效保证。
瀑布模型的特点:•阶段性:前一阶段工作完成以后,后一阶段工作才能开始,前一阶段的输出文档是后一阶段的输入文档。
•阶段评审:在每一阶段工作完成后都要进行评审,以便尽早发现问题,避免后期的返工,如果评审不合格,则不开始下一阶段的工作。
•文档管理:在每阶段都规定了要完成的文档,没有完成文档,就认为没有完成该阶段的任务。
3.试说明原型模型的两种实现方案各有什么特点?各适用于什么情况?答案要点:原型模型在软件分析、设计阶段的应用,用来解决用户对软件系统在需求分析上的模糊认识。
将模拟的手段引入需求分析的初期阶段,通过建立原型缩短用户与分析人员之间的距离。
快速原型方法具有以下一些特点。
•快速原型是用来获取用户需求的,或是用来试探某种设计是否有效。
一旦需求或设计确定下来,原型就将被抛弃。
因此快速原型要求快速构建、容易修改,以节约原型创建成本,加速开发速度。
快速原型往往采用软件生成工具来创建,例如,4GL语言。
第一章:一.判断题:1.软件就程序,编软件就是编写程序。
()2.软件危机的主要表现是软件需求增加,软件价格上升。
()3.软件工程科学出现的主要原因是软件危机的出现。
()4.与计算机科学的理论研究不同,软件工程是一门原理性学科()二.选择题1.在下列选项中,()不是软件的特征A系统性与复杂性 B 可靠性与一致性C 抽象性与智能性D 有形性与可控性2.软件危机的主要原因是:A软件工具落后 B 软件生产能力不足C 对软件的认识不够D 软件本身的特点及开发方法3.下列说法正确是的是A 20世纪50年代提出了软件工程的概念B 20世纪60年代提出了软件工程的概念C 20世纪70年代提出了客户机/服务器技术D 20世纪80年代软件工程学达到成熟4.( )是将系统化的规范的可定量的方法应用于软件的开发,运行和维护的过程。
它包括方法、工具和过程三个要素A 软件生命周期B 软件测试C 软件工程D 软件过程5.在下列选项中,()不属于软件工程学科索要研究的基本内容。
A 软件工程材料B 软件工程目标C 软件工程原理D 软件工程过程6.软件工程的三要素是()A技术,方法和工具 B 方法,对象和类 C 方法,工具和过程 D 过程,模型和方法7.用来辅助软件开发,运行,维护,管理,支持等过程中的活动的软件成为软件开发工具,通常也称为()工具A CADB CAIC CAMD CASE三简答题1.与计算机硬件相比,计算机软件有哪些特点?2.软件就是程序吗?如何定义软件?3.什么是软件危机?是什么原因导致了软件危机?4.为什么说软件工程的开发能在一定程度上解决软件危机的各种弊端?5.请简述软件工程的研究内容。
6.请简述软件工程的三要素。
7.请简述软件工程的目标,过程和原则。
8.请简述软件工程的基本原则。
9.请简述现代软件工程与传统软件工程显著的区别与改进。
第二章:一判断题1.瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。
第2章软件工程
一、选择题
1.在软件生产的程序系统时代由于软件规模扩大和软件复杂性提高等原因导致
了___A___
A .软件危机
B .软件工程
C .程序设计革命
D .结构化程序设计
2.“软件工程的概念是为解决软件危机而提出的”这句话的意思是___C______。
A 强调软件工程成功解决了软件危机的问题
B 说明软件危机的存在总是使软件开发不像传统工程项目那样容易管理
C 说明软件工程这门学科的形成是软件发展的需要
D 说明软件工程的概念,即:工程的原则、思想、方法可解决当时软件开发和维护
3.瀑布模型的存在问题是_____B______。
A.用户容易参与开发B.缺乏灵活性 C.用户与开发者易沟通 D.适用可变需求
4.下列关于瀑布模型不正确的是_____B______。
A 瀑布模型上一阶段的变换结果是下一阶段的输入
B 瀑布模型每个阶段都不需要反馈
C 瀑布模型提供了软件开发的基本框架
D 瀑布模型存在局限性
5.快速原型是利用原型辅助软件开发的一种新思想,它是在研究___A___的方法和技术中产生的。
A 需求阶段
B 设计阶段
C 测试阶段
D 软件开发的各个阶段
6.原型化方法是用户和设计者之间执行的一种交互构成,适用于__A____系统。
A.需求不确定性高的B.需求确定的C.管理信息D.实时
7. 信息隐蔽概念与_____A_______这一概念直接的相关。
A 模块的独立性
B 模块类型的划分
C 软件结构定义
D 软件生命周期
8. 为高质量地开发软件项目,在软件结构设计时,必须遵循____A_____原则。
A 信息隐蔽
B 质量控制
C 程序优化
D 数据共享
9._____A_________的目标是确定软件开发工程的总目标,确定工程的可行性。
A 软件定义
B 软件开发
C 软件测试
D 软件维护
10.可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据,因必须给出___B____ 的回答。
A.确定 B.行或不行 C.正确 D.无二义
11.经济可行性研究的范围包括___C____。
A.资源有效性 B.管理制度 C.效益分析 D.开发风险
12.需求分析中开发人员要从用户那里了解____A____。
A.软件做什么 B.用户使用界面 C.输入的信息 D.软件的规模
13. 需求分析阶段的任务是确定____D_____。
A 软件开发方法
B 软件开发工具
C 软件开发费
D 软件系统的功能
14. 需求分析是分析员经了解用户的要求,认真细致地调研、分析,最终建立目标系统的逻辑模型并写出____B_____的过程。
A 模块说明书
B 软件规格说明
C 项目开发计划
D 合同文档
15. 需求规格说明书的作用不包括____C_______
A 软件验收的依据
B 用户与开发人员对软件要做什么的共同理解
C 软件可行性研究的依据
D 软件设计的依据
16. 结构化方法是一种_____D______的软件开发方法。
A 面向用户
B 面向数据结构
C 面向对象
D 面向数据流
17. 结构化分析方法是以数据流图、____D_____和加工说明等描述工具,即用直观的图和简洁的语言来描述软件系统模型
A DFD 图
B PAD 图
C IPO 图
D DD
18. 数据字典是用来定义___D______中的各个成份的具体含义的。
A 流程图
B 功能结构图
C 系统结构图
D 数据流图
19. __B___不是总体设计的图形工具
A 层次图
B 网状图
C 结构图
D HIPO图
20.详细设计的结果基本决定了最终程序的___C____。
A.代码的规模 B.运行速度 C.质量 D.可维护性
21. 软件详细设计阶段的任务是____A____。
A.算法与数据结构设计
B.功能设计
C.调用关系设计
D.输入/输出设计
22. 下面____C_____不是详细设计的图形工具。
A 程序流程图
B N-S图
C PDL
D PAD
23. SD方法设计的结果是____C________。
A 源代码
B 伪代码
C 模块
D 模块结构图
24. 下列关于功能性注释不正确的说法是______B____。
A 功能性注释嵌在源程序中,用于说明程序段或语句的功能以及数据的状态
B 用来说明程序段,需要在每一行都要加注释
C 可使用空行或缩进,以便很容易区分注释和程序
D 修改程序也应修改注释
25. 不属于序言性注释的有_____D______。
A 模块设计者
B 修改日期
C 程序的整体说明
D 语句功能
26. 程序的三种基本控制结构是____B______。
A.过程、子程序和分程序 B.顺序、选择和循环
C.递归、堆栈和队列 D.调用、返回和转移
27. 用结构化语言来描述加工逻辑的外层结构时,以下不属于基本结构的是___C____。
A.顺序结构
B.选择结构
C.嵌套结构
D.重复结构
28. 程序的三种基本控制结构的共同特点是___C_______
A 只能用来描述简单程序
B 不能嵌套使用
C 单入口,单出口
D 仅用于自动控制系统
29. SP设计方法的要点是____A______。
A 自顶向下,逐步求精
B 自顶向下,逐步分解
C 自底向上,逐步求精
D 自底向上,逐步分解
30. 软件测试的目的是______C_______。
A 为了表明程序没有错误
B 为了说明程序能正确地执行
C 为了发现程序中的错误
D 为了评价程序的质量
31. 关于软件测试的目的,下面观点错误的是____C_______。
A.为了发现错误而执行程序的过程
B.一个好的测试用例能够发现至今尚未发现的错误
C.证明程序是正确、没有错误的
D.一个成功的测试用例是发现了至今尚未发现的错误的测试
32. 在白盒技术测试用例的设计中,以下覆盖标准中发现错误能力最强的是____C____。
A 语句覆盖
B 判定/条件覆盖
C 条件组合覆盖
D 判定覆盖
33. ___A_____的前提是完全了解程序的结构和处理过程
A 白盒测试
B 黑盒测试
C α测试
D β测试
34. 在软件测试中,白盒测试方法是通过分析程序的___B___来设计测试用例的方法。
A 应用范围
B 内部逻辑
C 功能
D 输入数据
35. 下面不是黑盒测试方法的是____B_______。
A 边界值分析
B 路径覆盖
C 等价类划分
D 错误推测
36. 测试的关键问题是____D_____。
A 如何组织对软件的评审
B 如何验证程序的正确性
C 如何采用综合策略
D 如何选择测试用例
37. 在进行软件测试时,首先应当进行以下哪项测试,然后再进行组装测试,最后再进行有效性测试___A____
A.单元测试
B.系统测试
C.集成测试
D.确认测试
38. 在软件测试中,首先对每个模块分别进行单元测试,然后再把所有的模块按设计要求组装在一起测试,称为_____D______
A 确认测试
B 系统测试
C 渐增式测试
D 非渐增式测试
39. 若有一个计算类型的程序,它的输入量只有一个X,其范围是[-2.0,2.0],现从输入的角度考虑一组测试用列-2.001,-2,20,2.001,设计这组测试用列的方法是____C______。
A 条件覆盖法
B 等价分类法
C 边界值分析法
D 错误推测法
40. 为了提高测试的效率,应该____D_____。
A.随机地选取测试数据
B.取一切可能的输入数据作为测试数据
C.在完成编码以后制定软件的测试计划
D.选择发现错误可能性大的数据作为测试数据
41. 软件生命周期中所花费的工作量最多的阶段是____D_____。
A.详细设计 B.软件编码 C.软件测试 D.软件维护
42. 改动既不是为了修改错误也不是为了提供软件效率,而是为了今后进行软件维护活动,为进一步改进软件打下基础,这是_____D______。
A 改正性维护
B 适应性维护
C 完善性维护
D 预防性维护
43. 进度安排的好坏往往会影响整个项目的按期完成,下列属于软件进度的方法有___B_______。
A 程序结构图
B 甘特图
C 工程网络图
D E-R 图
44. 下面____D_____不是程序设计小组的组织形式。
A 民主制小组
B 层次式小组
C 主程序员制小组
D 专家制小组
45. 下面_____D_______开发阶段在典型环境下所需的人力百分比最高
A 可行性分析
B 需求分析
C 软件设计
D 测试
二、简答题(见p61页课后习题)
.。