Вы находитесь на странице: 1из 5

Preface

Background

Object technology has had one of the most profound impacts on the Informa-
tion Technology industry in the last few years. The development and growth of
the Internet has complemented this naturally. Most modern software systems
are built along the principles of object technology. At the same time, older
computer systems show no signs of either dying or becoming Object Oriented
(OO). This goes on to show that this parallel movement of OO and non-OO
systems is likely to continue for several decades.
One had learned about C, among other computing basics and programming
languages in 1994, when the idea of OO technology was really hitting the
computing world in a big way. Learning OO technology was fascinating on one
hand, but it also raised many questions on the other. For instance, it was
difficult to believe that whatever OO technology had to offer was not possible
with the existing technologies. As an example, one kept asking as to why we
need to make attributes of a class private, when one already had the idea of
local and global variables in C. In a nutshell, the point was that for people
with non-OO background, it was perhaps slightly difficult to appreciate what it
had brought forth. However, looking at the new crop of IT professionals, it
appears that this barrier no longer holds, perhaps because they start their ca-
reers with the OO technology itself. This is good in one way, and not so good
in another way; as the ability to question whether something is really needed is
not seen as much as one hopes it to be seen.
Object technology is quite a good concept. It does make some aspects of
analysis, design, development, and testing easier. More specifically, it makes
the overall process a lot more uniform as compared to the traditional model of
software development. However, I also believe that like many other technolo-
Copyright © 2004. Tata McGraw-Hill. All rights reserved.

gies, it is over-hyped and is perceived as the ultimate solution to all the prob-
lems in software development. This is the thought that surprisingly leads OO
technology to some problems. People hope that just by following OO prin-
ciples, they would achieve complete success in a software project. Clearly, this
is an incorrect expectation, which is not realized until the project goes into a
crisis mode. The other mistake people often make is to use the OO technology
only in parts. For example, in some cases, the analysis and design is done in
the traditional way, but only the development is done by using an OO lan-
guage, such as C++ or Java. This is also a likely recipe for disaster. Either OO

Kahate, A. (2004). Object oriented analysis & design. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank')
href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a>
Created from inflibnet-ebooks on 2020-10-19 23:11:26.
x Preface

technology should be applied right from the beginning, or not at all. A haphaz-
ard method is more often that not a road with bumpy rides.

Motivation

Personally, one is also amazed to see the extent to which the benefits of OO
technology in terms of reuse are touted. It is claimed that anything and
everything that is created by using the OO principles is always going to be
reusable automatically. This fallacy is further compounded by almost all books
and reading materials on the subject of OO technology. I would strongly resist
the temptation of agreeing with this simplistic view and instead, argue that to
make something reusable, it is not important whether it is OO-based or
otherwise. However, what is significant is how much of conscious effort has
gone in to make it reusable. It is a bonus if it is in OO technology, which
would help make the reuse more likely a success. But just because something
is created in OO does not necessarily qualify it to become reusable.
This book, therefore, is not an effort to glorify the OO technology, but to try
and put it in the right perspective. The main aim is to try and simplify, rather
than to compound or unreasonably elevate the status of the OO world. Instead,
a serious attempt is made to explain the how’s and the why’s of OO technology,
along with all the jargon and buzzwords associated with this technology.
The approach taken by the book in terms of the organization of its content is
also quite different from most other books on the subject. Many books start
with UML, and then introduce the areas in OO technology with reference to
UML. I strongly feel that this is not how one should learn about the OO
technology. Instead, one must know what exactly OO technology is, and how it
works; before one learns how to apply UML to it. This is the reason why the
chapter on UML in this book is featured towards the end of the book, more as
a reference to the material introduced in the earlier chapters.

Features
Copyright © 2004. Tata McGraw-Hill. All rights reserved.

The features and aims of this book are as follows.


