You are on page 1of 16

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/261846036

Selection of appropriate software development life cycle using fuzzy logic

Article  in  Journal of Intelligent and Fuzzy Systems · May 2013


DOI: 10.3233/IFS-120686

CITATIONS READS

5 4,828

1 author:

Veysi Ozturk

6 PUBLICATIONS   9 CITATIONS   

SEE PROFILE

Some of the authors of this publication are also working on these related projects:

TRENSIM View project

All content following this page was uploaded by Veysi Ozturk on 30 January 2016.

The user has requested enhancement of the downloaded file.


Journal of Intelligent & Fuzzy Systems 25 (2013) 797–810 797
DOI:10.3233/IFS-120686
IOS Press

Selection of appropriate software


development life cycle using fuzzy logic
Veysi Öztürk∗
TÜBITAK BILGEM Institute of Information Technologies (BTE), Gebze, Kocaeli, Turkey

Abstract. Selection of appropriate Software Development Life Cycle(s) can increase projects success. Depending on the selected
SDLC (Software Development Life Cycle), one can decrease development time/cost, minimize overhead and risk exposure,
manage uncertainty, improve quality, promote client relations, and provide better project tracking and control. Despite the benefits
of using suitable SDLC(s), it is generally difficult to select the most appropriate one. There is not enough information in the
literature about the criteria and how to take them into account to select appropriate SDLC(s). Frequently used SDLCs and their
comparative properties were elicited from literature, Internet and experts according to the criteria to select appropriate SDLC(s).
A Fuzzy Logic (FL) system was developed according to the elicited knowledge about the criteria and their affect on selecting
suitable SDLCs in various cases. Fuzzy input/output variables, membership functions and fuzzy rules were defined and generated
according to the elicited knowledge. The FL system was tested for various inputs and improved according to the test results.

Keywords: Software development life cycle, SDLC, fuzzy logic, software life cycle models, waterfall, spiral, iterative, incremental,
agile, prototyping

1. Introduction There is little literature to guide developers and


managers to make those choices. Software engineer-
There are many factors affecting success of software ing books and the literature generally give information
projects. These include the capability and leadership about various SDLCs and discuss the alternatives, but
of the project managers, the skill set of the software offer poor advice on direct comparison amongst each
developers, the availability of project management, other [3].
requirement management, the computing environment, Selecting the appropriate SDLC can increase the
the complexity of the problem domain, the available probability of project success. Thus, it is very important
resources, and the Software Development Life Cycle to research on SDLCs prior to starting the development
(SDLC) being employed [1]. process and making a decision for what SDLCs to select
Many SDLCs have been developed to define the [4].
phases and activities in software development projects. A wide variety of SDLCs have evolved over the
Comparison of SDLCs and selecting the most appropri- years, each with its own strengths and weaknesses. One
ate one is generally difficult. “Selecting an appropriate SDLC is not necessarily suitable for all projects. Each
SDLC model is a complex and a challenging task, which of the available SDLCs is best suited to specific kinds
requires not only broad theoretical knowledge, but also of projects, based on various technical, organizational,
consultation with experienced expert managers” [2]. project and team considerations [5]. Depending on the
selected SDLC(s), one can decrease development time,
∗ Corresponding author.Veysi Öztürk, TÜBITAK BILGEM Insti-
minimize overhead and risk exposure, improve qual-
tute of Information Technologies (BTE), Gebze, Kocaeli, 41470 ity, promote client relations, better project tracking and
Turkey. E-mail: veysi.ozturk@tubitak.gov.tr. control [6].

1064-1246/13/$27.50 © 2013 – IOS Press and the authors. All rights reserved
798 V. Öztürk / Selection of appropriate software development life cycle

Standish Group identified that a formal methodol- – Any reasonable number of inputs can be processed
ogy was used in 46% of successful projects compared with the rule base operations, therefore numerous
to 30% of challenged and failed projects. According outputs can be generated [13].
to that research, the use of formal methodology in a – The same FL model (the membership functions
project can increase the chance of success by about and rules) can be used throughout the SDLC pro-
16% (46%–30%) [7]. cess by changing the levels of precision as required
There are a lot of difficulties that hinder the selection [14].
of an appropriate SDLC. Some of them are as follows; – FL system can be updated easily as new informa-
tion or knowledge is elicited.
– There are a lot of SDLCs in literature and
in industry which have their own advan- In this study, it is aimed to compare important
tages/disadvantages and strengths/weakness. properties of frequently used SDLCs and develop a
– There is no best SDLC for all situations. SDLCs Fuzzy Logic System to help project managers and
have been designed to meet the needs of certain software/system engineers for selecting appropriate
conditions, certain type of software and certain SDLC(s). This study focuses on the following main
type of organizations [8]. areas;
– Some SDLCs are marketed as products and ser-
vices, and therefore come with glaring marketing – Frequently used SDLCs and their comparative
material that may be hiding their true applicability properties,
to one’s situation [8]. – The criteria to select appropriate SDLC(s),
– Selection of a software development methodol- – The FL system developed to help project managers
ogy is highly driven by many factors (e.g. human and software developers for selecting appropriate
factors, technological factors, application domain, SDLC(s),
etc.) [9]. – Examples of SDLC selections for various inputs.
– There are uncertainties in the early phases of
projects. Note that, how to use SDLCs in projects is not the
– Information about SDLCs is scattered around in focus of this study. The formalism and usage of differ-
different sources. ent SDLCs are given in many papers, books and some
references of this study.
Fuzzy Logic (FL) can provide the following benefits
for selection of appropriate SDLCs;

