SDLC - Assignment 1 Frontsheet

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

ASSIGNMENT 1 FRONT SHEET

Qualification BTEC Level 5 HND Diploma in Computing

Unit number and title Unit 7: Software Development Life Cycle

Submission date 14/03/2024 Date Received 1st submission 11/03/2024

Re-submission Date 15/04/2024 Date Received 2nd submission 12/04/2024

Student Name Nguyen Huu Tri Student ID BS00389

Class SE06203 Assessor name Truong Quoc Khanh

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

Grade: Assessor Signature: Date:


Internal Verifier’s Comments:

Signature & Date:


I. Table of Contents

II. Introduction

III. Body
1. (P1) Description of predictive and adaptive software development models
considering at least two iterative and two sequential models.
 Definition
- Predictive Software development: It is a software development process in which the model is
being designed, executed and analysis is done step by step till the product reach its end and
satisfies all it’s requirements. The predictive approach concentrates on making strategies and
analyzing the project for its better development and to predict any risk. Predictive development
is also named as Iterative Waterfall method. Waterfall methodology just follows the direction
where the first flow goes or those who leads the direction, just like that this methodology also
depends on the previous step of analyzing and further it follows the above phase and then
processes it.[1]
- Adaptive software development: Adaptive development is also known as Agile methodology.
Adaptive development altered the previous traditional method that is Waterfall method by a
contiguous series of reflect, partnership, grasp cycles. This cycles provides us the gaining of
continuous knowledge and adaptation to the developing stage of the project. The main focus of
Adaptive development life cycle is to be concentrated on projects, identified, repeated, time
boxed, courageous, change liberally.

 Model characteristics
- Predictive Software Development Models:

1. Sequential Approach: The waterfall model involves a sequential approach to software


development, where each phase of the project is completed before moving on to the next
one.
2. Document-Driven: The waterfall model relies heavily on documentation to ensure that the
project is well-defined and the project team is working towards a clear set of goals.
3. Quality Control: The waterfall model places a high emphasis on quality control and testing
at each phase of the project, to ensure that the final product meets the requirements and
expectations of the stakeholders.
4. Rigorous Planning: The waterfall model involves a rigorous planning process, where the
project scope, timelines, and deliverables are carefully defined and monitored throughout
the project lifecycle.[2]
- Adaptive Software Development Models:

1. Mission Driven: It generally happens with development team initially that requirements are
fuzzy and uncertain but overall mission that guides team is rightly expressed. In beginning, this
mission works as a boundary of exploration having no fixed destination but slowly directs
development team to reach the destination by fulfilling all changed requirements, demands,
and market needs. And the more interesting fact is that in each development cycle the
activities are justified against overall project mission.
2. Feature Based: In Adaptive Software Development, all activities which are performed not task-
based rather those are based on application features and the focus are on developing working
software and delivering a required product. In each iteration, customer’s requirements are
added to product as new features and in the last, a good product is expected as a result.
3. Iterative: Adaptive Software Development is based on iterative processes. The new features
are added in each iteration. This follows the principle of constant change and re-evaluation. It
does not do right for the first time rather is redoes the development repeatedly by taking
feedbacks as input and working on those and again setting right direction for further
development. So it is based on a continuous feature addition process with an aim of building
complex software solution iteratively and giving results in the end.
4. Time Boxed: Time boxed in the Adaptive Software Development process refers not to use time
deadlines incorrectly rather it is about setting fixed delivery times for iterations and projects
minimally and greatly focusing and forcing a good work environment to get work finished when
change rates are so high and the environment looks like uncertain.
5. Risk Driven: In Adaptive Software Development, in each iteration new challenges come and the
process aims to solve high-risk items/activities quickly. So in this, the adaptive iterations are
identified and analyzed with critical risks and also evaluated as well.
6. Change Tolerant: As we discussed Adaptive Software Development is based on constant
change, re-evaluation, and evolving products with lightweight planning and continuous
learning. So this process takes continuous changes as an advantage and welcomes it. It does
not make changes as problems rather it takes the changes as new challenges.[3]

 Phases of the model


- Predictive Software Development Models:

1. Planning and Requirements Gathering:

 This initial phase focuses on defining the project scope, objectives, and functionalities. It
