Backend

Download as rtf, pdf, or txt
Download as rtf, pdf, or txt
You are on page 1of 68

1

RQF LEVEL 4

TRADE: Software

Development

(SOD)

TEACHER’S LEARNING

GUIDE

SWDBS401

Module Name & Code

Prepared by: Eng. Innocent N

Hours: 80

Compentence:

DESIGN BACKEND SYSTEM

SCHOOL: GLORY ACADEMY

Table Of Contents

 Gathering FURPS Requirements

FURPS is an acronym that stands for functionality, usability, reliability, performance, and

security.

Definition of Key Terms

1. Backend:

 Definition: The backend refers to the server-side of an application where data is

processed, and business logic is executed. It includes server technologies, databases,


and other components that are not directly seen by end-users.

What doesis Back-End System development mean?

Back-end development refers to the development of server-side logic that powers

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.

Front-end vs back-end development

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

interact with, but that powers what’s happening.

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

JavaScript developer’s role on a fully JavaScript-powered stack.

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

constant loop of requests and responses to the server.


Now, let’s take a look at how back-end architecture works—the software and machinery

that take over in step four in the above graphic.

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

and data warehouses, containerization with a service like Docker, Backend-as-a-Service

(BaaS) providers, or APIs to replace more complex processing.

2. System:

 Definition: A system is a set of interconnected components working together to achieve

a common goal. In the context of software, a system comprises both frontend (user

interface) and backend components.

It is an organized set of doctrines, ideas, or principles usually intended to explain the

arrangement or working of a systematic whole.

Systems management is the administration of the information technology (IT) systems

in an enterprise network or data center. An effective systems management plan

facilitates the delivery of IT as a service and allows an organization's employees to

respond quickly to changing business requirements and system activity.

Example: Shop Management syatems, E-learning systems…

3. Server:

 Definition: A server is a computer or software that provides services or resources to

other computers or clients in a network. In web development, servers handle requests

from clients and manage data processing.


Database servers, print servers, mail servers, file servers, application servers, web servers, and

game servers are a few examples of servers.

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

programs and as a server of requests from other programs.

How servers work

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

the word server is being used.

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

operating systems out to house compartmentalized applications.

4. Database:

 Definition: A database is a structured collection of data organized in a way that

facilitates efficient storage, retrieval, and management. Databases are used to store and

manage the data that applications rely on.

A database is an organized collection of structured information, or data, typically stored

electronically in a computer system. A database is usually controlled by a database


management system (DBMS).

Fig : Database Diagram

10

 Middleware

Middleware essentially describes any software on the server that connects an

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.

Middleware (server-side software) facilitates client-server connectivity, forming a middle

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

on a computer. It provides services for computer programs and acts as an intermediary

between users and the computer hardware.

An operating system (OS) is system software that manages computer hardware and

software resources, and provides common services for computer programs.

6. System Development Life Cycle (SDLC)

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

different activities associated with each phase in the SDLC.

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

longer outweigh its maintenance costs.

12

This is why it is referred to as a ‘lifecycle’. The SDLC is comprised of seven distinct phases:

planning, analysis, design, development, testing, implementation, and maintenance. This

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

7. API (Application Programming Interface):

 Definition: An API is a set of rules and protocols that allows one software application to

interact with another. It defines how software components should communicate,

making it easier for developers to integrate different systems.

14

You can’t talk about the back-end portion of an application these days without

touching on APIs (application programming interfaces) and how they connect

software, applications, databases, and services together seamlessly. APIs play an

integral role in how most server-side software architectures are built, oftentimes

replacing more complicated programming to allow software to communicate and data

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

with each other using requests and responses.

There are four different types of APIs commonly used in web services: public, partner, private

and composite.

8. JSON (JavaScript Object Notation):

 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

exchange between a server and a web application.

15

What is JSON object notation in JavaScript?

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

web page, or vice versa).

9. Framework:

 Definition: A framework is a pre-built set of tools, libraries, and best practices that

provides a foundation for developing software. It helps developers by offering a

structure to build upon, reducing the need to write repetitive code.

10. UML (Unified Modeling Language):

 Definition: UML is a standardized modeling language used in software engineering for

visualizing, specifying, constructing, and documenting software systems. It includes a set of

graphical notation techniques to create visual models of software-intensive systems.

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

the structure and behavior of a system.

Fig: UML Diagrams

16

11. FURPS (Functionality, Usability, Reliability, Performance, and Supportability):

 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

Supportability (maintainability and documentation).

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

these terms or need further clarification, feel free to ask!

System Development Life Cycle (SDLC) Phases

1. Planning:

 Description: Identifying project scope, goals, risks, and resources required. Initial project

planning and feasibility analysis take place in this phase.

2. Analysis:

 Description: Understanding and defining system requirements. This phase involves

studying existing systems, identifying limitations, and proposing solutions.

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

testing, are performed.

6. Deployment:

 Description: Releasing the system for public use. This involves installing the system on

servers, configuring it for production, and making it available to end-users.

7. Maintenance:

 Description: Post-deployment activities, including ongoing support, bug fixes, updates,

and improvements based on user feedback and changing requirements.

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

feasibility study to the maintenance of the completed application.

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

to ensure success in the step of software development.

Here, are some important phases of SDLC life cycle:

Waterfall Model

The waterfall is a universally accepted SDLC model. In this method, the whole process of software

development is divided into various phases.


The waterfall model is a continuous software development model in which development is seen

as flowing steadily downwards (like a waterfall) through the steps of requirements analysis,

design, implementation, testing (validation), integration, and maintenance.

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

o Testing and Turnover

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

technique is a combination of rapid prototyping and concurrency in design and development

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

activities such as benchmarking, simulation, and prototyping.

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

Agile methodology is a practice which promotes continues interaction of development and

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

lasts from one to three weeks.

Any agile software phase is characterized in a manner that addresses several key assumptions

about the bulk of software projects:


1. It is difficult to think in advance which software requirements will persist and which will

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

used to test the configuration.

3. Analysis, design, development, and testing are not as predictable (from a planning point

of view) as we might like.

Iterative Model

It is a particular implementation of a software development life cycle that focuses on an initial,

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

down the software development of a large application into smaller pieces.

Big bang model

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

requirements are either unknown or final release date is not given.

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.

 Backend development Technologies

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

languages are object-oriented programming languages, a style of programming

that bundles attributes and functions within objects. Other languages may be

compiled rather than interpreted, something that affects load time, readability,

and processing power required to run the application.

Fig : Back End Programming Languages

What is a framework?

21

A programming framework is a set of reusable software components that provide a foundation

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 and its Frameworks

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.

 Top 5 Frameworks In Python


There are a number of Python frameworks available in the market for web development.

Depending on the functionality and key features they provide to the user,

Here are the top 5 frameworks available in Python:

Django

Django is a popular open-source full-stack Python framework that includes all the necessary

Python features by default.

Web2Py

Web2Py is another popular open-source and full-stack Python framework. It is platformindependent,


which means that it can run on all the popular operating systems.

Flask

Flask is a micro-framework for Python. It is lightweight and easily adaptable to suit a

developer’s needs. The Flask framework comes under the BSD license and requires the

Werzeug WSGI toolkit and Jinja2 templates.

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

simplistic personal use apps. CherryPy

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

creating templates and data access.

 PHP and its Frameworks

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

features, and developer-friendly environment.

By this, it means that when you hire PHP developers, it allows them to make eye-pleasing web

solutions.

Why Use Laravel?

 Its features, like routing, ORM, authentication, caching, and more, simplify complex tasks and

promote code reusability.

 Its active community ensures regular updates and excellent documentation.

 Robust testing capabilities ensure bug-free web solutions.

2. CodeIgniter

It is an open-source rapid development framework suitable for developing dynamic web

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

and scalable web applications.

If you are developing a web solution from scratch, this framework will save a lot of time for you.

23

Why Use CodeIgniter?

 Unlike other frameworks, it is a more lightweight PHP framework.

 CodeIgniter offers features like database abstraction, caching, security, and session

management, making it suitable for rapid development.


 Its extensive library collection enables developers to perform common tasks effortlessly.

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.

