Ognacの雑感

木漏れ日々

目次

Blog 利用状況

書庫

ギャラリ

システムはソースをみれば解かる?

「ソースが全てだ。」という人がいます。プログラムのコメントの意味ならは、納得できますし、賛同します。
読みやすいコメントを書くのと、読みやすいソースを書くのとの比較論は彼方此方で交わされてます。
意味不明なコメントより一目瞭然のソースのほうが理解が早いです。
 ところが、これを拡大解釈して、システム(プログラム)処理書にも適用しているケースが過去いくつかありました。
システム処理書と実装を対にして置くのは至難な事は知ってます。一人もしくは、数人程度で作成する小さいシステムならば、処理仕様をソースを追いかけても対処可能な事も知ってます。
でも、主要テーブル(常時更新)が10個以上でサブシステムが複数個存在するシステムで、処理書と実装が不一致なのは頂けません。
 更新項目対応表や業務テータフローなど、要件仕様が実装と不一致なのは、後々不味いことになります。
中規模以上のプロジェクトになると仕様書などの書類で机上で設計することが多いので、機能と実装が食い違う事態になれば、設計書を訂正しなければいけません。
「時間がない」と後回しにすると、反映されずになってしまう可能性が高いです。
小規模システムと開発者と運用者が同一でも、何時本人が活動不能になるか分かりません。実装と機能書の保守は同程度に重要な事だと思うのです。

投稿日時 : 2008年2月21日 12:02

Feedback

# re: システムはソースをみれば解かる? 2008/02/21 12:54 シャノン

システムが大規模になればなるほど、仕様書とコードの同期は重要性も難易度も上がる。
何かいい解決策は無いかね。
そもそも、同期してないってことは、存在しない仕様を実装しているようなものなので、どうかとも思うが。

# re: システムはソースをみれば解かる? 2008/02/21 13:11 NAO

仕様書作る→作る→修正する→仕様書反映→…(繰り返し)…完成→仕様書反映
な筈ですが…問題は一番最後のとこ。

反映させようとすると、
終わった物に関わってるんじゃないと言われ、
いや…でもそうしないと…と言っても
その分の工数nうわなにをするやめry

と言われて終わる物多いです…

解決案としてはその分の工数を見込んでおくんですが
上が「早く終わったなら利益増えるから良いじゃん」で押し切ります。

結論としてはドキュメントの重要性を上に認識させないと。
でも解ってくれない事が殆どなので、

そう言う場合は痛い目見させます。

# re: システムはソースをみれば解かる? 2008/02/21 13:32 ゆーち

昔は世界中で、UNIXのCを読めって言われてましたね。
すぐれたソースを読むのがいいって。
まだ信者がいるらしいけどね。
申し訳ないけど(誰に?w)優れているソースだとは思わなかったです。
(゜∀゜)

仕様書への反映ですかぁ?
マンドクセー(´・ω・`)
完成図書に至っては、もう(ry

脳内仕様です。(^-^)v
あちきが死んだら、もう一回作ってください(w
じゃだめ?(w

# re: システムはソースをみれば解かる? 2008/02/21 13:44 kox

ドキュメントの保守は意外と管理が難しいですね。
保守していると着実に管理対象のドキュメントが多くなる。
すこしずつソースとの同期がなくなっていき、
そのうちドキュメントの信頼性がなくなってきてしまいます。
そうなると結果的に「ソースが全てだ。」ということになる。
僕はその解決策を見つけられないでいます。

# re: システムはソースをみれば解かる? 2008/02/21 14:19 シャノン

> あちきが死んだら、もう一回作ってください(w

何も死なないでも…w

「永遠のバージョン1.0」ってのはどうでしょうね。
保守はしません。仕様が変わったら毎回ゼロから作り直し。
設計書はありません。ヒアリングしながらコーディングします。

# re: システムはソースをみれば解かる? 2008/02/21 14:23 Ognac

諦めの境地感が漂いますねぇ.....しかし、最大の疑問を感じるのです。
正常な仕様変更(処理ロジックか変わる)ということは、自分もしくはプログラマに変更指示を与えるという事だから、仕様書もしくはそれに類する物に変更指示書を起こして、作業しません? 「口頭で指示を受けて変更する」ことに疑問が残るのです。
 異常な仕様変更...おそらく同期が狂う主原因....はプログラムが上がって動作させたら動きがおかしい....修整する...業務要件にマッチする....これは仕様バグであってプログラマの責任ではないです。なおさら仕様書に反映しないと、上流バグを押し付けられてしまいます。........回り道のように感じても、仕様書を修整してからソースを直すのが結果的に早くて確実です。 理想論でなくて現実です。
   というものの、[ソースが全て}という現場や容認している設計者が多いのも事実なんですが....(^^

# re: システムはソースをみれば解かる? 2008/02/21 15:26 凪瀬

mixiのコミュニティでも話題があったところなのですが…。
仕様とロジックの境目が曖昧だから出てくる話題なのかもしれませんね。

とくに仕様という名でロジックが書かれていたり、
ロジックという名の仕様があったりと重複していると
仕様とロジックの不一致に悩まされるのではないでしょうか。

「仕様が~」「ロジックが~」という話題の場合、そもそも仕様って何?ロジックって何?線引きできている?というところで
前提が食い違って議論が進まないのではないかと思える…。

# re: システムはソースをみれば解かる? 2008/02/21 17:39 Ognac

>「仕様が~」「ロジックが~」という話題の場合、
この区別の混乱も一因なんですね。
 「売価は10円未満切捨て」というのは仕様で
    A: 売価= 売価 - 売価 mod 10
B: 売価 = clng(売価 / 10) * 10
    C
: その他の式
A,B,Cのいずれで実装するかがロジック   とするならば、ロジックと仕様書は対にする必要はないでしょう。実装者の裁量範囲です。ブラック-ボックステストの範疇としてもいいのかも知れません。
10円未満切捨て....で実行した結果思わしくなかったので。「5円単位にしたい」と要求があった場合は、仕様書の変更なしでコードを変更してはいけないと思うのです。仕様書の変更を後にすると、何にもなりません。まず仕様書を修整してからコードの変更になります。
 規模の大小はありますが、この延長線上で判断すれば、仕様書と実装の不一致は減らせると思うのですが....甘いですかね

# http://www.middleeastmanagers.com/ 2012/11/07 22:36 モンクレール ダウン店舗

はじめまして。突然のコメント。失礼しました。

タイトル
名前
Url
コメント