![]() ; ; Briand, Lionel ![]() in ACM/IEEE 15th International Conference on Model Driven Engineering Languages & Systems (2012) Product Line Engineering (PLE) is expected to enhance quality and productivity, speed up time-to-market and decrease development effort, through reuse—the key mechanism of PLE. In addition, one can also ... [more ▼] Product Line Engineering (PLE) is expected to enhance quality and productivity, speed up time-to-market and decrease development effort, through reuse—the key mechanism of PLE. In addition, one can also apply PLE to support systematic testing and more specifically model-based testing (MBT) of product lines—the original motivation behind this work. MBT has shown to be cost-effective in many industry sectors but at the expense of building models of the system under test (SUT). However, the modeling effort to support MBT can significantly be reduced if an adequate product line modeling and configuration methodology is followed, which is the main motivation of this paper. The initial motivation for this work emerged while working with MBT for a Video Conferencing product line at Cisco Systems, Norway. In this paper, we report on our experience in modeling product family models and various types of behavioral variability in the Saturn product line. We focus on behavioral variability in UML state machines since the Video Conferencing Systems (VCSs) exhibit strong state-based behavior and these models are the main drivers for MBT; however, the approach can be also tailored to other UML diagrams. We also provide a mechanism to specify and configure various types of variability using stereotypes and Aspect-Oriented Modeling (AOM). Results of applying our methodology to the Saturn product line modeling and configuration process show that the effort required for modeling and configuring products of the product line family can be significantly reduced. [less ▲] Detailed reference viewed: 751 (5 UL)![]() ; ; Briand, Lionel ![]() in Software and Systems Modeling (2012) Aspect-oriented modeling (AOM) is a relatively recent and very active field of research, whose application has, however, been limited in practice. AOM is assumed to yield several potential benefits such ... [more ▼] Aspect-oriented modeling (AOM) is a relatively recent and very active field of research, whose application has, however, been limited in practice. AOM is assumed to yield several potential benefits such as enhanced modularization, easier evolution, increased reusability, and improved readability of models, as well as reduced modeling effort. However, credible, solid empirical evidence of such benefits is lacking. We evaluate the “readability” of state machines when modeling crosscutting behavior using AOM and more specifically AspectSM, a recently published UML profile. This profile extends the UML state machine notation with mechanisms to define aspects using state machines. Readability is indirectly measured through defect identification and fixing rates in state machines, and the scores obtained when answering a comprehension questionnaire about the system behavior. With AspectSM, crosscutting behavior is modeled using so-called “aspect state machines”. Their readability is compared with that of system state machines directly modeling crosscutting and standard behavior together. An initial controlled experiment and a much larger replication were conducted with trained graduate students, in two different institutions and countries, to achieve the above objective. We use two baselines of comparisons—standard UML state machines without hierarchical features (flat state machines) and standard state machines with hierarchical/concurrent features (hierarchical state machines). The results showed that defect identification and fixing rates are significantly better with AspectSM than with both flat and hierarchical state machines. However, in terms of comprehension scores and inspection effort, no significant difference was observed between any of the approaches. Results of the experiments suggest that one should use, when possible, aspect state machines along with hierarchical and/or concurrent features of UML state machines to model crosscutting behaviors. [less ▲] Detailed reference viewed: 325 (12 UL)![]() ; ; Briand, Lionel ![]() in IEEE International Symposium on Software Reliability Engineering (2012) Detailed reference viewed: 205 (4 UL)![]() Arcuri, Andrea ![]() ![]() in Software Testing, Verification and Reliability (2012) Randomized algorithms are widely used to address many types of software engineering problems, especially in the area of software verification and validation with a strong emphasis on test automation ... [more ▼] Randomized algorithms are widely used to address many types of software engineering problems, especially in the area of software verification and validation with a strong emphasis on test automation. However, randomized algorithms are affected by chance and so require the use of appropriate statistical tests to be properly analysed in a sound manner. This paper features a systematic review regarding recent publications in 2009 and 2010 showing that, overall, empirical analyses involving randomized algorithms in software engineering tend to not properly account for the random nature of these algorithms. Many of the novel techniques presented clearly appear promising, but the lack of soundness in their empirical evaluations casts unfortunate doubts on their actual usefulness. In software engineering, although there are guidelines on how to carry out empirical analyses involving human subjects, those guidelines are not directly and fully applicable to randomized algorithms. Furthermore, many of the textbooks on statistical analysis are written from the viewpoints of social and natural sciences, which present different challenges from randomized algorithms. To address the questionable overall quality of the empirical analyses reported in the systematic review, this paper provides guidelines on how to carry out and properly analyse randomized algorithms applied to solve software engineering tasks, with a particular focus on software testing, which is by far the most frequent application area of randomized algorithms within software engineering. [less ▲] Detailed reference viewed: 326 (19 UL)![]() ; Arcuri, Andrea ![]() ![]() in 4th Symposium on Search Based Software Engineering (2012) Detailed reference viewed: 216 (5 UL)![]() ; ; Briand, Lionel ![]() in ACM International Symposium on Software Testing and Analysis (2012) Detailed reference viewed: 245 (8 UL)![]() ; ; et al in ACM/IEEE 15th International Conference on Model Driven Engineering Languages & Systems (2012) Detailed reference viewed: 461 (4 UL)![]() ; Sabetzadeh, Mehrdad ![]() ![]() in IEEE Software (2012), 29(3), 64-70 Detailed reference viewed: 242 (13 UL)![]() ; ; Briand, Lionel ![]() in ACM/IEEE 15th International Conference on Model Driven Engineering Languages & Systems (2012) Detailed reference viewed: 179 (4 UL)![]() Arcuri, Andrea ![]() ![]() in IEEE Transactions on Software Engineering (2012), 38(5), 1088-1099 Modern systems are becoming highly configurable to satisfy the varying needs of customers and users. Software product lines are hence becoming a common trend in software development to reduce cost by ... [more ▼] Modern systems are becoming highly configurable to satisfy the varying needs of customers and users. Software product lines are hence becoming a common trend in software development to reduce cost by enabling systematic, large-scale reuse. However, high levels of configurability entail new challenges. Some faults might be revealed only if a particular combination of features is selected in the delivered products. But testing all combinations is usually not feasible in practice, due to their extremely large numbers. Combinatorial testing is a technique to generate smaller test suites for which all combinations of t features are guaranteed to be tested. In this paper, we present several theorems describing the probability of random testing to detect interaction faults and compare the results to combinatorial testing when there are no constraints among the features that can be part of a product. For example, random testing becomes even more effective as the number of features increases and converges toward equal effectiveness with combinatorial testing. Given that combinatorial testing entails significant computational overhead in the presence of hundreds or thousands of features, the results suggest that there are realistic scenarios in which random testing may outperform combinatorial testing in large systems. Furthermore, in common situations where test budgets are constrained and unlike combinatorial testing, random testing can still provide minimum guarantees on the probability of fault detection at any interaction level. However, when constraints are present among features, then random testing can fare arbitrarily worse than combinatorial testing. As a result, in order to have a practical impact, future research should focus on better understanding the decision process to choose between random testing and combinatorial testing, and improve combinatorial testing in the presence of feature constraints. [less ▲] Detailed reference viewed: 259 (9 UL)![]() Nejati, Shiva ![]() ![]() in 15th ACM/IEEE International Conference on Model Driven Engineering Languages & Systems (2012) Detailed reference viewed: 253 (11 UL)![]() ; ; Nejati, Shiva ![]() in CSTVA 2012 (2012) Detailed reference viewed: 218 (10 UL)![]() Briand, Lionel ![]() ![]() in 15th ACM/IEEE International Conference Model Driven Engineering Languages and Systems (2012) Detailed reference viewed: 214 (9 UL)![]() ; Nejati, Shiva ![]() in European Conference on Modeling Foundations and Applications (2012) Detailed reference viewed: 257 (13 UL) |
||