l Simplicity: The book avoids, and in fact, explains jargon. It uses several
examples from our daily life to explain the key concepts and terminologies.
l Language: A serious attempt has been made to keep the language simple.
Jargon, keywords and important terms/concepts are explained in detail.
l Visual Approach: The book contains 413 diagrams, more than one per
page. This makes it highly visual which further helps the understanding of
the subject .
l Coverage: The book covers all the key aspects of Object technology,
including OOAD, OOP, OO Testing, OODBMS, UML, Unified Process

Kahate, A. (2004). Object oriented analysis & design. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank')
href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a>
Created from inflibnet-ebooks on 2020-10-19 23:11:26.
Preface xi

Model, and Design Patterns. It also discusses the methodologies of Booch,


Rumbaugh, and Jacobson.
l Appeal: The book is written in a manner that would appeal the students,
the teachers, as well as the practitioners of OOAD. Even people who do
not know this technology but want to know about it would find it simple
and yet detailed enough to understand it.
l Pedagogy: Every chapter has a chapter summary followed by a section
listing the important terms and concepts introduced in that chapter, and
then a question-answer section that contains true/false questions, multiple-
choice questions, and questions that need detailed answers.

Organization

Overall, the organization of the book is as follows.


Chapter 1 introduces the concept of Object Technology. More specifically, it
explains the history behind the progression of OO concepts, and why they have
gained prominence. The chapter also explains the key terms in the area of
Object technology. The chapter clearly distinguishes between the traditional
approach to software development and the OO approach.
Chapter 2 deals with the idea of modeling. It explains what modeling means in
the first place, and why it is needed. Further, the various models used in the
context of OO systems, viz. Object model, Dynamic model, and Functional
model, are discussed. This chapter is written with a clear focus on the OOAD
methodology as proposed by James Rumbaugh. (As an aside, personally I like
the style and technique of Rumbaugh as compared to those of Booch and
Jacobson because of its simplicity and clarity.) We also use modeling to intro-
duce the important concepts such as inheritance, interfaces, and polymorphism.
Chapter 3 deals with the analysis phase of an OO project. It explains why the
analysis phase is needed, and what exactly is involved in this phase. After
detailing the steps in the analysis phase, a simple case study is discussed to
understand how this works in real life. This practical example would go a long
way explaining the concepts of analysis, specially in the context of OO systems.
Copyright © 2004. Tata McGraw-Hill. All rights reserved.

