954 resultados para software engineering: metrics


Relevância:

80.00% 80.00%

Publicador:

Resumo:

Transaction processing is a key constituent of the IT workload of commercial enterprises (e.g., banks, insurance companies). Even today, in many large enterprises, transaction processing is done by legacy "batch" applications, which run offline and process accumulated transactions. Developers acknowledge the presence of multiple loosely coupled pieces of functionality within individual applications. Identifying such pieces of functionality (which we call "services") is desirable for the maintenance and evolution of these legacy applications. This is a hard problem, which enterprises grapple with, and one without satisfactory automated solutions. In this paper, we propose a novel static-analysis-based solution to the problem of identifying services within transaction-processing programs. We provide a formal characterization of services in terms of control-flow and data-flow properties, which is well-suited to the idioms commonly exhibited by business applications. Our technique combines program slicing with the detection of conditional code regions to identify services in accordance with our characterization. A preliminary evaluation, based on a manual analysis of three real business programs, indicates that our approach can be effective in identifying useful services from batch applications.

Relevância:

80.00% 80.00%

Publicador:

Resumo:

Static analysis (aka offline analysis) of a model of an IP network is useful for understanding, debugging, and verifying packet flow properties of the network. Data-flow analysis is a method that has typically been applied to static analysis of programs. We propose a new, data-flow based approach for static analysis of packet flows in networks. We also investigate an application of our analysis to the problem of inferring a high-level policy from the network, which has been addressed in the past only for a single router.

Relevância:

80.00% 80.00%

Publicador:

Resumo:

In today's API-rich world, programmer productivity depends heavily on the programmer's ability to discover the required APIs. In this paper, we present a technique and tool, called MATHFINDER, to discover APIs for mathematical computations by mining unit tests of API methods. Given a math expression, MATHFINDER synthesizes pseudo-code to compute the expression by mapping its subexpressions to API method calls. For each subexpression, MATHFINDER searches for a method such that there is a mapping between method inputs and variables of the subexpression. The subexpression, when evaluated on the test inputs of the method under this mapping, should produce results that match the method output on a large number of tests. We implemented MATHFINDER as an Eclipse plugin for discovery of third-party Java APIs and performed a user study to evaluate its effectiveness. In the study, the use of MATHFINDER resulted in a 2x improvement in programmer productivity. In 96% of the subexpressions queried for in the study, MATHFINDER retrieved the desired API methods as the top-most result. The top-most pseudo-code snippet to implement the entire expression was correct in 93% of the cases. Since the number of methods and unit tests to mine could be large in practice, we also implement MATHFINDER in a MapReduce framework and evaluate its scalability and response time.

Relevância:

80.00% 80.00%

Publicador:

Resumo:

Today's programming languages are supported by powerful third-party APIs. For a given application domain, it is common to have many competing APIs that provide similar functionality. Programmer productivity therefore depends heavily on the programmer's ability to discover suitable APIs both during an initial coding phase, as well as during software maintenance. The aim of this work is to support the discovery and migration of math APIs. Math APIs are at the heart of many application domains ranging from machine learning to scientific computations. Our approach, called MATHFINDER, combines executable specifications of mathematical computations with unit tests (operational specifications) of API methods. Given a math expression, MATHFINDER synthesizes pseudo-code comprised of API methods to compute the expression by mining unit tests of the API methods. We present a sequential version of our unit test mining algorithm and also design a more scalable data-parallel version. We perform extensive evaluation of MATHFINDER (1) for API discovery, where math algorithms are to be implemented from scratch and (2) for API migration, where client programs utilizing a math API are to be migrated to another API. We evaluated the precision and recall of MATHFINDER on a diverse collection of math expressions, culled from algorithms used in a wide range of application areas such as control systems and structural dynamics. In a user study to evaluate the productivity gains obtained by using MATHFINDER for API discovery, the programmers who used MATHFINDER finished their programming tasks twice as fast as their counterparts who used the usual techniques like web and code search, IDE code completion, and manual inspection of library documentation. For the problem of API migration, as a case study, we used MATHFINDER to migrate Weka, a popular machine learning library. Overall, our evaluation shows that MATHFINDER is easy to use, provides highly precise results across several math APIs and application domains even with a small number of unit tests per method, and scales to large collections of unit tests.

