̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ IT ニュース&コラム 2014/ 9/15 通巻670号 ニュース版 ソフトウェアデザイン館 Sage Plaisir 21  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 富士通が発表した設計書からプログラムを自動生成するツールの使い道 2014年8月28日、富士通ミッションクリティカルシステムズは、日本語で書かれた 設計書からプログラム・コード、テスト・データ、テストの実行環境を自動生成 する開発支援ツール「Interdevelop Designer」を発表した。 現在は COBOL のみで、 Java は開発中。 Interdevelop Designer という名前から、特定の技術者に依存した開発から脱却 することが大きな目的であると思われる。 つまり、プログラミング言語で書かれた コードは、開発した特定の技術者しかメンテナンスできないので、自然言語(日本語) で書かれた設計書ならどの技術者でもメンテナンスできるという仮説を根拠としている。 特定の技術者しかメンテナンスできないといったことは、多くの開発マネージャー が経験している。 そのため、誰でもメンテナンスできるようにしてほしいという 願望はもっともだ。 だから(なぜか)、詳細設計書を書こうという方針は、 開発マネージャーらに支持されており、それゆえにこのようなツールの需要がある。 しかし、開発の現場では詳細設計書は支持されていない。 いくら日本語で書かれて 理解しやすくても、細かい仕様が書かれていなかったり、細かい仕様を作っていくと 矛盾が出て品質が悪いからだ。 それも当然で、設計を表現しやすい言語が使えない から細かい仕様を文章にするのが大変だったり、コンパイラーや自動検証などの ツールを使って品質を高めることができないからだ。 この実態は、実際に体験して みないことには理解できない。 だから、開発マネージャーは、開発しやすくなる ことを現場に理解してもらうことをあきらめ、せめて自分(とまわりにいる人) の理解のために詳細設計書を要求することになる。 ソースと1対1に対応するフローチャートを作るツールは、フローチャートの粒度が 細かすぎて読みにくいため普及しなかったという歴史がある。 コードと同じレベルの 粒度になると、プログラミング言語固有の概念を理解しなければ理解できない ことが出てくる。 また、人間が理解できる処理の順番と、コードの順番が違って くることがある。 たとえば、処理の順番は状態遷移表で表現されることがある。 また、検索しやすいことの方が理解が早くなることが多くなる。 これは、概念の 定義が、事例にある別の概念との関係性によって定義され、事例が多いほど(検索 するほど)厳密になることが根拠にある。 そうなると、単語よりシンボルの 方が適する。(ドキュメントにはシンボルを積極的に使うべきだ。) つまり、これらの課題を解決しなければ、細かくするほど文章による理解が難しく なる。 本末転倒だ。 逆に言えば、それらを解決していればよいのだが、 Interdevelop Designer にその機能があるかどうかは不明だ。 Interdevelop Designer を使うならコードを出力できるまで厳密な設計書になる 文章の書き方を、習得しなければならない。 分岐条件を抽出する独自技術が あるというが、その分岐が確実に出るというクセを習得しなければならない。 実質、新しいプログラミング言語だ。 そうなると、厳密な設計書のための設計書が必要になるかもしれない。 新しいプログラミング言語になると移植も必要になるだろう。 プログラマーがプログラミング言語を扱う代わりに厳密な設計書を扱うように 変わるだけだ。 プログラミングスキルに依存しないシステムの構築と保守が 可能となるのはセールストークだ。 詳細設計の表現方法は、詳細なコード+あいまいな設計書がベストミックスである。 コードは仕様を厳密に記述できるように、自然言語を改良したものである。 人間がコードを理解しにくいというのは、昔の(言語の)話だ。 それを駆使しなければ、システムはメンテナンスできないのだ。 また、設計書からコードにしてツールでエラーが出たら、コードを修正するだけでなく 文章も更新(同期)しなければならない。 文書が細かければ細かいほど同期は 大変な作業となる。 この同期に関しては、コードを自動生成する Interdevelop Designer ならメリットがあるだろう。 逆に doxygen や Natual Docs といったソースからドキュメントを生成するアプローチ が取られることがある。 ただ、有名な doxygen は、まとめ方が良くないため、 自動生成されたドキュメントではダメという評判が主流になってしまっている。 Natual Docs は、有望だが書き方を知っている人がまだ少ない。 これらのツールに 共通するのは、関数の内容についてはドキュメントにしていないことだ。 つまり、 ソースと1対1に対応するフローチャートを作るツールの失敗を踏まえているのだろう。 このような CASE ツールは、オブジェクト指向の方法論者が大集結した IBM の Rational でさえ普及していない。 オブジェクト指向によってプログラミング言語の表現力が上がり、 オブジェクト指向ブームが起きた 1990年代にも CASE ツールは注目されてきたが、 残ったのは オブジェクト指向だけだった。 つまり、あいまいな自然言語を厳密に していくアプローチは失敗して、プログラミング言語を人間に近づけていく アプローチが成功しているのだ。 これは、リーダブル・コードを推進した方が よいことを示している。(ただし、ミスをなくすためのコーディング・ルールが その邪魔をすることがある。) 詳細仕様書が読めればメンテナンスができる というのは幻想なのだ。 ただ、Interdevelop Designer をテスト項目を追加するために、テストプログラムを 生成するために使うとしたらメリットは現実的になる。 設計書が厳密で完全である 必要がないからだ。 既存の設計書に手を加える工数を増やさずに、テストプログラム が増えるからだ。 仕様の漏れを防ぐことができるかもしれないし、設計書の矛盾が テストから見つかるかもしれない。 コード(詳細設計の表現方法の1つ)から テストプログラムを生成するツールの一種と見ることができる。 ソース http://jp.fujitsu.com/group/fmcs/services/purpose/interdevelop-designer.html http://blog.livedoor.jp/itsoku/archives/40568584.html 注目ニュース 一覧 ◇ アップル、Apple Watch アプリ開発キット、WatchKit を発表。 http://japan.cnet.com/news/service/35053570/ http://qiita.com/KENJU/items/af8d31b09d64547375f5 … 発売までにキラー アプリケーションが揃えられるか。 ◇ Newニンテンドー3DS 登場。新スティック・ボタン追加、NFC搭載。 http://www.itmedia.co.jp/news/articles/1408/29/news135.html … 大きなマイナーチェンジ。トラックポイントのような Cスティック。 ◇ Xbox One、日本で2万台も売れたのか…。海外メディア皮肉。 http://newsphere.jp/entertainment/20140912-2/ … KINECT を外して、PS4と同じ価格にしても、PS4 さえ日本では好調ではない。 ◇ Xperiaブランドで世界最薄・最軽量の8型タブレット発表。 http://pc.watch.impress.co.jp/docs/news/event/20140903_665068.html … ウェアラブル端末は、SmartWatch3 だけでなく SmartBand Talk にも注目。 ◇ シングルページ 流行の7つの理由と最新事例まとめ。 http://ascii.jp/elem/000/000/921/921580/ … モバイル ファーストの影響。1ページだけといっても、いろいろな仕掛けで楽しめる。 ◇ インテル超低消費電力CPU、Core M を正式に発表。 http://japan.zdnet.com/cio/analysis/35053431/ http://www.pcper.com/reviews/Processors/IDF-2014-Intel-Shows-Core-M-5Y70-Performance-Numbers … 良い性能値は、ターボブースト時(15W)のものか? ◇ メモリの発達が急加速!かたやCPU・GPUは行き詰まりに? http://game.watch.impress.co.jp/docs/news/20140905_665358.html … プロセスの微細化での高速化に限界。 ◇ HGST、世界初の10TB HDDを出荷開始。3.2TB 2.5インチSSDや1ラックで10PBのストレージなども。 http://pc.watch.impress.co.jp/docs/news/20140910_666018.html … 容量の拡大は、まだ続く。 ◇ アップル、App Storeにおけるアプリ拒絶の理由上位10項目を公表。 http://japan.cnet.com/news/service/35053247/ … バグがあることまで見てくれるのか? ◇ 出版不況は本当か?書籍まわりのニュースは嘘が多すぎる。 http://japan.cnet.com/sp/t_hayashi/35053097/ … 悪いニュースほど食いつきやすい。 ◇ Google Chrome で周囲の会話が“ダダ漏れ”? 音声検索機能に危険はないか。 http://techtarget.itmedia.co.jp/tt/news/1409/04/news04.html … Google が W3C のせいにしてはいけない。 ◇ SSL証明書の扱いが不適切なAndroidアプリ380件。CERTがリストを公開。 http://japan.zdnet.com/security/analysis/35053437/ … 認定された認証局から発行された証明書は、お金がかかるからか? ◇ マルウェアの氾濫ぶり続く。McAfee調べ。 http://www.itmedia.co.jp/enterprise/articles/1409/05/news104.html … 機密性の高いデータを保有している財務部門と人事部門ほど詐欺を見抜けない。 ◇ Google、SHA-1 サポート中止のスケジュールを発表。 http://www.itmedia.co.jp/enterprise/articles/1409/08/news043.html … https プロトコルのサーバーが SHA-1 のものは、マイナーなエラーありと表示。 ソフトウェアデザイン館 Sage Plaisir 21 ホームページ >>> http://www.sage-p.com/ メルマガ >>> http://www.mag2.com/m/0000083983.html ブログ >>> http://blog.livedoor.jp/sage_p/ ツイッター >>> http://twitter.com/Ts_Neko ダウンロード >>> http://www.sage-p.com/freesoft.htm サポート掲示板 >>> http://www.sage-p.com/kg_ban09/z6037C8.cgi 東日本大震災 >>> http://www.sage-p.com/saigai.html メール >>> ts-neko◇sage-p.com ←◇を@に変えてください 緊急メールは件名に「うどんメール」を付けてください。 このメルマガの登録・解除 - http://www.mag2.com/m/0000083983.htm