You are on page 1of 103

SDLC

Samir Gurung

1/9/2022

B.Tech HND in computing/ 2nd Semester

Samir Gurung ( B.Tech HND in computing/ 2nd Semester)


SDLC 2022

STUDENT DECLARATION

I have read and understood Pearson Edexcel Policy on Academic dishonesty and Plagiarism.

I can confirm the following details:

Programme / Qualification Name: BTEC HND in Computing

Student ID / Registration Number: 202001ITB20

Name: Samir Gurung

Centre Name: ISMT

Module Name: Software Development Life Cycle (SDLC)

Module Leader: Sandip Adhikari

I confirm that this is my own work and that I have not plagiarized any part of it. I have also noted the
assessment criteria and pass mark for assignments.

Student Signature: Samir Gurung

Submitted date: 2022/01/09

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 2


SDLC 2022

Table of Contents
Question:................................................................................................................................................8

Scenario:.................................................................................................................................................9

Part-1:.....................................................................................................................................................9

Executive Summary:..............................................................................................................................9

Introduction to SDLC:..........................................................................................................................10

Phases of SDLC:..............................................................................................................................10

Planning and Requirements gathering.........................................................................................10

Requirement Analysis:.................................................................................................................11

Design:.........................................................................................................................................11

Develop:.......................................................................................................................................11

Testing and Quality Assurance:...................................................................................................11

Deployment:.................................................................................................................................11

Maintenance:................................................................................................................................12

Software Development Model:............................................................................................................12

Predictive Model:.............................................................................................................................12

Advantage of Predictive model:...................................................................................................12

Disadvantage of predictive model................................................................................................13

Sequential model..............................................................................................................................13

Types of sequential model...........................................................................................................13

Adaptive models:.............................................................................................................................15

Iterative models:...............................................................................................................................15

Agile model..................................................................................................................................16

Agile Manifesto principles...........................................................................................................18

Agile Scrum.....................................................................................................................................18

Daily Stand-up meeting....................................................................................................................19

Sprint................................................................................................................................................20

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 3


SDLC 2022

Product backlog................................................................................................................................20

DSDM (Dynamic system development method).................................................................................20

DSDM Principles.............................................................................................................................21

Spiral model.....................................................................................................................................22

Risk management on spiral:.................................................................................................................23

Identify and resolve risk...............................................................................................................23

Risk management method....................................................................................................................24

Waterfall risk management:.............................................................................................................24

Risk and Mitigation measure in Spiral model.................................................................................26

Agile risk management....................................................................................................................26

Agile method risk management process for insurance company.....................................................27

Development Environment..................................................................................................................28

PHP Storm:.......................................................................................................................................29

Testing team.................................................................................................................................29

Release team.................................................................................................................................30

Different software development environment.....................................................................................30

Selection of model for development environment...............................................................................31

Business concept of insurance company..............................................................................................31

Agile method for insurance company..................................................................................................32

Merit of Waterfall model with reference to current context................................................................33

Waterfall model................................................................................................................................33

Example with context of insurance company..............................................................................34

Merits of applying waterfall model to design the software of insurance company.........................34

Conclusion:..........................................................................................................................................36

Part-2:...................................................................................................................................................36

Question:..............................................................................................................................................36

Introduction..........................................................................................................................................37

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 4


SDLC 2022

Feasibility report..................................................................................................................................37

Types of feasibility report:...............................................................................................................37

Technical feasibility.....................................................................................................................37

Economic feasibility.....................................................................................................................37

Legal feasibility............................................................................................................................38

Operational feasibility..................................................................................................................38

Scheduling feasibility...................................................................................................................38

Purpose of feasibility study..............................................................................................................38

Benefits of Feasibility study:...........................................................................................................39

Recommendation..................................................................................................................................39

Technical solution................................................................................................................................40

Comparison of technical solution.....................................................................................................40

A report on components of Feasibility Report.....................................................................................42

Components of feasibility report......................................................................................................42

Conclusion....................................................................................................................................45

Impact of feasibility criteria on software investigation........................................................................45

Feasibility study...............................................................................................................................45

Feasibility Study’s report for the given project............................................................................45

1. Technical impact:......................................................................................................................46

1. Economic criteria:.....................................................................................................................47

2. Operational criteria....................................................................................................................48

3. Legal criteria.............................................................................................................................48

4. Time criteria..............................................................................................................................49

Conclusions:.........................................................................................................................................49

Part 3....................................................................................................................................................50

Question:..............................................................................................................................................50

Introduction..........................................................................................................................................50

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 5


SDLC 2022

Report on Software Investigation of the Insurance Company.............................................................51

Scenario:...............................................................................................................................................51

Current system:....................................................................................................................................52

Software Investigation for Insurance Company...................................................................................52

Requirement gathering:........................................................................................................................52

Identification of the Stakeholders........................................................................................................53

Identification of the requirement of the client......................................................................................54

Identifying constraints:.....................................................................................................................54

Specification of Scopes........................................................................................................................56

Input, output, Processes and the Process description...........................................................................56

Consideration of alternative solution...............................................................................................57

Security consideration......................................................................................................................58

Quality Assurance............................................................................................................................58

Data Flow Diagram ( DFD).................................................................................................................59

DFD Levels:.........................................................................................................................................61

Data flow diagram level 0:...............................................................................................................61

Data flow diagram level 1:...............................................................................................................62

Data flow Diagram 2:.......................................................................................................................62

Entity Relationship Diagram................................................................................................................63

Uses of Entity Relationship Diagram...............................................................................................64

Requirements tracing...........................................................................................................................65

Traceability..................................................................................................................................67

Improve Return on Investment (ROI) by Reducing the Cost of Development....................................68

Approach for the requirements tracing................................................................................................69

Approaches to improve the software quality.......................................................................................74

Software quality assurance (SQA)...................................................................................................76

Functional Design Paradigm:...............................................................................................................78

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 6


SDLC 2022

Improvement of software quality by functional design paradigm...................................................78

Conclusion............................................................................................................................................79

Part-4....................................................................................................................................................80

Question:..............................................................................................................................................80

Introduction:.........................................................................................................................................80

Discuss using examples the suitability of software behavioral design techniques:.............................80

Software specification..........................................................................................................................82

Flowchart:........................................................................................................................................82

Pseudo code..................................................................................................................................85

DFD:.................................................................................................................................................88

o-Level DFD:...............................................................................................................................88

1-Level DFD:...............................................................................................................................88

2-Level DFD:...............................................................................................................................89

State Machine:......................................................................................................................................90

Notation od Sate machine:...............................................................................................................90

Finite state machine (FSM)..............................................................................................................92

Deterministic finite automation....................................................................................................92

Nondeterministic finite automation..............................................................................................92

Applications of finite state machine.............................................................................................92

Extended finite state machine..........................................................................................................93

Application of extended finite state machine...............................................................................93

Differences between FSM and EFSM..............................................................................................93

Data driven software........................................................................................................................94

Improving the reliability and effectiveness of the software using data driven software..............94

Conclusion........................................................................................................................................95

References............................................................................................................................................95

Appendix:...........................................................................................................................................102

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 7


SDLC 2022

Presentation:...................................................................................................................................102

Figure 1 Waterfall Model..................................................................................................................14


Figure 2 Prototype model..................................................................................................................15
Figure 3 Iterative model.......................................................................................................................16
Figure 4 Agile Model..........................................................................................................................17
Figure 5 DSDM...................................................................................................................................20
Figure 6 Spiral model.........................................................................................................................22
Figure 7 Agilr risk management.......................................................................................................25
Figure 8 Risk management................................................................................................................26
Figure 9 Waterfall model...................................................................................................................27
Figure 10 Waterfall model.................................................................................................................32
Figure 11 DFD level 0........................................................................................................................55
Figure 12 Test-driven development..................................................................................................63
Figure 13 Flowchart...........................................................................................................................71

Question:
Assignment Task-Part 1

Produce a presentation which includes the following

1. Description of predictive and adaptive software development models considering at least two
iterative and two sequential models.

2. The risks involved in each of the models and how the risk can be mitigated /managed in each
model by taking a reference of the spiral model.

3. 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.

4. 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.

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 8


SDLC 2022

Note: you need to produce a written document which summarizes your presentation

Scenario:
A large insurance company that is predominantly operating in the United States is going to be
offering its products and services to many international countries in its drive to grow and become a
large international company. This has meant that the systems it has been using to keep track of
customer inquiries about information and purchase of its products and services and making claims
etc., will need to be updated or a new system developed to reflect the changes in the way it will
operate. The company will also offer a much wider range of products and services to accommodate
the needs of the international market. Customers will be using a range of currencies to purchase the
products and the insurance company will need to allow for the fluctuating currency exchange rates in
its new system.

You work as a systems analyst for a business consultancy company which has won the contract to
develop the new system.

You work with many other analysts as part of a development team. The insurance company has a
small systems development team which in the past has been solely responsible for all development
work. The CEO of the insurance company feels that the development team has not been outward-
looking and wants a fresh approach for the new system. The in-house team will work alongside
analysts and developers from your consultancy company who will lead the project.

You will be project managing the analysis and design stage of the new system. Your first task is to
update the in-house team on the developments in new methodologies used to analyze systems. Most
of the in-house teams use only the more traditional approaches and few are fully aware of the agile
methodologies which are growing in popularity.

Part-1:

Executive Summary:
Currently, the public is more attracted to companies/organization that provides data and information
up to date. If they are not able to meet the requirements of the consumer’s then they will shift
towards the companies that provide many features and meet their requirements. As a systems analyst
for a business consultancy company, I must make myself up to date to make sure that the company

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 9


SDLC 2022

developers are making systems, applications according to the standard. Since the company has won
the contract for developing the new system for the insurance company.

I am going to use different types of software development models like: predictive, adaptive, and
agile method which is currently the most popular for developing the system, and analyze the system
to make sure that the system will be able to comprehend the fluctuating currency exchange rates and
adapt the needs of the international market. Also, make sure that the customer information will be
managed properly.

Introduction to SDLC:
The software development lifecycle (SDLC) is the application of standard business practices to the
creation of software applications. SDLC is divided into six phases: Planning and Requirements,
Design, Develop, Test and quality assurance, Deploy and Maintain. Depending on the project scope
project managers will split, merge, or neglect steps. These are the recommended building blocks for
all software development projects. (Anon., n.d.)

SLDC is a method to determine and progress the development process. It enables a detailed analysis
of every step of the process. This, in turn, enables corporations to maximize performance at every
stage. As computing power increases, so does the demand for software and developers. Companies
should deliver software faster, downgrade costs, and meet or surpass the consumers' needs. These
goals are achieved by SDLC because it identifies inefficiencies and better prices and fixes them to
run smoothly. (Anon., n.d.)

Phases of SDLC:
The phases of SDLC principally keep constant irrespective of what software system development
methodology is followed. However, the approach towards implementing these stages changes with
the dynamic development methodology. (Anon., n.d.)

There are six phases of SDLC they are:

Planning and Requirements gathering:

The client defines a drag that must be solved, which further forms the idea for finalizing the wants.
All the knowledge from the client and users (if required) is gathered to make requirements
documents so that the event team understands what they're building. (Anon., n.d.) Then follows
planning, which includes — distribution of labor throughout teams, putting milestones, growing

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 10


SDLC 2022

timelines for delivery, getting price estimates, engaging in threat analysis, and devising a plan to
mitigate the risks. (Anon., n.d.)

Requirement Analysis:
Requirement Analysis is the basic and important stage in software development and is done by
experts, senior members with inputs from customers, the sales department and surveys from the
markets. And then all the information is utilized for planning for the quality assurance requirements
and identification of all the risks related to the project is done here. Then the result of the technical
study is to define all kinds of approaches done to minimize the risk. (Anon., n.d.)

Design:
This segment of the software development life cycle specializes in developing software program

architecture, prototypes, and user experience design. (Anon., n.d.)

Software Architecture: Refers to making an organized flow of components in a very packaged code
for quality assurance, clarity, and accessibility. You'll see software design because of the blueprint
for the event team. (Anon., n.d.)

Prototype: The UI/UX team builds a model version of the software package to validate its look and
flow of style elements. It lets the event team and therefore the stakeholders visualize the look and
feel of the software. (Anon., n.d.)

Develop:
This phase is carried out by the programmers who are working to turn the concept into reality. The
developers create KLOCs (thousands of lines of code) of programming languages that they are
comfortable with. (Anon., n.d.) The goal of the development team is to match the speed of the
developer while ensuring a high-quality deployment. The development team can publish the software
in one go, as is the case with waterfall development, or it can publish software in fragments
(segmented into functions, i.e. agile development). (Anon., n.d.)

Testing and Quality Assurance:


This phase of the software development life cycle focuses on finding defects and inconsistencies in t
he written code. The testing and quality assurance teams collaborate here to check for defects and su
bmit them to the development team. (Anon., n.d.) The testing team will either suppose manual
testing or machine-driven testing (as per their experience and outlined process). (Anon., n.d.)

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 11


SDLC 2022

Deployment:
After it has been developed, tested, fixed, retested, and validated, the entire software or a portion of it
is placed in the production environment. If you use the Agile SDLC process, deployment could
include the release of MVP and other features. In the case of Waterfall, however, deployment refers
to the release of a fully-fledged product to the market. If end users encounter any problems with the
software, it is returned to the software development team for reconsideration and correction. (Anon.,
n.d.)

Maintenance:
With the introduction of new technologies and changing user requirements, new requirements are
likely to emerge. To meet these requirements, the software development team must iterate through
the entire software development life cycle in order to work on the new change. Thus, maintenance
simply means that software requires updates from time to time, which must be addressed in order to
maintain the software's value proposition. (Anon., n.d.)

Software Development Model:


There are two different types of software development that can be used for developing different
kinds of the software. They are predictive model and adaptive models.

Predictive model Adaptive model


Waterfall model, prototyping model, RAD Spiral model, Agile, DSDM
(Anon., n.d.)

Predictive Model:
Predictive modeling is a lifecycle method of software development in which a model is designed,
implemented, and tested in stages until the product is complete or the user's requirements are met.
This model predicts future results or behavior of the software. This is a traditional model of the
software development process, a statistical analysis method that allows developers to calculate the
likelihood of specific results related to software. Predictive models are typically used for small
software projects, and system costs should already be defined in this model. SDLC predictive models
include waterfall models, prototyping, and rapid application development (RAD). (Anon., n.d.)

Advantage of Predictive model:


 The development process is simple because the software requirements are well defined; it is
also simple to manage.

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 12


SDLC 2022

 If everything goes as planned, the organization can assume the expected project budget and
timelines.
 Because predictive SDLC has specific timelines and deliverables, it is simple for the team to
operate and monitor the entire project.
 The predictive model has clearly defined the stages as they develop one at a time.

Disadvantage of predictive model


 Bugs and vulnerabilities will be identifying late in the application because the working
software is produced late in this predictive SDLC.
 If all the tasks are not done properly in each phase, the whole project can be impacted.
Because this model requires good planning and design.
 The review and test of the application can be done only in the last phase of the development.
 This model is not usable for the complex and big object oriented software projects.
 This model is not will-functioning software is prepared until the last stage of the software is
completed.

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
models such as waterfall models, prototype models, and RADs. (Anon., n.d.)

Types of sequential model


Waterfall model:
The waterfall model for software development is one of the oldest models that is very easy to use and
understand. This model follows a step-by-step process of software development. That is, after the
first phase is complete, it moves to the second phase, and after the second phase is complete, it
moves to the next phase. Steps cannot be valued at a flat rate. We have to obey orders. (Anon., n.d.)

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 13


SDLC 2022

Figure 1 Waterfall Model

Advantages

 The methods can easily be understood.


 All the process goes step by step

Disadvantages

 It is unreliable and the risk is very high.


 It is not suitable for the long term projects.

