483,362 research outputs found

    Run-time reconfigurable acceleration for genetic programming fitness evaluation in trading strategies

    Get PDF
    Genetic programming can be used to identify complex patterns in financial markets which may lead to more advanced trading strategies. However, the computationally intensive nature of genetic programming makes it difficult to apply to real world problems, particularly in real-time constrained scenarios. In this work we propose the use of Field Programmable Gate Array technology to accelerate the fitness evaluation step, one of the most computationally demanding operations in genetic programming. We propose to develop a fully-pipelined, mixed precision design using run-time reconfiguration to accelerate fitness evaluation. We show that run-time reconfiguration can reduce resource consumption by a factor of 2 compared to previous solutions on certain configurations. The proposed design is up to 22 times faster than an optimised, multithreaded software implementation while achieving comparable financial returns

    Managing technical debt through software metrics, refactoring and traceability

    Get PDF
    Technical Debt (TD) is a concept borrowed from the financial domain to express extra maintenancecosts caused by short-term solutions that compromise internal quality in order to meet urgent business demands. TD can occur throughout the life cycle of software development, and it can be relatedto different artifacts. Thus, different TD types exist, among which Code TD, Design TD andDocumentation TD are the most prevalent ones. To efficiently manage TD there are several activitiesthat can be performed, like the identification and prioritisation of TD instances, activities aimingat TD repayment, as well as activities aiming to prevent the further accumulation of TD.The research problem addressed in this thesis concerns the management of TD with respect to thethree aforementioned TD types (i.e., Code, Design and Documentation TD). Specifically, in termsof Code TD it concerns the lack of high accuracy in tooling that supports the identification, prioritisationand resolution of bad smells. In terms of Design TD, it concerns the lack of systematic supportfor identifying incorrectly instantiated design patterns, as well as the lack of guidance on howto refactor the design. In terms of Documentation TD, it concerns the lack of tools for preventingthe occurrence of insufficient, incomplete or outdated requirements documentation. The overallsolution consists of the application of software metrics, as well as refactoring and traceability techniquesto alleviate these shortcomings

    The patterning of finance/security : a designerly walkthrough of challenger banking apps

    Get PDF
    Culture is being ‘appified’. Diverse, pre-existing everyday activities are being redesigned so they happen with and through apps. While apps are often encountered as equivalent icons in apps stores or digital devices, the processes of appification – that is, the actions required to turn something into an app – vary significantly. In this article, we offer a comparative analysis of a number of ‘challenger’ banking apps in the United Kingdom. As a retail service, banking is highly regulated and banks must take steps to identify and verify their customers before entering a retail relationship. Once established, this ‘secured’ financial identity underpins a lot of everyday economic activity. Adopting the method of the walkthrough analysis, we study the specific ways these processes of identifying and verifying the identity of the customer (now the user) occur through user onboarding. We argue that banking apps provide a unique way of binding the user to an identity, one that combines the affordances of smart phones with the techniques, knowledge and patterns of user experience design. With the appification of banking, we see new processes of security folded into the everyday experience of apps. Our analysis shows how these binding identities are achieved through what we refer to as the patterning of finance/security. This patterning is significant, moreover, given its availability for wider circulation beyond the context of retail banking apps

    Design Patterns for Ethereum Smart Contracts

    Get PDF
    The invention of Bitcoin in 2008 offered a solution for a digital currency that could be used without a trusted third-party settling disputes over transactions. Bitcoin relied on a technology known as the blockchain, which can be described as a distributed database that relies on a consensus mechanism (generally Proof Of Work is employed) to be resilient against tampering. Ethereum, launched in 2015, leveraged the blockchain technology to augment the initial proposal of Bitcoin, enabling computational statements to be executed as part of each block validation. The platform offers a Turing-complete runtime environment (the Ethereum Virtual Machine), which can run smart contracts - scripts that verify and enforce the execution of predefined legal contracts. The technical development of smart contracts present significant challenges that are not well modeled by the current body of knowledge and practices of software engineering. In fact, some of the characteristic of blockchain make the contract execution uncontrollable by the programmer and immutable after deployment. Also, the potential security risks are considerable, since there is a large incentive to exploit vulnerabilities in a smart contract for financial gain. Considering the concerns presented above, the establishment of well understood and welldefined design patterns for the development of smart contracts is of paramount importance. In the realm of software engineering, design patterns are defined as generic and reusable solutions to common problems in software design. In the context of this work, a survey of design patterns that target the Ethereum framework was performed, with an extensive analysis regarding the context in which they can be employed, as well as implementations, examples and consequences of their use. A total of 11 design patterns were analysed. The design patterns identified for the Ethereum framework focus on several concerns specific to this platform – most of these concerns revolve around safety, upgradeability, and the limitations inherent to the sandboxed approach of the Ethereum Virtual Machine. A Decentralized Application (dApp) was created to showcase the employment of several of the identified contracts, and to highlight the value they can provide. This dApp offers a framework for decentralized betting in a trustless environment, where neither the user needs to trust the owner nor vice-versa. The dApp implements several use cases that are reliant on the identified design patterns.A invenção da Bitcoin em 2018 disponibilizou uma solução para uma moeda digital que poderia ser usada sem a necessidade de envolver terceiros para a mediação de transações. A Bitcoin recorre a uma tecnologia conhecida como blockchain, que consiste numa base de dados distribuída, assente num mecanismo de consenso resistente a alterações não acordadas. Ethereum, lançada em 2015, utiliza a mesma tecnologia da blockchain para oferecer uma plataforma que se baseia na Bitcoin, mas que também permite a execução de instruções como parte do processo de validação de cada bloco. A plataforma permite correr contratos inteligentes (smart contracts) - scripts que verificam e garantem a correta execução de um contrato predefinido. O desenvolvimento técnico de contratos inteligentes apresenta desafios significativos que não são atualmente modelados pela área de engenharia de software. De facto, algumas das caraterísticas da blockchain fazem com que a execução de contratos não seja controlável pelo programador e também com que estes contratos sejam imutáveis após serem colocados na rede principal de Ethereum. Tendo em conta os pontos anteriores, é importante o estabelecimento de padrões de desenho (design patterns) bem definidos para serem usados em contratos inteligentes. No contexto deste trabalho, foi realizada uma análise dos padrões de desenho usados em Ethereum, tendo em conta o contexto em que são utilizados, as suas implementações e exemplos da sua utilização em contratos existentes. Um total de 11 padrões de desenho foram identificados e analisados. Uma Decentralized Application (dApp) foi desenvolvida para demonstrar o emprego dos padrões de desenho identificados. Esta dApp disponibiliza uma framework para se efetuar apostas de uma forma descentralizada, em que nem o utilizador necessita de confiar no dono do contrato, nem vice-versa

    Workflow Patterns for Business Process Modeling

    Get PDF
    For its reuse advantages, workflow patterns (e.g., control flow patterns, data patterns, resource patterns) are increasingly attracting the interest of both researchers and vendors. Frequently, business process or workflow models can be assembeled out of a set of recurrent process fragments (or recurrent business functions), each of them having generic semantics that can be described as a pattern. To our best knowledge, so far, there has been no (empirical) work evidencing the existence of such recurrent patterns in real workflow applications. Thus, in this paper we elaborate the frequency with which certain patterns occur in practice. Furthermore, we investigate completeness of workflow patterns (based on recurrent functions) with respect to their ability to capture a large variety of business processes

    Building in web application security at the requirements stage : a tool for visualizing and evaluating security trade-offs : a thesis presented in partial fulfilment of the requirements for the degree of Master of Information Science in Information Systems at Massey University, Albany, New Zealand

    Get PDF
    One dimension of Internet security is web application security. The purpose of this Design-science study was to design, build and evaluate a computer-based tool to support security vulnerability and risk assessment in the early stages of web application design. The tool facilitates risk assessment by managers and helps developers to model security requirements using an interactive tree diagram. The tool calculates residual risk for each component of a web application and for the application overall so developers are provided with better information for making decisions about which countermeasures to implement given limited resources tor doing so. The tool supports taking a proactive approach to building in web application security at the requirements stage as opposed to the more common reactive approach of putting countermeasures in place after an attack and loss have been incurred. The primary contribution of the proposed tool is its ability to make known security-related information (e.g. known vulnerabilities, attacks and countermeasures) more accessible to developers who are not security experts and to translate lack of security measures into an understandable measure of relative residual risk. The latter is useful for managers who need to prioritize security spending. Keywords: web application security, security requirements modelling, attack trees, threat trees, risk assessment
    corecore