並列性と状態図とオブジェクトとコンポーネントの再利用2
| 固定リンク
詳細設計や実装では、集合やクラスよりもタイプ(型)を意識することが極めて重要です。
これは強い型づけを持つ言語で無くても同じ。
「sub-typing」関係では,「『期待の集合』に関して代替性があるの関係」と捉えるが、これには『期待の集合』に対して予め明確な型を定義いないといけない。
型にはプロパティとして、属性、操作、不変条件、事前・事後条件、状態図とその不変条件があるが、「代替性があるの関係」は、部分型(sub-typing)が上位の型に対して、これらのプロパティに全てに互換性を持つち、保証しないといけない。
これは型理論(型推論)の世界の話題でもある。
| 固定リンク
<タイプ(型)構造の拡張:つまり型理論>に関する適合規則の全てが状態図(ステートチャート)に適用される。
状態図を描く場合は、状態図の意味論とタイプ(型)拡張の理論の両方に適合しないといけない。
そのため、UMLではプロトコル状態図が用意されているんです。
多くの方が知らないのか無視しているが、状態図を書くときは状態図の意味論の規則を守って 作成しましょう。
そして、タイプ(型)との整合性も確認しましょう。
タイプ(型)と状態図の意味的整合性を無視して、モデルベース開発とか、品質だ、生産性だと言うのは不毛な議論です。
| 固定リンク
クラス図のセマンティクを記述することが最も大切な分析作業、設計作業、実装作業である。
自動化作業のために簡単なクラス図で試した。
クラス不変条件(class-invariant)や操作の事前/事後条件を定義していない(表明していない)クラス図は妥当性の無いクラス図であるから、インスペクション、テストが意味がなくなるし、自動コード生成も価値が無いコード生成になりかねない。
クラス不変条件には、そのクラスが持つ関連の不変条件も含まれる点が注意点だ。
そのため正確かつ明確に関連の不変条件を定義しないといけない。
特に再帰関連の不変条件は結構複雑になる。
推移閉包や反射閉包を考えることが頻繁に起きるから。
再帰関連の不変条件を正確に記述し、確実にクラス不変条件に挿入することは効果がある。
クラス不変条件をコードにキチント実装することは高品質のプログラムを作成、検証や妥当性確認の作業を確実に行う上で必修で、かつ、高生産性につながる。
| 固定リンク
最近のコメント