goo blog サービス終了のお知らせ 

ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

ソフトシステムズ方法論(SSM)

2010-11-17 20:11:01 | そのほか


 ソフト・システムズ方法論ソフト戦略思考に書かれている、ソフトシステムズ方法論について、メモメモ。

ちなみに、ここ
ソフトシステム方法論「SSM」とはなんだ(1)
http://www.atmarkit.co.jp/farc/rensai/ssm01/ssm01.html

にも説明がある。




■SSMとは

 認識の違いを理解した上で、考え方を修正していく(そして、アコモデートできる落としどことをみつける)方法論

 認識の違いを理解するために、意図的活動モデルを使う
 認識から変革への学習サイクルを循環させる(そうして考え方を修正していくんだね)





■SSMのステージモデル(7ステップ)

 はじめに、こんなふうにかんがえたようだ(リンク先もこれが載ってる)



   現実世界                システム思考

1、問題状況がある
   ↓
2.問題状況を表現する   →
                  3、関連する意図的活動システムの基本定義
                     ↓
                  4、基本定義に名づけられた概念的活動モデル
                              
              ←
5、モデルと現実世界の比較
   ↓
6、変革(システム的に望ましく、文化的に実行可能)
   ↓
7、行為(問題状況を改善するための)







■もっといいアプローチ

 上記の方法より、こっちのほうがいいよと、チェックランドさんがいっている。


○文化的探索                    ○論理的探索
                       現実世界の問題状況
            ↓      ↓
  <文化としての状況理解>     課題・論点
 ・介入の分析               ↓
   社会システム分析     ⇔  関連システム→活動モデル→状況☆
   政治システム分析           ↓
      ↓            モデルと現実世界の差異★
                       ↓
        変革:システム的に望ましく、文化的に実行可能
              ↓
        行為(問題状況を改善するための)




以下、こっちの方法論の、論理的探索、文化的探索のやり方を書きます。
(リンク先は、前者の7ステージに基づいたやり方が書いてあります)




■論理的探索の方法

 上記の右側の手順。以下の4段階。1~3が☆に該当、4が★に該当

1.関連システムの選択
   2つの関連システムがある
     基本課業型システム:現実社会に対応
     論点主体型システム:概念化されたもので、実社会に存在しなくてもOK
   →メタファーを使うといいらしいよ・・・まじ??


2.関連システムの名前付け
   名前をつける→基本定義をする
    *基本定義は入力→変換→アウトプットのプロセスとして表現するみたい。

3.関連システムのモデル化
   ・基本定義を、CATWOE分析、XYZ分析して、さらに詳細化していく。
    その手順は、以下のとおり

  3-1.CATWOE(「きゃとふー」でいいの?)分析を考慮して基本定義を記述
    CATWOE分析(以下を決める)
     ・顧客(C)
     ・行為者(A)
     ・変換プロセス(T)
     ・世界観(W)→変換プロセスは、なぜ必要か
     ・所有者(O)→やめさせることができる人と考える
     ・環境制約(E)

  3-2.XYZ分析によって、主活動を定義する
     Zを達成するために
     Yによって
     Xを行う

  3-3.関連する他の活動を洗い出す

  3-4.まとめて、サブシステムに(活動群により)

  3-5.判定基準を定義&(サブシステムに)追加する
     3つの基準がある
       ・可動性:ほんとにアウトプットを生産できる?
       ・効率性
       ・有効性:目標にあっている?

  3-6.モニターして、コントロールを(サブシステムに)追加する
      モニター:監視して
      コントロール:制御する

4.モデルと現実世界との比較
  異なった利害間でアコモデートできる落としどことをみつけるために、比較する。
  比較方法は、以下のようなものがある。
    ・インフォーマルな議論
    ・公的な質問
    ・モデルを動かし、シナリオを記述
    ・現実世界のモデル化




■文化的探索の方法

 上記の左側の手順。以下の4段階

1.文化としての状況の理解
   リッチピクチャーを書く
     ・状況を伝える
     ・関係性は対処療法的なものは挙げない
     ・文章による説明(凝縮した表現)

2.介入の分析
  役割分析:以下の3つの役割を特定
     ・依頼者(クライアント)
     ・問題解決者
     ・問題所有者

3.社会システムの分析
  社会システム=継続的に変化する、以下の3要素の相互作用
     ・役割
     ・規範
     ・価値

4.政治システムの分析
  異なる意見がアコモデーションにたどり着くまでのプロセス
   →最終的には、「権力の配分」





ってかんじならしい。聞き間違い、勘違いがあるかも。あったらごめん。



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

アスペクトの書き方

2010-11-17 14:12:59 | そのほか


昨日、アスペクト指向のAspectJの話を書いた
そこで、元のソースはいいとして、横断的関心事として記述する、アスペクトの内容について。




■手順

 手順は、以下の3ステップで考えるといいかも

(1)今回、どの箇所に割り込ませるかを、ジョインポイント(割り込み可能箇所)から選ぶ

   ジョインポイントは、こんなかんじ。

     ・クラスの
        →staticの初期化:staticinitialization
       ↓
     ・コンストラクタの
        →呼び出し:call
        →実行:execution
       ↓
     ・インスタンスの
        →事前初期化?:preinitialization
        →初期化:initialization
       ↓
     ・メソッドの
        →呼び出し:call
        →実行:execution
       ↓
     ・フィールドの
        →参照:get
        →代入:set
     ・例外
        →実行:handler
     ・アドバイス
        →実行:adviceexecution

  各クラスやメソッド等の上記位置の割り込ませたいところを選ぶ     
        

(2)上記(1)の箇所を、条件などをつけて、記述する(=ポイントカット記述)
   昨日の例、execution(public String Sample.hello(..));
   のように、選んだジョインポイントのあとに()で条件をつける。
   条件には、* .. + ! && || などが使える。
   また、アドバイスで変数を使えるように、ポイントカット変数を置くこともある。


(3)上記(2)の箇所で行う処理(=アドバイス)を記述する。
   ポイントカットの前に入れるか、後に入れるかの指定
     (before,after,例外を投げたときafter throwing、
      スタブとして実行する=ジョインポイントの処理をしないaround)
   をしたあと、ポイントカットをかいて、そのあと、処理内容を書く。

   アドバイスの外部の変数を利用するには、上記ポイントカット変数を使うか、
   thisJoinPointという、特殊な変数を使う。




■書き方

ポイントカットの書き方に2つあり、1つは昨日例のように、ポイントカットに名前をつけ、

pointcut helloCut():execution(public String Sample.hello(..));

あとで、その名前(ここではhelloCut())を利用して、ポイントカットを指定する方法、
before() : helloCut()

と、直接ポイントカットを書いてしまう方法

before() : execution(public String Sample.hello(..))

がある。

前者の例でいくと、昨日書いたように、

public aspect アスペクトの名前 {

 pointcut ポイントカット名():ジョインポイント(条件(ポイントカット変数とか));
      :
   ポイントカット続く
      :


 beforeとかafterとか() : ポイントカット名()


     アドバイスの処理
 }
      :
     アドバイスつづく
      :
}

となる。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする