by
Anonymous Coward
on 2015年03月03日 16時22分
(#2770964)
まさにこれ。 > ある値 a と b を合計する値を求めるのが要求と仕様だったとして、 > 実装が a - b になっていた場合、「ソースだけ見ても実装のミスとわかる人はいない。」 って言ってるけど、そもそも設計書の段階で間違われてたらどうすんだと。 更にソースでは要求仕様をきちんと満たしてたりすると、余計に混乱するわけです。 プログラミングでは、重複を避けろと言われますが、同じ内容を別の言語で重複して書くのは愚行です。 *BSD や Linux にすら設計書がないのに、明らかにそれら以下の規模や複雑さのソフトに設計書が必要である明確な根拠があるとは思えないです。
ソース自体 (スコア:2)
ソース自体が設計書(の一部)なんですが。
大体、他の物作りでも、自然言語だけでは正確な指示は出来ないので、その仲介として図面などが存在して、それらはとてもじゃないけど、シロート(あえてカタカナ)には書くことどころか、読み取ることも出来ない。(ソースよりは判ったふりはしやすい)
要するに、「セッケーショがぁ」と騒ぐ上司は、他の物作りの場面で図面とか判ったふりをする奴。ポンチ絵でも描いてわたしゃ納得しますって。
Re: (スコア:0, 興味深い)
>ソース自体が設計書(の一部)なんですが。
こういうこという奴は「私はバカです」
って言ってるのと同じだと思ってる。
要求書とそれを実現する実装方法を抽象化した「設計書」がない限り「実装のミス」はわかりません。
ある値 a と b を合計する値を求めるのが要求と仕様だったとして、
実装が a - b になっていた場合、「ソースだけ見ても実装のミスとわかる人はいない。」
ソースを設計書というなら「a - b」が正となり、それしか資料がなくなるのだから。
Re: (スコア:0)
あなたの理屈で必要なのは要求仕様書であって、設計書ではない。
そして要求仕様書は設計者が書くものじゃない。
Re: (スコア:0)
要求仕様書なんて
「なにがしたい」(ものを買いたい、売りたい。)
レベルで「実現方法(機能仕様、機能設計)」はないでしょうが。
必要なのは「機能と実装の設計」
「コーディング仕様書なんていらない」のは同意できますが「機能実現の為の実装設計書」は必要です。
「どういうDBでどのテーブルはどういう意味を持ち、どのフィールドは何のためで、
どういう計算で入るべきか。」
それが「要求仕様書?あほか」
上記がない限り実装でミスってもけっしてわかりません。
Re: (スコア:0)
>「機能実現の為の実装設計書」は必要です。
>「どういうDBでどのテーブルはどういう意味を持ち、どのフィールドは何のためで、
>どういう計算で入るべきか。」
機能を上から下まできっちり詰めることができるのなら、それは即ちそのまま
ソースコードに落とし込めるということで、それなら最初からソースコードに
そういうことを書けばいい。
そういう意味で『ソースコードは設計書』なんです。
# それにね、だいたい同じ頭で「機能実現の為の実装設計書」と「ソースコード」を
# 書いたところで、両方に同じ間違いをするのが関の山でしょ。
Re:ソース自体 (スコア:0)
まさにこれ。
> ある値 a と b を合計する値を求めるのが要求と仕様だったとして、
> 実装が a - b になっていた場合、「ソースだけ見ても実装のミスとわかる人はいない。」
って言ってるけど、そもそも設計書の段階で間違われてたらどうすんだと。
更にソースでは要求仕様をきちんと満たしてたりすると、余計に混乱するわけです。
プログラミングでは、重複を避けろと言われますが、同じ内容を別の言語で重複して書くのは愚行です。
*BSD や Linux にすら設計書がないのに、明らかにそれら以下の規模や複雑さのソフトに設計書が必要である明確な根拠があるとは思えないです。
Re:ソース自体 (スコア:1)
それだと誰も設計レビューしてないみたいだ。
*BSD や Linux にすら設計書がないのに、
IRC や ML のログが暗黙の設計書だったりする。
ときにはアスキーアートまで駆使して説明することもあるよ。
Re: (スコア:0)
>プログラミングでは、重複を避けろと言われますが、同じ内容を別の言語で重複して書くのは愚行です。
この一文でわかる通り、
いらないと言ってる人間がそうぞうしてるのは「コーディング設計書」であって「機能仕様書、実装設計書」
じゃないんだよなぁ。
それこそ2回かくのばかばかしいんで。
(#2770957)
Re: (スコア:0)
オープンソースほどドキュメントが豊富に揃ってれば、設計書書かなくてもいいかもしれませんね。
Linuxなんて本屋に行けば、カーネルコードの設計書がいくらでもあるんですから。
Re: (スコア:0)
ちょっと聞きたいんだけど、『実装設計書』は
1. どういう立場の人が
2. どういう立場の人向けに
3. どのようなことを目的として
書くものなの?
プログラマ=設計者なら、プログラマが書くもの=ソースコードこそが設計書だと
思うんだけど、プログラムに関する設計書がソースコード以外に必要ということは
プログラマは設計者では無い(所謂コーダー)と考えているということ?
それとも『設計書』という名前が適切ではないということ?
(例えば、ユーザー向けにI/Fの仕様書はソースコードと別に必要だと思うけど、
それに設計書という名前が付いているのは適切ではないというように。)
Re: (スコア:0)
プログラマ=設計者なら、プログラマが書くもの=ソースコードこそが設計書
だからこれが間違い
プログラマ=設計者=保守作業者、メンテナ(機械化人間にでもなって寿命を超えて永遠に)
ならいらないかもね。
1.設計者が
2.プログラマまたはメンテナ向けに
3.システム全体、クラス、関数の用途、それぞれの目的と実装と採用ロジックを記述するもの
かな。
ここでループするとか、そういう「コーディング設計書」はいらない。
必要な機能は何で、どういうロジック理論で、どう実装するか。
たとえば基幹システムでの単価が「移動平均」なのか「固定単価」か
ソートして返す関数が必要で
Re: (スコア:0)
タレこみが言っている『設計書』(それにプログラマ視点での設計書)と、あなたが言っている『設計書』が違うものだっていうのはよく分かった。
名前は『基本設計書』『詳細設計書』でも、プログラマに対して『こういう仕様で作るように』と出すものだからプログラマの側からすればそれが要求仕様書になる。
(もっと言うと、システムの『設計書』とプログラム/モジュールに対する『要求仕様書』は性質が異なるものなのに『基本設計書』『詳細設計書』と一括りにしているところにも問題はある。)
元々タレこみが問題にしているのは、ソースコードを作成し終わった後で、そのソースコードの内容を逐一説明するような設計書を作る必要があるか、ということ(だと私は理解している)。
Re: (スコア:0)
タレこみをよく読みましょう。元のタレこみは「ドキュメントそのものを否定してます」
>ソースコードを作成し終わった後で、そのソースコードの内容を逐一説明するような設計書を作る必要があるか
自動生成でできるのがこれ。これだとそもそも「何がしたいのかわからない」
だから「別につくれ(要求仕様書、基本設計書)といわれたのでしょう」
Re: (スコア:0)
「必要な事はコメントに書いてあるし、お望みとあらばドキュメント化して自動出力も可能にしてあったのだ。」
ってことだから、この自動生成で出力されるのは処理を日本語で表現したゴミとは違うんじゃないかな。
ちゃんとしたメタデータが出力されるにもかかわらず文書化を要求されるということならば
・自動生成のフォーマットであることを拒否された
・自動生成では粒度が細かすぎた(詳細なドキュメントというものそれ自体を拒否された)
・自動生成のシステムを単純に毛嫌いしていた
・タレこみ人のコメントから生成されるドキュメントでは不足だった(としたら手書きでもダメだと思うんだが…)
など何かしらクソみたいな理由があると思われます。
もちろん、タレこみ人のコメントや自動生成のためのメタデータが全体的にゴミだったという可能性もありますけど。
Re: (スコア:0)
なるほど、タレコミ主はウォーターフォールモデルで出来上がってくるダメ設計書しか知らないから『設計書なんて一切必要ない』と思い込んじゃっているのか。
Re: (スコア:0)
本当に必要なドキュメントは、あなたが言う『要求仕様書、基本設計書』とは違う何かだよ。
Re: (スコア:0)
自分は余り多人数での開発はした事が無いですが、
その数少ない経験では、
・ソースを持ち寄る。
・押し合いへし合いで、やばいと思ったら早めに概念を
分ける提案をする。
のが常で、
全体を見晴るかせる文書がいるなら、実装工程の後に
別工程を新設するより無いと思う。
Re:ソース自体 (スコア:1)
Re: (スコア:0)
これって、コメントに記せば済む話じゃないの?
むしろ、設計書に分かれてて、記述箇所に物理的距離が生じるとメンテナンス性が悪化すると思う。
Re: (スコア:0)
大概の開発プロジェクトでは「設計工程」と呼ばれるものが存在していると思いますが。