Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 21

ASSIGNMENT 01 FRONT SHEET

Qualification BTEC Level 5 HND Diploma in Computing


Unit number and title Unit 09: Software Development Life Cycle
Submission date Date Received 1st submission
Re-submission Date Date Received 2nd submission
Student Name Student ID

Class GCH1105 Assessor name

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 D2
❒ Summative Feedback: ❒ Resubmission Feedback:

Grade: Assessor Signature: Date:

Internal Verifier’s Comments:

Signature & Date:

Table of Contents
Introduction.............................................................................................................................................................................................................................................. 3
Task 1 – SDLC model................................................................................................................................................................................................................................. 4
P1. Describe the following SDLC models: waterfall, v-model, prototyping, scrum and spiral. Choose one that you think suitable for the project and explain why. . 4
1. SDLC model............................................................................................................................................................................................................................... 4
2. Describe the following SDLC..................................................................................................................................................................................................... 6
3. Choose one that you think suitable for the project explain why............................................................................................................................................15
P2. Identify some risks and discuss an approach to manage them.....................................................................................................................................................16

Introduction
A organized procedure known as the Software Development Life Cycle (SDLC) provides the fastest possible development of high-quality, low-cost software.
Producing top-notch software that meets and surpasses all client expectations and needs is the aim of the SDLC. The SDLC develops and specifies a comprehensive
plan with stages, or phases, each of which has its own procedure and outputs. Following the SDLC reduces project risks and costs and speeds up development
while increasing the efficiency of production.

I will outline the SDLC methodology utilized to complete the project for my ABC firm in this report, which involved creating software for Tune Source that complied
with the system request.
Task 1 – SDLC model
P1. Describe the following SDLC models: waterfall, v-model, prototyping, scrum and spiral.
Choose one that you think suitable for the project and explain why.
1. SDLC model
 Define
o SDLC stands for Software Development Life Cycle, which is a structured framework used in the software industry to plan, design, develop, test,
deploy, and maintain software systems and applications. The SDLC model outlines a series of phases and activities that guide the entire software
development process from concept to completion. Different SDLC models exist, each with its own approach and characteristics.
 Why is SDLC important?
o Structured Approach: SDLC provides a structured and systematic framework for developing software. It ensures that the development process is
organized and well-defined, which helps in managing complex projects more effectively.
o Clear Communication: SDLC facilitates clear communication between different stakeholders, including developers, testers, project managers, and
clients. Everyone involved in the project understands the phases, tasks, and expectations, leading to better collaboration.
o Predictable Outcome: Following a defined SDLC model increases the predictability of the development process. Each phase has specific
deliverables and criteria for completion, allowing teams to measure progress and identify potential risks early.
o Quality Assurance: SDLC models incorporate testing and quality assurance activities at various stages. This leads to better software quality by
identifying and fixing issues at an early stage, reducing the chances of defects reaching the production environment.
o Risk Management: SDLC includes risk assessment and mitigation strategies. By identifying risks and potential challenges early, teams can take
proactive measures to address them, minimizing the impact on the project's success.
o Resource Management: SDLC helps in optimizing resource allocation and utilization. Project managers can allocate resources based on the specific
requirements of each phase, leading to efficient use of time and manpower.
o Customer Satisfaction: SDLC models often emphasize customer involvement and feedback. This ensures that the end product aligns with the
customer's expectations and requirements, leading to higher levels of customer satisfaction.
o Cost Control: By having a well-defined development process, SDLC enables better cost estimation and budget management. This helps in avoiding
unexpected expenses and keeping the project on track financially.
o Documentation: SDLC encourages the creation of documentation at each phase, including requirements, design specifications, test plans, and user
manuals. This documentation serves as a valuable resource for future maintenance and updates.
o Change Management: SDLC provides mechanisms for handling changes in requirements or scope. Through formal change control processes,
teams can assess the impact of changes and make informed decisions about incorporating them.
o Efficient Development: SDLC models help in streamlining the development process by breaking it down into manageable phases. This reduces the
complexity of the project and allows developers to focus on one aspect at a time.
o Compliance and Regulation: In industries with strict compliance and regulatory requirements, following an established SDLC helps in ensuring that
the software meets the necessary standards and guidelines.
 Phrase in SDLC
The Software Development Life Cycle (SDLC) provides a structured approach for developing a software application. It involves a series of steps to
ensure a systematic and organized development process. These steps typically include:
 Requirements Gathering: Understanding and documenting the software's functional and non-functional requirements, which define what the
