软件需求工程课后作业答案

第一章 1.需求分析与系统设计之间的界限是什么何时从分析阶段进入设计阶段 需求分析关注系统“做什么”,系统设计关注“如何做”。 当分析阶段完成后才能进入到设计阶段 2.需求处理要注意哪些非技术因素为什么 要注意的非技术因素:组织机构文化、社会背景、商业目标、利益协商等。 因为利用建模与分析技术构建的解决方案一定要和具体的应用环境相关,不存在不依赖具体应用环境的解决方案,因此,在利用建模分析技术进行要求处理是不能忽视具体应用环境的相关因素 3.需求分析与需求工程之间的关系 那就是需求工程含义更广,包括需求获取、需求分析、需求定义

第二章 1.解释名词:问题域,解系统和共享现象,并结合他们的含义说明软件系统如何与现实世界形成互动的 问题域:现实的状况与人们期望的状况产生差异就产生问题。 解系统:软件系统通过影响问题域,能够帮助人们解决问题称为解系统 通过共存现象仅仅是问题域和姐系统的一个部分。而不是他们的全部。 软件系统仅仅是现实世界的一种抽象。所以问题除了共享现象之外。还有很多在进行模型抽象时忽略的其他现实因素。 2.解释下列名词,需求,规格说明,问题域特性和约束,并结合他们的含义说明需求工程的主要任务是什么 需求是用户对问题域中的实体状态或事件的期望描述 规格说明:规格说明是解系统为满足用户需求而提供的解决方案,规定了解系统的行为特征。 问题域的特性:在和解系统相互影响的同时,问题域是自治的,它有自己的运行规律,而且这些规律不会因解系统的引入而发生改变,这种自治的规律性称为问题域特性,当这些特性非常明确时称之为约束。 需求工程的主要任务:1.需求工程必须说明软件系统将应用的环境及目标,说明用来达成这些目标的软件功能,还要说明在设计和实现这些功能时上下文环境对软件完成任务所用的方式、方法所施加的限制和约束。2需求工程必须将目标、功能和约束反映到软件系统中,映射为可行的软件行为,并对软件行为进行准确的规格说明。3需求工程还要妥善处理目标、功能和约束随着时间的演化情况。

第三章 1.需求工程过程的工作基础(即输入)存在哪些他的工作成果(即输出)有哪些 答:需求过程的工作基础是获取用户面临的业务问题,用户期望系统表现出来的各种行为,即需求获取 工作成果:产生一个能够在用户环境下解决用户业务问题的系统方案,并将其文档化为明确的规格说明。 2.描述需求工程的各个活动,说明他们各自的工作基础,工作目标和工作成果 1.需求获取: 工作基础:1.收集背景资料2.定义项目前景和范围3.选择信息的来源4.选择获取方法,执 行获取5.记录获取结果 工作目标:获取用户需求,了解用户在完成任务的时候遇到的问题与期望 工作成果:业务需求,项目的前景和范围,用户需求以及问题域的特征 2.需求分析: 工作基础:1背景分析 2.确定系统边界3.需求建模 4.需求细化 5.确定优先权 6.需求协商 工作目标:1.通过建模整合各种信息,是人们更好地理解问题 2.定义一个需求集合,能够为问题界定一个游戏的解决方案 工作成果:产生一个需求的基线集,它指定了系统或当前版本的系统开发 需完成的任务 3.需求规格说明: 工作基础1.定制文档模板 2.编写文档 工作目标:为了系统涉众之间交流需求信息 工作成果:需求规格文档说明 4.需求验证 工作基础1.执行验证 2问题修改 工作目标:为了尽量不给设计实现测试后续开发活动带来不必要的影响。需求规格说明文档定义必须正确准确地反映用户的意图 工作成果:验证之后,问题得以修正 需求管理: 工作基础:1.建立和维护需求基线集2.建立需求跟踪信息 3进行变更控制 工作目标:保证需求作用的持续稳定和有效发挥 工作成果:需求管理会进变更控制和实现合理的变更请求 拒绝不合理的变更请求,控制变更的成本和影响范围

