asatoの技術的な日常日記

「成長に最大の責任をもつ者は、本人であって組織ではない。自らと組織を成長させるためには何に集中すべきかを、自らに問わなければならない」  非営利組織の経営 - ピーター・ドラッカー

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Concerned about separation (Part 1)

Radium Software Development」みたいに、論文解説とかしてみよう。

ただし、ちゃんと解説するつもりはないので注意。むしろ、書きながらのほうが理解が深まりそうな気がするので、それが目的。

まずは、以下の論文について。


Concerned about separation

Hafedh Mili, Houari Sahraoui, Hakim Lounis, Hamid Mcheick, Amel Elkharraz

European Joint Conferences on Theory and Practice of Software, Fundamental Approaches to Software Engineering, (FASE/ETAPS), 2006.

DL: http://www.iro.umontreal.ca/~sahraouh/publications.html


おそらく、コンサーンの分離(Separation of Concerns or SoC)についての論文。

ソフトウェア工学の分野では、SoC は昔からある話だと思うけど、僕としては、AOP (Aspect-Oriented Programming)の文脈で知ったという感じ。

SoC とは何か? この論文によれば、イディオム。どんな、何のためのイディオム? 問題解決のための一般的なイディオム。あるいは、論文のアブストラクトによれば、SoC は概念的なツール。このツールにより、ソフトウェアシステムの開発などの複雑性に対処しようという感じ。

どんなイディオムかっていうと、複雑な問題をより小さな問題(サブ問題 or 部分問題)に分解して、それら小さな問題を個別に解決していこうぜ、っていう感じ。

論文では、単にそれだけでなく、「ゆるく結合されている(loosely coupled)小さな問題」と書いている。

図で書いてみた。
problem


論文によれば、SoC の基礎にあるのは二つ。
-サブ問題は、解くのが容易
-分解前の元々の問題を解決するために、サブ問題の解決策は、比較的よういに合成されることができる。

話はとんで、というか、よくわからんのでとばして、著者の人たちは、変換のビューを基にした概念的なフレームワークを提案するらしい。

で、ソフトウェアの要求は、変換への入力らしい。

また、この論文では、essential separability と inseparability を、accidental separability と inseparability から区別しているらしい。

essential の方は、要求を特徴付けし、accidental の方は、要求の実現を特徴付けするらしい。

accidental な inseparability は、プログラミング言語の設計によって、対処していくことが可能らしい。

図で書くとこんな感じか(間違ってるかも)。
)。soc



色々飛ばしまくったが、イントロダクションからの内容でした。


SoC と、モジュール化は、僕の関心のあるところ。特に、ソフトウェア進化の文脈で SoC とモジュール化をどう捉えるのかに興味ある。というか、研究してる。というか、研究の方向はそっち。

この論文でも書いてあるように、AOSD の研究は、解領域に焦点を当てる傾向があると思う。でもやっぱり、問題領域についても同時に考える必要があるきがする。

この傾向は、ソフトウェア進化の研究でも同じだと思う。プロダクトとしてのソフトウェアのソースコードの変化を調査することは、解が適用された後の結果を見ていくことであり、その解にいたる事になった問題や、設計者が行った設計のデシジョンなどは、ほとんど無視している。もちろん、難しいからだと思うけど。


続きはまた今度(あるかどうかは知らないが)。
スポンサーサイト

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://asatohan.blog77.fc2.com/tb.php/20-372fad08
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。