{"id":605,"date":"2010-01-20T20:57:14","date_gmt":"2010-01-20T12:57:14","guid":{"rendered":"http:\/\/www.andreanolanusse.com\/pt\/?p=605"},"modified":"2011-08-01T14:47:52","modified_gmt":"2011-08-01T06:47:52","slug":"melhorando-a-qualidade-do-seu-software-delphi-atraves-da-uml","status":"publish","type":"post","link":"http:\/\/www.andreanolanusse.com\/pt\/melhorando-a-qualidade-do-seu-software-delphi-atraves-da-uml\/","title":{"rendered":"Melhorando a qualidade do seu software Delphi atrav\u00e9s da UML"},"content":{"rendered":"<p>A qualidade que \u00e9 sempre solicitada no produto final, \u00e9 tamb\u00e9m requisito fundamental para o software, j\u00e1 que \u00e9 atrav\u00e9s dele que as estrat\u00e9gias de crescimento da empresa s\u00e3o sustentadas. Se voc\u00ea entrega um software que n\u00e3o tem qualidade pode comprometer o sucesso do seu cliente.<\/p>\n<p>Desde o Delphi 2006 podemos utilizar a UML com todos os seus diagramas e, al\u00e9m disso, a utiliza\u00e7\u00e3o do LiveSource, que permite sincroniza\u00e7\u00e3o entre diagrama de classe e c\u00f3digo.<\/p>\n<p>Cada diagrama na UML tem a sua representatividade, alguns representam modelos de neg\u00f3cios e, portanto, n\u00e3o faz sentido gerar c\u00f3digo a partir dele. Outros a representa\u00e7\u00e3o fiel do c\u00f3digo, por exemplo, o diagrama de classe. Abaixo, alguns dos diagramas dispon\u00edveis e suas funcionalidades.<\/p>\n<ul>\n<li>Use Case &#8211; \u00e9 uma forma de descrever a intera\u00e7\u00e3o entre um      sistema e o mundo real, sendo que os atores que podem ser pessoas ou sistemas,      representam o mundo real.<\/li>\n<li>Class Diagram &#8211; representa as classes do sistema e seus relacionamentos.<\/li>\n<li>Collaboration &#8211; utilizado para modelagem de aspectos din\u00e2micos de um sistema ou      subsistema.<\/li>\n<li>Activity &#8211; permite representar situa\u00e7\u00f5es din\u00e2micas atrav\u00e9s      de um fluxo, por meio dele ser\u00e1 poss\u00edvel representar o fluxo entre      objetos.<\/li>\n<li>Component &#8211; utilizada para modelagem de mais alto n\u00edvel, onde existam      estruturas complexas. Este diagrama ilustra peda\u00e7os de sistemas, controles embutidos etc.<\/li>\n<li>State &#8211; Especifica a seq\u00fc\u00eancia de eventos de um determinado objeto.<\/li>\n<\/ul>\n<p style=\"text-align: center;\"><a href=\"http:\/\/www.andreanolanusse.com\/pt\/wp-content\/uploads\/2010\/01\/UseCase.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-606\" title=\"Delphi - Use Case\" src=\"http:\/\/www.andreanolanusse.com\/pt\/wp-content\/uploads\/2010\/01\/UseCase-1024x819.jpg\" alt=\"\" width=\"583\" height=\"466\" \/><\/a>Diagrama de caso de uso<\/p>\n<p>Visualizar um diagrama de classes torna muito mais f\u00e1cil o entendimento sobre as classes nele existentes do que utilizar c\u00f3digo. Vejamos um exemplo do pr\u00f3prio Delphi: a unit Buttons.pas tem diversos componentes dentro dela como TBitBtn, TSpeedButton e outros. Imaginem entender 1946 linhas de c\u00f3digo para saber quais componentes e relacionamento existem entre eles. Atrav\u00e9s da engenharia reversa, fica muito f\u00e1cil de entender, veja a figura abaixo.<\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/www.andreanolanusse.com\/pt\/wp-content\/uploads\/2010\/01\/classdiagram.jpeg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-607\" title=\"Class Diagram\" src=\"http:\/\/www.andreanolanusse.com\/pt\/wp-content\/uploads\/2010\/01\/classdiagram-1024x819.jpg\" alt=\"\" width=\"547\" height=\"436\" \/><\/a>Diagrama de Classe<\/p>\n<p style=\"text-align: left;\">A engenharia reversa pode ser feita a qualquer momento a partir do c\u00f3digo Delphi, desta forma vemos que este recurso do Delphi auxilia e muito na evolu\u00e7\u00e3o e entendimento do c\u00f3digo, seja atual ou legado.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A qualidade que \u00e9 sempre solicitada no produto final, \u00e9 tamb\u00e9m requisito fundamental para o software, j\u00e1 que \u00e9 atrav\u00e9s dele que as estrat\u00e9gias de crescimento da empresa s\u00e3o sustentadas. Se voc\u00ea entrega um software que n\u00e3o tem qualidade pode comprometer o sucesso do seu cliente. Desde o Delphi 2006 podemos utilizar a UML com [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_s2mail":"","footnotes":""},"categories":[102],"tags":[181,41],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v16.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Melhorando a qualidade do seu software Delphi atrav\u00e9s da UML | Andreano Lanusse | Tecnologia e Desenvolvimento de Software<\/title>\n<meta name=\"description\" content=\"A qualidade que \u00e9 sempre solicitada no produto final, \u00e9 tamb\u00e9m requisito fundamental para o software, j\u00e1 que \u00e9 atrav\u00e9s dele que as estrat\u00e9gias de\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/www.andreanolanusse.com\/pt\/melhorando-a-qualidade-do-seu-software-delphi-atraves-da-uml\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Melhorando a qualidade do seu software Delphi atrav\u00e9s da UML | Andreano Lanusse | Tecnologia e Desenvolvimento de Software\" \/>\n<meta property=\"og:description\" content=\"A qualidade que \u00e9 sempre solicitada no produto final, \u00e9 tamb\u00e9m requisito fundamental para o software, j\u00e1 que \u00e9 atrav\u00e9s dele que as estrat\u00e9gias de\" \/>\n<meta property=\"og:url\" content=\"http:\/\/www.andreanolanusse.com\/pt\/melhorando-a-qualidade-do-seu-software-delphi-atraves-da-uml\/\" \/>\n<meta property=\"og:site_name\" content=\"Andreano Lanusse | Tecnologia e Desenvolvimento de Software\" \/>\n<meta property=\"article:published_time\" content=\"2010-01-20T12:57:14+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2011-08-01T06:47:52+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.andreanolanusse.com\/pt\/wp-content\/uploads\/2010\/01\/UseCase-1024x819.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@andreanolanusse\" \/>\n<meta name=\"twitter:site\" content=\"@andreanolanusse\" \/>\n<meta name=\"twitter:label1\" content=\"Est. tempo de leitura\">\n\t<meta name=\"twitter:data1\" content=\"2 minutos\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/#website\",\"url\":\"http:\/\/www.andreanolanusse.com\/pt\/\",\"name\":\"Andreano Lanusse | Tecnologia e Desenvolvimento de Software\",\"description\":\"Andreano Lanusse blog - artigos, tutoriais e v&iacute;deos sobre tecnologia, desenvolvimento de software (Delphi XE4, C#, PHP, .NET) e t&eacute;cnicas de programa&ccedil;&atilde;o\",\"publisher\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/#\/schema\/person\/620bd05e81598c3aba4781796cbe8903\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"http:\/\/www.andreanolanusse.com\/pt\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"ImageObject\",\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/melhorando-a-qualidade-do-seu-software-delphi-atraves-da-uml\/#primaryimage\",\"inLanguage\":\"pt-BR\",\"url\":\"http:\/\/www.andreanolanusse.com\/pt\/wp-content\/uploads\/2010\/01\/UseCase.jpg\",\"contentUrl\":\"http:\/\/www.andreanolanusse.com\/pt\/wp-content\/uploads\/2010\/01\/UseCase.jpg\",\"width\":1280,\"height\":1024},{\"@type\":\"WebPage\",\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/melhorando-a-qualidade-do-seu-software-delphi-atraves-da-uml\/#webpage\",\"url\":\"http:\/\/www.andreanolanusse.com\/pt\/melhorando-a-qualidade-do-seu-software-delphi-atraves-da-uml\/\",\"name\":\"Melhorando a qualidade do seu software Delphi atrav\\u00e9s da UML | Andreano Lanusse | Tecnologia e Desenvolvimento de Software\",\"isPartOf\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/#website\"},\"primaryImageOfPage\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/melhorando-a-qualidade-do-seu-software-delphi-atraves-da-uml\/#primaryimage\"},\"datePublished\":\"2010-01-20T12:57:14+00:00\",\"dateModified\":\"2011-08-01T06:47:52+00:00\",\"description\":\"A qualidade que \\u00e9 sempre solicitada no produto final, \\u00e9 tamb\\u00e9m requisito fundamental para o software, j\\u00e1 que \\u00e9 atrav\\u00e9s dele que as estrat\\u00e9gias de\",\"breadcrumb\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/melhorando-a-qualidade-do-seu-software-delphi-atraves-da-uml\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/www.andreanolanusse.com\/pt\/melhorando-a-qualidade-do-seu-software-delphi-atraves-da-uml\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/melhorando-a-qualidade-do-seu-software-delphi-atraves-da-uml\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/\",\"url\":\"http:\/\/www.andreanolanusse.com\/pt\/\",\"name\":\"In\\u00edcio\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/melhorando-a-qualidade-do-seu-software-delphi-atraves-da-uml\/#webpage\"}}]},{\"@type\":\"Article\",\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/melhorando-a-qualidade-do-seu-software-delphi-atraves-da-uml\/#article\",\"isPartOf\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/melhorando-a-qualidade-do-seu-software-delphi-atraves-da-uml\/#webpage\"},\"author\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/#\/schema\/person\/620bd05e81598c3aba4781796cbe8903\"},\"headline\":\"Melhorando a qualidade do seu software Delphi atrav\\u00e9s da UML\",\"datePublished\":\"2010-01-20T12:57:14+00:00\",\"dateModified\":\"2011-08-01T06:47:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/melhorando-a-qualidade-do-seu-software-delphi-atraves-da-uml\/#webpage\"},\"commentCount\":4,\"publisher\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/#\/schema\/person\/620bd05e81598c3aba4781796cbe8903\"},\"image\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/melhorando-a-qualidade-do-seu-software-delphi-atraves-da-uml\/#primaryimage\"},\"keywords\":[\"Delphi\",\"UML\"],\"articleSection\":[\"Delphi\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"http:\/\/www.andreanolanusse.com\/pt\/melhorando-a-qualidade-do-seu-software-delphi-atraves-da-uml\/#respond\"]}]},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/#\/schema\/person\/620bd05e81598c3aba4781796cbe8903\",\"name\":\"Andreano Lanusse\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/#personlogo\",\"inLanguage\":\"pt-BR\",\"url\":\"http:\/\/0.gravatar.com\/avatar\/6a9c6f73c7c480fb826c7303288abfd3?s=96&d=mm&r=g\",\"contentUrl\":\"http:\/\/0.gravatar.com\/avatar\/6a9c6f73c7c480fb826c7303288abfd3?s=96&d=mm&r=g\",\"caption\":\"Andreano Lanusse\"},\"logo\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/#personlogo\"},\"sameAs\":[\"https:\/\/twitter.com\/andreanolanusse\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/posts\/605"}],"collection":[{"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/comments?post=605"}],"version-history":[{"count":0,"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/posts\/605\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/media?parent=605"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/categories?post=605"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/tags?post=605"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}