– FL converts complex problems into simpler ones 2. Software development life cycles
using approximate reasoning. Thus, one can effec-
tively use his/her knowledge to describe a system’s 2.1. Software development life cycle definitions
behaviour [10].
– A FL system can effectively model the uncertainty Software Development Life Cycle is a model that
and nonlinearity [10]. defines the sequence of phases and activities that
– “Rules can be used independent of the projects will/should take place during the software development.
because membership functions may be tuned In the literature, many definitions of “Software Devel-
according to project parameters without violating opment Life Cycle” were proposed and some of which
the rules” [11]. are given below. The following definitions also include
– FL system can work with incomplete information, information about properties of SDLCs;
especially at the early phases of projects.
– Decision making or human communication – “The sequence of different activities that take place
requires and involves during software develop- during software development” [15],
ment process and FL can be used to improve – “A model that describes all of the activities that go
software development processes and products into creating a software product”[16],
[12]. – “A series of stages in the development of an appli-
– Since FL control user defined rules which govern cation” [17],
the system, it may be modified easily to improve – “A descriptive or prescriptive characterization of
performance [13]. how software is or should be developed”[18],
V. Öztürk / Selection of appropriate software development life cycle 799

– “High-level definition of the phases that occur dur- – Encouraging systematic evaluation of options and
ing development” [19], opportunities [3],
– “A simplified representation of a software process, – Reducing development and maintenance costs due
presented from a specific perspective” [20], to the reasons given above [27].
– “Conceptual model used in project management
Some software development life cycles are more
that describes the stages involved in an information
frequently used than the others. In this study, water-
system development project, from an initial feasi-
fall, prototyping, agile, IID (Iterative and Incremental
bility study through maintenance of the completed
Development) and spiral SDLCs were taken into
application” [21],
account for SDLC selection. Some of above SDLC
– “Formalized development process that is used
(e.g. waterfall, iterative and IDD) is ancentor of many
when building software which starts when the soft-
SLDCs. The above selection and classification was
ware is conceived until the software is in use” [9].
done according to the information in many studies.
‘Software Process Model’, ‘Software Development Some of these references are [4, 5, 28–31].
Process’, ‘Software Life Cycle Models’, ‘Software Life Information about selected SDLCs and ad-hoc devel-
Cycle’, etc. are some synonyms of Software Develop- opment are in the next sections.
ment Life Cycle used in the literature.
Some people consider SDLC as a more general term, 2.3. Waterfall
whereas a software development process as a more
specific term. For example, there are many specific soft- In waterfall, development cycle progresses in succes-
ware development processes that ‘fit’ the spiral SDLC sive steps, one after the other. The cycle is composed
[22]. of phases such as requirement specification, software
design, integration, testing. Waterfall is generally pre-
ferred in large scale projects and in big companies.
2.2. Frequently used software development life According to Gartner reports, the waterfall approach
cycles is used 56% of the time when a formal development
approach is required [32].
The project management and/or development team Strengths and weakness of waterfall can be found in
must identify an appropriate SDLC for their project and [5, 32].
then adhere to it. Without using SDLCs, development of There are modified waterfall life cycles models
software products would not be in a systematic manner which try to correct the weaknesses of waterfall such
[23]. as [6];
SDLCs are used in projects for the following benefits
and reasons; – Sashimi model: suggesting stronger degree of over-
lap of phases.
– Understanding for ourselves and explaining to oth- – Waterfall with subprojects: suggesting to perform
ers the various steps that we must go through before some of waterfall phases in parallel.
completing a project [24], – Waterfall with risk reduction: putting a risk reduc-
– Providing a common language that allows the tion spiral at the top of waterfall.
project team, project sponsor(s), and others within
the organization to communicate more effectively 2.4. Iterative and Incremental Development (IID)
[25],
– Providing management with a set of points (mile- The concept of growing a system via iterations is
stones), that can be examined to determine the rate called Iterative and Incremental Development [31].
of progress of the project [24], The basic idea is to develop a system through
– Focusing on the tasks at the hand, instead of wor- repeated cycles (iterative) and in smaller portions at
rying about what to do next [25], a time (incremental), allowing developer to take advan-
– Highlighting key activities and their interdepen- tage of what was learned during the development of
dencies [19], earlier portions, or versions, of the system [28].
– Defining and focusing on roles and responsibilities In IID, the project is divided into small phases (iter-
[26], ations) in order to provide earlier feedback about the
– Managing uncertainty [3], software being developed. Each iteration gives valuable
800 V. Öztürk / Selection of appropriate software development life cycle

information to the customers and the project team for 2.7. Agile SDLCs
the next iteration. IID provides reducing project risks.
A lot of SDLCs are evolved from IID approach. In agile development, the project is divided into
In incremental development, each increment can several small tasks with short periods. In each itera-
have its own SDLC (for example, waterfall, itera- tion, a full development life cycle including planning,
tive, etc.) [33]. IID includes both iterative development requirements analysis, design, coding, unit testing, and
and incremental development. IID includes Rational acceptance testing is performed for completing each
Unified Process, evolutionary development, Microsoft task.
Solutions Framework, Open, Winwin spiral model, Agile development adheres to the following mani-
MBASE Spiral Model, etc. festo [36];

– Individuals and interactions over processes and


2.5. Prototyping tools
– Working software over comprehensive documen-
Prototyping promotes customer involvement in the tation
development of a project. In this SDLC, a part of the – Customer collaboration over contract negotiation
system is developed as a prototype and demonstrated – Responding to change over following a plan.
to the customer. Generally, two types of prototyping
Extreme Programming (XP), Scrum, Crystal
is used; evolutionary and throwaway. In evolutionary
Method, Agile Model Driven Development, Agile
prototyping, a new prototype of the other parts or the
Unified Process (AUP), Agile Data, Dynamic Systems
same part is developed according to the feedback from
Development Method (DSDM), Essential Unified
the customer. This process is continued until the cus-
Process (EssUP), Feature-Driven Development (FDD)
tomer is satisfied with it. Throwaway prototyping is
are a number of known agile SDLCs. See [37–39] for
generally continued until the customers’ requirements
more information about agile SDLCs.
are understood.
Strengths and weakness of prototyping can be found
in [5, 29]. 2.8. Ad-hoc development

Still many companies use ad-hoc development.