Prototyping model
In this prototyping model, the customer has the opportunity to see his product at an early stage
through prototypes that can be designed in different apps line Marvel, Pencil, in Vision etc. It is the
step between the formalization and the evaluation of an idea. (Anon., n.d.)

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 14


SDLC 2022

Figure 2 Prototype model

Advantages

 The development time and the cost is reduced.


 Helps to gain user satisfaction.
 Flexible and effective design can be achieved.

Disadvantages

 Requires too much involvement of the customer.


 It slow down the development process.

RAD:
Rapid Application Development (RAD) is a development model that prioritizes rapid prototyping
and quick feedback over lengthy development and test cycles. With rapid application development,
developers can quickly make multiple iterations and updates to software without having to start a
development plan from scratch each time. RAD is a development model that arose when developers
realized that the traditional waterfall model of development wasn't very effective. (Anon., n.d.)
Adaptive models:
When developing new software of this type, it is almost difficult to predict the time, funding, and
resources for the project. In this case the predictive models cannot be used, so in this case we have to
use an adaptive model. When working with adaptive models, the requirement can be changed and
modified and, depending on the requirement, time, finances and resources are allocated. (Anon., n.d.)

Advantages

 It helps to solve the large and complex project.

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 15


SDLC 2022

 It helps to analyze the software demands and risk.


 The changes can be adopted in this in this model.

Disadvantages

 Well experienced and well skilled team is required.


 The cost is high for this approach.

Iterative models:
In this iterative model, all software development work begins with a simple catalog of requirements
and we iteratively increase the version until our final project is ready for the market. This whole
process happens in a small cycle, with new features being added over and over again, unless
customers are happy with the result. (Anon., n.d.) Representative for the iterative model is shown in
the picture below:

Figure 3 Iterative model

Different phases

 The first phase of the iterative model is the design phase, in which the required software is
designed.
 The implementation and testing phase of the iterative model is where the code is written,
implemented, and tested.
 The final stage is the review stage, in which the software and the demands are analyzed and
changes are made as needed.

Agile model
It is the most efficient method of developing software. The entire project is divided into small units
known as user stories in this model. The stories are added to the product backlog based on user
priority. Because the stories are not linked to one another, the development team can work on that
specific story, allowing the stakeholder to add additional stories as needed for the next sprint.
(Anon., n.d.)

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 16


SDLC 2022

Figure 4 Agile Model

Agile Process Flow

i. Concept: Projects are planned and put in order.

ii. Inspection: An inception is when the team is put together, the financing is set up, the original
environments and specifications are talked about.

iii. Iteration / Construction - The development team works to make iteration-based working
software and get feedback from people who use it, so that they can make changes.

iv. Release - QA (Quality Assurance) testing, internal and external training, documentation creation,
and final manufacturing release of the iteration

v. Production - Ongoing help with the Retreat

vi. Retirement - Operations related to the end of a customer's life, such as client notice and
relocation

(Anon., n.d.)

Phases of agile model


Agile model also follows same phase as software development life cycle, but the working
mechanism is different.

1. Requirements and planning -This phase define the iteration's requirements based on the
product backlog, sprint backlog, and feedback from customers and stakeholders.

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 17


SDLC 2022

2. Design- The Agile product owner brings together the project vision by working closely with
stakeholders, staff, developers, and potential application users by: defining and documenting
business and user requirements, prioritizing tasks, and allocating resources
3. 3. Development: After developing an idea, teams can begin developing the first iteration of the
application. The development phase includes all-important production tasks like designing,
developing, and coding. This is the longest of the three stages of the Agile application
development lifecycle.

4. Testing: The Quality Assurance team carefully examines the product's performance, looking for
any bugs. If they find any they report it and some changes can be made. The following significant
events will occur: 1. Testing for operability 2. Unit testing, 3. Integration testing, 4. System testing,
and 5. Acceptance testing is the five stages of testing.

5. Deployment: The team develops a product for the user's workplace and distributes it along with
some user documentation. - Create software based on pre-defined specifications.

6. Feedback and maintenance: Once the product is released. This is where the team gets and works
through product feedback. Agile is primarily focused on user needs, with developer feedback and
frustration after deployment.

(Anon., n.d.)

Agile Manifesto principles


 Customer satisfaction: The main priority goes to the customer satisfaction. Agile makes
sure that the customers are well satisfied with their software. (Anon., n.d.)
 Responding to the change: If we are working in agile then we should be able to adopt the
change made by the customers for their product. (Anon., n.d.)
 Build working software: While documentation is still important in agile approaches, any
documentation becomes useless if you end up creating a product that nobody needs. To avoid
irrelevance, focus on creating small working pieces of a product that you’re sure your users
want. (Anon., n.d.)
 Focus on interactions: Studies show that effective communication may improve team
performance up to 50 times over. Agile methodologies pay special attention to

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 18


SDLC 2022

communication techniques through such principles as daily standup meetings and pair
programming. (Anon., n.d.)

Advantages:

 When compared to programmers working alone, pair programming produces well-written,


compact programs with fewer errors.
 It reduces the overall development time of the project.
 After each iteration, customer service representatives gain an understanding of updated
software products. As a result, he can easily change any requirement if necessary.

Disadvantages:

 Because of the lack of formal documents, there is confusion, and important decisions made
during various phases can be misinterpreted at any time by different team members.
 When the project is completed and the developers are assigned to another project,
maintenance of the developed project may become a problem due to a lack of proper
documentation.

Agile Scrum
Scrum is a project management development process that is primarily used in agile software
development. In order to solve the complex project, the Scrum framework was created. The scrum
concept is used to divide a complex project into smaller stages, making it easier to review and adapt
the development process (Anon., n.d.)

In this picture above we can see the process of Scrum in project development. The project owner is
responsible for overseeing all project development work. The project manager selects the team and

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 19


SDLC 2022

conducts a sprint meeting plan in which all project-related components such as time frames, goals
and methods are discussed. After receiving the request from the PO, the sprint backlog is developed,
in which the product features are contained and based on the sprint feature, developed according to
their priority. Each Scrum takes 1-4 weeks and is monitored by the Scrum Master. After completing
the work on the first Scrum, the review is carried out and tested and after approval by the PO, the
sprint is finalized.

Daily Stand-up meeting


Before working on a project, the meeting for the project discussion is set. The time frame for the
sprint is set in the meeting and is often 30 days. All participants in the meeting work together to set
the goal in order to create suitable software.

Roles:

 Product owner
The product owner serves as a medium between the development team and the customer. The
role of the project owner is to draw up a backlog and give clear instructions about the task
and to ensure that everyone knows their priority of the task.
 Scrum master
The role of the Scrum Master is to make sure that the project goes according to plan or not.
Scrum Master is also responsible for resolving the risk that may arise in the project and
protects the team from any distraction.
 Scrum team
This is the team that works together in order to deliver the final working product. The scrum
team consists of about 5-10 members which determine how to execute and complete the
project.

Sprint
Sprint is basically breaking the whole project into small pieces. In the sprint, the properties of the
project are first evaluated and a sprint is created according to the priority of this task. The sprint
is often divided into 4-8 parts, depending on the complexity of the project, and each part lasts
around 1-4 weeks. Sprint is very important to any project as it provides the schedule for the
project. (Anon., n.d.)

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 20


SDLC 2022

Product backlog
A product backlog is just like a source for thing that a team member works on. In a project
backlog all the task of the project, its features, changes, bug fixing, infrastructure changes or
anything that a team might require to complete the project is mentioned. (Anon., n.d.)

DSDM (Dynamic system development method)


DSDM is an agile method that focuses on the entire project lifecycle. DSDM (formerly known as
Dynamic System Development Method) was developed in 1994 after project managers using RAD
(Rapid Application Development) sought more governance and discipline for this new iterative way
of working. (Anon., n.d.)

Figure 5 DSDM

DSDM is an iterative method to software program development, and this framework explicitly states
“any assignment need to be aligned to honestly described strategic desires and attention upon early
supply of actual blessings to the enterprise.” The framework is constructed on 4 principles:
feasibility and enterprise study, purposeful version and prototype iteration, layout and construct
iteration, and implementation. (Anon., n.d.)

DSDM’s strengths include:

 Basic product functionality can be delivered rapidly


 Developers have easy access to end users
 Projects are reliably completed on time

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 21


SDLC 2022

DSDM’s weaknesses include:

 Can represent a dramatic and disruptive change in company culture


 Costly to implement
 Not ideal for small organizations

DSDM Principles
Within each phase, DSDM relies on several different activities and techniques based on these
principles:

 Projects evolve excellent thru direct and co-placed collaboration among the builders and the
users. (Anon., n.d.)
 Self-controlled and empowered groups ought to have the authority to make time touchy and
vital mission-degree decisions. (Anon., n.d.)
 Design and improvement is incremental and evolutionary in nature and is essentially pushed
with the aid of using ordinary, iterative consumer feedback. (Anon., n.d.)
 Working software program deliverables are described as structures that cope with the vital,
present day enterprise wishes as opposed to structures that cope with much less vital destiny
wishes. (Anon., n.d.)
 Frequent and incremental shipping of operating software program is valued over rare
shipping of flawlessly operating software program. (Anon., n.d.)
 All adjustments delivered at some point of improvement ought to be reversible. (Anon., n.d.)
 Continuous integration and first-class guarantee trying out is performed in-line, at some point
of the mission lifecycle. (Anon., n.d.)
 Visibility and transparency is recommended thru ordinary conversation and collaboration
among all mission stakeholders. (Anon., n.d.)

Spiral model
Spiral version is the mixture of each waterfall version and prototype version with the addition of
threat management. It is largely the repetition of various stages until the very last product is released.
This version is designed in spiral shape so in first loop it can cope with gadget feasibility, in
subsequent loop it can cope with gadget layout and so on. (Anon., n.d.)

The spiral version is split into 4 quadrants that are defined below:

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 22


SDLC 2022

Figure 6 Spiral model

 Objective setting: The first step is to set the objectives of the project regarding the project
performance, functionality, hardware/software interface, etc.
 Identify and resolve risk: Find all the possible risk like: lack of experience, new schedule, etc.
and try to resolve those risk evaluating their impact on the project.
 Development and validation: It is the part where the actual task is performed. Task related
with designing, coding, inspecting and testing are done here.
 Planning: In this fourth quadrant we designed different plans like project plan, configuration
management plan, test plan, installation plan etc.

Advantages

 Helps to reduce the risk.


 This method is good for high-level projects.
 More functionality can be added later on.

Disadvantages

 This model is very costly.


 High expertise are required for the risk analysis.
 The overall success of the project depends upon the risk analysis.

Risk management on spiral:


Risk control is described because the procedure wherein all of the viable hazard of the venture is
analyzed and solved with the aid of using the usage of extraordinary hazard control methods. For any
venture the primary targets of the hazard control are to provide a higher product with the aid of using

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 23


SDLC 2022

resolving the ones hazard. The high-quality manner to control the hazard of the software program
product is to apply spiral version of hazard control. Spiral technique could be very beneficial because
the hazard may be recognized effortlessly on this version at its very early stage. Spiral technique
gives extraordinary prototype in every section of the venture improvement for coping with the
hazard. (Anon., n.d.)

Identify and resolve risk


In the second one quadrant of spiral model, danger evaluation which incorporates figuring out,
estimating and tracking the technical feasibility and control dangers inclusive of fee overrun and time
table slippage are performed. After that each one the feasible answers are evaluated in order that the
fine feasible answers may be selected. Later the dangers related to that answer is diagnosed after
which the danger is resolved with the aid of using the usage of the fine feasible answer. Finally,
prototype is constructed for the fine feasible answer on the cease of this quadrant. Thus in quick we
will say that identity of capability danger is performed even as danger mitigation method is
deliberate and finalized. In the above discern of spiral model, it has divided the improvement
component into the 4 quadrant. It has blanketed one complete quadrant for the figuring out and
resolving of danger even supposing there's no danger withinside the feel that there can be danger
withinside the future. It offers extra precedence for the danger evaluation. For example, even as
doing an assignment, if we supply three hours out of 12 hours in a single venture then it might be
fine venture. If we supply one fourth of time for finishing one venture, then we assume nicely and
whole that venture withinside the higher way. Same as that we supply one fourth of time for the
perceive and solve of danger because of which there might be very much less extrude of getting
danger withinside the software.

Risk management method


Waterfall risk management:
Waterfall version become the first actual version ever added as a way to construct the software
program and extensively utilized to get rid of the chance. The waterfall version also can be used as a
way to lessen the chance of the project. (Anon., n.d.)

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 24


SDLC 2022

Figure 7 Waterfall model

The waterfall version works in a step sensible process. If we end the paintings of first step, then we
circulate toward the subsequent step and so forth except the assignment is completed. Doing
assignment through waterfall version may be very clean due to the fact on this version we don’t need
to use new characteristic on the center of the assignment as each unmarried requirement is taken at
very starting of the assignment. In waterfall version the threat is controlled with the assist of chart.
Before beginning the assignment, a chart is made and the threat is detected. While the growing
segment of the assignment is begin then we display the threat chart in conjunction with the
improvement and if the road for the threat withinside the chart is going up then that characteristic is
changed with the brand new characteristic and if the road of threat is going down then that threat is
prioritized less. (Anon., n.d.)

Prototyping model for risk management

Creating a prototype after which fixing the hazard on the premise of the prototype could be very
handy manner of locating and fixing a hazard. Let’s keep in mind our situation wherein we must
create a software program for the company. The consumer trusts us due to the fact they accept as true
with that we are able to provide a entire software program with none trojan horse and for turning in
such software program we accept as true with in prototyping version. Because on this version first a
dummy software program is layout so that you can recognize its operating predominant and from
diverse layout and prototype we are able to discover the viable hazard which can arise and consistent
with that with the aid of using resolving that hazard we are able to layout higher software program.
(Anon., n.d.)

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 25


SDLC 2022

There are two types of prototype that can be used for publishing better services and they are:

 Online prototype

In this prototype model we simply design the appearance of our product and check
whether the content, color, version, etc. matches with the client requirement or not.

 Offline prototype

For offline prototype we layout the paper caricature of the assignment and with the assist of that
caricature we determine the layout of the very last product. For example, we will have many layout
of a button after which we will pick the layout with the aid of using putting that button layout
withinside the caricature web page and pick an appropriate ones.

The following given are some of the importance of prototype for the insurance company for whom
we are working:

 It helps to finalize the design of our product and save our time as well.
 With the help of prototype, we can be clear about the project in which we are working.

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 26


SDLC 2022

 After presenting the prototype of the product we can have discussion on the possible risk
and then start working to solve that risk.
 Prototype always helps to find an alternative way for the project.

Risk and Mitigation measure in Spiral model


The spiral development life cycle is one of the best development life cycles. It is most useful for
managing risks. While this reduces the chances of error detection and risk. It's very expensive. And
mastery is needed to be of the highest degree needed for the danger examination. The success of the
project will rely upon how well the risk management is done. In each phase of the project, the spiral
model provides various types of prototypes to manage risk. In a spiral model, risk management
entails understanding, estimating, and monitoring the technical feasibility of a project. In order to
better understand the risk of a particular arrangement, it would be wise to carry out a risk
investigation beforehand. The most efficient way to handle each hazard should then be used to
resolve it.

(Anon., n.d.)

Agile risk management


Now an afternoon maximum of the software program organization are who prefer the agile approach
for growing the software program and additionally to research the risk. Agile approach is the
simplest approach we will undertake the modifications in step with the customer want in any
segment of the project.

Figure 8 Agilr risk management

The above shown is the picture for managing the risk using agile method. The steps for managing the
risk using agile methods are given below:

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 27


SDLC 2022

 Identify the risk: The first and very important phase of risk assessment is to identifying the
risk. If we are able to identify what types of risk are we facing the we can take some action to
solve that risk.
 Assess the risk: The second phase of risk management is to evaluating the risk. We should
find the possible impact of that risk and how that risk can be managed.
 Respond: In this part we use different risk management tools for solving the risk.
 Review: This is the final step where we check either all risk is eliminated or not and if the
