70 research outputs found

    Using real options to select stable Middleware-induced software architectures

    Get PDF
    The requirements that force decisions towards building distributed system architectures are usually of a non-functional nature. Scalability, openness, heterogeneity, and fault-tolerance are examples of such non-functional requirements. The current trend is to build distributed systems with middleware, which provide the application developer with primitives for managing the complexity of distribution, system resources, and for realising many of the non-functional requirements. As non-functional requirements evolve, the `coupling' between the middleware and architecture becomes the focal point for understanding the stability of the distributed software system architecture in the face of change. It is hypothesised that the choice of a stable distributed software architecture depends on the choice of the underlying middleware and its flexibility in responding to future changes in non-functional requirements. Drawing on a case study that adequately represents a medium-size component-based distributed architecture, it is reported how a likely future change in scalability could impact the architectural structure of two versions, each induced with a distinct middleware: one with CORBA and the other with J2EE. An option-based model is derived to value the flexibility of the induced-architectures and to guide the selection. The hypothesis is verified to be true for the given change. The paper concludes with some observations that could stimulate future research in the area of relating requirements to software architectures

    Contribution to Quality-driven Evolutionary Software Development process for Service-Oriented Architectures

    Get PDF
    The quality of software is a key element for the successful of a system. Currently, with the advance of the technology, consumers demand more and better services. Models for the development process have also to be adapted to new requirements. This is particular true in the case of service oriented systems (domain of this thesis), where an unpredictable number of users can access to one or several services. This work proposes an improvement in the models for the software development process based on the theory of the evolutionary software development. The main objective is to maintain and improve the quality of software as long as possible and with the minimum effort and cost. Usually, this process is supported on methods known in the literature as agile software development methods. Other key element in this thesis is the service oriented software architecture. Software architecture plays an important role in the quality of any software system. The Service oriented architecture adds the service flexibility, the services are autonomous and compact assets, and they can be improved and integrated with better facility. The proposed model in this thesis for evolutionary software development makes emphasis in the quality of services. Therefore, some principles of evolutionary development are redefined and new processes are introduced, such as: architecture assessment, architecture recovery and architecture conformance. Every new process will be evaluated with case studies considering quality aspects. They have been selected according to the market demand, they are: the performance, security and evolutionability. Other aspects could be considered of the same way than the three previous, but we believe that these quality attributes are enough to demonstrate the viability of our proposal

    Adaptable software reuse:binding time aware modelling language to support variations of feature binding time in software product line engineering

    Get PDF
    Software product line engineering (SPLE) is a paradigm for developing a family of software products from the same reusable assets rather than developing individual products from scratch. In many SPLE approaches, a feature is often used as the key abstraction to distinguish between the members of the product family. Thus, the sets of products in the product line are said to have ’common’ features and differ in ’variable’ features. Consequently, reusable assets are developed with variation points where variant features may be bound for each of the diverse products. Emerging deployment environments and market segments have been fuelling demands for adaptable reusable assets to support additional variations that may be required to increase the usage-context of the products of a product line. Similarly, feature binding time - when a feature is included in a product and made available for use - may vary between the products because of uncertain market conditions or diverse deployment environments. Hence, variations of feature binding time should also be supported to cover the wide-range of usage-contexts. Through the execution of action research, this thesis has established the following: Language-based implementation techniques, that are specifically proposed to implement variations in the form of features, have better modularity but are not better than the existing classical technique in terms of modifiability and do not support variations in feature binding time. Similarly, through a systematic literature review, this thesis has established the following: The different engineering approaches that are proposed to support variations of feature binding time are limited in one of the following ways: a feature may have to be represented/implemented multiple time, each for a specific binding time; The support is only to execution context and therefore limited in scope; The support focuses on too fine-grained model elements or too low-level of abstraction at source-codes. Given the limitations of the existing approaches, this thesis presents binding time aware modelling language that supports variations of feature binding time by design and improves the modifiability of reusable assets of a product line

    A Layered Component-Based Architecture of a Virtual Learning Environment

    Get PDF

    Software Evolution for Industrial Automation Systems. Literature Overview

    Get PDF

    Development of a personalization model for web applications in a context of model-driven development

    Get PDF
    ABSTRACT: This dissertation develops and validates a maintainable approach to improve the modifiability of personalized web applications and to reduce the technical complexity to integrate personalization strategies in a short time in a business environment. The Software Reference Architecture to face the maintainability problem was proposed and the MAMPA framework (Model-driven Approach to enhance the Modifiability of Personalized Web Applications) was implemented

    Étude empirique sur l'utilisation des patrons JEE et leur impact sur la modifiabilité des applications JEE

    Get PDF
    Les patrons de conception décrivent des pratiques qui permettent la conception de logiciels de qualité. Beaucoup de patrons de conception fournissent des solutions qui visent à promouvoir la maintenabilité des logiciels et, plus précisément, la modifiabilité en facilitant la mise en oeuvre de futurs changements du logiciel, ce qui réduit considérablement les coûts de la maintenance. Plusieurs travaux visent à supporter l’utilisation des patrons de conception ou à identifier des occurrences de ces patrons dans des systèmes existants. Cependant, peu d’études empiriques évaluent l’impact des patrons JEE sur la modifiabilité des applications. Dans ce mémoire, nous présentons une étude empirique sur l'utilisation des patrons JEE et leur impact sur la modifiabilité des applications JEE. Nous avons analysé 17 applications JEE libres pour identifier les patrons JEE qui sont utilisés et qui supportent la modifiabilité. Puis, nous avons évalué leur impact sur la modifiabilité de ces applications en étudiant les corrélations possibles entre l'utilisation de ces patrons et un ensemble de métriques liées à la modifiabilité. De plus, nous avons analysé différentes versions de trois de ces applications JEE afin d'évaluer l'évolution de la distribution des patrons appliqués et aussi l'impact de cette évolution sur la modifiabilité de ces applications. Afin de combler le manque d’outils qui permettent de détecter les patrons JEE, nous avons adapté l’outil Ptidej et nous avons développé un parseur basé sur l’arbre syntaxique du code source analysé. Une analyse manuelle des applications est effectuée pour valider les occurrences des patrons identifiés. Les résultats de notre étude confirment qu’un bon nombre de patrons JEE supportant la modifiabilité sont utilisés dans les applications JEE. Ces patrons sont généralement ceux qui reflètent les bonnes pratiques d’une architecture en couches. Nous avons aussi constaté qu’il y a très peu de corrélations entre l’utilisation de ces patrons et la modifiabilité des applications. Les quelques corrélations observés suggèrent que l’application de certains patrons complexifient l’application. Cependant, notre analyse manuelle des applications JEE étudiées a permis de constater que l’utilisation de ces patrons facilite la compréhension du code et la délimitation des couches de l’architecture de ces applications

    A Game of Attribute Decomposition for Software Architecture Design

    Full text link
    Attribute-driven software architecture design aims to provide decision support by taking into account the quality attributes of softwares. A central question in this process is: What architecture design best fulfills the desirable software requirements? To answer this question, a system designer needs to make tradeoffs among several potentially conflicting quality attributes. Such decisions are normally ad-hoc and rely heavily on experiences. We propose a mathematical approach to tackle this problem. Game theory naturally provides the basic language: Players represent requirements, and strategies involve setting up coalitions among the players. In this way we propose a novel model, called decomposition game, for attribute-driven design. We present its solution concept based on the notion of cohesion and expansion-freedom and prove that a solution always exists. We then investigate the computational complexity of obtaining a solution. The game model and the algorithms may serve as a general framework for providing useful guidance for software architecture design. We present our results through running examples and a case study on a real-life software project.Comment: 23 pages, 5 figures, a shorter version to appear at 12th International Colloquium on Theoretical Aspects of Computing (ICTAC 2015
    • …
    corecore