2.6. Spiral There is no standard solution or plan in ad-hoc devel-
opment. During the use of Ad-hoc Process Models,
Spiral development includes elements of both design “software process capability is unpredictable because
and prototyping, in an effort to combine advantages of the software process is constantly changed or modified
top-down and bottom-up concepts [34]. In this model, as the work progresses. Schedules, budgets, function-
activities are planned especially in order to reduce the ality, and product quality are generally unpredictable.
important risks. Performance depends on the capabilities of individu-
Firstly, a prototype or an initial system is developed. als and varies with their innate skills, knowledge, and
According the customers feedback, the system is devel- motivations.” [40]. Although ad-hoc development is not
oped repetitively as iterations. In each iteration analysis, advised as a formal method in projects, ad-hoc devel-
requirements, design, and testing phases are repeated as opment was not taken into account for comparative
steps similar to waterfall. purposes of SDLC selection in this study.
Each iteration of spiral contains four basic quadrants
[35]:
3. SDLC selection
1. Determine objectives, alternatives, and con-
straints of the iteration It is very important to select appropriate SDLC(s) for
2. Evaluate alternatives, identify and resolve risks software development with respect to the project needs.
3. Develop and verify deliverables from the iteration If we select an inappropriate SDLC(s) and deduce that
4. Plan the next iteration. our selection is wrong, then we must switch to another
one in consonance with our project needs.
More information can be found in [35]. Selecting an inappropriate SDLC can result in
V. Öztürk / Selection of appropriate software development life cycle 801

– Longer development time and increased costs [1], 3.2. SDLC selection criteria
– Missing tasks and inappropriate task ordering,
which undercuts project planning and efficiency The following criteria can be taken into consideration
[16], for selecting an appropriate SDLC for a project;
– Dissatisfaction of project’s stakeholders (i.e., cus-
tomers, upper managers, and project members),
– Functionality (the functional requirements of
– Risk exposure [41].
projects will be dynamic (changing) or static (non-
changing) throughout the life cycle), budget, time
3.1. SDLC selection methods horizon (short term versus long term) [42],
– Clarity of requirements [2],
The following methods/techniques are used for – Product and team size (number of developers),
SDLC selection: – Complexity of software or system,
– Developers and user’s experience (including expe-
a. Using ruled based techniques such as expert sys- rience in application domain), users’ ability to
tems [9]. express requirements, developers’ experience in
b. Dillman suggests a decision cube including three application domain and developers’ software engi-
criteria (Functionality (Dynamic or Static), Bud- neering experience [1],
get (low or high), Time Horizon (short or long)) – The knowledge and skill sets of the project team,
with two conditions for each and the resultant the IT and the organizational infrastructure to sup-
quadrant is the recommended SDLC [42]. port the development effort and the application,
c. Using comparison tables of SDLCs such as given and the nature of the project itself—that is, the
in [6, 43]. project’s size, degree of structure, development
d. Using heuristic ranking algorithm(s) (The output time, and role within the organization [25],
may be a list of models together with the ascribed – Number of (critical) risks,
score) [2]. – Cost estimation, early functionality needs,
e. Using experts guidance for selection; experts from – Degree of customer involvement in the project
the outside of the projects/company decide for [44],
the appropriate SDLC. Experts generally decide – Project (development) environment such as orga-
according to the previous success/fails. nization characteristics, the degree of familiarity
f. The procedures defined by company or founda- with the technology to be used, and the competitive
tion force you to select SDLC according to the demands for initiating the project [44, 45],
defined processes. For example, some compa- – Product related criteria include [2]: the type of
nies/foundations define the development process information system, the size and complexity of
as progresses in steps in only one cycle such as the software, system architecture, modularity and
requirement specification, design, code, integra- level of module integrity, the variability and clarity
tion and testing and define to generate a number of user requirements,
of documents in each phase. In that condition, – Project related criteria include basic project dimen-
you feel yourself to use waterfall or waterfall type sions such as: planned timetable and cumulative
SDLCs. costs of the project, resource characteristics,
g. The company decided to use a (or more) known project risks, types of users according to computer
SDLC and all projects obey this decision. skills and fluency with computer systems [2].
h. Investigate literature/web to decide one or more
SDLC(s). In this study, ‘known (understandability, definabil-
i. Ad hoc selection: There is no standard/formal ity, clarity) and change (stability) of requirements’,
solution/technique for SDLC selection. Project ‘development time’ ‘size (of the product/project)’,
management decide one of SDLC heuristicly. ‘complexity (of the problem, system, domain)’ ‘expe-
Project/company management generally use the rience’ and ‘risks’ was selected criteria to be used for
same SDLC every time. SDLC comparison and FL input.
j. Using Fuzzy Logic which was developed in this The following was taken into account in criteria
study. selection;
802 V. Öztürk / Selection of appropriate software development life cycle

