シリーズ「開発の初めから順番に書いていってみる」の続きです。
設計手順には、要求分析、外部設計、内部詳細設計・プログラミング、単体テスト、結合テスト、総合テスト、運用テスト及び運用とあります。
現在プログラミングです。
(プログラミング以前は、ここ http://www.geocities.jp/xmldtp/index_kaihatsu.htm)
プログラミングでは決定表と自動生成のお話をします。
現在、決定表の自動生成をやっています。
仕様とサンプルについては前々回、
入力用となる作業用の仕様書は、前回やりましたので、
今回は、雛形シートです。
■その前に
その前に、前回の修正というか、つけたし。
配列のところ、最後以外は、,(カンマ)で区切るのですが、この処理、
L桁に、カンマをもち(最後だけなにもかかない)このL桁を出力したほうが、やりやすいので、そのようにしました。
そうすると、作業用仕様書は、こちら
![](https://www.geocities.jp/xmldtp/zd_rei2_3.jpg)
■雛形シート
それをもとに、雛形シートをつくると、こうなります。
import java.util.*; /** * * 決定表のコントロール部分 */ public class $#$CELL B2$#$Cntl { /* * 右側の上のYN */ public static final String[] zyoken_list={ $#$REP 5$#$ "$#$KETA J$#$"$#$KETA L$#$ $#$REPEND J$#$ }; /* * 右側の下の実行内容 */ public static final String[] todo_list={ $#$REP 5$#$ "$#$KETA K$#$"$#$KETA L$#$ $#$REPEND K$#$ }; /* * 決定表の実行処理 */ public int execute(HashMap map) { //======================// // データ取得 // //======================// $#$REP 5$#$ $#$IFKETA H,i$#$ int $#$KETA G$#$ = 0; try { String buf = (String)map.get("$#$KETA G$#$"); $#$KETA G$#$ = Integer.parseInt(buf); } catch(Exception e) { e.printStackTrace(); return -1; } $#$IFEND$#$ $#$IFKETA H,S$#$ String $#$KETA G$#$ = (String)map.get("$#$KETA G$#$"); if ( $#$KETA G$#$ == null ) { return -1; } $#$IFEND$#$ $#$REPEND H$#$ //======================// // 条件判定 // //======================// // 条件文をここに設定 String zyoken = ""; $#$REP 5$#$ // $#$KETA A$#$ if ( $#$KETA B$#$ ) { zyoken = zyoken+"Y"; } else { zyoken = zyoken+"N"; } $#$REPEND B$#$ logout(zyoken); //======================// // 実行条件の選択 // //======================// String todo = "----"; for(int i = 0 ; i < zyoken_list.length ; i ++ ) { if ( zyoken_list[i].equals(zyoken)== true ) { todo = todo_list[i]; } } logout(todo); //======================// // 実行 // //======================// $#$CELL B2$#$Model $#$CELL B1$#$Model=new $#$CELL B2$#$Model(); $#$REP 5$#$ if ( todo.charAt($#$KETA D$#$) == 'X' ) { $#$KETA E$#$ } $#$REPEND D$#$ return 0; } /* * ログ出力 */ public void logout(String msg) { // System.out.println(msg); } } |
(上記 < > ¥ は本当は半角です)
■あとは。。
あとは、前処理の中で、仕様書から、上記の作業用仕様書を作成し、作業一覧シートの中の、仕様書のなまえのところを、作業用仕様書に書き直すことになります。Excelマクロで組むのですが、ここは省略します。
そしたら、作業一覧シートをうめて、実行するってことになります。
ということで、決定表はおしまい。次は入出力についてです。