Wie definieren die Leute die minimalen Hardwareanforderungen für Software? Beispiel: Wie kann ein Softwareentwicklungsunternehmen dem Kunden mitteilen, dass er 8 GB RAM benötigt, um das Programm ordnungsgemäß auszuführen?
quelle
Wie definieren die Leute die minimalen Hardwareanforderungen für Software? Beispiel: Wie kann ein Softwareentwicklungsunternehmen dem Kunden mitteilen, dass er 8 GB RAM benötigt, um das Programm ordnungsgemäß auszuführen?
Zunächst einmal sind nicht alle Anforderungen harte Anforderungen, sondern die unterstützte Mindesthardware. Wenn jemand weniger als das Minimum hat, kann es ausgeführt werden - aber nicht optimal, oder es kann überhaupt nicht ausgeführt werden. In beiden Fällen ist es kein unterstütztes System und die Probleme, die Sie haben, sind Ihre eigenen.
Der einfachste Weg, um die Hardwareanforderungen zu ermitteln, ist das Erraten. Der Entwickler schaut auf seine Maschine und sagt: "Ja, es läuft auf meiner, das sind die Anforderungen."
In einer strengeren Umgebung verfügt das Entwicklungsunternehmen über eine Reihe von Testsystemen. Möglicherweise ist es nicht im Haus (Apple-Entwickler, die nicht im Haus sind, verwenden gelegentlich das Apple Compatibility Lab ). Im Rahmen des Testprozesses wird die gesamte verfügbare Hardware getestet und die Mindestanforderungen für die Ausführung festgelegt.
Ein weiterer Faktor für die Hardwareanforderungen sind die Basisanforderungen für das Betriebssystem. Theoretisch benötigt Windows 7 mindestens 1 GB RAM, um ausgeführt zu werden. Das Testen mit einem 512-MB-System unter Windows 7 ist daher unsinnig.
Testen Sie das System mit 1 GB RAM. Funktioniert es? Nein ... rüste den Widder auf. Wiederholen Sie den Test und die Upgrades, bis die Anwendung auf unterstützende Weise funktioniert, und geben Sie diese als Mindestanforderungen an.
Wenn die Leistung Teil des Versprechens der Software wird, beinhaltet das "Unterstützbare" neben der tatsächlichen Ausführung auch, dass die Operation die minimalen Leistungserwartungen erfüllt.
o
<Zeit benötigt,t
um abgeschlossen zu werden, wird jede Hardwarekombination, die dieses Ziel erfüllt, zur min-Spezifikation.Die Hardwareanforderungen lassen sich in verschiedene Bereiche unterteilen. Oft werden Sie Anforderungen aus einigen dieser Bereiche einbeziehen, wenn Sie bestimmte Hardwareanforderungen für ein von Ihnen erstelltes Softwaresystem ermitteln.
Technische Einschränkungen in der Architektur
Diese Art von Anforderungen muss das gebaute System unbedingt erfüllen und wird von Anfang an speziell in das System integriert. Beispiel: "x86-Prozessor ist erforderlich."
Ein einfaches Beispiel ist Microsoft Office für Mac. Ursprünglich verwendeten Macs Power PC-CPUs, während Microsoft Windows ausschließlich auf "IBM-kompatible" Computer abzielte (meistens mit x86-Prozessoren). Da Windows und damit Office nur auf x86 funktionierten, wurde ein völlig neuer Satz von Code (mit unterschiedlichen technischen Einschränkungen) geschrieben, um Office auf Power PC für Mac OS zu unterstützen. Nachdem Mac auf Intel x86-Prozessoren umgestiegen war, funktionierte das alte, für Power PC optimierte Office für Mac nicht mehr - und die technischen Einschränkungen wurden für eine neue Version von Office für Mac unter Intel erneut geändert. Ein weiteres einfaches Beispiel sind für 32- oder 64-Bit-Anwendungen optimierte Anwendungen.
Implizite Hardwareanforderungen
Manchmal entscheiden Sie sich nicht aktiv dafür, sich einzuschränken, aber andere Entscheidungen, die Sie treffen, erzwingen implizit Anforderungen an Sie. Ein gängiges Szenario basiert auf jeder Art von Framework.
Wenn Sie beispielsweise eine .Net 4.0-Anwendung erstellen, gelten für .Net 4.0 Hardwareanforderungen, die in den Hardwarelabors von Microsoft geprüft wurden. Jetzt erfordert Ihre Anwendung mindestens die gleichen Hardwareanforderungen wie das .Net 4.0-Framework.
Kontextbezogene Hardwareanforderungen
Wenn Sie über Hardwareanforderungen sprechen, geht es in der Regel darum, wie Sie bestimmte Szenarien mit Qualitätsattributen unterstützen. Dinge wie Leistung, Zuverlässigkeit, Verfügbarkeit und andere Funktionen.
Mit dieser Problematik beschäftige ich mich häufig mit der Abgabe von Hardwareempfehlungen für Kunden, die Anwendungen auf der Basis von IBM InfoSphere Data Explorer (im Grunde eine Big-Data-Suchmaschinenplattform) erstellen. Die grundlegenden Anforderungen von Data Explorer sind minimal (Sie können es auf einem Laptop ausführen), die Hardwareempfehlungen für eine bestimmte Big Data-Anwendung (lesen Sie: Anforderungen) hängen jedoch von bestimmten Szenarien mit Qualitätsattributen für diese Anwendung ab. Wie schnell sollen Daten indiziert werden? Wie viele Anfragen pro Sekunde sollen bearbeitet werden? Wie viel Ausfallzeit ist akzeptabel?
Das Identifizieren spezifischer Szenarien für Qualitätsattribute zeichnet eine Linie im Sand und lässt mich eine Empfehlung für minimale Hardwareanforderungen abgeben, die auf diesen Szenarien basieren - X Anzahl von CPUs mit Y RAM, Z Gigabyte Festplatten, N redundante Systeme. In unserem Fall verfügen wir über grundlegende Formeln (die durch ausführliche Tests in unseren Hardwarelabors ermittelt wurden), die Annahmen aus den Qualitätsattributszenarien verwenden, um einen Ausgangspunkt für eine Hardwareempfehlung zu ermitteln. Diese Empfehlung wird zur Voraussetzung für diese spezielle Big-Data-Anwendung.
In diesem Beispiel reicht ein Laptop für jedes Produktionssystem nicht aus, obwohl er technisch die "Mindest" -Anforderungen erfüllt. Der Kontext dieser Implementierung - die spezifischen Szenarien und Daten, unabhängig davon, ob sie in der Produktion ausgeführt werden oder nicht usw. - bestimmen die Hardwareanforderungen.
Wenn sich die Annahmen in den Szenarien ändern, ändern sich auch die Hardwareanforderungen. Der Ausdruck "Y GB RAM ist erforderlich, um die Software ordnungsgemäß auszuführen" bedeutet in Wirklichkeit "Y GB RAM ist erforderlich, um X Millionen Dokumente in Z Stunden oder einer Rate von ABC-Dokumenten / Minute zu crawlen."
Minimale unterstützte Hardwareanforderungen
Das heißt, die Hardwarespezifikationen, von denen erwartet wird, dass sie ordnungsgemäß funktionieren, und Ihre Support-Gruppe ist bereit, bei der Problembehandlung zu helfen. Im Allgemeinen handelt es sich hierbei um die Hardware, auf die Sie direkten Zugriff haben, entweder über Ihre Entwicklungsmaschine oder über ein Testlabor.
Ein Beispiel hierfür ist so ziemlich jede Android-App, die veröffentlicht wurde. Als Android-Entwickler testen Sie Ihre App mithilfe einiger Software-Simulatoren, wahrscheinlich auf mindestens einigen physischen Geräten. Aber es gibt Tausende verschiedener Geräte, auf denen Android ausgeführt wird, von denen viele kleine ... Macken ... aufweisen, die dazu führen können, dass Ihre App auf Probleme stößt. In den meisten Fällen bieten Sie weiterhin Support an, wenn ein Benutzer auf Probleme stößt. In den meisten Fällen treten bei Benutzern keine Probleme auf, obwohl Sie diese Hardwarevariation nicht speziell getestet haben. Microsoft hat dieses Problem auch mit Windows - wie viele verschiedene Grafikkarten-, Motherboard-, CPU- und Speicherkombinationen gibt es?
Grundsätzlich bedeutet das Ermitteln der unterstützten Mindesthardware, dass "diese Software auf meinem Computer funktioniert. Ich gehe davon aus, dass sie auf ähnlichen Computern wie ich funktioniert. Viele Leute haben diese Software ohne Probleme auf vielen verschiedenen Computern verwendet. Ihre Laufleistung kann variieren Wenn Sie ein Problem haben, werde ich mein Bestes tun, um zu helfen / zu beheben, aber ich kann keine Garantien abgeben. "
quelle
Für einige Anwendungen können die Anforderungen tatsächlich harte Anforderungen sein, z. B. wenn der Entwickler die App analysiert oder ein Profil erstellt hat und genau weiß, wie viele Megaflops, MIPS, Polygone pro Sekunde, Array-Arbeitsgruppengrößen usw. erforderlich sind, um einen bestimmten Leistungsbenchmark zu erfüllen .
Für kleine Entwickler können die Kosten das Problem sein. Sie haben nur ein System zur Verfügung und erklären daher die Systemspezifikationen als Minimum, da sie die App auf nichts anderem (langsamer, kleiner usw.) testen konnten und wenig Ahnung haben, wie die App funktionieren würde mit weniger Ressourcen.
quelle