ANÁLISE DOS PADRÕES DE PROJETOS QUE SÃO APLICADOS NO DESENVOLVIMENTO DE INTERFACE GRÁFICA DA PLATAFORMA J2ME

Tamanho: px
Começar a partir da página:

Download "ANÁLISE DOS PADRÕES DE PROJETOS QUE SÃO APLICADOS NO DESENVOLVIMENTO DE INTERFACE GRÁFICA DA PLATAFORMA J2ME"

Transcrição

1 Organização Sete de Setembro de Cultura e Ensino LTDA Faculdade Sete de Setembro FASETE Curso de Bacharelado em Sistemas de Informação Edvangno Costa Santos ANÁLISE DOS PADRÕES DE PROJETOS QUE SÃO APLICADOS NO DESENVOLVIMENTO DE INTERFACE GRÁFICA DA PLATAFORMA J2ME Paulo Afonso BA Abril/2011

2 Edvangno Costa Santos ANÁLISE DOS PADRÕES DE PROJETOS QUE SÃO APLICADOS NO DESENVOLVIMENTO DE INTERFACE GRÁFICA DA PLATAFORMA J2ME Monografia apresentada ao Curso de Graduação em Sistemas de Informação da Faculdade Sete de Setembro - FASETE, como pré-requisito para a obtenção do grau de Bacharel. Orientador: Prof. Esp. Fabiano Amorim Vaz Co-Orientador: Prof. Esp. Eloy Lago Paulo Afonso BA Abril/2011

3 Edvangno Costa Santos ANÁLISE DOS PADRÕES DE PROJETOS QUE SÃO APLICADOS NO DESENVOLVIMENTO DE INTERFACE GRÁFICA DA PLATAFORMA J2ME Monografia apresentada ao Curso de Graduação em Sistemas de Informação da Faculdade Sete de Setembro - FASETE, como pré-requisito para a obtenção do grau de Bacharel. Orientador: Prof. Esp. Fabiano Amorim Vaz Co-Orientador: Prof. Esp. Eloy Lago Data de aprovação / / Aprovado por: Prof. Esp. Fabiano Amorim Vaz (Orientador) Prof. Esp. Igor Oliveira Costa Prof. Esp. Jackson Pires Júnior Paulo Afonso BA Abril/2011

4 Dedico o presente trabalho a minha família, Martha Soares esposa dedicada; meus queridos filhos Eduardo e Matheus.

5 AGRADECIMENTOS Obrigado meu bom Deus! Deusque me ilumina nas horas de indecisão, que me guia na escuridão. A minha querida sogra Antonia Soares, que sempre acreditou no meu sucesso. Tenha certeza seus ensinamentos nunca serão esquecidos. A minha querida mãe Ivaneide Dias, muito obrigado. Maria Luiza e Erasmo Nunes, ambos de caráter e bondade inestimáveis, etenos em meu coração. Não poderia esquecer jamais dos meus queridos amigos, Anailton, Alan, Cícero, Eric, Josimar, Mário, Paula, SilaseVinícius. Essa é a turma. Obrigado professores, novas turmas, outros alunos, entretanto uma coisa é certa, Eu nunca me esquecerei dos bons ensinamentos, dos bons professores, das alegrias compartilhadas, de um tempo inesquecível. Por fim, agradeço a todos vocês que fazem parte da minha vida, nessa que foi uma incrível jornada chamada Sistemas de Informação da Faculdade Sete de Setembro.

6 SANTOS, Edvangno Costa. ANÁLISE DOS PADRÕES DE PROJETOS QUE SÃO APLICADOS NO DESENVOLVIMENTO DE INTERFACE GRÁFICA DA PLATAFORMA J2ME f. Monografia (Curso de Bacharelado em Sistemas de Informação). Faculdade Sete de Setembro-FASETE. Paulo Afonso BA. RESUMO A plataforma Java ME pode ser considerada como uma das tecnologias mais importantes do ambiente de desenvolvimento móvel, por se tratar de uma tecnologia de fácil aprendizado, portabilidade e implantação. Tais características herdadas da plataforma Java e a constante evolução do setor de tecnologia móvel tornam possível que tecnologias atuais passem a ser aplicadas ao ambiente de desenvolvimento móvel. É neste cenário que conceitos como o de Padrões de Projetos passam a ser aplicadas ao ambiente móvel, principalmente no tocante a problemas de softwares referentes ao desenvolvimento de GUI para dispositivos móveis. O objetivo deste trabalho é realizar uma análise dos padrões de projetos que são aplicados na resolução de problemas referentes ao desenvolvimento de interface gráfica para a arquitetura Java J2ME. A metodologia seguiu uma análise descritiva, através da coleta bibliográfica e documental que possibilitou uma revisão da literatura sobre o tema proposto. Os resultados obtidos permitiram verificar que os Padrões de Projetos estudados, que estão relacionados ao desenvolvimento de interface gráfica para dispositivos móveis, apresentam soluções que nos remete ao desenvolvimento em camadas, característica esta, que facilita o processo de desenvolvimento, bem como cria uma metodologia de desenvolvimento que antecipa e facilita o processo de atualização do aplicativo desenvolvido. Palavras-chave: Plataforma Java ME. Limitação Tecnológica. Padrão de Projeto. Ambiente Móvel.

7 SANTOS, Edvangno Costa. Investigation of the Applicability of Design Patterns in Java J2ME Mobile Platform f. Monografia (Curso de Bacharelado em Sistemas de Informação). Faculdade Sete de Setembro - FASETE. Paulo Afonso BA. ABSTRACT The Java ME platform can be considered as one of the major technologies of the mobile development environment, because it is easy to learn a technology, portability and deployment. These characteristics inherited from the Java platform and the constant evolution of the mobile industry, current technology makes it possible to pass to be applied to the mobile development environment. Against this backdrop, the concepts of Design Patterns are now applied to the mobile environment, especially regarding the problems related to software development GUI for mobile devices. The objective of this study is to perform an investigation of the main types of design patterns that can be applied to Java J2ME mobile platform, describing its characteristics and outcomes in troubleshooting. The methodology followed a comparative analysis, by collecting literature and public documents that allowed a review of the literature on the theme. The results allowed to verify that the most studied Design Patterns, which are related to the mobile development environment, provides solutions that brings us to the development in layers, which facilitates the development process as well as creating a development methodology that anticipates and facilitates the process of updating the application developed. Key-words: Java ME Platform. Design Pattern. Mobile environment

8 LISTA DE ILUSTRAÇÕES Figura 1 - Plataformas Java Figura 2 - Relação entre as edições da plataforma Java Figura 3 - Relação entre o CDC e o CLDC Figura 4 - Classificação dos Padrões de Projetos Figura 5 - Classes de interface do usuário MIDP Figura 6 - Limitação de recursos gráficos em um dispositivo Móvel Figura 7 - Hierarquia de Menus em um dispositivo Móvel Figura 8 - Inserção de um novo item de Menu Figura 9 - Transição de telas Figura 10 - Botões utilizados para paginar páginas Figura 11 - Aplicação que não utiliza o padrão Pagination Figura 12 - Aplicação que utiliza o padrão Pagination Figura 13 - Apresentação de Slides em um dispositivo Móvel Tabela 1 - Diferenças entre CDC e CLDC Tabela 2 - Componentes de interface gráfica e menu Aplicações baseadas J2ME. 41

9 LISTA DE ABREVIATURAS E SIGLAS ANATEL API CDC CLDC GSM HTTP HTTPS IBGE J2EE J2ME J2SE JCP JDK JEE JRE JSE KVM MID MIDP MVC PDA SMS Agência Nacional de Telecomunicações Application Programming Interface Connected Device Configuration Connected Limited Device Configuration Generic Service Menssage Hypertext Transfer Protocol HyperText Transfer Protocol secure Instituto Brasileiro de Geografia e Estatística Java 2 Enterprise Edition Java 2 Micro Edition Java 2 Standart Edition Java Community Process Java Development Kit Java Enterprise Edition Java Runtime Environment Java Standard Edition Kylobyte Virtual Machine Multi-information display Móbile Information Device Profile Model View Controller Personal Digital Assistant Short Menssage Service

10 SUMÁRIO 1 INTRODUÇÃO Justificativa Definição do Problema Hipóteses Objetivos Geral Específicos Metodologia JAVA 2 MICRO EDITION (J2ME) Visão Geral da Arquitetura Java J2ME Arquitetura Configuração Connected Limited Device Configuration (CLDC) CDC (Connected Device Configuration) Perfil Máquina Virtual K (KVM) DESIGN PATTERNS Definição Descrevendo um Padrão de Projeto Classificação dos Padrões de Projetos Selecionando um Padrão de Projeto Utilizando um Padrão de Projeto ANTIPATTERS Interface Gráfica dos Aplicativos Móveis Interface Gráfica Limitação Gráfica dos Dispositivos Móveis PADRÕES DE PROJETOS UMA SOLUÇÃO PARA PROBLEMAS GRÁFICOS DA PLATAFORMA J2ME Padrão Cascading Menu Padrão Wizard Dialog Padrão Pagination Padrão Slide Show CONSIDERAÇÕES FINAIS REFERÊNCIAS... 53

11 INTRODUÇÃO

12 INTRODUÇÃO 11 1 INTRODUÇÃO Atualmente, a integração dos dispositivos móveis com a internet e a constante evolução de hardware dos dispositivos telefônicos móveis, disponibiliza uma gama de possibilidades, tanto para os usuários do setor como para a área de Desenvolvimento de Software, que se beneficiam do avanço tecnológico, desenvolvendo novos projetos, através da utilização de ferramentas de produção mais robustas. No Brasil existem aproximadamente 210 milhões de celulares (ANATEL, 2011), ou seja, em média mais de um celular para cada habitante, visto que segundo o Instituto Brasileiro de Geografia e Estatística (IBGE, 2007) a população nacional é de aproximadamente 190 milhões de habitantes. A partir de tal informação podemos inferir que o setor de telefonia móvel torna-se um importante mercado para os desenvolvedores de software, caracterizado pelo grande número de dispositivos portáteis de comunicação existentes. Neste cenário, estão inseridas as tecnologias de desenvolvimento de software voltadas exclusivamente para dispositivos móveis como é o caso da arquitetura de desenvolvimento Java 2 Micro Edition (J2ME) pertencente à empresa de tecnologia Oracle que desenvolve seus aplicativos utilizando a linguagem de desenvolvimento de software Java. Esta é uma linguagem de programação fácil de dominar, possui um ambiente seguro e portável. É adotada por grande parte das empresas fabricantes de telefones móveis e pelas operadoras de telefonia móvel, além de possuir uma comunidade de desenvolvedores que está estimada em mais de 2 milhões de pessoas (MUCHOW, 2004). J2ME vem acompanhando o avanço dos dispositivos móveis que vem se acentuando constantemente, onde podemos destacar o significativo avanço tecnológico que possibilitou que as especificações da linguagem Java como Java Standard Edition (SE) e Java Enterprise Edition (EE) passassem a ser aplicadas para a versão móvel do Java. Entretanto ainda apresenta limitações que muitas vezes impossibilitam os desenvolvedores de utilizarem as melhores tecnologias, devido a restrições impostas pela arquitetura dos dispositivos móveis, ou mesmo por deficiências do ambiente de desenvolvimento.

13 INTRODUÇÃO 12 Como conseqüência deste cenário tecnológico os desenvolvedores de aplicativos móveis passaram a utilizar padrões de projeto no desenvolvimento de suas aplicações; obtendo assim, significativas conquistas, como no caso dos problemas que ocorrem durante o desenvolvimento da interface gráfica de uma aplicação para um dispositivo móvel em MIDP (Mobile Information Device Profile), sendo que os problemas foram solucionados através do uso de padrões de projeto específicos, através de soluções alternativas para os referidos problemas. O presente trabalho delimita-se em quatro partes principais, orientada aos conceitos referentes à arquitetura da plataforma de desenvolvimento J2ME, Padrões de Projetos, limitações tecnológicas existentes no desenvolvimento de interfaces gráficas para dispositivos móveis, por fim, é apresentada a atuação dos padrões projetos específicos na resolução de problemas referentes ao desenvolvimento de interfaces, sendo que esta é a principal contribuição do presente trabalho para o meio acadêmico. 1.1 Justificativa Padrão de Projeto ainda é um conceito em aberto no que diz respeito ao desenvolvimento de software para dispositivos móveis, isso porque a maioria dos padrões existentes é conhecida e aplicada em plataformas como Java SE e Java EE, entretanto, vem sendo incorporados constantemente à plataforma de desenvolvimento móvel. A grande vantagem da utilização de um Padrão de Projeto em um problema de software está relacionada ao fato dos padrões de projetos utilizarem abordagens comprovadamente funcionais que antecipam necessidades futuras (LINHADECODIGO, 2011), a fim de facilitar a manutenção e possíveis atualizações do sistema. A relevância deste trabalho vem da utilidade e importância que os dispositivos móveis possuem, aparelhos como celulares e computadores portáteis a cada dia tornam-se mais populares e modernos. Utilizar métodos já testados e conhecidos através dos padrões de projetos para solucionar problemas comuns do desenvolvimento de GUI para dispositivos móveis reduz os custos de desenvolvimento de projeto, como também cria um ambiente padronizado de desenvolvimento. Tais informações possuem grande valor, não só para os

14 INTRODUÇÃO 13 desenvolvedores, como também para a comunidade acadêmica que poderá fazer uso de tais conceitos em seus projetos acadêmicos. 1.2 Definição do Problema A computação móvel é caracterizada pela utilização de computadores portáteis com capacidade de comunicação, fortemente associada com a mobilidade de hardware, software e informação (TEWARI & GRILLO, 1995). Entretanto, na fase de desenvolvimento de uma aplicação para o ambiente móvel um grande número de aspectos deve ser analisados, principalmente fatores relacionados a limitações de hardware existentes e a diversidade de dispositivos. Identificar alternativas para sanar algumas das limitações impostas, através de conceitos já existentes, que tratem de soluções conhecidas e testadas do processo de desenvolvimento de software, que possam ser aplicadas ou mesmo adaptadas a arquitetura móvel do Java J2ME, é mais um dos desafios que precisam ser contornados quando lidamos com projetos para dispositivos móveis. Analisando padrões de projetos que são aplicados na resolução de problemas referentes à interface gráfica da plataforma J2ME, algumas questões podem ser levantadas, entre elas citamos: Quais são os tipos de Padrões de Projetos que podem ser aplicados na resolução de problemas referentes ao desenvolvimento de GUI da plataforma J2ME? Quais as conseqüências da utilização de determinados padrões, em relação aos problemas propostos? 1.3 Hipóteses Alguns dos problemas encontrados durante o desenvolvimento de interfaces gráficas para dispositivos móveis são solucionados através do uso de padrões de projetos específicos da arquitetura J2ME.

15 INTRODUÇÃO 14 Padrões de Projetos quando utilizados na resolução de problemas referentes ao desenvolvimento de interfaces gráficas, minimizam as limitações existentes, através das boas práticas de programação, orientadas pelos padrões. 1.4 Objetivos Geral Analisar os principais tipos de padrões de projetos que se aplicam a plataforma móvel do Java J2ME, descrevendo suas características e resultados na resolução de problemas referentes ao desenvolvimento de interface gráfica Específicos Identificar e analisar, na literatura especializada, os principais Padrões de Projeto, que se aplicam ao ambiente de desenvolvimento móvel; Avaliar aspectos relevantes dos Padrões de Projetos quando aplicados na resolução de problemas referente ao desenvolvimento de interfaces gráficas para dispositivos móveis; Ponderar a relação existente entre os Padrões de Projeto e a plataforma móvel do Java J2ME. 1.5 Metodologia A pesquisa trata de um estudo bibliográfico dos principais Padrões de Projeto que podem ser aplicados na resolução de problemas referente ao desenvolvimento de interfaces gráficas para dispositivos móveis, através da plataforma J2ME. Na primeira etapa desse trabalho, foi realizado o levantamento da bibliografia existente e um estudo das diversas metodologias e tecnologias referentes aos temas Padrões de Projeto e Java J2ME. Obtendo assim conceitos relevantes à pesquisa

16 INTRODUÇÃO 15 monográfica como: tipos de padrões de projeto, ambiente móvel e restrições de aplicabilidade. A metodologia utilizada na realização deste estudo consiste em uma pesquisa bibliográfica referente aos temas principais que são respectivamente: padrões de projeto e a plataforma Java J2ME, apresentando suas principais característica e limitações. Para o presente estudo, foram utilizadas fontes secundarias como livros, revistas, sites especializados com informações relevantes ao tema, além de artigos já publicados e monografias que tratem de informações de importante relevância para o presente trabalho. Os materiais consultados apresentam publicações desde o ano de 1995 até 2011, visto que alguns dos artigos estudados apresentam datas referentes a tal período de tempo. A análise dos materiais seguiu uma metodologia de análise de conteúdos por permitir maior compreensão das questões abordadas pelos autores e a apresentação de soluções aos problemas.

17 JAVA 2 MICRO EDITION (J2ME)

18 JAVA 2 MICRO EDITION (J2ME) 17 2 JAVA 2 MICRO EDITION (J2ME) Neste capítulo serão abordados conceitos referentes aos tipos de arquiteturas que são suportadas pelo Java. Com objetivo de mostrar as definições referentes à arquitetura, a fim de entendermos a diferença e relação entre elas. 2.1 Visão Geral da Arquitetura Java A plataforma Java 1 já atraiu mais de 6,5 milhões de desenvolvedores de software em todo o mundo, devido principalmente a sua portabilidade e abrangência (JAVA, 2011). Java é uma linguagem de programação orientada a objetos classificada em três especificações que são baseadas em suas funcionalidades e propósitos de desenvolvimento, como apresentado na figura abaixo. Figura 1 - Plataformas Java Fonte: Tecnologia e Gestão da Informação (2008,58) Elementos apresentados na figura: 1 - Java Micro Edition (JME) Tecnologia Java voltada essencialmente para o desenvolvimento de aplicações para dispositivos móveis. A arquitetura JME é constituída de configurações, perfis e pacotes opcionais. Através da combinação destes três elementos são construídos ambientes de execução completos e que preenchem os requisitos de diversas classes de dispositivos. Cada um desses elementos é otimizado levando em conta as restrições de memória, armazenamento e processamento de uma determinada categoria de dispositivos. O resultado é uma 1 Plataforma Java é o nome dado ao ambiente computacional, ou plataforma, elaborado pela empresa Sun Microsystems.

19 JAVA 2 MICRO EDITION (J2ME) 18 plataforma comum, que é compatível com a maioria dos dispositivos móveis do mercado (PEREIRA, 2006). 2 - Java Standard Edition (JSE) é considerada a plataforma mais abrangente do Java, devido principalmente ao fato da plataforma JME e JEE ter derivado de sua estrutura. Foi projetada para desenvolver aplicações para computadores pessoais conhecidos como Desktops. Há dois produtos principais da família da plataforma JSE que são conhecidos como Java Runtime Environment (JRE) e o Java Development Kit (JDK). O JRE fornece bibliotecas à Máquina Virtual Java e outros componentes para executar applets 2 e aplicativos escritos na linguagem de programação Java. Temos ainda as principais tecnologias de implantação que fazem parte da JRE que são o Java Plug-in 3 e o Java Web Start. O Java Plug-in possibilita que as applets sejam executadas em browsers populares e o Java Web Start implementa aplicações autônomas em uma rede (ORACLE, 2010). O JDK pode ser descrito como um conjunto de utilitários que permitem criar sistemas de software para a plataforma de desenvolvimento Java, para tanto usa um super conjunto do JRE, contendo todo o ambiente necessário para a criação e execução de aplicações Java. Faz parte desse ambiente de desenvolvimento a linguagem de desenvolvimento Java, Máquina Virtual Java, o Compilador Java, entre outras. 3 - Java Enterprise Edition (JEE) é uma plataforma amplamente usada dispondo de um conjunto de tecnologias que reduz significativamente o custo e a complexidade do desenvolvimento, implantação e gerenciamento dos aplicativos das várias camadas centradas em servidor (NETBEANS, 2011). Projetada para o desenvolvimento de aplicações mais robustas, voltadas para o setor empresarial que dispõem de computadores com grande poder de processamento o Java EE possui alguns componentes fundamentais como o Enterprise Java Beans (EJB) que permite o desenvolvimento rápido e simplificado 2 Applets - é um software aplicativo que é executado no contexto de outro programa (como por exemplo um web browser), uma applet geralmente executa funções bem específicas. 3 Plug-in - é um programa de computador usado para adicionar funções a outros programas maiores, provendo alguma funcionalidade especial ou muito específica.

20 JAVA 2 MICRO EDITION (J2ME) 19 de aplicativos distribuídos baseado na tecnologia Java e o Java Persistence API que permite aos desenvolvedores gerenciar os dados utilizando o mapeamento objetorelacional (ORM) em aplicativos construídos na plataforma Java (NETBEANS, 2011). NOTA: Em dezembro de 1998, a Sun introduziu o nome "Java 2" (J2) de forma a coincidir com o lançamento do Java 1.2. Esta nova convenção de nomenclatura se aplica a todas as edições do Java, Standard Edition (J2SE), Enterprise Edition (J2EE), e Micro Edition (J2ME). 2.2 J2ME J2ME engloba um conjunto de tecnologias desenvolvidas para dispositivos que possuem limitações tecnológicas, dispositivos estes que possuem pouca capacidade de armazenamento, memória e têm processamento restrito. Tais limitações são percebidas em dispositivos como: Pagers, Celulares, Smartphones, Palm (ORACLE, 2010). Java 2 Micro Editon é uma plataforma de desenvolvimento inteiramente projetada com o intuito de atender as necessidades da área de computação móvel. Pode ser definida também como sendo uma coleção de tecnologias e especificações, que implementa a linguagem Java através de subconjuntos de componentes J2SE(Java 2 Standart Edition); isto porque J2ME é uma versão reduzida da J2SE. Esta redução foi realizada devido ao fato da maioria dos dispositivos móveis possuírem pouca memória para suportar a J2SE, daí a necessidade de uma versão reduzida da J2SE e uma máquina virtual menor (BEVILACQUA, 2007). Java 2 Enterprise Edition (J2EE) surgiu devido ao avanço da internet e das aplicações empresarias. Projetada para desenvolvimento de aplicações baseadas em servidores (máquinas que possuem um alto poder de processamento e memória).

21 JAVA 2 MICRO EDITION (J2ME) 20 Figura 2 - Relação entre as edições da plataforma Java. Fonte: Filipe da Silva Regue ira (2006,22). Na Figura 2 podemos observar o relacionamento entre as edições da plataforma Java. Perceba que arquitetura J2SE está totalmente inclusa na J2EE; o que não ocorre com a J2ME, isto porque, ela é apenas uma versão reduzida da J2SE e J2EE Arquitetura Como apresentado anteriormente J2ME é uma arquitetura de desenvolvimento voltada essencialmente para dispositivos móveis; no entanto no mercado existem variados tipos de dispositivos móveis, com funcionalidades e arquiteturas de hardware diferenciadas; para contornar essa variação de funcionalidades e arquitetura a solução encontrada pela equipe da Sun Java Community Process 4 (JCP), foi a de separar a arquitetura do J2ME em duas partes, que são apresentadas como os conceitos de Configuração e Perfil Configuração Uma das principais características da configuração é o fato de poder definir uma plataforma mínima para uma determinada categoria de dispositivos móveis. De acordo com a Sun (2002), uma configuração diz respeito a dispositivos que possuam restrições e limitações de recursos. 4 Java Community Process, ou JCP, é a um processo formalizado que permite que as partes interessadas se envolvam nas definições de versões futuras e funcionalidades da plataforma Java. O processo JCP utiliza os Java Specification Requests (JSRs), que são documentos formais que descrevem as especificações propostas e tecnologias que se pretende adicionar na plataforma Java.

22 JAVA 2 MICRO EDITION (J2ME) 21 Sendo assim uma configuração é responsável por definir uma máquina virtual, um conjunto mínimo de bibliotecas e os recursos da linguagem Java que estão disponíveis para os dispositivos de uma determinada categoria. Atualmente existem dois tipos de configuração que são CLDC (Connected Limited Device Configuration) configuração mais leve e CDC (Connected Device Configuration) - que é uma configuração mais pesada, que inclui todas as classes definidas pelo CLDC. Na figura 3 é apresentada a relação existente entre elas, perceba que a configuração CLDC está totalmente inclusa na CDC, isto porque a configuração CLDC é um subconjunto do CDC como pode ser observado na figura. Figura 3 - Relação entre o CDC e o CLDC Fonte: Connected Limited Device Configuration (CLDC) O CLDC foi desenvolvido para dispositivos que possuam limitações tecnológicas, como podemos exemplificar os vários dispositivos eletrônicos de comunicação que usamos no nosso dia-a-dia como os Telefones Celulares e Terminais de vendas. Tais dispositivos possuem restrições severas de hardware como uma interface gráfica mais restrita, tendo em vista o tamanho da tela, pouca quantidade de memória disponível, a vida da bateria que é curta, entre outras limitações que afetam diretamente os tipos de aplicações baseadas na tecnologia Java. O CLDC não requer muitos recursos e tem como objetivo definir uma plataforma Java padrão mínima para dispositivos que possuem características especificas. Para que tal dispositivo pertença a essa configuração, este deve possuir as seguintes restrições:

23 JAVA 2 MICRO EDITION (J2ME) KB de memória persistente e pelo menos 32 KB de memória volátil, em um total de 192 KB; 16 bits ou processadores de 32 bits Baixo consumo de energia, freqüentemente usando energia de baterias; Conectividade a algum tipo de tipo de rede, em geral sem fio. Como os recursos de software que cada dispositivo possui são muito variados, o CLDC assume que um sistema operacional ou kernel 5 mínimo esteja disponível para gerenciar o hardware. Esse sistema deve prover pelo menos uma entidade escalonável para rodar a Java Virtual Machine. Dentre as áreas que essa especificação se aplica podemos citar as bibliotecas Core Java (java. lang.*, java. util.*), entrada e saída e rede. Entretanto a especificação CLDC não se aplica a interface com o usuário, tratamento de eventos, entre outros. A configuração CLDC dá suporte a pacotes opcionais, que são Wireless Messaging API (WMA) para implementar recursos de envio e recebimento de mensagens como SMS (), MMS () e o Media Mobile API (MMA), que possui os recursos multimídia, como vídeo, áudio, etc. CDC (Connected Device Configuration) Desenvolvido para dispositivos que possuem maior capacidade tecnológica como as TVs de nova geração e alguns PDA (Assistente Pessoal Digital) que suportam CDC e possuem processadores de 32 bits, pelo menos 2 MB de memória principal e 2,5 MB de ROM, e algum tipo de conectividade de rede. De forma geral o CDC pode ser definido como um super conjunto do CLDC. 5 Kernel - É o componente central do sistema operativo da maioria dos computadores; ele serve de ponte entre aplicativos e o processamento real de dados feito a nível de hardware.

24 JAVA 2 MICRO EDITION (J2ME) 23 Tabela 1 - Diferenças entre CDC e CLDC CDC Dispositivo Com maior capacidade Computacional. Discos com grande capacidade de armazenamento. Grande capacidade de Memória Fonte Permanente de Energia Set-Top Boxes de TVs a cabo (Digitais), Sistemas Automotivos, Eletrodomésticos. Fonte: GOMES, 2007 CLDC Conectividade Intermitente Pouca capacidade de Armazenamento Pouca capacidade de Memória Fonte Limitada de Energia (Baterias) Celulares, Smartphones, PDAs, Pagers, entre outros. Vale lembrar que atualmente uma crescente convergência tecnológica está ocorrendo nas indústrias e, devido a essas antigas e futuras semelhanças e diferenças muito provavelmente essa classificação poderá ser alterada a qualquer momento (COUTINHO, 2005) Perfil É um conjunto de padrões de APIs 6 que oferece suporte para uma gama de dispositivos que são construídos sobre uma determinada configuração (SUN, 2002). O perfil se encarrega de definir o denominador comum entre os dispositivos, onde a combinação de uma configuração com um perfil forma uma aplicação J2ME. O MIDP (Mobile Information Device Profile) é o perfil suportado pela CLDC e foi desenvolvido para rodar em cima do CLDC, além de estender a CDC, aumentando e criando alguns requisitos mínimos de Hardware e Software. (GOMES, 2007). Ou seja, o perfil MIDP é usado em conjunto com a Configuração CLDC, além de definir APIs para componentes, entrada e tratamento de eventos de interface com o usuário, levando em consideração as limitações de tamanho de tela e memória. O perfil MIDP possui características como: 6 Interface de Programação de Aplicações (API) - é um conjunto de rotinas e padrões estabelecidos por um software para a utilização das suas funcionalidades por programas aplicativos que não querem envolver-se em detalhes da implementação do software, mas apenas usar seus serviços.

