作成日 2009/1/18
オブジェクト指向関連以外の設計について 
 オブジェクト指向ばかり勉強していると、オブジェクト指向をマスターすればプログラムの設計が出来てしまうような錯覚に陥ってしまうような気がします(※1)。しかし、それでは足りないんです(足りる場合もありますが)。
 このページではプログラムというかシステムの設計において、他にどのような設計が必要かを紹介しようと思います(※2)。
 あ、もしかしたら抽象的な話になってつまらないかもしれない。すまん。
-----
 
現在価値 
を計算することがあるのではないかと思います。他にも技術的な数式を扱う場合に、あらかじめ与えられた数式を解いておかないといけない場合もある。M  円のお金を銀行から借りたとする。利息はp  (/月)(0≦p  (※1))で返済方式は元利均等方式 とする。毎月R  円返済していくとき、元金の推移を出すプログラムを作成するときに使用する数式(漸化式  
)を求めよ。なお、利息を計算する際は、小数点以下は切り捨てるものとする。
 元利均等方式なので、まず返済のR  円でその月に発生した利息([pM]  (※2)円とする)をすべて払う。そして余ったお金(R-[pM]  )円を元金の返済に充てる。)i  とするとM0 =M 
  M1 =M0 -(R-[pM0 ]) 
  M2 =M1 -(R-[pM1 ]) 
  :Mi+1 =Mi -(R-[pMi ]) 
  という式がでる。R   円にならない(利息+元金がR  円に満たない)場合もあり、このままだといつかMi+1   がマイナスの値になってしまうので、Mi+1 =Mi -(R-[pMi ])  …Mi  + [pMi ] ≧Rの場合      =0         …それ以外の場合  
※1:実際には
利息制限法 によりpの上限がある。利息制限法がどうなっているかを調べる(調査する)のもプログラムを作るうえでは重要です。
※2:[x]はxを超えない最大の整数とする。とにかく、利息を計算するときは小数点以下を切り捨てるということを数式で表現したかったのでこの記号を使用しました。詳細は「
床関数と天井関数 - Wikipedia 
」を参照してください。
※3:この
漸化式 
を解くのは(
Mi  = f(i)   
の形にするのは)無理です。小数点以下を切り捨てるのを考えなければ、解けると思いますが。
※4:この後、この数式をもとに、
フローチャート を作成することになると思います。
何が言いたいのかと言うと、メソッド内の設計と言うのはオブジェクト指向設計というよりは
構造化プログラミング (順次、反復、分岐や処理の分割(サブルーチンの定義))に対する設計です。
オブジェクト指向を勉強すれば、構造化プログラミングは勉強しなくて良いと思っている人はいないでしょうか?それは間違いです。
ワードドキュメントを検索して一覧表示 
」の[検索]画面の画面設計です。
図1 画面設計の例(クリックすると拡大して表示します)(※1) 
 科学技術振興機構 が行っている以下のeラーニング をやってみてください(無料です)。1.ヒューマンインターフェースとは 
」ユーザビリティ ももちろん重要です。
※1:設計書が汚い…。図1については設計書というより検討資料といった方がわかりやすいかもしれない。
文字コード は何か?CSV 形式か?XML 
か?WindowsのINIファイル形式化?データ型はどうするか?)は別だと思います。ヘッダコメントの挿入 」アドインのファイル設計です。ファイルの定義場所、ファイルに記載するデータについての設計がされています。
図2 ファイルの設計の例(クリックすると拡大して表示します) 
 
データベース なんて使わないと思うけど…。バックアップ 
の種類(※2)や頻度などは考えた方が良いと思う。
※1:インデックスを作成すると、検索スピードは上がるが、データの更新や追加、削除に時間がかかるようになる。
    
  
   趣味で作るプログラムは、多くの場合、インストールされたPC上でのみ動作する(他のPCと連携しない)ので関係ないはずだけど。DMZ 
、セキュリティ…)を考える…かもしれない。ユーザが入力ミス 
しにくい設計にしたり、プログラムを作るときに、SQLインジェクション 
が起こらないようにするとか。ER図 …を作成する」、「詳細設計書はフローチャート 
…を作成する」と書いてるかもしれません。スレッド はUMLのシーケンス図 
でも表現できますが、スレッド周りのバグが怖い(テストで発見されず、しかも原因究明が難しい)ので、他にも考えをまとめられるような資料を作成するようなこともあると思います。
※1:わざわざ、これを書いたのは、書籍やHPに書いてあることをやれば十分だと思っている人が多いためです。そういう人が作成した設計書は中身が薄い…。
    
    
  
  
 このページを作成する際に参考にしたページや書籍などです。
    
このページの利用によって発生した、いかなる損害について、このホームページの作成者は責任を負いません。
このページの間違いや嘘を見つけた方、このページに書いて欲しい情報がある方は
メール をお願いします。
Microsoft 、Windows 、Visual Basic 、 Word および Excel は米国Microsoft
Corporationの米国およびその他の国における登録商標または商標です。