Software Development Life Cycle (SDLC) Models - Prof. FPT, Transcriptions of Computer Networks

An overview of the different software development life cycle (sdlc) models, including the waterfall model, v-model, agile, and spiral model. It discusses the advantages and disadvantages of each model, as well as the key activities and phases involved in the software development process. The document also covers the importance of risk management and feasibility studies in software development projects. It highlights the role of prototyping and iterative development in addressing project risks and uncertainties. Overall, this document offers a comprehensive understanding of the various sdlc approaches and their suitability for different types of software projects.

Typology: Transcriptions

2019/2020

Uploaded on 01/10/2023

kun-vi
kun-vi 🇻🇳

2 documents

1 / 26

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
ASSIGNMENT 1
Qualification BTEC Level 5 HND Diploma in Computing
Unit number and title Unit 9: Software Development Life Cycle
Submission date 19/06/2022 Date Received 1st submission
Re-submission Date Date Received 2nd submission
Student Name Vi Thanh Tùng Student ID BH00402
Class PBIT17103 Assessor name NGO THI MAI LOAN
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 Tùng
Grading grid
P1 P2 P3 P4 M1 M2 D1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a

Partial preview of the text

Download Software Development Life Cycle (SDLC) Models - Prof. FPT and more Transcriptions Computer Networks 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 19/06/2022 Date Received 1st submission Re-submission Date Date Received 2nd submission Student Name Vi Thanh Tùng Student ID BH Class PBIT17103 Assessor name NGO THI MAI LOAN Student declaration I certify that the assignment submission is entirely my own work and I fully understand the consequences of plagiarism. I understan that making a false declaration is a form of malpractice. Student’s signature Tùng Grading grid P1 P2 P3 P4 M1 M2 D

Summative Feedback : ❒ Resubmission Feedback : Grade: Assessor Signature: Date: Signature & Date: Table of Contents

I. Introduce The Task we get in this Quest has the following requirements:

  • Business Need: This project was started to increase sales by creating the ability to sell digital music downloads to customers through our in-store kiosks and over the Internet using our website.
  • Business Requirement: Using the Web or an in-store kiosk, customers will be able to search and purchase downloadable digital music. Specific functions that the system must have include:
  • Search for music in our digital music archive.
  • Listen to sample music.
  • Purchase individual downloads for a flat fee per download.
  • Set up a customer subscription account that allows unlimited downloads for a monthly fee.
  • Buy music download gift card.
  • Business value: We hope to gain a new revenue stream from customers subscribing to our download service. We also expect a new revenue stream from the sale of music download gift cards. Conservative estimates of tangible value to the company include: ₋ $757,500 in sales from individual music downloads. ₋ $950,000 in customer subscription revenue. ₋ $205,000 for additional CD sales in-store or website. ₋ $153,000 in revenue from music download gift cards. II. Describe two iterative and two sequential software lifecycle models.
  1. What is Software Development Life Cycle (SDLC)? Software Development is the development of software for distinct purposes. For software development, there is a specific programming language like Java, Python, C/C++, etc. The entire process of software development isn’t as simple as its definition, it’s a complicated process. Accordingly, it requires an efficient approach from the developer in the form of the Software Development Life Cycle (SDLC).

Proper planning and execution are the key components of a successful software development process. The entire software development process includes 6 stages. Software Development Life Cycle (SDLC) is the common term to summarize these 6 stages. SDLC specifies the task(s) to be performed at various stages by a software engineer/developer. It ensures that the end product is able to meet the customer’s expectations and fits within the overall budget. Hence, it’s vital for a software developer to have prior knowledge of this software development process. SDLC compliance improves development speed and reduces project risks and costs associated with alternative production methods. (What is the Software Development Life Cycle (SDLC) and how does it work? | Synopsys, 2022). Overview of the SDLC stages:

  • Planning.
  • Analysis of requirements.
  • Software design as architectural design.
  • Perform.
  • Testing & Integration.
  • Maintenance.

waterfall, it’s named the waterfall model. (2022) Waterfall Model in SDLC. Following are the different Waterfall Model phases: Different phases: Activities are performed in each stage. Requirement Gathering stage: During this phase, detailed requirements of the software system to be developed are gathered from the client. Design Stage: Plan the programming language, for example, Java, PHP, .net or databases like Oracle, MySQL, etc. Or other high-level technical details of the project. Built Stage: After the design stage, it is the built stage, which is nothing but coding the software. Test Stage:

In this phase, you test the software to verify that it is built as per the specifications given by the client. Deployment stage: Deploy the application in the respective environment. Maintenance stage: Once your system is ready to use, you may later require to change the code as per customer request. Advantages and disadvantages of the waterfall model: Advantages of the Waterfall Model. The classical waterfall model is an idealistic model for software development. It is very simple, so it can be considered the basis for other software development life cycle models. Below are some of the major advantages of this SDLC model: This model is very simple and easy to understand. Phases in this model are processed one at a time. Each stage in the model is clearly defined. This model has very clear and well-understood milestones. Process, actions, and results are very well documented. Reinforces good habits: define-before- design, design-before-code. This model works well for smaller projects and projects where requirements are well understood. Drawbacks of the Waterfall Model. The classical waterfall model suffers from various shortcomings, basically, we can’t use it in real projects, but we use other software development lifecycle models which are based on the classical waterfall model. Below are some major drawbacks of this model: No feedback path: In the classical waterfall model evolution of software from one phase to another phase is like a waterfall. It assumes that no error is ever committed by developers during any phase. Therefore, it does not incorporate any mechanism for error correction.

