1st Modeller を作成する過程で出てきた問題点や不具合、
決定すべき事項の一覧を記述したファイル
          最終更新日:2007/07/21
NO. 分類 状態 問題点 解決案 決定案
1 問題点 完了 アンドゥ/リドゥの仕組みが未決定。
ただし、全オブジェクトの構造が決まらないと考えにくい。
@XMLのデータをシリアライズして何か考える
  アプリケーションの操作はCAppCommandクラスの派生クラスを
  介して行うことにする。これはそのままリドゥデータになる。
  アンドゥデータは反対操作をCappCommandクラスとして、
  保存しておく事で実現する。
@
2 不具合 完了 タイプ一覧の子ウィンドウ作成時にコメントテキストボックスの幅がおかしくなっている。(ウィンドウ作成時に幅が追随できていないまま、幅のロックが効いている模様)
@プロパティのPositon が poDefault になっているのを
  poDefaultPosOnly に変更する。それによりウィンドウサイズは
  デザイン時のものとなり、Anchors がおかしくなることは無い。
@
3 不具合 完了 読み込み時にNameプロパティが空文字列の時の考慮が無い。
@自動的に付ける
A単なるエラー扱いにする
A
4 不具合 未着手 読み込み時にエラーが発生して読み込めなかったときに、ツリービューに反映されない。
 @アイコンを変えて、ツリービューに反映する必要がある。
  読み込み失敗時は、IsLoadFailed()がtrueになるので
  それで判別する。
  →まず CUmlProjectのLoadFromFile内を修正する必要あり。
   ここでプロジェクトデータをプロジェクトに追加しないため、
   表示周りを修正しても無駄。
 
5 不具合 完了 プロジェクトをアクティブにしたときにアイコンが追随しない。これは、アイコンの設定でツリービューの再描画が行われていないようである。
@TreeView を Refresh する @
6 不具合 完了 ツリーリストビューが縦に長くなるとスクロールバーが右に隠れてしまう。
@左にスクロールバーを持ってくる。
  →ダメ。右にスクロールしたら、見えなくなってしまう。
A常に右に出るように考える。
  →スクロールボックスの高さを手動で設定すれば可能。
   しかし、ツリービュー内のアイテムの高さが分からないので
   手動では設定できない。
B右が隠れてしまっているアイテムの上にマウスが来ると、
  ツールチップが表示される。(VC++のように)
  この場合は、スクロールボックスは不要。
Cヘッダコントロール+ツリービュー+スクロールバーで対応
  ヘッダの幅をスクロールバーの長さとする。
  全ては、パネルの上に置かれる。パネル幅よりヘッダが小さい
  場合は、スクロールバー非表示。
C
7 不具合 完了 ツリーリストビューが縦に長くなると、一番下のアイテムまでスクロールできなくなってしまう。
原因はスクロールボックスの水平スクロールバーである。水平スクロールバーが非表示から表示に変わった瞬間は、ツリービューのサイズ変更が行われないようである。
@スクロールボックスは問題点006と絡んでなくしてしまう。
A水平スクロールバーが出た場合は、ツリービューのリサイズを強制的に行う。
@
8 問題点 完了 読み込み時のエラーをどこに表示する?
@下にエラーログ用の表示枠をつける(VC++のように)
Aその都度、メッセージボックス
Bエラー専用のウィンドウ
A
9 問題点 完了 プロジェクトビューを右クリックして出てくるポップアップで「プロジェクトを閉じる」などはアクティブプロジェクトに対しての処理だが、分りにくい。
@右クリックした時点で、アクティブプロジェクトでなければ
  使用できないアイテムを無効化する。
Aポップアップに割り当てられているアクションの中で、
  ツリービューの選択項目がアクティブプロジェクトかどうかを
  調べて、処理を分ける。
@
10 不具合 完了 下にあるスプリットバーをかなり小さくすると、ステータスバーがページコントロールの上に来る。
@下にはスプリットバーを設けない @
11 問題点 完了 オブジェクトの移動中/リサイズ中/接続ポイント処理中などマウスカーソルが変化しないので分かりにくい。
@マウスカーソルを描画コンポーネント内で設定する @
12 問題点 完了 描画オブジェクトを移動させた時に、関連付けられているコネクタがリアルタイムに再描画されない。
@オブジェクトを移動する度に更新伝播を使用してイベント発生。
画面全体を再描画する。
@
13 問題点 完了 コネクタを選択して、コネクトポイントを他のオブジェクトの接続ポイントに切り替えた時に、更新伝播情報が変更されていない為に、オブジェクトを移動してもコネクタが再描画されない。
 ちなみに、最初に接続されていたオブジェクトを移動させるとコネクタは正しく再描画される。
@コネクタの接続を切り替えた時に、更新伝播情報も変更する
(各オブジェクトの中で行っている)
@
14 問題点 完了 箱テキスト(CDrawBoxStr)で垂直/水平方向の文字寄せが出来ない。
 今は、上寄せ&左寄せ固定。これをセンタリンクおよび右寄せができるように変更する必要アリ。
 CDrawServiceやCDrawActorBoxで使用する。
@CdrawBoxStrに機能を追加 @
15 問題点 完了 コネクタの先にあるオブジェクトが削除された時に、コネクタの挙動が決まっていない。
@コネクタを残す。
Aコネクタを削除。
A
16 問題点 完了 コネクタの先にあるオブジェクトが削除された時の、コネクタ側の実装が済んでいない。
@OnChange で削除されたオブジェクトのIDを削除する必要あり
Aどうせ削除されるので何もしない
A
17 不具合 完了 子ウィンドウが開いている状態でメインウィンドウを閉じるとメモリリーク発生。(描画オブジェクト)
@デストラクタで開放する
AOnDestroyで開放する
@
18 問題点 完了 保存時に拡張子が自動で付かない。
@DefaultExtプロパティを使用する @
19 不具合 完了 一度保存した後の「上書き保存」が効かない
@名前が無い時にしか保存しないようになっていたのを
常に保存するように修正する
@
20 問題点 未着手 描画オブジェクトがスクリーンの外に出てしまった場合に、中に戻す手段が無い。
@外に出た場合は中に自動的に戻す。
A自動的に描画領域を広くする。
B外に出たものを自動的に検索して中に入れる機能を提供
とりあえず今は、オブジェクトビューを提供しているので、戻すことは可能。
21 改善点 完了 プロジェクトを閉じた時に子ウィンドウを全て閉じる
@子ウィンドウを検索しながら閉じていく。 @
22 不具合 完了 読み込んだ後のオブジェクトの順番がおかしい。(CUmlUseCaseDgmに保存した時に順番が失われている)
@CUmlUseCaseDgmに格納した時に順番を付けて格納する。
  TTmsUmlScreen に設定する時は順番を元に設定する。
ACUmlContainerIFの内部をdequeにする。
  ただし、オブジェクト名をマップにして名前の重複検査のスピードアップを図る。
B「案A」のマップは使わない。
B
23 不具合 完了 改行入りの文字列が保存後、読み込んだら改行が2個になっている。LFがCRに変換されているようだ。
今は現象は発生していない?
直った?
直った?
24 不具合 完了 プロジェクトを保存する時に、子ウィンドウを一度閉じないと正しく保存できない。
 これは、子ウィンドウを閉じた時にUMLプロジェクトデータに描画オブジェクトの情報を書き出しているため。
@更新があるたびに、UMLプロジェクトデータに書き出す。
A保存前にだけUMLプロジェクトデータに書き出す。
B保存前に開いている子ウィンドウがあれば、保存させる。
B
25 不具合 完了 プロパティでObjectIDが変更された時に、一意制約の検査を実装していない。
@ TmsPropEdit::OnCellDataChangeQuery イベントで
   CUmlAppクラスの機能を使用して検査する。
@
26 不具合 完了 プロパティエディタで矢印を押した時のデータ変更イベントが発生しない。
@OnCellDataChangeQueryイベントやOnChangeCellTextイベントの発生
Aボタン専用のイベントを作成する
BOnChangeCellTextイベントだけの発生
B
27 不具合 完了 コネクタの矢印はプロパティエディタから選択できるが、描画に反映されない。
@コネクタにメソッドが無い。機能はCDrawArrowLineのものを
  使用して実装する。XMLはCDrawArrowLineと二重になるが
  現状のままで行く。
@
28 問題点 完了 汎用プロパティエディタで最低配列要素数に満たない場合は、エラー発生?
@初期値を使用して自動で要素を作成する機能を作る @
29 改善点 完了 プロパティエディタで十字キーの入力が使用できないために、セルの移動が出来ない。
@メッセージハンドリングする @
30 問題点 完了 機能は同じなのに、同じような子ウィンドウを沢山つくらなければいけない。例えば、UseCase用とClassDgm用など
@最小倍数的なウィンドウを作成して、不要な機能は非表示とする。 @
31 問題点 未着手 クラス図の属性に、「順序付け」が無い。
@追加する。
A関連のロールなんかに無理やり書く事は可能
 
32 不具合 完了 属性値内の<や&などが文字参照に置換されない
@置換するようにする @
33 不具合 完了 属性値内の文字参照が変換されないままに、CxmlAttributeに読み込まれている。
@変換するようにする。 @
34 不具合 完了 オブジェクトの属性のCommentが保存されない。(CDrawObjectにメンバ変数がないので保存されない)
@メンバ変数追加。セーブ/リストアの作成。 @
35 不具合 完了 ツリーリストビューにデータがあるときに、幅を小さくし過ぎると水平スクロールバーが2個出てしまう。
 上段に出ているスクロールバーは、ツリービューのものであり、本来は不要。
@ツリービューを改造してスクロールバーが出ないようにする @
36 不具合 完了 プロパティエディタで構造体のルートセルで、コンボボックスが使える場合がある。
@構造体のルートの時に、テキストモードに設定していないと思われる。
  最初に全ての行にテキスト行を設定する。
@
37 不具合 完了 プロパティエディタで配列を上下に移動させる矢印をマウスでクリックした時に、複数セルを選択した状態になる。また、変な場所にスクロールしてしまう。
@マウスダウンの最中に、グリッドを更新するからそうなる。
  画面更新前にアクティブセルとLeftTopセルを覚えておき、
  更新後に復元する。
@
38 不具合 完了 プロパティエディタにオブジェクトの情報を表示している時に他のダイアログの子ウィンドウをアクティブにすると、プロパティエディタの内容が残ったままになる。
新しくアクティブになったウィンドウの選択状態が反映されるべきである。
@CumlApp にダイアログのアクティブ、非アクティブイベントを
  追加して、その中に処理を記述。
@
39 問題点 完了 (内部的な話し)ダイアグラムのクラスに無駄が多い。また、ダイアグラムに独自のデータを持たせたい場合に、実装が面倒である。
@ダイアグラムは全て同一のクラスを使用して実現し、
  独自のデータについては汎用プロパティを使用する。
@を実施。ただし、汎用プロパティにはしていない。

