Abstract-Rule-based methods have traditionally been applied to develop knowledge-based systems that replicate expert performance on a deep but narrow problem domain. Knowledge engineers capture expert knowledge and encode it as a set of rules for automating the expert's reasoning process to solve problems in a variety of domains. We describe the development of a knowledge-based system approach to enhance program comprehension of Service Oriented Architecture (SOA) software. Our approach uses rule-based methods to automate the analysis of the set of artifacts involved in building and deploying a SOA composite application. The rules codify expert knowledge to abstract information from these artifacts to facilitate program comprehension and thus assist Software Engineers as they perform system maintenance activities. A main advantage of the knowledge-based approach is its adaptability to the heterogeneous and dynamically evolving nature of SOA environments.Keywords-expertise; rule-based system; knowledge-based system; service oriented architecture; SOA; software maintenance; search tool.
I. SOA, MAINTENANCE AND THE ROLE OF EXPERTISERule-based methods have been very effective in supporting decision making in many complex domains. Can they also assist Software Engineers in dealing with the emerging complexities of Service Oriented Architecture (SOA) applications?SOA is not a single software architecture, but rather a style for constructing complex systems, especially those that need to cross organizational boundaries. SOA systems, often called composite applications, typically resemble Fig. 1.An organization, whether governmental, non-profit, or private, finds that it needs to work with other organizations to carry out key workflows.For example fulfilling a purchase order requires getting stock from a partner company, planning employee travel involves reservations on several airlines, or providing a doctor with a patient's medical history entails assembling information from many medical records systems.As shown in Fig. 1, in a SOA architecture the software to support these workflows is organized as services having defined interfaces, running on different nodes and communicating via message passing. Some of these services will be owned and managed by the home organization but others will belong to partners or be offered by commercial vendors.Most commonly the Web Services group of standards is used to define the service interfaces and protocols [1]. In theory, these standards are supported by a broad group of providers so that services can interoperate across many different programming languages, operating systems, and data definition schemas. However, the standards have turned out to be both very complex and very loose, leading different implementers to create services and interfaces having vastly different styles.SOA composite applications began to appear at the start of the twenty first century and by now are very widespread. They have faced many technical and managerial difficulties, but perhaps none will be more ...