Software size estimation is considered a pre-requisite for software effort estimation which, in turn, is a pre-requisite for project planning and budgeting. Having the capability to accurately estimate software size at the start of the project is, therefore, expected to be invaluable for software project managers. This paper presents a comparative study of the utility of two well-known software functional sizing techniques - use case points (UCP) and class points (CP) - in predicting physical software size (measured in SLOC) early in the project. A diverse dataset consisting of 30 industrial projects - 15 web apps and 15 mobile apps - is collected. First, the information contained in the relevant project artifacts is analyzed to determine the UCP and CP values of each of these projects. Then, after outlier detection and removal, simple linear regression is used to determine the early size (SLOC) prediction capability of UCP and CP for both web and mobile apps. Results of our analysis reveal that UCP is much better at the early prediction of the size of web apps while CP is much better at the early prediction of the size of mobile apps.
A constant focus on improving the quality of software lies at the heart of better customer satisfaction, increased market share, and higher profit margins. This paper presents the results of a case study designed to analyze the impact on software quality of the adoption of Scrum -- an agile software development process -- by a Pakistani software house that was not using any particular process earlier. Pre- and post-process adoption data on the severity of errors and defects and the ratio of passed to failed test cases is gathered and analyzed for four web-based financial applications developed by the software house. The results of the quantitative analysis clearly indicate that the adoption of an agile process improved the quality of the software produced by the software house by reducing the percentage of serious errors and defects and by increasing the ratio of passed to failed test cases.
Proper management of software projects is crucial in preventing budget overruns, schedule slips, requirements creep, and other causes of project failure. The skills required for successfully managing software development projects, however, come with practical experience and rigorous training. Both the industry and the academia, therefore, need to work in unison. A differential in the skill set emphasized in the academia and the skill set required by the industry may lead to sub-optimal results. This research tries to identify the extent of the gap between the theory and practice of software project management by focusing on the landscape of universities and software development companies in Pakistan. The content of software project management-related courses offered by top universities in Pakistan is analysed to determine a set of subtopics emphasized by the academia. This set of subtopics is then used to design and, later, conduct an online survey of employees of various Pakistani software houses to gauge the differential in emphasis. Survey results indicate that a close mapping exists between what is being taught in the academia and what is required by the software development industry implying that this gap is not wide in the context of Pakistan.
Requirements for a software development project are gradually refined as more information becomes available. This process of requirements elaboration can be quantified using the appropriate set of metrics. This paper reports the results of an empirical study conducted to analyze the requirements elaboration of an industrial software process management tool - SoftPM - being used by more than 300 Chinese commercial software organizations. After adjusting for the effects of overlaps amongst different versions of SoftPM, multi-level requirements data are gathered and elaboration factors for each version are obtained. These elaboration data are compared with the data from a previous empirical study that analyzed requirements elaboration of a set of different small e-services projects. This comparison reveals that the elaboration factors of different SoftPM versions have much less variation confirming the intuition that projects with similar characteristics have comparable elaboration factors.
Effort estimation is a key component of planning a software development project. In the past, there has been a lot of research on estimation methods for traditional applications but, unfortunately, these methods do not apply to Extract Transform Load (ETL) projects. Coming up with a systematic effort estimate for ETL projects is a challenging task since ETL development does not follow the traditional Software Development Life Cycle (SDLC). Traditional application development is requirements-driven whereas ETL application development is data-driven. This research paper describes the development of an effort estimation model for ETL projects and compares this model with the most widely used algorithmic effort estimation model i.e. COCOMO II. A dataset comprising 220 industrial projects from five different software houses is used to build this effort estimation model using Forward Stepwise Regression. After eliminating 20 outliers from this dataset, the adjusted R2 (i.e. goodness of fit) of our model is 0.87. The prediction and training accuracy of this model is measured using the de-facto standard accuracy measures such as MMRE and PRED(25). On a training dataset of 200 projects, the training accuracy value of PRED(25) is 81.16% and MMRE is 0.16. Results show that our proposed estimation model provides considerably better estimation accuracy as compared to COCOMO II. On a validation dataset of 58 projects, the value of PRED(25) was 49% for our model as compared to 21% for COCOMO II. Furthermore, the MMRE of our model is 0.31 as compared to 0.99 for COCOMO II.
Software effort and time estimation has always been one of the biggest challenges for the software project managers around the world. Accurate effort estimation plays a significant role in the success of a project. The aim of this study is to identify the best software effort estimation technique among the popular software estimation techniques being used in Pakistani software houses employing agile methodologies. An online survey performed in this study has shown that the two most widely-used effort estimation techniques in Pakistan are Expert Judgment and Planning Poker. To determine which of these two effort estimation techniques gives better estimates, a controlled experiment involving two groups of professionals was performed. In one group, individual estimators used Expert Judgment while in the other group a team of estimators used Planning Poker to estimate the effort of real-life projects. Results of the comparison of these effort estimates with actual effort values have shown that the estimates obtained through Planning Poker appear to be more accurate than the estimates obtained through Expert Judgement. This finding is expected to be beneficial for professionals involved in managing software projects.
People have been using mobile phones since the last two decades. To a certain extent, these mobile phones have replaced the traditional computational devices and some people even prefer to use mobile phones for their daily tasks and entertainment. Games are a good source of entertainment and mobile games provide the opportunity for enjoyment on the go. Development of these mobile games, however, is not easy. It is very much different from the development of traditional software applications. Therefore, it is essential to follow a well-defined process in order to build quality mobile games that keep endusers engaged and satisfied. In this research, the existing process for developing mobile games is identified and a new process is derived using feedback from the industry. Results of a controlled industrial experiment indicate that the new process produces a better quality mobile game.
Software industry is increasingly focusing on the improvement of software quality and team performance to survive in a competitive and rapidly growing environment. Previous studies reveal the importance of social and human factors in software engineering. Despite the importance of these personality factors, only a handful of empirical studies have quantitatively evaluated the impact of personality traits on software quality and effectiveness of software engineering teams. This study quantifies the abstract notion of trait-wise team homogeneity based on the Five-Factor Model (FFM). Additionally, this study also aims to measure its impact on team productivity and software quality. Trait-wise team homogeneity measures the Team Homogeneity Index (THI) for each of the five personality traits of FFM. Therefore, five new metrics i.e. Openness THI (O-THI), Conscientiousness THI (C-THI), Extraversion THI (E-THI), Agreeableness THI (A-THI), and Neuroticism THI (N-THI) are proposed. The utility of these five metrics is evaluated by conducting experiments in academic and industrial environments for three different phases of the Software Development Life Cycle (SDLC) i.e. analysis and design, implementation, and testing. During the analysis and design phase, it was observed that teams (composed of either students or professionals) with greater values of C-THI and A-THI produced better quality design models and teams with greater values of C-THI were more productive. In the implementation phase, teams with higher values of O-THI, C-THI, and E-THI were noticeably more productive and produced better quality code. For the testing phase, teams with greater values of C-THI and A-THI produced better quality test cases and were more productive. Results obtained so far indicate that the newly proposed five metrics – O-THI, C-THI, E-THI, A-THI, and N-THI – appear to have the potential to aid managers and academics alike in building productive teams which can produce better quality software.
Software size estimation plays a key role in the planning of projects at the time of project inception. This paper describes the derivation, validation, and usage of a parametric model meant for estimating the size of board-based desktop games. This model is derived using forward stepwise multiple linear regression on a data set comprising over 60 open source board-based games collected from multiple open source repositories. A variety of prediction accuracy metrics (e.g., MMRE, PRED(x), MdMRE, and so on) are used to assess this model and K-fold cross-validation is used to validate this model. Model assessment and validation exercises yield promising results. The utility of this model is demonstrated by presenting a worked-out game size estimation example followed by some size-related what-if analyses.
Many different factors influence the quality of software. Among the most important of these factors is software complexity. One way to improve software quality, therefore, is to minimize its complexity making it more understandable and maintainable. The design phase of the software development life cycle plays an instrumental role in fostering quality in software. Seasoned designers often use past design best practices codified in the form of design patterns to make their designs and the resultant code more elegant, robust, and resilient to change. Little work, however, has been done to empirically assess the quantitative impact of design patterns on software complexity. This research is an attempt to fill this gap. A comparative analysis of before and after versions of program pairs written without and with design patterns was performed for all twenty three GoF (Gang of Four) design patterns. These program pairs were collected (or, in some cases, developed) and compared with respect to their complexity and size. The results of this comparative analysis reveal that the cyclomatic complexity of the programs written using design patterns was less for most of the design patterns as compared to the programs written without using design patterns. However, the values of CK metrics, number of classes, and software size SLOC (Source Lines of Code) increased when design patterns were used.