2/27内部用リストに移した
40 改善点 未着手 プロパティエディタが縦に長くなり、使いにくい。構造体の縮小/展開ができるようにする。
@左に1列追加して、アイコン追加。(+アイコンと−アイコン)
 
41 問題点 完了 全てのファイルの拡張子が同じである。
@1つのファイルにまとめるというやり方もある。
  →欠点は属性タイプリストの使いまわしがしにくい
Aプロジェクトやダイアログの種類によって変更する
  →拡張子の種類がすごく多くなる
A
42 問題点 完了 オブジェクトを選択したまま、ダイアログを閉じた時に再度ダイアログを表示させた時に選択状態が残っている。
その為、プロパティエディタには選択されているにもかかわらずそのオブジェクトの情報が表示されない。
@最初にオブジェクトが選択されていれば、
  プロパティエディタに表示するようにする。
Aダイアログを閉じる時に、選択状態を解除する。
@
43 問題点 完了 再利用の観点から、プロパティシートで行っている正当性検査をプロパティリストデータクラスで行うようにするべき。
   
44 不具合 完了 属性タイプリストで全選択してから削除すると、正しく動作しない。
@恐らく、逆からループして消せば上手く行く。
アンドゥ・リドゥ対応の中で、自動的に修正された。
45 不具合 完了 子ウィンドウにダイアグラムが表示され、オブジェクトを選択してプロパティウィンドウに表示した状態で、ツリービューの何も無い所をクリックすると、プロパティウィンドウがクリアされる。(恐らく子ウィンドウのOnExitが発生している)
@Deactive のイベントが発生しても、メインウィンドウの
  アクティブな子ウィンドウがまだそのウィンドウであるなら
  CUmlApp:DoDeactiveDgm は発生させない。
@
46 改善点 完了 クラスの操作に純粋仮想関数の設定がない
@追加する @
47 改善点 完了 プロパティエディタが英語で見にくい。日本語で表示できるようにするべき?
@スキーマに表示名を定義できるようにする
@
48 問題点 完了 各描画オブジェクトの最小値が決まっていないものがある。いくらでも小さく出来てしまい、最終的には点になってしまう。
@描画オブジェクトの SetHeight とか SetWidth に最小値の
  検査を行うコーディングをする。
@
49 不具合 完了 接続ポイントモードにしているときに、図を追加して通常モードにしたら、ボタンが通常モードになっていない。
@スクリーンのイベントを作成して対応
A動作モードを設定したときに、アイコンの状態変更
B動作モードはアプリケーションを通して変更
@
50 改善点 完了 オブジェクトを追加したら、(0,0)の位置に追加されるが、画面の中央などに追加できないか。
@追加するときに位置調整する @
51 問題点 完了 保存した時に、選択状態も保存されてしまう。
@XML化する時に、保存状態を解除しておく。
A読み込むときに、選択状態を解除しておく。
BUMLスクリーンに表示する前に選択解除する
簡単だったのでBとした
52 改善点 完了 関係を作成するのが面倒。
@関係の線をもっと増やす。
  また、分かりやすいように「継承」とか「所有」とかの
  ツールチップをつけるようにする。
@
53 問題点 中止 コネクタの接続先をプロパティエディタで移動させても、正しく反映されない。
原因は、コネクトIDまで移動してしまうので、移動しても意味がないから。
@配列要素の移動をOFFにする機能をスキーマに追加
 →つまり移動はさせない仕様
  画面でのみ操作させるか、コンボボックスにする。
 
54 不具合 完了 スマートコネクタ表示にしているとが無限ループに陥ることがある。当たり判定にひっかかった場合に、next−lineを取り消すが、元の線を必ず延長していた。左右に伸ばす必要があるパターンがある。

@左右に伸ばすパターンを追加 @
55 不具合 完了 スマートコネクタで、が180度反転して、迂回しないことがある。原因は、XまたはYが一致した時の判定にある。オブジェクトとの当たり判定を無視しているので、発生する。
@XまたはYが一致した場合でも、当たり判定にひっかかった場合は
ダメとする。
@
56 改善点 未着手 スマートコネクタで、同じ方向の初期線分のときに、中間地点で1回だけ折れ曲がるような動作が望ましいのに、現在の仕様ではそうならない。
後回し  
57 改善点 中止 コネクタのスマート表示で2つのオブジェクトに重なるパターンが多々ある。
気にしない。将来対応。
 →アバウトコネクタを使ってもらう
 
58 不具合 完了 オブジェクトを左右に並べて、コネクタを間に引いた時、変なところに矢印が描かれる。(例えば汎化の白抜きの△など)
先にコネクタを登録してから、接続先のオブジェクトを登録していた。
途中で再描画が入って、変な状態で描画されていた。
左記の通り
59 不具合 完了 プロパティエディタで複数行を入力した後に、フォーカスがどっかに行ってしまう。
@モーダルから帰るときに、フォーカスを設定する。
@
60 改善点 完了 オブジェクトビューの再描画時にちらつきが発生する。
@ツリービューに再描画防止機能を作成
@
61 不具合 完了 クラスオブジェクトのクラス名を指定する時に、クラス名の一覧が正しくない場合がある。原因は、スクリーン上でのみ修正されていて、プロジェクトデータに反映されていないケースがあるから。
@プロパティエディタで編集した時は、プロジェクトデータにも反映する。
 (全部コピー)
Aプロパティエディタで編集した時は、プロジェクトデータにも反映する。
 (更新のあったオブジェクトのみ上書き)
 →これはMEDIATORパターンを使用しているので難しい。
Bクラス一覧の作成方法をプロジェクトデータからだけではなく、UMLスクリーンから取得するようにもする。
B
62 不具合 完了 最近使用したファイルの最大個数を現在の値より小さい値に変更した時に、溢れた履歴を削除していない。
@削除するようにする @
63 不具合 完了 環境オプション画面で、値の範囲外になったあとにキャンセルボタンを押した場合に、一部適用されてしまっている項目がある。
原因は、グローバル変数に直接設定しながらエラー検査をしているから。
@一旦、ローカル変数に設定して検査するように修正 @
64 改善点 完了 属性タイプリストの一覧部分にソート機能が無い。
@ヘッダ部分をクリックするとソートするようにする。 @
65 不具合 完了 オブジェクトを複数選択した場合、Zオーダ移動がおかしい。
@移動量を求める計算式がおかしいので、そこを修正する。
@
66 不具合 完了 メニューから関係の種類を選んだ時に、ツールバーのボタンが押下状態にならない。
また、ツールバーの同じ関係を2度続けてクリックすると「2項関係」が選択されてしまう。
@OnChangeRunModeイベント内でツールバーの押下状態を見ている
  が、違うものを参照するようにする。
  (TfrmChildDgmに持たせるべき?それともTAction?)
@ TAction の Check を使用した。
67 不具合 完了 プロパティエディタでコンボボックスのセルを選び、コンボボックスの内容を変更した後、キーボードではなく他のセルをマウスクリックした場合、マウスを開放しても開放されていない事になっていることがある。
メッセージボックスなど表示されると、マウスのキャプチャが終了しない為に発生しているようだ。

@キャプチャを終了させる
Aキャプチャいなうよにする
Bとりあえず、セルの範囲選択をやめる(見た目だけ対応)
とりあえずB
68 不具合 完了 UMLオブジェクトが追加されるようなアンドゥコマンドの場合、対象のウィンドウが表示されていないとエラーとなる。
@ウィンドウ検索時に、ウィンドウが無ければウィンドウを表示するようにする。
@
69 改善点 着手済み アンドゥ・リドゥ時に、処理対象の子ウィンドウがアクティブにならないので、一体何が発生しているのかが分かりにくい。
@処理対象の子ウィンドウをアクティブにする。
  また、UMLスクリーンの表示位置も適切に移動する。
@
あとはUMLスクリーンの位置の設定のみ
70 問題点 完了 現在のUMLスクリーンはフォーカスを取得できないコントロールなので、キー情報がUMLスクリーンに届かない。
将来的に問題あり。(コピペが実装できない。)
@フォーカスを取得できるように改造する。
 →方法は?

