第三章 软件规模度量——软件内部属性的测量 3.1 基本知识 1.可以从哪些方面测量软件的规模? 软件功能数量: 数据流图、用例图 软件模块数量:模块功能结果图 代码的行数:操作符、操作数 设计文档的页数 用户手册的页数 2. 软件规模可以用于反映: Effort 工作量(人月) Cost 成本 Productivity 效率 Schedule 进度安排 3. 可以根据以下方面定义软件规模: Length 长度(代码长度、规格说明书长度) Functionality 功能性 Complexity 复杂性 Reuse 软件重用 4. 通过软件功能性(Functionality)来度量软件规模: 功能点 Function Point 特征点 Feature Point 对象点 Object Point 用例点 Use-case Point 3.2 功能点度量方法 (Fu nction Point, FP) 功能点度量就方法可以通过数据流图(Data Flow Diagram,DFD)来分析; 数据流图中四个元素:起点终点、数据流、数据处理、数据存储; 功能点计算方法: Function Point = UFC * VAF (FP = 未调整前的功能点数 * 调整因子); (1) 按照下表测量数据流图中的五类元素: 测量元素 个数 权重因子 简单 一般 复杂 小计 输入个数 3 4 6 输出个数 4 5 7 用户查询个数 3 4 6 内部文件个数 5 7 10 外部接口个数 7 10 15 总计 (2)将5 类测量元素(输入、输出、查询、内部文件、外部接口)的难易程度分为三个难易级别:简单、一般、复杂,并给出对应的权重因子。评价每个测量元素的难易级别,计算权重因子。 (3)UFC 计算与两个因素有关:5 类测量元素(输入、输出、查询、内部文件、外部接口)的个数、每个测量元素的难易程度(简单、一般、复杂)。 从理论上讲,共有15 个不同种类的项(5 类中每一类都有三个复杂性等级),因此,未调整前功能点数计算方法:用各类的项目数乘以该类的权重值,再对这15 个乘积求和: UFC = ∑((第ᵅ类项数)∗ 权重值ᵅ)15ᵅ=1 (4)VAF:性能要求对软件规模的影响,包括内部系统复杂性与用户角度的功能性相关的复杂性。 共14 项因素Fi(1≤i≤14),影响程度由轻到重从0-5 评价。0 意味着子因素对系统没有影响,3 意味着子因素对系统的影响适中,5 意味着子因素对正在构造的系统起关键作用。 表1 技术复杂性系统组成部分 F1 可靠的备份与恢复 F8 在线更新 F2 数...