sexta-feira, 17 de agosto de 2012

Computação Móvel - evolução e estado atual

Quando falamos em dispositivos móveis, lembramo-nos principalmente, do telemóvel. O telemóvel apareceu numa sequência de cerca de 100 anos de invenções cujo objetivo era a comunicação à distância.
A primeira transmissão telefónica com sucesso foi feita por Alexander Graham Bell em 1876. Ele e Thomas Edisson disputaram a corrida que levou à invenção do primeiro telefone.
Logo, em 1877, entrou em operação a primeira linha telefónica comercial.

O telemóvel apareceu apenas quase 100 anos depois do primeiro telefone, acrescentando a mobilidade ao objetivo inicial de falar à distância.
O primeiro telemóvel, analógico, apareceu em 1960. Era grande demais para ser transportado pessoalmente, pelo que tinha que ser instalado em veículos.
Em 1973 apareceu o primeiro telemóvel de mão (analógico).

Apenas em 1977 apareceram as primeiras redes celulares digitais.

Atualmente, os dispositivos móveis, incluindo a maior parte dos telemóveis, dispõe de capacidade de processamento, tendo adicionado o objetivo de computação móvel aos anteriores objetivos de comunicação à distância e de mobilidade.

Atualmente, numa confluência de diversas linhas e diferentes objetivos de investigação, temos telefones IP (VoIP), redes celulares de comutação de pacotes (3G, 4G), dispositivos móveis de diversos tamanhos, fabricantes, e com diferentes sistemas operativos, incorporando sensores, GPS, bússolas eletrónicas, acelerómetro, etc.

O número de subscrições de redes móveis passou de pouco mais de 1000 milhões em 2002, para quase 5000 milhões em 2008.
Temos atualmente 6,8 mil milhões de pessoas no mundo, e mais de 5 mil milhões de assinaturas de redes móveis, 50% dos quais pré-pagos.

segunda-feira, 7 de maio de 2012

Primeira Aplicação para o Windows Phone

Neste artigo fazemos uma primeira abordagem ao desenvolvimento de aplicações para Windows Phone.

Para começar, precisamos de instalar o Windows Phone SDK 7.1, o qual vem com um IDE gratuito (Visual Studio Express) e um emulador de Windows Phone, o qual nos permite testar as nossas aplicações antes de as instalar num dispositivo móvel baseado em Windows Phone.

Neste exemplo foi usado o Visual Studio 2010 para o desenvolvimento, mas, claro, o Windows Phone SDK 7.1 precisa na mesma de ser instalado.

Modelo de Execução do Windows Phone

Antes de começar o desenvolvimento da nossa primeira app, apenas algumas palavras sobre o modelo de execução do Windows Phone:
  • Apenas uma App pode correr num dado momento em foreground;
  • Outras Apps em execução são colocadas pelo sistema operativo (SO) num estado dormente (dormant state);
  • Quando a memória do dispositivo não é suficiente, o SO começa a terminar aplicações que estejam no estado dormente.
  • Através da sua framework de programação, as aplicações podem gerir o seu estado quando são ativadas ou desativadas. Isto pode ser usado para dar ao utilizador a impressão de que uma aplicação esteve sempre a correr, mesmo quando ela é parada e mais tarde reativada.

Criar um novo Projeto Windows Phone

No Visual Studio (ou Visual Studio Express), criar um novo projeto com o template para "Silverlight for Windows Phone", a tipo Windows Phone Application:

terça-feira, 17 de abril de 2012

Utilização do Hibernate para Java - 2

No artigo anterior vimos como utilizar o Hibernate como camada de middleware entre a estrutura de classes do nosso programa Java e a representação das instâncias dessas classes numa base de dados.

O artigo anterior ilustrou o mapeamento entre uma classe Java e uma tabela da BD, nomeadamente a classe Book e a tabela com o mesmo nome.

