First Step: Understand the problem!




Document: Software Engineering 1: Course Notes

next What's a ;;high-level;; computer language?
up Chapter 1 pp. 1-10
previous Overview

First Step: Understand the problem!

... I think that there is only one way to science - or to philosophy, for that matter: to meet a problem, to see its beauty and fall in love with it; to get married to it, and to live with it happily, till death do ye part - unless you should meet another and even more fascinating problem, or unless, indeed, you should obtain a solution. But even if you do obtain a solution, you may then discover, to your delight, the existence of a whole family of enchanting though perhaps difficult problem children for whose welfare you may work, with a purpose, to the end of your days.

Realism and the Aim of Science
Preface 1956, p. 8
Karl Popper

Your first step in tackling any software engineering project is to ensure that you fully understand the statement of the problem. Indeed, many senior software engineers (classified as Systems Analysts) specialise in nothing but clearly stating the problems to be solved by software systems!

Alcock presents a formula for calculating loan repayments. Ask yourself do you believe this formula before going any further. If you do believe it, try to say exactly why. In any case, try to test the formula in any way you can dream up. You may not be able to prove that it is definitely right, but you should be able to think of at least some partial tests which it should pass. For example, does it give the correct answer for the limiting case of the principle being £0? Can you think of any other comparable tests?

Next, actually carry out the sequence of instructions which Alcock lists on p. 2, for at least a few different cases. Carry out these instructions as exactly and literally as you possibly can (you will need to get a friend to act as the "client", and then alternate roles). If you find anything in the instructions which you think is obscure or ambiguous - which you cannot immediately see how to carry out - then make a note of it.




Document: Software Engineering 1: Course Notes

next What's a ;;high-level;; computer language?
up Chapter 1 pp. 1-10
previous Overview



McMullin@ugmail.eeng.dcu.ie
Wed Apr 12 19:40:14 BST 1995