Preview

THE EVOLUTION OF A COPY PROGRAM

Best Essays
Open Document
Open Document
2205 Words
Grammar
Grammar
Plagiarism
Plagiarism
Writing
Writing
Score
Score
THE EVOLUTION OF A COPY PROGRAM
THE EVOLUTION OF A COPY PROGRAM
BY PANKAJ KAMTHAN

1. INTRODUCTION
This document tells a ‘story’ of the evolution of a program caused by the unforeseen changes in the requirements [Martin, 2002; Martin, Martin, 2006].
Let I be the set of input devices, O be the set of output devices, and let P be the program.
Then the story is about the impact on the design of P due to variations in | I | and | O |, where | · | denotes the cardinality.
The moral of the story is that, unless there is adequate preparation for change in advance, the quality of the design of a program can rapidly deteriorate to the point that the loss can become irreversible.
2. NOTATIONS AND CONVENTIONS
There are certain statements in the rest of the document that are associated with specific graphical notations.
The presence of the ‘dangerous bend’ symbol1 illustrated below should be interpreted as a warning.
The warnings reflect a violation of the underlying philosophy of object-oriented design
(OOD) aiming for ‘high-quality’, in general, and, by reference, a violation of one or more object-oriented design principles (OODP), in particular.

1

The symbol is an electronic rendering of that shown in [Knuth, 1984].

1

The presence of the smiley icon [Sanderson, 1997] illustrated below should be interpreted as a (negative) impact on (solution) quality.

3. “SOLID” OBJECT-ORIENTED DESIGN AND PROGRAMMING
The more science becomes divided into specialized disciplines, the more important it becomes to find unifying principles.

― Hermann Haken
SOLID is a mnemonic acronym for five basic principles of object-oriented design and programming [Martin, Martin, 2006], summarized in Table 1.
Acronym
SRP
OCP
LSP

ISP

DIP

OOD Principle
The Single
Responsibility
Principle
The Open-Closed
Principle
The Liskov
Substitution
Principle
The Interface
Segregation
Principle
The Dependency
Inversion Principle

Statement
A class should have only one reason to



References: [Beck, 2000] Extreme Programming Explained: Embrace Change. By K. Beck. AddisonWesley. 2000. [Boswell, Foucher, 2012] The Art of Readable Code. By D. Boswell, T. Foucher. O’Reilly Media. 2012. [Gamma, Helm, Johnson, Vlissides, 1995] Design Patterns: Elements of Reusable Object-Oriented Software [Ghezzi, Jazayeri, Mandrioli, 2003] Fundamentals of Software Engineering. By C. Ghezzi, M. Jazayeri, D. Mandrioli. Second Edition. Prentice-Hall. 2003. [Knuth, 1984] The TEXbook. By D. E. Knuth. Addison-Wesley. 1984. [Martin, 2002] Agile Software Development: Principles, Patterns, and Practices. By R. C. Martin. Prentice-Hall. 2002. [Martin, Martin, 2006] Agile Principles, Patterns, and Practices in C#. By R. C. Martin, M [Sanderson, 1997] Smileys. By D. W. Sanderson. O’Reilly Media. 1997. [Strachey, 2000] Fundamental Concepts in Programming Languages. By C. Strachey. Higher-Order and Symbolic Computation. Volume 13. 2000. Pages 11-49.