4.需求工程师需求具备的技能 专业技能,分析技能,交流技能,观察技能,建模技能,写作技能,创新技能,协调技能

第五章 1.为什么要定义项目的前景和范围 答、业务需求、高层解决方案和系统特性都应该被记录下来,定义为项目的前景与范围文档,前景描述了产品的作用和最终的功能,它将所有的涉众都统一到一个方向上 范围指出了当前项目是要解决产品长远规划的那一部分,它为项目规定了需求的界限

案例题: 1.你被任命为替换学生财务资助项目的项目经理。你想开发一个工作陈述来定义范围并降低范围蔓延的风险。财务资助部门的主管坚持要你15个月、600000美元的预算内替换他现有的系统就可以了。他说这就是你需要知道的全部,不需要浪费时间开发一个工作陈述了。省略工作陈述的风险是什么你将如何说服主管 解答:省略工作陈述的风险是不能明确项目的前景和范围。如果省略了工作陈述的话,我们就不能和用户进行很好的沟通与交流,这样,项目的问题也就不能明确,开发人员无法与涉众对问题达成共识;无法明确问题,也就无法发现正确的业务需求,无法定义良好的解决方案及系统特性,继而无法明确项目的前景和范围,这样就会造成项目的不稳定甚至失败!

第六章 1.什么是涉众涉众分析软件系统中常见的涉众 涉众是与要建设的业务系统相关的一切人和事. 涉众分析就是为软件系统寻找并理解关键涉众的过程 常见的涉众:管理着:用户、客户、开发人员、管理者、领域专家、 政府力量和市场力量等 领域专家:在问题域中具有丰富知识的专家 *关注软件中的知识 政府力量:法律法规、长远规划、政策意向 *起约束和指导作用 市场力量:组织中的市场部门人员,关注用户的想法 *关注用户想法 用户:最终使用和操作产品的人 *关注软件功能 客户:为软件系统开发付费的人 *关注经济的成本、收益 开发者:负责实现软件系统的人 *关注技术上的成本和利益

第七章 2.列出面谈的5个步骤 面谈准备的主要工作包括: 1、阅读背景资料 2、确定面谈的主题和目标 3、选择被会见者 4、准备会见被会见者 5、确定问题和类型 第8章 1.原型的定义 原型是一个系统,他内化了一个更迟系统的本质特征。 2.说明原型在需求获取中的作用和试用情景 因为原型是在最终系统产生之前的一个局部真实表现,所以原型方法可以让人们在系统的开发过程中,就能对一些具体问题进行基于事物有效沟通,从而帮助人们今早解决软件开发过程中存在的各种不确定性。 场景: 产品以前从未存在过,而且难以可视化,这些产品属于创新产品,他们的基本需求是潜在的,有很大的不确定性 产品的用户对相关类别的产品没有经验,而且对将要采用的技术也没有经验。此时用户无法明确工作的具体细节,产品的细节需求存在着不确定性 用户进行自己的工作已经有一段时间了,但在完成工作的方式上依然存在障碍。 用户清晰说明他们的需求方面存在困难。在澄清和理解之前,这些需求存在着不确定性 需求的可行性值的怀疑,即具体需求的可满足性存在着不确定性

三、案例题 “我有一个绝妙的主意!”Bea Kwicke宣布,他是系统团队的一位新来的需求工程师,“让我们跳过所有的SDLC垃圾,直接为一切设计原型。我们的项目会进展的更快,还可以节省时间和金钱,并且所有的用户会感到我们似乎很在意他们,而不是连续几个月不与他们交谈。” a)列出你(作为与Bea同一个团队的成员)用来劝阻她不要试图放弃SDLC,而直接为所有项目设计原型的原因。

b)Bea对你所说的话很失望。为了鼓励她,用一段话向她说明,你认为适用于原型化方法的情 (1)主要原因:原型仅仅是开发当中使用的一种手段,它利用得当可以加速开发的进 程,但不能代替软件开发中的所有工作。 (2)情形见下表,尤其是其中红色的部分

