软件工程A作业参考完整答案

软件工程A作业参考完整答案
软件工程A作业参考完整答案

作业2参考答案

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

答:(1)开发一个软件时,需要判断原定的系统模型和目标是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度,如果做不到这些,那么花费在这些工程上的任何时间、人力、软硬件资源和经费,都是无谓的浪费。可行性研究的实质是要进行一次大大压缩简化了的系统分析和设计过程,就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。矚慫润厲钐瘗睞枥庑赖。

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

a.技术可行性。对要开发项目的功能、性能和限制条件进行分析,确定在现有的资源条件下,技术风险有多大,项目是否能实现,这些即为技术可行性研究的内容。这里的资源包括已有的或可以搞到的硬件、软件资源,现有技术人员的技术水平和已有的工作基础。聞創沟燴鐺險爱氇谴净。

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

c.操作可行性。有时还要研究社会可行性问题,研究要开发的项目是否存在任何侵犯、妨碍等责任问题。社会可行性所涉及的范围也比较广,它包括合同、责任、侵权和其他一些技术人员常常不了解的陷阱等。酽锕极額閉镇桧猪訣锥。

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

2.北京某高校可用的电话号码有以下几类:校内电话号码由4位数字组成,第一位数字不是0.校外电话又分为本市电话和外地电话两类。拨校外电话需要先拨0,若是本市电话则接着拨8位数字(第一位不是0),若是外地电话则拨3位区码后再拨8位电话号码(第一位不是0)。彈贸摄尔霁毙攬砖卤庑。

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

校内电话号码=非零数字+3位数字

校外电话号码=[本市号码|外地号码]

本市号码=数字零+8位数字

外地号码=数字零+3位数字+8位数字

非零数字=[1|2|3|4|5|6|7|8|9]

数字零=0

3位数字=3{数字}3

8位数字=非零数字+7位数字

7位数字=7{数字}7

数字=[0|1|2|3|4|5|6|7|8|9]

其中,[ ]意思是或,从校内电话号码或校外电话号码中选择一个;{ }表示重复,两边的数字表示重复次数的下限和上限;=意思是定义为;+意思是和,连接两个分量。謀荞抟箧飆鐸怼类蒋薔。

作业3参考答案

1.为什么要进行需求分析?通常对软件系统有哪些需求?

答:“需求分析”确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、具体的

要求。为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求,只有深入理解了用户的需求,我们的工作才会有意义。厦礴恳蹒骈時盡继價骚。

对软件通常有以下需求:

功能需求:指定系统必须提供的服务;

性能需求:指定系统必须满足的定时约束或容量约束,通常包括速度、信息量速率、主存容量、磁盘容量、安全性等方面的需求;茕桢广鳓鯡选块网羈泪。

可靠性和可用性需求:指定系统的可靠性,可用性量化了用户可以使用系统的程度;

出错处理需求:说明系统对环境错误应该怎么响应;

接口需求:描述应用系统与它的环境通信的格式;

逆向需求:说明软件系统不应该做什么;

将来可能提出的要求:应该明确列出那些虽然不属于当前系统开发范畴,但是据分析将来很可能会提出来的要求。

2.怎样与用户有效地沟通以获取用户的真实需求?

答:(1)访谈

访谈是最早开始使用的获取用户需求的技术,也是迄今为止仍然广泛使用的需求分析技术;访谈有两种基本形式,分别是正式的和非正式的访谈。当需要调查大量人员的意见时,请被调查人填写调查表是十分有效的做法。在访问用户的过程中使用情景分析技术往往非常有效。所谓情景分析,就是对用户将来使用目标系统解决某个具体问题的方法和结果进行分析。系统分析员利用情景分析技术,往往能够获知用户的具体需求。鹅娅尽損鹌惨歷茏鴛賴。(2)面向数据流自顶向下求精

结构化分析方法实质上就是面向数据流自顶向下逐步求精进行需求分析的方法。通过可行性研究已经得出了目标系统的高层数据流图,需求分析的一个主要目标就是把数据流和数据存储定义到元素级。为了达到这个目标,通常从数据流图的输出端着手分析。籟丛妈羥为贍偾蛏练淨。

(3)简易的应用规格说明技术

简易的应用规格说明技术是一种面向团队的需求收集技术。这种方法提倡用户与开发者密切合作,共同标识问题,提出解决方案要素,商讨不同的方案并指定基本需求。目前,这种技术已经成为信息系统领域使用的主流技术。預頌圣鉉儐歲龈讶骅籴。

(4)快速建立软件原型

快速建立软件原型,是最准确,最有效,最强大的需求分析技术。所谓软件原型,就是快速建立起来的旨在演示目标系统主要功能的可运行的程序。渗釤呛俨匀谔鱉调硯錦。

构建软件原型的要点是,它应该实现用户看得见的功能,省略目标系统的“隐含”功能。软件原型应该具有的第一个特性是“快速”,第二个特性是“容易修改”。铙誅卧泻噦圣骋贶頂廡。

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

答:复印机的状态如图3-1所示:

图3-1复印机状态图

作业4参考答案

1.假设只有SEQUENCE和DO_WHILE两种控制结构,怎样利用它们完成IF_THEN_ELSE操作?擁締凤袜备訊顎轮烂蔷。

答:转化如下:

K = 1

DO WHILE (条件.AND. K.EQ.1)

程序块1

K=K+1

END DO

DO WHILE ((.NOT. 条件) .AND. K.EQ.1)

程序块2

K=K+1

END DO

2.假设允许使用SEQUENCE和IF_THEN_ELSE两种控制结构,怎样利用它们完成DO_WHILE操作?贓熱俣阃歲匱阊邺镓騷。

答:转化如下;

label: IF (条件) THEN

程序块

GOTO label

ELSE

程序块

END IF

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

START

IF p THEN

WHILE q DO

f

END DO

ELSE

BLOCK

g

n

END BLOCK

END IF

STOP

答:(1)流程图如图4-1所示:

开始

p

g n

q循环WHILE p

f

q循环

停止

图4-1 从伪码变成的程序流程图(2)该程序的盒图如图4-2所示:

g n q

f

F

P

T 图4-2 从伪码变成的程序盒图

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

(1)为什么说它是非结构化的?

(2)设计一个等价的结构化程序。

(3)在(2)题的设计中你使用附加的标志变量flag吗?若没用,请再设计一个使用flag 的程序;若用了,再设计一个不用flag的程序。坛摶乡囂忏蒌鍥铃氈淚。

答:(1)通常所说的结构化程序,是按照狭义的结构程序的定义衡量,符合定义规定的程序。图示的程序的循环控制结构有两个出口,显然不符合狭义的结构程序的定义,因此是非结构化的程序。蜡變黲癟報伥铉锚鈰赘。

(2)使用附加的标志变量flag,至少有两种方法可以把该程序改造为等价的结构化程序,图4-3描绘了等价的结构化程序的盒图。買鲷鴯譖昙膚遙闫撷凄。

flag=TRUE p AND flag

g

q

F

T

flag=FALSE

(a )解法1 flag=TRUE F

flag=FALSE

g

T

p

(NOT q)OR(NOT flag)

(b )解法2

图4-3 与该图等价的结构化程序(用flag )

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

(NOT q)OR(NOT flag)

F T

p

g

图4-4 与该图等价的结构化程序(不用flag )

5.研究下面的伪代码程序: LOOP : Set I to (START+FINISH)/2 If TABLE(I)=ITEM goto FOUND If TABLE(I)ITEM Set FINISH to (I-1) If (FINISH-START )>1 goto LOOP If TABLE(START)=ITEM goto FOUND If TABLE(FINISH)=ITEM goto FOUND Set FLAG to 0 Goto DONE FOUND: Set FLAG to 1 DONE:Exit

(1) 画出程序流程图。

(2) 程序是结构化吗?说明理由。

(3) 若程序是非结构化的,设计一个等价的结构化程序并且画出流程图。 (4) 此程序的功能是什么?它完成预定功能有什么隐含的前提条件。 答:(1)该程序流程图如下:

开始

I=(START+FINISH)/2

TABLE(I)=ITEM

T

F

TABLE(I)

T

F

TABLE(I)>ITEM

T

F

(FINISH-START)>1

F

T

TABLE(START)=ITEME

TABLE(FINISH)=ITEM

F

FLAG=0

结束

Start=I+1

Finish=I-1

FLAG=1

F T T

(2)该程序不是结构化的,结构化的程序只有一个入口和一个出口,而该程序的流程途中有两个出口。

(3)等价的结构化程序的流程图如下:

Flag=0

开始

(F-S)>1&& flag==0

I=(F+S)/2

Table(I)==item

Table(I)

Flag=1结束

T

T

F

F

S=I+1F=I-1

F

T

(4)此程序有二分查找的功能,它完成预定功能的隐含前提条件是现有序列为从小到大顺序排好的有序序列。

6.用Ashcroft_Manna 技术可以将非结构化的程序转化为结构化程序,图6.19是一个转换的例子。綾镝鯛駕櫬鹕踪韦辚糴。

(1)能否从这个例子总结出Ashcroft_Manna 技术的一些基本方法? (2)进一步简化6.19(b)给出的结构化设计。

答:(1)从这个例子中看出,Ashcroft_Manna 技术的基本方法是,当待改造的序含有嵌套的非结构化的IF 语句时,改造后的程序中增加DO-CASE 语句和DO-UNTIL 语句,并增加一个辅助变量I ,I 的初始值为1。最外层的IF 语句在I=1时执行,执行完这个IF 语句后把I 赋值为随后应该执行的内层IF 语句所对应的CASE 标号值。DO-CASE 语句的最大分支数(可执行的最大标号值)等于IF 语句的个数。当执行完最内层的IF 语句之后,把I 赋值为可执行的最大标号值加1,而DO-UNTIL 循环的结束条件就是I 等于这个值。驅踬髏彦浃绥譎饴憂锦。 (2)进一步简化后的结构化程序的流程图如下所示。

开始

c

A B

d

c

C D D E

停止

F

F

F

T

T

T

图4-5 进一步简化后的结构化程序

7.某交易所规定给经纪人的手续费计算方法如下:总手续费等于基本手续费加上与交易中的每股价格和股数有关的附加手续费。如果交易总金额少于1000元,则基本手续费为交易金额的8.4%;如果交易总金额在1000元到10000元之间,则基本手续费为交易金额的5%,再加34元;如果交易总金额超过10000元,则基本手续费为交易金额的4%加上134元。当每股售价低于14元时,附加手续费为基本手续费的5%,除非买进、卖出的股数不是100的倍数,在这种情况下附加手续费为基本手续费的9%。当每股售价在14元到25元之间时,附加手续费为基本手续费的2%,除非交易的股数不是100的倍数,在这种情况下附加手续费为基本手续费的6%。当每股售价超过25元时,如果交易的股数零散(即,不是100的倍数),则附加手续费为基本手续费的4%,否则附加手续费为基本手续费的1%。猫虿驢绘燈鮒诛

髅貺庑。

要求:

(1) 用判定表表示手续费的计算方法; (2) 用判定树表示手续费的计算方法。 答:(1)判定表如图4-6所示:

(2)判定树如图4-7所示:

图4-7 判定树

8.画出下列伪码程序的流图,计算它的环形复杂度。你觉得这个程序的逻辑有什么问题吗?

C EXAMPLE

LOOP:DO WHILE X>0

A=B+1

IF A>10

THEN X=A

ELSE Y=Z

END IF

IF Y<5

THEN PRINT X,Y

ELSE IF Y=2

THEN GOTO LOOP ELSE C=3 END IF END IF G=H+R END DO IF F>0

THEN PRINT G ELSE PRINT K END IF STOP 答:(1)该伪码的流程图如图4-8所示:

开始

结束

Z>0?

A>10?

Y<5?

F>0?

Y=2?

A=B+1

G<=H+R

Y=Z

X=A C=3

Print X,Y

Print K

Print G

Y Y

N

Y

N

Y

N Y

N

N

图4-8 程序流程图

根据该程序流程图,可得该程序流图如图4-9所示:

1

2

3

45

6

8

7

9

10

11

1213

14

图4-9 程序流图

环形复杂度V(G)=流图中的区域数

=流图中判定结点数目+1=5+1=6

(2)该算法问题在于控制最外层循环的变量Z不仅没有经过初始化,并且在该循环内部没有任何有可能该变Z的语句。因此,该段代码中的WHILE循环部分代码要么不会执行,要么可能出现死循环。锹籁饗迳琐筆襖鸥娅薔。

作业5参考答案

5.某图书馆由一个使用CRT终端的信息检索系统,该系统有下列4个基本检索命令:

要求:

(1)设计测试数据以全面测试系统的正常操作。

(2)设计测试数据以测试系统的非正常操作。

答:根据系统说明,可以划分为如下等价类:

有效的输入等价类有

A.b(关键字)----s(屏幕上的行号)----d(索引号)

B.f(作者姓名)----d(索引号)

无效的输入等价类有

A.不输入任何字符。

B.输入的第一个命令非b或f

D.输入b命令后没有输入关键字

E.输入s命令后,没有输入行号

F.输入f命令后,没有输入作者姓名

G.输入d指令后,没有输入索引号

H.未按顺序输入命令或输入非b/s/d/f命令

(1)根据上面划分的等价类,设计测试数据如下:

A.输入:b(软件工程)----s(10)----d(10)

预期的结果:系统在屏幕上显示与给定的索引号有关的信息。

B.输入:f(张海藩)----d(10)

预期的结果:系统在屏幕上显示与给定的索引号有关的信息。

(2)根据上面划分的等价类,设计测试数据如下:

A.输入:空

预期的结果:提示错误“没有输入任何命令,请重新输入!”

B.输入:r

预期的结果:提示错误“系统不支持此命令,请重新输入!”

C.输入:b()

预期的结果:提示错误“您没有输入关键字!”

D.输入:b(软件工程)----s(abc)

预期的结果:提示错误“没有输入指定行号,或输入的行号不正确!”

F.输入:f()

预期的结果:提示错误“没有输入作者姓名,或输入的姓名不正确!”

G.输入:b(软件工程)----s(10)----d(--)

预期的结果:提示错误“没有输入索引号,或输入的索引号不正确!”

H.输入:f(张海藩)----display(10)

预期的结果:提示错误“您输入的是非法命令,操作失败!”

8.对一个包含10000条机器指令的程序进行一个月集成测试后,总共改正了15个错误,此时MTTF=10h;经过两个月测试后,总共改正了25个错误(第二个月改正了10个错误),MTTF=15h。構氽頑黉碩饨荠龈话骛。

要求:

(1)根据上述数据确定MTTF与测试时间之间的函数关系,画出MTTF与测试时间τ的关系曲线。在化这条曲线是做了什么假设?輒峄陽檉簖疖網儂號泶。

(2)为做到MTTF=100h,必须进行多长时间的集成测试?当集成测试结束时总共改正了多少个错误,还有多少个错误潜伏在程序中?尧侧閆繭絳闕绚勵蜆贅。

答:(1)MTTF与测试时间τ的关系曲线如下:

MTTF(h)

10

15 τ(月)

1

2

假设调试过程中没有引入新的错误。 (2)根据估算平均无故障时间的公式可得:

1/K(Et/10000-15/10000)=10 1/K (Et/10000-25/10000)=15 计算可得:K =33.3,Et=45 当MTTF=100h 时,有

1/333(45/10000-Ec/10000)=100

计算可得:Ec=42.按前两个月测试改错的进度估算,需进行3个月的集成测试。 当测试结束时,共改正了42个错误,还有3个错误潜伏在程序中。

9.如对一个长度为100000条指令的程序进行集成测试期间记录下下面的数据: (a )7月1日:集成测试开始,没有发现错误。

(b )8月2日:总共改正100个错误,此时MTTF=0.4h (c )9月1日:总共改正300个错误,此时MTTF=2h 根据上列数据完成下列各题。 (1) 估计程序中的错误总数。

(2) 为使MTTF 达到10h ,必须测试和调试这个程序多长时间? (3) 画出MTTF 和测试时间τ之间的函数关系曲线。 答:(1)根据估算平均无故障时间的公式可得:

1/K(Et/100000-100/100000)=0.4 1/K (Et/100000-300/100000)=2

计算可得:K =1000,Et=350即程序中的错误总数为350。 (2)当MTTF =10h 时,有

1/K (350/100000- Ec/100000)=10

计算可得:Ec=340.按前两个月测试改错的进度估算,还进行2个月的集成测试。 (3)MTTF 和测试时间τ之间的函数关系曲线如下:

τ(月)

1

2

2

0.4

MTTF(h)

10.在测试一个长度为24000条指令的程序时,第一个月由甲、乙两名测试员各自独立测试这个程序。经一个月测试后,甲发现并改正20个错误,使MTTF 达到10h 。与此同时,乙发现24个错误,其中6个甲也发现了。以后由甲一个人继续测试这个程序。问:识饒鎂錕

缢灩筧嚌俨淒。

(1)刚开始测试时程序中总共有多少个潜在的错误?

(2)为使MTTF 达到60h ,必须再改正多少个错误?还需多长测试时间? (3)画出MTTF 与集成测试时间τ之间的函数关系曲线。 答:(1)根据公式:B0=B2B1/bc ,可得:

B0=20*24/6=80,即刚开始测试时程序中总共有80个错误。 (2)根据估算平均无故障时间的公式可得:

1/K(80/24000-20/24000)=10 1/K(80/24000- Ec/24000)=60 计算可得:K=40,Ec=70

即还需要改正50个错误。根据甲的改正进度,估计还需要3个月。 (3)MTTF 与集成测试时间τ之间的函数关系曲线如下:

τ(月)

1

3.5

60

10

MTTF(h)

软件工程作业及参考答案(版)

软件危机与软件工程 3. 软件工程方法学的研究内容包含软件开发技术和软件工程管理两部分, 其期望达到的最终目标是 ()。 A ?消除软件危机 B ?软件开发工程化 C ?程序设计自动化 D ?实现软件重用 4?软件工程学中除重视软件开发技术的研究外,另一重要组成内容是软件的( )。 A .工程管理 B .成本核算 C .人员培训 D .工具开发 5?软件计划是软件开发的早期和重要阶段,此阶段要求交互和配合的是( )。 A ?设计人员和用户 B ?分析人员和用户 C .分析人员和设计人员 D .编码人员和用户 6 .软件工程的结构化生命周期方法是将软件开发的全过程划分为相互独立而又相互依存的阶段,软件的 逻辑模型形成 于( )。 A .开发阶段 B .计划阶段 C .分析阶段 D .设计阶段 7 .在软件工程中,软件生存期可分为计划、开发以及维护三个阶段,每个时期又分为若干更小的阶段。 通常,计划时期包括问题定义、可行性研究和 ①,开发时期包括 ②、详细设计、编码以及 ③。 ① A . 需求分析 B . 可行性研究 C . 经费预算 D . 质量保证 ② A . 需求分析 B . 可行性研究 C 总体设计 D 模块化设计 ③ A . 文档编制 B . 运行维护 C . 测试 D . 验收 &软件开发中常采用的生命周期方法,由于其特征而一般称其为() A .层次模型 B .瀑布模型 C .螺旋模型 D .对象模型 9.描述软件生存周期的瀑布模型包括计划、 (A ) 、设计、编码、测试、维护等阶段。其中,设计阶段又可 以分成(B )和(C )两个步骤。 A :①需求分析 ②可行性研究 ③需求调查 ④问题定义 B, C :①方案设计 ②代码设计 ③概要(总体)设计 ④数据设计 ⑤详细设计 10.什么是软件危机?软件危机产生的原因? ".生命周期阶段的划分?每个阶段的任务? 可行性研究 软件工程 1软件危机是指在开发和( A .运行 B .设计 2 ?造成软件危机的原因是: A. 用户使用不当 C .硬件不可靠 )过程中所遇到的一系列严重问题。 B .对软件的错误认识 D ?缺乏好的开发方法和手段

工程制图习题及答案

1.工整、清楚、均匀、整齐。 2.图形、实物。 3.尺寸数字、尺寸界线、尺寸线、尺寸线终端。 4.定形尺寸。 5.定位尺寸。 6.数值、无关。 7.豪米。 1.完工。2一次、清晰。3定形、定位。 4上方、中断、向上。5平行。6圆心。7顶、水平。8A0、A1、A2、A3、A4。9徒手。 10计算机。11圆规、分规、三角板、丁字尺。12相切。 1.x. 2.z. 3.x、z. 4.一般位置直线、投影面平行线、投影面垂直线。 5.投影。 6.中心投影、平行投影。 二(2)1中心投影。2平行投影。3斜投影法、正投影法。4唯一、位置、形状。5实长、实行。6点。7直线。 二(3)1.直线、类似形。2.水平、正立、侧立。3.第一分角。4.主、俯、左。5.粗实线、虚线。6.长、高、长、宽、高、宽。 二(4)1铅垂、正垂、侧垂。2一般位置直线。 3投影面平行线、水平、正平、侧平。4平面。5该平面。6同面。7不变。 二(5)1平行、相交、交叉。2平行、平行。3交叉。4实长、倾角、平行、实长。5点、实长、垂直。 二(6)1一般位置平面、投影面平行面、投影面垂直面。2一般位置平面。3垂直面。4直线、倾角。5平行面。6实形、直线、平行。 1. 中心投影法和平行投影法。 2. 正投影法和斜投影法。 3.多面正投影图。 4.①正面投影与点的水平投影。 ②正面投影与点的侧面投影。 ③水平投影到OX轴的距离等于点的侧面投影。 5. 一般位置直线、投影面平行线和_ 投影面垂直线。 1 平行、相交、交叉三种。 2. 同面投影也一定平行。 3. 同面投影也一定相交,同面投影。 4.也反映直角。 5.一般位置平面、投影面垂直面和投影面平行面。 1. 取点,取线,取线,取点。 2. _平行__、相交_和_垂直___。 3. 积聚性法和辅助线法。 4. _平行__、相交_和_垂直。 5. 积聚性法线面交点法和辅助平面法。 1.(1) 将已知的各投影联系起来阅读 (2) 运用形体分析读图 (3) 运用线面分析读图 第九章 3、装配图中所有零、部件均须编写序号,相同规格尺寸的零、部件应另编一个序号.编号时,在零、部件可见轮廓内画一小实心圆,用细实线引出到该视图最外端轮廓线的外面,终端画一横线或圆圈(采用细实线),序号填写在指引线的横线上或圆圈内,序号数字要比尺寸数字大一号,在较大幅面的图样中,编号的字高可比其尺寸数字高度大两号.若零件很薄(或已涂黑)不便画圆点时,可用箭头代替,另外也可以不画水平线和圆,在指引线另一端附近注写序号,序号字高比尺寸数字大两号;指引线尽量分布均匀,不要彼此相交,也不要过长.当通过有剖面线的区域时,指引