risk are still there then we again repeat the process of agile risk management.

Agile method risk management process for insurance company


According to the situation furnished on this project we're employed to broaden a software program
for the coverage company. For the improvement of the software program we are able to be operating
in agile major for the higher outcomes. While operating with any varieties of challenge we must face
a few shorts of threat with a purpose to create issue at the same time as growing our software
program. Before beginning the challenge, the primary factor that we must be worried is set the threat
management. As we're operating in agile we must be bendy sufficient to address any varieties of
threat. First with the aid of using developing prototype we will decide the viable threat which can
have an effect on our challenge like time trouble, layout trouble, technical trouble, etc. regardless of
the threat is we've to research that trouble and attempt to benefit greater expertise approximately that
threat. After reading we will paintings on that threat and resolve all the ones viable threat. After
fixing the threat, we once more must evaluate that threat so that you can make sure that every one the
threat is absolutely solved or not. The following given is the photograph which suggests how the
threat is controlled in agile.

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 28


SDLC 2022

Figure 9 Risk management

Development Environment
It is described as a fixed of tactics and gear which are used to increase a supply code or program.
This time period is now and again used synonymously with incorporated improvement surroundings
(IDE), that's the software program improvement device used to write, build, take a look at and debug
a program. They additionally offer builders with a not unusual place consumer interface (UI) to
increase and debug in specific modes. The time period improvement surroundings might confer with
the whole surroundings, which include improvement, staging, and manufacturing servers, while the
IDE simply refers back to the neighborhood utility used to code. Of course, there's a great deal
overlap as you operate an IDE for debugging simply as you operate a improvement server to take a
look at.

For the front give up part, I even have used the react.js for the software program of the coverage
company. ReactJS is an open-supply JavaScript library that is used for constructing person interfaces
especially for unmarried web page applications. It’s used for coping with view layer for internet and
cell apps. React additionally permits us to create reusable UI components. I even have selected
ReactJS for my challenge due to the fact the gear and capabilities of ReactJS allows to address the
coding and malicious program very easily.

For the improvement of the software program of coverage organization PHP programming language
is chosen for doing the backend. This language is used due to the fact with the assist of PHP you'll be
capable of create dynamic websites, net applications, and all varieties of cellular apps. It is used to

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 29


SDLC 2022

make the software program extra interactive and effective. The great IDE for writing PHP code is
PHP Storm:

PHP Storm:
The editor receives all of your code and deeply knows its structure, assisting all of the PHP language
capabilities for cutting-edge and legacy project. It presents the quality code completion,
refactoring’s, on-the-fly blunders prevention, and more. (Anon., n.d.)

 Platform(s): Microsoft Windows, Mac OS X, Linux


 Supported Languages: PHP 5.3, 5.4, 5.5, 5.6 and 7.0, HTML and JavaScript
 Price: USD 199 for the first year, Subsequent usage costs less.
 More Information: Code quality analysis, PHPUnit tests, GitHub.

Testing team
After growing any product, a committed crew is needed for trying out the product. For growing a a
hit venture, we want an awesome trying out crew. The trying out crew check the one-of-a-kind issue
of the software program and from that trying out they approve or reject the venture for publishing.
The hierarchy and roles need to be sincerely described and duties too need to be nicely described and
well disbursed among the crew members. When the crew is nicely prepared the paintings may be
treated nicely. If each crew member is aware of what obligations she or he has to carry out then they
may have the ability to complete their obligations as required nicely in the time limit.

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 30


SDLC 2022

Release team
After the software program for the coverage employer is applied and examined then now it’s time to
put up that product and the discharge of the software program is dealt with via way of means of the
discharge team. Beside freeing the product, in addition they reveal the distinct levels of the software
program improvement. For the discharge of the software program we've got were given engineers
who could be dealing with the discharge approaches for code via improvement, take a look at, and
manufacturing environments. The Release Manager Job feature works collaboratively with all
members in software program improvement tasks and is supportive of builders and testers as they
installation their construct dev/take a look at environments.

Different software development environment


A software program improvement surroundings (SDE) is an surroundings that automates or
augments the exercises worried in a software program improvement cycle. (Anon., n.d.)

Software improvement surroundings is split into following categories:

 Development environment
A developer writes their code withinside the improvement surroundings. The surroundings is
plenty smaller that the actual surroundings so it is faster to run their code and take a look at it
out. The developer can write their very own assessments and test for easy errors. The velocity
of trying out is vital here. In the alternative environments, code need to be incorporated with
the bigger code base that could take half-hour to approximately 2 hours relying on the
dimensions of the project.
 QA Environment
QA enables layout and manage the improvement method in a manner that forestalls extreme
troubles at some stage in the task. To make this happen, QA engineers paintings at the task
collectively with different group members (product owner, task manager, enterprise analyst,
and dev lead) during the entire software program improvement cycle. (Anon., n.d.)
 Staging stage
The improvement surroundings does now no longer permit the developer to look how nicely
their code works with all the different code withinside the system. That is why there's a
staging surroundings. The staging surroundings is a duplicate of the manufacturing (live)
surroundings however has faux consumer debts and data. This kind of trying out at the

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 31


SDLC 2022

staging server is the very last step earlier than the utility can be deployed on a manufacturing
server. The utility desires to be authorised in an effort to install it at the manufacturing server.
 Live/Production stage
Finally, whilst the developer is assured of their code due to the fact it is well-examined and
accomplishes the mission at hand, they'll positioned it withinside the production (live)
environment. That manner that the code may be utilized by the customers subsequent time
they open the internet site or replace their apps.

Selection of model for development environment


There are exceptional forms of version that may be used for the improvement of the assignment. The
choice of the version relies upon upon what forms of product, patron requirement and function we're
dealing with. We can expand any software or the assignment without problems and efficaciously if
the choice is the version is ideal and for you to pick the first-rate version for the assignment we have
to have whole information in each version then best we will pick the proper version in line with the
function of our software. For the improvement of the software program for the coverage corporation
the crew has determined to comply with the agile version of software program improvement. It is the
only technique of software program improvement. In this version the complete assignment is split
into small unit that is referred to as person testimonies. On the premise of person priority, the
testimonies are introduced to the product backlog. As all of the testimonies aren't connected with
every different so the improvement crew can paintings on that specific testimonies and this may
permit the stakeholder to feature the similarly testimonies as in line with their want for the following
sprint.

Business concept of insurance company


As we're going to construct the software program for the coverage organization, we need to
recognize the commercial enterprise idea of the coverage organization at very first. It makes deals,
takes actions, execute contracts, and supply merchandise and services. The important commercial
enterprise idea of the coverage organization is to deal with the price-priced coverage product with
the goal place and to offer the fine of services. By specializing in its strengths, its gift consumer base,
and new price priced merchandise withinside the subsequent year, Insurance plans to growth gross
income via way of means of 10% and income via way of means of 15%.

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 32


SDLC 2022

Agile method for insurance company

According to the state of affairs supplied on this


challenge we're employed to expand a software
program for the coverage company. For the
improvement of the software program we can be
running in agile predominant for the higher
outcomes. While running with any styles of
undertaking we must face a few shorts of chance
so one can create issue whilst growing our
software program. Before beginning the
undertaking, the primary component that we
ought to be involved is ready the chance
management. As we're running in agile we ought to be bendy sufficient to deal with any styles of
chance. First via way of means of growing prototype we are able to decide the viable chance that can
have an effect on our undertaking like time difficulty, layout difficulty, technical difficulty, etc.
regardless of the chance is we've to research that difficulty and try and benefit extra information
approximately that chance. After reading we are able to paintings on that chance and resolve all the
ones viable chance. After fixing the chance, we once more must overview that chance in an effort to
make certain that every one the chance is absolutely solved or not.

Advantages

 It provides full satisfaction to the customer.


 It helps to save the project time.
 It is very suitable for changing environment.
 Continuous feedback from client.

Disadvantages

 Difficult to manage the documentation.


 Need more experience and skills.
 More risk of maintainability and sustainability.

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 33


SDLC 2022

Merit of Waterfall model with reference to current context


Waterfall model
Waterfall version of software program improvement is one of the oldest fashions which could be
very clean to apply and understand. This version follows stepwise system of software program
improvement i.e. when we whole the primary segment then we pass to 2nd segment and after the of
of entirety of 2nd segment we pass to subsequent segment and so on. We can't usual any step. We
need to observe the sequential order. (Anon., n.d.)

Figure 10 Waterfall model

The sequential levels defined withinside the Waterfall version are:

 Requirement Gathering- All feasible necessities are captured in product requirement


documents. (Anon., n.d.)
 Analysis Read - the requirement and primarily based totally on evaluation outline the
schemas, fashions and commercial enterprise rules. (Anon., n.d.)
 System Design -- Based on evaluation layout the software program architecture. (Anon.,
n.d.)
 Implementation Development of the software program withinside the small devices with
useful checking out. (Anon., n.d.)
 Integration and Testing Integrating of every unit evolved in preceding section and put up
integration check the whole machine for any faults. (Anon., n.d.)
 Deployment of machine - Make the product stay on manufacturing surroundings in spite of
everything useful and nonfunctional checking out completed. (Anon., n.d.)
 Maintenance Fixing troubles and launch new edition with the difficulty patches as required.
(Anon., n.d.)

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 34


SDLC 2022

Example with context of insurance company


Allow us to take an Example of creating a software program for an coverage company. This is a
small software program to be able to offer diverse types of centers to its client. The software program
is advanced the usage of waterfall version and it require much less time to advanced.

 Requirement Gathering and analysis: All the consumer necessities approximately the
software program is accrued and put together a SRS document. Requirements like there's one
registration page, one login page, person profile page, offerings and centers view page,
carrier buy, Billing. All the necessities are clear, documented and properly understood.
 System Design: What sort of programming language Hypertext Preprocessor, java
or .internet or what sort of database is used to increase the internet site is deliberate on this
phase. Let’s do not forget that we've used react.js for frontend and Hypertext Preprocessor
language for backend development. Also for database we will use MySQL.
 Implementation: Once the programming language is finalized the coding is beginning in the
Implementation phase and small units are prepare like all the pages are coding one by one.
 Testing: All the pages are incorporated or linking with every different and acting machine
checking out to test the capability of the internet site it's far in keeping with the consumer
requirement or not.
 Deployment: Once the software is completed it is deployed in the customer system for the
acceptance.
 Maintenance: If any issue is come after deploying the software then patches are released to
resolve those issues.

Merits of applying waterfall model to design the software of insurance company


The waterfall model of software development is one of the oldest models that is very easy to use and
understand. This model follows a step-by-step process of software development, i.e. after we have
completed the first phase, we move to the second phase, and after the second phase is completed, we
move to the next phase, and so on. In the waterfall model, it is very easy to complete the project,
since in this model all requirements are collected right at the beginning of the product and then
processed accordingly. The result of one phase becomes the input of another phase. There are two
types of waterfall models. One is a classic waterfall model and another is an iterative waterfall
model. The main difference between these two is that in the classic case there is no feedback path. If
the problem occurs during the test because of the design part, we cannot go back to the design part

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 35


SDLC 2022

and fix the error, while in the iterative waterfall model we can go back and fix the error. Some of the
advantages of the waterfall model for a large software development project are explained below:

 Use clear structure


In the waterfall model of software development, the plan for each development phase is easy
to understand. The waterfall model gives the clear structure like no other model for software
development. When the task of the first phase is completed, completing the first phase
becomes the entry of the second phase. It also has a clear structure because if a bug occurs in
one phase we cannot move on to the next phase until that bug is fixed, which allows us to
provide help on large software development projects.
 Determines the end goal early
With software development based on the waterfall model, it is easy to determine the goal of
the project at an early stage. In the waterfall model, we cannot add any further functions after
the project has started. After all the requirements are met, it is not difficult to predict the end
result of the project. For the larger product, we also first clearly close off a phase and then
move on to the next phase, which also helps determine the outcome of the end product.
 Transfer information well
Because the waterfall model is a step-by-step process of getting things done, it's easy to carry
the information through at each stage of the project. First we get the clear customer
requirement so that the plan for each phase is already drawn up. When we do larger projects,
we can easily transfer the information. Since larger projects take longer to complete, the new
member will have no problem understanding the project if a member leaves the team.

Problems/Disadvantages:

 This version isn't always acceptable for complicated and larger assignment wherein
requirement adjustments regularly and chance issue is higher.
 This version additionally now no longer properly for ongoing projects.
 Customer interplay is much less and it can not undertake the adjustments in device
requirements.
 This version calls for greater documentation which isn't always appropriate for massive
projects.
 Customer comments handiest on the cease of the product.
 Small extrade makes lot of troubles withinside the development

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 36


SDLC 2022

Example: Let's take an example of creating software for an insurance company that includes many
services and facilities. Creating software for an insurance company is not an easy task because it
takes a lot of time and hard work. We have to deal with different legal guidelines and new changes.
It is also not possible to capture all requirements of all services and facilities at once. So developing
software for an insurance company is not that effective.

When working with the larger project, there are many factors that we should pay attention to such as
the features, requirements, and various functions. As with the waterfall model, the functions of one
phase are completed and then we move on to the next function so that all the requirements and tools
are first completed to set the time and budget of the project. There are many large projects that
follow the waterfall model and they are never out of date because the developers also develop the
product with future requirements in mind. So, there are many advantages to using the waterfall
model for the big projects.

Conclusion:
In this part I have written about software development methods including sequential and iterative
model. And described about DSDM, product back log, benefits of agile and risk involved in each of
the models and how the risk can be mitigated /managed in each model and risk management on
spiral model.

Part-2:

Question:
Assignment Task -Part 2

1. You are required to produce a documentation that explains the purpose of the feasibility report and
describe how technical solutions can be compared.

2. Prepare a brief report discussing the components of the feasibility report.

3. Carry out the feasibility study as per the best of your previous research work against the solution
to be developed for the given problem and assess the impact of different feasibility criteria on the
software investigation.

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 37


SDLC 2022

Introduction
In this part I was asked to prepare and explain the feasibility report along with explaining the
purpose of the feasibility report. Then the technical solution has to be explained and the comparison
between the technical solutions has to be asked for. We need to make a detailed report on the
components of the feasibility study. Finally, we have to carry out the feasibility study on the basis of
our previous task and evaluate the influence of various feasibility criteria on the software
investigation.

Feasibility report
The feasibility report is the process of documenting the analysis of the various factors such as
technical, economic, legal, operational and timing factors that are responsible for planning and
developing projects. In the feasibility report, we mention the tools, budget, and other resources that
will be helpful to us in completing each project. In the feasibility study we also analyze the risk and
other legal information about the project and with the help of the feasibility study we start working
on this project. (Anon., n.d.)

Types of feasibility report:


Technical feasibility
All of the different things that make a system work, such as its applications, its availability, its
facilities, and its resources all contribute to the pre-check for technological viability. Even though
the company has the money, it still needs employees to help with the selection process, to work on
the projects, and to be able to work on other projects too. Technical aspects, such as software
development, are important and should be studied before action is taken. (Anon., n.d.)

Economic feasibility
We'll begin with something that's already well-known. Yes, the cost is the first consideration
whenever we contemplate any project. Besides the amount of money in the business, there is also
the cost of support when needed. Additionally, one must be educated on the total cost of the project,
including any additional fees or costs that may arise. A project's design must be able to account for
unexpected occurrences, like these. If costs become an issue, not only will progress be slowed and
money that has already been spent will be wasted, but the planning and construction phases will also
take longer. (Anon., n.d.)

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 38


SDLC 2022

Legal feasibility
In project management, this kind of analysis is very important because it helps with effective
management of projects. Each country's legal framework must be able to support the project. The
company has rules about data protection and social media, but these are not the only things that have
to be met. Some places have different types of work that you can do. In order to avoid legal trouble,
it is important to think about all of these legal options before starting any project. (Anon., n.d.)

