Как люди определяют минимальные требования к оборудованию для программного обеспечения?

21

Как люди определяют минимальные требования к оборудованию для программного обеспечения? Например: как компания-разработчик программного обеспечения может сказать клиенту, что для правильной работы программы им потребуется 8 ГБ ОЗУ?

Byron
источник

Ответы:

31

Во-первых, не все требования - жесткие требования, а минимальное поддерживаемое оборудование. Если у кого-то меньше минимума, он может работать - но не оптимально, или он может вообще не работать. В любом случае, это не поддерживаемая система, и проблемы у вас есть ваши.

Самый простой способ получить требования к оборудованию - это угадать. Разработчик смотрит на свою машину и говорит: «Да, она работает на моей, это требования».

В более жестких условиях компания-разработчик имеет набор тестовых систем. Это может быть не дома (разработчики не из Apple иногда используют Apple Compatibility Lab ). В рамках процесса тестирования один тестирует все доступное оборудование и определяет минимальные требования для его запуска.

Другим фактором в требованиях к оборудованию являются базовые требования для операционной системы. Теоретически для запуска Windows 7 требуется минимум 1 ГБ оперативной памяти. Таким образом, тестирование против 512 МБ системы под управлением Windows 7 не имеет смысла.

Проверьте работоспособность системы с 1 ГБ оперативной памяти. Это работает? Нет ... обновить баран. Повторяйте тестирование и обновления до тех пор, пока приложение не будет работать должным образом, и перечислите их как минимальные требования.

Когда производительность становится частью обещания программного обеспечения, «поддерживаемое» включает в себя то, что помимо фактического выполнения, операция соответствует минимальному ожидаемому уровню производительности.


источник
8
Твердый ответ. Не мешало бы добавить, что иногда нужно просто метать метафорический дротик в стену и придумывать догадки. Это определенно может быть очень субъективным процессом.
1
+1: очень хороший ответ. Также может помочь отметить, что тестирование производительности программного обеспечения часто указывает на требования к оборудованию. То есть, речь идет не столько о том, «работает ли он», сколько о взгляде на требования к производительности. Если существует требование, что операция oзанимает <время tдля завершения, тогда любая аппаратная комбинация, которая удовлетворяет этой цели, становится минимальной спецификацией.
Стивен Эверс
Просто для размышления, системы разработки обычно должны быть значительно лучше. Это означает, что разработчик, видящий, что он едва ползает по своей установке, вряд ли решит, что работа выполнена. Если, естественно, управление было тупо скупым.
Дедупликатор
@Deduplicator Я мог бы упомянуть недавнего работодателя, у которого были разработчики на Dell 280s (воспоминания о запуске eclipse и jboss там). Конечно, это тоже была целевая платформа - но они запускали только IE.
6

Требования к оборудованию попадают в несколько разных групп. Часто вы будете включать требования из нескольких этих групп при определении конкретных требований к оборудованию для любой программной системы, которую вы строите.

Технические ограничения в архитектуре

Это те требования, которые обязательно должны быть удовлетворены встроенной системой и специально разработаны с самого начала. Например, «требуется процессор x86».

Простой пример, который приходит на ум - это Microsoft Office для Mac. Первоначально Mac использовали процессоры Power PC, в то время как Microsoft Windows была строго ориентирована на компьютеры, совместимые с IBM (в основном с процессорами x86). Поскольку Windows и, следовательно, Office работали только на x86, был написан совершенно новый набор кода (с другими техническими ограничениями) для поддержки Office на Power PC для Mac OS. После перехода Mac на процессоры Intel x86 старый оптимизированный Power PC Office для Mac перестал работать - и технические ограничения снова изменились для новой версии Office для Mac на Intel. Приложения, оптимизированные для 32-битных и 64-битных приложений, являются еще одним простым примером.

Неявные требования к оборудованию

Иногда вы не хотите активно ограничивать себя, но другие решения, которые вы принимаете, неявно навязывают вам требования. Распространенным сценарием является построение поверх любого вида фреймворка.

Например, если вы создаете приложение .Net 4.0, у .Net 4.0 есть требования к оборудованию, проверенные в аппаратных лабораториях Microsoft. Теперь ваше приложение требует как минимум тех же аппаратных требований, что и для .Net 4.0 framework.