コピペは上手いこと実装したので、フォーカスをとる必要はなくなった。
71 不具合 完了 ダイアグラム内のオブジェクトを削除した時のアンドゥが上手く動かない。(その為、リドゥもおかしくなる。)
削除時はダイアグラム全体を保存して、アンドゥ情報としているが、ダイアグラム内の最新の情報を保存していない為に、削除前の状態に戻らない現象が発生している。
@削除前にはスクリーン情報を適用する
Aダイアグラム全体のデータを取得する前にスクリーン情報を適用する
@
72 不具合 完了 プロジェクトツリービューのノードのラベルが、ファイルパスの方にはみ出して描画されている。
文字列の描画で上書きしていたが、文字列が無い場合に上書きされない為に残っていた。
@クリアしてから文字列を描画する
@
73 改善点 完了 プロパティエディタでデータを更新したら、表示位置が一番上に移動してしまう。カーソルとスクロール位置は記憶しておかないと使いにくい。
以前修正したはずなのだが・・・。
CUmlApp:SetProperty 内で一旦プロパティエディタをクリアしてから
プロパティを設定していた。
@クリアはエラー時にのみ行う。
@
74 不具合 完了 「プロジェクトを名前を付けて保存」を指定した後、キャンセルすると、上書き保存してもファイル名を聞いてくる。
最初に全てのファイルのファイル名をクリアして、強制的に新規ファイル状態にしているのが原因。
@SaveAs 用のルーチンを真面目に作る。
ASave 用ルーチンに引数を1つ追加して対応。
A
75 不具合 完了 プロジェクト名変更のダイアログで、同名のままOKボタンを押すと、エラーになる。
CUmlAppの中で同名なら処理し内容にしていなかった。
@同名の場合は処理せずに正常終了する
@
76 不具合 完了 No.75 と同様に、ダイアログでも発生。
@No.75 と同様に対処
@
77 不具合 完了 オブジェクトビューをクリックしたときにUMLスクリーンが選択されない。
コネクタモードになっているのが原因。
@オブジェクトを選択する前に、オブジェクト選択モードにする。
@
78 不具合 完了 削除すると、エラー発生。
属性タイプリストを保存していたが、その関数は属性タイプリストを保存できない。
@属性タイプリストは保存処理から外す
@
79 不具合 完了 プロパティエディタ編集中にダイアグラムに対して、オブジェクトを追加するとエラー発生。
コンボボックスなどで変更して、未確定の状態でUMLスクリーンを触ると、プロパティエディタのプロジェクト名/ダイアグラム名などがクリアされてしまうから、処理の途中でエラーになる。
@プロパティエディタ操作前に EndInput する。
Aプロパティエディタ内で、アクセッサの中で EndInput する。
Bメニューやポップアップメニューなど、全操作の前にプロパティエディタの入力を中止する処理を入れる。
B
80 不具合 完了 プロジェクト保存時に「ダイアグラムが保存できませんでした」と空文字のメッセージボックスが表示される(ことがある)。
そこで保存処理が中断され、保存できない。
保存処理の中で、ウィンドウのデータをプロジェクトデータをコピーしているが、ウィンドウの無い場合はエラーとなっていた。
@コピー処理の中で、ウィンドウが無ければ正常終了とするように変更
@
81 不具合 完了 プロパティエディタでObjectIDを変更すると、関連が切れてしまう。
名前の変更時に、MEDIATORの更新イベントを発行していなかった。
@更新イベントを呼ぶようにする。
@
82 不具合 完了 画像出力で、左上以外の位置を表示中に出力すると、左上位置が原点でなくなる。
引数で受け取った、描画矩形を無視して、ビューポートで処理していた為に発生。
@引数で受け取った矩形で処理する
@
83 不具合 完了 スクリーン外に表示されているものを画像出力すると、以下の不具合発生。
1.最短ルートコネクタが描画されない
2.ロールが表示されない
引数で受け取った、描画矩形を無視して、ビューポートで処理していた為に発生。
@引数で受け取った矩形で処理する
@
84 不具合 完了 ファイルの挿入を連続して行うと、”C++ Exception” とメッセージボックスが表示される。
名前の重複検査を行うオブジェクトを間違えていた。
@正しいコンテナに対して、重複検査をする。
@
85 不具合 完了 プロパティエディタから、ObjectID を変更した後、UndoRedo をすると、余分なオブジェクトが出来ている。
UNDOオブジェクトに渡す名前が新しいObjectIDだった
@古いObjectID を渡すようにする
@
86 問題点 完了 メモリ使用量が多い
スキーマがオブジェクトごとに、インスタンス化されているから。
@スキーマを参照カウンタで管理して、コピーを作らない。
@
240MB使用していたメモリが、100MBくらいになった。
87 問題点 完了 メモリ使用量が多い
newでオブジェクトを作っているが、数が膨大すぎるので、メモリ使用量に無駄が多い。
@特定のクラスのnew演算子をオーバロードして自分でメモリ管理する。
AUNDOでメモリ使用量が多い部分のデータ削減
BXMLライブラリの文字列処理を効率化
@,A,B
88 不具合 完了 ダイアグラムを削除した後のアンドゥでエラー発生。
ダイアグラムの追加Commandで、親のExecuteを読んでいたが、その中で自動ウィンドウオープンを行っていた。
@親の処理を呼び出さないようにする
@
89 問題点 完了 プロパティエディタのテキストボックス編集中に、コピー&ペーストなどが効かない。UMLスクリーンの操作になってしまう。
コピー、ペースト前に、プロパティエディタの入力を中止していたからインプレースエディタのポインタが取得できなかった。
@プロパティエディタ以外の場合に中止するようにする
@
90 不具合 完了 メモリリークしている @アンドゥ/リドゥコマンド内でメモリリークしている個所があるのを修正
@
91 問題点 完了 メモなどの複数改行系のオブジェクトの描画速度が遅い。
描画のたびに内部でメモリの取得開放を繰り返しているから
@メモリを固定長にして、メモリの取得速度をUP
A1度描画したら文字列の分割後の状態を持っておく
-----------
原因は、描画してキャンバスに描いても、画面に反映されていなかったから。
BTImageのRereshを行う
B
92 不具合 完了 コネクタの接続先を変えて、元の接続先を削除すると、コネクタまで削除される。
@削除する前に新しい接続先に更新していたのを、修正
@
93 不具合 完了 両端が自分自身に接続しているコネクタの片方を他のオブジェクトに変更。その後、最初のオブジェクトを削除すると、コネクタが残ってしまう。
@接続先との関連を削除する時に、もう一端の接続先が同一だった場合の考慮が抜けていたので、同一だった場合は削除しないように修正
@
94 不具合 完了 プロパティエディタで複数行入力した後に保存し一端終了。再度読み込むと、改行がおかしくなっている。
XMLファイル作成時に、改行コード変換を行っている部分があるがそれが不要だった。
@改行変換部分を削除
@
95 不具合 完了 プロジェクトを保存した時に、プロジェクトビューのファイルパスが更新されない。
見た目だけの問題なので後回し。次回起動時には戻っている。
→更新イベント内でファイル名も反映するようにした
OK
96 問題点 完了 ObjectID の採番が良くなくて、"〜 1 1 1 1 1”のように1が続く。
XMLのキャッシュに対して名前の変更を加えるような処理があった為、名前がおかしくなっていた。
@上記不具合を直す
A真面目に末尾の番号を取ってきて、カウントアップする
Bグローバル変数にオブジェクト毎にカウンタを持って重複しなくなるまでカウントアップさせる。
------------------
Aで対応すると、コピー&ペースト時にも正しく数字がカウントアップされる。”〜 1 1 1” のように数字がスペース区切りになることは無くなる。
とりあえず、@で対応。
Bで対応予定。簡単だし。
97 問題点 完了 オブジェクトを追加した時に、処理時間が掛かる。
原因は、オブジェクト追加前にUMLスクリーンのデータをXMLに変換しているからである。これは名前の重複検査に使用している。
@UMLスクリーンのデータを全てXML化するのではなく、名前だけを全て抽出して名前検査を行うようにする。
Aスクリーンがある場合は、スクリーンに対してだけ追加する。
A
98 問題点 完了 オブジェクトツリービューのスクロール位置がおかしい。
@更新後に元の位置を復元する。
@
99 不具合 完了 プロパティエディタでキーボードの十字キーで移動している際、本来なら表示されるコンボボックスが表示されないことがある。(下から上に移動時など)
コンボにフォーカスがあたっている時に、上キーを押すとまず、グリッドがアクティブになった後にキーボードメッセージが送信されるがその際、タイミングの問題で次に表示されたコンボなどが非表示になってしまう。
@フォーカスを設定する前にキーボードメッセージを送り、グリッドのClickイベントで自身にフォーカスを設定する
@
100 問題点 完了 プロジェクトビューで任意のノードをクリックすると、ファイルの位置とノードの位置の間に白い部分が出来る。
@ファイルの位置は色を変えないようにする
A間も色を変える
A
101 改善点 完了 プロパティエディタでコンボボックス使用時に Enter を押すと決定。ESC を押すとキャンセルの動作が出来ないのは不便。 そのうち対応  
102 不具合 完了 ユースケース図を書いているうちに、サービスをセットしてプロパティのServiceNameに文字列を入れようとしたが、入力用のウィンドウが表示されなくなった(文字列が設定できなくなった)。再起動させたらOK。
他の環境では再現性があるとのこと。
ただし、開発環境では現れない。リソースリークなどが発生している可能性あり。ウィンドウの表示部分のコーディングを変更して対応した。このまま様子をみることにする。
----------------
後日、プロパティウィンドウをフローティングにしていたらボタンが効かなくなるという報告を受けた。修正してからは特に報告が無いので修正は完了とする。
OK
103 不具合 完了 報告によると・・・サンプルも含めてプロジェクトをいくつか起動。プロジェクトビューでプロジェクトを選択してファイル(F)→プロジェクトを閉じる(K)で順に閉じていこうとしたら、最後のプロジェクトのみ閉じなくなった。(が微妙に閉じているような気も・・?!)
もしかして、アクティブプロジェクトがなくなってしまうのが、そのように思ってしまう原因かも。
@アクティブプロジェクトを閉じた時、他のプロジェクトがあればそれらのうちのどれかをアクティブプロジェクトに設定する
@
104 不具合 完了 作業していたら、ある時突然、プロパティエディタの+でエラーになる。
現象的には「範囲外のセルを操作」してエラーになっている模様。
原因不明。再現性がなくなった・・・
--------------------------------------
+じゃなくても再現性がある。
1.アクティビティ図を作成、2.メモを追加、3.条件分岐を追加、4.位置(縦)を選択して右寄せを選ぶ(まだ設定してはいけない)、5.条件分岐を選択、6.プロパティエディタの「オブジェクトID」というセルをクリック。
--------------------------------------
原因は未調査。恐らくアクティブセルが範囲外のところにあるのが問題だと思う。
--------------------------------------
@上記の原因を修正する
@
105 不具合 完了 UMLスクリーンのサイズがおかしくなる。
原因不明
Delphi 6 が悪い?
@描画処理の中でスクリーンサイズのチェックを行い、サイズが異常であれば再配置を行う。
@
106 問題点 完了 プロパティエディタの文字が大きくて、字が読めない。
原因:プロパティエディタは、パネルの上にTTmsGridを載せていたが、パネルにParentFontとFontプロパティが無かった為に、フォントサイズが正しくなかった。
@ParentFontとFontを追加
 描画処理の中で行の高さがフォントの高さより小さいなら行の高さを再設定する処理を追加。
@
107 不具合 完了 プロパティエディタで文字列を編集中にDELキーが効かなくなる。
メニューの中のショートカットとかぶっているから。
@プロパティエディタ内のテキストボックスでDELキーをフックして、メインフォームに処理させないようにする。
Aオブジェクトを削除するショートカットをDELキーではなく、CTRL+DELなどに変更
Bオブジェクトを削除するショートカットをなしにする。UMLスクリーンのKeyDownイベントでactDeleteを実行する。
B
108 不具合 完了 プロジェクトビューなどで使用しているツリーリストビューにおいて、ヘッダーの幅を一番小さくすると、元に戻らなくなる。また、下に描画してはいけないはずなのに文字が描画される。
@ヘッダは1ドットより小さくできないようにする。
 また、下に描かれる文字はヘッダの幅を超えてクリアするようにする。
OK
109 問題点 完了 巨大なサイズのクラス・ディクショナリを保存する時、メモリ不足に陥る可能性がある。
現在のXMLライブラリはあまりメモリを気にせずに文字列化しているので、メモリの再確保が何度も発生し、ピーク時には不要に多いメモリを使用する。
→解決策は考えていない。
@自作のXMLのパーサには、構文木とDOMツリーの2つがメモリ上に存在する瞬間がある。そこでDOMツリーに変換しながら構文木を削除することにする。
@
110 不具合 完了 子ウィンドウを開いたままプロジェクトを閉じても、子ウィンドウが閉じない。
細かい現象はまだ確かめていない。
No.103 と関連がある??
UnloadProjectの処理内でクラス・ディクショナリの処理を追加し忘れていたのが原因。
@CDgmInfoで統一的に処理するように変更
@
111 不具合 着手済み 大きなダイアグラムを出力すると、「パラメータが不正です」というエラーメッセージが表示され、画像に出力できない。
原因はOSの制限である。
@画像分割の機能を追加して対応する。
A自前で作成
BSusieプラグインとかはどうなんだろう?

バグを修正することで少しは大きな画像を出力できるようになった。ただし実メモリに依存する。
112 改善点 完了 処理時間が長いときにマウスが砂時計にならない。 実装していないから。
@実装する
@
113 問題点 完了 リバースエンジニアリングがアンドゥ・リドゥに対応していない @アンドゥは、リバースエンジニアリング前のクラス・ディクショナリをDELETE&INSERT、リドゥは、リバースエンジニアリング後のクラス・ディクショナリをDELETE&INSERT
@
114 改善点 完了 ダイアグラムのアラインメント機能の一部しかツールバーに出ていない。 @ツールバーを2つに分けて1つは描画用、もう1つはアラインメント用とする。
@
115 改善点 完了 プロパティエディタにおいて、パッケージ名やクラス名などをコンボボックスで選択させる機能が必要 @プロパティエディタの拡張属性に ext_ClassModel と ext_PackageModel を追加する。
@
116 改善点 完了 プロジェクトビュー、オブジェクトビューのほかに、クラスビューが必要。
プロジェクト内の全クラスを階層で表示できて、ダイアグラムにドラッグ&ドロップできる機能がほしい。
そのうち実現予定 OK
117 問題点 完了 各プロジェクトファイルのファイルサイズが大きい。XML読み込み時のメモリ消費が激しいので小さくする必要がある。
@エレメント数を削減する為に、プロパティエディタ形式のデータに対して、初期値と同じ場合はXMLに書き出さない機能を追加する。読み込み時に省力されているエレメントはデフォルト値を設定しておく。
A上記では根本解決になっていないので、属性クラスのインスタンスを共有化する仕組みを作成する。(FLYWEIGHTパターン)
Bメモリ上に一気に読み込んでDOMツリーを作成しているのを、SAXを使用して読み込むように変更する。
Cstd::vector をメモリ使用効率の良い、自作のものに変更する。
Aでは効果なし。
結果的に、Cで行った。
118 問題点 完了 クラス図などで文字列が多くなると描画が遅くなる。 (予想)描画のたびに文字列を構築して、メモリの獲得/開放が行われているから。(No.91 とも関係する)
原因は、描画してキャンバスに描いても、画面に反映されていなかったから。
@TImageのRereshを行う
@
119 不具合 完了 属性の多重度が定義できなくなっている。 クラス・ディクショナリを作成する課程ですっかり忘れていた。
@クラス・モデルに定義出来るように機能追加
@
120 不具合 完了 操作の引数のIN/OUTのタイプが指定できなくなっている。
クラス・ディクショナリを作成する課程ですっかり忘れていた。
@クラス・モデルに定義出来るように機能追加
@
121 不具合 完了 クラスの編集機能の「操作を上に移動」「操作を下に移動」を実行しても上に移動しないことがある。
なお、属性やtypedef宣言も同様。
見かけ上は移動していないが、実は移動している。
現在の画面だと、可視性ごとに(public/protectedなど)分けられている為、実は1つ上に移動した時他の可視性の上に移動したことになっている。しかし、現在のツリービューではそれが分からないため移動していないように見える。何度もボタンを押していると移動できる。
しかし、クラスダイアグラムの表示方法と異なる為見難い。
@ダイアグラムに表示する時にも可視性ごとに表示する。例えば public/protected/private/packageの順で表示するなど。
A並び順を替えるときは可視性を無視して一覧表示して、並び替えてもらう。
OK
122 不具合 完了 クラス・ディクショナリのクラスのソート順がおかしくなる。 クラスの編集を行ったりすると、クラスの順番が逆になったりする。原因は不明。
原因、自作コンポーネントのOnCompareフックハンドラにデフォルトのソートが未実装だったから。
@実装する
@
123 不具合 完了 クラス・ディクショナリを開いていない状態で、クラスダイアグラムを表示する。この状態でクラス情報ツリービューからモデルを追加した時、画面にすぐに反映されない。
一端クラスオブジェクトの選択を解除して、再選択すると追加されてる。
クラス・ダイアグラムに対するモデル更新イベントが発生しても、プロパティエディタやクラス情報表示ペインが更新されないため。
@モデル更新イベントの中でプロパティエディタやクラス情報表示ペインを更新するイベントを発行
@
124 不具合 完了 ”〜”という文字を使用して保存すると、”■”になって書き出されてしまう。
恐らくICUの不具合。
@Shift-JIS ⇔ Unicode は Windows API で行う。
@
125 不具合 完了 複数のクラス・ディクショナリに同じ名前のクラス・モデルがある時、クラスダイアグラムでそのクラスを使用したままクラス・モデルを削除すると正しくクラスオブジェクトが更新されない。
未調査 OK
126 不具合 完了 プロジェクトデータの削除後、アンドゥするとツリービュー上の正しい位置にプロジェクトデータが戻らない。
ツリービューの追加時は末尾に追加しているから。
@データタイプ内のノードを再配置する
OK
127 不具合 完了 ダイアグラムを拡大すると、コネクタの破線が実線になる。 @破線の描画をAPIではなく、自前で行うようにした(LineDDA使用)
@
128 不具合 完了 Doxygenのファイル名を入力せずにリバースエンジニアリングするとエラーになる。その際、作業フォルダがゴミとして残る。 リバースエンジニアリング開始処理でエラーになった場合、終了処理が起動しないことが原因だと思われる。
@エラー時も終了処理を呼び出す
@
129 問題点 未着手 クラス・ディクショナリ化した際に、属性の型を入力して自動的に属性タイプに登録する機能が無効になってしまっている。 機能を少し考え直す必要あり。
 
130 問題点 完了 XMI でクラス・モデル内の一行コメント、複数行コメントに非対応 UML:ModelElement.taggedValue を使用して規格外の値を保存することが可能。
1行コメントは description という名前で、複数行コメントは documentation という名前で保存することにした。
OK
131 問題点 中止 XMI でクラス・モデル内の typedef に非対応 他のツールでは絶対対応してないだろうから、未対応とする。 中止
132 問題点 完了 XMI でアンドゥ・リドゥに非対応 対応させる OK
133 問題点 完了 XMI でインポート後にダイアグラムなどへの更新伝播が未実装 @CUmlClassDictionary を渡すと、追加/削除などを自動判別してイベントを発生させるメソッドを作成する。
@
134 不具合 着手済み 複数行コメントが入ったXMIをインポートすると、改行がおかしくなっている。
<BR>を記述した複数行コメントは正しく改行できている。
それ以外は、doxygenの出力したXMLの中に<BR>タグが入っているがこのタグを変換してしまうと2重に改行してしまうため処理できない。
@改行は<BR>タグに変換。<BR>タグはCRLFに変換
現在対応方法を検討中
135 不具合 完了 リバースエンジニアリングにて、全角スペースが文字化け?(doxygenのバグ?) Doxygen 1.3.5 系では修正されている。
Doxygen のバグだったようだ。
OK
136 不具合 完了 コネクタの仮の線を描画中に右クリックを押して、操作を中断させると、仮の線が残ってしまう。
線のクリア処理をどこかのタイミングで行う。
@マウス処理をデザインパターンのSTATEパターンで書き直した際に、Abort処理も組み込む。
@
137 不具合 完了 オブジェクトの階層になった状態の子をコピー&ペーストできない。 子オブジェクトが親を覚えており、親との関連がコピーしたオブジェクトの一覧の中にない場合に、その子オブジェクトをペースト対象外としていた。
この処理はコネクタで、端についているオブジェクトが足りない場合のための処理である。しかし、階層関係の場合は以下のようにする。
コピーした中に階層の親が居なければ、階層の親を未設定状態にしてペーストする。
OK
138 不具合 完了 クラス・ディクショナリでクラスの追加後にアンドゥをすると、再描画が正しくとれていないようで、変な文字が残る。 ツリービューのフォントが少し大きいのが原因だと思う。ツリービューの親のパネルとの関連も調べてみること。(パネルのフォント変更に追随できれば良いのだが・・・)
No.147で対応済み
139 不具合 完了 プロパティエディタで入力エラー後にMDI子ウィンドウを閉じるとエラーのメッセージボックスが永遠に出つづける。
非アクティブ化の処理で色々やっているので、再帰的にエラーの部分が呼ばれる。
本来、エラーメッセージが表示されること自体が間違い。
@アクティブセルの位置を正しく設定する。
@
140 改善点 完了 前々から思っていたのだが、コネクタの矢印が小さくないだろうか。ただ、誰からも言われていないので妥当かどうかは不明。
少しだけ大きくしてみようかと思う。
少し大きくした
141 不具合 完了 一度リバースエンジニアリングしたクラス・ディクショナリを再度リバースエンジニアリングすると、モデルの反映が完了せずにフリーズすることがある。
フリーズするのではなく、ツリービューの更新に時間がかかっていた。時間がかかる原因は、削除アルゴリズムが悪かったため。
@アルゴリズムの改善
@
142 不具合 完了 戻り値の定義されていない XMI を読み込めないことがある。
XMI読み込み処理の中で、使用しているエレメントが違ったのを修正する。
OK
143 不具合 完了 プロパティエディタの準固定値リストで Dataだけを指定した際に "data (data)"形式で表示されてしまう。
リストを読み込む処理で Display が空文字列なら Data を取得するようになっている。
@準固定値リストの際はDataを読みに行かないようにする。
@
144 改善点 中止 UMLスクリーンで右クリック時のポップアップメニューから削除ができると便利。
未定  
145 不具合 完了 クラスオブジェクトのクラス名の一覧が、ダイアグラムに使用しているクラスの一覧になっている。
クラス・モデルに存在するクラスの一覧に変更する。
クラス・モデルの一覧を表示するように変更。
ただし、パッケージ名は無いので全一覧になる。
OK
146 不具合 完了 アクターの名前を入れて、プロパティエディタの欄外をクリックすると、固まる。(Windows95)
Windows 2000 では、固まらずに連続操作が行われたようになり、アンドゥバッファがすべて同じものになってしまう。
インプレースエディタの KILLFOCUS のイベントで自分のセルに文字列を書き込んでいたが、再帰的に自分自身が呼ばれていた。(何故、セル外をクリックしたときだけそのようになるかは不明)
@セルに書き込む前にインプレースエディタを非表示にする
@
147 不具合 完了 クラス・ディクショナリのツリービューでクラスを削除すると、ごみが残る。(再描画が上手くいっていない)
調査したところ、削除イベントを捕まえてツリー・リストビュー関連のコンポーネントを再配置している処理の呼び出しをコメント化したら発生しなくなった。細かな原因は不明。
@上記のメソッドの呼び出しをやめる。(再配置の呼び出しは不要だったためその他の影響は無い)
@
148 不具合 完了 UMLスクリーン内でオブジェクトを選択したときに表示されるアクティブをあらわす破線が表示されていない。
EMF対応した時に、間違って消してしまっていた。
@実装を元に戻す。
@
149 問題点 完了 アクターはフォントサイズの変更が出来ない。 アクターの高さを出来るようにする必要がある。
 →高さを変更できるようにした後、フォントサイズを指定可能とした。
OK
150 問題点 完了 対応していない拡張子を1st Modellerのexeまたはそのショートカットにドロップすると不適切なメッセージボックスが出る。 変数の使用が間違っていた。 OK
151 改善点 完了 フォントの一覧に縦書き用フォントが入っている。不要なので削除したい。 @フォント名の先頭が@であれば縦書きフォントとみなし、
 取得しないようにする。
@
152 改善点 完了 アプリケーションのオプション設定のDoxygenのパス設定に自動取得機能をつける。 機能追加する。 OK
153 不具合 完了 グリッドを表示したまま画像出力すると、画面外に縦線が表示されない。
@画像出力の場合はグリッドを強制的に非表示にする
@
154 改善点 完了 ステレオタイプのリストに空文字列がなかった。
Class.xml ClassModel.xml CnctLine.xml を修正する。
OK
155 改善点 完了 プロパティエディタの属性タイプコンボボックスの内容がソートされていない。
表示データ作成部分にソート処理追加 OK
156 改善点 完了 ズーム値を小さくすると、接続ポイント、リサイズポイントも小さくなる。非常に不便。
ズーム値が100%未満のときには100%の時のサイズで表示するように変更する。 OK
157 不具合 完了 関連クラスの変更ができない 修正されている OK
158 不具合 完了 コネクタを含めてオブジェクトを選択してクリップボードにコピーすると、EMFの貼り付けでエラーになる。
未調査だが、処理範囲が広くなりすぎてエラーになっている気がする。
→未初期化のラベルを矩形として加算していたため外接矩形が異常になっていた。
@未初期化のラベルは矩形の計算からはずす
@
159 不具合 完了 コネクタの両端を同じオブジェクトに接続できなくなっている。 もっとも近い接続ポイントを検索する際に、コネクタの始点オブジェクトを除く指定をしていた。
@始点は除かないようにする
@
160 不具合 完了 スマートコネクタを使用していたら、スタックオーバフローで落ちる。
スマートコネクタは絶対に再帰接続させてはいけない。
@マウス操作中にチェックで跳ねて再帰接続させないようにする。
@
161 不具合 完了 改行のあるメモをコピー&ペーストすると改行がなくなってしまう。 XMLの読み込み後に改行を\r\nに変換していなかったため。
@変換するように修正
@
162 不具合 未着手 メモで複数行の改行した際に、空の行は無視されて描画されてしまう。スペースを1つでも入れると改行される。 未着手  
163 改善点 完了 メモをダブルクリックすると
メモ内容編集ウィンドウが起動するようにしたい。
(描画クラスにダブルクリック時に応答するようなインタフェースを継承させて対応する?
 それともUMLスクリーンで対応?)
OK OK
164 改善点 完了 クラス図にパッケージ名を入力させ
そのパッケージと同じクラスについてはパッケージ名を省略するようなオプションが欲しい。
左記の通り実装した(Ver.1.36 beta 1) OK
165 改善点 完了 クラスの描画制御でパッケージ名をoffにできるようにしたい。 左記の通り実装した(Ver.1.36 beta 1) OK
166 不具合 完了 メモをダブルクリックしたらウィンドウが出るが、マウスの押下処理が動いていないようで、スクリーンの端にマウスが来ると自動スクロールする。 マウスの開放イベントが、子ウィンドウが開くことで取得できないためにタイマーが終了しなかった。
@タイマーイベントの中でマウスの押下がなければタイマーを終了するようにする。
@
167 不具合 中止 クラスを新規追加したらエラーで落ちた。 再現性が無い
 →2004/6/2 再現性が無いので削除とする。
 
168 改善点 未着手 クラス・モデルを編集した際に、クラス名を変更したら、ダイアグラム名のクラスも変わって欲しい。 未着手  
169 改善点 完了 新規クラスをダブルクリックした際にクラス編集ウィンドウが出て欲しい。また、閉じた際にクラスオブジェクトのパッケージ名とクラス名を編集したものに更新してほしい。 新規クラスをダブルクリックした際は、クラス・モデルを選択する専用ウィンドウを表示するようにした。
新規クラスでない場合は、クラス編集ウィンドウを表示するようにした。なお、クラス・モデルのクラス名とパッケージ名は変更禁止とした。
 
170 問題点 完了 メモオブジェクトをダブルクリックして
ウィンドウが立ち上がっている最中に
UMLスクリーンのタイマーイベントで
マウスの押下状態を参照して、タイマーを削除する。
(これをしていないのでOKボタンを押した直後に少しだけスクロールしてしまったりする?)
タイマーイベント使用中に子ウィンドウを開いた際に、タイマーが一時的にストップしてしまう(ような感じになっている)
OKボタン押下時にたまたまスクロールする場所でマウスをくりっくしたらマウス押下を捕らえて1度だけスクロールイベントが処理してしまうのが原因。
@マウス開放タイミングを検知したら何もせずに終了
@
171 不具合 完了 関連クラスを表現するコネクタのラベルに不具合がある。終端がコネクタに接続されている場合、その終端のラベルが表示されない。
接続先のコネクタの外接矩形が異常な値を返している。
原因を調べてみるとコネクタの外接矩形を取得していた。コネクタは外接矩形はダミーの外接矩形(最大矩形)を返しているためおかしくなっていた。
@表示しない
A本来の外接矩形を取得するように修正。→ただし変な位置にラベルが移動してしまう。→方向判定に失敗している模様。
 →原因忘れたが修正は完了した。
とりあえずAで修正したがラベルの位置がおかしい。しかし、関連クラスの場合はラベルは使わないはず。。。特に問題ない?
172 不具合 完了 上記サンプルを開いて、ダイアログのコネクタを1つ接続先を変更したあとに
CTRL+Zを押しっぱなしにすると全てアンドゥされたあとに、リドゥできなくなる。
また次の操作を何かすると固まる。
→アンドゥ後に更にアンドゥが動いている可能性あり。
 アクションタイプのUpdateが呼ばれていない(?)ため、次の処理が出来てしまう?
処理の途中で Application->ProcessMessage() を呼んでいる箇所があった。ただ、これは必要な処理なので呼び出さないようには出来ない。
@アンドゥアクションに再入を防ぐためにカウンタを設ける
@
173 不具合 完了 コネクタの接続先を選択すると
ラベルが微妙に動く。
Rectで外接矩形を取っていたが、コネクタの場合は最大矩形になるためFitRectに変更した。しかし、FitRectはコネクタなどのオブジェクトも含むため選択すると外接矩形が変わってしまった。
@その他のオブジェクトを含まない外接矩形を取得できるようにした。また、外接矩形上の点ではなくコネクタの接続位置をラベルの基点とすることとした。
@
174 不具合 完了 メモをダブルクリックして編集ウィンドウを開いた後、ウインドウを閉じたら、まだマウスを押下している状態になっている。そのため1度クリックしても正しく動かない。
マウス移動イベントでマウス押下の形跡があるのにマウスが開放されていれば処理中断する。
@
175 改善点 完了 変数やメソッド、引数に対してコメント(1行、複数行)が登録できない。
Doxygen で作成可能なコメントを登録できないか?
下記の機能を実装する。
・クラス・モデルに該当の情報を持たせるためのメンバ変数追加
・クラス・モデルのシリアライズ
・リバース・エンジニアリングで情報取得
ひとまず下記が完成
変数
メソッド
typedef
176 不具合 未着手 エクスプローラなどでショートカットを作成して「実行時の大きさ」で最大化を指定しても最大化にならない。
スプラッシュウィンドウが最大化されているような挙動になっている?
それ以外は未調査
 
177 不具合 完了 バージョンの古いファイルを読み込んだ際にエラーメッセージもなくプロジェクトから削除してしまう。
・ひとまずエラーメッセージは出るようになった
 →ただし勝手にプロジェクトから削除する。
OK
178 改善点 完了 アクション状態をダブルクリックするとメモのときのように入力ウィンドウが出て欲しい。
下記のオブジェクトに実装済み
・アクション状態
・ユースケース
・システム境界
左記のとおり
179 不具合 完了 新規オブジェクトが追加できない。
UMLスクリーンのコンテキストクラスなどを触ったから?
XML関係?
 →StatusFlag を追加したが、sfMouseDown にするのを忘れていて、Abortされていた。
  →正しく状態遷移するようにした。
左記のとおり
180 不具合 完了 アンドゥ/リドゥすると選択中のオブジェクトが増え続ける。
再現性が無い 対応不要
181 不具合 完了 プロジェクトビューをフローティングにすると、ツリーリストビューのリスト部分が化ける。
データがなくなっているような感じ。
もしかしてシリアライズの実装が必要?
C++Builder 6 になってから発生した模様。

C++Builder ML よりヒントを貰う。コンポーネントが破棄されているかどうかを確認して破棄するかどうかを決める。

void __fastcall TMyListView::OnDeletion(System::TObject* Sender, TTreeNode* Node)
{
    // コンポーネントが破棄状態でなければ何もしない
    if( ! ComponentState.Contains(csDestroying) )
    {
         return;
    }

    // Node->Data の削除
    // ....省略....
}
OK
182 不具合 完了 プロパティエディタをフローティング状態で使用していると1st ModellerがAbortしてしまうことがある。
プロパティエディタの裏にあるクラス情報ツリービューの OnDeletionがフローティング時に動作していたため発生した。
No.181 の対応と同じ方法で解決した。
OK
183 不具合 完了 application.xml にタグが追加されたときに自動的に初期値が補完されるはずだが・・・補完されない?
コンパイルミス?
現在は補完されている。
OK
184 改善点 完了 スイムレーンの上に異なるオブジェクトを追加しても親子関係が登録されない。その後一度スイムレーンの上で移動させれば親子関係が登録される。
階層構造をつくる親子関係を持てるオブジェクトは全てこのようなことになる。
@自動的に親を登録する機能を追加する。
OK
185 不具合 完了 階層の親と子を同時にコピーしてペースとした場合、親子の階層関係が逆になる。
内部データを保持していた際にstd::map に格納していたため、オブジェクトの名前でソートしていた。
TTmsUmlScreen への追加時に親より奥となるZオーダを指定した場合は手前に出るようなZオーダに修正してから追加するようにした。
OK
186 不具合 完了 階層関係にあるオブジェクトで、親をコピーすると子が全てコピーされてしまう。
コネクタを自動的にコピーする機能が働いている。
@コピーするときに関連先が子であればコピーしないようにする。
OK
187 不具合 完了 親と子を同時に選択したまま移動させると親子関係が解除されたり、子の親が勝手に変わったりする。
子と親が同列に扱われているため、移動先の親を階層の親として新しく設定してしまうため。
@選択中のオブジェクトの中でもっとも親となっているオブジェクトのにのみ新しい親を設定するようにする。
A移動処理の前に、親オブジェクトを走査して選択オブジェクトがあれば移動処理をしないこととする。

(現状での回避方法) 親子関係にあるオブジェクトを同時に選択して移動しなければ発生しない。親だけを移動すれば子は自動的についてくる。
A
188 問題点 完了 たくさんのオブジェクトを選択して移動後に、アンドゥするとアンドゥ過程が描画されてちらつきが発生。
Commandオブジェクトに描画抑制機能がなかったため。
@描画抑制機能を追加
@
189 不具合 完了 Javaソースでメンバ変数名が日本語の場合にメンバ変数名が化けてしまう現象が発生。
doxygen 1.3.5 で確認している。
おそらく doxygen の不具合。
 → No.199 を参照
OK
190 不具合 未着手 プロパティエディタの裏にあるクラス情報が勝手に右スクロールすることがある。
非常に使いにくい。
クラス・ディクショナリで色々なクラスをクリックしている際に発生することがある。
メソッドの選択処理を行っているがその際に自動的に右スクロールするようだ。
@横スクロール位置を覚えておいてクリックしてクラスが変わった際に位置が移動しないように復元する。

 
191 不具合 完了 リバースエンジニアリングした際に、複数行コメントの中身が不完全である。
@複数のパートに分かれている場合に最初のパート部分しか取得できていない。
Aパラメータや戻り値などの説明が書かれている場合、テキスト情報のみ取得しているので読みにくい。
Bコメント中にタグを記入している場合はタグが読み飛ばされて欠落してしまう。
@は、全てのパートを対象にしてコメントを取得するようにする。

Aは、doxygenのタグを解析して、Doxygen形式またはJavaDoc形式で複数行コメントの中に格納するようにする。

Bは、doxygenのタグを解析して、コメントの中に格納するようにする。
@Bは完了

Aはdoxygen形式でのみ出力することとした。
(JavaDocが必要なら将来対応)
192 問題点 未着手 複数行コメントなどをプロパティエディタで表示した際、改行が黒い点(・)になって表示されて不恰好。
Windows API が勝手に表示している。
対応策は未検討。
 
193 問題点 未着手 クラス・ディクショナリ保存時に画面にクラス・ディクショナリを表示していると、クラスを1つずつ走査していくのが見えて処理が非常に遅く感じられる。
未調査  
194 問題点 未着手 大量のソースをリバースエンジニアリングして閉じるボタンを押した際に画面が固まったようになる。
少々不恰好である。
適度に再描画したり、プログレスバーを出したりした方が見た目は良い。(優先度低)  
195 改善点 完了 Doxygenの最終確認バージョンをどこかに書いておく。 リバースエンジニアリング画面でよいかな。 OK
196 問題点 完了 たまにクリック場所を間違ってプロジェクトビューなどがフローティングになって、うっとおしい場合がある。
フローティングする/しないを切り替えられるようにしたらどうか?
時期/実施するかなどは未定
→大幅改良した
OK
197 不具合 完了 XMLで MS932 でエンコーディングされたものがエラーになる。
SHIFT-JIS、EUC、UCS-2 にしか対応していないため。
内部的にはSHIFT-JISはMS932で扱っているので、MS932と指定されたらSHIFT-JISとして扱うようにすれば良いはず。
OK
198 不具合 完了 2回続けてりバースエンジニアリングすると、エラーになる。
関連・ディクショナリの更新の際に、意味の無いところで return(false)という文があり、必ず処理に失敗していた。
OK
199 不具合 完了 リバースエンジニアリング時に関連・モデルが自動作成されないケースがある。
→基本クラスがXML内に定義されているのにもかかわらず、xmlファイルが無い場合。
Well Formed な XML ではないものが出来ている。
原因は、XML宣言のencodingがSHIFT_JIS になっているにも関わらず、内部の文字コードは EUC_JP になっている。
→doxygenの設定ファイルに下記の記述を追加することでおおむね解決したが新たな不具合(?) No.212も発生。

USE_WINDOWS_ENCODING   = NO
OK
200 不具合 未着手 リバースエンジニアリング時に関連・モデルが自動作成されないケースがある。
→クラス宣言時に基本クラスは記述しているが、その基本クラスがどこにも宣言されていない場合。
コンパイルに通らないようなソースをリバースエンジニアリングしているのだから仕方ない?
Javaのコアクラスを基本クラスにした場合はどうなる?
 →基本クラスとして解釈されない。
  →要検討
 
201 問題点 完了 関連・モデルに可視性(Visibility)がない。
フォワードエンジニアリングで必要なため追加した。 OK
202 問題点 未着手 関連・モデルで、基本クラスのクラス名は指定できるが、C++のテンプレートクラスだった場合、テンプレート引数が指定できない。
フォワードエンジニアリングで必要となる。
これが入力できないと正しいソースが出力できないケースが発生する。
 
203 不具合 完了 関連・モデルを修正してもダイアグラムが再描画されない。
コネクタの描画クラス側にディクショナリ変更通知を受け付けるインタフェースが未実装だった。
OK
204 不具合 未着手 派生関係のコネクタに関連名などを入力した状態で、関連・モデルの存在するクラスへ接続先を変更する。
その後、アンドゥしても関連名などの値が元の値に戻らない。(先ほどの関連もモデルの値のまま)
コネクタの接続先変更の際のアンドゥコマンドオブジェクトは、古い接続先しか覚えていないため。
@古い関連・モデルもアンドゥコマンドにする。
 
205 不具合 未着手 関連・モデルを追加した後にアンドゥしたら、ダイアグラムのコネクタが完全に元に戻らない。
関連・モデルのアンドゥはモデルの削除だけである。コネクタは描画時に関連・モデルの内容で自分のインスタンスを上書きするため、その内容もアンドゥする必要がある。
@案なし
 
206 不具合 中止 保存の際にダイアグラムのファイル名を再入力を要求される事がある。
再現性が無いため原因不明。
デバッグモードの時にのみ動作するチェックロジックを入れて様子を見ることとする。
2004/7/25 再現しないため中止
 
207 不具合 完了 リバースエンジニアリングの際に、インナークラス関係の関連・モデルが出来ない。
実装した。 OK
208 改善点 完了 クラスビューのフォントの設定ができない。 実装した。 OK
209 不具合 完了 クラスビューのソートがおかしい? 実装忘れ。
ノードの更新処理内で TTreeView の SortType に stNone を設定した後に、stText を設定することで強制ソートさせる。
 
210 不具合 完了 コネクタの自動生成で片方向のクラスを選択したときしかできない。
(インナークラスのときだけかもしれない)
不具合ではなかった。
関連・ディクショナリのデータが悪かった。リバースエンジニアリングに不具合が合ったときのデータだったので、再作成することで正しくコネクタの自動生成が動くことを確認した。
 
211 不具合 完了 リバースエンジニアリング時に基本クラスがテンプレートの場合は関連・ディクショナリに自動追加されない。
テンプレートクラスの定義をパースして、テンプレート引数を解析するようにすることで対応した。 OK
212 不具合 着手済み Doxygen でリバースエンジニアリングすると不正な XML が出来る事がある。
EUC-JP でDoxygenを実行したにも関わらずおかしくなる。
メソッドのパラメータの型がStringで引数名が『品目コード』という文字列の場合におかしくなっている。恐らく『品目コード』という文字列が良くないと思われる。

なぜなら、<type>品目コード</type> という XML が出力されるべきところが、<type>品目コーゼ/type> となっている。これは『ド』の前半分と小なり記号(<)が合体して『ゼ』になっているようである。
また、引数名は『ド』の後ろ半分と小なり記号が合体して、『票』と言う字になっている。

Doxygenのソースを解析すれば原因がわかるかもしれないが現在のところ、引数に日本語名を使用できる言語が限られていることと、引数名に日本語をあまり使用していないのではないかと想像するため、後回しとする。
 
213 改善点 完了 ダイアグラムで使用できる図形を制限しているが、制限しない方が良いのではないか?
全てのアイコンを表示してしまうと、ユーザ様が混乱してしまう。しかし、わざわざ図形の使用を制限してしまうのは、作図上不便なこともある。
使いやすいアイコンの表示方法を考える。
 →表示方法はまた今度考える
OK
214 改善点 未着手 クラスの表示制御に以下を追加してほしい
・属性の初期値のON/OFF
未実装  
215 改善点 完了 リバースエンジニアリングの実行後にDoxygenの作業フォルダを削除しない設定が欲しい。(デバッグ用です)
INIファイルのデバッグ GROUP の フラグを ON にするとデバッグモードになる。
g_App->DebugFlag() == true ならデバッグモードONとなる。
OK
216 改善点 完了 プロパティエディタのフォントは固定ピッチが良い。   OK
217 改善点 完了 クラス・ディクショナリのツリービューに
コンテキストメニューがほしい。削除、追加、編集、コピー&ペースト
左記の通り実装した OK
218 不具合 完了 ダブルクリックで編集ウィンドウを出し、×ボタンで閉じたら、直後のクリックやダブルクリックが効かない。 ダブルクリックで、状態を判別してAbort処理を入れたり、配下のオブジェクトを選択する処理を入れることで改善した。 OK
219 改善点 完了 コネクタの接続ポイントが少ないオブジェクトがある。
@接続ポイントを増やす
A接続ポイントに依存しない新しいコネクタを作成する
→ダイアログの自動レイアウトなどを考えるとAの案が良いかも
 →Aの案で『アバウトコネクタ』というコネクタを実装した
   現在ベータテスト中(Ver.1.36 beta 3)
A
220 改善点 完了 ダイアグラムでエンターを押したときに
編集ウィンドウを開いて欲しい。
ダブルクリックと同じ効果を出すようにした。
ただし、RunModeがrmNormalでかつ、マウスがキャプチャーされていないことが条件。(オブジェクトの移動中などに押されるとおかしくなるため)
OK
221 改善点 完了 上記と同様にエスケープで未選択状態に。 左記の通り
また、条件はエンターキーと同じ。
OK
222 改善点 未着手 上記と同様にタブで次のオブジェクトに選択状態を変更してほしい。 未着手  
223 改善点 未着手 オブジェクト間のコネクタが折れ線コネクタの場合、両端が移動したのに折れ線コネクタの中間点が移動しないのは不便ではないか。 未着手
No.291と同種
 
224 不具合 完了 ツリービューで、キーボードのポップアップキーを使用すると、選択が解除される。
マウスの座標を取得して、配下のノードを選択する処理があり、マウスが変なところにあると未選択状態に変更しているため。
→マウスによるポップアップメニューの表示か、キーボードによるポップアップメニューの表示化を区別して、処理を分ける必要がある。
OK
225 不具合 完了 beta3 にて集約コネクタが白抜きにならない Brush->Style が bsClear の状態だった。
Brush->Style を bsSolid にして Brush->Color を操作することで正常に動作した。
 
226 改善点 完了 クラスビューから新規クラス・モデルが追加できたら便利 クラス・ディクショナリが存在する場合のみ、クラス・モデルを作成できる。
クラス・ディクショナリが複数ある場合は先頭のディクショナリに追加する。
OK
227 改善点 未着手 [編集]メニューに[書式]を追加して、メモなどの書式を変更できるようにしたら便利。
 書式には「左寄せ・中央寄せ・右寄せ」「同縦方向」「前景色」「背景色」などがある。
 また、そのアイコンを常に表示していると便利かも。(ダイアグラムのツールバーではなく、メインウィンドウのツールバーに表示)