application should do and how it should perform.
 System Design: Creating a detailed technical design that outlines how the software will be built, including architecture, database design, and
overall system structure.
 Implementation: The actual coding and development of the software based on the design specifications.
 Testing: Verifying and validating the software to identify and fix defects or issues, ensuring that it meets the specified requirements.
 Deployment: Releasing the software to users or the production environment.
 Maintenance: Ongoing support and updates to address issues, add new features, and improve the software throughout its lifecycle.
2. Describe the following SDLC

2.1. Waterfall model

Figure 1 -- Waterfall model


 Definition
The Waterfall Model was the first Process Model to be introduced. It is also referred to as a linear-sequential life cycle model. It is very simple
to understand and use. In a waterfall model, each phase must be completed before the next phase can begin and there is no overlapping in
the phases.
The Waterfall model is the earliest SDLC approach that was used for software development.
The waterfall Model illustrates the software development process in a linear sequential flow. This means that any phase in the development
process begins only if the previous phase is complete. In this waterfall model, the phases do not overlap.
 Advantage and Disadvantage

Advantages Disadvantages

Clear and well-defined project phases Lack of flexibility to accommodate changes

Structured and easy to understand Limited customer involvement during development

Strong documentation at each phase Difficult to go back and make changes

Suitable for projects with stable requirements Long development timelines

Easy to manage and measure progress Limited room for risk assessment and mitigation

Well-defined deliverables at each phase Inefficient in handling complex and large projects
2.2. V model

Figure 2 -- V model
 Definition
The V-model is an SDLC model where execution of processes happens in a sequential manner in a V-shape. It is also known as Verification and
Validation model.
The V-Model is an extension of the waterfall model and is based on the association of a testing phase for each corresponding development stage.
This means that for every single phase in the development cycle, there is a directly associated testing phase. This is a highly-disciplined model and
the next phase starts only after completion of the previous phase.
 Advantage and Disadvantage

Advantages Disadvantages

Strong emphasis on testing and validation Rigid and inflexible approach

Clear correlation between development and testing phases Can be time-consuming

Early detection and resolution of defects Limited adaptability to changes

Well-structured and easy to manage Can result in delays if testing is prolonged

Reduced risk of issues going unnoticed High initial planning and design effort

Encourages clear documentation May not suit projects with evolving requirements
2.3. Spiral model

Figure 3 -- Spiral Model


 Definition
The spiral model combines the idea of iterative development with the systematic, controlled aspects of the waterfall model. This Spiral model is a
combination of iterative development process model and sequential linear development model i.e. the waterfall model with a very high emphasis
on risk analysis. It allows incremental releases of the product or incremental refinement through each iteration around the spiral.
 Advantage and Disadvantage

Advantages Disadvantages

Iterative and incremental approach Can be complex and difficult to manage

Flexibility to accommodate changes Requires experienced and skilled team

Risk assessment and mitigation are integral Time-consuming due to repeated cycles

Better management of project risks May result in higher development costs

Good for large and complex projects Can be challenging for smaller projects

Customer feedback is incorporated early Continuous evaluation can be resource-intensive

Well-suited for projects with evolving requirements May not be suitable for small budgets
2.4. Agile Model

Figure 4 -- Agile Model


 Definition
Agile SDLC model is a combination of iterative and incremental process models with focus on process adaptability and customer satisfaction by rapid delivery
of working software product. Agile Methods break the product into small incremental builds. These builds are provided in iterations. Each iteration typically
lasts from about one to three weeks. Every iteration involves cross functional teams working simultaneously on various areas like:
- Planning
- Requirements Analysis
- Design
- Coding
- Unit Testing and
- Acceptance Testing.

At the end of the iteration, a working product is displayed to the customer and important stakeholders.

 Advantage and Disadvantage

Advantages Disadvantages
Customer involvement and feedback Requires active and dedicated customer
Iterative development with frequent releases Continuous changes can impact stability
Flexibility to accommodate changing requirements Lack of comprehensive documentation
Rapid response to changes in the project Can be challenging for large and complex projects
Emphasis on working software over documentation May require experienced and self-disciplined team
Improved collaboration and team communication Requires close coordination and communication
Early identification and resolution of issues Can be challenging for remote or distributed teams
2.5. Prototyping model

Figure 5 -- Prototype model


 Definition
 Prototype is a software development model that is developed based on system requirements. Based on the prototype, the customer has an
overview of the actual system.
 Prototypes are a good idea for large and complex systems that don't have a manual process to help define requirements.
 Prototypes are often not the complete system and many details are not built into the prototype. The goal is to provide a system with overall
