软件工程作业全部答案

合集下载

软件工程作业全部答案

软件工程作业全部答案

软件⼯程作业全部答案1、3. 请读者详细解释软件的定义与程序的定义。

软件的定义:软件 = 程序 + 数据 + ⽂档。

这⾥的程序就是指程序系统。

这⾥的数据不仅包括初始化数据、测试数据,⽽且包括研发数据、运⾏数据、维护数据,也包括软件企业积累的项⽬⼯程数据与项⽬管理数据中的⼤量决策原始记录数据。

这⾥的⽂档指的就是软件开发过程中的分析、设计、实现、测试、维护⽂档、管理⽂档。

现在有⼀种新提法正在引起关注,这种提法就是:软件 = 知识 + 程序 + 数据 + ⽂档。

程序就是计算机为完成特定任务⽽执⾏的指令的有序集合。

从应⽤的⾓度可理解为: ⾯向过程的程序 = 算法 + 数据结构⾯向对象的程序 = 对象 + 信息⾯向构件的程序 = 构件 + 构架。

1、5. 读者同意“四种开发⽅法”与“五个⾯向理论”的提法不?为什么?“四种开发⽅法”就是指“⾯向过程的⽅法、⾯向对象的⽅法、⾯向数据的⽅法、形式化⽅法”,⾯向过程的⽅法来源于⾯向过程的程序设计,⾯向对象的⽅法来源于⾯向对象的程序设计,⾯向数据的⽅法就就是⾯向元数据的⽅法,它来源于关系数据库程序设计,形式化⽅法来源于离散数学中的集合运算与逻辑运算。

四种⽅法各适⽤于不同的场合,各有优缺点,互相促进,构成⼀个开发⽅法论的多极化世界。

“五个⾯向理论”就是指“⾯向流程分析、⾯向数据设计、⾯向对象实现、⾯向功能测试、⾯向过程管理”,它就是在综合“四种开发⽅法”各⾃的优点之后提出的软件⼯程实施理论,就是对前者的继承与发展。

总之,上述提法既精彩⼜实⽤。

2、1 为什么要选择软件开发模型?软件开发模型与软件⽣存周期有什么关系?因为软件开发模型就是软件⼯程研究的四⼤内容之⼀,它虽然不就是软件⼯程研究的重点,但就是在宏观上特别重要。

软件公司的项⽬组在开发⼀个⼤项⽬或产品时,⾸先在技术上必须选择⼀个开发模型,使开发模型⾮常适合这个项⽬或产品的⽣存周期;随后通过对⽣存周期的裁减,来给出适合与本项⽬或产品的软件⽣存周期定义。

软件工程课后作业总

软件工程课后作业总

