Literature Review
Chapter One
Introduction
What is a Design Pattern?
A design pattern solves a problem within a given context. The solution that is offered by implementing a pattern results in a system design structure, which balances the concerns of the design problem in a manner most appropriate for the given context. In “Understanding and Using Patterns in Software Development”, Dirk Riehle and Heinz Zullighaven offer a rather nice definition of what a design pattern is:
“A pattern is the abstraction from a concrete form which keeps recurring in specific non-arbitrary contexts.”
The ability to write good patterns is very difficult. A pattern should not only convey the facts about a system, but it should also tell a story about
…show more content…
The patterns described in the GoF book are illustrated in C++; a programming language that has been declining in use over the last number of years, which limits the learning of patterns in today’s development environment where the dominant programming language taught and used, as far as patterns are concerned is Java, although patterns can be implemented in any object orientated programming language.
The patterns exhibited are described in very concise and restricted examples that lack a comprehensive context in order for the reader to gain a full understanding of the use of the pattern in question. The patterns throughout the book are also presented in isolation to each other which hinders the illustration of pattern interaction and thus the full benefit to those wishing to learn how to implement design patterns.
Allen Holub produced a book “Holub on Patterns – Learning Design Patterns by Looking at Code”, which detailed the use of design patterns while developing a game called “Game of Life. The Game of Life is a cellular automation program, which begins with cells that are classed as either “alive” or “dead”. The idea is then that each cell follows a set of rules to determine which whether it can “live” or whether it must “die”.
Holubs’ book, published in 2004 addressed some of the shortcomings of the GoF publication, such as the patterns were now demonstrated in Java, which has become the favoured language of the software development industry,
Course Description This course provides students with a basic understanding of programming practices. Concepts covered include flowcharting, pseudocode methodologies, and an understanding of programming practices. Students will learn how these concepts, when properly applied, improve program design. Policies Faculty and students/learners will be held responsible for understanding and adhering to all policies contained within the following two documents: • • University policies: You
How is pattern seeking influencing our views and perspective of events? to what extend is relying on pattern too much?
This new information then becomes the basis for further information and can thus be applied to the natural world as observed with the discovery of patterns coinciding with numbers of the golden ratio and the Fibonacci sequence. This comes to exemplify that patterns discovered in mathematics are paramount to the acquisition of knowledge, but the discovery of patterns would not be possible without intuition, which then stems another question: “To what extent are patterns dependent on intuition?”
The two programming paradigms we get is Object-Orientated and Procedural. To understand what they are we need to explain what each are and how they operate and what are the strengths and weaknesses of each. Now Procedural Programming languages are referred to as straight programming taking on a read from the top to the end method, whereas Object-Oriented programming use objects and classes. Procedural takes on applications by solving problems from using a top to down way reading the problem from the start and going through everything until the program is finished at the end (Eliason, 2015).
discipline that came to light back in the 1960s when many projects regarding software systems’ design
Component Adaptation: we noted that software architecture represents design patterns that are composed of components (units of functionality), connections, and coordination. In essence the architecture defines the design rules for all components, identifying modes of connection and coordination. In some cases, existing reusable components may be mismatched to the architecture’s design rules. These components must be adapted to meet the needs of the architecture or discarded and replaced by other, more suitable components.
The logical view, which is the object model of the design (when an object-oriented design technique is used),
The given article is about software refactoring. Refactoring is basically the object-oriented variant of restructuring: “the process of changing a [object-oriented] software system in such a way that it does not alter the external behavior of the code, yet improves its internal structure”. The key idea here is to redistribute classes, variables, and methods across the class hierarchy in order to facilitate future adaptations and extensions.
The modern programming is based on the concept that “program little and use more”. The object oriented programming languages are playing a vital role in the industry of development. The OOP introduced following concepts:
Over the past few decades, many software development methodologies have appeared and these methodologies address most of the phases of software life cycle from requirements to maintenance. In the last twenty years, there has been increasing popularity for object-oriented programming. Hence, the interest to research on object-oriented methodologies has increased. Also, there has been exponential growth due to the increase in number of software systems being described as object-oriented. Many programming languages, office information systems, system simulation and artificial intelligence have adopted object-oriented technology. It is an assumption that learning specific development method or a set of tools.
I feel great pleasure in submitting the project work entitled JAVA AND ITS APPLICATION to the department of Computer Science and Engineering, Amity University, Noida.
The pattern is one more thing to be learnt for busy developers: there’s surely an overhead.
Object-Oriented Programming enables programmers to program by modeling the real world instead of defining the logic of how the world works. It focuses more on what makes up an object rather than what the object does. Programmers can focus on creating small components or objects, and group them together based on their relationships to build a larger object, which can be built upon again in future. The process of developing the paradigm consists the following steps: Encapsulation, Inheritance, Data Abstraction, and Polymorphism.
Object-oriented approach was developed in late 1950’s in MIT to overcome the drawbacks of procedural- oriented approach. Ii is commonly known as OOPS. Now, it has become most preferred programming approach by software engineers to solve real world complex problems. The traditional procedural languages solve problems in terms of the structure of the computer i.e. memory bits and bytes, array, decision, loop rather than thinking in terms of the problem which is to be solved.
First and foremost I offer my sincerest gratitude to my supervisor Mr. Dominic Sales who has supported me thoughout my thesis with his patience and knowledge. And for allowing the use of Computer Laboratory.