You are on page 1of 21

What software models are used in

Pakistani software houses?Which


are the best ones?
Authors:
Ravendhar Kumar Department of Computer Science
Fast-Nuces
Karachi,Pakistan
k142138@nu.edu.pk
Vinod Kumar Department of Computer Science
Fast-Nuces
Karachi,Pakistan
k142166@nu.edu.pk
Bilawal Shaikh 14k-2018 Department of Computer
Science
Fast-Nuces
Karachi,Pakistan
k142018@nu.edu.pk
Yousuf Department of Computer Science
Fast-Nuces
Karachi,Pakistan
k142234@nu.edu.pk

supervised by:
Miss Nazia Imam Lecturer
Department of Computer Science
Fast-Nuces
Karachi,Pakistan
nazia.imam@nu.edu.pk
May 5, 2017
Contents
i Abstract 2

ii Executive Summary 2

1 Introduction 2
1.1 Review of related literature . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Statement of the problem . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Objectives of the study . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 Research Questions . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.5 Significance of the study . . . . . . . . . . . . . . . . . . . . . . . 5
1.6 Limitations and delimitations of the study . . . . . . . . . . . . 5
1.7 Research Methodology . . . . . . . . . . . . . . . . . . . . . . . . 5
1.8 Sampling Technique . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.9 Research Instrument . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.10 Ethical Consideration . . . . . . . . . . . . . . . . . . . . . . . . 6
1.11 Research Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2 Findings 6

3 Discussions 17

4 Conclusion 18

5 References 19

Appendix A:Collected data 20

1
i Abstract
From the development of small software tools to large systems softwares the
selection of a good software process model is of utmost importance. To study
the effectiveness of different process models we conducted a survey of Pak-
istani software houses and collected data from about 12 software houses. We
analyzed the data based on multiple variables by applying chi-square and like-
lihood test. It was found that about 8 models are in use of Pakistan industry.
These are, agile, scrum,TDD, incremental, iterative, XP, waterfall, prototype.
About 55% of use agile and scrum while the other models cover the remaining
45%. In short a agile based models turned out to be the most used and rapidly
growing, but they also have weaknesses[1] and in the end the selection of the
best process model depend on the software project being developed.

ii Executive Summary
This report provides a research on software models used for software qual-
ity assurance in Pakistani software houses. We use quantitative approach to
make research by making a survey questionnaire on different variables of a
software process model. The findings are that agile software process model
is used mostly in the software houses located in Karachi Pakistan but other
models also produce good results where they are used.
Models were evaluated and results show that different models are suitable
in different situations based on the criteria of the project you are developing.
Developers will find this research helpful as they would easily make the deci-
sion of which software process model should be used according to the type of
software to be created.
There are some recommendations for the software houses that are making
start-up
• Analyse the requirements of your project and conditions in which you
have to develop the software.
• Make a list of variables that you want to be good in your process model.
• Select the process model which best match your conditions.
There were some limitations in our project like we are conducting survey
from software houses located in Karachi only. Not too many software engineers
fill this form so that our research could be more productive than now.

1 Introduction
1.1 Review of related literature
There are many software process models used for software development and
each model has its limitations. The limitations of agile process were analyzed

2
which were published in September 2016.This research was done by Dan Turk,
Robert France and Denhard Rumpe[1]. The principles of Agile Alliance were
analyzed to understand the agile software process model and made a research
on its limitations. Six different limitations were found and eleven different
assumptions were made for the agile software process model which validates
some benefits of agile process models. It concludes that certain domains are
more amenable to agile development processes like Internet application do-
mains, in which there is significant time to market pressure and the costs of
upgrading to the next release are minimal. However, companies that develop
long-lasting, large complex systems may not be able to use agile processes in
their current form.

Software reuse improves the quality in software industry by implementing


