软件工程项目解决方法课后参考'答案内容.doc
《软件工程项目解决方法课后参考'答案内容.doc》由会员分享,可在线阅读,更多相关《软件工程项目解决方法课后参考'答案内容.doc(37页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第一章课后参考答案第一章课后参考答案1.什么是软件危机?它们有哪些典型表现?为什么会出现软件危机?“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”。这些问题决不仅仅是不能正常运行的软件才具有的,实际上,几乎“所有软件”都不同程度地存在这些问题。它们有以下表现:(1)对软件开发成本和进度的估计常常很不准确;(2)用户对“已完成的”软件系统不满意的现象经常发生;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的文档资料;(6)软件成本在计算机系统总成本中所占的比例逐年上升;(7)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的
2、趋势。出现软件危机的 主要原因(1)与软件本身的特点有关(2)与软件开发和维护过程中使用的方法不正确有关2.假设自己是一家软件公司的总工程师,当把图 1.1 给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,
3、而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”时在引入变动,当然付出的代价更高。一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。3.什么是软件工程?它有哪些本质特征?怎么用软件工程消除软件危机?软件工程是指导知道计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。本质特征:(1)软件工程关注于大型软件的构造(2)软件工程的中心课题是控制复杂性(3)软件经常变化(4)开
4、发软件的效率非常重要(5)和谐地合作是开发软件的关键(6)软件必须有效支持它的用户(7)在软件工程领域通常由一种文化背景的人替代具有另一种文化背景的人创造产品消除软件危机的原理:(1)用分阶段的生命周期计划严格管理(2)坚持进行阶段评审(3)实行严格的产品控制(4)采用现代程序设计技术(5)结果应能清楚地审查(6)开发小组的人员应该少而精(7)承认不断改进软件工程实践的必要性5 5 根据历史数据可以做出如下的假设根据历史数据可以做出如下的假设 :对计算机存储容量的需求大致按下面公式描述的趋势逐年增加:对计算机存储容量的需求大致按下面公式描述的趋势逐年增加:M=4080eM=4080e0.28(
5、Y-1960)0.28(Y-1960) , ,存储器的价格按下面公式描述的趋势逐年下降:存储器的价格按下面公式描述的趋势逐年下降:P1=0.30.72P1=0.30.72Y-1974Y-1974( (美分美分/ /位位),),如果计算机字长为如果计算机字长为 1616 位,则存储器价位,则存储器价格下降的趋势为:格下降的趋势为:P2=0.0480.72P2=0.0480.72Y-1974Y-1974( (美元美元/ /字字),),在上列公式中在上列公式中 Y Y 代表年份,代表年份,M M 是存储容量是存储容量( (字数字数) ),P1P1 和和 P2P2 代表代表价格。价格。基于上述假设可以
6、比较计算机硬件和软件成本的变化趋势。基于上述假设可以比较计算机硬件和软件成本的变化趋势。要要求计算:求计算:1)1) 在在 19851985 年对计算机存储容量的需求估计是多少年对计算机存储容量的需求估计是多少? ?如果字长为如果字长为1616 位,这个存储器的价格是多少位,这个存储器的价格是多少? ?(2)(2) 假设在假设在 19851985 年一名程序员每天可开发出年一名程序员每天可开发出 1010 条指令,程序条指令,程序员的平均工资是每月员的平均工资是每月 40004000 美元。如果一条指令为一个字长,计算使美元。如果一条指令为一个字长,计算使存储器装满程序所需用的成本。存储器装满
7、程序所需用的成本。(3)(3) 假设在假设在 19951995 年存储器字长为年存储器字长为 3232 位,一名程序员每天可开位,一名程序员每天可开发出发出 3030 条指令,程序员的月平均工资为条指令,程序员的月平均工资为 60006000 美元,重复美元,重复(1)(1)、(2)(2)题。题。6 什么是软件过程?它与软件工程方法学有何关系?软件过程是为了开发出高质量的软件产品所需完成的一系列任务的框架,它规定了完成各项任务的工作步骤。软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法 的集合称为方法学,也称范型。软件过程是软件工程方法学的 3 个重要组成部分之一。7.什么是软
8、件生命周期模型?试比较瀑布模型、快速模型、增量模型和螺旋模型的优缺点,说明每种模型的适用范围。通俗的说,简洁地描述软件过程的模型叫做软件生命周期模型,生命周期模型规定了把生命周期花费成哪些阶段及各个阶段执行的顺序。瀑布模型的优点:有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。瀑布模型的缺点:(1)开发过程一般不能逆转,否则代价太大;(2)实际的项目开发很难严格按该模型进行;(3)客户往往很难清楚地给出所有的需求,而该模型却要求如此。(4)软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心。 瀑布模型的使用范
9、围:(1)用户的需求非常清楚全面,且在开发过程中没有或很少变化; (2)开发人员对软件的应用领域很熟悉;(3)用户的使用环境非常稳定;(4)开发工作对用户参与的要求很低。快速原型模型的优点:(1)可以得到比较良好的需求定义,容易适应需求的变化;(2)有利于开发与培训的同步;(3)开发费用低、开发周期短且对用户更友好。快速原型模型的缺点:(1)客户与开发者对原型理解不同;(2) 准确的原型设计比较困难;(3) 不利于开发人员的创新。快速原型模型的使用范围:(1)对所开发的领域比较熟悉而且有快速的原型开发工具;(2)项目招投标时,可以以原型模型作为软件的开发模型;(3)进行产品移植或升级时,或对已
10、有产品原型进行客户化工作时,原型模型是非常适合的。增量模型的优点:(1)采用增量模型的优点是人员分配灵活,刚开始不用投入大量人力资源;(2)如果核心产品很受欢迎,则可增加人力实现下一个增量;(3)可先发布部分功能给客户,对客户起到镇静剂的作用。增量模型的缺点:(1)并行开发构件有可能遇到不能集成的风险,软件必须具备开放式的体系结构;(2)增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。增量模型的使用范围:(1)进行已有产品升级或新版本开发,增量模型是非常适合的;(2)对完成期限严格要求的产品,可以使用增量模
11、型;(3)对所开发的领域比较熟悉而且已有原型系统,增量模型也是非常适合的。螺旋模型的优点:(1)设计上的灵活性,可以在项目的各个阶段进行变更;(2)以小的分段来构建大型系统,使成本计算变得简单容易;(3)客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性;(4) 随着项目推进,客户始终掌握项目的最新信息 , 从而他或她能够和管理层有效地交互。 螺旋模型的缺点:(1)采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失;(2)过多的迭代次数会增加开发成本,延迟提交时间。螺旋模型的使用范围:螺旋模型只适合于大规模的
12、软件项目。8.为什么说喷泉模型较好地体现了面向对象软件开发过程无缝和迭代的特性?由于在整个开发过程中都使用统一的软件概念“对象”,所有其他概念(例如功能、关系、事件等)都是围绕对象组成的,目的是保证分析工作中得到的信息不会丢失或改变,因此,对生命周期各个阶段的区分自然也就不重要了,不明显了。分析阶段的得到的对象模型也适用于设计阶段和实现阶段。由于各阶段都使用统一的概念和表示符号,因此,整个开发过程都是吻合一致的,或者说是“无缝”连接的,这自然也就很容易实现各个开发步骤的多次反复迭代,达到认识的逐步深化。所以说喷泉模型较好的体现了面向对象软件开发过程无缝和迭代的特性。第二章第二章 课后习题参考答
13、案课后习题参考答案1、在软件开发的早期阶段为什么要进行可行性研究?应从哪些方面研究目标系统的可行性?(1)开发一个软件时,需要判断原定的系统模型和目标是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度,如果做不到这些,那么花费在这些工程上的任何时间、人力、软硬件资源和经费,都是无谓的浪费。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。(2)一般说来,至少应该从以下三个方面研究每种解法的可行性:a.技术可行性 b.经济可行性 c.操作可行性。2、为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员键入系统,如果是存款,系统记录存款人
14、姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算利息 并打印出利息清单给储户。写出问题定义病画出此系统的数据流图。问题定义如下:如果是存款,储户填写存款单,然后交给业务员键入系统,同如果是存款,储户填写存款单,然后交给业务员键入系统,同时系统还要记录存款人姓名、住址(或电话号码)、身份证号码、时系统还要记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、利率等信息,完成后由系统打印存款单给储存款类型、存款日期、利率等信息,完成后由系统打印存款单给储户。户。如果是取款,储户填写取款单,然后交给业务员,业务员把取如果是取款,储户填写取款单,然后交
15、给业务员,业务员把取款金额输入系统并要求储户输入密码以确认身份,核对密码正确无款金额输入系统并要求储户输入密码以确认身份,核对密码正确无误后系统计算利息并印出利息清单给储户。误后系统计算利息并印出利息清单给储户。为了满足储户的需求,该系统需要迅速的对用户的要求做出为了满足储户的需求,该系统需要迅速的对用户的要求做出反馈,要对用户输入的信息作出最快的处理,所以就需要很大的主反馈,要对用户输入的信息作出最快的处理,所以就需要很大的主存容量,以及强大的数据库支持。由于是所面向的用户是广泛的储存容量,以及强大的数据库支持。由于是所面向的用户是广泛的储蓄用户群,所以需要系统强大的安全性能支持。蓄用户群,
16、所以需要系统强大的安全性能支持。系统的分层数据流图如下系统的分层数据流图如下: 1、顶层数据流图储户银行系统储户存款单存单取款单利息清单业务员存款利率2、中层数据流图存款 1取款 2存款单存单取款单利息清单D1 储户存 款文件利率设置 3存款利率D2 存款利率 文件3、底层数据流图存款单 检查 1.1输出存单 1.3存款单存单D1.1 储户帐 户文件存入款户 1.2存款信息D1.2 事务 流水帐D2 存款利率 文件密码校验 2.1D1.1帐户 文件取款处理 2.2取款单取款信息打印利息 清单 2.3D1.2事务 文件利息 清单D2 存款利 率文件3、某航空公司拟开发一个机票预定系统。旅行社把预
17、订机票的旅客信息(姓名、性别等)输入进该系统,系统为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统核对无误即印出机票给旅客。写出问题定义病画出此系统的数据流图写出问题定义病画出此系统的数据流图。问题定义:问题定义:某航空公司,售票工作人员每天手工处理旅客预订票、某航空公司,售票工作人员每天手工处理旅客预订票、安排航班、取票和收款业务,工作量较大,需要工作人员多等,总安排航班、取票和收款业务,工作量较大,需要工作人员多等,总之之人工不易管理,手续繁琐人工不易管理,手续繁琐。数据流图如下:数据流图如下: 1 1、顶层数据流图、顶层数据流图飞飞机机机机票票预预
18、订订 系系统统旅旅行行社社旅旅 客客订 机 票账单、取 票通知单机 票账单、取票单旅旅行行社社信 信 信 信 信 信 信 信2 2、中间层数据流图、中间层数据流图预预订订机机票票 1 1旅旅客客取取票票 2 2机 票 文 件订票单账单、取票通 知单机 票设设置置航航班班 3 3信 信 信 信航班信息账单、取票单账单取票通知单3 3、底层数据流图、底层数据流图安安排排航航班班 1 1. .2 2机票文件旅客信息账单有 效 订 票 单 录录入入预预定定信信 息息1 1. .1 1取票通知单航班信息打打印印账账单单和和 取取票票通通知知单单 1 1. .3 3取票单据核核对对取取票票凭凭证证 3 3
19、. .1 1账单、取票 通知单取票通知取票信息交交款款 3 3. .2 2账单打打印印机机票票 3 3. .3 3机 票交款 信息机票文件4、住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察危重病人的病情变化,还会延误抢救时机。某医院打算开发一个以计算机为中心的患者监护系统,请分层次地画出描述本系统功能的数据流图。问题定义:本题要开发一个病人监护系统,实现对病人症状的自动监护,形成病人日志记录,减少人力的浪费。 在监控过程中,随时接受病人的生理信息(脉搏、体温、血压、心电图),对病人的不正常生理信息(超出医生规定的安全范围的信息)发出警告,并向护士发出警告信息。护士还可以根
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 工程项目 解决方法 课后 参考 39 答案 内容
限制150内