软件工程试题及答案

4. 面向对象的分析方法主要是建立三类模型,即( D )。 A) 系统模型、ER模型、应用模型 B) 对象模型、动态模型、应用模型 C) E-R模型、对象模型、功能模型D) 对象模型、动态模型、功能模型 5. 在E-R模型中,包含以下基本成分( )。 A) 数据、对象、实体B) 控制、联系、对象C) 实体、联系、属性 D) 实体、属性、操作 9.若有一个计算类型的程序,它的输入量只有一个X,其范围是[, ],现从输入的角度考虑一组测试用例:, , , . 设计这组测试用例的方法是( c ) A.条件覆盖法 B.等价分类法C.边界值分析法 D.错误推测法 10、详细设计的基本任务是确定每个模块的( d )A.功能B.调用关系C.输入输出数据 D.算法 11.设函数C(X)定义问题X的复杂程序,函数E(X)确定解决问题X需要的工作量(时间)。对于两个问题P1和P2,如果C(P1)>C(P2)显然E(P1)>E(P2),则得出结论E(P1+P2)>E(P1)+E(P2)就是:( a ) A.模块化的根据 B.逐步求精的根据 C.抽象的根据 D.信息隐藏和局部化的根据13.面向数据流的设计方法把( D )映射成软件结构。 A.数据流 B.系统结构 C.控制结构 D.信息流 14.内聚程度最低的是( A.偶然 )内聚A.偶然 B.过程 C.顺序 D.时间 15.确定测试计划是在( D )阶段制定的.A.总体设计 B.详细设计 C.编码 D.测试 16.需求分析的产品是( D ) A.数据流程图案 B.数据字典 C.判定表D.需求规格说明书 17.数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( C ) A.数据库设计 B.数据通信 C.数据定义 D.数据维护 18.( D )引入了“风险驱动”的思想,适用于大规模的内部开发项目。 A.增量模型 B.喷泉模型 C.原型模型D.螺旋模型 (×)2、系统测试的主要方法是白盒法,主要进行功能测试、性能测试、安全性测试及可靠性等测试。 (×)4、软件需求分析的任务是建立软件模块结构图。 (√)5、尽可能使用高级语言编写程序(×)6、以结构化分析方法建立的系统模型就是数据流图。 (×)7、进行总体设计时加强模块间的联系。(×)8、编码时尽量多用全局变量. (√)9、用CASE环境或程序自动生成工具来自动生成一部分程序.(×)10、软件测试是要发现软件中的所有错误。 1. 软件生命期各阶段的任务是什么答:软件生命期分为7个阶段:1、问题定义:要解决的问题是什么 2、可行性研究:确定问题是否值得解,技术可行性、经济可行性、操作可行性 3、需求分析:系统必须做什么 4、总体设计:系统如何实现,包括系统设计和结构设计 5、详细设计:具体实现设计的系统 6、实现:编码和测试 7、运行维护:保证软件正常运行。 2、软件重用的效益是什么?

软件工程复习题及答案

一、画出实际的瀑布模型p16 三、画出增量模型p18 五、可行性研究的工作过程及内容p36 答:1).复查系统规模和目标; 2).研究目前正在使用的系统; 3).导出新系统的高层逻辑模型; 4).进一步定义问题; 5).导出和评价供选择的解法; 6).推荐行动方针;7).草拟开发计划;8.书写文档提交审查。 六、可行性研究的目的是什么?要如何进行?p35 答:目的:用最小的代价在尽可能短的时间内确定问题是否能够解决。 首先,需要进一步分析和澄清问题定义。之后,分析员应该导出系统的逻辑模型。从系统逻辑模型出发,探索若干可供选择的主要解决方法(即系统实现方案)。对每种解法都应该仔细研究它的可行性,一般来说,至少应该从下述三方面研究每种解法的可行性:(1)技术可行性;(2)经济可行性;(3)操作可行性。必要时还应该从法律、社会效益等更广泛的方面研究每种解法的可行性。 二、画出快速原型模型p17 四、画出简化的螺旋模型p20 软件工程考试复习题

七、需求分析的任务是什么?进行需求分析时要重点考虑哪些方面的问题?p56 答:1、确定对系统的综合要求:1).功能需求——指定系统必须提供的服务。通过需求分析应该划分出系统必须完成的所有功能。2).性能需求——性能需求指定系统必须满足的定时约束或容量约束,如速度(响应时间)、信息量速率、主存容量、磁盘容量、安全性等。3).可靠性和可用性需求——可靠性是指确保各应用及其相关的所有交易的完整性和一致性的能力;可用性是指一个系统应确保一项服务或者资源永远都可以被访问到。4).出错处理需求——说明系统对环境错误应该怎样响应。5).接口需求——描述应用系统与它的环境通信格式。6).约束——在设计或实现应用系统时应遵守的限制条件。常见的约束有:精度;工具和语言约束;设计约束;应该使用的标准;应该使用的硬件平台。7).逆向需求——说明软件系统不应该做什么。8).将来可能提出的要求——应该明确地列出那些虽然不属于当前系统开发范畴,但是据分析将来很可能会提出来的要求。 2、分析系统的数据要求。 3、导出系统的逻辑模型。 4、修正系统开发计划。 八、典型的总体设计过程包括哪些步骤?p92 答:典型的总体设计过程包括九个步骤: 1)、设想供选择的方案;2)、选取合理的方案;3)、推荐最佳方案;4)、功能分解;5)、设计软件结构;6)、设计数据库;7)、制定测试计划;8)、书写文档;9)审查和复查。 九、总体设计的主要任务是什么?总体设计的主要过程有哪些?p91 答:主要任务: 总体设计又称为概要设计或初步设计。通过这个阶段的工作将划分出组成系统的物理元素—程序、文件、数据库、人工过程和文档等等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容将在以后仔细设计。总体设计的另一项重要的任务是设计软件的结构,也就是要确定系统中每个程序是由哪个模块组成,以及这些模块相互间的关系。 主要过程: ①寻找实现目标系统的各种不同的方案。②从这些供选择的方案中选取若干个合理的方案,为每个合理的方案都准备一份系统流程图,列出组成系统的所有物理元素。③进行成本/效益分析,并且制定实现这个方案的进度计划。从中选出一个最佳方案。④进一步为这个最佳方案设计软件结构。⑤进行必要的数据库设计,确定测试要求并且制定测试计划。 十、何谓耦合?有哪些类型?软件设计应该取哪种类型?p97 答:耦合是对一个软件结构内不同模块之间互连程度的度量。 类型:数据藕合、控制藕合、公共环境藕合、内容耦合 设计原则:尽量使用数据耦合,少用控制耦合,限制公共环境耦合的范围,完全不用内容耦合。 十一、何谓内聚?有哪些类型?软件设计应该取哪种类型?p98 答:内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。 低内聚有如下几类:偶然内聚、逻辑内聚、时间内聚。中内聚主要有两类:过程内聚、通信内聚。高内聚也有两类:顺序内聚、功能内聚。 设计时应该力求做到高内聚,通常中等程度的内聚也是可以采用的,而且效果和高内聚相差不多;但是,低内聚很坏,不要使用。

软件工程在线作业及答案

