本ブログの更新について
本ブログの更新は2016年3月31日をもって終了しました.ありがとうございました.
posted by みっちぃ (管理人)
2007年02月22日
“正しい”とは?
rta50iさんのブログで採り上げられているソフトウェア要求と仕様の関係.有名なM.Jackson先生の書のひとつである.
さて,ソフトウェア要求の要求文書をまとめ上げたとき,それが正しいことを測れるだろうか.SWEBOKには,ソフトウェア要求文書の検証(Verification)の具体的な進め方がIEEE1028-97に記述されていると書いてある.しかし,具体的で効果的な手法が十分に確立されていない領域であることは間違えないだろう.
いずれにおいても,不正確さの残る要求文書に基づいて,我々ソフトウェア技術者は設計・実装を行うことになるわけである.もしここで,論理的概念に基づく(検証や設計などの)開発支援ツールを導入したらどうなるだろうか.ツールの利用を通して,要求文書の矛盾点を発見できるかもしれない.しかし,それは“ツールの都合”によって発見されたものにならないだろうか.
“ツールの都合”とは“論理の都合”である.ソフトウェアを作る側から言えば,論理の都合は絶対的なものであるだろう.しかし,論理の都合がソフトウェア要求に影響を与えたとき,それが顧客の要求を反映したものであるという保証はない.つまり“正しい”とは何であるかということである.そこには既に矛盾が生じているのだ.
さて,ソフトウェア要求の要求文書をまとめ上げたとき,それが正しいことを測れるだろうか.SWEBOKには,ソフトウェア要求文書の検証(Verification)の具体的な進め方がIEEE1028-97に記述されていると書いてある.しかし,具体的で効果的な手法が十分に確立されていない領域であることは間違えないだろう.
いずれにおいても,不正確さの残る要求文書に基づいて,我々ソフトウェア技術者は設計・実装を行うことになるわけである.もしここで,論理的概念に基づく(検証や設計などの)開発支援ツールを導入したらどうなるだろうか.ツールの利用を通して,要求文書の矛盾点を発見できるかもしれない.しかし,それは“ツールの都合”によって発見されたものにならないだろうか.
“ツールの都合”とは“論理の都合”である.ソフトウェアを作る側から言えば,論理の都合は絶対的なものであるだろう.しかし,論理の都合がソフトウェア要求に影響を与えたとき,それが顧客の要求を反映したものであるという保証はない.つまり“正しい”とは何であるかということである.そこには既に矛盾が生じているのだ.
2007年02月18日
気持ちぃ〜ソースコードとは? その1
気持ちぃ〜ソフトウェア開発のための,気持ちぃ〜ソースコードとはなにか?
前にも書きましたが,職人の書いたソースコードは気持ちぃ〜わけです.無駄が無いし,分りやすいし,メンテしやすし・・・・.もちろんバグも無い.でもそれだけでは,気持ちぃ〜ソースコードにならないのではないか?と思ったのです.電車の中でそう考えていたら・・・・,眠くなってしまいました
おっ! 分りにくくて処理を追うのが大変なソースコードは,眠気を誘うかもしれません.眠気に耐えるのはキツイですが,もしそのまま寝ることができるのなら,その眠気を引き起こしたソースコードは“気持ちぃ〜ソースコード”かもしれません.
でも,気持ちぃ〜睡眠ではないかもしれませんね.夢の中で難解なソースを追っていることでしょう・・・・.
( ̄∇ ̄;
前にも書きましたが,職人の書いたソースコードは気持ちぃ〜わけです.無駄が無いし,分りやすいし,メンテしやすし・・・・.もちろんバグも無い.でもそれだけでは,気持ちぃ〜ソースコードにならないのではないか?と思ったのです.電車の中でそう考えていたら・・・・,眠くなってしまいました
おっ! 分りにくくて処理を追うのが大変なソースコードは,眠気を誘うかもしれません.眠気に耐えるのはキツイですが,もしそのまま寝ることができるのなら,その眠気を引き起こしたソースコードは“気持ちぃ〜ソースコード”かもしれません.
でも,気持ちぃ〜睡眠ではないかもしれませんね.夢の中で難解なソースを追っていることでしょう・・・・.
( ̄∇ ̄;
自動生成されたソースコードはきもちぃ〜か?
先ほどまで友人と話していて,ふと思ったので少し考えてみることにします.論文書かなければいけないのですけど,ちょっと気合が抜けてしまったので.
ソースコードを読んだり修正するとき,ストレスが少ないのはたぶん自分のソースだと思います.しかし,他人の書いた“きれいなソース”を体験すると価値観が変わることでしょう.きれいなソースは見た目にも綺麗ですし,読んでいても綺麗なのです.まさに職人のなせる技です.だから気持ちぃ.
一方,自動生成されたソースは気持ちぃ〜でしょうか?直感的に,答えはNOです.それはちょうど,手打ち蕎麦に例えてもよいかもしれません.職人の作った蕎麦は風味の豊かさだけでなく,見た目の美しさもあります.機械で作られた蕎麦にはとても真似できません.そこには職人の経験と勘が生かされています.ソースコードも同様だといえるでしょう.
大事なのは,ソースコードの自動生成は何を目的としているかということです.「工数の削減」が主な目的とだと思いますが,本当に効果を得ているでしょうか?自動生成されたソースが汚ければ,メンテナンス性が低下して,かえって工数が増えてしまうなんてことになりかねません.
気持ちぃ〜ソフトウェアの研究は,ソースコードの自動生成が目指すべき“綺麗なソース”を定義するために必要不可欠のような気がします.どのようなソースコードが気持ちぃ〜のか,まずはこのテーマから掘り下げていくべきかもしれません.
ソースコードを読んだり修正するとき,ストレスが少ないのはたぶん自分のソースだと思います.しかし,他人の書いた“きれいなソース”を体験すると価値観が変わることでしょう.きれいなソースは見た目にも綺麗ですし,読んでいても綺麗なのです.まさに職人のなせる技です.だから気持ちぃ.
一方,自動生成されたソースは気持ちぃ〜でしょうか?直感的に,答えはNOです.それはちょうど,手打ち蕎麦に例えてもよいかもしれません.職人の作った蕎麦は風味の豊かさだけでなく,見た目の美しさもあります.機械で作られた蕎麦にはとても真似できません.そこには職人の経験と勘が生かされています.ソースコードも同様だといえるでしょう.
大事なのは,ソースコードの自動生成は何を目的としているかということです.「工数の削減」が主な目的とだと思いますが,本当に効果を得ているでしょうか?自動生成されたソースが汚ければ,メンテナンス性が低下して,かえって工数が増えてしまうなんてことになりかねません.
気持ちぃ〜ソフトウェアの研究は,ソースコードの自動生成が目指すべき“綺麗なソース”を定義するために必要不可欠のような気がします.どのようなソースコードが気持ちぃ〜のか,まずはこのテーマから掘り下げていくべきかもしれません.
気持ちぃ〜ソフトウェア開発とは?
“気持ちぃ〜ソフトウェア開発”とはなんでしょうか?
たぶん・・・,
・気持ちぃ〜要件定義
・気持ちぃ〜ソフトウェア設計
・気持ちぃ〜プログラミング
・気持ちぃ〜テスト
・気持ちぃ〜保守
なのだと思います.
“気持ちぃ〜プログラミング”は,個人の範囲では実現済みのような気がするなぁ.自分の書いたソースが動いたときの快感は,ほとんどのプログラマが体験しているでしょう.でも,大規模開発などで他人書いた(汚い?)ソースに追加/修正するときは,たぶん“気持ちぃ〜プログラミング”ではないですよね.『なんでこうなっているの!?』とブツクサ文句を言いながら,コーディングを進めているはずです.ストレスが溜まって,気持ちぃ〜どころじゃないはずです.
そう考えていくとと,“気持ちぃ〜ソフトウェア開発”は奥が深いテーマのようです.“気持ちぃ〜ソフトウェア開発”が実現できれば,世の中のソフトウェアはもっと豊かになるに違いありません.そう信じて,いろいろと議論していきたいと思います.
たぶん・・・,
・気持ちぃ〜要件定義
・気持ちぃ〜ソフトウェア設計
・気持ちぃ〜プログラミング
・気持ちぃ〜テスト
・気持ちぃ〜保守
なのだと思います.
“気持ちぃ〜プログラミング”は,個人の範囲では実現済みのような気がするなぁ.自分の書いたソースが動いたときの快感は,ほとんどのプログラマが体験しているでしょう.でも,大規模開発などで他人書いた(汚い?)ソースに追加/修正するときは,たぶん“気持ちぃ〜プログラミング”ではないですよね.『なんでこうなっているの!?』とブツクサ文句を言いながら,コーディングを進めているはずです.ストレスが溜まって,気持ちぃ〜どころじゃないはずです.
そう考えていくとと,“気持ちぃ〜ソフトウェア開発”は奥が深いテーマのようです.“気持ちぃ〜ソフトウェア開発”が実現できれば,世の中のソフトウェアはもっと豊かになるに違いありません.そう信じて,いろいろと議論していきたいと思います.