Reading Questions

#1    #2   #3 #4  #5  #6 #7  #8  #9 #10  #11  #12 #13  #14 #15 #16


Ch 1 - 3
  1. When an individual (or project) feels stressed, threatened, or pressured, which needs will get sacrificed first, the ones at the top of the need hierarchy pyramid or the ones at the bottom?
  2. Give 2 examples of "software processes" that we will use in this course.
  3. Describe 2 concerns of those who have a negative view of process.
  4. Explain what McConnell means by the term "thrashing."
  5. Give some examples of "thrashing" from your team project.
  6. Give 2 specific examples of how process can reduce thrashing.
  7. Why does McConnell think that fears of overly bureaucratic process structure are unlikely to materialize?
  8. Explain Figure 3-5 in your own words.  Do you recall the name of this model from CPE 308? How does this this figure support McConnell's arguments about process?





Ch 4 - 6
  1. McConnell describes eight "survival skills" in Chapter 4.  Explain four of them in your own words.
  2. The average software project spends _____ percent of its time on unplanned rework.
  3. McConnell takes care to distinguish project control from people control. Explain what he means by project control.
  4. A project has entered a "black hole" when it is no longer possible to determine the project's true status. The term McConnell uses to describe the opposite of a "black hole" is _________________.
  5. Explain the project progress indicators in the box at the top of your team web page.
  6. What four practices do DeMarco and Lister recommend that recognize the importance of people in a software development effort?
  7. What is the most significant factor in failed software projects? What does McConnell suggest your team do to avoid the risk of this happening to you?
  8. A popular saying among jaded industry professionals is "the first 90 percent of the project takes 90 percent of the time and the last 10 percent takes another 90 percent of the time." Why does this sometimes seem true on poorly managed projects?
  9. McConnell asserts: "Working software is a more accurate status report than any paper report could ever be." Is he saying we should forget status reporting and just put our efforts into the software? Explain his assertion.
  10. Explain in your own words the benefits McConnell claims can be found from the Staged Delivery approach.
  11. What data is plotted in a Code Growth curve?  What key project decision will this graph assist you in making and how?
  12. "Formally speaking, change control is the practice of evaluating, controlling, and approving important changes made during the project and of ensuring that all project stakeholders ______________." (fill in the blank for this quote from McConnell).
  13. Define the term "baseline."
  14. What are the benefits of change control?  What are the disadvantages?
  15. What is a change control board? What questions do they resolve? What issues should they consider in making their decision?
  16. Give an example of a document in your project that should probably be under formal change control and explain why. Give an example of a document for which informal change control will suffice and explain why.
  17. Be able to explain each of the specific styles of change control procedures in your team's change control plan (e.g., Single Owner, Restricted, etc.)



Ch 7 - 10
  1. Give a one sentence description of each of McConnell's four recommended risk management practices.
  2. McConnell has a two page table of time accounting categories. Describe where the Activity Codes we use for time accounting fit into McConnell's scheme.
  3. Describe the differences between McConnell's Requirements Development process in chapter 8 and the process your team used in CPE 205.
  4. McConnell says we should plan six different QA activities. Give a one sentence description of each
  5. Which of the fields shown in table 9-1 on pg 130 are present in the defect reporting form your team uses?
  6. When does McConnell suggest that you should start writing System Test Cases? What are the advantages and disadvantages of his approach?
  7. Explain what is meant by the "testing addiction" cycle.
  8. McConnell says that leading companies have moved away from Beta testing. What does he suggest instead?.



Ch 11 - 13
  1. (True/False) A quick, qualitative resource estimate is usually adequate for Stage 1 planning.
  2. (True/False) Estimates should be recalibrated periodically as the project progresses.
  3. (True/False) Project estimates by their nature are approximations and should never be regarded too seriously.
  4.  
  5. Why is it important to document your company estimation procedure in writing?
  6. The most accurate estimates are based on data from where/what?
  7. What is the advantage of using a software estimation tool?
  8. Explain the difference between requirements traceability for design and traceability matrix for test coverage.
  9. Explain the notion of a stage "theme."
  10. What lesson is to be learned from the anecdote on page 174?
  11. On page 175, McConnell suggests we write a separate Stage Plan document. This wasn't in the original project plan for our course. Should your team follow this suggestion?  Justify your response.
  12. What is meant by "binary" milestones and why are they important?
  13. What is the most common source of software estimation error?
  14. Why is it particularly important to not allow low quality components (individual units) to be integrated into the build?
  15. How does McConnell suggest that managers can use miniature milestones yet still avoid having developers feel like they are micro-managed?
  16. What two factors influence how much design formality a project requires?
  17. In deciding how much design formality should be used on a project, what tradeoffs should be considered?
  18. Does change control for detailed design look more like that needed for source code or more like that needed for architectural design?  Why?
  19. In order to explore the viability and risks in the architecture, McConnell recommends that Stage 1 should address which aspects of the system?
    1. A) The Graphical User Interface
      B) The customer's top priority requirements
      C) The technically difficult aspects
  20. Code inspections can be as much as ______ percent more effective than testing at identifying defects.
  21. The objective of detailed design review is first to identify functional defects.  McConnell also mentions several secondary objectives.  Describe two of them.
  22. A student progress report states "We have spent three weeks doing system testing and are confident there are no more  defects in the system."   What basic testing concept would the instructor claim the student has misunderstood?



Ch 14-15
  1. Main purpose of a code review (software inspection) is to identify functional defects. What is its secondary purpose?
  2. What concrete evidence should you be alert for to indicate that a programmer has deviated from our Unit Developer Procedure and has adopted the "partial implementations" approach?
  3. What characterizes a project in "infinite defects" mode? What does McConnell suggest would prevent this from happening and why?
  4. What are two advantages of doing daily builds?
  5. Amateur programmers often rush through coding, claiming that the most efficient use of their time is to "let the compiler find the syntax errors." What are two disadvantages of this approach?
  6. Explain in your own words the line of code counting procedure to be used for this class.
  7. What is the extent or "scope" of system testing?
  8. According to McConnell, when are system test cases developed?
    1. During detailed design
    2. Before the test phase begins
    3. At the same time as the code is developed
    4. As soon as the UI prototype and user manual are complete.
  9. (True or False) According to McConnell, system testing plays a crucial quality assurance role. (Explain your choice.)
  10. Often defects are not distributed evenly throughout the system, they seem to congregate in certain modules. How should we identify the problem modules and what can be done about them?

  11. This figure shows two approaches to doing integration: "unit oriented" versus "typical."  Explain the advantages of each. Which does McConnell recommend and why?
  12. Explain the difference between incremental and big-bang implementation strategies.  Describe the advantages and disadvantages of each.
  13. Explain the difference between top-down and bottom-up implementation strategies.  Describe the advantages and disadvantages of each.
  14. From the perspective of integration testing, what is the advantage of constructing the user interface in Stage 1?
  15. Our Unit Developer Procedure says when a unit is submitted to the build, the unit test cases are turned over to the Test team?  How will the test team use them?
  16. What exactly is meant by "freeze" development?
  17. In Subversion, how do you "revert" to a previous build? (This question required for Change Control Manager.)



Pressman CH17 handout
  1. Memorize the definitions of "verification" and "validation" in Pressman Chapter 17.
  2. Why don't we want to place all responsibility for testing on developers? Why don't we want to place all responsibility for testing on the test group?  How should the responsibility be shared?
  3. Be able to explain the software testing spiral (Pressman Fig 17.2)
  4. Which of our release criteria are most similar to Pressman's recommended criteria for completion of testing?


