第六章 估算方法概述

news/2025/4/1 14:06:29/文章来源:https://www.cnblogs.com/lhxBlogs/p/18800266

6.1 选择估算方法时考虑的问题

1)估算内容

某些项目会先确定它们要实现的特性,然后集中注意力来估算为了交付这些特性需要多少时间和工作量。而有些项目则是先确定它们的预算和开发时间限制,然后集中注意力来估算在这些限制内可以交付多少特性。

许多估算方法可以适用于各种待估算对象;而有些方法则分别更适合于估算项目需要多少工作量、要花多少时间或者可以交付多少功能。

在本书中,对规模(size)的估算是指使用诸如代码行、功能点、用户故事或其他度量单位来估算给定特性集的技术工作的范围。对特性(feature)的估算是指估算在时间进度和预算限制内能够交付多少特性。这些术语并不是行业标准;在这里定义它们是为了让本书更为清楚。

2)项目规模

小型:不超过5个技术人员,最佳估算方法更多的是 "自底向上" 的方法,也就是基于将要实际进行工作的个人提供的估算值来进行估算

大型:大约 25 个以上的团队人员,项目工作将持续 6~12 个月以上。

大型项目的最佳估算方法在项目过程中会发生显著的变化。在项目早期,最佳估算方法可能是基于数学和统计学的“自顶向下”的方法。在尚不知道团队中将有哪些特定成员的时候,这些方法是有效的——例如在根据由“11名高级工程师、25名开发人员和8名测试人员”而不是特定个体组成的团队来制定计划的时候。

在项目中期,把自顶向下的方法和基于项目自身历史数据的自底向上的方法结合起来,可以产生最准确的估算。在大型项目的后期,自底向上的方法可以提供最准确的估算。

中型:大约包括 5~25 个人,持续时间为 3~12 个月。它们的优势在于几乎可以使用大型项目可用使用的所有估算方法,也可以使用几种小型项目能够使用的方法。

3)软件开发方式

对估算而言,开发方式主要可分为两种,分别是顺序开发和迭代开发。对本书而言,这些项目类型之间的主要区别在于它们在项目早期定义的需求在与项目构造过程中定义的需求的比例的高低。

下面,根据这些原则对一些常见开发方法进行了分类。

  • 演进式原型法:在需求未知时可以使用演进式原型法
  • 极限编程:极限编程有意地只定义将在接下来的一次迭代中实现的需求,而迭代的时间通常不会超过 1个月
  • 演进式交付:演进式交付项目先期定义的需求可以少到 "几乎没有",也可以多到 "几乎全部"。大部分演进式交付项目在开始构造时都会流出许多需求不定义,使得这种开发方式通常都以迭代方式进行
  • 分阶段交付:分阶段交付试图在构造活动主体开始前定义需求的主体。该方法在设计、构造和测试中使用迭代方式
  • Rational 统一过程(RUP):典型的RUP项目会寻求在构造活动开始之前定义大约 80% 的需求
  • Scrum:项目团队每次处理一组在30天的 "冲刺" 中实现的特性。一旦开始冲刺,就不再允许客户改变需求

开放方式对估算方法选择的影响:迭代式项目和顺序式项目都可能开始于自顶向下的或者说基于统计学的估算方法,最后都迁移到自底向上的方法。由于迭代式项目的每次迭代都可以产生实际的生产率数据,所以在使用项目相应的数据时,它们可以更快地对估算结果进行精化。

4)开发阶段

随着团队在项目中的工作进展,会逐渐产生可以支持更准确估算的信息。对需求的理解会更准确、设计会更详细、计划会更牢靠,项目本身也会产生生产率数据,可以用于估算项目的剩余部分。

本书将开发阶段定义为:

  • 早期 在顺序式项目中,早期阶段是指从项目概念起始到需求定义基本完成的时期。在迭代式项目中,早期指的是初始计划时期。
  • 中期 中期阶段是指从初始计划到早期构造的时间。在顺序式项目中,它覆盖了需求工作和架构工作,直到完成足够的构造活动,产生了可以用于估算的项目生产率数据。在迭代式项目中,中期是指最初的2~4次迭代——也就是项目可以放心地使用自身的生产率数据建立估算之前的几次迭代。
  • 后期 后期包括从中期构造直到项目发布的时间。

5)可能的准确度

估算方法的准确度取决于三个方面。其一是方法本身;其二是该方法是否被应用于适当的估算问题;最后是该方法被应用于项目的哪个阶段

6.2 估算方法适用性表

表格条目 可能条目
估算对象 规模、工作量、进度、特性
项目规模 小、中、大
开发阶段 早期、中期、后期
迭代式或顺序式 迭代式、顺序式或两者皆可
可能的准确度 低、中、高

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/907955.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AMD GPU上对比语言图像预训练(CLIP)模型的交互(下)