functionality.

 Advantage and Disadvantage

Advantages Disadvantages
Enhanced user involvement and feedback Can lead to scope creep and project delays
Early visualization of the final product Can result in higher development costs
Quick identification of user requirements May not be suitable for small projects
Iterative refinement of the prototype Requires active user participation
Better understanding of user needs May not be suitable for complex projects
Reduced risk of misunderstandings Prototype may not accurately represent final product
Effective communication between stakeholders Can be challenging to manage multiple iterations
3. Choose one that you think suitable for the project explain why
Given the project description and business requirements, it appears that the Agile model would be the most suitable approach for this undertaking. Let's delve
into the reasons behind this well-suited choice:

 Agile's Capacity for Adapting to Changing Requirements:


o The Agile methodology's hallmark trait is its remarkable flexibility in accommodating evolving requirements. In the context of your project,
which involves the development of a digital product and the integration of functionalities like search, sample playback, purchasing, and
account management, the ability to readily adjust requirements assumes paramount importance. This ensures that the resulting system is
adept at effectively meeting the ever-evolving needs of your discerning clientele.
 User Feedback Amplified through Agile:
o Agile methodology places a pronounced emphasis on continuous user engagement and feedback loops. This aspect resonates profoundly with
your project, which entails direct user-interaction features such as search and sample playback. Embracing Agile allows your team to harness
the invaluable insights gleaned from user feedback, enabling iterative refinements and enhancements. By integrating real-world user
perspectives, the resultant product is poised to be finely tuned to meet the practical expectations of your clientele.
 Iterative Development and Seamless Testing:
o At the core of Agile lies its capacity to partition a project into incremental phases, each undergoing iterative development. This approach
resonates harmoniously with your objectives. The phased development structure facilitates ongoing testing and validation of each increment,
leading to the early detection and swift resolution of potential errors. This iterative testing framework acts as a safeguard, ensuring a robust
and polished final product.
 Continuous Integration to Enhance User Experience:
o The Agile framework inherently advocates for the seamless integration of novel features into the existing product architecture. This attribute
aligns seamlessly with the ambitions of your project, aimed at embedding the capability for digital music downloads within your current
physical store and web infrastructure. By adopting Agile, you empower your team to seamlessly integrate these capabilities, facilitating a
cohesive and enhanced user experience.
 The Imperative of Timeliness:
o In a landscape brimming with diverse online music download options, the strategic advantage of swift market entry cannot be overstated. The
Agile model's propensity for expeditious development and integration allows Tune Source to assertively seize the competitive edge. Rapid
deployment becomes instrumental in ensuring Tune Source maintains its market leadership by promptly capitalizing on the unique offering it
aims to present.
Requirements
/ SDLC Model Waterfall V-Model Spiral Agile Prototyping
Change Can accommodate Flexible, easy to change
Requirement Low, difficult to adjust after changes in the Flexible, allows requirements based on Flexible, suitable for
Flexibility project start architecture phase adjustments over time user feedback changing needs
Delayed, potential Continuous, user- Continuous, integrated Continuous, user-
User Feedback Low, slow feedback feedback at each stage focused feedback user feedback focused feedback
Incremental
Development and
Continuous Sequential, developed in Sequential, developed in Sequential, developed in Sequential, developed in Sequential, developed in
Testing stages stages stages stages stages
Continuous Continuous, ongoing Continuous, ongoing Continuous, ongoing
Integration End of project phases End of project phases integration integration integration
High, requires tight time High, requires tight time Medium, potential for Medium, suitable for
Time Importance management management delays High, time-flexible quick releases
Detailed planning,
Project and User Detailed planning, limited user involves users in each Planning required, user Flexible, user- Flexible, user-
Management involvement stage feedback needed dependent dependent

P2. Identify some risks and discuss an approach to manage them


1. How risk is managed in the Spiral lifecycle model
 Risk Identification: The first phase of the Spiral Model involves identifying potential risks related to the project's goals, requirements, technology, and
resources. Risks could include technical challenges, changes in requirements, budget constraints, etc.
 Risk Assessment: In this phase, the identified risks are analyzed to understand their potential impact on the project. Risks are categorized based on
their severity and likelihood of occurrence. This assessment helps prioritize which risks need more attention.
 Risk Mitigation Planning: Once risks are assessed, strategies for mitigating or managing these risks are developed. This might involve defining