V&V technique. Studies and surveys suggest that other quality enhancement
techniques like ad hoc, CBSE, MBSE, Product line, COTS will result in en-
hanced software quality and prove cost effective by implementing software
reuse approach[2]. Surveys are conducted to ensure software quality, Through
Verification and Validation technique. From users aspect it is easy to use, from
designers aspect it is easy to design. Nine different levels of analysis influenced
effect on the reuse success. Requirement specification, Design specification,
Respondent information, Reuse information, Reuse effectiveness information,
Results. Software Reuse effects on quality, Main focus of developers during
reuse. software reuse approaches combine effect better to enhance the quality,
efficiency, suitability, maintainability, and reduces the time and cost which is
a great benefit However the data collected is very small in to achieve better
understanding future researchers are suggested to enhance this research.

Software reuse improved the quality of software, this process contributed


to improved productivity, quality and dependability[3]. Current reuse tech-
niques focuses on the reuse of software artifact which grounded on anticipated
functionality whereas, the non-functional (quality) aspect are also important.
Development of a reuse program and the reuse process employed in that pro-
gram can benefit both to reduce risking factors and new system expansions. As
compared to non-reused a reused component produces low defect rate. In dif-
ferent viewpoint when a feature reused, the weaver should be able to apply the
aspect to target program according to dissimilar settings. Benefits resulted by
reuse are as under: firstly, blended problems disabled, secondly much flexibil-
ity achieved about what and when specifications should be reused and finally
the third one is that the developer did not have any need of deep knowledge
about full path of reusing objects.

The features and limitations of traditional models like waterfall, spiral, in-
cremental and iterative, rapid application development (RAD), and rational
unified process model were discussed by Ahmed Mateen, Muhammad Azeem,
and Mohammad Shafiq and they also proposed a new model called AZ model

3
for software development. They compared the traditional models with new
AZ model[4]. Traditional models cannot be used in every scenario because
they have some limitations of requirement gathering and early deployment.
The AZ model can be used in every scenario because of its four features. (1)
Parallel testing and code where implementation and testing of code runs in
parallel. (2) Feedback and iteration, in which feedback of client is received
and iterate the development process to meet the expected results for quality
assurance. (3) Prototyping to know the clear requirements of client. (4) Time
Boxing is a parameter which divides the total time in modules to deliver the
product on time. In this new model, the testing starts with coding and pro-
ceeds in parallel. To get clear and true requirement the prototype phase is
introduced in the model, moreover Feedback between phases and iterations on
the same phase is the main idea to produce high quality product. It concludes
that in future it is suggested to apply this model in different projects according
to its mechanical processes as well as simulate the architectural design for its
proper working and explanation with documentation so the diversity of model
will be described which will be beneficiary to project managers for decision
making throughout the development phases.

The purpose of the document written by Noopur Davis in December 2005


was to collect and present overview information about existing processes, stan-
dards, life cycle models, frameworks, and methodologies that support or could
support secure software development[5]. Content areas described include Ca-
pability Maturity Model Integration (CMMI) framework, the FAA-iCMM, the
Trusted CMM/Trusted Software Methodology (T-CMM/TSM), the Systems Se-
curity Engineering Capability Maturity Model(SSE-CMM), in addition to exist-
ing processes such as the Microsoft Trustworthy Computing Software Develop-
ment Lifecycle, the Team Software Process for Secure Software Development
(TSPsM-Secure), Correctness by Construction, Agile Methods, and the Com-
mon Criteria. Four SDLC focus areas are identified for secure development
life cycle. 1. Security Engineering Activities 2. Security Assurance Activi-
ties 3. Security Organizational and Project Management Activities 4. Security
Risk Identification and Management Activities. This technical note demon-
strates that although there are several processes and methodologies that could
support secure software development, very few are designed specifically to
address software security from the ground up. The notable exceptions are Mi-
crosoft’s Trustworthy Computing SDL and the SSE-CMM.

