System Development Life Cycle Models PDF
Document Details
Uploaded by Deleted User
Tags
Summary
This document provides a detailed explanation of various system development life cycle (SDLC) models, covering their respective advantages and disadvantages. It highlights the importance of employing systematic methodologies in software development projects, emphasizing the significance of each model's unique features. It further aids in understanding the factors to consider while choosing the most suitable methodology for a particular software project.
Full Transcript
Chapter 3: System Development Life Cycle Models Since there were a lot of organizations, which were deciding on automation, it was felt that some standard and structural procedure or methodology be introduced in the industry so that the transition from manual to automated system became easy. The co...
Chapter 3: System Development Life Cycle Models Since there were a lot of organizations, which were deciding on automation, it was felt that some standard and structural procedure or methodology be introduced in the industry so that the transition from manual to automated system became easy. The concept of a system life cycle came into existence then. The life cycle model emphasized the need to follow some structured approach towards building new or improved systems. A waterfall model was among the very first models that came into existence. Later, many other models were introduced. System development begins with the recognition of user needs. Then, there is a preliminary investigation stage. It includes evaluation of the present system, information gathering, feasibility study, and request approval. The feasibility study includes technical, economic, legal, and operational feasibility. In economic feasibility, a cost-benefit analysis is done. After that, there are detailed design, implementation, testing and maintenance stages. Definitions The methodology is “the description of the major activities to be carried out during the period of the project, who should be involved in each activity and the role they should play”. The methodology is “a documented set of practices and procedures that define the development life cycle and specify how systems are to be developed”? The methodology is a formalized approach to implementing the SDLC, it is a list of steps and deliverables). From the given definitions it can be seen that a methodology is a set of tools and techniques, procedures for their use, and roles of personnel during the systems development lifecycle. Different methodologies have different tools and techniques. Why use a methodology? It minimizes the cost of staff. It maximizes the productivity of staff. – development framework – provide correct tools. – provide frequent checks on progress. – reduce extra documentation. it maximizes the quality of systems development. 1 – through more flexibility – better documentation – relationship with user – allowing frequent review/walkthroughs – allowing for software project management There are many different systems development methodologies, and each one is unique, based on the order and focus it places on each SDLC phase. There are many categories for methodologies such as Structured Design, Rapid Application Development, and Agile Development The most popular software development methodologies include the following: 1. Waterfall Model 2. The Iterative Model 3. Spiral Model 4. Agile Model 5. Prototype Model 1. Waterfall Model The waterfall model prescribes that each stage must be completed before the next stage can commence. This simplistic (and easy to manage) process begins to break down as the complexity and size of the project increases. Over time on the waterfall, both the risks and the cost to repair errors increase. 2 Even large systems must be fully understood and analyzed before progress can be made to the design stage. The complexity increases and becomes crushing for the developers. Risk is pushed forward. Major problems often emerge at the latter stages of the process - especially during system integration. On large projects, each stage will run for extremely long periods. Also, as the analysis phase is performed at the beginning of the project, we run a serious risk of failing to understand the customer's requirements. Even if we follow a rigid requirements management procedure and sign off requirements with the customer, the chances are that by the end of Design, Coding, Integration and Testing, the final product will not necessarily be what the customer wanted. There is nothing wrong with a waterfall model for providing the project is small enough. If the project can be tackled by a small team of people, with each person able to understand every aspect of the system, and if the lifecycle is short (a few months), then the waterfall is a valuable process. Advantages of the Waterfall Model Easy to understand and Great for beginners. Effortlessly manageable Individual review process for each phase for easy task management Deliverables are clearly identified. Ease of process makes testing and analysis simpler. Disadvantages of the Waterfall Model No client feedback is available during the initial stages Straightforward requirements are required to use this method. Not ideal for long or ongoing projects Issues are often not identified until system testing. Not feasible to go back and make changes once the product is in the testing phase. 2. The Spiral Model In the spiral process, the project has been divided into five phases, each phase building on the previous one and with a running release of software produced at the end of each phase. 3 In this approach, we attack the project in a series of short lifecycles, each one ending with a release of executable software. With this approach: ▪ The team can work on the entire lifecycle (Analysis, Design, Code, Test) rather than spending years on a single activity ▪ We can receive early and regular feedback from the customer, and spot potential problems before going too far with development ▪ We can attack risks up-front. Particularly risky iterations (for example, an iteration requiring the implementation of new and untested technology) can be developed first ▪ The scale and complexity of work can be discovered earlier ▪ Changes in technology can be incorporated more easily ▪ A regular release of software improves spirits ▪ The status of the project (e.g. how much of the system is complete.) can be assessed more accurately Advantages of Spiral Model Focuses more on risk avoidance. Ideal for large and complex enterprise-level software development that requires prototyping and analysis frequently 4 Accurate understanding of requirements Enables end-users to view the product in the early stages The usage of prototypes is extensive. Disadvantages of Spiral Model Not easy to manage and maintain. Not ideal for small or low-risk projects Development costs can be expensive when utilized for small projects Numerous intermediate stages need to be documented 3. The Iterative Model The Iterative, Incremental Model is a logical extension to the spiral model but is more formal and rigorous. Also known as the Incremental Software Development Method, this methodology applies to products that are developed on an incremental basis. The process begins with a half-done software product and then developers will keep integrating more features and functionalities into the software until the software is fully complete. The framework is divided into four major phases: Inception; Elaboration; Construction and Transition. These phases are performed in sequence, but the phases must not be confused with the stages in the waterfall lifecycle. 5 Inception The inception phase is concerned with establishing the scope and defining a vision of the project. Possible deliverables from this phase are: ▪ A Vision Document ▪ An initial exploration of the customer's requirements ▪ A Business Case (including success criteria and a financial forecast, estimates of the Return on Investment, etc.) ▪ An initial risk assessment ▪ Project plan. Elaboration The purpose of elaboration is to analyze the problem, develop the project plan further, and eliminate the project risk areas. By the end of the elaboration phase, we aim to have a general understanding of the entire project. Two of the UML models are often invaluable at this stage. The Use Case Model helps us to understand the customer's requirements, and we can also use the Class Diagram to explore the major concepts our customer understands. Construction At the construction phase, we build the product. This phase of the project is not carried out in a linear fashion. The product is built in the same fashion as the spiral model, by following a series of iterations. Each iteration is, the simple waterfall model. By keeping each iteration as short as possible, we aim to avoid the nasty problems associated with waterfalls. At the end of as many iterations as possible, we will aim to have a running system. These iterations are called Increments, hence the name of the framework! The Construction Phase consists of a series of "mini-waterfalls" Note that at the inception and elaboration phases, prototypes can be built. These prototypes can be developed in the same way - as a series of mini waterfall iterations. A single iteration should typically last between 2 weeks and 2 months. Any more than two months may lead to an increase in complexity. A bigger and more complex project should not automatically imply the need for longer iterations - this will increase the level of complexity the developers need to handle at any one time. 6 Transition The final phase is concerned with moving the final product across to the customers. Typical activities in this phase include: ▪ Beta releases for testing by the user community ▪ Running the product in parallel with the legacy system that the product is replacing ▪ Training the new users ▪ Marketing, Distribution and Sales The Transition phase should not be confused with the traditional test phase at the end of the waterfall model. At the start of the Transition, a full, tested and running product should be available for the users. Advantages of the Iterative Model Results are achieved in cycles Enables an easy project progress Requirements can be effortlessly changed Minimum time to test and debug if the interactions are small Ideal for complex projects Reduces initial time for production Allows for parallel deployment Disadvantages of the Iterative Model Takes more management as there will be more iterations Not ideal for small projects Risk analysis is required from skilled resources. Too much dependency on risk analysis 4. Prototype Model The Prototype model refers to the process of creating prototypes of software, in other words, these prototypes are the incomplete versions of the software that is being developed. In the prototype model, the client can get a visual representation of the product using minimal features. This gives a better understanding of client requirements in the early development stages as the developers get valuable feedback from the client. 7 System prototyping performs the analysis, design, and implementation phases concurrently to quickly develop a simplified version of the proposed system and give it to the users for evaluation and feedback. The system prototype is a “quick and dirty” version of the system and provides minimal features. Following reactions and comments from the users, the developers reanalyze, redesign, and re-implement a second prototype that corrects deficiencies and adds more features. This cycle continues until the analysts, users, and sponsors agree that the prototype provides enough functionality to be installed and used in the organization. The key advantage of a prototyping-based methodology is that it very quickly provides a system with which the users can interact, even if it is not ready for widespread organizational use at first. The major problem with prototyping is that its fast-paced system releases challenging attempts to conduct careful, methodical analysis. Often the prototype undergoes such significant changes that many initial design decisions become poor ones. This can cause problems in the development of complex systems because fundamental issues and problems are not recognized until well into the development process. 8 Advantages of Prototype Model Client involvement right from the early stages of product development A sample working model of the software will be provided to the users for the betterment of the product. Minimizes cost and development time due to early defect identification. Quick user feedback makes the process much faster. Missing requirements in the functionality or feature are easily identifiable. Disadvantages of Prototype Model Insufficient analysis of requirements due to over-dependency on the prototype Unfamiliar users with prototypes can confuse sample models with complete systems. The process must be monitored to build an effective prototype. Requirements may change more frequently than expected. Documenting non-functional elements is complicated. 5. Which methodology is best for software development? There is no one simple answer to this question. The methodology you choose will depend on the type of project, development costs, flexibility, and many other factors. So, selecting the appropriate methodology might be based on the following factors: Clarity of Requirements Familiarity with the Technology System Complexity System Reliability Project size Project resources 9