involves gathering requirements from stakeholders, users, and other key players.
Techniques like interviews, surveys, and workshops are used to capture a comprehensive
understanding of what the software needs to achieve.
 Deliverables: A detailed requirements document outlining the functionalities, features,
and user stories.
 Business analysts and project managers engage in meetings with the customer to
determine what the software should accomplish, who the end-users are, and the purpose
of the product. The goal is to create a comprehensive Software Requirement Specification
(SRS) document that serves as a reference throughout the project’s lifecycle.

2. System Design:

 Based on the gathered requirements, this phase focuses on designing the overall
architecture and system components. Architects define the system's technical
specifications, data flow, user interface mockups, and how different components will
interact.
 Deliverables: System architecture diagrams, database schema, user interface (UI)
mockups or prototypes.
 After gathering requirements, the design phase comes into play. During this phase, the
software’s detailed architecture and functionality are planned. It encompasses both high-
level and low-level design aspects, outlining how the program will operate and appear. It
is one of the essential phases in SDLC life cycle to ensure that the project aligns with the
previously gathered requirements.

3. Development and Implementation:

 This phase involves coding the software based on the design specifications. Developers
translate the design documents into functional code, adhering to coding standards and
best practices. Unit testing is often performed at this stage to ensure individual code
modules function correctly.
 Deliverables: Functional software code, unit test results.
 Once the design phase is completed, developers start writing the actual source code for
the software. This phase translates the design specifications into a functional product. All
components and features of the program are developed during this stage, adhering to the
design guidelines.

4. Testing and Integration Testing:


 In this phase, the developed software undergoes rigorous testing to identify and fix bugs
and ensure it meets the defined requirements. This includes system testing, integration
testing (testing how different components work together), and user acceptance testing
(UAT) where users provide feedback.
 Deliverables: Test plans, test cases, bug reports, and a final version of the software with
identified defects resolved.
 Testing is a critical phase of SDLC that begins after coding. Rigorous testing is conducted to
identify and rectify any defects or issues within the program. A variety of testing methods
and techniques are used to ensure that the software functions correctly. The Software
Requirement Specification document serves as a reference to ensure that the program
meets the customer’s expectations and standards.

5. Deployment and Maintenance:

 After successful testing and approval, the program is ready for deployment. It is either
moved to the production environment directly or undergoes User Acceptance Testing
(UAT), depending on customer expectations. UAT involves replicating the production
environment and inviting both the customer and development team to test the software
thoroughly. Once approved, the software is deployed to the live environment, making it
accessible to end-users. Once testing is complete, the software is deployed to the
production environment where it will be used by end users. This phase may involve user
training and documentation creation.
 Maintenance: The development team continues to provide ongoing support, fixing bugs,
addressing security vulnerabilities, and potentially adding new features based on user
feedback or changing needs. The maintenance phase of SDLC focuses on continuous
support, updates, and improvements to the software. Any issues that arise in the
production environment are addressed promptly. Developers also implement
enhancements and new features as needed to keep the software up-to-date and aligned
with changing requirements.[4]
- Adaptive Software Development Models:
1. Speculation: During this phase project is initiated and planning is conducted. The
project plan uses project initiation information like project requirements, user needs,
customer mission statement, etc, to define set of release cycles that the project wants.
2. Collaboration:
It is the difficult part of ASD as it needs the workers to be motivated. It collaborates
communication and teamwork but emphasizes individualism as individual creativity
plays a major role in creative thinking.
3. Learning:
The workers may have a overestimate of their own understanding of the technology
which may not lead to the desired result. Learning helps the workers to increase their
level of understanding over the project. Learning process is of 3 ways:
 Focus groups
 Technical reviews
 Project postmortem
ASD’s overall emphasis on the dynamics of self-organizing teams, interpersonal
collaboration, and individual and team learning yield software project teams that have a
much higher likelihood of success.[5]

 Advantages and disadvantages of the model.


- Predictive Software Development Models:
o Advantages:
 The predictive SDLC is easy to follow and doesn't require any special
understanding.
 Every next phase under this process is only initiated when the previous one is
completed.
 There are clearly defined milestones, goals, and a concise workflow that make it
easy for developers to work as per the specified budget and timeline.
 Development teams are able to predict the project timeline and budget when
things go as per planning.
 Software development services leverage Waterfall model as an organized and
