Download Software Development Life Cycle - Assignment 1 and more Papers Computer Applications 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 15 Dec 2021 Date Received 1st submission Re-submission Date 22 Dec 2021 Date Received 2nd submission Student Name Hồ Ngọc Khánh Student ID GCS Class GCD0901 Assessor name Mr. Ananta Kar 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 Khanh 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:
- CONTENTS
- I. SOFTWARE DEVELOPMENT LIFE CYCLES MODELS (P1)
- Iterative models.....................................................................................................................................
- i. Spiral Model.......................................................................................................................................
- ii. Agile Model........................................................................................................................................
- Sequential models
- i. Waterfall Model.................................................................................................................................
- ii. V Model
- II. HOW RISK IS MANAGED IN THE SPIRAL LIFECYCLE MODEL (P2)
- III. WHY A PARTICULAR LIFE CYCLE MODEL IS SELECTED FOR A DEVELOPMENT ENVIRONMENT (M1)
- Why a life cycle model is chosen for a specific development environment
- Changing in requirements
- For instance: TUNE SOURCE
- i. Identification
- ii. Design
- iii. Construct
- iv. Evaluation and Risk Analysis
- IV. FEASIBILITY STUDY (P3)
- Feasibility study
- Feasibility report
- Scope of the project
- V. FEASIBILITY CITERIA (P3)..........................................................................................................................
- Technical feasibility
- Schedule feasibility
- Legal issues (Wen, 2018)
- Social issues
- Economic feasibility
- VI. HOW TECHNICAL SOLUTIONS CAN BE COMPARED (P4)
- VII. DISCUSS THE COMPONENTS OF A FEASIBILITY REPORT (M2)
- Purpose of feasibility study (JUMPSIX2, 2018)
- Structure of the feasibility study
- Intended audience
- Outcome
- VIII. References
- Figure 1: SPIRAL MODEL FIGURES AND TABLES
- Figure 2: AGILE MODEL......................................................................................................................................
- Figure 3: WATERFALL MODEL............................................................................................................................
- Figure 4: V MODEL
- Figure 5: FEASIBILITY STUDY
- Figure 6: GANTT CHART OF ESTIMATING SCHEDULE
- Table 1: RISK RESPOND PLAN
- Table 2: WORDPRESS, JOOMLA AND DRUPAL (Walker, 2021)........................................................................
- Table 3: ECONOMIC FEASIBILITY REPORT
- Table 4: TANGIBLE AND INTANGIBLE BENEFITS OF TUNE SOURCE PROJECT (Anon., 2019)
LO1 Describe different software development lifecycles. I. SOFTWARE DEVELOPMENT LIFE CYCLES MODELS (P1)
1. Iterative models
i. Spiral Model
DEFINITION: The Spiral Model is a software development process model that is risk-driven. It is a hybrid of the waterfall and iterative models. The Spiral Model assists in the adoption of software development aspects from several process models for a software project based on unique risk patterns, guaranteeing an efficient development process. (Martin, 2021) Figure 1 : SPIRAL MODEL The development process in the SDLC Spiral model begins with a limited set of requirements and progresses through each development phase for those criteria. The software engineering team adds functionality to meet the new requirements in ever-increasing spirals until the program is ready for production. (Martin, 2021) SPIRAL MODEL PHASES (Martin, 2021)
- Planning : It entails calculating the iteration's cost, timeline, and resources. It also entails comprehending the system requirements in order to maintain constant communication between the system analyst and the client.
- Because risk monitoring necessitates additional resources, this technique can be rather costly to employ. Each spiral needs specialized knowledge, thus complicating the management process. As a result, the Spiral SDLC Model is unsuitable for short projects.
- There are a lot of intermediary levels. As a result, there is a massive volume of paperwork.
- Time management may be challenging. Typically, the finish date of a project is unknown in the early phases.
ii. Agile Model
DEFINITION: Rather than a top-down procedure with a single sequence of phases, Agile SDLC methodology emphasizes collaborative decision-making and development over several short cycles or sprints. The basis of an Agile SDLC is a cyclical development technique for software in iterations rather than all at once. Your teams operate in various cycles that normally span two to four weeks. (Anon., 2020) Figure 2 : AGILE MODEL SIX PHASES OF AGILE MODEL: (Anon., 2018)
- Requirements: The idea phase comes first. A product owner will define the scope of their project here. If there are several initiatives, the most significant ones will be prioritized. The product owner will meet with a customer to discuss important needs
and develop documentation outlining them, including which features will be supported and the suggested end outcomes.
- Design: After the concept has been defined, it is time to assemble the software development team. A product owner will examine the availability of their colleagues and select the best individuals for the project, while also providing them with the required tools and resources.
- Development: The iteration phase, often known as development, comes next. It is usually the longest phase because the majority of the work is done here. The developers will collaborate with UX designers to integrate all product requirements and user input before converting the design to code.
- Testing: The product is almost ready for distribution. However, the quality assurance team must first do several tests to guarantee that the program is completely working. These Agile team members will test the system to verify that the code is clean; if any problems or flaws are discovered, the developers will resolve them as soon as possible.
- Deployment: Customers will now be able to access the software when it has been fully delivered. This operation puts it in the maintenance mode. During this phase, the software development team will provide continuing assistance to ensure that the system runs properly and that any new defects are resolved.
- Review: A product enters the retirement phase for one of two reasons: it is being replaced with new software, or the system itself has grown obsolete or incompatible with the organization over time. The software development team will tell users first that the software will be decommissioned. ADVANTAGES (Anon., 2016)
- The project is structured into short and clear iterations.
- It has a change management system that is adaptable.
- It reduces the risk associated with software development.
- The initial product version was released quickly.
- The development process incorporates the validity of functional requirements.
Figure 3 : WATERFALL MODEL SIX PHASES OF WATERFALL MODEL: (Sharma, 2021)
- Requirements: The first phase is to design, understand its function, purpose, etc. Here, the inputs and outputs, or the specifications of the final product, are examined and marked.
- Design: In this phase, the specifications of the first phase are investigated and the system design is prepared. System design helps specify hardware and system requirements, and also helps define the overall system architecture. This will create the software code that you will write in the next step.
- Development: With input from the system design, the system is initially developed in small programs, so-called units, and then integrated into the next phase. Each unit is developed and tested for its functionality. This is called a unit test.
- Testing: All units developed during the implementation phase are integrated into the system after each unit has been tested. The developed software should undergo regular software testing to check for bugs and errors. The tests are performed to ensure that the customer has no problems installing the software.
- Deployment: Once functional and non-functional tests are complete, the product is deployed or marketed in your environment.
- Maintenance: This step is performed after installation and includes changes to the system or individual components to change attributes and improve performance. These changes are caused either by a customer-initiated change request or by a defect found during actual use of the system. Customers receive regular maintenance and support for the developed software. ADVANTAGES: (Martin, 2021)
- Each step of development must be accomplished before moving on to the next.
- Suitable for smaller projects with well-defined criteria
- Before finishing each stage, they should conduct a quality assurance test (verification and validation).
- Elaborate documentation is accomplished at each segment of the software’s improvement cycle
- Project is absolutely depending on assignment crew with minimal customer intervention
- Any changes in software package are formed throughout the method of the event DISADVANTAGES: (Martin, 2021)
- Error can be fixed only during the phase
- Not desirable for complex projects where requirements change frequently
- The testing phase occurs much later in the development process.
- Documentation takes a lot of time for developers and testers
- Valuable customer feedback cannot be incorporated into the ongoing development phase
- Small changes and bugs that appear in the finished software can cause many problems
Test Stages (Turck, 2020)
- Component Tests: These tests ensure that the smallest components of your program are working properly. Depending on the programming language, a component can be a module, unit, or class. Therefore, tests are called module tests, unit tests, or class tests.
- Integration Tests: Integration testing ensures that independently developed and tested components integrate with each other and communicate as expected. The test only targets two specific components, component groups, or independent subsystems of the software system.
- System Tests: The system testing phase includes the entire software system. While integration tests are primarily based on technical specifications, system tests are created from the user's perspective and focus on functional and non-functional application requirements.
- Acceptance Testing: Acceptance testing can be done internally, for example, for unreleased versions of software. Often, these internal acceptance tests are performed by people who are not involved in development or testing, such as: B. Product management, sales, or support. ADVANTAGES
- Development and progress are very organized and systematic
- Suitable for small and medium-sized projects.
- Ambiguity is detected from the beginning because the test starts from the beginning.
- Each stage has well-defined goals and objectives that are easy to manage. DISADVANTAGES
- Not suitable for large and complex projects
- Not suitable if the requirements are inconsistent.
- In the intermediate stages, no working software is created.
- There are uncertainties and risks as there are no provisions for conducting risk analysis.
II. HOW RISK IS MANAGED IN THE SPIRAL LIFECYCLE MODEL (P2) DEFINITION: Risk management is the process of identifying, assessing, and controlling threats to a company's capital and profits. These risks arise from a variety of sources, including financial uncertainty, legal obligations, technical issues, strategic management errors, accidents, and natural disasters. (Tucci, 2020) The project manager or product owner is responsible for the risk manager. You are responsible for overseeing the project and ensuring that everything is running smoothly. In other words, they identify business risk factors, estimate their potential and impact on the project, develop plans, and implement risk management. Or take full advantage of risk identification, risk analysis, and risk mitigation. (Kochalski, 2021) Spiral development supports risk management for software projects in various ways abridged below:
- The first risk analysis serves as a visionary step o Identify most of the risks that threaten your project o Classifying risks into user interface risks and development risks o Rate these risks to determine risks from to every cycles. In addition, this classification helps developers implement risk resolution techniques, such as prototyping and such as benchmarks.
- Evolved prototyping spiral aims to solve performance and user interface related risks. These coils help the reduce the main risk before proceeding to the development process.
- Risk analysis phase of each cycle preceding each phase of the waterfall phase of: o Addresses the risks of programs, development and interface controls uniquely from the start of the project. o Evaluate and resolve the new risk that may occur after the is changed from to goal, alternative or limit at the beginning of the cycle.
- Iterative function of Spiral model allows the development process to return to the first quadrant at any time:
Testing phase doesn’t cover enough cases
50% 50% 25% LOW
Need to identify more cases after the product being released and fix in the maintenance phase 4 Lack of engagement to the implantation process
70% 30% 21% LOW
Giving raises and rewards for employees to motivate them 5 Apply the incorrect or unsuitable SDLC model to manage
60% 8 0% 48 % MEDIUM
Urgent meeting to replace the new SDLC model as soon as possible 6 Misunderstanding the states of SDLC model
70% 40% 28% LOW
Urgent meeting to help employees understand more about the model that we are currently working 7 Slow progress 40% 60% 24% LOW Assign appropriate tasks to each employee regularly check or replace faulty equipment and manage time closely 8 Poor design 20% 20% 4% LOW Need a professional designer or training before undertaking the project 9 Cannot satisfy new technology
15% 30% 4.5% LOW
Training on new technology for employees selecting design staff who have been trained in new technology. 10 Theft of physical intellectual property or equipment.
5% 90% 4.5% LOW
Adhere to security procedures that ensure non-disclosure agreements and
certifications of compliance are in place. Check all physical security measures at site Ensure information security. Notify relevant authorities e.g., police project board and initiate an internal investigation. Table 1 : RISK RESPOND PLAN THE MOST SUITABLE MODEL FOR TUNE SOURCE : SCRUM I am a project manager for a company called ABC. My company was hired by Tune Source to undertake a project which helped them develop software that meets the requirements specified in system requirement From the situation we have a business requirement below: Using the We or in-store kiosks customers will be able to search and purchase digital music downloads. Specific must-have system functions include the following:
- Search for music in our digital music archive.
- Listen to sample music.
- Purchase individual downloads at a fixed price per download.
- Set up a customer subscription account for unlimited downloads for a monthly fee of
- Purchase a gift card to download music. And we had some problems:
- The marketing department sees this as a strategic system. The ability to offer digital music downloads is essential to staying competitive in our niche. Our music archive of rare and hard-to-find music is an underutilized asset right now.
- Many of our existing loyal customers have requested this capability and we must provide this service or settle the losing business for these customers.
the Sprint has begun. If the required change is so great that the outcome of the Sprint would be worthless without it the Sprint will end. Otherwise, the change will be included in the next Sprint. There is only one exception to this rule about not changing the scope of a Sprint once a Sprint begins. If the Scrum Team determines it has heavily overestimated the effort during the Sprint and has spare capacity to implement additional User Stories the team can ask the Product Owner which additional User Stories should e included in the current Sprint.
3. For instance: TUNE SOURCE
i. Identification
In this phase toward a successful project, we will establish the goals, examine the client's demands, and analyze the project's possible risks: The system must contain the following functions:
- Search our digital music archive for music.
- Play music samples.
- Purchase individual downloads for a set charge per download
- Create a customer subscription account that allows limitless downloads for a monthly fee
- Purchase music download gift cards.
ii. Design
Following the base spiral, the Design phase begins with conceptual design and includes architectural design, logical module design, physical product design, and final design in the modules next spiral.
iii. Construct
We will discuss the actual software product generation in each of the helix models during the Build phase. When new goods are conceived and designs are produced in the base spiral, a POC (Proof of Concept) is created at this phase to obtain client input.
Then, in the following stages, with more clarity on the requirements and design specifics, a functioning model of the program known as a build with a version number is generated. These prototypes are submitted to the buyer for review.
iv. Evaluation and Risk Analysis
We assess, estimate, and evaluate technical feasibility and hazards, like as delays and first cost overruns, at this stage. We will ask the customer to rate the software and provide feedback after evaluating the build at the conclusion of the first iteration. Our software development process enters the next iteration based on customer input and subsequently takes a linear approach to adopting consumer-recommended feedback. The spiral iteration process continues for the duration of the software's life.