We are here with you hands in hands to facilitate your learning & don't appreciate the idea of copying or replicating solutions. Read More>>


Looking For Something at vustudents.ning.com? Click Here to Search

Graded Discussion Board (GDB) of CS508 will open on 17 February 2014. GDB will remain open for one day (24 Hours only), you will be required to post your comments on topic

Object Oriented Programming made software deployment easy in terms of cost and effort but Object Oriented Programming has drawbacks, do you agree or not justify your answer with strong arguments”

Note1:- Keep you comment brief and to the point

Note2:- That GDB will not be accepted via email in any case.

Share This With Friends......

+ Click Here To Join also Our facebook study Group.

This Content Originally Published by a member of VU Students.

+ Prohibited Content On Site + Report a violation + Report an Issue


..How to Join Subject Study Groups & Get Helping Material?..


Views: 311

See Your Saved Posts Timeline

Replies to This Discussion

Benefits of Object-Oriented Approach 

Object-oriented databases make the promise of reduced maintenance, code reusability, real world modeling, and improved reliability and flexibility.  However, these are just promises and in the real world some users find that the object-oriented benefits are not as compelling as they originally believed.  For example, what is  code reusability?  Some will say that they can reuse much of the object-oriented code that is created for a system, but many say there is no more code reusability in object-oriented systems than in traditional systems.  Code reusability is a subjective thing, and depends heavily on how the system is defined.  The object-oriented approach does give the ability to reduce some of the major expenses associated with systems, such as maintenance and development of programming code.  Here are some of the benefits of the object-oriented approach:    

Reduced Maintenance:  The primary goal of object-oriented development is the assurance that the system will enjoy a longer life while having far smaller maintenance costs.  Because most of the processes within the system are encapsulated, the behaviors may be reused and incorporated into new behaviors.

Real-World Modeling:  Object-oriented system tend to model the real world in a more complete fashion than do traditional methods.  Objects are organized into classes of objects, and objects are associated with behaviors.  The model is based on objects, rather than on data and processing.

Improved Reliability and Flexibility:  Object-oriented system promise to be far more reliable than traditional systems, primarily because new behaviors can be "built" from existing objects. Because objects can be dynamically called and accessed, new objects may be created at any time.  The new objects may inherit data attributes from one, or many other objects.  Behaviors may be inherited from super-classes, and novel behaviors may be added without effecting existing systems functions.

High Code Reusability:  When a new object is created, it will automatically inherit the data attributes and characteristics of the class from which it was spawned.  The new object will also inherit the data and behaviors from all superclasses in which it participates.  When a user creates a new type of a widget, the new object behaves "wigitty", while having new behaviors which are defined to the system.

The downside of the Object Technology

There  are several major misconceptions which must be addressed when considering the use of an object-oriented method: 

Object-oriented Development is not a panacea - Object-oriented Development is best suited for dynamic, interactive environments, as evidenced by its widespread acceptance in CAD/CAM and engineering design systems.  Wide-scale object-oriented corporate systems are still unproved, and many bread-and-butter information systems applications (i.e. payroll, accounting), may not benefit from the object-oriented approach.

Object-oriented Development is not a technology - Although many advocates are religious in their fervor for object-oriented systems, remember that all the "HOOPLA" is directed at the object-oriented approach to problem solving, and not to any specific technology. 

Object-oriented Development is not yet completely accepted by major vendors - Object-oriented Development has gained some market respectability, and vendors have gone from catering to a "lunatic fringe" to a respected market.  Still, there are major reservations as to whether  Object-oriented development will become a major force, or fade into history, as in the 1980's when Decision Support Systems made great promises, only to fade into obscurity. 

Cannot find qualified programmers and DBA’s

When one investigates the general acceptance of object-oriented systems in the commercial marketplace, you generally find that most managers would like to see an object technology approach, but they do not have the time to train their staffs in object-oriented methods.  Other will say that the object-oriented method is only for graphical workstation systems, and that there is no pressing need for object-oriented system within mainstream business systems. 

