软件工程实用教程第三版_郭宁主编_课后习题与答案
软件工程实用教程第三版-郭宁主编-课后习题及答案
软件工程实用教程第三版-郭宁主编-课后习题及答案第一章软件工程引论1.在下列选项中,(D)不是软件的特征。
A.系统性与复制性 B. 可靠性与一致性 C. 抽象性与智能型 D.有形性与可控性2.软件是一种(B)产品。
A.有形 B. 逻辑 C. 物质 D. 消耗3.软件工程是一种(A)分阶段实现的软件程序开发方法。
A.自顶向下B. 自底向上C. 逐步求精D. 面向数据流4.与计算机科学的理论研究不同,软件工程是一门(B)学科。
A.理论性 B. 工程性 C. 原理性 D. 心理性5.软件工程与计算机科学性质不同,软件工程着重于(C)。
A.原理探讨 B. 理论研究 C. 建造软件系统 D. 原理性的理论6.下列说法正确的是(B)A.软件工程的概念于20世纪50年代提出B.软件工程的概念于20世纪60年代提出C.20世纪70年代出现了客户机/服务器技术D.20世纪80年代软件工程学科达到成熟7.软件工程方法学中的软件工程管理是其中的一个重要内容,它包括软件管理学和软件工程经济学,它要达到的目标是(D)A.管理开发人员,以开发良好的软件B.采用先进的软件开发工具,开发优秀的软件C.消除软件危机,达到软件生产的规模效益D.以基本的社会效益为基础,工程化生产软件第二章软件生命周期及开发模型1.软件生命周期包括可行性分析和项目开发计划、需求分析、总体设计、详细分析、编码、(B)、维护等活动。
A.应用 B. 测试 C. 检测 D. 以上答案都不正确2.软件生命周期模型有多中,下列项目中,(C)不是软件生命周期模型。
A.螺旋模型 B. 增量模型 C. 功能模型 D. 瀑布模型3.软件生命周期中时间最长的阶段时(D)A.需求分析阶段 B. 总体设计阶段 C. 测试阶段 D. 维护阶段4.瀑布模型是一种(D)A.软件开发方法B. 软件生存周期C. 程序设计方法学D. 软件生存周期模型5.软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为(A)A.瀑布模型B. 对象模型C. 螺旋模型D. 层次模型6.在结构化的瀑布模型中,(D)阶段定义的标准将成为软件测试中系统测试阶段的目标A.详细设计阶段B. 总体设计阶段C. 可行性研究阶段D. 需求分析7.增量模型是一种(B)的模型A.整体开发B. 非整体开发C. 灵活性差D. 较晚产生工作软件8.(C)是指模拟某种产品的原始模型A.模型B. 最初模型C. 原型D. 进化模型9.建立原型的目的不同,实现原型的途径也有所不同,下列不正确的类型是(B)A.用于验证软件需求的原型B. 垂直原型C. 用于验证设计方案的原型D.用于演化出目标系统的原型10.原型化方法是一种(A)型的设计过程。
软件工程实用教程(2版)-第2、3、4、5章-习题与参考答案(人民邮电大学出版社 郭宁主编)
《软件工程实用教程》第2、3、4、5章习题与参考答案第2章软件生存周期及开发模型1.简述什么是软件生存周期?根据国家标准《计算机软件开发规范》,软件生存周期主要包括哪几个阶段?答案要点:软件生存周期是指软件产品从功能确定、设计、开发成功、投入使用,并在使用中不断修改、完善,直至被新的软件所替代,而停止该软件使用的全过程。
国家标准GB8566-1988《计算机软件开发规范》将软件生命周期划分为几个阶段:可行性研究、项目计划、需求分析、总体设计、详细设计、编码实现(包括单元测试)、集成测试、确认测试、系统运行和维护。
这几个阶段又可以归纳为3个大的阶段,即软件定义阶段,软件开发阶段和软件运行维护阶段。
2.瀑布模型有哪些特点?对于里程碑,你有哪些认识?答案要点:瀑布模型是一种基于里程碑的阶段过程模型,它所提供的里程碑式的工作流程,为软件项目按规程管理提供了便利。
例如,按阶段制定项目计划,分阶段进行成本核算,进行阶段性的评审等。
这为提高软件产品质量提供了有效保证。
瀑布模型的特点:•阶段性:前一阶段工作完成以后,后一阶段工作才能开始,前一阶段的输出文档是后一阶段的输入文档。
•阶段评审:在每一阶段工作完成后都要进行评审,以便尽早发现问题,避免后期的返工,如果评审不合格,则不开始下一阶段的工作。
•文档管理:在每阶段都规定了要完成的文档,没有完成文档,就认为没有完成该阶段的任务。
3.试说明原型模型的两种实现方案各有什么特点?各适用于什么情况?答案要点:原型模型在软件分析、设计阶段的应用,用来解决用户对软件系统在需求分析上的模糊认识。
将模拟的手段引入需求分析的初期阶段,通过建立原型缩短用户与分析人员之间的距离。
快速原型方法具有以下一些特点。
•快速原型是用来获取用户需求的,或是用来试探某种设计是否有效。
一旦需求或设计确定下来,原型就将被抛弃。
因此快速原型要求快速构建、容易修改,以节约原型创建成本,加速开发速度。
快速原型往往采用软件生成工具来创建,例如,4GL语言。
实用软件工程第3版习题解答-附答案
《实用软件工程》第3版习题参考答案习题 11.5 读者认同“4种开发方法”的方法论和“五个面向”的实践论吗?为什么?“四种开发方法”是指“面向过程的方法、面向对象的方法、面向数据的方法、形式化方法”。
面向过程的方法来源于面向过程的程序设计;面向对象的方法来源于面向对象的程序设计;面向数据的方法就是面向元数据的方法,它来源于关系数据库程序设计;形式化方法来源于离散数学中的集合运算和逻辑运算。
四种方法各适用于不同的场合,各有优缺点,互相促进,构成开发方法论的多极化世界。
“五个面向理论”是指“面向流程分析、面向数据设计、面向对象实现、面向功能测试、面向过程管理”,它是在综合“四种开发方法”各自的优点之后提出的软件工程实施理论,是对前者的继承与发展。
总之,上述提法既精彩又实用。
1.11 什么叫软件危机?通过本章的学习,你认为应该怎样克服软件危机?所谓软件危机,就是在软件开发和维护过程中所遇到一系列难以控制的问题。
“软件危机”这个专业术语的首次出现,是1968年NATO(North Atlantic Treaty Organization,北约)的计算机科学家,在联邦德国召开的国际学术会议上提出的。
为了克服软件危机,同样是在1968年,北约科技委员会召集了近50名一流的编程人员、计算机科学家和工业界巨头,讨论和制定摆脱“软件危机”的对策。
就在那次会议上,第一次提出了软件工程(Software Engineering)这个专业术语。
当时人们的想法是:若借用建筑工程或机器制造工程的思想、标准、规范、规程去开发软件与维护软件,也许能克服软件危机。
以后的实践证明:用工程的方法开发软件与维护软件是个好主意,但是要完全克服软件危机,还有许多其他工作要做。
例如,将软件公司纳入CMMI的过程改进轨道,就能真正克服软件危机。
2.4 简述瀑布模型、增量模型、迭代模型、原型模型、XP等模型的优缺点。
软件开发模型比较表4.10 业界存在哪三种需求分析方法?你认为哪一种方案更好?业界存在三种需求分析方法:面向功能分析、面向对象分析、面向数据分析。
(完整word版)软件工程习题集+答案
《软件工程》习题集目录一软件与软件工程 (1)二软件项目管理 (4)三需求分析 (7)四面向对象的需求分析 (10)五软件设计 (15)六程序设计语言和编码 (18)七软件测试 (20)八软件维护 (23)综合试卷一 (25)综合试卷二 (29)综合试卷三 (33)附参考答案: (37)一软件与软件工程参考答案 (37)二软件工程管理参考答案 (40)三需求分析参考答案 (42)四面向对象的需求分析参考答案 (46)五软件设计参考答案 (55)六程序设计语言和编码参考答案 (58)七软件测试参考答案 (62)八软件维护参考答案 (65)综合试卷一参考答案及评分标准 (68)综合试卷二参考答案及评分标准 (71)综合试卷三参考答案及评分标准 (74)一软件与软件工程一、选择题1。
软件的主要特性是()A、无形性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。
软件开发方法的主要工作模型有()A、螺旋模型B、循环模型C、瀑布模型D、专家模型8。
软件工程的目标有()A、易于维护B、低的开发成本C、高性能D、短的开发期9.软件工程学的目的和意义是()A、应用科学的方法和工程化的规范管理来指导软件开发.B、克服软件危机。
C、作好软件开发的培训工作。
D、以较低的成本开发出高质量的软件。
二、判断题1.软件就是程序,编写软件就是编写程序。
2。
瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。
软件工程课后习题答案
软件工程课后习题答案1. 什么是软件工程?软件工程是一种应用工程原理和方法的学科,目的是开发高质量的软件。
软件工程包括以下几个方面:•需求分析:确定用户的需求,并将其转化为可执行的软件功能。
•设计:设计软件的架构和模块,并确定各个模块的功能和关系。
•编码:实现软件的设计,将设计的模块通过编程语言编写成可执行的代码。
•测试:通过不同的测试方法和技术对软件进行验证,确保软件的质量和可靠性。
•维护:对软件进行改进和修复,以适应用户需求的变化和修复软件中的错误。
2. 软件工程的目标是什么?软件工程的目标是开发高质量的软件,以满足用户的需求。
具体目标包括:•可靠性:软件应该能够正常运行并处理各种输入情况,不会崩溃或导致系统故障。
•可维护性:软件应该易于理解和修改,以适应用户需求的变化和修复软件中的错误。
•可扩展性:软件应该能够在不改变其基本架构的情况下,方便地添加新的功能模块。
•可重用性:软件应该能够被多个项目和团队复用,以提高开发效率。
•可测试性:软件应该易于测试,以确保其功能和性能符合预期。
3. 软件开发生命周期有哪几个阶段?软件开发生命周期通常包括以下几个阶段:1.需求分析和定义阶段:在这个阶段,软件工程师与用户沟通,了解用户的需求和期望。
然后,设计师将这些需求转化为软件规格说明。
2.软件设计阶段:在这个阶段,设计师根据需求规格说明书设计软件的架构和模块,并确定模块之间的关系和功能。
3.编码阶段:在这个阶段,开发人员根据设计文档编写代码,实现软件的功能。
4.测试阶段:在这个阶段,测试人员使用不同的测试方法和技术对软件进行验证,以确保软件的质量和可靠性。
5.部署和维护阶段:在这个阶段,软件工程师将软件部署到实际的运行环境中,并根据用户的反馈进行改进和修复。
4. 什么是软件需求?软件需求是对系统或软件功能和性能的描述,它描述了用户的需求和期望。
软件需求通常包括以下几个方面:•功能需求:描述软件应该具有的功能,以及这些功能如何满足用户的需求。
软件工程课后习题(含答案)
第一章练习题一、填空题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什么是计算机软件软件的特点是什么答计算机软件指计算机系统中的程序及其文档。
软件的特点是a软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确得估算;b软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大;c软件的使用没有硬件那样的机械磨损和老化问题。
1.2简述软件的分类,并举例说明。
答在计算机科学技术百科全书中,将软件分为系统软件、支撑软件和应用软件3类。
a系统软件系统软件居于计算机系统中最靠近硬件的一层,其他软件一般都通过系统软件发挥作用。
系统软件与具体的应用领域无关。
例如编译程序、操作系统等。
b支撑软件支撑软件是支撑软件的开发和维护的软件。
例如数据库管理系统、网络软件、软件工具、软件开发环境等。
c应用软件应用软件是特定应用领域专用的软件。
例如工程/科学计算软件、嵌入式软件、产品线软件、web 应用软件、人工智能软件。
1.4什么是软件工程答在计算机科学技术百科全书中软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。
1.5简述软件工程的基本原则。
答软件工程原则包括围绕工程设计、工程支持和工程管理提出的以下4条基本原则第一条围绕适宜的开发模型;第二条采用合适的设计方法;第三条提供高质量的工程支撑;第四条重视软件工程的管理。
1.6软件生存周期分哪几个阶段分别简述各个阶段的任务。
答软件生存周期有计算机系统工程、需求分析、设计、编码、测试、运行和维护6个阶段。
a计算机系统工程的任务是确定待开发软件的总体要求和范围,以及该软件与其他计算机系统元素之间的关系,进行成本估算,做出进度安排,并进行可行性分析,即从经济、技术、法律等方面分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中做出选择。
b需求分析主要解决待开发软件要“做什么”的问题,确定软件的功能、性能、数据、界面等要求,生成软件需求规约。
软件工程课后题答案大全(详细)
软件工程课后题答案大全(详细)软件工程课后题答案大全(详细)现代社会中,软件工程越来越重要,因为它在各个行业中扮演着关键的角色。
而在学习软件工程课程时,完成课后题是提高理解和掌握程度的重要途径。
本文将为您提供一份全面且详细的软件工程课后题答案大全,希望能够帮助您更好地学习与应用软件工程知识。
1. 什么是软件工程?软件工程是指应用系统化的、规范化的、可量化的方法来开发和维护软件的学科。
它涵盖了各种软件开发阶段,包括需求分析、设计、编码、测试和维护,并借鉴了工程学的原则和方法。
2. 软件工程的原则有哪些?软件工程遵循一系列原则来保证软件开发和维护的质量和效率,如下:- 需求管理原则:明确需求,确保项目目标的准确性和一致性。
- 分阶段原则:将软件开发过程划分为不同的阶段,有序进行。
- 风险管理原则:评估和管理项目中的风险,降低项目失败的可能性。
- 适应性原则:根据不同的项目需求和情况,选择合适的软件开发方法和工具。
- 团队合作原则:加强团队协作,促进良好的沟通和信息共享。
3. 软件生命周期有哪些阶段?软件生命周期包括需求分析、设计、编码、测试和维护等多个阶段。
- 需求分析:明确软件系统的功能和性能要求,了解用户需求。
- 设计:定义软件系统的整体结构和组件之间的关系,确定使用的技术和工具等。
- 编码:根据设计方案,将代码实现为可以执行的程序。
- 测试:验证软件系统的功能和性能是否满足需求,并进行错误修复。
- 维护:对软件进行修复和改进,确保系统的长期可用性。
4. 软件需求分析的方法有哪些?软件需求分析是保证软件项目成功的关键步骤,以下是几种常用的分析方法:- 面谈法:直接与用户沟通,了解他们的需求和期望。
- 文档分析法:研究和分析相关文档,如需求规格说明书、用户手册等。
- 原型法:创建一个初步的系统原型,供用户参观和测试,获取反馈。
- 视频录制法:录制用户正在进行的工作流程,以便更好地了解他们的需求。
5. 软件项目管理中的风险管理包括哪些步骤?风险管理是确保软件项目成功的重要环节,步骤如下:- 风险识别:识别和描述可能影响项目目标实现的风险。
软件工程课后答案完整版
软件工程课后答案完整版软件工程是一门涉及软件开发与管理的学科,它关注着如何有效地组织、设计、开发和维护软件系统。
作为一门实践性强的学科,课后答案对于学习软件工程的学生来说非常重要。
本文将以软件工程课后答案为主题,为您提供一份完整版的答案,旨在帮助您更好地理解和掌握软件工程的知识。
一、需求分析与规格说明1. 问题描述对于任何一门软件工程课程,需求分析和规格说明都是至关重要的环节。
通过合理地分析需求,可以明确软件系统的功能需求、性能需求和用户需求,从而为后续的设计和开发工作奠定基础。
在这一部分中,我们将详细讨论问题描述、需求规格说明以及软件需求规格说明的编写步骤和技巧。
2. 答案示例问题描述:某个公司需要开发一个在线购物系统,能够满足用户浏览商品、下单购买、支付、评价等功能。
需求规格说明:该系统需要具备以下功能需求:- 用户注册登录:用户可以通过注册登录系统,建立个人账号,用于后续购物操作。
- 商品浏览:用户可以浏览系统中的商品,包括商品图片、详细介绍、价格等信息。
- 购物车管理:用户可以将感兴趣的商品加入购物车,并对购物车进行管理,如增加、删除、修改商品数量等操作。
- 订单管理:用户可以在购物车中选择商品提交订单,并进行支付操作。
- 支付功能:系统需要集成常用的支付渠道,如支付宝、微信支付等,以便用户支付订单。
- 评价功能:用户在收到商品后可以对商品进行评价,并可以查看其他用户对商品的评价。
三、软件系统设计与实现1. 系统架构设计系统架构设计是软件工程中的核心环节之一,它关注着如何将系统划分为各个模块,并确定模块之间的接口和依赖关系。
在这一部分中,我们将着重讨论系统架构设计的原则、方法以及常用的架构模式。
2. 答案示例系统架构设计的主要目标是实现系统的可扩展性、灵活性和可维护性。
在本次项目中,我们采用了经典的三层架构模式,即用户界面层、业务逻辑层和数据访问层。
- 用户界面层:负责与用户进行交互操作,接收用户输入的请求,并向用户展示系统的响应结果。
软件工程习题及答案.doc
软件工程习题及答案:一、选择题:D1. 为了提升测试的效率,应当。
A、随机地选用测试数据B、取全部可能的输入数据作为测试数据C、在达成编码后拟订软件的测试计划D、选择发现错误可能性大的数据作为测试数据D2. 与设计测试数据没关的文档是。
A、需求说明书B、设计说明书C、源程序D、项目开发设计B3. 结构设计是一种应用最宽泛的系统设计方法,是以为基础、自顶向下、逐渐求精和模块化的过程。
A、数据流B、数据流图C、数据库D、数据结构A4. 纲要设计的结果是供给一份。
A、模块说明书B、框图C、程序D、数据结构B5. 需求剖析是由剖析员经认识用户的要求,仔细仔细地调研、剖析,最后应成立目标系统的逻辑模型并写出。
A、模块说明书B、软件规格说明书C、项目开发计划D、合同文档D6. 说明是提升程序可读性的有效手段,好的程序说明占到程序总量的。
A、 1/6B、 1/5C、1/4 D 、 1/3A7. 变换型和事务型是程序结构的标准形式。
从某处获取数据,再对这些数据作办理,而后将结果送出是属于。
A、变换型B、事务型B8. PAD( Problem Analysis Diagram )图是一种工具。
A、系统描述B、详尽设计C、测试D、编程协助A9. 排错一般是在测试发现错误后进行,此中找到错误地点占排错总工作量的。
A、 95%B、 5%C、 50%D、 20%A10. 分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描述了系统的。
A、总貌B、细节C、抽象D、软件的作者B11. 数据流图中,当数据流向或流自文件时,。
A、数据流要命名,文件不用命名B、数据流不用命名,有文件名就足够了C、数据流和文件均要命名,因为流出和流进数据流是不一样的D、数据流和文件均不要命名,经过加工可自然反应出B12. 剖析员是。
A、用户中系统的直接使用者B、用户和软件人员的中间人C、软件的编程人员D、用户和软件人员的领导A13. 在软件开发中,有益于发挥集体智慧的一种做法是。
软件工程课后习题答案
软件工程课后习题答案一、项目规划和管理1. 项目规划和管理的重要性在软件工程中,项目规划和管理是确保项目成功的关键因素。
它涉及到确定项目的目标、范围和需求,制定项目计划和时间表,分配资源,通过有效的沟通和协作来管理团队,以满足项目的要求和客户的期望。
良好的项目规划和管理可以提高项目的成功率,避免项目变更和延迟,保证项目在预算和时间范围内完成。
2. 项目规划的步骤和内容项目规划是项目管理的第一步,它包括以下步骤和内容:(1)确定项目目标和范围:明确项目的目标和范围,包括项目的可交付成果、所需功能和业务需求。
(2)需求分析和定义:详细收集和分析项目的需求,明确项目的功能和非功能性要求。
(3)制定项目计划:制定项目的时间表和里程碑,安排项目的活动和任务,确定资源需求和预算。
(4)风险评估和管理:评估项目的风险和不确定性,制定相应的风险管理策略。
(5)团队组建和管理:确定项目的团队成员,指定责任和职责,建立有效的沟通和协作机制。
(6)制定项目管理计划和报告:制定项目管理的具体计划和报告,包括项目的进度、成本和质量控制。
3. 项目管理的工具和技术项目管理涉及到各种工具和技术的应用,以支持项目规划和管理。
其中一些常用的工具和技术包括:(1)甘特图:可视化展示项目的时间表和活动,帮助团队成员了解任务的分配和完成情况。
(2)里程碑图:标记项目关键节点和重要事件的图表,用于跟踪项目进展和提醒项目重要里程碑的达成。
(3)网络图:图示项目活动之间的依赖关系和先后顺序,帮助确定活动的优先级和关键路径。
(4)资源分配和调度:根据项目需求和资源可用性,合理分配和调度团队成员和其他资源。
(5)决策分析:采用定性和定量的方法,评估项目决策的风险和效益,以支持决策过程。
(6)变更管理:制定变更管理程序和流程,确保变更的合理性和对项目的影响进行评估和控制。
二、软件需求分析与设计1. 软件需求分析的目的和方法软件需求分析是在指导下进行的,对于定义用户需求、开发软件系统和确保软件质量都非常重要。
软件工程课本习题答案
形式化方法的主要特点是:
(1)软件需求规格说明被细化为用数学记号表达的详细的形式化规格说明;
(2)设计、实现和单元测试等开辟过程由一个变换开辟过程代替。通过一系列变换将形式的规格说明细化成为程序。
2.5安装RationalRose2000/2002/2003,并练习基本操作。
缺点:RUP只是一个开辟过程,并没有涵盖软件过程的全部内容,例如它缺少关于软件运行和支持等方面的内容;此外,它没有支持多项目的开辟结构,这在一定程度上降低了在开辟组织内大范围实现重用的可能性。
合用范围:合用于基于构件的软件开辟。
2软件工程方法与工具
2.1软件工程的三种基本要素是什么,各自的作用是什么?
术问题,更重要的是必须有科学严格的管理。
(5)缺少有效的软件评测手段,提交给用户的软件的质量不能彻底保证。
1.5什么是软件工程?
第1章 作业参考答案
软件工程是指导计算机软件开辟和维护的工程学科。采用工程的概念、原理、技术和方法来开辟和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开辟出高质量的软件并有效地维护它,这就是软件工程。
产生软件危机的原因:除了软件本身的特点,其原因主要有以下几个方面:
(1)缺乏软件开辟的经验和有关软件开辟数据的积累,使得开辟工作计划很难制定。
(2)软件人员与用户的交流存在障碍,使得获取的需求不充分或者存在错误。
(3)软件开辟过程不规范。如,没有真正了解用户的需求就开始编程序。
(4)随着软件规模的增大,其复杂性往往会呈指数级升高。需要不少人分工协作,不仅涉及技
必须做什么”这个问题。
(3)软件设计:本阶段要回答的关键问题是“目标系统如何做?”为此,必须在设计阶段中制
软件工程第一二三章习题参考答案
第一章软件工程概述软件是计算机程序及其有关旳数据和文档旳结合。
软件危机是指在计算机软件开发和维护时所碰到旳一系列问题。
软件危机重要包括两方面旳问题: 一是怎样开发软件以满足对软件日益增长旳需求;二是怎样维护数量不停增长旳已经有软件。
软件工程是软件开发、运行、维护和引退旳系统措施。
软件工程是指导计算机软件开发和维护旳工程学科。
软件工程采用工程旳概念、原理、技术和措施来开发与维护软件。
软件工程旳目旳是实现软件旳优质高产。
软件工程学旳重要内容是软件开发技术和软件工程管理。
软件开发措施学是编制软件旳系统措施, 它确定软件开发旳各个阶段, 规定每一阶段旳活动、产品、验收旳环节和完毕准则。
常用旳软件开发措施有构造化措施、面向数据构造措施和面向对象措施等。
习题参照答案:1) 1. 什么是软件危机?为何会出现软件危机?2)答: 软件危机是指在计算机旳开发和维护过程中所碰到旳一系列严重问题。
这些问题决不仅仅是不能正常运行旳软件才具有旳, 实际上, 几乎所有软件都不一样程度地存在这些问题。
3)出现软件危机旳原因:首先与软件自身旳特点有关, 另首先也和软件开发与维护旳措施不对旳有关。
软件不一样于硬件, 它是计算机系统中逻辑件而不是物理部件。
管理和控制软件开发过程相称困难。
软件是规模庞大, 并且程序复杂性将伴随程序规模旳增长而呈指数上升。
目前相称多旳软件专业人员对软件开发和维护尚有不少糊涂观念, 在实践过程中或多或少地采用了错误旳措施和技术, 这是使软件问题发展成软件危机旳重要原因。
总结如下:4)获得对旳旳顾客需求和对旳地描述需求很困难5)开发人员对需求旳对旳理解也有困难6)常常在没有对旳理解之前就仓促开始编程7)软件项目缺乏有效旳组织、管理和内部交流8)缺乏软件开发措施、模型和工具旳支持9)软件维护旳困难性2. 假设你是一家软件企业旳总工程师, 当你把图1.1给手下旳软件工程师们观看, 告诉他们及早发现并改正错误旳重要性时, 有人不一样意你旳观点, 认为规定在错误进入软件之前就清除它们是不现实旳, 并举例说: “假如一种故障是编码错误导致旳, 那么, 一种人怎么能在设计阶段清除它呢?”你怎么反驳他?答: 在软件开发旳不一样阶段进行修改付出旳代价是很不相似旳, 在初期引入变动, 波及旳面较少, 因而代价也比较低;在开发旳中期, 软件配置旳许多成分已经完毕, 引入一种变动要对所有已完毕旳配置成分都做对应旳修改, 不仅工作量大, 并且逻辑上也更复杂, 因此付出旳代价剧增;在软件已经完毕时再引入变动, 当然付出旳代价更高。
软件工程第三版课后习题
C.单出口 D.随意跳转
2.软件调试的目的是( B )。
A.发现错误 B.改正错误 C.改善软件的性能 D.挖掘软件的潜能
3.将每个模块的控制结构转换成计算机可接受的程序代码时( A )阶段的任务。
A.编码 B.需求分析 C.详细设计 D.测试
4.编码高效率原则包括提高运行效率、提高储存效率和提高( A )。
B.确定系统的性能要求
D.确定系统是否满足开发人员需要
6.在需求分析阶段,需求分析人员需要了解用户的需求,认真仔细地调研、分析,
最终应建立目标系统的逻辑模型并写出( B )。
A.模块说明书 B.需求规格说明书 C.项目开发设计D.合同文档
7.软件需求阶段需要解决的问题是( A )。
A.软件做什么
C.软件采用什么结构
简介的怨言来描述软件系统模型。
A.DFD图 B.PAD图 C.HIPO图 D.数据字典
第四章
一、判断题
1、软件设计是软件工程的重要阶段,是一个把软件需求转换为软件代码的过程。
(N)
2、软件设计说明书是软件概要设计的主要成果。( Y )
3、软件设计中设计复审和设计本身一样重要,其主要作用是避免后期付出高代
8、以对象、类、继承和通信为基础的面向对象设计方法也是常见的软件概要设计
方法之一。( N )
二、选择题
1.内聚是从功能角度来度量模块内的凉席,按照特定次序执行元素的模块属于
( C )。
A.逻辑内聚 B.时间内聚 C.过程内聚 D.顺序内聚
2.概要设计是软件工程中很重要的技术活动,下列不是概要设计任务的是( B )。
第一章
一、判断题
1.SWEBOKV3分两大类,共有 15个知识域。( Y )
完整版软件工程课后题答案
1什么是软件危机?软件危机产生的原由是什么?软件危机就是指人们在开发软件和保护软件过程中遇到的一系列问题。
产生的原由: <1>忽视软件开发先期的需求剖析。
<2>开发过程缺少一致的、规范化的方法论的指导。
<3>文档资料不齐全或不正确。
<4>忽视与用户之间、开发构成员之间的交流 <5>忽视测试的重要性。
<6>不重视保护或因为上诉原由造成保护工作的困难。
<7>从事软件开发的专业人员对这个家产认识不充分,缺少经验。
<8>没有圆满的质量保证系统。
2请简述软件工程的三因素三因素是指过程、方法和工具软件工程的基础是过程层,它定义了一组要点过程地域的框架,使软件能过被合理和及时的开发;软件工程的方法供应了建筑在在技术上需要“做什么”,它覆盖了一系列的任务,包括需求剖析、设计编程、测试和支持等;软件工程的工具对过程和方法供应了自动的或半自动的支持。
3请比较瀑布模型、快速模型、增量模型和螺旋模型。
瀑布模型的长处是:过程模型简单,履行简单;弊端是没法适应更正。
快速模型的长处是:软件产品的开发基本上是按线性序次进行的(它所达成的功能常常是最后产品能达成的功能的一个子集)增量模型的最大特色是将待开发的软件系统模块化和组件化,长处是:将待开发的软件系统模块化,可以分批次地提交软件产品,使用户可以及时认识项目的进展;以组件为单位进行开发降低了软件开发的风险;开发序次灵巧。
它的弊端是要求待开发的软件系统可以被模块化螺旋模型的长处是对可选方案和拘束条件的重申有益于已有的软件的重用,也有助于把软件质量作为软件开发的一个重要目标;减少了过多测试(浪费资本)或测试不足(产品故障多)所带来的风险;更重的是,在螺旋模型中保护但是模型的另一个周期,在保护和开发之间并没有实质的差别,它的主要优势在于风险驱动但是这也可能是他的一个弊端。
4什么是软件过程?他与软件工程方法学有何不一样样?软件过程:是指一个为获取高质量软件所需达成的任务的框架,它规定了软件产品开发时达成各项任务的一系列工作步骤,包含中间产品、资源、角色及过程中采纳的方法、工具等范围。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章软件工程引论1.在下列选项中,(D)不是软件的特征。
A.系统性与复制性B. 可靠性与一致性C. 抽象性与智能型D.有形性与可控性2.软件是一种(B)产品。
A.有形B. 逻辑C. 物质D. 消耗3.软件工程是一种(A)分阶段实现的软件程序开发方法。
A.自顶向下B. 自底向上C. 逐步求精D. 面向数据流4.与计算机科学的理论研究不同,软件工程是一门(B)学科。
A.理论性B. 工程性C. 原理性D. 心理性5.软件工程与计算机科学性质不同,软件工程着重于(C)。
A.原理探讨B. 理论研究C. 建造软件系统D. 原理性的理论6.下列说确的是(B)A.软件工程的概念于20世纪50年代提出B.软件工程的概念于20世纪60年代提出C.20世纪70年代出现了客户机/服务器技术D.20世纪80年代软件工程学科达到成熟7.软件工程方法学中的软件工程管理是其中的一个重要容,它包括软件管理学和软件工程经济学,它要达到的目标是(D)A.管理开发人员,以开发良好的软件B.采用先进的软件开发工具,开发优秀的软件C.消除软件危机,达到软件生产的规模效益D.以基本的社会效益为基础,工程化生产软件第二章软件生命周期及开发模型1.软件生命周期包括可行性分析和项目开发计划、需求分析、总体设计、详细分析、编码、(B)、维护等活动。
A.应用B. 测试C. 检测D. 以上答案都不正确2.软件生命周期模型有多中,下列项目中,(C)不是软件生命周期模型。
A.螺旋模型B. 增量模型C. 功能模型D. 瀑布模型3.软件生命周期中时间最长的阶段时(D)A.需求分析阶段B. 总体设计阶段C. 测试阶段D. 维护阶段4.瀑布模型是一种(D)A.软件开发方法B.软件生存周期C.程序设计方法学D.软件生存周期模型5.软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为(A)A.瀑布模型B.对象模型C.螺旋模型D.层次模型6.在结构化的瀑布模型中,(D)阶段定义的标准将成为软件测试中系统测试阶段的目标A.详细设计阶段B.总体设计阶段C.可行性研究阶段D.需求分析7.增量模型是一种(B)的模型A.整体开发B.非整体开发C.灵活性差D.较晚产生工作软件8.(C)是指模拟某种产品的原始模型A.模型B.最初模型C.原型D.进化模型9.建立原型的目的不同,实现原型的途径也有所不同,下列不正确的类型是(B)A.用于验证软件需求的原型B.垂直原型C.用于验证设计方案的原型D.用于演化出目标系统的原型10.原型化方法是一种(A)型的设计过程。
A.在外向B.自顶向下C.自向外D.自底向上11.对于原型的使用建议,以下说法不正确的是(C)A.对于开发周期很长的项目,能够使用原型B.在系统的使用可能变化较大、不能相对稳定是,能够使用原型C.缺乏开发工具,或对原型的可用工具不了解的时候,能够使用原型D.开发者对系统的某种设计方案的实现无信心或无十分的把握时,能够使用原型12.原型模型的主要特点之一是(B)A.开发完毕才见到产品B.及早提供工作软件C.及早提供全部完整软件D.开发完毕才见到工作软件第三章结构化需求分析1.需求工程的主要目的是(C)A.制定系统开发的具体方案B.进一步确定系统的需求C.解决系统是“做什么的为题”D.解决系统是“如何做的问题”2.需求分析的任务不包括(B)A.问题分析B.系统设计C.需求分析D.需求评审3.软件分析的第一步要做的工作是(A)A.定义系统的目标B.定义系统的功能模块C.分析用户需求D.分析系统开发的可行性4.可行性研究的目的是用最小的代价在尽可能短的时间确定问题的(A)A.能否可解B.工程进度C.开发计划D.人员配置5.需求分析最终结果是产生(B)A.项目开发计划B.需求规格说明书C.设计说明书D.可行性分析报告6.在结构化分析方法中,(C)是表达系统部数据运动的图形化技术A.数据字典B.实体关系图C.数据流图D.状态转换图7.DFD中的每个加工至少需要(D)A.一个输入流B.一个输出流C.一个输入或输出流D.一个输入流和一个数处理8.需求分析的主要方法有(C)A.形式化分析方法B. PAD图描述C.结构化分析方法D.程序流程图9.SA法的主要描述手段有(B)A.系统流程图和模块图B.DFD图、数据字典、加工说明C.软件结构图、加工说明D.功能结构图、加工说明10.软件需求分析阶段的工作,可以分为以下4个方面:对问题的识别、分析与综合、编写需求分析文档以及(C)A.总结B.编写阶段性报告C.进行需求分析评审D.以上答案都不正确第四章结构化软件设计1.在面向数据流的软件设计方法中,一般将信息里与分为(D)A.数据流和控制流B. 变换流和控制流C. 事务流和控制流D. 变换流和事务流2.耦合度可以分为七级,其中最松散的耦合是(A)A.非直接耦合B.数据耦合C.特征耦合D.控制耦合3.当模块中包含复杂的条件组合,只有(A)能够清晰的表达出各种动作之间的对应关系A.判定表和判定树B.盒图C.流程图D.关系图4.一个软件的宽度是指其控制的(C)A.模块数B.层数C.跨度D.厚度5.面向数据流的软件设计方法可将(C)映射成软件结构A.控制结构B.模块C.数据流D.事务流第五章面向对象的需求分析1.采用UML进行软件建模的过程中,类图是系统的一种静态视图,用(B)可明确表示两类事物之间存在的整体/部分形式的关联关系。
A.依赖关系B.聚合关系C.泛化关系D.实现关系2.在UML语言中,图中的a、b、c三中图形符号按照顺序分别表示(C)Kim, Keehyun Kim, Hyunsoo Jung, YoontaeA.边界对象、实体对象、控制对象B. 实体对象、边界对象、控制对象C. 控制对象、实体对象、边界对象D. 边界对象、控制对象、实体对象3.不同的对象收到同一消息可以产生完全不同的结果,这一现象叫做(B)A. 继承B. 多态C. 动态绑定D. 静态绑定第六章面向对象的软件设计1.下面哪种设计模式定义了对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新(D)A.Adapter(适配器)B.Iterator(迭代器)C.Prototype(原型)D. Observer(观察者)2.UML中有多种类型的图,其中,(B)对系统的使用方式进行了分类;()显示了类及其相互关系;()显示了人或对象的活动,其方式类似于流程图;通信图显示了在某种情况下对象之间发送的消息;()与通信图类似,但强调的是顺序而不是连接。
A.用例图、顺序图、类图、活动图B.用例图、类图、活动图、顺序图C.类图、顺序图、活动图、用例图D. 活动图、顺序图、用例图、类图3.UML类图的类与类之间的关系有5种:继承、依赖、关联、组合和聚合,若类A需要使用标准数学函数类库中提供的功能,那么类A与标准类库中提供的类之间存在(A)关系A.依赖B.关联C.聚合D. 组合第七章软件测试技术1.用边界值分析法,假定1<X<100,那么X在测试中应该取的边界值是(B)A.X=1,X=100B. X=0,X=1,X=100,X=101C. X=2,X=99D.X=0,X=1012.下列关于软件验收测试的合格通过准则错误的是(C)A. 软件需求分析说明书中定义的所有功能已全部实现B. 所有测试项没有C. 立项审批表、需求分析文档、设计文档和编码实现不一致D.验收测试工件齐全3.以下关于集成测试的容正确的有(D)①集成测试也叫组装测试或者联合测试②测试在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失③测试一个模块的功能是否会对另一个模块的功能产生不利影响④测试各个子功能组合起来,能否达到预期要求的父功能⑤测试全局数据结构是否有问题⑥测试单个模块的误差累积起来,是否会放大,从而达到不能接受的程度A.①②④⑤⑥B. ②③④⑤⑥C. ①②③⑤⑥D. 以上全部正确4.为了提高测试的效率,应该(D)A.随机的选取测试数据B. 取一切可能的输入数据作为测试数据C. 在完成编码以后制定软件的测试计划D. 选择发现错误的可能性大的数据作为测试数据5.软件调试的目的是(A)A.找出错误所在并改正之B.排除存在错误的可能性C.对错误性质进行分类D.统计出错的次数6.单元测试一般以白盒为主,测试的依据是(A)A.模块功能规格说明B. 系统模块结构图C. 系统需求规格说明D. 统计出错的次数7.下次关于α、β测试的描述中正确的是(C)A.α测试不需要用户代表参加B.β测试不是验收测试的一种C.α测试可以有用户代表参加D. β测试是系统测试的一种8.软件测试的目的是(B)A.评价软件的质量B.发现软件的错误C.找出软件中所有的错误D.证明软件是正确的9.软件测试用例主要由输入数据和(C)两部分组成A.测试计划B.测试规则C.预期输出结果D.以往测试记录分析10.在黑盒测试中,着重检查输入条件组合的方法是(D)A.等价类划分法B.边界值分析法C.错误推测法D.因果图法第八章软件维护技术1. 随着软硬件环境变化而修改软件的过程是(B)A. 校正性维护B. 适宜性维护C. 完善性维护D. 预防性维护2. 为了提高软件的可维护性,在编码阶段应注意(B)A. 保存测试用例和数据B. 提高模块的独立性C. 文档的副作用D. 养成好的程序设计风格3.为提高系统性能而进行的修改属于(C)。