SajeenaMalla_SoftwareDevelopmentLifecycle
SajeenaMalla_SoftwareDevelopmentLifecycle
INTERNATIONAL SCHOOL OF
MANAGEMENT AND TECHNOLOGY
FACULTY OF COMPUTING
STUDENT DETAILS
STUDENT ID 2023CA14
UNIT NUMBER 7
ESTIMATED 8000
WORD LENGTH
SUBMISSION
1
Software Development Lifecycle | 2023
1. I declare that:
a) this assignment is entirely my own work, except where I have included fully-
documented references to the work of others,
b) the material contained in this assignment has not previously been submitted
for any other subject at the University or any other educational institution,
except as otherwise permitted,
c) no part of this assignment or product has been submitted by me in another
(previous or current) assessment, except where appropriately referenced, and
with prior permission from the Lecturer / Tutor / Unit Coordinator for this unit.
2. I acknowledge that:
a) if required to do so, I will provide an electronic copy of this assignment to the
assessor;
b) the assessor of this assignment may, for the purpose of assessing this
assignment:
I. reproduce this assignment and provide a copy to another member of
academic staff;
II. communicate a copy of this assignment to a plagiarism checking
service such as Plagiarism Check (which may then retain a copy of this
assignment on its database for the purpose of future plagiarism
checking).
I am aware of and understand that any breaches to the Academic Code of Conduct
will be investigated and sanctioned in accordance with the College Policy.
2
Software Development Lifecycle | 2023
Table of Contents
Part 1:...............................................................................................................................................6
Abstract:...........................................................................................................................................6
Introduction:....................................................................................................................................6
Software Development Life Cycle (SDLC):...................................................................................6
Overview of SDLC Models:............................................................................................................7
Predictive Lifecycle Model:........................................................................................................7
Adaptive Lifecycle Model:..........................................................................................................8
Sequential Model:............................................................................................................................8
Waterfall model...........................................................................................................................8
Advantages of Waterfall Model:...............................................................................................10
Disadvantages of Waterfall Model:...........................................................................................10
RAD Model:..................................................................................................................................11
Advantages of RAD Model:......................................................................................................12
Disadvantages of RAD Model:..................................................................................................12
Iterative Model:.............................................................................................................................13
Spiral Model:.................................................................................................................................13
Advantages of Spiral Model:.....................................................................................................15
Disadvantages of Spiral Model:.................................................................................................15
Agile Model:..................................................................................................................................15
Risk Management in Software Lifecycle Models.........................................................................18
1. Risk Management in Waterfall Model:.................................................................................18
2. Risk Management in RAD Model:........................................................................................20
3. Risk Management in Spiral Model:.......................................................................................21
4. Risk Management in Agile Model:........................................................................................22
Recommended SDLC Model: Agile Approach for Gurkha-Finances Project..............................24
Benefits of the Agile Model:.....................................................................................................24
Drawbacks of the Agile Model:.................................................................................................25
Appropriateness for Gurkha-Finances:......................................................................................25
Evaluating Waterfall Lifecycle Model for Large-Scale Projects: The Case of Gurkha-Finances.25
Part 2: Report.................................................................................................................................28
3
Software Development Lifecycle | 2023
Executive Summary:......................................................................................................................28
Introduction:..................................................................................................................................28
Feasibility Study:...........................................................................................................................28
Types of Feasibility Study:............................................................................................................28
Benefits of Feasibility Study:........................................................................................................29
Purpose of a Feasibility study:.......................................................................................................30
Comparing Technical Solutions for the Gurkha-Finances Project................................................31
Components of a Feasibility Report:.............................................................................................33
Assessing the Impact of Feasibility Criteria on Software Investigations......................................36
Part-3:............................................................................................................................................38
Introduction:..................................................................................................................................38
Undertaking a software investigation to meet a business need:....................................................38
Identification of stakeholder:.....................................................................................................38
Identification of requirement of stakeholder:............................................................................40
Scope Planning for the Gurkha-Finances Module:....................................................................41
Consideration of alternative solution:........................................................................................43
Security Consideration:.............................................................................................................45
Exploring Relevant Constraints:................................................................................................46
Functional Requirements:..........................................................................................................47
Non-Functional Requirements:..................................................................................................48
Algorithm: Currency Conversion..................................................................................................49
Flowchart Representation:.............................................................................................................50
Pseudocode:...................................................................................................................................51
Logical Software Design:..............................................................................................................52
Finite State Machine:.....................................................................................................................52
An example of the Finite State Machine:..................................................................................52
Application of FSM:..................................................................................................................53
Extended Finite Machine (EFSM):................................................................................................54
An example of the Extended Finite State Machine:..................................................................54
Application of EFSM:................................................................................................................54
4
Software Development Lifecycle | 2023
Differentiate between a finite state machine (FSM) and Extended Finite State Machine
(EFSM):.....................................................................................................................................55
Data Flow Diagram (DFD):...........................................................................................................55
DFD Levels:...................................................................................................................................56
0-Level DFD (Context Diagram):.............................................................................................56
1-Level DFD:.............................................................................................................................57
2-Level DFD:.............................................................................................................................58
Entity Relationship Diagram (ERD):.............................................................................................59
Part 4: Presentation........................................................................................................................61
Evaluation of Investigation Process...............................................................................................61
Tracing Software Requirements Throughout the lifecycle:...........................................................62
Traceability:...................................................................................................................................63
Importance of Traceability:.......................................................................................................64
Techniques for Traceability:......................................................................................................66
Two approaches to improving software quality:...........................................................................68
1. Test-Oriented Software Development Management:............................................................68
2. Code Reviews and Static Analysis:.......................................................................................69
Suitability of Investigation:...........................................................................................................70
Software Behavioral Design Techniques...................................................................................70
Software Behavioral Tools and Techniques..............................................................................72
Data Driven Software:...................................................................................................................74
Improving Reliability and Effectiveness...................................................................................74
Impact on Gurkha-Finances:......................................................................................................75
Impact on Software Quality...........................................................................................................76
Enhancing the Quality of Gurkha-Finances Software...............................................................77
Impact on Gurkha-Finances Software:......................................................................................78
Conclusion.....................................................................................................................................79
References......................................................................................................................................80
5
Software Development Lifecycle | 2023
Part 1:
Title: A Comparative Analysis of Software Development Lifecycle Models for the Gurkha-
Finances Project
Abstract:
This research paper conducts a comprehensive examination of various Software Development
Lifecycle (SDLC) models to determine the most suitable approach for the Gurkha-Finances
project, undertaken by Pokhara Digital Solutions (PDS). The paper provides a detailed overview
of SDLC principles and stages while categorizing SDLC models into predictive and adaptive
categories. Four prominent SDLC models—Waterfall, Rapid Application Development (RAD),
Spiral, and Agile—are scrutinized, weighing their advantages and drawbacks. The research paper
ultimately recommends the Agile model, with a focus on the Scrum framework, as the most
appropriate SDLC approach for Gurkha-Finances. Agile's adaptability, iterative methodology,
and emphasis on client involvement align seamlessly with the dynamic requirements and
evolving financial landscape of the project. Additionally, the paper examines the applicability of
the Waterfall model for large-scale projects, highlighting its benefits and limitations. This
research is supported by a robust analysis of risks associated with each SDLC model and offers
valuable insights for PDS in selecting the optimal approach for the Gurkha-Finances project.
Introduction:
The success of any software development project heavily relies on selecting an appropriate
Software Development Lifecycle (SDLC) model. This research paper aims to review various
SDLC models available to Pokhara Digital Solutions (PDS) and identify the most suitable model
for the Gurkha-Finances project, a financial sector software development endeavor.
6
Software Development Lifecycle | 2023
different stages to build a software. A graphic illustration of the various stages of the SDLC is
shown in the following figure.
(Nayyar, 2021)
7
Software Development Lifecycle | 2023
early on to manage any scope changes effectively and prevent problems during implementation.
The predictive lifecycle model follows a series of sequential or overlapping phases, with the
management team primarily focusing on defining the project's scope. It is also known as the
classic or planning-focused lifecycle because, in this model, all requirements, scope, costs, and
deadlines are fixed as early as possible. Predictive software development lifecycle consists of the
following models of the software development.
- Waterfall model
- Prototyping model
- Rapid Application Development (RAD) model
Adaptive Lifecycle Model:
Adaptive lifecycle models, commonly referred to as agile or iterative models, are methods for
developing software that emphasize gradual advancement, customer collaboration, and
adaptability to changing requirements. These models are different from conventional waterfall
models, which have a linear phase structure (such as requirements, design, implementation, and
testing) and may not be suitable for projects with changing or ambiguous requirements. Adaptive
Software Development Lifecycle consists the following models of the software development
- Spiral model
- Agile model
- Dynamic System Development Method (DSDM)
Sequential Model:
Sequential models are an approach to designing software in stages according to planned
documentation. Designing a simple project is very easy. Sequential models include different
types of documentation. Designing a simple project is very easy. Sequential models include
different types of models such as waterfall, prototype models, and RADs.
Waterfall model
Waterfall model is a linear-sequential life cycle model which is very simple to understand and
use. Each phase of the waterfall model must be finished completely before the subsequent phase
8
Software Development Lifecycle | 2023
may begin. Generally speaking, this kind of software development model is utilized for small
projects with clear needs. In waterfall model phases do not overlap. (Dutta, 2019) The graphical
representation of water fall model is given below.
(Prashant, 2023)
All software product needs are gathered in this phase and recorded in a software requirement
specification document.
2. System Design:
In this phase, overall structure of the software product is designed on the basis of requirement
analysis phase.
3. Implementation:
The development of software starts in this phase. It develops in small programs which are called
units. These units are tested according to their functionality and integrated in the next phase.
9
Software Development Lifecycle | 2023
In this phase, integrate the all units which are developed in implementation phase. After
integration the whole product is tested to check whether it meets its goals. Software defects and
bugs are reported, if they are available then fix and retested.
When function and non-functional requirements are tested and validated then the software is
deployed in the customer’s environment.
6) Maintenance:
If some problems are faced in the customer’s environment, then solve these problems in
maintenance phase. Also, some enhancement can do in this phase if user is not fully satisfied.
2. As the analytical team first establishes the business requirements and demands, this method
makes it easier to meet the needs of the organization.
3. This process guarantees early detection of faults and misunderstandings in each of its stages
because each stage is precisely defined.
4. The requirements specification document acts as a road map for the testing and development
phases.
(Amlani, 2012)
2. The waterfall model is less flexible because it does not allow for modifications based on client
needs.
10
Software Development Lifecycle | 2023
3. It can be challenging to estimate how much time will be needed for certain phases, and
making the wrong assumptions might delay the completion of a project.
4. If adjustments to the waterfall model are necessary, the project must be restarted. Some
businesses could find this expensive.
(Amlani, 2012)
RAD Model:
The Rapid Application Development (RAD) model is a software development process that
prioritizes iterative development and fast prototyping to quickly build functional software
systems. (Anon., 2023) This methodology was designed to overcome the limitations of
traditional sequential development methodologies like the Waterfall model, which sometimes led
to lengthy development cycles and difficulty in meeting changing needs.
(kissflow, 2023)
1. Requirements Planning:
In this phase, the scope, objectives and specifications of the project are determined.
Understanding user requirements and creating a comprehensive development strategy are top
priorities.
2. User Design:
11
Software Development Lifecycle | 2023
In this phase, models and software prototypes are made so that users can see how the system
works. User feedback is actively sought and considered during design.
3. Construction:
At this point, the software is actually in development. Software development uses short
iterations, each of which adds capabilities to the entire system.
4. Cutover:
In this phase, customers start using the system after installing the software in the live
environment. This includes data transfer, training and any necessary changes based on actual
usage.
4. Due to the usage of scripts, high-level abstractions, and intermediary codes, deliverables can
be transferred more easily. (Martin, 2023)
4. RAD projects can fail if developers are not dedicated to delivering software on schedule.
12
Software Development Lifecycle | 2023
Iterative Model:
An iterative model emphasizes breaking a project down into smaller, more manageable pieces or
iterations. The software has been created, developed, tested, and enhanced through a series of
iterative phases. The basic aim of the iteration model is that, after each incremental step, it
produces an operating and functional version of software so that continuous feedback and
improvement can take place.
Spiral Model:
The Spiral model is one of the most important types of Software Development Life Cycle. This
model provides support for Risk Handling. When shown in the following diagram, it looks to be
a spiral-like structure made up of several loops. Spiral loop counts may differ depending on the
project in question. Software Development Process phase refers to each spiral loop. It is
especially helpful for big, complicated projects where there are lots of risks and potential for
changing requirements over time. (Doshi, et al., 2021) The model is built on the concept of
iterative development, where each iteration consists of four major stages:
1. Planning:
During this phase, system analysts and clients must continuously communicate in order to
understand the requirements for the system.
2. Risk Analysis:
In this phase, a process is undertaken to identify risk and alternate solutions. At the conclusion of
this phase, a prototype is created.
3. Development/Engineering:
4. Evaluation Phase:
This stage enables the client to assess the project's results before moving on to the following
spiral or round. (Alshamrani & Bahattab, 2015)
13
Software Development Lifecycle | 2023
Each phase of the Spiral Model is divided into four quadrants as shown in the figure below:
(Pal, 2023)
The needs from the clients are gathered at the start of each step, and the goals are outlined,
developed, and evaluated. Then, other options that might be feasible for the phase are presented
in this quadrant.
All viable solutions are analyzed in the second quadrant in order to select the best one. The
hazards associated with that solution are then identified, and the risks are effectively managed.
For the best possible outcome at the end of this quadrant, the prototype is built.
In the third quadrant, the established features are created and tested to ensure their accuracy. The
succeeding software version is accessible at the end of this section.
14
Software Development Lifecycle | 2023
Users evaluate the recently released software version in the fourth quadrant. Following that, the
subsequent stage's preparations are started. (Pal, 2023)
4. The development process is broken down into smaller steps, and risks are handled separately.
4. Spiral Model doesn’t work well for smaller projects. (Try QA, n.d.)
Agile Model:
Agile model is generally considered as the combination of iterative and incremental process
models which primarily focuses on adaptability of process and customer satisfaction with quick
delivery of functional software projects. With this model, the product is divided into smaller
incremental builds. These builds are offered in iterations, which typically run between one and
three weeks. At the conclusion of an iteration, a usable product is in any case presented to the
client and important stakeholders. (tutorialspoint, 2023)
15
Software Development Lifecycle | 2023
(Leonard, 2023)
1. Requirements Gathering:
Identifying and prioritizing project requirements through initial interactions with stakeholders.
Usually, user stories are used to represent these requirements.
2. Planning:
The team assigns work, organizes and estimates the user stories, and builds a prioritized backlog.
To decide which tasks will be handled in the future iteration (sprint), sprint planning meetings
are organized.
Developers work on the tasks assigned for the sprint, creating small and functional increments of
the software.
4. Testing:
Throughout the sprint, the developed features are carefully tested to find bugs and ensure that
they meet the specified requirements.
16
Software Development Lifecycle | 2023
The team shows the stakeholders the finished product at the conclusion of each sprint during a
review meeting. The next sprint will be improved as a result of the feedback gathered.
6. Release:
A release is ready for deployment once a sufficient number of sprints have been completed and
the program has attained the necessary level of functionality and quality.
Feedback from stakeholders is continuously gathered during the development process and used
to inform upcoming revisions. On the basis of this feedback, the product can be modified and
enhanced.
4. Rapid development
6. Cost-saving
(Anon., 2023)
1. Lack of documentation is a problem when the software team changes and the software needs
to be maintained after a few years.
2. Senior and highly paid developers are needed because they are the only ones who can make
the right decisions with little documentation.
17
Software Development Lifecycle | 2023
(Anon., 2023)
Requirement Changes:
Risk: In the Waterfall model, requirements are defined at the beginning and changes can be
challenging to accommodate as the project progresses.
Risk Management: Thorough and detailed requirement analysis at the outset can help mitigate
this risk. Additionally, involving stakeholders and end-users in regular reviews can ensure that
any changes are captured early in the process.
Limited Flexibility:
Risk: The Waterfall model lacks flexibility to adapt to changing project conditions or evolving
market demands.
18
Software Development Lifecycle | 2023
Risk Management: Adopting agile practices like regular retrospectives and adapting certain
iterative techniques within the Waterfall framework (like phased releases) can enhance
flexibility.
Risk: Testing is typically deferred until after development is complete, leading to the
identification of defects and issues in later stages.
Risk Management: Incorporating continuous testing throughout the development cycle, including
unit testing, integration testing, and user acceptance testing, can help identify and resolve defects
earlier.
Risk: Stakeholders and end-users are often engaged only during the requirement gathering phase
and may not be satisfied with the final product.
Risk Management: Regular communication and collaboration with users through reviews,
demos, and feedback sessions can ensure alignment with their needs.
Risk: Large and complex projects can be challenging to manage in a linear manner, leading to
scope creep and delays.
Risk Management: Breaking down the project into smaller phases or milestones and using
project management tools can enhance control over complex projects.
Risk: Feedback from stakeholders or end-users might come too late in the process, making it
harder and costlier to make changes.
19
Software Development Lifecycle | 2023
Incomplete Requirements:
Risk: Rapid development cycles might lead to inadequate requirement analysis, resulting in
incomplete or inaccurate system requirements.
Risk Management: Conduct thorough initial requirements gathering and involve users closely in
the prototyping phase. Regular feedback loops can help refine and clarify requirements.
Scope Creep:
Risk: Frequent iterations and changing requirements can lead to scope creep, where the project
expands beyond its original scope.
Risk Management: Set clear boundaries for each iteration and prioritize features. Maintain strong
communication with stakeholders to manage their expectations and accommodate changes within
reason.
Technical Complexity:
Risk: Rapid development might lead to technical debt and architectural issues due to shortcuts
taken during prototyping.
Risk Management: Balance speed with technical excellence. Allocate time for periodic code
review and refactoring to address technical debt.
Risk: Fast-paced development cycles may not allow sufficient time for comprehensive testing,
leading to inadequate quality assurance.
20
Software Development Lifecycle | 2023
Risk Management: Implement automated testing frameworks and ensure thorough testing is
performed within each iteration. Consider test-driven development (TDD) to maintain code
quality.
Lack of Documentation:
Risk: Quick iterations may result in insufficient documentation, making it challenging for future
maintenance and knowledge transfer.
Risk Management: Document key design decisions, changes made during each iteration, and
user feedback. Maintain a knowledge repository to ensure documentation is not neglected.
Risk: Frequent user involvement might be challenging to coordinate, leading to delays and
miscommunications.
Risk Management: Establish clear communication channels and feedback mechanisms. Engage
dedicated user representatives who can provide consistent input. (Islam, 2011)
Unclear Requirements:
Risk: Insufficient initial requirements can lead to scope and goal confusion.
Scope Creep:
21
Software Development Lifecycle | 2023
Management: Define baseline scope for each iteration, implement a change control process, and
prioritize changes.
Technical Complexity:
Management: Allocate time for risk assessment within each cycle, address unknowns
proactively, and ensure sufficient resources.
Resource Allocation:
Management: Cross-train team members, anticipate resource needs, and maintain a flexible team
structure.
Stakeholder Communication:
Management: Establish consistent communication channels, hold regular progress updates, and
involve stakeholders in decision-making.
Management: Use earned value analysis, continuously track progress against plans, and adjust
resources as needed.
(Ekai, 2023)
Scope Creep:
22
Software Development Lifecycle | 2023
Lack of Documentation:
Risk Management: Balance code emphasis with lightweight documentation, like user stories and
acceptance criteria.
Risk Management: Use collaboration tools, regular meetings, ensure clear communication
channels.
Risk: Iterations might focus on immediate goals, neglecting long-term architectural concerns.
Risk Management: Allocate time for architectural discussions, balance short-term and long-term
needs.
Risk Management: Cross-train team members, address gaps through training, anticipate resource
needs.
Risk: Rapid development may lead to insufficient testing and lower software quality.
Risk Management: Implement continuous testing practices, including automation, unit testing,
and integration testing. (Simplilearn, 2023)
23
Software Development Lifecycle | 2023
Agile methodologies prioritize flexibility, allowing project teams to respond swiftly to changing
requirements and market dynamics. For Gurkha-Finances, where financial regulations and client
needs can evolve rapidly, an adaptable approach is vital.
Agile fosters regular interaction with clients and stakeholders, ensuring that the software aligns
with their expectations. Given the dynamic nature of financial services, ongoing client
engagement is essential for delivering a relevant and effective solution.
Iterative Deliverables:
Agile emphasizes the creation of incremental and functional deliverables at the end of each
iteration. This aligns with Gurkha-Finances' need for constant progress, enabling clients to see
tangible results sooner and provide valuable feedback.
Risk Mitigation:
Agile methodologies incorporate risk management throughout the project's lifespan. With the
financial sector's inherent uncertainties, this approach can help identify and address potential
risks proactively.
24
Software Development Lifecycle | 2023
(kissflow, 2022)
Agile's adaptability can sometimes lead to challenges in predicting project timelines and costs,
which may be a concern for stakeholders who require set schedules and budgets.
Resource Intensive:
Agile requires continuous collaboration and communication among team members and
stakeholders. This level of engagement might be resource-intensive and demand active
participation from all parties involved.
Additionally, Gurkha-Finances' requirement to support staff and clients with calculations, quotes,
and secure data storage fits naturally with Agile's emphasis on user involvement and incremental
development. The collaborative nature of Agile also aligns with the financial sector's cross-
functional requirements.
In conclusion, the Agile model, notably Scrum, is recommended for the Gurkha-Finances project
due to its flexibility, focus on customer needs, and iterative approach. While Agile has its
drawbacks, its strengths align with the complexities of the financial sector and the project's
evolving requirements. By adopting an Agile model, PDS can maximize its ability to deliver a
tailored and effective software solution that meets Gurkha-Finances' expanding needs.
25
Software Development Lifecycle | 2023
The Waterfall model enforces a structured approach where each phase is distinct and well-
defined. This can be particularly beneficial in large projects where there is a need for
comprehensive planning, documentation, and thorough understanding of requirements upfront.
This helps in minimizing ambiguity and ensuring that all project stakeholders are on the same
page.
Waterfall offers a high level of predictability as the entire project scope, timeline, and resources
are planned upfront. This can be advantageous for large projects where maintaining control over
costs, timelines, and scope is crucial. It allows for better resource allocation and risk
management.
In cases where the project requirements are stable and unlikely to change significantly during
development, the Waterfall model works well. Large projects often involve complex
requirements that are thoroughly analyzed and documented in the initial phase, making the
Waterfall model a suitable choice.
26
Software Development Lifecycle | 2023
The structured approach and thorough documentation of the Waterfall model can help ensure
that all requirements are met and fully validated in sectors where adherence to stringent
regulatory and compliance standards is essential (such as healthcare and finance).
In a Waterfall model, client involvement is typically high during the requirements and design
phases. This can be advantageous for large projects, allowing clients to provide input and
feedback early in the process, reducing the likelihood of major changes later in the development
cycle.
Resource Availability:
For projects with specific resource constraints, such as limited availability of skilled personnel or
specialized hardware, the Waterfall model's upfront planning can help allocate resources
effectively and avoid bottlenecks.
27
Software Development Lifecycle | 2023
Part 2: Report
Title: The Significance of Feasibility Studies in Large-Scale Computer Projects
Executive Summary:
This report explores the crucial part that feasibility studies play in the start-up and
accomplishment of big computer projects. It explains the goal of feasibility studies, how they
contrast various technical solutions, and the distinct parts of a feasibility report.
Introduction:
Feasibility studies are fundamental in the realm of large-scale computer projects. These studies
serve as a cornerstone, offering valuable insights into the viability of a project before resources
28
Software Development Lifecycle | 2023
are extensively allocated. This section will explore the purpose of a feasibility study, the
comparative analysis of technical solutions, and the components of a comprehensive feasibility
report.
Feasibility Study:
A feasibility study is a methodical examination and assessment of the likelihood that a project,
idea, or plan being considered will be carried out effectively. To decide if the project is viable
and worthwhile of pursuing, it entails evaluating several factors, including technical, economic,
operational, legal, and scheduling issues. The main objective of a feasibility study is to give
decision-makers reliable information so they can decide whether or not to move forward with a
project.
Technical Feasibility analyzes and evaluates current hardware, software, and necessary
technology to develop projects. This technical feasibility analysis provides information on
whether the technologies and resources needed to develop the project are indeed available.
Additionally, a feasibility study examines the technical expertise of the technical team, the
viability of using existing technology, the ease of maintaining and upgrading the technology of
choice, and other factors. (Jena, n.d.)
2. Operational Feasibility:
Operational feasibility assesses if a software solution can effectively address business needs and
user demands. It relies on the development team and gauges if the software will work and be
useful upon installation. It also involves: identifying important user problems, evaluating the
proposed solution, predicting user adaptation to the new software, and checking if the
organization is content with the suggested solutions. (Daffodil Unthinkable Software Corp.,
2023)
3. Economic Feasibility:
29
Software Development Lifecycle | 2023
Economic feasibility determines if creating the needed software will bring financial benefits to
an organization. This involves assessing expenses like development team costs, hardware and
software estimates, and feasibility study expenses. It's important to consider purchases and
development activities' costs, as well as potential software benefits. (Thakur, 2023)
4. Social/Legal Feasibility:
This assessment checks if the proposed project goes against laws like zoning, data protection, or
social media. For instance, if a company plans to build an office in an area, but it's not zoned for
offices, the study helps them know early on. This saves time and effort. (Simplilearn, 2023)
5. Scheduling Feasibility:
The planned project's ability to be finished within the required period is determined by the
schedule feasibility. It considers the complexity of the project, the resources at hand, and any
external constraints. This study helps prevent unrealistic timeframes that could lead to rushed
development or quality compromises.
Cost-Effectiveness: These studies assess project expenses and benefits to determine financial
feasibility and potential profitability.
Resource Allocation: Feasibility studies provide insights into resource needs and limitations,
aiding efficient resource allocation.
Decision Making: Results and recommendations from feasibility studies empower decision-
makers with insights for informed choices.
Project Scope: Feasibility studies define and refine project scope, ensuring clear and achievable
objectives.
30
Software Development Lifecycle | 2023
It assesses whether the project makes sense and aligns with organizational goals.
2. Risk assessment:
For identifying and assessing potential risks and uncertainties related to a project, feasibility
studies are crucial. Technical, operational, financial, and external hazards are included in this.
3. Resource Allocation:
4. Optimize decision-making:
5. Cost-Benefit Analysis:
A cost-benefit analysis is one of a feasibility study's main goals. This entails estimating the
project's expenses (creation, implementation, and maintenance) and contrasting them with its
anticipated advantages (improved productivity, revenue, and customer happiness).
31
Software Development Lifecycle | 2023
performance, efficiency, automation, legacy integration, and the possibility of eliminating human
error. Through this in-depth analysis, we aim to guide Gurkha-Finances toward the most suitable
solution that aligns with its goals and objectives.
1. Budget:
It is essential to understand how our choices will affect our finances. We must take into account
the costs of software creation, infrastructure updates, and maintenance as we compare various
technical solutions. For instance, moving to a web-based system can require an upfront
investment in web development tools and resources, but this may be more than offset by long-
term cost savings brought on by streamlined operations and less hardware requirements.
2. Performance:
Performance is the heartbeat of any software system. The solution we choose must deliver
efficient and responsive performance, ensuring a seamless user experience. By carefully
assessing the performance benchmarks of each solution, we can ensure that the chosen system
meets the demands of Gurkha-Finances' growing client base. For example, a web-based
application might offer the advantage of providing real-time currency conversion results to
clients, enhancing their engagement and satisfaction.
3. Efficiency:
Productivity depends on efficiency. We must think about the effects that any solution will have
on the staff and client workflow. Reduce manual procedures, eliminate unnecessary work, and
make interactions easier with a well-designed system. Gurkha-Finances can save time by
automating time-consuming procedures like transaction records and quote production so that
staff can concentrate on more strategic responsibilities.
4. Automation:
Automation empowers efficiency. We may simplify procedures, reduce errors, and improve
overall system performance by choosing a solution that includes automation capabilities. By
removing the need for manual calculations and lowering the possibility of mistakes, an automatic
currency conversion module, for instance, can rapidly deliver precise results.
32
Software Development Lifecycle | 2023
5. Legacy integration:
A crucial factor to take into account is system integration. We must evaluate how well each
technology solution can be integrated into the existing Gurkha-Finances infrastructure as we
compare them. Careful planning may be necessary to ensure a flawless migration of data and
functions when moving from a networked application to a web-based system, protecting against
disruptions to ongoing operations.
In any system, human error presents a constant challenge. We should include characteristics that
reduce the possibility of errors in the technical solution we select. With automatic calculations
for currency conversion and investment quotes, Gurkha-Finances can significantly lower the
possibility of errors brought on by manual data entry.
In the following table, various feasibility reports are tabulated and used to compare the technical
solutions:
33
Software Development Lifecycle | 2023
1. Introduction:
The introduction of the feasibility report for the Gurkha-Finances project provides a brief
overview of the organization and its current situation. It outlines the objective of the report,
which is to evaluate the feasibility of developing a new computer system to support both staff
and clients.
34
Software Development Lifecycle | 2023
2. Purpose:
The purpose of the feasibility study is to determine whether the proposed computer system aligns
with Gurkha-Finances' expansion plans and to identify potential challenges early on. The study
aims to assess technical, operational, financial, and strategic aspects of the project.
3. Methodologies:
The feasibility study for the Gurkha-Finances project utilizes a combination of research, analysis,
and consultation. It involves reviewing the provided Gurkha-Finances Client Project
Information, engaging with stakeholders, and conducting research to gather insights into similar
projects in the financial sector.
4. Background History:
The background history section provides context by briefly discussing Gurkha-Finances' role in
the financial sector and its recent increase in demand for services. This history helps establish the
organization's current standing and the need for the new computer system.
5. Document Structure:
The feasibility report is structured in a logical manner, with sections dedicated to each key
aspect. It follows a clear flow, starting with an introduction, moving through the evaluation of
different technical options, and concluding with recommendations.
6. Intended Audience:
The Gurkha-Finances Chief Technical Officer and other significant decision-makers within the
company are among the intended audience of the feasibility report. To effectively convey the
project's viability, the report is customized for both technical and non-technical stakeholders.
7. Feasibility Criteria:
The feasibility criteria for the Gurkha-Finances project include technical feasibility (whether the
system can be developed within technological capabilities), financial feasibility (costs versus
potential benefits), operational alignment (fit with existing processes), and strategic alignment
(alignment with the organization's goals).
35
Software Development Lifecycle | 2023
8. Outcome:
The results of the feasibility study are outlined in the outcome section. The feasibility of the
planned computer system's technological, financial, and operational components are highlighted,
along with how well they correspond with Gurkha-Finances' ambitions for growth.
The alternative options, such as improving the current system as opposed to creating a new one,
are explored in the feasibility study. A new system, it is determined, is better suited to handle the
organization's expanding needs.
The evaluation criteria for comparing the possible alternate solutions include factors like system
performance, scalability, cost of development and maintenance, and alignment with long-term
goals.
Based on the evaluation, the feasible solution is determined to be the development of a new web-
based computer system. This solution addresses scalability, accessibility, and aligns with
Gurkha-Finances' strategic vision.
The chosen solution's viability is further confirmed by the feasibility report's conclusion. It
advises moving through with the creation of the new computer system, noting its potential to
improve customer services and assist with the organization's growth initiatives.
These elements are included in the feasibility study to guarantee a thorough evaluation of the
Gurkha-Finances project's viability and to aid in the guidance of educated choices for the
project's effective execution.
36
Software Development Lifecycle | 2023
Technical Impact:
Technical feasibility assesses how well a new project may be developed and integrated into
current systems. This criterion significantly influences the general project direction. If the
technical solution is not workable, the project may experience delays, cost overruns, or even
failure.
In the Gurkha-Finances project, technical feasibility will determine if the chosen solution aligns
with PDS's capabilities and the organization's requirements. It will impact the selection of
development paradigms, methodologies, and the architecture of the new computer system.
Economic Impact:
Economic feasibility assesses the project's cost in relation to the organization's budget and
potential revenue. This criterion directly influences resource allocation and return on investment
considerations.
For Gurkha-Finances, economic feasibility will determine if the project fits within their allocated
budget and whether the projected benefits, such as increased client demand and revenue from the
new system, justify the investment.
Operational Impact:
Operational feasibility examines whether the project aligns with the organization's workflow and
processes. It affects how well the solution can be integrated into daily operations.
37
Software Development Lifecycle | 2023
In the Gurkha-Finances project, operational feasibility will influence how smoothly the new
system is adopted by staff and clients. This criterion will determine if the system enhances
efficiency or disrupts existing operations.
Schedule Impact:
Schedule feasibility assesses whether the project can be completed within the defined timeframe.
It influences project planning, resource allocation, and the organization's ability to meet
deadlines.
Meeting Gurkha-Finances' expansion timeline is crucial. Schedule feasibility will dictate how
quickly the new system can be implemented and whether it aligns with the organization's growth
plans.
Legal Impact:
Legal and regulatory feasibility investigates if the project complies with pertinent laws and
regulations. Serious repercussions, such as legal penalties and reputational harm, may occur if
legal obligations are not met.
Gurkha-Finances places a premium on ensuring compliance with financial rules and data
protection legislation. Whether the new system protects sensitive customer data and complies
with industry standards will be determined by legal and regulatory feasibility.
Conclusion:
38
Software Development Lifecycle | 2023
Part-3:
Title: Software Development Lifecycle for the Gurkha-Finances Project
Executive Summary:
This report outlines the software development lifecycle (SDLC) for the Gurkha-Finances project,
focusing on the implementation of the application. It identifies stakeholder requirements, plans
the module's scope, explores constraints, presents functional and non-functional requirements,
and provides a design solution. The report employs appropriate methodologies and
documentation to effectively communicate the understanding of the program.
Introduction:
The Gurkha-Finances project aims to develop a robust financial software system to support staff
and clients. A well-defined Software Development Lifecycle (SDLC) is crucial for project
success as it provides a structured approach, ensuring that stakeholder requirements are met,
constraints are managed effectively, and the project aligns with industry best practices,
ultimately leading to a successful and efficient software implementation.
1. Investors:
The capital needed for the project's development is provided by investors. Getting a return on
their investment is what they care about most. They have a lot of sway on project choices
because they are important financial backers.
39
Software Development Lifecycle | 2023
2. Employees:
The software will be used every day by staff members, including financial analysts and IT staff.
They have a personal stake in the software's usability, effectiveness, and alignment with their job
responsibilities. (Anon., 2023)
3. Board of Directors:
The board of directors oversees the organization's strategic direction. They are interested in how
the Gurkha-Finances project aligns with the company's long-term vision and whether it enhances
financial management.
4. Clients:
Clients, who are the end-users or customers of Gurkha-Finances, are directly impacted by the
software's usability and effectiveness. Meeting their financial management needs is essential for
client satisfaction.
5. Suppliers:
Suppliers provide resources, such as hardware, software, and IT services, required for the
project's implementation. Ensuring smooth supplier relationships is vital for timely project
execution.
Because each group has different goals and expectations for the Gurkha-Finances project,
identifying these stakeholders is crucial. For the software to be user-friendly, match with
corporate objectives, and benefit the organization and its stakeholders, it is essential to
comprehend their wants and requirements. The success of the project depends on these
stakeholders being engaged and communicated with effectively throughout the project's lifespan.
1. User-friendly Interface:
40
Software Development Lifecycle | 2023
The requirement for a user-friendly interface means that the software should be easy for people
to use. It should be like a friendly guide, not a puzzle. It is super important because it helps users,
like clients and employees, work with the system without frustration. When things are easy to
understand and use, people are happier, they make fewer mistakes, and they don't need a lot of
training. (Shneirderman & Catherine, 2005)
This requirement focuses on data security, indicating that the system must securely store user
data, which includes contact information, transaction records, and saved quotes. Stakeholders,
including clients and regulatory authorities, expect that their sensitive financial information will
be safeguarded.
The application should offer robust and accurate currency conversion tools, allowing users to
calculate currency exchange rates and costs swiftly and precisely.
Stakeholders expect the system to perform reliably, even during periods of high user activity. It
should be responsive, minimize downtime, and deliver real-time data for investment decisions.
Clients expect efficient tools for managing their financial portfolios, receiving advice, and
accessing savings and investment information. The software should facilitate seamless
interactions to enhance the client experience.
Board members, investors, and regulatory authorities demand strict compliance with financial
regulations and industry standards. Meeting this requirement involves ensuring that the software
adheres to legal requirements, reporting standards, and auditability.
These requirements not only address the core expectations of the project's stakeholders but also
serve as a foundation for defining the system's functional and non-functional specifications.
41
Software Development Lifecycle | 2023
Ensuring that the software aligns with these requirements is critical for its success, user
satisfaction, and overall project outcomes.
1. Inputs:
Inputs refer to the data or information that the module requires to perform its intended functions.
These can include user inputs, data retrieved from databases, external systems, or any other
source necessary for processing within the module. Clearly identifying the inputs helps ensure
that the module's processes have the required information to operate correctly.
2. Outputs:
Outputs represent the results or outcomes produced by the module after processing the inputs.
These could be computations, reports, notifications, updated data, or any form of output that is
generated as a result of the module's operations. Clearly specifying the outputs helps
stakeholders understand the module's contribution to the overall system.
3. Processes:
Processes refer to the operations, algorithms, or tasks that the module performs on the provided
inputs to generate the desired outputs. These could involve calculations, data transformations,
validations, or any other logical steps necessary to achieve the module's objectives. Defining
processes provides a roadmap for how the module functions.
4. Process Descriptors:
Process descriptors are detailed explanations or descriptions of each process within the module.
They provide a step-by-step breakdown of the actions taken, decisions made, and
transformations applied during each process. Process descriptors enhance clarity and assist
developers, testers, and other stakeholders in understanding the module's internal workings.
42
Software Development Lifecycle | 2023
Example Explanation:
Scope Definition:
The Currency Conversion module within the Gurkha-Finances system aims to provide users with
the capability to convert between n different currencies accurately. The scope of this module
encompasses the following components:
Inputs:
Currency Conversion Algorithm: This process involves taking user input (source
currency, target currency, and amount), retrieving the latest exchange rates, and
performing the currency conversion calculation.
Data Storage: User conversion history and preferences are stored securely in the
database.
User Interaction: The module provides an interface for users to input conversion details,
view their conversion history, and set preferences.
Notification System: Automated notifications are generated for clients when favorable
exchange rates match their preferences.
Security Measures: Data encryption, user authentication, and access control measures
are in place to ensure secure data handling.
43
Software Development Lifecycle | 2023
Process Descriptors:
Currency Conversion Algorithm: The algorithm takes user-provided input, retrieves the latest
exchange rates from external sources, performs the conversion calculation, and displays the
converted amount to the user.
Data Storage: User data is stored in a secure, relational database with encryption for sensitive
information, including user details and conversion history. Regular backups are scheduled.
User Interaction: The user interface allows clients and employees to input conversion details,
view their history, and set preferences. The interface is designed for ease of use, with clear
instructions and visual aids.
Notification System: The module monitors exchange rates and sends notifications to clients
based on their defined preferences. Notifications include details of the rate change and its impact
on their preferred currencies.
1. Design Approaches:
We could approach the design of the Currency Conversion module using different strategies. For
instance:
Direct Calculation:
We could directly calculate the converted amount using the current exchange rate. This approach
is straightforward and efficient for quick conversions.
Cached Conversion:
We could pre-calculate and store conversion rates in a cache to enhance performance. This
would be helpful if we expect frequent conversions.
2. Technologies:
44
Software Development Lifecycle | 2023
API Integration:
We could integrate with a reliable currency exchange API to fetch real-time exchange rates. This
ensures accurate and up-to-date conversion.
Database:
We could store historical exchange rates in a database for reference. This approach is useful
when real-time data isn't critical, and we want to avoid frequent API calls.
Client-Side Library:
We could use JavaScript libraries that offer currency conversion functionalities on the client side.
This reduces server load and provides a responsive user experience.
3. User Experience:
We should also think about the user experience when considering alternatives. For instance:
User Interface:
We could offer a simple text-based input for currency and amount, or we could provide a user-
friendly interface with dropdowns and suggestions.
Automated Selection:
We could automatically detect the user's location and propose a default source currency based on
their location.
We must ensure that the data sources we use for exchange rates are secure and reliable to avoid
inaccurate conversions or potential security breaches.
45
Software Development Lifecycle | 2023
Data Validation:
We should validate user inputs rigorously to prevent errors and ensure accurate conversions.
Considering these alternatives will help us choose the best approach and technologies that align
with the Gurkha-Finances project's goals and requirements. We should evaluate each option's
pros and cons, considering factors like performance, maintenance, user experience, and security,
before making a decision.
Security Consideration:
1. Evaluating Security Risks and Vulnerabilities:
We want to ensure that the system we're developing is secure from any potential attacks or flaws
when we talk about security. Consider the system as a castle, and our goal is to identify any
vulnerabilities that hackers or attackers might exploit. These vulnerabilities could include things
like holes in the coding, the way data is transmitted, or even typos that could allow unauthorized
individuals to access confidential data.
Once these vulnerabilities have been found, we must implement effective defenses to safeguard
the system and the important data it contains. It's similar to installing watchmen and locks to
keep trespassers out of our fortress.
3. Data Encryption:
Consider data encryption as writing messages in secret using a code. We use encryption when
sending sensitive data, such as passwords or financial information, to ensure that, even if
someone intercepts the data, they will not be able to comprehend it without the proper "key" to
decode it.
4. User Authentication:
Similar to creating a security checkpoint before giving access, user authentication. It entails
confirming users' identities as they check in to make sure they are who they say they are. This
46
Software Development Lifecycle | 2023
important step aims to stop unauthorized people from accessing accounts or systems to which
they shouldn't have access.
5. Access Control:
Giving various keys to different individuals in the fortress is analogous to access control. We
make sure that only those with permission can access particular areas of the system. Regular
users may, for instance, have access to some functions, whilst administrators may have access to
more private areas.
By tackling security issues, we're adding layers of security to the system and the priceless data it
carries. We do the same thing in the digital world to protect information from harm, just like we
lock our doors and keep our personal information secure in the real world.
1. Time Constraint:
We have a set amount of time in which to finish the project. It resembles having a due date for
completing a work. This time limit will have an impact on how we organize our development
phases and make sure we stay on course to complete the system by the deadline.
2. Budget Constraint:
This project has a financial budget, similar to how we have one for personal expenses. To ensure
that we stay within the specified budget, we must manage our resources carefully. The choice of
tools, the allocation of resources, and development strategies are all governed by this limitation.
3. Technology Limitations:
47
Software Development Lifecycle | 2023
Consider this to be the resources and tools we have at our disposal to construct something.
Working with the technology that is practical and appropriate for the project in our situation is
necessary. There are occasions when we might desire to adopt cutting-edge technology, but it
might not be appropriate because of compatibility problems or other restrictions.
4. Existing Infrastructure:
The infrastructure that is now in place includes the systems and procedures that Gurkha-Finances
has already established. We must make sure that the new computer system can seamlessly
interface with the existing set up as we improve it. Important factors to take into account are
compatibility and seamless interaction with current systems.
Functional Requirements:
Functional requirements describe what the system needs to do. Here's a list of functional
requirements for the Gurkha-Finances project:
The system must provide tools to calculate the cost of purchasing different currencies,
including Pound Sterling (GBP), American Dollars (USD), Euro (EUR), Brazilian Real
(BRL), Japanese Yen (JPY), and Turkish Lira (TRY).
Users should be able to enter a value in one currency and obtain the equivalent value in
another selected currency.
2. Quote Generation:
The system should generate quotes on potential earnings for various savings and
investment plans.
Users should be able to input their investment amount and receive projected earnings
based on predefined criteria.
3. User Interface:
Navigation and interaction components should be straightforward to use even for non-technical
people, and the user interface itself should be easy to understand.
4. Data Representation:
48
Software Development Lifecycle | 2023
Graphs, charts, and tables may be used to show data, and the system should effectively represent
textual, numerical, and graphical data to enhance users' understanding of financial information.
The system must securely store user information, including contact details, transaction
records, and saved quotes.
Data should be organized and easily retrievable for future reference.
Non-Functional Requirements:
Non-functional requirements describe how well the system performs its functions. Here are some
non-functional requirements for the Gurkha-Finances project:
1. Performance:
The system should provide quick responses and minimize waiting times for users during
currency conversion and quote generation.
Transactions should be processed efficiently to maintain a seamless user experience.
2. Security:
User data, especially personal and financial information, must be encrypted and protected
from unauthorized access.
The system should implement strong user authentication to prevent unauthorized access.
3. Scalability:
The system must be able to manage more user activity and data without noticeably
degrading performance.
The system should be able to handle additional users and transactions as Gurkha-
Finances grows.
49
Software Development Lifecycle | 2023
5. Else, do
Calculate converted amount = amount * exchange rate [source currency] [target currency]
6. End
Flowchart Explanation:
1. Start Symbol: This is where the flowchart begins. It's represented by an oval shape labeled
"Start."
2. Input Symbol: This symbol represents the input stage. It's a parallelogram where you input
the source currency, amount, and target currency.
3. Process Symbol - Fetch Exchange Rates: This symbol represents fetching exchange rates
from an API. It's a rectangle with the description "Fetch exchange rates from API."
4. Decision Symbol: This diamond shape represents a decision point. The algorithm checks if
the source currency is equal to the target currency.
5. Display Symbol: This rectangle with rounded corners represents displaying a message. If the
source currency is the same as the target currency, the algorithm displays "Source and target
currencies are the same."
6. Process Symbol - Calculate and Display: This rectangle represents the process of calculating
the converted amount and displaying it in the target currency.
7. End Symbol: This is the final point of the flowchart, represented by an oval shape labeled
"End."
50
Software Development Lifecycle | 2023
Flowchart Representation:
Figure 6: Flowchart
In this flowchart:
The process starts at the "Start" symbol and progresses through the various steps based on
conditions and processes.
The decision point at the "Decision" symbol determines whether the source and target
currencies are the same or not.
Depending on the decision outcome, the flow moves to either the "Display" symbol or
the "Calculate and Display" process.
The flow ultimately ends at the "End" symbol.
This flowchart visually represents the logic described in your algorithm, providing a clear and
organized representation of the Currency Conversion module's process.
51
Software Development Lifecycle | 2023
Pseudocode:
Figure 7: Pseudocode
In this pseudocode:
The "Start" and "End" represent the beginning and end of the program.
The "Input" step collects input from the user.
The "Fetch Exchange Rates" process involves obtaining data from an external source.
The "Decision" point evaluates the condition.
The "Display" and "Calculate and Display" steps handle the output based on the decision.
Deterministic Finite Automation (DFA): A DFA is a simpler version where each transition is
uniquely determined by the current state and input event.
52
Software Development Lifecycle | 2023
Non-deterministic Finite Automation (NFA): An NFA allows for multiple possible transitions
States:
Red Light: The traffic light is currently flashing a red signal, meaning all moving traffic
in this direction must stop.
Yellow Light: This state represents the transition period between red and green lights. It
signals that the red light is about to turn green, so drivers should prepare to start moving.
Green Light: In this state, the traffic light is currently showing a green signal, enabling
vehicles to move forward.
Transitions:
Red to Green: When a predetermined amount of time has passed, the state changes from
red to green, indicating that it is safe to let traffic to proceed in that direction.
Green to Yellow: To notify drivers that the present green signal is about to change, the
traffic light turns from green to yellow after a certain length of time.
Yellow to Red: When a traffic light turns from yellow to red, it is signalling to oncoming
traffic that it is imperative that they stop.
53
Software Development Lifecycle | 2023
Most of the time, the order of transitions follows a planned schedule; however, depending on the
volume of traffic and the time of day, this schedule may alter. For instance, the green condition
can stay longer during periods of heavy traffic and shorter during periods of the night.
Additionally, a lot of contemporary traffic signal control systems have sensors that can detect the
presence of vehicles and dynamically alter the timing of state changes. This makes the FSM
more complicated and enables it to react to changing traffic circumstances in real time.
In conclusion, a traffic light control is a real-world example of an FSM that aids in managing the
flow of traffic via a series of states (red, yellow, and green) and transitions between them
depending on predetermined durations and, in some cases, sensor inputs to maximize traffic flow
and safety.
Application of FSM:
Due to the simplicity of finite automata, they are quick to design, implement and also run.
With the implementation of FSM, it shows a developer to be concise and professional.
FSMs are widely used in games, notably for artificial intelligence (AI) implementations.
They are also common in applications such as text parsing, customer input handling, and
network protocols.
FSMs have applications in vending machines, video games, traffic lights, CPU
controllers, text parsing, protocol analysis, speech recognition, and language processing.
54
Software Development Lifecycle | 2023
The EFSM is used by the basic flying system to track every element of the aircraft's functioning,
including engine performance, altitude, and airspeed. Depending on the severity of the issue, the
system immediately shifts into safe or critical mode if something goes wrong. Up to a safe
landing, the aircraft can fly in safe mode with fewer capabilities. When in critical mode, the
system fully assumes control, directing the aircraft to the ground and, if required, launching
emergency procedures.
Application of EFSM:
EFSMs are widely used to model and analyse communication protocols in networking
and distributed systems.
EFSMs describe complex software behavior, utilizing states for program modes and
transitions for event-driven changes.
EFSMs model hardware device behavior, mapping states to operating modes and
transitions to input responses.
EFSMs aid in formal methods for software validation, ensuring correct system behavior
under varying conditions.
A model that is used to depict how a system An extension of FSM that includes additional
that has a finite number of states and details and actions associated with states and
55
Software Development Lifecycle | 2023
Has a finite set of states that the system can Also has a finite set of states, but states can
be in. have associated attributes and actions.
Defines transitions between states based on Transitions may have conditions or triggers,
specific events. and they can execute actions or behaviors.
Generally used for simpler systems with Suitable for more complex systems that
limited complexity. require detailed state and behavior
management.
Commonly used in simpler software systems More applicable in software systems with a
and embedded systems. higher level of interaction and business logic.
A Logical DFD focuses on representing the system's functionality and the logical flow of data
within it, abstracting away from any specific technology or implementation details.
A Physical DFD offers a thorough overview of the system, including the technical details of data
processing, transmission, and storage. Information on networks, hardware, software, and
particular data storage techniques are all included.
56
Software Development Lifecycle | 2023
DFD Levels:
0-Level DFD (Context Diagram):
0-Level DFD:
The 0-level DFD provides a high-level overview of the entire system, showing its boundaries
and interactions with external entities.
57
Software Development Lifecycle | 2023
Work: It illustrates the system as a single process and its connections to external entities.
Usage: To understand the context of the Gurkha-Finances system and identify external
interactions.
1-Level DFD:
1-Level DFD:
The 1-level DFD breaks down the system's high-level process into more detailed processes, data
stores, data flows, and external entities.
Work: It shows the main processes and their interactions with data stores, data flows, and
external entities.
Usage: To understand the core processes and their relationships within the Gurkha-Finances
system.
58
Software Development Lifecycle | 2023
2-Level DFD:
2-Level DFD:
The 2-level DFD further decomposes the processes in the 1-level DFD, providing more detail
about each sub-process, data flows, and data stores.
Work: It illustrates detailed sub-processes, data flows, and interactions within the Currency
Conversion, Investment Calculation, and User Management processes.
59
Software Development Lifecycle | 2023
60
Software Development Lifecycle | 2023
The Entity-Relationship (ER) diagram for the Gurkha-Finances scenario depicts a set of entities
and their relationships. The "User" entity represents both staff and clients, each of whom can
have multiple financial "Transaction" records associated with them, indicating a one-to-many
relationship. Each transaction involves a specific "Currency," and multiple transactions can share
the same currency, establishing a many-to-one relationship. Transactions can also be related to
specific "Investments," with multiple transactions linked to the same investment. Lastly, each
"Investment" entity can have a corresponding "Quote," forming a one-to-one relationship, where
each quote is associated with one investment, and each investment has a related quote. This ER
diagram illustrates the core data entities and their connections within the Gurkha-Finances
system, providing a foundation for data modeling and system design.
Part 4: Presentation
Slide 1:
Figure 15
61
Software Development Lifecycle | 2023
requirements, techniques for enhancing software quality throughout the software lifecycle, the
suitability of our investigation in light of Gurkha-Finances' needs, an analysis of the software
behavioral design techniques used, an examination of the software behavioral tools and
techniques used, the role of data-driven software in enhancing reliability and effectiveness, and
finally, how our investigative process contributes.
Slide 2:
Figure 16
Tracing software requirements may be quite helpful in identifying any gaps or mistakes in the
requirements early in the software development cycle. Due to the ability to make quick changes,
time and resources are saved. Additionally, tracking software requirements makes ensuring that
the solution satisfies the user's requirements, which is essential for client satisfaction.
62
Software Development Lifecycle | 2023
Slide 3:
Figure 17
Traceability:
Traceability is the ability to track a requirement from its origin through its development, testing,
and release. It is an essential part of the software development process that helps ensure quality,
manage risk, and meet compliance requirements.
Slide 4:
63
Software Development Lifecycle | 2023
Figure 18
Importance of Traceability:
Traceability is important in the software development lifecycle due to the following points:
Traceability ensures that each requirement is successfully implemented and validated through
testing. It provides a clear path to verify that the developed software meets the intended
objectives. By tracing requirements through the entire lifecycle, we can confidently confirm that
the final product aligns with stakeholder needs.
64
Software Development Lifecycle | 2023
Traceability provides a tangible link between stakeholder needs and the final product. It fosters
effective communication between stakeholders, developers, and testers. When everyone
understands how requirements translate into actions, misunderstandings are minimized, and
alignment is enhanced.
Slide 5:
Figure 19
65
Software Development Lifecycle | 2023
Typically, an RTM takes the form of a grid that connects requirements to various stages such as
design, development, testing, and release. Each requirement is designated a unique identifier,
facilitating its tracking throughout the entire process. The creation of an RTM can be
accomplished using tools like spreadsheets or specialized software applications. (Hamilton,
2023)
Traceability review meetings are an additional traceability method. In order to examine the
traceability matrix and make sure that all requirements have been correctly tracked and
documented, these meetings bring together stakeholders from across the business. They offer a
chance to spot any holes or discrepancies in the traceability procedure and make sure that
everyone is in agreement on the project's needs.
3. Traceability Reporting:
Traceability reporting is another important technique for ensuring traceability. This involves
generating reports that show how requirements have been traced throughout the development
process. These reports can be used to identify areas where further work is needed and to
demonstrate compliance with regulatory requirements. (Anon., 2022)
Test case management tools are essential for ensuring that software requirements are met during
the development process. Spreadsheets are a popular choice for tracking test cases, as they allow
66
Software Development Lifecycle | 2023
for easy organization and updating of information. Test rail is another commonly used tool that
provides more advanced features such as test plan creation, result tracking, and reporting.
These tools make it simple for developers to keep track of which criteria have been tested and
which still require attention. This minimizes the possibility of defects and other problems in
production by ensuring that all necessary testing is finished before the software is published.
5. Documentation:
6. Version control:
Systems for version control are also necessary for tracking down software requirements. They
support the management of software modifications and guarantee that all software versions are
accurately monitored and recorded. This makes ensuring that any software modifications are
accurately documented and can be linked to the original specifications. Version control systems
also assist in ensuring that everyone in the team is using the most recent version of the program,
which can enhance teamwork and minimize mistakes.
Jira is a popular project management tool that may be used to keep track of software
requirements and provide traceability throughout the development process. Teams may
collaborate with one another, manage their projects, and keep tabs on developments in real time
using Jira.
Jira's capacity to connect requirements to particular activities and system issues is one of the
main advantages of utilizing it for requirements traceability. Teams are able to readily monitor
the development of each need thanks to this, making sure that it is being taken into account at
every stage. Teams can create unique reports on the status of requirements, progress, and more
using Jira's strong reporting tools.
67
Software Development Lifecycle | 2023
Slide 6:
Figure 20
Developing a failed test first, then developing the code to pass the test, and then modifying the
code to enhance its design and maintainability are all steps in the TDD process. TDD has
advantages such as better code quality, quicker development times, and shorter debugging times.
68
Software Development Lifecycle | 2023
Pair Programming:
Two programmers work together on a single assignment using the collaborative software
development technique known as pair programming. The idea is that these two developers will
switch off between writing and reviewing code while maintaining a constant dialogue about
problems and potential solutions. It is well recognized that this strategy can considerably
improve code quality because it encourages constant communication and teamwork between the
two parties. (techtarget, 2023)
Making sure software is adequately tested and reaches the appropriate level of quality requires a
sound test strategy. It helps uncover any possible problems before they turn into bigger
difficulties by outlining the testing methodology, test cases, and expected results.
Creating a test plan entail selecting the scope of testing, designing test cases, and setting a testing
schedule in addition to specifying the software's requirements. The risk of errors and overall
software quality can be decreased by using a well-defined test plan to make sure that all
components are adequately tested.
Peer code reviews involve having other developers look at your code to find any potential
problems or places for improvement. This may result in higher-quality code and help to identify
flaws before they have a significant negative impact.
Automated Static Analysis Tools employ algorithms to scrutinize code and pinpoint possible
concerns, such as security vulnerabilities or performance bottlenecks. When combined with Peer
Code Reviews, these tools enable software development teams to maintain a rigorous standard
for their code quality.
69
Software Development Lifecycle | 2023
Slide 7:
Figure 21
Suitability of Investigation:
Software Behavioral Design Techniques
The investigation we conducted for Gurkha-Finances was carefully tailored to meet the specific
needs of the organization. We utilized a range of software behavioral design techniques, such as
ERDs, DFDs, Pseudocode and Flowchart to analyze and understand the problem at hand.
Suitability:
ERDs are highly suitable for Gurkha-Finances as they provide a visual representation of
data entities and their relationships.
They help in modeling the complex relationships between entities like users, transactions,
currencies, and investments, ensuring that the software's data structure aligns with the
business domain.
Example:
70
Software Development Lifecycle | 2023
In the case of Gurkha-Finances, ERDs were instrumental in defining how user data (such
as clients and employees) relates to financial transactions and investments.
For instance, an ERD helped establish a clear relationship between user accounts and
their associated financial transactions, allowing for efficient tracking and reporting.
2. Data Flow Diagrams (DFDs):
Suitability:
DFDs are well-suited for Gurkha-Finances due to their ability to illustrate the flow of
data and processes within the system.
They help in understanding how data moves through the software, which is crucial for
financial data management.
Example:
DFDs were used to depict how financial data flows through the system, from user input
to currency conversion and investment calculations.
For example, a DFD revealed the step-by-step process of currency conversion, showing
how user inputs are transformed into converted currency values.
3. Pseudocode and Flowcharts:
Suitability:
Pseudocode and flowcharts were chosen for their suitability in describing the logic and
algorithms used in the software.
They help in ensuring that the software behaves as intended, aligning with Gurkha-
Finances' functional requirements.
Example:
Pseudocode and flowcharts were applied to describe the currency conversion algorithm in
detail.
This allowed for a clear representation of the logic involved, from input validation to the
calculation of converted amounts, ensuring accuracy and reliability.
The chosen software behavioral design techniques, including ERDs, DFDs, pseudocode, and
flowcharts, were highly suitable for addressing Gurkha-Finances' needs. They provided a
71
Software Development Lifecycle | 2023
Slide 8:
Figure 22
Our choice of software behavioral tools and techniques played a pivotal role in our investigative
process. They provided the means for a structured approach to modeling, understanding, and
communicating the software's behavior.
Modeling: ERDs helped us model the relationships between key entities, such as users,
transactions, currencies, and investments.
Understanding: They provided a clear visual representation of how these entities interact, aiding
our understanding of the system's data flow.
72
Software Development Lifecycle | 2023
Structured Approach: DFDs allowed us to create a structured representation of the data flow
within the software.
Communication: They served as a common language for communicating complex data processes
to stakeholders.
Algorithm Clarity: Pseudocode and flowcharts were instrumental in breaking down complex
algorithms, like currency conversion, into manageable steps.
Readability: They enhanced the readability of our investigative findings, making it easier for
developers to grasp the software's behavior.
Impact:
These tools had a profound impact on our investigation by ensuring that the software aligns with
Gurkha-Finances' goal of providing a robust financial system.
Functional Requirement Alignment: The tools helped us meticulously define and document
how the software meets functional requirements. For instance, pseudocode and flowcharts
clearly outlined the currency conversion algorithm, ensuring it met accuracy and performance
criteria.
Slide 9:
73
Software Development Lifecycle | 2023
Figure 23
Data-driven software has the ability to recognize patterns and trends that humans might not see
right away. Take a chatbot for customer support as an illustration, which analyzes client
enquiries using natural language processing. The chatbot can detect typical problems and
recommend changes to the supplied product or service by examining the data gathered from
these encounters.
Data-driven software also has the advantage of being adaptable to changing conditions. When a
customer's preferences or behavior change, an e-commerce website that employs machine
learning algorithms to offer things to them may modify those recommendations.
1. Enhanced Decision-Making:
74
Software Development Lifecycle | 2023
Justification 1: Data-driven automation reduces manual data entry errors, ensuring that
financial data remains accurate and trustworthy.
Justification 2: Algorithms can perform data validation checks in real-time, preventing
erroneous transactions or calculations.
3. Predictive Capabilities:
Justification 1: Data-driven software can track performance metrics and gather user
feedback, enabling iterative improvements over time.
Justification 2: It identifies bottlenecks or inefficiencies, helping developers optimize the
software for better effectiveness.
5. Personalization and User Engagement:
75
Software Development Lifecycle | 2023
Figure 24
Slide 11:
76
Software Development Lifecycle | 2023
Figure 25
1. Requirement Clarity:
The investigative phase allowed for the identification of potential quality issues early in
the process.
77
Software Development Lifecycle | 2023
Data analysis and behavioral design techniques were used to make informed decisions.
Data-driven decisions optimize the software's design, functionality, and user experience,
aligning with stakeholder expectations.
6. Iterative Improvement:
78
Software Development Lifecycle | 2023
Conclusion
References
79
Software Development Lifecycle | 2023
Alshamrani, A. & Bahattab, A., 2015. A Comparison Between Three SDLC Models Waterfall
Model, Spiral Model, and Incremental/Iterative Model. A Comparison Between Three SDLC
Models Waterfall Model, Spiral Model, and Incremental/Iterative Model, 01, 12(1), p. 6.
Amlani, R. D., 2012. Advantages and Limitations of Different SDLC Models. Advantages and
Limitations of Different SDLC Models, Volume 1, p. 6.
Anon., n.d. What is SDLC(Software Development Life Cycle) and its phases. [Online]
Available at: https://www.geeksforgeeks.org/what-is-sdlc-model-and-its-phases/
[Accessed 17 08 2023].
Arora, R. & Arora, N., 2016. Analysis of SDLC Models. Analysis of SDLC Models, 09 02.p. 5.
Arora, R. & Arora, N., 2016. Analysis of SDLC Models. International Journal of Current
Engineering and Technology, 05 02, 6(01), p. 5.
Daffodil Unthinkable Software Corp., 2023. A Complete Guide to Software Development for
2023. [Online]
Available at: https://www.daffodilsw.com/a-complete-guide-to-software-development-for-
80
Software Development Lifecycle | 2023
2023/#pillarTile4
[Accessed 20 08 2023].
Doshi, D., Jain, L. & Gala, K., 2021. REVIEW OF THE SPIRAL MODEL AND ITS
APPLICATIONS. REVIEW OF THE SPIRAL MODEL AND ITS APPLICATIONS, 04, 5(12), p.
6.
Ekai, C., 2023. Explain How Risk is Managed in the Spiral Lifecycle Model. [Online]
Available at: https://riskpublishing.com/risk-is-managed-in-the-spiral-lifecycle-model/
[Accessed 14 09 2023].
Hamilton, T., 2023. What is Requirements Traceability Matrix (RTM) in Testing?. [Online]
Available at: https://www.guru99.com/traceability-matrix.html
[Accessed 14 09 2023].
Inland Software, 2023. Risk Management in Agile and Waterfall Environments. [Online]
Available at: https://content.intland.com/blog/sdlc/risk-management-in-agile-and-waterfall-
environments
[Accessed 11 09 2023].
Islam, M. N., 2011. Rapid Application Development: Project Risk Management. [Online]
Available at: https://nazrul.me/2011/11/23/rapid-application-development-project-risk-
management/
[Accessed 11 09 2023].
Jena, S., n.d. Types of Feasibility Study in Software Project Development. [Online]
Available at: https://www.geeksforgeeks.org/types-of-feasibility-study-in-software-project-
development/
[Accessed 20 08 2023].
kissflow, 2022. The 9 Key Benefits of Using the Agile Methodology. [Online]
Available at: https://kissflow.com/project/agile/benefits-of-agile/
[Accessed 14 09 2023].
kissflow, 2023. What is Rapid Application Development (RAD)? An Ultimate Guide for 2023.
[Online]
81
Software Development Lifecycle | 2023
Leonard, M., 2023. Why The Agile SDLC Model Is The Best For Your Startup. [Online]
Available at: https://marketsplash.com/agile-sdlc/
[Accessed 18 08 2023].
Martin, M., 2023. What is RAD Model? Phases, Advantages and Disadvantages. [Online]
Available at: https://www.guru99.com/what-is-rad-rapid-software-development-model-
advantages-disadvantages.html
[Accessed 08 18 2023].
Nayyar, K., 2021. What Is SDLC? Understand The Phases Of Software Development Life Cycle.
[Online]
Available at: https://www.bmninfotech.com/what-is-sdlc/
[Accessed 17 08 2023].
Sahu, K., R. & Kumar, R., 2014. Risk Management Perspective in SDLC. nternational Journal
of Advanced Research in Computer Science and Software Engineering, 03, 4(3), p. 5.
Shneirderman, B. & Catherine, P., 2005. DESIGNING THE USER INTERFACE. s.l.:s.n.
Simplilearn, 2023. Feasibility Study and Its Importance in Project Management. [Online]
Available at: https://www.simplilearn.com/feasibility-study-article
[Accessed 20 08 2023].
Simplilearn, 2023. Risk Management in Agile: How To Control Risk In Agile. [Online]
Available at: https://www.simplilearn.com/how-to-control-risk-in-agile-project-management-
article
[Accessed 14 09 2023].
Thakur, D., 2023. What is Feasibility Study? Types of Feasibility. Explain Feasibility Study
Process. [Online]
82
Software Development Lifecycle | 2023
Try QA, n.d. What is Spiral model- advantages, disadvantages and when to use it?. [Online]
Available at: https://tryqa.com/what-is-spiral-model-advantages-disadvantages-and-when-to-use-
it/
83