JTES: Journal of Technology and Engineering Science JulDec 2009 Vol1 No2 Using Design Pattern for Micro Level Software Design S. A. M. Rizvi, Syed Imtiyaz Hassan Department of Computer Science, Jamia Millia Islamia University, New Delhi. Department of Computer Science, Hamdard University, New Delhi. Abstract: Several problems can arise while developing an interactive or web based systems containing mixture of data access, business logic, and presentation code. Such applications are difficult to maintain, because interdependencies between all of the components cause strong ripple effects whenever a change is made anywhere. High coupling makes classes difficult or impossible to reuse because they depend on so many other classes. While developing such system, one should think beyond traditional, structured or object oriented methods as they offer limited means of reasoning about the validity of specifications. Finding the right abstractions of classes and defining the collaboration between them will be easier if design pattern is integrated with object oriented method of software engineering. With the help of pattern a system can be designed for change. Even though the use of a design pattern increases the reusability of the software, it is not practiced to its strength, largely because of the unfamiliarity of the benefits a design pattern offers. The present paper demonstrates how an interactive or web based system( including Web2.0) can be developed with the help of a well accepted design pattern, Model-View-Controller (MVC), that has been used in popular frameworks like Java Swing, Struts, spring and .Net. Keywords: Design Pattern, Model-View-Controller (MVC), Web Application, User Interface Design. 1. Introduction The modern world relies more and more on software. Customer requirements for new software products get more demanding all the time. On the other hand software is used in critical areas, where the quality has the highest priority. The competitive market causes pressure to produce software faster, cheaper and better. That can be done by improving the efficiency of software production and increasing the amount of reuse. Object oriented design and programming solve some problems of efficiency and reuse, but achieving best results requires planned and purposeful adoption of reuse in software development processes. The increasing complexity and size of software systems require sound engineering principles and design pattern [1] to formally structure the design process into multiple but consistent perspectives. In the absence of an explicit architectural framework and sound design pattern, the system is difficult to maintain and cannot evolve adequately. A design pattern is not all about program proving, rather, it works largely by making one think very hard about the system one propose to build [2]. A design pattern can be viewed as micro- architecture within a broad architectural picture which describes a particular recurring design problem, proposes a predefined scheme for its solution, and includes heuristic rules for how and when to use it [3]. In other words, a pattern is a form of solution intended to address problem and the purpose of the pattern is to reduce the complexity of user interfaces for a large and complex information system [4]. The ability to compose user interface representations by composing component specification is an essential requirement for design pattern. In nutshell, design patterns are a key concept in the field of software architecture: they offer well-established solutions to architectural problems, help to document the architectural design decisions, facilitate communication between stakeholders through a common vocabulary, and describe the quality