Software maintenance is an inevitable process due to program evolution (Lehman & Belady, 1985). Adaptive maintenance (Schenidewind, 1987) is an activity used to adapt software to new environments or new requirements due to the evolving needs of new platforms, new operating systems, new software, and evolving business requirements. For example, companies have been adapting their legacy systems to Web-enabling environments of doing business that could not have been imagined even a decade ago (Khosrow-Pour & Herman, 2001; Werthner & Ricci, 2004).
Key Terms in this Chapter
Reverse Engineering: Reverse engineering is the process of discovering the functions and their interrelationships of a software system as well as creating representations of the system in another form or at a higher level of abstraction.
UDDI: UDDI is a Web services registry and discovery technology for strings and retrieving Web services interfaces.
SOAP: The W3C definition of SOAP is “a set of protocols governing the format and processing rules of SOAP messages.”
Software Reengineering: Chikofsky and Cross define software reengineering as “the examination and alternation of a software system to reconstitute it in a new form and subsequent implementation of that form.”
Web Services: The W3C definition of a Web service is “a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in WSDL. Other systems interact with the Web services using SOAP messaging defined in the WSDL specification.”
Software Maintenance: Software maintenance is the process of enhancing and adapting a software product after delivery as well as correcting faults.
WSDL: The W3C definition of WSDL is “an XML format for describing Web services interfaces, message types, operations, and protocol mappings.”