Panduan Rekayasa Utama untuk Desain Sistem dalam Perangkat Keras dan Perangkat Lunak

Dipublikasikan oleh Syayyidatur Rosyida

14 Mei 2024, 10.35

sumber: collimator.ai

Saat ini, sangat abstrak untuk membayangkan penerapan sistem perangkat keras atau perangkat lunak yang berfungsi penuh tanpa menjalani proses desain yang ekstensif dan menyeluruh. Desain sistem adalah proses mengkonseptualisasikan, mendefinisikan, dan menggambarkan berbagai modul, komponen, dan unit sistem atau produk baru. Proses desain sistem yang komprehensif akan menguraikan segala sesuatu tentang sebuah sistem, mulai dari komponen dan firmware hingga antarmuka perangkat lunak-manusia. Seiring berkembangnya inovasi teknologi, rekayasa desain sistem telah menjadi bidang studi tersendiri. Desain sistem sekarang distandarisasi menjadi disiplin ilmu formal dan insinyur sistem memainkan peran penting dalam sebagian besar organisasi teknik.

Metodologi pengembangan produk

Proses pengembangan sistem menggambarkan aliran aktivitas dan tahapan yang terlibat dalam pengembangan sistem atau produk, mulai dari konseptualisasi hingga komersialisasi. Ada dua metodologi pengembangan sistem yang utama:

  • Proses Pengembangan Air Terjun (Langkah demi Langkah)
  • Proses Pengembangan Agile (Pergeseran ke Kiri)

Pengembangan air terjun

Untuk waktu yang lama, sistem dan produk sebagian besar dikembangkan dalam urutan berurutan. Dari studi kelayakan, implementasi, hingga pengujian. Langkah-langkah tersebut sering kali diikuti dengan urutan yang ketat, meninggalkan pengujian produk hingga akhir pengembangan. Hal ini dikenal sebagai proses pengembangan waterfall. Proses ini menggambarkan rangkaian peristiwa yang tak tergoyahkan dengan kekakuan yang tinggi dan sedikit ruang untuk pengujian cepat.

Karena proses waterfall, banyak organisasi akan memulai pengembangan produk dan tidak pernah melihatnya sampai akhir, karena beberapa kesalahan dan bug terlalu rumit dan praktis tidak dapat diperbaiki pada saat terdeteksi. Selain itu, proses ini hanya menyisakan sedikit ruang untuk inovasi dan peningkatan konsep yang berkelanjutan.

Saat ini, proses pengembangan waterfall dapat berguna untuk proyek-proyek idealis dengan sedikit atau tanpa kerumitan. Namun, untuk sistem yang rumit dan masif, menjadi tidak mungkin untuk mengembangkan produk tanpa secara berulang-ulang memeriksa keberhasilan dengan tugas-tugas yang lebih kecil dan mengembangkannya dari sana.

Pengembangan agile - gerakan bergeser ke kiri

Beberapa dekade yang lalu, para insinyur sistem menemukan pendekatan yang lebih baik yang dikenal sebagai Proses Pengembangan Tangkas, yang juga disebut Gerakan Bergeser ke Kiri, di mana pengujian dilakukan berulang kali dan dengan unit-unit kecil di awal proses pengembangan. Dengan cara ini, bug dapat ditemukan lebih awal, perbaikan dapat dilakukan tepat waktu, dan anggaran tidak akan membengkak.

Jika dilakukan dengan baik, hal ini memungkinkan para insinyur untuk secara berulang kali mengurangi risiko pengembangan produk dengan memulai dari bagian pengembangan yang paling berisiko ketika biaya untuk mengubahnya rendah, kemampuan untuk mengubahnya tinggi, dan tingkat investasinya masih rendah.

Geser ke Kiri. Pelajari Lebih Awal. Belajar Lebih Cepat

Sumber: collimator.ai

Manfaat bergeser ke kiri dalam desain sistem

Berbeda dengan proses pengembangan waterfall di mana sebagian besar bentuk pengujian ditunda hingga akhir, mengikuti metodologi agile, menggeser ke kiri, dan menguji lebih awal memiliki beberapa manfaat sebagai berikut: 

  • Bug diidentifikasi saat unit dikembangkan
  • Kesalahan diselesaikan secara efektif sebelum menyebar ke bagian lain dari sistem
  • Fitur baru dapat diperkenalkan kemudian tanpa membahayakan produk inti
  • Menghindari kejutan di menit-menit terakhir pada jadwal dan menyederhanakan verifikasi dan validasi
  • Memungkinkan pengembang membuat produk dan sistem yang solid, berkualitas tinggi, dan stabil

