Algorithm design and
problem solving (part 1)
14 – November – 2024
By Mrs. Omema Humza
Analysis
Analysis is the process of breaking down something into its components to
understand it. It can be used to analyze data, business processes, or how to
program. Analysis is a key part of writing good code and is often the first step in
software development:
System analysis
The first phase of software development, where a systems analyst meets with
the client to determine the software's purpose and functional requirements.
Program analysis
The process of assessing a program's correctness, robustness, safety, and
liveliness. The goal is to optimize and repair the code to improve performance
and resources, or to ensure the software does what it's intended to do.
Design:
In this phase, the requirement gathered in the SRS document is used as
an input and software architecture that is used for implementing
system development is derived.
Coding
Coding starts once the developer gets the Design document. The
Software design is translated into source code. All the components of
the software are implemented in this phase.
Testing
• Testing starts once the coding is complete and the modules are
released for testing. In this phase, the developed software is tested
thoroughly and any defects found are assigned to developers to get
them fixed.
• Retesting, regression testing is done until the point at which the
software is as per the customer’s expectation. Testers refer SRS
document to make sure that the software is as per the customer’s
standard.
Example:
• Analysis: In the planning phase, the ecommerce project manager and business analyst will
collect requirements from stakeholders regarding how the ecommerce platform will work and
what features it requires. Then, they will create detailed SRS (Software Requirement
Specification) documents. After this, the business analysts will get the SRS documents reviewed
by the key policymakers and stakeholders to get them approved.
• Designing: The SRS documents will be sent to the ecommerce software development team at
this stage. First, the development team will carefully review the document to understand client
requirements. Then, ecommerce developers will build a suitable architecture, and designers will
create web pages after approval.
• Coding: Coders will take over ecommerce platform development in this phase. They will code
the web pages and APIs required to add various functionalities.
• Testing: In this step, the tester will do end-to-end functionality testing. They will ensure that the
e-commerce platform is working seamlessly without any bugs.
• Deployment: At last, the developers will deploy code and offer end-users the final version of the
e-commerce solution. After that, a similar process will be followed while integrating the
latest features.
Structure Diagrams
• Every computer system is made up of sub-systems, which are in turn made up of
further sub-systems.
• Structure Diagrams – The breaking down of a computer system into sub-systems,
then breaking each sub-system into smaller sub-systems until each one only
performs a single action. A structure diagram diagrammatically represents a top-
down design. Example below.
Pseudo code & Flowcharts
Pseudo code - Verbal representation of an algorithm (a process or set
of steps) and flowcharts are a diagrammatic representation.
Flowcharts: A flowchart shows diagrammatically the steps required to
complete a task and the order that they are to be performed
Algorithm: These steps, together with the order, are called an
algorithm