A4. Software Reengineering
A program has served the business needs of a company. During that time it has been corrected, adapted and enhanced many times. for instance the application is unstable because but every time a be replaced is attempted, unexpected and serious side effects can occur. Un-maintainable software is not a new problem. In fact, a software maintenance team has generated the broadening emphases on software reengineering.
Software Maintenance
The maintenance is described by four activities which undertaken after a program is released for use.
• Corrective maintenance
• Adaptive maintenance
• Perfective or enhancement maintenance
• …show more content…
For all of this reason, reengineering is not accomplished in a few months or even a few years. Reengineering of knowledge systems is an activity that can absorb knowledge technology resources for many years. That’s why every organization needs a practical strategy for software reengineering.
Reengineering is a rebuilding activity, and we can better understand the reengineering of knowledge systems for instance we consider an analogous activity; the rebuilding of a house. Consider the following situation; for instance you purchased a house in another state.
Before you can start rebuilding, it would seem reasonable to inspect the house. To determine whether it is in need of rebuilding, you would create a list of criteria so that your inspection would be systematic.
Inventory analysis: Every software organization must has an inventory of all programs. The inventory can be nothing more than a spreadsheet model containing knowledge that provides a detailed description of every active application by storing the knowledge.
According to business critically, longevity, current maintainability, and other locally important criteria, candidate for re-engineering …show more content…
That is, black-box testing enables the software engineer to derive sets of input conditions that can fully exercise all functional needs for a program. Black-box testing is not an alternative to white-box techniques. Rather, it is a complementary approach that is likely to uncover a different class of errors than white-box methods.
Black-box testing attempts to find errors in the following categories:
(1) incorrect or missing functions, (2) interface errors, (3) errors in knowledge structures or external knowledge base access, (4) behavior or performance errors, and (5) initialization and termination errors.
Unlike white-box testing, which is performed early in the testing process, black- box testing tends to be applied during later stages of testing. Because black-box testing purposely disregards control structure, attention is focused on the knowledge domain. By applying black-box techniques, we derive a set of test cases that satisfy the following criteria: (1) test cases that reduce, by a count that is greater than one, the number of additional test cases that must be designed to achieve reasonable testing and (2) Test cases that tell us few thing about the presence or absence of classes of errors, rather than an error associated only in place of the specific test at