SEDec 1, 2015Code
Managing Support Requests in Open Source Software Project: The Role of Online ForumsFaheem Ahmed, Piers Campbell, Ahmad Jaffar et al.
The use of free and open source software is gaining momentum due to the ever increasing availability and use of the Internet. Organizations are also now adopting open source software, despite some reservations in particular regarding the provision and availability of support. One of the greatest concerns about free and open source software is the availability of post release support and the handling of for support. A common belief is that there is no appropriate support available for this class of software, while an alternative argument is that due to the active involvement of Internet users in online forums, there is in fact a large resource available that communicates and manages the management of support requests. The research model of this empirical investigation establishes and studies the relationship between open source software support requests and online public forums. The results of this empirical study provide evidence about the realities of support that is present in open source software projects. We used a dataset consisting of 616 open source software projects covering a broad range of categories in this investigation. The results show that online forums play a significant role in managing support requests in open source software, thus becoming a major source of assistance in maintenance of the open source projects.
HCNov 27, 2015Code
An Empirical Study of Open Source Software Usability: The Industrial PerspectiveArif Raza, Luiz Fernando Capretz, Faheem Ahmed
Recent years have seen a sharp increase in the use of open source projects by common novice users; Open Source Software (OSS) is thus no longer a reserved arena for software developers and computer gurus. Although user-centered designs are gaining popularity in OSS, usability is still not considered as one of the prime objectives in many design scenarios. In this paper, we analyze industry users perception of usability factors, including understandability, learnability, operability and attractiveness, on OSS usability. The research model of this empirical study establishes the relationship between the key usability factors and OSS usability from industrial perspective. In order to conduct the study, a data set of 105 industry users is included. The results of the empirical investigation indicate the significance of the key factors for OSS usability.
SENov 27, 2015Code
Maintenance Support in Open Source Software ProjectsArif Raza, Luiz Fernando Capretz, Faheem Ahmed
Easy and mostly free access to the internet has resulted in the growing use of open source software (OSS). However, it is a common perception that closed proprietary software is still superior in areas such as software maintenance and management. The research model of this study establishes a relationship between maintenance issues (such as user requests and error handling) and support provided by open source software through project forums, mailing lists and trackers. To conduct this research, we have used a dataset consisting of 120 open source software projects, covering a wide range of categories. The results of the study show that project forums and mailing lists play a significant role in addressing user requests in open source software. However according to the empirical investigation, it has been explored that trackers are used as an effective medium for error reporting as well as user requests.
SEJul 24, 2015Code
Myths and Realities about Online Forums in Open Source Software Development: An Empirical StudyFaheem Ahmed, Piers Campbell, Ahmad Jaffar et al.
The use of free and open source software (OSS) is gaining momentum due to the ever increasing availability and use of the Internet. Organizations are also now adopting open source software, despite some reservations, in particular regarding the provision and availability of support. Some of the biggest concerns about free and open source software are post release software defects and their rectification, management of dynamic requirements and support to the users. A common belief is that there is no appropriate support available for this class of software. A contradictory argument is that due to the active involvement of Internet users in online forums, there is in fact a large resource available that communicates and manages the provision of support. The research model of this empirical investigation examines the evidence available to assess whether this commonly held belief is based on facts given the current developments in OSS or simply a myth, which has developed around OSS development. We analyzed a dataset consisting of 1880 open source software projects covering a broad range of categories in this investigation. The results show that online forums play a significant role in managing software defects, implementation of new requirements and providing support to the users in open source software and have become a major source of assistance in maintenance of the open source projects.
SEOct 7, 2021
User Requirements for Software Game Process; An Empirical InvestigationSaiqa Aleem, Luiz Fernando Capretz, Faheem Ahmed et al.
This study attempts to provide a better understanding of the user dimension as a factor in software game success. It focuses mainly on an empirical investigation of the effect of user factors on the software game development process and finally on the quality of the resulting game. A quantitative survey was developed and conducted to identify key user dimensions. For this study, a survey was used to test the research model and hypotheses. The main contribution of this paper is to investigate empirically the influence of user key factors on software game development process that ultimately results in a higher quality final product. The results provide evidence that game development organizations must deal with multiple user key factors to remain competitive and handle high pressure in the soft-ware game industry.
SEMay 22, 2020
Updating Weight Values for Function Point CountingWei Xia, Danny Ho, Luiz Fernando Capretz et al.
While software development productivity has grown rapidly, the weight values assigned to count standard Function Point (FP) created at IBM twenty-five years ago have never been updated. This obsolescence raises critical questions about the validity of the weight values; it also creates other problems such as ambiguous classification, crisp boundary, as well as subjective and locally defined weight values. All of these challenges reveal the need to calibrate FP in order to reflect both the specific software application context and the trend of todays software development techniques more accurately. We have created a FP calibration model that incorporates the learning ability of neural networks as well as the capability of capturing human knowledge using fuzzy logic. The empirical validation using ISBSG Data Repository (release 8) shows an average improvement of 22% in the accuracy of software effort estimations with the new calibration.
SEDec 12, 2018
A Call to Promote Soft Skills in Software EngineeringLuiz Fernando Capretz, Faheem Ahmed
We have been thinking about other aspects of software engineering for many years; the missing link in engineering software is the soft skills set, essential in the software development process. Although soft skills are among the most important aspects in the creation of software, they are often overlooked by educators and practitioners. One of the main reasons for the oversight is that soft skills are usually related to social and personality factors, i.e., teamwork, motivation, commitment, leadership, multi-culturalism, emotions, interpersonal skills, etc. This editorial is a manifesto declaring the importance of soft skills in software engineering with the intention to draw professionals attention to these topics. We have approached this issue by mentioning what we know about the field, what we believe to be evident, and which topics need further investigation. Important references to back up our claims are also included. Software engineers take pride in the depth of their technical expertise, which separates them from the crowd. But, what makes a good software engineer? First, it is the technical knowledge of relevant methodologies and techniques (i.e. hard skills), as well as the skills necessary for applying that knowledge in practice. Second, but nonetheless important, it is a set of soft skills, in particular collaboration, communication, problem-solving and similar interpersonal and critical thinking skills that are expected from software engineering professionals. In other words, software engineers need both hard and soft skills in order to be successful at the workplace.
SEJan 12, 2018
Critical Success Factors to Improve the Game Development Process from a Developers PerspectiveSaiqa Aleem, Luiz Fernando Capretz, Faheem Ahmed
The growth of the software game development industry is enormous and is gaining importance day by day. This growth imposes severe pressure and a number of issues and challenges on the game development community. Game development is a complex process, and one important game development choice is to consider the developer perspective to produce good quality software games by improving the game development process. The objective of this study is to provide a better understanding of the developers dimension as a factor in software game success. It focuses mainly on an empirical investigation of the effect of key developer factors on the software game development process and eventually on the quality of the resulting game. A quantitative survey was developed and conducted to identify key developer factors for an enhanced game development process. For this study, the developed survey was used to test the research model and hypotheses. The results provide evidence that game development organizations must deal with multiple key factors to remain competitive and to handle high pressure in the software game industry. The main contribution of this paper is to investigate empirically the influence of key developer factors on the game development process.
SENov 22, 2017
Game Development Software Engineering Process Life Cycle: A Systematic ReviewSaiqa Aleem, Luiz Fernando Capretz, Faheem Ahmed
Software game is a kind of application that is used not only for entertainment, but also for serious purposes that can be applicable to different domains such as education, business, and health care. Although the game development process differs from the traditional software development process because it involves interdisciplinary activities. Software engineering techniques are still important for game development because they can help the developer to achieve maintainability, flexibility, lower effort and cost, and better design. The purpose of this study is to assesses the state of the art research on the game development software engineering process and highlight areas that need further consideration by researchers. In the study, we used a systematic literature review methodology based on well-known digital libraries. The largest number of studies have been reported in the production phase of the game development software engineering process life cycle, followed by the pre-production phase. By contrast, the post-production phase has received much less research activity than the pre-production and production phases. The results of this study suggest that the game development software engineering process has many aspects that need further attention from researchers; that especially includes the postproduction phase.
SENov 22, 2017
A Digital Game Maturity Model (DGMM)Saiqa Aleem, Luiz Fernando Capretz, Faheem Ahmed
Game development is an interdisciplinary concept that embraces artistic, software engineering, management, and business disciplines. This research facilitates a better understanding of important dimensions of digital game development methodology. Game development is considered as one of the most complex tasks in software engineering. The increased popularity of digital games, the challenges faced by game development organizations in developing quality games, and high competition in the digital game industry demand a game development maturity assessment. Consequently, this study presents a Digital Game Maturity Model to evaluate the current development methodology in an organization. The framework of this model consists of assessment questionnaires, a performance scale, and a rating method. The main goal of the questionnaires is to collect information about current processes and practices. In general, this research contributes towards formulating a comprehensive and unified strategy for game development maturity evaluation. Two case studies were conducted and their assessment results reported. These demonstrate the level of maturity of current development practices in two organizations.
SEAug 28, 2015
What Soft Skills Software Architect Should Have? A Reflection from Software IndustryFaheem Ahmed, Piers Campbell, Azam Beg et al.
The job of software architect is considered very crucial in the life cycle of the software development because software architecture has a pivotal role in the success and failure of the software project in terms of cost and quality. People have different personality traits, and the way they perceive, plan and execute any assigned task is influenced by it. These personality traits are characterized by soft skills. Most of the time, software development is a team work involving several people executing different tasks. The success and failure stories of software projects revealed the human factor as one of the critical importance. In this work we are presenting an exploratory study about the soft skills requirements for a software architects job. We analyzed 124 advertised jobs in the title of software architect and explore the soft skills requirements. The results of this investigation help in understanding software skills requirement set for a job of software architect and presents the current status of their use in job advertisements.
SEAug 25, 2015
F2- Rules for Qualification of Developing and Managing Software Product LineFaheem Ahmed, Luiz Fernando Capretz
Software product line has emerged as a valuable concept of developing software based on reusable software assets. The concept aims on effective utilization of software assets, reduced time to delivery, improved quality and better benefits to cost ratio of products. In this paper we have defined certain rules for the qualification of developing and managing a software product line. An organization must follow these rules in order to establish and manage software product line effectively.
SEJul 24, 2015
Framework for Version Control & Dependency Link of Components & Products in a Software Product LineFaheem Ahmed, Luiz Fernando Capretz
Software product line deals with the assembly of products from existing core assets commonly known as components and continuous growth in the core assets as we proceed with production. This idea has emerged as vital in terms of software development from component-based architecture. Since in software product line one has to deal with number of products and components simultaneous therefore there is a need to develop a strategy, which will help to store components and products information in such a way that they can be traced easily for further development. This storage strategy should reflect a relationship between products and components so that product history with reference to components can be traced and vise versa. In this paper we have presented a tree structure based storage strategy for components and products in software product line. This strategy will enable us to store the vital information about components and products with a relationship of their composition and utilization. We implemented this concept and simulated the software product line environment.
SEJul 24, 2015
A Decision Support Tool for Assessing the Maturity of Software Product Line ProcessFaheem Ahmed, Luiz Fernando Capretz
The software product line aims at the effective utilization of software assets, reducing the time required to deliver a product, improving the quality, and decreasing the cost of software products. Organizations trying to incorporate this concept require an approach to assess the current maturity level of the software product line process in order to make management decisions. A decision support tool for assessing the maturity of the software product line process is developed to implement the fuzzy logic approach, which handles the imprecise and uncertain nature of software process variables. The proposed tool can be used to assess the process maturity level of a software product line. Such knowledge will enable an organization to make crucial management decisions. Four case studies were conducted to validate the tool, and the results of the studies show that the software product line decision support tool provides a direct mechanism to evaluate the current software product line process maturity level within an organization.
SEJul 24, 2015
An Architecture Process Maturity Model of Software Product Line EngineeringFaheem Ahmed, Luiz Fernando Capretz
Software architecture has been a key research area in the software engineering community due to its significant role in creating high quality software. The trend of developing product lines rather than single products has made the software product line a viable option in the industry. Software product line architecture is regarded as one of the crucial components in the product lines, since all of the resulting products share this common architecture. The increased popularity of software product lines demands a process maturity evaluation methodology. Consequently, this paper presents an architecture process maturity model for software product line engineering to evaluate the current maturity of the product line architecture development process in an organization. Assessment questionnaires and a rating methodology comprise the framework of this model. The objective of the questionnaires is to collect information about the software product line architecture development process. Thus, in general this work contributes towards the establishment of a comprehensive and unified strategy for the process maturity evaluation of software product line engineering. Furthermore, we conducted two case studies and reported the assessment results, which show the maturity of the architecture development process in two organizations
SEJul 24, 2015
A Business Maturity Model of Software Product Line EngineeringFaheem Ahmed, Luiz Fernando Capretz
In the recent past, software product line engineering has become one of the most promising practices in software industry with the potential to substantially increase the software development productivity. Software product line engineering approach spans the dimensions of business, architecture, software engineering process and organization. The increasing popularity of software product line engineering in the software industry necessitates a process maturity evaluation methodology. Accordingly, this paper presents a business maturity model of software product line, which is a methodology to evaluate the current maturity of the business dimension of a software product line in an organization. This model examines the coordination between product line engineering and the business aspects of software product line. It evaluates the maturity of the business dimension of software product line as a function of how a set of business practices are aligned with product line engineering in an organization. Using the model presented in this paper, we conducted two case studies and reported the assessment results. This research contributes towards establishing a comprehensive and unified strategy for a process maturity evaluation of software product lines.
SEJul 24, 2015
Soft Skills and Software Development: A Reflection from the Software IndustryFaheem Ahmed, Luiz Fernando Capretz, Salah Bouktif et al.
We review the literature relating to soft skills and the software engineering and information systems domain before describing a study based on 650 job advertisements posted on well-known recruitment sites from a range of geographical locations including, North America, Europe, Asia and Australia. The study makes use of nine defined soft skills to assess the level of demand for each of these skills related to individual job roles within the software industry. This work reports some of the vital statistics from industry about the requirements of soft skills in various roles of software development phases. The work also highlights the variation in the types of skills required for each of the roles. We found that currently although the software industry is paying attention to soft skills up to some extent while hiring but there is a need to further acknowledge the role of these skills in software development. The objective of this paper is to analyze the software industry soft skills requirements for various software development positions, such as system analyst, designer, programmer, and tester. We pose two research questions, namely, (1) What soft skills are appropriate to different software development lifecycle roles, and (2) Up to what extend does the software industry consider soft skills when hiring an employee. The study suggests that there is a further need of acknowledgment of the significance of soft skills from employers in software industry.
SEJul 20, 2015
Business Process Mining Approaches: A Relative ComparisonSaiqa Aleem, Luiz Fernando Capretz, Faheem Ahmed
Recently, information systems like ERP, CRM and WFM record different business events or activities in a log named as event log. Process mining aims at extracting information from event logs to capture business process as it is being executed. Process mining is an important learning task based on captured processes. In order to be competent organizations in the business world; they have to adjust their business process along with the changing environment. Sometimes a change in the business process implies a change into the whole system. Process mining allows for the automated discovery of process models from event logs. Process mining techniques has the ability to support automatically business process (re)design. Typically, these techniques discover a concrete workflow model and all possible processes registered in a given events log. In this paper, detailed comparison among process mining methods used in the business process mining and differences in their approaches have been provided.
CRJul 20, 2015
Security Issues in Data WarehouseSaiqa Aleem, Luiz Fernando Capretz, Faheem Ahmed
Data Warehouse provides storage for huge amounts of historical data from heterogeneous operational sources in the form of multidimensional views, thus supplying sensitive and useful information which help decision-makers to improve the organizations business processes. A data warehouse environment must ensure that data collected and stored in one big repository are not vulnerable. A review of security approaches specifically for data warehouse environment and issues concerning each type of security approach have been provided in this paper.
SEJun 24, 2015
Benchmarking Machine Learning Technologies for Software Defect DetectionSaiqa Aleem, Luiz Fernando Capretz, Faheem Ahmed
Machine Learning approaches are good in solving problems that have less information. In most cases, the software domain problems characterize as a process of learning that depend on the various circumstances and changes accordingly. A predictive model is constructed by using machine learning approaches and classified them into defective and non-defective modules. Machine learning techniques help developers to retrieve useful information after the classification and enable them to analyse data from different perspectives. Machine learning techniques are proven to be useful in terms of software bug prediction. This study used public available data sets of software modules and provides comparative performance analysis of different machine learning techniques for software bug prediction. Results showed most of the machine learning methods performed well on software bug datasets.