Professional Documents
Culture Documents
Asm1 1631
Asm1 1631
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:
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
Advantages Disadvantages
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
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
Advantages Disadvantages
Risk assessment and mitigation are integral Time-consuming due to repeated cycles
Good for large and complex projects Can be challenging for smaller projects
Well-suited for projects with evolving requirements May not be suitable for small budgets
2.4. Agile Model
At the end of the iteration, a working product is displayed to the customer and important stakeholders.
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
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:
- 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.