软件工程项目管理习题解答.docx

上传人:b****6 文档编号:12324896 上传时间:2023-06-05 格式:DOCX 页数:16 大小:30.71KB
下载 相关 举报
软件工程项目管理习题解答.docx_第1页
第1页 / 共16页
软件工程项目管理习题解答.docx_第2页
第2页 / 共16页
软件工程项目管理习题解答.docx_第3页
第3页 / 共16页
软件工程项目管理习题解答.docx_第4页
第4页 / 共16页
软件工程项目管理习题解答.docx_第5页
第5页 / 共16页
软件工程项目管理习题解答.docx_第6页
第6页 / 共16页
软件工程项目管理习题解答.docx_第7页
第7页 / 共16页
软件工程项目管理习题解答.docx_第8页
第8页 / 共16页
软件工程项目管理习题解答.docx_第9页
第9页 / 共16页
软件工程项目管理习题解答.docx_第10页
第10页 / 共16页
软件工程项目管理习题解答.docx_第11页
第11页 / 共16页
软件工程项目管理习题解答.docx_第12页
第12页 / 共16页
软件工程项目管理习题解答.docx_第13页
第13页 / 共16页
软件工程项目管理习题解答.docx_第14页
第14页 / 共16页
软件工程项目管理习题解答.docx_第15页
第15页 / 共16页
软件工程项目管理习题解答.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

软件工程项目管理习题解答.docx

《软件工程项目管理习题解答.docx》由会员分享,可在线阅读,更多相关《软件工程项目管理习题解答.docx(16页珍藏版)》请在冰点文库上搜索。

软件工程项目管理习题解答.docx

软件工程项目管理习题解答

2.如果一个程序有两个输入数据,每个输入都是一个32位的二进制整数,那么这个程序有多少个可能的输入?

如果每微秒可进行一次测试,那么对所有可能的输入进行测试需要多长时间?

答:

每个32位的二进制整数具有232个可能的值,因此,具有两个整数输入的程序应该具有264个可能的输入。

每微秒可进行一次测试,即每秒可进行106个测试,因此,每天可进行的测试数为:

60×60×24×106=8.64×1010

这等于每年大约可进行3.139×1013个测试。

因为210=1024≈103,所以264=(210)6.4≈1019.2。

,所以做完全部测试将至少需要105年(即10万年)。

4.设计下列伪码程序的语句覆盖和路径覆盖测试用例:

START

INPUT(A,B,C)

IFA>5

THENX=10

ELSEX=1

ENDIF

IFB>10

THENY=20

ELSEY=2

ENDIF

IFC>15

THENZ=30

ELSEZ=3

ENDIF

PRINT(X,Y,Z)

STOP

答:

(1)语句覆盖的测试用例

因为每个判定表达式为真或为假时均有赋值语句,为了使每个语句都至少执行一次,总共需要两组测试数据,以便使得每个判定表达式取值为真或为假各一次。

下面是实现语句覆盖的典型测试用例:

①使3个判定表达式之值全为假

输入:

A=1,B=1,C=1

预期的输出:

X=1,Y=2,Z=3

②使3个判定表达式之值全为真

输入:

A=20,B=40,C=60

预期的输出:

X=10,Y=20,Z=30

(2)路径覆盖的测试用例

本程序共有8条可能的执行通路,为做到路径覆盖总共需要8组测试数据。

下面是实现路径覆盖的典型测试用例:

①3个判定表达式之值全为假

输入:

A=1,B=1,C=1

预期的输出:

X=1,Y=2,Z=3

②3个判定表达式依次为假、假、真

输入:

A=1,B=1,C=60

预期的输出:

X=1,Y=2,Z=30

③3个判定表达式依次为假、真、假

输入:

A=1,B=40,C=1

预期的输出:

X=1,Y=20,Z=3

④3个判定表达式依次为假、真、真

输入:

A=1,B=40,C=60

预期的输出:

X=1,Y=20,Z=30

⑤3个判定表达式依次为真、假、假

输入:

A=20,B=1,C=1

预期的输出:

X=10,Y=2,Z=3

⑥3个判定表达式依次为真、假、真

输入:

A=20,B=1,C=60

预期的输出:

X=10,Y=2,Z=30

⑦3个判定表达式依次为真、真、假

输入:

A=20,B=40,C=1

预期的输出:

X=10,Y=20,Z=3

⑧3个判定表达式全为真

输入:

A=20,B=40,C=60

预期的输出:

X=10,Y=20,Z=30

6.使用基本路径测试方法,设计测试下面列出的伪码程序的测试用例:

1:

START

INPUT(A,B,C,D)

2:

IF(A>0)

3:

AND(B>0)

4:

THENX=A+B

5:

ELSEX=A-B

6:

END

7:

IF(C>A)

8:

OR(D>B)

9:

THENY=C-D

10:

ELSEY=C+D

11:

END

12:

PRINT(X,Y)

STOP

答:

用基本路径测试方法设计测试用例的过程,有下述4个步骤:

(1)根据过程设计的结果画出流图

与本题给出的伪码程序相对应的流图如图4.1所示。

图4.1与第6题伪码程序对应的流图

(2)计算流图的环形复杂度

使用下述3种方法中的任一种都可以算出图4.1所示流图的环形复杂度为5。

1该流图共有15条边,12个结点,所以环形复杂度为

15-12+2=5

②该流图共有5个区域,因此环形复杂度为5。

③该流图中共有4个判定结点,因此环形复杂度为

4+1=5

(3)确定线性独立的路径的基本集合

所谓线性独立路径是指至少引入程序的一个新语句集合或一个新条件的路径,用流图术语来描述,独立路径至少包含一条在定义该路径之前不曾用过的边。

使用基本路径测试法设计测试用例时,程序的环形复杂度决定了程序中独立路径的数量,而且这个数值是确保程序中所有语句至少被执行一次所需的测试数量的上界。

对于图4.1所示流图来说,由于它的环形复杂度为5,因此共有5长独立路径。

下面列出了5条独立路径:

路径1:

1—2—3—4—6—7—9—11—12

路径2:

1—2—5—6—7—9—11—12

路径3:

1—2—3—5—6—7—9—11—12

路径4:

1—2—3—4—6—7—8—9—11—12

路径5:

1—2—3—4—6—7—8—10—11—12

(4)设计可强制执行基本路径的测试用例

①执行路径1(两个判定表达式全为真)

输入:

A=1,B=1,C=2,D=2(任意)

预期的输出:

X=2,Y=0

②执行路径2(第一个判定表达式为假,第二个判定表达式为真)

输入:

A=0,B=1,C=2,D=0(任意)

预期的输出:

X=-1,Y=2

③执行路径3(第一个判定表达式为假,第二个判定表达式为真)

输入:

A=1,B=0,C=2,D=2(任意)

预期的输出:

X=1,Y=2

④执行路径4(两个判定表达式全为真)

输入:

A=1,B=1,C=0,D=-1

预期的输出:

X=2,Y=1

⑤执行路径5(第一个判定表达式为假,第二个判定表达式为真)

输入:

A=1,B=1,C=0,D=2(任意)

预期的输出:

X=2,Y=2

第十章习题

1.下面叙述对一个计算机辅助设计(CAD)软件的需求:

该CAD软件接受由工程师提供的二维或三维几何图形数据。

工程师通过用户界面与CAD系统交互并控制它,该用户界面应该表现出良好的人机界面设计特征。

几何图形数据及其他支持信息都保存在一个CAD数据库中。

开发必要的分析、设计模块,以产生所需要的设计结果,这些输出将显示在各种不同的图形设备上。

应该适当地设计软件,以便与外部设备交互并控制它们。

所用的外部设备包括鼠标、数字化扫描仪和激光打印机。

要求:

(1)进一步精化上述要求,把CAD软件的功能分解成若干个子功能;

(2)用代码行技术估算每个子功能的规模;

(3)用功能点技术估算每个子功能的规模;

(4)从历史数据得知,开发这类系统的平均生产率是620LOC/PM,如果软件工程师的平均月工资是8000元,请估算开发本系统的工作量和成本。

(5)如果从历史数据得知,开发这类系统的平均生产率是6.5FP/PM,请估算开发本系统的工作量和成本。

答:

(1)习题中仅对需求做出了粗略描述,每项都都应该进一步扩展,以提供细节需求和定量约束。

例如,在开始估算软件规模之前,需要确定“良好的人机界面设计特征”的具体含义,以及对“CAD数据库”的规模和复杂度的具体需求。

经过对需求的进一步精化,分解出软件的下述7个主要的子功能:

•用户界面及控制机制;

•二维几何图形分析;

•三维几何图形分析;

•数据库管理;

•计算机图形显示机制;

•外部设备控制;

•设计分析模块。

(2)为了用代码行技术估算软件规模,应该针对每个子功能都分别估计出下述3个值:

乐观值(即最小规模a),悲观值(即最大规模b)和可能值(即最可能规模m)。

分别算出这3种规模的平均值,然后用下式的加权平均法计算每个子功能规模,结果示于表10.4

表10.4代码行技术的估算表

功能

乐观值

可能值

悲观值

估计值

用户界面及控制机制

二维几何图形分析

三维几何图形分析

数据库管理

计算机图形显示机制

外部设备控制

设计分析模块

估算出的总代码行数

1500

3800

4600

1850

3100

1400

6200

2200

5400

6900

3200

4900

2150

8500

3500

6400

8600

5450

7000

2600

10200

2300

5300

6800

3350

4950

2100

8400

33200

(3)使用功能点技术估算软件规模时,对软件的分解是基于信息域特性而不是基于软件功能。

表10.5给出了对5个信息域特征的估计值。

为了计算未调整的功能点数,假设每个信息域都是平均级的。

接下来估计14个技术复杂性因素的值,并且计算DI的值,表10.6列出了得到的结果。

表10.5估算调整的功能点数

功能

乐观值

可能值

悲观值

估计值

特性系数

UFP数

输入数

输出数

查询数

文件数

外部接口数

总计数值

20

12

16

4

2

24

15

22

4

2

30

22

28

5

3

24

16

2

4

2

4

5

4

10

7

96

80

88

40

14

318

表10.6估算复杂性因素

因素

估计值

因素

估计值

数据通信

分布式数据处理

性能标准

高负荷硬件

高处理率

联机数据输入

终端用户效率

联机更新

2

0

4

2

4

4

4

3

复杂的计算

可重用性

安装方便

操作方便

可移植性

可维护性

DI

5

4

3

4

5

5

49

然后用下式计算技术复杂性因子:

TCF=0.65+0.01×DI

=1.14

最后计算功能点数

FP=UFP×TCP

=31×1.14

=363

(4) 用代码行估算,开发本系统的工件量为

    E=33200/620

≈54(人月)

开发本系统的成本为

8000×54=432000(元)

(5)用功能点技术估算,开发本系统的工作量为

E=363/6.5

≈56(人月)

开发本系统的成本为

8000×56=448000(元)

2.计算下述的牙科诊所预约系统的未调整功能点数;

王大夫在小镇上开了一家牙科诊所。

他有一个牙科助手、一个牙科保健员和一个接待员。

王大夫需要一个软件系统来管理预约。

当病人打电话预约时,接待员将查阅预约登记表,如果病人申请的就诊时间与已定下的预约时间冲突,则接待员建议一个就诊时间以安排病人尽早得到诊治。

如果病人同意建议的就诊时间,接待员将输入约定时间和病人的名字。

系统将核实病人的名字并提供记录的病人数据,数据包括病人的病历号等。

在每次治疗或清洗后,助手或保健员将标记相应的预约诊治已经完成,如果必要的话会安排病人下一次再来。

系统能够按病人姓名和按日期进行查询,能够显示记录的病人数据和预约信息。

接待员可以取消预约,可以打印出前两天预约尚未接诊的病人清单。

系统可以从病人记录中获知病人的电话号码。

接待员还可以打印出关于所有病人的每天和每周的工作安排。

答:

输入数据有“病人名”、“预约时间”、“完成的预约”和“取消预约”,其中前3项链的复杂级别为“简单”,第4项的复杂度级别为“平均”。

输出数据有“病情说明”(简单复杂度)、“预约登记表”、“支持细节”、“预约信息”、“未就诊病人清单”(以上4项复杂度级别为“平均”)、“日安排”和“周安排”(以上2项复杂度级别为“复杂”)。

查询有“按名字查询”、“按日期查询”(这2项复杂度为“简单”)、“核实病人”、“查看预约登记表”和“查看完成的预约”(以上3项的复杂度为“平均”)。

文件有“病人记录”,其复杂度为“平均”级别。

本系统无外部接口。

最后,用下式计算未调整的功能点数

UFP=3×3+1×4+1×4+4×5+2×7+2×3+3×4+1×10

=79

9.假设你被指定为项目负责人,你的任务是开发一个应用系统,该系统类似于你的小组以前做过的那些系统,只不过规模更大且更复杂一些。

客户已经写出了完整的需求文档。

你将选用哪种项目组结构?

为什么?

你打算采用哪种软件过程模型?

为什么?

答:

由于待开发的应用系统类似于以前做过的系统,开发人员已经积累了较丰富的经验,没有多少技术难题需要攻克。

为了减少通信开销,充分发挥技术骨干的作用,统一意志统一行动,提高生产率,加快开发进度,项目组的组织结构以基于主程序员组的形式为宜。

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

10.一个程序能既正确又不可靠吗?

请解释你的答案。

答:

所谓软件可靠性,是程序在给定的时间间隔内按照规格说明书的规定成功地运行的概率。

通常认为,软件可靠性既包含正确性又包含健壮性,也就是说,不仅在预定环境下程序应该能正确地完成预期功能,而且在硬件发生故障、输入的数据无效或用户操作错误等意外环境下,程序也应该能做出适当的响应。

如果一个程序在预定环境下能够正确地完成预期的功能,但是在意外环境下不能做出适当的响应,则该程序就是既正确又不可靠。

11.为什么在开发软件的过程中变化既是必要的又是不可避免的?

为什么必须进行配置管理?

答:

在开发软件开发的过程中,下述原因会导致软件配置项发生变化;

·新的市场条件导致产品需求或业务规则发生变化。

·客户提出了新需求,要求修改信息系统产生的数据或产品提供的功能。

·企业改组或业务缩减,引起项目优先级或软件工程队伍结构变化。

·预算或进度限制,导致对目标系统的重新定义。

·发现了在软件开发过程的前期阶段所犯的错误,必须加以改正。

但是,变化也很容易失去控制,如果不能适当地管理和管制变化,必然会造成混乱并产生许多严重的错误。

软件配置管理就是在软件的整个生命期内管理和控制变化的一组活动。

可以把软件配置管理看作是应用于整个软件过程的软件质量保证活动,是专门用来管理和控制变化的软件质量保证活动。

软件配置管理的目标是:

使变化更正确且更容易被适应,在必须变化时减少为此而花费的工作量。

从上面的叙述可以知道,软件配置管理是十分必要的。

12.CMM的基本思想是什么?

为什么要把能力成熟度划分成5个等级?

答:

CMM的基本思想是,由于软件危机是因我们对软件过程管理不善而引起的,所以新软件技术的运用并不会自动提高软件的生产率和质量,提高软件生产率和软件质量的关键,是改进对软件过程的管理。

能力成熟度模型有助于软件开发机构建立一个有规律的、成熟的软件过程。

对软件过程的改进不可能一蹴而就,只能是在完成一个又一个小的改进步骤基础上不断进行的渐进过程。

因此,CMM把软件过程从无序到有序的进化过程分成5个阶段,并把这些阶段排序,形成5个成熟度等级定义了一个有序的尺度,用以测量软件机构的软件过程成熟度和评价其软件过程成熟度和评价其软件过程能力,这些等级还能帮助软件机构识别出其现有的软件过程的缺陷,指出应该做哪些改进,并且帮助他们把应做的改进工作排出优先次序。