sequential approach is needed to build reliable software solutions.
 Managing and monitoring projects is easy under this process because of specific
timelines and deliverables.
 Waterfall is an example of a predictive approach.
o Disadvantages:
 The final product is produced at the last stage of the predictive model.
Consequently, it’s hard to implement changes and fix any bugs discovered later
once the software product is complete.
 It adds extra software costs arising from the delays due to the discovery of bugs in
testing the final product.
 Predictive software development is not suitable for complex projects.[6]
- Adaptive Software Development Models:
o Advantages:

 Adaptive SDLC entails iterative, evolutionary and incremental methodologies


which offer flexible guidelines and easy flow of work.
 Methodologies such as Agile are efficient in nature and enhance team
collaboration.
 Short feedback loops lead to quick adaptation to changing requirements.
 Reduces potential vulnerabilities and bugs at the deployment stage as the
application is frequently tested while in the development phase.
 It focuses on delivering high quality applications while maintaining technical
excellence.
 Encourages different teams to work together on a project, increasing face-to-face
interactions and building better work environments.
o Disadvantages:

 It demands for extensive client/user involvement throughout the SDLC.


 Various teams have to work together continuously while working with adaptive
SDLCs, and this involves numerous interactions. Continuous communication
between teams can be time consuming and require more commitment.
 Since adaptive SDLC requires close collaboration between organizations and their
clients, lack of commitment from either of the sides could impact software quality.
 Frequent changes are adopted just in time for development which might result in
less detailed documentation.[7]

2. (P2) Explain how risk is managed in software lifecycle models.


The risks involved in each of the models and how the risk can be mitigated
/managed in each model (described in P1) by taking a reference of the spiral model.
- How risk is managed in software lifecycle models:

1. Waterfall Model: The Traditionalist

Imagine a waterfall – that's the essence of this linear approach. Requirements are solidified
upfront, and the project progresses through stages (planning, design, development, testing,
deployment) in a fixed sequence. Risk management focuses on meticulous planning and detailed
documentation to catch issues early. However, Waterfall struggles with changing needs – if
requirements shift mid-stream, the whole process can grind to a halt.[8]

2. Agile Model: Embrace the Change

Agile flips the script on Waterfall. It's an iterative and incremental approach where working
software is delivered in short sprints (development cycles). Requirements can evolve throughout
the project as the team gathers feedback. Risk is managed through continuous testing and close
collaboration between developers and stakeholders. This adaptability makes Agile perfect for
projects with uncertain requirements, but it requires strong communication and a disciplined
team.[9][10]

3. Iterative Model: Finding the Middle Ground


The iterative model bridges the gap between Waterfall and Agile. Here, development is
broken into cycles, similar to Agile. However, there's a more defined planning stage at the
beginning of each iteration. Risk is addressed through ongoing risk assessment and mitigation
strategies throughout the cycles. This approach offers more control than pure Agile while
allowing for some flexibility in requirements.[11]

4. Spiral Model: Risk is King

Ever feel like some projects are inherently risky? The spiral model is built for you. It combines
elements of Waterfall and Agile in a cyclical approach (planning, design, build, evaluate). The key
differentiator is the strong focus on risk identification and mitigation at each stage. The project
spirals outwards, revisiting stages as needed to address emerging risks.[12]

5. DevOps Model: Breaking Down Silos

DevOps isn't a strictly defined SDLC model, but rather a collaborative philosophy. It
emphasizes breaking down the walls between development (Dev) and operations (Ops) teams.
Throughout the lifecycle, these teams work together using shared tools, automated testing, and
continuous integration and deployment (CI/CD). This fosters faster release cycles and reduces
risks associated with communication gaps between Dev and Ops.[13][14]
3. (P3) Discuss the purpose of conducting a feasibility study for the project. Report is to
present the project parameters and define the potential solutions to the defined
problem, need, or opportunity of NEI project. Prepare a brief report discussing the
components of the feasibility report
(https://tpsgc-pwgsc.gc.ca/biens-property/sngp-npms/ti-it/etivcarftp-idsfvfrmd-
eng.html)
4. (P4) Describe how technical solutions can be compared.
 Discuss whether the project is feasible.

 Discuss alternative technical solutions using the alternative matrix.

