SECTION 04 / 14

Software design: create the big picture

1 min read
On this page 1 headings

Suppose several developers start coding Amazon Pay without agreeing on the structure. Each person may choose different inputs, data formats or responsibilities. Their parts can fail when connected.

Without a design, independently built code may not fit together.
Without a design, independently built code may not fit together.
Open image ↗
Without a design, independently built code may not fit together.

EXAMPLE Developer A changes a function from pay(amount) to pay(amount, currency). Developer B still calls pay(amount). Developer B's module may now fail. Agreeing on interfaces and coordinating changes prevents this confusion.

Such a scenario can be a disaster: it needlessly makes the software complicated and the product will not be delivered on time.

Difficulties while adding new features

If we want to add new features later, it helps to have a big-picture view of the system so we can decide how the new feature can be correctly integrated into the existing system.

A new feature can be fitted in correctly only when you can see the big picture.
A new feature can be fitted in correctly only when you can see the big picture.
Open image ↗
A new feature can be fitted in correctly only when you can see the big picture.

Design is the big-picture view of the software system. It provides a structure to the software system, so we know how to organise the code before we start implementing it.

A house blueprint is like the design plan for software.
A house blueprint is like the design plan for software.
Open image ↗
A house blueprint is like the design plan for software.

REMEMBER Requirements say WHAT is needed; design provides the structure for HOW it will be built.

YOUR STUDY PROGRESS

Finished this section? Save your progress.

Back to top ↑