6 research outputs found

    Proposal and Validation of Usability Model for Component Based Software System

    Get PDF
    Increasing demand of rapid and cost effective development of software system has increased the demand of Component Based Software Engineering (CBSE). In CBSE, software system is developed by using existing components. These components can be in-house components or third party components. To develop a Component Based Software System (CBSS), it is important to select the suitable component in such a manner that the components of the software system do not affect each other. To increase the acceptance of the CBSS among the users and the market value of the software industries, it is important to increase the usability of the CBSS. Several usability models have been proposed for traditional and object-oriented software system (OOSS), but there is no usability model for CBSS. Existing traditional and object-oriented models can’t be perfectly suitable for CBSS because of the unique characteristics of the components. This paper presents a usability model (UMCBSS) for CBSS. The proposed usability model is based on most significant usability factors. These factors are analysed from CBSS quality models. With the help of proposed model, usability is evaluated by using two different techniques i.e., centroid method and bisector method in MATLAB. Experimental results are also validated by using Center of Gravity (COG) and Mean-Max method. With the help of the proposed model, developers of the CBSS will be able to measure the usability of CBSS and to remove the usability flaws from the software system

    QoS Contract Negotiation in Distributed Component-Based Software

    Get PDF
    Currently, several mature and commercial component models (for e.g. EJB, .NET, COM+) exist on the market. These technologies were designed largely for applications with business-oriented non-functional requirements such as data persistence, confidentiality, and transactional support. They provide only limited support for the development of components and applications with non-functional properties (NFPs) like QoS (e.g. throughput, response time). The integration of QoS into component infrastructure requires among other things the support of components’ QoS contract specification, negotiation, adaptation, etc. This thesis focuses on contract negotiation. For applications in which the consideration of non-functional properties (NFPs) is essential (e.g. Video-on-Demand, eCommerce), a component-based solution demands the appropriate composition of the QoS contracts specified at the different ports of the collaborating components. The ports must be properly connected so that the QoS level required by one is matched by the QoS level provided by the other. Generally, QoS contracts of components depend on run-time resources (e.g. network bandwidth, CPU time) or quality attributes to be established dynamically and are usually specified in multiple QoS-Profiles. QoS contract negotiation enables the selection of appropriate concrete QoS contracts between collaborating components. In our approach, the component containers perform the contract negotiation at run-time. This thesis addresses the QoS contract negotiation problem by first modelling it as a constraint satisfaction optimization problem (CSOP). As a basis for this modelling, the provided and required QoS as well as resource demand are specified at the component level. The notion of utility is applied to select a good solution according to some negotiation goal (e.g. user’s satisfaction). We argue that performing QoS contract negotiation in multiple phases simplifies the negotiation process and makes it more efficient. Based on such classification, the thesis presents heuristic algorithms that comprise coarse-grained and fine-grained negotiations for collaborating components deployed in distributed nodes in the following scenarios: (i) single-client - single-server, (ii) multiple-clients, and (iii) multi-tier scenarios. To motivate the problem as well as to validate the proposed approach, we have examined three componentized distributed applications. These are: (i) video streaming, (ii) stock quote, and (iii) billing (to evaluate certain security properties). An experiment has been conducted to specify the QoS contracts of the collaborating components in one of the applications we studied. In a run-time system that implements our algorithm, we simulated different behaviors concerning: (i) user’s QoS requirements and preferences, (ii) resource availability conditions concerning the client, server, and network bandwidth, and (iii) the specified QoS-Profiles of the collaborating components. Under various conditions, the outcome of the negotiation confirms the claim we made with regard to obtaining a good solution

    QoS Contract Negotiation in Distributed Component-Based Software

    Get PDF
    Currently, several mature and commercial component models (for e.g. EJB, .NET, COM+) exist on the market. These technologies were designed largely for applications with business-oriented non-functional requirements such as data persistence, confidentiality, and transactional support. They provide only limited support for the development of components and applications with non-functional properties (NFPs) like QoS (e.g. throughput, response time). The integration of QoS into component infrastructure requires among other things the support of components’ QoS contract specification, negotiation, adaptation, etc. This thesis focuses on contract negotiation. For applications in which the consideration of non-functional properties (NFPs) is essential (e.g. Video-on-Demand, eCommerce), a component-based solution demands the appropriate composition of the QoS contracts specified at the different ports of the collaborating components. The ports must be properly connected so that the QoS level required by one is matched by the QoS level provided by the other. Generally, QoS contracts of components depend on run-time resources (e.g. network bandwidth, CPU time) or quality attributes to be established dynamically and are usually specified in multiple QoS-Profiles. QoS contract negotiation enables the selection of appropriate concrete QoS contracts between collaborating components. In our approach, the component containers perform the contract negotiation at run-time. This thesis addresses the QoS contract negotiation problem by first modelling it as a constraint satisfaction optimization problem (CSOP). As a basis for this modelling, the provided and required QoS as well as resource demand are specified at the component level. The notion of utility is applied to select a good solution according to some negotiation goal (e.g. user’s satisfaction). We argue that performing QoS contract negotiation in multiple phases simplifies the negotiation process and makes it more efficient. Based on such classification, the thesis presents heuristic algorithms that comprise coarse-grained and fine-grained negotiations for collaborating components deployed in distributed nodes in the following scenarios: (i) single-client - single-server, (ii) multiple-clients, and (iii) multi-tier scenarios. To motivate the problem as well as to validate the proposed approach, we have examined three componentized distributed applications. These are: (i) video streaming, (ii) stock quote, and (iii) billing (to evaluate certain security properties). An experiment has been conducted to specify the QoS contracts of the collaborating components in one of the applications we studied. In a run-time system that implements our algorithm, we simulated different behaviors concerning: (i) user’s QoS requirements and preferences, (ii) resource availability conditions concerning the client, server, and network bandwidth, and (iii) the specified QoS-Profiles of the collaborating components. Under various conditions, the outcome of the negotiation confirms the claim we made with regard to obtaining a good solution

    Foundations of systems and properties:methodological support for modeling properties of software-intensive systems

    Get PDF
    Engineering of software-intensive systems is concerned with the creation and evolution of systems that shall exhibit desired properties in their execution as well as development environment. In this context, the motivation of this thesis, derived from current development practice, was twofold. Firstly, software development methods are increasingly required to extend their scope of applicability towards systems engineering. As a consequence, their modeling approaches must be able to cope with a larger diversity of systems and consequently a larger diversity of properties. But these approaches still need to provide a smooth transition to software modeling. Secondly, non-functional properties, which are largely a result of this implicit systems scope, play a major role in the way we design our software-intensive systems. The conceptual aids of current development methods, however, are still less mature in their explicit support for non-functional properties compared with their ability to support functional ones. The principal objective of this thesis is to contribute toward an improved model-based treatment of non-functional properties in development methods. Because we cannot discuss properties independently of the objects they are ascribed to, this objective amounts to a progression from modeling of software and its properties to modeling of interrelated systems and their properties. To address this aim a philosophy of properties and systems is proposed. The philosophy is expressed as a holistic conceptual model of properties and/of systems. It is complemented with some basic rules, which we call tenets. Tenets formulate how we use the philosophical knowledge. The conceptual model offers the foundations for a more generalized understanding of those fundamentally different types of systems and different types of properties that are relevant in software-intensive systems engineering. The generality of our holistic model draws the benefits from our investigations in the areas of systems science, cognitive science, and basic philosophy. The model helps to scrutinize and make sense of the large amount of data in the literature about "non-functional" issues in software engineering. The model is applicable in the derivation of methodological building blocks that can be incorporated into development methods. The building blocks include (a) a general model to discover stakeholders and properties for a given system, (b) a principled manner to trace the fundamentally different types of properties through hierarchies of systems, and (c) a proposal for the representation of systems, their properties and property traces in the UML. The concrete application of the gained knowledge to software engineering results in a proposal for a context-sensitive, customizable quality attribute model. It also results in a proposal on how to structure quality descriptions of software components. In order for such descriptions to be standardized and possibly tool-automated, this thesis proposes to utilize the Reusable Asset Specification and suggests alternatives for its XML-based representation

    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

    On Quality Attribute Based Software Engineering

    No full text
    For a software system to be perceived as a success, or even just as properly functioning, many quality attributes, besides functionality, need to be at an acceptable level. However, current software development processes focus on the functional aspects of a system to be developed. They hardly help to systematically engineer for quality attributes other than functionality. It is a system`s architecture by which such quality requirements are satisfied. In particular, software components are an incarnation of architectural means, which have come into being to better cope with the variety of quality aspects of software systems. Unfortunately, architectural artifacts appear somewhat magically sometimes, and so do components. Hence, components are not a major extension to OO in the programming language or conceptual modeling sense, but a basis to address many of the quality requirements, be they discernable or non-discernable at system runtime. CBSE, being the discipline of engineering with components, is a promising basis to more explicitly and systematically design with and for quality attributes. After defining the context and classifying quality attributes, we first illustrate the important relationship of quality attributes to use case realizations. Second, we argue for components as the fulcrum point for the realization of functional and extra-functional roles. Third, we identify ongoing research directions that we consider conducive towards a software engineering process that supports the design for functional and extra-functional requirements
    corecore