未検討  
228 改善点 完了 クラス図の自動生成機能が欲しい。
(リバースエンジニアリング後にその結果をクラス図にいきなり出力する機能)
クラス図を自動レイアウトする機能については以前調査して、実現の目処が付いている。
リバースエンジニアリングしたクラス全てを1枚のクラス図にするのは意味の無いクラス図になる可能性が高いので、UIも含めて検討が必要。
→クラス図の自動生成機能を追加 Ver.1.40
OK
229 改善点 未着手 リバースエンジニアリング時の入力フォルダ&ファイルを指定するが、特定のフォルダを除外する機能が欲しい。
Doxygen の機能で EXCLUDE_PATTERNS を使用することで実現が可能。以下のように使用する。
 */test/*
    */t?s?/*
入力フォルダまたはファイルのパス名にマッチしたものを除外する。
 
230 問題点 未着手 アバウトコネクタを接続後、接続先のオブジェクトを小さくした際に端点がオブジェクトの外接矩形からはみ出ることがある。
コネクタが端点のオブジェクトにとどこ内容に表示される。
見た目以外に問題点はないので、現段階では修正しない。

修正するのは意外と難しいため、後回し。
 →端点のオブジェクトのリサイズでコネクタの端点の位置を補正するのだが、アンドゥ用Commandオブジェクトの作成するタイミングがない。
 
231 不具合 完了 階層子オブジェクトをドラッグ終了した際に、親オブジェクトの選択線が消えない。 ステートオブジェクトのClearメソッドで階層親オブジェクトを格納する変数をクリアし忘れていた。 OK
232 改善点 未着手 マウスの右ボタンでドラッグすることで、UMLスクリーンを任意にスクロールできたら便利。 右クリックのポップアップとの調整が必要。
→右ボタンの押下位置と開放位置が同じならポップアップ。
 違えばスクロールというのは?
 →右クリック時に少しでも動くとドラッグになってしまって不便では
   ないか?
  →Windowsのダブルクリックのようにある程度範囲を持たせて
    閾値を超えたらドラッグというのは?
 
233 不具合 完了 UMLスクリーンで複数のオブジェクトを選択してコピー&ペーストした際にオブジェクトの順番がおかしくなることがある。 コネクタ以外のオブジェクトが逆転していると思われる。
 →逆転ではなく名前順になっていた。名前順に追加するようにした。
OK
234 不具合 完了 メモが自動レイアウトの対象外になっている。 矩形インタフェースを持つものを対象外にしていた点を解除した。 OK
235 不具合 完了 自動レイアウトの際に、関連クラスがあるとレイアウトが上手く行かない。
自動レイアウトのライブラリ自体は対応できているが、データを引き渡す際にコネクタが引き渡されていないのが原因。
 →対象にするように修正
OK
236 改善点 完了 クラスビューからクラスドラッグ&ドロップした際に、クラスが小さいままだが適切な大きさにならないか? CDrawJustFitIF を描画クラスに継承させて、純粋仮想関数 JustFit を実装することで対応した。
今後は、自動サイズ調整が必要なクラスはこのクラスを派生させて対応する。
OK
237 改善点 完了 クラスビューからクラスドラッグ&ドロップした際に、関連・ディクショナリを参照して自動的にコネクタを作成することはできないか? クラスビューの中のツールバーにボタンを設けて、自動作成するかどうかを指定できるようにした。デフォルトは自動作成ON。 OK
238 改善点 完了 EMFを出力するダイアログでファイルを選んだら自動的にラジオボタンを選択して欲しい。 ファイルを選択したらラジオボタンをONするように変更。 OK
239 改善点 完了 クラスビューからドロップした時にプロパティエディタの表示制御を指定したい。 ドロップした後に一々プロパティエディタで変更するのは面倒。
案1:メニュー直下にあるツールバーにON/OFFするツールバーを追加する。(こうすることで子ウィンドウ内でクラスを作成したときにも適用される)
案2:クラスビュー内にあるツールバーにON/OFFするボタンを追加する。(クラスビュー専用の設定となる)
 
240 不具合 完了 自動レイアウト時に最短ルートコネクタの接続ポイントがおかしくなるときがある。 オブジェクトの更新前にコネクタの接続先の最適化処理を行っていたため、古い情報を元に最適化を行っていた。
ただし、コネクタの更新後にオブジェクトの更新伝播を行う必要があるため以下のようにした。
@オブジェクトの移動
Aコネクタの接続先の最適化
Bオブジェクトの更新伝播
OK
241 改善点 完了 自動コネクタ生成ではアバウトコネクタを使用してほしい。 どちらが使いやすいかは不明。
実現自体は簡単。
→アバウトコネクタとした
OK
242 改善点 未着手 クラスの表示制御に属性・操作に対してpublicのみ/全てという選択をしたい リバースエンジニアリングした状態のクラスは非常にメソッドが多く、手軽な方法でコンパクトに表示したいという要望が元となっている。
 
243 改善点 中止 クラスビューの複数選択 なかなか難しい。  
244 問題点 完了 オブジェクトの追加が重くなってきた気がする。 オブジェクトビューの再描画が重い可能性あり。
上手に差分更新できればいいが、現在未調査。
→名前生成が遅かった
OK
245 不具合 完了 自動レイアウトで押しピン機能を使用すると、図が壊れることがある。 調査中だが原因不明。
(押しピン機能は現在非公開機能になっている)
→押しピン時は別処理を行っていたが、「固定側は移動量を0とする」ことに変更した。
OK
246 不具合 完了 アバウトコネクタを使用しているクラスをドラッグするときに、コネクタの中間点追加モードになってしまうことがある。
表示上端点から端点までの間はドラッグできないようにする。 OK
247 不具合 完了 小さいフォント(96dpi)の設定されているPCで作成したUMLを大きいフォント(120dpi)で参照すると文字が大きく表示されてしまう。
内部的にフォントをポイントで指定しているため、ピクセル換算した際に大きくなっている。
(内部的に)フォントを指定する際に、図を作成したときのPCにおけるDPIと現在表示しているPCのDPIを考慮してフォントのサイズ(pixcel)を変更する必要がある。
 →UMLスクリーンにDPIを持たせて文字列描画時にはそのDPIとDCのDPIとの比率から毎回フォントのサイズを計算するようにした。
OK
248 改善点 完了 ダイアログのDPIを設定できるようにしたい。
大きいフォント(120dpi)の環境で作成したUMLは自動的に120dpiに設定されてしまうが、何らかの理由で変更したいことがある。
ただし、これを変えると図中の文字の大きさが変わるため整形しなおす必要がでてくるかもしれない。
OK
249 不具合 完了 UMLスクリーンの右下の余白の色がおかしくなる事がある。 背景の塗りつぶしをOFFにしているため、右下だけ色が描画されない。
右下だけは色を塗りつぶすようにする必要あり。
OK
250 不具合 完了 印刷時に、ダイアグラムのDPIが96で無い場合にヘッダー/フッターの文字サイズがおかしくなる。 UMLスクリーンのDPIが大きくなったら、それに合わせてフォントを大きくするようにした。
基準は 96 DPI とした。
OK
251 改善点 完了 印刷ボタンを押したら必ずアクティブプロジェクトなのは、不便である。
子ウィンドウがある場合は、表示中の子ウィンドウのプロジェクトを印刷したい。、
対応する OK
252 改善点 完了 プレビューボタンを押したら必ずアクティブな子ウィンドウのプロジェクトなのは、不便である。
子ウィンドウが1つも無い場合は、アクティブプロジェクトを対象にしてプレビュー表示したい。
対応する OK
253 不具合 完了 関連・ディクショナリの追加画面でパッケージ名をキーボードで入力した場合に、クラス名のコンボボックスのリストが更新されない。
なお、パッケージ名をコンボボックスから選んだ場合は正しく動作する。
キーボードイベントの考慮抜け。
OnExitでコンボボックス更新
OK
254 問題点 完了 コネクタの自動追加処理が非常に遅いことがある。
遅くなる条件は不明。
新しい名前の生成の際に、UMLスクリーンのデータをプロジェクトデータに保存していたのが遅かった。
UMLスクリーン上で名前の衝突検査をするように修正した。
OK
255 問題点 完了 クラス図の自動生成で、どのクラスとも関係を持たないクラスが多い場合に、処理が非常に遅くなる。 余剰クラスの整列処理が遅い。原因は未調査。
比較回数が非常に多かった。比較回数を減らすアルゴリズムに変更した。
OK
256 不具合 中止 リバースエンジニアリング時に、Doxygenコメントがくずれることがある。
(\author の前に改行が入らない事がある。)
未調査
 →Doxygen1.4.1では再現性なし
 →Doxygen1.4.2では再現性なし
 
257 問題点 完了 UMLスクリーン上に大量オブジェクト(数百個)ある場合に、オブジェクトの削除などが遅くなる。 ・再描画が走っているのが遅いのか?
→描画系の処理方法を変更して効率化したので様子を見る
OK
258 不具合 完了 オブジェクトを移動して、UndoするとZオーダが復元されない。 Zオーダの小さいものから順に復元していたのが原因だった。
大きいものから順に復元することで対応した。
また、Listコマンドを2度発行していた不具合もあった。

また、Redo処理ではZオーダの小さいものから順に処理していなかったために同様の不具合があったので修正した。(修正前は順不同で処理していた)
OK
259 問題点 完了 印刷ダイアログのプリンタ名の横にある「プロパティ」ボタンが未実装である。 各種OSでテストする時間がとれなかったため使用できなくしている。使用可能にするかどうかは要検討。

DocumentProperties で対応した。
OK
260 問題点 完了 【フォワードエンジニアリング】コンストラクタ/デストラクタの自動作成をONにした時に、既にコンストラクタなどがあっても作成されてしまう。 変更するまでは、ラウンドトリップ・エンジニアリング時はOFFにしてもらうことになる。
class.xml 作成時にコンストラクタ/デストラクタの有無を調べてClassSpecのhaveCstr, haveDstr 属性に true/false を設定するようにした。
OK
261 不具合 完了 【フォワードエンジニアリング】C++ソース出力でコンストラクタ/デストラクタの自動作成をONにした時に、テンプレートクラスにも関わらずcppに実装ができてしまう。 自動コンストラクタ生成の処理にテンプレートクラスの考慮が無いために発生する。
OK
262 問題点 完了 【フォワードエンジニアリング】Javaの時に基本クラスの extends と implements が出力されない。 対応した OK
263 不具合 完了 描いた図を読み込み、子ウィンドウを開こうとするとエラーが発生。
1.40になって初めて出た)
恐らくアバウトコネクタを関連クラス形式で使用した場合にのみ発生すると思われる。
アバウトコネクタの読込後に関連付け処理を行うが、OnChange内で計算値がオーバーフローして予期せぬ値になっていた。
これは、コネクタの座標の初期値が -65536*32767になっていたためである。初期値を-65536*256とした。
 
264 不具合 完了 時々、印刷の倍率が5%になっている。 余白の値を読み込んだ後に、倍率のところに書き込んでいた。 OK
265 問題点 完了 テンプレート引数をリバースエンジニアリングした際に、引数の値の後ろに半角スペースがついていることがある。 CTmsStrBase<T>::TrimRight() の不具合だった。 OK
266 問題点 完了 関連モデルに実現関係も登録したい。
スキーマXMLの修正。
自動関連・モデル登録対象の関係種類の修正。(TfrmChildDgm::GetCnctLineWhenAssociationModel)
OK
267 問題点 完了 (No.266の続き)また、RE時にclassからの派生は汎化関係の関連モデルを登録し、interfaceからの派生は実現関係の関連モデルを登録するようにして欲しい。 ステレオタイプがinterfaceの時に、関連の種類を「実現関係」にした。 OK
268 不具合 完了 Javaのinterfaceをソース出力したら、実装が出来てしまう。   OK
269 不具合 完了 リバースエンジニアリングしたソースのメソッドの戻り値型に、abstract , virtual などが付く。 Javaの時に対応した。
 →C#など多言語は未対応
 
270 問題点 完了 C++のexplicit、mutable、volatileをクラス・モデルに格納したい ・リバースエンジニアリング処理の追加
・クラス・モデルに保持し、入力I/Fの作成
OK
271 不具合 完了 プロパティエディタ上でカーソル移動すると、コンボボックスの内容が勝手に書き換わってしまう事がある。 KeyUpイベントが作用していた。
KeyUp,KeyDownで独自の処理をした後にそのイベントを無効にしてコンボボックスにメッセージを渡さないようにして対応した。
OK
272 不具合 未着手 ページ設定で「A3横」を指定してもA4縦で出力される場合がある。その場合はプレビューで見てもA4縦で表示される。再起動すると正しくA3で出力される。
(再現性が低いらしい)
調査中。
原因不明。
 
273 不具合 未着手 印刷ダイアログに印刷対象に何も表示されない場合がある。印刷は最後に印刷したものがが出力される。再起動すると正しく表示されるようです。
(再現性があるようだが、確認できず)
調査中。
原因不明。
 
274 不具合 未着手 クラスのプロパティの色選択のリストボックスが開かない場合がある。マルチモニタ環境でセカンドモニタにプロパティが表示されている時に開かない場合があるようです。 調査中。
原因不明。
 
275 改善点 完了 ページ設定で、ヘッダ・フッタのフォント指定ができるようにして欲しい。 実装した。 OK
276 改善点 完了 ダイアグラムの画像に変換する機能で、出力先ファイル名をクラス図のファイル毎に覚えて欲しい。 実装した。
また、EMFもダイアグラムごとに記憶するようにした。
OK
277 不具合 完了 アクターをデフォルトのサイズで作成した場合、選択時のリサイズポイントの一部が表示されない。 UMLスクリーンをクリックしてオブジェクトを配置した場合は、矩形サイズは1ドットになる。
しかし、SetHeightの中で最小値チェックをしていなかったため、1のまま高さが設定されてしまった。
OK
278 改善点 完了 ヘルプのリバースエンジニアリングのページに説明不足がある。
クラス・ディクショナリの作成前にプロジェクト作成が必要であることを書くこと。
記述した OK
279 不具合 完了 プロジェクトを2つ作って、アンドゥするとエラーが発生する。 プロジェクトウィザードで決めた名前を使用せずに内部的な処理をおこなっている箇所があったため、内部で "Project" という名前になっていた。 OK
280 不具合 完了 プロパティエディタ、クラス情報ビューが更新されない。 プロパティエディタは対応した。
→完了
OK
281 不具合 完了 オブジェクトを削除してアンドゥしても元に戻らない。 内部的に戻っていたが、UMLスクリーンへの反映が漏れていた。 OK
282 不具合 完了 削除後のアンドゥによって、オブジェクトの追加が発生するが、追加イベントが発生しない。 原因は、プロジェクトデータの変更イベントとして処理しているため。
全ウィンドウを再描画・再構築しても良いが、CPUの無駄が多いため処理前後の差分を求められればベスト。
なお、現在ディクショナリはモデルの削除イベント後に追加イベントを発生させている。
OK
283 不具合 完了 オブジェクトビューのノードの並び順が画面上の順序と対応していない事がある。 未調査
→再現なし。
OK
284 改善点 未着手 メモオブジェクトにタブを入力すると、メモオブジェクトの描画の際に黒い点で描画される。 未検討  
285 不具合 着手済み 大量の描画オブジェクトをコピー&ペーストするとエラーで異常終了する。 ・メモリ不足時の考慮が抜けている箇所があった
deleteしたあと、NULLに初期化していない箇所があった
・以上終了時にレジスタ情報とスタックトレース収集機能を追加
→様子を見る
OK
286 不具合 完了 描画オブジェクトをコピー&ペーストすると、全てコピーされないことがある。
再現性あり。
一度コピーしたものを再度コピーすると怪しい。
・親子関係があると上手く行かないみたい。
No.289が原因
OK
287 不具合 完了 バウンダリボックスをコピー&ペーストすると、中の文字のアラインメントが中央になってしまう。 シリアライズの処理で、垂直方向のアラインメントを出力するはずのところが、水平方向のアラインメントを出力していた。
垂直方向のアラインメントを出力するように修正。
ver.1.44では正しく処理できていたようだ。
OK
288 改善点 完了 親子関係のあるオブジェクトの親だけを選択してCTRL+Xしたあとにアンドゥするとエラー発生。 未調査
No.289が原因だったと思われる。
OK
289 不具合 完了 コピー&ペーストするとオブジェクトの名前が変になるときがある。
"Actor 1"と"Actor1"などスペースが詰まる。"Actor 2"となってほしい。
XMLのパース時に、&#32;の解析で i64Work > 0xFFFFFFFF という判定があったが、16進数が符号付として処理されていて、空文字列になっていた。
0xFFFFFFFFui64 に修正した。
OK
290 不具合 完了 コネクタの追加をしても、オブジェクトビューにリアルタイムに反映されない。 未調査
No.289が原因だったと思われる。
OK
291 改善点 未着手 2つの描画オブジェクトの間に引いたアバウトコネクタの中間点が、2つのオブジェクトの移動時に移動しない。 コネクタのMediator更新イベントの中では、両端の座標が同時に移動していないと中間点は移動しない仕様になっている。

対応案@:更新イベントの順番を変える。コネクタは特別に最後にイベント発生。→更新イベントから更新イベントを呼んでいる際はどうする?後回しにしにくい。
 
292 不具合 完了 バウンダリボックスの文字のアラインメントを変更すると、エラーが発生。 No.289と同様に0xFFFFFFFFが-1として処理されていた。
今回は符号付の__int64に変換したかったので、0xffffffffui64と掛けなかった。(書くと予期せず-1になる)
そこでatoi64("4294967295") とした。
OK
293 不具合 完了 デスクトップの復元を行うと、小さいウィンドウが一時的に表示されて見苦しい。 BDS2006になってから発生するようになった。
→フォームから派生していないコントロールを
 ManualFloat()しても指定の座標にフローティングされず
 自動位置になってしまうため発生。
→全てのドッキングクライアントはフォームを持たせ
 そのフォームに貼り付けた。
OK
294 不具合 完了 デスクトップの復元を行うと、オブジェクトビューに同じ名前のノードが増えていく。 未調査。
→いつの間にか修正されていた
OK
295 不具合 完了 オブジェクトを移動直後、プロパティエディタで変更を適用したら移動前の状態に戻る。
移動後にプロパティエディタが更新されないため、移動前のX,Yが残っている。
よって、移動が取り消されたように見える。
→対応策は、プロパティエディタを更新するようにする。
OK
296 不具合 完了 オブジェクトを選択して削除した後に、プロパティエディタがそのまま残ってしまう。 選択状態の変更イベントが来ていない?
→削除時に選択状態の変更イベントを発生させるように修正
OK
297 不具合 完了 リバースエンジニアリング後に、閉じるボタンを押すとエラー発生。
「プロジェクトデータの追加・更新に失敗」
クラスディクショナリのウィンドウにリバースエンジニアリング結果を反映する処理で、LoadUmlDgm()を呼び出していた。
→CDgmInfoに仮想関数を追加して、その中でウィンドウへの反映処理を記述することで、ディクショナリとダイアグラムなどを考慮せずに処理可能とした。
OK
298 不具合 完了 クラスダイアグラムからメソッドを変更すると
引数のin/outタイプがinになってしまう。
ClassModelMethod.xmlの中のMethodArgInitのInitを"in"から""に変更した。 OK
299 改善点 完了 操作・属性の編集画面でデフォルトで最上位の項目が編集状態でスタートして欲しい。 属性、操作、typedefに対応した OK
300 改善点 未着手 クラスビューから新規クラスを作成する時に選択しているノードの名前空間が自動的に初期設定されると便利 未調査  
301 不具合 未着手 ネットワークパス上にプロジェクトを置くとダイアグラムなどの相対パスがおかしくなる。 No.306が原因だと思われるが、再現せず。  
302 改善点 完了 プロジェクトの読込エラー時のメッセージの処理方法に統一感が無く、非常に分かりにくい。 CUmlProject、CUmlDgmBaseなどのLoad/Save関連を全て統一ルールで処理するように修正した。
ただし、読込エラーフラグについては未実装。
OK
303 不具合 未着手 右クリックでUML描画オブジェクトを選択してもプロパティエディタなどが更新されない 未調査  
304 改善点 未着手 複数選択して同時にリサイズしたい 未検討  
305 改善点 未着手 オブジェクトの移動時の親の決定方法を変更したほうが良い
 →オブジェクトを完全に含むコントロールを親とする
未検討  
306 不具合 未着手 保存したファイルを無関係のディレクトリに移動するとプロジェクトビュー上のパスがおかしくなる。 再現せず。  
307 改善点 完了 Windows XP ではプロジェクトビューの選択ノードの文字が読みにくい。 ハイライト時のテキストの色をシステムカラーから取得して設定するように修正した。色はCOLOR_HIGHLIGHTTEXTとした。 OK
308 改善点 未着手 CTRLを押しながら移動でコピーしたい(MS-Office動作) 未検討  
309 不具合 未着手 テキストオブジェクトなどをダブルクリックで編集した後にコネクタの作成が出来ない
※無関係なところでダブルクリックすると回復
未調査  
310 不具合 完了 押しピン機能を使用して、オブジェクトの位置を固定した状態でその間にアバウトコネクタ以外のコネクタを作成すると、接続位置がおかしくなる。 アバウトコネクタ以外の場合は、押しピン状態と同様の状態にする必要がある。  
311 不具合 完了 クラス図自動生成の機能で、リストボックスが表示されない。 borlndmm.dllが古かった?  
312