25 JAVA 2 MICRO EDITION (J2ME) 24 Suporte para interface gráfica com o usuário (GUI): A interface GUI é otimizada para o tamanho da tela; com variados métodos de entrada de dados como teclado de telefones celulares ou mesmo por eventos em tela Touchscreen 7. Extensiva Conectividade: por apresentar maior flexibilidade no desenvolvimento de aplicações cliente/servidor tendo em vista que o perfil MIDP implementa os padrões de protocolos como o HTTP, HTTPS, Sockets e Datagramas por meio do framework GCF (Generic Connection Framework), além de serviços SMS (Short Menssage Service), GSM (Generic Service Menssage). Para executar uma aplicação MIDP é preciso dispor de uma máquina virtual menor, que funcione conforme as especificações da configuração CLDC, para atingir tal objetivo a equipe de desenvolvedores da Sun criou Kylobyte Virtual Machine. 2.3 Máquina Virtual K (KVM) A KVM (Kylobyte Virtual Machine) foi projetada para ser menor e ter a maior eficiência possível, precisando ainda manter-se rápida para as linguagens Java (DEVMEDIA, 2011). O termo K da sigla KVM surgiu para fazer alusão aos poucos Kylobytes necessários para que a máquina virtual execute uma aplicação na configuração CLDC. Na configuração CDC está disponível a CVM (Compact Virtual Machine), que é uma JVM mais exigente que a KVM, disponível para dispositivos móveis que disponham de uma configuração de no mínimo um processador de 32-bit 8 e 2 MB total de memória, como os comunicadores sem fio e PDA 9 s de alto nível. A vantagem da KVM se deve ao seu tamanho que é realmente pequena, sendo que diversas funcionalidades da máquina virtual e da linguagem não essenciais como manipulação de eventos, tornaram-se opcionais, onde a escolha de uma 7 Tela sensível ao toque 8 Bite - Unidade de medida 9 Assistente Pessoal Digital; Computador de dimensões reduzidas.

26 JAVA 2 MICRO EDITION (J2ME) 25 configuração em particular define o que deve ou não ser incluído na implementação da KVM. A maior desvantagem da KVM está relacionada ao seu pequeno tamanho; sendo que para manter o tamanho reduzido a Sun comprometeu a linguagem e a máquina virtual, fazendo com que a programação em J2ME seja muito diferente da programação para Standard ou Enterprise Edition.

27 DESIGN PATTERNS

28 DESIGN PATTERNS 27 3 DESIGN PATTERNS Em engenharia de software um padrão de projeto é uma solução que foi utilizada varias vezes para resolver um determinado problema no projeto da aplicação. Podemos definir então padrões de projeto ou como são conhecidos na língua inglesa Design Patterns como sendo um grupo de soluções já testadas e utilizadas para problemas comuns do processo de desenvolvimento. 3.1 Definição Cada padrão descreve um problema o qual ocorreu diversas vezes em nosso ambiente, e então descreve os principais pontos da solução do determinado problema, de forma que podemos utilizar essa solução mais de uma vez (ALEXANDER, 1977). No entanto Alexander estava falando sobre padrões em construções e cidades, mas que também é verdade para padrões de projeto relativos à orientação a objetos. Isto porque orientação a objetos reflete os objetos reais em um determinado contexto. Um padrão de projeto nomeia e identifica os principais aspectos de uma estrutura de projeto comum para torná-la útil para criação de um projeto orientado a objetos reutilizável. Portanto o padrão de projeto identifica as classes e instancias participantes, seus papéis, colaborações e a distribuição de responsabilidades. Por fim padrões de projetos identificam o problema e descreve se o padrão pode ser utilizado, definindo custos e benefícios de sua utilização. Alur (2001) define algumas características dos padrões de projetos como: Os padrões são observados através da experiência. Os padrões normalmente são escritos em um formato estruturado. Os padrões evitam a reinvenção da roda. Existem padrões de diferentes níveis de abstração. Os padrões suportam melhorias contínuas.

29 DESIGN PATTERNS 28 Os padrões são artefatos reutilizáveis. Os padrões comunicam as melhores práticas. Os padrões podem ser utilizados em conjunto para resolverem problemas maiores que sozinhos não conseguiriam. Percebemos ao analisar as características dos padrões de projetos que um padrão pode ser descrito como um guia que descreve através de experiências obtidas, maneiras de solucionar problemas corriqueiros existentes no processo de desenvolvimento. Então um padrão de projeto não deve ser descrito como uma solução para um determinado problema e sim como um guia que descreve como solucionar um problema em questão. 3.2 Descrevendo um Padrão de Projeto Gamma (1997) descreve em seu livro a estrutura de um padrão de projeto, replicada conforme o modelo abaixo. Perceba que ele descreve a estrutura em seções, visando facilitar a leitura e compreensão dos elementos existentes no padrão. Nome e Classificação de um padrão O nome do padrão expressa a sua própria essência de forma sucinta. Um bom nome é vital, porque ele se tornará parte do seu vocabulário de projeto. Intenção e Objetivo É uma curta declaração que responde às seguintes questões: o que faz um padrão de projeto? Que tópico ou problema particular de projeto ele trata? Também conhecido como Outros nomes bem conhecidos para o padrão, se existirem. Motivação Um cenário que ilustra um problema de projeto e como as estruturas de classes e objetos no padrão soluciona o problema. O cenário

30 DESIGN PATTERNS 29 ajudará a compreender as descrições mais abstratas do padrão que vêm a seguir. Aplicabilidade Quais são as situações nas quais o padrão de projeto pode ser aplicado? Que exemplos de maus projetos ele pode tratar? Como você pode reconhecer essas situações. Estrutura Uma representação gráfica das classes do padrão usando uma notação baseada na Object Modeling Technique 10 para ilustrar seqüência de soluções e colaborações entre objetos. Participantes As classes ou objetos que participam do padrão de projeto e suas responsabilidades. Colaborações Como as classes colaboram para executar suas responsabilidades. Conseqüências Como o padrão suporta a realização de seus objetivos? Quais são os seus custos e benefícios e os resultados da sua utilização? Que aspecto da estrutura de um sistema ele permite variar independentemente? Implementação Que armadinhas, sugestões ou técnicas você precisa conhecer quando da implementação do padrão? Existem considerações especificas da linguagem? Exemplo de Código Fragmentos ou blocos de código que ilustram como você pode implementar o padrão. Uso conhecidos Exemplo do padrão encontrado em sistemas reais. Podemos notar ao observar a estrutura do padrão que determinadas seções trazem informações muito importantes para o projeto, e alguns autores como Gamma (1997) define que um padrão possui quatro elementos essenciais que são: 1. O nome do padrão - é utilizado para descrever um problema, suas conseqüências e soluções. Nomear um padrão facilita a comunicação dos 10 Object Modeling Technique - é um método de modelagem e projeto orientado a objetos.

31 DESIGN PATTERNS 30 mesmos juntamente com suas vantagens e desvantagens para outras pessoas. 2. O problema - descreve quando deve ser aplicado o padrão, explica qual o problema e o seu contexto. Pode ocorrer de o problema incluir uma lista de condições que devem ser conhecidas antes de definir se o padrão deve ou não ser utilizado. 3. A solução descreve os elementos que fazem parte da implementação, as relações entre os elementos, suas responsabilidades e colaborações. 4. As conseqüências são os resultados, as vantagens e desvantagens de se utilizar o padrão. São importantes, pois avaliam alternativas de implementação para entender os custos e benefícios de aplicar o padrão. Para obter os melhores resultados na utilização de um padrão de projeto não necessariamente é preciso estudá-lo por completo, visto que algumas das especificações contidas no padrão são objetivas e esclarecedoras, possibilitando assim seu uso imediato. Entretanto para fazer uso de todo o potencial do padrão, e conseqüentemente obter os melhores resultados é preciso conhecer todos os seus conceitos de aplicabilidade, maximizando assim seu efeito no projeto. Ou seja, por mais diversificados que seja os padrões de projetos possuem a mesma estrutura básica de elementos; deve conter Nome, Problema, Solução e Conseqüência. 3.3 Classificação dos Padrões de Projetos Segundo Gamma (1997) Os padrões de projetos estão organizados de forma a facilitar uma eventual busca, visto que existem vários tipos de padrões de projeto. Essa organização e classificação implicam em um aprendizado mais eficiente e rápido. Para classificar um padrão é necessário ter como base dois critérios que são:

32 DESIGN PATTERNS Classificação segundo o Escopo Especifica se o padrão é aplicado primariamente a classes ou objetos. Padrões que possuem escopo de classe trabalham com relações entre as classes e subclasses. Relação esta que é estabelecida através de herança e definida em tempo de compilação. Podemos citar como exemplo os tipos de padrão Adapter e Interpreter. Durante o tempo de execução as relações entre os objetos podem ser alteradas, tornando mais flexíveis suas relações. Padrões como Singleton e Facede definidos por Gamma (2005) possuem escopo de objeto, pois, trabalham com relações entre os objetos. 2. Classificação segundo o propósito Divide-se em propósito de Criação, Estrutural e Comportamental, divisão esta que reflete o que o padrão faz. o Propósito de criação vai ajudar a desenvolver sistemas que são independentes de como os objetos são criados, compostos e representados. Um padrão de criação com o escopo de classe utiliza herança para variar a classe que é instanciada, enquanto que um padrão de criação com o escopo de objeto delega o processo instanciar para outro objeto. Quando se utiliza os padrões de criação o sistema tem apenas conhecimento das interfaces do objeto e as configurações podem ser estáticas, que são especificadas em tempo de compilação ou dinâmicas que são especificadas em tempo de execução. Propósito Estrutural são padrões de projeto que vão facilitar o projeto, identificando as melhores maneiras de entender os relacionamentos entre as entidades, envolvendo-se também na composição das classes e objetos. Propósito Comportamental Padrões com propósito comportamental estão envolvidos com algoritmos e a atribuição de responsabilidades entre os projetos. Padrões comportamentais com escopo de classe fazem uso de herança na distribuição de comportamento entre as classes, enquanto que o escopo de objeto utiliza composição de objeto. Na tabela 4 abaixo é possível verificar os critérios de classificação, bem como o nome de cada padrão de projeto e classificação:

33 DESIGN PATTERNS 32 Figura 4 - Classificação dos Padrões de Projetos Fonte: Antes de aplicar um padrão de projeto efetivamente é necessário definir qual o padrão que será utilizado, padrão que deve ser o mais apropriado para o problema, entretanto existe mais de 20 tipos de padrões e encontrar aquele que melhor trata o problema não é tarefa simples. 3.4 Selecionando um Padrão de Projeto Para selecionar o melhor padrão é necessário ter em mente o problema em questão, num entanto existem alguns conceitos que lhe ajudará nessa complicada tarefa. GAMMA (1997) define alguns desses conceitos: Estude como os padrões se inter-relacionam. Estudar tais relacionamentos pode ajudar a direcioná-lo para o padrão. Estude padrões de finalidades semelhantes, a fim de obter uma visão sobre as semelhanças e diferenças existentes nos padrões com propósitos similares.

34 DESIGN PATTERNS 33 Considere o que deveria ser variável no seu projeto. Para esta abordagem deve ser considerado o que você quer que seja capaz de mudar sem reprojetar. Considere como padrões de projeto solucionam problemas de projeto Encontrar objetos apropriados, determinar suas granularidades 11, especificar interfaces e varias outras formas pelas quais padrões de projeto solucionam problemas de projeto. Examine a seção intenção Leia a seção intenção de cada padrão para encontrar os padrões que sejam relevantes para o seu problema. Lembre-se que na seção intenção são discutidas questões como o que faz o padrão e qual tipo de problema ele resolve. 3.5 Utilizando um Padrão de Projeto Ao escolher qual padrão de projeto usar é preciso definir o método de aplicação do padrão no projeto. Vejamos uma abordagem passo a passo definida por Gamma (1997) dá aplicação de um padrão de projeto efetivamente. 1. Leia o padrão por inteiro uma vez, para obter uma visão geral. Preste atenção em particular nas seções Aplicabilidade e Conseqüências, para assegurar-se de que o padrão é o correto para o seu problema; 2. Estude as seções Estrutura, Participantes e Colaborações. Para garantir que você compreendeu bem as classes e objetos no padrão e como se relacionam entre si; 3. Olhe a sessão exemplo de código, para ver um exemplo concreto do padrão codificado. O estudo do código ajuda a aprender como implementar o padrão. 4. Escolha nomes para os participantes do padrão que tenham sentido no contexto da aplicação. Se você esta utilizando o padrão Cascading Menu é 11 Granularidade- é a extensão à qual um sistema é dividido em partes pequenas, ou o sistema propriamente dito ou sua descrição ou observação.

35 DESIGN PATTERNS 34 aconselhável utilizar nomes de classes como TextLayoutCascadingMenu. Tal método ajudará a tornar o padrão mais explícito no momento da implementação. 5. Defina as classes. Estabeleça os relacionamentos de herança e identifique as classes existentes que serão afetadas pelo padrão e modifique-as de acordo. 6. Defina nomes específicos da aplicação para as operações no padrão Seja consistente nas suas convenções de nomenclaturas, use a seção colaborações associada com cada operação como guia. 3.6 ANTIPATTERS Um AntiPadrão lhe informa como ir de um problema até uma solução ruim. (FREEMAN & FREEMAN, 2007, p. 478). Após a publicação do livro da GOF Soluções Reutilizáveis de Software Orientado a Objeto muitos desenvolvedores aderiram aos conceitos apresentados no livro, passaram então a utilizar tais conceitos referentes ao uso dos padrões de projeto em seus projetos de software, por sua vez, começou naturalmente a surgir os AntiPatterns. Brown (1998) propõe uma estrutura para a descrição de antipadrões, composta pelas seguintes seções: Nome do antipadrão; Forma geral; Sintomas e conseqüências; Causas típicas, variações, a nova solução indicada, algumas exceções conhecidas e as soluções que são relacionadas. Identificar as práticas ruins pode ser tão valioso como a identificação das boas práticas e o objetivo principal dos Antipadrões é descrever as formas úteis de

36 DESIGN PATTERNS 35 modificar o código para obter um resultado de curto prazo. Não podemos confundir uma solução ruim com uma solução errada, isto porque um antipadrão não deixa de ser uma solução para um determinado problema. Pode ser descrito como um guia de sobrevivência que identifica alguns dos principais cenários em que questões destrutivas para o processo de software podem ser geridas e solucionadas a fim de resolver um problema imediato. Assim como é importante conhecer alguns dos padrões de projetos e suas boas praticas de desenvolvimento, é importante ter conhecimento das praticas ruins relacionada ao padrão, que são úteis quando o desenvolvedor não conhece a solução ideal, entretanto tem conhecimento do que não deve ser feito. Observe o exemplo abaixo: Nome: Vidro Quebrado Problema: você precisa ir ao trabalho de carro, você esqueceu a chave dentro do carro e o carro encontra-se chaveado. Como faço para não me atrasar para o trabalho? Contexto: tranquei as chaves dentro do carro. Solução: quebrar a janela entre no carro ligue-o e dirija para o trabalho. Perceba que a solução encontrada não é a ideal, mas que foi eficaz na resolução do problema proposto, no entanto, ao fazer uso de tal solução todos os dias, no fim do mês o preço da janela tornará a solução inviável. Portanto o uso do antipadrão não é uma solução final que deva ser aplicada ao problema, mas sim uma resposta de curto prazo.

37 DESIGN PATTERNS Interface Gráfica dos Aplicativos Móveis Interface Gráfica Uma aplicação que possui uma interface gráfica atraente, agradável, bem trabalhada é o primeiro passo para o sucesso de uma aplicação. Entretanto, para obter os melhores resultados ao desenvolver um aplicativo para dispositivos móveis, o desenvolvedor deve estar atento as limitações tecnológicas existentes. Os menus, ícones apresentados nas telas gráficas devem possuir uma boa navegabilidade, sem consumir muitos recursos do aparelho, de modo que as opções sejam acessadas por comandos intuitivos e de fácil acesso e visualização. O desenvolvimento de interface gráfica em MIDP é formado por uma API de altonível e outra de baixo nível, sendo que a API de baixo-nível é baseada no uso da classe abstrata Canvas. Já a API de alto-nível é formada pela classe Screen que é uma forma de alto-nível voltada à construção da Interface Gráfica dos dispositivos móveis. A classe Screen contém objetos gráficos prontos, como forms, lists, alerts e textboxes, onde cada um pode ter uma aparência, que vai variar de acordo com o dispositivo em que está sendo executada a aplicação. A figura 5 demonstra a relação existente entre as classes de interface de usuário MIDP, perceba que tanto a classe Screen como a classe Canvas herdam de Displayable que é uma superclasse abstrata que controla o que é mostrado na tela e os comandos enviados pelos usuários.

38 DESIGN PATTERNS 37 Figura 5 - Classes de interface do usuário MIDP Fonte: Geraldo Antonio Ferreira (2005,25) A classe Canvas da API é a forma de mais baixo-nível; ela proporciona maior liberdade na implementação dos gráficos e eventos, sendo que há um controle mais direto da interface de usuário com pintura na tela de primitivas gráficas, como uma reta, quadrado e círculo, diferentemente da classe Screen, em que é de responsabilidade do programador da aplicação certificar-se da portabilidade destas funções através de MIDs de diferentes características, tais como: tamanho do Display, se o Display é colorido ou preto e branco e o tipo do teclado. Ou seja, utilizando essa forma de construção, o desenvolvedor vai ser responsável por todos os detalhes da interface Limitação Gráfica dos Dispositivos Móveis Uma das principais barreiras do desenvolvimento de interfaces gráficas para dispositivos móveis está relacionada às limitações tecnológicas existentes nos dispositivos, que muitas vezes possuem diferentes capacidades computacionais, bem como dispõem de telas de tamanho diversos e cores variadas. Tais limitações e variações tornam o desenvolvimento da interface gráfica um tanto quanto complexa, onde muitas vezes esbarramos em limitações que não são comuns; é necessário então abrir mão de alguns métodos tradicionais de desenvolvimento de software, e

39 DESIGN PATTERNS 38 buscar caminhos alternativos para solucionar as dificuldades impostas pela tecnologia disponível. Normalmente os dispositivos móveis possuem uma tela de pequena dimensão e baixa resolução, que muitas vezes limitam a quantidade de informações passadas ou mesmo dificultam a visualização e navegabilidade, devido principalmente a quantidade de informações que podem ser exibidas. Na figura 6 podemos observar um exemplo claro de tal limitação. Figura 6 - Limitação de recursos gráficos em um dispositivo Móvel Fonte: Fonte: Perceba que a aplicação foi desenvolvida de forma otimizada, dispondo de uma interface simples, com poucos elementos e com telas que possuem um número mínimo de interações. Algumas das limitações referentes às linguagens de programação relacionadas à interface visual com usuário, muitas vezes impossibilitam o desenvolvedor até mesmo de mudar as cores, alinhar os elementos na tela, ou mesmo modificar o tamanho dos componentes. O que ocorre é que muitas destas linguagens de programação foram desenvolvidas em uma época que os dispositivos móveis possuíam menos recursos, com relação aos dispositivos atuais (JAVA MAGAZINE, 2010).

40 DESIGN PATTERNS 39 Diante de tais limitações enfrentadas durante o processo de desenvolvimento de interface gráfica para dispositivos móveis, surgem novos métodos, que buscam solucionar ou mesmo minimizar as dificuldades encontradas. Hui (2002) define quatro padrões de projetos desenvolvidos especificamente para solucionar problemas referentes ao desenvolvimento de interfaces gráficas dos dispositivos móveis que são: Cascading Menu, Wizard Dialog, Pagination e Slide Show, sendo que tais padrões apresentam soluções que buscam a otimização do processo de desenvolvimento gráfico, bem como propõem de maneira geral métodos que facilitam a interação do usuário com a aplicação, através da reorganização e automatização dos componentes gráficos da aplicação.

41 PADRÕES DE PROJETOS UMA SOLUÇÃO PARA PROBLEMAS GRÁFICOS DA PLATAFORMA J2ME.

