NSSCAS Computer Science (8231) study materials
NSSCAS Computer Science (8231) study resources

NSSCAS Computer Science (8231): Software development

NSSCAS Computer Science (8231) · Work through your exam, one topic at a time.

All guide sections

Software development

Software development tests the life cycle: how requirements are gathered, how a methodology is chosen, how software is designed and tested, and how it is documented and maintained.

Life cycle models

Waterfall proceeds through sequential stages with sign-off at each; it suits stable requirements and is easy to manage but expensive to change late. Iterative and incremental models deliver in repeated cycles and accept feedback. Agile uses short sprints, working software and continuous customer collaboration. Rapid application development relies on prototyping. The spiral model adds explicit risk analysis to each iteration.

Requirements and design

Functional requirements describe what the system must do; non-functional requirements describe qualities such as performance, security and usability. Elicitation uses interviews, questionnaires, observation and document analysis. Design covers modular structure, interfaces, data storage and validation.

Testing

Testing proceeds from unit to integration to system to acceptance. Alpha testing is internal; beta testing uses real users. Black-box testing is based on the specification; white-box testing uses knowledge of the code. Test data includes normal data, boundary data, erroneous data and extreme data.

Worked example

An input accepts ages 11 to 18 inclusive. Boundary value analysis selects 10 (just below), 11 (lower boundary), 18 (upper boundary), 19 (just above), plus normal 15 and erroneous 'abc'. Normal data alone would not reveal an off-by-one error at 10 or 19.

Documentation and maintenance

User documentation covers installation, tutorials and troubleshooting; technical documentation covers design, algorithms, data structures and test logs. Maintenance is corrective (fixing faults), adaptive (new environment), perfective (new features) and preventive (refactoring for future reliability).

Traps

Saying waterfall forbids revisiting a stage; confusing alpha and beta testing; describing white-box testing as testing without seeing code; choosing boundary values inside the range rather than at its edges; treating maintenance as only bug fixing.