*   remember: presentation reflections
        (counting as the rest of Homework 8)
        due by 11:59 pm TONIGHT

*   and final versions of Homework 7 files are
        due by 11:59 pm FRIDAY, November 11

*   maybe a few postings from MMM Ch 10-11

    *   there are a "core" set of documents
        that can serve as critical pivots in a project;
	(and for its management, in Brooks' view)

    *   preparing each "core" document focuses thought
        and crystallizes discussion;
	*   writing REQUIRES "hundreds of mini-decisions"

	*   Parnas' chapter in "Software Fundamentals" --
	    "A Rational Design Process: How and Why to Fake it"

            ^ the preparation and writing improve your thought process
	      enough to help the whole project;

*   back to Jalote Ch. 7 -

    some additional metrics for software size and for software complexity...
    *   for size?
        *   lines-of-code, 1000s-lines-of-code
            LOC, KLOC

	    Jalote: non-commented, non-blank lines is a standard
	            definition;

                    generally, only new or modified lines are counted?!

        *   Halstead's Volume: how about counting
	       operators and operands?

               *   n1 - number of distinct operators
                   n2 - number of distinct operands

               *   N1 - total occurrences of operators
                   N2 - total occurrences of operands

               *   Vocabulary n of a program 
	       	   n = n1 + n2

               *   Length N of a program
	           N = N1 + N2

               *   Volume V of a program
	           V = N log2 (n)

		   ^ volume? represents the minimum number of
		     bits to represent the program?!

                     log2(n) is the number of bits to 
                     represent each operand, operator
		     uniquely,

		     multiply by N for the total number of
		     occurrences...

		     ...ANOTHER way of viewing program
		     size besides lines of code;

*   Complexity metrics
    *   cyclomatic complexity
        *   maybe one of the more widely used...?
        *   starts with a control flow graph!

        V(G) = e - n + p
	       edges minus nodes plus connected components

        ...which, Jalote says, can be shown to be the same
           as the number of decisions plus 1

	   for the example in the chapter,
	   that's

	   10 - 7 + 1 = 4
	   or 3 (while, while, if) + 1 = 4