矢崎です。
コメントありがとうございます。
山田さんがやっていらっしゃること、ヤコブソンがやろうとして
いることを存じ上げていないので、的外れな意見になってしま
うかもしれませんが、私の意見を書きます。
----- Original Message -----
From: "YAMADA Masaki" <masaki@....jp>
To: <extremeprogramming-jp@....jp>
Cc: <extremeprogramming-jp@....jp>
Sent: Monday, March 26, 2001 12:11 AM
Subject: [XP-jp:01770] Re: UML FORUM: Jacobson の XP 観
> 山田@メタボリックスです。
>
> At 23:14 +0900 01.3.25, firo@....jp wrote:
> >ヤコブソンさんがどうか、ということはさておき、私は、プログラミング
> >言語だって、立派な仕様記述言語だと思っています。なんでいまさら、
> >プログラミング言語とは別のレイヤで、仕様記述言語がいるんだ!
> >というのが本音。
私は、例えば、デザインパターン(GoF本)についてですが、あれではクラ
ス図、シーケンス図、そしてコードサンプルがあることが、理解を非常に
容易にしてくれました。サンプルコードは、単にサンプルというだけでな
く、そのパターンがどのようなものかを理解するのに役にたったわけです。
(少なくとも私にとっては)
多少希望的観測も交えていえば、クラス図(厳密でなくてよい)、シーケンス図
(厳密でなくてよい)、コード(サンプル?)(どの言語でもいいとはいいません
が)、
そして、補足の自然言語によるメモ、があれば、なにをしようとしているのか、
ということはだいたいのことにおいて、表せるのではないかと思っています。
>
> うーん、でも普通のプログラミング言語でhowではなく、whatを
> 表せるものは少ないでしょう?
> だからみんなインタフェースとか、契約とか、テスト・ファーストとか
> いろんな仕掛けを入れようとしているんですよね。
> (JDK1.4では表明が入るとか。元々の構想通り前置/後置条件が入るか
> どうかは知りません)
インタフェース、契約、テストファーストは、プログラミング言語レベル
でそれが使える(部分的にしろ)わけで、むしろ、他の仕様記述言語が
いらない理由にもなるように思えますが、いかがでしょう?
さらにリファクタリング(が目指すわかりやすいコードについてのノウハウ)
を加えれば、わかりやすく意図の伝えやすいプログラムが書けるテクニッ
クがそろったことになります。現在、Javaで上記のようなテクニックを使うと、
プログラムコードでかなり意味の通るところまで表現できると思うのですが。
それと、howとwhatというのも相対的であるし、また必ずしもwhatのほうが
意味が通るというわけでもないと思っています。述語論理のようなものから
みれば、大方のプログラミング言語は確かに手続き型でhowです。しかし、
ならば、述語論理で書かれたことと、手続き型で書かれたことが、どちら
が理解しやすいかは、ケースバイケースではないでしょうか。
> どうせモデルを書くのならば、何でそれが動かないんだ!
> (少なくとも検証ができないんだ!)と思うのは人の道理。
この点も私は必ずしもそう思いません。私はUMLでは詳細かつ
完璧なモデルを書くのはやめたほうがいいと思っています。なので、当然
そのモデル上で検証する必要もないと思っています。人の通理をはずれて
いますが、、、