(12) Software Development

Program development Life Cycle

A structured process to design, build and test software solutions.

It is also to ensure that the program developed is systematic, efficient and to a high standard.

1, ANALYSIS -

  • The stage to understand the problem and create a program to solve it.

  • Programmers use abstraction to focus on the core problem and ignore uneccessary details.

2, DESIGN -

  • Creates a planning on how the program would work.

  • Consists of Structure diagrams, Flowcharts and Pseudocodes.

3, CODING

  • The stage where the programmer starts writing the program.

  • The code is written in modules.

  • Each modules work together to solve the whole problem.

  • Iterative testing is used for each module to debug and test it.

4, TESTING

  • Then the whole program is tested thoroughly.

  • Uses different testing tools to ensure it:

    • Meets the requirements.

    • Handles valid and invalid inputs

    • can perform well under different conditions.

5, MAINTENANCE

  • after the program is sent to the client it enters the maintenance stage.

  • fixes bugs that were not discovered when testing.

  • Updating features to meet new requirements.

  • Improving its performance


WATERFALL

  • The Waterfall Model is a sequential software development process divided into distinct phases.

  • Each phase must be completed before the next one starts.


Iterative (Agile)

A software development model that promotes adaptability and high customer involvement.


Rapid Application Development (RAD)

It emphasises fast and iterative development


Program Testing and Management-

Program testing: The process of executing a program to find bugs and verify it works correctly.

Program Maintenance: The process of modifying and updating software after it has been deployed.

Ways to avoid faults; during comprehensive and rigorous program specification at the end of the analysis phase followed by pseudocodes, structure charts, state-transition at the design stage.

Ways to expose faults; typically during the testing stage where programs are corrected. However, complex programs are not guaranteed to be corrected, it could be exposed when the software go live. If so, they will be corrected during the maintenance phase.


Syntax Errors: They are errors in grammar. Programs are often compiled or interpreted before execution.

  • Corrected by the IDE that will give you a proper suggestion of that particular syntax mistake.


Logic Errors: Errors that happen when the program does not do what it is intended to do. Simple logical operation.

  • By dry-running


Run-Time error: An error that occurs when it is executed. It either stops or is trapped in an infinite loop and must be stopped by brute force.

  • A patch is released, (a program that runs with the existing program to correct the mistakes.)


Program Testing:

dry-run: When pseudocode is written.

Walkthrough: A more formalised dry run where an a member dry runs the program independently or a developer walks the members through how the program would work.

When a program is being developed these tests are carried out:

  • White box testing: It is the detailed testing of how a procedure works. It tests the logic and structure of every path in a program module.

  • Black-box testing: Tests the modules inputs and outputs.

  • Integration testing: If any module is written separately it tests whether they work together or not, if a module is not written;

    • A stub testing is used, where a dummy module is used for testing purposes.

After the program has been completed these tests are carried out:

  • Alpha testing: First, tested when the problem is complete or almost complete, it is tested in-house by the team members.

  • Beta testing: Second. Tested by a few users before the full release.

  • Acceptance testing: Proves to customers that the program works according to the requirement for the environment it will be used in.


Test strategy: It is an overview of testing required to meet the requirements of the program. It shows when and how the program is to be tested.

Test plan: Shows a list of all the stages of testing and the test that will be performed for a particular program.


Test data for a test plan:

  • Normal data: accepted by the program and is used to show program is working correctly.

  • Abnormal data: Rejected by the program as it could cause problems.

  • Extreme data: It is the limited of values to be accepted by the program.

  • Boundary data: Values that are found just outside the limit values and is rejected by the program.


Types of Maintenance:

  • Corrective maintenance: It corrects any errors while the program is running.

  • Perfective maintenance: It improves the performance of the program while it is running.

  • Adaptive maintenance: It alters the program so that it can perform any task required by the customer.