SDLC - Assignment 1 Frontsheet
SDLC - Assignment 1 Frontsheet
SDLC - Assignment 1 Frontsheet
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:
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. 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]
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.
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.
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]
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]
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]
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]
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.
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)
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).