《软件工程导论》课后习题详细答案_第1页
《软件工程导论》课后习题详细答案_第2页
《软件工程导论》课后习题详细答案_第3页
《软件工程导论》课后习题详细答案_第4页
《软件工程导论》课后习题详细答案_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《软件工程导论》课后习题答案

第一章软件工程概论

1.什么是软件危机?

软件危机是指在计算机软件的开发和维护过程中所遇到的一系

列严重问题。这些问题表现在以下几个方面:(1)用户对开发出的软

件很难满意。⑵软件产品的质量往往靠不住。⑶一般软件很难维护。

(4)软件生产效率很低。(5)软件开发成本越来越大。(6)软件成本与

开发进度难以估计。(7)软件技术的发展远远满足不了计算机应用

的普及与深入的需要。

2.为什么会产生软件危机?

(1)开发人员方面,对软件产品缺乏正确认识,没有真正理解软

件产品是一个完整的配置组成。造成开发中制定计划盲目、编程草率,

不考虑维护工作的必要性。(2)软件本身方面,对于计算机系统来

说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规

范指导,造成软件维护困难。(3)尤其是随着软件规模越来越大,复

杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本

过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的

发展已经远远不能适应社会需求。

3.怎样克服软件危机?

(1)充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之

有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事

计算机硬件研究和开发的经验教训I。在开发软件的过程中努力作到良

好的组织,严格的管理,相互友好的协作。(2)推广在实践中总结出

来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方

法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作

法。(3)根据不同的应用领域,开发更好的软件工具并使用这些工具。

将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好

的软件开发支环环境。总之为了解决软件危机,既要有技术措施(方

法和工具),又要有必要的组织管理措施。

4.构成软件项目的最终产品:应用程序、系统程序、面向用户的文档

资料和面向开发者的文档资料p

5.什么是软件生存周期?软件生存周期是指从软件定义、开发、使

用、维护到淘汰的全过程。

5%=(儿第四瞪^墉箫必魏嫡量的瀛薪者计是

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

P=0.048xO.72,985-W4x4474263=5,789(美元)

(2)如果一条指令的长度为一个字,则使存储器装满程序共需

4474263条指令。

在1985年一名程序员每天可开发出1。条指令,如果每月有20个工

作日,则每人每月可开发出10x20条指令。

为了开发出4474263条指令以装满存储器,需要的工作量是:

4474263

=22,371(人月)

200

程序员的月平均工资是4000美元,开发出4474263条指令的成本

22371x4000=89,484,()()0(美元)

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

M=4080e628(1995-1960)=73,577,679(字)

如果字长为32位,则这个存储器的价格是:

P=0.003x32x0.72*""x73577679=7]27(美元)

如果一条指令为一个字长,则为使存储器装满程序共需

73,577,679条指令。

在1995年一名程序员每天可开发出30条指令,每月可开发出600

条指令,为了开发出可装满整个存储器的程序,需要的工作量为

73577679

*122,629(人月)

~600~开发上述程序的成本为

122629x6000«735,776,790(美元)

6.软件生存周期为什么划分成阶段?

(1)任何一个阶段的具体任务不仅独立,而且简单,便于不同人

员分工协作,从而降低整个软件开发工作的困难程度。(2)可以降低

每个阶段任务的复杂程度,简化不同阶段的联系,有利于工程的组织

管理,也便于采用良好的技术方法。(3)使软件开发的全过程以一种

有条不紊的方式进行,保证软件的质量,特别是提高了软件的可维护

性。

6-1..开发上述程序的成本为:

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

软件过程是为了开发出高质量的软件产品所需完成的一系列

任务的框架,它规定了完成各项任务的工作步骤。

软件过程定义了运用技术方法的顺序、应该交付的文档资料、

为保证软件质量和协调软件变化必须采取的管理措施,以及

标志完成了相应开发活动的里程碑。

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

7.应该怎样来划分阶段?(1)每一个阶段的任务尽可能独立;(2)同

一阶段内的任务性质尽可能相同;(3)每一个阶段任务的开始和结束

有严格的标准。

8.软件开发模型有几种?它们的开发方法有可特点?

软件开发模型有瀑布型、渐增型和变换型。

瀑布型开发方法是按照软件生存周期的划分依次实施,每一个阶

段有明确规定的任务。它的特点:

(1)各个阶段的顺序性和依赖性;(2)划分逻辑设计与物理设计,

尽可能推迟程序的物理实现;(3)每个阶段必须完成规定的文档,对

其中问题通过复审及早发现,及早解决。

渐增型开发方法及特点:(1)从部分需求出发,先建立一个不完全

