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

2011年9月

2011年9月28日 (水)

「CTC製造フォーラム2011」の講演追加情報~講演タイトルと内容

先日ブログで「CTC製造フォーラム2011」で講演を行うことをアナウンスしたが、私の講演を含む他の講演者の講演タイトルと内容のプログラムが公開された。

参加申し込みや詳細な案内は下記へURLで公開されています。

http://spider.ctc-g.co.jp/web/fm/plms/2011085g

|

2011年9月27日 (火)

プロ技術者のソフトウエア開発アプローチの本~「Adaによるソフトウエア開発」

学生時代や新人時代に学んだソフトウエアの内容は主として効果的なアルゴリズムや細かな設計技法が多かった。

しかし、企業のエンジニアとして働くには、学校で学んだ内容でははなはだ不十分であった。

1989年頃、防衛産業のエンジニアとして大規模なリアルタイムシステムをオブジェクト指向で開発する際に、参考にした書籍が「Adaによるソフトウエア開発」である(監訳は筧捷彦先生で、形式手法などを中心に有名な方である)。

L1000223 L1000224 L1000225 L1000226 L1000227 L1000228 L1000229 L1000230 L1000231 L1000232

学生時代に学ぶソフトウエア工学とは異なり、ビジネス世界では要件開発からテストまで大規模開発ならではの開発アプローチが存在する。

学校で学習する内容とは全く異なるスキルが要求される。

書籍「Adaによるソフトウエア開発」では、今の開発方法に近い設計アプローチが解説されている。

Ada言語は先進的な機能を保有しているが、Eiffel言語同様、ソフトウエア工学の知識が充分でないとAda言語を活かせない。

当時鳴りモノ入りで登場したAdaであったが、Ada言語の文法そのものよりもAda言語の思想を満たす分析・設計技法の理解が重要であった。

たとえば、仕様と実装の分離、クラスやオブジェクトの切り出しとAdaパッケージとの対応、マルチスレッド・プロセス設計とAdaのタスクとランデブー通信へのマッピングおよびデッドラインを満たすためのリアルタイム設計などなど。

「Adaによるソフトウエア開発」を読み返すと当時の状況が思い起こされ懐かしい。

|

2011年9月26日 (月)

「CTC製造フォーラム2011」で講演します~ホテル日航東京

2011年21日にホテル日航東京で開催される「CTC製造フォーラム2011」において講演を行う。

講演テーマ、内容については後日お知らせするが、特定の技術や開発環境に焦点を置いた話では無く、今後の日本企業や中国、インドなどの製造業、ソフトウエア産業の方向性を具体的なデーターに基づいて紹介する。

おそらく日本企業のほとんどは知らない事実を具体的なデーターと共に紹介できるだろう。

これを踏まえて、日本企業が何をしなければならないのかを技術的視点と経営的視点から解説する予定。

2

|

2011年9月22日 (木)

「プログラミングの科学」~日本企業は意識が低いソフトウエア正当性~

少し古い書籍になるが名著の誉高い「プログラミングの科学」を読んでいる。

L1000212_2 L1000213 L1000214 L1000215 L1000216 L1000217 L1000218

内容は一言で言うとプログラムの正当性についてである。

バートランド・マイヤーが提唱した「契約に基づく設計」とうのがあるがあるが、この中で登場する「表明」「不変条件」「事前条件」「事後条件」などはバートランド・マイヤーのオリジナルではない。

フロイド、ダイクストラ、ホアなどの研究者の成果をバートランド・マイヤーが自分の設計言語Eiffleと彼のソフトウエア設計思想に組み込んでいる。

この書籍は、プログラムを科学的に設計・実装するときには、重要な考え方があるのだがそれについて順を追って述べている。

命題と述語から始まり「表明」「不変条件」「事前条件」「事後条件」をどのように見つけ出し、設計・実装するかまでを解説しているが、途中に非常に重要な概念や技法を解説している。