Контекстные требования к оборудованию

В большинстве случаев, когда вы говорите о требованиях к оборудованию, вы на самом деле говорите о том, как вы поддерживаете конкретные сценарии атрибутов качества. Такие вещи, как производительность, надежность, доступность и другие возможности.

Это то, с чем я часто сталкиваюсь, когда даю рекомендации по аппаратному обеспечению для клиентов, создающих приложения на основе IBM InfoSphere Data Explorer (в основном это платформа для поиска больших данных). Основные требования к Data Explorer минимальны (вы можете запустить его на ноутбуке), но рекомендации к оборудованию для любого конкретного приложения Big Data (читай: требования) сводятся к конкретным сценариям атрибутов качества для этого приложения. Как быстро должны быть проиндексированы данные? Сколько запросов в секунду должно быть обработано? Сколько времени простоя приемлемо?

Идентификация определенных сценариев атрибутов качества рисует линию в песке и позволяет мне рекомендовать минимальные требования к оборудованию на основе этих сценариев - X количество процессоров с объемом оперативной памяти Y, Z гигабайт жестких дисков, N резервированных систем. В нашем случае у нас есть базовые формулы (определенные путем всестороннего тестирования в наших аппаратных лабораториях), которые используют предположения из сценариев атрибутов качества, чтобы помочь определить отправную точку для рекомендации по оборудованию. Эта рекомендация становится требованием для этого конкретного приложения Big Data.

В этом примере для любой производственной системы ноутбук действительно не подойдет, хотя технически он соответствует «минимальным» требованиям. Контекст этой реализации - конкретные сценарии и данные, независимо от того, запущены они в работе или нет, и т. Д., Диктуют требования к оборудованию.

Если предположения в сценариях изменятся, то изменятся и требования к оборудованию. Таким образом, фраза «Y ГБ ОЗУ требуется для правильной работы программного обеспечения» на самом деле означает «Y ГБ ОЗУ необходима для сканирования X миллионов документов в течение Z часов или со скоростью ABC док / мин».

Минимальные поддерживаемые требования к оборудованию

То есть спецификации оборудования должны работать правильно, и ваша группа поддержки готова помочь в устранении неполадок. Как правило, это набор оборудования, к которому у вас есть прямой доступ, либо на вашей машине для разработки, либо в какой-либо лаборатории тестирования.

Одним из примеров этого является практически любое приложение для Android, которое было выпущено. Как разработчик Android, вы тестируете свое приложение через некоторые программные симуляторы, возможно, по крайней мере, на нескольких физических устройствах. Но есть тысячи различных устройств под управлением Android, многие из которых с небольшими ... причудами ... которые могут вызвать проблемы в вашем приложении. В большинстве случаев вы все равно будете предлагать поддержку, если у пользователя возникнут проблемы. И в большинстве случаев пользователи не будут сталкиваться с проблемами, даже если вы специально не тестировали этот вариант оборудования. У Microsoft тоже есть проблема с Windows - сколько существует различных комбинаций видеокарт, материнских плат, процессоров, памяти?

По сути, определение минимально поддерживаемого оборудования - это все равно, что сказать: «Это программное обеспечение работает на моей машине, я ожидаю, что оно будет работать на машинах, похожих на мою, многие люди без проблем использовали это программное обеспечение на множестве разных машин, ваш пробег может отличаться, и если у вас есть проблема, я сделаю все возможное, чтобы помочь / исправить, но я не могу дать никаких гарантий. "

Майкл
источник
0

Для некоторых приложений требования могут быть жесткими, например, когда разработчик проанализировал или профилировал свое приложение и точно знает, сколько мегафлопс, MIPS, полигонов в секунду, размеров рабочего набора массива и т. Д. Требуется для достижения определенного заданного показателя производительности ,

Для небольших разработчиков стоимость может быть проблемой. У них есть только одна доступная система, и поэтому они объявляют спецификации этой системы как минимум, так как они не смогли протестировать приложение на чем-то другом (медленнее, меньше и т. Д.) И мало что знают о том, как приложение будет работать с меньшими ресурсами.

hotpaw2
источник