V-model. Design Phase: Requirement Analysis: This phase contains detailed communication with the customer to understand their requirements and expectations. This stage is known as Requirement Gathering. System Design: This phase contains the system design and the complete hardware and communication setup for developing the product. Architectural Design: System design is broken down further into modules taking up different functionalities. The data transfer and communication between the internal modules and with the outside world (other systems) is clearly understood. Module Design: In this phase, the system breaks down into small modules. The detailed design of modules is specified, also known as Low-Level Design (LLD).

Testing Phases: Unit Testing: Unit Test Plans are developed during the module design phase. These Unit Test Plans are executed to eliminate bugs at the code or unit level. Integration testing: After completion of unit testing Integration testing is performed. In integration testing, the modules are integrated and the system is tested. Integration testing is performed in the Architecture design phase. This test verifies the communication of modules among themselves. System Testing: System testing test the complete application with its functionality, interdependency, and communication. It tests the functional and non-functional requirements of the developed application. User Acceptance Testing (UAT): UAT is performed in a user environment that resembles the production environment. UAT verifies that the delivered system meets the user’s requirement and the system is ready for use in the real world. Industrial Challenge: As the industry has evolved, the technologies have become more complex, increasingly faster, and forever changing, however, there remains a set of basic principles and concepts that are as applicable today as when IT was in its infancy. Accurately define and refine user requirements. Design and build an application according to the authorized user requirements. Validate that the application they had built adhered to the authorized business requirements. Advantages and Disadvantages of the V-model: Advantages:

  • This is a highly disciplined model and Phases are completed one at a time.
  • V-Model is used for small projects where project requirements are clear.
  • Simple and easy to understand and use.
  • This model focuses on verification and validation activities early in the life cycle thereby enhancing the probability of building an error-free and good quality product.
  • It enables project managers to track progress accurately.

Agile model. Phases of Agile Model: Following are the phases in the Agile model are as follows:

  1. Requirements gathering.
  2. Design the requirements.
  3. Construction/ iteration.
  4. Testing/ Quality assurance.
  5. Deployment.
  6. Feedback.
  7. Requirements gathering: In this phase, you must define the requirements. You should explain business opportunities and plan the time and effort needed to build the project. Based on this information, you can evaluate technical and economic feasibility.
  1. Design the requirements: When you have identified the project, work with stakeholders to define requirements. You can use the user flow diagram or the high-level UML diagram to show the work of new features and show how they will apply to your existing system.
  2. Construction/ iteration: When the team defines the requirements, the work begins. Designers and developers start working on their project, which aims to deploy a working product. The product will undergo various stages of improvement, so it includes simple, minimal functionality.
  3. Testing: In this phase, the Quality Assurance team examines the product's performance and looks for the bug.
  4. Deployment: In this phase, the team issues a product for the user's work environment.
  5. Feedback: After releasing the product, the last step is feedback. In this, the team receives feedback about the product and works through the feedback. Advantages and disadvantages of the agile model:
  • Advantages (Pros) of the Agile Method:
  • Deployment of software is quicker and thus helps in increasing the trust of the customer.
  • Can better adapt to rapidly changing requirements and respond faster.
  • Helps in getting immediate feedback which can be used to improve the software in the next increment.
  • People – Not Process. People and interactions are given a higher priority rather than processes and tools.
  • Continuous attention to technical excellence and good design.
  • Frequent Delivery.
  • Face-to-Face Communication with clients.
  • Efficient design and fulfills the business requirement.
  • Anytime changes are acceptable.
  • It reduces total development time.
  • Disadvantages (Cons) of Agile Model:

