人们如何定义软件的最低硬件要求?


21

人们如何定义软件的最低硬件要求?例如:软件开发公司如何告知客户他们将需要8 GB的RAM才能正确运行程序?

Answers:


31

首先,并非所有要求都是硬性要求,而是最低支持的硬件。如果某人的值小于最小值,则可能会运行-但不是最佳状态,或者可能根本无法运行。无论哪种情况,它都不是受支持的系统,而您遇到的问题是您自己的。

获得硬件要求的最简单方法是猜测。开发人员看着他们的机器说:“是的,它是在我的机器上运行的,这就是要求。”

在更严格的环境中,开发公司拥有一套测试系统。它可能不在内部(非内部Apple开发人员有时会使用Apple兼容性实验室)。作为测试过程的一部分,将对所有可用硬件进行测试,并确定其最低运行要求。

硬件要求中的另一个因素是操作系统的基本要求。从理论上讲,Windows 7至少需要1GB的内存才能运行。因此,针对运行Windows 7的512 MB系统进行测试是没有意义的。

测试使用1 GB内存运行的系统。它行得通吗?不,升级公羊。重复测试和升级,直到应用程序以可支持的方式工作并将其列为最低要求。

当性能成为软件承诺的一部分时,“可支持”包括除实际运行外的操作,该操作符合最低性能期望。


8
肯定的答案。有时候添加一个比喻性的飞镖到墙上然后想出一个问题就可以了。这绝对是一个非常主观的过程。

1
+1:很好的答案。还可能需要注意的是,对软件进行性能测试通常可以指示硬件要求。也就是说,它与“是否运行”有关,而与关注性能要求有关。如果要求某项操作o花费的时间少于“时间” t,那么满足该目标的任何硬件组合都将成为最低规格。
史蒂文·埃弗斯

只是思想,开发系统通常是显著比较强大。这意味着开发人员看到它几乎不能在其设置上爬行,不太可能得出完成工作的结论。除非自然而然地,管理层愚蠢地小气。
Deduplicator 2015年

@Deduplicator我可以提到一个最近的雇主,该雇主在Dell 280s上有过开发人员(在那里运行eclipse和jboss的闪回)。当然,那也是目标平台-但他们只运行IE。

6

硬件需求分为两个不同的类别。在确定要构建的任何软件系统的特定硬件要求时,通常会包括其中几个要求。

架构中的技术约束

这些是内置系统绝对必须满足的要求,并且从一开始就专门针对系统进行设计。例如,“需要x86处理器”。

一个容易想到的例子是Mac的Microsoft Office。最初,Mac使用Power PC CPU,而Microsoft Windows则严格针对“ IBM兼容”计算机(主要使用x86处理器)。由于Windows和Office仅在x86上运行,因此编写了一套全新的代码(具有不同的技术限制)以支持Mac OS上Power PC上的Office。Mac转移到Intel x86处理器后,旧的Power PC针对Mac进行了优化的旧Office不再起作用-并且针对Intel上新版Office for Mac的技术限制再次发生变化。针对32位和64位进行了优化的应用程序是另一个简单的示例。

隐式硬件要求

有时您没有主动选择约束自己,但是您做出的其他决策暗含了对您的要求。一个常见的场景是建立在任何一种框架之上。

例如,如果您正在构建.Net 4.0应用程序,则.Net 4.0具有通过Microsoft硬件实验室审查的硬件要求。现在,您的应用程序至少需要与.Net 4.0框架相同的硬件要求。

上下文硬件要求

在大多数情况下,当您谈论硬件需求时,您真正在谈论的是如何支持特定的质量属性方案。性能,可靠性,可用性和其他缺点。

在为客户提供硬件建议时,我经常要处理此问题,这些建议是在IBM InfoSphere Data Explorer(基本上是大数据搜索引擎平台)之上构建应用程序的客户。Data Explorer的基本要求很小(可以在笔记本电脑上运行),但是针对任何特定大数据应用程序的硬件建议(请参阅:要求)归结为该应用程序的特定质量属性方案。数据应多快建立索引?每秒应处理多少个查询?可以接受多少停机时间?

识别特定的质量属性方案可以划清界限,并让我根据这些方案提出最低硬件要求的建议-X个CPU,Y个RAM数量,Z个千兆字节的硬盘驱动器,N个冗余系统。在我们的案例中,我们有一些基本公式(通过硬件实验室中的广泛测试确定),这些公式使用质量属性方案中的假设来帮助确定硬件建议的起点。该建议成为该特定大数据应用程序的要求。

在此示例中,对于任何生产系统,即使在技术上满足“最低”要求,笔记本电脑实际上也不会运行。该实现的上下文-特定的方案和数据,无论它是否在生产中运行,等等,都决定了硬件要求。

如果场景中的假设发生变化,那么硬件要求也将发生变化。因此,“需要Y GB RAM才能正常运行该软件”一词​​实际上是指“需要Y GB RAM来在Z小时或ABC docs / min的速度下抓取X百万个文档。”

最低支持的硬件要求

也就是说,硬件规格有望正常工作,并且您的支持小组已准备好进行故障排除。通常,这是您可以直接访问的一组硬件,无论是开发计算机还是某种测试实验室都可以访问。

其中一个例子是几乎所有已发布的Android应用程序。作为Android开发人员,您可以通过一些软件模拟器(可能至少在一些物理设备上)测试应用程序。但是有成千上万种运行Android的不同设备,其中许多...怪癖...可能会导致您的应用出现问题。在大多数情况下,如果用户遇到问题,您仍然会提供支持。在大多数情况下,即使您没有专门测试该硬件版本,用户也不会遇到问题。微软在Windows上也存在这个问题-有多少种不同的视频卡,主板,CPU,内存组合?

基本上,确定支持的最低硬件就像是说“该软件可以在我的机器上运行,我希望它可以在与我的机器类似的机器上运行,很多人已经在许多不同的机器上使用了该软件而没有问题,您的行驶里程可能会有所不同,并且如果您有任何问题,我会尽力帮助/解决,但我不能保证。”


0

对于某些应用程序,这些要求实际上可能是硬性要求,例如,当开发人员分析或分析其应用程序并确切知道要满足某些指定的性能基准时,需要多少兆触发器,MIPS,每秒多边形,数组工作集大小等。 。

对于小型开发商而言,成本可能是个问题。他们只有一个系统可用,因此他们宣布该系统的规格为最低要求,因为他们无法在其他任何东西(速度较慢,较小等)上测试该应用程序,并且对该应用程序的运行方式一无所知资源较少。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.