– Whether commonly used in projects and SDLC tallness is 180 cm, then a person which is 179 cm is
comparison surveys short and 181 cm is tall in classic logic. In FL, we can
– Effectiveness and importance of criteria in SDLC define a person both as tall and short with according
selection membership value of a membership function between
– Availability of comparative information for differ- 0 and 1. Membership function is a function of a geomet-
ent SDLC according to the selected criterion. ric curve which can take different shapes (e.g. triangle,
gaussian) that defines how each point in the input is
There is a weakness of rule based Artificial Intelli- mapped to a degree of membership between 0 and 1.
gence techniques such as Fuzzy Logic, Expert System. The general benefits of using the FL are as follows:
The system inferences according to the rules in the
knowledge base or rulebase. In Fuzzy Logic, the valid- – FL is conceptually easy to understand and flexible
ity of results depends on quality of knowledge used in [58].
rules and membership functions. For this reason, it was – Ability to use expert knowledge [14].
taken great care for each SDLC criterion and related – Expert rules that are already available can be
information used in FL rules. Comparative information directly included [11].
about selected SDLCs (Waterfall, IDD, Prototyping, – FL system can be updated easily.
Agile and Spiral) and appropriate situations of using – Ability to use linguistic variables as inputs, and
them according to the selected criteria is given in producing linguistic as output(s).
Table 1. This information is especially necessary for – “Ability to represent differing levels of uncertainty
development of FL rules and FL membership functions. for inputs and outputs whilst still basing inference
Note that, some criterion can be divided into sub- on the same model” [14].
criterions. For example, experience can be divided as – FL is inherently robust and don’t require to be
experience of application domain, experience of the precise [13].
development technology, etc. But there is not enough
Fuzzy Logic System consists of three main compo-
comparative information for such sub-criterions in the
nents as shown in Fig. 1 [59];
literature. For this reason, we consider these criteria as
general including these sub-criterions. – Fuzzifier maps crisp numbers to fuzzy sets. It is
needed in order to activate fuzzy rules, which are in
linguistic variables and have fuzzy sets associated
4. Selection of SDLC using fuzzy logic with them.
– Inference engine generates fuzzy outputs corre-
4.1. Fuzzy logic sponding to fuzzified inputs, with respect to the
fuzzy rules. Fuzzy Rules are “IF...THEN...” form
Fuzzy Logic (FL) is basically developed to han- and combines inputs to outputs.
dle uncertainties in computer-based problem solving – Defuzzifier maps output sets into crisp numbers.
or decision-making. It can be used to solve highly com-
plex problems where a mathematical model would be 4.2. Selection of SDLC using fuzzy logic
too difficult or impossible to be formulated due to the
uncertainties. It is difficult to measure the output of selecting the
“Fuzzy Logic is a logical system, which aims at a for- correct SDLC with respect to another one because of
malization of approximate reasoning in a narrow sense. the need to use different SDLCs for the same project
In a wide sense, it is coextensive with fuzzy set the- under the same conditions and see the output.
ory. Today, the term Fuzzy Logic is used predominantly Since many of the independent variables in software
in its wide sense.” [55]. “Fuzzy sets are sets in which models are either difficult to quantify (for instance com-
members are presented as ordered pairs that include plexity), or are only known to a rough degree (such as
information on degree of membership.” [56]. system size), the use of fuzzy variables seems appealing
“Fuzzy Logic uses membership functions to incorpo- [60].
rate linguistic variables and quantifiers” [12]. FL deals Various linguistic variables can be taken into account
with a certainty degree (somewhere from 0 to 1) of in the selection of SDLC in FL.
propositions [57]. In classic logic, we define a limit A linguistic variable is a variable whose values,
about the certainty. For example, if the limit for the called linguistic values, have the form of phrases
V. Öztürk / Selection of appropriate software development life cycle 803

Table 1
Comparison of SDLCs
Waterfall Iterative and Prototyping Agile Spiral
Incremental
Development
(IID)
Known and change Requirements are Requirements are Requirements are Requirements are Users are unsure of
of requirements stable or not easily not well unknown, their own needs
unchanging [5, understandable understood and/or changing and and requirements
30], very well and/or defined clearly defined largely emergent are complex [46],
known [46] and [43] and are [43, 47] [39, 32] requirements are
understandable expected to Functional not easily
[43] evolve over time requirements may understandable
in incremental change frequently and defined [43]
manner [46] and significantly
[5]
Development time – Between medium – Between medium – Project schedule is – Between short and – Short or medium
and long (9 and long (10 tight [43] medium (6 (in the survey of
projects in survey projects in survey projects in survey [30] development
of [30] is between of [30] is between of [30] is between time for 3 projects
6–36 months) 4–96 months) 6–36 months) is between 4–18
months
– Not tight [43] – Not very short – Decreases respect – Between 1–6 – Project schedule is
duration [5] to the waterfall months [48] tight [43]
[27]
Project size Large [5, 48]) or not very small [5] – Large with many – Small and medium – Medium or large
medium [48, 49]) and high for users, [48] [48]
iterative models interrelationships
[49] and functions [5]
– Not large [50] – Large-scale
systems and
software [9]
– Smaller teams and
projects [39]
Experience Project team doesn’t Domain knowledge Team members are Having skilled and “Project manager is
have enough is adequate [51] experienced [5] experienced highly skilled and
experience in the people in the team experienced” [5].
application [52] Project team’s
domain [5] experience is high
[30]
Risks projects that are not In the development project risks Unknown risks and For medium to
subject to many of high-risk or regarding the risks have major high-risk projects
risks [23] major functions requirements impact [39], [53]
[53] definition is not Including
low and needs to significant
be reduced [5] amount of
uncertainties and
risks [54]
Complexity Complicated [5] Development of the project is large non-complex Complex system to
complex systems with many users, software [50], build [43, 51]
[51, 43] interrelationships Complexity is
and functions [5] small and medium
[48]

