24 resultados para component-based software development

em Instituto Politécnico do Porto, Portugal


Relevância:

100.00% 100.00%

Publicador:

Resumo:

Este documento descreve um modelo de tolerância a falhas para sistemas de tempo-real distribuídos. A sugestão deste modelo tem como propósito a apresentação de uma solu-ção fiável, flexível e adaptável às necessidades dos sistemas de tempo-real distribuídos. A tolerância a falhas é um aspeto extremamente importante na construção de sistemas de tempo-real e a sua aplicação traz inúmeros benefícios. Um design orientado para a to-lerância a falhas contribui para um melhor desempenho do sistema através do melhora-mento de aspetos chave como a segurança, a confiabilidade e a disponibilidade dos sis-temas. O trabalho desenvolvido centra-se na prevenção, deteção e tolerância a falhas de tipo ló-gicas (software) e físicas (hardware) e assenta numa arquitetura maioritariamente basea-da no tempo, conjugada com técnicas de redundância. O modelo preocupa-se com a efi-ciência e os custos de execução. Para isso utilizam-se também técnicas tradicionais de to-lerância a falhas, como a redundância e a migração, no sentido de não prejudicar o tempo de execução do serviço, ou seja, diminuindo o tempo de recuperação das réplicas, em ca-so de ocorrência de falhas. Neste trabalho são propostas heurísticas de baixa complexida-de para tempo-de-execução, a fim de se determinar para onde replicar os componentes que constituem o software de tempo-real e de negociá-los num mecanismo de coordena-ção por licitações. Este trabalho adapta e estende alguns algoritmos que fornecem solu-ções ainda que interrompidos. Estes algoritmos são referidos em trabalhos de investiga-ção relacionados, e são utilizados para formação de coligações entre nós coadjuvantes. O modelo proposto colmata as falhas através de técnicas de replicação ativa, tanto virtual como física, com blocos de execução concorrentes. Tenta-se melhorar ou manter a sua qualidade produzida, praticamente sem introduzir overhead de informação significativo no sistema. O modelo certifica-se que as máquinas escolhidas, para as quais os agentes migrarão, melhoram iterativamente os níveis de qualidade de serviço fornecida aos com-ponentes, em função das disponibilidades das respetivas máquinas. Caso a nova configu-ração de qualidade seja rentável para a qualidade geral do serviço, é feito um esforço no sentido de receber novos componentes em detrimento da qualidade dos já hospedados localmente. Os nós que cooperam na coligação maximizam o número de execuções para-lelas entre componentes paralelos que compõem o serviço, com o intuito de reduzir atra-sos de execução. O desenvolvimento desta tese conduziu ao modelo proposto e aos resultados apresenta-dos e foi genuinamente suportado por levantamentos bibliográficos de trabalhos de in-vestigação e desenvolvimento, literaturas e preliminares matemáticos. O trabalho tem também como base uma lista de referências bibliográficas.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

It is imperative to accept that failures can and will occur, even in meticulously designed distributed systems, and design proper measures to counter those failures. Passive replication minimises resource consumption by only activating redundant replicas in case of failures, as typically providing and applying state updates is less resource demanding than requesting execution. However, most existing solutions for passive fault tolerance are usually designed and configured at design time, explicitly and statically identifying the most critical components and their number of replicas, lacking the needed flexibility to handle the runtime dynamics of distributed component-based embedded systems. This paper proposes a cost-effective adaptive fault tolerance solution with a significant lower overhead compared to a strict active redundancy-based approach, achieving a high error coverage with the minimum amount of redundancy. The activation of passive replicas is coordinated through a feedback-based coordination model that reduces the complexity of the needed interactions among components until a new collective global service solution is determined, improving the overall maintainability and robustness of the system.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

