![]() |
![]() |
|
|
|
|
|
|
|
|
||
|
|
Object Oriented Development Object Oriented systems development is an extension of structured programming: Object Oriented development emphasizes the benefits of modular and reusable computer code and modeling real-world objects, just as structured programming emphasizes the benefits of properly nested structures. Object Oriented programming is 95 percent philosophy and 5 percent technology; programmers trained to think in object technology terms can use existing procedural languages to do many of the tasks that were once thought to require C++ or Smalltalk. Object Oriented concepts can be broken down into four properties.
Object Technology Object orientation is much more than a way to program. It can apply across every system development activity, including requirements analysis, design, testing, and business process reengineering. Developing an Object Oriented application requires even more thought about the design than developing in the traditional structured programming environment, because the focus on future reuse requires a longer-term view during analysis and design. However, a well-stocked library of reusable components reduces the need to perform original analysis and design. Nevertheless, many experienced Object Oriented developers know that their application is only as good as its design. Object Oriented analysis and design methodologies and the use of CASE technology are extensive in the Object Oriented world. Developers must take the good with the bad. Object oriented languages such as C++ is a complex language, and it takes a long time to learn. Developers must first learn C, and then learn the Object Oriented extensions of C++. Moreover, C++ is a low-level language that operates very close to the metal. Developers must learn how to do such things as manage memory directly, access physical disk storage, and use cryptic APIs. The potential for problems is enormous, and it takes about twice as long to develop a client/server application using C++ than it does using other 4GL-driven client/server development environments. Increased productivity with object technology methods is not just a theory. Organizations that are willing to undertake the learning curve have found tremendous benefits, both in reduced development efforts as well as fewer ongoing maintenance costs.
Inheritance Some confusion exists about what is inherited in an object hierarchy. In simple terms, data structures and behaviors are the only things that are inherited. Inheritance has nothing to do with the "navigation" of data records. Developers can implement inheritance in two modes: single and multiple. Single inheritance allows the inheritance of information from a single object/class, whereas multiple inheritance allows objects to inherit information from two objects/classes simultaneously. For example, when using Gupta Corp.'s SQLWindows (which supports multiple inheritance), developers can use data and methods found in two objects, instead of just one. This means that a developer can inherit a file dialog from one object and a set of GUI controls from another, thus creating a new object that combines a file dialog with the GUI controls. Most object oriented tools (Example: Smalltalk) don't support multiple inheritance.
Encapsulation Encapsulation has a drawback, however. We must ask ourselves whether it is a good thing that data may only be accessed through predefined behaviors. One of the relational database's primary selling points is the ability to formulate adhoc queries with SQL quickly, independent of data.
Polymorphism
Abstraction
Object Oriented Future Although most Object Oriented development tools promote object reuse, there is no standard reusable object among tools (for example, C++ objects under Smalltalk). To solve this problem, the Object Management Group (OMG) came up with the Common Object Request Broker Architecture (CORBA) As the object market expands and component development takes off, more object vendors will be interested in standard objects. IBM, for example, bases its object development on its System Object Model (SOM). Other examples of distributed objects include NeXT Computer's Portable Distributed Objects, and Sun's Distributed Objects Everywhere. Microsoft is pushing OLE and its Component Object Model as its standard object development strategy. Although not object oriented (they do not support inheritance), OLE objects work with a number of application development tools. It's not a question of whether object oriented development will remain popular, but how to use objects in your application development efforts. There are more choices of object oriented tools out there than ever before. To confuse the issue even more, these tools all implement objects in their own special way. Moreover, the industry is still very much in the learning phase, and it's going to take a few more years before it finally sees the optimal payback from object oriented development.
|
|
||
|
|
|
|
|
|