Softwaremaintenance and evolution of systems was first proposed by Lehman in 1969 . Lehman notes that systems continue to evolve over time. As a result, they become more complex unless some action such as code refactoring is adopted to reduce the complexity that may arise as a result of maintenance. Software main- tenance is a very broad activity that includes error correction, enhancements of capabilities, removal of obsolete functions, and optimization. Because changes are inevitable, certain mechanisms must be developed to evaluate, control, and modify the software. Thus changes to software are done in order to preserve the value of the soft- ware over time. The software value can be enhanced by expanding the customer base, meeting additional re- quirements, thus making the software more easier to use, more efficient, more reliable, and employing new technology to cater for the new features that may be introduced to these technologies. Softwareevolution plays an important role in softwaremaintenance process. Most development effort and expenditure is allocated to the evolution and update of existing versions of software. Software is ceaselessly changed—maintained, evolved and updated—more often than it is written, and changing software is extremely costly.
This paper overviews softwaremaintenance, its relevance, the problems, and the available solutions; the underlying objective is to present softwaremaintenance not as a problem, but in terms of solutions. Of course, this view of maintenance does not apply to software, as software does not deteriorate with the use and the passing of time. Nevertheless, the need for modifying a piece of software after delivery has been with us since the very beginning of electronic computing. The Lehman’s laws of evolution [17, 18] state that successful software systems are condemned to change over time. A predominant proportion of changes is to meet ever changing user needs. This is captured by the first law of Lehman [17, 18]: “A program that is used in a real world environment necessarily must change or become progressively less useful in that environment”. Significant changes also derive from the need to adapt software to interact with external entities, including people, organizations, and artificial systems. In fact, software is infinitely malleable and, therefore, it is often perceived as the easiest part to change in a system .
Abstract— Computer softwaremaintenance has become the ultimate burdensome, expensive and labor-intensive activity in the application establishment life cycle. Therefore for efficiently assisting product repairing, it’s vital to present a dependable high- quality advancement of software systems. The nature of softwaremaintenance is to deal with the changes that occur during the softwareevolution. To effectively manage and control these changes, software repositories such as documentation script editing, fault warehouses, connection catalogues, distribution records, and implementation logbook are used to record information about these changes. The review has shown that the finding the best alternative may increase the effort of software engineer to find which version of give software can be re-engineered easily. Selecting the best computer software pertaining to re-engineer is constituted for being incredibly essential activity. Mining the software repositories features being a exploration path within the last several years, attaining considerable achievement throughout survey as well as application to guide different software servicing responsibilities. The overall objective of this paper is to evaluating the shortcomings in earlier techniques.
The paper  deals with the identification of duplicated parts in models. Like Triangle (gain) multiply with a constant. Circle (add), sum up their inputs. Squares have different meaning depending on their icon. It represents the techniques which are used to improve scalability by an adapted subsystem detection, to improve relevance of detected by clones by providing use case specific ranking and finally tool support to ease inspection of the instances of the detected clones. Represents inconsistent clones constitute a major source of faults, which means that cloning can be a substantial problem during development and maintenance unless special care is taken to find and track existing clones and their evolution. Rahman et al.  analysed relationship between cloning and defect proneness. We find that, first the great majority of bugs are not significantly associated with clones. Second we find that clones may be less defect prone than non- cloned code. Finally, we find little evidence that clones with more copies are actually more error prone. Buggy code refers to a source code lines which were modified to fix a bug.
Historically, there has always been a split between the process of software devel- opment and the process of softwareevolution (softwaremaintenance). People think of software development as a creative activity in which a software system is devel- oped from an initial concept through to a working system. However, they sometimes think of softwaremaintenance as dull and uninteresting. Although the costs of main- tenance are often several times the initial development costs, maintenance processes are sometimes considered to be less challenging than original software development. This distinction between development and maintenance is increasingly irrelevant. Hardly any software systems are completely new systems and it makes much more sense to see development and maintenance as a continuum. Rather than two separate processes, it is more realistic to think of software engineering as an evolutionary process (Figure 2.8) where software is continually changed over its lifetime in response to changing requirements and customer needs.
proprietary code is developed in private. Unlike traditional software, OSS is developed by geographically distributed teams through the use of the internet. Team members typically work in a distributed environment. Team members are volunteers rather than employee. After development of software, maintenance is required to meet the desired effects. Maintenance is essential for software to keep it up to date and bug free. Bugs are prevalent and widespread in software system. Softwaremaintenance is a very broad activity that includes error correction, enhancements of capabilities, and deletion of obsolete capabilities. Like development, maintenance of OSS is also coordinated through the internet. Open source software projects uses open bug repository during development and maintenance, so that both developers and user can report bugs that they have found, request useful features, modifications and give suggestions. The use of the bug tracking system to organize maintenance activity is widespread. Allowing users to report bugs, help in fixing of bugs and requesting feature is assumed to improve quality of software overall . Bug tracking system contain large amount of bug information that can give deep understanding into the evolution of software project. To improve the reliability of software system reporters, report bugs by writing bug report in bug tracking system like Bugzilla, Jira, Mantis etc. But OSS development has created new challenges to softwaremaintenance. This process of reporting a bug in open source software project is totally distributed and uncoordinated. In this scenario many reporters could submit same report for same problem . The same report which is submitted by several reports referred to as duplicate report. Identification and handling of duplicate bug report is important issue in OSS, because it can result in overhead for development team. If multiple bug report for same bug is not recognized as duplicate it can result in extra effort for development team .
Softwaremaintenance (SMT )consumes a large part of the overall lifecycle costs .The incapacity to change software quickly and reliably causes organizations to lose business opportunities. Thus, in recent years we have seen an increase in research directed towards addressing these issues. On the other hand, softwaremaintenance is a knowledge intensive activity. This knowledge comes not only from the expertise of the professionals involved in the process, but it is also intrinsic to the product being maintained, and to the reasons that motivate the maintenance (new requirements, user complaints, etc.) processes, methodologies and tools used in the organization. Moreover, the diverse types of knowledge are produced in different stage of the Maintenance process. During the softwaremaintenance activities different people intervene. Each person has partial information that is necessary to other members of the group. If the knowledge only exists in the software engineers and there is no system in charge of transferring the tacit knowledge (contained in the employees) to explicit knowledge (stored on paper, files, etc) when an employee leaves the organization a significant part of the intellectual knowledge goes with him/her. Another well-known issue that complicates the Maintenance process is the scarce documentation that exists related to a specific software system, or even if detailed documentation was produced when the original system was developed, it is seldom updated as the system evolves. For example, legacy software written by other units often has little or no documentation describing the features of the software.
The greatest question of all remains “how to design and implement a reliable and highly available software system? ” Is there a way to develop a system without memory leak, with- out memory corruption, without address space violation, without buffer overflow, without timing and synchronization errors, without data format translation errors, and the list goes on and on? Can we design a system where an error can be detected before it gener- ates a serious failure and possibly a catastrophe like the explosion of a rocket or air flight control mishaps? Can we eliminate interface errors when two or SW modules are linked to form a more complex system? How much education, training, code inspection, debug- ging, and testing are needed before a SW can be certified for reliability and availability? The best answer to any of these questions is “ we will try our best ” .
Because the development of evolutionary theory has far outpaced the generation of relevant data (genome-sequence data being a singular exception), using EE to confront long- standing problems has the potential to illuminate our un- derstanding of evolution for decades to come provided a few qualiﬁcations are appreciated. The most important consider- ations are the potential difﬁculty in balancing simplicity and realism in contrived laboratory experiments (Huey and Rosenzweig 2009), the uncertainty surrounding the rele- vance of observations from EE for natural populations ( M atos et al. 2000), and current limitations on our ability to rapidly phenotype large numbers of individuals in the rele- vant environment—the one in which EE was performed and where ﬁtness can be estimated. In principle, the power of EE studies derives from the fact that they are designed, repeat- able experiments; in practice, experimental design must be carefully considered to avoid unintended consequences and alternative explanations that are impossible to distinguish from the hypothesis that the experimenter originally hoped to address. The general advice for beginning students is to limit the number of variables manipulated while controlling for laboratory domestication.
Software cohesion can be defined as a measure of the degree to which elements of a module belong together . The conceptual cohesion has major significance in softwaremaintenance aspects . In our work, we have made study of source code of a program CAccessRepots, which have been used by  and are available as open source. It is a small- medium size program with 51 classes and 725 distinct methods in total.
In this paper we extend this mission concept by including active orbit control over the long-term evolution of the swarm. An electro-chromic coating of the SpaceChip device can be employed to alter the reflectivity coefficient of the spacecraft between two set values ( c R on 1.8 and c R off 1 ) . In this way the effect of SRP can be modulated to stabilise the spacecraft on a non-equilibrium orbit. The control relies on a simple algorithm: the spacecraft follow the natural flow lines in the orbital element phase space for the major part of their evolution, and, when the stabilisation region is reached, the reflectivity change is performed once per orbit. The effect of natural perturbations can be exploited to design operational orbits for SpaceChip devices: in the first phase of the mission, solar radiation pressure is exploited to raise the orbit pericentre, whereas in the second phase the dominant effect of drag is used for orbit decay and passive removal of the swarm. The initial conditions for deployment are selected such that a number of distributed measurements can be performed in a defined region of the phase space. The controlled evolution of the swarm is demonstrated against passive orbit evolution and a future mission application is identified which exploits such formation-flying on a large-scale system.
This paper is focused on SDLC Cycles and STLC Cycles. In this paper we studied on different SDLC cycle, SDLC Model and STLC Cycle, Methods of Testing, Levels of Testing. Software Engineer is an Engineer Branch associated with development of software produced using well defined methods and procedure. After review I would like to conclude that software testing is a basic activity of SDLC. Testing only shows the presence of errors and bug. Debugging helps us to improve the quality of software.
concept used in Software Engineering to describe a procedure of software development i.e., Requirement Gathering Analysis, Design, Coding, Testing, Deployment and Maintenance phase. These phases are actual implement as per customer requirements. The aim of Software Development Life Cycle is produce to high quality of software that meets the customer expectations, reaches completion within times.
Softwaremaintenance is a recurring process of any software product during its life cycle. When a scratch of the new software products comes into the human mind, the maintenance aspects should also come with its significance. As we know that any new software product goes from the different level of software product life cycle and each stage of cycle has its own importance and role. Our opinion is that maintenance is required at each stage of the cycle. There are many ideas and definition for the softwaremaintenance but as according to the IEEE Std. 1219- 1993, it is a modification of a software product after delivery in order to correct faults, to improve performance or other attributes, to adapt a product to a changed environment, or to improve the product maintainability.
In this paper, a bug resolver system is applicable for software industry where developers get stuck for single error. A single error takes too much time and companies need to spend huge amount of money on single bug. It is not affordable for companies where Time and money matters a lot. So, time and money can be utilize by providing all solution in developer’s desk even if he is not facing these bug. If developer has all the bug, description answer solution he ever face and stuck at any point and place. System builds by using Content-Boosted Collaborative Filtering Algorithm and CLUBAS Algorithm. Hence, development of system presents the bug resolver handler with best solutions.
Such is the experience which the authors have gleaned from previous projects and from the application of their estimating methods to real projects. Consequently, if a company wishes to take on further projects, it must include an entirely new team among its staff. This means at least a partial loss from the experience gathered by the first team, becoming unavailable for further projects. Furthermore, the new team would need to be trained in methods and tools used by the software company. This has implications for validation efforts.
Abstract: The readability of a program is concerned with its maintainability. The maintenance of software generally stands for evolving software, and even customizing existing code is a significant practice of modern software engineering. Readability also correlated with software quality, code change, and defect reporting. Code readability is a very decisive factor in software development. Code readability mainly provides a mechanism to ease of maintainability and code reusability. In order to measure the readability of code, we proposed readability metrics. In this paper, we validate our proposed MSR-SM Framework for the above purpose. An empirical study is conducted to achieve the aims of the study. We have written a code to extract the code information stored in historical repositories to collect the data for validation practice. We have extracted the data from a series of versions of the program to examine the variation in the ratio of source codes and comments between them. Contribution- This study comprises of a significant amount of empirical details related to association between code attributes and readability. We recognize that these details probably would have implications for the style of coding and its evaluation as well as for the design of programming.
Holgeid , presents the main results from a survey investigation performed in Norwegian organizations within the area of software development and maintenance. The results are based on responses from 53 Norwegian organizations. Somewhat surprisingly, the amounts of both traditional and functional maintenance work are significantly higher than in the similar investigation done five years earlier. It is also significantly higher than in the USA and in other countries. Also too much of the scarce IT-personnel spent their time on tasks that do not add value to the users of the systems.
Moreover, engineering principles and methodologies are being applied in the health sector just like in other domains. Significantly, the IT specialists and software developers need to consider the nature of applications in the health industries during the development process . Although the systems are simple in principle, it is essential to ensure that they are implemented in a structured way that addresses requirements such privacy while balancing usability requirements. The healthcare applications need to map the hospital model appropriately to fit the existing processes as well as align with practitioner's specialty.
Another key issue is system cognizance which includes that broad measure of time ought to be consumed by upkeep architects to peruse and comprehend the code, the pertinent documentation to have a superior point of view on its rationale, reason and structure to keep up a piece of programming and to improve the nature of software.