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
   186   187   188   189   190   191   192   193   194   195   196