Proses pengembangan produk

Umumnya, produk terdiri dari beberapa sistem yang perlu dirancang, diuji, dan divalidasi sebelum diluncurkan. Untuk mempermudah, kami akan mengelompokkan semua sistem ke dalam dua kategori besar: perangkat keras dan perangkat lunak. CATATAN: untuk tujuan tulisan ini, kami menyertakan pengembangan firmware sebagai bagian dari perangkat lunak, bukan perangkat keras. Hal ini biasanya bervariasi dari satu perusahaan ke perusahaan lainnya.

Proses desain produk dimulai dengan cara yang sama untuk semua komponen sistem dengan konsep produk dan studi kelayakan, tetapi bercabang agar sesuai dengan kebutuhan proses desain masing-masing sistem. Kemudian bergabung kembali bersama dengan peluncuran prototipe yang berfungsi penuh yang secara iteratif ditingkatkan hingga siap untuk memasuki proses peluncuran produk.

Desain Sistem dalam Tinjauan Perangkat Keras dan Perangkat Lunak

Sumber: collimator.ai

Konsep produk

Konsep produk adalah tanda kehidupan pertama untuk sebuah produk yang dimaksudkan. Konsep produk adalah ide atau inovasi yang ingin Anda kembangkan. Konsep ini mencakup tujuan dari produk baru, gambaran umum tentang produk tersebut, dan analisis masalah pengguna yang ingin dipecahkan.

Dalam beberapa kasus, ini juga dapat mencakup hal-hal seperti sketsa kasar atau konsep pikiran dari desain yang diinginkan, ukuran pasar, analisis pesaing dan posisi, dan analisis desain.

Analisis kelayakan

Lebih dikenal sebagai studi kelayakan, analisis kelayakan menguraikan kebutuhan pengguna atau masalah yang akan diselesaikan oleh produk yang dimaksud secara lebih rinci. Tujuan utamanya adalah untuk menentukan di mana area utama yang tidak pasti dan apakah kebutuhan pengguna dapat dipenuhi dengan cara yang hemat biaya.

Untuk sistem yang rumit seperti yang ditemukan di sektor otomotif, kedirgantaraan dan pertahanan, serta energi, studi kelayakan dan analisis ketidakpastian dilakukan dengan membuat model virtual dengan ketelitian rendah dari sistem yang perlu dibuat. Model ini akan menampilkan cara kerja sistem dan menunjukkan antarmuka yang perlu dikembangkan di antara sistem yang berbeda. Ketika model sudah siap, model tersebut akan disimulasikan dalam ratusan atau ribuan kali percobaan untuk memvariasikan parameter yang data pengujiannya belum tersedia. 

Dokumentasi desain sistem kemudian akan diperbarui dengan hasil yang mencakup peluang keberhasilan, kriteria penerimaan, dan area risiko utama. Tergantung pada tingkat kesiapan teknologi (TRL) dari sistem yang sedang dikembangkan, kriteria untuk masuk ke tahap implementasi akan bervariasi. Sebagai contoh, sebuah pesawat komersial mungkin perlu menunjukkan bahwa ada lebih dari 99% peluang keberhasilan dari simulasi ini, tetapi pesawat hipersonik yang hanya memiliki sedikit data historis yang tersedia mungkin hanya perlu menunjukkan 50% keberhasilan. 

Proses desain sistem

Seperti yang telah disebutkan di atas, dalam blog ini kami akan mengelompokkan proses desain sistem menjadi: 

  • Sistem perangkat keras
  • Sistem perangkat lunak (termasuk firmware)

Sistem perangkat keras adalah bagian fisik dari sebuah produk. Sistem ini berisi komponen aktif dan bagian aktif yang bergerak di dalam ruang dari waktu ke waktu. Pengembangan perangkat keras memerlukan pertimbangan berbagai bagian material, elektrik, dan mekanik, yang semuanya diperhitungkan dalam proses desain.