本書は記号論理学の書籍ほど固い本ではないが、述語論理について慣れていない人には受け付けないタイプの書籍である。

ただし、この手の内容はひとたび重要なポイントをきちんと学ぶ機会を得て、理解すると数学的である故に、似たタイプの本はすっきり読み進めていける。

一方で、この手の内容は大学できっちり教え、そして学ぶ機会を得ないと、必要と思っていてもなかなか学習するチャンスが無いかもしれない。

そいういう意味ではJava言語のプログラミングとかUMLなどのような事はいくらでも独学できるから、そのようなカリキュラムに時間を掛けるべきでは無い気がする。

日本人がソフトウエアに弱いと言われるのは、論理的な部分が不十分になっているからだと思う。

|

2011年9月21日 (水)

最近耳にしないMDAツール「RoseRealTime」~標準的なオブジェクト指向でなくCSPベースのアプローチです。

先進的な製造業の企業では、MDAアプローチが積極的に進められている。

私自身もMDAの開発経験もあるし、コンサルテーションおよび最新の研究も進めている。

MDAは開発環境の支援がないと行えない技法である。

それだけに開発環境の選択が重要なのである。

一方MDAは開発環境の支援が必要な上に、開発環境の特徴(というか技術のコンセプト)に強く依存する。

つまり、一口にMDAツールと言っても各MDA開発環境の特徴を理解しないと、MDAアプローチの製品開発の効果が不発に終わるこも多い。

MDAの開発環境モデリングツールに、以前「RoseRealTime」があった(現在も販売しているかもしれない。。)。

最近、全くこのRoseRealTimeについての話を耳にしない。

私の印象では、販売元のIBM-RationalがRoseRealTimeの特徴やリットおよび技術基盤についてのアピールが上手でなかった気がしている。

MDA支援ツールは通常、オブジェクト指向技術を軸に先進的な開発手法や理論に基づく機能の支援を提供しているのだが、RoseRealTimeの場合は、開発環境の技術基盤の軸がオブジェクト指向技術を包含しつつも実際には「CSP」であることが最大の特徴だったことである。

他の多くのMDAツールが標準的なオブジェクト指向アプローチに対して、RoseRealTimeは並列・並行性の複雑な設計をどのように形式的に設計するべきかと言うCSPベースのアプローチである。

当然、複数のCPUやマルチコアタイプの実装環境のソフトウエア開発では、並列・並行性の設計は難題の1つであるから、CSP理論を支援する開発環境は非常に重要だ。

RoseRealTimeはツールこのようなソフトウエア開発を想定しており、原則としてCSP理論や効果を理解しているユーザーが活用することが望ましい。

残念ながらRoseRealTimeは少々強引に”オブジェクト指向”を強調しすぎた感がある。

一応、RoseRealTimeの開発アプローチではユースケース記述をしていくところやクラス(これがカプセルの基であり、独立して動作する単位へと成長させていく)抽出する流れは、標準的なオブジェクト指向開発と同じ流れであるが、少々強引な感じも否めない。

なぜなら、標準的なオブジェクト指向アプローチのクラスとRoseRealTimeのCSPベースのクラスは根底が異なるために継承などの考え方に違いが出てくるからだ。

RoseRealTimeでは、「is-a」による区分原理の継承よりも「実装継承」としての設計が多くなる(補足:Liskov置換原理を意識すれば実装継承も保守・拡張性にさほど影響を与えない==>この辺はバートランド・マイヤーの「Object-Oriented Costruction」に詳しく書かれている。マイヤーは実装継承を積極的に薦めている。ただし、「DbC」をきっちりしないとNG)。

多くのエンジニアが特に違和感を受ける部分は、開発ライフサイクル初期の段階から実装上のことを考慮する感じがする点である。

