5 research outputs found

    Multiple software product lines to configure applications of internet of things

    Get PDF
    Software product lines (SPL) emulate the industrial production lines that are capable of generating large volumes of products through reuse schemes and mass production. A multi product line (MPL) aims to reuse of several SPL. Feature models are often used to manage the existing resources of SPLs and define valid products through notations and relationships such as mandatory, optional, and alternative features. The main contribution of this study is a method to manage the variability of multiple SPL and generate a new portfolio of products for Internet of Things (IoT). For this, the problem of developing a universal feature model (FM) for an MPL from merging the FMs of the individual SPLs with a Search-Based Software Engineering (SBSE) technique is addressed. In addition, the authors propose a multi-objective optimisation model to maximise the reusability and compatibility between features and minimise the development cost. The model facilitates the design of an MPL-feature model. Authors' empirical results show that the proposed model solved by genetic algorithms allows to configure a variety of software products and to determine the scope of the MPL

    AOPLA : Aspect-Oriented Product Line Architecture

    No full text
    A Software Product Line Architecture (PLA) is a key asset in Software Product Line Engineering. PLA models commonality and variability, allows for the derivation of products and defines their corresponding quality attributes. In addition, a PLA should exhibit its own quality attributes (variability, derivability, reusability, rateability, integrability, correctness, evolvability, manageability and maintainability), as defined in some models with proven success in software product line practice such as the CAFÉ quality model. A PLA should also make an explicit distinction between concerns that can be addressed by using architectural abstractions and concerns that crosscut architectural components. Therefore, in addressing these issues, the development of an Aspect-Oriented Product Line Architecture design approach (AOPLA) has been established as the focus of this research. The PLA obtained with this approach must: 1. fulfill the specified products’ quality attributes, 2. be generic enough to generate the PL products, 3. support commonality and variability, and, 4. fulfill the PL-specific quality attributes. The research yielded the development of an example in order to obtain an initial version of an AOPLA. Next, a case study was developed using the first version of this AOPLA. For the evaluation of the approach, a second architecture was developed for this same case study using the Feature-Oriented Reuse Method (FORM). Both, AOPLA and FORM architecture models were compared by means of a quality model. This quality model encompassed generality, derivability, reusability and evolvability as PL-specific quality attributes. In addition, the Architecture-Tradeoff Analysis Method (ATAM) and Concern-Oriented Software Architecture Analysis Method (COSAAM) were applied to evaluate the resulting architecture. ATAM evaluated the consequences of architectural decisions made during architecture modeling, while COSAAM measured the scattering and tangling of concerns. The architecture developed with AOPLA proved to be more general, derivable, reusable and evolvable than the one developed with FORM. ATAM proved that architectural decisions made during AOPLA actually fulfilled the specified quality attributes. COSAAM, in turn, proved that concerns were adequately handled during AOPLA and that the resulting modules were highly cohesive. From this research it can be concluded that AOPLA is a PLA design approach having a concern-oriented focus from very early in the process that allows the handling of concerns in such a way that the resulting PLA supports the derivation of products, is reusable, evolvable, and supports commonality and variability

    Efficiency of Software Testing Techniques: A Controlled Experiment Replication and Network Meta-analysis

    Get PDF
    Background: Common approaches to software verification include static testing techniques, such as code reading, and dynamic testing techniques, such as black-box and white-box testing. Objective: With the aim of gaining a~better understanding of software testing techniques, a~controlled experiment replication and the synthesis of previous experiments which examine the efficiency of code reading, black-box and white-box testing techniques were conducted. Method: The replication reported here is composed of four experiments in which instrumented programs were used. Participants randomly applied one of the techniques to one of the instrumented programs. The outcomes were synthesized with seven experiments using the method of network meta-analysis (NMA). Results: No significant differences in the efficiency of the techniques were observed. However, it was discovered the instrumented programs had a~significant effect on the efficiency. The NMA results suggest that the black-box and white-box techniques behave alike; and the efficiency of code reading seems to be sensitive to other factors. Conclusion: Taking into account these findings, the Authors suggest that prior to carrying out software verification activities, software engineers should have a~clear understanding of the software product to be verified; they can apply either black-box or white-box testing techniques as they yield similar defect detection rates

    Software Estimation in the Design Stage with Statistical Models and Machine Learning: An Empirical Study

    No full text
    Accurate estimation of software effort and time in the software development process is a key activity to achieve the necessary product quality. However, underestimation or overestimation of effort has become a key challenge for software development. One of the main problems is the estimation with metrics from late stages, because the product must already be finished to make estimates. In this paper, the use of statistical models and machine learning approaches for software estimation are used in early stages such as software design, and a data set is presented with metric values of design artifacts with 37 software projects. As results, models for the estimation of development time and effort are proposed and validated through leave-one-out cross-validation. Further, machine learning techniques were employed in order to compare software projects estimations. Through the statistical tests, it was proven that the errors were not statistically different with the regression models for effort estimation. However, with Random Forest the best statistical results were obtained for estimating development time
    corecore