手机网站页面如何制作,企业网站建设找哪家,phpcms做双语网站,网页设计作业的英文chap02 软件项目管理
1.代码行度量与功能点度量的比较
1.规模度量
是一种直接度量方法。
代码行数 LOC或KLOC 生产率 P1L/E 其中 L 软件项目代码行数 E 软件项目工作量#xff08;人月 PM#xff09; P1 软件项目生产率#xff08;LOC/PM#xff09; 代码出错…chap02 软件项目管理
1.代码行度量与功能点度量的比较
1.规模度量
是一种直接度量方法。
代码行数 LOC或KLOC 生产率 P1L/E 其中 L 软件项目代码行数 E 软件项目工作量人月 PM P1 软件项目生产率LOC/PM 代码出错率 EQR1Ne/L 其中 Ne 软件项目的代码错误数 EQR1 每千行代码的错误数 每行代码平均成本 C1S/L 其中 S 软件项目总开销元美元 C1 软件项目每行代码的平均成本 文档与代码比 D1Pd/L 其中 Pd 软件项目文档页数 D1 每千行代码的平均文档数 用软件代码行数估算软件规模简单易行。
缺点
代码行数的估算依赖于程序设计语言的功能和表达能力
采用代码行估算方法会对设计精巧的软件项目产生不利的影响
在软件项目开发前或开发初期估算它的代码行数十分困难
代码行估算只适用于过程式程序设计语言对非过程式的程序设计语言不太适用等等。
2.面向功能的度量
涉及多因素的间接度量方法在欧共体使用较多。 FPCT*0.650.01*∑Fi (2-5) 其中CT按表2.3计算 Fi 是复杂性调节值 Fi 取值 0,1,...,5 当 Fi 0 时表示 Fi 不起作用 Fi 5 时表示 Fi 作用最大 表2.3 功能点度量
测量参数 值权值用户输入数 □*4□用户输出数 □*5□用户查询数 □*4□文件数□*7□外部界面数□*7□CT□
表2.3中的五个信息量按下列方式取值 u 用户输入数 用户为软件提供的输入参数个数 u 用户输出数 软件系统为用户提供的输出参数个数 u 用户查询数 一个联机输入确定一次查询软件以联机输出的形式,实时地产生一个响应 u 文件数 统计逻辑的主文件个数 u 外部界面数 统计所有机器可读的界面利用这些界面可将信息从一个系统传送到另一个 计算技术复杂性因子TCF(了解 Fi(1≤i≤14)的取值为不存在或对软件规模无影响有很大影响
用功能点定义的概念 生产率 PfFP/E (2-6) 其中Pf表示每人月完成的功能点数 软件规模的功能点度量没有直接涉及软件系统本身的算法复杂性。1986年Jones把软件项目中的算法复杂性因素引入到功能点计算中来为了避免混淆我们把Albrecht定义的功能点称为简单功能点用FPs表示把Jones推广的功能点称为功能点用FP表示。推广的功能点包括计算机程序中用于各类问题求解的算法因素如求解线性代数方程组、遍历二叉树的各个结点、处理中断等等。功能点计算仍用公式(2-5),其中CT按表2.5计算。
表2.5 功能点度量
测量参数 值权值用户输入数 □*4□用户输出数 □*5□用户查询数 □*4□文件数□*7□外部界面数□*7□算法□*3□CT□
优点
①与程序设计语言无关它不仅适用于过程式语言也适用于非过程式的语言
②软件项目开发初期就能基本上确定系统的输入、输出等参数功能点度量能用于软件项目的开发初期。
缺点
①它涉及到的主观因素比较多如各种权函数的取值
②信息领域中的某些数据有时不容易采集
③FP的值没有直观的物理意义。
3.代码行度量与功能点度量的比较
代码行度量依赖于程序设计语言而功能点度量不依赖于程序设计语言。Albrecht和Jones等人对若干软件采用事后处理的方式分别统计出不同程序设计语言每个功能点与代码行数的关系用LOC/FP的平均值表示。表2.6表明一行Ada语言代码的“功能”平均是一行FORTRAN语言代码“功能”的1.4倍。一行四代语言代码的“功能”平均是一行传统程序设计语言代码“功能”的3至5倍.
表2.6 各种语言的LOC/FP(平均值)
程序设计语言 LOC/FP(平均值) 汇编语言300COBOL 100FORTRAN100Pascal90Ada70面向对象的语言 30四代语言(4GL) 20代码生成器15
2.软件项目估算中的通讯工作量如何计算
常用的估算方法
①参照已经完成的类似项目估算待开发项目的成本和工作量。
②将大的项目分解成若干子项目在估算出每个子项目成本和工作量之后再估算整个项目。
③将软件项目按软件生存周期分解分别估算出软件项目在软件开发各个阶段的工作量和成本然后再把这些工作量和成本汇总估算整个项目。
④根据实验或历史数据给出软件项目工作量或成本的经验估算公式。
软件项目的规模是影响软件项目成本和工作量的重要因素。
软件项目代码行和功能点估算是成本和工作量估算的基础。 采用上述四种估算方法可以估算出LOC 或 FP 的 乐观值 a 悲观值 b 和一般值 m 然后根据下列加权公式计算出期望值 e(a4mb)6 (2-10) 希望LOC或FP的值落在区间a,b之外的概率极小
当LOC或FP的期望值估算出来之后根据以前软件项目开发的平均生产率LOC/PM或FP/PM就可以计算出工作量。 如软件项目的规模估算为310FP以前完成的软件项目的生产率为5.5FP/PM于是工作量估算为E310/5.556PM。 如果当前估算的软件子项目比以前完成的项目 复杂 那么所用的生产率值可以 低于平均生产率 反之也可以高于平均生产率。 经验估算模型之一 CoCoMo模型 1981年 Boehm 提出“构造性成本模型”( Constructive Cost Model) 简称 CoCoMo 模型。它是在 静态、单变量模型 的基础上构造出来的。 CoCoMo模型分为 基本、中间、详细 三个层次分别用于软件开发的三个不同阶段。 基本CoCoMo模型 用于系统开发的初期估算整个系统的工作量(包括软件维护)和软件 开发所需要的时间。 中间CoCoMo模型 用于估算各个子系统的工作量和开发时间。 详细CoCoMo模型 用于估算独立的软部件如子系统内部的各个模块。 1 基本CoCoMo模型
静态、单变量模型 E aL^b (2-11) D cE^d (2-12)
其中E表示工作量单位是人月(PM)。 D表示开发时间单位是月(M)。 L是项目的代码行估计值单位是千行代码 a,b,c,d是常数取值如表2.9所示。 Boehm把软件划分为组织型、半独立型和嵌入型三类允许不同应用领域和复杂程度的软件按照三类软件的适用范围选取相应的参数a,b,c,d
软件类型 abcd适用范围组织型2.41.052.50.38 各类应用程序半独立型3.01.122.50.35 各类实用程序、编译程序等 嵌入型3.61.202.50.32 实时处理、控制程序、操作系统
2 中间CoCoMo模型
以基本CoCoMo模型为基础在工作量估计公式中乘以工作量调节因子 EAF E aL^b *EAF (2-13)
其中L是软件产品的目标代码行数 a,b是常数取值如表2.10所示。
工作量调节因子EAF与软件产品属性、计算机属性、人员属性、项目属性有关 ² 软件产品属性 软件可靠性、软件复杂性、数据库的规模。 ² 计算机属性 程序执行时间、程序占用内存的大小、软件开发环境的变化、软件开发环境的响应速度。 ² 人员属性 分析员的能力、程序员的能力、有关应用领域的经验、开发环境的经验、程序设计语言的经验 ² 项目属性 软件开发方法的能力软件工具的质量和数量、软件开发的进度要求。 COCOMOⅡ模型调节要素和调节因子的范围 例题
表2.7 代码行和成本、工作量估算
功能乐观 LOC一般 LOC悲观 LOC加权平均 LOC$/LOCLOC/PM成本 ($)工作量 (人月)用户界面控制179024002650234014315327607.4二维几何分析40805200740053802022010760024.4三维几何分析46006900860068002022013600030.9数据库管理2900340036003350182406030013.9图形显示39004900620049502220010890024.7外设控制1990210024502140281405992015.2设计分析66008500980084001830015120028总计33360656680144.5
在例2.2中目标代码行数为 33.3 KLOC
CAD软件开发属于中等规模、半独立型 从表2.9中查到a3.0b1.12 代入公式(2-11) E 3.0L^1.12 3.033.3^1.12 152 PM
E的估算值代入公式 (2-12) 取 C2.5 d0.35 D2.5E^0.35 2.5*152^0.35 14.5 M 建议参加项目开发的人数 NE/D152/14.5≈11
重点
若干人共同开发一个软件项目还应该增加他们之间相互通信和交换意见的额外工作量。 设N个程序员组成小组实现相同规模的程序相互通信数为
CN(N-1)/2
每次通信和交换意见的平均工作量为μ
则增加的通信开销为 EcμN(N-1)/2 (2-14)
例题
3人和5人开发一个程序相互通信和交换意见的关系如图2.2所示 将N3和N5分别代入公式(2-14) Ec(3)μ3(3-1)/23μ Ec(5)μ5(5-1)/210μ
3.CMM和CMMI模型
1. CMM的能力成熟度级别及关键过程域 CMM 的能力成熟度共分五级 L1初始级、L2可重复级、L3己定义级、L4己管理级、L5优化级 。 (1) L1初始级(initial) 初始级的软件开发组织几乎没有软件过程管理软件开发是无序和混乱的软件开发过程是不稳定的软件项目的成功取决于开发精英个人或小组对软件过程的理解和努力。 (2) L2可重复级(repeatable) 可重复级的软件开发组织 为了跟踪软件开发过程的进度、成本和产品功能根据自身的经验和实际情况建立了基本的项目管理体系 制订了基本的软件过程管理和控制措施。这些措施包括必要的规章制度和纪律、软件开发过程的论证和定义、人员的分工和培训、软件过程的阶段评审並用评审结果指导下一步的工作等。 软件开发组织能够重复以前开发类似软件项目取得的成功。 可重复级的关键过程域包括需求管理、软件项目计划、项目跟踪和监督、分包合同管理、软件质量保证、软件配置管理。 (3) L3己定义级(defined)
将管理和工程两方面的软件过程标准化、文档化和制度化。软件开发组织己建立自己的软件过程标准该组织承制的所有软件项目都使用自己的软件过程标准或根据项目需要剪裁一个子集。项目使用的软件过程标准称为项目定义的软件过程。已定义级的软件组织进行的软件过程应该是标准的、一致的和稳定的软件开发过程中能对项目的成本、进度和产品的功能、质量进行跟踪和控制。已定义级的关键过程域涉及项目和组织两方面内容包括组织级过程焦点、组织级过程定义、培训大纲、综合软件管理、软件产品工程、小组协调、同行评审。 (4) L4己管理级(managed) 重视软件度量、注意采集软件过程和产品质量的度量值、对软件过程和产品有定量的理解并以此为基础进行决策和控制。 关键领域包括定量的过程管理、软件质量管理。 (1) 定量的过程管理(quantitative process management)
定量地控制项目的软件过程能够达到的实际结果从而得到一个稳定的、可定量预测的过程。
(2) 软件质量管理(software quality management) 软件质量管理以产品为中心。目标是定量的评价软件产品的质量实现具体的质量目标满足客户和最终用户的需要。 (5) L5优化级(optimizing)
重视并利用软件开发和维护过程中的反馈值进行过程和产品质量的定量控制 关键领域缺陷的预防、技术更新管理、过程变更管理。 2.能力成熟度模型集成CMMI
1) L2可重复级
(1) 需求管理 REQM 管理项目的产品需求和产品构件需求。
(2) 项目计划 PP 制定和维护定义项目活动的计划。
(3) 项目监督和控制 PMC 按计划监督项目管理、纠正存在的问题。
(4) 供应商合同管理 SAM 建立并执行供应商合同。
(5) 度量和分析 MA 度量和分析过程的目的是开发和维护项目信息管理需要的度量能力。
(6) 过程和产品质量保证 PPQA 客观的评价过程及其相关的工作产品并将报告和记录提供给项目成员和管理部门。
(7) 配置管理 CM 利用配置标识、配置控制、配置状态报告、配置审计保持工作产品的完整性。
2) L3己定义级
(1) 需求开发 RD 生成和分析客户、产品和产品构件的需求。
(2) 技术解决方案 TS 根据“需求”开发、设计和实现问题求解方案包括产品、产品构件和开发产品的相关过程。
(3) 产品集成 PI 对产品构件进行组装生成最终产品并交付给客(用)户。
(4) 验证 VER 确保选择的工作产品满足特定的需求。
(5) 确认 VAL 证实产品或产品构件置于预期环境时能够满足预期的用途。
(6) 组织级过程焦点 OPF 建立和维护对组织的过程和过程资产的理解。
(7) 组织级过程定义 OPD 建立和维护组织级可用的过程资产集。
(8) 组织级培训 OT 增加开发人员的技能和知识提高他们完成本职工作的能力和有效性。
(9) 集成化项目管理 IPM 按照集成化、己定义的过程管理项目和项目的参与人员。
(10) 风险管理 RSKM 标识软件生命周期中潜在的问题采取必要措施缓解风险的影响。
(11) 集成化的团队 IT 为完成项目产品的开发和维护在组织内将人员按照某种原则和分工,系统的建立任务组。
(12) 决策分析和解决方案 DAR 利用结构化方法、制定标准的评价方案并进行决策。
(13) 组织级集成环境 OEI 建立IPPD的组织级平台和过程资产。
3) L4己管理级
(1) 组织级过程性能 OPP 对组织标准过程集的性能给出定量的描述提供过程性能数据、基线和模型对组织的项目实施定量的管理。
(2) 项目定量管理 QPM 为达到己定义项目的质量和性能指标对项目过程进行定量管理。
4) L5优化级
(1) 组织级改革和实施 OID 选择和实施改革、创新活动改善组织的过程和技术并能够量化和度量。
(2) 因果分析和解决方案 CAR 标识产生缺陷和问题的原因并采取措施预防这些问题再次发生。
4.结构图复杂性度量值V(G)的确定
McCabe 用程序控制结构图的巡回秩数V(G) (Cyclomatic Complexity)作为程序结构复杂性的度量 V(G) e-n2 (2-20) 其中e为结构图的边数 n为结构图的结点数 可以证明 V(G) 等于结构图中有界或无界的封闭区域个数 例题
计算程序控制结构的V(G)值 E 1 E 3
N 2 N 3
V 1 V 2 E 4 E 3
N 4 N 3
V 2 V 2
计算程序控制结构的V(G)值 E 6
N 5
V 3
习题
⼀、单项选择
1软件项⽬管理必须 介⼊。A 从项⽬的开头 B在可⾏性研究之后 C在需求分析之后 D在编码之后
解析软件项目管理应当自项目启动之初就介入以确保项目规划、组织、资源分配和风险管理等各方面工作能够系统化、协调化地进行。早期介入有助于识别和解决潜在问题确保项目按计划推进。 2 下列选项中属于成本管理的主要任务的是 。 A ⼈员的分⼯ B估算软件项⽬的成本 C对控制软件质量要素 D对软件阶段产品进⾏评审
解析成本管理的主要任务包括成本估算、预算编制和成本控制。估算项目的成本是成本管理的核心旨在预测项目所需的资源和资金以便进行有效的财务规划和控制。
3下列选项中不属于质量管理的主要任务的是 。 A 制定软件质量保证计划 B按照质量评价体系控制软件质量要素C增加软件产品的功能 D对最终软件产品进⾏确认
解析质量管理关注的是确保软件产品满足既定的质量标准和用户需求包括制定质量保证计划、控制质量要素以及最终产品的确认。增加软件功能属于需求分析或功能设计而非质量管理的直接任务。 4下列选项中属于软件配置管理的任务的是 。 A ⼈员的分⼯ B估算软件项⽬的成本 C对软件阶段产品进⾏评审 D对程序、数据、⽂档的各种版本进⾏管理
解析软件配置管理的主要任务包括版本管理、变更控制和配置状态记录等旨在确保软件产品及其相关文档的各个版本得到有效管理和跟踪以维护软件的完整性和一致性。 5 是对产品或过程的某个属性的范围、数量、维度、容量或⼤⼩提供⼀个定量的指示。A 测量 B度量 C估算 D指标
解释 度量Measurement是对事物可量化属性进行测量的过程它强调的是量化和精确。例如测量长度、重量、时间、温度等。 测量Measure通常指测量行为或测量方法是获取度量数据的过程或手段。例如“进行测量”、“使用尺子测量长度”。它更侧重于动作或方法。 估算Estimate是对事物进行粗略的估计或推算通常在无法进行精确测量或不需要精确测量时使用。例如估计人数、估计成本等。估算通常带有一定的误差范围。 指标Index/Indicator是用于衡量或评价事物某种状态或特征的参考值或标准。例如GDP是衡量一个国家经济发展水平的指标CPI是衡量通货膨胀程度的指标。指标通常是基于度量数据计算或得到的。
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 下列说法中不正确的是 。A 功能点度量⽅法与程序设计语⾔有关 B功能点度量⽅法适合于过程式语⾔ C功能点度量⽅法适合于⾮过程式语⾔ D功能点度量⽅法适合于软件项⽬估算
解析功能点度量方法是一种与具体编程语言无关的度量方法主要基于软件的功能需求来评估软件规模。因此选项A的说法是不正确的。 14下列说法中不正确的是 。 A 软件项⽬⼯作量分布曲线不是线性的B到开发后期临时增加⼈⼒可加快进度 C适当推迟交货时间可⼤幅度降低开发⼯作量 D在软件⽣存周期的不同阶段各类⼈员的参与情况是不同的。 15在软件质量要素中程序满⾜需求规格说明及⽤户⽬标的程度指的是 。 A 完整性 B可⽤性 C正确性 D灵活性
解析“正确性”指的是软件是否准确地实现了需求规格说明及用户的目标确保软件功能的实现无误。 16在软件质量要素中改变⼀个操作的顺序所需的⼯作量的多少指的是 。 A 完整性 B可⽤性 C正确性 D灵活性
解析“灵活性”指的是软件在需求变更时能够适应的能力如改变操作顺序所需的工作量体现了软件的适应性和可扩展性。 17在软件质量要素中对未授权⼈员访问程序或数据加以控制的程度指的是 。A 完整性 B可⽤性 C正确性 D灵活性
解析“完整性”在信息安全中指的是防止未授权访问和修改确保程序和数据的准确性和一致性。 18在软件质量要素中学习使⽤软件即操作软件、准备输⼊数据、解释输出结果等的 难易程度指的是 。 A 完整性 B可⽤性 C正确性 D灵活性
解析“可用性”指的是用户在使用软件时的便利性和易学性包括操作的简便程度、界面友好性等。 19 在软件质量要素的评价准则中程序源代码的紧凑程度指的是 。 A 简单性 B准确性 C简明性 D执⾏效率 20在软件质量要素的评价准则中软件运⾏的效率指的是 。 A 简单性 B准确性 C简明性 D执⾏效率
解析“执行效率”指的是软件在运行时所需资源如时间、空间的合理利用程度反映了软件的性能表现。 21在软件质量要素的评价准则中程序易于理解的程度指的是 。A 简单性 B准确性 C简明性 D执⾏效率 22在软件质量要素的评价准则中计算和控制的精确程度指的是 。 A 简单性 B准确性 C简明性 D执⾏效率
解析“准确性”指的是软件在计算和控制过程中所达到的精确程度确保输出结果的正确性和一致性。 23在软件质量要素的评价准则中在各种异常情况下软件能继续提供操作的能⼒指的是 。A 容错性 B检测性 C安全性 D可操作性
解析“容错性”指的是软件在遇到错误或异常情况时仍能继续运行并提供服务的能力避免系统崩溃或数据丢失。 24在软件质量要素的评价准则中程序监视⾃身运⾏并标识错误的程度指的是 。 A 容错性 B检测性 C安全性 D可操作性
解析“检测性”指的是软件识别和报告错误的能力程序能够监控自身运行状态并在出现错误时及时标识和反馈。 25在软件质量要素的评价准则中 控制或保护程序和数据不被破坏、⾮法访问等机制的 能⼒指的是 。 A 容错性 B检测性 C安全性 D可操作性
解析“安全性”指的是软件保护资源免受未经授权的访问、使用、修改或破坏的能力包括数据加密、访问控制等措施。 26在软件质量要素的评价准则中操作该软件的难易程度指的是 。 A 容错性 B检测性 C安全性 D可操作性
解析“可操作性”指的是软件在实际使用过程中操作的便捷性和用户体验包括界面设计、操作流程等方面。 27下列选项中不能进⾏并⾏⼯作的是 。A 需求复审 B过程设计 C单元测试 D编码
解析需求复审通常需要在整体需求文档完成后由相关人员集体审查难以与其他活动并行进行。其他选项如过程设计、单元测试和编码可以在不同模块或团队间并行进行提高开发效率。 28在整个软件项⽬定义与开发各阶段⼀种典型的⼯作量分布原则称为 40-20-40 分布原 则其中 20%的⼯作量指的是 。 A 需求分析⼯作量 B编码⼯作量 C详细设计⼯作量 D测试⼯作量 解析
40-20-40 原则是一种在软件项目生命周期中估算工作量分配的经验法则。它将软件开发过程分为三个主要阶段并分别分配了相应的工作量比例
第一个 40% 指的是编码前的准备工作主要包括需求分析、概要设计、详细设计等阶段。这个阶段的工作是为后续的编码工作打下基础因此需要投入较多的时间和精力。20% 指的是编码Coding阶段即编写实际代码的过程。虽然编码是软件开发的核心环节之一但由于前期的充分准备编码本身所占的工作量相对较少。第二个 40% 指的是编码后的工作主要包括测试、集成、部署、维护等阶段。这个阶段的工作是为了验证代码的正确性、可靠性和可用性并最终将软件交付给用户使用因此也需要投入大量的工作量。因此40-20-40 原则中的 20% 明确指的是编码工作量。
⼆、填空 1 软件项⽬管理的对象主要包括 答案产品、过程和资源等 2对不依赖于其他属性的软件的简单属性的测量称为 答案直接度量 3对涉及若⼲个其他属性的软件要素、准则或属性的度量称为 答案间接度量 4⾯向规模的度量是以软件的 为基础的直接度量。 答案代码⾏数 5 Albrecht ⾸先提出了功能点度量⽅法。这是⼀种⾯向功能的 ⽅法。 答案间接度量 6在软件项⽬管理过程中的第⼀个活动应当是 答案估算 7 估算⼯作量的公式 E L3/ (Ck3td4) 式中的 td 是对应于 时的时间它正好是 ⼯作量曲线的峰值说明此时的⼯作量最⼤、参加项⽬的⼈最多。 答案软件交付 8 软件开发项⽬每年所需的⼈年数与开发时间的关系满⾜ Rayleigh-Norden 分布即软 件项⽬的⼯作量分布曲线 的因此参加软件项⽬的⼈员就不能⼀成不变。 答案不是线性 9 开发软件项⽬的⼯作量和交货时间 td 的 4 次⽅成反⽐如果条件允许适当地推迟交 货时间即使 td 增⼤可⼤幅度降低 。 答案开发⼯作量 10 Putnam 模型的优点是揭示了软件项⽬的 、软件开发时间和⼯作量三者之间的 关系在理论上有重要意义。 答案源程序代码⻓度 11 CoCoMo 模型按其详细程度分为基本 CoCoMo 模型、 和详细 CoCoMo 模型三 个层 次。 答案中间 CoCoMo 模型 12 基本 CoComo 模型主要⽤于 估算整个系统开发和维护的⼯作量以及软件开发所需要的时间。 答案系统开发的初期 13 ⼀般地由 N 个程序员组成的程序员⼩组在完成相同规模的软件时需要的通信数量 C N 。 答案 N N-1 /2 14 McCall 等⼈提出了由 、评价准则、定量度量三个层次组成的三层次度量模型。 答案软件质量要素 15 程序图 G 的环形复杂度 V G的值等于程序图中有界和⽆界的 的个数。 答案封闭区域 16 McCabe 指出 V G 可作为程序规模的定量指标 V G 值越⾼的程序往往是越 复杂、越容易出问题的程序。因此他建议模块规模以 为宜。 答案 V G ≤ 10 17 Halstead 给出了称为⽂本复杂性度量的模型。它是根据统计程序中的 的个数来度 量程序的复杂程度。 答案操作符和操作数 18软件可靠性定义为在某个给定 内程序按照规格说明成功运⾏的概率。 答案时间间隔 19软件项⽬⻛险的⼀个显著特点是具有 某项⻛险可能发⽣也可能不发⽣。 答案不确定性 20⻛险分析的四个主要活动 、⻛险估算、⻛险评价、⻛险驾驭和监控。 答案⻛险标识 21 为了识别⻛险 Boehm 建议使⽤各类 来标识⻛险。 答案⻛险检测表 22 为了评价⻛险常采⽤三元组 [ r i p i x i ] 来描述⻛险。其中 r i 代表 p i 表示 第 i 种⻛险发⽣的概率 x i 代表该⻛险带来的影响。 答案第 i 种⻛险 23在整个软件项⽬定义与开发各阶段⼀种典型的⼯作量分布原则称为 分布原则。 答案 40-20-40 24⽬前软件项⽬的进度安排的两种⽐较常⽤的⽅法是 和关键路径法CPM 这两 种⽅法都⽣成描述项⽬进展状态的任务⽹络图。 答案程序评估与审查技术 PERT 25在制定进度计划时应⾸先找到影响进度的 并在其上安排⼀定的节假⽇和机动时间以便应付可能出现的问题和难点。 答案关键路径 26正式的技术评审是降低 的重要措施。 答案软件成本 27实践表明向⼀个已经延期的软件项⽬追加新的开发⼈员可能使项⽬完成得 。 答案更晚 三、简答题 1 软件项⽬管理的主要任务是什么 软件项⽬管理的主要任务是根据选定的软件开发过程框架即软件开发模型和对其估算的结果制定软件项⽬实施计划再根据计划对⼈员进⾏组织、分⼯按照计划的进度以及成本管理、⻛险管理、质量管理的要求控制并管理软件开发和维护的活动最终以最⼩的代价完成软件项⽬规定的全部任务。 2.成本管理的主要任务是什么 成本管理的主要任务是估算软件项⽬的成本作为⽴项和签合同的依据之⼀并在软件开发过程中按计划管理经费的使⽤。 3.质量管理的主要任务是什么 质量管理的主要任务是制定软件质量保证计划按照质量评价体系控制软件质量要素对阶段性的软件产品进⾏评审对最终软件产品进⾏确认确保软件质量。 4 常⽤的软件项⽬的估算⽅法主要有哪 4 种 1 ⾃顶向下的估算⽅法 2 ⾃底向上的估算⽅法 3 差别估算法 4 根据实验或历史数据给出软件项⽬⼯作量或成本的经验估算公式。 5 CoCoMo 模型按其详细程度分为哪三个层次 CoCoMo 模型按其详细程度分为 基本 CoCoMo 模型、中间 CoCoMo 模型和详细CoCoMo 模型 三个层次。 6 软件质量的定义 1983 年 ANSI/IEEE std729 标准给出了软件质量的定义如下 软件质量是软件产品满⾜规定的和隐含的与需求能⼒有关的全部特征和特性包括 1 软件产品满⾜⽤户要求的程度 2 软件拥有所期望的各种属性的组合程度 3 ⽤户对软件产品的综合反映程度 4 软件在使⽤过程中满⾜⽤户需求的程度。 7 简述 McCall 等⼈的软件质量度量模型 McCall 等⼈提出了由软件质量要素、评价准则、定量度量三个层次组成的三层次度量模 型。其中第⼀层是将对软件质量的度量归结为对直接影响软件质量的若⼲个软件质量要素的度量由于质量要素很难直接度量所以第⼆层是⽤若⼲个可度量的评价准则来间接度量软件质量要素⽽第三层是对相应评价准则的直接度量。 8 软件质量保证 SQA 活动主要包括哪些内容 1在需求分析阶段提出对软件质量的需求并将其⾃顶向下逐步分解为可以度量和控制的 质量要素为软件开发、维护各阶段软件质量的定性分析和定量度量打下基础 2 研究并选⽤软件开发⽅法和⼯具 3 对软件⽣存周期各阶段进⾏正式的技术评审 FTR 4 制定并实施软件测试策略和测试计划 5 及时⽣成软件⽂档并进⾏其版本控制 6 保证软件开发过程与选⽤的软件开发标准相⼀致 7 建⽴软件质量要素的度量机制 8 记录 SQA 的各项活动并⽣成各种 SQA 报告。 9 正式的技术评审 FTR 的过程⼀般由哪 6 个步骤组成 ①制定评审计划即安排好评审会议⽇程。 ②介绍⼯程情况。 ③准备⼯作。评审⼩组成员⾃⼰审阅⽂档资料并把发现的问题和错误记录下来以备在评 审会议上讨论。 ④正式召开评审会议。 ⑤⼯程返⼯。 ⑥⼯程复审。 如此反复、直⾄通过复审为⽌。 10 软件开发各个阶段都需要哪些⼈员 在软件项⽬的计划和分析阶段只需要少数⼈主要是系统分析员、从事软件系统论证和概 要设计的软件⾼级⼯程师和项⽬⾼级管理⼈员⼈数虽不多但都是⾼层次⼈员 概要设计阶段要增加⼏个⾼级程序员 详细设计阶段要增加软件⼯程师和程序员 在编码和测试阶段还要增加初级程序员和软件测试员在这⼀过程中各类专⻔⼈员和管理 ⼈员也在逐渐增加到验收测试时维护⼈员也加⼊其中使各类⼈员的数量达到了最⾼峰 在软件产品交付使⽤的初期参加软件维护的⼈员较多此时为防⽌给维护活动带来困难 不应过早地解散软件开发⼈员。 软件经过⼀段时间的纠错性维护后出错率会明显减少这时可以逐步撤出软件开发⼈员 之后软件维护⼈员也逐步撤离。 11 在软件项⽬中配备和使⽤⼈员应遵循的 3 个主要原则是什么 ①重质量使⽤少量有实践经验、素质⾼、有能⼒的⼈员去完成关键性任务常常⽐使⽤较 多的经验 不⾜的⼈员更有效。 ②重培训花⼒⽓培养所需的技术和管理⼈员是解决⼈员问题的有效⽅法。 ③双阶梯提升⼈员要么按照技术职务提升要么按照管理职务提升两者不应兼得。 四、综合题 1 已知有⼀个国外典型的软件项⽬的记录开发⼈员 M5 ⼈其代码⾏数 20.2KLOC ⼯ 作量 E43PM 成本 S314000 美元错误数 N64 ⽂档⻚数 Pd1050 ⻚每两个⼈之间 通信的平均⼯作量为 0.13PM 。试计算开发该软件项⽬的⽣产率 P 、平均成本 C 、代码出错 率 EQR 、⽂档率 D 和通讯⼯作量 Ec 。 解答 1. 生产率 P 生产率是单位时间内完成的代码量用公式计算 2. 平均成本 C 平均成本是单位代码行数的成本用公式计算 3. 代码出错率 EQR 代码出错率是单位代码行数的错误数用公式计算 4. 文档率 D 文档率是单位代码行数的文档页数用公式计算 5. 通信工作量 Ec 通信工作量是人员间通信的总工作量用公式计算 团队中的通信组合数可用组合公式计算 通信工作量为 Ec0.13×101.3 PM 2、某软件的⼯作量是 20000⾏由 4⼈组成的开发⼩组开发每个程序员的⽣产效率是 5000
⾏/⼈⽉每对程序员的沟通成本是 250⾏/⼈⽉则该软件需要开发多少⽉ 。
解答 开发时间由开发人员完成代码的时间和沟通成本的时间共同决定。 1. 基础公式 开发时间 TTT 公式如下 每个人每月的生产率已知为 5000 行/人月。 总团队生产率不含沟通成本 总生产率4⋅500020000 行/月 2. 沟通成本计算 团队内的沟通组合数为 C(4,2)4⋅(4−1)26 每对程序员的沟通成本为 250 行/人月则团队总沟通成本为 沟通成本6⋅2501500 行/月 3. 有效生产率 有效生产率为总生产率减去沟通成本 有效生产率20000−150018500 行/月 4. 开发时间计算 开发时间为T代码工作量有效生产率20000/18500 计算结果T≈1.08 月