软件工程课后参考答案分析.pdf

上传人:tbuqq 文档编号:4748731 上传时间:2019-12-07 格式:PDF 页数:26 大小:1.13MB
返回 下载 相关 举报
软件工程课后参考答案分析.pdf_第1页
第1页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《软件工程课后参考答案分析.pdf》由会员分享,可在线阅读,更多相关《软件工程课后参考答案分析.pdf(26页珍藏版)》请在三一文库上搜索。

1、第一章课后参考答案 1.什么是软件危机?它们有哪些典型表现?为什么会出现软件 危机? “软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一 系列“严重问题”。这些问题决不仅仅是不能正常运行的软件才具有 的,实际上,几乎“所有软件”都不同程度地存在这些问题。 “软件危机”包含两方面的问题: (1)如何开发软件,以满足对软件日益增长的需求; (2)如何维护数量不断膨胀的已有软件。 它们有以下表现: (1)对软件开发成本和进度的估计常常很不准确; (2)用户对“已完成的”软件系统不满意的现象经常发生; (3)软件产品的质量往往靠不住; (4)软件常常是不可维护的; (5)软件通常没有适当的

2、文档资料; (6)软件成本在计算机系统总成本中所占的比例逐年上升; (7)软件开发生产率提高的速度,远远跟不上计算机应用普及深入 的趋势。 出现软件危机的原因 (1)开发人员与客户认识之间的矛盾 (2)开发人员能力与开发目标之间的矛盾 (3)预估与实际工作量之间的矛盾 (4)客户认识的提高与软件维护之间的矛盾 (5)遗产系统与实施软件之间的矛盾 2.假设自己是一家软件公司的总工程师,当把图1.1 给手下的 软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有 人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不 现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个 人怎么能

3、在设计阶段清除它呢?”应该怎么反驳他? 答:在软件开发的不同阶段进行修改付出的代价是很不相同的, 在早期引入变动,涉及的面较少,因而代价也比较低;在开发的 中期,软件配置的许多成分已经完成,引入一个变动要对所有已 完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也 更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动, 当然付出的代价更高。一个故障是代码错误造成的,有时这种错 误是不可避免的,但要修改的成本是很小的,因为这不是 整体构架的错误。 3.什么是软件工程?它有哪些本质特征?怎么用软件工程消除 软件危机? 软件工程 是指导知道计算机软件开发和维护的一门工程学科。采用工 程的

4、概念、原理、 技术和方法来开发与维护软件,把经过时间考验而 证明正确的管理技术和当前能够得到的最好技术方法结合起来,以经 济地开发出高质量的软件并有效地维护它,这就是软件工程。 本质特征: (1)软件工程关注于大型软件的构造 (2)软件工程的中心课题是控制复杂性 (3)软件经常变化 (4)开发软件的效率非常重要 (5)和谐地合作是开发软件的关键 (6)软件必须有效支持它的用户 (7)在软件工程领域通常由一种文化背景的人替代具有另一种文化 背景的人创造产品 消除软件危机的原理: (1)用分阶段的生命周期计划严格管理 (2)坚持进行阶段评审 (3)实行严格的产品控制 (4)采用现代程序设计技术 (

5、5)结果应能清楚地审查 (6)开发小组的人员应该少而精 (7)承认不断改进软件工程实践的必要性 5 根据历史数据可以做出如下的假设: 对计算机存储容量的需求大致按下面公式描述的趋势逐年增加: M=4080e 0.28(Y-1960) 存储器的价格按下面公式描述的趋势逐年下降:P1=0.30.72 Y-1974(美分/ 位) 如果计算机字长为16 位,则存储器价格下降的趋势为:P2=0.0480.72 Y-1974 (美 元/ 字) 在上列公式中 Y 代表年份, M是存储容量 (字数),P1和 P2代表价格。 基于上述假设可以比较计算机硬件和软件成本的变化趋势。要求计算: 1) 在 1985 年

6、对计算机存储容量的需求估计是多少?如果字长为 16 位,这个存 储器的价格是多少 ? (2) 假设在 1985年一名程序员每天可开发出10 条指令,程序员的平均工资是 每月 4000 美元。如果一条指令为一个字长,计算使存储器装满程序所需用的成 本。 (3) 假设在 1995年存储器字长为32 位,一名程序员每天可开发出30条指令, 程序员的月平均工资为6000 美元,重复 (1) 、(2) 题。 6 什么是软件过程 ?它与软件工程方法学有何关系? 软件过程 是为了开发出高质量的软件产品所需完成的一系列任 务的框架,它规定了完成各项任务的工作步骤。 软件过程定义了运用技术方法的顺序、应该交付的

