Answers:
首先,并非所有要求都是硬性要求,而是最低支持的硬件。如果某人的值小于最小值,则可能会运行-但不是最佳状态,或者可能根本无法运行。无论哪种情况,它都不是受支持的系统,而您遇到的问题是您自己的。
获得硬件要求的最简单方法是猜测。开发人员看着他们的机器说:“是的,它是在我的机器上运行的,这就是要求。”
在更严格的环境中,开发公司拥有一套测试系统。它可能不在内部(非内部Apple开发人员有时会使用Apple兼容性实验室)。作为测试过程的一部分,将对所有可用硬件进行测试,并确定其最低运行要求。
硬件要求中的另一个因素是操作系统的基本要求。从理论上讲,Windows 7至少需要1GB的内存才能运行。因此,针对运行Windows 7的512 MB系统进行测试是没有意义的。
测试使用1 GB内存运行的系统。它行得通吗?不,升级公羊。重复测试和升级,直到应用程序以可支持的方式工作并将其列为最低要求。
当性能成为软件承诺的一部分时,“可支持”包括除实际运行外的操作,该操作符合最低性能期望。
o
花费的时间少于“时间” t
,那么满足该目标的任何硬件组合都将成为最低规格。
硬件需求分为两个不同的类别。在确定要构建的任何软件系统的特定硬件要求时,通常会包括其中几个要求。
架构中的技术约束
这些是内置系统绝对必须满足的要求,并且从一开始就专门针对系统进行设计。例如,“需要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,内存组合?
基本上,确定支持的最低硬件就像是说“该软件可以在我的机器上运行,我希望它可以在与我的机器类似的机器上运行,很多人已经在许多不同的机器上使用了该软件而没有问题,您的行驶里程可能会有所不同,并且如果您有任何问题,我会尽力帮助/解决,但我不能保证。”