Information Technology Reference
In-Depth Information
approaches that are available, including object-oriented design, level-oriented,
data-flow-oriented, and data-structure-oriented. Below is a detailed explanation of
what each software design method is, what they entail, as well as any benefits and
drawbacks of using that particular design method.
4.3.1
Object-Oriented Design
Object-oriented design uses objects that are black boxes used to send and receive
messages. These objects contain code as well as data. This approach is noteworthy
because traditionally code is kept separated from the data that it acts upon. For
example, when programming in C language, units of code are called “functions”
and units of data are called “structures”. Functions and structures are not connected
formally in C (Software Design Consultants, 2009).
Proponents of object-oriented design argue that this type of programming is the
easiest to learn and use, especially for those who are relatively inexperienced in
computer programming because the objects are self-contained, easily identified, and
simple. However, some drawbacks to object-oriented design are that it takes more
memory and can be slow. Several object-oriented programming languages are on the
market; however, the most popular object-oriented languages are C
++
, Java, and
Smalltalk.
In object-oriented software, objects are defined by classes. Classes are a way of
grouping the objects based on the characteristics and operations of an object. Defining
classes can be complicated, as a poorly chosen class can complicate an application's
reusability and hinder maintenance. 6
The main components of object-oriented programming are encapsulation, inheri-
tance, polymorphism, and message passing. The first component, encapsulation, can
be defined as hiding implementation. That is, encapsulation is the process of hiding
all the details of the object that do not contribute to the essential characteristics of
the object, and only shows the interface. 7 Inheritance is a way to form new classes
by using classes that already have been defined. These new classes are sometime
called “derived classes.” Inheritance can be useful because one can recycle and reuse
code this way, which is high desirable. Polymorphism is the ability to assign different
meanings to something in different contexts. That is, polymorphism allows an entity
such as a variable, a function, or an object to have more than one form. 8 Finally,
message passing allows for objects to communicate with one another, and to support
the methods that they are supposed to be running.
The main benefit of using object-oriented software is that it can be reused with rel-
ative ease. Indeed, software systems are subject to almost nearly continuous change.
As a result, it must be built to be able to withstand constant revisions. Four basic
6 http://www.codeproject.com/KB/architecture/idclass.aspx.
7 http://www.fincher.org/tips/General/SoftwareEngineering/ObjectOrientedDesign.shtml.
8 http://searchcio-midmarket.techtarget.com/sDefinition/0,,sid183 gci212803,00.html#.
Search WWH ::




Custom Search