Recursos especiais neste artigo:
Artigo no estilo Soução Completa
Este artigo apresenta o padrão de arquitetura chamado MVC (Model-View-Controller), mostrando como um diagrama de classes construído segundo esse padrão é transformado em código Java. O foco principal é dado à camada Model, que é implementada utilizando-se o padrão DAO e o banco de dados MySQL.
Os desenvolvedores que desejam aprender sobre o modelo MVC e estudantes que estão iniciando em modelagem e programação orientada a objetos encontrarão neste artigo explicações de como transformar a modelagem de um sistema orientado a objetos em código Java funcionando.
Este artigo é direcionado a iniciantes em programação que já aprenderam lógica de programação e conseguem implementar algoritmos simples na linguagem Java. A partir desse ponto deve-se aprender a modelar sistemas maiores de maneira profissional. Atualmente isso é feito através da modelagem Orientada a Objetos, utilizando, por exemplo, a UML (Unified Modeling Language).
A atividade de modelagem de um sistema consiste em transformar as necessidades definidas pelos clientes, documentadas nos requisitos do sistema, em uma série de representações desses requisitos e das estruturas de software que deverão ser implementadas para atendê-los. É comum construirmos o Diagrama de Casos de Uso para representar os requisitos do sistema, incluindo sua documentação para indicar os cenários de utilização. Em seguida construímos o Diagrama de Classes, que representa a estrutura do sistema em termos das entidades que ele deve manipular. Outro diagrama muito importante é o de Sequência. O objetivo de se construir esse diagrama é o de validar se as classes estão adequadas para suportar todas as interações previstas nos Casos de Uso e consequentemente revisar e melhorar o diagrama de classes. A construção de outros diagramas pode ser necessária dependendo do tipo de sistema, sua complexidade e seu tamanho, no entanto, os três considerados básicos são: casos de uso, classes e sequência.
Mesmo considerando apenas o diagrama de classes, sabemos que aprender a modelar quando ainda temos pouca experiência com desenvolvimento de software (principalmente com programação) não é tarefa fácil. E fica ainda mais difícil quando não conseguimos visualizar como aquele modelo que acabamos de construir vai ser transformado efetivamente em código. Este artigo pretende reduzir a distância entre a modelagem e a implementação, mostrando como um diagrama de classes é transformado em código.
Estudo de Caso: Sistema Bancário Simples
Vamos trabalhar sobre um exemplo para entender o processo de transformação do projeto do sistema representado em um diagrama de classes para o código fonte. Escolhemos para tanto um Sistema Bancário simples, uma vez que ele possui requisitos amplamente conhecidos. Basicamente teremos o cadastro de clientes e suas contas no banco, que podem ser dos tipos comum ou especial. Além disso, serão suportadas operações de depósito e saque sobre as contas do banco.
Veja a seguir a lista mais detalhada de requisitos:
· O sistema deve permitir que clientes fossem cadastrados, incluindo seu nome e e-mail;
· O sistema deve permitir que clientes possuíssem contas no banco. Cada cliente pode ter várias contas, e pode também não ter nenhuma conta criada;
· Cada conta do banco deve pertencer a um único cliente, não sendo permitidas contas conjuntas;
· As contas são divididas em dois tipos: comum e especial;
· As contas do tipo comum possuem um saldo e sobre elas é possível realizar saques e depósitos. Saques que venham a superar o valor do saldo da conta não são autorizados;
· As contas especiais possuem um saldo e um limite, e sobre elas é possível realizar saques, depósitos e modificação do limite da conta. Saques que superem o valor do saldo acrescido do valor do limite não são autorizados.
Não foi considerado, entre muitas outras coisas, que o sistema bancário deveria incluir vários bancos e que transferências de valores podem ser realizadas entre contas de bancos diferentes. No nosso exemplo temos modelado apenas um banco e as contas de seus clientes. Esse pequeno conjunto de requisitos levou à construção do diagrama de classes apresentado na Figura 1.
Figura 1. Diagrama de Classes do Sistema Bancário (Criado utilizando ASTAH – Community Edition).
O diagrama enfatiza a camada Model, composta pelas classes Cliente, Conta, ContaComum e ContaEspecial, sendo apresentados os seus atributos, os principais métodos e as associações entre classes. As duas outras camadas, Controller e View, estão apresentadas de forma resumida através dos estereótipos Control e View. Essa é a representação típica da arquitetura de um sistema organizado em três camadas, como a que é utilizada no padrão MVC (Model-View-Controller).
Ainda considerando o diagrama da Figura 1, alguns detalhes são importantes de se destacar sobre as classes da camada Model. A classe Cliente é bem simples, possuindo apenas dois atributos, o nome e o e-mail. A classe Conta é uma classe abstrata que contém atributos e métodos que são comuns entre os tipos de contas manipulados pelo sistema. Ela é abstrata porque nunca teremos nenhuma conta cadastrada no banco que não seja ou comum ou especial. Portanto, essa classe não será instanciada diretamente, sempre teremos instâncias de classes derivadas dela.
As classes ContaComum e ContaEspecial, por sua vez, fornecem as implementações e atributos específicos para cada um dos tipos de conta que podem ser manipuladas no nosso sistema bancário. Observe que ContaEspecial tem um atributo a mais para lidar com a definição do limite de crédito do cliente.
Essas são as classes da camada Model apresentadas em detalhes. Assim já temos um diagrama de classes que pode suportar o início da implementação. Em uma situação real, seria importante também fazer protótipos de telas da aplicação e revisar a lista de requisitos para verificar se as telas e a camada de controle vão suportar a implementação de todos os requisitos.
Implementação da Camada Model
Mesmo no nosso sistema bancário simplificado podemos ter um grande número de clientes cadastrados, cada um com várias contas. É natural se imaginar que essas informações estariam armazenadas em um banco de dados e não residindo exclusivamente em memória. A implementação da camada Model deve, portanto, suportar o carregamento de informações do banco de dados para objetos em memória e vice- ...
Confira outros conteúdos:
Programação x Concurso Público
Osvaldo aprendeu programação
DevMedia x Netflix: Onde investir meu...
Black November
Desconto exclusivo para as primeiras 200 matrículas!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 54,90
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 54,90 /mês
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.