软件工程课后参考答案.docx

上传人:b****5 文档编号:11666754 上传时间:2023-03-29 格式:DOCX 页数:21 大小:756.07KB
下载 相关 举报
软件工程课后参考答案.docx_第1页
第1页 / 共21页
软件工程课后参考答案.docx_第2页
第2页 / 共21页
软件工程课后参考答案.docx_第3页
第3页 / 共21页
软件工程课后参考答案.docx_第4页
第4页 / 共21页
软件工程课后参考答案.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

软件工程课后参考答案.docx

《软件工程课后参考答案.docx》由会员分享,可在线阅读,更多相关《软件工程课后参考答案.docx(21页珍藏版)》请在冰豆网上搜索。

软件工程课后参考答案.docx

软件工程课后参考答案

第一章课后参考答案

1.什么是软件危机?

它们有哪些典型表现?

为什么会出现软件危机?

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

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

“软件危机”包含两方面的问题:

(1)如何开发软件,以满足对软件日益增长的需求;

(2)如何维护数量不断膨胀的已有软件。

它们有以下表现:

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

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

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

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

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

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

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

出现软件危机的原因

(1)开发人员与客户认识之间的矛盾

(2)开发人员能力与开发目标之间的矛盾

(3)预估与实际工作量之间的矛盾

(4)客户认识的提高与软件维护之间的矛盾

(5)遗产系统与实施软件之间的矛盾

2.假设自己是一家软件公司的总工程师,当把图给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:

“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?

”应该怎么反驳他?

答:

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

一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是

整体构架的错误。

3.什么是软件工程?

它有哪些本质特征?

怎么用软件工程消除软件危机?

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

采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。

本质特征:

(1)软件工程关注于大型软件的构造

(2)软件工程的中心课题是控制复杂性

(3)软件经常变化

(4)开发软件的效率非常重要

(5)和谐地合作是开发软件的关键

(6)软件必须有效支持它的用户

(7)在软件工程领域通常由一种文化背景的人替代具有另一种文化背景的人创造产品

消除软件危机的原理:

(1)用分阶段的生命周期计划严格管理

(2)坚持进行阶段评审

(3)实行严格的产品控制

(4)采用现代程序设计技术

(5)结果应能清楚地审查

(6)开发小组的人员应该少而精

(7)承认不断改进软件工程实践的必要性

5.根据历史数据可以做出如下的假设:

对计算机存储容量的需求大致按下面公式描述的趋势逐年增加:

M=(Y-1960)

存储器的价格按下面公式描述的趋势逐年下降:

P1=×(美分/位)

如果计算机字长为16位,则存储器价格下降的趋势为:

P2=×(美元/字)

在上列公式中Y代表年份,M是存储容量(字数),P1和P2代表价格。

基于上述假设可以比较计算机硬件和软件成本的变化趋势。

要求计算:

1)在1985年对计算机存储容量的需求估计是多少?

如果字长为16位,这个存储器的价格是多少?

(2)假设在1985年一名程序员每天可开发出10条指令,程序员的平均工资是每月4000美元。

如果一条指令为一个字长,计算使存储器装满程序所需用的成本。

(3)假设在1995年存储器字长为32位,一名程序员每天可开发出30条指令,程序员的月平均工资为6000美元,重复

(1)、

(2)题。

6什么是软件过程?

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

软件过程是为了开发出高质量的软件产品所需完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

软件过程定义了运用技术方法的顺序、应该交付的文档资料、为保证软件质量和协调软件变化必须采取的管理措施,以及标志完成了相应开发活动的里程碑。

软件过程是软件工程方法学的3个重要组成部分之一。

7.什么是软件生命周期模型?

试比较瀑布模型、快速模型、增量模型和螺旋模型的优缺点,说明每种模型的适用范围。

通俗的说,简洁地描述软件过程的模型叫做软件生命周期模型,生命周期模型规定了把生命周期花费成哪些阶段及各个阶段执行的顺序。

模型名称

比较特点

适用范围

方法学角度

应用角度

面向结构

面型对象

外部项目

内部产品

瀑布模型

基础模型、广泛使用、标准模式

快速模型

基本需求、原形系统、可行演练

增量模型

需求分解、增量构件、并行设计面向对象

螺旋模型

原形系统、风险分析、大规模附带风险分析的快速原形模型

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

由于在整个开发过程中都使用统一的软件概念“对象”,所有其他概念(例如功能、关系、事件等)都是围绕对象组成的,目的是保证分析工作中得到的信息不会丢失或改变,因此,对生命周期各个阶段的区分自然也就不重要了,不明显了。

分析阶段的得到的对象模型也适用于设计阶段和实现阶段。

由于各阶段都使用统一的概念和表示符号,因此,整个开发过程都是吻合一致的,或者说是“无缝”连接的,这自然也就很容易实现各个开发步骤的多次反复迭代,达到认识的逐步深化。

所以说喷泉模型较好的体现了面向对象软件开发过程无缝和迭代的特性。

第二章课后习题参考答案

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

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

(1)开发一个软件时,需要判断原定的系统模型和目标是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度,如果做不到这些,那么花费在这些工程上的任何时间、人力、软硬件资源和经费,都是无谓的浪费。

可行性研究的实质是要进行一次大大压缩简化了的系统分析和设计过程,就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。

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

(2)一般说来,至少应该从以下三个方面研究每种解法的可行性:

 a.技术可行性。

对要开发项目的功能、性能和限制条件进行分析, 确定在现有的资源条件下,技术风险有多大,项目是否能实现,这些即为技术可行性研究的内容。

这里的资源包括已有的或可以搞到的硬件、软件资源,现有技术人员的技术水平和已有的工作基础。

 

b.经济可行性。

进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发,这些即为经济可行性研究的内容对于大多数系统,一般衡量经济上是否合算,应考虑一个底线”,经济可行性研究范围较广,包括成本—效益分析,长期公司经营策略, 开发所需的成本和资源,潜在的市场前景。

c.操作可行性。

有时还要研究社会可行性问题,研究要开发的项目是否存在任何侵犯、妨碍等责任问题。

社会可行性所涉及的范围也比较广,它包括合同、责任、侵权和其他一些技术人员常常不了解的陷阱等。

必要时还应该从法律、社会效益等更广泛的方面研究每种解法的可行性。

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

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

写出问题定义病画出此系统的数据流图和系统流程图。

问题定义:

银行业务员每天手工处理储户存取款业务,工作量较大,需要业务员多。

数据流图如下:

系统流程图如下:

3、某航空公司拟开发一个机票预定系统。

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

写出问题定义病画出此系统的数据流图。

问题定义:

某航空公司,售票工作人员每天手工处理旅客预订票、安排航班、取票和收款业务,工作量较大,需要工作人员多。

数据流图如下:

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

某医院打算开发一个以计算机为中心的患者监护系统,请分层次地画出描述本系统功能的数据流图。

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

符号说明如下:

●F1-要求报告F2-生理信号F3-日期、时间

●F4-警告信息F5-安全范围F6-日志

●P1-接收信号P2-分析信号P3-产生警告

●P4-定时取样生理信号P5-更新日志P6-产生病情报告

●D1-患者日志D2-患者安全范围D3-生理信息

●E1-护士E2-病人E3-时钟

 

 

 

5、北京某高校可用的电话号码有以下几类:

校内电话号码由4位数字组成,第1位数字不是0;校外电话又分为本市电话和外地电话两类,拨校外电话需先拨0,若是本市电话则再接着拨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]

第三章课后参考答案

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

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

请用数据流图描绘本系统的功能,并用实体-联系图描绘系统中的数据对象。

本系统的顶层数据流图如下:

 

本系统的数据流图如下:

 

 

 

注意:

不能是两个分开的子系统,是相同的前台单个处理

 

实体-联系图如下:

–本问题中共有两类实体,分别是“储户”和“储蓄所”,在它们之间存在“存取款”关系。

因为一位储户可以在多家储蓄所存取款,一家储蓄所拥有多位储户,所以“存取款”是多对多(M:

N)关系。

–储户的属性主要有姓名、住址、电话号码和身份证号码,储蓄所的属性主要是名称、地址和电话号码,而数额、类型、到期日期、利率和密码则是关系类型存取款的属性。

4、分析习题2第3题所述的机票预订系统,试用实体-联系图描述本系统中的数据对象。

实体-联系图如下:

–本问题中主要有四类实体,分别是“顾客”、“旅行社”、“飞机航班信息”和“飞机票”,

–在它们之间存在的关系有:

“顾客”和、“旅行社”有“代理”关系;因为一位顾客可以让多家旅行社代理,一家旅行社拥有多位顾客,所以“代理”是多对多(M:

N)关系。

“顾客”和飞机票”有“拥有”关系,是一对一(1:

1)关系。

“飞机航班信息”和“飞机票”有“包括”关系,是是一对多一(1:

N)关系。

–顾客的属性主要有姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地、联系电话。

–旅行社的属性主要是旅行社名称、地址和电话号码。

–飞机航班信息的属性主要是航班号、飞行时间、飞行路线、票价、实时折扣信息。

–飞机票的属性主要是航班号、座位号、座位信息、机票类型。

5、分析习题2第4题所述的患者监护系统,试用实体-联系图描述本系统中的数据对象,画出本系统的顶层IPO图。

实体-联系图如下:

 

本系统的顶层IPO图如下:

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

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

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

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

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

 

第五章课后参考答案

3、设计下列系统的软件结构

(1)储蓄系统2-2

(2)机票预定系统2-3

(3)患者监护系统2-4

参考答案:

使用结构图表示

1、

1、储蓄系统

 

2、机票预定系统

 

3、患者监护系统

 

4、美国某大学有200名教师,校方与教师工会刚刚签订一项协议。

按照协议,所有年工资超过$26000(含$26000)的教师工资将保持不变,年工资少于$26000的教师将增加工资,所增加工资数额按下述方法计算:

给每位教师所赡养的人(包括教师本人)每年补助$100,此外,教师有一年工龄每年再多补助¥50,但是,增加后的年工资总额不能多于$26000。

教师工资档案存储在行政办公室的磁带上,档案中有目前的年工资、赡养的人数、雇佣日期等信息。

需要写一个程序计算并印出每名教师的原工资和调整后的新工资。

要求:

(1)画出此系统的数据流图;

(2)写出需求说明;

(3)设计上述的工资调整程序(要求用HIPO图描绘设计结果),设计时分别采用两种算法,并比较两种算法的优缺点:

(a)搜索工资档案数据,找出年工资少于$26000的人,计算新工资,校核是否超过$26000,存储新工资,印出新旧工资对照表;

(b)把工资档案数据按工资从最低到最高的次序排序,当工资数额超过$26000时即停止排序,计算新工资,校核是否超过限额,存储新工资,印出结果。

(4)你所画出的数据流图适应用那种算法?

(1)系统的数据流图

 

 

(2)需求说明;

经分析可知:

本系统必须包括如下7个功能:

导入原工资档案、输入调资标准、检索需调资工资数据、计算新工资、校核新工资、更新新工资数据、输出工资对照表

包含数据:

教师工资档案、工资标准

(3)

(a)

 

 

(b)

 

4)你所画出的数据流图适应用那种算法(a)

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

当前位置:首页 > 幼儿教育 > 唐诗宋词

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

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