VCE Vault

VCE Applied Computing: Software Development (Year 12) · Unit 3 — Analysis and Design · 14m read

The Problem-Solving Methodology for Software Development

Every Software Development SAC, SAT and exam question is framed by the problem-solving methodology (PSM). Learn its stages and vocabulary precisely and you will always know what a question is really asking.

Learning objective: Describe the four stages of the problem-solving methodology (analysis, design, development, evaluation) and the key terms VCAA uses for software solutions, including efficiency and effectiveness.

By the end of this lesson you can:

  • I can name the stages of the PSM and the activities in each.
  • I can distinguish functional and non-functional requirements, constraints and scope.
  • I can explain efficiency and effectiveness of a software solution.

Building software is like building a house. Work out what the owners need (analysis), draw the plans (design), build and inspect (development), then check they are happy living there (evaluation).

The four stages

ANALYSIS — understand the problem.
• Solution requirements: FUNCTIONAL (what the software must do) and NON-FUNCTIONAL (qualities such as usability, reliability, robustness, portability, maintainability).
• Constraints: economic, technical, social, legal and usability limits.
• Scope: what the solution will and will not do.
• Documented in a Software Requirements Specification (SRS).

DESIGN — plan the solution.
• Generate and evaluate design ideas against criteria.
• Use design tools: pseudocode, data dictionaries, object descriptions, mock-ups, IPO charts.
• Write the EVALUATION CRITERIA that will later judge the solution.

DEVELOPMENT — build it.
• Manipulation (coding), validation, testing and documentation (internal comments and user documentation).

EVALUATION — judge it after use.
• An evaluation strategy (timeline, data to collect, methods) and a report against the evaluation criteria.

Efficiency and effectiveness

EFFICIENCY — how much time, cost and effort it takes to produce or use the solution (e.g. processing speed, number of clicks, cost to run).

EFFECTIVENESS — how well the solution achieves its intended results: accuracy, completeness, readability, attractiveness, clarity, usability, timeliness, reliability, accessibility, communication of message.

A solution can be effective but inefficient (gives correct results, but slowly) — good questions ask you to judge both.

Worked example (Easy)

Classify each as functional requirement, non-functional requirement or constraint: (a) the app must calculate the total cost of an order; (b) the app must load in under two seconds; (c) the budget is $5000; (d) the app must be easy for elderly users.

  1. (a). Describes what the software does. \text{functional}
  2. (b). Describes a quality (performance). \text{non-functional}
  3. (c). A limit on the project. \text{economic constraint}
  4. (d). A quality — usability. \text{non-functional}

Answer: (a) functional (b) non-functional (c) constraint (d) non-functional

Common mistakes

  • Confusing testing with evaluation Testing checks the solution works during development; evaluation judges how well it meets its goals after use. Fix: Testing → development stage. Evaluation → after implementation, against evaluation criteria.
  • Writing evaluation criteria in the evaluation stage They are created during design. Fix: Design creates criteria; evaluation applies them.

Practice questions

  1. In which PSM stage are evaluation criteria created?

    1. Analysis
    2. Design
    3. Development
    4. Evaluation

    (1 marks)

  2. Explain the difference between efficiency and effectiveness, using a booking app as an example.

    (2 marks)

Summary

  • PSM: analysis → design → development → evaluation.
  • Requirements: functional (what) vs non-functional (how well); constraints limit the project; scope sets boundaries.
  • Evaluation criteria are written in design and applied in evaluation.
  • Efficiency = resources; effectiveness = quality of results.

More from VCE Applied Computing: Software Development (Year 12)