3 research outputs found

    COTS-Based Software Product Line Development

    Get PDF
    Software Product Line (SPL) is at the forefront among the techniques for reducing costs, decreasing schedule time, and ensuring commonality of features across a family of products - as components off-the-shelf (COTS) are reused in multiple products. A disciplined process for software product line development is still needed. We propose the Y-model for COTS-based software product line development. The model put forward identifies and elaborates the essential phases and activities of software product line development from COTS-based repository. The Y-model provides an efficient way of integrating the approaches of software product line and COTS-based development as a cohesive software development model. The model has the potential to tremendously increase software engineers\u27 productivity. Thus software architects, domain engineers and component designers should become aware of how to use these ideas to structure their models and designs. The model has the potential to tremendously increase software engineers\u27 productivity. Thus software architects, domain engineers and component designers should become aware of how to use these ideas to structure their models and designs

    Uma arquitetura de software baseada em padrões de projeto para o desenvolvimento de aplicações concorrentes confiaveis

    Get PDF
    Orientador : Cecilia Mary Fischer RubiraTese (doutorado) - Universidade Estadual de Campinas, Instituto de ComputaçãoResumo: Sistemas computacionais complexos estão sujeitos a diferentes tipos de falhas, e a maneira mais adequada de lidar com tais falhas é aceitar que qualquer sistema pode apresenta-lás e empregar técnicas apropriadas para tolerá-Ias durante a execução do sistema. Desta forma, a abordagem mais apropriada para a construção de sistemas complexos confiáveis consiste na utilização de técnicas de tolerância a falhas que nos permitem definir regiões de confinamento e recuperação de erros. No entanto, técnicas de tolerância a falhas são geralmente utilizadas na fase de implementação do ciclo de desenvolvimento do sistema. Desta forma, não é freqüentemente fácil empregá-las, desde que projetistas necessitam levar em conta muitos detalhes de implementação. Neste contexto, este trabalho faz duas contribuições relevantes. A primeira contribuição é a utilização prática de técnicas recentes de estruturação de sistemas na definição de uma arquitetura de software genérica para introduzir atomicidade, redundância de software, tratamento de exceções e recuperação de erros coordenada no desenvolvimento de sistemas orientados a objetos confiáveis durante o ciclo de desenvolvimento do sistema, iniciando-se na fase de projeto arquitetural passando pelo projeto detalhado e terminando na fase de implementaçãojcodificação do sistema. A segunda contribuição é a definição de um conjunto coeso de padrões de projetos que refinam os elementos arquiteturais da arquitetura de software proposta e provêem uma clara e transparente separação de interesses entre a funcionalidade da aplicação e a funcionalidade relacionada à provisão da confiabilidade do sistemaAbstract: Complex computer systems are prone to errors of many kinds, and the most reasonable way of dealing with them is to accept that any complex system has faults and to employ appropriate features for tolerating them during run time. We claim that the most beneficial way of achieving fault tolerance in complex systems is to use system structuring which has fault tolerance measures associated with it. ln this case, structuring units serve as natural areas of error containment and error recovery. However, these techniques are mainly developed for employment at the implementation phase of the system development. Hence, it is not often easy to apply them correctly, as the designers have to take into account many implementation details. ln this context, this work makes two main contributions. The first contribution is the practical employment of recent system structuring techniques in the definition of a generic software architecture for introducing atomicity, exception handling, and coordinated error recovery into dependable object-oriented systems at the earlier phases of system development. That is, from architectural design, through detailed design to coding. The second contribution is the definition of a set of design patterns which refine the architectural elements of the proposed software architecture and provide a clear and transparent separation of concerns between the application functionality, and the functionality related to providing system dependabilityDoutoradoDoutor em Ciência da Computaçã
    corecore