<<

International Journal of Engineering Research & Technology (IJERT) ISSN: 2278-0181 Vol. 3 Issue 11, November-2014 Development Process and Methodologies: A Review

Neetu Kumari Lodhi Prof. Pankaj Dalal M.Tech (S.E.) Scholar Associate Professor Shrinathji Institute of Technology & Engineering, Nathdwara-313301

Abstract - process and methodologies plays a vital role in the success of software applications. Several software development processes exist for software development. Here we are focusing on two popular development processes, Rational (RUP) and Agile Process, with their several methodologies. The Most popular RUP methodologies are Waterfall, Spiral, Prototyping, Rapid application development (RAD), V-shaped etc. and (XP), scrum, feature driven development (FDD), adaptive software development (ASD), dynamic system development method (DSDM) etc. of agile process are reviewed with comparison of the various metrics cost, time, complexity, application size, flexibility to change etc.. Fig.1 Phases [03] Keywords- Software development process, software

development methodologies, Rational Unified Process, Agile process, metrics. The Inception phase includes customer communication and INTRODUCTION planning. The Elaboration phase includes planning and Software development process is the framework, is used to modeling activities. The construction phase make each use structure, control and manage the software development. cases operational for end users. The testing and deployment This basic framework allows to the several methodologies are part of transition phase. Deployment includes to develop and maintain software. The RUP and agile delivery and feedback activity. [03] processes are most popular development process in the There are three core principles of RUP are use-case driven, software industry. These are basic framework that can beIJERT IJERTArchitecture centric, iterative and incremental. Use-case modified as per software application . This model describes the complete functionality of the system. modification is done by using different presents a view of complete system that development methodologies. Software development control system development. Architecture involves methodologies are collection of procedures, techniques, usability, performance, resilience, functionality, reuse and tools, activities and principles that are used to help to the comprehensibility; all within economic and technological developer to develop a software application. [01] constraints. RUP process splits the project into sub parts and develops them iteratively and incrementally. Iterations 2. RATIONAL UNIFIED PROCESS AND ITS are steps in workflow and increments are growth in the METHODOLOGIES project. [02] Rational Unified Process is a software development Methodologies that falls under RUP process are waterfall, framework that develops a project iteratively and spiral, prototyping, rapid application development (RAD), incrementally by using a set of activities such as V-shaped, incremental, iterative etc. -gathering, analysis, design, implementation was proposed by Winston Royce in 1970. and testing with the help of use-cases. [2] It is linear, sequential and conventional model. It follows requirement gathering, design, coding, testing, delivery and maintenance in sequential manner thus no phase can be RUP develops into four phases they are such as Inception, started before previous phase has been completed and there Elaboration, Construction and Transition. is no way to go in previous phase in order to make changes during the development. Advantages: Waterfall model is useful where all the requirements can be gathered initially. It has well defined output after each phase. It is easy and simple to understand. Disadvantages: It takes long time due to sequential manner, no early prototypes, very rigid. Idealized hence do not match with reality. [04][05]

IJERTV3IS111236 www.ijert.org 1338 (This work is licensed under a Creative Commons Attribution 4.0 International License.) International Journal of Engineering Research & Technology (IJERT) ISSN: 2278-0181 Vol. 3 Issue 11, November-2014