1.第1题 在软件可行性研究中,可以从不同的角度对软件进行研究,其中是从软件的成本/效益分析的是()。 A.经济可性性 B.技术可行性 C.操作可行性 D.法律可行性 您的答案:A 题目分数:2.5 此题得分:2.5 2.第2题 为了提高模块的独立性,模块内部最好是()。 A.逻辑内聚 B.时间内聚 C.功能内聚 D.通信内聚 您的答案:C 题目分数:2.5 此题得分:2.5 3.第3题 Jackson方法是一种面向()的方法。 A.对象 B.数据结构 C.数据流 D.控制流 您的答案:B 题目分数:2.5 此题得分:2.5 4.第4题 需求分析阶段研究的对象是软件项目的()。 A.用户需求 B.合理要求 C.模糊要求 D.工程要求 您的答案:A 题目分数:2.5 此题得分:2.5

5.第5题 面向数据结构的设计方法(Jackson方法)是进行()的形式化的方法。 A.系统设计 B.详细设计 C.软件设计 D.编码 您的答案:B 题目分数:2.5 此题得分:2.5 6.第6题 程序控制的三种基本结构中,()结构可提供多条路径选择。 A.反序 B.顺序 C.循环 D.分支 您的答案:D 题目分数:2.5 此题得分:2.5 7.第7题 下列属于黑盒测试的是()。 A.基本路径测试 B.条件测试 C.循环测试 D.等价划分 您的答案:D 题目分数:2.5 此题得分:2.5 8.第8题 软件设计一般分为总体设计和详细设计,它们之间的关系是()。 A.全局和局部 B.抽象和具体 C.总体和层次 D.功能和结构 您的答案:A 题目分数:2.5 此题得分:2.5

9.第9题 好的软件结构应该是()。 A.高耦合,高内聚 B.低耦合,高内聚 C.高耦合,低内聚 D.低耦合,低内聚 您的答案:B 题目分数:2.5 此题得分:2.5 10.第15题 面向对象软件技术的许多强有力的功能和突出的优点,都来源于把类组织成一个层次结构的系统,一个类的上层可以有父类,下层可以有子类,这种层次结构系统的一个重要性质是(),一个类获得其父类的全部描述(数据和操作)。 A.传递性 B.继承性 C.复用性 D.并行性 您的答案:B 题目分数:2.5 此题得分:2.5 11.第16题 软件项目管理是()一切活动的管理。 A.需求分析 B.软件设计过程 C.模块控制 D.软件生命周期 您的答案:D 题目分数:2.5 此题得分:2.5 12.第17题 一个模块把开关量作为参数传递给另一模型,这两个模块之间的耦合是()。 A.外部耦合 B.数据耦合 C.控制耦合 D.内容耦合 您的答案:C

工程制图与CAD形考作业1、2和3

学号2—— 《工程制图与CAD》形考作业1、2和3 《工程制图与CAD》形考作业一 一、单项选择题(每题2分,共40分) 1 A、14mm B C)表示。 A、细实线 B、粗实线 C、细点划线 D、双点划线 4、不能用于定位轴线编号的拉丁字母是( D )。 A、O B、I C、Z D、以上全部 5、相对标高的零点正确的注写方式为( C )。

A、+0.000 B、-0.000 C、±0.000 D、无规定 6、定位轴线A/3表示( D )。 A、A轴线之后附加的第3根轴线 B、A轴线之前附加的第3根轴线 C、3轴线之前附加的第A根轴线 D、3轴线之后附加的第A根轴线 7 A、 及尺寸 C B、设计说明 C、总平面图 D、 9、建筑剖面图一般不需要标注( C )等内容。 A、门窗洞口高度 B、层间高度 C、楼板与梁的断面高度 D、建筑总高度 10、下列( A )必定属于总平面表达的内容。 A、相邻建筑的位置 B、墙体轴线

C、柱子轴线 D、建筑物总高 11、正交和极轴追踪是( B )。 A、名称不同,但是一个概念 B、正交是极轴的一个特例 C、极轴是正交的一个特例; D、不相同的概念 12、下面( B )名称不能被修改或删除。 A、标准层 B、0层C 13 )可以作为过滤器条件。 A、绿色 B、颜色 C、随块 D、随层 15、以下( C )说法是错误的。 A、可以用“绘图”|“圆环”命令绘制填充的实心圆 B、打断一条“构造线”将得到两条射线 C、不能用“绘图”|“椭圆”命令画圆

D、使用“绘图”|“正多边形”命令将得到一条多段线 16、按比例改变图形实际大小的命令是( C )。 A、OFFSET B、ZOOM、420x297 C、SCALE D、STRETCH 17、改变图形实际位置的命令是( A )。 A、MOVE B、PAN C、ZOOM OFFSET 18、移动( A)速度快,平移(Pan) Pan)的对象是视图 19、当图形中只有一个视口时,【重生成】的功能与( C )相同。 A、重画 B、窗口缩放 C、全部重生成 D、实时平移 20、对于图形界限非常大的复杂图形,( D )工具能快速简便地定位图形中的任一部分以便观察。

《软件工程》试题及参考答案(第6套)

第一部分选择题 一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1、()是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。 A 软件过程 B 软件工具 C 质量保证 D 软件工程 2、在各种不同的软件需求中,功能需求描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明,()是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。 A 业务需求 B 功能要求 C 非功能需求 D 用户需求 3、软件测试计划开始于需求分析阶段,完成于()阶段。 A 需求分析 B 软件设计 C 软件实现 D 软件测试 4.下面关于面向对象方法中消息的叙述,不正确的是( )。 A. 键盘、鼠标、通信端口、网络等设备一有变化,就会产生消息 B.操作系统不断向应用程序发送消息,但应用程序不能向操作系统发送消息 C. 应用程序之间可以相互发送消息 D.发送与接收消息的通信机制与传统的子程序调用机制不同 5.美国卡内基—梅隆大学SEI提出的CMM模型将软件过程的成熟度分为5个等级,以下选项中,属于可管理级的特征是( )。 A.工作无序,项目进行过程中经常放弃当初的计划 B.建立了项目级的管理制度 C.建立了企业级的管理制度 D.软件过程中活动的生产率和质量是可度量的 6.在McCall软件质量度量模型中,()属于面向软件产品修改。 A.可靠性B.可重用性C.适应性 D.可移植性 7.软件生命周期中所花费用最多的阶段是() A.详细设计 B.软件编码 C.软件测 试 D.软件维护 8.需求分析阶段的任务是确定() A.软件开发方法 B.软件开发工具 C.软件开发费 D.软件系统的功能

软件工程课后习题(含答案)

第一章练习题 一、填空题 1、软件工程三要素是:方法、工具、过程。 2、软件开发方法是指软件开发过程中所应遵循的方法和步骤。 二、名词(术语)解释: 1、可靠性---是指在给定的时间间隔内,程序成功运行的概率。可靠性是衡量软件质量的一个重要目标。 2、可理解性---指系统具有清晰的结构,能直接反映问题的需求。可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植和重用。 三、问答题 1、面向对象方法的优点是什么? 答:(1)将现实世界问题向面向对象解空间直接映射,实现对现实世界的直接模拟。 (2)以数据为中心,而不是基于对功能的分解,使得软件结构相对稳定,软件的重用性、可靠性、可维护等特性都较好。 2、可视化开发方法的优点有哪些? 答:(1)简化了图形用户界面的设计和编码工作,将开发的注意力主要集中在程序的执行逻辑和工作流程上。 (2)软件开发简单,易学、易上手。 (3)专业或非专业人员都能参与软件开发活动。 第二章练习题 一、填空题: 1、软件工程过程是:为获得软件产品,在软件工具支持下由软件人员完成的一系列软件工 程活动。 2、一个软件从定义、开发、使用和维护,直到最终被废弃,所经历的生存过程经历的生存过程称为软件生存期或叫生命期。 3、软件生命周期的阶段划分为3个时期是:定义时期、开发时期、维护时期。 4、软件工程标准的5个层次是:国际标准、国家标准、行业标准、企业规范、项目规范。 二、简答题: 1、瀑布模型的优点有哪些? 答:1、强迫开发人员采用规范的技术方法; 2、严格地规定了每个阶段必须提交的文档; 3、每个阶段结束前必须正式进行严格的技术审查和管理复审。 2、瀑布模型的缺点是什么? 答:1、在软件开发的初期阶段就要求做出正确、全面、完整的需求分析对许多应用软件来说是极其困难的。 2、在需求分析阶段,当需求确定后,无法及时验证需求是否正确、完整。 3、作为整体开发的瀑布模型,由于不支持产品的演化,缺乏灵活性,对开发过程中很 难发现的错误,只有在最终产品运行时才能暴露出来,从而使软件产品难以维护。

