Literature references and annotations by Dick Grune, firstname.lastname@example.org.
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.
"Representing change as aspect",
ACM SIGPLAN Notices,
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
The edit operations are specified in terms of the source language
structure, and allow the AO programmer to modify the syntax tree of the
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.
"Version models for software configuration management",
ACM Computing Surveys,
Stephen R. Schach,
Homewood, Il. 60430,
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!
Karel de Vlaminck,
Ivo Van Horebeek,
"Software Development by LL(1) Syntax Description",
Richard C. Walters,
"The Programmer's Apprentice",
"CVS II: Parallelizing Software Development",
in 1990 Winter USENIX Conference,
January 26, 1990,
"Reusable Data Structures for C",
Engelwood Cliffs, N.J.,
"Software management using a CASE environment",
in Workshop Software Management Conf. USENIX,
[ A CVS look-alike ]
"Japanese Perspectives in Software Engineering",
Collection of 13 papers on Specification, Design & development and
Management, ranging from rather reflective to highly technical.
"Syntax Analysis and Software Tools",
"Tools for software configuration management",
in International Workshop on Software Version and Configuration Control,
Contains a glossary of terminology and an extensive list of references.
Walter F. Tichy,
"Design, implementation, and evaluation of a Revision Control System",
in 6th Int. Conf. Software Engineering, IEEE,
Ralph E. Griswold,
"Linguistic extension of abstract machine modelling to aid software development",
Software-Practice and Experience,
F.P. Brooks Jr.,
"The Mythical Man Month",
Menlo Park, Ca.,
"Abstract machine modelling to produce portable software",
Software-Practice and Experience,