Download Software Development Life Cycle and more Essays (university) Software Development Methodologies in PDF only on Docsity!
ASSIGNMENT 1
Qualification BTEC Level 5 HND Diploma in Computing Unit number and title Unit 9 : Software Development Life Cycle Submission date 01/03/2023 Date Received 1st submission Re-submission Date Date Received 2nd submission Student Name Le Nguyen Quoc Huy Student ID BC Class IT05101 Assessor name Tran Van Nhuom Student declaration I certify that the assignment submission is entirely my own work and I fully understand the consequences of plagiarism. I understand that making a false declaration is a form of malpractice. Student’s signature Grading grid P1 P2 P3 P4 M1 M2 D1 D
Summative Feedback: Resubmission Feedback: Grade: Assessor Signature: Date: Internal Verifier’s Comments: Signature & Date:
- A. Introduction
- B. Content
- I. Describe two iterative and two sequential software lifecycle models(P1).
- Waterfall model
- 1.1. Waterfall Model – Design..........................................................................................
- 1.2. Waterfall Model – Application
- 1.3. Advantages and Disadvantages of Waterfall Model
- Prototyping Model
- 2.1. Prototyping Model Phases
- 2.2. Types of Prototyping Models
- 2.3. Best Practices of Prototyping...................................................................................
- 2.4. Advantages and Disadvantages of Prototyping Models
- Spiral Model
- 3.1. Spiral Model – Design..............................................................................................
- 3.2. Spiral Model Phases
- 3.3. Spiral Model Application
- 3.4. Advantages and Disadvantages of Iterative Model
- V-Model
- 4.1. V-Model – Design
- 4.2. V-Model - Verification Phases
- 4.3. V- Model ─ Application
- 4.4. Advantages and Disadvantages of the V-Model
- Agile Model
- 5.1. Phases of Agile Model
- 5.2. Types of Agile
- 5.3. Advantages and disadvantages of the Agile Model
- II. Explain how risk is managed in the Spiral lifecycle model (P2).
- Identify some risks and discuss an approach to managing them.
- a. What is risk management?
- b. Why is risk assessment important?.............................................................................
- c. What is the goal of risk assessment?..........................................................................
- d. Five Steps of the Risk Management Process
- e. Risk Management Matrix of Tune Source project
- f. Risk management table
- III. Explain the purpose of a feasibility report (P3).
- What is a feasibility report?
- Importance of feasibility report?
- What is the objective of the feasibility report?
- Type feasibility
- 4.1. Technical Feasibility
- 4.2. Operational Feasibility
- 4.3. Economic Feasibility
- 4.4. Legal Feasibility
- 4.5. Schedule feasibility
- IV. Describe how technical solutions can be compared (P4)
- Feasible criteria
- Alternative matrix for the Tune Source project
- Choose an Alternative to Tune Source
- development environment(M1). V. Describe, with an example, why a particular lifecycle model is selected for a
- VI. Discuss the components of a feasibility report(M2).
- Economic Feasibility Report
- Organizational Feasibility Report
- C. Conclusion
- References
- Figure 1: Waterfall model List Of Figure
- Figure 2: Prototyping model
- Figure 3: Spiral Model
- Figure 4: V-Model
- Figure 5: Agile Model
- Figure 6: Different phases of Agile
B. Content I. Describe two iterative and two sequential software lifecycle models(P1).
1. Waterfall model - The first Process Model presented was the Waterfall Model. The linear sequential life cycle model is another name for it. It is quite easy to grasp and use. Each step in the waterfall model must be finished before the next stage can begin, and there is no overlap between the phases. - The Waterfall Model was the first SDLC method utilized in software development. - The waterfall model depicts a systematic, linear flow of software development. This indicates that any step of the development process may begin only after the preceding phase has been completed. The phases in this waterfall model do not overlap. 1.1. Waterfall Model – Design - The Waterfall technique was the first SDLC Model extensively utilized in Software Engineering to assure project success. The whole software development process is separated into stages in "The Waterfall" technique. Typically, the conclusion of one step serves as the input for the following phase in this Waterfall approach. - The Waterfall model's consecutive stages are as follows: Figure 1 : Waterfall model
- Requirement Gathering and analysis: At this phase, all potential system needs are identified and recorded in a requirement specification document.
- System Design: This phase studies the need requirements from the previous phase and prepares the system design. This system design aids in the specification of hardware and system requirements, as well as the definition of the overall system architecture.
- Implementation: The system is initially built-in discrete programs called units, with input from the system design, and then combined in the following step. Unit Testing is the process of developing and testing each unit for functioning.
- Integration and Testing: After testing each unit, all of the units built during the implementation phase are merged into a system. After integration, the complete system is tested for flaws and failures.
- Deployment of system: Upon the completion of functional and non- functional testing, the product is deployed in the client environment or launched to the market.
- Maintenance: There are several difficulties that arise in the client environment. Patches are published to address these vulnerabilities. In order to improve the product, newer versions are published. Maintenance is performed in order to implement these modifications in the client environment.
- All of these stages are connected in such a way that progress is perceived to flow smoothly downhill (like a waterfall) through the phases. The next phase is begun only once the established set of objectives are fulfilled for previous phase and it is signed off, therefore the term "Waterfall Model". Phases do not overlap in this model. 1.2. Waterfall Model – Application
- Every program development is distinct and needs a proper SDLC methodology to be followed depending on the internal and external aspects. Some circumstances where the application of Waterfall model is most suited include
discovering any technical or commercial bottleneck or issues early.
2. Prototyping Model - Prototyping Model is a software development approach in which prototype is produced, tested, and tweaked until an acceptable prototype is obtained. It also builds basis to generate the final system or program. It works well in cases when the project’s needs are not understood in full. It is an iterative, trial and error approach which takes place between developer and client. Figure 2 : Prototyping model 2.1. Prototyping Model Phases
- The SDLC stages for the Prototyping Model are as follows:
- Step 1: Requirements gathering and analysis: A prototyping model begins with requirement analysis. At this phase, the needs of the system are described in depth. Throughout the process, the users of the system are interviewed to know what is their expectation from the system.
- Step 2: Quick design: The second step is a preliminary design or a rapid design. At this step, a rudimentary design of the system is produced. Unfortunately, it is not a comprehensive design. It delivers a quick understanding of the system to the user. The rapid design assists in creating the prototype.
- Step 3: Build a Prototype: Based on the information acquired from the rapid design, a real prototype is developed in this step. It is a modest functioning model of the desired system.
- Step 4: Initial user evaluation: At this step, the proposed system is delivered to the customer for an initial review. It helps to figure out the strength and weakness of the working model. Feedback and suggestion are gathered from the client and delivered to the developer.
- Step 5: Refining prototype: If the user is not content with the present prototype, you need to improve the prototype according to the user’s input and ideas. This phase will not over until all the conditions provided by the user are satisfied. If the user is pleased with the produced prototype, a final system is developed based on the authorized final prototype.
- Step 6: Implement Product and Maintain: After the final system is constructed based on the final prototype, it is fully tested and put to production. The system receives frequent maintenance for reducing downtime and avoid large-scale breakdowns. 2.2. Types of Prototyping Models
- Prototyping models are classified into four types: ▪ Rapid Throwaway prototypes ▪ Evolutionary prototype ▪ Incremental prototype ▪ Extreme prototype 2.3. Best Practices of Prototyping
- You should utilize Prototyping when the requirements are unclear
- It is vital to do planned and controlled Prototyping.
- Frequent meetings are crucial to maintain the project on track and prevent expensive delays.
- The users and the designers should be aware of the prototype challenges and hazards.
- At a very early level, you need to approve a prototype and only then enable the team to advance to the next phase.
- If the buyer is dissatisfied with the original prototype, he or she may lose interest in the product. 3. Spiral Model
- The spiral model blends the notion of repeated development with the waterfall model's methodical, regulated characteristics. This spiral model is a hybrid of the iterative development process model and the sequential linear development model, often known as the waterfall model, with a heavy focus on risk analysis. It enables incremental product launches or incremental refining with each iteration around the spiral. Figure 3 : Spiral Model 3.1. Spiral Model – Design
- The spiral model is divided into four stages. A software project goes through these stages in iterations known as Spirals.
- Identification This step begins with acquiring the baseline spiral's business needs. This phase is used to identify system requirements, subsystem requirements, and unit requirements in future spirals as the product grows.
This phase also involves continual contact between the client and the system analyst to understand the system requirements. The product is launched in the specified market at the conclusion of the spiral.
- Design The Design process begins with the conceptual design in the baseline spiral and covers architectural design, logical design of modules, physical product design and the final design in the successive spirals.
- Construct or Build The Build phase relates the construction of the real software product at every spiral. In the baseline spiral, when the idea is simply conceived of and the design is being created a POC (Proof of Concept) is built in this phase to collect client input. Then in the future spirals with better clarity on requirements and design specifics a functional model of the program called build is generated with a version number. These builds are delivered to the client for feedback. 3.2. Spiral Model Phases Spiral Model Phases Activities performed during the phase Planning It comprises calculating the cost, timing and resources for the iteration. It also entails knowing the system requirements for constant communication between the system analyst and the client Risk Analysis As a risk mitigation strategy is created and approved, possible risks are identified. Engineering It comprises testing, creating and installing software at the client location Evaluation Assessment of software by the client. Additionally, encompasses identifying and monitoring risks such as schedule slippage and cost overrun
- The V-Model is an extension of the waterfall model that is based on assigning a testing phase to each development step. This implies that there is a testing phase for every single step of the development cycle. This is a very disciplined plan, and the next step begins only once the previous phase is completed. 4.1. V-Model – Design - The relevant testing phase of the development phase is scheduled in tandem under the V-Model. Hence, on one side of the 'V,' there are Verification stages, and on the other, there are Validation phases. The Coding Phase connects the V-two Model's halves. 4.2. V-Model - Verification Phases Figure 4 : V-Model ❖ Business Requirement Analysis This is the initial stage of the development cycle in which the product needs are understood from the viewpoint of the client. This phase entails extensive discussion with the consumer to ascertain his expectations and precisSe requirements. This is a critical operation that must be effectively handled since most clients are unsure about what they need. At this point, acceptance test
design is completed since business requirements may be utilized as input for acceptance testing. ❖ System Design After you have the precise and thorough product requirements, it is time to design the whole system. The system design would contain the knowledge and describing the whole hardware and communication architecture for the product under development. The system test strategy is established based on the system design. ❖ Architectural Design At this phase, architectural requirements are understood and developed. Typically, many technological approaches are presented, with the ultimate selection dependent on technical and budgetary viability. The system design is further subdivided into modules that perform distinct functions. This is often referred to as High Level Design (HLD). This phase clarifies and defines data transport and communication between internal modules and with the outside world (other systems). ❖ Module Design At this phase, the exact internal design for all the system components is described, referred to as Low Level Design (LLD). It is crucial that the design is compatible with the other modules in the system architecture and the other external systems. The unit tests are an integral aspect of any development process and helps remove the maximum flaws and mistakes at a very early stage. These unit tests may be built at this time depending on the internal module designs. ❖ Coding Phase The Coding phase is responsible for the actual coding of the system components established during the design phase. The optimal programming language for the job is chosen based on the system and architectural requirements.
- The following are some of the best cases for using the V-Model application:
- The requirements are properly specified, well documented, and well fixed.
- The product definition is consistent.
- The project team understands the technology and it is not dynamic.
- There are no criteria that are confusing or undefined.
- The project is brief. 4.4. Advantages and Disadvantages of the V-Model Advantages Disadvantages
- Phases are performed one at a time in this highly disciplined methodology.
- Works effectively for smaller projects with well-defined needs.
- Easy to grasp and use.
- Because of the model's rigidity, it is simple to manage. Each phase includes its own set of deliverables and a review procedure.
- Uncertainty and high risk.
- Not suitable for complex, object- oriented programs.
- Bad model for long-term projects.
- Not appropriate for projects with a moderate to high risk of changing needs.
- It is tough to update a feature after an application has entered the testing stage.
- Until late in the life cycle, no functioning software is developed. 5. Agile Model
- The Agile Model is a software development method that is gradual and iterative. It predetermines the number, length, and scope of each repetition. Under the Agile process paradigm, each iteration is considered a brief "frame," often lasting two to four weeks.
- To offer particular functionality for the release, the Agile Model separates jobs into time frames. In terms of functionality, each build is incremental, with the final version comprising all of the characteristics. The breaking down of the whole project into smaller pieces helps to reduce project risk and ultimate project delivery time.
Figure 5 : Agile Model 5.1. Phases of Agile Model
- Here are the different phases of Agile: Figure 6 : Different phases of Agile
- The following are the critical phases in the SDLC life cycle that are engaged in the Agile Model process: - Requirements Gathering: In this Agile model step, you must specify the requirements. The project's commercial potential, as well as the time and effort necessary, should be reviewed. You may establish the economic and technological viability of a system by studying this data. - Design the Requirements: After the feasibility study, you may begin defining needs with stakeholders. You may establish how the new system