2015-03-15-01-SVGのUMLツールを - 7 - project-enigma

2015-03-15-01-SVGのUMLツールを - 7

>> Site top >> weblog >> 月別アーカイブ >> 2015年03月のlog >> 2015-03-15-01-SVGのUMLツールを - 7

最終更新日付:2015/03/15 18:00:00


SVGのUMLツールを - 7

2015 年 03 月 15 日

というわけで、この話題については2ヶ月以上何も書いてこなかったが、SVG ツールは絶賛開発中。頑張り過ぎててここに何も書く余裕がなかっただけだ。

で、どうなっているかというと、クラス図であれば以下のような記述ができるところまできている。

ERROR : Invalid CL-SVG data.

 

で、上記の図をこのページにインプレースで表示するために記述しているコードは以下のような感じだ。これを多いと見るか少ないと見るかは意見が分かれるかもしれない。

(load-stencil :grid)
(load-stencil :uml-class)
(load-stencil :uml-association)
(load-stencil :uml-implementation)
(load-stencil :uml-dependency)
(create-svg (:width 600 :height 400 :encoding :utf8)
    (grid)
    (let ((*default-fill*   :white)
          (*default-font*   (font :family "Courier New" :size 11 :width-spice 0.85))
          (*default-stroke* (stroke :color :black :width 1)))
      (uml-class :entity 150 100 :id :entity :abstract t
                 :attributes (:m-canvas :m-id :m-layer)
                 :operations
                 ((:public :entity         :params (:layer :id))
                  (:public :check          :params (:canvas :dict))
                  (:public :write-header   :params (:writer))
                  (:public :begin-id-group :params (:writer))
                  (:public :end-id-group   :params (:writer))
                  (:public :draw           :params (:writer) :abstract t)))
      (uml-class :canvas entity[center] (+ entity[middle] 200) :id :canvas
                 :attributes (:m-top :m-bottom :m-left :m-right)
                 :operations ((:public :canvas-data :params ("..."))
                              (:public :canvas-data :params (:entity))))
      (uml-class :svg-writer (+ entity[center] 300) entity[middle]
                 :id :writer :keyword :interface
                 :operations ((:public :write :params (:args))
                               :incr-level :decr-level :close))
      (uml-class :svg-buffer-writer writer[center] (+ writer[middle] 150) :id :buf-writer)
      (uml-dependency  :entity :writer)
      (uml-association :entity :canvas :arrows 1)
      (uml-implementation :buf-writer :writer)))

 

それはそれとして、現状では大体以下の UML 要素の表記ができるようになっている(用語の使い方として古いかもしれない)。

つまり、まだステートチャート図も書けないし配置図も書けない。相互作用図は全滅だな。あと、上記についても「パッケージを大きく描画して内部にクラスを書く」とかができない。これは目下のところ取り組み中の課題だ。関連についても、端点近くに多重度を書く機能がまだ欠けている。要するに、まだまだやることが沢山あるということだ。頑張れ自分。

 

コメント

このページにコメントする

 

このページのタグ

Page tag : CL-SVG

 

 


Copyright(C) 2005-2017 project-enigma.
Generated by CL-PREFAB.