or sentences in a natural language [12]. For devel- project size is large) and (project complexity is
oping a FL model the verbal expert knowledge, medium), then you can use waterfall”. Here “Project
based on the correlation(s) between pairs of their size” and “Project complexity” are linguistic vari-
variables, is translated into if-then rules. Parame- ables.
ters, such as membership functions and weights of Project managers can define linguistic variables of
rules, can be tuned by using input and output data criteria related to SDLC selection in the early phases of
[61]. For example, consider the statement “if (your a project (even before project starts).
804 V. Öztürk / Selection of appropriate software development life cycle

Table 2
FL input variables and terms in membership functions
FL input variable Terms in FL membership functions
Requirements ‘unstable & unknown’, ‘known’,
‘stable & well-known’
Complexity ‘simple’, ‘medium’, ‘complex’
Fig. 1. Main components of a Fuzzy Logic System. Project size ‘small’, ‘medium’, ‘large’
Development time ‘short’, ‘medium’, ‘long’
Experience ‘less experienced’, ‘adequate’, ‘experienced’
The steps used in this study for development of Fuzzy Risk ‘low’, ‘medium’, ‘high’
Logic System for SDLC selection are as follows;

1. Obtain related information from literature, Inter-


net and experts researches for fuzzifying the sizes of projects, to address
2. Put related information into a structured format the vagueness in the project sizes [62]. Gaussion mem-
3. Define input FL variables (define criteria to be bership functions are inherently adaptable, due to their
used in SDLC comparison) nonlinearity and also allow a smoother transition in
4. Define output FL variables (define SDLCs taken the intervals representing requirements, complexity and
into account) SDLC as a linguistic variable as shown in Fig. 2 and
5. Define and generate membership functions for 3. For this reason, Gaussian membership functions
input variables (define FL behaviour for each cri- are used for fuzzing inputs and defuzzing output. The
teria in each SDLC) “Gaussian” membership function for ‘Requirements’ is
6. Define and generate membership functions for shown in Fig. 2.
output variable The input variables and the terms that defined accord-
7. Define Fuzzy rules according to the related knowl- ing to these variables in FL membership functions are
edge elicited from literature and experts given in Table 2.
8. Control fuzzy rules for different inputs and output Membership functions for “Development Time”,
9. Combine information from the rules. “Project Size”, “Experience”, “Risk” and “Complex-
10. Interpret and deffuzify the results. ity” are Gaussian and similar to Fig. 2.
The “Gaussian” membership function for SDLC
Matlab was used for Fuzzy Logic System develop- selection is shown in Fig. 3. The terms ‘agile’, ‘pro-
ment of SDLC selection. totyping’, ‘IID’, ‘spiral’ and ‘waterfall’ are defined for
Sharma and Verma identified that Gaussian mem- the output variable ‘SDLC’.
bership functions proved superior to the triangular The fuzzy rules defined for SDLC selection are given
membership functions used in most of the previous below with “Requirements”, “Development Time”,

Membership function plots

unstable&unknown known stable&well-known


1

0.5

0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
input variable “Requirements(UK, Known,wKn.)”

Fig. 2. SDLC selection input variable “Requirements”.


V. Öztürk / Selection of appropriate software development life cycle 805

Membership function plots

agile prototype Iterative-Incremental spiral waterfall


1

0.5

0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
output variable “SDLC(Agile. Ptype. IID. Spiral.Wfall)”

Fig. 3. SDLC selection output variable “SDLC”.

“Project Size”, “Experience”, “Complexity”, “Risk” As the project progresses and a greater degree of cer-
linguistic variable as inputs and “SDLC” selection as tainty is established in relation to the scope of the project
output; (and also as data starts to become available), then more
precise inputs of SDLC selection can be elicited [60].
1. If (requirements are not unstable and well known)
Examples of FL inference process for SDLC selec-
and (development time is not short) and (project
tion are shown in Fig. 4 and Table 3. All parts of the
size is not small) and (experience level is not expe-
fuzzy inference process from input to output are shown
rienced) and (risk is not high) then SDLC selection
simultaneously in Fig. 4. There are five rows and each
is waterfall.
row shows the fuzzy inference process of a rule for
2. If (requirements are unstable and not well known)
inputs and output.
and (development time is short) and (project size
The vertical lines show the input value of Fuzzier.
is not large) and (experience level is experienced)
The input values are shown in the 6th Fuzzy Inference
and (complexity is complex) and (risk is not low)
(underlined) of Table 3 (the output is waterfall).
then SDLC selection is prototyping.
The right bottom rectangle under the row 5 in the
3. If (requirements are unstable and not well known)
Fig. 4 shows the output of these instances, which
and (development time is not long) and (project
is the combination of output of rules. The centroid
size is not large) and (experience level is not less-
calculation, which is one of the most popular defuzzi-
experienced) and (complexity is not complex) and
fication method, was used for generating the crisp
(risk is not low) then SDLC selection is agile.
output. This method returns the centre of area under
4. If (requirements are unstable and not well known)
the output curve. In this study, the output curve was
and (development time is not long) and (project
interpreted for decision of SDLC selection. For exam-
size is not large) and (complexity is not simple)
ple, FL advises to use waterfall in the conditions given
then SDLC selection is IID.
above as shown in Fig. 4. Figure 4 shows only one
5. If (requirements are unstable and not well known)
instance of the process. Each fuzzy linguistic vari-
and (development time is not long) and (project
able input of SDLC Selection can take 100 various
size is not small) and (experience level is not less-
values. An expert or project manager or someone
experienced) and (complexity is not simple) and
should take 100*100*100*100*100*100 (there are six
(risk is not low) then SDLC selection is spiral.
inputs and each can take 100 various values) conditions
It was tried to keep the number of rules as small (1006 = 1.000 billion) into account without using FL,
as possible. The capability to relate the rules typically which seems impossible or very difficult. If the expert
diminishes when the number of rules exceeds approxi- or project manager considers only the main conditions
mately fifteen [10]. like classical logic, which is explained in Section 4.1
806 V. Öztürk / Selection of appropriate software development life cycle

Fig. 4. FL inference process of SDLC selection (output is waterfall).


V. Öztürk / Selection of appropriate software development life cycle 807

Table 3
Fuzzy inference process outputs for different input values
Criteria
# of FL example Input Requirements Development Project- Expertise Complexity Risk Output
time size
1.Fuzzy inference Input FL value unstable and not well known short small experienced medium high Agile
Input FL number 0.03/1 0.05/1 0.05/1 0.9/1 0.5/1 0.95/1
2.Fuzzy inference Input FL value unstable and not well known medium medium experienced high high Spiral
Input FL number 0.05/1 0.57/1 0.53/1 0.978/1 0.97/1 0.97/1
3.Fuzzy inference Input FL value unstable and not well known short large inexperienced high high IDD
Input FL number 0.02/1 0.03/1 0.98/1 0.04/1 0.97/1 0.97/1
4.Fuzzy inference Input FL value unstable and not well known short small experienced high high Prototyping
Input FL number 0.02/1 0.03/1 0.056/1 0.97/1 0.97/1 0.97/1
5.Fuzzy inference Input FL value unstable and not well known medium large experienced high high IDD-Spiral
Input FL number 0.05/1 0.57/1 0.978/1 0.978/1 0.97/1 0.97/1
6.Fuzzy inference Input FL value stable and well known long large adequate high medium Waterfall
Input FL number 0.9/1 0.9/1 0.95/1 0.5/1 0.9/1 0.5/1

(e.g. development time of 6 months or less is short, [29]. In such situations, Fuzzy Logic System can be
between 6–18 months is medium and above 18 months used to decide for another SDLC. In some organiza-
is long), the expert or project manager will take 36 (729) tions or projects, some work packages (especially big
conditions into account, which seems also very difficult. work packages) can be done by different groups. In this
According to the experiences and observations, it case, different life cycles can be used in work packages
may be difficult to be able to successfully apply any of the project. Fuzzy Logic System can also be used to
one type of SDLC exclusively to a project [63]. Most decide SDLCs in work packages.
SDLCs were designed to provide a model for achiev- The change of SDLC selection according to ‘Devel-
ing success only under a certain set of circumstances. opment Time’ and ‘Requirements Known & Change’
When the circumstances change beyond the limits of is shown in Fig. 5, where project size is small (0.1/1),
the SDLC, the results from using it are no longer experience is adequate (0.5/1), complexity is medium
predictable; therefore continuing of its use can cause (0.5/1), risk is medium (0.5/1). Fig. 5 shows the out-
unexpected results. In these situations, it is sometimes put of SDLC selection for many instances, where some
necessary to alter the existing SDLC to accommodate input parameters were made fixed.
the change in circumstances, or adopt/ combine dif- Table 3 shows fuzzy inference process outputs of
ferent SDLCs to accommodate the new circumstances fuzzy rules for different fuzzy input values.
SDLC(Agile.Ptpye.IID Spiral.Wfall)

0.8

0.7

0.6

0.5

0.4
1 1
0.8 0.8
0.6 0.6
Develo 0.4 0.4 wKn.)
pmen own,
t-Time
(Short 0.2 0.2 ts(UK, Kn
, M, L 0 ir emen
ong) 0 Requ

Fig. 5. The change of SDLC selection according to “Development Time” and “Requirements”.
808 V. Öztürk / Selection of appropriate software development life cycle

5. Conclusions References

There is not enough information in the literature [1] L.C. Alexander and A.M. Davis, Computer Software and
about the criteria and their impact on selection of Applications Conference, COMPSAC ’91 Proceedings of the
15th Annual International Conference 1991.
appropriate Software Development Life Cycle (SDLC).
[2] G. Holodnik-Janczura and I. Golińska, Decision Sup-
Some information seems opposite or different for some port System For Choosing A Model For A Software
criteria. It is difficult to decide for some of SDLC cri- Development Life Cycle. Wroclaw University of Technol-
teria. For example, it is obvious from the literature that ogy. [Online] 2010. [Cited: 2 12, 2012.] http://www.ioz.
pwr.wroc.pl/boid/artykuly/1-2010/art-4-holodnik.pdf
Iterative and Incremental Development (IID) is appro-
[3] O. Benediktsson, D. Dalcher and H. Thorbergsson, Com-
priate when complexity of system is high. What about parison of software development life cycles: A multiproject
when complexity of system is medium? According to experiment, IEE Proc.-Software 153(3) (2006), 87–88.
some other information, it seems that IDD is appro- [4] A. Farrell, Selecting a Software Development Methodology
based on Organizational Characteristics. Athabasca, Alberta:
priate, but it is hard to find obvious evidence in the s.n., MSc Thesis, 2007.
literature in such cases. [5] Selecting a development approach. Centers for Medicare
Aside from a lot of SDLCs in literature, some SDLCs & Medicaid Services. [Online] CMS. [Cited: 02 12, 2012.]
are more frequently used than others. Frequently used https://www.cms.gov/SystemLifecycleFramework/Downloads
/SelectingDevelopmentApproach.pdf
SDLCs (waterfall, prototyping, agile, IDD and spiral)
[6] S. McConnell, Rapid Development: Taming Wild Software
were taken into account in the SDLC selection of this Schedules, Microsoft Press, Washington, 1996.
study. All types of SDLCs are nearly covered with these [7] Extreme Chaos. Small Footprint Inc. Web Site. [Online]
selected SDLCs in a general or similar manner. 2001. [Cited: 01 12, 2011.] http://www.smallfootprint.
com/Portals/0/StandishGroupExtremeChaos2001.pdf
A Fuzzy Logic (FL) system was developed accord-
[8] Choosing an SDLC. GEM-UP Consulting Inc. [Online]
ing to the elicited information about the criteria and 2008. [Cited: 02 12, 2012.] http://www.gem-up.com/PDF/
their affect on selecting suitable SDLCs in various SK903V0-WP-ChoosingSDLC.pdf
cases. The FL system is aimed to help project man- [9] M.H. Kasirun and M. Zarinah, Using Rule-Based Technique In
Developing The Tool For Finding Suitable Software Methodol-
agers and software developers for selecting appropriate ogy, 2, s.l., Malaysian Journal of Computer Science 20 (2007),
SDLC(s). 209–224.
We should take 1006 (1.000 billion) conditions into [10] C.J. Lakhmi and N.M. Martin, Fusion of Neural Networks,
account for SDLC selection at the same accuracy of Fuzzy Systems and Genetic Algorithms: Industrial Applica-
tions s.l., CRC Press LLC, 1998.
FL, which is impossible or very difficult. If the main [11] C. Ebert, Classification techniques for metric-based software
conditions are in consideration of SDLC selection as development. 5, Software Quality Journal, Springer, Antwerp,
classical logic, then we must take 36 (729) conditions Belgium (1996), 255–272.
into account, which is also very difficult. [12] S. Nand, A. Kaur and S. Jain, Use of Fuzzy Logic in Soft-
ware Development. 2, Issues in Information Systems, 8 (2007),
The developed FL system was tested for various 238–244.
inputs which some them is shown in Fig. 4 and Table 3 [13] K. KoteswaraRao, et al., Optimization of Decision Paths by
and improved according to the test results (e.g. rules Using Fuzzy Logic. 27, International Journal of Computer
were enhanced). Applications Foundation of Computer Science, USA, 1,
(2010), 79.
It was seen that the fuzzy membership functions and [14] A. Gray, and S. MacDonell, Fuzzy Logic for Software
parameters could be improved according to the new Metric Models throughout the Development Life-Cycle. Uni-
information and empirical case studies. In other words, versity of Otago. [Online] 1999. [Cited: 02 12, 2012.]
if we have more information about previous and cur- Discussion Paper 99/20, Dunedin, New Zealand. http://
eprints.otago.ac.nz/1004/. ISSN 1172–6024
rent projects such as selected life cycle, complexity, [15] D.A. Gustafson, Theory and Problems of Software Engineer-
success, etc. then we can improve FL system for better ing, Computing and Information Sciences Department Kansas
estimation. State University, Schaum’s Outline Series, s.l., McGRAW-
HILL, 2002.
[16] Lifecycle Model Selection. Construx Software Builders, Inc.
Web Site. [Online] 2002. [Cited: 2 12, 2012.] http://www.
construx.com/File.ashx?cid=817
Acknowledgments [17] D. Bolton, Software Lifecycle. http://cplus.about.com
Online2011. [Cited: 02 12, 2012.] http://cplus.about.com/
od/glossary/g/gloslifecycle.htm
The author would like to thank Burak Selçuk Soyer, [18] W. Scacchi, Process Models in Software Engineering
Abdulkerim Öncü and Ahmet Parlak from TÜBİTAK Institute for Software Research, Encyclopedia of Software
BİLGEM for their valuable support. Engineering, 2nd Edition, John Wiley and Sons, NewYork,
V. Öztürk / Selection of appropriate software development life cycle 809

2001. http://www.ics.uci.edu/∼wscacchi/Papers/SE-Encyc/ [39] B. Boehm, Get Ready for Agile Methods with Care. 1,
Process-Models-SE-Encyc.pdf s.l.: IEEE, Computer, 35(1) (2002), 64–69. http://citeseerx.
[19] A. Abran et al., Guide to the Software Engineering Body of ist.psu.edu/viewdoc/download?doi=10.1.1.87.5651&rep=rep1
Knowledge SWEBOK, IEEE Computer Society, California, &type=pdf. ISSN: 0018-9162
(2004). [40] M.C. Paulk, et al., Capability Maturity Model for Soft-
[20] I. Sommerville, Software Engineering, 6th edition, Addison- ware, Version 1.1. Pittsburgh, Pennsylvania : Software
Wesley, USA, 2000. Engineering Institute Carnegie Mellon University, 1993.
[21] What is systems development life cycle (SDLC)? http:// http://www.sei.cmu.edu/reports/93tr024.pdf
www.techtarget.com. [Online] 2001. [Cited: 02 12, 2012.] [41] K. Meinke Software Lifecycle Models, Organization
http://searchsoftwarequality.techtarget.com/definition/systems KTH Computer Science and Communication. [Online]
-development-life-cycle 2005. [Cited: 2 12, 2012.] http://www.nada.kth.se/∼karlm/
[22] Software development process. www.wikipedia.org. prutt05/lectures/prutt05 lec6.pdf
[Online] [Cited: 2 12, 2012.] http://en.wikipedia.org /wiki/ [42] A.E. Dillman, Selecting a Software Development Life
Software development life cycle Cycle. SMCI International, [Online] 2003. [Cited: 2 12,
[23] Software Engineering Issues. NPTEL National Programme 2012.] White Paper. http://www.smc-i.com/downloads/sdlc
on Technology Enchanced Learning. [Cited: 2 12, 2012.] methodology.pdf
http://nptel.iitm.ac.in/courses/Webcourse-contents/IIT%20 [43] K.K. Aggarwal and Y. Singh, Software Engineering. [Online]
Kharagpur/Embedded%20systems/Pdf/Lesson-33.pdf 2007. [Cited: 2 12, 2012.] http://www.scribd.com/doc/2139
[24] L.C. Liu and E. Horowitz, A Formal Model For Software 0992/Chapter-2-Software-Development-Life-Cycle-Models
Project Management, IEEE Transactions On Software Engi- [44] R.D. Archibald, Life Cycle Models For High-Technology
neering, 15(10) (1989), 1280. Projects – Applying Systems Thinking To Managing
[25] J.T. Marchewka, Information Technology Project Manage- Projects. russarchibald.com/ [Online] 2003. [Cited: 7 28,
ment, s.l., Wiley, 2002. 2010.] Presented to the PMI-Central Iowa Chapter,
[26] Application Development Standard: Standards for SDLC. Professional Development Day. http://www.russarchibald.
http://www.mgs.gov.on.ca [Online] [Cited: 02 12, 2012.] com/files/LIFECYCLEMODELSFORHI-TECHPROJECTS.
http://www.mgs.gov.on.ca/stdprodconsume/groups/content/@ pdf
mgs/@goits/documents/resourcelist/241105.pdf [45] D.H. Desaulniers, R.J. Anderson and TN. Nashville, Matching
[27] A.M. Davis, E.H.B. Bersoff and E. Comer, A Strategy for Com- Software Development Life Cycles to the Project Environ-
paring Alternative Software Development Life Cycle Models, ment. Newtown Square: s.n., 2001. Proceedings of the Project
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING Management Institute Annual Seminars & Symposium, Project
14(10) (1988) 10. Management Institute.
[28] Iterative and incremental development. Wikipedia. [Online] [46] S. Bhattacharjee, Software Development Life Cycle
[Cited: 2 12, 2012.] http://en.wikipedia.org/wiki /Iterative (SDLC). College of Agricultural Banking. [Online]
and incremental development [Cited: 04 24, 2011.] Maharashtra, India. http://cab.org.in
[29] A Survey of System Development. Center for Technology /Lists/Knowledge%20Bank/Attachments/83/SDLC.pdf
in Government. [Online] [Cited: 02 12, 2012.] http:// [47] A.K. Verma, R. Anil and O.P. Jain, Fuzzy Logic Based
www.ctg.albany.edu/publications/reports/survey of sysdev/ Revised Defect Rating for Software Lifecycle Performance
survey of sysdev.pdf Prediction Using GMR. BVICAM’S International Jour-
[30] A. Deeb, Software Development Methodologies in Industry, nal Of Information Technology, New Delhi, s.n., 2008.
Master degree in Software Engineering [Thesis]. Australian http://www.bvicam.ac.in/BVICAM%20IJIT/Downloads/pdf/
National University, 6 (2010). issue1/01-J08.pdf
[31] C. Larman, Agile & Iterative Development A Manager’s [48] R.M. Wideman, Project Management Methodologies By Jason
Guide, Addison-Wesley, Westford, Massachusetts, 2004, Charvat, published by Wiley, NJ, 2003 (A book review by R.
ISBN 0131111558. Max Wideman). www.maxwideman.com. [Online] 8 7, 2005.
[32] M.L. Todd, Selecting A Development Approach For [Cited: 2 12, 2012.] http://www.maxwideman.com/papers/pm-
Competitive Advantage. [Online] [Cited: 2 12, 2012.] methodologies/pm methodologies.pdf
http://www.slideshare.net/mtoddne/selecting-a-development- [49] O. Eljabir and F.P. Deek, Tailoring the Software Pro-
approach-for-competitive-advantage cess Model to Project requirements, Citeseer Scientific
[33] L. Westfall, The Certified Software Quality Engineer Hand- Literature Digital Library and Search Engine. [Online]
book, Quality Press, Milwaukee: American Society for [Cited: 2 12, 2012.] http://eljabiri1.tripod.com /sitebuildercon-
Quality, (2010), p. 140. tent/sitebuilderfiles/paper5.pdf
[34] Spiral model. http://en.wikipedia.org. [Online] [Cited: 2 12, [50] R.F.D. Turk and B. Rumpe, Limitations of Agile Software
2012.] http://en.wikipedia.org/wiki/Spiral model Processes, Proceedings of the Third International Con-
[35] B.W. Boehm, A Spiral Model of Software Development and ference on Extreme Programming and Agile Processes
Enhancement. 5, s.l. : IEEE, IEEE Computer 21 (1988), 61–72. in Software Engineering, XP, 2002. retrieved at 24th
[36] A. Cockburn, Agile Software Development. s.l.: Addison- April of 2011 from http://cf.agilealliance.org/articles/
Wesley Professional, (2001), p. 175. system/article/file/1096/file.pdf
[37] A Practical Guide to Seven Agile Methodologies. http:// [51] Introduction to Software Engineering. New Age Inter-
www.devx.com. [Online] 02 12, 2012. http://www.devx. national. [Online] [Cited: 4 24, 2011.] http://www.
com/architect/Article/32836-1954 newagepublishers.com/samplechapter/001629.pdf. Software
[38] D.E. Strode, The agile methods: An analytical comparison of Engineering Sample Chapter
five agile methods and an investigation of their target envi- [52] M.A. Awad, A Comparison between Agile and Traditional
ronment. [MSc. Thesis]. Palmerston North, New Zeland : s.n., Software Development Methodologies. [MSc. Thesis]. The
2005. Univers of Western Australia, Western Australia , 2005.
810 V. Öztürk / Selection of appropriate software development life cycle

