The road of establishing the Business Objects as a best practice in a large insurance company, which has a tremendous investment in a legacy code and which has had problem adopting a new technologies, has been a challenging one. We have experimented with variety of new concepts that would help us to transition more quickly and less painfully to the new architecture which is required. Business Objects is one of these tools or concepts, however we have had a few others before we have reached the BO.
While using object-oriented development and design tools a long time must be spent in order to understand the low level class hierarchy of the classes and their interaction. The classes which were being used during construction are of a fine grain and in order to be efficiently applied to solve a particular problem would have to interact with another class of similar granularity to produce the desired result. The study by Barry Boehm of the reuse cost of a single component in NASA illustrates that any change has its cost. One has to locate the appropriate component, (the same impact on learning curve of object-oriented languages - finding the right component to satisfy the appropriate request) understand its interface and determine how to fit into the system under construction. Furthermore, an electronic catalog of reusable components and the components themselves has to be maintained. The components have to be built for reuse, a more expensive process than special purpose component construction. The study corroborates that single-component reuse is almost as expensive as development from scratch.
Another group which was established to concentrate on the component and framework design and construction. The group closely worked with the business units to build the enterprise framework for mission critical initiatives. The problem this group experienced is well documented by the known researches (references to Ralph Johnon, Wolphgang Pree). The frameworks and components do evolve and it is fairly difficult to design a flexible framework to resolve the business problem on the first try. However, there were several framework adaptation efforts for the GUI construction efforts which brought tremendous pay back to the development efforts. Still, the problem in this area also well documented (reference to Coplien) interaction between frameworks. Clearly, our experience showed the need of standardization in this area, which had begun to materialize.
Two patterns from GOF specifically were used in several projects to standardize the interfaces for redundant information. For example, in the institutional business area we had several different systems that had dealt with eligibility/enrollment process. Facade and Adopter patterns were introduced to deal with the common interfaces to the multiple problem domains, while reengineering the multiple sub systems and replacing it with the common component. As mentioned above, the design patterns helped dealing with the interfaces, however, the bulk of the problem is reengineering of the business problem, which had not been widely addressed by the pattern community nor by any other communities known to us.
The search for commonality lead us to the area of standardization at the meantime. We established the participation in the forums where the standardization for the industries was considered to be the primary objective. Among the groups we participated were OMG and Acord. Both of these groups were involved in resolving the business problems as we perceived them. One area of the OMG attracted our attention since it was dealing with the most emergent issue as we defined it - Business Objects. We had to establish the project charter of the importance of this concept to us, primarily from the business stand point of view.
The application-based approach to software development arose during the period in which business problems were relatively stable and software was relatively simple. Under these conditions, a software solution could be developed fairly rapidly to address any given business problem, and the solution could remain to be valid for some years before being retired in favor of a new and better solution. Neither of these conditions holds today. Business conditions are becoming increasingly volatile, and software is becoming ever more complex and difficult to develop. The results of these two opposing trends are that application development can no longer keep up with business problems.
The components examples that addressed the business domain problems we found in IBMís IAA (Insurance Application Architecture) and OLIFE from ACORD. While both of these frameworks are not mature they both present the solution for our on-going domain problems. The area are of immediate concerns are the flexibility and extendibility and the main concern since both of these standards are rather based on proprietary architecture the possibility of undesirable lock in. Our level of resistance and indecisiveness would have been different if these frameworks were built on open standards such as business objects.
The idea of business pattern would treat the system as white box promoting
level of the awareness of best practices. In addition, such catalogs could
serve as a checklist for evaluation of the off the shelf solution. The
idea seems so simple and yet obvious, especially since the popularity of
the Design Patterns, it seems awkward that it has not gained the momentum.
We have attempted for a while to work in this area and found it a very
powerful tool during our user group session. We also have had several discussions
with different parties which might be interested in organizing this activity.
Gamma E., et al., Design Patterns: Elements of Reusable Object-Oriented Software, 1994, Addison-Wesley Professional Computing Series
Pree Wolfgang, Design Patterns for Object-Oriented Software Development, 1995, Addison-Wesley Publishing Company
The Power of Frameworks: for Windows and OS/2 developers, 1995, Taligent, Inc.
Bushman B., et al., Pattern-Oriented Software Architecture, 1996, John Wiley & Sons Ltd.
Coplien J., Software Patterns, 1997, SIGS
Boehm B., http://www.uvc.com
OOPSLA'98 Business Object Workshop IV