第九章 1.为什么需要观方法观察方法的适用情景是什么 答:很多时候用户无法完成主动的信息告知,或者说用户和需求工程师之间的语言交流无法产生有效的结果,这时就有必要采用观察的方法。 采样观察:根据明确的目的选取特定的时间段或者特定的事件进行观察。 民族志:观察者深入到用户中,花费较长的时间(一般为几个月)来观察用户的活动。 话语分析:它通过观察和分析用户交谈中的交互方式或者特定的话语形式的内部结构来发现和获取相关信息。 协议分析:对用户任务的观察。它要求观察对象一边执行任务,一边大声地解释他们在执行任务时产生的各种想法。 任务分析:专门针对人机交互行为的观察。它引入了相关的模型方法来观察、记录和分析用户与软件系统的交互行为 案例题 1. Ceci Awill说:“我想我能记得他所做过的大部分事情。”Ceci准备与OK Corral公司战略规划副总裁Biff Weblldon进行面谈。OK Corral是一家拥有130间牛排连锁店的公司。“我的意思是说,我有好的记性。我认为听他说什么比看他做什么更重要。” 作为需求工程团队的一员,Ceci Awll向你诉说了他要写下在面谈中对Biff的办公司和Biff的活动进行观察的愿望。 (1) 用一段话来说服Ceci,在面谈时仅仅倾听是不够的,观察和记录所观察的内容同样是很重要的。 (2) Ceci似乎接受了你认为观察时很重要的观点,但是不知道该观察什么。列出需要观察的项目和行为,在每一项行为的旁边用一句话指名Ceci通过观察应该得到的信息。 答:(1)面谈并不能确保用户能够将所有的信息都告知需求工程师,诸如一些语言无法确切描述的事务,而观察能够了解用户真正做什么,还能够获取到其他方法不能得到的用户及其工作环境的信息,还可以对从其他方法获取的信息进行确认,所以我们应该重视观察方法的应用。 (2) 观察客户所处的环境(得出何种需求才能更适合客户)。 观察客户行为、习惯特征(得出更适合客户使用的软件需求)。

第十一章 2.什么是系统模型,他与需求分析和系统设计有什么关系 系统模型是指以某种确定的形式(如文字、符号、图表、实物、数学公式等),对系统某一方面本质属性的描述。 需求分析是挖掘和整理知识的过程,它在已掌握知识的基础上进行。初步捕获到的需求信息往往处于不同层次,也有一些主观甚至不正确的信息。而经过必要的需求分析工作之后,需求会更加系统、更加有条理、更加全面。 那么系统分析呢如果说,需求分析致力于搞清楚软件系统要“做什么”的话,那么系统分析已经涉及“怎么做”的问题了。

合集下载

软件工程第五版课后全答案准确对应书山

软件工程第五版课后全答案准确对应书山

软件工程第五版课后全答案准确对应书山第一章软件工程概论1.什么是软件危机,它们有哪些典型表现,为什么会出现软件危机,“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”。

这些问题决不仅仅是不能正常运行的软件才具有的,实际上,几乎“所有软件”都不同程度地存在这些问题。

‚软件危机?包含两方面的问题:(1)如何开发软件,以满足对软件日益增长的需求;(2)如何维护数量不断膨胀的已有软件。

它们有以下表现:(1)对软件开发成本和进度的估计常常很不准确;(2)用户对“已完成的”软件系统不满意的现象经常发生;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的文档资料;(6)软件成本在计算机系统总成本中所占的比例逐年上升;(7)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。

出现软件危机的原因:(1)开发人员与客户认识之间的矛盾(2)开发人员能力与开发目标之间的矛盾(3)预估与实际工作量之间的矛盾(4)客户认识的提高与软件维护之间的矛盾(5)遗产系统与实施软件之间的矛盾 2.假设自己是一家软件公司的总工程师~当把图1.1给手下的软件工程师们观看~告诉他们及时发现并改正错误的重要性时~有人不同意这个观点~认为要求在错误进入软件之前就清楚它们是不现实的~并举例说:‚如果一个故障是编码错误造成的~那么~一个人怎么能在设计阶段清除它呢,?应该怎么反驳他,答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。

一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。

软件工程课后答案吕云翔

软件工程课后答案吕云翔

软件工程课后答案吕云翔1.与计算机硬件相比,计算机软件有哪些特点,答:一、无法直接观察计算机软件的物理形态,只能通过观察它的实际运行情况来了解它的功能、特性和质量等;二、人们在分析、设计、开发、测试软件产品的过程中,以及在软件开发项目的管理过程中,渗透了大量的脑力劳动;三、不存在像硬件一样的磨损和老化现象,但存在着缺陷维护和技术更新的问题;四、软件的开发和运行必须依赖于特定的计算机系统环境;五、具有可复用性。

2. 为什么说软件工程的发展可以在一定程度上解决软件危机的各种弊端,答:因为,软件工程的提出是为了解决软件危机所带来的各种弊端。

具体地讲,软件工程的目标主要包括以下几点。

(1) 使软件开发的成本能够控制在预计的合理范围内。

(2) 使软件产品的各项功能和性能能够满足用户需求。

(3) 提高软件产品的质量。

(4) 提高软件产品的可靠性。

(5) 使生产出来的软件产品易于移植、维护、升级和使用。

(6) 使软件产品的开发周期能够控制在预计的合理时间范围内。

3. 请简述软件工程的基本原则。

答:(1) 将软件的生命周期划分为多个阶段,对各个阶段实行严格的项目管理。

(2) 坚持阶段评审制度,以确保软件产品的质量。

(3) 实施严格的产品控制,以适应软件规格的变更。

在软件开发的过程中,用户需求很可能不断发生变化。

(4) 采用现代程序设计技术。

(5) 开发出来的软件产品应该能够清楚地被审查。

(6) 合理地安排软件开发小组的人员,并且开发小组的人员要少而精。

(7) 不断地改进软件工程实践。

4. 如何理解软件生命周期的内在特征,答:软件产品的生命周期是指从设计该产品的构想开始,到软件需求的确定、软件设计、软件实现、产品测试与验收、投入使用以及产品版本的不断更新,到最终该产品被市场淘汰的全过程。

软件生命周期这个概念从时间的角度将软件的开发和维护的复杂过程分解为了若干个阶段,每个阶段都完成特定的相对独立的任务。

由于每个阶段的任务相对于总任务难度会大幅度降低,在资源分配、时间把握和项目管理上都会比较容易控制。

软件工程课后题答案

软件工程课后题答案

软件工程课后题答案软件工程课后题答案文档简介:本文档为软件工程课后题的答案文档,旨在提供对软件工程相关题目的详细解答。

文档内容涵盖了各个章节的题目细化及答案解析。

附件中包含了与答案相关的示例代码、流程图等辅助材料,reader可以通过附件进一步了解问题的解答过程。

1、题目一题目描述:请简述软件生命周期模型,并其中常见的几种模型。

解答:软件生命周期模型是描述软件开发过程的抽象模型,它定义了软件项目从需求分析到维护阶段的各个阶段,以及各个阶段之间的关系。

常见的软件生命周期模型包括:1) 瀑布模型:瀑布模型是一种线性的开发过程模型,将软件开发过程分为需求分析、设计、编码、测试、维护等阶段,每个阶段都有明确的输入、输出和文档。

2) 增量模型:增量模型将软件开发过程划分为多个增量,每个增量都有明确的功能,每次增量的开发都经过需求分析、设计、编码、测试等阶段。

3) 原型模型:原型模型是通过建立快速原型来验证和明确用户需求,然后再进行系统开发的过程模型。

4) 螺旋模型:螺旋模型将软件开发过程划分为多个迭代的螺旋,包括风险分析、需求分析、设计、编码、测试等阶段。

2、题目二题目描述:请说明软件需求分析的目的和方法。

解答:软件需求分析的目的是对用户需求进行详细的理解和定义,以便于后续的软件设计、编码、测试等工作。

软件需求分析的方法包括:1) 需求收集:通过与用户交流、观察现有系统、文档分析等方式,收集用户的需求。

2) 需求分析:对收集到的需求进行分析和整理,包括需求优先级的确定、需求的可行性分析等。

3) 需求规格说明:将需求进行详细的说明,包括功能需求、非功能需求、性能需求等。

4) 需求验证:与用户进行沟通和验证,确保需求的准确性和完整性。

3、题目三题目描述:请描述软件测试的主要目的和方法。

解答:软件测试的主要目的是发现系统中的缺陷和问题,以提高软件的质量和可靠性。

软件测试的方法包括:1) 黑盒测试:根据软件的功能需求和规格说明,设计测试用例,并进行测试,以验证系统是否满足需求。

软件工程(第5版课后答案)

软件工程(第5版课后答案)

适合于软件需求不明确,设计方案有一定风险的软件项目.
P23 7参考答案
螺旋模型 缺点: 需要相当的风险分析评估的专门技术,且成功依赖于这 种技术. 很明显一个大的没有被发现的风险问题,将会导致问题 的发生,可能导致演化的方法失去控制. 这种模型相对比较新,应用不广泛,其功效需要进一步 的验证. 优点: 对于大型系统及软件的开发,这种模型是一个很好的方 法.开发者和客户能够较好地对待和理解每一个演化级 别上的风险. 适合于大型软件的开发
P22 3
习题1第3题 什么是软件工程?它有哪些本质特性?怎样用软件工程消 除软件危机?
P22 3参考答案
软件工程是:
① 把系统的,规范的,可度量的途径应用于软件开发,运行和 维护过程,也就是把工程应用于软件; ② 研究①中提到的途径
软件工程的本质特性:
软件工程关注于大型程序的构造 软件工程的中心课题是控制复杂性 软件经常变化 开发软件的效率非常重要 和谐地合作是开发软件的关键 软件必须有效地支持它的用户 在软件工程领域中是由具有一种文化背景的人替具有另一种 文化背景的人创造产品
P23 7参考答案
优点:
它提供了一个模板,这个模板使得分析,设计,编码,测试 和支持的方法可以在该模板下有一个共同的指导. 虽然有不少缺陷但比在软件开发中随意的状态要好得多. 软件工程中应用最广泛的过程模型,在软件工程中占有肯定和重 要的位置.
P23 7参考答案
快速原型模型 在进行了基本需求分析之后,快速开发出产品的原型,然 后基于这个原型,同客户沟通,交流,更好地了解客户需 求,不断修改这个原型,到了双方认可的程度,再做详细 地分析,设计和编程,最终开发出令客户满意的产品. 优点: 使用户能够感受到实际的系统,使开发者能够快速地构 造出系统的框架. 缺点: 产品的先天性不足,因为开发者常常需要做实现上的折 中,可能采用不合适的操作系统或程序设计语言,以使 原型能够尽快工作.

软件工程课后参考答案

软件工程课后参考答案

第一章课后参考答案1.什么是软件危机?它们有哪些典型表现?为什么会出现软件危机?“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”。

这些问题决不仅仅是不能正常运行的软件才具有的,实际上,几乎“所有软件”都不同程度地存在这些问题。

“软件危机”包含两方面的问题:(1)如何开发软件,以满足对软件日益增长的需求;(2)如何维护数量不断膨胀的已有软件。

它们有以下表现:(1)对软件开发成本和进度的估计常常很不准确;(2)用户对“已完成的”软件系统不满意的现象经常发生;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的文档资料;(6)软件成本在计算机系统总成本中所占的比例逐年上升;(7)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。

出现软件危机的原因(1)开发人员与客户认识之间的矛盾(2)开发人员能力与开发目标之间的矛盾(3)预估与实际工作量之间的矛盾(4)客户认识的提高与软件维护之间的矛盾(5)遗产系统与实施软件之间的矛盾2.假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。

