软件工程项目管理习题解答_第1页
软件工程项目管理习题解答_第2页
软件工程项目管理习题解答_第3页
软件工程项目管理习题解答_第4页
软件工程项目管理习题解答_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、2.如果一个程序有两个输入数据,每个输入都是一个32位的二进制整数,那么这个程序有多少个可能的输入?如果每微秒可进行一次测试,那么对所有可能的输入进行测试需要多长时间?答:每个32位的二进制整数具有232个可能的值,因此,具有两个整数输入的程序应该具有264个可能的输入。每微秒可进行一次测试,即每秒可进行106个测试,因此,每天可进行的测试数为:60 X 60 X 24X 106=8.64 X 1010这等于每年大约可进行 3.139 X 1013个测试。因为 210=1024 103,所以 264=(210)6.4 疋 1019.2。19.2 页105,所以做完全部测试将至少需要105年(即

2、10万年)。3.139 104 设计下列伪码程序的语句覆盖和路径覆盖测试用例:STARTINPUT(A,B,C)IF A>5THEN X=10ELSE X=1END IFIF B>10THEN Y=20ELSE Y=2END IFIF C>15THEN Z=30ELSE Z=3END IFPRINT(X,Y,Z)STOP答:(1)语句覆盖的测试用例因为每个判定表达式为真或为假时均有赋值语句,为了使每个语句都至少执行一次,总共需要两组测试数据,以便使得每个判定表达式取值为真或为假各一次。下面是实现语句覆盖的典型测试用例: 使3个判定表达式之值全为假输入:A=1, B=1, C=

3、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,

4、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=306. 使用基

5、本路径测试方法 , 设计测试下面列出的伪码程序的测试用例1:STARTINPUT(A,B,C,D)2:IF(A>0)3:AND(B>0)4:THEN X=A+B5:ELSE X=A-B6:END7:IF(C>A)8:OR(D>B)9:THEN Y=C-D10:ELSE Y=C+D11:END12:PRINT(X,Y)STOP答:用基本路径测试方法设计测试用例的过程,有下述 4 个步骤:(1) 根据过程设计的结果画出流图与本题给出的伪码程序相对应的流图如图 4.1 所示。7.9810 .1112O图4.1与第6题伪码程序对应的流图(2)计算流图的环形复杂度使用下述3种方法

6、中的任一种都可以算出图4.1所示流图的环形复杂度为5。 该流图共有15条边,12个结点,所以环形复杂度为15-12+2=5 该流图共有5个区域,因此环形复杂度为5。 该流图中共有4个判定结点,因此环形复杂度为4+1=5(3)确定线性独立的路径的基本集合所谓线性独立路径是指至少引入程序的一个新语句集合或一个新条件的路径,用流图 术语来描述,独立路径至少包含一条在定义该路径之前不曾用过的边。使用基本路径测试法设计测试用例时,程序的环形复杂度决定了程序中独立路径的数 量,而且这个数值是确保程序中所有语句至少被执行一次所需的测试数量的上界。对于图4.1所示流图来说,由于它的环形复杂度为5,因此共有5长

7、独立路径。下面列出了 5条独立路径:路径 1: 1 2 34 6 79 11 12路径 2: 1 2 56 7 9 11 12路径 3: 1 2 35 6 79 11 12路径 4: 1 2 34 6 78 911 12 路径 5: 1 2 34 6 78 1011 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 (第一个判

8、定表达式为假,第二个判定表达式为真)输入: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系统交互并控制它,该用户界面应该表现出良好的人机界面设计特征。几何图形数据及其他支持信息都保存在

9、一个 CAD数据库中。开发必要的分析、设计模块,以产生所需要的设计结 果,这些输出将显示在各种不同的图形设备上。应该适当地设计软件,以便与外部设备交互并控制它们。所用的外部设备包括鼠标、数字化扫描仪和激光打印机。要求:(1) 进一步精化上述要求,把 CAD软件的功能分解成若干个子功能;(2)用代码行技术估算每个子功能的规模;(3)用功能点技术估算每个子功能的规模;(4) 从历史数据得知,开发这类系统的平均生产率是620LOC/PM如果软件工程师的 平均月工资是8000元,请估算开发本系统的工作量和成本。(5) 如果从历史数据得知,开发这类系统的平均生产率是6.5FP/PM,请估算开发本 系统的

10、工作量和成本。答:(1)习题中仅对需求做出了粗略描述,每项都都应该进一步扩展,以提供细节需求 和定量约束。例如,在开始估算软件规模之前,需要确定“良好的人机界面设计特征”的具 体含义,以及对“ CAD数据库”的规模和复杂度的具体需求。经过对需求的进一步精化,分解出软件的下述7个主要的子功能:?用户界面及控制机制;?二维几何图形分析;? 三维几何图形分析;?数据库管理;?计算机图形显示机制;?外部设备控制;?设计分析模块。(2) 为了用代码行技术估算软件规模,应该针对每个子功能都分别估计出下述3个 值:乐观值(即最小规模 a),悲观值(即最大规模 b)和可能值(即最可能规模 m) 分别算出这3种