The study of mixed software models and the consequences of using them in
practice are extremely important in order to find out the best software process
model. A similar study was conducted on the mixing of agile and traditional
V model[6]. A survey of 20 questions was answered by many industry ex-
perts and it was found that 65% agreed that the mixed model will improve
software quality while 35% disagreed. The study shows that this new model
will increase quality, efficiency, maintainability and will reduce cost thereby

4
improving the overall development cycle.

1.2 Statement of the problem


Department of Research and Development in a software house

1.3 Objectives of the study


To compare different software process models in terms of different variables
like iterations, team work, time management, cost of project etc. to determine
the best software process models and the condition they are suitable for so that
software quality assurance becomes easy for software houses.

1.4 Research Questions


What software process models are Pakistani Software houses using for soft-
ware quality assurance, and which are the best ones?

1.5 Significance of the study


As different software process models are used for software quality assurance in
software house of Pakistan but each process model has its own pros and cons.
Some are cost efficient, some are time efficient and some of them are suitable
for small projects. The result of this study will be beneficial for software houses
to decide which process model is relevant according to the situation to carry
projects in a low risk manner.

1.6 Limitations and delimitations of the study


There were some limitations in our project like we are conducting survey from
software houses located in Karachi only. Not too many software engineers fill
this form so that our research could be more productive than now.

1.7 Research Methodology


The research would be quantitative one. The universities questionnaire will be
designed on the basis of different variables of different process models and sur-
vey would be taken from developers from different software houses of Karachi.

1.8 Sampling Technique


We will use random sampling. As our instrument is google form based so we
will send it to different software houses and the probability of each member of
population being selected is same.

5
1.9 Research Instrument
attached with document at he end.

1.10 Ethical Consideration


The data was collected through google forms and it was taken confidential. No
one can edit or see the responses of other people and it was also limited to
one response so that email of participants was required and data is not copied
though.

1.11 Research Procedure


Our research procedure includes online surveys conducted via google forms.

2 Findings
A survey was conducted through questionnaires from 27 software engineers
working in 12 different software houses of Karachi, Pakistan to determine the
best software process model currently being used for software quality assur-
ance in Pakistan. Eight different software process models were come into con-
sideration.

• Agile

• Scrum
• Test Driven Design
• Incremental

• Iterative
• Xtreme Programming.
• Waterfall
• Prototype

Models were evaluated on the basis of following variables.

• Time Efficient
• Cost Efficient

• Reliable for Large Projects


• Latest Technology
• Work Load

6
• Maintenance
• Requirement Change
• Collective Ownership
• User Interference

• Continuous Testing

The study shows that software houses are using one or more of the given soft-
ware process models for software quality assurance and most of the software
houses are found to be using the Agile and Scrum model. Below given charts
describe the findings.

7
Figure:1.1

Figure 1.1 shows the chart of the usage of different models in case of time effi-
ciency. It is shown that 9 out of 12 Agile users agree in which 3 users strongly
agree that Agile is Time Efficient. Xtreme Programming is preferred to be used
after agile as all users agree to use this. Users of models other than Agile and
Scrum are either uncertain or agree for their models.

8
Figure:1.2

Figure 1.2 shows the chart of the usage of different models in case of cost ef-
ficiency. It is shown that 6 out of 12 Agile users agree that Agile is cost effi-
cient whereas other half users of Agile shows their disagreement towards Ag-
ile. Scrum leads the competition here as 4 out of 5 scrum users find Scrum as
cost efficient software process model.

9
Figure:1.3

Figure 1.3 shows the chart of the usage of different models in case of model
is reliable for large projects. 8 out of 12 Agile users agree in which 5 strongly
agree that Agile is reliable for large projects whereas other 4 are uncertain in
which 1 is disagree. Other software process models 50% users are agreed and
50% disagree about use of their process model in large projects.

10
Figure:1.4

