1 ICS 2175 Lecture 1 PRG Development2

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 16

Programming

Methodology

Lesson 2
System Development Cycle

 Thesesteps often overlap or are performed


concurrently, e.g. testing is performed
throughout the entire 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)

A program that converts high-level language


statements one at a time in succession into
machine language.
 Interpreters provide immediate feedback
regarding the accuracy of the coded instructions.
 Popular for development of frequently-changing
programs
 Easy to add new features and correct errors
 However, interpreted programs run more slowly
than compiled programs.
 Once a program is developed, a compiled version
can be produced to run more efficiently
 Examples of interpreted languages are BASIC,
LISP and PHP.

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

You might also like