软件工程导论作业答案

更新时间:2024-06-07 22:09:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第一章

1-1 什么是软件危机?

答:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 1-3 什么是软件工程? 有哪些本质特性?怎样用软件工程消除软件危机? 答:是指导计算机软件开发和维护的一门工程学科。 特性略。

技术措施和管理措施消除软件危机。

1-4 简述结构化范型和面向对象范型的要点,并分析它们的优缺点。 目前使用得最广泛的软件工程方法学(2种):

答:1.传统方法学:也称为生命周期方法学或结构化范型。

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

缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。 2.面向对象方法学:对象+类+消息+通信

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

1-5

答:(1)1985年对计算机存储容量的需求,估计是 M=4080e0.28 (1985-1960) =4474263字

价格P=0.048*0.721985-1974*4474263=5789(美元)

(2)可按每月20个工作日计算,每人每月可开发出200条指令,为了装满存储器,需要的工作量是 4474263/200=22371人月

22371*4000=89484000(美元)

(3)1995年对存储容量的需求,估计为

M=4080e0.28 (1995-1960) =73577679字

字长为32位,则这个存储器的价格为

P=0.003*32*0.721995-1974*73577679 =7127(美元) 在1995年一名程序员每天可开发出30条指令,每月开发600条指令,需要的工作量是73577679/600=122629 人月,成本为122629*6000=735776790美元

1-6 什么是软件过程?它与软件工程方法学有何关系? 答:

? 软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。它定义了运用技术方法的顺序、应该交付的文档资料、为保证软件质量和协调软件变化必须采取的管理措施,以及标志完成了相应开发活动的里程碑。 ? 软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型。软件过程是软件工程方法学的3个重要组

成部分之一。

1-7 什么是软件生命周期模型?软件生命周期划分成哪些阶段。简单描述重要的过程模型。 答:

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

1. 软件定义时期划分为三个阶段:问题定义、可行性研究和需求分析 2. 开发时期:总体设计、详细设计、编码和单元测试、综合测试。 3维护时期:主要任务是使软件持久地满足用户的需要

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

– 瀑布模型:优点:1.可强迫开发员采用规范的方法2.严格地规定

了每个阶段必须提交的文件3.要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。

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

– 快速原型模型:通过快速构建起一个可在计算机上运行的原型系

统,让用户试用原型并收集用户反馈意见的方法,获取用户真正的需要。 – 增量模型:优点:能在较短时间内向用户提交可完成部分工作的产

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

螺旋模型:优点:对可选方案和约束条件的强调有利于已有软件的重用;减少了过多测试;维护只是螺旋模型中另一个周期。

1-11 说明敏捷过程的适用范围。

答: 敏捷过程具体对变化和不确定性的更快速、更敏捷的反应特性,而且在快速的同时仍然能 保持可持续的开发速度,因此较适用于开发可用资源及开发时间都有较苛刻约束的小型项目。

第二章

2-1 在软件开发的早期阶段为什么要进行可行性研究?应该从那些方面研究目标系统的可行性? 答:

并非任何问题都有简单明显的解决办法,事实上,许多问题不可能在预定的系统规模或时间期限之内解决。如果没有可行的解,那么花费在这项工程上的任何时间、人力、软硬件资源和经费,都是无谓的浪费。可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能否解决。

? 可行性研究的任务:1.进一步分析和澄清问题;2.导出系统的逻辑模型;3.从逻辑模型出发,提出若干种系统实现方案4.研究每种实现方案的可行性:

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

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

? 操作可行性 ——系统的操作方式在这个用户组织内行得通吗? ? 社会、政策允许的可行性 2-4 答: 问题定义:

本题要开发一个病人监护系统,实现对病人症状的自动监护,形成病人日志记录,减少人力的浪费。

在监控过程中,随时接受病人的生理信息(脉搏、体温、血压、心电图),对病人的不正常生理信息(超出医生规定的安全范围的信息)发出警告,并向护士发出警告信息。护士还可以根据需要打印病人的病情报告。

采集器处理信号生理信号文件病情报告生成预警信号病人报告 2-5 北京某高校可用的电话号码由以下几类:校内电话号码由4位数字组成,第一位数字不是零;校外电话又分为本市电话和外地电话两类,拨校外电话先拨0,若是本地电话再接着拨8位数字(固话第一位不是0)或11位数字(移动电话第一位为1);若是外地电话,则拨3位区码再拨8位电话号码(固话第一位不是0),或拨0再拨11位数字(移动电话第一位为1)。请用数据定义的方法,定义上述电话号码。 答:

? 电话号码=[校内电话号码|校外电话号码]

? 校内电话号码=非零数字+ 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-1 为什么要进行需求分析?通常对软件系统有哪些需求?

答:为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求,不论软件工程师把设计和编码工作做得如何出色,不能真正满足用户需求的程序只会令用户失望。需求分析的任务不是确定系统怎样完成它的工作,而是确定系统必须完成哪些工作,对目标系统提出完整、清晰、准确、具体的要求。

一、综合需求

功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求、约束、逆向需求、将来可能提出的要求 二、数据要求 三、行为建模机制

3-2 怎样与用户沟通以获取真实需求? 答:

一 访谈:正式访谈、非正式访谈 、情景分析技术 二面向数据流自顶向下求精 三简易的应用规格说明技术 四 快速建立软件原型 3-3银行计算机储蓄系统 答:

一、系统的分层数据流图

存款单存单取款单银行系统利息清单存款利率业务员储户储户

存款单存款 1存单存款利率D1 储户存款文件利息清单取款 2取款单利率设置 3D2 存款利率文件

存款单存款单检查 1.1存款信息存入款户1.2输出存单存单1.3D2 存款利率文件D1.1 储户帐户文件D1.2 事务流水帐

利息清单取款单密码校验2.1取款信息取款处理2.2打印利息清单2.3D1.1帐户文件D2 存款利率文件D1.2事务文件

二、ER模型

? 本问题中共有两类实体,分别是“储户”和“储蓄所”,在它们之

间存在“存取款”关系。因为一位储户可以在多家储蓄所存取款,一家储蓄所拥有多位储户,所以“存取款”是多对多(M:N)关系。 ? 储户的属性主要有姓名、住址、电话号码和身份证号码,储蓄所的

属性主要是名称、地址和电话号码,而数额、类型、到期日期、利率和密码则是关系类型存取款的属性。

3-4 机票预订系统

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

旅客。

旅行社订 机 票航班信息飞机机票预订系统机 票旅行社旅 客账单、取票通知单账单、取票单

账单取票通知单订票单预订机票1账单、取票通知单设置航班3账单、取票单机 票旅客取票2机 票 文 件航班信息航班信息

旅客信息航班信息取票单据安排航班1.2打印账单和取票通知单1.3有 效 订 票 单录入预定信息1.1机票文件账单取票通知单

账单、取票通知单取票信息核对取票凭证3.1交款3.2账单取票通知交款信息打印机票3.3机票机票文件

旅行时间姓 名目的地身份证号码工作单位性 旅 客别预订机票票 额航 班班次号起飞时到间目 的 地达时间

3-5 答:

? 从问题陈述可知,本系统数据源点是“病人”和“护士”,他们分别提供生理信号和要求病情报告的信息。进一步分析问题陈述,从系统应该“定时记录病人情况以形成患者日志”这项要求可以想到,还应该有一个提供日期和时间信息的“时钟”作为数据源点。 ? 从问题陈述容易看出,本系统的数据终点是接收警告信息和病情报告的护士。

? 系统对病人生理信号的处理功能主要是“接收信号”、“分析信号”和“产生警告信息”。

? 此外,系统还应该具有“定时取样生理信号”、“更新日志”和“产生病情报告”的功能。

? 为了分析病人生理信号是否超出了医生规定的安全范围,应该存储“患者安全范围”信息。此外,定时记录病人生理信号所形成的“患者日志”,显然也是一个数据存储。

第一种方法

F5安全范围E2病人P2分析信号F2生理信号F2生理信号P1接收信号F2生理信号E3时钟P4定时取样生理信号D2患者安全范围P3产生警告信息危及病人信息F4警告信息E1护士F3日前、时间定时的生理信号F6日志P5更新日志D1患者日志F6日志P6产生病情报告E1护士F1要求报告第二种方法

姓名 住址 电话号码 住院号 姓名 科室 工作证号 病人 N 监护 M 护士 时间

脉搏 体温 血压 心电图

3-6 答:

排 除 卡 纸 故 障卡纸do/警告复 印闲 置do/复印缺纸do/警告装 满 纸

第五章

5-3答:

一 、储蓄系统

