0% found this document useful (0 votes)
21 views

Algorithm Summary

An algorithm is a set of well-defined instructions that outline the step-by-step procedure to solve a problem or perform a task. It receives input, uses control structures to direct execution, and produces output. Qualities of a good algorithm include efficiency, correctness, clarity, reliability, and adaptability. Software testing checks a software system to determine if it meets requirements and performs as expected. Objectives of testing include locating bugs, verifying correctness, validating performance, checking compatibility, ensuring security, and testing usability. Data flow diagrams provide a visual representation of how data moves between processes, external entities, and data stores, enabling common understanding and identification of potential errors early in development.

Uploaded by

mugpire
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views

Algorithm Summary

An algorithm is a set of well-defined instructions that outline the step-by-step procedure to solve a problem or perform a task. It receives input, uses control structures to direct execution, and produces output. Qualities of a good algorithm include efficiency, correctness, clarity, reliability, and adaptability. Software testing checks a software system to determine if it meets requirements and performs as expected. Objectives of testing include locating bugs, verifying correctness, validating performance, checking compatibility, ensuring security, and testing usability. Data flow diagrams provide a visual representation of how data moves between processes, external entities, and data stores, enabling common understanding and identification of potential errors early in development.

Uploaded by

mugpire
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

BRIAN MUTUMA

CIT-227-018/2023

CSE 2112
1. DISCUSS ALGORITHM IN PROGRAMMING
An algorithm is a set of well-defined instructions that outline the step-by-step
systemic procedure in a finite number of steps to get the solution to a problem,
get the answer to a query or perform a given task. It is a series of logical and
mathematical operations that convert input data into output results.
Input- The data or information an algorithm receives to work with.
Control Structures- Allow the algorithm to make decisions and control the flow of
execution based on certain conditions. They include loops, if-else and switch case
statements.
Output-The final result the algorithm produces after processing the input.
Qualities of a good Algorithm:
a) Efficiency- It ought to perform its tasks fast with minimal use of resources.
b) Correctness must produce accurate outputs for all valid inputs.
c) Clarity- It should be easy to understand to maintain and modify it.
d) Reliability- It should always supply accurate results under different conditions.
e) Adaptability- It can be applied to a range of related problems with minimal
changes.
Types of Algorithms:
a) Brute force Algorithms- Exhaustively tries all probable solutions suitable for
small problem instances.
b) Backtracking Algorithms- Explores capable solutions by means of undoing
alternatives that lead to wrong final outcome.
c) Searching Algorithms- Used to look for a specific target, thus efficient retrieval
of information.
d) Sorting Algorithms- Arrange elements in a unique order to enhance data
organization and retrieval.
e) Encryption Algorithms- They convert information into secure and unreadable
form by use of cryptographic techniques ensuring privacy in virtual
communications and transactions.
Factors to consider when designing an algorithm:
a) Maintainability- It must be designed in a structured way so that during the
redefinition of the algorithm no major modifications are made to the original.
b) Functionality- It is able to solve the problem it was designed for.
c) Robustness- This refers to the algorithm’s capability to define the problems
clearly.
d) User-Friendliness- If it is far clattered it is going to slow it down.
e) Extensibility- It is able to be modified and its functions extended.
Complexity of an algorithm:
It is a way of measuring the algorithm’s overall performance
a) Time Complexity- It is the amount of time required to complete an algorithm’s
execution. The big O notation is used to symbolize this.
b) Space Complexity- Amount of memory an algorithm calls for to solve a problem
and produce an output.
Algorithms play an important role in software development enabling developers
to create optimized solutions for problems. Algorithms play an important role in
1.AI to assist in decision making
2. Data science in the field of machine learning.

2. WHAT IS SOFTWARE TESTING AND WHAT ARE THE OBJECTIVES OF SOFTWARE


TESTING?
Software testing is a process of checking a software system to determine whether
or not it meets the specified requirements and performs as expected.
Objectives:
1)locating bugs- Aimed to help identify and fix the bugs
2)Verifying the correctness of the software- Testing whether or not its primary
functionality has been achieved.
3)Validating its performance- Test the software’s efficiency and effectiveness.
4) Checking its compatibility- Test its usability and user-friendliness on multiple
systems and other software.
5)Ensuring its security- Testing the resistance of the software to security threats
like hacking and data breaches.
6) Testing the user-friendliness- Check whether or not the software is easy enough
for the end user to use with ease.
7) Standards Testing- Check if the software meets the level of requirements and
specifications.

Software testing is necessary for the delivery of high-quality products to the end
user.

3. DISCUSS THE DATA FLOW DIAGRAMS (DFD) AS A SOFTWARE DEVELOPMENT


TOOL
Data flow diagrams provide a clear and concise visual representation of how data
moves between processes, external entities and data stores.
They are majorly useful in the initial stages of software development to help in
designing its architecture and understanding all the requirements of the system.
DFDs enable the designers and developers understand data transformation and
the potential areas of optimization.
Since DFDs provide visual representation of the system, they enable discussions
ensuring all parties involved from stakeholders (who may not have technical
background), designers and developers have a common understanding of the
basic functions of the system.
DFDs can be used to identify potential security vulnerabilities in the system. By
analyzing the data flow diagram keenly developers can pinpoint out areas where
sensitive information may be at risk of breach and thus improve on the security.
Also, since DFDs are a visual representation of the entire system, potential errors
may be detected early on and addressed early in the development process
preventing major errors in the system later on.
Later on, once the system is complete these DFDs can not only be used as
reference to provide a picture of the entire system making it easier to fix errors
that may occur later on but also help in maintaining and upgrading the software.

You might also like