alternate solutions, developing contingency plans, allocating resources, and setting up early warning systems to detect potential issues.
 Prototyping and Development: The Spiral Model involves iterative development, where each iteration or "spiral" includes planning, design,
development, and testing phases. These iterations allow for the gradual implementation of system components and features while also addressing
identified risks.
 Risk Monitoring and Control: Throughout each iteration, risks are continuously monitored. Progress is assessed, and if new risks emerge or existing
risks evolve, mitigation plans are adjusted accordingly. The goal is to ensure that the project remains aligned with its objectives despite changing
circumstances.
 Client Evaluation: At the end of each iteration, a prototype or working version of the software is presented to the client or stakeholders for evaluation.
This provides an opportunity for early feedback, allowing for the identification of potential risks related to user requirements and expectations.
 Decision to Proceed: After each iteration, a decision is made on whether to proceed to the next iteration or phase. This decision is based on the
evaluation of the prototype, the progress made, and the effectiveness of risk mitigation strategies.

2. List common risks of a software project


 Incomplete Requirements: Unclear or incomplete requirements can lead to scope creep, project delays, and dissatisfaction among stakeholders.
 Scope Creep: Uncontrolled expansion of project scope beyond the initial requirements can lead to increased costs, timeline extensions, and resource
overruns.
 Technical Complexity: Complex technologies, integrations, or architecture can result in difficulties in implementation, testing, and maintenance.
 Budget Overruns: Poor cost estimation, unexpected expenses, or changes in project scope can cause the project to exceed its budget.
 Resource Shortages: Insufficient human resources, expertise, or tools can lead to delays and suboptimal quality.
 Schedule Delays: Unforeseen challenges, underestimated tasks, or external factors can cause delays in project milestones.
 Unclear Communication: Poor communication among team members, stakeholders, or project managers can lead to misunderstandings, errors, and
rework.
 Change in Requirements: Frequent changes in user needs and requirements can disrupt project progress and necessitate adjustments.
 Quality Assurance Challenges: Insufficient testing or poor quality assurance processes can result in defects, security vulnerabilities, or inadequate
performance.
 Vendor Dependencies: Reliance on third-party vendors for software components or services can lead to delays if vendors fail to deliver as expected.
 Lack of User Involvement: Inadequate involvement of end-users throughout the development process can result in a product that does not meet their
needs.
 Insufficient Testing: Skipping or inadequate testing can lead to undetected defects, system failures, and poor user experiences.
 Poor Project Management: Ineffective project planning, monitoring, and control can lead to missed deadlines and project chaos.
 Unrealistic Expectations: Setting overly ambitious goals or expectations can lead to dissatisfaction if not achieved.
 Stakeholder Conflicts: Disagreements among stakeholders or conflicting priorities can hinder decision-making and project progress.
 Lack of Documentation: Inadequate documentation of code, design decisions, or processes can complicate maintenance and future development.
 Dependency Risks: Reliance on external systems, APIs, or libraries can introduce risks if these dependencies change or become deprecated.
 Data Security Breaches: Insufficient security measures can lead to data breaches, exposing sensitive user information.
 Regulatory Compliance: Failure to comply with industry standards and regulations can result in legal consequences and reputation damage.
 Inadequate Training and Transition: Lack of user training and a smooth transition plan can lead to user resistance and difficulties during system adoption.

3. Risks of Tune Source project


Risk Cause Consequence Solution Possible
Unclear initial
understanding of project Scope creep, dissatisfaction Conduct thorough
Incomplete Requirements needs among stakeholders requirement analysis High
Uncontrolled expansion of Increased costs, timeline Strictly manage scope
Scope Creep project scope extensions changes High
Complex technologies or Plan for training and
Technical Complexity architecture Implementation challenges expertise development Moderate
Poor cost estimation, Financial strain, incomplete
Budget Overruns unexpected expenses project Detailed budget planning Moderate
Insufficient human Delays, compromised Resource allocation
Resource Shortages resources or expertise quality planning Moderate
Unforeseen challenges, Realistic schedule
Schedule Delays underestimated tasks Missed deadlines estimation Moderate
Poor communication Implement effective
Unclear Communication among team/stakeholders Misunderstandings, errors communication channels Moderate
Frequent changes in user Establish a robust change
Change in Requirements needs Project disruption, delays management process Moderate
Insufficient testing, poor
Quality Assurance quality assurance Defects, security Implement comprehensive
Challenges processes vulnerabilities testing procedures Moderate
Reliance on third-party Delays if vendors fail to Identify backup vendors or
Vendor Dependencies vendors deliver establish SLAs Moderate
Inadequate end-user
engagement during Unsatisfactory product, Regularly involve users in
Lack of User Involvement development low adoption rate design and testing Moderate
Insufficient security Data breaches, legal Implement strong security
Data Security Breaches measures consequences protocols Moderate
Failure to adhere to Legal consequences, Stay informed about
Regulatory Compliance industry regulations reputational damage relevant regulations Low
Ineffective planning, Missed milestones, project Implement robust project
Poor Project Management monitoring, and control chaos management practices Low
Set achievable and
Setting overly ambitious Dissatisfaction if not measurable project
Unrealistic Expectations goals achieved objectives Low
Disagreements among Facilitate open
stakeholders or conflicting communication among
Stakeholder Conflicts priorities Decision-making hurdles stakeholders Low
Inadequate documentation Maintenance difficulties, Implement comprehensive
Lack of Documentation of code and decisions knowledge gaps documentation practices Low

