软件工程导论第五版答案.docx

上传人:b****3 文档编号:4679053 上传时间:2022-12-07 格式:DOCX 页数:10 大小:25.91KB
下载 相关 举报
软件工程导论第五版答案.docx_第1页
第1页 / 共10页
软件工程导论第五版答案.docx_第2页
第2页 / 共10页
软件工程导论第五版答案.docx_第3页
第3页 / 共10页
软件工程导论第五版答案.docx_第4页
第4页 / 共10页
软件工程导论第五版答案.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

软件工程导论第五版答案.docx

《软件工程导论第五版答案.docx》由会员分享,可在线阅读,更多相关《软件工程导论第五版答案.docx(10页珍藏版)》请在冰豆网上搜索。

软件工程导论第五版答案.docx

软件工程导论第五版答案

软件工程导论第五版答案

【篇一:

软件工程导论(第六版)部分课后习题答案】

是软件危机?

是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

1-3什么是软件工程?

是指导计算机软件开发和维护的一门工程学科。

1-4简述结构化范型和面向对象范型的要点,并分析它们的优缺点。

目前使用得最广泛的软件工程方法学(2

种):

1.传统方法学:

也称为生命周期方法学或结构化范型。

优点:

把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。

缺点:

当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。

2.面向对象方法学:

优点:

降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。

1-6什么是软件过程?

它与软件工程方法学有何关系?

z软件过程:

是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤z软件工程方法学:

通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型

1-7什么是软件生命周期模型,试比较瀑布模型,快速原型模型,增量模型,和螺旋模型的优缺点,说明每种模型的适用范围。

软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。

生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。

瀑布模型的优点:

1.可强迫开发人员采用规范的方法;2.严格规定了每个阶段必须提交的文档;3.要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。

瀑布模型的缺点:

1.在软件开发初期,指明用户全部需求是困难的;2.需求确定后,经过一段时间才得到软件最初版本;3.完全依赖规格说明,导致不能满足用户需求。

适用中小型项目。

快速原型模型的优点:

1满足用户需求程度高;2用户的参与面广;3返工现象少快速原型模型的优点:

不适用大型软件的开发适用于小型项目。

增量模型的优点:

1短期内可以交付满足部分用户需求的功能产品;2逐步增加功能可以让用户去适应新产品;3开放式的软件可维护性比较好;4开始第一构件前,已经完成需求说明。

增量模型的缺点:

1对现有产品功能造成破坏;2意义上的矛盾适用于中型软件的开发螺旋模型的优点:

1集成了瀑布模型、快速原型模型、增量模型的优点;2支持用户需求动态变化;3需求分析与软件实现紧密联系相互依赖;4原型作为刑式的可执行的需求规格说明,即利用用户和开发人员共同理解,又可作为后续开发的基础;5为用户参与决策提供方便;6提高目标软件的适应能力;7降低风险;8在大型软件开发过程中充分发挥优势。

螺旋模型的缺点:

1迭代次数影响开发成本,延迟提价时间;2找不到关键改进点,人才、物力、财力时间引起无谓消耗;3成于风险分析,败于风险分析。

适用于内部开发的大规模软件项目。

1-8:

为什么说喷泉模型叫好的体现了面向对象软件开发过程无缝和迭代的特性?

因为使用面向对象方法学开发软件时,各个阶段都使用统一的概念和表示符号,因此,整个开发过程都是吻合一致的,或者说是无缝连接的,这自然就很容易实现各个开发步骤的反复多次迭代,达到认识的逐步深化,而喷泉模型的则很好的体现了面向对象软件开发过程迭代和无缝的特性。

1-9:

试讨论rational统一过程的优缺点

优点:

提高了团队生产力,在迭代的开发过程、需求管理、基于组建的体系结构、可视化软件建模、验证软件质量及控制软件变更等方面、针对所有关键的开发活动为每个开发成员提供了必要的准则、模版和工具指导,并确保全体成员共享相同的知识基础。

它简历了简洁和清晰的过程结构,为开发过程提供较大的通用性。

缺点:

rup只是一个开发过程,并没有涵盖软件过程的全部内容,例如它缺少关于软件运行和支持等方面的内容,此外,它没有支持多项目的开发结构,这在一定程度上降低了在开发组织内大范围实现重用的可能性。

1-10rational统一过程主要适用于何种项目?

大型的需求不断变化的复杂软件系统项目

1-11:

说明敏捷过程的适用范围

适用于商业竞争环境下对小型项目提出的有限资源和有限开发时间的约束。

1-12说明微软过程的适用范围

适用于商业环境下具有有限资源和有限开发时间约束的项目的软件过程模式。

第二章

2-1在软件开发的早期阶段为什么要进行可行性分析研究?

应该从哪些方面研究目标系统的可行性?

可行性分析是要进行一次大大压缩简化系统分析和设计过程,避免时间、资源、人力和金钱的浪费。

技术上的可行性——使用现有的技术能实现这个系统吗?

经济上的可行性——这个系统的经济效益能超过它的开发成本吗?

(投资与效益)操作可行性——系统的操作方式在这个用户组织内行得通吗?

社会、政策允许的可行性

2-2为方便储户,某银行拟开发计算机储蓄系统。

储户填写的存款单或取款单由业务员键入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算利息并印出利息清单给储户。

请画出此系统的数据流图。

2-3为方便旅客,某航空公司拟开发一个机票预定系统。

旅行社把预订机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入进该系统,系统为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统核对无误即印出机票给旅客。

请画出系统的数据流图。

2-4目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察危险病人的病情变化,还可能会延误抢救时机。

某医院打算开发一个以计算机为中心的患者监护系统,试写出问题定义,并且分析开发这个系统的可行性。

医院对患者监护系统的基本要求是随时接受每个病人的生理信号(脉搏、体温、血压、心电图等),定时记录病人情况以及形成患者日志,当某个病人的生理信号超出医生规定的安全范围时向值班护士发出警告信息,此外,护士在需要时还可以要求系统印出某个指定病人的病情报告。

请画出系统的数据流

2-5北京某高校可用的电话号码由以下几类:

校内电话号码由4位数字组成,第一位数字不是零;校外电话又分为本市电话和外地电话两类,拨校外电话先拨0,若是本地电话再接着拨8位数字(固话第一位不是0)或11位数字(移动电话第一位为1);若是外地电话,则拨3位区码再拨8位电话号码(固话第一位不是0),或拨0再拨11位数字(移动电话第一位为

1)。

请用数据定义的方法,定义上述电话号码。

电话号码=[校内号码|校外号码]校内号码=非0数字+3{数字}3校外号码=0+[本地号码|外地号码]本地号码=[固话号码|手机号码]固话号码=非0数字+7{数字}7手机号码=1+10{数字}10

外地号码=[外地固话号码|外地手机号码]外地固话号码=3{数字}3+固话号码外地手机号码=0+手机号码非0数字=[1|2|3|4

|5|6|7|8|9]

第三章

1、为什么要进行需求分析?

通常对软件系统有哪些需求?

答:

为了开发出真正满足用户需求的软件产品,准确定义未来系

统的目标,确定为了满足用户的需要系统必须做什么,就必须要进行准确的需求分析。

通常对软件系统的需求有:

功能需求;性能需求;可靠性和可用性需求;出错处理需求;接口需求;约束;逆向需求;文档需求;数据需求等等。

2、银行计算机储蓄系统的工作过程大致如下:

储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、住址、身份证号码等存款信息,并打印出存款存单给储户;如果是取款且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并打印出利息清单给储户。

用数据流图描述本系统的功能,并用er图描绘系统中的数据对象

6、复印机的工作过程大致如下:

未接到复印命令时处于闲置状态,一旦接到复印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令;如果执行复印命令时发现没纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接收复印命令;如果复印时发生卡纸故障,则进入卡纸状态,发出警告等待维修人员来排除故障,故障排除后回到闲置状态。

请用状态转换图描绘复印机的行为。