42 PADRÕES DE PROJETOS UMA SOLUÇÃO PARA PROBLEMAS GRÁFICOS DA PLATAFORMA J2ME PADRÕES DE PROJETOS UMA SOLUÇÃO PARA PROBLEMAS GRÁFICOS DA PLATAFORMA J2ME. Os dispositivos móveis possuem requisitos de interface de usuário diferente dos requisitos utilizados em computadores desktops, devido ao menor porte computacional propiciado por uma plataforma. Contudo, um dos principais aspectos analisados no desenvolvimento é o tamanho do display de apresentação. De um modo geral, o tamanho das telas dos dispositivos portáteis é menor, se comparado a computadores pessoais tradicionais. 4.1 Padrão Cascading Menu De acordo com o crescimento gradual no desenvolvimento de sistemas computacionais, inevitavelmente, meios de navegação vão surgindo. Em muitos casos, dispositivos móveis necessitam atenção especial no momento do planejamento, principalmente no tocante a interfaces. Neste cenário, existem várias maneiras de implementar a navegação em sistemas computacionais e uma das mais conhecidas é através do uso de menus, onde cada menu dos dispositivos móveis é representado por meio de subclasses da classe javax.microedition.lcdui, isto porque todas as classes MIDP GUI estão no pacote Lcdui, ou seja, cada menu apresentado na tela é desenvolvido a partir dessa classe. A Tabela 2 demonstra alguns dos componentes da classe javax.microedition.lcdui: Tabela 2 - Componentes de interface gráfica e menu Aplicações baseadas J2ME A superclasse para componentes que podem ser adicionados a um ITEM formulário ou de alerta. LISTA Uma tela contendo uma lista de escolhas. TELA A superclasse de todas as classes de alto nível da interface do usuário. STRINGITEM Um item que pode conter uma cadeia. TEXTBOX TEXTFIELD A tela que permite ao usuário inserir e editar texto. Um componente de texto editável que pode ser colocado em um formulário. Fonte: Adaptado de Java Simples (2011)

43 PADRÕES DE PROJETOS UMA SOLUÇÃO PARA PROBLEMAS GRÁFICOS DA PLATAFORMA J2ME. 42 A Figura 6 abaixo demonstra o uso de menus em uma aplicação móvel, em que, normalmente o menu principal fica na horizontal e os submenus na vertical. De modo que cada elemento interativo apresentado na interface ofereça ao usuário uma maneira eficaz, eficiente e agradável de realizar tarefas através dos menus. Essa tendência reflete a necessidade das interfaces atuais para celulares, que são baseados em princípios de usabilidade que são definidos por atributos como facilidade de aprendizado, eficiência de uso, facilidade de memorização, consistência e flexibilidade (NIELSEN, 1993). Figura 7 - Hierarquia de Menus em um dispositivo Móvel Fonte: O problema relacionado com este padrão ressalta que Aplicações Midlet do Java ME que necessitam de muitos menus torna o uso de subclasses da classe javax.microedition.lcdui.list inviável, devido principalmente ao grande número de subclasses de List criados para cada menu, fato este, que torna complexo e custoso a gerência do controle de fluxo entre os menus. A solução adotada pelo padrão Cascading Menu remete-se a implementação de estruturas semelhante à arquitetura MVC (Model View Controller), pois abstrai o encadeamento existente entre as várias hierarquias de menus, separando a parte do modelo de dados (Model) da interface com o usuário (View) e da lógica de negócio (Controller), mantendo e atualizando assim o modelo de dados independentemente do tipo de visão que será utilizado.

Java ME e suas principais tecnologias de conectividade. Gracieli Begia Mateus

Java ME e suas principais tecnologias de conectividade. Gracieli Begia Mateus Java ME e suas principais tecnologias de conectividade Gracieli Begia Mateus Telefones Celulares no Mundo Fonte: UIT e Wireless Intelligence (Ovum/GSM Association) Posição do Brasil no Mundo Principais

Leia mais

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas Linguagem de Programação JAVA Professora Michelle Nery Nomeclaturas Conteúdo Programático Nomeclaturas JDK JRE JEE JSE JME JVM Toolkits Swing AWT/SWT JDBC EJB JNI JSP Conteúdo Programático Nomenclatures

Leia mais

Uma Introdução ao. Computação Móvel (MAC5743/MAC330) Prof. Alfredo Goldman Monitores: Rodrigo Barbosa Daniel Cordeiro

Uma Introdução ao. Computação Móvel (MAC5743/MAC330) Prof. Alfredo Goldman Monitores: Rodrigo Barbosa Daniel Cordeiro Uma Introdução ao J2ME Computação Móvel (MAC5743/MAC330) DCC-IME-USP Prof. Alfredo Goldman Monitores: Rodrigo Barbosa Daniel Cordeiro Visão Geral do Java 2 (1) A plataforma Java 2 engloba três elementos:

Leia mais

Manual de Operação Aplicativo ClickIt

Manual de Operação Aplicativo ClickIt Manual de Operação Aplicativo ClickIt Rev. 1.1 Agosto/2010 GSControl Automação Ltda. Rua Washington Luiz, 675 ITC Conjunto 1101 Centro Porto Alegre RS CEP 90010-460 Telefone: (51)3026-0945 / (51)3287-2167

Leia mais

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES Alexandre Egleilton Araújo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil araujo.ale01@gmail.com, jaime@unipar.br Resumo.

Leia mais

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) RELATÓRIO DE ENTREGA DO PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) PARA A ELABORAÇÃO DOS PLANOS MUNICIPAIS DE GESTÃO INTEGRADA DE RESÍDUOS SÓLIDOS PMGIRS PARA OS MUNICÍPIOS DE NOVO HORIZONTE, JUPIÁ, GALVÃO,

Leia mais

Marcus Vinicius Cruz Xavier. Rascunho do trabalho de conclusão de curso

Marcus Vinicius Cruz Xavier. Rascunho do trabalho de conclusão de curso Universidade Federal de Santa Catarina Departamento de Informática e Estatística Curso de Bacharelado em Ciências da Computação Marcus Vinicius Cruz Xavier Rascunho do trabalho de conclusão de curso Título

Leia mais

INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF

INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF Guilherme Macedo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil guilhermemacedo28@gmail.com, jaime@unipar.br Resumo.

Leia mais

DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID

DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID Maik Olher CHAVES 1 ; Daniela Costa Terra 2. 1 Graduado no curso de Tecnologia em Análise e Desenvolvimento de Sistemas

Leia mais

Java. para Dispositivos Móveis. Thienne M. Johnson. Novatec. Desenvolvendo Aplicações com J2ME

Java. para Dispositivos Móveis. Thienne M. Johnson. Novatec. Desenvolvendo Aplicações com J2ME Java para Dispositivos Móveis Desenvolvendo Aplicações com J2ME Thienne M. Johnson Novatec Capítulo 1 Introdução à computação móvel 1.1 Computação móvel definições Computação móvel está na moda. Operadoras

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S. Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick

MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S. Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick Roteiro Introdução Objetivos do trabalho Fundamentação teórica Desenvolvimento

Leia mais

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

Leia mais

UML - Unified Modeling Language

UML - Unified Modeling Language UML - Unified Modeling Language Casos de Uso Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 24 de abril

Leia mais

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador> FACULDADE DE ENGENHARIA DE COMPUTAÇÃO PROJETO FINAL I e II PLANO DE TRABALHO O Trabalho de Conclusão de Curso (TCC) a ser desenvolvido

Leia mais

Construtor de sites SoftPixel GUIA RÁPIDO - 1 -

Construtor de sites SoftPixel GUIA RÁPIDO - 1 - GUIA RÁPIDO - 1 - Sumário Introdução...3 Por que utilizar o Construtor de Sites?...3 Vantagens do Construtor de Sites...3 Conceitos básicos...3 Configuração básica do site...5 Definindo o layout/template

Leia mais

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Tópicos em Engenharia de Software (Optativa III) AULA 2 Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Engenharia de Software Objetivo da aula Depois desta aula você terá uma revisão sobre o

Leia mais

Programação para Dispositivos Móveis. Prof. Wallace Borges Cristo

Programação para Dispositivos Móveis. Prof. Wallace Borges Cristo Programação para Dispositivos Móveis Prof. Wallace Borges Cristo Acesso a informação Notícias, Ringtones, Vídeos Messenger/Chat Jogos Acesso a instituições financeiras M-commerce (Mobile Commerce) Aplicações

Leia mais

Governança de TI. ITIL v.2&3. parte 1

Governança de TI. ITIL v.2&3. parte 1 Governança de TI ITIL v.2&3 parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR ITIL 1 1 ITIL Gerenciamento de Serviços 2 2 Gerenciamento de Serviços Gerenciamento de Serviços 3 3 Gerenciamento de Serviços

Leia mais

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de

Leia mais

ENGENHARIA DE SOFTWARE I

ENGENHARIA DE SOFTWARE I ENGENHARIA DE SOFTWARE I Prof. Cássio Huggentobler de Costa [cassio.costa@ulbra.br] Twitter: www.twitter.com/cassiocosta_ Agenda da Aula (002) Metodologias de Desenvolvimento de Softwares Métodos Ágeis

Leia mais

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas PIM PROGRAMA DE INTEGRAÇÃO COM O MERCADO GUIA DE CURSO Tecnologia em Sistemas de Informação Tecnologia em Desenvolvimento Web Tecnologia em Análise e Desenvolvimento de Sistemas Tecnologia em Sistemas

Leia mais

UM FRAMEWORK PARA DESENVOLVIMENTO DE

UM FRAMEWORK PARA DESENVOLVIMENTO DE UNIVERSIDADE FEDERAL DE PERNAMBUCO GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA UM FRAMEWORK PARA DESENVOLVIMENTO DE APLICATIVOS EM WINDOWS MOBILE. PROPOSTA DE TRABALHO DE GRADUAÇÃO Aluno:

Leia mais

I N T R O D U Ç Ã O W A P desbloqueio,

I N T R O D U Ç Ã O W A P desbloqueio, INTRODUÇÃO Para que o Guia Médico de seu Plano de Saúde esteja disponível em seu celular, antes de mais nada, sua OPERADORA DE SAÚDE terá de aderir ao projeto. Após a adesão, você será autorizado a instalar

Leia mais

Feature-Driven Development

Feature-Driven Development FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por

Leia mais

