Optimized Quality Model for Agile Development : Extreme Programming ( XP ) as a Case Scenario

The attributes of quality are that it is complex taxonomy, it cannot be weighted or measured but can be felt, discussed and judged. Early assessment and verification of functional attributes (requirements) are supported well by renowned standards while the nonfunctional attributes (requirements) are not. Agile software development methodologies are of high repute as the most popular and effective approaches to the development of software systems. Early requirements verification methodologies in Agile Software Engineering are well focused in this way and hence mainly researched have achieved in functional requirements. For early quality aspects (attributes) in order to bring quality in our design and hence development process, it is very important to consider nonfunctional requirements quality metrics (attributes). A comprehensive work is also being done to propose and validate (using iThink) different quality models which could make sure the quality of agile software products being developed, which will be though available in detail in the literature review (section II). Yet a generic and standard quality metrics model is missing in this for the agile software practices in all, which off course is further needed to make sure that the agile product being developed, will surely accomplish quality characteristics as decided by the stakeholders as well as the mentioned quality standard they are addressing. In this work we have proposed a quality metrics model that fulfills the desired quality attributes exist in ISO/IEC (Quality standards, ISO 9126, ISO 25000) in early requirements, we validated this by performing simulations in iThink technology that also ensures that the quality of item being produced to meet the described criteria. Keywords—Agile Software Engineering (ASE); Agile Software Development (ASD); Extreme Programming (XP); ISO; ISO 9126; ISO 25000


INTRODUCTION
Extreme Programming is one of a software engineering practice, articulated in 90s by Ward Cunningham, Kent Beck, and Ron Jeffries [17], the most important and noticeable among several methodologies.XP is different from traditional methodologies in a way that it emphasizes on adaptation than on prediction.In XP programming it is believed that it is more realistic to adapt different changes that appear during the whole software development process rather than specifying all the requirements at the beginning.XP provides a way for improvement and new style for development.XP aims at lowering the cost of change.The process of Extreme Programming starts with planning and then there are four steps that are followed in all iterations: designing, coding, testing, and listening.Though in the software development process, requirement management and requirement engineering practices are also very important & very critical [18].
The product quality that is being established by adopting the extreme programing methodology is also very important.Different quality models have been proposed that try to cover all the important and critical quality attributes [9] [4].Here we have proposed a quality model specifically by considering the activities of extreme programming.The details about mentioned quality attributes, model and need for the model in this is highlighted in detail in the literature review section (section II), some limitations are given in section III, further the details about the survey that has been conducted to calculate the effect of different quality attributes are given in section IV and then a model is proposed in section V.

A. McCall Quality Model
This very first quality model was offered by Jim McCall [12], the quality characteristics of this model were categorized into three major groups.These three groups contain 11 quality attributes.First is product revision that consists of flexibility, maintainability and testability.Second is product operation which is dependent on honesty, reliability, precision, effectiveness and usability.And third is product conversion that contains the attributes reusability, transferability and interoperability.The sole aim of this model was to minimize the gap between the developers and the end users by emphasizing on the dimensions of quality.This model is suggested for generic systems, and hence the attributes that are specific for different domains are not clearly spoken in the space of the mentioned model [9].

B. Boehm Model
Boehm's quality model portrays a numerous leveled structure of attributes, each of which adds to the total quality.www.ijacsa.thesai.orgBoehm's quality model [3] is fundamentally the expansion of McCall Quality model.Utility characterizes how effortlessly, dependably and effectively programming item can be utilized, practicality characterizes how effectively modifiable and retestable the product item is and portability characterizes how the product item can be utilized after change has happened as a part of a domain [11].Boehm distinguished seven quality components: Portability, Reliability, Efficiency, Usability, Testability, Understandability, and Flexibility [9].

C. FURPS Model
FURPS model [4], classify attributes into two unique requirements, for example, Functional Requirements (F) which is characterized by predictable input and output and Non Functional Requirements in which U represents Usability, R represents Reliability, P represents Performance (incorporates practical prerequisites) and S represents Supportability (incorporates reinforcement, essential of plan, execution, interface) [9].One drawback of the FURPS model is that it doesn't reflect the portability perspective, which might be a vital basis for application advancement, particularly for programming based frameworks [11].

D. Dromey's Quality Model
Dromey's proposed an operational structure [15] [9] [4] for evaluating Requirement assurance, plan and practice stages.The structure involves three models, i.e.Requirement quality model, Design quality model and Implementation quality model.The top item properties for this model incorporate [11]:  First one is correctness that checks that no defacto standard is affected and also checks the usefulness of quality characteristics.
 Second is internal measure that how well a module has been situated by future use, with proficiency, practicality, and dependability as quality characteristics.
 Third is contextual that manage the outer effects on the use of a constituent, with quality attributes in dependability, viability, reusability, and compactness.

E. IEEE Quality Model
IEEE Quality Model is mainly standard for software maintenance [6].This model offers a process for handling and executing software maintenance actions.Standards like quality assurance, confirmation and authentication, software formation controlling in which linked processes are well-defined [9].This model represents numerous proportions of qualitative features and signifies features that are Reliability, Functionality, Usability, Efficiency and Maintainability [9] [14].

F. ISO 9126-1 Model
ISO 9126 is a universal model for the improvement of programming [11].ISO 9126 states and figures the product item quality regarding inner and outside programming qualities and their relationship to properties.The ISO 9126-1 quality model [9] [14] is additionally ordered into two groups.Initial one is Quality being used traits and the second that contains internal quality properties and External Quality properties.
Quality being used traits is those properties that can be evaluated just when programming is satisfied and conveyed to the end client.Then again inner quality properties are those that can be measured even without executing the item, though outer quality characteristics are those that can't be measured without executing the item.ISO 9126-1 quality model contains these properties so that the item can meet the guidelines of quality.

G. Ghezzi Model
Ghezzi C. et al. [7], characterizes that center qualities manage the structure of programming which benefits the product engineers to achieve those outer qualities for which programming clients have a ton of concern furthermore conveyed both internal and external characteristics of programming which are Reliability, Maintainability, Reusability Usability, Flexibility, Portability, Accuracy, and Integrity [14].

H. Other quality models/frameworks
Richard et al [8] discussed the 24 quality attributes specifically focusing on extreme programming.In XP a customer take part with the development team so specification is not a single document.It consists of user stories, acceptance tests written by customers and unit test written for each module.Author basically applied those 24 quality attributes that were proposed by Davis [9] for a quality SRS, on a specification created with XP.However extreme programming process achieves higher values in nine attributes and drops the values in two.The most positive results were in ambiguity and understandability because in extreme programming customer is present at all times to answer every question [8].
M. Usman et al. [9] proposed a quality metric model for agile development.Eight quality attributes were considered most important for agile development.Those were availability, flexibility, testability, scalability, performance, portability, understandability and usability.And the influence of these quality attributes among individual phases of SDLC was also evaluated.Results emphasized that flexibility is the best quality attribute among all attributes and then portability and understandability.However it was suggested at the end that more quality attributes can also be included in the quality model that are maintainability and modifiability and their influence on software development lifecycle.
Robert et al. [10] presented the influence of agile development on quality inside the administrative, procedural and traditional back ground and provided business standard approvals to reduce such influences.It was suggested that IT organizations should practice quality techniques and quality frameworks like AAIM, AQT and ASSF.The agility characteristics that were described are flexibility, speed, thinness, learning and receptiveness.However this work largely concentrated on the surface of administrative and traditional impacts.More research examination and survey are needed to increase the knowledge base linked to this matter.Deepshihka et al. [11] proposed a framework that contained some steps for the improvement of different quality models.Here author's basically compared different quality models and found the main alterations between these models.It was found www.ijacsa.thesai.org that in the 17 features only one quality feature is same in all models and that is reliability.Similarly, there are merely three features (i.e.portability, efficiency, usability) which are fitting to four quality models.Two features are mutual only to three quality models and that are functionality and maintainability.Two features fit in to two models and that are testability and reusability.And, nine features are presented in only one quality model.At the end some comments were given to these models.It was said about McCall model that it is a general model based only upon the finding of a person's questionnaire.FURPS was built for a company so it is a special purpose model, however it was suggested that a new model can be built from these quality models [9] [4] [7].Inderpal et al. [12] compared different characteristics of different quality models and it was found that maintenance cost depends so much upon the quality of a product.Author compared different quality models and it was found that reliability is a common characteristic of all quality models.It was also suggested that different quality features can be executed with relative to cost, schedule and modification.However it was suggested at the end that it's very significant to have very decent description of software requirements to have greatest results.It should be noted that different phases that are involved in a process should be done in proper way to have quality.
Ranbir et al. [15] presented a survey of different quality models [3] [4] [12] [6] and also did their comparative analysis.To do the comparison data was collected from various organizations through questionnaire and also through different published articles.Interviews were also taken from various students.The questionnaire contained different quality attributes from different quality models and their suitability was measured and analyzed.Analysis was basically done by using different tools that help for analyzing different things and then results were presented in the form of comparison table.However, it was suggested at the end that all these quality models are working well but still there is a need a software quality model that can be applied during whole software development lifecycle.Sanjay et al. [14] depicted various quality models and their investigative assessment, decided programming capability and its subjective attributes all the more plainly.Diverse programming quality models were suggested for programming applications by different scientists.The ISO 9126-1 model which in actuality joins the consequences of various different models has been thought as the most recognizable model and this has been broadly recognized and acknowledged as an elementary model in range of business and research.This was a comprehensive study to process the diverse components of various programming quality models and figure their near plausibility.Simultaneously, an investigation of various models which have been utilized to ascertain the quality will be inspected suitably.

