Future Technologies Conference (FTC) 2017 29-30 November 2017| Vancouver, Canada 691 | Page The Effect of Applying Software Design Patterns on Real Time Software Efficiency Muhammad Ehsan Rana Faculty of Computer Science and Information Technology Universiti Putra Malaysia, 43400 Serdang, Malaysia ranaehsan@gmail.com Wan Nurhayati Wan Ab. Rahman Faculty of Computer Science and Information Technology Universiti Putra Malaysia, 43400 Serdang, Malaysia wnurhayati@upm.edu.my Abstract—Real time applications are one of the fastest growing applications in the market due to their popularity, business value and the fact that web is their native environment. As a result, enhancing the performance of these applications has always been a concern for the IT industry. In this research, we took a closer look on the effect of design patterns on the performance of these applications using simulations as a research method. Two of the design patterns used by the researchers, namely, the Observer and the State design patterns, proved to be more effective in terms of software efficiency. Keywords—Design patterns; real time software; real time applications; software performance; software efficiency I. INTRODUCTION Web-dependent applications are among the most popular software applications in today’s IT industry. The available web applications in the market outnumber the stand-alone applications with a huge margin. Among various different types of web-applications in the market, a category that stands out in terms of popularity and usage is social media. These internet based applications are growing faster than most of the other applications, mainly due to their high number of users and the strong linkage between the users of these applications [1]. Real time programming is the core of these applications (involving chatting, live commenting, gaming, photo and video sharing, etc.) because of their high dependence on interactivity [2]. The rise of the usage of real time programming took the attention of many researchers to the best practices of developing these types of applications. Hardware optimization, cloud technologies and practices such as multi-processing were some of the main areas of research for many companies. But there are many limitations in applying these types of practices, especially when it comes to hardware optimization, where cost is the biggest issue. The next solution for real-time programming that might affect the way that they are being used is by considering the programming practices, where it requires more skilled programmers rather than optimized hardware, this will benefit the companies since it will save them from the limitations mentioned above. Using the right programming practices can affect the performance of the real-time applications, both by boosting the speed on the software level, and by using the maximum capabilities of the underlying hardware. There are various design pattern based solutions that can be used to improve the performance of such applications, but possibly one of the most well-known ones are the software design patterns known as GoF (Gang of Four) patterns. The undergoing research is an attempt to test the effect of three of these GoF design patterns (viz. State, Strategy and Observer) on the performance of real-time applications in terms of software efficiency. This paper is organized as follows: Section 2 analyzed the literature reviews, Section 3 described the research method, Section 4 discussed the findings and Section 5 concluded the paper. II. LITERATURE REVIEW A. Real Time Programming “Real time is a level of computer awareness that a user senses as adequately immediate or that enables the computer to keep up with some external process (for example, to present visualizations of the weather as it constantly changes).” [3] Real-time applications are nearly used in most of the major software applications, in particular embedded systems, where a specific behavior is required on a timely manner. They can also be seen in GPS applications, chat rooms, mobile systems and etc. Web-based applications are similar to other real-time applications, with one major difference that the response time is critical here. As a result, there have been lots of attempts to improve the performance and responsiveness of these applications using different methods. Hardware optimization is a primary response in these situations, but as they are not entirely cost-effective, software optimization is the next step. Software optimization can be done in different levels, starting with refactoring the code using programming best practices, to minimize the heavy processes by using certain policies. Software design patterns are among these best practices that are developed to enhance both the readability and the performance of the applications. Very few well documented simulation or researches on the effect of design patterns on software performance are available, but they should logically boost the performance due to their short syntax and their effective way of handling requests. Real time applications can be used in any industry or type of programming, as long as the time factor is given due importance and no delay is expected in responses [4]. However Fundamental Research Grant (FRGS) by Ministry of Higher Education Malaysia under Project Title: “Architectural Patterns and Performance Anti- Patterns for a Systematic Migration Framework for Moving Legacy Applications to Cloud”.