Sistem perangkat lunak adalah kumpulan instruksi, prosedur, dan dokumentasi yang menjalankan berbagai tugas pada sistem komputer. Perangkat lunak terdiri dari perangkat lunak tertanam (juga dikenal sebagai firmware) dan perangkat lunak aplikasi. Perangkat lunak tertanam menyediakan kontrol tingkat rendah untuk perangkat keras spesifik perangkat. Desain perangkat lunak tertanam melibatkan pembuatan fungsi dasar perangkat dan menyediakan layanan untuk perangkat lunak abstraksi tingkat tinggi seperti sistem operasi dan aplikasi. Perangkat lunak aplikasi menjalankan fungsi tertentu secara langsung untuk pengguna akhir atau dalam beberapa kasus, aplikasi lain. Desain perangkat lunak aplikasi melibatkan pembuatan aplikasi perangkat lunak sebagai bagian dari sistem yang lebih besar untuk memenuhi kebutuhan pengguna akhir.

Desain dan implementasi perangkat keras

Ikhtisar Proses Pengembangan Perangkat Keras

Sumber: collimator.ai 

Ada tiga komponen penting dalam sistem perangkat keras yang perlu dirancang:

  • Komponen listrik
  • Komponen mekanis
  • Komponen sistem

Berlawanan dengan asumsi umum, proses desain perangkat keras sebenarnya kompleks dan rumit. Sedemikian rumitnya sehingga ada pepatah umum di antara para insinyur perangkat keras yang mengatakan bahwa “perangkat keras itu sulit”. Hal ini karena sistem fisik beroperasi di dunia nyata di mana permutasi yang perlu diperhitungkan tidak terbatas. Akibatnya, proses desain perangkat keras tidak pernah linier dan banyak insinyur perangkat keras akan mengikuti proses standar de-risking yang berulang-ulang.

Insinyur perangkat keras biasanya akan memulai dengan model virtual yang dibuat dalam studi kelayakan dan meningkatkan tingkat ketepatan simulasi secara khusus untuk bagian sistem yang paling berisiko. Mereka akan memastikan bahwa mereka meningkatkan tingkat kesiapan teknologi (TRL) sistem untuk bagian tersebut sebelum beralih ke bagian sistem yang tidak terlalu berisiko. Untuk komponen perangkat keras yang tidak dapat disimulasikan, mereka akan mengembangkan prototipe dengan cepat menggunakan teknologi pencetakan 3D, papan tempat memotong roti, dan komponen sederhana yang tersedia di pasaran untuk mengembangkan prototipe yang berfungsi yang kemudian dapat diuji.

Proses pengurangan risiko berulang dan pergeseran ke kiri ini memungkinkan para insinyur perangkat keras untuk mendapatkan wawasan lebih cepat dan menyelesaikan area ketidakpastian tertinggi sejak dini. Dengan demikian, mengurangi risiko pembengkakan jadwal dan kejutan di menit-menit terakhir.

Komponen listrik

Spesifikasi papan

  • Spesifikasi papan adalah proses terperinci yang memberikan informasi tentang semua komponen papan sirkuit pusat yang mengontrol semua aktivitas listrik dan transmisi data. Ini menentukan jenis papan sirkuit tercetak yang tepat untuk dibuat dengan rincian jumlah dan peringkat komponen seperti transistor, kapasitor, resistor, jalur transmisi, pin, chip memori, dan lainnya. Langkah ini sangat penting karena satu kesalahan perhitungan atau kesalahan penentuan jenis peringkat komponen dapat membuat seluruh produk tidak dapat digunakan.

Diagram skematik

  • Diagram skematik memberikan gambaran yang jelas tentang interkonektivitas komponen pada papan sirkuit. Ini adalah diagram fungsional yang terdiri dari simbol dan garis listrik yang menunjukkan aliran sinyal dari satu titik ke titik lain di papan. Umumnya dilakukan dengan menggunakan perangkat lunak CAD dan simulasi elektronik, tahap skematik dalam desain sistem digital diperlukan untuk menganalisis jalur aliran data, membuka peluang baru untuk transmisi yang lebih cepat, dan mengidentifikasi kemungkinan redundansi papan.

Tata letak papan

  • Tata letak papan sering disalahartikan sebagai diagram skematik, dan meskipun keduanya merupakan representasi grafis, keduanya memiliki tujuan yang sangat berbeda dalam pengembangan perangkat keras. Tata letak papan adalah gambar implementasi fisik dari diagram skematik, tidak harus difokuskan untuk menunjukkan interkonektivitas tetapi pada penempatan fisik komponen. Tata letak papan sangat penting untuk merencanakan posisi komponen dan membuat penyesuaian awal dan konfigurasi ulang.

