Proper, conspicuous and professional design is an art
and not a science. The essence of developing an effective program lies not only
in the need to meet the user interface requirements, but also on the need to
enhance efficiency and achieve effectiveness. Therefore, prior to embarking on
programming design, it is paramount to grasp the design principles (Brooks,
n.d.). Functional and non-functional attributes of a program are highly
influenced by its design. The fundamental reason of inculcating design principles
is to reduce the cost of development.
In the development life cycle of a software, the
design is a phase that is of crucial importance as it stipulates the direction
to be followed by the software development. It is the design phase of
programming that brings out the craftsmanship in the field. Artists aim at
keeping things simple and straight forward. One of the basic rules of design is
keeping things simple and stupid (KISS). Avoiding complexity and sticking to
simplicity is the key to efficient design. In addition to this, the abstraction
principle further supports the art of programming as an art since significant
pieces of program functionality are only implemented once. Artistically, an
element should not consist of unwanted elements that are not required. In a
similar manner, programming design principles propagate that one should avoid
adding unwanted functionality in a system. In a nutshell, the application of
design principles enhances the elimination of redundancy as they offer advice
on the need to eliminate unwanted repetition (Brooks, n.d.).
Lastly, the open-closed principle rules that the
entities in the system such as classes, functions and modules be open for
extension but closed for modification. The policy provides an adequate similarity
with art since a masterpiece work of art has only one author and cannot be
replicated (Brooks, n.d.). If programming were implemented as a science and not
an art, then reuse of code would not be promoted. However, the proper design
promotes code reuse which saves time and cost significantly and enables the
construction of robust systems. For these reasons, the design serves as the key
to making shorter programs.
References
Brooks,
F. The mythical man-month.
EmoticonEmoticon