Orientação a Objetos com Java

Orientação a Objetos com Java Orientação a Objetos com Java Julio Cesar Nardi julionardi@yahoo.com.br 2011/2 Aula 01: Começando com Java Objetivos: Compreender o que é Java, OO e suas vantagens; Entender os procedimentos para criação

Leia mais

Padrões de projeto 1

Padrões de projeto 1 Padrões de projeto 1 Design Orientado Objeto Encapsulamento Herança Polimorfismo Design Patterns 2 Responsabilidades Booch e Rumbaugh Responsabilidade é um contrato ou obrigação de um tipo ou classe. Dois

Leia mais

Organização e Arquitetura de Computadores I. de Computadores

Organização e Arquitetura de Computadores I. de Computadores Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Organização Básica B de Computadores

Leia mais

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 SUMÁRIO 1 Conceitos Básicos... 3 1.1 O que é Software?... 3 1.2 Situações Críticas no desenvolvimento

Leia mais

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart. Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart. Versão 1.6 15/08/2013 Visão Resumida Data Criação 15/08/2013 Versão Documento 1.6 Projeto Responsáveis

Leia mais

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial 1 of 14 27/01/2014 17:33 Sistema de Paginação de Esportes Universitários Documento de Arquitetura de Software Versão 1.0 Histórico da Revisão Data 30 de novembro de 1999 Versão Descrição Autor 1.0 Versão

Leia mais

Planejando o aplicativo

Planejando o aplicativo Um aplicativo do Visual FoxPro geralmente inclui um ou mais bancos de dados, um programa principal que configura o ambiente de sistema do aplicativo, além de uma interface com os usuários composta por

Leia mais

VPAT (Voluntary Product Accessibility Template, Modelo de Acessibilidade de Produto) do eportfolio da Desire2Learn Maio de 2013 Conteúdo

VPAT (Voluntary Product Accessibility Template, Modelo de Acessibilidade de Produto) do eportfolio da Desire2Learn Maio de 2013 Conteúdo VPAT (Voluntary Product Accessibility Template, Modelo de Acessibilidade de Produto) do eportfolio da Desire2Learn Maio de 2013 Conteúdo Introdução Recursos de acessibilidade principais Navegação usando

Leia mais

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA RESUMO Ricardo Della Libera Marzochi A introdução ao Service Component Architecture (SCA) diz respeito ao estudo dos principais fundamentos

Leia mais

Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma:

Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma: 1 Introdução A utilização de frameworks como base para a construção de aplicativos tem sido adotada pelos desenvolvedores com três objetivos básicos. Primeiramente para adotar um padrão de projeto que

Leia mais

Introdução à Engenharia de Software

Introdução à Engenharia de Software Introdução à Engenharia de Software Professor: Rômulo César romulodandrade@gmail.com www.romulocesar.com.br Imagem Clássica Objetivo da aula Depois desta aula você terá uma visão sobre o que é a engenharia

Leia mais

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Introdução Modelos de Processo de Desenvolvimento de Software Os modelos de processos de desenvolvimento de software surgiram pela necessidade de dar resposta às

Leia mais

Arquitetura dos Sistemas de Informação Distribuídos

Arquitetura dos Sistemas de Informação Distribuídos Arquitetura dos Sistemas de Informação Distribuídos Quando se projeta um sistema cuja utilização é destinada a ser feita em ambientes do mundo real, projeções devem ser feitas para que o sistema possa

Leia mais

Java & OpenJDK. Thiago S. Gonzaga. Sun Campus Ambassador thiago.gonzaga@sun.com

Java & OpenJDK. Thiago S. Gonzaga. Sun Campus Ambassador thiago.gonzaga@sun.com Java & OpenJDK Thiago S. Gonzaga Sun Campus Ambassador thiago.gonzaga@sun.com Tópicos Sobre a Sun Microsystems Algumas tecnologias da Sun Linguagem de Programação Ciclo de Desenvolvimento O que é Java?

Leia mais

Aula 01 - Formatações prontas e condicionais. Aula 01 - Formatações prontas e condicionais. Sumário. Formatar como Tabela

Aula 01 - Formatações prontas e condicionais. Aula 01 - Formatações prontas e condicionais. Sumário. Formatar como Tabela Aula 01 - Formatações prontas e Sumário Formatar como Tabela Formatar como Tabela (cont.) Alterando as formatações aplicadas e adicionando novos itens Removendo a formatação de tabela aplicada Formatação

Leia mais

Digifort Mobile Manual Version 1.0 Rev. A

Digifort Mobile Manual Version 1.0 Rev. A Digifort Mobile Manual Version 1.0 Rev. A 2 Digifort Mobile - Versão 1.0 Índice Parte I Bem vindo ao Manual do Digifort Mobile 1.0 5 1 Screen... Shots 5 2 A quem... se destina este manual 5 3 Como utilizar...

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 10 Persistência de Dados

Leia mais

ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA 2008 4º PERÍODO - 7º MÓDULO AVALIAÇÃO A4 DATA 22/10/2009 ENGENHARIA DE USABILIDADE

ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA 2008 4º PERÍODO - 7º MÓDULO AVALIAÇÃO A4 DATA 22/10/2009 ENGENHARIA DE USABILIDADE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA 2008 4º PERÍODO - 7º MÓDULO AVALIAÇÃO A4 DATA 22/10/2009 ENGENHARIA DE USABILIDADE 2009/2 GABARITO COMENTADO QUESTÃO 1: Quando nos referimos à qualidade da interação

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor

Leia mais

Modelos de Sistema. 2007 by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1.

Modelos de Sistema. 2007 by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1. Modelos de Sistema Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1 Objetivos Explicar por que o contexto de um sistema deve ser modelado como parte do processo de RE Descrever

Leia mais

IW10. Rev.: 02. Especificações Técnicas

IW10. Rev.: 02. Especificações Técnicas IW10 Rev.: 02 Especificações Técnicas Sumário 1. INTRODUÇÃO... 1 2. COMPOSIÇÃO DO IW10... 2 2.1 Placa Principal... 2 2.2 Módulos de Sensores... 5 3. APLICAÇÕES... 6 3.1 Monitoramento Local... 7 3.2 Monitoramento

Leia mais

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio 32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio

Leia mais

Prof. Marcelo Henrique dos Santos

Prof. Marcelo Henrique dos Santos ORIENTAÇÃO A OBJETOS COM PROTOTIPAÇÃO CAPÍTULO 02 CONCEITOS FUNDAMENTAIS OBJETIVOS Definiremos alguns conceitos fundamentais de forma a não deixar dúvidas básicas ou interpretações que nos coloquem em

Leia mais

DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES. Trabalho de Graduação

DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES. Trabalho de Graduação DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES Trabalho de Graduação Orientando: Vinicius Stein Dani vsdani@inf.ufsm.br Orientadora: Giliane

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 ArpPrintServer Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 1 Sumário INTRODUÇÃO... 3 CARACTERÍSTICAS PRINCIPAIS DO SISTEMA... 3 REQUISITOS DE SISTEMA... 4 INSTALAÇÃO

Leia mais

Programa de Atualização de Pontos do Lince GPS

Programa de Atualização de Pontos do Lince GPS Esse programa atualiza os pontos do software Lince GSP em aparelhos portáteis, como navegadores e celulares. A Robotron mantém um serviço de fornecimento de pontos de controle de velocidade aos aparelhos

Leia mais

Programa de Instalação do Lince GPS

Programa de Instalação do Lince GPS Esse programa instala o software Lince GSP em aparelhos portáteis que tenham GPS, como navegadores e celulares. O software Lince GPS é um programa destinado a alertar sobre a aproximação a pontos previamente

Leia mais

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3 Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3 A LEGO Education tem o prazer de trazer até você a edição para tablet do Software LEGO MINDSTORMS Education EV3 - um jeito divertido

Leia mais

02 - Usando o SiteMaster - Informações importantes

02 - Usando o SiteMaster - Informações importantes 01 - Apresentação do SiteMaster - News Edition O SiteMaster foi desenvolvido para ser um sistema simples de gerenciamento de notícias, instalado em seu próprio computador e com configuração simplificada,

Leia mais

Prototype, um Design Patterns de Criação

Prototype, um Design Patterns de Criação Prototype, um Design Patterns de Criação José Anízio Pantoja Maia Este artigo tem como finalidade compreender o funcionamento do padrão de projeto prototype, serão abordados os participantes que compõe

Leia mais

CAPITULO 4 A ARQUITETURA LÓGICA PARA O AMBIENTE

CAPITULO 4 A ARQUITETURA LÓGICA PARA O AMBIENTE CAPITULO 4 A ARQUITETURA LÓGICA PARA O AMBIENTE A proposta para o ambiente apresentada neste trabalho é baseada no conjunto de requisitos levantados no capítulo anterior. Este levantamento, sugere uma

Leia mais

Itinerários de Ônibus Relatório Final

Itinerários de Ônibus Relatório Final CENTRO UNIVERSITÁRIO SENAC Itinerários de Ônibus Relatório Final Grupo 5 Caio Roque Daniel Nunes Elise Roese José Caneiro Marcos Grignani São Paulo Junho de 2007 1 ÍNDICE 1. Introdução... 3 2. Desenvolvimento...

Leia mais

ANDRÉ APARECIDO DA SILVA APOSTILA BÁSICA SOBRE O POWERPOINT 2007

ANDRÉ APARECIDO DA SILVA APOSTILA BÁSICA SOBRE O POWERPOINT 2007 ANDRÉ APARECIDO DA SILVA APOSTILA BÁSICA SOBRE O POWERPOINT 2007 CURITIBA 2015 2 SUMÁRIO INTRODUÇÃO AO MICROSOFT POWERPOINT 2007... 3 JANELA PRINCIPAL... 3 1 - BOTÃO OFFICE... 4 2 - FERRAMENTAS DE ACESSO

Leia mais

DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS

DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS Emanuel M. Godoy 1, Ricardo Ribeiro Rufino 1 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil godoymanel@gmail.com,

Leia mais

