Towards a Classification of Design Patterns for Web Programming
ABSTARCT :
The evolution of WWW leads to continuous growth of demands that are placed on web applications that results in creating sophisticated web architectures. To minimize the complexity behind their design, software frameworks were introduced. There are hundreds of web frameworks, hence the choice of the right framework can be seen as searching for the holy grail. This thesis investigates the possibility of creating and validates usefulness of a classification scheme which organizes well-known object-oriented design patterns found in popular web frameworks: Apache Struts, Ruby on Rails, CakePHP and Zend Framework. The proposed classification scheme is based on two criteria: purpose and scope. The classification of such patterns that capture design rationale behind the decisions and best practices, is potentially important for building or restructuring a generic web framework, for capturing expertise knowledge and for orientation purposes in the problem domain - web engineering. The methodology used in this thesis is based on case studies and the identification of design patterns in web frameworks uses manual approaches. The results revealed popular design patterns in web frameworks and that the proposed classification scheme in a form of a 2D matrix must be refined, because relationships among design patterns in web frameworks are important and have a tendency to be formed as complex hierarchies. It is proposed to use a classification scheme in a form of a map or a tree when refining the scheme.
EXISTING SYSTEM :
? In order to become a part of forthcoming semantic web, many attempts are being made to combine semantic web technologies with existing web applications.
? Every code review should take into consideration the different constraints associated with the design patterns; otherwise changes to the system could damage the purpose of the existence of the patterns.
? A Hyper Control Document[Chang98] is a multimedia document that might be used to activate an existing stand-alone application with the necessary request received from the users.
? Moreover, this also suffers from the problem of inconsistency as more than one instance of a model or controller exists at any point of time.
DISADVANTAGE :
? In the field of software engineering and web development, the information overload problems concern the quantity and the quality of information created with overproduced technologies and software frameworks that are used to built web applications and solve common web programming problems.
? Moreover, the problem is associated with the existing classifications of software design patterns.
? Many of the classifications are focused on desktop-based programs and were not adapted to the web application’s problems.
? One way of solving such problems is to use design patterns that contain descriptions of problems with all documented way of solving them.
PROPOSED SYSTEM :
• This is proposed as a re-engineering solution for web applications that have not been developed in a systematic way.
• Every code review should take into consideration the different constraints associated with the design patterns; otherwise changes to the system could damage the purpose of the existence of the patterns.
• Some design patterns specifically address the needs of experts, while others are targeted at novice; few are suitable for both. Hence, pattern advantages could be reaped only by experienced users.
• It is difficult to apply patterns for a frequently changing web application.
ADVANTAGE :
? All frameworks’ interfaces contribute to the re-usability of the software since their generic components can be defined and used to create other applications. Thus frameworks’ re-usability improves developers’ productivity and software’s interoperability, quality and performance.
? The use of Singleton pattern is mainly in Action and ActionServlet since Struts creates only one Action per application which benefits to performance optimization.
? Using reverse engineering techniques in identification of design patterns is more time- and cost-efficient than using manual approaches.
? However automated approaches cannot guarantee accuracy and exact pattern identification, because some patterns are very similar in structure or in behavior.
|