Vamos hoje ver como mapear os relacionamentos entre classes, 1-para-N e N-para-N, para a base de dados.

Vamos começar por acrescentar ao nosso modelo (que apenas tinha a classe Book) duas novas classes:
     - BookCopy (Um Book contém a informação de um livro, e relaciona-se com vários BookCopy, que correspondem aos exemplares que uma biblioteca tem desse livro) --> relação 1-N.
     - Author (Um Book tem vários Author e vice-versa) --> relação N-N.


No projeto Java desenvolvido no post anterior, vamos começar por acrescentar a classe BookCopy e o respetivo ficheiro de mapeamento do Hibernate BookCopy.hbm.xml.

domingo, 15 de abril de 2012

Utilização do Hibernate para Java - 1


O Hibernate é um framework para o mapeamento objeto-relacional (object-relational mapping) para a linguagem Java. Facilita o mapeamento das classes, atributos e relacionamentos entre classes entre o modelo de classes de uma aplicação e a sua implementação numa BD relacional. Para definição dos mapeamentos são usados ficheiros XML ou anotações Java.
O Hibernate serve de middleware entre os objetos Java e a BD relacional.

Neste artigo, e no próximo, vamos usar a versão Hibernate 3 para ilustrar, com um pequeno exemplo, a utilização do Hibernate num programa Java.

Como sistema de BD vamos usar o Oracle 10g.

Para começar, temos que criar as tabelas da base de dados. No artigo Exemplo de Aplicação Java Swing com BD Oracle - 1 é explicado este processo.
Vamos, neste artigo, mapear apenas a classe BOOK.


 Depois, usando o Netbeans ou outro IDE para Java, criamos uma nova aplicação Java:


Criamos um package para as classes que correspondem às tabelas da BD e criamos a classe Book:





sexta-feira, 23 de março de 2012

Mestrados de Engenharia de Software em Portugal

Lista de Mestrados em Engenharia de Software em Portugal:

sábado, 3 de março de 2012

Exemplo de Aplicação Java Swing sem JSR - 2

Neste artigo vamos criar um projeto baseado em Java Swing para desenvolver a interface gráfica com o utilizador (GUI), que complemente o que já foi feito anteriormente, que é tratado em:
 - Exemplo de Aplicação Java Swing com BD Oracle - 1  (criação da Base de Dados)
 - Exemplo de Aplicação Java Swing com BD Oracle - 2  (projeto HelperDB para acesso à BD)
 - Exemplo de Aplicação Java Swing com BD Oracle - 3  (projeto librarySystemBLL / classes da BLL)

 - Exemplo de Aplicação Java Swing sem JSR - 1



No NetBeans 7.1, vamos criar um projeto Java Application:




Um projeto Java Application cria automaticamente uma class com o método main().
Na verdade, não precisamos dessa classe, porque vamos criar uma classe JFrame, a qual automaticamente cria um método main() que lança a frame e torna-a visível.

De qualquer forma, e antes de criarmos a JFrame, vamos adicionar as referências necessárias ao nosso projeto. Precisamos de adicionar, nas libraries do projeto, referências para os projetos HelperDB e librarySystemBLL. São também necessárias referências para os JARs "ojdbc" que vêm com o Oracle XE, tal como foi feito anteriormente nos outros dois projetos.


Agora, criamos o JFrame, o qual será a janela principal da aplicação:

sexta-feira, 24 de fevereiro de 2012

Virtual Developer Day - Java (evento gratuito)

Exemplo de Aplicação Java Swing sem JSR - 1


A partir do NetBeans 7.1, o Swing application framework (JSR) deixou de ser suportado no NetBeans, e deixou de fazer parte do JDK (Java Development Kit) oficial.

Assim, neste artigo e no próximo, vamos fazer uma pequena aplicação Java com classes Swing, sem recorrer ao Swing application framework.

