Requirements Analysis (RA): An Analytical Approach for
Selecting a Software Process Models
Manish Sharma
1and Santosh Kumar
2ABSTRACT
In the software industry, a large number of projects fail and billions of dollars are spent on failed software projects. Lacks of poor selection process of software development life cycle (SDLC) models is some of the top reason of such failure. By selecting right software process model a better and high quality product can be found within budget and time. In this paper, an approach is proposed to select an appropriate SDLC model based on software requirement. In this paper, a comparison approach of SDLC process is introduced, which is based on requirements analysis and then requirements are classified. Paper described about comparison graph of SDLC models, and better selection process of SDLC models.
INTRODUCTION
“Software Process Model is an abstract representation of a software process”1. Each process model represents a process from particular perspective, and thus provides only partial information about that process1. Software process selection is an approach or method or both by which software process model efficiently selected depends upon the given requirements and give better result rather than a normal selection process. The requirements consist of questions related to the thing that have been requested by the user for the project. They are sometimes termed as functions or features of the system that will be provided by the project.
The organization of paper is alienated as section II describe about the definition of SDLC models, which are explained from the requirements point of view only, in section III a comparison based evaluation of SDLC models using 3D- bar graphs, section IV defines a comparison table and finally section V depicts the future work.
1 Graphic Era University, Dehradun, Uttarkhand, India: [email protected]. 2 Graphic Era University, Dehradun, Uttarkhand, India: [email protected].
Computing, Communication and Networking
Publish by Global Vision Publishing HouseNihar Ranjan Pande Deep Chandra Joshi
SOFTWARE PROCESS MODELS
Software process models are defined only in terms of requirements analysis phase of each model. Water Fall Model
The requirements gathering process is intensified and focused specifically on software. To understand the nature of the program(s) to be built, the software engineer (“analyst”) must understand the information domain for the software, as well as required function, behaviour, performance, and interface. Requirements for both the system and the software are documented and reviewed with the customer2.
The major weakness of the Waterfall Model is that after project requirements are gathered in the first phase, there is no formal way to make changes to the project as requirements change or more information becomes available to the project team because requirements almost always change during long development cycles, often the product that is implemented at the end of the process is obsolete as it goes into production8. The Waterfall Model is a poor choice for software development projects where requirements are not well-known or understood by the development team. It might not a good model for complex project or projects that take more than a few months to complete8.
Spiral Model
In response to the weaknesses and failures of the Waterfall SDLC Model, many new models were developed that add some form of iteration to the software development process. In the Spiral SDLC Model, the development team starts with a small set of requirements and goes through each development phase (except Installation and Maintenance) for those set of requirements8. Based on lesson learned from the initial iteration, the development team adds functionality for additional requirements in ever-increasing “spirals” until the application is ready for the Installation and Maintenance phase2,3.
RAD Model
If requirements are well understood and project scope is constrained, the rapid application development (RAD) process enables a development team to create a “fully functional system” within very short time periods (e.g., 60 to 90 days)2.
Incremental Model
The incremental model combines elements of the linear sequential model (applied repetitively) with the iterative philosophy of prototyping. The incremental model applies linear sequences in a staggered fashion as calendar time progresses. Each linear sequence produces a deliverable “increment” of the software when an incremental model is used; the first increment is often a core product2.
That is basic requirements are addressed, but many supplementary features (some known, others unknown) remain undelivered. The core product is used by the customer (or undergoes detailed review). As a result of use and/or evaluation, a plan is developed for the next increment. The plan addresses the modification of the core product to better meet the needs of the customer and the delivery of additional features and functionality3.
SDLC COMPARISON GRAPHS
Colour coding used in graphs as shown above figure 1 for every SDLC model. On Y axis requirement is measure in 0-10 rating. X axis represent the process models, first tower for water fall, second tower for spiral, third tower for RAD and fourth tower for incremental model respectively.
Water fall Model
Spiral Model
RAD
Incremental
Fig. 1: Colour Coding and Axis used in Graphs
Graphs are design on five requirements analysis: i. Requirement Simplicity;
ii. Requirements changes;
iii. Required delivery time of final product; iv. Required demonstration of first core product; v. Overall system complexity.
Table 1: Compression of Requirements with SDLC
Water fall Spiral RAD Incremental
Requirement simplicity 9 1 8 2
Requirements changes 1 9 1 2
Required delivery time of final product 9 2 1 3
Required demonstration of first core product 8 2 1 8
Overall system complexity 1 9 2 8
A) Are the requirement easily defined and / or well known? In Figure 2 requirements simplicity is the major selection criteria for SDLC section for developments. Water fall Model is best when requirements are simple.
9 1 8 2
SDLC Model
Requi
re
m
ent
S
im
pli
cit
y
B) Will the requirements change often in the cycle? In Figure 3 requirements change is the major selection criteria for SDLC section for developments. Spiral Model is best when requirements changes frequently. 1 9 1 2
SDLC Model
Re
qui
rem
ent
C
hanges
Fig. 3: Requirement Change Analysis
C) Is early functionality a requirement? In Figure 4 requirements is to developed a fully working final product time the major selection criteria for SDLC section for developments. Water fall model is best when delivery time is final and pre define. High rating of delivery time means that minimum fluctuation in delivery time for fully working model.
9 2 1 3
S D L C M o d e l
D
e
liv
er
y T
im
e
Fig. 4: Delivery Time Analysis
D) Is a requirement required to demonstrate capability? In Figure 5 requirements of fast demo system in a time is the major selection criteria for SDLC section for developments. Waterfall model and incremental models are best when demonstration time is final and pre define. High rating of demonstration time means that minimum fluctuation in demonstration time for first working demo system.
8 2 1 8
S D L C M o d e l
D
em
ons
tr
at
io
nT
im
e
Figure 5: Demonstration time analysis
Does the requirement indicate a complex system? In Figure 6 requirements complexity and requirement dependency are the major selection criteria for SDLC selection for developments. Spiral Model is best when system complexity is much.
1 9 2 8
S D L C M o d e l
S
yst
e
m
C
o
m
pl
e
xi
ty
Fig. 6: System Complexity Analysis
CONCLUSION TABLE
Table 2: Best SDLC Conclusion Based on Requirements
S. Requirements Analysis Conclusion Suggested Model
N.
1. Requirement Simplicity Water fall Model is best when requirements are simple Water fall 2. Requirements changes Spiral Model is best when requirements changes Spiral
frequently
3. Required delivery time Water fall Model is best when delivery time is final Water fall of final product and pre define.
4. Required demonstration of Water fall Model and incremental models are best Water fall and Incremental when demonstration time is final and pre define
first core product
FUTURE WORK
Which model is a purposed model based on working experience in software industry. In the future this model will be enhanced based on developer team, end user type, project type, software quality. Success of this model is depends on the survey which have done in future.
REFERENCES
1 Sommerville, Ian (2006). Software Engineering, 8th Edition, pp. 89.
2 Pressman, R.S. (2001). Software Engineering, A Practitioner’s Approach, 5th ed. New York: McGraw-Hill, pp. 26.
3 Boehm, B.W. (1988) A Spiral Model for Software Development andEnhancement, IEEE, IEEE Computer Society, vol. 21, issue 5, May, pp. 61 – 72.
4 Royce, W.W. (1970). Managing the Development of Large Software Systems: Concepts and Techniques, IEEE, IEEE Computer Society, August, pp. 1-9. Interscience, pp. 32.
5 Kumar, Dinesh and Saroj Hiranwal (2010). Performance Enhancement of Software Process Models, 2010 2nd International Conference on Software Technology and Engineering(ICSTE).
6 Martin, Robert H., A Comparison of Software Process Modelling Techniques. 7 http://en.wikipedia.org/wiki/Systems_Development_Life_Cycle