12.1-Software-Development-EMK-Notes-2022

Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

12.

1 Software Development

 Show understanding of purpose of developmentpaperscambridge.com


Candidates should be able to:
life cycle.
 Show understanding of analysis, design, coding, testing and maintenance stages in
program development life cycle
 Show understanding of need for different development life cycles depending on program
being developed.
 Describe principles, benefits and drawbacks of each type of life cycle.

Purpose of a Program Development Lifecycle


In order to develop a successful program that is going to be used by others to perform a
specific task or solve a given problem, the development needs to be well ordered and
clearly documented, so that it can be understood and used by other developers.
Stages in Program Development Cycle
Analysis:

 First Step in solving a problem is to investigate issues and Current System if there is
one. Problem needs to be defined clearly and precisely. A ‘requirements
specification’ is drawn up.
 Second Step is Planning a solution. Sometimes there is more than one solution. You
need to decide which is most appropriate.
 Third Step is to decide how to solve problem:
• Bottom-Up: Start with a small sub-problem and then build on this.
• Top-Down: Stepwise refinement using pseudocode, flowcharts or structure charts.
Design:
To design solution, an identifier table is a good starting point. This leads to think
about data structures: do we need a 1D array or a 2D array to store data. Do we need a file
to store data long-term?
Plan your algorithm by drawing a flowchart or writing pseudocode.
Coding:
After designing solution, we need to choose a suitable high-level programming
language. If we know more than one programming language, we have to weigh up pros and
cons of each one.
When you start writing programs you might find it takes several attempts before program
compiles. When it finally does, you can execute it. It might ‘crash’, meaning that it stops
working. In this case, you need to debug the code. Program might run and give you some
output. This is Eureka moment: ‘It works!!!!’. But does program do what it was meant to do?

03345606716 emkonweb.com @emkonweb @emkonweb


CS Made Easy

Depending on program IDE, we may have some helpful paperscambridge.com


facilities. Some syntax errors may be
flagged up by IDE, so you can correct these as you go along.
This stage is often referred to as implementation.
Syntax error is a 'grammatical' error, in which a program statement does not follow rules
of high-level language.

Testing
Testing can be done through trace table. Testing can ensure program really works
under all circumstances. There are different development methodologies. These include
waterfall, iterative and rapid application development model.
Maintenance: Program is maintained throughout its life, to ensure it continues to work
effectively. This involves dealing with any problems that arise during use, including correcting
any errors that come to light, improving functionality of the program, or adapting program
to meet new requirements.

Program Development Life Cycle Methodologies

The Waterfall Model:


This is linear sequential development cycle where each stage is completed and signed off
before next stage is begun. This model is suitable for smaller projects with a short timescale,
for which requirements are well known and unlikely to change.

Principles
 linear, as each stage is completed before the next is begun.
 well documented as full documentation is completed at every stage.
 low customer involvement; only involved at start and end of the process
Merits Demerits
Easy to understand and use as stages are Difficult to change requirements at a later
clearly defined. stage

Computer Science IGCSE, O & A level By Engr M Kashif 03345606716


12.1 Software Development

Stages do not overlap and are completed one Not suitable for programs where
at a time. paperscambridge.com
requirements could be subject to change
Easy to manage due to fixed stages in model No working software is produced until late
and Each stage has specific deliverables. during life cycle.
Not suitable for long, object-oriented and
complex projects.
It is difficult to measure progress within
stages.
Works well for smaller programs where Integration is done at very end, which
requirements are known and understood. doesn’t allow identifying potential technical
issues early.
The iterative Model
This development cycle first develops a simple subset of requirements, then expands or
enhances model and runs development cycle again. These program development cycles are
repeated until full system has been developed. This model is suitable for projects for which
major requirements are known but some details are likely to change or evolve with time.
Principles, Merits and Demerits to the iterative model
Principles
Incremental development as program development lifecycle is repeated.
working programs are produced for part of system at every iteration
high customer involvement, as part of system can be shown to the customer after every iteration.
Merits Demerits
Some working programs developed quickly at an Only large software development projects
early stage in lifecycle. can benefit because it is hard to break a small
Easier to test and debug smaller programs. software system into further small
More flexible as easier to alter requirements and serviceable modules.
Progress can be measured.
Customers involved at each iteration therefore no Design issues might arise because not all
surprises when final system delivered. requirements are gathered at the beginning
of the entire life cycle.
Software is produced early, which facilitates More resources may be required.
customer evaluation and feedback.
Better suited for large and mission-critical Needs good planning overall and for every
projects. stage
Parallel development can be planned.
Less costly to change the scope / requirements. Defining increments may require definition of
Risks are identified and resolved during iteration. the complete system.
Easier to manage risk as high-risk part is done
first.

03345606716 emkonweb.com @emkonweb @emkonweb


CS Made Easy

paperscambridge.com

Rapid Application Development (RAD) model:


This development cycle develops different parts of requirements in parallel, using
prototyping to provide early user involvement in testing. Program development cycles are
run in parallel for each part of requirement, using a number of different teams. Prototyping
is used to show initial versions to customers to obtain early feedback. This model is suitable
for complicated projects that need developing in a short timeframe to meet evolving needs
of a business.

Principles
Minimal planning.
Reuses previously written code where possible, makes use of automated code generation where
possible.
High customer involvement, as customers can use the prototypes during development.
Benefits Drawbacks
Reduced overall development time. System under development needs to be
modular.
Rapid frequent customer feedback informs Needs strong teams of skilled developers and
development. designers.
Very flexible as requirements evolve from Not suitable for short simple projects.
feedback during development.
As parts of system are developed side by side, Suitable for systems that are component
modification is easier because each part must based and scalable.
work independently.
Progress can be measured.
Reduces development time.

Computer Science IGCSE, O & A level By Engr M Kashif 03345606716


12.1 Software Development

Encourages customer feedback.


paperscambridge.com
Important Points for Revision
 Program development lifecycle – the process of developing a program set out in five stages:
analysis, design, coding, testing and maintenance.
 Analysis – part of program development lifecycle; a process of investigation, leading to
specification of what a program is required to do.
 Design – part of the program development lifecycle; it uses the program specification from
the analysis stage to show how the program should be developed.
 Coding – part of program development lifecycle; writing of program or suite of programs.
 Testing – part of the program development lifecycle; the testing of the program to make sure
that it works under all conditions.
 Maintenance – part of the program development lifecycle; the process of making sure that
the program continues to work during use.
 Waterfall model – a linear sequential program development cycle, in which each stage is
completed before the next is begun.
 Iterative model – a type of program development cycle in which a simple subset of the
requirements is developed, then expanded or enhanced, with the development cycle being
repeated until the full system has been developed.
 Rapid application development (RAD) – a type of program development cycle in which
different parts of requirements are developed in parallel, using prototyping to provide early
user involvement in testing.
**********************

03345606716 emkonweb.com @emkonweb @emkonweb

You might also like