Bagaimana mengelola---dan akhirnya menguasai---kompleksitas dalam pengembangan sistem tertanam (Embedded Systems Development)
Menjual perangkat keras (hardware) tanpa perangkat lunak (software) tidak terpikirkan di sebagian besar industri. Dalam beberapa tahun terakhir, sistem yang menggabungkan perangkat keras dan perangkat lunak---yaitu, sistem tertanam (embedded systems)---telah menjadi lebih kompleks karena mereka bergantung pada sistem lain itu sendiri. Dalam pendekatan sistem-sistem ini, jumlah antarmuka cenderung meledak---bukti yang jelas untuk meningkatnya kompleksitas sistem. Perspektif 360 derajat dalam mengelola kompleksitas dapat membantu perusahaan menghindari jatuh ke dalam perangkap kompleksitas dan akhirnya menguasai kompleksitas.
Ketika kompleksitas sistem meningkat, kompleksitas---yaitu, berurusan dengan kompleksitas dan berpotensi menyelesaikannya---menjadi perhatian yang berkembang. Bahkan dengan niat terbaik, sistem tertanam dapat menjadi sangat kompleks sehingga pengembangannya menjadi semakin berisiko dan rentan terhadap penundaan. Untuk menunjukkan bagaimana organisasi dapat menavigasi proses ini, kita mulai dengan perspektif singkat tentang sistem tertanam dan kepentingannya sebelum menyelam ke akar penyebab kompleksitas dan bagaimana mengelolanya.
Sistem tertanam menggabungkan perangkat keras dan perangkat lunak. Penggunaan sistem tertanam telah lama diterapkan di berbagai industri seperti dirgantara, otomotif, mesin industri, dan elektronik konsumen. Namun, perkembangan terkini---misalnya, otomatisasi, konektivitas, analitik, dan Internet of Things---telah memindahkan sistem tertanam menjadi pusat perhatian dalam industri ini. Untuk mencapai fungsionalitas yang dibutuhkan oleh perkembangan baru ini, beberapa sistem harus berinteraksi secara tepat satu sama lain. Kunci interaksi ini biasanya terletak di dalam bagian perangkat lunak dari sistem yang disematkan.
Dalam industri otomotif, perangkat lunak tertanam telah digunakan setidaknya sejak diperkenalkannya sistem pengereman anti penguncian/ Antilock Braking System (ABS). Saat ini, perangkat lunak tertanam otomotif sudah menjadi pasar bernilai miliaran dollar, dengan tingkat pertumbuhan yang diharapkan sekitar 9 persen hingga 2030. Perangkat lunak yang disematkan sedang digunakan dalam sistem bantuan pengemudi tingkat lanjut/ Advanced Driver-Assistance Systems (ADAS) dan mengemudi otomatis/ Automated Driving (AD). Sistem infotainment di dalam kendaraan juga tidak dapat dibayangkan tanpa menggunakan perangkat lunak yang disematkanA
Contoh Kompleksitas sistem tertanam pada industri otomotif (File by Merza Gamal)
Dalam industri kedirgantaraan dan pertahanan, sistem fly-by-wire yang secara otomatis mengontrol operasi penerbangan telah tersedia selama beberapa dekade. Namun, baru-baru ini, pendekatan sistem-sistem telah membutuhkan interaksi terkoordinasi dari pesawat berawak dan tak berawak dalam situasi yang berpotensi berbahaya, secara dramatis meningkatkan pentingnya sistem tertanam.
Industri permesinan dan peralatan juga bergerak dari sistem yang dikendalikan secara deterministik ke pembuatan alat pintar otomatis yang mengoptimalkan diri dalam pendekatan loop tertutup. Perangkat lunak yang disematkan juga merupakan inti dari pengaktifan fitur-fitur penting ini.
Dari perspektif teknis, "sistem tertanam" mengacu pada integrasi komponen perangkat lunak, perangkat keras komputer, sensor, dan aktuator ke dalam sistem mekanik dan elektronik yang lebih besar. Sistem ini merupakan rantai aktif di mana sensor mengumpulkan sinyal eksternal yang diproses oleh unit kontrol, yang kemudian menyebabkan aktuator berperilaku sesuai dengan tujuan pengoperasian sistem.
Untuk memahami relevansi kompleksitas dalam sistem tertanam, pertama-tama harus mempertimbangkan driver kompleksitas. Secara umum, integrasi yang erat antara fitur-fitur individual dari suatu sistem mendorong kompleksitas. Integrasi yang ketat seringkali memerlukan sejumlah besar saling ketergantungan, yang dapat sangat memperumit pengembangan dan pemeliharaan sistem tertanam. Berikut ini adalah daftar lengkap driver kompleksitas dalam sistem tertanam:
- Domain operasional dan standar atau regulasi.Â
Sistem tertanam biasanya berinteraksi langsung dengan dunia nyata dengan memproses data sensor dan mengubah hasilnya menjadi tindakan melalui aktuator. Ini mengarah pada persyaratan ketat dalam domain operasional sistem tertanam, seperti gabungan fungsionalitas real-time dan event-driven, keamanan, keandalan, dan umur panjang. Persyaratan keselamatan dan keandalan secara khusus ditegakkan oleh peraturan dan standar industri lainnya (misalnya, IEC 61508 untuk keselamatan fungsional secara umum atau DO 178 dan ISO 26262 untuk keselamatan di industri kedirgantaraan dan otomotif, masing-masing). Untuk memenuhi standar ini, sistem mungkin menjadi lebih kompleks daripada yang awalnya dirancang.
Tren menuju peningkatan otomatisasi mengarah pada meningkatnya kebutuhan akan teknologi modern seperti pembelajaran mesin dan kontrol loop tertutup. Teknologi ini memerlukan data dari beberapa bagian sistem untuk diproses dan kemudian digabungkan dalam satu fungsi target yang menyeluruh, seperti memprediksi kebutuhan pemeliharaan dalam sistem manufaktur atau mengoptimalkan kinerja proses. Lebih banyak otomatisasi dapat memerlukan lebih banyak kerumitan.
- Konektivitas meningkat.Â
Tren konektivitas berarti bahwa sistem tertanam semakin mampu bertukar data dengan lingkungannya. Ini memiliki banyak implikasi. Pertama, keamanan siber menjadi wajib, baik untuk sistem kontrol di otomasi industri maupun untuk industri otomotif, yang diberlakukan melalui regulasi UNECE. Kedua, ketersediaan akses jarak jauh dan pembaruan berarti bahwa perangkat lunak yang mendasari yang memungkinkan layanan ini harus mampu menangani konfigurasi sistem apa pun yang tersedia di lapangan. Persyaratan ini dapat menyebabkan peningkatan tingkat kompleksitas sistem tertanam jika tidak dikelola dengan benar.
- Kompatibilitas perangkat keras dan perangkat lunak.Â
Dalam sistem tertanam, pengembangan perangkat keras dan perangkat lunak perlu disinkronkan. Ini memerlukan beberapa komplikasi. Salah satunya adalah bahwa kematangan tertentu dari perangkat keras elektronik diperlukan agar pengembangan perangkat lunak menjadi bermakna. Ini dapat dielakkan melalui virtualisasi---dengan kata lain, penggunaan teknik Model-in-the-Loop (MiL), Software-in-the-Loop (SiL), atau virtual Hardware-in-the-Loop (vHiL). Namun, virtualisasi itu sendiri menimbulkan komplikasi tambahan untuk toolchain, seperti kebutuhan untuk hypervisor dan konfigurasi yang halus dari aspek keamanan dan izin---yaitu, kebutuhan untuk mengimplementasikan, mengonfigurasi, dan memelihara lingkungan HiL, SiL, dan MiL yang diperlukan. ---untuk menuai manfaat penuhnya. Komplikasi lain adalah bahwa dua paradigma pengembangan utama (pengembangan air terjun untuk perangkat keras dan tangkas untuk perangkat lunak) perlu digabungkan dalam rekayasa sistem modern. Kombinasi ini mencakup proses, metode, alat, dan struktur organisasi, yang terbukti kompleks dan menantang, karena banyak organisasi masih baru mengenal paradigma semacam ini pada lingkup yang lebih luas.
- Kendala pada implementasi.Â
Pengembangan sistem tertanam tunduk pada beberapa kendala. Ini termasuk kendala teknis---seperti pasokan energi, ruang fisik, waktu pulang-pergi sinyal, dan kapasitas komputasi dan memori---serta kendala bisnis, seperti biaya. Ini mendorong kompleksitas karena sistem tertanam perlu memberikan fungsionalitas kepada pelanggan sambil tetap berada dalam batas-batas persyaratan ini.
Masalah terbesar dalam pengembangan dan pemeliharaan sistem perangkat lunak skala besar adalah kompleksitas sebagai sistem besar yang sulit untuk dipahami.Â
Perangkat lunak dan arsitektur elektronik mobil modern memberikan contoh yang baik tentang meningkatnya kompleksitas sistem tertanam. Sebuah mobil biasa memiliki sekitar 100 unit kontrol, ribuan komponen perangkat lunak, dan puluhan ribu sinyal yang dipertukarkan antar subsistem. Semua ini perlu dirancang, dikembangkan, diintegrasikan, diuji, dan divalidasi untuk bekerja secara individu maupun bersama satu sama lain. Kompleksitas rata-rata proyek perangkat lunak individu dalam industri otomotif telah tumbuh 300 persen selama dekade terakhir.
Lintasan serupa dapat dilihat di industri lain, seperti dirgantara. Jumlah baris kode yang tertanam di pesawat selama beberapa dekade terakhir telah meningkat secara dramatis, indikator lain dari kompleksitas yang berkembang. Pertumbuhan ini kemungkinan akan meningkat di tengah meningkatnya permintaan untuk fungsionalitas yang lebih kompleks dan untuk peningkatan fleksibilitas untuk memperbarui perangkat lunak sesuai kebutuhan.
MERZA GAMALÂ
- Pengkaji Sosial Ekonomi Islami
- Author of Change Management & Cultural Transformation
- Former AVP Corporate Culture at Biggest Bank Syariah