Software Engineering Concepts 2

January 3rd, 2009

There are papers on software engineering that describe various processes used to develop software. One of these papers is The Cathedral and Bazaar. It outlines two major approaches to operating system development. The first is the Cathedral approach used by Microsoft to create Windows where the operationg system is the cathedral and the programmers and engineers are the masons and architects. The other approach is the Bazaar Method used by Linux where everyone makes an individual contribution like people at a bazaar. Each approach has its advantages and disadvantages but creates a workable solution.

 

1. In Eric S. Raymond’s, The Cathedral and the Bazaar, which answer best describes the programming philosophy espoused by the author:

   (a) Code should be released early and released often.
   (b) The next best thing to having good ideas is recognizing good ideas
       from your users.
   (c) Plan to throw one (program version) away; you will anyhow.
   (d) Smart data structures and dumb code works a lot better than the
       other way around.
   (e) Perfection (in design) is achieved not when there is nothing more
       add, but rather when there is nothing more to take away.
   (f) All of the above.

     Answer: f
2. Raymond, in the Cathedral and the Bazaar, quotes Brook’s Law which states that complexity and communications costs of a project rise with the square of the number of developers, while work done only rises linearly.  Further, in our discussion of the paper, we derived the formula for the complexity using graph theory as N(N-1)/2. Describe what each of the three terms of the formula represent:

   (N)   - Number of Nodes (People)
   (N-1) - Number of Connections (Communication Patterns)
    2  - Removes Duplication

3. In the Raymond Paper, what is the name of the application he develops as his test for his theories?

    Fetch Mail

4. From the class notes, Liskov describes two separate spaces. One space consists of the Rep Values.  This space might consists of concrete objects like an array.  The second space is referred to as the Abstract Space which might consist of an ideal Set concept.  What is the name of the function used to map the Rep values to the Abstract Space?

 This mapping function is called the abstract function.

5. What is the name of the class property which is true before a method is called and should be true after the method is called?

    Invariant

6. In class, from the notes, there was a discussion of showing how to determine whether or not a class method is implemented correctly. If the class constructor creates a class which obeys its consistency property and if every method in the class alwys maintains the class consistency property in a true state, then the class behaves correctly. In the notes, it was shown that this proof approach is similar to a mathematical proof by induction. Describe the two components of a Proof by Induction:

    a. Base Case
    b. Inductive Step