Operational feasibility
If the project proposal does not match the requirements, it will be necessary to conduct an
operational feasibility study. Researchers try to determine whether or not a project is likely to
succeed. In this research, a check is made to see whether the intended system is capable of solving
all of the challenges. Will the game meet the criteria that were established during the pre-production
phase of the project? (Anon., n.d.)

Scheduling feasibility
Among the types of feasibility studies, the timeline check is the most important. It's critical to know
if the project can be completed on time. If the project is to be completed within the time frame
agreed upon, it must be done so with equal care and attention to detail. Planning a completion date
can only be done meticulously if this feasibility is recognized.
(Anon., n.d.)

Purpose of feasibility study


 To define the potential solutions to the defined problems or needs
In the feasibility study, we discuss the possible risks and threats that may arise in the project
and also create a risk plan to overcome the identified risks. It helps to point out the area in
which the problem arises when developing software. (Anon., n.d.)
 To explore the different markets and targets audience
Exploring different markets and target groups is another purpose of the feasibility study. The
customers or the target audience may have different requirements for their software and all
of these requirements are included in a feasibility report. (Anon., n.d.)
 To prepare final draft of the project
In the feasibility study, we create documents on all the requirements of the project. Hence,
the team members working on this project know everything like budget, time, requirements,
requirements, etc. Because of all of these requirements, the final draft of the project can be
easily made. (Anon., n.d.)
 To explore the price of the project that the targeted audience is ready to pay

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 39


SDLC 2022

The feasibility study will help estimate the budget for the required project. From the
feasibility report, we know the cost of the various resources responsible for completing the
project. Sometimes after the project is complete, the customer will negotiate to cut costs. If
the feasibility report is drawn up, such a situation can be avoided. (Anon., n.d.)
 To assist the management in implementing the desired system
The feasibility report helps to get all the necessary information of the project so that the plan
of each move is known, which helps the management in the implementation of the desired
system. In the feasibility study, the result of each task is also taken into account so that the
client can also see how the project is going. (Anon., n.d.)

Benefits of Feasibility study:


A feasibility study allows you to see your ideas from the outside, thus helping you prepare for the
worst. While launching a new project or concept may seem like a wonderful idea at first, this
analysis will ensure that your idea is viable and fits inside your present business structure. In order
to produce useful information, it must be done objectively and impartially. A project manager may
search for things that slow down the progress of a project and decide whether to take it on. We
sometimes do research to figure out what others want and what they are willing to pay for. A good
feasibility study would typically look at a variety of topics. This process examines a company's
resources to ensure they can achieve their goals and the market to ensure they get more out of their
investment. To undertake a feasibility study, it needs demand, an investment strategy, and a
marketing plan. Almost any industry can practice this. Studies about feasibility may help you make
important company judgments. (Anon., n.d.)

Recommendation
This way, a feasibility study always helps us during the project. The main purpose of the feasibility
report is to find out if it's worth it, and if the report shows a negative result, it offers a chance to get it
right before we invest our time and money on the project. It shows us the various potential risks in
this project so that we can mitigate them first before they become major problems. Not only does it
tell us to remove the project ideas, it also identifies the reasons not to continue the project so that we
can be clear about those reasons in the future. In creating insurance software, our group helped
expand existing services, build or remodel facilities, change operating procedures, add new products,
etc. This way we can use the feasibility study during our project for insurance companies to
understand something about our project, so I recommend others to use this when starting their project
as well.

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 40


SDLC 2022

Technical solution
Technical solution refers to all software requirements necessary to design, develop and implement
solutions. The technical solution of a software project includes hardware, software, programming
language, development team, etc. The technical solutions differ depending on the project. The
technical solutions can be applicable to any product and are therefore seen as very important in the
field of software development. (Anon., n.d.)

Comparison of technical solution


The technical solutions can be compared on the basis of following points:
 Performance
When comparing technical solutions, performance plays a decisive role. First, various
solutions for the respective problem are presented and the best solution is selected from
them. For example, the insurance company has a financial transaction problem and they need
an accountant to solve this problem so they will post the ad and there could be many
candidates for the position. From all of these candidates, the insurance company selects the
best candidate based on his or her performance.
 Budget
The budget is very important for any project. The first thing we look for when comparing the
technical solutions is the budget. When the budget for a project is low, product quality
cannot be delivered. Whoever is developing this project cannot buy new technology and the
needs of the staff cannot be met with the small budget work that affects the overall project,
but when the budget is high, new technologies, requirements and resources can be used and a
better software can be made.
 Efficiency
In terms of efficiency, we look for the level of performance that enables us to achieve high
levels of performance with the least amount of effort. When developing software or dealing
with problems, we have to look for an efficient solution. For example, in an insurance
company, we need to keep many people's records. We can keep a lot of employees for work
or we can simply look for the efficient solution and create software that helps to store the
records digitally.
 Automation
Automation is the technology that ensures and monitors the delivery and production of
various goods and services. In insurance companies, the pen and paper presence of the

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 41


SDLC 2022

employee is not effective as they can defraud the company by their fake presence. Because
of this, we can say that the insurance company uses automation to help compare the
technical solution.
 Elimination of human error
When solving a problem, there should be no human error in the technical solution, since
difficulties can arise in technical solutions if the human errors are not eliminated. As a result,
insurance companies need to use various advanced software and digital machines to reduce
human errors like putting multiple values in a single file, misplacing data, and so on.
The technical solutions are also compared on the basis of different feasibility report which is
tabulated in the following table below:

Feasibility Need outcomes Solution

Technical feasibility Hardware components It includes different hardware


Developer team components like PC, servers, etc.
Selection of programming Along with that we need to specify
language the programming language and also
the selection of team needs to be
done.

Economic feasibility Cost of hardware, software, All the technical cost and the staff
staff, team member, cost needs to be included.
maintenance, etc.

Legacy feasibility Copyright information In this feasibility copyright


information, data protection act like
Legal policies
encryption, biometric, etc. and the
Data protection
legal policies needs to be followed.

Operational feasibility Project should operate with We will be able to operate project
full features. according to features.

Time schedule Project deadline The project needs to be completed


feasibility within the given time period.

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 42


SDLC 2022

A report on components of Feasibility Report

Submitted by: Samir Gurung


Submitted to: CEO of Insurance company

Components of feasibility report