7、文档资料、 为保证软件质量和协调软件变化必须采取的管理措施,以及标志完成 了相应开发活动的里程碑。 软件过程是软件工程方法学的3 个重要组成部分之一。 7.什么是软件生命周期模型?试比较瀑布模型、快速模型、增量模型 和螺旋模型的优缺点,说明每种模型的适用范围。 通俗的说,简洁地描述软件过程的模型叫做软件生命周期模型, 生命周期模型规定了把生命周期花费成哪些阶段及各个阶段执行的 顺序。 模型名称比较特点适用范围 方法学角度应用角度 面向结构面型对象外部项目内部产品 瀑布模型基础模型、广 泛使用、标准 模式 是是 快速模型基本需求、原 形系统、可行 演练 是是 增量模型需求分解、增 量构件、并行

8、设计面向对象 是是 螺旋模型原形系统、风 险分析、大规 模附 带 风 险 分析的快速原 形模型 是是 8.为什么说喷泉模型较好地体现了面向对象软件开发过程无缝和迭 代的特性? 由于在整个开发过程中都使用统一的软件概念“对象”,所有其他 概念(例如功能、关系、事件等)都是围绕对象组成的,目的是保证 分析工作中得到的信息不会丢失或改变,因此,对生命周期各个阶段 的区分自然也就不重要了, 不明显了。分析阶段的得到的对象模型也 适用于设计阶段和实现阶段。 由于各阶段都使用统一的概念和表示符 号,因此,整个开发过程都是吻合一致的,或者说是“无缝”连接的, 这自然也就很容易实现各个开发步骤的多次反复迭代,

9、达到认识的逐 步深化。所以说喷泉模型较好的体现了面向对象软件开发过程无缝和 迭代的特性。 第二章课后习题参考答案 1、在软件开发的早期阶段为什么要进行可行性研究?应从哪些方面 研究目标系统的可行性? (1)开发一个软件时,需要判断原定的系统模型和目标是否现实,系统完 成后所能带来的效益是否大到值得投资开发这个系统的程度,如果做不到这些, 那么花费在这些工程上的任何时间、人力、软硬件资源和经费, 都是无谓的浪费。 可行性研究的实质是要进行一次大大压缩简化了的系统分析和设计过程,就是在 较高层次上以较抽象的方式进行的系统分析和设计的过程。可行性研究的目的就 是用最小的代价在尽可能短的时间内确定问题

10、是否能够解决。 (2)一般说来,至少应该从以下三个方面研究每种解法的可行性: a. 技术可行性。 对要开发项目的功能、性能和限制条件进行分析,确定在 现有的资源条件下, 技术风险有多大, 项目是否能实现, 这些即为技术可行性研 究的内容。 这里的资源包括已有的或可以搞到的硬件、软件资源, 现有技术人员 的技术水平和已有的工作基础。 b. 经济可行性。进行开发成本的估算以及了解取得效益的评估,确定要开发的项 目是否值得投资开发, 这些即为经济可行性研究的内容对于大多数系统,一般衡 量经济上是否合算,应考虑一个底线”,经济可行性研究范围较广,包括成本 效益分析,长期公司经营策略,开发所需的成本和资

11、源,潜在的市场前景。 c. 操作可行性。有时还要研究社会可行性问题, 研究要开发的项目是否存在任何 侵犯、妨碍等责任问题。 社会可行性所涉及的范围也比较广,它包括合同、责任、 侵权和其他一些技术人员常常不了解的陷阱等。必要时还应该从法律、 社会效益 等更广泛的方面研究每种解法的可行性。 2、为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单 或取款单由业务员键入系统,如果是存款,系统记录存款人姓名、住 址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果 是取款,系统计算利息并打印出利息清单给储户。 写出问题定义病画出此系统的数据流图和系统流程图。 问题定义 :银行业务员每天手工

12、处理储户存取款业务,工作量较大, 需要业务员多。 数据流图如下 : 储 户 储 户 1.1 记录存 款信息 1.2 打印 存单 2.1 验证 2.2 计算 利息 2.3 打印利 息清单 D1 存款信息 存款 信息 息 存款 信息 存款 信息 存款 信息 值 系统流程图如下: 3、某航空公司拟开发一个机票预定系统。旅行社把预订机票的旅客 信息(姓名、性别 等)输入进该系统,系统为旅客安排航班,印出 取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取 票,系统核对无误即印出机票给旅客。 写出问题定义病画出此系统的数据流图。 问题定义:某航空公司,售票工作人员每天手工处理旅客预订票、安 排

