2016年07月13日

どこまでが仕様の範囲か


仕様にはどの様な範囲の事を規定するべきなのかという話です。

仕様の範囲


前提条件として工程というものは内部的な運用としては自由に定義して構わないものだと考えています。従ってここで論ずる内容は絶対的な仕様の範囲を定義しようとしている訳ではありません。

結論から言うと仕様というのは自分的には以下の様に定義しています。
外部に表れるもの全て
ここで外部というのはプログラムの外側という意味です。ブログラムがその外側へ影響を及ぼす全ての事柄という事になります。なぜその様な定義にするかと言うと、一般的には機能、すなわちプログラムがどの様に動くかという挙動は仕様として規定すると思いますが、それ以外のものも含めたかったからです。
以降に代表的な例を挙げます。

例えばワークファイルの場所とか名前です。
ワークファイルはブログラムが動作中に一時的に作成する内部処理用のファイルなのでユーザーから見える機能とは何も関係ありませんが、プログラムが外部に作るファイルという意味で上の定義からすると仕様に含まれます。

例えば資源です。
資源というのはメモリーとかハードディスクとかの事です。ワークファイルよりはユーザーに直接かかわる要素と言えます。資源をどの程度消費するかが明らかになっていないとどの様なマシンのスペックが必要なのかが分かりません。そう考えると仕様というのも理解し易いと思います。

例えば性能です。
ここで言う性能とは単純なスピードの事です。勿論機能ではありませんがやはり外部に現れる事柄という意味で仕様に含みます。仕様の段階で性能を見極める事が難しいという状態の組織にとってはもっと後の工程に追いやりがちです。場合によってはテストの段階で初めて明らかになったりします。しかしハード的な製品の仕様書等では「スイッチを入れてから○○秒以内に応答」等の様に細かく書いてあったりします。やはりソフトウェアも仕様の段階で性能を明確に規定するべきでしょう。

性能と少し似たような話でエラーメッセージというのもあります。
エラーメッセージは今上に挙げたものに比べれば仕様という認識は一般的かと思いますが、やはり仕様の工程で明確にするのが難しくて設計とか製造など後の工程に追いやられる事があります。勿論エラーメッセージと言っても内部的な想定外のエラーは設計等を始めないと分かりません。そうではなく例えば上で挙げたようにワークファイルを作成するという仕様ならば、ディスク容量が足りなくて書き込みでエラーになるという仕様は必然的に発生します。従ってこの時の挙動、メッセージというものも仕様として規定されていなければなりません。

この様に機能以外にも仕様の工程で明確にするべきものが色々あるので上の様な定義にした訳です。

設計との関係


外に対してどうなるかという事が仕様ならば、中をどうするかという事が設計と言えます。
例えば今Pというプログラムを作るとします。その時に中を三つのブロックA、B、Cに分けて作る事にしました。この三つに分けるという行為が設計という事になります。イメージ的には以下の図の青線部分が設計にあたり外枠の赤線部分が仕様にあたると言えます。
53N015_001.jpg
ではPについての仕様書が一冊と設計書が一冊で完成という事でしょうか?
そうではありません。
当然分割したA、B、Cそれぞれの挙動を決める必要がありますからそれぞれについて仕様があるという事になります。
53N015_002.jpg
従って仕様書の体系としては以下の様になります。
    P仕様書
    ・A仕様書
    ・B仕様書
    ・C仕様書
ここでA、B、Cについてはユーザーには関係ないので開発組織の内部的なものという位置づけになりますが、それでも性質的には仕様書という事に変わりはありません。

狙い


冒頭で述べた様に工程というのは自由に定義して構わないと考えているので、今述べてきた事は別に仕様に含めなくとも構いません。工程の体系を構築して非機能的な要素をどのフェーズでどのような形で定めるのか、そういった事を定義すれば良いという事になります。重要な事は「動いた結果が仕様」みたいな、事前に検討して定める事なく作るだけ作ってなんとかするという制御されていない状態を生み出さないという事です。その為には機能以外の要素も全て規定する必要がありますが、とりあえずは仕様を上の様な定義にしておくと仕様の工程で漏れる事無く網羅できるという事です。

一覧


メニュー

関連


計画的に進める為には多くの領域に手を付ける必要がある


記事を広める



posted by 善 at 18:56 | Comment(0) | TrackBack(0) | 仕様 | このブログの読者になる | 更新情報をチェックする
スポンサーリンク
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック