Development Process (College Board AP® Computer Science Principles): Study Guide
Development methodologies
What is a development methodology?
A development methodology is an approach that guides how a program is built from start to finish
The development process typically includes stages such as investigating and reflecting, designing and prototyping
Different methodologies organise these stages in different ways depending on the project's needs
Methodology | Description | When it is used |
|---|---|---|
Ordered and intentional | Stages are completed in a fixed sequence; each phase must finish before the next begins | When requirements are well-defined and unlikely to change |
Iterative | The program is developed through repeated cycles of designing, building, testing, and refining | When requirements may evolve or feedback is needed throughout development |
Exploratory | The developer experiments with different approaches to discover a solution | When the problem is not well understood at the start |
Choosing a methodology
The choice of methodology depends on how clearly the problem is defined and how likely the requirements are to change
Iterative development is used in most real-world projects because user needs and requirements frequently change during development
Skipping iteration risks delivering a program that solves the wrong problem
Ordered and intentional development works well when all requirements are fully defined before work begins
If requirements are misunderstood early there is no opportunity to correct them until the end, which can be costly
Exploratory development suits research and innovation contexts where the solution is not known at the outset
Without clear goals it can be difficult to manage and may produce inconsistent results
Examiner Tips and Tricks
The AP exam may describe a development scenario and ask which methodology best fits. Look for clues: if the scenario mentions changing requirements or ongoing feedback, iterative is likely the best answer. If the requirements are fully defined upfront, ordered and intentional may apply.
The AP Create Performance Task is itself an example of iterative development — you are expected to design, build, and refine your program based on testing and feedback before submission. You may be asked on exam day to describe a design decision you made and how it affected your program's development.
Iterative & incremental development
How does iterative development work?
Iterative development involves building a program through repeated cycles of designing, implementing, testing, and refining
Each cycle produces a working version of the program that is improved in the next cycle based on testing and feedback
Errors and design problems are identified early, reducing the cost and effort of fixing them later
Iterative development allows the program to adapt to changing requirements or new understanding of the problem
Incremental and modular development
Incremental development means adding new features or functionality one step at a time, rather than building the entire program at once
Each increment adds a new, testable piece of functionality to the existing program
Modular design supports incremental development by breaking the program into independent components that can be built and tested separately
Testing is integrated throughout the process, with each new module tested before the next is added
Examiner Tips and Tricks
Iterative and incremental development are closely related but not identical. Iterative refers to refining the whole program through repeated cycles.
Incremental refers to adding new pieces over time. A program can be developed using both approaches at once.
Worked Example
A student is building a quiz application. After completing the first version, she shares it with classmates, collects their feedback, and uses their suggestions to improve the program before releasing a second version. She repeats this process several times.
Which development methodology does this best describe?
(A) Ordered and intentional development, because the student follows a fixed sequence of stages
(B) Exploratory development, because the student does not know what the final program will look like
(C) Iterative development, because the student refines the program through repeated cycles of testing and feedback
(D) Incremental development, because the student adds new features with each version
[1]
Answer:
(C) Iterative development, because the student refines the program through repeated cycles of testing and feedback [1 mark]
The student builds, tests, collects feedback, and refines repeatedly; this is iterative development
Option D is tempting but incremental development refers to adding new features step by step, not refining through feedback cycles
Unlock more, it's free!
Was this revision note helpful?