13、航班、取票和收款业务,工作量较大,需要工作人员多。 储户填 写存/ 取款单 银行业务 员输入存 / 取款信息 事务 存款 事务 存款 事务 打印存款单 计算利息 存款单 利息清单 存款人 信息文 利息信 息文件 打印利息清单 数据流图如下: 4、住院病人主要由护士护理,这样做不仅需要大量护士,而且由于 不能随时观察危重病人的病情变化,还会延误抢救时机。 某医院打算 开发一个以计算机为中心的患者监护系统,请分层次地画出描述本系 统功能的数据流图。 医院对患者监护系统的基本要求是随时接收每个病人的生理信号 (脉搏、体温、血压、心电图等 ),定时记录病人情况以形成患者日志, 当某个病人的生理信号超出

14、医生规定的安全范围时向值班护士发出 警告信息,此外,护士在需要时还可以要求系统印出某个指定病人的 病情报告。 符号说明如下: F1-要求报告 F2-生理信号 F3-日期、时间 F4-警告信息 F5-安全范围 F6-日志 P1-接收信号 P2-分析信号 P3-产生警告 P4-定时取样生理信号 P5-更新日志 P6-产生病情报告 D1-患者日志 D2-患者安全范围 D3-生理信息 2.1 交款 2.2 打印 机票 1.1 录入 信息 1.2 安排 航班 1.3 打印 取票 旅 客 旅 客 D1 订票信 息息 信 息 旅 客 订 票 信 航 班 信 值 旅行社 旅 客 信 交 款 信 旅 客 通 知

15、 取票通知 账单/ 票款 E1-护士 E2-病人 E3-时钟 E1 护士 E3 时钟 E2 病人 F1要求报告 F2生理信号 F3日前、时间 E1 护士 F4警告信息 D2患者安全范围 D1患者日志 F5安全范围 F6日志 P1 接收信号 P4 定时取样 生理信号 P5 更新日志 P3 产生警告信息 P2 分析信号 P6 产生病情报告 F2生理信号 危及病人信息 定时的生理信号 F2生理信号 F6日志 E1 护士 E3 时钟 E2 病人 P0 患者监护系统 F1要求报告 F2生理信号 F3日前、时间 E1 护士 F4警告信息、病情报告 D2患者安全范围 D1患者日志 F5安全范围 F6日志 E

16、1 护士 E3 时钟 E2 病人 F1要求报告 F2 生理信号 F3 日前、时间 E1 护士 F4 警告信息 D2 患者安全范围 D1患者日志 F5安全范围 F6日志 P1 接收信号 P4 定时取样 生理信号 P5 更新日志 P3 产生警告信息 P2 分析信号 P6 产生病情报告 F2 生理信号 危及病人信息 定时的生理信号 F2 生理信号 F6 日志 D3生理信息 F2生理信号 定时的 生理信号 P7 制定安 全范围 5、 北京某高校可用的电话号码有以下几类:校内电话号码由4 位数 字组成,第 1 位数字不是 0;校外电话又分为本市电话和外地电话两 类,拨校外电话需先拨0,若是本市电话则再接

17、着拨8 位数字(第 1 位不是 0),若是外地电话则拨3 位区码再拨 8 位电话号码 (第 1 位不 是 0)。 请用定义数据字典的方法,定义上述的电话号码。 电话号码 = 校内电话号码 | 校外电话号码 校内电话号码 =非零数字 + 3 位数字 /后面继续定义 校外电话号码 = 本市号码 | 外地号码 本市号码 =数字零 +8位数字 外地号码 =数字零 +3位数字+8 位数字 非零数字 =1|2|3|4|5|6|7|8|9 数字零 0 3 位数字 3数字3 /3至 3 个数字 8 位数字 =非零数字 +7位数字 7 位数字 =7数字7 数字 0|1|2|3|4|5|6|7|8|9 第三章课后

18、参考答案 3、银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或 取款单由业务员键入系统, 如果是存款则系统记录存款人姓名、住址 (或电话号码 )、身份证号码、存款类型、存款日期、到期日期、利率 及密码 (可选)等信息,并印出存单给储户;如果是取款而且存款时留 有密码,则系统首先核对储户密码,若密码正确或存款时未留密码, 则系统计算利息并印出利息清单给储户。 请用数据流图描绘本系统的功能,并用实体-联系图描绘系统中的 数据对象。 本系统的顶层数据流图如下: 本系统的数据流图如下: E1 储户 P0 储蓄系统 E1 储户 F1存款单 F2取款单 F3存单 F4利息清单 D1存款信息 F5存