Correctness
 www.ijacsa.thesai.orgSQ dimensions.Hence this research displays a need to assess the software quality.
One of the major drawback of FURPS model is that it does not reflect one of the significant quality attribute portability.Portability is the ability of the software to work in dissimilar or diverse situations and environments.And user's environment might keep changing and therefore software also needs to adjust to new computing environment.Especially in agile portability can be a main attribute and for that reason cannot be ignored.
ISO-9126 appears to be more precise, comprehensive and does not fall short as other models do.But, it has not delivered the clarity of how some specific software quality attributes can be measured.This can, however, be the best model in comparison to the other proposed models.
Dromey's model tried to enhance the understanding of the association between features and sub-features.So this model could not emphasis on how to measure the software quality.It has recognized the relationship between quality features and sub-features.This research therefore studies this relationship and evaluates the software quality.

IV. RESEARCH METHODOLOGY
Taking this comprehensive research literature into account and research work done into the quality metrics in agile software engineering (XP etc.) it has been observed that the quality aspect is the most important aspect in every methodology that is used for the development of software products.Further that for bringing improvement in the quality of the product, different models have been suggested and used in the industry.Those models are helpful for achieving high quality software products but we precisely we are unable to identify in the mentioned literature and others about a model that is specific for agile methodologies and especially and precisely about the extreme programming.As we know that extreme programming is different from other previous methodologies [17], there must be a standard quality metric model that fulfills the criteria for the activities and quality attributes (metrics) of agile methods especially extreme programming.Those quality attributes that contain highest influence on the activities of extreme programming must be analyzed and measured.
A survey has been conducted through different software organizations (at Software Technology Park).The methodology used for this scenario to conduct this survey (Qualitative analysis) was that of set of questionnaires and face to face interviews (mostly open-ended).In this almost 20 different software houses/ software companies have been contacted and hence covered via this survey.The frequently asked questions were as follows: 1) Do you think that choosing the most suitable quality model is a real challenge when you are working properly in agile?
2) In order to ensure high quality product do you think the developer must concentrate on the quality of the process?
3) Is there a need of a quality model specifically for extreme programming (agile)?
4) Are there any attributes in different quality models that not need to be addressed in agile development?
Almost all the companies/software houses agreed that selecting the most appropriate model is a challenge because all those models are developed for traditional methodologies.Most of these models appear to be fully adopted in large scaled organizations or enterprises.Maybe these models could accommodate small companies or shorter version of businesses.All of the quality models emphasize too much on documentation which agile proves to be resisting due to development at a very high pace.
Almost 80% of the organizations think that there is a need of a quality model specifically for extreme programming (agile) because all the previously developed models contain so many attributes that are not needed in extreme programming (agile) so we can say that those models are complex for agile development.Secondly most of these models appears to be fully adopted in large scaled organizations or enterprises.Maybe these models could accommodate small companies or shorter version of businesses.
It is known that XP is different from all other methodologies in many ways.It basically involves user stories, customer availability, pair programming, small releases and iterations, continuous integration, unit and integration testing, acceptance testing and customer feedbacks.On the basis of these steps, we can try to define that which quality attributes are most important for XP and we can make a new quality model specifically for the products that are developed through XP approach.
Quality product is always very important and it is understood that in case to accomplish a quality product, quality of the process must be considered.Our proposed model will basically represent all the phases/steps of extreme programming and the quality parameters that are necessary to achieve the quality product.
An evaluation criteria is defined here to measure the influence of different attributes on agile SDLC.Almost 25 quality attributes in our questionnaire from all the quality models are considered and evaluated against all the phases involved in extreme programming (agile).
On the basis of this survey through questionnaire it has been observed that 7 quality attributes are the most important quality attributes for an extreme programming (agile) product.Those 7 attributes have the highest influence on the quality of agile process as well as on the quality of agile product.This model contains those attributes/features that have highest influence on the quality of agile SDLC and agile product.It also contains the sub features that are helpful for measuring these attributes.www.ijacsa.thesai.orgThe quality attributes of a proposed quality model (quality model for extreme programming) are defined in a table 3.
And the sub features of proposed quality model (quality model for extreme programming) are defined in table 4.

Availability
It refers to working ability of the application.The degree to which a system can continue to work when a major component or set of components goes down.[11] Efficiency A set of attributes that relate to the relationship between the level of performance of the software and the amount of resources used, under stated conditions.