Iremos fazer uso das camadas aplicacionais desenvolvidas em:

 - Exemplo de Aplicação Java Swing com BD Oracle - 1  (criação da Base de Dados)
 - Exemplo de Aplicação Java Swing com BD Oracle - 2  (projeto HelperDB para acesso à BD)
 - Exemplo de Aplicação Java Swing com BD Oracle - 3  (projeto librarySystemBLL / classes da BLL)

Assim, depois de criada a base de dados (BD) e termos os projetos HelperDB e librarySystemBLL, iremos criar um novo projeto (librarySystemGUI) para a interface com o utilizador.

Vamos, antes, mostrar como se pode importar um projeto no NetBeans, dadas apenas as sources Java desenvolvidas noutro IDE.

quinta-feira, 23 de fevereiro de 2012

Aplicações desktop baseadas em Java Swing, a partir do NetBeans 7.1

Nos artigos
     - Exemplo de Aplicação Java Swing com BD Oracle - 1
     - Exemplo de Aplicação Java Swing com BD Oracle - 2
     - Exemplo de Aplicacao Java Swing com BD Oracle - 3
     - Exemplo de Aplicacao Java Swing com BD Oracle - 4

desenvolvemos uma pequena aplicação exemplo, para desktop, usando Java/JavaSwing.
Para isso usámos o NetBeans IDE, e criámos, para a Interface com o Utilizador, um projeto do tipo Java Desktop Application.

A partir do NetBeans 7.1, no entanto, o Swing application framework deixou de ser suportado no NetBeans, e deixou de fazer parte do JDK (Java Development Kit) oficial. Já no NetBeans 7.0.1, a seguinte mensagem aparecia sempre que se criava um projeto do tipo Java Desktop Application:


No NetBeans 7.1 temos duas alternativas:
  • Criar uma aplicação de raíz, ou
  • Criar um projeto Netbeans Platform Application
No próximo artigo trataremos de criar uma aplicação Java de raíz com objetos Swing.
Posteriormente trataremos da segunda opção.


sexta-feira, 17 de fevereiro de 2012

Primeiro exemplo com o Eclipse Modeling Framework (EMF) - 3

No artigo anterior criámos um modelo de domínio de um sistema de gestão de biblioteca, e gerámos as classes Java, usando o Eclipse Modeling Framework (EMF).

Vamos, agora, testar essas classes através de um novo projeto Eclipse, que referencia o projeto com as classes geradas.

Assim, criamos um novo projeto de Plug-in:
                                     File --> Create --> New --> Project... --> Plug-in Project.


E, no folder src, criamos uma nova classe com o stub de método main:


E criamos, no método main(), criamos algumas linhas de código:

package javaUsingEMFModel.LibrarySystem;

import org.eclipse.emf.ecore.*;
import LibraryModel.*;
import LibraryModel.impl.*;
import LibraryModel.util.*;

public class MainClass {
    public static void main(String[] args) {

// Inicializar o LibraryModelPackageImpl
        LibraryModelPackageImpl.init();

        LibraryModelFactory factory = LibraryModelFactory.eINSTANCE;
       
        // Criar um livro (Book)
        Book book = factory.createBook();

        // Atribuir um título ao livro
        book.setTitle("Os Lusiadas");
       
        // Criar um Autor (Author) e definir o seu nome e sobrenome
        Author author1 = factory.createAuthor();
        author1.setName("Luis");
        author1.setSurname("Camoes");
       
        // Atribuir esse autor ao livro criado anteriormente
        book.getAuthors().add(author1);
       
       
        System.out.println(book.getTitle());
    }
}

Isto é apenas o começo. Agora deverá criar instâncias das restantes classes, relacioná-las e inquirir sobre o valor de atributos de objetos e de relações.

Artigos relacionados:
        - Primeiro exemplo com o Eclipse Modeling Framework (EMF) -1
        - Primeiro exemplo com o Eclipse Modeling Framework (EMF) - 2