UMLGraph allows the declarative specification and drawing ofUML class and sequence diagrams.The current featuresare part of an ongoing effort aiming to provide support forall types UML diagrams.An
IEEE Software article titled
On the declarative specification of modelsexplains the rationale behind this approach.The tehnology behind UMLGraph was used to draw many of the diagramsappearing in the award-winning books
Code Quality: The Open Source Perspective (Addison Wesley, 2006) and
Code Reading: The Open Source Perspective (Addison Wesley, 2003).In addition,the
UMLGraphDoc doclet included in this distribution automaticallyadds UML diagrams to javadoc documentation.
Many programs build on UMLGraph; follow this linkfor more details.In addition,Martin Fowler, the author ofUML Distilled, writes:
I thought I'd send you a note saying how much I enjoyed discovering UML Graph.I've long fancied a text based way of describing UML diagrams,but never felt sufficiently time-rich to develop anything.
Class Diagrams
One specifies a class diagram using the Java syntax complemented by javadoctags.Running the UmlGraph doclet on the specification will generatea Graphvizdiagram specification that can be automatically processed tocreate Postscript, GIF, SVG, JPEG, fig, or Framemaker drawings.The following is an example of a class diagram specification and the resulting UMLdiagram:
class Person {
String Name;
}
class Employee extends Person {}
class Client extends Person {}
| ![]() |
Sequence Diagrams
One specifies a sequence diagram using pic macros to defineobjects and method invocations.The GNU plotutils pic2plot program can then process the sequence diagram to create aPNG, PNM, (pseudo)GIF, SVG, AI, Postscript, CGM, FIG, PCL, HPGL, Regis, or TEKdrawing.The following is an example of a sequence diagram specification and theresulting UML diagram:
# Define the objects object(O,"o:Toolkit"); placeholder_object(P); step(); # Activation and messages active(O); message(O,O,"callbackLoop()"); create_message(O,P,"p:Peer"); message(O,P,"handleExpose()"); active(P); return_message(P,O,""); inactive(P); destroy_message(O,P); inactive(O); # Complete the lifeline of O step(); complete(O); | ![]() |
UMLGraph提供了一种声明性方式来规格说明和绘制UML类和序列图。其特性旨在支持所有类型的UML图表,并通过IEEESoftware文章解释了这种方法背后的原理。UMLGraph技术被用于生成多个获奖书籍《CodeQuality》和《CodeReading》中的图表,并自动添加UML图表到文档中。该工具还允许用户通过Java语法和javadoctags来定义类图,使用GNUplot的pic宏定义对象和方法调用。


1590

被折叠的 条评论
为什么被折叠?