Why use Symfony?

 Symfony is the perfect choice for enterprise-level web projects.

 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

on the project’s requirements.

 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

yourself (DRY) principles.

24

Why use CakePHP?

 With built-in features like ORM, validation, caching, and so on, it simplifies development and

promotes code reusability.


 Due to the security features of this framework, it is a good choice for commercial web

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

as a web server extension in C language.

This high-performance-oriented PHP framework is popularly known for its speed and low

overhead cuts. It is very well-documented and easy to use.

Companies like KingHost, PlaceOnAir, and so on utilizes Phalcon.

Why Use Phalcon?

 Its architecture focuses on performance optimization and minimal resource consumption.

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

 It supports MySQL, PostgreSQL, and SQLite natively.

JAVA and its Frameworks

Java is proven a predominant programming language, this is the reason for it being the chosen

language for the ground-breaking software development jobs.

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

 JavaScript and its frameworks

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

thus makes the task less laborious and time taking.

1. Angular

It is a framework written in TypeScript and developed by Google. It is an open-source web

application framework used for developing single-page applications (SPA).

2. React

React was introduced in 2013 and was developed by Facebook. It is a reusable framework and

is used for building interactive user interfaces.

3. Vue.js

Vue.js is a free, open-source JavaScript framework that is a progressive front-end framework. It

is approachable, easy to learn, and can be used for both small and large applications.

4. Node.js

It is an open-source runtime environment built to execute JavaScript outside a web browser.

26

5. Polymer

It is a JavaScript library developed by Google. It is an open-source framework and is well suited

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,

debugging could be an issue at times.

 Ruby and its Framework

Ruby is a powerful object-oriented programming language with an emphasis on

programmer productivity and simplicity. Ruby is a popular choice in web

development due to its simplicity and helpful features.

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

small web applications with minimal effort.

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

routing, controllers/actions, models, views, migrations, validations, mailers, and

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

so that you can build an Android app for it.


5. Cuba

Cuba is a microframework for web development. It's lightweight and offers minimal

features.

System Analysis Tools

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

Tools and Techniques of System Analysis:

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

transactions and reports in the organization.

28

2. System Flow Chart:

A system flowchart is a pictorial or diagrammatic representation of the logical flow of

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

used for the construction of system flow charts.

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

of decision making uncertainty surrounds each step, so we face uncertainty, piled on

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

their interaction on each other.

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,

expensive and time-consuming.

5. Decision Tables:

Decision tables are a graphical method of representing a sequence of logical decisions. It is

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

about a specific subject and is used by businesses to make informed decisions.

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

can be classified as first, second, or third-party.

 Qualitative data

This type of data can’t be measured or expressed as a number. It s less structured than

quantitative data. Qualitative data is information acquired to understand more about a

research subject’s underlying motivations—answering “how” and “why” questions. It is

information that is descriptive in nature and can consist of words, pictures, or symbols, which is

why it isn’t easily measurable.

Examples of questions that will yield qualitative data are:

How do you feel about using products from XYZ brand?

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?”

Quantitative data can be measured by numerical variables, analyzed through statistical

methods, and represented in charts and graphs.

Examples of quantitative research questions are:

How often do you purchase laundry detergent?

 Once weekly
32

 Every two weeks

 Once a month

 Other

How many containers of laundry detergent do you purchase at one time?

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

Common sources of first-party data are:

 Survey responses

 Web analytics

 Social media 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

your research needs.

Common second-party data sources include:

 Previous research

 Books

 Professional journal publications

 Websites

 Libraries

 Newspapers

 Public records

Second-party data may be collected before primary data to help find knowledge gaps or to

augment primary research data.

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

with consumers and is often sold on data marketplaces.

 Identification of FURPS Requirements Functionality requirements Usability

requirements Reliability requirements Performance requirements

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.

 Usability requirements refer to operational characteristics related to users, such as the

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

other applications?”, etc.

 Reliability requirements refer to the requirements that describe system

dependability—how reliable the system and the risk of system to be crashed.

 Performance requirements describe the operational characteristics related 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

protection during storage and transmission.

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.

Identification of Main Objects of Backend System

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

clean, efficient, and meets the needs of the front-end developers.

