Skip to main content

    James Welch

    • noneedit
    Depression is a global health problem requiring treatment innovation. Targeting neglected cognitive aspects may provide a useful route. We tested a cognitive-training paradigm using positive mental imagery (imagery cognitive bias... more
    Depression is a global health problem requiring treatment innovation. Targeting neglected cognitive aspects may provide a useful route. We tested a cognitive-training paradigm using positive mental imagery (imagery cognitive bias modification, imagery CBM), developed via experimental psychopathology studies, in a randomized controlled trial. Training was delivered via the Internet to 150 individuals with current major depression. Unexpectedly, there was no significant advantage for imagery CBM compared with a closely matched control for depression symptoms as a whole in the full sample. In exploratory analyses, compared with the control, imagery CBM significantly improved anhedonia over the intervention and improved depression symptoms as a whole for those participants with fewer than five episodes of depression and those who engaged to a threshold level of imagery. Results suggest avenues for improving imagery CBM to inform low-intensity treatment tools for depression. Anhedonia ma...
    This paper shows how ideas from a combination of formal techniques can be used to enable the auto-matic generation of databases from precise object mod-els. It explores how the specification of an object database design can be formalised... more
    This paper shows how ideas from a combination of formal techniques can be used to enable the auto-matic generation of databases from precise object mod-els. It explores how the specification of an object database design can be formalised in terms of method preconditions, method ...
    Model-driven engineering involves the automatic generation of software artifacts from models of structure and functionality. The use of models as 'source code'has implications for the notions of... more
    Model-driven engineering involves the automatic generation of software artifacts from models of structure and functionality. The use of models as 'source code'has implications for the notions of composition and refinement employed in the modelling language. This paper explores those implications in the context of object-oriented design: establishing a necessary and sufficient condition for a collection of classes to be treated as a component, identifying an appropriate notion of refinement for the generation process, and ...
    Many approaches to software specification and design make use of invariants: constraints whose truth is preserved under operations on a system or component. Object modelling involves the definition of association invariants: constraints... more
    Many approaches to software specification and design make use of invariants: constraints whose truth is preserved under operations on a system or component. Object modelling involves the definition of association invariants: constraints upon the sets of links corresponding to particular associations, most often concerning type, multiplicity, or symmetry. This paper shows how the definitions of operations may be extended to take account of association invariants, so that they may be properly considered when the operations are implemented. It introduces a formal, object-based modelling notation in which the process of extension and implementation, and thus the maintenance of association invariants, can be automated, making it easier to produce correct implementations of an object-oriented design.
    Abstract This paper reports upon ten years of experience in the development and application of model-driven technology. The technology in question was inspired by work on formal methods: in particular, by the B toolkit. It was used in the... more
    Abstract This paper reports upon ten years of experience in the development and application of model-driven technology. The technology in question was inspired by work on formal methods: in particular, by the B toolkit. It was used in the development of a number of information systems, all of which were successfully deployed in real world situations.