TOP > PCその他 > ソフトができるまで

ソフトができるまで
 時折、プログラムの作り方を尋ねられることがあります。ですが、その場ではなかなか上手く 説明できないので、図などを使ってお話したいと思います。概要ですが”こういう感じで作っているのだな”と思って頂けると幸いです  改訂2012 初版2001 


フローチャート
.まず、自分のソフトの構想・アイデア をもとにだいたいの画面レイアウト(ユーザーインターフェイス)を書くとともに右図のように各処理毎に処理の流れ(フローチャート)を書きます


 右図は、日付を扱うソフトではおおむね必要な「月末処理」を、私のスケジューラーソフトの「月間スケジュールの表示」処理のほんの触りを説明 したいと思います

始まりは、カレンダーの日付を選択したところからです

 ※流れは上から下


.この図は”真か偽”を尋ねるもっとも基本的なパターンです。これを文章化すると下記になります

  カレンダーで日付を選択した後に、ここでは以降の処理が必要となります

  2-1.その日付が2月かどうか
  2-1-1.その日付が2月なら、うるう年かどうか
  2-1-2.うるう年なら”一日の表示行の準備”を29回繰り返す
  2-1-3.うるう年でなければ”一日の表示行の準備”を28回繰り返す

  2-2.2月でなければ、関数※1などを用いてその月の末日を知る
  2-2-1.”一日の表示行の準備”の月末日の数字分繰り返す

  ある一定量の処理のことをモジュール単位といいます


  このフローチャートを一番容易な開発言語で記述してみます。実際のプログラムでもこういった文章のら列です

  If はもし..ならば Else はその反対の時、 = は”等しい”という使い方で
  True は”真”という意味で、For〜Nextはその間の処理を1から29(28)まで繰り返すという意味です


  ※ここではわかり易くするために日本語を含んでいますが、実際には日本語をあまり使用しません

  ※また開発言語によって下記の表現はかなり変わりますし、存在しない関数※1もあることもご承知下さい
使用する変数:wk_mm, i, wk_end_dd

wk_mm = Month(カレンダーの日付)

If wk_mm = 2 Then

    If うるう年チェック関数 = True Then

       For i = 1 to 29

            一日の表示行の準備処理

       Next

    Else

       For i = 1 to 28

          一日の表示行の準備処理

       Next

    End If

Else

  wk_end_dd = 月末日取得(カレンダー日付)


    For i = 1 to wk_end_dd

       一日の表示行の準備処理

    Next

End If
 ※ちなみに、プログラムの大きさを示す単位としてファイルサイズの他にSTEPというのがあり、例えば上記のようなプログラム文が100行あれば100STEPといいます。





.このモジュール単位の積み上げでソフトがとりあえず仕上ります


.ですが所詮、人が作るもの。ソフトの隅々までをあらゆる操作パターンを想定しながら動作確認を行い、もし不具合(バグ)を見つけた場合には即、のモジュール単位まで戻り修正します(これを単体テストといいます)


.他のソフトとの連携処理がある場合は、ここで結合テストということも行います


(および)のテストが完了したと判断したら、Windows7(R)上で今度はお客様の身になって使用し
 動作確認を行います。それで不具合がなければ必要に応じて今度はVista(R)上で、全く同じ内容で動作確認をします。


  一見、win7とVista は同じように見えるのですが使用する関数※1によっては、不具合が出る場合があるので、ソフトによってはこういった”OS毎に動作確認が必要”となります(これを私は運用テストといっています)

※なお、MS-Excel(R)上で動作するソフトについてはOSの違いによる影響はほとんどありません



.ここまできたら説明書やホームページ用文章の作成および管理資料の作成に入り、それからネット公開への準備に入って済ませたら、やっと完成です



※1関数: 値をセットすれば別の値が返ってくる式のことです。ここでは関数のひとつとして Month()関数を例に挙げます。

  Month( ) に日付をセットすると、その日付の月の部分だけを返します。

  例えば、2017/10/29をセットすれば 10 が答えとして返ってきます



TOP > PCその他 > ソフトができるまで
copyright©http://byte.sakura.ne.jp/pc-kouza/