成熟度等级是妥善定义的向成熟软件机构前进途中的平台,每个成熟度等级都为软件过程的继续改进提供了一个台阶。

 

例:

要开发一个计算机辅助设计软件,该CAD软件的需求如下:

该CAD软件接受由工程师提供的二维或三维几何图形数据。

工程师通过用户界面与CAD系统交互并控制它,该用户界面应该表现出良好的人机界面设计特征。

几何图形数据及其他支持信息都保存在一个CAD数据库中。

开发必要的分析、设计模块,以产生所需要的设计结果,这些输出将显示在各种不同的图形设备上。

应该适当地设计软件,以便与外部设备交互并控制它们。

所用的外部设备包括鼠标、数字化扫描仪和激光打印机。

要求:

(1)进一步精化上述要求,把CAD软件的功能分解成若干个子功能;

(2)用代码行技术估算每个子功能的规模;

(3)用功能点技术估算每个子功能的规模;

(4)从历史数据得知,开发这类系统的平均生产率是620LOC/PM,如果软件工程师的平均月工资是8000元,请估算开发本系统的工作量和成本。

(5)如果从历史数据得知,开发这类系统的平均生产率是6.5FP/PM,请估算开发本系统的工作量和成本。

解析:

(1)在需求描述中对需求描述比较粗略,每项都应该进一步扩展,以提供细节需求和定量约束。

例如,在开始估算软件规模之前,需要确定“良好的人机界面设计特征”的具体含义,以及对“CAD数据库”的规模和复杂度的具体需求。

经过对需求的进一步精化,分解出软件的下述7个主要的子功能:

●用户界面及控制机制;

●二维几何图形分析;

●三维几何图形分析;

●数据库管理;

●计算机图形显示机制;

●外部设备控制;

●设计分析模块。

(2)为了用代码行技术估算软件规模,应该针对每个子功能都分别估计出下述3个值:

乐观值(即最小规模a),悲观值(即最大规模b)和可能值(即最可能规模m)。

分别算出这3种规模的平均值,然后用下式的加权平均法计算每个子功能规模,结果如表9-5所示。

表9-5代码行技术的估算表

功能

乐观值

可能值

悲观值

估计值

用户界面及控制机制

二维几何图形分析

三维几何图形分析

数据库管理

计算机图形显示机制

外部设备控制

设计分析模块

估算出的总代码行数

1500

3800

4600

1850

3100

1400

6200

2200

5400

6900

3200

4900

2150

8500

3500

6400

8600

5450

7000

2600

10200

2300

5300

6800

3350

4950

2100

8400

33200

(3)使用功能点技术估算软件规模时,对软件的分解是基于信息域特性而不是基于软件功能。

表9-6给出了对5个信息域特征的估计值。

为了计算未调整的功能点数,假设每个信息域都是平均级的。

接下来估计14个技术复杂性因素的值,并且计算DI的值,表9-7列出了得到的结果。

表9-6估算调整的功能点数

功能

乐观值

可能值

悲观值

估计值

特性系数

UFP数

输入数

输出数

查询数

文件数

外部接口数

总计数值

20

12

16

4

2

24

15

22

4

2

30

22

28

5

3

24

16

2

4

2

4

5

4

10

7

96

80

88

40

14

318

表9-7估算复杂性因素

因素

估计值

因素

估计值

数据通信

分布式数据处理

性能标准

高负荷硬件

高处理率

联机数据输入

终端用户效率

联机更新

2

0

4

2

4

4

4

3

复杂的计算

可重用性

安装方便

操作方便

可移植性

可维护性

DI

5

4

3

4

5

5

49

然后用下式计算技术复杂性因子:

TCF=0.65+0.01×DI

=1.14

最后计算功能点数

FP=UFP×TCP

=31×1.14

=363

(4)用代码行估算,开发本系统的工件量为

E=33200/620

≈54(人月)

开发本系统的成本为

8000×54=432000(元)

(5)用功能点技术估算,开发本系统的工作量为

E=363/6.5

≈56(人月)

开发本系统的成本为

8000×56=448000(元)

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

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2