Iterative model. The various phases of the Iterative model are as follows:

  1. Requirement gathering & analysis: In this phase, requirements are gathered from customers and checked by an analyst whether the requirements will be fulfilled or not. Analyst checks that need will achieve within budget or not. After all of this, the software team skips to the next phase.
  2. Design: In the design phase, the team designed the software the different diagrams like Data Flow diagram, activity diagram, class diagram, state transition diagram, etc.
  3. Implementation: In the implementation, requirements are written in the coding language and transformed into computer programs which are called Software.
  4. Testing: After completing the coding phase, software testing starts using different test methods. There are many test methods, but the most common are white box, black box, and grey box test methods.
  5. Deployment: After completing all the phases, the software is deployed to its work environment.
  6. Review: In this phase, after the product deployment, the review phase is performed to check the behavior and validity of the developed product. And if there are any errors found then the process starts again from the requirement gathering.
  1. Maintenance: In the maintenance phase, after deployment of the software in the working environment there may be some bugs, errors or new updates are required. Maintenance involves debugging and new additional options. Advantages and disadvantages of iterative model: Advantage (Pros) of Iterative Model:
  • Testing and debugging during smaller iterations is easy.
  • Parallel development can plan.
  • It is easily acceptable to the ever-changing needs of the project.
  • Risks are identified and resolved during iteration.
  • Limited time spent on documentation and extra time on designing. Disadvantage (Cons) of Iterative Model:
  • It is not suitable for smaller projects.
  • More Resources may be required.
  • Design can be changed again and again because of imperfect requirements.
  • Requirement changes can cause over budget.
  • The project completion date is not confirmed because of changing requirements.
  • The iterative model is used when:
  • When requirements are defined clearly and easy to understand.
  • When the software application is large.
  • When there is a requirement for changes in the future. III. How risk is managed in the Spiral lifecycle model.
    1. What is the spiral model? Stages of the spiral pattern. The spiral model is one of the most important Software Development Life Cycle models, which provides support for Risk Handling. In its diagrammatic representation, it looks like a spiral with many loops. The exact number of loops of the spiral is unknown and can vary from project to project. Each loop of the spiral is called a Phase of the software development process. The exact number of phases needed to develop the product can be varied by the project
  • Develop the next version of the Product: During the third quadrant, the identified features are developed and verified through testing. At the end of the third quadrant, the next version of the software is available.
  • Review and plan for the next Phase: In the fourth quadrant, the Customers evaluate the so-far-developed version of the software. In the end, planning for the next phase is started.
    1. What is risk management? Risk management is the identification, assessment, and prioritization of risks followed by the rational and economical application of resources to reduce, monitor, and control the probability of occurrence or effects of events. unfortunate events or to maximize the realization of opportunities. Risk management isn’t reactive only; it should be part of the planning process to figure out the risk that might happen in the project and how to control that risk if it in fact occurs.
    2. Why risk management? Risk management has perhaps never been more important than it is now. The risks modern organizations face have grown more complex, fueled by the rapid pace of globalization. New risks are constantly emerging, often related to and generated by the now-pervasive use of digital technology. Climate change has been dubbed a "threat multiplier" by risk experts. Risk management can mean different things on different types of projects. On large-scale projects, risk management strategies might include extensive detailed planning for each risk to ensure mitigation strategies are in place if issues arise. For smaller projects, risk management might mean a simple, prioritized list of the high, medium, and low priority risks. (model, 2022).
    3. How to manage the risk of the spiral model? Risk Handling in Spiral Model. A risk is any adverse situation that might affect the successful completion of a software project. The most important feature of the spiral model is handling these unknown risks after the project has started. Such risk resolutions are easier done by developing a prototype. The spiral model supports coping with risks by providing the scope to build a prototype at every phase of the software development. The Prototyping Model also supports risk handling, but the risks must be identified completely before the start of the development work of the project. But in real life project risk may occur after the development work starts, in that case, we cannot use the Prototyping Model. In each phase of the Spiral Model, the features of the product dated and analyzed, and the risks at that point in time are identified and are resolved through prototyping. Thus, this model is much more flexible compared to other SDLC models.

The Spiral model is called a Meta-Model because it subsumes all the other SDLC models. For example, a single loop spiral actually represents the Iterative Waterfall Model. The spiral model incorporates the stepwise approach of the Classical Waterfall Model. The spiral model uses the approach of the Prototyping Model by building a prototype at the start of each phase as a risk-handling technique. Also, the spiral model can be considered as supporting the Evolutionary model – the iterations along the spiral can be considered as evolutionary levels through which the complete system is built. Determine objectives and alternatives and describe framework conditions.

  • A typical cycle in a spiral model starts with considering which objectives should be associated with the individual steps of software development.
  • Identifying and resolving the risks.
  • The next step is to evaluate the alternatives. In this phase of the spiral model cycle, areas of uncertainty should be identified that pose a significant risk to the progress of the software project. This will be followed by the development of the least risky and most cost-effective strategy, using methods such as prototyping, simulations, benchmark tests, analytical models, and user surveys.
  • Developing and testing the intermediate status
  • Following the risk analysis, the actual development of the software continues, which is always characterized by the relative residual risks. If, for example, performance or user interface risks or internal interface control risks strongly dominate the development process, an evolutionary development strategy is the first option, in which the project is specified more precisely and prototypes are optimized. The actual code is written and tested several times until the desired result is achieved, which then serves as a low-risk basis for further development steps. IV. The purpose of a feasibility report.
  1. What is project feasibility? The feasibility study aims to define and understand the feasibility of an initiative, outlining the execution plan and estimating costs and benefits. The primary objective of the feasibility analysis is to identify the risks and opportunities of the project, thus defining the probability of success. The study was also designed to identify potential problems and problems that may arise in the pursuit of the project. As part of a feasibility study, project managers must determine if they have enough people, financial resources, and appropriate technology. Research must also determine the return on investment, whether it is measured as a financial