Home / Notes / Class 12 / Computer Science / Software development
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.
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:
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:
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:
Ways of changing to a new system (implementation):
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:
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.
Say the meaning first, then open the card to check.
The series of stages followed to plan, build and maintain software.
A statement of what the user needs the system to do.
An early working model used to get feedback.
Finding and removing the cause of errors.
Testing outputs for given inputs without looking at the code.
A method that builds software in short cycles with constant feedback.
Using the old and new systems together for some time.
Changes made to software after it is delivered.
A check on whether a project is practical and worth doing.
These are the kind of questions asked for 2, 3 and 5 marks. Try each one before opening the answer.
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.
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.
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.
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.
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.
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.