Fabrikasi PCB

  • Ini adalah proses pembuatan atau pembuatan papan sirkuit tercetak. Desain PCB ditranskripsikan dari tata letak dan skema ke papan yang sebenarnya. Komponen dilaminasi ke papan dengan penyolderan yang hati-hati dan sesuai dengan metodologi shift left, komponen-komponen tersebut diuji konduktivitasnya saat dalam perjalanan. PCB tersedia dalam berbagai bentuk: lapisan tunggal, multilayer, lentur, kaku, dan kaku-lentur. Papan ini sangat sensitif dan mudah rusak, sehingga perlu kehati-hatian ekstra selama proses penyolderan untuk menghindari kerusakan pada jalur.

Perakitan papan

  • PCB dapat menjadi bagian dari papan yang lebih besar dan dengan demikian, setelah fabrikasi, semua komponen lain dari papan pengendali utama ditempatkan dengan hati-hati dalam urutan tata letak dan disiapkan untuk perakitan desain akhir.

Komponen mekanis

Spesifikasi mekanis

  • Komponen mekanis mencakup semua komponen rumah eksternal produk termasuk tombol, casing, penutup komponen, pegangan, roda, dan komponen non-listrik statis atau bergerak lainnya. Titik keputusan besar di sini adalah memutuskan apakah komponen mekanis akan dibeli atau dibuat khusus oleh tim internal. Dengan asumsi suku cadang yang sudah jadi yang dipilih, maka tim dapat langsung melompat ke langkah perakitan mekanis.

Desain berbantuan komputer

  • Spesifikasi mekanis dibuat dan diimpor ke dalam perangkat lunak CAD untuk memodelkan semua pengukuran, skala, dan elemen-elemen yang diperlukan dari komponen mekanis. Desain CAD adalah tahap teknis yang tinggi dan memakan banyak waktu dalam tahap desain mekanis. Namun, desainer harus melakukannya dengan benar untuk menghindari komplikasi pada tahap selanjutnya. Setelah selesai, file CAD diteruskan ke fabrikator atau insinyur mesin untuk menghasilkan prototipe komponen mekanis.

Fabrikasi mekanis

  • Fabrikator atau insinyur mesin menggunakan printer 3D atau mesin penggilingan industri untuk membangun komponen fisik berdasarkan spesifikasi CAD. Perusahaan biasanya akan menggunakan printer 3D pada tahap awal siklus pengembangan karena printer ini cepat, mudah dibuat, dan sangat fleksibel. Pada tahap pengembangan selanjutnya, mereka biasanya akan menggunakan komponen yang dicetak dengan injeksi karena lebih hemat biaya untuk produksi massal.

Perakitan mekanis

  • Ini sering kali menjadi momen kebenaran bagi perancang dan perakit CAD. Akankah komponen-komponen tersebut cocok satu sama lain saat selubung dan penutup mekanis dirakit? Apakah proses perakitannya akan mudah, tidak berbelit-belit, dan dapat diandalkan? Akankah perakitan akhir mudah diperiksa? Selama tahap perakitan desain ini, para insinyur merakit komponen mekanis, sering kali menganalisis prosesnya dengan saksama dengan mata yang tajam untuk perbaikan.

Komponen sistem

Spesifikasi sistem

  • Di sinilah setiap komponen lain atau bahan tugas berat didaftarkan untuk tahap yang akan datang. Semua komponen listrik dan mekanik yang akan digunakan dalam desain, khususnya dengan peringkat, ukuran, jumlah, dan bahkan merek pemasok yang disukai ditentukan dalam tahap ini. Bill of Material dibuat dan digunakan untuk memperkirakan margin kotor dari produk baru dan perbaikan yang dilakukan jika diperlukan untuk memastikan bahwa produk baru tersebut akan menguntungkan.

Perakitan sistem

  • Pada tahap ini, unit mekanis dan elektrik yang terpisah sepenuhnya dibangun dan diuji fungsionalitasnya, seluruh sistem perangkat keras kumulatif digabungkan dan diuji lagi. Pada tahap ini, perangkat keras mungkin tidak berfungsi sepenuhnya atau dengan baik tanpa firmware/perangkat lunak pengontrol, tetapi faktor-faktor lain seperti konektivitas, transmisi, gerakan, kekuatan material, dan daya tahan juga diuji.

Desain dan implementasi perangkat lunak

