背景:
ジュニアR&Dエレクトロニクスエンジニア(社内唯一のEE)-ハードウェアとコーディングは問題ではありません。私の最大の問題は、プロジェクトの適切な概要を取得し、どこから始めるかです。
これまでのところ、マイナーなソフトウェアプロジェクト(500行未満のコード)しか作成していませんが、機能の概要や機能の欠如を失うことなく、より大きなプロジェクトを行うことは想像できません。
大規模な組み込みソフトウェアシステムを構築するには、どのように最適な構造/どのツールを使用しますか?
私が現在していること:
私は通常、プロジェクトの機能をスケッチすることから始めます。1対多の階層化されたフローチャートまたは関連図(ブロック図など)で、コンポーネント/チップの調査を行う場合があります。次に、データシート/インターネットを参照し、一度に1つの機能をコーディングし、ダミーデータでテストするか、同様のテストをしながら、コーディングに直行します(フェイルファースト)。MEMチップにデータを書き込んでいる可能性があり、それが機能する場合、メインチップとMEMチップ間のSPIドライバーである可能性があります。
私が探している答えは何ですか:
本当に何でも。私が賢明だと思うものを整理します。本、記事、個人的な経験、推奨事項などです。
高齢者がどのようにこれに取り組んでいるかを知りたいです。
編集
まず、長年の経験を共有していただきありがとうございます!すべての答えは大歓迎です。これからの私の見解は次のとおりです。
- 明確で正確な仕様書を作成します。
- ソフトウェア設計文書を作成します。(これから追加するもの) ドキュメントテンプレートのデザイン
- モジュールの中で、どれほど冗長に見えるかを考えてください。(もっと集中する必要があるもの)
- ヘッダー/ソースファイルを構造化するためのコーディング標準に従ってください。(これを行わなかった) Barr Group C標準
- 最初に低レベルの実装を作成することに焦点を合わせます。(通信など)
- 可能な限り/賢明な設計パターンを実装します。 デザインパターン
- リビジョン管理のために何かを設定します(Githubなど-あまり使用しません)
- 継続的インテグレーション/継続的展開の研究(何か新しいことにつまずいた) CIとCDの基本