The study of chemical diffusion in biological tissues is a research field of high importance and with application in many clinical, research and industrial areas. The evaluation of diffusion and viscosity properties of chemicals in tissues is necessary to characterize treatments or inclusion of preservatives in tissues or organs for low temperature conservation. Recently, we have demonstrated experimentally that the diffusion properties and dynamic viscosity of sugars and alcohols can be evaluated from optical measurements. Our studies were performed in skeletal muscle, but our results have revealed that the same methodology can be used with other tissues and different chemicals. Considering the significant number of studies that can be made with this method, it becomes necessary to turn data processing and calculation easier. With this objective, we have developed a software application that integrates all processing and calculations, turning the researcher work easier and faster. Using the same experimental data that previously was used to estimate the diffusion and viscosity of glucose in skeletal muscle, we have repeated the calculations with the new application. Comparing between the results obtained with the new application and with previous independent routines we have demonstrated great similarity and consequently validated the application. This new tool is now available to be used in similar research to obtain the diffusion properties of other chemicals in different tissues or organs.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Recent embedded processor architectures containing multiple heterogeneous cores and non-coherent caches renewed attention to the use of Software Transactional Memory (STM) as a building block for developing parallel applications. STM promises to ease concurrent and parallel software development, but relies on the possibility of abort conflicting transactions to maintain data consistency, which in turns affects the execution time of tasks carrying transactions. Because of this fact the timing behaviour of the task set may not be predictable, thus it is crucial to limit the execution time overheads resulting from aborts. In this paper we formalise a FIFO-based algorithm to order the sequence of commits of concurrent transactions. Then, we propose and evaluate two non-preemptive and one SRP-based fully-preemptive scheduling strategies, in order to avoid transaction starvation.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Mestrado em Engenharia Electrotécnica e de Computadores. Área de Especialização de Telecomunicações.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Para dar resposta aos grandes avanços tecnológicos e, consequentemente, à postura mais exigente dos clientes, a empresa Francisco Parracho – Electrónica Industrial, Lda., que tem actividade no ramo dos elevadores, decidiu introduzir no mercado um controlador dedicado de ecrãs Liquid Crystal Display / Thin Film Transistor (LCD / TFT). O objectivo é substituir um sistema suportado por um computador, caracterizado pelas suas elevadas dimensões e custos, mas incontornável até à data, nomeadamente para resoluções de ecrã elevadas. E assim nasceu este trabalho. Com uma selecção criteriosa de todos os componentes e, principalmente, sem funcionalidades inúteis, obteve-se um sistema embebido com dimensões e custos bem mais reduzidos face ao seu opositor. O ecrã apontado para este projecto é um Thin Film Transistor – Liquid Crystal Display (TFT-LCD) da Sharp de 10.4” de qualidade industrial, com uma resolução de 800 x 600 píxeis a 18 bits por píxel. Para tal, foi escolhido um micro-controlador da ATMEL, um AVR de 32 bits que, entre outras características, possui um controlador LCD que suporta resoluções até 2048 x 2048 píxeis, de 1 a 24 bits por píxel. Atendendo ao facto deste produto ser inserido na área dos elevadores, as funcionalidades, quer a nível do hardware quer a nível do software, foram projectadas para este âmbito. Contudo, o conceito aqui exposto é adjacente a quaisquer outras áreas onde este produto se possa aplicar, até porque o software está feito para se tornar bem flexível. Com a ajuda de um kit de desenvolvimento, foram validados os drivers dos controladores e periféricos base deste projecto. De seguida, aplicou-se esse software numa placa de circuito impresso, elaborada no âmbito deste trabalho, para que fossem cumpridos todos os requisitos requeridos pela empresa patrocinadora: - Apresentação de imagens no ecrã consoante o piso; - Possibilidade de ter um texto horizontalmente deslizante;Indicação animada do sentido do elevador; - Representação do piso com deslizamento vertical; - Descrição sumária do directório de pisos também com deslizamento vertical; - Relógio digital; - Leitura dos conteúdos pretendidos através de um cartão SD/MMC; - Possibilidade de actualização dos conteúdos via USB flash drive.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

