DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Easy Java Magazine ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Solucionando problemas usando Java - Easy Java Magazine 4

Apresenta uma proposta de rotina elementar a ser seguida para solucionar problemas de programação e exemplos práticos que, além de seguir essa rotina, aplicam estruturas de Java.






Solucionando problemas usando Java
Como abordar problemas de programação usando Java




Muito já foi discutido sobre o tema “programação é arte ou ciência”. Não é pretensão do autor entrar na discussão, mas usar como ponto de partida deste artigo uma afirmação daquele que consideramos o pai da matéria – Donald Knuth. No artigo “Computer Programming as an Art”, ele afirma que “programação de computadores é uma arte, porque aplica conhecimento acumulado, porque requer habilidade e engenhosidade e, especialmente, porque produz objetos de beleza”.
Note que Knuth não fala sobre talento, inspiração ou coisas do gênero. De onde pode-se concluir que é necessário se preparar, conhecer as ferramentas que serão utilizadas e ter entendimento sobre o domínio do problema.
Para reforçar o exposto acima, Steven Skiena, no prefácio do livro “The Algorithm Design Manual”, diz que a criação de algoritmos corretos e eficientes que solucionem problemas reais exige o conhecimento de técnicas e recursos. Ele considera que a técnica mais importante é a modelagem. Modelagem é a arte de analisar um problema e abstrair uma solução adequada para ser abordada por um algoritmo. E os recursos são formados pela base de conhecimento de algoritmos clássicos, que servem de ponto de partida para a solução do problema.
Desta forma, na seção seguinte será sugerida uma metodologia simples e prática a ser seguida na solução de problemas de programação.
Donald Knuth é um cientista da computação, autor de uma das principais referências na área – a série de livros entitulados “The Art of Computer Programming”. Em reconhecimento à sua contribuição, a Universidade de Stanford o agraciou com o título “Professor Emeritus of The Art of Computer Programming”.
Abstrair significa concentrar-se nos aspectos essenciais do domínio de um problema, ignorando características irrelevantes. Por exemplo: na análise de um Sistema Acadêmico Escolar, as classes Aluno, Professor e Disciplina são casos de abstração.
Como abordar um problema de programação
Descreveremos aqui alguns passos, não necessariamente imprescindíveis, que poderão ajudar-nos a produzir soluções de programação corretas e eficientes.
Entenda o problema
O problema deve ser bem definido com o máximo de detalhes. Entender o domínio do problema é fundamental. A especificação dos dados que representam as entradas e as informações que a solução do problema deve produzir devem ser também descritas minuciosamente. Se julgar necessário, crie um modelo de domínio preliminar. Leia a seção “Introdução ao modelo de domínio” para um pouco mais de detalhes.
Se for possível, tente resolver o problema manualmente
Execute pequenas partes da solução mentalmente, usando como auxílio papel e caneta. Procure usar valores de entrada diferentes e variados para ver o que acontece. Esse procedimento é o que chamamos teste de mesa.
Defina com precisão o algoritmo
É sempre bom escrever algum pseudocódigo descrevendo o que o programa irá fazer. Certamente que, em se tratando de algo que você já escreveu várias vezes ou algo de nítida simplicidade, isso não seria necessário.
Escreva a versão final do algoritmo que será utilizado na solução e que deverá ser mapeado para a linguagem de programação escolhida.
Codifique o programa
Escreva o programa na linguagem escolhida. Comente o código à medida que vai codificando. Utilize identação para tornar o código fonte mais legível. Use nomes sugestivos e não muito longos para variáveis e métodos e, sempre que possível, divida seu programa em partes menores – ou seja, modularize.
Lembre-se que passamos a maior parte do tempo em programação corrigindo e/ou modificando o código. Portanto gaste tempo escrevendo código mais legível, pois é mais fácil de depurar e manter.
Nas seções seguintes serão apresentados problemas e suas respectivas soluções. Cada seção irá focar em um ou mais temas do universo da programação em Java.
Introdução ao modelo de domínio
Domínio do problema é um termo usado para definir as áreas que precisam ser examinadas para solucionar o problema. Significa que deve-se olhar apenas para os tópicos de interesse, excluindo tudo que for irrelevante.
Modelo de domínio é uma visão conceitual preliminar do problema e normalmente é chamado diagrama de classes conceitual. O modelo conceitual representa as entidades, seus atributos e relacionamentos. Por exemplo, no modelo de domínio Acadêmico Escolar identificamos as seguintes entidades: Curso, Disciplina, Professor, Aluno e Matrícula; e os seguintes relacionamentos: Professor ministra Disciplina, Curso é composto de Disciplina, Aluno matricula-se em Disciplina. Avançando um pouco mais, pode-se definir uma entidade Pessoa que tem como entidades derivadas o Professor e o Aluno.
Para representar um modelo de domínio geralmente usamos o diagrama de classes. Num diagrama de classes, as classes são representadas por retângulos divididos em três partes, como mostra a Figura 1.
"


ATENÇÃO! A exibição deste artigo foi interrompida.


  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Easy Java Magazine ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!






    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!



[Este post ainda não foi associado a uma sequência]
Publicidade
Autor
Carlos Araújo

É professor do curso de Sistemas de Informação no Centro Universitário Luterano de Santarém – Pará. Leciona Estruturas de Dados e Linguagem de Programação Orientada a Objetos usando Java, desenvolve sistemas há 20 anos e é certificado SCJP. Mantém o blog http://professorcarlos.blogspot.com.


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
0   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03