- by Gersi Mirashi
- October 4, 2023
Software development using design patterns
By, MSc. Aurela KALLJA
Abstract
Information systems have become an integral part of our lives. The demands for software that help us accomplish our daily tasks are ever increasing, considering the great technological momentum around the globe. Software engineering is the process of analyzing user requirements, designing and developing software applications. Each user request is a problem that an individual or a business has encountered in the daily work processes. The goal of software engineering is to provide an optimal and efficient solution to these problems to increase the overall productivity of employees in the respective industries and at the end of the day, to increase profits. Providing these solutions is no easy feat, as the problems are often complex and in addition to requiring careful analysis, they also need smart solutions. Fortunately, we have the ability to learn from experience and apply our knowledge in different contexts to achieve our goals. As in any field of life, problems have a recursive nature and it often happens that the same problem is encountered in different contexts. Naturally, we can think that similar problems have similar solutions. The set of solutions to general software design problems in a specific context constitutes what are called design patterns. Design patterns are structures of how some objects dialogue with each other to provide a specific solution to a problem. They are ready-made solutions to known problems, and the real challenge with them is not in their construction, but in the intuitive ability to associate a design problem with the corresponding pattern that offers the most optimal solution. This paper will deal with the development of an information system for an ATM Exchange system, which carries the functionalities of an ATM cash machine and exchange rate chart. The development of this software will be totally based on design patterns, more specifically “Observer” pattern and “Chain of responsibility” pattern. This paper aims to emphasize the advantages of using design patterns and highlight the potential of them to solve general problems in a specific context. It also focuses on software engineers, information systems developers and software engineering students. This paper will serve as a manual of best software development practices, emphasize the principles of flexibility and reusability of information systems development components.
Key words: ATM, design patterns, exchange rate, software engineering, system, OOP.
How to cite: Kallja, A. (2021). Software development using design patterns. Ingenious, 1(2), 7–20.
https://doi.org/10.58944/uqak8608
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.