软件工程是采用工程化的概念、原理、技术和方法指导计算机(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 _。

《软件工程练习题及参考答案》

《软件工程练习题及参考答案》

《软件工程练习题及参考答案》一、单向选择题(四选一、每小题3分,共18分)1、面向对象(Object Oriented)方法是将现实世界的事物以对象的方式(B )到计算机世界的方法。

对应映射反映反射2、盒图也称为(D)或Chapin图。

这种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决问题。

流程图框图判定表N-S图3、面向数据的设计方法就是根据问题的数据结构定义一组映射,把问题的数据结构转换为问题解的(A)结构。

程序数据逻辑物理4、人机界面的风格大致经过了(B)代的演变。

三四五六5、以下不属于白盒测试技术的是(D)逻辑覆盖基本路径测试循环覆盖测试等价类划分6、为改正软件系统中潜藏的错误而进行的维护活动称为(A)。

纠错性维护适应性维护改善性维护预防性维护二、填空题(每空2分,共18分)1.文档—一种数据媒体和其上所记录的(数据)。

2.机器语言、汇编语言:依赖于机器,面向(机器)3.软件有效性,指软件系统的时间和(空间)效率。

4.软件定义过程可通过软件系统的(可行性研究)和需求分析两个阶段来完成。

5.软件定义的基本任务是确定软件系统的工程(需求),也就是要搞清“做什么”。

6.为了使用户需求逐步精细化、完全化、一致化,通常采用(需求建模技术)。

04027.一个软件的深度是指其控制的(层数)。

8.以详细设计说明书为输入,将该输入用某种程序设计语言翻译成计算机可以理解并最终可运行的代码的过程叫(编码)过程。

9.软件维护是软件生命周期的(最后)一个阶段。

三、判断题(每小题2分,共24分,错误打X、正确打√)1.缺乏有力的方法学的指导和有效的开发工具的支持,这往往是产生软件危机的原因之一。

(√)2.一个好的开发人员应具备的素质和能力不包括具有良好的书面和口头表达能力。

(X)3.在用户需求分析时观察用户手工操作过程不是为了模拟手工操作过程,而是为了获取第一手资料,并从中提取出有价值的需求。

(√)4.快速原型技术的适用于软件产品要求大量的用户交互、或产生大量的可视输出、或设计一些复杂的算法等场合。

软件工程作业含答案解析

软件工程作业含答案解析

软件工程第一章作业 (1)1.1什么是计算机软件?软件的特点是什么? (1)1.2简述软件的分类,并举例说明。

(1)1.4什么是软件工程? (1)1.5简述软件工程的基本原则。

(1)1.6软件生存周期分哪几个阶段?分别简述各个阶段的任务。

11.9简述各类软件过程模型的特点。

(2)1.10敏捷软件开发的特点是什么? (2)1.12简述敏捷软件开发的原则。

(2)第2、3章 (3)2.1简述系统工程的任务。

(3)2.2基于计算机的系统由哪些元素组成? (3)2.3简述可行性分析的任务。

(3)3.1需求工程的重要性是什么?举出身边由于需求分析失败而造成整个项目失败的例子。

(3)3.2需求工程具体包括哪些步骤?每个步骤的具体任务是什么?33.3 一个系统分析员应该具备哪些思想素质和基础知识?请说明理由。

43.4列出在制定需求获取策略时的3种主要考虑因素。

(5)3.6举例说明一个系统的3个不同类型的非功能需求 (5)3.8软件需求分析的操作性原则和需求工程的指导性原则是什么? (5)3.9软件需求规约主要包括哪些内容?自己寻找一个实例,亲自写一个需求规约。

.53.10需求验证应该有哪些人参加?画出一个过程模型,说明需求评审应该如何组织。

5第4章 (5)4.1简述软件设计阶段的基本任务 (5)4.2软件设计与质量的关系是怎么样的? (6)4.4简述模块、模块化及模块化设计的概念。

(6)4.6耦合和软件可移植性的概念有何关系?举例说明自己的结论。

(6)4.7用自己的话描述信息隐蔽概念,并讨论信息隐藏与模块独立两概念之间的关系。

64.8什么是模块独立性?设计中为什么模块要独立?如何度量独立性?模块功能独立有何优点? (6)4.9软件设计规约主要包括哪些内容? (7)第5章结构化分析与设计 (7)5.1简述数据流图的主要思想,概述使用数据流图进行需求分析的过程。

75.2分别采用数据流方法中得哪些技术来完成用户需求的精确化、一致化和完全化的任务。

软件工程习题附答案

软件工程习题附答案

软件工程习题附答案软件工程是一门研究和应用如何以系统性、规范化、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。

以下是一些与软件工程相关的习题及答案,希望能帮助您更好地理解这门学科。

一、选择题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、面向对象的三大特性是()、()和()。

软件工程作业

软件工程作业

软件工程-作业一、判断(共计50分,每题2.5分)1、测试计划、测试用例和有关的分析报告一般不用长期保存。

()A. 正确B. 错误参考答案:B2、类封装比对象封装更具体,更细致。

()A. 正确B. 错误参考答案:B3、用黑盒法测试时,测试用例是根据程序内部逻辑设计的。

()A. 正确B. 错误参考答案:B4、面向对象设计的结果,既可以用面向对象语言,也可以用非面向对象语言实现。

()A. 正确B. 错误参考答案:A5、数据流图是结构化设计的最基本的工具。

()A. 正确B. 错误参考答案:B6、良好的面向对象程序设计风格,既包括传统的程序设计风格,也包括为适应而面向对象方法所特有的概念(如继承性)而必须遵循的一些新准则。

()A. 正确B. 错误参考答案:A7、模块化程序设计中,模块越小,模块化的优点越明显。

()A. 正确B. 错误参考答案:B8、软件测试的目的是证明软件是正确的。

()A. 正确B. 错误参考答案:B9、在软件开发中采用原型系统策略的主要困难是成本问题。

()A. 正确B. 错误参考答案:A10、结构化分析是面向数据流进行需求分析的方法。

()A. 正确B. 错误参考答案:A11、质量保证是为了保证产品和服务充分满足消费者要求的质量而进行的有计划,有组织的活动。

()A. 正确B. 错误参考答案:A12、白盒测试无需考虑模块内部执行过程和程序结构,只要了解模块的功能即可。

()A. 正确B. 错误参考答案:B13、软件测试目的是尽可能多地发现软件中存在的错误,将它作为纠错的依据。

()A. 正确B. 错误参考答案:B14、UML是一种面向对象的建模方法。

()A. 正确B. 错误参考答案:B15、类是指具有相同或相似性质的对象的抽象,类的具体化就是对象。

()A. 正确B. 错误参考答案:B16、开发一个软件项目总存在某些不确定性,即存在风险。

有些风险如果控制得不好,可能导致灾难性的后果。

()A. 正确B. 错误参考答案:A17、软件维护的目的就是修改程序中的错误。

(完整word版)软件工程习题集+答案

(完整word版)软件工程习题集+答案

(完整word版)软件工程习题集+答案《软件工程》习题集目录一软件与软件工程 (1)二软件项目管理 (4)三需求分析 (7)四面向对象的需求分析 (10)五软件设计 (15)六程序设计语言和编码 (18)七软件测试 (20)八软件维护 (23)综合试卷一 (25)综合试卷二 (28)综合试卷三 (31)附参考答案: (34)一软件与软件工程参考答案 (34)二软件工程管理参考答案 (37)三需求分析参考答案 (39)四面向对象的需求分析参考答案 (43)五软件设计参考答案 (52)六程序设计语言和编码参考答案 (55)七软件测试参考答案 (59)八软件维护参考答案 (62)综合试卷一参考答案及评分标准 (65)综合试卷二参考答案及评分标准 (68)综合试卷三参考答案及评分标准 (71)一软件与软件工程一、选择题1.软件的主要特性是()B、高成本C、包括程序和文档D、可独立构成计算机系统2.软件工程三要素是()A、技术、方法和工具B、方法、工具和过程C、方法、对象和类D、过程、模型、方法3.包含风险分析的软件工程模型是()A、螺旋模型B、瀑布模型C、增量模型D、喷泉模型4.软件工程的主要目标是()A、软件需求B、软件设计C、风险分析D、软件实现5.下列属于面向对象开发方法的是()A、BoochB、UMLC、CoadD、OMT6.软件危机的主要表现是()A、软件成本太高B、软件产品的质量低劣C、软件开发人员明显不足D、软件生产率低下7.软件开发方法的主要工作模型有()B、循环模型C、瀑布模型D、专家模型8.软件工程的目标有()A、易于维护B、低的开发成本C、高性能D、短的开发期9.软件工程学的目的和意义是()A、应用科学的方法和工程化的规范管理来指导软件开发。

B、克服软件危机。

C、作好软件开发的培训工作。

D、以较低的成本开发出高质量的软件。

二、判断题1.软件就是程序,编写软件就是编写程序。

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

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

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

第一章练习题一、填空题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. “软件危机”是指( )A. 计算机病毒的浮现B. 利用计算机进行经济犯罪活动C. 软件开辟和维护中浮现的一系列问题D. 人们过分迷恋计算机系统2. DFD 中的每一个加工至少需要( )A. 一个输入流B. 一个输出流C. 一个输入或者输出流D. 一个输入流和一个输出流3. 为了提高模块的独立性,模块之间最好是( )A. 控制耦合B. 公共耦合C. 内容耦合D. 数据耦合4. 下面关于 PDL 语言不正确的说法是( )A. PDL 是描述处理过程怎么做B. PDL 是只描述加工做什么C. PDL 也称为伪码D. PDL 的外层语法应符合普通程序设计语言常用的语法规则5. 详细设计与概要设计衔接的图形工具是( )A. DFD 图B. 程序图C. PAD 图D. SC 图6. 不适合作为数据处理与数据库应用的语言是( )A. SQLB. CobolC. 4GLD. Lisp7. 下列关于功能性注释不正确的说法是( )A. 功能性注释嵌在源程序中,用于说明程序段或者语句的功能以及数据的状态B. 注释用来说明程序段,需要在每一行都要加注释C. 可使用空行或者缩进,以便很容易区分注释和程序D. 修改程序也应修改注释8. 下列关于效率的说法不正确的是( )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. 快速原型是利用原型辅助软件开辟的一种新思想,它是在研究( )的方法和技术中产生的。

软件工程作业及参考答案(版)

软件工程作业及参考答案(版)

软件工程作业及参考答案(最新版)-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII软件工程一、软件危机与软件工程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.开发阶段B.计划阶段 C.分析阶段 D.设计阶段7.在软件工程中,软件生存期可分为计划、开发以及维护三个阶段,每个时期又分为若干更小的阶段。

通常,计划时期包括问题定义、可行性研究和①,开发时期包括②、详细设计、编码以及③。

① A.需求分析 B.可行性研究 C.经费预算 D.质量保证② A.需求分析 B.可行性研究C总体设计 D模块化设计③ A.文档编制 B.运行维护C.测试 D.验收8.软件开发中常采用的生命周期方法,由于其特征而一般称其为()。

A.层次模型B.瀑布模型 C.螺旋模型 D.对象模型9.描述软件生存周期的瀑布模型包括计划、(A)、设计、编码、测试、维护等阶段。

其中,设计阶段又可以分成(B)和(C)两个步骤。

A:①需求分析②可行性研究③需求调查④问题定义B,C:①方案设计②代码设计③概要(总体)设计④数据设计⑤详细设计10.什么是软件危机软件危机产生的原因11.生命周期阶段的划分每个阶段的任务二、可行性研究1.可行性研究的任务步骤对于各种可能的方案,从哪几个方面进行可行性研究参考答案:任务:在尽可能短的时间内确定该软件项目是否能够开发,是否值得开发。

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

(完整版)《软件工程》作业及答案.

(完整版)《软件工程》作业及答案.

《软件工程》作业及答案1-1 什么是软件危机?它有哪些典型表现?为什么会出现软件危机?答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

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

软件危机典型表现:对软件开发成本和进度的估计常常很不准确。

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

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

软件常常是不可维护的。

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

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

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

产生软件危机的原因:一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。

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

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

软件是规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。

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

1-2 假设你是一家软件公司的总工程师,当你把图1.1给手下的软件工程师们观看,告诉他们及早发现并改正错误的重要性时,有人不同意你的观点,认为要求在错误进入软件之前就清除它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”你怎么反驳他?1-3 什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机?答:软件工程是指导计算机软件开发和维护的一门工程学科。

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

软件工程本质特性:1、软件工程关注于大型程序的构造;2、软件工程的中心课题是控制复杂性;3、软件经常变化;4、开发软件的效率非常重要;5、和谐地合作是开发软件的关键;6、软件必须有效地支持它的用户;7、在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品。

软件工程答案(共五则范文)

软件工程答案(共五则范文)

软件工程答案(共五则范文)第一篇:软件工程答案软件工程课后习题答案殷锋主编·天津科学技术出版社注:有些可能错误,读者自己注意第一章一、填空题:1、软件是计算机系统中与硬件相互依存的另一部分,是包括、、及相关文档的的完整集合2、软件工程包括三要素:方法、工具和过程。

3、软件开发的基本方法包括和二、选择题:1、C2、B3、C第二章一、填空题:1、软件生存周期的各个过程可以分成三类,及主要生存周期过程、支持生存周期过程和组织的生存周期过程。

2、软件生存周期包括计划、需求分析、设计、程序编码、软件测试和运行维护6个阶段。

3、软件过程改进(SPI)帮助软件企业对其软件过程的改变进行计划,制定以及实施。

二、填空题1、A2、B三、判断题1、√2、X第三章三、填空题:1、可行性研究的目的是用最小的代价,在尽可能短的时间内,确定够解决2、可行性研究在进行简要需求分析和设计时,要在高层次上以进行3、需求分析阶段产生的最重要的文档是。

4、为解决一个复杂的问题,往往采取的策略是5、SA方法中使用半形式化的描述方式表达需求,采用的主要描述工具是流图和E-R图。

6、数据流图中有四种负号元素,它们是点7、数据字典中有四类条目,分别是8、在IDEF0图中,表示系统功能的图形成为图。

9、在画分层的DFD时,父图与子图的输入/输出的数据流要10、用于描述基本加工的小说明的三种描述工具是定表。

二、选择题1、A2、C3、B4、B5、D6、D7、D8、A9、D10、A11、C12、B第四章一、填空题1、变换型系统由3部分组成:。

2、模块的分解的基本原则是。

3、在软件开发的过程中必须遵循的软件工程原则有:和模块独立性。

二、选择题1、D2、A3、A4、A5、B三、判断题1、√2、X3、X4、√5、X第五章二、填空题1、软件测试是为了而执行程序的过程。

2、运行被测程序的方法称为测试。

3、动态测试中,主要测试软件功能的方法称为法4、选择测试用例,使得被测程序中每个判定的每个分支至少执行一次,这种逻辑覆盖标准为判定/覆盖法。

软件工程测试题+参考答案

软件工程测试题+参考答案

软件工程测试题+参考答案一、单选题(共40题,每题1分,共40分)1、窃听是一种()攻击,攻击者()将自己的系统插入到发送站和接收站之间。

截获是一种()攻击,攻击者()将自己的系统插入到发送站和接受站之间。

A、被动,无须,主动,必须B、被动,必须,主动,无须C、主动,无须,被动,必须D、主动,必须,被动,无须正确答案:A2、如果一名攻击者截获了一个公钥,然后他将这个公钥替换为自己的公钥并发送给接收者,这种情况属于哪一种攻击?A、重放攻击B、Smurf 攻击C、中间人攻击D、字典攻击正确答案:C3、黑客攻击服务器以后,习惯建立隐藏用户,下列哪一个用户在DOS命令net user下是不会显示的。

A、fg#B、fg%C、fg_D、fg$正确答案:D4、下列哪一种方法在支持向量机中有应用A、拉格朗日乘子法B、二分法C、最小二乘法D、极大似然估计正确答案:A5、设顺序线性表的长度为30,分成5块,每块6个元素,如果采用分块查找,则其平均查找长度为A、6B、6.5C、11D、5正确答案:B6、对N个元素的表做顺序查找时,若查找每个元素的概率相同,则平均查找长度为A、NB、N/2C、(N+1)/2D、[(1+N)*N ]/2正确答案:C7、信息安全中PDR模型的关键因素是()。

A、人B、客体C、技术D、模型正确答案:A8、某业务系统具有上传功能,页面上传的文件只能上传到UPLOAD目录,由于上传页面没有过滤特殊文件后缀,存在上传漏洞,而短时间厂家无法修改上传页面源码,现采取如下措施,哪种措施可以暂时防止上传漏洞危害又不影响业务系统正常功能。

A、禁止UPLOAD目录访问权限B、删除上传页面C、禁止UPLOAD目录执行脚本文件D、以上措施都不正确正确答案:C9、在各种作业调度算法中 , 若所有作业同时到达 , 则平均周转时间最短的算法是()。

A、多级反馈队列调度算法B、先来先服务调度算法C、高优先级优先调度算法D、短作业优先调度算法正确答案:D10、下面()不是数据字典的内容。

软件工程习题含答案

软件工程习题含答案

软件工程习题含答案一、单选题(共56题,每题1分,共56分)1.会话侦听与劫持技术属于()技术A、密码分析还原B、协议漏洞渗透C、应用漏洞分析与渗透D、DOS攻击正确答案:B2.若一棵二叉树具有8个度为2的结点,5个度为1的结点,则度为0的结点个数是?A、不确定B、6C、11D、9正确答案:D3.A、B、C、D、E、F依次入栈,其出栈顺序为B、D、C、F、E、A,则该栈最小容量为A、6B、5C、4D、3正确答案:D4.进程由执行状态到阻塞状态的原因可能是()。

A、请求某种资源B、处于执行状态的进程的时间片结束C、释放某种资源正确答案:A5.下列哪一项不是激活函数A、batch normalizationB、reluC、tanhD、sigmoid正确答案:A6.网络安全法规定,网络运营者应当制定(),及时处置系统漏洞、计算机病毒、网络攻击、网络侵入等安全风险。

A、网络安全事件应急演练方案B、网络安全事件应急预案C、网络安全事件补救措施D、网络安全规章制度正确答案:B7.下列哪种算法更适合做时间序列建模A、CNNB、决策树C、LSTMD、贝叶斯算法正确答案:C8.下面()不是数据字典的内容。

A、外部实体B、程序C、数据结构D、处理逻辑正确答案:B9.通过网页上的钓鱼攻击来获取密码的方式,实质上是一种()。

A、旁路攻击B、社会工程学攻击C、暴力破解攻击D、密码分析学正确答案:B10.已知 10*12的二维数组 A ,以行序为主序进行存储,每个元素占1个存储单元,已知A[1][1]的存储地址为 420 ,则 A[5][5] 的存储地址为A、470B、471C、472D、473正确答案:C11.不属于进程关键要素的是________。

A、进程控制块B、数据和栈C、原语D、程序正确答案:C12.下列哪一项不是卷积神经网络的典型代表A、ALEXNETB、LSTMC、VGGD、RCNN正确答案:B13.关闭系统多余的服务有什么安全方面的好处?A、使黑客选择攻击的余地更小B、没有任何好处C、使系统进程信息简单,易于管理D、关闭多余的服务以节省系统资源正确答案:A14.为了简化管理,通常对访问者(),以避免访问控制表过于庞大。

软件工程答案

软件工程答案

软件工程答案一、单项选择题1. D2. C3. A4. A5. C6. B7. C8. C9. A10. B11. B12. A13. B14. B15. D16. C17. B18. D19. D20. A21. B22. D二、判断题1. 错2. 对3. 错4. 对5. 错6. 错7. 对8. 对9. 错10. 错11. 错12. 错13. 错14. 错15. 对16. 对17. 对18. 错19. 对20. 对21. 对22. 对23. 错24. 对三、简答题1. 答:软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型。

(模型:是为了理解事物而对事物做出一种抽象,它忽略不必要的细节,它也是事物的一种抽象形式、一个规划、一个程式。

)软件生存周期主要模型:瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型等2. 答:a.软件产品是一种逻辑产品。

b.软件产品的生产主是研制,软件产品的成本主要体现在软件的开发和研制上,软件开发完成后,复制就产生了大量软件产品。

c.软件产品不会用坏,不存在磨损、消耗问题。

d.软件产品的生产主要是脑力劳动,还未完全摆脱手工开发方式,而且碰分是"定做"的。

e.软件费用不断增加,成本相当昂贵。

3. 答:软件工程:用科学知识和技术原理来定义、开发、维护软件的一门学科。

软件工程的目标是成功的建造一个大型软件系统,所谓成功是要达到以下几个目标:a.付出较低的开发成本;b.面到要求的软件功能;c.取得较好的软件性能;d.开发的软件易于移植;e.需要较低的维护费用;f.能按时完成开发任务,及时交付使用;g.开发的软件可靠性高;软件工程的内容:1)软件开发技术:软件开发方法、软件开发过程、软件开发工具和环境。

