Backend
Backend
Backend
RQF LEVEL 4
TRADE: Software
Development
(SOD)
TEACHER’S LEARNING
GUIDE
SWDBS401
Hours: 80
Compentence:
Table Of Contents
FURPS is an acronym that stands for functionality, usability, reliability, performance, and
security.
1. Backend:
websites and apps from behind the scenes. It includes all the code needed to build out the
database, server, and application. From database migrations to API integrations to setting
up the server-side technologies that make a website tick, a back-end web developer may
be the talent you need to get your next web project off the ground.
To understand the back end, or the “server side,” you also have to know the front end and
how the two interact. The front end, also called “client-side” programming, is what
happens in the browser—everything the end users see and interact with. The back end, on
the other hand, happens on the server (on site, or in the cloud) and databases. It’s the
machinery that works behind the scenes—everything the end user doesn’t see or directly
It’s important to note that this convenient way of divvying up development has changed
significantly over the past 10 to 15 years with the explosive growth of JavaScript, which
wasn’t as ubiquitous on the front end as it is now, or as common on the back end, thanks
to Node.js. There’s more overlap between the two, especially when it comes to a
Here’s a visual to give you an idea of how front-end and back-end development flow.
You can see how the server-side (in the green box) manages all those requests that come
from users’ clicks. Front-end scripts volley those requests over to the server side to be
processed, returning the appropriate data to the front end. This often happens in a
The “traditional” back end is a mix of the server, databases, APIs, and operating systems
that power an app’s front end. For an in-depth look at the software that ties it all
together, read our article on Server-Side Scripting. The back end of applications can look
very different from application to application, whether it’s the use of cloud-based servers
2. System:
a common goal. In the context of software, a system comprises both frontend (user
3. Server:
In the client/server programming model, a server program awaits and fulfills requests
from client programs, which might be running in the same, or other computers. A given
application in a computer might function as a client with requests for services from other
The term server can refer to a physical machine, a virtual machine or to software that is
performing server services. The way that a server works varies considerably depending on how
Of your back-end stack’s four components, whether it’s on-site or in the cloud, the server
acts as the lifeblood of the network. These high-powered computers provide shared
resources that networks need to run, including file storage, security and encryption,
databases, email, and web services. Once you’ve gotten the basics down about on-site
servers, expand your knowledge with a look at virtualization, how servers get provisioned
to house multiple apps, and containerization, another way servers provision their
4. Database:
facilitates efficient storage, retrieval, and management. Databases are used to store and
10
Middleware
application’s front end to its back end. Think of middleware as plumbing for your site—it
pipes any communication, like requests and responses, back and forth between your
application and your server/database. Just like plumbing in a house, you don’t see
middleware, but it’s there and it has to be reliable and always do what’s expected of it.
layer between the app(s) and the network: the server, the database, the operating
system, and more. Middleware can be multi-layered, organized into different layers of a
site, whether it’s the presentation layer or the business layer. This is also where Web APIs
can play into the stack, providing a bridge between the business layer and presentation
layer.
11
5. Operating System:
Definition: The operating system is software that manages hardware and other software
An operating system (OS) is system software that manages computer hardware and
The systems development life cycle (SDLC) is the overall process for developing information
systems from planning and analysis through implementation and maintenance. The SDLC is the
foundation for all systems development methodologies and there are literally hundreds of
Typical activities include determining budgets, gathering system requirements, and writing
detailed user documentation. The activities performed during each systems development
project will vary. The SDLC begins with a business need, followed by an assessment of the
functions a system must have to satisfy the need, and ends when the benefits of the system no
12
This is why it is referred to as a ‘lifecycle’. The SDLC is comprised of seven distinct phases:
section takes a detailed look at a few of the more common activities performed during the
phases of the systems development life cycle along with common issues facing software
development projects .
13
Definition: An API is a set of rules and protocols that allows one software application to
14
You can’t talk about the back-end portion of an application these days without
integral role in how most server-side software architectures are built, oftentimes
to be transferred.
In Other words
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
There are four different types of APIs commonly used in web services: public, partner, private
and composite.
Definition: JSON is a lightweight data-interchange format that is easy for humans to read
and write and easy for machines to parse and generate. It is commonly used for data
15
JavaScript Object Notation (JSON) is a standard text-based format for representing structured
data based on JavaScript object syntax. It is commonly used for transmitting data in web
applications (e.g., sending some data from the server to the client, so it can be displayed on a
9. Framework:
Definition: A framework is a pre-built set of tools, libraries, and best practices that
UML (Unified Modeling Language) images are visual representations of the UML diagrams used
for modeling software systems. These diagrams can include class diagrams, sequence diagrams,
use case diagrams, and more. They are used to help developers and stakeholders understand
16
Definition: FURPS is an acronym used to categorize software requirements into five key areas:
Functionality (features and capabilities), Usability (user interface and user experience),
Reliability (system stability and fault tolerance), Performance (speed and efficiency), and
These definitions should help in understanding the key terms as you proceed with gathering
FURPS requirements for your software project. If you have specific questions about any of
1. Planning:
Description: Identifying project scope, goals, risks, and resources required. Initial project
2. Analysis:
3. Design:
Description: Creating a blueprint for the system based on the requirements gathered.
This includes architecture, user interfaces, database design, and overall system
structure.
4. Implementation (Coding):
Description: The actual coding of the system based on the design specifications.
Developers write code and build the system according to the approved design.
5. Testing:
Description: Systematic testing of the developed system to identify and fix defects.
Various testing methods, such as unit testing, integration testing, and user acceptance
6. Deployment:
Description: Releasing the system for public use. This involves installing the system on
7. Maintenance:
SDLC Models
Software Development life cycle (SDLC) is a spiritual model used in project management that
defines the stages include in an information system development project, from an initial
There are different software development life cycle models specify and design, which are
followed during the software development phase. These models are also called "Software
17
Development Process Models." Each process model follows a series of phase unique to its type
Waterfall Model
The waterfall is a universally accepted SDLC model. In this method, the whole process of software
as flowing steadily downwards (like a waterfall) through the steps of requirements analysis,
Linear ordering of activities has some significant consequences. First, to identify the end of a
phase and the beginning of the next, some certification techniques have to be employed at the
end of each step. Some verification and validation usually do this mean that will ensure that the
output of the stage is consistent with its input (which is the output of the previous step), and that
the output of the stage is consistent with the overall requirements of the system.
18
RAD Model
RAD or Rapid Application Development process is an adoption of the waterfall model; it targets
developing software in a short period. The RAD model is based on the concept that a better
system can be developed in lesser time by using focus groups to gather system requirements.
o Business Modeling
o Data Modeling
o Process Modeling
o Application Generation
Spiral Model
The spiral model is a risk-driven process model. This SDLC model helps the group to adopt
elements of one or more process models like a waterfall, incremental, waterfall, etc. The spiral
activities.
Each cycle in the spiral begins with the identification of objectives for that cycle, the different
alternatives that are possible for achieving the goals, and the constraints that exist. This is the
first quadrant of the cycle (upper-left quadrant).
The next step in the cycle is to evaluate these different alternatives based on the objectives and
constraints. The focus of evaluation in this step is based on the risk perception for the project.
The next step is to develop strategies that solve uncertainties and risks. This step may involve
V-Model
In this type of SDLC model testing and the development, the step is planned in parallel. So, there
are verification phases on the side and the validation phase on the other side. V-Model joins by
Coding phase.
Incremental Model
The incremental model is not a separate model. It is necessarily a series of waterfall cycles. The
requirements are divided into groups at the start of the project. For each group, the SDLC model
is followed to develop software. The SDLC process is repeated, with each release adding more
functionality until all requirements are met. In this method, each cycle act as the maintenance
phase for the previous software release. Modification to the incremental model allows
19
development cycles to overlap. After that subsequent cycle may begin before the previous cycle
is complete.
Agile Model
testing during the SDLC process of any project. In the Agile method, the entire project is divided
into small incremental builds. All of these builds are provided in iterations, and each iteration
Any agile software phase is characterized in a manner that addresses several key assumptions
change. It is equally difficult to predict how user priorities will change as the project
proceeds.
2. For many types of software, design and development are interleaved. That is, both
activities should be performed in tandem so that design models are proven as they are
created. It is difficult to think about how much design is necessary before construction is
3. Analysis, design, development, and testing are not as predictable (from a planning point
Iterative Model
simplified implementation, which then progressively gains more complexity and a broader
feature set until the final system is complete. In short, iterative development is a way of breaking
Big bang model is focusing on all types of resources in software development and coding, with
no or very little planning. The requirements are understood and implemented when they come.
This model works best for small projects with smaller size development team which are working
together. It is also useful for academic software development projects. It is an ideal model where
20
Prototype Model
The prototyping model starts with the requirements gathering. The developer and the user meet
and define the purpose of the software, identify the needs, etc.
A 'quick design' is then created. This design focuses on those aspects of the software that will be
visible to the user. It then leads to the development of a prototype. The customer then checks
the prototype, and any modifications or changes that are needed are made to the prototype.
Looping takes place in this step, and better versions of the prototype are created. These are
continuously shown to the user so that any new changes can be updated in the prototype. This
process continue until the customer is satisfied with the system. Once a user is satisfied, the
prototype is converted to the actual system with all considerations for quality and security.
Back-end languages will differ in file size, performance, compatibility, how many
lines of code required, and the style of programming. Some back-end scripting
that bundles attributes and functions within objects. Other languages may be
compiled rather than interpreted, something that affects load time, readability,
What is a framework?
21
for building applications. It includes pre-written code, libraries, and tools that help developers
create software applications more efficiently. Therefore, consulting firms often recommend
using the most popular ones to reduce development costs and speed up the time to market.
Python is one of the most popular and effective programming languages that contain vast
libraries and frameworks for almost every technical domain. Python frameworks automate the
implementation of several tasks and give developers a structure for application development.
Depending on the functionality and key features they provide to the user,
Django
Django is a popular open-source full-stack Python framework that includes all the necessary
Web2Py
Flask
developer’s needs. The Flask framework comes under the BSD license and requires the
Bottle
Bottle is a micro-framework for prototyping and building simple personal applications. It was
originally meant for building APIs and is considered by developers as one of the finest Python
web frameworks. It also allows developers to work closely with the hardware to build small and
22
CherryPy is an open-source Python framework that follows a minimalist approach for building
web applications. Released in 2002, it is one of the oldest Python frameworks still popular
today. Unlike other frameworks, you don't need to install the apache server to run CherryPy.
The best thing about this framework is that it allows you to use any type of technology for
A PHP framework is built on the open-source language PHP and offers built-in features to
improve your software development lifecycle. These features increase development speed and
improve performance within your team by lowering the workload of your developers.
1. Laravel
On top of the list is Laravel. It is among one of the most widely used PHP frameworks. It
offers various benefits for businesses, including its robust security to authentication features
along with various useful libraries. This framework is known for its easy-to-read syntax, powerful
By this, it means that when you hire PHP developers, it allows them to make eye-pleasing web
solutions.
Its features, like routing, ORM, authentication, caching, and more, simplify complex tasks and
2. CodeIgniter
solutions. This PHP framework is known for its simplicity, speed, and small footprints.
Its intuitive MVC pattern simplifies web development and allows you to quickly build dynamic
If you are developing a web solution from scratch, this framework will save a lot of time for you.
23
CodeIgniter offers features like database abstraction, caching, security, and session
3. Symfony
It is a highly flexible PHP framework that uses a modular component system. Due to its advanced
features and ease of building large-scale applications with complex requirements, it is a highly
recommended framework.
Major companies like BlaBlaCar, Spotify, Magento, etc., use this robust PHP framework. In 2005,
it was launched, and since then, it has gained extensive enlightenment among web developers.
The reusable components of this framework save time while building web solutions.
Its modular architecture makes it easier for developers to pick and choose components based
Symfony’s strong emphasis on testing and robust community support contribute to its reliability
and stability.
4. Cake PHP
Cake PHP was the first PHP MVC framework created, but still, with the evolving time, it is most
widely used in web development. It will help you develop web solutions loaded with visually
impressive features. On top of that, the framework emphasizes convention over the
configuration approach. By this, it means that it decreases the number of decisions that a Cake
PHP development company is required to make without losing flexibility and do not repeat
24
With built-in features like ORM, validation, caching, and so on, it simplifies development and
applications.
It offers a scaffolding feature that automates code generation for rapid prototyping.
5. Phalcon
It is a full-stack PHP framework and is comparatively different from others. Its source code is
written in C and C++ coding styles. But you don’t have to worry about that as it is implemented
This high-performance-oriented PHP framework is popularly known for its speed and low
Its ability to compile its components into PHP extensions, resulting in lightning-fast execution.
Because of its efficient memory usage, it optimizes the performance of a web application.
Java is proven a predominant programming language, this is the reason for it being the chosen
we will look into the features, advantages, and applications of the following Java Frameworks.
Spring
Hibernate
Struts
25
Wicket
GWT
Dropwizard
Play
Vaadin
Blade
Grails
A JavaScript Framework is a very important part of modern web development. There is no one
framework for the codes, as every JavaScript framework serves a different purpose. The
frameworks are easy to apply as every application or website has some common features. It
1. Angular
2. React
React was introduced in 2013 and was developed by Facebook. It is a reusable framework and
3. Vue.js
is approachable, easy to learn, and can be used for both small and large applications.
4. Node.js
26
5. Polymer
for Single Page Applications. The polymer has a vast area of application as it supports both oneway and
two-way data binding. Its features help developers to create custom elements.
6. Backbone.js
Backbone JavaScript framework is used in the case of Single Page Applications. It is popular due
to its features which allow complex functions with comparatively lesser codes. However,
1. Ruby on Rails
Ruby on Rails is not only one of the most popular Ruby frameworks for web
development, it's also one of the most well-known web development frameworks
regardless of language.
2. Sinatra
Sinatra is more of a DSL than a full-fledged framework. Sinatra lets you quickly create
3. Hanami
Hanami is a Ruby on Rails alternative for building feature-rich, full-stack web apps.
Like Rails, it's an MVC framework and supports many features that Rails does, like
assets.
27
4. Grape
Sometimes, you might want to add REST API capabilities to an existing web app—for
example, if you have a full-stack Rails web app and you now want to offer a REST API
Cuba is a microframework for web development. It's lightweight and offers minimal
features.
System Analysis, “the process of studying a procedure or business in order to identify its goals
and purposes and create systems and procedures that will achieve them in an efficient way.”
1. Grid Charts:
Grid charts are used to represent the relationship between two sets of factors in a tabular
method. A grid chart analysis is helpful in eradicating unnecessary reports or unnecessary data
items from reports. It can also be used for identifying the responsibilities of various managers
for a particular sub-system. Grid chart can be very effectively used to trace the flow of various
28
operations and information of an organization. It depicts the clear relationship between input
processing and output considering the entire system. A set of standard symbols are commonly
3. Decision Tree:
Some decisions involve a series of steps. The outcome of the first decision guides the second;
the third decision depends on the outcome of the second, and so on. In such type of situations
uncertainty.
29
Decision trees are the model to deal with such kind of problems. They are also very important
in decision making in a probabilistic situation where various opinions (or alternatives) can be
drawn (as if they are the branches of a tree) and the final outcomes can be understood.
4. Simulation:
The simulation model describes the operation of the system in terms of individual events,
components of the system. Mainly, it involves the development of a model which is mostly
mathematical in nature rather than directly describing the behavior of the overall system.
In particular, the system is divided into elements whose behavior is predicted in terms of
probability distributions.
30
The inter-relationships between the elements also are built into the model. Thus, simulation
provides a means of dividing the model building job into smaller component parts and then
combining these parts in their natural order and allowing the computer to present the effect of
Simulation is nothing more or less than the technique of performing sampling experiments on
the model of the system. The experiments are done on the model rather than on the real
system itself only because the experiments on the real system would be too inconvenient,
5. Decision Tables:
prepared in a tabular form. It lists all possible conditions and associated set of actions. A
decision table consists of the four parts-condition stub, condition entries, action stub, and
action entries.
Data Gathering
Data gathering is the first and most important step in the research process, regardless of the
type of research being conducted. It entails collecting, measuring, and analyzing information
31
Types of data
Before we can start the discussion on data gathering, we need to review the types of data you
can collect. All data can be divided into two categories, qualitative or quantitative. Further, data
Qualitative data
This type of data can’t be measured or expressed as a number. It s less structured than
information that is descriptive in nature and can consist of words, pictures, or symbols, which is
You indicated that you prefer product A. Why is that your favorite laundry detergent?
Quantitative data
Quantitative data is structured and can be analyzed statistically. Expressed in numbers, the data
can be used to measure variables. The results are objective and conclusive. Questions used to
collect quantitative data are usually “how many,” “how much,” or “how often?”
Once weekly
32
Once a month
Other
1
2
3
First-party data
First-party or primary data is collected directly from your research participants. It’s valuable
data because it is gathered straight from your sources—which eliminates the issues of
misinterpretation and errors. First-party data is the most useful and reliable data for your
research.
Survey responses
Web analytics
Reviews
Email analytics
Interviews
Focus groups
33
Experiments
Observations
The information you can collect from first-party sources includes demographics, purchasing
behaviors, interests, purchasing habits, likes, dislikes, etc.
Second-party data
Second-party or secondary data is data that has already been collected by someone else in the
past. It is less reliable because you cannot be certain of the methodology of the data collection.
It also was performed with a different hypothesis in mind, so analyses may not align well with
Previous research
Books
Websites
Libraries
Newspapers
Public records
Second-party data may be collected before primary data to help find knowledge gaps or to
34
Third-party data
With third-party data, you’re looking at data sets that are put together from various sources.
This type of data has usually been gathered by companies that don’t have direct relationships
FURPS is an acronym that stands for functionality, usability, reliability, performance, and
security. The “F” letter in FURPS refers to the functional requirements that have defined
previously and the remaining letters describe the nonfunctional requirements.
user interface, related work procedures, online help, and documentation (Satzinger,
Jackson, & Burd, 2012). The guide questions of these requirements are “is this
application usable by any system?”, “is this application responding the same way to
measures workload, such as throughput and response time (Satzinger, Jackson, & Burd,
2012).
Security requirements refer to the grant of access control to application and data
The extension of FURPS that adds additional categories is FURPS+, that have introduced
The back-end developer is responsible for the underlying code that powers an application,
website, or other software system. They are responsible for ensuring that the code they write is
35
Defining the scope of a backend system involves determining the specific functionalities and
features that the system will encompass. This includes identifying the data processing, storage,
and retrieval capabilities, as well as the integration with other systems and services.
The scope of a backend system can vary depending on the specific requirements of the project,
Database
Types of databases
There are many different types of databases. The best database for a specific organization
Relational databases
Relational databases became dominant in the 1980s. Items in a relational database are
organized as a set of tables with columns and rows. Relational database technology provides
Object-oriented databases
object-oriented programming.
Distributed databases
A distributed database consists of two or more files located in different sites. The database
may be stored on multiple computers, located in the same physical location, or scattered
36
Data warehouses
A central repository for data, a data warehouse is a type of database specifically designed
NoSQL databases
stored and manipulated (in contrast to a relational database, which defines how all data
inserted into the database must be composed). NoSQL databases grew popular as web
Graph databases
A graph database stores data in terms of entities and the relationships between entities.
OLTP databases. An OLTP database is a speedy, analytic database designed for large
These are only a few of the several dozen types of databases in use today. Other, less common
databases are tailored to very specific scientific, financial, or other functions. In addition to the
advances such as the cloud and automation are propelling databases in entirely new directions.
An open source database system is one whose source code is open source; such databases
Cloud databases
models: traditional and database as a service (DBaaS). With DBaaS, administrative tasks and
Multimodel database
Multimodel databases combine different types of database models into a single, integrated
back end. This means they can accommodate various data types.
Document/JSON database
databases are a modern way to store data in JSON format rather than rows and columns.
37
Self-driving databases
The newest and most groundbreaking type of database, self-driving databases (also known
as autonomous databases) are cloud-based and use machine learning to automate database
tuning, security, backups, updates, and other routine management tasks traditionally
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
Servers
A server is a computer program or device that provides a service to another computer program
38
In a data center, the physical computer that a server program runs on is also frequently
referred to as a server.
Frameworks
Backend frameworks are server-side frameworks designed to make tasks easier for
developers. They provide tools, libraries, and other components that help developers
create the framework for a website or application. Backend frameworks can automate
Interactions between systems are a necessity, a source of opportunity, and a source of difficulty
39
Web server
A web server is a computer system capable of delivering web content to end users over the
The end user processes a request via a web browser installed on a web server. The
communication between a web server or browser and the end user takes place using Hypertext
Transfer Protocol (HTTP). The primary role of a web server is to store, process, and deliver
Physical Storage: All website data is stored on a physical web server to ensure its safety. When
an end user enters the URL of your website or searches it using a keyword on a browser, a
request is generated and sent to the web server to process the data.
A web server can also perform several other functions, such as:
40
o Store and protect website data: A web server can store and protect critical website data from
unauthorized users.
o Control bandwidth to regulate network traffic: A web server can help eliminate the downtime
caused by high web traffic. Web hosts can set bandwidth to manage the rate of data
transmission over the internet and minimize the excess network traffic.
o Server-side web scripting: The server-side web scripting feature enables users to create
dynamic web pages using scripting languages such as Ruby, Python, and PHP.
o Virtual hosting: Web servers can also be used as virtual servers to run multiple applications,
Web browser: The role of web browsers such as Firefox, Chrome, or Internet Explorer is to find
the web server on which your website data is located. Once the browser finds your server, it
Application Server
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
The function of the application server is to act as host (or container) for the user’s business
Database Server
41
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
External services means services supplied to the Company from external suppliers, including
but not limited to, suppliers of Parts, component repair or overhaul, aircraft painting, interior
External Services and API refer to the services and interfaces that are provided by third-party
applications and platforms to allow developers to integrate their own applications with these
services. This allows for greater functionality and interoperability between different systems.
1. Google Maps API - allows developers to integrate Google Maps into their own
applications
2. Facebook API - provides access to Facebook's social graph and other features for
developers
4. Amazon Web Services - provides a wide range of cloud-based services and APIs for
developers
42
deleted.
The focus is on the sequence of the messages when they are saved. Messages are
The back-end developer is responsible for the underlying code that powers an application,
website, or other software system. They are responsible for ensuring that the code they write is
Executive summary
An executive summary provides an overview of the main points of a larger report. It is often
written to share with individuals who may not have time to review the entire report. The reader
should be able to make a decision based only on reading the executive summary.
proposal, or report. It's a section that grabs readers' attention and summarizes critical
information from the document, such as the problem or opportunity being addressed,
A research gap is a question or a problem that has not been answered by any of the existing
studies or research within your field. Sometimes, a research gap exists when there is a concept
43
Recommendations
applications that are tailored to meet the needs of a particular user or organization.
These recommendations are often based on factors such as the user's requirements,
There are various websites and platforms that provide software recommendations,
including Capterra, G2, and TrustRadius, where users can find reviews and ratings for
different software products. These platforms also offer comparison tools to help users
make informed decisions when choosing software for their specific needs.
Python function that takes in user requirements and returns a recommended software
program:
def recommend_software(requirements):
return recommended_software
CONCLUSION :
Now that you know what back-end development involves, let’s distill these concepts into
application (not just websites). The fundamentals of understanding how to build the backend of an
application can thus be applied to a number of different professions. Let’s took
44
Back-end web developers: The most common job for back-end developers is to
build the back end of a website. They are responsible for building and
the front-end and back-end of a technology stack. On small projects they may be
the sole developer building a minimum viable product. On larger projects they
are team leaders assisting with integration between the front and back end of an
app.
another Java developer job or any of the other languages we listed above.
desktop apps.
45
UML, short for Unified Modeling Language, is a standardized modeling language consisting of
an integrated set of diagrams, developed to help system and software developers for
UML is widely used in the software development industry as a way to communicate and
understand system designs and requirements. It allows for clear and consistent communication
Algorithm:
complete a task or give a solution to a particular pain point. To be precise, algorithms are logical
flow charts representing a specific part of the entire back and architecture.
Language independent
Independent of Language
While backend programming represents the backbone of a digital product, algorithms are like a
life source that fuels the backend structure. Algorithms are critical for improving a product’s
Sorting algorithms: bubble sort, selection sort, insertion sort, merge sort, quick sort, etc.
Hash Algorithm
Randomized Algorithm
Search Algorithms
Search algorithms are used to search particular elements from a data structure. There are
several types of search algorithms, and the practical approach of each algorithm differs
47
depending on the data structure. Some most common search algorithms include deep-first
Sorting Algorithms
Sorting algorithms help to arrange an array of data in a particular order according to the
increasing or decreasing order. For example, using the lowest-highest pricing filter or most
popular search filter feature in an ecommerce app. Some common sorting algorithms include
Hash Algorithm
The hash algorithm functions similarly to the search algorithm. Hashing algorithm represents a
logical technique of mapping keys and values into the hash table by utilizing a hash function.
Iterative and recursive algorithms are based on a similar control structure. The main difference
is that iteration functions with a repetitive structure, while recursion leverages a selection
structure. A recursive algorithm calls a function or module again and again until the stopping
condition is satisfied. An iterative algorithm utilizes looping statements, for example, for loopwhile loop
or do-while loop.
solution to avoid repetitive actions to solve the same problem. It divides a larger problem into
Randomized Algorithm
Randomized algorithms utilize random logic, such as numbers or choices, to determine the next
step. Randomized algorithms typically reduce the time and space complexity.
1. We use these algorithms to reduce space and time complexity. There are two types of
randomized algorithms:
48
3. Monte-Carlo algorithms
process. The flowchart shows the steps as boxes of various kinds, and their order by
5. connecting the boxes with arrows. This diagrammatic representation illustrates solution
A data flow diagram (DFD) maps out the flow of information for any process or system. It uses
defined symbols like rectangles, circles and arrows, plus short text labels, to show data inputs,
49
model) describes the structure of a database with the help of a diagram, which is known as
An entity is a "thing" or "object" in the real world that is distinguishable from other objects.The
Entity - Relationship Model (E - R Model) is based on a collection of basic objects,called
50
Here student and college are two different entities "things" or "Objects" and there is only one
relationship between these two entities - i.e.,details.It means student details are in ID.When
student details are opend it specify the student - name,student - class,student - city Known as
Context Diagram:
Context diagrams show the interactions between a system and other actors (external factors)
Decision Table:
A decision table is a brief visual representation for specifying which actions to perform
51
Use-case diagrams describe the high-level functions and scope of a system. These diagrams also
identify the interactions between the system and its actors. The use cases and actors in usecase
diagrams describe what the system does and how the actors use it, but not how the
Class Diagram:
Class diagrams are the blueprints of your system or subsystem. You can use class diagrams to
model the objects that make up the system, to display the relationships between the objects,
and to describe what those objects do and the services that they provide.
52
Decision Tree:
A decision tree is one of the most powerful tools of supervised learning algorithms used for
both classification and regression tasks. Identification of Hardware and Software Technology.
53
Computer Hardware
Hardware refers to the external and internal devices and equipment that enable you to
perform major functions such as input, output, storage, communication, processing, and more.
There are two types of computer hardware: external and internal. External hardware devices
include monitors, keyboards, printers, and scanners, whereas internal hardware devices include
System software
System software is a program designed to run a computer's hardware and applications and
manage its resources, such as its memory, processors, and devices. It also provides a platform
for running application software, and system software is typically bundled with a computer's
operating system.
54
Application Software
Definition
communication. Examples
o Microsoft Office
icrosoft Office is a suite of applications designed to help with productivity and completing
common tasks on a computer. You can create and edit documents containing text and images,
work with data in spreadsheets and databases, and create presentations and posters. Word.
55
o Visual paradigm
Description:
Visual Paradigm is a software application designed for software development teams to model
support, this technology provides report generation and code engineering capabilities including
code generation.
o E-Draw max
Edraw Max is a 2D business technical diagramming software which helps create flowcharts,
organizational charts, mind map, network diagrams, floor plans, workflow diagrams, business
o Browser
A browser is a software program used to locate and display information on the Internet or an
intranet. Browsers are most often used to access Web pages. Most can display graphics,
photographs and text; multimedia information (e.g., sound and video) may require additional
Objective of SSADM
SSADM focuses on the Analysis and Design stages of the Systems Development Life Cycle
(SDLC). SSADM combines three methods, complementing each other within a systems
development cycle: Logical Data Modelling, Data Flow Modelling, Entity Event Modelling.
SSADM Techniques
A logical data model establishes the structure of data elements and the
that details how the data will be implemented. The logical data model
serves as a blueprint for used data. The logical data model takes the
information to them.
56
A data flow diagram (DFD) maps out the flow of information for any
arrows, plus short text labels, to show data inputs, outputs, storage
points and the routes between each destination. Data flowcharts can
multi-level DFDs that dig progressively deeper into how the data is
one. Like all the best diagrams and charts, a DFD can often visually “say”
things that would be hard to explain in words, and they work for both
DFDs remain so popular after all these years. While they work well for
data flow software and systems, they are less applicable nowadays to
systems.
57
The three most important techniques used in SSADM are: logical data modeling The process of
identifying, modeling, and documenting the data requirements of the system under design. The
58
result is a data model containing entities (things a business needs to record information about),
attributes (facts about entities), and relationships (associations between entities). data flow
modeling The process of identifying, modeling, and documenting how data moves within an
information system. In data flow modeling, processes (activities that transform data from one
format to another), data stores (holding areas for data), external entities (what sends data to
the system or receives data from the system) , and data flows (what sends data to the system
Introduction
Object-oriented analysis and design (OOAD) is a technical approach for analyzing and designing
involves using object-oriented concepts to design and implement software systems. OOAD
design patterns, UML diagrams, and use cases. Here are some important aspects of OOAD:
behavior of those objects. OOAD uses this approach to design and implement software
systems.
2. Design Patterns: Design patterns are reusable solutions to common problems in software
design. OOAD uses design patterns to help developers create more maintainable and
3. UML Diagrams: Unified Modeling Language (UML) is a standardized notation for creating
diagrams that represent different aspects of a software system. OOAD uses UML diagrams
4. Use Cases: Use cases are a way of describing the different ways in which users interact
with a software system. OOAD uses use cases to help developers understand the
requirements of a system and to design software systems that meet those requirements.
1. Reusability: OOAD emphasizes the use of reusable components and design patterns,
2. Scalability: OOAD can help developers design software systems that are scalable and can
3. Maintainability: OOAD emphasizes modular design and can help developers create
software systems that are easier to maintain and update over time.
59
4. Flexibility: OOAD can help developers design software systems that are flexible and can
6. Complexity: OOAD can be complex and may require significant expertise to implement
effectively.
8. Rigidity: Once a software system has been designed using OOAD, it can be difficult to
9. Cost: OOAD can be more expensive than other software engineering methodologies due
10. Overall, OOAD can be an effective approach to designing and implementing software
systems, particularly for complex or large-scale projects. However, it’s important to weigh
Object-Oriented Analysis (OOA) is the first technical activity performed as part of objectoriented
software engineering. OOA introduces new concepts to investigate a problem. It is
based on a set of basic principles, which are as follows1. The information domain is modeled.
2. Behavior is represented.
4. Data, functional, and behavioral models are divided to uncover greater detail.
5. Early models represent the essence of the problem, while later ones provide
implementation details.
The above notes principles form the foundation for the OOA approach.
transformed by object-oriented design into a design model that works as a plan for software
creation. OOD results in a design having several different levels of modularity i.e., The major
system components are partitioned into subsystems (a system-level “modular”), and data
manipulation operations are encapsulated into objects (a modular form that is the building
block of an OO system.). In addition, OOD must specify some data organization of attributes
60
Shows a design pyramid for object-oriented systems. It is having the following four layers.
1. The Subsystem Layer : It represents the subsystem that enables software to achieve user
2. The Class and Object Layer : It represents the class hierarchies that enable the system to
develop using generalization and specialization. This layer also represents each object.
3. The Message Layer : It represents the design details that enable each object to
communicate with its partners. It establishes internal and external interfaces for the
system.
4. The Responsibilities Layer : It represents the data structure and algorithmic design for all
The Object-Oriented design pyramid specifically emphasizes specific product or system design.
Note, however, that another design layer exists, which forms the base on which the pyramid
rests. It focuses on the core layer the design of the domain object, which plays an important
role in building the infrastructure for the Object-Oriented system by providing support for
Some of the terminologies that are often encountered while studying Object-Oriented
Concepts include:
2. Class: encapsulates the data and procedural abstractions required to describe the content
and behavior of some real-world entity. In other words, A class is a generalized description
that describes the collection of similar objects.
61
3. Objects: instances of a specific class. Objects inherit a class’s attributes and operations.
4. Operations: also called methods and services, provide a representation of one of the
5. Subclass: specialization of the super class. A subclass can inherit both attributes and
6. Superclass: also called a base class, is a generalization of a set of classes that are related to
it.
Advantages of OOAD:
1. Improved modularity: OOAD encourages the creation of small, reusable objects that can
3. Improved reuse: OOAD encourages the reuse of objects and object-oriented design
patterns, reducing the amount of code that needs to be written and improving the quality
5. Reusability: OOAD emphasizes the use of reusable components and design patterns,
which can save time and effort in software development by reducing the need to create
6. Scalability: OOAD can help developers design software systems that are scalable and can
handle changes in user demand and business requirements over time.
7. Maintainability: OOAD emphasizes modular design and can help developers create
software systems that are easier to maintain and update over time.
8. Flexibility: OOAD can help developers design software systems that are flexible and can
9. Improved software quality: OOAD emphasizes the use of encapsulation, inheritance, and
polymorphism, which can lead to software systems that are more reliable, secure, and
efficient.
Disadvantages of OOAD:
1. Complexity: OOAD can add complexity to a software system, as objects and their
managed, and interacted with, which can slow down the performance of the software.
3. Steep learning curve: OOAD can have a steep learning curve for new software developers,
62
4. Complexity: OOAD can be complex and may require significant expertise to implement
effectively. It may be difficult for novice developers to understand and apply OOAD
principles.
planning and documentation. This can lead to longer development times and higher costs.
6. Rigidity: Once a software system has been designed using OOAD, it can be difficult to
make changes without significant time and expense. This can be a disadvantage in rapidly
Master Software Testing and Automation in an efficient and time-bound manner by mentors
with real-time industry experience. Join our Software Automation Course and embark on an
o Analysis
As discussed previously, object-oriented programming has been around since the 1990s. Formal
design processes when using objects involves many complex stages and are the debate of much
Consider the general cycle that a programmer goes through to solve a programming problem:
Formulate the problem - The programmer must completely understand the problem.
Analyse the problem - The programmer must find the important concepts of the problem.
63
Code - Finally the programmer writes the code to implement the design.
o Design
o Implementation
64
A Data Flow Diagram (DFD) is a traditional visual representation of the information flows within
a system. A neat and clear DFD can depict the right amount of the system requirement
Elements of DFD
Elements that may be included in a flowchart are a sequence of actions, materials or services
entering or leaving the process (inputs and outputs), decisions that must be made, people who
Each data store should have at least one data flow in and one data flow out.
Level 0 (Context)
Level 0 DFD: This is the highest-level DFD, which provides an overview of the entire system. It
shows the major processes, data flows, and data stores in the system, without providing any
view, showing the system as a single process with its relationship to external entities. It
represents the entire system as a single bubble with input and output data indicated by
incoming/outgoing arrows.
65
Level 1
Level 1 DFD: This level provides a more detailed view of the system by breaking down the major
processes identified in the level 0 DFD into sub-processes. Each sub-process is depicted as a
separate process on the level 1 DFD. The data flows and data stores associated with each subprocess are
also shown.
- 1-level DFD: In 1-level DFD, the context diagram is decomposed into multiple
bubbles/processes. In this level, we highlight the main functions of the system and
66
Level 2 DFD: This level provides an even more detailed view of the system by breaking down
the sub-processes identified in the level 1 DFD into further sub-processes. Each sub-process is
depicted as a separate process on the level 2 DFD. The data flows and data stores associated
- 2-level DFD: 2-level DFD goes one step deeper into parts of 1-level DFD. It can be used
Software tools
Microsoft office
Microsoft Office is a suite of applications designed to help with productivity and completing
visual paradigm
67
Visual Paradigm is a powerful, cross-platform and yet easy-to-use design and management
tool for IT systems. Visual Paradigm provides software developers the cutting edge
development platform to build quality applications faster, better and cheaper! It facilitates
excellent interoperability with other CASE tools and most of the leading IDEs which excels
E-draw
draw a vase with charcoal; to draw the comedy's characters with skill. to
compose or create (a picture) in lines. to mark or lay out; trace: to draw
Now that you know what makes up a data flow diagram, let’s see how easy it is to make one
using our powerful, online tool. We provide a ton of templates to use as a starting point. In this
how-to, we’re going to create a Level 0 DFD for an online shopping experience. Log in to your
account (if you don’t have one, sign up to try Lucidchart free for a week) and follow the steps
In the Documents section, click on the orange +Document button and double-click on the Blank
68
Click on the Blank ERD & Data Flow header in the top left corner of the screen. A pop-up screen
opens, type the name of your diagram in the text box and click OK. The name of your DFD
69
In the left column of the screen, you’ll notice a lot of shapes and symbols. We’ve already
created the four symbols you’ll need to make a DFD. You can also add images to the diagram.
Scroll through the list of symbols until you get to the bottom and see the heading Data Flow.
These are all the DFD symbols you need. (Note: Mouse over each shape to see what they
represent: process, data stores, data flow, and external entities). We have symbols for Yourdon
and Coad, Yourdon and DeMarco, and Gane and Sarson methods. Click and hold External Entity
and drag it onto the workspace.
70
Click the highlighted text in the box and type the name of the external entity. For our example,
we’re typing “customer.” You can use the curved arrow in the top left corner of the square to
rotate the symbol. Delete a symbol by clicking it and pressing delete on your keyboard.
Click and hold on a process symbol and drag it to where you want it on the workspace. Type the
name of the process. We’re calling this process “add product to cart.”
71
Click and hold on a data store symbol and drag it to where you want it on the workspace. Type
Drag-and-drop the appropriate symbols to add all the external entities, processes, and data
stores to your diagram. Move symbols around by clicking and holding on them, and then drag
them to a new location. Click on a symbol to resize it, then click and hold the blue box in one of
the corners and drag the corner to make the shape bigger or smaller. Use the background graph
72
Double-click on an entity, process, or data store, and then click and hold one of the orange
73
Tip: If you prefer to create the data flow process as you complete the diagram, click on an
entity, process, or data store and then click and hold one of the orange circles and drag the line
to draw an arrow. Release the mouse button and a box with DFD symbols will appear. Click on
Add a name to describe the data flow by double-clicking on the arrow line. An option to type
Once you have the basic design of your diagram, you can add colors to symbols, change fonts,
Add colors to symbols: Click on a symbol on the diagram and then click the color-fill icon and
choose a color.
Tip: To make multiple symbols the same color, click the first item and then hold the shift key
and click the remaining shapes. Next, click the color-fill icon and choose a color.
74
Change the font: Choose Select All from the Edit option in the menu. Click the font box,
choose a new font, and click it. All text in the diagram will be updated. You can use the other
shortcuts (font color, size, bold, italic, underline, and alignment) to customize the font even
more.
Adjust arrow style: Click an arrow to select it. Next, click the arrow icon in the menu bar and
75
Tip: To change the style of all the arrows, choose Select All from the Edit menu.
At the top of the symbols column, you’ll see a large letter T. Click it and drag it to where you
want to add a title to the diagram. Type the title, and if you’d like to, adjust the font and type
You can easily share your DFD with others either via email, link, social media (Facebook,
Twitter, Google+, and LinkedIn), or embed it on a website. Click the blue Share button in the
top right corner of the screen and a pop-up will appear. Choose how you’d like to share the DFD
77
When you add a collaborator by sending a link to the DFD via email, you can work on the data
flow diagram simultaneously and use the chat feature (the yellow quote icon in the top right
There you have it, the easiest way to make a data flow diagram online. Since Lucidchart is a
web-based app, your diagram is automatically saved, and you can access it virtually anywhere
you have an Internet connection. When you share your DFD with colleagues, you’ll never have
to wonder if they can open the file or access it. Best of all, if you give them permission to edit
they can make changes to the DFD and add comments. Sign up for a free trial and see how easy
it is to use Lucidchart.
78
Database objects
Physical database design consists of defining database objects and their relationships.
Tables
Constraints
Indexes
Triggers
Sequences
Views
Usage lists
You ca use Data Definition Language (DDL) statements or tools such as IBM® Data Studio to
create these database objects. The DDL statements are generally prefixed by the keywords
CREATE or ALTER.
Understanding the features and functionality that each of these database objects provides is
important to implement a good database design that meets your current business's data
storage needs while remaining flexible enough to accommodate expansion and growth over
time.
Tables
Tables are logical structures maintained by the database manager and are made up of
columns and rows. DB2 databases store persistent data in tables, but there are also
tables that are used for presenting results, summary tables and temporary tables.
Constraints
Within any business, data must often adhere to certain restrictions or rules. For
Indexes
An index is a set of pointers that are logically ordered by the values of one or more
keys. The pointers can refer to rows in a table, blocks in an MDC or ITC table, XML data
Triggers
A trigger defines a set of actions that are performed in response to an insert, update,
or delete operation on a specified table. When such an SQL operation is executed, the
trigger is said to have been activated. Triggers are optional and are defined using the
79
Sequences
A sequence is a database object that allows the automatic generation of values, such
as cheque numbers. Sequences are ideally suited to the task of generating unique key
performance problems resulting from column values used to track numbers. The
advantage that sequences have over numbers created outside the database is that the
database server keeps track of the numbers generated. A crash and restart will not
Views
A view is an efficient way of representing data without the need to maintain it. A view
is not an actual table and requires no permanent storage. A "virtual table" is created
and used.
Cursors
A cursor is used in an application program to select a set of rows and then process that
returned data one row at a time. When a SELECT statement in an embedded SQL
application returns multiple rows of data, you need a mechanism that makes this
returned data or result set available to your application program, one row after
another.
DB2 instance.
Usage lists
A usage list is a database object that records each DML statement section that
references a particular table or index. A section is the executable form of the query.
Statistics are captured for each statement section as it executes. Use usage lists when
you want to determine which DML statements, if any, affected a table or index.
Design Database
Tables
Relationships
Relationships are meaningful associations between tables that contain related information —
they’re what make databases useful. Without some connection between tables in a database,
you may as well be working with disparate spreadsheet files rather than a database system.
As we covered in our short overview of databases, databases are collections of tables, and
those tables have fields (also known as columns). Every table contains a field known as
80
an entity (or primary) key, which identifies the rows within that table. By telling your database
that the key values in one table correspond to key values in another, you create a relationship
between those tables; these relationships make it possible to run powerful queries across
different tables in your database. When one table’s entity key gets linked to a second table, it’s
Identifying the connections you’ll need between tables is part of the data modeling and schema
design process — that is, the process of figuring out how your data fits together, and how
exactly you should configure your tables and their fields. This process often involves creating a
visual representation of tables and their relationships, known an entity relationship diagram
(ERD), with different notations specifying the kinds of relationships. Those relationships
One-to-one
One-to-many
Many-to-many
Giving some thought to how your tables should relate to each other also helps ensure data
One-to-one relationship
In a one-to-one relationship, a record in one table can correspond to only one record in
another table (or in some cases, no records). One-to-one relationships aren’t the most
common, since in many cases you can store corresponding information in the same table.
Whether you split up that information into multiple tables depends on your overall data model
81
Let’s say you’re organizing employee information at your company, and you also want to keep
track of each employee’s computer. Since each employee only gets one computer and those
computers are not shared between employees, you could add fields to your Employee table
that hold information like the brand, year, and operating system of each computer. However,
that can get messy from a semantic standpoint — does computer information really belong in a
table about employees? That’s for you to decide, but another option is to create
a Computers table with a one-to-one relationship to the Employee table, like in the diagram
below:
In this case, the entity key from our Employee table serves as the foreign key for
the Computers table. You may have computers that aren’t yet assigned to employees, and
this modeling ensures that you can still keep records for them the Computer table. And if an
employee leaves the company, you’ll only need to update one field, and you can easily link a
82
The exact formatting of the lines used to connect tables in an ERD (known as crow’s foot
notation) varies; sometimes you’ll see plain lines indicating a one-to-one relationship, other
One-to-one relationships can be also useful for security purposes, like if you want to store
One-to-many relationship
One-to-many relationships are the most common type of relationships between tables in a
For example, think about tables for customers and their orders, like in Metabase’s Sample
Database, where one record from the People table can be linked to many records in
the Orders table. In this case, one customer can place many orders, and those multiple order
records will all link back to a single record in the People table. That connection is codified
through the User_ID field, which is a primary key in the People table and a foreign key in
the Orders table. The diagram below shows how these two tables relate to each other:
83
Fig. 2. A one-to-many relationship between the Sample Database's People and Orders tables.
While the one person can be linked to many orders, the reverse is not true — orders are only
linked to a single record in the People table, and don’t have many customers.
Many-to-many relationship
A many-to-many relationship indicates that multiple records in a table are linked to multiple
records in another table. Those records may only be associated with a single record (or none at
all) but the key is that they can and often are linked to more than one. Many-to-many
relationships aren’t very common in practical database use cases, since adhering to
focused tables.
In fact, your database system may not even allow for the creation of a direct many-to-many
relationship, but you can get around this by creating a third table, known as a join table, and
84
In this sense, the Orders table in Metabase’s Sample Database acts as a join table, creating an
intermediate link between People and Products . An ERD of the Sample Database would look
something like the image below, where each relationship is specified by the type of line used to
Technically speaking the Products and Orders tables have a one-to-many relationship, in
that one product can be associated with many orders. But according to our fake company’s
database, people seem to only order a single product (they’ll buy like five Lightweight Wool
implementation of this database would probably include a join table between the two, making
Definition
The System Design Document describes the system requirements, operating environment,
system and subsystem architecture, files and database design, input formats, output layouts,
The System Design Document (SDD) describes how the functional and nonfunctional
functional design recorded in the High Level Technical Design Concept/Alternatives document,
The Functional Specification Document (FSD) is written by the project's Business Analyst
and provides detailed information on how the system solution will function based on what the
This specification outlines the details of a product’s design and the technical requirements for
its development. It is a roadmap for engineers and developers to follow during the design and
implementation phase.
The document specifies the technical attributes and requirements of the product, including the
tools, technologies, and programming languages that will be used. It also describes the
The Database Design Document maps the logical data model to the target database
management system with consideration to the system's performance requirements.
86
87
A use case document is a standardized document that describes a use case in detail. It includes
the steps, preconditions, assumptions and expected outcomes or results. On the other hand, a
use case is a general term that describes a specific scenario or interaction between a user or
System documentation
System documentation provides an overview of the system and helps engineers and
document, architecture design, source code, validation docs, verification and testing info, and
88
User documentation
intended for the end-user of a product or a service. The purpose of this documentation is to
guide the users on how to properly install, use, and/or troubleshoot a product.
89
However, there is a simple way to categorize them on the basis of the problems they solve.
Keeping that angle in mind, user documentation can be classified into the following types:
Installation/Setup Guide
Getting started with certain products, like enterprise software applications, gadgets, fixtures,
etc., requires some level of technical expertise.
To that end, manufacturers provide such products with comprehensive installation or setup
guides, including detailed, step-by-step instructions to make the overall process userfriendly.
With the help of these tutorials, businesses ensure that the end-users don’t mess up when
This refers to the complete, in-depth user guide that comes with any product with even the
troubleshooting steps, and a breakdown of the user interface and/or the various features in
between.
Most of the time, whenever someone talks about user documentation, they’re referring to
Reference Guides
90
These user documents come with software products, and are intended for more experienced
end-users.
A reference document sheds light on the functionality of any one aspect or feature of a
product. That way, if any user, who already knows a great deal about the product at hand,
can get quick information about certain features without having to skim through the entire
user manual.
Technical documentation encompasses every form of technical writing that helps shed light
Some may argue that there aren’t any differences between the two, and that the only point
of difference is that user documentation comes under the broad umbrella of technical
documentation.
However, for simplicity’s sake, and to ensure that you don’t confuse both, user
documentation is meant for the end-user, whereas technical documentation is meant for
everyone else.
Take a software product as an example. Its technical documentation could include the
following:
including the basic and advanced features, functionality, resources, and goals, among
other things. This is meant for the software development teams and testers.
software product and describe the design principles for the development teams.
91
Market Strategy – this is created by the product marketing team to provide a northstar and a game
plan to bring a new product to the market.
All of the aforementioned types of documentation have one thing in common – none of
That’s where user documentation comes in. It’s not meant for the technical, marketing, and
other strategic stakeholders directly involved with the product, but rather for the people
For that reason, naturally, user documentation requires a different “level” of language (more
on this later).
92
There are a lot of elements that go into accomplishing the ultimate goal of helping users
These include:
1. Simple Language
When it comes to any form of technical writing, perhaps the most important thing is the
simplicity of language.
93
This is especially true for documentation targeted at end-users, who don’t have much
technical knowledge.
There’s no room for jargon. Even the most advanced features should be broken down in the
simplest way possible to effectively explain its functionality and how to get the most out of
it.
2. A Good Flow
The second most crucial element of all successful user documentation is having a logical flow
The goal is to deliver a coherent experience to your users in a way that makes sense, by
For instance, if you’re selling an enterprise software, you wouldn’t want to start with the
Instead, you’d want to start off by helping them get set up, break down the user interface,
and then take them through the individual features and what they can accomplish with
them.
3. Use of Visuals
Visuals can help simplify a complicated process and make it easier to understand. To that
end, in addition to written instructions of a process, it’s highly recommended that you
Examples of visuals can include illustrations, screenshots, GIFs, or even short tutorial videos.
94
4. Accessibility
All the digital documentation should be accessible to everyone. This includes optimizing your
content in a way that it shows up properly on both desktop and mobile devices, and can be
For example, if you have your user documentation on a website, you might want to include
Similarly, for those with audio impairment, ensure that the written content is clearly visible.
5. More Resources
Finally, your user documentation should include additional resources that the user might
find useful.
Any sort of link that leads to online help or contact details that get them in touch with a
These details should be included throughout the documentation, or towards the end of the
document.
Now that you know what elements go into making any user documentation successful, we’re
determine who your audience is and their level of understanding. In addition, you
need to figure out what potential problems they might face when using your product.
95
Figure Out the Format – based on the accessibility of your audience, you need to
figure out what format you’re going to use for the documentation. A good format is
to pool all the resources into a knowledge base (51% of customers prefer online
technical support).
Create a Solid Outline – this goes back to having that logical flow. A good tip is to
start off with a rough table of contents, so that you don’t miss out on anything
important.
Finalize the Design – finally, decide on a compelling design that also helps you convey
Start Solving One Problem at a Time – once you’ve decided on an outline and your
design, it’s time to craft the documentation. Craft every sentence based on the
reading level of your users, incorporate visuals, throw in some FAQs, and start solving
their problems.
Finally, edit away your user documentation for any potential errors.
Ending Note
Companies that invest in effective user documentation tend to experience higher customer
However, creating one isn’t as simple as typing up a few step-by-step instructions. It entails:
Deciding what formats and channels would be best to reach your end-users
And that’s just the surface. Those three things themselves entail a lot.
96
Finally, companies also need to consistently update and improve their documentation based
All things considered, without decent user documentation, your product is essentially
incomplete.
97
98
99
100
101