İnsanlar yazılım için minimum donanım gereksinimlerini nasıl tanımlar?


21

İnsanlar yazılım için minimum donanım gereksinimlerini nasıl tanımlar? Örneğin: bir yazılım geliştirme şirketi müşteriye programı düzgün bir şekilde çalıştırmak için 8 GB RAM'e ihtiyaçları olacağını nasıl söyleyebilir?

Yanıtlar:


31

Öncelikle, tüm gereksinimler zor gereklilikler değil, asgari desteklenen donanımdır. Biri minimumdan daha azına sahipse, çalışabilir - ancak en uygun şekilde değil veya hiç çalışmayabilir. Her iki durumda da, desteklenen bir sistem değildir ve sahip olduğunuz sorunlar size aittir.

Donanım gereksinimlerini almanın en basit yolu tahminimdir. Geliştirici kendi makinesine bakar ve "Evet, benim için çalışır, gereksinimler budur" der.

Daha sıkı bir ortamda, geliştirme şirketinin bir test sistemleri paketi vardır. Evde olmayabilir (evde olmayan geliştiriciler zaman zaman Apple Uyumluluk Laboratuvarı'nı kullanır ). Test sürecinin bir parçası olarak, mevcut tüm donanım üzerinde bir test yapılır ve çalışması için minimum gereksinimleri belirler.

Donanım gereksinimlerindeki bir diğer faktör, işletim sistemi için temel gereksinimlerdir. Teoride, Windows 7'nin çalışması için minimum 1GB ram gerekir. Bu nedenle, Windows 7 çalıştıran 512 MB sisteme karşı test yapmak saçmadır.

Çalışan sistemi 1 GB ram ile test edin. Çalışıyor mu? Hayır ... koçu yükselt. Uygulama desteklenebilir bir şekilde çalışana kadar testi ve yükseltmeleri tekrarlayın ve bunları minimum gereksinimler olarak listeleyin.

Performans, yazılımın vaadinin bir parçası haline geldiğinde, “desteklenebilir”, fiilen çalışmaya ek olarak, işlemin minimum performans beklentisini karşıladığını da içerir.


8
Sağlam cevap. Bazı zamanların duvara metaforik bir ok atmanın ve bir tahminde bulunmanın meselesi olduğunu eklemek acı vermez. Kesinlikle çok öznel bir süreç olabilir.

1
+1: Çok iyi cevap. Yazılımın performans testinin çoğunlukla donanım gereksinimlerini gösterdiğini de belirtmek yardımcı olabilir. Yani, "koşuyor mu" hakkında daha az ve perf gereksinimlerine bakmak hakkında daha fazla. Bir işlemin tamamlanması o<zaman alırsa bir gereksinim varsa t, o zaman bu hedefi sağlayan donanım birleşimi minimum özellik olur.
Steven Evers

Sadece düşünce için, dev sistemler normalde önemli ölçüde daha bariz olmalıdır . Bu, geliştiricinin kurulumunda zorlukla gezindiğini görmesi anlamına gelir, işin bitmesi olası değildir. Tabii doğal olarak yönetim aptalca cimri değildi.
Deduplicator

@Deduplicator Dell 280s üzerinde devs olan yeni bir işveren bahsedebilirim (orada tutulması ve jboss çalışan flashback). Tabii, bu da hedef platformdu - ama sadece IE kullandılar.

6

Donanım gereksinimleri birkaç farklı kepçe içine düşer. Genellikle, oluşturduğunuz herhangi bir yazılım sistemi için belirli donanım gereksinimlerini belirlerken, bu kovaların birkaçından gelen gereksinimleri dahil edersiniz.

Mimarideki Teknik Kısıtlamalar

Bunlar, yerleşik sistem tarafından kesinlikle karşılanması gereken ve sisteme özel olarak baştan tasarlanan gereksinim türleridir. Örneğin, "x86 işlemci gereklidir."

Akla gelen kolay bir örnek, Mac için Microsoft Office. Başlangıçta Mac'ler Power PC CPU'ları kullanırken, Microsoft Windows kesinlikle "IBM Uyumlu" makinelere yönelikti (çoğunlukla x86 işlemci kullanıyordu). Windows ve böylece Office yalnızca x86'da çalıştığı için, Mac OS için Office Power Office'i desteklemek üzere tamamen yeni bir kod seti (farklı teknik kısıtlamalara sahip) yazıldı. Mac Intel x86 işlemcilere geçtiğinde, Mac için eski Power PC optimize Office artık işe yaramadı ve Intel'deki Mac için yeni bir Office sürümü için teknik kısıtlamalar bir kez daha değişti. 32 ve 64 bit için optimize edilmiş uygulamalar başka bir kolay örnektir.

Örtük Donanım Gereksinimleri

Bazen, kendinizi aktif olarak sınırlamayı seçmezsiniz, ancak aldığınız diğer kararlar size zorla gereksinimleri zorlar. Ortak bir senaryo, her türlü çerçevenin üstüne inşa etmektir.

Örnek olarak, bir .Net 4.0 uygulaması oluşturuyorsanız, .Net 4.0’ın Microsoft’un donanım laboratuvarları tarafından onaylanmış donanım gereksinimleri vardır. Artık uygulamanız için en azından .Net 4.0 çerçevesinin gerektirdiği donanım gereklilikleri gerekiyor.

İçeriksel Donanım Gereksinimleri

Donanım gereksinimlerinden bahsettiğiniz çoğu zaman gerçekte bahsettiğiniz şey, özel kalite öznitelik senaryolarını nasıl desteklediğinizdir. Performans, güvenilirlik, kullanılabilirlik ve diğer özellikler gibi şeyler.

Bu, IBM InfoSphere Data Explorer (temelde bir Büyük Veri arama motoru platformu) üzerine uygulamalar geliştiren müşteriler için donanım önerileri yaparken sık sık uğraştığım bir şey. Data Explorer'ın temel gereksinimleri minimum (bir dizüstü bilgisayarda çalıştırabilirsiniz), ancak herhangi bir belirli Büyük Veri uygulaması (okuma: gereksinimler) için donanım önerileri, söz konusu uygulama için belirli kalite özellik senaryolarına iniyor. Veriler ne kadar çabuk endekslenmelidir? Saniyede kaç sorgu işlenmelidir? Ne kadar iniş süresi kabul edilebilir?

Özel kalite özelliği senaryolarının belirlenmesi, kumda bir çizgi çizer ve bu senaryolara dayanarak minimum donanım gereksinimleri için öneride bulunmama izin verir - X Y sayısı RAM, X Gigabayt sabit disk, N yedek sistem sayısı. Bizim durumumuzda, bir donanım önerisi için bir başlangıç ​​noktası belirlemeye yardımcı olmak için kalite öznitelik senaryolarından varsayımları kullanan temel donanımlara (donanım laboratuvarlarımızdaki kapsamlı testlerle tespit edilmiştir) sahibiz. Bu öneri, söz konusu Büyük Veri uygulaması için gereklilik haline gelir.

Bu örnekte, herhangi bir üretim sistemi için, bir dizüstü bilgisayar teknik olarak "asgari" gereklilikleri karşılamasına rağmen gerçekten yapmaz . Bu uygulamanın kapsamı - üretimde çalışıp çalışmamasına bakılmaksızın özel senaryolar ve veriler, donanım gereksinimlerini belirler.

Senaryolardaki varsayımlar değişirse, donanım gereksinimleri de değişecektir. Bu nedenle, "Y GB RAM yazılımı düzgün bir şekilde çalıştırmak için gerekli" ifadesi gerçekten "X Milyon belgeleri Z saat veya ABC belg / dakika oranında taramak için Y GB RAM gerekli" anlamına gelir.

Minimum Desteklenen Donanım Gereksinimleri

Yani, donanım özelliklerinin doğru çalışması bekleniyor ve Destek grubunuz sorun gidermeye yardımcı olmak için hazırlandı. Genel olarak bu, geliştirme makineniz veya bir tür test laboratuvarı aracılığıyla doğrudan erişime sahip olduğunuz donanım kümesidir.

Buna bir örnek, hemen hemen serbest bırakılmış olan herhangi bir Android uygulamasıdır. Bir Android geliştiricisi olarak, muhtemelen en az bir kaç fiziksel aygıtta, bazı yazılım simülatörleri üzerinden uygulamanızı test edersiniz. Ancak Android'in çalıştığı 1000'lerce farklı cihaz var ve bunların çoğu uygulamanızın sorun yaşamaya başlamasına neden olabilecek küçük ... tuhaflıklar içeriyor. Çoğu durumda, bir kullanıcı sorunla karşılaşırsa yine de destek sunursunuz. Çoğu durumda, özellikle donanım değişimini test etmemiş olsanız bile, kullanıcılar sorunla karşılaşmazlar. Microsoft bu sorunu Windows'da da yaşıyor - kaç tane farklı ekran kartı, anakart, işlemci, bellek kombinasyonu var?

Temel olarak, asgari desteklenmiş donanımları tanımlamak, "bu yazılım makinemde çalışıyor, benimkine benzer makinelerde çalışmasını bekliyorum, pek çok kişi bu yazılımı problemsiz olarak birçok farklı makinede kullandı. Eğer bir problemin varsa, yardım etmek / düzeltmek için elimden geleni yapacağım ama hiçbir garanti veremem. "


0

Bazı uygulamalar için, gereksinimler, geliştirici, uygulamalarını analiz ettiğinde veya profillendirdiğinde ve tam olarak kaç megaflo, MIPS, saniyede çokgen, dizi çalışma kümesi boyutlarının vb. Belirli bir performans ölçütünü karşılamak için ne kadar gerekli olduğunu bildiği gibi, zor şartlar olabilir. .

Küçük geliştiriciler için maliyet söz konusu olabilir. Yalnızca bir sistem kullanılabilir durumdadır ve bu nedenle, uygulamayı başka hiçbir şeyde (yavaş, küçük vb.) Test edemediklerinden ve uygulamanın nasıl yapılacağına dair çok az ipucu bulunduğundan, sistemin özelliklerini minimum olarak beyan ederler. daha az kaynakla.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.