从问题陈述可知,复印机的状态主要有“闲置”、“复印”、“缺纸”和“卡纸”。

引起状态转换的事件主要是“复印命令”、“完成复印命令”、“发现缺纸”、“装满纸”、“发生卡纸故障”和“排除了卡纸故障”。

第四章

不考,略。

第五章

5-4美国某大学共有200

名教师,校方与教师工会刚刚签订一项协议。

按照协议,所有年工

【篇二:

软件工程导论-第五版_课后习题答案(清华大学出版社)张海藩著2】

z软件工程方法学(3个要素):

通常把软件生命周期全过程中使用的一整套技术方法的集合称为方法学,

也称范型。

三要素:

方法、工具和过程。

z软件生命周期模型

–瀑布模型:

优点:

1.可强迫开发员采用规范的方法2.严格地规定了每个阶段必须提交的文件3.要求每个

阶段交出的所有产品都必须经过质量保证小组的仔细验证。

–缺点:

传统的瀑布模型过于理想化,是由文档驱动的。

–快速原型模型:

通过快速构建起一个可在计算机上运行的原型系统,让用户试用原型并收集用户反

馈意见的方法,获取用户真正的需要。

–增量模型:

优点:

能在较短时间内向用户提交可完成部分工作的产品;逐步增加产品功能可以使用户

有较充实的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。

–螺旋模型:

优点:

对可选方案和约束条件的强调有利于已有软件的重用;减少了过多测试;维护只是

螺旋模型中另一个周期。

1-1什么是软件危机?

是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

1-2什么是软件工程?

是指导计算机软件开发和维护的一门工程学科。

1-3简述结构化范型和面向对象范型的要点,并分析它们的优缺点。

目前使用得最广泛的软件工程方法学(2种):

1.传统方法学:

也称为生命周期方法学或结构化范型。

优点:

把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。

缺点:

当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。

2.面向对象方法学:

优点:

降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促

进了软件重用。

1-4软件生命周期划分成哪些阶段

z软件生命周期(各阶段)软件生命周期由软件定义、软件开发和运行维护三个时期组成。

1.软件定义时期划分为三个阶段:

问题定义、可行性研究和需求分析2.开发时期:

总体设计、详细设计、编码和单元测试、综合测试。

3.维护时期:

主要任务是使软件持久地满足用户的需要。

1-5什么是软件过程?

它与软件工程方法学有何关系?

z软件过程:

是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤z软件工程方法学:

通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型1-6传统“瀑布模型”的主要缺陷是什么?

试说明改进的方法。

传统的瀑布模型过于理想化了。

增加―反馈环‖

第二章

z可行性研究的目的:

就是用最小的代价在尽可能短的时间内确定问题是否能够解决。

z可行性研究的任务:

1.进一步分析和澄清问题;2.导出系统的逻辑模型;3.从逻辑模型出发,提出若干种系统实

现方案4.研究每种实现方案的可行性:

z技术上的可行性——使用现有的技术能实现这个系统吗?

z经济上的可行性——这个系统的经济效益能超过它的开发成本吗?

(投资与效益)z操作可行性——系统的操作方式在这个用户组织内行得通吗?

z社会、政策允许的可行性

5.为每个可行的解决方案制定一个粗略的实现进度

6.对以后的行动方针提出建议方法:

1.系统流程图

2.数据流图:

(dfd)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。

符号

数据处理数据流处理数据存储源点

第1页

第2页3.数据字典:

是关于数据的信息的集合,也就是对数据流图中饮食的所有元素的定义的集合。

数据流图与数据字典共同构成系统的逻辑模型。

4.成本/效益分析5.数据流图

–定货系统p32–习题2第2题p43(银行储蓄系统)–习题2第3题p43(机票预订系统)–习题2第4题p43(医院监护系统)

病人产生警告

分析接受处理信息信号信事务

112

3

护士

更新日志时钟产生病情理事样务报告

51定时处

6

7

护士

6.数据定义1、顺序+2、选择〔|〕3、重复下限{}上限

–定货系统p39–习题2第5题p44