11、规模的平均值,然后用下式的加权平均法计算每个子功能规模,结果示于表10.4a 4m b6表10.4代码行技术的估算表功能乐观值可能值悲观值估计值用户界面及控制机制1500220035002300二维几何图形分析3800540064005300三维几何图形分析4600690086006800数据库管理1850320054503350计算机图形显示机制3100490070004950外部设备控制1400215026002100设计分析模块62008500102008400估算岀的总代码行数33200(3)使用功能点技术估算软件规模时,对软件的分解是基于信息域特性而不是基于软件功能。表10.5给出了

12、对5个信息域特征的估计值。为了计算未调整的功能点数,假设每个 信息域都是平均级的。接下来估计14个技术复杂性因素的值,并且计算DI的值,表10.6列出了得到的结果。表10.5估算调整的功能点数功能乐观值可能值悲观值估计值特性系数UFP数输入数20243024496输出数12152216580查询数1622282488文件数44541040外部接口数 总计数值2232714318表10.6估算复杂性因素因素估计值因素估计值数据通信2复杂的计算5分布式数据处理0可重用性4性能标准4安装方便3高负荷硬件2操作方便4高处理率4可移植性5联机数据输入4可维护性5终端用户效率4DI49联机更新3然后用下式

13、计算技术复杂性因子:TCF = 0.65+ 0.01 >DI=1.14最后计算功能点数FP = UFPXTCP=31>.14=363(4) 用代码行估算,开发本系统的工件量为E= 33200/620沁54(人月)开发本系统的成本为8000X54= 432000 (元)(5)用功能点技术估算,开发本系统的工作量为E= 363/6.5 56(人月)开发本系统的成本为8000X56= 448000(元)2计算下述的牙科诊所预约系统的未调整功能点数; 王大夫在小镇上开了一家牙科诊所。他有一个牙科助手、一个牙科保健员和一个接待 员。王大夫需要一个软件系统来管理预约。当病人打电话预约时,接待员

14、将查阅预约登记表,如果病人申请的就诊时间与已定下 的预约时间冲突, 则接待员建议一个就诊时间以安排病人尽早得到诊治。 如果病人同意建议 的就诊时间, 接待员将输入约定时间和病人的名字。 系统将核实病人的名字并提供记录的病 人数据, 数据包括病人的病历号等。 在每次治疗或清洗后, 助手或保健员将标记相应的预约 诊治已经完成,如果必要的话会安排病人下一次再来。系统能够按病人姓名和按日期进行查询,能够显示记录的病人数据和预约信息。接待 员可以取消预约, 可以打印出前两天预约尚未接诊的病人清单。 系统可以从病人记录中获知 病人的电话号码。接待员还可以打印出关于所有病人的每天和每周的工作安排。答:输入数

15、据有“病人名”、 “预约时间” 、“完成的预约”和“取消预约” ,其中前 3 项链的复杂级别为“简单” ,第 4 项的复杂度级别为“平均” 。输出数据有“病情说明” (简单复杂度) 、“预约登记表” 、“支持细节” 、“预约信息” 、 “未就诊病人清单” (以上 4 项复杂度级别为“平均” )、“日安排”和“周安排” (以上 2项 复杂度级别为“复杂” )。查询有“按名字查询” 、“按日期查询” (这 2项复杂度为“简单” ) 、“核实病人”、“查 看预约登记表”和“查看完成的预约” (以上 3 项的复杂度为“平均” )。文件有“病人记录” ,其复杂度为“平均”级别。本系统无外部接口。 最后,

16、用下式计算未调整的功能点数UFP= 3X 3 + 1X 4+ 1 X 4 + 4X 5+ 2 X 7 + 2X 3+ 3 X 4+ 1X 10= 799假设你被指定为项目负责人, 你的任务是开发一个应用系统, 该系统类似于你的小 组以前做过的那些系统,只不过规模更大且更复杂一些。客户已经写出了完整的需求文档。 你将选用哪种项目组结构?为什么?你打算采用哪种软件过程模型?为什么?答:由于待开发的应用系统类似于以前做过的系统,开发人员已经积累了较丰富的经 验,没有多少技术难题需要攻克。为了减少通信开销,充分发挥技术骨干的作用, 统一意志 统一行动,提高生产率,加快开发进度,项目组的组织结构以基于主

