Identification And Implementation Of Design Patterns Information Technology Essay
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 do transactions online 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, e-commerce, 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 in java and enterprise java beans. We go for java because the banking operation involves various business logic activities and 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).
Keywords: Identification, Implementation, Evaluation, SAAM, ALAM.
I. 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 every problem from its first principles rather the use 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 make object oriented designs more flexible, elegant and reusable. When a designer familiar with such patterns he can apply them immediately to the design problems without having to rediscover them. Once the designer knows the patterns, 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 choose design alternatives that make a system reusable. 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 we trace them in a new way.
There are no application or domain specific design patterns .Hence the patterns have been used in applications such 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 we can have more control of our money.
Each and every real time application strives hard to provide the service 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 (POSA)
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:
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 it describes a situation of when to apply the design patterns. 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.
TYPES OF PATTERNS
In this paper main concerted into only the design patterns.
TYPES OF CREATIONAL PATTERNS
TYPES OF STRUCTURAL PATTERNS
TYPES OF BEHAVIOURAL PATTERNS
IDENTIFIED PATTERNS FOR MOBILE BANKING
In mobile banking various operations is similar so the similar operations are created as the patterns.
Proxy pattern
Composite pattern
Singleton pattern
Decorator pattern
Façade pattern
PROXY PATTERN
Context: The proxy pattern is used in situations where one object instead of another object, to act 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.
Problem: Invoking unsought for objects is a burden on the utilisation of resources. Hence we do not want to instantiate the objects unless they are requested by the client.
Solution: In this scenario, we are using EJB interfaces and there are only going to interact with the client side. Hence objects will be instantiated upon the client’s request.
COMPOSITE PATTERN
Context: 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 above 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.
Problem: 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.
Solution: Hence we use this composite pattern whenever we use operations that contain more sub operations or components, each of which could be a composite”.
Untitled.png
SINGLETON PATTERN
Context: A bank must ensure that an account is access by only one customer at a particular duration and the customer must be able access the account from anywhere around the globe.
Problem: Application may not be able to provide access to the account, when two customers trying to access the same account and for this lazy initialization and global access are necessary.
Solution: 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.
Untitled.jpg
DECORATOR PATTERN
Context: Mobile banking must provide additional facilities such as SMS alerts and advertisement. Decorator pattern provide a flexible alternative to sub operations for extending functionality.
Problem: 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.
Solution: 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.
FAÇADE PATTERN
Context: 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.
Problem: 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.
Solution: 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.
Pattern is said to be as the relation between the context, problem and solution.
A pattern is a solution to the problem that arises within a specific context
The above definitions were extracted from the ideas of various authors and information provided by them reveals the same concept about the central theme of the patterns.
III – WHY DO WE GO FOR PATTERNS
Provides reusability and flexibility. Help in the construction of complex software architectures. To know about the existing systems and provides customization of existing software systems in order to fit the needs of the user and also to construct new systems.
IV – PATTERN ORIENTED SOFTWARE ARCHITECTURE (POSA)
Pattern-Oriented Software Architecture is a methodology or technique which is used for the construction of a software architecture. Pattern oriented software architecture is a system of patterns. It is software architecture based on the usage of patterns. It shows us not only to group individual patterns into several different kinds of structures but also to provide an effective environment for the construction of interactive and adaptable systems.
ARCHITECTURAL PATTERN
Highest level of patterns. Helps us to define the basic structure of an application specifies the responsibilities. Also includes the rules and guidelines.
DESIGN PATTERNS
Medium level Patterns. Refines the subsystem or components. It is the blue print of the particular solution.
IDIOMS
Low level Patterns. Describes how to implement. Addresses both design and implementation
TYPES OF DESIGN PATTERNS
· Creational Patterns -create objects as needed
· Structural Patterns -Group of objects into larger structures.
· Behavioural Patterns – Communication between the objects.
FACTORY METHOD
It defines an interface for the creation an object, but it allows the subclasses to decide the class that they would like to instantiate. It also permits a class to defer the method of instantiation to subclasses.
ABSTRACT FACTORY
The Abstract Factory provides an interface so that patterns having some relationship can be grouped together to form a family. It does not specify the concrete classes. It is implemented usually as an abstract class.
BUILDER PATTERN
The representation of a complex object and its way of construction are separated so that various kinds of representations can be created from the same process of construction. A complex representation can be parsed and can be used to create several targets.
PROTOTYPE DESIGN PATTERN
It specifies different kinds of objects that should be constructed with the use of an instance in the form of a prototype and it makes new objects by using copy of that prototype. This pattern is useful when we require objects that are similar to the objects that already exist. It mainly allows us to create the objects during the runtime.
STRUCTURAL PATTERN
Structural patterns deal with the composition of several classes and objects in forming larger software architectures. They make use of the concept of inheritance in order to combine the interfaces and the implementations. So that the properties of the main class or parent class can be combined to form the resultant class.
ADAPTER DESIGN PATTERN
Adapter is involved in the creation of an abstraction such that old component can be mapped on to a new software system. It acts as an protection for the existing class and provides the support required for the client.
V – EXISTING SYSTEM
Patterns have been already implemented in various existing applications such as e-commerce, data mining, construction of operating systems, e-business, games and website designing and development purpose.
VI – PROPOSED SYSTEM
Our aim is to identify the patterns in the online banking system and to implement those patterns .We discussed some of the design patterns and methods to evaluate the architectures. Our future proposal is that to identify patterns in the online banking application and to evaluate them.
VII – CONCLUSION
There are patterns available for various fields like distributed computing, e-business etc. But no patterns so far identified for the internet banking applications. Hence we are going to find the patterns according to the services involved in internet banking.
Order Now