软件工程实用教程2版课后答案
软件工程第二版答案

里面包含绝大部分的软件工程第二版中的课后习题答案瞿中编第一章仿真试题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、UML是软件开发中的一个重要工具,它重要应用于哪种软件开发方法( )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、软件开发模型是指软件开发的所有过程、活动和任务的结构框架。
软件工程许家怡教材习题答案《《软件工程——理论与实践》(第2版)习题答案》

《软件工程——理论与实践》(第2版)习题答案习题答案习题一答案一、选择题1. 软件的主要特性是(A B C)。
A) 无形B) 高成本C) 包括程序和文档D) 可独立构成计算机系统2. 软件工程三要素是(B)。
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 D)。
A) 应用科学的方法和工程化的规范管理来指导软件开发B) 克服软件危机C) 作好软件开发的培训工作D) 以较低的成本开发出高质量的软件二、判断题1. 软件就是程序,编写软件就是编写程序。
(×)2. 瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。
(×)3. 结构化方法的工作模型是使用螺旋模型进行开发。
(×)4. 结构化方法和OO方法都是一种面向过程的软件开发方法。
(×)5. 原型化开发方法包括生成原型和实现原型两个步骤。
(×)6. 面向对象的开发方法包括面向对象的分析、面向对象的设计和面向对象的程序设计。
( √)7. 软件危机的主要表现是软件的需求量迅速增加,软件价格上升。
(×)8. 软件工具的作用是为了延长软件产品的寿命。
软件工程实用教程2版课后答案

软件工程实用教程2版课后答案第1章软件工程引论1.什么是软件危机?它和软件工程有什么关系?答案要点:由于软件规模的扩大、功能的增强和复杂性的增加,使得在一定时间内仅依靠少数人开发一个软件变得越来越困难。
在软件开发中经常会出现时间延迟、预算超支、质量得不到保证、移植性差等问题,甚至有的项目在耗费了大量人力、财力后,由于离目标相差甚远而宣布失败。
软件危机的突出表现:1)软件生产率低2)软件产品常常与用户要求不一致3)软件规模的增长,带来了复杂度的增加4)不可维护性突出5)软件文档不完整、不一致。
人们提出“软件工程”的概念,就是为了用工程的方法和管理手段,将软件开发纳入工程化的轨道,以便开发出成本低、功能强、可靠性高的软件产品。
由于引入了软件工程的思想,把其他工程技术研究和开发领域中行之有效的知识和方法运用到软件开发工作中来,提出了按工程化的原则和方法组织软件开发工作的解决思路和具体方法,在一定程度上缓解了“软件危机”。
2.简述软件和软件工程的定义以及软件工程的形成过程。
答案要点:计算机软件是由计算机程序的发展而形成的一个概念。
它是与计算机系统操作有关的程序、规程、规则及其文档和数据的统称。
软件由两部分组成:一是机器可执行的程序和有关的数据;二是与软件开发、运行、维护、使用和培训有关的文档。
软件工程是指导计算机软件开发和维护的工程学科。
它强调按照软件产品的生产特性,采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前最好的技术结合起来,以便经济地开发出高质量的软件并有效地维护它。
第一阶段:20世纪70年代,为了解决软件项目失败率高、错误率高以及软件维护任务重等问题,人们提出软件生产工程化的思想,希望使软件生产走上正规化的道路,并努力克服软件危机。
第二阶段:20世纪80年代,面向对象的方法与技术受到了广泛的重视,Smalltalk-80的出现标志着面向对象的程序设计进入了实用和成熟阶段。
软件工程课后习题答案2