Proses desain perangkat lunak menghasilkan perangkat lunak/firmware tertanam dan aplikasi yang melekat pada perangkat keras untuk menjalankan fungsionalitas yang dibutuhkan. Secara umum, sebagian besar perusahaan mengikuti turunan dari metodologi pengembangan perangkat lunak tangkas. Ini adalah pendekatan berulang untuk pengembangan perangkat lunak yang membantu tim mendapatkan nilai lebih cepat dan lebih andal.

Pendekatan ini melibatkan tim rekayasa perangkat lunak yang memecah hasil yang lebih besar menjadi bagian-bagian yang lebih kecil. Tim akan bekerja dalam langkah-langkah kecil dan bertahap yang disebut “sprint” yang biasanya berlangsung selama satu hingga empat minggu. Tujuan dari setiap sprint adalah untuk menghasilkan versi produk yang berfungsi. Sprint berikutnya akan menambahkan lebih banyak fungsionalitas ke versi yang dikirimkan pada sprint terakhir dan siklus ini akan terus berlanjut hingga produk siap untuk dirilis.

Spesifikasi perangkat lunak

Semua persyaratan pelanggan dan spesifikasi teknis dari sistem perangkat lunak yang dimaksudkan diuraikan pada tahap ini, dalam dokumen yang dikenal sebagai Product Requirements Document (PRD). Hal ini harus dilakukan untuk mendapatkan gambaran yang jelas dan tepat tentang apa yang akan dikembangkan oleh para insinyur perangkat lunak.

Aspek teknis perangkat lunak kemudian diuraikan berdasarkan persyaratan pelanggan. Terjemahan ini biasanya dilakukan oleh insinyur perangkat lunak, didokumentasikan bersama PRD dan diserahkan sebagai Permintaan Komentar (RFC) sebelum implementasi. Spesifikasi perangkat lunak mencakup semua detail kecil dari basis kode, seperti nama dan tanggung jawab sub-sistem tertentu, program, unit, driver perangkat, dan detail antarmuka yang akan digunakan untuk mengendalikan setiap sub-unit.

Bergantung pada jenis sistem, RFC juga dapat berisi hal-hal seperti kompatibilitas dengan sistem operasi yang berbeda, kompatibilitas ke belakang dengan sistem lama, kondisi penerapan, aplikasi prasyarat untuk menjalankan perangkat lunak, dan frekuensi pembaruan.

Arsitektur sistem dan pemilihan sistem operasi

Arsitektur desain sistem perangkat lunak adalah pengorganisasian komponen dan alur kerja yang dimaksudkan dalam sistem. Arsitektur ini menunjukkan bagaimana setiap sub-unit berinteraksi satu sama lain untuk melakukan berbagai tugas dalam sistem. Arsitektur ini juga mempertimbangkan perangkat keras dan komponennya.

Arsitektur ini sering dianggap sebagai “cetak biru sistem perangkat lunak” karena memberikan gambaran umum yang terperinci tentang komponen teknis, operasional, dan jaminan kualitas sistem. Hal ini juga menciptakan abstraksi untuk kemungkinan evolusi perangkat lunak di masa depan.

Setelah arsitektur sistem diuraikan, sistem operasi (OS) dipilih untuk memenuhi spesifikasi teknis.

Pemilihan pengontrol, prosesor, dan periferal

Mikrokontroler dan mikroprosesor bertanggung jawab atas sub-unit tertentu dari sistem dan mengendalikan tugas yang ditentukan. Periferal adalah perangkat penyimpanan internal dan driver perangkat. Jumlahnya bisa berkisar dari hanya beberapa buah hingga puluhan, berdasarkan ukuran dan fungsionalitas sistem.

Selama tahap desain sistem ini, insinyur perangkat lunak akan bekerja sama dengan insinyur perangkat keras untuk secara hati-hati memilih mikroprosesor dan mikrokontroler yang tepat sesuai dengan spesifikasi produk. Mereka biasanya akan mempertimbangkan daya pemrosesan, kebutuhan kecepatan, target efisiensi, waktu kerja yang diperlukan, spesifikasi listrik, di antara persyaratan lainnya untuk membuat pilihan yang tepat.

Pemilihan lingkungan pengembangan terpadu

Umumnya dikenal sebagai IDE, ini adalah platform pengembangan tempat para insinyur akan membuat kode. Insinyur biasanya akan memilih bahasa pemrograman, memilih IDE, menyesuaikannya dengan alat dan ekstensi tambahan, lalu menghubungkannya ke alat CI/CD untuk penerapan guna mempermudah proses desain sistem.

