转自:http://www.infoq.com/cn/news/2015/02/define-performance-requirements
JVM监控解决方案提供商Plumbr的官方博客上发表了一篇题为《如何定义性能需求》的文章。文章指出,随着企业信息化程度的提高,业务人员对软件功能性需求的描述越来越好。但涉及到易用性、兼容性或性能等非功能性需求的时候,他们经常会不得要领。比如,他们可能会提出“它的运行速度要快”这样的性能需求。在更好的情况下,他们可能会提出下面这样的性能需求:
- 在系统中执行的操作,95%的都必须在5秒针内响应;
- 系统必须支持100并发用户。
初看上去,这样的需求已经好了很多了。但实际上,它们甚至比只用一个“快”字描述更差。虽然它们包含了一些数字,看上去似乎可以作为开发人员的终极目标。但实际上,这两个需求最多只能为关于性能需求的讨论开一个头。
文章接下来对上述两个需求进行了剖析。
第一个需求没有提出针对其它5%的操作的性能需求。而且,不同的功能对性能的需求也不尽相同。比如,对于功能“显示当前账户余额”和“显示2013年所有的交易”,前者5秒响应可能都略显慢,而后者响应时间再长一些也可以接受。因此,性能需求描述应该:
- 针对不同的操作类型指定可接受的时间延迟;
- 将时间延迟相关的需求与负载/吞吐量相关的需求联系起来;
- 明确时间延迟的测量位置,比如,延迟时间是以客户端为标准,还是以服务器端发送出最后一个字节为标准;
- 哪些操作的时间延迟不太要紧。
第二个需求看上去很准确,实际上很笼统。比如,将“100个并发用户”理解成“100个线程处理100个并发操作”。如果每个操作用时1秒,那么系统吞吐量为100 ops/sec;但如果每个操作用时10秒,那么系统吞吐量则只有10 ops/sec。对于后一种情况,我们不能认为它满足“100个并发用户”的需求。因此,需求应该更清楚地描述特定用户的行为,而不是用“并发用户”这样的术语。当然,这里并不是说建议测量吞吐量,因为现实世界的应用程序往往是多功能的,很难使用吞吐量来衡量其性能。
本文还提到了容量规划,即在什么样的前提条件下实现上述性能需求,包括如下三个方面:
- 系统的数据量;
- 系统的基础设施限制,比如,CPU、内存等;
- 系统的部署环境,比如,网络带宽是多少,是否需要离线操作等。
总之,应该与业务人员紧密合作,制定出可测量的、具体的性能需求。
相关推荐
它涉及到如何量化地定义一个系统的性能需求,并且基于这些需求进行合理的设计,以确保系统在实际应用中能够达到预期的性能水平。性能指标的定义、性能需求的分析、以及性能测试和压测等环节,都与性能设计紧密相关,...
这些指标定义了系统在正常负载下的响应速度,有助于判断系统是否满足业务需求。 - 功能点应涵盖所有关键操作,包括用户界面交互、数据处理和后台服务等。指标可以根据实际业务场景设定,没有明确指标的可以不填。 ...
性能测试需求调研报告是软件开发过程中至关重要的一环,它为后续的性能测试提供明确的指导。这份企业内部资料旨在帮助读者理解如何准备软件性能测试,确保测试的有效性和准确性。以下是对报告内容的详细解析: 1. *...
5. 咨询专家和行业标准:与行业专家交流,参考行业标准或最佳实践,以帮助定义性能需求。 6. 进行业务流程分析:理解业务流程,确定关键交易和并发场景,以此为基础设定性能需求。 7. 预估未来增长:考虑系统需要...
淘宝商城系统需求分析定义是指对淘宝商城系统的功能、性能和其他方面的需求进行分析和定义,以确保系统的开发和实施符合用户的需求和Expectation。本文档将对淘宝商城系统的需求进行详细的分析和定义,包括功能需求...
在服务器性能计算需求分析中,主要关注的是数据库服务器的性能评估和配置选择,特别是对于广州市公安局超级情报系统(SIS)的设备升级项目。这个项目涉及的是一个大规模的联机事务处理(OLTP)系统,因此,选用业界...
4. **性能需求ID**:每个性能需求都有一个唯一标识符,方便追踪和管理。这有助于确保每个变更都能与原始需求相对应。 5. **申请人**:提出变更请求的人员,可能是开发人员、测试工程师或其他相关人员。他们负责详细...
- **性能需求**:涉及网站的响应速度、处理能力等,以满足大量用户同时在线操作的场景。 - **环境需求**:明确了硬件和软件环境的要求,确保网站在各种环境下稳定运行。 - **可靠性和安全性**:包括异常处理和...
需求定义是根据需求分析的结果,定义软件产品的功能和性能的详细说明。需求确认是对软件产品的功能和性能进行确认,以确保软件产品满足用户的需求。 三、用户需求调查 用户需求调查是需求调研的重要步骤,其目的...
该文档的目的在于确认客户的需求,明确软件产品的功能和性能,以避免项目后期出现超出合同范围的需求。 软件需求确认文档模板通常包括以下几个部分: 1. 系统概述:对软件产品的目标、功能和架构做出总体的概括性...
需求工程是软件开发过程中的关键环节,它涵盖了对软件产品功能和性能要求的识别、定义、文档化、验证和管理。需求工程的目标是确保开发出的软件满足用户和业务的实际需求,防止因需求不明确或误解导致的项目失败。 ...
例如,用户可能需要一个快速响应的系统,这既是性能需求,也是用户体验需求。 其次,需求分析涉及到文档编写。《怎么写需求分析》这部分内容可能会涵盖如何撰写需求规格说明书(SRS),其中应包含问题定义、背景...
这一阶段的目的是确定系统的功能需求、性能需求、环境需求、用户界面需求以及其它相关要求,例如可靠性、安全性、移植性和可维护性等。需求分析不仅涉及与用户的深入交流,还包括参观工作流程、分发调查问卷、分析...
2. 定义关键性能指标:根据业务需求确定需要关注的性能参数,如响应时间、并发用户数等。 3. 分析系统架构:理解系统的硬件配置、软件环境、网络条件和技术架构,以便找到可能的性能瓶颈。 4. 识别关键业务流程:...
问题定义文档通常包含项目背景、问题陈述、项目目标和初步的用户需求。 2. **可行性研究**:可行性研究文档评估项目是否值得投入时间和资源进行开发。它涉及技术可行性(现有技术能否满足项目需求)、经济可行性...
- 使用可度量的指标来定义性能需求。 - 区分“必须”、“应该”、“可以”和“不得”等程度不同的需求。 - 涉及所有利益相关者的期望,确保需求全面无遗漏。 - 定期更新和审查,确保需求的准确性和时效性。 在实际...
敏捷性能测试规划是一门关于如何在敏捷开发环境下...这一过程需要对性能测试有深刻的理解,对产品的性能需求进行明确的定义,并在全生命周期中贯穿性能测试活动,最终通过持续的迭代和优化,实现产品性能的不断提升。