Saya mulai dalam pemrograman perangkat lunak tertanam menggunakan RTOS dan, karena saya sudah menjadi pengembang untuk aplikasi desktop, saya terus bertanya-tanya bagaimana rasanya memodelkan perangkat lunak tertanam menggunakan diagram UML, seperti Activity Diagram, Sequence Diagram, Use Cases, dll.
Apakah perangkat lunak tertanam dirancang menggunakan UML, seperti halnya aplikasi desktop? Apakah ini pilihan terbaik atau ada yang lebih baik? Bisakah saya memiliki beberapa contoh?
Apakah ada alat khusus yang melakukan ini?
Jawaban:
Ada ekstensi Waktu Nyata ke UML yang dipopulerkan oleh perusahaan yang namanya luput dari saya saat ini. Saya ingat pernah menulis makalah tentang itu beberapa tahun yang lalu. Bruce Powell Douglass menulis beberapa buku tentang masalah pemodelan sistem embedded menggunakan UML, tetapi perusahaannya bukan yang saya pikirkan.
Yang mengatakan, untuk menggemakan Wouter, tidak ada yang istimewa tentang perangkat lunak tertanam per se. Saya menulis perangkat lunak tertanam setiap hari untuk sebuah sistem yang berjalan pada prosesor kelas Pentium; UML cukup berlaku. Juga, ingatlah bahwa banyak aspek perangkat lunak kontrol telah ditambahkan ke UML dari waktu ke waktu: ada sintaks untuk menentukan peristiwa sinkron atau asinkron bersamaan dengan waktu respons dalam Diagram Urutan, perilaku tipe Petri net dapat ditemukan dalam Activity Diagram, perilaku model Statecharts bahkan lebih baik daripada Diagram Negara, dll.
OTOH, banyak orang lebih suka memodelkan perangkat lunak tertanam menggunakan konsep Desain Terstruktur dan Dataflow. Ini semua tentang jenis sistem yang Anda rancang dan apa yang paling berhasil.
sumber
Saat beralih ke RTOS, kami biasanya berurusan dengan aplikasi yang memiliki banyak tugas bersamaan yang harus dijadwalkan secara optimal agar masing-masing memenuhi tenggat waktu tepat waktu atau berbagi sumber daya dengan aman. Kerangka kerja RTOS yang Anda pilih mengimplementasikan penjadwal tugas, dan tugas Anda (biasanya) adalah menulis tugas-tugas individual ini dengan serangkaian properti tertentu (periode, prioritas, dll.) Dan kemudian menyerahkannya ke penjadwal. Jadi untuk dokumentasi, pendekatan yang akan saya ambil adalah mendokumentasikan setiap tugas dengan hati-hati.
Sebagian besar perangkat lunak tertanam dan, sejauh yang saya tahu, sebagian besar RTOS tidak ditulis dalam bahasa berorientasi objek dan dengan demikian mungkin tidak mendapat manfaat dari banyak hal yang diarahkan seperti diagram kelas misalnya.
Ketika mendokumentasikan tugas RTOS Anda, diagram apa pun yang menggambarkan tugas dengan baik akan bermanfaat. Saya akan membayangkan diagram urutan untuk setiap tugas bisa sangat membantu misalnya. Bersamaan dengan itu Anda dapat menentukan persyaratan sulitnya seperti periode / frekuensi, prioritas, sumber daya bersama apa pun yang dapat digunakan, persyaratan pra-emption, dll. Juga nilainya dapat mendokumentasikan bagaimana Anda mengkonfigurasi RTOS dan mungkin sebuah negara- mesin algoritma penjadwalannya.
Ikuti saran ini sesuka Anda, saya belum pernah mengacaukan hal-hal RTOS sejak saya masih kuliah, dan tidak pernah benar-benar "mendokumentasikan" pekerjaan itu.
sumber
Pemodelan adalah semua tentang
mengetahui aspek apa yang sulit dan rumit dalam aplikasi Anda,
menemukan alat pemodelan / bahasa / abstraksi / konvensi / notasi yang sesuai untuk aspek tersebut
merancang aspek itu
Karenanya tidak ada alat pemodelan / pendekatan / dll yang sesuai untuk semua situasi. Satelit mungkin akan menjadi sistem multi-tasking waktu-nyata, mungkin dengan lebih dari satu prosesor. Diagram struktur tugas, STD, dan diagram urutan mungkin berguna (hanya untuk beberapa nama). Jika proyek dilakukan dalam C diagram kelas kurang likley menjadi berguna (jika ternyata sangat berguna, pilihan untuk C mungkin salah). Saya tidak terlalu menyukai UseCases, dan satelit an-sich tidak memiliki pengguna. Kasus penggunaan paling tepat dalam situasi di mana Anda ingin mendiskusikan persyaratan untuk sistem Anda dengan pengguna non-teknis. Jika itu adalah situasi dimana Anda berada dalam proyek satelit, ada yang tidak beres.
sumber
Saya belum merancang apa pun yang memenuhi syarat ruang. Tetapi saya telah bekerja untuk subkontraktor aerospace Departemen Pertahanan (DoD) dan banyak desain saya yang berkualitas penerbangan. Mereka membutuhkan banyak dokumentasi tentang desain Anda dan memberikan Deskripsi Item Data (DID) yang merinci apa yang ingin mereka lihat.
Anda dapat menggunakan Pencarian Cepat DoD ASSIST untuk melihat semua DID untuk dokumen yang mungkin diperlukan jika Anda mengetik "perangkat lunak" di bidang "Word (s) Dalam Judul" dan klik Kirim. (Saya merasa lucu bahwa situs DoD melempar peringatan keamanan sertifikat, tapi saya yakinkan Anda, itu aman).
Karena Anda bertanya secara spesifik tentang Dokumen Desain, di sini adalah Deskripsi Desain Perangkat Lunak (SDD) DID. Mereka menekankan penggunaan kata-kata untuk menggambarkan setiap bagian dari desain. Tetapi jika penggunaan UML, State Diagram, flowchart, pseudo-code, dll., Dapat meningkatkan pemahaman desain, maka mereka tentu saja ingin Anda memasukkannya.
Metode pemodelan mana yang Anda pilih, seperti yang dinyatakan orang lain, tergantung pada desain Anda. Tetapi saya berpikir bahwa melihat DID untuk perangkat lunak kedirgantaraan mungkin membantu Anda menulis Dokumen Desain Anda karena proyek Anda terkait dengan ruang.
sumber