UML设计工具

十年前要画个Class Diagram,除了Rational Rose,together之类工具之外又少有其它选择。现在不一样了,画图既是编程。用简单的文本就可以做出复杂的UML。这个工具就是plantuml。它是一个Java实现的工具,依赖于graphviz。可以和vim,Idea,wiki, confluence,redmine等一堆工具集成。当然也可以在线使用:

http://www.planttext.com/planttext

 

@startuml

package Promotion #DDDDDD {

  class Commit {
    +commit_id: String
    +backout_commit_id: String
    +sequence: int
    +affected_revisions: String
    +merge_commit: String
    +backout_commit: boolean
    +author: String
    +author_date: Date
    +subject: String
    +selected: boolean
    +ticket_no: String
    +new()
    +identify_overlap()
    +get_overlap()
    +get_dep_commits()
    +get_overlap_files_with()
    +add_file()
    +get_files()
    +set_body()
    +get_short_id()
    -property()
  }

  class ChangesetManager {
      +target_branch
      +source_branch
      +development_branch
      +pre_execute()
      +handle_error()
      +query_commits()
      +get_change_list_for()
      +merge_change_list()
      +mark_selected_tickets()
      +get_commits_by_ticket()
      +find_invalid_tickets()
      +report_backout_deps()
      +report_ancestry_deps()
      +report_deps()
      +report_change_list()
      +get_revisions_by_commits()
      +save_change_list()
      +validate_workspace_clean()
      +synchronize_environment()
      -run_cr_cmd()
      -exclude_backout_commits()
      -populate_changeset()
      -merge_change_type()
      -build_bof_cmd()
      -gen_cr_cmd()
      -validate_and_set_target_branch()
  }

  class PromoteManager {
      +promotion_path
      -promote_revisions
      -promote_commits
      -promote_eligible
      +get_activity_type()
      +pre_execute()
      +do_execute()
      +handle_error()
      +run_promote()
      +get_lower_branches_for()
      +get_lower_branch_for()
      +get_upper_branch_for()
      +validate_and_set_promotion_path()
      +get_promote_path()
      +fetch_unmerged_commits()
      +check_ancestry_deps()
      -validate_and_set_source_branch()
      -validate_partial_promotion()
      -sync_preceding_branches()
      -sync_branch_with_central()
      -report_partial_promotion()
  }

  class BackoutManager {
      -backout_revisions
      -backout_commits
      -backout_eligible
      +pre_execute()
      +handle_error()
      +do_execute()
      +run_backout_revert()
      +run_backout_rebase()
      +fetch_backout_eligible()
      +check_backout_deps()
      +get_activity_type()
      -gen_rebase_i_cmd()
  }

  class CompileManager {
    +compile()
    +update_metadata()
    +deploy_rcode()
    +compile_all()
  }

  class DevCompileManager {
    +compile()
    +update_metadata()
    +deploy_rcode()
    +compile_all()
  }

  class RmCompileManager {
    +compile()
    +update_metadata()
    +deploy_rcode()
    +compile_all()
  }

  class HotfixPromoteManager {
    +get+promote_path()
  }

  BaseManager      <|-right- BaseVcsManager
  BaseManager      <|-- CompileManager
  BaseVcsManager   <|-- ChangesetManager
  Commit           <-right- ChangesetManager
  ChangesetManager <|-right- PromoteManager
  ChangesetManager <|-- BackoutManager
  PromoteManager   <|-- HotfixPromoteManager
  ChangesetManager o-left-  CompileManager
  CompileManager   <|-- DevCompileManager
  CompileManager   <|-- RmCompileManager
}

@enduml

 这是一个中度复杂的Class Diagram。可以尝试用这个在线编辑器看看是不是能得到以下结果:


UML设计工具_第1张图片
 

你可能感兴趣的:(plantuml)