1 ICS 2175 Lecture 1 PRG Development2
1 ICS 2175 Lecture 1 PRG Development2
1 ICS 2175 Lecture 1 PRG Development2
Methodology
Lesson 2
System Development Cycle
07/26/24
System Development Process
Before writing a program we need to know;
What the user requires from the system (output)
What processes will be required to produce this
output (process)
Testing
What data needs to be processed to create
output (input)
Software Lifecycle
Requirements specification and analysis
Design
Coding/implementation
Maintenance and support
07/26/24
Requirements Analysis
A clear understanding between the client and the
developer of the proposed system
A list of existing and new tools, facilities and
people available for developing the solution
A schedule for the next stages of the project and
the deliverables for each stage
Requirements Analysis Objective
How the solution will be built to satisfy the
requirements
Complex problems are divided into a set of sub-
problems
Programs and modules are defined – inputs,
outputs, functions and processes
07/26/24
Problems
Analysis can identify the following types of problems;
Tractable problems:
These belong to the class of computational problems
known as P .
This class contains all decision problems that can be
solved by using a polynomial amount of
computational time or in polynomial time.
A polynomial is any equation in the form
Intractable problems:
These belong to the class called NP-complete
problems
This class contains problems that do not have
efficient algorithms in polynomial time. Solution may
require super-polynomial time but given a solution,
this solution can be verified in polynomial time
07/26/24
Design
Involves generating a blueprint for the
program
Leads to a graphical illustration of how the
program will work
In structured programming design might
involve a number of flowcharts illustrating
the flow of a program
Other design tools include generating
algorithms and pseudocode
07/26/24
Coding
Produce the programs that will make up
the system
Complete when all code is written and
documented, and compiles without any
errors
07/26/24
Testing
An investigation conducted to provide
stakeholders with information regarding the
quality of the product or service user test
Every program module – test plan is
developed in the design phase
Systems test – programs are tested as a
group
The system must be tested in all environments
◦ Alpha testing: a test of the program carried out at the
user’s location using actual operational data. Testing
is done by the potential software user or an
independent test team
◦ Beta testing: versions of the software, called beta
versions are released to a limited group of people to
use and identify faults
◦ Simulation: used for testing critical software e.g.
flight or missile firing. Generates a less critical
imitation of the actual software
07/26/24
Implementation and support
User documentation or operating
instructions
Maintained according to the needs of the
users
If amendments are substantial, then the
software lifecycle would be applied
07/26/24
Evaluating languages
How readable is the language to humans?
How easy is it to write the program in this
particular language?
How reliable is the language?
How much would it cost to develop using
a given language?
How complicated is the syntax going to
be?
Does the language have standards?
07/26/24
Language Translator
This is a type of systems software that
translates instructions written in a second
or higher generation language into
machine language.
Language translators are of 3 types;
◦ Assemblers
◦ Compilers
◦ Interpreters.
07/26/24
Compiler (execute later)
Thissoftware analyzes the entire high level
program before translating it into machine
language.
The programming instructions of a high level
language are called the source code.
The compiler translates source code into machine
language, also called object code.
The object code can be saved and run later as it
doesn’t have to be recompiled. As a result,
compiled programs run faster than interpreted
programs
Tedious and time consuming to compile but faster
execution and the object code can be re-used
Examples of compiled languages are like C, Java
and Pascal
07/26/24
Interpreter (execute
immediately)
07/26/24
C: For Portability& Scientific Use
C is the entire language’s name.
Developed at Bell laboratories and is a
general purpose compiled language more
suitable with microcomputers.
Widely used to write operating systems
and utilities.
Also used very commonly in commercial
software development, including games,
robotics and graphics.
It is considered a language necessary for
programmers to know
07/26/24
Why Use C?
It is fast and efficient
A powerful and flexible language
A popular language preferred by professional
programmers
A portable language. Can be compiled and run on
another system with little or no modification
C works well with microcomputers
It enables the programmer to manipulate individual
bits in main memory
Is a language of ‘few words’
Is modular and written in routines called functions.
This enables creation of useful reusable code
07/26/24
Disadvantages
C is considered difficult to learn
Because of its conciseness, C can be
difficult to follow
It is unsuitable for applications that
require a lot of report formatting
07/26/24