2)软件开发管理:软件管理学、软件经济学、软件心理学4. D5. B6. B7. 答:a,结构化语言b,判定表c.判定树8. 答:需求分析是指:开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式主义功能规约(需求规格说明)的过程。

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

1、3. 请读者详细解释软件的定义与程序的定义。

软件的定义:软件 = 程序 + 数据 + 文档。

这里的程序就是指程序系统。

这里的数据不仅包括初始化数据、测试数据,而且包括研发数据、运行数据、维护数据,也包括软件企业积累的项目工程数据与项目管理数据中的大量决策原始记录数据。

这里的文档指的就是软件开发过程中的分析、设计、实现、测试、维护文档、管理文档。

现在有一种新提法正在引起关注,这种提法就是:软件 = 知识 + 程序 + 数据 + 文档。

程序就是计算机为完成特定任务而执行的指令的有序集合。

从应用的角度可理解为: 面向过程的程序 = 算法 + 数据结构
面向对象的程序 = 对象 + 信息
面向构件的程序 = 构件 + 构架。

1、5. 读者同意“四种开发方法”与“五个面向理论”的提法不?为什么?
“四种开发方法”就是指“面向过程的方法、面向对象的方法、面向数据的方法、形式化方法”,面向过程的方法来源于面向过程的程序设计,面向对象的方法来源于面向对象的程序设计,面向数据的方法就就是面向元数据的方法,它来源于关系数据库程序设计,形式化方法来源于离散数学中的集合运算与逻辑运算。

