2005年04月25日

機能仕様書

今週は機能仕様書の説明です。

機能仕様書とはシステムの外部動作をまとめた文書です。
基本的には要求仕様書を細かくした内容を書きます。

機能仕様書をベースにプログラムの開発を行うことになるので,必要な事項が漏れなく書いてあることと,開発者と顧客が機能について共通の認識を持てることがが重要です。
必要な事項が漏れてるとプログラム開発時にも高確率で開発されず,顧客の要望する機能がないプログラムとなります。
プログラムが完成した時点で気づいても後の祭りで,納入時に顧客から機能がないことを指摘され,急いで機能を追加することになります。

共通の認識が持てなかった場合は,顧客の予想と異なる機能を実装したプログラムができます。
この共通の認識というのは顧客との間でも重要ですが,プロジェクトメンバー間ではもっと重要です。
顧客との認識が一致しなかった場合は「ウチはこう認識していた」と強弁して追加で開発費をせしめることもできますけど,プロジェクトメンバー間で認識が一致しなかった場合は自腹でプログラムを作りなおさなければならないんで。

今週はここまでで時間切れです。
続きは来週に。


posted by まる at 23:37| Comment(0) | TrackBack(0) | プログラマ Chips | このブログの読者になる | 更新情報をチェックする

2005年04月17日

XP SP2のローカルディスクでJavaScriptを使用する方法

今週は機能仕様書の解説を予定していましたが,予定を変更してJavaScriptが情報バーによりブロックされる場合の回避策について解説します。

アプリケーションが生成したHTMLファイルを表示したい場合があります。
サーバ側にファイルを保存するのは面倒なので,クライアントのローカルディスクに保存します。

たとえば次のようなHTMLファイルをローカルディスクに保存した場合,Windows XP SP2では下の画面になります。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<title>ローカルディスクではJavaScriptが動作しない</title>
<script type="text/javascript"></script>
</head>
<body></body>
</html>

shot_01.gif

サーバ上に同じファイルを配置した場合は情報バーは表示されません。

shot_02.gif

画面の右下に「マイコンピュータ」「インターネット」と表示されています。 これがWindowsの設定するゾーンのようです。

Windowsのゾーン設定は「インターネット」「イントラネット」「信頼済みサイト」「制限付きサイト」の4つです。 実際はこの4つに加えて「マイコンピュータ」というゾーンが存在するようです。「マイコンピュータ」ゾーンではJavaScriptに対し情報バーを表示します。
ここまで分かったところで情報バーを表示させないようにする手段を調べてみました。

  1. クライアントでWWWサーバを使用
  2. サーバでファイルを表示
  3. インターネットオプションの設定を用いてスクリプトの実行を許可
  4. Mark of the Web コメントタグを挿入
1. クライアントでWWWサーバを使用
クライアントでWWWサーバを使用して,WWWサーバを経由して参照すれば「インターネット」ゾーンと認識されます。
個人でHTMLを作成してPC上で確認する場合ならこの手段も選択肢として考えられます。
クライアントは普通のおじさんおばさんを想定しているためユーザの手間を増やす選択肢は他に代替手段がない場合しか採用できません。
というわけで今回は採用を見送ります。

2. サーバでファイルを表示
「マイコンピュータ」ゾーンを攻略することをあきらめて,サーバで処理してしまえという考え方です。
サーバ側の処理は増えますがユーザの手間は増えないので悪くないアイデアです。
他に回避策がなければこの手段を採用したでしょう。

3. インターネットオプションの設定を用いてスクリプトの実行を許可
実は「マイコンピュータ」ゾーンの設定はインターネットオプションで設定できます。
[インターネットオプション]の[詳細設定]タブの「マイコンピュータでのファイルのアクティブコンテンツの実行を許可する」という項目です。

shot_03.gif

こちらも悪くないアイデアですが,1と同様にユーザの手間が増えるので採用を見送ります。
余談ですが,この項目を設定した場合はURL欄がC:\...という一般的なWindowsでのパスの表記からfile://...というURIに変更されます。 Windowsの内部ではURIかパス表記かでゾーンを判定しているのかもしれません。