Firmware adalah sekumpulan program komputer dasar dan instruksi tingkat sangat rendah yang mengontrol perilaku inti perangkat keras dan interaksinya dengan perangkat lunak tingkat tinggi lainnya. Firmware biasanya ditulis menggunakan bahasa pemrograman tingkat rendah seperti C, C++, dan C#. IDE yang umum digunakan untuk pengembang firmware antara lain Eclipse, Geany, emacs, dan Visual Studio, serta banyak lagi.

Aplikasi adalah perangkat lunak yang melayani berbagai penggunaan tertentu dengan sendirinya tanpa komponen perangkat keras yang terpasang. Desain aplikasi mencakup pengembangan program front-end (sisi klien) dan back end (sisi server). Secara kolektif, aplikasi front end dan back end disebut “fullstack” dan mereka berkomunikasi satu sama lain melalui API. Perangkat lunak aplikasi biasanya ditulis dalam bahasa pemrograman tingkat tinggi seperti Java, Python, HTML, dan JavaScript. IDE yang umum digunakan oleh pengembang fullstack antara lain Jupyter Notebooks, Adam, Sublime, AWS Cloud9, dan banyak lagi.

Implementasi

Di sinilah sebagian besar waktu yang dihabiskan dalam desain sistem perangkat lunak dihabiskan. Insinyur biasanya akan menulis, menguji, men-debug, dan mengoptimalkan kode mereka pada tahap ini. Ada banyak alat yang dapat membantu termasuk perpustakaan sumber terbuka, repositori kode Github, dan platform kode rendah / tanpa kode.

Insinyur yang membangun sistem tertanam dapat memangkas sebagian besar waktu dan sumber daya yang dihabiskan untuk langkah ini dengan menggunakan alat rekayasa yang kuat dan perangkat lunak desain sistem seperti Collimator. Collimator memungkinkan para insinyur untuk membuat kontrol atau algoritme pemrosesan sinyal dengan cara yang alami dan intuitif menggunakan diagram blok dan secara instan mengubah algoritme tersebut menjadi kode bahasa C standar ANSI berkualitas tinggi yang kemudian dapat digunakan pada sistem tertanam.

Verifikasi dan validasi

Verifikasi adalah proses untuk memastikan bahwa kode bekerja pada sistem atau platform yang dirancang. Menurut prinsip-prinsip desain perangkat lunak, verifikasi hanyalah salah satu bagian dari proses pengujian. Sebuah sistem yang tertanam dapat sepenuhnya bebas dari bug dan masih gagal bekerja pada sistem host. Sebuah aplikasi fullstack bisa saja tidak memiliki kesalahan dan masih tidak dapat berjalan pada sistem operasi yang ditentukan. Oleh karena itu, kode harus melalui langkah pengujian tambahan: validasi.

Validasi memeriksa apakah kinerja sistem secara keseluruhan sesuai dengan spesifikasi yang dibutuhkan. Proses verifikasi dan validasi biasanya akan dimulai dalam lingkungan pengujian sandbox, kemudian diperluas ke sistem host. Sebelum pindah ke tahap produksi, sistem harus melalui proses verifikasi dan validasi yang ekstensif untuk memastikan sistem end-to-end memenuhi persyaratan dan bahwa sistem tersebut aman secara fungsional.

Untuk perusahaan yang mengikuti desain berbasis model (MBD), simulasi in-the-loop digunakan untuk melakukan verifikasi dan validasi sistem perangkat keras dan perangkat lunak. Simulasi MIL, SIL, PIL, HIL, dan manusia/pengemudi dalam loop digunakan secara berurutan untuk memvalidasi hasil model. Sebagai contoh, simulasi MIL akan dijalankan dan hasil yang terekam dibandingkan dengan simulasi SIL. Jika hasilnya berbeda, model atau persyaratan akan dimodifikasi sebelum melanjutkan ke langkah berikutnya. 

Penerapan

Setelah perangkat lunak diselesaikan dan telah melalui proses verifikasi dan validasi yang sesuai, perangkat lunak aplikasi disebarkan ke sistem operasi melalui file yang dapat dieksekusi dan firmware disebarkan ke perangkat keras target yang dapat berupa mikrokontroler, FPGA, atau bahkan PLC.

Untuk mengurangi risiko operasional dan meningkatkan kualitas perangkat lunak bahkan setelah sistem masuk ke produksi, banyak perusahaan memilih untuk terus mengintegrasikan dan terus menggunakan kode baru. Ini berarti bahwa bahkan setelah produksi, tim insinyur memantau fungsi sistem, menentukan perbaikan yang harus dilakukan, kemudian membangun, menguji, dan menggabungkan pembaruan.

