• No results found

A Review of an MVC Framework based Software Development

N/A
N/A
Protected

Academic year: 2021

Share "A Review of an MVC Framework based Software Development"

Copied!
8
0
0

Loading.... (view fulltext now)

Full text

(1)

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

[email protected],

[email protected]

*

Correspondent Author: Sunguk Lee

*

([email protected])

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

(2)

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].

(3)

 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.

(4)

 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 over-all 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].

(5)

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

(6)

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.

(7)

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), Re-validated: (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, 13: 978-0471958697, ISBN-10: 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 e-health 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.

(8)

References

Related documents

This document is provided under License by EagleView Technologies to the requestor for their Internal Use Only subject to the terms and conditions previously agreed to by the

Channel.When Channel Type is set to PDTCH and the cell does not support EDGE services, the default value is EGPRS Normal Channel.When Channel Type is set to PDTCH and the cell

A further weakening of the bond that non-audit services provide to management is to place the award, renewal, or discontinuation of material non-audit services to a reporting

Fate of lactic acid bacteria (LAB) in semi-hard artisanal Minas cheese made from pasteurized milk without addition of anti-listerial LAB (LAB LM , top left), pasteurized milk with

• For the first time, we successfully conducted CUES School of Business Lending™ and Board Liaison Workshop online, a shift we made in rapid response to the pandemic.. •

States, the basic financial statements of the Board of Trustees of the Classical Academy Charter School of Clifton (the “Charter School”) in the County of Passaic, State of New

The research data were analyzed descriptively, practical data included the feasibility of using teaching material and student responses, indicating that the

• Insert your annual budget (it can be express as a percentage of your revenue) Annual Budget Advertising (40% of the budget) Public relations (20% of the budget) Sales