3. 步骤3:检查图像和文本 将COCO数据集中的8幅样本图像及其文本描述输入模型,并比较相应特征之间的相似性。 import os import matplotlib.pyplot as plt from PIL import Image# 使用COCO数据集中的图像及其文本描述 image_urls = ["*/6/8378612_34ab6787ae_z.jpg&quo…

AMD GPU上对比语言图像预训练(CLIP)模型的交互(上)

AMD GPU上对比语言图像预训练(CLIP)模型的交互 3.1.1 介绍 对比语言图像预训练(CLIP)是一种连接视觉和自然语言的多模态深度学习模型。它是在OpenAI的论文从自然语言监督中学习可转移的视觉模型(2021)中介绍的,并在大量(4亿)图像字幕对的网络抓取数据上进行了对比训练…

推荐关注《AI芯片开发核心技术详解》(1)、《智能汽车传感器:原理设计应用》(2)、《TVM编译器原理与实践》(3)、《LLVM编译器原理与实践》(4),谢谢

4本书推荐《AI芯片开发核心技术详解》、《智能汽车传感器:原理设计应用》、《TVM编译器原理与实践》、《LLVM编译器原理与实践》由清华大学出版社资深编辑赵佳霓老师策划编辑的新书《AI芯片开发核心技术详解》已经出版,京东、淘宝天猫、当当等网上,相应陆陆续续可以购买。该…

惊!Docker Desktop竟然不会自动释放磁盘空间,C盘告急!

Docker Desktop竟然不会自动释放磁盘占用 > > 操作系统:Windows 11 家庭中文版 (23H2,22631.4037)16GB > > Docker Desktop 版本:v4.34.3 > 1. 缘起 docker pull docker-0.unsee.tech/savatar101/omniparse:0.1 拉取镜像,某个片段卡住,我主动取消了改操…

深入掌握FastAPI与OpenAPI规范的高级适配技巧

title: 深入掌握FastAPI与OpenAPI规范的高级适配技巧 date: 2025/03/30 01:16:11 updated: 2025/03/30 01:16:11 author: cmdragon excerpt: OpenAPI规范是RESTful API的标准描述格式,FastAPI通过自动化Schema生成机制将Pydantic模型和路径操作转换为标准OpenAPI文档,实现实…

‌Docker Desktop启动后自动加载Ubuntu WSL,docker-desktop-data WSL消失问题解析

‌Docker Desktop启动后自动加载Ubuntu WSL,docker-desktop-data WSL消失问题解析操作系统:Windows 11 家庭中文版 (23H2,22631.4037)16GB Docker Desktop 版本:v4.34.3如果赶时间,可以直接看结论。 Docker Desktop用的频次不是很高,记得之前安装完,用wsl --list -v命…

Prometheus的标签管理

作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。 目录一.标签概述1.什么是标签2.标签主要有两种表现形式3.Prometheus对数据处理的流程二.relabel_configs修改target标签案例1.为targets自定义打标签案例2.使用target_label新增标签2.relabel_configs替换标签…

极速启动,SAE 弹性加速全面解读

本文将深入探讨 SAE 如何通过镜像加速、应用启动加速、CPU Burst 等核心技术手段,实现极速启动与高效运行,帮助用户构建更加稳定、高效的云端应用。作者:牛通(奇卫) 在当今快速发展的云计算时代,业务的稳定性和响应速度成为了企业竞争力的重要标志。无论是应对突发流量还…

Redis缓存穿透、击穿与雪崩:问题分析与解决方案

在现代高并发系统中,Redis作为缓存层被广泛使用,其高效的读写性能为系统提供了强大的支持。然而,在使用Redis缓存的过程中,缓存穿透、击穿和雪崩等问题可能会对系统造成严重影响。本文将围绕这些问题展开讨论,并结合Redis的特性提出具体的解决方案。 一、Redis缓存穿透:如…

java - 使用OpenCV + Tesseract识别图片验证码

java - 使用OpenCV + Tesseract识别图片验证码tesseract tesseract-ocr/tesseract: 是一个开源的光学字符识别(OCR)引擎,适用于从图像中提取和识别文本。特点是可以识别多种语言,具有较高的识别准确率,并且支持命令行和API调用。项目地址:https://gitcode.com/gh_mirror…

【笔记】力扣 2316. 统计无向图中无法互相到达点对数——并查集, + 一种巧妙的求两两相乘之和的方法

2316. 统计无向图中无法互相到达点对数 中等 提示 给你一个整数 n ,表示一张 无向图 中有 n 个节点,编号为 0 到 n - 1 。同时给你一个二维整数数组 edges ,其中 edges[i] = [ai, bi] 表示节点 ai 和 bi 之间有一条 无向 边。 请你返回 无法互相到达 的不同 点对数目 。 示例…

APT Package Manager

from pixivWhat is APT? Anatomy of the Package System(软件包系统剖析), is the Debian packaging system, 用于管理软件包,可以将其想象成命令行版的App Store.Debian 是一个自由且开源的 Linux 发行版,Ubuntu 是基于 Debian 构建的 Linux 发行版。它由 Canonical 公司…