A Review of an MVC Framework based Software Development

advertisement
International Journal of Software Engineering and Its Applications
Vol. 8, No. 10 (2014), pp. 213-220
http://dx.doi.org/10.14257/ijseia.2014.8.10.19
A Review of an MVC Framework based Software Development
Ronnie D. Caytiles and Sunguk Lee*
Department of Multimedia Engineering, Hannam University
133 Ojeong-dong, Daeduk-gu, Daejeon, Korea
rdcaytiles@gmail.com, sulee0612@hnu.kr
*
Correspondent Author: Sunguk Lee* (sulee0612@hnu.kr)
Abstract
This paper presents the concepts of model-view-controller (MVC) for the development of
software systems. The different software development process methods are presented wherein
they share some common methodology phases. The MVC is an approach that provides
insights for software development by describing three objects in developed software in terms
of model, view, and controller. A sample integration of MVC is also presented.
Keywords: MVC, Software Development
1. Introduction
As innovative software solutions has been rapidly emerging for software development, the
need for the provision of a more defined and managed software development tools and
approaches are also evolving. Over the years, a numerous software development process
models have evolved recognizing its own advantages and disadvantages. Based on these
advantages and disadvantages, developers can always look for available process model which
is best suited for specific kinds of systems considering its requirements [1].
The MVC architectural pattern for the software development design was one of the
evolving insights to describe and implement software constructs in terms of their
responsibilities [5, 7]. It has been widely adopted for Internet applications and web design in
major programming languages.
This paper presents a review of the concepts of MVC for the development of software
systems. The numerous process models for software development indicating their
advantages and disadvantages are also presented.
The rest of this paper is organized as follows: Section 2 discusses about the different
software development process models; Section 3 outlines the concepts of MVC for software
development; and the concluding remarks in Section 4.
2. Software Development Process Models
The development of software or application products which includes all activities of
programming refers to software or application development. The development process may
include research, new development, prototyping, modification, reuse, re-engineering,
maintenance, pre-definition of specific deliverables and artifacts, or any other activities that
result in software products that are created and accomplished by a project team to develop an
application [1].
There are numerous types of software process models that include conventional and
innovative methodologies such as waterfall, prototyping, iterative and incremental
ISSN: 1738-9984 IJSEIA
Copyright ⓒ 2014 SERSC
International Journal of Software Engineering and Its Applications
Vol. 8, No. 10 (2014)
development, spiral development, rapid application development, and extreme programming.
These types of methodologies share some of the following stages of development:

Analysis Phase

Requirements Phase

Design Phase

Implementation (coding) Phase

Testing

Deployment

Maintenance and bug fixing
To select the best software development process always depends on the results of the
analysis of the problem at hand. The next sections discuss some of the different software
development process models to which both advantages and disadvantages are identified.
2.1 Linear Sequential Process Model
The Linear Sequential Process Model also refers to the waterfall process model
development is seen as flowing steadily downwards (like a waterfall) through the phases of
requirements analysis, design, implementation, testing (validation), integration, and
maintenance [2, 3]. Every phase cannot start unless the previous phase done.
Some of the advantages of this model are [1, 2, 3]:

Measurable. The progress for each phases in the development are easily
measured.

It provides a basis for other software process models.

Quality. Ensured quality through the orderly sequence of development phases.

Reliability. Every phase must be completed before going through the next phases,
thus it ensures reliability.
Some of the disadvantages of this model are [1, 2, 3]:

Inflexible. Since the development strictly follows a strict sequential flow, thus
changes are not allowed.

Slow. Since it is difficult to decide the beginning and ending of a developmental
phase, the whole development is always delayed.

Missing requirements specified by the users are difficult to address.

Problems or unexpected errors can only be determined during the testing phase.
2.2 Prototyping
Prototyping refers to the partially development of software and applications to enable the
end users and developers to examine and understand the concepts of the proposed developed
system [1, 3].
Some advantages of this process model are:
214
Copyright ⓒ 2014 SERSC
International Journal of Software Engineering and Its Applications
Vol. 8, No. 10 (2014)

