CodeBetter.Com
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @CodeBetter

Raymond Lewallen

Framework Design, Agile Coach, President Oklahoma City Developers Group, Microsoft MVP C#, TDD, Continuous Integration, Patterns and Practices, Domain Driven Design, Speaker, VB.Net, C# and Sql Server

Advantages of an Object-Oriented Approach (for new programmers)

If you are new to OOP or to programming in general, I'll give you a very simplified and quick assessment of approaching a new software design with object-oriented eyes.

Like structured programming in legacy systems, object-oriented programming (OOP) is used to manage the complexity of software systems. However, OOP technology provides several advantages. OOP applications are easier to maintain, have more reusable components, and are more scalable, to name a few.

Maintainable
OOP methods make code more maintainable. Identifying the source of errors becomes easier because objects are self-contained (encapsulation). The principles of good OOP design contribute to an application's maintainability.

Reusable
Because objects contain both data and functions that act on data, objects can be thought of as self-contained "boxes" (encapsulation). This feature makes it easy to reuse code in new systems. Messages provide a predefined interface to an object's data and functionality. If you know this interface, you can make use on an object in any context you want. OOP languages, such as C# and VB.Net, make it easy to expand on the functionality of these "boxes" (polymorphism and inheritance), even if you don't know much about their implementation (again, encapsulation).

Scalable OO applications are more scalable then their structured programming roots. As an object's interface provides a roadmap for reusing the object in new software, it also provides you with all the information you need to replace the object without affecting other code. This makes it easy to replace old and aging code with faster algorithms and newer technology.

Some Disadvantages
The challenges of OOP exists mainly in the conversion of legacy systems that are built in structured programming languages. The technical challenge is not as big as the actual design challenge. The goal when converting is to minimize the effects of the stuctural systems on the OO nature of the new design, and this can sometimes be difficult.

Currently listening to: Superspy - Save Ferris


Comments

Darrell said:

I'd say another disadvantage is the *initial* complexity (although in the long run there is less). And it can definitely be intimidating to those new to OO.
# February 9, 2005 9:45 AM

TrackBack said:

# February 14, 2005 5:58 PM

notes said:

Dear sirs/madams,

Wish you good health and happiness for all of you.

I am Tamrat,31, IT instructor at a local college here in Addis Ababa Ethiopia.

I kindly request you to send me notes on advantages and disadvantages of Object oriented analysis and design.

Thanks.
# July 18, 2005 6:39 AM

Leave a Comment

(required)  
(optional)
(required)  

Enter the numbers above:
Add

About Raymond Lewallen

Working primarily in the public sector during his career, Raymond has designed and built several high profile enterprise level applications for all levels of the government. Raymond now works as a solutions architect for EMC. Raymond is an agile coach, Microsoft MVP C# and also president of the Oklahoma City Developers Group and Oklahoma Agile Developers Group. Raymond spends a lot of his time learning and teaching such things as Test Driven Development, Domain Driven Design, Design Patterns and Extreme Programming practices and principles, to name a few. Raymond is also an advocate of Alt.Net. Raymond is primarily a framework guy, so don't ask him anything about UI :) Check out Devlicio.us!