« 2015年8月 | トップページ | 2015年10月 »

2015年9月

2015年9月 8日 (火)

SysML/UMLの継承アイコンの意味~「分類」「継承」「特殊化」

モデリングの能力を向上させるのは、SysML/UMLのアイコンやモデリングの考え方を基本から押さえないといけない。
 
最近、SysML/UMLの継承アイコンについて多くの方がかなり曖昧に使っていることがきになっている。
 
SysML/UMLの継承アイコンには、それ自身で「分類」「継承」「特殊化」の区別がない。
 
つまり、モデリングではSysML/UMLの継承アイコンを使う動機として、あるいはテクニックとして「分類」「継承」「特殊化」を使いわけて、さらにそれを明示的に表記する必要がある。
 
SysML/UMLの継承アイコンを使う動機やテクニックとして「分類」「継承」「特殊化」があることを理解するには、やはりSysML/UMLの土台である集合・写像・論理などの基本を理解することが一番の早道と思う。

|

並行メカニズムのモデルドリブン開発

CやC++には言語として並行メカニズムが用意されていないので、システムの種類に応じて幾つかの並行メカニズムを設計・実装している。
良く知られたアプローチと設計方法である。
まだ作業中。
 
並行メカニズムのコンポーネント化する。
 
タスク優先度の設定、スタックフレームの退避、アドレス計算などをクラス内部に隠蔽する。
 
簡単なメカニズムなれど、結構これで間にあう。
 
別の並行メカニズムとしてはActiveObjectメカニズムのアプローチも用意する予定。
  
このActiveObjectメカニズムにもいくつかの細かなバリエーションが存在する。

Multitask

|

2015年9月 4日 (金)

『科学的モデリング』~状態図編

並列・並行性を持つ状態図を科学的に記述するには「プロセス代数」を用いる。
  
ただし、オブジェクト指向・コンポーネント指向開発では、状態はオブジェクトの状態空間の抽象モデルとして記述されるので、クラスと状態図の整合性を検討する必要がある。
 
クラスは抽象クラスのときもあるし、アクティブクラスのときもある。
 
さらに、具象クラス、抽象クラス、アクティブクラスのいづれの場合でも継承に対応でいないといけない。
 
状態はタイプ型理論の影響も受ける。
 
現在はその分析・設計資料の作成中。以前から作業していたが、少し修正中。

Ltsa1

Ltsa2

Ltsa3







|

2015年9月 2日 (水)

『科学的モデリング』~コンポーネントの安全確実な再利用とタイプ(型)置換とタイプ(型)推論

資料を作成している最中なので以下ポイントの覚書。

2

Photo
 
継承機能により『開放閉鎖原理』を用いると驚くべき拡張性と再利用性が得られる。
 
これはかなり多数の研究者の論文で報告されているから、いまさら説明の必要もないだろう。
 
レイヤー階層をまたいで「仕様のコンポ―ネントと「実装のコンポーネント」を配置すると極めて効果的な独立性となる。
いわゆる『依存関係逆転原理』の利用である。
 
組込み系・制御系では抽象度に応じた多層のレイヤー化アーキテクチャを構成するので、「仕様のコンポ―ネント」と「実装のコンポーネント」を分離し、上下の異なるレイヤーに配置することがキーとなる。
 
これがミソである。
 
「依存関係逆転原理」は極めて重要なアーキテクチャ設計の原則である。
 
「仕様のコンポ―ネント」は抽象クラスによるインターフェースなので極めて「安定」している。
 
機能変更や追加は「実装のコンポーネント」で実現する。
つまり、機能修正や拡張については「実装のコンポーネント」によって「開いている」ように設計するわけである。
 
これには継承メカニズムの利用が不可欠である。
 
「実装のコンポーネント」をいくら修正しても、クライアントクラスを「仕様のコンポ―ネント」に依存させていれば、継承による多相(ポリモフィズム)により、「実装のコンポーネント」のタイプ(型)が部分型に該当するので全く影響を受け無い。
 
そして、意味的整合性については『タイプ(型)置換原理』を用いて「実装のコンポーネント」を”振る舞いサブクラスにより構成させる振る舞い部分型コンポーネント”とする。
 
こうすれば「実装のコンポーネント」のクラスをさらにサブクラス作成して継承階層を深くししても意味的整合性は完全に保証される。

|

『SW Plug&Play』設計手法の解説資料

『電子ブロック』の様に「型安全」で簡単に「再利用」「機能拡張」が可能な 『SW Plug&Play』設計手法の解説資料を作成中。

Sw_plugplay
 
誰でも簡単に高品質と高生産性が達成できる『SW Plug&Play』。
 
「タイプ置換原理」「開放閉鎖原則」「依存関係逆転原理」「安定度・抽象度等価の原則」その他を使うが、最も重要な設計技法は「契約による設計」と「リスコフ置換原理」に代表される様な「タイプ置換原理」である。

|

« 2015年8月 | トップページ | 2015年10月 »