You May Also Find These Documents Helpful

  • Satisfactory Essays

    IT210 R5 Appendix D 2

    • 197 Words
    • 2 Pages

    I. Running a program using various sets of inputs to determine if the program is running properly…

    • 197 Words
    • 2 Pages
    Satisfactory Essays
  • Satisfactory Essays

    The program was created by machines that took over the planet. While in Plato’s Allegory of the Cave, a prisoner is able to comprehend the reality of the cave and the real one outside the cave.…

    • 306 Words
    • 2 Pages
    Satisfactory Essays
  • Powerful Essays

    Chapter 1 Chapter 2 Chapter 3 Chapter 4 Chapter 5 Chapter 6 Chapter 7 Chapter 8 Chapter 9 Chapter 10 Chapter 11 Chapter 12 Chapter 13 Chapter 14 Chapter 15 Chapter 16 Chapter 17 Chapter 18 Chapter 19 Chapter 20 Chapter 21 Chapter 22 Chapter 23 Chapter 24 Chapter 25 Chapter 26 Chapter 27 An Introduction to Hardware, Software, and the Internet An Introduction to Software Development Objects and Classes Algorithms Java Syntax and Style Data Types, Variables, and Arithmetic Boolean Expressions and if-else Statements Iterative Statements: while, for, do–while Implementing Classes and Using Objects Strings Class Hierarchies and Interfaces Arrays…

    • 3908 Words
    • 16 Pages
    Powerful Essays
  • Good Essays

    Copy General Case

    • 454 Words
    • 2 Pages

    1. What are some of the general challenges of starting new business in another country? What specific challenges did Copy General face in Eastern and Central Europe?…

    • 454 Words
    • 2 Pages
    Good Essays
  • Satisfactory Essays

    Healthful Living

    • 296 Words
    • 2 Pages

    Statements and/or groups of statements within the pamphlet are followed by at least two relevant citations…

    • 296 Words
    • 2 Pages
    Satisfactory Essays
  • Better Essays

    Change is a touchy subject for some people. Some people are afraid of the risks associated with change. The fear of failing can also be a reason people resist change. The story “Dark They Were, And Golden-Eyed” is a significant story because it teaches people that change is not always bad. The theme of the story is overtime everything changes.…

    • 1456 Words
    • 6 Pages
    Better Essays
  • Satisfactory Essays

    In this particular quote, Hume is explaining how the materials individuals gather through the senses are derived from inward or outward ideas. The idea that these sentiments are derivative of impressions leads us to The Copy Principle. The Copy Principle states that all of our ideas are copies of other ideas or impressions. Within this principle, there are two distinct kinds of ideas. Simple ideas are copies of impressions and complex ideas are a compilation of impressions or simple ideas. Ideas are, put simply, complex impressions.…

    • 86 Words
    • 1 Page
    Satisfactory Essays
  • Good Essays

    One of the techniques one has implemented is the input-processing-output technique; this technique has facilitated students to solve small programming problems assignments. This technique; identifies the steps involved in each process to be performed and the inputs to and outputs from each step. However, this technique lacks the proper procedures to identify the root or roots of the problem. Therefore, this technique leaves the student without the understanding of what the problem is and what is really causing it [3].…

    • 603 Words
    • 3 Pages
    Good Essays
  • Better Essays

    Von Neuuman

    • 2383 Words
    • 10 Pages

    Computer programs are a list of and data, and are represented as binary strings. We can produce a list of high level requirements that a Central Processing Unit (CPU) could execute. This then leads us to a list of functional units that implement the high-level functionality.…

    • 2383 Words
    • 10 Pages
    Better Essays
  • Better Essays

    The 7 new quality tools can be used to implement a structured and disciplined approach to…

    • 2115 Words
    • 9 Pages
    Better Essays
  • Powerful Essays

    Mr Novia

    • 1233 Words
    • 5 Pages

    Errors introduced in this stage are costly to fix in later stages of the project…

    • 1233 Words
    • 5 Pages
    Powerful Essays
  • Satisfactory Essays

    Copy Strategy Naturness

    • 357 Words
    • 2 Pages

    N°1 : “A good night is an essential moment for baby’s growth and brain development”…

    • 357 Words
    • 2 Pages
    Satisfactory Essays
  • Satisfactory Essays

    copy

    • 541 Words
    • 3 Pages

    Arthur Andersen was one of the largest accounting firms in the United States and became the company’s auditor throughout this period. During 1992 to 1996, Arthur Andersen and its partners help WMI’s senior officers to manipulate company’s financial report in order to meet the target. They employed a multitude of improper accounting practices to achieve this objective.…

    • 541 Words
    • 3 Pages
    Satisfactory Essays
  • Satisfactory Essays

    But, regardless to the dramatic feeling, I found that there are some beneficial lessons to pull out from this story, that could be resumed in the following points:…

    • 548 Words
    • 2 Pages
    Satisfactory Essays
  • Powerful Essays

    Co Study Materials

    • 2583 Words
    • 11 Pages

    input: writes data to memory output: reads data from memory datapath: performs the arithmetic operations control: tells the datapath, memory and I/O devices what to do according to the wishes of the instructions of the program…

    • 2583 Words
    • 11 Pages
    Powerful Essays