返事が遅くなりましたが、サマリを post いたします。 On Tue, Aug 01, 2000 at 09:31:06PM +0900, in <20000801213558.A1847 _at_ dasen.typhoon.co.jp>, Yasuhide OOMORI / 大森保英 <dasen _at_ typhoon.co.jp> wrote: > >とりあえず tgif-4.1.27 (Vine-2.0 に付いていたもの) で四苦八苦しながら >クラス図 (OMT 法というものらしい) を書いているのですが、 > >1. 四角のサイズの調整が面倒 >2. 複数の文字列を縦に並べたときに、開始点が微妙にずれて気持が悪い >2. 継承や関連を表現するのに手間がかかる > >という点で、どうも使い勝手が悪いような気がします。また、保存するのに >obj という独自形式でしか出力する方法が分からず、 > >tgif -print -png classFooBar.obj > >などと変換して誤魔化しています。Tgif 自体、使ったことが無かったので、 >検索エンジンで見つけた > >http://saeki-www.cs.titech.ac.jp/prog4/tools/home.html > >を手掛かりに操作しています。 > >もし tgif の OMT図向けの拡張や、便利な使い方、あるいは、クラス図を >linux で書く方法を御存じでしたら、よろしくお教えくださいませ。 という質問に対して、多くの方からコメントを頂きました。一通にまとめて返 信したいと思います。 結論からいえば、 1. メモリに余裕があるのなら、java で動くツールを使う 2. (持っているのなら) Windows のツールを使う。 3. gnome-libs, libxml がインストールできれば、dia を使う 4. どれもないなら、tgif を使う という所かと思います。私の環境の場合、1. については、64MB しかメモリが なく、java の環境は遅すぎて実用性に欠けるものでした。また、2. について は、パワーポイントも visio も持っていないので、結局 3. に落ち着きまし た。 なお、gnome のフルセットは入れていません。 glib, gtk+, imlib, ORBit, audiofile, esound, gnome-audio, gnome-libs あたりを入れれば、dia は動くようです。 # Vine/VineSeed の場合なので、Vendor によっては違うかもしれません。 On Tue, Aug 01, 2000 at 09:42:01PM +0900, in <001101bffbb5$ccc55500$0400a8c0 _at_ danlan>, hide <shide _at_ alles.or.jp> wrote: >> もし tgif の OMT図向けの拡張や、便利な使い方、あるいは、クラス図を >> linux で書く方法を御存じでしたら、よろしくお教えくださいませ。 > > クラス図とか OMT図なんてのは知らないのですが、 > > Dia というツールがあります。 > > http://www.lysator.liu.se/~alla/dia/dia.html > > ちなみに日本語化パッチは > > http://www.u-aizu.ac.jp/~m5031201/dia/ > > にあります。 こちらにあった、dia-0.84 の日本語化パッチを使っています。 Gtk-CRITICAL **: file gtkwidget.c: line 3306 (gtk_widget_set_sensitive): assertion `widget != NULL' failed. というエラーがしょっちゅうも出てきますが、比較的安定しています。 # gtk+-1.2.8 にアップデートしてみたのですが、同様の症状が出ました。 ただ、出力ファイルの日本語部分は、LC_ALL=ja_JP.ujis, LANG=ja_JP.ujis なのですが、 <layer name="ÇØ·Ê" visible="true"> という風になっていました。ひょっとしたら、dia に依存してしまうのかもし れません。なお、argo や jude で生成したファイルは参照不能でした。 $ file test.jude test.jude: Java serialization data, version 5 という具合だったので、jude の方は仕方ないにしても、argo の方は xml な ので、ひょっとしたら少し加工すればインポート・エクスポート出来るのかも しれません。 On Tue, Aug 01, 2000 at 11:05:53PM +0900, in article <3986D93F.67E45743 _at_ venus.dti.ne.jp>, Inada <inada _at_ venus.dti.ne.jp> wrote: > >> 1. 四角のサイズの調整が面倒 >> 2. 複数の文字列を縦に並べたときに、開始点が微妙にずれて気持が悪い >> 2. 継承や関連を表現するのに手間がかかる > > パワーポイントやVisioなど,いかがでしょう (^^;.昔簡単なクラス, >集約,関連,継承などの図を描いたような気がします. > > Windowsは禁止なのでしょうか (^^;;. 再起動するのが面倒なのと、vmware を持っていないのとで、可能なら Linux 上で作成したいと考えました。 パワーポイントや visio を使う機会があったら試してみようと思います。 rational rose は、参考にしている、翔泳社の『憂鬱なプログラマのためのオ ブジェクト指向開発講座』の付録に 4.0J のデモ版が付いていたのですが、な んとなく UI が使いにくい印象でした。 # チュートリアルがハイパーテキストになっていないのは致命的…。 On Tue, Aug 01, 2000 at 11:49:40PM +0900, in <20000801235109V.dj990062 _at_ djedu.kit.ac.jp>, Norio Taniguchi <dj990062 _at_ djedu.kit.ac.jp> wrote: >まつぞの@オージス総研 です > ># オブジェクト指向でメシをくっています(^^; infoseek で "UML" をキーワードに検索したら、オージス総研さんの広告が出 てきました :-) >> もし tgif の OMT図向けの拡張や、便利な使い方、あるいは、クラス図を >> linux で書く方法を御存じでしたら、よろしくお教えくださいませ。 > ># 時代はすでに UML です(^^)v 上で記したとおり、翔泳社の『憂鬱なプログラマのためのオブジェクト指向開 発講座』という本を読みながらあれこれいじっているのですが、この本では、 1. 現状では、多くの書籍が UML ではなく OMT を使っている 2. UML はバージョンアップが多く、紹介した内容が一時的なものになっ てしまう可能性がある という理由で、少なくともクラス図については UML を使ってはいませんでし た。いくつかの UML 作成支援ツールを見てみたところ、それほど違和感なく 使えるものばかりだったので、クラス図作成の操作の面では、あまり問題はな いかもしれません。この本自体が2年前のものなので、その影響もあるのかなぁ と思います。慣れないうちにあれこれ手を出すと混乱のもとになりかねないと 思われるので、必要に応じて調べていこうと思っています。 # まだ門を敲いたばかりなもので…。 この本自体が2年前のものなので、今ならいきなり UML で入ってしまった方が いいということなのでしょうか…? > dia 以外にも次のようなものがあります。 > 全て Java です ># とーぜん、というか (^^; なぜ当然なのかは分からないのですが、何はともあれ、 http://www.blackdown.org を見て、kddlabs の ftp server から、 JDK-1.2.2-FCS というのを入手し、 # tar zxf /var/tmp/j2sdk-1.2.2-FCS-linux-i386-glibc-2.1.3.tar.bz2 -C /opt/ としてインストールし、[vine-users:023634] にあった font.properties.ja を /opt/jdk1.2.2/jre/lib/ に入れました。 # default の font.properties では日本語が豆腐になるので >[Jude] > http://www.esm.co.jp/divisions/open-sys/Jude/ こちらは比較的軽快に動きますね。 # メモリが 64MB のこのマシンには、やや荷が重いような気がしましたが >[umlaut] > http://www.fsinet.or.jp/~nito/umlaut/ こちらは、「15分経ったら強制終了」とあったので、試していません。 >[together] > http://www.togethersoft.com/ >これは製品ですが、お試し番があります。唯一 C++ 番も >あるツールだとおもいます。(Linux で動くものとしては) こちらは「最小限スペック」にメモリ容量が足りないので、試していません。 C++ 版については、記述を見つけられませんでした。 >[argo] > http://argouml.tigris.org/ >オープンソースです。 こちらはやたらと不安定で、SIGSEGV で落ちたあと、Window Maker まで不安 定になってしまいました。何故か、メニューから rxvt を起動しようとしたら、 メニューで選択した瞬間に、Window Maker が core を吐いて落ち、X も巻き 込まれました。 argo が落ちたときには、標準出力には SIGSEGV 11* segmentation violation si_signo [11]: SIGSEGV 11* segmentation violation si_errno [0]: 成功です si_code [0]: SI_USER [pid: 0, uid: 0] stackpointer=0x7e5ff3b4 Full thread dump Classic VM (Linux_JDK_1.2.2_FCS, native threads): "CritiquingThread" (TID:0x2b8d0750, sys_thread_t:0x8a9e4d0, state:CW, native ID:0x300d) prio=4 at java.lang.Thread.sleep(Native Method) at uci.argo.kernel.Designer.run(Designer.java, Compiled Code) at java.lang.Thread.run(Thread.java, Compiled Code) "Thread-1" (TID:0x2b8dc408, sys_thread_t:0x8053890, state:CW, native ID:0x400) prio=5 "TimerQueue" (TID:0x2b8e62f0, sys_thread_t:0x8a64c40, state:CW, native ID:0x280b) prio=5 at java.lang.Object.wait(Native Method) at javax.swing.TimerQueue.run(TimerQueue.java, Compiled Code) at java.lang.Thread.run(Thread.java, Compiled Code) "ValidityCheckingThread" (TID:0x2b910500, sys_thread_t:0x88604b8, state:CW, native ID:0x240a) prio=4 at java.lang.Thread.sleep(Native Method) at uci.argo.kernel.ToDoList.run(ToDoList.java, Compiled Code) at java.lang.Thread.run(Thread.java, Compiled Code) "Screen Updater" (TID:0x2b94fa68, sys_thread_t:0x2f514238, state:CW, native ID:0x2009) prio=4 at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java, Compiled Code) at sun.awt.ScreenUpdater.nextEntry(ScreenUpdater.java, Compiled Code) at sun.awt.ScreenUpdater.run(ScreenUpdater.java, Compiled Code) "AWT-Motif" (TID:0x2b92b488, sys_thread_t:0x8444860, state:R, native ID:0x1807) prio=5 at sun.awt.motif.MToolkit.run(Native Method) at java.lang.Thread.run(Thread.java, Compiled Code) "SunToolkit.PostEventQueue-0" (TID:0x2b92be10, sys_thread_t:0x83890f0, state:CW, native ID:0x1406) prio=5 at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java, Compiled Code) at sun.awt.PostEventQueue.run(SunToolkit.java, Compiled Code) "AWT-EventQueue-0" (TID:0x2b92bdc0, sys_thread_t:0x840e9d8, state:R, native ID:0x1005) prio=6 at java.lang.System.arraycopy(Native Method) at java.lang.String.getChars(String.java, Compiled Code) at java.io.BufferedWriter.write(BufferedWriter.java, Compiled Code) at java.io.Writer.write(Writer.java, Compiled Code) at java.io.PrintStream.write(PrintStream.java, Compiled Code) at java.io.PrintStream.print(PrintStream.java, Compiled Code) at java.io.PrintStream.println(PrintStream.java, Compiled Code) at java.awt.EventDispatchThread.pumpOneEventForComponent(EventDispatchThread.java, Compiled Code) at java.awt.EventDispatchThread.pumpEventsForComponent(EventDispatchThread.java, Compiled Code) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java, Compiled Code) at java.awt.EventDispatchThread.run(EventDispatchThread.java, Compiled Code) "Finalizer" (TID:0x2b927320, sys_thread_t:0x80d6380, state:CW, native ID:0xc04) prio=8 at java.lang.Object.wait(Native Method) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java, Compiled Code) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java, Compiled Code) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:174) "Reference Handler" (TID:0x2b9273b0, sys_thread_t:0x80d1178, state:CW, native ID:0x803) prio=10 at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java, Compiled Code) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:114) "SIGQUIT handler" (TID:0x2b9273e0, sys_thread_t:0x80d0b08, state:R, native ID:0x402) prio=5 Monitor Cache Dump: java.lang.ref.Reference$Lock _at_ 2B9273C0/2B95C890: <unowned> Waiting to be notified: "Reference Handler" (0x80d1178) java.lang.ref.ReferenceQueue$Lock _at_ 2B927338/2B95CD60: <unowned> Waiting to be notified: "Finalizer" (0x80d6380) javax.swing.TimerQueue _at_ 2B8E6578/2BBD70F8: <unowned> Waiting to be notified: "TimerQueue" (0x8a64c40) sun.awt.PostEventQueue _at_ 2B92BE10/2BA28898: <unowned> Waiting to be notified: "SunToolkit.PostEventQueue-0" (0x83890f0) sun.awt.ScreenUpdater _at_ 2B94FA68/2BA4A0F0: <unowned> Waiting to be notified: "Screen Updater" (0x2f514238) java.io.PrintStream _at_ 2B92C298/2B991D18: owner "AWT-EventQueue-0" (0x840e9d8) 2 entries java.io.OutputStreamWriter _at_ 2B92C280/2B991DD0: owner "AWT-EventQueue-0" (0x840e9d8) 1 entry Registered Monitor Dump: PCMap lock: <unowned> utf8 hash table: <unowned> JNI pinning lock: <unowned> JNI global reference lock: <unowned> BinClass lock: <unowned> Class linking lock: <unowned> System class loader lock: <unowned> Code rewrite lock: <unowned> Heap lock: <unowned> Monitor cache lock: owner "TimerQueue" (0x8a64c40) 1 entry Thread queue lock: owner "TimerQueue" (0x8a64c40) 1 entry Waiting to be notified: "Thread-1" (0x8053890) Monitor registry: owner "TimerQueue" (0x8a64c40) 1 entry Exception occurred during event dispatching: java.lang.IllegalMonitorStateException: current thread not owner at javax.swing.TimerQueue.addTimer(TimerQueue.java, Compiled Code) というメッセージが出ました。関係があるかどうかは分かりませんが、X が再 び立ち上がったあとに、吐かれた core を gdb でバックトレースすると、 (gdb) core-file core Core was generated by `/usr/X11R6/bin/wmaker'. Program terminated with signal 11, セグメンテーション違反です. #0 0x2aca8d59 in ?? () (gdb) file /usr/X11R6/bin/wmaker Reading symbols from /usr/X11R6/bin/wmaker...(no debugging symbols found)... done. (gdb) core-file core Core was generated by `/usr/X11R6/bin/wmaker'. Program terminated with signal 11, セグメンテーション違反です. Reading symbols from /usr/X11R6/lib/libwraster.so.1... (no debugging symbols found)...done. Reading symbols from /usr/lib/libPropList.so.0... (no debugging symbols found)...done. Reading symbols from /usr/lib/libtiff.so.3...(no debugging symbols found)... done. Reading symbols from /usr/X11R6/lib/libXpm.so.4... (no debugging symbols found)...done. Reading symbols from /usr/lib/libpng.so.2...(no debugging symbols found)... done. Reading symbols from /usr/lib/libz.so.1...(no debugging symbols found)...done. Reading symbols from /usr/lib/libjpeg.so.62...(no debugging symbols found)... done. Reading symbols from /usr/lib/libungif.so.4...(no debugging symbols found)... done. Reading symbols from /usr/X11R6/lib/libXext.so.6... (no debugging symbols found)...done. Reading symbols from /usr/X11R6/lib/libX11.so.6... (no debugging symbols found)...done. Reading symbols from /lib/libdl.so.2...done. Reading symbols from /lib/libm.so.6...done. Reading symbols from /lib/libc.so.6...done. Reading symbols from /lib/ld-linux.so.2...done. Reading symbols from /usr/lib/gconv/EUC-JP.so...done. Reading symbols from /usr/lib/gconv/libJIS.so...done. #0 chunk_alloc (ar_ptr=0x2ad3d7a0, nb=1344) at malloc.c:2758 2758 malloc.c: そのようなファイルやディレクトリはありません. (gdb) bt #0 chunk_alloc (ar_ptr=0x2ad3d7a0, nb=1344) at malloc.c:2758 #1 0x2acaa2c4 in __libc_calloc (n=1, elem_size=1336) at malloc.c:3618 #2 0x2abb0d48 in XOpenDisplay () from /usr/X11R6/lib/libX11.so.6 #3 0x808438d in XMapRaised () #4 0x2ac6e428 in __restore () at ../sysdeps/unix/sysv/linux/i386/sigaction.c:127 #5 0x2aca94c5 in __libc_free (mem=0x818a708) at malloc.c:2967 #6 0x80839ac in XMapRaised () #7 0x8083e2e in XMapRaised () #8 0x806767d in XMapRaised () #9 0x808bdee in XMapRaised () #10 0x8065b24 in XMapRaised () #11 0x8065796 in XMapRaised () #12 0x809aae1 in XMapRaised () #13 0x8065862 in XMapRaised () #14 0x806fd2d in XMapRaised () #15 0x2ac681fb in __libc_start_main (main=0x806f5a0 <XMapRaised+137064>, argc=1, argv=0x7ffffb24, init=0x804c738 <_init>, fini=0x80a81dc <_fini>, rtld_fini=0x2aab5600 <_dl_fini>, stack_end=0x7ffffb1c) at ../sysdeps/generic/libc-start.c:90 という出力が得られましたが、意味までは私には分かりません…。 これまで Window Maker がこのように落ちたことはなかったので、jdk のバグ のような気がしてならないのですが、再現はできませんでした。 >これを元に、IPA が作っている CASE ツールがあります。 > http://www.iioss.org/ >これを試してみようとしているところです。 こちらは、ダウンロードを何処からすればいいのか分からず、試せませんでし た。 >できれば比較調査をしてみたいと思っているのですが、なかなか時間が >作れなくて。。。 >皆さんの使用した感想など、教えて頂けるとありがたいです。 …全然参考になってなる話を提供できず、申し訳ございません。 On Wed, Aug 02, 2000 at 02:24:53AM +0900, in <20000801172451.21616 _at_ sam.hi-ho.ne.jp>, "Hiroaki OE (大江弘晃)" <hiro-o _at_ sam.hi-ho.ne.jp> wrote: >MagicDraw UML なるものがあります。 >unix用とwindows用があります。 >http://www.nomagic.com/magicdrawuml/ > >前のバージョンのdemo版は制限なく使えていますが、 >つい最近アップグレードされた新しいものについては不明です。 >(旧バージョン3.5もダウンロードできます。) 新しいバージョンについては、12月1日までの試用版が入手可能ですね。 ただ、実装メモリが最低でも 256MB は無いとつらいと思います。 このマシンは 64MB Memory & 128MB Swap なのですが、食い潰されました。 音に聞きし、8MB Memory で Windows 95 を使うのと同じくらいの遅さかと思 います。ファイルをセーブしようとしたら、5分くらい沈黙し、Window Maker のワークグループの移動に30秒近くかかる状態が続いたので、頭に来て Alt-Ctrl-BS してしまいました…。 # Netscape Communicator や emacs がかわいく見えました…。 On Tue, Aug 01, 2000 at 11:49:40PM +0900, in <20000801235109V.dj990062 _at_ djedu.kit.ac.jp>, Norio Taniguchi <dj990062 _at_ djedu.kit.ac.jp> wrote: >> という点で、どうも使い勝手が悪いような気がします。また、保存するのに >> obj という独自形式でしか出力する方法が分からず、 > >印刷/出力フォーマットで選んで→印刷でしょうか。 これで出来ました。 png に変換する場合、ps に落としたうえで convert コマンドを使った方がキ レイになりました。 -- 大森保英 / かずさのすけ。
Follow-Ups:
- [linux-users:72614] Re: クラス図を書くのに何を使います?Keiji Matsuzono
- [linux-users:72047] クラス図を書くのに何を使います?Yasuhide OOMORI / 大森保英
- Prev by Subject: [linux-users:72580] Re: VFAT使用時のファイル名について
- Next by Subject: [linux-users:72582] Re: パスワードを要求され、メールが受信出来ない。
- Previous by thread: [linux-users:72062] Re: クラス図を書くのに何を使います?
- Next by thread: [linux-users:72614] Re: クラス図を書くのに何を使います?
- Indexes:[Main][Thread]