Backend Notes
Backend Notes
Backend Notes
Leval:4
• It typically consists of tables that store related data and can be queried
and manipulated using database management systems (DBMS) such as
MySQL, PostgreSQL, or Microsoft SQL Server.
• Framework:
Typically the SDLC has 8 steps (phases) in the development and improvement of
a computer system.
1. Preliminary study
2. Feasibility study
3. Detailed system study
4. System analysis
5. System design
6. Coding
7. Testing
8. Implementation
9. Maintenance
Let us now describe the different phases and related activities of system
development life cycle.
Preliminary system study is the first stage of system development life cycle. In
practice, the initial system study involves the preparation of a ‘System Proposal’
which lists the Problem Definition, Objectives of the Study, Terms of reference
for Study, Constraints, and Expected benefits of the new system, etc. in the light
of the user requirements. The system proposal is prepared by the System Analyst
(who studies the system) and places it before the user management. The
management may accept the proposal and the cycle proceeds to the next stage.
The management may also reject the proposal or request some modifications in
the proposal. In summary, we would say that system study phase passes
through the following steps:
In case the system proposal is acceptable to the management, the next phase is
to examine the feasibility of the system. The feasibility study is basically the test
of the proposed system in the light of its workability, meeting user’s
requirements, effective use of resources and of course, the cost effectiveness.
These are categorized as:
Technical feasibility
Operational feasibility
Economic feasibility
And schedule feasibility.
1. Technical Feasibility
Technical feasibility also involves the evaluation of the hardware, software and
other technical requirements of the proposed system. A project may requiring
many technical resources, where many cost more than that an organizational
could earn back.
2. Operational feasibility
3. Economic feasibility
4. Schedule feasibility
In schedules feasibility study, organization estimates how much time the project
will take to be completed.
5. Legal Feasibility
The main goal of feasibility study is not to solve the problem but to achieve the
scope.
In the process of feasibility study, the cost and benefits are estimated with
greater accuracy to find the Return on Investment (ROI). This also defines the
resources needed to complete the detailed investigation. The result is a
feasibility report submitted to the management. This may be accepted or
accepted with modifications or rejected. The system cycle proceeds only if the
management accepts it.
1. Grid chart
2. System flow Chart
3. Decision Tree
4. Simulation
5. Decision table
Based on the user requirements and the detailed analysis of the existing system,
the new system must be designed. This is the phase of system designing. It is
the most crucial phase in the developments of a system. The logical system
design arrived at as a result of systems analysis is converted into physical
system design. Normally, the design proceeds in two stages:
Structured or Detailed Design: In the detailed design stage; the design of the
system becomes more structured. Structure design is a blue print of a computer
system solution to a given problem having the same components and inter-
relationships among the same components as the original problem.
Notes:
There are several tools and techniques used for describing the system design of
the system. These tools and techniques are:
Flowchart
Data flow diagram (DFD)
Data dictionary
Structured English
Decision table
Decision tree
(e) Coding
This also called the programming phase in which the programmer converts the
program specifications into computer instructions, which we refer to as
programs. It is an important stage where the defined procedures are transformed
into control specifications by the help of a computer language. The result of the
phase is workable system
(f) Testing
Before actually implementing the new system into operation, a test run of the
system is done for removing the bugs, if any. It is an important phase of a
successful system. After codifying the whole programs of the system, a test plan
should be developed and run on a given set of test data. The output of the test
run should match the expected results. Sometimes, system testing is considered
a part of implementation process. The purpose of testing phase is removing the
bugs from the system if any.
Using the test data following test run are carried out:
Program test
System test
Program test: Done when the programs have been coded, compiled and brought
to working conditions, they must be individually tested with the prepared test
data. Any undesirable happening must be noted and debugged (error
corrections).
This test done when the programs have been coded and compiled.
System Test: After carrying out the program test for each of the programs of the
system and errors removed, then system test is done. At this stage the test is
done on actual data. The complete system is executed on the actual data.
At each stage of the execution, the results or output of the system is analyzed.
During the result analysis, it may be found that the outputs are not matching
the expected output of the system.
In such case, the errors in the particular programs are identified and are fixed
and further tested for the expected output.
When it is ensured that the system is running error-free, the users are called
with their own actual data so that the system could be shown running as per
their requirements. The result is user acceptance of the system or System
validation.
(g) Implementation
After having the user acceptance of the new system developed, the
implementation phase begins. Also called deployment phase. At this phase the
product made in use. After the product team tests product and product passes,
the product is ready to go live.
It seems like the final phase of SDLC. It puts the products into production
The hardware and the relevant software required for running the system must
be made fully operational before implementation. The conversion is also one of
the most critical and expensive activities in the system development life cycle.
The data from the old system needs to be converted to operate in the new format
of the new system. The database needs to be setup with security and recovery
procedures fully defined.
During this phase, all the programs of the system are loaded onto the user’s
computer. After loading the system, training of the user starts. Main topics of
such type of training are:
How to execute the package?
How to enter the data?
How to process the data (processing details)?
How to take out the reports?
After the users are trained about the computerized system, working has to shift
from manual to computerized working. The process is called ‘Changeover’.
Changeover of the System: Is a smooth shift from old system to new system.
(i) Direct Changeover: This is the complete replacement of the old system by
the new system. It is a risky approach and requires comprehensive system
testing and training.
(ii) Parallel run: In parallel run both the systems; computerized and manual,
are executed simultaneously for certain defined period. The same data is
processed by both the systems. This strategy is less risky but more expensive
because of the following:
(iii) Pilot run: In this type of run, the new system is run with the data from one
or more of the previous periods for the whole or part of the system. The results
are compared with the old system results. It is less expensive and risky than
parallel run approach. This strategy builds the confidence and the errors are
traced easily without affecting the operations.
The documentation of the system is also one of the most important activity in
the system development life cycle. This ensures the continuity of the system.
There are generally two types of documentation prepared for any system. These
are:
The user documentation is a complete description of the system from the user’s
point of view detailing how to use or operate the system.
It also includes the major error messages likely to be encountered by the users.
This helps to understand the system and permit changes to be made in the
existing system to satisfy new user needs.
(i) Maintenance
System Analyst: is the one who work with the customers to identify and
document the requirement.
Business Analyst: Is a systems analyst that specialized in business prob
lem analysis and technology independent requirements analysis.
System Designers: Translate system users' business requirements and c
onstraints into technical solutions. They design the computer files, data
bases, inputs,
outputs, screens, networks and programs that will meet the system user
s' requirements.
System Programmer: Write lines of code to implement the system design.
Convert system design into working system.
Testers: Catch faults
Trainers: Show users how to use system
Maintenance Team: Fix faults that show up later
Librarians: Prepare and store documents such as software requirements
Configuration management Team: Maintain correspondence among
various artefacts.
System Maintenance: It is the act of regularly checking your system for issues,
mistakes, and keeping it updated and relevant.
Links testing
Forms testing for all pages
Cookies testing
HTML/CSS validation
Usability resting
Content testing
UI (User Interface testing)
Compatibility (Configuration testing)
Cross-platform testing
Database testing
Security testing
Change related testing.
Mobile-friendly testing.
Beta testing
This type of testing is also known as This type of testing is also known as Backend
Graphical User Interface testing or Front-end Testing or data testing.
Testing.
This type of testing chiefly deals with all the This type of testing chiefly deals with all the
testable items that are open to the user for testable items that are generally hidden from
viewership and interaction like Forms, the user for viewership. These include
Presentation, Graphs, Menus, and Reports, internal processes and storage like Assembly,
etc. (created through VB, VB.net, VC++, DBMS like Oracle, SQL Server, MYSQL, etc.
Delphi - Front-end Tools )
This type of testing includes validating the This type of testing involves validating:
The tester must be thoroughly knowledgeable To be able to perform backend testing, must
about the business requirements as well as the tester have a strong background in the
the usage of the development tools and the database server and Structured Query
usage of automation frameworks and tools. Language concepts.
Software verification
1. Verification helps in lowering down the count of the defect in the later
stages of development.
2. Verifying the product at the starting phase of the development will help in
understanding the product in a better way.
3. It reduces the chances of failures in the software application or product.
4. It helps in building the product as per the customer specifications and
needs.
Software validation
Validation is basically done by the testers during the testing. While validating
the product if some deviation is found in the actual result from the expected
result then a bug is reported or an incident is raised. Not all incidents are bugs.
But all bugs are incidents. Incidents can also be of type ‘Question’ where the
functionality is not clear to the tester.
1. Waterfall
Each stage has concrete deliverables and is strictly documented. The next stage
cannot start before the previous one is fully completed. Thus, for example,
software requirements cannot be re-evaluated further in development. There is
also no ability to see and try software until the last development stage is finished,
which results in high project risks and unpredictable project results. Testing is
often rushed, and errors are costly to fix.
Use cases:
Use cases:
It creates base to produce the final system or software. It works best in scenarios
where the project's requirements are not known in detail.
Software prototyping is the activity of creating prototypes of software
applications, i.e., incomplete versions of the software program being
developed.
A prototype is a version of a system or part of the system that’s developed quickly
to check the customer’s requirements or feasibility of some design decisions. In
short it is incomplete versions of the software program being developed.
So, a prototype is useful when a customer or developer is not sure of the
requirements, or of algorithms, efficiency, business rules, response time, etc.
In prototyping, the client is involved throughout the development process, which
increases the likelihood of client acceptance of the final implementation.
While some prototypes are developed with the expectation that they will be
discarded, it is possible in some cases to evolve from prototype to working system.
[1] In the requirements engineering, a prototype can help with the elicitation
and validation of system requirements.
It allows the users to experiment with the system, and so, refine the
requirements. They may get new ideas for requirements, and find areas of
strength and weakness in the software.
[2] In the system design, a prototype can help to carry out design experiments
to check the feasibility of a proposed design.
For example, a database design may be prototype-d and tested to check it
supports efficient data access for the most common user queries.
For the first released increment, the team builds the basic functionality
to buy a product. It includes search, product information, adding
products to a shopping basket and checkout. This first slice would only
be released once it’s complete.
5. Iterative model
The first release has a really stripped back version of all the required
functionality; namely search, product information, a shopping basket,
checkout, favorites, and customer reviews.
For the second iterative release, the team would improve some of the
existing basic functionality, taking into account feedback from
stakeholders or customer, or other inputs such as analytics.
This SDLC model typically entails some customer involvement because of the
possible need in small requirements amendments during the development
process.
6. AGILE MODEL
Grid chart
System Flowchart
Decision tree
Simulation
Decision table
5. Data gathering
Tools/Techniques/Method for data collection
These tools have unique abilities, but they complement each other. This is
why the analyst must use them in turn.
1. The interview
2. The observation
The observation allows the analyst to realize with his own eyes how
activities are performed. This tool can complement what has been
collected using other methods. The method of observation has two
major problems:
The time in which the observation is made may have some different
realities being calm (if such there can customers) and others are
busy (eg when there are many customers).
The observation itself can be a problem because people often do not
feel comfortable when they are observed.
3. The questionnaire
The questionnaire is a tool for gathering information using questions
appropriate to many people when the time factor does not pose
problems.
Usability: Who will use the product? How will they use it? What look-
and-feel do you want? What about help screens and self-help
“wizards”? One often overlooked area is that of user documentation
and training–often sub-projects unto themselves!
FURPS Requirements
Requirements become a key focus of analysis activities in system development
life cycle. Analysts spend most of their time to requirements: gathering
information about requirements, formalizing them through generating models
and prototypes, refining and expanding them, prioritizing them, and generating
and evaluating such alternatives. Because of this, we need to have a clear
definition of requirements.
System requirements are all the activities must perform or support and the
constraints that the new system must meet. System requirements are divided
into two categories: functional requirements and nonfunctional requirements.
The “F” letter in FURPS refers to the functional requirements that have defined
previously and the remaining letters describe the nonfunctional requirements.
The extension of FURPS that adds additional categories is FURPS+, that have
introduced previously. This extension includes design constraints as well as
implementation, interface, physical, and supportability requirements—which
denotated by plus sign. According to Satzinger, Jackson, & Burd (2012), the
short descriptions of each category explained as follows:
Database
Databases often store information about people, such as customers or
users. For example, social media platforms use databases to store user
information, such as names, email addresses and user behavior. The
data is used to recommend content to users and improve the user
experience
APIs
API stands for Application Programming Interface. In the context of APIs,
the word Application refers to any software with a distinct function.
Interface can be thought of as a contract of service between two
applications. This contract defines how the two communicate with each
other using requests and responses.
Servers
A server stores, sends, and receives data. In essence, it "serves" something else
and exists to provide services. A computer, software program, or even a storage
device may act as a server, and it may provide one service or several.
Frameworks
A framework in programming is a tool that provides ready-made components or
solutions that are customized to speed up development. A framework may
include a library but is defined by the principle of inversion of control (IoC).
Specific (Sensible, Simple, and Significant) – Make sure that your goals
are specifically defined. For instance, a goal could be to improve the social
media presence of your company. But a specific goal would be to increase
the number of followers and level of engagement on Twitter.
Measurable (Motivating and Meaningful) – Measurable goals allow you
to track your progress. For example, your goal could be to boost sales by
20% by the end of December 2022.
Web server
On the hardware side, a web server is a computer that stores web
server software and a website's component files (for example, HTML
documents, images, CSS stylesheets, and JavaScript files). A web
server connects to the Internet and supports physical data interchange
with other devices connected to the web.
Application Server
An application server is a modern form of platform middleware. It is
system software that resides between the operating system (OS) on one
side, the external resources (such as a database management system
[DBMS], communications and Internet services) on another side and
the users' applications on the third side.
Database Server
A database server is a type of hardware that runs database software.
Database software helps users or companies store, manage, retrieve,
update or change files, information logs and other forms of digital data.
External Services and API
What is external service API?
Firstly, in a sense, messages and events are the same thing – an event is the
source that generates a message. They are both resented by packets of data.
Message queue services and event streaming services disconnect the event
generators and the consumers, so that even if a consumer is temporarily offline
or unable to receive or process the messages, the messages are not lost and
guaranteed to reach the consumers.
There are a lot of things that must be done to achieve the above goal, which are
heavy burdens for the generators or consumers if they have to do it themselves.
By putting a message queue service or event streaming service in the middle,
this burden is removed from the generators and consumers.
The focus is not to guarantee that the recipients get the messages in
a particular order.
The focus is on the sequence of the messages when they are saved.
Messages are only appended to the end of the stream.
Similarities
Both allow the clients to call a blocking function and wait for a new
message to arrive.
The differences are how efficiently and conveniently these actions can be done.
When
It is important that clients of the services can traverse and process the
events in the stream, for example to run analytics on them, Therefore
the safe storage of the events/messages are critical.
Executive summary
Recommendations