OBJECT ORIENTED ANALYSIS AND THE DESIGN OF LARGE CLIENT SERVER APPLICATION IN A WINDOWS ENVIRONMENT: AN EXPERIENCE (Journal of Information and Communication Technology, 2002)
A Unified Modeling Language (UML) is probably the most popular language and notations for Object Oriented Analysis and Design (OOAD) in the industry. In fact, the UML, a unification of James Rumbaughâ€™s Object Modeling Techniques (OMT), Grady Boochâ€™s Booch Techniques, and Ivar Jacobsonâ€™s Object Oriented Software Engineering (OOSE), is fast becoming a lingua franca for software engineers, developers and designers alike. Being a lingua franca, the UML helps software engineers â€œspeakâ€ in the same language. In effect, the UML facilitates reuse of not only codes, but also software architectural designs. In some cases, these architectural designs are also documented as reusable designs or patterns. This paper, derived from our previous work (Idris et al., 2000; Zamli et al., 1999a; Zamli et al., 1999b; Zamli et al., 1999c; Zamli et al., 1999d; Zamli et al., 1999e), describes our experience using a UML to design large scale object oriented client server database applications in a Windows environment. In doing so, we have developed some reusable designs and conventions in terms of UML class diagrams along with class relationships, cardinality and stereotypes, as well as in terms of component diagrams and their dependencies. Using such designs and conventions, we have incrementally developed a Financial Analysis Module as part of a larger Enterprise Resource Planning Systems using the Borland C++ Builder 4.0, Microsoft SQL Server 7.0 and Rational Rose 98i, in a Windows NT platform with an average of 16,600 lines of codes (LOC) and 98 objects. While some aspects of the designs and conventions used in the Financial Analysis Module are project specific (e.g. using case diagrams, collaboration diagrams, and sequence diagrams), our experiences indicate that some aspects of the designs can be applicable in other development projects in a similar context (i.e. involving large scale database applications). This paper summarizes some of the lessons learned.