I言語VER5システム開発の入門編 1/9 (システム開発の手順)(VER5)


(1.1)はじめに。
システム開発はI言語を使う事で誰でも出来ます。
車の運転も誰でも出来ますが,技能を身につけないと出来ません。
システム開発も,やはり,技能を身につけないと出来ません。
ここでは入門編で車の運転で例えれば仮免許が取れる位の技能が身につきます。
是非チャレンジしてみて下さい。
(1.2)システム開発の手順。
システム開発は次の手順で開発しますが,ここで一番大事なことを述べておきます。
★システム開発は設計図に基づき,橋やビルを造るような物ではありません。
どちらかと言えば赤ちゃんを産み育てるようなもので, 最初に作った物は半分以上が使い物になりません。
また,システムの目的も変わっていきますので,成長させる必要があります。
つまり,最初から完璧なシステムは作れません,作って動かしてみて, 初めて多くの問題点や改善点が明確に見えてきますので,その点を理解しておいて下さい。
(脱線:実はI言語の初期のツールを作ろうとした理由はここにあります, システムは成長させる必要がありますが,成長が簡単に出来る言語が無かったので,自分で作り始めた訳です)
①システム化の範囲を決めます。
最初は赤ちゃんを産むので,欲張らないで範囲を出来るだけ絞って始める事が肝心です。
②必要な情報の一覧を作ります。
③情報を整理しテーブルとして設計します。
ここで,二番目に大事な事を述べておきます。
★情報はリレーショナルデータベースのテーブルと呼ばれる,行が1件づつのデータで列がデータ名の, 2次元の表で表現します。残念ながら実際の情報は2次元の表で簡単に表せるような物ではありません, 目的に合わせて無理やり2次元の表にする事で,SQLを使えるのでシステム全体を分かりやすくする事ができます。
目的も変化するので,テーブルも変化(成長)させる必要があります。
④I言語で項目をデータ辞書に作成します。
これは直接的にはシステム開発には必要無い余分な作業ですが,プログラムを簡単にし, 更に保守性(データ構造が変わってもプログラムを修正する必要を極力なくす為)を上げる事で, 全体の生産性が上がるので,あえて,データ辞書を持つ事としました。
⑤I言語でテーブルをリレーショナルデータベースに作成します。
⑥I言語でプログラムを作り,テスト実行をします。
プログラムを作っている時点でも色々な問題点や改善点が分かってきますので, ④から⑥までが頻繁に繰り返されます。
⑦問題点や改善点がハッキリ見えてくるので①から何度も繰り返します。 (つまり,システムは常に育てる物です)
それでは実際に作って見ます。
(1.2.1)システム化の範囲を決めます。
狭い範囲に限定するため,架空の話で,市の名前を登録する仕事を想定します。
「システム仕様書(架空の話)」
◎市の名前は唯一無二である,各都道府県から市の登録申請があった場合, 重複がないか審査し,重複がなかれば受理し登録する。
(1.2.2)必要な情報の一覧を作ります。
システム仕様書から情報となりそうな物を抜き出します, 「市」「名前」「唯一無二」「都道府県」「登録申請」「重複」「審査」「受理」「登録」でしょうか。
目的に合わせると「市」のみで良さそうですが, 一応何処から登録申請が有ったかを記憶するため「都道府県」も必要とします。
(1.2.3)情報を整理しテーブルとして設計します。
★日本語の文字数について,注意が必要ですので,ここで説明しておきます。
英語(半角)は画面表示もプログラム上も1文字となります。 一方,日本語(全角)は画面表示は2文字でプログラム上は1文字です。 この結果,英語と日本語が混在された文字列では問題が出ますので, I言語では便宜上データベース上は余分な長さになりますが日本語はNCHARで2文字と定義します。 (NCHARはnational characterの略でUNICODEのUCS-2と呼ぶ文字セットを扱うデータ型です) (注意:SQL Server以外はUNICODEを完全には正しくは扱えませんので注意して下さい) (実際は1文字でも登録は可能ですが1文字にはしません)
データベースには最大文字数を指定する必要があります, 市の最大文字数を決めたいですが,規定が無いので決められません, このように,最大文字数は今は良くても将来は保障できない物は幾つもありますので, 現時点でよければ良しとするしかないのです。
市はすでに決まっている市がありますので, それを使って今日現在で最大の文字を使用している市を最大文字数として決めます。
これを調べるのも大変ですので,これを調べるプログラムを作り調べました。 (説明の都合で取り合えずこの部分の説明は省略します)
★I言語は許可(英字4文字)単位に管理の範囲を決め, テーブル名とデータ名の先頭は許可と同じにするルールになっています, 今回は,インストール時に設定済みの許可の'ZZZY'とします,また, テーブル名は末尾を必ず「実表」(英語表記は[_TABLE])とする必要があります。
以下のように整理しました。
【テータ名】----------【データ型】{【I言語の型】}
①ZZZY市-----------NCHAR(12){J} (末尾の市は取って日本語最大6文字)
(I言語型が{J}は日本語(全角)のみ入力可能の意味です。)
②ZZZY都道府県---NCHAR(10){J}(末尾の都道府県含み日本語最大5文字)
次にテーブルを設計します。
テーブル設計の方法は,目的に合わせて,まずそのテーブの行を他と識別できる主キーとなる項目 (複数項目も可)を決め,その主キーに従属する項目を集めて1つのテーブルとします。
今回は直接関係はないですが,さらに, 可能な限り発生時にすべての列が完成し,ほぼ永久に修正がかからない構造が理想となります。 尚,容量がどんどん増えて行く情報は永久には持てないので,ある期間で削除する必要があります。
今回は唯一無二の市を登録するシステムを作るので主キーを市とするテーブルが必要です, ここには都道府県が従属します。更に,都道府県情報も必要です。
【テーブル名】-------------【主キー】(【従属項目】)
①ZZZY市実表-----------ZZZY市(ZZZY都道府県)
②ZZZY都道府県実表---ZZZY都道府県()
次へ(2/9,データ辞書の作成)
All Rights Reserved, Copyright (C) 2009-2010 Nobumichi Harasawa.