2-1应该从哪些方面研究目标系统的可行

性?

z技术上的可行性——使用现有的技术能实现这个系统吗?

z经济上的可行性——这个系统的经济效益能超过它的开发成本吗?

(投资与效益)z操作可行性——系统的操作方式在这个用户组织内行得通吗?

z社会、政策允许的可行性

2-2为方便储户,某银行拟开发计算机储蓄系统。

储户填写的存款单或取款单由业务员键入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算利息并印出利息清单给储户。

请画出此系统的数据流图。

第2页

为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统核对无误即印出机票给旅客。

旅客

2.1交款

2.2

打印机票

旅客

旅行社

1.11事务

1.2

安排

航班

1.3

打印处理

录入信

处息理

2-3北京某高校可用的电话号码由以下几类:

校内电话号码由4位数字组成,第一位数字不是零;校外电话又分为

本市电话和外地电话两类,拨校外电话先拨0,若是本地电话再接着拨8位数字(固话第一位不是0)或11位数字(移动电话第一位为1);若是外地电话,则拨3位区码再拨8位电话号码(固话第一位不是0),或拨0再拨11位数字(移动电话第一位为1)。

请用数据定义的方法,定义上述电话号码。

电话号码=[校内号码|校外号码]校内号码=非0数字+3{数字}3

第3页

第4页校外号码=0+[本地号码|外地号码]

本地号码=[固话号码|手机号码]

固话号码=非0数字+7{数字}7手机号码=1+10{数字}10

外地号码=[外地固话号码|外地手机号码]外地固话号码=3{数字}3+固话号码外地手机号码=0+手机号码非0数字=[1|2|3|4|5|6|7|8|9]

第三章

z需求分析的准则:

1、必须并描述的信息域,根据这条准则应该建立数据模型。

2、必须定义软件应完成的功能,

这条准则要求建立功能模型。

3、必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型。

4、必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。

z需求分析的任务(p46)1、确定对系统的综合要求;2、分析系统的数据要求;3、导出系统的逻辑模型;4、修正

系统开发计划。

z方法

–实体-联系图

z习题3第3题p63(银行储蓄系统)

第4页

第5页z

习题3第5题p63(医院监护系统)

–数据流图

–状态转换图

z电话系统p57z习题3第6题p63(复印机)

第五章

z总体设计的任务

划分出组成系统的物理元素——程序、文件、数据库、人工过程和文档等等设计软件的结构。

也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。

z总体设计过程两个阶段

1.系统设计阶段,确定系统的具体实现方案;2.结构设计阶段,确定软件结构。

z总体设计过程9个步骤

1设想供选择的方案2选取合理的方案3推荐最佳方案4功能分解5设计软件结构6设计数据库7制定测试计划8书写文档9审查和审核

第5页

【篇三:

软件工程导论-第五版课件及课后答案】

1.1软件工程

在计算机系统发展的早期时代(60年代中期以前),通用硬件相当普遍,软件却是为每个具体应用而专门编写的。

这时的软件通常是规模较小的程序,编写者和使用者往往是同一个(或同一组)人。

这种个体化的软件环境,使得软件设计通常是在人们头脑中进行的一个隐含的过程,除了程序清单之外,没有其他文档资料保存下来。

从60年代中期到70年代中期是计算机系统发展的第二代时期,这个时期的一个重要特征是出现了“软件作坊”,广泛使用产品软件。

但是,“软件作坊”基本上仍然沿用早期形成的个体化软件开发方法。

随着计算机应用的日益普及.软件数量急剧膨胀。

在程序运行时发现的错误必须设法改正,用户有了新的需求时必须相应地修改程序;硬件或操作系统更新时,通常需要修改程序以适应新的环境。

上述种种软件维护工作,以令人吃惊的比例耗费资源。

更严重的是,许多程序的个体化特性使得它们最终成为不可维护的。

“软件危机”就这样开始出现了门968年北大西洋公约组织的计算机科学家在联邦德国召开国际会议,讨论软件危机问题,在这次会议上正式提出并使用了“软件工程”这个名词,一门新兴的工程学科就此诞生。

