Archive for the ‘Java’ Category

Workshop de Adobe Flex 4 Integrado com Java EE

Público Alvo

Desenvolvedores Web e Desktop que estejam interessando em desenvolver aplicações RIA utilizando Adobe Flex integrado com Java EE.

Read the rest of this entry »


Automatização de Testes de Desempenho com JUnitPerf

JUnitPerf é uma extensão do JUnit, um conjunto de decoradores de testes JUnit, que é utilizado para medir o desempenho e a escalabilidade dos
testes referenciados. Criado pela Clarkware Consulting desenvolvedora e mantenedora do JUnitPerf.

Veja a documentação completa em no site oficial do  JUnitPerf.

Para saber mais sobre teste unitário com JUnit, veja o meu post anterior e assista os vídeos de Teste Unitário com JUnit..

JUnitPerf oferece classes que permitem construir objetos que recebem testes existentes do JUnit e acrescentam neles avaliação de desempenho. Ele não  altera testes existentes. Pode-se ainda rodar os testes sem o JUnitPerf.

Read the rest of this entry »


Teste Unitário com JUnit

Olá!

Como prometido para meus alunos, neste post vou mostrar um exemplo simples de como fazer teste unitário utilizando o junit. O JUnit é um framework criado por Erich Gamma e Kent Beck com suporte à criação de testes automatizados na linguagem de programação Java.

Não vou entrar muito em detalhes sobre o funcionamento do framework. Recomendo a leitura de:

Read the rest of this entry »


Condições para uso de herança

JavaUm dos princípios básico da Orientação a Objetos é a reutilização. Um dos mecanismo existentes nas linguagens OO para alcançar tal reutilização é o uso de herança.  Em qualquer livro de programação orientada a objetos que você pegar para ler terá um definição de herança mais ou menos como essa “Herança é o mecanismo para estender as classes existentes adicionando novos métodos e campos”, em outras palavras, a herança é um mecanismo para aprimorar classes já existentes.

A herança é utilizada quando você tem a necessidade de implementar uma nova classe que reutiliza um conceito mais geral de uma classe já existente estiver disponível .

Entender bem o funcionamento das técnicas de OO é necessário para desenvolver aplicações escaláveis, modulares, com baixo acoplamento e alta coesão, bem como para compreender os padrões de projeto (Design Patterns), utilizado comumente no mercado.

Neste post, no entanto, o objetivo é abordar as condições para uso de herança que nos livros é falado, mas de forma “implícita”.

Antes de entrar no assunto, vale apena ressaltar o que os objetos podem representar. os objetos podem representar um papel, uma transação, ou um dispositivo, entidade ou coisa:

  • Um Papel: um objeto pode representar um papel. Exemplo, Aluno, Pessoa, Funcionário, ect.
  • Uma Transação: é um objeto que representa uma atividade que pode ocorrer em um determinado intervalo de tempo. Exemplo, Reserva, Venda, etc.
  • Um Dispositivo, uma Entidade ou uma Coisa: o objeto pode representar uma entidade, um dispositivo ou uma coisa que tem estrutura permanente. Exemplo. Caminhão, Veículo, ect.

Para usar herança, alguns critérios devem ser satisfeitos:

  • CRITÉRIO 1: A subclasse deve expressar uma relação “é um tipo especial de” e não “pode exercer o papel de”, em outras palavras, a herança NUNCA deve mudar a função da superclasse.
  • CRITÉRIO 2: A subclasse deve especializar uma papel, uma transação ou um dispositivo, sem NUNCA mudar a função da superclasse.
  • CRITÉRIO 3: A subclasse deve estender, e NUNCA redefinir e NUNCA anular o contrato (responsabilidade) da superclasse.
  • CRITÉRIO 4: A subclasse NUNCA deve estender funcionalidades de classes utilitárias.

Read the rest of this entry »


Utilização de Polimorfismo

Olá a todos!!

Bom, o objetivo deste post é demonstrar a utilização de polimorfismo, um conceito básico para um bom conhecimento de orientação a objetos. As vezes tenho a impressão que para muitos com quem converso, incluindo meus alunos e amigos, é que polimorfismo é um conceito que as pessoas “nunca viram nem comeram, só ouviram falar“… Quando pergunto a algum aluno ou algum amigo se ele sabe o que é polimorfismo, sempre tenho uma resposta positiva e sempre escuto a definição padrão “polimorfismo é a capacidade que a instância do objeto tem de ter várias formas”. Bom, isso é verdade, qualquer livro sobre orientação objeto estará escrito algo mais ou menos parecido com essa definição.

Então estes post tentará desmistificar um pouco o assunto e mostrar a utilização de polimorfismo.

Essencialmente, existem apenas duas entidades na orientação a objetos que podem ser polimórficas: referências e funções.

  • Referências: A referência a um objeto é polimórfica já que a referência a um objeto pode denotar objetos de tipos distintos em momento distintos. (Obs: Desde que todas as referências estejam abaixo da hierarquia da definição do tipo do objeto).
  • Funções: A função pode ser polimórfica quando ele pode receber parâmetros polimórficos.

Read the rest of this entry »


CRUD com Flex e Java