四种方法各适用于不同的场合,各有优缺点,互相促进,构成一个开发方法论的多极化世界。

“五个面向理论”就是指“面向流程分析、面向数据设计、面向对象实现、面向功能测试、面向过程管理”,它就是在综合“四种开发方法”各自的优点之后提出的软件工程实施理论,就是对前者的继承与发展。

总之,上述提法既精彩又实用。

2、1 为什么要选择软件开发模型?软件开发模型与软件生存周期有什么关系?
因为软件开发模型就是软件工程研究的四大内容之一,它虽然不就是软件工程研究的重点,但就是在宏观上特别重要。

软件公司的项目组在开发一个大项目或产品时,首先在技术上必须选择一个开发模型,使开发模型非常适合这个项目或产品的生存周期;随后通过对生存周期的裁减,来给出适合与本项目或产品的软件生存周期定义。

软件的开发模型与软件生存周期有关:不同的开发模型,可能对应着不同的生存周期。

生存周期不同,该软件的开发阶段划分、评审次数、基线标准都有所不同,甚至维护方法都有所区别。

2、2简述瀑布模型、增量模型、迭代模型、原型模型的优缺点。

4、2需求分析的目的就是什么?需求分析的难点在哪里?
软件需求分析,其目的就是用于说明软件产品或软件项目需要满足的条件与限制。

