Download Assignment 1 - Software Development Life Cycle - 1631 and more Assignments Software Development in PDF only on Docsity!
ASSIGNMENT 01 FRONT SHEET
Qualification BTEC Level 5 HND Diploma in Computing Unit number and title Unit 0 9: Software Development Life Cycle Submission date Thursday June 16th^2022 Date Received 1st submission Re-submission Date Date Received 2nd submission Student Name Tran Anh Tuan Student ID GCD Class GCD1001 Assessor name Tran Trong Minh 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 Tuan Grading grid P 1 P 2 P 3 P4 M 1 M 2 D1 D 2
❒ Summative Feedback: ❒ Resubmission Feedback:
Grade: Assessor Signature: Date: Internal Verifier’s Comments: Signature & Date:
Table of Contents
- Introduction Of Software Development Life Cycle (SDLC)
- CHAPTER 1: DESCRIBE TWO ITERATIVE AND TWO SEQUENTIAL SOFTWARE LIFECYCLES MODEL
- I. Sequential models
- Waterfall Model
- 1.1. Definition
- 1.2. Description...................................................................................................................................................................
- 1.3. Benefit
- 1.4. Pros and Cons
- V Model
- 2.1. Definition
- 2.2. Description...................................................................................................................................................................
- 2.3. Benefit
- 2.4. Pros and Cons
- II. Iterative models
- Spiral Model
- 1.1. Definition
- 1.2. Description.................................................................................................................................................................
- 1.3. Benefit
- 1.4. Pros and Cons
- Agile Model (SCRUM)
- 2.1. Definition
- 2.2. Description.................................................................................................................................................................
- 2.3. Benefit
- 2.4. Pros and Cons
- CHAPTER 2: EXPLAIN HOW RISK IS MANAGED IN THE SPIRAL LIFECYCLE MODEL
- I. Risk in the software projects
- II. Risk management in the software projects
- III. Risk management Process
- Identify risks
- Risk assessment
- 2.1. Qualitative assessment...............................................................................................................................................
- 2.2. Quantitative assessment.............................................................................................................................................
- 2.3. Risk handling
- 2.4. Monitor and report risks
- IV. Some risk in the software project
- V. Which is most suitable model for Tune Sources and discuss why?
- CHAPTER 3: EXPLAIN THE PURPOSE OF A FEASIBILITY REPORT
- I. Definition
- II. Types of feasibility study
- Technical feasibility.........................................................................................................................................................
- Economic Feasibility
- Legal Feasibility
- Operational Feasibility.....................................................................................................................................................
- Scheduling Feasibility
- III. Importance of Feasibility
- CHAPTER 4: DECRIBE HOW TECHNICALS SOLUTION CAN BE COMPARED
- I. Searching for the right software development tools............................................................................................................
- II. Comparing software solutions
- III. Conclusion
- IV. References.........................................................................................................................................................................
- Figure 1. The Software Development Life Cycle (SDLC) Table of Figure
- Figure 2. Waterfall Model............................................................................................................................................................
- Figure 3. V Model
- Figure 4. Spiral Model
- Figure 5. Agile Model
- Figure 6. Feasibility Study
- Figure 7. Types of Feasibility Study
- Figure 8. A compact illustration of the whole process in one scheme
- Figure 9. A compact illustration of the whole process in one scheme
- Table 1. Pros and Cons of Waterfall Model Table of Table
- Table 2. Pros and Cons of V Model
- Table 3. Pros and Cons of Spiral Model
- Table 4. Pros and Cons of Agile Model.....................................................................................................................................
- Table 5. Some risk in the software project
CHAPTER 1: DESCRIBE TWO ITERATIVE AND TWO SEQUENTIAL
SOFTWARE LIFECYCLES MODEL
I. Sequential models
1. Waterfall Model
1.1. Definition
- The waterfall model is a classical model used in the system development life cycle to create a system with a linear and sequential approach. It is called a waterfall because the pattern develops systematically from one stage to another in a downward direction. The model is divided into different stages and the output of one stage is used as the input of the next stage. Every stage must be completed before the next stage begins and there is no overlap of stages.
- The waterfall model is a model of the software development process in which the development process looks like a flow, with phases being executed in strict order and with no rollbacks or phase jumps. are: requirements analysis, design, implementation, testing, integration and maintenance. Figure 2. Waterfall Model
1.2. Description
The sequential stages described in the Waterfall model are:
- Collect Requirements- All possible requirements are documented in the product requirements documents.
- Read Analytics - requires and is based on analysis that defines schemas, models, and business rules.
- System Design - Based on software architecture design analysis.
- Do Software Development in small units with test functionality.
- Integration and Integration Tests of each developed unit in the pre- and post-integration phase check the entire system for any defects.
- System Deployment - Make the product live on production environment after completing all functional and non-functional testing.
- Maintenance Troubleshoot and release new versions with required crash patches.
1.3. Benefit
- The requirements are properly stated, explicit, and unchanging.
- The product definition is consistent.
- There are no misunderstandings in the requirements.
- To support the product, many resources with the necessary experience are available.
- The project is minimal.
1.4. Pros and Cons
Table 1. Pros and Cons of Waterfall Model
Advantages Disadvantages
- Simple and simple to comprehend and apply.
- Because of the model's rigidity, it is simple to manage. Each phase includes its own set of deliverables and a review mechanism.
- One phase at a time is processed and completed.
- Works effectively for smaller projects with well-defined criteria.
- Stages are well defined.
- Milestones that are well understood.
- Tasks are simple to organize.
- Both the process and the results are meticulously documented.
- Until late in the life cycle, no functioning software is developed.
- There is a lot of danger and uncertainty.
- This is not an appropriate approach for complex, object- oriented programs.
- Poor model for long-term projects.
- Not appropriate for projects with a moderate to high risk of change in requirements. As a result, the risk and uncertainty associated with this process model are significant.
- Measuring development within phases is tough.
- Changes in requirements cannot be accommodated.
- Changing the scope of a project during its life cycle might lead to its demise.
- V Model
2.1. Definition
- Model V is a graphical software development life cycle (SDLC) model used to execute and test processes in a sequence. Also known as the verification and validation model, project managers can use this approach when creating software that requires rigorous testing.
- Model V is an extension of the waterfall model and is based on the association of a test phase for each respective development phase. This means that for each phase in the development cycle, there is a directly linked testing phase. Figure 3. V Model
2.2. Description
- Verification: It includes a static analysis approach (review) that is performed without executing code. It is the process of evaluating the product development phase to determine whether or not the defined requirements are met.
- Validation: It includes dynamic analysis techniques (functional and non-functional) as well as code execution testing. Validation is the process of evaluating software after it has been developed to see whether it satisfies the customer's expectations and needs.
1.2. Description
- Planning: This phase begins with gathering business requirements. In subsequent twists as the product matures, the identification of system requirements and unit requirements is done in this phase.
- Design: The design phase starts with basic spiral design and involves the architectural design, logic of the modules, physical product design, and the final design in the lines consecutive spirals.
- Build: The build phase refers to the final software product development at every twist.
- Risk Assessment and Analysis: Risk analysis includes identifying, estimating, and observing technical feasibility such as schedule slippage and cost overruns. After testing the build, at the end of the first iteration, users rate the software and provide feedback. Based on customer reviews, the development goes into the next iterative step and then follows a linear approach to implementing user-supplied feedback. Iterative spiraling process lasts throughout the life of the software.
1.3. Benefit
- When there is a financial restriction and risk assessment is critical.
- For projects with a medium to high level of risk.
- Long-term project commitment due to the possibility of changes in economic priorities as requirements change over time.
- Typically, the customer is unsure about their requirements.
- Requirements are complicated and must be evaluated to gain clarity.
- New product line that should be introduced in stages to provide enough client input.
- During the development cycle, the product is likely to undergo significant modifications.
1.4. Pros and Cons
Table 3. Pros and Cons of Spiral Model
Advantages Disadvantages
- Change requests can be accommodated.
- Allows extensive use of prototypes.
- Requests can be captured more precisely.
- Users see the system early.
- Development can be broken down into smaller chunks and risk sections can be developed earlier to help better manage risk. - More complex management. - The end of the project may not be known anytime soon. - Not suitable for small or low risk projects and can be expensive for small projects. - Complicated process. - The spiral can continue indefinitely. - The large number of intermediate stages requires too much documentation.
- Agile Model (SCRUM)
2.1. Definition
- The Agile SDLC Model is a combination of iterative and incremental process models that focus on process adaptability and customer satisfaction by rapidly delivering software products that are in progress. work.
- Agile methods break the product into small incremental builds. These builds are provided in multiple iterations. Each repetition usually lasts from about one to three weeks.
- Each iteration involves cross-functional teams working concurrently on different areas such as:
- Planning
- Requirements analysis
- Design
- Encode
- Unit test
- Acceptance test Figure 5. Agile Model
2.2. Description
- Personal and Interactive: In Agile development, self-organization and motivation are important, as are interactions such as co-location and pair programming.
- Working software: Demo working software is considered as the best means of communication for customers to understand their requirements, instead of just depending on the documentation.
- Customer Collaboration: As requirements cannot be fully collected in the early stages of a project due to various factors, constant interaction with the customer is crucial to obtain requirements. demand for the right product.
- Responsive to change: Agile development focuses on rapid response to change and continuous development.
2.3. Benefit
- The Agile approach argues that each project must be handled differently and that current techniques must be adapted to best meet the project objectives. In Agile, tasks are broken into time boxes (short time limits) to provide particular features for a release.
- After each cycle, a functioning software build is produced. Each build is incremental in terms of features; the final version contains all of the features requested by the customer.
III. Risk management Process
- Identify risks
- The first step in the risk management process is to identify all events that could negatively (risks) or positively (opportunities) affect the project objectives:
- Project landmark
- Project's financial trajectory
- Project scope
- Risk assessment
- There are two types of risk and opportunity assessments: qualitative and quantitative
2.1. Qualitative assessment
- Qualitative assessment analyzes severity based on the probability and impact of the event.
- Risk Owners and Risk Managers will rank and prioritize each identified risk and opportunity by probability of occurrence and severity of impact, according to project severity scales judgment.
2.2. Quantitative assessment
- Quantitative assessment analyzes the financial impact or benefits of an event.
- The objective of a quantitative assessment is to establish a financial assessment of the impact of the risk or benefit of the opportunity, if it occurs.
- To calculate the cost of the consequences of the undesirable event by adding these values.
- To assess additional costs incurred by looking at finances:
- Internal technical hours
- Sub-contracting time
- Additional work to do
- Modifications and requirements to the contract
2.3. Risk handling
- To treat risk, the organization must first define their strategies for doing so by developing a treatment plan.
- The goal of a risk treatment plan is to reduce the probability of a risk occurring and to reduce its impact.
2.4. Monitor and report risks
- The risks and opportunities and their treatment plan should be monitored and reported. The frequency of this will depend on the severity of the risk.
- By developing a monitoring and reporting structure, it will ensure that there are appropriate forums for escalation and that appropriate risk response measures are being taken.
IV. Some risk in the software project
Table 5. Some risk in the software project Sl Risk (Identification of expected Risks) Description Probability Impact Risk Factor (RF= P x I) Risk Category Risk Response plan 1 Poor risk management Poor risk management can be a danger in and of itself. Good risk management is required for software development teams to detect issues and respond to them efficiently. 60% 70% 42% Medium - Identifying potential risks.
- Calculating the likelihood of each risk.
- Creating risk mitigation plans.
- Carefully monitoring risks. 2 Code issues Poor code quality is a serious risk in software development. Because of hurried labor and a variety of other causes, projects may include low- quality code. Bugs, logical flaws, and other issues with code can occur. 70% 90% 63% High - Testing code frequently.
- Resolving bugs and logical errors when they’re found.
- Creating coding standards for software developers.
- Using coding best practices. 3 Low productivity Problems with productivity might also pose a danger in software development. Sometimes software development teams suffer with productivity, which may occur as a result of delays, employee fatigue, and a variety of other causes. 50% 60% 30% Low - Creating a well paced project plan to lower stress and avoid burnout.
- Communicating effectively about project details and problems.
- Find a great leader who can motivate and manage the team.
V. Which is most suitable model for Tune Sources and discuss why?
- Agile Model is the best suitable Model for Tune Source:
- Because when new modifications must be made, the agile approach is the best match. It is critical to have the flexibility to effect change. Because of the rapidity with which new increments are formed, new modifications may be deployed at a relatively minimal cost. It just takes a few days, if not hours, for developers to go back and deploy a new feature.
- Agile methodology helps the team to detect and solve small problems during software development. It's important before we move on to more serious problems. The Agile methodology creates continuous release cycles where small incremental changes from the previous release are made. There is product testing at every iteration.
- Early and consistent feedback for rapid project improvement.
Figure 7. Types of Feasibility Study
III. Importance of Feasibility
The importance of a feasibility study is based on the organization's desire to "do it right" before committing resources, time, or budget. A feasibility study can uncover new ideas that can completely change the scope of a project. It's best to make these decisions first, rather than jump in knowing that the project won't work. Doing a feasibility study is always beneficial to the project as it gives you and other stakeholders a clear picture of the proposed project.
CHAPTER 4: DECRIBE HOW TECHNICALS SOLUTION CAN BE
COMPARED
I. Searching for the right software development tools
- Before comparing software solutions for a project, we should identify the best possibilities for implementing the desired functionality. ❖ Step 1: Analyze project requirements ➢ Ensure that all project needs have been established and that everyone is on the same page. Following a thorough business analysis, your project manager should be able to give you all of the information you want. Discuss the project goals and stakeholders' expectations with your client and project manager as well. ❖ Step 2: Break down the system into functional components ➢ At this stage, you should define the future system: a front-end to interact with users, a back-end to govern the system, data storage and processing modules, security mechanisms, and so on. ➢ Once you've determined all of the functional parts of the future system, you'll be able to look for the best digital tools to help you design and combine these pieces into your final product.
❖ Step 3: Analyze each element and the system as a whole ➢ Now that you have a broad grasp of the system aspects, you may begin a detailed technical analysis of software development. Examine the tools and services that can assist you in implementing this capability. Examine each functional piece as well as your system as a whole. ➢ You may use the following strategies to gain a quick overview of the tools and frameworks on the market:
- Use Google to locate essential information on the various software solutions, libraries, and frameworks that will be used to develop your functional pieces. If accessible, you may seek industry knowledge.
- Check out StackOverflow for discussions on various solutions that are relevant to your project.
- Examine related YouTube guides, presentations, and instructive videos.
- Look for the information you need in platform-specific forums.
- Make use of your colleagues' knowledge. ❖ Step 4: Collect the sources with the necessary data ➢ An in-depth examination of several functional pieces and the system as a whole provides you with a high-level understanding of the libraries, solutions, frameworks, and other components you may encounter. You may now gather all of the information required to develop a profile for any alternative you are considering. ➢ Get the documentation (PDFs, articles, diagrams, flows, and math models) from the original publisher of the solution you're researching, make sure it's up to date, and figure out which programming languages it requires. ➢ Find suitable open-source and/or proprietary libraries, verify their licensing availability and APIs, look for test projects, or create your tests to evaluate if the libraries meet your needs. ➢ Find suitable open-source and/or proprietary online services, examine their APIs and key comparative criteria (such as pricing, availability, and limits), and, if feasible, run test queries. ❖ Step 5: Create a report ➢ At this step, you compile all of the information into a cohesive report that includes all of the relevant information such as availability, usability, pricing, restrictions, features, support, and so on. You may create this report in an Excel spreadsheet and use it to compare software solutions, libraries, frameworks, or other components you're researching. Figure 8. A compact illustration of the whole process in one scheme
❖ Step 5: Define pros and cons and make your choice ➢ At the final step of this analysis, you can already define and weigh the pros and cons for each alternative and check the results against your project scope and requirements. Often, you end up with more than one alternative and suggest stakeholders choose between these options depending on their product vision and project goals. Figure 9. A compact illustration of the whole process in one scheme
III. Conclusion
Conclusion: As you can see, both search and comparison tactics imply a high level of information and need extensive investigation and analysis. In my experience, the time and effort invested in these studies generally pay off because both of these techniques allow for the selection of the finest feasible software solution or framework for the project. This decision is reflected in the final software product's performance, cost, flexibility, support, and other factors.
IV. References
ALTVATER, A., 2020. What Is SDLC? Understand the Software Development Life Cycle. [Online] Available at: https://www.subjectcoach.com/tutorials/detail/contents/introduction-to-software-development-life-cycle-sdlc [Accessed 20 June 2022]. Anon., n.d. [Online] Available at: https://economictimes.indiatimes.com/definition/waterfall-model [Accessed 20 June 2022]. Anon., n.d. [Online] Available at: https://www.tutorialspoint.com/sdlc/sdlc_v_model.htm [Accessed 20 June 2022]. Anon., n.d. [Online] Available at: https://www.indeed.com/career-advice/career-development/v-model [Accessed 20 June 2022]. Anon., n.d. [Online] Available at: https://economictimes.indiatimes.com/definition/spiral-model [Accessed 20 June 2022]. Anon., n.d. [Online] Available at: https://www.tutorialspoint.com/sdlc/sdlc_agile_model.htm [Accessed 20 June 2022]. JEVTIC, G., 2019. What is SDLC? Phases of Software Development, Models, & Best Practices. [Online] Available at: https://www.castsoftware.com/research-labs/risk-management-in-software-development-and-software-engineering-projects [Accessed 20 June 2022]. Anon., n.d. [Online] Available at: https://www.projectsmart.co.uk/risk-management/top-five-software-project-risks.php [Accessed 20 June 2022]. CFI, 2022. Risk Management. [Online] Available at: https://www.migso-pcubed.com/blog/pmo-project-delivery/four-step-risk-management-process/ [Accessed 20 June 2022]. Anon., n.d. [Online] Available at: https://corporatefinanceinstitute.com/resources/knowledge/other/feasibility-study/ [Accessed 20 June 2022]. Simplilearn, 2022. Feasibility Study And Its Importance in Project Management. [Online] Available at: https://www.simplilearn.com/feasibility-study-article [Accessed 20 June 2022]. LAZAREVICH, V., 2018. How to Compare Software Solutions, Frameworks, Libraries and Other Components. [Online] Available at: https://www.digiteum.com/how-to-compare-software-solutions-frameworks-libraries-and-other-components/ [Accessed 20 June 2022].