19、款信息F5存款信息 注意:不能是两个分开的子系统,是相同的前台单个处理 E1 储户 E1 储户 F1存款单 F2取款单 F3存单 F4利息 D1存款信息 F5存款信息 F5存款信息 E2 业务员 P3 核算密码 P4 计算利息 P5 打印利息清单 P1 记录存款信息 P2 打印存单 F7密码 D2存款利率 F8储蓄利率 P6 设置利率 F8储蓄利率 F8储蓄利率 F6取款信息 F5存款信息 F7密码 F4利息 F4利息 E1 储户 F2取款单 D1存款信息 P3.1 输入取款信息 F7密码P3.2 密码校验 F5存款信息 F7密码 无效取款信息 实体-联系图如下: 本问题中共有两类实体,分别是

20、“储户”和“储蓄所”, 在它们之间存在 “存取款 ”关系。 因为一位储户可以在多 家储蓄所存取款, 一家储蓄所拥有多位储户, 所以“存取 款”是多对多( M:N)关系。 储户的属性 主要有姓名、住址、电话号码和身份证号码, 储蓄所的属性 主要是名称、 地址和电话号码, 而数额、类 型、到期日期、利率和密码则是关系类型存取款的属性。 E1 储户 E1 储户 存款单 密码 存单 利息 存款信息 E2业 务员 P4 计算利息 P5 打印利息 清单 P1 记录存款信息 P2 打印存单 取款单 利率 P6设置利 率 利率 密码正确信息 利息 P3.1输入取款 信息 P3.2 密码校验 取款信息 E1储

21、户 E1储 户 4、分析习题 2 第 3 题所述的机票预订系统, 试用实体 -联系图描述本 系统中的数据对象。 实体-联系图如下: 本问题中主要有四类实体,分别是“顾客”、 “旅行 社” 、 “飞机航班信息 ” 和“飞机票”, 在它们之间存在的关系有: “顾客”和、 “旅行社”有“代理”关系;因为一位顾客 可以让多家旅行社代理,一家旅行社拥有多位顾客,所以 “代理”是多对多( M:N)关系。 “顾客”和飞机票” 有“拥有”关系,是一对一( 1:1)关系。 “飞机航班信息 ” 和“飞机票”有“包括”关系,是是一对多 一(1:N)关系。 顾客的属性 主要有姓名、性别、工作单位、身份证号码、 旅行时

22、间、旅行目的地、联系电话。 旅行社的属性 主要是旅行社名称、地址和电话号码。 飞机航班信息的属性 主要是航班号、飞行时间、飞行路线、 票价、实时折扣信息。 飞机票的属性 主要是航班号、 座位号、座位信息、机票类 型。 5、分析习题 2 第 4 题所述的患者监护系统,试用实体-联系图描 述本系统中的数据对象,画出本系统的顶层IPO 图。 实体-联系图如下: 监护 护士病人 时间脉搏体温血压心电图 住院号姓名住址电话编号姓名科室 N M 本系统的顶层 IPO 图如下: 6、 复印机的工作过程大致如下: 未接到复印命令时处于闲置状态, 一旦接到复印命令则进入复印状态,完成一个复印命令规定的工 作后又

23、回到闲置状态,等待下一个复印命令;如果执行复印命令 时发现没纸,则进入缺纸状态,发出警告,等待装纸,装满纸后 进入闲置状态,准备接收复印命令;如果复印时发生卡纸故障, 则进入卡纸状态,发出警告等待维修人员来排除故障,故障排除 后回到闲置状态。 请用状态转换图描绘复印机的行为。 从问题陈述可知, 复印机的状态主要有 “闲置”、“复印”、“缺 纸”和“卡纸”。 引起状态转换的事件主要是“复印命令 ”、 “完 病 人 生 理 信 号 1、 接 受 病 人 生理信号 2、 记 录 病 人 情况(更新 患者日志) 3、 验 证 病 人 生 理 信 号 是 否 超 出 安全范围 4、 发出警告 5、 查

