- Redesign (software)
Software redesign is the process of designing and implementing a new overall structure of a
software system , without changing its external behavior. The changes aim to fix deficiencies in the software design and create structure that allow for incorporating future enhancements and greater flexibility. The process of redesigning a software systems may result in a modified static structure and dynamic behavior.With the use of
object oriented programming language s, such as Java andC++ , software architecture has become an important issue. Software systems often suffer during software evolution due toquick and dirty implementations of new features, which leads to . Redesign addresses this issue and restores the software design to decrease the maintenance costs.Background
The term redesign is often used along with the terms refactoring and
reengineering . The relationships of these terms can be clarified by defining a hierarchy. Reengineering is the general term for conducting major changes of a software system. It does not specify the software aspects that are changed. Redesign stands for creating a new software design for an existing software system, and may includerequirements analysis activities. The new design may then be implemented by refactoring the pre-existing software, or may require a newprogramming paradigm , such as a transition from unstructured tostructured programming or toObject-oriented programming . Changes to the implementation due to a new Programming paradigm are usually too extensive to be described as Refactoring. Code refactoring is making a change to the software implementation in a way that thoroughly maintains internal consistency. Refactoring carries out modifications as a series of small steps. Each of these transformations is called refactoring, and if done correctly will introduce no change to the behavior of the system. [What is Refactoring?, [http://c2.com/cgi/wiki?WhatIsRefactoring c2.com] , Retrieved onApril 25 ,2008 ]These definitions place the redesign, whose meaning has not been well defined, between reengineering and refactoring. Both of these terms have been well established in the software engineering community and are useful to derive the definition of redesign.g
References
Wikimedia Foundation. 2010.