银行系统读类型输入事务中心存款取款读存款单存入帐户输出存单读取款单计算利息取款输出利息清单 二、机票预订系统

机 票 预 订 系 统机票预订旅客取票读订票单订票处理输出取票通知单读取票单记账取票输出机票 5-4 答: E1 行政办 公室

原工资档案工资调资系统调资后工资档案E1行政办公室调资后工资档案工资档案

E1 P1P5行政办原工资档案 导入原工输出工资调资后工资档案公室 资档案对照表

E1

行政办 调资后工资档案调资标准工资档案公室 P4P2 核对工资输入调资

标准 P3调资标准 调整工资调资标准

调资标准工资标准

工资调资系统 导入调资档打印工资对 调资 案照表 导入工输入调检索需调资计算新工校核新工更新新工资 资档案资标准工资数据资数据资

适合于第1种算法

第六章

6-3 答:

开 始FPTWhilegfnq循环下界结 束6-4答:

flag=TRUEP AND flaggFTflag=false6-5 答: (1)

FgPTqnf不用flagFPgT(NOT P)or (NOT q)

开 始I=(START+FIMST)/2TABLE(I)=ITEMFTABLE(I)ITEMTFIMSH=I-1FTFINIST-START>1TABLE(START)=ITEMTFLAG=1FTABLE(FIMSH)=ITEMT

(3)

flag = 0START<=FINISH AND flg=0I=(START+FINISH)/2FFITEM = TABLE(I)Tflag=1

6-7 答:

总金额T每股的股价uu < 14n是100倍数n不是100倍数n是100倍数n不是100倍数n是100倍数n不是100倍数n是100倍数n不是100倍数代表股数n(1+0.05)×0.084T(1+0.09)×0.084T(1+0.02)×0.084T(1+0.06)×0.084T(1+0.01)×0.084T(1+0.04)×0.084T(1+0.05)×(0.05T+34)(1+0.09)×(0.05T+34)(1+0.02)×(0.05T+34)(1+0.06)×(0.05T+34)(1+0.01)×(0.05T+34)(1+0.04)×(0.05T+34)(1+0.05)×(0.04T+134)(1+0.09)×(0.04T+134)(1+0.02)×(0.04T+134)(1+0.06)×(0.04T+134)(1+0.01)×(0.04T+134)(1+0.04)×(0.04T+134)T < 100014<=u<=25手续费计算T > 10000T[1000,10000]u > 25u < 1414<=u<=25n是100倍数n不是100倍数n是100倍数n不是100倍数n是100倍数n不是100倍数n是100倍数n不是100倍数n是100倍数u > 25u < 1414<=u<=25u > 25n不是100倍数

6-8 答:

开 始FZ > 0TA=B+1A > 10FTX = AY = ZY < 5FTPrint X、YY = 2TFC = 3G=H+RF > 0FTKG结 束 17 -13 + 2 = 6

12345678910111213第七章

7-4 答:

-2(2): 0.5×10,25--100 (3): a: A=6 B=11 C=16 A=5 B=10 C=11 b: A=6 B=11 C=16 TTT b: A=5 B=11 C=16 FTT b: A=6 B=11 C=15 TTF.........7-5答: (1)

用例 值 预期结果 1: b(给定一字符串)2: S(15)3: d(1)2: f(作者)(2)

系统将创建一个索引文件,行指定关键字显示与索引有关信息显示该作者的著作索引号

1: b(字串) b(字串)不显示且提示输出错误无显示相同的字不在中央错 误输入错误必须是整数的提示操作顺序错误不提示且提示要求输出提示查无此人

S(串)2: d(顺序前)3: f(?串)4: f(为不存在5:作者)7-8答:

(1) 假设在程序的平均无故障时间和测试时间t之间存在线性关系 MTTF=at + b

根据题意可知,当t=1时,MTTF=10,当t=2时,MTTF=15,代入方程,可得

MTTF=5+5t

302010时间

(2)

a.为使MTTF=100,t=19,即需要19个月的集成测试。 b.

﹛151010000K(E-15)T10000K(E-25)T﹛ETK4534

MTTF=100h时,EC(t)=42,还有3个错误潜伏在程序中。 7-10

本题中采用了分别测试法,因此可以估算出刚开始测试时程序中错误总数为: ET= 24/6*20=80 因为:

10 =24000/K(ET-20) k=40