The recent trends of chip architectures with higher number of heterogeneous cores, and non-uniform memory/non-coherent caches, brings renewed attention to the use of Software Transactional Memory (STM) as a fundamental building block for developing parallel applications. Nevertheless, although STM promises to ease concurrent and parallel software development, it relies on the possibility of aborting conflicting transactions to maintain data consistency, which impacts on the responsiveness and timing guarantees required by embedded real-time systems. In these systems, contention delays must be (efficiently) limited so that the response times of tasks executing transactions are upper-bounded and task sets can be feasibly scheduled. In this paper we assess the use of STM in the development of embedded real-time software, defending that the amount of contention can be reduced if read-only transactions access recent consistent data snapshots, progressing in a wait-free manner. We show how the required number of versions of a shared object can be calculated for a set of tasks. We also outline an algorithm to manage conflicts between update transactions that prevents starvation.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Consider a single processor and a software system. The software system comprises components and interfaces where each component has an associated interface and each component comprises a set of constrained-deadline sporadic tasks. A scheduling algorithm (called global scheduler) determines at each instant which component is active. The active component uses another scheduling algorithm (called local scheduler) to determine which task is selected for execution on the processor. The interface of a component makes certain information about a component visible to other components; the interfaces of all components are used for schedulability analysis. We address the problem of generating an interface for a component based on the tasks inside the component. We desire to (i) incur only a small loss in schedulability analysis due to the interface and (ii) ensure that the amount of space (counted in bits) of the interface is small; this is because such an interface hides as much details of the component as possible. We present an algorithm for generating such an interface.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Presented at Embed with Linux Workshop (EWiLi 2015). 4 to 9, Oct, 2015. Amsterdam, Netherlands.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

O objetivo deste trabalho é o desenvolvimento de frameworks de testes automáticos de software. Este tipo de testes normalmente está associado ao modelo evolucionário e às metodologias ágeis de desenvolvimento de software, enquanto que os testes manuais estão relacionados com o modelo em cascata e as metodologias tradicionais. Como tal foi efetuado um estudo comparativo sobre os tipos de metodologias e de testes existentes, para decidir quais os que melhor se adequavam ao projeto e dar resposta à questão "Será que realmente compensa realizar testes (automáticos)?". Finalizado o estudo foram desenvolvidas duas frameworks, a primeira para a implementação de testes funcionais e unitários sem dependências a ser utilizada pelos estagiários curriculares da LabOrders, e a segunda para a implementação de testes unitários com dependências externas de base de dados e serviços, a ser utilizada pelos funcionários da empresa. Nas últimas duas décadas as metodologias ágeis de desenvolvimento de software não pararam de evoluir, no entanto as ferramentas de automação não conseguiram acompanhar este progresso. Muitas áreas não são abrangidas pelos testes e por isso alguns têm de ser feitos manualmente. Posto isto foram criadas várias funcionalidades inovadoras para aumentar a cobertura dos testes e tornar as frameworks o mais intuitivas possível, nomeadamente: 1. Download automático de ficheiros através do Internet Explorer 9 (e versões mais recentes). 2. Análise do conteúdo de ficheiros .pdf (através dos testes). 3. Obtenção de elementos web e respetivos atributos através de código jQuery utilizando a API WebDriver com PHP bindings. 4. Exibição de mensagens de erro personalizadas quando não é possível encontrar um determinado elemento. As frameworks implementadas estão também preparadas para a criação de outros testes (de carga, integração, regressão) que possam vir a ser necessários no futuro. Foram testadas em contexto de trabalho pelos colaboradores e clientes da empresa onde foi realizado o projeto de mestrado e os resultados permitiram concluir que a adoção de uma metodologia de desenvolvimento de software com testes automáticos pode aumentar a produtividade, reduzir as falhas e potenciar o cumprimento de orçamentos e prazos dos projetos das organizações.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Atualmente, as empresas distinguem-se das demais pelos produtos e serviços fornecidos com qualidade e dentro dos prazos estabelecidos. Uma empresa de desenvolvimento de software não foge a essa regra e para isso os processos envolvidos nas diversas fases de levantamento, desenvolvimento, implementação e suporte devem estar documentados, ser do conhecimento geral da Organização e colocados em prática diariamente nas diversas atividades dos colaboradores. Para isso deve contribuir uma melhoria contínua desses mesmos processos. O CMMI-DEV, Capability Maturity Model Integration for Development, possibilita a introdução de boas práticas nas diversas áreas do processo de desenvolvimento de software, mas também a avaliação dessas áreas e respetiva identificação de aspetos a necessitarem de ser melhorados ou até disseminados por toda a organização. Este trabalho envolveu efetuar uma análise teórica do CMMI-DEV e sua posterior utilização prática num ambiente de trabalho empresarial para avaliação dos processos dessa empresa. Para a concretização deste segundo aspeto, foi elaborado um questionário para avaliar os processos de uma organização, segundo o modelo CMMI-DEV 1.3, avaliada a facilidade de utilização do questionário de avaliação dos processos por parte dos inquiridos. Foi realizada ainda uma análise aos resultados obtidos nos referidos questionários.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Nos últimos anos tem-se verificado a constante evolução dos mercados em plataformas na Internet como forma de melhoria não só dos serviços prestados, mas também para o aumento de vendas de produtos e respetiva internacionalização dos mesmos. Este aumento da procura por este tipo de softwares, assim como a constante evolução e atualização dos mesmos tem contribuído para que estas aplicações evoluam em termos de funcionalidades e complexidade. Isto contribui cada vez para a dificuldade de formar equipas capazes de manter e desenvolver estes sistemas sem que comprometa em grandes custos para as organizações. Neste sentido surgiram diversas ferramentas que permitem criar soluções pré desenvolvidas de aplicações na Internet denominadas de "E-commerce applications". Estas plataformas, apesar do utilizador não ter obrigatoriamente que deter conhecimentos de programação para proceder à sua instalação, são bastante restritas tanto aos serviços que podem ser usados, e na sua escalabilidade, visto que normalmente correm em servidores específicos e por vezes as configurações necessárias para instalação tornam-se bastante complexas de ser efetuadas. Pretende-se no âmbito desta dissertação de mestrado propor um modelo de uma arquitetura de um sistema baseado em mecanismos MDA para a área de retalho, particularmente em ambientes de e-commerce. Serão inicialmente sistematizados os principais tipos de ecommerce numa perspetiva de evolução histórica. Será igualmente enquadrado o MDA no desenvolvimento de um sistema de e-commerce. Neste sentido, serão equacionadas as diferenças entre o modelo típico de desenvolvimento de software e o desenvolvimento de software orientado pelas metodologias do MDA. No processo de especificação e desenvolvimento do modelo proposto será realizada uma análise de requisitos, assim como, a proposta do modelo da arquitetura de um sistema baseado em mecanismos MDA, tendo como orientação os requisitos e arquitetura definida na fase de análise. Finalmente no sentido de analisar o resultado esperado para um sistema orientado por metodologias definidas por MDA, serão realizado alguns testes no sistema desenvolvido de forma a analisar o seu desempenho e validar a sua adequabilidade no âmbito do processo de desenvolvimento de sistemas e-commerce