O objetivo deste post e demonstrar um CRUD (Create, Retrieve, Update e Delete) feito em Flex e Java. A tecnologia utilizada é a seguinte:  do lado do servidor temos:  JAVA EE, Hibernate, JAX-WS e Glassfish. Do lado do cliente temos o Flex consumindo o webservices Java.

Esse post é continuação do anterior onde falei sobre paginação com datagrid. Agora será demonstrado como inserir, alterar, excluir.

A figura 1 ilustra a interface principal do exemplo.

Tela 11Figura 1

Para iniciar a criar a aplicação servidor, será mostrado passo a passo como criar a aplicação no Netbeans 6.5.1.

Read the rest of this entry »


Paginação com Datagrid

Olá!

Quando trabalhamos com aplicações centrada em banco de dados podemos ter algumas dificuldades quando a quantidade de registros nas tabelas começam a crescer. Já vi várias aplicações que trabalham bem desde que não possua muitos registros para serem retornados do banco de dados. Isso normalmente é devido a uma análise não muito cuidadosa. O resultado disso é DataGrids, List, ComboBox que tem que receber centenas ou milhares de registros o que com o passar do tempo, quanto mais registros são inseridos no banco de dados, mais lenta fica a aplicação.

Paginação_DataGridPaginação com DataGrid

Quando desenvolvemos aplicações que rodarão na internet isso passa a ser um agravante ainda maior. Pensando nisso várias aplicações desenvolvidas para a Web já foram construídas pensando nesse tipo de agravante.  Contundo, já é comum você entrar em um site que tem um grid como resultado de uma busca e esse resultado ser paginado em várias páginas. O próprio Google é um exemplo disto. Pense bem, se o resultado da busca foi um milhão de registros, para que tenho que mostrar tudo de um vez para o meu usuário, ele não vai dar conta de ver mesmo, então eu pagino.

Bom isso é muito bonito, muito legal e você já deve estar convencido, mas e aí, como fazer isso em Flex? Os componentes que vem como padrão no  Flex Builder não implementam esse tipo de recurso nativamente. Então pensando nisso criei este post com o objetivo demonstrar a utilização de paginação em Datagrid no Flex. Será demonstrado um como paginar dados de uma tabela simples utilizando do lado do servidor Java + Web services com JAX-WS + Hibernate +  Glassfish, desenvolvido no NetBeans 6.5.1. Para facilitar as coisar utilizei o banco de dados “sample” que já vem no NetBeans.

Read the rest of this entry »


Pangea

pangea

Mas o que é Pagea?

Resp: Professiona

l and Academic Network to the Growing and Evolution of Architecture. Pangea é uma rede social formada por profissionais e acadêmicos interessados na evolução da arquitetura de software no Brasil. Criado por Adriano Tavares e Marco Mendes.

Conforme descrito no próprio site da rede social, “pangea é o nome do super continente único rodeado por um mega oceano chamado Pantalassa, que existiu há cerca de 250 milhões de anos no período Permiano da era Paleozóica. Na mitologia grega, encontramos: Pan, como o deus que simbolizava a alegria de viver, e Gea (Gaea) como a deusa que personificava a terra com todos os seus elementos naturais.”

Inscreva-se lá, é bastante interessante fazer parte de uma comunidade especializada em arquitetura de software. Os idealizadores foram bastante felizes em fazer analogia com um super continente único como se a comunidade de especialistas em arquitetura de software estivesse unida em uma rede social. Existem outras analogias interessantes como a criação de faunas para descrever os membros da rede, as ilhas de discussões,  os continentes que tratam de assuntos específicos como BPM+SOA, Monstros da Arquitetura de Software, Arquitetura de de teste de Software e por aí vai. Vale a pena!!


Tipos de Relacionamento entre Objetos

Se você é programador ou já programou utilizando OO muito provavelmente você já deve ter se perguntado qual estratégia seria a mais adequada para relacionar um objeto com outro. Pois bem, na programação orientado por objetos existem cinco formas com que os objetos podem se relacionar. São elas: herança,  agregação,  composição, associação simples ou dependência.

O objetivo deste post é descrever cada um dos tipos de relacionamento e demonstrar em quais situações você deveria usar cada um deles.

Read the rest of this entry »


Procurar


Edgard Davidson
nova Profissional especialista em engenharia de software e desenvol- vimento de sistemas, professor universitário, coordenador do curso de pós graduação em Engenharia de Software Centrada em Métodos Ágeis ofertado pela UNA, mestrando em Engenharia Elétrica com ênfase em Engenharia de Software, Especialista em Engenharia de Software, Graduado em Sistemas de Informação. Sou sócio da MÉRITA - ENGENHARIA DE SERVIÇOS E SISTEMAS e criei este blog dedicado a assuntos como: desenvolvimento e engenharia de software, opiniões pessoais sobre assuntos pertinentes. Os posts deste blog são escritos sem muito rigor científicos e expressam opiniões exclusivamente minhas

Mérita - Engenharia de Serviços e Sistemas

Curso de Pós Graduação em Engenharia de Software Centrada em Métodos Ágeis

Categorias

Arquivo

Tags

Pagea