{"id":6965,"date":"2022-08-10T15:12:28","date_gmt":"2022-08-10T13:12:28","guid":{"rendered":"https:\/\/blue.pri.ee\/ttu\/?page_id=6965"},"modified":"2022-08-22T18:39:11","modified_gmt":"2022-08-22T16:39:11","slug":"uml-naide-wd40","status":"publish","type":"page","link":"https:\/\/blue.pri.ee\/ttu\/ressursid\/sissejuhatus-algoritmidesse-ja-umli\/uml-naide-wd40\/","title":{"rendered":"UML n\u00e4ide: WD40"},"content":{"rendered":"<p>Selle n\u00e4ite raames transleerime klassikalise t\u00f6\u00f6vooskeemi korrektseks UML tegevusdiagrammiks. Esmalt alusta sellest, et tutvud pakutava skeemiga ning leiad \u00fcles k\u00f5ik 4 v\u00f5imalikku tulemust.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full\" src=\"https:\/\/blue.pri.ee\/ttu\/files\/Prog1\/engineering_flowchart.jpg\" width=\"604\" height=\"446\" \/><\/p>\n<p>Kuna tegu on juba t\u00f6\u00f6voogu kirjeldava skeemiga, siis saame kohe alustada olemasolevate komponentide asendamist standardiseeritud UMLi m\u00e4rgenditega.<\/p>\n<p><strong>M\u00f5tle skeemi vaadates l\u00e4bi j\u00e4rgmised asjad:<\/strong><\/p>\n<ul>\n<li><strong>Kus asetsevad tingimused?<\/strong> Tegu v\u00f5ib olla n\u00e4iteks k\u00fcsimustega, millele saab vastata jah v\u00f5i ei. Vaste <em>UML decision node.<\/em><\/li>\n<li>Millised neist on tegevused?\u00a0 Vaste <em>UML action statement.<\/em><\/li>\n<li>Kus asub skeemi alguspunkt? Vaste\u00a0<em>UML start node.<\/em><\/li>\n<li>Kus asub l\u00f5pp-punkt? Kas neid v\u00f5ib olla mitu? Vaste <em>UML end node.<\/em><\/li>\n<li>M\u00f5tle l\u00e4bi mida <strong>ei ole vaja<\/strong> UML tegevusdiagrammile panna! N\u00e4iteks tegevuste mitte tegemine &#8211; kui mida ei tehta, siis ei eksisteeri ka tegevust kui sellist.<\/li>\n<\/ul>\n<p><span style=\"color: #ff0000;\"><strong>Soovitus: enne edasi minekut, joonista valmis enda versioon skeemist ja siis v\u00f5rdle enda tulemust meie pakutuga.<\/strong><\/span><\/p>\n<p>Olgu \u00f6eldud, et seda UML tegevusdiagrammina on siin mitu erinevat lahendust. Enne korrektsete lahenduste n\u00e4itamist vaatame \u00fcle ja selgitame l\u00e4bi m\u00f5ned t\u00fc\u00fcpilised vead.<\/p>\n<h3>Sagedased vead<\/h3>\n<p>Enne lahenduse vaatamist veendu, et ei teinud \u00fchtegi j\u00e4rgnevatest vigadest.<\/p>\n<ul>\n<li>Vastused &#8220;Yes&#8221; ja &#8220;No&#8221;\u00a0<strong>ei ole tegevused.\u00a0<\/strong>Tegevuskasti (<em>action state<\/em>) saame paigutada tegevusi (vastab k\u00fcsimusele <strong>mida teeb?<\/strong>). Need on vastused k\u00fcsimustele, mille alusel otsustatakse hargnemine.<\/li>\n<li>Puuduv koondumine &#8211; Kui mitu voogu \u00fcheks koonduvad tuleb need liita kasutades elementi\u00a0<em>merge node. Merge node<\/em> puudumisel saab kasutada ka elementi\u00a0<em>decision node<\/em>.\u00a0<strong>Kindlasti ei tohi kasutada\u00a0<em>join node&#8217;i.<\/em>\u00a0<\/strong> Seda tohib kasutada vaid paralleeltegevuste s\u00fcnkroniseerimiseks.<\/li>\n<\/ul>\n<h3>Lahendus<\/h3>\n<p>J\u00e4rgnevalt pakun v\u00e4lja \u00fche v\u00f5imalikest korrektsetest lahendustest.<\/p>\n<p><a href=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/08\/ducttape.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-7014 size-full\" src=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/08\/ducttape.png\" alt=\"\" width=\"803\" height=\"682\" srcset=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/08\/ducttape.png 803w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/08\/ducttape-300x255.png 300w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/08\/ducttape-768x652.png 768w\" sizes=\"auto, (max-width: 803px) 100vw, 803px\" \/><\/a><\/p>\n<h3>Variatsioonid<\/h3>\n<p>Nagu oli \u00f6eldud, siis sellel algoritmil on mitmeid erinevaid korrektseid lahendusi. Toon v\u00e4lja m\u00f5ned v\u00f5imalikud muudatused<\/p>\n<ul>\n<li>Algoritmil v\u00f5ib olla 3 erinevat l\u00f5ppu &#8211; \u00fcks, kus ei tehta midagi, teine kus kasutatakse WD40 ning kolmas, kus kasutatakse teipi. Kusjuures l\u00f5pule, mille puhul ei tehta midagi, peab eelnema koondumine. Oluline on\u00a0k\u00f5ik l\u00f5pud kommenteerida n\u00e4itamaks miks on \u00fcks l\u00f5pp erinev teisest (nt l\u00f5pu kommentaar: &#8220;Objekti liikuma saamiseks kasutati WD40).<\/li>\n<li>K\u00fcsimused nagu &#8220;<em>Does it move?<\/em>&#8221; jt ei asu kommentaarikastides, vaid on asendatud otseste vastustena noolte <em>(control flow) peal.<\/em> N\u00e4iteks esimese hargnemise puhul oleksid nooltel v\u00e4ited &#8220;<em>The object moves<\/em>&#8221; ja &#8220;<em>The object does not move<\/em>&#8220;.<br \/>\n<a href=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/08\/Visual_Paradigm_mITyUTfPGl.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-6980 size-medium\" src=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/08\/Visual_Paradigm_mITyUTfPGl-300x159.png\" alt=\"\" width=\"300\" height=\"159\" srcset=\"https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/08\/Visual_Paradigm_mITyUTfPGl-300x159.png 300w, https:\/\/blue.pri.ee\/ttu\/wp-content\/uploads\/2022\/08\/Visual_Paradigm_mITyUTfPGl.png 520w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/li>\n<li>K\u00fcsimused v\u00f5ivad olla t\u00e4iendavalt tegevusena v\u00e4lja toodud &#8211; nt &#8220;Ask if the object moves&#8221;. Sellise k\u00fcsimuse esitamine tegevusena ei t\u00e4henda, et seda tohib tingimuse osast eemaldada! Tegu t\u00e4iendava lisana skeemile, mis pakutud lahenduses on v\u00e4lja v\u00f5etud kui liiasus.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Selle n\u00e4ite raames transleerime klassikalise t\u00f6\u00f6vooskeemi korrektseks UML tegevusdiagrammiks. Esmalt alusta sellest, et tutvud pakutava skeemiga ning leiad \u00fcles k\u00f5ik 4 v\u00f5imalikku tulemust. Kuna tegu on juba t\u00f6\u00f6voogu kirjeldava skeemiga, siis saame kohe alustada olemasolevate komponentide asendamist standardiseeritud UMLi m\u00e4rgenditega. M\u00f5tle skeemi vaadates l\u00e4bi j\u00e4rgmised asjad: Kus asetsevad tingimused? Tegu v\u00f5ib olla n\u00e4iteks k\u00fcsimustega, millele &hellip; <a href=\"https:\/\/blue.pri.ee\/ttu\/ressursid\/sissejuhatus-algoritmidesse-ja-umli\/uml-naide-wd40\/\" class=\"more-link\">Loe edasi <span class=\"screen-reader-text\">UML n\u00e4ide: WD40<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":1248,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-templates\/code-width-wide.php","meta":{"footnotes":""},"class_list":["post-6965","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/6965","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/comments?post=6965"}],"version-history":[{"count":0,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/6965\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/pages\/1248"}],"wp:attachment":[{"href":"https:\/\/blue.pri.ee\/ttu\/wp-json\/wp\/v2\/media?parent=6965"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}