5. (M1) Discuss the suitability of each of the SDLC models for the project. For each
model, specify whether it is most, moderately or least suitable.
Describe with an example why a particular lifecycle model is selected for a
development environment. You may consider a different development environment
with different business logics, platform, etc., and the applicability of the particular
software development model over the development environment.
6. (M2) Discuss the components of a feasibility report.
 Discussion economic feasibility study on NEI project (NPV, Cashflow, Break-Even Point)

 Discussion organizational feasibility study on NEI project

7. (D1) Discuss the merits of applying the Waterfall model to a large software
development project.
Assess the merits of applying the waterfall model to a large software
development project with appropriate evidenced researched work with reference to
the current context.
8. (D2) Assess the impact of different feasibility criteria on a software investigation..
 Discussion and represent as feasibility alternatives matrix for NEI project
IV. Evaluation

V. Conclusion

VI. References
[1] (2023) Difference between Predictive Development and Adaptive Development. Available at:
https://www.geeksforgeeks.org/difference-between-predictive-development-and-adaptive-
development/ (Accessed: 15 April 2024).
[2] (2024) Waterfall Model – Software Engineering. Available at:
https://www.geeksforgeeks.org/waterfall-model/ (Accessed: 15 April 2024).
[3] (2020) Characteristics of Adaptive Software Development. Available at:
https://www.geeksforgeeks.org/characteristics-of-adaptive-software-development/ (Accessed: 15
April 2024).
[4] (2024) Software Development Life Cycle (SDLC): Phases, Models, and Benefits. Available at:
https://future-code.dev/en/blog/software-development-life-cycle-sdlc-phases-models-and-
benefits/ (Accessed: 15 April 2024).
[5] (2024) Adaptive Software Development (ASD). Available at:
https://www.geeksforgeeks.org/adaptive-software-development-asd/ (Accessed: 15 April 2024).
[6] (2023) Predictive vs Adaptive Development: Which Way to Go? Available at:
https://radixweb.com/blog/predictive-vs-adaptive-development (Accessed: 15 April 2024).
[7] (2020) Predictive vs. Adaptive SDLC: What is the Difference? Available at:
https://cypressdatadefense.com/blog/predictive-vs-adaptive-sdlc/ (Accessed: 15 April 2024).
[8] (2024) Waterfall to Agile: Conquering the Transition with Effective Strategies. Available at:
https://eastgate-software.com/waterfall-to-agile-conquering-the-transition-with-effective-
strategies/#:~:text=In%20the%20Waterfall%20approach%2C%20changing,needs%20are
%20difficult%20to%20accommodate. (Accessed: 15 April 2024).
[9] (2023) Agile Feedback Loop: Why You Need It During and After the Sprint Process. Available at:
https://www.mendix.com/blog/agile-process-why-you-need-feedback-loops-both-during-and-
after-sprints/ (Accessed: 15 April 2024).
[10] (2024) Agile Software Development Methodologies: Which to Choose? Available at:
https://altitudeaccelerator.ca/agile-software-development-methodologies/#:~:text=Requires
%20a%20team%20consisting%20of,of%20communication%20within%20the%20team (Accessed:
15 April 2024).
[11] (2023) Top Software Development Methodologies. Available at: https://intersog.com/blog/top-
software-development-methodologies/#:~:text=Similar%20to%20the%20Agile
%20methodology,follows%20a%20strict%20priority%20order. (Accessed: 15 April 2024).
[12] (2024) The Spiral Model: A Risk-Driven Software Development Process. Available at:
https://www.msicertified.com/the-spiral-model/#:~:text=Risk%20Management%20in%20the
%20Spiral,inherent%20in%20any%20software%20project. (Accessed: 15 April 2024).
[13] (2024) Everything you wanted to know about modern DevOps. Available at:
https://nulab.com/learn/software-development/devops-guide/#:~:text=What%20is%20DevOps
%3F,%3A%20Development%20%2B%20Operations%20%3D%20DevOps. (Accessed: 15 April
2024).
[14] (2024) What is DevOps? Available at:
https://aws.amazon.com/devops/what-is-devops/#:~:text=Transitioning%20to%20DevOps
%20requires%20a,teams%3B%20engineers%20may%20do%20both. (Accessed: 15 April 2024).

You might also like