在软件工程项目中首先要获取用户的需求,通过对软件需要的提取、分析、文档化以及验证,为进一步的设计与实现提供依据。

需求分析的难点就是:在系统的功能、性能与接口方面,开发者与客户达成完全一致的需求,让客户最终签字确认,并保证在项目验收前,需求相对稳定不变。

万一需求有点变化,双方
必须履行“需求变更管理程序”,而变更管理程序在签订合同时已经做了规定。

要知道,合同就是具有法律效力的。

4、6解释术语:元数据、实体、中间数据。

元数据就是组织数据的数据,描述数据的数据,关于数据的数据。

实体(指实体集或实体型),就是一组相关元数据的集合。

中间数据就是组织统计数据的数据,描述统计数据的数据,关于统计数据的数据。

5、13软件开发计划书应包括哪些内容?
《软件开发计划书》就是软件策划的输出文档,它包括如下10个方面的内容:
(1)软件项目的目的、范围、目标与对象。

(2)软件生存周期的选择与裁剪。

(3)确定软件开发与维护的规范、方法与标准。

(4)软件工作产品的确定。

(5)对工作产品规模的估计。

(6)对工作量与成本的估计。

(7)关键计算机资源的估计与使用情况。

(8)项目的进度、里程碑与评审计划。

(9)风险的识别与评估。

