Skip to main content

CHAPTER 12: SOFTWARE DEVELOPMENT

12.1 PROGRAM DEVELOPMENT LIFECYCLE

12.1.1 Stages

  1. Analysis: Understand problem, identify requirements
  2. Design: Create solution structure, algorithms
  3. Coding: Write actual program code
  4. Testing: Find and fix errors
  5. Maintenance: Update and improve after delivery

12.1.2 Development Models

Waterfall:

  • Sequential phases
  • Each phase completes before next begins
  • Good for well-defined requirements

Iterative:

  • Develop in cycles
  • Each iteration produces working version
  • Allows feedback and improvement

RAD (Rapid Application Development):

  • Quick development using pre-built components
  • Emphasis on prototyping
  • Fast user feedback

12.2 PROGRAM DESIGN

12.2.1 Structure Chart

Purpose: Decompose problem into sub-tasks

Shows:

  • Modules/procedures/functions
  • Parameters passed between modules

12.2.2 State-Transition Diagrams

Purpose: Document algorithm behavior

Shows:

  • Different states
  • Transitions between states

12.3 PROGRAM TESTING AND MAINTENANCE

12.3.1 Error Types

Type Description
Syntax Violation of language rules
Logic Incorrect algorithm implementation
Runtime Error during execution

12.3.2 Testing Methods

Method Description
Dry Run Manual execution using test data
Walkthrough Team reviews code
White Box Tests internal structure
Black Box Tests functionality only
Integration Test combined components
Alpha Testing by developers
Beta Testing by users
Acceptance Final testing by client

12.3.3 Test Data

Type Description
Normal Typical valid data
Extreme/Boundary At limits of valid range
Abnormal/Invalid Invalid data

12.3.4 Maintenance Types

Type Description
Corrective Fixing errors
Adaptive Adapting to environment changes
Perfective Improving performance/functionality