Latar belakang :
Insinyur elektronik R & D Junior ( satu-satunya EE di perusahaan ) - perangkat keras dan pengkodean bukanlah masalahnya. Masalah terbesar saya adalah mendapatkan gambaran umum proyek yang tepat, dan dari mana harus memulai.
Sejauh ini saya hanya membuat proyek perangkat lunak kecil (sub 500 baris kode), tetapi saya tidak dapat membayangkan diri saya melakukan proyek yang lebih besar tanpa kehilangan tinjauan fungsionalitas atau kurangnya fungsionalitas.
Bagaimana Anda menyusun struktur terbaik / alat apa yang Anda gunakan untuk menyusun sistem perangkat lunak tertanam besar?
Apa yang saya lakukan saat ini :
Saya biasanya memulai, dengan membuat sketsa fungsi proyek. Ini bisa berupa diagram alir berlapis atau diagram terkait (diagram blok, dll.) Dan melakukan riset terhadap komponen / chip. Kemudian saya langsung masuk ke pengkodean (gagal cepat saya kira) sambil referensi lembar data / Internet, Coding satu fungsi pada suatu waktu dan mengujinya dengan data dummy, atau tes serupa. Bisa jadi menulis data ke chip MEM, dan kemudian jika itu bekerja maka itu bisa menjadi driver SPI antara chip utama dan chip MEM.
Apa jawaban yang saya cari :
Apapun benar-benar. Saya akan memilah apa yang menurut saya masuk akal. Itu bisa berupa buku, artikel, pengalaman pribadi, rekomendasi, dll.
Saya sangat tertarik mengetahui bagaimana senior mengatasi hal ini.
Edit
Pertama, terima kasih telah berbagi pengalaman bertahun-tahun! Semua jawaban sangat kami hargai. Yang saya ambil dari ini adalah;
- Buat dokumen spesifikasi yang jelas dan tepat.
- Buat dokumen desain perangkat lunak. (Sesuatu yang sekarang akan saya tambahkan) Desain template dokumen
- Pikirkan dalam modul seberapa berlebihan hal itu kelihatannya. (Sesuatu yang saya perlu lebih fokus pada)
- Ikuti standar pengkodean untuk menyusun file header / sumber. (Tidak pernah melakukan ini) Barr Group C standar
- Fokus pada menciptakan implementasi tingkat rendah terlebih dahulu. (Komunikasi dll.)
- Menerapkan pola desain jika memungkinkan / masuk akal. Pola desain
- Siapkan sesuatu untuk kontrol revisi (Github dll. - tidak pernah digunakan sebanyak ini)
- Riset integrasi terus-menerus / penerapan berkelanjutan (Sesuatu yang baru saya temui) Dasar-dasar CI & CD