根の深い不具合を発生させないプログラム構造
業務ロジック開発担当者にタスク間の排他制御を意識させない構造
業務ロジック開発担当者にメモリエリアの確保と開放を意識させない構造
-
- 具体的構造(例:制御系、組込系)
- 可能な限りプログラムを1タスク(MAINタスク)に収める
-
- タスク構成の基本形
- MAINタスク:主な処理を行う
- INITタスク:各タスクの起動と監視を行う
- その他タスク:必要に応じて設ける
-
- その他タスクを設ける判断基準
- 以下に示す処理についてはタスクを独立させる
- アプリケーションの通信手順からの独立
- 処理レイヤの明確化
- 部品化
通信手順マトリクスを含む外部との通信処理
-
- 外部事象のセンシング処理(例:パラレルポート)
- トリガの検出と生成
-
- 完了復帰型のAPIをCALLする処理
- MAINタスクのリアルタイム処理性能の確保(MAINタスクの1イベント処理の途中で待ちを発生させない)
-
- デバイスI/O処理
- アプリケーションのデバイスからの独立
- デバイスの排他
- 部品化
-
- 処理時間の要するバッチ処理(100msecオーダーの処理)
- MAINタスクのリアルタイム処理性能の確保
-
- ソフトウエア階層図(例:Windowsプラットフォーム)
- ソフトウェア階層図を以下に示す