The users have a direct participation in defining the human-computer interaction
requirements of the system.

The performance of the functionalities of the system is tested early.

Missing requirements and functionalities are easily addressed.

Innovative and flexible software designs are encouraged.
Some of the disadvantages of this process model are:

Frequent significant changes of requirements are expected.

Documentation for future developments is neglected.

Costly. Iterations can add to project budgets and schedules, thus the added costs
must be weighed against the potential benefits.
2.3 Spiral Process Model
The spiral process model is a software development process combining the iterative
nature of prototyping with the controlled and systematic aspects of linear sequential
model. The rapid development of incremental prototypes or versions of the proposed
system are provided [1].
Some advantages of this process model are:

The risk avoidance is enhanced.

Other process models can be incorporated.
Some of the disadvantages of this process model are:

Control in moving from one cycle to another is not established.

Reusability is limited since it is quite complex.

Schedule can be affected by the cycles if unable to determine the exact deadlines
of cycle terminations.
2.4 RAD Process Model
Rapid application development (RAD) is a software development process model which
involves iterative development and the construction of prototypes. It is achieved through
modular-based constructions approach and emphasizes extremely short development cycle [1,
2].
Some of the advantages of this process model are:

Faster delivery of the finished system.

Cost is minimized due to the faster delivery.

Provides the ability to rapidly change system design as demanded by users.
Some of the disadvantages of this process model are:

Lack of scalability since the process requires a sufficient number of developers.

Reusability can be difficult.
Copyright ⓒ 2014 SERSC
215
International Journal of Software Engineering and Its Applications
Vol. 8, No. 10 (2014)

Interoperability with the existing systems can be quite complex.

Quality of delivered product can be affected by the lower cost and faster delivery.
2.5 Other Process Models
Other methodology practices include [1, 2]:

Incremental Model. This process model combines the elements of a linear
sequential model with the iterative philosophy of prototyping. Linear sequences
are defined where each sequence produces an increment of the software.

Agile software development refers to a group of software development
methodologies based on iterative development, where requirements and solutions
evolve via collaboration between self-organizing cross-functional teams [8].

Concurrent Development Model. The Concurrent Development Model is also
known as concurrent engineering. It makes use of state charts to represents the
concurrent relationship among tasks associated within a framework of activities.
It is represented schematically by a series of major technical tasks, and associated
states. The user's need, management decisions and review results drive the overall progression of the development.

Evolutionary Process Models. This process model recognizes that software
evolves over a period of time. It enables the development of an increasingly more
complicated version of the software. The approach is iterative in nature. Specific
evolutionary process models are Incremental Model, Spiral Model, and
Component-based Assembly Model.

Unified Process (UP) is an iterative software development methodology
framework, based on Unified Modeling Language (UML). One popular version
of UP is the Rational Unified Process (RUP) [9].
3. MVC Framework based Software Development
The Model–View–Controller (MVC) is an architectural pattern used in a software or
application development. A software application is divided into three organized objects
wherein the computer representation of information is visualized by the user [4].
In MVC, the model captures the behavior of the application in terms of its problem
domain, independent of the user interface. It signifies the information or data of the
application and defines the logic for manipulating them. It directly manages the data,
logic and rules of the application.
The view corresponds to any output representation of information or elements of the
user interface such as text, checkbox items, a chart or a diagram, and so on. It is
possible to have multiple views of the same information, such as a bar chart for
management and a tabular view for accountants [5].
The controller accepts input and converts it to commands for the model or view. It
manages the communication of data and the business rules used to manipulate the data
back and forth the model objects and the view objects. It acts as an intermediary
between the Model and View objects. It also performs all application specific tasks,
such as processing user input or loading configuration data [4, 5].
216
Copyright ⓒ 2014 SERSC
International Journal of Software Engineering and Its Applications
Vol. 8, No. 10 (2014)
The concept of the MVC framework is depicted in the following figure.
Figure 1. MVC Collaboration of Components
Model is the domain-specific representation of the information on which a proposed
system for development operates. The project as a whole was broken down into
components called modules. These modules are based on the user requirements
specified in the requirements phase of the process model.
The View renders the model into a form suitable for interaction, typically a user
interface element. Every model representation has its own view. For example, the
different view objects for the development of a Point of Sale system is shown in Figure
2.
Figure 2. View components for the MVC based Development of a Point of Sale
System
Copyright ⓒ 2014 SERSC
217
International Journal of Software Engineering and Its Applications
Vol. 8, No. 10 (2014)
The Controller represents processes and responds to events (typically user actions)
and may indirectly invoke changes on the model. As an example, the point of sale
system controller objects are shown in Figure 3.
Figure 3. Controller Components for the MVC based development of a Point of
Sale System
In addition, the following interactions are identified for the mo del-view-controller
components as shown in Figure 1 [6]:

The controller can send commands to the model to update or change the
component’s status. Controllers are application specific, thus, reuse to other
applications is not possible.

The model notifies the associated views whenever there has been a change
in its status wherein the updated output can be provided by the views. The
controller is also updated with the changes in order to change the available
set of commands. The model objects can be reusable, however, it is not
directly displayed to the users.

The view requests information from the model that it uses to generate an
output representation and display it to the user.
4. Conclusions
Software development process models can be chosen through their strengths and
weaknesses to which is more suitable for a specific problem at hand. The MVC architecture
pattern plays a vital role in the design phase of the software or application development.
This paper presents a review of the concepts MVC for the development of software
systems. The three types of objects in an application are defined as Model, Views and
Controllers.
218
Copyright ⓒ 2014 SERSC
International Journal of Software Engineering and Its Applications
Vol. 8, No. 10 (2014)
References
[1] Centers for Medicare & Medicaid Services (CMS) Office of Information Service (2008), “Selecting a
development approach”, Webarticle, United States Department of Health and Human Services (HHS), Revalidated: (2008) March 27, Retrieved: (2014) September 12.
[2] http://en.wikipedia.org/wiki/Software_development_process.
[3] http://en.wikibooks.org/wiki/Introduction_to_Software_Engineering/Process/Methodology.
[4] Trygve Reenskaug and James O. Coplien, “The DCI Architecture: A New Vision of Object-Oriented
Programming”, http://www.artima.com/articles/dci_vision.html, March 20, 2009.
[5] http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller.
[6] F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, M. Stal, “Pattern-Oriented Software Architecture”,
Volume 1: A System of Patterns Hardcover, Wiley, August 16, 1996, ISBN-13: 978-0471958697, ISBN10: 0471958697.
[7] Model View Controller History, C2.com, (2012) May 11, Retrieved: 2014 September 8.
[8] http://en.wikipedia.org/wiki/Agile_software_development
[9] http://en.wikipedia.org/wiki/Rational_Unified_Process.
Authors
Ronnie D. Caytiles is a graduate student on the Integrated Course in College of
Engineering from Hannam University. His research interests include ubiquitous ehealth care, mobility management scheme, wireless network, mobile IPv6, multimedia
system, Multimedia Healthcare, and sensor network.
Sunguk Lee received the B.S. degree in Electronics Engineering from Kyungpook
National University, South Korea in 1998, and the M.S. and Ph.D. degrees in Electrical
and Computer Engineering from University of Florida, Gainesville, USA, in 2004 and
2010, respectively. From 2013, he has been a Professor in the Department of
Multimedia Engineering at Hannam University, Daejeon, Korea.
Copyright ⓒ 2014 SERSC
219
International Journal of Software Engineering and Its Applications
Vol. 8, No. 10 (2014)
220
Copyright ⓒ 2014 SERSC
Download