{'fraction_non_alphanumeric': 0.014208721215090642, 'fraction_numerical': 0.0009799118079372856, 'mean_word_length': 5.000489955903968, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
IDENTIFICATION AND IMPLEMENTATION OF DESIGN PATTERNS IN MOBILE BANKING

The aim of this paper is to develop a mobile banking system using design patters that provides customers with the facility to check their accounts and to do online transactions using mobile phones. There are various number of software design patterns that have been identified and used by software developers in various domains such as navigation systems, ecommerce, data mining, construction of operating systems, e-business, games and website designing and development purpose. In order to achieve our aim we are going to follow three steps. First step is the identification process, in this process we are going to study the various design patterns and the existing architecture of several mobile banking systems and will identify the design patterns based on the cross cutting concerns that occur in flow of the banking process. The second step is to implement the identified design patterns using the patterns skeleton code. We need to improve the reusability using object oriented programming. Finally we are going to implement the identified patterns and evaluate the patterns using already available methods such as SAAM, ATAM, ALAM (Architecture-Level Maintainability Analysis).


INTRODUCTION
The process of designing reusable object oriented software is very difficult as it involves steps like finding the related objects, grouping them into several classes at right granularity, defining the class interfaces and the hierarchies and establishing key relationship among them.The design should be specific to the problem to be solved and must address the future problem and requirements. Making a reusable and flexible design is difficult for the experienced object oriented designers. The designers will not try to solve every problem from its first principles rather than using solution from the past. Whenever a designer finds a good solution, he will use it again and again. Hence the designer will find the recurring patterns of classes and communicating object in several object oriented systems. These patterns are used to solve specific design problems on creating flexible, stylish and reusable object oriented designs. When a designer is familiar with such patterns, then the designer can apply them immediately to the design problems without having to rediscover them. Once the designer knows the patterns, then automatically a lot of design decisions occur. A design records the experiences in designing object oriented software has design patterns. Each design pattern consistently names, explains and evaluates a recurring design in object oriented systems. A design pattern helps to reuse designs and architectures and to select the design alternatives that construct a reusable system. Design patterns also improve the documentation and maintenance of existing systems by providing a specification of class and object interaction explicitly. The design patterns are not a new one, but the tracing is given in a new way. There are no application or domain specific design patterns .Hence the patterns have been used in applications such as reservation systems, e-commerce, navigation systems, operating system constructions, gaming and website development etc. Though patterns have been implemented in various domains but there are no identified patterns for the mobile banking system. The existing mobile banking system does not make use of design patterns and so if we use patterns, the reusability of the mobile banking system can be improved.

REASONS FOR USING MOBILE BANKING SYSTEM
The main reason for choosing the mobile banking system to implement the design patterns is that mobile banking is a real time application which is being used by millions of people all over the world. Mobile banking provides many advantages, such as good security, easy access and plentiful applications for smart phones. Another advantage is that there is more control of user"s money. Each and every real time application strives hard to provide services to its users. The banking is one such system which involves several complex processes and these processes are confined and compacted into a mobile application which in turn simplifies the banking process and therefore providing services to fulfil the requirements of the customer. Thus it increases the customer satisfaction and his privacy. Hence we go for mobile banking in order to implement design patterns.

PATTERN ORIENTED SOFTWARE ARCHITECTURE
Pattern-Oriented Software Architecture is a methodology or technique which is used for the construction of software architecture. Pattern oriented software architecture is a system of patterns. It is software architecture study based on the usage of patterns. It shows us not only to group individual patterns into various kinds of structures but also to provide an effective environment for the construction of interactive and adaptable real time systems.

PATTERN
Pattern in software architecture is the way of extracting architectural design ideas as predictable and reusable descriptions. A pattern is a solution to the problem that arises within a specific context. Pattern falls into the family of similar problems. It is the process of distilling common factors from the system. Pattern is said to be as the relation between the context, problem and solution. A pattern has four essential elements namely Pattern Name, Problem, Solution, Consequences Pattern name is used to describe a design problem, its solutions and consequences in a word or two. It makes us easier to think about design patterns and to communicate them and their trade-offs to others. Problem describes when and how to apply the design patterns at any situation. It includes a list of constraints that must be satisfied before it makes sense to apply patterns. Solution describes the elements that frame the design, their relationships, responsibilities and collaborations. Consequences are the results and trade-offs applying the patterns. It is highest level of patterns which helps us to define the basic structure of an application by specifying the responsibilities. It also includes the rules and guidelines.

Design Patterns
It is the medium level Patterns refining the subsystem or components. It is the blue print of the particular solution. M a y 20, 2 0 1 3

Idioms
An idiom is a low level pattern that is specific to a programming language. An idiom describes how to implement particular aspects of components or the relationship between them using features of the given language. It addresses both design and implementation.

Types of Creational Patterns
Design Pattern is a general reusable solution to a commonly occurring problem within a given context in software design. A design pattern is not a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations

Bridge Pattern
Decouple an abstraction from its implementation so that the two can vary independently. (

Types of Behavioural Patterns
Behavioural patterns are design patterns that recognize familiar communication patterns between objects and comprehend these patterns. Thus by performing so, these patterns boost flexibility in transmitting out this communication.

Observer
Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically. (Gamma et al., 1994)

State
Allow an object to alter its behaviour when its internal state changes. The object will appear to change its class. The proxy pattern is used in situations where one object is used instead of another object, by acting as a placeholder for that object to control references to it. While reserving online tickets using mobile banking, money is debited directly from the user account. Invoking unsought objects is a burden on the utilisation of resources. Therefore we do not want to instantiate the objects unless they are requested by the client. In this scenario, we are using EJB interfaces and there are only going to interact with the client side. Hence the objects will be instantiated upon the client"s request. Composite pattern allows the clients to treat individual objects and compositions of objects homogeneously. It arranges objects into tree structures to symbolize entire hierarchy in general. The below figure shows us an example of an enquiry operation, which is a composition of several sub processes and are represented in the form of a tree. A banking application needs to manipulate this hierarchical collection of operations in enquiry into "primitive" and "complex" objects. Processing of a simple FD enquiry operation object is handled one way, and processing of a loan enquiry is handled differently, since there are so many classifications of loan enquiries. Hence we use this composite pattern whenever we use operations that contain more sub operations or components, each of which could be a composite. Figure 7. Visitor pattern used in Enquiry operations

Singleton Pattern
A bank must ensure that an account is accessed by only one customer at a particular duration and the customer must be able to access the account from anywhere around the globe. A banking application may not be able to provide access to an account, when two customers trying to access the same account and for this lazy initialization and global access are necessary. To provide high level security for a user account and to provide a global point of access a bank must facilitate the customer with a single user name and password and only that authorized user can access the account at any time (No other person can access the same account at that time). For this purpose we make use of the singleton pattern. Mobile banking must provide additional facilities such as SMS alerts and advertisement. Decorator pattern provide a flexible alternative to sub operations for extending functionality. Inheritance of additional functionalities is not feasible because it is possible only for static features and changes made in any feature affects the entire working. We are adding so many services to the existing system such as SMS alerts to the user to indicate the transaction (withdrawal and deposit), purchase alerts for M-Shopping. To give these additional services for the user we make use of decorator pattern. Figure 9. Decorator pattern used in mobile alerts

Façade Pattern
In a bank, services to the customer are provided through a customer service representative for each area or zone. The customer service representative acts as a mediator between the customer and the bank. We need to use only a subset of a complex system and not the entire system and each user wants to interact with the system in a particular way. The bank manager cannot able to provide the service directly instead of manager; a customer service representative is employed to provide the service. The Facade presents a new interface for the user of the existing system to use. We use a facade pattern which hides the complex database access interface behind a few easy to understand and maintainable interface.

IMPROVING REUSABILITY USING DESIGN PATTERNS
After the identified patterns are implemented in mobile banking, we are going to prove that the proposed mobile banking using design patterns is more reusable than the existing banking systems (Without usage of patterns). In order to measure the reusability, we make use of the existing reusability formula for object oriented programming.

CONCLUSION
Although patterns are available for various real time applications so far there are no patterns identified for mobile banking applications. Banking is a huge application consisting of many tedious operations that are branched one below another. So it consumes more time for the developer to develop a banking application from the beginning. In order to overcome this issue we use design patterns, which provides more reusability to the developer. Our proposal will support the software developers to develop a more reusable mobile banking application in future. We also plan to evaluate our architecture using patterns with the existing architecture.