软件工程概论答案
西交《软件工程概论》在线作业满分答案
西交《软件工程概论》在线作业一、单选题(共 19 道试题,共 38 分。
)1. 对象模型的描述工具是()A. 状态图B. 数据流图C. 对象图D. 结构图正确答案:C2. 软件测试的目的是()A. 证明软件的正确性B. 找出软件系统中存在的所有错误C. 证明软件系统中存在错误D. 尽可能多的发现软件系统中的错误正确答案:B3. 传统的测试策略是从()开始A. 单元测试B. 集成测试C. 系统测试D. 人员测试正确答案:A4. 软件维护工作的最主要部分是()A. 校正性维护B. 适应性维护C. 完善性维护D. 预防性维护正确答案:C5. 以下不属于软件维护的困难表现的是()A. 读懂别人的程序是困难的B. 文档的不一致性C. 源程序及相关文档的错误或丢失D. 软件开发和软件维护在人员和时间上的差异正确答案:C6. 在软件生存周期中,工作量所占比例最大的阶段是()阶段A. 需求分析B. 设计C. 测试D. 维护正确答案:D7. 同一类中有相同的数据结构,这是()级别的共享A. 不同应用B. 同一应用C. 不同类D. 同一类正确答案:D8. 内容耦合指()A. 两个模块之间传递的是数据结构B. 一个模块调用另一个模块时,传递的是控制变量C. 通过一个公共数据环境相互作用的哪些模块间的耦合D. 一个模块直接使用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部正确答案:D9. 以下说法错误的是()A. 面向对象分析与面向对象设计的定义没有明显的区别B. 在实际的软件开发过程中面向对象分析与面向对象设计的界限是模糊的C. 面向对象分析和面向对象设计活动是一个多次反复迭代的过程D. 从面向对象分析到面向对象设计,是一个逐渐扩充模型的过程正确答案:A10. 以下说法错误的是()A. 面向对象方法不仅支持过程抽象,而且支持数据抽象B. 某些面向对象的程序设计语言还支持参数化抽象C. 信息隐蔽通过对象的封装来实现D. 在面向对象方法中,类是最基本的模块正确答案:D11. 以下说法错误的是()A. 面向对象方法不仅支持过程抽象,而且支持数据抽象B. 某些面向对象的程序设计语言还支持参数化抽象C. 信息隐藏通过对象的封装性来实现D. 在面向对象方法中,类是最基本的模块正确答案:D12. 指出PDL是下列()语言A. 高级程序设计语言B. 伪码C. 中级程序设计语言D. 低级程序设计语言正确答案:B13. 下面错误的说法是()A. 每个数据流必须用名词或名词短语命名B. 每个加工必须有名字,通常是动词短语C. 每个数据存储必须用名词或名词短语D. 每个数据源点或终点必须有名字正确答案:A14. 需求分析是()A. 软件开发工作的基础B. 软件生存周期的开始C. 由系统分析员单独完成的D. 由用户自己单独完成的正确答案:A15. 软件工程方法得以实施的主要保证是()A. 硬件环境B. 开发人员的素质C. 软件开发工具和软件开发的环境D. 软件开发的环境正确答案:C16. 软件测试方法中,黑盒测试方法和白盒测试方法是常用的方法,其中黑盒测试方法主要用于测试()A. 结构合理性B. 软件外部功能C. 程序正确性D. 程序内部逻辑正确答案:B17. 瀑布模型的问题是()A. 用户容易参与开发B. 缺乏灵活性C. 用户与开发者易沟通D. 适用可变需求正确答案:B18. 对于集成测试,下列说法错误的是()A. 应对每一个测试用例都执行测试规程B. 应将测试结果与预期结果比较,研究两者的偏离原因C. 将缺陷报告给相关构件工程师,不需要他们修改D. 将缺陷报告给测试设计人员,由它们评估整个测试工作的结果正确答案:C19. 分层DFD是一种比较严格又易于理解的描述方式,它的顶层图描述了系统的()A. 细节B. 输入与输出C. 软件的作者D. 绘制的时间正确答案:B西交《软件工程概论》在线作业二、多选题(共 1 道试题,共 2 分。
软件工程(概论)习题与答案
一、单选题1、软件产品与物质产品有很大的区别,软件产品是一种()产品。
A.有形B.消耗C.逻辑D.文档正确答案:C2、在()年的NATO会议上,软件工程的术语被首次提出。
A.1966B.1968C.1970D.1972正确答案:B3、软件开发中实现映射的基本手段是()A.抽象B.分层C.隔离D.建模正确答案:D4、下列哪项不属于软件工程框架的三元组。
()A.目标B.范围C.原则D.活动正确答案:B5、下列哪个不是软件维护的类型。
()A.完善性维护B.纠错性维护C.适应性维护D.更新性维护正确答案:D6、只有高水平的(),才能生产出高质量的软件产品。
A.软件开发技术B.软件开发工具C.软件工程管理D.项目开发经验正确答案:C二、多选题1、下列关于软件的说法正确的是()A.软件是通过定制进而生产制造出来的B.软件没有磨损老化问题。
C.软件开发的成本很高D.软件开发和运行必须依赖计算机环境正确答案:B、C、D2、下列软件属于系统软件的是()A.操作系统B.编译器C.中间件D.浏览器正确答案:A、B3、下述软件属于支撑软件的是()A.财务管理软件B.编译器C.中间件D.数据库正确答案:C、D4、下述软件属于应用软件的是()A.财务管理软件B.数据库C.编译器D.浏览器正确答案:A、D5、软件工程是一门交叉性学科,下列哪些学科是软件工程涉及的?A.数学B.计算机科学C.管理科学D.工程科学正确答案:A、B、C、D6、下列属于软件模型的是()A.概念模型B.设计模型C.实现模型D.部署模型正确答案:B、C、D7、软件需求阶段所要完成的任务包括()A.需求获取B.需求完善C.需求定义D.需求规约正确答案:A、C、D三、填空题1、软件工程概念的提出是为了解决()。
正确答案:软件危机2、软件设计阶段包括()和()两个阶段。
正确答案:总体设计、详细设计3、软件开发是实现()的概念和处理逻辑到()的概念和处理逻辑的映射。
软件工程概论课后答案解析
第1章软件与软件工程的概念1、1 举出您所知道的应用软件的例子。
办公软件、游戏软件、财务软件、银行软件、人事管理软件、工资管理软件、学籍管理软件等。
1、2 认为“软件就就是程序,软件开发就就是编程序。
”这种观点就是否正确?为什么?认为“软件就就是程序,软件开发就就是编程序。
”这种观点就是错误的。
首先,软件就是计算机系统中与硬件相互依存的另一部分,它就是包括程序,数据及其相关文档的完整集合,程序只就是软件的组成部分之一;其次,在软件开发中,编程只就是软件开发过程的一个阶段。
1、3 如果将软件开发比作高楼大厦的建造,可以将软件的设计比作什么?可以将软件的设计比作建筑设计,软件设计的成果相当于建筑设计的设计图纸。
1、4 什么就是软件危机?它有哪些典型表现?为什么会出现软件危机?软件危机:软件危机就是指在计算机软件的开发与维护过程中所遇到的一系列严重问题。
典型表现:(1)对软件开发成本与进度的估计常常很不准确。
(2)用户对“已完成的”软件系统不满意的现象经常发生。
(3)软件产品的质量往往靠不住。
(4)软件常常就是不可维护的。
(5)软件通常没有适当的文档资料。
(6)软件成本在计算机系统总成本中所占的比例逐年上升。
(7)软件开发生产率提高的速度,既跟不上硬件的发展速度,也远远跟不上计算机应用迅速普及深入的趋势。
产生软件危机的原因:除了软件本身的特点,其原因主要有以下几个方面:(1) 缺乏软件开发的经验与有关软件开发数据的积累,使得开发工作计划很难制定。
(2) 软件人员与用户的交流存在障碍,使得获取的需求不充分或存在错误。
(3) 软件开发过程不规范。
如,没有真正了解用户的需求就开始编程序。
(4) 随着软件规模的增大,其复杂性往往会呈指数级升高。
需要很多人分工协作,不仅涉及技术问题,更重要的就是必须有科学严格的管理。
(5) 缺少有效的软件评测手段,提交给用户的软件的质量不能完全保证。
1、5 什么就是软件工程?软件工程就是指导计算机软件开发与维护的工程学科。
软件工程概论答案
第1章软件与软件工程的概念1.1 举出你所知道的应用软件的例子。
办公软件、游戏软件、财务软件、银行软件、人事管理软件、工资管理软件、学籍管理软件等。
1.2 认为“软件就是程序,软件开发就是编程序。
”这种观点是否正确?为什么?认为“软件就是程序,软件开发就是编程序。
”这种观点是错误的。
首先,软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合,程序只是软件的组成部分之一;其次,在软件开发中,编程只是软件开发过程的一个阶段。
1.3 如果将软件开发比作高楼大厦的建造,可以将软件的设计比作什么?可以将软件的设计比作建筑设计,软件设计的成果相当于建筑设计的设计图纸。
1.4 什么是软件危机?它有哪些典型表现?为什么会出现软件危机?软件危机:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
典型表现:(1)对软件开发成本和进度的估计常常很不准确。
(2)用户对“已完成的”软件系统不满意的现象经常发生。
(3)软件产品的质量往往靠不住。
(4)软件常常是不可维护的。
(5)软件通常没有适当的文档资料。
(6)软件成本在计算机系统总成本中所占的比例逐年上升。
(7)软件开发生产率提高的速度,既跟不上硬件的发展速度,也远远跟不上计算机应用迅速普及深入的趋势。
产生软件危机的原因:除了软件本身的特点,其原因主要有以下几个方面:(1) 缺乏软件开发的经验和有关软件开发数据的积累,使得开发工作计划很难制定。
(2) 软件人员与用户的交流存在障碍,使得获取的需求不充分或存在错误。
(3) 软件开发过程不规范。
如,没有真正了解用户的需求就开始编程序。
(4) 随着软件规模的增大,其复杂性往往会呈指数级升高。
需要很多人分工协作,不仅涉及技术问题,更重要的是必须有科学严格的管理。
(5) 缺少有效的软件评测手段,提交给用户的软件的质量不能完全保证。
1.5 什么是软件工程?软件工程是指导计算机软件开发和维护的工程学科。
软件工程概论的练习题及答案
概述一、填空题1、软件由计算机程序、数据和文档组成。
2、软件是一种逻辑产品,它与物质产品有很大的区别。
3、计算机系统由硬件、软件、使用计算机的人、数据库、文档和执行过程组成。
4、软件的发展,到现在为止,经历了三个阶段:程序设计、程序系统和软件工程。
5、程序设计时代的生产方式是个体手工艺者,程序系统时代的生产方式是手工作坊,软件工程时代的生产方式是工程化。
6、软件工程是一门综合性的交叉学科,它涉及计算机学科工程学科、管理学科和数学学科。
7、计算机科学的成果都可用于软件工程,但计算机科学着重于理论和原理,软件工程着重于建造软件系统。
8、软件工程研究的主要内容是方法、过程和工具等三个方面。
9、软件开发各阶段任务的划分应尽可能相对独立,同一阶段任务的性质应尽可能相同。
10、瀑布模型是将软件生存期各个活动规定为依线性顺序连接的若干阶段的模型。
它规定了各阶段的活动由前至后,相互衔接的固定次序,如同瀑布流水,逐级下落。
11、演化模型是一种非整体开发模型。
先开发一个原型软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的产品。
12、螺旋模型将开发过程分为几个螺旋周期。
在每个螺旋周期内分为四个工作步骤:制定计划、风险分析、开发实施、用户评估。
13、喷泉模型是一种以用户要求为动力,以对象为驱动的模型。
它使开发过程具有迭代性和无间隙性,适用于面向对象开发方法。
二、单项选择题1、软件产品的生产主要是C。
A. 制造B. 复制C. 开发D. 研制2、个体手工劳动是B时代的软件生产方式。
A. 程序系统B. 程序设计C. 软件工程D. 程序编码3、软件工程是一门C学科。
A. 理论性B. 原理性C. 工程性D. 心理性4、软件开发费用只占软件生存期全部费用的B。
A. 1/2B. 1/3C. 1/4D. 2/35、在软件开发过程中大约要花费C%的工作量进行测试和调试。
A. 20B. 30C. 40D. 506、准确地解决“软件系统必须做什么”是B阶段的任务。
软件学院《软件工程概论》试题及答案
软件工程概论考试试卷科目:软件工程概论专业: 软件工程一、 单项选择题:在每小题列出的四个备选答案中只有一个....答案..是符合题目要求。
请将正确答案填入“单项选择题答题表”对应的格中。
(每小题1分,1. 瀑布模型的关键不足在于( )。
A .过于简单B .不能适应需求的动态变更C .过于灵活D .各个阶段需要进行评审 2. 软件危机的表现不包括( )。
A .软件质量不可靠B .软件几乎是不可维护的C .测试过程中发现的错误较多D .缺少文档3. 软件可行性研究一般不考虑( )。
A .是否有足够的人员和相关的技术来支持系统开发B .是否有足够的工具和相关的资源来支持系统开发C .待开发软件是否有市场、经济上是否合算D .待开发的软件是否会有质量问题4. 需求分析的任务不包括( )。
A.确定对系统的综合要求B.分析系统的数据要求C.设计模块内部算法的处理过程D.导出逻辑模型并修正开发计划5. ()和数据流图共同构成系统的逻辑模型,没有它,数据流图就不完整。
A.系统流程图 B.E-R图C.数据字典 D.层次方框图6. 使用实体-联系图(ER图)建立的概念性数据模型中包含3种互相关联的信息:()。
A.数据对象,属性,方法 B.数据对象,属性,联系C.数据表,属性,联系 D.数据表,实体,联系7. 为了提高模块的独立性,模块之间最好使用()。
A. 控制耦合B. 公共耦合C. 内容耦合D. 数据耦合8. 在总体设计阶段,可用来描绘软件结构的图形工具不包括()。
A. 层次图B. HIPO图C.盒图D.结构图9. 结构化程序设计的三种基本控制结构不包括()。
A.顺序 B.选择 C.转移 D.循环10. 下列关于详细设计中的说法中正确的是()。
A.详细设计任务相当于设计程序的“蓝图”B.详细设计的根本目标是应该怎样具体地实现系统C.详细设计≠编写代码D.以上都正确11. 结构化程序之所以具有易于阅读,并且有可能验证其正确性,究其本质是由于()。
软件工程概论(高起专)学习指南 西交大考试题库及答案
软件工程概论(高起专)学习指南一、填空题1、软件是一种(B)产品。
A、有形B、逻辑C、物质D、消耗2、软件工程学的目的应该是最终解决软件生产的(B)问题。
A、提高软件的开发效率B、使软件生产工程化C、消除软件的生产危机D、加强软件的质量保证3、与计算机科学的理论研究不同,软件工程是一门(B)学科。
A、理论性B、工程性C、原理性D、心理性4、在计算机软件开发和维护中所产生的一系列严重的问题通常称为软件危机,这些问题中相对次要的因素是(D)。
A、文档质量B、开发效率C、软件功能D、软件性能5、软件工程学科出现的主要原因是(C)。
A、计算机的发展B、其他工程科学的影响C、软件危机的出现D、程序设计方法学的影响6、软件工程是一种(A)分阶段实现的软件程序开发方法。
A、自顶向下B、自底向上C、逐步求精D、面向数据流7、有关计算机程序功能、设计、编制、使用的文字或图形资料称为(B)。
A、软件B、文档C、程序D、数据8、(A)是计算机程序及其说明程序的各种文档。
A、软件B、文档C、数据D、程序9、软件开发环境支持一定的(C)或按照一定的软件开发模型组织而成。
A、软件生存周期B、软件过程C、软件开发方法D、软件开发模型10、软件开发环境中最主要的组成部分是(C)。
A、软件工具B、项目管理工具C、软件工具D、需求分析工具11、在软件的开发与维护过程中,用来存储、更新、恢复和管理一个软件的多版本,它是(D)工具。
A、文档分析B、项目管理C、成本估算D、版本控制12、数据集成指不同软件工程能相互(B)。
A、合作B、交换数据C、交流D、通信13、一个CASE工作台是一组(B),支持设计、实现或测试等特定的软件开发阶段。
A、工具集B、软件包C、平台集D、程序包14、控制集成是指工具激活后能控制其他(A)的操作。
A、工具B、系统C、软件D、应用15、(D)是指CASE系统嵌入了关于过程活动、阶段、约束和支持这些活动所需的工具的知识。
软件工程概论课后答案
第1章软件与软件工程的概念1.1 举出你所知道的应用软件的例子。
办公软件、游戏软件、财务软件、银行软件、人事管理软件、工资管理软件、学籍管理软件等。
1.2 认为“软件就是程序,软件开发就是编程序。
”这种观点是否正确?为什么?认为“软件就是程序,软件开发就是编程序。
”这种观点是错误的。
首先,软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合,程序只是软件的组成部分之一;其次,在软件开发中,编程只是软件开发过程的一个阶段。
1.3 如果将软件开发比作高楼大厦的建造,可以将软件的设计比作什么?可以将软件的设计比作建筑设计,软件设计的成果相当于建筑设计的设计图纸。
1.4 什么是软件危机?它有哪些典型表现?为什么会出现软件危机?软件危机:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
典型表现:(1)对软件开发成本和进度的估计常常很不准确。
(2)用户对“已完成的”软件系统不满意的现象经常发生。
(3)软件产品的质量往往靠不住。
(4)软件常常是不可维护的。
(5)软件通常没有适当的文档资料。
(6)软件成本在计算机系统总成本中所占的比例逐年上升。
(7)软件开发生产率提高的速度,既跟不上硬件的发展速度,也远远跟不上计算机应用迅速普及深入的趋势。
产生软件危机的原因:除了软件本身的特点,其原因主要有以下几个方面:(1) 缺乏软件开发的经验和有关软件开发数据的积累,使得开发工作计划很难制定。
(2) 软件人员与用户的交流存在障碍,使得获取的需求不充分或存在错误。
(3) 软件开发过程不规范。
如,没有真正了解用户的需求就开始编程序。
(4) 随着软件规模的增大,其复杂性往往会呈指数级升高。
需要很多人分工协作,不仅涉及技术问题,更重要的是必须有科学严格的管理。
(5) 缺少有效的软件评测手段,提交给用户的软件的质量不能完全保证。
1.5 什么是软件工程?软件工程是指导计算机软件开发和维护的工程学科。
软件学院《软件工程概论》试题及答案
软件工程概论考试试卷科目: 软件工程概论专业: 软件工程一、 单项选择题:在每小题列出的四个备选答案中只有一个答案是符合题目要求。
请将正确答案填入“单项选择题答题表”对应的格中。
(每小题1分, 本题共计20分)1. 瀑布模型的关键不足在于( )。
A. 过于简单B. 不能适应需求的动态变更C. 过于灵活D. 各个阶段需要进行评审 C .过于灵活 D .各个阶段需要进行评审2. 软件危机的表现不包括( )。
A. 软件质量不可靠B. 软件几乎是不可维护的C. 测试过程中发现的错误较多D. 缺少文档 C .测试过程中发现的错误较多 D .缺少文档3. 软件可行性研究一般不考虑( )。
A. 是否有足够的人员和相关的技术来支持系统开发B. 是否有足够的工具和相关的资源来支持系统开发C. 待开发软件是否有市场、经济上是否合算D. 待开发的软件是否会有质量问题D.待开发的软件是否会有质量问题4. 需求分析的任务不包括()。
A. 确定对系统的综合要求B. 分析系统的数据要求C. 设计模块内部算法的处理过程D. 导出逻辑模型并修正开发计划D.导出逻辑模型并修正开发计划5. ()和数据流图共同构成系统的逻辑模型, 没有它, 数据流图就不完整。
A. 系统流程图B. E-R图C. 数据字典D. 层次方框图C.数据字典 D.层次方框图6. 使用实体-联系图(ER图)建立的概念性数据模型中包含3种互相关联的信息: ()。
A.数据对象, 属性, 方法 B.数据对象, 属性, 联系C.数据表, 属性, 联系 D.数据表, 实体, 联系C. 数据表,属性,联系D. 数据表,实体,联系C.数据表,属性,联系 D.数据表,实体,联系7. 为了提高模块的独立性, 模块之间最好使用()。
A.控制耦...B.公共耦...C.内容耦...D.数据耦合A. 控制耦合B. 公共耦合C. 内容耦合D. 数据耦合8. 在总体设计阶段, 可用来描绘软件结构的图形工具不包括()。
软件工程概论的练习题及答案
概述一、填空题1、软件由计算机程序、数据和文档组成;2、软件是一种逻辑产品,它与物质产品有很大的区别;3、计算机系统由硬件、软件、使用计算机的人、数据库、文档和执行过程组成;4、软件的发展,到现在为止,经历了三个阶段:程序设计、程序系统和软件工程;5、程序设计时代的生产方式是个体手工艺者,程序系统时代的生产方式是手工作坊,软件工程时代的生产方式是工程化;6、软件工程是一门综合性的交叉学科,它涉及计算机学科工程学科、管理学科和数学学科;7、计算机科学的成果都可用于软件工程,但计算机科学着重于理论和原理,软件工程着重于建造软件系统;8、软件工程研究的主要内容是方法、过程和工具等三个方面;9、软件开发各阶段任务的划分应尽可能相对独立,同一阶段任务的性质应尽可能相同;10、瀑布模型是将软件生存期各个活动规定为依线性顺序连接的若干阶段的模型;它规定了各阶段的活动由前至后,相互衔接的固定次序,如同瀑布流水,逐级下落;11、演化模型是一种非整体开发模型;先开发一个原型软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的产品;12、螺旋模型将开发过程分为几个螺旋周期;在每个螺旋周期内分为四个工作步骤:制定计划、风险分析、开发实施、用户评估;13、喷泉模型是一种以用户要求为动力,以对象为驱动的模型;它使开发过程具有迭代性和无间隙性,适用于面向对象开发方法;二、单项选择题1、软件产品的生产主要是C;A.制造B.复制C.开发D.研制2、个体手工劳动是B时代的软件生产方式;A.程序系统B.程序设计C.软件工程D.程序编码3、软件工程是一门C学科;A.理论性B.原理性C.工程性D.心理性4、软件开发费用只占软件生存期全部费用的B;35、在软件开发过程中大约要花费C%的工作量进行测试和调试;、准确地解决“软件系统必须做什么”是B阶段的任务;A.可行性研究B.需求分析C.软件设计D.程序编码7、软件生存期中时间最长的是D阶段;A.需求分析B.软件设计C.软件测试D.软件运行/维护8、在软件生存期的模型中,D适合于大型软件的开发它吸收了软件工程中“演化”的概念;A.喷泉模型B.基于知识的模型C.瀑布模型D.螺旋模型9、在软件生存期中,用户的参与主要在A;A.软件定义阶段B.软件开发阶段C.软件维护阶段D.整个软件生存期过程中10、在软件开发过程中的每个阶段都要进行严格的D,以尽早发现在软件开发过程中产生的错误;A.检验B.验证C.度量D.评审11、在软件开发和维护过程中需要变更需求时,为了保持软件各个配置成分的一致性,必须实施严格的BA.产品检验B.产品控制C.产品标准化D.开发规范12、实践表明,采用先进的开发技术可提高软件开发的生产率,还可提高软件的D;A.可靠性B.可使用性C.安全性D.可维护性13、为了提高软件开发过程的A,有效地进行管理,应当根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准;A.可见性B.生产率C.安全性D.有效性14、随着开发小组人数的A,因交流开发进展情况和讨论遇到的问题而造成的通信开销也急剧增加;A.增加B.降低C.稳定D.不稳定15、为保证软件开发的过程能够跟上技术的进步,必须不断地灵活地改进软件工程C;A.原则B.工具C.过程D.方法三、选择填空题1、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括内;软件是计算机系统中与硬件相互依存的另一部分,它是包括②、⑦及⑤的完整集合;其中,②是按事先设计的功能和性能要求执行的指令序列;⑦是使程序能够正确操纵信息的数据结构;⑤是与程序开发、维护和使用有关的图文材料;供选择的答案:A~C.①软件②程序③代码④硬件⑤文档⑥外设⑦数据⑧图表2、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括内;开发软件时对提高软件开发人员工作效率至关重要的是①;软件工程中描述生存周期的瀑布模型一般包括计划、①、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成③和⑥两步;供选择的答案:A.①程序开发环境②操作系统的资源管理功能③程序人员数量④计算机的并行处理能力B.①需求分析②需求调查③可行性分析④问题定义C、D.①方案设计②代码设计③概要设计④数据设计⑤运行设计⑥详细设计⑦故障处理设计⑧软件体系结构设计3、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括内;有人将软件的发展过程划分为4个阶段:第一阶段1950~1950年代末称为“程序设计的原始时期”,这时既没有A ,也没有B ,程序员只能用机器指令编写程序;第二阶段1950年代末~1960年代末称为“基本软件期”;出现了①,并逐渐普及;随着④的发展,编译技术也有较大的发展;第三阶段1960年代末~1970年代中期称为“程序设计方法时代”;这一时期,与硬件费用下降相反,软件开发费急剧上升;人们提出了⑤和⑧等程序设计方法,设法降低软件的开发费用;第四阶段1970年代中期~现在称“软件工程时期”;软件开发技术不再仅仅是程序设计技术,而是包括了与软件开发的各个阶段,如⑤、④、编码、单元测试、综合测试、①及其整体有关的各种管理技术;供选择的答案:A~D:①汇编语言②操作系统③虚拟存储器概念④高级语言⑤结构式程序设计⑥数据库概念⑦固件⑧模块化程序设计E~G:①使用和维护②兼容性的确认③完整性的确认④设计⑤需求定义⑥图象处理4、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括内;软件工程的最终目的是以较少的投资获得可维护的、可靠的、高效率的和可理解的软件产品;软件工程技术应遵循⑦、④、⑥、③、一致性、确定性、完备性、可验证性、抽象和信息隐蔽;原型法适用于开发较复杂的系统,原型可分为三种:②、⑤和④;供选择的答案:A~D①有效性②合理性③局部化④协同性⑤实用性⑥模块化⑦抽象⑧信息隐蔽E~G:①复用型②实验型③废弃型④演化型⑤探索型项目管理一、填空题1、要成功地完成软件开发工作的一个主要的决定性因素是项目管理;2、软件过程是软件生存期中的一系列相关工程活动集合;3、所有的软件开发都可以看成是一个问题循环解决过程,其中包括4个截然不同的阶段:状态捕捉、问题定义、技术开发和方案综合;4、在制定软件项目计划之前,必须先明确项目的目标和范围;项目的目标标明了软件项目的目的但不涉及如何去达到这些目的;5、对软件进行度量,是为了表明软件产品的质量,弄清软件开发人员的生产率,建立项目估算的基线,帮助调整对新的工具和附加培训的要求;6、软件质量的事后度量包括正确性、可维护性、完整性和可使用性;其中完整性包括危险性和安全性;7、软件范围包括功能、性能、限制、接口和可靠性;8、软件项目计划的第二个任务是对完成该软件项目所需的资源进行估算;资源包括人与工具;9、对于一个大型的软件项目,要进行一系列的估算处理;主要靠分解和类推的手段进行;10、基本COCOMO模型是一个静态单变量模型,它用一个已估算出的源代码行数LOC为自变量的经验函数来计算软件开发工作量;11、成本-效益分析的目的,是从经济角度评价开发一个新的软件项目是否可行;12、风险估计从两个方面估价风险;一是估计一个风险发生的可能性;一是估价与风险相关的问题出现后将会产生的结果;13、一个软件任务由一个人单独开发,生产率最高;14、在与软件成本相关的影响因素中,人员的能力是最大影响因素;15、软件开发所需的人力随开发的进展逐渐增加,在编码与单元测试阶段达到高峰,以后又逐渐减少;16、在建立项目组织时应注意的原则有三:①尽早落实责任,指定专人负责;②减少接口,要有合理的人员分工、好的组织结构、有效的通信,减少不必要的生产率的损失;③责权均衡;17、风险出现概率可以使用从过去项目、直觉或其它信息收集来的度量数据进行统计分析估算出来;18、用各种不同的方法对风险进行分类是可能的;从宏观上来看,可将风险分为项目风险、技术风险和商业风险;二、选择题1、所有的软件开发都可以看成是一个问题B过程;A.顺序解决B.循环解决C.分类解决D.分组解决2、软件项目管理所涉及的范围覆盖了整个软件D;A.开发过程B.运行与维护过程C.定义过程D.生存期3、为使软件开发获得成功,一个关键问题是必须对软件范围、风险、资源、任务、里程碑、成本,进度等做到心中有数,而C可以提供这些信息;A.计算机辅助工程B.软件开发工具C.软件项目管理D.软件估算4、软件范围标明了软件要实现的基本功能,并尽量以A的方式界定这些功能;A.定量B.规范C.统一D.定性5、只要事先建立特定的度量规程,很容易做到B开发软件所需要的成本和工作量、产生的代码行数等;A.间接度量B.直接度量C.间接估算D.直接估算6、为了计算特征点,可以像计算功能点那样,对信息域值进行计数和加权;此外,需要对一个新的软件特征A进行计数;A.算法B.计算误差C.程序复杂性D.效率7、对于软件的D,有一种简单的面向时间的度量,叫做平均变更等待时间MTTCMeanTimeToChange;这个时间包括开始分析变更要求、设计合适的修改、实现变更并测试它、以及把这种变更发送给所有的用户;A.可靠性B.可修改性C.可测试性D.可维护性8、软件的完整性是度量一个系统抗拒对它的C攻击事故的和人为的的能力;A.可靠性B.正确性C.安全性D.容错性9、对每一种软件资源,应说明4个特性:资源的描述,资源的有效性说明,资源在何时开始需要,使用资源的持续时间;最后两个特性统称为A;A.时间窗口B.时间安排C.日程安排D.资源定义10、业务系统计划工具借助特定的C建立一个组织的战略信息需求的模型,导出特定的信息系统;A.过程性语言B.形式化语言C.元语言D.伪码11、软件开发成本主要是指软件开发过程中所花费的B及相应的代价;A.劳动力B.工作量C.资源D.持续时间12、自顶向下估算软件成本的方法主要是从项目的整体出发进行B,即根据已完成项目的总成本或总工作量,来推算待开发软件的总成本或总工作量,然后按比例将它分配到各开发任务单元中去;A.分解B.类推C.推导D.评估13、自底向上估算软件成本的方法主要是把待开发软件A,直到每一个子任务都已经明确所需要的开发工作量,然后把它们加起来,得到软件开发的总工作量;A.分解B.类推C.推导D.评估16、系统的经济效益B因使用新系统而增加的收入加上使用新系统可以节省的运行费用;A.大于B.等于C.小于D.不等于17、项目复杂性、规模和结构的不确定性构成C估算风险因素;A.技术B.经济C.项目D.商业18、识别风险的一种最好的方法就是利用一组A来帮助人们了解在项目和技术方面有哪些风险;因此,Boehm建议使用一个“风险项目检查表”;A.提问B.项目C.脚本D.场景19、在做风险评价时常采用的一个非常有效的方法就是定义D;A.风险评价标准B.风险影响因子C.风险调整因素D.风险参照水准21、当几个人共同承担软件开发项目中的某一任务时,人与人之间必须通过交流来解决各自承担任务之间的A 问题,即所谓通信问题;A.接口B.衔接C.调用D.控制22、假设一个人单独开发软件,生产率是5000行/人年;若4个人组成一个小组共同开发这个软件,在每条通信路径上耗费的工作量是250行/人年;则组中每人的生产率降低为C、PERT技术叫做B技术,它是采用网络图来描述一个项目的任务网络,安排开发进度,制定软件开发计划的最常用的方法;A.日程安排B.计划评审C.关键路径D.因果图24、在进度压力下赶任务,其成果往往是以B产品的质量为代价的;A.浪费B.牺牲C.抵押D.维持三、选择填空题1、从供选择的答案中选出与下列有关软件过程叙述相对应的正确答案,将其编号填入到相应的括弧内;软件过程是软件4中的一系列相关软件工程3的集合;每一个软件过程又是由一组6、项目8、软件工程产品和交付物以及质量保证SQA点等组成;一个软件过程可以用右图的形式来表示;首先建立一个2过程框架,其中定义了少量可适用于所有软件项目的框架3,再给出各个框架3的任务集合,最后是保护伞活动,如软件质量保证、软件配置管理以及测量等;软件过程模型的选择基于项目和应用的特点、采用的5和工具、要求的控制和需交付的产品;A.④B.③C.⑥D.⑧E.②F.⑤供选择的答案:A~F.①工程②公共③活动④生存期⑤方法⑥工作任务⑦功能⑧里程碑2、从供选择的答案中选出与下列有关软件项目管理叙述相对应的正确答案,将其编号填入到相应的括弧内; 由于软件工程有如下的特点,使软件管理比其它工程的管理更为困难;软件产品2;6标准的过程;大型软件项目往往是3项目;2的作用是为有效地定量地进行管理,把握软件工程过程的实际情况和它所产生的产品质量;在制定计划时,应当对人力、项目持续时间、成本作出4;5实际上就是贯穿于软件工程过程中一系列风险管理步骤;最后,每一个软件项目都要制定一个1,一旦6制定出来,就可以开始着手5;供选择的答案:A.②B.⑥C.③D.②E.④F.①G.⑥H.⑤A~C.①可见的②不可见的③“一次性”④“多次”⑤存在⑥不存在D~H.①进度安排②度量③风险分析④估算⑤追踪和控制⑥开发计划3、从供选择的答案中选出与下列有关软件度量叙述相对应的正确答案,将其编号填入到相应的括弧内;软件的度量包括A1和B4;软件产品的A1包括产生的代码行数、执行速度等;软件产品的B则包括若干质量特性;我们还可进一步将软件度量如右图所示那样分类;软件C度量主要关注软件工程过程的结果;D度量则指明了软件适应明确和不明确的用户要求到什么程度;E度量主要关注软件的一些特性而不是软件开发的全过程;从图中还可看到另一种分类方法:面向F的度量用于收集与直接度量有关软件工程输出的信息和质量信息;面向G的度量提供直接度量的尺度;面向H的度量则收集有关人们开发软件所用方式的信息和人们理解有关工具和方法的效率的信息;A.①B.④C.④D.①E.②F.⑤G.⑦H.③供选择的答案:A~B.①直接度量②尺度度量③二元度量④间接度量C~E.①质量②技术③成本④生产率F~H.①过程②对象③人④存取⑤规模⑥进程⑦功能⑧数据4、从供选择的答案中选出与下列有关软件估算叙述相对应的正确答案,将其编号填入到相应的括弧内;估算资源、成本和进度时需要经验、有用的历史信息、足够的定量数据和作定量度量的勇气;通常估算本身带有A;项目的复杂性越高,规模越大,开发工作量B,估算的A就C;项目的结构化程度提高,进行精确估算的能力就能D,而风险将E;有用的历史信息F,总的风险会减少;供选择的答案:A.③B.②C.⑦D.①E.③F.②A.①风范范型②风格③风险④度量B~F.①增加②越多③降低④不变⑤越少⑥越高⑦越大5、从供选择的答案中选出与下列有关软件估算叙述相对应的正确答案,将其编号填入到相应的括弧内;在软件项目估算时,将代码行LOC和功能点FP数据在两个方面使用:一是作为一个估算变量,度量软件每一个A的大小;一是联合使用从过去的项目中收集到的B和其它估算变量,进行成本和C估算;LOC和FP是两种不同的估算技术,但两者有许多共同的特征,只是LOC和FP技术对于分解所需要的D不同;当用E作为估算变量时,功能分解是绝对必要且应达到很详细的程度,而用F作为估算变量时,分解程度可以不很详细;E是直接估算,F 是间接估算;若计划人员对每个功能分别按最佳的、可能的、悲观的三种情况给出LOC或FP估计值,记作a,m,b,则LOC或FP的期望值E的公式为G,m是加权的最可能的估计值,遵循H;供选择的答案:A.③,B.⑦,C.⑤,D.①,E.②,F.①,G.②,H.③;A~C.①模块②软件项目③分量④持续时间⑤工作量⑥进度⑦基线数据⑧改进数据D.①详细程度②分解要求③改进过程④使用方法E,F.①FP②LOCG.①E=a+m+b/3②E=a+4m+b/6③E=2a+3m+4b/3④H.①χ概率②γ概率③β概率④泊松6、从供选择的答案中选出与下列有关软件估算叙述相对应的正确答案,将其编号填入到相应的括弧内;在考虑各种软件开发资源时,A是最重要的资源;如果把软件开发所需的资源画成一个金字塔形:在塔的上层是最基本的资源A,在底部为B;B包括硬件资源和软件资源;C、D和其它硬件设备属于硬件资源;IPSE工具属于软件资源中的E;为了提高软件的生产率和软件产品的质量,可建立F;供选择的答案:A.②B.③C.②D.④E.⑥F.⑤A,B.①方法②人力③工具④上下文环境C,D.①虚拟机②目标机③自动机④宿主机E,F.①维护工具②分析设计工具③支持工具④编程工具⑤可复用构件库⑥框架工具⑦原型化模拟工具7、从供选择的答案中选出与下列有关软件成本估算叙述相对应的正确答案,将其编号填入到相应的括弧内;定义一个人参加劳动时间的长短为A,其度量单位为PM人月或PY人年;而定义完成一个软件项目或软件任务所需的A为B,其度量单位是人月/项目任务,记作PM人月;进一步地,定义单位A所能完成的软件C的数量为软件D,其度量单位为LOC/PM;它表明一般指E的一个平均值;例如,一个软件的开发工作量如下表所示;该软件共有源代码2900行,其中,500行用于测试,2400行是执行F的源代码;则劳动生产率是GLOC/PM;供选择的答案:A.④B.②C.④D.①E.①F.②G.④A,B,D.①生产率②工作量③成本④劳动量E.①开发全过程②某开发阶段③软件生存期④某开发任务F,C.①软件②程序③进程④产品G.①520②120③320④2408、从供选择的答案中选出与下列有关软件成本估算叙述相对应的正确答案,将其编号填入到相应的括弧内;对于一个大型的软件项目,由于项目的复杂性,需要进行一系列的估算处理;主要按A和B手段进行;估算的方法分为三类:从项目的整体出发,进行B的方法称为C估算法;把待开发的软件细分,直到每一个子任务都已经明确所需要的开发工作量,然后把它们加起来,得到软件开发总工作量的方法称为D估算法;而把待开发的软件项目与过去已完成的软件项目做类比,区分出类似部分和不同部分分别处理的方法称为E估算法;F是由多位专家进行成本估算的方法;供选择的答案:A.③,B.①,C.②,D.③,E.①,F.④A,B.①类推②类比③分解④综合C~F.①差别②自顶向下③自底向上④专家判定技术⑤循序渐进⑥比较10、从供选择的答案中选出与下列有关软件成本估算叙述相对应的正确答案,将其编号填入到相应的括弧内; 一个规模为10KDSI的商用微机远程通信的嵌入型软件,使用中间COCOMO模型进行软件成本估算;程序的名义工作量MM=A;程序实际工作量MM=B;开发所用的时间TDEV=C;如果软件开发人员的工资都按每月6000美元计算,则该软件项目的开发人员的工资总额=D;表1中间COCOMO模型的名义工作量与进度公式表2影响工作量的因素fi的取值A.③,B.②,C.①,D.④供选择的答案:A,B.①②③④.①月②月③月④月D.①万美元②36万美元③万美元④万美元11、从供选择的答案中选出与下列有关软件成本-效益分析叙述相对应的答案,将其编号填入到相应的括弧内; 假设开发某个计算机应用系统的投资额为3000元,该计算机应用系统投入使用后,每年可以节约1000元,5年内可能节约5000元;3000元是现在投资的钱,5000元是5年内节省的钱,两者不能简单地比较;假定年利率为12%,利用计算货币现在价值的公式,可以算出该计算机应用系统投入使用后每年预计节省的金额的现在价值;A.④,B.②,C.③则该系统的纯收入是A,投资回收期是B,投资回收率为C;供选择的答案:A.①元②元③元④元B.①年②年③年④元C.①25%②30%③20%④15%12从供选择的答案中选出与下列有关软件风险分析叙述相对应的正确答案,将其编号填入到相应的括弧内; 在特定情况下,是否必须进行风险分析,是对项目开发的形势进行A后确定的;A可以按如下步骤进行:明确项目的目标、总策略、具体策略和为完成所标识的目标而使用的方法和资源;保证该目标是B,项目成功的标准也是B;考虑采用某些条目作为项目成功的C;根据估计的结果来确定是否要进行风险分析;一般来说,风险分析的方法要依赖于特定问题的需求和有关部门所关心的方面;具体分3步进行;第一步识别潜在的风险项,首先进行D过程;第二步估计每个风险的大小及其出现的可能性,选择一种E,它可以估计各种风险项的值;第三步进行风险评估;风险评估也有三个步骤:确定F,确定G,把风险与“参照风险”做比较;供选择的答案:A.②B.①C.②D.②E.③F.④G.③A.①风险管理②风险估计③风险评价④风险测试B.①可度量的②不可度量的③准确的④不确定的C.①规范②标准③过程模型④设计要求D,E.①信息分类②信息收集③度量尺度④标准⑤度量工具⑥信息获取F,G.①风险的范围②风险的特性③风险的级别④风险的评价标准⑤风险的排除策略13、从供选择的答案中选出与下列有关软件风险分析叙述相对应的正确答案,将其编号填入到相应的括弧内; 风险分析实际上是4个不同的活动,按顺序依次为A、B、风险评价和C;在风险评价时,应当建立一个三元组:ri,li,xi,ri是风险描述,li是D,而xi是风险的影响;一个对风险评价很有用的技术是定义E;F、G、H是三种典型的E;在做风险分析的上下文环境中一个E就存在一个单独的点,叫做参照点或I;在这个点上要公正底给出判断;实际上,参照点能在图上表示成一条平滑的曲线的情况很少,多数情况它是一个J;供选择的答案:A.②,B.③,C.①,D.②,E.①,F.③,G.④,H.⑥,I.②,J.④A~C.①风险驾驭和监控②风险识别③风险估计④风险消除D.①风险的大小②风险的概率③风险的时间④风险的范围E.①风险参照水准②风险度量③风险监控④风险工具F~H.①生产率②功能③成本④进度⑤范围⑥性能I,J.①凹点②崩溃点③终点④区域⑤拐点⑥原点14、从供选择的答案中选出与下列有关软件进度管理叙述相对应的正确答案,将其编号填入到相应的括弧内; 任何软件项目都必须做好项目管理工作,最常使用的进度管理工具是A,当某一开发项目的进度有可能拖延时,应该B;对于一个典型的软件开发项目,各开发阶段需投入的工作量的百分比大致是C;各阶段所需不同层次的技术人员大致是D,而管理人员在各阶段所需数量也不同,相对而言大致是E;供选择的答案:A.①数据流图②程序结构图③因果图④PERT图B.①增加新的开发人员②分析拖期原因加以补救③从别的小组抽调人员临时帮忙④推迟预定完成时间。
【可编辑全文】软件工程概论答案
可编辑修改精选全文完整版软件工程概论答案第1章软件与软件工程的概念1.1 举出你所知道的应用软件的例子。
办公软件、游戏软件、财务软件、银行软件、人事管理软件、工资管理软件、学籍管理软件等。
1.2 认为“软件就是程序,软件开发就是编程序。
”这种观点是否正确?为什么?认为“软件就是程序,软件开发就是编程序。
”这种观点是错误的。
首先,软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合,程序只是软件的组成部分之一;其次,在软件开发中,编程只是软件开发过程的一个阶段。
1.3 如果将软件开发比作高楼大厦的建造,可以将软件的设计比作什么?可以将软件的设计比作建筑设计,软件设计的成果相当于建筑设计的设计图纸。
1.4 什么是软件危机?它有哪些典型表现?为什么会出现软件危机?软件危机:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
典型表现:(1)对软件开发成本和进度的估计常常很不准确。
(2)用户对“已完成的”软件系统不满意的现象经常发生。
(3)软件产品的质量往往靠不住。
(4)软件常常是不可维护的。
(5)软件通常没有适当的文档资料。
(6)软件成本在计算机系统总成本中所占的比例逐年上升。
(7)软件开发生产率提高的速度,既跟不上硬件的发展速度,也远远跟不上计算机应用迅速普及深入的趋势。
产生软件危机的原因:除了软件本身的特点,其原因主要有以下几个方面:(1) 缺乏软件开发的经验和有关软件开发数据的积累,使得开发工作计划很难制定。
(2) 软件人员与用户的交流存在障碍,使得获取的需求不充分或存在错误。
(3) 软件开发过程不规范。
如,没有真正了解用户的需求就开始编程序。
(4) 随着软件规模的增大,其复杂性往往会呈指数级升高。
需要很多人分工协作,不仅涉及技术问题,更重要的是必须有科学严格的管理。
(5) 缺少有效的软件评测手段,提交给用户的软件的质量不能完全保证。
1.5 什么是软件工程?软件工程是指导计算机软件开发和维护的工程学科。
《软件工程概论》课程知识 复习 学习材料 试题与参考答案
《软件工程概论》课程知识复习学习材料试题与参考答案一、单选题1.原型化方法是一种(A)型的设计过程。
A.自外向内B.自顶向下C.自内向外D.自底向上2.下述任务中,不属于软件工程需求分析阶段的是(D)。
A.分析软件系统的数据要求B.确定软件系统的功能需求C.确定软件系统的性能要求D.确定软件系统的运行平台3.在软件生存周期中,用户主要是在(A)参与软件开发。
A.软件定义期B.软件开发期C.软件维护期D.整个软件生存周期过程中4.表示集成是指一个系统中的工具使用共同的风格以及采用共同的用户交互标准集。
表示集成有三种不同级别:窗口系统集成、命令集成和(D)。
A.数据集成B.平台集成C.界面集成D.交互集成5.软件开发环境支持一定的(C)或按照一定的软件开发模型组织而成。
A.软件生存周期B.软件过程C.软件开发方法D.软件开发模型6.技术可行性要解决(D)。
A.存在侵权否B.成本-效益问题C.运行方式可行D.技术风险问题7.瀑布模型是一种(D)。
A.软件开发方法B.软件生存周期C.程序设计方法学D.软件生存周期模型8.面向数据流的软件设计方法可将(C)映射成软件结构。
A.控制结构B.模块C.数据流D.事务流9.一个CASE工作台是一组(A),支持设计、实现或测试等特定的软件开发阶段。
A.工具集B.软件包C.平台集D.程序包10.软件工程学的目的应该是最终解决软件生产的(B)问题。
A.提高软件的开发效率B.使软件生产工程化C.消除软件的生产危机D.加强软件的质量保证11.目前有若干种软件生存周期模型。
例如瀑布模型、增量模型、螺旋模型等。
其中基于知识的模型也称为(B)。
A.演化模型B.智能模型C.变换模型D.喷泉模型12.可行性分析中,系统流程图用于描述(A)。
A.当前运行系统B.当前逻辑模型C.目标系统D.新系统13.软件生存周期模型有多种,下列选项中,(C)不是软件生存周期模型。
A.螺旋模型B.增量模型C.功能模型D.瀑布模型14.从结构化的瀑布模型看,在软件生命周期中的八个阶段中,下面的几个选项中,(C)出错,对软件的影响最大。
软件工程概论课后答案
第1章软件与软件工程的概念1.1 举出你所知道的应用软件的例子。
办公软件、游戏软件、财务软件、银行软件、人事管理软件、工资管理软件、学籍管理软件等。
1.2 认为“软件就是程序,软件开发就是编程序。
”这种观点是否正确?为什么?认为“软件就是程序,软件开发就是编程序。
”这种观点是错误的。
首先,软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合,程序只是软件的组成部分之一;其次,在软件开发中,编程只是软件开发过程的一个阶段。
1.3 如果将软件开发比作高楼大厦的建造,可以将软件的设计比作什么?可以将软件的设计比作建筑设计,软件设计的成果相当于建筑设计的设计图纸。
1.4 什么是软件危机?它有哪些典型表现?为什么会出现软件危机?软件危机:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
典型表现:(1)对软件开发成本和进度的估计常常很不准确。
(2)用户对“已完成的”软件系统不满意的现象经常发生。
(3)软件产品的质量往往靠不住。
(4)软件常常是不可维护的。
(5)软件通常没有适当的文档资料。
(6)软件成本在计算机系统总成本中所占的比例逐年上升。
(7)软件开发生产率提高的速度,既跟不上硬件的发展速度,也远远跟不上计算机应用迅速普及深入的趋势。
产生软件危机的原因:除了软件本身的特点,其原因主要有以下几个方面:(1) 缺乏软件开发的经验和有关软件开发数据的积累,使得开发工作计划很难制定。
(2) 软件人员与用户的交流存在障碍,使得获取的需求不充分或存在错误。
(3) 软件开发过程不规范。
如,没有真正了解用户的需求就开始编程序。
(4) 随着软件规模的增大,其复杂性往往会呈指数级升高。
需要很多人分工协作,不仅涉及技术问题,更重要的是必须有科学严格的管理。
(5) 缺少有效的软件评测手段,提交给用户的软件的质量不能完全保证。
1.5 什么是软件工程?软件工程是指导计算机软件开发和维护的工程学科。
软件工程概论课后习题答案
软件工程概论郑人杰等版第1章软件与软件工程的概念1。
1 举出你所知道的应用软件的例子。
办公软件、游戏软件、财务软件、银行软件、人事管理软件、工资管理软件、学籍管理软件等。
1.2 认为“软件就是程序,软件开发就是编程序。
"这种观点是否正确?为什么?认为“软件就是程序,软件开发就是编程序。
"这种观点是错误的。
首先,软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合,程序只是软件的组成部分之一;其次,在软件开发中,编程只是软件开发过程的一个阶段。
1。
3 如果将软件开发比作高楼大厦的建造,可以将软件的设计比作什么?可以将软件的设计比作建筑设计,软件设计的成果相当于建筑设计的设计图纸。
1。
4 什么是软件危机?它有哪些典型表现?为什么会出现软件危机?软件危机:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题.典型表现:(1)对软件开发成本和进度的估计常常很不准确。
(2)用户对“已完成的”软件系统不满意的现象经常发生。
(3)软件产品的质量往往靠不住.(4)软件常常是不可维护的。
(5)软件通常没有适当的文档资料。
(6)软件成本在计算机系统总成本中所占的比例逐年上升。
(7)软件开发生产率提高的速度,既跟不上硬件的发展速度,也远远跟不上计算机应用迅速普及深入的趋势.产生软件危机的原因:除了软件本身的特点,其原因主要有以下几个方面:(1)缺乏软件开发的经验和有关软件开发数据的积累,使得开发工作计划很难制定。
(2)软件人员与用户的交流存在障碍,使得获取的需求不充分或存在错误.(3)软件开发过程不规范。
如,没有真正了解用户的需求就开始编程序。
(4) 随着软件规模的增大,其复杂性往往会呈指数级升高.需要很多人分工协作,不仅涉及技术问题,更重要的是必须有科学严格的管理。
(5) 缺少有效的软件评测手段,提交给用户的软件的质量不能完全保证。
1.5 什么是软件工程?软件工程是指导计算机软件开发和维护的工程学科。
《软件工程概论》(高涛)作业集答案(专本科函授)
缺乏正确的理论指导,开发人员各行其是;软件规模越来越大,无开发管理经验;软件复杂度越来越高,而开发技术不相适应;缺少先进的开发工具,开发方式落后。
2.答:软件工程是用科学知识和技术原理来定义、开发、维护软件的一门学科。
软件工程研究的主要内容是软件开发技术和软件开发管理两个方面。
在软件开发技术方面,主要是研究软件开发方法、软件开发过程、软件开发工具和环境。
在软件开发管理方面,主要是研究软件管理学、软件经济学、软件心理学等。
3.答:软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。
软件生存周期模型确立了软件开发和演绎中各阶段的次序限制以及参考答案第1章一、填空题1.C omputer Aided Software Engineering2.定义阶段、开发阶段、支持阶段3.可行性研究、项目开发计划、需求分析、软件设计、编码、测试、维护4.软件危机5.软件开发、运行、维护6.瀑布、增量7.线性二、选择题1.B2.A3.C4.A5.B6.B三、问答题1.答:(1)在计算机软件的开发和维护过程中所遇到的一系列严重问题,长期找不到解决这些问题的办法,使问题逐渐积累起来,形成了尖锐的矛盾,从而导致了软件危机。
(2)表现:开发的软件不能满足用户要求;无完整、规范的文档,难以维护;项目计划不周,进度拖延;软件质量差。
(3)原因:缺乏正确的理论指导,开发人员各行其是;软件规模越来越大,无开发管理经验;软件复杂度越来越高,而开发技术不相适应;缺少先进的开发工具,开发方式落后。
2.答:软件工程是用科学知识和技术原理来定义、开发、维护软件的一门学科。
软件工程研究的主要内容是软件开发技术和软件开发管理两个方面。
在软件开发技术方面,主要是研究软件开发方法、软件开发过程、软件开发工具和环境。
在软件开发管理方面,主要是研究软件管理学、软件经济学、软件心理学等。
3.答:软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。
《软件工程概论》题集
《软件工程概论》题集一、选择题(每题2分,共20分)1.软件工程的目标是提高软件的( )。
A. 开发效率B. 维护效率C. 质量和生产率D. 可靠性和复用性答案:C2.在软件开发的生命周期中,需求分析阶段的主要任务是( )。
A. 确定软件开发方法B. 编写程序代码C. 确定软件系统的功能需求D.进行系统测试答案:C3.下列选项中,不属于软件设计原则的是( )。
A. 开闭原则B. 依赖倒转原则C. 迪米特法则D. 尽早编码原则答案:D4.在结构化分析方法中,数据流图(DFD)用于描述( )。
A. 数据在系统中的流动和处理过程B. 软件的模块结构C. 软件的层次结构D. 软件的控制流程答案:A5.白盒测试和黑盒测试的主要区别在于( )。
A. 测试者是否知道程序的内部结构B. 测试是否使用测试用例C. 测试是否在系统开发完成后进行D. 测试是否关注性能答案:A6.敏捷开发方法强调( )。
A. 严格遵循预先定义的计划B. 快速响应变化,交付可用的软件C. 详细的文档和过程控制D. 尽量避免与客户沟通答案:B7.下列哪项不是软件配置管理(SCM)的目标( )。
A. 标识变更B. 控制变更C. 确保变更的正确实施D. 消除所有错误答案:D8.在软件项目中,风险管理的目的是( )。
A. 消除所有风险B. 最小化风险对项目的影响C. 将风险转移给第三方D. 仅关注技术风险答案:B9.面向对象编程(OOP)的三大特征是( )。
A. 封装、继承、多态B. 数据抽象、过程控制、模块化C. 模块化、结构化、封装D. 过程控制、继承、多态答案:A10.软件复用是通过( )来提高软件开发效率的。
A. 使用已有的软件组件B. 增加开发人员数量C. 延长开发时间D. 采用新的开发工具答案:A继续二、填空题(每题2分,共14分)1.软件工程是一种(应用计算机科学、经济学、管理学和其他工程学科的知识和实践,以系统化、规范化、量化的方法开发、运行和维护软件的过程)。
西交14秋《软件工程概论》在线作业答案
软件工程概论西交《软件工程概论》在线作业一,单选题1. 面向对象分析阶段建立的三个模型中,核心的模型是()模型。
A. 功能B. 动态C. 对象D. 分析?正确答案:C2. 一个CASE工作台是一组(),支持设计、实现或测试等特定的软件开发阶段。
A. 工具集B. 软件包C. 平台集D. 程序包?正确答案:A3. 详细设计的任务是确定每个模块的()A. 外部特性B. 内部特性C. 算法和使用的数据D. 功能和输入输出数据?正确答案:B4. 软件工程对维护工作的主要目标是提高(),降低维护的代价。
A. 软件的生产率B. 软件的可靠性C. 软件的可维护性D. 维护的效率?正确答案:A5. 软件开发过程中抽取和整理用户需求并建立问题域精确模型的过程叫()A. 生存期B. 面向对象设计C. 面向对象程序设计D. 面向对象分析?正确答案:D6. 白盒测试方法重视()的度量A. 测试覆盖率B. 测试数据多少C. 测试费用D. 测试周期?正确答案:A7. 下面哪个不是集成测试使用的图模型()A. 顺序图B. 协作图C. 活动图D. 用例图?正确答案:D8. 以下说法错误的是()A. 对象具有很强的表达能力和描述功能B. 对象是人们要进行研究的任何事务C. 对象是封装的最基本单位D. 类封装比对象封装更具体、更细致?正确答案:D9. 面向对象设计语言不同于其他语言的最主要特点是()A. 模块性B. 抽象性C. 继承性D. 共享性?正确答案:C10. 研究软硬件资源的有效性是进行()研究的一方面。
A. 技术可行性B. 经济可行性C. 社会可行性D. 操作可行性?正确答案:A11. SA方法是一种()A. 自顶向下逐层分解的分析方法B. 自底向上逐层分解的分析方法C. 面向对象的分析方法D. 以上都不是?正确答案:A12. 软件设计一般分为总体设计和详细设计,它们之间的关系是()A. 全局和局部B. 抽象和具体C. 总体和层次D. 功能和结构?正确答案:A13. 以下说法错误的是()A. 对象具有很强的表达能力和描述功能B. 对象是人们要进行研究的任何事务C. 对象是封装的基本单位D. 类封装比对象封装更具体、更细致?正确答案:D14. 面向对象程序设计语言与其他程序设计语言的最主要差别是它具有()A. 模块性B. 抽象性C. 继承性D. 共享性?正确答案:C15. 程序的3中基本结构是()A. 过程、子程序、分程序B. 顺序、条件、循环C. 递归、堆栈、队列D. 调用、返回、转移?正确答案:B16. 尽管有不合法的输入,软件仍能继续正常工作的能力是指()A. 兼容性B. 可靠性C. 容错性D. 稳定性?正确答案:C17. 程序内部的各个部分之间存在的联系,用结构图表达时,最关心的是模块的内聚性和()A. 独立性B. 有效性C. 耦合性D. 安全性?正确答案:C18. 需求分析最终结果是产生()A. 项目开发计划B. 可行性分析报告C. 需求规格说明书D. 设计说明书?正确答案:C19. 软件是一种()产品A. 有形B. 逻辑C. 物质D. 消耗?正确答案:B二,多选题1. 技术可行性考虑的问题有()A. 开发风险分析B. 资源分析C. 相关技术的反展?正确答案:ABC三,判断题1. 传统的SA方法主要用于数据处理方面的问题,主要工具DFD体现了系统的“做什么”功能,但它仅是一个静态模型,没有处理的顺序,即控制模型。
软件工程概论课后习题答案
软件工程概论课后习题答案第一题:答案:软件危机是指在软件开发过程中所遇到的一系列问题和挑战。
具体表现为软件项目超过预算、延迟交付、功能缺陷等现象。
造成软件危机的原因包括需求不明确、项目管理不善、技术问题等。
解决软件危机的方法包括引入软件工程的概念和方法、改善需求管理、加强项目管理等。
第二题:答案:软件生命周期是指软件从被提出需求到废弃的整个过程。
常见的软件生命周期模型包括瀑布模型、迭代模型、螺旋模型等。
瀑布模型是最经典的软件生命周期模型,按照顺序划分为需求分析、系统设计、编码、测试、运维等阶段。
迭代模型是将开发过程划分为多个迭代周期,并在每个迭代周期中完成需求分析、设计、编码、测试等工作。
螺旋模型则是将开发过程划分为多个风险评估和迭代的阶段,将风险管理纳入软件开发的全过程。
第三题:答案:软件过程是一组相互关联的活动,用于开发和维护软件系统。
常见的软件过程模型包括瀑布模型、迭代模型、敏捷开发等。
瀑布模型是将软件开发过程划分为需求分析、系统设计、编码、测试、运维等阶段,按照顺序逐个进行。
迭代模型则是将软件开发过程划分为多个迭代周期,每个迭代周期都包含需求分析、设计、编码、测试等活动。
敏捷开发则是一种以人和交互为核心的开发方法,强调迭代开发和灵活响应变化。
第四题:答案:软件质量是指软件产品满足用户需求和期望的程度。
常见的软件质量特性包括正确性、健壮性、可靠性、可维护性、可移植性等。
正确性是指软件是否满足用户需求和规格说明。
健壮性是指软件在异常情况下的容错能力。
可靠性是指软件在一定条件下的稳定性和可信度。
可维护性是指软件是否容易进行修改和维护。
可移植性是指软件在不同环境下的可移植性和兼容性。
第五题:答案:软件测试是通过对软件进行测试活动,检测和预防软件中的缺陷和错误。
常见的软件测试方法包括黑盒测试、白盒测试、灰盒测试等。
黑盒测试是基于需求规格说明进行测试,主要检查软件的功能是否满足需求。
白盒测试是基于软件内部结构进行测试,主要检查软件的代码是否符合规范和逻辑正确。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
可以将软件的设计比作建筑设计,软件设计的成果相当于建筑设计的设计图纸。
什么是软件危机?它有哪些典型表现?为什么会出现软件危机?
软件危机:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
典型表现:
(1)对软件开发成本和进度的估计常常很不准确。
产生软件危机的原因:除了软件本身的特点,其原因主要有以下几个方面:
(1)缺乏软件开发的经验和有关软件开发数据的积累,使得开发工作计划很难制定。
(2)软件人员与用户的交流存在障碍,使得获取的需求不充分或存在错误。
(3)软件开发过程不规范。如,没有真正了解用户的需求就开始编程序。
(4)随着软件规模的增大,其复杂性往往会呈指数级升高。需要很多人分工协作,不仅涉及技术问题,更重要的是必须有科学严格的管理。
(3)软件设计:本阶段要回答的关键问题是“目标系统如何做?”为此,必须在设计阶段中制定设计方案,把已确定的各项需求转换成相应的软件体系结构。结构中的每一组成部分都是意义明确的构件,此即所谓概要设计。进而具体描பைடு நூலகம்每个构件所要完成的工作,为源程序编写打下基础,此即所谓详细设计。
(4)程序编码和单元测试:本阶段要解决的问题是“正确地实现已做的设计”,为此,需要选择合适的编程语言,把软件设计转换成计算机可以接受的程序代码,并对程序结构中的各个模块进行单元测试,然后运用调试的手段排除测试中发现的错误。要求编写出的程序应当是结构良好、清晰易读的,且与设计相一致的。
对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标;
减少了过多测试或测试不足所带来的风险;
在螺旋模型中维护只是模型的另一个周期,在维护和开发之间并没有本质区别。
缺点:螺旋模型是风险驱动的,因此要求软件开发人员必须具有丰富的风险评估经验和这方面的专门知识,否则将出现真正的风险:当项目实际上正在走向灾难时,开发人员可能还以为一切正常。
简述软件生存期由哪些主要的阶段组成,每一阶段的主要任务是什么?
(1)问题定义与可行性研究:问题定义必须回答的关键问题是:“要解决的问题是什么”。可行性研究要回答的关键问题是:“在成本和时间的限制条件下能否解决问题?是否值得做?”。
(2)需求分析:这个阶段的任务仍然不是具体地解决客户的问题,而是准确地回答“目标系统必须做什么”这个问题。
(1)瀑布模型
优点:可强迫开发人员采用规范化的方法;严格地规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。
缺点:由于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要;用户往往需要等待很长时间才能看到可以运行的程序;适应需求变更的能力比较差。
逐步增加产品的功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给用户组织带来的冲击。
项目失败的风险较低,虽然在某些增量构件中可能遇到一些问题,但其他增量构件将能够成功地交付给客户。
优先级最高的服务首先交付,然后再将其他增量构件逐次集成进来。因此,最重要的系统服务将接受最多的测试。
(2)用户对“已完成的”软件系统不满意的现象经常发生。
(3)软件产品的质量往往靠不住。
(4)软件常常是不可维护的。
(5)软件通常没有适当的文档资料。
(6)软件成本在计算机系统总成本中所占的比例逐年上升。
(7)软件开发生产率提高的速度,既跟不上硬件的发展速度,也远远跟不上计算机应用迅速普及深入的趋势。
第
举出你所知道的应用软件的例子。
办公软件、游戏软件、财务软件、银行软件、人事管理软件、工资管理软件、学籍管理软件等。
认为“软件就是程序,软件开发就是编程序。”这种观点是否正确?为什么?
认为“软件就是程序,软件开发就是编程序。”这种观点是错误的。
首先,软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合,程序只是软件的组成部分之一;其次,在软件开发中,编程只是软件开发过程的一个阶段。
(5)缺少有效的软件评测手段,提交给用户的软件的质量不能完全保证。
什么是软件工程?
软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
(5)集成测试和系统测试:集成测试的任务是将已测试过的模块按设计规定的顺序组装起来,在组装的过程中检查程序连接的问题。系统测试的任务是根据需求规格说明的要求,对必须实现的各项需求,逐项进行确认,判定已开发的软件是否符合用户需求,能否交付用户使用。为了更有效地发现系统中的问题,通常这个阶段的工作由开发人员、用户之外的第三者承担。
适用范围:瀑布模型只适用于项目开始时需求已确定的情况。
(2)快速原型模型
优点:有助于满足用户的真实需求;原型系统已经通过与用户的交互而得到验证,据此产生的规格说明文档能够正确地描述用户需求。
缺点:要求开发人员快速建立原型。
适用范围:适用于需求不明确的软件项目。
(3)增量模型
优点:
能在较短时间内向用户提交可完成一些基本功能的产品,即从第一个构件交付之日起,用户就能做一些有用的工作。
缺点:
在把每个新的增量构件集成到现有软件体系结构中时,必须不破坏原来已经开发出的产品。
软件体系结构必须是开放的,即向现有产品中加入新构件的过程必须简单、方便。
适用范围:适用于工期紧张、功能可以划分、比较复杂的软件项目。软件工程师必须有较高的技术水平,能够设计出开放的软件体系结构。
(4)螺旋模型
优点:
(6)运行维护:已交付的软件投入正式使用,便进入运行维护阶段。这一阶段可能持续若干年。软件在运行中可能由于多方面的原因,需要对它进行维护。通常有四种类型的维护:改正性维护、适应性维护、完善性维护和预防性维护。
常见的软件生存期模型主要有哪些?每种模型的优缺点是什么?
常见的软件生存期模型主要有瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型和统一过程。