The Student Room Group

AS Computing - Top down design & Step wise refinement

I'm going over my notes, but I can't seem to get my head round the two, I don't understand the difference
I'm not 100% sure but this is what I think of it. Stepwise refinement is similar to a list of instructions (and you can split the instructions up even further), like this:
1. Get drink
1.1 Open cupboard
1.2 Take drink out
2. Pour drink into glass
3. Drink drink
Basically a list of instructions.

While I think top down design is just what to do, and then you add on the next thing, and the next thing, like this:
1. Get drink
2. Get drink and pour into glass
3. Get drink and pour into glass, then drink drink

Like I say, I'm not 100% sure (I've just started the course) but that's what I think it is... and my teacher is hopeless so I've had to figure it out myself.
Original post by flexavelli
I'm going over my notes, but I can't seem to get my head round the two, I don't understand the difference
Top down design is a process of decomposition from a big task with no detail, into smaller sub-tasks with more detail. The sub-tasks are broken further into smaller tasks with even more detail, until finally, detailed tasks which cannot be decomposed further are produced. It is often useful to think of the decomposition in terms of a families generations.

At the top you get Parents.
next level are children
next level are grandchildren
next level are great grand children etc.

You can also think of it like a pyramid where you start at the top with the crown brick and each layer adds more bricks until you get to the bottom with a load of bricks at that layer.

For instance, holding a dinner party would look like:

Dinner Party (top tier)

broken down into:

(second tier)
Party type decision
Invitations
Budget
Shopping
Preparation
Gathering

Then each of these sub headings is broken down further. So 'Invitations' might look like:

(third tier)
Guest list decision
Purchase Invitations
Write Invitations
Mail Invitations
Receive replies

Decomposing ''Party Type' decision may include the options:

(third tier)
formal, informal, special occasion.

'Informal' decomposition may include the options:

(fourth tier)
BBQ, Buffet, Take Away.

Decomposing further 'Take Away' could include the decision options of:

(final tier)
Fish and Chips, Pizza, Burger, Chinese, Indian, Turkish Kebab etc.

STEP WISE REFINEMENT

Is pretty much the same approach using nested tasks. Here is an example I found:

Example:

Brush Teeth
.......◦ find toothbrush
.......◦ find toothpaste tube
.......◦ open toothpaste tube
.............◾ Put thumb and pointer finger on cap
.............◾ turn fingers counter-clockwise
.............◾ repeat prior step until cap falls off
.......◦ squeeze tube onto toothbrush
.............◾ (details omitted)
.......◦ clean teeth
.............◾ put brush on teeth
.............◾ move back and fourth vigorously
.............◾ repeat above step 100 times
.......◦ clean up
.............◾ rinse brush
.............◾ turn on water
.............◾ put head of brush under running water for 30 seconds
.............◾ turn off water
.............◾ put cap back on toothpaste
.............◾ put all items back in cabinet
End
Original post by uberteknik
Top down design is a process of decomposition from a big task with no detail, into smaller sub-tasks with more detail. The sub-tasks are broken further into smaller tasks with even more detail, until finally, detailed tasks which cannot be decomposed further are produced. It is often useful to think of the decomposition in terms of a families generations.

At the top you get Parents.
next level are children
next level are grandchildren
next level are great grand children etc.

You can also think of it like a pyramid where you start at the top with the crown brick and each layer adds more bricks until you get to the bottom with a load of bricks at that layer.

For instance, holding a dinner party would look like:

Dinner Party (top tier)

broken down into:

(second tier)
Party type decision
Invitations
Budget
Shopping
Preparation
Gathering

Then each of these sub headings is broken down further. So 'Invitations' might look like:

(third tier)
Guest list decision
Purchase Invitations
Write Invitations
Mail Invitations
Receive replies

Decomposing ''Party Type' decision may include the options:

(third tier)
formal, informal, special occasion.

'Informal' decomposition may include the options:

(fourth tier)
BBQ, Buffet, Take Away.

Decomposing further 'Take Away' could include the decision options of:

(final tier)
Fish and Chips, Pizza, Burger, Chinese, Indian, Turkish Kebab etc.

STEP WISE REFINEMENT

Is pretty much the same approach using nested tasks. Here is an example I found:

Example:

Brush Teeth
.......◦ find toothbrush
.......◦ find toothpaste tube
.......◦ open toothpaste tube
.............◾ Put thumb and pointer finger on cap
.............◾ turn fingers counter-clockwise
.............◾ repeat prior step until cap falls off
.......◦ squeeze tube onto toothbrush
.............◾ (details omitted)
.......◦ clean teeth
.............◾ put brush on teeth
.............◾ move back and fourth vigorously
.............◾ repeat above step 100 times
.......◦ clean up
.............◾ rinse brush
.............◾ turn on water
.............◾ put head of brush under running water for 30 seconds
.............◾ turn off water
.............◾ put cap back on toothpaste
.............◾ put all items back in cabinet
End


So stepwise refinement has an order while top down design doesn't? Is that pretty much the only difference?
Original post by CheetahCurtis
So stepwise refinement has an order while top down design doesn't? Is that pretty much the only difference?


Pretty much although with Top Down it's half and half: the decomposition process can be ordered in any way but the 'main' programme is written to execute procedures (sub-routines) in a set order. All of the declarations (variables, data types etc.) and sub-routines do not have to be written or stated in any given order. Only the main programme which 'calls' the sub-routines does.

With Stepwise refinement, the programme flow is defined at the outset. i.e. the order of execution is defined and the detail added from there.

I guess the comparison would be between an interpreted source code to run the programme vs a compiled source to produce the object code.

With interpreted sources, a translator produces machine instructions on-the-fly, which are then executed for each line of code in succession. The old BASIC language used GOTO type commands to jump back and forth within the programme.

With compilers, the entire object code is produced as an .exe file ready to be run. No need for a translator.

The Top Down approach lends itself to Object Oriented Design and not limited to the language of software code. The design process decomposes at a higher level of abstraction and therefore easier to understand.

In this way the design is a logical process which produces a specification in effect. The specification can be broken up into chunks where all I/O, parameter passing, global and local declarations etc. are already defined with the specification for sub-routines given to different software coders to convert into code in whatever the chosen software language is defined. Finally, the code is pulled together during compilation. Different languages can also be intermixed dependent on which is best suited for a given task.

For instance, I worked on a radar systems development where code was written in C++, Ada and ASM running on different platforms but all integrated.

It's much harder to see how stepwise refinement could be adapted to the same level of flexibility or readability and the software is often written in the chosen language from the outset.
(edited 9 years ago)

Quick Reply

Latest

Trending

Trending