一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。

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﹑软件生产有几个阶段?各有何特征?答:⑴程序设计时代:这个阶段生产方式是个体劳动,使用的生产工具是机器语言,汇编语言。

⑵程序系统时代:这个阶段生产方式是小集团合作生产,使用的生产工具是高级语言,开发方法仍依靠个人技巧,但开始提出结构化方法。

⑶软件工程时代:这个阶段生产方式是工程化的生产,使用数据库﹑开发工具﹑开发环境﹑网络﹑分布式﹑面向对象技术来开发软件。

3﹑什么是软件危机?产生原因是什么?答:软件开发技术的进步未能满足发展的要求。

在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。

产生原因:⑴软件规模越来越大,结构越来越复杂。

⑵软件开发管理困难而复杂。

⑶软件包开发费用不断增加。

⑷软件开发技术落后。

⑸生产方式落后,仍采用手工方式。

⑹开发工具落后,生产率提高缓慢。

4﹑什么是软件工程?它目标和内容是什么?答:软件工程就是用科学的知识程和技术原理来定义,开发,维护软件的一门学科。

软件工程目标:付出较低开发成本;达到要求的功能;取得较好的性能;开发的软件易于移植;只需较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。

软件工程内容:研究内容包括开发技术和开发管理两个方面。

开发技术主要研究:软件开发方法,开发过程,开发工具和环境。

开发管理主要研究:软件管理学,软件经济学,软件心理学。

5﹑软件工程面临的问题是什么?答:软件工程需要解决的问题:软件的费用,可靠性,可维护性,软件生产率和软件的重用。

软件工程课后题答案

第1章2.为什么说软件工程的发展可以在一定程度上解决软件危机的各种弊端?软件工程的提出是为了解决软件危机所带来的各种弊端。

具体地讲,软件工程的目标主要包括以下几点:1)使软件开发的成本能够控制在预计的合理范围内。

2)使软件产品的各项功能额性能能够满足用户需求。

3)提高软件产品的质量。

4)提高软件产品的可靠性。

5)使生产出来的软件产品易于移植、维护、升级、和使用。

6)使软件产品的开发周期能够控制在预计的合理实践范围内。

3.简述软件工程的基本原则。

1)将软件的生命周期划分为多个阶段,对各个阶段实行严格的项目管理。

2)坚持阶段评审制度,以确保软件产品的质量。

3)实施严格的产品控制,以适应软件规格的变更。

在软件开发的过程中,用户需求可能不断发生变化。

4)采用现代程序设计技术。

5)开发出来的软件产品应该能够清楚地被审查。

6)合理地安排软件开发小组的人员,并且开发小组的人员少而精。

4.简述软件工程研究的内容。

软件工程研究的内容主要包括以下两部分:1)软件开发技术。

主要研究软件开发方法、软件开发过程、软件开发工具和环境。

2)软件开发过程管理。

主要研究软件工程经济学和软件管理学。

随着人们对软件系统研究的逐渐深入,软件工程研究的内容也在不断跟新和发展。

5.简述软件工程的三要素。

软件工程以关注质量为目标,其中过程、方法、工具是软件过程的3要素。

6.简述软件工程的目标。

软件工程的基本目标如下:1)达到要求的软件功能;2)取得较好的软件性能;3)开发出高质量的软件;4)付出较低的开发成本;5)需要较低的维护费用;6)能按时完成开发工作,及时交付使用。

7.通常有哪几种软件工程开发方法?通常有四种开发方法:1)结构化方法;2)面向数据结构方法;3)面向对象方法;4)形式化方法。

此外还有问题分析法,可视化开发方法。

第2章2.请对比瀑布模型、快速原型模型、增量模型和螺旋模型。

瀑布模型的优点:过程模型简单,执行容易。

缺点:无法适应变更。

软件工程第十版课后习题答案(中文版)

