Font Size: a A A

Research On Software Reliability Analysis And Correlative Questions In Agile Development Methodology

Posted on:2009-12-02Degree:DoctorType:Dissertation
Country:ChinaCandidate:X H WangFull Text:PDF
GTID:1118360248452807Subject:Computer software and theory
Abstract/Summary:PDF Full Text Request
Agile methodology,such as Extreme Programming(XP),is one kind of adaptive development process and mainly focuses on team's working efficiency and marketing time.The development process based on the-agile methods is evolutionary,iterative and incremental.During the period of the development,the plan can be adjusted in time according to the requirement changes from customers.While the agile method tries to strengthen the response to changes,working software,and collaboration between developers and customers,it also tries to weaken the documentations, contracts and tools.By frequently delivering working software to customers and acquiring the information feedback rapidly from them,the software quality can therefore be enhanced.Since the agile process is generally regarded as an unpredictable process,the quantitative analysis on its development periods,effort,reliability,etc.,has not widely been studied.Nevertheless,the XP as one of the agile process is implemented by working with quantifiable user stories and completed through iterative and incremental development processes.These characteristics of XP actually provide a good basis for further quantitative analysis on the software system.This thesis studies the methods and techniques for software reliability prediction in agile development processes.Focusing on the XP process,one of the agile. development methods,the following research topics are specially addressed and explored:the management of software reliability,its early prediction method,the generation of dynamic requirements,change management,requirements implementation,etc.Furthermore,the estimation methods on iteration periods and iteration effort of XP projects are presented.The research results of this thesis further provides the evidence that the XP itself can serve as a well-defined tool for requirement verification and validation.The main contributions of this thesis are summarized as follows.Firstly,a simpleand realistic mathematical method to estimate the development efficiency and iteration periods in an XP project is provided in this thesis.The proposed method considers the fact that user stories can be well defined and are implemented incrementally in different fixed time-box.In the method,the development period of an XP project depends on the productivity of the development team.Furthermore,the productivity can be represented by the probability in which all user stories can successfully be achieved in each iteration phase.The method,given and demonstrated with a set of simulation data in this thesis,can be useful in the estimation of development cost and effort,and therefore be an important tool in sol,ware reliability management in an XP project.Secondly,this thesis provides an approach to calculate the important metrics representing project size,development effort,task effectiveness(TE),etc.These metrics are valuable for managing the requirement and the quality of the final product. It is known that the user's requirements can be expressed as user stories in an XP project,and the sum of total story points can be regarded as the size of software project.All of these user stories are incrementally implemented in different iteration phases at certain development velocity.An integrated sol,rare product will be made when all user stories are finished.Nevertheless,how to manage the process and predict the total efforts are still research questions to study.The approach given in this thesis has provided a starting point to quantify the project management process.By using the simulation data,the approach is illustrated.Thirdly,the affect of XP testing process on the defects of different function groups in different iteration periods is studied in this thesis.The method is based on the unique feature of the XP development process:test-driven,multi-releases and user's usage testing.Note that the user stories in one release are divided into different function groups through iteration plan when these release plans are ongoing.In the method presented,the amount of defects of different function groups in different iteration periods is estimated by analyzing the continuous testing process of XP project and the rising process of software product functionality,measuring the rate of correcting defects,and numerical simulation for XP process.The simulation results indicate that the number of defects of the core function groups is near zero.The result shows that the XP process based on user's usage testing and iteration incremental development process is very effective for improving software reliability.Fourthly,a new reliability prediction model is developed in the case of k-release XP project in this thesis.It is assumed that there will beκsets of failure data after the kth release is finished.The fundamental assumption of the proposed model is that there is consistent reliability management in an XP project.Under the reliability management,the software product has an initial reliability when all user stories are put into software,and all release plans are realized.The initial reliability can be measured through designing test cases based on operational profile that is used to guide the customer to test the working software,and collecting failure data by developers.Combining the collective rate of defects and adequacy of test cases,the prediction model is therefore established.By using the simulation,the proposed model has been validated to be realistic.Finally,the core value of the agile methods such as XP lies in the adaptation to changes,the collaboration with customers and the role of individuals.The project managers,developers and customers should have a tactic to handle the uncertain factors and the management conflicts in software development process.The XP's on-site customer practice makes the customers play an important role in development process,and facilitate the broad collaboration between developers and customers. However,the methods do not provide a well-define procedure and approach on how to integrate such strategy into the real practice.This thesis proposes a model to specify the respective activities and responsibilities between development and customer teams.Also,the issues on how the collaboration between the developer and customer is thoroughly discussed.The contribution is consequently important to make the agile methods more practical.
Keywords/Search Tags:Agile Methodology, Extreme Programming, Iteration Period, Iteration Effort, Reliability testing, Software Reliability, Collaboration Relationship
PDF Full Text Request
Related items