Software Engineering

> Literature references and annotations by Dick Grune, dick@dickgrune.com.
Last update: Tue Sep 15 10:38:36 2009.

These references and annotations were originally intended for personal use and are presented here only in the hope that they may be useful to others. There is no claim to completeness or even correctness. Each annotation represents my understanding of the text at the moment I wrote the annotation.
> No guarantees given; comments and content criticism welcome.

* Peter Dolog, Valentino Vrani\o|\'c|, Mária Bieliková, Representing change as aspect, ACM SIGPLAN Notices, vol. 36, #12, Dec. 2001, pp. 77-83.
The paper concerns software version management and models, of which there are two kinds: state-based, in which a configuration unit (usually a file) is represented (at least conceptually) as a sequence of versions; and change-based, in which the configuration unit is represented as a base unit plus a set of changes. In the change-based model, changes are first-class entities, can be and usually are named and can be applied freely to the results of earlier applications (although not all combinations may be meaningful).
     Aspect-oriented programming (as implemented by Xerox Park AOP) has a similar structure, under full programmer control. A program consists of base code, to which various aspects can be added, for example monitoring of certain actions, different external representations of the output, etc. Each aspect consists of a set of a possibly complex edit operation on the base code. The edit operations are specified in terms of the source language structure, and allow the AO programmer to modify the syntax tree of the eventual program. An edit operation can, for example, augment all calls to a given set of functions in the base code by preprocessing of the parameters and postprocessing of the output of the calls. AO processing can be implemented on the source code level or on the syntax tree level.
     The authors basically exploit the similarity between change-based version management (in which changes are deltas derived automatically during commit) and AO programming (in which changes are conceptually meaningful notions explicitly specified by the programmer). Direct advantages are easier merging of sets of code modifications and simplified branch management.
     Examples are given using Visual Basic.

* Stephen R. Schach, Software Engineering, (2nd Edn.), Aksen Associates, Homewood, Il. 60430, 1993, pp. 579.
Good book with wide coverage. Not too heavy on the anecdotes. Blames the slow growth of Ada on the `Peace Dividend'?!? (p.xxi) Them naughty commies!

* Masahiro Honda, Terrence Miller, Software management using a CASE environment, in Workshop Software Management Conf. USENIX, New Orleans, pp. ??. April 1989,
[ A CVS look-alike ]

* Yoshihiro Matsumoto, Yukata Ohno, Japanese Perspectives in Software Engineering, Addison-Wesley, Singapore, 1989, pp. 326.
Collection of 13 papers on Specification, Design & development and Management, ranging from rather reflective to highly technical.

* W.F. Tichy, Tools for software configuration management, in International Workshop on Software Version and Configuration Control, Grassau, Jan. 1988, pp. 1-20.
Contains a glossary of terminology and an extensive list of references.