Lectures on Testing
  1. Testing experts say that an OO design makes unit testing simpler but integration testing harder than Functional design.  Explain why this may be the case.
  2. An OO design lends itself more easily to which, top-down or bottom-up integration?  Justify your response.
  3. Explain the difference between a stub and a driver and explain the difference between their roles in testing. Give an example of each.
  4. Why is it easier to find defects during code review than it is through debugging?
  5. Why is regression testing necessary?
  6. Unit testing is stand-alone testing of a function in isolation, integration testing is testing of a function _________________ of the partially (or entirely) assembled system.
  7. Creating drivers for unit testing introduces the possibility of unnecessary errors. Explain.
  8. For the ATM Simulator Case Study, match the test case with the test phase in which it would occur: unit test, integration test, or system test.
    1. myAccount = new BankAccount();
    2. myAccount.deposit(150.0);

    3. theATM = new ATM();
    4. theATM.selectCustomer();
      theATM.setCustomerNumber();
      theATM.selectAccount(CHECKING);
      theATM.deposit();

    5. Login as customer 1234 and deposit $150 to checking. Then withdraw $25 and verify the account balance is $125.

  9. Create simple test cases as in the previous question for your own project for each of the three testing phases.

  10. Explain in your own words what is meant by the phrase "Empirical verification (testing) can only show the presence of defects, not the absence of defects."
  11. McConnell says "Relying on testing to improve quality is like standing on scale to lose weight".  Explain this metaphor and the implications for software developers.
  12. Since test construction is costly we want to maximize the benefit from each test. Given this goal, what would be the criteria for a "good" test case?
  13. Many experts argue that testing should be performed by people other than the engineers who wrote the code.  What might be their reasoning?
  14. Give a description in your own words of "black box" and "white box" testing.
  15. Define the three different kinds of test "coverage" we studied: statement, branch, and path.
  16. Explain the different white box testing strategies we learned: Control structure testing and basis path testing.




Ch 16
     
  1. According to McConnell, if your team has found only a low number of defects that usually doesn't indicate that you have super programmers. What does it mean?
  2. What temptation exists for developers to not take releases "seriously"?
  3. Give a one sentence definition for each term.
    1. Defect Density Prediction
    2. Defect Pooling
    3. Defect Seeding
    4. Defect Modeling
  4. McConnell recommends that the release decision be based on
    1. Marketing schedule
    2. Quality Assurance Manager approval
    3. Formal Release criteria
    4. Approval by the developer's themselves
  5. Be able to explain each of our release criteria.



Ch 17
  1. What is the main purpose of the End-of-Stage Wrap-Up activities?
  2. What are the benefits of an "Omnibus Change Board Meeting?"
  3. What does McConnell recommend as the best approach to adjusting the schedule?
  4. What's the difference between a re-estimate and a slip?
  5. McConnell says there are many reasons why a team may abandon the project plan. List two major items in your project plan that your team did not follow, and explain why you think that happened. For the next stage, make a recommendation for changing the plan or improving performance.


  1. Congratulations, the Cal Poly Records office has hired you as a programmer at the princely wage of $50 an hour. Your first assignment is to write an enhancement to an existing program that generates a report of the percent of students in each department that are on academic probation. As you study the source code (created by a previous programmer who is no longer around) you notice that the programmer used an array to store the student records.

    This strikes you as an incredible waste of space. You learned in your data structures class that arrays have to be statically allocated and in this case the programmer declared the array with room for 20,000 students, even though during any particular report probably only about 5,000 students are going to be on probation. You decide to rewrite the program using a dynamic data structure so that memory is allocated as needed. It takes you only an hour to revise the program and test it.

    Calculate the net cost to your employer for your revision. That is, how much did the employer pay you versus how much would it have cost to simply pay for the RAM to store the 15,000 students.

    Assume:



Obsolete Questions
  1. An investigation chaired by Fred Brooks (cited in Brown article) concluded that the major problems with software development are not technical problems but management problems. What is suggested as the cause of poor management? How can you as a technical employee help to rectify this problem?
  2. The Airlie Software Council is a group of some of the biggest names in industry. They have identified nine principal best practices for software management (discussed in Brown article). List these practices, giving a one sentence definition of each in your own words.  Identify the relevant section (or topic) where each practice is discussed in the McConnell textbook. 


instructor only link