De que se trata o artigo

Este artigo tem por finalidade apresentar um overview dos recursos oferecidos pelo IDE do Delphi XE para a modelagem de projetos UML, mais especificamente de seus diagramas. A partir de uma visão geral, o desenvolvedor Delphi se sentirá confortável em usufruir de tais recursos, por exemplo, em projetos orientados a objetos e outras situações cabíveis à construção de diagramas UML. Dessa forma, não será necessária a busca e consequente utilização de ferramentas de terceiros para a construção destes.

Em que situação o tema é útil

Em termos teóricos, a UML (Unified Modeling Language) apresenta-se como uma linguagem visual para a modelagem de sistemas computacionais por meio do paradigma da Orientação a Objetos, tendo como objetivo documentar, estruturar e especificar melhor o seu desenvolvimento. Por estes motivos, ao passar dos anos acabou se tornando uma linguagem padrão de modelagem de software, sendo adotada mundialmente pela indústria de Engenharia de Software. O suporte à modelagem UML oferecido pelo IDE do Delphi XE, apesar de não se tratar de uma recente novidade, ainda é muito desconhecido pelos desenvolvedores da comunidade. De pronto, isto pode ser justificado pela excelência do Delphi em termos do desenvolvimento procedural, sobrepujando o desenvolvimento orientado a objetos. No contexto procedural não se tem a presença de um modelo de classes, que poderia justificar o uso da modelagem UML nestes projetos. Entretanto, cada vez mais se percebe o interesse desta comunidade no desenvolvimento OO, boas práticas, padrões de projetos, entre outros temas que visam uma melhoria na forma de programar. Sendo assim, gradativamente itens do mundo OO serão de interesse destes programadores, e com certeza os diagramas UML serão de suma importância neste determinado momento.

Diagramas UML

O foco do artigo é a construção de diagramas UML a partir do próprio IDE do Delphi XE, visto que o desconhecimento sobre o assunto poderia gerar a procura por outras ferramentas para o mesmo propósito. Além disso, os desenvolvedores que agora estão fazendo uso dos conceitos da Orientação a Objetos em seus projetos Delphi, certamente farão uso dos recursos aqui apresentados. É importante ressaltar que o artigo não tem pretensões de especificar a UML, e sim fazer um apanhado geral de seus conceitos, ao mesmo tempo em que mostra os recursos disponíveis no IDE. Portanto é de suma importância o conhecimento prévio do assunto para o bom aproveitamento deste artigo.

No âmbito do desenvolvimento de sistemas, o termo “modelo” pode ser entendido como uma abstração do mundo real. Para efetivamente se modelar um sistema, é necessário principalmente abstrair todos os seus detalhes irrelevantes que possam gerar algum tipo de entrave ou confusão. Outro quesito essencial é a utilização de uma linguagem com a qual o modelo possa ser descrito e lido pela máquina, podendo ser interpretado e transformado entre os sistemas. Uma linguagem de modelagem não necessariamente precisa ser feita de código real, podendo ser também um pseudocódigo, diagramas ou qualquer outra forma de descrever o sistema em si. Em sua composição, a linguagem de modelagem possui elementos que, juntos, formam sua notação, que expressa graficamente o modelo. Em vista disso, também se faz presente um termo chamado semântica (ou meta-modelo), que nada mais é que o conjunto de descrições relacionadas à notação. É a informação utilizada para descrever o significado de cada item da notação.

Modelagem com código de programação

Apesar de não viável, o próprio código de programação poderia ser um exemplo de linguagem de modelagem onde, no entanto, nenhum detalhe foi abstraído. Em outras palavras, toda a modelagem realizada seria tão somente sobre a implementação do sistema, ignorando outros pontos do mesmo, como contextualizar como e por quem o software será utilizado, além de exibir a execução de cada processo existente no sistema. Outro ponto que inviabilizaria utilizar o código de programação como linguagem de modelagem é quanto sua legibilidade. É fato de que código de programação não é legível para qualquer pessoa. Por exemplo, qual significado teria o trecho de código apresentado na Listagem 1, a uma pessoa que não fosse da área de desenvolvimento.

Listagem 1. Trecho de código de uma classe de um sistema

TPessoa = class
    private
      FId: Integer;
      FNome: string;
      procedure SetId(const Value: Integer);
      procedure SetNome(const Value: string);
      { private declarations }
    protected
      { protected declarations }
    public
      { public declarations }
    published
      { published declarations }
      property Id: Integer read FId write SetId;
      property Nome: string read FNome write SetNome;
    end;

Dessa forma, seria necessário o emprego de outras técnicas para que se pudesse explicar e discutir o sistema com as outras partes interessadas do negócio, porém leigas, como é o caso dos usuários. Para esse tipo de pessoa pouco importa os detalhes do código fonte, a concentração deles se faz sobre os requisitos do sistema e como seus componentes irão trabalhar em conjunto para sanar suas necessidades de negócio. Além disso, para a própria equipe de desenvolvimento seria extremamente dificultosa a compreensão de partes ou do sistema como um todo somente através de código de software.

...

Quer ler esse conteúdo completo? Tenha acesso completo