(10)项目工程设施与工具的计划。

6、1 软件设计的输入输出就是什么?
对于签订合同的项目,软件设计的输入时《用户需求报告》/《需求规格说明书》,输出就是《概要设计说明书》与《详细设计说明书》。

对于立项的项目,软件设计的输入时《需求规格说明书》,输出就是《概要设计说明书》与《详细设计说明书》。

6、8为什么软件设计要遵守“抽象,分解与模块化,低藕合高内聚,封装,接口与实现分离”的设计原理?
当前,软件设计过程仍然就是一个非确定性过程,经常就是摸着石头过河。

不同的设计人员对相同的问题可以得到不同的设计方案。

由于设计过程就是一个启发式过程,不就是确定性过程,因此不可能得到一个完全预测的结果。

为此,只能规定一些设计原理或原则,供设计人员共同遵守。

这些原理或原则就是“抽象,分解与模块化,低藕合高内聚,封装,接口与实现分离”。

7、2请简述UML的宏观建模思想与微观建模思想。

UML的宏观建模思想就是:以“9个模型”与“5张视图”为纲,以“9种图”为目,建立系统的UML模型。

“9个模型”包括:业务模型、领域模型、用例模型、分析模型、设计模型、过程模型、部署模型、实现模型、测试模型。

“9种图”包括:类图、对象图、用例图、顺序图、协作图、状态图、活动图、构件图、实施图。

