软件工程课后作业
软件工程课后作业总
软件工程是采用工程化的概念、原理、技术和方法指导计算机(C )的工程学科。
A、软件开发B、管理技术C、软件开发和维护D、程序设计【单选题】在软件生命周期法中,用户的参与主要在(A)。
A、软件定义期B、软件开发期C、软件维护期D、整个软件生命周期过程中生存周期的瀑布模型一般包括问题定义、可行性研究、( B )、设计、编码、测试、维护等几个阶段。
A、问题定义B、需求分析C、总体设计D、数据库设计软件工程把经过时间考验而证明正确的管理技术和当前能够得到的最好的__D__结合起来。
A、软件开发B、管理方法C、开发环境D、技术方法【单选题】生存周期的瀑布模型一般包括:问题定义、可行性研究、系统设计、编码、测试、__D 等几个阶段。
A、需求分析B、可行性分析C、程序设计D、维护【单选题】快速原型模型的主要特点之一是( D )。
A、开发完毕才见到产品B、及早提供全部完整的软件产品C、开发完毕后才见到工作软件D、及早提供可工作的软件开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( C )。
A、软件工程B、软件周期C、软件危机D、软件产生【单选题】瀑布模型把软件生命周期划分为软件定义、软件开发与( C )3个阶段,而每一个阶段又可细分为若干个更小的阶段。
A、详细设计B、可行性分析C、运行维护D、测试与排错划分软件生存周期的阶段时所应遵循的基本原则是( B )。
A、各阶段的任务尽可能相关性B、各阶段的任务尽可能相对独立C、各阶段的任务在时间上连续D、各阶段的任务在时间上相对独立【单选题】系统定义明确之后,应对系统的可行性进行研究。
可行性研究应包括(B )。
A、软件环境可行性、技术可行性、经济可行性B、经济可行性、技术可行性、操作可行性C、经济可行性、社会可行性、系统可行性D、经济可行性、实用性、社会可行性软件可行性分析是着重确定系统的目标和规模。
对功能、性能以及约束条件的分析应属于下列之中的_ B _。
软件工程课后习题参考答案
软件工程课后习题参考答案软件工程课后习题参考答案1. 第一章规约与软件工程概述1.1 规约的定义规约是软件开发过程中明确要求的描述,包含了对软件需求、设计、实现、测试、部署和维护等各个阶段的要求和约束。
1.2 软件工程的概述软件工程是一门涉及对软件的开发、运行和维护的学科。
它通过应用工程原则和方法,以系统化、规范化、可靠化、经济化和高质量的方式来开发和维护软件。
2. 第二章软件需求规约2.1 软件需求规约的作用软件需求规约是对软件系统所需功能和性能的具体描述和说明,是软件开发的基础和依据。
它指导着开发团队的工作,确保软件的功能和性能符合用户的需求。
2.2 软件需求规约的要素软件需求规约包括功能需求、非功能需求和约束条件。
功能需求描述了软件系统应该具备的功能,非功能需求描述了软件系统的性能要求和质量特性,约束条件描述了软件系统所受限制的条件。
3. 第三章软件设计规约3.1 软件设计规约的目标软件设计规约是对软件系统进行结构化和模块化设计的过程,其目标是确保软件系统具备可靠性、可维护性、可扩展性和可重用性。
3.2 软件设计规约的方法软件设计规约采用面向对象设计、结构化设计和模块化设计等方法。
面向对象设计强调将问题领域的概念和对象转化为软件系统的类和对象,结构化设计强调将系统分解为模块,模块化设计强调模块间的接口和通信。
4. 第四章软件实现规约4.1 软件实现规约的目的软件实现规约是指将软件设计阶段得到的设计规约转化为计算机可执行的程序代码,其目的是确保软件系统的正确性、可靠性、可维护性和可测试性。
4.2 软件实现规约的技术软件实现规约采用编程语言、软件开发工具和软件开发环境等技术。
编程语言提供了描述算法和数据结构的语法和语义,软件开发工具提供了代码编辑、编译、调试和测试等功能,软件开发环境提供了开发的整体支持。
5. 第五章软件测试规约5.1 软件测试规约的目的软件测试规约是对软件系统进行功能、性能和质量等方面的验证和检测,其目的是找出软件系统的错误和缺陷,并修复和改进。
软件工程课后作业参考答案
第六章 作业题参考答案3.画出下列伪码程序的程序流程图和盒图: STARTIF p THENWHILE q DO f END DO ELSEBLOCK g nEND BLOCK END IF STOP 答:(1)流程图如图6-1所示:图6-1从伪码变成的程序流程图 (2)该程序的盒图如图6-2所示:图6-2 从伪码变成的程序盒图4.下图给出的程序流程图代表一个非结构化的程序,请问:(1)为什么说它是非结构化的?(2)设计一个等价的结构化程序。
(3)在(2)题的设计中你使用附加的标志变量flag吗?若没用,请再设计一个使用flag 的程序;若用了,再设计一个不用flag的程序。
答:(1)通常所说的结构化程序,是按照狭义的结构程序的定义衡量,符合定义规定的程序。
图示的程序的循环控制结构有两个出口,显然不符合狭义的结构程序的定义,因此是非结构化的程序。
(2)使用附加的标志变量flag,至少有两种方法可以把该程序改造为等价的结构化程序,图6-3描绘了等价的结构化程序的盒图。
(a)解法1(b)解法2图6-3 与该图等价的结构化程序(用flag)(3)不使用flag把该程序改造为等价的结构化程序的方法如图6-4所示。
图6-4 与该图等价的结构化程序(不用flag)8.画出下列伪码程序的流图,计算它的环形复杂度。
你觉得这个程序的逻辑有什么问题吗?C EXAMPLELOOP:DO WHILE X>0A=B+1IF A>10THEN X=AELSE Y=ZEND IFIF Y<5THEN PRINT X,YELSE IF Y=2THEN GOTO LOOPELSE C=3END IFEND IFG=H+REND DOIF F>0THEN PRINT GELSE PRINT KEND IFSTOP答:(1)该伪码的流程图如图6-8所示:图6-8 程序流程图根据该程序流程图,可得该程序流图如图6-9所示:图6-9 程序流图环形复杂度V(G)=流图中的区域数=流图中判定结点数目+1=6+1=7 (判定结点为:1、3、6、8、10、11)(2)该算法问题在于控制最外层循环的变量Z不仅没有经过初始化,并且在该循环内部没有任何有可能该变Z的语句。
(完整版)软件工程课后习题答案
第一章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. 软件的主要特性是(A B C)。
A) ⽆形 B) ⾼成本C) 包括程序和⽂档D) 可独⽴构成计算机系统2. 软件⼯程三要素是(C D)。
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) 应⽤科学的⽅法和⼯程化的规范管理来指导软件开发B) 克服软件危机C) 作好软件开发的培训⼯作D) 以较低的成本开发出⾼质量的软件⼆、判断题1. 软件就是程序,编写软件就是编写程序。
(×)2. 瀑布模型的最⼤优点是将软件开发的各个阶段划分得⼗分清晰。
(×)3. 结构化⽅法的⼯作模型是使⽤螺旋模型进⾏开发。
(×)4. 结构化⽅法和JSP⽅法都不适合于⼤型软件的开发。
(√)5. 原型化开发⽅法包括⽣成原型和实现原型两个步骤。
(×)6. ⾯向对象的开发⽅法包括⾯向对象的分析、⾯向对象的设计和⾯向对象的程序设计。
( √)7. 软件危机的主要表现是软件的需求量迅速增加,软件价格上升。
(×)8. 软件⼯具的作⽤是为了延长软件产品的寿命。
软件工程课后习题(含答案)
第一章练习题一、填空题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-2 假设你是一家软件公司的总工程师,当你把图1.1给手下的软件工程师们观看,告诉他们及早发现并改正错误的重要性时,有人不同意你的观点,认为要求在错误进入软件之前就清除它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”你怎么反驳他?1-3 什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机?答:软件工程是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。
软件工程本质特性:1、软件工程关注于大型程序的构造;2、软件工程的中心课题是控制复杂性;3、软件经常变化;4、开发软件的效率非常重要;5、和谐地合作是开发软件的关键;6、软件必须有效地支持它的用户;7、在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品。
软件工程课后习题参考答案
软件工程课后习题参考答案软件工程课后习题参考答案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.法律名词及注释本文涉及的法律名词及注释:无。
软件工程(第5版课后答案)
f(作者姓名)
系统搜索指定的作者姓名,并在屏幕上显示该作者的著作的索引号,同时把这些索引存入文件。
设计测试数据以全面测试系统正常操作。 设计测试数据以测试系统的非正常操作。
P175 5
P175 5 参考答案
划分等价类(略) 全面测试系统正常操作 B BS BSD F FD
B:输入关键字,看是否输出约20个加了行号的字,是否与关键字完全相同的字约在屏幕中央。 输入:“计算机” 预期输出:约20个加行号的字 BS:输入关键字,选取屏幕上行号,是否生成包含索引号的文件。 输入:“计算机”;12 预期输出:约20个加行号的字;文件 BSD:输入关键字,选取屏幕上行号,检索索引号有关信息,是否显示文件中索引信息。 输入:“计算机”;12;3 预期输出:约20个加行号的字;文 件;文件中索引信息。 F:输入作者姓名,是否在屏幕上显示该作者的著作的索引号,是否将这些索引存入文件。 输入:“金庸” 预期输出:该作者著作的索引号 FD:输入作者姓名,检索索引号有关信息,是否现实文件中索引信息。 输入:“金庸”;3 预期输出:该作者著作索引号;文件中 索引信息
单击此处可添加副标题
P23 7参考答案
增量模型 缺点: 至始至终开发者和客户纠缠在一起,直到完全版本出来。 优点: 人员分配灵活,刚开始不用投入大量人力资源,当核心产品很受欢迎时,可增加人力实现下一个增量。 当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径,这样就可以先发布部分功能给客户,对客户起到镇静剂的作用。 具有一定的市场。 适合于软件需求不明确、设计方案有一定风险的软件项目。
习题1第6题
什么是软件过程?它与软件工程方法学有何关系?
P23 6
P23 6参考答案
软件工程课后习题及其答案
软件工程习题CH1一、填空题1、软件工程需要解决的问题包括:费用、可靠性、可维护性、生产率和重用。
2、到目前为止,软件生产的发展经历了三个阶段,即程序设计、程序系统和软件工程。
3、计算机科学中的研究曾国均可用于软件工程,但计算机科学侧重于原理和理论,而软件工程侧重于软件系统构造。
4、软件工程有用管理科学的方法和原理进行软件生产的管理。
5、软件工程是用科学知识和技术原理来定义、开发、维护软件的一门科学。
6、软件工程研究的主要内容包括软件开发技术和软件开发管理技术两个方面。
在软件开发技术方面,主要研究开发方法、开发过程、开发工具。
在软件开发管理技术方面主要研究管理学、经济学、心理学。
7、作为一门交叉学科,软件工程具有很强的综合性,它涉及计算机科学、工程科学、管理科学、数学等领域。
8、软件生产周期是指一个软件从提出开发要求开始直到该软件报废为止的整个时期。
通常包括问题定义、可行性研究、需求分析、总体设计、详细设计、编码、测试、维护等活动,可以将这些活动以适当方式分配到不同阶段去完成。
9、开发软件工具的主要目的是为了提高软件生产效率和改善软件的质量。
10、描述软件开发过程中各种活动如何执行的模型称为周期模型。
11、从软件工程诞生以来,已经提出了多种软件开发方法,如结构化方法、面向数据的方法、面向对象的方法,它们对软件工程及软件产业的发展起到了不可估量的作用。
12、结构化方法由结构化分析、结构化设计和结构化程序设计构成。
它是一种面向数据流的开发方法。
13、增量模型是一种非整体开发方法的模型。
软件在该模型中是“逐渐”开发出来的,开发一部分向用户展示一部分,可让用户及早看到部分软件,及早发现问题。
或者先开发一个“原型”软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品。
14、喷泉模型是一种以用户需求为动力,以对象作为驱动的模型,适合于面向对象的开发方法。
它克服了瀑布模型不支持软件重用和多项开发活动集成的局限性。
软件工程课后题答案
软件工程课后题答案1. 简答题1.1 软件过程模型软件过程模型是一种描述软件开发过程中活动、任务和工作产品之间关系的抽象模型。
常见的软件过程模型包括瀑布模型、迭代模型、增量模型和敏捷开发模型等。
每种模型都有其适用的场景和特点。
1.2 软件需求软件需求是指用户对软件系统的功能、性能等方面的要求和约束。
需求分析是软件开发过程中非常重要的一步,它包括需求获取、需求分析、需求规格说明等活动。
需求分析的目标是理解用户需求,为软件开发提供指导。
1.3 需求规格说明需求规格说明是对软件需求进行详细描述和说明的文档。
它包括功能需求、性能需求、界面需求以及其他约束条件等。
需求规格说明的编写要求准确、清晰、可验证,并且要与用户和开发人员达成一致。
1.4 软件设计原则软件设计原则是指在软件设计过程中应该遵循的一些基本原则,以提高软件系统的可维护性、可扩展性和可重用性。
常见的软件设计原则包括单一职责原则、开闭原则、里氏替换原则、依赖倒置原则、接口隔离原则和迪米特法则等。
2.1 敏捷开发方法敏捷开发是一种迭代、逐步开发软件的方法。
它强调快速响应用户需求的变化,通过频繁发布可用的软件版本来获得反馈,并根据反馈进行调整。
敏捷开发方法更加灵活,适用于需求变化频繁的项目。
2.2 结构化程序设计结构化程序设计是一种通过模块化和流程控制来组织程序的方法。
它强调程序应该具有清晰的结构,模块之间的耦合度应该尽量低。
结构化程序设计可以提高程序的可读性和可维护性,减少错误引入的可能性。
2.3 UML建模UML是一种用于面向对象系统开发的建模语言。
它提供了一套丰富的图形符号和建模工具,用于描述系统的结构、行为和交互。
UML建模可以帮助开发人员清晰地表达设计意图,提高沟通效率,并且可以生成可执行代码。
2.4 软件测试技术软件测试是评估软件质量的过程,旨在发现软件中的缺陷和错误。
常见的软件测试技术包括黑盒测试和白盒测试。
黑盒测试关注软件功能是否符合需求,白盒测试则关注程序内部的逻辑结构和代码覆盖率。
软件工程(第二版)课后习题
第一d ìy ī章zhāng1.什么s hén me 是s h ì软件ru ǎnjiàn 危机w ēi j ī?为什么w èi s h én m e 会h u ì产生ch ǎnsh ēng 软件ru ǎnjiàn 危机w ēi j ī?答d á:软件ru ǎnjiàn 危机w ēi j ī是s h ì指z h ǐ在z ài 计算机j ìs u àn j ī软件ru ǎnjiàn 的d e 开发k āi f ā和h é维护w éi h ù过程guòchéng 中zh ōng 遇到y ùd ào 的一系列严重问题。
(1).软件维护费用急剧上升,直接威胁计算机应用的夸大。
(2).软件生产技术进步缓慢 2. 什么是软件生产工程化?工程化生产方法与早期的程序设计方法主要差别在哪里?答:结构化程序设计地出现,使许多产业界认识认识到必须把软件生产从个人化方式改变为工程化。
采用工程的概念、原理、技术和方法开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程,同时这也是工程化生产方法。
3. 分别说明(1)软件开发方法与开发工具;(2)软件技术与软件管理的相互关系。
答:(1)工具和方法,是软件开发技术的两大支柱,它们密切相关。
当一种方法提出来并证明有效后,往往随之研制出相应的工具,来帮助实现和推行这种方法。
新方法在推行初期,总有人不愿接受和采用。
若将新方法融合于工具之中,使人们通过使用工具来了解新方法,就能更快促进新方法的推广。
(2)在工业生产中,即使有先进的技术和设备,管理不善的企业也不能获得良好的效益。
软件工程课后习题参考答案
软件工程课后习题参考答案软件工程课后习题参考答案1·软件工程概述1·1 软件工程的定义和特点软件工程是一门研究和应用如何以系统化、规范化、可量化的方法开发和维护软件的学科。
其特点包括软件开发的目标性、可度量性、可管理性和可预测性。
1·2 软件生命周期模型常见的软件生命周期模型包括瀑布模型、迭代模型、螺旋模型和敏捷模型等。
每个生命周期模型都有其适用的场景和优缺点。
2·软件需求工程2·1 软件需求获取软件需求获取方法包括面谈、问卷调查、用户场景模拟等。
需求获取的目的是明确软件系统的功能、性能和约束条件。
2·2 软件需求分析与规格说明软件需求分析的目标是识别和定义系统的需求,包括功能需求、非功能需求和约束条件。
规格说明是将需求转化为精确、清晰和易于验证的文档。
3·软件设计3·1 结构化设计结构化设计将系统分解为模块,确定模块之间的接口和关系,实现模块化、高内聚、低耦合的设计原则。
3·2 面向对象设计面向对象设计将系统抽象为对象,定义对象的属性和方法,并确定对象之间的关系。
常用的面向对象设计方法有UML(统一建模语言)。
4·软件测试4·1 测试基本概念软件测试是通过运行软件来发现错误和缺陷的过程。
测试的基本概念包括测试用例、测试套件、测试目标和测试覆盖度等。
4·2 测试方法和技术常见的软件测试方法和技术有黑盒测试、白盒测试、灰盒测试、单元测试、集成测试和系统测试等。
每种方法和技术都有其适用的场景和优缺点。
5·软件维护与配置管理5·1 软件维护软件维护是指对已有的软件进行修改、优化、修复错误和适应环境变化的过程。
维护活动包括需求分析、设计、实现、测试和文档更新等。
5·2 软件配置管理软件配置管理是指在软件开发和维护过程中,对软件配置项进行识别、控制、追踪和审查,确保软件可以按需发布、升级和回溯。
软件工程课后作业
第一章1.1答: 软件危机是指在计算机软件开发、使用与维护过程中碰到的一系列严重问题和难题。
它涉及两方面: 如何开发软件, 已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。
软件危机的典型表现:(1) 对软件开发成本和进度的估计经常很不准确。
经常出现实际成本比估算成本高出一个数量级、实际进度比计划进度迟延几个月甚至几年的现象。
而为了赶进度和节约成本所采用的一些权宜之计又往往损害了软件产品的质量。
这些都减少了开发商的信誉, 引起用户不满。
(2) 用户对已完毕的软件不满意的现象时有发生。
(3) 软件产品的质量往往是靠不住的。
(4) 软件经常是不可维护的。
(5) 软件通常没有适当的文档资料。
文档资料不全或不合格, 必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。
(6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。
(7) 开发生产率提高的速度远跟不上计算机应用普及的需求。
软件危机出现的因素:(1) 来自软件自身的特点: 是逻辑部件, 缺少可见性;规模庞大、复杂, 修改、维护困难。
(2) 软件开发与维护的方法不妥: 忽视需求分析;认为软件开发等于程序编写;轻视软件维护。
(3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求, 人们显得力不从心。
1.2答: 在软件开发的不同阶段进行修改付出的代价是很不相同的, 在初期引入变动, 涉及的面较少, 因而代价也比较低;在开发的中期, 软件配置的许多成分已经完毕, 引入一个变动要对所有已完毕的配置成分都做相应的修改, 不仅工作量大, 并且逻辑上也更复杂, 因此付出的代价剧增;在软件“已经完毕”是在引入变动, 当然付出的代价更高。
一个故障是代码错误导致的, 有时这种错误是不可避免的, 但要修改的成本是很小的, 由于这不是整体构架的错误。
1.3答: 1993年IEEE的定义: 软件工程是: ①把系统的、规范的、可度量的途径应用于软件开发、运营和维护过程, 也就是把工程应用于软件;②研究①中提到的途径。
软件工程课后习题参考答案
软件工程课后习题参考答案1.简述软件开发的本质答: 软件开发的本质就是实现问题空间的概念和处理逻辑到解空间的概念和处理逻辑之间的映射。
P192.简述实施软件开发的基本途径。
答: 实施软件开发的基本途径是系统建模。
所谓系统建模,是指运用所掌握的知识,通过抽象,给出该系统的一个结构——系统模型。
P193.简述何谓模型以及软件开发中所涉及的模型。
答: 模型是一个抽象。
该抽象是在意图所确定的角度和抽象层次对物理系统的一个描述,描述其中的成分和成分之间所具有的特定语义的关系,还包括对该系统边界的描述。
软件开发中所涉及的模型可分为两大类,一类称为概念模型,描述了系统是什么;另一类统称为软件模型,描述了实现概念模型的软件解决方案。
4.简述软件开发所涉及的两大类技术。
答: 软件开发所涉及的两大类技术为: 一是求解软件的开发逻辑,二是求解软件的开发手段。
5、简述需求与需求规约的基本性质。
答:需求的基本性质:1) 必要的,该需求是用户所要求的。
2) 无歧义的,该需求只能用一种方式解释。
3) 可测的,该需求是可进行测试的。
4) 可跟踪的,该需求可从一个开发阶段跟踪到另一个阶段。
5) 可测量的,该需求是可测量的。
需求规约的基本性质:1) 重要性和稳定性程度: 按需求的重要性和稳定性,对需求进行分级。
2) 可修改的: 在不过多地影响其他需求的前提下,可以容易地修改一个单一需求。
3)完整的:没有被遗漏的需求。
4)一致的:不存在互斥的需求。
6、简述软件需求的分类答:软件需求可以分为两大类:一类是功能需求,一类是非公能需求,而非公能需求可分为性能需求,外部接口需求、功能需求7、举例说明功能需求和非功能需求之间的基本关系。
答:非功能需求可作用于一个或多个功能需求,例如非功能需求可作用于一个或多个功能需求其中,非功能需求1作用于功能需求1和功能需求3等;非功能需求2作用于功能需求2等。
P248、有哪几种常用的初始需求发现技术?答:有5种常用的需求发现技术:自悟、交谈、观察、小组会和提炼。
软件工程课后题答案大全(详细)
软件工程习题解答第一章概述3.什么是软件危机?其产生的原因是什么?软件危机:软件发展第二阶段的末期,由于计算机硬件技术的进步。
一些复杂的、大型的软件开发项目提出来了,但,软件开发技术的进步一直未能满足发展的要求。
在软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。
主要表现在以下几个方面:a.经费预算经常突破,完成时间一再拖延。
b.开发的软件不通满足用户要求。
c.开发的软件可维护性差。
d. 开发的软件可靠性差。
软件危机产生的原因是由于软件产品本身的特点以及开发软件的方式、方法、技术和人员引起的:a.软件的规模越来越大,结构越来越复杂。
b.软件开发管理困难而复杂。
c.软件开发费用不断增加。
d.软件开发技术落后。
e.生产方式落后。
f.开发工具落后,生产率提高缓慢。
4.什么是软件工程?它的目标和内容是什么?软件工程:用科学知识和技术原理来定义、开发、维护软件的一门学科。
软件工程的目标是成功的建造一个大型软件系统,所谓成功是要达到以下几个目标:a.付出较低的开发成本;b.面到要求的软件功能;c.取得较好的软件性能;d.开发的软件易于移植;e.需要较低的维护费用;f.能按时完成开发任务,及时交付使用;g.开发的软件可靠性高;软件工程的内容:1)软件开发技术:软件开发方法、软件开发过程、软件开发工具和环境。
2)软件开发管理:软件管理学、软件经济学、软件心理学。
6.什么是软件生存周期?它有哪几个活动?软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。
软件生存周期包括:可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等.7.什么是软件生存周期模型?有哪些主要模型?软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型。
(模型:是为了理解事物而对事物做出一种抽象,它忽略不必要的细节,它也是事物的一种抽象形式、一个规划、一个程式。
软件工程课后作业软件工程第4版课后答案
软件工程课后作业软件工程第4版课后答案软件工程第4版课后答案第一题:1. 什么是软件工程?软件工程的目标是什么?软件工程是一种应用工程原理和方法来开发和维护高质量软件的学科。
它涵盖了软件开发生命周期的各个阶段,包括需求分析、设计、编码、测试、部署和维护等。
软件工程的目标是以系统化、规范化和可控的方式来开发软件,使得软件能够满足用户的需求,具有高质量、高可靠性和高效率。
第二题:2. 软件工程的关键特性是什么?软件工程的关键特性包括可靠性、可维护性、可复用性和可管理性。
可靠性指的是软件在预期情况下能够正确运行的能力;可维护性指的是容易对软件进行修改和更新;可复用性指的是能够将软件组件应用于不同的项目中;可管理性指的是有效地管理和控制软件开发过程和项目资源。
第三题:3. 软件开发生命周期中的阶段有哪些?软件开发生命周期包括需求分析、设计、编码、测试、部署和维护等阶段。
需求分析阶段是确定软件系统需求的过程,包括收集、分析和规划需求;设计阶段是定义软件系统的结构和组织,确定软件的架构和模块划分;编码阶段是根据设计产生的规范和文档来实现软件系统;测试阶段是验证软件系统是否满足需求和质量标准;部署阶段是将软件系统转移到用户环境并进行正式使用;维护阶段是对软件进行修改和改进,以保持其可用性和稳定性。
第四题:4. 什么是质量保证?软件开发中的质量保证活动有哪些?质量保证指的是通过有效的管理和控制手段,确保软件开发过程和软件产品的质量。
软件开发中的质量保证活动包括需求评审、设计评审、代码审查、单元测试、功能测试、性能测试、用户验收测试等。
通过这些活动,可以及早发现和解决开发中的问题,确保软件的质量。
第五题:5. 软件项目管理的关键活动有哪些?软件项目管理的关键活动包括项目规划、项目组织、项目估计、进度控制和风险管理等。
项目规划是确定项目目标、任务和资源分配计划等;项目组织是建立和管理项目团队;项目估计是对项目工作量、成本、资源等进行估计和计划;进度控制是监控和调整项目进度;风险管理是识别和应对项目中的风险。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
路松峰_ 2018-07-29 10:32:40
一、简答题
1.什么是软件工程
软件工程是关于软件生产的各个方面的工程学科。
二、判断题
1、软件危机的主要表现是软件需求增加,软件价格上升。
/
正确
2、软件就是程序,编写软件就是编写程序。
错误
三、选择题
1、用来辅助软件开发、运行、维护、管理、支持等过程中的活动的软件称为软件开发工具,通常也称为( A )工具。
A. CASE C. CAM D. CAD
2、在下列选项中,( C )不是软件的特征。
A.系统性与复制性
B.可靠性与一致性
C.有形性与可控性
D.抽象性与智能性
)
3、软件工程的三要素是( B )
A.技术、方法和工具
B.方法、工具和过程
C. 方法、对象和类
D.过程、模型和方法
2
路松峰_ 2018-07-29 10:33:32
一、简答题
…
1、快速原型模型的主要优点是什么
软件产品的开发基本上是线性顺序进行的。
2、什么是模型
模型是认识客观事物时,用文字、符号或者图表等进行简化问题描述的一种方式。
二、判断题
1、在软件开发中采用原型系统策略的主要困难是成本问题。
正确
2、软件过程改进也是软件工程的范畴。
·
正确
三、选择题
1、包含风险分析的软件工程模型是( D )。
A.喷泉模型
B.瀑布模型
C.增量模型
D.螺旋模型
2、软件过程是( C )。
A.特定的开发模型
B.一种软件求解的计算逻辑
C.软件开发活动的集合
D.软件生命周期模型
3、CMM模型将软件过程的成熟度分为5个等级。
在(B )使用定量分析来不断地改进和管理软件过程。
…
第3次作业
路松峰_ 2018-07-29 10:34:34
一、简答题
1、需求分析有哪三种方法
面向功能分析、面向数据分析、面向对象分析
)
2、什么是面向数据结构方法
面向数据结构方法是一类侧重从数据结构方面去分析和表达软件需求,进行软件设计的开发方法。
该方法从数据结构入手,分析信息结构,并用数据结构图来表示,再在此基础上进行需求分析,进而导出软件的结构。
二、判断题
1、需求评审人员主要由开发人员组成,一般不包括用户。
错误
2、非功能需求是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的要求。
正确
三、选择题
;
1、增量模型本质上是一种(C)。
A.线性顺序模型
B.整体开发模型
C. 非整体开发模型
D.螺旋模型
2、需求工程的主要目的是(C)。
A.系统开发的具体方案
B. 进一步确定用户的需求
C. 解决系统是“做什么的问题”
D. 解决系统是“如何做的问题”
3、在E-R模型中,包含以下基本成分(D )。
A.数据、对象、实体
B. 控制、关系、对象
C. 实体、关系、控制
D. 实体、属性、关系
—
1、模块独立要求高耦合低内聚。
错误
2、软件设计中的设计复审和设计本身一样重要,其主要作用是避免后期付出高昂代价。
正确
三、选择题
|
1、软件工程中描述生命周期模型的瀑布模型一般包括计划、需求分析、设计、编码、( D )、维护等几个阶段。
A.产品发布
B.版本更新
C.可行性分析
D.测试
2、为了提高模块的独立性,模块之间最好是( C )。
A.公共环境耦合
B. 控制耦合
C. 数据耦合
D. 特征耦合
3、在面向数据流的软件设计方法中,一般将信息流分为( D )。
A.数据流和控制流
B. 变换流和控制流
C. 事务流和控制流
D. 变换流和事务流
%
2.什么是执行者
·
执行者是与系统交互的人或物,它代表外部实体。
二、判断题
1、软件测试的目的是证明软件是正确的。
错误
2、白盒测试是结构测试,主要以程序的内部逻辑为基础设计测试用例。
正确
三、选择题
1、软件测试的目的是尽可能发现软件中的错误,通常( D )是代码编写阶段可进行的测试,它是整个测试工作的基础。
A.集成测试
B. 系统测试
C. 验收测试
D. 单元测试
2、成功的测试是指运行测试用例后( A )。
/
A.发现了程序错误
B. 未发现程序错误
C. 证明程序正确
D. 改正了程序错误
3、黑盒测试方法根据( B )设计测试用例。
A.程序的调用规则
B. 软件要完成的功能
C.模块间的逻辑关系
D. 程序的数据结构
一、简答题
1.能力成熟度的五个等级是什么
初始级、可重复级、已定义级、已管理级、优化级。
2.软件维护分为哪几类
改正性维护、适应性维护、完善性维护、预防性维护
#
二、判断题
1、类封装比对象封装更具体、更仔细。
错误
2、类是指具有相同或相似性质的对象的抽象,类的具体化就是对象。
正确
三、选择题
1.应用执行对象的操作可以改变该对象的( C )。
A. 行为
B. 功能
C.属性
D. 数据
2.( D )是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐藏的,外界只能通过有限的接口与对象发生联系。
A.多态性
B. 继承
C.消息
D. 封装
…
3.( B )意味着一个操作在不同的类中可以有不同的实现方式。
A. 多继承
B. 多态性
C. 消息
D. 封装
一、简答题
》
1.结构程序设计常见的三种结构是什么
顺序结构、选择结构和循环结构。
2.面向对象建模有哪几种
对象模型、动态模型、功能模型。
二、判断题
1、面向对象分析和设计活动是一个多次反复迭代的过程。
正确
2、一个设计得好的软件系统具有低内聚、高耦合的特征。
错误
三、选择题
/
1.面向对象设计时,对象信息的隐藏主要是通过( A )实现的。
A. 对象的封装
B. 子类的继承性
C. 系统模块化
D. 模块的可重用
2.下面所列的性质中,( D )不属于面向对象程序设计的特征。
A.继承性
B. 重用性
C.封装性
D. 可视化
3.下列是面向对象设计方法中有关对象的叙述,其中( B )是正确的。
A. 对象在内存中没有它的存储区
B. 对象的属性集合是它的特征表示
C. 对象的定义与程序中类型概念相当
D. 对象之间不能相互通信
、
8
路松峰_ 2018-07-29 10:37:13
一、简答题
1.计算环形复杂度。
环形复杂度是一种为程序逻辑复杂性提供定量测度的软件度量,将该度量用于计算程序的基本的独立路径数目,为确保所有语句至少执行一次的测度数量的上界。
、
2.调试的目标是什么它有几种途径
调试则是在进行了成功的测试之后才开始的工作。
调试的目的是确定错误的原因和位置,并改正错误,因此调试也称为纠错(Debug)。
调试的技术手段有简单的调试方法、归纳法、演绎法和回溯法等。
二、判断题
1、面向对象设计的结果,既可以用面向对象语言,也可以用非面向对象语言实现。
正确
2、面向对象测试用例的设计由输入-处理-输出视图或单个模块的算法细节驱动。
正确
三、选择题
1.面向对象程序设计语言不同于其它语言的最主要特点是( C )。
A. 模块性
B. 抽象性
C.继承性
D. 内聚性
,
2.面向对象的测试与传统测试方法的主要区别是( AC )。
A. 面向对象的测试可在编码前进行,传统测试方法在编码后进行
B. 面向对象的测试以需求和设计阶段的测试为主,不需要进行代码测试
C. 测试对象不同
D. 面向对象的测试不需要设计测试用例,只需要进行会议评审
3.面向对象的实现主要包括( A )。
A.把面向对象设计用某种程序设计语言书写为面向对象程序,测试并调试面向对象的程序
B. 面向对象设
第9次作业
路松峰_ 2018-07-29 10:38:07
@
一、简答题
1.主程序员组的核心有几个人其角色名称与分工是什么
主程序员:全面负责系统定义、设计、编码、调试、安装。
辅助程序员:协助主程序员,必要时替代主程序员(平时侧重于测试方案,分析测试结果)。
程序管理员:全部事务性工作(提交上机程序、保存运行语言、进行软件配置)。
2.类构件的重用方式有哪些
实例重用、继承重用和多态重用。
二、判断题
1、部署图描述系统硬件的物理拓扑结构以及在此结构上执行的软件。
正确
)
2、用例之间有扩展、使用、组合等几种关系。
正确
三、选择题
1.( A )是表达系统类及其相互联系的图示,它是面向对象设计的核心,是建立状态图、协作图和其它图的基础。
A. 类图
B. 状态图
C.对象图
D. 部署图。