soNormal style="MARGIN: 0cm 0cm 0pt"> 

Nesse artigo veremos

·         Regras de Negócio;

·         UML;

·         Diagrama de Classes;

·         Casos de Uso;

·         Testes unitários;

Qual a finalidade

·         Criar um software seguindo os padrões atuais da engenharia de software e OO, adotando boas práticas de desenvolvimento;

Quais situações utilizam esses recursos?

·         Sistemas com manutenção efetiva, que necessitam estar preparados para mudanças de regras de negócio e exigem uma modelagem prévia;

 

Desde o início da ClubeDelphi, o intuito foi ensinar e compartilhar conhecimento com a comunidade Delphi de uma forma totalmente diferenciada. Uma forma que atendesse os anseios dos desenvolvedores sempre falando da maneira que todos entendessem melhor. Com esse objetivo em mente viu-se que a melhor forma de transmitir esse conhecimento é através do desenvolvimento de exemplos e assim tem sido até hoje. Em outra época quando a novidade da vez era o DBExpress no então Delphi 6, nossos colegas Guinther Pauli e Fernando Prass se uniram para desenvolver um dos artigos mais populares da comunidade,  que demonstraria como projetar e codificar usando o que havia de melhor, direcionando assim desde o programador mais jovem ao mais experiente. Nascia assim o projeto do sistema DataCar que gerencia revendas de automóveis, no popular, garagens.

Hoje, passados alguns anos, novas tecnologias surgiram e se tornaram populares como por exemplo o .NET. No mundo web então nem se fala, ASP.NET, AJAX, Ruby, PHP, Silverlight.  Programação orientada a objetos é um dos assuntos de mais destaque na comunidade, sem falar de seus “acessórios” como MVC, Padrões de Projeto, Testes unitários, UML. As ferramentas também evoluíram e muito. Nessa trajetória chegamos ao Delphi 2007 pra win32 e RAD Studio 2007 que envolve Win32 e .NET.

Como o objetivo principal da ClubeDelphi  não mudou, quero com muito orgulho trazer de volta o projeto DataCar, também desta vez utilizando, como no projeto original, o que há de melhor. Neste projeto vamos utilizar Delphi 2006, mas sinta-se livre para utilizar a versão que possuir, e aplicaremos ao projeto e programação orientados a objetos, abordando testes unitários, mapeamento objeto relacional, separação de camadas, persistência e relatórios.

 

Metodologia

O exemplo deste artigo utiliza a arquitetura OO para criação do sistema. Utiliza também a UML para modelagem do projeto e DAO para persistência dos dados, além de ser um sistema multicamadas com mapeamento objeto relacional. O sistema será multicamadas porque fará uso do MVC (Model View Controller). Para mais informações sobre essa arquitetura e outras, visite //www.devmedia.com.br/articles/viewcomp.asp?comp=5219

 

Nota: Para fins didáticos e desenvolvimento dos diagramas de caso de uso e de classe vamos utilizar o ModelMaker 9. Na minha opinião é o melhor para se usar com Delphi. Quanto aos testes unitários vamos utilizar o DUnit. Ambos podem ser baixados, respectivamente, nos endereços www.modelmakertools.com e dunit.sourceforge.net. No entanto, não vamos criar todos os diagramas da UML do zero, pois isso exigiria uma revista inteira. Nem mostraremos passo a passo como criar esses diagramas, pois não é o objetivo do artigo. Você pode facilmente observar os diagramas propostos e cria-los do MM. Para mais informações sobre o MM veja as edições 40 e 56 da Revista ClubeDelphi.

 

Entendendo as regras de negócio

No geral, de forma simplista, uma pessoa pode entrar em contato com a garagem para informar seu interesse em comprar determinado modelo de carro, até um valor específico para que posteriormente seja notificada sobre a disponibilidade. Essa pessoa se torna um cliente da garagem e com isso seus dados pessoais são registrados tais como nome, endereço, telefones e documentos. Também uma pessoa pode deixar na garagem seu carro para ser vendido por um determinado valor e então cabe à garagem tentar realizar essa venda. Essa pessoa também se torna um cliente da garagem. Por sua vez um veículo possui modelo que possui uma marca. Também possui cor, acessórios, ano de fabricação/modelo, consome um determinado tipo de combustível, possui um número determinado de portas, uma placa e um proprietário.

Enquanto de posse de um veículo ou quando ela mesma adquire um para posterior venda, a garagem pode ter despesas com o mesmo, por exemplo despesas com documentação, mecânica e auto-elétrica. Ao intermediar uma venda ou vender um veículo próprio, um lucro é esperado e todas essas despesas são contabilizadas para que juntamente definam o valor real da venda.

 

Modelagem de negócio

No projeto orientado a objetos utilizamos a UML que nos oferece diagramas para representar da melhor forma possível aquilo que vamos implementar na forma de sistema computacional. Um desses diagramas é o Caso de Uso. Veja o diagrama de caso de uso, na Figura 1, que representa uma visão geral desse funcionamento.

 

Figura 1. Diagrama de Caso de uso, Visão Geral

 

O diagrama de caso de uso é uma representação não técnica do negócio envolvido. Ele é a visão do usuário.  Um diagrama de caso de uso possui essencialmente atores e suas ações. Os atores representam qualquer coisa que interaja externamente com o sistema. Eles são representados por “homenzinhos”. As ações por sua vez são representadas por balões. Essas ações são “explodidas” em outros casos de uso que detalham seu funcionamento. Junto a esses diagramas temos sua descrição. 

 

Nota do DevMan

A Unified Modeling Language (UML) é uma linguagem de modelagem não proprietária de terceira geração. A UML não é uma metodologia de desenvolvimento, o que significa que ela não diz para você o que fazer primeiro e em seguida ou como projetar seu sistema, mas ela lhe auxilia a visualizar seu desenho e a comunicação entre objetos.

Basicamente, a UML permite que desenvolvedores visualizem os produtos de seu trabalho em diagramas padronizados. Junto com uma notação gráfica, a UML também especifica significados, isto é, semântica. É uma notação independente de processos, embora o RUP (Rational Unified Process) tenha sido especificamente desenvolvido utilizando a UML.

...

Quer ler esse conteúdo completo? Tenha acesso completo