Vol 8 No.2

Vol 8 No.2


  1. ABSTRACT Software development productivity is one of the major and vital aspects that impacts software industry and time to market of many software products. Although many studies have been conducted to improve the productivity measurements within software engineering research domain, productivity is still an issue in current software development industry because not all impacting factors and their relationships are known. This paper sheds a light on some of these factors and assesses their impacts as seen by random sample of industrial software SMEs. It also elaborates the main best practices that help in improve the software productivity based on real industrial projects. The resulting list of factors and best practices can be utilized to guide further productivity analysis and be taken as basis for building improved and more optimized productivity models. Paper also identifies some of the productivity measurements challenges and recommends set of best practices that can be utilized as basis for productivity measurements and estimation models.

  2. ABSTRACT Most, if not all, of the software projects developed can't implement the entire requirements within a given time and available resources. Hence Requirements Prioritization (RP) is needed to define the priorities given the available resources and constraints. It could be claimed that the RP process represents the heart of software systems development, as failure in choosing the right requirements during the requirements elicitation phase, or for release planning, could have the projects challenged or fail. There are many prioritization techniques available in the literature for prioritizing software requirements. However, most of them work well on a small number of requirements, but when the number of requirements and stakeholders’ preferences increase, many of these techniques suffer from different shortcomings, such as scalability, uncertainty, time consumption, and complexity. In addition, most of these techniques don’t take into consideration the effects of a project’s required goals on the final alternatives’ ranking. In this paper, we propose another RP technique based on goals’ weights to reduce the problems of time consumption, scalability and complexity. We evaluate our RP technique through case studies and compare results with other available RP techniques. In this paper we present the results of comparision with Fuzzy Analytical Hierarchy Process (FAHP).

  3. ABSTRACT Agile methods largely remove the distinction between phases and roles with no predefined order of activities. Some agile approaches such as Test-Driven Development (TDD) switch the traditional order of coding and testing and largely remove the boundary between the two implying that testing is becoming more a technical responsibility of the developers! Testers are complaining of loss of identity and scope within agile teams. In parallel some modern non-agile testing approaches such as Risk-based testing also open the boundaries between testing and analysis and suggest more involvement of testers in business and system analysis and sometimes system architecture. This article devises an adapted version of the V-Model for Scrum and suggests a practical approach that aligns the modern testing approaches with agile methodolgies. Scrum will be taken as a representative for Agile. The proposed approach is developed based on the Testing Process Improvement Guide (TPIG) developed by the Software Engineering Competence Center.

  4. ABSTRACT It is quite frequent to copy and paste code fragments in software development. The copied source code is called a software clone and the activity is referred to as code cloning. The presence of code clones hamper maintenance and may lead to bug propagation. Now-a-days, model driven development has become a standard industry practice. Duplicate parts in models i.e. model clones pose similar challenges as in source code. This paper presents an approach to detect clones in Unified Modeling Language class models. The core of our technique is the construction of a labeled, ranked tree corresponding to the UML class model where attributes with their data types and methods with their signatures are represented as subtrees. By grouping and clustering of repeating subtrees, the tool is able to detect duplications in a UML class model at different levels of granularity i.e. complete class diagram, attributes with their data types and methods with their signatures across the model and cluster of such attributes/methods. We propose a new classification of model clones with the objective of detecting exact and meaningful clones. Empirical evaluation of the tool using open source reverse engineered and forward designed models show some interesting and relevant clones which provide useful insights into software modeling practice.