Home / Notes / Class 12 / Computer Science / Software development

Software development: Class 12 Computer Science

Written by Usman Tariq (Computer Science)

Stages of the software development life cycle, development models such as waterfall and agile, requirements, design, coding, testing types, documentation, implementation methods, maintenance and software quality.

Key points

Software engineering is the planned and organised way of building software so that it is correct, on time and within budget. Large programs written without a plan often fail, cost too much or are full of errors.

The software development life cycle (SDLC) has these stages:

  • Requirement analysis: find out what the users need.
  • Design: plan how the system will work.
  • Coding (implementation): write the program.
  • Testing: find and fix errors.
  • Deployment: install and start using the system.
  • Maintenance: correct, improve and update it after release.

In requirement analysis the analyst collects facts by interviews, questionnaires, observation and reading existing documents. The result is a requirements specification that lists what the system must do (functional requirements) and qualities such as speed, security and ease of use (non-functional requirements). A feasibility study checks if the project is possible in terms of cost, technology and time.

In design, the team plans the structure, the database, the input and output screens and the algorithms. Tools include flowcharts, data flow diagrams, entity relationship diagrams and pseudocode. A good design is divided into small modules that can be built and tested alone.

In coding, programmers write the design in a chosen language. Good practice includes meaningful names, comments, short modules and following a coding standard, so that others can read and change the program.

Types of testing:

  • Unit testing: each module alone.
  • Integration testing: modules joined together.
  • System testing: the whole system against requirements.
  • Acceptance testing: done by the user to accept the product. Alpha testing is by the developers, beta testing by a small group of real users.
  • White-box testing looks at the code. Black-box testing checks inputs and outputs without seeing the code.

Test data should include normal data, boundary data (values at the edges of the allowed range) and erroneous data (wrong values that must be rejected). For example, if marks must be from 0 to 100, normal is 56, boundary is 0 and 100, and erroneous is 101 or the word ten.

Software development models:

  • Waterfall: stages follow one after another and each is finished before the next begins. Simple and well documented, but changes are hard and the user sees the product only at the end.
  • Prototyping: a working sample is built quickly and shown to users to refine the requirements.
  • Spiral: repeated cycles with risk analysis in each.
  • Agile: the product is built in short cycles called sprints, with frequent user feedback and change welcomed.

Ways of changing to a new system (implementation):

  • Direct changeover: the old system is stopped and the new one starts at once. Cheap but risky.
  • Parallel running: both run together for a time. Safe but costs more work.
  • Phased: the new system is introduced part by part.
  • Pilot: the new system is tried first in one branch or department.

Documentation is written material about the system. User documentation tells users how to operate it. Technical documentation describes the design, code and database for developers who maintain it. Good documentation saves time during training and maintenance.

Maintenance is of four kinds:

  • Corrective: fixing errors found after release.
  • Adaptive: changing the software for a new environment, such as a new operating system.
  • Perfective: improving speed or adding features.
  • Preventive: changing the code to avoid future problems.

Software quality is judged by correctness, reliability, usability, efficiency, portability and maintainability. Project teams also use version control to keep track of changes in the code.

Study tip: Learn the SDLC stages in order and be ready to write one or two lines on each. For model questions always give one advantage and one disadvantage. For test data, give examples with actual numbers.

Definitions and flashcards

Say the meaning first, then open the card to check.

SDLC

The series of stages followed to plan, build and maintain software.

Requirement

A statement of what the user needs the system to do.

Prototype

An early working model used to get feedback.

Debugging

Finding and removing the cause of errors.

Black-box testing

Testing outputs for given inputs without looking at the code.

Agile

A method that builds software in short cycles with constant feedback.

Parallel running

Using the old and new systems together for some time.

Maintenance

Changes made to software after it is delivered.

Feasibility study

A check on whether a project is practical and worth doing.

Short questions with model answers

These are the kind of questions asked for 2, 3 and 5 marks. Try each one before opening the answer.

What is the software development life cycle? (2 marks)

The SDLC is the set of stages that a software project goes through from the idea to retirement. The stages are requirement analysis, design, coding, testing, deployment and maintenance. Following them gives a better product.

Differentiate between alpha and beta testing. (2 marks)

Alpha testing is done inside the company by the developers or testers before release. Beta testing is done by a small group of real users in their own place, and their feedback is used to fix the final problems.

State two advantages and two disadvantages of the waterfall model. (3 marks)

Advantages: it is simple to understand and each stage has clear documents. Disadvantages: it is hard to go back and change earlier stages, and the user sees the working software only at the end, so errors in requirements are found late.

Explain parallel running and direct changeover. (3 marks)

In parallel running the old and new systems work side by side for a period, and results are compared. If the new system fails, the old one is still there, so risk is low but work is doubled. In direct changeover the old system is switched off and the new one is used at once. It is cheap and quick but very risky if the new system has faults.

Describe the types of testing used in software development. (5 marks)

Unit testing checks every module separately. Integration testing checks that modules work correctly when joined. System testing checks the full system against the requirements. Acceptance testing is done by the user to decide whether to accept it. Black-box testing checks outputs without seeing code, and white-box testing checks the code paths. Test data should be normal, boundary and erroneous.

Why is documentation necessary? (2 marks)

User documentation helps people learn and operate the software. Technical documentation helps programmers understand the design and code, so they can fix and upgrade the system even after the original developers leave.

Common mistakes

  • Writing the stages of the SDLC in the wrong order, such as testing before coding.
  • Mixing up alpha and beta testing.
  • Giving boundary data as a value inside the range instead of at its edge.
  • Confusing user documentation with technical documentation.
  • Saying maintenance is only fixing errors. It includes adaptive, perfective and preventive changes too.

Practise this chapter

Practice questions and timed test Printable worksheet

Previous: Web development Next: Programming and arrays