Alat rekayasa seperti Collimator dapat digunakan sebagai bagian dari pipeline CI/CD untuk meningkatkan kecepatan pembaruan dan mendapatkan keunggulan kompetitif. Manfaat utama menggunakan Collimator adalah model Anda tetap menjadi satu-satunya sumber kebenaran - bahkan setelah produksi selesai - dan perubahan yang dibuat pada model dapat langsung didorong dan digabungkan ke perangkat atau produk di lapangan.

Proses peluncuran produk

Proses peluncuran produk adalah upaya terkoordinasi untuk membawa produk baru ke pasar. Karena ada begitu banyak bagian yang bergerak, proses ini dapat menimbulkan risiko baru yang tidak terlihat pada produk pada tahap ini. Perencanaan yang matang sangat diperlukan terutama bagi perusahaan yang harus memenuhi persyaratan sertifikasi seperti DO178 dan standar ISO. Empat tahap utama verifikasi dan validasi, mulai dari yang paling awal dan semakin mendekati produksi massal, adalah Prototipe, EVT, DVT, dan PVT.

Ikhtisar Proses Peluncuran Produk

Sumber: collimator.ai 

Prototipe

Prototipe seharusnya menjadi keputusan “opsional” dalam proses desain sistem, tetapi di dunia nyata, tidak ada insinyur yang akan memproduksi massal suatu produk tanpa membuat prototipe fungsional karena anomali yang tidak terdeteksi dapat menjadi bencana ekonomi dan operasional.

Pembuatan prototipe produk adalah proses pembuatan model kecil atau replika produk target untuk menguji konsep, memeriksa kegunaan di dunia nyata, dan kelayakan produksi massal secara keseluruhan. Perancang sistem akan mengulang beberapa prototipe melalui proses pengembangan dan menggunakan wawasan yang dihasilkan untuk pengujian, verifikasi, jaminan kualitas, dan sebagai dasar untuk perbaikan lebih lanjut. Pembuatan prototipe dapat dilakukan untuk setiap komponen sistem produk: 

  • Perangkat keras melalui pencetakan 3D dan komponen listrik/mekanik yang tersedia di pasaran
  • Perangkat lunak melalui simulasi sistem

Pembuatan prototipe cepat adalah proses pengembangan tangkas yang memangkas jumlah waktu yang dihabiskan untuk membuat prototipe. Ini adalah metode yang cepat dan umumnya berbiaya rendah untuk mengembangkan versi kerja dari produk atau sistem yang diinginkan. Jika dilakukan dengan baik, prototipe rekayasa dapat diselesaikan dalam hitungan hari tergantung pada ukuran dan kompleksitas sistem. Metode ini memungkinkan para desainer dan insinyur untuk secara berulang-ulang membuat tiruan antarmuka dan memvalidasinya dengan pelanggan sehingga mengurangi risiko pengembangan.

Pengujian validasi teknik (EVT)

Tahap Pengujian Validasi Teknik (EVT) adalah proses untuk mengonfirmasi bahwa semua sub-unit desain prototipe bekerja sesuai dengan persyaratan. Ini adalah tahap yang sangat penting dalam desain dan analisis sistem karena EVT akan dinilai “tidak berhasil” jika setidaknya satu persyaratan fungsional dalam Dokumen Persyaratan Produk (PRD) tidak terpenuhi.

Poin-poin yang divalidasi selama EVT dapat mencakup:

  • Kapasitas dan penggunaan daya
  • Margin EMI
  • Toleransi termal
  • Pengujian papan listrik
  • Pengujian kekuatan mekanis
  • Kecepatan transmisi sinyal
  • Jika suatu produk gagal dalam tahap EVT, spesifikasi akhir dapat dibuka untuk modifikasi dan perbaikan.

Pengujian validasi desain (DVT)

Fase Pengujian Validasi Desain (DVT) adalah dasar desain sistem yang bertujuan untuk mengonfirmasi integritas desain sesuai dengan spesifikasi dan ekspektasi PRD. Prototipe dikenai tekanan fisik yang nyata agar para perancang memiliki gambaran umum tentang toleransi, margin kekuatan, daya tahan, ketahanan terhadap kondisi lingkungan, dan kesan kegunaan secara umum.

Pengujian DVT mencakup aktivitas seperti merendam ke dalam air untuk memeriksa integritas kedap air, pembakaran dalam intensitas api yang meningkat, dihancurkan oleh cetakan yang berat, dan terpapar pada kondisi alam yang keras. Proses ini memungkinkan modifikasi dilakukan pada desain atau pilihan material jika terdeteksi adanya anomali atau penyimpangan.

Pengujian validasi produksi (PVT)

Fase Pengujian Validasi Produksi (PVT) adalah proses untuk memastikan bahwa produk baru layak untuk produksi massal. Ini adalah pengujian lini produksi dan belum tentu produk itu sendiri sekarang. Jika ada kegagalan batching, ketidaksejajaran mesin, dan hambatan kecil lainnya yang dapat menyebabkan waktu henti selama produksi, maka hal tersebut akan diselesaikan atau diganti sebelum produksi dimulai.

Fase PVT terkadang diabaikan dalam desain sistem karena beberapa insinyur secara otomatis berasumsi bahwa jika EVT dan DVT bagus dan optimal, PVT tidak memiliki alasan untuk gagal. Asumsi ini paling sering terjadi ketika produksi dialihdayakan ke perusahaan lain dan merupakan kesalahan karena efek hilirnya masih dapat merugikan jadwal dan anggaran pengembangan produk baru.

Produksi massal (MP)

Secara tradisional, ini dianggap sebagai bagian akhir dari proses pengembangan produk. Namun, hal ini tidak lagi dianggap benar saat ini. Kemajuan dalam IoT, komputasi awan, dan 5G telah membuka banyak peluang untuk terus meningkatkan sistem, menghadirkan lebih banyak fungsionalitas, pembaruan, dan perbaikan bahkan setelah produk telah memenuhi spesifikasi desain sistem asli dan dalam produksi.

Mengapa memilih collimator untuk desain sistem?

Dunia di sekitar kita saat ini jauh lebih kompleks daripada beberapa tahun yang lalu. Saat ini, sistem di sekitar kita mulai dari sikat gigi hingga mobil mengumpulkan zettabyte data dan mengalirkan data tersebut secara real time ke produsen dan pengguna. 

Alat pengembangan tradisional yang berbasis desktop tidak dapat mencerna dan memproses jumlah data yang diperlukan, apalagi melakukannya secara tepat waktu. Alat-alat yang menjalankan bahasa proprietary telah ketinggalan dengan Python, bahasa pengantar AI, ML, dan Reinforcement Learning. Menjalankan alat bantu tersebut menghasilkan proses pengembangan waterfall yang menunda pembuatan wawasan dan menghasilkan masalah desain yang menghentikan pertunjukan di akhir proses pengembangan yang menyebabkan pembengkakan biaya dan peluncuran yang tertunda.

Oleh karena itu, perusahaan yang ingin sukses dalam jangka panjang dan melindungi keunggulan kompetitif mereka harus berinvestasi dalam alat bantu teknik yang dirancang untuk masalah di masa depan. Mereka harus menggunakan perangkat lunak yang dibangun untuk dunia di mana: 

  • Data besar digunakan untuk memvalidasi setiap keputusan desain
  • AI dan ML digunakan dalam desain DAN pengoperasian sistem
  • Orang dapat merancang sistem yang kompleks tanpa harus memiliki gelar ilmu komputer
  • Tim dapat berkolaborasi secara real time dengan pelanggan dan pemasok mereka

Collimator menyediakan lingkungan terpadu untuk mendesain, mensimulasikan, menguji, dan terus meningkatkan pengontrol tertanam di dunia di mana data besar dan AI/ML digunakan untuk meningkatkan desain sistem, mengurangi risiko pengembangan, dan membawa produk ke pasar lebih cepat. Coba Collimator hari ini untuk: 

  • Merancang sistem Anda menggunakan UI grafis atau Python Notebook
  • Menganalisis sistem Anda menggunakan toolkit terintegrasi dan blok fungsi yang dapat digunakan kembali
  • Menggunakan AI dan ML secara langsung dalam model Anda untuk mensimulasikan kinerja sistem secara menyeluruh
  • Memanggil pustaka dan model Python sumber terbuka eksternal secara langsung di dalam model Anda
  • Jalankan jutaan kasus uji menggunakan HPC di cloud sebelum menerapkannya ke pengontrol
  • Membandingkan operasi dunia nyata dengan operasi virtual secara real-time, terus menerus

Disadur dari: collimator.ai