的系统,通过测试运行该系统取得经验和信息反馈,加深对软件需求

的理解,进一步使系统扩充和完善。如此反复,直至软件人员和用户

对所设计完成的软件系统满意为止。(2)在渐增型开发下的软件是随

软件开发的过程而逐渐形成的。(3)渐增型开发方法适合于知识型软

件的开发,设计系统时对用户需求的认识开始不是很清楚的,需要在

开发过程中不断认识、不断获得新的知识去丰富和完善系统。多数研

究性质的试验软件,一般采用此方法。

变换型开发方法及特点:

(1)从软件需求的形式化规格说明出发,经过一系列的程序变

换,得到最终的程序系统。(2)该方法必须有严格的数学理论和形式

化技术的支持。

9.什么是软件工程?

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

(1)它采用工程的概念、原理、技术和方法来开发和维护软件;

(2)它将管理技术与当前经过时间考验的而证明是正确的技术方法

结合起来;(3)它强调使用生存周期方法学和结构分析和结构技术;

(4)经过人们长期的努力和探索,围绕着实现软件优质高产这个目标,

从技术到管理两个方面做了大量的努力,逐渐形成了〃软件工程学〃这

一新的学科。

10.什么是软件工程环境:

方法与工具的结合,加上配套的软、硬件支持称为软件工程环境。

它能支持开发者按照软件工程的方法,全面完成生存周期中的各项任

务。

第二章可行性研究习题答案

1.问题定义的任务和主要工作?

问题定义的任务:将用户提出的要求具体化、定量化;确定

研制系统的范围,明确研制的边界。

问题定义阶段的工作:(1)通过调查研究,了解系统需求;

(2)确定系统的功能需求、性能需求、可靠性需求、安全及

保密性、资源、开发费用及开发进度等的需求;(3)问题定义阶段

的产品一系统目标与范围说明书。

2.可行性研究目的?

确定在问题定义中所提出的问题是否值得去解,在限制条件

下,问题能否解决。

3.可行性研究的任务?

(1)进一步分析和澄清问题的定义,在澄清问题的基础上,

导出系统的逻辑模型;2)从系统逻辑模型中,选择问题的若干种主

要解法,研究每一种解法的可行性,为以后的行动提出建议;(3)如

果问题没有可行的解,建议停止系统开发;如果问题有可行的解,应

该推荐一个较好的解决方案,并为工程制定一个初步的计划。

4.可行性研究包括哪几方面的内容?

(1)技术可行性:现有技术能否实现本系统,现有技术人员能

否胜任,开发系统的资源能否满足⑵经济可行性:经济效益是否超

出开发成本;(3)操作可行性:系统操作在用户内部行得通吗?(4)

法律可行性:新系统开发是否会侵犯他人、集体或国家利益,是否违

反国家法律。

2-4目前住院病人主要由护士护理,这样做不仅需要大量护士,而且

由于不能随时观察危重病人的病情变化,还会延误抢救时机。某医院

打算开发一个以计算机为中心的患者监护系统,请分层次地画出描述

本系统功能的数据流图。

医院对患者<#>监护系统的基本要求是随时接收每个病人的生理信

号(脉搏、体温、血压、心电图等),定时记录病人情况以形成患者日

志,当某个病人的生理信号超出医生规定的安全范围时向值班护士发

出警告信息,此外,护士在需要时还可以要求系统印出某个指定病人

的病情报告。

从问题陈述可知,本系统数据源点是“病人”和“护士”,他们分

别提供生理信号和要求病情报告的信息。进一步分析问题陈述,

从系统应该“定时记录病人情况以形成患者日志”这项要求可以

想到,还应该有一个提供日期和时间信息的“时钟”作为数据源

…F4警告信息、病情报告

从问题陈述容易看见,本系统的数据终点嬲谶够信息和病情

报告的护士。

系统对病人生理信号的处理功能主要是“接收信号”、“分析信号

”和“产生警告信息”。p

E2F2生理信号由名放■护,盔结F6日京

此外,系统还应橘具有“定时取样生理信号”、患童翻斜和“

F5安全范围D2,专

产生病情报告”的功能。

为了分析病人生理信号是否超出了医生规定的安全范围,应该存储

“患者安全范围”信息。此外,定时记录病人生理信号所形成的“患

者日志”,显然也是一个数据存储。

F5安全范围D2患者安全范

P2

危及病人信息

分析信号

F2生理信号F41

PI

接收信号EI

护d

F2生理信号

P4

定时取样

定时的生理信号

生理信号

F6日志

DI患者日志

F6日志P6

EIF1要求报j产生病情其

护士

(1)复查系统的规模和目盘辟2》研究退栅存期的南统,

总结现有系统的优劣,提出新系统的雏形;(3)导出新四M矗逻

辑模型;(4)推荐建议方案;(5)推荐行动方针;(6)书写计划任务F6日志

书(可行性报告);(7)提交审查。P4

息®F3日前、时间定时取样

5-1.2-5北京某高檄椭的电话号码有以下几类:,梅第蜥号码由4

位数字组成,第1位数字不是0;校外电话又分为本市电话和外地电话

F6日志D1患者

两类,拨校外电话需先梭0,若是本市电话则再接着拨8位数字(第1

护士

位不是0),若是外地电话则拨啦区料再拨8位电话昼码(第1位不是0)

o请用定义数据字典的方法,定义上述的.曾娜报告

数据结构的描述

符号含义举例

=被定义为

+与x=a+b

[......]或[…I…]或x=[a,b],x=[a|b]

{...}或m{...}n重复x={a},x=3{a}8

(...)可选x=(a)

”基本数据元素x=“a”

..连结符x=1..9

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

校内电话号码=非零数字+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]

6.可行性研究报告的主要内容?

可行性分析的结果是可行性研究报告,内容包括:(1)系统概

述:说明开发的系统名称,提出单位和开发单位。(2)可行性研究

的前提:系统目标;要求;约束和限制;可行性研究的基本准则等。

(3)对现有系统的分析:处理流程,图示说明现有系统的处理流程和

数据流程;现有系统存在的问题。(4)系统需求:主要功能;主要性

能及其要求;操作要求;信息要求;限制性要求。(5)建议系统:系

统目标;处理流程;系统结构,功能,性能;系统技术可行性;投资和

效益分析;操作可行性;法律可行性。(6)其它可选方案:与国内外

同类型方案的比较;提出一两个可行性方案供论证和探讨。(7)制定

下一阶段的预算。(8)结论性意见:由用户方、设计方和投资方共同

签署意见。

第三章需求分析习题答案

1.需求分析的描述工具有哪些?

有数据流图、数据字典、判定表、判定树、结构化自然语言、层次方

框图、Warnier图、IPO图和需求描述语言等。

2.需求分析的基本任务是什么?

准确定义未来系统的目标,确定为了满足用户的需要系统必须做

什么。

3.怎样建立目标系统的逻辑模型?要经过哪些步骤?

建立目标系统的逻辑模型的过程也就是数据流图的分解过程。它

的导出过程如图:

3-3.3-3银行计算机储蓄系统的工作过程大致如下:储户填写的存款

单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、

住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、

利率及密码(可选)等信息,并印出存单给储户;如果是取款而且存款

时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密

码,则系统计算利息并印出利息清单给储户。

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

数据对象。

*

E1

F1存款单P0储蓄系统F3存单

M〜“单F4利息清单

F5存款信息F5存款信息

D1存款信息

ER模型

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

P1

E1Fl存款卜fL

储户F7密码记录存款信息

匚。左班住自F5存款信差

们之间存在“存取款”关系。因为一位储户可以在多家储蓄

所存取款,一家储蓄所拥有多位储户,所以“存取款”是多

对多(M:N)关系。

储户的属性主要有姓名、住址、电话号码和身份证号码,储蓄所的属

性主要是名称、地址和电话号码,而数额、类型、到期日期、利率和

密码则是关系类型存取款的属性。

4.什么是结构化分析?它的结构化体现在哪里?

结构化分析:使用数据流程图、数据字典、结构化英语、判定表

和判定树等工具,来建立一种新的、称为结构化说明书的目标文档-

需求规格说明书。

结构化体现在将软件系统抽象为一系列的逻辑加工单元,各单元

之间以数据流发生关联。

5.软件需求规格说明书由哪些部分组成?

组成包括:1)引言:编写目的、背景说明、术语定义及参考资

料等。(2)概述主要功能、约束条件或特殊需求。(3)数据流图与数

据字典。(4)用户接口、硬件接口及软件接口。(5)性能需求、属性

等。(6)其它需求,如数据库、操作及故障处理等。

6.为什么数据流图要分层?画分层的DFD要遵循哪些原则?

分层的目的:便于逐步细化、结构清晰。

画分层的DFD要遵循哪些原则:(1)父图与子图之间数据要平衡。

⑵分解的深度和层次达到使加工足够简单、易于理解的基本加工为

止。(3)区分局部文件和局部外部项(局限于数据流中某一层或某儿层

的文件和外部项)。⑷不要把控制流作为数据流。5)忽略琐碎的枝节。