17、程序员组的形式为宜。针对待开发的系统,客户已经写出了完整的需求文档,项目组又有开发类似系统的经 验,因此,可以采用广大软件工程师熟悉的瀑布模型来开发本系统。10 一个程序能既正确又不可靠吗?请解释你的答案。 答:所谓软件可靠性,是程序在给定的时间间隔内按照规格说明书的规定成功地运行 的概率。通常认为, 软件可靠性既包含正确性又包含健壮性, 也就是说,不仅在预定环境下 程序应该能正确地完成预期功能, 而且在硬件发生故障、 输入的数据无效或用户操作错误等 意外环境下,程序也应该能做出适当的响应。如果一个程序在预定环境下能够正确地完成预期的功能,但是在意外环境下不能做出适当的响应,则该程序就是既正确

18、又不可靠。11为什么在开发软件的过程中变化既是必要的又是不可避免的?为什么必须进行配 置管理?答:在开发软件开发的过程中,下述原因会导致软件配置项发生变化;新的市场条件导致产品需求或业务规则发生变化。客户提出了新需求,要求修改信息系统产生的数据或产品提供的功能。企业改组或业务缩减,引起项目优先级或软件工程队伍结构变化。预算或进度限制,导致对目标系统的重新定义。发现了在软件开发过程的前期阶段所犯的错误,必须加以改正。但是,变化也很容易失去控制,如果不能适当地管理和管制变化,必然会造成混乱并 产生许多严重的错误。软件配置管理就是在软件的整个生命期内管理和控制变化的一组活 动。可以把软件配置管理看作

19、是应用于整个软件过程的软件质量保证活动,是专门用来管理和控制变化的软件质量保证活动。软件配置管理的目标是:使变化更正确且更容易被适应, 在必须变化时减少为此而花费的工作量。 从上面的叙述可以知道, 软件配置管理是十分必要 的。12. CMM勺基本思想是什么?为什么要把能力成熟度划分成 5个等级?答:CMM的基本思想是,由于软件危机是因我们对软件过程管理不善而引起的,所以 新软件技术的运用并不会自动提高软件的生产率和质量,提高软件生产率和软件质量的关 键,是改进对软件过程的管理。 能力成熟度模型有助于软件开发机构建立一个有规律的、 成 熟的软件过程。对软件过程的改进不可能一蹴而就,只能是在完成一

20、个又一个小的改进步骤基础上不 断进行的渐进过程。因此,CMM巴软件过程从无序到有序的进化过程分成5个阶段,并把这些阶段排序,形成 5 个成熟度等级定义了一个有序的尺度,用以测量软件机构的软件过程 成熟度和评价其软件过程成熟度和评价其软件过程能力, 这些等级还能帮助软件机构识别出 其现有的软件过程的缺陷, 指出应该做哪些改进, 并且帮助他们把应做的改进工作排出优先 次序。成熟度等级是妥善定义的向成熟软件机构前进途中的平台,每个成熟度等级都为软件过程的继续改进提供了一个台阶。例:要开发一个计算机辅助设计软件,该CAD软件的需求如下:该CA软件接受由工程师提供的二维或三维几何图形数据。工程师通过用户

21、界面与 CAD系统交互并控制它, 该用户界面应该表现出良好的人机界面设计特征。 几何图形数据及其他 支持信息都保存在一个 CAD数据库中。开发必要的分析、设计模块,以产生所需要的设计结 果,这些输出将显示在各种不同的图形设备上。 应该适当地设计软件, 以便与外部设备交互 并控制它们。所用的外部设备包括鼠标、数字化扫描仪和激光打印机。要求:(1) 进一步精化上述要求,把 CAD软件的功能分解成若干个子功能;(2) 用代码行技术估算每个子功能的规模;(3) 用功能点技术估算每个子功能的规模;(4) 从历史数据得知,开发这类系统的平均生产率是620LOC/PM如果软件工程师的平均月工资是 8000

22、元,请估算开发本系统的工作量和成本。(5) 如果从历史数据得知,开发这类系统的平均生产率是6.5FP/PM,请估算开发本系统的工作量和成本。解析: (1) 在需求描述中对需求描述比较粗略,每项都应该进一步扩展,以提供细节需求和定量约束。例如,在开始估算软件规模之前,需要确定“良好的人机界面设计特征” 的具体含义,以及对“ CAD数据库”的规模和复杂度的具体需求。经过对需求的进一步精化,分解出软件的下述7个主要的子功能:用户界面及控制机制;二维几何图形分析;三维几何图形分析;数据库管理;计算机图形显示机制;外部设备控制;设计分析模块。(2)为了用代码行技术估算软件规模,应该针对每个子功能都分别估计出下述3个值:乐观值(即最小规模a),悲观值(即最大规模b)和可能值(即最可能规模 m)。分别算出 这3种规模的平均值,然后用下式的加权平均法计算每个子功能规模,结果如表9-5所示。L a 4m bL 6表9- 1代码行技

温馨提示

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

评论

0/150

提交评论