{"id":783,"date":"2006-11-10T23:32:32","date_gmt":"2006-11-10T23:32:32","guid":{"rendered":"http:\/\/software.sil.org\/wesay\/?p=783"},"modified":"2017-04-26T23:39:32","modified_gmt":"2017-04-26T23:39:32","slug":"a-little-uml","status":"publish","type":"post","link":"https:\/\/software.sil.org\/wesay\/a-little-uml\/","title":{"rendered":"A Little UML"},"content":{"rendered":"<p>WeSay has never claimed (or intended) to do \u201c<a href=\"http:\/\/www.extremeprogramming.org\/\" title=\"\" class=\"external\" target=\"_blank\" rel=\"noopener\">Extreme Programming<\/a>\u201c. While we are into the goals of <a href=\"http:\/\/agilemanifesto.org\/\" title=\"\" class=\"external\" target=\"_blank\" rel=\"noopener\">Agile processes<\/a>, we know that one size doesn\u2019t fit all. For example, we are doing a fair bit of <a href=\"http:\/\/www.agiledata.org\/essays\/tdd.html\" title=\"\" class=\"external\" target=\"_blank\" rel=\"noopener\">Test-Driven development<\/a>, but we rarely pair and unfortunately don\u2019t have an on-site customer. We often design with <a href=\"http:\/\/c2.com\/cgi\/wiki?CrcCard\" title=\"\" class=\"external\" target=\"_blank\" rel=\"noopener\">CRC Cards<\/a>, but we value high-level documentation to help developers understand the system.<\/p>\n<p>I\u2019ve started reading <a href=\"http:\/\/www.amazon.com\/Extreme-Programming-Refactored-Case-Against\/dp\/1590590961\" title=\"\" class=\"external\" target=\"_blank\" rel=\"noopener\">XP Refactored: The case against XP<\/a> and though there isn\u2019t much new in there, it has inspired me to get some diagrams of our design \u201cout there\u201d.<\/p>\n<p>Alas, I haven\u2019t been able to find any free <a href=\"http:\/\/en.wikipedia.org\/wiki\/Unified_Modeling_Language\" title=\"\" class=\"external\" target=\"_blank\" rel=\"noopener\">UML<\/a> tools that I\u2019m remotely happy with. I tried the free \u201ccommunity editions\u201d from MagicDraw and Visual Paradigm, but these are so limited even a UML beginner like me can\u2019t get far. I think I could live without the automatic \u201creverse engineering\u201d of the free\/cheap versions, though that\u2019d be nice to have, if they had such basic things as XMI import\/export.<\/p>\n<p>Surprisingly, Visio 2007 beta 2 does a scandalous job of handling <a href=\"http:\/\/www.c-sharpcorner.com\/Language\/PropertiesInCSRVS.asp\" title=\"\" class=\"external\" target=\"_blank\" rel=\"noopener\">c#\u2019s properties<\/a>. It puts them in the operations section of the class diagram, and displays them as methods, complete with parentheses! Worse, it does not appear to have an XMI export option, so it feels like I\u2019m being locked in to a non-free, proprietary format.<\/p>\n<p>I tried using the build-in diagram feature in Visual Studio 2005, but it is tied to the actual code. But I want diagrams which convey what someone needs to know; if they want the actual facts and details, I expect them to read the code. For example, if I have a Lexicon which has a collection of, say, LexEntries, I want the diagram to show a composition line from Lexicon to LexEntry.  I don\u2019t want one from Lexicon to the actual collection class, such as <code>List&lt;LexEntry&gt;<\/code>. <a href=\"\/wp-content\/uploads\/sites\/35\/2017\/04\/image04.png\" rel=\"lightbox\"><br \/>\n<img decoding=\"async\" src=\"\/wp-content\/uploads\/sites\/35\/2017\/04\/image04.png\" alt=\"Lexicon to LexEntry diagram\" title=\"Lexicon to LexEntry diagram\" \/><br \/>\n<\/a><\/p>\n<p>Ah well, enough whining. For now, here\u2019s the result of my playing around with Visual Paradigm. I\u2019ve trimmed down the diagram to what I think someone wondering what we\u2019re doing would want to know.<\/p>\n<p>Here\u2019s the Lexical Model (click to get it full size): <a href=\"\/wp-content\/uploads\/sites\/35\/2017\/04\/lexical-model-uml4.png\" rel=\"lightbox\"><br \/>\n<img decoding=\"async\" src=\"\/wp-content\/uploads\/sites\/35\/2017\/04\/lexical-model-uml4.png\" alt=\"Lexical Model\" title=\"Lexical Model\" \/><br \/>\n<\/a><\/p>\n<p>And here\u2019s the view from the project: <a href=\"\/wp-content\/uploads\/sites\/35\/2017\/04\/project-uml2.png\" rel=\"lightbox\"><br \/>\n<img decoding=\"async\" src=\"\/wp-content\/uploads\/sites\/35\/2017\/04\/project-uml2.png\" alt=\"Project view\" title=\"Project view\" \/><br \/>\n<\/a><\/p>\n<p>Some major pieces that I haven\u2019t diagrammed are our data and UI layers. Does seeing these help anyone following this project? Please write and help us learn how much documentation is enough.<\/p>\n<div class=\"top border\"><a href=\"#top\">top<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>WeSay has never claimed (or intended) to do \u201cExtreme Programming\u201c. While we are into the goals of Agile processes, we know that one size doesn\u2019t fit all. For example, we are doing a fair bit of Test-Driven development, but we rarely pair and unfortunately don\u2019t have an on-site customer. We often design with CRC Cards, [&hellip;]<\/p>\n","protected":false},"author":26,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[10],"tags":[],"class_list":["post-783","post","type-post","status-publish","format-standard","hentry","category-news"],"acf":[],"_links":{"self":[{"href":"https:\/\/software.sil.org\/wesay\/wp-json\/wp\/v2\/posts\/783","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/software.sil.org\/wesay\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/software.sil.org\/wesay\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/software.sil.org\/wesay\/wp-json\/wp\/v2\/users\/26"}],"replies":[{"embeddable":true,"href":"https:\/\/software.sil.org\/wesay\/wp-json\/wp\/v2\/comments?post=783"}],"version-history":[{"count":3,"href":"https:\/\/software.sil.org\/wesay\/wp-json\/wp\/v2\/posts\/783\/revisions"}],"predecessor-version":[{"id":786,"href":"https:\/\/software.sil.org\/wesay\/wp-json\/wp\/v2\/posts\/783\/revisions\/786"}],"wp:attachment":[{"href":"https:\/\/software.sil.org\/wesay\/wp-json\/wp\/v2\/media?parent=783"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/software.sil.org\/wesay\/wp-json\/wp\/v2\/categories?post=783"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/software.sil.org\/wesay\/wp-json\/wp\/v2\/tags?post=783"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}