Figure 1.4 shows the chart of the usage of different models in case of latest
technology. It is shown that 3 out of 5 Scrum users agree in which 1 user
strongly agree that Scrum use latest technology. In the case of latest technology,
users of agile either disagreed or showed uncertainty about their model where
5 out of 12 users disagrees that agile use latest technology and 7 users are
uncertain. Users of models other than Agile and Scrum are either uncertain or
agree for their models.

11
Figure:1.5

Figure 1.5 shows the chart of the usage of different models in case of work load.
It is shown that 9 out of 12 Agile users agree in which 5 users strongly agree
that Agile users have a maintained work load on them. Scrum is preferred to
be used after agile as 3 out of 5 scrum users agrees to use scrum in case of work
load. Users of models other than Agile and Scrum are either uncertain or agree
for their models. User of waterfall disagree that it maintains work load.

12
Figure:1.5

Figure 1.6 shows the chart of the usage of different models in case of mainte-
nance after deployment. It is shown that 6 out of 12 Agile users agree in which
3 users strongly agree that Agile is good for maintenance. Scrum is preferred
to be used after agile as 3 out of 5 scrum users agree to use scrum. Users of
prototype strongly disagree that it is good for maintenance. Users of models
other than Agile, prototype and Scrum are either uncertain or agree for their
models.

13
Figure:1.7

Figure 1.7 shows the chart of the usage of different models in case of require-
ment change. It is shown that 8 out of 12 Agile users agree in which 4 users
strongly agree that Agile is good if there is change of requirement. Xtreme
Programming is preferred to be used after agile as all users agree to use this.
Users of models other than Agile and Scrum are either uncertain or agree for
their models.

14
Figure:1.8

Figure 1.8 shows the chart of the usage of different models in case of collec-
tive ownership. Users of prototype model strongly disagrees that their model
have collective ownership of all team members, users of iterative are uncer-
tain, scrum have a balanced graph and users of all other models agrees that
their model have collective ownership of team members.

15
Figure:1.9

Figure 1.9 shows the chart of the usage of different models in case of user
interference. It is shown that only user of incremental agrees that it supports
interference of user while implementing the project. Users of all other models
disagrees that their project support user interference with exception of 1 scrum
user and 2 agile users.

16
Figure:1.10

Figure 1.10 shows the chart of the usage of different models in case of contin-
uous testing. It is shown that 8 out of 12 Agile users agree in which 5 users
strongly agree that Agile continuously test the project. Test Driven Design is
preferred to be used after agile as all users agree to use this. Users of Scrum
and Xtreme programming also agrees about their model. Users of models other
than Agile, Xtreme programming, Test Driven Design and Scrum are either
uncertain or agree for their models.

3 Discussions
The findings show that, about 55% of the software houses are using Agile and
Scrum software process model for software quality assurance while Xtreme
programming, incremental, iterative and Test Driven design models are used
only of 45%. It is noticed that Agile leads the industry because of not only the
large population of users but also it is suitable in most of the situation. i.e.
time efficient, reliable for large Projects, workload, requirement change, and
collective ownership. Agile has its limitations[1] as it does not appreciate user
interference, training, and latest technology. Scrum is found to be most used
model after Agile and it works best under the conditions such as, cost efficient,