The feasibility report aids in the evaluation of a project`s feasibility. The term "feasibility report" is
also used to refer to a feasibility study. Feasibility studies are used to determine whether a project is
technically feasible, expense, and legally acceptable. Furthermore, the feasibility report helps to
show the different problem with its location which is occurred in the software.

All the solutions for the problem are explained showing the economic, operational and technical
feasibilities. Economics refers to costs that include all costs such as hardware costs, labor costs, and
operating costs. Technical feasibility examines how the solution is integrated into an existing
structure, and operational feasibility examines how the solution is integrated into an existing
operation. It looks at the focus of business opportunities and the different paths they can take. It can
be used for various projects such as system development and software development. Its components
are:

 Introduction

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 43


SDLC 2022

The first part of the feasibility report is an introduction in which we discuss the project. For
example, if we want to check the feasibility of software for insurance, we first introduce the
software and discuss the services that are used in the software.
 Purpose
After introducing the software program, now we've got to say the reason of the software
program. Why we need to increase this software program and what are the capabilities that
desires to be protected withinside the software program. For example, if we're growing a
software program for our coverage enterprise then first we want to look at the reason of that
software program. We must consist of all of the capabilities that may be useful for the
coverage enterprise.
 Methodologies
Now that the purpose of the project has been defined, we need to discuss the methods that
will be useful in developing this project. For example, when developing software for the
insurance company, we need to study the functions of that software and, based on the type
and demand of the software, we need to select one of several methods such as spiral mode,
waterfall model, prototype model, etc. For the better result of the software, we need to use
the choose the best methodology.
 Background history
Another important part of the feasibility study is the backstory. Before developing a project,
we should know the backstory we are developing for and the reason for developing it. For
example, when developing the software for the insurance company, we should collect the
background of this company so that we know which function is important for the company
and must be included in the software.
 Document structure
We must have well-organized and up-to-date documentation for any project. It is a critical
component of the feasibility report. For example, when working on a software development
project for an insurance company, we should have well-documented files to help guide the
project and complete it on time.
 Intended audience
The project should be completed taking into account the satisfaction of the intended
audience. Every project is designed and developed so that people can use its services. For
example, we create software for the insurance company, so we need to study the

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 44


SDLC 2022

requirements and needs that the audience in that insurance company desires, and after doing
the research, the software should be designed in the same way.
 Feasibility criteria
When developing any project or application, feasibility is critical. The feasibility study
includes a variety of criteria such as technical feasibility, economic feasibility, operational
feasibility, legal feasibility, and others. When developing software for an insurance
company, we must consider all of the feasibility criteria, such as technical feasibility, which
determines the hardware components, economic feasibility, which determines the cost of
resources and salaries, operational feasibility, which determines the working operation, and
so on. All of these feasibility criteria must be met before developing software.
 Outcome
The developer should be aware of the results when developing software. After the project is
completed, bugs can be left in the software that cause problems for the entire system. For
example, if there is a bug in the software, the information from the insurance company could
be lost. When such a problem occurs, it has a negative impact on the insurance company.
Therefore, the team responsible for developing the software should be aware of the result.
 Possible alternate solutions
We don't know when our software will fail, or when we will run into problems as a result of
it. The project's developer should be aware of the results so that they can manage an
alternative solution if a problem arises in the software. For example, we can devise a backup
strategy to safeguard the insurance company's data.
 Evaluation criteria
An assessment is necessary to find the strengths and weaknesses of the product. In these
evaluation criteria, we evaluate the proposal, the alternative solution, the performance, etc.
so that we can achieve our goals and objectives. Evaluation helps develop the software very
effectively, as evaluation helps measure the difficulty, risk, and planning of software
development.
 Feasible solution
The developer should be able to come up with a workable solution in the event that a
problem arises because the problem must take a long time to resolve. If the solution is
developed for a shorter period of time, it will be very ineffective because a temporary
solution will create big problems in the future. So a workable solution is necessary to solve
the problems.

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 45


SDLC 2022

 Conclusion and recommendations


The conclusion and recommendation are the final components of the feasibility report. We
should always provide some recommendation and suggestion as a conclusion after
completing any application or software because it helps the user understand the features of
that software. These suggestions will also assist us in the future in resolving some errors. As
a result, recommendation is crucial in the software development process.

Conclusion
Here, I have described about components of feasibility report in detail. The primary goal of
feasibility report is to assess and prove the economic and technical viability of the business idea. The
components include purpose, structure, intended audience, criteria of feasibility study and outcomes.
The feasibility report helps to show the different problem with its location which is occurred in the
software.

Impact of feasibility criteria on software investigation


Feasibility study
Feasibility study is the analysis that checks whether the conditions for the implementation of a
project are right or not. It is used to measure the ability of the project. In the feasibility study, we
look for various components such as hardware components, costs, legal issues, operating costs,
salary, time frame, etc. The main goals of the feasibility study are to find the perfect way for
software development. Through feasibility studies, we can find out whether the software can be
implemented with the respective hardware, software components and within the given budget or not.
(Anon., n.d.)

Feasibility Study’s report for the given project


I am told to conduct a feasibility analysis on the project. Because of this, I began my investigation,
which led me to my conclusion.

The primary objectives of a feasibility study are as follows:

a. To assess if a project is viable and worth pursuing after considering all relevant considerations.
b. To get a complete understanding of all aspects of a project, concept, or plan.
c. To become aware of any potential difficulties that may arise throughout the project's
implementation

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 46


SDLC 2022

1. Technical impact:
Working team resources are checked for their suitability. Can the tech team transform the concept
into a working system? Technical feasibility covers the technical aspects of a system, such as the
machines needed to build, install, and operate the system. This includes hardware and software
evaluations. By studying the technical factors of a project, you can learn about all the technical
issues, available technologies, other technical issues, and possibilities of a software development
project. During a system investigation, you can compare existing technical parts of the system with
new technologies that will soon be implemented in the system. Therefore, the technical feasibility
study introduces some changes to the technical aspects of the project, leading to the technical impact
of the project. (Anon., n.d.)

 Hardware requirements

 CPU: Intel or AMD processor with 64-bit support; Recommended: 2.8 GHz or faster
processor

 GPU: NVidia GeForce GTX 1050 or equivalent; Recommended: NVidia GeForce GTX
1660 or Quadro T1000

 Disk Storage: 4 GB of free disk space

 Monitor Resolution: 1280x800; Recommended: 1920x1080

 Internet: Internet connection required for software activation

 Media : sound card with face Cam .

 Software requirements

OS: Windows 7 with SP1; Recommended: Windows 10

IDE: Notepad++, visual studio, MySQL

Multimedia : word processor , IDE, Designing tools

Impact of System Investigation

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 47


SDLC 2022

Working team resources are checked for their suitability. Can the tech team transform the concept
into a working system? Technical feasibility covers the technical aspects of a system, such as the
machines needed to build, install, and operate the system. This includes hardware and software
evaluations. By studying the technical factors of a project, you can learn about all the technical
issues, available technologies, other technical issues, and possibilities of a software development
project. During a system investigation, you can compare existing technical parts of the system with
new technologies that will soon be implemented in the system. Therefore, the technical feasibility
study introduces some changes to the technical aspects of the project, leading to the technical impact
of the project. (Anon., n.d.)

Alternative Solutions for Problems

We can run into problems anywhere during the development of the system, such as during the design
phase, development, testing, etc. Therefore, we need alternative solutions in case problems arise
during development. If there is a problem with the workforce on the development team, new
members are quickly recruited and the development process continues. If we encounter a problem
related to hardware and software, the hardware backup files will be sent to another computer and if
the software has crashed or any other problem occurs, we will renew that software.

1. Economic criteria:

This includes the project budget. Here we look for the cost of all the resources and manpower
required to complete the project. We can judge the effectiveness of the projects according to
economic criteria, because a high budget has better options than a low budget. If a small amount of
money is used in relation to the budget, the software is considered feasible; However, if the amount
of money invested exceeds the specified budget, the software is deemed to be unworkable. Technical
components, staff salaries, resource costs, and other expenses are all included in the budget. In our
ecommerce site scenario we have a software development cost limit of 32,000 which is very low but
the project we are working on requires a lot of hard work as it is a large project. Because of this, we
have spent the money very carefully by making certain plans. (Anon., n.d.)

Impact on the system Investigation:

Students are concerned about the effects of economic feasibility in educational institutions. It aids in
determining viability, making decisions, and determining positive economic benefits. The economic
impact of any project aids in maximizing its benefits. It also aids in calculating the net change in the
host economy, i.e. cash inflows and outflows. Students are concerned about the effects of economic

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 48


SDLC 2022

feasibility in educational institutions. It aids in determining viability, making decisions, and


determining positive economic benefits. The economic impact of any project aids in maximizing its
benefits. It also aids in calculating the net change in the host economy, i.e. cash inflows and
outflows. (Anon., n.d.)

Alternative Solutions for Problems

We can run into many problems while developing the system, such as during the design phase,
development, testing, and so on. As a result, we need to have some budget-friendly alternatives in
case problems arise during development or at any other stage. While conducting the feasibility study,
I calculated a total budget of $25,000, while the allocated budget is $26,000, allowing us to use
another four laces in the event of an emergency. We can also use the remaining $1,000 to hire more
programmers or purchase backup hardware and software if we need to complete work quickly or run
into hardware or software problems.

2. Operational criteria
It defines how the system works and interacts with people. We study how the software interacts with
people to solve the business problem and meet the user requirements in these criteria. In performing
the operational criteria, we determine whether or not the problem has a higher priority in the user
requirements, and whether the problem has a higher priority than whether or not the alternative
solution of the software development team satisfies the user. With these factors in mind, I developed
the software for an e-commerce site and implemented a powerful server that can handle a high
volume of work. Since this software is intended for a large number of users, I make sure that it runs
smoothly and without errors. Based on this criterion, we can determine whether there will be
resistance from users affecting the potential application benefit, and whether it will provide us with
inexpensive information services for the business that will positively affect the system investigation.
This enabled me to document my feasibility study from my research into developing an e-commerce
site system. In the documentation above, I also assessed the effects of various feasibility criteria on
the software investigation. (Anon., n.d.)

3. Legal criteria
The legal feasibility of the proposed system will determine whether it complies with legal
requirements such as the local data protection regulation that should be created with the data
processing system. The software should be developed in accordance with the legal development
rules. The software should be unique. It is not acceptable to pirate software. The project must be

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 49


SDLC 2022

acceptable under the law of the country, which is governed by the government. If the project deviates
from the government's guidelines, it will lead to major problems in the future. (Anon., n.d.)

4. Time criteria
Check out how long it took to complete the software project here. The main objective of this project
is to check that the project deadline is reasonable enough to ensure that the project will be completed
on time. Many different developers are not concerned about the project deadline they give the client
and as a result the project does not get completed on time. If the project is completed before the
deadline, this has no effect on the project; However, if it is completed after the deadline, we will
incur various losses. We were hired to develop software for a company that runs educational
institutes. The project itself was a large project and the deadline for completion was 7 months, which
was insufficient for such a large project to be completed. However, my team and I developed a
strategy and worked together to complete the project in 6 months and 6 days. In this way, our
feasibility study helps us to use our time optimally and to steer the project in a positive way. Effects
on the system investigation. (Anon., n.d.)

Alternative solutions for the problem

We encountered various problems while developing the system, such as during the design phase,
development, testing, and so on. As a result, we need to have some alternative solutions for
scheduling if problems arise during development or any other stages. When I was doing the
feasibility study, I only gave a time frame of five months and five days so that if anything goes
wrong, we can use another 25 days to fix the errors and finish the project on time. Furthermore, if
our task is not completed within the specified time, we will negotiate with the company, as we
believe in delivering a high-quality product to our clients, and this time should not cause any issues.

Conclusions:
In this article I have described the feasibility study, its types, and the different purposes of a proof of
concept. I also talked about the technical solutions used in project management and compared these
technical solutions. I explained the components of a feasibility study and then carried out a software
feasibility study for the educational institute company. At this point I made it clear that the feasibility
study is crucial for the software development process

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 50


SDLC 2022

Part 3

Question:
Assignment Task –Part 3

1. Undertake the software investigation to meet the business need using appropriate software
analysis tools/techniques to carry out a software investigation and create a supporting
documentation. You may submit this task in the form a report structured with background
information, problem statements, data collection process and summary etc. In order to carry
out the systems investigation you are required to identify the stakeholders, identify the
requirements of the client, specify the scopes like inputs, outputs, processes and the process
descriptors, consideration of alternative solutions and security considerations and the quality
assurance applied. You are also required to identity the constraints like costs, organizational
policies, legacy systems, hardware requirements etc.
For software analysis you may use the following tools:
 Data Flow Diagram up to second level
 Entity Relationship Diagram
2. Reference to your task above that required some level of intensive research work analyze
how software requirements can be traced throughout the software lifecycle.
3. Discuss different approaches to improve the software quality and considering the above
context discusses the two approaches that can be applied at this context to improve the
software quality.
4. Evaluate the process of undertaking a systems investigation with regards to its
effectiveness in improving software quality. Support your ideas with reference to the tasks
you have done

Introduction
In this part we are asked to do the software investigation so that the business needs can be met using
software analysis tools / techniques. In order to carry out this investigation, we were asked to identify
the stakeholders, to identify the requirements of the customer and to specify the areas such as input,
process and output as well as the process descriptors, the consideration of alternative solutions and
security considerations as well as the QA applied. We can use data flow diagrams up to level 2 and
ER diagrams to analyze the software. Then we need to analyze how the software requirements can be

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 51


SDLC 2022

tracked over the entire software lifecycle. Two different approaches must also be used to improve
software quality, and finally the functional design paradigm must be applied.

Report on Software Investigation of the Insurance Company

Submitted by: Samir Gurung

Submitted to: CEO of Insurance Compnay

Scenario:
As the current system of the company is mainly handled by the development team of the company
but the company want a fresh approach for the new system and the in-house and our IT developers

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 52


SDLC 2022

will work together to lead the project. Also, our task is to update the in-house team on the
developments in new methodologies used to analyze systems.

Current system:
Current system refers to a System during a Current System Group subject to a topic Fund that a
Borrowing Notice is being delivered to the executive Agent. (Anon., n.d.) Because the current
system evidently requires reform, it's critically important to know the facts and to understand the
impacts of varied policy options. However, much less thought seems to possess been given to the
way to transform the present system into the system envisaged by the reform. The reform proposal
improves on current system, almost like the baseline simulations. we discover that the present system
is progressive but inefficient within the sense that it introduces gross price distortions leading to
deadweight loss. These issues require capabilities beyond the scope of our current system and our
grading infrastructure, which is geared to concise answer phrases. (Anon., n.d.)

Software Investigation for Insurance Company


It will be important to refresh or develop another framework to reflect changes by they way it will
attempt to monitor customer requests about data and acquisition of its labor and products, and
recording claims, and so on Utilizing the right programming examination apparatuses and strategies,
I will do a product examination and review supporting documentation to meet the business need. We
want to know who the partners are, what the customer needs, what the degree is, the thing that the
information, cycle, result, and interaction descriptors are, the means by which to contemplate an
elective arrangement, and how to do QA to lead this examination. We can utilize an information
stream outline up to even out 2 and an ER graph to discover how the program functions. Then, at that
point, we should analyze how programming necessities might be followed all through the product
advancement process. Likewise, there are two procedures to work on the program. At long last, it's
an ideal opportunity to go to useful plan. Moreover, the firm will give a lot more extensive
assortment of labor and products to fulfill the needs of the overall market. Clients will purchase
things in an assortment of monetary forms, and the insurance agency's new framework should
represent moving cash transformation rates.

Requirement gathering:
Requirements gathering is that the process of determining what your projects got to achieve and what
must be created to form that happen. We are very conversant in the very fact that everyone has their
own common project assumptions about what a project should include. Through requirements

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 53


SDLC 2022

gathering, you collect insights from a project’s stakeholders to urge an adequate grasp on how a
project should work — before you begin the work. (Anon., n.d.) Project requirements are generally
split into two categories:

Business requirements: What the project should do. You’ll also hear these mentioned as “functional
requirements.” (Anon., n.d.)

Technical requirements: How your project will fulfill business requirements. You’ll also hear these
mentioned as “nonfunctional requirements.” (Anon., n.d.)

Identification of the Stakeholders


A stakeholder is a person or organization with an interest or interest in something, especially in
business. The activity of the stakeholders determines whether a company succeeds or fails. These
candidates have a significant and confidential influence on the company. As a result, in this software
study, we will identify the stakeholders in the e-commerce business. The organization's stakeholders
are: (Anon., n.d.)

Investors

Investors are the people who put the money into various business developments in hopes of getting a
financial report. They spend their money to make a profit in the future. Our educational institute also
has investors who have put their money into the development of the company. (Anon., n.d.)

Board of Directors

It defines the team chosen by the stakeholders according to the needs of their business organizations.
You are responsible for handling the activities that are carried out in the organization. The chairman
of the board is well known as the chairman directs the whole role of the whole team. (Anon., n.d.)

Employees

The hard work and dedication of employees are responsible for the productivity of the company.
Employees can be part-time or full-time. They all work together to provide services to the company
in exchange for a financial reward. (Anon., n.d.)

Clients

The company's success is determined by customer satisfaction. Customers are extremely important to
the company's success. There are many different customers in our company who pay a certain

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 54


SDLC 2022

amount of money or use the various services of the institute, and thanks to them the company runs
smoothly. (Anon., n.d.)

Suppliers

It is defined as an employee who is responsible for delivering goods and services to customers. You
are responsible for promoting the company's business. Suppliers refer to those who bring a customer
into the educational institution or company for the benefit of the business. (Anon., n.d.)

Identification of the requirement of the client


The requirements of the company are given below:

 The system must give alternative offers and the company's status report to the client.
 The client should be able to access their information as well as the outstanding amount in the
system.
 Clients should be able to make advanced payments through the system.
 Clients should be able to pay the premium or due amount through the system.
 When the deadline for payment has passed, the client should be contacted.

Some other basic requirements of the client are given below:

 User-friendly: Separate logins for administrators and regular users are a good idea.
 Retrieval: New users in the system must be given suitable instructions.
 Data storage is quick: Client data must be saved in the software.
 Sun Microsystems’ Java Runtime Edition: The software needs to be able to interface directly
with the client's bank.
 Attractive design: Customer service should be provided 24 hours a day, 7 days a week.
 Operating system (Windows, Mac OS X, or Linux): The program must provide an online
service for the organization.

Identifying constraints:
While developing the software the developer should look for the following constraints:

Cost: The number of devices required for design and implementation will be considerable. For a
well-functioning network system, we need to include a variety of devices depending on user needs.
Now you need a modem, a database, a variety of servers, and connection cables. This leads us to a
wider range of accessories.
Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 55
SDLC 2022

System Estimated cost

1. For Admin $ 1200


2. Hardware and Software
$ 600
3. Operation and maintenance
4. Networking Devices $ 400
5. Consultant cost
$ 250
6. Internet, electricity and other stuff
$ 500

$ 300

This is the estimated cost of development process.

Organizational policies: These are the organization's guidelines for defining the public interest and
social concerns in action and decision-making. It sets the terms and conditions of the organization
and prevents stakeholders from violating the norms and values of the company. This prevents users
from taking ownership of the company without first obtaining permission from the company owners.

Legacy System: We should think about updating and modifying the software system in this
system. The update process uses this legacy system to improve the available features and functions.
The system version is updated in the legacy. Older systems may require additional layers of
compatibility to facilitate device functionality in incompatible environments. The new system has
been designed so that both the new system and the older system work together and are compatible
with each other. Version control is also implemented in this legacy system. Git is a version control
system.

Hardware Requirements: The system was developed for hardware such as PCs, laptops,
MacBooks and cell phones. It is compatible with mobile platforms like Android, iOS and Windows
Phone. Computers can use software. PCs, laptops, MacBooks, storage disks, and other hardware
were required to build the system. The following hardware components are required to run the
software.

For Windows users,

 64-bit operating system


 Run in windows 7 and the above versions

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 56


SDLC 2022

 2GHz processor
 RAM: 4GB
 Hard Drive: min 32 GB

For Mac users-

 An intel core 2 Duo, i3, i7, or Xenon processor


 Hard Drive : min 32 GB
 RAM: 2GB

Specification of Scopes
A project's scope refers to the project's aims and objectives, as well as its cost, features, and
timescales. It is vital to specify the scope of a project before beginning it since this helps us to clearly
identify the project. It defines which elements should be included in the project, how complicated the
project should be, and how much it will cost. The e-commerce site software budget is £700,000, and
it must have a variety of features in compliance with the company's policy. The scope of the software
also dictates which devices it will run on and how it will be handled.

Input, output, Processes and the Process description


Input refers to the information and data that are given to the computer, where they are processed and
shown as output. While a process is essentially a unit of time, a process descriptor is a set of data that
specifies the sequence in which resources are distributed to it. For logging into the e-commerce site
software, the username and password are entered. The admin can access the policy, offer,
documents, and so on if the username and password are the same, while the other user can see the
admins' output. For more detail, I've provided the e-commerce site software's input, process, and
output table below:

S.N. Description Input Process Output

1. Login Input the Checks whether If the username and Login session
username, and the information password matches was working
password for the username with the database then successfully
and password the page will be
matches or not. shown otherwise alert

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 57


SDLC 2022

message will pop out.

2. Logout Press logout Check the If logout button is The logout


connection with pressed then it will was
the link. close the entire login successfully
page and redirect to done.
login page.

3. Premium Amount of the Checks the code If all the details are, Payment
payment money and the of the card and correct and the card receipt is
account detail the policyholder number matches with displayed in
needs to be fed. name. the bank account then the software.
only premium can be
purchased.

4. Track of Software system Checks the If we saw the Software is


customer have to keep connection information then, the able to keep
enquiries. track of between the Connection in track of
customer customer’s between customer’s customer’s
enquiries about database, database, customer information.
information and customer needs, needs, customer’s
purchase of its purchase of the information and
products and product and purchase of products
services, and services. and services, and
making claims making claims
etc. requires well is done.

Consideration of alternative solution


The use of software will benefit the company's e-commerce site in many ways. There are many
advantages to using software in an e-commerce environment, but there are disadvantages with
advantages, so it is always better to have a backup plan in place. The software may not be a good
idea at the beginning of the business because it takes a lot of money to develop and even if we do
develop it it will be difficult for the customer to use a website. The website can also be designed to
be responsive, and we can incorporate all guidelines and functions of the educational institutes into

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 58


SDLC 2022

it. In addition, it is compatible with all devices and we can update the company's features and
information, making the website the best software alternative.

Security consideration
The process of protecting critical information from internal and external threats and from the various
malicious and unintentional activities is known as a security consideration. The importance of
security in any business organization cannot be emphasized enough. The company accepts various
security policies to protect company data and policies, such as: B. Strong servers, firewalls, backup,
etc. We should not rely on a single software test to ensure the proper security of corporate software.
We should run several tests on a regular basis to ensure the security of the company. We should use
strong servers, appropriate coding standards, create and release libraries, use automated test tools,
test cases, validation and other security related requirements from the beginning of the software
development process for institutes and software security. (Anon., n.d.)

Quality Assurance
Quality assurance is the process of evaluating the list of activities to confirm the quality of the
product. The important goal of QA is to ensure that the product functions very well and without
errors. QA examines the reliability, efficiency and flexibility of software. To be useful, software
must work continuously and complete quickly. For software quality assurance, we have hired highly
qualified developers who have put their heart and soul into the development of the software. Every
phase of software development has been tested to make sure nothing has been overlooked. We have
to ensure that the quality of the software developed meets the needs of the customers. (Anon., n.d.)

 Data collection process:

The process of collecting data using various methods is known as data collection. Before working on
the enterprise software project, I collected the data that will help me develop my project. The
different processes for collecting the data information are described below:

 Interview

An interview is a two-way conversation between two or more people on a specific topic. This
interviewer is the one who asked the questions and the interviewee is the one who answers them. For
the development of the software for the e-commerce site, we did some interviews with the manager,
employees, customer and the board of directors. How this software helps the customer and what

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 59


SDLC 2022

functions he would like to have in this software, we will ask these kinds of questions in the
interview.

 Questionnaire

A questionnaire is a method of conducting research that involves asking a group of people a series of
questions. The questions in the questionnaire are simple, but they help a lot in analyzing people's
thoughts. I did a google form questionnaire for ecommerce site software development and then sent
it out to multiple users for their feedback. (Anon., n.d.)

Data Flow Diagram ( DFD)


Data flow diagram is the graphical representation of the flow of data through an information system.
It defines how data will be entered into the output of the system, as well as the sources and
destination of the data and where it will be stored. In the data flow diagram we can see how n data is
transferred from one part to another. Physical and logical data flow diagrams are the two types of
data flow diagrams. (Anon., n.d.)

Two types of DFD:

 Logical DFD

The logical data flow diagram is primarily concerned with the system's performance. It shows how
the data flows inside the system. The proper operation of a company's system is made easier by
using a DFD. As with a banking software system, it refers to the process through which data is
transferred from one entity to another. (Anon., n.d.)

 Physical DFD
Physical DFD: A physical data flow diagram depicts the actual implementation of the data flow in
the system. Physical DFD is more precise and straightforward to install.

Entity, process, data storage, and data flow are the four basic components of all data flow diagrams.

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 60


SDLC 2022

Figure 11 DFD components

 Entity
An external entity, also called as a source, a sink, or a terminator, generates and consumes data that
flows between the diagrammed entity and the system. The DFD's inputs and outputs are represented
by these data flows. These elements are often positioned at the diagram's edges since they are not
part of the system being studied. Alternatively, they may be used to represent a different system or a
subsystem.

 Process
a process that alters or modifies data flows. All processes must have inputs and outputs on a DFD
because they convert input data into output data. Instead of being labeled "process" on a diagram,
this symbol is given a simple name depending on its purpose, such as "Ship Order." When notating
in a rectangular box containing the process's reference number, the location where it takes place, and
a brief description of the process's purpose are utilized. On a data flow diagram, processes are
normally arranged from top to bottom and left to right.

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 61


SDLC 2022

 Datastore
A data store doesn't do anything but stores data for later use. Many different types of data stores can
be found. They could have long-term files or a group of documents that are kept for a short time
while they are being read or looked at. When you send data to a data store, you send things like
information or operations that change the data. Output flows would be data that was taken from the
store.

 Data flow
An arrow symbol shows how data moves between outside entities, processes, and data stores. This
shows the direction of flow. This data could be electronic, written, or verbal, but it could also be in
any of these forms. Input and output data flows are named based on the type of data or the process or
data store they are linked to. This name is written next to the arrow.

DFD Levels:
Data flow diagram level 0:
It is also known as a context diagram. It is a general overview of the entire system or process that is
being studied or modeled. It is easy to understand and gives little information about the flow of data.
When creating the level 0 diagram, the process must first be identified, followed by the external
entities. (Anon., n.d.) Level 0 diagram for the educational institution:

Figure 12 DFD level 0

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 62


SDLC 2022

Data flow diagram level 1:


The context diagram is split into numerous bubbles/processes in one-level DFD. At this level, the
system is characterized by a primary function and a high-level process.

Figure 13 DFD level 1

Data flow Diagram 2:


2-level DFD delves further into the components of 1-level DFD. It may be used to plan or record the
specific details of a system's operation.

Figure 14 DFD level 2

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 63


SDLC 2022

As the DFD level increases, so does your progress, and the graph grows larger and more detailed
over time. In the first stage, stage 0 DFD, the customer sends a request for institute registration. The
administrator receives the registration and sends the customer information about the services of the
institute. If the customer wishes to continue with the training process, they will send a confirmation
message to the administrator. Customer information is sent with the confirmation message. The
admin takes over the document generation process in the second stage of Level 1 DFD. In this phase
the customer data is saved. If the user wants to see his information, a request message is sent to the
administrator and he is given access to it. All necessary information is saved so that it can be
accessed in the future. The reporting takes place in the third stage of Level 2 DFD. Data from
inquiries and reports are saved. If the user so wishes, he can cancel his plan. If he wants to add more
features to his package, he can look for new plans. The same procedure as in Level 0 DFD is
followed to add and find facilities. This diagram shows the data flow in the new system at different
stages after the software has been made available in the institute.

Entity Relationship Diagram


The relationship between the entity sets stored in the database is shown in an entity relationship
diagram. It is a special type of structure diagram used in database design. An ERD is made up of
various symbols and connections that are used to visualize various information. Entities, attributes,
and relationships are all included. There are several types of policies available in an e-commerce
environment, including life, personal, auto, and other policies. (Anon., n.d.)

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 64


SDLC 2022

Figure 15 ER-Diagram of Insurance company

Uses of Entity Relationship Diagram


 Database design: Entity In a logical data model, relationship diagrams are used to model
and design relational databases in terms of logic and business rules, as well as the specific
technology to use (in a physical data model). An ER diagram is often used as the first step
in determining the requirements for an information system project in software
engineering. It is later used to model a specific database or databases. A relational
database has a relational table equivalent that can be expressed this way if necessary.
 Database troubleshooting: ER diagrams are used to analyze existing databases to find
and fix logic and deployment problems. By drawing the diagram you should be able to
see where something is going wrong.
 Business information systems: Relational databases are used in business processes and
the diagrams are used to design or analyze them. A relational database can potentially
benefit any business process that uses field data and includes entities, actions, and

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 65


SDLC 2022

interactions. It can improve results by streamlining processes and making information


more accessible.
 Business process re-engineering (BPR): ER diagrams help in analyzing databases used
in business process re-engineering and in modeling a new database setup.
 Education: Today's method of storing relational information for educational purposes
and later retrieval is databases, so ER Diagrams can help plan those data structures.
 Research: Because so much research focuses on structured data, ER diagrams can help
set up useful databases for data analysis.

Requirements tracing
The process of continuously tracking individual requirements in relation to other system elements.
Controlling, prioritization, requirements management, analysis and documentation are terms that
describe this process. We need to understand how the low-level requirements can be obtained by
transforming the high-level requirements into requirements tracking. This includes things like needs,
expectations, goals and objectives. We can ensure that the requirements of the customers or
stakeholders meet the expectations based on the requirements tracking. The following are the two
main areas where requirements tracking can be helpful:

1. It provides a framework for the development team, as well as defining the testing team's
probability for implementation and specification.
2. It confirms that the team is not responsible for building the product but also is for building
the right product.

Types of software requirement traced throughout the lifecycle:

Functional requirements

A formal statement of an application's functional needs is the Functional Requirements Document


(FRD). It fulfills the same function as a contract. The developers agree to deliver the stated
capabilities in this case. If the product meets the FRD's specifications, the client agrees to find it
suitable. The system's expected behavior is captured by functional requirements. This behavior might
well be expressed in the form of services, tasks, or functions that the system must fulfill. The
document should be customized to meet the needs of a specific project. System calculations, data
modification and processing, user interface and interaction with the application are all defined by
them. A product's response to specific information sources or conditions is dictated by the
administrations provided by utilitarian necessities, as well.
Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 66
SDLC 2022

Let's have a look at an example of a web-based financial framework to better understand Functional
Requirements in general.

Bank customers should be able to select the best services from among those that are offered.

• Clients should be able to go at appropriate reports. • There must be an accessible structure to allow
the opening of records in the bank when a customer requests it.

• The customer should be provided a noteworthy confirmation number after registration so that he
can later be given a record number

(Anon., n.d.)

Non-functional requirements

Their framework is based on characteristics such as unbreakable quality and fast response.
Customers want things that aren't practical because they want to spend money, use hierarchical
methods, and more. The framework does not have the ability to meet either of these needs. Non-
functional requirements should be used in programming to make sure that the software appears to
work. For example, if a plane doesn't meet safety standards, it won't be safe to use. If you don't have
a continuous management structure in place, you won't be able to meet the other needs you have.
(Anon., n.d.)

Below, you can see a list of different types of non-functional requirements.

• Item requirements: These requirements determine how well a piece of software works. The
following are part of the item's requirements.

• efficiency requirements: The product uses resources well, the framework runs quickly and needs
little memory to do its job. The framework should be able to complete its tasks at least several times
faster than the current framework.

• Reliability: Describe how long it should take for the product to disappoint you. For example, the
product should be able to work even if there is a danger.

In this section, you need to talk about how easy it is for the product to move from one place to
another. It should be easy to move the software to a new operating system without having to change
the whole code.

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 67


SDLC 2022

Traceability
In software development, traceability can be defined as the ability to track elements of work during
the development process. In order to keep track of what has happened and to demonstrate what has
transpired, software engineering often uses Traceability, which is often used to meet regulatory
requirements. In addition, establishing verification traceability is important for
semiconductor/electrical development. By connecting two or more applications, it is possible to
achieve traceability. This connection shows that the objects are dependent on each other, like an
apple and a tree. In many cases, the path of requirements and test cases may be followed. (Anon.,
n.d.)

Importance of Traceability

Achieve compliance:

The most obvious reason for implementing traceability has to do with regulations. This is typically
true for companies operating in financial services, health care, and government sectors. This is
typically true for companies operating in financial services, health care, and government sectors.
The ability to trace code to requirements is a prerequisite criterion among popular compliance
frameworks, such as the SOC2 process integrity requirement. (Anon., n.d.)

Reduce software defects (bugs)

There is a statistically significant relationship between the amount of information about where a
piece of code came from and the number of defects in the code. More complete traceability decreases
the number of defects a software program could have. The strong impact of traceability on the defect
rate suggests that traceability is a big practical value for any kind of software development project,
even if it is not mandated by a standard or regulation. (Anon., n.d.)

Increase speed and code maintainability

A study in the Empirical Software Engineering journal shows that one group of developers who
implemented traceability performed a given task 24 percent faster and created 50 percent more
correct solutions on average, suggesting that traceability not only saves effort but can profoundly
improve software maintenance quality. Well-maintained code can help developers make changes in
code written by other teams and reuse other people’s code, and also helps decrease technical debt.
The recently released State of DevOps Report: 2019 also claims that "Organizations that improve
code maintainability are delivering real benefits to their engineers." (Anon., n.d.)

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 68


SDLC 2022

Improve Return on Investment (ROI) by Reducing the Cost of


Development
The rate of return on investment quantifies the profit and loss of an investment. This is a term often
used to describe the profit of an organization or the return on various investments. Basically, the
return on investment is calculated by comparing the amount you get to the amount invested. There
are many ways to calculate the return on investment to determine the profitability of the company.
Return on investment is a popular indicator because of its versatility and simplicity. In essence, the
rate of return on investment can be used as a basic measure of investment profitability. This could be
the rate of return on investment in stocks, the expected rate of return on investment from a
company's expansion of factories, or the rate of return on investment generated in real estate
transactions. Companies can use it to forecast inventory investment, pricing policies, and capital
equipment purchases. (Anon., n.d.)

The rate of return on investment quantifies the profit and loss of an investment. This is a term often
used to describe the profit of an organization or the return on various investments. Basically, the
return on investment is calculated by comparing the amount you get to the amount invested. There
are many ways to calculate the return on investment to determine the profitability of the company.
Return on investment is a popular indicator because of its versatility and simplicity. In essence, the
rate of return on investment can be used as a basic measure of investment profitability. This could be
the rate of return on investment in stocks, the expected rate of return on investment from a
company's expansion of factories, or the rate of return on investment generated in real estate
transactions. Companies can use it to forecast inventory investment, pricing policies, and capital
equipment purchases. (Anon., n.d.)

You can increase the return on investment in this way without increasing sales or increasing pricing.
Divide your expenses into two categories: overhead and production costs to make it easier to
determine cost reduction options. Indirect expenses are expenses that are not directly related to the
manufacturing process, such as rent, insurance, and telephone calls. The production of a unit of
product requires expenditures such as materials and labor. These expenditures are called production
costs. (Anon., n.d.)

Approach for the requirements tracing


JIRA:

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 69


SDLC 2022

JIRA is another project management tool used to improve the ability of development and test teams
to complete tasks and operations more effectively. JIRA serves as a tracker for teams planning and
developing great products when it comes to developing software for e-commerce. JIRA is used by
teams to capture and organize problems, assign work, and track team activities. You can use JIRA at
your desk, but you can also use it on the go with the new mobile interface. (Anon., n.d.)

Advantages:

 Increased the productivity: When JIRA is not in use, the manual listing can be used to
restart the software during a downtime, which puts a lot of pressure on the development and
test teams. Every business strives for increased productivity and JIRA is a great tool to
achieve this goal.
 Time tracking: We can keep track of the time spent on each task with the JIRA tool so we
know how much time was spent on each task from start to finish. The estimated time is
assigned by the creator when creating the tasks.
 Beneficial for better: It is the basic and most important thing in any software development.
Here are two things that can slow down the whole process - lack of transparency and
planning according to a task's start and end time.
 Generation of the reports: The JIRA tool is extremely useful for downloading reports based
on tasks and the time spent on each task for future reference. You can download a list of
tasks, assignees, reporters, and detailed information on each task

Prototyping: The prototyping can also be traced back to the requirement. For the company, we can
create a software prototype that will help us address the critical components and the time required to
complete the project. Prototyping takes some of the stress out of users. After completion of the first
project services, the user / customer evaluates the prototype and informs the project team of any
defects. The team then returns to work to resolve the issues. You create a new prototype for the user
/ customer to evaluate and the process continues. This makes it easier to keep track of the work.

GitHub: It is an open source repository that hosts the service, similar to a code cloud. It keeps track
of various changes made to each iteration and hosts source code projects in various programming

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 70


SDLC 2022

languages. Using GitHub allows us to collaborate with our group team and colleagues while
reviewing previous versions of our work.

Trello:

It's a free, open source project management platform that can be used in a variety of ways. It has
functions such as time recording, role-based access, wikis and forums, as well as flexible tracking
control, with which several projects can be managed at the same time. It acts as a hub for team
collaboration, education, support, budgeting, and resource management.

Advantages:

 Time tracking: It is a standard module that allows the project management teams to track the
number of the hours they have logged to the particular project or the issue.
 Multiple Project Management: It ensures the project management teams to manage the
multiple projects all at once. All the active projects are listed and are displayed on the project
page. Therefore, saving the time while maximizing efficiency.
 Issue Tracking: Identifying the issue is the most important while conducting the project.
Redmine helps to track the issues easier and faster. The system has a built-in Gantt chart
where you can see the problems with the start and due date.
 Role-based access control: It allows the project management tram to create, edit or assign
the new roles to each of their team members. For instance, the user can set the limitations on
what a member can access or cannot access in the software.

Testing and Maintenance - The purpose of the requirements test is to determine whether the
software requirements are feasible in terms of time, resources, and budget. Due to the
incompleteness, inaccuracy and ambiguity of the functional requirements, many errors occur in the
software. Therefore, testing requirements and removing ambiguities is critical before starting any
software development. The modification of a software product after delivery to correct errors,
improve performance or other properties is referred to as software maintenance in software
development. A common perception of maintenance is that it is simply a matter of correcting defects.
In this phase we can fix the bugs in the software or we can simply deal with the new requirements in
the software if necessary

Test Case:

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 71


Test Section Tes Test Pre- Test Expected Test result
t Scenario condition Proced output
Area
ure SDLC 2022
ID

Sing up Must be Enter Conformat The user


with the able to valid ion code dashboard
valid sing up data and send to was seen
T00 username sing in their email after
1 and by conformati
And
password. clicking on
sing up The user
button dashboard
must be
Sing up seen.

Must not Enter Error Error


be able to invalid message message
Sing up
or black should be was shown
with Sing up
Registrat T00 data and shown in
incorrect/bl saying
ion 2 login in the front
ank
by screen (Please
credentials
clicking enter valid
username
Sing up
or
button
password)

T00 Login with Login Enter User Login


3 valid data using valid should be successfull
existing user able to y
data and Login
Username
click
Login and
Login
password
User button
Login
T00 Login with Login Enter User Login
and
4 invalid data using invalid should not unsuccessf
logout
blank/inv user be able to ully
alid data and Login
And error
click
Username And error message
Samir Gurung ( B.Tech HND in computing/ 2nd Semester) Login 72
and must be was shown
button
password shown “ Please
enter valid
SDLC 2022

Importance of Requirement Tracing

The importance of the requirements tracing is-

 It ensures that the final deliverables of the project are related to the business needs.
 It helps to keep the record of all the requirements.
 It ensures that there is no any waste of time and the resources repeating research.
 It offers the easier impact analysis.

Approaches to improve the software quality


We need to be aware that we are taking the right approaches to software development during the
software development process of an organization or person. There are a variety of factors that can
affect the quality of the software. Small software bugs can lead to big problems like data loss,
financial loss, etc. in the future. When developing software, we have to consider a variety of factors
such as database, security, and features. There are a variety of approaches that can be used to
improve the software. The following are two of them:

1. Employee test-oriented software development management: During the software


development process of an organization or individual, we need to be aware that we are taking
the right approaches to developing software. The quality of software can be influenced by a
number of factors. Small software bugs can later lead to big problems like data loss, financial
loss, etc. When developing software, we have to consider a wide variety of factors, including
database, security, and features. There are several approaches you can take to improve the
software. Two of them are as follows:
 Test-driven development: Test-driven development is a development method based on
the simulation of a short development cycle. In other words, the automated case is written
first, and then the necessary code is written to pass the test.

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 73


SDLC 2022

Figure 16 Test-driven development

 Pair programming: It's also a method where one engineer writes the code on the
desktop while another watches it and makes suggestions throughout the process. It
helps improve software quality and both engineers gain knowledge at the same time.
Pair programming improves code strength while enabling more effective design.

 Pair review: It's also a great way to go over the work you did in pair programming.
The review of the work will help identify the error, evaluate the progress of the work,
and determine the quality of the work. We can also address the area in which there is
a need for improvement as a result of the review.
 QA Strategy: The entirety of the functionality and features of the software products
affect their ability to meet the stated or implied requirements. Software quality refers
to the process of determining whether or not the requirements of the business context
and the customer are being met.
When assessing software quality, risks, costs and all other factors that can have an
influence on project development are examined. The software quality assurance
process is a continuous and ongoing process that is not completed until the software is
finished. Ensuring software quality is a collection of tasks that must be performed in

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 74


SDLC 2022

order for products to be of high quality. The software quality approach helps to
identify the project errors and then to continuously correct these errors in order to
improve the software quality.
2. Report bug effectively: An error is known as a coding error in an application or software. It
can be found at any point during the software development process. A programmer needs to
know how to deal with a bug. The reporting of software errors is very important for the
quality development of the software. If we can effectively report the bug, the software will
pass all testing phases; However, if the fault is not identified, it creates a bigger problem.

Benefits of reporting

 It helps to increase the customer satisfaction


 It helps to produce the quality assurance.
 It helps to increase the customer satisfaction
3. Coding guidelines: To improve the software quality, coding guidance is the way to improve.
To improve the quality, we must follow the different guidelines that are given below-
 Use comment wisely
 Avoid duplication
 Use of meaningful names and avoid the made-up acronyms
 Follow the conventions
4. Client’s feedback: Customer feedback is helpful in improving software quality. The
feedback we receive from customers can be used to improve the functionality of the software.
Customer feedback is information from customers regarding their satisfaction or
dissatisfaction with a product or service.

Software quality assurance (SQA)


Software Quality Assurance (SQA) is the act of ensuring that the software being built is of the best
quality. The way the exercises are organized makes sure that when the forms, methods, and gauges
are appropriate, they are implemented effectively. Software quality is improved through strategies.
Software Quality Assurance is a procedure that is run parallel to product development. Its goal is to
optimize the software development process so that flaws can be corrected before they become a
problem. Quality assurance is woven into the software development process as an umbrella
operation.

(Anon., n.d.)

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 75


SDLC 2022

A technique of quality assurance:

• Formal specialized audits

• A multi-testing system

• Innovative programming

• Component estimation and announcement

You should make sure your product is bug-free. Software quality management entails quality
assurance, quality control, and testing. It is difficult to run a business without using software. As a
result, you must lower the cost of your testing as well as the quality of your program. In the
following paragraphs, I have detailed several methods for improving software quality and testing
efficiency.

(Anon., n.d.)

Advantages of software quality assurance:

 Commitment to quality. Delivering the SQAP demonstrates an unwavering dedication to


quality and unsurpassed levels of customer satisfaction. Products must be made to conform
to established safety and installation standards.
 Real-time information: The installation procedure is covered from start to end. We can
access data about the installations of products over the past day in a particular field by
looking at the daily work logs.
 Risk reduction. Contractor, owner, and design team all benefit from greater product
credibility and installation uniformity brought about by the QAP.
 Developing experience in the field of consulting. Because Morrison Hershfield is an
authority on high performance building envelopes, it is well-suited to help other companies
achieve their objectives by providing unparalleled experience and close collaboration.

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 76


SDLC 2022

Functional Design Paradigm:


The functional design paradigm is a design method for hardware and software devices, such as
computer software and, increasingly, 3D models. A functional design ensures that each modular
component of a device has only one function and that this function is carried out with as few side
effects as possible on other components. In the case of functionally designed modules, a low level of
coupling is common. 2018 (Smith) The advantage of implementing it is that a single-purpose
software module is easier to design and implement, making it simpler and less expensive. Since each
part does exactly what it should, systems with functionally designed parts can be modified more
easily. This feature is critical as maintenance is more than 3/4 of the life of a successful system. It
also makes the system easier to understand and document, which makes training easier. As a result,
the practical life of a functional system is extended. A functional module in a program system is
easier to reuse because it is less likely to have side effects that affect other parts of the system.
(Anon., n.d.)

Improvement of software quality by functional design paradigm


The functional design paradigm helps improve software quality by applying the quality improvement
process in an iterative manner. The newly proposed software to be developed by the quality of the e-
commerce site can be enhanced through a functional design paradigm in the following ways:

 Set goals:
The aim of the educational institute is to provide the best facilities to national and
international peoples. To meet these needs and requirements, Educational had to set goals
so that it can improve the software and all of this help to develop high quality software,
which is the main goal.

 Pick best methods and techniques


By using effective methods and the best techniques, we can develop quality software that
meets all the requirements of the Educational Institute. In order to avoid errors and
mistakes, possible needs and requirements can be taken into account using methods in the
early development phase. Hence, we can get the right framework so that the software works
smoothly and without problems.
 Execute

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 77


SDLC 2022

This will help improve the programming plan. It executes the plans, strategies, and methods
conceivable using the functional design paradigm. The proposed program can be created
based on the simple execution of the plan modules under the acceptance period and the
estimated budget.
 Analyze Result
After execution, it analyzes the generated result. It also evaluates the performance, usage,
functionality, security, and other factors that maintain the quality and standard of the
software. It also requires satisfaction, which is also a factor of analysis.
 Generate feedback
Generating reviews means better results on-site and off-site. Reviews are a powerful tool
for building trust and sales throughout the buyer journey. As you collect more reviews, you
have more opportunities to get user-generated content on your website and in your
marketing campaigns.
 Packing and storage
When all errors and gaps in the software have been eliminated, quality software is created.
This ensures proper packaging and storage of all activities and functions that are performed
during software development. Proper documentation even helps increase software quality,
which makes it easier to access software functions.

Conclusion
I identified the stakeholders involved in software development as well as the customer requirements
that had to be addressed in this task for the software. In addition, the scope of the software and
process descriptions for the functionality of the software in terms of output, input and process were
described. Alternative solutions were considered in the event of an emergency. The success of
software is determined by its security and quality. So we discussed security and how we planned
security in the software, as well as quality assurance measures that were taken in the software to
improve it. There was a list of hardware and software requirements. Software analysis tools such as
DFD and ERD have been used to develop software. Found the problem in the old system and the
reason for developing a new system through the data collection process. It also describes the
paradigm of functional design, the procedural life cycle, and the role of communication in software
quality.

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 78


SDLC 2022

Part-4

Question:
Assignment Task –Part 4

1. Prepare a documentation that explains the suitability of software behavioural design techniques. .

2. Discuss about the different software specification methods and suggest two software behavioral
specification methods and illustrate their use with an example relevant to the project that needs to be
constructed for the given context. Some of the software specification techniques include flowcharts,
pseudo code and formal specification methods and so on.

3. Differentiate between a finite state machine (FSM) and an extended Finite State providing an
application for both.

4. Present justifications of how data driven software can improve the reliability and effectiveness of
the software.

Introduction:
In this part we first need to create documentation that explains the suitability of software behavioral
design techniques. Then we have to explain the different methods of software specification and also
propose two methods of software behavior specification and illustrate their application using a
project-relevant example that has to be constructed for the given context. We should also include
flowcharts, pseudocode, and formal specification methods. Then we should distinguish between a
finite automaton and an extended finite state that offers an application for both. Finally, we need to
provide a rationale for how data-driven software can improve the reliability and effectiveness of the
software.

Discuss using examples the suitability of software behavioral design


techniques:
A technique for specifying software system behavior suitable for use in designing concurrency
systems is presented. (Anon., n.d.)

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 79


SDLC 2022

Any computer software coded in a programming language uses a given set of input data to implicitly
determine what action to take when executed on a given computing system. Since this final and
theoretically sufficient software-defined behavior specification is inadequate for most practical
software design and analysis problems, an alternative approach to the software behavior specification
is being sought. Determining the behavior of a software system is an important and difficult task,
especially when this behavior implies concurrent operation, either conceptually or in practice. Such a
specification scheme can be very useful for developers of complex parallel software systems, as it
provides a mechanism to describe the intended behavior long before the proposed software system
design is actually implemented. These kinds of comments can then be used to guide subsequent
coding tasks, evaluate the resulting software, or, most importantly, review the suitability and
correctness of the proposed design itself. (Anon., n.d.)

Developers of software systems typically want to specify the behavior of the system under
development as a prescription for the final program code, and the specification of the software
behavior is clearly a deficient feature. Furthermore, behavioral specification techniques useful in
software development should ideally allow for a rigorous and formal statement of the intended
behavior of the system, which could serve as the basis for some design and an understandable
description of the possible behavior of the software system. there is. analyze. It is under
development. Its role in both description and analysis requires skills to project or focus the
description on specific aspects of system behavior. Without this focus, a description of a system
tends to be a single description expressing all aspects of its overall behavior. The dual role of
behavioral specifications in description and analysis also requires overspecification techniques that
provide a description of system behavior orthogonal to that given by the procedural specification of
the program text. This redundancy and orthogonality are especially important for analysis because it
allows comparing two different characteristics of system behavior. It is clear that the software
specification for behavior cannot have such redundancy and orthogonality. (Anon., n.d.)

These are some types of design patterns:

 Creative: These patterns are designed for class instantiation. They can be either class creation
patterns or object creation patterns.
 Structural: These patterns are designed with class structure and composition in mind. The
main goal of most of these patterns is to increase the functionality of the class (es) in question
without changing much of their composition.
 Behavior: These patterns depend on how a class communicates with others.

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 80


SDLC 2022

Software specification
A software specification can be defined as a broad description of the intended purpose and
environment of software under development. It describes what the software will do and what
performance is expected. A software specification helps to minimize the time and effort required by
developers to achieve the desired goals and also to minimize development costs. It specifically
defines how software interacts with the system hardware. Other programs and also with human users
in a variety of real-world situations. It sets out the functional and non-functional requirements as well
and contains a number of use cases that explain the user interaction that the software should provide.
It helps to create the basis for an agreement between clients and contractors on how the software
product should work. The software specification document lists sufficient and necessary
requirements for project development. A software specification also brings benefits to the customer
because if the development costs are lower, the developers will charge the customer a lower amount.
Some of the key benefits of software specification are listed below:

1. It helps to minimize the cost of development.


2. It helps to integrate with the development and test tools.
3. It helps to describe what the software will do and how will be expected to perform.
4. It helps to generate documents automatically.

There are different software specification methods which are given below:
Flowchart:
A flowchart is a diagram that depicts a process, system, or computer algorithm. It is used in various
fields to study, record, improve and plan a subject in a clear and easy to understand subject. It's also
a powerful business tool. With the proper use of the flowchart, a businessman can grow his business.
Flowcharts can be useful in business, marketing, engineers, students, manufacturing, etc. There are
several types such as document flow diagram, system flow diagram, data flow diagram, etc. (Anon.,
n.d.) The most common flowchart symbols that are more likely to be used compared to others are as
follows: -

Terminator

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 81


SDLC 2022

Process

Document

Decision

Data

Database

Flow Arrow

Predefined process

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 82


SDLC 2022

On-page connector/ reference

Off-page connector/ reference

Figure 17 Flowchart

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 83


SDLC 2022

Pseudo code
Pseudocode is a detailed but readable description of what a computer program or algorithm must do,
expressed in a formally designed natural language and not in a programming language. (Rouse, n.d.)
It allows a designer or senior programmer to express the design in great detail, and it also provides a
detailed template for programmers to take the next step of writing code in a specific programming
language. It is also used in conjunction with computer-aided software engineering-based methods.
The main purpose of using pseudocode is to make it easier for humans to understand than traditional
programming language code and to be an efficient and environment-independent description of the
key principles of an algorithm. The pseudocode also helps create an outline or rough draft of a
program. It summarizes a program flow, but excludes underlying details. It is also used in planning
an algorithm where the structure of the programs is sketched out before the actual coding takes place.
(Anon., n.d.)

Some of the advantages of pseudocode are listed below:

i. It is understood by the programmers of all types.


ii. It helps to create an outline or a rough draft of a programs.
iii. It helps to summarize a program’s flow.

The pseudo code for the insurance company software according to our scenario is given below:

 Fill in forms

 Pay insurance fee

 Client buys insurance from company

 Insurance company accepts

 Issue the receipt


 Issue the insurance policy
 The insured object suffers loss

 The insured claims insurance

 The insurance company investigates

 Not covered
 The insurance company refuse to compensate

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 84


SDLC 2022

 The insurance company pays compensation

 Renew Insurance

i. To claim the insurance policy


[when proper evidence is show]
Evidence = true;

[when proper evidence is not shown]


Evidence = false;

If (Evidence = true) {
writeIn (“your claim is rewarded”);
}
Else {
writeIn (“sorry, you claim is not rewarded”);
}

ii. For exchange of foreign currency

[If foreign currency is over its limit]


Over_limit = true;
[If foreign currency is over its limit]
Over_limit – false;

If (Over_limit = true) {
writeIn (“sorry, your currency is over limit”);
}
Else {
writeIn (“your currency is successfully exchanged”);
}

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 85


SDLC 2022

iii. For admin changing policy

[if want to change policy]


New_policy = true;
[if does not want to change policy]
New_policy = false;

If (New_policy = true) {
writeIn (“Policy changed successfully”);
}
Else {
writeIn (“Policy does not change”)
}

iv. For Log out


[if log out button click]
Logout = true;
[if log out button is not click]
Logout = false;

If (Logout = true) {
writeIn (“your account is being successfully logout”);
}
Else {
writeIn (“Welcome to dashboard”);
}

Above I created the insurance software pseudocode based on our scenario. I have created a
pseudocode for login, logout, policy change, currency exchange and insurance claims. I've shown the
software workflow in pseudocode when the user is using insurance company software. Without
showing this, a user may be confused while using the software. Therefore, pseudocode is very
important for the software.

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 86


SDLC 2022

DFD:
A Data Flow Diagram (DFD) is the visual representation of the flow information within a system and
what changes the information, and where data is stored. DFD shows the scope and boundaries of
a system as a whole.DFD illustrate flow of data in the system at various levels. DFD does not have
any control or branch elements.

o-Level DFD:
It is a context diagram. It’s designed to be an abstraction view, shows the system as a single process
with its relationship to external entities. Represents the entire system as a single bubble with input
and output data indicated by incoming/outgoing arrows.

1-Level DFD:
In 1-level DFD, the context diagram is decomposed into multiple bubbles/processes. Main function
of the system is highlighted and high level process of 0-level DFD is broken into sub-process.

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 87


SDLC 2022

2-Level DFD:
2-level DFD goes one step deeper into parts of 1-level DFD. It can be used to plan or record the
specific/necessary detail about the system’s functioning.

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 88


SDLC 2022

State Machine:
A state machine is a behavior model. It consists of a finite number of states and is therefore also
called finite-state machine (FSM). Based on the current state and a given input the machine performs
state transitions and produces outputs. There are basic types like Mealy and Moore machines and
more complex types like Harrel and UML state charts.

(Anon., n.d.)

The basic building blocks of machines that control what happens next are states and transitions. A
state is a situation of a system depending on its previous inputs and causes a reaction on following
inputs. One state is marked as the initial state; this is where the machine starts. A state transition
defines for which input a state change from one to another. Depending on the state machine type,
states and/or transitions produce outputs. (Anon., n.d.)

Notation od Sate machine:


Following are the notations of a state machine diagram enlisted below:

Figure 18 Notation of Sate machine

Example:

A soda vending machine that sells only one type of soda for 25 cents apiece.
Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 89
SDLC 2022

Figure 19 Example of State machine

Finite state machine (FSM)


A finite state machine (sometimes called a finite state machine) is a computational model that can be
implemented in hardware or software and used to simulate sequential logic, games, and linguistics.
(Moore, n.d.). A computer is basically a state machine, and any machine command is entered that
changes one or more states and can cause other actions. A finite automaton is one that has a limited
number of possible states. It can be used both as a development tool for approaching and solving
problems and as a formal description of the solution for future developers and system administrators.
It's basically simple, efficient, and easily expandable. Each state of the finite state machine has a set
of transitions and each transition is associated with inputs and points to the state. (Techtarget,
2018).The finite state machine contains many extensions and can be coded directly as with the help
of specialized languages or GUI tools. There are two kinds:

i. Deterministic finite automation


ii. Nondeterministic finite state machines

Deterministic finite automation


A deterministic finite automation can be defined as a finite state machine that accepts or rejects
strings of symbols and only produces a unique computation of automation for each input string. It is
an abstract mathematical concept, but it is often implemented in hardware and software to solve
various specific problems.

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 90


SDLC 2022

Nondeterministic finite automation


In nondeterministic finite automation, for each state there can be zero, one, two, or more transitions
that correspond to a particular symbol. It can also use zero crossings indicated by. Zero crossings
allow the machine to jump from one state to another without having to read a symbol. With this
finite automation, the exact state in which the machine is moving cannot be determined.

Applications of finite state machine


There are many applications of finite state machine which are given below:
 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.
 Predictability in deterministic FSM for a given set of inputs and the state transaction can be
predicted from a known current state, which enables simple testing.
 It is easy for inexperienced developers to implement with little to almost no extra knowledge.

Extended finite state machine


In an extended finite state machine, the transition can be expressed by an if statement, consisting of a
series of trigger conditions. If all trigger conditions are met, the transition is triggered, which brings
the machine from the current state to the next state and also executes the specified data operations. It
is a modeling approach and is also used for a variety of systems. In the extended finite state machine,
the number of states can be reduced by introducing local variables. They reduce the number of states
by hiding less important information. In general, the information that does not have a strong
influence on the behavior is represented as a variable in the extended finite state machine. It is
basically required in computer science and software technology in the area of program analysis and
testing. It is essentially denoted by the seven-element tuple M = (I, O, S, D, F, U, T). (defination,
2017)

Application of extended finite state machine


i. It can be operated in various tools like metro passageway, alarm, home garage, temperature
controller, etc.
ii. It reduces number of states by hiding less important information.
iii. Since extended finite state machine is a modelling approach, it used for wide range of systems.

Differences between FSM and EFSM


The differences between FSM and EFSM are shown in the following given table:

Finite state machine Extended finite state machine

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 91


SDLC 2022

1. A finite state machine is a computational 1. In an extended finite state machine, the


model that can be implemented in hardware or transition can be expresses by an ‘if statement’
software and that can be used to simulate by consisting of a set of trigger conditions.
sequential logic and some computer programs.

2.Together with the extended finite state 2. It has greater applicability in terms of
machine, it has less applicability in terms of implementation compared to a finite state
application. machine.

3. An FSM always performs a transition on a 3. EFSM however only performs a transition


given input from one state to another. when a given set of conditions have been
satisfied.

4. Finite state machine cannot be use for a wide 4. Since extended finite state machine is a
range of system as much as EFSM can. modelling approach, it used for wide range of
systems.

Data driven software


Data-driven is an adjective used to refer to a process or activity that is data-driven as opposed to
mere intuition or personal experience. (Anon., n.d.) Data-driven essentially means that data dictates
the actions of those who do a Run an event or a process. This is most evident in big data, where data
and information are the basis of all actions and collecting and analyzing data is the central motivator.
In data-driven software, rather than defining a sequence of steps to be performed, the program
instructions describe the data to be reconciled and the processing required. It is usually applied to
structured data streams in order to filter, aggregate, transform or invoke other programs. The data
driven software often has a standard action; H. if no condition is met, line-oriented languages print
the line or deliver a message. It's a new way to achieve business intelligence. It uses machine
learning that acts as an autonomous system to carry out the actions that belong to it. It can also be
integrated into our software as a service to analyze and determine strategic direction.

Some of the application of data driven software are given below:


i. It automatically generates the master data, models, schema and graphs as the user searches and
also collects data.

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 92


SDLC 2022

ii. It helps to making the information available within a single application.


iii. It operates on diverse data from many multichannel data sources.

Improving the reliability and effectiveness of the software using data driven software
When developing an application, we must ensure that the software will meet the requirements of all
users. As many changes as possible are needed for users to love this software after using it. A
different approach is needed for effective software development and we should also improve the
reliability and efficiency of the software with each software update. Through the use of data-driven
software, we can also improve the reliability and efficiency of the software. As we all know, data is
an adjective used to refer to a process or activity that is stimulated by data, as opposed to intuition or
personal experience. It works on a variety of data from multiple multichannel data sources. When we
use data, software functions and interfaces can be used on all objects with the same data field, so it
will be very simple and easy to develop an application as well. like to have an effective software.
Controlled data also prevents the combination of data and functions of data-driven programs. It
provides information in a single application. Data-driven also works on a variety of data from
multiple multi-channel data sources. It uses machine learning that operates autonomously to perform
the actions it owns by finding recommendations and also integrates with our software as a service to
analyze and derive strategic direction. It will be very easy to find the problem in the software and
also its solution with the use of data-driven. In addition, if we have collected data for a long time and
tracked the changes we make to the software, we will be able to make more informed decisions using
the data.

We can find statistics using data driven software. For example, if we want to know the scope of the
computer industry in our country, we can use data-driven software to find results in this field. The
software is data-driven and finds the desired outcome for us based on the available data.
Telecommunications is another example of data-driven software. When we call someone and talk to
someone for 1 hour, the result is an invoice published based on talk time data. Data-driven software
only works when the appropriate data is available, otherwise it will not function properly. For
software to be reliable and effective, it should always give us the right decision, if any software
shows wrong decisions or wrong message then it cannot be called reliable. Data-driven software is
data-driven and only provides us with the right decision so that data-driven software can improve its
reliability and efficiency.

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 93


SDLC 2022

Conclusion
In this assignment, I first prepare a document explaining the adequacy of behavioral software design
techniques. I then explain the different methods of specifying software and also suggest two
methods of specifying software behavior and illustrate their use with an example related to the
project that needs to be built for the context. certain scene. I've also included flowcharts, pseudocode,
and formal specification methods. Then I made a distinction between finite state machines and
extended finite state machines that provide an application for both. Finally, I presented the rationale
for how data-driven software can improve its reliability and efficiency.

References
Anon., 2021. agile software development lifecycle stages. [Online]
Available at: https://www.mendix.com/blog/agile-software-development-lifecycle-stages/
[Accessed 2021].

Anon., n.d. agilebusiness. [Online]


Available at: https://www.agilebusiness.org/page/whatisdsdm
[Accessed 28 11 2021].

Anon., n.d. appvizer. [Online]


Available at: https://www.appvizer.com/magazine/operations/project-management/dsdm
[Accessed 27 11 2021].

Anon., n.d. atlassian. [Online]


Available at: https://www.atlassian.com/agile/scrum/sprints
[Accessed 27 11 2021].

Anon., n.d. atlassian. [Online]


Available at: https://www.atlassian.com/agile/scrum/backlogs
[Accessed 27 11 2021].

Anon., n.d. atlassian. [Online]


Available at: https://www.atlassian.com/blog/devops/the-importance-of-traceability
[Accessed 2021].

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 94


SDLC 2022

Anon., n.d. bmc. [Online]


Available at: https://www.bmc.com/blogs/quality-assurance-software-testing/#:~:text=Quality
%20Assurance%20(QA)%20is%20a,overall%20and%20scope%2Dagreed%20expectations.
[Accessed 121 11 2021].

Anon., n.d. businessnewsdaily. [Online]


Available at: . https://www.businessnewsdaily.com/4987-what-is-agile-scrum-methodology.html
[Accessed 29 11 2021].

Anon., n.d. cambridge. [Online]


Available at: https://dictionary.cambridge.org/example/english/current-system
[Accessed 02 12 2021].

Anon., n.d. chrguibert. [Online]


Available at: http://chrguibert.free.fr/cmmi12/cmmi-dev/text/pa-ts.php
[Accessed 24 11 2021].

Anon., n.d. Data driven. [Online]


Available at: https://www.techopedia.com/definition/18687/data-driven
[Accessed 29 01 2019].

Anon., n.d. economictimes. [Online]


Available at: https://economictimes.indiatimes.com/definition/spiral-model
[Accessed 26 11 2021].

Anon., n.d. economictimes. [Online]


Available at: https://economictimes.indiatimes.com/definition/waterfall-model
[Accessed 20 11 2021].

Anon., n.d. existek. [Online]


Available at: https://existek.com/blog/sdlc-models/
[Accessed 01 12 2021].

Anon., n.d. geeksforgeeks. [Online]


Available at: https://www.geeksforgeeks.org/software-engineering-agile-development-models/
[Accessed 29 11 2021].

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 95


SDLC 2022

Anon., n.d. geeksforgeeks. [Online]


Available at: https://www.geeksforgeeks.org/what-is-dfddata-flow-diagram/#:~:text=DFD%20is
%20the%20abbreviation%20for,or%20decision%20rules%20are%20present.
[Accessed 19 11 2021].

Anon., n.d. geeksforgeeks. [Online]


Available at: https://www.geeksforgeeks.org/software-engineering-spiral-model/
[Accessed 2021].

Anon., n.d. geeksforgeeks. [Online]


Available at: https://www.geeksforgeeks.org/traceability-and-its-types/
[Accessed 2021].

Anon., n.d. guru99. [Online]


Available at: https://www.guru99.com/er-diagram-tutorial-dbms.html
[Accessed 21 11 2021].

Anon., n.d. humansecuritycourse. [Online]


Available at: http://humansecuritycourse.info/module-2-human-security-in-practice/human-security-
stakeholders/
[Accessed 26 11 2021].

Anon., n.d. indiatimes. [Online]


Available at: https://economictimes.indiatimes.com/definition/pseudocode
[Accessed 30 11 2021].

Anon., n.d. insights. [Online]


Available at: https://www.netsolutions.com/insights/software-development-life-cycle/

Anon., n.d. investopedia. [Online]


Available at: https://www.investopedia.com/terms/f/feasibility-study.asp
[Accessed 21 11 2021].

Anon., n.d. investopedia. [Online]


Available at: https://www.investopedia.com/terms/f/feasibility-study.asp
[Accessed 26 11 2021].

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 96


SDLC 2022

Anon., n.d. investopedia. [Online]


Available at: https://www.investopedia.com/terms/r/returnoninvestment.asp
[Accessed 2021].

Anon., n.d. ionos. [Online]


Available at: https://www.ionos.com/startupguide/productivity/spiral-model/
[Accessed 28 11 2021].

Anon., n.d. itemis. [Online]


Available at: https://www.itemis.com/en/yakindu/state-machine/documentation/user-guide/
overview_what_are_state_machines
[Accessed 2021].

Anon., n.d. jobsity. [Online]


Available at: https://www.jobsity.com/blog/8-reasons-why-php-is-still-so-important-for-web-
development
[Accessed 16 11 2021].

Anon., n.d. kissflow. [Online]


Available at: https://kissflow.com/low-code/rad/rapid-application-development/
[Accessed 24 11 2021].

Anon., n.d. kyleads. [Online]


Available at: https://www.kyleads.com/blog/questionnaire/
[Accessed 14 11 2021].

Anon., n.d. lawinsider. [Online]


Available at: https://www.lawinsider.com/dictionary/current-system
[Accessed 01 12 2021].

Anon., n.d. lucidchart. [Online]


Available at: https://www.lucidchart.com/pages/what-is-a-flowchart-tutorial
[Accessed 28 11 2021].

Anon., n.d. padakuu. [Online]


Available at: https://padakuu.com/article/18-types-of-feasibility-studies-and-feasibility-reports
[Accessed 25 11 2021].

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 97


SDLC 2022

Anon., n.d. productplan. [Online]


Available at: https://www.productplan.com/glossary/jira/
[Accessed 23 11 2021].

Anon., n.d. researchgate. [Online]


Available at:
https://www.researchgate.net/publication/315856719_Analysing_Functional_Paradigm_Concepts
[Accessed 24 11 2021].

Anon., n.d. routledge. [Online]


Available at: https://www.routledge.com/Software-Quality-Assurance-Integrating-Testing-Security-
and-Audit/Mahfuz/p/book/9780367567972
[Accessed 2021].

Anon., n.d. sap. [Online]


Available at:
https://help.sap.com/doc/saphelp_nw73ehp1/7.31.19/en-us/ba/af38b41175c643a852cdb5e2c8f61e/
content.htm?no_cache=true
[Accessed 2021].

Anon., n.d. scaledagileframework. [Online]


Available at: https://www.scaledagileframework.com/nonfunctional-requirements/
[Accessed 2021].

Anon., n.d. sciencedirect. [Online]


Available at: https://www.sciencedirect.com/topics/computer-science/security-consideration
[Accessed 25 11 2021].

Anon., n.d. simplilearn. [Online]


Available at: https://www.simplilearn.com/feasibility-study-article
[Accessed 2021].

Anon., n.d. simplilearn. [Online]


Available at: https://www.simplilearn.com/software-quality-assurance-article
[Accessed 2021].

Anon., n.d. software-development-life-cycle. [Online]


Available at: https://phoenixnap.com/blog/software-development-life-cycle

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 98


SDLC 2022

[Accessed 30 11 2021].

Anon., n.d. stackify. [Online]


Available at: https://stackify.com/what-is-sdlc/#:~:text=The%20Software%20Development%20Life
%20Cycle%20(SDLC)%20refers%20to%20a%20methodology,design%20such%20as
%20architectural%20design
[Accessed 28 11 2021].

Anon., n.d. techopedia. [Online]


Available at: https://www.techopedia.com/definition/21970/software-development-environment-sde
[Accessed 18 11 2021].

Anon., n.d. techtarget. [Online]


Available at: https://searchsoftwarequality.techtarget.com/definition/quality-assurance
[Accessed 26 11 2021].

Anon., n.d. testmatick. [Online]


Available at: https://testmatick.com/risks-of-prototyping/
[Accessed 28 11 2021].

Anon., n.d. tutorialspoint. [Online]


Available at: https://www.tutorialspoint.com/sdlc/sdlc_waterfall_model.htm
[Accessed 17 12 2021].

Anon., n.d. umich. [Online]


Available at: https://deepblue.lib.umich.edu/bitstream/handle/2027.42/25196/0000635.pdf;sequen
[Accessed 27 11 2021].

Anon., n.d. what is traceability. [Online]


Available at: https://www.perforce.com/blog/alm/what-traceability
[Accessed 19 12 2021].

Anon., n.d. wrike. [Online]


Available at: https://www.wrike.com/blog/requirements-gathering-guide/#What-is-requirements-
gathering-in-project-management
[Accessed 29 11 2021].

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 99


SDLC 2022

defination, 2017. Definition. [Online]


Available at: https://www.definitions.net/definition/extended+finite-state+machine
[Accessed 27 November 2021].

Moore, K., n.d. Finite State Machines. [Online]


Available at: https://brilliant.org/wiki/finite-state-machines/
[Accessed 28 11 2021].

Rouse, M., n.d. pseudocode. [Online]


Available at: https://whatis.techtarget.com/definition/pseudocode
[Accessed 30 01 2019].

Techtarget, 2018. Techtarget. [Online]


Available at: https://whatis.techtarget.com/definition/finite-state-machine
[Accessed 14 11 2021].

Appendix:
Presentation:

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 100


SDLC 2022

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 101


SDLC 2022

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 102


SDLC 2022

Samir Gurung ( B.Tech HND in computing/ 2nd Semester) 103

You might also like