软件工程试题及答案

综合练习一答案 一.选择题: 1.软件危机出现于____,为了解决软件危机,人们提出了用____的原理来设计软件,这是软件工程诞生的基础。 A.50年代末 B.60年代初C.60年代末 D.70年代初 A.运筹学B.工程学 C.软件学 D.软件学 E.数字 2.开发软件需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作____。 A.软件投机B.软件危机C.软件工程D.软件产生 3.产生软件危机的原因有如下几点,除了______。 A、软件开发过程未经审查 B、软件开发不分阶段,开发人员没有明确的分工 C、所开发的软件,除了程序清单外,没有其他文档 D、采用工程设计的方法开发软件,不符合软件本身的特点 4.软件工程学是应用科学理论和工程上的技术指导软件开发的学科,其目的是____。 A.引入新技术提高空间利用率B.用较少的投资获得高质量的软件 C.缩短研制周期扩大软件功能D.硬软件结合使系统面向应用 5.请按顺序写出软件生命期的几个阶段____,____ ,____,____,____,____。 A.维护 B.测试 C.详细设计 D.概要设计 E.编码 F.需求分析6.瀑布模型把软件生存周期划分为软件定义、软件开发和____三个阶段,而每一阶段又可细分为若干个更小的阶段。 A.详细设计B.可行性分析C.运行及维护D.测试与排错7.划分软件生存周期的阶段时所应遵循的基本原则是_____。 A、各阶段的任务尽可能相关性 B、各阶段的任务尽可能相对独立 C、各阶段的任务在时间上连续 D、各阶段的任务在时间上相对独立 8.一个软件项目是否进行开发的结论是在______文档中作出的。 A、软件开发计划 B、可行性报告 C、需求分析说明书 D、测试报告 9.分析员是____。 A.用户中系统的直接使用者B.用户和软件人员的中间人 C.软件的编程人员 D。用户和软件人员的领导 10.下列叙述中,_______不属于数据字典的作用。 A、作为编码阶段的描述工具 B、为用户与开发人员之间统一认识 C、作为概要设计的依据 D、为需求分析阶段定义各类条目 11.使用结构化分析方法时,采用的基本手段是____。 A.分解和抽象 B.分解和综合C.归纳与推导D.试探与回溯12.结构化系统分析主要是通过____进行分析的。 A.算法分解B.控制结构分解 C.数据结构分解D.处理功能分解13.分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描述了系统的____。 总貌B.细节C.抽象D.软件的作者 13.变换型和事务型是程序结构的标准形式。从某处获得数据,再对这些数据作处理,然后将结果送出是属于____。 A.变换型 B 事务型 14.需求分析说明书不能作为______。

-软件工程习题答案参考

软件工程 绪论 1.什么是软件危机?为什么会产生软件危机? 答:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。(1).软件维护费用急剧上升,直接威胁计算机应用的夸大。 (2).软件生产技术进步缓慢 2.什么是软件生产工程化?工程化生产方法与早期的程序设计方法 主要差别在哪里? 答:结构化程序设计地出现,使许多产业界认识认识到必须把软件生产从个人化方式改变为工程化。采用工程的概念、原理、技术和方法开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程,同时这也是工程化生产方法。 3.分别说明(1)软件开发方法与开发工具;(2)软件技术与软件管 理的相互关系。 答:(1)工具和方法,是软件开发技术的两大支柱,它们密切相关。当一种方法提出来并证明有效后,往往随之研制出相应的工具,来帮助实现和推行这种方法。新方法在推行初期,总有人不愿接受和采用。若将新方法融合于工具之中,使人们通过使用工具来了解新方法,就能更快促进新方法的推广。(2)在工业生产中,即使有先进的技术和设备,管理不善的企业也不能获得良好的效益。软件在生产中不能按质按时完成计划,管理混乱往往是其中的重要原因。所以对于一

个理想的软件工程环境,应该同时具备技术和管理两个方面。 4.试从你的亲身实践,谈谈软件工具在软件开发中的作用。 答:用C++开发一个软件,是校园一卡通的模块。首先,要在编辑程序支持下在计算机中输入源程序。然后编译程序,把源程序翻译成目标程序。如果发现错误,就重新调入编辑程序对源程序进行修改。编译通过后,再调用连接程序吧所有通过了编译目标程序连同与之有关的程序连接起来,构成一个能在计算机上运行的可执行软件。编译程序,编辑程序,连接程序以及支持他们的计算机操作系统,都属于软件工具。离开这些工具,软件开发就是去了支持,变得十分困难和低效,甚至不能运行。 5.什么是软件工程环境?谈谈你对环境重要性的认识。答:方法与工具相结合,再加上配套的软、硬件支持就形成环境。例如在批处理时代,用户开发的程序是分批送入计算机中心的计算机的,有了错误,就得下机修改。程序员对自己写的程序只能继续地跟踪,思路经常被迫中断,效率难于提高。分时系统的使用,使开发人员从此能在自己的终端上跟踪程序的开发,仅此一点,就明显提高了开发的效率。 6. 何谓面向对象软件工程?简述它与传统软件工程在各型软件开发中的作用。 答:以面向对象程序设计为基础。 7. 软件按规模大小可分成哪几类?简述软件工程中各型软件开发中的作用。 答:按规模分为极小、小、中、大、甚大、极大。(1)中小型软件:

(完整版)《软件工程》作业及答案

t h e i 《软件工程》作业及答案 1-1 什么是软件危机?它有哪些典型表现?为什么会出现软件危机?答: 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。概括地说,软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。软件危机典型表现:对软件开发成本和进度的估计常常很不准确。用户对“已完成的”软件系统不满意的现象经常发生。软件产品的质量往往靠不住。软件常常是不可维护的。软件通常没有适当的文档资料。软件成本在计算机系统总成本中所占的比例逐年上升。软件开发生产 率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。 产生软件危机的原因:一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。软件不同于硬件,它是计算机系 统中的逻辑部件而不是物理部件。管理和控制软件开发过程相当困难。 软件是规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上 升。目前相当多的软件专业人员对软件开发和维护还有不省糊涂观念, 在实践过程中或多或少地采用了错误的方法和技术,这是使软件问题发展成软件危机的主要原因。1-2 假设你是一家软件公司的总工程师,当你把图1.1给手下的软件 工程师们观看,告诉他们及早发现并改正错误的重要性时,有人不同意你的观点,认为要求在错误进入软件之前就清除它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能 在设计阶段清除它呢?”你怎么反驳他? 1-3 什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机? 答: 软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。 软件工程本质特性:1、软件工程关注于大型程序的构造;2、软件工程的中心课题是控制复杂性;3、软件经常变化;4、开发软件的效率非常重要;5、和谐地合作是开发软件的关键;6、软件必须有效地支持它的用户;7、在软件工程领域中是由具有一种文化背景的人替具 有另一种文化背景的人创造产品。 消除软件危机的途径:为了消除软件危机,首先应该对计算机软件有一个正确的认识。必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。应该推广使用在实践中总结出来的开发软件的成功 的技术和方法,并且研究探索更好更有效的技术和方法,尽快消除在 计算机系统早期发展阶段形成的一些错误概念和做法。应该开发和使用更好的软件工具。为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。1-6 什么是软件过程?它与软件工程方法学有何关系? 答: 软件过程是为了获得高质量软件所需要完成的一系列任务的框架, 它规定了完成各项任务的工作步骤。软件工程方法学包含软件过程。1-7 什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增 量模型和螺旋模型的优缺点,说明每种模型的适用范围。 答: 生命周期模型简洁地描述软件过程,规定了把生命周期划分成哪些阶段及各个阶段执行顺序。 瀑布模型历史悠久、广为人知,它的优势在于它是规范的、文档驱动的方法;这种模型的问题是,最终开发出的软件产品可能并不是用户 真正需要的。 快速原型模型正是为了克服瀑布模型的缺点而提出来的。它通过快速构建起一个可在计算机上运行的原型系统,让用户试用原型并收集用 户反馈意见的办法,获取用户的真实需求。 增量模型具有可在软件开发的早期阶段使投资获得明显回报和较易维护的优点,但是,要求软件具有开放的结构是使用这种模型时固有的困难。 风险驱动的螺旋模型适用于内部开发的大型软件项目,但是,只有在开发人员具有风 险分析和排除风险的经验及专门知识时,使用这种模型才会获得成功。 快速原型模型:适合小型软件; 螺旋模型:适合内部开发的大规模软件项目。2-1 在软件开发的早期阶段为什么要进行可行性研究?应该从哪些方面 研究目标系统的可行性? 答: 可行性研究的目的,就是用最小的代价在尽可能短的时间内确定 问题是否能够解决。至少应该从下述三方面研究每种解法的可行性:(1)技术可行性;(2)经济可行性;(3)操作可行性。 2-5 北京某高校可用的电话号码有以下几类:校内电话号码由4位数字组成,第1位数字不是0;校外电话又分为本市电话和外地电话两类,拨校外电话需先拨0,若是本市电话则再接着拨8位数字(第1位不是0),若是外地电话则拨3位区码再拨8位电话号码(第1位不是0)。请用2.5.2小节讲述的定义数据的方法,定义上述的电话号码。答: 电话号码=[校内电话|本市电话|外地电话] 非零数字字符=[1|2|3|4|5|6|7|8|9] 校内电话=非零数字字符+3{数字}3本市电话=0+非零数字字符+7{数字}7外地电话=0+区码+非零数字字符+7{数字}73-1 为什么要进行需求分析?通常对软件系统有哪些需求?答: 为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求。对软件需求的深入理解是软件开发工作获得成功的前提条件,不论我们把设计和编码工作做得如何出色,不能真正满足用户需求的程序只会令用户失望,给开发者带来烦恼。确定对系统的综合要求:1、功能需求;2、性能需求;3、可靠性和可用性需求;4、出错处理需求;5、接口需求;6、约束;7、逆向需求;8、将来可以提出的要求,分析系统的数据要求。3-2 怎样与用户有效地沟通以获取用户的真实需求? 答: 与用户沟通获取需求的方法:访谈;面向数据流自顶向下求精;简易的应用规格说明技术;快速建立软件原型 4-2 在什么情况下应该使用形式化说明技术?使用形式化说明技术时应 遵守哪些准则? 答: 在开发大型软件系统的过程中应该使用形式化说明技术。应用形式化方法的准则:(1)应该选用适当的表示方法。(2)应该形 式化,但不要过分形式化。 (3)应该估算成本。(4)应该有形式化方法顾问随时提供咨询。 (5)不应该放弃传统的开发方法。(6)应该建立详尽的文档。(7)不应该放弃质量标准。(8)不应该盲目依赖形式化方法。(9)应该测试、测试再测试。(10)应该重用 7-8 对一个包含10000条机器指令的程序进行一个月集成测试后,总 共改正了15个错误,此时MTTF=10h;经过两个月测试后,总共改正了 25个错误(第二个月改正了10个错误),MTTF=15h 。要求:(1) 根据上述数据确定MTTF 与测试时间之间的函数关系,画出 MTTF 与测试时间τ的关系曲线。在画这条曲线时做了什么假设?(2) 为做到MTTF=100h ,必须进行多长时间的集成测试?当集成测试结束时总共改正了多少个错误,还有多少个错误潜伏在程序中? 答: (1)所做假设:1)单位长度里的错误数近似为常数;2)失效率正比于软件中剩余的错误数,而平均无故障时间与剩余的错误数成反比. 3)发现的每一个错误都立即正确地改正了.(2)由Shooman 公式:MTTF=I T /(K*(E T -E C (T))) 其中,I T =104,MTTF 1=10,n 1=15,MTTF 2=15,n 2=25。得:MTTF 1=I T /(K*(E T -E C (T 1)))10=10000/(K*(E T -15))MTTF 2=I T /(K*(E T -E C (T 2)))15=10000/(K*(E T -25)) (1)解得程序中固有的错误总数E T =45,此外K=100/3。(2)设MTTF=100,有 100=10000/((100/3)*(45-x))

软件工程复习题及答案(完整)

软件工程复习题及答案(完整)

一、选择 1、文档是软件产品的一部分,没有文档的软件就不称其为软件。对 2、在需求分析过程中,分析员要从用户那里解决的最重要的问题是给该软件提供哪些信息。错 3、需求规格说明书在软件开发中具有重要的作用,它也可以作为软件可行性分析的依据。错 4、建立用例模型的步骤包括确定角色、确定用例和绘制用例图。错 5、数据流图建立系统的功能模型,它由数据流、加工和数据存贮组成。错 6、软件配置管理是一组标识、组织和控制修改源程序的活动。错 7、UML是一种直观化、明确化、构建和文档化软件产物的通用语言。错 8、好的测试是用少量的测试用例运行程序,发现被测程序尽可能多的错误。对 9、边界值分析方法是取输入/输出等价类的边界值作为测试用例。对 10、面向对象的分析是面向计算机系统建立软件系统的对象模型。错 11、(D)是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。 A 软件过程 B 软件测试 C 软件生存周期 D 软件工程 12、ISO9000是由ISO/TC176制定的关于(B)和质量保证的国际标准。 A 质量控制 B 质量管理 C 质量策划 D 质量改进 13、CMM提供了一个框架,将软件过程改进的进化步骤组织成5个成熟度等级。除第1级外,每个等级都包含了实现该成熟度等级目标的若 干(B)。 A 关键实践 B 关键过程域 C 软件过程能力 D 软件过程 14、在软件开发的各种资源中,(D)是最重要的资源。 A 开发工具 B 方法 C 硬件环境 D 人员 15、软件的复杂性是(A),它引起人员通信困难、开发费用超支、开发时间超时等问题。 A 固有的 B 人为的 C 可消除的 D 不可降低的 16、在各种不同的软件需求中,(D)描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明。 A 业务需求 B 功能需求 C 非功能需求 D 用户需求 17、原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于(A)系统。 A 需求不确定的 B 需求确定的 C 管理信息 D 决策支持 18、(A)意味着一个操作在不同的类中可以有不同的实现方式。 A 多态性 B 多继承 C 类的可复用 D 信息隐蔽 19、时序图反映对象之间发送消息的时间顺序,它与(D)是同构的。 A 用例图 B 类图 C 活动图 D 协作图 20、单元测试的测试用例主要根据(D)的结果来设计。 A 需求分析 B 源程序 C 概要设计 D 详细设计 二、填空题 1、在学校中,一个学生可以选修多门课程,一门课程可以由多个学生选修,那么学生和课程之间是关联关系。 2、类A的一个操作调用类B的一个操作,且这两个类之间不存在其他关系,那么类A和类B之间是依赖关系。 3、用例及其协作之间是实现关系。 4、接口及其实现类或构件之间是实现关系。 5、动物与老虎之间是泛化关系。 三、问答题 1、软件复用的范围不仅仅涉及源程序代码,请至少列出5种可能复用的软件元素。 可复用的软件元素包括(选5种):项目计划、成本估计、体系结构、需求模型和规格说明、设计、用户文档和技术文档、用户界面、数据结构、测试用例。 2、传统"瀑布模型"的主要缺陷是什么?试说明造成缺陷的原因。 传统"瀑布模型"的主要缺陷及其原因:在项目的早期,用户常常很难清楚地给出所有需求,瀑布模型却要求如此。由于瀑布模型的特点,早

