ISBN : 978-81-963532-2-3 (E-Book) Thesecondprocessmodelforsoftwaremaintenanceispreferredforprojectswheretheamountof rework required issignificant.Thisapproachcan be represented by a reverse engineeringcycle followed by a forward engineering cycle. Such an approach is also known as softwarereengineering. This process model is depicted in fig. 25.2. The reverse engineering cycle isrequiredforlegacyproducts.Duringthereverseengineering,theoldcodeisanalyzed(abstracted) to extract the module specifications. The module specifications are then analyzed toproduce the design. The design is analyzed (abstracted) to produce the original requirementsspecification. The change requests are then applied to this requirements specification to arrive atthe new requirements specification. At the design, module specification, and coding a substantialreuse is made from the reverse engineered products. An important advantage of this approach isthat it produces a more structured design compared to what the original product had, producesgood documentation, and very often results in increased efficiency. The efficiency improvementsare brought about by a more efficient design. However, this approach is more costly than the firstapproach. An empirical study indicates that process 1 is preferable when the amount of rework isno more than 15%. Besides the amount of rework, several other factors might affect the decisionregardingusingprocessmodel 1 over process model 2: Reengineeringmightbe preferable forproductswhichexhibitahighfailurerate. Reengineering might also be preferable for legacy products having poor designandcodestructure. 117 Software Engineering Keerthana P, Manasa KN, Ganga D Bengal
123 Publizr Home