Page 191 - DCAP104_EXPOSURE_TO_COMPUTER_DISCPLINES
P. 191
Exposure to Computer Disciplines
Notes (f) Maintainability: The ease with which a program can be modified by its present or future
developers in order to make improvements or customizations, fix bugs and security holes,
or adapt it to new environments. Good practices during initial development make the
difference in this regard. This quality may not be directly apparent to the end user but it
can significantly affect the fate of a program over the long term.
9.1.2 Readability of Source Code
In computer programming, readability refers to the ease with which a human reader can
comprehend the purpose, control flow, and operation of source code. It affects the aspects of
quality above, including portability, usability and most importantly maintainability.
Readability is important because programmers spend the majority of their time reading, trying to
understand and modifying existing source code, rather than writing new source code. Unreadable
code often leads to bugs, inefficiencies, and duplicated code. A study found that a few simple
readability transformations made code shorter and drastically reduced the time to understand it.
Following a consistent programming style often helps readability. However, readability is more
than just programming style. Many factors, having little or nothing to do with the ability of the
computer to efficiently compile and execute the code, contribute to readability. Some of these
factors include:
(i) Different indentation styles (whitespace)
(ii) Comments
(iii) Decomposition
(iv) Naming conventions for objects (such as variables, classes, procedures, etc.)
9.1.3 Algorithmic Complexity
The academic field and the engineering practice of computer programming are both largely
concerned with discovering and implementing the most efficient algorithms for a given class of
problem. For this purpose, algorithms are classified into orders using so-called Big O notation,
O(n), which expresses resource use, such as execution time or memory consumption, in terms of
the size of an input. Expert programmers are familiar with a variety of well-established algorithms
and their respective complexities and use this knowledge to choose algorithms that are best suited
to the circumstances.
9.1.4 Methodologies
The first step in most formal software development projects is requirements analysis, followed by
testing to determine value modeling, implementation, and failure elimination (debugging). There
exist a lot of differing approaches for each of those tasks. One approach popular for requirements
analysis is Use Case analysis. Nowadays many programmers use forms of Agile software
development where the various stages of formal software development are more integrated
together into short cycles that take a few weeks rather than years. There are many approaches to
the Software development process.
Popular modeling techniques include Object-Oriented Analysis and Design (OOAD) and Model-
Driven Architecture (MDA). The Unified Modeling Language (UML) is a notation used for both
the OOAD and MDA.
A similar technique used for database design is Entity-Relationship Modeling (ER Modeling).
Implementation techniques include imperative languages (object-oriented or procedural),
functional languages, and logic languages.
184 LOVELY PROFESSIONAL UNIVERSITY