DAVID@PENNDRLS.BITNET (12/06/88)
Well, I'm finally a little out from under my current project, and have time to submit to FIGI-L/COMP.LANGUAGES.FORTH (is that right?) again. First of all, thanks, Fraser, for the reference to the Pressman software engineering book (I was the one who asked). Very interesting. To recap: Software Engineering: A Practitioner's Approach (2nd Edition) McGraw Hill Series in Software Engineering and Technology Roger Pressman ISBN 0-07-050783-X LC QA76.6.p73 1987 which Fraser recommended to those of us advocating Leo Brody's ``Thinking Forth''. Fraser said that Pressman's book, unlike Brody's, was not oriented to a specific language, and was therefore a better base for thinking about program design independent of language. (Someone around here must think the book is good; our library catalog lists the book as ``missing'', i.e.: stolen. So I had to get it through inter-library loan. Which meant I couldn't keep it as long as I'm used to keeping books, which means I didn't get all the way through it. I'll try to keep that in mind as I comment on it.) First of all, if you want to learn to design better programs, I would have to recommend reading Brody's book first, especially if you are a FORTH programmer. Simply put, Brody's book is far more readable. Before anyone gets upset, this is not to take anything away from the Pressman book. I would continue the above recommendation by saying, go find a copy of the Pressman book to *buy* (not get from the library, that is), because you will want it on your reference shelf. It is, first and foremost (at least to my eyes) a relatively complete discussion of the software engineering process, starting from the early systems definition phase (and that includes concerns other than software), and outlining deliverables, goals, and checkpoints throughout the design process. However, be prepared to spend some time reading, rereading, and thinking about what's in the book; it is rather densly packed. (I think I need one of those summary books they publish for the English majors for this one :-). Now that my head is swimming with visions of specification documents and object oriented problem decomposition (which I still can't do except for the obvious stuff), I think a need another book, called ``Software Engineering: A Practitioner's *Handbook*''. That is, some recipes, heuristics, what have you, for *doing* program decomposition, illustrated with lots of examples, and especially some hard examples (not hard = large and complex, but hard conceptually, i.e.: the objects are not obvious at first glance). Well, I've drifted rather far from FORTH itself here (though I have begun to apply my FORTH/``Starting FORTH'' derived programming style to my projects in other languages, and it seems to be working), so I'll go away now. Is there another BITNET and/or Arpa discussion group for software engineering or program design I could join to discuss more on this subject? (I don't think I can get usenet news directly.) -- R. David Murray (DAVID@PENNDRLS.BITNET, DAVID@PENNDRLS.UPENN.EDU)