INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal Research Article ISSN 2277 9140 ABSTRACT Analysis and tabular comparison of popular SDLC models Seema 1, Sona Malhotra 2 1 SE department, U.I.E.T. Kurukshetra University, Kurukshetra 2 CSE department, U.I.E.T. Kurukshetra University, Kurukshetra cma.kanyan@gmail.com doi:10.6088/ijacit.12. 13006 This paper is concerned with the software management processes that examine the area of software development through the development models, which are known as software development life cycle. It represents six of the software development models namely, waterfall, Prototyping, Incremental, RAD, Spiral and Extreme programming. This paper provides a framework which serve as a basis for analyzing the similarities and differences among different life cycle models. Therefore, the main objective of this research is to represent different models of software development and make a comparison between them to show the features and defects of each model. Keywords: Software Project, Software Process Models, Software Development Life Cycle, SDLC phases, Comparison between five models of Software Engineering. 1. Introduction The purpose of this paper is to provide an understanding of the Software Development Lifecycle (SDLC) models available to software developers. A Software Project is instructions (computer programs) that, when executed, provide desired features, function and performance; data structures that enable the program to adequately manipulate information and documents that describe the operation and use of the program [1]. Software engineers have to face many challenges when they start developing a new software project like developing techniques to build software project that can easily cope with heterogeneous platforms and execution environments. There are various software development approaches defined and designed, which are used/employed during development process of a software, these approaches are also referred to as "Software Development Process Models". Each process model follows a particular life cycle in order to ensure success in the process of software development. Note that the SDLC acronym is also used to represent System Development Life Cycle. New SDLC models are introduced on a regular basis as new technology and new research requires new SDLC techniques. Recent new SDLC models include Extreme Programming and Agile Development. This paper looks at the most commonly known and used models and describes situations where the model is an appropriate choice. 2. SDLC Models A software project, regardless of whether it is large or small, goes through certain defined stages, which together, are known as the Software Development Life Cycle (SDLC) [2]. There are five phases that are the part of the SDLC. These phases are:- Received on May 2012, Published on July 2012 277
Systems Investigation Identify problems or opportunities. Systems Analysis How can we solve the problem? Systems Design Select and plan the best solution. Systems Implementation Place solution into effect. Systems Maintenance and Review Evaluate the results of the solution. SDLC models are created based on the various phases of the SDLC, the order in which they occur and the interaction between them. The output generated by each phase serves as the input for the next. 1) Waterfall Model 2) Prototyping Model 3) Incremental Model 4) Rapid Application development (RAD Model) 5) Spiral Model 6) Extreme Programming 2.1 Waterfall Model Waterfall model is the most well known software lifecycle development model. It is very simple to understand and use. Each next phase in this model must beginning only after the previous phase is over. This model specifies what the system is supposed to do (i.e. define the requirements) before building the system (i.e. designing) and plans how components are going to interact (i.e. designing) before building the component (i.e. coding). Strength Simple and easy to use. Easy to manage due to the rigidity of the model each phase has specific deliverables and a review process. Milestones are better understood Sets requirements stability Phases are processed and completed one at a time. Works well for smaller projects where requirements are very well understood. Reinforces good habits: definebefore- design, design-before-code. Works well when quality is more important than cost or schedule. Weakness No working software is produced until late during the life cycle. High amounts of risk and uncertainty. Idealized, doesn t match reality well. Software is delivered late in project, delays discovery of serious errors. After project requirements are gathered in the first phase, there is no formal way to make changes to the project as requirements change or more information becomes available to the project team. It might not a good model for complex projects or projects that take more than a few months to complete. Waterfall software development model may be applicable to projects where: Software requirements clearly defined and known Software development technologies and tools is well known New version of the existing software system is created Product definition is stable Seema, Sona Malhotra 278
Requirements Specification Design Phase Implementatio Testing Phase 2.2 Prototyping Model Figure 1: Waterfall Model Maintenance Instead of freezing the requirements before a design or coding can proceed, a throwaway prototype is built to understand the requirements. This prototype is developed based on the currently known requirements. Prototyping is an attractive idea for complicated and large systems for which there is no manual process or existing system to help determining the requirements. A prototype is a toy implementation of a system; usually exhibiting limited functional capabilities, low reliability, and inefficient performance. Strength Users are actively involved in the development It provides a better system to users, as users have natural tendency to change their mind in specifying requirements. Interaction with the prototype stimulates awareness of additional needed functionality Errors can be detected much earlier as the system is mode side by side. Quicker user feedback is available leading to better solutions. Weakness Leads to implementing and then repairing way of building systems. Practically, this methodology may increase the complexity of the system as scope of the system may expand beyond original plans. Tendency to abandon structured program development for codeand-fix development. Overall maintainability may be overlooked. The customer may want the prototype delivered. Process may continue forever (scope creep) Prototyping software development model may be applicable to projects where: Requirements are unstable or have to be clarified Develop user interfaces Short-lived demonstrations New, original development Seema, Sona Malhotra 279
Requirements Quick Design Refine Requirements Build Prototype Customer Suggestions Customer Evaluation of the Prototype Design Acceptance by Customer Implement Test Maintain Figure 2: Prototyping Model 2.3 Incremental model Incremental model is an evolution of waterfall model. The product is designed, implemented, integrated and tested as a series of incremental builds. The incremental model prioritizes requirements of the system and then implements them in groups. Each subsequent release of the system adds function to the previous release, until all designed functionality has been implemented. It is the process of constructing a partial implementation of a total system and slowly adding increased functionality or performance. STRENGTH Generates working software quickly and early during the software life cycle. More flexible - less costly to change scope and requirements. Easier to test and debug during a smaller iteration. Easier to manage risk because risky pieces are identified and handled during its iteration. Lowers initial delivery cost Risk of changing requirements is reduced WEAKNESS Problems may arise pertaining to system architecture because not all requirements are gathered up front for the entire software life cycle. Requires early definition of a complete and fully functional system to allow for the definition of increments. Each phase of an iteration is rigid and do not overlap each other. Total cost of the complete system is not lower. Requires good planning and design Seema, Sona Malhotra 280
Design & Development Testing Implementation Requirements Design & Development Testing Implementation Design & Development Testing Implementation Figure 3: Incremental Model Incremental software development model may be applicable to projects where: Risk, funding, schedule, program complexity, or need for early realization of benefits. Most of the requirements are known up-front but are expected to evolve over time A need to get basic functionality to the market early On projects which have lengthy development schedules On a project with new technology Software Requirements are well defined, but realization may be delayed. The basic software functionality are required early 2.4 RAD Model RAD model combines the best available techniques and specifies the sequence of tasks that will make those techniques most effective. This model makes use of evolutionary prototypes that are eventually transformed into the final product. A set of CASE tools is used to support modeling, prototyping and code reusability, as well as automating many of the combinations of techniques. It implements timeboxed development that allows development teams to quickly build the core of the system and implement refinements in subsequent releases. RAD software development model may be applicable to projects where: Reasonably well-known requirements User involved throughout the life cycle Project can be time-boxed Functionality delivered in increments High performance not required Low technical risks Seema, Sona Malhotra 281
Project Setup 10 Days Preliminary interviews & RAD workshop 20 Days Iterative Design & Rebuild Develop Iteration## 100 Days Evaluate Iteration## Another Iteration Review, Rebuild & Implement 20 Days Figure 4: RAD Model Implementation Review STRENGTH The time required to develop the software is drastically reduced due to a reduced requirement analysis. All the software prototypes produced can be kept in a repository for future use. Project cost controls are easier to implement and manage as well. It is a big cost saver in terms of project budget as well as project time and cost due to reusability of the prototypes. Helps in saving time required for testing. The project management requirements are collected in a dynamic manner. If there are any additional requirements, these are then included in the next prototype built. It promotes better documentation through written test cases. WEAKNESS This method may not be useful for large, unique or highly complex projects. This method cannot be a success if the team is not sufficiently motivated and nor is unable to work cohesively together. There are times when the team ignores necessary quality parameters such as consistency, reliability and standardization. Hence this can make project quality management hard to implement during the project management life cycle. It should not be used for new cutting edge functionality which has not been developed before. Success depends on the extremely high technical skills of the developers. 2.5 Spiral Model The spiral model combines the idea of iterative development (prototyping) with the systematic, controlled aspects of the waterfall model. It allows for incremental releases of the product, or incremental refinement through each time around the spiral. The spiral lifecycle model allows for elements of the product to be added in when they become available or known. This assures that there is no conflict with previous requirements and design. Seema, Sona Malhotra 282
Documents are produced when they are required, and the content reflects the information necessary at that point in the process. Like the product they define, the documents are works in progress. The idea is to have a continuous stream of products produced and available for user review. The development spiral consists of four quadrants: Quadrant 1: Determine objectives, alternatives, and constraints. Quadrant 2: Evaluate alternatives, identify, resolve risks. Quadrant 3: Develop, verify, next-level product. Quadrant 4: Plan next phases. STRENGTH High amount of risk analysis. Good for large and mission critical projects Software is produced early in the software life cycle. Provides early indication of insurmountable risks, without much cost. Users see the system early because of rapid prototyping tools. Critical high-risk functions are developed first The design does not have to be perfect Early and frequent feedback from users Cumulative costs assessed frequently WEAKNESS Can be a costly model to use. Risk analysis requires highly specific expertise. Project s success is highly dependent on the risk analysis phase. Doesn t work well for smaller projects. Determine objective alternatives and constrains Cumulative cost Indentify and resolve risks Commit to an approach for the next iteration Review Partition START Requirements plan, lifecycle plan Risk Risk Risk Prototyp Prototype Concept of Operation Risk Prototy Operationa l Simulators Models Benchm Evaluate Plan the next iteration Development plan Integration and test plan Release Accepta Integra tion Unit Test Detaile Code Develop the deliverables for the Seema, Sona Malhotra 283
Spiral software development model may be applicable to projects where: When creation of a prototype is appropriate When costs and risk evaluation is important For medium to high-risk projects Long-term project commitment unwise because of potential changes to economic priorities Users are unsure of their needs Requirements are complex Significant changes are expected (research and exploration) 3. Extreme Programming Model: Extreme Programming improves a software project in five essential ways; communication, simplicity, feedback, respect, and courage. Extreme Programmers constantly communicate with their customers and fellow programmers. They keep their design simple and clean. They get feedback by testing their software starting on day one. They deliver the system to the customers as early as possible and implement changes as suggested. Every small success deepens their respect for the unique contributions of each and every team member. With this foundation Extreme Programmers are able to courageously respond to changing requirements and technology. The most surprising aspect of Extreme Programming is its simple rules. Extreme Programming is a lot like a jig saw puzzle. There are many small pieces. Whole Team Collective Ownership Test-Driven Development Coding Standard Customer Tests Pair Refactoring Planning Game Continuous Integration Simple Design Sustainable Pase Small Release Seema, Sona Malhotra 284
Strength Lightweight methods suit small-medium size projects. Produces good team cohesion. Emphasizes final product. Iterative. Test based approach to requirements and quality assurance. Weakness Difficult to scale up to large projects where documentation is essential. Needs experience and skill if not to degenerate into code-and-fix. Programming pairs is costly. Test case construction is a difficult and specialized skill. 4. Tabular Comparison of SDLC Models Features Waterfall Prototyping Incremental RAD Spiral XP Requirements Beginning Frequently Beginning Timebox Beginning Defined Specification changed released incrementally Cost Low High Low Low Expensive Low Guarantee Of Less Good High Good High High Success Simplicity Simple Simple Intermediate Very Intermediate Simple Simple Overlapping No Yes No No Yes No Phases overlapping Risk High Low Easily manage Very Low Low Low Involvement Expertise High Medium High Medium High High Required Changes Difficult Easy Easy Easy Easy Easy Incorporated User At High Intermediate High High High Involvement Beginning Flexibility Rigid Highly Less Flexible High Flexible Flexible flexible Maintenance Least Glamorous Routine Maintenance Promoted maintainability Easily Maintained Typical Easily Maintained Integrity & Least Weak Robust Vital High Robust Security Reusability Limited Weak Yes High High High Documentation Vital Weak Yes Yes Yes Yes & Training Required Time Frame Long Short Very Long Short Long Short Seema, Sona Malhotra 285
5. Conclusion SDLC models are tools that allow the development team to correctly follow the SDLC steps to create software that meets a business need. The SDLC models have evolved as new technology and new research have addressed weaknesses of older models. Ideas have been borrowed and adapted between the various models. After completing this research, it is concluded that: 1. There are many existing models for developing systems for different sizes of projects and requirements. 2. Waterfall model and spiral model are used commonly in developing systems. 3. Each model has advantages and disadvantages for the development of systems, so each model tries to eliminate the disadvantages of the previous model. References 1. K. Schwalbe(2009), Information Technology Project Management, 6th Edition, Cengage Learning. 2. S. Bhattacharjee, 2009, Software Development Life Cycle (SDLC), MOF, College of Agricultural Banking, RBI, Pune. 3. Nabil Mohammed Ali Munassar1 and A. Govardhan A Comparison Between Five Models Of Software Engineering International Journal of Computer Science Issues, Vol. 7, Issue 5, September 2010. 4. James E. Purcell, Comparison of Software Development Lifecycle Methodologies. 5. ALAN M. Davis, Senior Member, IEEE, EDWARD H. BERSOFF, Senior Member, IEEE and EDWARD R. Comer, Member, IEEE A Strategy for comparing alternative software development life cycle models IEEE Transaction on Software Engineering, vol.14, no.10, October 1988. 6. http://www.iboss - Support throughout the Software Development Life Cycle.html 7. DISS 725 System Development: Research Paper 1- SDLC on a Diet by Ronald G. Wolak wolakron@nova.edu 8. Ashish B.S..., Dr.Vinay C.. Survey of Software Life Cycle Models by Various Documented Standards IJCST Vol. 2, Iss ue 4, Oct. - Dec. 2011. Seema, Sona Malhotra 286