24、询 病 人 情况 有效病人生理 信号 显示警告信息 打印指定病人 情况 输入处理输出 成复印命令 ”、“发现缺纸 ”、“装满纸 ”、“发生卡纸故障 ” 和“排除了卡纸故障 ”。 第五章课后参考答案 3、设计下列系统的软件结构 (1)储蓄系统 2-2 (2)机票预定系统2-3 (3)患者监护系统2-4 参考答案:使用结构图表示 1、 1、储蓄系统 银行储蓄系 统 业务单据录 入 存款利 率设置 存款单据输 入 取款单 据输入 储蓄业务处理 存款 取款 存单利息清单 利 率 存款 单 取 款 单 密 码 存 款 单 取 款 单 密码 利 息 清 单 存 单 密码 存 款 单 存 单 利 率 利 率

25、 利 息 单据输出 存单 利息清 单 2、机票预定系统 机票预定系 统 机票预定子 系统 机票发放子 系统 预定信息处 理 安排航班 录入预定信 息 设置航班 打印取票单 据 取票凭证处 理 录入取票凭 证 核对取票凭 证 交款 打印及发放 机票 航 班 信 息 预 定 信 息 航班信 息 预定 信息 机 票 信 息 通 知 单 账 单 机 票 信 息 机 票 信 息 通 知 单 账单 通 知 单 通 知 单 有 效 通 知 账 单 有效 通知 账 单 机 票 3、患者监护系统 患者监护系 统 患者生理信 号获取 制定生理信 号安全范围 接收信号 定时取样 生理信号 监护处理 分析信号更新日志

26、 报警病情报告 生 理 信 号 范 围 生 理 信 号 定 时 生 理 信 号 生 理 信 号 范 围 定 时 生 理 信 号 日 志 危 机 信 息 生 理 信 号 危 机 信 息 生 理 信 号 定 时 生 理 信 号 日 志 监护信息输 出 日志 危机信 息 生 理 信 号 取得时间 时 间 4、美国某大学有200 名教师,校方与教师工会刚刚签订一项协 议。按照协议,所有年工资超过$26000(含$26000 )的教师工 资将保持不变,年工资少于$26000 的教师将增加工资,所增加 工资数额按下述方法计算:给每位教师所赡养的人(包括教师本 人)每年补助 $100,此外,教师有一年工龄每

27、年再多补助¥50, 但是,增加后的年工资总额不能多于$26000 。 教师工资档案存储在行政办公室的磁带上,档案中有目前的年工 资、赡养的人数、雇佣日期等信息。需要写一个程序计算并印出 每名教师的原工资和调整后的新工资。 要求: (1)画出此系统的数据流图; (2)写出需求说明; (3)设计上述的工资调整程序(要求用 HIPO 图描绘设计结果 ), 设计时分别采用两种算法,并比较两种算法的优缺点: (a)搜索工资档案数据,找出年工资少于$26000 的人, 计算新工资,校核是否超过$26000 ,存储新工资,印出新 旧工资对照表; (b)把工资档案数据按工资从最低到最高的次序排序,当 工资数额

28、超过 $26000 时即停止排序, 计算新工资, 校核是 否超过限额,存储新工资,印出结果。 (4)你所画出的数据流图适应用那种算法? (1)系统的数据流图 (2)需求说明; 经分析可知: E1 行政办 公室 工资调资系统 工资档案 E1 行政办 公室 调资后工资档案原工资档案 调资后工资档案 E1 行政办 公室 P1 导入原工 资档案 工资档案 E1 行政办 公室 调资后工资档案 原工资档案 P2 输入调资 标准 P5 输出工资 对照表 P4 核对工资 P3 调整工资 调资标准 工资标准 调资标准 调资标准 调资标准 调资后工资档案 本系统必须包括如下7 个功能:导入原工资档案、输入调资标准

29、、 检索需调资工资数据、计算新工资、校核新工资、更新新工资数据、 输出工资对照表 包含数据:教师工资档案、工资标准 (3) (a) 导入工 资档案 1.1 工资调资系统 导入调资档案 1.0 输入调 资标准 1.2 调资 2.0 计算新工资 2.1 校核新工资 2.2 打印工资对照表 3.0 检索需调资 工资数据 1.3 更新新工资 数据 2.3 (b) 4)你所画出的数据流图适应用那种算法(a) IPO表 系统 : 工资调资系统作者:王毅 模块 : 导入调资档案日期 : 2014-2-1 编号 : 1.0 被调用: 工资调资系统调用: 1.1 和 1.2 输入: 原工资档案输出: 工资档案 处理: 把原工资档案导入工资调资系统的数据库中 局部数据元素:注释: 工资调资系统 导入工 资档案 1.1 打印工资对照表 3.0 更新新工资 导入调资档案 1.0 输入调 资标准 1.2 调资 2.0 计算新工资 2.1 校核新工资 2.2 工资数据整 理排序 1.3 数据 2.3

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1