Download ASSIGNMENT 01 Software Development Life Cycle and more Study Guides, Projects, Research Law in PDF only on Docsity!
ASSIGNMENT 01 FRONT SHEET
Qualification BTEC Level 5 HND Diploma in Computing Unit number and title Unit 09: Software Development Life Cycle Submission date 15/02/2023 Date Received 1st submission 8/01/ Re-submission Date Date Received 2nd submission Student Name Trinh Nguyen Phuong Student ID GCH Class GCH1103 Assessor name Do Quoc Binh 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 PHUONG Grading grid P1 P2 P3 P4 M1 M2 D1 D
❒ Summative Feedback: ❒ Resubmission Feedback:
Grade: Assessor Signature: Date: Internal Verifier’s Comments: Signature & Date:
Introduction
The use of common business procedures in the creation of software applications is known as the software development lifecycle. Plan, Request, Design, Build, Document, Test, Implement, maintain are the usual six to eight phases. Depending on the size of the project, some project managers may combine, divide, or skip phases. These are the fundamental elements that are advised for any software development initiatives. SDLC is a method for monitoring and enhancing development. It makes it possible to thoroughly analyze every stage of the process. By doing this, businesses will be able to maximize efficiency at every turn. Software and developers must now meet increased demands as processing power rises. Businesses must save costs, deploy software more quickly, and meet or exceed consumer expectations. By detecting inefficiencies and increased costs and resolving them for smooth operation, SDLC aids in the achievement of these objectives.
P1 Describe two iterative and two sequential software lifecycle models.
Iterative model:
- Iterative Model - Design
- A rudimentary implementation of a portion of the software requirements is the starting point of an iterative process, which incrementally improves the developing versions until the entire system is completed. New functional capabilities are added along with design changes with each iteration. The fundamental concept behind this approach is to create a
system by iteratively repeating cycles while working on smaller chunks at a time (incremental).
- The Iterative and Incremental model is depicted in the illustration below:
- Iterative and Incremental development is a combination of both iterative design or iterative method and incremental build model for development. "During software development, more than one iteration of the software development cycle may be in progress at the same time." This process may be described as an "evolutionary acquisition" or "incremental build" approach."
- The entire need is broken down into different builds in this incremental model. The requirements, design, implementation, and testing phases of the development module are completed throughout each iteration. The module's functionality is increased with each new release. The procedure continues until the entire system is prepared in accordance with the requirements.
- Iterative software development lifecycles are most effective when requirements are rigorously validated, and each version of the product is verified and tested against those requirements during each cycle of the model. Tests must be repeated and expanded as the program goes through consecutive cycles of development in order to validate each iteration.
- Iterative Model - Application
- Iterative and incremental development has several specialized uses in the software business, just as other SDLC models. The following situations include the most frequent application of this model:
- Requirements of the complete system are clearly defined and understood.
- Major requirements must be defined; however, some functionalities or requested enhancements may evolve with time.
- There is a time to the market constraint.
- Easy to understand, easy to use
- Provides structure to inexperienced staff
- Milestones are well understood
- Sets requirements stability
- Good for management control (plan, staff, track)
- Works well when quality is more important than cost or schedule.
- Waterfall Deficiencies:
- All requirements must be known upfront
- Deliverables created for each phase are considered frozen – inhibits flexibility
- Can give a false impression of progress
- Does not reflect problem-solving nature of software development – iterations of phases
- Integration is one big bang at the end
- Little opportunity for customer to preview the system (until it may be too late).
Figure 1: Waterfall model V- model:
- V-Shaped Steps:
- Project and Requirements Planning: allocate resources
- Product Requirements and Specification Analysis: complete specification of the software system
- Architecture or High-Level Design: defines how software functions fulfill the design
- Detailed Design: develop algorithms for each architectural component
- Production, operation and maintenance: provide for enhancement and corrections
- System and acceptance testing: check the entire software system in its environment
- Integration and Testing: check that modules interconnect correctly
- Unit testing: check that each module acts as expected
- Coding: transform algorithms into software
- V-Shaped Strengths:
- Emphasize planning for verification and validation of the product in early stages of product development
- Each deliverable must be testable
- Project management can track progress by milestones
- Easy to use
- V-Shaped Weaknesses:
- Does not easily handle concurrent events
- Does not handle iterations or phases
- Does not easily handle dynamic changes in requirements
- Does not contain risk analysis activities Prototyping:
- Structured Evolutionary Prototyping Model:
- Developers build a prototype during the requirements phase
- Prototype is evaluated by end users
- Users give corrective feedback
- Developers further refine the prototype
- When the user is satisfied, the prototype code is brought up to the standards needed for a final product.
- Structured Evolutionary Prototyping Steps:
- A preliminary project plan is developed
- A partial high-level paper model is created
- The model is source for a partial requirements specification
- A prototype is built with basic and critical attributes
- The designer builds ▪ the database
- The team gets clear visibility through scrum meetings
- Scrum, being agile, adopts feedback from customers and stakeholders
- Short sprints enable changes based on feedback a lot more easily
- The individual effort of each team member is visible during daily scrum meetings
- Disadvantages of Scrum:
- Scrum often leads to scope creep, due to the lack of a definite end-date
- The chances of project failure are high if individuals aren't very committed or cooperative
- Adopting the Scrum framework in large teams is challenging
- The framework can be successful only with experienced team members
- Daily meetings sometimes frustrate team members
- If any team member leaves in the middle of a project, it can have a huge negative impact on the project
- Quality is hard to implement until the team goes through an aggressive testing process. Spiral:
- Determine objectives, alternatives and constraints:
- Objectives: functionality, performance, hardware/software interface, critical success factors, etc.
- Alternatives: build, reuse, buy, sub-contract, etc.
- Constraints: cost, schedule, interface, etc.
- Evaluate alternatives, identify and resolve risks:
- Study alternatives: relative to objectives and constraints
- Identify risks: lack of experience, new technology, tight schedules, poor process.
- Resolve risks: evaluate if money could be lost by continuing system development.
- 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
- 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
- Developers must be reassigned during non-development phase activities
- May be hard to define objective, verifiable milestones that indicate readiness to proceed through the next iteration B. Choose the best model that you think is suitable for the project and explain why. Table 1: Suitable model for TN Source Choosing the Best model Why is suitable Waterfall - Adequate resources are available with the necessary expertise to support the product.
- There are no ambiguous requirements.
- The requirements are very well documented and well defined.
- Product definition is stable.
- The project is short. Selecting appropriate development methodology. Table 2: Appropriate development model Usefulness in developing TS. systems Waterfall V-model Prototyping Scrum Spiral Clarity of User Requirements Poor Poor Excellent Excellent Excellent Familiarity with Technology Excellent Excellent Excellent Excellent Poor System Complexity Good Good Poor Poor Excellent System Reliability Good Excellent Poor Good Excellent Short Time Schedules Poor Poor Excellent Excellent Good
- It doesn't work well for projects with clear requirements and tech savvy, but it works surprisingly well for projects with short development times, high reliability, high complexity, and visibility into progress. E. Discuss the merits (Advantages) of applying the waterfall model to a large software development project. (Vanhooren, 2022)
- It generates considerably better-quality code, documentation, and appropriate testing of outliers before they are released to the public. It places the duty of developing maintainable code on the analyst, designer, developer, and tester before it is pushed into production.
- The support personnel may then maintain a well-constructed code base with interventions as the exception rather than the rule. Because the code base is intrinsically stable, this code will be significantly easier to adjust in later point releases and more scalable.
- Solving an easy problem can be done easily. There is no need of an elaborated process to develop a feature.
- minimization of uncertainty and associated hazards
- Possibility of obtaining a comprehensive image and architecture of the future solution.
- Possibility of working in groups
- Possibility of teamwork coordination
P2 Explain how risk is managed in the Spiral lifecycle model.
A. Managing risk in Spiral life cycle model: (Contributor, 2019)
- The spiral model is one of the most prominent Software Development Life Cycle models for risk management. It seems to be a spiral with multiple loops in its diagrammatic form. The precise number of spiral loops is uncertain and varies from project to project. Each spiral loop is referred to as a Phase in the software development process. The project manager can change the number of phases required to build the product based on the project risks. Because the project manager chooses the number of stages dynamically, the project manager plays a significant role in developing a product utilizing the spiral model.
Figure 2:
- A risk is any negative scenario that might jeopardize the successful execution of a software project. The spiral model's most critical characteristic is dealing with unexpected hazards once the project has begun. Such risk remedies are made easier by creating a prototype.
- The spiral approach facilitates risk management by allowing for the creation of a prototype at each stage of software development. B. Identify some risks from the Tune source project and discuss an approach to manage them. Table 4. Identified risks in TN source project SN Risk in Tune source projects Solution 1 Schedule Risk -^ Reduce^ the^ number^ of^ Critical^ Paths
- Reduce Activity Dependencies
- Schedule Risky Activities Earlier
- Plan Regular Schedule Reviews
- Summary 2 Budget Risk -^ Risk avoidance:^ This strategy involves identifying potential risks, then changing the project plan or budget to avoid them. Identifying budgeting risks early in project planning can help provide the best opportunity to change the project plan and avoid as many risks as possible. For example, if there's a high chance of a personnel shortage due to illness, a project manager may create remote opportunities to keep
- Before starting a project, you should discuss all possible changes with your software company.
- Include elements such as design, development, and testing in appropriate phases of the development process.
- Use cloud computing tools such as JIRA to improve communication between team members and stakeholders.
- They also help you track time, testing cycles, the progress of work, and other data related to your project. C. Provide a Risk Management process with clear illustrations and explanations. (Thomas, 2022)
- Step 1: Identify the Risk:
- The first stage in risk management is to identify the hazards that the company faces in its operational environment.
- There are many different types of risks: ▪ Legal risks ▪ Environmental risks ▪ Market risks ▪ Regulatory risks etc.
- It is critical to identify as many risk variables as possible. These hazards are manually recorded in a manual environment. If the business uses a risk management solution, all of this information is instantly entered into the system.
- The benefit of this strategy is that these risks are now apparent to all stakeholders within the company who have access to the system. Instead of being locked away in a report that must be requested via email, anybody interested in seeing which risks have been discovered may view the information in the risk management system.
- Step 2: Analyze the Risk:
- Once a danger has been discovered, it must be investigated. The risk's scope must be identified. It is also critical to comprehend the relationship between the risk and other organizational characteristics.
- To establish the degree and significance of the risk, consider how many business operations are affected. There are risks that, if realized, can bring the entire firm to a halt, while others will merely cause small hassles in the analysis.
- This analysis must be performed manually in a manual risk management system. One of the most critical basic steps in implementing a risk management solution is mapping risks to various documents, rules, procedures, and business processes.
- This implies that the system will already have a risk management framework in place that will analyze hazards and inform you of the long-term consequences of each risk.
- Step 3: Evaluate the Risk or Risk Assessment:
- The risks must be rated and prioritized. Depending on the magnitude of the risk, most risk management solutions categorize hazards.
- Risks that may cause minor discomfort are rated low, whereas risks that may result in catastrophic loss are rated highest.
- It is critical to rate risks because it helps the company to acquire a comprehensive perspective of the organization's risk exposure.
- The company may be subject to a number of low-level dangers, but they may not necessitate the intervention of senior management. On the other hand, even one of the highest-rated hazards necessitates rapid action.
- Step 4: Treat the Risk:
- Every danger must be minimized or eliminated to the greatest extent practicable. This is accomplished by establishing contact with specialists in the field to which the risk pertains.
- In a manual system, this includes calling each and every stakeholder and then scheduling meetings so that everyone can talk about and debate the concerns. The issue is that the conversation is fragmented among several email threads, papers and spreadsheets, and phone conversations.
- In a risk management solution, all essential stakeholders may be notified from inside the system. The danger and potential solutions can be discussed inside the system.
P3 Explain the purpose of a feasibility report. (Editorial Team, 2021)
- Definition: A feasibility report is a report that assesses the viability of a collection of potential project pathways or solutions. The person who writes a feasibility report assesses the feasibility of several ideas and then recommends the best alternative. They then give the feasibility study and offer their proposal to their company.
- The purpose of a feasibility report:
- To determine whether the system development project is feasible.
- To provide potential substitute alternatives.
- To provide management the knowledge they need to know: ▪ What the alternatives are (so that a choice may be made in following phases) ▪ Whether there is a preferable option ▪ Whether the project can be completed ▪ Whether the final product will benefit its target consumers
- The purpose of a feasibility report for the Tune Source Project:
- A feasibility report could help the organization to determine whether Tune Source project is viable with possible resource, reassuring the return profit to be according to plan and provide failsafe alternatives for the project when any of the elements met with negative outcome.
- Therefore, a feasibility report is a dire component to lead the Tune Source project to success.
- There are three main criteria for a feasibility report for the Tune Source project: the following will be discussed when applied to the Tune Source project with each section divided clearly into three main points - Technical feasibility: ▪ With current technology, is the Tune Source project feasible: As of now, according to the requirement requested by Tune Source, there are many software application and IDE that support the creation of a webpage, such as: HTML, CSS, Java. This project technological requirements can easily be met. ▪ What kind of technical risk for the Tune Source project exists: The development team has many years of experience in the field of webpage development and therefore the chances of meeting with beginner mistakes
will be minimal. But there still are rare chances of system failure due to incompatibility and hardware issues. ▪ Technology of the Tune Source project accessibility: ▫ Is it accessible nearby: There are workstation setups in ABC corporate, IDE software and programming languages can be downloaded through internet connection. ▫ Is it attainable: Visual Studio is possible for downloading, ABC workstation setups can be exploited for corporate usage. ▫ Is it going to work with other systems: Visual Studio file will be exported under the format of .html and .CSS and therefore can be opened and configured using different IDEs that support these two languages.
- Financial feasibility: ▪ Is the Tune Source project feasible given the available resources: There are currently various software programs and IDEs that facilitate the development of a website, as per the request made by Tune Source. ▪ What are the advantages? ▫ Tangible Benefits: Readily quantified as $ values Examples: ➢ increased sales ➢ cost/error reductions ➢ increased throughput/efficiency ➢ increased margin on sales ➢ more effective use of staff time ▫ Intangible benefits: Difficult to quantify ➢ But maybe more important! ➢ business analysts help estimate $ values Examples: ➢ increased flexibility of operation ➢ higher quality products/services ➢ better customer relations ➢ improved staff morale