Relevância:

80.00% 80.00%

Publicador:

Relevância:

80.00% 80.00%

Publicador:

Resumo:

A modelagem orientada a agentes surge como paradigma no desenvolvimento de software, haja vista a quantidade de iniciativas e estudos que remetem à utilização de agentes de software como solução para tratar de problemas mais complexos. Apesar da popularidade de utilização de agentes, especialistas esbarram na falta de universalidade de uma metodologia para construção dos Sistemas Multiagentes (MAS), pois estas acabam pecando pelo excesso ou falta de soluções para modelar o problema. Esta dissertação propõe o uso de uma Ontologia sobre Metodologias Multiagentes, seguindo os princípios da Engenharia de Métodos Situacionais que se propõe a usar fragmentos de métodos para construção de metodologias baseados na especificidade do projeto em desenvolvimento. O objetivo do estudo é sedimentar o conhecimento na área de Metodologias Multiagentes, auxiliando o engenheiro de software a escolher a melhor metodologia ou o melhor fragmento de metodologia capaz de modelar um Sistema Multiagentes.

Relevância:

80.00% 80.00%

Publicador:

Resumo:

Os SIG estão se popularizando cada vez mais e isso tem se dado principalmente através da Internet. Os assim chamados SIG-Web no entanto, quando desenvolvidos com as tecnologias tradicionais de web, apresentam as mesmas fraquezas daquelas, a saber: sincronicidade e pobreza na interação com o usuário. As tecnologias usadas para Rich Internet Applications (RIA) são uma alternativa que resolvem esses problemas. Na presente dissertação será demonstrada a factibilidade do seu uso para o desenvolvimento de SIG-Web, oferecendo um conjunto de códigos e estratégias para desenvolvimentos futuros, a partir de um conjunto básico de operações a se realizar em um SIG-Web. Adicionalmente será proposta a UWE-R, uma extensão a uma metodologia de engenharia web existente, para modelagem de RIA e SIG-Web.

Relevância:

80.00% 80.00%

Publicador:

Resumo:

Os testes são uma atividade crucial no desenvolvimento de sistemas, pois uma boa execução dos testes podem expor anomalias do software e estas podem ser corrigidas ainda no processo de desenvolvimento, reduzindo custos. Esta dissertação apresenta uma ferramenta de testes chamada SIT (Sistema de Testes) que auxiliará no teste de Sistemas de Informações Geográficas (SIG). Os SIG são caracterizados pelo uso de informações espaciais georreferenciadas, que podem gerar um grande número de casos de teste complexos. As técnicas tradicionais de teste são divididas em funcionais e estruturais. Neste trabalho, o SIT abordará os testes funcionais, focado em algumas técnicas clássicas como o particionamento de equivalência e análise do Valor Limite. O SIT também propõe o uso de Lógica Nebulosa como uma ferramenta que irá sugerir um conjunto mínimo de testes a executar nos SIG, ilustrando os benefícios da ferramenta.

Relevância:

80.00% 80.00%

Publicador:

Resumo:

Este trabalho está inserido no campo da Geomática e se concentra, mais especificamente, no estudo de métodos para exploração e seleção de rotas em espaços geográficos sem delimitação prévia de vias trafegáveis. As atividades que poderiam se beneficiar de estudos desse tipo estão inseridas em áreas da engenharia, logística e robótica. Buscou-se, com as pesquisas realizadas nesse trabalho, elaborar um modelo computacional capaz de consultar as informações de um terreno, explorar uma grande quantidade de rotas viáveis e selecionar aquelas rotas que oferecessem as melhores condições de trajetória entre dois pontos de um mapa. Foi construído um sistema a partir do modelo computacional proposto para validar sua eficiência e aplicabilidade em diferentes casos de estudo. Para que esse sistema fosse construído, foram combinados conceitos de sistemas baseados em agentes, lógica nebulosa e planejamento de rotas em robótica. As informações de um terreno foram organizadas, consumidas e apresentadas pelo sistema criado, utilizando mapas digitais. Todas as funcionalidades do sistema foram construídas por meio de software livre. Como resultado, esse trabalho de pesquisa disponibiliza um sistema eficiente para o estudo, o planejamento ou a simulação de rotas sobre mapas digitais, a partir de um módulo de inferência nebuloso aplicado à classificação de rotas e um módulo de exploração de rotas baseado em agentes autônomos. A perspectiva para futuras aplicações utilizando o modelo computacional apresentado nesse trabalho é bastante abrangente. Acredita-se que, a partir dos resultados alcançados, esse sistema possa ajudar a reduzir custos e automatizar equipamentos em diversas atividades humanas.

Relevância:

80.00% 80.00%

Publicador:

Resumo:

A tecnologia de agentes tem sido reconhecida como um paradigma promissor em sistemas educacionais da nova geração. Entretanto, o esforço e inflexibilidade de algumas metodologias próprias para agentesacarretam num alto custo, tempo e adaptação de escopo. Este trabalho visaavaliar alternativas de desenvolvimento de um jogo educacional médico orientado a agentes, através da aplicação de um estudo de caso, com o intuito de verificar se metodologias próprias para implementação de sistemas multiagentes trazem benefícios no resultado final da implementação do jogo, e também se os resultados alcançados na comparação de processos de desenvolvimento de cunho tradicional e ágil fazem diferença no resultado final. Desta forma, este trabalho compara três metodologias baseadas nos conceitos da Engenharia de Software através de um estudo de caso, sendo elas: O-MaSE que é uma metodologiatradicional de desenvolvimento de sistemas multiagentes e utiliza um processo de desenvolvimento tradicional; AgilePASSI que é baseada no processo de desenvolvimento ágil e específica para sistemas multiagentes; e, por último, Scrum que é uma metodologia ágil, não sendo específica para implementação de sistemas multiagentes

Relevância:

80.00% 80.00%

Publicador:

Resumo:

In this paper we shall discuss the use of the TSIM simulation software for modelling large-scale industrial processes. The discussion draws on our recent experience of modelling a large plant in the food-processing industry. We shall focus on those features of software organization and software engineering which proved to be particularly necessary for the execution of this project, and illustrate the extent to which the use of TISM facilitated the implementation of these features. We shall also make some general remarks about the 'life-cycle' of models resulting from projects of this kind.

Relevância:

80.00% 80.00%

Publicador:

Resumo:

Basis path testing is a very powerful structural testing criterion. The number of test paths equals to the cyclomatic complexity of program defined by McCabe. Traditional test generation methods select the paths either without consideration of the constraints of variables or interactively. In this note, an efficient method is presented to generate a set of feasible basis paths. The experiments show that this method can generate feasible basis paths for real-world C programs automatically in acceptable time.

Relevância:

80.00% 80.00%

Publicador:

Resumo:

Many testing methods are based on program paths. A well-known problem with them is that some paths are infeasible. To decide the feasibility of paths, we may solve a set of constraints. In this paper, we describe constraint-based tools that can be used for this purpose. They accept constraints expressed in a natural form, which may involve variables of different types such as integers, Booleans, reals and fixed-size arrays. The constraint solver is an extension of a Boolean satisfiability checker and it makes use of a linear programming package. The solving algorithm is described, and examples are given to illustrate the use of the tools. For many paths in the testing literature, their feasibility can be decided in a reasonable amount of time.