Usability
A set of attributes that relate to the effort needed for use, and on the individual assessment of such use by a stated or implied set of users.

Testability
Attributes of software that relate to the effort needed for validating the modified software.Flexibility Flexibility refers to the ability of an application to undergo changes when required without affecting the overall application.[11]

Portability
A set of attributes that relate to the ability of software to be transferred from one environment to another.[11]

Maintainability
A set of attributes that relate to the effort needed to make specified modifications.Ease of modification Ease of interaction Ease of adaptation

Compatibility
Ease of installation Ease of code addition Ease of upgradation Ease of defect correction Final Product www.ijacsa.thesai.org

Reliability
A set of attributes that relate to the capability of software to maintain its level of performance under stated conditions for a stated period of time.[3] Time based efficiency This characteristic indicates the ability to perform a specific task at the correct time, under specified conditions.[3] Storage based efficiency It is the ability to store and manage data that consumes the least amount of space with little to no impact on performance; resulting in a lower total operational cost.[3] User satisfaction It is the degree to which a system is pleasant to use for the user.Modularity It is the degree to which a system's components may be separated and recombined.Heterogeneity It is the degree to which a system's components are separated and flexible enough so that they can be tested or used easily.
Separation of concerns Separation of concerns (SoC) is a design principle for separating a computer program into distinct sections, such that each section addresses a separate concern.
Ease of modification Corrections, improvements or adaptations of the software to changes in environment and in requirements and functional specifications.
Ease of adaptation Attributes of software that relate to on the opportunity for its adaptation to different specified environments without applying other actions or means than those provided for this purpose for the software considered.

Compatibility
Software that is composed of elements that can easily combine with other elements.
We have tried to validate our model with the help of a dynamic simulation tool (iThink).The graphs generated at the end (figures 4, 5 and 6) are showing that when we increase our inflows that means when we increase rate of availability, rate of efficiency, rate of modifiability, rate of portability then we see that quality of the process increases with time and vice versa.And we are changing the values of different attributes then graph is changing constantly.In this way we can say that if we emphasize on a quality process and we will maintain quality steps at every development phase then quality of SDLC will continue to increase.organization that relies on the software development.Thus the quality issue related to the software's industry becomes more important, apparent and more technical also considering the user's requirements in this aspect.The following work demonstrates the need for and a detailed quality model for an XP process as well as for an XP product.Further this also highlight that if we want a quality product then we must concentrate on the quality of the process first and only by estimating quality attributes of a quality process (ISO 25000) we can achieve a quality product metrics (ISO 9126).
Improving software quality and performance has become a priority for almost every organization that relies on the software development.As software development grows more powerful the users demand are more powerful, sophisticated software.Thus the quality issue related to the software's industry becomes more important, apparent and more technical also considering the user's requirements in this aspect.To value customer trust and overall quality as defined by International Standards (ISO/ IEC 9126 & 25000), the quality metrics attributes must be taken into account in the planning and design of the software.
Further, in Quality estimation (metrics/ attributes) in Agile Development (XP) as we basically involves user stories, customer availability, pair programming, small releases etc., if we specify which quality attributes are most important for XP which was briefly highlighted using the proposed model.The following methodology (framework) proposed essentially represents all the phases/ steps of extreme programming and the quality parameters that are necessary to achieve the quality product in this way.As concluded already we have to subsist with this that in case to accomplish a quality product, quality of the process must be considered a prime initiative.
The following paper presents a comprehensive quality model for agile and specifically for extreme programming.All www.ijacsa.thesai.orgthose attributes that have highest influence on the quality of agile SDLC and agile product are included and mentioned in this model.The influence and effect of each quality model has also been presented in tabular form and also in the form of graph.It has been observed availability, flexibility and maintainability has the highest effect on the quality of agile SDLC and agile product.

Fig. 1 .
Fig. 1.Effect of quality attributes on extreme programming development process V. PROPOSED MODEL On the basis of these results from the survey, we have developed our quality model for Extreme Programming (Agile).

Fig. 6 .
Fig. 6.Development in progress vs quality VI.CONCLUSION Software systems have to ensure consistent and bug free execution at a rapid pace every time they are used especially in Agile Development.Improving software quality and performance has become a priority for almost every

Table I
comprehensively highlight the comparison of different quality models/ frameworks ascribed in detail in literature in section II.

TABLE II .
EFFECT OF QUALITY ATTRIBUTES ON EXTERME PROGRAMMING SDLC & XP PRODUCT

TABLE III .
DEFINITIONS OF QUALITY ATTRIBUTES USED IN PROPOSED MODEL

TABLE IV .
DEFINITIONS OF SUB ATTRIBUTES USED IN PROPOSED MODELOperabilityAttributes of software that relate to the users' effort for operation and operation control.