(誤解の無い様に補足しておくと、RoseRealTimeのアプローチの分析(少々乱暴だがMDAのPIMに対応)作業のモデルでは、特定のOSやミドルウエアへの最適化の事では無く、並行性や時間制約およびデーター交換やプロトコルのことを検討するので、一応特定のOSやミドルウエアからは非依存のモデルにはなる。。。)

このことから、オブジェクト指向に慣れた多くのエンジニアが、RoseRealTimeがMDAツールであると主張しながら、PIMやPDMに対応しないモデルを作成していくという印象をぬぐえないのである。

まぁCSPだから当然なんだけど:-)、標準的なオブジェクト指向アプローチしか知らないエンジニアには、非常に違和感を感じるのである。

それだけに、もっとCSPの考え方を説明した上で、オブジェクト指向技術やユースケースによる要件定義さらには反復型開発によるMDAアプローチを推進することを強調した方が正解だった気がする。

実はRoseRealTimeは、もともとObjectTime社のツールであり、IBM-Rationalが買収して名前がRoseRealTimeになった。

そのとき、RoseRealTimeをRUPを合わせたのだが、若干急ぎ過ぎたのではないか?あるいはCSP開発アプローチを理解しないままRUPにあてはめたのか?

ソニー時代、RoseRealTimeのUSAのスタッフの人間と話をする機会があったが、時がCSPアプローチの話は全くしていなかった。

MDAではPIM作成のとき、実装環境およびそれに関連する内容は検討しないのに、RoseRealTimeのアプローチでは、開発初期に必要以上に、並行性や時間制約およびデーター交換やプロトコルのことを検討するのか?
という質問にUSAのスタッフ(多分マーケティングか営業)は回答できなかった記憶がある。

RoseRealTimeはある程度開発対称のプロジェクトを選ぶが(並行性や時間制約が不要なSWなど)、非常に効果があるから、上手に特徴が説明されなかったのは惜しまれるツールである。

|

2011年9月15日 (木)

東京って結構樹木が沢山あるの巻

今週の前半は仕事で都内のホテルに宿泊をしていたが、ホテルから沢山の樹木が見える。

東京タワーや高層ビルが真近に見えるか霞が関でも、東京は結構雑木林や小さな森があることが分かる。

Image0071_2 Image0081 Image0091 Image0101

|

2011年9月 7日 (水)

霞が関に出没の巻

今日は終日、霞が関と虎ノ門でビジネス。

真夏を思わせるような快晴に霞が関ビルが映える。

Image001 Image002 Image003 Image004 Image005 Image006 Image007 Image008

かつては霞が関ビルは、日本最高層のビルだった。

東京タワーの大展望台よりも上になったということで、東京タワーが特別展望台を設置したことは有名。

以前は、霞が関ビルで良く打合せをしたっけ。

暑い一日だったけど、快晴は気持ちがやはり気持ちがいい。

|

2011年9月 6日 (火)

大崎でビジネス・ミーティングの巻き

今日は夕方から大崎でビジネス・ミーティング。

台風が過ぎたが雲が多く、雨が少しパラパラしてきた。

Image0011 Image0021 Image0031 Image0041 Image0051_2

ソニー在籍時代は、ゲートシティ大崎や五反田のビルが職場でったので毎日来たが、ここ数カ月来ていなかった。

ちょっと、懐かしいな。

街も多少再開発が進んでいるようだ。

会議が終わるころには完全に雨が振り出し、一時的に物凄い本降りだった。

食事中に雨も上がり、帰りは傘をささずに済んだ。

明日は日本橋、明後日は虎ノ門に終日外出し、オフィスに戻るのは木曜日の予定。

|

2011年9月 5日 (月)

近所の公園の梅が豊作の巻

マンション内の公園の梅の木数本に大きな梅がビッシリ実をつけている。

Image015 Image017 Image013

特に手入れなどしなくても、これだけ立派な大きな梅がスズナリに実を付けるとは意外だ。

ピンポン玉かそれよりも大きい梅である。

梅酒を作ればかなり良い梅酒が作れそう。

|

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