  This work aims at discussing the complexity aspect of software while
demonstrating its relationship with security. Complexity is an essential part
of software; however, numerous studies indicate that they increase the
vulnerability of the software systems and introduce bugs in the program. Many
developers face difficulty when trying to understand the complex components of
software. Complexity in software increases when objects in the software are
used to design a more complex object while creating a hierarchical complexity
in the system. However, it is necessary for the developers to strive for
minimum complexity, as increased complexity introduces security risks in the
software, which can cause severe monetary and reputational damage to a
government or a private organization. It even causes bodily harm to human
beings with various examples found in previous years where security breaches
led to severe consequences. Hence it is vital to maintain low complexity and
simple design of structure. Various developers tend to introduce deliberate
complexities in the system so that they do not have to write the same program
twice; however, it is getting problematic for the software organizations as the
demands of security are continually increasing.