所以为使MTTF达到60h,必须改正 60=24000/ 40*(80-EC) 得EC=70 还需改正50

第八章

8-2答:

通常“对一个已有的软件做重大修改”意味着对软件功能做较大变更或增加较多新功能,这往往需要修改软件的体系结构。因此,了解原有软件的总体情况是很重要的。程序的规格说明书准确地描述了对软件系统的数据要求、功能需求、性能需求、可靠性和可用性需求,出错处理需求、接口需求、约束、逆向需求及将来可能提出的需求,对了解已有软件的总体情况有很大帮助。在对已有软件做重大修改之前仔细阅读、认真研究这份文档,可以避免许多修改错误。因此,应该选取这份文档。

有经验的软件工程师通过阅读含有适当数量注解的源程序,不难搞清程序的实现算法,没有描述详细设计结果的文档并不会给维护工作带来太大困难。此外,为了修改程序代码,原有程序的清单是必不可少的。因此,为了对这个软件做重大修改,应该选取的第二份文档是源程序清单。

8-3答略

第九章

9-2答:

对象是用面向对象方法学开发软件时对客观世界实体的抽象,它是由描述实体属性的数据及可以对这些数据施加的所有操作封装在一起构成的统一体。传统的数据是用传统方法学开发软件时对客观世界实体的抽象。但是,这种抽象是不全面的:数据智能描述实体的静态属性,不能描述实体的动态行为。必须从外界对数据施加操作,能能改变数据实现实体应有的行为。

对象与传统数据有本质区别,他不是被动地等待外界对它施加操作,相反,它是进行处理的主体。必须发消息请求对象主动地执行它的某些操作,处理他的私有数据。而不能直接从外界对他的私有数据进行草组。

9-5答:

所谓模型,就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。通常,模型由一组图示符号和组织这些符号的规则组成,利用它们来定义和描述问题域中的术语和该念。更进一步讲,模型是一种思维工具,利用这种工具可以把知识规范地表示出来。在开发软件的过程中,为了更好地理解客户要求解决的问题,往往需要建立问题域的模型。

为了开发复杂的系统,系统分析员应该从不同角度抽象出目标系统的特性,使用精确地表示方法构造系统的模型,验证模型是否满足客户对目标系统的需求,并在设计过程中主见吧和实现有关的细节加紧模型中,直至最终用程序实现这个模型。对于那些因过分复杂而不能直接理解的系统,特别需要建立模型,建模的目标主要是为了降低复杂性。人的头脑每次只能处理少量信息,模型通过把系统的重要部分分解为人的头脑一次能处理的若干个字部分,从而减少了系统的复杂程度。 9-9答:

管理员1n输入事 务n更 新1库存信息1生成出库事务入库事务0...*订货信息拥有采购员

9-10答:

管理员处理事务修改库存处理定货采购员产生报表

第十章

10-4 答:

售货机11存放硬币11使 用货物分配器n分 配货物(不同价格)存放n各 种 面 值的硬币硬币

投硬币要求输入要do检验真假 求真do要求选货选货do检查是否有货假退 币do / 退币有do检验真假大 于小于提示输入传送货物找零退币无要求输退币提示入决定不买退 币 用 户硬 币购物信息自动售货系统零 钱货 物用 户用 户退币假币信息硬币信息接受硬币硬币信息辨 真 伪真(面值信息)根据面值计算总额信 息面值总额购 物检查是否有货有货物信息检查是否够货无货信息购 物 信 息and输 出货 物退 货顾 客

第十三章

13-3 答:

(1)习题中仅对需求做了粗略描述,每项需求都应该进一步扩展,以提供细节需求和定量约束。例如,在开始估算软件规模之前,需要确定“良好的人机界面设计特征”的具体含义,以及对“CAD数据库”的规模和复杂度的具体需求。

经过对需求的进一步精化,分解出软件的下述7个主要的子功能。 用户界面及控制机制 二维几何图形分析 三维几何图形分析 数据库管理

计算机图形显示机制 外部设备控制 设计分析模块

(2)为了用代码行技术估算软件规模,应该针对每个子功能都分别估计出下述3个值:乐观值(即最小规模)、悲观值(即最大规模)和可能值(即最可能规模)。然后用加权平均法计算每个子功能的规模。结果如下: 功能 乐观值 可能值 悲观值 估计值 用户界面及控制机制 1500 2200 3500 2300 二维几何图形分析 3800 5400 6400 .5300 三维几何图形分析 4600 6900 8600 6800 数据库管理 1850 3200 5450 3350 计算机图形显示机制 3100 4900 7000 4950 外部设备控制 1400 2150 2600 2100 设计分析模块 6200 8500 10200 8400 估算出的总代码行数 33200 (3) 使用功能点技术估算软件规模时,对软件的分解时基于信息域特性而不是基于软件功能,下表给出了5个信息域特性的估计值,为了计算未调整的功能点数,假设每个信息域特性的复杂度都是平均级别的。

未调整的功能点数 信息域值 乐观值 可能值 悲观值 估计值 特性UFP系数 数 输入数 20 24 30 24 4 96 输出数 12 15 22 16 5 80 查询数 16 22 28 22 4 88 文件数 4 4 5 4 10 40 外部接口数 2 2 3 2 7 14 总计数值 318 接下来估计14个技术复杂性因素的值,并且计算DI的值。得到如下结果 因素 估计值 因素 估计值 数据通信 2 复杂的计5 算 分布式数据处理 0 可重用性 4 性能标准 4 安装方便 3 高负荷硬件 2 操作方便 4 高处理率 4 可移植性 5 联机数据输入 4 可维护性 5 终端用户效率 4 DI 49 联机更新 3 计算技术复杂性因子TCF=0.65+0.01*DI=1.14 最后计算功能点数:FP=UFP*TCF=318*1.14=363 (4)用代码行技术估算,开发本系统的工作量为 E=33200/620=54人月

开发成本为54*8000=432000元

(5—)用功能点技术估算,开发本系统的工作量为 E=363/6.5=56人月

开发成本为56*8000=448000元 13-4 答:

由于待开发的应用系统类似于以前做过的系统,开发人员已经积累了丰富的经验,没有多少技术难题需要攻克。为了减少通信开销,充分发挥技术骨干的作用,统一意志统一行动,提高生产率,加快开发速度,项目组的组织结构以基于主程序员的组织形式为好。

针对待开发的系统,客户已经写出了完整的需求文档,项目组又有开发类似系统的经验,因此,可以采用广大软件工程师熟悉的瀑布模型来开发系统。 13-10 答:

IEEE把基线定义为: 已经通过了正式复审的规格说明或中间产品,它可以作为进一步开发的基础,并且只有通过正式的变化控制过程才能改变它。基线就是通过了正式复审的软件配置项。

? 在软件配置项变成基线之前,可以迅速而非正式地修改它。

? 一旦建立了基线之后,虽然仍然可以实现变化,但是,必须应用特定的、正式的过程来评估、实现和验证每个变化。

算 分布式数据处理 0 可重用性 4 性能标准 4 安装方便 3 高负荷硬件 2 操作方便 4 高处理率 4 可移植性 5 联机数据输入 4 可维护性 5 终端用户效率 4 DI 49 联机更新 3 计算技术复杂性因子TCF=0.65+0.01*DI=1.14 最后计算功能点数:FP=UFP*TCF=318*1.14=363 (4)用代码行技术估算,开发本系统的工作量为 E=33200/620=54人月

开发成本为54*8000=432000元

(5—)用功能点技术估算,开发本系统的工作量为 E=363/6.5=56人月

开发成本为56*8000=448000元 13-4 答:

由于待开发的应用系统类似于以前做过的系统,开发人员已经积累了丰富的经验,没有多少技术难题需要攻克。为了减少通信开销,充分发挥技术骨干的作用,统一意志统一行动,提高生产率,加快开发速度,项目组的组织结构以基于主程序员的组织形式为好。

针对待开发的系统,客户已经写出了完整的需求文档,项目组又有开发类似系统的经验,因此,可以采用广大软件工程师熟悉的瀑布模型来开发系统。 13-10 答:

IEEE把基线定义为: 已经通过了正式复审的规格说明或中间产品,它可以作为进一步开发的基础,并且只有通过正式的变化控制过程才能改变它。基线就是通过了正式复审的软件配置项。

? 在软件配置项变成基线之前,可以迅速而非正式地修改它。

? 一旦建立了基线之后,虽然仍然可以实现变化,但是,必须应用特定的、正式的过程来评估、实现和验证每个变化。

本文来源:https://www.bwwdw.com/article/g9t6.html

Top