Identification of Main objects of Backend System

 Define the Scope of Backend System

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,

but generally includes tasks such as:

1. Data management and storage

2. User authentication and authorization

3. Business logic implementation

4. Integration with external APIs and services

5. Performance monitoring and optimization

6. Security and compliance measures

 Database

A database is an organized collection of structured information, or data, typically stored

electronically in a computer system. A database is usually controlled by a database

management system (DBMS).

Types of databases

There are many different types of databases. The best database for a specific organization

depends on how the organization intends to use the data.

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

the most efficient and flexible way to access structured information.

Object-oriented databases

 Information in an object-oriented database is represented in the form of objects, as in

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

over different networks.

36

Data warehouses

 A central repository for data, a data warehouse is a type of database specifically designed

for fast query and analysis.

NoSQL databases

 A NoSQL, or nonrelational database, allows unstructured and semistructured data to be

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

applications became more common and more complex.

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

numbers of transactions performed by multiple users.

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

different database types, changes in technology development approaches and dramatic

advances such as the cloud and automation are propelling databases in entirely new directions.

Some of the latest databases include

Open source databases

 An open source database system is one whose source code is open source; such databases

could be SQL or NoSQL databases.

Cloud databases

 A cloud database is a collection of data, either structured or unstructured, that resides on a


private, public, or hybrid cloud computing platform. There are two types of cloud database

models: traditional and database as a service (DBaaS). With DBaaS, administrative tasks and

maintenance are performed by a service provider.

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

 Designed for storing, retrieving, and managing document-oriented information, document

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

performed by database administrators.

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

 Servers

A server is a computer program or device that provides a service to another computer program

and its user, also known as the client.

38

In a data center, the physical computer that a server program runs on is also frequently

referred to as a server.
 Frameworks

What is backend 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

some aspects of web development, making it faster and simpler.

 Description of System Interaction.

Purpose of System Interaction

Interactions between systems are a necessity, a source of opportunity, and a source of difficulty

and complication in building, implementing, and maintaining IT-reliant systems in organizations.

39

Main components of System Interaction

 Web server

Web Server Definition

A web server is a computer system capable of delivering web content to end users over the

internet via a web browser.

How web servers work

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

requested information or webpages to end users. It uses:

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.

What are web servers used for?


Web servers are primarily used to process and manage HTTP/HTTPS requests and responses

from the client system.

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,

websites, data, and other services.

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

reads the request and processes the information.

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

The function of the application server is to act as host (or container) for the user’s business

logic while facilitating access to and performance of the business application.

 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

forms of digital data.

 External Services and API

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

repair, non-destructive testing and logistics.

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.

Some examples of popular external services and APIs include:

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

3. Twitter API - allows developers to access Twitter's data and functionality

4. Amazon Web Services - provides a wide range of cloud-based services and APIs for

developers

 Message queues or event Streams

42

Message queue services

 They focus on the delivery of messages. Once a message is delivered to its

supposed recipients, the mission is accomplished, and the message is usually

deleted.

Event streaming services


 Messages are stored persistently.

 The focus is on the sequence of the messages when they are saved. Messages are

only appended to the end of the stream.

Define the Scope of Backend System

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

clean, efficient, and meets the needs of the front-end developers.

Report of the System Backend Requirements.

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

An executive summary is a brief overview of a long document, such as a business plan,

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,

objectives, key findings, goals, and recommendations.

 Detailed analysis of the Current State

 Findings on Gaps and issues

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

or new idea that hasn't been studied at all.

43

Recommendations

 Software recommendations are suggestions for specific software programs or

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,

budget, and technical specifications.

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

 As for code related to software recommendations, here is an example of a simple

Python function that takes in user requirements and returns a recommended software

program:

def recommend_software(requirements):

# Logic to determine the best software based on requirements

recommended_software = "Example Software"

return recommended_software

CONCLUSION :

Common skills needed for back end development

Now that you know what back-end development involves, let’s distill these concepts into

