Volume 29, 2010, No. 1
| |
Enhancing Use Cases with Screen Designs. A Comparison of Two Approaches
L. Olek, M. Ochodek, J. Nawrocki
Use cases, GUI design, prototyping, screenspec
This paper presents a language called ScreenSpec that can be used to quickly specify screens during the requirements elicitation phase. Experiments and case studies presented in this paper show that it is easy to learn and effective to use. ScreenSpec was successfully applied in 9 real projects. Visual representation generated from ScreenSpec can be attached to requirements specification (e.g. as adornments to use cases).
Computing and Informatics. Volume 29, 2010, No. 1: 3-25.
| |
| |
Building Benchmarks For Use Cases
M. Ochodek, J. Nawrocki, B. Alchimowicz, J. Jurkiewicz
Use cases, requirements, metrics, benchmark, quality
This paper presents how the use-cases benchmark has been built and how it can be applied by researchers. Set of 16 industrial projects (with 524 use cases in total) has been analysed in order to obtain quantitative and qualitative profile of a typical use-case-based requirements specification. Based on the analysis, two types of referential use-case-based requirements specifications have been created, one taking only quantitative data into account and second considering qualitative data. Researchers who analyse use cases can utilise these specifications in order to validate their methods and tools before applying them to real projects. Moreover, such referential specification can be used as a benchmark and allows comparing accuracy and efficiency of tools for use-case analysis.
Computing and Informatics. Volume 29, 2010, No. 1: 27-44.
| |
| |
SMA -- The Smyle Modeling Approach
B. Bollig, J.-P. Katoen, C. Kern, M. Leucker
Requirements elicitation, design model, learning, software engineering lifecycle, Mesage Sequence Charts, UML
This paper introduces the model-based software development lifecycle model SMA -- the Smyle Modeling Approach -- which is centered around Smyle. Smyle is a dedicated learning procedure to support engineers to interactively obtain design models from requirements, characterized as either being desired (positive) or unwanted (negative) system behavior. Within SMA, the learning approach is complemented by so-called scenario patterns where the engineer can specify clearly desired or unwanted behavior. This way, user interaction is reduced to the interesting scenarios limiting the design effort considerably. In SMA, the learning phase is further complemented by an effective analysis phase that allows for detecting design flaws at an early design stage. Using learning techniques allows us to gradually develop and refine requirements, naturally supporting evolving requirements, and allows for a rather inexpensive redesign in case anomalous system behavior is detected during analysis, testing, or maintenance. This paper describes the approach and reports on first practical experiences.
Computing and Informatics. Volume 29, 2010, No. 1: 45-72.
| |
| |
Exploratory Comparison of Expert and Novice Pair Programmers
A. Höfer
Pair programming, experts and novices, quai-experiment
We conducted quasi-experiment comparing novice pair programmers to expert pair programmers. The expert pairs wrote tests with a higher instruction, line, and method coverage than the novice pairs and changed the given program skeleton to a larger extent. However, the expert pairs were also slower than the novice pairs. The pairs within both groups switched keyboard and mouse possession frequently. Furthermore, most pairs did not share the input devices equally but rather had one partner who is more active than the other.
Computing and Informatics. Volume 29, 2010, No. 1: 73-91.
| |
| |
Achieving Cost-Effective Software Reliability Through Self-Healing
A. Gorla, M. Pezzè, J. Wuttke, L. Mariani, F. Pastore
Self-healing, autonomic computing, software reliability
Heterogeneity, mobility, complexity and new application domains raise new software reliability issues that cannot be met cost-effectively only with classic software engineering approaches. Self-healing systems can successfully address these problems, thus increasing software reliability while reducing maintenance costs. Self-healing systems must be able to automatically identify runtime failures, locate faults, and find a way to bring the system back to an acceptable behavior. This paper discusses the challenges underlying the construction of self-healing systems with particular focus on functional failures, and presents a set of techniques to build software systems that can automatically heal such failures. It introduces techniques to automatically derive assertions to effectively detect functional failures, locate the faults underlying the failures, and identify sequences of actions alternative to the failing sequence to bring the system back to an acceptable behavior.
Computing and Informatics. Volume 29, 2010, No. 1: 93-115.
| |
| |
A Genetic Algorithm Approach for the Capacitated Single Allocation P-Hub Median Problem
Z. STANIMIROVIĆ
Evolutionary computation, network optimization, graph and network algorithms, randomized algorithms
In this paper the Capacitated Single Allocation p-Hub Median Problem (CSApHMP) is considered. This problem has a wide range of applications within the design of telecommunication and transportation systems. A heuristic method, based on a genetic algorithm (GA) approach, is proposed for solving the CSApHMP. The described algorithm uses binary encoding and modified genetic operators. The caching technique is also implemented in the GA in order to improve its effectiveness. Computational experiments demonstrate that the GA method quickly reaches optimal solutions for hub instances with up to 50 nodes. The algorithm is also benchmarked on large scale hub instances with up to 200 nodes that are not solved to optimality so far.
Computing and Informatics. Volume 29, 2010, No. 1: 117-132.
| |
| |
A Hybrid Test Optimization Framework -- Coupling Genetic Algorithm with Local Search Technique
D. Jeya Mala, S. Ruby, V. Mohan
Software under test (SUT), software test optimization, genetic algorithm (GA), hybrid genetic algorithm (HGA), bacteriologic algorithm (BA), mutation score, path coverage
Quality of test cases is determined by their ability to uncover as many errors as possible in the software code. In our approach, we applied Hybrid Genetic Algorithm (HGA) for improving the quality of test cases. This improvement can be achieved by analyzing both mutation score and path coverage of each test case. Our approach selects effective test cases that have higher mutation score and path coverage from a near infinite number of test cases. Hence, the final test set size is reduced which in turn reduces the total time needed in testing activity. In our proposed framework, we included two improvement heuristics, namely RemoveTop and LocalBest, to achieve near global optimal solution. Finally, we compared the efficiency of the test cases generated by our approach against the existing test case optimization approaches such as Simple Genetic Algorithm (SGA) and Bacteriologic Algorithm (BA) and concluded that our approach generates better quality test cases.
Computing and Informatics. Volume 29, 2010, No. 1: 133-164.
| |