[53] Y. Berra, Software Development Life Cycle (SDLC). [60] A. Gray and S. MacDonell, Applications of Fuzzy Logic
DePaul University. [Online] [Cited: 2 12, 2012.] http:// to Software Metric Models for Development Effort Esti-
condor.depaul.edu/jpetlick/extra/394/Session2.ppt mation. CiteSeer Scientific Literature Digital Library and
[54] A. Marchenko, Risk Agile Software Development, Agile Search Engine. 7 1997. [Cited: 2 12, 2012.] http://citeseerx.
Software Development. [Online] [Cited: 5 1, 2011.] http:// ist.psu.edu/viewdoc/download;jsessionid=71B513DE5037B
agilesoftwaredevelopment.com/tags/risk F8C3FAEB433542D372D?doi=10.1.1.10.6929&rep=rep1&
[55] L.A. Zadeh, Computers and mathematics with applications, type=pdf. ISSN 1172-6024
fuzzy logic and the calculi of fuzzy rules, Fuzzy Graphs, and [61] V. Marza and M.A. Seyyedi, Fuzzy Multiple Regression
Fuzzy Probabilities, s.l., Elsevier Science Ltd, 37 1999. Model for Estimating Software Development Time. 2, Vienna,
[56] V.B. Rao, C++ Neural Networks and Fuzzy Logic, s.l., M&T Austria: s.n., International Journal of Engineering Business
Books, IDG Books Worldwide Inc, 1995. Management, 1(9) 2009, 79–82.
[57] A. Konar, Artificial Intelligence and Soft Computing Behav- [62] V. Sharma and H.K. Verma, Optimized Fuzzy Logic Based
ioral and Cognitive Modeling of the Human Brain, s.l., CRC Framework for Effort Estimation in Software Development,
Press, 2000. IJCSI International Journal of Computer Science Issues, 7 2,
[58] What Is Fuzzy Logic? The MathWorks, Inc. Web Site. 3 (2010) ISSN (Online): 1694-0784 ISSN (Print): 1694-0814.
[Online] [Cited: 2 12, 2012.] http://www.mathworks.com/ [63] M. Al-Maharmeh, Applying a Composite Process Framework
help/toolbox/fuzzy/fp72.html (CPF) in Real Life Software Development Project, IEEE Sixth
[59] M.J. Mende, Fuzzy Logic Systems for Engineering: A Tutorial, International Conference on Information Technology: New
Proceedings of the IEEE 83(3) (1995), 347. Generation, 2009.
Copyright of Journal of Intelligent & Fuzzy Systems is the property of IOS Press and its
content may not be copied or emailed to multiple sites or posted to a listserv without the
copyright holder's express written permission. However, users may print, download, or email
articles for individual use.

View publication stats

You might also like