12
作业及解答(第3章)
从问题陈述可知,复印机的状态主要有“闲置”、“复印
”、“缺纸”和“卡纸”。引起状态转换的事件主要是“ 复印命令”、“完成复印命令”、“发现缺纸”、“装满 纸”、“发生卡纸故障”和“排除了卡纸故障”。
13
作业及解答(第4章)
14
补充:请将下图的DFD转换为软件结构图。 (注:图中⊕表示或者)
1
作业及解答(第3章)
1. 银行计算机储蓄系统的工作过程大致如下:储户填写的 存款单或取款单由业务员键入系统,如果是存款则系统记 录存款人姓名、住址(或电话号码)、身份证号码、存款类 型、存款日期、到期日期、利率及密码(可选)等信息,并 印出存单给储户;如果是取款而且存款时留有密码,则系 统首先核对储户密码,若密码正确或存款时未留密码,则 系统计算利息并印出利息清单给储户。 请用数据流图描绘本系统的功能,并用实体-联系图描绘 系统中的数据对象。
21
不能是两个分开的子系统,是相同的前台单个处理
银行储蓄系 统
存 款 单 款
率 利
利 存单 息清单
密 码
业务单据录 入
利 率
存款单
取
单
储蓄业务处理
存款单
单据输出
利 息
存单
款
存单
密码
取
利率
清
利
单
密 码
单
息
存款利 率设置
存款单据输 入
取款单 据输入
存款
取款
存单
利息清单
22
(2)机票预定系统 为了方便旅客,某航空公司拟开发一个机票预定系 统。旅行社把预定机票的旅客信息(姓名、性别、 工作单位、身份证号码、旅行时间、旅行目的地等 )输入该系统,系统为旅客安排航班,旅客在飞机 起飞前一天凭取票通知和账单交款取票,系统核对 无误即印出机票给顾客
软件工程实用教程(第2版)_软件工程实用教程 (第2版)_[共8页]
![软件工程实用教程(第2版)_软件工程实用教程 (第2版)_[共8页]](https://img.taocdn.com/s3/m/c5ffe8013186bceb18e8bb17.png)
普通高等教育“十一五”国家级规划教材21世纪高等学校计算机规划教材软件工程实用教程(第2版)郭宁主编马玉春邢跃吴文红副主编人民邮电出版社北京内容提要本书根据软件工程的最新发展,结合目前软件工程教学的需要,以传统的软件工程和面向对象的软件工程为主线,遵循软件开发“工程化”思想,结合大量的应用案例,系统地介绍软件工程学的理论、方法以及应用技术。
内容包括:软件开发模型、需求分析、软件设计、软件测试、软件维护、质量管理、文档技术、软件项目管理、软件工程工具和环境等。
本书强调软件工程的理论与实践相结合、技术与管理相结合、方法与CASE工具相结合,语言简练,通俗易懂,采用案例教学方法,注重培养实际开发能力和文档的写作能力,具有很强的实用性和可操作性。
书中含有丰富的例题与习题,便于教学和自学。
本书可作为高等院校计算机专业或信息类相关专业高年级本科生或研究生教材,也可作为软件开发人员的参考书。
普通高等教育“十一五”国家级规划教材21世纪高等学校计算机规划教材软件工程实用教程(第2版)♦主编郭宁副主编马玉春邢跃吴文红责任编辑邹文波♦人民邮电出版社出版发行北京市崇文区夕照寺街14号邮编 100061 电子邮件 315@网址 北京鑫正大印刷有限公司印刷♦开本:787×1092 1/16印张:18.75 2011年8月第2版字数:494千字2011年8月北京第1次印刷ISBN 978-7-115-25538-9定价:35.00元读者服务热线:(010)67170985 印装质量热线:(010)67129223反盗版热线:(010)67171154。
软件工程课后习题参考答案

软件工程课后习题参考答案一、概述软件工程作为一门跨学科的学科,涉及到软件开发的各个方面,对培养软件工程师的能力具有重要意义。
课后习题是巩固和深化学生对课程知识的理解和应用的重要途径。
本文将为软件工程课后习题提供一些参考答案,供学生参考和自我评估。
二、需求分析与规格说明1. 什么是软件需求?软件需求分析的目的是什么?软件需求是对问题域中用户对软件所期望的功能和性能的描述。
软件需求分析的目的是识别、理解、规范和管理软件系统开发的需求。
2. 软件需求分析的基本步骤是什么?软件需求分析的基本步骤包括需求获取、需求建模、需求验证和需求管理。
3. 什么是功能需求?什么是非功能需求?功能需求描述的是软件系统应具备的具体功能和行为。
非功能需求则描述了软件系统的其他属性,例如性能、安全性、可靠性等。
4. 举例说明一些常见的软件需求验证方法。
常见的软件需求验证方法包括需求审查、原型验证、测试和模型检查等。
三、软件设计与架构1. 什么是软件架构?软件架构的重要性是什么?软件架构是软件系统的基础结构和组织方式,决定了软件系统的可扩展性、可维护性和可演化性。
软件架构的合理设计能够降低开发和维护的难度。
2. 请简要介绍常见的软件架构模式。
常见的软件架构模式包括分层架构、客户-服务器架构、面向对象架构和微服务架构等。
3. 什么是设计模式?列举几个常见的设计模式。
设计模式是针对软件设计中的常见问题所提出的解决方案。
常见的设计模式包括单例模式、观察者模式、工厂模式和策略模式等。
4. 请简要介绍面向对象设计的原则。
面向对象设计的原则包括单一职责原则、开放封闭原则、里氏替换原则、依赖倒置原则和接口隔离原则等。
四、软件测试与质量保证1. 软件测试的目的是什么?请简要介绍测试驱动开发(TDD)。
软件测试的目的是发现软件产品中的错误和缺陷。
测试驱动开发是先编写测试用例,再根据用例编写代码的开发模式。
2. 请简要介绍黑盒测试和白盒测试。
黑盒测试是基于软件外部行为和需求的测试,不考虑软件的内部实现。
软件工程(第二版)课后习题

第一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.软件是一种逻辑实体,具有抽象性。
硬件是有形的设备,而软件不像硬件那样具有明显的可见性。
人们可以把软件记录在介质上,但是却无法直观地观察到它的形态,而必须通过在计算机上实际地运行才能了解它的功能、性能及其他特性。
2.软件的生产与硬件的制造不同。
它更多地渗透了人类的智能活动,是人类智力劳动的产物。
软件是被开发或设计的,而不是传统意义上被制造的。
软件成本集中于开发上,这意味着软件项目不能像制造项目那样管理。
3.软件在运行使用过程中,不会磨损。
在软件的运行和使用期间,它不会产生像硬件那样的磨损和老化现象,然而却存在着缺陷维护和技术更新的问题。
软件不会磨损,但是它会退化,而软件的退化是由于修改。
因此,软件维护比硬件维护要复杂得多。
1.2.符。
这主要是由于开发人员与用户之间不能充分有效的交流造成的,使得开发人员对用户需求的理解存在着差异;3.相比越来越廉价的硬件,软件代价过高;4.软件质量难以得到保证,且难以发挥硬件潜能。
开发团队缺少完善的软件质量评审体系以及科学的软件测试规程,使得最终的软件产品存在着诸多缺陷;5.难以准确估计软件开发、维护的费用以及开发周期。
往往软件产品不能在预算范围之内,按照计划完成开发。
很多情况下,软件产品的开发周期或经费会大大超出预算;6.难于控制开发风险,开发速度赶不上市场变化;7.软件产品修改维护困难,集成遗留系统更困难;8.软件文档不完备,并且存在着文档内容与软件产品不符的情况。
软件文档是计算机软件的重要组成部分,它为在软件开发人员之间以及开发人员与用户之间信息的共享提供了重要的平台。
软件文档的不完整和不一致的问题会给软件的开发和维护等工作带来很多麻烦。
2)简述软件工程的基本原则。
1.用分阶段的生存周期计划进行严格的管理;将软件的生存周期划分为多个阶段,对各个阶段实行严格的项目管理。
软件开发是一个漫长的过程,人们可以根据工作的特点或目标,把整个软件的开发周期划分为多个阶段,并为每个阶段制定分阶段的计划及验收标准,这样有益于对整个软件开发过程进行管理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
答案要点: 可以采用增量模型。它是瀑布模型与原型进化模型的综合,它对软件过程的考虑是:在 整体上按照瀑布模型的流程实施项目开发,以方便对项目的管理;但在软件的实际创建中, 则把软件系统按功能分解为许多增量构件,并以构件为单位逐个地创建与交付,直到全部增 量构架创建完毕,并都被集成到系统之中交付用户使用。
2. 什么是用户需求?什么是系统需求? 答案要点: 用户需求是关于软件的一系列想法的集中体现,涉及软件的功能、操作方式、界面风格、 用户机构的业务范围、工作流程和用户对软件应用的展望等。因此,用户需求也就是关于软 件的外界特征的规格表述。 系统需求是比用户需求更具有技术特性的需求陈述。它是提供给开发者或用户方技术人 员阅读的,并将作为软件开发人员设计系统的起点与基本依据。系统需求需要对系统的功能、 性能、数据等方面进行规格定义。
软件生存周期是指软件产品从功能确定、设计、开发成功、投入使用,并在使用中不断 修改、完善,直至被新的软件所替代,而停止该软件使用的全过程。
国家标准 GB8566-1988《计算机软件开发规范》将软件生命周期划分为几个阶段:可行 性研究、项目计划、需求分析、总体设计、详细设计、编码实现(包括单元测试)、集成测 试、确认测试、系统运行和维护。这几个阶段又可以归纳为 3 个大的阶段,即软件定义阶段, 软件开发阶段和软件运行维护阶段。
2. 简述软件和软件工程的定义以及软件工程的形成过程。 答案要点:
计算机软件是由计算机程序的发展而形成的一个概念。它是与计算机系统操作有关的程 序、规程、规则及其文档和数据的统称。软件由两部分组成:一是机器可执行的程序和有关 的数据;二是与软件开发、运行、维护、使用和培训有关的文档。
软件工程是指导计算机软件开发和维护的工程学科。它强调按照软件产品的生产特性, 采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理 技术和当前最好的技术结合起来,以便经济地开发出高质量的软件并有效地维护它。
第 3 章 结构化需求分析
1. 如何理解需求分析的任务是确定软件系统“做什么”,而不是“怎么做”? 答案要点: 需求分析的任务是借助当前系统的逻辑模型导出目标系统的逻辑模型。在理解当前系统 “怎么做”的基础上,抽取其“做什么”的本质,从而从当前系统的物理模型抽象出当前系 统的逻辑模型。在去掉非本质的因素后,根据用户提出的对目标系统的需求,分析当前系统 与目标系统的差别,明确目标系统的范围、功能、处理步骤和数据结构,建立目标系统的逻 辑模型。需求分析阶段研究的对象是软件项目的用户要求,正确地理解需求和准确地表达需 求是需求分析的关键,只有经过确切描述的软件需求才能成为软件设计的基础。
8.具有原型化的瀑布模型具有什么特点?它与瀑布模型最大的不同是什么? 答案要点: 特点: ·原型进化模型将软件的需求细节定义、产品开发和有效性验证放在同一个工作进程中
交替或并行运作。因此.在获得了软件需求框架以后,如软件的基本功能被确定以后,就可 以直接进入到对软件的开发中。
·原型进化模型是通过不断发布新的软件版本而使软件逐步完善的,因此.这种开发 模式特别适合于那些用户急需的软件产品开发。它能够快速地向用户交付可以投入实际运行 的软件成果,并能够很好地适应软件用户对需求规格的变更。 不同是:
第一阶段:20 世纪 70 年代,为了解决软件项目失败率高、错误率高以及软件维护任务 重等问题,人们提出软件生产工程化的思想,希望使软件生产走上正规化的道路,并努力克 服软件危机。
第二阶段:20 世纪 80 年代,面向对象的方法与技术受到了广泛的重视,Smalltalk-80 的出现标志着面向对象的程序设计进入了实用和成熟阶段。20 世纪 80 年代末逐步发展起来 的面向对象的分析与设计方法,形成了完整的面向对象技术体系,使系统的生命周期更长, 适应更大规模、更广泛的应用。这时,进一步提高软件生产率、保证软件质量就成为软件工 程追求的更高目标。软件生产开始进入以过程为中心的第二阶段。软件开发过程从目标管理 转向过程管理,形成了软件工程的第二代——过程软件工程时代。
原型进化模型对开发过程的考虑是,针对有待开发的软件系统,先开发一个原型系统让 用户使用,然后根据用户使用情况的意见反馈,对原型系统不断修改,使它逐步接近并最终 达到开发目标。跟快速原型不同的是,快速原型在完成需求定义后将被抛弃,而原型进化所 要创建的原型则是一个今后要投入应用的系统,只是所创建的原型系统在功能、性能等方面 还有许多不足,还没有达到最些方法?
软件工程的首要问题是软件质量。软件工程的目的就是在以上目标的冲突之间取得一定 程度的平衡。因此,在涉及平衡软件工程目标这个问题的时候,软件的质量应该摆在最重要 的位置加以考虑。软件质量可用功能性、可靠性、可用性、效率、可维护性和可移植性等 6 个特性来评价。
4. 在软件开发中软件工具有什么作用? 答案要点:
第三阶段:进入 20 世纪 90 年代以后,软件复用和软件构件技术正逐步成为主流软件技 术,软件工程也由此进入了新的发展阶段——构件软件工程时代。
3. 软件工程的目标是什么?如何解决多目标之间的矛盾? 答案要点:
软件工程的目标是基于软件项目目标的成功实现而提出的,主要体现在以下几方 面。
软件开发成本较低。 软件功能能够满足用户的需求。 软件性能较好。 软件可靠性高。 软件易于使用、维护和移植。 能按时完成开发任务,并及时交付使用。
人们提出“软件工程”的概念,就是为了用工程的方法和管理手段,将软件开发纳入工 程化的轨道,以便开发出成本低、功能强、可靠性高的软件产品。由于引入了软件工程的思 想,把其他工程技术研究和开发领域中行之有效的知识和方法运用到软件开发工作中来,提 出了按工程化的原则和方法组织软件开发工作的解决思路和具体方法,在一定程度上缓解了 “软件危机”。
5. 为什么说构件复用模型是一种有利于软件按工业流程生产的过程模型? 答案要点: 构件复用模型最明显的优势是减少了需要开发的软件数量,缩短了软件交付周期,提高 了软件的质量,降低了开发风险。由于构件具有一定的通用性,可以在不同的软件系统中被 复用。在基于构件复用的软件开发中,软件由构件装配而成,这就如同用标准零件装配汽车 一样。构件复用技术,它能带来更好的复用效果,并且具有工程特性,更能适应软件按工业 流程生产的需要。
快速原型是暂时使用的,因此并不要求完整。它往往针对某个局部问题建立专门原 型,如界面原型、工作流原型、查询原型等。
快速原型不能贯穿软件的整个生命周期,它需要和其他的过程模型相结合才能产生 作用。例如,前面我们提到的在瀑布模型中应用快速原型,可以解决瀑布模型在需求分析时 期存在的不足。
对于一个大型复杂的系统,如果不经过分析来进行整体性划分,想直接用屏幕来一 个一个地模拟是很困难的;对于大量运算、逻辑性较强的程序模块,快速原型方法很难构造 出模型来供人评价。因此,原型方法只适用于小型、简单、处理过程比较明确、没有大量运 算和逻辑处理过程的系统。
后一阶段的输入文档。 阶段评审:在每一阶段工作完成后都要进行评审,以便尽早发现问题,避免后期的
返工,如果评审不合格,则不开始下一阶段的工作。 文档管理:在每阶段都规定了要完成的文档,没有完成文档,就认为没有完成该阶
段的任务。
3. 试说明原型模型的两种实现方案各有什么特点?各适用于什么情况? 答案要点:
传统的瀑布模型很难适应需求变化、模糊不定的软件系统的开发,而且在开发过程中, 用户很难参与进去,只有到开发结束才能看到整个软件系统。这种线性的开发过程,缺乏灵 活性。
原型模型的提出,可以较好的解决瀑布模型的局限性。 通过建立原型,可以更好的和客户进行沟通,解决对一些模糊需求的澄清,并且对需求 的变化有较强的适应能力。原型模型可以减少技术、应用的风险,缩短开发时间,减少费用, 提高生产率,通过实际运行原型,提供了用户直接评价系统的方法,促使用户主动参与开发 活动,加强了信息的反馈,促进了各类人员的协调交流,减少误解,能够适应需求的变化, 最终有效提高软件系统的质量。
第 1 章 软件工程引论 1. 什么是软件危机?它和软件工程有什么关系? 答案要点:
由于软件规模的扩大、功能的增强和复杂性的增加,使得在一定时间内仅依靠少数人开 发一个软件变得越来越困难。在软件开发中经常会出现时间延迟、预算超支、质量得不到保 证、移植性差等问题,甚至有的项目在耗费了大量人力、财力后,由于离目标相差甚远而宣 布失败。软件危机的突出表现:1)软件生产率低 2)软件产品常常与用户要求不一致 3)软 件规模的增长,带来了复杂度的增加 4)不可维护性突出 5)软件文档不完整、不一致。
4. 一般认为,只有大型项目才采用螺旋模型,其原因是什么? 答案要点: 螺旋模型增加了软件项目的风险分析,因为项目规模越大、问题越复杂,资源、成本、 进度等因素的不确定性就越大,承担项目所冒的风险也越大。人们进行风险分析与管理的目 的就是在造成危害之前及时对风险进行识别、分析、采取对策,从而消除或减少风险所造成 的损失。该模型适合于指导大型软件项目的开发,它将软件项目开发划分为制定计划、风险 分析、实施开发以及客户评估 4 类活动。在对风险进行识别和分析时,如果开发风险过大, 开发者和用户无法承受,项目有可能因此而终止。螺旋模型的优越性在于它吸收了“进化” 的概念,使得开发人员和用户对每一个演化层出现的风险均有所了解,并对此做出反应。但 使用该模型需要丰富的风险评估经验和专门知识,如果项目风险较大又未及时发现,势必造 成重大损失。实际上,对软件项目进行风险分析也需要费用,假如项目风险分析费用过高, 甚至超过了项目的开发费用,显然就不合适了。一般大型项目才有较高的风险,才有进行详 细风险分析的必要。因此这种模型比较适合大型的软件项目。
软件开发工具使软件在开发效率、工程质量、减少软件开发对人的依赖性等多方面得到 改善。软件开发工具本身也是一个软件。软件开发工具与软件开发方法有着密切的关系,软 件开发工具是软件方法在计算机上的具体实现