Chapter 4 moves to the next logical step, which is OO design. It explains the
aims, steps, and processes in the design phase and then uses a case study to
illustrate these concepts. Subtle use of UML is also made so that the reader is
not puzzled to see these notations towards the end of the book in the chapter
on UML.
Chapter 5 talks about the most commonly used OO phase, i.e. Object Oriented
Programming (OOP). This chapter introduces the key concepts in OOP and
explains how OO technology can be programmed in the best possible manner.
It identifies the key OOP concepts, and then takes code examples from three
significant OOP languages (Java, C++, and C#) to illustrate them. The syntac-
tical differences are pointed out as and when appropriate.

Kahate, A. (2004). Object oriented analysis & design. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank')
href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a>
Created from inflibnet-ebooks on 2020-10-19 23:11:26.
xii Preface

Chapter 6 deals with the idea of OO testing. It begins with the concept of
testability followed by the description of testing in OO systems. A comparison
of testing of traditional systems and that of testing OO systems is made through-
out to gain a perspective of what is involved. Designing test cases and per-
forming actual testing in OO systems can be significantly different from testing
non-OO software. All such areas are identified and explained.
Chapter 7 discusses the key concept of Database Management Systems (DBMS)
in the context of OO systems. Starting with the basics of DBMS technology, it
moves on to the various concepts in Relational Database Management Systems
(RDBMS). How and where OO and RDBMS can marry each other, and where
they cannot is explained. Further the interesting topic of Object Oriented Data-
base Management Systems (OODBMS) is dealt with. The similarities and
differences between OODBMS and RDBMS are also listed.
Chapter 8 takes a look at a completely different topic of OO technology in
connection with the Internet. The various aspects of the Internet technology,
such as the different kinds of Web pages, are dealt with and how to program
them. Then the aspects of the Internet related to the OO technology, such as
the middleware technology with reference to CORBA and COM; Transaction
Processing (TP) monitors with reference to EJB and MTS; and Web services
are examined.
Chapter 9 deals with the Unified Modeling Language (UML). It begins with
the UML terminology and then explains things, relationships, and diagrams in
UML. Several examples are taken to focus on the key terms and concepts of
UML. The chapter presents all the diagrams discussed earlier in the book at
one place.
Chapter 10 focuses on the Unified Process Model. This model is a joint effort
of all the pioneers of the OO technology. This model modifies the traditional
software development methodology to suit the needs of OO systems. The key
concepts in this model are use-case driven approach, architecture-centric view,
and iterative and incremental methodology.
Chapter 11 covers the topic of Design Patterns. The concept of patterns has
been gaining prominence over the last few years. Design patterns are proven
Copyright © 2004. Tata McGraw-Hill. All rights reserved.

standardized models that can be used for designing software, rather than rein-
venting the wheel every time. There are several categories of patterns, and the
original list of patterns is getting longer all the time. We cover the original
patterns in detail.
The book ends with several useful appendices, as follows:
Appendix A discusses the concepts in algorithms and flow charts. Any soft-
ware project, regardless of what methodology it follows, uses these concepts
heavily. This appendix discusses what these mean, their usefulness and rel-
evance to the software projects with simple examples and several illustrations.

Kahate, A. (2004). Object oriented analysis & design. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank')
href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a>
Created from inflibnet-ebooks on 2020-10-19 23:11:26.
Preface xiii

Appendix B covers the topics in Software engineering and methodology. This


covers the topics related to the basic methodologies, and standards such as
SEI/CMM and ISO.
Appendix C deals with the basics of programming languages. Readers who are
not familiar with the basics of programming and with the different types of
programming languages are recommended to read this appendix first.
Appendix D details a case study on OO systems. This case study clearly
demystifies how a non-OO technology views a particular application, and how
an OO-based technology deals with it.

Acknowledgements

This is my tenth book on IT, and all have been possible simply because of the
tremendous love and help that I receive from my family and friends. My
parents and in-laws are always there to support me. My wife Anita besides
being my best friend, is also a very constructive critic and reviewer. My little
bundles of joy: Jui and Harsh teach me the meaning of life in a new way
everyday.
It is difficult to list all my friends and colleagues, who constantly offer help,
suggestions, and support. I would like to thank everybody at i-flex to make my
every working day something to look forward to.
I would like to thank Vibha Mahajan, Biju Ganesan, Mini Narayanan and
Somomita of Tata McGraw-Hill for their constant encouragement, and contri-
butions to this project. Without them, the book would not have seen the light
of the day.
Finally, I would like to thank Mr. Nandu Kulkarni for writing the foreword
to this book.

Recommendation

It is recommended that the readers who do not have any background in


programming, should first read Appendix C to get themselves familiar with the
Copyright © 2004. Tata McGraw-Hill. All rights reserved.

basics of programming and its relation to the object technology. Otherwise, the
reader can skip Chapter 5 altogether without any loss of continuity.

Suggestions/Comments

You are welcome to write to me at akahate@indiatimes.com with your sug-


gestions or comments about this book. Your feedback would help in making
this book better when we revise it for the next edition.
ATUL KAHATE

Kahate, A. (2004). Object oriented analysis & design. ProQuest Ebook Central <a onclick=window.open('http://ebookcentral.proquest.com','_blank')
href='http://ebookcentral.proquest.com' target='_blank' style='cursor: pointer;'>http://ebookcentral.proquest.com</a>
Created from inflibnet-ebooks on 2020-10-19 23:11:26.

Вам также может понравиться