Bagaimana orang mendefinisikan persyaratan perangkat keras minimum untuk perangkat lunak?

21

Bagaimana orang mendefinisikan persyaratan perangkat keras minimum untuk perangkat lunak? Sebagai contoh: bagaimana sebuah perusahaan pengembangan perangkat lunak dapat memberitahu pelanggan bahwa mereka akan membutuhkan 8 GB RAM untuk menjalankan program dengan baik?

Byron
sumber

Jawaban:

31

Pertama, tidak semua persyaratan adalah persyaratan sulit, melainkan perangkat keras minimum yang didukung. Jika seseorang memiliki kurang dari minimum, mungkin berjalan - tetapi tidak secara optimal, atau mungkin tidak berjalan sama sekali. Dalam kedua kasus, ini bukan sistem yang didukung dan masalah yang Anda miliki adalah masalah Anda sendiri.

Cara paling sederhana untuk mendapatkan persyaratan perangkat keras adalah menebak. Pengembang melihat mesin mereka dan berkata, "Ya, itu berjalan pada saya, itulah persyaratannya."

Dalam lingkungan yang lebih ketat, perusahaan pengembangan memiliki serangkaian sistem pengujian. Mungkin tidak di rumah (pengembang apel non-rumah sesekali menggunakan Lab Kompatibilitas Apple ). Sebagai bagian dari proses pengujian, satu tes pada semua perangkat keras yang tersedia dan menentukan persyaratan minimum untuk menjalankannya.

Faktor lain dalam persyaratan perangkat keras adalah persyaratan dasar untuk sistem operasi. Secara teori, Windows 7 membutuhkan ram minimal 1GB untuk dijalankan. Jadi pengujian terhadap sistem 512 MB yang menjalankan Windows 7 tidak masuk akal.

Uji sistem yang berjalan dengan ram 1 GB. Apakah itu bekerja? Tidak ... perbarui ram. Ulangi pengujian dan peningkatan hingga aplikasi berfungsi dengan cara yang dapat didukung dan cantumkan sebagai persyaratan minimum.

Ketika kinerja menjadi bagian dari janji perangkat lunak, yang 'didukung' mencakup bahwa selain benar-benar berjalan, bahwa operasi memenuhi harapan kinerja minimum.


sumber
8
Jawaban yang solid. Tidak ada ruginya menambahkan bahwa kadang-kadang itu hanya masalah melemparkan anak panah metaforis ke dinding dan membuat tebakan. Ini pasti bisa menjadi proses yang sangat subyektif.
1
+1: Jawaban yang sangat bagus. Mungkin juga membantu untuk mencatat bahwa pengujian kinerja perangkat lunak sering menunjukkan persyaratan perangkat keras. Artinya, ini kurang tentang "apakah itu berjalan" dan lebih lanjut tentang melihat persyaratan perf. Jika ada persyaratan bahwa suatu operasi omembutuhkan <waktu tuntuk menyelesaikan, maka kombinasi perangkat keras apa pun yang memenuhi tujuan itu menjadi spesifikasi minimum.
Steven Evers
Hanya untuk berpikir, sistem dev harus normal secara signifikan beefier. Yang berarti pengembang melihatnya merangkak di setup nya tidak mungkin untuk menyimpulkan pekerjaan selesai. Kecuali, tentu saja, manajemen itu pelit bodoh.
Deduplicator
@Deduplicator Saya bisa menyebutkan perusahaan baru-baru ini yang memiliki devs di Dell 280s (kilas balik menjalankan gerhana dan JBoss di sana). Tentu, itu juga platform target - tetapi mereka hanya menjalankan IE.
6

Persyaratan perangkat keras terbagi dalam beberapa ember yang berbeda. Seringkali Anda akan memasukkan persyaratan dari beberapa ember ini ketika menentukan persyaratan perangkat keras khusus untuk sistem perangkat lunak apa pun yang Anda bangun.

Kendala Teknis dalam Arsitektur

Ini adalah jenis persyaratan yang mutlak harus dipenuhi oleh sistem yang dibangun dan secara khusus dirancang ke dalam sistem sejak awal. Misalnya, "prosesor x86 diperlukan."

Contoh mudah yang muncul di benak Anda adalah Microsoft Office untuk Mac. Awalnya Mac menggunakan CPU Power PC sementara Microsoft Windows secara ketat ditargetkan pada mesin "IBM Compatible" (kebanyakan menggunakan prosesor x86). Karena Windows dan Office hanya bekerja pada x86, satu set kode yang sama sekali baru (dengan kendala teknis berbeda) ditulis untuk mendukung Office pada Power PC untuk Mac OS. Setelah Mac pindah ke prosesor Intel x86, Power PC lama yang dioptimalkan Office untuk Mac tidak lagi berfungsi - dan kendala teknis sekali lagi berubah untuk versi baru Office untuk Mac pada Intel. Aplikasi yang dioptimalkan untuk 32 vs 64 bit adalah contoh mudah lainnya.

Persyaratan Perangkat Keras Tersirat

Terkadang Anda tidak secara aktif memilih untuk membatasi diri, tetapi keputusan lain yang Anda buat secara implisit memaksa Anda. Skenario umum adalah membangun di atas segala jenis kerangka kerja.

