4 research outputs found

    Software architecture for modeling and distributing virtual environments

    Get PDF

    Inherently flexible software

    Get PDF
    Software evolution is an important and expensive consequence of software. As Lehman's First Law of Program Evolution states, software must be changed to satisfy new user requirements or become progressively less useful to the stakeholders of the software. Software evolution is difficult for a multitude of different reasons, most notably because of an inherent lack of evolveability of software, design decisions and existing requirements which are difficult to change and conflicts between new requirements and existing assumptions and requirements. Software engineering has traditionally focussed on improvements in software development techniques, with little conscious regard for their effects on software evolution. The thesis emphasises design for change, a philosophy that stems from ideas in preventive maintenance and places the ease of software evolution more at the centre of the design of software systems than it is at present. The approach involves exploring issues of evolveability, such as adaptability, flexibility and extensibility with respect to existing software languages, models and architectures. A software model, SEvEn, is proposed which improves on the evolveability of these existing software models by improving on their adaptability, flexibility and extensibility, and provides a way to determine the ripple effects of changes by providing a reflective model of a software system. The main conclusion is that, whilst software evolveability can be improved, complete adaptability, flexibility and extensibility of a software system is not possible, hi addition, ripple effects can't be completely eradicated because assumptions will always persist in a software system and new requirements may conflict with existing requirements. However, the proposed reflective model of software (which consists of a set of software entities, or abstractions, with the characteristic of increased evolveability) provides trace-ability of ripple effects because it explicitly models the dependencies that exist between software entities, determines how software entities can change, ascertains the adaptability of software entities to changes in other software entities on which they depend and determines how changes to software entities affect those software entities that depend on them

    Metodologias e mecanismos para linguagens de programação concorrente orientadas por objectos

    Get PDF
    Doutoramento em Engenharia InformáticaEsta tese faz uma aproximação sistemática à integração de mecanismos de programação concorrente em linguagens orientadas por objectos com suporte à programação por contrato e sistema de tipos estático. Nessa integração deu-se prioridade à expressividade, segurança, abstracção e realizabilidade dos mecanismos propostos. É sustentado que essa integração deve possuir ambos os modelos de comunicação entre processadores – por mensagens e partilha de objectos – e que a sincronização seja automática e abstracta. Todos os aspectos de sincronização de objectos – intra-objecto, condicional e inter-objecto – são contemplados e integrados de uma forma segura e sinérgica com mecanismos de linguagens sequenciais orientadas por objectos. É proposta e parcialmente desenvolvida uma linguagem protótipo – denominada MP-Eiffel – onde estes mecanismos e abstrações estão a ser validados experimentalmente.This thesis makes a systematic approach to the integration of concurrent programming mechanisms in Design by Contract and static type system based object-oriented languages. In this integration priority was given to the expressiveness, safety, abstraction and realizability of the proposed language mechanisms. We argue that this integration should provide both models of inter-processor communication – message passing and shared objects – and that synchronization should be automatic and abstract. All aspects of object synchronization – intra-object, conditional, and inter-object – were considered and integrated in a safe and synergic way with sequential object-oriented language mechanisms. We propose and partially develop a prototype language – named MP-Eiffel – in which these mechanisms and language abstractions are being validated

    A systematic approach to multiple inheritance implementation

    No full text
    corecore