(6)每个数据流要有一个合适的名字,尽量使用现实系统中有具体意

义的名字。

3-6复印机的工作过程大致如下:未接到复印命令时处于闲置状

态,一旦接到复印命令则进入复印状态,完成一个复印命令规定

的工作后又回到闲置状态,等待下一个复印命令;如果执行复印

命令时发现没纸,则进入缺纸状态,发出警告,等待装纸,装满

纸后进入闲置状态,准备接收复印命令;如果复印时发生卡纸故

障,则进入卡纸状态,发出警告等待维修人员来排除故障,故障

排除后回到闲置状态。

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

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

和“卡纸”。引起状态转换的事件主要是“复印命令”、“完成复印命

令”、“发现缺纸”、“装满纸”、“发生卡纸故障”和“排除了卡纸故障”。

7.系统流程图与数据流程图有什么区别?

系统流程图描述系统物理模型的工具,数据流程图描述系统逻辑

模型的工具。

系统流程图从系统功能的角度抽象的描述系统的各个部分及其

相互之间信息流动的情况。

数据流程图从数据传送和加工的角度抽象的描述信息在系统中

的流动和数据处理的工作状况。

8.数据字典包括哪些内容?它的作用是什么?

数据字典是描述数据流图中数据的信息的集合。它对数据流图上

每一个成分:数据项、文件(数据结构)、数据流、数据存储、加工和

外部项等给以定义和说明;它主要由数据流描述、加工描述和文件描

述三部分组成。对用户来讲,数据字典为他们提供了数据的明确定义;

对系统分析员来讲,数据字典帮助他们比较容易修改已建立的系统逻

辑模型。

9.描述加工逻辑的工具有哪些?

有决策树(又称判定树)、决策表(又称判断表)和结构化语言等。

10.某单位拟开发一个计算机房产管理系统,要求系统具有分房、调

房、退房和查询统计等功能。房产科将用户申请表输入系统后,系

统首先检查申请表的合法性,对不合法的申请表,系统拒绝接收;对

合法的申请表根据类型分别进行处理。(1)如果是分房申请,则根

据申请者的情况(年龄、工龄、职称、职务、家庭人口等)计算其分数,

当分数高于阀值分数时,按分数高低将申请单插到分房队列的适当位

置。在进行分房时.,从空房文件中读出空房信息,如房号、面积、等

级、单位面积房租等,把好房优先分给排在分房队列前面的符合该等

级房条件的申请者;从空房文件中删掉这个房号的信息,并从分房队

列中删掉该申请单,再把此房号的信息和住户信息一起写到住房文件

中,输出住房分配单给住户,同时计算房租,并将算出的房租写到房

租文件中。(2)如果是退房申请,则从住房文件和房租文件中删除

有关信息,再把此房号的信息写到空房文件中。(3)如果是调房申请,

则根据申请者的情况确定其住房等级,然后在空房文件中查找属于该

等级的空房,退掉原住房,再进行与分房类似的处理。(4)住户可

以向系统查询目前分房的阀值分数,居住某类房屋的条件,某房号的

单位面积及房租等信息。房产科可以要求系统打印住房情况的统计

表,或更改某类房屋的居住条件、单位面积和房租等。

用数据流图描绘该系统的功能需求;在数据字典中给出主要的数据

流、文件和加工说明。

第四章总体设计习题答案

1.系统设计包括哪两个阶段?

系统设计包括总体设计与详细设计两个阶段。

2.总体设计的主要任务是什么?

总体设计的主要任务是完成软件结构的设计,确定系统的模

块及其模块之间的关系。

3.什么是模块?模块具有哪几个特征?总体设计主要考虑什么特

征?

模块是数据说明、可执行语句等程序对象的集合,可以单独

命名且可通过名字来访问。

模块具有输入和输出(参数传递)、功能、内部数据结构(局部

变量)和程序代码四个特性。

概要设计主要考虑输入、输出(参数传递)和功能两个特性。

4-31个浮点二进制数的构成是:一个可选的符号(+或-),后跟一个

或多个二进制位,再跟上一个字符E,再加上另一个可选符号(+或-)

及一个或多个二进制位。例如,下列的字符串都是浮点二进制数:

110101E-101

-100111E11101

+1E0

更形式化地,浮点二进制数定义如下:

(floatingpointbinary>::=[〈sign〉]〈bitstring〉E[〈sign

>]<bitstring>

(sign)::=+I-

(bitstring>::=<bit>[(bitstring>]

<bit>::=0I1

其中,

符号::=表示定义为;

符号]表示可选项;

符号aIb表示a或b。

假设有这样一个有穷状态机:以一串字符为输入,判断字符串中

是否含有合法的浮点二进制数。试对这个有穷状态机进行规格说明

该有穷状态机的初态是“等待字符串输人”。在初态若接收到字符十

、或字符一、或二进制位,则进人“输人尾数”状态;在初态若接收

到其他字符,则进人终态“非浮点二进制数”。在“输人尾数”状态

若接收到二进制位,则保持该状态不变;若接收到字符E,则进人

“等待输人指数”状态;若接收到其他字符,则进人终态“非浮点二

进制数”。在“等待输人指数”状态若接收到字符+、或字符一、或

二进制位,则进人“输人指数”状态;若接收到其他字符,则进人终

态“非浮点二进制数”。在“输人指数”状态若接收到二进制位,则

保持该状态不变;若输人其他字符,则进人终态“非浮点二进制数”

;若输人结束,则进人终态“浮点二进制数”。

仔细研究图示的有穷状态机可以发现,它还有不够严格的地方。有兴

趣的同学请进一步改进它,画出更严格的、与浮点二进制数定义完全

一致的有穷状态机

终恋终态

4.什么是模块化?模块设计的准则?

模块化是按规定的原则将一个大型软件划分为一个个较小

的、相对独立但又相关的模块。

模块设计的准则:(1)改进软件结构,提高模块独立性:在对

初步模块进行合并、分解和移动的分析、精化过程中力求提高模块的

内聚,降低藕合。(2)模块大小要适中:大约50行语句的代码,过大

的模块应分解以提高理解性和可维护性;过小的模块,合并到上级模

块中。(3)软件结构图的深度、宽度、扇入和扇出要适当。一般模块

的调用个数不要超过5个。(4)尽量降低模块接口的复杂程度;(5)

设计单入口、单出口的模块。(6)模块的作用域应在控制域之内。

5.变换型数据流由哪几部分组成?

变换型结构由三部分组成:传入路径、变换(加工)中心和传出

路径。

6.变换分析设计的步骤?(1)区分传入、传出和变换中心三部分,

划分DFD图的分界线;(2)完成第一级分解:建立初始SC图的框架;

(3)完成第二级分解:分解SC图的各个分支;(4)对初始结构图按照

设计准则进行精化与改进。

7.事务型数据流由哪几部分组成?

事务型结构由至少一条接受路径、一个事务中心与若干条动

作路径组成。

8.事务分析设计的步骤?(1)在DFD图中确定事务中心、接收部分

(包含全部接收路径)和发送部分(包含全部动作路径);(2)画出SC

图框架,把DFD图的三部分分?quot;映射“为事务控制模块,接收模块

和动作发送模块.一般得到SC图的顶层和第一层(如果第一层简单可

以并入顶层);(3)分解和细化接收分支和动作分支,完成初始的SC

图;(4)对初始结构图按照设计准则进行精化与改进。

9.比较层次方框图与结构图是的异同?

(1)层次方框图描绘数据的层次结构,结构图描绘的是软件结构。(2)

二者都采用多层次矩形框树形结构。层次方框图的顶层矩形框代表完

整的数据结构,下面各层矩形框依次代表上个框数据的子集;结构图

是在层次图的每一个方框内注明模块的名字或主要功能,方框之间的

直线表示模块的调用关系,用带注解的箭头表示模块调用过程中传递

的信息。

10.欲开发一个银行的活期存取款业务的处理系统:储户将填好的存/

取款单和存折交给银行工作人员,然后由系统作以下处理;

(1)业务分类处理:系统首先根据储户所填的存/取款单,确

定本次业务的性质,并将存/取款单和存折交下一步处理;

(2)存款处理:系统将存款单上的存款金额分别记录在存折和

帐目文件中,并将现金存入现金库;最后将存折还给储户;

(3)取款处理:系统将取款单上的取款金额分别记录在存折和

帐目文件中,并从现金库提取现金;最后将现金和存折还给储户。

绘制该系统的数据流图和软件结构图。

顶层

一层

存折、存款单

存折、存款单

糖户

二层

修改存折

合格存折

存款单

注।A一文仲铢目及存折;B一现金保

软件结构图

存取款业务系统

获得合理单据

单回

1存取单、存折2合格单据

3不合格单露4合格存折、存款单

第五章习题参考答案

一.回答问题

1.详细设计的目的?

为软件结构图(SC图或HC图)中的每一个模块确定采用的算法和

块内数据结构,用某种选定的表达工具给出清晰的描述.

2.详细设计的主要任务?

编写软件的“详细设计说明书”.软件人员要完成的工作:

(1)为每一个模块确定采用的算法,选择某种适当的工具表达

算法的过程,写出模块的详细过程描述(2)确定每一模块使用的数

据结构.(3)确定模块结构的细节,包括对系统外部的接口和用户界

面,对系统内部其它模块的接口,以及关于模块输入数据、输出数据及

局部数据的全部细节.(4)为每一个模块设计出一组测试用例,以便

在编码阶段对模块代码(即程序)进行预定的测试.

3.结构化程序设计的基本原则?

在详细设计中所有模块都使用单入口、单出口的顺序、选择、循

环三种基本控制结构.

4.比较面向数据流和面向数据结构两类设计方法的异同?

相同点:(1)遵守结构程序设计“由顶向下”逐步细化的原则,

并以其为共同的基础;(2)均服从“程序结构必须适应问题结构”

的基本原则,各自拥有从问题结构(包括数据结构)导出程序结构的一

组映射规则。

不同点:(1)面向数据流的设计以数据流图为基础,在分析阶段

用DFD表示软件的逻辑模型,在设计阶段按数据流类型,将数据流图

转换为软件结构。面向数据结构的设计以数据结构为基础,从问题的

数据结构出发导出它的程序结构。(2)面向数据流的设计的最终目

标是软件的最终SC图,面向数据结构的设计的最终目标是程序的过

程性描述。

5.比较Jackson方法和LCP方法的异同?

Jackson与LCP设计方法都是以数据结构为出发点,以程序的过

程描述为最终目标,设计步骤基本相似。它们的主要差别是:(1)使

用不同的表达工具,其中LCP方法中的表达工具Warnier图

比Jackson设计方法中的表达工具Jackson图有更大的通

用性;(2)Jackson方法的步骤和指导原则有一定的灵活性,而LCP

设计

方法则更加严密。

6.详细设计的描述工具应具备什么功能?

无论哪类描述工具不仅要具有描述设计过程,如控制流程、处理

功能、数据组织及其它方面的细节的能力,而且在编码阶段能够直接

将它翻译为用程序设计语言书写的源程序。

二.给出一组数从小到大的排序算法,分别用下列工具描述其详细过

程:

⑴⑴流程图;(2)N—S图;(3)PAD图;(4)PDL语言。

PDL语

言略

N-S图PAD图

三.根据后面给出“卡片的分类及统计”项目说明,完成下列工作:

(1)用Jackson图表示输入与输出数据结构,找出它们之间的对应单

元;(2)画出用Jackson图表示的程序结构;(3)列出程序所需用的操

作,并加到上一步画出的程序结构图上;(4)用Jackson伪代码写出

程序的过程表示。

输入卡片分析程序。一叠输入卡片按内容分为KI、K2、K3三类,卡片

的排列规则是:以K1卡始,以K2卡终。起始卡之前属前置部分,不含

K1卡;起始卡与终了卡之间属分批部分,不含K2卡一。如图:

试用Jackson方法编一程序,要求依次完成下列分析工作:

----统计起始卡前卡片的张数,存入A;

----打印起始卡的内容;

-统计起始卡后出现的K1卡和K3卡总批数,存入B;

——统计起始卡后出现的K1卡的张数,存入C;

一统计起始卡后出现的K3卡的批数,存入D;

——打印终了卡的内容;

----打印A、B、C、D四个统计值。

输入卡片文件的数据结构图

输出卡片文件的数据结构

上述两个结构图有三组时应单元:

顶层单元、起始卡单元和终了卡单元.

按映射规则,可导出下页程序结构图.

由上步导出的程序结构

5-1请为某仓库的管理设计一个ER模型。该仓库主要管理零件的订

购和供应等事项。仓库向工程项目供应零件,并且根据需要向供应商

订购零件。

本问题中共有三类实体,分别是“零件”、“工程项目”和“供应

商”。

一种零件可供应多个工程项目,一个工程项目需要使用多种零件

,因此,零件与工程项目之间的联系“供应”,是多对多(M'N

)联系;类似地,零件与供应商之间的联系“订购”,也是多对多

(M'N)联系。

实体类型“零件”的主要属性是:零件编号,零件名称,颜色,重量。

实体类型“工程项目”的属性主要是:项目编号,项目名称,开工日

期。实体类型“供应商”的属性主要有:供应商编号,供应商名称,

地址。联系类型“供应”的属性是,向某工程项目供应的某种零件的

数量。联系类型“订购”的属性是,向某供应商订购的某种零件的数

5-2某火车售票系统的数据流程图如下所示

H期一?—查询结果

---------按日期----------

查询

已知某定货系统的需求分析DFD图如下,请按SD方法的设计步骤画

出结构图

用面向数据流的方法设计下列系统的软件结构

(1)储蓄系统2-2

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

为了方便旅客,某航空公司拟开发一个机票预定系统。旅行社把

配件库存

预定机票的旅客信息(姓名、性别、工作单位、身份证号码、旅

行时间、旅行目的地等)输入该系统,系统为旅客安排航班,旅

客在飞机起飞前一天凭取票通知和账单交款取票,系统核对无误

即印出机票给顾客

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

4

P1

记录存款信息

F5存款信息F5存;

D1存款信息

F4利息

F4利息

P3P4

F6取款信息

核算密码计算利4

辱款和1一春款单据输取款单

率设食上LT^据输入

旅客信息

机票顾'

账单、取票连

旅客信息旅客信息

旅行

社旅客信息

航班信息-

\

旅客信息P2.1

设置航班>

旅客信息

航班信息

<一▼

P2.1

安排航班•航班信息一航班信息

机票

P2.3

机票一机票f打印取票单据

账‘单取票'通知

旅行

预定信息

P2.1

设置航班

录入黑信息旅客信息

______>

P2.1

•航班信息

安排航班

机票

顾客

、打印取票单据,

取票通知票账单

账单

P3.1

核对取票凭证

•取票通

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

按照协议,所有年工资超过$26000(含$26000)的教师工资将

保持不变,年工资少于$26000的教师将增加工资,所增加工资数

额按下述方法计算:给每位教师所赡养的人(包括教师本人)每

年补助$100,此外,教师有一年工龄每年再多补助¥50,但是,

增加后的年工资总额不能多于$26000。

教师工资档案存储在行政办公室的磁带上,档案中有目前的年工

资、赡养的人数、雇佣日期等信息。需要写一个程序计算并印出

每名教师的原工资和调整后的新工资。

要求:(1)画出此系统的数据流图;(2)写出需求说明;

(3)设计上述的工资调整程序(要求用HIPO图描绘设计结果),

设计时分别采用两种算法,并比较两种算法的优缺点:

(a)搜索工资档案数据,找出年工资少于$26000的人,计算

新工资,校核是否超过$26000,存储新工资,印出新旧工

资对照表;

(b)把工资档案数据按工资从最低到最高的次序排序,当工

资数额超过$26000时即停止排序,计算新工资,校核是否

超过限额,存储新工资,印出结果。

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

工资调资系统

导入调资档打印工资对

调资

案照表

第六章习题参考答案

1.编码的任务?使用选定的程序设计语言,把模块的过程性描述

翻译为用语言书写的源程序(源代码)。工资调资系统

2.对源程序基本要求?

源程序要求:正确可靠、简明清晰、效率高。(1)源程序的正确

性是对程序质量的最基本要求;(2)源程序的简明清晰,便于验

证源代码和模块规格说明的一致性,容易进行测试和维护;(3)对

于大多数模块,编码时应该把简明清晰放在第一位;(4)除了编码阶

段产生源代码外,在到睛要编写一些测试程序,用于对软件

的测试。导人]T调资

3.程序设计语言的特点客

(1)名字说明:程序中使用对象的名字,能为编译程序所检查和识

别;(2)类型说明:定义对象的类型,确定该对象的使用方式;(3)

初始化:为变量提供适当的初始值或由系统给变量赋一特殊的表明未

初始化的值;(4)对象的局部性:程序中真正需要的那部分才能访

备的酱模块独出序解才字;恭鬣制对暹和R校曾工

语句、WHILE-DO寤埼手REP除但林WIL语苟颦代曲)分支控询结构:负

如IF语句、CASE语句等;(8)异常处理:为程序运行过程中发生

的错误和意外事件提供检测和处理上的帮助;(9)独立编译:能分

别编译各个程序单元。

4.选择程序设计语言需要考虑的因素?

(1)选择用户熟悉、便于用户维护的语言。(2)选择目标系统

的环境中可以提供的编译程序所能选用的语言(3)选择可以得到

的软件工具,能支持程序开发中可以利用的语言。

(4)根据工程规模的大小、目标系统应用范围,如实时应用选择

Ada语言或汇编语言,系统软件开发选择C语言或汇编语言,软件开

发中若含有大量数据操作则选择SQL、dBASE等数据库语言等。

(5)选择程序员熟悉的语言。(6)选择标准化程度高、程序可

移植性好的语言。(7)根据算法与计算的复杂性、数据结构的复

杂性选择。如对于系统程序和结构复杂的应用程序,选择支持数组、

记录(或结构)与指针动态数据结构的Pascal语言或C语言。(8)

根据实时要求系统需要的响应速度和效率选择相应的语言。

5.编码风格的指导原则。(1)源程序:包括适当的标识符、适当的

注解、程序清单的合理布局与清晰;

(2)数据说明:数据结构或数据类型的说明次序标准化;变量名称

尽量有意义;对复杂的数据结构在注解中要说明在程序设计中实现这

个数据结构的方法。

⑶语句的构造简单明了:不要为节省空间将多个语句写在同一行;

尽量避免复杂的条件及“非”条件的测试;避免大量使用循环嵌套和

条件嵌套;括号的使用是为了使逻辑表达式和算术表达式的运算顺序

清晰直观。(4)效率:考虑程序运行的时间存储器效率、输入/输出

的效率;在处理程序正确性、清晰与效率之间的关系时先求程序正确

后求快;先求清楚后求快;保持程序简单以求快;书写清楚,不为“效

率”牺牲清晰。

6.第四代语言(4GL)应具备哪些的特征?(1)具有很强的数据管理

能力,能对数据库进行有效的存取、查询和其它有关操作;(2)能提

供一组高效的、非过程化的命令,组成语言的基本语句,编程时用户

只需用这些命令说明“做什么”,不必描述实现的细节;(3)能满足

多功能、一体化的要求。为此,语言中除必须含有控制程序逻辑与实

现数据库操作的语句外,还应包括生成与处理报表、表格、图形,以

及实现数据运算和分析统计功能的各种语句,共同构成一个一体化的

语言,以适应多种应用开发的需要。

7.修改右表中的程序结构.

改进如下程序的结构改进后的程序结构:

if(A>B)thenif(A<B=then

if(X>Y)thenA:=Bj

B:=Ys:elseif(X>Y)then

else:B:=Y;

A:=X)else

endif;A:=X;

else!endif;

A=:B,

endif;

将如下的多出口循环结构改为单出口程年结构改进后的单出口程序结构

WHILEClDOexitl:=false;exit2:=false;

BEGINWHILEClAND(NOTexitl)AND(NOTexit2)

BEGIN

IFC2THENGOTO2Oj

IFC2THENexitl:=true?

IFC3THENGOTO30;

(

।IFC3THENexit2:=true;

END;

20:{codeforC2exit}END;

GOTO40;IF(exitl)THENGOTO20;

30:{codeforC3exit)IF(exit2)THENGOTO30;

40:20:{codeforC2exit}

(GOTO40;

30:{codeforC3exit)

40:

3画出下列伪码程序的程序流程图和盒图

START

IFpTHEN

WHILEqDO

f

ENDDO

ELSE

BLOCK

g

n

ENDBLOCK

ENDIF

STOP

4下图给出的程序流程图代表一个非结构化的程序,请问:

(1)为什么说它是非结构化的?2)设计一个等价的结构化程序。(3

)在(2)题的设计中你使用附加的标志变量flag吗?若没用,

请再设计一个使用flag的程序;若用了,再设计一个不用flag

的程序

(1)通常所说的结构化程序,是按照狭义的结构程序的定义衡量,符

合定义规定的程序。图示的程序的循环控制结构有两个出口,显

然不符合狭义的结构程序的定义,因此是非结构化的程序。

(2)使用附加的标志变量flag,至少有两种方法可以把该程序改造为

广的结构化程序。

(NOTq)OR(NOTflag)

(3)不使用flag把该程序改造为等价的结构化程序的方法如图所示。

p

g

(NOTp)OR(NOTq)

8画出下列伪码程序的流图,计算它的环形复杂度。你觉得这个程序

的逻辑有什么问题吗?

CEXAMPLE

LOOP:DOWHILEX>0

A=B+1

IFA>10

THENX=A

ELSEY=Z

ENDIF

IFY<5

THENPRINTX,Y

ELSEIFY=2

THENGOTOLOOP

ELSEC=3

ENDIF

ENDIF

/(。=结点是-弧数n+1

=17-11+1=7

例断结点+1

=6+1廷

=封闭的潘2数

//i

令p代表交易的总金额,Q代表每股的售价,n代表交易的股数。

(1)表示手续费计算方法的判定表如图所示。

4

判定表的每一列是一条计算规则。例如,第1列(规则D规定,当

交易总金额P少于1000元,且每股售价Q低于14元,且交易的股

数n是100的倍数时,给经纪人的手续费为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论