Sebagai contoh, jika Anda sedang membangun aplikasi .Net 4.0, .Net 4.0 memiliki persyaratan perangkat keras yang diperiksa melalui laboratorium perangkat keras Microsoft. Sekarang aplikasi Anda membutuhkan setidaknya persyaratan perangkat keras yang sama dengan kerangka kerja .Net 4.0.

Persyaratan Perangkat Keras Kontekstual

Sebagian besar waktu ketika Anda berbicara tentang persyaratan perangkat keras apa yang sebenarnya Anda bicarakan adalah bagaimana Anda mendukung skenario atribut kualitas tertentu. Hal-hal seperti kinerja, keandalan, ketersediaan, dan utilitas lainnya.

Ini adalah sesuatu yang saya tangani sering dalam membuat rekomendasi perangkat keras untuk pelanggan membangun aplikasi di atas IBM InfoSphere Data Explorer (pada dasarnya platform mesin pencari Big Data). Persyaratan dasar Data Explorer minimal (Anda dapat menjalankannya di laptop), tetapi rekomendasi perangkat keras untuk aplikasi Big Data spesifik apa pun (baca: persyaratan) mengarah ke skenario atribut kualitas tertentu untuk aplikasi tersebut. Seberapa cepat data harus diindeks? Berapa banyak permintaan per detik yang harus diproses? Berapa banyak waktu istirahat yang dapat diterima?

Mengidentifikasi skenario atribut kualitas spesifik menarik garis di pasir dan memungkinkan saya membuat rekomendasi untuk persyaratan perangkat keras minimum berdasarkan skenario tersebut - jumlah X CPU dengan jumlah Y RAM, Z Gigabytes hard drive, N sistem redundan. Dalam kasus kami, kami memiliki rumus dasar (ditentukan melalui pengujian ekstensif di laboratorium perangkat keras kami) yang menggunakan asumsi dari skenario atribut kualitas untuk membantu menentukan titik awal untuk rekomendasi perangkat keras. Rekomendasi ini menjadi persyaratan untuk aplikasi Big Data spesifik itu.

Dalam contoh ini, untuk sistem produksi apa pun, laptop benar-benar tidak akan melakukannya walaupun secara teknis memenuhi persyaratan "minimum". Konteks implementasi itu - skenario dan data spesifik, apakah itu berjalan dalam produksi atau tidak, dan seterusnya, menentukan persyaratan perangkat keras.

Jika asumsi dalam skenario berubah, maka persyaratan perangkat keras juga akan demikian. Jadi frasa, "Y GB RAM diperlukan untuk menjalankan perangkat lunak dengan benar," benar-benar berarti "Y GB RAM diperlukan untuk merayapi X juta dokumen dalam Z jam atau kecepatan dokumen ABC / menit."

Persyaratan Perangkat Keras Minimum yang Didukung

Yaitu, spesifikasi perangkat keras yang diharapkan bekerja dengan benar dan bahwa kelompok Dukungan Anda siap membantu memecahkan masalah. Biasanya ini adalah perangkat keras yang Anda miliki akses langsungnya, baik mesin pengembangan Anda atau melalui semacam laboratorium pengujian.

Salah satu contohnya adalah hampir semua aplikasi Android yang telah dirilis. Sebagai pengembang Android Anda menguji aplikasi Anda melalui beberapa simulator perangkat lunak, mungkin pada setidaknya beberapa perangkat fisik. Tetapi ada ribuan perangkat berbeda yang menjalankan Android, banyak di antaranya dengan sedikit ... keanehan ... yang dapat menyebabkan aplikasi Anda mengalami masalah. Dalam kebanyakan kasus, Anda masih akan menawarkan dukungan jika pengguna mengalami masalah. Dan dalam kebanyakan kasus, pengguna tidak akan mengalami masalah meskipun Anda tidak secara khusus menguji variasi perangkat keras itu. Microsoft juga memiliki masalah dengan Windows ini - berapa banyak kartu video, motherboard, cpu, kombinasi memori yang berbeda di luar sana?

Pada dasarnya, mengidentifikasi perangkat keras minimum yang didukung adalah seperti mengatakan "perangkat lunak ini berfungsi pada komputer saya, saya berharap bahwa itu akan bekerja pada mesin yang serupa dengan milik saya, banyak orang telah menggunakan perangkat lunak ini pada banyak mesin yang berbeda tanpa masalah, jarak tempuh Anda dapat bervariasi, dan jika Anda memiliki masalah, saya akan melakukan yang terbaik untuk membantu / memperbaikinya tetapi saya tidak dapat memberikan jaminan. "

Michael
sumber
0

Untuk beberapa aplikasi persyaratan sebenarnya mungkin persyaratan sulit, seperti ketika pengembang telah menganalisis atau membuat profil aplikasi mereka dan tahu persis berapa banyak megaflop, MIPS, poligon per detik, susunan ukuran set kerja, dll yang diperlukan untuk memenuhi beberapa tolok ukur kinerja yang ditentukan .

Untuk pengembang kecil, biaya mungkin menjadi masalah. Mereka hanya memiliki satu sistem yang tersedia, dan mereka menyatakan spesifikasi sistem sebagai minimum, karena mereka belum dapat menguji aplikasi pada hal lain (lebih lambat, lebih kecil, dll.) Dan memiliki sedikit petunjuk tentang bagaimana aplikasi akan melakukan dengan sumber daya yang lebih sedikit.

hotpaw2
sumber