软件工程实用教程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页]
普通高等教育“十一五”国家级规划教材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. 项目规划的步骤和内容项目规划是项目管理的第一步,它包括以下步骤和内容:(1)确定项目目标和范围:明确项目的目标和范围,包括项目的可交付成果、所需功能和业务需求。
(2)需求分析和定义:详细收集和分析项目的需求,明确项目的功能和非功能性要求。
(3)制定项目计划:制定项目的时间表和里程碑,安排项目的活动和任务,确定资源需求和预算。
(4)风险评估和管理:评估项目的风险和不确定性,制定相应的风险管理策略。
(5)团队组建和管理:确定项目的团队成员,指定责任和职责,建立有效的沟通和协作机制。
(6)制定项目管理计划和报告:制定项目管理的具体计划和报告,包括项目的进度、成本和质量控制。
3. 项目管理的工具和技术项目管理涉及到各种工具和技术的应用,以支持项目规划和管理。
其中一些常用的工具和技术包括:(1)甘特图:可视化展示项目的时间表和活动,帮助团队成员了解任务的分配和完成情况。
(2)里程碑图:标记项目关键节点和重要事件的图表,用于跟踪项目进展和提醒项目重要里程碑的达成。
(3)网络图:图示项目活动之间的依赖关系和先后顺序,帮助确定活动的优先级和关键路径。
(4)资源分配和调度:根据项目需求和资源可用性,合理分配和调度团队成员和其他资源。
(5)决策分析:采用定性和定量的方法,评估项目决策的风险和效益,以支持决策过程。
(6)变更管理:制定变更管理程序和流程,确保变更的合理性和对项目的影响进行评估和控制。
二、软件需求分析与设计1. 软件需求分析的目的和方法软件需求分析是在指导下进行的,对于定义用户需求、开发软件系统和确保软件质量都非常重要。
软件工程许家怡教材习题答案《《软件工程——理论与实践》(第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版)_[共5页]
在活动图中使用一个菱形的判断标志,则可以表达条件关系,判断标志可以有多个输入和输出转移,但在活动的运作中仅触发其中的一个输出转移。
引入活动图的目的主要是描述并发活动和跨用例的系统任务。
在活动图中使用一个称为同步条的水平粗线可以将一条转移分为多个并发执行的分支,或将多个转移合为一条转移。
此时,只有输入的转移全部有效,同步条才会触发转移,进而执行后面的活动,如图5.31所示。
2.泳道将模型中的活动按照职责组织起来通常很有用。
泳道图的作用是将活动图的逻辑描述与顺序图、通信图的责任描述结合起来。
泳道用矩形框来表示,属于某个泳道的活动放在该矩形框内,将对象名放在矩形框的顶部,表示泳道中的活动由该对象负责。
如图5.32所示,采样器经初始化后产生两个并发任务:一个任务是采样处理;另一个任务是用采样得到的数据更新显示器。
这两个任务分别由采样器和显示器完成。
图5.32 采样显示活动图3.对象活动图能表示对象的值流和控制流。
在活动图中,对象可以作为动作的输入或输出,或简单地表示指定动作对对象的影响。
对象用对象矩形符号来表示,在矩形的内部有对象名或类名。
当一个对象是一个动作的输入时,用一个从对象指向动作的虚线箭头来表示;当对象是一个动作的输出时,用一个从动作指向对象的虚线箭头来表示。
当表示一个动作对一个对象有影响时,只需用一条对象与动作间的虚线来表示,如图5.32所示,作为一个可选项,可以将对象的状态用中括号括起来放在类名的下面。
5.5.5 建立动态模型静态模型得到的类的信息并不完整,因为系统在运行过程中,组成系统的对象是相互配合的,协同完成每一个用例的功能。
详细了解角色与对象以及对象之间的交互过程将极大地方便系统的具体实现。
当系统与用户交互或系统内部各对象交互的时候,组成系统的对象为了适应交互要经历必要的变化。
人们还需要了解对象如何随时变化,并在模型中反映出这种变化。
建立动态模型的步骤是:编写典型交互序列的场景,虽然场景中不可能包括每个偶然事件,但是至少必须保证不遗漏常见的交互行为;从场景中提取出对象之间的事件,确定触发每个事件的动129。
软件工程实用教程(2版)-12章-习题与参考答案-2012-5-28
软件工程实用教程《软件工程实用教程》习题与参考答案第12章软件开发工具与环境1.什么是软件开发环境?它的基本分类是什么?答案要点:软件开发环境应是能支持整个软件生存期阶段的开发活动,并能支持各种处理模型的软件方法学,同时实现这些开发方法的自动化。
按解决的问题分类:程序设计级、系统合成级与项目管理级。
按现有软件开发环境的演化趋向分类:以语言为中心的环境、面向结构的环境、工具箱环境与基于方法的环境。
按集成化程度分类:分成三代。
2.什么是计算机辅助软件工程?答案要点:在软件工程活动中,软件工程师和管理员按照软件工程的方法和原则,借助于计算机及其软件工具的帮助,开发、维护、管理软件产品的过程,称为计算机辅助软件工程(Computer-Aided Software Engineering,简称CASE)。
3.列出常见的软件开发工具?根据本章的分类方法组织它们?答案要点:软件开发工具种类繁多,按功能可将软件开发工具分为8类:●业务系统规划工具:IBM Rational Rose是基于UML的可视化建模工具;Microsoft Visio。
●项目管理工具:Microsoft Office Project 2007、Visual SourceSafe●支持工具:IBM Rational Build Forge是对分布式开发环境进行自动构建和发布管理类工具;Microsoft V isual SourceSafe 、IBM Rational ClearCase 配置管理工具。
●分析和设计工具:Power designer、IBM Rational Rose可视化建模工具。
●编程工具:Delphi、Visual Basic、C++ Builder等编程语言的编辑器和代码生成器,解释器及调试器等。
●测试和分析工具:静态测试工具有:Telelogic公司的Logiscope软件;PR公司的PRQA软件。
态测试工具的代表有:Compuware公司的DevPartner软件;Rational公司的Purify系列等。
软件工程实用教程(2版)-6章-习题与参考答案-2012-5-28
层与层之间的耦合应尽可能地松散,这样只要保证接口一致,某一层的具体实现就很容易被扩展和替换;
级别相同,职责类似的元素应该被组织到同一层中;
复杂的模块应被继续分解为粒度更细的层或子系统;
应尽量将可能发生变化的元素封装到一个层次中,这样发生变化时我们只要改变受影响的层就可以了;
4.举例说明各种程序设计语言的特点及适用范围。
答案要ห้องสมุดไป่ตู้:
JAVA:面向对象,多线程,可重用性强,继承,多态,有庞大的Applet和GUI库,网络应用广泛等
C:是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制),而对于C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。
《软件工程实用教程》
第
1.简述分层模式的特点及设计时的注意事项。
答案要点:
表示层:图形用户界面、窗口等。
应用逻辑层:管理业务过程的任务和规则。
对象存储层:持久化存储机制,例如,文件系统、数据库等。
这种体系结构的主要特征是将应用逻辑从软件中分离出来,形成了一个单独的逻辑中间层。把应用逻辑和存储逻辑分开是非常重要的,这样不管哪一部分的改变都不会影响其他的部分。
(2)基于使用的测试。这种策略首先测试几乎不使用服务器类的那些类(称为独立类),把独立类都测试完之后,再测试使用独立类的下一个层次的类(称为依赖类)。对依赖类的测试一个层次一个层次地持续进行下去,直至把软件系统构造完为止。
软件工程课后习题参考答案
软件工程课后习题参考答案1.简述软件开发的本质答: 软件开发的本质就是实现问题空间的概念和处理逻辑到解空间的概念和处理逻辑之间的映射。
P192.简述实施软件开发的基本途径。
答: 实施软件开发的基本途径是系统建模。
所谓系统建模,是指运用所掌握的知识,通过抽象,给出该系统的一个结构——系统模型。
P193.简述何谓模型以及软件开发中所涉及的模型。
答: 模型是一个抽象。
该抽象是在意图所确定的角度和抽象层次对物理系统的一个描述,描述其中的成分和成分之间所具有的特定语义的关系,还包括对该系统边界的描述。
软件开发中所涉及的模型可分为两大类,一类称为概念模型,描述了系统是什么;另一类统称为软件模型,描述了实现概念模型的软件解决方案。
4.简述软件开发所涉及的两大类技术。
答: 软件开发所涉及的两大类技术为: 一是求解软件的开发逻辑,二是求解软件的开发手段。
5、简述需求与需求规约的基本性质。
答:需求的基本性质:1) 必要的,该需求是用户所要求的。
2) 无歧义的,该需求只能用一种方式解释。
3) 可测的,该需求是可进行测试的。
4) 可跟踪的,该需求可从一个开发阶段跟踪到另一个阶段。
5) 可测量的,该需求是可测量的。
需求规约的基本性质:1) 重要性和稳定性程度: 按需求的重要性和稳定性,对需求进行分级。
2) 可修改的: 在不过多地影响其他需求的前提下,可以容易地修改一个单一需求。
3)完整的:没有被遗漏的需求。
4)一致的:不存在互斥的需求。
6、简述软件需求的分类答:软件需求可以分为两大类:一类是功能需求,一类是非公能需求,而非公能需求可分为性能需求,外部接口需求、功能需求7、举例说明功能需求和非功能需求之间的基本关系。
答:非功能需求可作用于一个或多个功能需求,例如非功能需求可作用于一个或多个功能需求其中,非功能需求1作用于功能需求1和功能需求3等;非功能需求2作用于功能需求2等。
P248、有哪几种常用的初始需求发现技术?答:有5种常用的需求发现技术:自悟、交谈、观察、小组会和提炼。
软件工程教程课后参考答案
软件工程教程课后参考答案第1章一、选择题(1)D (2)B (3)C (4)D (5)D (6)A (7)D二、简答题(1)什么是软件危机?软件危机表现在哪些方面?答:具体来说,软件危机出现的原因可以概括如下。
①忽视软件开发前期的需求分析。
②开发过程缺乏统一的、规范化的方法论指导。
③文档资料不齐全或不准确。
④忽视与用户之间、开发组成员之间的交流。
⑤忽视测试的重要性。
⑥不重视维护或由于上述原因造成维护工作的困难。
⑦从事软件开发的专业人员对这个产业的认识不充分,缺乏经验。
⑧没有完善的质量保证体系。
具体地说,软件危机的表现形式可以概括如下。
①软件开发费用和进度失控。
②软件系统实现的功能与实际需求不符。
③软件的可靠性差。
④软件难以维护。
⑤软件通常没有适当的文档资料。
⑥软件成本在计算机系统总成本中所占的比例居高不下,且逐年上升。
⑦软件生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
(2)简述软件和软件工程的定义以及软件工程的形成过程。
答:软件是计算机系统中与硬件相对应的另一部分,是一系列程序、数据及其相关的文档集合。
在这里,程序是按照特定顺序组织的计算机数据和指令的集合;数据是使程序能正常执行的数据结构;文档是是开发、使用和维护程序所需要的图文资料。
软件工程是应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度,实现满足用户要求的软件产品的定义、开发、发布和维护的工程或进行研究的学科。
软件工程的发展经历了以下四个阶段。
① 20世纪70年代。
为了解决软件项目失败率高、错误率高以及软件维护任务重等问题,人们提出了软件生产工程化的思想,希望使软件生产走上正规化的道路,并努力克服软件危机。
人们发现将传统工程学的原理、技术和方法应用于软件开发,可以起到使软件生产规范化的作用。
② 20世纪80年代。
面向对象的方法与技术受到了广泛的重视,maltalk-80的出现标志着面向对象的程序设计进入了实用和成熟阶段。
软件工程实用教程(2版)-7章-习题与参考答案-2012-5-28
《软件工程实用教程》习题与参考答案第7章软件测试技术1.软件测试的目的和原则是什么?答案要点:测试的目的:∙软件测试是为了发现错误而执行程序的过程;∙测试是为了证明程序有错,而不是证明程序没有错误;∙一个好的测试用例在于它能发现至今未发现的错误;∙一个成功的测试是发现了至今未发现的错误的测试。
测试的基本原则:1)尽早并不断地进行测试2)程序员应尽可能避免检查自己的程序3)测试用例应当包括合理的输入条件和不合理的输入条件4)测试用例应包括输入数据和预期的输出结果两部分5) 全面检查每个测试结果6) 严格按照测试计划来测试7)充分注意测试中的集群现象8)注意遵守“经济性”原则2.简述测试的步骤。
答案要点:软件测试包括单元测试、集成测试、确认测试和系统测试。
首先要分别完成每个单元(模块)的测试任务,以确保每个模块能正常工作。
然后把已经测试过的模块组装起来,进行集成测试。
完成集成测试以后,要对开发工作初期制定的确认准则进行检验。
完成确认测试以后,为检验它能否与系统的其他部分协调工作,还需要进行系统测试。
3.简述黑盒测试和白盒测试的方法。
答案要点:黑盒测试也称功能测试或数据驱动测试。
在测试时,把程序看作一个不能打开的黑盒子,它是在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。
黑盒测试技术主要包括等价类划分、边界值分析、因果图、错误推测等方法。
白盒测试也称结构测试或逻辑驱动测试,它是在已知程序内部结构的情况下设计测试用例的测试方法。
在使用白盒测试方法时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,对所有逻辑路径进行测试,得出测试数据。
白盒测试的主要技术有逻辑驱动、路径测试等。
6.什么是单元测试?单元测试测试的内容是什么?答案要点:单元测试是对最小的可测试软件元素(单元)实施的测试,它所测试的内容包括:单元的内部结构(如逻辑和数据流)以及单元的功能和可观测的行为。
软件工程实用教程(2版)-4章-习题与参考答案-2012-5-30
3.从数据流程图导出的初试模块结构图是不完美的,应从哪些方面考虑改进?
答案要点:
1)做到模块的高内聚性,并且能够辨别出低内聚性的模块,加以修改使之提高内聚性;
2)降低模块间的耦合度:控制使用全局数据、模块间尽量传递数据型信息;
3)作用(影响)范围性”与“个性化”
3)界面信息反馈
4)界面的合适性
5)容错性
6)审美性和可用性
int n=1;
int sum=0;
while(n<=1000){
n=n+1;
if( (n%7==0)){
sum=sum+n;
}
}
System.out.println("在1000以内能被7整除的所有数的和是:"+sum);
}
}
12.试述界面设计中需要考虑哪些因素。
答案要点:
1)用户工作环境与工作习惯
4)模块的扇入、扇出要适当等。
4.什么是软件体系结构?什么是软件体系结构风格?
答案要点:
软件体系结构表示了一个软件系统的逻辑结构,描述包含系统基础构成单元、它们之间的作用关系、在构成系统时它们的集成方法以及对集成约束的描述等方面。在设计软件体系结构时,必须考虑系统的动态行为,考虑与现有系统的兼容性、安全性、可靠性、扩展性和伸缩性。
顺序内聚:计算学生平均成绩、求出最高分、最低分与达到优秀的学生等。
功能内聚:计算工资
2.答案要点:
答案要点:
内容耦合:A模块中功能要完成需要调用B模块中的代码来实现;
公共耦合:多个模块共享一个数据变量;
控制耦合:根据医护人员的信息,调用医生的评价模块、或护士的考核模块;
软件工程实用教程(2版)-第3章-习题与参考答案-2012-3-15
《软件工程实用教程》部分习题与参考答案第3章结构化需求分析1.如何理解需求分析的任务是确定软件系统“做什么”,而不是“怎么做”?答案要点:需求分析的任务是借助当前系统的逻辑模型导出目标系统的逻辑模型。
在理解当前系统“怎么做”的基础上,抽取其“做什么”的本质,从而从当前系统的物理模型抽象出当前系统的逻辑模型。
在去掉非本质的因素后,根据用户提出的对目标系统的需求,分析当前系统与目标系统的差别,明确目标系统的范围、功能、处理步骤和数据结构,建立目标系统的逻辑模型。
需求分析阶段研究的对象是软件项目的用户要求,正确地理解需求和准确地表达需求是需求分析的关键,只有经过确切描述的软件需求才能成为软件设计的基础。
2.什么是用户需求?什么是系统需求?答案要点:用户需求是关于软件的一系列想法的集中体现,涉及软件的功能、操作方式、界面风格、用户机构的业务范围、工作流程和用户对软件应用的展望等。
因此,用户需求也就是关于软件的外界特征的规格表述。
系统需求是比用户需求更具有技术特性的需求陈述。
它是提供给开发者或用户方技术人员阅读的,并将作为软件开发人员设计系统的起点与基本依据。
系统需求需要对系统的功能、性能、数据等方面进行规格定义。
3.4.用户需求调查主要有哪些方法?答案要点:用户需求调查主要有研究资料法、问卷调查法、用户访谈和实地观察法等。
5.为什么一个系统的数据流程图一般是一套分层的数据流图?答案要点:分层的数据流图体现了分解和抽象的原则,它使人们不至于一下子陷入细节,而是有控制地逐步地了解更多的细节,这有助于理解问题。
图中顶层抽象地描述了整个系统,底层具体地画出了软件的每一个细部,中间层则是从抽象到具体的逐步过渡。
按照这样的方法,无论问题多么复杂,分析工作都可以有计划、有步骤、有条不紊地进行。
6.数据字典的作用是什么?它有哪些基本条目?答案要点:数据字典是结构化分析的另一个有力的工具。
它是为数据流程图中的每个数据流、数据存储、加工以及组成数据流或文件的数据项做出说明,没有数据字典,数据流程图就不严格。
软件工程许家怡教材习题答案《《软件工程——理论与实践》(第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. 软件的主要特性是(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) BoochB) UMLC) CoadD) 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. 软件工具的作用是为了延长软件产品的寿命。
- 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 类活动。在对风险进行识别和分析时,如果开发风险过大, 开发者和用户无法承受,项目有可能因此而终止。螺旋模型的优越性在于它吸收了“进化” 的概念,使得开发人员和用户对每一个演化层出现的风险均有所了解,并对此做出反应。但 使用该模型需要丰富的风险评估经验和专门知识,如果项目风险较大又未及时发现,势必造 成重大损失。实际上,对软件项目进行风险分析也需要费用,假如项目风险分析费用过高, 甚至超过了项目的开发费用,显然就不合适了。一般大型项目才有较高的风险,才有进行详 细风险分析的必要。因此这种模型比较适合大型的软件项目。
软件开发工具使软件在开发效率、工程质量、减少软件开发对人的依赖性等多方面得到 改善。软件开发工具本身也是一个软件。软件开发工具与软件开发方法有着密切的关系,软 件开发工具是软件方法在计算机上的具体实现