開発の履歴・記録
ミーティングの記録
レビューの記録
ミーティングその他によるデザインレビューの記録です。
ID | tabletools-ums-2005022301 |
対象 | UMS文法 |
変更前 | − |
変更後 | 変数定義、関数定義、マッピング定義を分離 |
変更理由 | スキーマ文書の可読性やマッピング部の定義のし易さなどユーザビリティを考慮。 |
ID | tabletools-ums-2005030301 |
対象 | UMSデータ |
変更前 |
<data/>
|
変更後 |
<txt:byte encode="signed"><data/></txt:byte>
|
変更理由 | 省略しないことにより、実装を簡略化。そもそも省略して良いか?検討が必要。 |
ID | tabletools-ums-2005030901 |
対象 | datatype library |
変更前 | − |
変更後 | string, token, int, unsignedInt, doubleのみに限定 |
変更理由 | 実装範囲を限定。datatype libraryは、型変換テーブルに処理を追加していくことで将来拡張が可能。 |
ID | tabletools-ums-2005030902 |
対象 | UMSデータ |
変更前 |
<java:function name="userProgram1">
<!-- java:return type="void"/ -->
</java:function>
|
変更後 |
<java:function scope="abstract" name="userProgram1">
<java:return type="void"/>
<java:exception type="UMSException" />
</java:function>
|
変更理由 | ソースプログラムの生成に必要な情報を全て列挙。 |
ID | tabletools-ums-2005030903 |
対象 | UMS文法 |
変更前 |
<java:var type="String" name="strData"/>
<java:var type="int" name="iData"/>
|
変更後 |
<java:var class="String" name="strData"/>
<java:var type="int" name="iData"/>
|
変更理由 | 言語側で、クラスと型に差があるので、それに合わせた表記を用いて両者を区別。
|
ID | tabletools-ums-2005030904 |
対象 | UMS文法 |
変更前 |
<defineMapping >
<function name="parseRecord" diretion="input">
<function name="userProgram1" direction="output"/>
</function>
</defineMapping>
|
変更後 |
<defineMapping function="parseRecord">
<java:callFunction name="userProgram1"/>
</defineMapping>
|
変更理由 | 1つのdefineMapping要素で、1つのマッピング処理関数を呼び出す。 |
ID | tabletools-ums-2005030905 |
対象 | UMS文法 |
変更前 |
<defineMapping function="parseRecord">
<defineMapping function="writeRecord"/>
</defineMapping function="parseRecord">
|
変更後 |
<defineMapping function="parseRecord"/>
<defineMapping function="writeRecord"/>
|
変更理由 | 1つのdefineMapping要素で、1つのマッピング処理関数を呼び出す。関数名はfunction属性で指定。 |
ID | tabletools-ums-2005030906 |
対象 | UMS文法 |
変更前 |
<java:var name="rec.dData">
<data type="double"/>
</java:var>
|
変更後 |
<java:value-of select="rec.dData">
<data type="double"/>
</java:value-of>
|
変更理由 | 単純な変数アクセスではないため、XSLで類似の機能を持つvalue-ofの名称に変更。 |
ID | tabletools-ums-2005030907 |
対象 | UMSデータ |
変更前 |
<data type="string">
<param name="pattern">[ \t]+</param>
</data>
|
変更後 |
<value type="string"> </value>
|
変更理由 | 実装範囲を限定。 |
ID | tabletools-ums-2005030908 |
対象 | UMSデータ |
変更前 |
<data type="string">
<param name="pattern">[A-Za-z0-9]+</param>
</data>
|
変更後 |
<data type="token"/>
|
変更理由 | 実装範囲を限定。 |
ID | tabletools-ums-2005031001 |
対象 | UMSデータ |
変更前 | − |
変更後 | datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" |
変更理由 | 記述の不足。 |
ID | tabletools-ums-2005031002 |
対象 | UMS文法 |
変更前 | − |
変更後 |
<java:arg class="String" name="inputBuffer" direction="input"/>
のdirection属性は残す。
|
変更理由 | 文法の明確化。IDLを参考にした概念。 |
ID | tabletools-ums-2005031003 |
対象 | UMSデータ |
変更前 | − |
変更後 | rng用のnamespaceは、接頭辞「rng:」が使われる最も上位のところで宣言する。 誤りという訳ではないが、記述を統一する。 |
変更理由 | 記述の統一。 |
ID | tabletools-ums-2005031004 |
対象 | UMSデータ |
変更前 |
<txt:bit length="3" encode="signed">
<data type="int"/>
</txt:bit>
<txt:bit length="5" encode="unsigned">
<data type="unsignedInt"/>
</txt:bit>
<txt:byte length="8" encode="ieee754double">
<data type="double"/>
</txt:byte>
|
変更後 | bitコンテナはbyteコンテナ内に詰める。
<txt:byte length="1">
<txt:bit length="3" encode="signed">
<data type="int"/>
</txt:bit>
<txt:bit length="5" encode="unsigned">
<data type="unsignedInt"/>
</txt:bit>
</txt:byte>
<txt:byte length="8" encode="ieee754double">
<data type="double"/>
</txt:byte>
|
変更理由 | 記述の不足。 |
ID: 2005031201 |
- Target:
- mapping definition sample
- Description:
-
<root/> 要素はRELAX NGで定義されたものではない。
等価な機能を <grammar><start/></grammar> で実現できる。
- From:
-
<root/>
- To:
-
<grammar><start/></grammar>
|
ID: 2005031401 |
- Target:
- mapping definition sample
- Description:
-
試験ケース追加。
- From:
- To:
-
dDataを構造体/クラスの中から単独の変数に移動。
|
ID: 2005031501 |
- Target:
- mapping definition sample
- Description:
-
3文字の文字列を格納するには3+1文字分の領域が必要であるが、
3文字分しか確保されていない。
- From:
-
<clng:array size="3">
<clng:var type="char" name="strData"/>
</clng:array>
- To:
-
<clng:array size="4096">
<clng:var type="char" name="strData"/>
</clng:array>
|
ID: 2005031502 |
- Target:
- mappingSchema grammar
- Description:
-
bitlenは、読み込む場合はinパラメータ、書き込む場合はinoutパラメータとして利用。
Javaも、inoutパラメータを実現するため、int[]型を用いてインタフェースを変更。
- From:
-
<clng:arg type="int" name="len" direction="output"/>
- To:
-
<clng:arg type="int" name="len" direction="in"/>
あるいは
<clng:arg type="int *" name="len" direction="inout"/>
|
ID: 2005031503 |
- Target:
- mappingSchema grammar
- Description:
-
Javaで、8bitの倍数でない長さのbitデータを扱う場合、
ビット長を渡さないと有効なデータ長を識別できない。
- From:
-
<java:arg class="StringBuffer" name="outputBuffer" direction="output"/>
- To:
-
<java:arg class="StringBuffer" name="outputBuffer" direction="out"/>
<java:arg type="int" name="bitlen" direction="in"/>
|
ID: 2005031504 |
- Target:
- mappingSchema grammar
- Description:
-
len はバイト長かビット長かが識別できない。input は inout と間違え易い。
- From:
-
<clng:arg type="int" name="len" direction="input"/>
- To:
-
<clng:arg type="int" name="bitlen" direction="in"/>
|
ID: 2005060901 |
- Target:
- mappingSchema grammar (allowed path to data,value)
- Description:
-
data, value への path の考慮もれ。
基本的に、RELAX NG で許される経路は mappingSchema でも許容されるべき。
- From:
-
dat:byte|dat:bit / lang:value-of / data|value
dat:byte|dat:bit / dat:data|dat:value
- To:
-
dat:byte|dat:bit|dat:list / lang:value-of / data|value
dat:byte|dat:bit|dat:list / dat:data|dat:value
|
ID: 2005060902 |
- Target:
- mappingSchema grammar (allowed path from list)
- Description:
-
list からの path の考慮もれ。
基本的に、RELAX NG で許される経路は mappingSchema でも許容されるべき。
- From:
-
dat:list / dat:byte|dat:bit
- To:
-
dat:list / dat:byte|dat:bit
dat:list / lang:value-of / data|value
dat:list / dat:data|dat:value
|
ID: 2005060903close |
- Target:
- java.xsl (template listEnd)
- Description:
-
LiteralExtension.String2Literal でラップする。
- From:
-
文字列リテラルに埋め込む際にエスケープ文字 (\) を
正しく取り扱っていない。
- To:
|
ID: 2005060904close |
- Target:
- java.xsl (list)
- Description:
-
実装する。
- From:
-
line 178 付近 : separator 属性に応じた処理が抜けている。
- To:
|
ID: 2005060904close |
- Target:
- java.xsl (template listEnd)
- Description:
-
コンテナ終了処理漏れ。
- From:
- To:
-
line 194 付近に、cont10 コンテナの終了処理(line 48-62 相当)が必要。
|
ID: 2005060905close |
- Target:
- *Tokenizer*.java
- Description:
-
クラス修正及び新規作成。
- From:
-
一文字づつ探査している。
処理した文字数を保持していない。
- To:
-
String クラスのメソッドを使う。
処理した文字数を保持するようにする。
|
ID: 2005060906 |
- Target:
- generated source code
- Description:
-
xsl を修正(本体側のみで可)。
- From:
-
元の ums のタグとの対応が読み取れない。
- To:
-
コメントにタグを追加する。
|
ID: 2005060907close |
- Target:
- UMSLibrary.java
- Description:
-
修正する。
- From:
-
W3C_TypeConversionLibrary を直接呼び出している。
- To:
-
TypeConversionLibrary を経由で呼び出す。
|
ID: 2005060908close |
- Target:
- test program sample
(ChoiceOneOrMoreSamleTest.java)
- Description:
-
処理を追加する ( これにあわせて、生成されたソースの
サンプルも見直す必要あり )。
メソッド名を分かりやすくする。
- From:
-
値を1つしか保持できない。
userProgram11(), userProgram21()
- To:
-
任意の個数を登録し、読み出せるようにする。
全て読み出した後は、no data 例外を発生させる。
pushValue(), popValue()
|
ID: 2005060909 |
- Target:
- mapping definition sample
(choiceOneOrMoreSample_java.ums)
- Description:
-
記載しても良いが、逆に1行につめてしまい、例の数を増やしたほうが良い。
- From:
-
改行コードを記載していない。
- To:
|
ID: 2005060910 |
- Target:
- LiteralExtension.String2Literal
- Description:
-
\n, \t などに変換する。
- From:
-
改行コード、タブなどが入力された際にそのままリテラルに埋め込まれるため、
ソースコードが読みにくい。
- To:
|
ID: 2005060911 |
- Target:
- ChoiceOneOrMoreSample.java
- Description:
-
処理を正しい位置に移動。
一般的に、開始タグに関する処理は、開始タグコメントの
次の行から空行を挟まずに記述し終わった段階で空行を入れると良い。
終了タグはその逆。
- From:
-
Line 129: oneOrMore の終了処理のはずだが。。
- To:
-
Line 146: ここら辺?
|
ID: 2005060912 |
- Target:
- ChoiceOneOrMoreSample.java
- Description:
-
処理変更。
- From:
-
Line 227: choice の次に分岐している。
- To:
-
choice の最後に分岐すべき(弟妹タグないときに振る舞いが誤る)。
Line 289: Case -5: などと追加。
|
ID: 2005060913 |
- Target:
- ChoiceOneOrMoreSample.java
- Description:
-
分岐先で処理を続けたいのだとおもう。。
break; continue の使い方を見直す。
- From:
-
Line 228: break;
- To:
-
Line 228: continue;
|
ID: 2005061501 |
- Target:
- サンプル
- Description:
-
追加する。
- From:
-
ID 2005060901,
ID 2005060902,
の試験ケースがない。
- To:
-
|
ID: 2005061502 |
- Target:
- ums 文法
- Description:
-
追加する?(要件等)
tokenizer に separator 用のメソッドを追加。
xsl に separator 用のエンコードを追加する。
例は delimiter + separator に変更。
- From:
-
list/@separator のみ
- To:
-
list/@delimitor
|
ID: 2005061503 |
- Target:
- マッピング処理
- Description:
-
datatypeLibrary:
固定値のマッピングが実は未対応
(datatype library 対応後もしくは、今期末にペンディング)
本体:
反映後、choiceSample_java.ums および txt_ccom.xsl を改定。
- From:
-
ums:data, dat:value というしょりしか実装されていない。
- To:
-
dat:data, ums:value を追加する必要あり。
|
ID: 2005061504 |
- Target:
- 生成ソース
- Description:
-
/* not break */ を明示する。
- From:
-
- To:
-
|
ID: 2005061505 |
- Target:
- choice 生成ソースイメージ
- Description:
-
「in/out 引数」問題。
- From:
-
- To:
-
ums_dat のメンバに代入。
|
ID: 2005061506 |
- Target:
- ソースコード生成
- Description:
-
XSL を変更。
- From:
-
マッピング定義との対応がぱっと見て分からない。
- To:
-
mapping 定義のタグをコメントとしてソースコードに出力する。
|
ID: 2005061507 |
- Target:
- ソースコード生成
- Description:
-
XSL を変更。
- From:
-
局所変数を利用している。
- To:
-
「タスクスコープの変数」を利用。
|
ID: 2005060913 |
- Target:
- test of subversion
- From:
- To:
|