在一个完美的世界里,软件开发人员编写无缺陷的代码,客户对用户体验很满意,每个人都相处得很好。实际上,应用程序性能总是一个挑战——开发人员和测试人员努力使应用程序尽可能完美地运行,但是这种努力大多是基于假设的。通常,这些假设显然没有达到预期的服务和性能水平。性能问题在测试阶段或客户投诉时得到解决。随后,实现客户满意变成了一个旷日持久的过程,甚至可能将项目推回到画板上。
Applications变得复杂,因为现在它们在本质上是分布式的,跨越多个模块和功能。例如,谷歌最初被认为是一个搜索引擎。如今,它的生态系统包括浏览器、电子邮件服务、文字处理器、视频会议应用等等。
由于这种日益增长的复杂性,软件开发人员必须确保应用程序尽可能的可伸缩、安全和响应。在开发阶段识别基本的性能问题是很重要的;不仅仅是在质量保证阶段。设计人员和开发人员可以测试和使用不同的解决方案。
性能工程的基础都是关于理解系统的所有部分是如何一起工作的,并且从设计和开发软件的初始阶段就包括性能方面。在这样的早期阶段采用性能工程可以大大减少返工和重构应用程序的需要,并改善应用程序的结果。
性能工程不仅从软件开发的角度来看很重要,而且从业务成本的角度来看也很重要。根据惠普的性能工程报告,由于信息技术中断,一般规模的公司每小时将损失10万到50万美元的收入。大型企业每小时可能损失高达500万美元。不是一个企业可以承受损失的微不足道的钱。
一个成功的软件项目的第一个标志是项目需求的清晰定义。功能需求定义什么软件应用程序应该做的和非功能性需求定义怎么软件应用程序应该执行特定的功能。
例如,一个典型的功能需求是当新用户注册时发送一封确认电子邮件。就非功能性需求(NFR)而言,用户应该能够在60秒内完成注册过程。
标准做法对于软件开发人员来说,重点是只获得正确的功能需求,因为满足业务和流程需求被赋予最高优先级。非功能性需求处于次要地位,或者仅仅基于性能测试。这种方法破坏了项目的长期成功和应用程序的良好运行。不要测试系统NFR性能,重要的是要了解它们在系统中是如何配合的。性能工程基本上是应用某些方法来确保满足非功能性需求。
非功能性需求是推动性能工程的主要构件。NFRs帮助软件开发人员了解应用程序的使用、负载和预期响应时间。非功能需求报告还有助于定义应用程序的服务级别协议。以下是您在定义国家森林资源时需要的一些重要信息:
应用程序性能是应用程序响应用户发起的事务所花费的时间。这是决定应用程序运行成功的关键因素之一。不遵守绩效服务水平协议会导致业务损失、最终用户冷漠、拥有成本增加、信誉损失等。
应用程序性能不仅仅局限于软件或硬件的角度。随着应用程序变得越来越复杂,越来越不依赖于平台,从应用程序开发过程开始,就需要考虑许多性能因素:
性能工程流程包括以下阶段:
性能是每个人的责任,不管你在软件开发生命周期中扮演什么角色。它必须成为一个组织的企业基因的一部分,这样开发人员、设计人员、数据库管理员和其他利益相关者才能无缝协作,实现性能目标。即使在编写一行代码之前,性能工程也应该成为惯例。