工程制图复习题及答案

工程制图复习题及答案The final revision was on November 23, 2020

工程制图复习题参考答案 一、填空题: 1.根据投射线的类型,投影法可分为中心投影法和平行投影法。 2.根据投射线与投影面是否垂直,平行投影法又可分为正投影法和斜投影法。 3.多面正投影图是工程中应用最广泛的一种图示方法。 4..点的三面投影规律是:①点的正面投影与点的水平投影的连线垂直于OX轴。②点的正面投影与点的侧面投影的连线垂直于OZ轴。③点的水平投影到OX轴的距离等于点的侧面投影到OZ轴的距离。 5. .在三投影面体系中直线与投影面的相对位置可分一般位置直线、投影面平行线和_ 投影面垂直线。 6空间两直线的相对位置可分为平行、相交、交叉和 垂直四种。 7. 空间两直线互相平行,则它们的同面投影也一定平行。 8. 空间两直线相交,则它们的同面投影也一定相交,而且各同 面投影的交点就是两直线空间交点的同面投影。 9.互相垂直的两直线中有一条平行某一投影面时,它们在该投影 面上的投影也反映直角。 10.在三投影面体系中平面与投影面的相对位置可分一般位置平面、投影面垂直面和投影面平行面。

11.在平面内取点和取线的关系是:欲在平面内取点,须先在平 面内取线,而欲在平面内取线,又须先在平面内取点。 12.直线与平面的相对位置有_平行__、相交_和_垂直___。 13.直线与平面相交求交点的方法有积聚性法和辅助线法。 14.平面与平面的相对位置有_平行__、相交_和_垂直。 15.平面与平面相交求交线的方法有积聚性法线面交点法和辅助平面法。 16在换面法中,新投影面的设立要符合下面两个基本条件 ①新的投影面必须与空间几何元素处于有利于解题的位置。 ②__新的投影面必须垂直于原有的一个投影面 __ 。 17将一般位置直线变换为投影面的垂直线要经过_二__ 次变换,先将一般位置直线变换为投影面平行线__,再将投影面平行线_ 变换为投影面垂直线。 18.将一般位置平面变换为投影面平行面要经过___二__ 次变换, 先将一般位置平面变换为_投影面垂直面__,再将投影面垂直面变换为投影面平行面。 19.在一般情况下,平面体的相贯线是封闭的空间折线。 20.相贯线可见性判定原则是:_当两立体的相交表面都可见时,交线才可见____。

《软件工程》作业及参考答案2

软件工程作业及参考答案 第三、四章 一、填空题 1.需求分析的基本任务是准确的回答(系统必须做什么)。 2.需求分析阶段研究的对象是软件项目的(用户要求)。 3.结构化分析方法就是(面向数据流)自顶向下逐步求精进行需求分析的方法。需求分析 的目的之一就是把数据流和数据存储定义到(元素级)。 4.数据流图的基本符号包括(数据输入的源点和数据输出的汇点)、(加工)、(数据流)、 (数据存储文件)。 5.数据流图和(数据字典)共同构成系统的逻辑模型。 6.数据字典的内容包括六项:(数据流)、(数据项)、(数据结构)、数据存储、处理逻辑、 外部实体。 7.在需求分析阶段常用的图形工具有(层次方框图)、(Warnier图)、(IPO图)。 8.需求分析应交付的主要文档是(需求规格说明书)。 9.概要设计过程中要先进行系统设计、(复审系统计划)与(需求分析),确定系统具体 的实施方案;然后进行(结构设计),确定软件结构。 10.层次结构的上一层是下一层的(抽象),下一层是上一层的(求精)。 11.模块独立的概念是(模块化)、(抽象)、(信息隐蔽)和局部化概念的直接结果。 12.模块耦合的强弱取决于(模块间接口的复杂程度)、(调用模块的方式)和通过接口的信 息。 13.设计出软件的初步结构以后,应该进一步分解或合并模块,力求降低(耦合)提高(内 聚)。 14.在一段程序中,将多次出现的一组语句设计为一个子程序,供多个部分调用,这种情况 出现的内聚称为(偶然内聚)。 15.一个模块直接调用的模块数目称为模块的(扇出),一个模块被多少上级模块直接调用 称为模块的(扇入)。 16.JSD是一种典型的(面向数据结构)的分析设计方法。 17.Jackson图除了可以表达(程序结构外)外,还可以表达数据结构。 18.对于下列伪码,画出改进的Jackson图() A seq B C D A end

软件工程试题及答案98695

软件工程 窗体顶端 1: 92.下面说法哪个不属于设计准则() 1.①提高模块的内聚,降低模块间的耦合 2.②降低模块接口的复杂程度 3.③模块大小要适中 4.④模块要有重用性 2:88.计算机的体系结构对程序设计语言具有() 1.①反作用 2.②促进作用 3.③抑制作用 4.④完善作用 3:79.程序图的作用是() 1.①定性度量软件的复杂程度 2.②定量度量软件的复杂程度 3.③预测软件的质量标准 4.④估计软件中的错误数量 4: 87.下面说法正确的是() 1.①模块的作用域在模块的控制域之内 2.②模块的控制域在模块的作用域之内 3.③模块的作用域和模块的控制域有时相同

4.④模块的作用域和模块的控制域都是一种层次结构5:94.等价类划分属于() 1.①白盒测试 2.②黑盒测试 3.③穷尽测试 4.④系统测试 6:90.软件维护组织包括() 1.①系统维护人员和系统管理人员 2.②系统程序员和硬件维护人员 3.③系统程序员和操作员 4.④打字员和软件工程师 7: 86.可行性研究阶段使用的图形工具是() 1.①DFD图 2.②N-S图 3.③PAD图 4.④Warnier图 8: 85.好的软件结构它的外观形状一般呈() 1.①线性 2.②扇形 3.③椭圆形 4.④层次型

9: 93.变换型结构的数据流呈() 1.①线性形状 2.②辐射状 3.③椭圆形 4.④阶梯形 10:78.结构化程序设计就是要() 1.①保留GOTO语句 2.②取消前转GOTO语句 3.③限制GOTO语句的使用 4.④取消后转GOTO语句 11: 89.若要保证开发出来的软件局部优化,而且能尽早发现设计上的错误,应采用() 1.①自顶向下的开发方法 2.②自底向上的开发方法 3.③渐增式的开发方法 4.④非渐增式的开发方法 12: 软件工程的七条基本原理中有一条是“坚持进行阶段评审”,要这么做的理由有(1 )。 ①大部分错误是在编码之前造成的 ②在软件开发过程中插入阶段评审是为了张弛有度、提高开发效率 ③错误发现得越晚,所付出的修正代价越高 ④为了便于控制开发进度 1.供选择的答案: 1.A. ①② 2.B. ①③

相关文档
最新文档