Software Evolution
“In the term of software engineering the Software Evolution which is the mechanism that should be developing the software product that utilized the disciplines of software engineering and methods is considered as software evolution”.
In 2008 the Hopkins and Jenkins (2008) have defined the term “brownfield software development”.
Brownfield software development
As a situation in which the development and maintenance of the software where the environment is dependent on the other software system. It is called Brownfield software development.
In the software evolution, Erlikh (2000) based on the informal industry poll suggests that the cost of software of any organization has 85–90% evolution costs. Otherwise, they are surveys suggest that about two-thirds of software costs are evolution costs. Sometimes the Part of the IT budget for all companies’ costs of software change is large. Sometimes the business requirement is changed then the software evolution are also may be the trigger.
Until the development of software do not complete than when the software is delivered but contains the life cycle of the system. Some fundamental parts of the software have been developed and to remove the correct error during that is found in the operation and adapt the software and hardware platform to improve the functional characteristic and non-functional characteristics and other.
Software evolution is the most important component because most organizations have invested a big amount of money in their software. So most of the companies that spend more maintenance on their currently available system and development of the new systems.
This includes the initial stage of software development, maintenance, and update until that is the development of the desired software.
First, the process of software evolution is gathering the requirements. After the collection of needed requirements then the developer generates the prototype of the intended software and gets their feedback of the user at every stage of the software development and easy to change and update the needed information in the software during the development. In which the process the user to keep maintenance and several consecutive updates can be changed. So these processes to easily change the original software until the user desired software has been accomplished.