4. Mark of the Web コメントタグを挿入
インターネットから保存したファイルの場合,ローカルディスクにファイルが存在してもJavaScript実行時に情報バーを表示しません。
これはMark of the Web と呼ばれるコメントタグをヘッダに指定しているためです。
ということは生成するHTMLにMark of the Webと呼ばれるコメントタグを設定しておけば「インターネット」ゾーンと解釈してくれるはずです。
具体的には次のように記述します。
<!-- saved from url=(0014)about:internet -->

最初の例にMark of the Webを指定したHTMLはこのとおり。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- saved from url=(0014)about:internet -->
<html lang="ja">
<head>
<title>ローカルディスクではJavaScriptが動作しない</title>
<script type="text/javascript"></script>
</head>
<body></body>
</html>

これでローカルディスクでも情報バーを出力せずにJavaScriptを使用できます。


参考:
マイコンピュータゾーンの説明
スクリプトの実行を許可する方法
Mark of the Webの説明(英語)
posted by まる at 23:35| Comment(0) | TrackBack(0) | プログラマ Chips | このブログの読者になる | 更新情報をチェックする

2005年04月10日

要求仕様書

要求仕様書はシステムに対する要望,実現機能をまとめた文書です。
顧客と打ち合わせをして詳細を詰めていきます。
要求仕様書は顧客との意識合わせを行うための文書と考えてください。
そのため,網羅性や正確性よりも分かりやすさを重視します。
網羅性や正確性は機能仕様書以降では重要ですが,この段階ではある程度犠牲にしても構いません。

たとえば複数の店舗を持つチェーン店で商品の在庫を管理するシステムを構築する場合は,筆者の場合じゃ次のような事柄を記述します。

■システムの目的
・本部の配送担当部署が自部署内の在庫を管理
・店舗内の在庫量に応じて配送担当部署に自動的に連絡
・店舗の売り上げデータの分析

■サービス提供時間
・9:00-17:00まで稼動すれば良いのか
・24時間365日の連続稼動が必要なのか
・障害発生時のシステムダウンは何時間は許されるのか

■システムの構成
・サーバーとクライアントの使用部署はどこか
・本部,店舗が実行できることは何か

■システムの概要
・DBやミドルウエアの選定
・ミドルウエア,プログラム等の配置

■ユーザーとシステムの作業範囲の切り分け
・在庫数が一定を下回った場合は店舗からFAXして配送担当部署に連絡するのか。それともシステムが自動的に連絡するのか。

■ユーザインタフェースの概要
・Webブラウザから入力するのか。専用のGUIを提供するのか。


基本として概要を記述してから詳細を記述するようにします。詳細を記述してから概要を記述しないようにてください。
詳細→概要の順に記述されると理解が困難になります。
システム全体の構成といった文章だけでは理解しづらい箇所は図表を積極的に使用してください。
posted by まる at 23:16| Comment(0) | TrackBack(0) | プログラマ Chips | このブログの読者になる | 更新情報をチェックする

2005年04月04日

仕様書の種類

前回は日本語の書き方に焦点をあてました。
今回は仕様書の書き方についてです。

仕様書と一口で言っても要求仕様書,機能仕様書,詳細仕様書などがあります。
会社によっては機能仕様書を外部設計書,詳細仕様書を詳細設計書,内部仕様書と呼びますが,似たような内容を記述します。
仕様書の目的は「システムに対する共通の認識を持つ」ことです。
そのため,仕様書にはシステムに関する内容を記述します。

要求仕様書
顧客に対しヒアリングを行い,システムに対する要望,実現機能などをなどをまとめた文書。

機能仕様書
システムの外部動作をまとめた文書。対象のシステムで実現する機能を記述する。

詳細仕様書
システムの内部動作をまとめた文書。外部仕様書で記載した内容をどのように実現するかを記載する。
顧客に対して提示するのは要求仕様書と機能仕様書です。
詳細仕様書は開発者がシステムの保守に使用する文書です。

来週からそれぞれの仕様書について掘り下げて説明します。
posted by まる at 23:58| Comment(0) | TrackBack(0) | プログラマ Chips | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は180日以上新しい記事の投稿がないブログに表示されております。