Software Processes and Models PDF

Summary

This document provides an overview of software processes and models, including the Software Development Life Cycle (SDLC), waterfall model, iterative model, and spiral model. It explores the characteristics, advantages, and disadvantages. It covers various aspects, from basic concepts to advanced models used in software engineering.

Full Transcript

Chapter Two Software Processes and Models Introductio n What is a process? A process is an organized set of activities, which transforms inputs to outputs.  We can use synonyms of process such as: procedure, method, course of action,...

Chapter Two Software Processes and Models Introductio n What is a process? A process is an organized set of activities, which transforms inputs to outputs.  We can use synonyms of process such as: procedure, method, course of action, etc. Software engineering as a discipline has many processes.  In the context of software engineering, a process is an adaptable approach that enables the people doing the work (the software team) to pick and choose the appropriate set of work actions and tasks. The intent is always to deliver software in a timely manner and with sufficient quality to satisfy those who have sponsored its creation and those who will use it.  What is it? Software process When you work to build a product or system, it’s important to go through a series of predictable steps—a road map that helps you create a timely, high-quality result. The road map that you follow is called a “software process.”  Who does it?  Software engineers and their managers adapt the process to their needs and then follow it.  In addition, the people who have requested the software have a role to play in the process of defining, building, and testing it.  Why is it important? Cont’d… Because it provides stability, control, and organization to an activity that can, if left uncontrolled, become quite chaotic.  What are the steps? At a detailed level, the process that you adopt depends on the software that you’re building.  What is the work product? From the point of view of a software engineer, the work products are the programs, documents, and data that are produced as a consequence of the activities and tasks defined by the process. Cont’d…  How do you ensure that you have done it right? There are a number of software process assessment mechanisms that enable organizations to determine the “maturity” of their software process. However, the quality, timeliness, and long-term viability of the product you build are the best indicators of the efficacy of the process that you use. Cont’d …  Software process: organizing a structured set of activities to develop software systems. These processes help in performing different software engineering activities in an organized manner. Characteristics of processes Produces intermediate and final products. Each process activity has entry and exit criteria Activities are organized in sequence, so timing is clear. Each process has guiding principles including goals of each activity. Uses resources, subject to set of constraints (such schedule, as no. of people working ) May be composed of sub-processes with hierarchy or links Cont’d …  There are many different software processes but all must include four activities. I. Software specification: the functionality of the software and constraints on its operation must be defined. II. Software design and implementation: the software to meet the specification must be produced. III.Software validation: the software must be validated to ensure that it does what the customer wants. IV. Software evolution: the software must evolve to meet changing customer needs. Sequential Software Process models Sequential models such as Waterfall or V-Model rely on intensive periods of collecting and refining requirements for a product before design and development activity can take place. Products developed using these models are intended to be complete when released to customers. Central to the approach is an assumption that by adhering to the requirements captured at the beginning, the product will fulfil the wishes of those customers. Cont’d… Source: www.richrtesting.com (Richard Rogers) Iterative Software Process Models Emphasis on delivering less complex products, often to test customer response before making adjustments. The techniques encourage regular feedback from customers, and rapid response to that feedback; refining ideas and revisiting design and development activities with the intention of delivering products which better reflect what customers want. Cont’d … Source: www.richrtesting.com (Richard Rogers) Software Development Life Cycle (SDLC) A Software Development Life Cycle (SDLC) is a well-defined, structured sequence of stages in software engineering to develop the intended software product. It is a process used by the software industry to design, develop and test a high quality software.  It aims to produce a high quality software that meets or exceeds customer expectations, reaches completion with in times and cost estimates. It is also called Software Development Process. Cont’d … The software development lifecycle begins with the identification of a requirement for software and ends with the formal verification of the developed software against that requirement. So SDLC goes through a series of phases. Helps to understand the entire process Enables planning of resources in advance Enforces a structured approach to development Helps to track progress of the system  The software development life-cycle Cont’d… can be divided into 5-9 phases: Project initiation and planning Project identification and selection Feasibility study Project analysis System design Coding Testing Implementation Maintenance Cont’d I. Problem definition … It is the decision about problems in the existing system and the motivation for system change. The need for changes in the existing system are identified and shortcomings of the existing system are detected. which leads to Feasibility Study. II. Feasibility Study is an analysis of the viability of an idea. Answer the essential question of “should we proceed with the proposed project idea?” Used to identify how, where, and to whom you intend to sell a service or product. Provides detail concept about your business. How and where the business is operate How can I succeed Cont’d…  Organizational Feasibility: is how well a proposed information system supports the objectives of the organization and is a strategic plan for an information system.  Economic feasibility (Cost/Benefits Analysis): how much start-up capital is needed, sources of capital, returns on investment( profit ), etc. if a project can’t cover its development costs, it won’t be approved,  Technical Feasibility  Operational Feasibility  Schedule Feasibility  Political Feasibility Cont’d … III. Project Analysis: a detailed study of the various operations performed by a system and their relationships within and outside the system. Examine and document the relevant aspects of the existing system, its shortcomings and problems. Analyze the findings and record the results. Define and document the proposed system. Test the proposed design against the known facts. Produce a detailed report to support the proposals. Estimate the resources required to design and implement the system. Cont’d… The objective is to provide solutions to stated problems, usually in the form of specifications to meet the users requirements and to make recommendations for a new computer-based system. Analysis is iterative and progressive process. IV. System Design: it is the most creative and challenging phase.  Determining data required to produce the output  Determining processing methods and using software  Determining methods of data capture  Defining detailed critical procedures  Calculating timings of processing Cont’d … V. Coding: the goal of the coding phase is to translate the design of the system into code in a given programming language. affects both testing and maintenance VI. Testing: testing is the major quality-control measure used during software development. Its basic function is to detect errors in the software VII. Implementation: it is mainly concerned with user training, site selection, and preparation and file Cont’d … VIII.Maintenance: it is an important part of the SDLC.  But it has some problems: Availability of a few maintenance tools. User may not accept the cost of maintenance. Standards and guidelines of project may be poorly defined. A good test plan is lacking.  There Classifications of SDLC Model are a number of different models for software development lifecycles which describe the interrelationships between software development phases.  Waterfall model  prototype model  incremental model  V-shaped model  Spiral model Waterfall  Organize the activities in linear fashion. model Each phase is end up with expected output in the forms of document. Waterfall model is the simplest model. All the phases of SDLC will function one after another in linear manner. That is, when the first phase is finished then only the second phase will start and so on. Classical Waterfall Model Cont’d…  Classical waterfall model is idealistic: Assumes that no defect is introduced during any development activity. In practice developers commit errors: Defects do get introduced in almost every phase of the life cycle. Iterative Waterfall Model Cont’d  … Defects usually get detected much later in the life cycle: For example, a design defect might go unnoticed till the coding or testing phase.  Once a defect is detected: The phase in which it occurred and parts of the work already completed subsequent phases needs to be reworked.  Therefore need feedback paths in the classical waterfall model. Cont’d … Waterfall model Strengths Easy to understand, easy to use Provides a reference to inexperienced staff Provides requirements stability Facilitates strong management control (plan, staff, track) Waterfall Deficiencies All requirements must be known upfront Does not accommodate any change. There is no risk analysis. Can give a false impression of progress. Little opportunity for customer to pre-view the system. Cont’d… When to use the Waterfall Model Requirements are very well known and stable Technology is understood Experienced Development team When it is possible to produce a stable design E.g. a new version of an existing product E.g. porting an existing product to a new platform. Prototype process model It is model implementation of the project with limited functionalities. The prototype model suggests that before development of the actual software, a working prototype of the system should be built first. What is a Prototype? It is a quickly developed, easily modifiable and extendible working model of the required application. Reasons for prototyping Cont’d… learning by doing: useful where requirements are only partially known improved communication improved user involvement reduces the need for documentation reduces maintenance costs i.e. changes after the application goes live Cont’d… Prototyping: advantages Cont’d… The resulting software is more usable User needs are better accommodated The design is of higher quality The resulting software is easier to maintain Overall, the development incurs less effort Prototyping Weaknesses Sometimes expensive Overall maintainability may be overlooked Process may continue forever (scope creep) Cont’d… What is the main goal of prototyping model? To avoid early freezing of the requirements. Instead of freezing the requirement, prototype is built to understand the requirement. To enable the client to better understand the requirement. Cont’d … When to use the Prototyping Model? When requirements are not known at the beginning of the project. When requirements are unstable and constantly changing. When quick demonstrations are required. When user requires proof of concept. Incremental Incremental process development is dividing model the project in various independent parts and developing these sub-parts at the same rate/ different rate and integrating them when ready.  Steps Develop a system in smaller portions at a time. Then slowly add increased functionality. Each subsequent release of the system adds function to the previous release, until all designed functionality has been implemented. Cont’d… Cont’d… Incremental Model Strengths Develop high-risk or major functions first Each release delivers an operational product Customer can respond to each build Uses “divide and conquer” breakdown of tasks Lowers initial delivery cost Initial product delivery is faster Customers get important functionality early Cont’d … Incremental Model Weaknesses ⚫ Requires good planning and design ⚫ Requires early definition of a complete and fully functional system to allow for the definition of increments ⚫ Well-defined module interfaces are required ⚫ Total cost of the complete system is not lower Cont’d… When to use the Incremental Model ⚫ 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 Spiral Model The spiral model is an evolutionary software process model that couples the iterative feature of prototyping with the controlled and systematic aspects of the linear sequential model. It implements the potential for rapid development of new versions of the software. Using the spiral model, the software is developed in a series of incremental releases. During the early iterations, the additional release may be a paper model or prototype. During later iterations, more and more complete versions of the engineered system are produced. Cont’d… Cont’d…  Each cycle in the spiral is divided into four parts:  Objective setting: Each cycle in the spiral starts with the identification of purpose for that cycle, the various alternatives that are possible for achieving the targets, and the constraints that exists.  Risk Assessment and reduction: The next phase in the cycle is to calculate these various alternatives based on the goals and constraints. The focus of evaluation in this stage is located on the risk perception for the project. Cont’d…  Development and validation: The next phase is to develop strategies that resolve uncertainties and risks. This process may include activities such as benchmarking, simulation, and prototyping.  Planning: Finally, the next step is planned. The project is reviewed, and a choice made whether to continue with a further period of the spiral. If it is determined to keep, plans are drawn up for the next step of the project. Cont’d…  The development phase depends on the remaining risks. For example, if performance or user-interface risks are treated more essential than the program development risks, the next phase may be an evolutionary development that includes developing a more detailed prototype for solving the risks.  The risk-driven feature of the spiral model allows it to accommodate any mixture of a specification-oriented, prototype-oriented, simulation-oriented, or another type of approach. An essential element of the model is that each period of the spiral is completed by a review that includes all the products developed during that cycle, including plans for the next cycle. The spiral model works for development as well as enhancement projects. Cont’d … Spiral Model Strengths 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 Users can be closely tied to all lifecycle steps Early and frequent feedback from users Cumulative costs assessed frequently Cont’d … Spiral Model Weaknesses Time spent for evaluating risks too large for small or low- risk projects Time spent planning, resetting objectives, doing risk analysis and prototyping may be excessive The model is complex Risk assessment expertise is required Spiral may continue indefinitely May be hard to define objective, verifiable milestones that indicate readiness to proceed through the next iteration Cont’d… When to use Spiral Model When creation of a prototype is appropriate When costs and risk evaluation is important For medium to high-risk projects Users are unsure of their needs Requirements are complex When changes may require at any time Large and high budget projects When deliverance is required to be frequent. V Model It is a variant of the Waterfall emphasizes verification and validation V&V activities are spread over the entire life cycle. Verification and validation (V & V) is intended to show that a system conforms to its specification and meets the requirements of the system customer. In every phase of development: Testing activities are planned in parallel with development. Developers life cycle Cont’d… Testers life cycle Verification: Cont’d… It involves a static analysis method (review) done without executing code. It is the process of evaluation of the product development process to find whether specified requirements meet. Validation: It involves dynamic analysis method (functional, non-functional), testing is done by executing code. Validation is the process to classify the software after the completion of the development process to determine whether the software meets the customer expectations and requirements. Verification and Validation process is joined by coding phase in V-shape. Thus it is known as V-Model. 5 2 Cont’d V. Shaped Steps … Project and Requirements Planning – allocate resources Product Requirements and Specification Analysis – specification of the software system complete Architecture or High-Level Design – defines how software functions fulfill the design Detailed Design – develop algorithms for each architectural component Coding – transform algorithms into software Unit testing – check that each module acts as expected Integration and Testing – check that modules interconnect correctly System and acceptance testing – check the entire software system in its environment Production, operation and maintenance – provide for enhancement and corrections Cont’d … V model Strengths Emphasize planning for verification and validation of the product in early stages of product development. Each deliverable must be testable Easy to use V Model Weaknesses Does not support overlapping of phases Does not handle iterations or phases Does not easily handle later changes in requirements Does not support risk analysis activities Cont’d … When to use V Model All requirements are known up-front Solution and technology are known Natural choice for systems requiring high reliability: Embedded control applications Thank You! ? 5 7

Use Quizgecko on...
Browser
Browser