In order to remove causes of failure of waterfall model feedback. These phases carried out continuously until many methodologies have been developed that are based customer gets satisfied. Customer satisfaction is the highly on the iterative development. Spiral model combines the prioritized feature with short development time. [10] iterative and incremental approach in order to offer Agile process employs various methodologies for different opportunities to make changes or add new requirements. It types of application. The most popular agile methodologies focuses on risk analysis during each iteration/spiral. are Extreme Programming (XP), Scrum, Feature Driven Advantages: Risk analysis. It is most suited for complex Development (FDD), Adaptive Software Development safety critical system, and early visibility of prototypes. (ASD), Dynamic System Development Method (DSDM), Disadvantages: Expensive, consumes long time duration, Crystal Clear, Lean development etc. Each methodology complex to understand and implementation, requires risk concerns with best practices in order to achieve maximum analysts, does not work well for small, less risky projects. benefit. [04][05] Extreme Programming (XP) Prototyping Prototyping develops prototypes with main aspects or XP is introduced by in 2000, based on small functionality to ensure to both developer and customer that release in order to satisfy the user about progress of the it is feasible solution for proposed problems. If it is feasible project. The twelve best practices make it successful. It then prototype is refined and turned into final product. emphasizes on the simple design, pair programming, Advantages: It reduces time and cost, user involvement, continues code improvement, and test based development. change tolerant, quick implementation of incomplete but Integration started as the small releases have been functional requirements, identifies requirements during developed. Kai Stapel, Daniel Lübke, Eric Knauss [11] development. Disadvantages: Insufficient requirement and described that to fulfill the requirements of the analysis, less documentation, schedule, cost and application extreme programming applies twelve best time cannot be estimated. [06][07] practices: planning game, small releases, metaphor, simple Rapid Application Development (RAD) design, testing pair programming, collective code RAD model is based on tight time constraints hence used ownership, continues integration, 40-hour week, onsite where requirements are well understood with restricted customer and coding standards. Advantages: Short time scope. It is most suitable to offer full functionality in short duration, Small team, user involvement, user can see the time duration. RAD model make use of techniques and progress of the development, test driven development. tools in order to fast development. It splits the project for Disadvantages: Onsite customer may be embracing for the parallel development to reduce complexity and time. development team, pair programming is costly, requires Advantages: Short time duration, reusability of only experienced and skilled team members, works well components, modularization, works well for small or only with small-medium sized project. [04][08] medium size application. Disadvantages: Costly due to Scrum model use of ample resources with experts, tight time constraints,IJERT IJERTScrum methodology was introduced by Ken Swaber in requires skilled team members to make interfacing among 1995. Scrum methodology is based on the sprints, daily the existing components and newly developed components. scrum meetings and sprint planning. Sprints are small [06][07] functionality that is developed within 30 days. This duration never extends hence customer gets satisfied due to V-Shaped Model on time delivery. Scrum model resolves the problems and V-Shaped model is like the waterfall model but start testing complexities of each team members in daily scrum from the early phases in order to identify problems in early meeting. Advantages: Short time duration, daily scrum phases. Advantages: Easy and simple to understand and meeting, user involvement, review sprints, focuses on team use, each phase has well defined documents or communication and can work with any technology. deliverables, high success rate over waterfall model due to Disadvantages: Works well only with small sized testing from the very beginning, Works well where application, requires collocated team members, employs requirements can gather initially, documentation stables the skilled and experienced team. [09][10][12] requirements. Disadvantages: Sequential hence no phase Feature Driven Development (FDD) can be start before the previous phase has been completed, FDD is based on the feature based decomposition. Features very rigid, no early prototypes are developed due to are small client valued functions. FDD emphasizes on implementation is done only at last, does not provide clear planning, upfront design and quality assurance activities. path for the problems found during testing. [04][08] FDD decompose the project into small features and allocate to the small feature team. Feature team develops 3. AGILE PROCESS AND ITS METHODOLOGIES the feature parallel and owned by specific feature owner Agile process is a framework, based on the iterative and who is responsible for the code of the software. Each incremental development in which requirements are feature develops in one to two weeks. FDD puts heavy accomplished by the welcome of changes and active user emphasis on the quality assurance activities hence performs involvement during development. [09] inspections, reviews, walkthrough etc. Sadhna Goyal [13] Agile process follows several phases such as requirements- says that FDD applies six best practices to develop a gathering, analysis, design, coding, testing and delivery of software application successfully: domain object modeling, partially implemented product and waits for customer developing by feature, individual class (code) ownership,

IJERTV3IS111236 www.ijert.org 1339 (This work is licensed under a Creative Commons Attribution 4.0 International License.) International Journal of Engineering Research & Technology (IJERT) ISSN: 2278-0181 Vol. 3 Issue 11, November-2014

features team, inspections and . Disadvantages: Over dependence on inter human Advantages: Ensures quality of the product, costing as per collaboration, not scalable. [03] [13] feature, team collaboration, user involvement. Dynamic System Development Method (DSDM) Disadvantages: Not powerful on small sized application, DSDM is very dynamic approach. DSDM based on four sometime heavy inspections are embracing activities, long values and nine principles. Values are individuals, working time duration. [03] [12] software, collaboration and responding. These values are Adaptive Software Development (ASD) supported by the nine principles. It mainly emphasize on ASD is the risk driven approach for the complex projects. the active user involvement, frequent delivery, time-boxing It starts risk assessment as early as possible. ASD and respond to change. DSDM applies MoSCoW rules for emphasized on the human interaction and team self successful development. Acronym for MoSCoW is Must organization. It consists in three phase speculation, have, should Have, Could have and Want to have. collaboration and learning. In speculation phase it makes Advantages: Eliminate the problems of missing deadlines, planning for what to achieve in each development cycle. It going over budget, management not committed, frequent focus on the interaction between customer and team release, time boxing. Disadvantages: Unstable members to share their knowledge in collaboration phase. requirements, requires on site customer, not suitable for It allows taking decision by the team members’ instead of safety critical projects, frequent delivery leads to not to formal method of getting permission from the higher maximizing quality. [03][14] authorities. In learning phase it emphasis on learning of individual team members in order to develop a project in 4. COMPARISON OF METHODOLOGIES more efficient manner. In learning it focuses on three focus group, technical reviews and project postmortems. The discuss methodologies are compare with respect to Advantages: Risk driven development, team collaboration, eight metrics. The comparisons are tabulated as under focuses on individual team members learning, quality reviews and time boxing. Table 1. Comparison of methodologies Rational Unified Process Metrics Known Flexibil Application Risk and Complexit Methodology Requirements Quality ity to Time Cost Size Security y Initially change Resolve Risk may be complexity Requires all present due to via Small- the Good Very Long Time Waterfall post modulariza High Cost Medium Size requirements IJERT Quality rigid Duration implementatioIJERTtion and initially n High level design Involves Resolves requirements Flexibl Long Time Spiral Large Size Remove Risks High High Expensive during the e Duration complexity Quality development

