scholarly journals Survey on Software Changes: Reasons and Remedies

Software systems play a key role in most businesses nowadays. Building robust, reliable and scalable software systems require going through a software production cycle (or process). However, it has been noticed that software systems are subjected to changes, whether those amendments are important or not. Those changes to software systems are viewed as a considerable issue in software engineering; they are considered as a burden and cost a lot, especially in cases such as enterprises and large-scale software systems. This study aims to identify the reasons that cause software changes and suggest remedies for those reasons. We survey the opinions of experts such as technical managers, team leaders, and senior developers. We collected 81 responses to our questionnaire, which aimed to establish common software development practices in the local industry. We also conducted 16 semi-structured interviews targeting the most senior experts, in which we directly discussed the reasons and remedies for software changes. Our results highlight the most influential reasons that cause changes to software systems, such as changes to user requirements, requests for new features, software development methodology, solving bugs, refactoring, and weak user experience design. Most importantly, the study solicited solutions that can reduce the need for software changes

Author(s):  
P. K. KAPUR ◽  
ANU. G. AGGARWAL ◽  
KANICA KAPOOR ◽  
GURJEET KAUR

The demand for complex and large-scale software systems is increasing rapidly. Therefore, the development of high-quality, reliable and low cost computer software has become critical issue in the enormous worldwide computer technology market. For developing these large and complex software small and independent modules are integrated which are tested independently during module testing phase of software development. In the process, testing resources such as time, testing personnel etc. are used. These resources are not infinitely large. Consequently, it is an important matter for the project manager to allocate these limited resources among the modules optimally during the testing process. Another major concern in software development is the cost. It is in fact, profit to the management if the cost of the software is less while meeting the costumer requirements. In this paper, we investigate an optimal resource allocation problem of minimizing the cost of software testing under limited amount of available resources, given a reliability constraint. To solve the optimization problem we present genetic algorithm which stands up as a powerful tool for solving search and optimization problems. The key objective of using genetic algorithm in the field of software reliability is its capability to give optimal results through learning from historical data. One numerical example has been discussed to illustrate the applicability of the approach.


Author(s):  
Chitrak Vimalbhai Dave

Abstract: Software Process Models from its inception instill standardization and creates a generic culture of developing software for various IT industries. A great paradigm shift has been observed in terms of embracing Agile Development methodology as a viable development methodology in cross key business units. There is a buffet of agile methodologies comes under the umbrella of ASD, out of which Scrum got the highest popularity and acceptability index. Agile based software development is the need of immediate environment. There is an increasing demand for significant changes to software systems to meet ever-changing user requirements and specifications. As Agile is volatile, so effort estimation is challenging and still striving for perfection to decide size, effort, cost, duration and schedule of projects with minimum error. This cause sensitizes potential researchers all across the globe to start working on addressing the issue of inaccurate predication of efforts. The gap between estimated and actual effort is because of limited or no inclusion of various estimation factors like people and project related factors, inappropriate use of size metric and cost drivers, ignorance of testing effort, team member’s inability to understand user story size and complexity etc. This paper attempts to bridge the gap of estimated and actual effort by the use of soft computing techniques thus taking the research to advance frontier area in terms ofestimation. Keywords: Cost Estimation, Effort Estimation, Scrum, Machine Learning, Agile Software Development


10.28945/3379 ◽  
2009 ◽  
Author(s):  
Lakshmi Narasimhan ◽  
Prapanna Parthasarathy ◽  
Manik Lal Das

Component-Based Software Engineering (CBSE) has shown significant prospects in rapid production of large software systems with enhanced quality, and emphasis on decomposition of the engineered systems into functional or logical components with well-defined interfaces used for communication across the components. In this paper, a series of metrics proposed by various researchers have been analyzed, evaluated and benchmarked using several large-scale publicly available software systems. A systematic analysis of the values for various metrics has been carried out and several key inferences have been drawn from them. A number of useful conclusions have been drawn from various metrics evaluations, which include inferences on complexity, reusability, testability, modularity and stability of the underlying components. The inferences are argued to be beneficial for CBSE-based software development, integration and maintenance.


Author(s):  
G. Chroust

Information systems are designed for the people, by the people. The design of software systems with the help of software systems is another aspect of human-computer interfaces. New methods and their (non-)acceptance play an important role. Motivational factors of systems developers considerably influence the type and quality of the systems they develop (Arbaoui, Lonchamp & Montangero, 1999; Kumar & Bjoern-Andersen, 1990). To some extent, the quality of systems is a result of their developers’ willingness to accept new and (supposedly) better technology (Jones, 1995). A typical example is component-based development methodology (Bachmann et al., 2000; Cheesman & Daniels, 2001). Despite considerable publication effort and public lip service, component-based software development (CBD) appears to be getting a slower start than anticipated and hoped for. One key reason stems from the psychological and motivational attitudes of software developers (Campell, 2001; Lynex & Layzell, 1997). We therefore analyze the attitudes that potentially hamper the adoption of the component-based software development approach. Maslow’s Hierarchy of Need (Boeree, 1998; Maslow, 1943) is used for structuring the motives.


Author(s):  
Arunasalam Sambhanthan