P3. Explain the purpose of a feasibility report.


 Define:
o A feasibility study is a document that assesses the viability of a group of suggested project pathways or solutions. When writing a feasibility report,
the author assesses the viability of several alternatives before making a suggestion for the best one. After that, they give their advice to the firm
and provide the feasibility report.
 Type of feasibility report:
o Technical Feasibility Report: This type of report assesses whether the proposed project can be implemented from a technical perspective. It
examines the existing technology, infrastructure, and resources available to determine if the project's requirements can be met.
o Financial Feasibility Report: This report focuses on the financial aspects of the project. It analyzes the costs associated with the project, including
initial investment, operating costs, potential revenues, and expected profits. The report helps determine if the project is financially viable and if
the expected returns justify the investment.
o Operational Feasibility Report: Operational feasibility assesses whether the project can be effectively integrated into the existing operations and
processes of the organization. It considers factors such as manpower, skills, training, and potential disruptions to ongoing operations.
o Legal Feasibility Report: Legal feasibility examines whether the proposed project complies with relevant laws, regulations, and legal requirements.
It identifies potential legal barriers or challenges that could arise during the project's implementation.
o Schedule Feasibility Report: This type of report evaluates whether the project can be completed within the desired timeframe. It considers factors
such as the project's complexity, available resources, and potential bottlenecks that could affect the project's schedule.
o Market Feasibility Report: Market feasibility assesses the demand and market potential for the proposed product or service. It analyzes the target
audience, competition, market trends, and potential risks in entering the market.
o Organizational Feasibility Report: This report examines whether the organization's structure, culture, and capabilities are conducive to the
successful implementation of the project. It considers factors such as management support, employee skills, and adaptability to change.
 The purpose of feasibility study:
o The purpose of a feasibility study is to assess the viability and practicality of a proposed project, initiative, or business idea. It involves a thorough
examination of various aspects of the project to determine whether it is feasible to proceed with its implementation. In summary, the primary
purpose of a feasibility study is to provide a comprehensive analysis of a proposed project's feasibility across various dimensions. The study's
findings and insights assist stakeholders in making informed decisions about whether to move forward with the project, adjust its scope, or
abandon it if it is determined to be unfeasible.

P4. Describe how technical solutions can be compared


- Alternative matrices can be used to organize the advantages and disadvantages of each design choice in order to select the best one. This matrix's creation
follows the same steps as the feasibility analysis's. The sole distinctive aspect of the option matrix is how it incorporates several feasibility analyses into a single
matrix, making it easy to evaluate the alternatives. An alternative matrix is a grid that describes the organizational, financial, and technical feasibility of each
proposed system.

Criteria Python Java C++ Preferred Solution


Performance High Medium High Python
Scalability Medium High High Java
Security Medium High High Java
Cost Low Medium Medium Python
Ease of Maintenance High Medium Medium Python
Compatibility High High Medium Python
Community Support High High Medium Python
Learning Curve Low Medium Medium Python
Deployment Ease High Medium Medium Python
Resource Efficiency Medium Medium High C++
Flexibility High Medium Medium Python
Total Score 72 76 63 Java

- I have decided to opt for JavaScript as the programming language for the Tune Source project after carefully evaluating different programming languages and
methods for its implementation. JavaScript's highly user-friendly interface and its leading support for developing and managing websites make it the optimal
choice for this project. The exceptional user experience that JavaScript provides will undoubtedly contribute to enhancing the system's appeal to users.
Additionally, its compatibility with other languages and libraries can further streamline the process of creating the system.

You might also like