The MVC-model and our software

The MVC-Modell (Model-View-Controller) should be the basis of each code development. MVC stands for a division of the software system into three parts: model, view and controller. The "Model" stands for the data that should be presented, "View" the representation and the "Controller" holds all functions. As a result, the MVC-model satisfies the human need to split information into logical units. When using the MVC-formation, it is possible for the programmer to pursue the code in a more exact way as well as to enlarge and edit the code. The MVC-model with its three parts can be enlarged as desired, which means that the controller, for example, can be split into further logicall units.

We apply this model in order to split our code into lucid and clear functional aspects. On this basis we also guarantee a flexible program design that ensures expansions without difficulties and that also provides a reusability of the single components.


The heart of software is the database (model). The model contains all the data that is necessary for the smooth operation of a program. Before writing a line of the code, the programmer has to become aware of each needed detail and he has to implement these into the model (database). Despite an object-orientated programming mode, models are implemented rationally. Therefore, it is necessary to insert an Object-Relational-Mapping (ORM) in order to project object-oriented relational data and vice versa. The framework Propel is, in this context, an excellent option in order to generate objects from the Structured-Query-Language (SQL) speaking database. Apart from the ORM, an Abstraction Layer (DBAL) database should be installed. A DBAL such as Creole, PDO or AdoDB is an interface, which standardizes the different SQL-dialects of the single databases such as Oracle or MySQL, and which transfers these to the ORM. Therefore, the programmer does not need to carry out a manual modulation as this takes place automatically. Thanks to ORM and DBAL, the code is significantly shorter. That is why the development time is also shortened substantially. Moreover, sources of errors are omitted due to the automatic building of classes and objects and due to the automatic SQL-translation.


In addition to the database, the layout and design represent a decisive, non-functional element of software. Most often it is the "view" that specifies the further application mode for the user. If a specific software is visually interesting, I become curious about it and I like using it. If the software is boring or not well thought-out, the first contact with the web application, the online-shop or the portal will be negatively tinged.

In general, it is advisable to use powerful Javascript-libraries for the implementation of AJAX-functionalities. The jQuery Libary provides classes to navigate and to manipulate DOMs (Document-Object-Model). jQuery makes it possible that almost no Javascript has to be performed in the body. Thus, the HTML-Code stays clean. The Javascript-elements that are generated by jQuery, can be maintained more easily due to the separation of HTML. Prototype represents another Javascript-library which can be used for the design of dynamic web applications. Thanks to Prototype, it is possible to program in an object-oriented manner in Javascript. Therefore, DOM-manipulations, AJAX-access and the effects related to these applications remain clear, time-saving and can be programmed concisely. On the basis of Prototype, a range of auxiliary means were created that are helpful in programming.


The controller is, in the end, the stage of the development in which the project comes alive. The controller determines all methods that have to be performed, and they not only ensure a smooth flow of the program, but they are the smooth flow. In order for the controller to create this smooth flow, the programmer has to clarify what is needed for the actual development of all essential components and their intended role within the functions of the program. The best possible maintenance, the ability for modification, security and performance are thereby the topmost premises when creating software. In regards to quality assurance , it is advisable to apply a global messaging- and log system and a central index and action management. The programming can only begin once the basic features are complete. For this, it is important to build a framework of classes, objects and functions. Only when these run flawlessly, can they be filled with life and all the necessary functions can be implemented.