reengineering | has definition A type of maintenance performed to improve the design of some part of a software system, in general so that it has higher maintainability. In general, no new features are added for users | ![2001-08-30 14:57:14.0](facet.gif) |
has purpose to increase maintainability of a system | ![2001-08-30 14:57:14.0](facet.gif) |
has part forward engineering | ![2001-08-30 14:57:14.0](facet.gif) |
has part refactoring | ![2001-08-30 14:57:15.0](facet.gif) |
includes - cleaning up the code to make it more readable
- completely replacing a layer
- re-factoring part of the design
| ![2001-08-30 14:57:15.0](facet.gif) |
is a subtopic of 1.6 - Software Engineering Projects | ![2001-08-30 14:57:15.0](facet.gif) |
is a subtopic of 11.2 - Software Process Models | ![2001-08-30 14:57:15.0](facet.gif) |
is a kind of maintenance | ![2001-08-30 14:57:15.0](facet.gif) |
is a kind of software engineering | ![2001-08-30 14:57:15.0](facet.gif) |
reduces long-term costs | ![2001-08-30 14:57:15.0](facet.gif) |
should make the system more amenable to adding features in the future | ![2001-08-30 14:57:15.0](facet.gif) |
should not include adding any new features for users | ![2001-08-30 14:57:15.0](facet.gif) |
maintenance | is part of software engineering | ![2001-08-30 14:56:32.0](facet.gif) |
software engineering | has challenge accurately forecasting how much time it will take either to develop a system, or to make a specific set of changes | ![2001-08-30 14:57:39.0](facet.gif) |
has definition from the Canadian Standards Association The systematic activities involved in the design, implementation and testing of software to optimize its production and support | ![2001-08-30 14:57:39.0](facet.gif) |
has definition from the IEEE (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in (1) | ![2001-08-30 14:57:39.0](facet.gif) |
has goal solving customers' problems | ![2001-08-30 14:57:39.0](facet.gif) |
has part ensuring that maintenance and evolution of software is done in a systematic way | ![2001-08-30 14:57:39.0](facet.gif) |
involves applying well-understood techniques in an organized and disciplined way | ![2001-08-30 14:57:39.0](facet.gif) |
involves the translation of higher-level designs into particular programming languages | ![2001-08-30 14:57:39.0](facet.gif) |
is / labour-intensive | ![2001-08-30 14:57:39.0](facet.gif) |
is highly iterative | ![2001-08-30 14:57:39.0](facet.gif) |
is undergoing development in its technology and techniques | ![2001-08-30 14:57:39.0](facet.gif) |
is normally organized into software projects | ![2001-08-30 14:57:39.0](facet.gif) |
sometimes consists of developing completely new software | ![2001-08-30 14:57:39.0](facet.gif) |
uses resources such as the time and money of the stakeholders, and the CPU-time and memory of computers | ![2001-08-30 14:57:40.0](facet.gif) |
usually consists of modifying software that has been already written - this is because software is normally continually changed over a period of years until it becomes obsolete | ![2001-08-30 14:57:40.0](facet.gif) |
process | see also process^2 | ![2001-08-30 14:57:05.0](facet.gif) |