MVC Points – a new estimation methodology for web applications
PML 2005 Nagaraja Gundappa, Wipro Technologies 1
MVC Points – A new estimation methodology for
web applications
Author: Nagaraja Gundappa
Designation: Head,
Execution Excellence group
Talent Transformation
Wipro Technologies
Address: No. 72, Electronic City
Hosur Main road
Bangalore - 560100 Contact details:
Phone (Work):
5138 1744
Phone (Mobile) 94484 94318
E-mail: [email protected]
The updated contact details of the author are as follows:
Chief consultant,
Akshaya Centre of Excellence (ACE), Bangalore
Ph: 99002 49348
Email: [email protected]
Web: www.acoe.in
MVC Points – a new estimation methodology for web applications
PML 2005 Nagaraja Gundappa, Wipro Technologies 2
Abstract
As technology and development methodologies change, the older effort estimation methodologies become
less applicable or nearly irrelevant. When it comes to web application development using Object Oriented
Software Engineering methodology, it is tedious if not impossible to use older estimation methodologies
such as COCOMO or Function Points. One of the main reasons for the estimation methodologies to
become obsolete is that the methodologies are closed in the sense that the users cannot easily tailor or
extend the methodology. This paper defines a new paradigm of openness in estimation methodologies and
describes one estimation methodology, MVC Points, its usage in detail. This methodology is open and
users can tailor or extend this methodology. This methodology has been developed indigenously and
originally by the J2EE Centre Of Excellence at Wipro Technologies The initial results of piloting this
methodology are very encouraging and the methodology has started gaining acceptance.
MVC Points – a new estimation methodology for web applications
PML 2005 Nagaraja Gundappa, Wipro Technologies 3
(1) Introduction
Estimating the size of a software application has always been a challenge and continues to remain so. When
an estimation technique gains acceptability and tends to become universal, the technology and environment
change so much that the assumptions made in the well accepted methodology would become incomplete
and at times invalid. Established methodologies become less accepted in the new context and new
estimation methodologies emerge. Specifically, when it comes to estimating web applications, the current
estimation methods have the following problems:
The Cocomo methodology provides a way of estimating the efforts given the size in Kilo Lines Of
Code (KLOC). However, it does not provide a methodology to estimate the size in KLOC.
KLOC as a sizing unit is not the most appropriate technique to size web applications. In event-
driven programming used for developing Graphical User Interfaces (GUI), lines of code is not the
best indicator of complexity involved in developing the GUI. Secondly, when both manual code
and tool-generated code are involved it requires different level of effort to develop the same.
Hence it becomes confusing to use KLOC as a sizing unit.
Due to the above complexities, estimating the size of an application in terms of KLOC, given the
requirements is too complex if not impossible.
The Function Points methodology has the following disadvantages:
o It is difficult to visualize a web application using the paradigm of function points
methodology. Function points views the size of an application in terms of data and
transactions and this is different from object oriented thinking in which an application is
viewed as a group of classes related and interacting with each other.
o There is no one-to-one mapping between the 5 elements of the methodology and the units
of code that actually get developed.
o The counting rules are too abstract and can be interpreted very differently by different
persons.
o As one function point does not directly translate into one unit of code that gets developed,
it is difficult to carry out a root cause analysis if there is a mismatch between the
estimated effort and actual effort.
The use case points methodology addresses some of the above limitations as they are based on use
cases and maps well to object oriented view of applications. However, the use case points
methodology has the following disadvantages:
o There is a large variation in the way use cases are written. If not balanced, an application
tends to have smaller number of large use cases and this can cause a large deviation in the
estimates.
o Use case to class mapping is one to many and it is extremely cumbersome to verify the
effort per use case based on actual experience.
o Productivity norms per use case point has a degree of empiricalness and hence
confidence level on the estimates would be low.
As a result of the above limitations, no estimation methodology has become universally accepted and
experience based free-format estimation continues in large scale.
The above observations can be summarized and ascribed to the paradigms that these methodologies are
based on and a new paradigm is needed to develop new estimation methodologies.
(1.1) Current paradigm in estimation methodologies – Generic and closed
The current paradigm in estimation methodologies is to develop methodologies that are generic, applicable
to all technologies and handle technology specific complexities through adjustment factors. For instance,
the function points (FP) methodology was developed during the era of stand-alone applications but has
been abstracted and made applicable to estimating the size of any software. The FP methodology has
adjustment factors called general system characteristics that addresses the technology-specific complexities
of implementing the same functionality. The Use case points (UP) methodology is also considered generic
and has what are called Technical Complexity Factors and Environmental Complexity Factors to handle
technology specific variations. Another new estimation methodology called Class Points is also similar in
nature.
MVC Points – a new estimation methodology for web applications
PML 2005 Nagaraja Gundappa, Wipro Technologies 4
In general, the paradigm of generic and closed estimation methodologies can be summarized as follows:
1. Views the application top down. That is, visualize the application at the highest abstraction level
either in terms of functionality or in terms of use cases.
2. Define adjustment factors to take care of technology and development environment specific
variations. These adjustment factors have empirical numbers to add or multiply the size.
3. Effort norms are per abstracted sizing units
It is due to the above paradigm that these estimation methodologies have still not become universally
accepted. Specifically, following factors pose a hurdle for a gradual maturity of these methodologies -
1. Because sizing units are generic and abstract, validation of effort norms is tedious and
approximate. That is, the sizing unit does not directly correspond to any coding unit that is
developed and hence a unit-level validation of estimates is not possible. For instance, a function
point or a usecase point does not correspond directly to a given set of classes. The relationship
between function points (or use case points) and classes that get developed are many-to-many.
2. Adjustment factors involves empirical numbers and this makes the methodology closed. That is,
if an application involves complexities not listed among the adjustment factors, users cannot
modify or extend the adjustment factors. For instance, if an application has higher reliability
requirements, this complexity is not a factor that is listed in Function Points or Usecase points. A
user would not know how to tweak the adjustment factors as he would not know what empirical
number to assign to this new complexity factor.
Therefore, the current paradigm of generic and closedness does not allow organizations to adopt a
methodology and refine it continuously.
Hence, there is a need for a new paradigm of Open and Technology specific estimation methodologies.
Technology specific, because the sizing units can have a closer mapping to the code units developed and
hence it should be easier to validate effort norms. Open because, it would not be possible for the authors of
any methodology to foresee all possible complexity factors and list them. Users should be free to modify
or extend the complexity factors so that organizations can adopt them and refine continuously.
(1.2) Experience at Wipro Technologies
At Wipro Technologies, experience with estimating for web applications reflects the above observations.
Firstly, it is observed that experience-based free-format estimation has several drawbacks. Most
significantly, it was found that there was no standard way to identify the work-break-down elements of an
application and hence lessons learnt from one estimation exercise could not be leveraged and used as
heuristics for the next estimation. Secondly, it has been found that usage of estimation methodologies such
as Function Points and COCOMO for web application is too tedius and cumbersome if not impossible for
reasons explained earlier in the section. Hence, it was decided to develop a family of estimation
methodologies based on the new paradigm. Developing an open estimation methodology would essentially
involve –
1. Standardization of work-break-down units of a specific technology
2. Defining complexity indicators
3. Defining effort norms for sizing units of different complexities.
To begin with, it was decided to develop methodologies for J2EE and .Net technologies. Called MVC
Points, this paper describes this new methodology. Rest of the paper is organized as follows:
Overview of the MVC Points methodology
Description of steps involved in the methodology
Illustration of the methodology for one use case
Results of initial usage of this methodology
Guidelines for adopting this methodology in an organization
Appendices
MVC Points – a new estimation methodology for web applications
PML 2005 Nagaraja Gundappa, Wipro Technologies 5
(2) MVC Points methodology
The Model-View-Controller pattern is quite popular and is a well accepted practice in developing J2EE and
.Net applications. Hence, standardization of work-break-down units for J2EE and .Net applications was
done based on the MVC pattern. That is, J2EE and .Net applications would be considered to be essentially
consisting of a number of views, controllers and models. Hence, the name MVC Points for this
methodology. A brief overview of MVC Pattern needed to appreciate this methodology is provided in the
next section.
(2.1) MVC Architectural pattern
Any interactive application can be categorized into:
View Classes that present GUIs
Model Classes that handle business logic and interact with database
Controller classes which communicate between the View and Model Classes
Typically in internet applications User interfaces change often, look-and-feel being a competitive
issue. The same information is presented in different ways; however, the core business logic and data
is stable. So model classes would not change often but view classes would. Hence, separating Model
from View (that is, separating data representation from presentation) results in the following
advantages
easy to add multiple data presentations for the same data.
facilitates adding new types of data presentation as technology develops.
Model and View components can vary independently enhancing maintainability, extensibility,
and testability
In a typical J2EE application, the Model, View and Controller would map as shown in the following
diagram:
Diagram 1: MVC Pattern in J2EE technology
The View (GUIs) is implemented by JSP (Java Server Page), Controller is implemented using servlets and
Model is implemented by EJB (Enterprise Java Beans). It should be noted here that the Model includes
the database as well as the helper classes to go with the EJBs.
In a .Net technology, the View is implemented by .ASP, Controller is implemented by Code behind and the
Model is implemented by COM+ components. The model includes the COM+ components as well as the
database.
(2.2) Overview of the methodology
The Paradigm behind this methodology is that the size of a J2EE or a .Net application can be expressed in
terms of the number of views, models and controllers developed. The methodology involves listing the
use cases of the application and for each use case, enumerating the models, views and controllers needed to
realize the use case. Each model, view and controller enumerated is classified as simple, medium or
Model View Controller
JSPs Servlets EJBs
DBMS
User
MVC Points – a new estimation methodology for web applications
PML 2005 Nagaraja Gundappa, Wipro Technologies 6
complex and then effort is calculated based on norms. The major components of the methodology are
depicted in the diagram below:
Diagram 2: Components and work flow of MVCPoints methodology
As shown in the diagram above, the MVC Points methodology essentially consists of a step-by-step
procedure and guidelines to be used in each step. The procedure is as follows:
1. Identify the use cases for the application.
2. For each use case, estimate the number of models, views and controllers required to realize the use
case. The methodology provides tips to appropriately identify the Models, Views and Controllers.
3. Eliminate duplicates. That is, for instance, if a view identified for one use case is required for
another use case also, count it only once.
4. Classify the identified models, views and controllers as simple, medium and complex. The
methodology provides what are called complexity indicators to classify the identified models,
views and controllers.
5. Apply effort norms to identified models, views and controllers. The MVC Points model
recommends effort norm to be defined only for the coding and unit testing (CUT) phase and use
this as the basis for determining the life cycle effort.
Simple
Medium
UC1
UC2
UCn
Classified MVCs
V
C
M
V
C
M
V
C
M Complex
Life
cycle
effort
for
MVCs
Effort
for
coding
and
unit
testing
Total
Development
Effort
Other
non-
MVC
Effort Miscellaneous
requirements
MVC Points Estimation – work flow view
MVC Points Methodology - Elements
Guidelines to identify
Models, View and
Controllers from Use
cases
Guidelines to classify
M,V and Cs into
simple, medium and
complex categories
Effort norms for
coding and unit testing
the Models, Views
and Controllers
Guidelines to
arrive at
overall effort
U
S
E
C
A
S
E
S
MVC Points – a new estimation methodology for web applications
PML 2005 Nagaraja Gundappa, Wipro Technologies 7
6. Multiply the effort for CUT by 2.5 to get the life cycle effort (Reasons explained in later sections)
7. The above steps cover typically 90% of the functionality. There will be miscellaneous work items
that cannot be modeled through the MVC. Use plain work break down structure and estimate the
effort based on experience.
8. Add buffer and project management effort to the above to get the total effort for the project.
(2.3) Using the methodology
This section describes the implementation of each step in detail. J2EE terminology has been used wherever
applicable for ease of reading and it should be noted that the same steps are equally relevant for .Net
technology as well.
Step 1 - Identifying the use cases for the application
The first step in estimation using the MVC Points methodology is to identify the use cases. It is sufficient
to identify the title of the use case and it is not necessary to go into the details although it is beneficial to
have more details. These use cases form the basis for identifying the models, views and controllers
(Referred to as MVC Points in rest of the paper) that will implement the use case.
It has been found in our experience that, for the estimation carried out at a proposal stage, where only a
high level description of the application is available, it will still be possible to identify the use cases for the
application at a title level. Experience has also shown that estimating the MVC Points based on use case
titles has been effective even though having detailed use cases can make the estimation more accurate.
Step 2 - Identify the Models, Views and Controllers For each use case, visualize the scenario getting enacted in the to-be-implemented system. One should ask
as to what type of UI will be needed (if needed) and how many? This step will yield the number of views
(JSPs). Secondly, one should visualize the control flow as well as transaction flow from GUI to the data
source and identify how many models (EJBs) and controllers (Servlets) will be required to implement this
use case. In an object oriented methodology, since we assume that the data design stems out of class
design, the effort to design the data model is accounted for in the effort to develop the Model itself.
Following are some tips to identify the MVCs:
Group the CRUDL (Create, Read, Update, Delete and List) transactions of the same entity into a
single use case. Each such unique use case will have common GUI. For instance add user, update
user, query user, delete user and list users transactions will be a part of the same use case and will
have either a single user screen or a main user screen and few small sub screens depending on the
complexity of the use case.
Deciding how many controllers are needed per use case is tricky. While on one hand, each view-
model combination can have a controller each, on the other extreme, there are implementations
where an entire application has only one controller. One needs to use OOSE (Object Oriented
Software Engineering) best practices and guidelines to resolve this. One of the OOSE guidelines
is to have an optimum number of attributes and methods in a class. Too many attributes and
methods in a class makes it un maintainable. Typically, a class should not have more than 15
methods and one method should not have more than 200 lines of code. Based on this guidelines,
one can have one controller for each view or one controller for multiple views ensuring that the
controller is not too large.
The effort to design and develop the model accounts for data design as well. However, some of
the administrative effort such as database scripts written for archival etc. should be accounted for
separately, outside the MVC model. Experience shows that about 90% of the effort can be
estimated using the MVC model and there will be certain miscellaneous 10% requirements that
have to be estimated separately using plain WBS model. The model includes the EJBs and the
helper classes also.
External interfaces that the EJB connects to do not have to be counted separately as these are
accounted for in the complexity factor.
Helper classes for EJBs are accounted for as part of the EJB. One Model is equivalent to one EJB.
MVC Points – a new estimation methodology for web applications
PML 2005 Nagaraja Gundappa, Wipro Technologies 8
Step 3 - Eliminate duplicates
More than one use case can access the same model, view or controller. Therefore while counting them for
a usecase give them a suggestive name and eliminate redundant counting of the same models, views and
controllers.
Step 4 - Classify the identified units as simple, medium or complex
Each model, view and controller should be classified as simple, medium or complex based on the richness
of functionality required to support it. A view is classified based on the following parameters:
No. of data display and control elements on the screen
Type of formatting required for the page
Amount of validation logic to be implemented in the GUI itself
A controller is classified based on the following parameters:
No. operations that the controller invokes on the model per request from the view
Complexity of the control logic such as determining what operations to invoke depending on the
results returned by the model.
Amount of functionality implemented in the controller such as storing session and state
information, maintenance of a cache etc.
A model is classified based on the following parameters:
Complexity of the business logic
Diversity of data sources that the model maintains
Complexity of the persistence mechanism used.
One should visualize the realization of a use case from end-to-end and estimate the factors influencing the
complexity and accordingly classify the models, views and controllers. Non-functional requirements
translate into complexity factors. A sample of the complexity indicators and indicative effort norms are
listed in Appendix A. Detailed complexity indicators are contained in the MVC Points manual.
Step 5 - Determining the effort for coding and unit testing
The identified and classified MVC Points are multiplied by their corresponding effort norms and added.
The effort norm is the effort in person days required to code (implement) and unit test a given MVC Point.
Following should be noted about the effort norm:
The effort norm is defined only for the coding and unit testing phase as this is the only phase in
which tasks are performed on a per MVC Point basis. That is, coding and unit testing phase
essentially consists of atomic activities to code and unit test the models, views and controllers and
nothing else. Hence, it is easier to validate the effort norm by comparing it with the actual effort
after the implementation. Other phases in the life cycle include work at an application level as
well and hence it is difficult to validate the effort norm per MVC Point. In other words, if the
effort norm defined for the models, views and controllers include the complete life cycle, then it
will be difficult to validate the same later on.
The effort norm is defined for each organization and will include the environmental and
productivity factors. That is, it is assumed that the environmental factors across an organization
are more or less similar.
The complexity factors such as those arising out of non functional requirements get factored into
the complexity indicators themselves.
Following formula summarizes the effort determination:
CUT Effort = ∑ SM * ESM + ∑ MM * EMM + ∑ CM * ECM + ∑ SC * ESC +
∑ MC * EMC + ∑ CC * ECC + ∑ SV * ESV + ∑ MV * EMV + ∑ CV * ECV
Where,
CUT = Coding and Unit Testing
SM = Number of Simple Models
ESM = Effort norm for coding and unit testing a Simple Model
MVC Points – a new estimation methodology for web applications
PML 2005 Nagaraja Gundappa, Wipro Technologies 9
MM = Number of Medium Models
EMM = Effort norm for coding and unit testing a Medium Model
CM = Number of Complex Models
ECM = Effort norm for coding and unit testing a Complex Model
SC = Number of Simple Controllers
ESC = Effort norm for coding and unit testing a Simple Controller
MC = Number of Medium Controllers
EMC = Effort norm for coding and unit testing a Medium Controller
CC = Number of Complex Controllers
ECC = Effort norm for coding and unit testing a Complex Controller
SV = Number of Simple Views
ESV = Effort norm for coding and unit testing a Simple View
MV = Number of Medium Views
EMV = Effort norm for coding and unit testing a Medium View
CV = Number of Complex Views
ECV = Effort norm for coding and unit testing a Complex View
Step 6 - Determining the overall life cycle effort
Multiply the total CUT effort by 2.5 to get the complete life cycle effort. In a healthy project, coding and
unit testing should consume about 40% of the overall application development effort. This is an industry
norm and has been adopted in many organization. Hence if we estimate the effort for coding and unit
testing, we are accounting for 40% of the overall effort and hence a multiplication factor of 2.5 will yield
the overall life cycle effort.
Step 7 - Estimating non-MVC effort
It is observed that even in the strictest object oriented applications, not all the code developed can be
brought under the umbrella of MVC pattern. For instance, database administrative effort such as writing
scripts for archiving can be accounted for in the MVC pattern. Or development of bridges to access
different technologies cannot easily be accounted against a use case either as model or view or controller.
Experience shows that such work accounts for less than 10% of the application development effort and
should be estimated using a plain work-break-down structure with experience-based estimation of effort.
Step 8 - Completing the effort estimation
The previous step would yield the effort needed for complete life cycle development. To this, we should
add the project management effort and buffers to arrive at the total project effort. It is a common practice
nowadays to allocate about 5% to 10% effort as a buffer to account for changes in requirements as well as
effort unaccounted for. Project management effort is assumed to be around 10% of the overall lifecycle
development effort. This step completes the project effort estimation and this input can be used further for
arriving at the cost.
(2.4) Illustration
In this section, the MVC Points methodology is illustrated for a use case.
Step 1 – List the use cases – This illustration contains estimation for one use case listed in the appendix B
Step 2 – Estimate the number of MVC Units –
Views:
Since, the use case is detailed, instead of estimating, we can actually identify the views required. There are
4 views–
1. List of authorized users screen
2. Add / Edit worksheet (It is assumed that the same screen is reused for Add and Edit transactions)
3. Delete user screen
4. Search screen
MVC Points – a new estimation methodology for web applications
PML 2005 Nagaraja Gundappa, Wipro Technologies 10
Please note that main screen is not specific to this use case and has been left out. Same way, error screens
are reusable across the application and would be accounted for when estimating for the whole application.
For the purpose of this illustration, error screens have been left out.
Controllers:
One controller for data retrieval and invoking operations on the model
Models:
Since, the amount of data is limited (about 13 elements) and operations are also not complex, one EJB, say
User would be sufficient. Those familiar with data oriented thinking can visualize that there would be one
table called User or at most one User master table and another child access types table, but both operated
upon by the same model. So, there is only one model.
Step 3 – Eliminate duplicates
If the same MVC Units are being counted for different use cases, then they should be counted only once.
Since, this illustration contains only one use case, there are no duplicates.
Step 4 – Classify the MVC units into simple, medium and complex
Views:
List of authorized users screen – simple, as it has less than 10 data display elements and submit points. No
complex validations or page formatting is involved.
Add / Edit user worksheet – Medium, as it has more than 10 data display elements and submit points (about
13 data elements including a list). No complex validations or page formatting is involved
Delete user screen – Simple, as it has few display elements and no complex validation or formatting.
Search screen – Simple, as it has few display elements.
Controller:
Simple, as it needs only data retrieval and one operation invocation per request.
Model
The User EJB has
- Few methods and attributes – apart from CRUDL (Create, Read, Update, Delete, List)
methods, there would be perhaps two or three extra methods for different types of search.
If there were no additional complexities, this would have been a simple EJB.
- Not so simple, data updating logic – in the view side, if more than one user was selected
for Edit, the data in the Edit worksheet would have to be applied to all users.
- Since, the number of users are expected to be high caching would be involved.
- Deletion refers to another EJB (MyQueue).
Therefore, it is of medium complexity.
Step 5 – Calculate the coding and unit testing effort
According to the indicative norms provided in Appendix A, the coding and unit testing effort for this use
case is 19 person days:
CUT Effort Simple Medium Complex Total
Views 3 x 2 pd = 6 pd 1 x 4 pd = 4 pd 0 10 pd
Controllers 1 x 2 pd = 2 pd 0 0 2 pd
Models 0 1 x 7 pd = 7 pd 0 7 pd
Total CUT effort 19 pd
Step 6 – Calculate the life cycle effort
The life cycle effort for this use case would 19 * 2.5 = 47.5 pd
MVC Points – a new estimation methodology for web applications
PML 2005 Nagaraja Gundappa, Wipro Technologies 11
Step 7 – Add non MVC effort
Typically, those deliverables that do not come under the purview of MVC should be estimated separately
and added to the effort from previous step. In this case, the script to create the table schema for user table
would be a non-MVC effort. Experience based estimate for this work is around ½ day.
Therefore, total life cycle effort = 47.5 + 0.5 = 48 person days.
Step 8 – Add buffer and project management effort
Assuming a buffer of 10% and project management effort of 10%, the total project effort would be
48 + 4.8 + 4.8 = 57.6 person days.
(3) Validating the MVC Points methodology
After finalizing the theoretical model, this methodology has been applied and validated. It has been used at
pre-sale level including for deals that have been one. Large scale usage of this methodology at Wipro
Technologies has just started and the initial results are encouraging and are shared below:
(3.1) Re-estimation of a completed project for a publishing company:
In one of the applications that was in it‟s acceptance stage, a new team member was given the initial
requirement specification and the guidelines of this methodology and was asked to estimate the effort for
one of the modules. Results of re-estimation carried out was compared with the original estimates and
actual effort and significant improvement was found. The results are as follows:
Effort originally estimated by the team = 11 person months
Actual effort = 16 person months
Effort re-estimated using the MVC Points methodology = 18 person months.
The deviation between original estimate and actual effort is around 31.25%, whereas the deviation between
the MVC Points-based re-estimate and actual effort is 12.5%
(3.2) Re-estimation of a completed project for a manufacturing company:
This exercise was similar to the previous one, but it was tried for two modules and the results are as
follows:
Module 1:
Effort originally estimated by the team = 120 person days
Actual effort = 180 person days
Effort re-estimated using the MVC Points methodology = 198 person days.
Module 2:
Effort originally estimated by the team = 140 person days
Actual effort = 180 person days
Effort re-estimated using the MVC Points methodology = 169 person days
In this application, the original estimates had a deviation of 33% and 22% respectively, whereas the re-
estimation using this methodology had a deviation of 10% and 6% respectively.
(3.3) Comparison of estimation and actual effort for a retail company -
In this case, the original estimates were prepared using the MVC Points methodology and was compared to
the actual effort after the completion of project.
Estimated effort = 756 person days
Actual effort = 786 person days
MVC Points – a new estimation methodology for web applications
PML 2005 Nagaraja Gundappa, Wipro Technologies 12
The deviation between the estimation and actual effort is - 4%
(4) Merits and Demerits
(4.1) Merits
1. Maps to object oriented paradigm – Since, the application is visualized in terms of use cases
and eventually the models, views and controllers, the visualization is in line with the object
oriented paradigm.
2. Intuitive to use – The work-break-down units are not abstract. Rather, the work-break-down
units are real and what are going to get developed eventually. Hence, it is easier for the developer
to visualize and enumerate.
3. Easy to validate effort norms – Since, the effort norm is defined in terms of effort required for
coding and unit testing actual deliverables, it is easy to validate the effort norms based on actual
experience.
4. The methodology is open and extendable – If there is a complexity factor missing, it can easily
be added or a new category such as „very complex‟ can be created without too much of process
overheads. This is unlike in other methodologies where any additions to the complexity factor
would have an impact on the empirical adjustment factors and weights and assigning weights and
adjustment factors to the new complexity factor is not possible for users.
(4.2) Demerits
1. Limited applicability - Applicability of the methodology is limited to specific technologies
(5) Adapting the MVC Points methodology in organizations
When an organization starts using the MVC Points methodology, it would typically be done by piloting
with a few projects and then adapting it at organization level. As will be explained later in this section, the
paradigm behind MVC Points methodology can be applied to develop new estimation methodologies.
(5.1) Refining the complexity indicators
The guidelines to classify the MVCs and the effort norms are directly derived from the experience of
developers. When the methodology is taken to a new organization, there would always be scope for minor
variations in these guidelines to classify MVCs based on the way in which developers visualize the
application. So, minor refinement and extension of the complexity indicators should be allowed.
For instance, in one of the pilot projects that tried this methodology, the team felt that there are few GUIs
that are more complex than the complexity indicated by guidelines for “Complex” JSPs. In this project,
they defined another category called “Very complex” and placed these few GUIs in this category. The
team also defined the norm for coding and unit testing effort for this category. This is the benefit of
having an open and extensible methodology.
(5.2) Determining effort norms
Software development productivity can have high level of variations due to various factors including work
environment. However, the MVC Points methodology eliminates these variations because the effort norms
are specific to a technology and specific to an organization. That is, the approximation that is made is that
the work environment related factors are same across an organization and minor productivity variations
among different sub groups are ignored. The second factor to be noted w.r.t. productivity norms is that
practitioners also tend to centre their estimates around norms if available.
Therefore when an organization adapts this methodology, the effort norms are determined based on
experience while piloting the methodology. When the effort norms are standardized, rest of the
organization would centre around this norm even if their experience is slightly different.
(5.3) Extending the paradigm to develop other similar models
MVC Points – a new estimation methodology for web applications
PML 2005 Nagaraja Gundappa, Wipro Technologies 13
Following are the main characteristics of the MVC Points model that can be extended to develop other
estimation models:
1. Work-break-down units evolving out of standard deliverables of a given technology are
standardized into size units
2. Openness and expendability – develop initial guidelines and leave it open to account for additional
complexities not envisaged earlier.
For instance, Enterprise application integration (EAI) applications do not follow standard development
cycle or methodology and hence the currently prevalent estimation methodologies cannot be used. Same
holds true for package implementations or data migration projects. For these type of applications, it would
not be too difficult to develop new estimation methodologies called say, integration points or migration
points.
EAI applications are interface intensive and will consist of many adaptors / connectors, bridges and so on.
So, an interface unit can be a fundamental unit of EAI estimation with complexities being defined by
Quantity and complexity of data flowing through the interface
Complexity of processing
A similar approach can be used to arrive at estimation methodologies for data migration projects as well.
Here, a data point can be a fundamental unit with complexities defined by
Quantity and complexity of data in that point (For instance a table)
Complexity of processing involved in migrating from source to destination.
(6) Conclusion The current paradigm in estimation methodologies is that the methodologies are generic, technology-
independent and involves a degree of empirical ness. When technology and development environment
changes it becomes difficult to use the methodologies as-is for the new environment. Due to a degree of
empiricalness involved, the current methodologies are „closed‟ as it is not possible for users to modify or
extend the adjustment factors in the methodology. This paper has introduced a new paradigm in estimation
methodologies characterized by openness and specificity to application types. The new estimation
methodology „MVC Points‟ fits into this paradigm and is the topic of this paper. The initial results of using
this methodology are encouraging and it is tending to be widely used. The paradigm introduced with this
methodology can be used to develop new estimation methodologies custom made to technology and
application type such as enterprise application integration and data migration.
MVC Points – a new estimation methodology for web applications
PML 2005 Nagaraja Gundappa, Wipro Technologies 14
References
1. “Design Patterns”, Eric Gamma et al., Addison-Wesley professional computing series
2. Function Point Counting Practices Manual, www.ifpug.org/publications/manual.htm
3. “Estimation using use case points”, Damondaran, Aqua Netta,
http://www.bfpug.com.br/Artigos/UCP/Damodaran-estimation_Using_Use_Case_Points.pdf.
Biography of the author
Master of Technology in Computer Science and Engineering, University of Mysore
Total IT industry experience of 14 years
Current position – Head, Execution Excellence group, Talent Transformation
Positions held before include:
o Project Manager
o On-site manager
o Lead Architect
o Program Manager
o Head, J2EE Centre of Excellence
Career highlights:
o Have published several papers including one in IEEE
o Managed a project that was awarded “Best application utilizing reusable components” at
Object World west 97 – a conference conducted by OMG (Object Management Group)
MVC Points – a new estimation methodology for web applications
PML 2005 Nagaraja Gundappa, Wipro Technologies 15
Appendix A – Complexity indicators and effort norms
The table below lists sample guidelines to classify the MVC Points as simple, medium and complex. The
table also lists the effort required to code and unit test the same. It should be noted here that the guidelines
are only sample and the MVC Points manual contains detailed guidelines. The effort norms provided
below are only indicative and are NOT the ACTUAL norms of any organization including Wipro
Technologies.
MVC Unit Complexity level indicators and effort norms
Simple Medium Complex
Indicator Norm Indicator Norm Indicator Norm
View
(JSP)
Few Data entry and
display elements
and submit points
(< 10)
2 PD
More data entry,
display elements and
submit points ( < 20
)
Page breaks, display
logic, Simple usage
of DHTML
4 PD
Complex Validations,
Complex Formatting,
Complex page layout,
Complex display logic
8 PD
Controller
(Servlet)
1-2 operations /
request.
Retrieval and
passing of data
elements
2 PD
More operations per
request,
Session information
storing;
Operations based on
servlet session
information
4 PD
Keeping track of
processes across pages;
Request routing based
on intermediate
operations
6 PD
Model
(EJB)
Simple Interface
(Few methods and
parameters)
Simple data access,
data logic (no
caching)
3 PD
Multiple data
sources;
Complex data
retrieval and updation
logic;
Caching
7 PD
Multiple data sources;
involves tables and
other sources; connects
to external interfaces
14 PD
MVC Points – a new estimation methodology for web applications
PML 2005 Nagaraja Gundappa, Wipro Technologies 16
Appendix B – Sample Use case – user administration This section contains a normal flow and alternate flows for a user administration use case for a
work-flow system.
Core Flow of Events – Adding a new user
Administrator: System:
1. Administrator selects system administration area
of Approval system.
2. System displays System Administration menu. Menu
items are: AUTHORIZED USERS and USER ACCESS
TYPES.
3. Administrator selects AUTHORIZED USERS.
4. System displays list of authorized users. With options to
ADD, EDIT, DELETE, SEARCH and CANCEL.
5. Administrator selects ADD new user. (See
alternate flow to edit or delete user from authorized
user list.)
6. System displays new user worksheet with the fields:
last name (required)
first name (required)
middle initial (optional)
login (required) – 6 characters
password (required) – 8 characters
e-mail address (required)
notes (optional)
list of access types: All, Approvals Manager,
Approvals Coordinator, Approvals Administrative
Assistant, Reporting Manager
Date added (system sets when new user is created)
This field is not editable
Date modified (system sets when user is edited) This
field cannot be changed by the administrator.
7. Administrator enters name, login, password, e-
mail address and notes into worksheet.
Administrator selects access type(s) user is to be.
See business rules for list of access types and
functions each can perform.
8. System validates user (are manadatory fields filled in, are
login and password formatted properly?) If new user record
is OK, system saves information for new user and displays
list of authorized users with new user added.
6a. If new user has not been set-up properly, system
displays an error message and returns to step #5.
Alternative Flows
EDIT USER RECORD (From step #4 in core flow)
Administrator: System:
4. System displays list of authorized users. With options to
ADD, EDIT, DELETE, SEARCH and CANCEL.
5. Administrator selects name(s) of user(s) to be
modified. Clicks EDIT.
MVC Points – a new estimation methodology for web applications
PML 2005 Nagaraja Gundappa, Wipro Technologies 17
Administrator: System:
6. System displays user worksheet for selected user. If more
than one user has been selected, the system will display
worksheet for first selected user.
7. Administrator keys in new information and
SAVES.
8. System saves changes (validates as in core flow) and
displays authorized user list.
8a. If administrator has chosen more than one user to edit,
system will ask, “Do you want to change all selected users?
YES/NO” the new information will be applied to all selected
users.
9a. Administrator selects YES.
9b. Administrator selects NO.
10a. System saves changes (validates as in core flow) and
displays authorized user list.
10b. System returns to step #4.
DELETE USER RECORD (From step #4 in core flow)
Administrator: System:
4. System displays list of authorized users. With options to
ADD, EDIT, DELETE, SEARCH and CANCEL.
5. Administrator selects name(s) of user(s) to be
deleted. Clicks on DELETE.
6. System asks, “Do you really want to delete user name(s)?
YES/NO”
7. Administrator selects YES.
7a. Administrator selects NO.
8. If YES, system will run validation to see if user has
outstanding work in his or her “My Edit” queue. If none is
found, system deletes user and returns to authorized user list
with user gone. If work is found, system displays an error
message and returns the administrator to the authorized user
list. User cannot be deleted with work in “My Edit” queue.
8a. If NO, system returns to authorized user list with user
still there.
SEARCH FOR USER (From step #4 in core flow)
Administrator: System:
5. System displays list of authorized users. With options to
ADD, EDIT, DELETE, SEARCH and CANCEL.
5. Administrator clicks on SEARCH.
6. System displays search screen.
7. Administrator enters search text, selects search
type: KEYWORD or BROWSE or ACCESS TYPE,
and then selects SEARCH or CANCEL.
8. System searches per administrator‟s request. A keyword
search searches both first and last name fields and returns list
of all users matching search specification. A browse search
searches the last name field and will take administrator to
place in list of authorized users matching search term most
MVC Points – a new estimation methodology for web applications
PML 2005 Nagaraja Gundappa, Wipro Technologies 18
Administrator: System:
closely, displaying names falling before and after the browse
term alphabetically. An access type search will return a list
of all authorized users of the specified access type.
9. Administrator may use search results to add, edit
or delete users as detailed above.