1.1.1软件危机介绍

1软件危机:

是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

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

概括地说,软件危机包含下述两方面的问题:

如何开发软件,怎样满足对软件的日益增长的需求;如何维护数量不断膨胀的已有软件。

具体地说,软件危机主要有下述一些表现:

(1)对软件开发成本和进度的估计常常很不准确。

实际成本比估计成本有可能高出一个数量级,实际进度比预期进度拖延几个月甚至几年的现象并不罕见。

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

软件开发人员常常在对用户要求只有模糊的了解,甚至对所要解决的问题还没有确切认识的情况下,就仓促上阵匆忙着手编写程序。

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

软件可靠性和质量保证的确切的定量概念刚刚出现不久,软件质量保证技术(审查、复审和测试)还没有坚持不懈地应用到软件开发的全过程中,这些都导致软件产品发生质量问题。

(4)软件常常是不可维护的。

很多程序中的错误是非常难改正的,实际上不可能使这些程序适应新的硬件环境,也不能根据用户的需要在原有程序中增加一些新的功能。

“可重用的软件”还是一个没有完全做到的、正在努力追求的目标,人们仍然在重复开发类

似的或基本类似的软件。

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

计算机软件不仅仅是程序,还应该有一整套文档资料。

这些文档资料应该是在软件开发过程中产生出来的,而且应该是“最新式的”(即和程序代码完全一致的)。

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

软件成本随着通货膨胀以及软件规模和数量的不断扩大而持续上升。

美国在1985年软件成本大约已占计算机系统总成本的90%。

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

软件产品“供不应求”的现象使人类不能充分利用现代计算机硬件提供的巨大潜力。

1.1.2产生软件危机的原因

在软件开发和维护的过程中存在这么多严重问题,一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。

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

软件缺乏可见性,在写出程序代码并在计算机上试运行之前,软件开发过程的进展情况较难衡量,软件开发的质量也较难评价。

软件在运行过程中不会因为使用时间过长而被“用坏”,如果

运行中发现错误,很可能是遇到了一个在开发时期引入的在测试阶段没能检测出来的故障。

因此,软件维护通常意味着改正或修改原来的设计,这就在客观上使得软件较难维护。

软件不同于一般程序,它的一个显著待点是规模庞大,而且程序复杂性将随着程序规模的增加而成指数上升。

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

对用户要求没有完整准确的认识就匆忙着手编写程序是许多软件开发工程失败的主要原因之一。

一个软件从定义、开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,这就如同一个人要经过胎儿、儿童、青年、中年、老年,直到最终死亡的漫长时期一样。

通常把软件经历的这个漫长的时期称为生命周期。

问题定义,也就是确定要求解决的问题是什么;

可行性研究,决定该问题是否存在一个可行的解决办法;需求分析,也就是深入具体地了解用户的要求,在所要开发的系统(不妨称之为目标系统)必须做什么这个问题上和用户取得完全一致的看法;

设计(通常又分为总体设计和详细设计两个阶段);

编写程序阶段;

测试(需要的工作量通常占软件开发全部工作量的40%一50%),最终交付使用。

编写程序只是软件开发过程中的—个阶段,而且在典型的软件开发工程中,编写程序所需的工作量只占软件开发全部工作量的10%一20%。

另一方面还必须认识到程序只是完整的软件产品的一个组成部分,在上述软件生命周期的每个阶段都要得出最终产品的一个或几个组成部分(这些组成部分通常以文档资料的形式存在)。

这也就是说一个软件产品必须由一个完整的配置组成,软件配置主要包括程序、文档和数据等部分。

应该清除只重视程序而忽视软件配置其余成分的糊涂观念。

严重的问题是,在软件开发的不同阶段进行修改需要付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;而在开发的中期软件配置的许多成分已经完成,引入一个变动要对所有已完成配置成分都做相应的修改,不仅工作量大,而且逻辑上是更复杂,因此付出的代价剧增;在软件“已经完成”时再引入变动,当然需要付出更高得多的代价。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1