第一章概述1.2 通用的软件产品开发和定制化软件开发之间最重要的区别是什么?这在实践中对于通用软件产品的用户意味着什么?根本区别在于,在通用软件产品开发中,规范由产品开发者拥有。

对于定制产品开发,规范由客户拥有和控制。

这一点的影响是重大的——开发者可以根据一些外部变化(例如竞争产品)迅速决定更改规范,但当客户拥有规范时,更改必须在客户和开发者之间进行协商,并且可能会产生合同影响。

对于通用产品的用户,这意味着他们无法控制软件规范,因此无法控制产品的演变。

开发者可能会决定包含/排除功能并更改用户界面。

这可能会对用户的业务流程产生影响,并在安装新版本的系统时增加额外的培训成本。

这也可能会限制客户改变自己业务流程的灵活性。

1.3 软件产品应该具有的4个重要属性是什么?另外举出4个可能有意义的属性。

四个重要的属性是可维护性、可靠性和安全性、效率和可接受性。

其他可能重要的属性可能是可重用性(它是否可以在其他应用程序中重用)、可分布性(它是否可以分布在处理器网络上)、可移植性(它是否可以在多个平台上运行,例如笔记本电脑和移动平台)和互操作性(它是否可以与广泛的其他软件系统一起工作)。

对 4 个关键属性的分解,例如可靠性分解为安全性、安全性、可用性等,也是这个问题的有效答案。

1.4 除了异构性、企业和社会的变革、可信和信息安全之外,说一说软件工程在21世纪有可能面对的其他问题和挑战(提示:想一想环境)。

软件工程面临的问题与挑战众多,主要包括:1.开发节能系统,以提升其在低功耗移动设备上的适用性,并减少IT设备的整体碳排放。

2.开发模拟系统的验证技术,这对于预测和应对气候变化的程度至关重要。

3.开发适合多文化背景用户使用的系统。

4.开发能够迅速适应新商业需求的灵活系统。

5.设计便于外包开发的系统架构。

6.开发具有高安全性的系统,能够抵御各种攻击。

7.开发易于最终用户调整和配置的系统。

8.探索测试、验证和维护最终用户开发系统的有效方法。

【通用】软件工程课后答案.doc

软件工程第一章作业1.1什么是计算机软件?软件的特点是什么?答:计算机软件指计算机系统中的程序及其文档。

软件的特点是:A 软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确得估算;B 软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大;C 软件的使用没有硬件那样的机械磨损和老化问题。

1.2 简述软件的分类,并举例说明。

答:在《计算机科学技术百科全书》中,将软件分为系统软件、支撑软件和应用软件3类。

A 系统软件:系统软件居于计算机系统中最靠近硬件的一层,其他软件一般都通过系统软件发挥作用。

系统软件与具体的应用领域无关。

例如:编译程序、操作系统等。

B 支撑软件:支撑软件是支撑软件的开发和维护的软件。

例如:数据库管理系统、网络软件、软件工具、软件开发环境等。

C 应用软件:应用软件是特定应用领域专用的软件。

例如:工程/科学计算软件、嵌入式软件、产品线软件、Web应用软件、人工智能软件。

1.4 什么是软件工程?答:在《计算机科学技术百科全书》中软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。

1.5 简述软件工程的基本原则。

答:软件工程原则包括围绕工程设计、工程支持和工程管理提出的以下4条基本原则:第一条:围绕适宜的开发模型;第二条:采用合适的设计方法;第三条:提供高质量的工程支撑;第四条:重视软件工程的管理。

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

答:软件生存周期有计算机系统工程、需求分析、设计、编码、测试、运行和维护6个阶段。

A计算机系统工程的任务是确定待开发软件的总体要求和范围,以及该软件与其他计算机系统元素之间的关系,进行成本估算,做出进度安排,并进行可行性分析,即从经济、技术、法律等方面分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中做出选择。

B需求分析主要解决待开发软件要“做什么”的问题,确定软件的功能、性能、数据、界面等要求,生成软件需求规约。

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