To understand software engineering we must understand a programmer. Let us allow a programmer to specify the requirement (to be identical with the user), and examine a scenario which ends in the construction of the simplest possible program: a single bit program.
Ada is sitting in a room.
In the evening the room becomes dark.
Ada turns on the light.
That is the fundamental act of programming. There is a problem domain (the room), which is dynamic (gets dark). There is an order to the dynamic problem domain (it will be dark until morning), permitting analysis. There is a system that can operate within the problem domain (the light), and it has semantics (the switch state).
There is a desire (that the room shall remain bright), and there is an insight (that the operation of the switch will fulfil the desire).
Dynamic problem domains, systems, and semantics are covered in detail elsewhere. On this course, we are concentrating on understanding more about the desire and the insight.
It is worth pointing out here what we mean by a `programmer'. A drone typing in the same RPG 3 invoicing system yet again might not be doing any real programming at all, but a project manager using Excel to gain an intuitive understanding of when the budget will get squeezed and what the key drivers are, most certainly is.
Copyright (c) Alan G Carter and Colston Sanger 1997
Top comments (1)
Happy Coding on International Women::s Day!