SDLCs Models PDF
Document Details
Tags
Summary
This document details various software development life cycle (SDLC) models. It explains different approaches to developing software systems, including Waterfall, Incremental, Spiral, V-Model, Agile, Prototyping, and Usability Engineering Life Cycle. Each model has its own phases and characteristics, and their use depends on the specific project requirements. This information is helpful for understanding and evaluating various software development methodologies.
Full Transcript
SDLC’s Information System Development Life Cycle Models SDLC The life cycle of an IS development begins with its creation and ends with its termination. It goes through various stages: “requirements, analysis, design, construction (or coding), testing (validation), installation, operat...
SDLC’s Information System Development Life Cycle Models SDLC The life cycle of an IS development begins with its creation and ends with its termination. It goes through various stages: “requirements, analysis, design, construction (or coding), testing (validation), installation, operation, maintenance, and the less emphasized retirement” the conventional “life cycle is composed of five phases: Investigation, User Requirements, Analysis, Design, Implementation and Release. The Waterfall Model it is a step-by-step sequential description of the product’s life cycle It spans 7 different stages, 1. system requirements, 2. software requirements, 3. analysis, 4. program design, 5. coding, 6. testing and 7. operations” The Waterfall Model five key principles essential for the successful development of large software systems. 1. “program design comes first.” 2. “document the design 3. “do it twice,” 4. “plan, control and monitor testing.” 5. “involve the customer.” The Waterfall Model the increasing speed of technological evolution and the subsequent need to swiftly deliver new software systems and products. errors will only be detected very late in the process, during the testing phase The communication of objectives between developers and clients is also greatly hindered This model is an idealized and greatly simplified concept of SDLC. It is not very flexible, but it is still popular as a conceptual basis for other frameworks or models. The Incremental Model the whole process can instead be designed, tested, and implemented one fraction at a time, in successive stages, so that with each stage (or increment), there can be at least some feedback from the client. Each stage is scheduled and structured to allow the development of parts of the system at varied rates and times and to incorporate them into the global project when they are finished. Development is broken into smaller efforts. the downside is that it can be more costly to develop and release multiple versions of the product. it can have compatibility issues with earlier versions of the product The Incremental Model the iterative and incremental development model (IIDM). very similar to incremental but puts greater emphasis on the relationships that occur with each increment and between them. IIDM is a more fluid description of development It allows more space and significance for feedback The Spiral Life Cycle Model the spiral model attempts to bring together key aspects of some other prominent models: waterfall, incremental, and evolutionary prototyping) consists of a series of cycles or iterations. Each cycle begins with the identification of objectives and requirements of the current stage, as well as an analysis of alternatives and constraints. This process will highlight areas of uncertainty (risk) The Spiral Life Cycle Model each cycle or iteration of the process will invariably display six particular characteristics, which he named the “invariants.” Invariant 1 is the concurrent definition of key artifacts Invariant 2 is that each cycle follows the four strategic principles that correspond to the four quadrants of the model: determine objectives, evaluate risks, develop and test, and plan the next iteration. Invariant 3 is that the level of effort is determined by the risk considerations. The Spiral Life Cycle Model Invariant 4 is that the degree of detail is driven by risk considerations Invariant 5 refers to the use of anchor point milestones described as “Life Cycle Objectives (LCO), Life Cycle Architecture (LCA) and Initial Operational Capability (IOC)” (Boehm 2000). Invariant 6 states that the development process needs to focus also on the overall life cycle itself. The Spiral Life Cycle Model it is not very efficient in smaller projects; the risk assessment process can increase the expenses of the system The V Life Cycle Model emphasizes the existing connection between each of the stages of the development process and its respective stage of tests The product is checked and approved at each stage of the process, before it can move on to the next stage the project goes down the ladder from analysis of requirements and specifications, to architectural and detailed design, to coding. the testing steps follow coding, goes up the ladder starting with unit testing and ending with acceptance testing, the final step before final release The V Life Cycle Model V-Model describes three successive layers of system development requirements (overall system), high-level design (system architecture), and low-level design (software components) for each layer, corresponds a layer of planning Testing The Advanced V Life Cycle Model Advantages less expensive to resolve errors testing is fractioned throughout the process: all the parties are involved. testing methods are adequate to each of the stages. tests performed since the beginning of the process increases its efficiency Disadvantages model is very rigid little room for flexible adaptation any alteration in the requirements will render all existing documentation and testing obsolete. it is clearly optimized for large projects within large organizations Rapid Application Development step-by-step structured life cycles entail delays and errors, urging the need for an alternative methodology. RAD comprises a set of tools and guidelines that facilitate short-time deployment, within a predefined time frame or “timebox.” The product is not developed in successive steps, but rather in successive increments, following the business priorities both developers and customers are involved in all of the increments. Underlying models to the product’s design are still necessary, but not as rigid step-by-step guides Each increment is developed in a spiral-like model, through design, prototyping, and testing. Rapid Application Development Rapid Application Development Advantages focus on swift delivery and Effective developer–client communication Disadvantages Less emphasis on minute planning and modeling at the start of the project, Extensive quality testing is less prioritized, reflecting in poorer overall quality, It is also possible to have unrealistic expectations regarding the timeboxes, creating conflict with developing teams Agile Life Cycle Model 1. Customer satisfaction is the highest priority; 2. Change in requirements is welcomed, no longer an obstacle; 3. Software is delivered regularly in consecutive releases; 4. Motivated individuals are key to successful projects; 5. Face-to-face conversation is paramount to successful collaboration; 6. Working software is the measure of the project’s progress; 7. Sustainable development should be encouraged; 8. Emphasis on technical and design quality; 9. Simplicity should be favored; 10. Self-organizing teams are the best form of project development; 11. There should be regular discussions on team improvement. Agile Life Cycle Model Agile Life Cycle Model There are numerous subvariations of the Agile model such as the scrum and XP models. Aside the variation in timescales or stage description, the general agile development process is outlined in four steps: 1. project selection and approval. establishes the scope, purpose, and requirements of the product. analysis of different alternatives and risk assessment for each 2. project initiation. a working team is built, with the appropriate environment and tools, the working architecture and establish working time frames and schedules 3. construction iterations, each iteration consists of both planning and building in successive increments. Close collaboration is therefore a fundamental aspect of this process. Extensive testing of each iteration is also paramount at this point. 4. product release. This stage encompasses two stages: First, final testing of the entire system and any necessary final reworks and documentations. Next, the product is released, training is provided to the users in order to maximize operational integration. The working team might maintain the project so as to allow for product improvement and user support (Fig. 2.6) Advantages dexterity in developing products at a greater speed emphasis on collaborative efforts and documentation flexibility and ability to be combined with other existing models. capacity to deliver systems with changing requirements while demanding strict time limits. high degree of client satisfaction and user-friendliness, reduced error margins ability to address the needs of highly mutable requirements. The Prototyping Model since the early 1980s based on the idea of creating the entirety or part of a system in a pilot version, called the prototype. build various versions and refine them until a final product is reached The emphasis is on the creation of the software, with less attention to documentation. It is a user-centric approach. an iterative framework at the center of many of the more agile approaches, It can be viewed as a) a part of the larger SDLC or b) the central approach that defines the SDLC itself. The Prototyping Model A prototyping model entails four different stages. 1. First, user’s requirements and needs are analyzed and identified. 2. Next, the team will develop a working prototype of the product, 3. prototype is implemented so that the users can test it and provide real- time feedback and experience. 4. If changes are found necessary, the prototype is revised and refined, and a new prototype is released and implemented for testing. This subcycle will go on until the product is accepted by the users at which time the final version is released The Prototyping Model There are various types of prototyping, according to specific needs of the project, that can be summarized in three categories: The exploratory approach centered on the premise that requirements are thoroughly explored with each iteration. essentially a method of delivering fast releases with each iteration, exploring needs and requirements with each version, and perfecting the next version accordingly. the spiral model is another form of exploratory prototyping, where prototypes are employed in successive stages of the development process, each following the waterfall pattern The experimental approach a solution to the user’s needs is first proposed and then evaluated through experimental use. delivering only the most essential features of the system so the user can get a general idea of what the final product will be like it is the most common form of prototyping (Floyd 1984). The evolutionary approach essentially describes development in successive versions and is closest to incremental and iterative life cycle models The prototype is used fundamentally to allow for easier contact with the product, in order to pinpoint perceived needs. Each prototype is a version of the product, and each version serves as the prototype for the next one. The Prototyping Model Advantages can easily adapt to changing requirements, much higher probabilities of success, as well as low risks. the time frame for the development is much shorter than with rigid models Disadvantages prototyping models are weak on analysis and design planning. There is little control over costs and resources, prototyping is ideal for larger projects and particularly for user-centric ones. Usability Engineering Life Cycle primarily related to user interface design apply structured iterative design and evaluation to all stages of the SDLC analysis/design, development, evaluation. within the three sections, the successive activities are performed, in a waterfall-like process. Usability Engineering Life Cycle Crucial is determining the product’s user base User task analysis is the central activity at the beginning of the process (achieved through surveys, interviews, observation,…) Evidently user-centric, financially effective with very high usability. it helps the development of extremely user-friendly systems prevents errors that derive from human misuse of the interface, thus promoting high productivity. has the potential to decrease expenses The Star Life Cycle Model each step does not necessarily fall in a fixed position within a fixed process. The essential stages of developmentcan be processed in various orders and various time frames, The possibility of going back over a given stage numerous times or completely skipping another stage if it proves irrelevant. Users are positioned at the center of the development cycle Hybrid System Development Life Cycles SDLC models each have their own characteristics, which can be both advantageous and detrimental, depending on the type of project requirements and features. if the particular characteristics of the project do not necessarily fit one specific model, it is possible to combine guidelines from more than one. This combination is primarily done to harness the qualities of a model and reduce its weaknesses by incorporating the strengths of another model. End SDLC’s