Even though commercial object-oriented programming languages have been on the market for several years, systems written with object-oriented languages comprise less than 1% of systems today.

Once a major vendor begins conforming to a standard, it can become impossible to retrofit their standard to conform to another standard.    When the American Standards Committee came out with a standard character set for computers (ASCII), IBM disregarded the standard and proceeded with their own character set, called the Extended Binary Character Data Interchange Code (EBCDIC).  Even thirty years later, there has still been no resolution between ASCII and EBCDIC, and data transfers between ASCII and EBCDIC machines continue to present problems.  For example, the EBCDIC character set has no characters for "[" and "]", and ASCII has no character for the "cent" sign.   

Summary

When one strips away all of the confusing acronyms and jargon, the object technology approach is nothing more than a method, an approach to systems design which can be implemented without any changes to existing software technology.

Here is an actual example from the popular IDMS database:

Object Oriented Programming has several disadvantages which made it unpopular in the early years.

Size: Object Oriented programs are much larger than other programs. In the early days of computing, space on hard drives, floppy drives and in memory was at a premium. Today we do not have these restrictions.
Effort: Object Oriented programs require a lot of work to create. Specifically, a great deal of planning goes into an object oriented program well before a single piece of code is ever written. Initially, this early effort was felt by many to be a waste of time. In addition, because the programs were larger (see above) coders spent more time actually writing the program.
Speed: Object Oriented programs are slower than other programs, partially because of their size. Other aspects of Object Oriented Programs also demand more system resources, thus slowing the program down.
In recent years, however, improvements in computer performance have made restrictions about size and speed inconsequential. The question of human effort still exists, however; many novice programmers do not like Object Oriented Programming because of the great deal of work required to produce minimal results

Object Oriented Programming has several disadvantages which made it unpopular in the early years like size,effort and speed
In recent years, however, improvements in computer performance have made restrictions about size and speed inconsequential. The question of human effort still exists, however; many novice programmers do not like Object Oriented Programming because of the great deal of work required to produce minimal results.

Please Discuss here about this GDB.Thanks

Our main purpose here discussion not just Solution

We are here with you hands in hands to facilitate your learning and do not appreciate the idea of copying or replicating solutions.

Yes , I agree “Object Oriented Programming made software deployment easy in terms of cost and effort but Object Oriented Programming has drawbacks, because The disadvantages of object oriented  programming is that is larger than other types of programming. It also requires a lot of work even before the first piece of code is written, so labor is costly. They require an abundance of system resources to run the program and due to their size they are slower than other programs.

 

Object Oriented Programming has several disadvantages which made it unpopular in the early years like size,effort and speed.
In recent years, however, improvements in computer performance have made restrictions about size and speed inconsequential. The question of human effort still exists, however; many novice programmers do not like Object Oriented Programming because of the great deal of work required to produce minimal results.

Agree with..that  “Object Oriented Programming made software deployment easy in terms of cost and effort but Object Oriented Programming has drawbacks, 

the disadvantages of object-oriented programming include:
1. Steep learning curve: The thought process involved in object-oriented programming
may not be natural for some people, and it can take time to get used to it. It is
complex to create programs based on interaction of objects. Some of the key
programming techniques, such as inheritance and polymorphism, can be
challenging to comprehend initially.
2. Larger program size: Object-oriented programs typically involve more lines of code
than procedural programs.

Object-Oriented Programming has the following advantages over conventional approaches:

  • OOP provides a clear modular structure for programs which makes it good for defining abstract datatypes where implementation details are hidden and the unit has a clearly defined interface.
  • OOP makes it easy to maintain and modify existing code as new objects can be created with small differences to existing ones.
  • OOP provides a good framework for code libraries where supplied software components can be easily adapted and modified by the programmer. This is particularly useful for developing graphical user interfaces.

The main difference is that an OO-language includes features needed for OO-programming -- ie. encapsulation, inheritance and polymorphism. 

In the beginning, programs more or less ran from the beginning to end... there may been the decision (if) and the occasional loop (for, while); but it was pretty straight forward. 


This works well until you have several thousand lines, but then you again start to loose track -- especially of variables different functions uses. 

but OOP has been drawn back due its disadvantages :

Personally I find oops code can get very hard to read, even well written code. The problem is inheritance and polymorphism. The problem with inheritance is that if you want to figure out what 
a given method does, you have to search up the class hierarchy until you find its definition. In a way, inheritance is worse than goto--at least with goto the destination is somewhere in your function but with inheritance it could be in any number of files. The problem with polymorphism means that simply finding a function with the right name is not sufficient, you have to also look at the parameters. Trying to read code without a good class browser is almost impossible. It IS impossible once you get into virtual functions where the decision of which function gets called is only determined at runtime. 

Object Oriented Programming has several disadvantages which made it unpopular in the early years.

Size: Object Oriented programs are much larger than other programs. In the early days of computing, space on hard drives, floppy drives and in memory was at a premium. Today we do not have these restrictions.
Effort: Object Oriented programs require a lot of work to create. Specifically, a great deal of planning goes into an object oriented program well before a single piece of code is ever written. Initially, this early effort was felt by many to be a waste of time. In addition, because the programs were larger (see above) coders spent more time actually writing the program.
Speed: Object Oriented programs are slower than other programs, partially because of their size. Other aspects of Object Oriented Programs also demand more system resources, thus slowing the program down.
In recent years, however, improvements in computer performance have made restrictions about size and speed inconsequential. The question of human effort still exists, however; many novice programmers do not like Object Oriented Programming because of the great deal of work required to produce minimal results.

There are drawbacks to OOP as well. It is not the best thing to use in all circumstances. Don't fall into the trap of using for ideological reasons when it is not the most suitable method for a particular task (and similarly don't dogmatically stick to a single programming language, pick the more suitable one for each job).

For a start, it should be obvious that OOP, or any such heavy programming method, is probably not ideal for doing small quickly-written one-off programs where the time taken to define a class structure is more than the time you will save by having it neatly modular. Of course, one can use an OOP language for short programs, it is just that structuring your own programs in an OOP fashion in addition to using the language's in-built own objects would be inefficient. I don't know what the cross-over point is but I guess it is several hundred lines of program for myself, although I would probably do modular structuring into functions at well below a hundred lines.

Neither is it suitable for very low power computers such as the microcontrollers embedded in consumer products which often have only less than a kilobyte of memory to fit the program into (compared to gigabytes on a office PC) and only a few bytes (compared to megabytes) to store variables in.

There are also some jobs which are naturally "do this ... then this ... then this ... then this ..." tasks in which case programming it procedurally could well be neater and easier than doing it object oriented. I've found this for simple one-task programs that control mechanical devices or batch process files. They typically read in the parameters, read in data from files, apply a series a manipulations to the data & parameters and output to electronic hardware or to a file in that order. Sometimes they don't even have conditionals or loops. Object orientation would be an ill-fitting arrangement for these programs. (An interesting aside: often such small programs are called in turn by other small programs and a collection of such programs naturally builds up into an effectively object oriented system, where the little programs act as classes, without any planned intention for them to be so.)

The most serious drawback is one common to all neatly structured modular programming: the division into modules really needs to be decided in advance of programming. In an ideal programming situation this would be the case but, in reality, customers who don't understand programming often change the requirements drastically after programming has been started (or even finished!). Often spec's are changed in a way that looks small from the outside but which mean that objects which were built to act totally independently of each other are changed so that they need to control eachother directly.

RSS

© 2019   Created by + M.Tariq Malik.   Powered by

Promote Us  |  Report an Issue  |  Privacy Policy  |  Terms of Service