938 resultados para Android, Java, GPS, PHP, MySql, XML
Resumo:
Det mobila operativsystemet Android är idag ett ganska dominerande operativsystem på den mobila marknaden dels på grund av sin öppenhet men också på grund av att tillgängligheten är stor i och med både billiga och dyra telefoner finns att tillgå. Men idag har Android inget fördefinierat designmönster vilket leder till att varje utvecklare får bestämma själv vad som ska användas, vilket ibland kan leda till onödigt komplex kod i applikationerna som sen blir svårtestad och svårhanterlig. Detta arbete ämnar jämföra två designmönster, Passive Model View Controller (PMVC) och Model View View-Model (MVVM), för att se vilket designmönster som blir minst komplext med hjälp av att räkna fram mätvärden med hjälp av Cyclomatic Complexity Number (CCN). Studien är gjord utifrån arbetssättet Design & Creation och ämnar bidra med: kunskap om vilket mönster man bör välja, samt om CCN kan peka ut vilka delar i en applikation som kommer att ta mer eller mindre lång tid att testa. Under studiens gång tog vi även fram skillnader på om man anväder sig av den så kallade Single Responsibilyt Principle (SRP) eller inte. Detta för att se om separerade vyer gör någon skillnad i applikationernas komplexitet. I slutändan så visar studien på att komplexiteten i små applikationer är väldigt likvärdig, men att man även på små applikationer kan se skillnad på hur komplex koden är men också att kodkomplexitet på metodnivå kan ge riktlinjer för testfall.
Resumo:
Several agent platforms that implement the belief-desire-intention (BDI) architecture have been proposed. Even though most of them are implemented based on existing general purpose programming languages, e.g. Java, agents are either programmed in a new programming language or Domain-specific Language expressed in XML. As a consequence, this prevents the use of advanced features of the underlying programming language and the integration with existing libraries and frameworks, which are essential for the development of enterprise applications. Due to these limitations of BDI agent platforms, we have implemented the BDI4JADE, which is presented in this paper. It is implemented as a BDI layer on top of JADE, a well accepted agent platform.
Resumo:
Este trabalho busca a implementação da replicação de objetos através da linguagem Java e de seu sistema de invocação remota de métodos (Remote Method Invocation - RMI). A partir deste sistema, define-se uma classe de replicação - a máquina de replicação – onde a implementação de grupos de objetos é estruturada de acordo com a arquitetura cliente/servidor, sendo o cliente o representante (a interface) de um grupo de objetos e os servidores representam os demais componentes do grupo. A classe de replicação atende a uma necessidade importante dos sistemas distribuídos - o desenvolvimento de aplicações tolerantes a falhas. Fundamentalmente, a tolerância a falhas é obtida por redundância e, no caso de mecanismos de tolerância a falhas por software, esta redundância significa basicamente replicação de dados, processos ou objetos. A tolerância a falhas para tal tipo de sistema é importante para garantir a transparência do mesmo, visto que, assim como um sistema distribuído pode auxiliar muito o usuário pelas facilidades oferecidas, o não cumprimento de suas atividades de acordo com o esperado pode, em algumas situações, causar-lhe transtornos e erros irrecuperáveis nas aplicações. Finalmente, como principal contribuição, este trabalho descreve e implementa a solução completa para a construção de uma biblioteca de classes que oferece a replicação de forma totalmente transparente para o usuário.
Resumo:
Este trabalho apresenta uma metodologia para a geração automática de ASICs, em VHDL, a partir da linguagem de entrada Java. Como linguagem de especificação adotou-se a Linguagem Java por esta possuir características desejáveis para especificação a nível de sistema, como: orientação a objetos, portabilidade e segurança. O sistema é especificamente projetado para suportar síntese de ASICs a partir dos modelos de computação Máquina de Estados Finita e Pipeline. Neste trabalho, adotou-se estes modelos de computação por serem mais usados em sistemas embarcados As principais características exploradas são a disponibilização da geração de ASICs para a ferramenta SASHIMI, o alto nível de abstração com que o projetista pode contar em seu projeto, as otimizações de escalonamento realizadas automaticamente, e o sistema ser capaz de abstrair diferentes modelos de computação para uma descrição em VHDL. Portanto, o ambiente permite a redução do tempo de projeto e, consequentemente, dos custos agregados, diminuindo a probabilidade de erros na elaboração do projeto, portabilidade e reuso de código – através da orientação a objetos de Java – podendo-se proteger os investimentos prévios em desenvolvimento de software. A validação desses conceitos foi realizada mediante estudos de casos, utilizando-se algumas aplicações e analisando os resultados obtidos com a geração dos ASICs.
Resumo:
Neste estudo são discutidos alguns aspectos relacionados à escolha da primeira linguagem de programação em currículos de ciência da computação, com interesse especial em Pascal e Java. A primeira linguagem é amplamente adotada para ensinar programação aos novatos, enquanto a segunda está ganhando popularidade como uma linguagem moderna e abrangente, que pode ser usada em muitas disicplinas ao longo de um curso degraduação em computação como ferramenta para ensinar desde recursos básicos de programação até tópicos mais avançados. Embora vários problemas quanto ao ensino de Java, com a primeira linguagem de programação, possam ser apontadas, consideramosque Java é uma boa escolha, visto que (a) oferece apoio a importantes questões conceituais e tecnológicos e, (b) é possível contornar algumas complexidades da linguagem e da plataforma Java para torná-las mais adequadas à alunos iniciantes. Além disso, considerando a grande popularidade de Pascal nos currículos de cursos de computação, uma eventual adoção de Java conduz à outro problema: a falta de professores aptos a lecionar programação orientada a objetos. Sugerimos que este problema de migração de Pascal para Java seja enfrentado através de smplificação do ambiente de desenvolvimento de programas, uso de um pacote com classes que facilitam a entrada e saída, e o desenvolvimento de um catálogo comparativo de programas implementados em ambas as linguagens. Neste estudo também é apresentado o JEduc, um IDE muito simples com o objetivo de dar suporte ao ensino da linguagem de programação orientada a objetos Java aos novatos. Oferece componentes desenvolvidos em Java que integram edição, compilação e execução de programas Java. Além das funcionalidades comuns a um IDE, JEduc foi desenvolvido para gir como uma ferramente pedagógica: simplifica a maioria das mensagens do compilador e erros da JRE, permite a inserção de esqueletos de comandos, e incorpora pacotes especiais para esconder alguns detalhes sintáticos e semânticos indesejáveis.
Resumo:
A atividade de teste constitui uma fase de grande importância no processo de desenvolvimento de software, tendo como objetivo garantir um alto grau de confiabilidade nos produtos desenvolvidos. O paradigma da Orientação a Objetos (OO) surgiu com o objetivo de melhorar a qualidade bem como a produtividade no desenvolvimento de aplicações. Entretanto, apesar do aumento constante de aceitação do paradigma OO pela indústria de software, a presença de algumas de suas características torna a atividade de teste de programas neste paradigma mais complexa do que o teste de sistemas tradicionais. Entre estas características cita-se a herança, o encapsulamento, o polimorfismo e a ligação dinâmica [EIS 97] [PRE 95] [UNG 97]. Algumas técnicas estão sendo implementadas para auxiliarem a atividade de teste através do uso da tecnologia de reflexão computacional [HER 99]. Estas técnicas permitem a realização de análises de aspectos dinâmicos dos programas, sem a necessidade de instrumentar o código-fonte das aplicações que estão sendo monitoradas. Com o objetivo de auxiliar o processo de teste de programas orientados a objetos, este trabalho aborda o desenvolvimento de uma ferramenta, a qual automatiza parcialmente o teste de programas escritos em Java. A ferramenta evidencia o teste de estados fazendo uso da tecnologia de reflexão computacional. Através da especificação de asserções, feitas pelo usuário da ferramenta, na forma de invariantes de classe, pré e pós-condições de métodos, é possível verificar a integridade dos estados dos objetos durante a execução do programa em teste. A ferramenta possibilita também, armazenar a seqüência de métodos chamados pelos objetos da aplicação em teste, tornando possível ao testador, visualizar o histórico das interações entre os objetos criados no nível-base.
Resumo:
Nos últimos anos, um grande esforço tem sido despendido no estudo de formas de representar documentos textuais, chamados semi-estruturados, objetivando extrair informações destes documentos com a mesma eficiência com que essas são extraídas de bancos de dados relacionais e orientados a objetos. A pesquisa, em dados semi-estruturados, tornou-se fundamental com o crescimento da Web como fonte e repositório de dados, uma vez que os métodos de pesquisa existentes, baseados em navegação e busca por palavra-chave, mostraram-se insuficientes para satisfazer as necessidades de consulta em escala cada vez maior. Com o surgimento da XML, e a tendência de se tornar a linguagem padrão na Web, fez com que a representação de informações fosse dirigida para este novo padrão, porque disponibiliza um bom intercâmbio de informações e a produção de documentos eletrônicos. Existe a necessidade de se disponibilizar os documentos e as informações na rede em formato Web, HTML ou XML. Sendo assim, consultar documentos XML representa um desafio para a comunidade de pesquisa em banco de dados, pois implica em disponibilizar os grandes volumes de dados já existentes em formato XML, surgindo a necessidade de ferramentas de consulta que sejam ao mesmo tempo, flexíveis o suficiente para compreender a heterogeneidade dos documentos e, poderosas ao ponto de extraírem informações com rapidez e correção. Este trabalho apresenta uma abordagem sobre a linguagem XML, sua importância, vantagens, principais aplicações e as linguagens de consulta para dados XML. Após, é detalhada uma aplicação para Web utilizando a tecnologia XML, baseado em Ontologias, e a sua disponibilização na Web. A aplicação desenvolvida utilizou XML e linguagens de consulta para XML e com suporte a XML, baseando-se em Ontologias, com o objetivo de permitir consultas e o armazenamento de informações referentes aos alunos concluintes de determinados cursos da Universidade da Região da Campanha - Urcamp/Bagé, colocando à disposição da Universidade uma nova ferramenta, que disponibiliza informações referentes aos cursos em questão, utilizando uma nova tecnologia, que tende a tornar-se padrão na Web.
Resumo:
Para reutilização, manutenção e refatoração, projetistas de sistemas de software, freqüentemente, precisam examinar o código fonte da aplicação para entender os detalhes dos sistemas desenvolvidos. As aplicações orientadas a objetos em geral, tornam-se coleções nebulosas de classes e implementações de métodos. Sem dúvida a habilidade de entender sistemas de software é largamente aumentada visualizando-se esses produtos em níveis mais altos de abstração. Os padrões de projeto demonstram um alto índice de abstração e são considerados uma ferramenta efetiva para o entendimento de sistemas de software orientados a objetos. Aplicações orientadas a objetos visualizadas como um sistema de interação de padrões requerem a descoberta, identificação e classificação de grupos de classes relacionadas. Estas visualizações podem representar qualquer padrão conhecido ou agrupamentos que executam uma tarefa abstrata e necessariamente não são uma solução de padrão conhecida. Os padrões de projeto descrevem, portanto, microarquiteturas que resolvem problemas arquitetônicos em sistemas de software orientados a objetos. É importante identificar estas microarquiteturas durante a fase de manutenção de aplicações orientadas a objetos. Faz-se necessário salientar que estas microarquiteturas aparecem freqüentemente distorcidas na aplicação fonte. O objeto deste trabalho é demonstrar a viabilidade de construir uma ferramenta para descobrir a utilização de padrões de projeto em aplicações Java. Assim, esta tese examina as características de alguns padrões, determinando a natureza do que faz um padrão ser detectável por intermédio de meios automatizados, e propõe algumas regras pelas quais um conjunto de padrões possa ser identificado. As regras são baseadas nos relacionamentos entre classes e objetos mediante observação dos modelos estático e dinâmico. Este trabalho também documenta o desenvolvimento do protótipo da ferramenta de inspeção, que tem por objetivo aplicar os processos de engenharia reversa e reflexão computacional sobre código Java, utilizando as informações adquiridas para detectar padrões de projeto. Finalmente, esta tese demonstra a utilização dessa ferramenta em um exemplo pequeno de aplicação Java e forma a base para trabalhos adicionais que investiguem a existência de diferentes padrões de projeto em sistemas de software construídos em Java.
Resumo:
XML é um padrão da W3C largamente utilizado por vários tipos de aplicações para representação de informação semi-estruturada e troca de dados pela Internet. Com o crescimento do uso de XML e do intercâmbio de informações pela Internet é muito provável que determinadas aplicações necessitem buscar uma mesma informação sobre várias fontes XML relativas a um mesmo domínio de problema. No intuito de representar a informação dessas várias fontes XML, o programador é obrigado a escolher entre muitas estruturas hierárquicas possíveis na criação dos esquemas de seus documentos XML. Um mesmo domínio de informação, desta maneira, pode então ser representado de diferentes formas nas diversas fontes de dados XML existentes. Por outro lado, verifica-se que as linguagens de consulta existentes são fortemente baseadas no conhecimento da estrutura de navegação do documento. Assim, ao consultar uma determinada informação semanticamente equivalente em várias fontes é necessário conhecer todos os esquemas envolvidos e construir consultas individuais para cada uma dessas fontes. Em um ambiente de integração, entretanto, é possível gerar um modelo global que representa essas fontes. Ao construir consultas sobre um modelo global, temos consultas integradas sobre estas fontes. Para se atingir esse objetivo, contudo, devem ser resolvidos os problemas da heterogeneidade de representação dos esquemas XML. Dessa forma, com base em uma abordagem de integração de esquemas, o presente trabalho define a linguagem de consulta CXQuery (Conceptual XQuery) que possibilita a construção de consultas sobre um modelo conceitual. Para possibilitar o retorno dos dados das fontes nas consultas feitas em CXQuery, foi desenvolvido um mecanismo de tradução da linguagem CXQuery para a linguagem de consulta XQuery 1.0. A linguagem XQuery 1.0 é umas das linguagens mais utilizadas para o acesso as fontes XML e permite que os dados possam ser retornados ao usuário. Para possibilitar essa tradução, foi definida uma metodologia de representação da informação de mapeamento através de visões XPath. Essa metodologia é relativamente eficaz no mapeamento das diferentes representações das fontes XML.
Resumo:
Sistemas de gerência de workflow estão sendo amplamente utilizados para a modelagem e a execução dos processos de negócios das organizações. Tipicamente, esses sistemas interpretam um workflow e atribuem atividades a participantes, os quais podem utilizar ferramentas e aplicativos para sua realização. Recentemente, XML começou a ser utilizada como linguagem para representação dos processos bem como para a interoperação entre várias máquinas de workflow. Os processos de negócio são, na grande maioria, dinâmicos, podendo ser modi- ficados devido a inúmeros fatores, que vão desde a correção de erros até a adaptação a novas leis externas à organização. Conseqüentemente, os workflows correspondentes devem também evoluir, para se adequar às novas especificações do processo. Algumas propostas para o tratamento deste problema já foram definidas, enfocando principalmente as alterações sobre o fluxo de controle. Entretanto, para workflows representados em XML, ainda não foram definidos mecanismos apropriados para que a evolução possa ser realizada. Este trabalho apresenta uma estratégia para a evolução de esquemas de workflow representados em XML. Esta estratégia é construída a partir do conceito de versionamento, que permite o armazenamento de diversas versões de esquemas e a consulta ao hist´orico de versões e instâncias. As versões são representadas de acordo com uma linguagem que considera os aspectos de evolução. As instâncias, responsáveis pelas execuções particulares das versões, também são adequadamente modeladas. Além disso, é definido um método para a migração de instâncias entre versões de esquema, no caso de uma evolução. A aplicabilidade da estratégia proposta é verificada por meio de um estudo de caso.
Resumo:
A grande quantidade de dados eletrônicos disponível atualmente nem sempre pode ser representada com modelos tradicionais, principalmente devido à ausência de esquema no momento da criação destes dados. Neste sentido, modelos semi-estruturados têm sido propostos; uma das abordagens utilizadas é XML, uma linguagem para troca e representação deste tipo de informação. Entretanto, consultar dados semi-estruturados pode demandar processos de extração com alto custo. Uma das alternativas para solucionar este problema é a definição de visões sobre estes dados, e a posterior materialização destas informações. O uso de visões materializadas para dados XML ainda é pouco explorado. Uma das abordagens que podem ser utilizadas é o uso de sistemas de gerenciamento de bancos de dados relacionais para o armazenamento das visões. Desse modo, informação semanticamente relacionada (informação acerca de um mesmo domínio, possivelmente representada em formatos diferentes) pode ser agrupada em uma única unidade lógica, facilitando o acesso a estes dados por parte do usuário, e introduzindo alguma estrutura nos dados semiestruturados. Dessa maneira, o usuário final submete consultas diretamente sobre a visão materializada, evitando extrações contínuas de dados nas fontes XML. A materialização de dados XML exige a definição de um repositório de dados para o armazenamento destas instâncias. Utilizando-se a abordagem relacional, é necessário definir um mecanismo para a geração do esquema lógico do banco de dados. Consultar os dados nas fontes XML exige a integração destas instâncias. Neste contexto, integrá-las significa identificar quais instâncias de dados representam o mesmo objeto do mundo real, bem como resolver ambigüidades de representação deste objeto. O problema de identificação de entidades em XML é mais complexo que em bases de dados estruturadas. Dados XML, como propostos originalmente, não carregam necessariamente a noção de chave primária ou identificador de objeto. Assim, é necessária a adoção de um mecanismo que faça a identificação das instâncias na integração destes dados. Além disso, à medida que as fontes de dados XML sofrem alterações, a visão materializada deve ser atualizada, a fim de manter-se consistente com as fontes de dados. A manutenção deve propagar as alterações feitas nos dados XML para a visão materializada. Reprocessar todo o conteúdo da visão materializada é, na maioria das vezes, muito caro. Assim, é desejável propagar as mudanças incrementalmente, ou seja, processar apenas as alterações necessárias. Neste sentido, o presente trabalho apresenta uma proposta de técnica para armazenamento de dados XML em um banco de dados relacional. A proposta utiliza ontologias para a geração do esquema lógico do banco de dados. O problema de integração de dados é mostrado. O foco principal do trabalho está na proposta de uma técnica de atribuição de identificadores a instâncias XML, baseada no uso de funções Skolem e no padrão XPath, proposto pelo W3C. Também é proposto um mecanismo para manutenção incremental deste banco, à medida que as fontes XML sofrem atualizações.
Resumo:
A integração de aplicações heterogêneas é uma tarefa constante entre empresas do mundo moderno. A grande quantidade de fornecedores de software, aliada à extensa variedade de técnicas e linguagens computacionais utilizadas, fazem desta integração uma tarefa trabalhosa e cara para as organizações. As alternativas existentes para a integração de sistemas de diferentes fornecedores podem variar, desde acesso compartilhado a uma base de dados comum, uso de replicadores de dados entre bases de dados distintas, troca de mensagens entre aplicações, ou o uso de programas exportadores/importadores, gerando arquivos em um formato previamente protocolado entre os desenvolvedores dos softwares envolvidos. Este trabalho visa propor uma alternativa para a integração de sistemas heterogêneos, fazendo uso da tecnologia XML para representar os dados que são trocados entre os aplicativos. Para tanto, sugere um framework a ser utilizado no planejamento da arquitetura dos softwares. O objetivo principal da adoção de um framework é a utilização de uma metodologia previamente desenvolvida e certificada, economizando tempo de análise para a solução de um problema. O framework proposto subtrai dos desenvolvedores a necessidade de alteração do código fonte dos seus programas cada vez que a integração com um novo fornecedor de software se faz necessária, ou que há alteração no formato dos dados trocados entre os aplicativos. Este efeito é conseguido através da utilização de XSLT para a conversão de formatos de documentos XML trocados pelos softwares. Tal conversão é realizada por um processador XSLT externo aos programas envolvidos. Para simplificar o processo, foi desenvolvido o protótipo de uma ferramenta para a geração de templates XSLT. Templates são elementos da especificação XSLT capazes de realizar a transformação entre estruturas representadas em XML. O gerador de templates XSLT é uma ferramenta gráfica capaz de converter mapeamentos realizados entre estruturas XML em templates XSLT, podendo aplicar as transformações geradas a documentos XML, com a finalidade de teste ou transformação.
Resumo:
O volume de informações armazenadas e representadas em XML cresce rapidamente, abrangendo desde a Web até bancos de dados corporativos. Nesse contexto, surge a necessidade de mecanismos de recuperação de dados nesse formato que sejam, ao mesmo tempo, mais eficientes e mais eficazes. Várias propostas de linguagens de consulta têm sido feitas, dentre as quais podem ser citadas XQL, XML-QL e Quilt. Essas linguagens, todas textuais, são mais indicadas para manipulação programática ou para usuários experientes. Visando atingir também os usuários menos experientes, foram propostas linguagens visuais, tais como XML-GL e Xing. Todas essas linguagens, entretanto, apresentam duas características comuns: a) o usuário precisa conhecer, pelo menos em um certo nível, a estrutura interna dos documentos; b) a mesma informação, se armazenada de formas diferentes, exige instruções de consulta diferentes. A solução para esses problemas apresentada neste trabalho envolve a utilização de um modelo conceitual para representar os conceitos e as relações entre conceitos que ocorrem em documentos XML pertencentes a um determinado domínio de problema. O modelo conceitual é representado por uma ontologia do domínio do problema. Essa associação permite que consultas possam ser elaboradas tendo como base os conceitos da ontologia. Para permitir a associação da ontologia a conjuntos de documentos XML, apresentam-se regras de mapeamento que permitem definir se um documento XML é compatível com uma determinada ontologia. A partir dessa definição, propõe-se uma linguagem visual para consultas a documentos XML com base em ontologias, e apresenta-se uma proposta de interface visual para essa linguagem.