Relevância:

100.00% 100.00%

Publicador:

Resumo:

A integração contínua é uma prática no desenvolvimento de software que já existe há algum tempo mas ainda não é muito conhecida nem usada. Esta prática no desenvolvimento de software surgiu com a programação extrema e tem evoluído ao longo dos últimos anos, adaptando-se às novas tecnologias. O estudo aqui apresentado pretende essencialmente mostrar a real importância e o valor acrescido que a integração contínua pode trazer a um projeto de desenvolvimento de software. O trabalho aqui exposto surge no âmbito de um projeto interno, realizado pelo autor na empresa Konkconsulting, cuja finalidade se prende com o conhecimento mais aprofundado da integração contínua e com o levantamento das necessidades e criação de soluções, de modo a conseguir a sua utilização nos produtos que irão ser desenvolvidos pela empresa. Nesta dissertação, é proposto um conjunto de ferramentas para responder às necessidades imediatas da empresa na implementação de integração contínua num dos seus projetos. Estas ferramentas devem ser de simples e de fácil utilização, de modo a ajudar os programadores durante os desenvolvimentos e responder às necessidades da utilização da integração contínua em um projeto a ser desenvolvido pela empresa, mas ao mesmo tempo, podendo ser facilmente incorporadas em futuros projetos.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Electricity markets worldwide are complex and dynamic environments with very particular characteristics. These are the result of electricity markets’ restructuring and evolution into regional and continental scales, along with the constant changes brought by the increasing necessity for an adequate integration of renewable energy sources. The rising complexity and unpredictability in electricity markets has increased the need for the intervenient entities in foreseeing market behaviour. Market players and regulators are very interested in predicting the market’s behaviour. Market players need to understand the market behaviour and operation in order to maximize their profits, while market regulators need to test new rules and detect market inefficiencies before they are implemented. The growth of usage of simulation tools was driven by the need for understanding those mechanisms and how the involved players' interactions affect the markets' outcomes. Multi-agent based software is particularly well fitted to analyse dynamic and adaptive systems with complex interactions among its constituents, such as electricity markets. Several modelling tools directed to the study of restructured wholesale electricity markets have emerged. Still, they have a common limitation: the lack of interoperability between the various systems to allow the exchange of information and knowledge, to test different market models and to allow market players from different systems to interact in common market environments. This dissertation proposes the development and implementation of ontologies for semantic interoperability between multi-agent simulation platforms in the scope of electricity markets. The added value provided to these platforms is given by enabling them sharing their knowledge and market models with other agent societies, which provides the means for an actual improvement in current electricity markets studies and development. The proposed ontologies are implemented in MASCEM (Multi-Agent Simulator of Competitive Electricity Markets) and tested through the interaction between MASCEM agents and agents from other multi-agent based simulators. The implementation of the proposed ontologies has also required a complete restructuring of MASCEM’s architecture and multi-agent model, which is also presented in this dissertation. The results achieved in the case studies allow identifying the advantages of the novel architecture of MASCEM, and most importantly, the added value of using the proposed ontologies. They facilitate the integration of independent multi-agent simulators, by providing a way for communications to be understood by heterogeneous agents from the various systems.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Os vídeo jogos ou jogos de computador têm vindo a crescer na sua relação com o público ganhando terreno e credibilidade nos benefícios que os jogadores obtêm quando usam este tipo de software, indo esses benefícios para além do divertimento associado à palavra jogo no seu sentido etimológico. Nos últimos anos cada vez mais o mercado e algumas das mais reputadas instituições de ensino têm dedicado especial atenção a este tipo de software, englobando nesses estudos diversas áreas desde a engenharia à saúde, incluindo ainda, estudos de cariz psicológico e sociológico reveladores de que estas experiências de entretenimento, cada vez mais disponíveis a todos, têm influência na sua envolvente de integração e relação com outros fenómenos de cariz social. Apreciado o estado da arte esta tese tem como principal objetivo servir de guia de iniciação a individuais ou pequenas equipas da área de desenvolvimento de software no caminho para o desenvolvimento de jogos de vídeo independentes, apresentando uma análise cuidada capaz de apoiar as equipas desde o momento zero, estando o mesmo estruturado de forma a refletir o entendimento das bases teóricas em que o desenvolvimento deste tipo de software assenta, o estado da arte sobre plataformas, análise de mercado e indústria, metodologias de desenvolvimento e equipas, e ainda analisadas algumas das mais relevantes ferramentas de desenvolvimento e criação de conteúdos. Como prova de conceito e componente de caráter experimental, este trabalho compreende ainda o desenvolvimento de um jogo de vídeo guiado pelas orientações e lições apreendidas durante o processo de estudo de forma a ser representativo da aplicação dessa aprendizagem, e ainda capaz de detalhar passo a passo cada fase do processo, com o objetivo de apoiar a preparação de pessoas interessadas em iniciar a aventura de desenvolver os seus próprios jogos e quem sabe dar início aos seus próprios negócios e empresas. O jogo desenvolvido replica um recente êxito, o jogo 2048, que apesar da sua mecânica simples revela-se um excelente desafio do ponto de vista da sua implementação, bem como o processo criativo adjacente no transformar algo tão simples e experimentado numa experiência nova capaz de atrair antigos jogadores e interesse de novos. O desenvolvimento e publicação da aplicação experimental, e após análise dos dados recolhidos, mostram-se reveladores de que é de fato possível a programadores independentes entrar num mercado de alto potencial, e que adquiridas as bases de conhecimento expostas no documento estarão em condições mais favoráveis para ultrapassar algumas das mais comuns barreiras no atingir desse objetivo.