Topic 1 - Problem Solving Technique in Programming
Topic 1 - Problem Solving Technique in Programming
Syntax is a computer language is the rules that define the combinations of symbols that are considered to
be correctly structured statements or expressions in that language. This applies both to programming
languages, where the document represents source code, and to markup languages, where the document
represents data.
Introduction
Introduction
❖ It is a process that gives a complete idea about developing, designing, and maintaining a software project by
ensuring that all the functionalities along with user requirements, objectives, and end goals are addressed. With
SDLC, the software project’s quality and the overall software development process get enhanced.
Stage 1 Stage 2
Requirement Gathering & Analysis Phase Design Phase
In an SDLC, this is the first and most crucial phase for a software In the design phase of an SDLC, the architectural design
project’s success. In this phase, communication takes place
is proposed for the project based on the Software
between stakeholders, end-users, and project teams, as both
functional and non-functional requirements are gathered from
Requirement Specification (SRS) Document
requirements.
customers.
The Requirement Gathering & Analysis Phase of SDLC involves the The Designing Phase of SDLC involves the following:
following:
1. Separation of hardware and software system
1. Analysis of functionality and financial feasibility requirements
2. Identifying and capturing requirements of stakeholders through 2. Designing the system architecture based on
customer interactions like interviews, surveys, etc.
3. Clearly defining and documenting customer requirements in an gathered requirements
SRS (Software Resource Specification Document) comprising of 3. Creating Unified Modelling Language (UML)
all product requirements that need to be developed diagrams like- use cases, class diagrams,
4. Creating project prototypes to show the end-user how the sequence diagrams, and activity diagrams
project will look
1.2 Software Development Life Cycle
Stage 3 Stage 4
Development Phase Testing Phase
In the entire SDLC, the development phase is considered Almost all stages of SDLC involves the testing strategy.
to be the longest one. In this phase, the actual project is However, SDLC’s testing phase refers to checking,
reporting, and fixing the system for any bug/defect. In this
developed and built.
phase, the on-going system or project is migrated to a
test environment where different testing forms are
The Development Phase of SDLC involves the following: performed. This testing continues until the project has
achieved the quality standards, as mentioned in the SRS
1. Actual code is written document during the requirement gathering phase.
2. Demonstration of accomplished work presented
before a Business Analyst for further modification of The Testing Phase of SDLC involves the following:
work
1. Testing the system as a whole
3. Unit testing is performed, i.e., verifying the code
2. Performing different types of test in the system
based on requirements 3. Reporting and fixing all forms of bugs & defects
1.2 Software Development Life Cycle
Stage 4
Deployment & Maintenance Phase
In the entire SDLC, once the system testing has been done, it is ready to be launched. The system may
be initially released for limited users by testing it in a real business for UAT or User Acceptance Testing.
SDLC Model
Various SDLC models are defined and designed to follow the software
development process. These models are also known as Software
Development Process Models. Each of these models follows a series of
steps for ensuring the complete success of a project.
1.2 Software Development Life Cycle
❖ Agile Model
❖ Spiral Model
❖ Waterfall Model
❖ Iterative-Incremental Model
❖ Rapid Action Development
(RAD) Model
1.2 Software Development Life Cycle
Strengths of the Iterative Incremental Model: Weakness of the Iterative Incremental Model: -
- ➢ There are requirements for effective
➢ Prioritized requirements can be initially iterations planning
developed ➢ Efficient design is required for including the
➢ The initial delivery of the product is required functionalities.
faster ➢ An early definition of a complete, as well as
➢ Lower initial delivery costs fully functional system, is needed for
➢ Changes in requirements can be allowing increments definitions
easily adjusted ➢ Clear module interfaces are required
1.2 Software Development Life Cycle
Spiral Model
The spiral model combines risk analysis along with RAD prototyping to the
Waterfall model. Each of the cycles has the same steps as in the case of the
Waterfall model.
1.2 Software Development Life Cycle
1.2 Software Development Life Cycle
➢ Users can have a look at their system ➢ The spiral may go on indefinitely
early due to rapid prototyping tools ➢ The spiral model can be complex to
➢ Users are involved in all lifecycle stages understand for new numbers
➢ An early indication of risks can be ➢ It may be hard to set the objectives, verifiable
➢ Critical & high risk functionalities are ahead with the next iteration
Agile Model
The agile model is the combination of the iterative-incremental model that
depends depends on process adaptability along with customer satisfaction
through the delivery of software products. In this model, the project is broken
down into smaller time frames for delivering certain features during a release.
1.2 Software Development Life Cycle
1.2 Software Development Life Cycle
➢ Easy to accommodate any user ➢ Hard to use and implement with legacy
changes systems
productivity with minimal team members members for identifying business requirement
requirements. dependencies
➢ Regular communication takes place ➢ Teams need to have the desired experience
One technique used by professional software developers for understanding the problem that is being
solved and for creating an effective and appropriate solution is called the software development
procedure.
Develop a algorithm
Analyze the
problem
Time
Problem Analysis:
•Before writing any program, a programmer must clearly understand the problem, what
input are to be used, the desired output, the procedure that will produce the result
and the constraints to be considered.
Test Algorithm:
• pretend that you are the computer and follow the steps of your algorithm explicitly while keeping track of
how the variables are changing.
• hand trace the values of the variables in every steps of your algorithm
1.3 Computer Program Development
Coding:
• develop the program by coding the algorithm in a programming language, such as Java and implement the
program to the user environment such as Android
• need to have knowledge in the programming language in terms of the language syntax
• can use IDEs such as Eclipse, NetBeans etc to facilitate the coding tasks.
Testing/Debugging Program:
•test to verify that the program meets the requirements by creating test cases
• program also need to be maintained by modifying it if the problem domain or requirements changes or
problem arises
1.4 Computer Programming Tool
b) flowchart
using diagrams that employ symbols to describe the workflow of steps involved in
the solution. Flowchart were used to map out programs before writing one line of
code in language.
1.4 Computer Programming Tool
Pseudocode
Pseudocode
Question: Calculate the perimeter of a rectangle
Start
Output "Enter rectangle length: "
Input length
Output "Enter rectangle width: "
Input width
Calculate perimeter = 2 x(length + width)
Output perimeter
End
1.4 Computer Programming Tool
A graphical way of depicting a problem in terms of its inputs, outputs, and processes. The basic elements are as follows:
Question 1:
Calculating the average of three number Calculate the average
End
1.4 Computer Programming Tool
Start
Output perimeter
End