17
training, collective ownership. Scrum does not work well where considera-
tions are user interference. Test driven design model is found to be best under
situations like training, requirement change, and maintenance as all users of
Test Driven Design model agreed on its use on such situations. Interpreta-
tion for models like Xtreme Programming, Incremental, and Iterative can be
made collectively. These three models have similarities in various situations as
their user agrees that these models are time efficient, cost efficient, easy main-
tained, allow requirement change. They are not considered efficient to use in
case where concern is user interference, and use of latest technology. It can
be inferred that models like Waterfall and Prototype are obsolete now as there
is only one user found for them. Waterfall and Prototype models are seen to
be least used with minimum number of users as these are the most traditional
models. These two models do not seem to be fit in situations considered in
current world. Previous researchers also found that most of the model used is
Agile and it was also presented that use of mixed models will increase quality,
efficiency, maintainability and will reduce cost thereby improving the overall
development cycle. As all models are interpreted and discussed according to
various concerns it can be clearly seen that each model has its advantages and
limitations. Agile and scrum models are found to be most used but they do not
work well in some situations. Since each model is designed to give best output
on some specific conditions it cannot be inferred that which one is best and
which one should be used in all type of project. The use of software process
model depends on the type of project and the variables which were discussed
in research. Significance of the study is for the developers who will be cre-
ating new software. This study will help developers to find a clear insight of
software process models and what model they should adopt regarding to the
type of project they will be developing. This study and its results are limited
to the software houses in Karachi, Pakistan because of limited time and cost.
It would be appreciated that researchers expand this research by collecting
data from software houses located in other cities of Pakistan so the results can
become more concrete.

4 Conclusion
Software process model is structured set of activities required to develop a soft-
ware. This research was conducted to find that what software process models
are Pakistani Software houses using for software quality assurance, and which
are the best ones? A survey was conducted from software houses in Karachi,
Pakistan and it shows that software houses are using Agile, Scrum, iterative,
Incremental, Xtreme Programming, Waterfall, Prototype, and Test Driven De-
sign model. Models were evaluated and results show that different models are
suitable different situations based on the criteria of the project you are devel-
oping. Developers will find this research helpful as they would easily make
the decision of which software process model should be used according to the
type of software to be created.

18
Hello, here is some text without a meaning. This text should show what
a printed text will look like at this place. If you read this text, you will get
no information. Really? Is there no information? Is there a difference between
this text and some nonsense like “Huardest gefburn”? Kjift – not at all! A blind
text like this gives you information about the selected font, how the letters are
written and an impression of the look. This text should contain all letters of
the alphabet and it should be written in of the original language. There is no
need for special content, but the length of words should match the language.
Hello, here is some text without a meaning. This text should show what a
printed text will look like at this place. If you read this text, you will get
no information. Really? Is there no information? Is there a difference between
this text and some nonsense like “Huardest gefburn”? Kjift – not at all! A blind
text like this gives you information about the selected font, how the letters are
written and an impression of the look. This text should contain all letters of
the alphabet and it should be written in of the original language. There is no
need for special content, but the length of words should match the language.
Hello, here is some text without a meaning. This text should show what a
printed text will look like at this place. If you read this text, you will get
no information. Really? Is there no information? Is there a difference between
this text and some nonsense like “Huardest gefburn”? Kjift – not at all! A blind
text like this gives you information about the selected font, how the letters are
written and an impression of the look. This text should contain all letters of
the alphabet and it should be written in of the original language. There is no
need for special content, but the length of words should match the language.

5 References
[1] D. Turk, R. France, and B. Rumpe, “Limitations of agile software pro-
cesses,” arXiv preprint arXiv:1409.6600, 2014.
[2] A. Mateen, S. Kausar, and A. R. Sattar, “A software reuse approach and its
effect on software quality, an empirical study for the software industry,”
arXiv preprint arXiv:1702.00125, 2017.
[3] V. R. Basili and G. Caldiera, “Improve software quality by reusing knowl-
edge and experience,” MIT Sloan Management Review, vol. 37, no. 1, p. 55,
1995.
[4] A. Mateen, M. Azeem, and M. Shafiq, “Az model for software develop-
ment,” arXiv preprint arXiv:1612.08811, 2016.
[5] W. S. Humphrey and M. D. Konrad, “Motivation and process improve-
ment,” in Software Process Modeling, pp. 141–161, Springer, 2005.
[6] A. Mateen, M. Tabassum, and A. Rehan, “Combining agile with traditional
v model for enhancement of maturity in software development,” arXiv
preprint arXiv:1702.00126, 2017.

19
Appendix A:Collected data
the collected sheet is attached with document.

20

You might also like