“5张视图”包括:用例视图、设计视图、进程视图、实现视图、实施视图。

UML的微观建模思想就是:基本结构模型、高级结构模型、基本行为模型、高级行为模型、体系结构模型(5个方面,66个微观建模)。

基本结构模型包括:对类建模、对关系建模、对公共机制建模、对图建模、对类图建模。

高级结构模型包括:对类的语义建模,对关系网络建模,对接口、类型与角色建模,成组的元素建模,对体系结构视图建模,对具体实例、原型实例建模,对对象结构建模。

基本行为模型包括:对交互建模、对用例建模、对用例图建模、对交互图建模、对活动图。

高级行为模型包括:对信号族、异常情况建模、对状态机建模、对进程与线程建模、对时间空间建模、对状态图建模。

体系结构模型包括:对构件建模、对实施建模、对协作建模、对模式与框架建模、对构件图建模、对实施图建模、对系统建模。

一般而言,人们最常用的就是建立系统的用例图、类图与顺序图。

7、8 请说明“三个模型”的定义,以及三者之间的关系。

功能模型就是描述系统能做什么,即对系统的功能、性能、接口与界面进行定义。

业务模型就是描述系统在何时、何地、由何角色、按什么业务规则去做,以及做的步骤或流程,即对系统的操作流程进行定义。

数据模型就是描述系统工作前的数据来自何处,工作中的数据存什么地方,工作后的数据放到何处,以及这些数据之间的关联,即对系统的数据结构进行定义。

功能模型与业务模型就是在需求分析时建模,就是两个基本点。

数据模型就是一个中心,在设计时建模。

功能模型与业务模型给数据模型提供数据与维护数据,数据模型支持功能模型与业务模型的正常运行。

通常,数据模型建模用Power Designer,ER win或Oracle Designer工具实现;功能模型用功能点列表(或用况图)表示;业务模型用自然语言加上流程图(或顺序图)表示
8、1 软件实现的输入/输出就是什么?
软件实现的输入就是《详细设计说明书》,输出就是源程序、目标程序以及用户指南。

8、5 编码技术包括哪些内容?
图8-4




编码标准
代码布局
实体命名
错误处理
代码重构
成对编程
9、4试阐述软件测试V模型的思想、不足之处与改进方法?
软件测试V模型的基本思想,如图8-5所示,我们可以初步了解,左侧就是开发阶段,右侧就是测试阶段。

开发阶段先从定义软件需求开始,然后要把这些需求不断的转换到概要设计与详细设计中去,最后形成程序代码。

测试阶段就是在代码编写完成以后,先作单元测试开始,然后就是集成测试、系统测试与验收测试。

图8-5 软件测试V模型
对V模型的进一步阐述就是:当需求分析完成后,验收测试计划也应完成。

当概要设计完成后,系统测试计划也应完成。

当详细设计完成后,集成测试计划也应完成。

当编码完成后,单元测试计划也应完成。

可见,V模型提高了测试的时间与地位。

以上的测试V模型,好像只适合于瀑布开发模型,若就是迭代开发模型,就显得不足了。

实际工作中,V模型只就是提高了测试工作的地位,具体测试方法,仍然就是黑白两个盒子法。

9、6 试说出黑盒测试与白盒测试的区别与联系?
黑盒测试又称功能测试。

在这里,盒子指的就是被测试的软件,“黑盒”就就是只知道被测试软件的外部情况,主要就是界面与接口,被测试软件的内部逻辑结构与数据结构,对测试人员来说就是不可见的,主要关注被测试软件的功能实现。

白盒测试就就是对程序执行路径的测试,又叫做玻璃盒测(Glass Box Testing)、透明盒测试(Clear Box Testing)、结构化测试(Structured Testing)、开放盒测试(Open Box Testing)、基于代码的测试(Code-Based Testing)等等。

说到黑盒测试与白盒测试的联系就是:一般宏观上用黑盒测试,微观上用白盒测试,系统集成人员用黑盒测试方法对系统进行测试,构件开发人员用白盒测试方法对构件进行测试,这就是常用的测试方法。

相关文档
最新文档