Reference Document Library
COMP2100 Software Construction

bash (GNU Bourne-Again Shell)
subversion and other Version Control
SubVersion
Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato, SubVersion documentation and tutorial at Red Bean.
Personal Software Process PSP forms and instructions
eclipse
Eclipse.org Resources
emacs
run the command emacs; select menu Help->Tutorial or type C-h t (that is, the combination CTRL-h followed by the key t ).
Other general reading

Introduction: motivation

A New Era of Performance Evaluation, Pieper, S.M.; Paul, J.M.; Schulte, M.J.; Computer Volume 40, Issue 9, Sept. 2007 Page(s):23 - 30
Digital Object Identifier 10.1109/MC.2007.296

useful picture at Figure 1: traditional and modern computer usage (monolithic functional spec of s/w vs multithread interactions at various frequencies.)

contrasting requirements of
traditional functional view versus performance view of an application

Traditional and Modern Computer Usage

from Pieper et al, A new Era of Performance Evaluation, Computer, Sept 2007, pp 23–30

Build tools: make utility

Tutorial and usage guides

The make utility is the first of the "dependency-tracking build utilities" (in Wikipedia's phrase). It uses a text file that describes a set of formal relationships of dependencies between named, timestamped objects (which are real or imaginary computer files) and associated actions (operating system shell script commands) that the user intends the computer to apply in order to bring the objects up to date, according to the relationship between their timestamps. The formal idea behind make is dependency, which can be expressed in the mathematical concept of the dependency graph (see Wikipedia: dependency graph for example.

Origin


There are now a number of dependency-tracking build utilities, but make is one of the most wide-spread, primarily due to its inclusion in Unix, starting with the PWB/UNIX 1.0, which featured a variety of tools targeting software development tasks. It was originally created by Stuart Feldman in 1977 at Bell Labs. In 2003 Dr. Feldman received the ACM Software System Award for the invention of this important tool.[1]

Before make's introduction, the Unix build system would most likely consist of "make" and "install" shell scripts accompanying a program's source. Being able to combine the commands for the different targets into a single file, and being able to abstract out dependency tracking and archive handling, was an important step in the direction of modern build environments.

Wikipedia entry especially the Origin section.

Algorithm and implementation

Discussion

Advantages and disadvantages

Further Reading

For anyone interested in different ways of developing software (in particular, the idea of Open Source projects versus organised design and construction), one of the classic thoughtful descriptions is Eric Raymond's The Cathedral and the Bazaar.


Chris Johnson
$Revision: 2.1 $ $Date: 2009/02/23 04:06:04 $ Last modified: Mon Feb 23 15:05:47 EST 2009