Involves Risk may Don’t Small- requirements present due to Less More Short Time Prototyping resolves Less cost Medium during the less time and Quality flexible Duration complexity development cost

Risk may Rapid Requires most presents due Resolves Application Small- of the to reusable Good Flexibl Short Time only less High Cost Development Medium requirements components Quality e Duration complexity (RAD) initially and technical issue

Risk reduction via testing Resolves during complexity Requires all development via the Good Long Time V-Shaped Small- Large but post modulariza Rigid High Cost requirements Quality Duration implementatio tion and initially n may carry high level risks and design uncertainty

Agile Process

IJERTV3IS111236 www.ijert.org 1340 (This work is licensed under a Creative Commons Attribution 4.0 International License.) International Journal of Engineering Research & Technology (IJERT) ISSN: 2278-0181 Vol. 3 Issue 11, November-2014

Involves Risk reduction Don’t Extreme More Small- requirements via test driven resolves Good Programming Flexibl Short Time Low Cost Medium during the development high Quality (XP) e Duration development and reviews complexity

Involves Risk reduction Small- requirements Resolves Good Flexibl Short Time Scrum via sprint Low Cost Medium during the complexity Quality e Duration reviews development

Feature Involves According Development Medium- requirements Risk removal Resolves High Flexibl Long Time to Methodology Large during the via milestones complexity Quality e Duration Application (FDD) development size

Adaptive Involves According According Risk removal More Resolves High to to Small- Large via continues Flexibl Development during the complexity Quality Application Application risk updating e (ASD) development Size needs

Dynamic Involves Risk removal Good According System More According to requirements via continues Resolves Quality to Development Small- Large Flexibl application during the risk updating Complexity Application Method e needs development and testing Size (DSDM) 8. T Bhuvaneswari1 and S Prabaharan, “A Survey on Software 5. CONCLUSION Development Life Cycle Models”, ISSN 2320–088X, This study will make selection process easy and less time International Journal of and Mobile consuming and thus very helpful for development team. In Computing (IJCSMC), Vol. 2, Issue. 5, May 2013. 9. MALIK HNEIF, SIEW HOCK OW, Review of Agile this paper we have made comparison of the different development Methodologies in Software Development, software development methodologies on the basis of International Journal of Research and Reviews in Applied certain quality metrics size, known requirements initially, Sciences ISSN: 2076-734X, EISSN: 2076-7366 Volume 1, risk and security, complexity, quality, flexibility to change Issue 1(October 2009) time and cost. On the basis of these metrics developer can 10. Sheetal Sharma, Darothi Sarkar, Divya Gupta, Agile decide which of these software development processes and methodologies: A conceptual study, methodologies should be suitable for that particular International Journal on Computer Science and Engineering software application. Selecting the appropriate software (IJCSE), Vol. 4 No. 05 May 2012 development methodology improves development process. 11. Kai Stapel, Daniel Lübke and Eric Knauss, “Best Practices in eXtreme Programming . Course Design”, IJERTIJERT 30th International Conference on , REFERENCES 2008. 1. Software development methodology, Wikipedia 12. Kaushal Pathak and Anju Saha, “Review of Agile Software 2. Lorena Azócar Merida, Rational Unified Process (RUP) and Development Methodologies”, ISSN: 2277 128X , its relationship with the end-user in the software system International Journal of Advanced Research in Computer development process, Master thesis, January 2008 Science and Software Engineering, Volume 3, Issue 2, 3. Roger S. Pressman, “Software Engineering: A th February 2013 PRACTITIONER’S APPROACH, 7 edition”, ISBN 978– 13. Malik Qasaimeh, Hossein Mehrfard, Abdelwahab Hamou- 0– 07–337597–7, Mc Graw Hill Higher Education, 2010. Lhadj, “Comparing Agile Software Processes Based on the (QA76.758.P75) Software Development Project Requirements”, CIMCA 4. Nabil Mohammed Ali Munassar and A. Govardhan,” A 2008, IAWTIC 2008, and ISE 2008. Comparison between Five Models Of Software 14. Benjamin J. J. Voigt, “Dynamic System Development Engineering”, ISSN (Online): 1694-0814, IJCSI Method”, 20 January 2004 International Journal of Computer Science Issues, Vol. 7, Issue 5, September 2010

5. Apoorva Mishra and Deepty Dubey, “A Comparative Study of Different Software Development Life Cycle Models in Different Scenarios”, ISSN: 2321-7782, International Journal of Advance Research in Computer Science and Management Studies, Volume 1, Issue 5, October 2013 6. SELECTING A DEVELOPMENT APPROACH, March 27, 2008 7. Ms. Shikha maheshwari and Prof. Dinesh Ch. Jain, “A Comparative Analysis of Different types of Models in Software Development Life Cycle”, , ISSN: 2076-734X, EISSN: 2076-7366, International Journal of Advanced Research in Computer Science and Software Engineering, Volume 2, Issue 5, May 2012

IJERTV3IS111236 www.ijert.org 1341 (This work is licensed under a Creative Commons Attribution 4.0 International License.)