私は現在、Cで電子システムのファームウェアを作成しているプロジェクトに取り組んでおり、組み込みデバイス用のソフトウェアの開発/進化に関するドキュメントの作成を依頼されました。オブジェクト指向のパラダイムでソフトウェアを開発したので、UMLを使用してオブジェクトのあるクラス図などのソフトウェアを文書化することを知っていますが、これは私の組み込みシステムの開発を文書化するためには機能しません。それでは、ファームウェアの開発を文書化するために何を作成する必要がありますか?
OOパラダイムに従って設計されていないシステムでも、UML表記を使用してシステムを文書化できます。おそらく データフロー図 ( UMLで対応する図をすぐに見つけることができません)。OO以外のシステムの場合でも、調べる価値のある図は次のとおりです。
非OOシステムをモデル化する場合、「クラス」としてモデル化するものについて少し柔軟でなければならない場合があります。
たとえば、次のようなヘッダーファイルstack.hがある場合
struct stack;
struct stack* stack_create(void);
void stack_destroy(struct stack*);
void stack_Push(struct stack*, void*);
void stack_pop(struct stack*);
void* stack_top(struct stack*);
対応する実装では、モデルで「クラス」スタックとして表示することを妨げるものは何もありません。
Cはオブジェクト指向の概念を直接サポートしていませんが、オブジェクト指向の設計を作成してCで実装することができます。
たとえば、Rumbaugh et al。、 "Object-Oriented Modeling and Design"、Chapter 16、Prentice-Hall 1991、ISBN0-13-629841-9を参照してください。
明示的なクラスではなく、概念モジュール(OO設計)で実際に行うべきだったように)でのみ同じ設計を行います。Cでは、これらのモジュールは関数、構造、またはいくつかのバンドルになる傾向があります。機能、構造、またはその両方の。