Software Engineering— Some Principles and Problems
Software engineering is a relatively new name coined to denote a rapidly growing body of knowledge concerned with computer-program design, composition and production. The art of programming is, of course, much older than software engineering of which it is an essential ingredient; many principles of good programming are considered as cornerstones of software engineering. It is not, however, a case of total immersion: not all time-honoured practices of “clever” programmers could be included among the techniques recommended to a software engineer. To quote but two examples: tricky programming in which an expert programmer takes advantage of his intimate knowledge of the machine code of the computer for which he programs in order to use certain bit patterns for two or more different purposes (e.g., as an instruction and as a constant) is an antithesis of the entire software engineering philosophy. Similarly, once highly fashionable overall code optimization in computer produced programs (like in compiler produced object codes) is considered almost a waste of time by software engineering; in case of compilers and other code generating programs, it is recommended instead to aim for satisfactory code first and restrict the fine tuning (local optimization) to such portions of the code which are found to be executed most frequently or for the longest periods of time.
Unable to display preview. Download preview PDF.