This chapter looks at standardization practices of large scale software development businesses and its acceptability among software professionals. The article reports the results of a survey conducted among software professionals on standardization practices of their organisations. The results show that majority of the organisations are complying with standardization related guidelines in their businesses. A significant number of employees are unaware about the standardization practices adapted by their organisations. The conclusions remarks that the organisations have to gear up their efforts towards introducing and maintaining global standards in the production and delivery of software products and services to their clients. Significant attention towards training and development related to standardization practices is recommended. Future research is warranted in investigating the effectiveness of existing global standards related to software production and delivery in large scale software development organisations.


2009 ◽  
pp. 588-596
Author(s):  
G. Chroust

Information systems are designed for the people, by the people. The design of software systems with the help of software systems is another aspect of human-computer interfaces. New methods and their (non-)acceptance play an important role. Motivational factors of systems developers considerably influence the type and quality of the systems they develop (Arbaoui, Lonchamp & Montangero, 1999; Kumar & Bjoern-Andersen, 1990). To some extent, the quality of systems is a result of their developers’ willingness to accept new and (supposedly) better technology (Jones, 1995). A typical example is componentbased development methodology (Bachmann et al., 2000; Cheesman & Daniels, 2001). Despite considerable publication effort and public lip service, component-based software development (CBD) appears to be getting a slower start than anticipated and hoped for. One key reason stems from the psychological and motivational attitudes of software developers (Campell, 2001; Lynex & Layzell, 1997). We therefore analyze the attitudes that potentially hamper the adoption of the component-based software development approach. Maslow’s Hierarchy of Need (Boeree, 1998; Maslow, 1943) is used for structuring the motives.


Author(s):  
Wusheng Zhang ◽  
Mik Kim

Advocates of application frameworks claim that this technology is one of the most promising, supporting large-scale reuse, increased productivity and quality, and reduced cost of software development. A number of its advocates suggest that the next decade will be a major challenge for the development and deployment of this technology. This study investigates the theory and practice of application frameworks technology to evaluate what works and what does not in systems development. The evaluation is based on quality criteria developed by the authors. The result of the study suggests that application frameworks technology does support large-scale reuse by incorporating other existing reuse techniques such as design patterns, class libraries and components. It also shows that the methodological support pertaining to building and implementing application frameworks is inadequate. Furthermore, it indicates that application frameworks technology may increase the quality of software in terms of correctness and reusability with some penalty factors but there is no guarantee of increasing the extendability and interoperability of software systems. There are still obstacles that restrict the potential benefits claimed by the proponents of application frameworks.


Author(s):  
Kavous Salehzadeh Niksirat ◽  
Fitra Rahmamuliani ◽  
Xiangshi Ren ◽  
Pearl Pu

AbstractThe paper presents a qualitative study to explore the use of fitness trackers and their social functions in intergenerational settings. The study covered three phases of semi-structured interviews with older and younger adults during individual and intergenerational use of the fitness trackers. The study revealed comparability as common fitness practice for older adults. The findings show that intergenerational fitness tracking practices can increase in-person meetings and daily discourses and thus enhance family social bonds. An unexpected benefit of this practice is its ability to help older adults overcome technology barriers related to the use of fitness trackers. Overall speaking, families whose intergenerational members already enjoy a strong relationship are likely to gain the most from such practices. Many challenges remain especially concerning the motivation and involvement of younger partners and the user experience design aspect of such digital programs. For this purpose, we have developed some recommendations for the future development and deployment of intergenerational fitness tracking systems to stimulate interactions between younger and older family members and thus to promote their physical and emotional well-being.


2022 ◽  
Vol 31 (2) ◽  
pp. 1-26
Author(s):  
Chandra Maddila ◽  
Nachiappan Nagappan ◽  
Christian Bird ◽  
Georgios Gousios ◽  
Arie van Deursen

Modern, complex software systems are being continuously extended and adjusted. The developers responsible for this may come from different teams or organizations, and may be distributed over the world. This may make it difficult to keep track of what other developers are doing, which may result in multiple developers concurrently editing the same code areas. This, in turn, may lead to hard-to-merge changes or even merge conflicts, logical bugs that are difficult to detect, duplication of work, and wasted developer productivity. To address this, we explore the extent of this problem in the pull-request-based software development model. We study half a year of changes made to six large repositories in Microsoft in which at least 1,000 pull requests are created each month. We find that files concurrently edited in different pull requests are more likely to introduce bugs. Motivated by these findings, we design, implement, and deploy a service named Concurrent Edit Detector (ConE) that proactively detects pull requests containing concurrent edits, to help mitigate the problems caused by them. ConE has been designed to scale, and to minimize false alarms while still flagging relevant concurrently edited files. Key concepts of ConE include the detection of the Extent of Overlap between pull requests, and the identification of Rarely Concurrently Edited Files . To evaluate ConE, we report on its operational deployment on 234 repositories inside Microsoft. ConE assessed 26,000 pull requests and made 775 recommendations about conflicting changes, which were rated as useful in over 70% (554) of the cases. From interviews with 48 users, we learned that they believed ConE would save time in conflict resolution and avoiding duplicate work, and that over 90% intend to keep using the service on a daily basis.


Sign in / Sign up

Export Citation Format

Share Document