Professional Documents
Culture Documents
Samir Gurung
1/9/2022
STUDENT DECLARATION
I have read and understood Pearson Edexcel Policy on Academic dishonesty and Plagiarism.
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.
Table of Contents
Question:................................................................................................................................................8
Scenario:.................................................................................................................................................9
Part-1:.....................................................................................................................................................9
Executive Summary:..............................................................................................................................9
Introduction to SDLC:..........................................................................................................................10
Phases of SDLC:..............................................................................................................................10
Requirement Analysis:.................................................................................................................11
Design:.........................................................................................................................................11
Develop:.......................................................................................................................................11
Deployment:.................................................................................................................................11
Maintenance:................................................................................................................................12
Predictive Model:.............................................................................................................................12
Sequential model..............................................................................................................................13
Adaptive models:.............................................................................................................................15
Iterative models:...............................................................................................................................15
Agile model..................................................................................................................................16
Agile Scrum.....................................................................................................................................18
Sprint................................................................................................................................................20
Product backlog................................................................................................................................20
DSDM Principles.............................................................................................................................21
Spiral model.....................................................................................................................................22
Development Environment..................................................................................................................28
PHP Storm:.......................................................................................................................................29
Testing team.................................................................................................................................29
Release team.................................................................................................................................30
Waterfall model................................................................................................................................33
Conclusion:..........................................................................................................................................36
Part-2:...................................................................................................................................................36
Question:..............................................................................................................................................36
Introduction..........................................................................................................................................37
Feasibility report..................................................................................................................................37
Technical feasibility.....................................................................................................................37
Economic feasibility.....................................................................................................................37
Legal feasibility............................................................................................................................38
Operational feasibility..................................................................................................................38
Scheduling feasibility...................................................................................................................38
Recommendation..................................................................................................................................39
Technical solution................................................................................................................................40
Conclusion....................................................................................................................................45
Feasibility study...............................................................................................................................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
Scenario:...............................................................................................................................................51
Current system:....................................................................................................................................52
Requirement gathering:........................................................................................................................52
Identifying constraints:.....................................................................................................................54
Specification of Scopes........................................................................................................................56
Security consideration......................................................................................................................58
Quality Assurance............................................................................................................................58
DFD Levels:.........................................................................................................................................61
Requirements tracing...........................................................................................................................65
Traceability..................................................................................................................................67
Conclusion............................................................................................................................................79
Part-4....................................................................................................................................................80
Question:..............................................................................................................................................80
Introduction:.........................................................................................................................................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
Improving the reliability and effectiveness of the software using data driven software..............94
Conclusion........................................................................................................................................95
References............................................................................................................................................95
Appendix:...........................................................................................................................................102
Presentation:...................................................................................................................................102
Question:
Assignment Task-Part 1
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.
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
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.)
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
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
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.)
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.)
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.)
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.
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.)
Advantages
Disadvantages
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.)
Advantages
Disadvantages
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
Disadvantages
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:
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.)
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
vi. Retirement - Operations related to the end of a customer's life, such as client notice and
relocation
(Anon., n.d.)
1. Requirements and planning -This phase define the iteration's requirements based on the
product backlog, sprint backlog, and feedback from customers and stakeholders.
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.)
communication techniques through such principles as daily standup meetings and pair
programming. (Anon., n.d.)
Advantages:
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
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.
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.)
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.)
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 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:
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
Disadvantages
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.)
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.)
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.)
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.
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.
(Anon., n.d.)
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:
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.
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
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.)
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.
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.
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
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.
Advantages
Disadvantages
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.
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:
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
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.
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.
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.)
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.)
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.)
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.)
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.
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.)
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:
Economic feasibility Cost of hardware, software, All the technical cost and the staff
staff, team member, cost needs to be included.
maintenance, etc.
Operational feasibility Project should operate with We will be able to operate project
full features. according to features.
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
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
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.
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.
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
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
Software requirements
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.)
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.)
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
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
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.)
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
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
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.
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
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.)
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
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.)
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
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.)
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.
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
$ 300
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.
2GHz processor
RAM: 4GB
Hard Drive: min 32 GB
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.
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
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.
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.)
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
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.)
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.
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.
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:
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.
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.
Functional requirements
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.)
• 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.
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.)
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.)
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.)
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.)
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
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:
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.
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
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
(Anon., n.d.)
• A multi-testing system
• Innovative programming
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.)
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.
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.
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.
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.)
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.
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:
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
Process
Document
Decision
Data
Database
Flow Arrow
Predefined process
Figure 17 Flowchart
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.)
The pseudo code for the insurance company software according to our scenario is given below:
Fill in forms
Not covered
The insurance company refuse to compensate
Renew Insurance
If (Evidence = true) {
writeIn (“your claim is rewarded”);
}
Else {
writeIn (“sorry, you claim is not rewarded”);
}
If (Over_limit = true) {
writeIn (“sorry, your currency is over limit”);
}
Else {
writeIn (“your currency is successfully exchanged”);
}
If (New_policy = true) {
writeIn (“Policy changed successfully”);
}
Else {
writeIn (“Policy does not change”)
}
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.
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.
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.
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.)
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
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.
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.
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.
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].
[Accessed 30 11 2021].
Appendix:
Presentation: