People don't want to be called programmers any more, they want to be Software Engineers. Programmers whack out code according to a specification that they have been given (or they make up as they go along).

Software Engineers address the process by which programs are created. They are concerned with whether or not a solution meets a specification, and that systems which are produced can be proved and tested. We do not have some time to go into Software Engineering in detail, but I'd like to get you thinking about engineering issues when you design code.

Software Engineers try to create systems out of components. This way we can test the components in isolation, avoiding a situation where we just "plug the whole thing in and see if it works". We can also reuse these components in other projects. C and BoostC provide mechanisms which make this a whole lot easier.

We can look at these by considering one of the exercises we are going to perform with the PICmicro microcontroller. We are going to connect the PICmicro microcontroller to an LCD panel, and create some code which will display messages on it. This code is not an end in itself, instead we will want to use the facilities provided by it. To do this we will package up the program as a file which contains a series of functions which we can call to get things done. We can then put this file in a project with other source files which are linked together to create a product.

 

the LCD display we will be working with
The LCD display