Homework 12: Chapters 26 and 27 Questions and CVS Practice, 12/12

Objective: To understand software quality, and change management

Please do the following problems from the end of Chapter 26 (page 737):

26.1. Early in this chapter we noted that "variation control is the heart of quality control." Since every program that is created is different from every other program, what are the variations that we look for and how do we control them?

26.7. You have been given the responsibility for improving the quality of software across your organization. What is the first thing that you should do? What’s next?

26.10. Some people argue that an FTR should assess programming style as well as correctness. Is this a good idea? Why?

Please do the following problems from the end of Chapter 27 (page 767):

27.1. Why is the First Law of System Engineering true? Provide specific examples for each of the four fundamental reasons for change.

27.2. What are the four elements that exist when an effective SCM system is implemented? Discuss each briefly.

27.3. Discuss the reasons for baselines in your own words.

In addition, please play with cvs. You can use any version of cvs you may have access to. It's installed on hills for your use. Click here to see your hills login id. If you've never logged onto hills before, your initial password for hills is your birthday, written like: jan0380 if you were born on January 3, 1980. You will be forced to change this password the first time you login, using this password as your "old password", and a new one of your choice for future use. If you've logged onto hills before, your password is the same as it was last time you logged in. Ask the ACRC staff for help if you don't remember your password.

Turn in a script showing results from diff and history commands. To create a script file, type "script cvsScript" before you start, and "exit" when you're finished. Here's the CVS documentation. Here's a sample script, annotated with my comments ( // starts a comment):

  mkdir cvsDemo
  CVSROOT=/users/cpersiko/cvsDemo;export CVSROOT   //use your directory here; probably /students/flast01/cvsDemo
  cvs init
  mkdir demoProj
  cd demoProj
  mkdir cppSource
  pico cppSource/hello.cpp                                            // put a few files here
  cvs import -m "Imported sources" demoProj/myFiles persiko start     // use your name instead of persiko
  cd ../
  rm -r demoProj                                   // erase original sources: let CVS takeover
  cvs checkout demoProj/myFiles                    // notice demoProj re-created
  pico demoProj/myFiles/cppSource/hello.cpp           // change one of the checked-out files
  cvs diff                                          // see a summary of all changes made
  cvs commit                         // will open vi with a file for comments: hit Esc, then ZZ to exit
  ls -l demoProj/myFiles/cppSource         // notice files are read only now
  cvs history -e                           // see history of changes; M means "modified"

E-mail me your answers at: cpersiko@ccsf.edu

Return to main CS 177 page