Redesign (software)

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 languages, such as Java and C++, software architecture has become an important issue. Software systems often suffer during software evolution due to quick 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 include requirements analysis activities. The new design may then be implemented by refactoring the pre-existing software, or may require a new programming paradigm, such as a transition from unstructured to structured programming or to Object-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 on April 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.

Игры ⚽ Нужно решить контрольную?

Look at other dictionaries:

  • Software design — is a process of problem solving and planning for a software solution. After the purpose and specifications of software are determined, software developers will design or employ designers to develop a plan for a solution. It includes low level… …   Wikipedia

  • Product software implementation method — A product software implementation method is a systematically structured approach to effectively integrate a software based service or component into the workflow of an organizational structure or an individual end user.This entry focuses on the… …   Wikipedia

  • Aspect-oriented software development — (AOSD) is an emerging software development technology that seeks new modularizations of software systems. AOSD allows multiple concerns to be expressed separately and automatically unified into working systems.Traditional software development has …   Wikipedia

  • Functional Software Architecture — A Functional Software Architecture (FSA) is an architectural model that identifies enterprise functions, interactions and corresponding IT needs. These functions can be used as reference by different domain experts to develop IT systems as part… …   Wikipedia

  • Songbird (software) — Songbird Songbird 1.7.3 on Windows 7 Developer(s) …   Wikipedia

  • Consulting software engineer — In the field of software engineering, the term consulting software engineer denotes a person who represents the customer s interests with, e.g., the project team actually building a software system, application or software product. The term… …   Wikipedia

  • Enterprise test software — (ETS) is a type of software that electronics and other manufacturers use to standardize product testing enterprise wide, rather than simply in the test engineering department. It is designed to integrate and synchronize test systems to other… …   Wikipedia

  • Dictionary (software) — Dictionary Dictionary running under Mac OS X Leopard, showing Wikipedia s page on Wikipedia …   Wikipedia

  • Code refactoring — Refactor redirects here. For the use of refactor on Wikipedia, see Wikipedia:Refactoring talk pages. Code refactoring is disciplined technique for restructuring an existing body of code, altering its internal structure without changing its… …   Wikipedia

  • Nintendo DS — This article is about the original Nintendo DS. For its second revision, see Nintendo DS Lite. For its third and fourth revisions, see Nintendo DSi. Nintendo DS …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”