Disciplina de Banco de Dados Introdução

Disciplina de Banco de Dados Introdução Disciplina de Banco de Dados Introdução Prof. Elisa Maria Pivetta CAFW - UFSM Banco de Dados: Conceitos A empresa JJ. Gomes tem uma lista com mais ou menos 4.000 nomes de clientes bem como seus dados pessoais.

Leia mais

Semântica para Sharepoint. Busca semântica utilizando ontologias

Semântica para Sharepoint. Busca semântica utilizando ontologias Semântica para Sharepoint Busca semântica utilizando ontologias Índice 1 Introdução... 2 2 Arquitetura... 3 3 Componentes do Produto... 4 3.1 OntoBroker... 4 3.2 OntoStudio... 4 3.3 SemanticCore para SharePoint...

Leia mais

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel A linguagem JAVA A linguagem Java O inicio: A Sun Microsystems, em 1991, deu inicio ao Green Project chefiado por James Gosling. Projeto que apostava

Leia mais

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 1. Conceitos de Orientação a Objetos Introdução O paradigma da POO Classes

Leia mais

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

Leia mais

Modelo para Documento de. Especificação de Requisitos de Software

Modelo para Documento de. Especificação de Requisitos de Software Modelo para Documento de Especificação de Requisitos de Software Prof. Dr. Juliano Lopes de Oliveira (Baseado na norma IEEE Std 830-1993 - Recommended Practice for Software Requirements Specifications)

Leia mais

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Definição Geral: Disciplina de Compiladores Prof. Jorge Bidarra (UNIOESTE) A especificação de requisitos tem como objetivo

Leia mais

Modelo para Documento de. Especificação de Requisitos de Software

Modelo para Documento de. Especificação de Requisitos de Software Modelo para Documento de Especificação de Requisitos de Software (Baseado na norma IEEE Std 830-1993 - Recommended Practice for Software Requirements Specifications) A boa organização lógica do documento

Leia mais

PROJETO INFORMÁTICA NA ESCOLA

PROJETO INFORMÁTICA NA ESCOLA EE Odilon Leite Ferraz PROJETO INFORMÁTICA NA ESCOLA AULA 1 APRESENTAÇÃO E INICIAÇÃO COM WINDOWS VISTA APRESENTAÇÃO E INICIAÇÃO COM WINDOWS VISTA Apresentação dos Estagiários Apresentação do Programa Acessa

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas Operacionais Prof. Marcelo Sabaris Carballo Pinto Gerenciamento de Dispositivos Gerenciamento de Dispositivos de E/S Introdução Gerenciador de Dispositivos Todos os dispositivos

Leia mais

Como conduzir com sucesso um projeto de melhoria da qualidade

Como conduzir com sucesso um projeto de melhoria da qualidade Como conduzir com sucesso um projeto de melhoria da qualidade Maria Luiza Guerra de Toledo Coordenar e conduzir um projeto de melhoria da qualidade, seja ele baseado no Seis Sigma, Lean, ou outra metodologia

Leia mais

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano Programação Servidor para Sistemas Web 1 Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano Objetivo: Apresentar a teoria por trás dos padrões na construção de aplicações Web. INTRODUÇÃO Nas aulas anteriores

Leia mais

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd. Apresentação Este curso tem como objetivo, oferecer uma noção geral sobre a construção de sistemas de banco de dados. Para isto, é necessário estudar modelos para a construção de projetos lógicos de bancos

Leia mais

3 SCS: Sistema de Componentes de Software

3 SCS: Sistema de Componentes de Software 3 SCS: Sistema de Componentes de Software O mecanismo para acompanhamento das chamadas remotas se baseia em informações coletadas durante a execução da aplicação. Para a coleta dessas informações é necessário

Leia mais

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo Introdução O que é Protocolo? - Para que os pacotes de dados trafeguem de uma origem até um destino, através de uma rede, é importante

Leia mais

Manual do Usuário Android Neocontrol

Manual do Usuário Android Neocontrol Manual do Usuário Android Neocontrol Sumário 1.Licença e Direitos Autorais...3 2.Sobre o produto...4 3. Instalando, Atualizando e executando o Android Neocontrol em seu aparelho...5 3.1. Instalando o aplicativo...5

Leia mais

Documento de Arquitetura

Documento de Arquitetura Documento de Arquitetura A2MEPonto - SISTEMA DE PONTO ELETRÔNICO A2MEPonto - SISTEMA DE PONTO ELETRÔNICO #1 Pág. 1 de 11 HISTÓRICO DE REVISÕES Data Versão Descrição Autor 28/10/2010 1 Elaboração do documento

Leia mais

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Conceitos básicos e serviços do Sistema Operacional Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Tipos de serviço do S.O. O S.O.

Leia mais

gerenciamento de portais e websites corporativos interface simples e amigável, ágil e funcional não dependendo mais de um profissional especializado

gerenciamento de portais e websites corporativos interface simples e amigável, ágil e funcional não dependendo mais de um profissional especializado O NetPublisher é um sistema de gerenciamento de portais e websites corporativos (intranets ou extranets), apropriado para pequenas, médias e grandes empresas. O conteúdo do website pode ser atualizado

Leia mais

DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS

DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS Planificação Anual da Disciplina de TIC Módulos 1,2,3-10.ºD CURSO PROFISSIONAL DE TÉCNICO DE APOIO À GESTÃO DESPORTIVA Ano Letivo 2015-2016 Manual adotado:

Leia mais

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO 10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO UMA DAS GRANDES FUNÇÕES DA TECNOLOGIA É A DE FACILITAR A VIDA DO HOMEM, SEJA NA VIDA PESSOAL OU CORPORATIVA. ATRAVÉS DELA, ELE CONSEGUE

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de software AULA NÚMERO: 08 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir conceitos relacionados a modelos e especificações. Nesta aula

Leia mais

Wilson Moraes Góes. Novatec

Wilson Moraes Góes. Novatec Wilson Moraes Góes Novatec Copyright 2014 Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo,

Leia mais

Plano de Gerenciamento do Projeto

Plano de Gerenciamento do Projeto Projeto para Soluções Contábeis 2015 Plano de Gerenciamento do Projeto Baseado na 5ª edição do Guia PMBOK Brendon Genssinger o e Elcimar Silva Higor Muniz Juliermes Henrique 23/11/2015 1 Histórico de alterações

Leia mais

Conceitos de Banco de Dados

Conceitos de Banco de Dados Conceitos de Banco de Dados Autor: Luiz Antonio Junior 1 INTRODUÇÃO Objetivos Introduzir conceitos básicos de Modelo de dados Introduzir conceitos básicos de Banco de dados Capacitar o aluno a construir

Leia mais

Universidade Federal Rural de Pernambuco. Bacharelado em Sistemas de Informação. Disciplina: Análise e Projeto de Sistemas de Informação

Universidade Federal Rural de Pernambuco. Bacharelado em Sistemas de Informação. Disciplina: Análise e Projeto de Sistemas de Informação Universidade Federal Rural de Pernambuco Bacharelado em Sistemas de Informação Disciplina: Análise e Projeto de Sistemas de Informação Docente: Rodrigo Aluna: Thays Melo de Moraes Diagramas do Projeto

Leia mais

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert: BRAlarmExpert Software para Gerenciamento de Alarmes A TriSolutions conta com um produto diferenciado para gerenciamento de alarmes que é totalmente flexível e amigável. O software BRAlarmExpert é uma

Leia mais

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO - TIC 10º C. Planificação de. Curso Profissional de Técnico de Secretariado

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO - TIC 10º C. Planificação de. Curso Profissional de Técnico de Secretariado Escola Básica e Secundária de Velas Planificação de TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO - TIC Curso Profissional de Técnico de Secretariado 10º C MÓDULO 1 FOLHA DE CÁLCULO Microsoft Excel Conteúdos

Leia mais

ATENÇÃO: * Arquivos com tamanho superior a 500 KB NÃO SERÃO ACEITOS * SOMENTE serão aceitos documentos do formato: PDF

ATENÇÃO: * Arquivos com tamanho superior a 500 KB NÃO SERÃO ACEITOS * SOMENTE serão aceitos documentos do formato: PDF TUTORIAL DE DIGITALIZAÇÃO DIRIGIDO AO USO DO PROCESSO ELETRÔNICO Adaptado do tutorial elaborado pelo colega MAICON FALCÃO, operador de computador da subseção judiciária de Rio Grande. Introdução Este tutorial

Leia mais

Agregador de feeds RSS para dispositivos móveis

Agregador de feeds RSS para dispositivos móveis Agregador de feeds RSS para dispositivos móveis Disciplina: Computação Móvel Professor: Mauro Nacif Rocha Data: 27/02/2007 Hadriel Toledo Lima 50290 Juliana Pinheiro Campos 47683 Luis Felipe Hussin Bento

Leia mais

15 Computador, projeto e manufatura

15 Computador, projeto e manufatura A U A UL LA Computador, projeto e manufatura Um problema Depois de pronto o desenho de uma peça ou objeto, de que maneira ele é utilizado na fabricação? Parte da resposta está na Aula 2, que aborda as

Leia mais

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação Cursos de Computação Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira Aula 05 Estrutura e arquitetura do SO Parte 2 Referência: MACHADO, F.B. ; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. LTC,

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar

Leia mais

Aprenda as melhores práticas para construir um completo sistema de teste automatizado

Aprenda as melhores práticas para construir um completo sistema de teste automatizado Aprenda as melhores práticas para construir um completo sistema de teste automatizado Renan Azevedo Engenheiro de Produto de Teste e Medição -Américas Aprenda as melhores práticas para construir um completo

Leia mais

UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas

UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas 4.1 Motivação Sistemas de Informação são usados em diversos níveis dentro de uma organização, apoiando a tomada de decisão; Precisam estar

Leia mais

Requisitos de Software

Requisitos de Software Requisitos de Software Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 6 Slide 1 Objetivos Apresentar os conceitos de requisitos de usuário e de sistema Descrever requisitos funcionais

Leia mais