a list of skills a back-end developer should possess.

 Basic understanding of front-end technologies HTML, JavaScript, and CSS

 Working knowledge of back-end development (configuration, administration and

management of databases and servers)

 Server-side languages (e.g., PHP, C#, Java)

 Database technologies (e.g., MySQL and SQL)

 Security and authentication best practices

 Experience writing RESTful APIs

Common back-end development jobs


Back-end development is an umbrella term that refers to the server-side of any

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

at the most common back-end development roles:

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

maintaining the database, server, and business logic behind a website.

 Full-stack developers: Full-stack developers have a working knowledge of both

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.

 Java developers: From websites to desktop applications, back-end developers

who specialize in Java are in high-demand in the enterprise app industry.

 Software developers: Depending on the job description, this could be

another Java developer job or any of the other languages we listed above.

Software development roles usually refer to non-website applications such as

desktop apps.

45

 Identification of System Design Tools (tutsmaster, 2020)

UML (Unified Modeling Language):

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

specifying, visualizing, constructing, and documenting the artifacts of software systems, as

well as for business modeling and other non-software systems.


46

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

between stakeholders, including developers, designers, and clients.

Algorithm:

What are algorithms in backend programming?

Algorithms are a series of logical instructions written in a particular coding language to

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.

A fully functional algorithm features the following characteristics:

 Extremely precise and well-defined input and output.

 Language independent

 Simple and easy to understand

 Finite logical loop, clear and obvious

 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

scalability, process efficiency, and overall performance.

Types of Algorithms in Backend Programming

A backend developer’s employability might be limited without adequate knowledge of

algorithms! Some of the most important algorithms include:

 Searching algorithms: Depth-First Search and Breadth-First Search.

 Sorting algorithms: bubble sort, selection sort, insertion sort, merge sort, quick sort, etc.

 Hash Algorithm

 Recursive and iterative algorithms.


 Dynamic Programming Algorithm

 Randomized Algorithm

Let’s explore each of these algorithms in detail!

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

search and breadth-first search.

Sorting Algorithms

Sorting algorithms help to arrange an array of data in a particular order according to the

functional requirement. Typically, most sorting algorithms categorize groups of data in an

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

bubble sort, insertion sort, merge sort, and quick sort.

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.

Hashing algorithm is used for facilitating fast data retrieval.

Recursive and iterative algorithms

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.

Dynamic Programming Algorithm


Dynamic programming algorithm functions on the concept of utilizing an already existing

solution to avoid repetitive actions to solve the same problem. It divides a larger problem into

smaller and manageable overlapping problem statements and addresses them.

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

2. Las Vegas algorithms

3. Monte-Carlo algorithms

4. Flowchart:A flowchart is a type of diagram that represents an algorithm, workflow or

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

model to a given problem.

Data Flow Diagram (DFD):

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,

outputs, storage points and the routes between each destination.

49

Entity Relation Diagram (ERD):

Entity Relationship Diagram – ER Diagram in DBMS. An Entity–relationship model (ER

model) describes the structure of a database with the help of a diagram, which is known as

Entity Relationship Diagram (ER Diagram).

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

entities,and the relationship among these objects.

50

* Rectangles represent entities

* Diamonds represent relationship among entities

* Ellipse represents attributes ( characteristics of entities)

* Lines represents link of attributes to entities to relationships

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

attributes:(Characteristics to be possessed by entities).Likewise,college shoul specify the

attributes:college - ID and college - name.

Context Diagram:

Context diagrams show the interactions between a system and other actors (external factors)

with which the system is designed to interface.

Decision Table:

A decision table is a brief visual representation for specifying which actions to perform

depending on given conditions.

51

Use Case Diagram:

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

system operates internally.

Fig: Usercase Diagram

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

 Identification of Hardware and software technology

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

motherboards, hard drives, and RAM.

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

Application software is a type of computer program that performs a specific personal,

educational, and business function. Each application is designed to assist end-users in


accomplishing a variety of tasks, which may be related to productivity, creativity, or

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

business information systems and manage development processes. In addition to modeling

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

charts, and engineering diagrams.

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

software, often referred to as “plug-ins.”

 Application of SSADM (Structured System Analysis and Design Methods)

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

o Logical Data modeling

A logical data model establishes the structure of data elements and the

relationships among them. It is independent of the physical database

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

elements of conceptual data modeling a step further by adding more

information to them.

56

The logical data model incorporates all of the elements of information

that are vital in the running of the day to day business.

o Data flow Modeling

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, outputs, storage

points and the routes between each destination. Data flowcharts can

range from simple, even hand-drawn process overviews, to in-depth,

multi-level DFDs that dig progressively deeper into how the data is

handled. They can be used to analyze an existing system or model a new

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

technical and nontechnical audiences, from developer to CEO. That’s why

DFDs remain so popular after all these years. While they work well for
data flow software and systems, they are less applicable nowadays to

visualizing interactive, real-time or database-oriented software or

systems.

57

o Entity Behavior modeling

Behavioral modeling is an approach used by companies to better

understand and predict consumer actions. Behavioral modeling uses

available consumer and business spending data to estimate future

behavior in specific circumstances.

Implementation of stages for drawing SSADM

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

or receives data from the system). which data can flow).

 Application of Object-Oriented Analysis and Design

Introduction

Object-oriented analysis and design (OOAD) is a technical approach for analyzing and designing

an application, system, or business by applying object-oriented programming, as well as using

visual modeling throughout the software development process to guide stakeholder


communication and product quality.

Object-Oriented Analysis and Design (OOAD) is a software engineering methodology that

involves using object-oriented concepts to design and implement software systems. OOAD

involves a number of techniques and practices, including object-oriented programming,

design patterns, UML diagrams, and use cases. Here are some important aspects of OOAD:

1. Object-Oriented Programming: Object-oriented programming involves modeling realworld objects as


software objects, with properties and methods that represent the

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

efficient software systems.

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

to represent the different components and interactions of a software system.

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.

There are several advantages to using OOAD in software engineering:

1. Reusability: OOAD emphasizes the use of reusable components and design patterns,

which can save time and effort in software development.

2. Scalability: OOAD can help developers design software systems that are scalable and can

handle changes in user demand and business requirements over time.

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

adapt to changing business requirements over time.

5. However, there are also some potential disadvantages to using OOAD:

6. Complexity: OOAD can be complex and may require significant expertise to implement

effectively.

7. Time-consuming: OOAD can be a time-consuming process that involves significant upfront

planning and documentation.

8. Rigidity: Once a software system has been designed using OOAD, it can be difficult to

make changes without significant time and expense.

9. Cost: OOAD can be more expensive than other software engineering methodologies due

to the upfront planning and documentation required.

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

the advantages and disadvantages carefully before adopting this approach.

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.

3. The function is described.

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.

Object-Oriented Design (OOD): An analysis model created using object-oriented analysis is

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

and a procedural description of each operation.

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

requirements and implement technical frameworks that meet user needs.

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 attributes and operations for each object.

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

human/computer interface activities, task management.

Some of the terminologies that are often encountered while studying Object-Oriented

Concepts include:

1. Attributes: a collection of data values that describe a class.

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

behaviors of the class.

5. Subclass: specialization of the super class. A subclass can inherit both attributes and

operations from a super class.

6. Superclass: also called a base class, is a generalization of a set of classes that are related to

it.

Advantage and disadvantages

Advantages of OOAD:

1. Improved modularity: OOAD encourages the creation of small, reusable objects that can

be combined to create more complex systems, improving the modularity and

maintainability of the software.

2. Better abstraction: OOAD provides a high-level, abstract representation of a software

system, making it easier to understand and maintain.

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

and consistency of the software.

4. Improved communication: OOAD provides a common vocabulary and methodology for

software developers, improving communication and collaboration within teams.

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

new code from scratch.

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

adapt to changing business requirements over time.

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

relationships must be carefully modeled and managed.

2. Overhead: OOAD can result in additional overhead, as objects must be instantiated,

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,

as it requires a strong understanding of OOP concepts and techniques.

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.

5. Time-consuming: OOAD can be a time-consuming process that involves significant upfront

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

changing environments where new technologies or business requirements may require

frequent changes to the system.


7. Cost: OOAD can be more expensive than other software engineering methodologies due

to the upfront planning and documentation required.

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

exciting journey, mastering the skill set with ease!

Phases in Object-Oriented Software development

o Analysis

Object-Oriented Analysis and Design

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

research and development.

Why use the object-oriented approach?

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.

 Design - The programmer must design a solution based on the analysis.

63

 Code - Finally the programmer writes the code to implement the design.

o Design

o Implementation

64

 Development of Data Flow

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

graphically. It can be manual, automated, or a combination of both


Data flow Diagram (DFD)

 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

become involved, time involved at each step, and/or process measurements.

 Rules of Drawing a DFD

DFD rules and tips

 Each process should have at least one input and an output.

 Each data store should have at least one data flow in and one data flow out.

 Data stored in a system must go through a process.

 All processes in a DFD go to another process or a data store.

 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

details about the internal workings of these processes.

- 0-level DFD: It is also known as a context diagram. It’s designed to be an abstraction

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

breakdown the high-level process of 0-level DFD into subprocesses.

66

 Level 2 (Function decomposition)

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

with each sub-process are also shown.

- 2-level DFD: 2-level DFD goes one step deeper into parts of 1-level DFD. It can be used

to plan or record the specific/necessary detail about the system’s functioning.

Software tools

 Microsoft office

Microsoft Office is a suite of applications designed to help with productivity and completing

common tasks on a computer.

 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

your entire Model-Code-Deploy development process in this one-stop-shopping solution.

 E-draw

What is the other meaning of draw?

To sketch (someone or something) in lines or words; delineate; depict: to

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

perpendicular lines. to frame or formulate: to draw a distinction.

Develop Data flow diagram of system

10 simple steps to draw a data flow diagram online with Lucidchart

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

below to make a DFD.

1. Select a data flow diagram template

In the Documents section, click on the orange +Document button and double-click on the Blank

ERD & Data Flow diagram.

68

2. Name the data flow diagram

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

appears in the top left corner of the screen.

69

3. Add an external entity that starts the process

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.

4. Add a Process to the DFD

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

5. Add a data store to the diagram

Click and hold on a data store symbol and drag it to where you want it on the workspace. Type

the data store name. We’re naming ours “shopping cart.”

6. Continue to add items to the DFD

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

as a guide for alignment and sizing.

72

7. Add data flow to the DFD

Double-click on an entity, process, or data store, and then click and hold one of the orange

circles and drag the line to the appropriate symbol.

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

the shape you want to add and it will automatically be created.

8. Name the data flow

Add a name to describe the data flow by double-clicking on the arrow line. An option to type

text will appear, type the data flow name.

9. Customize the DFD with colors and fonts

Once you have the basic design of your diagram, you can add colors to symbols, change fonts,

and adjust arrows. Here’s how to:

 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

choose one of the nine other styles.

75

Tip: To change the style of all the arrows, choose Select All from the Edit menu.

10. Add a title and share your data flow diagram

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

size using the shortcut keys at the top of the screen.


76

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

and enter the appropriate information.

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

corner of the screen) to have discussions.

The easiest way to make a data flow diagram online

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

 Application of Physical Data Model

Identify the database Objects

Database objects

Physical database design consists of defining database objects and their relationships.

You can create the following database objects in a DB2® database:

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

 Concepts common to most database objects

 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

example, an employee number must be unique. The database manager

provides constraints as a way to enforce such rules.

 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

in an XML storage object, and so on.

 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

CREATE TRIGGER statement.

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

values. Applications can use sequences to avoid possible concurrency and

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

cause duplicate numbers from being generated.

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

 Member subsets overview

A member subset is a database object that expresses a relationship between a


database alias and a server list. The server list is composed of a set of members in a

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

known as a foreign key in that second table.

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

between your tables can be:

 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

integrity, data accuracy, and keeps redundant data to a minimum.

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

and design methodology; if you’re keeping tables as narrowly-focused as possible (like in

a normalized database), then you may find one-to-one relationships useful.

81

Example one-to-one relationship

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:

Fig. 1. A one-to-one relationship between an Employee and a Computers table. PK indicates a


primary key, and FK indicates a foreign key.

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

computer to a new employee.

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

times those lines will have crosshatches like in figure 1.

One-to-one relationships can be also useful for security purposes, like if you want to store

sensitive customer information in a separate table, which you link to your

main Customers table with a foreign key.

One-to-many relationship

One-to-many relationships are the most common type of relationships between tables in a

database. In a one-to-many (sometimes called many-to-one) relationship, a record in one table

corresponds to zero, one, or many records in another table.

Example one-to-many relationship

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

normalization often involves breaking up many-to-many relationships into separate, more

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

create one-to-many relationships between it and your two starting tables.

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

connect the tables:

Fig. 3. An ERD showing Metabase's Sample Database.

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

Computers for whatever reason). A real-world (and perhaps more business-savvy)

implementation of this database would probably include a join table between the two, making

it so orders could contain many different products.


85

 Documentation of system design

Definition

The System Design Document describes the system requirements, operating environment,

system and subsystem architecture, files and database design, input formats, output layouts,

human-machine interfaces, detailed design, processing logic, and external interfaces.

Types of documentation of system design

 System Design document(SDD)

The System Design Document (SDD) describes how the functional and nonfunctional

requirements recorded in the Requirements Document, the preliminary user-oriented

functional design recorded in the High Level Technical Design Concept/Alternatives document,

and the preliminary data design documented in the Logical Data ..

 Functional Specification Document(FSD)

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

requested behavior is.

 Technical Specification Document(TSD)

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

intended user experience, including the product’s features and functionality.

 Database design Document

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

 Use case Document

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 and a product or service.

System documentation

System documentation provides an overview of the system and helps engineers and

stakeholders understand the underlying technology. It usually consists of the requirements

document, architecture design, source code, validation docs, verification and testing info, and

maintenance or help guides.

88

User documentation

User documentation, also known as end-user documentation, is any form of 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.

The Different Types of User Documentation

As mentioned earlier, user documentation comes in various shapes and forms

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

starting their journeys with their products.

 Comprehensive User Manual

This refers to the complete, in-depth user guide that comes with any product with even the

slightest learning curve for any product.

It includes everything, from an instruction manual on how to install a product, to

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

these user manuals.

 Reference Guides

Another common type of user documentation is 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.

The Distinction Between User Documentation and Technical Documentation

Technical documentation encompasses every form of technical writing that helps shed light

on any aspect of a product.


But how is it different from user documentation?

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:

 Requirements Documentation – sheds light on what is required from the product,

including the basic and advanced features, functionality, resources, and goals, among

other things. This is meant for the software development teams and testers.

 Architecture/Design Documentation – these sketch out the overall design of the

software product and describe the design principles for the development teams.

91

 Process Documentation – these break down the product journey in properly

structured formats for the product team.

 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

them are meant for the end-user.

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

who will actually use it.

For that reason, naturally, user documentation requires a different “level” of language (more

on this later).
92

What Makes User Documentation Great?

Crafting great user documentation is tricky.

There are a lot of elements that go into accomplishing the ultimate goal of helping users

figure out an otherwise complicated process.

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

(or outline, if you will).

The goal is to deliver a coherent experience to your users in a way that makes sense, by

solving one problem at a time.

For instance, if you’re selling an enterprise software, you wouldn’t want to start with the

advanced features right off the bat.

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

The best user documentation has 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

also show the users how it’s down.

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

communicated to users who are blind or deaf.

For example, if you have your user documentation on a website, you might want to include

an option that allows visually-impaired users to listen to the instructions.

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

support team works.

These details should be included throughout the documentation, or towards the end of the

document.

A Simple Framework for Creating Effective User Documentation

Now that you know what elements go into making any user documentation successful, we’re

now going to go through the step-by-step process of crafting one.

Let’s jump in:


 Determine the Audience and the Problems – first and foremost, you need to

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

your thoughts in the easiest way possible.

 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

retention, higher success rates, and longer customer lifecycles.

However, creating one isn’t as simple as typing up a few step-by-step instructions. It entails:

 Putting yourself in the shoes of your end-users

 Figuring out an appropriate level of language for your audience

 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

on the journeys of their products.

All things considered, without decent user documentation, your product is essentially

incomplete.

97

98

99

100

101

You might also like