The search for the ideal methodology for architecting and building computer systems is almost as old as computing itself. The engineering discipline in the building construction industry, for example, has developed and refined methodologies for capturing and modeling the requirements of the user, precisely estimating the amount of material and labor required for completing the project, and designing and constructing the building. It is unthinkable in the building construction industry, for the user to make fundamental changes to the architecture, or to ask for the height of the ceiling to be increased after the building is constructed. In the computer software industry on the other hand, it is very common for the user to request for significant changes to the requirements of the system after it has been delivered for user acceptance testing. The history of software engineering is replete with examples of systems that were scrapped soon after they were delivered because they did not meet the objectives for which they were built. Whereas in the building construction industry, the buyer can get a reasonably good idea of what the building is going to be like, from the architect’s model and plans, such is not yet the case for computer systems. One of the challenges that the software engineering discipline faces is accurately defining and articulating the objectives and requirements of the system being built, in a way that the user can understand and relate to, and then translating the requirements into a functioning system. It is this challenge that drove the emergence of systems analysis and design methodologies in the last three decades, such as, Structured Systems Analysis and Design (SSAD), Rapid Application Development (RAD), Joint Application Design (JAD), etc. and Object Oriented Analysis and Design (OOAD). OOAD began evolving from the early 1980s and gathered huge industry momentum with the formation of the Object Management Group in 1989, an industry consortium that has over 800 members today. The OMG is responsible for defining and propagating vendor independent standards and specifications for the various aspects of Object Oriented software, such as CORBA, CORBA/IIOP the UML XMI MOF, Object Services, Internet Facilities and Domain Interface specifications. The key concept behind Object Technology is that the software is built out of standard, pre-fabricated, reusable components wherever possible. Also, the standard components or objects represent things in the real world that the user can more easily relate to, such as customers, accounts, purchase orders, etc. rather than programs or modules as in the traditional way of defining systems. A tremendous amount of work has gone into establishing standards and modeling languages for OO systems and the interactions and interfaces within and between distributed systems. Hence, the stated objective and a key benefit of an object-oriented system is its ability to expand in functionality by extending existing components and adding new objects to the system. Object management results in faster application development, easier maintenance, enormous scalability and reusable software. I think it would not be out of place, however, to add a word of caution here. As with any promising technology, there is a great deal of hype surrounding Object Oriented technology as well. I know of a large bank where the senior management, after attending a popular seminar on Object Oriented technology, mandated (with predictable results) that all future systems had to be Object Oriented, built using C++. It is important to remember that OO technology is not a silver bullet to solve all the ills of system development. A system is not object-oriented merely because it is written in C++ or Java or Smalltalk. Secondly, a poorly conceived, planned and designed system will result in a bad system even if it is object-oriented. It is in this context that Atul Kahate’s latest book, Object Oriented Analysis and Design is important and timely. Atul has introduced and built on the concepts in the lucid and easy style that is the hallmark of all his books. The use of practical examples and case studies at appropriate places will ensure that this is not an abstract and academic treatise, but a book that has a very practical utility. I am sure that the readers will find this book immensely educative and useful. NANDU KULKARNI
Head—Payment Systems Division
i-flex solutions limited, Pune |